From 6fcf6240af1198fcff28d526c02390fa1700601c Mon Sep 17 00:00:00 2001 From: Alexander Zerling Date: Sat, 15 Aug 2026 20:15:34 +0200 Subject: [PATCH 1/7] Add Nebulynk template configuration with environment variables and domain settings - Introduced a new template.toml file for Nebulynk blueprint. - Defined variables for frontend, backend, LiveKit, and garage domains. - Configured PostgreSQL and storage S3 credentials with secure password generation. - Set up environment variables for services including JWT and API keys. - Specified domain configurations for frontend, backend, LiveKit, and garage services. --- blueprints/nebulynk/docker-compose.yml | 186 +++++++++++++++++++++++++ blueprints/nebulynk/import.base64 | 1 + blueprints/nebulynk/meta.json | 28 ++++ blueprints/nebulynk/nebulynk.png | Bin 0 -> 47414 bytes blueprints/nebulynk/template.toml | 71 ++++++++++ 5 files changed, 286 insertions(+) create mode 100644 blueprints/nebulynk/docker-compose.yml create mode 100644 blueprints/nebulynk/import.base64 create mode 100644 blueprints/nebulynk/meta.json create mode 100644 blueprints/nebulynk/nebulynk.png create mode 100644 blueprints/nebulynk/template.toml diff --git a/blueprints/nebulynk/docker-compose.yml b/blueprints/nebulynk/docker-compose.yml new file mode 100644 index 000000000..024660ff4 --- /dev/null +++ b/blueprints/nebulynk/docker-compose.yml @@ -0,0 +1,186 @@ +# Nebulynk Dokploy template. Import the generated import.base64 file through +# Compose -> Advanced -> Import. Dokploy owns routing and the isolated network. +version: "3.8" +services: + frontend: + build: + context: "https://github.com/sapientorius/Nebulynk.git#${NEBULYNK_SOURCE_REF:-stable}" + dockerfile: frontend/Dockerfile + args: + NODE_IMAGE: "${NEBULYNK_NODE_IMAGE:-node:22.23.1-alpine3.24}" + NGINX_IMAGE: "${NEBULYNK_NGINX_IMAGE:-nginxinc/nginx-unprivileged:1.31-alpine3.23@sha256:6320020c7da8714feab524e02c08c5a1958675c4e68700e93a2fd8970b065786}" + # These URLs are baked into the browser bundle. + VITE_API_URL: "${VITE_API_URL:?VITE_API_URL must be set}" + VITE_LIVEKIT_URL: "${LIVEKIT_PUBLIC_URL:?LIVEKIT_PUBLIC_URL must be set}" + VITE_VAPID_PUBLIC_KEY: "${VAPID_PUBLIC_KEY:-}" + VITE_AUTH_CSRF_COOKIE_NAME: "${AUTH_CSRF_COOKIE_NAME:-nebulynk_csrf_token}" + depends_on: + - backend + expose: + - "8080" + restart: unless-stopped + + postgres: + image: "${NEBULYNK_POSTGRES_IMAGE:-postgres:17-alpine3.24@sha256:742f40ea20b9ff2ff31db5458d127452988a2164df9e17441e191f3b72252193}" + environment: + POSTGRES_DB: "${POSTGRES_DB:-nebulynk}" + POSTGRES_USER: "${POSTGRES_USER:-nebulynk}" + POSTGRES_PASSWORD: "${POSTGRES_PASSWORD:?POSTGRES_PASSWORD must be set}" + volumes: + - nebulynk_postgres_data:/var/lib/postgresql/data + restart: unless-stopped + + redis: + image: "${NEBULYNK_REDIS_IMAGE:-redis:7.4.7-alpine3.21}" + volumes: + - nebulynk_redis_data:/data + restart: unless-stopped + + # Prepare named Garage volumes for the unprivileged Garage process. + garage-volume-init: + image: alpine:3.21.5 + user: "0:0" + command: ["sh", "-ec", "chown -R 65532:65532 /var/lib/garage/meta /var/lib/garage/data"] + volumes: + - nebulynk_garage_meta:/var/lib/garage/meta + - nebulynk_garage_data:/var/lib/garage/data + restart: "no" + + garage: + build: + context: "https://github.com/sapientorius/Nebulynk.git#${NEBULYNK_SOURCE_REF:-stable}" + dockerfile: garage.Dockerfile + args: + GARAGE_IMAGE: "${NEBULYNK_GARAGE_IMAGE:-dxflrs/garage:v2.3.0}" + depends_on: + garage-volume-init: + condition: service_completed_successfully + command: /garage server --single-node --default-bucket + environment: + GARAGE_RPC_SECRET: "${GARAGE_RPC_SECRET:?GARAGE_RPC_SECRET must be set}" + GARAGE_DEFAULT_ACCESS_KEY: "${STORAGE_S3_ACCESS_KEY:?STORAGE_S3_ACCESS_KEY must be set}" + GARAGE_DEFAULT_SECRET_KEY: "${STORAGE_S3_SECRET_KEY:?STORAGE_S3_SECRET_KEY must be set}" + GARAGE_DEFAULT_BUCKET: "${STORAGE_S3_BUCKET:-nebulynk-files}" + volumes: + - nebulynk_garage_meta:/var/lib/garage/meta + - nebulynk_garage_data:/var/lib/garage/data + expose: + - "3900" + restart: unless-stopped + + livekit: + build: + context: "https://github.com/sapientorius/Nebulynk.git#${NEBULYNK_SOURCE_REF:-stable}" + dockerfile: livekit.Dockerfile + args: + LIVEKIT_SERVER_IMAGE: "${NEBULYNK_LIVEKIT_SERVER_IMAGE:-livekit/livekit-server:v1.13.4}" + command: --config /livekit.yaml + depends_on: + - redis + environment: + LIVEKIT_KEYS: "${LIVEKIT_API_KEY:?LIVEKIT_API_KEY must be set}: ${LIVEKIT_API_SECRET:?LIVEKIT_API_SECRET must be set}" + expose: + - "7880" + ports: + - "7881:7881" + - "7882:7882/udp" + restart: unless-stopped + + livekit-egress: + build: + context: "https://github.com/sapientorius/Nebulynk.git#${NEBULYNK_SOURCE_REF:-stable}" + dockerfile: livekit-egress.Dockerfile + args: + LIVEKIT_EGRESS_IMAGE: "${NEBULYNK_LIVEKIT_EGRESS_IMAGE:-livekit/egress:v1.13.0}" + command: --config /livekit-egress.yaml + environment: + EGRESS_CONFIG_FILE: /livekit-egress.yaml + LIVEKIT_API_KEY: "${LIVEKIT_API_KEY:?LIVEKIT_API_KEY must be set}" + LIVEKIT_API_SECRET: "${LIVEKIT_API_SECRET:?LIVEKIT_API_SECRET must be set}" + LIVEKIT_WS_URL: ws://livekit:7880 + AWS_ACCESS_KEY_ID: "${STORAGE_S3_ACCESS_KEY:?STORAGE_S3_ACCESS_KEY must be set}" + AWS_SECRET_ACCESS_KEY: "${STORAGE_S3_SECRET_KEY:?STORAGE_S3_SECRET_KEY must be set}" + AWS_DEFAULT_REGION: "${STORAGE_S3_REGION:-${MEETING_RECORDINGS_S3_REGION:-us-east-1}}" + depends_on: + - livekit + - redis + - garage + restart: unless-stopped + + backend: + build: + context: "https://github.com/sapientorius/Nebulynk.git#${NEBULYNK_SOURCE_REF:-stable}" + dockerfile: backend/Dockerfile + args: + NODE_IMAGE: "${NEBULYNK_NODE_IMAGE:-node:22.23.1-alpine3.24}" + environment: + NODE_ENV: production + JWT_SECRET: "${JWT_SECRET:?JWT_SECRET must be set}" + AI_SECRET_KEY: "${AI_SECRET_KEY:?AI_SECRET_KEY must be set}" + AUTH_2FA_SECRET_KEY: "${AUTH_2FA_SECRET_KEY:-}" + BACKEND_PORT: "${BACKEND_PORT:-3030}" + LOG_LEVEL: "${LOG_LEVEL:-info}" + MAX_FILE_SIZE: "${MAX_FILE_SIZE:-26214400}" + AUTHENTICATION_RATE_LIMIT_IP_LIMIT: "${AUTHENTICATION_RATE_LIMIT_IP_LIMIT:-}" + AUTH_BROWSER_ACCESS_TOKEN_TTL: "${AUTH_BROWSER_ACCESS_TOKEN_TTL:-15m}" + AUTH_REFRESH_TOKEN_TTL: "${AUTH_REFRESH_TOKEN_TTL:-1d}" + AUTH_REMEMBER_REFRESH_TOKEN_TTL: "${AUTH_REMEMBER_REFRESH_TOKEN_TTL:-30d}" + AUTH_REFRESH_COOKIE_NAME: "${AUTH_REFRESH_COOKIE_NAME:-nebulynk_refresh_session}" + AUTH_CSRF_COOKIE_NAME: "${AUTH_CSRF_COOKIE_NAME:-nebulynk_csrf_token}" + AUTH_COOKIE_DOMAIN: "${AUTH_COOKIE_DOMAIN:-}" + RATE_LIMIT_DRIVER: "${RATE_LIMIT_DRIVER:-redis}" + PASSKEY_RP_ID: "${PASSKEY_RP_ID:?PASSKEY_RP_ID must be set}" + AI_PROVIDER_BASE_URL_ALLOWLIST: "${AI_PROVIDER_BASE_URL_ALLOWLIST:-}" + POSTGRES_HOST: postgres + POSTGRES_PORT: "5432" + POSTGRES_DB: "${POSTGRES_DB:-nebulynk}" + POSTGRES_USER: "${POSTGRES_USER:-nebulynk}" + POSTGRES_PASSWORD: "${POSTGRES_PASSWORD:?POSTGRES_PASSWORD must be set}" + REDIS_HOST: redis + REDIS_PORT: "6379" + STORAGE_S3_ENDPOINT: http://garage:3900 + STORAGE_S3_PUBLIC_ENDPOINT: "${STORAGE_S3_PUBLIC_ENDPOINT:?STORAGE_S3_PUBLIC_ENDPOINT must be set}" + STORAGE_S3_ACCESS_KEY: "${STORAGE_S3_ACCESS_KEY:?STORAGE_S3_ACCESS_KEY must be set}" + STORAGE_S3_SECRET_KEY: "${STORAGE_S3_SECRET_KEY:?STORAGE_S3_SECRET_KEY must be set}" + STORAGE_S3_BUCKET: "${STORAGE_S3_BUCKET:-nebulynk-files}" + STORAGE_S3_REGION: "${STORAGE_S3_REGION:-${MEETING_RECORDINGS_S3_REGION:-us-east-1}}" + MEETING_RECORDINGS_PREFIX: meeting-recordings + MEETING_RECORDINGS_BUCKET: "${STORAGE_S3_BUCKET:-nebulynk-files}" + MEETING_RECORDINGS_S3_ENDPOINT: http://garage:3900 + MEETING_RECORDINGS_EGRESS_S3_ENDPOINT: http://garage:3900 + MEETING_RECORDINGS_S3_REGION: "${MEETING_RECORDINGS_S3_REGION:-${STORAGE_S3_REGION:-us-east-1}}" + MEETING_TRANSCRIPT_WAIT_TIMEOUT_MS: "${MEETING_TRANSCRIPT_WAIT_TIMEOUT_MS:-1200000}" + LIVEKIT_HOST: http://livekit:7880 + LIVEKIT_PUBLIC_URL: "${LIVEKIT_PUBLIC_URL:?LIVEKIT_PUBLIC_URL must be set}" + LIVEKIT_API_KEY: "${LIVEKIT_API_KEY:?LIVEKIT_API_KEY must be set}" + LIVEKIT_API_SECRET: "${LIVEKIT_API_SECRET:?LIVEKIT_API_SECRET must be set}" + KLIPY_API_KEY: "${KLIPY_API_KEY:-}" + VAPID_PUBLIC_KEY: "${VAPID_PUBLIC_KEY:-}" + VAPID_PRIVATE_KEY: "${VAPID_PRIVATE_KEY:-}" + VAPID_SUBJECT: "${VAPID_SUBJECT:-mailto:admin@example.com}" + SMTP_HOST: "${SMTP_HOST:-}" + SMTP_PORT: "${SMTP_PORT:-587}" + SMTP_SECURE: "${SMTP_SECURE:-false}" + SMTP_IGNORE_TLS: "${SMTP_IGNORE_TLS:-false}" + SMTP_USER: "${SMTP_USER:-}" + SMTP_PASS: "${SMTP_PASS:-}" + SMTP_FROM: "${SMTP_FROM:-noreply@nebulynk.local}" + SMTP_FROM_NAME: "${SMTP_FROM_NAME:-Nebulynk}" + FRONTEND_URL: "${FRONTEND_URL:?FRONTEND_URL must be set}" + TRUST_PROXY: "${TRUST_PROXY:-true}" + NEBULYNK_BUILD_SHA: "${NEBULYNK_BUILD_SHA:-}" + depends_on: + - postgres + - redis + - garage + - livekit + - livekit-egress + expose: + - "3030" + restart: unless-stopped + +volumes: + nebulynk_postgres_data: + nebulynk_redis_data: + nebulynk_garage_meta: + nebulynk_garage_data: diff --git a/blueprints/nebulynk/import.base64 b/blueprints/nebulynk/import.base64 new file mode 100644 index 000000000..462b1cd86 --- /dev/null +++ b/blueprints/nebulynk/import.base64 @@ -0,0 +1 @@ +eyJjb21wb3NlIjoiIyBOZWJ1bHluayBEb2twbG95IHRlbXBsYXRlLiBJbXBvcnQgdGhlIGdlbmVyYXRlZCBpbXBvcnQuYmFzZTY0IGZpbGUgdGhyb3VnaFxuIyBDb21wb3NlIC0+IEFkdmFuY2VkIC0+IEltcG9ydC4gRG9rcGxveSBvd25zIHJvdXRpbmcgYW5kIHRoZSBpc29sYXRlZCBuZXR3b3JrLlxudmVyc2lvbjogXCIzLjhcIlxuc2VydmljZXM6XG4gIGZyb250ZW5kOlxuICAgIGJ1aWxkOlxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxuICAgICAgZG9ja2VyZmlsZTogZnJvbnRlbmQvRG9ja2VyZmlsZVxuICAgICAgYXJnczpcbiAgICAgICAgTk9ERV9JTUFHRTogXCIke05FQlVMWU5LX05PREVfSU1BR0U6LW5vZGU6MjIuMjMuMS1hbHBpbmUzLjI0fVwiXG4gICAgICAgIE5HSU5YX0lNQUdFOiBcIiR7TkVCVUxZTktfTkdJTlhfSU1BR0U6LW5naW54aW5jL25naW54LXVucHJpdmlsZWdlZDoxLjMxLWFscGluZTMuMjNAc2hhMjU2OjYzMjAwMjBjN2RhODcxNGZlYWI1MjRlMDJjMDhjNWExOTU4Njc1YzRlNjg3MDBlOTNhMmZkODk3MGIwNjU3ODZ9XCJcbiAgICAgICAgIyBUaGVzZSBVUkxzIGFyZSBiYWtlZCBpbnRvIHRoZSBicm93c2VyIGJ1bmRsZS5cbiAgICAgICAgVklURV9BUElfVVJMOiBcIiR7VklURV9BUElfVVJMOj9WSVRFX0FQSV9VUkwgbXVzdCBiZSBzZXR9XCJcbiAgICAgICAgVklURV9MSVZFS0lUX1VSTDogXCIke0xJVkVLSVRfUFVCTElDX1VSTDo/TElWRUtJVF9QVUJMSUNfVVJMIG11c3QgYmUgc2V0fVwiXG4gICAgICAgIFZJVEVfVkFQSURfUFVCTElDX0tFWTogXCIke1ZBUElEX1BVQkxJQ19LRVk6LX1cIlxuICAgICAgICBWSVRFX0FVVEhfQ1NSRl9DT09LSUVfTkFNRTogXCIke0FVVEhfQ1NSRl9DT09LSUVfTkFNRTotbmVidWx5bmtfY3NyZl90b2tlbn1cIlxuICAgIGRlcGVuZHNfb246XG4gICAgICAtIGJhY2tlbmRcbiAgICBleHBvc2U6XG4gICAgICAtIFwiODA4MFwiXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcblxuICBwb3N0Z3JlczpcbiAgICBpbWFnZTogXCIke05FQlVMWU5LX1BPU1RHUkVTX0lNQUdFOi1wb3N0Z3JlczoxNy1hbHBpbmUzLjI0QHNoYTI1Njo3NDJmNDBlYTIwYjlmZjJmZjMxZGI1NDU4ZDEyNzQ1Mjk4OGEyMTY0ZGY5ZTE3NDQxZTE5MWYzYjcyMjUyMTkzfVwiXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICBQT1NUR1JFU19EQjogXCIke1BPU1RHUkVTX0RCOi1uZWJ1bHlua31cIlxuICAgICAgUE9TVEdSRVNfVVNFUjogXCIke1BPU1RHUkVTX1VTRVI6LW5lYnVseW5rfVwiXG4gICAgICBQT1NUR1JFU19QQVNTV09SRDogXCIke1BPU1RHUkVTX1BBU1NXT1JEOj9QT1NUR1JFU19QQVNTV09SRCBtdXN0IGJlIHNldH1cIlxuICAgIHZvbHVtZXM6XG4gICAgICAtIG5lYnVseW5rX3Bvc3RncmVzX2RhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcblxuICByZWRpczpcbiAgICBpbWFnZTogXCIke05FQlVMWU5LX1JFRElTX0lNQUdFOi1yZWRpczo3LjQuNy1hbHBpbmUzLjIxfVwiXG4gICAgdm9sdW1lczpcbiAgICAgIC0gbmVidWx5bmtfcmVkaXNfZGF0YTovZGF0YVxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG5cbiAgIyBQcmVwYXJlIG5hbWVkIEdhcmFnZSB2b2x1bWVzIGZvciB0aGUgdW5wcml2aWxlZ2VkIEdhcmFnZSBwcm9jZXNzLlxuICBnYXJhZ2Utdm9sdW1lLWluaXQ6XG4gICAgaW1hZ2U6IGFscGluZTozLjIxLjVcbiAgICB1c2VyOiBcIjA6MFwiXG4gICAgY29tbWFuZDogW1wic2hcIiwgXCItZWNcIiwgXCJjaG93biAtUiA2NTUzMjo2NTUzMiAvdmFyL2xpYi9nYXJhZ2UvbWV0YSAvdmFyL2xpYi9nYXJhZ2UvZGF0YVwiXVxuICAgIHZvbHVtZXM6XG4gICAgICAtIG5lYnVseW5rX2dhcmFnZV9tZXRhOi92YXIvbGliL2dhcmFnZS9tZXRhXG4gICAgICAtIG5lYnVseW5rX2dhcmFnZV9kYXRhOi92YXIvbGliL2dhcmFnZS9kYXRhXG4gICAgcmVzdGFydDogXCJub1wiXG5cbiAgZ2FyYWdlOlxuICAgIGJ1aWxkOlxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxuICAgICAgZG9ja2VyZmlsZTogZ2FyYWdlLkRvY2tlcmZpbGVcbiAgICAgIGFyZ3M6XG4gICAgICAgIEdBUkFHRV9JTUFHRTogXCIke05FQlVMWU5LX0dBUkFHRV9JTUFHRTotZHhmbHJzL2dhcmFnZTp2Mi4zLjB9XCJcbiAgICBkZXBlbmRzX29uOlxuICAgICAgZ2FyYWdlLXZvbHVtZS1pbml0OlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfY29tcGxldGVkX3N1Y2Nlc3NmdWxseVxuICAgIGNvbW1hbmQ6IC9nYXJhZ2Ugc2VydmVyIC0tc2luZ2xlLW5vZGUgLS1kZWZhdWx0LWJ1Y2tldFxuICAgIGVudmlyb25tZW50OlxuICAgICAgR0FSQUdFX1JQQ19TRUNSRVQ6IFwiJHtHQVJBR0VfUlBDX1NFQ1JFVDo/R0FSQUdFX1JQQ19TRUNSRVQgbXVzdCBiZSBzZXR9XCJcbiAgICAgIEdBUkFHRV9ERUZBVUxUX0FDQ0VTU19LRVk6IFwiJHtTVE9SQUdFX1MzX0FDQ0VTU19LRVk6P1NUT1JBR0VfUzNfQUNDRVNTX0tFWSBtdXN0IGJlIHNldH1cIlxuICAgICAgR0FSQUdFX0RFRkFVTFRfU0VDUkVUX0tFWTogXCIke1NUT1JBR0VfUzNfU0VDUkVUX0tFWTo/U1RPUkFHRV9TM19TRUNSRVRfS0VZIG11c3QgYmUgc2V0fVwiXG4gICAgICBHQVJBR0VfREVGQVVMVF9CVUNLRVQ6IFwiJHtTVE9SQUdFX1MzX0JVQ0tFVDotbmVidWx5bmstZmlsZXN9XCJcbiAgICB2b2x1bWVzOlxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfbWV0YTovdmFyL2xpYi9nYXJhZ2UvbWV0YVxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfZGF0YTovdmFyL2xpYi9nYXJhZ2UvZGF0YVxuICAgIGV4cG9zZTpcbiAgICAgIC0gXCIzOTAwXCJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuXG4gIGxpdmVraXQ6XG4gICAgYnVpbGQ6XG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXG4gICAgICBkb2NrZXJmaWxlOiBsaXZla2l0LkRvY2tlcmZpbGVcbiAgICAgIGFyZ3M6XG4gICAgICAgIExJVkVLSVRfU0VSVkVSX0lNQUdFOiBcIiR7TkVCVUxZTktfTElWRUtJVF9TRVJWRVJfSU1BR0U6LWxpdmVraXQvbGl2ZWtpdC1zZXJ2ZXI6djEuMTMuNH1cIlxuICAgIGNvbW1hbmQ6IC0tY29uZmlnIC9saXZla2l0LnlhbWxcbiAgICBkZXBlbmRzX29uOlxuICAgICAgLSByZWRpc1xuICAgIGVudmlyb25tZW50OlxuICAgICAgTElWRUtJVF9LRVlTOiBcIiR7TElWRUtJVF9BUElfS0VZOj9MSVZFS0lUX0FQSV9LRVkgbXVzdCBiZSBzZXR9OiAke0xJVkVLSVRfQVBJX1NFQ1JFVDo/TElWRUtJVF9BUElfU0VDUkVUIG11c3QgYmUgc2V0fVwiXG4gICAgZXhwb3NlOlxuICAgICAgLSBcIjc4ODBcIlxuICAgIHBvcnRzOlxuICAgICAgLSBcIjc4ODE6Nzg4MVwiXG4gICAgICAtIFwiNzg4Mjo3ODgyL3VkcFwiXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcblxuICBsaXZla2l0LWVncmVzczpcbiAgICBidWlsZDpcbiAgICAgIGNvbnRleHQ6IFwiaHR0cHM6Ly9naXRodWIuY29tL3NhcGllbnRvcml1cy9OZWJ1bHluay5naXQjJHtORUJVTFlOS19TT1VSQ0VfUkVGOi1zdGFibGV9XCJcbiAgICAgIGRvY2tlcmZpbGU6IGxpdmVraXQtZWdyZXNzLkRvY2tlcmZpbGVcbiAgICAgIGFyZ3M6XG4gICAgICAgIExJVkVLSVRfRUdSRVNTX0lNQUdFOiBcIiR7TkVCVUxZTktfTElWRUtJVF9FR1JFU1NfSU1BR0U6LWxpdmVraXQvZWdyZXNzOnYxLjEzLjB9XCJcbiAgICBjb21tYW5kOiAtLWNvbmZpZyAvbGl2ZWtpdC1lZ3Jlc3MueWFtbFxuICAgIGVudmlyb25tZW50OlxuICAgICAgRUdSRVNTX0NPTkZJR19GSUxFOiAvbGl2ZWtpdC1lZ3Jlc3MueWFtbFxuICAgICAgTElWRUtJVF9BUElfS0VZOiBcIiR7TElWRUtJVF9BUElfS0VZOj9MSVZFS0lUX0FQSV9LRVkgbXVzdCBiZSBzZXR9XCJcbiAgICAgIExJVkVLSVRfQVBJX1NFQ1JFVDogXCIke0xJVkVLSVRfQVBJX1NFQ1JFVDo/TElWRUtJVF9BUElfU0VDUkVUIG11c3QgYmUgc2V0fVwiXG4gICAgICBMSVZFS0lUX1dTX1VSTDogd3M6Ly9saXZla2l0Ojc4ODBcbiAgICAgIEFXU19BQ0NFU1NfS0VZX0lEOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcbiAgICAgIEFXU19TRUNSRVRfQUNDRVNTX0tFWTogXCIke1NUT1JBR0VfUzNfU0VDUkVUX0tFWTo/U1RPUkFHRV9TM19TRUNSRVRfS0VZIG11c3QgYmUgc2V0fVwiXG4gICAgICBBV1NfREVGQVVMVF9SRUdJT046IFwiJHtTVE9SQUdFX1MzX1JFR0lPTjotJHtNRUVUSU5HX1JFQ09SRElOR1NfUzNfUkVHSU9OOi11cy1lYXN0LTF9fVwiXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIC0gbGl2ZWtpdFxuICAgICAgLSByZWRpc1xuICAgICAgLSBnYXJhZ2VcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuXG4gIGJhY2tlbmQ6XG4gICAgYnVpbGQ6XG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXG4gICAgICBkb2NrZXJmaWxlOiBiYWNrZW5kL0RvY2tlcmZpbGVcbiAgICAgIGFyZ3M6XG4gICAgICAgIE5PREVfSU1BR0U6IFwiJHtORUJVTFlOS19OT0RFX0lNQUdFOi1ub2RlOjIyLjIzLjEtYWxwaW5lMy4yNH1cIlxuICAgIGVudmlyb25tZW50OlxuICAgICAgTk9ERV9FTlY6IHByb2R1Y3Rpb25cbiAgICAgIEpXVF9TRUNSRVQ6IFwiJHtKV1RfU0VDUkVUOj9KV1RfU0VDUkVUIG11c3QgYmUgc2V0fVwiXG4gICAgICBBSV9TRUNSRVRfS0VZOiBcIiR7QUlfU0VDUkVUX0tFWTo/QUlfU0VDUkVUX0tFWSBtdXN0IGJlIHNldH1cIlxuICAgICAgQVVUSF8yRkFfU0VDUkVUX0tFWTogXCIke0FVVEhfMkZBX1NFQ1JFVF9LRVk6LX1cIlxuICAgICAgQkFDS0VORF9QT1JUOiBcIiR7QkFDS0VORF9QT1JUOi0zMDMwfVwiXG4gICAgICBMT0dfTEVWRUw6IFwiJHtMT0dfTEVWRUw6LWluZm99XCJcbiAgICAgIE1BWF9GSUxFX1NJWkU6IFwiJHtNQVhfRklMRV9TSVpFOi0yNjIxNDQwMH1cIlxuICAgICAgQVVUSEVOVElDQVRJT05fUkFURV9MSU1JVF9JUF9MSU1JVDogXCIke0FVVEhFTlRJQ0FUSU9OX1JBVEVfTElNSVRfSVBfTElNSVQ6LX1cIlxuICAgICAgQVVUSF9CUk9XU0VSX0FDQ0VTU19UT0tFTl9UVEw6IFwiJHtBVVRIX0JST1dTRVJfQUNDRVNTX1RPS0VOX1RUTDotMTVtfVwiXG4gICAgICBBVVRIX1JFRlJFU0hfVE9LRU5fVFRMOiBcIiR7QVVUSF9SRUZSRVNIX1RPS0VOX1RUTDotMWR9XCJcbiAgICAgIEFVVEhfUkVNRU1CRVJfUkVGUkVTSF9UT0tFTl9UVEw6IFwiJHtBVVRIX1JFTUVNQkVSX1JFRlJFU0hfVE9LRU5fVFRMOi0zMGR9XCJcbiAgICAgIEFVVEhfUkVGUkVTSF9DT09LSUVfTkFNRTogXCIke0FVVEhfUkVGUkVTSF9DT09LSUVfTkFNRTotbmVidWx5bmtfcmVmcmVzaF9zZXNzaW9ufVwiXG4gICAgICBBVVRIX0NTUkZfQ09PS0lFX05BTUU6IFwiJHtBVVRIX0NTUkZfQ09PS0lFX05BTUU6LW5lYnVseW5rX2NzcmZfdG9rZW59XCJcbiAgICAgIEFVVEhfQ09PS0lFX0RPTUFJTjogXCIke0FVVEhfQ09PS0lFX0RPTUFJTjotfVwiXG4gICAgICBSQVRFX0xJTUlUX0RSSVZFUjogXCIke1JBVEVfTElNSVRfRFJJVkVSOi1yZWRpc31cIlxuICAgICAgUEFTU0tFWV9SUF9JRDogXCIke1BBU1NLRVlfUlBfSUQ6P1BBU1NLRVlfUlBfSUQgbXVzdCBiZSBzZXR9XCJcbiAgICAgIEFJX1BST1ZJREVSX0JBU0VfVVJMX0FMTE9XTElTVDogXCIke0FJX1BST1ZJREVSX0JBU0VfVVJMX0FMTE9XTElTVDotfVwiXG4gICAgICBQT1NUR1JFU19IT1NUOiBwb3N0Z3Jlc1xuICAgICAgUE9TVEdSRVNfUE9SVDogXCI1NDMyXCJcbiAgICAgIFBPU1RHUkVTX0RCOiBcIiR7UE9TVEdSRVNfREI6LW5lYnVseW5rfVwiXG4gICAgICBQT1NUR1JFU19VU0VSOiBcIiR7UE9TVEdSRVNfVVNFUjotbmVidWx5bmt9XCJcbiAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiBcIiR7UE9TVEdSRVNfUEFTU1dPUkQ6P1BPU1RHUkVTX1BBU1NXT1JEIG11c3QgYmUgc2V0fVwiXG4gICAgICBSRURJU19IT1NUOiByZWRpc1xuICAgICAgUkVESVNfUE9SVDogXCI2Mzc5XCJcbiAgICAgIFNUT1JBR0VfUzNfRU5EUE9JTlQ6IGh0dHA6Ly9nYXJhZ2U6MzkwMFxuICAgICAgU1RPUkFHRV9TM19QVUJMSUNfRU5EUE9JTlQ6IFwiJHtTVE9SQUdFX1MzX1BVQkxJQ19FTkRQT0lOVDo/U1RPUkFHRV9TM19QVUJMSUNfRU5EUE9JTlQgbXVzdCBiZSBzZXR9XCJcbiAgICAgIFNUT1JBR0VfUzNfQUNDRVNTX0tFWTogXCIke1NUT1JBR0VfUzNfQUNDRVNTX0tFWTo/U1RPUkFHRV9TM19BQ0NFU1NfS0VZIG11c3QgYmUgc2V0fVwiXG4gICAgICBTVE9SQUdFX1MzX1NFQ1JFVF9LRVk6IFwiJHtTVE9SQUdFX1MzX1NFQ1JFVF9LRVk6P1NUT1JBR0VfUzNfU0VDUkVUX0tFWSBtdXN0IGJlIHNldH1cIlxuICAgICAgU1RPUkFHRV9TM19CVUNLRVQ6IFwiJHtTVE9SQUdFX1MzX0JVQ0tFVDotbmVidWx5bmstZmlsZXN9XCJcbiAgICAgIFNUT1JBR0VfUzNfUkVHSU9OOiBcIiR7U1RPUkFHRV9TM19SRUdJT046LSR7TUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjotdXMtZWFzdC0xfX1cIlxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX1BSRUZJWDogbWVldGluZy1yZWNvcmRpbmdzXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfQlVDS0VUOiBcIiR7U1RPUkFHRV9TM19CVUNLRVQ6LW5lYnVseW5rLWZpbGVzfVwiXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfUzNfRU5EUE9JTlQ6IGh0dHA6Ly9nYXJhZ2U6MzkwMFxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX0VHUkVTU19TM19FTkRQT0lOVDogaHR0cDovL2dhcmFnZTozOTAwXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfUzNfUkVHSU9OOiBcIiR7TUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjotJHtTVE9SQUdFX1MzX1JFR0lPTjotdXMtZWFzdC0xfX1cIlxuICAgICAgTUVFVElOR19UUkFOU0NSSVBUX1dBSVRfVElNRU9VVF9NUzogXCIke01FRVRJTkdfVFJBTlNDUklQVF9XQUlUX1RJTUVPVVRfTVM6LTEyMDAwMH1cIlxuICAgICAgTElWRUtJVF9IT1NUOiBodHRwOi8vbGl2ZWtpdDo3ODgwXG4gICAgICBMSVZFS0lUX1BVQkxJQ19VUkw6IFwiJHtMSVZFS0lUX1BVQkxJQ19VUkw6P0xJVkVLSVRfUFVCTElDX1VSTCBtdXN0IGJlIHNldH1cIlxuICAgICAgTElWRUtJVF9BUElfS0VZOiBcIiR7TElWRUtJVF9BUElfS0VZOj9MSVZFS0lUX0FQSV9LRVkgbXVzdCBiZSBzZXR9XCJcbiAgICAgIExJVkVLSVRfQVBJX1NFQ1JFVDogXCIke0xJVkVLSVRfQVBJX1NFQ1JFVDo/TElWRUtJVF9BUElfU0VDUkVUIG11c3QgYmUgc2V0fVwiXG4gICAgICBLTElQWV9BUElfS0VZOiBcIiR7S0xJUFlfQVBJX0tFWTotfVwiXG4gICAgICBWQVBJRF9QVUJMSUNfS0VZOiBcIiR7VkFQSURfUFVCTElDX0tFWTotfVwiXG4gICAgICBWQVBJRF9QUklWQVRFX0tFWTogXCIke1ZBUElEX1BSSVZBVEVfS0VZOi19XCJcbiAgICAgIFZBUElEX1NVQkpFQ1Q6IFwiJHtWQVBJRF9TVUJKRUNUOi1tYWlsdG86YWRtaW5AZXhhbXBsZS5jb219XCJcbiAgICAgIFNNVFBfSE9TVDogXCIke1NNVFBfSE9TVDotfVwiXG4gICAgICBTTVRQX1BPUlQ6IFwiJHtTTVRQX1BPUlQ6LTU4N31cIlxuICAgICAgU01UUF9TRUNVUkU6IFwiJHtTTVRQX1NFQ1VSRTotZmFsc2V9XCJcbiAgICAgIFNNVFBfSUdOT1JFX1RMUzogXCIke1NNVFBfSUdOT1JFX1RMUzotZmFsc2V9XCJcbiAgICAgIFNNVFBfVVNFUjogXCIke1NNVFBfVVNFUjotfVwiXG4gICAgICBTTVRQX1BBU1M6IFwiJHtTTVRQX1BBU1M6LX1cIlxuICAgICAgU01UUF9GUk9NOiBcIiR7U01UUF9GUk9NOi1ub3JlcGx5QG5lYnVseW5rLmxvY2FsfVwiXG4gICAgICBTTVRQX0ZST01fTkFNRTogXCIke1NNVFBfRlJPTV9OQU1FOi1OZWJ1bHlua31cIlxuICAgICAgRlJPTlRFTkRfVVJMOiBcIiR7RlJPTlRFTkRfVVJMOj9GUk9OVEVORF9VUkwgbXVzdCBiZSBzZXR9XCJcbiAgICAgIFRSVVNUX1BST1hZOiBcIiR7VFJVU1RfUFJPWFk6LXRydWV9XCJcbiAgICAgIE5FQlVMWU5LX0JVSUxEX1NIQTogXCIke05FQlVMWU5LX0JVSUxEX1NIQTotfVwiXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIC0gcG9zdGdyZXNcbiAgICAgIC0gcmVkaXNcbiAgICAgIC0gZ2FyYWdlXG4gICAgICAtIGxpdmVraXRcbiAgICAgIC0gbGl2ZWtpdC1lZ3Jlc3NcbiAgICBleHBvc2U6XG4gICAgICAtIFwiMzAzMFwiXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcblxudm9sdW1lczpcbiAgbmVidWx5bmtfcG9zdGdyZXNfZGF0YTpcbiAgbmVidWx5bmtfcmVkaXNfZGF0YTpcbiAgbmVidWx5bmtfZ2FyYWdlX21ldGE6XG4gIG5lYnVseW5rX2dhcmFnZV9kYXRhOlxuIiwiY29uZmlnIjoiIyBWYWx1ZXMgaW4gW3ZhcmlhYmxlc10gYXJlIHJlc29sdmVkIG9uY2Ugd2hlbiBEb2twbG95IGltcG9ydHMgdGhlIHRlbXBsYXRlLlxuIyBUaGUgZ2VuZXJhdGVkIHZhbHVlcyBhcmUgdGhlbiBzdG9yZWQgaW4gdGhlIENvbXBvc2Ugc2VydmljZSBlbnZpcm9ubWVudC5cblt2YXJpYWJsZXNdXG5mcm9udGVuZF9kb21haW4gPSBcIiR7ZG9tYWlufVwiXG5iYWNrZW5kX2RvbWFpbiA9IFwiJHtkb21haW59XCJcbmxpdmVraXRfZG9tYWluID0gXCIke2RvbWFpbn1cIlxuZ2FyYWdlX2RvbWFpbiA9IFwiJHtkb21haW59XCJcblxucG9zdGdyZXNfcGFzc3dvcmQgPSBcIiR7cGFzc3dvcmQ6NjR9XCJcbmdhcmFnZV9ycGNfc2VjcmV0ID0gXCIke2hhc2g6NjR9XCJcbnN0b3JhZ2VfczNfYWNjZXNzX2tleSA9IFwiJHtwYXNzd29yZDoyNH1cIlxuc3RvcmFnZV9zM19zZWNyZXRfa2V5ID0gXCIke3Bhc3N3b3JkOjY0fVwiXG5qd3Rfc2VjcmV0ID0gXCIke3Bhc3N3b3JkOjY0fVwiXG5haV9zZWNyZXRfa2V5ID0gXCIke3Bhc3N3b3JkOjY0fVwiXG5hdXRoXzJmYV9zZWNyZXRfa2V5ID0gXCIke3Bhc3N3b3JkOjY0fVwiXG5saXZla2l0X2FwaV9rZXkgPSBcIiR7cGFzc3dvcmQ6MjR9XCJcbmxpdmVraXRfYXBpX3NlY3JldCA9IFwiJHtwYXNzd29yZDo2NH1cIlxuXG5mcm9udGVuZF91cmwgPSBcImh0dHBzOi8vJHtmcm9udGVuZF9kb21haW59XCJcbmJhY2tlbmRfdXJsID0gXCJodHRwczovLyR7YmFja2VuZF9kb21haW59XCJcbmxpdmVraXRfcHVibGljX3VybCA9IFwiaHR0cHM6Ly8ke2xpdmVraXRfZG9tYWlufVwiXG5nYXJhZ2VfcHVibGljX3VybCA9IFwiaHR0cHM6Ly8ke2dhcmFnZV9kb21haW59XCJcbnNvdXJjZV9yZWYgPSBcInN0YWJsZVwiXG5cbltjb25maWddXG5pc29sYXRlZCA9IHRydWVcblxuW1tjb25maWcuZG9tYWluc11dXG5zZXJ2aWNlTmFtZSA9IFwiZnJvbnRlbmRcIlxucG9ydCA9IDgwODBcbmhvc3QgPSBcIiR7ZnJvbnRlbmRfZG9tYWlufVwiXG5wYXRoID0gXCIvXCJcblxuW1tjb25maWcuZG9tYWluc11dXG5zZXJ2aWNlTmFtZSA9IFwiYmFja2VuZFwiXG5wb3J0ID0gMzAzMFxuaG9zdCA9IFwiJHtiYWNrZW5kX2RvbWFpbn1cIlxucGF0aCA9IFwiL1wiXG5cbltbY29uZmlnLmRvbWFpbnNdXVxuc2VydmljZU5hbWUgPSBcImxpdmVraXRcIlxucG9ydCA9IDc4ODBcbmhvc3QgPSBcIiR7bGl2ZWtpdF9kb21haW59XCJcbnBhdGggPSBcIi9cIlxuXG5bW2NvbmZpZy5kb21haW5zXV1cbnNlcnZpY2VOYW1lID0gXCJnYXJhZ2VcIlxucG9ydCA9IDM5MDBcbmhvc3QgPSBcIiR7Z2FyYWdlX2RvbWFpbn1cIlxucGF0aCA9IFwiL1wiXG5cbltjb25maWcuZW52XVxuTkVCVUxZTktfU09VUkNFX1JFRiA9IFwiJHtzb3VyY2VfcmVmfVwiXG5QT1NUR1JFU19EQiA9IFwibmVidWx5bmtcIlxuUE9TVEdSRVNfVVNFUiA9IFwibmVidWx5bmtcIlxuUE9TVEdSRVNfUEFTU1dPUkQgPSBcIiR7cG9zdGdyZXNfcGFzc3dvcmR9XCJcbkdBUkFHRV9SUENfU0VDUkVUID0gXCIke2dhcmFnZV9ycGNfc2VjcmV0fVwiXG5TVE9SQUdFX1MzX0FDQ0VTU19LRVkgPSBcIiR7c3RvcmFnZV9zM19hY2Nlc3Nfa2V5fVwiXG5TVE9SQUdFX1MzX1NFQ1JFVF9LRVkgPSBcIiR7c3RvcmFnZV9zM19zZWNyZXRfa2V5fVwiXG5TVE9SQUdFX1MzX0JVQ0tFVCA9IFwibmVidWx5bmstZmlsZXNcIlxuU1RPUkFHRV9TM19SRUdJT04gPSBcInVzLWVhc3QtMVwiXG5KV1RfU0VDUkVUID0gXCIke2p3dF9zZWNyZXR9XCJcbkFJX1NFQ1JFVF9LRVkgPSBcIiR7YWlfc2VjcmV0X2tleX1cIlxuQVVUSF8yRkFfU0VDUkVUX0tFWSA9IFwiJHthdXRoXzJmYV9zZWNyZXRfa2V5fVwiXG5MSVZFS0lUX0FQSV9LRVkgPSBcIiR7bGl2ZWtpdF9hcGlfa2V5fVwiXG5MSVZFS0lUX0FQSV9TRUNSRVQgPSBcIiR7bGl2ZWtpdF9hcGlfc2VjcmV0fVwiXG5GUk9OVEVORF9VUkwgPSBcIiR7ZnJvbnRlbmRfdXJsfVwiXG5QQVNTS0VZX1JQX0lEID0gXCIke2Zyb250ZW5kX2RvbWFpbn1cIlxuVklURV9BUElfVVJMID0gXCIke2JhY2tlbmRfdXJsfVwiXG5MSVZFS0lUX1BVQkxJQ19VUkwgPSBcIiR7bGl2ZWtpdF9wdWJsaWNfdXJsfVwiXG5TVE9SQUdFX1MzX1BVQkxJQ19FTkRQT0lOVCA9IFwiJHtnYXJhZ2VfcHVibGljX3VybH1cIlxuIn0= diff --git a/blueprints/nebulynk/meta.json b/blueprints/nebulynk/meta.json new file mode 100644 index 000000000..dcd4e4e1a --- /dev/null +++ b/blueprints/nebulynk/meta.json @@ -0,0 +1,28 @@ +{ + "id": "nebulynk", + "name": "Nebulynk", + "version": "0.4.0", + "description": "Nebulynk is a self-hosted collaboration platform for teams with real-time messaging, file sharing, video meetings, and AI-powered transcription and summaries.", + "logo": "nebulynk.png", + "links": { + "github": "https://github.com/sapientorius/Nebulynk", + "docs": "https://github.com/sapientorius/Nebulynk", + "website": "https://nebulynk.net" + }, + "tags": [ + "communication", + "collaboration", + "chat", + "video-conferencing", + "self-hosted", + "messaging", + "file-sharing", + "ai-integration", + "team-collaboration", + "voice-chat", + "productivity", + "remote-work", + "transcription", + "meeting" + ] +} diff --git a/blueprints/nebulynk/nebulynk.png b/blueprints/nebulynk/nebulynk.png new file mode 100644 index 0000000000000000000000000000000000000000..da0d1d099196a65145dbd9ad7a0e622e36dbe567 GIT binary patch literal 47414 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Ξ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 IM6N<$f@h`7hyVZp literal 0 HcmV?d00001 diff --git a/blueprints/nebulynk/template.toml b/blueprints/nebulynk/template.toml new file mode 100644 index 000000000..c778d7554 --- /dev/null +++ b/blueprints/nebulynk/template.toml @@ -0,0 +1,71 @@ +# Values in [variables] are resolved once when Dokploy imports the template. +# The generated values are then stored in the Compose service environment. +[variables] +frontend_domain = "${domain}" +backend_domain = "${domain}" +livekit_domain = "${domain}" +garage_domain = "${domain}" + +postgres_password = "${password:64}" +garage_rpc_secret = "${hash:64}" +storage_s3_access_key = "${password:24}" +storage_s3_secret_key = "${password:64}" +jwt_secret = "${password:64}" +ai_secret_key = "${password:64}" +auth_2fa_secret_key = "${password:64}" +livekit_api_key = "${password:24}" +livekit_api_secret = "${password:64}" + +frontend_url = "https://${frontend_domain}" +backend_url = "https://${backend_domain}" +livekit_public_url = "https://${livekit_domain}" +garage_public_url = "https://${garage_domain}" +source_ref = "stable" + +[config] +isolated = true + +[[config.domains]] +serviceName = "frontend" +port = 8080 +host = "${frontend_domain}" +path = "/" + +[[config.domains]] +serviceName = "backend" +port = 3030 +host = "${backend_domain}" +path = "/" + +[[config.domains]] +serviceName = "livekit" +port = 7880 +host = "${livekit_domain}" +path = "/" + +[[config.domains]] +serviceName = "garage" +port = 3900 +host = "${garage_domain}" +path = "/" + +[config.env] +NEBULYNK_SOURCE_REF = "${source_ref}" +POSTGRES_DB = "nebulynk" +POSTGRES_USER = "nebulynk" +POSTGRES_PASSWORD = "${postgres_password}" +GARAGE_RPC_SECRET = "${garage_rpc_secret}" +STORAGE_S3_ACCESS_KEY = "${storage_s3_access_key}" +STORAGE_S3_SECRET_KEY = "${storage_s3_secret_key}" +STORAGE_S3_BUCKET = "nebulynk-files" +STORAGE_S3_REGION = "us-east-1" +JWT_SECRET = "${jwt_secret}" +AI_SECRET_KEY = "${ai_secret_key}" +AUTH_2FA_SECRET_KEY = "${auth_2fa_secret_key}" +LIVEKIT_API_KEY = "${livekit_api_key}" +LIVEKIT_API_SECRET = "${livekit_api_secret}" +FRONTEND_URL = "${frontend_url}" +PASSKEY_RP_ID = "${frontend_domain}" +VITE_API_URL = "${backend_url}" +LIVEKIT_PUBLIC_URL = "${livekit_public_url}" +STORAGE_S3_PUBLIC_ENDPOINT = "${garage_public_url}" From 35d8f7869e728e7f968bf593326c01bb6f60b593 Mon Sep 17 00:00:00 2001 From: Alexander Zerling Date: Sat, 15 Aug 2026 20:20:28 +0200 Subject: [PATCH 2/7] Refactor code structure for improved readability and maintainability --- blueprints/nebulynk/docker-compose.yml | 2 ++ blueprints/nebulynk/import.base64 | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/blueprints/nebulynk/docker-compose.yml b/blueprints/nebulynk/docker-compose.yml index 024660ff4..91da8e52c 100644 --- a/blueprints/nebulynk/docker-compose.yml +++ b/blueprints/nebulynk/docker-compose.yml @@ -1,3 +1,5 @@ +# dokploy: allow-host-ports +# LiveKit requires public TCP/UDP media ports 7881 and 7882 for WebRTC. # Nebulynk Dokploy template. Import the generated import.base64 file through # Compose -> Advanced -> Import. Dokploy owns routing and the isolated network. version: "3.8" diff --git a/blueprints/nebulynk/import.base64 b/blueprints/nebulynk/import.base64 index 462b1cd86..5fb49b94f 100644 --- a/blueprints/nebulynk/import.base64 +++ b/blueprints/nebulynk/import.base64 @@ -1 +1 @@ -eyJjb21wb3NlIjoiIyBOZWJ1bHluayBEb2twbG95IHRlbXBsYXRlLiBJbXBvcnQgdGhlIGdlbmVyYXRlZCBpbXBvcnQuYmFzZTY0IGZpbGUgdGhyb3VnaFxuIyBDb21wb3NlIC0+IEFkdmFuY2VkIC0+IEltcG9ydC4gRG9rcGxveSBvd25zIHJvdXRpbmcgYW5kIHRoZSBpc29sYXRlZCBuZXR3b3JrLlxudmVyc2lvbjogXCIzLjhcIlxuc2VydmljZXM6XG4gIGZyb250ZW5kOlxuICAgIGJ1aWxkOlxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxuICAgICAgZG9ja2VyZmlsZTogZnJvbnRlbmQvRG9ja2VyZmlsZVxuICAgICAgYXJnczpcbiAgICAgICAgTk9ERV9JTUFHRTogXCIke05FQlVMWU5LX05PREVfSU1BR0U6LW5vZGU6MjIuMjMuMS1hbHBpbmUzLjI0fVwiXG4gICAgICAgIE5HSU5YX0lNQUdFOiBcIiR7TkVCVUxZTktfTkdJTlhfSU1BR0U6LW5naW54aW5jL25naW54LXVucHJpdmlsZWdlZDoxLjMxLWFscGluZTMuMjNAc2hhMjU2OjYzMjAwMjBjN2RhODcxNGZlYWI1MjRlMDJjMDhjNWExOTU4Njc1YzRlNjg3MDBlOTNhMmZkODk3MGIwNjU3ODZ9XCJcbiAgICAgICAgIyBUaGVzZSBVUkxzIGFyZSBiYWtlZCBpbnRvIHRoZSBicm93c2VyIGJ1bmRsZS5cbiAgICAgICAgVklURV9BUElfVVJMOiBcIiR7VklURV9BUElfVVJMOj9WSVRFX0FQSV9VUkwgbXVzdCBiZSBzZXR9XCJcbiAgICAgICAgVklURV9MSVZFS0lUX1VSTDogXCIke0xJVkVLSVRfUFVCTElDX1VSTDo/TElWRUtJVF9QVUJMSUNfVVJMIG11c3QgYmUgc2V0fVwiXG4gICAgICAgIFZJVEVfVkFQSURfUFVCTElDX0tFWTogXCIke1ZBUElEX1BVQkxJQ19LRVk6LX1cIlxuICAgICAgICBWSVRFX0FVVEhfQ1NSRl9DT09LSUVfTkFNRTogXCIke0FVVEhfQ1NSRl9DT09LSUVfTkFNRTotbmVidWx5bmtfY3NyZl90b2tlbn1cIlxuICAgIGRlcGVuZHNfb246XG4gICAgICAtIGJhY2tlbmRcbiAgICBleHBvc2U6XG4gICAgICAtIFwiODA4MFwiXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcblxuICBwb3N0Z3JlczpcbiAgICBpbWFnZTogXCIke05FQlVMWU5LX1BPU1RHUkVTX0lNQUdFOi1wb3N0Z3JlczoxNy1hbHBpbmUzLjI0QHNoYTI1Njo3NDJmNDBlYTIwYjlmZjJmZjMxZGI1NDU4ZDEyNzQ1Mjk4OGEyMTY0ZGY5ZTE3NDQxZTE5MWYzYjcyMjUyMTkzfVwiXG4gICAgZW52aXJvbm1lbnQ6XG4gICAgICBQT1NUR1JFU19EQjogXCIke1BPU1RHUkVTX0RCOi1uZWJ1bHlua31cIlxuICAgICAgUE9TVEdSRVNfVVNFUjogXCIke1BPU1RHUkVTX1VTRVI6LW5lYnVseW5rfVwiXG4gICAgICBQT1NUR1JFU19QQVNTV09SRDogXCIke1BPU1RHUkVTX1BBU1NXT1JEOj9QT1NUR1JFU19QQVNTV09SRCBtdXN0IGJlIHNldH1cIlxuICAgIHZvbHVtZXM6XG4gICAgICAtIG5lYnVseW5rX3Bvc3RncmVzX2RhdGE6L3Zhci9saWIvcG9zdGdyZXNxbC9kYXRhXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcblxuICByZWRpczpcbiAgICBpbWFnZTogXCIke05FQlVMWU5LX1JFRElTX0lNQUdFOi1yZWRpczo3LjQuNy1hbHBpbmUzLjIxfVwiXG4gICAgdm9sdW1lczpcbiAgICAgIC0gbmVidWx5bmtfcmVkaXNfZGF0YTovZGF0YVxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG5cbiAgIyBQcmVwYXJlIG5hbWVkIEdhcmFnZSB2b2x1bWVzIGZvciB0aGUgdW5wcml2aWxlZ2VkIEdhcmFnZSBwcm9jZXNzLlxuICBnYXJhZ2Utdm9sdW1lLWluaXQ6XG4gICAgaW1hZ2U6IGFscGluZTozLjIxLjVcbiAgICB1c2VyOiBcIjA6MFwiXG4gICAgY29tbWFuZDogW1wic2hcIiwgXCItZWNcIiwgXCJjaG93biAtUiA2NTUzMjo2NTUzMiAvdmFyL2xpYi9nYXJhZ2UvbWV0YSAvdmFyL2xpYi9nYXJhZ2UvZGF0YVwiXVxuICAgIHZvbHVtZXM6XG4gICAgICAtIG5lYnVseW5rX2dhcmFnZV9tZXRhOi92YXIvbGliL2dhcmFnZS9tZXRhXG4gICAgICAtIG5lYnVseW5rX2dhcmFnZV9kYXRhOi92YXIvbGliL2dhcmFnZS9kYXRhXG4gICAgcmVzdGFydDogXCJub1wiXG5cbiAgZ2FyYWdlOlxuICAgIGJ1aWxkOlxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxuICAgICAgZG9ja2VyZmlsZTogZ2FyYWdlLkRvY2tlcmZpbGVcbiAgICAgIGFyZ3M6XG4gICAgICAgIEdBUkFHRV9JTUFHRTogXCIke05FQlVMWU5LX0dBUkFHRV9JTUFHRTotZHhmbHJzL2dhcmFnZTp2Mi4zLjB9XCJcbiAgICBkZXBlbmRzX29uOlxuICAgICAgZ2FyYWdlLXZvbHVtZS1pbml0OlxuICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfY29tcGxldGVkX3N1Y2Nlc3NmdWxseVxuICAgIGNvbW1hbmQ6IC9nYXJhZ2Ugc2VydmVyIC0tc2luZ2xlLW5vZGUgLS1kZWZhdWx0LWJ1Y2tldFxuICAgIGVudmlyb25tZW50OlxuICAgICAgR0FSQUdFX1JQQ19TRUNSRVQ6IFwiJHtHQVJBR0VfUlBDX1NFQ1JFVDo/R0FSQUdFX1JQQ19TRUNSRVQgbXVzdCBiZSBzZXR9XCJcbiAgICAgIEdBUkFHRV9ERUZBVUxUX0FDQ0VTU19LRVk6IFwiJHtTVE9SQUdFX1MzX0FDQ0VTU19LRVk6P1NUT1JBR0VfUzNfQUNDRVNTX0tFWSBtdXN0IGJlIHNldH1cIlxuICAgICAgR0FSQUdFX0RFRkFVTFRfU0VDUkVUX0tFWTogXCIke1NUT1JBR0VfUzNfU0VDUkVUX0tFWTo/U1RPUkFHRV9TM19TRUNSRVRfS0VZIG11c3QgYmUgc2V0fVwiXG4gICAgICBHQVJBR0VfREVGQVVMVF9CVUNLRVQ6IFwiJHtTVE9SQUdFX1MzX0JVQ0tFVDotbmVidWx5bmstZmlsZXN9XCJcbiAgICB2b2x1bWVzOlxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfbWV0YTovdmFyL2xpYi9nYXJhZ2UvbWV0YVxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfZGF0YTovdmFyL2xpYi9nYXJhZ2UvZGF0YVxuICAgIGV4cG9zZTpcbiAgICAgIC0gXCIzOTAwXCJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuXG4gIGxpdmVraXQ6XG4gICAgYnVpbGQ6XG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXG4gICAgICBkb2NrZXJmaWxlOiBsaXZla2l0LkRvY2tlcmZpbGVcbiAgICAgIGFyZ3M6XG4gICAgICAgIExJVkVLSVRfU0VSVkVSX0lNQUdFOiBcIiR7TkVCVUxZTktfTElWRUtJVF9TRVJWRVJfSU1BR0U6LWxpdmVraXQvbGl2ZWtpdC1zZXJ2ZXI6djEuMTMuNH1cIlxuICAgIGNvbW1hbmQ6IC0tY29uZmlnIC9saXZla2l0LnlhbWxcbiAgICBkZXBlbmRzX29uOlxuICAgICAgLSByZWRpc1xuICAgIGVudmlyb25tZW50OlxuICAgICAgTElWRUtJVF9LRVlTOiBcIiR7TElWRUtJVF9BUElfS0VZOj9MSVZFS0lUX0FQSV9LRVkgbXVzdCBiZSBzZXR9OiAke0xJVkVLSVRfQVBJX1NFQ1JFVDo/TElWRUtJVF9BUElfU0VDUkVUIG11c3QgYmUgc2V0fVwiXG4gICAgZXhwb3NlOlxuICAgICAgLSBcIjc4ODBcIlxuICAgIHBvcnRzOlxuICAgICAgLSBcIjc4ODE6Nzg4MVwiXG4gICAgICAtIFwiNzg4Mjo3ODgyL3VkcFwiXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcblxuICBsaXZla2l0LWVncmVzczpcbiAgICBidWlsZDpcbiAgICAgIGNvbnRleHQ6IFwiaHR0cHM6Ly9naXRodWIuY29tL3NhcGllbnRvcml1cy9OZWJ1bHluay5naXQjJHtORUJVTFlOS19TT1VSQ0VfUkVGOi1zdGFibGV9XCJcbiAgICAgIGRvY2tlcmZpbGU6IGxpdmVraXQtZWdyZXNzLkRvY2tlcmZpbGVcbiAgICAgIGFyZ3M6XG4gICAgICAgIExJVkVLSVRfRUdSRVNTX0lNQUdFOiBcIiR7TkVCVUxZTktfTElWRUtJVF9FR1JFU1NfSU1BR0U6LWxpdmVraXQvZWdyZXNzOnYxLjEzLjB9XCJcbiAgICBjb21tYW5kOiAtLWNvbmZpZyAvbGl2ZWtpdC1lZ3Jlc3MueWFtbFxuICAgIGVudmlyb25tZW50OlxuICAgICAgRUdSRVNTX0NPTkZJR19GSUxFOiAvbGl2ZWtpdC1lZ3Jlc3MueWFtbFxuICAgICAgTElWRUtJVF9BUElfS0VZOiBcIiR7TElWRUtJVF9BUElfS0VZOj9MSVZFS0lUX0FQSV9LRVkgbXVzdCBiZSBzZXR9XCJcbiAgICAgIExJVkVLSVRfQVBJX1NFQ1JFVDogXCIke0xJVkVLSVRfQVBJX1NFQ1JFVDo/TElWRUtJVF9BUElfU0VDUkVUIG11c3QgYmUgc2V0fVwiXG4gICAgICBMSVZFS0lUX1dTX1VSTDogd3M6Ly9saXZla2l0Ojc4ODBcbiAgICAgIEFXU19BQ0NFU1NfS0VZX0lEOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcbiAgICAgIEFXU19TRUNSRVRfQUNDRVNTX0tFWTogXCIke1NUT1JBR0VfUzNfU0VDUkVUX0tFWTo/U1RPUkFHRV9TM19TRUNSRVRfS0VZIG11c3QgYmUgc2V0fVwiXG4gICAgICBBV1NfREVGQVVMVF9SRUdJT046IFwiJHtTVE9SQUdFX1MzX1JFR0lPTjotJHtNRUVUSU5HX1JFQ09SRElOR1NfUzNfUkVHSU9OOi11cy1lYXN0LTF9fVwiXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIC0gbGl2ZWtpdFxuICAgICAgLSByZWRpc1xuICAgICAgLSBnYXJhZ2VcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuXG4gIGJhY2tlbmQ6XG4gICAgYnVpbGQ6XG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXG4gICAgICBkb2NrZXJmaWxlOiBiYWNrZW5kL0RvY2tlcmZpbGVcbiAgICAgIGFyZ3M6XG4gICAgICAgIE5PREVfSU1BR0U6IFwiJHtORUJVTFlOS19OT0RFX0lNQUdFOi1ub2RlOjIyLjIzLjEtYWxwaW5lMy4yNH1cIlxuICAgIGVudmlyb25tZW50OlxuICAgICAgTk9ERV9FTlY6IHByb2R1Y3Rpb25cbiAgICAgIEpXVF9TRUNSRVQ6IFwiJHtKV1RfU0VDUkVUOj9KV1RfU0VDUkVUIG11c3QgYmUgc2V0fVwiXG4gICAgICBBSV9TRUNSRVRfS0VZOiBcIiR7QUlfU0VDUkVUX0tFWTo/QUlfU0VDUkVUX0tFWSBtdXN0IGJlIHNldH1cIlxuICAgICAgQVVUSF8yRkFfU0VDUkVUX0tFWTogXCIke0FVVEhfMkZBX1NFQ1JFVF9LRVk6LX1cIlxuICAgICAgQkFDS0VORF9QT1JUOiBcIiR7QkFDS0VORF9QT1JUOi0zMDMwfVwiXG4gICAgICBMT0dfTEVWRUw6IFwiJHtMT0dfTEVWRUw6LWluZm99XCJcbiAgICAgIE1BWF9GSUxFX1NJWkU6IFwiJHtNQVhfRklMRV9TSVpFOi0yNjIxNDQwMH1cIlxuICAgICAgQVVUSEVOVElDQVRJT05fUkFURV9MSU1JVF9JUF9MSU1JVDogXCIke0FVVEhFTlRJQ0FUSU9OX1JBVEVfTElNSVRfSVBfTElNSVQ6LX1cIlxuICAgICAgQVVUSF9CUk9XU0VSX0FDQ0VTU19UT0tFTl9UVEw6IFwiJHtBVVRIX0JST1dTRVJfQUNDRVNTX1RPS0VOX1RUTDotMTVtfVwiXG4gICAgICBBVVRIX1JFRlJFU0hfVE9LRU5fVFRMOiBcIiR7QVVUSF9SRUZSRVNIX1RPS0VOX1RUTDotMWR9XCJcbiAgICAgIEFVVEhfUkVNRU1CRVJfUkVGUkVTSF9UT0tFTl9UVEw6IFwiJHtBVVRIX1JFTUVNQkVSX1JFRlJFU0hfVE9LRU5fVFRMOi0zMGR9XCJcbiAgICAgIEFVVEhfUkVGUkVTSF9DT09LSUVfTkFNRTogXCIke0FVVEhfUkVGUkVTSF9DT09LSUVfTkFNRTotbmVidWx5bmtfcmVmcmVzaF9zZXNzaW9ufVwiXG4gICAgICBBVVRIX0NTUkZfQ09PS0lFX05BTUU6IFwiJHtBVVRIX0NTUkZfQ09PS0lFX05BTUU6LW5lYnVseW5rX2NzcmZfdG9rZW59XCJcbiAgICAgIEFVVEhfQ09PS0lFX0RPTUFJTjogXCIke0FVVEhfQ09PS0lFX0RPTUFJTjotfVwiXG4gICAgICBSQVRFX0xJTUlUX0RSSVZFUjogXCIke1JBVEVfTElNSVRfRFJJVkVSOi1yZWRpc31cIlxuICAgICAgUEFTU0tFWV9SUF9JRDogXCIke1BBU1NLRVlfUlBfSUQ6P1BBU1NLRVlfUlBfSUQgbXVzdCBiZSBzZXR9XCJcbiAgICAgIEFJX1BST1ZJREVSX0JBU0VfVVJMX0FMTE9XTElTVDogXCIke0FJX1BST1ZJREVSX0JBU0VfVVJMX0FMTE9XTElTVDotfVwiXG4gICAgICBQT1NUR1JFU19IT1NUOiBwb3N0Z3Jlc1xuICAgICAgUE9TVEdSRVNfUE9SVDogXCI1NDMyXCJcbiAgICAgIFBPU1RHUkVTX0RCOiBcIiR7UE9TVEdSRVNfREI6LW5lYnVseW5rfVwiXG4gICAgICBQT1NUR1JFU19VU0VSOiBcIiR7UE9TVEdSRVNfVVNFUjotbmVidWx5bmt9XCJcbiAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiBcIiR7UE9TVEdSRVNfUEFTU1dPUkQ6P1BPU1RHUkVTX1BBU1NXT1JEIG11c3QgYmUgc2V0fVwiXG4gICAgICBSRURJU19IT1NUOiByZWRpc1xuICAgICAgUkVESVNfUE9SVDogXCI2Mzc5XCJcbiAgICAgIFNUT1JBR0VfUzNfRU5EUE9JTlQ6IGh0dHA6Ly9nYXJhZ2U6MzkwMFxuICAgICAgU1RPUkFHRV9TM19QVUJMSUNfRU5EUE9JTlQ6IFwiJHtTVE9SQUdFX1MzX1BVQkxJQ19FTkRQT0lOVDo/U1RPUkFHRV9TM19QVUJMSUNfRU5EUE9JTlQgbXVzdCBiZSBzZXR9XCJcbiAgICAgIFNUT1JBR0VfUzNfQUNDRVNTX0tFWTogXCIke1NUT1JBR0VfUzNfQUNDRVNTX0tFWTo/U1RPUkFHRV9TM19BQ0NFU1NfS0VZIG11c3QgYmUgc2V0fVwiXG4gICAgICBTVE9SQUdFX1MzX1NFQ1JFVF9LRVk6IFwiJHtTVE9SQUdFX1MzX1NFQ1JFVF9LRVk6P1NUT1JBR0VfUzNfU0VDUkVUX0tFWSBtdXN0IGJlIHNldH1cIlxuICAgICAgU1RPUkFHRV9TM19CVUNLRVQ6IFwiJHtTVE9SQUdFX1MzX0JVQ0tFVDotbmVidWx5bmstZmlsZXN9XCJcbiAgICAgIFNUT1JBR0VfUzNfUkVHSU9OOiBcIiR7U1RPUkFHRV9TM19SRUdJT046LSR7TUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjotdXMtZWFzdC0xfX1cIlxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX1BSRUZJWDogbWVldGluZy1yZWNvcmRpbmdzXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfQlVDS0VUOiBcIiR7U1RPUkFHRV9TM19CVUNLRVQ6LW5lYnVseW5rLWZpbGVzfVwiXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfUzNfRU5EUE9JTlQ6IGh0dHA6Ly9nYXJhZ2U6MzkwMFxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX0VHUkVTU19TM19FTkRQT0lOVDogaHR0cDovL2dhcmFnZTozOTAwXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfUzNfUkVHSU9OOiBcIiR7TUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjotJHtTVE9SQUdFX1MzX1JFR0lPTjotdXMtZWFzdC0xfX1cIlxuICAgICAgTUVFVElOR19UUkFOU0NSSVBUX1dBSVRfVElNRU9VVF9NUzogXCIke01FRVRJTkdfVFJBTlNDUklQVF9XQUlUX1RJTUVPVVRfTVM6LTEyMDAwMH1cIlxuICAgICAgTElWRUtJVF9IT1NUOiBodHRwOi8vbGl2ZWtpdDo3ODgwXG4gICAgICBMSVZFS0lUX1BVQkxJQ19VUkw6IFwiJHtMSVZFS0lUX1BVQkxJQ19VUkw6P0xJVkVLSVRfUFVCTElDX1VSTCBtdXN0IGJlIHNldH1cIlxuICAgICAgTElWRUtJVF9BUElfS0VZOiBcIiR7TElWRUtJVF9BUElfS0VZOj9MSVZFS0lUX0FQSV9LRVkgbXVzdCBiZSBzZXR9XCJcbiAgICAgIExJVkVLSVRfQVBJX1NFQ1JFVDogXCIke0xJVkVLSVRfQVBJX1NFQ1JFVDo/TElWRUtJVF9BUElfU0VDUkVUIG11c3QgYmUgc2V0fVwiXG4gICAgICBLTElQWV9BUElfS0VZOiBcIiR7S0xJUFlfQVBJX0tFWTotfVwiXG4gICAgICBWQVBJRF9QVUJMSUNfS0VZOiBcIiR7VkFQSURfUFVCTElDX0tFWTotfVwiXG4gICAgICBWQVBJRF9QUklWQVRFX0tFWTogXCIke1ZBUElEX1BSSVZBVEVfS0VZOi19XCJcbiAgICAgIFZBUElEX1NVQkpFQ1Q6IFwiJHtWQVBJRF9TVUJKRUNUOi1tYWlsdG86YWRtaW5AZXhhbXBsZS5jb219XCJcbiAgICAgIFNNVFBfSE9TVDogXCIke1NNVFBfSE9TVDotfVwiXG4gICAgICBTTVRQX1BPUlQ6IFwiJHtTTVRQX1BPUlQ6LTU4N31cIlxuICAgICAgU01UUF9TRUNVUkU6IFwiJHtTTVRQX1NFQ1VSRTotZmFsc2V9XCJcbiAgICAgIFNNVFBfSUdOT1JFX1RMUzogXCIke1NNVFBfSUdOT1JFX1RMUzotZmFsc2V9XCJcbiAgICAgIFNNVFBfVVNFUjogXCIke1NNVFBfVVNFUjotfVwiXG4gICAgICBTTVRQX1BBU1M6IFwiJHtTTVRQX1BBU1M6LX1cIlxuICAgICAgU01UUF9GUk9NOiBcIiR7U01UUF9GUk9NOi1ub3JlcGx5QG5lYnVseW5rLmxvY2FsfVwiXG4gICAgICBTTVRQX0ZST01fTkFNRTogXCIke1NNVFBfRlJPTV9OQU1FOi1OZWJ1bHlua31cIlxuICAgICAgRlJPTlRFTkRfVVJMOiBcIiR7RlJPTlRFTkRfVVJMOj9GUk9OVEVORF9VUkwgbXVzdCBiZSBzZXR9XCJcbiAgICAgIFRSVVNUX1BST1hZOiBcIiR7VFJVU1RfUFJPWFk6LXRydWV9XCJcbiAgICAgIE5FQlVMWU5LX0JVSUxEX1NIQTogXCIke05FQlVMWU5LX0JVSUxEX1NIQTotfVwiXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIC0gcG9zdGdyZXNcbiAgICAgIC0gcmVkaXNcbiAgICAgIC0gZ2FyYWdlXG4gICAgICAtIGxpdmVraXRcbiAgICAgIC0gbGl2ZWtpdC1lZ3Jlc3NcbiAgICBleHBvc2U6XG4gICAgICAtIFwiMzAzMFwiXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcblxudm9sdW1lczpcbiAgbmVidWx5bmtfcG9zdGdyZXNfZGF0YTpcbiAgbmVidWx5bmtfcmVkaXNfZGF0YTpcbiAgbmVidWx5bmtfZ2FyYWdlX21ldGE6XG4gIG5lYnVseW5rX2dhcmFnZV9kYXRhOlxuIiwiY29uZmlnIjoiIyBWYWx1ZXMgaW4gW3ZhcmlhYmxlc10gYXJlIHJlc29sdmVkIG9uY2Ugd2hlbiBEb2twbG95IGltcG9ydHMgdGhlIHRlbXBsYXRlLlxuIyBUaGUgZ2VuZXJhdGVkIHZhbHVlcyBhcmUgdGhlbiBzdG9yZWQgaW4gdGhlIENvbXBvc2Ugc2VydmljZSBlbnZpcm9ubWVudC5cblt2YXJpYWJsZXNdXG5mcm9udGVuZF9kb21haW4gPSBcIiR7ZG9tYWlufVwiXG5iYWNrZW5kX2RvbWFpbiA9IFwiJHtkb21haW59XCJcbmxpdmVraXRfZG9tYWluID0gXCIke2RvbWFpbn1cIlxuZ2FyYWdlX2RvbWFpbiA9IFwiJHtkb21haW59XCJcblxucG9zdGdyZXNfcGFzc3dvcmQgPSBcIiR7cGFzc3dvcmQ6NjR9XCJcbmdhcmFnZV9ycGNfc2VjcmV0ID0gXCIke2hhc2g6NjR9XCJcbnN0b3JhZ2VfczNfYWNjZXNzX2tleSA9IFwiJHtwYXNzd29yZDoyNH1cIlxuc3RvcmFnZV9zM19zZWNyZXRfa2V5ID0gXCIke3Bhc3N3b3JkOjY0fVwiXG5qd3Rfc2VjcmV0ID0gXCIke3Bhc3N3b3JkOjY0fVwiXG5haV9zZWNyZXRfa2V5ID0gXCIke3Bhc3N3b3JkOjY0fVwiXG5hdXRoXzJmYV9zZWNyZXRfa2V5ID0gXCIke3Bhc3N3b3JkOjY0fVwiXG5saXZla2l0X2FwaV9rZXkgPSBcIiR7cGFzc3dvcmQ6MjR9XCJcbmxpdmVraXRfYXBpX3NlY3JldCA9IFwiJHtwYXNzd29yZDo2NH1cIlxuXG5mcm9udGVuZF91cmwgPSBcImh0dHBzOi8vJHtmcm9udGVuZF9kb21haW59XCJcbmJhY2tlbmRfdXJsID0gXCJodHRwczovLyR7YmFja2VuZF9kb21haW59XCJcbmxpdmVraXRfcHVibGljX3VybCA9IFwiaHR0cHM6Ly8ke2xpdmVraXRfZG9tYWlufVwiXG5nYXJhZ2VfcHVibGljX3VybCA9IFwiaHR0cHM6Ly8ke2dhcmFnZV9kb21haW59XCJcbnNvdXJjZV9yZWYgPSBcInN0YWJsZVwiXG5cbltjb25maWddXG5pc29sYXRlZCA9IHRydWVcblxuW1tjb25maWcuZG9tYWluc11dXG5zZXJ2aWNlTmFtZSA9IFwiZnJvbnRlbmRcIlxucG9ydCA9IDgwODBcbmhvc3QgPSBcIiR7ZnJvbnRlbmRfZG9tYWlufVwiXG5wYXRoID0gXCIvXCJcblxuW1tjb25maWcuZG9tYWluc11dXG5zZXJ2aWNlTmFtZSA9IFwiYmFja2VuZFwiXG5wb3J0ID0gMzAzMFxuaG9zdCA9IFwiJHtiYWNrZW5kX2RvbWFpbn1cIlxucGF0aCA9IFwiL1wiXG5cbltbY29uZmlnLmRvbWFpbnNdXVxuc2VydmljZU5hbWUgPSBcImxpdmVraXRcIlxucG9ydCA9IDc4ODBcbmhvc3QgPSBcIiR7bGl2ZWtpdF9kb21haW59XCJcbnBhdGggPSBcIi9cIlxuXG5bW2NvbmZpZy5kb21haW5zXV1cbnNlcnZpY2VOYW1lID0gXCJnYXJhZ2VcIlxucG9ydCA9IDM5MDBcbmhvc3QgPSBcIiR7Z2FyYWdlX2RvbWFpbn1cIlxucGF0aCA9IFwiL1wiXG5cbltjb25maWcuZW52XVxuTkVCVUxZTktfU09VUkNFX1JFRiA9IFwiJHtzb3VyY2VfcmVmfVwiXG5QT1NUR1JFU19EQiA9IFwibmVidWx5bmtcIlxuUE9TVEdSRVNfVVNFUiA9IFwibmVidWx5bmtcIlxuUE9TVEdSRVNfUEFTU1dPUkQgPSBcIiR7cG9zdGdyZXNfcGFzc3dvcmR9XCJcbkdBUkFHRV9SUENfU0VDUkVUID0gXCIke2dhcmFnZV9ycGNfc2VjcmV0fVwiXG5TVE9SQUdFX1MzX0FDQ0VTU19LRVkgPSBcIiR7c3RvcmFnZV9zM19hY2Nlc3Nfa2V5fVwiXG5TVE9SQUdFX1MzX1NFQ1JFVF9LRVkgPSBcIiR7c3RvcmFnZV9zM19zZWNyZXRfa2V5fVwiXG5TVE9SQUdFX1MzX0JVQ0tFVCA9IFwibmVidWx5bmstZmlsZXNcIlxuU1RPUkFHRV9TM19SRUdJT04gPSBcInVzLWVhc3QtMVwiXG5KV1RfU0VDUkVUID0gXCIke2p3dF9zZWNyZXR9XCJcbkFJX1NFQ1JFVF9LRVkgPSBcIiR7YWlfc2VjcmV0X2tleX1cIlxuQVVUSF8yRkFfU0VDUkVUX0tFWSA9IFwiJHthdXRoXzJmYV9zZWNyZXRfa2V5fVwiXG5MSVZFS0lUX0FQSV9LRVkgPSBcIiR7bGl2ZWtpdF9hcGlfa2V5fVwiXG5MSVZFS0lUX0FQSV9TRUNSRVQgPSBcIiR7bGl2ZWtpdF9hcGlfc2VjcmV0fVwiXG5GUk9OVEVORF9VUkwgPSBcIiR7ZnJvbnRlbmRfdXJsfVwiXG5QQVNTS0VZX1JQX0lEID0gXCIke2Zyb250ZW5kX2RvbWFpbn1cIlxuVklURV9BUElfVVJMID0gXCIke2JhY2tlbmRfdXJsfVwiXG5MSVZFS0lUX1BVQkxJQ19VUkwgPSBcIiR7bGl2ZWtpdF9wdWJsaWNfdXJsfVwiXG5TVE9SQUdFX1MzX1BVQkxJQ19FTkRQT0lOVCA9IFwiJHtnYXJhZ2VfcHVibGljX3VybH1cIlxuIn0= +eyJjb21wb3NlIjoiIyBkb2twbG95OiBhbGxvdy1ob3N0LXBvcnRzXG4jIExpdmVLaXQgcmVxdWlyZXMgcHVibGljIFRDUC9VRFAgbWVkaWEgcG9ydHMgNzg4MSBhbmQgNzg4MiBmb3IgV2ViUlRDLlxuIyBOZWJ1bHluayBEb2twbG95IHRlbXBsYXRlLiBJbXBvcnQgdGhlIGdlbmVyYXRlZCBpbXBvcnQuYmFzZTY0IGZpbGUgdGhyb3VnaFxuIyBDb21wb3NlIC0+IEFkdmFuY2VkIC0+IEltcG9ydC4gRG9rcGxveSBvd25zIHJvdXRpbmcgYW5kIHRoZSBpc29sYXRlZCBuZXR3b3JrLlxyXG52ZXJzaW9uOiBcIjMuOFwiXHJcbnNlcnZpY2VzOlxyXG4gIGZyb250ZW5kOlxyXG4gICAgYnVpbGQ6XHJcbiAgICAgIGNvbnRleHQ6IFwiaHR0cHM6Ly9naXRodWIuY29tL3NhcGllbnRvcml1cy9OZWJ1bHluay5naXQjJHtORUJVTFlOS19TT1VSQ0VfUkVGOi1zdGFibGV9XCJcclxuICAgICAgZG9ja2VyZmlsZTogZnJvbnRlbmQvRG9ja2VyZmlsZVxyXG4gICAgICBhcmdzOlxyXG4gICAgICAgIE5PREVfSU1BR0U6IFwiJHtORUJVTFlOS19OT0RFX0lNQUdFOi1ub2RlOjIyLjIzLjEtYWxwaW5lMy4yNH1cIlxyXG4gICAgICAgIE5HSU5YX0lNQUdFOiBcIiR7TkVCVUxZTktfTkdJTlhfSU1BR0U6LW5naW54aW5jL25naW54LXVucHJpdmlsZWdlZDoxLjMxLWFscGluZTMuMjNAc2hhMjU2OjYzMjAwMjBjN2RhODcxNGZlYWI1MjRlMDJjMDhjNWExOTU4Njc1YzRlNjg3MDBlOTNhMmZkODk3MGIwNjU3ODZ9XCJcclxuICAgICAgICAjIFRoZXNlIFVSTHMgYXJlIGJha2VkIGludG8gdGhlIGJyb3dzZXIgYnVuZGxlLlxyXG4gICAgICAgIFZJVEVfQVBJX1VSTDogXCIke1ZJVEVfQVBJX1VSTDo/VklURV9BUElfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgICAgVklURV9MSVZFS0lUX1VSTDogXCIke0xJVkVLSVRfUFVCTElDX1VSTDo/TElWRUtJVF9QVUJMSUNfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgICAgVklURV9WQVBJRF9QVUJMSUNfS0VZOiBcIiR7VkFQSURfUFVCTElDX0tFWTotfVwiXHJcbiAgICAgICAgVklURV9BVVRIX0NTUkZfQ09PS0lFX05BTUU6IFwiJHtBVVRIX0NTUkZfQ09PS0lFX05BTUU6LW5lYnVseW5rX2NzcmZfdG9rZW59XCJcclxuICAgIGRlcGVuZHNfb246XHJcbiAgICAgIC0gYmFja2VuZFxyXG4gICAgZXhwb3NlOlxyXG4gICAgICAtIFwiODA4MFwiXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICBwb3N0Z3JlczpcclxuICAgIGltYWdlOiBcIiR7TkVCVUxZTktfUE9TVEdSRVNfSU1BR0U6LXBvc3RncmVzOjE3LWFscGluZTMuMjRAc2hhMjU2Ojc0MmY0MGVhMjBiOWZmMmZmMzFkYjU0NThkMTI3NDUyOTg4YTIxNjRkZjllMTc0NDFlMTkxZjNiNzIyNTIxOTN9XCJcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBQT1NUR1JFU19EQjogXCIke1BPU1RHUkVTX0RCOi1uZWJ1bHlua31cIlxyXG4gICAgICBQT1NUR1JFU19VU0VSOiBcIiR7UE9TVEdSRVNfVVNFUjotbmVidWx5bmt9XCJcclxuICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IFwiJHtQT1NUR1JFU19QQVNTV09SRDo/UE9TVEdSRVNfUEFTU1dPUkQgbXVzdCBiZSBzZXR9XCJcclxuICAgIHZvbHVtZXM6XHJcbiAgICAgIC0gbmVidWx5bmtfcG9zdGdyZXNfZGF0YTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGFcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIHJlZGlzOlxyXG4gICAgaW1hZ2U6IFwiJHtORUJVTFlOS19SRURJU19JTUFHRTotcmVkaXM6Ny40LjctYWxwaW5lMy4yMX1cIlxyXG4gICAgdm9sdW1lczpcclxuICAgICAgLSBuZWJ1bHlua19yZWRpc19kYXRhOi9kYXRhXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICAjIFByZXBhcmUgbmFtZWQgR2FyYWdlIHZvbHVtZXMgZm9yIHRoZSB1bnByaXZpbGVnZWQgR2FyYWdlIHByb2Nlc3MuXHJcbiAgZ2FyYWdlLXZvbHVtZS1pbml0OlxyXG4gICAgaW1hZ2U6IGFscGluZTozLjIxLjVcclxuICAgIHVzZXI6IFwiMDowXCJcclxuICAgIGNvbW1hbmQ6IFtcInNoXCIsIFwiLWVjXCIsIFwiY2hvd24gLVIgNjU1MzI6NjU1MzIgL3Zhci9saWIvZ2FyYWdlL21ldGEgL3Zhci9saWIvZ2FyYWdlL2RhdGFcIl1cclxuICAgIHZvbHVtZXM6XHJcbiAgICAgIC0gbmVidWx5bmtfZ2FyYWdlX21ldGE6L3Zhci9saWIvZ2FyYWdlL21ldGFcclxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfZGF0YTovdmFyL2xpYi9nYXJhZ2UvZGF0YVxyXG4gICAgcmVzdGFydDogXCJub1wiXHJcblxyXG4gIGdhcmFnZTpcclxuICAgIGJ1aWxkOlxyXG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXHJcbiAgICAgIGRvY2tlcmZpbGU6IGdhcmFnZS5Eb2NrZXJmaWxlXHJcbiAgICAgIGFyZ3M6XHJcbiAgICAgICAgR0FSQUdFX0lNQUdFOiBcIiR7TkVCVUxZTktfR0FSQUdFX0lNQUdFOi1keGZscnMvZ2FyYWdlOnYyLjMuMH1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgZ2FyYWdlLXZvbHVtZS1pbml0OlxyXG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XHJcbiAgICBjb21tYW5kOiAvZ2FyYWdlIHNlcnZlciAtLXNpbmdsZS1ub2RlIC0tZGVmYXVsdC1idWNrZXRcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBHQVJBR0VfUlBDX1NFQ1JFVDogXCIke0dBUkFHRV9SUENfU0VDUkVUOj9HQVJBR0VfUlBDX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBHQVJBR0VfREVGQVVMVF9BQ0NFU1NfS0VZOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgR0FSQUdFX0RFRkFVTFRfU0VDUkVUX0tFWTogXCIke1NUT1JBR0VfUzNfU0VDUkVUX0tFWTo/U1RPUkFHRV9TM19TRUNSRVRfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIEdBUkFHRV9ERUZBVUxUX0JVQ0tFVDogXCIke1NUT1JBR0VfUzNfQlVDS0VUOi1uZWJ1bHluay1maWxlc31cIlxyXG4gICAgdm9sdW1lczpcclxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfbWV0YTovdmFyL2xpYi9nYXJhZ2UvbWV0YVxyXG4gICAgICAtIG5lYnVseW5rX2dhcmFnZV9kYXRhOi92YXIvbGliL2dhcmFnZS9kYXRhXHJcbiAgICBleHBvc2U6XHJcbiAgICAgIC0gXCIzOTAwXCJcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIGxpdmVraXQ6XHJcbiAgICBidWlsZDpcclxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxyXG4gICAgICBkb2NrZXJmaWxlOiBsaXZla2l0LkRvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBMSVZFS0lUX1NFUlZFUl9JTUFHRTogXCIke05FQlVMWU5LX0xJVkVLSVRfU0VSVkVSX0lNQUdFOi1saXZla2l0L2xpdmVraXQtc2VydmVyOnYxLjEzLjR9XCJcclxuICAgIGNvbW1hbmQ6IC0tY29uZmlnIC9saXZla2l0LnlhbWxcclxuICAgIGRlcGVuZHNfb246XHJcbiAgICAgIC0gcmVkaXNcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBMSVZFS0lUX0tFWVM6IFwiJHtMSVZFS0lUX0FQSV9LRVk6P0xJVkVLSVRfQVBJX0tFWSBtdXN0IGJlIHNldH06ICR7TElWRUtJVF9BUElfU0VDUkVUOj9MSVZFS0lUX0FQSV9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgIGV4cG9zZTpcclxuICAgICAgLSBcIjc4ODBcIlxyXG4gICAgcG9ydHM6XHJcbiAgICAgIC0gXCI3ODgxOjc4ODFcIlxyXG4gICAgICAtIFwiNzg4Mjo3ODgyL3VkcFwiXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICBsaXZla2l0LWVncmVzczpcclxuICAgIGJ1aWxkOlxyXG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXHJcbiAgICAgIGRvY2tlcmZpbGU6IGxpdmVraXQtZWdyZXNzLkRvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBMSVZFS0lUX0VHUkVTU19JTUFHRTogXCIke05FQlVMWU5LX0xJVkVLSVRfRUdSRVNTX0lNQUdFOi1saXZla2l0L2VncmVzczp2MS4xMy4wfVwiXHJcbiAgICBjb21tYW5kOiAtLWNvbmZpZyAvbGl2ZWtpdC1lZ3Jlc3MueWFtbFxyXG4gICAgZW52aXJvbm1lbnQ6XHJcbiAgICAgIEVHUkVTU19DT05GSUdfRklMRTogL2xpdmVraXQtZWdyZXNzLnlhbWxcclxuICAgICAgTElWRUtJVF9BUElfS0VZOiBcIiR7TElWRUtJVF9BUElfS0VZOj9MSVZFS0lUX0FQSV9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgTElWRUtJVF9BUElfU0VDUkVUOiBcIiR7TElWRUtJVF9BUElfU0VDUkVUOj9MSVZFS0lUX0FQSV9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgTElWRUtJVF9XU19VUkw6IHdzOi8vbGl2ZWtpdDo3ODgwXHJcbiAgICAgIEFXU19BQ0NFU1NfS0VZX0lEOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZOiBcIiR7U1RPUkFHRV9TM19TRUNSRVRfS0VZOj9TVE9SQUdFX1MzX1NFQ1JFVF9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVdTX0RFRkFVTFRfUkVHSU9OOiBcIiR7U1RPUkFHRV9TM19SRUdJT046LSR7TUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjotdXMtZWFzdC0xfX1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgLSBsaXZla2l0XHJcbiAgICAgIC0gcmVkaXNcclxuICAgICAgLSBnYXJhZ2VcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIGJhY2tlbmQ6XHJcbiAgICBidWlsZDpcclxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxyXG4gICAgICBkb2NrZXJmaWxlOiBiYWNrZW5kL0RvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBOT0RFX0lNQUdFOiBcIiR7TkVCVUxZTktfTk9ERV9JTUFHRTotbm9kZToyMi4yMy4xLWFscGluZTMuMjR9XCJcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBOT0RFX0VOVjogcHJvZHVjdGlvblxyXG4gICAgICBKV1RfU0VDUkVUOiBcIiR7SldUX1NFQ1JFVDo/SldUX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBBSV9TRUNSRVRfS0VZOiBcIiR7QUlfU0VDUkVUX0tFWTo/QUlfU0VDUkVUX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBBVVRIXzJGQV9TRUNSRVRfS0VZOiBcIiR7QVVUSF8yRkFfU0VDUkVUX0tFWTotfVwiXHJcbiAgICAgIEJBQ0tFTkRfUE9SVDogXCIke0JBQ0tFTkRfUE9SVDotMzAzMH1cIlxyXG4gICAgICBMT0dfTEVWRUw6IFwiJHtMT0dfTEVWRUw6LWluZm99XCJcclxuICAgICAgTUFYX0ZJTEVfU0laRTogXCIke01BWF9GSUxFX1NJWkU6LTI2MjE0NDAwfVwiXHJcbiAgICAgIEFVVEhFTlRJQ0FUSU9OX1JBVEVfTElNSVRfSVBfTElNSVQ6IFwiJHtBVVRIRU5USUNBVElPTl9SQVRFX0xJTUlUX0lQX0xJTUlUOi19XCJcclxuICAgICAgQVVUSF9CUk9XU0VSX0FDQ0VTU19UT0tFTl9UVEw6IFwiJHtBVVRIX0JST1dTRVJfQUNDRVNTX1RPS0VOX1RUTDotMTVtfVwiXHJcbiAgICAgIEFVVEhfUkVGUkVTSF9UT0tFTl9UVEw6IFwiJHtBVVRIX1JFRlJFU0hfVE9LRU5fVFRMOi0xZH1cIlxyXG4gICAgICBBVVRIX1JFTUVNQkVSX1JFRlJFU0hfVE9LRU5fVFRMOiBcIiR7QVVUSF9SRU1FTUJFUl9SRUZSRVNIX1RPS0VOX1RUTDotMzBkfVwiXHJcbiAgICAgIEFVVEhfUkVGUkVTSF9DT09LSUVfTkFNRTogXCIke0FVVEhfUkVGUkVTSF9DT09LSUVfTkFNRTotbmVidWx5bmtfcmVmcmVzaF9zZXNzaW9ufVwiXHJcbiAgICAgIEFVVEhfQ1NSRl9DT09LSUVfTkFNRTogXCIke0FVVEhfQ1NSRl9DT09LSUVfTkFNRTotbmVidWx5bmtfY3NyZl90b2tlbn1cIlxyXG4gICAgICBBVVRIX0NPT0tJRV9ET01BSU46IFwiJHtBVVRIX0NPT0tJRV9ET01BSU46LX1cIlxyXG4gICAgICBSQVRFX0xJTUlUX0RSSVZFUjogXCIke1JBVEVfTElNSVRfRFJJVkVSOi1yZWRpc31cIlxyXG4gICAgICBQQVNTS0VZX1JQX0lEOiBcIiR7UEFTU0tFWV9SUF9JRDo/UEFTU0tFWV9SUF9JRCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBBSV9QUk9WSURFUl9CQVNFX1VSTF9BTExPV0xJU1Q6IFwiJHtBSV9QUk9WSURFUl9CQVNFX1VSTF9BTExPV0xJU1Q6LX1cIlxyXG4gICAgICBQT1NUR1JFU19IT1NUOiBwb3N0Z3Jlc1xyXG4gICAgICBQT1NUR1JFU19QT1JUOiBcIjU0MzJcIlxyXG4gICAgICBQT1NUR1JFU19EQjogXCIke1BPU1RHUkVTX0RCOi1uZWJ1bHlua31cIlxyXG4gICAgICBQT1NUR1JFU19VU0VSOiBcIiR7UE9TVEdSRVNfVVNFUjotbmVidWx5bmt9XCJcclxuICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IFwiJHtQT1NUR1JFU19QQVNTV09SRDo/UE9TVEdSRVNfUEFTU1dPUkQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgUkVESVNfSE9TVDogcmVkaXNcclxuICAgICAgUkVESVNfUE9SVDogXCI2Mzc5XCJcclxuICAgICAgU1RPUkFHRV9TM19FTkRQT0lOVDogaHR0cDovL2dhcmFnZTozOTAwXHJcbiAgICAgIFNUT1JBR0VfUzNfUFVCTElDX0VORFBPSU5UOiBcIiR7U1RPUkFHRV9TM19QVUJMSUNfRU5EUE9JTlQ6P1NUT1JBR0VfUzNfUFVCTElDX0VORFBPSU5UIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfQUNDRVNTX0tFWTogXCIke1NUT1JBR0VfUzNfQUNDRVNTX0tFWTo/U1RPUkFHRV9TM19BQ0NFU1NfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfU0VDUkVUX0tFWTogXCIke1NUT1JBR0VfUzNfU0VDUkVUX0tFWTo/U1RPUkFHRV9TM19TRUNSRVRfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfQlVDS0VUOiBcIiR7U1RPUkFHRV9TM19CVUNLRVQ6LW5lYnVseW5rLWZpbGVzfVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfUkVHSU9OOiBcIiR7U1RPUkFHRV9TM19SRUdJT046LSR7TUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjotdXMtZWFzdC0xfX1cIlxyXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfUFJFRklYOiBtZWV0aW5nLXJlY29yZGluZ3NcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX0JVQ0tFVDogXCIke1NUT1JBR0VfUzNfQlVDS0VUOi1uZWJ1bHluay1maWxlc31cIlxyXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfUzNfRU5EUE9JTlQ6IGh0dHA6Ly9nYXJhZ2U6MzkwMFxyXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfRUdSRVNTX1MzX0VORFBPSU5UOiBodHRwOi8vZ2FyYWdlOjM5MDBcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjogXCIke01FRVRJTkdfUkVDT1JESU5HU19TM19SRUdJT046LSR7U1RPUkFHRV9TM19SRUdJT046LXVzLWVhc3QtMX19XCJcclxuICAgICAgTUVFVElOR19UUkFOU0NSSVBUX1dBSVRfVElNRU9VVF9NUzogXCIke01FRVRJTkdfVFJBTlNDUklQVF9XQUlUX1RJTUVPVVRfTVM6LTEyMDAwMDB9XCJcclxuICAgICAgTElWRUtJVF9IT1NUOiBodHRwOi8vbGl2ZWtpdDo3ODgwXHJcbiAgICAgIExJVkVLSVRfUFVCTElDX1VSTDogXCIke0xJVkVLSVRfUFVCTElDX1VSTDo/TElWRUtJVF9QVUJMSUNfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIExJVkVLSVRfQVBJX0tFWTogXCIke0xJVkVLSVRfQVBJX0tFWTo/TElWRUtJVF9BUElfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIExJVkVLSVRfQVBJX1NFQ1JFVDogXCIke0xJVkVLSVRfQVBJX1NFQ1JFVDo/TElWRUtJVF9BUElfU0VDUkVUIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIEtMSVBZX0FQSV9LRVk6IFwiJHtLTElQWV9BUElfS0VZOi19XCJcclxuICAgICAgVkFQSURfUFVCTElDX0tFWTogXCIke1ZBUElEX1BVQkxJQ19LRVk6LX1cIlxyXG4gICAgICBWQVBJRF9QUklWQVRFX0tFWTogXCIke1ZBUElEX1BSSVZBVEVfS0VZOi19XCJcclxuICAgICAgVkFQSURfU1VCSkVDVDogXCIke1ZBUElEX1NVQkpFQ1Q6LW1haWx0bzphZG1pbkBleGFtcGxlLmNvbX1cIlxyXG4gICAgICBTTVRQX0hPU1Q6IFwiJHtTTVRQX0hPU1Q6LX1cIlxyXG4gICAgICBTTVRQX1BPUlQ6IFwiJHtTTVRQX1BPUlQ6LTU4N31cIlxyXG4gICAgICBTTVRQX1NFQ1VSRTogXCIke1NNVFBfU0VDVVJFOi1mYWxzZX1cIlxyXG4gICAgICBTTVRQX0lHTk9SRV9UTFM6IFwiJHtTTVRQX0lHTk9SRV9UTFM6LWZhbHNlfVwiXHJcbiAgICAgIFNNVFBfVVNFUjogXCIke1NNVFBfVVNFUjotfVwiXHJcbiAgICAgIFNNVFBfUEFTUzogXCIke1NNVFBfUEFTUzotfVwiXHJcbiAgICAgIFNNVFBfRlJPTTogXCIke1NNVFBfRlJPTTotbm9yZXBseUBuZWJ1bHluay5sb2NhbH1cIlxyXG4gICAgICBTTVRQX0ZST01fTkFNRTogXCIke1NNVFBfRlJPTV9OQU1FOi1OZWJ1bHlua31cIlxyXG4gICAgICBGUk9OVEVORF9VUkw6IFwiJHtGUk9OVEVORF9VUkw6P0ZST05URU5EX1VSTCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBUUlVTVF9QUk9YWTogXCIke1RSVVNUX1BST1hZOi10cnVlfVwiXHJcbiAgICAgIE5FQlVMWU5LX0JVSUxEX1NIQTogXCIke05FQlVMWU5LX0JVSUxEX1NIQTotfVwiXHJcbiAgICBkZXBlbmRzX29uOlxyXG4gICAgICAtIHBvc3RncmVzXHJcbiAgICAgIC0gcmVkaXNcclxuICAgICAgLSBnYXJhZ2VcclxuICAgICAgLSBsaXZla2l0XHJcbiAgICAgIC0gbGl2ZWtpdC1lZ3Jlc3NcclxuICAgIGV4cG9zZTpcclxuICAgICAgLSBcIjMwMzBcIlxyXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcclxuXHJcbnZvbHVtZXM6XHJcbiAgbmVidWx5bmtfcG9zdGdyZXNfZGF0YTpcclxuICBuZWJ1bHlua19yZWRpc19kYXRhOlxyXG4gIG5lYnVseW5rX2dhcmFnZV9tZXRhOlxyXG4gIG5lYnVseW5rX2dhcmFnZV9kYXRhOlxyXG4iLCJjb25maWciOiIjIFZhbHVlcyBpbiBbdmFyaWFibGVzXSBhcmUgcmVzb2x2ZWQgb25jZSB3aGVuIERva3Bsb3kgaW1wb3J0cyB0aGUgdGVtcGxhdGUuXHJcbiMgVGhlIGdlbmVyYXRlZCB2YWx1ZXMgYXJlIHRoZW4gc3RvcmVkIGluIHRoZSBDb21wb3NlIHNlcnZpY2UgZW52aXJvbm1lbnQuXHJcblt2YXJpYWJsZXNdXHJcbmZyb250ZW5kX2RvbWFpbiA9IFwiJHtkb21haW59XCJcclxuYmFja2VuZF9kb21haW4gPSBcIiR7ZG9tYWlufVwiXHJcbmxpdmVraXRfZG9tYWluID0gXCIke2RvbWFpbn1cIlxyXG5nYXJhZ2VfZG9tYWluID0gXCIke2RvbWFpbn1cIlxyXG5cclxucG9zdGdyZXNfcGFzc3dvcmQgPSBcIiR7cGFzc3dvcmQ6NjR9XCJcclxuZ2FyYWdlX3JwY19zZWNyZXQgPSBcIiR7aGFzaDo2NH1cIlxyXG5zdG9yYWdlX3MzX2FjY2Vzc19rZXkgPSBcIiR7cGFzc3dvcmQ6MjR9XCJcclxuc3RvcmFnZV9zM19zZWNyZXRfa2V5ID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcbmp3dF9zZWNyZXQgPSBcIiR7cGFzc3dvcmQ6NjR9XCJcclxuYWlfc2VjcmV0X2tleSA9IFwiJHtwYXNzd29yZDo2NH1cIlxyXG5hdXRoXzJmYV9zZWNyZXRfa2V5ID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcbmxpdmVraXRfYXBpX2tleSA9IFwiJHtwYXNzd29yZDoyNH1cIlxyXG5saXZla2l0X2FwaV9zZWNyZXQgPSBcIiR7cGFzc3dvcmQ6NjR9XCJcclxuXHJcbmZyb250ZW5kX3VybCA9IFwiaHR0cHM6Ly8ke2Zyb250ZW5kX2RvbWFpbn1cIlxyXG5iYWNrZW5kX3VybCA9IFwiaHR0cHM6Ly8ke2JhY2tlbmRfZG9tYWlufVwiXHJcbmxpdmVraXRfcHVibGljX3VybCA9IFwiaHR0cHM6Ly8ke2xpdmVraXRfZG9tYWlufVwiXHJcbmdhcmFnZV9wdWJsaWNfdXJsID0gXCJodHRwczovLyR7Z2FyYWdlX2RvbWFpbn1cIlxyXG5zb3VyY2VfcmVmID0gXCJzdGFibGVcIlxyXG5cclxuW2NvbmZpZ11cclxuaXNvbGF0ZWQgPSB0cnVlXHJcblxyXG5bW2NvbmZpZy5kb21haW5zXV1cclxuc2VydmljZU5hbWUgPSBcImZyb250ZW5kXCJcclxucG9ydCA9IDgwODBcclxuaG9zdCA9IFwiJHtmcm9udGVuZF9kb21haW59XCJcclxucGF0aCA9IFwiL1wiXHJcblxyXG5bW2NvbmZpZy5kb21haW5zXV1cclxuc2VydmljZU5hbWUgPSBcImJhY2tlbmRcIlxyXG5wb3J0ID0gMzAzMFxyXG5ob3N0ID0gXCIke2JhY2tlbmRfZG9tYWlufVwiXHJcbnBhdGggPSBcIi9cIlxyXG5cclxuW1tjb25maWcuZG9tYWluc11dXHJcbnNlcnZpY2VOYW1lID0gXCJsaXZla2l0XCJcclxucG9ydCA9IDc4ODBcclxuaG9zdCA9IFwiJHtsaXZla2l0X2RvbWFpbn1cIlxyXG5wYXRoID0gXCIvXCJcclxuXHJcbltbY29uZmlnLmRvbWFpbnNdXVxyXG5zZXJ2aWNlTmFtZSA9IFwiZ2FyYWdlXCJcclxucG9ydCA9IDM5MDBcclxuaG9zdCA9IFwiJHtnYXJhZ2VfZG9tYWlufVwiXHJcbnBhdGggPSBcIi9cIlxyXG5cclxuW2NvbmZpZy5lbnZdXHJcbk5FQlVMWU5LX1NPVVJDRV9SRUYgPSBcIiR7c291cmNlX3JlZn1cIlxyXG5QT1NUR1JFU19EQiA9IFwibmVidWx5bmtcIlxyXG5QT1NUR1JFU19VU0VSID0gXCJuZWJ1bHlua1wiXHJcblBPU1RHUkVTX1BBU1NXT1JEID0gXCIke3Bvc3RncmVzX3Bhc3N3b3JkfVwiXHJcbkdBUkFHRV9SUENfU0VDUkVUID0gXCIke2dhcmFnZV9ycGNfc2VjcmV0fVwiXHJcblNUT1JBR0VfUzNfQUNDRVNTX0tFWSA9IFwiJHtzdG9yYWdlX3MzX2FjY2Vzc19rZXl9XCJcclxuU1RPUkFHRV9TM19TRUNSRVRfS0VZID0gXCIke3N0b3JhZ2VfczNfc2VjcmV0X2tleX1cIlxyXG5TVE9SQUdFX1MzX0JVQ0tFVCA9IFwibmVidWx5bmstZmlsZXNcIlxyXG5TVE9SQUdFX1MzX1JFR0lPTiA9IFwidXMtZWFzdC0xXCJcclxuSldUX1NFQ1JFVCA9IFwiJHtqd3Rfc2VjcmV0fVwiXHJcbkFJX1NFQ1JFVF9LRVkgPSBcIiR7YWlfc2VjcmV0X2tleX1cIlxyXG5BVVRIXzJGQV9TRUNSRVRfS0VZID0gXCIke2F1dGhfMmZhX3NlY3JldF9rZXl9XCJcclxuTElWRUtJVF9BUElfS0VZID0gXCIke2xpdmVraXRfYXBpX2tleX1cIlxyXG5MSVZFS0lUX0FQSV9TRUNSRVQgPSBcIiR7bGl2ZWtpdF9hcGlfc2VjcmV0fVwiXHJcbkZST05URU5EX1VSTCA9IFwiJHtmcm9udGVuZF91cmx9XCJcclxuUEFTU0tFWV9SUF9JRCA9IFwiJHtmcm9udGVuZF9kb21haW59XCJcclxuVklURV9BUElfVVJMID0gXCIke2JhY2tlbmRfdXJsfVwiXHJcbkxJVkVLSVRfUFVCTElDX1VSTCA9IFwiJHtsaXZla2l0X3B1YmxpY191cmx9XCJcclxuU1RPUkFHRV9TM19QVUJMSUNfRU5EUE9JTlQgPSBcIiR7Z2FyYWdlX3B1YmxpY191cmx9XCJcclxuIn0=\n \ No newline at end of file From 963d77a5be145d8b2618b9336721517bb218e340 Mon Sep 17 00:00:00 2001 From: Alexander Zerling Date: Sun, 16 Aug 2026 01:25:22 +0200 Subject: [PATCH 3/7] Update template.toml for HTTP-only domains and add optional configurations - Changed frontend, backend, livekit, and garage URLs to HTTP for sslip.io compatibility. - Added NODE_ENV set to "development". - Introduced optional SMTP and integration keys with placeholders. - Added operational and security settings including rate limits and cookie configurations. --- blueprints/nebulynk/docker-compose.yml | 2 +- blueprints/nebulynk/import.base64 | 2 +- blueprints/nebulynk/template.toml | 41 +++++++++++++++++++++++--- 3 files changed, 39 insertions(+), 6 deletions(-) diff --git a/blueprints/nebulynk/docker-compose.yml b/blueprints/nebulynk/docker-compose.yml index 91da8e52c..70988d520 100644 --- a/blueprints/nebulynk/docker-compose.yml +++ b/blueprints/nebulynk/docker-compose.yml @@ -116,7 +116,7 @@ services: args: NODE_IMAGE: "${NEBULYNK_NODE_IMAGE:-node:22.23.1-alpine3.24}" environment: - NODE_ENV: production + NODE_ENV: "${NODE_ENV:-development}" JWT_SECRET: "${JWT_SECRET:?JWT_SECRET must be set}" AI_SECRET_KEY: "${AI_SECRET_KEY:?AI_SECRET_KEY must be set}" AUTH_2FA_SECRET_KEY: "${AUTH_2FA_SECRET_KEY:-}" diff --git a/blueprints/nebulynk/import.base64 b/blueprints/nebulynk/import.base64 index 5fb49b94f..05871a07a 100644 --- a/blueprints/nebulynk/import.base64 +++ b/blueprints/nebulynk/import.base64 @@ -1 +1 @@ -eyJjb21wb3NlIjoiIyBkb2twbG95OiBhbGxvdy1ob3N0LXBvcnRzXG4jIExpdmVLaXQgcmVxdWlyZXMgcHVibGljIFRDUC9VRFAgbWVkaWEgcG9ydHMgNzg4MSBhbmQgNzg4MiBmb3IgV2ViUlRDLlxuIyBOZWJ1bHluayBEb2twbG95IHRlbXBsYXRlLiBJbXBvcnQgdGhlIGdlbmVyYXRlZCBpbXBvcnQuYmFzZTY0IGZpbGUgdGhyb3VnaFxuIyBDb21wb3NlIC0+IEFkdmFuY2VkIC0+IEltcG9ydC4gRG9rcGxveSBvd25zIHJvdXRpbmcgYW5kIHRoZSBpc29sYXRlZCBuZXR3b3JrLlxyXG52ZXJzaW9uOiBcIjMuOFwiXHJcbnNlcnZpY2VzOlxyXG4gIGZyb250ZW5kOlxyXG4gICAgYnVpbGQ6XHJcbiAgICAgIGNvbnRleHQ6IFwiaHR0cHM6Ly9naXRodWIuY29tL3NhcGllbnRvcml1cy9OZWJ1bHluay5naXQjJHtORUJVTFlOS19TT1VSQ0VfUkVGOi1zdGFibGV9XCJcclxuICAgICAgZG9ja2VyZmlsZTogZnJvbnRlbmQvRG9ja2VyZmlsZVxyXG4gICAgICBhcmdzOlxyXG4gICAgICAgIE5PREVfSU1BR0U6IFwiJHtORUJVTFlOS19OT0RFX0lNQUdFOi1ub2RlOjIyLjIzLjEtYWxwaW5lMy4yNH1cIlxyXG4gICAgICAgIE5HSU5YX0lNQUdFOiBcIiR7TkVCVUxZTktfTkdJTlhfSU1BR0U6LW5naW54aW5jL25naW54LXVucHJpdmlsZWdlZDoxLjMxLWFscGluZTMuMjNAc2hhMjU2OjYzMjAwMjBjN2RhODcxNGZlYWI1MjRlMDJjMDhjNWExOTU4Njc1YzRlNjg3MDBlOTNhMmZkODk3MGIwNjU3ODZ9XCJcclxuICAgICAgICAjIFRoZXNlIFVSTHMgYXJlIGJha2VkIGludG8gdGhlIGJyb3dzZXIgYnVuZGxlLlxyXG4gICAgICAgIFZJVEVfQVBJX1VSTDogXCIke1ZJVEVfQVBJX1VSTDo/VklURV9BUElfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgICAgVklURV9MSVZFS0lUX1VSTDogXCIke0xJVkVLSVRfUFVCTElDX1VSTDo/TElWRUtJVF9QVUJMSUNfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgICAgVklURV9WQVBJRF9QVUJMSUNfS0VZOiBcIiR7VkFQSURfUFVCTElDX0tFWTotfVwiXHJcbiAgICAgICAgVklURV9BVVRIX0NTUkZfQ09PS0lFX05BTUU6IFwiJHtBVVRIX0NTUkZfQ09PS0lFX05BTUU6LW5lYnVseW5rX2NzcmZfdG9rZW59XCJcclxuICAgIGRlcGVuZHNfb246XHJcbiAgICAgIC0gYmFja2VuZFxyXG4gICAgZXhwb3NlOlxyXG4gICAgICAtIFwiODA4MFwiXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICBwb3N0Z3JlczpcclxuICAgIGltYWdlOiBcIiR7TkVCVUxZTktfUE9TVEdSRVNfSU1BR0U6LXBvc3RncmVzOjE3LWFscGluZTMuMjRAc2hhMjU2Ojc0MmY0MGVhMjBiOWZmMmZmMzFkYjU0NThkMTI3NDUyOTg4YTIxNjRkZjllMTc0NDFlMTkxZjNiNzIyNTIxOTN9XCJcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBQT1NUR1JFU19EQjogXCIke1BPU1RHUkVTX0RCOi1uZWJ1bHlua31cIlxyXG4gICAgICBQT1NUR1JFU19VU0VSOiBcIiR7UE9TVEdSRVNfVVNFUjotbmVidWx5bmt9XCJcclxuICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IFwiJHtQT1NUR1JFU19QQVNTV09SRDo/UE9TVEdSRVNfUEFTU1dPUkQgbXVzdCBiZSBzZXR9XCJcclxuICAgIHZvbHVtZXM6XHJcbiAgICAgIC0gbmVidWx5bmtfcG9zdGdyZXNfZGF0YTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGFcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIHJlZGlzOlxyXG4gICAgaW1hZ2U6IFwiJHtORUJVTFlOS19SRURJU19JTUFHRTotcmVkaXM6Ny40LjctYWxwaW5lMy4yMX1cIlxyXG4gICAgdm9sdW1lczpcclxuICAgICAgLSBuZWJ1bHlua19yZWRpc19kYXRhOi9kYXRhXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICAjIFByZXBhcmUgbmFtZWQgR2FyYWdlIHZvbHVtZXMgZm9yIHRoZSB1bnByaXZpbGVnZWQgR2FyYWdlIHByb2Nlc3MuXHJcbiAgZ2FyYWdlLXZvbHVtZS1pbml0OlxyXG4gICAgaW1hZ2U6IGFscGluZTozLjIxLjVcclxuICAgIHVzZXI6IFwiMDowXCJcclxuICAgIGNvbW1hbmQ6IFtcInNoXCIsIFwiLWVjXCIsIFwiY2hvd24gLVIgNjU1MzI6NjU1MzIgL3Zhci9saWIvZ2FyYWdlL21ldGEgL3Zhci9saWIvZ2FyYWdlL2RhdGFcIl1cclxuICAgIHZvbHVtZXM6XHJcbiAgICAgIC0gbmVidWx5bmtfZ2FyYWdlX21ldGE6L3Zhci9saWIvZ2FyYWdlL21ldGFcclxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfZGF0YTovdmFyL2xpYi9nYXJhZ2UvZGF0YVxyXG4gICAgcmVzdGFydDogXCJub1wiXHJcblxyXG4gIGdhcmFnZTpcclxuICAgIGJ1aWxkOlxyXG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXHJcbiAgICAgIGRvY2tlcmZpbGU6IGdhcmFnZS5Eb2NrZXJmaWxlXHJcbiAgICAgIGFyZ3M6XHJcbiAgICAgICAgR0FSQUdFX0lNQUdFOiBcIiR7TkVCVUxZTktfR0FSQUdFX0lNQUdFOi1keGZscnMvZ2FyYWdlOnYyLjMuMH1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgZ2FyYWdlLXZvbHVtZS1pbml0OlxyXG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XHJcbiAgICBjb21tYW5kOiAvZ2FyYWdlIHNlcnZlciAtLXNpbmdsZS1ub2RlIC0tZGVmYXVsdC1idWNrZXRcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBHQVJBR0VfUlBDX1NFQ1JFVDogXCIke0dBUkFHRV9SUENfU0VDUkVUOj9HQVJBR0VfUlBDX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBHQVJBR0VfREVGQVVMVF9BQ0NFU1NfS0VZOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgR0FSQUdFX0RFRkFVTFRfU0VDUkVUX0tFWTogXCIke1NUT1JBR0VfUzNfU0VDUkVUX0tFWTo/U1RPUkFHRV9TM19TRUNSRVRfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIEdBUkFHRV9ERUZBVUxUX0JVQ0tFVDogXCIke1NUT1JBR0VfUzNfQlVDS0VUOi1uZWJ1bHluay1maWxlc31cIlxyXG4gICAgdm9sdW1lczpcclxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfbWV0YTovdmFyL2xpYi9nYXJhZ2UvbWV0YVxyXG4gICAgICAtIG5lYnVseW5rX2dhcmFnZV9kYXRhOi92YXIvbGliL2dhcmFnZS9kYXRhXHJcbiAgICBleHBvc2U6XHJcbiAgICAgIC0gXCIzOTAwXCJcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIGxpdmVraXQ6XHJcbiAgICBidWlsZDpcclxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxyXG4gICAgICBkb2NrZXJmaWxlOiBsaXZla2l0LkRvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBMSVZFS0lUX1NFUlZFUl9JTUFHRTogXCIke05FQlVMWU5LX0xJVkVLSVRfU0VSVkVSX0lNQUdFOi1saXZla2l0L2xpdmVraXQtc2VydmVyOnYxLjEzLjR9XCJcclxuICAgIGNvbW1hbmQ6IC0tY29uZmlnIC9saXZla2l0LnlhbWxcclxuICAgIGRlcGVuZHNfb246XHJcbiAgICAgIC0gcmVkaXNcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBMSVZFS0lUX0tFWVM6IFwiJHtMSVZFS0lUX0FQSV9LRVk6P0xJVkVLSVRfQVBJX0tFWSBtdXN0IGJlIHNldH06ICR7TElWRUtJVF9BUElfU0VDUkVUOj9MSVZFS0lUX0FQSV9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgIGV4cG9zZTpcclxuICAgICAgLSBcIjc4ODBcIlxyXG4gICAgcG9ydHM6XHJcbiAgICAgIC0gXCI3ODgxOjc4ODFcIlxyXG4gICAgICAtIFwiNzg4Mjo3ODgyL3VkcFwiXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICBsaXZla2l0LWVncmVzczpcclxuICAgIGJ1aWxkOlxyXG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXHJcbiAgICAgIGRvY2tlcmZpbGU6IGxpdmVraXQtZWdyZXNzLkRvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBMSVZFS0lUX0VHUkVTU19JTUFHRTogXCIke05FQlVMWU5LX0xJVkVLSVRfRUdSRVNTX0lNQUdFOi1saXZla2l0L2VncmVzczp2MS4xMy4wfVwiXHJcbiAgICBjb21tYW5kOiAtLWNvbmZpZyAvbGl2ZWtpdC1lZ3Jlc3MueWFtbFxyXG4gICAgZW52aXJvbm1lbnQ6XHJcbiAgICAgIEVHUkVTU19DT05GSUdfRklMRTogL2xpdmVraXQtZWdyZXNzLnlhbWxcclxuICAgICAgTElWRUtJVF9BUElfS0VZOiBcIiR7TElWRUtJVF9BUElfS0VZOj9MSVZFS0lUX0FQSV9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgTElWRUtJVF9BUElfU0VDUkVUOiBcIiR7TElWRUtJVF9BUElfU0VDUkVUOj9MSVZFS0lUX0FQSV9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgTElWRUtJVF9XU19VUkw6IHdzOi8vbGl2ZWtpdDo3ODgwXHJcbiAgICAgIEFXU19BQ0NFU1NfS0VZX0lEOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZOiBcIiR7U1RPUkFHRV9TM19TRUNSRVRfS0VZOj9TVE9SQUdFX1MzX1NFQ1JFVF9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVdTX0RFRkFVTFRfUkVHSU9OOiBcIiR7U1RPUkFHRV9TM19SRUdJT046LSR7TUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjotdXMtZWFzdC0xfX1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgLSBsaXZla2l0XHJcbiAgICAgIC0gcmVkaXNcclxuICAgICAgLSBnYXJhZ2VcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIGJhY2tlbmQ6XHJcbiAgICBidWlsZDpcclxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxyXG4gICAgICBkb2NrZXJmaWxlOiBiYWNrZW5kL0RvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBOT0RFX0lNQUdFOiBcIiR7TkVCVUxZTktfTk9ERV9JTUFHRTotbm9kZToyMi4yMy4xLWFscGluZTMuMjR9XCJcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBOT0RFX0VOVjogcHJvZHVjdGlvblxyXG4gICAgICBKV1RfU0VDUkVUOiBcIiR7SldUX1NFQ1JFVDo/SldUX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBBSV9TRUNSRVRfS0VZOiBcIiR7QUlfU0VDUkVUX0tFWTo/QUlfU0VDUkVUX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBBVVRIXzJGQV9TRUNSRVRfS0VZOiBcIiR7QVVUSF8yRkFfU0VDUkVUX0tFWTotfVwiXHJcbiAgICAgIEJBQ0tFTkRfUE9SVDogXCIke0JBQ0tFTkRfUE9SVDotMzAzMH1cIlxyXG4gICAgICBMT0dfTEVWRUw6IFwiJHtMT0dfTEVWRUw6LWluZm99XCJcclxuICAgICAgTUFYX0ZJTEVfU0laRTogXCIke01BWF9GSUxFX1NJWkU6LTI2MjE0NDAwfVwiXHJcbiAgICAgIEFVVEhFTlRJQ0FUSU9OX1JBVEVfTElNSVRfSVBfTElNSVQ6IFwiJHtBVVRIRU5USUNBVElPTl9SQVRFX0xJTUlUX0lQX0xJTUlUOi19XCJcclxuICAgICAgQVVUSF9CUk9XU0VSX0FDQ0VTU19UT0tFTl9UVEw6IFwiJHtBVVRIX0JST1dTRVJfQUNDRVNTX1RPS0VOX1RUTDotMTVtfVwiXHJcbiAgICAgIEFVVEhfUkVGUkVTSF9UT0tFTl9UVEw6IFwiJHtBVVRIX1JFRlJFU0hfVE9LRU5fVFRMOi0xZH1cIlxyXG4gICAgICBBVVRIX1JFTUVNQkVSX1JFRlJFU0hfVE9LRU5fVFRMOiBcIiR7QVVUSF9SRU1FTUJFUl9SRUZSRVNIX1RPS0VOX1RUTDotMzBkfVwiXHJcbiAgICAgIEFVVEhfUkVGUkVTSF9DT09LSUVfTkFNRTogXCIke0FVVEhfUkVGUkVTSF9DT09LSUVfTkFNRTotbmVidWx5bmtfcmVmcmVzaF9zZXNzaW9ufVwiXHJcbiAgICAgIEFVVEhfQ1NSRl9DT09LSUVfTkFNRTogXCIke0FVVEhfQ1NSRl9DT09LSUVfTkFNRTotbmVidWx5bmtfY3NyZl90b2tlbn1cIlxyXG4gICAgICBBVVRIX0NPT0tJRV9ET01BSU46IFwiJHtBVVRIX0NPT0tJRV9ET01BSU46LX1cIlxyXG4gICAgICBSQVRFX0xJTUlUX0RSSVZFUjogXCIke1JBVEVfTElNSVRfRFJJVkVSOi1yZWRpc31cIlxyXG4gICAgICBQQVNTS0VZX1JQX0lEOiBcIiR7UEFTU0tFWV9SUF9JRDo/UEFTU0tFWV9SUF9JRCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBBSV9QUk9WSURFUl9CQVNFX1VSTF9BTExPV0xJU1Q6IFwiJHtBSV9QUk9WSURFUl9CQVNFX1VSTF9BTExPV0xJU1Q6LX1cIlxyXG4gICAgICBQT1NUR1JFU19IT1NUOiBwb3N0Z3Jlc1xyXG4gICAgICBQT1NUR1JFU19QT1JUOiBcIjU0MzJcIlxyXG4gICAgICBQT1NUR1JFU19EQjogXCIke1BPU1RHUkVTX0RCOi1uZWJ1bHlua31cIlxyXG4gICAgICBQT1NUR1JFU19VU0VSOiBcIiR7UE9TVEdSRVNfVVNFUjotbmVidWx5bmt9XCJcclxuICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IFwiJHtQT1NUR1JFU19QQVNTV09SRDo/UE9TVEdSRVNfUEFTU1dPUkQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgUkVESVNfSE9TVDogcmVkaXNcclxuICAgICAgUkVESVNfUE9SVDogXCI2Mzc5XCJcclxuICAgICAgU1RPUkFHRV9TM19FTkRQT0lOVDogaHR0cDovL2dhcmFnZTozOTAwXHJcbiAgICAgIFNUT1JBR0VfUzNfUFVCTElDX0VORFBPSU5UOiBcIiR7U1RPUkFHRV9TM19QVUJMSUNfRU5EUE9JTlQ6P1NUT1JBR0VfUzNfUFVCTElDX0VORFBPSU5UIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfQUNDRVNTX0tFWTogXCIke1NUT1JBR0VfUzNfQUNDRVNTX0tFWTo/U1RPUkFHRV9TM19BQ0NFU1NfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfU0VDUkVUX0tFWTogXCIke1NUT1JBR0VfUzNfU0VDUkVUX0tFWTo/U1RPUkFHRV9TM19TRUNSRVRfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfQlVDS0VUOiBcIiR7U1RPUkFHRV9TM19CVUNLRVQ6LW5lYnVseW5rLWZpbGVzfVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfUkVHSU9OOiBcIiR7U1RPUkFHRV9TM19SRUdJT046LSR7TUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjotdXMtZWFzdC0xfX1cIlxyXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfUFJFRklYOiBtZWV0aW5nLXJlY29yZGluZ3NcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX0JVQ0tFVDogXCIke1NUT1JBR0VfUzNfQlVDS0VUOi1uZWJ1bHluay1maWxlc31cIlxyXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfUzNfRU5EUE9JTlQ6IGh0dHA6Ly9nYXJhZ2U6MzkwMFxyXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfRUdSRVNTX1MzX0VORFBPSU5UOiBodHRwOi8vZ2FyYWdlOjM5MDBcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjogXCIke01FRVRJTkdfUkVDT1JESU5HU19TM19SRUdJT046LSR7U1RPUkFHRV9TM19SRUdJT046LXVzLWVhc3QtMX19XCJcclxuICAgICAgTUVFVElOR19UUkFOU0NSSVBUX1dBSVRfVElNRU9VVF9NUzogXCIke01FRVRJTkdfVFJBTlNDUklQVF9XQUlUX1RJTUVPVVRfTVM6LTEyMDAwMDB9XCJcclxuICAgICAgTElWRUtJVF9IT1NUOiBodHRwOi8vbGl2ZWtpdDo3ODgwXHJcbiAgICAgIExJVkVLSVRfUFVCTElDX1VSTDogXCIke0xJVkVLSVRfUFVCTElDX1VSTDo/TElWRUtJVF9QVUJMSUNfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIExJVkVLSVRfQVBJX0tFWTogXCIke0xJVkVLSVRfQVBJX0tFWTo/TElWRUtJVF9BUElfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIExJVkVLSVRfQVBJX1NFQ1JFVDogXCIke0xJVkVLSVRfQVBJX1NFQ1JFVDo/TElWRUtJVF9BUElfU0VDUkVUIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIEtMSVBZX0FQSV9LRVk6IFwiJHtLTElQWV9BUElfS0VZOi19XCJcclxuICAgICAgVkFQSURfUFVCTElDX0tFWTogXCIke1ZBUElEX1BVQkxJQ19LRVk6LX1cIlxyXG4gICAgICBWQVBJRF9QUklWQVRFX0tFWTogXCIke1ZBUElEX1BSSVZBVEVfS0VZOi19XCJcclxuICAgICAgVkFQSURfU1VCSkVDVDogXCIke1ZBUElEX1NVQkpFQ1Q6LW1haWx0bzphZG1pbkBleGFtcGxlLmNvbX1cIlxyXG4gICAgICBTTVRQX0hPU1Q6IFwiJHtTTVRQX0hPU1Q6LX1cIlxyXG4gICAgICBTTVRQX1BPUlQ6IFwiJHtTTVRQX1BPUlQ6LTU4N31cIlxyXG4gICAgICBTTVRQX1NFQ1VSRTogXCIke1NNVFBfU0VDVVJFOi1mYWxzZX1cIlxyXG4gICAgICBTTVRQX0lHTk9SRV9UTFM6IFwiJHtTTVRQX0lHTk9SRV9UTFM6LWZhbHNlfVwiXHJcbiAgICAgIFNNVFBfVVNFUjogXCIke1NNVFBfVVNFUjotfVwiXHJcbiAgICAgIFNNVFBfUEFTUzogXCIke1NNVFBfUEFTUzotfVwiXHJcbiAgICAgIFNNVFBfRlJPTTogXCIke1NNVFBfRlJPTTotbm9yZXBseUBuZWJ1bHluay5sb2NhbH1cIlxyXG4gICAgICBTTVRQX0ZST01fTkFNRTogXCIke1NNVFBfRlJPTV9OQU1FOi1OZWJ1bHlua31cIlxyXG4gICAgICBGUk9OVEVORF9VUkw6IFwiJHtGUk9OVEVORF9VUkw6P0ZST05URU5EX1VSTCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBUUlVTVF9QUk9YWTogXCIke1RSVVNUX1BST1hZOi10cnVlfVwiXHJcbiAgICAgIE5FQlVMWU5LX0JVSUxEX1NIQTogXCIke05FQlVMWU5LX0JVSUxEX1NIQTotfVwiXHJcbiAgICBkZXBlbmRzX29uOlxyXG4gICAgICAtIHBvc3RncmVzXHJcbiAgICAgIC0gcmVkaXNcclxuICAgICAgLSBnYXJhZ2VcclxuICAgICAgLSBsaXZla2l0XHJcbiAgICAgIC0gbGl2ZWtpdC1lZ3Jlc3NcclxuICAgIGV4cG9zZTpcclxuICAgICAgLSBcIjMwMzBcIlxyXG4gICAgcmVzdGFydDogdW5sZXNzLXN0b3BwZWRcclxuXHJcbnZvbHVtZXM6XHJcbiAgbmVidWx5bmtfcG9zdGdyZXNfZGF0YTpcclxuICBuZWJ1bHlua19yZWRpc19kYXRhOlxyXG4gIG5lYnVseW5rX2dhcmFnZV9tZXRhOlxyXG4gIG5lYnVseW5rX2dhcmFnZV9kYXRhOlxyXG4iLCJjb25maWciOiIjIFZhbHVlcyBpbiBbdmFyaWFibGVzXSBhcmUgcmVzb2x2ZWQgb25jZSB3aGVuIERva3Bsb3kgaW1wb3J0cyB0aGUgdGVtcGxhdGUuXHJcbiMgVGhlIGdlbmVyYXRlZCB2YWx1ZXMgYXJlIHRoZW4gc3RvcmVkIGluIHRoZSBDb21wb3NlIHNlcnZpY2UgZW52aXJvbm1lbnQuXHJcblt2YXJpYWJsZXNdXHJcbmZyb250ZW5kX2RvbWFpbiA9IFwiJHtkb21haW59XCJcclxuYmFja2VuZF9kb21haW4gPSBcIiR7ZG9tYWlufVwiXHJcbmxpdmVraXRfZG9tYWluID0gXCIke2RvbWFpbn1cIlxyXG5nYXJhZ2VfZG9tYWluID0gXCIke2RvbWFpbn1cIlxyXG5cclxucG9zdGdyZXNfcGFzc3dvcmQgPSBcIiR7cGFzc3dvcmQ6NjR9XCJcclxuZ2FyYWdlX3JwY19zZWNyZXQgPSBcIiR7aGFzaDo2NH1cIlxyXG5zdG9yYWdlX3MzX2FjY2Vzc19rZXkgPSBcIiR7cGFzc3dvcmQ6MjR9XCJcclxuc3RvcmFnZV9zM19zZWNyZXRfa2V5ID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcbmp3dF9zZWNyZXQgPSBcIiR7cGFzc3dvcmQ6NjR9XCJcclxuYWlfc2VjcmV0X2tleSA9IFwiJHtwYXNzd29yZDo2NH1cIlxyXG5hdXRoXzJmYV9zZWNyZXRfa2V5ID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcbmxpdmVraXRfYXBpX2tleSA9IFwiJHtwYXNzd29yZDoyNH1cIlxyXG5saXZla2l0X2FwaV9zZWNyZXQgPSBcIiR7cGFzc3dvcmQ6NjR9XCJcclxuXHJcbmZyb250ZW5kX3VybCA9IFwiaHR0cHM6Ly8ke2Zyb250ZW5kX2RvbWFpbn1cIlxyXG5iYWNrZW5kX3VybCA9IFwiaHR0cHM6Ly8ke2JhY2tlbmRfZG9tYWlufVwiXHJcbmxpdmVraXRfcHVibGljX3VybCA9IFwiaHR0cHM6Ly8ke2xpdmVraXRfZG9tYWlufVwiXHJcbmdhcmFnZV9wdWJsaWNfdXJsID0gXCJodHRwczovLyR7Z2FyYWdlX2RvbWFpbn1cIlxyXG5zb3VyY2VfcmVmID0gXCJzdGFibGVcIlxyXG5cclxuW2NvbmZpZ11cclxuaXNvbGF0ZWQgPSB0cnVlXHJcblxyXG5bW2NvbmZpZy5kb21haW5zXV1cclxuc2VydmljZU5hbWUgPSBcImZyb250ZW5kXCJcclxucG9ydCA9IDgwODBcclxuaG9zdCA9IFwiJHtmcm9udGVuZF9kb21haW59XCJcclxucGF0aCA9IFwiL1wiXHJcblxyXG5bW2NvbmZpZy5kb21haW5zXV1cclxuc2VydmljZU5hbWUgPSBcImJhY2tlbmRcIlxyXG5wb3J0ID0gMzAzMFxyXG5ob3N0ID0gXCIke2JhY2tlbmRfZG9tYWlufVwiXHJcbnBhdGggPSBcIi9cIlxyXG5cclxuW1tjb25maWcuZG9tYWluc11dXHJcbnNlcnZpY2VOYW1lID0gXCJsaXZla2l0XCJcclxucG9ydCA9IDc4ODBcclxuaG9zdCA9IFwiJHtsaXZla2l0X2RvbWFpbn1cIlxyXG5wYXRoID0gXCIvXCJcclxuXHJcbltbY29uZmlnLmRvbWFpbnNdXVxyXG5zZXJ2aWNlTmFtZSA9IFwiZ2FyYWdlXCJcclxucG9ydCA9IDM5MDBcclxuaG9zdCA9IFwiJHtnYXJhZ2VfZG9tYWlufVwiXHJcbnBhdGggPSBcIi9cIlxyXG5cclxuW2NvbmZpZy5lbnZdXHJcbk5FQlVMWU5LX1NPVVJDRV9SRUYgPSBcIiR7c291cmNlX3JlZn1cIlxyXG5QT1NUR1JFU19EQiA9IFwibmVidWx5bmtcIlxyXG5QT1NUR1JFU19VU0VSID0gXCJuZWJ1bHlua1wiXHJcblBPU1RHUkVTX1BBU1NXT1JEID0gXCIke3Bvc3RncmVzX3Bhc3N3b3JkfVwiXHJcbkdBUkFHRV9SUENfU0VDUkVUID0gXCIke2dhcmFnZV9ycGNfc2VjcmV0fVwiXHJcblNUT1JBR0VfUzNfQUNDRVNTX0tFWSA9IFwiJHtzdG9yYWdlX3MzX2FjY2Vzc19rZXl9XCJcclxuU1RPUkFHRV9TM19TRUNSRVRfS0VZID0gXCIke3N0b3JhZ2VfczNfc2VjcmV0X2tleX1cIlxyXG5TVE9SQUdFX1MzX0JVQ0tFVCA9IFwibmVidWx5bmstZmlsZXNcIlxyXG5TVE9SQUdFX1MzX1JFR0lPTiA9IFwidXMtZWFzdC0xXCJcclxuSldUX1NFQ1JFVCA9IFwiJHtqd3Rfc2VjcmV0fVwiXHJcbkFJX1NFQ1JFVF9LRVkgPSBcIiR7YWlfc2VjcmV0X2tleX1cIlxyXG5BVVRIXzJGQV9TRUNSRVRfS0VZID0gXCIke2F1dGhfMmZhX3NlY3JldF9rZXl9XCJcclxuTElWRUtJVF9BUElfS0VZID0gXCIke2xpdmVraXRfYXBpX2tleX1cIlxyXG5MSVZFS0lUX0FQSV9TRUNSRVQgPSBcIiR7bGl2ZWtpdF9hcGlfc2VjcmV0fVwiXHJcbkZST05URU5EX1VSTCA9IFwiJHtmcm9udGVuZF91cmx9XCJcclxuUEFTU0tFWV9SUF9JRCA9IFwiJHtmcm9udGVuZF9kb21haW59XCJcclxuVklURV9BUElfVVJMID0gXCIke2JhY2tlbmRfdXJsfVwiXHJcbkxJVkVLSVRfUFVCTElDX1VSTCA9IFwiJHtsaXZla2l0X3B1YmxpY191cmx9XCJcclxuU1RPUkFHRV9TM19QVUJMSUNfRU5EUE9JTlQgPSBcIiR7Z2FyYWdlX3B1YmxpY191cmx9XCJcclxuIn0=\n \ No newline at end of file +eyJjb21wb3NlIjoiIyBkb2twbG95OiBhbGxvdy1ob3N0LXBvcnRzXHJcbiMgTGl2ZUtpdCByZXF1aXJlcyBwdWJsaWMgVENQL1VEUCBtZWRpYSBwb3J0cyA3ODgxIGFuZCA3ODgyIGZvciBXZWJSVEMuXHJcbiMgTmVidWx5bmsgRG9rcGxveSB0ZW1wbGF0ZS4gSW1wb3J0IHRoZSBnZW5lcmF0ZWQgaW1wb3J0LmJhc2U2NCBmaWxlIHRocm91Z2hcclxuIyBDb21wb3NlIC0+IEFkdmFuY2VkIC0+IEltcG9ydC4gRG9rcGxveSBvd25zIHJvdXRpbmcgYW5kIHRoZSBpc29sYXRlZCBuZXR3b3JrLlxyXG52ZXJzaW9uOiBcIjMuOFwiXHJcbnNlcnZpY2VzOlxyXG4gIGZyb250ZW5kOlxyXG4gICAgYnVpbGQ6XHJcbiAgICAgIGNvbnRleHQ6IFwiaHR0cHM6Ly9naXRodWIuY29tL3NhcGllbnRvcml1cy9OZWJ1bHluay5naXQjJHtORUJVTFlOS19TT1VSQ0VfUkVGOi1zdGFibGV9XCJcclxuICAgICAgZG9ja2VyZmlsZTogZnJvbnRlbmQvRG9ja2VyZmlsZVxyXG4gICAgICBhcmdzOlxyXG4gICAgICAgIE5PREVfSU1BR0U6IFwiJHtORUJVTFlOS19OT0RFX0lNQUdFOi1ub2RlOjIyLjIzLjEtYWxwaW5lMy4yNH1cIlxyXG4gICAgICAgIE5HSU5YX0lNQUdFOiBcIiR7TkVCVUxZTktfTkdJTlhfSU1BR0U6LW5naW54aW5jL25naW54LXVucHJpdmlsZWdlZDoxLjMxLWFscGluZTMuMjNAc2hhMjU2OjYzMjAwMjBjN2RhODcxNGZlYWI1MjRlMDJjMDhjNWExOTU4Njc1YzRlNjg3MDBlOTNhMmZkODk3MGIwNjU3ODZ9XCJcclxuICAgICAgICAjIFRoZXNlIFVSTHMgYXJlIGJha2VkIGludG8gdGhlIGJyb3dzZXIgYnVuZGxlLlxyXG4gICAgICAgIFZJVEVfQVBJX1VSTDogXCIke1ZJVEVfQVBJX1VSTDo/VklURV9BUElfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgICAgVklURV9MSVZFS0lUX1VSTDogXCIke0xJVkVLSVRfUFVCTElDX1VSTDo/TElWRUtJVF9QVUJMSUNfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgICAgVklURV9WQVBJRF9QVUJMSUNfS0VZOiBcIiR7VkFQSURfUFVCTElDX0tFWTotfVwiXHJcbiAgICAgICAgVklURV9BVVRIX0NTUkZfQ09PS0lFX05BTUU6IFwiJHtBVVRIX0NTUkZfQ09PS0lFX05BTUU6LW5lYnVseW5rX2NzcmZfdG9rZW59XCJcclxuICAgIGRlcGVuZHNfb246XHJcbiAgICAgIC0gYmFja2VuZFxyXG4gICAgZXhwb3NlOlxyXG4gICAgICAtIFwiODA4MFwiXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICBwb3N0Z3JlczpcclxuICAgIGltYWdlOiBcIiR7TkVCVUxZTktfUE9TVEdSRVNfSU1BR0U6LXBvc3RncmVzOjE3LWFscGluZTMuMjRAc2hhMjU2Ojc0MmY0MGVhMjBiOWZmMmZmMzFkYjU0NThkMTI3NDUyOTg4YTIxNjRkZjllMTc0NDFlMTkxZjNiNzIyNTIxOTN9XCJcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBQT1NUR1JFU19EQjogXCIke1BPU1RHUkVTX0RCOi1uZWJ1bHlua31cIlxyXG4gICAgICBQT1NUR1JFU19VU0VSOiBcIiR7UE9TVEdSRVNfVVNFUjotbmVidWx5bmt9XCJcclxuICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IFwiJHtQT1NUR1JFU19QQVNTV09SRDo/UE9TVEdSRVNfUEFTU1dPUkQgbXVzdCBiZSBzZXR9XCJcclxuICAgIHZvbHVtZXM6XHJcbiAgICAgIC0gbmVidWx5bmtfcG9zdGdyZXNfZGF0YTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGFcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIHJlZGlzOlxyXG4gICAgaW1hZ2U6IFwiJHtORUJVTFlOS19SRURJU19JTUFHRTotcmVkaXM6Ny40LjctYWxwaW5lMy4yMX1cIlxyXG4gICAgdm9sdW1lczpcclxuICAgICAgLSBuZWJ1bHlua19yZWRpc19kYXRhOi9kYXRhXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICAjIFByZXBhcmUgbmFtZWQgR2FyYWdlIHZvbHVtZXMgZm9yIHRoZSB1bnByaXZpbGVnZWQgR2FyYWdlIHByb2Nlc3MuXHJcbiAgZ2FyYWdlLXZvbHVtZS1pbml0OlxyXG4gICAgaW1hZ2U6IGFscGluZTozLjIxLjVcclxuICAgIHVzZXI6IFwiMDowXCJcclxuICAgIGNvbW1hbmQ6IFtcInNoXCIsIFwiLWVjXCIsIFwiY2hvd24gLVIgNjU1MzI6NjU1MzIgL3Zhci9saWIvZ2FyYWdlL21ldGEgL3Zhci9saWIvZ2FyYWdlL2RhdGFcIl1cclxuICAgIHZvbHVtZXM6XHJcbiAgICAgIC0gbmVidWx5bmtfZ2FyYWdlX21ldGE6L3Zhci9saWIvZ2FyYWdlL21ldGFcclxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfZGF0YTovdmFyL2xpYi9nYXJhZ2UvZGF0YVxyXG4gICAgcmVzdGFydDogXCJub1wiXHJcblxyXG4gIGdhcmFnZTpcclxuICAgIGJ1aWxkOlxyXG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXHJcbiAgICAgIGRvY2tlcmZpbGU6IGdhcmFnZS5Eb2NrZXJmaWxlXHJcbiAgICAgIGFyZ3M6XHJcbiAgICAgICAgR0FSQUdFX0lNQUdFOiBcIiR7TkVCVUxZTktfR0FSQUdFX0lNQUdFOi1keGZscnMvZ2FyYWdlOnYyLjMuMH1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgZ2FyYWdlLXZvbHVtZS1pbml0OlxyXG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XHJcbiAgICBjb21tYW5kOiAvZ2FyYWdlIHNlcnZlciAtLXNpbmdsZS1ub2RlIC0tZGVmYXVsdC1idWNrZXRcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBHQVJBR0VfUlBDX1NFQ1JFVDogXCIke0dBUkFHRV9SUENfU0VDUkVUOj9HQVJBR0VfUlBDX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBHQVJBR0VfREVGQVVMVF9BQ0NFU1NfS0VZOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgR0FSQUdFX0RFRkFVTFRfU0VDUkVUX0tFWTogXCIke1NUT1JBR0VfUzNfU0VDUkVUX0tFWTo/U1RPUkFHRV9TM19TRUNSRVRfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIEdBUkFHRV9ERUZBVUxUX0JVQ0tFVDogXCIke1NUT1JBR0VfUzNfQlVDS0VUOi1uZWJ1bHluay1maWxlc31cIlxyXG4gICAgdm9sdW1lczpcclxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfbWV0YTovdmFyL2xpYi9nYXJhZ2UvbWV0YVxyXG4gICAgICAtIG5lYnVseW5rX2dhcmFnZV9kYXRhOi92YXIvbGliL2dhcmFnZS9kYXRhXHJcbiAgICBleHBvc2U6XHJcbiAgICAgIC0gXCIzOTAwXCJcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIGxpdmVraXQ6XHJcbiAgICBidWlsZDpcclxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxyXG4gICAgICBkb2NrZXJmaWxlOiBsaXZla2l0LkRvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBMSVZFS0lUX1NFUlZFUl9JTUFHRTogXCIke05FQlVMWU5LX0xJVkVLSVRfU0VSVkVSX0lNQUdFOi1saXZla2l0L2xpdmVraXQtc2VydmVyOnYxLjEzLjR9XCJcclxuICAgIGNvbW1hbmQ6IC0tY29uZmlnIC9saXZla2l0LnlhbWxcclxuICAgIGRlcGVuZHNfb246XHJcbiAgICAgIC0gcmVkaXNcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBMSVZFS0lUX0tFWVM6IFwiJHtMSVZFS0lUX0FQSV9LRVk6P0xJVkVLSVRfQVBJX0tFWSBtdXN0IGJlIHNldH06ICR7TElWRUtJVF9BUElfU0VDUkVUOj9MSVZFS0lUX0FQSV9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgIGV4cG9zZTpcclxuICAgICAgLSBcIjc4ODBcIlxyXG4gICAgcG9ydHM6XHJcbiAgICAgIC0gXCI3ODgxOjc4ODFcIlxyXG4gICAgICAtIFwiNzg4Mjo3ODgyL3VkcFwiXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICBsaXZla2l0LWVncmVzczpcclxuICAgIGJ1aWxkOlxyXG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXHJcbiAgICAgIGRvY2tlcmZpbGU6IGxpdmVraXQtZWdyZXNzLkRvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBMSVZFS0lUX0VHUkVTU19JTUFHRTogXCIke05FQlVMWU5LX0xJVkVLSVRfRUdSRVNTX0lNQUdFOi1saXZla2l0L2VncmVzczp2MS4xMy4wfVwiXHJcbiAgICBjb21tYW5kOiAtLWNvbmZpZyAvbGl2ZWtpdC1lZ3Jlc3MueWFtbFxyXG4gICAgZW52aXJvbm1lbnQ6XHJcbiAgICAgIEVHUkVTU19DT05GSUdfRklMRTogL2xpdmVraXQtZWdyZXNzLnlhbWxcclxuICAgICAgTElWRUtJVF9BUElfS0VZOiBcIiR7TElWRUtJVF9BUElfS0VZOj9MSVZFS0lUX0FQSV9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgTElWRUtJVF9BUElfU0VDUkVUOiBcIiR7TElWRUtJVF9BUElfU0VDUkVUOj9MSVZFS0lUX0FQSV9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgTElWRUtJVF9XU19VUkw6IHdzOi8vbGl2ZWtpdDo3ODgwXHJcbiAgICAgIEFXU19BQ0NFU1NfS0VZX0lEOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZOiBcIiR7U1RPUkFHRV9TM19TRUNSRVRfS0VZOj9TVE9SQUdFX1MzX1NFQ1JFVF9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVdTX0RFRkFVTFRfUkVHSU9OOiBcIiR7U1RPUkFHRV9TM19SRUdJT046LSR7TUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjotdXMtZWFzdC0xfX1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgLSBsaXZla2l0XHJcbiAgICAgIC0gcmVkaXNcclxuICAgICAgLSBnYXJhZ2VcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIGJhY2tlbmQ6XHJcbiAgICBidWlsZDpcclxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxyXG4gICAgICBkb2NrZXJmaWxlOiBiYWNrZW5kL0RvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBOT0RFX0lNQUdFOiBcIiR7TkVCVUxZTktfTk9ERV9JTUFHRTotbm9kZToyMi4yMy4xLWFscGluZTMuMjR9XCJcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBOT0RFX0VOVjogXCIke05PREVfRU5WOi1kZXZlbG9wbWVudH1cIlxuICAgICAgSldUX1NFQ1JFVDogXCIke0pXVF9TRUNSRVQ6P0pXVF9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQUlfU0VDUkVUX0tFWTogXCIke0FJX1NFQ1JFVF9LRVk6P0FJX1NFQ1JFVF9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVVUSF8yRkFfU0VDUkVUX0tFWTogXCIke0FVVEhfMkZBX1NFQ1JFVF9LRVk6LX1cIlxyXG4gICAgICBCQUNLRU5EX1BPUlQ6IFwiJHtCQUNLRU5EX1BPUlQ6LTMwMzB9XCJcclxuICAgICAgTE9HX0xFVkVMOiBcIiR7TE9HX0xFVkVMOi1pbmZvfVwiXHJcbiAgICAgIE1BWF9GSUxFX1NJWkU6IFwiJHtNQVhfRklMRV9TSVpFOi0yNjIxNDQwMH1cIlxyXG4gICAgICBBVVRIRU5USUNBVElPTl9SQVRFX0xJTUlUX0lQX0xJTUlUOiBcIiR7QVVUSEVOVElDQVRJT05fUkFURV9MSU1JVF9JUF9MSU1JVDotfVwiXHJcbiAgICAgIEFVVEhfQlJPV1NFUl9BQ0NFU1NfVE9LRU5fVFRMOiBcIiR7QVVUSF9CUk9XU0VSX0FDQ0VTU19UT0tFTl9UVEw6LTE1bX1cIlxyXG4gICAgICBBVVRIX1JFRlJFU0hfVE9LRU5fVFRMOiBcIiR7QVVUSF9SRUZSRVNIX1RPS0VOX1RUTDotMWR9XCJcclxuICAgICAgQVVUSF9SRU1FTUJFUl9SRUZSRVNIX1RPS0VOX1RUTDogXCIke0FVVEhfUkVNRU1CRVJfUkVGUkVTSF9UT0tFTl9UVEw6LTMwZH1cIlxyXG4gICAgICBBVVRIX1JFRlJFU0hfQ09PS0lFX05BTUU6IFwiJHtBVVRIX1JFRlJFU0hfQ09PS0lFX05BTUU6LW5lYnVseW5rX3JlZnJlc2hfc2Vzc2lvbn1cIlxyXG4gICAgICBBVVRIX0NTUkZfQ09PS0lFX05BTUU6IFwiJHtBVVRIX0NTUkZfQ09PS0lFX05BTUU6LW5lYnVseW5rX2NzcmZfdG9rZW59XCJcclxuICAgICAgQVVUSF9DT09LSUVfRE9NQUlOOiBcIiR7QVVUSF9DT09LSUVfRE9NQUlOOi19XCJcclxuICAgICAgUkFURV9MSU1JVF9EUklWRVI6IFwiJHtSQVRFX0xJTUlUX0RSSVZFUjotcmVkaXN9XCJcclxuICAgICAgUEFTU0tFWV9SUF9JRDogXCIke1BBU1NLRVlfUlBfSUQ6P1BBU1NLRVlfUlBfSUQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQUlfUFJPVklERVJfQkFTRV9VUkxfQUxMT1dMSVNUOiBcIiR7QUlfUFJPVklERVJfQkFTRV9VUkxfQUxMT1dMSVNUOi19XCJcclxuICAgICAgUE9TVEdSRVNfSE9TVDogcG9zdGdyZXNcclxuICAgICAgUE9TVEdSRVNfUE9SVDogXCI1NDMyXCJcclxuICAgICAgUE9TVEdSRVNfREI6IFwiJHtQT1NUR1JFU19EQjotbmVidWx5bmt9XCJcclxuICAgICAgUE9TVEdSRVNfVVNFUjogXCIke1BPU1RHUkVTX1VTRVI6LW5lYnVseW5rfVwiXHJcbiAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiBcIiR7UE9TVEdSRVNfUEFTU1dPUkQ6P1BPU1RHUkVTX1BBU1NXT1JEIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIFJFRElTX0hPU1Q6IHJlZGlzXHJcbiAgICAgIFJFRElTX1BPUlQ6IFwiNjM3OVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfRU5EUE9JTlQ6IGh0dHA6Ly9nYXJhZ2U6MzkwMFxyXG4gICAgICBTVE9SQUdFX1MzX1BVQkxJQ19FTkRQT0lOVDogXCIke1NUT1JBR0VfUzNfUFVCTElDX0VORFBPSU5UOj9TVE9SQUdFX1MzX1BVQkxJQ19FTkRQT0lOVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBTVE9SQUdFX1MzX0FDQ0VTU19LRVk6IFwiJHtTVE9SQUdFX1MzX0FDQ0VTU19LRVk6P1NUT1JBR0VfUzNfQUNDRVNTX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBTVE9SQUdFX1MzX1NFQ1JFVF9LRVk6IFwiJHtTVE9SQUdFX1MzX1NFQ1JFVF9LRVk6P1NUT1JBR0VfUzNfU0VDUkVUX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBTVE9SQUdFX1MzX0JVQ0tFVDogXCIke1NUT1JBR0VfUzNfQlVDS0VUOi1uZWJ1bHluay1maWxlc31cIlxyXG4gICAgICBTVE9SQUdFX1MzX1JFR0lPTjogXCIke1NUT1JBR0VfUzNfUkVHSU9OOi0ke01FRVRJTkdfUkVDT1JESU5HU19TM19SRUdJT046LXVzLWVhc3QtMX19XCJcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX1BSRUZJWDogbWVldGluZy1yZWNvcmRpbmdzXHJcbiAgICAgIE1FRVRJTkdfUkVDT1JESU5HU19CVUNLRVQ6IFwiJHtTVE9SQUdFX1MzX0JVQ0tFVDotbmVidWx5bmstZmlsZXN9XCJcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX1MzX0VORFBPSU5UOiBodHRwOi8vZ2FyYWdlOjM5MDBcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX0VHUkVTU19TM19FTkRQT0lOVDogaHR0cDovL2dhcmFnZTozOTAwXHJcbiAgICAgIE1FRVRJTkdfUkVDT1JESU5HU19TM19SRUdJT046IFwiJHtNRUVUSU5HX1JFQ09SRElOR1NfUzNfUkVHSU9OOi0ke1NUT1JBR0VfUzNfUkVHSU9OOi11cy1lYXN0LTF9fVwiXHJcbiAgICAgIE1FRVRJTkdfVFJBTlNDUklQVF9XQUlUX1RJTUVPVVRfTVM6IFwiJHtNRUVUSU5HX1RSQU5TQ1JJUFRfV0FJVF9USU1FT1VUX01TOi0xMjAwMDAwfVwiXHJcbiAgICAgIExJVkVLSVRfSE9TVDogaHR0cDovL2xpdmVraXQ6Nzg4MFxyXG4gICAgICBMSVZFS0lUX1BVQkxJQ19VUkw6IFwiJHtMSVZFS0lUX1BVQkxJQ19VUkw6P0xJVkVLSVRfUFVCTElDX1VSTCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBMSVZFS0lUX0FQSV9LRVk6IFwiJHtMSVZFS0lUX0FQSV9LRVk6P0xJVkVLSVRfQVBJX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBMSVZFS0lUX0FQSV9TRUNSRVQ6IFwiJHtMSVZFS0lUX0FQSV9TRUNSRVQ6P0xJVkVLSVRfQVBJX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBLTElQWV9BUElfS0VZOiBcIiR7S0xJUFlfQVBJX0tFWTotfVwiXHJcbiAgICAgIFZBUElEX1BVQkxJQ19LRVk6IFwiJHtWQVBJRF9QVUJMSUNfS0VZOi19XCJcclxuICAgICAgVkFQSURfUFJJVkFURV9LRVk6IFwiJHtWQVBJRF9QUklWQVRFX0tFWTotfVwiXHJcbiAgICAgIFZBUElEX1NVQkpFQ1Q6IFwiJHtWQVBJRF9TVUJKRUNUOi1tYWlsdG86YWRtaW5AZXhhbXBsZS5jb219XCJcclxuICAgICAgU01UUF9IT1NUOiBcIiR7U01UUF9IT1NUOi19XCJcclxuICAgICAgU01UUF9QT1JUOiBcIiR7U01UUF9QT1JUOi01ODd9XCJcclxuICAgICAgU01UUF9TRUNVUkU6IFwiJHtTTVRQX1NFQ1VSRTotZmFsc2V9XCJcclxuICAgICAgU01UUF9JR05PUkVfVExTOiBcIiR7U01UUF9JR05PUkVfVExTOi1mYWxzZX1cIlxyXG4gICAgICBTTVRQX1VTRVI6IFwiJHtTTVRQX1VTRVI6LX1cIlxyXG4gICAgICBTTVRQX1BBU1M6IFwiJHtTTVRQX1BBU1M6LX1cIlxyXG4gICAgICBTTVRQX0ZST006IFwiJHtTTVRQX0ZST006LW5vcmVwbHlAbmVidWx5bmsubG9jYWx9XCJcclxuICAgICAgU01UUF9GUk9NX05BTUU6IFwiJHtTTVRQX0ZST01fTkFNRTotTmVidWx5bmt9XCJcclxuICAgICAgRlJPTlRFTkRfVVJMOiBcIiR7RlJPTlRFTkRfVVJMOj9GUk9OVEVORF9VUkwgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgVFJVU1RfUFJPWFk6IFwiJHtUUlVTVF9QUk9YWTotdHJ1ZX1cIlxyXG4gICAgICBORUJVTFlOS19CVUlMRF9TSEE6IFwiJHtORUJVTFlOS19CVUlMRF9TSEE6LX1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgLSBwb3N0Z3Jlc1xyXG4gICAgICAtIHJlZGlzXHJcbiAgICAgIC0gZ2FyYWdlXHJcbiAgICAgIC0gbGl2ZWtpdFxyXG4gICAgICAtIGxpdmVraXQtZWdyZXNzXHJcbiAgICBleHBvc2U6XHJcbiAgICAgIC0gXCIzMDMwXCJcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG52b2x1bWVzOlxyXG4gIG5lYnVseW5rX3Bvc3RncmVzX2RhdGE6XHJcbiAgbmVidWx5bmtfcmVkaXNfZGF0YTpcclxuICBuZWJ1bHlua19nYXJhZ2VfbWV0YTpcclxuICBuZWJ1bHlua19nYXJhZ2VfZGF0YTpcclxuIiwiY29uZmlnIjoiIyBWYWx1ZXMgaW4gW3ZhcmlhYmxlc10gYXJlIHJlc29sdmVkIG9uY2Ugd2hlbiBEb2twbG95IGltcG9ydHMgdGhlIHRlbXBsYXRlLlxyXG4jIFRoZSBnZW5lcmF0ZWQgdmFsdWVzIGFyZSB0aGVuIHN0b3JlZCBpbiB0aGUgQ29tcG9zZSBzZXJ2aWNlIGVudmlyb25tZW50LlxyXG5bdmFyaWFibGVzXVxyXG5mcm9udGVuZF9kb21haW4gPSBcIiR7ZG9tYWlufVwiXHJcbmJhY2tlbmRfZG9tYWluID0gXCIke2RvbWFpbn1cIlxyXG5saXZla2l0X2RvbWFpbiA9IFwiJHtkb21haW59XCJcclxuZ2FyYWdlX2RvbWFpbiA9IFwiJHtkb21haW59XCJcclxuXHJcbnBvc3RncmVzX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcbmdhcmFnZV9ycGNfc2VjcmV0ID0gXCIke2hhc2g6NjR9XCJcclxuc3RvcmFnZV9zM19hY2Nlc3Nfa2V5ID0gXCIke3Bhc3N3b3JkOjI0fVwiXHJcbnN0b3JhZ2VfczNfc2VjcmV0X2tleSA9IFwiJHtwYXNzd29yZDo2NH1cIlxyXG5qd3Rfc2VjcmV0ID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcbmFpX3NlY3JldF9rZXkgPSBcIiR7cGFzc3dvcmQ6NjR9XCJcclxuYXV0aF8yZmFfc2VjcmV0X2tleSA9IFwiJHtwYXNzd29yZDo2NH1cIlxyXG5saXZla2l0X2FwaV9rZXkgPSBcIiR7cGFzc3dvcmQ6MjR9XCJcclxubGl2ZWtpdF9hcGlfc2VjcmV0ID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcblxyXG4jIEdlbmVyYXRlZCBzc2xpcC5pbyBkb21haW5zIGFyZSBIVFRQLW9ubHkgdW50aWwgRG9rcGxveSBUTFMgaXMgY29uZmlndXJlZC5cbmZyb250ZW5kX3VybCA9IFwiaHR0cDovLyR7ZnJvbnRlbmRfZG9tYWlufVwiXG5iYWNrZW5kX3VybCA9IFwiaHR0cDovLyR7YmFja2VuZF9kb21haW59XCJcbmxpdmVraXRfcHVibGljX3VybCA9IFwiaHR0cDovLyR7bGl2ZWtpdF9kb21haW59XCJcbmdhcmFnZV9wdWJsaWNfdXJsID0gXCJodHRwOi8vJHtnYXJhZ2VfZG9tYWlufVwiXG5zb3VyY2VfcmVmID0gXCJzdGFibGVcIlxyXG5cclxuW2NvbmZpZ11cclxuaXNvbGF0ZWQgPSB0cnVlXHJcblxyXG5bW2NvbmZpZy5kb21haW5zXV1cclxuc2VydmljZU5hbWUgPSBcImZyb250ZW5kXCJcclxucG9ydCA9IDgwODBcclxuaG9zdCA9IFwiJHtmcm9udGVuZF9kb21haW59XCJcclxucGF0aCA9IFwiL1wiXHJcblxyXG5bW2NvbmZpZy5kb21haW5zXV1cclxuc2VydmljZU5hbWUgPSBcImJhY2tlbmRcIlxyXG5wb3J0ID0gMzAzMFxyXG5ob3N0ID0gXCIke2JhY2tlbmRfZG9tYWlufVwiXHJcbnBhdGggPSBcIi9cIlxyXG5cclxuW1tjb25maWcuZG9tYWluc11dXHJcbnNlcnZpY2VOYW1lID0gXCJsaXZla2l0XCJcclxucG9ydCA9IDc4ODBcclxuaG9zdCA9IFwiJHtsaXZla2l0X2RvbWFpbn1cIlxyXG5wYXRoID0gXCIvXCJcclxuXHJcbltbY29uZmlnLmRvbWFpbnNdXVxyXG5zZXJ2aWNlTmFtZSA9IFwiZ2FyYWdlXCJcclxucG9ydCA9IDM5MDBcclxuaG9zdCA9IFwiJHtnYXJhZ2VfZG9tYWlufVwiXHJcbnBhdGggPSBcIi9cIlxyXG5cclxuW2NvbmZpZy5lbnZdXG5OT0RFX0VOViA9IFwiZGV2ZWxvcG1lbnRcIlxuTkVCVUxZTktfU09VUkNFX1JFRiA9IFwiJHtzb3VyY2VfcmVmfVwiXG5QT1NUR1JFU19EQiA9IFwibmVidWx5bmtcIlxyXG5QT1NUR1JFU19VU0VSID0gXCJuZWJ1bHlua1wiXHJcblBPU1RHUkVTX1BBU1NXT1JEID0gXCIke3Bvc3RncmVzX3Bhc3N3b3JkfVwiXHJcbkdBUkFHRV9SUENfU0VDUkVUID0gXCIke2dhcmFnZV9ycGNfc2VjcmV0fVwiXHJcblNUT1JBR0VfUzNfQUNDRVNTX0tFWSA9IFwiJHtzdG9yYWdlX3MzX2FjY2Vzc19rZXl9XCJcclxuU1RPUkFHRV9TM19TRUNSRVRfS0VZID0gXCIke3N0b3JhZ2VfczNfc2VjcmV0X2tleX1cIlxyXG5TVE9SQUdFX1MzX0JVQ0tFVCA9IFwibmVidWx5bmstZmlsZXNcIlxyXG5TVE9SQUdFX1MzX1JFR0lPTiA9IFwidXMtZWFzdC0xXCJcclxuSldUX1NFQ1JFVCA9IFwiJHtqd3Rfc2VjcmV0fVwiXHJcbkFJX1NFQ1JFVF9LRVkgPSBcIiR7YWlfc2VjcmV0X2tleX1cIlxyXG5BVVRIXzJGQV9TRUNSRVRfS0VZID0gXCIke2F1dGhfMmZhX3NlY3JldF9rZXl9XCJcclxuTElWRUtJVF9BUElfS0VZID0gXCIke2xpdmVraXRfYXBpX2tleX1cIlxyXG5MSVZFS0lUX0FQSV9TRUNSRVQgPSBcIiR7bGl2ZWtpdF9hcGlfc2VjcmV0fVwiXHJcbkZST05URU5EX1VSTCA9IFwiJHtmcm9udGVuZF91cmx9XCJcclxuUEFTU0tFWV9SUF9JRCA9IFwiJHtmcm9udGVuZF9kb21haW59XCJcclxuVklURV9BUElfVVJMID0gXCIke2JhY2tlbmRfdXJsfVwiXHJcbkxJVkVLSVRfUFVCTElDX1VSTCA9IFwiJHtsaXZla2l0X3B1YmxpY191cmx9XCJcclxuU1RPUkFHRV9TM19QVUJMSUNfRU5EUE9JTlQgPSBcIiR7Z2FyYWdlX3B1YmxpY191cmx9XCJcblxuIyBPcHRpb25hbCBpbnRlZ3JhdGlvbnMuIExlYXZlIGluc3RhbmNlLXNwZWNpZmljIHZhbHVlcyBlbXB0eSB1bnRpbCBjb25maWd1cmVkLlxuS0xJUFlfQVBJX0tFWSA9IFwiXCJcblZBUElEX1BVQkxJQ19LRVkgPSBcIlwiXG5WQVBJRF9QUklWQVRFX0tFWSA9IFwiXCJcblZBUElEX1NVQkpFQ1QgPSBcIlwiXG5cblNNVFBfSE9TVCA9IFwiXCJcblNNVFBfUE9SVCA9IFwiNTg3XCJcblNNVFBfU0VDVVJFID0gXCJmYWxzZVwiXG5TTVRQX0lHTk9SRV9UTFMgPSBcImZhbHNlXCJcblNNVFBfVVNFUiA9IFwiXCJcblNNVFBfUEFTUyA9IFwiXCJcblNNVFBfRlJPTSA9IFwiXCJcblNNVFBfRlJPTV9OQU1FID0gXCJOZWJ1bHlua1wiXG5cbiMgT3B0aW9uYWwgb3BlcmF0aW9uYWwgYW5kIHNlY3VyaXR5IHNldHRpbmdzLlxuQVVUSEVOVElDQVRJT05fUkFURV9MSU1JVF9JUF9MSU1JVCA9IFwiXCJcbkFVVEhfQlJPV1NFUl9BQ0NFU1NfVE9LRU5fVFRMID0gXCIxNW1cIlxuQVVUSF9SRUZSRVNIX1RPS0VOX1RUTCA9IFwiMWRcIlxuQVVUSF9SRU1FTUJFUl9SRUZSRVNIX1RPS0VOX1RUTCA9IFwiMzBkXCJcbkFVVEhfUkVGUkVTSF9DT09LSUVfTkFNRSA9IFwibmVidWx5bmtfcmVmcmVzaF9zZXNzaW9uXCJcbkFVVEhfQ1NSRl9DT09LSUVfTkFNRSA9IFwibmVidWx5bmtfY3NyZl90b2tlblwiXG5BVVRIX0NPT0tJRV9ET01BSU4gPSBcIlwiXG5SQVRFX0xJTUlUX0RSSVZFUiA9IFwicmVkaXNcIlxuQUlfUFJPVklERVJfQkFTRV9VUkxfQUxMT1dMSVNUID0gXCJcIlxuTE9HX0xFVkVMID0gXCJpbmZvXCJcbk1BWF9GSUxFX1NJWkUgPSBcIjI2MjE0NDAwXCJcbk1FRVRJTkdfVFJBTlNDUklQVF9XQUlUX1RJTUVPVVRfTVMgPSBcIjEyMDAwMFwiXG5UUlVTVF9QUk9YWSA9IFwidHJ1ZVwiXG5ORUJVTFlOS19CVUlMRF9TSEEgPSBcIlwiXG4ifQ== diff --git a/blueprints/nebulynk/template.toml b/blueprints/nebulynk/template.toml index c778d7554..0890ddd0b 100644 --- a/blueprints/nebulynk/template.toml +++ b/blueprints/nebulynk/template.toml @@ -16,10 +16,11 @@ auth_2fa_secret_key = "${password:64}" livekit_api_key = "${password:24}" livekit_api_secret = "${password:64}" -frontend_url = "https://${frontend_domain}" -backend_url = "https://${backend_domain}" -livekit_public_url = "https://${livekit_domain}" -garage_public_url = "https://${garage_domain}" +# Generated sslip.io domains are HTTP-only until Dokploy TLS is configured. +frontend_url = "http://${frontend_domain}" +backend_url = "http://${backend_domain}" +livekit_public_url = "http://${livekit_domain}" +garage_public_url = "http://${garage_domain}" source_ref = "stable" [config] @@ -50,6 +51,7 @@ host = "${garage_domain}" path = "/" [config.env] +NODE_ENV = "development" NEBULYNK_SOURCE_REF = "${source_ref}" POSTGRES_DB = "nebulynk" POSTGRES_USER = "nebulynk" @@ -69,3 +71,34 @@ PASSKEY_RP_ID = "${frontend_domain}" VITE_API_URL = "${backend_url}" LIVEKIT_PUBLIC_URL = "${livekit_public_url}" STORAGE_S3_PUBLIC_ENDPOINT = "${garage_public_url}" + +# Optional integrations. Leave instance-specific values empty until configured. +KLIPY_API_KEY = "" +VAPID_PUBLIC_KEY = "" +VAPID_PRIVATE_KEY = "" +VAPID_SUBJECT = "" + +SMTP_HOST = "" +SMTP_PORT = "587" +SMTP_SECURE = "false" +SMTP_IGNORE_TLS = "false" +SMTP_USER = "" +SMTP_PASS = "" +SMTP_FROM = "" +SMTP_FROM_NAME = "Nebulynk" + +# Optional operational and security settings. +AUTHENTICATION_RATE_LIMIT_IP_LIMIT = "" +AUTH_BROWSER_ACCESS_TOKEN_TTL = "15m" +AUTH_REFRESH_TOKEN_TTL = "1d" +AUTH_REMEMBER_REFRESH_TOKEN_TTL = "30d" +AUTH_REFRESH_COOKIE_NAME = "nebulynk_refresh_session" +AUTH_CSRF_COOKIE_NAME = "nebulynk_csrf_token" +AUTH_COOKIE_DOMAIN = "" +RATE_LIMIT_DRIVER = "redis" +AI_PROVIDER_BASE_URL_ALLOWLIST = "" +LOG_LEVEL = "info" +MAX_FILE_SIZE = "26214400" +MEETING_TRANSCRIPT_WAIT_TIMEOUT_MS = "1200000" +TRUST_PROXY = "true" +NEBULYNK_BUILD_SHA = "" From 3f3c3aebebc6903e8bf0f04c095adce7df822011 Mon Sep 17 00:00:00 2001 From: Alexander Zerling Date: Sun, 16 Aug 2026 01:37:10 +0200 Subject: [PATCH 4/7] updated base64 --- blueprints/nebulynk/import.base64 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blueprints/nebulynk/import.base64 b/blueprints/nebulynk/import.base64 index 05871a07a..9f812f3dc 100644 --- a/blueprints/nebulynk/import.base64 +++ b/blueprints/nebulynk/import.base64 @@ -1 +1 @@ -eyJjb21wb3NlIjoiIyBkb2twbG95OiBhbGxvdy1ob3N0LXBvcnRzXHJcbiMgTGl2ZUtpdCByZXF1aXJlcyBwdWJsaWMgVENQL1VEUCBtZWRpYSBwb3J0cyA3ODgxIGFuZCA3ODgyIGZvciBXZWJSVEMuXHJcbiMgTmVidWx5bmsgRG9rcGxveSB0ZW1wbGF0ZS4gSW1wb3J0IHRoZSBnZW5lcmF0ZWQgaW1wb3J0LmJhc2U2NCBmaWxlIHRocm91Z2hcclxuIyBDb21wb3NlIC0+IEFkdmFuY2VkIC0+IEltcG9ydC4gRG9rcGxveSBvd25zIHJvdXRpbmcgYW5kIHRoZSBpc29sYXRlZCBuZXR3b3JrLlxyXG52ZXJzaW9uOiBcIjMuOFwiXHJcbnNlcnZpY2VzOlxyXG4gIGZyb250ZW5kOlxyXG4gICAgYnVpbGQ6XHJcbiAgICAgIGNvbnRleHQ6IFwiaHR0cHM6Ly9naXRodWIuY29tL3NhcGllbnRvcml1cy9OZWJ1bHluay5naXQjJHtORUJVTFlOS19TT1VSQ0VfUkVGOi1zdGFibGV9XCJcclxuICAgICAgZG9ja2VyZmlsZTogZnJvbnRlbmQvRG9ja2VyZmlsZVxyXG4gICAgICBhcmdzOlxyXG4gICAgICAgIE5PREVfSU1BR0U6IFwiJHtORUJVTFlOS19OT0RFX0lNQUdFOi1ub2RlOjIyLjIzLjEtYWxwaW5lMy4yNH1cIlxyXG4gICAgICAgIE5HSU5YX0lNQUdFOiBcIiR7TkVCVUxZTktfTkdJTlhfSU1BR0U6LW5naW54aW5jL25naW54LXVucHJpdmlsZWdlZDoxLjMxLWFscGluZTMuMjNAc2hhMjU2OjYzMjAwMjBjN2RhODcxNGZlYWI1MjRlMDJjMDhjNWExOTU4Njc1YzRlNjg3MDBlOTNhMmZkODk3MGIwNjU3ODZ9XCJcclxuICAgICAgICAjIFRoZXNlIFVSTHMgYXJlIGJha2VkIGludG8gdGhlIGJyb3dzZXIgYnVuZGxlLlxyXG4gICAgICAgIFZJVEVfQVBJX1VSTDogXCIke1ZJVEVfQVBJX1VSTDo/VklURV9BUElfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgICAgVklURV9MSVZFS0lUX1VSTDogXCIke0xJVkVLSVRfUFVCTElDX1VSTDo/TElWRUtJVF9QVUJMSUNfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgICAgVklURV9WQVBJRF9QVUJMSUNfS0VZOiBcIiR7VkFQSURfUFVCTElDX0tFWTotfVwiXHJcbiAgICAgICAgVklURV9BVVRIX0NTUkZfQ09PS0lFX05BTUU6IFwiJHtBVVRIX0NTUkZfQ09PS0lFX05BTUU6LW5lYnVseW5rX2NzcmZfdG9rZW59XCJcclxuICAgIGRlcGVuZHNfb246XHJcbiAgICAgIC0gYmFja2VuZFxyXG4gICAgZXhwb3NlOlxyXG4gICAgICAtIFwiODA4MFwiXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICBwb3N0Z3JlczpcclxuICAgIGltYWdlOiBcIiR7TkVCVUxZTktfUE9TVEdSRVNfSU1BR0U6LXBvc3RncmVzOjE3LWFscGluZTMuMjRAc2hhMjU2Ojc0MmY0MGVhMjBiOWZmMmZmMzFkYjU0NThkMTI3NDUyOTg4YTIxNjRkZjllMTc0NDFlMTkxZjNiNzIyNTIxOTN9XCJcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBQT1NUR1JFU19EQjogXCIke1BPU1RHUkVTX0RCOi1uZWJ1bHlua31cIlxyXG4gICAgICBQT1NUR1JFU19VU0VSOiBcIiR7UE9TVEdSRVNfVVNFUjotbmVidWx5bmt9XCJcclxuICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IFwiJHtQT1NUR1JFU19QQVNTV09SRDo/UE9TVEdSRVNfUEFTU1dPUkQgbXVzdCBiZSBzZXR9XCJcclxuICAgIHZvbHVtZXM6XHJcbiAgICAgIC0gbmVidWx5bmtfcG9zdGdyZXNfZGF0YTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGFcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIHJlZGlzOlxyXG4gICAgaW1hZ2U6IFwiJHtORUJVTFlOS19SRURJU19JTUFHRTotcmVkaXM6Ny40LjctYWxwaW5lMy4yMX1cIlxyXG4gICAgdm9sdW1lczpcclxuICAgICAgLSBuZWJ1bHlua19yZWRpc19kYXRhOi9kYXRhXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICAjIFByZXBhcmUgbmFtZWQgR2FyYWdlIHZvbHVtZXMgZm9yIHRoZSB1bnByaXZpbGVnZWQgR2FyYWdlIHByb2Nlc3MuXHJcbiAgZ2FyYWdlLXZvbHVtZS1pbml0OlxyXG4gICAgaW1hZ2U6IGFscGluZTozLjIxLjVcclxuICAgIHVzZXI6IFwiMDowXCJcclxuICAgIGNvbW1hbmQ6IFtcInNoXCIsIFwiLWVjXCIsIFwiY2hvd24gLVIgNjU1MzI6NjU1MzIgL3Zhci9saWIvZ2FyYWdlL21ldGEgL3Zhci9saWIvZ2FyYWdlL2RhdGFcIl1cclxuICAgIHZvbHVtZXM6XHJcbiAgICAgIC0gbmVidWx5bmtfZ2FyYWdlX21ldGE6L3Zhci9saWIvZ2FyYWdlL21ldGFcclxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfZGF0YTovdmFyL2xpYi9nYXJhZ2UvZGF0YVxyXG4gICAgcmVzdGFydDogXCJub1wiXHJcblxyXG4gIGdhcmFnZTpcclxuICAgIGJ1aWxkOlxyXG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXHJcbiAgICAgIGRvY2tlcmZpbGU6IGdhcmFnZS5Eb2NrZXJmaWxlXHJcbiAgICAgIGFyZ3M6XHJcbiAgICAgICAgR0FSQUdFX0lNQUdFOiBcIiR7TkVCVUxZTktfR0FSQUdFX0lNQUdFOi1keGZscnMvZ2FyYWdlOnYyLjMuMH1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgZ2FyYWdlLXZvbHVtZS1pbml0OlxyXG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XHJcbiAgICBjb21tYW5kOiAvZ2FyYWdlIHNlcnZlciAtLXNpbmdsZS1ub2RlIC0tZGVmYXVsdC1idWNrZXRcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBHQVJBR0VfUlBDX1NFQ1JFVDogXCIke0dBUkFHRV9SUENfU0VDUkVUOj9HQVJBR0VfUlBDX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBHQVJBR0VfREVGQVVMVF9BQ0NFU1NfS0VZOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgR0FSQUdFX0RFRkFVTFRfU0VDUkVUX0tFWTogXCIke1NUT1JBR0VfUzNfU0VDUkVUX0tFWTo/U1RPUkFHRV9TM19TRUNSRVRfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIEdBUkFHRV9ERUZBVUxUX0JVQ0tFVDogXCIke1NUT1JBR0VfUzNfQlVDS0VUOi1uZWJ1bHluay1maWxlc31cIlxyXG4gICAgdm9sdW1lczpcclxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfbWV0YTovdmFyL2xpYi9nYXJhZ2UvbWV0YVxyXG4gICAgICAtIG5lYnVseW5rX2dhcmFnZV9kYXRhOi92YXIvbGliL2dhcmFnZS9kYXRhXHJcbiAgICBleHBvc2U6XHJcbiAgICAgIC0gXCIzOTAwXCJcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIGxpdmVraXQ6XHJcbiAgICBidWlsZDpcclxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxyXG4gICAgICBkb2NrZXJmaWxlOiBsaXZla2l0LkRvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBMSVZFS0lUX1NFUlZFUl9JTUFHRTogXCIke05FQlVMWU5LX0xJVkVLSVRfU0VSVkVSX0lNQUdFOi1saXZla2l0L2xpdmVraXQtc2VydmVyOnYxLjEzLjR9XCJcclxuICAgIGNvbW1hbmQ6IC0tY29uZmlnIC9saXZla2l0LnlhbWxcclxuICAgIGRlcGVuZHNfb246XHJcbiAgICAgIC0gcmVkaXNcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBMSVZFS0lUX0tFWVM6IFwiJHtMSVZFS0lUX0FQSV9LRVk6P0xJVkVLSVRfQVBJX0tFWSBtdXN0IGJlIHNldH06ICR7TElWRUtJVF9BUElfU0VDUkVUOj9MSVZFS0lUX0FQSV9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgIGV4cG9zZTpcclxuICAgICAgLSBcIjc4ODBcIlxyXG4gICAgcG9ydHM6XHJcbiAgICAgIC0gXCI3ODgxOjc4ODFcIlxyXG4gICAgICAtIFwiNzg4Mjo3ODgyL3VkcFwiXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICBsaXZla2l0LWVncmVzczpcclxuICAgIGJ1aWxkOlxyXG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXHJcbiAgICAgIGRvY2tlcmZpbGU6IGxpdmVraXQtZWdyZXNzLkRvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBMSVZFS0lUX0VHUkVTU19JTUFHRTogXCIke05FQlVMWU5LX0xJVkVLSVRfRUdSRVNTX0lNQUdFOi1saXZla2l0L2VncmVzczp2MS4xMy4wfVwiXHJcbiAgICBjb21tYW5kOiAtLWNvbmZpZyAvbGl2ZWtpdC1lZ3Jlc3MueWFtbFxyXG4gICAgZW52aXJvbm1lbnQ6XHJcbiAgICAgIEVHUkVTU19DT05GSUdfRklMRTogL2xpdmVraXQtZWdyZXNzLnlhbWxcclxuICAgICAgTElWRUtJVF9BUElfS0VZOiBcIiR7TElWRUtJVF9BUElfS0VZOj9MSVZFS0lUX0FQSV9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgTElWRUtJVF9BUElfU0VDUkVUOiBcIiR7TElWRUtJVF9BUElfU0VDUkVUOj9MSVZFS0lUX0FQSV9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgTElWRUtJVF9XU19VUkw6IHdzOi8vbGl2ZWtpdDo3ODgwXHJcbiAgICAgIEFXU19BQ0NFU1NfS0VZX0lEOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZOiBcIiR7U1RPUkFHRV9TM19TRUNSRVRfS0VZOj9TVE9SQUdFX1MzX1NFQ1JFVF9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVdTX0RFRkFVTFRfUkVHSU9OOiBcIiR7U1RPUkFHRV9TM19SRUdJT046LSR7TUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjotdXMtZWFzdC0xfX1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgLSBsaXZla2l0XHJcbiAgICAgIC0gcmVkaXNcclxuICAgICAgLSBnYXJhZ2VcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIGJhY2tlbmQ6XHJcbiAgICBidWlsZDpcclxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxyXG4gICAgICBkb2NrZXJmaWxlOiBiYWNrZW5kL0RvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBOT0RFX0lNQUdFOiBcIiR7TkVCVUxZTktfTk9ERV9JTUFHRTotbm9kZToyMi4yMy4xLWFscGluZTMuMjR9XCJcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBOT0RFX0VOVjogXCIke05PREVfRU5WOi1kZXZlbG9wbWVudH1cIlxuICAgICAgSldUX1NFQ1JFVDogXCIke0pXVF9TRUNSRVQ6P0pXVF9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQUlfU0VDUkVUX0tFWTogXCIke0FJX1NFQ1JFVF9LRVk6P0FJX1NFQ1JFVF9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVVUSF8yRkFfU0VDUkVUX0tFWTogXCIke0FVVEhfMkZBX1NFQ1JFVF9LRVk6LX1cIlxyXG4gICAgICBCQUNLRU5EX1BPUlQ6IFwiJHtCQUNLRU5EX1BPUlQ6LTMwMzB9XCJcclxuICAgICAgTE9HX0xFVkVMOiBcIiR7TE9HX0xFVkVMOi1pbmZvfVwiXHJcbiAgICAgIE1BWF9GSUxFX1NJWkU6IFwiJHtNQVhfRklMRV9TSVpFOi0yNjIxNDQwMH1cIlxyXG4gICAgICBBVVRIRU5USUNBVElPTl9SQVRFX0xJTUlUX0lQX0xJTUlUOiBcIiR7QVVUSEVOVElDQVRJT05fUkFURV9MSU1JVF9JUF9MSU1JVDotfVwiXHJcbiAgICAgIEFVVEhfQlJPV1NFUl9BQ0NFU1NfVE9LRU5fVFRMOiBcIiR7QVVUSF9CUk9XU0VSX0FDQ0VTU19UT0tFTl9UVEw6LTE1bX1cIlxyXG4gICAgICBBVVRIX1JFRlJFU0hfVE9LRU5fVFRMOiBcIiR7QVVUSF9SRUZSRVNIX1RPS0VOX1RUTDotMWR9XCJcclxuICAgICAgQVVUSF9SRU1FTUJFUl9SRUZSRVNIX1RPS0VOX1RUTDogXCIke0FVVEhfUkVNRU1CRVJfUkVGUkVTSF9UT0tFTl9UVEw6LTMwZH1cIlxyXG4gICAgICBBVVRIX1JFRlJFU0hfQ09PS0lFX05BTUU6IFwiJHtBVVRIX1JFRlJFU0hfQ09PS0lFX05BTUU6LW5lYnVseW5rX3JlZnJlc2hfc2Vzc2lvbn1cIlxyXG4gICAgICBBVVRIX0NTUkZfQ09PS0lFX05BTUU6IFwiJHtBVVRIX0NTUkZfQ09PS0lFX05BTUU6LW5lYnVseW5rX2NzcmZfdG9rZW59XCJcclxuICAgICAgQVVUSF9DT09LSUVfRE9NQUlOOiBcIiR7QVVUSF9DT09LSUVfRE9NQUlOOi19XCJcclxuICAgICAgUkFURV9MSU1JVF9EUklWRVI6IFwiJHtSQVRFX0xJTUlUX0RSSVZFUjotcmVkaXN9XCJcclxuICAgICAgUEFTU0tFWV9SUF9JRDogXCIke1BBU1NLRVlfUlBfSUQ6P1BBU1NLRVlfUlBfSUQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQUlfUFJPVklERVJfQkFTRV9VUkxfQUxMT1dMSVNUOiBcIiR7QUlfUFJPVklERVJfQkFTRV9VUkxfQUxMT1dMSVNUOi19XCJcclxuICAgICAgUE9TVEdSRVNfSE9TVDogcG9zdGdyZXNcclxuICAgICAgUE9TVEdSRVNfUE9SVDogXCI1NDMyXCJcclxuICAgICAgUE9TVEdSRVNfREI6IFwiJHtQT1NUR1JFU19EQjotbmVidWx5bmt9XCJcclxuICAgICAgUE9TVEdSRVNfVVNFUjogXCIke1BPU1RHUkVTX1VTRVI6LW5lYnVseW5rfVwiXHJcbiAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiBcIiR7UE9TVEdSRVNfUEFTU1dPUkQ6P1BPU1RHUkVTX1BBU1NXT1JEIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIFJFRElTX0hPU1Q6IHJlZGlzXHJcbiAgICAgIFJFRElTX1BPUlQ6IFwiNjM3OVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfRU5EUE9JTlQ6IGh0dHA6Ly9nYXJhZ2U6MzkwMFxyXG4gICAgICBTVE9SQUdFX1MzX1BVQkxJQ19FTkRQT0lOVDogXCIke1NUT1JBR0VfUzNfUFVCTElDX0VORFBPSU5UOj9TVE9SQUdFX1MzX1BVQkxJQ19FTkRQT0lOVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBTVE9SQUdFX1MzX0FDQ0VTU19LRVk6IFwiJHtTVE9SQUdFX1MzX0FDQ0VTU19LRVk6P1NUT1JBR0VfUzNfQUNDRVNTX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBTVE9SQUdFX1MzX1NFQ1JFVF9LRVk6IFwiJHtTVE9SQUdFX1MzX1NFQ1JFVF9LRVk6P1NUT1JBR0VfUzNfU0VDUkVUX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBTVE9SQUdFX1MzX0JVQ0tFVDogXCIke1NUT1JBR0VfUzNfQlVDS0VUOi1uZWJ1bHluay1maWxlc31cIlxyXG4gICAgICBTVE9SQUdFX1MzX1JFR0lPTjogXCIke1NUT1JBR0VfUzNfUkVHSU9OOi0ke01FRVRJTkdfUkVDT1JESU5HU19TM19SRUdJT046LXVzLWVhc3QtMX19XCJcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX1BSRUZJWDogbWVldGluZy1yZWNvcmRpbmdzXHJcbiAgICAgIE1FRVRJTkdfUkVDT1JESU5HU19CVUNLRVQ6IFwiJHtTVE9SQUdFX1MzX0JVQ0tFVDotbmVidWx5bmstZmlsZXN9XCJcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX1MzX0VORFBPSU5UOiBodHRwOi8vZ2FyYWdlOjM5MDBcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX0VHUkVTU19TM19FTkRQT0lOVDogaHR0cDovL2dhcmFnZTozOTAwXHJcbiAgICAgIE1FRVRJTkdfUkVDT1JESU5HU19TM19SRUdJT046IFwiJHtNRUVUSU5HX1JFQ09SRElOR1NfUzNfUkVHSU9OOi0ke1NUT1JBR0VfUzNfUkVHSU9OOi11cy1lYXN0LTF9fVwiXHJcbiAgICAgIE1FRVRJTkdfVFJBTlNDUklQVF9XQUlUX1RJTUVPVVRfTVM6IFwiJHtNRUVUSU5HX1RSQU5TQ1JJUFRfV0FJVF9USU1FT1VUX01TOi0xMjAwMDAwfVwiXHJcbiAgICAgIExJVkVLSVRfSE9TVDogaHR0cDovL2xpdmVraXQ6Nzg4MFxyXG4gICAgICBMSVZFS0lUX1BVQkxJQ19VUkw6IFwiJHtMSVZFS0lUX1BVQkxJQ19VUkw6P0xJVkVLSVRfUFVCTElDX1VSTCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBMSVZFS0lUX0FQSV9LRVk6IFwiJHtMSVZFS0lUX0FQSV9LRVk6P0xJVkVLSVRfQVBJX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBMSVZFS0lUX0FQSV9TRUNSRVQ6IFwiJHtMSVZFS0lUX0FQSV9TRUNSRVQ6P0xJVkVLSVRfQVBJX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBLTElQWV9BUElfS0VZOiBcIiR7S0xJUFlfQVBJX0tFWTotfVwiXHJcbiAgICAgIFZBUElEX1BVQkxJQ19LRVk6IFwiJHtWQVBJRF9QVUJMSUNfS0VZOi19XCJcclxuICAgICAgVkFQSURfUFJJVkFURV9LRVk6IFwiJHtWQVBJRF9QUklWQVRFX0tFWTotfVwiXHJcbiAgICAgIFZBUElEX1NVQkpFQ1Q6IFwiJHtWQVBJRF9TVUJKRUNUOi1tYWlsdG86YWRtaW5AZXhhbXBsZS5jb219XCJcclxuICAgICAgU01UUF9IT1NUOiBcIiR7U01UUF9IT1NUOi19XCJcclxuICAgICAgU01UUF9QT1JUOiBcIiR7U01UUF9QT1JUOi01ODd9XCJcclxuICAgICAgU01UUF9TRUNVUkU6IFwiJHtTTVRQX1NFQ1VSRTotZmFsc2V9XCJcclxuICAgICAgU01UUF9JR05PUkVfVExTOiBcIiR7U01UUF9JR05PUkVfVExTOi1mYWxzZX1cIlxyXG4gICAgICBTTVRQX1VTRVI6IFwiJHtTTVRQX1VTRVI6LX1cIlxyXG4gICAgICBTTVRQX1BBU1M6IFwiJHtTTVRQX1BBU1M6LX1cIlxyXG4gICAgICBTTVRQX0ZST006IFwiJHtTTVRQX0ZST006LW5vcmVwbHlAbmVidWx5bmsubG9jYWx9XCJcclxuICAgICAgU01UUF9GUk9NX05BTUU6IFwiJHtTTVRQX0ZST01fTkFNRTotTmVidWx5bmt9XCJcclxuICAgICAgRlJPTlRFTkRfVVJMOiBcIiR7RlJPTlRFTkRfVVJMOj9GUk9OVEVORF9VUkwgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgVFJVU1RfUFJPWFk6IFwiJHtUUlVTVF9QUk9YWTotdHJ1ZX1cIlxyXG4gICAgICBORUJVTFlOS19CVUlMRF9TSEE6IFwiJHtORUJVTFlOS19CVUlMRF9TSEE6LX1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgLSBwb3N0Z3Jlc1xyXG4gICAgICAtIHJlZGlzXHJcbiAgICAgIC0gZ2FyYWdlXHJcbiAgICAgIC0gbGl2ZWtpdFxyXG4gICAgICAtIGxpdmVraXQtZWdyZXNzXHJcbiAgICBleHBvc2U6XHJcbiAgICAgIC0gXCIzMDMwXCJcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG52b2x1bWVzOlxyXG4gIG5lYnVseW5rX3Bvc3RncmVzX2RhdGE6XHJcbiAgbmVidWx5bmtfcmVkaXNfZGF0YTpcclxuICBuZWJ1bHlua19nYXJhZ2VfbWV0YTpcclxuICBuZWJ1bHlua19nYXJhZ2VfZGF0YTpcclxuIiwiY29uZmlnIjoiIyBWYWx1ZXMgaW4gW3ZhcmlhYmxlc10gYXJlIHJlc29sdmVkIG9uY2Ugd2hlbiBEb2twbG95IGltcG9ydHMgdGhlIHRlbXBsYXRlLlxyXG4jIFRoZSBnZW5lcmF0ZWQgdmFsdWVzIGFyZSB0aGVuIHN0b3JlZCBpbiB0aGUgQ29tcG9zZSBzZXJ2aWNlIGVudmlyb25tZW50LlxyXG5bdmFyaWFibGVzXVxyXG5mcm9udGVuZF9kb21haW4gPSBcIiR7ZG9tYWlufVwiXHJcbmJhY2tlbmRfZG9tYWluID0gXCIke2RvbWFpbn1cIlxyXG5saXZla2l0X2RvbWFpbiA9IFwiJHtkb21haW59XCJcclxuZ2FyYWdlX2RvbWFpbiA9IFwiJHtkb21haW59XCJcclxuXHJcbnBvc3RncmVzX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcbmdhcmFnZV9ycGNfc2VjcmV0ID0gXCIke2hhc2g6NjR9XCJcclxuc3RvcmFnZV9zM19hY2Nlc3Nfa2V5ID0gXCIke3Bhc3N3b3JkOjI0fVwiXHJcbnN0b3JhZ2VfczNfc2VjcmV0X2tleSA9IFwiJHtwYXNzd29yZDo2NH1cIlxyXG5qd3Rfc2VjcmV0ID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcbmFpX3NlY3JldF9rZXkgPSBcIiR7cGFzc3dvcmQ6NjR9XCJcclxuYXV0aF8yZmFfc2VjcmV0X2tleSA9IFwiJHtwYXNzd29yZDo2NH1cIlxyXG5saXZla2l0X2FwaV9rZXkgPSBcIiR7cGFzc3dvcmQ6MjR9XCJcclxubGl2ZWtpdF9hcGlfc2VjcmV0ID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcblxyXG4jIEdlbmVyYXRlZCBzc2xpcC5pbyBkb21haW5zIGFyZSBIVFRQLW9ubHkgdW50aWwgRG9rcGxveSBUTFMgaXMgY29uZmlndXJlZC5cbmZyb250ZW5kX3VybCA9IFwiaHR0cDovLyR7ZnJvbnRlbmRfZG9tYWlufVwiXG5iYWNrZW5kX3VybCA9IFwiaHR0cDovLyR7YmFja2VuZF9kb21haW59XCJcbmxpdmVraXRfcHVibGljX3VybCA9IFwiaHR0cDovLyR7bGl2ZWtpdF9kb21haW59XCJcbmdhcmFnZV9wdWJsaWNfdXJsID0gXCJodHRwOi8vJHtnYXJhZ2VfZG9tYWlufVwiXG5zb3VyY2VfcmVmID0gXCJzdGFibGVcIlxyXG5cclxuW2NvbmZpZ11cclxuaXNvbGF0ZWQgPSB0cnVlXHJcblxyXG5bW2NvbmZpZy5kb21haW5zXV1cclxuc2VydmljZU5hbWUgPSBcImZyb250ZW5kXCJcclxucG9ydCA9IDgwODBcclxuaG9zdCA9IFwiJHtmcm9udGVuZF9kb21haW59XCJcclxucGF0aCA9IFwiL1wiXHJcblxyXG5bW2NvbmZpZy5kb21haW5zXV1cclxuc2VydmljZU5hbWUgPSBcImJhY2tlbmRcIlxyXG5wb3J0ID0gMzAzMFxyXG5ob3N0ID0gXCIke2JhY2tlbmRfZG9tYWlufVwiXHJcbnBhdGggPSBcIi9cIlxyXG5cclxuW1tjb25maWcuZG9tYWluc11dXHJcbnNlcnZpY2VOYW1lID0gXCJsaXZla2l0XCJcclxucG9ydCA9IDc4ODBcclxuaG9zdCA9IFwiJHtsaXZla2l0X2RvbWFpbn1cIlxyXG5wYXRoID0gXCIvXCJcclxuXHJcbltbY29uZmlnLmRvbWFpbnNdXVxyXG5zZXJ2aWNlTmFtZSA9IFwiZ2FyYWdlXCJcclxucG9ydCA9IDM5MDBcclxuaG9zdCA9IFwiJHtnYXJhZ2VfZG9tYWlufVwiXHJcbnBhdGggPSBcIi9cIlxyXG5cclxuW2NvbmZpZy5lbnZdXG5OT0RFX0VOViA9IFwiZGV2ZWxvcG1lbnRcIlxuTkVCVUxZTktfU09VUkNFX1JFRiA9IFwiJHtzb3VyY2VfcmVmfVwiXG5QT1NUR1JFU19EQiA9IFwibmVidWx5bmtcIlxyXG5QT1NUR1JFU19VU0VSID0gXCJuZWJ1bHlua1wiXHJcblBPU1RHUkVTX1BBU1NXT1JEID0gXCIke3Bvc3RncmVzX3Bhc3N3b3JkfVwiXHJcbkdBUkFHRV9SUENfU0VDUkVUID0gXCIke2dhcmFnZV9ycGNfc2VjcmV0fVwiXHJcblNUT1JBR0VfUzNfQUNDRVNTX0tFWSA9IFwiJHtzdG9yYWdlX3MzX2FjY2Vzc19rZXl9XCJcclxuU1RPUkFHRV9TM19TRUNSRVRfS0VZID0gXCIke3N0b3JhZ2VfczNfc2VjcmV0X2tleX1cIlxyXG5TVE9SQUdFX1MzX0JVQ0tFVCA9IFwibmVidWx5bmstZmlsZXNcIlxyXG5TVE9SQUdFX1MzX1JFR0lPTiA9IFwidXMtZWFzdC0xXCJcclxuSldUX1NFQ1JFVCA9IFwiJHtqd3Rfc2VjcmV0fVwiXHJcbkFJX1NFQ1JFVF9LRVkgPSBcIiR7YWlfc2VjcmV0X2tleX1cIlxyXG5BVVRIXzJGQV9TRUNSRVRfS0VZID0gXCIke2F1dGhfMmZhX3NlY3JldF9rZXl9XCJcclxuTElWRUtJVF9BUElfS0VZID0gXCIke2xpdmVraXRfYXBpX2tleX1cIlxyXG5MSVZFS0lUX0FQSV9TRUNSRVQgPSBcIiR7bGl2ZWtpdF9hcGlfc2VjcmV0fVwiXHJcbkZST05URU5EX1VSTCA9IFwiJHtmcm9udGVuZF91cmx9XCJcclxuUEFTU0tFWV9SUF9JRCA9IFwiJHtmcm9udGVuZF9kb21haW59XCJcclxuVklURV9BUElfVVJMID0gXCIke2JhY2tlbmRfdXJsfVwiXHJcbkxJVkVLSVRfUFVCTElDX1VSTCA9IFwiJHtsaXZla2l0X3B1YmxpY191cmx9XCJcclxuU1RPUkFHRV9TM19QVUJMSUNfRU5EUE9JTlQgPSBcIiR7Z2FyYWdlX3B1YmxpY191cmx9XCJcblxuIyBPcHRpb25hbCBpbnRlZ3JhdGlvbnMuIExlYXZlIGluc3RhbmNlLXNwZWNpZmljIHZhbHVlcyBlbXB0eSB1bnRpbCBjb25maWd1cmVkLlxuS0xJUFlfQVBJX0tFWSA9IFwiXCJcblZBUElEX1BVQkxJQ19LRVkgPSBcIlwiXG5WQVBJRF9QUklWQVRFX0tFWSA9IFwiXCJcblZBUElEX1NVQkpFQ1QgPSBcIlwiXG5cblNNVFBfSE9TVCA9IFwiXCJcblNNVFBfUE9SVCA9IFwiNTg3XCJcblNNVFBfU0VDVVJFID0gXCJmYWxzZVwiXG5TTVRQX0lHTk9SRV9UTFMgPSBcImZhbHNlXCJcblNNVFBfVVNFUiA9IFwiXCJcblNNVFBfUEFTUyA9IFwiXCJcblNNVFBfRlJPTSA9IFwiXCJcblNNVFBfRlJPTV9OQU1FID0gXCJOZWJ1bHlua1wiXG5cbiMgT3B0aW9uYWwgb3BlcmF0aW9uYWwgYW5kIHNlY3VyaXR5IHNldHRpbmdzLlxuQVVUSEVOVElDQVRJT05fUkFURV9MSU1JVF9JUF9MSU1JVCA9IFwiXCJcbkFVVEhfQlJPV1NFUl9BQ0NFU1NfVE9LRU5fVFRMID0gXCIxNW1cIlxuQVVUSF9SRUZSRVNIX1RPS0VOX1RUTCA9IFwiMWRcIlxuQVVUSF9SRU1FTUJFUl9SRUZSRVNIX1RPS0VOX1RUTCA9IFwiMzBkXCJcbkFVVEhfUkVGUkVTSF9DT09LSUVfTkFNRSA9IFwibmVidWx5bmtfcmVmcmVzaF9zZXNzaW9uXCJcbkFVVEhfQ1NSRl9DT09LSUVfTkFNRSA9IFwibmVidWx5bmtfY3NyZl90b2tlblwiXG5BVVRIX0NPT0tJRV9ET01BSU4gPSBcIlwiXG5SQVRFX0xJTUlUX0RSSVZFUiA9IFwicmVkaXNcIlxuQUlfUFJPVklERVJfQkFTRV9VUkxfQUxMT1dMSVNUID0gXCJcIlxuTE9HX0xFVkVMID0gXCJpbmZvXCJcbk1BWF9GSUxFX1NJWkUgPSBcIjI2MjE0NDAwXCJcbk1FRVRJTkdfVFJBTlNDUklQVF9XQUlUX1RJTUVPVVRfTVMgPSBcIjEyMDAwMFwiXG5UUlVTVF9QUk9YWSA9IFwidHJ1ZVwiXG5ORUJVTFlOS19CVUlMRF9TSEEgPSBcIlwiXG4ifQ== +eyJjb21wb3NlIjoiIyBkb2twbG95OiBhbGxvdy1ob3N0LXBvcnRzXHJcbiMgTGl2ZUtpdCByZXF1aXJlcyBwdWJsaWMgVENQL1VEUCBtZWRpYSBwb3J0cyA3ODgxIGFuZCA3ODgyIGZvciBXZWJSVEMuXHJcbiMgTmVidWx5bmsgRG9rcGxveSB0ZW1wbGF0ZS4gSW1wb3J0IHRoZSBnZW5lcmF0ZWQgaW1wb3J0LmJhc2U2NCBmaWxlIHRocm91Z2hcclxuIyBDb21wb3NlIC0+IEFkdmFuY2VkIC0+IEltcG9ydC4gRG9rcGxveSBvd25zIHJvdXRpbmcgYW5kIHRoZSBpc29sYXRlZCBuZXR3b3JrLlxyXG52ZXJzaW9uOiBcIjMuOFwiXHJcbnNlcnZpY2VzOlxyXG4gIGZyb250ZW5kOlxyXG4gICAgYnVpbGQ6XHJcbiAgICAgIGNvbnRleHQ6IFwiaHR0cHM6Ly9naXRodWIuY29tL3NhcGllbnRvcml1cy9OZWJ1bHluay5naXQjJHtORUJVTFlOS19TT1VSQ0VfUkVGOi1zdGFibGV9XCJcclxuICAgICAgZG9ja2VyZmlsZTogZnJvbnRlbmQvRG9ja2VyZmlsZVxyXG4gICAgICBhcmdzOlxyXG4gICAgICAgIE5PREVfSU1BR0U6IFwiJHtORUJVTFlOS19OT0RFX0lNQUdFOi1ub2RlOjIyLjIzLjEtYWxwaW5lMy4yNH1cIlxyXG4gICAgICAgIE5HSU5YX0lNQUdFOiBcIiR7TkVCVUxZTktfTkdJTlhfSU1BR0U6LW5naW54aW5jL25naW54LXVucHJpdmlsZWdlZDoxLjMxLWFscGluZTMuMjNAc2hhMjU2OjYzMjAwMjBjN2RhODcxNGZlYWI1MjRlMDJjMDhjNWExOTU4Njc1YzRlNjg3MDBlOTNhMmZkODk3MGIwNjU3ODZ9XCJcclxuICAgICAgICAjIFRoZXNlIFVSTHMgYXJlIGJha2VkIGludG8gdGhlIGJyb3dzZXIgYnVuZGxlLlxyXG4gICAgICAgIFZJVEVfQVBJX1VSTDogXCIke1ZJVEVfQVBJX1VSTDo/VklURV9BUElfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgICAgVklURV9MSVZFS0lUX1VSTDogXCIke0xJVkVLSVRfUFVCTElDX1VSTDo/TElWRUtJVF9QVUJMSUNfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgICAgVklURV9WQVBJRF9QVUJMSUNfS0VZOiBcIiR7VkFQSURfUFVCTElDX0tFWTotfVwiXHJcbiAgICAgICAgVklURV9BVVRIX0NTUkZfQ09PS0lFX05BTUU6IFwiJHtBVVRIX0NTUkZfQ09PS0lFX05BTUU6LW5lYnVseW5rX2NzcmZfdG9rZW59XCJcclxuICAgIGRlcGVuZHNfb246XHJcbiAgICAgIC0gYmFja2VuZFxyXG4gICAgZXhwb3NlOlxyXG4gICAgICAtIFwiODA4MFwiXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICBwb3N0Z3JlczpcclxuICAgIGltYWdlOiBcIiR7TkVCVUxZTktfUE9TVEdSRVNfSU1BR0U6LXBvc3RncmVzOjE3LWFscGluZTMuMjRAc2hhMjU2Ojc0MmY0MGVhMjBiOWZmMmZmMzFkYjU0NThkMTI3NDUyOTg4YTIxNjRkZjllMTc0NDFlMTkxZjNiNzIyNTIxOTN9XCJcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBQT1NUR1JFU19EQjogXCIke1BPU1RHUkVTX0RCOi1uZWJ1bHlua31cIlxyXG4gICAgICBQT1NUR1JFU19VU0VSOiBcIiR7UE9TVEdSRVNfVVNFUjotbmVidWx5bmt9XCJcclxuICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IFwiJHtQT1NUR1JFU19QQVNTV09SRDo/UE9TVEdSRVNfUEFTU1dPUkQgbXVzdCBiZSBzZXR9XCJcclxuICAgIHZvbHVtZXM6XHJcbiAgICAgIC0gbmVidWx5bmtfcG9zdGdyZXNfZGF0YTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGFcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIHJlZGlzOlxyXG4gICAgaW1hZ2U6IFwiJHtORUJVTFlOS19SRURJU19JTUFHRTotcmVkaXM6Ny40LjctYWxwaW5lMy4yMX1cIlxyXG4gICAgdm9sdW1lczpcclxuICAgICAgLSBuZWJ1bHlua19yZWRpc19kYXRhOi9kYXRhXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICAjIFByZXBhcmUgbmFtZWQgR2FyYWdlIHZvbHVtZXMgZm9yIHRoZSB1bnByaXZpbGVnZWQgR2FyYWdlIHByb2Nlc3MuXHJcbiAgZ2FyYWdlLXZvbHVtZS1pbml0OlxyXG4gICAgaW1hZ2U6IGFscGluZTozLjIxLjVcclxuICAgIHVzZXI6IFwiMDowXCJcclxuICAgIGNvbW1hbmQ6IFtcInNoXCIsIFwiLWVjXCIsIFwiY2hvd24gLVIgNjU1MzI6NjU1MzIgL3Zhci9saWIvZ2FyYWdlL21ldGEgL3Zhci9saWIvZ2FyYWdlL2RhdGFcIl1cclxuICAgIHZvbHVtZXM6XHJcbiAgICAgIC0gbmVidWx5bmtfZ2FyYWdlX21ldGE6L3Zhci9saWIvZ2FyYWdlL21ldGFcclxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfZGF0YTovdmFyL2xpYi9nYXJhZ2UvZGF0YVxyXG4gICAgcmVzdGFydDogXCJub1wiXHJcblxyXG4gIGdhcmFnZTpcclxuICAgIGJ1aWxkOlxyXG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXHJcbiAgICAgIGRvY2tlcmZpbGU6IGdhcmFnZS5Eb2NrZXJmaWxlXHJcbiAgICAgIGFyZ3M6XHJcbiAgICAgICAgR0FSQUdFX0lNQUdFOiBcIiR7TkVCVUxZTktfR0FSQUdFX0lNQUdFOi1keGZscnMvZ2FyYWdlOnYyLjMuMH1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgZ2FyYWdlLXZvbHVtZS1pbml0OlxyXG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XHJcbiAgICBjb21tYW5kOiAvZ2FyYWdlIHNlcnZlciAtLXNpbmdsZS1ub2RlIC0tZGVmYXVsdC1idWNrZXRcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBHQVJBR0VfUlBDX1NFQ1JFVDogXCIke0dBUkFHRV9SUENfU0VDUkVUOj9HQVJBR0VfUlBDX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBHQVJBR0VfREVGQVVMVF9BQ0NFU1NfS0VZOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgR0FSQUdFX0RFRkFVTFRfU0VDUkVUX0tFWTogXCIke1NUT1JBR0VfUzNfU0VDUkVUX0tFWTo/U1RPUkFHRV9TM19TRUNSRVRfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIEdBUkFHRV9ERUZBVUxUX0JVQ0tFVDogXCIke1NUT1JBR0VfUzNfQlVDS0VUOi1uZWJ1bHluay1maWxlc31cIlxyXG4gICAgdm9sdW1lczpcclxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfbWV0YTovdmFyL2xpYi9nYXJhZ2UvbWV0YVxyXG4gICAgICAtIG5lYnVseW5rX2dhcmFnZV9kYXRhOi92YXIvbGliL2dhcmFnZS9kYXRhXHJcbiAgICBleHBvc2U6XHJcbiAgICAgIC0gXCIzOTAwXCJcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIGxpdmVraXQ6XHJcbiAgICBidWlsZDpcclxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxyXG4gICAgICBkb2NrZXJmaWxlOiBsaXZla2l0LkRvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBMSVZFS0lUX1NFUlZFUl9JTUFHRTogXCIke05FQlVMWU5LX0xJVkVLSVRfU0VSVkVSX0lNQUdFOi1saXZla2l0L2xpdmVraXQtc2VydmVyOnYxLjEzLjR9XCJcclxuICAgIGNvbW1hbmQ6IC0tY29uZmlnIC9saXZla2l0LnlhbWxcclxuICAgIGRlcGVuZHNfb246XHJcbiAgICAgIC0gcmVkaXNcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBMSVZFS0lUX0tFWVM6IFwiJHtMSVZFS0lUX0FQSV9LRVk6P0xJVkVLSVRfQVBJX0tFWSBtdXN0IGJlIHNldH06ICR7TElWRUtJVF9BUElfU0VDUkVUOj9MSVZFS0lUX0FQSV9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgIGV4cG9zZTpcclxuICAgICAgLSBcIjc4ODBcIlxyXG4gICAgcG9ydHM6XHJcbiAgICAgIC0gXCI3ODgxOjc4ODFcIlxyXG4gICAgICAtIFwiNzg4Mjo3ODgyL3VkcFwiXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICBsaXZla2l0LWVncmVzczpcclxuICAgIGJ1aWxkOlxyXG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXHJcbiAgICAgIGRvY2tlcmZpbGU6IGxpdmVraXQtZWdyZXNzLkRvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBMSVZFS0lUX0VHUkVTU19JTUFHRTogXCIke05FQlVMWU5LX0xJVkVLSVRfRUdSRVNTX0lNQUdFOi1saXZla2l0L2VncmVzczp2MS4xMy4wfVwiXHJcbiAgICBjb21tYW5kOiAtLWNvbmZpZyAvbGl2ZWtpdC1lZ3Jlc3MueWFtbFxyXG4gICAgZW52aXJvbm1lbnQ6XHJcbiAgICAgIEVHUkVTU19DT05GSUdfRklMRTogL2xpdmVraXQtZWdyZXNzLnlhbWxcclxuICAgICAgTElWRUtJVF9BUElfS0VZOiBcIiR7TElWRUtJVF9BUElfS0VZOj9MSVZFS0lUX0FQSV9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgTElWRUtJVF9BUElfU0VDUkVUOiBcIiR7TElWRUtJVF9BUElfU0VDUkVUOj9MSVZFS0lUX0FQSV9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgTElWRUtJVF9XU19VUkw6IHdzOi8vbGl2ZWtpdDo3ODgwXHJcbiAgICAgIEFXU19BQ0NFU1NfS0VZX0lEOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZOiBcIiR7U1RPUkFHRV9TM19TRUNSRVRfS0VZOj9TVE9SQUdFX1MzX1NFQ1JFVF9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVdTX0RFRkFVTFRfUkVHSU9OOiBcIiR7U1RPUkFHRV9TM19SRUdJT046LSR7TUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjotdXMtZWFzdC0xfX1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgLSBsaXZla2l0XHJcbiAgICAgIC0gcmVkaXNcclxuICAgICAgLSBnYXJhZ2VcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIGJhY2tlbmQ6XHJcbiAgICBidWlsZDpcclxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxyXG4gICAgICBkb2NrZXJmaWxlOiBiYWNrZW5kL0RvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBOT0RFX0lNQUdFOiBcIiR7TkVCVUxZTktfTk9ERV9JTUFHRTotbm9kZToyMi4yMy4xLWFscGluZTMuMjR9XCJcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBOT0RFX0VOVjogXCIke05PREVfRU5WOi1kZXZlbG9wbWVudH1cIlxuICAgICAgSldUX1NFQ1JFVDogXCIke0pXVF9TRUNSRVQ6P0pXVF9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQUlfU0VDUkVUX0tFWTogXCIke0FJX1NFQ1JFVF9LRVk6P0FJX1NFQ1JFVF9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVVUSF8yRkFfU0VDUkVUX0tFWTogXCIke0FVVEhfMkZBX1NFQ1JFVF9LRVk6LX1cIlxyXG4gICAgICBCQUNLRU5EX1BPUlQ6IFwiJHtCQUNLRU5EX1BPUlQ6LTMwMzB9XCJcclxuICAgICAgTE9HX0xFVkVMOiBcIiR7TE9HX0xFVkVMOi1pbmZvfVwiXHJcbiAgICAgIE1BWF9GSUxFX1NJWkU6IFwiJHtNQVhfRklMRV9TSVpFOi0yNjIxNDQwMH1cIlxyXG4gICAgICBBVVRIRU5USUNBVElPTl9SQVRFX0xJTUlUX0lQX0xJTUlUOiBcIiR7QVVUSEVOVElDQVRJT05fUkFURV9MSU1JVF9JUF9MSU1JVDotfVwiXHJcbiAgICAgIEFVVEhfQlJPV1NFUl9BQ0NFU1NfVE9LRU5fVFRMOiBcIiR7QVVUSF9CUk9XU0VSX0FDQ0VTU19UT0tFTl9UVEw6LTE1bX1cIlxyXG4gICAgICBBVVRIX1JFRlJFU0hfVE9LRU5fVFRMOiBcIiR7QVVUSF9SRUZSRVNIX1RPS0VOX1RUTDotMWR9XCJcclxuICAgICAgQVVUSF9SRU1FTUJFUl9SRUZSRVNIX1RPS0VOX1RUTDogXCIke0FVVEhfUkVNRU1CRVJfUkVGUkVTSF9UT0tFTl9UVEw6LTMwZH1cIlxyXG4gICAgICBBVVRIX1JFRlJFU0hfQ09PS0lFX05BTUU6IFwiJHtBVVRIX1JFRlJFU0hfQ09PS0lFX05BTUU6LW5lYnVseW5rX3JlZnJlc2hfc2Vzc2lvbn1cIlxyXG4gICAgICBBVVRIX0NTUkZfQ09PS0lFX05BTUU6IFwiJHtBVVRIX0NTUkZfQ09PS0lFX05BTUU6LW5lYnVseW5rX2NzcmZfdG9rZW59XCJcclxuICAgICAgQVVUSF9DT09LSUVfRE9NQUlOOiBcIiR7QVVUSF9DT09LSUVfRE9NQUlOOi19XCJcclxuICAgICAgUkFURV9MSU1JVF9EUklWRVI6IFwiJHtSQVRFX0xJTUlUX0RSSVZFUjotcmVkaXN9XCJcclxuICAgICAgUEFTU0tFWV9SUF9JRDogXCIke1BBU1NLRVlfUlBfSUQ6P1BBU1NLRVlfUlBfSUQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQUlfUFJPVklERVJfQkFTRV9VUkxfQUxMT1dMSVNUOiBcIiR7QUlfUFJPVklERVJfQkFTRV9VUkxfQUxMT1dMSVNUOi19XCJcclxuICAgICAgUE9TVEdSRVNfSE9TVDogcG9zdGdyZXNcclxuICAgICAgUE9TVEdSRVNfUE9SVDogXCI1NDMyXCJcclxuICAgICAgUE9TVEdSRVNfREI6IFwiJHtQT1NUR1JFU19EQjotbmVidWx5bmt9XCJcclxuICAgICAgUE9TVEdSRVNfVVNFUjogXCIke1BPU1RHUkVTX1VTRVI6LW5lYnVseW5rfVwiXHJcbiAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiBcIiR7UE9TVEdSRVNfUEFTU1dPUkQ6P1BPU1RHUkVTX1BBU1NXT1JEIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIFJFRElTX0hPU1Q6IHJlZGlzXHJcbiAgICAgIFJFRElTX1BPUlQ6IFwiNjM3OVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfRU5EUE9JTlQ6IGh0dHA6Ly9nYXJhZ2U6MzkwMFxyXG4gICAgICBTVE9SQUdFX1MzX1BVQkxJQ19FTkRQT0lOVDogXCIke1NUT1JBR0VfUzNfUFVCTElDX0VORFBPSU5UOj9TVE9SQUdFX1MzX1BVQkxJQ19FTkRQT0lOVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBTVE9SQUdFX1MzX0FDQ0VTU19LRVk6IFwiJHtTVE9SQUdFX1MzX0FDQ0VTU19LRVk6P1NUT1JBR0VfUzNfQUNDRVNTX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBTVE9SQUdFX1MzX1NFQ1JFVF9LRVk6IFwiJHtTVE9SQUdFX1MzX1NFQ1JFVF9LRVk6P1NUT1JBR0VfUzNfU0VDUkVUX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBTVE9SQUdFX1MzX0JVQ0tFVDogXCIke1NUT1JBR0VfUzNfQlVDS0VUOi1uZWJ1bHluay1maWxlc31cIlxyXG4gICAgICBTVE9SQUdFX1MzX1JFR0lPTjogXCIke1NUT1JBR0VfUzNfUkVHSU9OOi0ke01FRVRJTkdfUkVDT1JESU5HU19TM19SRUdJT046LXVzLWVhc3QtMX19XCJcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX1BSRUZJWDogbWVldGluZy1yZWNvcmRpbmdzXHJcbiAgICAgIE1FRVRJTkdfUkVDT1JESU5HU19CVUNLRVQ6IFwiJHtTVE9SQUdFX1MzX0JVQ0tFVDotbmVidWx5bmstZmlsZXN9XCJcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX1MzX0VORFBPSU5UOiBodHRwOi8vZ2FyYWdlOjM5MDBcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX0VHUkVTU19TM19FTkRQT0lOVDogaHR0cDovL2dhcmFnZTozOTAwXHJcbiAgICAgIE1FRVRJTkdfUkVDT1JESU5HU19TM19SRUdJT046IFwiJHtNRUVUSU5HX1JFQ09SRElOR1NfUzNfUkVHSU9OOi0ke1NUT1JBR0VfUzNfUkVHSU9OOi11cy1lYXN0LTF9fVwiXHJcbiAgICAgIE1FRVRJTkdfVFJBTlNDUklQVF9XQUlUX1RJTUVPVVRfTVM6IFwiJHtNRUVUSU5HX1RSQU5TQ1JJUFRfV0FJVF9USU1FT1VUX01TOi0xMjAwMDAwfVwiXHJcbiAgICAgIExJVkVLSVRfSE9TVDogaHR0cDovL2xpdmVraXQ6Nzg4MFxyXG4gICAgICBMSVZFS0lUX1BVQkxJQ19VUkw6IFwiJHtMSVZFS0lUX1BVQkxJQ19VUkw6P0xJVkVLSVRfUFVCTElDX1VSTCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBMSVZFS0lUX0FQSV9LRVk6IFwiJHtMSVZFS0lUX0FQSV9LRVk6P0xJVkVLSVRfQVBJX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBMSVZFS0lUX0FQSV9TRUNSRVQ6IFwiJHtMSVZFS0lUX0FQSV9TRUNSRVQ6P0xJVkVLSVRfQVBJX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBLTElQWV9BUElfS0VZOiBcIiR7S0xJUFlfQVBJX0tFWTotfVwiXHJcbiAgICAgIFZBUElEX1BVQkxJQ19LRVk6IFwiJHtWQVBJRF9QVUJMSUNfS0VZOi19XCJcclxuICAgICAgVkFQSURfUFJJVkFURV9LRVk6IFwiJHtWQVBJRF9QUklWQVRFX0tFWTotfVwiXHJcbiAgICAgIFZBUElEX1NVQkpFQ1Q6IFwiJHtWQVBJRF9TVUJKRUNUOi1tYWlsdG86YWRtaW5AZXhhbXBsZS5jb219XCJcclxuICAgICAgU01UUF9IT1NUOiBcIiR7U01UUF9IT1NUOi19XCJcclxuICAgICAgU01UUF9QT1JUOiBcIiR7U01UUF9QT1JUOi01ODd9XCJcclxuICAgICAgU01UUF9TRUNVUkU6IFwiJHtTTVRQX1NFQ1VSRTotZmFsc2V9XCJcclxuICAgICAgU01UUF9JR05PUkVfVExTOiBcIiR7U01UUF9JR05PUkVfVExTOi1mYWxzZX1cIlxyXG4gICAgICBTTVRQX1VTRVI6IFwiJHtTTVRQX1VTRVI6LX1cIlxyXG4gICAgICBTTVRQX1BBU1M6IFwiJHtTTVRQX1BBU1M6LX1cIlxyXG4gICAgICBTTVRQX0ZST006IFwiJHtTTVRQX0ZST006LW5vcmVwbHlAbmVidWx5bmsubG9jYWx9XCJcclxuICAgICAgU01UUF9GUk9NX05BTUU6IFwiJHtTTVRQX0ZST01fTkFNRTotTmVidWx5bmt9XCJcclxuICAgICAgRlJPTlRFTkRfVVJMOiBcIiR7RlJPTlRFTkRfVVJMOj9GUk9OVEVORF9VUkwgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgVFJVU1RfUFJPWFk6IFwiJHtUUlVTVF9QUk9YWTotdHJ1ZX1cIlxyXG4gICAgICBORUJVTFlOS19CVUlMRF9TSEE6IFwiJHtORUJVTFlOS19CVUlMRF9TSEE6LX1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgLSBwb3N0Z3Jlc1xyXG4gICAgICAtIHJlZGlzXHJcbiAgICAgIC0gZ2FyYWdlXHJcbiAgICAgIC0gbGl2ZWtpdFxyXG4gICAgICAtIGxpdmVraXQtZWdyZXNzXHJcbiAgICBleHBvc2U6XHJcbiAgICAgIC0gXCIzMDMwXCJcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG52b2x1bWVzOlxyXG4gIG5lYnVseW5rX3Bvc3RncmVzX2RhdGE6XHJcbiAgbmVidWx5bmtfcmVkaXNfZGF0YTpcclxuICBuZWJ1bHlua19nYXJhZ2VfbWV0YTpcclxuICBuZWJ1bHlua19nYXJhZ2VfZGF0YTpcclxuIiwiY29uZmlnIjoiIyBWYWx1ZXMgaW4gW3ZhcmlhYmxlc10gYXJlIHJlc29sdmVkIG9uY2Ugd2hlbiBEb2twbG95IGltcG9ydHMgdGhlIHRlbXBsYXRlLlxyXG4jIFRoZSBnZW5lcmF0ZWQgdmFsdWVzIGFyZSB0aGVuIHN0b3JlZCBpbiB0aGUgQ29tcG9zZSBzZXJ2aWNlIGVudmlyb25tZW50LlxyXG5bdmFyaWFibGVzXVxyXG5mcm9udGVuZF9kb21haW4gPSBcIiR7ZG9tYWlufVwiXHJcbmJhY2tlbmRfZG9tYWluID0gXCIke2RvbWFpbn1cIlxyXG5saXZla2l0X2RvbWFpbiA9IFwiJHtkb21haW59XCJcclxuZ2FyYWdlX2RvbWFpbiA9IFwiJHtkb21haW59XCJcclxuXHJcbnBvc3RncmVzX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcbmdhcmFnZV9ycGNfc2VjcmV0ID0gXCIke2hhc2g6NjR9XCJcclxuc3RvcmFnZV9zM19hY2Nlc3Nfa2V5ID0gXCIke3Bhc3N3b3JkOjI0fVwiXHJcbnN0b3JhZ2VfczNfc2VjcmV0X2tleSA9IFwiJHtwYXNzd29yZDo2NH1cIlxyXG5qd3Rfc2VjcmV0ID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcbmFpX3NlY3JldF9rZXkgPSBcIiR7cGFzc3dvcmQ6NjR9XCJcclxuYXV0aF8yZmFfc2VjcmV0X2tleSA9IFwiJHtwYXNzd29yZDo2NH1cIlxyXG5saXZla2l0X2FwaV9rZXkgPSBcIiR7cGFzc3dvcmQ6MjR9XCJcclxubGl2ZWtpdF9hcGlfc2VjcmV0ID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcblxyXG4jIEdlbmVyYXRlZCBzc2xpcC5pbyBkb21haW5zIGFyZSBIVFRQLW9ubHkgdW50aWwgRG9rcGxveSBUTFMgaXMgY29uZmlndXJlZC5cclxuZnJvbnRlbmRfdXJsID0gXCJodHRwOi8vJHtmcm9udGVuZF9kb21haW59XCJcclxuYmFja2VuZF91cmwgPSBcImh0dHA6Ly8ke2JhY2tlbmRfZG9tYWlufVwiXHJcbmxpdmVraXRfcHVibGljX3VybCA9IFwiaHR0cDovLyR7bGl2ZWtpdF9kb21haW59XCJcclxuZ2FyYWdlX3B1YmxpY191cmwgPSBcImh0dHA6Ly8ke2dhcmFnZV9kb21haW59XCJcclxuc291cmNlX3JlZiA9IFwic3RhYmxlXCJcclxuXHJcbltjb25maWddXHJcbmlzb2xhdGVkID0gdHJ1ZVxyXG5cclxuW1tjb25maWcuZG9tYWluc11dXHJcbnNlcnZpY2VOYW1lID0gXCJmcm9udGVuZFwiXHJcbnBvcnQgPSA4MDgwXHJcbmhvc3QgPSBcIiR7ZnJvbnRlbmRfZG9tYWlufVwiXHJcbnBhdGggPSBcIi9cIlxyXG5cclxuW1tjb25maWcuZG9tYWluc11dXHJcbnNlcnZpY2VOYW1lID0gXCJiYWNrZW5kXCJcclxucG9ydCA9IDMwMzBcclxuaG9zdCA9IFwiJHtiYWNrZW5kX2RvbWFpbn1cIlxyXG5wYXRoID0gXCIvXCJcclxuXHJcbltbY29uZmlnLmRvbWFpbnNdXVxyXG5zZXJ2aWNlTmFtZSA9IFwibGl2ZWtpdFwiXHJcbnBvcnQgPSA3ODgwXHJcbmhvc3QgPSBcIiR7bGl2ZWtpdF9kb21haW59XCJcclxucGF0aCA9IFwiL1wiXHJcblxyXG5bW2NvbmZpZy5kb21haW5zXV1cclxuc2VydmljZU5hbWUgPSBcImdhcmFnZVwiXHJcbnBvcnQgPSAzOTAwXHJcbmhvc3QgPSBcIiR7Z2FyYWdlX2RvbWFpbn1cIlxyXG5wYXRoID0gXCIvXCJcclxuXHJcbltjb25maWcuZW52XVxyXG5OT0RFX0VOViA9IFwiZGV2ZWxvcG1lbnRcIlxyXG5ORUJVTFlOS19TT1VSQ0VfUkVGID0gXCIke3NvdXJjZV9yZWZ9XCJcclxuUE9TVEdSRVNfREIgPSBcIm5lYnVseW5rXCJcclxuUE9TVEdSRVNfVVNFUiA9IFwibmVidWx5bmtcIlxyXG5QT1NUR1JFU19QQVNTV09SRCA9IFwiJHtwb3N0Z3Jlc19wYXNzd29yZH1cIlxyXG5HQVJBR0VfUlBDX1NFQ1JFVCA9IFwiJHtnYXJhZ2VfcnBjX3NlY3JldH1cIlxyXG5TVE9SQUdFX1MzX0FDQ0VTU19LRVkgPSBcIiR7c3RvcmFnZV9zM19hY2Nlc3Nfa2V5fVwiXHJcblNUT1JBR0VfUzNfU0VDUkVUX0tFWSA9IFwiJHtzdG9yYWdlX3MzX3NlY3JldF9rZXl9XCJcclxuU1RPUkFHRV9TM19CVUNLRVQgPSBcIm5lYnVseW5rLWZpbGVzXCJcclxuU1RPUkFHRV9TM19SRUdJT04gPSBcInVzLWVhc3QtMVwiXHJcbkpXVF9TRUNSRVQgPSBcIiR7and0X3NlY3JldH1cIlxyXG5BSV9TRUNSRVRfS0VZID0gXCIke2FpX3NlY3JldF9rZXl9XCJcclxuQVVUSF8yRkFfU0VDUkVUX0tFWSA9IFwiJHthdXRoXzJmYV9zZWNyZXRfa2V5fVwiXHJcbkxJVkVLSVRfQVBJX0tFWSA9IFwiJHtsaXZla2l0X2FwaV9rZXl9XCJcclxuTElWRUtJVF9BUElfU0VDUkVUID0gXCIke2xpdmVraXRfYXBpX3NlY3JldH1cIlxyXG5GUk9OVEVORF9VUkwgPSBcIiR7ZnJvbnRlbmRfdXJsfVwiXHJcblBBU1NLRVlfUlBfSUQgPSBcIiR7ZnJvbnRlbmRfZG9tYWlufVwiXHJcblZJVEVfQVBJX1VSTCA9IFwiJHtiYWNrZW5kX3VybH1cIlxyXG5MSVZFS0lUX1BVQkxJQ19VUkwgPSBcIiR7bGl2ZWtpdF9wdWJsaWNfdXJsfVwiXHJcblNUT1JBR0VfUzNfUFVCTElDX0VORFBPSU5UID0gXCIke2dhcmFnZV9wdWJsaWNfdXJsfVwiXHJcblxyXG4jIE9wdGlvbmFsIGludGVncmF0aW9ucy4gTGVhdmUgaW5zdGFuY2Utc3BlY2lmaWMgdmFsdWVzIGVtcHR5IHVudGlsIGNvbmZpZ3VyZWQuXHJcbktMSVBZX0FQSV9LRVkgPSBcIlwiXHJcblZBUElEX1BVQkxJQ19LRVkgPSBcIlwiXHJcblZBUElEX1BSSVZBVEVfS0VZID0gXCJcIlxyXG5WQVBJRF9TVUJKRUNUID0gXCJcIlxyXG5cclxuU01UUF9IT1NUID0gXCJcIlxyXG5TTVRQX1BPUlQgPSBcIjU4N1wiXHJcblNNVFBfU0VDVVJFID0gXCJmYWxzZVwiXHJcblNNVFBfSUdOT1JFX1RMUyA9IFwiZmFsc2VcIlxyXG5TTVRQX1VTRVIgPSBcIlwiXHJcblNNVFBfUEFTUyA9IFwiXCJcclxuU01UUF9GUk9NID0gXCJcIlxyXG5TTVRQX0ZST01fTkFNRSA9IFwiTmVidWx5bmtcIlxyXG5cclxuIyBPcHRpb25hbCBvcGVyYXRpb25hbCBhbmQgc2VjdXJpdHkgc2V0dGluZ3MuXHJcbkFVVEhFTlRJQ0FUSU9OX1JBVEVfTElNSVRfSVBfTElNSVQgPSBcIlwiXHJcbkFVVEhfQlJPV1NFUl9BQ0NFU1NfVE9LRU5fVFRMID0gXCIxNW1cIlxyXG5BVVRIX1JFRlJFU0hfVE9LRU5fVFRMID0gXCIxZFwiXHJcbkFVVEhfUkVNRU1CRVJfUkVGUkVTSF9UT0tFTl9UVEwgPSBcIjMwZFwiXHJcbkFVVEhfUkVGUkVTSF9DT09LSUVfTkFNRSA9IFwibmVidWx5bmtfcmVmcmVzaF9zZXNzaW9uXCJcclxuQVVUSF9DU1JGX0NPT0tJRV9OQU1FID0gXCJuZWJ1bHlua19jc3JmX3Rva2VuXCJcclxuQVVUSF9DT09LSUVfRE9NQUlOID0gXCJcIlxyXG5SQVRFX0xJTUlUX0RSSVZFUiA9IFwicmVkaXNcIlxyXG5BSV9QUk9WSURFUl9CQVNFX1VSTF9BTExPV0xJU1QgPSBcIlwiXHJcbkxPR19MRVZFTCA9IFwiaW5mb1wiXHJcbk1BWF9GSUxFX1NJWkUgPSBcIjI2MjE0NDAwXCJcclxuTUVFVElOR19UUkFOU0NSSVBUX1dBSVRfVElNRU9VVF9NUyA9IFwiMTIwMDAwMFwiXHJcblRSVVNUX1BST1hZID0gXCJ0cnVlXCJcclxuTkVCVUxZTktfQlVJTERfU0hBID0gXCJcIlxyXG4ifQ== From 5c84dd7fea69f71ae53b1d7fd697314d1dc932e7 Mon Sep 17 00:00:00 2001 From: Alexander Zerling Date: Sun, 16 Aug 2026 02:22:26 +0200 Subject: [PATCH 5/7] Update Nebulynk version to stable and increase meeting transcript wait timeout - Changed version from 0.4.0 to stable in meta.json - Increased MEETING_TRANSCRIPT_WAIT_TIMEOUT_MS from 1200000 to 1800000 in template.toml --- blueprints/nebulynk/docker-compose.yml | 2 +- blueprints/nebulynk/import.base64 | 2 +- blueprints/nebulynk/meta.json | 2 +- blueprints/nebulynk/template.toml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/blueprints/nebulynk/docker-compose.yml b/blueprints/nebulynk/docker-compose.yml index 70988d520..e09f15608 100644 --- a/blueprints/nebulynk/docker-compose.yml +++ b/blueprints/nebulynk/docker-compose.yml @@ -151,7 +151,7 @@ services: MEETING_RECORDINGS_S3_ENDPOINT: http://garage:3900 MEETING_RECORDINGS_EGRESS_S3_ENDPOINT: http://garage:3900 MEETING_RECORDINGS_S3_REGION: "${MEETING_RECORDINGS_S3_REGION:-${STORAGE_S3_REGION:-us-east-1}}" - MEETING_TRANSCRIPT_WAIT_TIMEOUT_MS: "${MEETING_TRANSCRIPT_WAIT_TIMEOUT_MS:-1200000}" + MEETING_TRANSCRIPT_WAIT_TIMEOUT_MS: "${MEETING_TRANSCRIPT_WAIT_TIMEOUT_MS:-1800000}" LIVEKIT_HOST: http://livekit:7880 LIVEKIT_PUBLIC_URL: "${LIVEKIT_PUBLIC_URL:?LIVEKIT_PUBLIC_URL must be set}" LIVEKIT_API_KEY: "${LIVEKIT_API_KEY:?LIVEKIT_API_KEY must be set}" diff --git a/blueprints/nebulynk/import.base64 b/blueprints/nebulynk/import.base64 index 9f812f3dc..20d1841d9 100644 --- a/blueprints/nebulynk/import.base64 +++ b/blueprints/nebulynk/import.base64 @@ -1 +1 @@ -eyJjb21wb3NlIjoiIyBkb2twbG95OiBhbGxvdy1ob3N0LXBvcnRzXHJcbiMgTGl2ZUtpdCByZXF1aXJlcyBwdWJsaWMgVENQL1VEUCBtZWRpYSBwb3J0cyA3ODgxIGFuZCA3ODgyIGZvciBXZWJSVEMuXHJcbiMgTmVidWx5bmsgRG9rcGxveSB0ZW1wbGF0ZS4gSW1wb3J0IHRoZSBnZW5lcmF0ZWQgaW1wb3J0LmJhc2U2NCBmaWxlIHRocm91Z2hcclxuIyBDb21wb3NlIC0+IEFkdmFuY2VkIC0+IEltcG9ydC4gRG9rcGxveSBvd25zIHJvdXRpbmcgYW5kIHRoZSBpc29sYXRlZCBuZXR3b3JrLlxyXG52ZXJzaW9uOiBcIjMuOFwiXHJcbnNlcnZpY2VzOlxyXG4gIGZyb250ZW5kOlxyXG4gICAgYnVpbGQ6XHJcbiAgICAgIGNvbnRleHQ6IFwiaHR0cHM6Ly9naXRodWIuY29tL3NhcGllbnRvcml1cy9OZWJ1bHluay5naXQjJHtORUJVTFlOS19TT1VSQ0VfUkVGOi1zdGFibGV9XCJcclxuICAgICAgZG9ja2VyZmlsZTogZnJvbnRlbmQvRG9ja2VyZmlsZVxyXG4gICAgICBhcmdzOlxyXG4gICAgICAgIE5PREVfSU1BR0U6IFwiJHtORUJVTFlOS19OT0RFX0lNQUdFOi1ub2RlOjIyLjIzLjEtYWxwaW5lMy4yNH1cIlxyXG4gICAgICAgIE5HSU5YX0lNQUdFOiBcIiR7TkVCVUxZTktfTkdJTlhfSU1BR0U6LW5naW54aW5jL25naW54LXVucHJpdmlsZWdlZDoxLjMxLWFscGluZTMuMjNAc2hhMjU2OjYzMjAwMjBjN2RhODcxNGZlYWI1MjRlMDJjMDhjNWExOTU4Njc1YzRlNjg3MDBlOTNhMmZkODk3MGIwNjU3ODZ9XCJcclxuICAgICAgICAjIFRoZXNlIFVSTHMgYXJlIGJha2VkIGludG8gdGhlIGJyb3dzZXIgYnVuZGxlLlxyXG4gICAgICAgIFZJVEVfQVBJX1VSTDogXCIke1ZJVEVfQVBJX1VSTDo/VklURV9BUElfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgICAgVklURV9MSVZFS0lUX1VSTDogXCIke0xJVkVLSVRfUFVCTElDX1VSTDo/TElWRUtJVF9QVUJMSUNfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgICAgVklURV9WQVBJRF9QVUJMSUNfS0VZOiBcIiR7VkFQSURfUFVCTElDX0tFWTotfVwiXHJcbiAgICAgICAgVklURV9BVVRIX0NTUkZfQ09PS0lFX05BTUU6IFwiJHtBVVRIX0NTUkZfQ09PS0lFX05BTUU6LW5lYnVseW5rX2NzcmZfdG9rZW59XCJcclxuICAgIGRlcGVuZHNfb246XHJcbiAgICAgIC0gYmFja2VuZFxyXG4gICAgZXhwb3NlOlxyXG4gICAgICAtIFwiODA4MFwiXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICBwb3N0Z3JlczpcclxuICAgIGltYWdlOiBcIiR7TkVCVUxZTktfUE9TVEdSRVNfSU1BR0U6LXBvc3RncmVzOjE3LWFscGluZTMuMjRAc2hhMjU2Ojc0MmY0MGVhMjBiOWZmMmZmMzFkYjU0NThkMTI3NDUyOTg4YTIxNjRkZjllMTc0NDFlMTkxZjNiNzIyNTIxOTN9XCJcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBQT1NUR1JFU19EQjogXCIke1BPU1RHUkVTX0RCOi1uZWJ1bHlua31cIlxyXG4gICAgICBQT1NUR1JFU19VU0VSOiBcIiR7UE9TVEdSRVNfVVNFUjotbmVidWx5bmt9XCJcclxuICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IFwiJHtQT1NUR1JFU19QQVNTV09SRDo/UE9TVEdSRVNfUEFTU1dPUkQgbXVzdCBiZSBzZXR9XCJcclxuICAgIHZvbHVtZXM6XHJcbiAgICAgIC0gbmVidWx5bmtfcG9zdGdyZXNfZGF0YTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGFcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIHJlZGlzOlxyXG4gICAgaW1hZ2U6IFwiJHtORUJVTFlOS19SRURJU19JTUFHRTotcmVkaXM6Ny40LjctYWxwaW5lMy4yMX1cIlxyXG4gICAgdm9sdW1lczpcclxuICAgICAgLSBuZWJ1bHlua19yZWRpc19kYXRhOi9kYXRhXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICAjIFByZXBhcmUgbmFtZWQgR2FyYWdlIHZvbHVtZXMgZm9yIHRoZSB1bnByaXZpbGVnZWQgR2FyYWdlIHByb2Nlc3MuXHJcbiAgZ2FyYWdlLXZvbHVtZS1pbml0OlxyXG4gICAgaW1hZ2U6IGFscGluZTozLjIxLjVcclxuICAgIHVzZXI6IFwiMDowXCJcclxuICAgIGNvbW1hbmQ6IFtcInNoXCIsIFwiLWVjXCIsIFwiY2hvd24gLVIgNjU1MzI6NjU1MzIgL3Zhci9saWIvZ2FyYWdlL21ldGEgL3Zhci9saWIvZ2FyYWdlL2RhdGFcIl1cclxuICAgIHZvbHVtZXM6XHJcbiAgICAgIC0gbmVidWx5bmtfZ2FyYWdlX21ldGE6L3Zhci9saWIvZ2FyYWdlL21ldGFcclxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfZGF0YTovdmFyL2xpYi9nYXJhZ2UvZGF0YVxyXG4gICAgcmVzdGFydDogXCJub1wiXHJcblxyXG4gIGdhcmFnZTpcclxuICAgIGJ1aWxkOlxyXG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXHJcbiAgICAgIGRvY2tlcmZpbGU6IGdhcmFnZS5Eb2NrZXJmaWxlXHJcbiAgICAgIGFyZ3M6XHJcbiAgICAgICAgR0FSQUdFX0lNQUdFOiBcIiR7TkVCVUxZTktfR0FSQUdFX0lNQUdFOi1keGZscnMvZ2FyYWdlOnYyLjMuMH1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgZ2FyYWdlLXZvbHVtZS1pbml0OlxyXG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XHJcbiAgICBjb21tYW5kOiAvZ2FyYWdlIHNlcnZlciAtLXNpbmdsZS1ub2RlIC0tZGVmYXVsdC1idWNrZXRcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBHQVJBR0VfUlBDX1NFQ1JFVDogXCIke0dBUkFHRV9SUENfU0VDUkVUOj9HQVJBR0VfUlBDX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBHQVJBR0VfREVGQVVMVF9BQ0NFU1NfS0VZOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgR0FSQUdFX0RFRkFVTFRfU0VDUkVUX0tFWTogXCIke1NUT1JBR0VfUzNfU0VDUkVUX0tFWTo/U1RPUkFHRV9TM19TRUNSRVRfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIEdBUkFHRV9ERUZBVUxUX0JVQ0tFVDogXCIke1NUT1JBR0VfUzNfQlVDS0VUOi1uZWJ1bHluay1maWxlc31cIlxyXG4gICAgdm9sdW1lczpcclxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfbWV0YTovdmFyL2xpYi9nYXJhZ2UvbWV0YVxyXG4gICAgICAtIG5lYnVseW5rX2dhcmFnZV9kYXRhOi92YXIvbGliL2dhcmFnZS9kYXRhXHJcbiAgICBleHBvc2U6XHJcbiAgICAgIC0gXCIzOTAwXCJcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIGxpdmVraXQ6XHJcbiAgICBidWlsZDpcclxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxyXG4gICAgICBkb2NrZXJmaWxlOiBsaXZla2l0LkRvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBMSVZFS0lUX1NFUlZFUl9JTUFHRTogXCIke05FQlVMWU5LX0xJVkVLSVRfU0VSVkVSX0lNQUdFOi1saXZla2l0L2xpdmVraXQtc2VydmVyOnYxLjEzLjR9XCJcclxuICAgIGNvbW1hbmQ6IC0tY29uZmlnIC9saXZla2l0LnlhbWxcclxuICAgIGRlcGVuZHNfb246XHJcbiAgICAgIC0gcmVkaXNcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBMSVZFS0lUX0tFWVM6IFwiJHtMSVZFS0lUX0FQSV9LRVk6P0xJVkVLSVRfQVBJX0tFWSBtdXN0IGJlIHNldH06ICR7TElWRUtJVF9BUElfU0VDUkVUOj9MSVZFS0lUX0FQSV9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgIGV4cG9zZTpcclxuICAgICAgLSBcIjc4ODBcIlxyXG4gICAgcG9ydHM6XHJcbiAgICAgIC0gXCI3ODgxOjc4ODFcIlxyXG4gICAgICAtIFwiNzg4Mjo3ODgyL3VkcFwiXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICBsaXZla2l0LWVncmVzczpcclxuICAgIGJ1aWxkOlxyXG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXHJcbiAgICAgIGRvY2tlcmZpbGU6IGxpdmVraXQtZWdyZXNzLkRvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBMSVZFS0lUX0VHUkVTU19JTUFHRTogXCIke05FQlVMWU5LX0xJVkVLSVRfRUdSRVNTX0lNQUdFOi1saXZla2l0L2VncmVzczp2MS4xMy4wfVwiXHJcbiAgICBjb21tYW5kOiAtLWNvbmZpZyAvbGl2ZWtpdC1lZ3Jlc3MueWFtbFxyXG4gICAgZW52aXJvbm1lbnQ6XHJcbiAgICAgIEVHUkVTU19DT05GSUdfRklMRTogL2xpdmVraXQtZWdyZXNzLnlhbWxcclxuICAgICAgTElWRUtJVF9BUElfS0VZOiBcIiR7TElWRUtJVF9BUElfS0VZOj9MSVZFS0lUX0FQSV9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgTElWRUtJVF9BUElfU0VDUkVUOiBcIiR7TElWRUtJVF9BUElfU0VDUkVUOj9MSVZFS0lUX0FQSV9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgTElWRUtJVF9XU19VUkw6IHdzOi8vbGl2ZWtpdDo3ODgwXHJcbiAgICAgIEFXU19BQ0NFU1NfS0VZX0lEOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZOiBcIiR7U1RPUkFHRV9TM19TRUNSRVRfS0VZOj9TVE9SQUdFX1MzX1NFQ1JFVF9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVdTX0RFRkFVTFRfUkVHSU9OOiBcIiR7U1RPUkFHRV9TM19SRUdJT046LSR7TUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjotdXMtZWFzdC0xfX1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgLSBsaXZla2l0XHJcbiAgICAgIC0gcmVkaXNcclxuICAgICAgLSBnYXJhZ2VcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIGJhY2tlbmQ6XHJcbiAgICBidWlsZDpcclxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxyXG4gICAgICBkb2NrZXJmaWxlOiBiYWNrZW5kL0RvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBOT0RFX0lNQUdFOiBcIiR7TkVCVUxZTktfTk9ERV9JTUFHRTotbm9kZToyMi4yMy4xLWFscGluZTMuMjR9XCJcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBOT0RFX0VOVjogXCIke05PREVfRU5WOi1kZXZlbG9wbWVudH1cIlxuICAgICAgSldUX1NFQ1JFVDogXCIke0pXVF9TRUNSRVQ6P0pXVF9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQUlfU0VDUkVUX0tFWTogXCIke0FJX1NFQ1JFVF9LRVk6P0FJX1NFQ1JFVF9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVVUSF8yRkFfU0VDUkVUX0tFWTogXCIke0FVVEhfMkZBX1NFQ1JFVF9LRVk6LX1cIlxyXG4gICAgICBCQUNLRU5EX1BPUlQ6IFwiJHtCQUNLRU5EX1BPUlQ6LTMwMzB9XCJcclxuICAgICAgTE9HX0xFVkVMOiBcIiR7TE9HX0xFVkVMOi1pbmZvfVwiXHJcbiAgICAgIE1BWF9GSUxFX1NJWkU6IFwiJHtNQVhfRklMRV9TSVpFOi0yNjIxNDQwMH1cIlxyXG4gICAgICBBVVRIRU5USUNBVElPTl9SQVRFX0xJTUlUX0lQX0xJTUlUOiBcIiR7QVVUSEVOVElDQVRJT05fUkFURV9MSU1JVF9JUF9MSU1JVDotfVwiXHJcbiAgICAgIEFVVEhfQlJPV1NFUl9BQ0NFU1NfVE9LRU5fVFRMOiBcIiR7QVVUSF9CUk9XU0VSX0FDQ0VTU19UT0tFTl9UVEw6LTE1bX1cIlxyXG4gICAgICBBVVRIX1JFRlJFU0hfVE9LRU5fVFRMOiBcIiR7QVVUSF9SRUZSRVNIX1RPS0VOX1RUTDotMWR9XCJcclxuICAgICAgQVVUSF9SRU1FTUJFUl9SRUZSRVNIX1RPS0VOX1RUTDogXCIke0FVVEhfUkVNRU1CRVJfUkVGUkVTSF9UT0tFTl9UVEw6LTMwZH1cIlxyXG4gICAgICBBVVRIX1JFRlJFU0hfQ09PS0lFX05BTUU6IFwiJHtBVVRIX1JFRlJFU0hfQ09PS0lFX05BTUU6LW5lYnVseW5rX3JlZnJlc2hfc2Vzc2lvbn1cIlxyXG4gICAgICBBVVRIX0NTUkZfQ09PS0lFX05BTUU6IFwiJHtBVVRIX0NTUkZfQ09PS0lFX05BTUU6LW5lYnVseW5rX2NzcmZfdG9rZW59XCJcclxuICAgICAgQVVUSF9DT09LSUVfRE9NQUlOOiBcIiR7QVVUSF9DT09LSUVfRE9NQUlOOi19XCJcclxuICAgICAgUkFURV9MSU1JVF9EUklWRVI6IFwiJHtSQVRFX0xJTUlUX0RSSVZFUjotcmVkaXN9XCJcclxuICAgICAgUEFTU0tFWV9SUF9JRDogXCIke1BBU1NLRVlfUlBfSUQ6P1BBU1NLRVlfUlBfSUQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQUlfUFJPVklERVJfQkFTRV9VUkxfQUxMT1dMSVNUOiBcIiR7QUlfUFJPVklERVJfQkFTRV9VUkxfQUxMT1dMSVNUOi19XCJcclxuICAgICAgUE9TVEdSRVNfSE9TVDogcG9zdGdyZXNcclxuICAgICAgUE9TVEdSRVNfUE9SVDogXCI1NDMyXCJcclxuICAgICAgUE9TVEdSRVNfREI6IFwiJHtQT1NUR1JFU19EQjotbmVidWx5bmt9XCJcclxuICAgICAgUE9TVEdSRVNfVVNFUjogXCIke1BPU1RHUkVTX1VTRVI6LW5lYnVseW5rfVwiXHJcbiAgICAgIFBPU1RHUkVTX1BBU1NXT1JEOiBcIiR7UE9TVEdSRVNfUEFTU1dPUkQ6P1BPU1RHUkVTX1BBU1NXT1JEIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIFJFRElTX0hPU1Q6IHJlZGlzXHJcbiAgICAgIFJFRElTX1BPUlQ6IFwiNjM3OVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfRU5EUE9JTlQ6IGh0dHA6Ly9nYXJhZ2U6MzkwMFxyXG4gICAgICBTVE9SQUdFX1MzX1BVQkxJQ19FTkRQT0lOVDogXCIke1NUT1JBR0VfUzNfUFVCTElDX0VORFBPSU5UOj9TVE9SQUdFX1MzX1BVQkxJQ19FTkRQT0lOVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBTVE9SQUdFX1MzX0FDQ0VTU19LRVk6IFwiJHtTVE9SQUdFX1MzX0FDQ0VTU19LRVk6P1NUT1JBR0VfUzNfQUNDRVNTX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBTVE9SQUdFX1MzX1NFQ1JFVF9LRVk6IFwiJHtTVE9SQUdFX1MzX1NFQ1JFVF9LRVk6P1NUT1JBR0VfUzNfU0VDUkVUX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBTVE9SQUdFX1MzX0JVQ0tFVDogXCIke1NUT1JBR0VfUzNfQlVDS0VUOi1uZWJ1bHluay1maWxlc31cIlxyXG4gICAgICBTVE9SQUdFX1MzX1JFR0lPTjogXCIke1NUT1JBR0VfUzNfUkVHSU9OOi0ke01FRVRJTkdfUkVDT1JESU5HU19TM19SRUdJT046LXVzLWVhc3QtMX19XCJcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX1BSRUZJWDogbWVldGluZy1yZWNvcmRpbmdzXHJcbiAgICAgIE1FRVRJTkdfUkVDT1JESU5HU19CVUNLRVQ6IFwiJHtTVE9SQUdFX1MzX0JVQ0tFVDotbmVidWx5bmstZmlsZXN9XCJcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX1MzX0VORFBPSU5UOiBodHRwOi8vZ2FyYWdlOjM5MDBcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX0VHUkVTU19TM19FTkRQT0lOVDogaHR0cDovL2dhcmFnZTozOTAwXHJcbiAgICAgIE1FRVRJTkdfUkVDT1JESU5HU19TM19SRUdJT046IFwiJHtNRUVUSU5HX1JFQ09SRElOR1NfUzNfUkVHSU9OOi0ke1NUT1JBR0VfUzNfUkVHSU9OOi11cy1lYXN0LTF9fVwiXHJcbiAgICAgIE1FRVRJTkdfVFJBTlNDUklQVF9XQUlUX1RJTUVPVVRfTVM6IFwiJHtNRUVUSU5HX1RSQU5TQ1JJUFRfV0FJVF9USU1FT1VUX01TOi0xMjAwMDAwfVwiXHJcbiAgICAgIExJVkVLSVRfSE9TVDogaHR0cDovL2xpdmVraXQ6Nzg4MFxyXG4gICAgICBMSVZFS0lUX1BVQkxJQ19VUkw6IFwiJHtMSVZFS0lUX1BVQkxJQ19VUkw6P0xJVkVLSVRfUFVCTElDX1VSTCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBMSVZFS0lUX0FQSV9LRVk6IFwiJHtMSVZFS0lUX0FQSV9LRVk6P0xJVkVLSVRfQVBJX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBMSVZFS0lUX0FQSV9TRUNSRVQ6IFwiJHtMSVZFS0lUX0FQSV9TRUNSRVQ6P0xJVkVLSVRfQVBJX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBLTElQWV9BUElfS0VZOiBcIiR7S0xJUFlfQVBJX0tFWTotfVwiXHJcbiAgICAgIFZBUElEX1BVQkxJQ19LRVk6IFwiJHtWQVBJRF9QVUJMSUNfS0VZOi19XCJcclxuICAgICAgVkFQSURfUFJJVkFURV9LRVk6IFwiJHtWQVBJRF9QUklWQVRFX0tFWTotfVwiXHJcbiAgICAgIFZBUElEX1NVQkpFQ1Q6IFwiJHtWQVBJRF9TVUJKRUNUOi1tYWlsdG86YWRtaW5AZXhhbXBsZS5jb219XCJcclxuICAgICAgU01UUF9IT1NUOiBcIiR7U01UUF9IT1NUOi19XCJcclxuICAgICAgU01UUF9QT1JUOiBcIiR7U01UUF9QT1JUOi01ODd9XCJcclxuICAgICAgU01UUF9TRUNVUkU6IFwiJHtTTVRQX1NFQ1VSRTotZmFsc2V9XCJcclxuICAgICAgU01UUF9JR05PUkVfVExTOiBcIiR7U01UUF9JR05PUkVfVExTOi1mYWxzZX1cIlxyXG4gICAgICBTTVRQX1VTRVI6IFwiJHtTTVRQX1VTRVI6LX1cIlxyXG4gICAgICBTTVRQX1BBU1M6IFwiJHtTTVRQX1BBU1M6LX1cIlxyXG4gICAgICBTTVRQX0ZST006IFwiJHtTTVRQX0ZST006LW5vcmVwbHlAbmVidWx5bmsubG9jYWx9XCJcclxuICAgICAgU01UUF9GUk9NX05BTUU6IFwiJHtTTVRQX0ZST01fTkFNRTotTmVidWx5bmt9XCJcclxuICAgICAgRlJPTlRFTkRfVVJMOiBcIiR7RlJPTlRFTkRfVVJMOj9GUk9OVEVORF9VUkwgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgVFJVU1RfUFJPWFk6IFwiJHtUUlVTVF9QUk9YWTotdHJ1ZX1cIlxyXG4gICAgICBORUJVTFlOS19CVUlMRF9TSEE6IFwiJHtORUJVTFlOS19CVUlMRF9TSEE6LX1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgLSBwb3N0Z3Jlc1xyXG4gICAgICAtIHJlZGlzXHJcbiAgICAgIC0gZ2FyYWdlXHJcbiAgICAgIC0gbGl2ZWtpdFxyXG4gICAgICAtIGxpdmVraXQtZWdyZXNzXHJcbiAgICBleHBvc2U6XHJcbiAgICAgIC0gXCIzMDMwXCJcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG52b2x1bWVzOlxyXG4gIG5lYnVseW5rX3Bvc3RncmVzX2RhdGE6XHJcbiAgbmVidWx5bmtfcmVkaXNfZGF0YTpcclxuICBuZWJ1bHlua19nYXJhZ2VfbWV0YTpcclxuICBuZWJ1bHlua19nYXJhZ2VfZGF0YTpcclxuIiwiY29uZmlnIjoiIyBWYWx1ZXMgaW4gW3ZhcmlhYmxlc10gYXJlIHJlc29sdmVkIG9uY2Ugd2hlbiBEb2twbG95IGltcG9ydHMgdGhlIHRlbXBsYXRlLlxyXG4jIFRoZSBnZW5lcmF0ZWQgdmFsdWVzIGFyZSB0aGVuIHN0b3JlZCBpbiB0aGUgQ29tcG9zZSBzZXJ2aWNlIGVudmlyb25tZW50LlxyXG5bdmFyaWFibGVzXVxyXG5mcm9udGVuZF9kb21haW4gPSBcIiR7ZG9tYWlufVwiXHJcbmJhY2tlbmRfZG9tYWluID0gXCIke2RvbWFpbn1cIlxyXG5saXZla2l0X2RvbWFpbiA9IFwiJHtkb21haW59XCJcclxuZ2FyYWdlX2RvbWFpbiA9IFwiJHtkb21haW59XCJcclxuXHJcbnBvc3RncmVzX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcbmdhcmFnZV9ycGNfc2VjcmV0ID0gXCIke2hhc2g6NjR9XCJcclxuc3RvcmFnZV9zM19hY2Nlc3Nfa2V5ID0gXCIke3Bhc3N3b3JkOjI0fVwiXHJcbnN0b3JhZ2VfczNfc2VjcmV0X2tleSA9IFwiJHtwYXNzd29yZDo2NH1cIlxyXG5qd3Rfc2VjcmV0ID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcbmFpX3NlY3JldF9rZXkgPSBcIiR7cGFzc3dvcmQ6NjR9XCJcclxuYXV0aF8yZmFfc2VjcmV0X2tleSA9IFwiJHtwYXNzd29yZDo2NH1cIlxyXG5saXZla2l0X2FwaV9rZXkgPSBcIiR7cGFzc3dvcmQ6MjR9XCJcclxubGl2ZWtpdF9hcGlfc2VjcmV0ID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcblxyXG4jIEdlbmVyYXRlZCBzc2xpcC5pbyBkb21haW5zIGFyZSBIVFRQLW9ubHkgdW50aWwgRG9rcGxveSBUTFMgaXMgY29uZmlndXJlZC5cclxuZnJvbnRlbmRfdXJsID0gXCJodHRwOi8vJHtmcm9udGVuZF9kb21haW59XCJcclxuYmFja2VuZF91cmwgPSBcImh0dHA6Ly8ke2JhY2tlbmRfZG9tYWlufVwiXHJcbmxpdmVraXRfcHVibGljX3VybCA9IFwiaHR0cDovLyR7bGl2ZWtpdF9kb21haW59XCJcclxuZ2FyYWdlX3B1YmxpY191cmwgPSBcImh0dHA6Ly8ke2dhcmFnZV9kb21haW59XCJcclxuc291cmNlX3JlZiA9IFwic3RhYmxlXCJcclxuXHJcbltjb25maWddXHJcbmlzb2xhdGVkID0gdHJ1ZVxyXG5cclxuW1tjb25maWcuZG9tYWluc11dXHJcbnNlcnZpY2VOYW1lID0gXCJmcm9udGVuZFwiXHJcbnBvcnQgPSA4MDgwXHJcbmhvc3QgPSBcIiR7ZnJvbnRlbmRfZG9tYWlufVwiXHJcbnBhdGggPSBcIi9cIlxyXG5cclxuW1tjb25maWcuZG9tYWluc11dXHJcbnNlcnZpY2VOYW1lID0gXCJiYWNrZW5kXCJcclxucG9ydCA9IDMwMzBcclxuaG9zdCA9IFwiJHtiYWNrZW5kX2RvbWFpbn1cIlxyXG5wYXRoID0gXCIvXCJcclxuXHJcbltbY29uZmlnLmRvbWFpbnNdXVxyXG5zZXJ2aWNlTmFtZSA9IFwibGl2ZWtpdFwiXHJcbnBvcnQgPSA3ODgwXHJcbmhvc3QgPSBcIiR7bGl2ZWtpdF9kb21haW59XCJcclxucGF0aCA9IFwiL1wiXHJcblxyXG5bW2NvbmZpZy5kb21haW5zXV1cclxuc2VydmljZU5hbWUgPSBcImdhcmFnZVwiXHJcbnBvcnQgPSAzOTAwXHJcbmhvc3QgPSBcIiR7Z2FyYWdlX2RvbWFpbn1cIlxyXG5wYXRoID0gXCIvXCJcclxuXHJcbltjb25maWcuZW52XVxyXG5OT0RFX0VOViA9IFwiZGV2ZWxvcG1lbnRcIlxyXG5ORUJVTFlOS19TT1VSQ0VfUkVGID0gXCIke3NvdXJjZV9yZWZ9XCJcclxuUE9TVEdSRVNfREIgPSBcIm5lYnVseW5rXCJcclxuUE9TVEdSRVNfVVNFUiA9IFwibmVidWx5bmtcIlxyXG5QT1NUR1JFU19QQVNTV09SRCA9IFwiJHtwb3N0Z3Jlc19wYXNzd29yZH1cIlxyXG5HQVJBR0VfUlBDX1NFQ1JFVCA9IFwiJHtnYXJhZ2VfcnBjX3NlY3JldH1cIlxyXG5TVE9SQUdFX1MzX0FDQ0VTU19LRVkgPSBcIiR7c3RvcmFnZV9zM19hY2Nlc3Nfa2V5fVwiXHJcblNUT1JBR0VfUzNfU0VDUkVUX0tFWSA9IFwiJHtzdG9yYWdlX3MzX3NlY3JldF9rZXl9XCJcclxuU1RPUkFHRV9TM19CVUNLRVQgPSBcIm5lYnVseW5rLWZpbGVzXCJcclxuU1RPUkFHRV9TM19SRUdJT04gPSBcInVzLWVhc3QtMVwiXHJcbkpXVF9TRUNSRVQgPSBcIiR7and0X3NlY3JldH1cIlxyXG5BSV9TRUNSRVRfS0VZID0gXCIke2FpX3NlY3JldF9rZXl9XCJcclxuQVVUSF8yRkFfU0VDUkVUX0tFWSA9IFwiJHthdXRoXzJmYV9zZWNyZXRfa2V5fVwiXHJcbkxJVkVLSVRfQVBJX0tFWSA9IFwiJHtsaXZla2l0X2FwaV9rZXl9XCJcclxuTElWRUtJVF9BUElfU0VDUkVUID0gXCIke2xpdmVraXRfYXBpX3NlY3JldH1cIlxyXG5GUk9OVEVORF9VUkwgPSBcIiR7ZnJvbnRlbmRfdXJsfVwiXHJcblBBU1NLRVlfUlBfSUQgPSBcIiR7ZnJvbnRlbmRfZG9tYWlufVwiXHJcblZJVEVfQVBJX1VSTCA9IFwiJHtiYWNrZW5kX3VybH1cIlxyXG5MSVZFS0lUX1BVQkxJQ19VUkwgPSBcIiR7bGl2ZWtpdF9wdWJsaWNfdXJsfVwiXHJcblNUT1JBR0VfUzNfUFVCTElDX0VORFBPSU5UID0gXCIke2dhcmFnZV9wdWJsaWNfdXJsfVwiXHJcblxyXG4jIE9wdGlvbmFsIGludGVncmF0aW9ucy4gTGVhdmUgaW5zdGFuY2Utc3BlY2lmaWMgdmFsdWVzIGVtcHR5IHVudGlsIGNvbmZpZ3VyZWQuXHJcbktMSVBZX0FQSV9LRVkgPSBcIlwiXHJcblZBUElEX1BVQkxJQ19LRVkgPSBcIlwiXHJcblZBUElEX1BSSVZBVEVfS0VZID0gXCJcIlxyXG5WQVBJRF9TVUJKRUNUID0gXCJcIlxyXG5cclxuU01UUF9IT1NUID0gXCJcIlxyXG5TTVRQX1BPUlQgPSBcIjU4N1wiXHJcblNNVFBfU0VDVVJFID0gXCJmYWxzZVwiXHJcblNNVFBfSUdOT1JFX1RMUyA9IFwiZmFsc2VcIlxyXG5TTVRQX1VTRVIgPSBcIlwiXHJcblNNVFBfUEFTUyA9IFwiXCJcclxuU01UUF9GUk9NID0gXCJcIlxyXG5TTVRQX0ZST01fTkFNRSA9IFwiTmVidWx5bmtcIlxyXG5cclxuIyBPcHRpb25hbCBvcGVyYXRpb25hbCBhbmQgc2VjdXJpdHkgc2V0dGluZ3MuXHJcbkFVVEhFTlRJQ0FUSU9OX1JBVEVfTElNSVRfSVBfTElNSVQgPSBcIlwiXHJcbkFVVEhfQlJPV1NFUl9BQ0NFU1NfVE9LRU5fVFRMID0gXCIxNW1cIlxyXG5BVVRIX1JFRlJFU0hfVE9LRU5fVFRMID0gXCIxZFwiXHJcbkFVVEhfUkVNRU1CRVJfUkVGUkVTSF9UT0tFTl9UVEwgPSBcIjMwZFwiXHJcbkFVVEhfUkVGUkVTSF9DT09LSUVfTkFNRSA9IFwibmVidWx5bmtfcmVmcmVzaF9zZXNzaW9uXCJcclxuQVVUSF9DU1JGX0NPT0tJRV9OQU1FID0gXCJuZWJ1bHlua19jc3JmX3Rva2VuXCJcclxuQVVUSF9DT09LSUVfRE9NQUlOID0gXCJcIlxyXG5SQVRFX0xJTUlUX0RSSVZFUiA9IFwicmVkaXNcIlxyXG5BSV9QUk9WSURFUl9CQVNFX1VSTF9BTExPV0xJU1QgPSBcIlwiXHJcbkxPR19MRVZFTCA9IFwiaW5mb1wiXHJcbk1BWF9GSUxFX1NJWkUgPSBcIjI2MjE0NDAwXCJcclxuTUVFVElOR19UUkFOU0NSSVBUX1dBSVRfVElNRU9VVF9NUyA9IFwiMTIwMDAwMFwiXHJcblRSVVNUX1BST1hZID0gXCJ0cnVlXCJcclxuTkVCVUxZTktfQlVJTERfU0hBID0gXCJcIlxyXG4ifQ== +eyJjb21wb3NlIjoiIyBkb2twbG95OiBhbGxvdy1ob3N0LXBvcnRzXHJcbiMgTGl2ZUtpdCByZXF1aXJlcyBwdWJsaWMgVENQL1VEUCBtZWRpYSBwb3J0cyA3ODgxIGFuZCA3ODgyIGZvciBXZWJSVEMuXHJcbiMgTmVidWx5bmsgRG9rcGxveSB0ZW1wbGF0ZS4gSW1wb3J0IHRoZSBnZW5lcmF0ZWQgaW1wb3J0LmJhc2U2NCBmaWxlIHRocm91Z2hcclxuIyBDb21wb3NlIC0+IEFkdmFuY2VkIC0+IEltcG9ydC4gRG9rcGxveSBvd25zIHJvdXRpbmcgYW5kIHRoZSBpc29sYXRlZCBuZXR3b3JrLlxyXG52ZXJzaW9uOiBcIjMuOFwiXHJcbnNlcnZpY2VzOlxyXG4gIGZyb250ZW5kOlxyXG4gICAgYnVpbGQ6XHJcbiAgICAgIGNvbnRleHQ6IFwiaHR0cHM6Ly9naXRodWIuY29tL3NhcGllbnRvcml1cy9OZWJ1bHluay5naXQjJHtORUJVTFlOS19TT1VSQ0VfUkVGOi1zdGFibGV9XCJcclxuICAgICAgZG9ja2VyZmlsZTogZnJvbnRlbmQvRG9ja2VyZmlsZVxyXG4gICAgICBhcmdzOlxyXG4gICAgICAgIE5PREVfSU1BR0U6IFwiJHtORUJVTFlOS19OT0RFX0lNQUdFOi1ub2RlOjIyLjIzLjEtYWxwaW5lMy4yNH1cIlxyXG4gICAgICAgIE5HSU5YX0lNQUdFOiBcIiR7TkVCVUxZTktfTkdJTlhfSU1BR0U6LW5naW54aW5jL25naW54LXVucHJpdmlsZWdlZDoxLjMxLWFscGluZTMuMjNAc2hhMjU2OjYzMjAwMjBjN2RhODcxNGZlYWI1MjRlMDJjMDhjNWExOTU4Njc1YzRlNjg3MDBlOTNhMmZkODk3MGIwNjU3ODZ9XCJcclxuICAgICAgICAjIFRoZXNlIFVSTHMgYXJlIGJha2VkIGludG8gdGhlIGJyb3dzZXIgYnVuZGxlLlxyXG4gICAgICAgIFZJVEVfQVBJX1VSTDogXCIke1ZJVEVfQVBJX1VSTDo/VklURV9BUElfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgICAgVklURV9MSVZFS0lUX1VSTDogXCIke0xJVkVLSVRfUFVCTElDX1VSTDo/TElWRUtJVF9QVUJMSUNfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgICAgVklURV9WQVBJRF9QVUJMSUNfS0VZOiBcIiR7VkFQSURfUFVCTElDX0tFWTotfVwiXHJcbiAgICAgICAgVklURV9BVVRIX0NTUkZfQ09PS0lFX05BTUU6IFwiJHtBVVRIX0NTUkZfQ09PS0lFX05BTUU6LW5lYnVseW5rX2NzcmZfdG9rZW59XCJcclxuICAgIGRlcGVuZHNfb246XHJcbiAgICAgIC0gYmFja2VuZFxyXG4gICAgZXhwb3NlOlxyXG4gICAgICAtIFwiODA4MFwiXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICBwb3N0Z3JlczpcclxuICAgIGltYWdlOiBcIiR7TkVCVUxZTktfUE9TVEdSRVNfSU1BR0U6LXBvc3RncmVzOjE3LWFscGluZTMuMjRAc2hhMjU2Ojc0MmY0MGVhMjBiOWZmMmZmMzFkYjU0NThkMTI3NDUyOTg4YTIxNjRkZjllMTc0NDFlMTkxZjNiNzIyNTIxOTN9XCJcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBQT1NUR1JFU19EQjogXCIke1BPU1RHUkVTX0RCOi1uZWJ1bHlua31cIlxyXG4gICAgICBQT1NUR1JFU19VU0VSOiBcIiR7UE9TVEdSRVNfVVNFUjotbmVidWx5bmt9XCJcclxuICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IFwiJHtQT1NUR1JFU19QQVNTV09SRDo/UE9TVEdSRVNfUEFTU1dPUkQgbXVzdCBiZSBzZXR9XCJcclxuICAgIHZvbHVtZXM6XHJcbiAgICAgIC0gbmVidWx5bmtfcG9zdGdyZXNfZGF0YTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGFcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIHJlZGlzOlxyXG4gICAgaW1hZ2U6IFwiJHtORUJVTFlOS19SRURJU19JTUFHRTotcmVkaXM6Ny40LjctYWxwaW5lMy4yMX1cIlxyXG4gICAgdm9sdW1lczpcclxuICAgICAgLSBuZWJ1bHlua19yZWRpc19kYXRhOi9kYXRhXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICAjIFByZXBhcmUgbmFtZWQgR2FyYWdlIHZvbHVtZXMgZm9yIHRoZSB1bnByaXZpbGVnZWQgR2FyYWdlIHByb2Nlc3MuXHJcbiAgZ2FyYWdlLXZvbHVtZS1pbml0OlxyXG4gICAgaW1hZ2U6IGFscGluZTozLjIxLjVcclxuICAgIHVzZXI6IFwiMDowXCJcclxuICAgIGNvbW1hbmQ6IFtcInNoXCIsIFwiLWVjXCIsIFwiY2hvd24gLVIgNjU1MzI6NjU1MzIgL3Zhci9saWIvZ2FyYWdlL21ldGEgL3Zhci9saWIvZ2FyYWdlL2RhdGFcIl1cclxuICAgIHZvbHVtZXM6XHJcbiAgICAgIC0gbmVidWx5bmtfZ2FyYWdlX21ldGE6L3Zhci9saWIvZ2FyYWdlL21ldGFcclxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfZGF0YTovdmFyL2xpYi9nYXJhZ2UvZGF0YVxyXG4gICAgcmVzdGFydDogXCJub1wiXHJcblxyXG4gIGdhcmFnZTpcclxuICAgIGJ1aWxkOlxyXG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXHJcbiAgICAgIGRvY2tlcmZpbGU6IGdhcmFnZS5Eb2NrZXJmaWxlXHJcbiAgICAgIGFyZ3M6XHJcbiAgICAgICAgR0FSQUdFX0lNQUdFOiBcIiR7TkVCVUxZTktfR0FSQUdFX0lNQUdFOi1keGZscnMvZ2FyYWdlOnYyLjMuMH1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgZ2FyYWdlLXZvbHVtZS1pbml0OlxyXG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XHJcbiAgICBjb21tYW5kOiAvZ2FyYWdlIHNlcnZlciAtLXNpbmdsZS1ub2RlIC0tZGVmYXVsdC1idWNrZXRcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBHQVJBR0VfUlBDX1NFQ1JFVDogXCIke0dBUkFHRV9SUENfU0VDUkVUOj9HQVJBR0VfUlBDX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBHQVJBR0VfREVGQVVMVF9BQ0NFU1NfS0VZOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgR0FSQUdFX0RFRkFVTFRfU0VDUkVUX0tFWTogXCIke1NUT1JBR0VfUzNfU0VDUkVUX0tFWTo/U1RPUkFHRV9TM19TRUNSRVRfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIEdBUkFHRV9ERUZBVUxUX0JVQ0tFVDogXCIke1NUT1JBR0VfUzNfQlVDS0VUOi1uZWJ1bHluay1maWxlc31cIlxyXG4gICAgdm9sdW1lczpcclxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfbWV0YTovdmFyL2xpYi9nYXJhZ2UvbWV0YVxyXG4gICAgICAtIG5lYnVseW5rX2dhcmFnZV9kYXRhOi92YXIvbGliL2dhcmFnZS9kYXRhXHJcbiAgICBleHBvc2U6XHJcbiAgICAgIC0gXCIzOTAwXCJcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIGxpdmVraXQ6XHJcbiAgICBidWlsZDpcclxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxyXG4gICAgICBkb2NrZXJmaWxlOiBsaXZla2l0LkRvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBMSVZFS0lUX1NFUlZFUl9JTUFHRTogXCIke05FQlVMWU5LX0xJVkVLSVRfU0VSVkVSX0lNQUdFOi1saXZla2l0L2xpdmVraXQtc2VydmVyOnYxLjEzLjR9XCJcclxuICAgIGNvbW1hbmQ6IC0tY29uZmlnIC9saXZla2l0LnlhbWxcclxuICAgIGRlcGVuZHNfb246XHJcbiAgICAgIC0gcmVkaXNcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBMSVZFS0lUX0tFWVM6IFwiJHtMSVZFS0lUX0FQSV9LRVk6P0xJVkVLSVRfQVBJX0tFWSBtdXN0IGJlIHNldH06ICR7TElWRUtJVF9BUElfU0VDUkVUOj9MSVZFS0lUX0FQSV9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgIGV4cG9zZTpcclxuICAgICAgLSBcIjc4ODBcIlxyXG4gICAgcG9ydHM6XHJcbiAgICAgIC0gXCI3ODgxOjc4ODFcIlxyXG4gICAgICAtIFwiNzg4Mjo3ODgyL3VkcFwiXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICBsaXZla2l0LWVncmVzczpcclxuICAgIGJ1aWxkOlxyXG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXHJcbiAgICAgIGRvY2tlcmZpbGU6IGxpdmVraXQtZWdyZXNzLkRvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBMSVZFS0lUX0VHUkVTU19JTUFHRTogXCIke05FQlVMWU5LX0xJVkVLSVRfRUdSRVNTX0lNQUdFOi1saXZla2l0L2VncmVzczp2MS4xMy4wfVwiXHJcbiAgICBjb21tYW5kOiAtLWNvbmZpZyAvbGl2ZWtpdC1lZ3Jlc3MueWFtbFxyXG4gICAgZW52aXJvbm1lbnQ6XHJcbiAgICAgIEVHUkVTU19DT05GSUdfRklMRTogL2xpdmVraXQtZWdyZXNzLnlhbWxcclxuICAgICAgTElWRUtJVF9BUElfS0VZOiBcIiR7TElWRUtJVF9BUElfS0VZOj9MSVZFS0lUX0FQSV9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgTElWRUtJVF9BUElfU0VDUkVUOiBcIiR7TElWRUtJVF9BUElfU0VDUkVUOj9MSVZFS0lUX0FQSV9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgTElWRUtJVF9XU19VUkw6IHdzOi8vbGl2ZWtpdDo3ODgwXHJcbiAgICAgIEFXU19BQ0NFU1NfS0VZX0lEOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZOiBcIiR7U1RPUkFHRV9TM19TRUNSRVRfS0VZOj9TVE9SQUdFX1MzX1NFQ1JFVF9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVdTX0RFRkFVTFRfUkVHSU9OOiBcIiR7U1RPUkFHRV9TM19SRUdJT046LSR7TUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjotdXMtZWFzdC0xfX1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgLSBsaXZla2l0XHJcbiAgICAgIC0gcmVkaXNcclxuICAgICAgLSBnYXJhZ2VcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIGJhY2tlbmQ6XHJcbiAgICBidWlsZDpcclxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxyXG4gICAgICBkb2NrZXJmaWxlOiBiYWNrZW5kL0RvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBOT0RFX0lNQUdFOiBcIiR7TkVCVUxZTktfTk9ERV9JTUFHRTotbm9kZToyMi4yMy4xLWFscGluZTMuMjR9XCJcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBOT0RFX0VOVjogXCIke05PREVfRU5WOi1kZXZlbG9wbWVudH1cIlxyXG4gICAgICBKV1RfU0VDUkVUOiBcIiR7SldUX1NFQ1JFVDo/SldUX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBBSV9TRUNSRVRfS0VZOiBcIiR7QUlfU0VDUkVUX0tFWTo/QUlfU0VDUkVUX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBBVVRIXzJGQV9TRUNSRVRfS0VZOiBcIiR7QVVUSF8yRkFfU0VDUkVUX0tFWTotfVwiXHJcbiAgICAgIEJBQ0tFTkRfUE9SVDogXCIke0JBQ0tFTkRfUE9SVDotMzAzMH1cIlxyXG4gICAgICBMT0dfTEVWRUw6IFwiJHtMT0dfTEVWRUw6LWluZm99XCJcclxuICAgICAgTUFYX0ZJTEVfU0laRTogXCIke01BWF9GSUxFX1NJWkU6LTI2MjE0NDAwfVwiXHJcbiAgICAgIEFVVEhFTlRJQ0FUSU9OX1JBVEVfTElNSVRfSVBfTElNSVQ6IFwiJHtBVVRIRU5USUNBVElPTl9SQVRFX0xJTUlUX0lQX0xJTUlUOi19XCJcclxuICAgICAgQVVUSF9CUk9XU0VSX0FDQ0VTU19UT0tFTl9UVEw6IFwiJHtBVVRIX0JST1dTRVJfQUNDRVNTX1RPS0VOX1RUTDotMTVtfVwiXHJcbiAgICAgIEFVVEhfUkVGUkVTSF9UT0tFTl9UVEw6IFwiJHtBVVRIX1JFRlJFU0hfVE9LRU5fVFRMOi0xZH1cIlxyXG4gICAgICBBVVRIX1JFTUVNQkVSX1JFRlJFU0hfVE9LRU5fVFRMOiBcIiR7QVVUSF9SRU1FTUJFUl9SRUZSRVNIX1RPS0VOX1RUTDotMzBkfVwiXHJcbiAgICAgIEFVVEhfUkVGUkVTSF9DT09LSUVfTkFNRTogXCIke0FVVEhfUkVGUkVTSF9DT09LSUVfTkFNRTotbmVidWx5bmtfcmVmcmVzaF9zZXNzaW9ufVwiXHJcbiAgICAgIEFVVEhfQ1NSRl9DT09LSUVfTkFNRTogXCIke0FVVEhfQ1NSRl9DT09LSUVfTkFNRTotbmVidWx5bmtfY3NyZl90b2tlbn1cIlxyXG4gICAgICBBVVRIX0NPT0tJRV9ET01BSU46IFwiJHtBVVRIX0NPT0tJRV9ET01BSU46LX1cIlxyXG4gICAgICBSQVRFX0xJTUlUX0RSSVZFUjogXCIke1JBVEVfTElNSVRfRFJJVkVSOi1yZWRpc31cIlxyXG4gICAgICBQQVNTS0VZX1JQX0lEOiBcIiR7UEFTU0tFWV9SUF9JRDo/UEFTU0tFWV9SUF9JRCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBBSV9QUk9WSURFUl9CQVNFX1VSTF9BTExPV0xJU1Q6IFwiJHtBSV9QUk9WSURFUl9CQVNFX1VSTF9BTExPV0xJU1Q6LX1cIlxyXG4gICAgICBQT1NUR1JFU19IT1NUOiBwb3N0Z3Jlc1xyXG4gICAgICBQT1NUR1JFU19QT1JUOiBcIjU0MzJcIlxyXG4gICAgICBQT1NUR1JFU19EQjogXCIke1BPU1RHUkVTX0RCOi1uZWJ1bHlua31cIlxyXG4gICAgICBQT1NUR1JFU19VU0VSOiBcIiR7UE9TVEdSRVNfVVNFUjotbmVidWx5bmt9XCJcclxuICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IFwiJHtQT1NUR1JFU19QQVNTV09SRDo/UE9TVEdSRVNfUEFTU1dPUkQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgUkVESVNfSE9TVDogcmVkaXNcclxuICAgICAgUkVESVNfUE9SVDogXCI2Mzc5XCJcclxuICAgICAgU1RPUkFHRV9TM19FTkRQT0lOVDogaHR0cDovL2dhcmFnZTozOTAwXHJcbiAgICAgIFNUT1JBR0VfUzNfUFVCTElDX0VORFBPSU5UOiBcIiR7U1RPUkFHRV9TM19QVUJMSUNfRU5EUE9JTlQ6P1NUT1JBR0VfUzNfUFVCTElDX0VORFBPSU5UIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfQUNDRVNTX0tFWTogXCIke1NUT1JBR0VfUzNfQUNDRVNTX0tFWTo/U1RPUkFHRV9TM19BQ0NFU1NfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfU0VDUkVUX0tFWTogXCIke1NUT1JBR0VfUzNfU0VDUkVUX0tFWTo/U1RPUkFHRV9TM19TRUNSRVRfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfQlVDS0VUOiBcIiR7U1RPUkFHRV9TM19CVUNLRVQ6LW5lYnVseW5rLWZpbGVzfVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfUkVHSU9OOiBcIiR7U1RPUkFHRV9TM19SRUdJT046LSR7TUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjotdXMtZWFzdC0xfX1cIlxyXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfUFJFRklYOiBtZWV0aW5nLXJlY29yZGluZ3NcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX0JVQ0tFVDogXCIke1NUT1JBR0VfUzNfQlVDS0VUOi1uZWJ1bHluay1maWxlc31cIlxyXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfUzNfRU5EUE9JTlQ6IGh0dHA6Ly9nYXJhZ2U6MzkwMFxyXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfRUdSRVNTX1MzX0VORFBPSU5UOiBodHRwOi8vZ2FyYWdlOjM5MDBcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjogXCIke01FRVRJTkdfUkVDT1JESU5HU19TM19SRUdJT046LSR7U1RPUkFHRV9TM19SRUdJT046LXVzLWVhc3QtMX19XCJcclxuICAgICAgTUVFVElOR19UUkFOU0NSSVBUX1dBSVRfVElNRU9VVF9NUzogXCIke01FRVRJTkdfVFJBTlNDUklQVF9XQUlUX1RJTUVPVVRfTVM6LTE4MDAwMDB9XCJcbiAgICAgIExJVkVLSVRfSE9TVDogaHR0cDovL2xpdmVraXQ6Nzg4MFxyXG4gICAgICBMSVZFS0lUX1BVQkxJQ19VUkw6IFwiJHtMSVZFS0lUX1BVQkxJQ19VUkw6P0xJVkVLSVRfUFVCTElDX1VSTCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBMSVZFS0lUX0FQSV9LRVk6IFwiJHtMSVZFS0lUX0FQSV9LRVk6P0xJVkVLSVRfQVBJX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBMSVZFS0lUX0FQSV9TRUNSRVQ6IFwiJHtMSVZFS0lUX0FQSV9TRUNSRVQ6P0xJVkVLSVRfQVBJX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBLTElQWV9BUElfS0VZOiBcIiR7S0xJUFlfQVBJX0tFWTotfVwiXHJcbiAgICAgIFZBUElEX1BVQkxJQ19LRVk6IFwiJHtWQVBJRF9QVUJMSUNfS0VZOi19XCJcclxuICAgICAgVkFQSURfUFJJVkFURV9LRVk6IFwiJHtWQVBJRF9QUklWQVRFX0tFWTotfVwiXHJcbiAgICAgIFZBUElEX1NVQkpFQ1Q6IFwiJHtWQVBJRF9TVUJKRUNUOi1tYWlsdG86YWRtaW5AZXhhbXBsZS5jb219XCJcclxuICAgICAgU01UUF9IT1NUOiBcIiR7U01UUF9IT1NUOi19XCJcclxuICAgICAgU01UUF9QT1JUOiBcIiR7U01UUF9QT1JUOi01ODd9XCJcclxuICAgICAgU01UUF9TRUNVUkU6IFwiJHtTTVRQX1NFQ1VSRTotZmFsc2V9XCJcclxuICAgICAgU01UUF9JR05PUkVfVExTOiBcIiR7U01UUF9JR05PUkVfVExTOi1mYWxzZX1cIlxyXG4gICAgICBTTVRQX1VTRVI6IFwiJHtTTVRQX1VTRVI6LX1cIlxyXG4gICAgICBTTVRQX1BBU1M6IFwiJHtTTVRQX1BBU1M6LX1cIlxyXG4gICAgICBTTVRQX0ZST006IFwiJHtTTVRQX0ZST006LW5vcmVwbHlAbmVidWx5bmsubG9jYWx9XCJcclxuICAgICAgU01UUF9GUk9NX05BTUU6IFwiJHtTTVRQX0ZST01fTkFNRTotTmVidWx5bmt9XCJcclxuICAgICAgRlJPTlRFTkRfVVJMOiBcIiR7RlJPTlRFTkRfVVJMOj9GUk9OVEVORF9VUkwgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgVFJVU1RfUFJPWFk6IFwiJHtUUlVTVF9QUk9YWTotdHJ1ZX1cIlxyXG4gICAgICBORUJVTFlOS19CVUlMRF9TSEE6IFwiJHtORUJVTFlOS19CVUlMRF9TSEE6LX1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgLSBwb3N0Z3Jlc1xyXG4gICAgICAtIHJlZGlzXHJcbiAgICAgIC0gZ2FyYWdlXHJcbiAgICAgIC0gbGl2ZWtpdFxyXG4gICAgICAtIGxpdmVraXQtZWdyZXNzXHJcbiAgICBleHBvc2U6XHJcbiAgICAgIC0gXCIzMDMwXCJcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG52b2x1bWVzOlxyXG4gIG5lYnVseW5rX3Bvc3RncmVzX2RhdGE6XHJcbiAgbmVidWx5bmtfcmVkaXNfZGF0YTpcclxuICBuZWJ1bHlua19nYXJhZ2VfbWV0YTpcclxuICBuZWJ1bHlua19nYXJhZ2VfZGF0YTpcclxuIiwiY29uZmlnIjoiIyBWYWx1ZXMgaW4gW3ZhcmlhYmxlc10gYXJlIHJlc29sdmVkIG9uY2Ugd2hlbiBEb2twbG95IGltcG9ydHMgdGhlIHRlbXBsYXRlLlxyXG4jIFRoZSBnZW5lcmF0ZWQgdmFsdWVzIGFyZSB0aGVuIHN0b3JlZCBpbiB0aGUgQ29tcG9zZSBzZXJ2aWNlIGVudmlyb25tZW50LlxyXG5bdmFyaWFibGVzXVxyXG5mcm9udGVuZF9kb21haW4gPSBcIiR7ZG9tYWlufVwiXHJcbmJhY2tlbmRfZG9tYWluID0gXCIke2RvbWFpbn1cIlxyXG5saXZla2l0X2RvbWFpbiA9IFwiJHtkb21haW59XCJcclxuZ2FyYWdlX2RvbWFpbiA9IFwiJHtkb21haW59XCJcclxuXHJcbnBvc3RncmVzX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcbmdhcmFnZV9ycGNfc2VjcmV0ID0gXCIke2hhc2g6NjR9XCJcclxuc3RvcmFnZV9zM19hY2Nlc3Nfa2V5ID0gXCIke3Bhc3N3b3JkOjI0fVwiXHJcbnN0b3JhZ2VfczNfc2VjcmV0X2tleSA9IFwiJHtwYXNzd29yZDo2NH1cIlxyXG5qd3Rfc2VjcmV0ID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcbmFpX3NlY3JldF9rZXkgPSBcIiR7cGFzc3dvcmQ6NjR9XCJcclxuYXV0aF8yZmFfc2VjcmV0X2tleSA9IFwiJHtwYXNzd29yZDo2NH1cIlxyXG5saXZla2l0X2FwaV9rZXkgPSBcIiR7cGFzc3dvcmQ6MjR9XCJcclxubGl2ZWtpdF9hcGlfc2VjcmV0ID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcblxyXG4jIEdlbmVyYXRlZCBzc2xpcC5pbyBkb21haW5zIGFyZSBIVFRQLW9ubHkgdW50aWwgRG9rcGxveSBUTFMgaXMgY29uZmlndXJlZC5cclxuZnJvbnRlbmRfdXJsID0gXCJodHRwOi8vJHtmcm9udGVuZF9kb21haW59XCJcclxuYmFja2VuZF91cmwgPSBcImh0dHA6Ly8ke2JhY2tlbmRfZG9tYWlufVwiXHJcbmxpdmVraXRfcHVibGljX3VybCA9IFwiaHR0cDovLyR7bGl2ZWtpdF9kb21haW59XCJcclxuZ2FyYWdlX3B1YmxpY191cmwgPSBcImh0dHA6Ly8ke2dhcmFnZV9kb21haW59XCJcclxuc291cmNlX3JlZiA9IFwic3RhYmxlXCJcclxuXHJcbltjb25maWddXHJcbmlzb2xhdGVkID0gdHJ1ZVxyXG5cclxuW1tjb25maWcuZG9tYWluc11dXHJcbnNlcnZpY2VOYW1lID0gXCJmcm9udGVuZFwiXHJcbnBvcnQgPSA4MDgwXHJcbmhvc3QgPSBcIiR7ZnJvbnRlbmRfZG9tYWlufVwiXHJcbnBhdGggPSBcIi9cIlxyXG5cclxuW1tjb25maWcuZG9tYWluc11dXHJcbnNlcnZpY2VOYW1lID0gXCJiYWNrZW5kXCJcclxucG9ydCA9IDMwMzBcclxuaG9zdCA9IFwiJHtiYWNrZW5kX2RvbWFpbn1cIlxyXG5wYXRoID0gXCIvXCJcclxuXHJcbltbY29uZmlnLmRvbWFpbnNdXVxyXG5zZXJ2aWNlTmFtZSA9IFwibGl2ZWtpdFwiXHJcbnBvcnQgPSA3ODgwXHJcbmhvc3QgPSBcIiR7bGl2ZWtpdF9kb21haW59XCJcclxucGF0aCA9IFwiL1wiXHJcblxyXG5bW2NvbmZpZy5kb21haW5zXV1cclxuc2VydmljZU5hbWUgPSBcImdhcmFnZVwiXHJcbnBvcnQgPSAzOTAwXHJcbmhvc3QgPSBcIiR7Z2FyYWdlX2RvbWFpbn1cIlxyXG5wYXRoID0gXCIvXCJcclxuXHJcbltjb25maWcuZW52XVxyXG5OT0RFX0VOViA9IFwiZGV2ZWxvcG1lbnRcIlxyXG5ORUJVTFlOS19TT1VSQ0VfUkVGID0gXCIke3NvdXJjZV9yZWZ9XCJcclxuUE9TVEdSRVNfREIgPSBcIm5lYnVseW5rXCJcclxuUE9TVEdSRVNfVVNFUiA9IFwibmVidWx5bmtcIlxyXG5QT1NUR1JFU19QQVNTV09SRCA9IFwiJHtwb3N0Z3Jlc19wYXNzd29yZH1cIlxyXG5HQVJBR0VfUlBDX1NFQ1JFVCA9IFwiJHtnYXJhZ2VfcnBjX3NlY3JldH1cIlxyXG5TVE9SQUdFX1MzX0FDQ0VTU19LRVkgPSBcIiR7c3RvcmFnZV9zM19hY2Nlc3Nfa2V5fVwiXHJcblNUT1JBR0VfUzNfU0VDUkVUX0tFWSA9IFwiJHtzdG9yYWdlX3MzX3NlY3JldF9rZXl9XCJcclxuU1RPUkFHRV9TM19CVUNLRVQgPSBcIm5lYnVseW5rLWZpbGVzXCJcclxuU1RPUkFHRV9TM19SRUdJT04gPSBcInVzLWVhc3QtMVwiXHJcbkpXVF9TRUNSRVQgPSBcIiR7and0X3NlY3JldH1cIlxyXG5BSV9TRUNSRVRfS0VZID0gXCIke2FpX3NlY3JldF9rZXl9XCJcclxuQVVUSF8yRkFfU0VDUkVUX0tFWSA9IFwiJHthdXRoXzJmYV9zZWNyZXRfa2V5fVwiXHJcbkxJVkVLSVRfQVBJX0tFWSA9IFwiJHtsaXZla2l0X2FwaV9rZXl9XCJcclxuTElWRUtJVF9BUElfU0VDUkVUID0gXCIke2xpdmVraXRfYXBpX3NlY3JldH1cIlxyXG5GUk9OVEVORF9VUkwgPSBcIiR7ZnJvbnRlbmRfdXJsfVwiXHJcblBBU1NLRVlfUlBfSUQgPSBcIiR7ZnJvbnRlbmRfZG9tYWlufVwiXHJcblZJVEVfQVBJX1VSTCA9IFwiJHtiYWNrZW5kX3VybH1cIlxyXG5MSVZFS0lUX1BVQkxJQ19VUkwgPSBcIiR7bGl2ZWtpdF9wdWJsaWNfdXJsfVwiXHJcblNUT1JBR0VfUzNfUFVCTElDX0VORFBPSU5UID0gXCIke2dhcmFnZV9wdWJsaWNfdXJsfVwiXHJcblxyXG4jIE9wdGlvbmFsIGludGVncmF0aW9ucy4gTGVhdmUgaW5zdGFuY2Utc3BlY2lmaWMgdmFsdWVzIGVtcHR5IHVudGlsIGNvbmZpZ3VyZWQuXHJcbktMSVBZX0FQSV9LRVkgPSBcIlwiXHJcblZBUElEX1BVQkxJQ19LRVkgPSBcIlwiXHJcblZBUElEX1BSSVZBVEVfS0VZID0gXCJcIlxyXG5WQVBJRF9TVUJKRUNUID0gXCJcIlxyXG5cclxuU01UUF9IT1NUID0gXCJcIlxyXG5TTVRQX1BPUlQgPSBcIjU4N1wiXHJcblNNVFBfU0VDVVJFID0gXCJmYWxzZVwiXHJcblNNVFBfSUdOT1JFX1RMUyA9IFwiZmFsc2VcIlxyXG5TTVRQX1VTRVIgPSBcIlwiXHJcblNNVFBfUEFTUyA9IFwiXCJcclxuU01UUF9GUk9NID0gXCJcIlxyXG5TTVRQX0ZST01fTkFNRSA9IFwiTmVidWx5bmtcIlxyXG5cclxuIyBPcHRpb25hbCBvcGVyYXRpb25hbCBhbmQgc2VjdXJpdHkgc2V0dGluZ3MuXHJcbkFVVEhFTlRJQ0FUSU9OX1JBVEVfTElNSVRfSVBfTElNSVQgPSBcIlwiXHJcbkFVVEhfQlJPV1NFUl9BQ0NFU1NfVE9LRU5fVFRMID0gXCIxNW1cIlxyXG5BVVRIX1JFRlJFU0hfVE9LRU5fVFRMID0gXCIxZFwiXHJcbkFVVEhfUkVNRU1CRVJfUkVGUkVTSF9UT0tFTl9UVEwgPSBcIjMwZFwiXHJcbkFVVEhfUkVGUkVTSF9DT09LSUVfTkFNRSA9IFwibmVidWx5bmtfcmVmcmVzaF9zZXNzaW9uXCJcclxuQVVUSF9DU1JGX0NPT0tJRV9OQU1FID0gXCJuZWJ1bHlua19jc3JmX3Rva2VuXCJcclxuQVVUSF9DT09LSUVfRE9NQUlOID0gXCJcIlxyXG5SQVRFX0xJTUlUX0RSSVZFUiA9IFwicmVkaXNcIlxyXG5BSV9QUk9WSURFUl9CQVNFX1VSTF9BTExPV0xJU1QgPSBcIlwiXHJcbkxPR19MRVZFTCA9IFwiaW5mb1wiXHJcbk1BWF9GSUxFX1NJWkUgPSBcIjI2MjE0NDAwXCJcclxuTUVFVElOR19UUkFOU0NSSVBUX1dBSVRfVElNRU9VVF9NUyA9IFwiMTgwMDAwMFwiXG5UUlVTVF9QUk9YWSA9IFwidHJ1ZVwiXHJcbk5FQlVMWU5LX0JVSUxEX1NIQSA9IFwiXCJcclxuIn0= diff --git a/blueprints/nebulynk/meta.json b/blueprints/nebulynk/meta.json index dcd4e4e1a..54b480332 100644 --- a/blueprints/nebulynk/meta.json +++ b/blueprints/nebulynk/meta.json @@ -1,7 +1,7 @@ { "id": "nebulynk", "name": "Nebulynk", - "version": "0.4.0", + "version": "stable", "description": "Nebulynk is a self-hosted collaboration platform for teams with real-time messaging, file sharing, video meetings, and AI-powered transcription and summaries.", "logo": "nebulynk.png", "links": { diff --git a/blueprints/nebulynk/template.toml b/blueprints/nebulynk/template.toml index 0890ddd0b..9e0d3bed4 100644 --- a/blueprints/nebulynk/template.toml +++ b/blueprints/nebulynk/template.toml @@ -99,6 +99,6 @@ RATE_LIMIT_DRIVER = "redis" AI_PROVIDER_BASE_URL_ALLOWLIST = "" LOG_LEVEL = "info" MAX_FILE_SIZE = "26214400" -MEETING_TRANSCRIPT_WAIT_TIMEOUT_MS = "1200000" +MEETING_TRANSCRIPT_WAIT_TIMEOUT_MS = "1800000" TRUST_PROXY = "true" NEBULYNK_BUILD_SHA = "" From 08e0637b572312ee22bd35ff75132c957145867a Mon Sep 17 00:00:00 2001 From: Mauricio Siu Date: Mon, 24 Aug 2026 21:00:45 -0600 Subject: [PATCH 6/7] nebulynk: drop import.base64 (not used by the templates build) Co-Authored-By: Claude Fable 5 --- blueprints/nebulynk/import.base64 | 1 - 1 file changed, 1 deletion(-) delete mode 100644 blueprints/nebulynk/import.base64 diff --git a/blueprints/nebulynk/import.base64 b/blueprints/nebulynk/import.base64 deleted file mode 100644 index 20d1841d9..000000000 --- a/blueprints/nebulynk/import.base64 +++ /dev/null @@ -1 +0,0 @@ -eyJjb21wb3NlIjoiIyBkb2twbG95OiBhbGxvdy1ob3N0LXBvcnRzXHJcbiMgTGl2ZUtpdCByZXF1aXJlcyBwdWJsaWMgVENQL1VEUCBtZWRpYSBwb3J0cyA3ODgxIGFuZCA3ODgyIGZvciBXZWJSVEMuXHJcbiMgTmVidWx5bmsgRG9rcGxveSB0ZW1wbGF0ZS4gSW1wb3J0IHRoZSBnZW5lcmF0ZWQgaW1wb3J0LmJhc2U2NCBmaWxlIHRocm91Z2hcclxuIyBDb21wb3NlIC0+IEFkdmFuY2VkIC0+IEltcG9ydC4gRG9rcGxveSBvd25zIHJvdXRpbmcgYW5kIHRoZSBpc29sYXRlZCBuZXR3b3JrLlxyXG52ZXJzaW9uOiBcIjMuOFwiXHJcbnNlcnZpY2VzOlxyXG4gIGZyb250ZW5kOlxyXG4gICAgYnVpbGQ6XHJcbiAgICAgIGNvbnRleHQ6IFwiaHR0cHM6Ly9naXRodWIuY29tL3NhcGllbnRvcml1cy9OZWJ1bHluay5naXQjJHtORUJVTFlOS19TT1VSQ0VfUkVGOi1zdGFibGV9XCJcclxuICAgICAgZG9ja2VyZmlsZTogZnJvbnRlbmQvRG9ja2VyZmlsZVxyXG4gICAgICBhcmdzOlxyXG4gICAgICAgIE5PREVfSU1BR0U6IFwiJHtORUJVTFlOS19OT0RFX0lNQUdFOi1ub2RlOjIyLjIzLjEtYWxwaW5lMy4yNH1cIlxyXG4gICAgICAgIE5HSU5YX0lNQUdFOiBcIiR7TkVCVUxZTktfTkdJTlhfSU1BR0U6LW5naW54aW5jL25naW54LXVucHJpdmlsZWdlZDoxLjMxLWFscGluZTMuMjNAc2hhMjU2OjYzMjAwMjBjN2RhODcxNGZlYWI1MjRlMDJjMDhjNWExOTU4Njc1YzRlNjg3MDBlOTNhMmZkODk3MGIwNjU3ODZ9XCJcclxuICAgICAgICAjIFRoZXNlIFVSTHMgYXJlIGJha2VkIGludG8gdGhlIGJyb3dzZXIgYnVuZGxlLlxyXG4gICAgICAgIFZJVEVfQVBJX1VSTDogXCIke1ZJVEVfQVBJX1VSTDo/VklURV9BUElfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgICAgVklURV9MSVZFS0lUX1VSTDogXCIke0xJVkVLSVRfUFVCTElDX1VSTDo/TElWRUtJVF9QVUJMSUNfVVJMIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgICAgVklURV9WQVBJRF9QVUJMSUNfS0VZOiBcIiR7VkFQSURfUFVCTElDX0tFWTotfVwiXHJcbiAgICAgICAgVklURV9BVVRIX0NTUkZfQ09PS0lFX05BTUU6IFwiJHtBVVRIX0NTUkZfQ09PS0lFX05BTUU6LW5lYnVseW5rX2NzcmZfdG9rZW59XCJcclxuICAgIGRlcGVuZHNfb246XHJcbiAgICAgIC0gYmFja2VuZFxyXG4gICAgZXhwb3NlOlxyXG4gICAgICAtIFwiODA4MFwiXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICBwb3N0Z3JlczpcclxuICAgIGltYWdlOiBcIiR7TkVCVUxZTktfUE9TVEdSRVNfSU1BR0U6LXBvc3RncmVzOjE3LWFscGluZTMuMjRAc2hhMjU2Ojc0MmY0MGVhMjBiOWZmMmZmMzFkYjU0NThkMTI3NDUyOTg4YTIxNjRkZjllMTc0NDFlMTkxZjNiNzIyNTIxOTN9XCJcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBQT1NUR1JFU19EQjogXCIke1BPU1RHUkVTX0RCOi1uZWJ1bHlua31cIlxyXG4gICAgICBQT1NUR1JFU19VU0VSOiBcIiR7UE9TVEdSRVNfVVNFUjotbmVidWx5bmt9XCJcclxuICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IFwiJHtQT1NUR1JFU19QQVNTV09SRDo/UE9TVEdSRVNfUEFTU1dPUkQgbXVzdCBiZSBzZXR9XCJcclxuICAgIHZvbHVtZXM6XHJcbiAgICAgIC0gbmVidWx5bmtfcG9zdGdyZXNfZGF0YTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGFcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIHJlZGlzOlxyXG4gICAgaW1hZ2U6IFwiJHtORUJVTFlOS19SRURJU19JTUFHRTotcmVkaXM6Ny40LjctYWxwaW5lMy4yMX1cIlxyXG4gICAgdm9sdW1lczpcclxuICAgICAgLSBuZWJ1bHlua19yZWRpc19kYXRhOi9kYXRhXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICAjIFByZXBhcmUgbmFtZWQgR2FyYWdlIHZvbHVtZXMgZm9yIHRoZSB1bnByaXZpbGVnZWQgR2FyYWdlIHByb2Nlc3MuXHJcbiAgZ2FyYWdlLXZvbHVtZS1pbml0OlxyXG4gICAgaW1hZ2U6IGFscGluZTozLjIxLjVcclxuICAgIHVzZXI6IFwiMDowXCJcclxuICAgIGNvbW1hbmQ6IFtcInNoXCIsIFwiLWVjXCIsIFwiY2hvd24gLVIgNjU1MzI6NjU1MzIgL3Zhci9saWIvZ2FyYWdlL21ldGEgL3Zhci9saWIvZ2FyYWdlL2RhdGFcIl1cclxuICAgIHZvbHVtZXM6XHJcbiAgICAgIC0gbmVidWx5bmtfZ2FyYWdlX21ldGE6L3Zhci9saWIvZ2FyYWdlL21ldGFcclxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfZGF0YTovdmFyL2xpYi9nYXJhZ2UvZGF0YVxyXG4gICAgcmVzdGFydDogXCJub1wiXHJcblxyXG4gIGdhcmFnZTpcclxuICAgIGJ1aWxkOlxyXG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXHJcbiAgICAgIGRvY2tlcmZpbGU6IGdhcmFnZS5Eb2NrZXJmaWxlXHJcbiAgICAgIGFyZ3M6XHJcbiAgICAgICAgR0FSQUdFX0lNQUdFOiBcIiR7TkVCVUxZTktfR0FSQUdFX0lNQUdFOi1keGZscnMvZ2FyYWdlOnYyLjMuMH1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgZ2FyYWdlLXZvbHVtZS1pbml0OlxyXG4gICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9jb21wbGV0ZWRfc3VjY2Vzc2Z1bGx5XHJcbiAgICBjb21tYW5kOiAvZ2FyYWdlIHNlcnZlciAtLXNpbmdsZS1ub2RlIC0tZGVmYXVsdC1idWNrZXRcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBHQVJBR0VfUlBDX1NFQ1JFVDogXCIke0dBUkFHRV9SUENfU0VDUkVUOj9HQVJBR0VfUlBDX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBHQVJBR0VfREVGQVVMVF9BQ0NFU1NfS0VZOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgR0FSQUdFX0RFRkFVTFRfU0VDUkVUX0tFWTogXCIke1NUT1JBR0VfUzNfU0VDUkVUX0tFWTo/U1RPUkFHRV9TM19TRUNSRVRfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIEdBUkFHRV9ERUZBVUxUX0JVQ0tFVDogXCIke1NUT1JBR0VfUzNfQlVDS0VUOi1uZWJ1bHluay1maWxlc31cIlxyXG4gICAgdm9sdW1lczpcclxuICAgICAgLSBuZWJ1bHlua19nYXJhZ2VfbWV0YTovdmFyL2xpYi9nYXJhZ2UvbWV0YVxyXG4gICAgICAtIG5lYnVseW5rX2dhcmFnZV9kYXRhOi92YXIvbGliL2dhcmFnZS9kYXRhXHJcbiAgICBleHBvc2U6XHJcbiAgICAgIC0gXCIzOTAwXCJcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIGxpdmVraXQ6XHJcbiAgICBidWlsZDpcclxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxyXG4gICAgICBkb2NrZXJmaWxlOiBsaXZla2l0LkRvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBMSVZFS0lUX1NFUlZFUl9JTUFHRTogXCIke05FQlVMWU5LX0xJVkVLSVRfU0VSVkVSX0lNQUdFOi1saXZla2l0L2xpdmVraXQtc2VydmVyOnYxLjEzLjR9XCJcclxuICAgIGNvbW1hbmQ6IC0tY29uZmlnIC9saXZla2l0LnlhbWxcclxuICAgIGRlcGVuZHNfb246XHJcbiAgICAgIC0gcmVkaXNcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBMSVZFS0lUX0tFWVM6IFwiJHtMSVZFS0lUX0FQSV9LRVk6P0xJVkVLSVRfQVBJX0tFWSBtdXN0IGJlIHNldH06ICR7TElWRUtJVF9BUElfU0VDUkVUOj9MSVZFS0lUX0FQSV9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgIGV4cG9zZTpcclxuICAgICAgLSBcIjc4ODBcIlxyXG4gICAgcG9ydHM6XHJcbiAgICAgIC0gXCI3ODgxOjc4ODFcIlxyXG4gICAgICAtIFwiNzg4Mjo3ODgyL3VkcFwiXHJcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxyXG5cclxuICBsaXZla2l0LWVncmVzczpcclxuICAgIGJ1aWxkOlxyXG4gICAgICBjb250ZXh0OiBcImh0dHBzOi8vZ2l0aHViLmNvbS9zYXBpZW50b3JpdXMvTmVidWx5bmsuZ2l0IyR7TkVCVUxZTktfU09VUkNFX1JFRjotc3RhYmxlfVwiXHJcbiAgICAgIGRvY2tlcmZpbGU6IGxpdmVraXQtZWdyZXNzLkRvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBMSVZFS0lUX0VHUkVTU19JTUFHRTogXCIke05FQlVMWU5LX0xJVkVLSVRfRUdSRVNTX0lNQUdFOi1saXZla2l0L2VncmVzczp2MS4xMy4wfVwiXHJcbiAgICBjb21tYW5kOiAtLWNvbmZpZyAvbGl2ZWtpdC1lZ3Jlc3MueWFtbFxyXG4gICAgZW52aXJvbm1lbnQ6XHJcbiAgICAgIEVHUkVTU19DT05GSUdfRklMRTogL2xpdmVraXQtZWdyZXNzLnlhbWxcclxuICAgICAgTElWRUtJVF9BUElfS0VZOiBcIiR7TElWRUtJVF9BUElfS0VZOj9MSVZFS0lUX0FQSV9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgTElWRUtJVF9BUElfU0VDUkVUOiBcIiR7TElWRUtJVF9BUElfU0VDUkVUOj9MSVZFS0lUX0FQSV9TRUNSRVQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgTElWRUtJVF9XU19VUkw6IHdzOi8vbGl2ZWtpdDo3ODgwXHJcbiAgICAgIEFXU19BQ0NFU1NfS0VZX0lEOiBcIiR7U1RPUkFHRV9TM19BQ0NFU1NfS0VZOj9TVE9SQUdFX1MzX0FDQ0VTU19LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZOiBcIiR7U1RPUkFHRV9TM19TRUNSRVRfS0VZOj9TVE9SQUdFX1MzX1NFQ1JFVF9LRVkgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgQVdTX0RFRkFVTFRfUkVHSU9OOiBcIiR7U1RPUkFHRV9TM19SRUdJT046LSR7TUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjotdXMtZWFzdC0xfX1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgLSBsaXZla2l0XHJcbiAgICAgIC0gcmVkaXNcclxuICAgICAgLSBnYXJhZ2VcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG4gIGJhY2tlbmQ6XHJcbiAgICBidWlsZDpcclxuICAgICAgY29udGV4dDogXCJodHRwczovL2dpdGh1Yi5jb20vc2FwaWVudG9yaXVzL05lYnVseW5rLmdpdCMke05FQlVMWU5LX1NPVVJDRV9SRUY6LXN0YWJsZX1cIlxyXG4gICAgICBkb2NrZXJmaWxlOiBiYWNrZW5kL0RvY2tlcmZpbGVcclxuICAgICAgYXJnczpcclxuICAgICAgICBOT0RFX0lNQUdFOiBcIiR7TkVCVUxZTktfTk9ERV9JTUFHRTotbm9kZToyMi4yMy4xLWFscGluZTMuMjR9XCJcclxuICAgIGVudmlyb25tZW50OlxyXG4gICAgICBOT0RFX0VOVjogXCIke05PREVfRU5WOi1kZXZlbG9wbWVudH1cIlxyXG4gICAgICBKV1RfU0VDUkVUOiBcIiR7SldUX1NFQ1JFVDo/SldUX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBBSV9TRUNSRVRfS0VZOiBcIiR7QUlfU0VDUkVUX0tFWTo/QUlfU0VDUkVUX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBBVVRIXzJGQV9TRUNSRVRfS0VZOiBcIiR7QVVUSF8yRkFfU0VDUkVUX0tFWTotfVwiXHJcbiAgICAgIEJBQ0tFTkRfUE9SVDogXCIke0JBQ0tFTkRfUE9SVDotMzAzMH1cIlxyXG4gICAgICBMT0dfTEVWRUw6IFwiJHtMT0dfTEVWRUw6LWluZm99XCJcclxuICAgICAgTUFYX0ZJTEVfU0laRTogXCIke01BWF9GSUxFX1NJWkU6LTI2MjE0NDAwfVwiXHJcbiAgICAgIEFVVEhFTlRJQ0FUSU9OX1JBVEVfTElNSVRfSVBfTElNSVQ6IFwiJHtBVVRIRU5USUNBVElPTl9SQVRFX0xJTUlUX0lQX0xJTUlUOi19XCJcclxuICAgICAgQVVUSF9CUk9XU0VSX0FDQ0VTU19UT0tFTl9UVEw6IFwiJHtBVVRIX0JST1dTRVJfQUNDRVNTX1RPS0VOX1RUTDotMTVtfVwiXHJcbiAgICAgIEFVVEhfUkVGUkVTSF9UT0tFTl9UVEw6IFwiJHtBVVRIX1JFRlJFU0hfVE9LRU5fVFRMOi0xZH1cIlxyXG4gICAgICBBVVRIX1JFTUVNQkVSX1JFRlJFU0hfVE9LRU5fVFRMOiBcIiR7QVVUSF9SRU1FTUJFUl9SRUZSRVNIX1RPS0VOX1RUTDotMzBkfVwiXHJcbiAgICAgIEFVVEhfUkVGUkVTSF9DT09LSUVfTkFNRTogXCIke0FVVEhfUkVGUkVTSF9DT09LSUVfTkFNRTotbmVidWx5bmtfcmVmcmVzaF9zZXNzaW9ufVwiXHJcbiAgICAgIEFVVEhfQ1NSRl9DT09LSUVfTkFNRTogXCIke0FVVEhfQ1NSRl9DT09LSUVfTkFNRTotbmVidWx5bmtfY3NyZl90b2tlbn1cIlxyXG4gICAgICBBVVRIX0NPT0tJRV9ET01BSU46IFwiJHtBVVRIX0NPT0tJRV9ET01BSU46LX1cIlxyXG4gICAgICBSQVRFX0xJTUlUX0RSSVZFUjogXCIke1JBVEVfTElNSVRfRFJJVkVSOi1yZWRpc31cIlxyXG4gICAgICBQQVNTS0VZX1JQX0lEOiBcIiR7UEFTU0tFWV9SUF9JRDo/UEFTU0tFWV9SUF9JRCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBBSV9QUk9WSURFUl9CQVNFX1VSTF9BTExPV0xJU1Q6IFwiJHtBSV9QUk9WSURFUl9CQVNFX1VSTF9BTExPV0xJU1Q6LX1cIlxyXG4gICAgICBQT1NUR1JFU19IT1NUOiBwb3N0Z3Jlc1xyXG4gICAgICBQT1NUR1JFU19QT1JUOiBcIjU0MzJcIlxyXG4gICAgICBQT1NUR1JFU19EQjogXCIke1BPU1RHUkVTX0RCOi1uZWJ1bHlua31cIlxyXG4gICAgICBQT1NUR1JFU19VU0VSOiBcIiR7UE9TVEdSRVNfVVNFUjotbmVidWx5bmt9XCJcclxuICAgICAgUE9TVEdSRVNfUEFTU1dPUkQ6IFwiJHtQT1NUR1JFU19QQVNTV09SRDo/UE9TVEdSRVNfUEFTU1dPUkQgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgUkVESVNfSE9TVDogcmVkaXNcclxuICAgICAgUkVESVNfUE9SVDogXCI2Mzc5XCJcclxuICAgICAgU1RPUkFHRV9TM19FTkRQT0lOVDogaHR0cDovL2dhcmFnZTozOTAwXHJcbiAgICAgIFNUT1JBR0VfUzNfUFVCTElDX0VORFBPSU5UOiBcIiR7U1RPUkFHRV9TM19QVUJMSUNfRU5EUE9JTlQ6P1NUT1JBR0VfUzNfUFVCTElDX0VORFBPSU5UIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfQUNDRVNTX0tFWTogXCIke1NUT1JBR0VfUzNfQUNDRVNTX0tFWTo/U1RPUkFHRV9TM19BQ0NFU1NfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfU0VDUkVUX0tFWTogXCIke1NUT1JBR0VfUzNfU0VDUkVUX0tFWTo/U1RPUkFHRV9TM19TRUNSRVRfS0VZIG11c3QgYmUgc2V0fVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfQlVDS0VUOiBcIiR7U1RPUkFHRV9TM19CVUNLRVQ6LW5lYnVseW5rLWZpbGVzfVwiXHJcbiAgICAgIFNUT1JBR0VfUzNfUkVHSU9OOiBcIiR7U1RPUkFHRV9TM19SRUdJT046LSR7TUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjotdXMtZWFzdC0xfX1cIlxyXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfUFJFRklYOiBtZWV0aW5nLXJlY29yZGluZ3NcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX0JVQ0tFVDogXCIke1NUT1JBR0VfUzNfQlVDS0VUOi1uZWJ1bHluay1maWxlc31cIlxyXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfUzNfRU5EUE9JTlQ6IGh0dHA6Ly9nYXJhZ2U6MzkwMFxyXG4gICAgICBNRUVUSU5HX1JFQ09SRElOR1NfRUdSRVNTX1MzX0VORFBPSU5UOiBodHRwOi8vZ2FyYWdlOjM5MDBcclxuICAgICAgTUVFVElOR19SRUNPUkRJTkdTX1MzX1JFR0lPTjogXCIke01FRVRJTkdfUkVDT1JESU5HU19TM19SRUdJT046LSR7U1RPUkFHRV9TM19SRUdJT046LXVzLWVhc3QtMX19XCJcclxuICAgICAgTUVFVElOR19UUkFOU0NSSVBUX1dBSVRfVElNRU9VVF9NUzogXCIke01FRVRJTkdfVFJBTlNDUklQVF9XQUlUX1RJTUVPVVRfTVM6LTE4MDAwMDB9XCJcbiAgICAgIExJVkVLSVRfSE9TVDogaHR0cDovL2xpdmVraXQ6Nzg4MFxyXG4gICAgICBMSVZFS0lUX1BVQkxJQ19VUkw6IFwiJHtMSVZFS0lUX1BVQkxJQ19VUkw6P0xJVkVLSVRfUFVCTElDX1VSTCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBMSVZFS0lUX0FQSV9LRVk6IFwiJHtMSVZFS0lUX0FQSV9LRVk6P0xJVkVLSVRfQVBJX0tFWSBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBMSVZFS0lUX0FQSV9TRUNSRVQ6IFwiJHtMSVZFS0lUX0FQSV9TRUNSRVQ6P0xJVkVLSVRfQVBJX1NFQ1JFVCBtdXN0IGJlIHNldH1cIlxyXG4gICAgICBLTElQWV9BUElfS0VZOiBcIiR7S0xJUFlfQVBJX0tFWTotfVwiXHJcbiAgICAgIFZBUElEX1BVQkxJQ19LRVk6IFwiJHtWQVBJRF9QVUJMSUNfS0VZOi19XCJcclxuICAgICAgVkFQSURfUFJJVkFURV9LRVk6IFwiJHtWQVBJRF9QUklWQVRFX0tFWTotfVwiXHJcbiAgICAgIFZBUElEX1NVQkpFQ1Q6IFwiJHtWQVBJRF9TVUJKRUNUOi1tYWlsdG86YWRtaW5AZXhhbXBsZS5jb219XCJcclxuICAgICAgU01UUF9IT1NUOiBcIiR7U01UUF9IT1NUOi19XCJcclxuICAgICAgU01UUF9QT1JUOiBcIiR7U01UUF9QT1JUOi01ODd9XCJcclxuICAgICAgU01UUF9TRUNVUkU6IFwiJHtTTVRQX1NFQ1VSRTotZmFsc2V9XCJcclxuICAgICAgU01UUF9JR05PUkVfVExTOiBcIiR7U01UUF9JR05PUkVfVExTOi1mYWxzZX1cIlxyXG4gICAgICBTTVRQX1VTRVI6IFwiJHtTTVRQX1VTRVI6LX1cIlxyXG4gICAgICBTTVRQX1BBU1M6IFwiJHtTTVRQX1BBU1M6LX1cIlxyXG4gICAgICBTTVRQX0ZST006IFwiJHtTTVRQX0ZST006LW5vcmVwbHlAbmVidWx5bmsubG9jYWx9XCJcclxuICAgICAgU01UUF9GUk9NX05BTUU6IFwiJHtTTVRQX0ZST01fTkFNRTotTmVidWx5bmt9XCJcclxuICAgICAgRlJPTlRFTkRfVVJMOiBcIiR7RlJPTlRFTkRfVVJMOj9GUk9OVEVORF9VUkwgbXVzdCBiZSBzZXR9XCJcclxuICAgICAgVFJVU1RfUFJPWFk6IFwiJHtUUlVTVF9QUk9YWTotdHJ1ZX1cIlxyXG4gICAgICBORUJVTFlOS19CVUlMRF9TSEE6IFwiJHtORUJVTFlOS19CVUlMRF9TSEE6LX1cIlxyXG4gICAgZGVwZW5kc19vbjpcclxuICAgICAgLSBwb3N0Z3Jlc1xyXG4gICAgICAtIHJlZGlzXHJcbiAgICAgIC0gZ2FyYWdlXHJcbiAgICAgIC0gbGl2ZWtpdFxyXG4gICAgICAtIGxpdmVraXQtZWdyZXNzXHJcbiAgICBleHBvc2U6XHJcbiAgICAgIC0gXCIzMDMwXCJcclxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXHJcblxyXG52b2x1bWVzOlxyXG4gIG5lYnVseW5rX3Bvc3RncmVzX2RhdGE6XHJcbiAgbmVidWx5bmtfcmVkaXNfZGF0YTpcclxuICBuZWJ1bHlua19nYXJhZ2VfbWV0YTpcclxuICBuZWJ1bHlua19nYXJhZ2VfZGF0YTpcclxuIiwiY29uZmlnIjoiIyBWYWx1ZXMgaW4gW3ZhcmlhYmxlc10gYXJlIHJlc29sdmVkIG9uY2Ugd2hlbiBEb2twbG95IGltcG9ydHMgdGhlIHRlbXBsYXRlLlxyXG4jIFRoZSBnZW5lcmF0ZWQgdmFsdWVzIGFyZSB0aGVuIHN0b3JlZCBpbiB0aGUgQ29tcG9zZSBzZXJ2aWNlIGVudmlyb25tZW50LlxyXG5bdmFyaWFibGVzXVxyXG5mcm9udGVuZF9kb21haW4gPSBcIiR7ZG9tYWlufVwiXHJcbmJhY2tlbmRfZG9tYWluID0gXCIke2RvbWFpbn1cIlxyXG5saXZla2l0X2RvbWFpbiA9IFwiJHtkb21haW59XCJcclxuZ2FyYWdlX2RvbWFpbiA9IFwiJHtkb21haW59XCJcclxuXHJcbnBvc3RncmVzX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcbmdhcmFnZV9ycGNfc2VjcmV0ID0gXCIke2hhc2g6NjR9XCJcclxuc3RvcmFnZV9zM19hY2Nlc3Nfa2V5ID0gXCIke3Bhc3N3b3JkOjI0fVwiXHJcbnN0b3JhZ2VfczNfc2VjcmV0X2tleSA9IFwiJHtwYXNzd29yZDo2NH1cIlxyXG5qd3Rfc2VjcmV0ID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcbmFpX3NlY3JldF9rZXkgPSBcIiR7cGFzc3dvcmQ6NjR9XCJcclxuYXV0aF8yZmFfc2VjcmV0X2tleSA9IFwiJHtwYXNzd29yZDo2NH1cIlxyXG5saXZla2l0X2FwaV9rZXkgPSBcIiR7cGFzc3dvcmQ6MjR9XCJcclxubGl2ZWtpdF9hcGlfc2VjcmV0ID0gXCIke3Bhc3N3b3JkOjY0fVwiXHJcblxyXG4jIEdlbmVyYXRlZCBzc2xpcC5pbyBkb21haW5zIGFyZSBIVFRQLW9ubHkgdW50aWwgRG9rcGxveSBUTFMgaXMgY29uZmlndXJlZC5cclxuZnJvbnRlbmRfdXJsID0gXCJodHRwOi8vJHtmcm9udGVuZF9kb21haW59XCJcclxuYmFja2VuZF91cmwgPSBcImh0dHA6Ly8ke2JhY2tlbmRfZG9tYWlufVwiXHJcbmxpdmVraXRfcHVibGljX3VybCA9IFwiaHR0cDovLyR7bGl2ZWtpdF9kb21haW59XCJcclxuZ2FyYWdlX3B1YmxpY191cmwgPSBcImh0dHA6Ly8ke2dhcmFnZV9kb21haW59XCJcclxuc291cmNlX3JlZiA9IFwic3RhYmxlXCJcclxuXHJcbltjb25maWddXHJcbmlzb2xhdGVkID0gdHJ1ZVxyXG5cclxuW1tjb25maWcuZG9tYWluc11dXHJcbnNlcnZpY2VOYW1lID0gXCJmcm9udGVuZFwiXHJcbnBvcnQgPSA4MDgwXHJcbmhvc3QgPSBcIiR7ZnJvbnRlbmRfZG9tYWlufVwiXHJcbnBhdGggPSBcIi9cIlxyXG5cclxuW1tjb25maWcuZG9tYWluc11dXHJcbnNlcnZpY2VOYW1lID0gXCJiYWNrZW5kXCJcclxucG9ydCA9IDMwMzBcclxuaG9zdCA9IFwiJHtiYWNrZW5kX2RvbWFpbn1cIlxyXG5wYXRoID0gXCIvXCJcclxuXHJcbltbY29uZmlnLmRvbWFpbnNdXVxyXG5zZXJ2aWNlTmFtZSA9IFwibGl2ZWtpdFwiXHJcbnBvcnQgPSA3ODgwXHJcbmhvc3QgPSBcIiR7bGl2ZWtpdF9kb21haW59XCJcclxucGF0aCA9IFwiL1wiXHJcblxyXG5bW2NvbmZpZy5kb21haW5zXV1cclxuc2VydmljZU5hbWUgPSBcImdhcmFnZVwiXHJcbnBvcnQgPSAzOTAwXHJcbmhvc3QgPSBcIiR7Z2FyYWdlX2RvbWFpbn1cIlxyXG5wYXRoID0gXCIvXCJcclxuXHJcbltjb25maWcuZW52XVxyXG5OT0RFX0VOViA9IFwiZGV2ZWxvcG1lbnRcIlxyXG5ORUJVTFlOS19TT1VSQ0VfUkVGID0gXCIke3NvdXJjZV9yZWZ9XCJcclxuUE9TVEdSRVNfREIgPSBcIm5lYnVseW5rXCJcclxuUE9TVEdSRVNfVVNFUiA9IFwibmVidWx5bmtcIlxyXG5QT1NUR1JFU19QQVNTV09SRCA9IFwiJHtwb3N0Z3Jlc19wYXNzd29yZH1cIlxyXG5HQVJBR0VfUlBDX1NFQ1JFVCA9IFwiJHtnYXJhZ2VfcnBjX3NlY3JldH1cIlxyXG5TVE9SQUdFX1MzX0FDQ0VTU19LRVkgPSBcIiR7c3RvcmFnZV9zM19hY2Nlc3Nfa2V5fVwiXHJcblNUT1JBR0VfUzNfU0VDUkVUX0tFWSA9IFwiJHtzdG9yYWdlX3MzX3NlY3JldF9rZXl9XCJcclxuU1RPUkFHRV9TM19CVUNLRVQgPSBcIm5lYnVseW5rLWZpbGVzXCJcclxuU1RPUkFHRV9TM19SRUdJT04gPSBcInVzLWVhc3QtMVwiXHJcbkpXVF9TRUNSRVQgPSBcIiR7and0X3NlY3JldH1cIlxyXG5BSV9TRUNSRVRfS0VZID0gXCIke2FpX3NlY3JldF9rZXl9XCJcclxuQVVUSF8yRkFfU0VDUkVUX0tFWSA9IFwiJHthdXRoXzJmYV9zZWNyZXRfa2V5fVwiXHJcbkxJVkVLSVRfQVBJX0tFWSA9IFwiJHtsaXZla2l0X2FwaV9rZXl9XCJcclxuTElWRUtJVF9BUElfU0VDUkVUID0gXCIke2xpdmVraXRfYXBpX3NlY3JldH1cIlxyXG5GUk9OVEVORF9VUkwgPSBcIiR7ZnJvbnRlbmRfdXJsfVwiXHJcblBBU1NLRVlfUlBfSUQgPSBcIiR7ZnJvbnRlbmRfZG9tYWlufVwiXHJcblZJVEVfQVBJX1VSTCA9IFwiJHtiYWNrZW5kX3VybH1cIlxyXG5MSVZFS0lUX1BVQkxJQ19VUkwgPSBcIiR7bGl2ZWtpdF9wdWJsaWNfdXJsfVwiXHJcblNUT1JBR0VfUzNfUFVCTElDX0VORFBPSU5UID0gXCIke2dhcmFnZV9wdWJsaWNfdXJsfVwiXHJcblxyXG4jIE9wdGlvbmFsIGludGVncmF0aW9ucy4gTGVhdmUgaW5zdGFuY2Utc3BlY2lmaWMgdmFsdWVzIGVtcHR5IHVudGlsIGNvbmZpZ3VyZWQuXHJcbktMSVBZX0FQSV9LRVkgPSBcIlwiXHJcblZBUElEX1BVQkxJQ19LRVkgPSBcIlwiXHJcblZBUElEX1BSSVZBVEVfS0VZID0gXCJcIlxyXG5WQVBJRF9TVUJKRUNUID0gXCJcIlxyXG5cclxuU01UUF9IT1NUID0gXCJcIlxyXG5TTVRQX1BPUlQgPSBcIjU4N1wiXHJcblNNVFBfU0VDVVJFID0gXCJmYWxzZVwiXHJcblNNVFBfSUdOT1JFX1RMUyA9IFwiZmFsc2VcIlxyXG5TTVRQX1VTRVIgPSBcIlwiXHJcblNNVFBfUEFTUyA9IFwiXCJcclxuU01UUF9GUk9NID0gXCJcIlxyXG5TTVRQX0ZST01fTkFNRSA9IFwiTmVidWx5bmtcIlxyXG5cclxuIyBPcHRpb25hbCBvcGVyYXRpb25hbCBhbmQgc2VjdXJpdHkgc2V0dGluZ3MuXHJcbkFVVEhFTlRJQ0FUSU9OX1JBVEVfTElNSVRfSVBfTElNSVQgPSBcIlwiXHJcbkFVVEhfQlJPV1NFUl9BQ0NFU1NfVE9LRU5fVFRMID0gXCIxNW1cIlxyXG5BVVRIX1JFRlJFU0hfVE9LRU5fVFRMID0gXCIxZFwiXHJcbkFVVEhfUkVNRU1CRVJfUkVGUkVTSF9UT0tFTl9UVEwgPSBcIjMwZFwiXHJcbkFVVEhfUkVGUkVTSF9DT09LSUVfTkFNRSA9IFwibmVidWx5bmtfcmVmcmVzaF9zZXNzaW9uXCJcclxuQVVUSF9DU1JGX0NPT0tJRV9OQU1FID0gXCJuZWJ1bHlua19jc3JmX3Rva2VuXCJcclxuQVVUSF9DT09LSUVfRE9NQUlOID0gXCJcIlxyXG5SQVRFX0xJTUlUX0RSSVZFUiA9IFwicmVkaXNcIlxyXG5BSV9QUk9WSURFUl9CQVNFX1VSTF9BTExPV0xJU1QgPSBcIlwiXHJcbkxPR19MRVZFTCA9IFwiaW5mb1wiXHJcbk1BWF9GSUxFX1NJWkUgPSBcIjI2MjE0NDAwXCJcclxuTUVFVElOR19UUkFOU0NSSVBUX1dBSVRfVElNRU9VVF9NUyA9IFwiMTgwMDAwMFwiXG5UUlVTVF9QUk9YWSA9IFwidHJ1ZVwiXHJcbk5FQlVMWU5LX0JVSUxEX1NIQSA9IFwiXCJcclxuIn0= From 299ef205a3e7ce0a8cca23c61415ced7159de98f Mon Sep 17 00:00:00 2001 From: Alexander Zerling Date: Wed, 26 Aug 2026 11:35:14 +0200 Subject: [PATCH 7/7] Refactor Nebulynk Docker Compose and template configuration for improved clarity and functionality --- blueprints/nebulynk/docker-compose.yml | 29 +++++++--------- blueprints/nebulynk/template.toml | 48 ++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 17 deletions(-) diff --git a/blueprints/nebulynk/docker-compose.yml b/blueprints/nebulynk/docker-compose.yml index e09f15608..aecbd6909 100644 --- a/blueprints/nebulynk/docker-compose.yml +++ b/blueprints/nebulynk/docker-compose.yml @@ -1,7 +1,6 @@ # dokploy: allow-host-ports # LiveKit requires public TCP/UDP media ports 7881 and 7882 for WebRTC. -# Nebulynk Dokploy template. Import the generated import.base64 file through -# Compose -> Advanced -> Import. Dokploy owns routing and the isolated network. +# Dokploy owns routing and the isolated network. version: "3.8" services: frontend: @@ -49,11 +48,8 @@ services: restart: "no" garage: - build: - context: "https://github.com/sapientorius/Nebulynk.git#${NEBULYNK_SOURCE_REF:-stable}" - dockerfile: garage.Dockerfile - args: - GARAGE_IMAGE: "${NEBULYNK_GARAGE_IMAGE:-dxflrs/garage:v2.3.0}" + image: "${NEBULYNK_GARAGE_IMAGE:-dxflrs/garage:v2.3.0}" + user: "65532:65532" depends_on: garage-volume-init: condition: service_completed_successfully @@ -64,6 +60,7 @@ services: GARAGE_DEFAULT_SECRET_KEY: "${STORAGE_S3_SECRET_KEY:?STORAGE_S3_SECRET_KEY must be set}" GARAGE_DEFAULT_BUCKET: "${STORAGE_S3_BUCKET:-nebulynk-files}" volumes: + - ../files/garage.toml:/etc/garage.toml:ro - nebulynk_garage_meta:/var/lib/garage/meta - nebulynk_garage_data:/var/lib/garage/data expose: @@ -71,16 +68,15 @@ services: restart: unless-stopped livekit: - build: - context: "https://github.com/sapientorius/Nebulynk.git#${NEBULYNK_SOURCE_REF:-stable}" - dockerfile: livekit.Dockerfile - args: - LIVEKIT_SERVER_IMAGE: "${NEBULYNK_LIVEKIT_SERVER_IMAGE:-livekit/livekit-server:v1.13.4}" + image: "${NEBULYNK_LIVEKIT_SERVER_IMAGE:-livekit/livekit-server:v1.13.4}" + user: "65532:65532" command: --config /livekit.yaml depends_on: - redis environment: LIVEKIT_KEYS: "${LIVEKIT_API_KEY:?LIVEKIT_API_KEY must be set}: ${LIVEKIT_API_SECRET:?LIVEKIT_API_SECRET must be set}" + volumes: + - ../files/livekit.yaml:/livekit.yaml:ro expose: - "7880" ports: @@ -89,11 +85,8 @@ services: restart: unless-stopped livekit-egress: - build: - context: "https://github.com/sapientorius/Nebulynk.git#${NEBULYNK_SOURCE_REF:-stable}" - dockerfile: livekit-egress.Dockerfile - args: - LIVEKIT_EGRESS_IMAGE: "${NEBULYNK_LIVEKIT_EGRESS_IMAGE:-livekit/egress:v1.13.0}" + image: "${NEBULYNK_LIVEKIT_EGRESS_IMAGE:-livekit/egress:v1.13.0}" + user: egress command: --config /livekit-egress.yaml environment: EGRESS_CONFIG_FILE: /livekit-egress.yaml @@ -103,6 +96,8 @@ services: AWS_ACCESS_KEY_ID: "${STORAGE_S3_ACCESS_KEY:?STORAGE_S3_ACCESS_KEY must be set}" AWS_SECRET_ACCESS_KEY: "${STORAGE_S3_SECRET_KEY:?STORAGE_S3_SECRET_KEY must be set}" AWS_DEFAULT_REGION: "${STORAGE_S3_REGION:-${MEETING_RECORDINGS_S3_REGION:-us-east-1}}" + volumes: + - ../files/livekit-egress.yaml:/livekit-egress.yaml:ro depends_on: - livekit - redis diff --git a/blueprints/nebulynk/template.toml b/blueprints/nebulynk/template.toml index 9e0d3bed4..c4d5c5162 100644 --- a/blueprints/nebulynk/template.toml +++ b/blueprints/nebulynk/template.toml @@ -102,3 +102,51 @@ MAX_FILE_SIZE = "26214400" MEETING_TRANSCRIPT_WAIT_TIMEOUT_MS = "1800000" TRUST_PROXY = "true" NEBULYNK_BUILD_SHA = "" + +[[config.mounts]] +filePath = "garage.toml" +content = """ +metadata_dir = "/var/lib/garage/meta" +data_dir = "/var/lib/garage/data" +db_engine = "sqlite" + +replication_factor = 1 +rpc_bind_addr = "[::]:3901" +rpc_public_addr = "garage:3901" + +[s3_api] +s3_region = "us-east-1" +api_bind_addr = "[::]:3900" +root_domain = ".s3.garage.localhost" +""" + +[[config.mounts]] +filePath = "livekit.yaml" +content = """ +port: 7880 +rtc: + udp_port: 7882 + tcp_port: 7881 + use_external_ip: true +redis: + address: redis:6379 +keys: + # Keys are overridden through LIVEKIT_KEYS, but this section must exist. +""" + +[[config.mounts]] +filePath = "livekit-egress.yaml" +content = """ +# LiveKit connection settings are provided through the environment so they +# cannot drift from the deployment's active credentials. +insecure: true +log_level: debug +health_port: 8080 + +redis: + address: redis:6379 + +s3: + bucket: nebulynk-files + endpoint: http://garage:3900 +"""