From 7945e1c03443b3d4e7b2101ef3ac27d2e811a524 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eren=20K=C3=BC=C3=A7=C3=BCker?= <66262604+erenkucuker@users.noreply.github.com> Date: Wed, 31 Dec 2025 18:55:21 +0300 Subject: [PATCH 1/4] chore: add renovate bot for sample version update for minor,patch changes --- renovate.json | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 renovate.json diff --git a/renovate.json b/renovate.json new file mode 100644 index 00000000..365d4f84 --- /dev/null +++ b/renovate.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": ["config:recommended", "mergeConfidence:all-badges"], + "enabledManagers": ["npm"], + "includePaths": [ + "cppjs-samples/cppjs-sample-*/**" + ], + "ignoreDeps": [ + "@cpp.js/core-embind-jsi", + "@cpp.js/plugin-metro", + "@cpp.js/plugin-react-native", + "@cpp.js/plugin-react-native-ios-helper", + "@cpp.js/plugin-vite", + "@cpp.js/plugin-webpack", + "@cpp.js/plugin-rollup", + "@cpp.js/sample-lib-prebuilt-matrix" + ], + "packageRules": [ + { + "description": "Group all sample dependencies together", + "matchPaths": ["cppjs-samples/cppjs-sample-*/**"], + "groupName": "sample dependencies", + "matchUpdateTypes": ["minor", "patch"] + } + ], + "schedule": ["* * * * 0,6"] +} + From a5299ca58a2ec18d427e8396b32262883a723473 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eren=20K=C3=BC=C3=A7=C3=BCker?= <66262604+erenkucuker@users.noreply.github.com> Date: Sun, 4 Jan 2026 15:27:53 +0300 Subject: [PATCH 2/4] chore: bundler plugins update for support ssr based web frameworks raw --- .../cpp.js/src/integration/getCppJsScript.js | 7 +- cppjs-plugins/cppjs-plugin-vite/index.js | 85 ++++++++++++++++--- cppjs-plugins/cppjs-plugin-webpack/index.js | 42 ++++++--- 3 files changed, 108 insertions(+), 26 deletions(-) diff --git a/cppjs-core/cpp.js/src/integration/getCppJsScript.js b/cppjs-core/cpp.js/src/integration/getCppJsScript.js index f1d07811..87cb6ba1 100644 --- a/cppjs-core/cpp.js/src/integration/getCppJsScript.js +++ b/cppjs-core/cpp.js/src/integration/getCppJsScript.js @@ -71,9 +71,10 @@ function getWebScript(env, modulePrefix) { ...config, env: {...${env}, ...config.env}, paths: { - wasm: 'cpp.wasm', - data: 'cpp.data.txt', - worker: 'cpp.js' + wasm: '/cpp.wasm', + data: '/cpp.data.txt', + worker: '/cpp.js', + ...config.paths } }`; diff --git a/cppjs-plugins/cppjs-plugin-vite/index.js b/cppjs-plugins/cppjs-plugin-vite/index.js index a9f25710..b6918c70 100644 --- a/cppjs-plugins/cppjs-plugin-vite/index.js +++ b/cppjs-plugins/cppjs-plugin-vite/index.js @@ -4,25 +4,27 @@ import rollupCppjsPlugin from '@cpp.js/plugin-rollup'; import fs from 'node:fs'; +let wasmBuilt = false; + const viteCppjsPlugin = (options) => { let isServe = false; const bridges = []; const headerRegex = new RegExp(`\\.(${state.config.ext.header.join('|')})$`); const sourceRegex = new RegExp(`\\.(${state.config.ext.source.join('|')})$`); + async function ensureWasmBuilt() { + if (!wasmBuilt) { + createLib('Emscripten-x86_64', 'Source', { isProd: false, buildSource: true }); + createLib('Emscripten-x86_64', 'Bridge', { isProd: false, buildSource: false, nativeGlob: [`${state.config.paths.cli}/assets/commonBridges.cpp`, ...bridges] }); + await buildWasm('browser', false); + wasmBuilt = true; + } + } + return [ rollupCppjsPlugin(options, bridges), { name: 'vite-plugin-cppjs', - async load(source) { - if (isServe && source === '/cpp.js') { - createLib('Emscripten-x86_64', 'Source', { isProd: false, buildSource: true }); - createLib('Emscripten-x86_64', 'Bridge', { isProd: false, buildSource: false, nativeGlob: [`${state.config.paths.cli}/assets/commonBridges.cpp`, ...bridges] }); - await buildWasm('browser', false); - return fs.readFileSync(`${state.config.paths.build}/${state.config.general.name}.browser.js`, { encoding: 'utf8', flag: 'r' }); - } - return null; - }, configResolved(config) { isServe = config.command === 'serve'; if (isServe) { @@ -31,12 +33,69 @@ const viteCppjsPlugin = (options) => { }, configureServer(server) { if (isServe) { - server.middlewares.use((req, res, next) => { + // Serve cpp.js as ES module - must be before Vite's middleware + server.middlewares.use(async (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`; + + // Handle cpp.js - serve as ES module with global assignment + if (req.url === '/cpp.js' || req.url === '/_nuxt/cpp.js') { + try { + await ensureWasmBuilt(); + const jsPath = `${state.config.paths.build}/${state.config.general.name}.browser.js`; + const content = fs.readFileSync(jsPath, 'utf-8'); + res.setHeader('Content-Type', 'application/javascript'); + res.end(content); + return; + } catch (err) { + console.error('Error serving cpp.js:', err); + } + } + // Handle wasm file - serve directly + else if (req.url === '/cpp.wasm' || req.url === '/_nuxt/cpp.wasm') { + try { + await ensureWasmBuilt(); + const wasmPath = `${state.config.paths.build}/${state.config.general.name}.wasm`; + const wasmBuffer = fs.readFileSync(wasmPath); + res.setHeader('Content-Type', 'application/wasm'); + res.setHeader('Content-Length', wasmBuffer.length.toString()); + res.end(wasmBuffer); + return; + } catch (err) { + console.error('Error serving cpp.wasm:', err); + } + } + // Handle data file - serve directly + else if (req.url === '/cpp.data.txt' || req.url === '/_nuxt/cpp.data.txt') { + try { + const dataPath = `${state.config.paths.build}/${state.config.general.name}.data.txt`; + if (fs.existsSync(dataPath)) { + const dataContent = fs.readFileSync(dataPath); + res.setHeader('Content-Type', 'text/plain'); + res.end(dataContent); + return; + } + } catch (err) { + console.error('Error serving cpp.data.txt:', err); + } + } + // Handle pthread worker file - serve the browser JS for web workers + // Workers request /cpp.browser.js in pthread mode + else if (req.url === '/cpp.browser.js' || req.url === '/_nuxt/cpp.browser.js' || req.url === '/cpp.worker.js' || req.url === '/_nuxt/cpp.worker.js') { + try { + await ensureWasmBuilt(); + // Emscripten pthread mode uses the .browser.js file for workers + const workerJsPath = `${state.config.paths.build}/${state.config.general.name}.browser.js`; + if (fs.existsSync(workerJsPath)) { + const content = fs.readFileSync(workerJsPath, 'utf-8'); + res.setHeader('Content-Type', 'application/javascript'); + res.end(content); + return; + } + } catch (err) { + console.error('Error serving cpp.browser.js:', err); + } + } next(); }); } diff --git a/cppjs-plugins/cppjs-plugin-webpack/index.js b/cppjs-plugins/cppjs-plugin-webpack/index.js index c5fa570b..fac82eb2 100644 --- a/cppjs-plugins/cppjs-plugin-webpack/index.js +++ b/cppjs-plugins/cppjs-plugin-webpack/index.js @@ -4,10 +4,11 @@ import { state, createLib, buildWasm, createBridgeFile, getData, getCppJsScript export default class CppjsWebpackPlugin { static defaultOptions = {}; + static hasBuilt = false; // Static flag shared across all instances (for Next.js multi-compiler) + static bridges = []; // Static bridges array shared across all instances constructor(options = {}) { this.options = { ...CppjsWebpackPlugin.defaultOptions, ...options }; - this.bridges = []; } apply(compiler) { @@ -23,27 +24,48 @@ export default class CppjsWebpackPlugin { async onDone({ compilation }) { const isDev = compilation.options.mode === 'development'; + + // In dev mode, skip rebuild if already built (prevents infinite loop) + // Use static flag to share state across multiple webpack instances (Next.js) + if (isDev && CppjsWebpackPlugin.hasBuilt) { + return; + } + + // In dev mode, defer build until bridges is populated (loader has run) + // This handles the case where server compilation finishes before client compilation + if (isDev && CppjsWebpackPlugin.bridges.length === 0) { + return; + } + + // Set flag BEFORE building to prevent race conditions with parallel onDone calls + CppjsWebpackPlugin.hasBuilt = true; + + + createLib('Emscripten-x86_64', 'Source', { isProd: true, buildSource: true }); - createLib('Emscripten-x86_64', 'Bridge', { isProd: true, buildSource: false, nativeGlob: [`${state.config.paths.cli}/assets/commonBridges.cpp`, ...this.bridges] }); + createLib('Emscripten-x86_64', 'Bridge', { isProd: true, buildSource: false, nativeGlob: [`${state.config.paths.cli}/assets/commonBridges.cpp`, ...CppjsWebpackPlugin.bridges] }); await buildWasm('browser', true); + 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 output = state.config.paths.output === state.config.paths.build ? compilation.options.output.path : state.config.paths.output; + fs.copyFileSync(`${state.config.paths.build}/${state.config.general.name}.browser.js`, `${output}/cpp.js`); + fs.copyFileSync(`${state.config.paths.build}/${state.config.general.name}.wasm`, `${output}/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`); + fs.copyFileSync(dataFilePath, `${output}/cpp.data.txt`); + } + // Copy browser.js for pthread worker support (workers load this file) + const browserJsPath = `${state.config.paths.build}/${state.config.general.name}.browser.js`; + if (fs.existsSync(browserJsPath)) { + fs.copyFileSync(browserJsPath, `${output}/cpp.browser.js`); } - /* 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`); - } */ } } getLoaderOptions() { return { - bridges: this.bridges, + bridges: CppjsWebpackPlugin.bridges, createBridgeFile, getData, state, From b25474123e5d9911e2b9fde9a856513608299550 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Eren=20K=C3=BC=C3=A7=C3=BCker?= <66262604+erenkucuker@users.noreply.github.com> Date: Sun, 4 Jan 2026 15:28:51 +0300 Subject: [PATCH 3/4] chore: added new samples for different tech stacks --- .../.npmignore | 2 + .../CHANGELOG.md | 27 + .../README.md | 32 + .../cppjs.config.mjs | 18 + .../package.json | 22 + .../src/index.js | 10 + .../src/index.mjs | 9 + .../src/native/native.cpp | 27 + .../src/native/native.h | 14 + .../.gitignore | 2 + .../CHANGELOG.md | 13 + .../CMakeLists.txt | 13 + .../README.md | 51 + .../cppjs.config.js | 17 + .../package.json | 19 + .../samplebasiccmake.h | 18 + .../src/native/samplebasiccmake.cpp | 23 + .../.gitignore | 2 + .../CHANGELOG.md | 13 + .../README.md | 51 + .../cppjs.config.js | 17 + .../package.json | 15 + .../samplebasic_multithread.h | 32 + .../.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 | 14 + .../index.js | 9 + .../ios/.xcode.env | 11 + .../ios/Podfile | 40 + .../ios/Podfile.lock | 1818 ++ .../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 | 62 + .../src/App.tsx | 53 + .../src/native/native.cpp | 27 + .../src/native/native.h | 14 + .../tsconfig.json | 3 + .../.gitignore | 102 + .../README.md | 34 + .../android/.gitignore | 16 + .../android/app/build.gradle | 201 + .../android/app/debug.keystore | Bin 0 -> 2257 bytes .../android/app/proguard-rules.pro | 14 + .../android/app/src/debug/AndroidManifest.xml | 7 + .../android/app/src/main/AndroidManifest.xml | 33 + .../MainActivity.kt | 61 + .../MainApplication.kt | 55 + .../res/drawable-hdpi/splashscreen_image.png | Bin 0 -> 59836 bytes .../res/drawable-mdpi/splashscreen_image.png | Bin 0 -> 59836 bytes .../res/drawable-xhdpi/splashscreen_image.png | Bin 0 -> 59836 bytes .../drawable-xxhdpi/splashscreen_image.png | Bin 0 -> 59836 bytes .../drawable-xxxhdpi/splashscreen_image.png | Bin 0 -> 59836 bytes .../res/drawable/rn_edit_text_material.xml | 37 + .../src/main/res/drawable/splashscreen.xml | 3 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 8377 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 8031 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 10372 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 5199 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 5079 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 6526 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 11624 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 11145 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 14257 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 18266 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 18064 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 22474 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 25203 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 25030 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 30705 bytes .../app/src/main/res/values-night/colors.xml | 1 + .../app/src/main/res/values/colors.xml | 6 + .../app/src/main/res/values/strings.xml | 6 + .../app/src/main/res/values/styles.xml | 17 + .../android/build.gradle | 41 + .../android/gradle.properties | 59 + .../android/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 43453 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + .../android/gradlew | 249 + .../android/gradlew.bat | 92 + .../react-settings-plugin/build.gradle.kts | 19 + .../expo/plugins/ReactSettingsPlugin.kt | 10 + .../android/settings.gradle | 66 + .../app.json | 38 + .../app/(tabs)/_layout.tsx | 37 + .../app/(tabs)/explore.tsx | 102 + .../app/(tabs)/index.tsx | 89 + .../app/+html.tsx | 39 + .../app/+not-found.tsx | 32 + .../app/_layout.tsx | 37 + .../assets/fonts/SpaceMono-Regular.ttf | Bin 0 -> 93252 bytes .../assets/images/adaptive-icon.png | Bin 0 -> 17547 bytes .../assets/images/favicon.png | Bin 0 -> 1466 bytes .../assets/images/icon.png | Bin 0 -> 22380 bytes .../assets/images/partial-react-logo.png | Bin 0 -> 5075 bytes .../assets/images/react-logo.png | Bin 0 -> 6341 bytes .../assets/images/react-logo@2x.png | Bin 0 -> 14225 bytes .../assets/images/react-logo@3x.png | Bin 0 -> 21252 bytes .../assets/images/splash.png | Bin 0 -> 47346 bytes .../babel.config.js | 6 + .../components/Collapsible.tsx | 41 + .../components/ExternalLink.tsx | 24 + .../components/HelloWave.tsx | 37 + .../components/ParallaxScrollView.tsx | 76 + .../components/ThemedText.tsx | 60 + .../components/ThemedView.tsx | 14 + .../components/__tests__/ThemedText-test.tsx | 10 + .../__snapshots__/ThemedText-test.tsx.snap | 24 + .../components/navigation/TabBarIcon.tsx | 9 + .../constants/Colors.ts | 26 + .../cppjs.config.mjs | 13 + .../hooks/useColorScheme.ts | 1 + .../hooks/useColorScheme.web.ts | 8 + .../hooks/useThemeColor.ts | 22 + .../ios/.gitignore | 30 + .../ios/.xcode.env | 11 + .../ios/Podfile | 79 + .../ios/Podfile.lock | 1626 ++ .../ios/Podfile.properties.json | 4 + .../project.pbxproj | 539 + .../cppjssamplemobilereactnativeexpo.xcscheme | 88 + .../contents.xcworkspacedata | 10 + .../AppDelegate.h | 7 + .../AppDelegate.mm | 62 + .../App-Icon-1024x1024@1x.png | Bin 0 -> 59468 bytes .../AppIcon.appiconset/Contents.json | 14 + .../Images.xcassets/Contents.json | 6 + .../SplashScreen.imageset/Contents.json | 21 + .../SplashScreen.imageset/image.png | Bin 0 -> 59836 bytes .../Contents.json | 21 + .../SplashScreenBackground.imageset/image.png | Bin 0 -> 68 bytes .../Info.plist | 77 + .../PrivacyInfo.xcprivacy | 48 + .../SplashScreen.storyboard | 51 + .../Supporting/Expo.plist | 12 + ...plemobilereactnativeexpo-Bridging-Header.h | 3 + ...jssamplemobilereactnativeexpo.entitlements | 5 + .../cppjssamplemobilereactnativeexpo/main.m | 10 + .../noop-file.swift | 4 + .../metro.config.js | 13 + .../package-lock.json | 19101 ++++++++++++++++ .../package.json | 65 + .../scripts/reset-project.js | 73 + .../src/native/native.cpp | 27 + .../src/native/native.h | 14 + .../tsconfig.json | 17 + .../.gitignore | 41 + .../README.md | 36 + .../app/cpp.browser.js/route.ts | 48 + .../app/cpp.js/route.ts | 48 + .../app/cpp.wasm/route.ts | 50 + .../app/favicon.ico | Bin 0 -> 25931 bytes .../app/globals.css | 26 + .../app/layout.tsx | 34 + .../app/native/native.cpp | 27 + .../app/native/native.h | 14 + .../app/page.tsx | 41 + .../cppjs.config.js | 18 + .../cppjs.d.ts | 12 + .../eslint.config.mjs | 18 + .../next.config.mts | 49 + .../package-lock.json | 6538 ++++++ .../package.json | 29 + .../postcss.config.mjs | 7 + .../public/file.svg | 1 + .../public/globe.svg | 1 + .../public/next.svg | 1 + .../public/vercel.svg | 1 + .../public/window.svg | 1 + .../tsconfig.json | 35 + .../cppjs-sample-web-next-webpack/.gitignore | 41 + .../cppjs-sample-web-next-webpack/README.md | 36 + .../app/cpp.js/route.ts | 48 + .../app/cpp.wasm/route.ts | 50 + .../app/favicon.ico | Bin 0 -> 25931 bytes .../app/globals.css | 26 + .../app/layout.tsx | 34 + .../app/native/native.cpp | 9 + .../app/native/native.h | 12 + .../app/page.tsx | 37 + .../cppjs.config.js | 15 + .../cppjs-sample-web-next-webpack/cppjs.d.ts | 12 + .../eslint.config.mjs | 18 + .../next.config.mts | 28 + .../package-lock.json | 6538 ++++++ .../package.json | 29 + .../postcss.config.mjs | 7 + .../public/file.svg | 1 + .../public/globe.svg | 1 + .../public/next.svg | 1 + .../public/vercel.svg | 1 + .../public/window.svg | 1 + .../tsconfig.json | 35 + .../.gitignore | 24 + .../README.md | 75 + .../app/app.vue | 11 + .../app/example.vue | 30 + .../app/native/native.cpp | 27 + .../app/native/native.h | 14 + .../cppjs.config.js | 18 + .../nuxt.config.ts | 23 + .../package.json | 19 + .../public/favicon.ico | Bin 0 -> 4286 bytes .../public/robots.txt | 2 + .../server/routes/cpp.browser.js.get.ts | 38 + .../server/routes/cpp.js.get.ts | 38 + .../server/routes/cpp.wasm.get.ts | 43 + .../server/routes/cpp.worker.js.get.ts | 47 + .../tsconfig.json | 18 + .../cppjs-sample-web-nuxt-vite/.gitignore | 24 + .../cppjs-sample-web-nuxt-vite/README.md | 75 + .../cppjs-sample-web-nuxt-vite/app/app.vue | 11 + .../app/example.vue | 27 + .../app/native/native.cpp | 9 + .../app/native/native.h | 12 + .../cppjs.config.js | 15 + .../cppjs-sample-web-nuxt-vite/nuxt.config.ts | 12 + .../cppjs-sample-web-nuxt-vite/package.json | 19 + .../public/favicon.ico | Bin 0 -> 4286 bytes .../public/robots.txt | 2 + .../server/routes/cpp.js.get.ts | 38 + .../server/routes/cpp.wasm.get.ts | 43 + .../cppjs-sample-web-nuxt-vite/tsconfig.json | 18 + .../.gitignore | 29 + .../CHANGELOG.md | 8 + .../README.md | 39 + .../cppjs.config.js | 18 + .../e2e/cppjs.spec.cjs | 12 + .../eslint.config.js | 39 + .../index.html | 14 + .../package.json | 46 + .../playwright.dev.config.cjs | 49 + .../playwright.prod.config.cjs | 49 + .../public/vite.svg | 2 + .../src/App.css | 43 + .../src/App.jsx | 34 + .../src/assets/react.svg | 2 + .../src/index.css | 69 + .../src/main.jsx | 11 + .../src/native/native.cpp | 27 + .../src/native/native.h | 14 + .../vite.config.js | 9 + .../cppjs-sample-web-remix-vite/.dockerignore | 4 + .../cppjs-sample-web-remix-vite/.gitignore | 7 + .../cppjs-sample-web-remix-vite/Dockerfile | 22 + .../cppjs-sample-web-remix-vite/README.md | 87 + .../cppjs-sample-web-remix-vite/app/app.css | 15 + .../app/native/native.cpp | 9 + .../app/native/native.h | 12 + .../cppjs-sample-web-remix-vite/app/root.tsx | 75 + .../cppjs-sample-web-remix-vite/app/routes.ts | 3 + .../app/routes/home.tsx | 13 + .../app/welcome/logo-dark.svg | 23 + .../app/welcome/logo-light.svg | 23 + .../app/welcome/welcome.tsx | 96 + .../cppjs.config.js | 15 + .../cppjs-sample-web-remix-vite/package.json | 35 + .../public/favicon.ico | Bin 0 -> 15086 bytes .../react-router.config.ts | 7 + .../cppjs-sample-web-remix-vite/tsconfig.json | 27 + .../vite.config.ts | 9 + .../.gitignore | 29 + .../CHANGELOG.md | 8 + .../README.md | 39 + .../cppjs.config.js | 18 + .../e2e/cppjs.spec.cjs | 13 + .../index.html | 14 + .../jsconfig.json | 33 + .../package.json | 36 + .../playwright.dev.config.cjs | 49 + .../playwright.prod.config.cjs | 49 + .../public/vite.svg | 1 + .../src/App.svelte | 32 + .../src/app.css | 80 + .../src/main.js | 10 + .../src/native/native.cpp | 28 + .../src/native/native.h | 15 + .../src/vite-env.d.ts | 3 + .../svelte.config.js | 8 + .../vite.config.js | 9 + pnpm-lock.yaml | 12526 +++++++++- 336 files changed, 59803 insertions(+), 1213 deletions(-) create mode 100644 cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/.npmignore create mode 100644 cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/CHANGELOG.md create mode 100644 cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/README.md create mode 100644 cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/cppjs.config.mjs create mode 100644 cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/package.json create mode 100644 cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/src/index.js create mode 100644 cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/src/index.mjs create mode 100644 cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/src/native/native.cpp create mode 100644 cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/src/native/native.h create mode 100644 cppjs-samples/cppjs-sample-lib-cmake-multithread/.gitignore create mode 100644 cppjs-samples/cppjs-sample-lib-cmake-multithread/CHANGELOG.md create mode 100644 cppjs-samples/cppjs-sample-lib-cmake-multithread/CMakeLists.txt create mode 100644 cppjs-samples/cppjs-sample-lib-cmake-multithread/README.md create mode 100644 cppjs-samples/cppjs-sample-lib-cmake-multithread/cppjs.config.js create mode 100644 cppjs-samples/cppjs-sample-lib-cmake-multithread/package.json create mode 100644 cppjs-samples/cppjs-sample-lib-cmake-multithread/src/native/cppjs-lib-samplebasic-cmake-multithread/samplebasiccmake.h create mode 100644 cppjs-samples/cppjs-sample-lib-cmake-multithread/src/native/samplebasiccmake.cpp create mode 100644 cppjs-samples/cppjs-sample-lib-source-multithread/.gitignore create mode 100644 cppjs-samples/cppjs-sample-lib-source-multithread/CHANGELOG.md create mode 100644 cppjs-samples/cppjs-sample-lib-source-multithread/README.md create mode 100644 cppjs-samples/cppjs-sample-lib-source-multithread/cppjs.config.js create mode 100644 cppjs-samples/cppjs-sample-lib-source-multithread/package.json create mode 100644 cppjs-samples/cppjs-sample-lib-source-multithread/src/native/cppjs-lib-samplebasic-multithread/samplebasic_multithread.h create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.bundle/config create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.eslintrc.js create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.gitignore create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.prettierrc.js create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/CHANGELOG.md create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/Gemfile create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/README.md create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/__tests__/App.test.tsx create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/build.gradle create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/debug.keystore create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/proguard-rules.pro create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/debug/AndroidManifest.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/AndroidManifest.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/certs/cacert.pem create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainActivity.kt create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainApplication.kt create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/res/drawable/rn_edit_text_material.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/res/values/strings.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/res/values/styles.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/build.gradle create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/gradle.properties create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/gradle/wrapper/gradle-wrapper.jar create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/gradle/wrapper/gradle-wrapper.properties create mode 100755 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/gradlew create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/gradlew.bat create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/settings.gradle create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/app.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/babel.config.js create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ci/.cppjs/build/bridge/native.i.cpp create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ci/.cppjs/build/bridge/native.i.cpp.exports.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ci/.cppjs/build/interface/native.i create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ci/.cppjs/cache.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/cppjs.config.mjs create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/index.js create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/.xcode.env create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/Podfile create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/Podfile.lock create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI.xcodeproj/project.pbxproj create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI.xcodeproj/xcshareddata/xcschemes/cppjsSampleReactNativeCLI.xcscheme create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI.xcworkspace/contents.xcworkspacedata create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/AppDelegate.h create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/AppDelegate.mm create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/Images.xcassets/Contents.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/Info.plist create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/LaunchScreen.storyboard create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/main.m create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLITests/Info.plist create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLITests/cppjsSampleReactNativeCLITests.m create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/jest.config.js create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/maestro.yaml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/metro.config.js create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/package.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/src/App.tsx create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/src/native/native.cpp create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/src/native/native.h create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/tsconfig.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/.gitignore create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/README.md create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/.gitignore create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/build.gradle create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/debug.keystore create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/proguard-rules.pro create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/debug/AndroidManifest.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/AndroidManifest.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/java/com/anonymous/cppjssamplemobilereactnativeexpo/MainActivity.kt create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/java/com/anonymous/cppjssamplemobilereactnativeexpo/MainApplication.kt create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable-hdpi/splashscreen_image.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable-mdpi/splashscreen_image.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable/rn_edit_text_material.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable/splashscreen.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/values-night/colors.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/values/colors.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/values/strings.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/values/styles.xml create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/build.gradle create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/gradle.properties create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/gradle/wrapper/gradle-wrapper.jar create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/gradle/wrapper/gradle-wrapper.properties create mode 100755 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/gradlew create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/gradlew.bat create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/react-settings-plugin/build.gradle.kts create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/settings.gradle create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/(tabs)/_layout.tsx create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/(tabs)/explore.tsx create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/(tabs)/index.tsx create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/+html.tsx create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/+not-found.tsx create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/_layout.tsx create mode 100755 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/assets/fonts/SpaceMono-Regular.ttf create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/assets/images/adaptive-icon.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/assets/images/favicon.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/assets/images/icon.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/assets/images/partial-react-logo.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/assets/images/react-logo.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/assets/images/react-logo@2x.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/assets/images/react-logo@3x.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/assets/images/splash.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/babel.config.js create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/components/Collapsible.tsx create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/components/ExternalLink.tsx create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/components/HelloWave.tsx create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/components/ParallaxScrollView.tsx create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/components/ThemedText.tsx create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/components/ThemedView.tsx create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/components/__tests__/ThemedText-test.tsx create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/components/__tests__/__snapshots__/ThemedText-test.tsx.snap create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/components/navigation/TabBarIcon.tsx create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/constants/Colors.ts create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/cppjs.config.mjs create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/hooks/useColorScheme.ts create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/hooks/useColorScheme.web.ts create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/hooks/useThemeColor.ts create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/.gitignore create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/.xcode.env create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/Podfile create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/Podfile.lock create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/Podfile.properties.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo.xcodeproj/project.pbxproj create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo.xcodeproj/xcshareddata/xcschemes/cppjssamplemobilereactnativeexpo.xcscheme create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo.xcworkspace/contents.xcworkspacedata create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo/AppDelegate.h create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo/AppDelegate.mm create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/AppIcon.appiconset/App-Icon-1024x1024@1x.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/Contents.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreen.imageset/Contents.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreen.imageset/image.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreenBackground.imageset/Contents.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo/Images.xcassets/SplashScreenBackground.imageset/image.png create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo/Info.plist create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo/PrivacyInfo.xcprivacy create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo/SplashScreen.storyboard create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo/Supporting/Expo.plist create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo/cppjssamplemobilereactnativeexpo-Bridging-Header.h create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo/cppjssamplemobilereactnativeexpo.entitlements create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo/main.m create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/ios/cppjssamplemobilereactnativeexpo/noop-file.swift create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/metro.config.js create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/package-lock.json create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/package.json create mode 100755 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/scripts/reset-project.js create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/src/native/native.cpp create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/src/native/native.h create mode 100644 cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/tsconfig.json create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/.gitignore create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/README.md create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/app/cpp.browser.js/route.ts create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/app/cpp.js/route.ts create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/app/cpp.wasm/route.ts create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/app/favicon.ico create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/app/globals.css create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/app/layout.tsx create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/app/native/native.cpp create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/app/native/native.h create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/app/page.tsx create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/cppjs.config.js create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/cppjs.d.ts create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/eslint.config.mjs create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/next.config.mts create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/package-lock.json create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/package.json create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/postcss.config.mjs create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/public/file.svg create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/public/globe.svg create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/public/next.svg create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/public/vercel.svg create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/public/window.svg create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack-multithread/tsconfig.json create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/.gitignore create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/README.md create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/app/cpp.js/route.ts create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/app/cpp.wasm/route.ts create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/app/favicon.ico create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/app/globals.css create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/app/layout.tsx create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/app/native/native.cpp create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/app/native/native.h create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/app/page.tsx create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/cppjs.config.js create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/cppjs.d.ts create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/eslint.config.mjs create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/next.config.mts create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/package-lock.json create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/package.json create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/postcss.config.mjs create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/public/file.svg create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/public/globe.svg create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/public/next.svg create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/public/vercel.svg create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/public/window.svg create mode 100644 cppjs-samples/cppjs-sample-web-next-webpack/tsconfig.json create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite-multithread/.gitignore create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite-multithread/README.md create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite-multithread/app/app.vue create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite-multithread/app/example.vue create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite-multithread/app/native/native.cpp create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite-multithread/app/native/native.h create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite-multithread/cppjs.config.js create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite-multithread/nuxt.config.ts create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite-multithread/package.json create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite-multithread/public/favicon.ico create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite-multithread/public/robots.txt create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite-multithread/server/routes/cpp.browser.js.get.ts create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite-multithread/server/routes/cpp.js.get.ts create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite-multithread/server/routes/cpp.wasm.get.ts create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite-multithread/server/routes/cpp.worker.js.get.ts create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite-multithread/tsconfig.json create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite/.gitignore create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite/README.md create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite/app/app.vue create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite/app/example.vue create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite/app/native/native.cpp create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite/app/native/native.h create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite/cppjs.config.js create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite/nuxt.config.ts create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite/package.json create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite/public/favicon.ico create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite/public/robots.txt create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite/server/routes/cpp.js.get.ts create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite/server/routes/cpp.wasm.get.ts create mode 100644 cppjs-samples/cppjs-sample-web-nuxt-vite/tsconfig.json create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/.gitignore create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/CHANGELOG.md create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/README.md create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/cppjs.config.js create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/e2e/cppjs.spec.cjs create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/eslint.config.js create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/index.html create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/package.json create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/playwright.dev.config.cjs create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/playwright.prod.config.cjs create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/public/vite.svg create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/src/App.css create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/src/App.jsx create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/src/assets/react.svg create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/src/index.css create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/src/main.jsx create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/src/native/native.cpp create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/src/native/native.h create mode 100644 cppjs-samples/cppjs-sample-web-react-vite-multithread/vite.config.js create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/.dockerignore create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/.gitignore create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/Dockerfile create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/README.md create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/app/app.css create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/app/native/native.cpp create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/app/native/native.h create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/app/root.tsx create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/app/routes.ts create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/app/routes/home.tsx create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/app/welcome/logo-dark.svg create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/app/welcome/logo-light.svg create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/app/welcome/welcome.tsx create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/cppjs.config.js create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/package.json create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/public/favicon.ico create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/react-router.config.ts create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/tsconfig.json create mode 100644 cppjs-samples/cppjs-sample-web-remix-vite/vite.config.ts create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/.gitignore create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/CHANGELOG.md create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/README.md create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/cppjs.config.js create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/e2e/cppjs.spec.cjs create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/index.html create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/jsconfig.json create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/package.json create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/playwright.dev.config.cjs create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/playwright.prod.config.cjs create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/public/vite.svg create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/src/App.svelte create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/src/app.css create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/src/main.js create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/src/native/native.cpp create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/src/native/native.h create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/src/vite-env.d.ts create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/svelte.config.js create mode 100644 cppjs-samples/cppjs-sample-web-svelte-vite-multithread/vite.config.js diff --git a/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/.npmignore b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/.npmignore new file mode 100644 index 00000000..026a543f --- /dev/null +++ b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/.npmignore @@ -0,0 +1,2 @@ +dist +.cppjs diff --git a/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/CHANGELOG.md b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/CHANGELOG.md new file mode 100644 index 00000000..cc4fd8ee --- /dev/null +++ b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/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-multithread/README.md b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/README.md new file mode 100644 index 00000000..3e6b15c6 --- /dev/null +++ b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/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/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/cppjs.config.mjs b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/cppjs.config.mjs new file mode 100644 index 00000000..95ba556c --- /dev/null +++ b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/cppjs.config.mjs @@ -0,0 +1,18 @@ +import Matrix from '@cpp.js/sample-lib-prebuilt-matrix-multithread/cppjs.config.js'; + +export default { + general: { + name: 'cppjs-sample-backend-nodejs-wasm-multithread', + }, + dependencies: [ + Matrix, + ], + paths: { + config: import.meta.url, + base: '../..', /* Delete this line for create-cpp.js */ + output: 'dist', + }, + build: { + usePthread: true + } +}; diff --git a/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/package.json b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/package.json new file mode 100644 index 00000000..02c1efdb --- /dev/null +++ b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/package.json @@ -0,0 +1,22 @@ +{ + "name": "@cpp.js/sample-backend-nodejs-wasm-multithread", + "version": "2.0.0-beta.1", + "description": "Cpp.js - Node.js webassembly sample", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-sample-backend-nodejs-wasm-multithread#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-multithread": "workspace:^" + }, + "keywords": [ + "cpp.js-sample", + "node", + "webassembly", + "bind", + "c++" + ] +} diff --git a/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/src/index.js b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/src/index.js new file mode 100644 index 00000000..bd8c7d72 --- /dev/null +++ b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/src/index.js @@ -0,0 +1,10 @@ +const initCppJs = require('../dist/cppjs-sample-backend-nodejs-wasm.node.js'); + + +initCppJs().then(({ Native }) => { + console.log(`Matrix multiplier with c++ => ${Native.sample()}`); + Native.runOnThread(); + setTimeout(() => { + console.log(`Thread result: ${Native.getThreadResult()}`); + }, 1000); +}); diff --git a/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/src/index.mjs b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/src/index.mjs new file mode 100644 index 00000000..77ae3d74 --- /dev/null +++ b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/src/index.mjs @@ -0,0 +1,9 @@ +import initCppJs from '../dist/cppjs-sample-backend-nodejs-wasm.node.js'; + +initCppJs().then(({ Native }) => { + console.log(`Matrix multiplier with c++ => ${Native.sample()}`); + Native.runOnThread(); + setTimeout(() => { + console.log(`Thread result: ${Native.getThreadResult()}`); + }, 1000); +}); diff --git a/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/src/native/native.cpp b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/src/native/native.cpp new file mode 100644 index 00000000..bd8f06b3 --- /dev/null +++ b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/src/native/native.cpp @@ -0,0 +1,27 @@ +#include "native.h" +#include +#include + +static std::string threadResult = "waiting..."; + +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₃"; +} + +void Native::runOnThread() { + std::thread t([]() { + // Simulate some work on a separate thread + auto firstMatrix = std::make_shared(9, 3); + auto secondMatrix = std::make_shared(9, 4); + auto result = firstMatrix->multiple(secondMatrix)->get(0); + threadResult = "Thread computed: (3*J₃) * (4*J₃) = " + std::to_string(result) + "*J₃"; + }); + t.join(); +} + +std::string Native::getThreadResult() { + return threadResult; +} diff --git a/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/src/native/native.h b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/src/native/native.h new file mode 100644 index 00000000..e6a77be8 --- /dev/null +++ b/cppjs-samples/cppjs-sample-backend-nodejs-wasm-multithread/src/native/native.h @@ -0,0 +1,14 @@ +#ifndef _NATIVE_H +#define _NATIVE_H + +#include +#include + +class Native { +public: + static std::string sample(); + static void runOnThread(); + static std::string getThreadResult(); +}; + +#endif diff --git a/cppjs-samples/cppjs-sample-lib-cmake-multithread/.gitignore b/cppjs-samples/cppjs-sample-lib-cmake-multithread/.gitignore new file mode 100644 index 00000000..a46717ab --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-cmake-multithread/.gitignore @@ -0,0 +1,2 @@ +# cpp.js +.cppjs diff --git a/cppjs-samples/cppjs-sample-lib-cmake-multithread/CHANGELOG.md b/cppjs-samples/cppjs-sample-lib-cmake-multithread/CHANGELOG.md new file mode 100644 index 00000000..d9bd0e31 --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-cmake-multithread/CHANGELOG.md @@ -0,0 +1,13 @@ +# @cpp.js/sample-lib-cmake + +## 1.0.0 + +### Major Changes + +- 🚀 first stable release + +## 1.0.0-beta.6 + +### Patch Changes + +- chore: add initial version of CHANGELOGS files diff --git a/cppjs-samples/cppjs-sample-lib-cmake-multithread/CMakeLists.txt b/cppjs-samples/cppjs-sample-lib-cmake-multithread/CMakeLists.txt new file mode 100644 index 00000000..9249c5fb --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-cmake-multithread/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 3.1) +set(CMAKE_CXX_STANDARD 11) +project(cppjs-lib-samplebasiccmake-wasm) + +find_package(Threads REQUIRED) + +add_library(cppjs-lib-samplebasiccmake-wasm STATIC src/native/samplebasiccmake.cpp) + +target_include_directories(cppjs-lib-samplebasiccmake-wasm PUBLIC + src/native +) + +target_link_libraries(cppjs-lib-samplebasiccmake-wasm Threads::Threads) diff --git a/cppjs-samples/cppjs-sample-lib-cmake-multithread/README.md b/cppjs-samples/cppjs-sample-lib-cmake-multithread/README.md new file mode 100644 index 00000000..24fdc795 --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-cmake-multithread/README.md @@ -0,0 +1,51 @@ +# @cpp.js/sample-lib-cmake +**Cpp.js sample library: simple cmake library** + + + NPM version + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/sample-lib-cmake +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import cmakeSample from '@cpp.js/sample-lib-cmake/cppjs.config.js'; + +export default { + dependencies: [ ++ cmakeSample + ] + paths: { + config: import.meta.url, + }, +}; +``` + +## Usage +Below are the steps to use the library in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return SampleBasicCmake::sample(); +} + +``` + +### Usage in JavaScript Code (web, with plugin) +```js +import { initCppJs, SampleBasicCmake } from '@cpp.js/sample-lib-cmake/cppjs-lib-samplebasic-cmake/samplebasiccmake.h'; + +await initCppJs(); +console.log(SampleBasicCmake.sample()); +``` diff --git a/cppjs-samples/cppjs-sample-lib-cmake-multithread/cppjs.config.js b/cppjs-samples/cppjs-sample-lib-cmake-multithread/cppjs.config.js new file mode 100644 index 00000000..02f7f36e --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-cmake-multithread/cppjs.config.js @@ -0,0 +1,17 @@ +import Matrix from '@cpp.js/sample-lib-prebuilt-matrix-multithread/cppjs.config.js'; + +export default { + export: { + type: 'cmake', + }, + paths: { + config: import.meta.url, + output: '.', + }, + dependencies: [ + Matrix, + ], + build: { + usePthread: true + } +}; diff --git a/cppjs-samples/cppjs-sample-lib-cmake-multithread/package.json b/cppjs-samples/cppjs-sample-lib-cmake-multithread/package.json new file mode 100644 index 00000000..9af130a8 --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-cmake-multithread/package.json @@ -0,0 +1,19 @@ +{ + "name": "@cpp.js/sample-lib-cmake-multithread", + "version": "2.0.0-beta.1", + "description": "Cpp.js sample library: simple cmake library", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-sample-lib-cmake-multithread#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "MIT", + "type": "module", + "dependencies": { + "@cpp.js/sample-lib-prebuilt-matrix-multithread": "workspace:^" + }, + "keywords": [ + "cpp.js-sample", + "cmake", + "cpp.js-sample", + "webassembly", + "react-native" + ] +} diff --git a/cppjs-samples/cppjs-sample-lib-cmake-multithread/src/native/cppjs-lib-samplebasic-cmake-multithread/samplebasiccmake.h b/cppjs-samples/cppjs-sample-lib-cmake-multithread/src/native/cppjs-lib-samplebasic-cmake-multithread/samplebasiccmake.h new file mode 100644 index 00000000..8a596b68 --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-cmake-multithread/src/native/cppjs-lib-samplebasic-cmake-multithread/samplebasiccmake.h @@ -0,0 +1,18 @@ +#ifndef _SAMPLE_BASIC_CMAKE_H +#define _SAMPLE_BASIC_CMAKE_H + +#include +#include +#include +#include + +static std::string threadResult = "waiting..."; + +class SampleBasicCmake { +public: + static std::string sample(); + static void runOnThread(); + static std::string getThreadResult(); +}; + +#endif diff --git a/cppjs-samples/cppjs-sample-lib-cmake-multithread/src/native/samplebasiccmake.cpp b/cppjs-samples/cppjs-sample-lib-cmake-multithread/src/native/samplebasiccmake.cpp new file mode 100644 index 00000000..e77c0062 --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-cmake-multithread/src/native/samplebasiccmake.cpp @@ -0,0 +1,23 @@ +#include "cppjs-lib-samplebasic-cmake-multithread/samplebasiccmake.h" + +std::string SampleBasicCmake::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₃"; +} + +void SampleBasicCmake::runOnThread() { + std::thread t([]() { + // Simulate some work on a separate thread + auto firstMatrix = std::make_shared(9, 3); + auto secondMatrix = std::make_shared(9, 4); + auto result = firstMatrix->multiple(secondMatrix)->get(0); + threadResult = "Thread computed: (3*J₃) * (4*J₃) = " + std::to_string(result) + "*J₃"; + }); + t.join(); +} + +std::string SampleBasicCmake::getThreadResult() { + return threadResult; +} diff --git a/cppjs-samples/cppjs-sample-lib-source-multithread/.gitignore b/cppjs-samples/cppjs-sample-lib-source-multithread/.gitignore new file mode 100644 index 00000000..a46717ab --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-source-multithread/.gitignore @@ -0,0 +1,2 @@ +# cpp.js +.cppjs diff --git a/cppjs-samples/cppjs-sample-lib-source-multithread/CHANGELOG.md b/cppjs-samples/cppjs-sample-lib-source-multithread/CHANGELOG.md new file mode 100644 index 00000000..22bd6e9a --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-source-multithread/CHANGELOG.md @@ -0,0 +1,13 @@ +# @cpp.js/sample-lib-source + +## 1.0.0 + +### Major Changes + +- 🚀 first stable release + +## 1.0.0-beta.5 + +### Patch Changes + +- chore: add initial version of CHANGELOGS files diff --git a/cppjs-samples/cppjs-sample-lib-source-multithread/README.md b/cppjs-samples/cppjs-sample-lib-source-multithread/README.md new file mode 100644 index 00000000..6b89c1cb --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-source-multithread/README.md @@ -0,0 +1,51 @@ +# @cpp.js/sample-lib-source +**Cpp.js sample library: simple source library** + + + NPM version + + + License + + +## Integration +Start by installing these package with the following command: + +```sh +npm install @cpp.js/sample-lib-source +``` + +To enable the library, modify the cppjs.config.js file as shown below. +```diff ++import sourceSample from '@cpp.js/sample-lib-source/cppjs.config.js'; + +export default { + dependencies: [ ++ sourceSample + ] + paths: { + config: import.meta.url, + }, +}; +``` + +## Usage +Below are the steps to use the library in your C++ or JavaScript code. + +### Usage in C++ Code +```diff ++#include + +std::string Native::sample() { ++ return SampleBasic::sample(); +} + +``` + +### Usage in JavaScript Code (web, with plugin) +```js +import { initCppJs, SampleBasic } from '@cpp.js/sample-lib-source/cppjs-lib-samplebasic/samplebasic.h'; + +await initCppJs(); +console.log(SampleBasic.sample()); +``` diff --git a/cppjs-samples/cppjs-sample-lib-source-multithread/cppjs.config.js b/cppjs-samples/cppjs-sample-lib-source-multithread/cppjs.config.js new file mode 100644 index 00000000..5bb4e06e --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-source-multithread/cppjs.config.js @@ -0,0 +1,17 @@ +import Matrix from '@cpp.js/sample-lib-prebuilt-matrix-multithread/cppjs.config.js'; + + +export default { + export: { + type: 'source', + }, + paths: { + config: import.meta.url, + }, + dependencies: [ + Matrix, + ], + build: { + usePthread: true + } +}; diff --git a/cppjs-samples/cppjs-sample-lib-source-multithread/package.json b/cppjs-samples/cppjs-sample-lib-source-multithread/package.json new file mode 100644 index 00000000..f85e3de9 --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-source-multithread/package.json @@ -0,0 +1,15 @@ +{ + "name": "@cpp.js/sample-lib-source-multithread", + "version": "2.0.0-beta.1", + "description": "Cpp.js sample library: simple source library", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-sample-lib-source-multithread#readme", + "repository": "https://github.com/bugra9/cpp.js.git", + "license": "MIT", + "type": "module", + "dependencies": { + "@cpp.js/sample-lib-prebuilt-matrix-multithread": "workspace:^" + }, + "keywords": [ + "cpp.js-sample" + ] +} diff --git a/cppjs-samples/cppjs-sample-lib-source-multithread/src/native/cppjs-lib-samplebasic-multithread/samplebasic_multithread.h b/cppjs-samples/cppjs-sample-lib-source-multithread/src/native/cppjs-lib-samplebasic-multithread/samplebasic_multithread.h new file mode 100644 index 00000000..bf998e1a --- /dev/null +++ b/cppjs-samples/cppjs-sample-lib-source-multithread/src/native/cppjs-lib-samplebasic-multithread/samplebasic_multithread.h @@ -0,0 +1,32 @@ +#ifndef _SAMPLE_BASIC_MULTITHREAD_H +#define _SAMPLE_BASIC_MULTITHREAD_H + +#include "native.h" +#include +#include + +static std::string threadResult = "waiting..."; + +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₃"; +} + +void Native::runOnThread() { + std::thread t([]() { + // Simulate some work on a separate thread + auto firstMatrix = std::make_shared(9, 3); + auto secondMatrix = std::make_shared(9, 4); + auto result = firstMatrix->multiple(secondMatrix)->get(0); + threadResult = "Thread computed: (3*J₃) * (4*J₃) = " + std::to_string(result) + "*J₃"; + }); + t.join(); +} + +std::string Native::getThreadResult() { + return threadResult; +} + +#endif diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.bundle/config b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.bundle/config new file mode 100644 index 00000000..848943bb --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.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-multithread/.eslintrc.js b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.eslintrc.js new file mode 100644 index 00000000..187894b6 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.eslintrc.js @@ -0,0 +1,4 @@ +module.exports = { + root: true, + extends: '@react-native', +}; diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.gitignore b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.gitignore new file mode 100644 index 00000000..6d4750c8 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.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-multithread/.prettierrc.js b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.prettierrc.js new file mode 100644 index 00000000..2b540746 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/.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-multithread/CHANGELOG.md b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/CHANGELOG.md new file mode 100644 index 00000000..2e3c315c --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/Gemfile b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/Gemfile new file mode 100644 index 00000000..85d7f682 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/README.md b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/README.md new file mode 100644 index 00000000..578fb775 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/__tests__/App.test.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/__tests__/App.test.tsx new file mode 100644 index 00000000..9eac6fbc --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/__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-multithread/android/app/build.gradle b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/build.gradle new file mode 100644 index 00000000..e1736095 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/android/app/debug.keystore b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/android/app/src/main/AndroidManifest.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..e1892528 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/assets/cppjs/certs/cacert.pem b/cppjs-samples/cppjs-sample-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-sample-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----- +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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-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainActivity.kt b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/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-multithread/android/app/src/main/java/org/js/cpp/cppjsSampleReactNativeCLI/MainApplication.kt b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/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-multithread/android/app/src/main/res/drawable/rn_edit_text_material.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/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-multithread/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/android/app/src/main/res/values/strings.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/android/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + cppjsSampleReactNativeCLI + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/app/src/main/res/values/styles.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/android/app/src/main/res/values/styles.xml @@ -0,0 +1,9 @@ + + + + + + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/build.gradle b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/build.gradle new file mode 100644 index 00000000..a9ea0236 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/android/gradle.properties b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/gradle.properties new file mode 100644 index 00000000..22f57878 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/android/gradle/wrapper/gradle-wrapper.jar b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/android/gradle/wrapper/gradle-wrapper.properties b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..79eb9d00 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/android/gradlew b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/gradlew new file mode 100755 index 00000000..f5feea6d --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/android/gradlew.bat b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/gradlew.bat new file mode 100644 index 00000000..9b42019c --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/android/settings.gradle b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/android/settings.gradle new file mode 100644 index 00000000..4b6310e6 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/app.json b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/app.json new file mode 100644 index 00000000..85cf02ae --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/app.json @@ -0,0 +1,4 @@ +{ + "name": "cppjsSampleReactNativeCLI", + "displayName": "cppjsSampleReactNativeCLI" +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/babel.config.js b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/babel.config.js new file mode 100644 index 00000000..f7b3da3b --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/ci/.cppjs/build/bridge/native.i.cpp b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ci/.cppjs/build/bridge/native.i.cpp new file mode 100644 index 00000000..4fee74ec --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/ci/.cppjs/build/bridge/native.i.cpp.exports.json b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/ci/.cppjs/build/bridge/native.i.cpp.exports.json @@ -0,0 +1 @@ +["VectorNative", "Native"] diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ci/.cppjs/build/interface/native.i b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ci/.cppjs/build/interface/native.i new file mode 100644 index 00000000..96459933 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/ci/.cppjs/cache.json b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ci/.cppjs/cache.json new file mode 100644 index 00000000..27fc00d8 --- /dev/null +++ b/cppjs-samples/cppjs-sample-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/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-sample-mobile-reactnative-cli-multithread/cppjs.config.mjs b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/cppjs.config.mjs new file mode 100644 index 00000000..f9a551c3 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/cppjs.config.mjs @@ -0,0 +1,14 @@ +import Matrix from '@cpp.js/sample-lib-prebuilt-matrix-multithread/cppjs.config.js'; + +export default { + dependencies: [ + Matrix + ], + paths: { + config: import.meta.url, + base: '../..', /* Delete this line for create-cpp.js */ + }, + build: { + usePthread: true + } +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/index.js b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/index.js new file mode 100644 index 00000000..69303b34 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/ios/.xcode.env b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/.xcode.env new file mode 100644 index 00000000..3d5782c7 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/ios/Podfile b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/Podfile new file mode 100644 index 00000000..2973470e --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-sample-mobile-reactnative-cli-multithread/ios/Podfile.lock b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/Podfile.lock new file mode 100644 index 00000000..914066af --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/Podfile.lock @@ -0,0 +1,1818 @@ +PODS: + - boost (1.84.0) + - cppjs-sample-lib-prebuilt-matrix (2.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 (2.0.0) + - react-native-cppjs-ios-helper (2.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 (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-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-sample-lib-prebuilt-matrix: 14916d0e76958bcc11231d93595f650eb7d5e907 + 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: 4edb420bedb3854f15423427b9c2f17567736731 + react-native-cppjs-ios-helper: 3c0594d5f55d70dff3057be823b4e72b32479891 + 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.16.2 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI.xcodeproj/project.pbxproj b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI.xcodeproj/project.pbxproj new file mode 100644 index 00000000..696ede33 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/ios/cppjsSampleReactNativeCLI.xcodeproj/xcshareddata/xcschemes/cppjsSampleReactNativeCLI.xcscheme b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI.xcodeproj/xcshareddata/xcschemes/cppjsSampleReactNativeCLI.xcscheme new file mode 100644 index 00000000..e88cf906 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI.xcodeproj/xcshareddata/xcschemes/cppjsSampleReactNativeCLI.xcscheme @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI.xcworkspace/contents.xcworkspacedata b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..ec53ec93 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/AppDelegate.h b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/AppDelegate.h new file mode 100644 index 00000000..5d280825 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/AppDelegate.h @@ -0,0 +1,6 @@ +#import +#import + +@interface AppDelegate : RCTAppDelegate + +@end diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/AppDelegate.mm b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/AppDelegate.mm new file mode 100644 index 00000000..54d44b92 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/ios/cppjsSampleReactNativeCLI/Images.xcassets/AppIcon.appiconset/Contents.json b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/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-multithread/ios/cppjsSampleReactNativeCLI/Images.xcassets/Contents.json b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/Images.xcassets/Contents.json new file mode 100644 index 00000000..2d92bd53 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/ios/cppjsSampleReactNativeCLI/Info.plist b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/Info.plist new file mode 100644 index 00000000..415a2922 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/ios/cppjsSampleReactNativeCLI/LaunchScreen.storyboard b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/LaunchScreen.storyboard new file mode 100644 index 00000000..88b1fc62 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/LaunchScreen.storyboard @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/PrivacyInfo.xcprivacy new file mode 100644 index 00000000..41b8317f --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/ios/cppjsSampleReactNativeCLI/main.m b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLI/main.m new file mode 100644 index 00000000..d645c724 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/ios/cppjsSampleReactNativeCLITests/Info.plist b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLITests/Info.plist new file mode 100644 index 00000000..ba72822e --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/ios/cppjsSampleReactNativeCLITests/cppjsSampleReactNativeCLITests.m b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/ios/cppjsSampleReactNativeCLITests/cppjsSampleReactNativeCLITests.m new file mode 100644 index 00000000..3539b7ee --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/jest.config.js b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/jest.config.js new file mode 100644 index 00000000..8eb675e9 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/jest.config.js @@ -0,0 +1,3 @@ +module.exports = { + preset: 'react-native', +}; diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/maestro.yaml b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/maestro.yaml new file mode 100644 index 00000000..7fea8147 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-multithread/metro.config.js b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/metro.config.js new file mode 100644 index 00000000..21030053 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/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-sample-mobile-reactnative-cli-multithread/package.json b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/package.json new file mode 100644 index 00000000..ee263ed3 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/package.json @@ -0,0 +1,62 @@ +{ + "name": "@cpp.js/sample-mobile-reactnative-cli-multithread", + "version": "2.0.0-beta.1", + "description": "Cpp.js React Native sample", + "homepage": "https://github.com/bugra9/cpp.js/tree/main/packages/cppjs-sample-mobile-reactnative-cli-multithread#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", + "maestro": "maestro test ./maestro.yaml", + "e2e:ios": "pnpm run run:ios && pnpm run maestro", + "e2e:android": "pnpm run run:android && pnpm run maestro" + }, + "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:^", + "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" + ] +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/src/App.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/src/App.tsx new file mode 100644 index 00000000..9263b993 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/src/App.tsx @@ -0,0 +1,53 @@ +/** + * 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 ...'); + const [threadResult, setThreadResult] = useState('waiting...'); + + useEffect(() => { + initCppJs().then(() => { + setMessage(Native.sample()); + Native.runOnThread(); + + // Poll for thread result after a short delay + setTimeout(() => { + setThreadResult(Native.getThreadResult()); + }, 1000); + }); + }, []); + + return ( + + + Matrix multiplier with c++   =>   {message} + Thread result: {threadResult} + + + ); +} + +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-multithread/src/native/native.cpp b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/src/native/native.cpp new file mode 100644 index 00000000..bd8f06b3 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/src/native/native.cpp @@ -0,0 +1,27 @@ +#include "native.h" +#include +#include + +static std::string threadResult = "waiting..."; + +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₃"; +} + +void Native::runOnThread() { + std::thread t([]() { + // Simulate some work on a separate thread + auto firstMatrix = std::make_shared(9, 3); + auto secondMatrix = std::make_shared(9, 4); + auto result = firstMatrix->multiple(secondMatrix)->get(0); + threadResult = "Thread computed: (3*J₃) * (4*J₃) = " + std::to_string(result) + "*J₃"; + }); + t.join(); +} + +std::string Native::getThreadResult() { + return threadResult; +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/src/native/native.h b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/src/native/native.h new file mode 100644 index 00000000..e6a77be8 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/src/native/native.h @@ -0,0 +1,14 @@ +#ifndef _NATIVE_H +#define _NATIVE_H + +#include +#include + +class Native { +public: + static std::string sample(); + static void runOnThread(); + static std::string getThreadResult(); +}; + +#endif diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/tsconfig.json b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/tsconfig.json new file mode 100644 index 00000000..304ab4e2 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-cli-multithread/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "@react-native/typescript-config/tsconfig.json" +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/.gitignore b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/.gitignore new file mode 100644 index 00000000..e9080b1e --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/.gitignore @@ -0,0 +1,102 @@ +.cppjs +.yarn +ios/build +android/build + +node_modules/ +.expo/ +dist/ +npm-debug.* +*.jks +*.p8 +*.p12 +*.key +*.mobileprovision +*.orig.* +web-build/ + +# macOS +.DS_Store + +# @generated expo-cli sync-2b81b286409207a5da26e14c78851eb30d8ccbdb +# The following patterns were generated by expo-cli + +expo-env.d.ts +# @end expo-cli + +# React Native +# 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 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/README.md b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/README.md new file mode 100644 index 00000000..e502f54c --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/README.md @@ -0,0 +1,34 @@ +# @cpp.js/sample-mobile-reactnative-expo +**Cpp.js Expo sample** + + + NPM version + + + License + + + Docs - Expo + + +## Get started + +>**Note**: Make sure you have completed the [Cpp.js - Prerequisites](https://cpp.js.org/docs/guide/getting-started/prerequisites) instructions. + +1. Install dependencies + + ```bash + npm install + ``` + +2. Start the ios app + + ```bash + npm run ios + ``` + +3. Start the android app + + ```bash + npm run android + ``` diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/.gitignore b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/.gitignore new file mode 100644 index 00000000..8a6be077 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/.gitignore @@ -0,0 +1,16 @@ +# OSX +# +.DS_Store + +# Android/IntelliJ +# +build/ +.idea +.gradle +local.properties +*.iml +*.hprof +.cxx/ + +# Bundle artifacts +*.jsbundle diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/build.gradle b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/build.gradle new file mode 100644 index 00000000..dde17b21 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/build.gradle @@ -0,0 +1,201 @@ +apply plugin: "com.android.application" +apply plugin: "org.jetbrains.kotlin.android" +apply plugin: "com.facebook.react" + +def projectRoot = rootDir.getAbsoluteFile().getParentFile().getAbsolutePath() + +static def versionToNumber(major, minor, patch) { + return patch * 100 + minor * 10000 + major * 1000000 +} + +def getRNVersion() { + def version = providers.exec { + workingDir(projectDir) + commandLine("node", "-e", "console.log(require('react-native/package.json').version);") + }.standardOutput.asText.get().trim() + + def coreVersion = version.split("-")[0] + def (major, minor, patch) = coreVersion.tokenize('.').collect { it.toInteger() } + + return versionToNumber( + major, + minor, + patch + ) +} +def rnVersion = getRNVersion() + +/** + * 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 { + entryFile = file(["node", "-e", "require('expo/scripts/resolveAppEntry')", projectRoot, "android", "absolute"].execute(null, rootDir).text.trim()) + reactNativeDir = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile() + hermesCommand = new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim()).getParentFile().getAbsolutePath() + "/sdks/hermesc/%OS-BIN%/hermesc" + codegenDir = new File(["node", "--print", "require.resolve('@react-native/codegen/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim()).getParentFile().getAbsoluteFile() + + // Use Expo CLI to bundle the app, this ensures the Metro config + // works correctly with Expo projects. + cliFile = new File(["node", "--print", "require.resolve('@expo/cli', { paths: [require.resolve('expo/package.json')] })"].execute(null, rootDir).text.trim()) + bundleCommand = "export:embed" + + /* 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") + + /* 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 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"] + + if (rnVersion >= versionToNumber(0, 75, 0)) { + /* Autolinking */ + autolinkLibrariesWithApp() + } +} + +/** + * Set this to true to Run Proguard on Release builds to minify the Java bytecode. + */ +def enableProguardInReleaseBuilds = (findProperty('android.enableProguardInReleaseBuilds') ?: false).toBoolean() + +/** + * 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 'com.anonymous.cppjssamplemobilereactnativeexpo' + defaultConfig { + applicationId 'com.anonymous.cppjssamplemobilereactnativeexpo' + minSdkVersion rootProject.ext.minSdkVersion + targetSdkVersion rootProject.ext.targetSdkVersion + versionCode 1 + versionName "1.0.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 + shrinkResources (findProperty('android.enableShrinkResourcesInReleaseBuilds')?.toBoolean() ?: false) + minifyEnabled enableProguardInReleaseBuilds + proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" + crunchPngs (findProperty('android.enablePngCrunchInReleaseBuilds')?.toBoolean() ?: true) + } + } + packagingOptions { + jniLibs { + useLegacyPackaging (findProperty('expo.useLegacyPackaging')?.toBoolean() ?: false) + } + } +} + +// Apply static values from `gradle.properties` to the `android.packagingOptions` +// Accepts values in comma delimited lists, example: +// android.packagingOptions.pickFirsts=/LICENSE,**/picasa.ini +["pickFirsts", "excludes", "merges", "doNotStrip"].each { prop -> + // Split option: 'foo,bar' -> ['foo', 'bar'] + def options = (findProperty("android.packagingOptions.$prop") ?: "").split(","); + // Trim all elements in place. + for (i in 0.. 0) { + println "android.packagingOptions.$prop += $options ($options.length)" + // Ex: android.packagingOptions.pickFirsts += '**/SCCS/**' + options.each { + android.packagingOptions[prop] += it + } + } +} + +dependencies { + // The version of react-native is set by the React Native Gradle Plugin + implementation("com.facebook.react:react-android") + + def isGifEnabled = (findProperty('expo.gif.enabled') ?: "") == "true"; + def isWebpEnabled = (findProperty('expo.webp.enabled') ?: "") == "true"; + def isWebpAnimatedEnabled = (findProperty('expo.webp.animated') ?: "") == "true"; + + if (isGifEnabled) { + // For animated gif support + implementation("com.facebook.fresco:animated-gif:${reactAndroidLibs.versions.fresco.get()}") + } + + if (isWebpEnabled) { + // For webp support + implementation("com.facebook.fresco:webpsupport:${reactAndroidLibs.versions.fresco.get()}") + if (isWebpAnimatedEnabled) { + // Animated webp support + implementation("com.facebook.fresco:animated-webp:${reactAndroidLibs.versions.fresco.get()}") + } + } + + if (hermesEnabled.toBoolean()) { + implementation("com.facebook.react:hermes-android") + } else { + implementation jscFlavor + } +} + +if (rnVersion < versionToNumber(0, 75, 0)) { + apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), "../native_modules.gradle"); + applyNativeModulesAppBuildGradle(project) +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/debug.keystore b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/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-expo-multithread/android/app/src/main/AndroidManifest.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..e55c82a4 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/java/com/anonymous/cppjssamplemobilereactnativeexpo/MainActivity.kt b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/java/com/anonymous/cppjssamplemobilereactnativeexpo/MainActivity.kt new file mode 100644 index 00000000..ab94aedf --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/java/com/anonymous/cppjssamplemobilereactnativeexpo/MainActivity.kt @@ -0,0 +1,61 @@ +package com.anonymous.cppjssamplemobilereactnativeexpo + +import android.os.Build +import android.os.Bundle + +import com.facebook.react.ReactActivity +import com.facebook.react.ReactActivityDelegate +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled +import com.facebook.react.defaults.DefaultReactActivityDelegate + +import expo.modules.ReactActivityDelegateWrapper + +class MainActivity : ReactActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + // Set the theme to AppTheme BEFORE onCreate to support + // coloring the background, status bar, and navigation bar. + // This is required for expo-splash-screen. + setTheme(R.style.AppTheme); + super.onCreate(null) + } + + /** + * Returns the name of the main component registered from JavaScript. This is used to schedule + * rendering of the component. + */ + override fun getMainComponentName(): String = "main" + + /** + * 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 { + return ReactActivityDelegateWrapper( + this, + BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, + object : DefaultReactActivityDelegate( + this, + mainComponentName, + fabricEnabled + ){}) + } + + /** + * Align the back button behavior with Android S + * where moving root activities to background instead of finishing activities. + * @see onBackPressed + */ + override fun invokeDefaultOnBackPressed() { + if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.R) { + if (!moveTaskToBack(false)) { + // For non-root activities, use the default implementation to finish them. + super.invokeDefaultOnBackPressed() + } + return + } + + // Use the default back button implementation on Android S + // because it's doing more than [Activity.moveTaskToBack] in fact. + super.invokeDefaultOnBackPressed() + } +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/java/com/anonymous/cppjssamplemobilereactnativeexpo/MainApplication.kt b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/java/com/anonymous/cppjssamplemobilereactnativeexpo/MainApplication.kt new file mode 100644 index 00000000..54ab5a24 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/java/com/anonymous/cppjssamplemobilereactnativeexpo/MainApplication.kt @@ -0,0 +1,55 @@ +package com.anonymous.cppjssamplemobilereactnativeexpo + +import android.app.Application +import android.content.res.Configuration + +import com.facebook.react.PackageList +import com.facebook.react.ReactApplication +import com.facebook.react.ReactNativeHost +import com.facebook.react.ReactPackage +import com.facebook.react.ReactHost +import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load +import com.facebook.react.defaults.DefaultReactNativeHost +import com.facebook.soloader.SoLoader + +import expo.modules.ApplicationLifecycleDispatcher +import expo.modules.ReactNativeHostWrapper + +class MainApplication : Application(), ReactApplication { + + override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper( + this, + object : DefaultReactNativeHost(this) { + override fun getPackages(): List { + // Packages that cannot be autolinked yet can be added manually here, for example: + // packages.add(new MyReactNativePackage()); + return PackageList(this).packages + } + + override fun getJSMainModuleName(): String = ".expo/.virtual-metro-entry" + + 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() = ReactNativeHostWrapper.createReactHost(applicationContext, reactNativeHost) + + override fun onCreate() { + super.onCreate() + SoLoader.init(this, false) + if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) { + // If you opted-in for the New Architecture, we load the native entry point for this app. + load() + } + ApplicationLifecycleDispatcher.onApplicationCreate(this) + } + + override fun onConfigurationChanged(newConfig: Configuration) { + super.onConfigurationChanged(newConfig) + ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig) + } +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable-hdpi/splashscreen_image.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable-hdpi/splashscreen_image.png new file mode 100644 index 0000000000000000000000000000000000000000..c52c2c68019b49c56da4faf7d8835a8392cfef7a GIT binary patch literal 59836 zcmeFYhdJXQHaXO4jIWvB@{(MA$w+KE2Rh-B_lhOBH3G+$(HPd?7cVl zdA-rq_xj!czv}w7yx*^J&hwn}Jmd3J@ro?*UYfl)I5@;|7o@J@;Orv6!P(nR zv>Se-+)KuRgERb4PU@VpJ?_|NTwM62+w+Z-2_iiB?!W*3lfZux_)h}=N#H*T{3n6` zB=DaE{*%Ce68KL7|4HCK3H&F4|6fbMt?gm3YC&CzSbb6Vs&g(gzhB$a*HxZUB~lcD zczabJj_`1Z{^bG^5PpYtSHTt|i&3o!8 z`>$knyE43EOeMjmJxRz;P2V4M<;*?fTXM_NfDm;}zg7YyW_d+A{tVC<#_=Qkg`n{7z1qNa3Wu&gu0z=x*n%~JU zz|+Lo4mclee&FI{UZ;`^Eeq$(&*Lmt^*g&1sOl=y#@Yp9;^+Wk9-eGOd zFL@)!lw2y;{tE+f;qIbi9L}2w)@{iHxTyF~z;c`{h5ZC2k!!vRf)UU04 z*Z+B5H@%CLHlv1`PEN0*TBsyXoui$5pn5;84L7A)I&qkfbVoIMI2|qC?n}Rql}3k8 zE|AY8{pK_7>sAw!o<8N&bl!1ld?w$scHy*M8O6a-Pcm(fH*I}CZXgm+op~pXyWFT? zsfTpYmHG+~WfFTX5vu|G9mj1PEm{+*%N)|fEc!gIM=Gh=sNm*@A4$ziNpM*v`0=-5 ziJmEX0z}d%j8pt$B)Y*?z=W^7QuX(R5}BlChm4yaT6ET$iCBlJbzVq^fo!OCtZUog z6ozy-x5F~zNj(D7>1tw3TTPy&YJMnpc$P{+Ym<7jI>h?Gl}2V!GMw9|KH%e+e6WnO zs(l=2&E3u?S0Xby?~tL{opCc|^PY!~gKoM|Jsc=j=h?($-EN%Li|CT?)%XlcWK4M} zO|yxUnpIP-C*_q>Cs_m}Be}5}1!NlTh^>6cK(=H3u}{0+Ghetp?T41pW`_bzpVXU= zeA?sbn7lzospyeEOB*(UG(^eFzELOP+kLpMb4b8Qn=jd>S4;@PP2?a-&06>V3Jd%cU8#8sy(C+LoIDt*LAnyiC`V`TqK7-Vg8Q zVoQrh;0- zgTjXWlR?Rz>q+xQ1*#vek6JvSr#26Wp>%-nEVd;iv&IP8!6F;`B49p-ricW{mlSV-OL%GqjRCsz4aC=U* z)xi08a`Un9sKYuLM!bQbMc>Rn5)Jc-V*;6)!nLwFl9)!huO|V_!5`>0#P=}Ew=)y( z>`wYdj`m8uwLf3D$+KkGnI@LW-b?0t}bEfP3R>Zfv*paH* zuLv(@?HnzM&QLZG%>PJbjCV0zW7)PdX>YJa@Dag01h+6H*oIMHYGn*@=Q$9?Au!Nk zYSDu`_$p)p(NtFY@1A&$^rQ;{Q0hpJCB)mp_J?NQhWK%VGfGtMBJaJCzQ+xk@V5{6 z!zeH_R=#A91DhvJ_O)D9j!y=%B{HHsf0V3k8gLxJpZmH_ZHNGI=TT&r)ghUnxUh6N zn!nEgYBFuyJrN~9r}KWW`ZC6wOVf8-OdBb)wi_ebX)&$t~J!=nrsp>X7?x+VR^5@1C1{D_?K`Fifo?pI(O`v8>W+F0ve|(30 zhxIc+u(w4AM5U}~jSuA~0h7i}0;WydM&+F$7na^bP@~EmVp{SQqRWUj*p*NqGQB{7 z9mfK}x<^Xm8Fy%$9F1AYe%4X#XQ@@u0w&)DM9Fs)EHIo3r^(!cNZ5HRz04j0QwK)F zZQsQ4LnjvYfe=hj)Op90=F0c1XFD$2n7zG$8{MVB_61+@Y64va&mXOqL2w1EVJ2dB z4d3pn9}D33H5TT(j{;l?1K^eT@uBE{47xpDj^;{zx(+ihEGFMRC$Sw&%0lBjzsQ*8 zQp+_-XUkjdo=6lxdc!zI`!o8ztVR_EB?=($JEpQ!+k&PXjgBLx&5#!fJx@HfVIY!w zp?$|6`EVn%17CI68zNJd;o}ZoeZ4bEA`t0!l&#uy9;6^l>ArXYB8X3eZ^QW=1=2u7 zq^Is75PgYIXcgx!@^5&>Y zAmO(dtg-k+f9cQt=2aU%s)f;4#>nI6bFF0VM9z%iurGVsQ;DVuN7Q$Gv-iAW0L19{ z@yh7k_T6(5jXSCZHq&710a1oMARY{q#-3~LLOc9%i|Wvc3ZSJbqaO!W7duAN83L$x zME3){AH>M?8i0O$4*_vLRrydVh~5ZA?+iLo$}8Wc0|pqPu8D{wD7-<`U%XFb%_&1TxY|HhVlvxW4W)oexHoV@n zEh$=gHpY_!9|{V>+=(F~(r>wZw?!?#yA5%MR#AkX48o*Ie=AbSQ3?H!{@Ex^!snei z4D1p9F$|0I=99BZG)yySkMm}hZ_NMT&8!h8*EFC?r8XzgegxnK-wM^o0W&ddI%3p5 zSHiGSwmMO;7!g@Cnw&SWoUl0;ys^sO9$%BH*B}ic4___a(3j8LFm33VccxsZfar5+ zDm5Td`ETU(Ty6zc=Xbj-2TzJ`dKWDz)H3r9){CBYhvbgrM2sJ zt}9?TV>2?xbe(h^vn~{eM1yjWjL3CFpCn7|HiyrxjZ#?y0-qV>q z-JY=}kkKDC@Xclx`f0V+u4sLQ);xcjs(ZCIOUt#-M{wg<7Mv#Fcu3pzqM1{RT1)kw zVoq8C%ME@mbCKhqh+4-OIPFaCsZ}#u z)#}!U=<3y0>*{f*z2fB!36cHu>V8MHHvES3)2k3(?~pR|gLJ@s#tOXvA^m}4U#s1P zcmsv3OyH4$V%VoT96fbQmm5}<4uGxEk7p@y>=__pO$HX49vSLpG^`jJQkUs?Mo(iX z(*DdgZk#$+zR`BB7~B%6PXj*FuzESQsDJ}otf!2F346P*fcy$ctd8{@hhd{mtj=69 zP}67hhu19)Wh;gZL{>5_H`j~q^-SbV<}B82uGN`m=rs7xNvym~HK;HM^yL-~pr?uT z<~zJ@EJNx;PaPX8E8{8^%J;Q8FN8Nuez4l4sq-kfRztHUPqDe4)rq3bjajSXke!&X z-8MI$)cXknG!2ccM_=u@_4UFASoz@VPe8)r&qaT~wZ^xkV{3hz6X%O8y1CZAcy4|r z6q|Byvg@|0D`-2Gm#1GhjsRgdT~6vUMb*7Lk)>6%Tp;ee{^MuldYfI*Vwd>xPrJfd z3=9u-2P*hw^)eg&IgHxcZOhRgKWp+?Lv;rd`1J=w#_DudSFK#>+ao7Giu*B#RPa!( z&YG@Tr4|*5!*{ZGYuDFvF7Wv2(l7OE6>hF|*>&42eo)Wa7)#k0;p%?ny}m9KD73h^ z$g96F*cmCy6Syt}-}$e@Yps#y7YB~b%A*Zx*O%jUIeGlXxOm_(^n0sR*uWcfpQ=mW z8tJ_*4KU+epaQT!?loCgws9Gb0)N-z8QeGq+vG%6k4@IC>%xK7Lv#z9Hna;(#c`&@ zR0(l10WhYaI#$O`8}$M+g-!>y#qr7o9uFA?2w!fGyMHY#D_t&(fqU?>NTW25Ra}lU zuUy!9UQ;WRQ6hZ%|I|>=f%8k=XJ;K<=U*m&GmvXtA_X- z4saGNH6d;BIkBLw*X{XtYpVrnM5@tm(BCpciXMe9@qVq24$&PjKRqiL${Vt*#4Fpb zTMLge%ku<=*wHX)JUbG`>p4&zBexKydmJsfeQXN;@#^sVH#DlHU8H#RDNT9w1CFQ3 z>G|?~b@|!IEH5IWuh+=TE1rz~>N1s;|9N->=a;?-9gcluHK?nW;rQxu4{4M1&uDO> z65wQ;*xLtG)4&^}?~fS6zj12mHU6A4@dJwRL}0x9EK{g}e5gQ;pFx^|)qC$F5ZRC* zO(`{g%gcw(_YS&D3~n|=ZVWFLTJ=|*+SF=<)xFt6r8|xo!y8dT-;Wr8mnKO!Y)m&K z;rGs57U{p?(!a5fVRNZsQ<`#fSbV)_(sfilrRXKcy^SyUq+)B8v3|~Tu~cHV8*7gU z#XqK532zp6I@gIJo9nV#bk<$G)LaUcnzP>ycE0 z;}Q}84?55q9-;=cc79fTb9QqmuY3KcUGlB_{hRXed@VbAGUPnCI30KyIo#vC=Apda z+y0Pl;21c+aNfz&;7z^3$L=^#-2r(ke+GUkA%Vea?Jc*Ny5%Z$(4xLI@GP#|;%8y7 zlThz`Q_e3PfUe2zcCE4T@vgO6a1|e>l5K5muS~+v)xGN74(l0Z8To#;b>X6mr4*6* zOZ7~CPHWMw83xl%Rmj;$f6)4;4t!^`a>I@@e52VdUM7YbAHbJFp+A}YbZfF*+HD7X_>b%5NU_boh=g*ptETNnMJM8tnXMjNGiCIl#h(@JS<9e$@`I1to9UxAS}v*kJ#+Zm0R?lx}q7HBq}hK!jkjR*@|_ znU%>Rl2@Jh)GutM<$Y9Q3-u*_VlN}>&y$L;v|?YV0#nu+E^%qDjJz3)bR0J3(%d_l z1Zl#b92|%?cjFZA;uMpg*uoOBtKWf8TN&? zMJo?(a4LASB)Dkq5&DtRWx&B8PJTP*Lp5Gnm*ZCex-KJc6C&>;Lm7$oWN>B|k4Bqs z4!xn`(kKA!740CP+SVwu5)pBLu+#F$i(oGOR7W86n9@BNTz;pby{{#JLm3npix6_0 z_{ysvd4Hz2sV;wIM6hsUbFJ2@X#NXGiCCOhG>8*2$*rtON3O)tc(J<8Nqc9Oro%=XJH5kFLq$aH(p!Cc zhu{8w7U}mO&Dk9ebfP>^9-a4@+Ldw(dp;hzeLZ1=&5#D8yWnwybjH=D$@_SuTd zdA#frwpl(`;WCoss{g+5g-Y zTlgB4`1~-odH8LlHmxYBOh@+B?%p2pca*dz0BY%JZMQd;-XHRXR_^YK5|ESSrn;_9Ew5#pU)toIph zNm*ZYT{MsU+WXa8L45XmnS%2QW)`#fz!?c#G^~D#LyEkTn3#Ycw{DNE9fo;c$ z-_&5H)9{F_#9Ri|rr+l5Ddb|mnJ&c!Yv#}8Z7y0B*l?oe}%)!8cefbMYfmD$j z)&i}fRtud}u6=?@6SGC@{ansHk1o}T)4E8Co^Id0wAuEMVM<`KL~N?N+gLQF zmnh|9nb9Gfx?RZv6qn8T+i*Nq$0B$yq!#GrF`YYZ=@@Guc{iEm+?SXL{TGHOPM$lJ zPHnpQgh%>nK^YUHS5{fZiRbEp>9YQnX`>U2jJ#bYyI+mx6m~sa{4n`8P-1d4&pVB} z=-~#R{{h99rgAuClY{4_l*4S@o;-PC6ry-gng|y+muXdOcc`7z z7M5Zzw)YLW^@ehHJKQ$?{b`id*Uv*wKRyP(=R&$@YqNKU#Tku>!3x%am6G$Zo8QLf zsE2&_;NlYDN?>a@l8_xZpj1OHh%4!4X1r(?wq9)RG?67XKa^rWCC1*wek zGW~KIPP@Q`zdV7u@JR0?cTv1v;C4*sXShTaNOT?rjw%wBUr6DC}ZABgD zt!D~1D@0+P5(Fti)irl^pWOoR2^ zEtuQs$41JIqZgK^p9-aI zWX=~r^d)s3563?z*BAe)Pb}%V7mFA6uHALBtxrFfbb)?CWX{?iwH~y+WlOfc3oO@-Eb{j=$f-DEb><;Y|!`^uKH{}VRG(vY_etk>ktBRu{~)fh?v2#aHvE>`M5k9+ItT-569!ab3a@MuypHE3!}lVO zi1QE5FXLzXTo!(@MnyGP=Q6+>X-3c>I@NC1^mTJ-y>o?YeTKEm{YNH=NsRcBr@L=< zJdlkzJjOSd|JYQnlK}VFv19M#L@JpR`Yub_eY4YP01_ntXB6rA2Vz0}rP?OrGZ(cPk36*%?{cI* z)T-RPv06tjeod=;YH6%Ghx>e;aqIC?8!tSf|G7XXSe6O?e8l7OuT%+KpkYCQJJk2b zOH&6)?l!(<9*QN4B0cwu<{Qtxgdzd4{M_7tGs|Dz3V~6{>;hdsZ)rI)w4+&k5c@5B zOgtDg^-g#xf;AKEBF#n;3f9tasOhoJNqzcgd8sX-kj$hi?wTA~*9|;397f9|keAcD zQ?2P1M_nkxkoz%TA0E-#zh6csm6!-OnoaTm%U`%D@ld>o<4*WOUS(WX*7vpHZfE5X?Ro_my8@el>^r(a~|F@@Qs<0P{ z2UEks?HgPt4M=St_60wFUP66pIgr9CQ}i8O z*cnl77u`EzVtaCR0Lwn)o=wBH!mrJOT5XeT!;I4UD1Ch7H*#}xHC8vx*87UmCj-qo zbwjRycIaSNjaNI(ku;TQNO}3&Noog8`~t3RACjAFjQ`MIN%rW!eqWuse4K)jZ6GL*ZSPDrJJLNGmTH%)0n<9 zN=Y#{NN+Q7q@U&Ed-twp!XmqKi7diIh^&~Y&U;8h^X9XHgJD`$XKtAVr2?9(y?KLc>n=;{CnS_l;T*v0-A#moihMhUPc=!l z7^wr22ka%no$hES7sQ_OkbkeCDHpy}Re2N^Z7nx>XJjWFZU%nT;>_!bx|PsKYnR61 z%yFghL~?+qE$pLwTZ4ZeZFgO=`R{uvw7JRs0-r`hPQ7K$r@xjZ6{x1+HbDzOHZHkDsr7A<@?40BE>tbe1q*%oQgKxnrMO6Y~J|%LysW z5KnH?a$9Qv_3vzB@RcIm%@ms$mB-4rrWPq~@jK-66=bx%9$+3GZg~H=9d-9&$^oR- z8VyyeGa7Ks5WPD~A)jku-BMXbmN+u9Ry+{TA~+Xy@LrMg{NlsYe0;sQzu|b`z3aQ0 z9I07yZrQHq4WH^()6kI9O^yp_J&x1?N}CVVdi^R51j*J1Zx!;{-T5$C-^2ld=VQj6 zqg!w`MzQ(HM6`p#`M%%YO~DYQXb(}#XpZiiPp8gJ?qMRw!{e`xf4AW4o2>ZF9iMJT zBAq&5r51tFqcmpid3KY9xw)_Ne%>Es72g;w+87m7`qUBMuF|ZRHGX{@;(Z@I@{pq7 zo+cuGmau&V0rr=^u@`n`F&w&2O!_gS`98`_D*0E7;+<_QboE`cyGk=)KJ2~Fb` zXTEc?C?-p1#4d9gy=IK z&{@&iNTV?#lrJf~Elt$$5c}EUq(hv>K$jwpL_WDgF$iXl7^i(P(#nEw?a!AlGow%h z^@PK4SoL4z3I0|PA(s$Rt$SApnPP#TA3Ow3 z|BUGL7k{9j)bu#up1Tf=jg3!C&>`oygmW)vY^A;b#hc437kL0)N{7e=i8@I^-``fW zO@vaZ&p$;6q&L{-@}p%9{8;@H5fmiq{1mFyZq$5fZ@;K*JJ9(G;MjSC+^*w`lSyO! zZ2Q-gE7fh_(Sn8{bh3rKj-V-dc~tS(Ke5eV-}6M9^@sk5xq9sdQO(hf7`9d3ZLtIy zohsCGjS@f0H-gZJ132Pw?ys_YNfE3KLR92ses>g3$~&w~&O(yV)YZ5``+4EEehNC< z;vJy+9l%f_!WzKo!(Iys>VfU6x3-U5jG44^NDtmvUJC`_$cAjd&H)$$+(Yh$QTlky zP*$G&ksY`wTHpP)W?%u?=FAfUT500-4D>YfD{Hu&D6Sx`-*Wv1IRahcF$fcnmRo-# z5%gFCi}iS{PI6?(0zyl^ADjm%_9jN*YkdwoXqHfB_UAFMrVOyc>?hX>-y zL6)?pYdVSd@!SXyzrcZEsp6p-12lCo0>CMf?t6)v1Ar2570vVGHO zh{vx;pma*%8EIq$HN(Qnn!E39eK<(7_hJM6*xn4nJV~G>t=p6@+dIzVARgZ0tLV|2 zT8Rn$Z(7$v5jDT;dWJlMeRc#EmHU2L4GS)6Tb%X^-t$ChpmskoJp!AZf8=lzwzTM$ zb5aJdInTA}=wmdL@L!4EN+nV(C{iC#4Yqjt^clVpaLU;}|1YxAU?d=5v=E0_f!5db zs!0(7LR_`BkycUnDt#CVNoxOJvF469q7%0jCVPVDuWC)Tcsfb z4YV8q4|3O6%+cf?Q?Ro$Q?LdhfT)3RiVOllq8>j#zo^oU8(H7@K1d3zmJ1uXLAoSMIT6(%yX9hEhmWu8rKKMT;m=c5F$RIZ3r{LUA zT3#yx8IKtgU{>LX>qPx>$Xo7`dVUj2d3kvSbTA(IwC6R2slFUlpWc4~hofz3b9cBw zYx$5LmJw`KB#z&5aSafbq7ToUB7m%iNeOlChu|+ zJ6bl@3vK~7bm`lKRLM-ae%3EyWghW$l}~n)Kb=<>Cl{lb!<==x_-gRXN`a)zDGKI@NCIs|_@pz?#Yp!>;!RwAM!Yd=#P{P*li} ztapg73U)u#j6=nMhAQ6;LbKCnr%I#2wBco`Esy&O%gR+Ex+$lFhBcqv? z=4R(=zOBva$>1t0z@XmW8FC#qoZ@RYc}Isb=%4qZIEJi+yJ%^1S~$M3-=+XKcV)S5 zy7&b>2SBHQawQH?KTbaUcq8}&VfzEN*-9qIMbVX0MZL=lSsP2ViJ$%fvdTX|-pVkK z6A-+64=GnW?DAx9t%8CN2Ny^A$6bgI4Hh{V)k3cPKdHXG#h$ap$X$UmIctBKuXEjc z@{UOi_%Y-?kUrS}$dctS%Qhe@(nYSv^geh;R0wdI);5{h2_|?b zO9ldN>!NoO+k?gqzViw|l&fmalS%0tPl{$fS)^3+1(e~LUPE@Q?k2^L&;-?-FsWUL zPN9Ov_cO58MtRbu(Js+~l2#93eN7a7vM4qpxDB~$59KZ_cN;j*&6VzxeV?R<8-`N( z?vKM5JDZSN^2Pem&N zvu3EYIWPN>r`$hF?1v@#%ipO)LMaFO0;34qA^gw0<+9=9V5RJ9_1GcgzPE1>@lU`p zN+6MaJgmnYp&kqrr@pd8JTS8#=JiEI#|IBN2x*+an`9G*e3{k})lxbQJXrH*% zJ*Q)OKyj4Z|GFzkxz&~+lW9AbPhizNqYbGnN-h>qRdzSZ6z_n$@jXj1!S^ixF%JsN z_tw52fvumM#1dEj%P};F_RuSo^d;Ut!_#Uwl>3+_1JbLy{4-W>^AhZ+!z%kfrHId$ z`Nl&A1-qF@fdp!NQ>s_wP^ud6}b4;VeLzRiY9c3W@?(lo8WLH5XiP%1VdP zHKnqKz|ePp@dt*DY8e0(S)cX-^{!dcjXRE$I`a`SCfawzTo$ql>l+N9=-mDTBAnPJ z?FYZwD+)e$C?FvBwSK*3m1oy6mZ*fRarh~fZ`1=Q8(ECHXELH&nMI?j*wArM-~=hD zPs{^UMMCE``tG{ENVEQ#%jvCa*1Ii1qU0W>L-qXREqhGt5X~;}w@A42n_u~(dPdtr zEvJ#ijZ=#$_KLBT13H2GsCxC4KF>nhi}GnKXN<#ki|6IK!isX+yQr)OgiFR}WMU7U z*al(4tjOqyZS;d%oU1F>w8jijEvvqp4082z#fX`5eQ(l+r0NiOvaFna+vpZ<~U3kK`J=fMw#Ooh*inbKAH`PY&G`Gz|nXmZ_o^-6l~Asm#<7up$a& z9;MGfOrR3N|2+zxsN3(sq-4@NSGwd67FPnLbqQy81DiguLVxQgloqW@6A$&x%#ep zx`3#f!@0>m^gtgvARg>OSZ)~{XaR>HOPtD{cKXQSF-#T16MKjqVF9#L$5qS+x)*Ec z0dI1(H`sE%yw)1$i4mI}wVIXlOX#swM!B%%aKE@y2hYAJ5k^K9W=4su#f6URJz=i- z2RD02e>zYcvWM&xj;EFO_8lERvcAaIqJoe2Uh$0#MZa2nhUG$>$W+rgh&`BM0RcWd zsGKRndq~=6d8N~-vCq){$RS{>x^t)M=vKapOs-K|dqVvZhk0ndz*Oy#`9{*4rA5Je zqlv|Rh6ZaZooh5k)!-Si6tf&c72%ijvDx~}2xqn@Fr_6xA)&RaN#q$1XdW6sLLM|$ zGmoAMVHZQ?{6%2??B7nh4biWBRe++uzy6okK#tE~WpM>xh3e??@H1lfDszn}72}~U z_6KdU7#wi%?3z&RN%8X-&={yF8C5p;_vyEbNIN5 zFunsGB8w8OGg#3Vv%8~E0Qd@_S?VyjCJFl1CkRfpwJGqCbUe>C2sWKYsR=#^zO8gBR zKPFM}f2p@Iwbe7)kHVI?kc$zColi0GR;A`3oVg*h-XV&k6{4c_VWKNx(E5s=^2`nXI92izoL}D2-$HQvN3Q%xTxQyaTFKJ z=f=rF{Jf{HR9^5iY8_x?P3J>p{zhF{l8{;zdSw@hQ~iJrt$B zo+mvaNhBS_CMf}hVXtEs52B_3)QJhms`z81P8<+C!4e~-RLbu~=EbJuq398Vo`bg~ z4~Qq+VoJVtv6P=o^2C8Eem7{1-im!fE^#X%2<;sm^d!t>y~VY_rX^W}fmc51BQ*7| zW?%WW`{^Pp&V^e|6e}}nk@mm+o!Qc6Si9GPH#ZzzBk%}t_DJA7x97r@=#8boVaCBd z!QxTuIF|W#p_c3HyyMmjvzdm6I5}MUNL>*t?$sy2d1|~cz8W{0T0y_M|6<`{!KCw| ztoTZgx?3?Zxj1aMb_^CAgy*!FaV`X1kRX!irP_mo{V6{fo|#m@d7f>B=T=IL=O&fI z8nHCbYB%w|<8J7UeWRl(Z>H#>(7?!e$-}LfiwuX^NTGw)}IkaIuSFeaO>1x|&sNy0Q?v zR-Q_;FORtW=m$ZHl)^Pn2sTr^TZbvF+dgI|qs7D0RS-#)bJeAkV`9-5|dTQ;~bQ}Pvmuso}9&N=J_##gGUcW2LXml z&sUu%-LuOrh7IAB4gQ7@4UI51$($=^nJ?lT4N^xP1_BQ>Y0 zj|Lf+@{@|j0r*cGki36E$>Z2XoakFj9&R(dk~uO&(qIzs6xhkJWTlH9WL4c{l58xH zOHSyZ^l)V4XWN^1@8}pByPd0NmssiV>oQcWRZN<{-yAIZE}#q*bpccnlDv4~D5Hhn z+4&Aa(#h*8B2}vKDoZ~YSbI17S;d!A-@UU{o|-BlolH(j>R@4+n)VaVU+uDUUAcA( z0Gc0+!t3I2TOrUX|R7>rN_-^E~l)k0-;= z0xSJ4&ZBNHmSn$}H@PvFz&5M3@lC;Htwvnai?C=)d9(JljZJnLI|;7Q|8(<8-46a71}2j=f47Ap$|_6Wbehz?dp~;VEwx022HCEGc;U6VVB! z{Bx9VoU&BeFYdXZ#$ILTEeHq$M6p-J#5{=!@?w7p*kI93W&8O8?J1#j@huKpjHDxze#qrNm|A(nK)OA+6*^CYitQNkHUY z=>uNbSCl-+z+3v@JuyCru#t@maLRrJSi|WRej^3#U3CDM8+g!dd@*_`mdbmP?L8>X z2F~;rAugLFU3x3oCj|lwh*_EN#`8+#UC#YL2l`#CCy-&>W zg$bmdGTh>Xt2~twOxXtoY(@NyRo~irGnI_k2m7ox$Bf07K7+Rta9L@xbIpZ{gcc>< zQc{rv?`AB+`V>cfyx9C(g>l!V9>2*AG_?BANi3yD7+2!K&(Q>yqPa_su7_F73zzja zFwfX3wHCRV_H^^DtHHs$8w;%TZHvZ51CBE<#8-k{pU_Nkan?qz&rFi|qLy1{%y3#^ zanX9(=DGqDD1V(_`JT|ZD!!2FX-BnJe8oL^a5F9FIZK(b?jA;f1K9h~H=wio=TkA& z&cw&CUjxJMmoGy~e-rflDrLXC8z_AyG$sf<$d-DIk-x#aaN%i8{#(^!ZwMH@k)Me? z0saU;<(8kUiYEcc!QLiDj_Tr`%E%KhE6H(YXdu9mw8ls{=(ViFRM`e|Db!c{7V&<$td9IN!q9X6^;0ek( z5$z-vh&eSjYVYSS1|GGQ;G=dAN~g1R$gKzCJP5jM5LNh@lb&AW1_FLkux7Giap6pfsqzRC~V)>ISd(L~oHn6I7|`VkNhpM8)T=M0&7D zm>bPAC4PeZN(yEcVlF#=JcX`{EsZI$9gkV;iTjk|!9&$oB5BVPBT3Vt)EBk=AZgtj zLsP4% z`W1Tyet3@3z-LeuKjM^YN3HS_3Y3taJmo<%CZM<_H^2-?vY8zvF>?}!|DZrQ1bFqL zr>D#xP;?$5x2|9wBDvsn5NJLtj6D!x#UOMS6#=A!Lr2Dj>B|ft4TmKWJ%^)Fzk3heHLtx$8<35<8_<4aPqVzO==&=zP zdX+W9n5fA$6_JT2rNrcLf8{WY^W#SYGVh@>Rmf{G!N(^@Awv;{@_5yD&w~0%rvDCl zP+J;i@#th;XyjY;u%k2nJTSH&)vD=(GvA$hulA+3AFV7`(f+20DKwfg`JX9Zj-QQ^V*9_ zBE&E|w}=w-E1uA2hpxLyM#t9ROl(|gDzpj$)?KqUrnTC$>U_wdxUbQ|A7ldUKUCpZ z^Z>Ifd$iQ%ZlQZH3!AZ8dYgk%{&%IHs=xgC%hXl^10w?{qicAXxpgEPYwO2Y@=5(J z5#_pnsZ^<613Dsk(7{yI>aJIvoIbnpDj~XISuUXi^@T{zw%ucVvKI=NcluV*c){L~ zQ#T3&VMGaat)udK*XESdnOfUMQTyx>m<8ZL0-5baO3qSN!Y}?xK|)K`lRc1bBC{|x z#Cmt?Xih1MFwa3r55S9x35Vnh&p7YF3>x2=8Je)gqsA_cqsAoP#edWrpdrd&)YOIK zOhOI>P9_LLU%JPg`$b?NL3iLHbQ|l@L{Yu`@_)_Z17!5Y1n@Q2vTqYr)#kLjz&2evbIr1KnS? zzs_Mv?pCaaW>}F$b3k=mNgDH$r$u=AcjxK=R{owSRnh@}p4T;ubx~p5g=hHG&dB8y zjz9TTBBD-wREwRNNxGC0T@7=N23l+{q+X!131_hSqWxK)Z0V?s4?4CEC-)*}{b_3y z_Z8UL3;P}XqJhlB7$_ejo7mA53~v41^hLF@_gOU$3~xTl;z;|5S~@m1B6bC{wLqF% zT-RI7g<;UZG|MOp>N^am=$s|;r$w%QGxuQKEjgBH9GK!vMt zFUh^RmA|%+Y-aw3Ne|0?et=DoJ;)h3gmf0H%W0}cNB8=uGHR$M#%w^aJc(Iu*UOYP zh9M}yqH35JBUAxsY1^RpG=ch0&~N%8!sciHiXHS#8-}fOM@1tl zMn`GUWLX6r8jwKs89?-{E4RG3pbr`)k0yrIZ?+4gfgQ7HKL-a=^!vmB;0<4q$=j7bfMsVau{xl6>w2U1fs2?^k1V0+2=vd0x%Vp6wJj1(Ekmx z^38*8ZYV@nI7ul7nlnKYQx3l*Ji!cqk!(-yAa9O_#jv)>Ivy12y@AU>eUi~EV~Cxss8)^?4D=%%tZ>wn1Wk5ig08260k;a^Mf3y%Z;3ND9+zkd&It8O!jWSBZqiHne7c;5YLn3H z(Lsubs0K3?4yk)!Zfg~l&t&xzx2NGGTF^sC=T)eezwqd)oU;4fkVpOfm!{E}!M}au zC8e##SLp`?Tcyued#@f*=>?ty`?&F-zy~$V3H+msiha3`lAc-{v8Bf7PaSAXTx>Ip z!*2l!rpQLs5rvC5BSyZmW}bOA7mnK}03csgcg zL~O+z@P>#<<`KlDphb1k(9m=rMkbMXU+f3UlXx3d2MOTLtXknY*4DpUid#W zacCA1EQBpBH}{jrNugF$g+~^k0^>ti_Z%BoemV;iR`BryG|U<0K#&}m_~)Y(@P}3@ zn0BH=8y_d?G>2YaU}6-^5s|_1wB%wCb)2VHV8U1f);U#oE9FOa2O9y?e2QHj=Kk1$ zSl^)?*{R!a4c%G{j#VokwC;k*ks%A_P9(s@DEQO>3Cyi4*^n=Wfj>Z26#^5En#x~C z`d<*7oZ?@_nr0m5v1=awKuBU8bs2CBA7YU>1fzqyu(S&S<0CQZ{{i1)Lsj=5c8Ljh zQGbB{d=w>`M2uLuDjSHJn)Tb`!>y08d<@+Q-QXl-0VsU4H8r;XaM$`P+i5=IUW7(N zu|Vl@5*vd4lS@cO-2``BfDIdNHzJYGO*}!K0gZzXJFQLBq(F1;nIS0fV@(>MtllT( z5>lK9?~ZIocE_!zKi2T#zk)|LC9sO0$QWGnA@<@;2J%&!4e+tMT1bE025D45kLRidSwq`_{6k1k9GZHIL>Xsh+Is| z3g<4=f*=wzzl+Mq;6Th*N$-T^318Dvh+yF33U$%1{u-C!zZCOwdpHeDD;ljE$aO^v zVBFd47*futKYN~sG`RWnm1|B2^Sg%|p z-%%bmcXbvE6SHU(_|Wf9IX24fS#1p1I0H*$kZh%Z0b3-PQ30n$`^CkidXk(EEAC(+DsON$^MmMll0BFDS?=)=|v(GRe2j|@Vo zoChXT!FV!J4(PIxlrW(98O=PS2A%q2DGv2le)62a7NmC}slkxGujy^5gJfYnaDG8T z#a%n@tq%r#{%0#|VX;T38T$0(^830?@N+yj3LlzkGoC$Yvput6>!9sKZGGc4j1pUL z!fXT9;3FdS(MDPJ$LaMk;VOIQ8ikmP0)>$pvLWEeE3nyJtSR1{-^FlaoGs1&TY>M% zk8R3%@F_g05cH|3t0`FO zd457fCiu6uNJoXb^>JDHHcy^SamOi!BZK!_pRTXwe^Y$-aIxR`X@ufrp6EoW*m$zp z&E&eJ=p6BPyF83j3O!V32JXEM;ENhME-R@kC(p{m^a!6Z*+e=d;(|M)^|eu==aOOH z+J2Fnj@_zeNXncz*jm8NXT?I9t2^V6J87J|V(Gnjm-E=8u7pd^6S2q3^UdL=?Kz^{}q! z!D{icm3UR`(};+lM<1%mSW_#_*PjsZI*VO zu)gR4BJwCnWc^z6pY&M-x%4{5V| zJm7|`sxwK7XV<1migp9Ez4(aXDhCbyRDbBPQBqM29Kh2MtX4kx!aYVc+>wIA%-Br5 z=xzmtV!nWYaBoiXLw?!Y95c6C4vPy2<2^E?9;nqo7r0oK1NYGtj-`G4l#IQw;52F3 zc~VzH3J?%mBOj`k#$~L(yCa#Z%31V?jJauef2b0 zhUj4KomV1u^Uw}H#=hsaGxo9?jTT*JIqUqBu^-}kv z&-#%u2M+H)=|`YS4_`pG)N<#=znHg zQXF)jyn)}H(o5fDQ<6SrkLQI>!(jpn7f0IAn`xp@?I5^*;l0W=*5jmvms}2ceaJCg z&)(2{#5W!0>&ZDp z2y?4_PZxZ_O5Wt;;IUbs`*oxHRp?nfX-C-`ned@1Z%P%-Td!m(Fg<6B&mLiGw=N+d zK!*;+V5BQLS05~J?f}7Oa>?hH<9QVc3bi!Yg9jU87WPlj$x!rF$jE+NkV|)aOA+YV zASJ7>PsvfW4f?poxBDfhY?r^NE2d{;gkaiT4PN;kA*WQpV3gjX!FBE67WNFx!4MyeK;fErSCy*g;h@ zU&G2RHc_gZzg7tUayxP@#MioSzf#Oj9%UpjUD-{69sZ`Wf`U1Te7LyXalapoA0@Rv zh}bP$7DFa)ZEdU95L4AZbN1j@U88-HzZ{bB%U0$|&t`A9&y%7EbW9E(*;ByXjy-$_ z2rj93Fuu5WH;OG7oPr!)WJ`;1ZiHL!S`Kdlpyt6b7NWJ0-j02zO19Ie%o*;;~$|v#5a?Zn4qnH)9Z!kRa%(0tSBUiv|{!o$^XOGo4`}m zeR1O#H?EM2NQMlFGAknUSR|AtAww!kp^(gTrpi<*G8K6wW9Ez*OBqsBWG+Nx%IyBv zKIrlM-v9f4K3#I}xo7Xa_8PwHyVf~p>zfm@z9)GA`}6Xy*+AA+Id3A~^VjJ_bXp8o zYhtIhzBO311#~uL-_e^kH7X&8pXnPV?0)~ASvmYvbc`!gaHiu8Memc`>_mx5)5Vj! z9n_>5koE3%sG8$N1`vT60NyIXWEre9PgAb zxI^0Eg}P5PkO*OTagheygiV_~vhe;HBkV*U5Dk)+l-jDg*bK2J5PZz2d9tp!?gOVn zqRQp&$YHX=OkYH!N7kFA7Xk;rtn8~CD;2Q##Adqw5P}L3e-fTA~^79?T5A z&SQElJ`uwXl$)EeaU;r!BMX#%+=L~;tygcE z|BnW%tH+d8R=caV(=lysvggd@=HbQ#oysXZ>Om8HesAffS?Y!yra;0|9cj#{l29yf zqeX^VA^!EqZl8+GC!2O1PZdETO1MCs8v(0^ktZ~Ax#1vnzro@y@C~c?%}8Y&sK}N6 z;myIHiX1Fb(rAdV+7&k_dsO~hM+`c-y0jIhT{*B74CZGh@MBC-S3zsZ%QqV`xhegl zYMwjH5ASj6aq|kx#i8anjR@pEoBb}%5hOuBz22za2dR;Pn1Hmv5?`ycP4VJf?@2ix=FSeG1v%CD7JyZyZ z@cTwA`k#&!ooe92XVmE`R)$BIRIQ@dJzkg>Dc!_gc~K^WNFu;CU`UdJqwgxitgcz;uL$61p`_}QIc2JC$uCTIjnL`8 zbx}(<$<*F6LYE_Yq0}Vp(};fCi2mCJu{R4Ra}rH5Kb==Ag`XpiXEGa#@68n7%URKe z_tQ)T*g@4DLes&`93!avKD(6dNSAGJ<*eF^-qYuV+N7%6&L+cqr)$ow{m8zxcEFL= zT+=h{#E|rmbR&jEW*zudAj)Ed-Z9!1a%tq8kjDkMg(#e_{K+NND%7}!8rV{>nu?n! z{5L&`YfqHvC-c4KmVh{|Vm*Z^TCj<`q zcY-GBU|%A8DZD5*2H|+|baF z=Te$qQewQAb!ySB=u}#J6#HfP-bwV0=U;=r(?57%-7w>lo?l{Yl<^5ZY{>h1J>C4w z;rYZX;Obfwo+01l#^@Es$Vi;qgtSm{r`??jN7V!sXbY2s2C7|rHZbq#$U>>07%l1` zem^fS_{5E$F<$dZ|tc3!mHNttVh-&B!G%agCfyAS)Ug z9yfa%0hE&_xb5{ejVR;0 z_?*O3X(H_-Gtq@VC|YpJowUSum49&8nEkx?GrS8AQm9jK`+*>=nsH0ZL1i zvmPr`Ax-(nV9Ht=*)RS$?|! z=ujz1*gjroVKSg?Wrh9ZGpl`98)P*0*CXFgJ$**j9i&uC5 z#}R$<98qX_3!`&XR`tLSh~XwLhUvGF)w`TMtgL$Y%maP+LB-9^otdh=hbJ=?ntOKh zq5JS`Wpw5o%0FA?Ht%~lxsRK?%Y8654vFF^qLnmclf>dSB zulESF^w>u*GFn&c>dxfF1KdEU!TJ`Kl<;+zpU_apui?37A7g-t;$Iz@a{2kVbSx8o z!_1qs2n6-p7rs!dKLphJ7oi>FJG(jR`B6Zhy!dq>XQiS9aDOYHmmvUQygL8pC1#%p z>i!oxViJEFx2q741UAf}$`$CaamfjsZY*8bjd+-9ArV zrASi+=bjhL+Z0@LeO@G&8+J{SVNQh^P_rCa4ct~#@n75*oP<&-1YLOmBnIV5^oB3LernxbE0vl)V=|rT=|4Y|!|xqN!2iT!p@dD_uNDXKLn><*I$Ui2BuM*# z&n`qv@U5~?lQ0PX^!{(^1jJXFL!!h0In^nZwY*rvNzayRcSQb={28@lf{iTX-3Ud) z?6!VKR7OS4FMM?2_4&zeWGQRuransR!XYgpRQ9RPi|iI|=(pq2y zB7A2y+hKeAO_D7SI`(@-@$PCXynDA%I9kT(&mrgBe-4e#0Sngf9qwlZ8O%}RqU-a% z|5drIXRzcp49|EcA?$JY|c*7H^GDcuF6xjL=Ln_z`qzclxP`(%f`L-d@X>XN# zotddtH+z@TKjf%GV5`n58`I@ETN-lIAgXjb4@$NnJ*vtTmh)zDl=ZyK7z}L56<|kL zwo-$MA=)VM;Txb0AbqGLuXxMUqsI$o-bP0a+L#WY58(r zBP3c@!kJZPTK-E6g~sc+%F-&UJ_ipMa*?m&Zrn zsvZMchaPPe=3)xB&Yj#qcNN2*D9?m#X7It-Ni2 z17db}#2ZWz3=h|QQQgQfw#f(O)dN3OR(6$QoyF_P2n+NXcnXS^+;@d+mB_mGeeyd! z@~3MI@W_Yc1Q+yPf@bpZ?S5w2CF1lzjb7Y)|80VQsf3jC-xZj>XEF#u)?su5>~!vP z3qx+!dBNBgX;%KN-~A`$S1Bz_?Pj}O$Fa13brnfxH~R=~jbheYRXa&+JNXDW^0ccz zs|R|`-ejs~TUe4jfbe~BiP8EFWP$GP9hAtK?~9C&Q>M{Q26e%_7x8m`tXJRiY*!J+ z2CNalpG?+>Cso?IKiz3{4X%$pup3FVXAy`a#98tZR*F&fxlS>UmoCBx$X-+@Z9`t#se?bR1UWLvMY?sKL%bO0#NUGnV{H3f?RajwI(RW8`rdra(7IrB0$) z#;=2s5MLMJ4%_x?Tm?6Nurclp@V2)e9ZBA6We%R84hYkPpl*e^C7}e@zL|c3#-~B6 z^9BaT0zCcJn$_+7u-)C)Ty>)B)%aOd&{`*#XS>{IEv=qBeJKpWzml7=6tfPQV9PI`Z0E7@GlOKTYJOax>C;4Jq=2sy5ZQb z*gQ25=?*UOrGLe28bJjyRl$>euibzx`FE81#V;C7-hI}wv3lHmm|umUb{i-;RRKF` z5m-@*?vWiTOaZ2xa>-!GQX0HJ!5~eQJo@CLZ(hCPPz^{!M7N#pC6KfyvFFP8&^ulSxO>Z7c8fXUaDafD=#-B4+?4w~Zt=%d zfCvOLfK-j>^G+&RS=pCXPh_Nxlr`7<{mV_*ogU$l7HC)E`j<{_*Fo&N>QN9s7W0Al z^y~rN@Il4nJYw(e~TEfZfMfhc8-?7+I-AeJQ_*(psM~*ZVlnNfB0s)T| z_@^g9eVtdx!cZu;YQ;>u0O~#TQ9v!FItcoPy?ggK+7AWs6cA1`+&>0<|NH~fg+DK? z&dv6e^`;m7S~g(9Ke=pe<4TIFbO*nhm)*huOi`ym@hjIwjOZi&2aiy0tRl7HylV=; z^$(2=|5DRzj8%vXP?e_L2T+K}7UX*A=RkGulx5REOSOHs+ln3dUhYXgxa-YfOZ2b> z7;NdwzIiBRRTb(@Pf!1trn^O5GrW|l<(D-0Mqn`kIrch7Rb?FNUSEwmR&-$y^MGmv zXNag)9#o{Nj4<_oA_kFbHe5}N!|g4yN+^zGaw$10!dS}jL7;k>q=v}B85jWxP_5ka z_nyu}#qp!>RlrzNPC%87@6Dms?YkS}np5fu) z_bQM}doc3 zH&Y6FfW~wj9d2AOB|Q*m8eykp(&2Df={b&|hM#Vq$=B$PHhLs@IGa}(ijqg~9k#bc z2G~ZsIx4yJ0c>ND;lSn*-mo8!Jd}VO>rW(U6b)piUst9y`$6?iD07Eg9;!hqb7fn! zSFDWhP;xeb0BhCv{ecPGqIG&2ugbRzE*mKffH|U*sIJO;9gBbx9oYd|m3t9Od!&?m zo=**W+&jdCYEgazpqI{)+4iSNWPYmLNA}IbHSk~-ov+6|ruTol_C5+K%QG)hr$9cT>~yeb`n)tTHPs zZ0>Zol0vx!OtbTK;vl`El;ibDabDmUI@O>DNKYC0co>8j0c~^~$g#s8za=*6*a1&u zOkX?X;=$XgBMWwAL%0Rij>nFpg;Ok27Hond8mc`^EKD#BE?)1TA_@k%UPV45eraS$ zPd{~<1(JeQQ`nc1B0%JUE6sKcH(ce)LXoz0{&*zen5*j`)6siBer!hGN=gGc#PmJ? zM!aYH2yc#fxbUKy&z1LAN9x>1p=LARy-??lkee@3wmIKzrm`#P@WTcol`4;2CdBm} z9y6a)ZA<4q_<^mp_<@q8#DD#C7M4ytKtB7{^Od#P-@+h43*4>lUnF)2yNot>)y|cB zwyh(pA?FSK*gOr*nY6_F-m>Y4`8=8X5i=9#fS5bLC^-0rst@ZkOYCC z9P{V>7KaX*#DnQW($r=O`d~*7yc!_}irffwDEKbkDgdt{V5TyLbX8>?%iGH~Sg{w=d z%E}NP954R(IB@su^5V5fFv7<+tWA`_^$?JzL85^?Qy)K4q*_$r?+m8!87yuD=elKU zh`s;16bqW6T6Pr<9ox|7vwG% z3ou+0Rqjg^QO&NYrz;Uf+071BV6KpSi;Q+2ursTZUYPA?LObVb*Zq48pahI(&hL3S z$KbIL6b>sn8Rq0cTZbU%I4aGbH%0qiaLMh8!}*_g-c$i=rNWhMX*Vt&&B`SQdN~8R zUMtEkQl?V)TkcgmVi-UR+jeVx5FH_E={eHvNL1WUnQCPsXu-QEW+L3$dEVM)u>vU^ zG`J{B1FuxF6d<^d+ctd?hR!dGmwdg7+IoKYuFc zqJw3zY-^Z;09yd8hcQGF_*c-^a~zEIXR*0qek@dUAraaab=6k)nf~^MU;#TS(7M-< zy@jJ*fZ}8YQ0|s$l+F2}^bvVD%rSunuzHWFL-5`py`z9r%!q17M>{`xn!$Fl^6UW_ zBRQeIhZy7tI>18U4YH5-)|B@)7dvOyzCzo=S1AR0fYJ)yKzSVy5nu>=E5tyu-QExF z5qx|r!(){^Ftx11K)EzNR+O5reG^m#UN%7w6?GB#O+?&+B{X#qTG~4E$s{E_t~lW1 z4U1|FbjSG?e>{9$3&)yV=TCizK^M+x->0HL5xsTLXZlz!-_zWk1 zbs=iEa#_GS55Y@86UETj{9+N(aA>;nB_QptDJqh-oJ`>dRxH-EvHt-`BN_crzV! z=!#r8P=kePU}C=79*)-%<;S5qA7cN~A5y0-M1iZJf)<(Pizv=l3$qxl0p~$I7Cbr7 z+O?i7P9nbq-rV}DEauvs#zr44A#a{I1mFge+->yS>d?CrQ1IvKNISSIn;dX|&ETF9 z1Dw$G9{MdHU;~hG?gSNR%^CH}V1Je|^30r-pDk`_k#u3q8~UiG<=Y>T-sr8^N)~2} z0PLV!O85!1n}aWrXrKX*b#!~DG%bS9sO^vN=%JEpTg#OK3S8SuWK-hs4|$p$!uC2f}=m z9T2#LEVheB@|s!qz78T8QeBkJVcbiTI_4s<-k`kO($Dxql~JD(;!nfwuPGLq@)Gj9 zTb?XdAgO|^l_kLXPy^l0^9W91?;tiW{t-s3V0~AYxBqP|dS{EPNsTvB zoL49>$=VF9AII>&K1*eJV$m1CHym`An;a++P9H=W02wifB5zb8!d!+2fs4jw2?V}6 zLX@hAylS2*pWPb$xzw^d3}FAwX9tHT|hdB|LJ|>R&w~(-A3GxL#89?L`O570W!fc8m3o~CC zcNZ75+aL8;&qhrS7r1{MVAzdeqZ35XFI-D#PeZP@5YbPf0l51b{6^Vjs%; z@UQfE-W)Cj$#EN2p;)d^=tR&#O{4nARg?Wy0ZhK_~~+u^r(@iqUfy-ACqM6$_T! z!*h-5@66YzWNzNLgEck?Atn*k*Q#tvQK!Dx_mzsJoyFk<_VjFDKtH&(=&|z`F zdbL})a3>ZDu44542dMLMB3^w}H9mhSH-$*e0HlKb&@4S9_rPS*k2+uMCJu=b6Pgaf zMVq(20af@l8%#VJ-D1 z`<{9P9Rj&7H%8e$ms{F(i(|YUmVv8R|FubY*lN;h>(W0LuyieIKXj>PLE9|k%WN_T zAZw_X+_>UU2s@h)G*~vj)Qi}VZ<`o%Wg}7@eiZpOaUEnrkQlkegX-%!2FkyX14mw7 zLLyURWgw}@e=mc=x5aHClGmdiMK7`lHn0JQ5t-|CYO>Y_aVH=0%wDl1RRk4 z5Kc?{dJ;QO82cdP5*_LTfZM|uqPB&bmerPN4*igk%LnJzsVRL&j_zu9N26y0d%?*&BEp(H=QzPI-q;E95IdU_^E zJi9?+OAEFG3msn_j)Q%1+YREQp@dk#2lSqe3J7A?wfpc@5%L0U=o`7g7#~g~TEWH0 zX{tSJ-f2mG_ZS&x?^XPYfF3EX*0yK1a|^atIIZ?MFa>LS99^!A{~?fRT((4J6H*Zi z-_p^f4q_%R|9$_^aig_PYOWKczF(8_iUK^`N!0>ScrVa8tO<@M7B*W~(#$_>ZZ~v? zz-nPYYPf+AyxH><&keJ(BI58F@Nj|xZnh-wTF0!g_79H9=Z3!b^a;lv=wE(vD(zA< zG~Jl6oW7(AoqE>9cB^QjYO7>RLJ*}6A@NeQRWlpv1$lN!f(QChpkc2WGa^-jj`35l z87uf(M-sk6gw{Sdwp!}zN%#ytO}_L*g(;f<9BTNJBvbAY{hWI#a@k*O>2inMc*)ch z%{I|@{q}Psq&aD>QMupUo>ajZ<+HOZY4*VJp>kf}TtoR%!{qq#%5NEH!nE;NmcG7B zYAt7FzxFNIH>SFOqWTu)o?R=;<)%wc2BAEdS{sjV;f1dv0roKH<4^(#64*{ZRj{9!ewiLzQRj)iwqOfT=5E-M{Le z1bMC;>h{=A@DWr@(TUmr#dJ>92 z-Qs(WUyj;_f%@`$riv!NXdlS|t2ke3@}T`w^1Yd~q7uwLA zb_-6!&c_XXY>8dm(5@DlBg+1B^{7%43ht4aVtf)FZZ`!8_nQSu6ShXUP?5>KpH;&su;EF7sK7qge_Qa1>Hi=HMK--DaFY*<>SO}(_KuSB*`i*w8Rgp z6ik1%2)#fHa{JxSMT$p<`BFmg1A_OA)jpt=OO`%_G_6dKCY8!>5$0hmo!srk)Cg3Z zb6Hq~24dKd#F1Lc_VlG`xarZ9JVKS%5p)4mnazfP8g@wl=PSxB*u@My>+G&1N*THp zJSIz^yfkDVmLLaLh0K5J7obT!;X;E&rSm@r2F%q10WDyeDJoK;Y&1=C<0UVP2+2)M zKyk6pNX%nUhWAGvR5~* z$r4BYcMU*Yi1S{Y-M4rP@D5hILKzgC+`+U38!7hR0#PC=?Nwvc2}($xV5g59|L%G2 z%mhAg?8*MK(xmycLwd>j!y;DapsIKP+H3b%D1ycv@blhCB;rFhmTrmS~_l$F_?(?>0dpt(HI z;biK~s{+crbLTFQC1#(rj5l!WW7-IoAv}%*9w!IY)4&AatT0PElhrCp?Wg+j8si}LR%NF^f*$L{7e+_`%8`?pw^s~2dw zO?~+1vN~cIlqH-TBgj-PMqfN!X>co!qufkC*3d_5iV&Q5WY4egy_#X|5_HN$OU6%R zWJ!0}AMmxk`Oaon!0hmV5Hj%W>p+&#tNh2GJTIL&ku`2Frl{UZ%%VBGb)IT|$s=Xa z#r1a?FYHluJUOUx_$&R?0cQF!(ue)R7S@NZo2psZ)3^=wc#jPf4N}Ed?H!{D;Qdv; zqDN{E)##@V?8M*Ec`rg*3_3nIP7|=xp!Re9@19DEZ(4IlEsonaG@d=HU{L$#{2`$( zC)8=xr$+`>Q-4+{GEOtr)#LX8;r{xT%;|vFy#%+RFP3-5)o&CFs|gy{P@5p*Et7MTY9(4gBc16Ee7)5yEgkj>KrcX+JP-X1Od{b z5rq~1voYG4t{TEE#pV`^7V#sURPnN{?H%?DC&tZRnAK%u#4(k+4?fMlNzR)_+#Ime zlIm7%!3~G8s?BiM|A-AfgIr>1khDZTp3NH+WSuQzv3VFQS*4!}G)-#Oe0SIcde zyK#f_d1`vv>H@yB=ULkiJ7xx6$hGq_pCW~9#MuP-qxk79EsD+R1em9^yJG0{!67CZm=)5}1 z{lg{`Ju6~YtM(d7U%7(mf!pZe)Ds-rJtjzVZSY*z*=(QuKO%3ol}k+OOS0(oWE>Rc z9y^7!9usiBj!}d`C1|}_(}VKdU+`7G&|jawIsP-#a_5&pZCS>*7@B!E^rQgZ5F}rQ zB3*ukaF;)yTSL))I?i0V>0lw}7L4z98TlF06gzkNTZ-Pyj@r#nvTydqbQe$mZ2WdM zfZHiqpqQS6WJqeh36n6})U-oxVGiusEo~4Dc^QUK9@~tRsGLOg zG}1^;cGi3o9Ao2}^K_=Oxrchr7!Hwl957IdlGwjj-mW;a08vG}+IZj{coi>ZRrH*a zyP4o>1e;OC2-|giT|1j}EK~Rk1mq0s#7tN#|96!yj>>R217k9=jbt{R{Pk;bK$g!D z7v356@~#y-klSlH);TR0`tdJM56lrT!mP&NQOq73X!r&K3NvoE4U{`CCr6y_j2pEQ zDIH_ZR)?=}kk-{$XkeG z8>qaQ3dV#DPRttqZ@|(kPzU$^=R-=a4sUcsa;EQU5>kbM&u>TGEiiO@r>?)7Vu9`W z*n5M6SFfI3X3`r|x+~Rp#MHLQk~G++w-wa<1vi`_PS)iG328KV7qT<0XwOG0n&;XV z0&0=F5URhJV$xNXzAE$=40;Y+GA2ewv&5)tzZ<@FYzDwm;J#;wpD|MY;G*oS(WpI)?v?r5hhpG5$>-jI@Iu{3`C2>ySN z`5HSil%WDeQpY!gTBNw7Um@jAlm#tS^h!&Q97o!|jX0ZJL$gC-9miuUJ?K;TzHxfy zkDpp^eOr^`SPdhxq6*BLw*~G4UkaFr0=d|yEg(Up)G1e6e+)b-iwrn)=oS@sSwY^; zBB#Md1%3^gx%Q_|(??yivHD$vd^0koR9*u7oRG3G z!})gnLXj#hHO>8>#O$I?+E6z66xlRrZ?Ut=*I*}X%Gk^Dl3pe>tB?mr=buhxAGjbi{gW`@T(j*KWxN~&4_~Q^5Pruo zqdvImFU?Qv?B3%WaYaBkmG5q+?enk^>U=*H+*du%Ny&wpS_^`$B< zfSAM4_7EIjEEWtefW{)5Dcz3DENv?mUmts$-aBk^4fzC6+MAMWdS*caah;y$WaVZi z9d2A^EVxs7M-Yq+P8c~n{rzL(H`gs1PbcvIx7nP}in@BaJ7Q^&GuGAGdgSLZ4R9ZF zg(U5cy~9CU+Y+L`7B2|IefA`8*uC}Q^^JyiAL|vKNQe8^&b7i5?_ae~mGmJs`|S-5 zk^|zFL)BCE4z)x(eES(>9;AVnXhyclH%UF#qM6Dm`Yt;JE!NX8-Isfl?)JRKX zk%p+-9Oa2``Ze;kbbhowpjK_9iosX_=F<3w{*G;TTZ?RLY;-l7gN;>B^;|MZX7aPe z8+Rk6_M&af>J}5##}9?hRBdP9zC-4l)1)1bQlxLEB#L?I?ECWz@~)22rqdrfssRfS zqoq@H8uPDY0w37N&!f_*io%9vxuWC_L$14KK@o$@vyQ*IjOz#Oe~X~bjENL%c3u9% zqaO$UbpNzcSe!|mXkLJwq4uu|f4QvI-%;S0s|#Twn-W2vmrWesW?$1#z{6yJ{=8(} z{UJ#3D|qS-c&92sJsETBFX7JPozEY<0z^QV_6=+Zez& zJ(z6ao7>)%|0BjCoqQE#}{C zgUR#R?D36B4r?0RvSUa$ZfxY&mvw7g4cZCNY})~1kKK;PY0>?JrL0Uy^BH# z+5DxB+@hCxjux&~?lL|ncRQO*_$O8l)*cL?LO$KvSOlmLiCV=(2E;H;lqG;ZD&cgrej?(I`>w;KLt{!qIVF`o1OUsRn||f z%^#;V!A=u=K;B8<7;?}nEdI@f4-bz2og-b}4Qn*VZ&}%;=~wM7u{jE^&9Sjm{N|GZ zXN^uWRJbD z=Vi3jy#TW4=yXDJ^KGusgG$;_9F9BfW)6Kw_r zmu#+_zlm!Me_97Q#Lh#Zbk*mwtA`;RO(^oHSeV(-Yy~Ye@VIFPhb4f(t{-3g(TITc z3st}sxix)nUUvn&<_m@5ukp9Zv* zZ2_U_aVsP`{qAP8v^Kuk;l1AIWhESidHclF;czR-xC%ij$^8YA@EXN!seA*Wt@X=j z1DayYdtH{veFsWxX>IZW!T*z@&ocXnNdCy-ggkEhw6>)1U~Q+FX%bUiv*(l?h3Mz<4; z4g$xR8Ny9vc~9-RqK?65W#DZeLw19p>UAc}-mS^9Z=ulltNc@o%U@Uf`D=LRHVB+x zLbgJnOVV_`+pt}Z)2u|+;f`X8k@S_$t&r3es(|D)H!i~9gv&P}UDBtI=izdGmdW|@ zJrE03&G`o*S_s9Ro<5v>4jgOMD-@gUo@5*FvV`nXo%P?@Vj#@0*}u*6d47iCA9x!r zN=JXgqEb>)__fid2!qw@y3Kr?$I`r~03UvJ$Qu5I|8J112$!m0eIe2MCG}1BTuRIi zMLBWF9SAQxajdHS12|W|+`VJakY@f7$Cz0^_|e;@#p2{C=tH_tn=7_fmtFYS?g;$e zfs!kvz6SmuMohA&)iMJ$5*J@H_#U8)@6H|}K5h8mwu10{LhMAa{lJnewh>j%DLCucY-L zE?nEj3K9MM(g%MA85C{MwAgpJI~>>1IqMDyVUIf_#2zdgtaa}_iZ4)xDYdp9k9;6% z!toxng;cH13zsjC{M19z12g#VoOE__V4(_|lX}-7gyt2#w74v#xep>>f+Z9sb5u{o zmdExT;_~dBuVg9=IRaBdvLC!fsat{EKiE{7?UgGoNzXF!6+wtux0nG&z5CvfdS(CO zbpUnIpwfM!`G7}fgT|HxvV5-G`1!rAJS(jf{324%NyW`5v1r5j=DmQo6yry&+@H9T zf{;%$s73j(Jlh@jr7sqGN_StKfHS^@)nVhKSQ;H&yioh>Srq&ZPz2?=3{&q_gN#Yk ze*QW*f-+;|S|4F9m4^Udh<#POQF?mvd>kSdZp2cV$+7}81q3kbjsmDxcOx2p#{ zl%@f|`O>eWD14kLyKltb?oTH_U()0R>o1L@#&GqdW!W`L{a5z}12= z3j?Axs0{FwWuy+M3V-zIQRh(oZ`{B$7nBXBbH*-a`GD&v$h4mQftE35@GqSf*h#sj zpwaJjb<5ZE6Edz|b#GXmAi>zP#hKfhUUTDT}&0L_t}JMKv2IoZw@x=G&y;Iy$7-sc{pv zlC7V%##*^k18M4cKwO97Rt|fjv}rpKe-Q{D44SaIjrk8!=_wDeeEH905$va$^}J++ zSdg=~XoNSORpW!9wlX!<0 zhV-8TeBRIOx`@Smj|_XUziDoFTUpUmkGI%WA#YZT52ChHO{l`$*HWOBvYwHT`13^CuBd*ZMe>L$83YT{| zmJfr1+S5F*hk%fx7b}kep7DxJEZi82vSvHf4bD+vPP@U>n^q=o>E-6xYK?W44jx5H zxd|yHdTl&?;VT9o2$!FWto1MrJ28P+A;^9dmS!@SV=Tg$!?PY!ZCpVFH#MU^B1kKo zHqUpKc}~=1E_I46^`#tB0Tn$DuL1PoFwip?2+^f<%0?7izD`Ue;=_;C7@f{6n}6Ur z;iLGb0wYh`+c|X33Wz36-K0>dI%{8hKA#)!@`0yjQ21LthAEm>pbVTiRmqc zl6owHq5x$kVmvPL3dmKov`qOvYGB$^&zZS#JF+(SZxg${)cd)*LDdgM$4SI!E_{h!{<08HDvD1Jc(Hk#0qO?)I}%>Yz*cA&8wV76)+6+a~;)mGuQiAfT)g z7Ur}cX4XTA@`8Uy3cj0{>##BWY%_>pxqci?2Spzs!Yv1(;Ip3A{G|e%HxF?Eoq~Yt z^at>^VMZwOAw<@(|LWM4tKU9je93*lTO8~PN^`H9D}qpArbO(;cc~3J(O_t3eQ8+v zIWNjgDG=ERwYl?>EZUeNtlKX0Izs|=shW45Wslj)Z<8f zYu0_C3aIDh2ikpfqy!b9}jS(^H=pif$M}3BwvD)<>WNugjUDgG+qx})J?#f^2ujO7ek3ol| z6=GvKV9gG)a#D`~6{&XdfLq*u<@0Bg<3@`|tw(DAAPj&Fd)O4R_I1ACIy=$WY@>_x zq|K47t?1!L$y@f)s_G(o2GntpEjoHf5QLEzs4@harH-w5^ZcXEX@?to?dK;8;KA~d z$jx+K0EUlGiCO>c>G3s3EQ-}k3A_5r}AN=7q`~3K0x2c zjy4gdSc$S5%%;`|rJl3EBcx%L>4+vEv@2647UdU%_VB!iH<0bVy9jyPan{Zw0L&qx z8gapF0P@YW7>xEy<>k$wR3Ikl=)*U6OiN^3fWQg|Mey%(4-Q9v^ZKtl3CHJDwB+6fMi<|iq2czw1(}iT7bXifrqbtivZL&UaT_*AqU^n@4er`2 z*v5ye#N4UQAq!nCR1~a+byPg z>=>@0g`YM|{S^{haQ!&(EoK}twPa>E3JdrTrPnnx4jiQ}H&Gl%%YhEzupqBxeJ6o? z$5Bzi3di93E6n1q^{_s47WcX)UMFLBo1#M4r&1n{wFlP9jDz*vzAYU4=46omlUTSdFJ-|LKj;=a7~{zc5l3Cc%1zF#&4A!h*HC7|9HQN#7Bu+U6e|h0=SC)9r(K9KvHaGtc?Ohs< z_gD-qM^APPsFtdQ=hjJ3a-*+Pv-&#onbH0T_mX&c2s?u_d}>CkOpXSbx?L#`BXN79 zLIe~i7peu6&P;`ey3Ki0DMD#@i{s4CPtu+@lTR#FLe2qYJ~j*SP*@h45Oa88E$b4V(SE3cheOt`kbvWqaZsjeZzk)tWBAcR#wla$x5=R= z%uds;(Nb|LbbqJoc(E&KYB4(}Pg&V3!q-cio;kH%u^1kCy4tuEPl@-M@ zg-#lQ)1nFB8^Zai$?%DASZjIN4Vf{d?;;~|YZAGK%*eKxGi zB$ojnR)5tDqUH6NhnvVO$oYxlWK+6i7PPk|$X*h}(VzV|GCVoI87(Lfo}(XE>rD;2 zOiO?gBnl%Lzc|K?6H>wWi9^QW914r9Qqcecsun&Y*~L;|aY*==h4ZR&>y;3Js&6qA|V@$I;3atbfdlPqCI zNlMDJ-z}kCqzZT%qZ!@f)YQ`^qW4R91^40t3&Im5#0$+SaVkEw6=Cpy14?Q(3g69& zOW~pNcHQp1^@kJ}T0DP);tW{KzIbK%EkMbQL^1oq$VsftD-EIDDxqZPU|L*pf}2!y zgZt`pS~2Ri&A3;>i_SD#jpG)?sOd8DV%dZVXkU~#)rD0At11Ju3!=)-$>8%7MY z8=TuB@LCOA6cq=e@SI_}#%5Y0L_QHuMonw7uw1@MjX#5)E89GV<6Kt)9OF(4UVM36 z%&5T`cPafl2QD}2?k;622VpI1k!@!h$%edaUq(gcy0I%$8K37gq3_`}`0&Aykvsjn zyqEopyvJ0{Wa(;#uX$8PAXE<-1lVbQJz)2OA|NT*B7GN5^a7`77QmPyI>bp9xzqk& z@TznqRN%OAz9Xy_zxP`ZENHt9g1~TiVnrwepE)go^@KT&qQWekr&1Y5IS#K7S`G_Z z7NQp!{J%Cq(87+BTpUMetm0s!umGDfgL7$sv4V$T+3p*UTm{bJH^$*-3HQ|n9;h|b zfJjc+3@#)JzKAw)DsW^wg|CzULkn6sxmgxDAe$|eN(YyE^4iO$zRsF1!V~$VGcR6? zb%m!bD=i+Cx!we2@vfIpU%bgx3eF(L_H60G zkNaFMHA2ZknWm)+ZJ~#gKaAMIXYaX6{w$9hLxW2hIuO<*e1Vp>YbRih1ek3NJn!h1Z;fY!8RA zny@$}juVGB!x6{TOI#^&*ElIy$ys0sss{Kr{N;tyw7`A9akH?3N?YIh0+-qFa$9(MpJXTV1W{Q2k{DQSzW4sdSwNv?G?DiLAd_Ra& zn!+ltc`^>2V+h)%DZ}T%m|Z;z7sq@4_Enlmgtnm-&vLi<$#@(-NTYgl;HGL`#x2?8 z5q5zi;eKi*Oub=tfx7~k!>T*L`>`-+hgI{QW7d4lgF>b+qOonnWDPdG<_UWBCPufS z$OS1v$wVzZkI+IdeWvkz3)FupaZ|PIw#E}s(0CO#=&T_FwCt9Uy_ZU={+9zhuYtaN zANd99!9z+e{lRc}eQ<_}`_yG_;#>vf-)EP>72QNPW9yS!%e8=9Nn$h9CI|k2p-4m% zl9c}>{+Sf1fm1IwRU9COclfk>BYd?^_C&N@-;u-{k+tOqgFZ8lv>%@5Ns3k5Kv3AWWJgVLpA2t{@Kb}hsKUrMWB`j;&si^sAl~XkwR6RtRDZ|@TthT2sB*;g&OfGtUzeR5f* zH0uQ!^kZSZCwqCVF{N0|jTH})^C@dO@`;?kPpe6UC8!ang(V@o-XoyztMLLbrKT0z1|D2xpkB57d3ws7VlQXaF8#Vz*&r zj7suXQ+?jU`(MeX=Q)`1Fo!4P@o_NnO4DiGYq&t;g`-XlOv(cqdc!`kaC)I_#PpI^ znuc=($4#yJJi+3?M)cj1-3E%c`GYL3m#9xiMv>ZR*l@i_o`$s<1dCm#x~^y@RQhy) zX+Wtch&gOYjyNKB(q3z4)C#?}pE(Umkk6W$sDKPN2uuW+ zD9w|PEk%BWhY1qAaI{HmufdV?B<)?NsMf?5o(uZz!+nWIIxy_5Oq1+GHBAj;GqMdV zNhm{79-l}OTO$NHzxwwU4Ht~|Q{IAwn`~Ss$SbQYA}m<5+0clR7PdMJl5(WO5Cp=4 zhdw*!{)aNq{@{Z|$9;*694rJ9a8}I=4sS15llkx^?Tv`y!?KB`RpS(CeChXs{1PXQ z5{HP~3l1+t9+0tuX{a;)m)QFdfge;Be1f98EYhO4niXGjHqqi#1^eY24*Wa*((SvO zKzHd8Mg2N5Vh@1bJ2dN9*umVS@EJ7PrZi>z^~|Z#pB|apv7l*hdikhLgPjDW~s( zw|hdp!vp~^AcepBhoHhMYicB2D7w;MH>CWW zTNCNQlF;fZM6(>g1teJTr0JW88{I(v&$|G~8C2^)o#94iSE7+ZQEpMe@s8waEQu_Af7rmxqx>u)ko7oh+slNtyI zkYQxOS{{0hL0R=VcfG68oKSyl*pLHBNa}w*eo}H?6nL&{4B+t36dA{f zJZN~?<_*5)Yfg*3I3F2M>@ zYm{F&o(#=emIaLGq-ay)%Y1p7)VH!Q;b8nA`2WAg*3GM8EyAfOmE_n1rYb3CbmL;f zUH=p3MJ}a_Sdj5BgX_$V+USzoBx+%wVAIUglO@7VX64IU<{Rf<&}2UU#aoS0f4i3U zhmFq20?UE%6vg zBsNy0DXJl#7NVAxHBZ{>P5<>wfRHKLKB&UEL>g)CiaA!Uh}pLJ*c9KLIqASQ5WB&ISCB^Dk?r6$ zSob&aH823v>=wS1(6sdQ(+qY%w}@WUoSrMm2P~L2`2joB2$RoqfSU&_oK^~)E7t%I z6O>9$SgY%-^~ffg4Oqo$DJOb1AkT*Z3)ZJH9$#coAP&g*SN6g{6aKL|!#?y~>@ literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable-mdpi/splashscreen_image.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable-mdpi/splashscreen_image.png new file mode 100644 index 0000000000000000000000000000000000000000..c52c2c68019b49c56da4faf7d8835a8392cfef7a GIT binary patch literal 59836 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 literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable-xhdpi/splashscreen_image.png new file mode 100644 index 0000000000000000000000000000000000000000..c52c2c68019b49c56da4faf7d8835a8392cfef7a GIT binary patch literal 59836 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 literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable-xxhdpi/splashscreen_image.png new file mode 100644 index 0000000000000000000000000000000000000000..c52c2c68019b49c56da4faf7d8835a8392cfef7a GIT binary patch literal 59836 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 literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable-xxxhdpi/splashscreen_image.png new file mode 100644 index 0000000000000000000000000000000000000000..c52c2c68019b49c56da4faf7d8835a8392cfef7a GIT binary patch literal 59836 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 literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable/rn_edit_text_material.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/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-expo-multithread/android/app/src/main/res/drawable/rn_edit_text_material.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable/splashscreen.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable/splashscreen.xml new file mode 100644 index 00000000..c8568e16 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/drawable/splashscreen.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 00000000..3941bea9 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml new file mode 100644 index 00000000..3941bea9 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..0a61c1b272eea7a762c3657ede11f4ce39a8cab0 GIT binary patch literal 8377 zcmch7dpy(q`+xV{i93`m=F~wEH95qhmJSYO4rMhNmcvZCw>ea5icYuYOi2@J6|L^b zFy>gq+Qjlf%4kZn7`Mu)Ldfr0_xJbsJ$~QEvdhv=kt1A5)QiW zQ~g8dj|B@Bs5^V&T?Q?zHX$Vy=Q~jsE9Y zBGTW(+0~peOlDkgasYqAceOoHES&I_UP{P#kY7e;iC`#fV(xRe@|XT1yR>^8Rd0&M zqS{fV@h5AQqE~0*Od@F;;Nb0_H=GHci!QY)Rw0P6WzUBRB;wq;9lJ{^Di$gZo&|>$ zRC7#3iMhtcqQw0Cw(19*l=kZMT;oUi%`dXaCRB+qg6b<4L{KwupJH-a-p~6d2k@Hr zr)OBTcokYE=HBI~&R-f0i@5d2{3YDw;cBZK)^T3;tI&!Nv~Il8x%oRStMT{}Unf*% zLPD-r8E1OEh#SJwlT~j?C6OddFJ=mEFaG#-a@ExNq-t~s(F4yj5yAUkOyIbvjiM7- zEljEx(?BU&gF#c~FOZZ^KP;V&%O8G=$}DkxxGdLLh~#HKZV#;(oqKSc=lzO`4%gEq z$ad{dKkPL;Su+cB6C#_rfiUNe*U!hWuTBY~Ycr;!6J8kZ`OqqjzZO(<8 z+{Z72EN?Ugxf49$mAM_t@V?$Kl0=izuycjFued%^fBWs-ULD>Vj><`n&rfLo`YiQS z(pKatZM7L;IZe9e`M{c7lnbY*(beeWBMLuz(VnFGyZew!jM;P)lidE9ajIrrB(c<2 z=xTH**Z77=WFZ!73{CFPTfO>&joSPobgylpHJl0!HG0k4Se5XhB#(%2Oa=G91)Yvj_@u}^1p{Hl_fhNFh-?Y@9et3=1}-&8U}V8WU>`!oVg8L6s)fxQXl0Ku_oE#FrLhP zd{q&y>G}DOC@G!RWI{Sw8%yXaZ-~(I6|>t%lW9I&A(6lgwE5(LH;i~Y=1}c z{BFHQbfM>==sL$0Q*>5R{OB3$95;9O)Q@vBtwzqC*%3<68yFK))PvL&iR-?l$!AC0Z6k0hR-9pl})<9Bm9+N5so zd;61^bDKV&PLekdWF^WnN=pyCjx^;5q+P$ho**l-6c+nB_4K$V$PQ0cIPnct7HTY_ zL3$dquUh}y=$wuyq%^c?{oEDMf&_@UKa^;UeR)FLh1u^*OsT5YNgAoJwHef4*cmkV z1rQR~oVQVzlq1uQjn9nSq0f9@RomNV%Z*~BZ|MK@Nh6YYl5X>1FeEm9^azsVg)-P; z7WRUBOSQ3NXtL((S^bU>`tM3-)*5&*VI>z`GHYy%gHR4Gy#namXR|Iks~DA9W&2s&J=}I_+Yl7TVMWpBjWVw(0{6#eEucd?K(|57aX%W zQ{(-K8=SiVat21j*9IVw?2H8s3nA{K#sZ&9rI!d>GEcn^|!Q@(Kh5bW~<`dcz--fN7)5nW0Je7a&_doi?W(6BjvCcqG zKc(%h`RW7xb2BG@4%fX$HkMpD)-aIu_wd{3snM)lW7yu7rlxz3BYc3g8q@q>_cL&M z`l_}zNF+g~oS<~ueK+z4>|)iEC(?mn0}sRmfB8m8#!!0)8(Z7^`J1-hG3)2YoqYdv zrXH~D*zPe`Kmq6U$M?Ib5QQXyto%WTZQaiwER<+$P7{)k*&Y)AxMaOUYP)*#h2> zbKuUFzbX9o_TNU{&s~&PecIG|GHUY6($rKnIQ{T|mf{}kP(Bw?h9)m;&6lw-Yd!sQx7dP>BS+g9LBf6P7zQBg!L*hvTC)`?#nZW z5$p`I;MDeQJ?q7hgQtFHio5`4)8)2>o*fxv6BxAEaYb2>U7F3Vd8|hU!12$-{8u>q zs$Z|8iny`+?q*nC^kNEV+N7JV!A`^3q1&vU9^JPfV41og(BdI#GvxZdeM7T@{y)b>l^E--D389c4ggHl zg&cwHEvMzIxiDK#XKlosWXYS-cK!6HO3)sNlaY~p8f+QBG=rCvw7IPF(UG;{lYoNeIXKHcS_ zs;aUeu-B~lqvEQ(YWnNYX5GK`Xo+yqVS0@Z-i2y++Qt09vg8aO8#}uUYoM|Wa?=)g z5Qry|xE1+z6q8AN`4&PQbWVGS|MuG#M{bN%1X=0atmY^ z5Ice~EG$v??9(lr;bJ$I-1lgzy1M&;0}dwYwI{I&w^*x1I+>ZI@hASe5K)smUh@Jh zvy^uTgX3OD(u}U#Qci@oZM!(CDnxGC!m$vB({1i|f2HsDrlfDMKA!E&BtJlHew3eG z-HFn4fzU~DviB}z0K5beG?%lxspdMWmDM^YBO(Mj+a6L+hMSvTZ}K&|o~4}vav)Ye zpwu2hxS4C9^wvs;RqU94AEl`f6FRCT2)?gDjYeJS4B1FQ6V zuS(p`u{pFsLyT?;1He-=Dc;6?bPnD7Duljr5iQsFTEFE3iE8&M^p2qI#9|BN*UA(K zU$olt<;5sLOj7R6BEK-#Y|bLUr`ztjyf(VHK(En+zI}sWA*GNTou=(IhN9B&8%c0wXj&yyB&(Dv~MT&5- z_gc}%s|`{Q`HJuLj_B;J+~`fQyHFd1_9-?>VKjzV-R)2=K?&C2Z#bE_U|RVTn9I-P z9~P8x2q>nn-vLmS=jZ1%=FZ3cqJX|y;Et1#)=XopbH}Pe&+B2J%0xH^4_7?CtGs2) z!B6r1mO>;z@ZF5SoSYmJ-K9%oGFD1iKrTPO6-~YjUPhHz79G`}m}m_HCW2HbN4d0* zoB`oc@#Jh|GEEY^oj3}p4PukO(*xU7zvoU0j3Y5-1IQ#>pfW9L_Li(?in@w58NW#m z<3T?+P4{>0PfrAH1h&+8MaOq=D zZEtazw;M_nm@^&Se7!N@W+Aee9Jm} z;zBD(UOBCqR1m#|o*IP|P$tB?UB5Y}bEPw;d`&zXG=qo>^PQB6GF^UE8=!?&sIN|p z4?l6jVa3$PsCs#8W>4JO5E20>`O&5pbZxKIW6(vgQx~m>+MV8o4%dc5~ zF-{D8(6JcM>qt>*O8jV>L#*O}<`azeS>b4L#*nh-LymR&26B#Pf#GBJaiLSjKx4Bgy&6qtQ5<5!EQH10WMf14r7~}f9_*!?vLs$9&CLOsvV@x4 zxRtLT#iC@abJrmR`%!)(=;zsl+`m=U zCJA2Iq^_TJBNG6q;CfvF%4OkxkHZizN*8kTH#KtsXhx5{vLdZ_I|9jHYv_zyxSvUe z!=L*prg%2gE|?{PT`cL4^8BgOMPjK1z^*r?V>mK)7YKf1Y)D1UtKrBgX09>l4+yiT zN8@&BIF`UH;pW!l#zRn_x^G0ZPE6ILZ&>UJ@br@dThQ0{hnNRxK6=cvK&6lZk#qs* zA-HrgVAjzheg*O`SEH@}HC!{d2jOS}12^8K2VxV7J;e+f%0;{LpXvdQUZch1RgQu~ zn-gJ!BUH{D7Q;%Cwafpev@jlzJx3gP$wi^dIw3{Ni#_qH&b$esH+VD27#>R01raPw zg%yCE3RqT1K|@)n*g={P70RYA&>iT++>aa}sQ}Z|Lo9E-jnp!4RlfcWvVbA$q8`HE z2xuvXSm;ZzO>J?4Dp*#{2{3J4_9g#aXaa68!Z3t5akz|=kc(i)o~|+M@nC6DD>;;| zT-0W?UgLn`Rm0n<2*)OLIW2+a1F;Dov;`%C>iv+|I!TcJkn4qdG@QM56q2dOktjwu z!fisBY|^h}$b9&K9+)b-n{ics1xcFHRKEv0)q;T%sh+XY`yR^!F(5>)&aqIa0$qN< zfl3INtrROARf5bX8Nz5CRymb4@frcO@|EH0kV5b^Xm39oLH;Y9`8Y!ZZaC{ za#}Ql2=1lb&n6{3`1HrIywf#JXfoj*PZ&wez(Ja*0qao#MJ3=$q}aGuZB~~Gk`@Mh z?(1vLAd~4EpiE0jqVV62jjc0iAPOQH0EfDQ0bfGUJNaq=QJw|$PT3q4pE8MQ2JU&p zuVz%P7J<~};h1tEx@K9OL-hzm?sfH62B6TSe(mCHR4 zhs2Cu08Hz%S=IUWvu4fil7$d@Og2yvp53ib2RBF z35qGOq!=`xftH*@B!cE-05CT=7XSe;F)&8Dsm03>J9ayO6nU)Ps4M|l%4BMbv#DjQm$md;iUl~q(jV}qE*$SlJ zVKZ3jMiiqm)eZI{e|-8QM?XM<-t(bU;dNPnX0L$3Pu1MZYR$A<-D-o;JK+cE_@+Pu zYy65X!|Ac~yg^h#cE#9f0(gplcd}iUqbF-P|pE_rAD8W za`baE((CUwLOrr=n}+SqoxwSIdDpU9*FWf}`g(R97?=kEPgE8v^DkNlm^$Oqg9IT~ z{%%uY4GWWUV~0+qk_n2kAiG%5(&FHyt8x}pSEljlm;P;Au?ndQI0J?zxWR}{5VE}uqKXYMtLr z9b}S-!?ap+%e@?WJn{IDLLlMQe--l3n9J21Fb5%Pi@+82CA!^g&HSBVuA<@tZ{G7k zHp6HN5()&?pHBnbg5>&gy_5Hvr(VdDt_JglT7Go{p#*B7aAG6Eah*4X4+(^VJ%LX! zAH<1yQnR*dO_B;+SYJFd#~D@9Oj0Veo;!bJD#=$2?uwa%$DaysG?G|rm>38fYxAii zbek<$4e5`=_2N1@w4myn1hJ7GrLi*Ilux+brW+x zh%z@Xd@(en{w{RiR1#zr9`6iKt-jQ!J$QPD!Vm2n|2cOoFS3R9ZH5TO&Tow+5H;f> zvylW@EOAxiFBqhjBN|H-j?0g^Efws@mYK;rDV^R7{_1z3adL2hK;~zkt~u^m;QF6d zvzIy*{WGTLe+(6Zosnxi^|>MqY{Y~3RW+cR;JV@j!qFM|0|3!SHe(tpLh`4luRzQl zugDpgnra($?ZRkaO`_(0yq^6rd~RTZ-Bm7VYEn07pec%z_qQx>{|E3O*fI$Y3yPLWsa6Aj|=&f>L}eg`@oQXp!PkU{y+kpMSD+e4J5G zPy#mp%=g1^vNfe;>+8@8g-Z(68rT3yoz@#S#>FdLa4hZq0AHL=u7W9p>V+`2ykq8p zg#zpHvxo0Op^7(VPi_9E+DLRFeS=}*%03$i`_AWF#M7gh(&8{3)dN$y$rix<0y@Ug zL?Eg7<&Ew`w`Pn~&?mpZ`{WAW1CJm0`qc||;D|MFa`g0NEi)h{_0sNi8+RaUrs$@s zdi{j&ueJtN;$(8AGaJ*|(xM71gvUc5cpyGTfx4J?Fn&R;;(30M>94*!YU2eC~!8O^a83$5nNMK z2cfF4h0Z3pb^z-Q-lg4ZRbr~&srBmSj9kSvNTn-aW|ftezz!lZFdQ^|;0tRW8)N_N zKP6iL%Rt6K!w}r*o!sfvZ)f!z+A@Kx;NyiduuPMW7K!Tj^ny|;wg(gf%FS}uLXr+* zktvK{Z6)ZNO&#rymV!~<@L28VCE^=Lv|dv$D#bvAMOalhHTt_ zb)SAUwB}c&%0|cgmw_w%l8(9F6ch{&l`*y$<%nDY>kIOSi&~AtABPgWDjC`aWt{GC zJ&DQ^qPEHppx<9DHSlt6w{Q0cwt~i)qUi_Ko_UVx3U%*7Bd`|=JzXH>Qc3F#X7&GD zv+s%pLscCD7!WdGFfSv}Z7Qy0Iu3_*{?$tZGe^U64z_jH*+fKZrip zRqj^T3tkW;&znu_opG;Dkv$81;TgBB&WeVTSB|?}(U!z2r!e-FcHe#TXWOrC=?k56 z^J&mvU26bx7e0*A;7t@mC@bRG5txujf{GkEqsP%XPA2LiTvvIDtgDifB)4 zo)%`{=&U$-)T~+h1`}s)pp}l&xeGb}U%$Hxng_^n%tH<(A@^n+lWdD;|2mK_CKJGW zxU$p}s_jjta93M1cV(fq;`UD%Gr9_%{fJ`E(!!MGzX~aYm{jzzBZ)5mp23N&!Rcx% z>xAYp7(k@rIKEvPxQG8ke_ro<)W7|C3&jzEnfL7$H1A0VKYjkZK=A%Olu!RF2N&lT ap01I+?%QjQg+EDH;Oyw`z}f46`Tqd3=8|dv literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..ac03dbf69f0d7bfe4cd103b20ae5228aec2ce383 GIT binary patch literal 8031 zcmb_hdpy(s_utLtGHkg`Zc8bZ%S=M9tGN^@a*HrwN^+^(O&b#NVN%ScMp8^^$St?I zqzO?{?pA~(_fM|zd;9+W`Tqa=J@(l4cyF)Ud7anmJfF{V63$zh2@CEO1c5-pr_G5r z!1t5gH$NQsY+jO-0f7__o+c7(L&3kBgmU_V9xW_(uZD=+bgvG53vq64Qku$vZfzg1 zf12)Cl2P~K`xhsMz2nu)68jWq{UQ4|KG%MJ>iQk`WjhWIfpF~2ZOx&?bLt2_S5 zZo|c2l!e5Z5$~DW8tGuj(l)5oi|hm=26+V*NQ%2{7;RC0UcM4h$T4 zG!@rU_ue(HS=nb>W7qU4vyW-T(g*+BHtv1anF>cyyaYo8FELA^|D`Ve{w-$)x?7a~ z3OvXOW|X?bsv2u@?dNY^fBHw+Vy4krmE1H*jS%8SlGJd}E4*{DJI~9@6EkE9>V(*g zYu2hp;7WN%p~|+TAj0`V`bL_{VOtAC*1&1SITy}J9%$PFSqHL*$RjGL*P&I=?_V}H z7H?AX2L}iJVA7(C+dL6?HoOz0D|-df4xOT6o0nMyedOTh@mrraw{F(G_X>MxYXOzpQ~!3erfmnX)R}f_bRll5anb0!>IwQ)?9HZRi0)pU zJrllYU70Hmsyni?2Lp=h{AYM}${oc?K34@7-04b+migU6BqN+hLHx)(#T^mTx_J`0 z1zv*&APkz>`WIVAMQ)r3I1;dzdzIvDYoVRh{xt@>s`5(lqN|dvcAew|o-Ra%=R*G6 z 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 literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..26deb9725b93d28d1abab5f2ec9fa854347b7a24 GIT binary patch literal 10372 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 literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..fd1a2c712acd1eaf5ffc3ba1ec9edcdc4a96197c GIT binary patch literal 5199 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 ULJ*w>3_FmIhrfIM_Q;I?0&7K2ZU6uP literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..4d3ac7a4e63d1954fbf72d3bc9633ab895613e00 GIT binary patch literal 6526 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 Q|0*m59V6{3%^MH@2XeGXI|C&+GYoUe^^HYYQ>q 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 T!gB&9sDHtkS)0}z^Sb= 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 Za-wxV!t(TUd!WS@wBOc+(qO|#{9nh>`J4a% literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..95ac5824e9d715c20b2a4330889120c60bbfcd87 GIT binary patch literal 14257 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 literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..f7f1d06908af8ba1320d9aa6474f792883db430a GIT binary patch literal 18064 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 KpUXO@geCyPqIRYL literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..6508f74207cc3a45391a22e58c598a273d863c3d GIT binary patch literal 22474 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 literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..d54716bfad547896ba03ea9230518d615477fba2 GIT binary patch literal 30705 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 literal 0 HcmV?d00001 diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/values-night/colors.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/values-night/colors.xml new file mode 100644 index 00000000..3c05de5b --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/values-night/colors.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/values/colors.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/values/colors.xml new file mode 100644 index 00000000..f387b901 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/values/colors.xml @@ -0,0 +1,6 @@ + + #ffffff + #ffffff + #023c69 + #ffffff + \ No newline at end of file diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/values/strings.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/values/strings.xml new file mode 100644 index 00000000..778de418 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/values/strings.xml @@ -0,0 +1,6 @@ + + cppjs-sample-mobile-reactnative-expo + contain + false + automatic + \ No newline at end of file diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/values/styles.xml b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/values/styles.xml new file mode 100644 index 00000000..ab7cb49e --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/app/src/main/res/values/styles.xml @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/build.gradle b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/build.gradle new file mode 100644 index 00000000..932bf7b3 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/build.gradle @@ -0,0 +1,41 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. + +buildscript { + ext { + buildToolsVersion = findProperty('android.buildToolsVersion') ?: '34.0.0' + minSdkVersion = Integer.parseInt(findProperty('android.minSdkVersion') ?: '23') + compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '34') + targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '34') + kotlinVersion = findProperty('android.kotlinVersion') ?: '1.9.23' + + ndkVersion = "26.1.10909125" + } + 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" + +allprojects { + repositories { + maven { + // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm + url(new File(['node', '--print', "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), '../android')) + } + maven { + // Android JSC is installed from npm + url(new File(['node', '--print', "require.resolve('jsc-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), '../dist')) + } + + google() + mavenCentral() + maven { url 'https://www.jitpack.io' } + } +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/gradle.properties b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/gradle.properties new file mode 100644 index 00000000..40220def --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/gradle.properties @@ -0,0 +1,59 @@ +# 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 + +# Automatically convert third-party libraries to use AndroidX +android.enableJetifier=true + +# Enable AAPT2 PNG crunching +android.enablePngCrunchInReleaseBuilds=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=armeabi-v7a,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 + +# Enable GIF support in React Native images (~200 B increase) +expo.gif.enabled=true +# Enable webp support in React Native images (~85 KB increase) +expo.webp.enabled=true +# Enable animated webp support (~3.4 MB increase) +# Disabled by default because iOS doesn't support animated webp +expo.webp.animated=false + +# Enable network inspector +EX_DEV_CLIENT_NETWORK_INSPECTOR=true + +# Use legacy packaging to compress native libraries in the resulting APK. +expo.useLegacyPackaging=false diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/gradle/wrapper/gradle-wrapper.jar b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..e6441136f3d4ba8a0da8d277868979cfbc8ad796 GIT binary patch literal 43453 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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
NnX)EH+Nua)3Y(c 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 '} + 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 "${APP_HOME:-./}" > /dev/null && pwd -P ) || 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-expo-multithread/android/gradlew.bat b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/gradlew.bat new file mode 100644 index 00000000..7101f8e4 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/gradlew.bat @@ -0,0 +1,92 @@ +@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 + +@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-expo-multithread/android/react-settings-plugin/build.gradle.kts b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/react-settings-plugin/build.gradle.kts new file mode 100644 index 00000000..b4f6668e --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/react-settings-plugin/build.gradle.kts @@ -0,0 +1,19 @@ +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +plugins { + kotlin("jvm") version "1.9.24" + id("java-gradle-plugin") +} + +repositories { + mavenCentral() +} + +gradlePlugin { + plugins { + create("reactSettingsPlugin") { + id = "com.facebook.react.settings" + implementationClass = "expo.plugins.ReactSettingsPlugin" + } + } +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt new file mode 100644 index 00000000..c54f6c7a --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/react-settings-plugin/src/main/kotlin/expo/plugins/ReactSettingsPlugin.kt @@ -0,0 +1,10 @@ +package expo.plugins + +import org.gradle.api.Plugin +import org.gradle.api.initialization.Settings + +class ReactSettingsPlugin : Plugin { + override fun apply(settings: Settings) { + // Do nothing, just register the plugin. + } +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/settings.gradle b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/settings.gradle new file mode 100644 index 00000000..73a22923 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/android/settings.gradle @@ -0,0 +1,66 @@ +pluginManagement { + def version = providers.exec { + commandLine("node", "-e", "console.log(require('react-native/package.json').version);") + }.standardOutput.asText.get().trim() + def (_, reactNativeMinor, reactNativePatch) = version.split("-")[0].tokenize('.').collect { it.toInteger() } + + includeBuild(new File(["node", "--print", "require.resolve('@react-native/gradle-plugin/package.json')"].execute(null, rootDir).text.trim()).getParentFile().toString()) + if(reactNativeMinor == 74 && reactNativePatch <= 3){ + includeBuild("react-settings-plugin") + } +} + +plugins { id("com.facebook.react.settings") } + +def getRNMinorVersion() { + def version = providers.exec { + commandLine("node", "-e", "console.log(require('react-native/package.json').version);") + }.standardOutput.asText.get().trim() + + def coreVersion = version.split("-")[0] + def (major, minor, patch) = coreVersion.tokenize('.').collect { it.toInteger() } + + return minor +} + +if (getRNMinorVersion() >= 75) { + extensions.configure(com.facebook.react.ReactSettingsExtension) { ex -> + if (System.getenv('EXPO_UNSTABLE_CORE_AUTOLINKING') == '1') { + println('\u001B[32mUsing expo-modules-autolinking as core autolinking source\u001B[0m') + def command = [ + 'node', + '--no-warnings', + '--eval', + 'require(require.resolve(\'expo-modules-autolinking\', { paths: [require.resolve(\'expo/package.json\')] }))(process.argv.slice(1))', + 'react-native-config', + '--json', + '--platform', + 'android' + ].toList() + ex.autolinkLibrariesFromCommand(command) + } else { + ex.autolinkLibrariesFromCommand() + } + } +} + +rootProject.name = 'cppjs-sample-mobile-reactnative-expo' + +dependencyResolutionManagement { + versionCatalogs { + reactAndroidLibs { + from(files(new File(["node", "--print", "require.resolve('react-native/package.json')"].execute(null, rootDir).text.trim(), "../gradle/libs.versions.toml"))) + } + } +} + +apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle"); +useExpoModules() + +if (getRNMinorVersion() < 75) { + apply from: new File(["node", "--print", "require.resolve('@react-native-community/cli-platform-android/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim(), "../native_modules.gradle"); + applyNativeModulesSettingsGradle(settings) +} + +include ':app' +includeBuild(new File(["node", "--print", "require.resolve('@react-native/gradle-plugin/package.json', { paths: [require.resolve('react-native/package.json')] })"].execute(null, rootDir).text.trim()).getParentFile()) diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app.json b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app.json new file mode 100644 index 00000000..b069f6fe --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app.json @@ -0,0 +1,38 @@ +{ + "expo": { + "name": "cppjs-sample-mobile-reactnative-expo", + "slug": "cppjs-sample-mobile-reactnative-expo", + "version": "1.0.0", + "orientation": "portrait", + "icon": "./assets/images/icon.png", + "scheme": "myapp", + "userInterfaceStyle": "automatic", + "splash": { + "image": "./assets/images/splash.png", + "resizeMode": "contain", + "backgroundColor": "#ffffff" + }, + "ios": { + "supportsTablet": true, + "bundleIdentifier": "com.anonymous.cppjssamplemobilereactnativeexpo" + }, + "android": { + "adaptiveIcon": { + "foregroundImage": "./assets/images/adaptive-icon.png", + "backgroundColor": "#ffffff" + }, + "package": "com.anonymous.cppjssamplemobilereactnativeexpo" + }, + "web": { + "bundler": "metro", + "output": "static", + "favicon": "./assets/images/favicon.png" + }, + "plugins": [ + "expo-router" + ], + "experiments": { + "typedRoutes": true + } + } +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/(tabs)/_layout.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/(tabs)/_layout.tsx new file mode 100644 index 00000000..22a49b62 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/(tabs)/_layout.tsx @@ -0,0 +1,37 @@ +import { Tabs } from 'expo-router'; +import React from 'react'; + +import { TabBarIcon } from '@/components/navigation/TabBarIcon'; +import { Colors } from '@/constants/Colors'; +import { useColorScheme } from '@/hooks/useColorScheme'; + +export default function TabLayout() { + const colorScheme = useColorScheme(); + + return ( + + ( + + ), + }} + /> + ( + + ), + }} + /> + + ); +} diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/(tabs)/explore.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/(tabs)/explore.tsx new file mode 100644 index 00000000..e480218a --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/(tabs)/explore.tsx @@ -0,0 +1,102 @@ +import Ionicons from '@expo/vector-icons/Ionicons'; +import { StyleSheet, Image, Platform } from 'react-native'; + +import { Collapsible } from '@/components/Collapsible'; +import { ExternalLink } from '@/components/ExternalLink'; +import ParallaxScrollView from '@/components/ParallaxScrollView'; +import { ThemedText } from '@/components/ThemedText'; +import { ThemedView } from '@/components/ThemedView'; + +export default function TabTwoScreen() { + return ( + }> + + Explore + + This app includes example code to help you get started. + + + This app has two screens:{' '} + app/(tabs)/index.tsx and{' '} + app/(tabs)/explore.tsx + + + The layout file in app/(tabs)/_layout.tsx{' '} + sets up the tab navigator. + + + Learn more + + + + + You can open this project on Android, iOS, and the web. To open the web version, press{' '} + w in the terminal running this project. + + + + + For static images, you can use the @2x and{' '} + @3x suffixes to provide files for + different screen densities + + + + Learn more + + + + + Open app/_layout.tsx to see how to load{' '} + + custom fonts such as this one. + + + + Learn more + + + + + This template has light and dark mode support. The{' '} + useColorScheme() hook lets you inspect + what the user's current color scheme is, and so you can adjust UI colors accordingly. + + + Learn more + + + + + This template includes an example of an animated component. The{' '} + components/HelloWave.tsx component uses + the powerful react-native-reanimated library + to create a waving hand animation. + + {Platform.select({ + ios: ( + + The components/ParallaxScrollView.tsx{' '} + component provides a parallax effect for the header image. + + ), + })} + + + ); +} + +const styles = StyleSheet.create({ + headerImage: { + color: '#808080', + bottom: -90, + left: -35, + position: 'absolute', + }, + titleContainer: { + flexDirection: 'row', + gap: 8, + }, +}); diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/(tabs)/index.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/(tabs)/index.tsx new file mode 100644 index 00000000..493284fb --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/(tabs)/index.tsx @@ -0,0 +1,89 @@ +import React, { useState, useEffect } from 'react'; +import { Image, StyleSheet, Platform } from 'react-native'; + +import { HelloWave } from '@/components/HelloWave'; +import ParallaxScrollView from '@/components/ParallaxScrollView'; +import { ThemedText } from '@/components/ThemedText'; +import { ThemedView } from '@/components/ThemedView'; + +import { initCppJs, Native } from '../../src/native/native.h'; + +export default function HomeScreen() { + const [message, setMessage] = useState('compiling ...'); + const [threadResult, setThreadResult] = useState(''); + + useEffect(() => { + initCppJs().then(() => { + setMessage(Native.sample()); + Native.runOnThread(); + + // Poll for thread result after a short delay + setTimeout(() => { + setThreadResult(Native.getThreadResult()); + }, 1000); + }); + }, []); + + return ( + + }> + + Welcome! + + + + Matrix multiplier with c++   =>   {message} + Thread result: {threadResult} + + Edit app/(tabs)/index.tsx to see changes. + Press{' '} + + {Platform.select({ ios: 'cmd + d', android: 'cmd + m' })} + {' '} + to open developer tools. + + + + Step 2: Explore + + Tap the Explore tab to learn more about what's included in this starter app. + + + + Step 3: Get a fresh start + + When you're ready, run{' '} + npm run reset-project to get a fresh{' '} + app directory. This will move the current{' '} + app to{' '} + app-example. + + + + ); +} + +const styles = StyleSheet.create({ + titleContainer: { + flexDirection: 'row', + alignItems: 'center', + gap: 8, + }, + stepContainer: { + gap: 8, + marginBottom: 8, + }, + reactLogo: { + height: 178, + width: 290, + bottom: 0, + left: 0, + position: 'absolute', + }, +}); diff --git a/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/+html.tsx b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/+html.tsx new file mode 100644 index 00000000..8b924561 --- /dev/null +++ b/cppjs-samples/cppjs-sample-mobile-reactnative-expo-multithread/app/+html.tsx @@ -0,0 +1,39 @@ +import { ScrollViewStyleReset } from 'expo-router/html'; +import { type PropsWithChildren } from 'react'; + +/** + * This file is web-only and used to configure the root HTML for every web page during static rendering. + * The contents of this function only run in Node.js environments and do not have access to the DOM or browser APIs. + */ +export default function Root({ children }: PropsWithChildren) { + return ( + + + + + + + {/* + Disable body scrolling on web. This makes ScrollView components work closer to how they do on native. + However, body scrolling is often nice to have for mobile web. If you want to enable it, remove this line. + */} + + + {/* Using raw CSS styles as an escape-hatch to ensure the background color never flickers in dark-mode. */} +