From 1244e5f12f0d99a7d6f8bb50a73d060609550098 Mon Sep 17 00:00:00 2001 From: Kaustubh-pande <41630109+Kaustubh-pande@users.noreply.github.com> Date: Thu, 28 Aug 2025 11:20:18 +0000 Subject: [PATCH] Run make generated-files --- .tekton/images-mirror-set.yaml | 190 +- .../serverless-operator-index/Dockerfile | 2 +- .../image_content_source_policy.yaml | 190 +- .../v4.14/catalog-template.yaml | 1040 +- .../catalog/serverless-operator/catalog.yaml | 181 + .../v4.15/catalog-template.yaml | 1040 +- .../catalog/serverless-operator/catalog.yaml | 181 + .../v4.16/catalog-template.yaml | 1040 +- .../catalog/serverless-operator/catalog.yaml | 181 + .../v4.17/catalog-template.yaml | 1040 +- .../catalog/serverless-operator/catalog.yaml | 377 + .../v4.18/catalog-template.yaml | 1040 +- .../catalog/serverless-operator/catalog.yaml | 377 + .../v4.19/catalog-template.yaml | 1040 +- .../catalog/serverless-operator/catalog.yaml | 377 + .../v4.20/catalog-template.yaml | 461 + .../catalog/serverless-operator/catalog.yaml | 8449 +++++++++++++++++ ...erless-operator.clusterserviceversion.yaml | 128 +- olm-catalog/serverless-operator/project.yaml | 2 +- 19 files changed, 13978 insertions(+), 3358 deletions(-) create mode 100644 olm-catalog/serverless-operator-index/v4.20/catalog-template.yaml create mode 100644 olm-catalog/serverless-operator-index/v4.20/catalog/serverless-operator/catalog.yaml diff --git a/.tekton/images-mirror-set.yaml b/.tekton/images-mirror-set.yaml index 2cddca6c19..7f9d37d207 100644 --- a/.tekton/images-mirror-set.yaml +++ b/.tekton/images-mirror-set.yaml @@ -4,193 +4,193 @@ metadata: name: mirror-set spec: imageDigestMirrors: - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/backstage-plugins-eventmesh", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/backstage-plugins-eventmesh"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/backstage-plugins-eventmesh", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/backstage-plugins-eventmesh"] source: "registry.redhat.io/openshift-serverless-1/backstage-plugins-eventmesh-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-istio-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-istio-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-istio-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-istio-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-istio-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-dispatcher"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-dispatcher"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-receiver", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-receiver"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-receiver", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-receiver"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-webhook"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/knative-client-plugin-event-sender", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/knative-client-plugin-event-sender"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/knative-client-plugin-event-sender", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/knative-client-plugin-event-sender"] source: "registry.redhat.io/openshift-serverless-1/knative-client-plugin-event-sender-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/client-kn", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/client-kn"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/client-kn", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/client-kn"] source: "registry.redhat.io/openshift-serverless-1/client-kn-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-apiserver-receive-adapter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-apiserver-receive-adapter"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-apiserver-receive-adapter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-apiserver-receive-adapter"] source: "registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-in-memory-channel-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-in-memory-channel-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-in-memory-channel-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-in-memory-channel-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-in-memory-channel-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-in-memory-channel-dispatcher"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-in-memory-channel-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-in-memory-channel-dispatcher"] source: "registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-istio-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-istio-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-istio-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-istio-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-istio-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-dispatcher"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-dispatcher"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-post-install", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-post-install"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-post-install", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-post-install"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-receiver", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-receiver"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-receiver", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-receiver"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-webhook"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-cleanup", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-channel-cleanup"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-cleanup", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-cleanup"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-cleanup-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-channel-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-channel-dispatcher"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-dispatcher"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-dispatcher-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-channel-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-webhook"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-source-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-source-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-source-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-source-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-source-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-source-receive-adapter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-source-receive-adapter"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-source-receive-adapter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-source-receive-adapter"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-source-receive-adapter-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-storage-version-migration", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-storage-version-migration"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-storage-version-migration", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-storage-version-migration"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-storage-version-migration-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtbroker-filter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-mtbroker-filter"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtbroker-filter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtbroker-filter"] source: "registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtbroker-ingress", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-mtbroker-ingress"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtbroker-ingress", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtbroker-ingress"] source: "registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtchannel-broker", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-mtchannel-broker"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtchannel-broker", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtchannel-broker"] source: "registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtping", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-mtping"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtping", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtping"] source: "registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-storage-version-migration", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-storage-version-migration"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-storage-version-migration", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-storage-version-migration"] source: "registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-sugar-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-sugar-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-sugar-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-sugar-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-sugar-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-webhook"] source: "registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/func-socat", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/func-socat"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/func-socat", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/func-socat"] source: "registry.redhat.io/openshift-serverless-1/func-socat-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/func-utils", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/func-utils"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/func-utils", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/func-utils"] source: "registry.redhat.io/openshift-serverless-1/func-utils-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/ingress", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/ingress"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/ingress", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/ingress"] source: "registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-backstage-plugins-eventmesh", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-backstage-plugins-eventmesh"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-backstage-plugins-eventmesh", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-backstage-plugins-eventmesh"] source: "registry.redhat.io/openshift-serverless-1/kn-backstage-plugins-eventmesh-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-cli-artifacts", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-cli-artifacts"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-cli-artifacts", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-cli-artifacts"] source: "registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-client-cli-artifacts", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-client-cli-artifacts"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-client-cli-artifacts", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-client-cli-artifacts"] source: "registry.redhat.io/openshift-serverless-1/kn-client-cli-artifacts-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-client-kn", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-client-kn"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-client-kn", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-client-kn"] source: "registry.redhat.io/openshift-serverless-1/kn-client-kn-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-ekb-dispatcher"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-dispatcher"] source: "registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-kafka-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-ekb-kafka-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-kafka-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-kafka-controller"] source: "registry.redhat.io/openshift-serverless-1/kn-ekb-kafka-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-post-install", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-ekb-post-install"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-post-install", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-post-install"] source: "registry.redhat.io/openshift-serverless-1/kn-ekb-post-install-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-receiver", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-ekb-receiver"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-receiver", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-receiver"] source: "registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-webhook-kafka", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-ekb-webhook-kafka"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-webhook-kafka", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-webhook-kafka"] source: "registry.redhat.io/openshift-serverless-1/kn-ekb-webhook-kafka-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-apiserver-receive-adapter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-apiserver-receive-adapter"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-apiserver-receive-adapter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-apiserver-receive-adapter"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-apiserver-receive-adapter-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-channel-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-channel-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-channel-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-channel-controller"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-channel-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-channel-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-channel-dispatcher"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-channel-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-channel-dispatcher"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-controller"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-filter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-filter"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-filter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-filter"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-filter-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-ingress", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-ingress"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-ingress", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-ingress"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-ingress-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-ddb-streams-source", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-aws-ddb-streams-source"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-ddb-streams-source", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-ddb-streams-source"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-ddb-streams-source-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-s3-sink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-aws-s3-sink"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-s3-sink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-s3-sink"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-sink-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-s3-source", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-aws-s3-source"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-s3-source", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-s3-source"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-source-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sns-sink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-aws-sns-sink"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sns-sink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sns-sink"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sns-sink-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sqs-sink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-aws-sqs-sink"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sqs-sink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sqs-sink"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-sink-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sqs-source", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-aws-sqs-source"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sqs-source", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sqs-source"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-source-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-log-sink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-log-sink"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-log-sink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-log-sink"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-log-sink-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-timer-source", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-timer-source"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-timer-source", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-timer-source"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-timer-source-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-transform-jsonata", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-transform-jsonata"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-transform-jsonata", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-transform-jsonata"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-transform-jsonata-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-istio-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-istio-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-istio-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-istio-controller"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-istio-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-jobsink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-jobsink"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-jobsink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-jobsink"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-jobsink-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-migrate", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-migrate"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-migrate", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-migrate"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-migrate-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-mtchannel-broker", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-mtchannel-broker"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-mtchannel-broker", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-mtchannel-broker"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-mtchannel-broker-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-mtping", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-mtping"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-mtping", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-mtping"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-mtping-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-webhook"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-plugin-event-sender", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-plugin-event-sender"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-plugin-event-sender", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-plugin-event-sender"] source: "registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-plugin-func-func-util", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-plugin-func-func-util"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-plugin-func-func-util", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-plugin-func-func-util"] source: "registry.redhat.io/openshift-serverless-1/kn-plugin-func-func-util-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-activator", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-serving-activator"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-activator", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-activator"] source: "registry.redhat.io/openshift-serverless-1/kn-serving-activator-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-autoscaler-hpa", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-serving-autoscaler-hpa"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-autoscaler-hpa", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-autoscaler-hpa"] source: "registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-hpa-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-autoscaler", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-serving-autoscaler"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-autoscaler", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-autoscaler"] source: "registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-serving-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-controller"] source: "registry.redhat.io/openshift-serverless-1/kn-serving-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-queue", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-serving-queue"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-queue", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-queue"] source: "registry.redhat.io/openshift-serverless-1/kn-serving-queue-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-storage-version-migration", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-serving-storage-version-migration"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-storage-version-migration", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-storage-version-migration"] source: "registry.redhat.io/openshift-serverless-1/kn-serving-storage-version-migration-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-serving-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-webhook"] source: "registry.redhat.io/openshift-serverless-1/kn-serving-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/knative", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/knative"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/knative", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/knative"] source: "registry.redhat.io/openshift-serverless-1/knative-rhel8-operator" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kourier-control", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kourier-control"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kourier-control", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kourier-control"] source: "registry.redhat.io/openshift-serverless-1/kourier-control-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-istio-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/net-istio-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-istio-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-istio-controller"] source: "registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-istio-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/net-istio-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-istio-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-istio-webhook"] source: "registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-kourier-kourier", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/net-kourier-kourier"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-kourier-kourier", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-kourier-kourier"] source: "registry.redhat.io/openshift-serverless-1/net-kourier-kourier-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-ingress", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serverless-ingress"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-ingress", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-ingress"] source: "registry.redhat.io/openshift-serverless-1/serverless-ingress-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-kn-operator", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serverless-kn-operator"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-kn-operator", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-kn-operator"] source: "registry.redhat.io/openshift-serverless-1/serverless-kn-operator-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-must-gather", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serverless-must-gather"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-must-gather", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-must-gather"] source: "registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-openshift-kn-operator", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serverless-openshift-kn-operator"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-openshift-kn-operator", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-openshift-kn-operator"] source: "registry.redhat.io/openshift-serverless-1/serverless-openshift-kn-rhel8-operator" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-bundle", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serverless-bundle"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-bundle", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-bundle"] source: "registry.redhat.io/openshift-serverless-1/serverless-operator-bundle" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serverless"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless"] source: "registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-activator", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-activator"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-activator", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-activator"] source: "registry.redhat.io/openshift-serverless-1/serving-activator-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-autoscaler-hpa", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-autoscaler-hpa"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-autoscaler-hpa", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-autoscaler-hpa"] source: "registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-autoscaler", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-autoscaler"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-autoscaler", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-autoscaler"] source: "registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-controller"] source: "registry.redhat.io/openshift-serverless-1/serving-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-domain-mapping", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-domain-mapping"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-domain-mapping", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-domain-mapping"] source: "registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-domain-mapping-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-domain-mapping-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-domain-mapping-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-domain-mapping-webhook"] source: "registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-queue", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-queue"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-queue", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-queue"] source: "registry.redhat.io/openshift-serverless-1/serving-queue-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-storage-version-migration", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-storage-version-migration"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-storage-version-migration", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-storage-version-migration"] source: "registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-webhook"] source: "registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/svls-must-gather", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/svls-must-gather"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/svls-must-gather", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/svls-must-gather"] source: "registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8" diff --git a/olm-catalog/serverless-operator-index/Dockerfile b/olm-catalog/serverless-operator-index/Dockerfile index fbeb105673..1c6d2b91d0 100644 --- a/olm-catalog/serverless-operator-index/Dockerfile +++ b/olm-catalog/serverless-operator-index/Dockerfile @@ -14,7 +14,7 @@ RUN /bin/opm init serverless-operator --default-channel=stable --output yaml >> RUN /bin/opm render --skip-tls-verify -o yaml \ registry.ci.openshift.org/knative/release-1.35.0:serverless-bundle \ registry.ci.openshift.org/knative/release-1.36.0:serverless-bundle \ - quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-bundle@sha256:4f7f8adafc5358603847ae8f4e556dfb6c6b348515e81264a676e747a2e1923b >> /configs/index.yaml + quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3 >> /configs/index.yaml # The base image is expected to contain # /bin/opm (with a serve subcommand) and /bin/grpc_health_probe diff --git a/olm-catalog/serverless-operator-index/image_content_source_policy.yaml b/olm-catalog/serverless-operator-index/image_content_source_policy.yaml index 7468cf8916..2a7a56dffc 100644 --- a/olm-catalog/serverless-operator-index/image_content_source_policy.yaml +++ b/olm-catalog/serverless-operator-index/image_content_source_policy.yaml @@ -6,193 +6,193 @@ metadata: name: serverless-image-content-source-policy spec: repositoryDigestMirrors: - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/backstage-plugins-eventmesh", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/backstage-plugins-eventmesh"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/backstage-plugins-eventmesh", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/backstage-plugins-eventmesh"] source: "registry.redhat.io/openshift-serverless-1/backstage-plugins-eventmesh-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-istio-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-istio-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-istio-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-istio-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-istio-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-dispatcher"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-dispatcher"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-receiver", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-receiver"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-receiver", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-receiver"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-webhook"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/knative-client-plugin-event-sender", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/knative-client-plugin-event-sender"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/knative-client-plugin-event-sender", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/knative-client-plugin-event-sender"] source: "registry.redhat.io/openshift-serverless-1/knative-client-plugin-event-sender-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/client-kn", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/client-kn"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/client-kn", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/client-kn"] source: "registry.redhat.io/openshift-serverless-1/client-kn-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-apiserver-receive-adapter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-apiserver-receive-adapter"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-apiserver-receive-adapter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-apiserver-receive-adapter"] source: "registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-in-memory-channel-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-in-memory-channel-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-in-memory-channel-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-in-memory-channel-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-in-memory-channel-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-in-memory-channel-dispatcher"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-in-memory-channel-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-in-memory-channel-dispatcher"] source: "registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-istio-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-istio-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-istio-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-istio-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-istio-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-dispatcher"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-dispatcher"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-post-install", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-post-install"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-post-install", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-post-install"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-receiver", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-receiver"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-receiver", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-receiver"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-broker-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-broker-webhook"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-cleanup", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-channel-cleanup"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-cleanup", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-cleanup"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-cleanup-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-channel-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-channel-dispatcher"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-dispatcher"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-dispatcher-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-channel-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-channel-webhook"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-source-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-source-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-source-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-source-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-source-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-source-receive-adapter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-source-receive-adapter"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-source-receive-adapter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-source-receive-adapter"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-source-receive-adapter-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-storage-version-migration", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-kafka-storage-version-migration"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-storage-version-migration", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-kafka-storage-version-migration"] source: "registry.redhat.io/openshift-serverless-1/eventing-kafka-storage-version-migration-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtbroker-filter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-mtbroker-filter"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtbroker-filter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtbroker-filter"] source: "registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtbroker-ingress", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-mtbroker-ingress"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtbroker-ingress", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtbroker-ingress"] source: "registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtchannel-broker", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-mtchannel-broker"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtchannel-broker", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtchannel-broker"] source: "registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtping", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-mtping"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtping", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-mtping"] source: "registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-storage-version-migration", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-storage-version-migration"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-storage-version-migration", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-storage-version-migration"] source: "registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-sugar-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-sugar-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-sugar-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-sugar-controller"] source: "registry.redhat.io/openshift-serverless-1/eventing-sugar-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/eventing-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/eventing-webhook"] source: "registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/func-socat", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/func-socat"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/func-socat", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/func-socat"] source: "registry.redhat.io/openshift-serverless-1/func-socat-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/func-utils", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/func-utils"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/func-utils", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/func-utils"] source: "registry.redhat.io/openshift-serverless-1/func-utils-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/ingress", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/ingress"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/ingress", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/ingress"] source: "registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-backstage-plugins-eventmesh", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-backstage-plugins-eventmesh"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-backstage-plugins-eventmesh", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-backstage-plugins-eventmesh"] source: "registry.redhat.io/openshift-serverless-1/kn-backstage-plugins-eventmesh-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-cli-artifacts", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-cli-artifacts"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-cli-artifacts", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-cli-artifacts"] source: "registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-client-cli-artifacts", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-client-cli-artifacts"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-client-cli-artifacts", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-client-cli-artifacts"] source: "registry.redhat.io/openshift-serverless-1/kn-client-cli-artifacts-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-client-kn", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-client-kn"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-client-kn", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-client-kn"] source: "registry.redhat.io/openshift-serverless-1/kn-client-kn-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-ekb-dispatcher"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-dispatcher"] source: "registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-kafka-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-ekb-kafka-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-kafka-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-kafka-controller"] source: "registry.redhat.io/openshift-serverless-1/kn-ekb-kafka-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-post-install", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-ekb-post-install"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-post-install", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-post-install"] source: "registry.redhat.io/openshift-serverless-1/kn-ekb-post-install-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-receiver", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-ekb-receiver"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-receiver", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-receiver"] source: "registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-webhook-kafka", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-ekb-webhook-kafka"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-webhook-kafka", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-ekb-webhook-kafka"] source: "registry.redhat.io/openshift-serverless-1/kn-ekb-webhook-kafka-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-apiserver-receive-adapter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-apiserver-receive-adapter"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-apiserver-receive-adapter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-apiserver-receive-adapter"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-apiserver-receive-adapter-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-channel-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-channel-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-channel-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-channel-controller"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-channel-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-channel-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-channel-dispatcher"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-channel-dispatcher", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-channel-dispatcher"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-controller"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-filter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-filter"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-filter", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-filter"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-filter-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-ingress", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-ingress"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-ingress", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-ingress"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-ingress-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-ddb-streams-source", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-aws-ddb-streams-source"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-ddb-streams-source", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-ddb-streams-source"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-ddb-streams-source-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-s3-sink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-aws-s3-sink"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-s3-sink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-s3-sink"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-sink-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-s3-source", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-aws-s3-source"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-s3-source", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-s3-source"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-source-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sns-sink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-aws-sns-sink"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sns-sink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sns-sink"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sns-sink-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sqs-sink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-aws-sqs-sink"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sqs-sink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sqs-sink"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-sink-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sqs-source", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-aws-sqs-source"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sqs-source", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-aws-sqs-source"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-source-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-log-sink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-log-sink"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-log-sink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-log-sink"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-log-sink-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-timer-source", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-timer-source"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-timer-source", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-timer-source"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-timer-source-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-transform-jsonata", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-integrations-transform-jsonata"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-transform-jsonata", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-integrations-transform-jsonata"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-transform-jsonata-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-istio-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-istio-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-istio-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-istio-controller"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-istio-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-jobsink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-jobsink"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-jobsink", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-jobsink"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-jobsink-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-migrate", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-migrate"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-migrate", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-migrate"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-migrate-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-mtchannel-broker", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-mtchannel-broker"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-mtchannel-broker", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-mtchannel-broker"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-mtchannel-broker-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-mtping", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-mtping"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-mtping", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-mtping"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-mtping-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-eventing-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-eventing-webhook"] source: "registry.redhat.io/openshift-serverless-1/kn-eventing-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-plugin-event-sender", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-plugin-event-sender"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-plugin-event-sender", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-plugin-event-sender"] source: "registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-plugin-func-func-util", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-plugin-func-func-util"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-plugin-func-func-util", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-plugin-func-func-util"] source: "registry.redhat.io/openshift-serverless-1/kn-plugin-func-func-util-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-activator", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-serving-activator"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-activator", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-activator"] source: "registry.redhat.io/openshift-serverless-1/kn-serving-activator-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-autoscaler-hpa", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-serving-autoscaler-hpa"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-autoscaler-hpa", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-autoscaler-hpa"] source: "registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-hpa-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-autoscaler", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-serving-autoscaler"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-autoscaler", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-autoscaler"] source: "registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-serving-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-controller"] source: "registry.redhat.io/openshift-serverless-1/kn-serving-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-queue", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-serving-queue"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-queue", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-queue"] source: "registry.redhat.io/openshift-serverless-1/kn-serving-queue-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-storage-version-migration", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-serving-storage-version-migration"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-storage-version-migration", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-storage-version-migration"] source: "registry.redhat.io/openshift-serverless-1/kn-serving-storage-version-migration-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kn-serving-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kn-serving-webhook"] source: "registry.redhat.io/openshift-serverless-1/kn-serving-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/knative", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/knative"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/knative", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/knative"] source: "registry.redhat.io/openshift-serverless-1/knative-rhel8-operator" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kourier-control", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/kourier-control"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kourier-control", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/kourier-control"] source: "registry.redhat.io/openshift-serverless-1/kourier-control-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-istio-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/net-istio-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-istio-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-istio-controller"] source: "registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-istio-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/net-istio-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-istio-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-istio-webhook"] source: "registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-kourier-kourier", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/net-kourier-kourier"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-kourier-kourier", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/net-kourier-kourier"] source: "registry.redhat.io/openshift-serverless-1/net-kourier-kourier-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-ingress", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serverless-ingress"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-ingress", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-ingress"] source: "registry.redhat.io/openshift-serverless-1/serverless-ingress-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-kn-operator", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serverless-kn-operator"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-kn-operator", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-kn-operator"] source: "registry.redhat.io/openshift-serverless-1/serverless-kn-operator-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-must-gather", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serverless-must-gather"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-must-gather", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-must-gather"] source: "registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-openshift-kn-operator", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serverless-openshift-kn-operator"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-openshift-kn-operator", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-openshift-kn-operator"] source: "registry.redhat.io/openshift-serverless-1/serverless-openshift-kn-rhel8-operator" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-bundle", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serverless-bundle"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-bundle", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-bundle"] source: "registry.redhat.io/openshift-serverless-1/serverless-operator-bundle" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serverless"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless"] source: "registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-activator", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-activator"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-activator", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-activator"] source: "registry.redhat.io/openshift-serverless-1/serving-activator-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-autoscaler-hpa", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-autoscaler-hpa"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-autoscaler-hpa", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-autoscaler-hpa"] source: "registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-autoscaler", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-autoscaler"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-autoscaler", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-autoscaler"] source: "registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-controller"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-controller", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-controller"] source: "registry.redhat.io/openshift-serverless-1/serving-controller-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-domain-mapping", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-domain-mapping"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-domain-mapping", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-domain-mapping"] source: "registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-domain-mapping-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-domain-mapping-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-domain-mapping-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-domain-mapping-webhook"] source: "registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-queue", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-queue"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-queue", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-queue"] source: "registry.redhat.io/openshift-serverless-1/serving-queue-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-storage-version-migration", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-storage-version-migration"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-storage-version-migration", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-storage-version-migration"] source: "registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/serving-webhook"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-webhook", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serving-webhook"] source: "registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8" - - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/svls-must-gather", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-135/svls-must-gather"] + - mirrors: ["quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/svls-must-gather", "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/svls-must-gather"] source: "registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8" diff --git a/olm-catalog/serverless-operator-index/v4.14/catalog-template.yaml b/olm-catalog/serverless-operator-index/v4.14/catalog-template.yaml index 86b968e913..aabf69f4af 100644 --- a/olm-catalog/serverless-operator-index/v4.14/catalog-template.yaml +++ b/olm-catalog/serverless-operator-index/v4.14/catalog-template.yaml @@ -1,519 +1,525 @@ ---- entries: -- defaultChannel: stable - icon: - base64data: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOCIgaGVpZ2h0PSIzOCIgdmlld0JveD0iMCAwIDM4IDM4Ij48ZGVmcz48c3R5bGU+LmF7ZmlsbDojZmZmO30uYntmaWxsOiNlMDA7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJhIiBkPSJNMjgsMUgxMGE5LDksMCwwLDAtOSw5VjI4YTksOSwwLDAsMCw5LDlIMjhhOSw5LDAsMCwwLDktOVYxMGE5LDksMCwwLDAtOS05WiIvPjxwYXRoIGQ9Ik0yOCwyLjI1QTcuNzU4Nyw3Ljc1ODcsMCwwLDEsMzUuNzUsMTBWMjhBNy43NTg3LDcuNzU4NywwLDAsMSwyOCwzNS43NUgxMEE3Ljc1ODcsNy43NTg3LDAsMCwxLDIuMjUsMjhWMTBBNy43NTg3LDcuNzU4NywwLDAsMSwxMCwyLjI1SDI4TTI4LDFIMTBhOSw5LDAsMCwwLTksOVYyOGE5LDksMCwwLDAsOSw5SDI4YTksOSwwLDAsMCw5LTlWMTBhOSw5LDAsMCwwLTktOVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTE0LDIzLjQ3NjZIMTBhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNCwyMy40NzY2Wm0tMy4zNzUtMS4yNWgyLjc1di0yLjc1aC0yLjc1WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMjEsMjMuNDc2NkgxN2EuNjI1My42MjUzLDAsMCwxLS42MjUtLjYyNXYtNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUtLjYyNWg0YS42MjUyLjYyNTIsMCwwLDEsLjYyNS42MjV2NEEuNjI1My42MjUzLDAsMCwxLDIxLDIzLjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNy41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNy41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yNC41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwyNC41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yOCwyMy40NzY2SDI0YS42MjUzLjYyNTMsMCwwLDEtLjYyNS0uNjI1di00YS42MjUyLjYyNTIsMCwwLDEsLjYyNS0uNjI1aDRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LjYyNXY0QS42MjUzLjYyNTMsMCwwLDEsMjgsMjMuNDc2NlptLTMuMzc1LTEuMjVoMi43NXYtMi43NWgtMi43NVoiLz48cGF0aCBkPSJNMjksMjYuNDc2Nkg5YS42MjUuNjI1LDAsMCwxLDAtMS4yNUgyOWEuNjI1LjYyNSwwLDAsMSwwLDEuMjVaIi8+PC9zdmc+ - mediatype: image/svg+xml - name: serverless-operator - schema: olm.package -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.36.0 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.36.0' - name: stable - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.29.1 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.29.1' - name: stable-1.29 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.30.2 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.30.2' - name: stable-1.30 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.31.1 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.31.1' - name: stable-1.31 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.32.2 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.32.2' - name: stable-1.32 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.33.3 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.33.3' - name: stable-1.33 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.34.1 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.34.1' - name: stable-1.34 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.35.1 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.35.1' - name: stable-1.35 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.36.0 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.36.0' - name: stable-1.36 - package: serverless-operator - schema: olm.channel -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:003a5c5c3682db69aa57da4c05ed3ccbaf94fb80a4972c8ddcf91eb3d5e299b9 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:1905984e13c9d165aad06f954904fc33d3f3a6e2f0041f98bc5840d05a87abaf - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0d73e731e7defc5d1da1aa3a347b419ce5d6f2b6b880403cb2e0871a8b3bb240 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:8da1dda3de163dc82927ad732d560e9c5c7daca3a8d3b46110b561441c483af9 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0422f8843fc62c2b72e01ffefd33db912a1ad3d70ac297882d3663c9b7299f10 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:edb6116289b3c722aca7614eb06b655e2081ebda74a9b7a82261ae1fa1e76408 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0516545990ec466969730d43136016c10e7dc34f633bf2646463d12145d9f917 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:832677abddada05258b4610b6584d442dd20c5bdd55ae8fbddb83ac133b3f12e - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2f82fcdc9a5424a2e195fda62ce0a018970e0211f253eb0d5ae47a72dd0bb6fc - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91b90a9ba578595836772b4f7ecccebf77d1dcaf04c62e3f532d9beed90eb465 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:12373623440b5b1aaea228550674ee69fe926ac6f12e7adffb5592afe1b98fca - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:16b39335e97bcc7c970a8ba385c61d8333e9912faaee813ccf8520d434b7bb7a - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:ffcf75e33c5bf527488fc196bd94bf615ac06ba5735d87cf568777f27817d214 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:51ac9aced282f62c8fb2d3696da3696b8496d8f877e9846fe3a4a743ccd63bea - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:469ae5fc8a478d6d06b13e218a000f34dd988eb69a9488a6349d67c76bda5b49 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:a82288782b61ea46d068cc09ee10608d3201c136abfc767e4d37734775101390 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:b84351200cba437c323f7f21d0cb58e0a443d772376a9ea6de1278a68d1c2c7d - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:828d31bf8a441091b8aed03da213a6b4ffae260070eff58c3319156f9bf04f5a - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:9bee3204d9fafe46f9f188e7ea10ac4843eaaf72a5f9dda68f6d8d7a92310218 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:f938cc534fc4b24bb9449f1e1e1e904dc588e6646c98474de4b8c81d083b4d96 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:82b9bfb8b83701db1a9b891d1ffc1e782d4b0f971fc9a53525942845c2602934 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:095629572a40469eb651c9f81d6c10ff46254eff8b9813cadce54d6f0075c2fb - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:93b945eb2361b07bc86d67a9a7d77a0301a0bad876c83a9a64af2cfb86c83bff - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91456907c61952017daf07e376b565472ef86d67a2925f60e189c639ceb68595 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2d675f8bf31b0cfb64503ee72e082183b7b11979d65eb636fc83f4f3a25fa5d0 - schema: olm.bundle + - defaultChannel: stable + icon: + base64data: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOCIgaGVpZ2h0PSIzOCIgdmlld0JveD0iMCAwIDM4IDM4Ij48ZGVmcz48c3R5bGU+LmF7ZmlsbDojZmZmO30uYntmaWxsOiNlMDA7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJhIiBkPSJNMjgsMUgxMGE5LDksMCwwLDAtOSw5VjI4YTksOSwwLDAsMCw5LDlIMjhhOSw5LDAsMCwwLDktOVYxMGE5LDksMCwwLDAtOS05WiIvPjxwYXRoIGQ9Ik0yOCwyLjI1QTcuNzU4Nyw3Ljc1ODcsMCwwLDEsMzUuNzUsMTBWMjhBNy43NTg3LDcuNzU4NywwLDAsMSwyOCwzNS43NUgxMEE3Ljc1ODcsNy43NTg3LDAsMCwxLDIuMjUsMjhWMTBBNy43NTg3LDcuNzU4NywwLDAsMSwxMCwyLjI1SDI4TTI4LDFIMTBhOSw5LDAsMCwwLTksOVYyOGE5LDksMCwwLDAsOSw5SDI4YTksOSwwLDAsMCw5LTlWMTBhOSw5LDAsMCwwLTktOVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTE0LDIzLjQ3NjZIMTBhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNCwyMy40NzY2Wm0tMy4zNzUtMS4yNWgyLjc1di0yLjc1aC0yLjc1WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMjEsMjMuNDc2NkgxN2EuNjI1My42MjUzLDAsMCwxLS42MjUtLjYyNXYtNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUtLjYyNWg0YS42MjUyLjYyNTIsMCwwLDEsLjYyNS42MjV2NEEuNjI1My42MjUzLDAsMCwxLDIxLDIzLjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNy41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNy41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yNC41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwyNC41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yOCwyMy40NzY2SDI0YS42MjUzLjYyNTMsMCwwLDEtLjYyNS0uNjI1di00YS42MjUyLjYyNTIsMCwwLDEsLjYyNS0uNjI1aDRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LjYyNXY0QS42MjUzLjYyNTMsMCwwLDEsMjgsMjMuNDc2NlptLTMuMzc1LTEuMjVoMi43NXYtMi43NWgtMi43NVoiLz48cGF0aCBkPSJNMjksMjYuNDc2Nkg5YS42MjUuNjI1LDAsMCwxLDAtMS4yNUgyOWEuNjI1LjYyNSwwLDAsMSwwLDEuMjVaIi8+PC9zdmc+ + mediatype: image/svg+xml + name: serverless-operator + schema: olm.package + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.36.0 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.36.0' + - name: "serverless-operator.v1.36.1" + replaces: "serverless-operator.v1.36.0" + skipRange: ">=1.36.0 <1.36.1" + name: stable + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.29.1 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.29.1' + name: stable-1.29 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.30.2 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.30.2' + name: stable-1.30 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.31.1 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.31.1' + name: stable-1.31 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.32.2 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.32.2' + name: stable-1.32 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.33.3 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.33.3' + name: stable-1.33 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.34.1 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.34.1' + name: stable-1.34 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.35.1 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.35.1' + name: stable-1.35 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.36.0 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.36.0' + - name: "serverless-operator.v1.36.1" + replaces: "serverless-operator.v1.36.0" + skipRange: ">=1.36.0 <1.36.1" + name: stable-1.36 + package: serverless-operator + schema: olm.channel + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:003a5c5c3682db69aa57da4c05ed3ccbaf94fb80a4972c8ddcf91eb3d5e299b9 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:1905984e13c9d165aad06f954904fc33d3f3a6e2f0041f98bc5840d05a87abaf + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0d73e731e7defc5d1da1aa3a347b419ce5d6f2b6b880403cb2e0871a8b3bb240 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:8da1dda3de163dc82927ad732d560e9c5c7daca3a8d3b46110b561441c483af9 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0422f8843fc62c2b72e01ffefd33db912a1ad3d70ac297882d3663c9b7299f10 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:edb6116289b3c722aca7614eb06b655e2081ebda74a9b7a82261ae1fa1e76408 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0516545990ec466969730d43136016c10e7dc34f633bf2646463d12145d9f917 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:832677abddada05258b4610b6584d442dd20c5bdd55ae8fbddb83ac133b3f12e + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2f82fcdc9a5424a2e195fda62ce0a018970e0211f253eb0d5ae47a72dd0bb6fc + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91b90a9ba578595836772b4f7ecccebf77d1dcaf04c62e3f532d9beed90eb465 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:12373623440b5b1aaea228550674ee69fe926ac6f12e7adffb5592afe1b98fca + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:16b39335e97bcc7c970a8ba385c61d8333e9912faaee813ccf8520d434b7bb7a + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:ffcf75e33c5bf527488fc196bd94bf615ac06ba5735d87cf568777f27817d214 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:51ac9aced282f62c8fb2d3696da3696b8496d8f877e9846fe3a4a743ccd63bea + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:469ae5fc8a478d6d06b13e218a000f34dd988eb69a9488a6349d67c76bda5b49 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:a82288782b61ea46d068cc09ee10608d3201c136abfc767e4d37734775101390 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:b84351200cba437c323f7f21d0cb58e0a443d772376a9ea6de1278a68d1c2c7d + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:828d31bf8a441091b8aed03da213a6b4ffae260070eff58c3319156f9bf04f5a + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:9bee3204d9fafe46f9f188e7ea10ac4843eaaf72a5f9dda68f6d8d7a92310218 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:f938cc534fc4b24bb9449f1e1e1e904dc588e6646c98474de4b8c81d083b4d96 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:82b9bfb8b83701db1a9b891d1ffc1e782d4b0f971fc9a53525942845c2602934 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:095629572a40469eb651c9f81d6c10ff46254eff8b9813cadce54d6f0075c2fb + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:93b945eb2361b07bc86d67a9a7d77a0301a0bad876c83a9a64af2cfb86c83bff + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91456907c61952017daf07e376b565472ef86d67a2925f60e189c639ceb68595 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2d675f8bf31b0cfb64503ee72e082183b7b11979d65eb636fc83f4f3a25fa5d0 + schema: olm.bundle + - schema: "olm.bundle" + image: "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3" schema: olm.template.basic - diff --git a/olm-catalog/serverless-operator-index/v4.14/catalog/serverless-operator/catalog.yaml b/olm-catalog/serverless-operator-index/v4.14/catalog/serverless-operator/catalog.yaml index 50f12820f4..58347a7d83 100644 --- a/olm-catalog/serverless-operator-index/v4.14/catalog/serverless-operator/catalog.yaml +++ b/olm-catalog/serverless-operator-index/v4.14/catalog/serverless-operator/catalog.yaml @@ -61,6 +61,9 @@ entries: - name: serverless-operator.v1.36.0 replaces: serverless-operator.v1.35.0 skipRange: '>=1.35.0 <1.36.0' +- name: serverless-operator.v1.36.1 + replaces: serverless-operator.v1.36.0 + skipRange: '>=1.36.0 <1.36.1' name: stable package: serverless-operator schema: olm.channel @@ -470,6 +473,9 @@ entries: - name: serverless-operator.v1.36.0 replaces: serverless-operator.v1.35.0 skipRange: '>=1.35.0 <1.36.0' +- name: serverless-operator.v1.36.1 + replaces: serverless-operator.v1.36.0 + skipRange: '>=1.36.0 <1.36.1' name: stable-1.36 package: serverless-operator schema: olm.channel @@ -4356,3 +4362,178 @@ relatedImages: - image: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74 name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3 +name: serverless-operator.v1.36.1 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.36.1 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsibGFiZWxzIjp7ImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIiwiYXBwLmt1YmVybmV0ZXMuaW8vdmVyc2lvbiI6ImRldmVsIn0sIm5hbWUiOiJrbmF0aXZlZXZlbnRpbmdzLm9wZXJhdG9yLmtuYXRpdmUuZGV2In0sInNwZWMiOnsiY29udmVyc2lvbiI6eyJzdHJhdGVneSI6IldlYmhvb2siLCJ3ZWJob29rIjp7ImNsaWVudENvbmZpZyI6eyJzZXJ2aWNlIjp7Im5hbWUiOiJvcGVyYXRvci13ZWJob29rIiwibmFtZXNwYWNlIjoia25hdGl2ZS1vcGVyYXRvciIsInBhdGgiOiIvcmVzb3VyY2UtY29udmVyc2lvbiJ9fSwiY29udmVyc2lvblJldmlld1ZlcnNpb25zIjpbInYxYmV0YTEiXX19LCJncm91cCI6Im9wZXJhdG9yLmtuYXRpdmUuZGV2IiwibmFtZXMiOnsia2luZCI6IktuYXRpdmVFdmVudGluZyIsImxpc3RLaW5kIjoiS25hdGl2ZUV2ZW50aW5nTGlzdCIsInBsdXJhbCI6ImtuYXRpdmVldmVudGluZ3MiLCJzaW5ndWxhciI6ImtuYXRpdmVldmVudGluZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3siYWRkaXRpb25hbFByaW50ZXJDb2x1bW5zIjpbeyJqc29uUGF0aCI6Ii5zdGF0dXMudmVyc2lvbiIsIm5hbWUiOiJWZXJzaW9uIiwidHlwZSI6InN0cmluZyJ9LHsianNvblBhdGgiOiIuc3RhdHVzLmNvbmRpdGlvbnNbPyhALnR5cGU9PVwiUmVhZHlcIildLnN0YXR1cyIsIm5hbWUiOiJSZWFkeSIsInR5cGUiOiJzdHJpbmcifSx7Impzb25QYXRoIjoiLnN0YXR1cy5jb25kaXRpb25zWz8oQC50eXBlPT1cIlJlYWR5XCIpXS5yZWFzb24iLCJuYW1lIjoiUmVhc29uIiwidHlwZSI6InN0cmluZyJ9XSwibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiU2NoZW1hIGZvciB0aGUga25hdGl2ZWV2ZW50aW5ncyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIEtuYXRpdmVFdmVudGluZyIsInByb3BlcnRpZXMiOnsiY29uZmlnIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6Im9iamVjdCJ9LCJkZXNjcmlwdGlvbiI6IkEgbWVhbnMgdG8gb3ZlcnJpZGUgdGhlIGNvcnJlc3BvbmRpbmcgZW50cmllcyBpbiB0aGUgdXBzdHJlYW0gY29uZmlnbWFwcyIsInR5cGUiOiJvYmplY3QifSwiZGVmYXVsdEJyb2tlckNsYXNzIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGRlZmF1bHQgYnJva2VyIHR5cGUgdG8gdXNlIGZvciB0aGUgYnJva2VycyBLbmF0aXZlIGNyZWF0ZXMuIElmIG5vIHZhbHVlIGlzIHByb3ZpZGVkLCBNVENoYW5uZWxCYXNlZEJyb2tlciB3aWxsIGJlIHVzZWQuIiwidHlwZSI6InN0cmluZyJ9LCJkZXBsb3ltZW50cyI6eyJkZXNjcmlwdGlvbiI6IkEgbWFwcGluZyBvZiBkZXBsb3ltZW50IG5hbWUgdG8gb3ZlcnJpZGUiLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7ImFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3Mgc2NoZWR1bGluZyBjb25zdHJhaW50cy4iLCJwcm9wZXJ0aWVzIjp7Im5vZGVBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBub2RlIGFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgZm9yIHRoZSBwb2QuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnkgdGhlIGFmZmluaXR5IGV4cHJlc3Npb25zIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkLCBidXQgaXQgbWF5IGNob29zZSBhIG5vZGUgdGhhdCB2aW9sYXRlcyBvbmUgb3IgbW9yZSBvZiB0aGUgZXhwcmVzc2lvbnMuIFRoZSBub2RlIHRoYXQgaXMgbW9zdCBwcmVmZXJyZWQgaXMgdGhlIG9uZSB3aXRoIHRoZSBncmVhdGVzdCBzdW0gb2Ygd2VpZ2h0cywgaS5lLiBmb3IgZWFjaCBub2RlIHRoYXQgbWVldHMgYWxsIG9mIHRoZSBzY2hlZHVsaW5nIHJlcXVpcmVtZW50cyAocmVzb3VyY2UgcmVxdWVzdCwgcmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nIGFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSwgY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nIFwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIG1hdGNoRXhwcmVzc2lvbnM7IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBbiBlbXB0eSBwcmVmZXJyZWQgc2NoZWR1bGluZyB0ZXJtIG1hdGNoZXMgYWxsIG9iamVjdHMgd2l0aCBpbXBsaWNpdCB3ZWlnaHQgMCAoaS5lLiBpdCdzIGEgbm8tb3ApLiBBIG51bGwgcHJlZmVycmVkIHNjaGVkdWxpbmcgdGVybSBtYXRjaGVzIG5vIG9iamVjdHMgKGkuZS4gaXMgYWxzbyBhIG5vLW9wKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcmVuY2UiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGxhYmVscy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hGaWVsZHMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGZpZWxkcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwid2VpZ2h0Ijp7ImRlc2NyaXB0aW9uIjoiV2VpZ2h0IGFzc29jaWF0ZWQgd2l0aCBtYXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBub2RlU2VsZWN0b3JUZXJtLCBpbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicHJlZmVyZW5jZSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBhcmUgbm90IG1ldCBhdCBzY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuIElmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGFuIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiIsInByb3BlcnRpZXMiOnsibm9kZVNlbGVjdG9yVGVybXMiOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgdGVybXMuIFRoZSB0ZXJtcyBhcmUgT1JlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbnVsbCBvciBlbXB0eSBub2RlIHNlbGVjdG9yIHRlcm0gbWF0Y2hlcyBubyBvYmplY3RzLiBUaGUgcmVxdWlyZW1lbnRzIG9mIHRoZW0gYXJlIEFORGVkLiBUaGUgVG9wb2xvZ3lTZWxlY3RvclRlcm0gdHlwZSBpbXBsZW1lbnRzIGEgc3Vic2V0IG9mIHRoZSBOb2RlU2VsZWN0b3JUZXJtLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgbGFiZWxzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaEZpZWxkcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgZmllbGRzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbIm5vZGVTZWxlY3RvclRlcm1zIl0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicG9kQWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJEZXNjcmliZXMgcG9kIGFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgKGUuZy4gY28tbG9jYXRlIHRoaXMgcG9kIGluIHRoZSBzYW1lIG5vZGUsIHpvbmUsIGV0Yy4gYXMgc29tZSBvdGhlciBwb2QocykpLiIsInByb3BlcnRpZXMiOnsicHJlZmVycmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgc2NoZWR1bGVyIHdpbGwgcHJlZmVyIHRvIHNjaGVkdWxlIHBvZHMgdG8gbm9kZXMgdGhhdCBzYXRpc2Z5IHRoZSBhZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgaGFzIHBvZHMgd2hpY2ggbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm07IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgd2VpZ2h0cyBvZiBhbGwgb2YgdGhlIG1hdGNoZWQgV2VpZ2h0ZWRQb2RBZmZpbml0eVRlcm0gZmllbGRzIGFyZSBhZGRlZCBwZXItbm9kZSB0byBmaW5kIHRoZSBtb3N0IHByZWZlcnJlZCBub2RlKHMpIiwicHJvcGVydGllcyI6eyJwb2RBZmZpbml0eVRlcm0iOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBwb2QgYWZmaW5pdHkgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ3ZWlnaHQiOnsiZGVzY3JpcHRpb24iOiJ3ZWlnaHQgYXNzb2NpYXRlZCB3aXRoIG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInBvZEFmZmluaXR5VGVybSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBhcmUgbm90IG1ldCBhdCBzY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuIElmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGEgcG9kIGxhYmVsIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiBXaGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBlbGVtZW50cywgdGhlIGxpc3RzIG9mIG5vZGVzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb2RBZmZpbml0eVRlcm0gYXJlIGludGVyc2VjdGVkLCBpLmUuIGFsbCB0ZXJtcyBtdXN0IGJlIHNhdGlzZmllZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkRlZmluZXMgYSBzZXQgb2YgcG9kcyAobmFtZWx5IHRob3NlIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIHJlbGF0aXZlIHRvIHRoZSBnaXZlbiBuYW1lc3BhY2UocykpIHRoYXQgdGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCwgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSBcdTAwM2N0b3BvbG9neUtleVx1MDAzZSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYSBwb2Qgb2YgdGhlIHNldCBvZiBwb2RzIGlzIHJ1bm5pbmciLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwicG9kQW50aUFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiRGVzY3JpYmVzIHBvZCBhbnRpLWFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgKGUuZy4gYXZvaWQgcHV0dGluZyB0aGlzIHBvZCBpbiB0aGUgc2FtZSBub2RlLCB6b25lLCBldGMuIGFzIHNvbWUgb3RoZXIgcG9kKHMpKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcnJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHNjaGVkdWxlciB3aWxsIHByZWZlciB0byBzY2hlZHVsZSBwb2RzIHRvIG5vZGVzIHRoYXQgc2F0aXNmeSB0aGUgYW50aS1hZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhbnRpLWFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSwgY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nIFwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBoYXMgcG9kcyB3aGljaCBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybTsgdGhlIG5vZGUocykgd2l0aCB0aGUgaGlnaGVzdCBzdW0gYXJlIHRoZSBtb3N0IHByZWZlcnJlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSB3ZWlnaHRzIG9mIGFsbCBvZiB0aGUgbWF0Y2hlZCBXZWlnaHRlZFBvZEFmZmluaXR5VGVybSBmaWVsZHMgYXJlIGFkZGVkIHBlci1ub2RlIHRvIGZpbmQgdGhlIG1vc3QgcHJlZmVycmVkIG5vZGUocykiLCJwcm9wZXJ0aWVzIjp7InBvZEFmZmluaXR5VGVybSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkLiBBIHBvZCBhZmZpbml0eSB0ZXJtLCBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgd2VpZ2h0LiIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMsIGluIHRoaXMgY2FzZSBwb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibmFtZXNwYWNlcyI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZXMgc3BlY2lmaWVzIHdoaWNoIG5hbWVzcGFjZXMgdGhlIGxhYmVsU2VsZWN0b3IgYXBwbGllcyB0byAobWF0Y2hlcyBhZ2FpbnN0KTsgbnVsbCBvciBlbXB0eSBsaXN0IG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCB0aGUgcG9kcyBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciBpbiB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGUgc2VsZWN0ZWQgcG9kcyBpcyBydW5uaW5nLiBFbXB0eSB0b3BvbG9neUtleSBpcyBub3QgYWxsb3dlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0b3BvbG9neUtleSJdLCJ0eXBlIjoib2JqZWN0In0sIndlaWdodCI6eyJkZXNjcmlwdGlvbiI6IndlaWdodCBhc3NvY2lhdGVkIHdpdGggbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtLCBpbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicG9kQWZmaW5pdHlUZXJtIiwid2VpZ2h0Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJJZiB0aGUgYW50aS1hZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYW50aS1hZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGEgcG9kIGxhYmVsIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiBXaGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBlbGVtZW50cywgdGhlIGxpc3RzIG9mIG5vZGVzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb2RBZmZpbml0eVRlcm0gYXJlIGludGVyc2VjdGVkLCBpLmUuIGFsbCB0ZXJtcyBtdXN0IGJlIHNhdGlzZmllZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkRlZmluZXMgYSBzZXQgb2YgcG9kcyAobmFtZWx5IHRob3NlIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIHJlbGF0aXZlIHRvIHRoZSBnaXZlbiBuYW1lc3BhY2UocykpIHRoYXQgdGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCwgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSBcdTAwM2N0b3BvbG9neUtleVx1MDAzZSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYSBwb2Qgb2YgdGhlIHNldCBvZiBwb2RzIGlzIHJ1bm5pbmciLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBkZXBsb3ltZW50IGFuZCBpdHMgdGVtcGxhdGUuIiwidHlwZSI6Im9iamVjdCJ9LCJlbnYiOnsiZGVzY3JpcHRpb24iOiJFbnYgb3ZlcnJpZGVzIGVudiB2YXJzIGZvciB0aGUgY29udGFpbmVycy4iLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZW52VmFycyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBkZXNpcmVkIEVudlZhclJlcXVpcmVtZW50cyIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRW52VmFyIHJlcHJlc2VudHMgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgcHJlc2VudCBpbiBhIENvbnRhaW5lci4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZS4gTXVzdCBiZSBhIENfSURFTlRJRklFUi4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFyaWFibGUgcmVmZXJlbmNlcyAkKFZBUl9OQU1FKSBhcmUgZXhwYW5kZWQgdXNpbmcgdGhlIHByZXZpb3VzbHkgZGVmaW5lZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW4gdGhlIGNvbnRhaW5lciBhbmQgYW55IHNlcnZpY2UgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxlIGNhbm5vdCBiZSByZXNvbHZlZCwgdGhlIHJlZmVyZW5jZSBpbiB0aGUgaW5wdXQgc3RyaW5nIHdpbGwgYmUgdW5jaGFuZ2VkLiBEb3VibGUgJCQgYXJlIHJlZHVjZWQgdG8gYSBzaW5nbGUgJCwgd2hpY2ggYWxsb3dzIGZvciBlc2NhcGluZyB0aGUgJChWQVJfTkFNRSkgc3ludGF4OiBpLmUuIFwiJCQoVkFSX05BTUUpXCIgd2lsbCBwcm9kdWNlIHRoZSBzdHJpbmcgbGl0ZXJhbCBcIiQoVkFSX05BTUUpXCIuIEVzY2FwZWQgcmVmZXJlbmNlcyB3aWxsIG5ldmVyIGJlIGV4cGFuZGVkLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHZhcmlhYmxlIGV4aXN0cyBvciBub3QuIERlZmF1bHRzIHRvIFwiXCIuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZUZyb20iOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgZm9yIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSdzIHZhbHVlLiBDYW5ub3QgYmUgdXNlZCBpZiB2YWx1ZSBpcyBub3QgZW1wdHkuIiwicHJvcGVydGllcyI6eyJjb25maWdNYXBLZXlSZWYiOnsiZGVzY3JpcHRpb24iOiJTZWxlY3RzIGEga2V5IG9mIGEgQ29uZmlnTWFwLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGtleSB0byBzZWxlY3QuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgcmVmZXJlbnQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbmFtZXMvI25hbWVzIFRPRE86IEFkZCBvdGhlciB1c2VmdWwgZmllbGRzLiBhcGlWZXJzaW9uLCBraW5kLCB1aWQ/IiwidHlwZSI6InN0cmluZyJ9LCJvcHRpb25hbCI6eyJkZXNjcmlwdGlvbiI6IlNwZWNpZnkgd2hldGhlciB0aGUgQ29uZmlnTWFwIG9yIGl0cyBrZXkgbXVzdCBiZSBkZWZpbmVkIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImtleSJdLCJ0eXBlIjoib2JqZWN0In0sImZpZWxkUmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGZpZWxkIG9mIHRoZSBwb2Q6IHN1cHBvcnRzIG1ldGFkYXRhLm5hbWUsIG1ldGFkYXRhLm5hbWVzcGFjZSwgYG1ldGFkYXRhLmxhYmVsc1snXHUwMDNjS0VZXHUwMDNlJ11gLCBgbWV0YWRhdGEuYW5ub3RhdGlvbnNbJ1x1MDAzY0tFWVx1MDAzZSddYCwgc3BlYy5ub2RlTmFtZSwgc3BlYy5zZXJ2aWNlQWNjb3VudE5hbWUsIHN0YXR1cy5ob3N0SVAsIHN0YXR1cy5wb2RJUCwgc3RhdHVzLnBvZElQcy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJWZXJzaW9uIG9mIHRoZSBzY2hlbWEgdGhlIEZpZWxkUGF0aCBpcyB3cml0dGVuIGluIHRlcm1zIG9mLCBkZWZhdWx0cyB0byBcInYxXCIuIiwidHlwZSI6InN0cmluZyJ9LCJmaWVsZFBhdGgiOnsiZGVzY3JpcHRpb24iOiJQYXRoIG9mIHRoZSBmaWVsZCB0byBzZWxlY3QgaW4gdGhlIHNwZWNpZmllZCBBUEkgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJmaWVsZFBhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZUZpZWxkUmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIHJlc291cmNlIG9mIHRoZSBjb250YWluZXI6IG9ubHkgcmVzb3VyY2VzIGxpbWl0cyBhbmQgcmVxdWVzdHMgKGxpbWl0cy5jcHUsIGxpbWl0cy5tZW1vcnksIGxpbWl0cy5lcGhlbWVyYWwtc3RvcmFnZSwgcmVxdWVzdHMuY3B1LCByZXF1ZXN0cy5tZW1vcnkgYW5kIHJlcXVlc3RzLmVwaGVtZXJhbC1zdG9yYWdlKSBhcmUgY3VycmVudGx5IHN1cHBvcnRlZC4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lck5hbWUiOnsiZGVzY3JpcHRpb24iOiJDb250YWluZXIgbmFtZTogcmVxdWlyZWQgZm9yIHZvbHVtZXMsIG9wdGlvbmFsIGZvciBlbnYgdmFycyIsInR5cGUiOiJzdHJpbmcifSwiZGl2aXNvciI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoiU3BlY2lmaWVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHRoZSBleHBvc2VkIHJlc291cmNlcywgZGVmYXVsdHMgdG8gXCIxXCIiLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sInJlc291cmNlIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQ6IHJlc291cmNlIHRvIHNlbGVjdCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInJlc291cmNlIl0sInR5cGUiOiJvYmplY3QifSwic2VjcmV0S2V5UmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGtleSBvZiBhIHNlY3JldCBpbiB0aGUgcG9kJ3MgbmFtZXNwYWNlIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUga2V5IG9mIHRoZSBzZWNyZXQgdG8gc2VsZWN0IGZyb20uICBNdXN0IGJlIGEgdmFsaWQgc2VjcmV0IGtleS4iLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSByZWZlcmVudC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9vdmVydmlldy93b3JraW5nLXdpdGgtb2JqZWN0cy9uYW1lcy8jbmFtZXMgVE9ETzogQWRkIG90aGVyIHVzZWZ1bCBmaWVsZHMuIGFwaVZlcnNpb24sIGtpbmQsIHVpZD8iLCJ0eXBlIjoic3RyaW5nIn0sIm9wdGlvbmFsIjp7ImRlc2NyaXB0aW9uIjoiU3BlY2lmeSB3aGV0aGVyIHRoZSBTZWNyZXQgb3IgaXRzIGtleSBtdXN0IGJlIGRlZmluZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsia2V5Il0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJob3N0TmV0d29yayI6eyJkZXNjcmlwdGlvbiI6IlVzZSB0aGUgaG9zdCdzIG5ldHdvcmsgbmFtZXNwYWNlIGlmIHRydWUuIE1ha2Ugc3VyZSB0byB1bmRlcnN0YW5kIHRoZSBzZWN1cml0eSBpbXBsaWNhdGlvbnMgaWYgeW91IHdhbnQgdG8gZW5hYmxlIGl0LiBXaGVuIGhvc3ROZXR3b3JrIGlzIGVuYWJsZWQsIHRoaXMgd2lsbCBzZXQgZG5zUG9saWN5IHRvIENsdXN0ZXJGaXJzdFdpdGhIb3N0TmV0IGF1dG9tYXRpY2FsbHkuIiwidHlwZSI6ImJvb2xlYW4ifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJMYWJlbHMgb3ZlcnJpZGVzIGxhYmVscyBmb3IgdGhlIGRlcGxveW1lbnQgYW5kIGl0cyB0ZW1wbGF0ZS4iLCJ0eXBlIjoib2JqZWN0In0sImxpdmVuZXNzUHJvYmVzIjp7ImRlc2NyaXB0aW9uIjoiTGl2ZW5lc3NQcm9iZXMgb3ZlcnJpZGVzIGxpdmVuZXNzIHByb2JlcyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJQcm9iZXNSZXF1aXJlbWVudHNPdmVycmlkZSBlbmFibGVzIHRoZSB1c2VyIHRvIG92ZXJyaWRlIGFueSBjb250YWluZXIncyBlbnYgdmFycy4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZmFpbHVyZVRocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkLiBEZWZhdWx0cyB0byAzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZS4gRGVmYXVsdCB0byAxMCBzZWNvbmRzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJzdWNjZXNzVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZC4gRGVmYXVsdHMgdG8gMS4gTXVzdCBiZSAxIGZvciBsaXZlbmVzcyBhbmQgc3RhcnR1cC4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBkdXJhdGlvbiBpbiBzZWNvbmRzIHRoZSBwb2QgbmVlZHMgdG8gdGVybWluYXRlIGdyYWNlZnVsbHkgdXBvbiBwcm9iZSBmYWlsdXJlLiBUaGUgZ3JhY2UgcGVyaW9kIGlzIHRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHRoZSBwcm9jZXNzZXMgcnVubmluZyBpbiB0aGUgcG9kIGFyZSBzZW50IGEgdGVybWluYXRpb24gc2lnbmFsIGFuZCB0aGUgdGltZSB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIGZvcmNpYmx5IGhhbHRlZCB3aXRoIGEga2lsbCBzaWduYWwuIFNldCB0aGlzIHZhbHVlIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBjbGVhbnVwIHRpbWUgZm9yIHlvdXIgcHJvY2Vzcy4gSWYgdGhpcyB2YWx1ZSBpcyBuaWwsIHRoZSBwb2QncyB0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgdGhpcyB2YWx1ZSBvdmVycmlkZXMgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBwb2Qgc3BlYy4gVmFsdWUgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlci4gVGhlIHZhbHVlIHplcm8gaW5kaWNhdGVzIHN0b3AgaW1tZWRpYXRlbHkgdmlhIHRoZSBraWxsIHNpZ25hbCAobm8gb3Bwb3J0dW5pdHkgdG8gc2h1dCBkb3duKS4gVGhpcyBpcyBhIGJldGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIFByb2JlVGVybWluYXRpb25HcmFjZVBlcmlvZCBmZWF0dXJlIGdhdGUuIE1pbmltdW0gdmFsdWUgaXMgMS4gc3BlYy50ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyBpcyB1c2VkIGlmIHVuc2V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidGltZW91dFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0LiBEZWZhdWx0cyB0byAxIHNlY29uZC4gTWluaW11bSB2YWx1ZSBpcyAxLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIGRlcGxveW1lbnQiLCJ0eXBlIjoic3RyaW5nIn0sIm5vZGVTZWxlY3RvciI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTm9kZVNlbGVjdG9yIG92ZXJyaWRlcyBub2RlU2VsZWN0b3IgZm9yIHRoZSBkZXBsb3ltZW50LiIsInR5cGUiOiJvYmplY3QifSwicmVhZGluZXNzUHJvYmVzIjp7ImRlc2NyaXB0aW9uIjoiUmVhZGluZXNzUHJvYmVzIG92ZXJyaWRlcyByZWFkaW5lc3MgcHJvYmVzIGZvciB0aGUgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlByb2Jlc1JlcXVpcmVtZW50c092ZXJyaWRlIGVuYWJsZXMgdGhlIHVzZXIgdG8gb3ZlcnJpZGUgYW55IGNvbnRhaW5lcidzIGVudiB2YXJzLiIsInByb3BlcnRpZXMiOnsiY29udGFpbmVyIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGNvbnRhaW5lciBuYW1lIiwidHlwZSI6InN0cmluZyJ9LCJmYWlsdXJlVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBmYWlsdXJlcyBmb3IgdGhlIHByb2JlIHRvIGJlIGNvbnNpZGVyZWQgZmFpbGVkIGFmdGVyIGhhdmluZyBzdWNjZWVkZWQuIERlZmF1bHRzIHRvIDMuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sImluaXRpYWxEZWxheVNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB0aGUgY29udGFpbmVyIGhhcyBzdGFydGVkIGJlZm9yZSBsaXZlbmVzcyBwcm9iZXMgYXJlIGluaXRpYXRlZC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvcG9kcy9wb2QtbGlmZWN5Y2xlI2NvbnRhaW5lci1wcm9iZXMiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJIb3cgb2Z0ZW4gKGluIHNlY29uZHMpIHRvIHBlcmZvcm0gdGhlIHByb2JlLiBEZWZhdWx0IHRvIDEwIHNlY29uZHMuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInN1Y2Nlc3NUaHJlc2hvbGQiOnsiZGVzY3JpcHRpb24iOiJNaW5pbXVtIGNvbnNlY3V0aXZlIHN1Y2Nlc3NlcyBmb3IgdGhlIHByb2JlIHRvIGJlIGNvbnNpZGVyZWQgc3VjY2Vzc2Z1bCBhZnRlciBoYXZpbmcgZmFpbGVkLiBEZWZhdWx0cyB0byAxLiBNdXN0IGJlIDEgZm9yIGxpdmVuZXNzIGFuZCBzdGFydHVwLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik9wdGlvbmFsIGR1cmF0aW9uIGluIHNlY29uZHMgdGhlIHBvZCBuZWVkcyB0byB0ZXJtaW5hdGUgZ3JhY2VmdWxseSB1cG9uIHByb2JlIGZhaWx1cmUuIFRoZSBncmFjZSBwZXJpb2QgaXMgdGhlIGR1cmF0aW9uIGluIHNlY29uZHMgYWZ0ZXIgdGhlIHByb2Nlc3NlcyBydW5uaW5nIGluIHRoZSBwb2QgYXJlIHNlbnQgYSB0ZXJtaW5hdGlvbiBzaWduYWwgYW5kIHRoZSB0aW1lIHdoZW4gdGhlIHByb2Nlc3NlcyBhcmUgZm9yY2libHkgaGFsdGVkIHdpdGggYSBraWxsIHNpZ25hbC4gU2V0IHRoaXMgdmFsdWUgbG9uZ2VyIHRoYW4gdGhlIGV4cGVjdGVkIGNsZWFudXAgdGltZSBmb3IgeW91ciBwcm9jZXNzLiBJZiB0aGlzIHZhbHVlIGlzIG5pbCwgdGhlIHBvZCdzIHRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIHdpbGwgYmUgdXNlZC4gT3RoZXJ3aXNlLCB0aGlzIHZhbHVlIG92ZXJyaWRlcyB0aGUgdmFsdWUgcHJvdmlkZWQgYnkgdGhlIHBvZCBzcGVjLiBWYWx1ZSBtdXN0IGJlIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLiBUaGUgdmFsdWUgemVybyBpbmRpY2F0ZXMgc3RvcCBpbW1lZGlhdGVseSB2aWEgdGhlIGtpbGwgc2lnbmFsIChubyBvcHBvcnR1bml0eSB0byBzaHV0IGRvd24pLiBUaGlzIGlzIGEgYmV0YSBmaWVsZCBhbmQgcmVxdWlyZXMgZW5hYmxpbmcgUHJvYmVUZXJtaW5hdGlvbkdyYWNlUGVyaW9kIGZlYXR1cmUgZ2F0ZS4gTWluaW11bSB2YWx1ZSBpcyAxLiBzcGVjLnRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIGlzIHVzZWQgaWYgdW5zZXQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ0aW1lb3V0U2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHdoaWNoIHRoZSBwcm9iZSB0aW1lcyBvdXQuIERlZmF1bHRzIHRvIDEgc2Vjb25kLiBNaW5pbXVtIHZhbHVlIGlzIDEuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsiY29udGFpbmVyIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcGxpY2FzIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG51bWJlciBvZiByZXBsaWNhcyB0aGF0IEhBIHBhcnRzIG9mIHRoZSBjb250cm9sIHBsYW5lIHdpbGwgYmUgc2NhbGVkIHRvIiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgY29udGFpbmVyJ3MgcmVzb3VyY2VzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFJlc291cmNlIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgcmVxdWVzdHMgYW5kIGxpbWl0cyBmb3IgYSBjZXJ0YWluIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgbmFtZS4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBjb250YWluZXIiLCJ0eXBlIjoic3RyaW5nIn0sImxpbWl0cyI6eyJwcm9wZXJ0aWVzIjp7ImNwdSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn0sIm1lbW9yeSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7InByb3BlcnRpZXMiOnsiY3B1Ijp7InBhdHRlcm4iOiJeKFsrLV0/WzAtOS5dKykoW2VFaW51bWtLTUdUUF0qWy0rXT9bMC05XSopJCIsInR5cGUiOiJzdHJpbmcifSwibWVtb3J5Ijp7InBhdHRlcm4iOiJeKFsrLV0/WzAtOS5dKykoW2VFaW51bWtLTUdUUF0qWy0rXT9bMC05XSopJCIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInRvbGVyYXRpb25zIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3MgdG9sZXJhdGlvbnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgcG9kIHRoaXMgVG9sZXJhdGlvbiBpcyBhdHRhY2hlZCB0byB0b2xlcmF0ZXMgYW55IHRhaW50IHRoYXQgbWF0Y2hlcyB0aGUgdHJpcGxlIFx1MDAzY2tleSx2YWx1ZSxlZmZlY3RcdTAwM2UgdXNpbmcgdGhlIG1hdGNoaW5nIG9wZXJhdG9yIFx1MDAzY29wZXJhdG9yXHUwMDNlLiIsInByb3BlcnRpZXMiOnsiZWZmZWN0Ijp7ImRlc2NyaXB0aW9uIjoiRWZmZWN0IGluZGljYXRlcyB0aGUgdGFpbnQgZWZmZWN0IHRvIG1hdGNoLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQgZWZmZWN0cy4gV2hlbiBzcGVjaWZpZWQsIGFsbG93ZWQgdmFsdWVzIGFyZSBOb1NjaGVkdWxlLCBQcmVmZXJOb1NjaGVkdWxlIGFuZCBOb0V4ZWN1dGUuIiwidHlwZSI6InN0cmluZyJ9LCJrZXkiOnsiZGVzY3JpcHRpb24iOiJLZXkgaXMgdGhlIHRhaW50IGtleSB0aGF0IHRoZSB0b2xlcmF0aW9uIGFwcGxpZXMgdG8uIEVtcHR5IG1lYW5zIG1hdGNoIGFsbCB0YWludCBrZXlzLiBJZiB0aGUga2V5IGlzIGVtcHR5LCBvcGVyYXRvciBtdXN0IGJlIEV4aXN0czsgdGhpcyBjb21iaW5hdGlvbiBtZWFucyB0byBtYXRjaCBhbGwgdmFsdWVzIGFuZCBhbGwga2V5cy4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byB0aGUgdmFsdWUuIFZhbGlkIG9wZXJhdG9ycyBhcmUgRXhpc3RzIGFuZCBFcXVhbC4gRGVmYXVsdHMgdG8gRXF1YWwuIEV4aXN0cyBpcyBlcXVpdmFsZW50IHRvIHdpbGRjYXJkIGZvciB2YWx1ZSwgc28gdGhhdCBhIHBvZCBjYW4gdG9sZXJhdGUgYWxsIHRhaW50cyBvZiBhIHBhcnRpY3VsYXIgY2F0ZWdvcnkuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2xlcmF0aW9uU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IlRvbGVyYXRpb25TZWNvbmRzIHJlcHJlc2VudHMgdGhlIHBlcmlvZCBvZiB0aW1lIHRoZSB0b2xlcmF0aW9uICh3aGljaCBtdXN0IGJlIG9mIGVmZmVjdCBOb0V4ZWN1dGUsIG90aGVyd2lzZSB0aGlzIGZpZWxkIGlzIGlnbm9yZWQpIHRvbGVyYXRlcyB0aGUgdGFpbnQuIEJ5IGRlZmF1bHQsIGl0IGlzIG5vdCBzZXQsIHdoaWNoIG1lYW5zIHRvbGVyYXRlIHRoZSB0YWludCBmb3JldmVyIChkbyBub3QgZXZpY3QpLiBaZXJvIGFuZCBuZWdhdGl2ZSB2YWx1ZXMgd2lsbCBiZSB0cmVhdGVkIGFzIDAgKGV2aWN0IGltbWVkaWF0ZWx5KSBieSB0aGUgc3lzdGVtLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgdGFpbnQgdmFsdWUgdGhlIHRvbGVyYXRpb24gbWF0Y2hlcyB0by4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cywgdGhlIHZhbHVlIHNob3VsZCBiZSBlbXB0eSwgb3RoZXJ3aXNlIGp1c3QgYSByZWd1bGFyIHN0cmluZy4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neVNwcmVhZENvbnN0cmFpbnRzIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3MgdG9wb2xvZ3kgc3ByZWFkIGNvbnN0cmFpbnRzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVG9wb2xvZ3lTcHJlYWRDb25zdHJhaW50IHNwZWNpZmllcyBob3cgdG8gc3ByZWFkIG1hdGNoaW5nIHBvZHMgYW1vbmcgdGhlIGdpdmVuIHRvcG9sb2d5LiIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkxhYmVsU2VsZWN0b3IgaXMgdXNlZCB0byBmaW5kIG1hdGNoaW5nIHBvZHMuIFBvZHMgdGhhdCBtYXRjaCB0aGlzIGxhYmVsIHNlbGVjdG9yIGFyZSBjb3VudGVkIHRvIGRldGVybWluZSB0aGUgbnVtYmVyIG9mIHBvZHMgaW4gdGhlaXIgY29ycmVzcG9uZGluZyB0b3BvbG9neSBkb21haW4uIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJtYXhTa2V3Ijp7ImRlc2NyaXB0aW9uIjoiTWF4U2tldyBkZXNjcmliZXMgdGhlIGRlZ3JlZSB0byB3aGljaCBwb2RzIG1heSBiZSB1bmV2ZW5seSBkaXN0cmlidXRlZC4gSXQncyB0aGUgbWF4aW11bSBwZXJtaXR0ZWQgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBudW1iZXIgb2YgbWF0Y2hpbmcgcG9kcyBpbiBhbnkgdHdvIHRvcG9sb2d5IGRvbWFpbnMgb2YgYSBnaXZlbiB0b3BvbG9neSB0eXBlLiBGb3IgZXhhbXBsZSwgaW4gYSAzLXpvbmUgY2x1c3RlciwgTWF4U2tldyBpcyBzZXQgdG8gMSwgYW5kIHBvZHMgd2l0aCB0aGUgc2FtZSBsYWJlbFNlbGVjdG9yIHNwcmVhZCBhcyAxLzEvMDogfCB6b25lMSB8IHpvbmUyIHwgem9uZTMgfCB8ICAgUCAgIHwgICBQICAgfCAgICAgICB8IC0gaWYgTWF4U2tldyBpcyAxLCBpbmNvbWluZyBwb2QgY2FuIG9ubHkgYmUgc2NoZWR1bGVkIHRvIHpvbmUzIHRvIGJlY29tZSAxLzEvMTsgc2NoZWR1bGluZyBpdCBvbnRvIHpvbmUxKHpvbmUyKSB3b3VsZCBtYWtlIHRoZSBBY3R1YWxTa2V3KDItMCkgb24gem9uZTEoem9uZTIpIHZpb2xhdGUgTWF4U2tldygxKS4gLSBpZiBNYXhTa2V3IGlzIDIsIGluY29taW5nIHBvZCBjYW4gYmUgc2NoZWR1bGVkIG9udG8gYW55IHpvbmUuIEl0J3MgYSByZXF1aXJlZCBmaWVsZC4gRGVmYXVsdCB2YWx1ZSBpcyAxIGFuZCAwIGlzIG5vdCBhbGxvd2VkLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUb3BvbG9neUtleSBpcyB0aGUga2V5IG9mIG5vZGUgbGFiZWxzLiBOb2RlcyB0aGF0IGhhdmUgYSBsYWJlbCB3aXRoIHRoaXMga2V5IGFuZCBpZGVudGljYWwgdmFsdWVzIGFyZSBjb25zaWRlcmVkIHRvIGJlIGluIHRoZSBzYW1lIHRvcG9sb2d5LiBXZSBjb25zaWRlciBlYWNoIFx1MDAzY2tleSwgdmFsdWVcdTAwM2UgYXMgYSBcImJ1Y2tldFwiLCBhbmQgdHJ5IHRvIHB1dCBiYWxhbmNlZCBudW1iZXIgb2YgcG9kcyBpbnRvIGVhY2ggYnVja2V0LiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIiwidHlwZSI6InN0cmluZyJ9LCJ3aGVuVW5zYXRpc2ZpYWJsZSI6eyJkZXNjcmlwdGlvbiI6IldoZW5VbnNhdGlzZmlhYmxlIGluZGljYXRlcyBob3cgdG8gZGVhbCB3aXRoIGEgcG9kIGlmIGl0IGRvZXNuJ3Qgc2F0aXNmeSB0aGUgc3ByZWFkIGNvbnN0cmFpbnQuIC0gRG9Ob3RTY2hlZHVsZSAoZGVmYXVsdCkgdGVsbHMgdGhlIHNjaGVkdWxlciBub3QgdG8gc2NoZWR1bGUgaXQgLSBTY2hlZHVsZUFueXdheSB0ZWxscyB0aGUgc2NoZWR1bGVyIHRvIHN0aWxsIHNjaGVkdWxlIGl0IEl0J3MgY29uc2lkZXJlZCBhcyBcIlVuc2F0aXNmaWFibGVcIiBpZiBhbmQgb25seSBpZiBwbGFjaW5nIGluY29taW5nIHBvZCBvbiBhbnkgdG9wb2xvZ3kgdmlvbGF0ZXMgXCJNYXhTa2V3XCIuIEZvciBleGFtcGxlLCBpbiBhIDMtem9uZSBjbHVzdGVyLCBNYXhTa2V3IGlzIHNldCB0byAxLCBhbmQgcG9kcyB3aXRoIHRoZSBzYW1lIGxhYmVsU2VsZWN0b3Igc3ByZWFkIGFzIDMvMS8xOiB8IHpvbmUxIHwgem9uZTIgfCB6b25lMyB8IHwgUCBQIFAgfCAgIFAgICB8ICAgUCAgIHwgSWYgV2hlblVuc2F0aXNmaWFibGUgaXMgc2V0IHRvIERvTm90U2NoZWR1bGUsIGluY29taW5nIHBvZCBjYW4gb25seSBiZSBzY2hlZHVsZWQgdG8gem9uZTIoem9uZTMpIHRvIGJlY29tZSAzLzIvMSgzLzEvMikgYXMgQWN0dWFsU2tldygyLTEpIG9uIHpvbmUyKHpvbmUzKSBzYXRpc2ZpZXMgTWF4U2tldygxKS4gSW4gb3RoZXIgd29yZHMsIHRoZSBjbHVzdGVyIGNhbiBzdGlsbCBiZSBpbWJhbGFuY2VkLCBidXQgc2NoZWR1bGVyIHdvbid0IG1ha2UgaXQgKm1vcmUqIGltYmFsYW5jZWQuIEl0J3MgYSByZXF1aXJlZCBmaWVsZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJtYXhTa2V3IiwidG9wb2xvZ3lLZXkiLCJ3aGVuVW5zYXRpc2ZpYWJsZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiaGlnaC1hdmFpbGFiaWxpdHkiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiBIQSBjb250cm9sIHBsYW5lIiwicHJvcGVydGllcyI6eyJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sInBvZERpc3J1cHRpb25CdWRnZXRzIjp7ImRlc2NyaXB0aW9uIjoiQSBtYXBwaW5nIG9mIHBvZERpc3J1cHRpb25CdWRnZXQgbmFtZSB0byBvdmVycmlkZSIsIml0ZW1zIjp7InByb3BlcnRpZXMiOnsibWF4VW5hdmFpbGFibGUiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJkZXNjcmlwdGlvbiI6IkFuIGV2aWN0aW9uIGlzIGFsbG93ZWQgaWYgYXQgbW9zdCBcIm1heFVuYXZhaWxhYmxlXCIgcG9kcyBzZWxlY3RlZCBieSBcInNlbGVjdG9yXCIgYXJlIHVuYXZhaWxhYmxlIGFmdGVyIHRoZSBldmljdGlvbiwgaS5lLiBldmVuIGluIGFic2VuY2Ugb2YgdGhlIGV2aWN0ZWQgcG9kLiBGb3IgZXhhbXBsZSwgb25lIGNhbiBwcmV2ZW50IGFsbCB2b2x1bnRhcnkgZXZpY3Rpb25zIGJ5IHNwZWNpZnlpbmcgMC4gVGhpcyBpcyBhIG11dHVhbGx5IGV4Y2x1c2l2ZSBzZXR0aW5nIHdpdGggXCJtaW5BdmFpbGFibGVcIi4iLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sIm1pbkF2YWlsYWJsZSI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoiQW4gZXZpY3Rpb24gaXMgYWxsb3dlZCBpZiBhdCBsZWFzdCBcIm1pbkF2YWlsYWJsZVwiIHBvZHMgc2VsZWN0ZWQgYnkgXCJzZWxlY3RvclwiIHdpbGwgc3RpbGwgYmUgYXZhaWxhYmxlIGFmdGVyIHRoZSBldmljdGlvbiwgaS5lLiBldmVuIGluIHRoZSBhYnNlbmNlIG9mIHRoZSBldmljdGVkIHBvZC4gIFNvIGZvciBleGFtcGxlIHlvdSBjYW4gcHJldmVudCBhbGwgdm9sdW50YXJ5IGV2aWN0aW9ucyBieSBzcGVjaWZ5aW5nIFwiMTAwJVwiLiIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBwb2REaXNydXB0aW9uQnVkZ2V0IiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwic2VydmljZXMiOnsiZGVzY3JpcHRpb24iOiJBIG1hcHBpbmcgb2Ygc2VydmljZSBuYW1lIHRvIG92ZXJyaWRlIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgb3ZlcnJpZGVzIGxhYmVscyBmb3IgdGhlIHNlcnZpY2UiLCJ0eXBlIjoib2JqZWN0In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTGFiZWxzIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBzZXJ2aWNlIiwidHlwZSI6Im9iamVjdCJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UiLCJ0eXBlIjoic3RyaW5nIn0sInNlbGVjdG9yIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJTZWxlY3RvciBvdmVycmlkZXMgc2VsZWN0b3IgZm9yIHRoZSBzZXJ2aWNlIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwic2lua0JpbmRpbmdTZWxlY3Rpb25Nb2RlIjp7ImRlc2NyaXB0aW9uIjoiU3BlY2lmaWVzIHRoZSBzZWxlY3Rpb24gbW9kZSBmb3IgdGhlIHNpbmtiaW5kaW5nIHdlYmhvb2suIElmIHRoZSB2YWx1ZSBpcyBgaW5jbHVzaW9uYCwgb25seSBuYW1lc3BhY2VzL29iamVjdHMgbGFiZWxsZWQgYXMgYGJpbmRpbmdzLmtuYXRpdmUuZGV2L2luY2x1ZGU6dHJ1ZWAgd2lsbCBiZSBjb25zaWRlcmVkLiBJZiBgZXhjbHVzaW9uYCBpcyBzZWxlY3RlZCwgb25seSBgYmluZGluZ3Mua25hdGl2ZS5kZXYvZXhjbHVkZTp0cnVlYCBsYWJlbCBpcyBjaGVja2VkIGFuZCB0aGVzZSB3aWxsIE5PVCBiZSBjb25zaWRlcmVkLiBUaGUgZGVmYXVsdCBmb3IgT3BlbnNoaWZ0IFNlcnZlcmxlc3MgaXMgYGluY2x1c2lvbmAuIiwidHlwZSI6InN0cmluZyJ9LCJ3b3JrbG9hZHMiOnsiZGVzY3JpcHRpb24iOiJBIG1hcHBpbmcgb2YgZGVwbG95bWVudCBvciBzdGF0ZWZ1bHNldCBuYW1lIHRvIG92ZXJyaWRlIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJhZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHNjaGVkdWxpbmcgY29uc3RyYWludHMuIiwicHJvcGVydGllcyI6eyJub2RlQWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJEZXNjcmliZXMgbm9kZSBhZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIGZvciB0aGUgcG9kLiIsInByb3BlcnRpZXMiOnsicHJlZmVycmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgc2NoZWR1bGVyIHdpbGwgcHJlZmVyIHRvIHNjaGVkdWxlIHBvZHMgdG8gbm9kZXMgdGhhdCBzYXRpc2Z5IHRoZSBhZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBtYXRjaEV4cHJlc3Npb25zOyB0aGUgbm9kZShzKSB3aXRoIHRoZSBoaWdoZXN0IHN1bSBhcmUgdGhlIG1vc3QgcHJlZmVycmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQW4gZW1wdHkgcHJlZmVycmVkIHNjaGVkdWxpbmcgdGVybSBtYXRjaGVzIGFsbCBvYmplY3RzIHdpdGggaW1wbGljaXQgd2VpZ2h0IDAgKGkuZS4gaXQncyBhIG5vLW9wKS4gQSBudWxsIHByZWZlcnJlZCBzY2hlZHVsaW5nIHRlcm0gbWF0Y2hlcyBubyBvYmplY3RzIChpLmUuIGlzIGFsc28gYSBuby1vcCkuIiwicHJvcGVydGllcyI6eyJwcmVmZXJlbmNlIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHRlcm0sIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB3ZWlnaHQuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBsYWJlbHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoRmllbGRzIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBmaWVsZHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sIndlaWdodCI6eyJkZXNjcmlwdGlvbiI6IldlaWdodCBhc3NvY2lhdGVkIHdpdGggbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgbm9kZVNlbGVjdG9yVGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInByZWZlcmVuY2UiLCJ3ZWlnaHQiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IklmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhbiB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4iLCJwcm9wZXJ0aWVzIjp7Im5vZGVTZWxlY3RvclRlcm1zIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQuIEEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHRlcm1zLiBUaGUgdGVybXMgYXJlIE9SZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG51bGwgb3IgZW1wdHkgbm9kZSBzZWxlY3RvciB0ZXJtIG1hdGNoZXMgbm8gb2JqZWN0cy4gVGhlIHJlcXVpcmVtZW50cyBvZiB0aGVtIGFyZSBBTkRlZC4gVGhlIFRvcG9sb2d5U2VsZWN0b3JUZXJtIHR5cGUgaW1wbGVtZW50cyBhIHN1YnNldCBvZiB0aGUgTm9kZVNlbGVjdG9yVGVybS4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGxhYmVscy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hGaWVsZHMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGZpZWxkcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJub2RlU2VsZWN0b3JUZXJtcyJdLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInBvZEFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiRGVzY3JpYmVzIHBvZCBhZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIChlLmcuIGNvLWxvY2F0ZSB0aGlzIHBvZCBpbiB0aGUgc2FtZSBub2RlLCB6b25lLCBldGMuIGFzIHNvbWUgb3RoZXIgcG9kKHMpKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcnJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHNjaGVkdWxlciB3aWxsIHByZWZlciB0byBzY2hlZHVsZSBwb2RzIHRvIG5vZGVzIHRoYXQgc2F0aXNmeSB0aGUgYWZmaW5pdHkgZXhwcmVzc2lvbnMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQsIGJ1dCBpdCBtYXkgY2hvb3NlIGEgbm9kZSB0aGF0IHZpb2xhdGVzIG9uZSBvciBtb3JlIG9mIHRoZSBleHByZXNzaW9ucy4gVGhlIG5vZGUgdGhhdCBpcyBtb3N0IHByZWZlcnJlZCBpcyB0aGUgb25lIHdpdGggdGhlIGdyZWF0ZXN0IHN1bSBvZiB3ZWlnaHRzLCBpLmUuIGZvciBlYWNoIG5vZGUgdGhhdCBtZWV0cyBhbGwgb2YgdGhlIHNjaGVkdWxpbmcgcmVxdWlyZW1lbnRzIChyZXNvdXJjZSByZXF1ZXN0LCByZXF1aXJlZER1cmluZ1NjaGVkdWxpbmcgYWZmaW5pdHkgZXhwcmVzc2lvbnMsIGV0Yy4pLCBjb21wdXRlIGEgc3VtIGJ5IGl0ZXJhdGluZyB0aHJvdWdoIHRoZSBlbGVtZW50cyBvZiB0aGlzIGZpZWxkIGFuZCBhZGRpbmcgXCJ3ZWlnaHRcIiB0byB0aGUgc3VtIGlmIHRoZSBub2RlIGhhcyBwb2RzIHdoaWNoIG1hdGNoZXMgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtOyB0aGUgbm9kZShzKSB3aXRoIHRoZSBoaWdoZXN0IHN1bSBhcmUgdGhlIG1vc3QgcHJlZmVycmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHdlaWdodHMgb2YgYWxsIG9mIHRoZSBtYXRjaGVkIFdlaWdodGVkUG9kQWZmaW5pdHlUZXJtIGZpZWxkcyBhcmUgYWRkZWQgcGVyLW5vZGUgdG8gZmluZCB0aGUgbW9zdCBwcmVmZXJyZWQgbm9kZShzKSIsInByb3BlcnRpZXMiOnsicG9kQWZmaW5pdHlUZXJtIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQuIEEgcG9kIGFmZmluaXR5IHRlcm0sIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB3ZWlnaHQuIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwid2VpZ2h0Ijp7ImRlc2NyaXB0aW9uIjoid2VpZ2h0IGFzc29jaWF0ZWQgd2l0aCBtYXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm0sIGluIHRoZSByYW5nZSAxLTEwMC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJwb2RBZmZpbml0eVRlcm0iLCJ3ZWlnaHQiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IklmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhIHBvZCBsYWJlbCB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4gV2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgZWxlbWVudHMsIHRoZSBsaXN0cyBvZiBub2RlcyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9kQWZmaW5pdHlUZXJtIGFyZSBpbnRlcnNlY3RlZCwgaS5lLiBhbGwgdGVybXMgbXVzdCBiZSBzYXRpc2ZpZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJEZWZpbmVzIGEgc2V0IG9mIHBvZHMgKG5hbWVseSB0aG9zZSBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gbmFtZXNwYWNlKHMpKSB0aGF0IHRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGgsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgXHUwMDNjdG9wb2xvZ3lLZXlcdTAwM2UgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGEgcG9kIG9mIHRoZSBzZXQgb2YgcG9kcyBpcyBydW5uaW5nIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBvZEFudGlBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBwb2QgYW50aS1hZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIChlLmcuIGF2b2lkIHB1dHRpbmcgdGhpcyBwb2QgaW4gdGhlIHNhbWUgbm9kZSwgem9uZSwgZXRjLiBhcyBzb21lIG90aGVyIHBvZChzKSkuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnkgdGhlIGFudGktYWZmaW5pdHkgZXhwcmVzc2lvbnMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQsIGJ1dCBpdCBtYXkgY2hvb3NlIGEgbm9kZSB0aGF0IHZpb2xhdGVzIG9uZSBvciBtb3JlIG9mIHRoZSBleHByZXNzaW9ucy4gVGhlIG5vZGUgdGhhdCBpcyBtb3N0IHByZWZlcnJlZCBpcyB0aGUgb25lIHdpdGggdGhlIGdyZWF0ZXN0IHN1bSBvZiB3ZWlnaHRzLCBpLmUuIGZvciBlYWNoIG5vZGUgdGhhdCBtZWV0cyBhbGwgb2YgdGhlIHNjaGVkdWxpbmcgcmVxdWlyZW1lbnRzIChyZXNvdXJjZSByZXF1ZXN0LCByZXF1aXJlZER1cmluZ1NjaGVkdWxpbmcgYW50aS1hZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgaGFzIHBvZHMgd2hpY2ggbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm07IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgd2VpZ2h0cyBvZiBhbGwgb2YgdGhlIG1hdGNoZWQgV2VpZ2h0ZWRQb2RBZmZpbml0eVRlcm0gZmllbGRzIGFyZSBhZGRlZCBwZXItbm9kZSB0byBmaW5kIHRoZSBtb3N0IHByZWZlcnJlZCBub2RlKHMpIiwicHJvcGVydGllcyI6eyJwb2RBZmZpbml0eVRlcm0iOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBwb2QgYWZmaW5pdHkgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ3ZWlnaHQiOnsiZGVzY3JpcHRpb24iOiJ3ZWlnaHQgYXNzb2NpYXRlZCB3aXRoIG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInBvZEFmZmluaXR5VGVybSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFudGktYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGFyZSBub3QgbWV0IGF0IHNjaGVkdWxpbmcgdGltZSwgdGhlIHBvZCB3aWxsIG5vdCBiZSBzY2hlZHVsZWQgb250byB0aGUgbm9kZS4gSWYgdGhlIGFudGktYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhIHBvZCBsYWJlbCB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4gV2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgZWxlbWVudHMsIHRoZSBsaXN0cyBvZiBub2RlcyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9kQWZmaW5pdHlUZXJtIGFyZSBpbnRlcnNlY3RlZCwgaS5lLiBhbGwgdGVybXMgbXVzdCBiZSBzYXRpc2ZpZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJEZWZpbmVzIGEgc2V0IG9mIHBvZHMgKG5hbWVseSB0aG9zZSBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gbmFtZXNwYWNlKHMpKSB0aGF0IHRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGgsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgXHUwMDNjdG9wb2xvZ3lLZXlcdTAwM2UgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGEgcG9kIG9mIHRoZSBzZXQgb2YgcG9kcyBpcyBydW5uaW5nIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBvdmVycmlkZXMgbGFiZWxzIGZvciB0aGUgZGVwbG95bWVudCBhbmQgaXRzIHRlbXBsYXRlLiIsInR5cGUiOiJvYmplY3QifSwiZW52Ijp7ImRlc2NyaXB0aW9uIjoiRW52IG92ZXJyaWRlcyBlbnYgdmFycyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgY29udGFpbmVyIG5hbWUiLCJ0eXBlIjoic3RyaW5nIn0sImVudlZhcnMiOnsiZGVzY3JpcHRpb24iOiJUaGUgZGVzaXJlZCBFbnZWYXJSZXF1aXJlbWVudHMiLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkVudlZhciByZXByZXNlbnRzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHByZXNlbnQgaW4gYSBDb250YWluZXIuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUuIE11c3QgYmUgYSBDX0lERU5USUZJRVIuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6IlZhcmlhYmxlIHJlZmVyZW5jZXMgJChWQVJfTkFNRSkgYXJlIGV4cGFuZGVkIHVzaW5nIHRoZSBwcmV2aW91c2x5IGRlZmluZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIHRoZSBjb250YWluZXIgYW5kIGFueSBzZXJ2aWNlIGVudmlyb25tZW50IHZhcmlhYmxlcy4gSWYgYSB2YXJpYWJsZSBjYW5ub3QgYmUgcmVzb2x2ZWQsIHRoZSByZWZlcmVuY2UgaW4gdGhlIGlucHV0IHN0cmluZyB3aWxsIGJlIHVuY2hhbmdlZC4gRG91YmxlICQkIGFyZSByZWR1Y2VkIHRvIGEgc2luZ2xlICQsIHdoaWNoIGFsbG93cyBmb3IgZXNjYXBpbmcgdGhlICQoVkFSX05BTUUpIHN5bnRheDogaS5lLiBcIiQkKFZBUl9OQU1FKVwiIHdpbGwgcHJvZHVjZSB0aGUgc3RyaW5nIGxpdGVyYWwgXCIkKFZBUl9OQU1FKVwiLiBFc2NhcGVkIHJlZmVyZW5jZXMgd2lsbCBuZXZlciBiZSBleHBhbmRlZCwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSB2YXJpYWJsZSBleGlzdHMgb3Igbm90LiBEZWZhdWx0cyB0byBcIlwiLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVGcm9tIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGZvciB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUncyB2YWx1ZS4gQ2Fubm90IGJlIHVzZWQgaWYgdmFsdWUgaXMgbm90IGVtcHR5LiIsInByb3BlcnRpZXMiOnsiY29uZmlnTWFwS2V5UmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGtleSBvZiBhIENvbmZpZ01hcC4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBrZXkgdG8gc2VsZWN0LiIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIHJlZmVyZW50LiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L3dvcmtpbmctd2l0aC1vYmplY3RzL25hbWVzLyNuYW1lcyBUT0RPOiBBZGQgb3RoZXIgdXNlZnVsIGZpZWxkcy4gYXBpVmVyc2lvbiwga2luZCwgdWlkPyIsInR5cGUiOiJzdHJpbmcifSwib3B0aW9uYWwiOnsiZGVzY3JpcHRpb24iOiJTcGVjaWZ5IHdoZXRoZXIgdGhlIENvbmZpZ01hcCBvciBpdHMga2V5IG11c3QgYmUgZGVmaW5lZCIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJrZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJmaWVsZFJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBmaWVsZCBvZiB0aGUgcG9kOiBzdXBwb3J0cyBtZXRhZGF0YS5uYW1lLCBtZXRhZGF0YS5uYW1lc3BhY2UsIGBtZXRhZGF0YS5sYWJlbHNbJ1x1MDAzY0tFWVx1MDAzZSddYCwgYG1ldGFkYXRhLmFubm90YXRpb25zWydcdTAwM2NLRVlcdTAwM2UnXWAsIHNwZWMubm9kZU5hbWUsIHNwZWMuc2VydmljZUFjY291bnROYW1lLCBzdGF0dXMuaG9zdElQLCBzdGF0dXMucG9kSVAsIHN0YXR1cy5wb2RJUHMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiVmVyc2lvbiBvZiB0aGUgc2NoZW1hIHRoZSBGaWVsZFBhdGggaXMgd3JpdHRlbiBpbiB0ZXJtcyBvZiwgZGVmYXVsdHMgdG8gXCJ2MVwiLiIsInR5cGUiOiJzdHJpbmcifSwiZmllbGRQYXRoIjp7ImRlc2NyaXB0aW9uIjoiUGF0aCBvZiB0aGUgZmllbGQgdG8gc2VsZWN0IGluIHRoZSBzcGVjaWZpZWQgQVBJIHZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiZmllbGRQYXRoIl0sInR5cGUiOiJvYmplY3QifSwicmVzb3VyY2VGaWVsZFJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSByZXNvdXJjZSBvZiB0aGUgY29udGFpbmVyOiBvbmx5IHJlc291cmNlcyBsaW1pdHMgYW5kIHJlcXVlc3RzIChsaW1pdHMuY3B1LCBsaW1pdHMubWVtb3J5LCBsaW1pdHMuZXBoZW1lcmFsLXN0b3JhZ2UsIHJlcXVlc3RzLmNwdSwgcmVxdWVzdHMubWVtb3J5IGFuZCByZXF1ZXN0cy5lcGhlbWVyYWwtc3RvcmFnZSkgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQuIiwicHJvcGVydGllcyI6eyJjb250YWluZXJOYW1lIjp7ImRlc2NyaXB0aW9uIjoiQ29udGFpbmVyIG5hbWU6IHJlcXVpcmVkIGZvciB2b2x1bWVzLCBvcHRpb25hbCBmb3IgZW52IHZhcnMiLCJ0eXBlIjoic3RyaW5nIn0sImRpdmlzb3IiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJkZXNjcmlwdGlvbiI6IlNwZWNpZmllcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiB0aGUgZXhwb3NlZCByZXNvdXJjZXMsIGRlZmF1bHRzIHRvIFwiMVwiIiwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJyZXNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkOiByZXNvdXJjZSB0byBzZWxlY3QiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJyZXNvdXJjZSJdLCJ0eXBlIjoib2JqZWN0In0sInNlY3JldEtleVJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBrZXkgb2YgYSBzZWNyZXQgaW4gdGhlIHBvZCdzIG5hbWVzcGFjZSIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGtleSBvZiB0aGUgc2VjcmV0IHRvIHNlbGVjdCBmcm9tLiAgTXVzdCBiZSBhIHZhbGlkIHNlY3JldCBrZXkuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgcmVmZXJlbnQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbmFtZXMvI25hbWVzIFRPRE86IEFkZCBvdGhlciB1c2VmdWwgZmllbGRzLiBhcGlWZXJzaW9uLCBraW5kLCB1aWQ/IiwidHlwZSI6InN0cmluZyJ9LCJvcHRpb25hbCI6eyJkZXNjcmlwdGlvbiI6IlNwZWNpZnkgd2hldGhlciB0aGUgU2VjcmV0IG9yIGl0cyBrZXkgbXVzdCBiZSBkZWZpbmVkIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImtleSJdLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJjb250YWluZXIiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiaG9zdE5ldHdvcmsiOnsiZGVzY3JpcHRpb24iOiJVc2UgdGhlIGhvc3QncyBuZXR3b3JrIG5hbWVzcGFjZSBpZiB0cnVlLiBNYWtlIHN1cmUgdG8gdW5kZXJzdGFuZCB0aGUgc2VjdXJpdHkgaW1wbGljYXRpb25zIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBpdC4gV2hlbiBob3N0TmV0d29yayBpcyBlbmFibGVkLCB0aGlzIHdpbGwgc2V0IGRuc1BvbGljeSB0byBDbHVzdGVyRmlyc3RXaXRoSG9zdE5ldCBhdXRvbWF0aWNhbGx5LiIsInR5cGUiOiJib29sZWFuIn0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTGFiZWxzIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBkZXBsb3ltZW50IGFuZCBpdHMgdGVtcGxhdGUuIiwidHlwZSI6Im9iamVjdCJ9LCJsaXZlbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IkxpdmVuZXNzUHJvYmVzIG92ZXJyaWRlcyBsaXZlbmVzcyBwcm9iZXMgZm9yIHRoZSBjb250YWluZXJzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiUHJvYmVzUmVxdWlyZW1lbnRzT3ZlcnJpZGUgZW5hYmxlcyB0aGUgdXNlciB0byBvdmVycmlkZSBhbnkgY29udGFpbmVyJ3MgZW52IHZhcnMuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgY29udGFpbmVyIG5hbWUiLCJ0eXBlIjoic3RyaW5nIn0sImZhaWx1cmVUaHJlc2hvbGQiOnsiZGVzY3JpcHRpb24iOiJNaW5pbXVtIGNvbnNlY3V0aXZlIGZhaWx1cmVzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBmYWlsZWQgYWZ0ZXIgaGF2aW5nIHN1Y2NlZWRlZC4gRGVmYXVsdHMgdG8gMy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHRoZSBjb250YWluZXIgaGFzIHN0YXJ0ZWQgYmVmb3JlIGxpdmVuZXNzIHByb2JlcyBhcmUgaW5pdGlhdGVkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwicGVyaW9kU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IkhvdyBvZnRlbiAoaW4gc2Vjb25kcykgdG8gcGVyZm9ybSB0aGUgcHJvYmUuIERlZmF1bHQgdG8gMTAgc2Vjb25kcy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwic3VjY2Vzc1RocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgc3VjY2Vzc2VzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBzdWNjZXNzZnVsIGFmdGVyIGhhdmluZyBmYWlsZWQuIERlZmF1bHRzIHRvIDEuIE11c3QgYmUgMSBmb3IgbGl2ZW5lc3MgYW5kIHN0YXJ0dXAuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiT3B0aW9uYWwgZHVyYXRpb24gaW4gc2Vjb25kcyB0aGUgcG9kIG5lZWRzIHRvIHRlcm1pbmF0ZSBncmFjZWZ1bGx5IHVwb24gcHJvYmUgZmFpbHVyZS4gVGhlIGdyYWNlIHBlcmlvZCBpcyB0aGUgZHVyYXRpb24gaW4gc2Vjb25kcyBhZnRlciB0aGUgcHJvY2Vzc2VzIHJ1bm5pbmcgaW4gdGhlIHBvZCBhcmUgc2VudCBhIHRlcm1pbmF0aW9uIHNpZ25hbCBhbmQgdGhlIHRpbWUgd2hlbiB0aGUgcHJvY2Vzc2VzIGFyZSBmb3JjaWJseSBoYWx0ZWQgd2l0aCBhIGtpbGwgc2lnbmFsLiBTZXQgdGhpcyB2YWx1ZSBsb25nZXIgdGhhbiB0aGUgZXhwZWN0ZWQgY2xlYW51cCB0aW1lIGZvciB5b3VyIHByb2Nlc3MuIElmIHRoaXMgdmFsdWUgaXMgbmlsLCB0aGUgcG9kJ3MgdGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgd2lsbCBiZSB1c2VkLiBPdGhlcndpc2UsIHRoaXMgdmFsdWUgb3ZlcnJpZGVzIHRoZSB2YWx1ZSBwcm92aWRlZCBieSB0aGUgcG9kIHNwZWMuIFZhbHVlIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXIuIFRoZSB2YWx1ZSB6ZXJvIGluZGljYXRlcyBzdG9wIGltbWVkaWF0ZWx5IHZpYSB0aGUga2lsbCBzaWduYWwgKG5vIG9wcG9ydHVuaXR5IHRvIHNodXQgZG93bikuIFRoaXMgaXMgYSBiZXRhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyBQcm9iZVRlcm1pbmF0aW9uR3JhY2VQZXJpb2QgZmVhdHVyZSBnYXRlLiBNaW5pbXVtIHZhbHVlIGlzIDEuIHNwZWMudGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgaXMgdXNlZCBpZiB1bnNldC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInRpbWVvdXRTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgd2hpY2ggdGhlIHByb2JlIHRpbWVzIG91dC4gRGVmYXVsdHMgdG8gMSBzZWNvbmQuIE1pbmltdW0gdmFsdWUgaXMgMS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvcG9kcy9wb2QtbGlmZWN5Y2xlI2NvbnRhaW5lci1wcm9iZXMiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJjb250YWluZXIiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBkZXBsb3ltZW50IiwidHlwZSI6InN0cmluZyJ9LCJub2RlU2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik5vZGVTZWxlY3RvciBvdmVycmlkZXMgbm9kZVNlbGVjdG9yIGZvciB0aGUgZGVwbG95bWVudC4iLCJ0eXBlIjoib2JqZWN0In0sInJlYWRpbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IlJlYWRpbmVzc1Byb2JlcyBvdmVycmlkZXMgcmVhZGluZXNzIHByb2JlcyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJQcm9iZXNSZXF1aXJlbWVudHNPdmVycmlkZSBlbmFibGVzIHRoZSB1c2VyIHRvIG92ZXJyaWRlIGFueSBjb250YWluZXIncyBlbnYgdmFycy4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZmFpbHVyZVRocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkLiBEZWZhdWx0cyB0byAzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZS4gRGVmYXVsdCB0byAxMCBzZWNvbmRzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJzdWNjZXNzVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZC4gRGVmYXVsdHMgdG8gMS4gTXVzdCBiZSAxIGZvciBsaXZlbmVzcyBhbmQgc3RhcnR1cC4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBkdXJhdGlvbiBpbiBzZWNvbmRzIHRoZSBwb2QgbmVlZHMgdG8gdGVybWluYXRlIGdyYWNlZnVsbHkgdXBvbiBwcm9iZSBmYWlsdXJlLiBUaGUgZ3JhY2UgcGVyaW9kIGlzIHRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHRoZSBwcm9jZXNzZXMgcnVubmluZyBpbiB0aGUgcG9kIGFyZSBzZW50IGEgdGVybWluYXRpb24gc2lnbmFsIGFuZCB0aGUgdGltZSB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIGZvcmNpYmx5IGhhbHRlZCB3aXRoIGEga2lsbCBzaWduYWwuIFNldCB0aGlzIHZhbHVlIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBjbGVhbnVwIHRpbWUgZm9yIHlvdXIgcHJvY2Vzcy4gSWYgdGhpcyB2YWx1ZSBpcyBuaWwsIHRoZSBwb2QncyB0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgdGhpcyB2YWx1ZSBvdmVycmlkZXMgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBwb2Qgc3BlYy4gVmFsdWUgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlci4gVGhlIHZhbHVlIHplcm8gaW5kaWNhdGVzIHN0b3AgaW1tZWRpYXRlbHkgdmlhIHRoZSBraWxsIHNpZ25hbCAobm8gb3Bwb3J0dW5pdHkgdG8gc2h1dCBkb3duKS4gVGhpcyBpcyBhIGJldGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIFByb2JlVGVybWluYXRpb25HcmFjZVBlcmlvZCBmZWF0dXJlIGdhdGUuIE1pbmltdW0gdmFsdWUgaXMgMS4gc3BlYy50ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyBpcyB1c2VkIGlmIHVuc2V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidGltZW91dFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0LiBEZWZhdWx0cyB0byAxIHNlY29uZC4gTWluaW11bSB2YWx1ZSBpcyAxLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIGNvbnRhaW5lcidzIHJlc291cmNlcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBwb2QgdGhpcyBSZXNvdXJjZSBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHJlcXVlc3RzIGFuZCBsaW1pdHMgZm9yIGEgY2VydGFpbiBjb250YWluZXIgYmFzZWQgb24gdGhlIG5hbWUuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIiwidHlwZSI6InN0cmluZyJ9LCJsaW1pdHMiOnsicHJvcGVydGllcyI6eyJjcHUiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9LCJtZW1vcnkiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJwcm9wZXJ0aWVzIjp7ImNwdSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn0sIm1lbW9yeSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ0b2xlcmF0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHRvbGVyYXRpb25zLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFRvbGVyYXRpb24gaXMgYXR0YWNoZWQgdG8gdG9sZXJhdGVzIGFueSB0YWludCB0aGF0IG1hdGNoZXMgdGhlIHRyaXBsZSBcdTAwM2NrZXksdmFsdWUsZWZmZWN0XHUwMDNlIHVzaW5nIHRoZSBtYXRjaGluZyBvcGVyYXRvciBcdTAwM2NvcGVyYXRvclx1MDAzZS4iLCJwcm9wZXJ0aWVzIjp7ImVmZmVjdCI6eyJkZXNjcmlwdGlvbiI6IkVmZmVjdCBpbmRpY2F0ZXMgdGhlIHRhaW50IGVmZmVjdCB0byBtYXRjaC4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGVmZmVjdHMuIFdoZW4gc3BlY2lmaWVkLCBhbGxvd2VkIHZhbHVlcyBhcmUgTm9TY2hlZHVsZSwgUHJlZmVyTm9TY2hlZHVsZSBhbmQgTm9FeGVjdXRlLiIsInR5cGUiOiJzdHJpbmcifSwia2V5Ijp7ImRlc2NyaXB0aW9uIjoiS2V5IGlzIHRoZSB0YWludCBrZXkgdGhhdCB0aGUgdG9sZXJhdGlvbiBhcHBsaWVzIHRvLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQga2V5cy4gSWYgdGhlIGtleSBpcyBlbXB0eSwgb3BlcmF0b3IgbXVzdCBiZSBFeGlzdHM7IHRoaXMgY29tYmluYXRpb24gbWVhbnMgdG8gbWF0Y2ggYWxsIHZhbHVlcyBhbmQgYWxsIGtleXMuIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gdGhlIHZhbHVlLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEV4aXN0cyBhbmQgRXF1YWwuIERlZmF1bHRzIHRvIEVxdWFsLiBFeGlzdHMgaXMgZXF1aXZhbGVudCB0byB3aWxkY2FyZCBmb3IgdmFsdWUsIHNvIHRoYXQgYSBwb2QgY2FuIHRvbGVyYXRlIGFsbCB0YWludHMgb2YgYSBwYXJ0aWN1bGFyIGNhdGVnb3J5LiIsInR5cGUiOiJzdHJpbmcifSwidG9sZXJhdGlvblNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJUb2xlcmF0aW9uU2Vjb25kcyByZXByZXNlbnRzIHRoZSBwZXJpb2Qgb2YgdGltZSB0aGUgdG9sZXJhdGlvbiAod2hpY2ggbXVzdCBiZSBvZiBlZmZlY3QgTm9FeGVjdXRlLCBvdGhlcndpc2UgdGhpcyBmaWVsZCBpcyBpZ25vcmVkKSB0b2xlcmF0ZXMgdGhlIHRhaW50LiBCeSBkZWZhdWx0LCBpdCBpcyBub3Qgc2V0LCB3aGljaCBtZWFucyB0b2xlcmF0ZSB0aGUgdGFpbnQgZm9yZXZlciAoZG8gbm90IGV2aWN0KS4gWmVybyBhbmQgbmVnYXRpdmUgdmFsdWVzIHdpbGwgYmUgdHJlYXRlZCBhcyAwIChldmljdCBpbW1lZGlhdGVseSkgYnkgdGhlIHN5c3RlbS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHRhaW50IHZhbHVlIHRoZSB0b2xlcmF0aW9uIG1hdGNoZXMgdG8uIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMsIHRoZSB2YWx1ZSBzaG91bGQgYmUgZW1wdHksIG90aGVyd2lzZSBqdXN0IGEgcmVndWxhciBzdHJpbmcuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lTcHJlYWRDb25zdHJhaW50cyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHRvcG9sb2d5IHNwcmVhZCBjb25zdHJhaW50cy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRvcG9sb2d5U3ByZWFkQ29uc3RyYWludCBzcGVjaWZpZXMgaG93IHRvIHNwcmVhZCBtYXRjaGluZyBwb2RzIGFtb25nIHRoZSBnaXZlbiB0b3BvbG9neS4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJMYWJlbFNlbGVjdG9yIGlzIHVzZWQgdG8gZmluZCBtYXRjaGluZyBwb2RzLiBQb2RzIHRoYXQgbWF0Y2ggdGhpcyBsYWJlbCBzZWxlY3RvciBhcmUgY291bnRlZCB0byBkZXRlcm1pbmUgdGhlIG51bWJlciBvZiBwb2RzIGluIHRoZWlyIGNvcnJlc3BvbmRpbmcgdG9wb2xvZ3kgZG9tYWluLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibWF4U2tldyI6eyJkZXNjcmlwdGlvbiI6Ik1heFNrZXcgZGVzY3JpYmVzIHRoZSBkZWdyZWUgdG8gd2hpY2ggcG9kcyBtYXkgYmUgdW5ldmVubHkgZGlzdHJpYnV0ZWQuIEl0J3MgdGhlIG1heGltdW0gcGVybWl0dGVkIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgbnVtYmVyIG9mIG1hdGNoaW5nIHBvZHMgaW4gYW55IHR3byB0b3BvbG9neSBkb21haW5zIG9mIGEgZ2l2ZW4gdG9wb2xvZ3kgdHlwZS4gRm9yIGV4YW1wbGUsIGluIGEgMy16b25lIGNsdXN0ZXIsIE1heFNrZXcgaXMgc2V0IHRvIDEsIGFuZCBwb2RzIHdpdGggdGhlIHNhbWUgbGFiZWxTZWxlY3RvciBzcHJlYWQgYXMgMS8xLzA6IHwgem9uZTEgfCB6b25lMiB8IHpvbmUzIHwgfCAgIFAgICB8ICAgUCAgIHwgICAgICAgfCAtIGlmIE1heFNrZXcgaXMgMSwgaW5jb21pbmcgcG9kIGNhbiBvbmx5IGJlIHNjaGVkdWxlZCB0byB6b25lMyB0byBiZWNvbWUgMS8xLzE7IHNjaGVkdWxpbmcgaXQgb250byB6b25lMSh6b25lMikgd291bGQgbWFrZSB0aGUgQWN0dWFsU2tldygyLTApIG9uIHpvbmUxKHpvbmUyKSB2aW9sYXRlIE1heFNrZXcoMSkuIC0gaWYgTWF4U2tldyBpcyAyLCBpbmNvbWluZyBwb2QgY2FuIGJlIHNjaGVkdWxlZCBvbnRvIGFueSB6b25lLiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIERlZmF1bHQgdmFsdWUgaXMgMSBhbmQgMCBpcyBub3QgYWxsb3dlZC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVG9wb2xvZ3lLZXkgaXMgdGhlIGtleSBvZiBub2RlIGxhYmVscy4gTm9kZXMgdGhhdCBoYXZlIGEgbGFiZWwgd2l0aCB0aGlzIGtleSBhbmQgaWRlbnRpY2FsIHZhbHVlcyBhcmUgY29uc2lkZXJlZCB0byBiZSBpbiB0aGUgc2FtZSB0b3BvbG9neS4gV2UgY29uc2lkZXIgZWFjaCBcdTAwM2NrZXksIHZhbHVlXHUwMDNlIGFzIGEgXCJidWNrZXRcIiwgYW5kIHRyeSB0byBwdXQgYmFsYW5jZWQgbnVtYmVyIG9mIHBvZHMgaW50byBlYWNoIGJ1Y2tldC4gSXQncyBhIHJlcXVpcmVkIGZpZWxkLiIsInR5cGUiOiJzdHJpbmcifSwid2hlblVuc2F0aXNmaWFibGUiOnsiZGVzY3JpcHRpb24iOiJXaGVuVW5zYXRpc2ZpYWJsZSBpbmRpY2F0ZXMgaG93IHRvIGRlYWwgd2l0aCBhIHBvZCBpZiBpdCBkb2Vzbid0IHNhdGlzZnkgdGhlIHNwcmVhZCBjb25zdHJhaW50LiAtIERvTm90U2NoZWR1bGUgKGRlZmF1bHQpIHRlbGxzIHRoZSBzY2hlZHVsZXIgbm90IHRvIHNjaGVkdWxlIGl0IC0gU2NoZWR1bGVBbnl3YXkgdGVsbHMgdGhlIHNjaGVkdWxlciB0byBzdGlsbCBzY2hlZHVsZSBpdCBJdCdzIGNvbnNpZGVyZWQgYXMgXCJVbnNhdGlzZmlhYmxlXCIgaWYgYW5kIG9ubHkgaWYgcGxhY2luZyBpbmNvbWluZyBwb2Qgb24gYW55IHRvcG9sb2d5IHZpb2xhdGVzIFwiTWF4U2tld1wiLiBGb3IgZXhhbXBsZSwgaW4gYSAzLXpvbmUgY2x1c3RlciwgTWF4U2tldyBpcyBzZXQgdG8gMSwgYW5kIHBvZHMgd2l0aCB0aGUgc2FtZSBsYWJlbFNlbGVjdG9yIHNwcmVhZCBhcyAzLzEvMTogfCB6b25lMSB8IHpvbmUyIHwgem9uZTMgfCB8IFAgUCBQIHwgICBQICAgfCAgIFAgICB8IElmIFdoZW5VbnNhdGlzZmlhYmxlIGlzIHNldCB0byBEb05vdFNjaGVkdWxlLCBpbmNvbWluZyBwb2QgY2FuIG9ubHkgYmUgc2NoZWR1bGVkIHRvIHpvbmUyKHpvbmUzKSB0byBiZWNvbWUgMy8yLzEoMy8xLzIpIGFzIEFjdHVhbFNrZXcoMi0xKSBvbiB6b25lMih6b25lMykgc2F0aXNmaWVzIE1heFNrZXcoMSkuIEluIG90aGVyIHdvcmRzLCB0aGUgY2x1c3RlciBjYW4gc3RpbGwgYmUgaW1iYWxhbmNlZCwgYnV0IHNjaGVkdWxlciB3b24ndCBtYWtlIGl0ICptb3JlKiBpbWJhbGFuY2VkLiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibWF4U2tldyIsInRvcG9sb2d5S2V5Iiwid2hlblVuc2F0aXNmaWFibGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwidmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlZlcnNpb24gdGhlIGNsdXN0ZXIgc2hvdWxkIGJlIG9uLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW91bnRzIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTW91bnRzIGFsbG93cyBjb25maWd1cmF0aW9uIG9mIGFkZGl0aW9uYWwgVm9sdW1lTW91bnRzIG9uIHRoZSBvdXRwdXQgU3RhdGVmdWxTZXQgZGVmaW5pdGlvbi4gVm9sdW1lTW91bnRzIHNwZWNpZmllZCB3aWxsIGJlIGFwcGVuZGVkIHRvIG90aGVyIFZvbHVtZU1vdW50cyBpbiB0aGUgYWxlcnRtYW5hZ2VyIGNvbnRhaW5lciwgdGhhdCBhcmUgZ2VuZXJhdGVkIGFzIGEgcmVzdWx0IG9mIFN0b3JhZ2VTcGVjIG9iamVjdHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudCBkZXNjcmliZXMgYSBtb3VudGluZyBvZiBhIFZvbHVtZSB3aXRoaW4gYSBjb250YWluZXIuIiwicHJvcGVydGllcyI6eyJtb3VudFBhdGgiOnsiZGVzY3JpcHRpb24iOiJQYXRoIHdpdGhpbiB0aGUgY29udGFpbmVyIGF0IHdoaWNoIHRoZSB2b2x1bWUgc2hvdWxkIGJlIG1vdW50ZWQuICBNdXN0IG5vdCBjb250YWluICc6Jy4iLCJ0eXBlIjoic3RyaW5nIn0sIm1vdW50UHJvcGFnYXRpb24iOnsiZGVzY3JpcHRpb24iOiJtb3VudFByb3BhZ2F0aW9uIGRldGVybWluZXMgaG93IG1vdW50cyBhcmUgcHJvcGFnYXRlZCBmcm9tIHRoZSBob3N0IHRvIGNvbnRhaW5lciBhbmQgdGhlIG90aGVyIHdheSBhcm91bmQuIFdoZW4gbm90IHNldCwgTW91bnRQcm9wYWdhdGlvbk5vbmUgaXMgdXNlZC4gVGhpcyBmaWVsZCBpcyBiZXRhIGluIDEuMTAuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhpcyBtdXN0IG1hdGNoIHRoZSBOYW1lIG9mIGEgVm9sdW1lLiIsInR5cGUiOiJzdHJpbmcifSwicmVhZE9ubHkiOnsiZGVzY3JpcHRpb24iOiJNb3VudGVkIHJlYWQtb25seSBpZiB0cnVlLCByZWFkLXdyaXRlIG90aGVyd2lzZSAoZmFsc2Ugb3IgdW5zcGVjaWZpZWQpLiBEZWZhdWx0cyB0byBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzdWJQYXRoIjp7ImRlc2NyaXB0aW9uIjoiUGF0aCB3aXRoaW4gdGhlIHZvbHVtZSBmcm9tIHdoaWNoIHRoZSBjb250YWluZXIncyB2b2x1bWUgc2hvdWxkIGJlIG1vdW50ZWQuIERlZmF1bHRzIHRvIFwiXCIgKHZvbHVtZSdzIHJvb3QpLiIsInR5cGUiOiJzdHJpbmcifSwic3ViUGF0aEV4cHIiOnsiZGVzY3JpcHRpb24iOiJFeHBhbmRlZCBwYXRoIHdpdGhpbiB0aGUgdm9sdW1lIGZyb20gd2hpY2ggdGhlIGNvbnRhaW5lcidzIHZvbHVtZSBzaG91bGQgYmUgbW91bnRlZC4gQmVoYXZlcyBzaW1pbGFybHkgdG8gU3ViUGF0aCBidXQgZW52aXJvbm1lbnQgdmFyaWFibGUgcmVmZXJlbmNlcyAkKFZBUl9OQU1FKSBhcmUgZXhwYW5kZWQgdXNpbmcgdGhlIGNvbnRhaW5lcidzIGVudmlyb25tZW50LiBEZWZhdWx0cyB0byBcIlwiICh2b2x1bWUncyByb290KS4gU3ViUGF0aEV4cHIgYW5kIFN1YlBhdGggYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJtb3VudFBhdGgiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1wcmVzZXJ2ZS11bmtub3duLWZpZWxkcyI6dHJ1ZX0sInN0YXR1cyI6eyJwcm9wZXJ0aWVzIjp7ImNvbmRpdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IGF2YWlsYWJsZSBvYnNlcnZhdGlvbnMgb2YgYSByZXNvdXJjZSdzIGN1cnJlbnQgc3RhdGUuIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJsYXN0VHJhbnNpdGlvblRpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VHJhbnNpdGlvblRpbWUgaXMgdGhlIGxhc3QgdGltZSB0aGUgY29uZGl0aW9uIHRyYW5zaXRpb25lZCBmcm9tIG9uZSBzdGF0dXMgdG8gYW5vdGhlci4gV2UgdXNlIFZvbGF0aWxlVGltZSBpbiBwbGFjZSBvZiBtZXRhdjEuVGltZSB0byBleGNsdWRlIHRoaXMgZnJvbSBjcmVhdGluZyBlcXVhbGl0eS5TZW1hbnRpYyBkaWZmZXJlbmNlcyAoYWxsIG90aGVyIHRoaW5ncyBoZWxkIGNvbnN0YW50KS4iLCJ0eXBlIjoic3RyaW5nIn0sIm1lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJBIGh1bWFuIHJlYWRhYmxlIG1lc3NhZ2UgaW5kaWNhdGluZyBkZXRhaWxzIGFib3V0IHRoZSB0cmFuc2l0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwicmVhc29uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHJlYXNvbiBmb3IgdGhlIGNvbmRpdGlvbidzIGxhc3QgdHJhbnNpdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInNldmVyaXR5Ijp7ImRlc2NyaXB0aW9uIjoiU2V2ZXJpdHkgd2l0aCB3aGljaCB0byB0cmVhdCBmYWlsdXJlcyBvZiB0aGlzIHR5cGUgb2YgY29uZGl0aW9uLiBXaGVuIHRoaXMgaXMgbm90IHNwZWNpZmllZCwgaXQgZGVmYXVsdHMgdG8gRXJyb3IuIiwidHlwZSI6InN0cmluZyJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJTdGF0dXMgb2YgdGhlIGNvbmRpdGlvbiwgb25lIG9mIFRydWUsIEZhbHNlLCBVbmtub3duLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6IlR5cGUgb2YgY29uZGl0aW9uLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiLCJzdGF0dXMiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWFuaWZlc3RzIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGxpc3Qgb2YgZXZlbnRpbmcgbWFuaWZlc3RzLCB3aGljaCBoYXZlIGJlZW4gaW5zdGFsbGVkIGJ5IHRoZSBvcGVyYXRvciIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sIm9ic2VydmVkR2VuZXJhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBnZW5lcmF0aW9uIGxhc3QgcHJvY2Vzc2VkIGJ5IHRoZSBjb250cm9sbGVyIiwidHlwZSI6ImludGVnZXIifSwidmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSB2ZXJzaW9uIG9mIHRoZSBpbnN0YWxsZWQgcmVsZWFzZSIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsibGFiZWxzIjp7ImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIiwiYXBwLmt1YmVybmV0ZXMuaW8vdmVyc2lvbiI6ImRldmVsIn0sIm5hbWUiOiJrbmF0aXZlc2VydmluZ3Mub3BlcmF0b3Iua25hdGl2ZS5kZXYifSwic3BlYyI6eyJjb252ZXJzaW9uIjp7InN0cmF0ZWd5IjoiV2ViaG9vayIsIndlYmhvb2siOnsiY2xpZW50Q29uZmlnIjp7InNlcnZpY2UiOnsibmFtZSI6Im9wZXJhdG9yLXdlYmhvb2siLCJuYW1lc3BhY2UiOiJrbmF0aXZlLW9wZXJhdG9yIiwicGF0aCI6Ii9yZXNvdXJjZS1jb252ZXJzaW9uIn19LCJjb252ZXJzaW9uUmV2aWV3VmVyc2lvbnMiOlsidjFiZXRhMSJdfX0sImdyb3VwIjoib3BlcmF0b3Iua25hdGl2ZS5kZXYiLCJuYW1lcyI6eyJraW5kIjoiS25hdGl2ZVNlcnZpbmciLCJsaXN0S2luZCI6IktuYXRpdmVTZXJ2aW5nTGlzdCIsInBsdXJhbCI6ImtuYXRpdmVzZXJ2aW5ncyIsInNpbmd1bGFyIjoia25hdGl2ZXNlcnZpbmcifSwic2NvcGUiOiJOYW1lc3BhY2VkIiwidmVyc2lvbnMiOlt7ImFkZGl0aW9uYWxQcmludGVyQ29sdW1ucyI6W3sianNvblBhdGgiOiIuc3RhdHVzLnZlcnNpb24iLCJuYW1lIjoiVmVyc2lvbiIsInR5cGUiOiJzdHJpbmcifSx7Impzb25QYXRoIjoiLnN0YXR1cy5jb25kaXRpb25zWz8oQC50eXBlPT1cIlJlYWR5XCIpXS5zdGF0dXMiLCJuYW1lIjoiUmVhZHkiLCJ0eXBlIjoic3RyaW5nIn0seyJqc29uUGF0aCI6Ii5zdGF0dXMuY29uZGl0aW9uc1s/KEAudHlwZT09XCJSZWFkeVwiKV0ucmVhc29uIiwibmFtZSI6IlJlYXNvbiIsInR5cGUiOiJzdHJpbmcifV0sIm5hbWUiOiJ2MWJldGExIiwic2NoZW1hIjp7Im9wZW5BUElWM1NjaGVtYSI6eyJkZXNjcmlwdGlvbiI6IlNjaGVtYSBmb3IgdGhlIGtuYXRpdmVzZXJ2aW5ncyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIEtuYXRpdmVTZXJ2aW5nIiwicHJvcGVydGllcyI6eyJjb25maWciOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoib2JqZWN0In0sImRlc2NyaXB0aW9uIjoiQSBtZWFucyB0byBvdmVycmlkZSB0aGUgY29ycmVzcG9uZGluZyBlbnRyaWVzIGluIHRoZSB1cHN0cmVhbSBjb25maWdtYXBzIiwidHlwZSI6Im9iamVjdCJ9LCJjb250cm9sbGVyLWN1c3RvbS1jZXJ0cyI6eyJkZXNjcmlwdGlvbiI6IkVuYWJsaW5nIHRoZSBjb250cm9sbGVyIHRvIHRydXN0IHJlZ2lzdHJpZXMgd2l0aCBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZXMiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgQ29uZmlnTWFwIG9yIFNlY3JldCIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6Ik9uZSBvZiBDb25maWdNYXAgb3IgU2VjcmV0IiwiZW51bSI6WyJDb25maWdNYXAiLCJTZWNyZXQiLCIiXSwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJkZXBsb3ltZW50cyI6eyJkZXNjcmlwdGlvbiI6IkEgbWFwcGluZyBvZiBkZXBsb3ltZW50IG5hbWUgdG8gb3ZlcnJpZGUiLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7ImFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3Mgc2NoZWR1bGluZyBjb25zdHJhaW50cy4iLCJwcm9wZXJ0aWVzIjp7Im5vZGVBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBub2RlIGFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgZm9yIHRoZSBwb2QuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnkgdGhlIGFmZmluaXR5IGV4cHJlc3Npb25zIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkLCBidXQgaXQgbWF5IGNob29zZSBhIG5vZGUgdGhhdCB2aW9sYXRlcyBvbmUgb3IgbW9yZSBvZiB0aGUgZXhwcmVzc2lvbnMuIFRoZSBub2RlIHRoYXQgaXMgbW9zdCBwcmVmZXJyZWQgaXMgdGhlIG9uZSB3aXRoIHRoZSBncmVhdGVzdCBzdW0gb2Ygd2VpZ2h0cywgaS5lLiBmb3IgZWFjaCBub2RlIHRoYXQgbWVldHMgYWxsIG9mIHRoZSBzY2hlZHVsaW5nIHJlcXVpcmVtZW50cyAocmVzb3VyY2UgcmVxdWVzdCwgcmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nIGFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSwgY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nIFwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIG1hdGNoRXhwcmVzc2lvbnM7IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBbiBlbXB0eSBwcmVmZXJyZWQgc2NoZWR1bGluZyB0ZXJtIG1hdGNoZXMgYWxsIG9iamVjdHMgd2l0aCBpbXBsaWNpdCB3ZWlnaHQgMCAoaS5lLiBpdCdzIGEgbm8tb3ApLiBBIG51bGwgcHJlZmVycmVkIHNjaGVkdWxpbmcgdGVybSBtYXRjaGVzIG5vIG9iamVjdHMgKGkuZS4gaXMgYWxzbyBhIG5vLW9wKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcmVuY2UiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGxhYmVscy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hGaWVsZHMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGZpZWxkcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwid2VpZ2h0Ijp7ImRlc2NyaXB0aW9uIjoiV2VpZ2h0IGFzc29jaWF0ZWQgd2l0aCBtYXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBub2RlU2VsZWN0b3JUZXJtLCBpbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicHJlZmVyZW5jZSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBhcmUgbm90IG1ldCBhdCBzY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuIElmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGFuIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiIsInByb3BlcnRpZXMiOnsibm9kZVNlbGVjdG9yVGVybXMiOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgdGVybXMuIFRoZSB0ZXJtcyBhcmUgT1JlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbnVsbCBvciBlbXB0eSBub2RlIHNlbGVjdG9yIHRlcm0gbWF0Y2hlcyBubyBvYmplY3RzLiBUaGUgcmVxdWlyZW1lbnRzIG9mIHRoZW0gYXJlIEFORGVkLiBUaGUgVG9wb2xvZ3lTZWxlY3RvclRlcm0gdHlwZSBpbXBsZW1lbnRzIGEgc3Vic2V0IG9mIHRoZSBOb2RlU2VsZWN0b3JUZXJtLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgbGFiZWxzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaEZpZWxkcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgZmllbGRzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbIm5vZGVTZWxlY3RvclRlcm1zIl0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicG9kQWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJEZXNjcmliZXMgcG9kIGFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgKGUuZy4gY28tbG9jYXRlIHRoaXMgcG9kIGluIHRoZSBzYW1lIG5vZGUsIHpvbmUsIGV0Yy4gYXMgc29tZSBvdGhlciBwb2QocykpLiIsInByb3BlcnRpZXMiOnsicHJlZmVycmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgc2NoZWR1bGVyIHdpbGwgcHJlZmVyIHRvIHNjaGVkdWxlIHBvZHMgdG8gbm9kZXMgdGhhdCBzYXRpc2Z5IHRoZSBhZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgaGFzIHBvZHMgd2hpY2ggbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm07IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgd2VpZ2h0cyBvZiBhbGwgb2YgdGhlIG1hdGNoZWQgV2VpZ2h0ZWRQb2RBZmZpbml0eVRlcm0gZmllbGRzIGFyZSBhZGRlZCBwZXItbm9kZSB0byBmaW5kIHRoZSBtb3N0IHByZWZlcnJlZCBub2RlKHMpIiwicHJvcGVydGllcyI6eyJwb2RBZmZpbml0eVRlcm0iOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBwb2QgYWZmaW5pdHkgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ3ZWlnaHQiOnsiZGVzY3JpcHRpb24iOiJ3ZWlnaHQgYXNzb2NpYXRlZCB3aXRoIG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInBvZEFmZmluaXR5VGVybSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBhcmUgbm90IG1ldCBhdCBzY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuIElmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGEgcG9kIGxhYmVsIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiBXaGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBlbGVtZW50cywgdGhlIGxpc3RzIG9mIG5vZGVzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb2RBZmZpbml0eVRlcm0gYXJlIGludGVyc2VjdGVkLCBpLmUuIGFsbCB0ZXJtcyBtdXN0IGJlIHNhdGlzZmllZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkRlZmluZXMgYSBzZXQgb2YgcG9kcyAobmFtZWx5IHRob3NlIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIHJlbGF0aXZlIHRvIHRoZSBnaXZlbiBuYW1lc3BhY2UocykpIHRoYXQgdGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCwgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSBcdTAwM2N0b3BvbG9neUtleVx1MDAzZSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYSBwb2Qgb2YgdGhlIHNldCBvZiBwb2RzIGlzIHJ1bm5pbmciLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwicG9kQW50aUFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiRGVzY3JpYmVzIHBvZCBhbnRpLWFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgKGUuZy4gYXZvaWQgcHV0dGluZyB0aGlzIHBvZCBpbiB0aGUgc2FtZSBub2RlLCB6b25lLCBldGMuIGFzIHNvbWUgb3RoZXIgcG9kKHMpKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcnJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHNjaGVkdWxlciB3aWxsIHByZWZlciB0byBzY2hlZHVsZSBwb2RzIHRvIG5vZGVzIHRoYXQgc2F0aXNmeSB0aGUgYW50aS1hZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhbnRpLWFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSwgY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nIFwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBoYXMgcG9kcyB3aGljaCBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybTsgdGhlIG5vZGUocykgd2l0aCB0aGUgaGlnaGVzdCBzdW0gYXJlIHRoZSBtb3N0IHByZWZlcnJlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSB3ZWlnaHRzIG9mIGFsbCBvZiB0aGUgbWF0Y2hlZCBXZWlnaHRlZFBvZEFmZmluaXR5VGVybSBmaWVsZHMgYXJlIGFkZGVkIHBlci1ub2RlIHRvIGZpbmQgdGhlIG1vc3QgcHJlZmVycmVkIG5vZGUocykiLCJwcm9wZXJ0aWVzIjp7InBvZEFmZmluaXR5VGVybSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkLiBBIHBvZCBhZmZpbml0eSB0ZXJtLCBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgd2VpZ2h0LiIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMsIGluIHRoaXMgY2FzZSBwb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibmFtZXNwYWNlcyI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZXMgc3BlY2lmaWVzIHdoaWNoIG5hbWVzcGFjZXMgdGhlIGxhYmVsU2VsZWN0b3IgYXBwbGllcyB0byAobWF0Y2hlcyBhZ2FpbnN0KTsgbnVsbCBvciBlbXB0eSBsaXN0IG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCB0aGUgcG9kcyBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciBpbiB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGUgc2VsZWN0ZWQgcG9kcyBpcyBydW5uaW5nLiBFbXB0eSB0b3BvbG9neUtleSBpcyBub3QgYWxsb3dlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0b3BvbG9neUtleSJdLCJ0eXBlIjoib2JqZWN0In0sIndlaWdodCI6eyJkZXNjcmlwdGlvbiI6IndlaWdodCBhc3NvY2lhdGVkIHdpdGggbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtLCBpbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicG9kQWZmaW5pdHlUZXJtIiwid2VpZ2h0Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJJZiB0aGUgYW50aS1hZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYW50aS1hZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGEgcG9kIGxhYmVsIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiBXaGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBlbGVtZW50cywgdGhlIGxpc3RzIG9mIG5vZGVzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb2RBZmZpbml0eVRlcm0gYXJlIGludGVyc2VjdGVkLCBpLmUuIGFsbCB0ZXJtcyBtdXN0IGJlIHNhdGlzZmllZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkRlZmluZXMgYSBzZXQgb2YgcG9kcyAobmFtZWx5IHRob3NlIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIHJlbGF0aXZlIHRvIHRoZSBnaXZlbiBuYW1lc3BhY2UocykpIHRoYXQgdGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCwgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSBcdTAwM2N0b3BvbG9neUtleVx1MDAzZSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYSBwb2Qgb2YgdGhlIHNldCBvZiBwb2RzIGlzIHJ1bm5pbmciLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBkZXBsb3ltZW50IGFuZCBpdHMgdGVtcGxhdGUuIiwidHlwZSI6Im9iamVjdCJ9LCJlbnYiOnsiZGVzY3JpcHRpb24iOiJFbnYgb3ZlcnJpZGVzIGVudiB2YXJzIGZvciB0aGUgY29udGFpbmVycy4iLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZW52VmFycyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBkZXNpcmVkIEVudlZhclJlcXVpcmVtZW50cyIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRW52VmFyIHJlcHJlc2VudHMgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgcHJlc2VudCBpbiBhIENvbnRhaW5lci4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZS4gTXVzdCBiZSBhIENfSURFTlRJRklFUi4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFyaWFibGUgcmVmZXJlbmNlcyAkKFZBUl9OQU1FKSBhcmUgZXhwYW5kZWQgdXNpbmcgdGhlIHByZXZpb3VzbHkgZGVmaW5lZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW4gdGhlIGNvbnRhaW5lciBhbmQgYW55IHNlcnZpY2UgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxlIGNhbm5vdCBiZSByZXNvbHZlZCwgdGhlIHJlZmVyZW5jZSBpbiB0aGUgaW5wdXQgc3RyaW5nIHdpbGwgYmUgdW5jaGFuZ2VkLiBEb3VibGUgJCQgYXJlIHJlZHVjZWQgdG8gYSBzaW5nbGUgJCwgd2hpY2ggYWxsb3dzIGZvciBlc2NhcGluZyB0aGUgJChWQVJfTkFNRSkgc3ludGF4OiBpLmUuIFwiJCQoVkFSX05BTUUpXCIgd2lsbCBwcm9kdWNlIHRoZSBzdHJpbmcgbGl0ZXJhbCBcIiQoVkFSX05BTUUpXCIuIEVzY2FwZWQgcmVmZXJlbmNlcyB3aWxsIG5ldmVyIGJlIGV4cGFuZGVkLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHZhcmlhYmxlIGV4aXN0cyBvciBub3QuIERlZmF1bHRzIHRvIFwiXCIuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZUZyb20iOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgZm9yIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSdzIHZhbHVlLiBDYW5ub3QgYmUgdXNlZCBpZiB2YWx1ZSBpcyBub3QgZW1wdHkuIiwicHJvcGVydGllcyI6eyJjb25maWdNYXBLZXlSZWYiOnsiZGVzY3JpcHRpb24iOiJTZWxlY3RzIGEga2V5IG9mIGEgQ29uZmlnTWFwLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGtleSB0byBzZWxlY3QuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgcmVmZXJlbnQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbmFtZXMvI25hbWVzIFRPRE86IEFkZCBvdGhlciB1c2VmdWwgZmllbGRzLiBhcGlWZXJzaW9uLCBraW5kLCB1aWQ/IiwidHlwZSI6InN0cmluZyJ9LCJvcHRpb25hbCI6eyJkZXNjcmlwdGlvbiI6IlNwZWNpZnkgd2hldGhlciB0aGUgQ29uZmlnTWFwIG9yIGl0cyBrZXkgbXVzdCBiZSBkZWZpbmVkIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImtleSJdLCJ0eXBlIjoib2JqZWN0In0sImZpZWxkUmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGZpZWxkIG9mIHRoZSBwb2Q6IHN1cHBvcnRzIG1ldGFkYXRhLm5hbWUsIG1ldGFkYXRhLm5hbWVzcGFjZSwgYG1ldGFkYXRhLmxhYmVsc1snXHUwMDNjS0VZXHUwMDNlJ11gLCBgbWV0YWRhdGEuYW5ub3RhdGlvbnNbJ1x1MDAzY0tFWVx1MDAzZSddYCwgc3BlYy5ub2RlTmFtZSwgc3BlYy5zZXJ2aWNlQWNjb3VudE5hbWUsIHN0YXR1cy5ob3N0SVAsIHN0YXR1cy5wb2RJUCwgc3RhdHVzLnBvZElQcy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJWZXJzaW9uIG9mIHRoZSBzY2hlbWEgdGhlIEZpZWxkUGF0aCBpcyB3cml0dGVuIGluIHRlcm1zIG9mLCBkZWZhdWx0cyB0byBcInYxXCIuIiwidHlwZSI6InN0cmluZyJ9LCJmaWVsZFBhdGgiOnsiZGVzY3JpcHRpb24iOiJQYXRoIG9mIHRoZSBmaWVsZCB0byBzZWxlY3QgaW4gdGhlIHNwZWNpZmllZCBBUEkgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJmaWVsZFBhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZUZpZWxkUmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIHJlc291cmNlIG9mIHRoZSBjb250YWluZXI6IG9ubHkgcmVzb3VyY2VzIGxpbWl0cyBhbmQgcmVxdWVzdHMgKGxpbWl0cy5jcHUsIGxpbWl0cy5tZW1vcnksIGxpbWl0cy5lcGhlbWVyYWwtc3RvcmFnZSwgcmVxdWVzdHMuY3B1LCByZXF1ZXN0cy5tZW1vcnkgYW5kIHJlcXVlc3RzLmVwaGVtZXJhbC1zdG9yYWdlKSBhcmUgY3VycmVudGx5IHN1cHBvcnRlZC4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lck5hbWUiOnsiZGVzY3JpcHRpb24iOiJDb250YWluZXIgbmFtZTogcmVxdWlyZWQgZm9yIHZvbHVtZXMsIG9wdGlvbmFsIGZvciBlbnYgdmFycyIsInR5cGUiOiJzdHJpbmcifSwiZGl2aXNvciI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoiU3BlY2lmaWVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHRoZSBleHBvc2VkIHJlc291cmNlcywgZGVmYXVsdHMgdG8gXCIxXCIiLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sInJlc291cmNlIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQ6IHJlc291cmNlIHRvIHNlbGVjdCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInJlc291cmNlIl0sInR5cGUiOiJvYmplY3QifSwic2VjcmV0S2V5UmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGtleSBvZiBhIHNlY3JldCBpbiB0aGUgcG9kJ3MgbmFtZXNwYWNlIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUga2V5IG9mIHRoZSBzZWNyZXQgdG8gc2VsZWN0IGZyb20uICBNdXN0IGJlIGEgdmFsaWQgc2VjcmV0IGtleS4iLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSByZWZlcmVudC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9vdmVydmlldy93b3JraW5nLXdpdGgtb2JqZWN0cy9uYW1lcy8jbmFtZXMgVE9ETzogQWRkIG90aGVyIHVzZWZ1bCBmaWVsZHMuIGFwaVZlcnNpb24sIGtpbmQsIHVpZD8iLCJ0eXBlIjoic3RyaW5nIn0sIm9wdGlvbmFsIjp7ImRlc2NyaXB0aW9uIjoiU3BlY2lmeSB3aGV0aGVyIHRoZSBTZWNyZXQgb3IgaXRzIGtleSBtdXN0IGJlIGRlZmluZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsia2V5Il0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJob3N0TmV0d29yayI6eyJkZXNjcmlwdGlvbiI6IlVzZSB0aGUgaG9zdCdzIG5ldHdvcmsgbmFtZXNwYWNlIGlmIHRydWUuIE1ha2Ugc3VyZSB0byB1bmRlcnN0YW5kIHRoZSBzZWN1cml0eSBpbXBsaWNhdGlvbnMgaWYgeW91IHdhbnQgdG8gZW5hYmxlIGl0LiBXaGVuIGhvc3ROZXR3b3JrIGlzIGVuYWJsZWQsIHRoaXMgd2lsbCBzZXQgZG5zUG9saWN5IHRvIENsdXN0ZXJGaXJzdFdpdGhIb3N0TmV0IGF1dG9tYXRpY2FsbHkuIiwidHlwZSI6ImJvb2xlYW4ifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJMYWJlbHMgb3ZlcnJpZGVzIGxhYmVscyBmb3IgdGhlIGRlcGxveW1lbnQgYW5kIGl0cyB0ZW1wbGF0ZS4iLCJ0eXBlIjoib2JqZWN0In0sImxpdmVuZXNzUHJvYmVzIjp7ImRlc2NyaXB0aW9uIjoiTGl2ZW5lc3NQcm9iZXMgb3ZlcnJpZGVzIGxpdmVuZXNzIHByb2JlcyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJQcm9iZXNSZXF1aXJlbWVudHNPdmVycmlkZSBlbmFibGVzIHRoZSB1c2VyIHRvIG92ZXJyaWRlIGFueSBjb250YWluZXIncyBlbnYgdmFycy4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZmFpbHVyZVRocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkLiBEZWZhdWx0cyB0byAzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZS4gRGVmYXVsdCB0byAxMCBzZWNvbmRzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJzdWNjZXNzVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZC4gRGVmYXVsdHMgdG8gMS4gTXVzdCBiZSAxIGZvciBsaXZlbmVzcyBhbmQgc3RhcnR1cC4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBkdXJhdGlvbiBpbiBzZWNvbmRzIHRoZSBwb2QgbmVlZHMgdG8gdGVybWluYXRlIGdyYWNlZnVsbHkgdXBvbiBwcm9iZSBmYWlsdXJlLiBUaGUgZ3JhY2UgcGVyaW9kIGlzIHRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHRoZSBwcm9jZXNzZXMgcnVubmluZyBpbiB0aGUgcG9kIGFyZSBzZW50IGEgdGVybWluYXRpb24gc2lnbmFsIGFuZCB0aGUgdGltZSB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIGZvcmNpYmx5IGhhbHRlZCB3aXRoIGEga2lsbCBzaWduYWwuIFNldCB0aGlzIHZhbHVlIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBjbGVhbnVwIHRpbWUgZm9yIHlvdXIgcHJvY2Vzcy4gSWYgdGhpcyB2YWx1ZSBpcyBuaWwsIHRoZSBwb2QncyB0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgdGhpcyB2YWx1ZSBvdmVycmlkZXMgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBwb2Qgc3BlYy4gVmFsdWUgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlci4gVGhlIHZhbHVlIHplcm8gaW5kaWNhdGVzIHN0b3AgaW1tZWRpYXRlbHkgdmlhIHRoZSBraWxsIHNpZ25hbCAobm8gb3Bwb3J0dW5pdHkgdG8gc2h1dCBkb3duKS4gVGhpcyBpcyBhIGJldGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIFByb2JlVGVybWluYXRpb25HcmFjZVBlcmlvZCBmZWF0dXJlIGdhdGUuIE1pbmltdW0gdmFsdWUgaXMgMS4gc3BlYy50ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyBpcyB1c2VkIGlmIHVuc2V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidGltZW91dFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0LiBEZWZhdWx0cyB0byAxIHNlY29uZC4gTWluaW11bSB2YWx1ZSBpcyAxLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIGRlcGxveW1lbnQiLCJ0eXBlIjoic3RyaW5nIn0sIm5vZGVTZWxlY3RvciI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTm9kZVNlbGVjdG9yIG92ZXJyaWRlcyBub2RlU2VsZWN0b3IgZm9yIHRoZSBkZXBsb3ltZW50LiIsInR5cGUiOiJvYmplY3QifSwicmVhZGluZXNzUHJvYmVzIjp7ImRlc2NyaXB0aW9uIjoiUmVhZGluZXNzUHJvYmVzIG92ZXJyaWRlcyByZWFkaW5lc3MgcHJvYmVzIGZvciB0aGUgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlByb2Jlc1JlcXVpcmVtZW50c092ZXJyaWRlIGVuYWJsZXMgdGhlIHVzZXIgdG8gb3ZlcnJpZGUgYW55IGNvbnRhaW5lcidzIGVudiB2YXJzLiIsInByb3BlcnRpZXMiOnsiY29udGFpbmVyIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGNvbnRhaW5lciBuYW1lIiwidHlwZSI6InN0cmluZyJ9LCJmYWlsdXJlVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBmYWlsdXJlcyBmb3IgdGhlIHByb2JlIHRvIGJlIGNvbnNpZGVyZWQgZmFpbGVkIGFmdGVyIGhhdmluZyBzdWNjZWVkZWQuIERlZmF1bHRzIHRvIDMuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sImluaXRpYWxEZWxheVNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB0aGUgY29udGFpbmVyIGhhcyBzdGFydGVkIGJlZm9yZSBsaXZlbmVzcyBwcm9iZXMgYXJlIGluaXRpYXRlZC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvcG9kcy9wb2QtbGlmZWN5Y2xlI2NvbnRhaW5lci1wcm9iZXMiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJIb3cgb2Z0ZW4gKGluIHNlY29uZHMpIHRvIHBlcmZvcm0gdGhlIHByb2JlLiBEZWZhdWx0IHRvIDEwIHNlY29uZHMuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInN1Y2Nlc3NUaHJlc2hvbGQiOnsiZGVzY3JpcHRpb24iOiJNaW5pbXVtIGNvbnNlY3V0aXZlIHN1Y2Nlc3NlcyBmb3IgdGhlIHByb2JlIHRvIGJlIGNvbnNpZGVyZWQgc3VjY2Vzc2Z1bCBhZnRlciBoYXZpbmcgZmFpbGVkLiBEZWZhdWx0cyB0byAxLiBNdXN0IGJlIDEgZm9yIGxpdmVuZXNzIGFuZCBzdGFydHVwLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik9wdGlvbmFsIGR1cmF0aW9uIGluIHNlY29uZHMgdGhlIHBvZCBuZWVkcyB0byB0ZXJtaW5hdGUgZ3JhY2VmdWxseSB1cG9uIHByb2JlIGZhaWx1cmUuIFRoZSBncmFjZSBwZXJpb2QgaXMgdGhlIGR1cmF0aW9uIGluIHNlY29uZHMgYWZ0ZXIgdGhlIHByb2Nlc3NlcyBydW5uaW5nIGluIHRoZSBwb2QgYXJlIHNlbnQgYSB0ZXJtaW5hdGlvbiBzaWduYWwgYW5kIHRoZSB0aW1lIHdoZW4gdGhlIHByb2Nlc3NlcyBhcmUgZm9yY2libHkgaGFsdGVkIHdpdGggYSBraWxsIHNpZ25hbC4gU2V0IHRoaXMgdmFsdWUgbG9uZ2VyIHRoYW4gdGhlIGV4cGVjdGVkIGNsZWFudXAgdGltZSBmb3IgeW91ciBwcm9jZXNzLiBJZiB0aGlzIHZhbHVlIGlzIG5pbCwgdGhlIHBvZCdzIHRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIHdpbGwgYmUgdXNlZC4gT3RoZXJ3aXNlLCB0aGlzIHZhbHVlIG92ZXJyaWRlcyB0aGUgdmFsdWUgcHJvdmlkZWQgYnkgdGhlIHBvZCBzcGVjLiBWYWx1ZSBtdXN0IGJlIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLiBUaGUgdmFsdWUgemVybyBpbmRpY2F0ZXMgc3RvcCBpbW1lZGlhdGVseSB2aWEgdGhlIGtpbGwgc2lnbmFsIChubyBvcHBvcnR1bml0eSB0byBzaHV0IGRvd24pLiBUaGlzIGlzIGEgYmV0YSBmaWVsZCBhbmQgcmVxdWlyZXMgZW5hYmxpbmcgUHJvYmVUZXJtaW5hdGlvbkdyYWNlUGVyaW9kIGZlYXR1cmUgZ2F0ZS4gTWluaW11bSB2YWx1ZSBpcyAxLiBzcGVjLnRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIGlzIHVzZWQgaWYgdW5zZXQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ0aW1lb3V0U2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHdoaWNoIHRoZSBwcm9iZSB0aW1lcyBvdXQuIERlZmF1bHRzIHRvIDEgc2Vjb25kLiBNaW5pbXVtIHZhbHVlIGlzIDEuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsiY29udGFpbmVyIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcGxpY2FzIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG51bWJlciBvZiByZXBsaWNhcyB0aGF0IEhBIHBhcnRzIG9mIHRoZSBjb250cm9sIHBsYW5lIHdpbGwgYmUgc2NhbGVkIHRvIiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgY29udGFpbmVyJ3MgcmVzb3VyY2VzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFJlc291cmNlIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgcmVxdWVzdHMgYW5kIGxpbWl0cyBmb3IgYSBjZXJ0YWluIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgbmFtZS4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBjb250YWluZXIiLCJ0eXBlIjoic3RyaW5nIn0sImxpbWl0cyI6eyJwcm9wZXJ0aWVzIjp7ImNwdSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn0sIm1lbW9yeSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7InByb3BlcnRpZXMiOnsiY3B1Ijp7InBhdHRlcm4iOiJeKFsrLV0/WzAtOS5dKykoW2VFaW51bWtLTUdUUF0qWy0rXT9bMC05XSopJCIsInR5cGUiOiJzdHJpbmcifSwibWVtb3J5Ijp7InBhdHRlcm4iOiJeKFsrLV0/WzAtOS5dKykoW2VFaW51bWtLTUdUUF0qWy0rXT9bMC05XSopJCIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInRvbGVyYXRpb25zIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3MgdG9sZXJhdGlvbnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgcG9kIHRoaXMgVG9sZXJhdGlvbiBpcyBhdHRhY2hlZCB0byB0b2xlcmF0ZXMgYW55IHRhaW50IHRoYXQgbWF0Y2hlcyB0aGUgdHJpcGxlIFx1MDAzY2tleSx2YWx1ZSxlZmZlY3RcdTAwM2UgdXNpbmcgdGhlIG1hdGNoaW5nIG9wZXJhdG9yIFx1MDAzY29wZXJhdG9yXHUwMDNlLiIsInByb3BlcnRpZXMiOnsiZWZmZWN0Ijp7ImRlc2NyaXB0aW9uIjoiRWZmZWN0IGluZGljYXRlcyB0aGUgdGFpbnQgZWZmZWN0IHRvIG1hdGNoLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQgZWZmZWN0cy4gV2hlbiBzcGVjaWZpZWQsIGFsbG93ZWQgdmFsdWVzIGFyZSBOb1NjaGVkdWxlLCBQcmVmZXJOb1NjaGVkdWxlIGFuZCBOb0V4ZWN1dGUuIiwidHlwZSI6InN0cmluZyJ9LCJrZXkiOnsiZGVzY3JpcHRpb24iOiJLZXkgaXMgdGhlIHRhaW50IGtleSB0aGF0IHRoZSB0b2xlcmF0aW9uIGFwcGxpZXMgdG8uIEVtcHR5IG1lYW5zIG1hdGNoIGFsbCB0YWludCBrZXlzLiBJZiB0aGUga2V5IGlzIGVtcHR5LCBvcGVyYXRvciBtdXN0IGJlIEV4aXN0czsgdGhpcyBjb21iaW5hdGlvbiBtZWFucyB0byBtYXRjaCBhbGwgdmFsdWVzIGFuZCBhbGwga2V5cy4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byB0aGUgdmFsdWUuIFZhbGlkIG9wZXJhdG9ycyBhcmUgRXhpc3RzIGFuZCBFcXVhbC4gRGVmYXVsdHMgdG8gRXF1YWwuIEV4aXN0cyBpcyBlcXVpdmFsZW50IHRvIHdpbGRjYXJkIGZvciB2YWx1ZSwgc28gdGhhdCBhIHBvZCBjYW4gdG9sZXJhdGUgYWxsIHRhaW50cyBvZiBhIHBhcnRpY3VsYXIgY2F0ZWdvcnkuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2xlcmF0aW9uU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IlRvbGVyYXRpb25TZWNvbmRzIHJlcHJlc2VudHMgdGhlIHBlcmlvZCBvZiB0aW1lIHRoZSB0b2xlcmF0aW9uICh3aGljaCBtdXN0IGJlIG9mIGVmZmVjdCBOb0V4ZWN1dGUsIG90aGVyd2lzZSB0aGlzIGZpZWxkIGlzIGlnbm9yZWQpIHRvbGVyYXRlcyB0aGUgdGFpbnQuIEJ5IGRlZmF1bHQsIGl0IGlzIG5vdCBzZXQsIHdoaWNoIG1lYW5zIHRvbGVyYXRlIHRoZSB0YWludCBmb3JldmVyIChkbyBub3QgZXZpY3QpLiBaZXJvIGFuZCBuZWdhdGl2ZSB2YWx1ZXMgd2lsbCBiZSB0cmVhdGVkIGFzIDAgKGV2aWN0IGltbWVkaWF0ZWx5KSBieSB0aGUgc3lzdGVtLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgdGFpbnQgdmFsdWUgdGhlIHRvbGVyYXRpb24gbWF0Y2hlcyB0by4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cywgdGhlIHZhbHVlIHNob3VsZCBiZSBlbXB0eSwgb3RoZXJ3aXNlIGp1c3QgYSByZWd1bGFyIHN0cmluZy4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neVNwcmVhZENvbnN0cmFpbnRzIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3MgdG9wb2xvZ3kgc3ByZWFkIGNvbnN0cmFpbnRzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVG9wb2xvZ3lTcHJlYWRDb25zdHJhaW50IHNwZWNpZmllcyBob3cgdG8gc3ByZWFkIG1hdGNoaW5nIHBvZHMgYW1vbmcgdGhlIGdpdmVuIHRvcG9sb2d5LiIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkxhYmVsU2VsZWN0b3IgaXMgdXNlZCB0byBmaW5kIG1hdGNoaW5nIHBvZHMuIFBvZHMgdGhhdCBtYXRjaCB0aGlzIGxhYmVsIHNlbGVjdG9yIGFyZSBjb3VudGVkIHRvIGRldGVybWluZSB0aGUgbnVtYmVyIG9mIHBvZHMgaW4gdGhlaXIgY29ycmVzcG9uZGluZyB0b3BvbG9neSBkb21haW4uIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJtYXhTa2V3Ijp7ImRlc2NyaXB0aW9uIjoiTWF4U2tldyBkZXNjcmliZXMgdGhlIGRlZ3JlZSB0byB3aGljaCBwb2RzIG1heSBiZSB1bmV2ZW5seSBkaXN0cmlidXRlZC4gSXQncyB0aGUgbWF4aW11bSBwZXJtaXR0ZWQgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBudW1iZXIgb2YgbWF0Y2hpbmcgcG9kcyBpbiBhbnkgdHdvIHRvcG9sb2d5IGRvbWFpbnMgb2YgYSBnaXZlbiB0b3BvbG9neSB0eXBlLiBGb3IgZXhhbXBsZSwgaW4gYSAzLXpvbmUgY2x1c3RlciwgTWF4U2tldyBpcyBzZXQgdG8gMSwgYW5kIHBvZHMgd2l0aCB0aGUgc2FtZSBsYWJlbFNlbGVjdG9yIHNwcmVhZCBhcyAxLzEvMDogfCB6b25lMSB8IHpvbmUyIHwgem9uZTMgfCB8ICAgUCAgIHwgICBQICAgfCAgICAgICB8IC0gaWYgTWF4U2tldyBpcyAxLCBpbmNvbWluZyBwb2QgY2FuIG9ubHkgYmUgc2NoZWR1bGVkIHRvIHpvbmUzIHRvIGJlY29tZSAxLzEvMTsgc2NoZWR1bGluZyBpdCBvbnRvIHpvbmUxKHpvbmUyKSB3b3VsZCBtYWtlIHRoZSBBY3R1YWxTa2V3KDItMCkgb24gem9uZTEoem9uZTIpIHZpb2xhdGUgTWF4U2tldygxKS4gLSBpZiBNYXhTa2V3IGlzIDIsIGluY29taW5nIHBvZCBjYW4gYmUgc2NoZWR1bGVkIG9udG8gYW55IHpvbmUuIEl0J3MgYSByZXF1aXJlZCBmaWVsZC4gRGVmYXVsdCB2YWx1ZSBpcyAxIGFuZCAwIGlzIG5vdCBhbGxvd2VkLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUb3BvbG9neUtleSBpcyB0aGUga2V5IG9mIG5vZGUgbGFiZWxzLiBOb2RlcyB0aGF0IGhhdmUgYSBsYWJlbCB3aXRoIHRoaXMga2V5IGFuZCBpZGVudGljYWwgdmFsdWVzIGFyZSBjb25zaWRlcmVkIHRvIGJlIGluIHRoZSBzYW1lIHRvcG9sb2d5LiBXZSBjb25zaWRlciBlYWNoIFx1MDAzY2tleSwgdmFsdWVcdTAwM2UgYXMgYSBcImJ1Y2tldFwiLCBhbmQgdHJ5IHRvIHB1dCBiYWxhbmNlZCBudW1iZXIgb2YgcG9kcyBpbnRvIGVhY2ggYnVja2V0LiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIiwidHlwZSI6InN0cmluZyJ9LCJ3aGVuVW5zYXRpc2ZpYWJsZSI6eyJkZXNjcmlwdGlvbiI6IldoZW5VbnNhdGlzZmlhYmxlIGluZGljYXRlcyBob3cgdG8gZGVhbCB3aXRoIGEgcG9kIGlmIGl0IGRvZXNuJ3Qgc2F0aXNmeSB0aGUgc3ByZWFkIGNvbnN0cmFpbnQuIC0gRG9Ob3RTY2hlZHVsZSAoZGVmYXVsdCkgdGVsbHMgdGhlIHNjaGVkdWxlciBub3QgdG8gc2NoZWR1bGUgaXQgLSBTY2hlZHVsZUFueXdheSB0ZWxscyB0aGUgc2NoZWR1bGVyIHRvIHN0aWxsIHNjaGVkdWxlIGl0IEl0J3MgY29uc2lkZXJlZCBhcyBcIlVuc2F0aXNmaWFibGVcIiBpZiBhbmQgb25seSBpZiBwbGFjaW5nIGluY29taW5nIHBvZCBvbiBhbnkgdG9wb2xvZ3kgdmlvbGF0ZXMgXCJNYXhTa2V3XCIuIEZvciBleGFtcGxlLCBpbiBhIDMtem9uZSBjbHVzdGVyLCBNYXhTa2V3IGlzIHNldCB0byAxLCBhbmQgcG9kcyB3aXRoIHRoZSBzYW1lIGxhYmVsU2VsZWN0b3Igc3ByZWFkIGFzIDMvMS8xOiB8IHpvbmUxIHwgem9uZTIgfCB6b25lMyB8IHwgUCBQIFAgfCAgIFAgICB8ICAgUCAgIHwgSWYgV2hlblVuc2F0aXNmaWFibGUgaXMgc2V0IHRvIERvTm90U2NoZWR1bGUsIGluY29taW5nIHBvZCBjYW4gb25seSBiZSBzY2hlZHVsZWQgdG8gem9uZTIoem9uZTMpIHRvIGJlY29tZSAzLzIvMSgzLzEvMikgYXMgQWN0dWFsU2tldygyLTEpIG9uIHpvbmUyKHpvbmUzKSBzYXRpc2ZpZXMgTWF4U2tldygxKS4gSW4gb3RoZXIgd29yZHMsIHRoZSBjbHVzdGVyIGNhbiBzdGlsbCBiZSBpbWJhbGFuY2VkLCBidXQgc2NoZWR1bGVyIHdvbid0IG1ha2UgaXQgKm1vcmUqIGltYmFsYW5jZWQuIEl0J3MgYSByZXF1aXJlZCBmaWVsZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJtYXhTa2V3IiwidG9wb2xvZ3lLZXkiLCJ3aGVuVW5zYXRpc2ZpYWJsZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiaGlnaC1hdmFpbGFiaWxpdHkiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiBIQSBjb250cm9sIHBsYW5lIiwicHJvcGVydGllcyI6eyJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sImluZ3Jlc3MiOnsiZGVzY3JpcHRpb24iOiJUaGUgaW5ncmVzcyBjb25maWd1cmF0aW9uIGZvciBLbmF0aXZlIFNlcnZpbmciLCJwcm9wZXJ0aWVzIjp7ImlzdGlvIjp7ImRlc2NyaXB0aW9uIjoiSXN0aW8gc2V0dGluZ3MiLCJwcm9wZXJ0aWVzIjp7ImVuYWJsZWQiOnsidHlwZSI6ImJvb2xlYW4ifSwia25hdGl2ZS1sb2NhbC1nYXRld2F5Ijp7ImRlc2NyaXB0aW9uIjoiQSBtZWFucyB0byBvdmVycmlkZSB0aGUga25hdGl2ZS1sb2NhbC1nYXRld2F5IiwicHJvcGVydGllcyI6eyJzZWxlY3RvciI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiVGhlIHNlbGVjdG9yIGZvciB0aGUgaW5ncmVzcy1nYXRld2F5LiIsInR5cGUiOiJvYmplY3QifSwic2VydmVycyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBzZXJ2ZXIgc3BlY2lmaWNhdGlvbnMuIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJob3N0cyI6eyJkZXNjcmlwdGlvbiI6Ik9uZSBvciBtb3JlIGhvc3RzIGV4cG9zZWQgYnkgdGhpcyBnYXRld2F5LiIsIml0ZW1zIjp7ImZvcm1hdCI6InN0cmluZyIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInBvcnQiOnsicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFiZWwgYXNzaWduZWQgdG8gdGhlIHBvcnQuIiwiZm9ybWF0Ijoic3RyaW5nIiwidHlwZSI6InN0cmluZyJ9LCJudW1iZXIiOnsiZGVzY3JpcHRpb24iOiJBIHZhbGlkIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHBvcnQgbnVtYmVyLiIsInR5cGUiOiJpbnRlZ2VyIn0sInByb3RvY29sIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHByb3RvY29sIGV4cG9zZWQgb24gdGhlIHBvcnQuIiwiZm9ybWF0Ijoic3RyaW5nIiwidHlwZSI6InN0cmluZyJ9LCJ0YXJnZXRfcG9ydCI6eyJkZXNjcmlwdGlvbiI6IkEgdmFsaWQgbm9uLW5lZ2F0aXZlIGludGVnZXIgdGFyZ2V0IHBvcnQgbnVtYmVyLiIsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sInRscyI6eyJudWxsYWJsZSI6dHJ1ZSwib25lT2YiOlt7InJlcXVpcmVkIjpbIm1vZGUiLCJjcmVkZW50aWFsTmFtZSJdfSx7InJlcXVpcmVkIjpbImh0dHBzUmVkaXJlY3QiXX1dLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxOYW1lIjp7ImRlc2NyaXB0aW9uIjoiVExTIGNlcnRpZmljYXRlIG5hbWUuIiwiZm9ybWF0Ijoic3RyaW5nIiwidHlwZSI6InN0cmluZyJ9LCJodHRwc1JlZGlyZWN0Ijp7ImRlc2NyaXB0aW9uIjoiSWYgc2V0IHRvIHRydWUsIHRoZSBsb2FkIGJhbGFuY2VyIHdpbGwgc2VuZCBhIDMwMSByZWRpcmVjdCB0byBIVFRQUyBmb3IgYWxsIEhUVFAgcmVxdWVzdHMuIFNob3VsZCBiZSB1c2VkIG9ubHkgZm9yIEhUVFAgbGlzdGVuZXIsIGlzIG11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGFsbCBvdGhlciBUTFMgb3B0aW9ucy4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJtb2RlIjp7ImRlc2NyaXB0aW9uIjoiVExTIG1vZGUgY2FuIGJlIFNJTVBMRSwgTVVUVUFMLCBJU1RJT19NVVRVQUwuIiwiZm9ybWF0Ijoic3RyaW5nIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwia291cmllciI6eyJkZXNjcmlwdGlvbiI6IktvdXJpZXIgc2V0dGluZ3MiLCJwcm9wZXJ0aWVzIjp7ImJvb3RzdHJhcC1jb25maWdtYXAiOnsidHlwZSI6InN0cmluZyJ9LCJlbmFibGVkIjp7InR5cGUiOiJib29sZWFuIn0sImh0dHAtcG9ydCI6eyJ0eXBlIjoiaW50ZWdlciJ9LCJodHRwcy1wb3J0Ijp7InR5cGUiOiJpbnRlZ2VyIn0sInNlcnZpY2UtbG9hZC1iYWxhbmNlci1pcCI6eyJ0eXBlIjoic3RyaW5nIn0sInNlcnZpY2UtdHlwZSI6eyJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLXByZXNlcnZlLXVua25vd24tZmllbGRzIjp0cnVlfSwicG9kRGlzcnVwdGlvbkJ1ZGdldHMiOnsiZGVzY3JpcHRpb24iOiJBIG1hcHBpbmcgb2YgcG9kRGlzcnVwdGlvbkJ1ZGdldCBuYW1lIHRvIG92ZXJyaWRlIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJtYXhVbmF2YWlsYWJsZSI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoiQW4gZXZpY3Rpb24gaXMgYWxsb3dlZCBpZiBhdCBtb3N0IFwibWF4VW5hdmFpbGFibGVcIiBwb2RzIHNlbGVjdGVkIGJ5IFwic2VsZWN0b3JcIiBhcmUgdW5hdmFpbGFibGUgYWZ0ZXIgdGhlIGV2aWN0aW9uLCBpLmUuIGV2ZW4gaW4gYWJzZW5jZSBvZiB0aGUgZXZpY3RlZCBwb2QuIEZvciBleGFtcGxlLCBvbmUgY2FuIHByZXZlbnQgYWxsIHZvbHVudGFyeSBldmljdGlvbnMgYnkgc3BlY2lmeWluZyAwLiBUaGlzIGlzIGEgbXV0dWFsbHkgZXhjbHVzaXZlIHNldHRpbmcgd2l0aCBcIm1pbkF2YWlsYWJsZVwiLiIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwibWluQXZhaWxhYmxlIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwiZGVzY3JpcHRpb24iOiJBbiBldmljdGlvbiBpcyBhbGxvd2VkIGlmIGF0IGxlYXN0IFwibWluQXZhaWxhYmxlXCIgcG9kcyBzZWxlY3RlZCBieSBcInNlbGVjdG9yXCIgd2lsbCBzdGlsbCBiZSBhdmFpbGFibGUgYWZ0ZXIgdGhlIGV2aWN0aW9uLCBpLmUuIGV2ZW4gaW4gdGhlIGFic2VuY2Ugb2YgdGhlIGV2aWN0ZWQgcG9kLiAgU28gZm9yIGV4YW1wbGUgeW91IGNhbiBwcmV2ZW50IGFsbCB2b2x1bnRhcnkgZXZpY3Rpb25zIGJ5IHNwZWNpZnlpbmcgXCIxMDAlXCIuIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIHBvZERpc3J1cHRpb25CdWRnZXQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJzZWN1cml0eSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzZWN1cml0eSBjb25maWd1cmF0aW9uIGZvciBLbmF0aXZlIFNlcnZpbmciLCJwcm9wZXJ0aWVzIjp7InNlY3VyaXR5R3VhcmQiOnsiZGVzY3JpcHRpb24iOiJTZWN1cml0eSBHdWFyZCBzZXR0aW5ncyIsInByb3BlcnRpZXMiOnsiZW5hYmxlZCI6eyJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZXJ2aWNlcyI6eyJkZXNjcmlwdGlvbiI6IkEgbWFwcGluZyBvZiBzZXJ2aWNlIG5hbWUgdG8gb3ZlcnJpZGUiLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBvdmVycmlkZXMgbGFiZWxzIGZvciB0aGUgc2VydmljZSIsInR5cGUiOiJvYmplY3QifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJMYWJlbHMgb3ZlcnJpZGVzIGxhYmVscyBmb3IgdGhlIHNlcnZpY2UiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgc2VydmljZSIsInR5cGUiOiJzdHJpbmcifSwic2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IlNlbGVjdG9yIG92ZXJyaWRlcyBzZWxlY3RvciBmb3IgdGhlIHNlcnZpY2UiLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ3b3JrbG9hZHMiOnsiZGVzY3JpcHRpb24iOiJBIG1hcHBpbmcgb2YgZGVwbG95bWVudCBvciBzdGF0ZWZ1bHNldCBuYW1lIHRvIG92ZXJyaWRlIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJhZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHNjaGVkdWxpbmcgY29uc3RyYWludHMuIiwicHJvcGVydGllcyI6eyJub2RlQWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJEZXNjcmliZXMgbm9kZSBhZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIGZvciB0aGUgcG9kLiIsInByb3BlcnRpZXMiOnsicHJlZmVycmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgc2NoZWR1bGVyIHdpbGwgcHJlZmVyIHRvIHNjaGVkdWxlIHBvZHMgdG8gbm9kZXMgdGhhdCBzYXRpc2Z5IHRoZSBhZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBtYXRjaEV4cHJlc3Npb25zOyB0aGUgbm9kZShzKSB3aXRoIHRoZSBoaWdoZXN0IHN1bSBhcmUgdGhlIG1vc3QgcHJlZmVycmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQW4gZW1wdHkgcHJlZmVycmVkIHNjaGVkdWxpbmcgdGVybSBtYXRjaGVzIGFsbCBvYmplY3RzIHdpdGggaW1wbGljaXQgd2VpZ2h0IDAgKGkuZS4gaXQncyBhIG5vLW9wKS4gQSBudWxsIHByZWZlcnJlZCBzY2hlZHVsaW5nIHRlcm0gbWF0Y2hlcyBubyBvYmplY3RzIChpLmUuIGlzIGFsc28gYSBuby1vcCkuIiwicHJvcGVydGllcyI6eyJwcmVmZXJlbmNlIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHRlcm0sIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB3ZWlnaHQuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBsYWJlbHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoRmllbGRzIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBmaWVsZHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sIndlaWdodCI6eyJkZXNjcmlwdGlvbiI6IldlaWdodCBhc3NvY2lhdGVkIHdpdGggbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgbm9kZVNlbGVjdG9yVGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInByZWZlcmVuY2UiLCJ3ZWlnaHQiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IklmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhbiB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4iLCJwcm9wZXJ0aWVzIjp7Im5vZGVTZWxlY3RvclRlcm1zIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQuIEEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHRlcm1zLiBUaGUgdGVybXMgYXJlIE9SZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG51bGwgb3IgZW1wdHkgbm9kZSBzZWxlY3RvciB0ZXJtIG1hdGNoZXMgbm8gb2JqZWN0cy4gVGhlIHJlcXVpcmVtZW50cyBvZiB0aGVtIGFyZSBBTkRlZC4gVGhlIFRvcG9sb2d5U2VsZWN0b3JUZXJtIHR5cGUgaW1wbGVtZW50cyBhIHN1YnNldCBvZiB0aGUgTm9kZVNlbGVjdG9yVGVybS4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGxhYmVscy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hGaWVsZHMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGZpZWxkcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJub2RlU2VsZWN0b3JUZXJtcyJdLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInBvZEFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiRGVzY3JpYmVzIHBvZCBhZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIChlLmcuIGNvLWxvY2F0ZSB0aGlzIHBvZCBpbiB0aGUgc2FtZSBub2RlLCB6b25lLCBldGMuIGFzIHNvbWUgb3RoZXIgcG9kKHMpKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcnJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHNjaGVkdWxlciB3aWxsIHByZWZlciB0byBzY2hlZHVsZSBwb2RzIHRvIG5vZGVzIHRoYXQgc2F0aXNmeSB0aGUgYWZmaW5pdHkgZXhwcmVzc2lvbnMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQsIGJ1dCBpdCBtYXkgY2hvb3NlIGEgbm9kZSB0aGF0IHZpb2xhdGVzIG9uZSBvciBtb3JlIG9mIHRoZSBleHByZXNzaW9ucy4gVGhlIG5vZGUgdGhhdCBpcyBtb3N0IHByZWZlcnJlZCBpcyB0aGUgb25lIHdpdGggdGhlIGdyZWF0ZXN0IHN1bSBvZiB3ZWlnaHRzLCBpLmUuIGZvciBlYWNoIG5vZGUgdGhhdCBtZWV0cyBhbGwgb2YgdGhlIHNjaGVkdWxpbmcgcmVxdWlyZW1lbnRzIChyZXNvdXJjZSByZXF1ZXN0LCByZXF1aXJlZER1cmluZ1NjaGVkdWxpbmcgYWZmaW5pdHkgZXhwcmVzc2lvbnMsIGV0Yy4pLCBjb21wdXRlIGEgc3VtIGJ5IGl0ZXJhdGluZyB0aHJvdWdoIHRoZSBlbGVtZW50cyBvZiB0aGlzIGZpZWxkIGFuZCBhZGRpbmcgXCJ3ZWlnaHRcIiB0byB0aGUgc3VtIGlmIHRoZSBub2RlIGhhcyBwb2RzIHdoaWNoIG1hdGNoZXMgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtOyB0aGUgbm9kZShzKSB3aXRoIHRoZSBoaWdoZXN0IHN1bSBhcmUgdGhlIG1vc3QgcHJlZmVycmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHdlaWdodHMgb2YgYWxsIG9mIHRoZSBtYXRjaGVkIFdlaWdodGVkUG9kQWZmaW5pdHlUZXJtIGZpZWxkcyBhcmUgYWRkZWQgcGVyLW5vZGUgdG8gZmluZCB0aGUgbW9zdCBwcmVmZXJyZWQgbm9kZShzKSIsInByb3BlcnRpZXMiOnsicG9kQWZmaW5pdHlUZXJtIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQuIEEgcG9kIGFmZmluaXR5IHRlcm0sIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB3ZWlnaHQuIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwid2VpZ2h0Ijp7ImRlc2NyaXB0aW9uIjoid2VpZ2h0IGFzc29jaWF0ZWQgd2l0aCBtYXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm0sIGluIHRoZSByYW5nZSAxLTEwMC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJwb2RBZmZpbml0eVRlcm0iLCJ3ZWlnaHQiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IklmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhIHBvZCBsYWJlbCB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4gV2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgZWxlbWVudHMsIHRoZSBsaXN0cyBvZiBub2RlcyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9kQWZmaW5pdHlUZXJtIGFyZSBpbnRlcnNlY3RlZCwgaS5lLiBhbGwgdGVybXMgbXVzdCBiZSBzYXRpc2ZpZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJEZWZpbmVzIGEgc2V0IG9mIHBvZHMgKG5hbWVseSB0aG9zZSBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gbmFtZXNwYWNlKHMpKSB0aGF0IHRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGgsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgXHUwMDNjdG9wb2xvZ3lLZXlcdTAwM2UgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGEgcG9kIG9mIHRoZSBzZXQgb2YgcG9kcyBpcyBydW5uaW5nIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBvZEFudGlBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBwb2QgYW50aS1hZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIChlLmcuIGF2b2lkIHB1dHRpbmcgdGhpcyBwb2QgaW4gdGhlIHNhbWUgbm9kZSwgem9uZSwgZXRjLiBhcyBzb21lIG90aGVyIHBvZChzKSkuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnkgdGhlIGFudGktYWZmaW5pdHkgZXhwcmVzc2lvbnMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQsIGJ1dCBpdCBtYXkgY2hvb3NlIGEgbm9kZSB0aGF0IHZpb2xhdGVzIG9uZSBvciBtb3JlIG9mIHRoZSBleHByZXNzaW9ucy4gVGhlIG5vZGUgdGhhdCBpcyBtb3N0IHByZWZlcnJlZCBpcyB0aGUgb25lIHdpdGggdGhlIGdyZWF0ZXN0IHN1bSBvZiB3ZWlnaHRzLCBpLmUuIGZvciBlYWNoIG5vZGUgdGhhdCBtZWV0cyBhbGwgb2YgdGhlIHNjaGVkdWxpbmcgcmVxdWlyZW1lbnRzIChyZXNvdXJjZSByZXF1ZXN0LCByZXF1aXJlZER1cmluZ1NjaGVkdWxpbmcgYW50aS1hZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgaGFzIHBvZHMgd2hpY2ggbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm07IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgd2VpZ2h0cyBvZiBhbGwgb2YgdGhlIG1hdGNoZWQgV2VpZ2h0ZWRQb2RBZmZpbml0eVRlcm0gZmllbGRzIGFyZSBhZGRlZCBwZXItbm9kZSB0byBmaW5kIHRoZSBtb3N0IHByZWZlcnJlZCBub2RlKHMpIiwicHJvcGVydGllcyI6eyJwb2RBZmZpbml0eVRlcm0iOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBwb2QgYWZmaW5pdHkgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ3ZWlnaHQiOnsiZGVzY3JpcHRpb24iOiJ3ZWlnaHQgYXNzb2NpYXRlZCB3aXRoIG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInBvZEFmZmluaXR5VGVybSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFudGktYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGFyZSBub3QgbWV0IGF0IHNjaGVkdWxpbmcgdGltZSwgdGhlIHBvZCB3aWxsIG5vdCBiZSBzY2hlZHVsZWQgb250byB0aGUgbm9kZS4gSWYgdGhlIGFudGktYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhIHBvZCBsYWJlbCB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4gV2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgZWxlbWVudHMsIHRoZSBsaXN0cyBvZiBub2RlcyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9kQWZmaW5pdHlUZXJtIGFyZSBpbnRlcnNlY3RlZCwgaS5lLiBhbGwgdGVybXMgbXVzdCBiZSBzYXRpc2ZpZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJEZWZpbmVzIGEgc2V0IG9mIHBvZHMgKG5hbWVseSB0aG9zZSBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gbmFtZXNwYWNlKHMpKSB0aGF0IHRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGgsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgXHUwMDNjdG9wb2xvZ3lLZXlcdTAwM2UgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGEgcG9kIG9mIHRoZSBzZXQgb2YgcG9kcyBpcyBydW5uaW5nIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBvdmVycmlkZXMgbGFiZWxzIGZvciB0aGUgZGVwbG95bWVudCBhbmQgaXRzIHRlbXBsYXRlLiIsInR5cGUiOiJvYmplY3QifSwiZW52Ijp7ImRlc2NyaXB0aW9uIjoiRW52IG92ZXJyaWRlcyBlbnYgdmFycyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgY29udGFpbmVyIG5hbWUiLCJ0eXBlIjoic3RyaW5nIn0sImVudlZhcnMiOnsiZGVzY3JpcHRpb24iOiJUaGUgZGVzaXJlZCBFbnZWYXJSZXF1aXJlbWVudHMiLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkVudlZhciByZXByZXNlbnRzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHByZXNlbnQgaW4gYSBDb250YWluZXIuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUuIE11c3QgYmUgYSBDX0lERU5USUZJRVIuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6IlZhcmlhYmxlIHJlZmVyZW5jZXMgJChWQVJfTkFNRSkgYXJlIGV4cGFuZGVkIHVzaW5nIHRoZSBwcmV2aW91c2x5IGRlZmluZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIHRoZSBjb250YWluZXIgYW5kIGFueSBzZXJ2aWNlIGVudmlyb25tZW50IHZhcmlhYmxlcy4gSWYgYSB2YXJpYWJsZSBjYW5ub3QgYmUgcmVzb2x2ZWQsIHRoZSByZWZlcmVuY2UgaW4gdGhlIGlucHV0IHN0cmluZyB3aWxsIGJlIHVuY2hhbmdlZC4gRG91YmxlICQkIGFyZSByZWR1Y2VkIHRvIGEgc2luZ2xlICQsIHdoaWNoIGFsbG93cyBmb3IgZXNjYXBpbmcgdGhlICQoVkFSX05BTUUpIHN5bnRheDogaS5lLiBcIiQkKFZBUl9OQU1FKVwiIHdpbGwgcHJvZHVjZSB0aGUgc3RyaW5nIGxpdGVyYWwgXCIkKFZBUl9OQU1FKVwiLiBFc2NhcGVkIHJlZmVyZW5jZXMgd2lsbCBuZXZlciBiZSBleHBhbmRlZCwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSB2YXJpYWJsZSBleGlzdHMgb3Igbm90LiBEZWZhdWx0cyB0byBcIlwiLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVGcm9tIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGZvciB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUncyB2YWx1ZS4gQ2Fubm90IGJlIHVzZWQgaWYgdmFsdWUgaXMgbm90IGVtcHR5LiIsInByb3BlcnRpZXMiOnsiY29uZmlnTWFwS2V5UmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGtleSBvZiBhIENvbmZpZ01hcC4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBrZXkgdG8gc2VsZWN0LiIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIHJlZmVyZW50LiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L3dvcmtpbmctd2l0aC1vYmplY3RzL25hbWVzLyNuYW1lcyBUT0RPOiBBZGQgb3RoZXIgdXNlZnVsIGZpZWxkcy4gYXBpVmVyc2lvbiwga2luZCwgdWlkPyIsInR5cGUiOiJzdHJpbmcifSwib3B0aW9uYWwiOnsiZGVzY3JpcHRpb24iOiJTcGVjaWZ5IHdoZXRoZXIgdGhlIENvbmZpZ01hcCBvciBpdHMga2V5IG11c3QgYmUgZGVmaW5lZCIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJrZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJmaWVsZFJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBmaWVsZCBvZiB0aGUgcG9kOiBzdXBwb3J0cyBtZXRhZGF0YS5uYW1lLCBtZXRhZGF0YS5uYW1lc3BhY2UsIGBtZXRhZGF0YS5sYWJlbHNbJ1x1MDAzY0tFWVx1MDAzZSddYCwgYG1ldGFkYXRhLmFubm90YXRpb25zWydcdTAwM2NLRVlcdTAwM2UnXWAsIHNwZWMubm9kZU5hbWUsIHNwZWMuc2VydmljZUFjY291bnROYW1lLCBzdGF0dXMuaG9zdElQLCBzdGF0dXMucG9kSVAsIHN0YXR1cy5wb2RJUHMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiVmVyc2lvbiBvZiB0aGUgc2NoZW1hIHRoZSBGaWVsZFBhdGggaXMgd3JpdHRlbiBpbiB0ZXJtcyBvZiwgZGVmYXVsdHMgdG8gXCJ2MVwiLiIsInR5cGUiOiJzdHJpbmcifSwiZmllbGRQYXRoIjp7ImRlc2NyaXB0aW9uIjoiUGF0aCBvZiB0aGUgZmllbGQgdG8gc2VsZWN0IGluIHRoZSBzcGVjaWZpZWQgQVBJIHZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiZmllbGRQYXRoIl0sInR5cGUiOiJvYmplY3QifSwicmVzb3VyY2VGaWVsZFJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSByZXNvdXJjZSBvZiB0aGUgY29udGFpbmVyOiBvbmx5IHJlc291cmNlcyBsaW1pdHMgYW5kIHJlcXVlc3RzIChsaW1pdHMuY3B1LCBsaW1pdHMubWVtb3J5LCBsaW1pdHMuZXBoZW1lcmFsLXN0b3JhZ2UsIHJlcXVlc3RzLmNwdSwgcmVxdWVzdHMubWVtb3J5IGFuZCByZXF1ZXN0cy5lcGhlbWVyYWwtc3RvcmFnZSkgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQuIiwicHJvcGVydGllcyI6eyJjb250YWluZXJOYW1lIjp7ImRlc2NyaXB0aW9uIjoiQ29udGFpbmVyIG5hbWU6IHJlcXVpcmVkIGZvciB2b2x1bWVzLCBvcHRpb25hbCBmb3IgZW52IHZhcnMiLCJ0eXBlIjoic3RyaW5nIn0sImRpdmlzb3IiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJkZXNjcmlwdGlvbiI6IlNwZWNpZmllcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiB0aGUgZXhwb3NlZCByZXNvdXJjZXMsIGRlZmF1bHRzIHRvIFwiMVwiIiwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJyZXNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkOiByZXNvdXJjZSB0byBzZWxlY3QiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJyZXNvdXJjZSJdLCJ0eXBlIjoib2JqZWN0In0sInNlY3JldEtleVJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBrZXkgb2YgYSBzZWNyZXQgaW4gdGhlIHBvZCdzIG5hbWVzcGFjZSIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGtleSBvZiB0aGUgc2VjcmV0IHRvIHNlbGVjdCBmcm9tLiAgTXVzdCBiZSBhIHZhbGlkIHNlY3JldCBrZXkuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgcmVmZXJlbnQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbmFtZXMvI25hbWVzIFRPRE86IEFkZCBvdGhlciB1c2VmdWwgZmllbGRzLiBhcGlWZXJzaW9uLCBraW5kLCB1aWQ/IiwidHlwZSI6InN0cmluZyJ9LCJvcHRpb25hbCI6eyJkZXNjcmlwdGlvbiI6IlNwZWNpZnkgd2hldGhlciB0aGUgU2VjcmV0IG9yIGl0cyBrZXkgbXVzdCBiZSBkZWZpbmVkIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImtleSJdLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJjb250YWluZXIiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiaG9zdE5ldHdvcmsiOnsiZGVzY3JpcHRpb24iOiJVc2UgdGhlIGhvc3QncyBuZXR3b3JrIG5hbWVzcGFjZSBpZiB0cnVlLiBNYWtlIHN1cmUgdG8gdW5kZXJzdGFuZCB0aGUgc2VjdXJpdHkgaW1wbGljYXRpb25zIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBpdC4gV2hlbiBob3N0TmV0d29yayBpcyBlbmFibGVkLCB0aGlzIHdpbGwgc2V0IGRuc1BvbGljeSB0byBDbHVzdGVyRmlyc3RXaXRoSG9zdE5ldCBhdXRvbWF0aWNhbGx5LiIsInR5cGUiOiJib29sZWFuIn0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTGFiZWxzIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBkZXBsb3ltZW50IGFuZCBpdHMgdGVtcGxhdGUuIiwidHlwZSI6Im9iamVjdCJ9LCJsaXZlbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IkxpdmVuZXNzUHJvYmVzIG92ZXJyaWRlcyBsaXZlbmVzcyBwcm9iZXMgZm9yIHRoZSBjb250YWluZXJzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiUHJvYmVzUmVxdWlyZW1lbnRzT3ZlcnJpZGUgZW5hYmxlcyB0aGUgdXNlciB0byBvdmVycmlkZSBhbnkgY29udGFpbmVyJ3MgZW52IHZhcnMuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgY29udGFpbmVyIG5hbWUiLCJ0eXBlIjoic3RyaW5nIn0sImZhaWx1cmVUaHJlc2hvbGQiOnsiZGVzY3JpcHRpb24iOiJNaW5pbXVtIGNvbnNlY3V0aXZlIGZhaWx1cmVzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBmYWlsZWQgYWZ0ZXIgaGF2aW5nIHN1Y2NlZWRlZC4gRGVmYXVsdHMgdG8gMy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHRoZSBjb250YWluZXIgaGFzIHN0YXJ0ZWQgYmVmb3JlIGxpdmVuZXNzIHByb2JlcyBhcmUgaW5pdGlhdGVkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwicGVyaW9kU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IkhvdyBvZnRlbiAoaW4gc2Vjb25kcykgdG8gcGVyZm9ybSB0aGUgcHJvYmUuIERlZmF1bHQgdG8gMTAgc2Vjb25kcy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwic3VjY2Vzc1RocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgc3VjY2Vzc2VzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBzdWNjZXNzZnVsIGFmdGVyIGhhdmluZyBmYWlsZWQuIERlZmF1bHRzIHRvIDEuIE11c3QgYmUgMSBmb3IgbGl2ZW5lc3MgYW5kIHN0YXJ0dXAuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiT3B0aW9uYWwgZHVyYXRpb24gaW4gc2Vjb25kcyB0aGUgcG9kIG5lZWRzIHRvIHRlcm1pbmF0ZSBncmFjZWZ1bGx5IHVwb24gcHJvYmUgZmFpbHVyZS4gVGhlIGdyYWNlIHBlcmlvZCBpcyB0aGUgZHVyYXRpb24gaW4gc2Vjb25kcyBhZnRlciB0aGUgcHJvY2Vzc2VzIHJ1bm5pbmcgaW4gdGhlIHBvZCBhcmUgc2VudCBhIHRlcm1pbmF0aW9uIHNpZ25hbCBhbmQgdGhlIHRpbWUgd2hlbiB0aGUgcHJvY2Vzc2VzIGFyZSBmb3JjaWJseSBoYWx0ZWQgd2l0aCBhIGtpbGwgc2lnbmFsLiBTZXQgdGhpcyB2YWx1ZSBsb25nZXIgdGhhbiB0aGUgZXhwZWN0ZWQgY2xlYW51cCB0aW1lIGZvciB5b3VyIHByb2Nlc3MuIElmIHRoaXMgdmFsdWUgaXMgbmlsLCB0aGUgcG9kJ3MgdGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgd2lsbCBiZSB1c2VkLiBPdGhlcndpc2UsIHRoaXMgdmFsdWUgb3ZlcnJpZGVzIHRoZSB2YWx1ZSBwcm92aWRlZCBieSB0aGUgcG9kIHNwZWMuIFZhbHVlIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXIuIFRoZSB2YWx1ZSB6ZXJvIGluZGljYXRlcyBzdG9wIGltbWVkaWF0ZWx5IHZpYSB0aGUga2lsbCBzaWduYWwgKG5vIG9wcG9ydHVuaXR5IHRvIHNodXQgZG93bikuIFRoaXMgaXMgYSBiZXRhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyBQcm9iZVRlcm1pbmF0aW9uR3JhY2VQZXJpb2QgZmVhdHVyZSBnYXRlLiBNaW5pbXVtIHZhbHVlIGlzIDEuIHNwZWMudGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgaXMgdXNlZCBpZiB1bnNldC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInRpbWVvdXRTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgd2hpY2ggdGhlIHByb2JlIHRpbWVzIG91dC4gRGVmYXVsdHMgdG8gMSBzZWNvbmQuIE1pbmltdW0gdmFsdWUgaXMgMS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvcG9kcy9wb2QtbGlmZWN5Y2xlI2NvbnRhaW5lci1wcm9iZXMiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJjb250YWluZXIiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBkZXBsb3ltZW50IiwidHlwZSI6InN0cmluZyJ9LCJub2RlU2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik5vZGVTZWxlY3RvciBvdmVycmlkZXMgbm9kZVNlbGVjdG9yIGZvciB0aGUgZGVwbG95bWVudC4iLCJ0eXBlIjoib2JqZWN0In0sInJlYWRpbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IlJlYWRpbmVzc1Byb2JlcyBvdmVycmlkZXMgcmVhZGluZXNzIHByb2JlcyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJQcm9iZXNSZXF1aXJlbWVudHNPdmVycmlkZSBlbmFibGVzIHRoZSB1c2VyIHRvIG92ZXJyaWRlIGFueSBjb250YWluZXIncyBlbnYgdmFycy4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZmFpbHVyZVRocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkLiBEZWZhdWx0cyB0byAzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZS4gRGVmYXVsdCB0byAxMCBzZWNvbmRzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJzdWNjZXNzVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZC4gRGVmYXVsdHMgdG8gMS4gTXVzdCBiZSAxIGZvciBsaXZlbmVzcyBhbmQgc3RhcnR1cC4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBkdXJhdGlvbiBpbiBzZWNvbmRzIHRoZSBwb2QgbmVlZHMgdG8gdGVybWluYXRlIGdyYWNlZnVsbHkgdXBvbiBwcm9iZSBmYWlsdXJlLiBUaGUgZ3JhY2UgcGVyaW9kIGlzIHRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHRoZSBwcm9jZXNzZXMgcnVubmluZyBpbiB0aGUgcG9kIGFyZSBzZW50IGEgdGVybWluYXRpb24gc2lnbmFsIGFuZCB0aGUgdGltZSB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIGZvcmNpYmx5IGhhbHRlZCB3aXRoIGEga2lsbCBzaWduYWwuIFNldCB0aGlzIHZhbHVlIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBjbGVhbnVwIHRpbWUgZm9yIHlvdXIgcHJvY2Vzcy4gSWYgdGhpcyB2YWx1ZSBpcyBuaWwsIHRoZSBwb2QncyB0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgdGhpcyB2YWx1ZSBvdmVycmlkZXMgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBwb2Qgc3BlYy4gVmFsdWUgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlci4gVGhlIHZhbHVlIHplcm8gaW5kaWNhdGVzIHN0b3AgaW1tZWRpYXRlbHkgdmlhIHRoZSBraWxsIHNpZ25hbCAobm8gb3Bwb3J0dW5pdHkgdG8gc2h1dCBkb3duKS4gVGhpcyBpcyBhIGJldGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIFByb2JlVGVybWluYXRpb25HcmFjZVBlcmlvZCBmZWF0dXJlIGdhdGUuIE1pbmltdW0gdmFsdWUgaXMgMS4gc3BlYy50ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyBpcyB1c2VkIGlmIHVuc2V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidGltZW91dFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0LiBEZWZhdWx0cyB0byAxIHNlY29uZC4gTWluaW11bSB2YWx1ZSBpcyAxLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIGNvbnRhaW5lcidzIHJlc291cmNlcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBwb2QgdGhpcyBSZXNvdXJjZSBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHJlcXVlc3RzIGFuZCBsaW1pdHMgZm9yIGEgY2VydGFpbiBjb250YWluZXIgYmFzZWQgb24gdGhlIG5hbWUuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIiwidHlwZSI6InN0cmluZyJ9LCJsaW1pdHMiOnsicHJvcGVydGllcyI6eyJjcHUiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9LCJtZW1vcnkiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJwcm9wZXJ0aWVzIjp7ImNwdSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn0sIm1lbW9yeSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ0b2xlcmF0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHRvbGVyYXRpb25zLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFRvbGVyYXRpb24gaXMgYXR0YWNoZWQgdG8gdG9sZXJhdGVzIGFueSB0YWludCB0aGF0IG1hdGNoZXMgdGhlIHRyaXBsZSBcdTAwM2NrZXksdmFsdWUsZWZmZWN0XHUwMDNlIHVzaW5nIHRoZSBtYXRjaGluZyBvcGVyYXRvciBcdTAwM2NvcGVyYXRvclx1MDAzZS4iLCJwcm9wZXJ0aWVzIjp7ImVmZmVjdCI6eyJkZXNjcmlwdGlvbiI6IkVmZmVjdCBpbmRpY2F0ZXMgdGhlIHRhaW50IGVmZmVjdCB0byBtYXRjaC4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGVmZmVjdHMuIFdoZW4gc3BlY2lmaWVkLCBhbGxvd2VkIHZhbHVlcyBhcmUgTm9TY2hlZHVsZSwgUHJlZmVyTm9TY2hlZHVsZSBhbmQgTm9FeGVjdXRlLiIsInR5cGUiOiJzdHJpbmcifSwia2V5Ijp7ImRlc2NyaXB0aW9uIjoiS2V5IGlzIHRoZSB0YWludCBrZXkgdGhhdCB0aGUgdG9sZXJhdGlvbiBhcHBsaWVzIHRvLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQga2V5cy4gSWYgdGhlIGtleSBpcyBlbXB0eSwgb3BlcmF0b3IgbXVzdCBiZSBFeGlzdHM7IHRoaXMgY29tYmluYXRpb24gbWVhbnMgdG8gbWF0Y2ggYWxsIHZhbHVlcyBhbmQgYWxsIGtleXMuIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gdGhlIHZhbHVlLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEV4aXN0cyBhbmQgRXF1YWwuIERlZmF1bHRzIHRvIEVxdWFsLiBFeGlzdHMgaXMgZXF1aXZhbGVudCB0byB3aWxkY2FyZCBmb3IgdmFsdWUsIHNvIHRoYXQgYSBwb2QgY2FuIHRvbGVyYXRlIGFsbCB0YWludHMgb2YgYSBwYXJ0aWN1bGFyIGNhdGVnb3J5LiIsInR5cGUiOiJzdHJpbmcifSwidG9sZXJhdGlvblNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJUb2xlcmF0aW9uU2Vjb25kcyByZXByZXNlbnRzIHRoZSBwZXJpb2Qgb2YgdGltZSB0aGUgdG9sZXJhdGlvbiAod2hpY2ggbXVzdCBiZSBvZiBlZmZlY3QgTm9FeGVjdXRlLCBvdGhlcndpc2UgdGhpcyBmaWVsZCBpcyBpZ25vcmVkKSB0b2xlcmF0ZXMgdGhlIHRhaW50LiBCeSBkZWZhdWx0LCBpdCBpcyBub3Qgc2V0LCB3aGljaCBtZWFucyB0b2xlcmF0ZSB0aGUgdGFpbnQgZm9yZXZlciAoZG8gbm90IGV2aWN0KS4gWmVybyBhbmQgbmVnYXRpdmUgdmFsdWVzIHdpbGwgYmUgdHJlYXRlZCBhcyAwIChldmljdCBpbW1lZGlhdGVseSkgYnkgdGhlIHN5c3RlbS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHRhaW50IHZhbHVlIHRoZSB0b2xlcmF0aW9uIG1hdGNoZXMgdG8uIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMsIHRoZSB2YWx1ZSBzaG91bGQgYmUgZW1wdHksIG90aGVyd2lzZSBqdXN0IGEgcmVndWxhciBzdHJpbmcuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lTcHJlYWRDb25zdHJhaW50cyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHRvcG9sb2d5IHNwcmVhZCBjb25zdHJhaW50cy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRvcG9sb2d5U3ByZWFkQ29uc3RyYWludCBzcGVjaWZpZXMgaG93IHRvIHNwcmVhZCBtYXRjaGluZyBwb2RzIGFtb25nIHRoZSBnaXZlbiB0b3BvbG9neS4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJMYWJlbFNlbGVjdG9yIGlzIHVzZWQgdG8gZmluZCBtYXRjaGluZyBwb2RzLiBQb2RzIHRoYXQgbWF0Y2ggdGhpcyBsYWJlbCBzZWxlY3RvciBhcmUgY291bnRlZCB0byBkZXRlcm1pbmUgdGhlIG51bWJlciBvZiBwb2RzIGluIHRoZWlyIGNvcnJlc3BvbmRpbmcgdG9wb2xvZ3kgZG9tYWluLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibWF4U2tldyI6eyJkZXNjcmlwdGlvbiI6Ik1heFNrZXcgZGVzY3JpYmVzIHRoZSBkZWdyZWUgdG8gd2hpY2ggcG9kcyBtYXkgYmUgdW5ldmVubHkgZGlzdHJpYnV0ZWQuIEl0J3MgdGhlIG1heGltdW0gcGVybWl0dGVkIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgbnVtYmVyIG9mIG1hdGNoaW5nIHBvZHMgaW4gYW55IHR3byB0b3BvbG9neSBkb21haW5zIG9mIGEgZ2l2ZW4gdG9wb2xvZ3kgdHlwZS4gRm9yIGV4YW1wbGUsIGluIGEgMy16b25lIGNsdXN0ZXIsIE1heFNrZXcgaXMgc2V0IHRvIDEsIGFuZCBwb2RzIHdpdGggdGhlIHNhbWUgbGFiZWxTZWxlY3RvciBzcHJlYWQgYXMgMS8xLzA6IHwgem9uZTEgfCB6b25lMiB8IHpvbmUzIHwgfCAgIFAgICB8ICAgUCAgIHwgICAgICAgfCAtIGlmIE1heFNrZXcgaXMgMSwgaW5jb21pbmcgcG9kIGNhbiBvbmx5IGJlIHNjaGVkdWxlZCB0byB6b25lMyB0byBiZWNvbWUgMS8xLzE7IHNjaGVkdWxpbmcgaXQgb250byB6b25lMSh6b25lMikgd291bGQgbWFrZSB0aGUgQWN0dWFsU2tldygyLTApIG9uIHpvbmUxKHpvbmUyKSB2aW9sYXRlIE1heFNrZXcoMSkuIC0gaWYgTWF4U2tldyBpcyAyLCBpbmNvbWluZyBwb2QgY2FuIGJlIHNjaGVkdWxlZCBvbnRvIGFueSB6b25lLiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIERlZmF1bHQgdmFsdWUgaXMgMSBhbmQgMCBpcyBub3QgYWxsb3dlZC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVG9wb2xvZ3lLZXkgaXMgdGhlIGtleSBvZiBub2RlIGxhYmVscy4gTm9kZXMgdGhhdCBoYXZlIGEgbGFiZWwgd2l0aCB0aGlzIGtleSBhbmQgaWRlbnRpY2FsIHZhbHVlcyBhcmUgY29uc2lkZXJlZCB0byBiZSBpbiB0aGUgc2FtZSB0b3BvbG9neS4gV2UgY29uc2lkZXIgZWFjaCBcdTAwM2NrZXksIHZhbHVlXHUwMDNlIGFzIGEgXCJidWNrZXRcIiwgYW5kIHRyeSB0byBwdXQgYmFsYW5jZWQgbnVtYmVyIG9mIHBvZHMgaW50byBlYWNoIGJ1Y2tldC4gSXQncyBhIHJlcXVpcmVkIGZpZWxkLiIsInR5cGUiOiJzdHJpbmcifSwid2hlblVuc2F0aXNmaWFibGUiOnsiZGVzY3JpcHRpb24iOiJXaGVuVW5zYXRpc2ZpYWJsZSBpbmRpY2F0ZXMgaG93IHRvIGRlYWwgd2l0aCBhIHBvZCBpZiBpdCBkb2Vzbid0IHNhdGlzZnkgdGhlIHNwcmVhZCBjb25zdHJhaW50LiAtIERvTm90U2NoZWR1bGUgKGRlZmF1bHQpIHRlbGxzIHRoZSBzY2hlZHVsZXIgbm90IHRvIHNjaGVkdWxlIGl0IC0gU2NoZWR1bGVBbnl3YXkgdGVsbHMgdGhlIHNjaGVkdWxlciB0byBzdGlsbCBzY2hlZHVsZSBpdCBJdCdzIGNvbnNpZGVyZWQgYXMgXCJVbnNhdGlzZmlhYmxlXCIgaWYgYW5kIG9ubHkgaWYgcGxhY2luZyBpbmNvbWluZyBwb2Qgb24gYW55IHRvcG9sb2d5IHZpb2xhdGVzIFwiTWF4U2tld1wiLiBGb3IgZXhhbXBsZSwgaW4gYSAzLXpvbmUgY2x1c3RlciwgTWF4U2tldyBpcyBzZXQgdG8gMSwgYW5kIHBvZHMgd2l0aCB0aGUgc2FtZSBsYWJlbFNlbGVjdG9yIHNwcmVhZCBhcyAzLzEvMTogfCB6b25lMSB8IHpvbmUyIHwgem9uZTMgfCB8IFAgUCBQIHwgICBQICAgfCAgIFAgICB8IElmIFdoZW5VbnNhdGlzZmlhYmxlIGlzIHNldCB0byBEb05vdFNjaGVkdWxlLCBpbmNvbWluZyBwb2QgY2FuIG9ubHkgYmUgc2NoZWR1bGVkIHRvIHpvbmUyKHpvbmUzKSB0byBiZWNvbWUgMy8yLzEoMy8xLzIpIGFzIEFjdHVhbFNrZXcoMi0xKSBvbiB6b25lMih6b25lMykgc2F0aXNmaWVzIE1heFNrZXcoMSkuIEluIG90aGVyIHdvcmRzLCB0aGUgY2x1c3RlciBjYW4gc3RpbGwgYmUgaW1iYWxhbmNlZCwgYnV0IHNjaGVkdWxlciB3b24ndCBtYWtlIGl0ICptb3JlKiBpbWJhbGFuY2VkLiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibWF4U2tldyIsInRvcG9sb2d5S2V5Iiwid2hlblVuc2F0aXNmaWFibGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwidmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlZlcnNpb24gdGhlIGNsdXN0ZXIgc2hvdWxkIGJlIG9uLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW91bnRzIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTW91bnRzIGFsbG93cyBjb25maWd1cmF0aW9uIG9mIGFkZGl0aW9uYWwgVm9sdW1lTW91bnRzIG9uIHRoZSBvdXRwdXQgU3RhdGVmdWxTZXQgZGVmaW5pdGlvbi4gVm9sdW1lTW91bnRzIHNwZWNpZmllZCB3aWxsIGJlIGFwcGVuZGVkIHRvIG90aGVyIFZvbHVtZU1vdW50cyBpbiB0aGUgYWxlcnRtYW5hZ2VyIGNvbnRhaW5lciwgdGhhdCBhcmUgZ2VuZXJhdGVkIGFzIGEgcmVzdWx0IG9mIFN0b3JhZ2VTcGVjIG9iamVjdHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudCBkZXNjcmliZXMgYSBtb3VudGluZyBvZiBhIFZvbHVtZSB3aXRoaW4gYSBjb250YWluZXIuIiwicHJvcGVydGllcyI6eyJtb3VudFBhdGgiOnsiZGVzY3JpcHRpb24iOiJQYXRoIHdpdGhpbiB0aGUgY29udGFpbmVyIGF0IHdoaWNoIHRoZSB2b2x1bWUgc2hvdWxkIGJlIG1vdW50ZWQuICBNdXN0IG5vdCBjb250YWluICc6Jy4iLCJ0eXBlIjoic3RyaW5nIn0sIm1vdW50UHJvcGFnYXRpb24iOnsiZGVzY3JpcHRpb24iOiJtb3VudFByb3BhZ2F0aW9uIGRldGVybWluZXMgaG93IG1vdW50cyBhcmUgcHJvcGFnYXRlZCBmcm9tIHRoZSBob3N0IHRvIGNvbnRhaW5lciBhbmQgdGhlIG90aGVyIHdheSBhcm91bmQuIFdoZW4gbm90IHNldCwgTW91bnRQcm9wYWdhdGlvbk5vbmUgaXMgdXNlZC4gVGhpcyBmaWVsZCBpcyBiZXRhIGluIDEuMTAuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhpcyBtdXN0IG1hdGNoIHRoZSBOYW1lIG9mIGEgVm9sdW1lLiIsInR5cGUiOiJzdHJpbmcifSwicmVhZE9ubHkiOnsiZGVzY3JpcHRpb24iOiJNb3VudGVkIHJlYWQtb25seSBpZiB0cnVlLCByZWFkLXdyaXRlIG90aGVyd2lzZSAoZmFsc2Ugb3IgdW5zcGVjaWZpZWQpLiBEZWZhdWx0cyB0byBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzdWJQYXRoIjp7ImRlc2NyaXB0aW9uIjoiUGF0aCB3aXRoaW4gdGhlIHZvbHVtZSBmcm9tIHdoaWNoIHRoZSBjb250YWluZXIncyB2b2x1bWUgc2hvdWxkIGJlIG1vdW50ZWQuIERlZmF1bHRzIHRvIFwiXCIgKHZvbHVtZSdzIHJvb3QpLiIsInR5cGUiOiJzdHJpbmcifSwic3ViUGF0aEV4cHIiOnsiZGVzY3JpcHRpb24iOiJFeHBhbmRlZCBwYXRoIHdpdGhpbiB0aGUgdm9sdW1lIGZyb20gd2hpY2ggdGhlIGNvbnRhaW5lcidzIHZvbHVtZSBzaG91bGQgYmUgbW91bnRlZC4gQmVoYXZlcyBzaW1pbGFybHkgdG8gU3ViUGF0aCBidXQgZW52aXJvbm1lbnQgdmFyaWFibGUgcmVmZXJlbmNlcyAkKFZBUl9OQU1FKSBhcmUgZXhwYW5kZWQgdXNpbmcgdGhlIGNvbnRhaW5lcidzIGVudmlyb25tZW50LiBEZWZhdWx0cyB0byBcIlwiICh2b2x1bWUncyByb290KS4gU3ViUGF0aEV4cHIgYW5kIFN1YlBhdGggYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJtb3VudFBhdGgiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1wcmVzZXJ2ZS11bmtub3duLWZpZWxkcyI6dHJ1ZX0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IlN0YXR1cyBkZWZpbmVzIHRoZSBvYnNlcnZlZCBzdGF0ZSBvZiBLbmF0aXZlU2VydmluZyIsInByb3BlcnRpZXMiOnsiY29uZGl0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYXRlc3QgYXZhaWxhYmxlIG9ic2VydmF0aW9ucyBvZiBhIHJlc291cmNlJ3MgY3VycmVudCBzdGF0ZS4iLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7Imxhc3RUcmFuc2l0aW9uVGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RUcmFuc2l0aW9uVGltZSBpcyB0aGUgbGFzdCB0aW1lIHRoZSBjb25kaXRpb24gdHJhbnNpdGlvbmVkIGZyb20gb25lIHN0YXR1cyB0byBhbm90aGVyLiBXZSB1c2UgVm9sYXRpbGVUaW1lIGluIHBsYWNlIG9mIG1ldGF2MS5UaW1lIHRvIGV4Y2x1ZGUgdGhpcyBmcm9tIGNyZWF0aW5nIGVxdWFsaXR5LlNlbWFudGljIGRpZmZlcmVuY2VzIChhbGwgb3RoZXIgdGhpbmdzIGhlbGQgY29uc3RhbnQpLiIsInR5cGUiOiJzdHJpbmcifSwibWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkEgaHVtYW4gcmVhZGFibGUgbWVzc2FnZSBpbmRpY2F0aW5nIGRldGFpbHMgYWJvdXQgdGhlIHRyYW5zaXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJyZWFzb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgcmVhc29uIGZvciB0aGUgY29uZGl0aW9uJ3MgbGFzdCB0cmFuc2l0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwic2V2ZXJpdHkiOnsiZGVzY3JpcHRpb24iOiJTZXZlcml0eSB3aXRoIHdoaWNoIHRvIHRyZWF0IGZhaWx1cmVzIG9mIHRoaXMgdHlwZSBvZiBjb25kaXRpb24uIFdoZW4gdGhpcyBpcyBub3Qgc3BlY2lmaWVkLCBpdCBkZWZhdWx0cyB0byBFcnJvci4iLCJ0eXBlIjoic3RyaW5nIn0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IlN0YXR1cyBvZiB0aGUgY29uZGl0aW9uLCBvbmUgb2YgVHJ1ZSwgRmFsc2UsIFVua25vd24uIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiVHlwZSBvZiBjb25kaXRpb24uIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSIsInN0YXR1cyJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYW5pZmVzdHMiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGlzdCBvZiBzZXJ2aW5nIG1hbmlmZXN0cywgd2hpY2ggaGF2ZSBiZWVuIGluc3RhbGxlZCBieSB0aGUgb3BlcmF0b3IiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJvYnNlcnZlZEdlbmVyYXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgZ2VuZXJhdGlvbiBsYXN0IHByb2Nlc3NlZCBieSB0aGUgY29udHJvbGxlciIsInR5cGUiOiJpbnRlZ2VyIn0sInZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgdmVyc2lvbiBvZiB0aGUgaW5zdGFsbGVkIHJlbGVhc2UiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsibmFtZSI6ImtuYXRpdmVrYWZrYXMub3BlcmF0b3Iuc2VydmVybGVzcy5vcGVuc2hpZnQuaW8ifSwic3BlYyI6eyJncm91cCI6Im9wZXJhdG9yLnNlcnZlcmxlc3Mub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IktuYXRpdmVLYWZrYSIsImxpc3RLaW5kIjoiS25hdGl2ZUthZmthTGlzdCIsInBsdXJhbCI6ImtuYXRpdmVrYWZrYXMiLCJzaW5ndWxhciI6ImtuYXRpdmVrYWZrYSJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3siYWRkaXRpb25hbFByaW50ZXJDb2x1bW5zIjpbeyJqc29uUGF0aCI6Ii5zdGF0dXMudmVyc2lvbiIsIm5hbWUiOiJWZXJzaW9uIiwidHlwZSI6InN0cmluZyJ9LHsianNvblBhdGgiOiIuc3RhdHVzLmNvbmRpdGlvbnNbPyhALnR5cGU9PVwiUmVhZHlcIildLnN0YXR1cyIsIm5hbWUiOiJSZWFkeSIsInR5cGUiOiJzdHJpbmcifSx7Impzb25QYXRoIjoiLnN0YXR1cy5jb25kaXRpb25zWz8oQC50eXBlPT0nUmVhZHknKV0ucmVhc29uIiwibmFtZSI6IlJlYXNvbiIsInR5cGUiOiJzdHJpbmcifV0sIm5hbWUiOiJ2MWFscGhhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJLbmF0aXZlS2Fma2EgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGtuYXRpdmVrYWZrYXMgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IktuYXRpdmVLYWZrYVNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiB0aGUgS25hdGl2ZUthZmthIChmcm9tIHRoZSBjbGllbnQpLiIsInByb3BlcnRpZXMiOnsiYnJva2VyIjp7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIGNvbmZpZ3VyYXRpb24gZm9yIEthZmthQnJva2VyIGluc3RhbGxhdGlvbiIsInByb3BlcnRpZXMiOnsiZGVmYXVsdENvbmZpZyI6eyJkZXNjcmlwdGlvbiI6IlRha2VzIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIEthZmthIGJhc2VkIGJyb2tlcnMiLCJwcm9wZXJ0aWVzIjp7ImF1dGhTZWNyZXROYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFNlY3JldE5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIHNlY3JldCB0aGF0IGNvbnRhaW5zIEthZmthIGF1dGggY29uZmlndXJhdGlvbiBmb3IgdGhlIEJyb2tlci4iLCJ0eXBlIjoic3RyaW5nIn0sImJvb3RzdHJhcFNlcnZlcnMiOnsiZGVzY3JpcHRpb24iOiJCb290c3RyYXBTZXJ2ZXJzIGlzIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmcgb2YgYm9vdHN0cmFwc2VydmVycyB0aGF0IHRoZSBLYWZrYUJyb2tlcnMgd2lsbCB1c2UiLCJ0eXBlIjoic3RyaW5nIn0sIm51bVBhcnRpdGlvbnMiOnsiZGVmYXVsdCI6MTAsImRlc2NyaXB0aW9uIjoiTnVtUGFydGl0aW9ucyBpcyB0aGUgbnVtYmVyIG9mIHBhcnRpdGlvbnMgb2YgYSBLYWZrYSB0b3BpYy4gQnkgZGVmYXVsdCwgaXQgaXMgc2V0IHRvIDEwLiIsInR5cGUiOiJpbnRlZ2VyIn0sInJlcGxpY2F0aW9uRmFjdG9yIjp7ImRlZmF1bHQiOjMsImRlc2NyaXB0aW9uIjoiUmVwbGljYXRpb25GYWN0b3IgaXMgdGhlIHJlcGxpY2F0aW9uIGZhY3RvciBvZiBhIEthZmthIHRvcGljLiBCeSBkZWZhdWx0LCBpdCBpcyBzZXQgdG8gMy4iLCJtYXhpbXVtIjozMjc2NywidHlwZSI6ImludGVnZXIifX0sInR5cGUiOiJvYmplY3QifSwiZW5hYmxlZCI6eyJkZXNjcmlwdGlvbiI6IkVuYWJsZWQgZGVmaW5lcyBpZiB0aGUgS2Fma2FCcm9rZXIgaW5zdGFsbGF0aW9uIGlzIGVuYWJsZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsiZW5hYmxlZCJdLCJ0eXBlIjoib2JqZWN0In0sImNoYW5uZWwiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3MgY29uZmlndXJhdGlvbiBmb3IgS2Fma2FDaGFubmVsIGluc3RhbGxhdGlvbiIsInByb3BlcnRpZXMiOnsiYXV0aFNlY3JldE5hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoU2VjcmV0TmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgc2VjcmV0IHRoYXQgY29udGFpbnMgS2Fma2EgYXV0aCBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYXV0aFNlY3JldE5hbWVzcGFjZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhTZWNyZXROYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiB0aGUgc2VjcmV0IHRoYXQgY29udGFpbnMgS2Fma2EgYXV0aCBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYm9vdHN0cmFwU2VydmVycyI6eyJkZXNjcmlwdGlvbiI6IkJvb3RzdHJhcFNlcnZlcnMgaXMgY29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiBib290c3RyYXBzZXJ2ZXJzIHRoYXQgdGhlIEthZmthQ2hhbm5lbHMgd2lsbCB1c2UiLCJ0eXBlIjoic3RyaW5nIn0sImVuYWJsZWQiOnsiZGVzY3JpcHRpb24iOiJFbmFibGVkIGRlZmluZXMgaWYgdGhlIEthZmthQ2hhbm5lbCBpbnN0YWxsYXRpb24gaXMgZW5hYmxlZCIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJlbmFibGVkIl0sInR5cGUiOiJvYmplY3QifSwiY29uZmlnIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6Im9iamVjdCJ9LCJkZXNjcmlwdGlvbiI6IkEgbWVhbnMgdG8gb3ZlcnJpZGUgdGhlIGNvcnJlc3BvbmRpbmcgZW50cmllcyBpbiB0aGUgdXBzdHJlYW0gY29uZmlnbWFwcyIsInR5cGUiOiJvYmplY3QifSwiaGlnaC1hdmFpbGFiaWxpdHkiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiBIQSBjb250cm9sIHBsYW5lIiwicHJvcGVydGllcyI6eyJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sImxvZ2dpbmciOnsiZGVzY3JpcHRpb24iOiJTZXQgbG9nZ2luZyBjb25maWd1cmF0aW9uIG9mIHRoZSBkYXRhIHBsYW5lIChyZWNlaXZlcnMgYW5kIGRpc3BhdGNoZXJzKS4gSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIHVzZSBERUJVRyBvciBUUkFDRSBpbiBwcm9kdWN0aW9uIHNpbmNlIGl0J3MgdG9vIHZlcmJvc2UgYW5kIGRlZ3JhZGVzIHBlcmZvcm1hbmNlLiIsInByb3BlcnRpZXMiOnsibGV2ZWwiOnsiZGVmYXVsdCI6IklORk8iLCJkZXNjcmlwdGlvbiI6IkRlZmluZXMgdGhlIGxvZyBsZXZlbC4gQWxsb3dlZCB2YWx1ZXMgYXJlICdUUkFDRScsICdERUJVRycsICdJTkZPJywgJ1dBUk4nIGFuZCAnRVJST1InLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAnSU5GTycuIiwiZW51bSI6WyJUUkFDRSIsIkRFQlVHIiwiSU5GTyIsIldBUk4iLCJFUlJPUiJdLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNpbmsiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3MgY29uZmlndXJhdGlvbiBmb3IgS2Fma2FTaW5rIGluc3RhbGxhdGlvbiIsInByb3BlcnRpZXMiOnsiZW5hYmxlZCI6eyJkZXNjcmlwdGlvbiI6IkVuYWJsZWQgZGVmaW5lcyBpZiB0aGUgS2Fma2FTaW5rIGluc3RhbGxhdGlvbiBpcyBlbmFibGVkIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImVuYWJsZWQiXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3MgY29uZmlndXJhdGlvbiBmb3IgS2Fma2FTb3VyY2UgaW5zdGFsbGF0aW9uIiwicHJvcGVydGllcyI6eyJlbmFibGVkIjp7ImRlc2NyaXB0aW9uIjoiRW5hYmxlZCBkZWZpbmVzIGlmIHRoZSBLYWZrYVNvdXJjZSBpbnN0YWxsYXRpb24gaXMgZW5hYmxlZCIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJlbmFibGVkIl0sInR5cGUiOiJvYmplY3QifSwid29ya2xvYWRzIjp7ImRlc2NyaXB0aW9uIjoiQSBtYXBwaW5nIG9mIGRlcGxveW1lbnQgb3Igc3RhdGVmdWxzZXQgbmFtZSB0byBvdmVycmlkZSIsIml0ZW1zIjp7InByb3BlcnRpZXMiOnsiYWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJJZiBzcGVjaWZpZWQsIHRoZSBwb2QncyBzY2hlZHVsaW5nIGNvbnN0cmFpbnRzLiIsInByb3BlcnRpZXMiOnsibm9kZUFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiRGVzY3JpYmVzIG5vZGUgYWZmaW5pdHkgc2NoZWR1bGluZyBydWxlcyBmb3IgdGhlIHBvZC4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcnJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHNjaGVkdWxlciB3aWxsIHByZWZlciB0byBzY2hlZHVsZSBwb2RzIHRvIG5vZGVzIHRoYXQgc2F0aXNmeSB0aGUgYWZmaW5pdHkgZXhwcmVzc2lvbnMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQsIGJ1dCBpdCBtYXkgY2hvb3NlIGEgbm9kZSB0aGF0IHZpb2xhdGVzIG9uZSBvciBtb3JlIG9mIHRoZSBleHByZXNzaW9ucy4gVGhlIG5vZGUgdGhhdCBpcyBtb3N0IHByZWZlcnJlZCBpcyB0aGUgb25lIHdpdGggdGhlIGdyZWF0ZXN0IHN1bSBvZiB3ZWlnaHRzLCBpLmUuIGZvciBlYWNoIG5vZGUgdGhhdCBtZWV0cyBhbGwgb2YgdGhlIHNjaGVkdWxpbmcgcmVxdWlyZW1lbnRzIChyZXNvdXJjZSByZXF1ZXN0LCByZXF1aXJlZER1cmluZ1NjaGVkdWxpbmcgYWZmaW5pdHkgZXhwcmVzc2lvbnMsIGV0Yy4pLCBjb21wdXRlIGEgc3VtIGJ5IGl0ZXJhdGluZyB0aHJvdWdoIHRoZSBlbGVtZW50cyBvZiB0aGlzIGZpZWxkIGFuZCBhZGRpbmcgXCJ3ZWlnaHRcIiB0byB0aGUgc3VtIGlmIHRoZSBub2RlIG1hdGNoZXMgdGhlIGNvcnJlc3BvbmRpbmcgbWF0Y2hFeHByZXNzaW9uczsgdGhlIG5vZGUocykgd2l0aCB0aGUgaGlnaGVzdCBzdW0gYXJlIHRoZSBtb3N0IHByZWZlcnJlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGVtcHR5IHByZWZlcnJlZCBzY2hlZHVsaW5nIHRlcm0gbWF0Y2hlcyBhbGwgb2JqZWN0cyB3aXRoIGltcGxpY2l0IHdlaWdodCAwIChpLmUuIGl0J3MgYSBuby1vcCkuIEEgbnVsbCBwcmVmZXJyZWQgc2NoZWR1bGluZyB0ZXJtIG1hdGNoZXMgbm8gb2JqZWN0cyAoaS5lLiBpcyBhbHNvIGEgbm8tb3ApLiIsInByb3BlcnRpZXMiOnsicHJlZmVyZW5jZSI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciB0ZXJtLCBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgd2VpZ2h0LiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgbGFiZWxzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaEZpZWxkcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgZmllbGRzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ3ZWlnaHQiOnsiZGVzY3JpcHRpb24iOiJXZWlnaHQgYXNzb2NpYXRlZCB3aXRoIG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIG5vZGVTZWxlY3RvclRlcm0sIGluIHRoZSByYW5nZSAxLTEwMC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJwcmVmZXJlbmNlIiwid2VpZ2h0Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGFyZSBub3QgbWV0IGF0IHNjaGVkdWxpbmcgdGltZSwgdGhlIHBvZCB3aWxsIG5vdCBiZSBzY2hlZHVsZWQgb250byB0aGUgbm9kZS4gSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBjZWFzZSB0byBiZSBtZXQgYXQgc29tZSBwb2ludCBkdXJpbmcgcG9kIGV4ZWN1dGlvbiAoZS5nLiBkdWUgdG8gYW4gdXBkYXRlKSwgdGhlIHN5c3RlbSBtYXkgb3IgbWF5IG5vdCB0cnkgdG8gZXZlbnR1YWxseSBldmljdCB0aGUgcG9kIGZyb20gaXRzIG5vZGUuIiwicHJvcGVydGllcyI6eyJub2RlU2VsZWN0b3JUZXJtcyI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkLiBBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciB0ZXJtcy4gVGhlIHRlcm1zIGFyZSBPUmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBudWxsIG9yIGVtcHR5IG5vZGUgc2VsZWN0b3IgdGVybSBtYXRjaGVzIG5vIG9iamVjdHMuIFRoZSByZXF1aXJlbWVudHMgb2YgdGhlbSBhcmUgQU5EZWQuIFRoZSBUb3BvbG9neVNlbGVjdG9yVGVybSB0eXBlIGltcGxlbWVudHMgYSBzdWJzZXQgb2YgdGhlIE5vZGVTZWxlY3RvclRlcm0uIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBsYWJlbHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoRmllbGRzIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBmaWVsZHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsibm9kZVNlbGVjdG9yVGVybXMiXSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwb2RBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBwb2QgYWZmaW5pdHkgc2NoZWR1bGluZyBydWxlcyAoZS5nLiBjby1sb2NhdGUgdGhpcyBwb2QgaW4gdGhlIHNhbWUgbm9kZSwgem9uZSwgZXRjLiBhcyBzb21lIG90aGVyIHBvZChzKSkuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnkgdGhlIGFmZmluaXR5IGV4cHJlc3Npb25zIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkLCBidXQgaXQgbWF5IGNob29zZSBhIG5vZGUgdGhhdCB2aW9sYXRlcyBvbmUgb3IgbW9yZSBvZiB0aGUgZXhwcmVzc2lvbnMuIFRoZSBub2RlIHRoYXQgaXMgbW9zdCBwcmVmZXJyZWQgaXMgdGhlIG9uZSB3aXRoIHRoZSBncmVhdGVzdCBzdW0gb2Ygd2VpZ2h0cywgaS5lLiBmb3IgZWFjaCBub2RlIHRoYXQgbWVldHMgYWxsIG9mIHRoZSBzY2hlZHVsaW5nIHJlcXVpcmVtZW50cyAocmVzb3VyY2UgcmVxdWVzdCwgcmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nIGFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSwgY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nIFwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBoYXMgcG9kcyB3aGljaCBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybTsgdGhlIG5vZGUocykgd2l0aCB0aGUgaGlnaGVzdCBzdW0gYXJlIHRoZSBtb3N0IHByZWZlcnJlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSB3ZWlnaHRzIG9mIGFsbCBvZiB0aGUgbWF0Y2hlZCBXZWlnaHRlZFBvZEFmZmluaXR5VGVybSBmaWVsZHMgYXJlIGFkZGVkIHBlci1ub2RlIHRvIGZpbmQgdGhlIG1vc3QgcHJlZmVycmVkIG5vZGUocykiLCJwcm9wZXJ0aWVzIjp7InBvZEFmZmluaXR5VGVybSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkLiBBIHBvZCBhZmZpbml0eSB0ZXJtLCBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgd2VpZ2h0LiIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMsIGluIHRoaXMgY2FzZSBwb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibmFtZXNwYWNlcyI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZXMgc3BlY2lmaWVzIHdoaWNoIG5hbWVzcGFjZXMgdGhlIGxhYmVsU2VsZWN0b3IgYXBwbGllcyB0byAobWF0Y2hlcyBhZ2FpbnN0KTsgbnVsbCBvciBlbXB0eSBsaXN0IG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCB0aGUgcG9kcyBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciBpbiB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGUgc2VsZWN0ZWQgcG9kcyBpcyBydW5uaW5nLiBFbXB0eSB0b3BvbG9neUtleSBpcyBub3QgYWxsb3dlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0b3BvbG9neUtleSJdLCJ0eXBlIjoib2JqZWN0In0sIndlaWdodCI6eyJkZXNjcmlwdGlvbiI6IndlaWdodCBhc3NvY2lhdGVkIHdpdGggbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtLCBpbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicG9kQWZmaW5pdHlUZXJtIiwid2VpZ2h0Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGFyZSBub3QgbWV0IGF0IHNjaGVkdWxpbmcgdGltZSwgdGhlIHBvZCB3aWxsIG5vdCBiZSBzY2hlZHVsZWQgb250byB0aGUgbm9kZS4gSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBjZWFzZSB0byBiZSBtZXQgYXQgc29tZSBwb2ludCBkdXJpbmcgcG9kIGV4ZWN1dGlvbiAoZS5nLiBkdWUgdG8gYSBwb2QgbGFiZWwgdXBkYXRlKSwgdGhlIHN5c3RlbSBtYXkgb3IgbWF5IG5vdCB0cnkgdG8gZXZlbnR1YWxseSBldmljdCB0aGUgcG9kIGZyb20gaXRzIG5vZGUuIFdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIGVsZW1lbnRzLCB0aGUgbGlzdHMgb2Ygbm9kZXMgY29ycmVzcG9uZGluZyB0byBlYWNoIHBvZEFmZmluaXR5VGVybSBhcmUgaW50ZXJzZWN0ZWQsIGkuZS4gYWxsIHRlcm1zIG11c3QgYmUgc2F0aXNmaWVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRGVmaW5lcyBhIHNldCBvZiBwb2RzIChuYW1lbHkgdGhvc2UgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgcmVsYXRpdmUgdG8gdGhlIGdpdmVuIG5hbWVzcGFjZShzKSkgdGhhdCB0aGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IFx1MDAzY3RvcG9sb2d5S2V5XHUwMDNlIG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhIHBvZCBvZiB0aGUgc2V0IG9mIHBvZHMgaXMgcnVubmluZyIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMsIGluIHRoaXMgY2FzZSBwb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibmFtZXNwYWNlcyI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZXMgc3BlY2lmaWVzIHdoaWNoIG5hbWVzcGFjZXMgdGhlIGxhYmVsU2VsZWN0b3IgYXBwbGllcyB0byAobWF0Y2hlcyBhZ2FpbnN0KTsgbnVsbCBvciBlbXB0eSBsaXN0IG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCB0aGUgcG9kcyBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciBpbiB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGUgc2VsZWN0ZWQgcG9kcyBpcyBydW5uaW5nLiBFbXB0eSB0b3BvbG9neUtleSBpcyBub3QgYWxsb3dlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0b3BvbG9neUtleSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwb2RBbnRpQWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJEZXNjcmliZXMgcG9kIGFudGktYWZmaW5pdHkgc2NoZWR1bGluZyBydWxlcyAoZS5nLiBhdm9pZCBwdXR0aW5nIHRoaXMgcG9kIGluIHRoZSBzYW1lIG5vZGUsIHpvbmUsIGV0Yy4gYXMgc29tZSBvdGhlciBwb2QocykpLiIsInByb3BlcnRpZXMiOnsicHJlZmVycmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgc2NoZWR1bGVyIHdpbGwgcHJlZmVyIHRvIHNjaGVkdWxlIHBvZHMgdG8gbm9kZXMgdGhhdCBzYXRpc2Z5IHRoZSBhbnRpLWFmZmluaXR5IGV4cHJlc3Npb25zIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkLCBidXQgaXQgbWF5IGNob29zZSBhIG5vZGUgdGhhdCB2aW9sYXRlcyBvbmUgb3IgbW9yZSBvZiB0aGUgZXhwcmVzc2lvbnMuIFRoZSBub2RlIHRoYXQgaXMgbW9zdCBwcmVmZXJyZWQgaXMgdGhlIG9uZSB3aXRoIHRoZSBncmVhdGVzdCBzdW0gb2Ygd2VpZ2h0cywgaS5lLiBmb3IgZWFjaCBub2RlIHRoYXQgbWVldHMgYWxsIG9mIHRoZSBzY2hlZHVsaW5nIHJlcXVpcmVtZW50cyAocmVzb3VyY2UgcmVxdWVzdCwgcmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nIGFudGktYWZmaW5pdHkgZXhwcmVzc2lvbnMsIGV0Yy4pLCBjb21wdXRlIGEgc3VtIGJ5IGl0ZXJhdGluZyB0aHJvdWdoIHRoZSBlbGVtZW50cyBvZiB0aGlzIGZpZWxkIGFuZCBhZGRpbmcgXCJ3ZWlnaHRcIiB0byB0aGUgc3VtIGlmIHRoZSBub2RlIGhhcyBwb2RzIHdoaWNoIG1hdGNoZXMgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtOyB0aGUgbm9kZShzKSB3aXRoIHRoZSBoaWdoZXN0IHN1bSBhcmUgdGhlIG1vc3QgcHJlZmVycmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHdlaWdodHMgb2YgYWxsIG9mIHRoZSBtYXRjaGVkIFdlaWdodGVkUG9kQWZmaW5pdHlUZXJtIGZpZWxkcyBhcmUgYWRkZWQgcGVyLW5vZGUgdG8gZmluZCB0aGUgbW9zdCBwcmVmZXJyZWQgbm9kZShzKSIsInByb3BlcnRpZXMiOnsicG9kQWZmaW5pdHlUZXJtIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQuIEEgcG9kIGFmZmluaXR5IHRlcm0sIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB3ZWlnaHQuIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwid2VpZ2h0Ijp7ImRlc2NyaXB0aW9uIjoid2VpZ2h0IGFzc29jaWF0ZWQgd2l0aCBtYXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm0sIGluIHRoZSByYW5nZSAxLTEwMC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJwb2RBZmZpbml0eVRlcm0iLCJ3ZWlnaHQiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IklmIHRoZSBhbnRpLWFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBhcmUgbm90IG1ldCBhdCBzY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuIElmIHRoZSBhbnRpLWFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBjZWFzZSB0byBiZSBtZXQgYXQgc29tZSBwb2ludCBkdXJpbmcgcG9kIGV4ZWN1dGlvbiAoZS5nLiBkdWUgdG8gYSBwb2QgbGFiZWwgdXBkYXRlKSwgdGhlIHN5c3RlbSBtYXkgb3IgbWF5IG5vdCB0cnkgdG8gZXZlbnR1YWxseSBldmljdCB0aGUgcG9kIGZyb20gaXRzIG5vZGUuIFdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIGVsZW1lbnRzLCB0aGUgbGlzdHMgb2Ygbm9kZXMgY29ycmVzcG9uZGluZyB0byBlYWNoIHBvZEFmZmluaXR5VGVybSBhcmUgaW50ZXJzZWN0ZWQsIGkuZS4gYWxsIHRlcm1zIG11c3QgYmUgc2F0aXNmaWVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRGVmaW5lcyBhIHNldCBvZiBwb2RzIChuYW1lbHkgdGhvc2UgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgcmVsYXRpdmUgdG8gdGhlIGdpdmVuIG5hbWVzcGFjZShzKSkgdGhhdCB0aGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IFx1MDAzY3RvcG9sb2d5S2V5XHUwMDNlIG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhIHBvZCBvZiB0aGUgc2V0IG9mIHBvZHMgaXMgcnVubmluZyIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMsIGluIHRoaXMgY2FzZSBwb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibmFtZXNwYWNlcyI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZXMgc3BlY2lmaWVzIHdoaWNoIG5hbWVzcGFjZXMgdGhlIGxhYmVsU2VsZWN0b3IgYXBwbGllcyB0byAobWF0Y2hlcyBhZ2FpbnN0KTsgbnVsbCBvciBlbXB0eSBsaXN0IG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCB0aGUgcG9kcyBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciBpbiB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGUgc2VsZWN0ZWQgcG9kcyBpcyBydW5uaW5nLiBFbXB0eSB0b3BvbG9neUtleSBpcyBub3QgYWxsb3dlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0b3BvbG9neUtleSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgb3ZlcnJpZGVzIGxhYmVscyBmb3IgdGhlIGRlcGxveW1lbnQgYW5kIGl0cyB0ZW1wbGF0ZS4iLCJ0eXBlIjoib2JqZWN0In0sImVudiI6eyJkZXNjcmlwdGlvbiI6IkVudiBvdmVycmlkZXMgZW52IHZhcnMgZm9yIHRoZSBjb250YWluZXJzLiIsIml0ZW1zIjp7InByb3BlcnRpZXMiOnsiY29udGFpbmVyIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGNvbnRhaW5lciBuYW1lIiwidHlwZSI6InN0cmluZyJ9LCJlbnZWYXJzIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGRlc2lyZWQgRW52VmFyUmVxdWlyZW1lbnRzIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZWYXIgcmVwcmVzZW50cyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBwcmVzZW50IGluIGEgQ29udGFpbmVyLiIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlLiBNdXN0IGJlIGEgQ19JREVOVElGSUVSLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYXJpYWJsZSByZWZlcmVuY2VzICQoVkFSX05BTUUpIGFyZSBleHBhbmRlZCB1c2luZyB0aGUgcHJldmlvdXNseSBkZWZpbmVkIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgY29udGFpbmVyIGFuZCBhbnkgc2VydmljZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUgY2Fubm90IGJlIHJlc29sdmVkLCB0aGUgcmVmZXJlbmNlIGluIHRoZSBpbnB1dCBzdHJpbmcgd2lsbCBiZSB1bmNoYW5nZWQuIERvdWJsZSAkJCBhcmUgcmVkdWNlZCB0byBhIHNpbmdsZSAkLCB3aGljaCBhbGxvd3MgZm9yIGVzY2FwaW5nIHRoZSAkKFZBUl9OQU1FKSBzeW50YXg6IGkuZS4gXCIkJChWQVJfTkFNRSlcIiB3aWxsIHByb2R1Y2UgdGhlIHN0cmluZyBsaXRlcmFsIFwiJChWQVJfTkFNRSlcIi4gRXNjYXBlZCByZWZlcmVuY2VzIHdpbGwgbmV2ZXIgYmUgZXhwYW5kZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgdmFyaWFibGUgZXhpc3RzIG9yIG5vdC4gRGVmYXVsdHMgdG8gXCJcIi4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlRnJvbSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZSBmb3IgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlJ3MgdmFsdWUuIENhbm5vdCBiZSB1c2VkIGlmIHZhbHVlIGlzIG5vdCBlbXB0eS4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ01hcEtleVJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBrZXkgb2YgYSBDb25maWdNYXAuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUga2V5IHRvIHNlbGVjdC4iLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSByZWZlcmVudC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9vdmVydmlldy93b3JraW5nLXdpdGgtb2JqZWN0cy9uYW1lcy8jbmFtZXMgVE9ETzogQWRkIG90aGVyIHVzZWZ1bCBmaWVsZHMuIGFwaVZlcnNpb24sIGtpbmQsIHVpZD8iLCJ0eXBlIjoic3RyaW5nIn0sIm9wdGlvbmFsIjp7ImRlc2NyaXB0aW9uIjoiU3BlY2lmeSB3aGV0aGVyIHRoZSBDb25maWdNYXAgb3IgaXRzIGtleSBtdXN0IGJlIGRlZmluZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsia2V5Il0sInR5cGUiOiJvYmplY3QifSwiZmllbGRSZWYiOnsiZGVzY3JpcHRpb24iOiJTZWxlY3RzIGEgZmllbGQgb2YgdGhlIHBvZDogc3VwcG9ydHMgbWV0YWRhdGEubmFtZSwgbWV0YWRhdGEubmFtZXNwYWNlLCBgbWV0YWRhdGEubGFiZWxzWydcdTAwM2NLRVlcdTAwM2UnXWAsIGBtZXRhZGF0YS5hbm5vdGF0aW9uc1snXHUwMDNjS0VZXHUwMDNlJ11gLCBzcGVjLm5vZGVOYW1lLCBzcGVjLnNlcnZpY2VBY2NvdW50TmFtZSwgc3RhdHVzLmhvc3RJUCwgc3RhdHVzLnBvZElQLCBzdGF0dXMucG9kSVBzLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlZlcnNpb24gb2YgdGhlIHNjaGVtYSB0aGUgRmllbGRQYXRoIGlzIHdyaXR0ZW4gaW4gdGVybXMgb2YsIGRlZmF1bHRzIHRvIFwidjFcIi4iLCJ0eXBlIjoic3RyaW5nIn0sImZpZWxkUGF0aCI6eyJkZXNjcmlwdGlvbiI6IlBhdGggb2YgdGhlIGZpZWxkIHRvIHNlbGVjdCBpbiB0aGUgc3BlY2lmaWVkIEFQSSB2ZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImZpZWxkUGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlRmllbGRSZWYiOnsiZGVzY3JpcHRpb24iOiJTZWxlY3RzIGEgcmVzb3VyY2Ugb2YgdGhlIGNvbnRhaW5lcjogb25seSByZXNvdXJjZXMgbGltaXRzIGFuZCByZXF1ZXN0cyAobGltaXRzLmNwdSwgbGltaXRzLm1lbW9yeSwgbGltaXRzLmVwaGVtZXJhbC1zdG9yYWdlLCByZXF1ZXN0cy5jcHUsIHJlcXVlc3RzLm1lbW9yeSBhbmQgcmVxdWVzdHMuZXBoZW1lcmFsLXN0b3JhZ2UpIGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkLiIsInByb3BlcnRpZXMiOnsiY29udGFpbmVyTmFtZSI6eyJkZXNjcmlwdGlvbiI6IkNvbnRhaW5lciBuYW1lOiByZXF1aXJlZCBmb3Igdm9sdW1lcywgb3B0aW9uYWwgZm9yIGVudiB2YXJzIiwidHlwZSI6InN0cmluZyJ9LCJkaXZpc29yIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwiZGVzY3JpcHRpb24iOiJTcGVjaWZpZXMgdGhlIG91dHB1dCBmb3JtYXQgb2YgdGhlIGV4cG9zZWQgcmVzb3VyY2VzLCBkZWZhdWx0cyB0byBcIjFcIiIsInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwicmVzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZDogcmVzb3VyY2UgdG8gc2VsZWN0IiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsicmVzb3VyY2UiXSwidHlwZSI6Im9iamVjdCJ9LCJzZWNyZXRLZXlSZWYiOnsiZGVzY3JpcHRpb24iOiJTZWxlY3RzIGEga2V5IG9mIGEgc2VjcmV0IGluIHRoZSBwb2QncyBuYW1lc3BhY2UiLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBrZXkgb2YgdGhlIHNlY3JldCB0byBzZWxlY3QgZnJvbS4gIE11c3QgYmUgYSB2YWxpZCBzZWNyZXQga2V5LiIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIHJlZmVyZW50LiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L3dvcmtpbmctd2l0aC1vYmplY3RzL25hbWVzLyNuYW1lcyBUT0RPOiBBZGQgb3RoZXIgdXNlZnVsIGZpZWxkcy4gYXBpVmVyc2lvbiwga2luZCwgdWlkPyIsInR5cGUiOiJzdHJpbmcifSwib3B0aW9uYWwiOnsiZGVzY3JpcHRpb24iOiJTcGVjaWZ5IHdoZXRoZXIgdGhlIFNlY3JldCBvciBpdHMga2V5IG11c3QgYmUgZGVmaW5lZCIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJrZXkiXSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsiY29udGFpbmVyIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTGFiZWxzIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBkZXBsb3ltZW50IGFuZCBpdHMgdGVtcGxhdGUuIiwidHlwZSI6Im9iamVjdCJ9LCJsaXZlbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IkxpdmVuZXNzUHJvYmVzIG92ZXJyaWRlcyBsaXZlbmVzcyBwcm9iZXMgZm9yIHRoZSBjb250YWluZXJzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiUHJvYmVzUmVxdWlyZW1lbnRzT3ZlcnJpZGUgZW5hYmxlcyB0aGUgdXNlciB0byBvdmVycmlkZSBhbnkgY29udGFpbmVyJ3MgZW52IHZhcnMuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgY29udGFpbmVyIG5hbWUiLCJ0eXBlIjoic3RyaW5nIn0sImZhaWx1cmVUaHJlc2hvbGQiOnsiZGVzY3JpcHRpb24iOiJNaW5pbXVtIGNvbnNlY3V0aXZlIGZhaWx1cmVzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBmYWlsZWQgYWZ0ZXIgaGF2aW5nIHN1Y2NlZWRlZC4gRGVmYXVsdHMgdG8gMy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHRoZSBjb250YWluZXIgaGFzIHN0YXJ0ZWQgYmVmb3JlIGxpdmVuZXNzIHByb2JlcyBhcmUgaW5pdGlhdGVkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwicGVyaW9kU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IkhvdyBvZnRlbiAoaW4gc2Vjb25kcykgdG8gcGVyZm9ybSB0aGUgcHJvYmUuIERlZmF1bHQgdG8gMTAgc2Vjb25kcy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwic3VjY2Vzc1RocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgc3VjY2Vzc2VzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBzdWNjZXNzZnVsIGFmdGVyIGhhdmluZyBmYWlsZWQuIERlZmF1bHRzIHRvIDEuIE11c3QgYmUgMSBmb3IgbGl2ZW5lc3MgYW5kIHN0YXJ0dXAuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiT3B0aW9uYWwgZHVyYXRpb24gaW4gc2Vjb25kcyB0aGUgcG9kIG5lZWRzIHRvIHRlcm1pbmF0ZSBncmFjZWZ1bGx5IHVwb24gcHJvYmUgZmFpbHVyZS4gVGhlIGdyYWNlIHBlcmlvZCBpcyB0aGUgZHVyYXRpb24gaW4gc2Vjb25kcyBhZnRlciB0aGUgcHJvY2Vzc2VzIHJ1bm5pbmcgaW4gdGhlIHBvZCBhcmUgc2VudCBhIHRlcm1pbmF0aW9uIHNpZ25hbCBhbmQgdGhlIHRpbWUgd2hlbiB0aGUgcHJvY2Vzc2VzIGFyZSBmb3JjaWJseSBoYWx0ZWQgd2l0aCBhIGtpbGwgc2lnbmFsLiBTZXQgdGhpcyB2YWx1ZSBsb25nZXIgdGhhbiB0aGUgZXhwZWN0ZWQgY2xlYW51cCB0aW1lIGZvciB5b3VyIHByb2Nlc3MuIElmIHRoaXMgdmFsdWUgaXMgbmlsLCB0aGUgcG9kJ3MgdGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgd2lsbCBiZSB1c2VkLiBPdGhlcndpc2UsIHRoaXMgdmFsdWUgb3ZlcnJpZGVzIHRoZSB2YWx1ZSBwcm92aWRlZCBieSB0aGUgcG9kIHNwZWMuIFZhbHVlIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXIuIFRoZSB2YWx1ZSB6ZXJvIGluZGljYXRlcyBzdG9wIGltbWVkaWF0ZWx5IHZpYSB0aGUga2lsbCBzaWduYWwgKG5vIG9wcG9ydHVuaXR5IHRvIHNodXQgZG93bikuIFRoaXMgaXMgYSBiZXRhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyBQcm9iZVRlcm1pbmF0aW9uR3JhY2VQZXJpb2QgZmVhdHVyZSBnYXRlLiBNaW5pbXVtIHZhbHVlIGlzIDEuIHNwZWMudGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgaXMgdXNlZCBpZiB1bnNldC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInRpbWVvdXRTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgd2hpY2ggdGhlIHByb2JlIHRpbWVzIG91dC4gRGVmYXVsdHMgdG8gMSBzZWNvbmQuIE1pbmltdW0gdmFsdWUgaXMgMS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvcG9kcy9wb2QtbGlmZWN5Y2xlI2NvbnRhaW5lci1wcm9iZXMiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJjb250YWluZXIiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBkZXBsb3ltZW50IiwidHlwZSI6InN0cmluZyJ9LCJub2RlU2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik5vZGVTZWxlY3RvciBvdmVycmlkZXMgbm9kZVNlbGVjdG9yIGZvciB0aGUgZGVwbG95bWVudC4iLCJ0eXBlIjoib2JqZWN0In0sInJlYWRpbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IlJlYWRpbmVzc1Byb2JlcyBvdmVycmlkZXMgcmVhZGluZXNzIHByb2JlcyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJQcm9iZXNSZXF1aXJlbWVudHNPdmVycmlkZSBlbmFibGVzIHRoZSB1c2VyIHRvIG92ZXJyaWRlIGFueSBjb250YWluZXIncyBlbnYgdmFycy4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZmFpbHVyZVRocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkLiBEZWZhdWx0cyB0byAzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZS4gRGVmYXVsdCB0byAxMCBzZWNvbmRzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJzdWNjZXNzVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZC4gRGVmYXVsdHMgdG8gMS4gTXVzdCBiZSAxIGZvciBsaXZlbmVzcyBhbmQgc3RhcnR1cC4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBkdXJhdGlvbiBpbiBzZWNvbmRzIHRoZSBwb2QgbmVlZHMgdG8gdGVybWluYXRlIGdyYWNlZnVsbHkgdXBvbiBwcm9iZSBmYWlsdXJlLiBUaGUgZ3JhY2UgcGVyaW9kIGlzIHRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHRoZSBwcm9jZXNzZXMgcnVubmluZyBpbiB0aGUgcG9kIGFyZSBzZW50IGEgdGVybWluYXRpb24gc2lnbmFsIGFuZCB0aGUgdGltZSB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIGZvcmNpYmx5IGhhbHRlZCB3aXRoIGEga2lsbCBzaWduYWwuIFNldCB0aGlzIHZhbHVlIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBjbGVhbnVwIHRpbWUgZm9yIHlvdXIgcHJvY2Vzcy4gSWYgdGhpcyB2YWx1ZSBpcyBuaWwsIHRoZSBwb2QncyB0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgdGhpcyB2YWx1ZSBvdmVycmlkZXMgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBwb2Qgc3BlYy4gVmFsdWUgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlci4gVGhlIHZhbHVlIHplcm8gaW5kaWNhdGVzIHN0b3AgaW1tZWRpYXRlbHkgdmlhIHRoZSBraWxsIHNpZ25hbCAobm8gb3Bwb3J0dW5pdHkgdG8gc2h1dCBkb3duKS4gVGhpcyBpcyBhIGJldGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIFByb2JlVGVybWluYXRpb25HcmFjZVBlcmlvZCBmZWF0dXJlIGdhdGUuIE1pbmltdW0gdmFsdWUgaXMgMS4gc3BlYy50ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyBpcyB1c2VkIGlmIHVuc2V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidGltZW91dFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0LiBEZWZhdWx0cyB0byAxIHNlY29uZC4gTWluaW11bSB2YWx1ZSBpcyAxLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIGNvbnRhaW5lcidzIHJlc291cmNlcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBwb2QgdGhpcyBSZXNvdXJjZSBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHJlcXVlc3RzIGFuZCBsaW1pdHMgZm9yIGEgY2VydGFpbiBjb250YWluZXIgYmFzZWQgb24gdGhlIG5hbWUuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIiwidHlwZSI6InN0cmluZyJ9LCJsaW1pdHMiOnsicHJvcGVydGllcyI6eyJjcHUiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9LCJtZW1vcnkiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJwcm9wZXJ0aWVzIjp7ImNwdSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn0sIm1lbW9yeSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ0b2xlcmF0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHRvbGVyYXRpb25zLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFRvbGVyYXRpb24gaXMgYXR0YWNoZWQgdG8gdG9sZXJhdGVzIGFueSB0YWludCB0aGF0IG1hdGNoZXMgdGhlIHRyaXBsZSBcdTAwM2NrZXksdmFsdWUsZWZmZWN0XHUwMDNlIHVzaW5nIHRoZSBtYXRjaGluZyBvcGVyYXRvciBcdTAwM2NvcGVyYXRvclx1MDAzZS4iLCJwcm9wZXJ0aWVzIjp7ImVmZmVjdCI6eyJkZXNjcmlwdGlvbiI6IkVmZmVjdCBpbmRpY2F0ZXMgdGhlIHRhaW50IGVmZmVjdCB0byBtYXRjaC4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGVmZmVjdHMuIFdoZW4gc3BlY2lmaWVkLCBhbGxvd2VkIHZhbHVlcyBhcmUgTm9TY2hlZHVsZSwgUHJlZmVyTm9TY2hlZHVsZSBhbmQgTm9FeGVjdXRlLiIsInR5cGUiOiJzdHJpbmcifSwia2V5Ijp7ImRlc2NyaXB0aW9uIjoiS2V5IGlzIHRoZSB0YWludCBrZXkgdGhhdCB0aGUgdG9sZXJhdGlvbiBhcHBsaWVzIHRvLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQga2V5cy4gSWYgdGhlIGtleSBpcyBlbXB0eSwgb3BlcmF0b3IgbXVzdCBiZSBFeGlzdHM7IHRoaXMgY29tYmluYXRpb24gbWVhbnMgdG8gbWF0Y2ggYWxsIHZhbHVlcyBhbmQgYWxsIGtleXMuIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gdGhlIHZhbHVlLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEV4aXN0cyBhbmQgRXF1YWwuIERlZmF1bHRzIHRvIEVxdWFsLiBFeGlzdHMgaXMgZXF1aXZhbGVudCB0byB3aWxkY2FyZCBmb3IgdmFsdWUsIHNvIHRoYXQgYSBwb2QgY2FuIHRvbGVyYXRlIGFsbCB0YWludHMgb2YgYSBwYXJ0aWN1bGFyIGNhdGVnb3J5LiIsInR5cGUiOiJzdHJpbmcifSwidG9sZXJhdGlvblNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJUb2xlcmF0aW9uU2Vjb25kcyByZXByZXNlbnRzIHRoZSBwZXJpb2Qgb2YgdGltZSB0aGUgdG9sZXJhdGlvbiAod2hpY2ggbXVzdCBiZSBvZiBlZmZlY3QgTm9FeGVjdXRlLCBvdGhlcndpc2UgdGhpcyBmaWVsZCBpcyBpZ25vcmVkKSB0b2xlcmF0ZXMgdGhlIHRhaW50LiBCeSBkZWZhdWx0LCBpdCBpcyBub3Qgc2V0LCB3aGljaCBtZWFucyB0b2xlcmF0ZSB0aGUgdGFpbnQgZm9yZXZlciAoZG8gbm90IGV2aWN0KS4gWmVybyBhbmQgbmVnYXRpdmUgdmFsdWVzIHdpbGwgYmUgdHJlYXRlZCBhcyAwIChldmljdCBpbW1lZGlhdGVseSkgYnkgdGhlIHN5c3RlbS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHRhaW50IHZhbHVlIHRoZSB0b2xlcmF0aW9uIG1hdGNoZXMgdG8uIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMsIHRoZSB2YWx1ZSBzaG91bGQgYmUgZW1wdHksIG90aGVyd2lzZSBqdXN0IGEgcmVndWxhciBzdHJpbmcuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJjaGFubmVsIiwic291cmNlIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiS25hdGl2ZUthZmthU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIEtuYXRpdmVLYWZrYSAoZnJvbSB0aGUgY29udHJvbGxlcikuIiwicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgaXMgYWRkaXRpb25hbCBTdGF0dXMgZmllbGRzIGZvciB0aGUgUmVzb3VyY2UgdG8gc2F2ZSBzb21lIGFkZGl0aW9uYWwgU3RhdGUgYXMgd2VsbCBhcyBjb252ZXkgbW9yZSBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4gVGhpcyBpcyByb3VnaGx5IGFraW4gdG8gQW5ub3RhdGlvbnMgb24gYW55IGs4cyByZXNvdXJjZSwganVzdCB0aGUgcmVjb25jaWxlciBjb252ZXlpbmcgcmljaGVyIGluZm9ybWF0aW9uIG91dHdhcmRzLiIsInR5cGUiOiJvYmplY3QifSwiY29uZGl0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkNvbmRpdGlvbnMgdGhlIGxhdGVzdCBhdmFpbGFibGUgb2JzZXJ2YXRpb25zIG9mIGEgcmVzb3VyY2UncyBjdXJyZW50IHN0YXRlLiArcGF0Y2hNZXJnZUtleT10eXBlICtwYXRjaFN0cmF0ZWd5PW1lcmdlIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJsYXN0VHJhbnNpdGlvblRpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VHJhbnNpdGlvblRpbWUgaXMgdGhlIGxhc3QgdGltZSB0aGUgY29uZGl0aW9uIHRyYW5zaXRpb25lZCBmcm9tIG9uZSBzdGF0dXMgdG8gYW5vdGhlci4gV2UgdXNlIFZvbGF0aWxlVGltZSBpbiBwbGFjZSBvZiBtZXRhdjEuVGltZSB0byBleGNsdWRlIHRoaXMgZnJvbSBjcmVhdGluZyBlcXVhbGl0eS5TZW1hbnRpYyBkaWZmZXJlbmNlcyAoYWxsIG90aGVyIHRoaW5ncyBoZWxkIGNvbnN0YW50KS4iLCJ0eXBlIjoic3RyaW5nIn0sIm1lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJBIGh1bWFuIHJlYWRhYmxlIG1lc3NhZ2UgaW5kaWNhdGluZyBkZXRhaWxzIGFib3V0IHRoZSB0cmFuc2l0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwicmVhc29uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHJlYXNvbiBmb3IgdGhlIGNvbmRpdGlvbidzIGxhc3QgdHJhbnNpdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInNldmVyaXR5Ijp7ImRlc2NyaXB0aW9uIjoiU2V2ZXJpdHkgd2l0aCB3aGljaCB0byB0cmVhdCBmYWlsdXJlcyBvZiB0aGlzIHR5cGUgb2YgY29uZGl0aW9uLiBXaGVuIHRoaXMgaXMgbm90IHNwZWNpZmllZCwgaXQgZGVmYXVsdHMgdG8gRXJyb3IuIiwidHlwZSI6InN0cmluZyJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJTdGF0dXMgb2YgdGhlIGNvbmRpdGlvbiwgb25lIG9mIFRydWUsIEZhbHNlLCBVbmtub3duLiArcmVxdWlyZWQiLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJUeXBlIG9mIGNvbmRpdGlvbi4gK3JlcXVpcmVkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSIsInN0YXR1cyJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJvYnNlcnZlZEdlbmVyYXRpb24iOnsiZGVzY3JpcHRpb24iOiJPYnNlcnZlZEdlbmVyYXRpb24gaXMgdGhlICdHZW5lcmF0aW9uJyBvZiB0aGUgU2VydmljZSB0aGF0IHdhcyBsYXN0IHByb2Nlc3NlZCBieSB0aGUgY29udHJvbGxlci4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgdmVyc2lvbiBvZiB0aGUgaW5zdGFsbGVkIHJlbGVhc2UiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwib3BlcmF0b3Iua25hdGl2ZS5kZXYvdjFiZXRhMVwiLFxuICAgIFwia2luZFwiOiBcIktuYXRpdmVTZXJ2aW5nXCIsXG4gICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICBcIm5hbWVcIjogXCJrbmF0aXZlLXNlcnZpbmdcIlxuICAgIH0sXG4gICAgXCJzcGVjXCI6IHtcbiAgICB9XG4gIH0sXG4gIHtcbiAgICBcImFwaVZlcnNpb25cIjogXCJvcGVyYXRvci5rbmF0aXZlLmRldi92MWJldGExXCIsXG4gICAgXCJraW5kXCI6IFwiS25hdGl2ZUV2ZW50aW5nXCIsXG4gICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICBcIm5hbWVcIjogXCJrbmF0aXZlLWV2ZW50aW5nXCJcbiAgICB9LFxuICAgIFwic3BlY1wiOiB7XG4gICAgfVxuICB9LFxuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwib3BlcmF0b3Iuc2VydmVybGVzcy5vcGVuc2hpZnQuaW8vdjFhbHBoYTFcIixcbiAgICBcImtpbmRcIjogXCJLbmF0aXZlS2Fma2FcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImtuYXRpdmUta2Fma2FcIlxuICAgIH0sXG4gICAgXCJzcGVjXCI6IHtcbiAgICAgIFwiYnJva2VyXCI6IHtcbiAgICAgICAgXCJlbmFibGVkXCI6IGZhbHNlLFxuICAgICAgICBcImRlZmF1bHRDb25maWdcIjoge1xuICAgICAgICAgIFwibnVtUGFydGl0aW9uc1wiOiAxMCxcbiAgICAgICAgICBcInJlcGxpY2F0aW9uRmFjdG9yXCI6IDMsXG4gICAgICAgICAgXCJib290c3RyYXBTZXJ2ZXJzXCI6IFwiUkVQTEFDRV9XSVRIX0NPTU1BX1NFUEFSQVRFRF9LQUZLQV9CT09UU1RSQVBfU0VSVkVSU1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInNvdXJjZVwiOiB7XG4gICAgICAgIFwiZW5hYmxlZFwiOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwic2lua1wiOiB7XG4gICAgICAgIFwiZW5hYmxlZFwiOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiY2hhbm5lbFwiOiB7XG4gICAgICAgIFwiZW5hYmxlZFwiOiBmYWxzZSxcbiAgICAgICAgXCJib290c3RyYXBTZXJ2ZXJzXCI6IFwiUkVQTEFDRV9XSVRIX0NPTU1BX1NFUEFSQVRFRF9LQUZLQV9CT09UU1RSQVBfU0VSVkVSU1wiXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiRnVsbCBMaWZlY3ljbGUiLCJjYXRlZ29yaWVzIjoiTmV0d29ya2luZyxJbnRlZ3JhdGlvbiBcdTAwMjYgRGVsaXZlcnksQ2xvdWQgUHJvdmlkZXIsRGV2ZWxvcGVyIFRvb2xzIiwiY2VydGlmaWVkIjoiZmFsc2UiLCJjcmVhdGVkQXQiOiIyMDIwLTA0LTIwVDE3OjAwOjAwWiIsImRlc2NyaXB0aW9uIjoiRGVwbG95IGFuZCBtYW5hZ2UgZXZlbnQtZHJpdmVuIHNlcnZlcmxlc3MgYXBwbGljYXRpb25zIGFuZCBmdW5jdGlvbnMgdXNpbmcgS25hdGl2ZS4iLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2NuZiI6ImZhbHNlIiwiZmVhdHVyZXMub3BlcmF0b3JzLm9wZW5zaGlmdC5pby9jbmkiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vY3NpIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2Rpc2Nvbm5lY3RlZCI6InRydWUiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2ZpcHMtY29tcGxpYW50IjoidHJ1ZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vcHJveHktYXdhcmUiOiJ0cnVlIiwiZmVhdHVyZXMub3BlcmF0b3JzLm9wZW5zaGlmdC5pby90bHMtcHJvZmlsZXMiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1hd3MiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1henVyZSI6ImZhbHNlIiwiZmVhdHVyZXMub3BlcmF0b3JzLm9wZW5zaGlmdC5pby90b2tlbi1hdXRoLWdjcCI6ImZhbHNlIiwib2xtLnNraXBSYW5nZSI6Ilx1MDAzZT0xLjM2LjAgXHUwMDNjMS4zNi4xIiwib3BlcmF0b3JmcmFtZXdvcmsuaW8vc3VnZ2VzdGVkLW5hbWVzcGFjZSI6Im9wZW5zaGlmdC1zZXJ2ZXJsZXNzIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9tdXN0LWdhdGhlci1pbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL3NlcnZlcmxlc3MtbXVzdC1nYXRoZXItcmhlbDhAc2hhMjU2OjU4ZjNlMTgwNmZlY2RiNGQwMzA2NDZjY2VmZDFhMTQ3YmZmZWYyMWVlZTEyMzM0ODdjY2RhYjMzMGU4ZDRlMWQiLCJvcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3ZhbGlkLXN1YnNjcmlwdGlvbiI6IltcIk9wZW5TaGlmdCBDb250YWluZXIgUGxhdGZvcm1cIiwgXCJPcGVuU2hpZnQgUGxhdGZvcm0gUGx1c1wiXSIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vb3BlbnNoaWZ0LWtuYXRpdmUvc2VydmVybGVzcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sImxhYmVscyI6eyJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLmFtZDY0Ijoic3VwcG9ydGVkIiwib3BlcmF0b3JmcmFtZXdvcmsuaW8vYXJjaC5hcm02NCI6InN1cHBvcnRlZCIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL2FyY2gucHBjNjRsZSI6InN1cHBvcnRlZCIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL2FyY2guczM5MHgiOiJzdXBwb3J0ZWQifSwibmFtZSI6InNlcnZlcmxlc3Mtb3BlcmF0b3IudjEuMzYuMSIsIm5hbWVzcGFjZSI6InBsYWNlaG9sZGVyIn0sInNwZWMiOnsiY3VzdG9tcmVzb3VyY2VkZWZpbml0aW9ucyI6eyJvd25lZCI6W3siZGVzY3JpcHRpb24iOiJBIHBsYXRmb3JtIGZvciBzdHJlYW1saW5lZCBhcHBsaWNhdGlvbiBkZXBsb3ltZW50LCB0cmFmZmljLWJhc2VkIGF1dG8tc2NhbGluZyBmcm9tIHplcm8gdG8gTiwgYW5kIHRyYWZmaWMtc3BsaXQgcm9sbG91dHMiLCJkaXNwbGF5TmFtZSI6IktuYXRpdmUgU2VydmluZyIsImtpbmQiOiJLbmF0aXZlU2VydmluZyIsIm5hbWUiOiJrbmF0aXZlc2VydmluZ3Mub3BlcmF0b3Iua25hdGl2ZS5kZXYiLCJzdGF0dXNEZXNjcmlwdG9ycyI6W3siZGVzY3JpcHRpb24iOiJUaGUgdmVyc2lvbiBvZiBLbmF0aXZlIFNlcnZpbmcgaW5zdGFsbGVkIiwiZGlzcGxheU5hbWUiOiJWZXJzaW9uIiwicGF0aCI6InZlcnNpb24ifSx7ImRlc2NyaXB0aW9uIjoiQ29uZGl0aW9ucyBvZiBLbmF0aXZlIFNlcnZpbmcgaW5zdGFsbGVkIiwiZGlzcGxheU5hbWUiOiJDb25kaXRpb25zIiwicGF0aCI6ImNvbmRpdGlvbnMiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjppby5rdWJlcm5ldGVzLmNvbmRpdGlvbnMiXX1dLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9LHsiZGVzY3JpcHRpb24iOiJBbiBldmVudC1kcml2ZW4gYXBwbGljYXRpb24gcGxhdGZvcm0gdGhhdCBsZXZlcmFnZXMgQ2xvdWRFdmVudHMgd2l0aCBhIHNpbXBsZSBIVFRQIGludGVyZmFjZSIsImRpc3BsYXlOYW1lIjoiS25hdGl2ZSBFdmVudGluZyIsImtpbmQiOiJLbmF0aXZlRXZlbnRpbmciLCJuYW1lIjoia25hdGl2ZWV2ZW50aW5ncy5vcGVyYXRvci5rbmF0aXZlLmRldiIsInN0YXR1c0Rlc2NyaXB0b3JzIjpbeyJkZXNjcmlwdGlvbiI6IlRoZSB2ZXJzaW9uIG9mIEtuYXRpdmUgRXZlbnRpbmcgaW5zdGFsbGVkIiwiZGlzcGxheU5hbWUiOiJWZXJzaW9uIiwicGF0aCI6InZlcnNpb24ifV0sInZlcnNpb24iOiJ2MWJldGExIn0seyJkZXNjcmlwdGlvbiI6IkFuIGV4dGVuc2lvbiB0byBLbmF0aXZlIEV2ZW50aW5nLCBtZXJnaW5nIEhUVFAgYWNjZXNzaWJpbGl0eSB3aXRoIEFwYWNoZSBLYWZrYSdzIHByb3ZlbiBlZmZpY2llbmN5IGFuZCByZWxpYWJpbGl0eSIsImRpc3BsYXlOYW1lIjoiS25hdGl2ZSBLYWZrYSIsImtpbmQiOiJLbmF0aXZlS2Fma2EiLCJuYW1lIjoia25hdGl2ZWthZmthcy5vcGVyYXRvci5zZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pbyIsInZlcnNpb24iOiJ2MWFscGhhMSJ9XX0sImRlc2NyaXB0aW9uIjoiVGhlIFJlZCBIYXQgT3BlblNoaWZ0IFNlcnZlcmxlc3Mgb3BlcmF0b3IgcHJvdmlkZXMgYSBjb2xsZWN0aW9uIG9mIEFQSXMgdGhhdFxuZW5hYmxlcyBjb250YWluZXJzLCBtaWNyb3NlcnZpY2VzIGFuZCBmdW5jdGlvbnMgdG8gcnVuIFwic2VydmVybGVzc1wiLlxuU2VydmVybGVzcyBhcHBsaWNhdGlvbnMgY2FuIHNjYWxlIHVwIGFuZCBkb3duICh0byB6ZXJvKSBvbiBkZW1hbmQgYW5kIGJlIHRyaWdnZXJlZCBieSBhXG5udW1iZXIgb2YgZXZlbnQgc291cmNlcy4gT3BlblNoaWZ0IFNlcnZlcmxlc3MgaW50ZWdyYXRlcyB3aXRoIGEgbnVtYmVyIG9mXG5wbGF0Zm9ybSBzZXJ2aWNlcywgc3VjaCBhcyBNb25pdG9yaW5nIGFuZCBpdCBpcyBiYXNlZCBvbiB0aGUgb3Blblxuc291cmNlIHByb2plY3QgS25hdGl2ZS5cblxuIyBQcmVyZXF1aXNpdGVzXG5LbmF0aXZlIFNlcnZpbmcgKGFuZCBLbmF0aXZlIEV2ZW50aW5nIHJlc3BlY3RpdmVseSkgY2FuIG9ubHkgYmUgaW5zdGFsbGVkIGludG8gdGhlXG5ga25hdGl2ZS1zZXJ2aW5nYCAoYGtuYXRpdmUtZXZlbnRpbmdgKSBuYW1lc3BhY2UuIFRoZXNlIG5hbWVzcGFjZXMgd2lsbCBiZVxuYXV0b21hdGljYWxseSBjcmVhdGVkIHdoZW4gaW5zdGFsbGluZyB0aGUgb3BlcmF0b3IuXG5cblRoZSBjb21wb25lbnRzIHByb3ZpZGVkIHdpdGggdGhlIE9wZW5TaGlmdCBTZXJ2ZXJsZXNzIG9wZXJhdG9yIHJlcXVpcmUgbWluaW11bSBjbHVzdGVyIHNpemVzIG9uXG5PcGVuU2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkb2N1bWVudGF0aW9uIG9uIFtHZXR0aW5nIHN0YXJ0ZWRcbndpdGggT3BlblNoaWZ0IFNlcnZlcmxlc3NdKGh0dHBzOi8vZG9jcy5yZWRoYXQuY29tL2VuL2RvY3VtZW50YXRpb24vcmVkX2hhdF9vcGVuc2hpZnRfc2VydmVybGVzcy8xLjM2L2h0bWwvc2VydmluZy9nZXR0aW5nLXN0YXJ0ZWQtd2l0aC1rbmF0aXZlLXNlcnZpbmcjc2VydmVybGVzcy1hcHBsaWNhdGlvbnMpLlxuXG4jIFN1cHBvcnRlZCBGZWF0dXJlc1xuLSAqKkVhc3kgdG8gZ2V0IHN0YXJ0ZWQ6KiogUHJvdmlkZXMgYSBzaW1wbGlmaWVkIGRldmVsb3BlciBleHBlcmllbmNlIHRvIGRlcGxveVxuICBhbmQgcnVuIGNsb3VkIG5hdGl2ZSBhcHBsaWNhdGlvbnMgb24gS3ViZXJuZXRlcywgcHJvdmlkaW5nIHBvd2VyZnVsXG4gIGFic3RyYWN0aW9ucy5cbi0gKipJbW11dGFibGUgUmV2aXNpb25zOioqIERlcGxveSBuZXcgZmVhdHVyZXMgcGVyZm9ybWluZyBjYW5hcnksIEEvQiBvclxuICBibHVlLWdyZWVuIHRlc3Rpbmcgd2l0aCBncmFkdWFsIHRyYWZmaWMgcm9sbG91dCBmb2xsb3dpbmcgYmVzdCBwcmFjdGljZXMuXG4tICoqVXNlIGFueSBwcm9ncmFtbWluZyBsYW5ndWFnZSBvciBydW50aW1lIG9mIGNob2ljZToqKiBGcm9tIEphdmEsIFB5dGhvbiwgR29cbiAgYW5kIEphdmFTY3JpcHQgdG8gUXVhcmt1cywgU3ByaW5nQm9vdCBvciBOb2RlLmpzLlxuLSAqKkF1dG9tYXRpYyBzY2FsaW5nOioqIFJlbW92ZXMgdGhlIHJlcXVpcmVtZW50IHRvIGNvbmZpZ3VyZSBudW1iZXJzIG9mIHJlcGxpY2FzXG4gIG9yIGlkbGluZyBiZWhhdmlvci4gQXBwbGljYXRpb25zIGF1dG9tYXRpY2FsbHkgc2NhbGUgdG8gemVybyB3aGVuIG5vdCBpbiB1c2UsXG4gIG9yIHNjYWxlIHVwIHRvIG1lZXQgZGVtYW5kLCB3aXRoIGJ1aWx0IGluIHJlbGlhYmlsaXR5IGFuZCBmYXVsdCB0b2xlcmFuY2UuXG4tICoqRXZlbnQgRHJpdmVuIEFwcGxpY2F0aW9uczoqKiBZb3UgY2FuIGJ1aWxkIGxvb3NlbHkgY291cGxlZCwgZGlzdHJpYnV0ZWQgYXBwbGljYXRpb25zXG4gIHRoYXQgY2FuIGJlIGNvbm5lY3RlZCB0byBhIHZhcmlldHkgb2YgZWl0aGVyIGJ1aWx0IGluIG9yIHRoaXJkIHBhcnR5IGV2ZW50IHNvdXJjZXMsXG4gIHBvd2VyZWQgYnkgb3BlcmF0b3JzLlxuLSAqKlJlYWR5IGZvciB0aGUgaHlicmlkIGNsb3VkOioqIFByb3ZpZGVzIHRydWUsIHBvcnRhYmxlIHNlcnZlcmxlc3MgZnVuY3Rpb25hbGl0eSxcbiAgdGhhdCBjYW4gcnVuIGFueXdoZXJlIE9wZW5TaGlmdCBDb250YWluZXIgUGxhdGZvcm0gcnVucy4gWW91IGNhbiBsZXZlcmFnZSBkYXRhXG4gIGxvY2FsaXR5IGFuZCBTYWFTIGFzIHlvdSBuZWVkIGl0LlxuXG4jIENvbXBvbmVudHMgXHUwMDI2IEFQSXNcblRoaXMgb3BlcmF0b3IgcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOlxuXG4jIyBLbmF0aXZlIFNlcnZpbmdcbktuYXRpdmUgU2VydmluZyBidWlsZHMgb24gS3ViZXJuZXRlcyB0byBzdXBwb3J0IGRlcGxveWluZyBhbmQgc2VydmluZyBvZiBhcHBsaWNhdGlvbnMgYW5kIGZ1bmN0aW9ucyBhcyBzZXJ2ZXJsZXNzIGNvbnRhaW5lcnMuXG5TZXJ2aW5nIHNpbXBsaWZpZXMgdGhlIGFwcGxpY2F0aW9uIGRlcGxveW1lbnQsIGR5bmFtaWNhbGx5IHNjYWxlcyBiYXNlZCBvbiBpbiBpbmNvbWluZyB0cmFmZmljIGFuZCBzdXBwb3J0cyBjdXN0b20gcm9sbG91dCBzdHJhdGVnaWVzIHdpdGggdHJhZmZpYyBzcGxpdHRpbmcuXG5PdGhlciBmZWF0dXJlcyBpbmNsdWRlOlxuLSBTaW1wbGlmaWVkIGRlcGxveW1lbnQgb2Ygc2VydmVybGVzcyBjb250YWluZXJzXG4tIFRyYWZmaWMtYmFzZWQgYXV0by1zY2FsaW5nLCBpbmNsdWRpbmcgc2NhbGUtdG8temVyb1xuLSBSb3V0aW5nIGFuZCBuZXR3b3JrIHByb2dyYW1taW5nXG4tIFBvaW50LWluLXRpbWUgYXBwbGljYXRpb24gc25hcHNob3RzIGFuZCB0aGVpciBjb25maWd1cmF0aW9uc1xuXG4jIyBLbmF0aXZlIEV2ZW50aW5nXG5LbmF0aXZlIEV2ZW50aW5nIHByb3ZpZGVzIGEgcGxhdGZvcm0gdGhhdCBvZmZlcnMgY29tcG9zYWJsZSBwcmltaXRpdmVzIHRvIGVuYWJsZSBsYXRlLWJpbmRpbmcgZXZlbnQgc291cmNlcyBhbmRcbmV2ZW50IGNvbnN1bWVycy5cbktuYXRpdmUgRXZlbnRpbmcgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBhcmNoaXRlY3R1cmFsIGNsb3VkLW5hdGl2ZSBjb25jZXB0czpcblxuLSBTZXJ2aWNlcyBhcmUgbG9vc2VseSBjb3VwbGVkIGR1cmluZyBkZXZlbG9wbWVudCBhbmQgZGVwbG95ZWQgaW5kZXBlbmRlbnRseSB0byBwcm9kdWN0aW9uXG4tIEEgcHJvZHVjZXIgY2FuIGdlbmVyYXRlIGV2ZW50cyBiZWZvcmUgYSBjb25zdW1lciBpcyBsaXN0ZW5pbmcsIGFuZCBhIGNvbnN1bWVyIGNhbiBleHByZXNzIGFuIGludGVyZXN0IGluIGFuIGV2ZW50IG9yIGNsYXNzIG9mIGV2ZW50cyB0aGF0IGFyZSBub3QgeWV0IGJlaW5nIHByb2R1Y2VkLlxuLSBTZXJ2aWNlcyBjYW4gYmUgY29ubmVjdGVkIHRvIGNyZWF0ZSBuZXcgYXBwbGljYXRpb25zIHdpdGhvdXQgbW9kaWZ5aW5nIHByb2R1Y2VyIG9yIGNvbnN1bWVyLCBhbmQgd2l0aCB0aGUgYWJpbGl0eSB0byBzZWxlY3QgYSBzcGVjaWZpYyBzdWJzZXQgb2YgZXZlbnRzIGZyb20gYSBwYXJ0aWN1bGFyIHByb2R1Y2VyLlxuXG4jIyBLbmF0aXZlIEZ1bmN0aW9uc1xuS25hdGl2ZSBGdW5jdGlvbnMgYWxsb3dzIGRldmVsb3BlcnMgdG8gd3JpdGUgZnVuY3Rpb25zIHRoYXQgbGV0IHRoZW0gZm9jdXMgb24gYnVzaW5lc3MgbG9naWMuXG5UaGVzZSBmdW5jdGlvbnMgYXJlIGRlcGxveWVkIGFzIEtuYXRpdmUgU2VydmljZXMgYW5kIHRha2UgYWR2YW50YWdlIG9mIEtuYXRpdmUgU2VydmluZyBhbmQgRXZlbnRpbmcuXG5LbmF0aXZlIEZ1bmN0aW9ucyBicmluZyBncmVhdGVyIGVmZmljaWVuY3ksIG1vcmUgc2NhbGFiaWxpdHkgYW5kIGZhc3RlciBkZXZlbG9wbWVudCB0byBmYWNpbGl0YXRlIHJhcGlkIGdvLXRvLW1hcmtldC5cblxuT3RoZXIgZmVhdHVyZXMgaW5jbHVkZTpcbi0gQnVpbGRwYWNrc1xuLSBNdWx0aXBsZSBydW50aW1lcywgaW5jbHVkaW5nIE5vZGUuanMsIFF1YXJrdXMgYW5kIEdvXG4tIExvY2FsIGRldmVsb3BlciBleHBlcmllbmNlIHRocm91Z2ggdGhlIGtuIENMSVxuLSBQcm9qZWN0IHRlbXBsYXRlc1xuLSBTdXBwb3J0IGZvciByZWNlaXZpbmcgQ2xvdWRFdmVudHMgYW5kIHBsYWluIEhUVFAgcmVxdWVzdHNcblxuIyMgS25hdGl2ZSBDTEkgYGtuYFxuVGhlIEtuYXRpdmUgY2xpZW50IGBrbmAgYWxsb3dzIHlvdSB0byBjcmVhdGUgS25hdGl2ZSByZXNvdXJjZXMgZnJvbSB0aGUgY29tbWFuZCBsaW5lIG9yIGZyb20gd2l0aGluXG5TaGVsbCBzY3JpcHRzLlxuV2l0aCBpdHMgZXh0ZW5zaXZlIGhlbHAgcGFnZXMgYW5kIGF1dG9jb21wbGV0aW9uIHN1cHBvcnQsIGl0IGZyZWVzIHlvdSBmcm9tIG1lbW9yaXppbmcgdGhlIGRldGFpbGVkIHN0cnVjdHVyZSBvZiB0aGUgS25hdGl2ZSByZXNvdXJjZSBzY2hlbWFzLlxuXG5ga25gIG9mZmVycyB5b3U6XG4tIEZ1bGwgc3VwcG9ydCBmb3IgbWFuYWdpbmcgYWxsIGZlYXR1cmVzIG9mIEtuYXRpdmUgU2VydmluZzogU2VydmljZXMsIFJldmlzaW9ucyBhbmQgUm91dGVzXG4tIFN1cHBvcnQgZm9yIG1hbmFnaW5nIEtuYXRpdmUgRXZlbnRpbmcgZW50aXRpZXM6IFNvdXJjZXMsIEJyb2tlcnMsIFRyaWdnZXJzLCBDaGFubmVscyBhbmQgU3Vic2NyaXB0aW9uc1xuLSBBIGt1YmVjdGwtbGlrZSBwbHVnaW4gYXJjaGl0ZWN0dXJlIHRvIGV4dGVuZCB0aGUgYnVpbHQtaW4gZnVuY3Rpb25hbGl0eVxuLSBFYXN5IGludGVncmF0aW9uIG9mIEtuYXRpdmUgaW50byBUZWt0b24gcGlwZWxpbmVzIGJ5IHVzaW5nIGBrbmAgaW4gYSBUZWt0b24gdGFza1xuLSBDcmVhdGUsIGJ1aWxkIGFuZCBkZXBsb3kgS25hdGl2ZSBGdW5jdGlvbnMgZm9yIG11bHRpcGxlIHJ1bnRpbWVzLCBpbmNsdWRpbmcgTm9kZS5qcywgUXVhcmt1cywgYW5kIEdvXG5cbiMgRnVydGhlciBJbmZvcm1hdGlvblxuRm9yIGRvY3VtZW50YXRpb24gb24gT3BlblNoaWZ0IFNlcnZlcmxlc3MsIHNlZTpcbi0gW0luc3RhbGxhdGlvblxuR3VpZGVdKGh0dHBzOi8vZG9jcy5yZWRoYXQuY29tL2VuL2RvY3VtZW50YXRpb24vcmVkX2hhdF9vcGVuc2hpZnRfc2VydmVybGVzcy8xLjM2L2h0bWwvaW5zdGFsbGluZ19vcGVuc2hpZnRfc2VydmVybGVzcy9pbmRleClcbi0gW0RldmVsb3AgU2VydmVybGVzcyBBcHBsaWNhdGlvbnNdKGh0dHBzOi8vZG9jcy5yZWRoYXQuY29tL2VuL2RvY3VtZW50YXRpb24vcmVkX2hhdF9vcGVuc2hpZnRfc2VydmVybGVzcy8xLjM2L2h0bWwvc2VydmluZy9nZXR0aW5nLXN0YXJ0ZWQtd2l0aC1rbmF0aXZlLXNlcnZpbmcjc2VydmVybGVzcy1hcHBsaWNhdGlvbnMpIiwiZGlzcGxheU5hbWUiOiJSZWQgSGF0IE9wZW5TaGlmdCBTZXJ2ZXJsZXNzIiwiaWNvbiI6W3siYmFzZTY0ZGF0YSI6IlBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXpPQ0lnYUdWcFoyaDBQU0l6T0NJZ2RtbGxkMEp2ZUQwaU1DQXdJRE00SURNNElqNDhaR1ZtY3o0OGMzUjViR1UrTG1GN1ptbHNiRG9qWm1abU8zMHVZbnRtYVd4c09pTmxNREE3ZlR3dmMzUjViR1UrUEM5a1pXWnpQanh3WVhSb0lHTnNZWE56UFNKaElpQmtQU0pOTWpnc01VZ3hNR0U1TERrc01Dd3dMREF0T1N3NVZqSTRZVGtzT1N3d0xEQXNNQ3c1TERsSU1qaGhPU3c1TERBc01Dd3dMRGt0T1ZZeE1HRTVMRGtzTUN3d0xEQXRPUzA1V2lJdlBqeHdZWFJvSUdROUlrMHlPQ3d5TGpJMVFUY3VOelU0Tnl3M0xqYzFPRGNzTUN3d0xERXNNelV1TnpVc01UQldNamhCTnk0M05UZzNMRGN1TnpVNE55d3dMREFzTVN3eU9Dd3pOUzQzTlVneE1FRTNMamMxT0Rjc055NDNOVGczTERBc01Dd3hMREl1TWpVc01qaFdNVEJCTnk0M05UZzNMRGN1TnpVNE55d3dMREFzTVN3eE1Dd3lMakkxU0RJNFRUSTRMREZJTVRCaE9TdzVMREFzTUN3d0xUa3NPVll5T0dFNUxEa3NNQ3d3TERBc09TdzVTREk0WVRrc09Td3dMREFzTUN3NUxUbFdNVEJoT1N3NUxEQXNNQ3d3TFRrdE9Wb2lMejQ4Y0dGMGFDQmpiR0Z6Y3owaVlpSWdaRDBpVFRFMExESXpMalEzTmpaSU1UQmhMall5TlRNdU5qSTFNeXd3TERBc01TMHVOakkxTFM0Mk1qVjJMVFJoTGpZeU5USXVOakkxTWl3d0xEQXNNU3d1TmpJMUxTNDJNalZvTkdFdU5qSTFNaTQyTWpVeUxEQXNNQ3d4TEM0Mk1qVXVOakkxZGpSQkxqWXlOVE11TmpJMU15d3dMREFzTVN3eE5Dd3lNeTQwTnpZMldtMHRNeTR6TnpVdE1TNHlOV2d5TGpjMWRpMHlMamMxYUMweUxqYzFXaUl2UGp4d1lYUm9JR05zWVhOelBTSmlJaUJrUFNKTk1qRXNNak11TkRjMk5rZ3hOMkV1TmpJMU15NDJNalV6TERBc01Dd3hMUzQyTWpVdExqWXlOWFl0TkdFdU5qSTFNaTQyTWpVeUxEQXNNQ3d4TEM0Mk1qVXRMall5TldnMFlTNDJNalV5TGpZeU5USXNNQ3d3TERFc0xqWXlOUzQyTWpWMk5FRXVOakkxTXk0Mk1qVXpMREFzTUN3eExESXhMREl6TGpRM05qWmFiUzB6TGpNM05TMHhMakkxYURJdU56VjJMVEl1TnpWb0xUSXVOelZhSWk4K1BIQmhkR2dnWTJ4aGMzTTlJbUlpSUdROUlrMHhOeTQxTERFMkxqUTNOalpvTFRSaExqWXlOVE11TmpJMU15d3dMREFzTVMwdU5qSTFMUzQyTWpWMkxUUmhMall5TlRJdU5qSTFNaXd3TERBc01Td3VOakkxTFM0Mk1qVm9OR0V1TmpJMU1pNDJNalV5TERBc01Dd3hMQzQyTWpVdU5qSTFkalJCTGpZeU5UTXVOakkxTXl3d0xEQXNNU3d4Tnk0MUxERTJMalEzTmpaYWJTMHpMak0zTlMweExqSTFhREl1TnpWMkxUSXVOelZvTFRJdU56VmFJaTgrUEhCaGRHZ2dZMnhoYzNNOUltSWlJR1E5SWsweU5DNDFMREUyTGpRM05qWm9MVFJoTGpZeU5UTXVOakkxTXl3d0xEQXNNUzB1TmpJMUxTNDJNalYyTFRSaExqWXlOVEl1TmpJMU1pd3dMREFzTVN3dU5qSTFMUzQyTWpWb05HRXVOakkxTWk0Mk1qVXlMREFzTUN3eExDNDJNalV1TmpJMWRqUkJMall5TlRNdU5qSTFNeXd3TERBc01Td3lOQzQxTERFMkxqUTNOalphYlMwekxqTTNOUzB4TGpJMWFESXVOelYyTFRJdU56Vm9MVEl1TnpWYUlpOCtQSEJoZEdnZ1kyeGhjM005SW1JaUlHUTlJazB5T0N3eU15NDBOelkyU0RJMFlTNDJNalV6TGpZeU5UTXNNQ3d3TERFdExqWXlOUzB1TmpJMWRpMDBZUzQyTWpVeUxqWXlOVElzTUN3d0xERXNMall5TlMwdU5qSTFhRFJoTGpZeU5USXVOakkxTWl3d0xEQXNNU3d1TmpJMUxqWXlOWFkwUVM0Mk1qVXpMall5TlRNc01Dd3dMREVzTWpnc01qTXVORGMyTmxwdExUTXVNemMxTFRFdU1qVm9NaTQzTlhZdE1pNDNOV2d0TWk0M05Wb2lMejQ4Y0dGMGFDQmtQU0pOTWprc01qWXVORGMyTmtnNVlTNDJNalV1TmpJMUxEQXNNQ3d4TERBdE1TNHlOVWd5T1dFdU5qSTFMall5TlN3d0xEQXNNU3d3TERFdU1qVmFJaTgrUEM5emRtYysiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbInNvdXJjZXMua25hdGl2ZS5kZXYiXSwicmVzb3VyY2VzIjpbImthZmthc291cmNlcyIsImthZmthc2lua3MiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyIsImV2ZW50cyIsIm5hbWVzcGFjZXMiLCJzZXJ2aWNlYWNjb3VudHMiLCJzZXJ2aWNlcyIsInNlY3JldHMiLCJlbmRwb2ludHMiLCJwb2RzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJhcHBzIl0sInJlc291cmNlcyI6WyJkZXBsb3ltZW50cyIsImRlcGxveW1lbnRzL2ZpbmFsaXplcnMiLCJzdGF0ZWZ1bHNldHMiLCJzdGF0ZWZ1bHNldHMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiYXV0b3NjYWxpbmciXSwicmVzb3VyY2VzIjpbImhvcml6b250YWxwb2RhdXRvc2NhbGVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0Il19LHsiYXBpR3JvdXBzIjpbImJhdGNoIl0sInJlc291cmNlcyI6WyJqb2JzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ3YXRjaCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJwb2xpY3kiXSwicmVzb3VyY2VzIjpbInBvZGRpc3J1cHRpb25idWRnZXRzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsicmJhYy5hdXRob3JpemF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnJvbGVzIiwicm9sZXMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIiwiZXNjYWxhdGUiLCJiaW5kIl19LHsiYXBpR3JvdXBzIjpbInJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJyb2xlYmluZGluZ3MiLCJyb2xlYmluZGluZ3MiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImFkbWlzc2lvbnJlZ2lzdHJhdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbIm11dGF0aW5nd2ViaG9va2NvbmZpZ3VyYXRpb25zIiwidmFsaWRhdGluZ3dlYmhvb2tjb25maWd1cmF0aW9ucyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsibmV0d29ya2luZy5rOHMuaW8iXSwicmVzb3VyY2VzIjpbIm5ldHdvcmtwb2xpY2llcyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiYXBpZXh0ZW5zaW9ucy5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMiLCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zL3N0YXR1cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY2FjaGluZy5pbnRlcm5hbC5rbmF0aXZlLmRldiJdLCJyZXNvdXJjZXMiOlsiaW1hZ2VzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsibW9uaXRvcmluZy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJzZXJ2aWNlbW9uaXRvcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvbnNvbGUub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb25zb2xlcXVpY2tzdGFydHMiLCJjb25zb2xlY2xpZG93bmxvYWRzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVyb3BlcmF0b3JzIiwiY2x1c3Rlcm9wZXJhdG9ycy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0Iiwid2F0Y2giLCJsaXN0Il19LHsiYXBpR3JvdXBzIjpbInJvdXRlLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsicm91dGVzIiwicm91dGVzL2N1c3RvbS1ob3N0Il0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9yLmtuYXRpdmUuZGV2Il0sInJlc291cmNlcyI6WyJrbmF0aXZlc2VydmluZ3MiLCJrbmF0aXZlc2VydmluZ3Mvc3RhdHVzIiwia25hdGl2ZXNlcnZpbmdzL2ZpbmFsaXplcnMiLCJrbmF0aXZlZXZlbnRpbmdzIiwia25hdGl2ZWV2ZW50aW5ncy9zdGF0dXMiLCJrbmF0aXZlZXZlbnRpbmdzL2ZpbmFsaXplcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIiwicGF0Y2giXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3Iuc2VydmVybGVzcy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImtuYXRpdmVrYWZrYXMiLCJrbmF0aXZla2Fma2FzL3N0YXR1cyIsImtuYXRpdmVrYWZrYXMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJpbmdyZXNzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNlcnQtbWFuYWdlci5pbyJdLCJyZXNvdXJjZXMiOlsiY2VydGlmaWNhdGVzIiwiaXNzdWVycyIsImNsdXN0ZXJpc3N1ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsInVwZGF0ZSIsImxpc3QiLCJnZXQiLCJ3YXRjaCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImtuYXRpdmUtb3BlbnNoaWZ0In0seyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyIsIm5hbWVzcGFjZXMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImFwcHMiXSwicmVzb3VyY2VzIjpbImRlcGxveW1lbnRzIiwiZGVwbG95bWVudHMvZmluYWxpemVycyIsInN0YXRlZnVsc2V0cyIsInN0YXRlZnVsc2V0cy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJhdXRvc2NhbGluZyJdLCJyZXNvdXJjZXMiOlsiaG9yaXpvbnRhbHBvZGF1dG9zY2FsZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsiYmF0Y2giXSwicmVzb3VyY2VzIjpbImpvYnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsIndhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbInBvbGljeSJdLCJyZXNvdXJjZXMiOlsicG9kZGlzcnVwdGlvbmJ1ZGdldHMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJyYmFjLmF1dGhvcml6YXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVycm9sZXMiLCJyb2xlcyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giLCJlc2NhbGF0ZSIsImJpbmQiXX0seyJhcGlHcm91cHMiOlsicmJhYy5hdXRob3JpemF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnJvbGViaW5kaW5ncyIsInJvbGViaW5kaW5ncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiYWRtaXNzaW9ucmVnaXN0cmF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsibXV0YXRpbmd3ZWJob29rY29uZmlndXJhdGlvbnMiLCJ2YWxpZGF0aW5nd2ViaG9va2NvbmZpZ3VyYXRpb25zIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJuZXR3b3JraW5nLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsibmV0d29ya3BvbGljaWVzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJhcGlleHRlbnNpb25zLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsiY3VzdG9tcmVzb3VyY2VkZWZpbml0aW9ucyIsImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMvc3RhdHVzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjYWNoaW5nLmludGVybmFsLmtuYXRpdmUuZGV2Il0sInJlc291cmNlcyI6WyJpbWFnZXMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJtb25pdG9yaW5nLmNvcmVvcy5jb20iXSwicmVzb3VyY2VzIjpbInNlcnZpY2Vtb25pdG9ycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29uc29sZS5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvbnNvbGVxdWlja3N0YXJ0cyIsImNvbnNvbGVjbGlkb3dubG9hZHMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJvcGVyYXRvcnMiLCJjbHVzdGVyb3BlcmF0b3JzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ3YXRjaCIsImxpc3QiXX0seyJhcGlHcm91cHMiOlsicm91dGUub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJyb3V0ZXMiLCJyb3V0ZXMvY3VzdG9tLWhvc3QiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvb3JkaW5hdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImxlYXNlcyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3Iua25hdGl2ZS5kZXYiXSwicmVzb3VyY2VzIjpbImtuYXRpdmVzZXJ2aW5ncyIsImtuYXRpdmVzZXJ2aW5ncy9zdGF0dXMiLCJrbmF0aXZlc2VydmluZ3MvZmluYWxpemVycyIsImtuYXRpdmVldmVudGluZ3MiLCJrbmF0aXZlZXZlbnRpbmdzL3N0YXR1cyIsImtuYXRpdmVldmVudGluZ3MvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJvcGVyYXRvci5zZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsia25hdGl2ZWthZmthcyIsImtuYXRpdmVrYWZrYXMvc3RhdHVzIiwia25hdGl2ZWthZmthcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImluZ3Jlc3NlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY2VydC1tYW5hZ2VyLmlvIl0sInJlc291cmNlcyI6WyJjZXJ0aWZpY2F0ZXMiLCJpc3N1ZXJzIiwiY2x1c3Rlcmlzc3VlcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwidXBkYXRlIiwibGlzdCIsImdldCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIm5ldHdvcmtpbmcuaW50ZXJuYWwua25hdGl2ZS5kZXYiXSwicmVzb3VyY2VzIjpbImNlcnRpZmljYXRlcyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJ1cGRhdGUiLCJnZXQiLCJsaXN0Iiwid2F0Y2giXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIn0seyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJuZXR3b3JraW5nLmludGVybmFsLmtuYXRpdmUuZGV2Il0sInJlc291cmNlcyI6WyJpbmdyZXNzZXMiLCJpbmdyZXNzZXMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJyb3V0ZS5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbInJvdXRlcyIsInJvdXRlcy9jdXN0b20taG9zdCJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIn1dLCJkZXBsb3ltZW50cyI6W3sibmFtZSI6ImtuYXRpdmUtb3BlcmF0b3Itd2ViaG9vayIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIiwic2VydmVybGVzcy5vcGVuc2hpZnQuaW8vaXMiOiJ3ZWJob29rIn19LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJsYWJlbHMiOnsibmFtZSI6ImtuYXRpdmUtb3BlcmF0b3IiLCJzZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pby9pcyI6IndlYmhvb2siLCJzaWRlY2FyLmlzdGlvLmlvL2luamVjdCI6ImZhbHNlIn19LCJzcGVjIjp7ImNvbnRhaW5lcnMiOlt7ImVudiI6W3sibmFtZSI6IlBPRF9OQU1FIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLm5hbWUifX19LHsibmFtZSI6Ik9QRVJBVE9SX05BTUUiLCJ2YWx1ZSI6ImtuYXRpdmUtb3BlcmF0b3IifSx7Im5hbWUiOiJTWVNURU1fTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLm5hbWVzcGFjZSJ9fX0seyJuYW1lIjoiTUVUUklDU19ET01BSU4iLCJ2YWx1ZSI6ImtuYXRpdmUuZGV2L3NlcnZpbmctb3BlcmF0b3IifSx7Im5hbWUiOiJSRVFVSVJFRF9TRVJWSU5HX05BTUVTUEFDRSIsInZhbHVlIjoia25hdGl2ZS1zZXJ2aW5nIn0seyJuYW1lIjoiUkVRVUlSRURfU0VSVklOR19JTkdSRVNTX05BTUVTUEFDRSIsInZhbHVlIjoia25hdGl2ZS1zZXJ2aW5nLWluZ3Jlc3MifSx7Im5hbWUiOiJSRVFVSVJFRF9FVkVOVElOR19OQU1FU1BBQ0UiLCJ2YWx1ZSI6ImtuYXRpdmUtZXZlbnRpbmcifSx7Im5hbWUiOiJTRVJWSUNFX01PTklUT1JfUkJBQ19NQU5JRkVTVF9QQVRIIiwidmFsdWUiOiIvdmFyL3J1bi9rby9tb25pdG9yaW5nL3JiYWMtcHJveHkueWFtbCJ9LHsibmFtZSI6IldFQkhPT0tfTkFNRSIsInZhbHVlIjoia25hdGl2ZS1vcGVyYXRvci1zZXJ2aWNlIn0seyJuYW1lIjoiVVNFX09MTV9UTFMiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJLVUJFUk5FVEVTX01JTl9WRVJTSU9OIiwidmFsdWUiOiJ2MS4wLjAifSx7Im5hbWUiOiJJTUFHRV9xdWV1ZS1wcm94eSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tc2VydmluZy1xdWV1ZS1yaGVsOEBzaGEyNTY6MzEzM2MxNzdmY2JmZDRhYmI4OWIyNzNhN2NlMmZiMjIwZTA1MWNlOTU2MTkzYjFkMTQ5YzdhMDQwZmMwN2U4MyJ9LHsibmFtZSI6IklNQUdFX2FjdGl2YXRvciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tc2VydmluZy1hY3RpdmF0b3ItcmhlbDhAc2hhMjU2OjA0MmNlMWU3YmUxMGE1ZjUxZjk0ODdhZjAxOTZjYjI0OWY1ZDhlNjgyMWNlN2MyYWIwNWM1MzJiN2ExODQzOGMifSx7Im5hbWUiOiJJTUFHRV9hdXRvc2NhbGVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLWF1dG9zY2FsZXItcmhlbDhAc2hhMjU2OjBiNjlmYzgzOWY1NjUxYmZmZmNiZjg2MzY2Zjk0ZGEwZWMzZTI5ZTZjMjE3YTI2ZmZjZTdiZDc2ZmJkYTA5MzkifSx7Im5hbWUiOiJJTUFHRV9hdXRvc2NhbGVyLWhwYSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tc2VydmluZy1hdXRvc2NhbGVyLWhwYS1yaGVsOEBzaGEyNTY6NGZhMGNlN2FjMTM1MWFhNGNiZTg1ODQ3MmJmOWY5NTM5NDI5NjFhNTQzMGY4NWJlNTY1NmYyOTUwOGQyNTRkYiJ9LHsibmFtZSI6IklNQUdFX2NvbnRyb2xsZXJfX2NvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctY29udHJvbGxlci1yaGVsOEBzaGEyNTY6NTBhNjJiZjY0MWExMjRkYmEzNzI2MmRhMWU4MmVmMTRlNmI2Y2NiNGM4NTczZmE1MzdjMTlkM2IxYjc3YTYyNyJ9LHsibmFtZSI6IklNQUdFX3dlYmhvb2tfX3dlYmhvb2siLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctd2ViaG9vay1yaGVsOEBzaGEyNTY6ZGU0NWE2MGJjNDVlMWI2N2M2Zjg4ZWIxYzg4NWJkYTEyY2MxMzYzMzZkYzVmYjJlMGI4Y2JmNjNhYTYyYTZiZiJ9LHsibmFtZSI6IklNQUdFX3N0b3JhZ2UtdmVyc2lvbi1taWdyYXRpb24tc2VydmluZy1fX21pZ3JhdGUiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctc3RvcmFnZS12ZXJzaW9uLW1pZ3JhdGlvbi1yaGVsOEBzaGEyNTY6ZmJlNDYyNjk1YjNlNzAzZDQ3MjIyNzdhNjE3YzZlZjA2ZmIzN2MwNzM2NmJhNWM2MjExZGQ1NmI1MDM4YzEzMCJ9LHsibmFtZSI6IklNQUdFX2tvdXJpZXItZ2F0ZXdheSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2aWNlLW1lc2gvcHJveHl2Mi1yaGVsOEBzaGEyNTY6MWMxOWNmODZmZDA1OTQwZWYzZDBkNmU3OWU2ZjM3MWRiOTkzMTUzZjcwYmFlZGI5MTA3YmJlNzNmMjM2ZGMyNCJ9LHsibmFtZSI6IklNQUdFX25ldC1rb3VyaWVyLWNvbnRyb2xsZXJfX2NvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL25ldC1rb3VyaWVyLWtvdXJpZXItcmhlbDhAc2hhMjU2OjkwZTMyMmUzMzA0MjIyMTk5ZWZjOWJmYTI1NDUyNTBkZGUyYjIyNDAzNjY2YzVlMDAzNzJiZGFlYWExOGRkZWUifSx7Im5hbWUiOiJJTUFHRV9uZXQtaXN0aW8tY29udHJvbGxlcl9fY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEvbmV0LWlzdGlvLWNvbnRyb2xsZXItcmhlbDhAc2hhMjU2Ojc2NTVlYzk1ZTU4MjlkM2Q3ODYwMzljYzZjNjkwYzlmYjQ0MmRjODVmMWM4ODQ4MWNmMzRmOWE2ZjE2ODQwMzkifSx7Im5hbWUiOiJJTUFHRV9uZXQtaXN0aW8td2ViaG9va19fd2ViaG9vayIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEvbmV0LWlzdGlvLXdlYmhvb2stcmhlbDhAc2hhMjU2OmZhOGViYjcwYjZmMTUxMGM1NWEwM2JhZWM5OWQzNDk3ZDZhZmI5MzAxNTJmZjM3MzFmZTU3MjExNjc1YWFkYzAifSx7Im5hbWUiOiJJTUFHRV9ldmVudGluZy1jb250cm9sbGVyX19ldmVudGluZy1jb250cm9sbGVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1jb250cm9sbGVyLXJoZWw4QHNoYTI1Njo4MDQzMDFkMzE1YzhkNjk1OGQxMjhmZDU5NTExODQ0MzdmNzU1Njc0ZDhlYzVhNDU4MmQ2MTI4ZTk4OWI5NjZhIn0seyJuYW1lIjoiSU1BR0VfZXZlbnRpbmctaXN0aW8tY29udHJvbGxlcl9fZXZlbnRpbmctaXN0aW8tY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaXN0aW8tY29udHJvbGxlci1yaGVsOEBzaGEyNTY6MjBhZTJkYTFlOGQ4MmQzMTllMjU2YzZjODEyOTllZjg0MmNhMzRkNTdjNjk2NGQ2MWUwMGEyNzVhNDExNTliNCJ9LHsibmFtZSI6IklNQUdFX2V2ZW50aW5nLXdlYmhvb2tfX2V2ZW50aW5nLXdlYmhvb2siLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLXdlYmhvb2stcmhlbDhAc2hhMjU2OmNhOGE2MTkzNDI1ZjRiMjc1MGQ1OGQ2YjFkYTQyMTI0NGFhMDc3YTQ0YTM0YjQxODRlMzViOWQ5NGM5NDMzZmIifSx7Im5hbWUiOiJJTUFHRV9zdG9yYWdlLXZlcnNpb24tbWlncmF0aW9uLWV2ZW50aW5nLV9fbWlncmF0ZSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctbWlncmF0ZS1yaGVsOEBzaGEyNTY6NjRmYjRiMGIxOGY0YjhlOWJkODY0NzBjYTM2ZjJmNDE4NzExMWVkNDRiNmNjZTVkMTZkM2E0MzQ0M2MwMDQ4OSJ9LHsibmFtZSI6IklNQUdFX210LWJyb2tlci1jb250cm9sbGVyX19tdC1icm9rZXItY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctbXRjaGFubmVsLWJyb2tlci1yaGVsOEBzaGEyNTY6ZWRjMTllMzExOTQ3MDUzZGJjZWIyMWQ1MjI1YWQ1MmE0OGY2MWViM2MwNzllMGY5MmY5N2JhMzExYmIxMjFmNyJ9LHsibmFtZSI6IklNQUdFX210LWJyb2tlci1maWx0ZXJfX2ZpbHRlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctZmlsdGVyLXJoZWw4QHNoYTI1Njo2MDVmOGFiNDhlNzYxZjg4ZGU0M2I0YWFjNDM5ZDY1NzZmZWQ0NmQ2ZDk2NTlhN2NiN2QwYzNkMmQ4N2NhNTVhIn0seyJuYW1lIjoiSU1BR0VfbXQtYnJva2VyLWluZ3Jlc3NfX2luZ3Jlc3MiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWluZ3Jlc3MtcmhlbDhAc2hhMjU2OjYyNTQ4ZTk0ZWNmNTJjZDUwYjNkZjdmYzJjYjI3NWNlMzFmMTgwMzdjZDI4M2I5MGI3OTg3ZWI4ZjM4ZjFkYzYifSx7Im5hbWUiOiJJTUFHRV9pbWMtY29udHJvbGxlcl9fY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctY2hhbm5lbC1jb250cm9sbGVyLXJoZWw4QHNoYTI1NjpkYzVlMTgwNzQ5MTNjZWUwNDVmZWI1YjEzMTg5MDhiNzE2NmVhNzM1YjMzMjIzZWNjODk0M2EwOWQwODUzZDQzIn0seyJuYW1lIjoiSU1BR0VfaW1jLWRpc3BhdGNoZXJfX2Rpc3BhdGNoZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWNoYW5uZWwtZGlzcGF0Y2hlci1yaGVsOEBzaGEyNTY6NTNhNmE1ZGZiMzlmODMzODliMTAzODk0ODhmNGQ3YWJhNmE1MzQyZjQxMWZmN2VmYTQxYmFiMzBkODlkOTY0NiJ9LHsibmFtZSI6IklNQUdFX3Bpbmdzb3VyY2UtbXQtYWRhcHRlcl9fZGlzcGF0Y2hlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctbXRwaW5nLXJoZWw4QHNoYTI1Njo0ZTYzM2Y2OGEzYzM2ZjFkOTllZjkxNGExYTcyOTZhZWI2ZmU1NWQ5NjlmZDQ4ZGU5MTZhMjcyYjU5NzFjN2U2In0seyJuYW1lIjoiSU1BR0Vfam9iLXNpbmtfX2pvYi1zaW5rIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1qb2JzaW5rLXJoZWw4QHNoYTI1NjpjZmRiZDY4Yjc4ZTk0NzU5MGU2MzNiNjY4MGQ3Yjg1Y2ZkMzk0ZWE0MjI4N2QzZGZjODFiNzgyM2EzYWI2NmJkIn0seyJuYW1lIjoiSU1BR0VfQVBJU0VSVkVSX1JBX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1hcGlzZXJ2ZXItcmVjZWl2ZS1hZGFwdGVyLXJoZWw4QHNoYTI1NjpjOTA2Y2Q0YTFjNDIzODljN2U0YjM4ZGI1Nzg1OGZhYzIyNTBiNjM1N2VmZjBkYTA0OGU4YzZhY2RiOTViYTkzIn0seyJuYW1lIjoiSU1BR0VfRElTUEFUQ0hFUl9JTUFHRSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctY2hhbm5lbC1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1Njo1M2E2YTVkZmIzOWY4MzM4OWIxMDM4OTQ4OGY0ZDdhYmE2YTUzNDJmNDExZmY3ZWZhNDFiYWIzMGQ4OWQ5NjQ2In0seyJuYW1lIjoiSU1BR0VfRVZFTlRfVFJBTlNGT1JNX0pTT05BVEFfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy10cmFuc2Zvcm0tanNvbmF0YS1yaGVsOEBzaGEyNTY6MGI2MThjOWM4OTI0MjhhNTllMDQ5OWEzZWQwZWJlZmEyYzA5ODE2OTk4MTc0MzMxNTliZmNhZjY4Mzc0MzU5NyJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9USU1FUl9JTUFHRSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW50ZWdyYXRpb25zLXRpbWVyLXNvdXJjZS1yaGVsOEBzaGEyNTY6OGVjNTFmODA5MTk2Mzg0ZjliODNlZjU3ODliMTJiNjM1ODc3MmE3NjFhNzA1NTEyOWRhNTcyMjU0MzgxZWVlZiJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfUzNfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3MtczMtc291cmNlLXJoZWw4QHNoYTI1NjplZTM4YjY4ZTk4YmY5YWRiOTQ1NTRmZDRiM2EzYWVjM2I1MzNjYjQwN2RkMGUwYWZjYTdmMzdlMTBkNjU1M2Q5In0seyJuYW1lIjoiSU1BR0VfSU5URUdSQVRJT05fU09VUkNFX0FXU19TUVNfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3Mtc3FzLXNvdXJjZS1yaGVsOEBzaGEyNTY6ODZlNTU5ODZiOTQ5OWUwYTljY2JlZjU5YTJmYjg1ZGUzNjYzZmU4Njg5N2QyNWRiYTU0MTAxZTkxMDFiMWI5MSJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfRERCX1NUUkVBTVNfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3MtZGRiLXN0cmVhbXMtc291cmNlLXJoZWw4QHNoYTI1Njo2YWRhNDZmNjU1ZTEzZGI2ZThmZGVkNGRiN2VjMzA4MTIzY2Y4MzA3YzFlZjE3MWI3ZWI3ZWNhMjY0ZWUyYzI3In0seyJuYW1lIjoiSU1BR0VfSU5URUdSQVRJT05fU0lOS19MT0dfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1sb2ctc2luay1yaGVsOEBzaGEyNTY6ZTBmMGI5ZjdkOGNlZDk3OTE5ODQ0YmI0YzM0MmNlODljNWZmMjJjNmNjNzY0ZDYyZjY4MGQwZjNlYmEzMTliMSJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NJTktfQVdTX1MzX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXMzLXNpbmstcmhlbDhAc2hhMjU2Ojk0ZDU4OTAwY2I2MmQ2NDM3OWYzYjliMjdjZjdmNjkxNzNkNDBiMTE1YjZkODQzYjllODM4MzlhMDA4MGEwYTEifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TSU5LX0FXU19TUVNfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3Mtc3FzLXNpbmstcmhlbDhAc2hhMjU2OmY5NzI1N2YwYWY1MzdmZmVkMWZmNmZkMGJiMGE4ZGI1OGI1YjZhNDQ1NTlkMDEzNmNjNWYxMzRlOGZmMzRmMmEifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TSU5LX0FXU19TTlNfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3Mtc25zLXNpbmstcmhlbDhAc2hhMjU2OjMxYWU2NjdhNDczNzBlMTA3Mzg0ZDEyNTNjN2ZlMGI3MDg0NDNmOWY5OTEyMTBkZWQxNjc1OTFiNGU2OWNlZjUifSx7Im5hbWUiOiJJTUFHRV9ldmVudG1lc2gtYmFja2VuZF9fY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tYmFja3N0YWdlLXBsdWdpbnMtZXZlbnRtZXNoLXJoZWw4QHNoYTI1NjozYmMzNDg2N2Y3YTYyMGJjZGFjZTY3ZTY1YTBmZmI1MWFlYWQ1ZTRhYTFmMTBjZDBlYjc0NzZmZThlZDFhZjEyIn0seyJuYW1lIjoiSU1BR0VfS1VCRV9SQkFDX1BST1hZIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0NC9vc2Uta3ViZS1yYmFjLXByb3h5LXJoZWw5QHNoYTI1Njo2NzY1MWFkZmQ4ZTZjOGQxMmQyYjk1ODVjNzIzZDVmYmRiNjY0ODE4ZjgwMzMxMmJmZTM1MjJlMDRhODFlOWIwIn0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0VWRU5UX1NFTkRFUiIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tcGx1Z2luLWV2ZW50LXNlbmRlci1yaGVsOEBzaGEyNTY6Zjc3OTUwODg3NzdlYTg0ZmM2MTgwYjgxYjYxMzE5NjI5NDRlMzQ5MThlMmMwNjY3MTAzM2ExYTU3MjU4MTc3MyJ9LHsibmFtZSI6IklNQUdFX0tOX0NMSUVOVCIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tY2xpZW50LWtuLXJoZWw4QHNoYTI1Njo3MWFhMDliOThkOTEwMDZiZTJhODFhYzAzM2Y3MmRmNzI1NmE5Mzg5MDIzNjEzMDhiOGViMzZlYTE5ODY5OGMzIn0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfVVRJTCIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tcGx1Z2luLWZ1bmMtZnVuYy11dGlsLXJoZWw4QHNoYTI1Njo1OTgxMTBlOWI5MWMzOThlNmY3ZWE2MjE1YTY5Zjk1NjIzMzc5NjhhMDI0ZGVkOGUwZjE5NzM2YzVmYjUzNDU3In0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfVEVLVE9OX0JVSUxEQUgiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9yaGVsOC9idWlsZGFoQHNoYTI1NjozZDUwNWQ5YzBmNWQ0Y2Q1YTRlYzAzYjhkMDM4NjU2YzZjZGJkZjUxOTFlMDBjZTYzODhmN2UwZTRkMmYxYjc0In0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfTk9ERUpTXzIwX01JTklNQUwiLCJ2YWx1ZSI6InJlZ2lzdHJ5LmFjY2Vzcy5yZWRoYXQuY29tL3ViaTgvbm9kZWpzLTIwLW1pbmltYWxAc2hhMjU2OmEyYTdlMzk5YWFmMDlhNDhjMjhmNDA4MjBkYTE2NzA5YjYyYWVlNmYyYmM3MDMxMTZiOTM0NWZhYjU4MzA4NjEifSx7Im5hbWUiOiJJTUFHRV9LTl9QTFVHSU5fRlVOQ19PUEVOSkRLXzIxIiwidmFsdWUiOiJyZWdpc3RyeS5hY2Nlc3MucmVkaGF0LmNvbS91Ymk4L29wZW5qZGstMjFAc2hhMjU2OjQ0MTg5N2ExZjY5MWM3ZDRiM2E2N2JiM2UwZmVhODNlMTgzNTIyMTQyNjRjYjM4M2ZkMDU3YmJiZDVlZDg2M2MifSx7Im5hbWUiOiJJTUFHRV9LTl9QTFVHSU5fRlVOQ19QWVRIT05fMzkiLCJ2YWx1ZSI6InJlZ2lzdHJ5LmFjY2Vzcy5yZWRoYXQuY29tL3ViaTgvcHl0aG9uLTM5QHNoYTI1NjoyN2U3OTVmZDZiMWI3N2RlNzBkMWRjNzNhNjVlNGM3OTA2NTA3NDhhOWNmZGExMzhmZGJkMTk0YjNkNmVlYTNkIn0seyJuYW1lIjoiQ1VSUkVOVF9WRVJTSU9OIiwidmFsdWUiOiIxLjM2LjEifSx7Im5hbWUiOiJLTkFUSVZFX1NFUlZJTkdfVkVSU0lPTiIsInZhbHVlIjoiMS4xNiJ9LHsibmFtZSI6IktOQVRJVkVfRVZFTlRJTkdfVkVSU0lPTiIsInZhbHVlIjoiMS4xNiJ9LHsibmFtZSI6IktOQVRJVkVfRVZFTlRJTkdfS0FGS0FfQlJPS0VSX1ZFUlNJT04iLCJ2YWx1ZSI6IjEuMTYifV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEvc2VydmVybGVzcy1vcGVuc2hpZnQta24tcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmYxYTEzNzI1NTY3ZGUzNTdkZTQyNDZiODdhMmVkNjRiM2RjZTAyYzc0MDZiODYyMWFkOGQyYmJlYWNjMGNjZmEiLCJpbWFnZVB1bGxQb2xpY3kiOiJBbHdheXMiLCJuYW1lIjoia25hdGl2ZS1vcGVyYXRvciIsInBvcnRzIjpbeyJjb250YWluZXJQb3J0Ijo5MDkwLCJuYW1lIjoibWV0cmljcyJ9LHsiY29udGFpbmVyUG9ydCI6ODQ0MywibmFtZSI6Imh0dHBzLXdlYmhvb2sifV0sInJlYWRpbmVzc1Byb2JlIjp7Imh0dHBHZXQiOnsiaHR0cEhlYWRlcnMiOlt7Im5hbWUiOiJrLWt1YmVsZXQtcHJvYmUiLCJ2YWx1ZSI6IndlYmhvb2sifV0sInBvcnQiOjg0NDMsInNjaGVtZSI6IkhUVFBTIn0sImxpdmVuZXNzUHJvYmUiOnsiZmFpbHVyZVRocmVzaG9sZCI6NiwiaHR0cEdldCI6eyJodHRwSGVhZGVycyI6W3sibmFtZSI6Imsta3ViZWxldC1wcm9iZSIsInZhbHVlIjoid2ViaG9vayJ9XSwicG9ydCI6ODQ0Mywic2NoZW1lIjoiSFRUUFMifSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6MjAsInBlcmlvZFNlY29uZHMiOjF9LCJwZXJpb2RTZWNvbmRzIjoxfSwic2VjdXJpdHlDb250ZXh0Ijp7ImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6ZmFsc2UsImNhcGFiaWxpdGllcyI6eyJkcm9wIjpbIkFMTCJdfSwicmVhZE9ubHlSb290RmlsZXN5c3RlbSI6dHJ1ZSwicnVuQXNOb25Sb290Ijp0cnVlfX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIn19fX0seyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQifX0sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQifX0sInNwZWMiOnsiY29udGFpbmVycyI6W3siZW52IjpbeyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWUiOiIifSx7Im5hbWUiOiJOQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEubmFtZXNwYWNlIn19fSx7Im5hbWUiOiJERVBMT1lNRU5UX05BTUUiLCJ2YWx1ZSI6ImtuYXRpdmUtb3BlbnNoaWZ0In0seyJuYW1lIjoiUE9EX05BTUUiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEubmFtZSJ9fX0seyJuYW1lIjoiT1BFUkFUT1JfTkFNRSIsInZhbHVlIjoia25hdGl2ZS1vcGVuc2hpZnQifSx7Im5hbWUiOiJSRVFVSVJFRF9TRVJWSU5HX05BTUVTUEFDRSIsInZhbHVlIjoia25hdGl2ZS1zZXJ2aW5nIn0seyJuYW1lIjoiUkVRVUlSRURfU0VSVklOR19JTkdSRVNTX05BTUVTUEFDRSIsInZhbHVlIjoia25hdGl2ZS1zZXJ2aW5nLWluZ3Jlc3MifSx7Im5hbWUiOiJSRVFVSVJFRF9FVkVOVElOR19OQU1FU1BBQ0UiLCJ2YWx1ZSI6ImtuYXRpdmUtZXZlbnRpbmcifSx7Im5hbWUiOiJSRVFVSVJFRF9LQUZLQV9OQU1FU1BBQ0UiLCJ2YWx1ZSI6ImtuYXRpdmUtZXZlbnRpbmcifSx7Im5hbWUiOiJLQUZLQUNIQU5ORUxfTUFOSUZFU1RfUEFUSCIsInZhbHVlIjoiZGVwbG95L3Jlc291cmNlcy9rbmF0aXZla2Fma2EvY2hhbm5lbCJ9LHsibmFtZSI6IktBRktBU09VUkNFX01BTklGRVNUX1BBVEgiLCJ2YWx1ZSI6ImRlcGxveS9yZXNvdXJjZXMva25hdGl2ZWthZmthL3NvdXJjZSJ9LHsibmFtZSI6IktBRktBQ09OVFJPTExFUl9NQU5JRkVTVF9QQVRIIiwidmFsdWUiOiJkZXBsb3kvcmVzb3VyY2VzL2tuYXRpdmVrYWZrYS9jb250cm9sbGVyIn0seyJuYW1lIjoiS0FGS0FCUk9LRVJfTUFOSUZFU1RfUEFUSCIsInZhbHVlIjoiZGVwbG95L3Jlc291cmNlcy9rbmF0aXZla2Fma2EvYnJva2VyIn0seyJuYW1lIjoiS0FGS0FTSU5LX01BTklGRVNUX1BBVEgiLCJ2YWx1ZSI6ImRlcGxveS9yZXNvdXJjZXMva25hdGl2ZWthZmthL3NpbmsifSx7Im5hbWUiOiJRVUlDS1NUQVJUX01BTklGRVNUX1BBVEgiLCJ2YWx1ZSI6ImRlcGxveS9yZXNvdXJjZXMvcXVpY2tzdGFydC9zZXJ2ZXJsZXNzLWFwcGxpY2F0aW9uLXF1aWNrc3RhcnQueWFtbCJ9LHsibmFtZSI6IkRBU0hCT0FSRFNfUk9PVF9NQU5JRkVTVF9QQVRIIiwidmFsdWUiOiJkZXBsb3kvcmVzb3VyY2VzL2Rhc2hib2FyZHMifSx7Im5hbWUiOiJTT1VSQ0VTX1VTRV9DTFVTVEVSX01PTklUT1JJTkciLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJTT1VSQ0VTX0dFTkVSQVRFX1NFUlZJQ0VfTU9OSVRPUlMiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJFTkFCTEVfUFBST0YiLCJ2YWx1ZSI6ImZhbHNlIn0seyJuYW1lIjoiS1VCRVJORVRFU19NSU5fVkVSU0lPTiIsInZhbHVlIjoidjEuMC4wIn0seyJuYW1lIjoiSU1BR0VfcXVldWUtcHJveHkiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctcXVldWUtcmhlbDhAc2hhMjU2OjMxMzNjMTc3ZmNiZmQ0YWJiODliMjczYTdjZTJmYjIyMGUwNTFjZTk1NjE5M2IxZDE0OWM3YTA0MGZjMDdlODMifSx7Im5hbWUiOiJJTUFHRV9hY3RpdmF0b3IiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctYWN0aXZhdG9yLXJoZWw4QHNoYTI1NjowNDJjZTFlN2JlMTBhNWY1MWY5NDg3YWYwMTk2Y2IyNDlmNWQ4ZTY4MjFjZTdjMmFiMDVjNTMyYjdhMTg0MzhjIn0seyJuYW1lIjoiSU1BR0VfYXV0b3NjYWxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tc2VydmluZy1hdXRvc2NhbGVyLXJoZWw4QHNoYTI1NjowYjY5ZmM4MzlmNTY1MWJmZmZjYmY4NjM2NmY5NGRhMGVjM2UyOWU2YzIxN2EyNmZmY2U3YmQ3NmZiZGEwOTM5In0seyJuYW1lIjoiSU1BR0VfYXV0b3NjYWxlci1ocGEiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctYXV0b3NjYWxlci1ocGEtcmhlbDhAc2hhMjU2OjRmYTBjZTdhYzEzNTFhYTRjYmU4NTg0NzJiZjlmOTUzOTQyOTYxYTU0MzBmODViZTU2NTZmMjk1MDhkMjU0ZGIifSx7Im5hbWUiOiJJTUFHRV9jb250cm9sbGVyX19jb250cm9sbGVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLWNvbnRyb2xsZXItcmhlbDhAc2hhMjU2OjUwYTYyYmY2NDFhMTI0ZGJhMzcyNjJkYTFlODJlZjE0ZTZiNmNjYjRjODU3M2ZhNTM3YzE5ZDNiMWI3N2E2MjcifSx7Im5hbWUiOiJJTUFHRV93ZWJob29rX193ZWJob29rIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLXdlYmhvb2stcmhlbDhAc2hhMjU2OmRlNDVhNjBiYzQ1ZTFiNjdjNmY4OGViMWM4ODViZGExMmNjMTM2MzM2ZGM1ZmIyZTBiOGNiZjYzYWE2MmE2YmYifSx7Im5hbWUiOiJJTUFHRV9zdG9yYWdlLXZlcnNpb24tbWlncmF0aW9uLXNlcnZpbmctX19taWdyYXRlIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLXN0b3JhZ2UtdmVyc2lvbi1taWdyYXRpb24tcmhlbDhAc2hhMjU2OmZiZTQ2MjY5NWIzZTcwM2Q0NzIyMjc3YTYxN2M2ZWYwNmZiMzdjMDczNjZiYTVjNjIxMWRkNTZiNTAzOGMxMzAifSx7Im5hbWUiOiJJTUFHRV9rb3VyaWVyLWdhdGV3YXkiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmljZS1tZXNoL3Byb3h5djItcmhlbDhAc2hhMjU2OjFjMTljZjg2ZmQwNTk0MGVmM2QwZDZlNzllNmYzNzFkYjk5MzE1M2Y3MGJhZWRiOTEwN2JiZTczZjIzNmRjMjQifSx7Im5hbWUiOiJJTUFHRV9uZXQta291cmllci1jb250cm9sbGVyX19jb250cm9sbGVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9uZXQta291cmllci1rb3VyaWVyLXJoZWw4QHNoYTI1Njo5MGUzMjJlMzMwNDIyMjE5OWVmYzliZmEyNTQ1MjUwZGRlMmIyMjQwMzY2NmM1ZTAwMzcyYmRhZWFhMThkZGVlIn0seyJuYW1lIjoiSU1BR0VfbmV0LWlzdGlvLWNvbnRyb2xsZXJfX2NvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL25ldC1pc3Rpby1jb250cm9sbGVyLXJoZWw4QHNoYTI1Njo3NjU1ZWM5NWU1ODI5ZDNkNzg2MDM5Y2M2YzY5MGM5ZmI0NDJkYzg1ZjFjODg0ODFjZjM0ZjlhNmYxNjg0MDM5In0seyJuYW1lIjoiSU1BR0VfbmV0LWlzdGlvLXdlYmhvb2tfX3dlYmhvb2siLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL25ldC1pc3Rpby13ZWJob29rLXJoZWw4QHNoYTI1NjpmYThlYmI3MGI2ZjE1MTBjNTVhMDNiYWVjOTlkMzQ5N2Q2YWZiOTMwMTUyZmYzNzMxZmU1NzIxMTY3NWFhZGMwIn0seyJuYW1lIjoiSU1BR0VfZXZlbnRpbmctY29udHJvbGxlcl9fZXZlbnRpbmctY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctY29udHJvbGxlci1yaGVsOEBzaGEyNTY6ODA0MzAxZDMxNWM4ZDY5NThkMTI4ZmQ1OTUxMTg0NDM3Zjc1NTY3NGQ4ZWM1YTQ1ODJkNjEyOGU5ODliOTY2YSJ9LHsibmFtZSI6IklNQUdFX2V2ZW50aW5nLWlzdGlvLWNvbnRyb2xsZXJfX2V2ZW50aW5nLWlzdGlvLWNvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWlzdGlvLWNvbnRyb2xsZXItcmhlbDhAc2hhMjU2OjIwYWUyZGExZThkODJkMzE5ZTI1NmM2YzgxMjk5ZWY4NDJjYTM0ZDU3YzY5NjRkNjFlMDBhMjc1YTQxMTU5YjQifSx7Im5hbWUiOiJJTUFHRV9ldmVudGluZy13ZWJob29rX19ldmVudGluZy13ZWJob29rIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy13ZWJob29rLXJoZWw4QHNoYTI1NjpjYThhNjE5MzQyNWY0YjI3NTBkNThkNmIxZGE0MjEyNDRhYTA3N2E0NGEzNGI0MTg0ZTM1YjlkOTRjOTQzM2ZiIn0seyJuYW1lIjoiSU1BR0Vfc3RvcmFnZS12ZXJzaW9uLW1pZ3JhdGlvbi1ldmVudGluZy1fX21pZ3JhdGUiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW1pZ3JhdGUtcmhlbDhAc2hhMjU2OjY0ZmI0YjBiMThmNGI4ZTliZDg2NDcwY2EzNmYyZjQxODcxMTFlZDQ0YjZjY2U1ZDE2ZDNhNDM0NDNjMDA0ODkifSx7Im5hbWUiOiJJTUFHRV9tdC1icm9rZXItY29udHJvbGxlcl9fbXQtYnJva2VyLWNvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW10Y2hhbm5lbC1icm9rZXItcmhlbDhAc2hhMjU2OmVkYzE5ZTMxMTk0NzA1M2RiY2ViMjFkNTIyNWFkNTJhNDhmNjFlYjNjMDc5ZTBmOTJmOTdiYTMxMWJiMTIxZjcifSx7Im5hbWUiOiJJTUFHRV9tdC1icm9rZXItZmlsdGVyX19maWx0ZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWZpbHRlci1yaGVsOEBzaGEyNTY6NjA1ZjhhYjQ4ZTc2MWY4OGRlNDNiNGFhYzQzOWQ2NTc2ZmVkNDZkNmQ5NjU5YTdjYjdkMGMzZDJkODdjYTU1YSJ9LHsibmFtZSI6IklNQUdFX210LWJyb2tlci1pbmdyZXNzX19pbmdyZXNzIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbmdyZXNzLXJoZWw4QHNoYTI1Njo2MjU0OGU5NGVjZjUyY2Q1MGIzZGY3ZmMyY2IyNzVjZTMxZjE4MDM3Y2QyODNiOTBiNzk4N2ViOGYzOGYxZGM2In0seyJuYW1lIjoiSU1BR0VfaW1jLWNvbnRyb2xsZXJfX2NvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWNoYW5uZWwtY29udHJvbGxlci1yaGVsOEBzaGEyNTY6ZGM1ZTE4MDc0OTEzY2VlMDQ1ZmViNWIxMzE4OTA4YjcxNjZlYTczNWIzMzIyM2VjYzg5NDNhMDlkMDg1M2Q0MyJ9LHsibmFtZSI6IklNQUdFX2ltYy1kaXNwYXRjaGVyX19kaXNwYXRjaGVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1jaGFubmVsLWRpc3BhdGNoZXItcmhlbDhAc2hhMjU2OjUzYTZhNWRmYjM5ZjgzMzg5YjEwMzg5NDg4ZjRkN2FiYTZhNTM0MmY0MTFmZjdlZmE0MWJhYjMwZDg5ZDk2NDYifSx7Im5hbWUiOiJJTUFHRV9waW5nc291cmNlLW10LWFkYXB0ZXJfX2Rpc3BhdGNoZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW10cGluZy1yaGVsOEBzaGEyNTY6NGU2MzNmNjhhM2MzNmYxZDk5ZWY5MTRhMWE3Mjk2YWViNmZlNTVkOTY5ZmQ0OGRlOTE2YTI3MmI1OTcxYzdlNiJ9LHsibmFtZSI6IklNQUdFX2pvYi1zaW5rX19qb2Itc2luayIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctam9ic2luay1yaGVsOEBzaGEyNTY6Y2ZkYmQ2OGI3OGU5NDc1OTBlNjMzYjY2ODBkN2I4NWNmZDM5NGVhNDIyODdkM2RmYzgxYjc4MjNhM2FiNjZiZCJ9LHsibmFtZSI6IklNQUdFX0FQSVNFUlZFUl9SQV9JTUFHRSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctYXBpc2VydmVyLXJlY2VpdmUtYWRhcHRlci1yaGVsOEBzaGEyNTY6YzkwNmNkNGExYzQyMzg5YzdlNGIzOGRiNTc4NThmYWMyMjUwYjYzNTdlZmYwZGEwNDhlOGM2YWNkYjk1YmE5MyJ9LHsibmFtZSI6IklNQUdFX0RJU1BBVENIRVJfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWNoYW5uZWwtZGlzcGF0Y2hlci1yaGVsOEBzaGEyNTY6NTNhNmE1ZGZiMzlmODMzODliMTAzODk0ODhmNGQ3YWJhNmE1MzQyZjQxMWZmN2VmYTQxYmFiMzBkODlkOTY0NiJ9LHsibmFtZSI6IklNQUdFX0VWRU5UX1RSQU5TRk9STV9KU09OQVRBX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtdHJhbnNmb3JtLWpzb25hdGEtcmhlbDhAc2hhMjU2OjBiNjE4YzljODkyNDI4YTU5ZTA0OTlhM2VkMGViZWZhMmMwOTgxNjk5ODE3NDMzMTU5YmZjYWY2ODM3NDM1OTcifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TT1VSQ0VfVElNRVJfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy10aW1lci1zb3VyY2UtcmhlbDhAc2hhMjU2OjhlYzUxZjgwOTE5NjM4NGY5YjgzZWY1Nzg5YjEyYjYzNTg3NzJhNzYxYTcwNTUxMjlkYTU3MjI1NDM4MWVlZWYifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TT1VSQ0VfQVdTX1MzX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXMzLXNvdXJjZS1yaGVsOEBzaGEyNTY6ZWUzOGI2OGU5OGJmOWFkYjk0NTU0ZmQ0YjNhM2FlYzNiNTMzY2I0MDdkZDBlMGFmY2E3ZjM3ZTEwZDY1NTNkOSJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfU1FTX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXNxcy1zb3VyY2UtcmhlbDhAc2hhMjU2Ojg2ZTU1OTg2Yjk0OTllMGE5Y2NiZWY1OWEyZmI4NWRlMzY2M2ZlODY4OTdkMjVkYmE1NDEwMWU5MTAxYjFiOTEifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TT1VSQ0VfQVdTX0REQl9TVFJFQU1TX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLWRkYi1zdHJlYW1zLXNvdXJjZS1yaGVsOEBzaGEyNTY6NmFkYTQ2ZjY1NWUxM2RiNmU4ZmRlZDRkYjdlYzMwODEyM2NmODMwN2MxZWYxNzFiN2ViN2VjYTI2NGVlMmMyNyJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NJTktfTE9HX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtbG9nLXNpbmstcmhlbDhAc2hhMjU2OmUwZjBiOWY3ZDhjZWQ5NzkxOTg0NGJiNGMzNDJjZTg5YzVmZjIyYzZjYzc2NGQ2MmY2ODBkMGYzZWJhMzE5YjEifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TSU5LX0FXU19TM19JTUFHRSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW50ZWdyYXRpb25zLWF3cy1zMy1zaW5rLXJoZWw4QHNoYTI1Njo5NGQ1ODkwMGNiNjJkNjQzNzlmM2I5YjI3Y2Y3ZjY5MTczZDQwYjExNWI2ZDg0M2I5ZTgzODM5YTAwODBhMGExIn0seyJuYW1lIjoiSU1BR0VfSU5URUdSQVRJT05fU0lOS19BV1NfU1FTX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXNxcy1zaW5rLXJoZWw4QHNoYTI1NjpmOTcyNTdmMGFmNTM3ZmZlZDFmZjZmZDBiYjBhOGRiNThiNWI2YTQ0NTU5ZDAxMzZjYzVmMTM0ZThmZjM0ZjJhIn0seyJuYW1lIjoiSU1BR0VfSU5URUdSQVRJT05fU0lOS19BV1NfU05TX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXNucy1zaW5rLXJoZWw4QHNoYTI1NjozMWFlNjY3YTQ3MzcwZTEwNzM4NGQxMjUzYzdmZTBiNzA4NDQzZjlmOTkxMjEwZGVkMTY3NTkxYjRlNjljZWY1In0seyJuYW1lIjoiSU1BR0VfZXZlbnRtZXNoLWJhY2tlbmRfX2NvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWJhY2tzdGFnZS1wbHVnaW5zLWV2ZW50bWVzaC1yaGVsOEBzaGEyNTY6M2JjMzQ4NjdmN2E2MjBiY2RhY2U2N2U2NWEwZmZiNTFhZWFkNWU0YWExZjEwY2QwZWI3NDc2ZmU4ZWQxYWYxMiJ9LHsibmFtZSI6IklNQUdFX0tVQkVfUkJBQ19QUk9YWSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdDQvb3NlLWt1YmUtcmJhYy1wcm94eS1yaGVsOUBzaGEyNTY6Njc2NTFhZGZkOGU2YzhkMTJkMmI5NTg1YzcyM2Q1ZmJkYjY2NDgxOGY4MDMzMTJiZmUzNTIyZTA0YTgxZTliMCJ9LHsibmFtZSI6IklNQUdFX0tOX1BMVUdJTl9FVkVOVF9TRU5ERVIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXBsdWdpbi1ldmVudC1zZW5kZXItcmhlbDhAc2hhMjU2OmY3Nzk1MDg4Nzc3ZWE4NGZjNjE4MGI4MWI2MTMxOTYyOTQ0ZTM0OTE4ZTJjMDY2NzEwMzNhMWE1NzI1ODE3NzMifSx7Im5hbWUiOiJJTUFHRV9LTl9DTElFTlQiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWNsaWVudC1rbi1yaGVsOEBzaGEyNTY6NzFhYTA5Yjk4ZDkxMDA2YmUyYTgxYWMwMzNmNzJkZjcyNTZhOTM4OTAyMzYxMzA4YjhlYjM2ZWExOTg2OThjMyJ9LHsibmFtZSI6IklNQUdFX0tOX1BMVUdJTl9GVU5DX1VUSUwiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXBsdWdpbi1mdW5jLWZ1bmMtdXRpbC1yaGVsOEBzaGEyNTY6NTk4MTEwZTliOTFjMzk4ZTZmN2VhNjIxNWE2OWY5NTYyMzM3OTY4YTAyNGRlZDhlMGYxOTczNmM1ZmI1MzQ1NyJ9LHsibmFtZSI6IklNQUdFX0tOX1BMVUdJTl9GVU5DX1RFS1RPTl9CVUlMREFIIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vcmhlbDgvYnVpbGRhaEBzaGEyNTY6M2Q1MDVkOWMwZjVkNGNkNWE0ZWMwM2I4ZDAzODY1NmM2Y2RiZGY1MTkxZTAwY2U2Mzg4ZjdlMGU0ZDJmMWI3NCJ9LHsibmFtZSI6IklNQUdFX0tOX1BMVUdJTl9GVU5DX05PREVKU18yMF9NSU5JTUFMIiwidmFsdWUiOiJyZWdpc3RyeS5hY2Nlc3MucmVkaGF0LmNvbS91Ymk4L25vZGVqcy0yMC1taW5pbWFsQHNoYTI1NjphMmE3ZTM5OWFhZjA5YTQ4YzI4ZjQwODIwZGExNjcwOWI2MmFlZTZmMmJjNzAzMTE2YjkzNDVmYWI1ODMwODYxIn0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfT1BFTkpES18yMSIsInZhbHVlIjoicmVnaXN0cnkuYWNjZXNzLnJlZGhhdC5jb20vdWJpOC9vcGVuamRrLTIxQHNoYTI1Njo0NDE4OTdhMWY2OTFjN2Q0YjNhNjdiYjNlMGZlYTgzZTE4MzUyMjE0MjY0Y2IzODNmZDA1N2JiYmQ1ZWQ4NjNjIn0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfUFlUSE9OXzM5IiwidmFsdWUiOiJyZWdpc3RyeS5hY2Nlc3MucmVkaGF0LmNvbS91Ymk4L3B5dGhvbi0zOUBzaGEyNTY6MjdlNzk1ZmQ2YjFiNzdkZTcwZDFkYzczYTY1ZTRjNzkwNjUwNzQ4YTljZmRhMTM4ZmRiZDE5NGIzZDZlZWEzZCJ9LHsibmFtZSI6IktBRktBX0lNQUdFX2thZmthLWJyb2tlci1yZWNlaXZlcl9fa2Fma2EtYnJva2VyLXJlY2VpdmVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2ItcmVjZWl2ZXItcmhlbDhAc2hhMjU2OjkxYjMzNjc4YzUzY2RhMzFlNjMwOTQwYzE3MWZhN2Q1OTBmMDg4Yjc4MzZjMzlkOTcxMmYwZjZmMjg1YjlmNWIifSx7Im5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1icm9rZXItZGlzcGF0Y2hlcl9fa2Fma2EtYnJva2VyLWRpc3BhdGNoZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1NjowYTA2OGFkZDRmMjVkYzJmOTU4MjRjYTVkMTUxZjlmOGEwNzZmNjkwMDY2MDg3ODQxNTYzZDMxMDk0YTdmZjVhIn0seyJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2EtY2hhbm5lbC1yZWNlaXZlcl9fa2Fma2EtY2hhbm5lbC1yZWNlaXZlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZWtiLXJlY2VpdmVyLXJoZWw4QHNoYTI1Njo5MWIzMzY3OGM1M2NkYTMxZTYzMDk0MGMxNzFmYTdkNTkwZjA4OGI3ODM2YzM5ZDk3MTJmMGY2ZjI4NWI5ZjViIn0seyJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2EtY2hhbm5lbC1kaXNwYXRjaGVyX19rYWZrYS1jaGFubmVsLWRpc3BhdGNoZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1NjowYTA2OGFkZDRmMjVkYzJmOTU4MjRjYTVkMTUxZjlmOGEwNzZmNjkwMDY2MDg3ODQxNTYzZDMxMDk0YTdmZjVhIn0seyJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2EtY29udHJvbGxlcl9fY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZWtiLWthZmthLWNvbnRyb2xsZXItcmhlbDhAc2hhMjU2Ojc0NWYxMDczODU4NzYxNTFjZWE3ZDZhMTkyM2RmMTI4NjY0ZDcwOWEzYmMyNDQ1OThlMDQ0OTgyYjEyMjRmNzkifSx7Im5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1zaW5rLXJlY2VpdmVyX19rYWZrYS1zaW5rLXJlY2VpdmVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2ItcmVjZWl2ZXItcmhlbDhAc2hhMjU2OjkxYjMzNjc4YzUzY2RhMzFlNjMwOTQwYzE3MWZhN2Q1OTBmMDg4Yjc4MzZjMzlkOTcxMmYwZjZmMjg1YjlmNWIifSx7Im5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1zb3VyY2UtZGlzcGF0Y2hlcl9fa2Fma2Etc291cmNlLWRpc3BhdGNoZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1NjowYTA2OGFkZDRmMjVkYzJmOTU4MjRjYTVkMTUxZjlmOGEwNzZmNjkwMDY2MDg3ODQxNTYzZDMxMDk0YTdmZjVhIn0seyJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2Etd2ViaG9vay1ldmVudGluZ19fa2Fma2Etd2ViaG9vay1ldmVudGluZyIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZWtiLXdlYmhvb2sta2Fma2EtcmhlbDhAc2hhMjU2OjIxMjA0ZDA4ZmI5ZGE4YzQ1ZDA1N2UzYWJhNmU0Y2ZhN2U3NWMwZWZlYmZlYzQwMjliZTc1NzUwYTUxMDk2MWIifSx7Im5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1jb250cm9sbGVyLXBvc3QtaW5zdGFsbF9fcG9zdC1pbnN0YWxsIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2ItcG9zdC1pbnN0YWxsLXJoZWw4QHNoYTI1NjpmMTllMDE3NmNkZGFlMDE3ZGEwM2ViNDBlMmMyYWFkNjA3NmZkMzA2YmI4YWFhYjhmOWI3OTNhZGRhODRkMDAyIn0seyJuYW1lIjoiS0FGS0FfSU1BR0Vfa25hdGl2ZS1rYWZrYS1zdG9yYWdlLXZlcnNpb24tbWlncmF0b3JfX21pZ3JhdGUiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW1pZ3JhdGUtcmhlbDhAc2hhMjU2OjY0ZmI0YjBiMThmNGI4ZTliZDg2NDcwY2EzNmYyZjQxODcxMTFlZDQ0YjZjY2U1ZDE2ZDNhNDM0NDNjMDA0ODkifSx7Im5hbWUiOiJDVVJSRU5UX1ZFUlNJT04iLCJ2YWx1ZSI6IjEuMzYuMSJ9LHsibmFtZSI6IktOQVRJVkVfU0VSVklOR19WRVJTSU9OIiwidmFsdWUiOiIxLjE2In0seyJuYW1lIjoiS05BVElWRV9FVkVOVElOR19WRVJTSU9OIiwidmFsdWUiOiIxLjE2In0seyJuYW1lIjoiS05BVElWRV9FVkVOVElOR19LQUZLQV9CUk9LRVJfVkVSU0lPTiIsInZhbHVlIjoiMS4xNiJ9XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9zZXJ2ZXJsZXNzLWtuLW9wZXJhdG9yLXJoZWw4QHNoYTI1NjphYmY5Nzc5MDcyNmRhMTI5ZmFiNGI2MmI5YmM3YjNjNGYyMjVjMWZiNjg1NTAzNTliZTQ0YTAxMWU2MGQ1NGYzIiwiaW1hZ2VQdWxsUG9saWN5IjoiQWx3YXlzIiwibGl2ZW5lc3NQcm9iZSI6eyJodHRwR2V0Ijp7InBhdGgiOiIvaGVhbHRoeiIsInBvcnQiOjg2ODd9fSwibmFtZSI6ImtuYXRpdmUtb3BlbnNoaWZ0IiwicG9ydHMiOlt7ImNvbnRhaW5lclBvcnQiOjgwODAsIm5hbWUiOiJodHRwLWNsaSJ9XSwicmVhZGluZXNzUHJvYmUiOnsiaHR0cEdldCI6eyJwYXRoIjoiL3JlYWR5eiIsInBvcnQiOjg2ODd9fSwic2VjdXJpdHlDb250ZXh0Ijp7ImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6ZmFsc2UsImNhcGFiaWxpdGllcyI6eyJkcm9wIjpbIkFMTCJdfSwicmVhZE9ubHlSb290RmlsZXN5c3RlbSI6dHJ1ZSwicnVuQXNOb25Sb290Ijp0cnVlfSwidm9sdW1lTW91bnRzIjpbeyJtb3VudFBhdGgiOiIvY2xpLWFydGlmYWN0cyIsIm5hbWUiOiJjbGktYXJ0aWZhY3RzIn1dfV0sImluaXRDb250YWluZXJzIjpbeyJjb21tYW5kIjpbInNoIiwiLWMiLCJybSAtcmYgL2NsaS1hcnRpZmFjdHMvKiBcdTAwMjZcdTAwMjYgY3AgL3Vzci9zaGFyZS9rbi8qKi8qIC9jbGktYXJ0aWZhY3RzIFx1MDAyNlx1MDAyNiBjaG1vZCA0NDQgL2NsaS1hcnRpZmFjdHMvKiJdLCJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWNsaWVudC1jbGktYXJ0aWZhY3RzLXJoZWw4QHNoYTI1NjpiMzc2M2ZmMGQ5YmViZjhmZjVmZjI1NzBhOWZmZWFhZjRhZjZlNDFlNDFmNWFmNWY4MTA1MzlmZWUzMThhZDdiIiwiaW1hZ2VQdWxsUG9saWN5IjoiQWx3YXlzIiwibmFtZSI6ImNsaS1hcnRpZmFjdHMiLCJzZWN1cml0eUNvbnRleHQiOnsiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjpmYWxzZSwiY2FwYWJpbGl0aWVzIjp7ImRyb3AiOlsiQUxMIl19LCJydW5Bc05vblJvb3QiOnRydWV9LCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii9jbGktYXJ0aWZhY3RzIiwibmFtZSI6ImNsaS1hcnRpZmFjdHMifV19XSwic2VydmljZUFjY291bnROYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQiLCJ2b2x1bWVzIjpbeyJlbXB0eURpciI6e30sIm5hbWUiOiJjbGktYXJ0aWZhY3RzIn1dfX19fSx7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIiwic3BlYyI6eyJyZXBsaWNhcyI6MSwic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsibmFtZSI6ImtuYXRpdmUtb3BlbnNoaWZ0LWluZ3Jlc3MifX0sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcyJ9fSwic3BlYyI6eyJjb250YWluZXJzIjpbeyJlbnYiOlt7Im5hbWUiOiJNRVRSSUNTX0RPTUFJTiIsInZhbHVlIjoia25hdGl2ZS5kZXYvc2VydmluZyJ9LHsibmFtZSI6IldBVENIX05BTUVTUEFDRSIsInZhbHVlIjoiIn0seyJuYW1lIjoiUE9EX05BTUUiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEubmFtZSJ9fX0seyJuYW1lIjoiT1BFUkFUT1JfTkFNRSIsInZhbHVlIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcyJ9LHsibmFtZSI6IlNZU1RFTV9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEubmFtZXNwYWNlIn19fSx7Im5hbWUiOiJLVUJFUk5FVEVTX01JTl9WRVJTSU9OIiwidmFsdWUiOiJ2MS4wLjAifSx7Im5hbWUiOiJST1VURV9IQVBST1hZX1RJTUVPVVQiLCJ2YWx1ZSI6IjYwMCJ9XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9zZXJ2ZXJsZXNzLWluZ3Jlc3MtcmhlbDhAc2hhMjU2OjI5NjEzNTQ1YmYxNzU4YjY3OTc3NzkzOTYzYWIzNGZiMmY2ZDFmM2Q0ZjViNDE1OGFkNGM5MmFkZmVlMjBjNWEiLCJpbWFnZVB1bGxQb2xpY3kiOiJBbHdheXMiLCJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcyIsInBvcnRzIjpbeyJjb250YWluZXJQb3J0Ijo5MDkwLCJuYW1lIjoibWV0cmljcyJ9XSwic2VjdXJpdHlDb250ZXh0Ijp7ImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6ZmFsc2UsImNhcGFiaWxpdGllcyI6eyJkcm9wIjpbIkFMTCJdfSwicmVhZE9ubHlSb290RmlsZXN5c3RlbSI6dHJ1ZSwicnVuQXNOb25Sb290Ijp0cnVlfX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIn19fX1dfSwic3RyYXRlZ3kiOiJkZXBsb3ltZW50In0sImluc3RhbGxNb2RlcyI6W3sic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik93bk5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJBbGxOYW1lc3BhY2VzIn1dLCJrZXl3b3JkcyI6WyJzZXJ2ZXJsZXNzIiwiRmFhUyIsIm1pY3Jvc2VydmljZXMiLCJzY2FsZSB0byB6ZXJvIiwia25hdGl2ZSIsInNlcnZpbmciLCJldmVudGluZyIsImthZmthIl0sImxpbmtzIjpbeyJuYW1lIjoiRG9jdW1lbnRhdGlvbiIsInVybCI6Imh0dHBzOi8vZG9jcy5yZWRoYXQuY29tL2VuL2RvY3VtZW50YXRpb24vcmVkX2hhdF9vcGVuc2hpZnRfc2VydmVybGVzcy8xLjM2L2h0bWwvaW5zdGFsbGluZ19vcGVuc2hpZnRfc2VydmVybGVzcy9pbmRleCJ9LHsibmFtZSI6IlNvdXJjZSBSZXBvc2l0b3J5IiwidXJsIjoiaHR0cHM6Ly9naXRodWIuY29tL29wZW5zaGlmdC1rbmF0aXZlL3NlcnZlcmxlc3Mtb3BlcmF0b3IifV0sIm1haW50YWluZXJzIjpbeyJlbWFpbCI6InN1cHBvcnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJTZXJ2ZXJsZXNzIFRlYW0ifV0sIm1hdHVyaXR5Ijoic3RhYmxlIiwibWluS3ViZVZlcnNpb24iOiIxLjI1LjAiLCJwcm92aWRlciI6eyJuYW1lIjoiUmVkIEhhdCJ9LCJyZWxhdGVkSW1hZ2VzIjpbeyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL3NlcnZlcmxlc3Mtb3BlbnNoaWZ0LWtuLXJoZWw4LW9wZXJhdG9yQHNoYTI1NjpmMWExMzcyNTU2N2RlMzU3ZGU0MjQ2Yjg3YTJlZDY0YjNkY2UwMmM3NDA2Yjg2MjFhZDhkMmJiZWFjYzBjY2ZhIiwibmFtZSI6ImtuYXRpdmUtb3BlcmF0b3IifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEvc2VydmVybGVzcy1rbi1vcGVyYXRvci1yaGVsOEBzaGEyNTY6YWJmOTc3OTA3MjZkYTEyOWZhYjRiNjJiOWJjN2IzYzRmMjI1YzFmYjY4NTUwMzU5YmU0NGEwMTFlNjBkNTRmMyIsIm5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdCJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9zZXJ2ZXJsZXNzLWluZ3Jlc3MtcmhlbDhAc2hhMjU2OjI5NjEzNTQ1YmYxNzU4YjY3OTc3NzkzOTYzYWIzNGZiMmY2ZDFmM2Q0ZjViNDE1OGFkNGM5MmFkZmVlMjBjNWEiLCJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcyJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLXF1ZXVlLXJoZWw4QHNoYTI1NjozMTMzYzE3N2ZjYmZkNGFiYjg5YjI3M2E3Y2UyZmIyMjBlMDUxY2U5NTYxOTNiMWQxNDljN2EwNDBmYzA3ZTgzIiwibmFtZSI6IklNQUdFX3F1ZXVlLXByb3h5In0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctYWN0aXZhdG9yLXJoZWw4QHNoYTI1NjowNDJjZTFlN2JlMTBhNWY1MWY5NDg3YWYwMTk2Y2IyNDlmNWQ4ZTY4MjFjZTdjMmFiMDVjNTMyYjdhMTg0MzhjIiwibmFtZSI6IklNQUdFX2FjdGl2YXRvciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLWF1dG9zY2FsZXItcmhlbDhAc2hhMjU2OjBiNjlmYzgzOWY1NjUxYmZmZmNiZjg2MzY2Zjk0ZGEwZWMzZTI5ZTZjMjE3YTI2ZmZjZTdiZDc2ZmJkYTA5MzkiLCJuYW1lIjoiSU1BR0VfYXV0b3NjYWxlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLWF1dG9zY2FsZXItaHBhLXJoZWw4QHNoYTI1Njo0ZmEwY2U3YWMxMzUxYWE0Y2JlODU4NDcyYmY5Zjk1Mzk0Mjk2MWE1NDMwZjg1YmU1NjU2ZjI5NTA4ZDI1NGRiIiwibmFtZSI6IklNQUdFX2F1dG9zY2FsZXItaHBhIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctY29udHJvbGxlci1yaGVsOEBzaGEyNTY6NTBhNjJiZjY0MWExMjRkYmEzNzI2MmRhMWU4MmVmMTRlNmI2Y2NiNGM4NTczZmE1MzdjMTlkM2IxYjc3YTYyNyIsIm5hbWUiOiJJTUFHRV9jb250cm9sbGVyX19jb250cm9sbGVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctd2ViaG9vay1yaGVsOEBzaGEyNTY6ZGU0NWE2MGJjNDVlMWI2N2M2Zjg4ZWIxYzg4NWJkYTEyY2MxMzYzMzZkYzVmYjJlMGI4Y2JmNjNhYTYyYTZiZiIsIm5hbWUiOiJJTUFHRV93ZWJob29rX193ZWJob29rIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctc3RvcmFnZS12ZXJzaW9uLW1pZ3JhdGlvbi1yaGVsOEBzaGEyNTY6ZmJlNDYyNjk1YjNlNzAzZDQ3MjIyNzdhNjE3YzZlZjA2ZmIzN2MwNzM2NmJhNWM2MjExZGQ1NmI1MDM4YzEzMCIsIm5hbWUiOiJJTUFHRV9zdG9yYWdlLXZlcnNpb24tbWlncmF0aW9uLXNlcnZpbmctX19taWdyYXRlIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmljZS1tZXNoL3Byb3h5djItcmhlbDhAc2hhMjU2OjFjMTljZjg2ZmQwNTk0MGVmM2QwZDZlNzllNmYzNzFkYjk5MzE1M2Y3MGJhZWRiOTEwN2JiZTczZjIzNmRjMjQiLCJuYW1lIjoiSU1BR0Vfa291cmllci1nYXRld2F5In0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL25ldC1rb3VyaWVyLWtvdXJpZXItcmhlbDhAc2hhMjU2OjkwZTMyMmUzMzA0MjIyMTk5ZWZjOWJmYTI1NDUyNTBkZGUyYjIyNDAzNjY2YzVlMDAzNzJiZGFlYWExOGRkZWUiLCJuYW1lIjoiSU1BR0VfbmV0LWtvdXJpZXItY29udHJvbGxlcl9fY29udHJvbGxlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9uZXQtaXN0aW8tY29udHJvbGxlci1yaGVsOEBzaGEyNTY6NzY1NWVjOTVlNTgyOWQzZDc4NjAzOWNjNmM2OTBjOWZiNDQyZGM4NWYxYzg4NDgxY2YzNGY5YTZmMTY4NDAzOSIsIm5hbWUiOiJJTUFHRV9uZXQtaXN0aW8tY29udHJvbGxlcl9fY29udHJvbGxlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9uZXQtaXN0aW8td2ViaG9vay1yaGVsOEBzaGEyNTY6ZmE4ZWJiNzBiNmYxNTEwYzU1YTAzYmFlYzk5ZDM0OTdkNmFmYjkzMDE1MmZmMzczMWZlNTcyMTE2NzVhYWRjMCIsIm5hbWUiOiJJTUFHRV9uZXQtaXN0aW8td2ViaG9va19fd2ViaG9vayJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1jb250cm9sbGVyLXJoZWw4QHNoYTI1Njo4MDQzMDFkMzE1YzhkNjk1OGQxMjhmZDU5NTExODQ0MzdmNzU1Njc0ZDhlYzVhNDU4MmQ2MTI4ZTk4OWI5NjZhIiwibmFtZSI6IklNQUdFX2V2ZW50aW5nLWNvbnRyb2xsZXJfX2V2ZW50aW5nLWNvbnRyb2xsZXIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaXN0aW8tY29udHJvbGxlci1yaGVsOEBzaGEyNTY6MjBhZTJkYTFlOGQ4MmQzMTllMjU2YzZjODEyOTllZjg0MmNhMzRkNTdjNjk2NGQ2MWUwMGEyNzVhNDExNTliNCIsIm5hbWUiOiJJTUFHRV9ldmVudGluZy1pc3Rpby1jb250cm9sbGVyX19ldmVudGluZy1pc3Rpby1jb250cm9sbGVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLXdlYmhvb2stcmhlbDhAc2hhMjU2OmNhOGE2MTkzNDI1ZjRiMjc1MGQ1OGQ2YjFkYTQyMTI0NGFhMDc3YTQ0YTM0YjQxODRlMzViOWQ5NGM5NDMzZmIiLCJuYW1lIjoiSU1BR0VfZXZlbnRpbmctd2ViaG9va19fZXZlbnRpbmctd2ViaG9vayJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1taWdyYXRlLXJoZWw4QHNoYTI1Njo2NGZiNGIwYjE4ZjRiOGU5YmQ4NjQ3MGNhMzZmMmY0MTg3MTExZWQ0NGI2Y2NlNWQxNmQzYTQzNDQzYzAwNDg5IiwibmFtZSI6IklNQUdFX3N0b3JhZ2UtdmVyc2lvbi1taWdyYXRpb24tZXZlbnRpbmctX19taWdyYXRlIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW10Y2hhbm5lbC1icm9rZXItcmhlbDhAc2hhMjU2OmVkYzE5ZTMxMTk0NzA1M2RiY2ViMjFkNTIyNWFkNTJhNDhmNjFlYjNjMDc5ZTBmOTJmOTdiYTMxMWJiMTIxZjciLCJuYW1lIjoiSU1BR0VfbXQtYnJva2VyLWNvbnRyb2xsZXJfX210LWJyb2tlci1jb250cm9sbGVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWZpbHRlci1yaGVsOEBzaGEyNTY6NjA1ZjhhYjQ4ZTc2MWY4OGRlNDNiNGFhYzQzOWQ2NTc2ZmVkNDZkNmQ5NjU5YTdjYjdkMGMzZDJkODdjYTU1YSIsIm5hbWUiOiJJTUFHRV9tdC1icm9rZXItZmlsdGVyX19maWx0ZXIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW5ncmVzcy1yaGVsOEBzaGEyNTY6NjI1NDhlOTRlY2Y1MmNkNTBiM2RmN2ZjMmNiMjc1Y2UzMWYxODAzN2NkMjgzYjkwYjc5ODdlYjhmMzhmMWRjNiIsIm5hbWUiOiJJTUFHRV9tdC1icm9rZXItaW5ncmVzc19faW5ncmVzcyJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1jaGFubmVsLWNvbnRyb2xsZXItcmhlbDhAc2hhMjU2OmRjNWUxODA3NDkxM2NlZTA0NWZlYjViMTMxODkwOGI3MTY2ZWE3MzViMzMyMjNlY2M4OTQzYTA5ZDA4NTNkNDMiLCJuYW1lIjoiSU1BR0VfaW1jLWNvbnRyb2xsZXJfX2NvbnRyb2xsZXIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctY2hhbm5lbC1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1Njo1M2E2YTVkZmIzOWY4MzM4OWIxMDM4OTQ4OGY0ZDdhYmE2YTUzNDJmNDExZmY3ZWZhNDFiYWIzMGQ4OWQ5NjQ2IiwibmFtZSI6IklNQUdFX2ltYy1kaXNwYXRjaGVyX19kaXNwYXRjaGVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW10cGluZy1yaGVsOEBzaGEyNTY6NGU2MzNmNjhhM2MzNmYxZDk5ZWY5MTRhMWE3Mjk2YWViNmZlNTVkOTY5ZmQ0OGRlOTE2YTI3MmI1OTcxYzdlNiIsIm5hbWUiOiJJTUFHRV9waW5nc291cmNlLW10LWFkYXB0ZXJfX2Rpc3BhdGNoZXIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctam9ic2luay1yaGVsOEBzaGEyNTY6Y2ZkYmQ2OGI3OGU5NDc1OTBlNjMzYjY2ODBkN2I4NWNmZDM5NGVhNDIyODdkM2RmYzgxYjc4MjNhM2FiNjZiZCIsIm5hbWUiOiJJTUFHRV9qb2Itc2lua19fam9iLXNpbmsifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctYXBpc2VydmVyLXJlY2VpdmUtYWRhcHRlci1yaGVsOEBzaGEyNTY6YzkwNmNkNGExYzQyMzg5YzdlNGIzOGRiNTc4NThmYWMyMjUwYjYzNTdlZmYwZGEwNDhlOGM2YWNkYjk1YmE5MyIsIm5hbWUiOiJJTUFHRV9BUElTRVJWRVJfUkFfSU1BR0UifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctY2hhbm5lbC1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1Njo1M2E2YTVkZmIzOWY4MzM4OWIxMDM4OTQ4OGY0ZDdhYmE2YTUzNDJmNDExZmY3ZWZhNDFiYWIzMGQ4OWQ5NjQ2IiwibmFtZSI6IklNQUdFX0RJU1BBVENIRVJfSU1BR0UifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW50ZWdyYXRpb25zLXRyYW5zZm9ybS1qc29uYXRhLXJoZWw4QHNoYTI1NjowYjYxOGM5Yzg5MjQyOGE1OWUwNDk5YTNlZDBlYmVmYTJjMDk4MTY5OTgxNzQzMzE1OWJmY2FmNjgzNzQzNTk3IiwibmFtZSI6IklNQUdFX0VWRU5UX1RSQU5TRk9STV9KU09OQVRBX0lNQUdFIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy10aW1lci1zb3VyY2UtcmhlbDhAc2hhMjU2OjhlYzUxZjgwOTE5NjM4NGY5YjgzZWY1Nzg5YjEyYjYzNTg3NzJhNzYxYTcwNTUxMjlkYTU3MjI1NDM4MWVlZWYiLCJuYW1lIjoiSU1BR0VfSU5URUdSQVRJT05fU09VUkNFX1RJTUVSX0lNQUdFIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3MtczMtc291cmNlLXJoZWw4QHNoYTI1NjplZTM4YjY4ZTk4YmY5YWRiOTQ1NTRmZDRiM2EzYWVjM2I1MzNjYjQwN2RkMGUwYWZjYTdmMzdlMTBkNjU1M2Q5IiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfUzNfSU1BR0UifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW50ZWdyYXRpb25zLWF3cy1zcXMtc291cmNlLXJoZWw4QHNoYTI1Njo4NmU1NTk4NmI5NDk5ZTBhOWNjYmVmNTlhMmZiODVkZTM2NjNmZTg2ODk3ZDI1ZGJhNTQxMDFlOTEwMWIxYjkxIiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfU1FTX0lNQUdFIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3MtZGRiLXN0cmVhbXMtc291cmNlLXJoZWw4QHNoYTI1Njo2YWRhNDZmNjU1ZTEzZGI2ZThmZGVkNGRiN2VjMzA4MTIzY2Y4MzA3YzFlZjE3MWI3ZWI3ZWNhMjY0ZWUyYzI3IiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfRERCX1NUUkVBTVNfSU1BR0UifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW50ZWdyYXRpb25zLWxvZy1zaW5rLXJoZWw4QHNoYTI1NjplMGYwYjlmN2Q4Y2VkOTc5MTk4NDRiYjRjMzQyY2U4OWM1ZmYyMmM2Y2M3NjRkNjJmNjgwZDBmM2ViYTMxOWIxIiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NJTktfTE9HX0lNQUdFIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3MtczMtc2luay1yaGVsOEBzaGEyNTY6OTRkNTg5MDBjYjYyZDY0Mzc5ZjNiOWIyN2NmN2Y2OTE3M2Q0MGIxMTViNmQ4NDNiOWU4MzgzOWEwMDgwYTBhMSIsIm5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TSU5LX0FXU19TM19JTUFHRSJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXNxcy1zaW5rLXJoZWw4QHNoYTI1NjpmOTcyNTdmMGFmNTM3ZmZlZDFmZjZmZDBiYjBhOGRiNThiNWI2YTQ0NTU5ZDAxMzZjYzVmMTM0ZThmZjM0ZjJhIiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NJTktfQVdTX1NRU19JTUFHRSJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXNucy1zaW5rLXJoZWw4QHNoYTI1NjozMWFlNjY3YTQ3MzcwZTEwNzM4NGQxMjUzYzdmZTBiNzA4NDQzZjlmOTkxMjEwZGVkMTY3NTkxYjRlNjljZWY1IiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NJTktfQVdTX1NOU19JTUFHRSJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1iYWNrc3RhZ2UtcGx1Z2lucy1ldmVudG1lc2gtcmhlbDhAc2hhMjU2OjNiYzM0ODY3ZjdhNjIwYmNkYWNlNjdlNjVhMGZmYjUxYWVhZDVlNGFhMWYxMGNkMGViNzQ3NmZlOGVkMWFmMTIiLCJuYW1lIjoiSU1BR0VfZXZlbnRtZXNoLWJhY2tlbmRfX2NvbnRyb2xsZXIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdDQvb3NlLWt1YmUtcmJhYy1wcm94eS1yaGVsOUBzaGEyNTY6Njc2NTFhZGZkOGU2YzhkMTJkMmI5NTg1YzcyM2Q1ZmJkYjY2NDgxOGY4MDMzMTJiZmUzNTIyZTA0YTgxZTliMCIsIm5hbWUiOiJJTUFHRV9LVUJFX1JCQUNfUFJPWFkifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tcGx1Z2luLWV2ZW50LXNlbmRlci1yaGVsOEBzaGEyNTY6Zjc3OTUwODg3NzdlYTg0ZmM2MTgwYjgxYjYxMzE5NjI5NDRlMzQ5MThlMmMwNjY3MTAzM2ExYTU3MjU4MTc3MyIsIm5hbWUiOiJJTUFHRV9LTl9QTFVHSU5fRVZFTlRfU0VOREVSIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWNsaWVudC1rbi1yaGVsOEBzaGEyNTY6NzFhYTA5Yjk4ZDkxMDA2YmUyYTgxYWMwMzNmNzJkZjcyNTZhOTM4OTAyMzYxMzA4YjhlYjM2ZWExOTg2OThjMyIsIm5hbWUiOiJJTUFHRV9LTl9DTElFTlQifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tcGx1Z2luLWZ1bmMtZnVuYy11dGlsLXJoZWw4QHNoYTI1Njo1OTgxMTBlOWI5MWMzOThlNmY3ZWE2MjE1YTY5Zjk1NjIzMzc5NjhhMDI0ZGVkOGUwZjE5NzM2YzVmYjUzNDU3IiwibmFtZSI6IklNQUdFX0tOX1BMVUdJTl9GVU5DX1VUSUwifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL3JoZWw4L2J1aWxkYWhAc2hhMjU2OjNkNTA1ZDljMGY1ZDRjZDVhNGVjMDNiOGQwMzg2NTZjNmNkYmRmNTE5MWUwMGNlNjM4OGY3ZTBlNGQyZjFiNzQiLCJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfVEVLVE9OX0JVSUxEQUgifSx7ImltYWdlIjoicmVnaXN0cnkuYWNjZXNzLnJlZGhhdC5jb20vdWJpOC9ub2RlanMtMjAtbWluaW1hbEBzaGEyNTY6YTJhN2UzOTlhYWYwOWE0OGMyOGY0MDgyMGRhMTY3MDliNjJhZWU2ZjJiYzcwMzExNmI5MzQ1ZmFiNTgzMDg2MSIsIm5hbWUiOiJJTUFHRV9LTl9QTFVHSU5fRlVOQ19OT0RFSlNfMjBfTUlOSU1BTCJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5hY2Nlc3MucmVkaGF0LmNvbS91Ymk4L29wZW5qZGstMjFAc2hhMjU2OjQ0MTg5N2ExZjY5MWM3ZDRiM2E2N2JiM2UwZmVhODNlMTgzNTIyMTQyNjRjYjM4M2ZkMDU3YmJiZDVlZDg2M2MiLCJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfT1BFTkpES18yMSJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5hY2Nlc3MucmVkaGF0LmNvbS91Ymk4L3B5dGhvbi0zOUBzaGEyNTY6MjdlNzk1ZmQ2YjFiNzdkZTcwZDFkYzczYTY1ZTRjNzkwNjUwNzQ4YTljZmRhMTM4ZmRiZDE5NGIzZDZlZWEzZCIsIm5hbWUiOiJJTUFHRV9LTl9QTFVHSU5fRlVOQ19QWVRIT05fMzkifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZWtiLXJlY2VpdmVyLXJoZWw4QHNoYTI1Njo5MWIzMzY3OGM1M2NkYTMxZTYzMDk0MGMxNzFmYTdkNTkwZjA4OGI3ODM2YzM5ZDk3MTJmMGY2ZjI4NWI5ZjViIiwibmFtZSI6IktBRktBX0lNQUdFX2thZmthLWJyb2tlci1yZWNlaXZlcl9fa2Fma2EtYnJva2VyLXJlY2VpdmVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1NjowYTA2OGFkZDRmMjVkYzJmOTU4MjRjYTVkMTUxZjlmOGEwNzZmNjkwMDY2MDg3ODQxNTYzZDMxMDk0YTdmZjVhIiwibmFtZSI6IktBRktBX0lNQUdFX2thZmthLWJyb2tlci1kaXNwYXRjaGVyX19rYWZrYS1icm9rZXItZGlzcGF0Y2hlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2ItcmVjZWl2ZXItcmhlbDhAc2hhMjU2OjkxYjMzNjc4YzUzY2RhMzFlNjMwOTQwYzE3MWZhN2Q1OTBmMDg4Yjc4MzZjMzlkOTcxMmYwZjZmMjg1YjlmNWIiLCJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2EtY2hhbm5lbC1yZWNlaXZlcl9fa2Fma2EtY2hhbm5lbC1yZWNlaXZlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2ItZGlzcGF0Y2hlci1yaGVsOEBzaGEyNTY6MGEwNjhhZGQ0ZjI1ZGMyZjk1ODI0Y2E1ZDE1MWY5ZjhhMDc2ZjY5MDA2NjA4Nzg0MTU2M2QzMTA5NGE3ZmY1YSIsIm5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1jaGFubmVsLWRpc3BhdGNoZXJfX2thZmthLWNoYW5uZWwtZGlzcGF0Y2hlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2Ita2Fma2EtY29udHJvbGxlci1yaGVsOEBzaGEyNTY6NzQ1ZjEwNzM4NTg3NjE1MWNlYTdkNmExOTIzZGYxMjg2NjRkNzA5YTNiYzI0NDU5OGUwNDQ5ODJiMTIyNGY3OSIsIm5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1jb250cm9sbGVyX19jb250cm9sbGVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1yZWNlaXZlci1yaGVsOEBzaGEyNTY6OTFiMzM2NzhjNTNjZGEzMWU2MzA5NDBjMTcxZmE3ZDU5MGYwODhiNzgzNmMzOWQ5NzEyZjBmNmYyODViOWY1YiIsIm5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1zaW5rLXJlY2VpdmVyX19rYWZrYS1zaW5rLXJlY2VpdmVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1NjowYTA2OGFkZDRmMjVkYzJmOTU4MjRjYTVkMTUxZjlmOGEwNzZmNjkwMDY2MDg3ODQxNTYzZDMxMDk0YTdmZjVhIiwibmFtZSI6IktBRktBX0lNQUdFX2thZmthLXNvdXJjZS1kaXNwYXRjaGVyX19rYWZrYS1zb3VyY2UtZGlzcGF0Y2hlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2Itd2ViaG9vay1rYWZrYS1yaGVsOEBzaGEyNTY6MjEyMDRkMDhmYjlkYThjNDVkMDU3ZTNhYmE2ZTRjZmE3ZTc1YzBlZmViZmVjNDAyOWJlNzU3NTBhNTEwOTYxYiIsIm5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS13ZWJob29rLWV2ZW50aW5nX19rYWZrYS13ZWJob29rLWV2ZW50aW5nIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1wb3N0LWluc3RhbGwtcmhlbDhAc2hhMjU2OmYxOWUwMTc2Y2RkYWUwMTdkYTAzZWI0MGUyYzJhYWQ2MDc2ZmQzMDZiYjhhYWFiOGY5Yjc5M2FkZGE4NGQwMDIiLCJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2EtY29udHJvbGxlci1wb3N0LWluc3RhbGxfX3Bvc3QtaW5zdGFsbCJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1taWdyYXRlLXJoZWw4QHNoYTI1Njo2NGZiNGIwYjE4ZjRiOGU5YmQ4NjQ3MGNhMzZmMmY0MTg3MTExZWQ0NGI2Y2NlNWQxNmQzYTQzNDQzYzAwNDg5IiwibmFtZSI6IktBRktBX0lNQUdFX2tuYXRpdmUta2Fma2Etc3RvcmFnZS12ZXJzaW9uLW1pZ3JhdG9yX19taWdyYXRlIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL3NlcnZlcmxlc3MtbXVzdC1nYXRoZXItcmhlbDhAc2hhMjU2OjU4ZjNlMTgwNmZlY2RiNGQwMzA2NDZjY2VmZDFhMTQ3YmZmZWYyMWVlZTEyMzM0ODdjY2RhYjMzMGU4ZDRlMWQiLCJuYW1lIjoiSU1BR0VfTVVTVF9HQVRIRVIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tY2xpZW50LWNsaS1hcnRpZmFjdHMtcmhlbDhAc2hhMjU2OmIzNzYzZmYwZDliZWJmOGZmNWZmMjU3MGE5ZmZlYWFmNGFmNmU0MWU0MWY1YWY1ZjgxMDUzOWZlZTMxOGFkN2IiLCJuYW1lIjoiSU1BR0VfS05fQ0xJRU5UX0NMSV9BUlRJRkFDVFMifV0sInJlcGxhY2VzIjoic2VydmVybGVzcy1vcGVyYXRvci52MS4zNi4wIiwidmVyc2lvbiI6IjEuMzYuMSIsIndlYmhvb2tkZWZpbml0aW9ucyI6W3siYWRtaXNzaW9uUmV2aWV3VmVyc2lvbnMiOlsidjFiZXRhMSJdLCJjb250YWluZXJQb3J0Ijo5ODc2LCJkZXBsb3ltZW50TmFtZSI6ImtuYXRpdmUtb3BlbnNoaWZ0IiwiZmFpbHVyZVBvbGljeSI6Iklnbm9yZSIsImdlbmVyYXRlTmFtZSI6InZhbGlkYXRpbmcua25hdGl2ZWV2ZW50aW5ncy5vcGVyYXRvci5zZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pbyIsInJ1bGVzIjpbeyJhcGlHcm91cHMiOlsib3BlcmF0b3Iua25hdGl2ZS5kZXYiXSwiYXBpVmVyc2lvbnMiOlsidjFiZXRhMSJdLCJvcGVyYXRpb25zIjpbIkNSRUFURSIsIlVQREFURSJdLCJyZXNvdXJjZXMiOlsia25hdGl2ZWV2ZW50aW5ncyJdfV0sInNpZGVFZmZlY3RzIjoiTm9uZSIsInR5cGUiOiJWYWxpZGF0aW5nQWRtaXNzaW9uV2ViaG9vayIsIndlYmhvb2tQYXRoIjoiL3ZhbGlkYXRlLWtuYXRpdmVldmVudGluZ3MifSx7ImFkbWlzc2lvblJldmlld1ZlcnNpb25zIjpbInYxYmV0YTEiXSwiY29udGFpbmVyUG9ydCI6OTg3NiwiZGVwbG95bWVudE5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdCIsImZhaWx1cmVQb2xpY3kiOiJJZ25vcmUiLCJnZW5lcmF0ZU5hbWUiOiJ2YWxpZGF0aW5nLmtuYXRpdmVzZXJ2aW5ncy5vcGVyYXRvci5zZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pbyIsInJ1bGVzIjpbeyJhcGlHcm91cHMiOlsib3BlcmF0b3Iua25hdGl2ZS5kZXYiXSwiYXBpVmVyc2lvbnMiOlsidjFiZXRhMSJdLCJvcGVyYXRpb25zIjpbIkNSRUFURSIsIlVQREFURSJdLCJyZXNvdXJjZXMiOlsia25hdGl2ZXNlcnZpbmdzIl19XSwic2lkZUVmZmVjdHMiOiJOb25lIiwidHlwZSI6IlZhbGlkYXRpbmdBZG1pc3Npb25XZWJob29rIiwid2ViaG9va1BhdGgiOiIvdmFsaWRhdGUta25hdGl2ZXNlcnZpbmdzIn0seyJhZG1pc3Npb25SZXZpZXdWZXJzaW9ucyI6WyJ2MWJldGExIl0sImNvbnRhaW5lclBvcnQiOjk4NzYsImRlcGxveW1lbnROYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQiLCJmYWlsdXJlUG9saWN5IjoiSWdub3JlIiwiZ2VuZXJhdGVOYW1lIjoidmFsaWRhdGluZy5rbmF0aXZla2Fma2FzLm9wZXJhdG9yLnNlcnZlcmxlc3Mub3BlbnNoaWZ0LmlvIiwicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJvcGVyYXRvci5zZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pbyJdLCJhcGlWZXJzaW9ucyI6WyJ2MWFscGhhMSJdLCJvcGVyYXRpb25zIjpbIkNSRUFURSIsIlVQREFURSJdLCJyZXNvdXJjZXMiOlsia25hdGl2ZWthZmthcyJdfV0sInNpZGVFZmZlY3RzIjoiTm9uZSIsInR5cGUiOiJWYWxpZGF0aW5nQWRtaXNzaW9uV2ViaG9vayIsIndlYmhvb2tQYXRoIjoiL3ZhbGlkYXRlLWtuYXRpdmVrYWZrYXMifSx7ImFkbWlzc2lvblJldmlld1ZlcnNpb25zIjpbInYxYmV0YTEiXSwiY29udGFpbmVyUG9ydCI6OTg3NiwiZGVwbG95bWVudE5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdCIsImZhaWx1cmVQb2xpY3kiOiJJZ25vcmUiLCJnZW5lcmF0ZU5hbWUiOiJtdXRhdGluZy5rbmF0aXZlZXZlbnRpbmdzLm9wZXJhdG9yLnNlcnZlcmxlc3Mub3BlbnNoaWZ0LmlvIiwicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJvcGVyYXRvci5rbmF0aXZlLmRldiJdLCJhcGlWZXJzaW9ucyI6WyJ2MWJldGExIl0sIm9wZXJhdGlvbnMiOlsiQ1JFQVRFIiwiVVBEQVRFIl0sInJlc291cmNlcyI6WyJrbmF0aXZlZXZlbnRpbmdzIl19XSwic2lkZUVmZmVjdHMiOiJOb25lIiwidHlwZSI6Ik11dGF0aW5nQWRtaXNzaW9uV2ViaG9vayIsIndlYmhvb2tQYXRoIjoiL211dGF0ZS1rbmF0aXZlZXZlbnRpbmdzIn0seyJhZG1pc3Npb25SZXZpZXdWZXJzaW9ucyI6WyJ2MWJldGExIl0sImNvbnRhaW5lclBvcnQiOjk4NzYsImRlcGxveW1lbnROYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQiLCJmYWlsdXJlUG9saWN5IjoiSWdub3JlIiwiZ2VuZXJhdGVOYW1lIjoibXV0YXRpbmcua25hdGl2ZXNlcnZpbmdzLm9wZXJhdG9yLnNlcnZlcmxlc3Mub3BlbnNoaWZ0LmlvIiwicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJvcGVyYXRvci5rbmF0aXZlLmRldiJdLCJhcGlWZXJzaW9ucyI6WyJ2MWJldGExIl0sIm9wZXJhdGlvbnMiOlsiQ1JFQVRFIiwiVVBEQVRFIl0sInJlc291cmNlcyI6WyJrbmF0aXZlc2VydmluZ3MiXX1dLCJzaWRlRWZmZWN0cyI6Ik5vbmUiLCJ0eXBlIjoiTXV0YXRpbmdBZG1pc3Npb25XZWJob29rIiwid2ViaG9va1BhdGgiOiIvbXV0YXRlLWtuYXRpdmVzZXJ2aW5ncyJ9LHsiYWRtaXNzaW9uUmV2aWV3VmVyc2lvbnMiOlsidjFiZXRhMSJdLCJjb250YWluZXJQb3J0Ijo4NDQzLCJjb252ZXJzaW9uQ1JEcyI6WyJrbmF0aXZlc2VydmluZ3Mub3BlcmF0b3Iua25hdGl2ZS5kZXYiXSwiZGVwbG95bWVudE5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yLXdlYmhvb2siLCJnZW5lcmF0ZU5hbWUiOiJjb252ZXJzaW9uLmtuYXRpdmVzZXJ2aW5ncy5vcGVyYXRvci5rbmF0aXZlLmRldiIsInNpZGVFZmZlY3RzIjoiTm9uZSIsInRhcmdldFBvcnQiOjg0NDMsInR5cGUiOiJDb252ZXJzaW9uV2ViaG9vayIsIndlYmhvb2tQYXRoIjoiL3Jlc291cmNlLWNvbnZlcnNpb24ifSx7ImFkbWlzc2lvblJldmlld1ZlcnNpb25zIjpbInYxYmV0YTEiXSwiY29udGFpbmVyUG9ydCI6ODQ0MywiY29udmVyc2lvbkNSRHMiOlsia25hdGl2ZWV2ZW50aW5ncy5vcGVyYXRvci5rbmF0aXZlLmRldiJdLCJkZXBsb3ltZW50TmFtZSI6ImtuYXRpdmUtb3BlcmF0b3Itd2ViaG9vayIsImdlbmVyYXRlTmFtZSI6ImNvbnZlcnNpb24ua25hdGl2ZWV2ZW50aW5ncy5vcGVyYXRvci5rbmF0aXZlLmRldiIsInNpZGVFZmZlY3RzIjoiTm9uZSIsInRhcmdldFBvcnQiOjg0NDMsInR5cGUiOiJDb252ZXJzaW9uV2ViaG9vayIsIndlYmhvb2tQYXRoIjoiL3Jlc291cmNlLWNvbnZlcnNpb24ifV19fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoibW9uaXRvcmluZy5jb3Jlb3MuY29tL3YxIiwia2luZCI6IlNlcnZpY2VNb25pdG9yIiwibWV0YWRhdGEiOnsibGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIn0sIm5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzLW1ldHJpY3MifSwic3BlYyI6eyJlbmRwb2ludHMiOlt7InBvcnQiOiJtZXRyaWNzIn1dLCJuYW1lc3BhY2VTZWxlY3RvciI6e30sInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIn19fX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoibW9uaXRvcmluZy5jb3Jlb3MuY29tL3YxIiwia2luZCI6IlNlcnZpY2VNb25pdG9yIiwibWV0YWRhdGEiOnsibGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdCJ9LCJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtbWV0cmljcy0zIn0sInNwZWMiOnsiZW5kcG9pbnRzIjpbeyJwb3J0IjoiaHR0cC1tZXRyaWNzIn1dLCJuYW1lc3BhY2VTZWxlY3RvciI6e30sInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdCJ9fX19 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoibW9uaXRvcmluZy5jb3Jlb3MuY29tL3YxIiwia2luZCI6IlNlcnZpY2VNb25pdG9yIiwibWV0YWRhdGEiOnsibGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIn0sIm5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yLW1ldHJpY3MifSwic3BlYyI6eyJlbmRwb2ludHMiOlt7InBvcnQiOiJtZXRyaWNzIn1dLCJuYW1lc3BhY2VTZWxlY3RvciI6e30sInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIn19fX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJkYXRhIjp7Im1ldHJpY3MuYmFja2VuZC1kZXN0aW5hdGlvbiI6InByb21ldGhldXMifSwia2luZCI6IkNvbmZpZ01hcCIsIm1ldGFkYXRhIjp7Im5hbWUiOiJjb25maWctb2JzZXJ2YWJpbGl0eSJ9fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJraW5kIjoiU2VydmljZSIsIm1ldGFkYXRhIjp7ImxhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQifSwibmFtZSI6ImtuYXRpdmUtb3BlbnNoaWZ0LW1ldHJpY3MtMyJ9LCJzcGVjIjp7InBvcnRzIjpbeyJuYW1lIjoiaHR0cC1jbGkiLCJwb3J0Ijo4MDgwLCJwcm90b2NvbCI6IlRDUCIsInRhcmdldFBvcnQiOiJodHRwLWNsaSJ9LHsibmFtZSI6Imh0dHAtbWV0cmljcyIsInBvcnQiOjgzODMsInByb3RvY29sIjoiVENQIiwidGFyZ2V0UG9ydCI6ODM4M31dLCJzZWxlY3RvciI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQifSwidHlwZSI6IkNsdXN0ZXJJUCJ9fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJraW5kIjoiU2VydmljZSIsIm1ldGFkYXRhIjp7ImxhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcyJ9LCJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcy1tZXRyaWNzIn0sInNwZWMiOnsicG9ydHMiOlt7Im5hbWUiOiJtZXRyaWNzIiwicG9ydCI6OTA5MCwicHJvdG9jb2wiOiJUQ1AiLCJ0YXJnZXRQb3J0Ijo5MDkwfV0sInNlbGVjdG9yIjp7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIn0sInR5cGUiOiJDbHVzdGVySVAifX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJraW5kIjoiU2VydmljZSIsIm1ldGFkYXRhIjp7ImxhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVyYXRvciJ9LCJuYW1lIjoia25hdGl2ZS1vcGVyYXRvci1tZXRyaWNzIn0sInNwZWMiOnsicG9ydHMiOlt7Im5hbWUiOiJtZXRyaWNzIiwicG9ydCI6OTA5MCwicHJvdG9jb2wiOiJUQ1AiLCJ0YXJnZXRQb3J0Ijo5MDkwfV0sInNlbGVjdG9yIjp7Im5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIn0sInR5cGUiOiJDbHVzdGVySVAifX0= +relatedImages: +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3 + name: "" +- image: registry.access.redhat.com/ubi8/nodejs-20-minimal@sha256:a2a7e399aaf09a48c28f40820da16709b62aee6f2bc703116b9345fab5830861 + name: IMAGE_KN_PLUGIN_FUNC_NODEJS_20_MINIMAL +- image: registry.access.redhat.com/ubi8/openjdk-21@sha256:441897a1f691c7d4b3a67bb3e0fea83e18352214264cb383fd057bbbd5ed863c + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_21 +- image: registry.access.redhat.com/ubi8/python-39@sha256:27e795fd6b1b77de70d1dc73a65e4c790650748a9cfda138fdbd194b3d6eea3d + name: IMAGE_KN_PLUGIN_FUNC_PYTHON_39 +- image: registry.redhat.io/openshift-serverless-1/kn-backstage-plugins-eventmesh-rhel8@sha256:3bc34867f7a620bcdace67e65a0ffb51aead5e4aa1f10cd0eb7476fe8ed1af12 + name: IMAGE_eventmesh-backend__controller +- image: registry.redhat.io/openshift-serverless-1/kn-client-cli-artifacts-rhel8@sha256:b3763ff0d9bebf8ff5ff2570a9ffeaaf4af6e41e41f5af5f810539fee318ad7b + name: IMAGE_KN_CLIENT_CLI_ARTIFACTS +- image: registry.redhat.io/openshift-serverless-1/kn-client-kn-rhel8@sha256:71aa09b98d91006be2a81ac033f72df7256a938902361308b8eb36ea198698c3 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-kafka-controller-rhel8@sha256:745f107385876151cea7d6a1923df128664d709a3bc244598e044982b1224f79 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-post-install-rhel8@sha256:f19e0176cddae017da03eb40e2c2aad6076fd306bb8aaab8f9b793adda84d002 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-webhook-kafka-rhel8@sha256:21204d08fb9da8c45d057e3aba6e4cfa7e75c0efebfec4029be75750a510961b + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-apiserver-receive-adapter-rhel8@sha256:c906cd4a1c42389c7e4b38db57858fac2250b6357eff0da048e8c6acdb95ba93 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-controller-rhel8@sha256:dc5e18074913cee045feb5b1318908b7166ea735b33223ecc8943a09d0853d43 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8@sha256:53a6a5dfb39f83389b10389488f4d7aba6a5342f411ff7efa41bab30d89d9646 + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8@sha256:53a6a5dfb39f83389b10389488f4d7aba6a5342f411ff7efa41bab30d89d9646 + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-controller-rhel8@sha256:804301d315c8d6958d128fd5951184437f755674d8ec5a4582d6128e989b966a + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-filter-rhel8@sha256:605f8ab48e761f88de43b4aac439d6576fed46d6d9659a7cb7d0c3d2d87ca55a + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-ingress-rhel8@sha256:62548e94ecf52cd50b3df7fc2cb275ce31f18037cd283b90b7987eb8f38f1dc6 + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-ddb-streams-source-rhel8@sha256:6ada46f655e13db6e8fded4db7ec308123cf8307c1ef171b7eb7eca264ee2c27 + name: IMAGE_INTEGRATION_SOURCE_AWS_DDB_STREAMS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-sink-rhel8@sha256:94d58900cb62d64379f3b9b27cf7f69173d40b115b6d843b9e83839a0080a0a1 + name: IMAGE_INTEGRATION_SINK_AWS_S3_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-source-rhel8@sha256:ee38b68e98bf9adb94554fd4b3a3aec3b533cb407dd0e0afca7f37e10d6553d9 + name: IMAGE_INTEGRATION_SOURCE_AWS_S3_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sns-sink-rhel8@sha256:31ae667a47370e107384d1253c7fe0b708443f9f991210ded167591b4e69cef5 + name: IMAGE_INTEGRATION_SINK_AWS_SNS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-sink-rhel8@sha256:f97257f0af537ffed1ff6fd0bb0a8db58b5b6a44559d0136cc5f134e8ff34f2a + name: IMAGE_INTEGRATION_SINK_AWS_SQS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-source-rhel8@sha256:86e55986b9499e0a9ccbef59a2fb85de3663fe86897d25dba54101e9101b1b91 + name: IMAGE_INTEGRATION_SOURCE_AWS_SQS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-log-sink-rhel8@sha256:e0f0b9f7d8ced97919844bb4c342ce89c5ff22c6cc764d62f680d0f3eba319b1 + name: IMAGE_INTEGRATION_SINK_LOG_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-timer-source-rhel8@sha256:8ec51f809196384f9b83ef5789b12b6358772a761a7055129da572254381eeef + name: IMAGE_INTEGRATION_SOURCE_TIMER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-transform-jsonata-rhel8@sha256:0b618c9c892428a59e0499a3ed0ebefa2c0981699817433159bfcaf683743597 + name: IMAGE_EVENT_TRANSFORM_JSONATA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-istio-controller-rhel8@sha256:20ae2da1e8d82d319e256c6c81299ef842ca34d57c6964d61e00a275a41159b4 + name: IMAGE_eventing-istio-controller__eventing-istio-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-jobsink-rhel8@sha256:cfdbd68b78e947590e633b6680d7b85cfd394ea42287d3dfc81b7823a3ab66bd + name: IMAGE_job-sink__job-sink +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-migrate-rhel8@sha256:64fb4b0b18f4b8e9bd86470ca36f2f4187111ed44b6cce5d16d3a43443c00489 + name: IMAGE_storage-version-migration-eventing-__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-migrate-rhel8@sha256:64fb4b0b18f4b8e9bd86470ca36f2f4187111ed44b6cce5d16d3a43443c00489 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-mtchannel-broker-rhel8@sha256:edc19e311947053dbceb21d5225ad52a48f61eb3c079e0f92f97ba311bb121f7 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-mtping-rhel8@sha256:4e633f68a3c36f1d99ef914a1a7296aeb6fe55d969fd48de916a272b5971c7e6 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-webhook-rhel8@sha256:ca8a6193425f4b2750d58d6b1da421244aa077a44a34b4184e35b9d94c9433fb + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel8@sha256:f7795088777ea84fc6180b81b6131962944e34918e2c06671033a1a572581773 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/kn-plugin-func-func-util-rhel8@sha256:598110e9b91c398e6f7ea6215a69f9562337968a024ded8e0f19736c5fb53457 + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/kn-serving-activator-rhel8@sha256:042ce1e7be10a5f51f9487af0196cb249f5d8e6821ce7c2ab05c532b7a18438c + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-hpa-rhel8@sha256:4fa0ce7ac1351aa4cbe858472bf9f953942961a5430f85be5656f29508d254db + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-rhel8@sha256:0b69fc839f5651bfffcbf86366f94da0ec3e29e6c217a26ffce7bd76fbda0939 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/kn-serving-controller-rhel8@sha256:50a62bf641a124dba37262da1e82ef14e6b6ccb4c8573fa537c19d3b1b77a627 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-serving-queue-rhel8@sha256:3133c177fcbfd4abb89b273a7ce2fb220e051ce956193b1d149c7a040fc07e83 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/kn-serving-storage-version-migration-rhel8@sha256:fbe462695b3e703d4722277a617c6ef06fb37c07366ba5c6211dd56b5038c130 + name: IMAGE_storage-version-migration-serving-__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-serving-webhook-rhel8@sha256:de45a60bc45e1b67c6f88eb1c885bda12cc136336dc5fb2e0b8cbf63aa62a6bf + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:7655ec95e5829d3d786039cc6c690c9fb442dc85f1c88481cf34f9a6f1684039 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:fa8ebb70b6f1510c55a03baec99d3497d6afb930152ff3731fe57211675aadc0 + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/net-kourier-kourier-rhel8@sha256:90e322e3304222199efc9bfa2545250dde2b22403666c5e00372bdaeaa18ddee + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/serverless-ingress-rhel8@sha256:29613545bf1758b67977793963ab34fb2f6d1f3d4f5b4158ad4c92adfee20c5a + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/serverless-kn-operator-rhel8@sha256:abf97790726da129fab4b62b9bc7b3c4f225c1fb68550359be44a011e60d54f3 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8@sha256:58f3e1806fecdb4d030646ccefd1a147bffef21eee1233487ccdab330e8d4e1d + name: IMAGE_MUST_GATHER +- image: registry.redhat.io/openshift-serverless-1/serverless-openshift-kn-rhel8-operator@sha256:f1a13725567de357de4246b87a2ed64b3dce02c7406b8621ad8d2bbeacc0ccfa + name: knative-operator +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:1c19cf86fd05940ef3d0d6e79e6f371db993153f70baedb9107bbe73f236dc24 + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:67651adfd8e6c8d12d2b9585c723d5fbdb664818f803312bfe3522e04a81e9b0 + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +schema: olm.bundle diff --git a/olm-catalog/serverless-operator-index/v4.15/catalog-template.yaml b/olm-catalog/serverless-operator-index/v4.15/catalog-template.yaml index 86b968e913..aabf69f4af 100644 --- a/olm-catalog/serverless-operator-index/v4.15/catalog-template.yaml +++ b/olm-catalog/serverless-operator-index/v4.15/catalog-template.yaml @@ -1,519 +1,525 @@ ---- entries: -- defaultChannel: stable - icon: - base64data: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOCIgaGVpZ2h0PSIzOCIgdmlld0JveD0iMCAwIDM4IDM4Ij48ZGVmcz48c3R5bGU+LmF7ZmlsbDojZmZmO30uYntmaWxsOiNlMDA7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJhIiBkPSJNMjgsMUgxMGE5LDksMCwwLDAtOSw5VjI4YTksOSwwLDAsMCw5LDlIMjhhOSw5LDAsMCwwLDktOVYxMGE5LDksMCwwLDAtOS05WiIvPjxwYXRoIGQ9Ik0yOCwyLjI1QTcuNzU4Nyw3Ljc1ODcsMCwwLDEsMzUuNzUsMTBWMjhBNy43NTg3LDcuNzU4NywwLDAsMSwyOCwzNS43NUgxMEE3Ljc1ODcsNy43NTg3LDAsMCwxLDIuMjUsMjhWMTBBNy43NTg3LDcuNzU4NywwLDAsMSwxMCwyLjI1SDI4TTI4LDFIMTBhOSw5LDAsMCwwLTksOVYyOGE5LDksMCwwLDAsOSw5SDI4YTksOSwwLDAsMCw5LTlWMTBhOSw5LDAsMCwwLTktOVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTE0LDIzLjQ3NjZIMTBhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNCwyMy40NzY2Wm0tMy4zNzUtMS4yNWgyLjc1di0yLjc1aC0yLjc1WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMjEsMjMuNDc2NkgxN2EuNjI1My42MjUzLDAsMCwxLS42MjUtLjYyNXYtNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUtLjYyNWg0YS42MjUyLjYyNTIsMCwwLDEsLjYyNS42MjV2NEEuNjI1My42MjUzLDAsMCwxLDIxLDIzLjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNy41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNy41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yNC41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwyNC41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yOCwyMy40NzY2SDI0YS42MjUzLjYyNTMsMCwwLDEtLjYyNS0uNjI1di00YS42MjUyLjYyNTIsMCwwLDEsLjYyNS0uNjI1aDRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LjYyNXY0QS42MjUzLjYyNTMsMCwwLDEsMjgsMjMuNDc2NlptLTMuMzc1LTEuMjVoMi43NXYtMi43NWgtMi43NVoiLz48cGF0aCBkPSJNMjksMjYuNDc2Nkg5YS42MjUuNjI1LDAsMCwxLDAtMS4yNUgyOWEuNjI1LjYyNSwwLDAsMSwwLDEuMjVaIi8+PC9zdmc+ - mediatype: image/svg+xml - name: serverless-operator - schema: olm.package -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.36.0 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.36.0' - name: stable - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.29.1 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.29.1' - name: stable-1.29 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.30.2 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.30.2' - name: stable-1.30 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.31.1 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.31.1' - name: stable-1.31 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.32.2 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.32.2' - name: stable-1.32 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.33.3 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.33.3' - name: stable-1.33 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.34.1 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.34.1' - name: stable-1.34 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.35.1 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.35.1' - name: stable-1.35 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.36.0 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.36.0' - name: stable-1.36 - package: serverless-operator - schema: olm.channel -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:003a5c5c3682db69aa57da4c05ed3ccbaf94fb80a4972c8ddcf91eb3d5e299b9 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:1905984e13c9d165aad06f954904fc33d3f3a6e2f0041f98bc5840d05a87abaf - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0d73e731e7defc5d1da1aa3a347b419ce5d6f2b6b880403cb2e0871a8b3bb240 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:8da1dda3de163dc82927ad732d560e9c5c7daca3a8d3b46110b561441c483af9 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0422f8843fc62c2b72e01ffefd33db912a1ad3d70ac297882d3663c9b7299f10 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:edb6116289b3c722aca7614eb06b655e2081ebda74a9b7a82261ae1fa1e76408 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0516545990ec466969730d43136016c10e7dc34f633bf2646463d12145d9f917 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:832677abddada05258b4610b6584d442dd20c5bdd55ae8fbddb83ac133b3f12e - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2f82fcdc9a5424a2e195fda62ce0a018970e0211f253eb0d5ae47a72dd0bb6fc - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91b90a9ba578595836772b4f7ecccebf77d1dcaf04c62e3f532d9beed90eb465 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:12373623440b5b1aaea228550674ee69fe926ac6f12e7adffb5592afe1b98fca - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:16b39335e97bcc7c970a8ba385c61d8333e9912faaee813ccf8520d434b7bb7a - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:ffcf75e33c5bf527488fc196bd94bf615ac06ba5735d87cf568777f27817d214 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:51ac9aced282f62c8fb2d3696da3696b8496d8f877e9846fe3a4a743ccd63bea - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:469ae5fc8a478d6d06b13e218a000f34dd988eb69a9488a6349d67c76bda5b49 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:a82288782b61ea46d068cc09ee10608d3201c136abfc767e4d37734775101390 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:b84351200cba437c323f7f21d0cb58e0a443d772376a9ea6de1278a68d1c2c7d - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:828d31bf8a441091b8aed03da213a6b4ffae260070eff58c3319156f9bf04f5a - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:9bee3204d9fafe46f9f188e7ea10ac4843eaaf72a5f9dda68f6d8d7a92310218 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:f938cc534fc4b24bb9449f1e1e1e904dc588e6646c98474de4b8c81d083b4d96 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:82b9bfb8b83701db1a9b891d1ffc1e782d4b0f971fc9a53525942845c2602934 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:095629572a40469eb651c9f81d6c10ff46254eff8b9813cadce54d6f0075c2fb - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:93b945eb2361b07bc86d67a9a7d77a0301a0bad876c83a9a64af2cfb86c83bff - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91456907c61952017daf07e376b565472ef86d67a2925f60e189c639ceb68595 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2d675f8bf31b0cfb64503ee72e082183b7b11979d65eb636fc83f4f3a25fa5d0 - schema: olm.bundle + - defaultChannel: stable + icon: + base64data: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOCIgaGVpZ2h0PSIzOCIgdmlld0JveD0iMCAwIDM4IDM4Ij48ZGVmcz48c3R5bGU+LmF7ZmlsbDojZmZmO30uYntmaWxsOiNlMDA7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJhIiBkPSJNMjgsMUgxMGE5LDksMCwwLDAtOSw5VjI4YTksOSwwLDAsMCw5LDlIMjhhOSw5LDAsMCwwLDktOVYxMGE5LDksMCwwLDAtOS05WiIvPjxwYXRoIGQ9Ik0yOCwyLjI1QTcuNzU4Nyw3Ljc1ODcsMCwwLDEsMzUuNzUsMTBWMjhBNy43NTg3LDcuNzU4NywwLDAsMSwyOCwzNS43NUgxMEE3Ljc1ODcsNy43NTg3LDAsMCwxLDIuMjUsMjhWMTBBNy43NTg3LDcuNzU4NywwLDAsMSwxMCwyLjI1SDI4TTI4LDFIMTBhOSw5LDAsMCwwLTksOVYyOGE5LDksMCwwLDAsOSw5SDI4YTksOSwwLDAsMCw5LTlWMTBhOSw5LDAsMCwwLTktOVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTE0LDIzLjQ3NjZIMTBhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNCwyMy40NzY2Wm0tMy4zNzUtMS4yNWgyLjc1di0yLjc1aC0yLjc1WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMjEsMjMuNDc2NkgxN2EuNjI1My42MjUzLDAsMCwxLS42MjUtLjYyNXYtNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUtLjYyNWg0YS42MjUyLjYyNTIsMCwwLDEsLjYyNS42MjV2NEEuNjI1My42MjUzLDAsMCwxLDIxLDIzLjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNy41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNy41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yNC41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwyNC41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yOCwyMy40NzY2SDI0YS42MjUzLjYyNTMsMCwwLDEtLjYyNS0uNjI1di00YS42MjUyLjYyNTIsMCwwLDEsLjYyNS0uNjI1aDRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LjYyNXY0QS42MjUzLjYyNTMsMCwwLDEsMjgsMjMuNDc2NlptLTMuMzc1LTEuMjVoMi43NXYtMi43NWgtMi43NVoiLz48cGF0aCBkPSJNMjksMjYuNDc2Nkg5YS42MjUuNjI1LDAsMCwxLDAtMS4yNUgyOWEuNjI1LjYyNSwwLDAsMSwwLDEuMjVaIi8+PC9zdmc+ + mediatype: image/svg+xml + name: serverless-operator + schema: olm.package + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.36.0 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.36.0' + - name: "serverless-operator.v1.36.1" + replaces: "serverless-operator.v1.36.0" + skipRange: ">=1.36.0 <1.36.1" + name: stable + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.29.1 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.29.1' + name: stable-1.29 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.30.2 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.30.2' + name: stable-1.30 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.31.1 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.31.1' + name: stable-1.31 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.32.2 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.32.2' + name: stable-1.32 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.33.3 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.33.3' + name: stable-1.33 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.34.1 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.34.1' + name: stable-1.34 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.35.1 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.35.1' + name: stable-1.35 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.36.0 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.36.0' + - name: "serverless-operator.v1.36.1" + replaces: "serverless-operator.v1.36.0" + skipRange: ">=1.36.0 <1.36.1" + name: stable-1.36 + package: serverless-operator + schema: olm.channel + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:003a5c5c3682db69aa57da4c05ed3ccbaf94fb80a4972c8ddcf91eb3d5e299b9 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:1905984e13c9d165aad06f954904fc33d3f3a6e2f0041f98bc5840d05a87abaf + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0d73e731e7defc5d1da1aa3a347b419ce5d6f2b6b880403cb2e0871a8b3bb240 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:8da1dda3de163dc82927ad732d560e9c5c7daca3a8d3b46110b561441c483af9 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0422f8843fc62c2b72e01ffefd33db912a1ad3d70ac297882d3663c9b7299f10 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:edb6116289b3c722aca7614eb06b655e2081ebda74a9b7a82261ae1fa1e76408 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0516545990ec466969730d43136016c10e7dc34f633bf2646463d12145d9f917 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:832677abddada05258b4610b6584d442dd20c5bdd55ae8fbddb83ac133b3f12e + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2f82fcdc9a5424a2e195fda62ce0a018970e0211f253eb0d5ae47a72dd0bb6fc + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91b90a9ba578595836772b4f7ecccebf77d1dcaf04c62e3f532d9beed90eb465 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:12373623440b5b1aaea228550674ee69fe926ac6f12e7adffb5592afe1b98fca + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:16b39335e97bcc7c970a8ba385c61d8333e9912faaee813ccf8520d434b7bb7a + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:ffcf75e33c5bf527488fc196bd94bf615ac06ba5735d87cf568777f27817d214 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:51ac9aced282f62c8fb2d3696da3696b8496d8f877e9846fe3a4a743ccd63bea + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:469ae5fc8a478d6d06b13e218a000f34dd988eb69a9488a6349d67c76bda5b49 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:a82288782b61ea46d068cc09ee10608d3201c136abfc767e4d37734775101390 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:b84351200cba437c323f7f21d0cb58e0a443d772376a9ea6de1278a68d1c2c7d + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:828d31bf8a441091b8aed03da213a6b4ffae260070eff58c3319156f9bf04f5a + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:9bee3204d9fafe46f9f188e7ea10ac4843eaaf72a5f9dda68f6d8d7a92310218 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:f938cc534fc4b24bb9449f1e1e1e904dc588e6646c98474de4b8c81d083b4d96 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:82b9bfb8b83701db1a9b891d1ffc1e782d4b0f971fc9a53525942845c2602934 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:095629572a40469eb651c9f81d6c10ff46254eff8b9813cadce54d6f0075c2fb + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:93b945eb2361b07bc86d67a9a7d77a0301a0bad876c83a9a64af2cfb86c83bff + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91456907c61952017daf07e376b565472ef86d67a2925f60e189c639ceb68595 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2d675f8bf31b0cfb64503ee72e082183b7b11979d65eb636fc83f4f3a25fa5d0 + schema: olm.bundle + - schema: "olm.bundle" + image: "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3" schema: olm.template.basic - diff --git a/olm-catalog/serverless-operator-index/v4.15/catalog/serverless-operator/catalog.yaml b/olm-catalog/serverless-operator-index/v4.15/catalog/serverless-operator/catalog.yaml index 50f12820f4..58347a7d83 100644 --- a/olm-catalog/serverless-operator-index/v4.15/catalog/serverless-operator/catalog.yaml +++ b/olm-catalog/serverless-operator-index/v4.15/catalog/serverless-operator/catalog.yaml @@ -61,6 +61,9 @@ entries: - name: serverless-operator.v1.36.0 replaces: serverless-operator.v1.35.0 skipRange: '>=1.35.0 <1.36.0' +- name: serverless-operator.v1.36.1 + replaces: serverless-operator.v1.36.0 + skipRange: '>=1.36.0 <1.36.1' name: stable package: serverless-operator schema: olm.channel @@ -470,6 +473,9 @@ entries: - name: serverless-operator.v1.36.0 replaces: serverless-operator.v1.35.0 skipRange: '>=1.35.0 <1.36.0' +- name: serverless-operator.v1.36.1 + replaces: serverless-operator.v1.36.0 + skipRange: '>=1.36.0 <1.36.1' name: stable-1.36 package: serverless-operator schema: olm.channel @@ -4356,3 +4362,178 @@ relatedImages: - image: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74 name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3 +name: serverless-operator.v1.36.1 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.36.1 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsibGFiZWxzIjp7ImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIiwiYXBwLmt1YmVybmV0ZXMuaW8vdmVyc2lvbiI6ImRldmVsIn0sIm5hbWUiOiJrbmF0aXZlZXZlbnRpbmdzLm9wZXJhdG9yLmtuYXRpdmUuZGV2In0sInNwZWMiOnsiY29udmVyc2lvbiI6eyJzdHJhdGVneSI6IldlYmhvb2siLCJ3ZWJob29rIjp7ImNsaWVudENvbmZpZyI6eyJzZXJ2aWNlIjp7Im5hbWUiOiJvcGVyYXRvci13ZWJob29rIiwibmFtZXNwYWNlIjoia25hdGl2ZS1vcGVyYXRvciIsInBhdGgiOiIvcmVzb3VyY2UtY29udmVyc2lvbiJ9fSwiY29udmVyc2lvblJldmlld1ZlcnNpb25zIjpbInYxYmV0YTEiXX19LCJncm91cCI6Im9wZXJhdG9yLmtuYXRpdmUuZGV2IiwibmFtZXMiOnsia2luZCI6IktuYXRpdmVFdmVudGluZyIsImxpc3RLaW5kIjoiS25hdGl2ZUV2ZW50aW5nTGlzdCIsInBsdXJhbCI6ImtuYXRpdmVldmVudGluZ3MiLCJzaW5ndWxhciI6ImtuYXRpdmVldmVudGluZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3siYWRkaXRpb25hbFByaW50ZXJDb2x1bW5zIjpbeyJqc29uUGF0aCI6Ii5zdGF0dXMudmVyc2lvbiIsIm5hbWUiOiJWZXJzaW9uIiwidHlwZSI6InN0cmluZyJ9LHsianNvblBhdGgiOiIuc3RhdHVzLmNvbmRpdGlvbnNbPyhALnR5cGU9PVwiUmVhZHlcIildLnN0YXR1cyIsIm5hbWUiOiJSZWFkeSIsInR5cGUiOiJzdHJpbmcifSx7Impzb25QYXRoIjoiLnN0YXR1cy5jb25kaXRpb25zWz8oQC50eXBlPT1cIlJlYWR5XCIpXS5yZWFzb24iLCJuYW1lIjoiUmVhc29uIiwidHlwZSI6InN0cmluZyJ9XSwibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiU2NoZW1hIGZvciB0aGUga25hdGl2ZWV2ZW50aW5ncyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIEtuYXRpdmVFdmVudGluZyIsInByb3BlcnRpZXMiOnsiY29uZmlnIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6Im9iamVjdCJ9LCJkZXNjcmlwdGlvbiI6IkEgbWVhbnMgdG8gb3ZlcnJpZGUgdGhlIGNvcnJlc3BvbmRpbmcgZW50cmllcyBpbiB0aGUgdXBzdHJlYW0gY29uZmlnbWFwcyIsInR5cGUiOiJvYmplY3QifSwiZGVmYXVsdEJyb2tlckNsYXNzIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGRlZmF1bHQgYnJva2VyIHR5cGUgdG8gdXNlIGZvciB0aGUgYnJva2VycyBLbmF0aXZlIGNyZWF0ZXMuIElmIG5vIHZhbHVlIGlzIHByb3ZpZGVkLCBNVENoYW5uZWxCYXNlZEJyb2tlciB3aWxsIGJlIHVzZWQuIiwidHlwZSI6InN0cmluZyJ9LCJkZXBsb3ltZW50cyI6eyJkZXNjcmlwdGlvbiI6IkEgbWFwcGluZyBvZiBkZXBsb3ltZW50IG5hbWUgdG8gb3ZlcnJpZGUiLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7ImFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3Mgc2NoZWR1bGluZyBjb25zdHJhaW50cy4iLCJwcm9wZXJ0aWVzIjp7Im5vZGVBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBub2RlIGFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgZm9yIHRoZSBwb2QuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnkgdGhlIGFmZmluaXR5IGV4cHJlc3Npb25zIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkLCBidXQgaXQgbWF5IGNob29zZSBhIG5vZGUgdGhhdCB2aW9sYXRlcyBvbmUgb3IgbW9yZSBvZiB0aGUgZXhwcmVzc2lvbnMuIFRoZSBub2RlIHRoYXQgaXMgbW9zdCBwcmVmZXJyZWQgaXMgdGhlIG9uZSB3aXRoIHRoZSBncmVhdGVzdCBzdW0gb2Ygd2VpZ2h0cywgaS5lLiBmb3IgZWFjaCBub2RlIHRoYXQgbWVldHMgYWxsIG9mIHRoZSBzY2hlZHVsaW5nIHJlcXVpcmVtZW50cyAocmVzb3VyY2UgcmVxdWVzdCwgcmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nIGFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSwgY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nIFwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIG1hdGNoRXhwcmVzc2lvbnM7IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBbiBlbXB0eSBwcmVmZXJyZWQgc2NoZWR1bGluZyB0ZXJtIG1hdGNoZXMgYWxsIG9iamVjdHMgd2l0aCBpbXBsaWNpdCB3ZWlnaHQgMCAoaS5lLiBpdCdzIGEgbm8tb3ApLiBBIG51bGwgcHJlZmVycmVkIHNjaGVkdWxpbmcgdGVybSBtYXRjaGVzIG5vIG9iamVjdHMgKGkuZS4gaXMgYWxzbyBhIG5vLW9wKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcmVuY2UiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGxhYmVscy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hGaWVsZHMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGZpZWxkcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwid2VpZ2h0Ijp7ImRlc2NyaXB0aW9uIjoiV2VpZ2h0IGFzc29jaWF0ZWQgd2l0aCBtYXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBub2RlU2VsZWN0b3JUZXJtLCBpbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicHJlZmVyZW5jZSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBhcmUgbm90IG1ldCBhdCBzY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuIElmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGFuIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiIsInByb3BlcnRpZXMiOnsibm9kZVNlbGVjdG9yVGVybXMiOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgdGVybXMuIFRoZSB0ZXJtcyBhcmUgT1JlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbnVsbCBvciBlbXB0eSBub2RlIHNlbGVjdG9yIHRlcm0gbWF0Y2hlcyBubyBvYmplY3RzLiBUaGUgcmVxdWlyZW1lbnRzIG9mIHRoZW0gYXJlIEFORGVkLiBUaGUgVG9wb2xvZ3lTZWxlY3RvclRlcm0gdHlwZSBpbXBsZW1lbnRzIGEgc3Vic2V0IG9mIHRoZSBOb2RlU2VsZWN0b3JUZXJtLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgbGFiZWxzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaEZpZWxkcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgZmllbGRzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbIm5vZGVTZWxlY3RvclRlcm1zIl0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicG9kQWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJEZXNjcmliZXMgcG9kIGFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgKGUuZy4gY28tbG9jYXRlIHRoaXMgcG9kIGluIHRoZSBzYW1lIG5vZGUsIHpvbmUsIGV0Yy4gYXMgc29tZSBvdGhlciBwb2QocykpLiIsInByb3BlcnRpZXMiOnsicHJlZmVycmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgc2NoZWR1bGVyIHdpbGwgcHJlZmVyIHRvIHNjaGVkdWxlIHBvZHMgdG8gbm9kZXMgdGhhdCBzYXRpc2Z5IHRoZSBhZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgaGFzIHBvZHMgd2hpY2ggbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm07IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgd2VpZ2h0cyBvZiBhbGwgb2YgdGhlIG1hdGNoZWQgV2VpZ2h0ZWRQb2RBZmZpbml0eVRlcm0gZmllbGRzIGFyZSBhZGRlZCBwZXItbm9kZSB0byBmaW5kIHRoZSBtb3N0IHByZWZlcnJlZCBub2RlKHMpIiwicHJvcGVydGllcyI6eyJwb2RBZmZpbml0eVRlcm0iOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBwb2QgYWZmaW5pdHkgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ3ZWlnaHQiOnsiZGVzY3JpcHRpb24iOiJ3ZWlnaHQgYXNzb2NpYXRlZCB3aXRoIG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInBvZEFmZmluaXR5VGVybSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBhcmUgbm90IG1ldCBhdCBzY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuIElmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGEgcG9kIGxhYmVsIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiBXaGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBlbGVtZW50cywgdGhlIGxpc3RzIG9mIG5vZGVzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb2RBZmZpbml0eVRlcm0gYXJlIGludGVyc2VjdGVkLCBpLmUuIGFsbCB0ZXJtcyBtdXN0IGJlIHNhdGlzZmllZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkRlZmluZXMgYSBzZXQgb2YgcG9kcyAobmFtZWx5IHRob3NlIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIHJlbGF0aXZlIHRvIHRoZSBnaXZlbiBuYW1lc3BhY2UocykpIHRoYXQgdGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCwgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSBcdTAwM2N0b3BvbG9neUtleVx1MDAzZSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYSBwb2Qgb2YgdGhlIHNldCBvZiBwb2RzIGlzIHJ1bm5pbmciLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwicG9kQW50aUFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiRGVzY3JpYmVzIHBvZCBhbnRpLWFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgKGUuZy4gYXZvaWQgcHV0dGluZyB0aGlzIHBvZCBpbiB0aGUgc2FtZSBub2RlLCB6b25lLCBldGMuIGFzIHNvbWUgb3RoZXIgcG9kKHMpKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcnJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHNjaGVkdWxlciB3aWxsIHByZWZlciB0byBzY2hlZHVsZSBwb2RzIHRvIG5vZGVzIHRoYXQgc2F0aXNmeSB0aGUgYW50aS1hZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhbnRpLWFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSwgY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nIFwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBoYXMgcG9kcyB3aGljaCBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybTsgdGhlIG5vZGUocykgd2l0aCB0aGUgaGlnaGVzdCBzdW0gYXJlIHRoZSBtb3N0IHByZWZlcnJlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSB3ZWlnaHRzIG9mIGFsbCBvZiB0aGUgbWF0Y2hlZCBXZWlnaHRlZFBvZEFmZmluaXR5VGVybSBmaWVsZHMgYXJlIGFkZGVkIHBlci1ub2RlIHRvIGZpbmQgdGhlIG1vc3QgcHJlZmVycmVkIG5vZGUocykiLCJwcm9wZXJ0aWVzIjp7InBvZEFmZmluaXR5VGVybSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkLiBBIHBvZCBhZmZpbml0eSB0ZXJtLCBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgd2VpZ2h0LiIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMsIGluIHRoaXMgY2FzZSBwb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibmFtZXNwYWNlcyI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZXMgc3BlY2lmaWVzIHdoaWNoIG5hbWVzcGFjZXMgdGhlIGxhYmVsU2VsZWN0b3IgYXBwbGllcyB0byAobWF0Y2hlcyBhZ2FpbnN0KTsgbnVsbCBvciBlbXB0eSBsaXN0IG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCB0aGUgcG9kcyBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciBpbiB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGUgc2VsZWN0ZWQgcG9kcyBpcyBydW5uaW5nLiBFbXB0eSB0b3BvbG9neUtleSBpcyBub3QgYWxsb3dlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0b3BvbG9neUtleSJdLCJ0eXBlIjoib2JqZWN0In0sIndlaWdodCI6eyJkZXNjcmlwdGlvbiI6IndlaWdodCBhc3NvY2lhdGVkIHdpdGggbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtLCBpbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicG9kQWZmaW5pdHlUZXJtIiwid2VpZ2h0Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJJZiB0aGUgYW50aS1hZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYW50aS1hZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGEgcG9kIGxhYmVsIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiBXaGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBlbGVtZW50cywgdGhlIGxpc3RzIG9mIG5vZGVzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb2RBZmZpbml0eVRlcm0gYXJlIGludGVyc2VjdGVkLCBpLmUuIGFsbCB0ZXJtcyBtdXN0IGJlIHNhdGlzZmllZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkRlZmluZXMgYSBzZXQgb2YgcG9kcyAobmFtZWx5IHRob3NlIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIHJlbGF0aXZlIHRvIHRoZSBnaXZlbiBuYW1lc3BhY2UocykpIHRoYXQgdGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCwgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSBcdTAwM2N0b3BvbG9neUtleVx1MDAzZSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYSBwb2Qgb2YgdGhlIHNldCBvZiBwb2RzIGlzIHJ1bm5pbmciLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBkZXBsb3ltZW50IGFuZCBpdHMgdGVtcGxhdGUuIiwidHlwZSI6Im9iamVjdCJ9LCJlbnYiOnsiZGVzY3JpcHRpb24iOiJFbnYgb3ZlcnJpZGVzIGVudiB2YXJzIGZvciB0aGUgY29udGFpbmVycy4iLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZW52VmFycyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBkZXNpcmVkIEVudlZhclJlcXVpcmVtZW50cyIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRW52VmFyIHJlcHJlc2VudHMgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgcHJlc2VudCBpbiBhIENvbnRhaW5lci4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZS4gTXVzdCBiZSBhIENfSURFTlRJRklFUi4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFyaWFibGUgcmVmZXJlbmNlcyAkKFZBUl9OQU1FKSBhcmUgZXhwYW5kZWQgdXNpbmcgdGhlIHByZXZpb3VzbHkgZGVmaW5lZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW4gdGhlIGNvbnRhaW5lciBhbmQgYW55IHNlcnZpY2UgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxlIGNhbm5vdCBiZSByZXNvbHZlZCwgdGhlIHJlZmVyZW5jZSBpbiB0aGUgaW5wdXQgc3RyaW5nIHdpbGwgYmUgdW5jaGFuZ2VkLiBEb3VibGUgJCQgYXJlIHJlZHVjZWQgdG8gYSBzaW5nbGUgJCwgd2hpY2ggYWxsb3dzIGZvciBlc2NhcGluZyB0aGUgJChWQVJfTkFNRSkgc3ludGF4OiBpLmUuIFwiJCQoVkFSX05BTUUpXCIgd2lsbCBwcm9kdWNlIHRoZSBzdHJpbmcgbGl0ZXJhbCBcIiQoVkFSX05BTUUpXCIuIEVzY2FwZWQgcmVmZXJlbmNlcyB3aWxsIG5ldmVyIGJlIGV4cGFuZGVkLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHZhcmlhYmxlIGV4aXN0cyBvciBub3QuIERlZmF1bHRzIHRvIFwiXCIuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZUZyb20iOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgZm9yIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSdzIHZhbHVlLiBDYW5ub3QgYmUgdXNlZCBpZiB2YWx1ZSBpcyBub3QgZW1wdHkuIiwicHJvcGVydGllcyI6eyJjb25maWdNYXBLZXlSZWYiOnsiZGVzY3JpcHRpb24iOiJTZWxlY3RzIGEga2V5IG9mIGEgQ29uZmlnTWFwLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGtleSB0byBzZWxlY3QuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgcmVmZXJlbnQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbmFtZXMvI25hbWVzIFRPRE86IEFkZCBvdGhlciB1c2VmdWwgZmllbGRzLiBhcGlWZXJzaW9uLCBraW5kLCB1aWQ/IiwidHlwZSI6InN0cmluZyJ9LCJvcHRpb25hbCI6eyJkZXNjcmlwdGlvbiI6IlNwZWNpZnkgd2hldGhlciB0aGUgQ29uZmlnTWFwIG9yIGl0cyBrZXkgbXVzdCBiZSBkZWZpbmVkIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImtleSJdLCJ0eXBlIjoib2JqZWN0In0sImZpZWxkUmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGZpZWxkIG9mIHRoZSBwb2Q6IHN1cHBvcnRzIG1ldGFkYXRhLm5hbWUsIG1ldGFkYXRhLm5hbWVzcGFjZSwgYG1ldGFkYXRhLmxhYmVsc1snXHUwMDNjS0VZXHUwMDNlJ11gLCBgbWV0YWRhdGEuYW5ub3RhdGlvbnNbJ1x1MDAzY0tFWVx1MDAzZSddYCwgc3BlYy5ub2RlTmFtZSwgc3BlYy5zZXJ2aWNlQWNjb3VudE5hbWUsIHN0YXR1cy5ob3N0SVAsIHN0YXR1cy5wb2RJUCwgc3RhdHVzLnBvZElQcy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJWZXJzaW9uIG9mIHRoZSBzY2hlbWEgdGhlIEZpZWxkUGF0aCBpcyB3cml0dGVuIGluIHRlcm1zIG9mLCBkZWZhdWx0cyB0byBcInYxXCIuIiwidHlwZSI6InN0cmluZyJ9LCJmaWVsZFBhdGgiOnsiZGVzY3JpcHRpb24iOiJQYXRoIG9mIHRoZSBmaWVsZCB0byBzZWxlY3QgaW4gdGhlIHNwZWNpZmllZCBBUEkgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJmaWVsZFBhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZUZpZWxkUmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIHJlc291cmNlIG9mIHRoZSBjb250YWluZXI6IG9ubHkgcmVzb3VyY2VzIGxpbWl0cyBhbmQgcmVxdWVzdHMgKGxpbWl0cy5jcHUsIGxpbWl0cy5tZW1vcnksIGxpbWl0cy5lcGhlbWVyYWwtc3RvcmFnZSwgcmVxdWVzdHMuY3B1LCByZXF1ZXN0cy5tZW1vcnkgYW5kIHJlcXVlc3RzLmVwaGVtZXJhbC1zdG9yYWdlKSBhcmUgY3VycmVudGx5IHN1cHBvcnRlZC4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lck5hbWUiOnsiZGVzY3JpcHRpb24iOiJDb250YWluZXIgbmFtZTogcmVxdWlyZWQgZm9yIHZvbHVtZXMsIG9wdGlvbmFsIGZvciBlbnYgdmFycyIsInR5cGUiOiJzdHJpbmcifSwiZGl2aXNvciI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoiU3BlY2lmaWVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHRoZSBleHBvc2VkIHJlc291cmNlcywgZGVmYXVsdHMgdG8gXCIxXCIiLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sInJlc291cmNlIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQ6IHJlc291cmNlIHRvIHNlbGVjdCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInJlc291cmNlIl0sInR5cGUiOiJvYmplY3QifSwic2VjcmV0S2V5UmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGtleSBvZiBhIHNlY3JldCBpbiB0aGUgcG9kJ3MgbmFtZXNwYWNlIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUga2V5IG9mIHRoZSBzZWNyZXQgdG8gc2VsZWN0IGZyb20uICBNdXN0IGJlIGEgdmFsaWQgc2VjcmV0IGtleS4iLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSByZWZlcmVudC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9vdmVydmlldy93b3JraW5nLXdpdGgtb2JqZWN0cy9uYW1lcy8jbmFtZXMgVE9ETzogQWRkIG90aGVyIHVzZWZ1bCBmaWVsZHMuIGFwaVZlcnNpb24sIGtpbmQsIHVpZD8iLCJ0eXBlIjoic3RyaW5nIn0sIm9wdGlvbmFsIjp7ImRlc2NyaXB0aW9uIjoiU3BlY2lmeSB3aGV0aGVyIHRoZSBTZWNyZXQgb3IgaXRzIGtleSBtdXN0IGJlIGRlZmluZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsia2V5Il0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJob3N0TmV0d29yayI6eyJkZXNjcmlwdGlvbiI6IlVzZSB0aGUgaG9zdCdzIG5ldHdvcmsgbmFtZXNwYWNlIGlmIHRydWUuIE1ha2Ugc3VyZSB0byB1bmRlcnN0YW5kIHRoZSBzZWN1cml0eSBpbXBsaWNhdGlvbnMgaWYgeW91IHdhbnQgdG8gZW5hYmxlIGl0LiBXaGVuIGhvc3ROZXR3b3JrIGlzIGVuYWJsZWQsIHRoaXMgd2lsbCBzZXQgZG5zUG9saWN5IHRvIENsdXN0ZXJGaXJzdFdpdGhIb3N0TmV0IGF1dG9tYXRpY2FsbHkuIiwidHlwZSI6ImJvb2xlYW4ifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJMYWJlbHMgb3ZlcnJpZGVzIGxhYmVscyBmb3IgdGhlIGRlcGxveW1lbnQgYW5kIGl0cyB0ZW1wbGF0ZS4iLCJ0eXBlIjoib2JqZWN0In0sImxpdmVuZXNzUHJvYmVzIjp7ImRlc2NyaXB0aW9uIjoiTGl2ZW5lc3NQcm9iZXMgb3ZlcnJpZGVzIGxpdmVuZXNzIHByb2JlcyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJQcm9iZXNSZXF1aXJlbWVudHNPdmVycmlkZSBlbmFibGVzIHRoZSB1c2VyIHRvIG92ZXJyaWRlIGFueSBjb250YWluZXIncyBlbnYgdmFycy4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZmFpbHVyZVRocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkLiBEZWZhdWx0cyB0byAzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZS4gRGVmYXVsdCB0byAxMCBzZWNvbmRzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJzdWNjZXNzVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZC4gRGVmYXVsdHMgdG8gMS4gTXVzdCBiZSAxIGZvciBsaXZlbmVzcyBhbmQgc3RhcnR1cC4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBkdXJhdGlvbiBpbiBzZWNvbmRzIHRoZSBwb2QgbmVlZHMgdG8gdGVybWluYXRlIGdyYWNlZnVsbHkgdXBvbiBwcm9iZSBmYWlsdXJlLiBUaGUgZ3JhY2UgcGVyaW9kIGlzIHRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHRoZSBwcm9jZXNzZXMgcnVubmluZyBpbiB0aGUgcG9kIGFyZSBzZW50IGEgdGVybWluYXRpb24gc2lnbmFsIGFuZCB0aGUgdGltZSB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIGZvcmNpYmx5IGhhbHRlZCB3aXRoIGEga2lsbCBzaWduYWwuIFNldCB0aGlzIHZhbHVlIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBjbGVhbnVwIHRpbWUgZm9yIHlvdXIgcHJvY2Vzcy4gSWYgdGhpcyB2YWx1ZSBpcyBuaWwsIHRoZSBwb2QncyB0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgdGhpcyB2YWx1ZSBvdmVycmlkZXMgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBwb2Qgc3BlYy4gVmFsdWUgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlci4gVGhlIHZhbHVlIHplcm8gaW5kaWNhdGVzIHN0b3AgaW1tZWRpYXRlbHkgdmlhIHRoZSBraWxsIHNpZ25hbCAobm8gb3Bwb3J0dW5pdHkgdG8gc2h1dCBkb3duKS4gVGhpcyBpcyBhIGJldGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIFByb2JlVGVybWluYXRpb25HcmFjZVBlcmlvZCBmZWF0dXJlIGdhdGUuIE1pbmltdW0gdmFsdWUgaXMgMS4gc3BlYy50ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyBpcyB1c2VkIGlmIHVuc2V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidGltZW91dFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0LiBEZWZhdWx0cyB0byAxIHNlY29uZC4gTWluaW11bSB2YWx1ZSBpcyAxLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIGRlcGxveW1lbnQiLCJ0eXBlIjoic3RyaW5nIn0sIm5vZGVTZWxlY3RvciI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTm9kZVNlbGVjdG9yIG92ZXJyaWRlcyBub2RlU2VsZWN0b3IgZm9yIHRoZSBkZXBsb3ltZW50LiIsInR5cGUiOiJvYmplY3QifSwicmVhZGluZXNzUHJvYmVzIjp7ImRlc2NyaXB0aW9uIjoiUmVhZGluZXNzUHJvYmVzIG92ZXJyaWRlcyByZWFkaW5lc3MgcHJvYmVzIGZvciB0aGUgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlByb2Jlc1JlcXVpcmVtZW50c092ZXJyaWRlIGVuYWJsZXMgdGhlIHVzZXIgdG8gb3ZlcnJpZGUgYW55IGNvbnRhaW5lcidzIGVudiB2YXJzLiIsInByb3BlcnRpZXMiOnsiY29udGFpbmVyIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGNvbnRhaW5lciBuYW1lIiwidHlwZSI6InN0cmluZyJ9LCJmYWlsdXJlVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBmYWlsdXJlcyBmb3IgdGhlIHByb2JlIHRvIGJlIGNvbnNpZGVyZWQgZmFpbGVkIGFmdGVyIGhhdmluZyBzdWNjZWVkZWQuIERlZmF1bHRzIHRvIDMuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sImluaXRpYWxEZWxheVNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB0aGUgY29udGFpbmVyIGhhcyBzdGFydGVkIGJlZm9yZSBsaXZlbmVzcyBwcm9iZXMgYXJlIGluaXRpYXRlZC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvcG9kcy9wb2QtbGlmZWN5Y2xlI2NvbnRhaW5lci1wcm9iZXMiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJIb3cgb2Z0ZW4gKGluIHNlY29uZHMpIHRvIHBlcmZvcm0gdGhlIHByb2JlLiBEZWZhdWx0IHRvIDEwIHNlY29uZHMuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInN1Y2Nlc3NUaHJlc2hvbGQiOnsiZGVzY3JpcHRpb24iOiJNaW5pbXVtIGNvbnNlY3V0aXZlIHN1Y2Nlc3NlcyBmb3IgdGhlIHByb2JlIHRvIGJlIGNvbnNpZGVyZWQgc3VjY2Vzc2Z1bCBhZnRlciBoYXZpbmcgZmFpbGVkLiBEZWZhdWx0cyB0byAxLiBNdXN0IGJlIDEgZm9yIGxpdmVuZXNzIGFuZCBzdGFydHVwLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik9wdGlvbmFsIGR1cmF0aW9uIGluIHNlY29uZHMgdGhlIHBvZCBuZWVkcyB0byB0ZXJtaW5hdGUgZ3JhY2VmdWxseSB1cG9uIHByb2JlIGZhaWx1cmUuIFRoZSBncmFjZSBwZXJpb2QgaXMgdGhlIGR1cmF0aW9uIGluIHNlY29uZHMgYWZ0ZXIgdGhlIHByb2Nlc3NlcyBydW5uaW5nIGluIHRoZSBwb2QgYXJlIHNlbnQgYSB0ZXJtaW5hdGlvbiBzaWduYWwgYW5kIHRoZSB0aW1lIHdoZW4gdGhlIHByb2Nlc3NlcyBhcmUgZm9yY2libHkgaGFsdGVkIHdpdGggYSBraWxsIHNpZ25hbC4gU2V0IHRoaXMgdmFsdWUgbG9uZ2VyIHRoYW4gdGhlIGV4cGVjdGVkIGNsZWFudXAgdGltZSBmb3IgeW91ciBwcm9jZXNzLiBJZiB0aGlzIHZhbHVlIGlzIG5pbCwgdGhlIHBvZCdzIHRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIHdpbGwgYmUgdXNlZC4gT3RoZXJ3aXNlLCB0aGlzIHZhbHVlIG92ZXJyaWRlcyB0aGUgdmFsdWUgcHJvdmlkZWQgYnkgdGhlIHBvZCBzcGVjLiBWYWx1ZSBtdXN0IGJlIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLiBUaGUgdmFsdWUgemVybyBpbmRpY2F0ZXMgc3RvcCBpbW1lZGlhdGVseSB2aWEgdGhlIGtpbGwgc2lnbmFsIChubyBvcHBvcnR1bml0eSB0byBzaHV0IGRvd24pLiBUaGlzIGlzIGEgYmV0YSBmaWVsZCBhbmQgcmVxdWlyZXMgZW5hYmxpbmcgUHJvYmVUZXJtaW5hdGlvbkdyYWNlUGVyaW9kIGZlYXR1cmUgZ2F0ZS4gTWluaW11bSB2YWx1ZSBpcyAxLiBzcGVjLnRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIGlzIHVzZWQgaWYgdW5zZXQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ0aW1lb3V0U2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHdoaWNoIHRoZSBwcm9iZSB0aW1lcyBvdXQuIERlZmF1bHRzIHRvIDEgc2Vjb25kLiBNaW5pbXVtIHZhbHVlIGlzIDEuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsiY29udGFpbmVyIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcGxpY2FzIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG51bWJlciBvZiByZXBsaWNhcyB0aGF0IEhBIHBhcnRzIG9mIHRoZSBjb250cm9sIHBsYW5lIHdpbGwgYmUgc2NhbGVkIHRvIiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgY29udGFpbmVyJ3MgcmVzb3VyY2VzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFJlc291cmNlIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgcmVxdWVzdHMgYW5kIGxpbWl0cyBmb3IgYSBjZXJ0YWluIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgbmFtZS4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBjb250YWluZXIiLCJ0eXBlIjoic3RyaW5nIn0sImxpbWl0cyI6eyJwcm9wZXJ0aWVzIjp7ImNwdSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn0sIm1lbW9yeSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7InByb3BlcnRpZXMiOnsiY3B1Ijp7InBhdHRlcm4iOiJeKFsrLV0/WzAtOS5dKykoW2VFaW51bWtLTUdUUF0qWy0rXT9bMC05XSopJCIsInR5cGUiOiJzdHJpbmcifSwibWVtb3J5Ijp7InBhdHRlcm4iOiJeKFsrLV0/WzAtOS5dKykoW2VFaW51bWtLTUdUUF0qWy0rXT9bMC05XSopJCIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInRvbGVyYXRpb25zIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3MgdG9sZXJhdGlvbnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgcG9kIHRoaXMgVG9sZXJhdGlvbiBpcyBhdHRhY2hlZCB0byB0b2xlcmF0ZXMgYW55IHRhaW50IHRoYXQgbWF0Y2hlcyB0aGUgdHJpcGxlIFx1MDAzY2tleSx2YWx1ZSxlZmZlY3RcdTAwM2UgdXNpbmcgdGhlIG1hdGNoaW5nIG9wZXJhdG9yIFx1MDAzY29wZXJhdG9yXHUwMDNlLiIsInByb3BlcnRpZXMiOnsiZWZmZWN0Ijp7ImRlc2NyaXB0aW9uIjoiRWZmZWN0IGluZGljYXRlcyB0aGUgdGFpbnQgZWZmZWN0IHRvIG1hdGNoLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQgZWZmZWN0cy4gV2hlbiBzcGVjaWZpZWQsIGFsbG93ZWQgdmFsdWVzIGFyZSBOb1NjaGVkdWxlLCBQcmVmZXJOb1NjaGVkdWxlIGFuZCBOb0V4ZWN1dGUuIiwidHlwZSI6InN0cmluZyJ9LCJrZXkiOnsiZGVzY3JpcHRpb24iOiJLZXkgaXMgdGhlIHRhaW50IGtleSB0aGF0IHRoZSB0b2xlcmF0aW9uIGFwcGxpZXMgdG8uIEVtcHR5IG1lYW5zIG1hdGNoIGFsbCB0YWludCBrZXlzLiBJZiB0aGUga2V5IGlzIGVtcHR5LCBvcGVyYXRvciBtdXN0IGJlIEV4aXN0czsgdGhpcyBjb21iaW5hdGlvbiBtZWFucyB0byBtYXRjaCBhbGwgdmFsdWVzIGFuZCBhbGwga2V5cy4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byB0aGUgdmFsdWUuIFZhbGlkIG9wZXJhdG9ycyBhcmUgRXhpc3RzIGFuZCBFcXVhbC4gRGVmYXVsdHMgdG8gRXF1YWwuIEV4aXN0cyBpcyBlcXVpdmFsZW50IHRvIHdpbGRjYXJkIGZvciB2YWx1ZSwgc28gdGhhdCBhIHBvZCBjYW4gdG9sZXJhdGUgYWxsIHRhaW50cyBvZiBhIHBhcnRpY3VsYXIgY2F0ZWdvcnkuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2xlcmF0aW9uU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IlRvbGVyYXRpb25TZWNvbmRzIHJlcHJlc2VudHMgdGhlIHBlcmlvZCBvZiB0aW1lIHRoZSB0b2xlcmF0aW9uICh3aGljaCBtdXN0IGJlIG9mIGVmZmVjdCBOb0V4ZWN1dGUsIG90aGVyd2lzZSB0aGlzIGZpZWxkIGlzIGlnbm9yZWQpIHRvbGVyYXRlcyB0aGUgdGFpbnQuIEJ5IGRlZmF1bHQsIGl0IGlzIG5vdCBzZXQsIHdoaWNoIG1lYW5zIHRvbGVyYXRlIHRoZSB0YWludCBmb3JldmVyIChkbyBub3QgZXZpY3QpLiBaZXJvIGFuZCBuZWdhdGl2ZSB2YWx1ZXMgd2lsbCBiZSB0cmVhdGVkIGFzIDAgKGV2aWN0IGltbWVkaWF0ZWx5KSBieSB0aGUgc3lzdGVtLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgdGFpbnQgdmFsdWUgdGhlIHRvbGVyYXRpb24gbWF0Y2hlcyB0by4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cywgdGhlIHZhbHVlIHNob3VsZCBiZSBlbXB0eSwgb3RoZXJ3aXNlIGp1c3QgYSByZWd1bGFyIHN0cmluZy4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neVNwcmVhZENvbnN0cmFpbnRzIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3MgdG9wb2xvZ3kgc3ByZWFkIGNvbnN0cmFpbnRzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVG9wb2xvZ3lTcHJlYWRDb25zdHJhaW50IHNwZWNpZmllcyBob3cgdG8gc3ByZWFkIG1hdGNoaW5nIHBvZHMgYW1vbmcgdGhlIGdpdmVuIHRvcG9sb2d5LiIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkxhYmVsU2VsZWN0b3IgaXMgdXNlZCB0byBmaW5kIG1hdGNoaW5nIHBvZHMuIFBvZHMgdGhhdCBtYXRjaCB0aGlzIGxhYmVsIHNlbGVjdG9yIGFyZSBjb3VudGVkIHRvIGRldGVybWluZSB0aGUgbnVtYmVyIG9mIHBvZHMgaW4gdGhlaXIgY29ycmVzcG9uZGluZyB0b3BvbG9neSBkb21haW4uIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJtYXhTa2V3Ijp7ImRlc2NyaXB0aW9uIjoiTWF4U2tldyBkZXNjcmliZXMgdGhlIGRlZ3JlZSB0byB3aGljaCBwb2RzIG1heSBiZSB1bmV2ZW5seSBkaXN0cmlidXRlZC4gSXQncyB0aGUgbWF4aW11bSBwZXJtaXR0ZWQgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBudW1iZXIgb2YgbWF0Y2hpbmcgcG9kcyBpbiBhbnkgdHdvIHRvcG9sb2d5IGRvbWFpbnMgb2YgYSBnaXZlbiB0b3BvbG9neSB0eXBlLiBGb3IgZXhhbXBsZSwgaW4gYSAzLXpvbmUgY2x1c3RlciwgTWF4U2tldyBpcyBzZXQgdG8gMSwgYW5kIHBvZHMgd2l0aCB0aGUgc2FtZSBsYWJlbFNlbGVjdG9yIHNwcmVhZCBhcyAxLzEvMDogfCB6b25lMSB8IHpvbmUyIHwgem9uZTMgfCB8ICAgUCAgIHwgICBQICAgfCAgICAgICB8IC0gaWYgTWF4U2tldyBpcyAxLCBpbmNvbWluZyBwb2QgY2FuIG9ubHkgYmUgc2NoZWR1bGVkIHRvIHpvbmUzIHRvIGJlY29tZSAxLzEvMTsgc2NoZWR1bGluZyBpdCBvbnRvIHpvbmUxKHpvbmUyKSB3b3VsZCBtYWtlIHRoZSBBY3R1YWxTa2V3KDItMCkgb24gem9uZTEoem9uZTIpIHZpb2xhdGUgTWF4U2tldygxKS4gLSBpZiBNYXhTa2V3IGlzIDIsIGluY29taW5nIHBvZCBjYW4gYmUgc2NoZWR1bGVkIG9udG8gYW55IHpvbmUuIEl0J3MgYSByZXF1aXJlZCBmaWVsZC4gRGVmYXVsdCB2YWx1ZSBpcyAxIGFuZCAwIGlzIG5vdCBhbGxvd2VkLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUb3BvbG9neUtleSBpcyB0aGUga2V5IG9mIG5vZGUgbGFiZWxzLiBOb2RlcyB0aGF0IGhhdmUgYSBsYWJlbCB3aXRoIHRoaXMga2V5IGFuZCBpZGVudGljYWwgdmFsdWVzIGFyZSBjb25zaWRlcmVkIHRvIGJlIGluIHRoZSBzYW1lIHRvcG9sb2d5LiBXZSBjb25zaWRlciBlYWNoIFx1MDAzY2tleSwgdmFsdWVcdTAwM2UgYXMgYSBcImJ1Y2tldFwiLCBhbmQgdHJ5IHRvIHB1dCBiYWxhbmNlZCBudW1iZXIgb2YgcG9kcyBpbnRvIGVhY2ggYnVja2V0LiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIiwidHlwZSI6InN0cmluZyJ9LCJ3aGVuVW5zYXRpc2ZpYWJsZSI6eyJkZXNjcmlwdGlvbiI6IldoZW5VbnNhdGlzZmlhYmxlIGluZGljYXRlcyBob3cgdG8gZGVhbCB3aXRoIGEgcG9kIGlmIGl0IGRvZXNuJ3Qgc2F0aXNmeSB0aGUgc3ByZWFkIGNvbnN0cmFpbnQuIC0gRG9Ob3RTY2hlZHVsZSAoZGVmYXVsdCkgdGVsbHMgdGhlIHNjaGVkdWxlciBub3QgdG8gc2NoZWR1bGUgaXQgLSBTY2hlZHVsZUFueXdheSB0ZWxscyB0aGUgc2NoZWR1bGVyIHRvIHN0aWxsIHNjaGVkdWxlIGl0IEl0J3MgY29uc2lkZXJlZCBhcyBcIlVuc2F0aXNmaWFibGVcIiBpZiBhbmQgb25seSBpZiBwbGFjaW5nIGluY29taW5nIHBvZCBvbiBhbnkgdG9wb2xvZ3kgdmlvbGF0ZXMgXCJNYXhTa2V3XCIuIEZvciBleGFtcGxlLCBpbiBhIDMtem9uZSBjbHVzdGVyLCBNYXhTa2V3IGlzIHNldCB0byAxLCBhbmQgcG9kcyB3aXRoIHRoZSBzYW1lIGxhYmVsU2VsZWN0b3Igc3ByZWFkIGFzIDMvMS8xOiB8IHpvbmUxIHwgem9uZTIgfCB6b25lMyB8IHwgUCBQIFAgfCAgIFAgICB8ICAgUCAgIHwgSWYgV2hlblVuc2F0aXNmaWFibGUgaXMgc2V0IHRvIERvTm90U2NoZWR1bGUsIGluY29taW5nIHBvZCBjYW4gb25seSBiZSBzY2hlZHVsZWQgdG8gem9uZTIoem9uZTMpIHRvIGJlY29tZSAzLzIvMSgzLzEvMikgYXMgQWN0dWFsU2tldygyLTEpIG9uIHpvbmUyKHpvbmUzKSBzYXRpc2ZpZXMgTWF4U2tldygxKS4gSW4gb3RoZXIgd29yZHMsIHRoZSBjbHVzdGVyIGNhbiBzdGlsbCBiZSBpbWJhbGFuY2VkLCBidXQgc2NoZWR1bGVyIHdvbid0IG1ha2UgaXQgKm1vcmUqIGltYmFsYW5jZWQuIEl0J3MgYSByZXF1aXJlZCBmaWVsZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJtYXhTa2V3IiwidG9wb2xvZ3lLZXkiLCJ3aGVuVW5zYXRpc2ZpYWJsZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiaGlnaC1hdmFpbGFiaWxpdHkiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiBIQSBjb250cm9sIHBsYW5lIiwicHJvcGVydGllcyI6eyJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sInBvZERpc3J1cHRpb25CdWRnZXRzIjp7ImRlc2NyaXB0aW9uIjoiQSBtYXBwaW5nIG9mIHBvZERpc3J1cHRpb25CdWRnZXQgbmFtZSB0byBvdmVycmlkZSIsIml0ZW1zIjp7InByb3BlcnRpZXMiOnsibWF4VW5hdmFpbGFibGUiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJkZXNjcmlwdGlvbiI6IkFuIGV2aWN0aW9uIGlzIGFsbG93ZWQgaWYgYXQgbW9zdCBcIm1heFVuYXZhaWxhYmxlXCIgcG9kcyBzZWxlY3RlZCBieSBcInNlbGVjdG9yXCIgYXJlIHVuYXZhaWxhYmxlIGFmdGVyIHRoZSBldmljdGlvbiwgaS5lLiBldmVuIGluIGFic2VuY2Ugb2YgdGhlIGV2aWN0ZWQgcG9kLiBGb3IgZXhhbXBsZSwgb25lIGNhbiBwcmV2ZW50IGFsbCB2b2x1bnRhcnkgZXZpY3Rpb25zIGJ5IHNwZWNpZnlpbmcgMC4gVGhpcyBpcyBhIG11dHVhbGx5IGV4Y2x1c2l2ZSBzZXR0aW5nIHdpdGggXCJtaW5BdmFpbGFibGVcIi4iLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sIm1pbkF2YWlsYWJsZSI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoiQW4gZXZpY3Rpb24gaXMgYWxsb3dlZCBpZiBhdCBsZWFzdCBcIm1pbkF2YWlsYWJsZVwiIHBvZHMgc2VsZWN0ZWQgYnkgXCJzZWxlY3RvclwiIHdpbGwgc3RpbGwgYmUgYXZhaWxhYmxlIGFmdGVyIHRoZSBldmljdGlvbiwgaS5lLiBldmVuIGluIHRoZSBhYnNlbmNlIG9mIHRoZSBldmljdGVkIHBvZC4gIFNvIGZvciBleGFtcGxlIHlvdSBjYW4gcHJldmVudCBhbGwgdm9sdW50YXJ5IGV2aWN0aW9ucyBieSBzcGVjaWZ5aW5nIFwiMTAwJVwiLiIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBwb2REaXNydXB0aW9uQnVkZ2V0IiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwic2VydmljZXMiOnsiZGVzY3JpcHRpb24iOiJBIG1hcHBpbmcgb2Ygc2VydmljZSBuYW1lIHRvIG92ZXJyaWRlIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgb3ZlcnJpZGVzIGxhYmVscyBmb3IgdGhlIHNlcnZpY2UiLCJ0eXBlIjoib2JqZWN0In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTGFiZWxzIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBzZXJ2aWNlIiwidHlwZSI6Im9iamVjdCJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UiLCJ0eXBlIjoic3RyaW5nIn0sInNlbGVjdG9yIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJTZWxlY3RvciBvdmVycmlkZXMgc2VsZWN0b3IgZm9yIHRoZSBzZXJ2aWNlIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwic2lua0JpbmRpbmdTZWxlY3Rpb25Nb2RlIjp7ImRlc2NyaXB0aW9uIjoiU3BlY2lmaWVzIHRoZSBzZWxlY3Rpb24gbW9kZSBmb3IgdGhlIHNpbmtiaW5kaW5nIHdlYmhvb2suIElmIHRoZSB2YWx1ZSBpcyBgaW5jbHVzaW9uYCwgb25seSBuYW1lc3BhY2VzL29iamVjdHMgbGFiZWxsZWQgYXMgYGJpbmRpbmdzLmtuYXRpdmUuZGV2L2luY2x1ZGU6dHJ1ZWAgd2lsbCBiZSBjb25zaWRlcmVkLiBJZiBgZXhjbHVzaW9uYCBpcyBzZWxlY3RlZCwgb25seSBgYmluZGluZ3Mua25hdGl2ZS5kZXYvZXhjbHVkZTp0cnVlYCBsYWJlbCBpcyBjaGVja2VkIGFuZCB0aGVzZSB3aWxsIE5PVCBiZSBjb25zaWRlcmVkLiBUaGUgZGVmYXVsdCBmb3IgT3BlbnNoaWZ0IFNlcnZlcmxlc3MgaXMgYGluY2x1c2lvbmAuIiwidHlwZSI6InN0cmluZyJ9LCJ3b3JrbG9hZHMiOnsiZGVzY3JpcHRpb24iOiJBIG1hcHBpbmcgb2YgZGVwbG95bWVudCBvciBzdGF0ZWZ1bHNldCBuYW1lIHRvIG92ZXJyaWRlIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJhZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHNjaGVkdWxpbmcgY29uc3RyYWludHMuIiwicHJvcGVydGllcyI6eyJub2RlQWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJEZXNjcmliZXMgbm9kZSBhZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIGZvciB0aGUgcG9kLiIsInByb3BlcnRpZXMiOnsicHJlZmVycmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgc2NoZWR1bGVyIHdpbGwgcHJlZmVyIHRvIHNjaGVkdWxlIHBvZHMgdG8gbm9kZXMgdGhhdCBzYXRpc2Z5IHRoZSBhZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBtYXRjaEV4cHJlc3Npb25zOyB0aGUgbm9kZShzKSB3aXRoIHRoZSBoaWdoZXN0IHN1bSBhcmUgdGhlIG1vc3QgcHJlZmVycmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQW4gZW1wdHkgcHJlZmVycmVkIHNjaGVkdWxpbmcgdGVybSBtYXRjaGVzIGFsbCBvYmplY3RzIHdpdGggaW1wbGljaXQgd2VpZ2h0IDAgKGkuZS4gaXQncyBhIG5vLW9wKS4gQSBudWxsIHByZWZlcnJlZCBzY2hlZHVsaW5nIHRlcm0gbWF0Y2hlcyBubyBvYmplY3RzIChpLmUuIGlzIGFsc28gYSBuby1vcCkuIiwicHJvcGVydGllcyI6eyJwcmVmZXJlbmNlIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHRlcm0sIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB3ZWlnaHQuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBsYWJlbHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoRmllbGRzIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBmaWVsZHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sIndlaWdodCI6eyJkZXNjcmlwdGlvbiI6IldlaWdodCBhc3NvY2lhdGVkIHdpdGggbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgbm9kZVNlbGVjdG9yVGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInByZWZlcmVuY2UiLCJ3ZWlnaHQiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IklmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhbiB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4iLCJwcm9wZXJ0aWVzIjp7Im5vZGVTZWxlY3RvclRlcm1zIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQuIEEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHRlcm1zLiBUaGUgdGVybXMgYXJlIE9SZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG51bGwgb3IgZW1wdHkgbm9kZSBzZWxlY3RvciB0ZXJtIG1hdGNoZXMgbm8gb2JqZWN0cy4gVGhlIHJlcXVpcmVtZW50cyBvZiB0aGVtIGFyZSBBTkRlZC4gVGhlIFRvcG9sb2d5U2VsZWN0b3JUZXJtIHR5cGUgaW1wbGVtZW50cyBhIHN1YnNldCBvZiB0aGUgTm9kZVNlbGVjdG9yVGVybS4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGxhYmVscy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hGaWVsZHMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGZpZWxkcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJub2RlU2VsZWN0b3JUZXJtcyJdLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInBvZEFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiRGVzY3JpYmVzIHBvZCBhZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIChlLmcuIGNvLWxvY2F0ZSB0aGlzIHBvZCBpbiB0aGUgc2FtZSBub2RlLCB6b25lLCBldGMuIGFzIHNvbWUgb3RoZXIgcG9kKHMpKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcnJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHNjaGVkdWxlciB3aWxsIHByZWZlciB0byBzY2hlZHVsZSBwb2RzIHRvIG5vZGVzIHRoYXQgc2F0aXNmeSB0aGUgYWZmaW5pdHkgZXhwcmVzc2lvbnMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQsIGJ1dCBpdCBtYXkgY2hvb3NlIGEgbm9kZSB0aGF0IHZpb2xhdGVzIG9uZSBvciBtb3JlIG9mIHRoZSBleHByZXNzaW9ucy4gVGhlIG5vZGUgdGhhdCBpcyBtb3N0IHByZWZlcnJlZCBpcyB0aGUgb25lIHdpdGggdGhlIGdyZWF0ZXN0IHN1bSBvZiB3ZWlnaHRzLCBpLmUuIGZvciBlYWNoIG5vZGUgdGhhdCBtZWV0cyBhbGwgb2YgdGhlIHNjaGVkdWxpbmcgcmVxdWlyZW1lbnRzIChyZXNvdXJjZSByZXF1ZXN0LCByZXF1aXJlZER1cmluZ1NjaGVkdWxpbmcgYWZmaW5pdHkgZXhwcmVzc2lvbnMsIGV0Yy4pLCBjb21wdXRlIGEgc3VtIGJ5IGl0ZXJhdGluZyB0aHJvdWdoIHRoZSBlbGVtZW50cyBvZiB0aGlzIGZpZWxkIGFuZCBhZGRpbmcgXCJ3ZWlnaHRcIiB0byB0aGUgc3VtIGlmIHRoZSBub2RlIGhhcyBwb2RzIHdoaWNoIG1hdGNoZXMgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtOyB0aGUgbm9kZShzKSB3aXRoIHRoZSBoaWdoZXN0IHN1bSBhcmUgdGhlIG1vc3QgcHJlZmVycmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHdlaWdodHMgb2YgYWxsIG9mIHRoZSBtYXRjaGVkIFdlaWdodGVkUG9kQWZmaW5pdHlUZXJtIGZpZWxkcyBhcmUgYWRkZWQgcGVyLW5vZGUgdG8gZmluZCB0aGUgbW9zdCBwcmVmZXJyZWQgbm9kZShzKSIsInByb3BlcnRpZXMiOnsicG9kQWZmaW5pdHlUZXJtIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQuIEEgcG9kIGFmZmluaXR5IHRlcm0sIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB3ZWlnaHQuIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwid2VpZ2h0Ijp7ImRlc2NyaXB0aW9uIjoid2VpZ2h0IGFzc29jaWF0ZWQgd2l0aCBtYXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm0sIGluIHRoZSByYW5nZSAxLTEwMC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJwb2RBZmZpbml0eVRlcm0iLCJ3ZWlnaHQiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IklmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhIHBvZCBsYWJlbCB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4gV2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgZWxlbWVudHMsIHRoZSBsaXN0cyBvZiBub2RlcyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9kQWZmaW5pdHlUZXJtIGFyZSBpbnRlcnNlY3RlZCwgaS5lLiBhbGwgdGVybXMgbXVzdCBiZSBzYXRpc2ZpZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJEZWZpbmVzIGEgc2V0IG9mIHBvZHMgKG5hbWVseSB0aG9zZSBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gbmFtZXNwYWNlKHMpKSB0aGF0IHRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGgsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgXHUwMDNjdG9wb2xvZ3lLZXlcdTAwM2UgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGEgcG9kIG9mIHRoZSBzZXQgb2YgcG9kcyBpcyBydW5uaW5nIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBvZEFudGlBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBwb2QgYW50aS1hZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIChlLmcuIGF2b2lkIHB1dHRpbmcgdGhpcyBwb2QgaW4gdGhlIHNhbWUgbm9kZSwgem9uZSwgZXRjLiBhcyBzb21lIG90aGVyIHBvZChzKSkuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnkgdGhlIGFudGktYWZmaW5pdHkgZXhwcmVzc2lvbnMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQsIGJ1dCBpdCBtYXkgY2hvb3NlIGEgbm9kZSB0aGF0IHZpb2xhdGVzIG9uZSBvciBtb3JlIG9mIHRoZSBleHByZXNzaW9ucy4gVGhlIG5vZGUgdGhhdCBpcyBtb3N0IHByZWZlcnJlZCBpcyB0aGUgb25lIHdpdGggdGhlIGdyZWF0ZXN0IHN1bSBvZiB3ZWlnaHRzLCBpLmUuIGZvciBlYWNoIG5vZGUgdGhhdCBtZWV0cyBhbGwgb2YgdGhlIHNjaGVkdWxpbmcgcmVxdWlyZW1lbnRzIChyZXNvdXJjZSByZXF1ZXN0LCByZXF1aXJlZER1cmluZ1NjaGVkdWxpbmcgYW50aS1hZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgaGFzIHBvZHMgd2hpY2ggbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm07IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgd2VpZ2h0cyBvZiBhbGwgb2YgdGhlIG1hdGNoZWQgV2VpZ2h0ZWRQb2RBZmZpbml0eVRlcm0gZmllbGRzIGFyZSBhZGRlZCBwZXItbm9kZSB0byBmaW5kIHRoZSBtb3N0IHByZWZlcnJlZCBub2RlKHMpIiwicHJvcGVydGllcyI6eyJwb2RBZmZpbml0eVRlcm0iOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBwb2QgYWZmaW5pdHkgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ3ZWlnaHQiOnsiZGVzY3JpcHRpb24iOiJ3ZWlnaHQgYXNzb2NpYXRlZCB3aXRoIG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInBvZEFmZmluaXR5VGVybSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFudGktYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGFyZSBub3QgbWV0IGF0IHNjaGVkdWxpbmcgdGltZSwgdGhlIHBvZCB3aWxsIG5vdCBiZSBzY2hlZHVsZWQgb250byB0aGUgbm9kZS4gSWYgdGhlIGFudGktYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhIHBvZCBsYWJlbCB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4gV2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgZWxlbWVudHMsIHRoZSBsaXN0cyBvZiBub2RlcyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9kQWZmaW5pdHlUZXJtIGFyZSBpbnRlcnNlY3RlZCwgaS5lLiBhbGwgdGVybXMgbXVzdCBiZSBzYXRpc2ZpZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJEZWZpbmVzIGEgc2V0IG9mIHBvZHMgKG5hbWVseSB0aG9zZSBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gbmFtZXNwYWNlKHMpKSB0aGF0IHRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGgsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgXHUwMDNjdG9wb2xvZ3lLZXlcdTAwM2UgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGEgcG9kIG9mIHRoZSBzZXQgb2YgcG9kcyBpcyBydW5uaW5nIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBvdmVycmlkZXMgbGFiZWxzIGZvciB0aGUgZGVwbG95bWVudCBhbmQgaXRzIHRlbXBsYXRlLiIsInR5cGUiOiJvYmplY3QifSwiZW52Ijp7ImRlc2NyaXB0aW9uIjoiRW52IG92ZXJyaWRlcyBlbnYgdmFycyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgY29udGFpbmVyIG5hbWUiLCJ0eXBlIjoic3RyaW5nIn0sImVudlZhcnMiOnsiZGVzY3JpcHRpb24iOiJUaGUgZGVzaXJlZCBFbnZWYXJSZXF1aXJlbWVudHMiLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkVudlZhciByZXByZXNlbnRzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHByZXNlbnQgaW4gYSBDb250YWluZXIuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUuIE11c3QgYmUgYSBDX0lERU5USUZJRVIuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6IlZhcmlhYmxlIHJlZmVyZW5jZXMgJChWQVJfTkFNRSkgYXJlIGV4cGFuZGVkIHVzaW5nIHRoZSBwcmV2aW91c2x5IGRlZmluZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIHRoZSBjb250YWluZXIgYW5kIGFueSBzZXJ2aWNlIGVudmlyb25tZW50IHZhcmlhYmxlcy4gSWYgYSB2YXJpYWJsZSBjYW5ub3QgYmUgcmVzb2x2ZWQsIHRoZSByZWZlcmVuY2UgaW4gdGhlIGlucHV0IHN0cmluZyB3aWxsIGJlIHVuY2hhbmdlZC4gRG91YmxlICQkIGFyZSByZWR1Y2VkIHRvIGEgc2luZ2xlICQsIHdoaWNoIGFsbG93cyBmb3IgZXNjYXBpbmcgdGhlICQoVkFSX05BTUUpIHN5bnRheDogaS5lLiBcIiQkKFZBUl9OQU1FKVwiIHdpbGwgcHJvZHVjZSB0aGUgc3RyaW5nIGxpdGVyYWwgXCIkKFZBUl9OQU1FKVwiLiBFc2NhcGVkIHJlZmVyZW5jZXMgd2lsbCBuZXZlciBiZSBleHBhbmRlZCwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSB2YXJpYWJsZSBleGlzdHMgb3Igbm90LiBEZWZhdWx0cyB0byBcIlwiLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVGcm9tIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGZvciB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUncyB2YWx1ZS4gQ2Fubm90IGJlIHVzZWQgaWYgdmFsdWUgaXMgbm90IGVtcHR5LiIsInByb3BlcnRpZXMiOnsiY29uZmlnTWFwS2V5UmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGtleSBvZiBhIENvbmZpZ01hcC4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBrZXkgdG8gc2VsZWN0LiIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIHJlZmVyZW50LiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L3dvcmtpbmctd2l0aC1vYmplY3RzL25hbWVzLyNuYW1lcyBUT0RPOiBBZGQgb3RoZXIgdXNlZnVsIGZpZWxkcy4gYXBpVmVyc2lvbiwga2luZCwgdWlkPyIsInR5cGUiOiJzdHJpbmcifSwib3B0aW9uYWwiOnsiZGVzY3JpcHRpb24iOiJTcGVjaWZ5IHdoZXRoZXIgdGhlIENvbmZpZ01hcCBvciBpdHMga2V5IG11c3QgYmUgZGVmaW5lZCIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJrZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJmaWVsZFJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBmaWVsZCBvZiB0aGUgcG9kOiBzdXBwb3J0cyBtZXRhZGF0YS5uYW1lLCBtZXRhZGF0YS5uYW1lc3BhY2UsIGBtZXRhZGF0YS5sYWJlbHNbJ1x1MDAzY0tFWVx1MDAzZSddYCwgYG1ldGFkYXRhLmFubm90YXRpb25zWydcdTAwM2NLRVlcdTAwM2UnXWAsIHNwZWMubm9kZU5hbWUsIHNwZWMuc2VydmljZUFjY291bnROYW1lLCBzdGF0dXMuaG9zdElQLCBzdGF0dXMucG9kSVAsIHN0YXR1cy5wb2RJUHMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiVmVyc2lvbiBvZiB0aGUgc2NoZW1hIHRoZSBGaWVsZFBhdGggaXMgd3JpdHRlbiBpbiB0ZXJtcyBvZiwgZGVmYXVsdHMgdG8gXCJ2MVwiLiIsInR5cGUiOiJzdHJpbmcifSwiZmllbGRQYXRoIjp7ImRlc2NyaXB0aW9uIjoiUGF0aCBvZiB0aGUgZmllbGQgdG8gc2VsZWN0IGluIHRoZSBzcGVjaWZpZWQgQVBJIHZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiZmllbGRQYXRoIl0sInR5cGUiOiJvYmplY3QifSwicmVzb3VyY2VGaWVsZFJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSByZXNvdXJjZSBvZiB0aGUgY29udGFpbmVyOiBvbmx5IHJlc291cmNlcyBsaW1pdHMgYW5kIHJlcXVlc3RzIChsaW1pdHMuY3B1LCBsaW1pdHMubWVtb3J5LCBsaW1pdHMuZXBoZW1lcmFsLXN0b3JhZ2UsIHJlcXVlc3RzLmNwdSwgcmVxdWVzdHMubWVtb3J5IGFuZCByZXF1ZXN0cy5lcGhlbWVyYWwtc3RvcmFnZSkgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQuIiwicHJvcGVydGllcyI6eyJjb250YWluZXJOYW1lIjp7ImRlc2NyaXB0aW9uIjoiQ29udGFpbmVyIG5hbWU6IHJlcXVpcmVkIGZvciB2b2x1bWVzLCBvcHRpb25hbCBmb3IgZW52IHZhcnMiLCJ0eXBlIjoic3RyaW5nIn0sImRpdmlzb3IiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJkZXNjcmlwdGlvbiI6IlNwZWNpZmllcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiB0aGUgZXhwb3NlZCByZXNvdXJjZXMsIGRlZmF1bHRzIHRvIFwiMVwiIiwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJyZXNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkOiByZXNvdXJjZSB0byBzZWxlY3QiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJyZXNvdXJjZSJdLCJ0eXBlIjoib2JqZWN0In0sInNlY3JldEtleVJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBrZXkgb2YgYSBzZWNyZXQgaW4gdGhlIHBvZCdzIG5hbWVzcGFjZSIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGtleSBvZiB0aGUgc2VjcmV0IHRvIHNlbGVjdCBmcm9tLiAgTXVzdCBiZSBhIHZhbGlkIHNlY3JldCBrZXkuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgcmVmZXJlbnQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbmFtZXMvI25hbWVzIFRPRE86IEFkZCBvdGhlciB1c2VmdWwgZmllbGRzLiBhcGlWZXJzaW9uLCBraW5kLCB1aWQ/IiwidHlwZSI6InN0cmluZyJ9LCJvcHRpb25hbCI6eyJkZXNjcmlwdGlvbiI6IlNwZWNpZnkgd2hldGhlciB0aGUgU2VjcmV0IG9yIGl0cyBrZXkgbXVzdCBiZSBkZWZpbmVkIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImtleSJdLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJjb250YWluZXIiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiaG9zdE5ldHdvcmsiOnsiZGVzY3JpcHRpb24iOiJVc2UgdGhlIGhvc3QncyBuZXR3b3JrIG5hbWVzcGFjZSBpZiB0cnVlLiBNYWtlIHN1cmUgdG8gdW5kZXJzdGFuZCB0aGUgc2VjdXJpdHkgaW1wbGljYXRpb25zIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBpdC4gV2hlbiBob3N0TmV0d29yayBpcyBlbmFibGVkLCB0aGlzIHdpbGwgc2V0IGRuc1BvbGljeSB0byBDbHVzdGVyRmlyc3RXaXRoSG9zdE5ldCBhdXRvbWF0aWNhbGx5LiIsInR5cGUiOiJib29sZWFuIn0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTGFiZWxzIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBkZXBsb3ltZW50IGFuZCBpdHMgdGVtcGxhdGUuIiwidHlwZSI6Im9iamVjdCJ9LCJsaXZlbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IkxpdmVuZXNzUHJvYmVzIG92ZXJyaWRlcyBsaXZlbmVzcyBwcm9iZXMgZm9yIHRoZSBjb250YWluZXJzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiUHJvYmVzUmVxdWlyZW1lbnRzT3ZlcnJpZGUgZW5hYmxlcyB0aGUgdXNlciB0byBvdmVycmlkZSBhbnkgY29udGFpbmVyJ3MgZW52IHZhcnMuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgY29udGFpbmVyIG5hbWUiLCJ0eXBlIjoic3RyaW5nIn0sImZhaWx1cmVUaHJlc2hvbGQiOnsiZGVzY3JpcHRpb24iOiJNaW5pbXVtIGNvbnNlY3V0aXZlIGZhaWx1cmVzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBmYWlsZWQgYWZ0ZXIgaGF2aW5nIHN1Y2NlZWRlZC4gRGVmYXVsdHMgdG8gMy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHRoZSBjb250YWluZXIgaGFzIHN0YXJ0ZWQgYmVmb3JlIGxpdmVuZXNzIHByb2JlcyBhcmUgaW5pdGlhdGVkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwicGVyaW9kU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IkhvdyBvZnRlbiAoaW4gc2Vjb25kcykgdG8gcGVyZm9ybSB0aGUgcHJvYmUuIERlZmF1bHQgdG8gMTAgc2Vjb25kcy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwic3VjY2Vzc1RocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgc3VjY2Vzc2VzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBzdWNjZXNzZnVsIGFmdGVyIGhhdmluZyBmYWlsZWQuIERlZmF1bHRzIHRvIDEuIE11c3QgYmUgMSBmb3IgbGl2ZW5lc3MgYW5kIHN0YXJ0dXAuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiT3B0aW9uYWwgZHVyYXRpb24gaW4gc2Vjb25kcyB0aGUgcG9kIG5lZWRzIHRvIHRlcm1pbmF0ZSBncmFjZWZ1bGx5IHVwb24gcHJvYmUgZmFpbHVyZS4gVGhlIGdyYWNlIHBlcmlvZCBpcyB0aGUgZHVyYXRpb24gaW4gc2Vjb25kcyBhZnRlciB0aGUgcHJvY2Vzc2VzIHJ1bm5pbmcgaW4gdGhlIHBvZCBhcmUgc2VudCBhIHRlcm1pbmF0aW9uIHNpZ25hbCBhbmQgdGhlIHRpbWUgd2hlbiB0aGUgcHJvY2Vzc2VzIGFyZSBmb3JjaWJseSBoYWx0ZWQgd2l0aCBhIGtpbGwgc2lnbmFsLiBTZXQgdGhpcyB2YWx1ZSBsb25nZXIgdGhhbiB0aGUgZXhwZWN0ZWQgY2xlYW51cCB0aW1lIGZvciB5b3VyIHByb2Nlc3MuIElmIHRoaXMgdmFsdWUgaXMgbmlsLCB0aGUgcG9kJ3MgdGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgd2lsbCBiZSB1c2VkLiBPdGhlcndpc2UsIHRoaXMgdmFsdWUgb3ZlcnJpZGVzIHRoZSB2YWx1ZSBwcm92aWRlZCBieSB0aGUgcG9kIHNwZWMuIFZhbHVlIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXIuIFRoZSB2YWx1ZSB6ZXJvIGluZGljYXRlcyBzdG9wIGltbWVkaWF0ZWx5IHZpYSB0aGUga2lsbCBzaWduYWwgKG5vIG9wcG9ydHVuaXR5IHRvIHNodXQgZG93bikuIFRoaXMgaXMgYSBiZXRhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyBQcm9iZVRlcm1pbmF0aW9uR3JhY2VQZXJpb2QgZmVhdHVyZSBnYXRlLiBNaW5pbXVtIHZhbHVlIGlzIDEuIHNwZWMudGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgaXMgdXNlZCBpZiB1bnNldC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInRpbWVvdXRTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgd2hpY2ggdGhlIHByb2JlIHRpbWVzIG91dC4gRGVmYXVsdHMgdG8gMSBzZWNvbmQuIE1pbmltdW0gdmFsdWUgaXMgMS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvcG9kcy9wb2QtbGlmZWN5Y2xlI2NvbnRhaW5lci1wcm9iZXMiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJjb250YWluZXIiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBkZXBsb3ltZW50IiwidHlwZSI6InN0cmluZyJ9LCJub2RlU2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik5vZGVTZWxlY3RvciBvdmVycmlkZXMgbm9kZVNlbGVjdG9yIGZvciB0aGUgZGVwbG95bWVudC4iLCJ0eXBlIjoib2JqZWN0In0sInJlYWRpbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IlJlYWRpbmVzc1Byb2JlcyBvdmVycmlkZXMgcmVhZGluZXNzIHByb2JlcyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJQcm9iZXNSZXF1aXJlbWVudHNPdmVycmlkZSBlbmFibGVzIHRoZSB1c2VyIHRvIG92ZXJyaWRlIGFueSBjb250YWluZXIncyBlbnYgdmFycy4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZmFpbHVyZVRocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkLiBEZWZhdWx0cyB0byAzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZS4gRGVmYXVsdCB0byAxMCBzZWNvbmRzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJzdWNjZXNzVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZC4gRGVmYXVsdHMgdG8gMS4gTXVzdCBiZSAxIGZvciBsaXZlbmVzcyBhbmQgc3RhcnR1cC4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBkdXJhdGlvbiBpbiBzZWNvbmRzIHRoZSBwb2QgbmVlZHMgdG8gdGVybWluYXRlIGdyYWNlZnVsbHkgdXBvbiBwcm9iZSBmYWlsdXJlLiBUaGUgZ3JhY2UgcGVyaW9kIGlzIHRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHRoZSBwcm9jZXNzZXMgcnVubmluZyBpbiB0aGUgcG9kIGFyZSBzZW50IGEgdGVybWluYXRpb24gc2lnbmFsIGFuZCB0aGUgdGltZSB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIGZvcmNpYmx5IGhhbHRlZCB3aXRoIGEga2lsbCBzaWduYWwuIFNldCB0aGlzIHZhbHVlIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBjbGVhbnVwIHRpbWUgZm9yIHlvdXIgcHJvY2Vzcy4gSWYgdGhpcyB2YWx1ZSBpcyBuaWwsIHRoZSBwb2QncyB0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgdGhpcyB2YWx1ZSBvdmVycmlkZXMgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBwb2Qgc3BlYy4gVmFsdWUgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlci4gVGhlIHZhbHVlIHplcm8gaW5kaWNhdGVzIHN0b3AgaW1tZWRpYXRlbHkgdmlhIHRoZSBraWxsIHNpZ25hbCAobm8gb3Bwb3J0dW5pdHkgdG8gc2h1dCBkb3duKS4gVGhpcyBpcyBhIGJldGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIFByb2JlVGVybWluYXRpb25HcmFjZVBlcmlvZCBmZWF0dXJlIGdhdGUuIE1pbmltdW0gdmFsdWUgaXMgMS4gc3BlYy50ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyBpcyB1c2VkIGlmIHVuc2V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidGltZW91dFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0LiBEZWZhdWx0cyB0byAxIHNlY29uZC4gTWluaW11bSB2YWx1ZSBpcyAxLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIGNvbnRhaW5lcidzIHJlc291cmNlcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBwb2QgdGhpcyBSZXNvdXJjZSBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHJlcXVlc3RzIGFuZCBsaW1pdHMgZm9yIGEgY2VydGFpbiBjb250YWluZXIgYmFzZWQgb24gdGhlIG5hbWUuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIiwidHlwZSI6InN0cmluZyJ9LCJsaW1pdHMiOnsicHJvcGVydGllcyI6eyJjcHUiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9LCJtZW1vcnkiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJwcm9wZXJ0aWVzIjp7ImNwdSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn0sIm1lbW9yeSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ0b2xlcmF0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHRvbGVyYXRpb25zLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFRvbGVyYXRpb24gaXMgYXR0YWNoZWQgdG8gdG9sZXJhdGVzIGFueSB0YWludCB0aGF0IG1hdGNoZXMgdGhlIHRyaXBsZSBcdTAwM2NrZXksdmFsdWUsZWZmZWN0XHUwMDNlIHVzaW5nIHRoZSBtYXRjaGluZyBvcGVyYXRvciBcdTAwM2NvcGVyYXRvclx1MDAzZS4iLCJwcm9wZXJ0aWVzIjp7ImVmZmVjdCI6eyJkZXNjcmlwdGlvbiI6IkVmZmVjdCBpbmRpY2F0ZXMgdGhlIHRhaW50IGVmZmVjdCB0byBtYXRjaC4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGVmZmVjdHMuIFdoZW4gc3BlY2lmaWVkLCBhbGxvd2VkIHZhbHVlcyBhcmUgTm9TY2hlZHVsZSwgUHJlZmVyTm9TY2hlZHVsZSBhbmQgTm9FeGVjdXRlLiIsInR5cGUiOiJzdHJpbmcifSwia2V5Ijp7ImRlc2NyaXB0aW9uIjoiS2V5IGlzIHRoZSB0YWludCBrZXkgdGhhdCB0aGUgdG9sZXJhdGlvbiBhcHBsaWVzIHRvLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQga2V5cy4gSWYgdGhlIGtleSBpcyBlbXB0eSwgb3BlcmF0b3IgbXVzdCBiZSBFeGlzdHM7IHRoaXMgY29tYmluYXRpb24gbWVhbnMgdG8gbWF0Y2ggYWxsIHZhbHVlcyBhbmQgYWxsIGtleXMuIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gdGhlIHZhbHVlLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEV4aXN0cyBhbmQgRXF1YWwuIERlZmF1bHRzIHRvIEVxdWFsLiBFeGlzdHMgaXMgZXF1aXZhbGVudCB0byB3aWxkY2FyZCBmb3IgdmFsdWUsIHNvIHRoYXQgYSBwb2QgY2FuIHRvbGVyYXRlIGFsbCB0YWludHMgb2YgYSBwYXJ0aWN1bGFyIGNhdGVnb3J5LiIsInR5cGUiOiJzdHJpbmcifSwidG9sZXJhdGlvblNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJUb2xlcmF0aW9uU2Vjb25kcyByZXByZXNlbnRzIHRoZSBwZXJpb2Qgb2YgdGltZSB0aGUgdG9sZXJhdGlvbiAod2hpY2ggbXVzdCBiZSBvZiBlZmZlY3QgTm9FeGVjdXRlLCBvdGhlcndpc2UgdGhpcyBmaWVsZCBpcyBpZ25vcmVkKSB0b2xlcmF0ZXMgdGhlIHRhaW50LiBCeSBkZWZhdWx0LCBpdCBpcyBub3Qgc2V0LCB3aGljaCBtZWFucyB0b2xlcmF0ZSB0aGUgdGFpbnQgZm9yZXZlciAoZG8gbm90IGV2aWN0KS4gWmVybyBhbmQgbmVnYXRpdmUgdmFsdWVzIHdpbGwgYmUgdHJlYXRlZCBhcyAwIChldmljdCBpbW1lZGlhdGVseSkgYnkgdGhlIHN5c3RlbS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHRhaW50IHZhbHVlIHRoZSB0b2xlcmF0aW9uIG1hdGNoZXMgdG8uIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMsIHRoZSB2YWx1ZSBzaG91bGQgYmUgZW1wdHksIG90aGVyd2lzZSBqdXN0IGEgcmVndWxhciBzdHJpbmcuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lTcHJlYWRDb25zdHJhaW50cyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHRvcG9sb2d5IHNwcmVhZCBjb25zdHJhaW50cy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRvcG9sb2d5U3ByZWFkQ29uc3RyYWludCBzcGVjaWZpZXMgaG93IHRvIHNwcmVhZCBtYXRjaGluZyBwb2RzIGFtb25nIHRoZSBnaXZlbiB0b3BvbG9neS4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJMYWJlbFNlbGVjdG9yIGlzIHVzZWQgdG8gZmluZCBtYXRjaGluZyBwb2RzLiBQb2RzIHRoYXQgbWF0Y2ggdGhpcyBsYWJlbCBzZWxlY3RvciBhcmUgY291bnRlZCB0byBkZXRlcm1pbmUgdGhlIG51bWJlciBvZiBwb2RzIGluIHRoZWlyIGNvcnJlc3BvbmRpbmcgdG9wb2xvZ3kgZG9tYWluLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibWF4U2tldyI6eyJkZXNjcmlwdGlvbiI6Ik1heFNrZXcgZGVzY3JpYmVzIHRoZSBkZWdyZWUgdG8gd2hpY2ggcG9kcyBtYXkgYmUgdW5ldmVubHkgZGlzdHJpYnV0ZWQuIEl0J3MgdGhlIG1heGltdW0gcGVybWl0dGVkIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgbnVtYmVyIG9mIG1hdGNoaW5nIHBvZHMgaW4gYW55IHR3byB0b3BvbG9neSBkb21haW5zIG9mIGEgZ2l2ZW4gdG9wb2xvZ3kgdHlwZS4gRm9yIGV4YW1wbGUsIGluIGEgMy16b25lIGNsdXN0ZXIsIE1heFNrZXcgaXMgc2V0IHRvIDEsIGFuZCBwb2RzIHdpdGggdGhlIHNhbWUgbGFiZWxTZWxlY3RvciBzcHJlYWQgYXMgMS8xLzA6IHwgem9uZTEgfCB6b25lMiB8IHpvbmUzIHwgfCAgIFAgICB8ICAgUCAgIHwgICAgICAgfCAtIGlmIE1heFNrZXcgaXMgMSwgaW5jb21pbmcgcG9kIGNhbiBvbmx5IGJlIHNjaGVkdWxlZCB0byB6b25lMyB0byBiZWNvbWUgMS8xLzE7IHNjaGVkdWxpbmcgaXQgb250byB6b25lMSh6b25lMikgd291bGQgbWFrZSB0aGUgQWN0dWFsU2tldygyLTApIG9uIHpvbmUxKHpvbmUyKSB2aW9sYXRlIE1heFNrZXcoMSkuIC0gaWYgTWF4U2tldyBpcyAyLCBpbmNvbWluZyBwb2QgY2FuIGJlIHNjaGVkdWxlZCBvbnRvIGFueSB6b25lLiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIERlZmF1bHQgdmFsdWUgaXMgMSBhbmQgMCBpcyBub3QgYWxsb3dlZC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVG9wb2xvZ3lLZXkgaXMgdGhlIGtleSBvZiBub2RlIGxhYmVscy4gTm9kZXMgdGhhdCBoYXZlIGEgbGFiZWwgd2l0aCB0aGlzIGtleSBhbmQgaWRlbnRpY2FsIHZhbHVlcyBhcmUgY29uc2lkZXJlZCB0byBiZSBpbiB0aGUgc2FtZSB0b3BvbG9neS4gV2UgY29uc2lkZXIgZWFjaCBcdTAwM2NrZXksIHZhbHVlXHUwMDNlIGFzIGEgXCJidWNrZXRcIiwgYW5kIHRyeSB0byBwdXQgYmFsYW5jZWQgbnVtYmVyIG9mIHBvZHMgaW50byBlYWNoIGJ1Y2tldC4gSXQncyBhIHJlcXVpcmVkIGZpZWxkLiIsInR5cGUiOiJzdHJpbmcifSwid2hlblVuc2F0aXNmaWFibGUiOnsiZGVzY3JpcHRpb24iOiJXaGVuVW5zYXRpc2ZpYWJsZSBpbmRpY2F0ZXMgaG93IHRvIGRlYWwgd2l0aCBhIHBvZCBpZiBpdCBkb2Vzbid0IHNhdGlzZnkgdGhlIHNwcmVhZCBjb25zdHJhaW50LiAtIERvTm90U2NoZWR1bGUgKGRlZmF1bHQpIHRlbGxzIHRoZSBzY2hlZHVsZXIgbm90IHRvIHNjaGVkdWxlIGl0IC0gU2NoZWR1bGVBbnl3YXkgdGVsbHMgdGhlIHNjaGVkdWxlciB0byBzdGlsbCBzY2hlZHVsZSBpdCBJdCdzIGNvbnNpZGVyZWQgYXMgXCJVbnNhdGlzZmlhYmxlXCIgaWYgYW5kIG9ubHkgaWYgcGxhY2luZyBpbmNvbWluZyBwb2Qgb24gYW55IHRvcG9sb2d5IHZpb2xhdGVzIFwiTWF4U2tld1wiLiBGb3IgZXhhbXBsZSwgaW4gYSAzLXpvbmUgY2x1c3RlciwgTWF4U2tldyBpcyBzZXQgdG8gMSwgYW5kIHBvZHMgd2l0aCB0aGUgc2FtZSBsYWJlbFNlbGVjdG9yIHNwcmVhZCBhcyAzLzEvMTogfCB6b25lMSB8IHpvbmUyIHwgem9uZTMgfCB8IFAgUCBQIHwgICBQICAgfCAgIFAgICB8IElmIFdoZW5VbnNhdGlzZmlhYmxlIGlzIHNldCB0byBEb05vdFNjaGVkdWxlLCBpbmNvbWluZyBwb2QgY2FuIG9ubHkgYmUgc2NoZWR1bGVkIHRvIHpvbmUyKHpvbmUzKSB0byBiZWNvbWUgMy8yLzEoMy8xLzIpIGFzIEFjdHVhbFNrZXcoMi0xKSBvbiB6b25lMih6b25lMykgc2F0aXNmaWVzIE1heFNrZXcoMSkuIEluIG90aGVyIHdvcmRzLCB0aGUgY2x1c3RlciBjYW4gc3RpbGwgYmUgaW1iYWxhbmNlZCwgYnV0IHNjaGVkdWxlciB3b24ndCBtYWtlIGl0ICptb3JlKiBpbWJhbGFuY2VkLiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibWF4U2tldyIsInRvcG9sb2d5S2V5Iiwid2hlblVuc2F0aXNmaWFibGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwidmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlZlcnNpb24gdGhlIGNsdXN0ZXIgc2hvdWxkIGJlIG9uLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW91bnRzIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTW91bnRzIGFsbG93cyBjb25maWd1cmF0aW9uIG9mIGFkZGl0aW9uYWwgVm9sdW1lTW91bnRzIG9uIHRoZSBvdXRwdXQgU3RhdGVmdWxTZXQgZGVmaW5pdGlvbi4gVm9sdW1lTW91bnRzIHNwZWNpZmllZCB3aWxsIGJlIGFwcGVuZGVkIHRvIG90aGVyIFZvbHVtZU1vdW50cyBpbiB0aGUgYWxlcnRtYW5hZ2VyIGNvbnRhaW5lciwgdGhhdCBhcmUgZ2VuZXJhdGVkIGFzIGEgcmVzdWx0IG9mIFN0b3JhZ2VTcGVjIG9iamVjdHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudCBkZXNjcmliZXMgYSBtb3VudGluZyBvZiBhIFZvbHVtZSB3aXRoaW4gYSBjb250YWluZXIuIiwicHJvcGVydGllcyI6eyJtb3VudFBhdGgiOnsiZGVzY3JpcHRpb24iOiJQYXRoIHdpdGhpbiB0aGUgY29udGFpbmVyIGF0IHdoaWNoIHRoZSB2b2x1bWUgc2hvdWxkIGJlIG1vdW50ZWQuICBNdXN0IG5vdCBjb250YWluICc6Jy4iLCJ0eXBlIjoic3RyaW5nIn0sIm1vdW50UHJvcGFnYXRpb24iOnsiZGVzY3JpcHRpb24iOiJtb3VudFByb3BhZ2F0aW9uIGRldGVybWluZXMgaG93IG1vdW50cyBhcmUgcHJvcGFnYXRlZCBmcm9tIHRoZSBob3N0IHRvIGNvbnRhaW5lciBhbmQgdGhlIG90aGVyIHdheSBhcm91bmQuIFdoZW4gbm90IHNldCwgTW91bnRQcm9wYWdhdGlvbk5vbmUgaXMgdXNlZC4gVGhpcyBmaWVsZCBpcyBiZXRhIGluIDEuMTAuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhpcyBtdXN0IG1hdGNoIHRoZSBOYW1lIG9mIGEgVm9sdW1lLiIsInR5cGUiOiJzdHJpbmcifSwicmVhZE9ubHkiOnsiZGVzY3JpcHRpb24iOiJNb3VudGVkIHJlYWQtb25seSBpZiB0cnVlLCByZWFkLXdyaXRlIG90aGVyd2lzZSAoZmFsc2Ugb3IgdW5zcGVjaWZpZWQpLiBEZWZhdWx0cyB0byBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzdWJQYXRoIjp7ImRlc2NyaXB0aW9uIjoiUGF0aCB3aXRoaW4gdGhlIHZvbHVtZSBmcm9tIHdoaWNoIHRoZSBjb250YWluZXIncyB2b2x1bWUgc2hvdWxkIGJlIG1vdW50ZWQuIERlZmF1bHRzIHRvIFwiXCIgKHZvbHVtZSdzIHJvb3QpLiIsInR5cGUiOiJzdHJpbmcifSwic3ViUGF0aEV4cHIiOnsiZGVzY3JpcHRpb24iOiJFeHBhbmRlZCBwYXRoIHdpdGhpbiB0aGUgdm9sdW1lIGZyb20gd2hpY2ggdGhlIGNvbnRhaW5lcidzIHZvbHVtZSBzaG91bGQgYmUgbW91bnRlZC4gQmVoYXZlcyBzaW1pbGFybHkgdG8gU3ViUGF0aCBidXQgZW52aXJvbm1lbnQgdmFyaWFibGUgcmVmZXJlbmNlcyAkKFZBUl9OQU1FKSBhcmUgZXhwYW5kZWQgdXNpbmcgdGhlIGNvbnRhaW5lcidzIGVudmlyb25tZW50LiBEZWZhdWx0cyB0byBcIlwiICh2b2x1bWUncyByb290KS4gU3ViUGF0aEV4cHIgYW5kIFN1YlBhdGggYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJtb3VudFBhdGgiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1wcmVzZXJ2ZS11bmtub3duLWZpZWxkcyI6dHJ1ZX0sInN0YXR1cyI6eyJwcm9wZXJ0aWVzIjp7ImNvbmRpdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IGF2YWlsYWJsZSBvYnNlcnZhdGlvbnMgb2YgYSByZXNvdXJjZSdzIGN1cnJlbnQgc3RhdGUuIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJsYXN0VHJhbnNpdGlvblRpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VHJhbnNpdGlvblRpbWUgaXMgdGhlIGxhc3QgdGltZSB0aGUgY29uZGl0aW9uIHRyYW5zaXRpb25lZCBmcm9tIG9uZSBzdGF0dXMgdG8gYW5vdGhlci4gV2UgdXNlIFZvbGF0aWxlVGltZSBpbiBwbGFjZSBvZiBtZXRhdjEuVGltZSB0byBleGNsdWRlIHRoaXMgZnJvbSBjcmVhdGluZyBlcXVhbGl0eS5TZW1hbnRpYyBkaWZmZXJlbmNlcyAoYWxsIG90aGVyIHRoaW5ncyBoZWxkIGNvbnN0YW50KS4iLCJ0eXBlIjoic3RyaW5nIn0sIm1lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJBIGh1bWFuIHJlYWRhYmxlIG1lc3NhZ2UgaW5kaWNhdGluZyBkZXRhaWxzIGFib3V0IHRoZSB0cmFuc2l0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwicmVhc29uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHJlYXNvbiBmb3IgdGhlIGNvbmRpdGlvbidzIGxhc3QgdHJhbnNpdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInNldmVyaXR5Ijp7ImRlc2NyaXB0aW9uIjoiU2V2ZXJpdHkgd2l0aCB3aGljaCB0byB0cmVhdCBmYWlsdXJlcyBvZiB0aGlzIHR5cGUgb2YgY29uZGl0aW9uLiBXaGVuIHRoaXMgaXMgbm90IHNwZWNpZmllZCwgaXQgZGVmYXVsdHMgdG8gRXJyb3IuIiwidHlwZSI6InN0cmluZyJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJTdGF0dXMgb2YgdGhlIGNvbmRpdGlvbiwgb25lIG9mIFRydWUsIEZhbHNlLCBVbmtub3duLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6IlR5cGUgb2YgY29uZGl0aW9uLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiLCJzdGF0dXMiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWFuaWZlc3RzIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGxpc3Qgb2YgZXZlbnRpbmcgbWFuaWZlc3RzLCB3aGljaCBoYXZlIGJlZW4gaW5zdGFsbGVkIGJ5IHRoZSBvcGVyYXRvciIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sIm9ic2VydmVkR2VuZXJhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBnZW5lcmF0aW9uIGxhc3QgcHJvY2Vzc2VkIGJ5IHRoZSBjb250cm9sbGVyIiwidHlwZSI6ImludGVnZXIifSwidmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSB2ZXJzaW9uIG9mIHRoZSBpbnN0YWxsZWQgcmVsZWFzZSIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsibGFiZWxzIjp7ImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIiwiYXBwLmt1YmVybmV0ZXMuaW8vdmVyc2lvbiI6ImRldmVsIn0sIm5hbWUiOiJrbmF0aXZlc2VydmluZ3Mub3BlcmF0b3Iua25hdGl2ZS5kZXYifSwic3BlYyI6eyJjb252ZXJzaW9uIjp7InN0cmF0ZWd5IjoiV2ViaG9vayIsIndlYmhvb2siOnsiY2xpZW50Q29uZmlnIjp7InNlcnZpY2UiOnsibmFtZSI6Im9wZXJhdG9yLXdlYmhvb2siLCJuYW1lc3BhY2UiOiJrbmF0aXZlLW9wZXJhdG9yIiwicGF0aCI6Ii9yZXNvdXJjZS1jb252ZXJzaW9uIn19LCJjb252ZXJzaW9uUmV2aWV3VmVyc2lvbnMiOlsidjFiZXRhMSJdfX0sImdyb3VwIjoib3BlcmF0b3Iua25hdGl2ZS5kZXYiLCJuYW1lcyI6eyJraW5kIjoiS25hdGl2ZVNlcnZpbmciLCJsaXN0S2luZCI6IktuYXRpdmVTZXJ2aW5nTGlzdCIsInBsdXJhbCI6ImtuYXRpdmVzZXJ2aW5ncyIsInNpbmd1bGFyIjoia25hdGl2ZXNlcnZpbmcifSwic2NvcGUiOiJOYW1lc3BhY2VkIiwidmVyc2lvbnMiOlt7ImFkZGl0aW9uYWxQcmludGVyQ29sdW1ucyI6W3sianNvblBhdGgiOiIuc3RhdHVzLnZlcnNpb24iLCJuYW1lIjoiVmVyc2lvbiIsInR5cGUiOiJzdHJpbmcifSx7Impzb25QYXRoIjoiLnN0YXR1cy5jb25kaXRpb25zWz8oQC50eXBlPT1cIlJlYWR5XCIpXS5zdGF0dXMiLCJuYW1lIjoiUmVhZHkiLCJ0eXBlIjoic3RyaW5nIn0seyJqc29uUGF0aCI6Ii5zdGF0dXMuY29uZGl0aW9uc1s/KEAudHlwZT09XCJSZWFkeVwiKV0ucmVhc29uIiwibmFtZSI6IlJlYXNvbiIsInR5cGUiOiJzdHJpbmcifV0sIm5hbWUiOiJ2MWJldGExIiwic2NoZW1hIjp7Im9wZW5BUElWM1NjaGVtYSI6eyJkZXNjcmlwdGlvbiI6IlNjaGVtYSBmb3IgdGhlIGtuYXRpdmVzZXJ2aW5ncyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIEtuYXRpdmVTZXJ2aW5nIiwicHJvcGVydGllcyI6eyJjb25maWciOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoib2JqZWN0In0sImRlc2NyaXB0aW9uIjoiQSBtZWFucyB0byBvdmVycmlkZSB0aGUgY29ycmVzcG9uZGluZyBlbnRyaWVzIGluIHRoZSB1cHN0cmVhbSBjb25maWdtYXBzIiwidHlwZSI6Im9iamVjdCJ9LCJjb250cm9sbGVyLWN1c3RvbS1jZXJ0cyI6eyJkZXNjcmlwdGlvbiI6IkVuYWJsaW5nIHRoZSBjb250cm9sbGVyIHRvIHRydXN0IHJlZ2lzdHJpZXMgd2l0aCBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZXMiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgQ29uZmlnTWFwIG9yIFNlY3JldCIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6Ik9uZSBvZiBDb25maWdNYXAgb3IgU2VjcmV0IiwiZW51bSI6WyJDb25maWdNYXAiLCJTZWNyZXQiLCIiXSwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJkZXBsb3ltZW50cyI6eyJkZXNjcmlwdGlvbiI6IkEgbWFwcGluZyBvZiBkZXBsb3ltZW50IG5hbWUgdG8gb3ZlcnJpZGUiLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7ImFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3Mgc2NoZWR1bGluZyBjb25zdHJhaW50cy4iLCJwcm9wZXJ0aWVzIjp7Im5vZGVBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBub2RlIGFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgZm9yIHRoZSBwb2QuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnkgdGhlIGFmZmluaXR5IGV4cHJlc3Npb25zIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkLCBidXQgaXQgbWF5IGNob29zZSBhIG5vZGUgdGhhdCB2aW9sYXRlcyBvbmUgb3IgbW9yZSBvZiB0aGUgZXhwcmVzc2lvbnMuIFRoZSBub2RlIHRoYXQgaXMgbW9zdCBwcmVmZXJyZWQgaXMgdGhlIG9uZSB3aXRoIHRoZSBncmVhdGVzdCBzdW0gb2Ygd2VpZ2h0cywgaS5lLiBmb3IgZWFjaCBub2RlIHRoYXQgbWVldHMgYWxsIG9mIHRoZSBzY2hlZHVsaW5nIHJlcXVpcmVtZW50cyAocmVzb3VyY2UgcmVxdWVzdCwgcmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nIGFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSwgY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nIFwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIG1hdGNoRXhwcmVzc2lvbnM7IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBbiBlbXB0eSBwcmVmZXJyZWQgc2NoZWR1bGluZyB0ZXJtIG1hdGNoZXMgYWxsIG9iamVjdHMgd2l0aCBpbXBsaWNpdCB3ZWlnaHQgMCAoaS5lLiBpdCdzIGEgbm8tb3ApLiBBIG51bGwgcHJlZmVycmVkIHNjaGVkdWxpbmcgdGVybSBtYXRjaGVzIG5vIG9iamVjdHMgKGkuZS4gaXMgYWxzbyBhIG5vLW9wKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcmVuY2UiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGxhYmVscy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hGaWVsZHMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGZpZWxkcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwid2VpZ2h0Ijp7ImRlc2NyaXB0aW9uIjoiV2VpZ2h0IGFzc29jaWF0ZWQgd2l0aCBtYXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBub2RlU2VsZWN0b3JUZXJtLCBpbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicHJlZmVyZW5jZSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBhcmUgbm90IG1ldCBhdCBzY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuIElmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGFuIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiIsInByb3BlcnRpZXMiOnsibm9kZVNlbGVjdG9yVGVybXMiOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgdGVybXMuIFRoZSB0ZXJtcyBhcmUgT1JlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbnVsbCBvciBlbXB0eSBub2RlIHNlbGVjdG9yIHRlcm0gbWF0Y2hlcyBubyBvYmplY3RzLiBUaGUgcmVxdWlyZW1lbnRzIG9mIHRoZW0gYXJlIEFORGVkLiBUaGUgVG9wb2xvZ3lTZWxlY3RvclRlcm0gdHlwZSBpbXBsZW1lbnRzIGEgc3Vic2V0IG9mIHRoZSBOb2RlU2VsZWN0b3JUZXJtLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgbGFiZWxzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaEZpZWxkcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgZmllbGRzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbIm5vZGVTZWxlY3RvclRlcm1zIl0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicG9kQWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJEZXNjcmliZXMgcG9kIGFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgKGUuZy4gY28tbG9jYXRlIHRoaXMgcG9kIGluIHRoZSBzYW1lIG5vZGUsIHpvbmUsIGV0Yy4gYXMgc29tZSBvdGhlciBwb2QocykpLiIsInByb3BlcnRpZXMiOnsicHJlZmVycmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgc2NoZWR1bGVyIHdpbGwgcHJlZmVyIHRvIHNjaGVkdWxlIHBvZHMgdG8gbm9kZXMgdGhhdCBzYXRpc2Z5IHRoZSBhZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgaGFzIHBvZHMgd2hpY2ggbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm07IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgd2VpZ2h0cyBvZiBhbGwgb2YgdGhlIG1hdGNoZWQgV2VpZ2h0ZWRQb2RBZmZpbml0eVRlcm0gZmllbGRzIGFyZSBhZGRlZCBwZXItbm9kZSB0byBmaW5kIHRoZSBtb3N0IHByZWZlcnJlZCBub2RlKHMpIiwicHJvcGVydGllcyI6eyJwb2RBZmZpbml0eVRlcm0iOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBwb2QgYWZmaW5pdHkgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ3ZWlnaHQiOnsiZGVzY3JpcHRpb24iOiJ3ZWlnaHQgYXNzb2NpYXRlZCB3aXRoIG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInBvZEFmZmluaXR5VGVybSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBhcmUgbm90IG1ldCBhdCBzY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuIElmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGEgcG9kIGxhYmVsIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiBXaGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBlbGVtZW50cywgdGhlIGxpc3RzIG9mIG5vZGVzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb2RBZmZpbml0eVRlcm0gYXJlIGludGVyc2VjdGVkLCBpLmUuIGFsbCB0ZXJtcyBtdXN0IGJlIHNhdGlzZmllZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkRlZmluZXMgYSBzZXQgb2YgcG9kcyAobmFtZWx5IHRob3NlIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIHJlbGF0aXZlIHRvIHRoZSBnaXZlbiBuYW1lc3BhY2UocykpIHRoYXQgdGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCwgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSBcdTAwM2N0b3BvbG9neUtleVx1MDAzZSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYSBwb2Qgb2YgdGhlIHNldCBvZiBwb2RzIGlzIHJ1bm5pbmciLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwicG9kQW50aUFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiRGVzY3JpYmVzIHBvZCBhbnRpLWFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgKGUuZy4gYXZvaWQgcHV0dGluZyB0aGlzIHBvZCBpbiB0aGUgc2FtZSBub2RlLCB6b25lLCBldGMuIGFzIHNvbWUgb3RoZXIgcG9kKHMpKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcnJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHNjaGVkdWxlciB3aWxsIHByZWZlciB0byBzY2hlZHVsZSBwb2RzIHRvIG5vZGVzIHRoYXQgc2F0aXNmeSB0aGUgYW50aS1hZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhbnRpLWFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSwgY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nIFwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBoYXMgcG9kcyB3aGljaCBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybTsgdGhlIG5vZGUocykgd2l0aCB0aGUgaGlnaGVzdCBzdW0gYXJlIHRoZSBtb3N0IHByZWZlcnJlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSB3ZWlnaHRzIG9mIGFsbCBvZiB0aGUgbWF0Y2hlZCBXZWlnaHRlZFBvZEFmZmluaXR5VGVybSBmaWVsZHMgYXJlIGFkZGVkIHBlci1ub2RlIHRvIGZpbmQgdGhlIG1vc3QgcHJlZmVycmVkIG5vZGUocykiLCJwcm9wZXJ0aWVzIjp7InBvZEFmZmluaXR5VGVybSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkLiBBIHBvZCBhZmZpbml0eSB0ZXJtLCBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgd2VpZ2h0LiIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMsIGluIHRoaXMgY2FzZSBwb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibmFtZXNwYWNlcyI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZXMgc3BlY2lmaWVzIHdoaWNoIG5hbWVzcGFjZXMgdGhlIGxhYmVsU2VsZWN0b3IgYXBwbGllcyB0byAobWF0Y2hlcyBhZ2FpbnN0KTsgbnVsbCBvciBlbXB0eSBsaXN0IG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCB0aGUgcG9kcyBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciBpbiB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGUgc2VsZWN0ZWQgcG9kcyBpcyBydW5uaW5nLiBFbXB0eSB0b3BvbG9neUtleSBpcyBub3QgYWxsb3dlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0b3BvbG9neUtleSJdLCJ0eXBlIjoib2JqZWN0In0sIndlaWdodCI6eyJkZXNjcmlwdGlvbiI6IndlaWdodCBhc3NvY2lhdGVkIHdpdGggbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtLCBpbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicG9kQWZmaW5pdHlUZXJtIiwid2VpZ2h0Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJJZiB0aGUgYW50aS1hZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYW50aS1hZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGEgcG9kIGxhYmVsIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiBXaGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBlbGVtZW50cywgdGhlIGxpc3RzIG9mIG5vZGVzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb2RBZmZpbml0eVRlcm0gYXJlIGludGVyc2VjdGVkLCBpLmUuIGFsbCB0ZXJtcyBtdXN0IGJlIHNhdGlzZmllZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkRlZmluZXMgYSBzZXQgb2YgcG9kcyAobmFtZWx5IHRob3NlIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIHJlbGF0aXZlIHRvIHRoZSBnaXZlbiBuYW1lc3BhY2UocykpIHRoYXQgdGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCwgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSBcdTAwM2N0b3BvbG9neUtleVx1MDAzZSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYSBwb2Qgb2YgdGhlIHNldCBvZiBwb2RzIGlzIHJ1bm5pbmciLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBkZXBsb3ltZW50IGFuZCBpdHMgdGVtcGxhdGUuIiwidHlwZSI6Im9iamVjdCJ9LCJlbnYiOnsiZGVzY3JpcHRpb24iOiJFbnYgb3ZlcnJpZGVzIGVudiB2YXJzIGZvciB0aGUgY29udGFpbmVycy4iLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZW52VmFycyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBkZXNpcmVkIEVudlZhclJlcXVpcmVtZW50cyIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRW52VmFyIHJlcHJlc2VudHMgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgcHJlc2VudCBpbiBhIENvbnRhaW5lci4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZS4gTXVzdCBiZSBhIENfSURFTlRJRklFUi4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFyaWFibGUgcmVmZXJlbmNlcyAkKFZBUl9OQU1FKSBhcmUgZXhwYW5kZWQgdXNpbmcgdGhlIHByZXZpb3VzbHkgZGVmaW5lZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW4gdGhlIGNvbnRhaW5lciBhbmQgYW55IHNlcnZpY2UgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxlIGNhbm5vdCBiZSByZXNvbHZlZCwgdGhlIHJlZmVyZW5jZSBpbiB0aGUgaW5wdXQgc3RyaW5nIHdpbGwgYmUgdW5jaGFuZ2VkLiBEb3VibGUgJCQgYXJlIHJlZHVjZWQgdG8gYSBzaW5nbGUgJCwgd2hpY2ggYWxsb3dzIGZvciBlc2NhcGluZyB0aGUgJChWQVJfTkFNRSkgc3ludGF4OiBpLmUuIFwiJCQoVkFSX05BTUUpXCIgd2lsbCBwcm9kdWNlIHRoZSBzdHJpbmcgbGl0ZXJhbCBcIiQoVkFSX05BTUUpXCIuIEVzY2FwZWQgcmVmZXJlbmNlcyB3aWxsIG5ldmVyIGJlIGV4cGFuZGVkLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHZhcmlhYmxlIGV4aXN0cyBvciBub3QuIERlZmF1bHRzIHRvIFwiXCIuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZUZyb20iOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgZm9yIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSdzIHZhbHVlLiBDYW5ub3QgYmUgdXNlZCBpZiB2YWx1ZSBpcyBub3QgZW1wdHkuIiwicHJvcGVydGllcyI6eyJjb25maWdNYXBLZXlSZWYiOnsiZGVzY3JpcHRpb24iOiJTZWxlY3RzIGEga2V5IG9mIGEgQ29uZmlnTWFwLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGtleSB0byBzZWxlY3QuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgcmVmZXJlbnQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbmFtZXMvI25hbWVzIFRPRE86IEFkZCBvdGhlciB1c2VmdWwgZmllbGRzLiBhcGlWZXJzaW9uLCBraW5kLCB1aWQ/IiwidHlwZSI6InN0cmluZyJ9LCJvcHRpb25hbCI6eyJkZXNjcmlwdGlvbiI6IlNwZWNpZnkgd2hldGhlciB0aGUgQ29uZmlnTWFwIG9yIGl0cyBrZXkgbXVzdCBiZSBkZWZpbmVkIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImtleSJdLCJ0eXBlIjoib2JqZWN0In0sImZpZWxkUmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGZpZWxkIG9mIHRoZSBwb2Q6IHN1cHBvcnRzIG1ldGFkYXRhLm5hbWUsIG1ldGFkYXRhLm5hbWVzcGFjZSwgYG1ldGFkYXRhLmxhYmVsc1snXHUwMDNjS0VZXHUwMDNlJ11gLCBgbWV0YWRhdGEuYW5ub3RhdGlvbnNbJ1x1MDAzY0tFWVx1MDAzZSddYCwgc3BlYy5ub2RlTmFtZSwgc3BlYy5zZXJ2aWNlQWNjb3VudE5hbWUsIHN0YXR1cy5ob3N0SVAsIHN0YXR1cy5wb2RJUCwgc3RhdHVzLnBvZElQcy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJWZXJzaW9uIG9mIHRoZSBzY2hlbWEgdGhlIEZpZWxkUGF0aCBpcyB3cml0dGVuIGluIHRlcm1zIG9mLCBkZWZhdWx0cyB0byBcInYxXCIuIiwidHlwZSI6InN0cmluZyJ9LCJmaWVsZFBhdGgiOnsiZGVzY3JpcHRpb24iOiJQYXRoIG9mIHRoZSBmaWVsZCB0byBzZWxlY3QgaW4gdGhlIHNwZWNpZmllZCBBUEkgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJmaWVsZFBhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZUZpZWxkUmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIHJlc291cmNlIG9mIHRoZSBjb250YWluZXI6IG9ubHkgcmVzb3VyY2VzIGxpbWl0cyBhbmQgcmVxdWVzdHMgKGxpbWl0cy5jcHUsIGxpbWl0cy5tZW1vcnksIGxpbWl0cy5lcGhlbWVyYWwtc3RvcmFnZSwgcmVxdWVzdHMuY3B1LCByZXF1ZXN0cy5tZW1vcnkgYW5kIHJlcXVlc3RzLmVwaGVtZXJhbC1zdG9yYWdlKSBhcmUgY3VycmVudGx5IHN1cHBvcnRlZC4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lck5hbWUiOnsiZGVzY3JpcHRpb24iOiJDb250YWluZXIgbmFtZTogcmVxdWlyZWQgZm9yIHZvbHVtZXMsIG9wdGlvbmFsIGZvciBlbnYgdmFycyIsInR5cGUiOiJzdHJpbmcifSwiZGl2aXNvciI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoiU3BlY2lmaWVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHRoZSBleHBvc2VkIHJlc291cmNlcywgZGVmYXVsdHMgdG8gXCIxXCIiLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sInJlc291cmNlIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQ6IHJlc291cmNlIHRvIHNlbGVjdCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInJlc291cmNlIl0sInR5cGUiOiJvYmplY3QifSwic2VjcmV0S2V5UmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGtleSBvZiBhIHNlY3JldCBpbiB0aGUgcG9kJ3MgbmFtZXNwYWNlIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUga2V5IG9mIHRoZSBzZWNyZXQgdG8gc2VsZWN0IGZyb20uICBNdXN0IGJlIGEgdmFsaWQgc2VjcmV0IGtleS4iLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSByZWZlcmVudC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9vdmVydmlldy93b3JraW5nLXdpdGgtb2JqZWN0cy9uYW1lcy8jbmFtZXMgVE9ETzogQWRkIG90aGVyIHVzZWZ1bCBmaWVsZHMuIGFwaVZlcnNpb24sIGtpbmQsIHVpZD8iLCJ0eXBlIjoic3RyaW5nIn0sIm9wdGlvbmFsIjp7ImRlc2NyaXB0aW9uIjoiU3BlY2lmeSB3aGV0aGVyIHRoZSBTZWNyZXQgb3IgaXRzIGtleSBtdXN0IGJlIGRlZmluZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsia2V5Il0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJob3N0TmV0d29yayI6eyJkZXNjcmlwdGlvbiI6IlVzZSB0aGUgaG9zdCdzIG5ldHdvcmsgbmFtZXNwYWNlIGlmIHRydWUuIE1ha2Ugc3VyZSB0byB1bmRlcnN0YW5kIHRoZSBzZWN1cml0eSBpbXBsaWNhdGlvbnMgaWYgeW91IHdhbnQgdG8gZW5hYmxlIGl0LiBXaGVuIGhvc3ROZXR3b3JrIGlzIGVuYWJsZWQsIHRoaXMgd2lsbCBzZXQgZG5zUG9saWN5IHRvIENsdXN0ZXJGaXJzdFdpdGhIb3N0TmV0IGF1dG9tYXRpY2FsbHkuIiwidHlwZSI6ImJvb2xlYW4ifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJMYWJlbHMgb3ZlcnJpZGVzIGxhYmVscyBmb3IgdGhlIGRlcGxveW1lbnQgYW5kIGl0cyB0ZW1wbGF0ZS4iLCJ0eXBlIjoib2JqZWN0In0sImxpdmVuZXNzUHJvYmVzIjp7ImRlc2NyaXB0aW9uIjoiTGl2ZW5lc3NQcm9iZXMgb3ZlcnJpZGVzIGxpdmVuZXNzIHByb2JlcyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJQcm9iZXNSZXF1aXJlbWVudHNPdmVycmlkZSBlbmFibGVzIHRoZSB1c2VyIHRvIG92ZXJyaWRlIGFueSBjb250YWluZXIncyBlbnYgdmFycy4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZmFpbHVyZVRocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkLiBEZWZhdWx0cyB0byAzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZS4gRGVmYXVsdCB0byAxMCBzZWNvbmRzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJzdWNjZXNzVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZC4gRGVmYXVsdHMgdG8gMS4gTXVzdCBiZSAxIGZvciBsaXZlbmVzcyBhbmQgc3RhcnR1cC4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBkdXJhdGlvbiBpbiBzZWNvbmRzIHRoZSBwb2QgbmVlZHMgdG8gdGVybWluYXRlIGdyYWNlZnVsbHkgdXBvbiBwcm9iZSBmYWlsdXJlLiBUaGUgZ3JhY2UgcGVyaW9kIGlzIHRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHRoZSBwcm9jZXNzZXMgcnVubmluZyBpbiB0aGUgcG9kIGFyZSBzZW50IGEgdGVybWluYXRpb24gc2lnbmFsIGFuZCB0aGUgdGltZSB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIGZvcmNpYmx5IGhhbHRlZCB3aXRoIGEga2lsbCBzaWduYWwuIFNldCB0aGlzIHZhbHVlIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBjbGVhbnVwIHRpbWUgZm9yIHlvdXIgcHJvY2Vzcy4gSWYgdGhpcyB2YWx1ZSBpcyBuaWwsIHRoZSBwb2QncyB0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgdGhpcyB2YWx1ZSBvdmVycmlkZXMgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBwb2Qgc3BlYy4gVmFsdWUgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlci4gVGhlIHZhbHVlIHplcm8gaW5kaWNhdGVzIHN0b3AgaW1tZWRpYXRlbHkgdmlhIHRoZSBraWxsIHNpZ25hbCAobm8gb3Bwb3J0dW5pdHkgdG8gc2h1dCBkb3duKS4gVGhpcyBpcyBhIGJldGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIFByb2JlVGVybWluYXRpb25HcmFjZVBlcmlvZCBmZWF0dXJlIGdhdGUuIE1pbmltdW0gdmFsdWUgaXMgMS4gc3BlYy50ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyBpcyB1c2VkIGlmIHVuc2V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidGltZW91dFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0LiBEZWZhdWx0cyB0byAxIHNlY29uZC4gTWluaW11bSB2YWx1ZSBpcyAxLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIGRlcGxveW1lbnQiLCJ0eXBlIjoic3RyaW5nIn0sIm5vZGVTZWxlY3RvciI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTm9kZVNlbGVjdG9yIG92ZXJyaWRlcyBub2RlU2VsZWN0b3IgZm9yIHRoZSBkZXBsb3ltZW50LiIsInR5cGUiOiJvYmplY3QifSwicmVhZGluZXNzUHJvYmVzIjp7ImRlc2NyaXB0aW9uIjoiUmVhZGluZXNzUHJvYmVzIG92ZXJyaWRlcyByZWFkaW5lc3MgcHJvYmVzIGZvciB0aGUgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlByb2Jlc1JlcXVpcmVtZW50c092ZXJyaWRlIGVuYWJsZXMgdGhlIHVzZXIgdG8gb3ZlcnJpZGUgYW55IGNvbnRhaW5lcidzIGVudiB2YXJzLiIsInByb3BlcnRpZXMiOnsiY29udGFpbmVyIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGNvbnRhaW5lciBuYW1lIiwidHlwZSI6InN0cmluZyJ9LCJmYWlsdXJlVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBmYWlsdXJlcyBmb3IgdGhlIHByb2JlIHRvIGJlIGNvbnNpZGVyZWQgZmFpbGVkIGFmdGVyIGhhdmluZyBzdWNjZWVkZWQuIERlZmF1bHRzIHRvIDMuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sImluaXRpYWxEZWxheVNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB0aGUgY29udGFpbmVyIGhhcyBzdGFydGVkIGJlZm9yZSBsaXZlbmVzcyBwcm9iZXMgYXJlIGluaXRpYXRlZC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvcG9kcy9wb2QtbGlmZWN5Y2xlI2NvbnRhaW5lci1wcm9iZXMiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJIb3cgb2Z0ZW4gKGluIHNlY29uZHMpIHRvIHBlcmZvcm0gdGhlIHByb2JlLiBEZWZhdWx0IHRvIDEwIHNlY29uZHMuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInN1Y2Nlc3NUaHJlc2hvbGQiOnsiZGVzY3JpcHRpb24iOiJNaW5pbXVtIGNvbnNlY3V0aXZlIHN1Y2Nlc3NlcyBmb3IgdGhlIHByb2JlIHRvIGJlIGNvbnNpZGVyZWQgc3VjY2Vzc2Z1bCBhZnRlciBoYXZpbmcgZmFpbGVkLiBEZWZhdWx0cyB0byAxLiBNdXN0IGJlIDEgZm9yIGxpdmVuZXNzIGFuZCBzdGFydHVwLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik9wdGlvbmFsIGR1cmF0aW9uIGluIHNlY29uZHMgdGhlIHBvZCBuZWVkcyB0byB0ZXJtaW5hdGUgZ3JhY2VmdWxseSB1cG9uIHByb2JlIGZhaWx1cmUuIFRoZSBncmFjZSBwZXJpb2QgaXMgdGhlIGR1cmF0aW9uIGluIHNlY29uZHMgYWZ0ZXIgdGhlIHByb2Nlc3NlcyBydW5uaW5nIGluIHRoZSBwb2QgYXJlIHNlbnQgYSB0ZXJtaW5hdGlvbiBzaWduYWwgYW5kIHRoZSB0aW1lIHdoZW4gdGhlIHByb2Nlc3NlcyBhcmUgZm9yY2libHkgaGFsdGVkIHdpdGggYSBraWxsIHNpZ25hbC4gU2V0IHRoaXMgdmFsdWUgbG9uZ2VyIHRoYW4gdGhlIGV4cGVjdGVkIGNsZWFudXAgdGltZSBmb3IgeW91ciBwcm9jZXNzLiBJZiB0aGlzIHZhbHVlIGlzIG5pbCwgdGhlIHBvZCdzIHRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIHdpbGwgYmUgdXNlZC4gT3RoZXJ3aXNlLCB0aGlzIHZhbHVlIG92ZXJyaWRlcyB0aGUgdmFsdWUgcHJvdmlkZWQgYnkgdGhlIHBvZCBzcGVjLiBWYWx1ZSBtdXN0IGJlIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLiBUaGUgdmFsdWUgemVybyBpbmRpY2F0ZXMgc3RvcCBpbW1lZGlhdGVseSB2aWEgdGhlIGtpbGwgc2lnbmFsIChubyBvcHBvcnR1bml0eSB0byBzaHV0IGRvd24pLiBUaGlzIGlzIGEgYmV0YSBmaWVsZCBhbmQgcmVxdWlyZXMgZW5hYmxpbmcgUHJvYmVUZXJtaW5hdGlvbkdyYWNlUGVyaW9kIGZlYXR1cmUgZ2F0ZS4gTWluaW11bSB2YWx1ZSBpcyAxLiBzcGVjLnRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIGlzIHVzZWQgaWYgdW5zZXQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ0aW1lb3V0U2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHdoaWNoIHRoZSBwcm9iZSB0aW1lcyBvdXQuIERlZmF1bHRzIHRvIDEgc2Vjb25kLiBNaW5pbXVtIHZhbHVlIGlzIDEuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsiY29udGFpbmVyIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcGxpY2FzIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG51bWJlciBvZiByZXBsaWNhcyB0aGF0IEhBIHBhcnRzIG9mIHRoZSBjb250cm9sIHBsYW5lIHdpbGwgYmUgc2NhbGVkIHRvIiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgY29udGFpbmVyJ3MgcmVzb3VyY2VzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFJlc291cmNlIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgcmVxdWVzdHMgYW5kIGxpbWl0cyBmb3IgYSBjZXJ0YWluIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgbmFtZS4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBjb250YWluZXIiLCJ0eXBlIjoic3RyaW5nIn0sImxpbWl0cyI6eyJwcm9wZXJ0aWVzIjp7ImNwdSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn0sIm1lbW9yeSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7InByb3BlcnRpZXMiOnsiY3B1Ijp7InBhdHRlcm4iOiJeKFsrLV0/WzAtOS5dKykoW2VFaW51bWtLTUdUUF0qWy0rXT9bMC05XSopJCIsInR5cGUiOiJzdHJpbmcifSwibWVtb3J5Ijp7InBhdHRlcm4iOiJeKFsrLV0/WzAtOS5dKykoW2VFaW51bWtLTUdUUF0qWy0rXT9bMC05XSopJCIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInRvbGVyYXRpb25zIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3MgdG9sZXJhdGlvbnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgcG9kIHRoaXMgVG9sZXJhdGlvbiBpcyBhdHRhY2hlZCB0byB0b2xlcmF0ZXMgYW55IHRhaW50IHRoYXQgbWF0Y2hlcyB0aGUgdHJpcGxlIFx1MDAzY2tleSx2YWx1ZSxlZmZlY3RcdTAwM2UgdXNpbmcgdGhlIG1hdGNoaW5nIG9wZXJhdG9yIFx1MDAzY29wZXJhdG9yXHUwMDNlLiIsInByb3BlcnRpZXMiOnsiZWZmZWN0Ijp7ImRlc2NyaXB0aW9uIjoiRWZmZWN0IGluZGljYXRlcyB0aGUgdGFpbnQgZWZmZWN0IHRvIG1hdGNoLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQgZWZmZWN0cy4gV2hlbiBzcGVjaWZpZWQsIGFsbG93ZWQgdmFsdWVzIGFyZSBOb1NjaGVkdWxlLCBQcmVmZXJOb1NjaGVkdWxlIGFuZCBOb0V4ZWN1dGUuIiwidHlwZSI6InN0cmluZyJ9LCJrZXkiOnsiZGVzY3JpcHRpb24iOiJLZXkgaXMgdGhlIHRhaW50IGtleSB0aGF0IHRoZSB0b2xlcmF0aW9uIGFwcGxpZXMgdG8uIEVtcHR5IG1lYW5zIG1hdGNoIGFsbCB0YWludCBrZXlzLiBJZiB0aGUga2V5IGlzIGVtcHR5LCBvcGVyYXRvciBtdXN0IGJlIEV4aXN0czsgdGhpcyBjb21iaW5hdGlvbiBtZWFucyB0byBtYXRjaCBhbGwgdmFsdWVzIGFuZCBhbGwga2V5cy4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byB0aGUgdmFsdWUuIFZhbGlkIG9wZXJhdG9ycyBhcmUgRXhpc3RzIGFuZCBFcXVhbC4gRGVmYXVsdHMgdG8gRXF1YWwuIEV4aXN0cyBpcyBlcXVpdmFsZW50IHRvIHdpbGRjYXJkIGZvciB2YWx1ZSwgc28gdGhhdCBhIHBvZCBjYW4gdG9sZXJhdGUgYWxsIHRhaW50cyBvZiBhIHBhcnRpY3VsYXIgY2F0ZWdvcnkuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2xlcmF0aW9uU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IlRvbGVyYXRpb25TZWNvbmRzIHJlcHJlc2VudHMgdGhlIHBlcmlvZCBvZiB0aW1lIHRoZSB0b2xlcmF0aW9uICh3aGljaCBtdXN0IGJlIG9mIGVmZmVjdCBOb0V4ZWN1dGUsIG90aGVyd2lzZSB0aGlzIGZpZWxkIGlzIGlnbm9yZWQpIHRvbGVyYXRlcyB0aGUgdGFpbnQuIEJ5IGRlZmF1bHQsIGl0IGlzIG5vdCBzZXQsIHdoaWNoIG1lYW5zIHRvbGVyYXRlIHRoZSB0YWludCBmb3JldmVyIChkbyBub3QgZXZpY3QpLiBaZXJvIGFuZCBuZWdhdGl2ZSB2YWx1ZXMgd2lsbCBiZSB0cmVhdGVkIGFzIDAgKGV2aWN0IGltbWVkaWF0ZWx5KSBieSB0aGUgc3lzdGVtLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgdGFpbnQgdmFsdWUgdGhlIHRvbGVyYXRpb24gbWF0Y2hlcyB0by4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cywgdGhlIHZhbHVlIHNob3VsZCBiZSBlbXB0eSwgb3RoZXJ3aXNlIGp1c3QgYSByZWd1bGFyIHN0cmluZy4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neVNwcmVhZENvbnN0cmFpbnRzIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3MgdG9wb2xvZ3kgc3ByZWFkIGNvbnN0cmFpbnRzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVG9wb2xvZ3lTcHJlYWRDb25zdHJhaW50IHNwZWNpZmllcyBob3cgdG8gc3ByZWFkIG1hdGNoaW5nIHBvZHMgYW1vbmcgdGhlIGdpdmVuIHRvcG9sb2d5LiIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkxhYmVsU2VsZWN0b3IgaXMgdXNlZCB0byBmaW5kIG1hdGNoaW5nIHBvZHMuIFBvZHMgdGhhdCBtYXRjaCB0aGlzIGxhYmVsIHNlbGVjdG9yIGFyZSBjb3VudGVkIHRvIGRldGVybWluZSB0aGUgbnVtYmVyIG9mIHBvZHMgaW4gdGhlaXIgY29ycmVzcG9uZGluZyB0b3BvbG9neSBkb21haW4uIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJtYXhTa2V3Ijp7ImRlc2NyaXB0aW9uIjoiTWF4U2tldyBkZXNjcmliZXMgdGhlIGRlZ3JlZSB0byB3aGljaCBwb2RzIG1heSBiZSB1bmV2ZW5seSBkaXN0cmlidXRlZC4gSXQncyB0aGUgbWF4aW11bSBwZXJtaXR0ZWQgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBudW1iZXIgb2YgbWF0Y2hpbmcgcG9kcyBpbiBhbnkgdHdvIHRvcG9sb2d5IGRvbWFpbnMgb2YgYSBnaXZlbiB0b3BvbG9neSB0eXBlLiBGb3IgZXhhbXBsZSwgaW4gYSAzLXpvbmUgY2x1c3RlciwgTWF4U2tldyBpcyBzZXQgdG8gMSwgYW5kIHBvZHMgd2l0aCB0aGUgc2FtZSBsYWJlbFNlbGVjdG9yIHNwcmVhZCBhcyAxLzEvMDogfCB6b25lMSB8IHpvbmUyIHwgem9uZTMgfCB8ICAgUCAgIHwgICBQICAgfCAgICAgICB8IC0gaWYgTWF4U2tldyBpcyAxLCBpbmNvbWluZyBwb2QgY2FuIG9ubHkgYmUgc2NoZWR1bGVkIHRvIHpvbmUzIHRvIGJlY29tZSAxLzEvMTsgc2NoZWR1bGluZyBpdCBvbnRvIHpvbmUxKHpvbmUyKSB3b3VsZCBtYWtlIHRoZSBBY3R1YWxTa2V3KDItMCkgb24gem9uZTEoem9uZTIpIHZpb2xhdGUgTWF4U2tldygxKS4gLSBpZiBNYXhTa2V3IGlzIDIsIGluY29taW5nIHBvZCBjYW4gYmUgc2NoZWR1bGVkIG9udG8gYW55IHpvbmUuIEl0J3MgYSByZXF1aXJlZCBmaWVsZC4gRGVmYXVsdCB2YWx1ZSBpcyAxIGFuZCAwIGlzIG5vdCBhbGxvd2VkLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUb3BvbG9neUtleSBpcyB0aGUga2V5IG9mIG5vZGUgbGFiZWxzLiBOb2RlcyB0aGF0IGhhdmUgYSBsYWJlbCB3aXRoIHRoaXMga2V5IGFuZCBpZGVudGljYWwgdmFsdWVzIGFyZSBjb25zaWRlcmVkIHRvIGJlIGluIHRoZSBzYW1lIHRvcG9sb2d5LiBXZSBjb25zaWRlciBlYWNoIFx1MDAzY2tleSwgdmFsdWVcdTAwM2UgYXMgYSBcImJ1Y2tldFwiLCBhbmQgdHJ5IHRvIHB1dCBiYWxhbmNlZCBudW1iZXIgb2YgcG9kcyBpbnRvIGVhY2ggYnVja2V0LiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIiwidHlwZSI6InN0cmluZyJ9LCJ3aGVuVW5zYXRpc2ZpYWJsZSI6eyJkZXNjcmlwdGlvbiI6IldoZW5VbnNhdGlzZmlhYmxlIGluZGljYXRlcyBob3cgdG8gZGVhbCB3aXRoIGEgcG9kIGlmIGl0IGRvZXNuJ3Qgc2F0aXNmeSB0aGUgc3ByZWFkIGNvbnN0cmFpbnQuIC0gRG9Ob3RTY2hlZHVsZSAoZGVmYXVsdCkgdGVsbHMgdGhlIHNjaGVkdWxlciBub3QgdG8gc2NoZWR1bGUgaXQgLSBTY2hlZHVsZUFueXdheSB0ZWxscyB0aGUgc2NoZWR1bGVyIHRvIHN0aWxsIHNjaGVkdWxlIGl0IEl0J3MgY29uc2lkZXJlZCBhcyBcIlVuc2F0aXNmaWFibGVcIiBpZiBhbmQgb25seSBpZiBwbGFjaW5nIGluY29taW5nIHBvZCBvbiBhbnkgdG9wb2xvZ3kgdmlvbGF0ZXMgXCJNYXhTa2V3XCIuIEZvciBleGFtcGxlLCBpbiBhIDMtem9uZSBjbHVzdGVyLCBNYXhTa2V3IGlzIHNldCB0byAxLCBhbmQgcG9kcyB3aXRoIHRoZSBzYW1lIGxhYmVsU2VsZWN0b3Igc3ByZWFkIGFzIDMvMS8xOiB8IHpvbmUxIHwgem9uZTIgfCB6b25lMyB8IHwgUCBQIFAgfCAgIFAgICB8ICAgUCAgIHwgSWYgV2hlblVuc2F0aXNmaWFibGUgaXMgc2V0IHRvIERvTm90U2NoZWR1bGUsIGluY29taW5nIHBvZCBjYW4gb25seSBiZSBzY2hlZHVsZWQgdG8gem9uZTIoem9uZTMpIHRvIGJlY29tZSAzLzIvMSgzLzEvMikgYXMgQWN0dWFsU2tldygyLTEpIG9uIHpvbmUyKHpvbmUzKSBzYXRpc2ZpZXMgTWF4U2tldygxKS4gSW4gb3RoZXIgd29yZHMsIHRoZSBjbHVzdGVyIGNhbiBzdGlsbCBiZSBpbWJhbGFuY2VkLCBidXQgc2NoZWR1bGVyIHdvbid0IG1ha2UgaXQgKm1vcmUqIGltYmFsYW5jZWQuIEl0J3MgYSByZXF1aXJlZCBmaWVsZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJtYXhTa2V3IiwidG9wb2xvZ3lLZXkiLCJ3aGVuVW5zYXRpc2ZpYWJsZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiaGlnaC1hdmFpbGFiaWxpdHkiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiBIQSBjb250cm9sIHBsYW5lIiwicHJvcGVydGllcyI6eyJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sImluZ3Jlc3MiOnsiZGVzY3JpcHRpb24iOiJUaGUgaW5ncmVzcyBjb25maWd1cmF0aW9uIGZvciBLbmF0aXZlIFNlcnZpbmciLCJwcm9wZXJ0aWVzIjp7ImlzdGlvIjp7ImRlc2NyaXB0aW9uIjoiSXN0aW8gc2V0dGluZ3MiLCJwcm9wZXJ0aWVzIjp7ImVuYWJsZWQiOnsidHlwZSI6ImJvb2xlYW4ifSwia25hdGl2ZS1sb2NhbC1nYXRld2F5Ijp7ImRlc2NyaXB0aW9uIjoiQSBtZWFucyB0byBvdmVycmlkZSB0aGUga25hdGl2ZS1sb2NhbC1nYXRld2F5IiwicHJvcGVydGllcyI6eyJzZWxlY3RvciI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiVGhlIHNlbGVjdG9yIGZvciB0aGUgaW5ncmVzcy1nYXRld2F5LiIsInR5cGUiOiJvYmplY3QifSwic2VydmVycyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBzZXJ2ZXIgc3BlY2lmaWNhdGlvbnMuIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJob3N0cyI6eyJkZXNjcmlwdGlvbiI6Ik9uZSBvciBtb3JlIGhvc3RzIGV4cG9zZWQgYnkgdGhpcyBnYXRld2F5LiIsIml0ZW1zIjp7ImZvcm1hdCI6InN0cmluZyIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInBvcnQiOnsicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFiZWwgYXNzaWduZWQgdG8gdGhlIHBvcnQuIiwiZm9ybWF0Ijoic3RyaW5nIiwidHlwZSI6InN0cmluZyJ9LCJudW1iZXIiOnsiZGVzY3JpcHRpb24iOiJBIHZhbGlkIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHBvcnQgbnVtYmVyLiIsInR5cGUiOiJpbnRlZ2VyIn0sInByb3RvY29sIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHByb3RvY29sIGV4cG9zZWQgb24gdGhlIHBvcnQuIiwiZm9ybWF0Ijoic3RyaW5nIiwidHlwZSI6InN0cmluZyJ9LCJ0YXJnZXRfcG9ydCI6eyJkZXNjcmlwdGlvbiI6IkEgdmFsaWQgbm9uLW5lZ2F0aXZlIGludGVnZXIgdGFyZ2V0IHBvcnQgbnVtYmVyLiIsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sInRscyI6eyJudWxsYWJsZSI6dHJ1ZSwib25lT2YiOlt7InJlcXVpcmVkIjpbIm1vZGUiLCJjcmVkZW50aWFsTmFtZSJdfSx7InJlcXVpcmVkIjpbImh0dHBzUmVkaXJlY3QiXX1dLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxOYW1lIjp7ImRlc2NyaXB0aW9uIjoiVExTIGNlcnRpZmljYXRlIG5hbWUuIiwiZm9ybWF0Ijoic3RyaW5nIiwidHlwZSI6InN0cmluZyJ9LCJodHRwc1JlZGlyZWN0Ijp7ImRlc2NyaXB0aW9uIjoiSWYgc2V0IHRvIHRydWUsIHRoZSBsb2FkIGJhbGFuY2VyIHdpbGwgc2VuZCBhIDMwMSByZWRpcmVjdCB0byBIVFRQUyBmb3IgYWxsIEhUVFAgcmVxdWVzdHMuIFNob3VsZCBiZSB1c2VkIG9ubHkgZm9yIEhUVFAgbGlzdGVuZXIsIGlzIG11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGFsbCBvdGhlciBUTFMgb3B0aW9ucy4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJtb2RlIjp7ImRlc2NyaXB0aW9uIjoiVExTIG1vZGUgY2FuIGJlIFNJTVBMRSwgTVVUVUFMLCBJU1RJT19NVVRVQUwuIiwiZm9ybWF0Ijoic3RyaW5nIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwia291cmllciI6eyJkZXNjcmlwdGlvbiI6IktvdXJpZXIgc2V0dGluZ3MiLCJwcm9wZXJ0aWVzIjp7ImJvb3RzdHJhcC1jb25maWdtYXAiOnsidHlwZSI6InN0cmluZyJ9LCJlbmFibGVkIjp7InR5cGUiOiJib29sZWFuIn0sImh0dHAtcG9ydCI6eyJ0eXBlIjoiaW50ZWdlciJ9LCJodHRwcy1wb3J0Ijp7InR5cGUiOiJpbnRlZ2VyIn0sInNlcnZpY2UtbG9hZC1iYWxhbmNlci1pcCI6eyJ0eXBlIjoic3RyaW5nIn0sInNlcnZpY2UtdHlwZSI6eyJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLXByZXNlcnZlLXVua25vd24tZmllbGRzIjp0cnVlfSwicG9kRGlzcnVwdGlvbkJ1ZGdldHMiOnsiZGVzY3JpcHRpb24iOiJBIG1hcHBpbmcgb2YgcG9kRGlzcnVwdGlvbkJ1ZGdldCBuYW1lIHRvIG92ZXJyaWRlIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJtYXhVbmF2YWlsYWJsZSI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoiQW4gZXZpY3Rpb24gaXMgYWxsb3dlZCBpZiBhdCBtb3N0IFwibWF4VW5hdmFpbGFibGVcIiBwb2RzIHNlbGVjdGVkIGJ5IFwic2VsZWN0b3JcIiBhcmUgdW5hdmFpbGFibGUgYWZ0ZXIgdGhlIGV2aWN0aW9uLCBpLmUuIGV2ZW4gaW4gYWJzZW5jZSBvZiB0aGUgZXZpY3RlZCBwb2QuIEZvciBleGFtcGxlLCBvbmUgY2FuIHByZXZlbnQgYWxsIHZvbHVudGFyeSBldmljdGlvbnMgYnkgc3BlY2lmeWluZyAwLiBUaGlzIGlzIGEgbXV0dWFsbHkgZXhjbHVzaXZlIHNldHRpbmcgd2l0aCBcIm1pbkF2YWlsYWJsZVwiLiIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwibWluQXZhaWxhYmxlIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwiZGVzY3JpcHRpb24iOiJBbiBldmljdGlvbiBpcyBhbGxvd2VkIGlmIGF0IGxlYXN0IFwibWluQXZhaWxhYmxlXCIgcG9kcyBzZWxlY3RlZCBieSBcInNlbGVjdG9yXCIgd2lsbCBzdGlsbCBiZSBhdmFpbGFibGUgYWZ0ZXIgdGhlIGV2aWN0aW9uLCBpLmUuIGV2ZW4gaW4gdGhlIGFic2VuY2Ugb2YgdGhlIGV2aWN0ZWQgcG9kLiAgU28gZm9yIGV4YW1wbGUgeW91IGNhbiBwcmV2ZW50IGFsbCB2b2x1bnRhcnkgZXZpY3Rpb25zIGJ5IHNwZWNpZnlpbmcgXCIxMDAlXCIuIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIHBvZERpc3J1cHRpb25CdWRnZXQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJzZWN1cml0eSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzZWN1cml0eSBjb25maWd1cmF0aW9uIGZvciBLbmF0aXZlIFNlcnZpbmciLCJwcm9wZXJ0aWVzIjp7InNlY3VyaXR5R3VhcmQiOnsiZGVzY3JpcHRpb24iOiJTZWN1cml0eSBHdWFyZCBzZXR0aW5ncyIsInByb3BlcnRpZXMiOnsiZW5hYmxlZCI6eyJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZXJ2aWNlcyI6eyJkZXNjcmlwdGlvbiI6IkEgbWFwcGluZyBvZiBzZXJ2aWNlIG5hbWUgdG8gb3ZlcnJpZGUiLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBvdmVycmlkZXMgbGFiZWxzIGZvciB0aGUgc2VydmljZSIsInR5cGUiOiJvYmplY3QifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJMYWJlbHMgb3ZlcnJpZGVzIGxhYmVscyBmb3IgdGhlIHNlcnZpY2UiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgc2VydmljZSIsInR5cGUiOiJzdHJpbmcifSwic2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IlNlbGVjdG9yIG92ZXJyaWRlcyBzZWxlY3RvciBmb3IgdGhlIHNlcnZpY2UiLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ3b3JrbG9hZHMiOnsiZGVzY3JpcHRpb24iOiJBIG1hcHBpbmcgb2YgZGVwbG95bWVudCBvciBzdGF0ZWZ1bHNldCBuYW1lIHRvIG92ZXJyaWRlIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJhZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHNjaGVkdWxpbmcgY29uc3RyYWludHMuIiwicHJvcGVydGllcyI6eyJub2RlQWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJEZXNjcmliZXMgbm9kZSBhZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIGZvciB0aGUgcG9kLiIsInByb3BlcnRpZXMiOnsicHJlZmVycmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgc2NoZWR1bGVyIHdpbGwgcHJlZmVyIHRvIHNjaGVkdWxlIHBvZHMgdG8gbm9kZXMgdGhhdCBzYXRpc2Z5IHRoZSBhZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBtYXRjaEV4cHJlc3Npb25zOyB0aGUgbm9kZShzKSB3aXRoIHRoZSBoaWdoZXN0IHN1bSBhcmUgdGhlIG1vc3QgcHJlZmVycmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQW4gZW1wdHkgcHJlZmVycmVkIHNjaGVkdWxpbmcgdGVybSBtYXRjaGVzIGFsbCBvYmplY3RzIHdpdGggaW1wbGljaXQgd2VpZ2h0IDAgKGkuZS4gaXQncyBhIG5vLW9wKS4gQSBudWxsIHByZWZlcnJlZCBzY2hlZHVsaW5nIHRlcm0gbWF0Y2hlcyBubyBvYmplY3RzIChpLmUuIGlzIGFsc28gYSBuby1vcCkuIiwicHJvcGVydGllcyI6eyJwcmVmZXJlbmNlIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHRlcm0sIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB3ZWlnaHQuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBsYWJlbHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoRmllbGRzIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBmaWVsZHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sIndlaWdodCI6eyJkZXNjcmlwdGlvbiI6IldlaWdodCBhc3NvY2lhdGVkIHdpdGggbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgbm9kZVNlbGVjdG9yVGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInByZWZlcmVuY2UiLCJ3ZWlnaHQiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IklmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhbiB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4iLCJwcm9wZXJ0aWVzIjp7Im5vZGVTZWxlY3RvclRlcm1zIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQuIEEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHRlcm1zLiBUaGUgdGVybXMgYXJlIE9SZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG51bGwgb3IgZW1wdHkgbm9kZSBzZWxlY3RvciB0ZXJtIG1hdGNoZXMgbm8gb2JqZWN0cy4gVGhlIHJlcXVpcmVtZW50cyBvZiB0aGVtIGFyZSBBTkRlZC4gVGhlIFRvcG9sb2d5U2VsZWN0b3JUZXJtIHR5cGUgaW1wbGVtZW50cyBhIHN1YnNldCBvZiB0aGUgTm9kZVNlbGVjdG9yVGVybS4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGxhYmVscy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hGaWVsZHMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGZpZWxkcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJub2RlU2VsZWN0b3JUZXJtcyJdLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInBvZEFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiRGVzY3JpYmVzIHBvZCBhZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIChlLmcuIGNvLWxvY2F0ZSB0aGlzIHBvZCBpbiB0aGUgc2FtZSBub2RlLCB6b25lLCBldGMuIGFzIHNvbWUgb3RoZXIgcG9kKHMpKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcnJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHNjaGVkdWxlciB3aWxsIHByZWZlciB0byBzY2hlZHVsZSBwb2RzIHRvIG5vZGVzIHRoYXQgc2F0aXNmeSB0aGUgYWZmaW5pdHkgZXhwcmVzc2lvbnMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQsIGJ1dCBpdCBtYXkgY2hvb3NlIGEgbm9kZSB0aGF0IHZpb2xhdGVzIG9uZSBvciBtb3JlIG9mIHRoZSBleHByZXNzaW9ucy4gVGhlIG5vZGUgdGhhdCBpcyBtb3N0IHByZWZlcnJlZCBpcyB0aGUgb25lIHdpdGggdGhlIGdyZWF0ZXN0IHN1bSBvZiB3ZWlnaHRzLCBpLmUuIGZvciBlYWNoIG5vZGUgdGhhdCBtZWV0cyBhbGwgb2YgdGhlIHNjaGVkdWxpbmcgcmVxdWlyZW1lbnRzIChyZXNvdXJjZSByZXF1ZXN0LCByZXF1aXJlZER1cmluZ1NjaGVkdWxpbmcgYWZmaW5pdHkgZXhwcmVzc2lvbnMsIGV0Yy4pLCBjb21wdXRlIGEgc3VtIGJ5IGl0ZXJhdGluZyB0aHJvdWdoIHRoZSBlbGVtZW50cyBvZiB0aGlzIGZpZWxkIGFuZCBhZGRpbmcgXCJ3ZWlnaHRcIiB0byB0aGUgc3VtIGlmIHRoZSBub2RlIGhhcyBwb2RzIHdoaWNoIG1hdGNoZXMgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtOyB0aGUgbm9kZShzKSB3aXRoIHRoZSBoaWdoZXN0IHN1bSBhcmUgdGhlIG1vc3QgcHJlZmVycmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHdlaWdodHMgb2YgYWxsIG9mIHRoZSBtYXRjaGVkIFdlaWdodGVkUG9kQWZmaW5pdHlUZXJtIGZpZWxkcyBhcmUgYWRkZWQgcGVyLW5vZGUgdG8gZmluZCB0aGUgbW9zdCBwcmVmZXJyZWQgbm9kZShzKSIsInByb3BlcnRpZXMiOnsicG9kQWZmaW5pdHlUZXJtIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQuIEEgcG9kIGFmZmluaXR5IHRlcm0sIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB3ZWlnaHQuIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwid2VpZ2h0Ijp7ImRlc2NyaXB0aW9uIjoid2VpZ2h0IGFzc29jaWF0ZWQgd2l0aCBtYXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm0sIGluIHRoZSByYW5nZSAxLTEwMC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJwb2RBZmZpbml0eVRlcm0iLCJ3ZWlnaHQiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IklmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhIHBvZCBsYWJlbCB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4gV2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgZWxlbWVudHMsIHRoZSBsaXN0cyBvZiBub2RlcyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9kQWZmaW5pdHlUZXJtIGFyZSBpbnRlcnNlY3RlZCwgaS5lLiBhbGwgdGVybXMgbXVzdCBiZSBzYXRpc2ZpZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJEZWZpbmVzIGEgc2V0IG9mIHBvZHMgKG5hbWVseSB0aG9zZSBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gbmFtZXNwYWNlKHMpKSB0aGF0IHRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGgsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgXHUwMDNjdG9wb2xvZ3lLZXlcdTAwM2UgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGEgcG9kIG9mIHRoZSBzZXQgb2YgcG9kcyBpcyBydW5uaW5nIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBvZEFudGlBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBwb2QgYW50aS1hZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIChlLmcuIGF2b2lkIHB1dHRpbmcgdGhpcyBwb2QgaW4gdGhlIHNhbWUgbm9kZSwgem9uZSwgZXRjLiBhcyBzb21lIG90aGVyIHBvZChzKSkuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnkgdGhlIGFudGktYWZmaW5pdHkgZXhwcmVzc2lvbnMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQsIGJ1dCBpdCBtYXkgY2hvb3NlIGEgbm9kZSB0aGF0IHZpb2xhdGVzIG9uZSBvciBtb3JlIG9mIHRoZSBleHByZXNzaW9ucy4gVGhlIG5vZGUgdGhhdCBpcyBtb3N0IHByZWZlcnJlZCBpcyB0aGUgb25lIHdpdGggdGhlIGdyZWF0ZXN0IHN1bSBvZiB3ZWlnaHRzLCBpLmUuIGZvciBlYWNoIG5vZGUgdGhhdCBtZWV0cyBhbGwgb2YgdGhlIHNjaGVkdWxpbmcgcmVxdWlyZW1lbnRzIChyZXNvdXJjZSByZXF1ZXN0LCByZXF1aXJlZER1cmluZ1NjaGVkdWxpbmcgYW50aS1hZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgaGFzIHBvZHMgd2hpY2ggbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm07IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgd2VpZ2h0cyBvZiBhbGwgb2YgdGhlIG1hdGNoZWQgV2VpZ2h0ZWRQb2RBZmZpbml0eVRlcm0gZmllbGRzIGFyZSBhZGRlZCBwZXItbm9kZSB0byBmaW5kIHRoZSBtb3N0IHByZWZlcnJlZCBub2RlKHMpIiwicHJvcGVydGllcyI6eyJwb2RBZmZpbml0eVRlcm0iOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBwb2QgYWZmaW5pdHkgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ3ZWlnaHQiOnsiZGVzY3JpcHRpb24iOiJ3ZWlnaHQgYXNzb2NpYXRlZCB3aXRoIG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInBvZEFmZmluaXR5VGVybSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFudGktYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGFyZSBub3QgbWV0IGF0IHNjaGVkdWxpbmcgdGltZSwgdGhlIHBvZCB3aWxsIG5vdCBiZSBzY2hlZHVsZWQgb250byB0aGUgbm9kZS4gSWYgdGhlIGFudGktYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhIHBvZCBsYWJlbCB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4gV2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgZWxlbWVudHMsIHRoZSBsaXN0cyBvZiBub2RlcyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9kQWZmaW5pdHlUZXJtIGFyZSBpbnRlcnNlY3RlZCwgaS5lLiBhbGwgdGVybXMgbXVzdCBiZSBzYXRpc2ZpZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJEZWZpbmVzIGEgc2V0IG9mIHBvZHMgKG5hbWVseSB0aG9zZSBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gbmFtZXNwYWNlKHMpKSB0aGF0IHRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGgsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgXHUwMDNjdG9wb2xvZ3lLZXlcdTAwM2UgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGEgcG9kIG9mIHRoZSBzZXQgb2YgcG9kcyBpcyBydW5uaW5nIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBvdmVycmlkZXMgbGFiZWxzIGZvciB0aGUgZGVwbG95bWVudCBhbmQgaXRzIHRlbXBsYXRlLiIsInR5cGUiOiJvYmplY3QifSwiZW52Ijp7ImRlc2NyaXB0aW9uIjoiRW52IG92ZXJyaWRlcyBlbnYgdmFycyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgY29udGFpbmVyIG5hbWUiLCJ0eXBlIjoic3RyaW5nIn0sImVudlZhcnMiOnsiZGVzY3JpcHRpb24iOiJUaGUgZGVzaXJlZCBFbnZWYXJSZXF1aXJlbWVudHMiLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkVudlZhciByZXByZXNlbnRzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHByZXNlbnQgaW4gYSBDb250YWluZXIuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUuIE11c3QgYmUgYSBDX0lERU5USUZJRVIuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6IlZhcmlhYmxlIHJlZmVyZW5jZXMgJChWQVJfTkFNRSkgYXJlIGV4cGFuZGVkIHVzaW5nIHRoZSBwcmV2aW91c2x5IGRlZmluZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIHRoZSBjb250YWluZXIgYW5kIGFueSBzZXJ2aWNlIGVudmlyb25tZW50IHZhcmlhYmxlcy4gSWYgYSB2YXJpYWJsZSBjYW5ub3QgYmUgcmVzb2x2ZWQsIHRoZSByZWZlcmVuY2UgaW4gdGhlIGlucHV0IHN0cmluZyB3aWxsIGJlIHVuY2hhbmdlZC4gRG91YmxlICQkIGFyZSByZWR1Y2VkIHRvIGEgc2luZ2xlICQsIHdoaWNoIGFsbG93cyBmb3IgZXNjYXBpbmcgdGhlICQoVkFSX05BTUUpIHN5bnRheDogaS5lLiBcIiQkKFZBUl9OQU1FKVwiIHdpbGwgcHJvZHVjZSB0aGUgc3RyaW5nIGxpdGVyYWwgXCIkKFZBUl9OQU1FKVwiLiBFc2NhcGVkIHJlZmVyZW5jZXMgd2lsbCBuZXZlciBiZSBleHBhbmRlZCwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSB2YXJpYWJsZSBleGlzdHMgb3Igbm90LiBEZWZhdWx0cyB0byBcIlwiLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVGcm9tIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGZvciB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUncyB2YWx1ZS4gQ2Fubm90IGJlIHVzZWQgaWYgdmFsdWUgaXMgbm90IGVtcHR5LiIsInByb3BlcnRpZXMiOnsiY29uZmlnTWFwS2V5UmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGtleSBvZiBhIENvbmZpZ01hcC4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBrZXkgdG8gc2VsZWN0LiIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIHJlZmVyZW50LiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L3dvcmtpbmctd2l0aC1vYmplY3RzL25hbWVzLyNuYW1lcyBUT0RPOiBBZGQgb3RoZXIgdXNlZnVsIGZpZWxkcy4gYXBpVmVyc2lvbiwga2luZCwgdWlkPyIsInR5cGUiOiJzdHJpbmcifSwib3B0aW9uYWwiOnsiZGVzY3JpcHRpb24iOiJTcGVjaWZ5IHdoZXRoZXIgdGhlIENvbmZpZ01hcCBvciBpdHMga2V5IG11c3QgYmUgZGVmaW5lZCIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJrZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJmaWVsZFJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBmaWVsZCBvZiB0aGUgcG9kOiBzdXBwb3J0cyBtZXRhZGF0YS5uYW1lLCBtZXRhZGF0YS5uYW1lc3BhY2UsIGBtZXRhZGF0YS5sYWJlbHNbJ1x1MDAzY0tFWVx1MDAzZSddYCwgYG1ldGFkYXRhLmFubm90YXRpb25zWydcdTAwM2NLRVlcdTAwM2UnXWAsIHNwZWMubm9kZU5hbWUsIHNwZWMuc2VydmljZUFjY291bnROYW1lLCBzdGF0dXMuaG9zdElQLCBzdGF0dXMucG9kSVAsIHN0YXR1cy5wb2RJUHMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiVmVyc2lvbiBvZiB0aGUgc2NoZW1hIHRoZSBGaWVsZFBhdGggaXMgd3JpdHRlbiBpbiB0ZXJtcyBvZiwgZGVmYXVsdHMgdG8gXCJ2MVwiLiIsInR5cGUiOiJzdHJpbmcifSwiZmllbGRQYXRoIjp7ImRlc2NyaXB0aW9uIjoiUGF0aCBvZiB0aGUgZmllbGQgdG8gc2VsZWN0IGluIHRoZSBzcGVjaWZpZWQgQVBJIHZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiZmllbGRQYXRoIl0sInR5cGUiOiJvYmplY3QifSwicmVzb3VyY2VGaWVsZFJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSByZXNvdXJjZSBvZiB0aGUgY29udGFpbmVyOiBvbmx5IHJlc291cmNlcyBsaW1pdHMgYW5kIHJlcXVlc3RzIChsaW1pdHMuY3B1LCBsaW1pdHMubWVtb3J5LCBsaW1pdHMuZXBoZW1lcmFsLXN0b3JhZ2UsIHJlcXVlc3RzLmNwdSwgcmVxdWVzdHMubWVtb3J5IGFuZCByZXF1ZXN0cy5lcGhlbWVyYWwtc3RvcmFnZSkgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQuIiwicHJvcGVydGllcyI6eyJjb250YWluZXJOYW1lIjp7ImRlc2NyaXB0aW9uIjoiQ29udGFpbmVyIG5hbWU6IHJlcXVpcmVkIGZvciB2b2x1bWVzLCBvcHRpb25hbCBmb3IgZW52IHZhcnMiLCJ0eXBlIjoic3RyaW5nIn0sImRpdmlzb3IiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJkZXNjcmlwdGlvbiI6IlNwZWNpZmllcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiB0aGUgZXhwb3NlZCByZXNvdXJjZXMsIGRlZmF1bHRzIHRvIFwiMVwiIiwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJyZXNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkOiByZXNvdXJjZSB0byBzZWxlY3QiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJyZXNvdXJjZSJdLCJ0eXBlIjoib2JqZWN0In0sInNlY3JldEtleVJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBrZXkgb2YgYSBzZWNyZXQgaW4gdGhlIHBvZCdzIG5hbWVzcGFjZSIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGtleSBvZiB0aGUgc2VjcmV0IHRvIHNlbGVjdCBmcm9tLiAgTXVzdCBiZSBhIHZhbGlkIHNlY3JldCBrZXkuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgcmVmZXJlbnQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbmFtZXMvI25hbWVzIFRPRE86IEFkZCBvdGhlciB1c2VmdWwgZmllbGRzLiBhcGlWZXJzaW9uLCBraW5kLCB1aWQ/IiwidHlwZSI6InN0cmluZyJ9LCJvcHRpb25hbCI6eyJkZXNjcmlwdGlvbiI6IlNwZWNpZnkgd2hldGhlciB0aGUgU2VjcmV0IG9yIGl0cyBrZXkgbXVzdCBiZSBkZWZpbmVkIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImtleSJdLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJjb250YWluZXIiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiaG9zdE5ldHdvcmsiOnsiZGVzY3JpcHRpb24iOiJVc2UgdGhlIGhvc3QncyBuZXR3b3JrIG5hbWVzcGFjZSBpZiB0cnVlLiBNYWtlIHN1cmUgdG8gdW5kZXJzdGFuZCB0aGUgc2VjdXJpdHkgaW1wbGljYXRpb25zIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBpdC4gV2hlbiBob3N0TmV0d29yayBpcyBlbmFibGVkLCB0aGlzIHdpbGwgc2V0IGRuc1BvbGljeSB0byBDbHVzdGVyRmlyc3RXaXRoSG9zdE5ldCBhdXRvbWF0aWNhbGx5LiIsInR5cGUiOiJib29sZWFuIn0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTGFiZWxzIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBkZXBsb3ltZW50IGFuZCBpdHMgdGVtcGxhdGUuIiwidHlwZSI6Im9iamVjdCJ9LCJsaXZlbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IkxpdmVuZXNzUHJvYmVzIG92ZXJyaWRlcyBsaXZlbmVzcyBwcm9iZXMgZm9yIHRoZSBjb250YWluZXJzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiUHJvYmVzUmVxdWlyZW1lbnRzT3ZlcnJpZGUgZW5hYmxlcyB0aGUgdXNlciB0byBvdmVycmlkZSBhbnkgY29udGFpbmVyJ3MgZW52IHZhcnMuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgY29udGFpbmVyIG5hbWUiLCJ0eXBlIjoic3RyaW5nIn0sImZhaWx1cmVUaHJlc2hvbGQiOnsiZGVzY3JpcHRpb24iOiJNaW5pbXVtIGNvbnNlY3V0aXZlIGZhaWx1cmVzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBmYWlsZWQgYWZ0ZXIgaGF2aW5nIHN1Y2NlZWRlZC4gRGVmYXVsdHMgdG8gMy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHRoZSBjb250YWluZXIgaGFzIHN0YXJ0ZWQgYmVmb3JlIGxpdmVuZXNzIHByb2JlcyBhcmUgaW5pdGlhdGVkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwicGVyaW9kU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IkhvdyBvZnRlbiAoaW4gc2Vjb25kcykgdG8gcGVyZm9ybSB0aGUgcHJvYmUuIERlZmF1bHQgdG8gMTAgc2Vjb25kcy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwic3VjY2Vzc1RocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgc3VjY2Vzc2VzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBzdWNjZXNzZnVsIGFmdGVyIGhhdmluZyBmYWlsZWQuIERlZmF1bHRzIHRvIDEuIE11c3QgYmUgMSBmb3IgbGl2ZW5lc3MgYW5kIHN0YXJ0dXAuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiT3B0aW9uYWwgZHVyYXRpb24gaW4gc2Vjb25kcyB0aGUgcG9kIG5lZWRzIHRvIHRlcm1pbmF0ZSBncmFjZWZ1bGx5IHVwb24gcHJvYmUgZmFpbHVyZS4gVGhlIGdyYWNlIHBlcmlvZCBpcyB0aGUgZHVyYXRpb24gaW4gc2Vjb25kcyBhZnRlciB0aGUgcHJvY2Vzc2VzIHJ1bm5pbmcgaW4gdGhlIHBvZCBhcmUgc2VudCBhIHRlcm1pbmF0aW9uIHNpZ25hbCBhbmQgdGhlIHRpbWUgd2hlbiB0aGUgcHJvY2Vzc2VzIGFyZSBmb3JjaWJseSBoYWx0ZWQgd2l0aCBhIGtpbGwgc2lnbmFsLiBTZXQgdGhpcyB2YWx1ZSBsb25nZXIgdGhhbiB0aGUgZXhwZWN0ZWQgY2xlYW51cCB0aW1lIGZvciB5b3VyIHByb2Nlc3MuIElmIHRoaXMgdmFsdWUgaXMgbmlsLCB0aGUgcG9kJ3MgdGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgd2lsbCBiZSB1c2VkLiBPdGhlcndpc2UsIHRoaXMgdmFsdWUgb3ZlcnJpZGVzIHRoZSB2YWx1ZSBwcm92aWRlZCBieSB0aGUgcG9kIHNwZWMuIFZhbHVlIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXIuIFRoZSB2YWx1ZSB6ZXJvIGluZGljYXRlcyBzdG9wIGltbWVkaWF0ZWx5IHZpYSB0aGUga2lsbCBzaWduYWwgKG5vIG9wcG9ydHVuaXR5IHRvIHNodXQgZG93bikuIFRoaXMgaXMgYSBiZXRhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyBQcm9iZVRlcm1pbmF0aW9uR3JhY2VQZXJpb2QgZmVhdHVyZSBnYXRlLiBNaW5pbXVtIHZhbHVlIGlzIDEuIHNwZWMudGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgaXMgdXNlZCBpZiB1bnNldC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInRpbWVvdXRTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgd2hpY2ggdGhlIHByb2JlIHRpbWVzIG91dC4gRGVmYXVsdHMgdG8gMSBzZWNvbmQuIE1pbmltdW0gdmFsdWUgaXMgMS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvcG9kcy9wb2QtbGlmZWN5Y2xlI2NvbnRhaW5lci1wcm9iZXMiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJjb250YWluZXIiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBkZXBsb3ltZW50IiwidHlwZSI6InN0cmluZyJ9LCJub2RlU2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik5vZGVTZWxlY3RvciBvdmVycmlkZXMgbm9kZVNlbGVjdG9yIGZvciB0aGUgZGVwbG95bWVudC4iLCJ0eXBlIjoib2JqZWN0In0sInJlYWRpbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IlJlYWRpbmVzc1Byb2JlcyBvdmVycmlkZXMgcmVhZGluZXNzIHByb2JlcyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJQcm9iZXNSZXF1aXJlbWVudHNPdmVycmlkZSBlbmFibGVzIHRoZSB1c2VyIHRvIG92ZXJyaWRlIGFueSBjb250YWluZXIncyBlbnYgdmFycy4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZmFpbHVyZVRocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkLiBEZWZhdWx0cyB0byAzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZS4gRGVmYXVsdCB0byAxMCBzZWNvbmRzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJzdWNjZXNzVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZC4gRGVmYXVsdHMgdG8gMS4gTXVzdCBiZSAxIGZvciBsaXZlbmVzcyBhbmQgc3RhcnR1cC4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBkdXJhdGlvbiBpbiBzZWNvbmRzIHRoZSBwb2QgbmVlZHMgdG8gdGVybWluYXRlIGdyYWNlZnVsbHkgdXBvbiBwcm9iZSBmYWlsdXJlLiBUaGUgZ3JhY2UgcGVyaW9kIGlzIHRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHRoZSBwcm9jZXNzZXMgcnVubmluZyBpbiB0aGUgcG9kIGFyZSBzZW50IGEgdGVybWluYXRpb24gc2lnbmFsIGFuZCB0aGUgdGltZSB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIGZvcmNpYmx5IGhhbHRlZCB3aXRoIGEga2lsbCBzaWduYWwuIFNldCB0aGlzIHZhbHVlIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBjbGVhbnVwIHRpbWUgZm9yIHlvdXIgcHJvY2Vzcy4gSWYgdGhpcyB2YWx1ZSBpcyBuaWwsIHRoZSBwb2QncyB0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgdGhpcyB2YWx1ZSBvdmVycmlkZXMgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBwb2Qgc3BlYy4gVmFsdWUgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlci4gVGhlIHZhbHVlIHplcm8gaW5kaWNhdGVzIHN0b3AgaW1tZWRpYXRlbHkgdmlhIHRoZSBraWxsIHNpZ25hbCAobm8gb3Bwb3J0dW5pdHkgdG8gc2h1dCBkb3duKS4gVGhpcyBpcyBhIGJldGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIFByb2JlVGVybWluYXRpb25HcmFjZVBlcmlvZCBmZWF0dXJlIGdhdGUuIE1pbmltdW0gdmFsdWUgaXMgMS4gc3BlYy50ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyBpcyB1c2VkIGlmIHVuc2V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidGltZW91dFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0LiBEZWZhdWx0cyB0byAxIHNlY29uZC4gTWluaW11bSB2YWx1ZSBpcyAxLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIGNvbnRhaW5lcidzIHJlc291cmNlcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBwb2QgdGhpcyBSZXNvdXJjZSBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHJlcXVlc3RzIGFuZCBsaW1pdHMgZm9yIGEgY2VydGFpbiBjb250YWluZXIgYmFzZWQgb24gdGhlIG5hbWUuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIiwidHlwZSI6InN0cmluZyJ9LCJsaW1pdHMiOnsicHJvcGVydGllcyI6eyJjcHUiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9LCJtZW1vcnkiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJwcm9wZXJ0aWVzIjp7ImNwdSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn0sIm1lbW9yeSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ0b2xlcmF0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHRvbGVyYXRpb25zLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFRvbGVyYXRpb24gaXMgYXR0YWNoZWQgdG8gdG9sZXJhdGVzIGFueSB0YWludCB0aGF0IG1hdGNoZXMgdGhlIHRyaXBsZSBcdTAwM2NrZXksdmFsdWUsZWZmZWN0XHUwMDNlIHVzaW5nIHRoZSBtYXRjaGluZyBvcGVyYXRvciBcdTAwM2NvcGVyYXRvclx1MDAzZS4iLCJwcm9wZXJ0aWVzIjp7ImVmZmVjdCI6eyJkZXNjcmlwdGlvbiI6IkVmZmVjdCBpbmRpY2F0ZXMgdGhlIHRhaW50IGVmZmVjdCB0byBtYXRjaC4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGVmZmVjdHMuIFdoZW4gc3BlY2lmaWVkLCBhbGxvd2VkIHZhbHVlcyBhcmUgTm9TY2hlZHVsZSwgUHJlZmVyTm9TY2hlZHVsZSBhbmQgTm9FeGVjdXRlLiIsInR5cGUiOiJzdHJpbmcifSwia2V5Ijp7ImRlc2NyaXB0aW9uIjoiS2V5IGlzIHRoZSB0YWludCBrZXkgdGhhdCB0aGUgdG9sZXJhdGlvbiBhcHBsaWVzIHRvLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQga2V5cy4gSWYgdGhlIGtleSBpcyBlbXB0eSwgb3BlcmF0b3IgbXVzdCBiZSBFeGlzdHM7IHRoaXMgY29tYmluYXRpb24gbWVhbnMgdG8gbWF0Y2ggYWxsIHZhbHVlcyBhbmQgYWxsIGtleXMuIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gdGhlIHZhbHVlLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEV4aXN0cyBhbmQgRXF1YWwuIERlZmF1bHRzIHRvIEVxdWFsLiBFeGlzdHMgaXMgZXF1aXZhbGVudCB0byB3aWxkY2FyZCBmb3IgdmFsdWUsIHNvIHRoYXQgYSBwb2QgY2FuIHRvbGVyYXRlIGFsbCB0YWludHMgb2YgYSBwYXJ0aWN1bGFyIGNhdGVnb3J5LiIsInR5cGUiOiJzdHJpbmcifSwidG9sZXJhdGlvblNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJUb2xlcmF0aW9uU2Vjb25kcyByZXByZXNlbnRzIHRoZSBwZXJpb2Qgb2YgdGltZSB0aGUgdG9sZXJhdGlvbiAod2hpY2ggbXVzdCBiZSBvZiBlZmZlY3QgTm9FeGVjdXRlLCBvdGhlcndpc2UgdGhpcyBmaWVsZCBpcyBpZ25vcmVkKSB0b2xlcmF0ZXMgdGhlIHRhaW50LiBCeSBkZWZhdWx0LCBpdCBpcyBub3Qgc2V0LCB3aGljaCBtZWFucyB0b2xlcmF0ZSB0aGUgdGFpbnQgZm9yZXZlciAoZG8gbm90IGV2aWN0KS4gWmVybyBhbmQgbmVnYXRpdmUgdmFsdWVzIHdpbGwgYmUgdHJlYXRlZCBhcyAwIChldmljdCBpbW1lZGlhdGVseSkgYnkgdGhlIHN5c3RlbS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHRhaW50IHZhbHVlIHRoZSB0b2xlcmF0aW9uIG1hdGNoZXMgdG8uIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMsIHRoZSB2YWx1ZSBzaG91bGQgYmUgZW1wdHksIG90aGVyd2lzZSBqdXN0IGEgcmVndWxhciBzdHJpbmcuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lTcHJlYWRDb25zdHJhaW50cyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHRvcG9sb2d5IHNwcmVhZCBjb25zdHJhaW50cy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRvcG9sb2d5U3ByZWFkQ29uc3RyYWludCBzcGVjaWZpZXMgaG93IHRvIHNwcmVhZCBtYXRjaGluZyBwb2RzIGFtb25nIHRoZSBnaXZlbiB0b3BvbG9neS4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJMYWJlbFNlbGVjdG9yIGlzIHVzZWQgdG8gZmluZCBtYXRjaGluZyBwb2RzLiBQb2RzIHRoYXQgbWF0Y2ggdGhpcyBsYWJlbCBzZWxlY3RvciBhcmUgY291bnRlZCB0byBkZXRlcm1pbmUgdGhlIG51bWJlciBvZiBwb2RzIGluIHRoZWlyIGNvcnJlc3BvbmRpbmcgdG9wb2xvZ3kgZG9tYWluLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibWF4U2tldyI6eyJkZXNjcmlwdGlvbiI6Ik1heFNrZXcgZGVzY3JpYmVzIHRoZSBkZWdyZWUgdG8gd2hpY2ggcG9kcyBtYXkgYmUgdW5ldmVubHkgZGlzdHJpYnV0ZWQuIEl0J3MgdGhlIG1heGltdW0gcGVybWl0dGVkIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgbnVtYmVyIG9mIG1hdGNoaW5nIHBvZHMgaW4gYW55IHR3byB0b3BvbG9neSBkb21haW5zIG9mIGEgZ2l2ZW4gdG9wb2xvZ3kgdHlwZS4gRm9yIGV4YW1wbGUsIGluIGEgMy16b25lIGNsdXN0ZXIsIE1heFNrZXcgaXMgc2V0IHRvIDEsIGFuZCBwb2RzIHdpdGggdGhlIHNhbWUgbGFiZWxTZWxlY3RvciBzcHJlYWQgYXMgMS8xLzA6IHwgem9uZTEgfCB6b25lMiB8IHpvbmUzIHwgfCAgIFAgICB8ICAgUCAgIHwgICAgICAgfCAtIGlmIE1heFNrZXcgaXMgMSwgaW5jb21pbmcgcG9kIGNhbiBvbmx5IGJlIHNjaGVkdWxlZCB0byB6b25lMyB0byBiZWNvbWUgMS8xLzE7IHNjaGVkdWxpbmcgaXQgb250byB6b25lMSh6b25lMikgd291bGQgbWFrZSB0aGUgQWN0dWFsU2tldygyLTApIG9uIHpvbmUxKHpvbmUyKSB2aW9sYXRlIE1heFNrZXcoMSkuIC0gaWYgTWF4U2tldyBpcyAyLCBpbmNvbWluZyBwb2QgY2FuIGJlIHNjaGVkdWxlZCBvbnRvIGFueSB6b25lLiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIERlZmF1bHQgdmFsdWUgaXMgMSBhbmQgMCBpcyBub3QgYWxsb3dlZC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVG9wb2xvZ3lLZXkgaXMgdGhlIGtleSBvZiBub2RlIGxhYmVscy4gTm9kZXMgdGhhdCBoYXZlIGEgbGFiZWwgd2l0aCB0aGlzIGtleSBhbmQgaWRlbnRpY2FsIHZhbHVlcyBhcmUgY29uc2lkZXJlZCB0byBiZSBpbiB0aGUgc2FtZSB0b3BvbG9neS4gV2UgY29uc2lkZXIgZWFjaCBcdTAwM2NrZXksIHZhbHVlXHUwMDNlIGFzIGEgXCJidWNrZXRcIiwgYW5kIHRyeSB0byBwdXQgYmFsYW5jZWQgbnVtYmVyIG9mIHBvZHMgaW50byBlYWNoIGJ1Y2tldC4gSXQncyBhIHJlcXVpcmVkIGZpZWxkLiIsInR5cGUiOiJzdHJpbmcifSwid2hlblVuc2F0aXNmaWFibGUiOnsiZGVzY3JpcHRpb24iOiJXaGVuVW5zYXRpc2ZpYWJsZSBpbmRpY2F0ZXMgaG93IHRvIGRlYWwgd2l0aCBhIHBvZCBpZiBpdCBkb2Vzbid0IHNhdGlzZnkgdGhlIHNwcmVhZCBjb25zdHJhaW50LiAtIERvTm90U2NoZWR1bGUgKGRlZmF1bHQpIHRlbGxzIHRoZSBzY2hlZHVsZXIgbm90IHRvIHNjaGVkdWxlIGl0IC0gU2NoZWR1bGVBbnl3YXkgdGVsbHMgdGhlIHNjaGVkdWxlciB0byBzdGlsbCBzY2hlZHVsZSBpdCBJdCdzIGNvbnNpZGVyZWQgYXMgXCJVbnNhdGlzZmlhYmxlXCIgaWYgYW5kIG9ubHkgaWYgcGxhY2luZyBpbmNvbWluZyBwb2Qgb24gYW55IHRvcG9sb2d5IHZpb2xhdGVzIFwiTWF4U2tld1wiLiBGb3IgZXhhbXBsZSwgaW4gYSAzLXpvbmUgY2x1c3RlciwgTWF4U2tldyBpcyBzZXQgdG8gMSwgYW5kIHBvZHMgd2l0aCB0aGUgc2FtZSBsYWJlbFNlbGVjdG9yIHNwcmVhZCBhcyAzLzEvMTogfCB6b25lMSB8IHpvbmUyIHwgem9uZTMgfCB8IFAgUCBQIHwgICBQICAgfCAgIFAgICB8IElmIFdoZW5VbnNhdGlzZmlhYmxlIGlzIHNldCB0byBEb05vdFNjaGVkdWxlLCBpbmNvbWluZyBwb2QgY2FuIG9ubHkgYmUgc2NoZWR1bGVkIHRvIHpvbmUyKHpvbmUzKSB0byBiZWNvbWUgMy8yLzEoMy8xLzIpIGFzIEFjdHVhbFNrZXcoMi0xKSBvbiB6b25lMih6b25lMykgc2F0aXNmaWVzIE1heFNrZXcoMSkuIEluIG90aGVyIHdvcmRzLCB0aGUgY2x1c3RlciBjYW4gc3RpbGwgYmUgaW1iYWxhbmNlZCwgYnV0IHNjaGVkdWxlciB3b24ndCBtYWtlIGl0ICptb3JlKiBpbWJhbGFuY2VkLiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibWF4U2tldyIsInRvcG9sb2d5S2V5Iiwid2hlblVuc2F0aXNmaWFibGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwidmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlZlcnNpb24gdGhlIGNsdXN0ZXIgc2hvdWxkIGJlIG9uLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW91bnRzIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTW91bnRzIGFsbG93cyBjb25maWd1cmF0aW9uIG9mIGFkZGl0aW9uYWwgVm9sdW1lTW91bnRzIG9uIHRoZSBvdXRwdXQgU3RhdGVmdWxTZXQgZGVmaW5pdGlvbi4gVm9sdW1lTW91bnRzIHNwZWNpZmllZCB3aWxsIGJlIGFwcGVuZGVkIHRvIG90aGVyIFZvbHVtZU1vdW50cyBpbiB0aGUgYWxlcnRtYW5hZ2VyIGNvbnRhaW5lciwgdGhhdCBhcmUgZ2VuZXJhdGVkIGFzIGEgcmVzdWx0IG9mIFN0b3JhZ2VTcGVjIG9iamVjdHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudCBkZXNjcmliZXMgYSBtb3VudGluZyBvZiBhIFZvbHVtZSB3aXRoaW4gYSBjb250YWluZXIuIiwicHJvcGVydGllcyI6eyJtb3VudFBhdGgiOnsiZGVzY3JpcHRpb24iOiJQYXRoIHdpdGhpbiB0aGUgY29udGFpbmVyIGF0IHdoaWNoIHRoZSB2b2x1bWUgc2hvdWxkIGJlIG1vdW50ZWQuICBNdXN0IG5vdCBjb250YWluICc6Jy4iLCJ0eXBlIjoic3RyaW5nIn0sIm1vdW50UHJvcGFnYXRpb24iOnsiZGVzY3JpcHRpb24iOiJtb3VudFByb3BhZ2F0aW9uIGRldGVybWluZXMgaG93IG1vdW50cyBhcmUgcHJvcGFnYXRlZCBmcm9tIHRoZSBob3N0IHRvIGNvbnRhaW5lciBhbmQgdGhlIG90aGVyIHdheSBhcm91bmQuIFdoZW4gbm90IHNldCwgTW91bnRQcm9wYWdhdGlvbk5vbmUgaXMgdXNlZC4gVGhpcyBmaWVsZCBpcyBiZXRhIGluIDEuMTAuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhpcyBtdXN0IG1hdGNoIHRoZSBOYW1lIG9mIGEgVm9sdW1lLiIsInR5cGUiOiJzdHJpbmcifSwicmVhZE9ubHkiOnsiZGVzY3JpcHRpb24iOiJNb3VudGVkIHJlYWQtb25seSBpZiB0cnVlLCByZWFkLXdyaXRlIG90aGVyd2lzZSAoZmFsc2Ugb3IgdW5zcGVjaWZpZWQpLiBEZWZhdWx0cyB0byBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzdWJQYXRoIjp7ImRlc2NyaXB0aW9uIjoiUGF0aCB3aXRoaW4gdGhlIHZvbHVtZSBmcm9tIHdoaWNoIHRoZSBjb250YWluZXIncyB2b2x1bWUgc2hvdWxkIGJlIG1vdW50ZWQuIERlZmF1bHRzIHRvIFwiXCIgKHZvbHVtZSdzIHJvb3QpLiIsInR5cGUiOiJzdHJpbmcifSwic3ViUGF0aEV4cHIiOnsiZGVzY3JpcHRpb24iOiJFeHBhbmRlZCBwYXRoIHdpdGhpbiB0aGUgdm9sdW1lIGZyb20gd2hpY2ggdGhlIGNvbnRhaW5lcidzIHZvbHVtZSBzaG91bGQgYmUgbW91bnRlZC4gQmVoYXZlcyBzaW1pbGFybHkgdG8gU3ViUGF0aCBidXQgZW52aXJvbm1lbnQgdmFyaWFibGUgcmVmZXJlbmNlcyAkKFZBUl9OQU1FKSBhcmUgZXhwYW5kZWQgdXNpbmcgdGhlIGNvbnRhaW5lcidzIGVudmlyb25tZW50LiBEZWZhdWx0cyB0byBcIlwiICh2b2x1bWUncyByb290KS4gU3ViUGF0aEV4cHIgYW5kIFN1YlBhdGggYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJtb3VudFBhdGgiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1wcmVzZXJ2ZS11bmtub3duLWZpZWxkcyI6dHJ1ZX0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IlN0YXR1cyBkZWZpbmVzIHRoZSBvYnNlcnZlZCBzdGF0ZSBvZiBLbmF0aXZlU2VydmluZyIsInByb3BlcnRpZXMiOnsiY29uZGl0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYXRlc3QgYXZhaWxhYmxlIG9ic2VydmF0aW9ucyBvZiBhIHJlc291cmNlJ3MgY3VycmVudCBzdGF0ZS4iLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7Imxhc3RUcmFuc2l0aW9uVGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RUcmFuc2l0aW9uVGltZSBpcyB0aGUgbGFzdCB0aW1lIHRoZSBjb25kaXRpb24gdHJhbnNpdGlvbmVkIGZyb20gb25lIHN0YXR1cyB0byBhbm90aGVyLiBXZSB1c2UgVm9sYXRpbGVUaW1lIGluIHBsYWNlIG9mIG1ldGF2MS5UaW1lIHRvIGV4Y2x1ZGUgdGhpcyBmcm9tIGNyZWF0aW5nIGVxdWFsaXR5LlNlbWFudGljIGRpZmZlcmVuY2VzIChhbGwgb3RoZXIgdGhpbmdzIGhlbGQgY29uc3RhbnQpLiIsInR5cGUiOiJzdHJpbmcifSwibWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkEgaHVtYW4gcmVhZGFibGUgbWVzc2FnZSBpbmRpY2F0aW5nIGRldGFpbHMgYWJvdXQgdGhlIHRyYW5zaXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJyZWFzb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgcmVhc29uIGZvciB0aGUgY29uZGl0aW9uJ3MgbGFzdCB0cmFuc2l0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwic2V2ZXJpdHkiOnsiZGVzY3JpcHRpb24iOiJTZXZlcml0eSB3aXRoIHdoaWNoIHRvIHRyZWF0IGZhaWx1cmVzIG9mIHRoaXMgdHlwZSBvZiBjb25kaXRpb24uIFdoZW4gdGhpcyBpcyBub3Qgc3BlY2lmaWVkLCBpdCBkZWZhdWx0cyB0byBFcnJvci4iLCJ0eXBlIjoic3RyaW5nIn0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IlN0YXR1cyBvZiB0aGUgY29uZGl0aW9uLCBvbmUgb2YgVHJ1ZSwgRmFsc2UsIFVua25vd24uIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiVHlwZSBvZiBjb25kaXRpb24uIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSIsInN0YXR1cyJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYW5pZmVzdHMiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGlzdCBvZiBzZXJ2aW5nIG1hbmlmZXN0cywgd2hpY2ggaGF2ZSBiZWVuIGluc3RhbGxlZCBieSB0aGUgb3BlcmF0b3IiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJvYnNlcnZlZEdlbmVyYXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgZ2VuZXJhdGlvbiBsYXN0IHByb2Nlc3NlZCBieSB0aGUgY29udHJvbGxlciIsInR5cGUiOiJpbnRlZ2VyIn0sInZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgdmVyc2lvbiBvZiB0aGUgaW5zdGFsbGVkIHJlbGVhc2UiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsibmFtZSI6ImtuYXRpdmVrYWZrYXMub3BlcmF0b3Iuc2VydmVybGVzcy5vcGVuc2hpZnQuaW8ifSwic3BlYyI6eyJncm91cCI6Im9wZXJhdG9yLnNlcnZlcmxlc3Mub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IktuYXRpdmVLYWZrYSIsImxpc3RLaW5kIjoiS25hdGl2ZUthZmthTGlzdCIsInBsdXJhbCI6ImtuYXRpdmVrYWZrYXMiLCJzaW5ndWxhciI6ImtuYXRpdmVrYWZrYSJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3siYWRkaXRpb25hbFByaW50ZXJDb2x1bW5zIjpbeyJqc29uUGF0aCI6Ii5zdGF0dXMudmVyc2lvbiIsIm5hbWUiOiJWZXJzaW9uIiwidHlwZSI6InN0cmluZyJ9LHsianNvblBhdGgiOiIuc3RhdHVzLmNvbmRpdGlvbnNbPyhALnR5cGU9PVwiUmVhZHlcIildLnN0YXR1cyIsIm5hbWUiOiJSZWFkeSIsInR5cGUiOiJzdHJpbmcifSx7Impzb25QYXRoIjoiLnN0YXR1cy5jb25kaXRpb25zWz8oQC50eXBlPT0nUmVhZHknKV0ucmVhc29uIiwibmFtZSI6IlJlYXNvbiIsInR5cGUiOiJzdHJpbmcifV0sIm5hbWUiOiJ2MWFscGhhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJLbmF0aXZlS2Fma2EgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGtuYXRpdmVrYWZrYXMgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IktuYXRpdmVLYWZrYVNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiB0aGUgS25hdGl2ZUthZmthIChmcm9tIHRoZSBjbGllbnQpLiIsInByb3BlcnRpZXMiOnsiYnJva2VyIjp7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIGNvbmZpZ3VyYXRpb24gZm9yIEthZmthQnJva2VyIGluc3RhbGxhdGlvbiIsInByb3BlcnRpZXMiOnsiZGVmYXVsdENvbmZpZyI6eyJkZXNjcmlwdGlvbiI6IlRha2VzIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIEthZmthIGJhc2VkIGJyb2tlcnMiLCJwcm9wZXJ0aWVzIjp7ImF1dGhTZWNyZXROYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFNlY3JldE5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIHNlY3JldCB0aGF0IGNvbnRhaW5zIEthZmthIGF1dGggY29uZmlndXJhdGlvbiBmb3IgdGhlIEJyb2tlci4iLCJ0eXBlIjoic3RyaW5nIn0sImJvb3RzdHJhcFNlcnZlcnMiOnsiZGVzY3JpcHRpb24iOiJCb290c3RyYXBTZXJ2ZXJzIGlzIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmcgb2YgYm9vdHN0cmFwc2VydmVycyB0aGF0IHRoZSBLYWZrYUJyb2tlcnMgd2lsbCB1c2UiLCJ0eXBlIjoic3RyaW5nIn0sIm51bVBhcnRpdGlvbnMiOnsiZGVmYXVsdCI6MTAsImRlc2NyaXB0aW9uIjoiTnVtUGFydGl0aW9ucyBpcyB0aGUgbnVtYmVyIG9mIHBhcnRpdGlvbnMgb2YgYSBLYWZrYSB0b3BpYy4gQnkgZGVmYXVsdCwgaXQgaXMgc2V0IHRvIDEwLiIsInR5cGUiOiJpbnRlZ2VyIn0sInJlcGxpY2F0aW9uRmFjdG9yIjp7ImRlZmF1bHQiOjMsImRlc2NyaXB0aW9uIjoiUmVwbGljYXRpb25GYWN0b3IgaXMgdGhlIHJlcGxpY2F0aW9uIGZhY3RvciBvZiBhIEthZmthIHRvcGljLiBCeSBkZWZhdWx0LCBpdCBpcyBzZXQgdG8gMy4iLCJtYXhpbXVtIjozMjc2NywidHlwZSI6ImludGVnZXIifX0sInR5cGUiOiJvYmplY3QifSwiZW5hYmxlZCI6eyJkZXNjcmlwdGlvbiI6IkVuYWJsZWQgZGVmaW5lcyBpZiB0aGUgS2Fma2FCcm9rZXIgaW5zdGFsbGF0aW9uIGlzIGVuYWJsZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsiZW5hYmxlZCJdLCJ0eXBlIjoib2JqZWN0In0sImNoYW5uZWwiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3MgY29uZmlndXJhdGlvbiBmb3IgS2Fma2FDaGFubmVsIGluc3RhbGxhdGlvbiIsInByb3BlcnRpZXMiOnsiYXV0aFNlY3JldE5hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoU2VjcmV0TmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgc2VjcmV0IHRoYXQgY29udGFpbnMgS2Fma2EgYXV0aCBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYXV0aFNlY3JldE5hbWVzcGFjZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhTZWNyZXROYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiB0aGUgc2VjcmV0IHRoYXQgY29udGFpbnMgS2Fma2EgYXV0aCBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYm9vdHN0cmFwU2VydmVycyI6eyJkZXNjcmlwdGlvbiI6IkJvb3RzdHJhcFNlcnZlcnMgaXMgY29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiBib290c3RyYXBzZXJ2ZXJzIHRoYXQgdGhlIEthZmthQ2hhbm5lbHMgd2lsbCB1c2UiLCJ0eXBlIjoic3RyaW5nIn0sImVuYWJsZWQiOnsiZGVzY3JpcHRpb24iOiJFbmFibGVkIGRlZmluZXMgaWYgdGhlIEthZmthQ2hhbm5lbCBpbnN0YWxsYXRpb24gaXMgZW5hYmxlZCIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJlbmFibGVkIl0sInR5cGUiOiJvYmplY3QifSwiY29uZmlnIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6Im9iamVjdCJ9LCJkZXNjcmlwdGlvbiI6IkEgbWVhbnMgdG8gb3ZlcnJpZGUgdGhlIGNvcnJlc3BvbmRpbmcgZW50cmllcyBpbiB0aGUgdXBzdHJlYW0gY29uZmlnbWFwcyIsInR5cGUiOiJvYmplY3QifSwiaGlnaC1hdmFpbGFiaWxpdHkiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiBIQSBjb250cm9sIHBsYW5lIiwicHJvcGVydGllcyI6eyJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sImxvZ2dpbmciOnsiZGVzY3JpcHRpb24iOiJTZXQgbG9nZ2luZyBjb25maWd1cmF0aW9uIG9mIHRoZSBkYXRhIHBsYW5lIChyZWNlaXZlcnMgYW5kIGRpc3BhdGNoZXJzKS4gSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIHVzZSBERUJVRyBvciBUUkFDRSBpbiBwcm9kdWN0aW9uIHNpbmNlIGl0J3MgdG9vIHZlcmJvc2UgYW5kIGRlZ3JhZGVzIHBlcmZvcm1hbmNlLiIsInByb3BlcnRpZXMiOnsibGV2ZWwiOnsiZGVmYXVsdCI6IklORk8iLCJkZXNjcmlwdGlvbiI6IkRlZmluZXMgdGhlIGxvZyBsZXZlbC4gQWxsb3dlZCB2YWx1ZXMgYXJlICdUUkFDRScsICdERUJVRycsICdJTkZPJywgJ1dBUk4nIGFuZCAnRVJST1InLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAnSU5GTycuIiwiZW51bSI6WyJUUkFDRSIsIkRFQlVHIiwiSU5GTyIsIldBUk4iLCJFUlJPUiJdLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNpbmsiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3MgY29uZmlndXJhdGlvbiBmb3IgS2Fma2FTaW5rIGluc3RhbGxhdGlvbiIsInByb3BlcnRpZXMiOnsiZW5hYmxlZCI6eyJkZXNjcmlwdGlvbiI6IkVuYWJsZWQgZGVmaW5lcyBpZiB0aGUgS2Fma2FTaW5rIGluc3RhbGxhdGlvbiBpcyBlbmFibGVkIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImVuYWJsZWQiXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3MgY29uZmlndXJhdGlvbiBmb3IgS2Fma2FTb3VyY2UgaW5zdGFsbGF0aW9uIiwicHJvcGVydGllcyI6eyJlbmFibGVkIjp7ImRlc2NyaXB0aW9uIjoiRW5hYmxlZCBkZWZpbmVzIGlmIHRoZSBLYWZrYVNvdXJjZSBpbnN0YWxsYXRpb24gaXMgZW5hYmxlZCIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJlbmFibGVkIl0sInR5cGUiOiJvYmplY3QifSwid29ya2xvYWRzIjp7ImRlc2NyaXB0aW9uIjoiQSBtYXBwaW5nIG9mIGRlcGxveW1lbnQgb3Igc3RhdGVmdWxzZXQgbmFtZSB0byBvdmVycmlkZSIsIml0ZW1zIjp7InByb3BlcnRpZXMiOnsiYWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJJZiBzcGVjaWZpZWQsIHRoZSBwb2QncyBzY2hlZHVsaW5nIGNvbnN0cmFpbnRzLiIsInByb3BlcnRpZXMiOnsibm9kZUFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiRGVzY3JpYmVzIG5vZGUgYWZmaW5pdHkgc2NoZWR1bGluZyBydWxlcyBmb3IgdGhlIHBvZC4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcnJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHNjaGVkdWxlciB3aWxsIHByZWZlciB0byBzY2hlZHVsZSBwb2RzIHRvIG5vZGVzIHRoYXQgc2F0aXNmeSB0aGUgYWZmaW5pdHkgZXhwcmVzc2lvbnMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQsIGJ1dCBpdCBtYXkgY2hvb3NlIGEgbm9kZSB0aGF0IHZpb2xhdGVzIG9uZSBvciBtb3JlIG9mIHRoZSBleHByZXNzaW9ucy4gVGhlIG5vZGUgdGhhdCBpcyBtb3N0IHByZWZlcnJlZCBpcyB0aGUgb25lIHdpdGggdGhlIGdyZWF0ZXN0IHN1bSBvZiB3ZWlnaHRzLCBpLmUuIGZvciBlYWNoIG5vZGUgdGhhdCBtZWV0cyBhbGwgb2YgdGhlIHNjaGVkdWxpbmcgcmVxdWlyZW1lbnRzIChyZXNvdXJjZSByZXF1ZXN0LCByZXF1aXJlZER1cmluZ1NjaGVkdWxpbmcgYWZmaW5pdHkgZXhwcmVzc2lvbnMsIGV0Yy4pLCBjb21wdXRlIGEgc3VtIGJ5IGl0ZXJhdGluZyB0aHJvdWdoIHRoZSBlbGVtZW50cyBvZiB0aGlzIGZpZWxkIGFuZCBhZGRpbmcgXCJ3ZWlnaHRcIiB0byB0aGUgc3VtIGlmIHRoZSBub2RlIG1hdGNoZXMgdGhlIGNvcnJlc3BvbmRpbmcgbWF0Y2hFeHByZXNzaW9uczsgdGhlIG5vZGUocykgd2l0aCB0aGUgaGlnaGVzdCBzdW0gYXJlIHRoZSBtb3N0IHByZWZlcnJlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGVtcHR5IHByZWZlcnJlZCBzY2hlZHVsaW5nIHRlcm0gbWF0Y2hlcyBhbGwgb2JqZWN0cyB3aXRoIGltcGxpY2l0IHdlaWdodCAwIChpLmUuIGl0J3MgYSBuby1vcCkuIEEgbnVsbCBwcmVmZXJyZWQgc2NoZWR1bGluZyB0ZXJtIG1hdGNoZXMgbm8gb2JqZWN0cyAoaS5lLiBpcyBhbHNvIGEgbm8tb3ApLiIsInByb3BlcnRpZXMiOnsicHJlZmVyZW5jZSI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciB0ZXJtLCBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgd2VpZ2h0LiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgbGFiZWxzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaEZpZWxkcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgZmllbGRzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ3ZWlnaHQiOnsiZGVzY3JpcHRpb24iOiJXZWlnaHQgYXNzb2NpYXRlZCB3aXRoIG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIG5vZGVTZWxlY3RvclRlcm0sIGluIHRoZSByYW5nZSAxLTEwMC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJwcmVmZXJlbmNlIiwid2VpZ2h0Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGFyZSBub3QgbWV0IGF0IHNjaGVkdWxpbmcgdGltZSwgdGhlIHBvZCB3aWxsIG5vdCBiZSBzY2hlZHVsZWQgb250byB0aGUgbm9kZS4gSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBjZWFzZSB0byBiZSBtZXQgYXQgc29tZSBwb2ludCBkdXJpbmcgcG9kIGV4ZWN1dGlvbiAoZS5nLiBkdWUgdG8gYW4gdXBkYXRlKSwgdGhlIHN5c3RlbSBtYXkgb3IgbWF5IG5vdCB0cnkgdG8gZXZlbnR1YWxseSBldmljdCB0aGUgcG9kIGZyb20gaXRzIG5vZGUuIiwicHJvcGVydGllcyI6eyJub2RlU2VsZWN0b3JUZXJtcyI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkLiBBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciB0ZXJtcy4gVGhlIHRlcm1zIGFyZSBPUmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBudWxsIG9yIGVtcHR5IG5vZGUgc2VsZWN0b3IgdGVybSBtYXRjaGVzIG5vIG9iamVjdHMuIFRoZSByZXF1aXJlbWVudHMgb2YgdGhlbSBhcmUgQU5EZWQuIFRoZSBUb3BvbG9neVNlbGVjdG9yVGVybSB0eXBlIGltcGxlbWVudHMgYSBzdWJzZXQgb2YgdGhlIE5vZGVTZWxlY3RvclRlcm0uIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBsYWJlbHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoRmllbGRzIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBmaWVsZHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsibm9kZVNlbGVjdG9yVGVybXMiXSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwb2RBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBwb2QgYWZmaW5pdHkgc2NoZWR1bGluZyBydWxlcyAoZS5nLiBjby1sb2NhdGUgdGhpcyBwb2QgaW4gdGhlIHNhbWUgbm9kZSwgem9uZSwgZXRjLiBhcyBzb21lIG90aGVyIHBvZChzKSkuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnkgdGhlIGFmZmluaXR5IGV4cHJlc3Npb25zIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkLCBidXQgaXQgbWF5IGNob29zZSBhIG5vZGUgdGhhdCB2aW9sYXRlcyBvbmUgb3IgbW9yZSBvZiB0aGUgZXhwcmVzc2lvbnMuIFRoZSBub2RlIHRoYXQgaXMgbW9zdCBwcmVmZXJyZWQgaXMgdGhlIG9uZSB3aXRoIHRoZSBncmVhdGVzdCBzdW0gb2Ygd2VpZ2h0cywgaS5lLiBmb3IgZWFjaCBub2RlIHRoYXQgbWVldHMgYWxsIG9mIHRoZSBzY2hlZHVsaW5nIHJlcXVpcmVtZW50cyAocmVzb3VyY2UgcmVxdWVzdCwgcmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nIGFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSwgY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nIFwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBoYXMgcG9kcyB3aGljaCBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybTsgdGhlIG5vZGUocykgd2l0aCB0aGUgaGlnaGVzdCBzdW0gYXJlIHRoZSBtb3N0IHByZWZlcnJlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSB3ZWlnaHRzIG9mIGFsbCBvZiB0aGUgbWF0Y2hlZCBXZWlnaHRlZFBvZEFmZmluaXR5VGVybSBmaWVsZHMgYXJlIGFkZGVkIHBlci1ub2RlIHRvIGZpbmQgdGhlIG1vc3QgcHJlZmVycmVkIG5vZGUocykiLCJwcm9wZXJ0aWVzIjp7InBvZEFmZmluaXR5VGVybSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkLiBBIHBvZCBhZmZpbml0eSB0ZXJtLCBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgd2VpZ2h0LiIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMsIGluIHRoaXMgY2FzZSBwb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibmFtZXNwYWNlcyI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZXMgc3BlY2lmaWVzIHdoaWNoIG5hbWVzcGFjZXMgdGhlIGxhYmVsU2VsZWN0b3IgYXBwbGllcyB0byAobWF0Y2hlcyBhZ2FpbnN0KTsgbnVsbCBvciBlbXB0eSBsaXN0IG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCB0aGUgcG9kcyBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciBpbiB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGUgc2VsZWN0ZWQgcG9kcyBpcyBydW5uaW5nLiBFbXB0eSB0b3BvbG9neUtleSBpcyBub3QgYWxsb3dlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0b3BvbG9neUtleSJdLCJ0eXBlIjoib2JqZWN0In0sIndlaWdodCI6eyJkZXNjcmlwdGlvbiI6IndlaWdodCBhc3NvY2lhdGVkIHdpdGggbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtLCBpbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicG9kQWZmaW5pdHlUZXJtIiwid2VpZ2h0Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGFyZSBub3QgbWV0IGF0IHNjaGVkdWxpbmcgdGltZSwgdGhlIHBvZCB3aWxsIG5vdCBiZSBzY2hlZHVsZWQgb250byB0aGUgbm9kZS4gSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBjZWFzZSB0byBiZSBtZXQgYXQgc29tZSBwb2ludCBkdXJpbmcgcG9kIGV4ZWN1dGlvbiAoZS5nLiBkdWUgdG8gYSBwb2QgbGFiZWwgdXBkYXRlKSwgdGhlIHN5c3RlbSBtYXkgb3IgbWF5IG5vdCB0cnkgdG8gZXZlbnR1YWxseSBldmljdCB0aGUgcG9kIGZyb20gaXRzIG5vZGUuIFdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIGVsZW1lbnRzLCB0aGUgbGlzdHMgb2Ygbm9kZXMgY29ycmVzcG9uZGluZyB0byBlYWNoIHBvZEFmZmluaXR5VGVybSBhcmUgaW50ZXJzZWN0ZWQsIGkuZS4gYWxsIHRlcm1zIG11c3QgYmUgc2F0aXNmaWVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRGVmaW5lcyBhIHNldCBvZiBwb2RzIChuYW1lbHkgdGhvc2UgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgcmVsYXRpdmUgdG8gdGhlIGdpdmVuIG5hbWVzcGFjZShzKSkgdGhhdCB0aGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IFx1MDAzY3RvcG9sb2d5S2V5XHUwMDNlIG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhIHBvZCBvZiB0aGUgc2V0IG9mIHBvZHMgaXMgcnVubmluZyIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMsIGluIHRoaXMgY2FzZSBwb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibmFtZXNwYWNlcyI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZXMgc3BlY2lmaWVzIHdoaWNoIG5hbWVzcGFjZXMgdGhlIGxhYmVsU2VsZWN0b3IgYXBwbGllcyB0byAobWF0Y2hlcyBhZ2FpbnN0KTsgbnVsbCBvciBlbXB0eSBsaXN0IG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCB0aGUgcG9kcyBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciBpbiB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGUgc2VsZWN0ZWQgcG9kcyBpcyBydW5uaW5nLiBFbXB0eSB0b3BvbG9neUtleSBpcyBub3QgYWxsb3dlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0b3BvbG9neUtleSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwb2RBbnRpQWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJEZXNjcmliZXMgcG9kIGFudGktYWZmaW5pdHkgc2NoZWR1bGluZyBydWxlcyAoZS5nLiBhdm9pZCBwdXR0aW5nIHRoaXMgcG9kIGluIHRoZSBzYW1lIG5vZGUsIHpvbmUsIGV0Yy4gYXMgc29tZSBvdGhlciBwb2QocykpLiIsInByb3BlcnRpZXMiOnsicHJlZmVycmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgc2NoZWR1bGVyIHdpbGwgcHJlZmVyIHRvIHNjaGVkdWxlIHBvZHMgdG8gbm9kZXMgdGhhdCBzYXRpc2Z5IHRoZSBhbnRpLWFmZmluaXR5IGV4cHJlc3Npb25zIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkLCBidXQgaXQgbWF5IGNob29zZSBhIG5vZGUgdGhhdCB2aW9sYXRlcyBvbmUgb3IgbW9yZSBvZiB0aGUgZXhwcmVzc2lvbnMuIFRoZSBub2RlIHRoYXQgaXMgbW9zdCBwcmVmZXJyZWQgaXMgdGhlIG9uZSB3aXRoIHRoZSBncmVhdGVzdCBzdW0gb2Ygd2VpZ2h0cywgaS5lLiBmb3IgZWFjaCBub2RlIHRoYXQgbWVldHMgYWxsIG9mIHRoZSBzY2hlZHVsaW5nIHJlcXVpcmVtZW50cyAocmVzb3VyY2UgcmVxdWVzdCwgcmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nIGFudGktYWZmaW5pdHkgZXhwcmVzc2lvbnMsIGV0Yy4pLCBjb21wdXRlIGEgc3VtIGJ5IGl0ZXJhdGluZyB0aHJvdWdoIHRoZSBlbGVtZW50cyBvZiB0aGlzIGZpZWxkIGFuZCBhZGRpbmcgXCJ3ZWlnaHRcIiB0byB0aGUgc3VtIGlmIHRoZSBub2RlIGhhcyBwb2RzIHdoaWNoIG1hdGNoZXMgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtOyB0aGUgbm9kZShzKSB3aXRoIHRoZSBoaWdoZXN0IHN1bSBhcmUgdGhlIG1vc3QgcHJlZmVycmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHdlaWdodHMgb2YgYWxsIG9mIHRoZSBtYXRjaGVkIFdlaWdodGVkUG9kQWZmaW5pdHlUZXJtIGZpZWxkcyBhcmUgYWRkZWQgcGVyLW5vZGUgdG8gZmluZCB0aGUgbW9zdCBwcmVmZXJyZWQgbm9kZShzKSIsInByb3BlcnRpZXMiOnsicG9kQWZmaW5pdHlUZXJtIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQuIEEgcG9kIGFmZmluaXR5IHRlcm0sIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB3ZWlnaHQuIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwid2VpZ2h0Ijp7ImRlc2NyaXB0aW9uIjoid2VpZ2h0IGFzc29jaWF0ZWQgd2l0aCBtYXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm0sIGluIHRoZSByYW5nZSAxLTEwMC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJwb2RBZmZpbml0eVRlcm0iLCJ3ZWlnaHQiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IklmIHRoZSBhbnRpLWFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBhcmUgbm90IG1ldCBhdCBzY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuIElmIHRoZSBhbnRpLWFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBjZWFzZSB0byBiZSBtZXQgYXQgc29tZSBwb2ludCBkdXJpbmcgcG9kIGV4ZWN1dGlvbiAoZS5nLiBkdWUgdG8gYSBwb2QgbGFiZWwgdXBkYXRlKSwgdGhlIHN5c3RlbSBtYXkgb3IgbWF5IG5vdCB0cnkgdG8gZXZlbnR1YWxseSBldmljdCB0aGUgcG9kIGZyb20gaXRzIG5vZGUuIFdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIGVsZW1lbnRzLCB0aGUgbGlzdHMgb2Ygbm9kZXMgY29ycmVzcG9uZGluZyB0byBlYWNoIHBvZEFmZmluaXR5VGVybSBhcmUgaW50ZXJzZWN0ZWQsIGkuZS4gYWxsIHRlcm1zIG11c3QgYmUgc2F0aXNmaWVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRGVmaW5lcyBhIHNldCBvZiBwb2RzIChuYW1lbHkgdGhvc2UgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgcmVsYXRpdmUgdG8gdGhlIGdpdmVuIG5hbWVzcGFjZShzKSkgdGhhdCB0aGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IFx1MDAzY3RvcG9sb2d5S2V5XHUwMDNlIG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhIHBvZCBvZiB0aGUgc2V0IG9mIHBvZHMgaXMgcnVubmluZyIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMsIGluIHRoaXMgY2FzZSBwb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibmFtZXNwYWNlcyI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZXMgc3BlY2lmaWVzIHdoaWNoIG5hbWVzcGFjZXMgdGhlIGxhYmVsU2VsZWN0b3IgYXBwbGllcyB0byAobWF0Y2hlcyBhZ2FpbnN0KTsgbnVsbCBvciBlbXB0eSBsaXN0IG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCB0aGUgcG9kcyBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciBpbiB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGUgc2VsZWN0ZWQgcG9kcyBpcyBydW5uaW5nLiBFbXB0eSB0b3BvbG9neUtleSBpcyBub3QgYWxsb3dlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0b3BvbG9neUtleSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgb3ZlcnJpZGVzIGxhYmVscyBmb3IgdGhlIGRlcGxveW1lbnQgYW5kIGl0cyB0ZW1wbGF0ZS4iLCJ0eXBlIjoib2JqZWN0In0sImVudiI6eyJkZXNjcmlwdGlvbiI6IkVudiBvdmVycmlkZXMgZW52IHZhcnMgZm9yIHRoZSBjb250YWluZXJzLiIsIml0ZW1zIjp7InByb3BlcnRpZXMiOnsiY29udGFpbmVyIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGNvbnRhaW5lciBuYW1lIiwidHlwZSI6InN0cmluZyJ9LCJlbnZWYXJzIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGRlc2lyZWQgRW52VmFyUmVxdWlyZW1lbnRzIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZWYXIgcmVwcmVzZW50cyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBwcmVzZW50IGluIGEgQ29udGFpbmVyLiIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlLiBNdXN0IGJlIGEgQ19JREVOVElGSUVSLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYXJpYWJsZSByZWZlcmVuY2VzICQoVkFSX05BTUUpIGFyZSBleHBhbmRlZCB1c2luZyB0aGUgcHJldmlvdXNseSBkZWZpbmVkIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgY29udGFpbmVyIGFuZCBhbnkgc2VydmljZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUgY2Fubm90IGJlIHJlc29sdmVkLCB0aGUgcmVmZXJlbmNlIGluIHRoZSBpbnB1dCBzdHJpbmcgd2lsbCBiZSB1bmNoYW5nZWQuIERvdWJsZSAkJCBhcmUgcmVkdWNlZCB0byBhIHNpbmdsZSAkLCB3aGljaCBhbGxvd3MgZm9yIGVzY2FwaW5nIHRoZSAkKFZBUl9OQU1FKSBzeW50YXg6IGkuZS4gXCIkJChWQVJfTkFNRSlcIiB3aWxsIHByb2R1Y2UgdGhlIHN0cmluZyBsaXRlcmFsIFwiJChWQVJfTkFNRSlcIi4gRXNjYXBlZCByZWZlcmVuY2VzIHdpbGwgbmV2ZXIgYmUgZXhwYW5kZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgdmFyaWFibGUgZXhpc3RzIG9yIG5vdC4gRGVmYXVsdHMgdG8gXCJcIi4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlRnJvbSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZSBmb3IgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlJ3MgdmFsdWUuIENhbm5vdCBiZSB1c2VkIGlmIHZhbHVlIGlzIG5vdCBlbXB0eS4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ01hcEtleVJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBrZXkgb2YgYSBDb25maWdNYXAuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUga2V5IHRvIHNlbGVjdC4iLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSByZWZlcmVudC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9vdmVydmlldy93b3JraW5nLXdpdGgtb2JqZWN0cy9uYW1lcy8jbmFtZXMgVE9ETzogQWRkIG90aGVyIHVzZWZ1bCBmaWVsZHMuIGFwaVZlcnNpb24sIGtpbmQsIHVpZD8iLCJ0eXBlIjoic3RyaW5nIn0sIm9wdGlvbmFsIjp7ImRlc2NyaXB0aW9uIjoiU3BlY2lmeSB3aGV0aGVyIHRoZSBDb25maWdNYXAgb3IgaXRzIGtleSBtdXN0IGJlIGRlZmluZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsia2V5Il0sInR5cGUiOiJvYmplY3QifSwiZmllbGRSZWYiOnsiZGVzY3JpcHRpb24iOiJTZWxlY3RzIGEgZmllbGQgb2YgdGhlIHBvZDogc3VwcG9ydHMgbWV0YWRhdGEubmFtZSwgbWV0YWRhdGEubmFtZXNwYWNlLCBgbWV0YWRhdGEubGFiZWxzWydcdTAwM2NLRVlcdTAwM2UnXWAsIGBtZXRhZGF0YS5hbm5vdGF0aW9uc1snXHUwMDNjS0VZXHUwMDNlJ11gLCBzcGVjLm5vZGVOYW1lLCBzcGVjLnNlcnZpY2VBY2NvdW50TmFtZSwgc3RhdHVzLmhvc3RJUCwgc3RhdHVzLnBvZElQLCBzdGF0dXMucG9kSVBzLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlZlcnNpb24gb2YgdGhlIHNjaGVtYSB0aGUgRmllbGRQYXRoIGlzIHdyaXR0ZW4gaW4gdGVybXMgb2YsIGRlZmF1bHRzIHRvIFwidjFcIi4iLCJ0eXBlIjoic3RyaW5nIn0sImZpZWxkUGF0aCI6eyJkZXNjcmlwdGlvbiI6IlBhdGggb2YgdGhlIGZpZWxkIHRvIHNlbGVjdCBpbiB0aGUgc3BlY2lmaWVkIEFQSSB2ZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImZpZWxkUGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlRmllbGRSZWYiOnsiZGVzY3JpcHRpb24iOiJTZWxlY3RzIGEgcmVzb3VyY2Ugb2YgdGhlIGNvbnRhaW5lcjogb25seSByZXNvdXJjZXMgbGltaXRzIGFuZCByZXF1ZXN0cyAobGltaXRzLmNwdSwgbGltaXRzLm1lbW9yeSwgbGltaXRzLmVwaGVtZXJhbC1zdG9yYWdlLCByZXF1ZXN0cy5jcHUsIHJlcXVlc3RzLm1lbW9yeSBhbmQgcmVxdWVzdHMuZXBoZW1lcmFsLXN0b3JhZ2UpIGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkLiIsInByb3BlcnRpZXMiOnsiY29udGFpbmVyTmFtZSI6eyJkZXNjcmlwdGlvbiI6IkNvbnRhaW5lciBuYW1lOiByZXF1aXJlZCBmb3Igdm9sdW1lcywgb3B0aW9uYWwgZm9yIGVudiB2YXJzIiwidHlwZSI6InN0cmluZyJ9LCJkaXZpc29yIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwiZGVzY3JpcHRpb24iOiJTcGVjaWZpZXMgdGhlIG91dHB1dCBmb3JtYXQgb2YgdGhlIGV4cG9zZWQgcmVzb3VyY2VzLCBkZWZhdWx0cyB0byBcIjFcIiIsInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwicmVzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZDogcmVzb3VyY2UgdG8gc2VsZWN0IiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsicmVzb3VyY2UiXSwidHlwZSI6Im9iamVjdCJ9LCJzZWNyZXRLZXlSZWYiOnsiZGVzY3JpcHRpb24iOiJTZWxlY3RzIGEga2V5IG9mIGEgc2VjcmV0IGluIHRoZSBwb2QncyBuYW1lc3BhY2UiLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBrZXkgb2YgdGhlIHNlY3JldCB0byBzZWxlY3QgZnJvbS4gIE11c3QgYmUgYSB2YWxpZCBzZWNyZXQga2V5LiIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIHJlZmVyZW50LiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L3dvcmtpbmctd2l0aC1vYmplY3RzL25hbWVzLyNuYW1lcyBUT0RPOiBBZGQgb3RoZXIgdXNlZnVsIGZpZWxkcy4gYXBpVmVyc2lvbiwga2luZCwgdWlkPyIsInR5cGUiOiJzdHJpbmcifSwib3B0aW9uYWwiOnsiZGVzY3JpcHRpb24iOiJTcGVjaWZ5IHdoZXRoZXIgdGhlIFNlY3JldCBvciBpdHMga2V5IG11c3QgYmUgZGVmaW5lZCIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJrZXkiXSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsiY29udGFpbmVyIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTGFiZWxzIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBkZXBsb3ltZW50IGFuZCBpdHMgdGVtcGxhdGUuIiwidHlwZSI6Im9iamVjdCJ9LCJsaXZlbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IkxpdmVuZXNzUHJvYmVzIG92ZXJyaWRlcyBsaXZlbmVzcyBwcm9iZXMgZm9yIHRoZSBjb250YWluZXJzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiUHJvYmVzUmVxdWlyZW1lbnRzT3ZlcnJpZGUgZW5hYmxlcyB0aGUgdXNlciB0byBvdmVycmlkZSBhbnkgY29udGFpbmVyJ3MgZW52IHZhcnMuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgY29udGFpbmVyIG5hbWUiLCJ0eXBlIjoic3RyaW5nIn0sImZhaWx1cmVUaHJlc2hvbGQiOnsiZGVzY3JpcHRpb24iOiJNaW5pbXVtIGNvbnNlY3V0aXZlIGZhaWx1cmVzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBmYWlsZWQgYWZ0ZXIgaGF2aW5nIHN1Y2NlZWRlZC4gRGVmYXVsdHMgdG8gMy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHRoZSBjb250YWluZXIgaGFzIHN0YXJ0ZWQgYmVmb3JlIGxpdmVuZXNzIHByb2JlcyBhcmUgaW5pdGlhdGVkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwicGVyaW9kU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IkhvdyBvZnRlbiAoaW4gc2Vjb25kcykgdG8gcGVyZm9ybSB0aGUgcHJvYmUuIERlZmF1bHQgdG8gMTAgc2Vjb25kcy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwic3VjY2Vzc1RocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgc3VjY2Vzc2VzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBzdWNjZXNzZnVsIGFmdGVyIGhhdmluZyBmYWlsZWQuIERlZmF1bHRzIHRvIDEuIE11c3QgYmUgMSBmb3IgbGl2ZW5lc3MgYW5kIHN0YXJ0dXAuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiT3B0aW9uYWwgZHVyYXRpb24gaW4gc2Vjb25kcyB0aGUgcG9kIG5lZWRzIHRvIHRlcm1pbmF0ZSBncmFjZWZ1bGx5IHVwb24gcHJvYmUgZmFpbHVyZS4gVGhlIGdyYWNlIHBlcmlvZCBpcyB0aGUgZHVyYXRpb24gaW4gc2Vjb25kcyBhZnRlciB0aGUgcHJvY2Vzc2VzIHJ1bm5pbmcgaW4gdGhlIHBvZCBhcmUgc2VudCBhIHRlcm1pbmF0aW9uIHNpZ25hbCBhbmQgdGhlIHRpbWUgd2hlbiB0aGUgcHJvY2Vzc2VzIGFyZSBmb3JjaWJseSBoYWx0ZWQgd2l0aCBhIGtpbGwgc2lnbmFsLiBTZXQgdGhpcyB2YWx1ZSBsb25nZXIgdGhhbiB0aGUgZXhwZWN0ZWQgY2xlYW51cCB0aW1lIGZvciB5b3VyIHByb2Nlc3MuIElmIHRoaXMgdmFsdWUgaXMgbmlsLCB0aGUgcG9kJ3MgdGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgd2lsbCBiZSB1c2VkLiBPdGhlcndpc2UsIHRoaXMgdmFsdWUgb3ZlcnJpZGVzIHRoZSB2YWx1ZSBwcm92aWRlZCBieSB0aGUgcG9kIHNwZWMuIFZhbHVlIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXIuIFRoZSB2YWx1ZSB6ZXJvIGluZGljYXRlcyBzdG9wIGltbWVkaWF0ZWx5IHZpYSB0aGUga2lsbCBzaWduYWwgKG5vIG9wcG9ydHVuaXR5IHRvIHNodXQgZG93bikuIFRoaXMgaXMgYSBiZXRhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyBQcm9iZVRlcm1pbmF0aW9uR3JhY2VQZXJpb2QgZmVhdHVyZSBnYXRlLiBNaW5pbXVtIHZhbHVlIGlzIDEuIHNwZWMudGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgaXMgdXNlZCBpZiB1bnNldC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInRpbWVvdXRTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgd2hpY2ggdGhlIHByb2JlIHRpbWVzIG91dC4gRGVmYXVsdHMgdG8gMSBzZWNvbmQuIE1pbmltdW0gdmFsdWUgaXMgMS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvcG9kcy9wb2QtbGlmZWN5Y2xlI2NvbnRhaW5lci1wcm9iZXMiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJjb250YWluZXIiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBkZXBsb3ltZW50IiwidHlwZSI6InN0cmluZyJ9LCJub2RlU2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik5vZGVTZWxlY3RvciBvdmVycmlkZXMgbm9kZVNlbGVjdG9yIGZvciB0aGUgZGVwbG95bWVudC4iLCJ0eXBlIjoib2JqZWN0In0sInJlYWRpbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IlJlYWRpbmVzc1Byb2JlcyBvdmVycmlkZXMgcmVhZGluZXNzIHByb2JlcyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJQcm9iZXNSZXF1aXJlbWVudHNPdmVycmlkZSBlbmFibGVzIHRoZSB1c2VyIHRvIG92ZXJyaWRlIGFueSBjb250YWluZXIncyBlbnYgdmFycy4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZmFpbHVyZVRocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkLiBEZWZhdWx0cyB0byAzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZS4gRGVmYXVsdCB0byAxMCBzZWNvbmRzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJzdWNjZXNzVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZC4gRGVmYXVsdHMgdG8gMS4gTXVzdCBiZSAxIGZvciBsaXZlbmVzcyBhbmQgc3RhcnR1cC4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBkdXJhdGlvbiBpbiBzZWNvbmRzIHRoZSBwb2QgbmVlZHMgdG8gdGVybWluYXRlIGdyYWNlZnVsbHkgdXBvbiBwcm9iZSBmYWlsdXJlLiBUaGUgZ3JhY2UgcGVyaW9kIGlzIHRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHRoZSBwcm9jZXNzZXMgcnVubmluZyBpbiB0aGUgcG9kIGFyZSBzZW50IGEgdGVybWluYXRpb24gc2lnbmFsIGFuZCB0aGUgdGltZSB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIGZvcmNpYmx5IGhhbHRlZCB3aXRoIGEga2lsbCBzaWduYWwuIFNldCB0aGlzIHZhbHVlIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBjbGVhbnVwIHRpbWUgZm9yIHlvdXIgcHJvY2Vzcy4gSWYgdGhpcyB2YWx1ZSBpcyBuaWwsIHRoZSBwb2QncyB0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgdGhpcyB2YWx1ZSBvdmVycmlkZXMgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBwb2Qgc3BlYy4gVmFsdWUgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlci4gVGhlIHZhbHVlIHplcm8gaW5kaWNhdGVzIHN0b3AgaW1tZWRpYXRlbHkgdmlhIHRoZSBraWxsIHNpZ25hbCAobm8gb3Bwb3J0dW5pdHkgdG8gc2h1dCBkb3duKS4gVGhpcyBpcyBhIGJldGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIFByb2JlVGVybWluYXRpb25HcmFjZVBlcmlvZCBmZWF0dXJlIGdhdGUuIE1pbmltdW0gdmFsdWUgaXMgMS4gc3BlYy50ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyBpcyB1c2VkIGlmIHVuc2V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidGltZW91dFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0LiBEZWZhdWx0cyB0byAxIHNlY29uZC4gTWluaW11bSB2YWx1ZSBpcyAxLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIGNvbnRhaW5lcidzIHJlc291cmNlcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBwb2QgdGhpcyBSZXNvdXJjZSBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHJlcXVlc3RzIGFuZCBsaW1pdHMgZm9yIGEgY2VydGFpbiBjb250YWluZXIgYmFzZWQgb24gdGhlIG5hbWUuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIiwidHlwZSI6InN0cmluZyJ9LCJsaW1pdHMiOnsicHJvcGVydGllcyI6eyJjcHUiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9LCJtZW1vcnkiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJwcm9wZXJ0aWVzIjp7ImNwdSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn0sIm1lbW9yeSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ0b2xlcmF0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHRvbGVyYXRpb25zLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFRvbGVyYXRpb24gaXMgYXR0YWNoZWQgdG8gdG9sZXJhdGVzIGFueSB0YWludCB0aGF0IG1hdGNoZXMgdGhlIHRyaXBsZSBcdTAwM2NrZXksdmFsdWUsZWZmZWN0XHUwMDNlIHVzaW5nIHRoZSBtYXRjaGluZyBvcGVyYXRvciBcdTAwM2NvcGVyYXRvclx1MDAzZS4iLCJwcm9wZXJ0aWVzIjp7ImVmZmVjdCI6eyJkZXNjcmlwdGlvbiI6IkVmZmVjdCBpbmRpY2F0ZXMgdGhlIHRhaW50IGVmZmVjdCB0byBtYXRjaC4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGVmZmVjdHMuIFdoZW4gc3BlY2lmaWVkLCBhbGxvd2VkIHZhbHVlcyBhcmUgTm9TY2hlZHVsZSwgUHJlZmVyTm9TY2hlZHVsZSBhbmQgTm9FeGVjdXRlLiIsInR5cGUiOiJzdHJpbmcifSwia2V5Ijp7ImRlc2NyaXB0aW9uIjoiS2V5IGlzIHRoZSB0YWludCBrZXkgdGhhdCB0aGUgdG9sZXJhdGlvbiBhcHBsaWVzIHRvLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQga2V5cy4gSWYgdGhlIGtleSBpcyBlbXB0eSwgb3BlcmF0b3IgbXVzdCBiZSBFeGlzdHM7IHRoaXMgY29tYmluYXRpb24gbWVhbnMgdG8gbWF0Y2ggYWxsIHZhbHVlcyBhbmQgYWxsIGtleXMuIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gdGhlIHZhbHVlLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEV4aXN0cyBhbmQgRXF1YWwuIERlZmF1bHRzIHRvIEVxdWFsLiBFeGlzdHMgaXMgZXF1aXZhbGVudCB0byB3aWxkY2FyZCBmb3IgdmFsdWUsIHNvIHRoYXQgYSBwb2QgY2FuIHRvbGVyYXRlIGFsbCB0YWludHMgb2YgYSBwYXJ0aWN1bGFyIGNhdGVnb3J5LiIsInR5cGUiOiJzdHJpbmcifSwidG9sZXJhdGlvblNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJUb2xlcmF0aW9uU2Vjb25kcyByZXByZXNlbnRzIHRoZSBwZXJpb2Qgb2YgdGltZSB0aGUgdG9sZXJhdGlvbiAod2hpY2ggbXVzdCBiZSBvZiBlZmZlY3QgTm9FeGVjdXRlLCBvdGhlcndpc2UgdGhpcyBmaWVsZCBpcyBpZ25vcmVkKSB0b2xlcmF0ZXMgdGhlIHRhaW50LiBCeSBkZWZhdWx0LCBpdCBpcyBub3Qgc2V0LCB3aGljaCBtZWFucyB0b2xlcmF0ZSB0aGUgdGFpbnQgZm9yZXZlciAoZG8gbm90IGV2aWN0KS4gWmVybyBhbmQgbmVnYXRpdmUgdmFsdWVzIHdpbGwgYmUgdHJlYXRlZCBhcyAwIChldmljdCBpbW1lZGlhdGVseSkgYnkgdGhlIHN5c3RlbS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHRhaW50IHZhbHVlIHRoZSB0b2xlcmF0aW9uIG1hdGNoZXMgdG8uIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMsIHRoZSB2YWx1ZSBzaG91bGQgYmUgZW1wdHksIG90aGVyd2lzZSBqdXN0IGEgcmVndWxhciBzdHJpbmcuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJjaGFubmVsIiwic291cmNlIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiS25hdGl2ZUthZmthU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIEtuYXRpdmVLYWZrYSAoZnJvbSB0aGUgY29udHJvbGxlcikuIiwicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgaXMgYWRkaXRpb25hbCBTdGF0dXMgZmllbGRzIGZvciB0aGUgUmVzb3VyY2UgdG8gc2F2ZSBzb21lIGFkZGl0aW9uYWwgU3RhdGUgYXMgd2VsbCBhcyBjb252ZXkgbW9yZSBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4gVGhpcyBpcyByb3VnaGx5IGFraW4gdG8gQW5ub3RhdGlvbnMgb24gYW55IGs4cyByZXNvdXJjZSwganVzdCB0aGUgcmVjb25jaWxlciBjb252ZXlpbmcgcmljaGVyIGluZm9ybWF0aW9uIG91dHdhcmRzLiIsInR5cGUiOiJvYmplY3QifSwiY29uZGl0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkNvbmRpdGlvbnMgdGhlIGxhdGVzdCBhdmFpbGFibGUgb2JzZXJ2YXRpb25zIG9mIGEgcmVzb3VyY2UncyBjdXJyZW50IHN0YXRlLiArcGF0Y2hNZXJnZUtleT10eXBlICtwYXRjaFN0cmF0ZWd5PW1lcmdlIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJsYXN0VHJhbnNpdGlvblRpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VHJhbnNpdGlvblRpbWUgaXMgdGhlIGxhc3QgdGltZSB0aGUgY29uZGl0aW9uIHRyYW5zaXRpb25lZCBmcm9tIG9uZSBzdGF0dXMgdG8gYW5vdGhlci4gV2UgdXNlIFZvbGF0aWxlVGltZSBpbiBwbGFjZSBvZiBtZXRhdjEuVGltZSB0byBleGNsdWRlIHRoaXMgZnJvbSBjcmVhdGluZyBlcXVhbGl0eS5TZW1hbnRpYyBkaWZmZXJlbmNlcyAoYWxsIG90aGVyIHRoaW5ncyBoZWxkIGNvbnN0YW50KS4iLCJ0eXBlIjoic3RyaW5nIn0sIm1lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJBIGh1bWFuIHJlYWRhYmxlIG1lc3NhZ2UgaW5kaWNhdGluZyBkZXRhaWxzIGFib3V0IHRoZSB0cmFuc2l0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwicmVhc29uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHJlYXNvbiBmb3IgdGhlIGNvbmRpdGlvbidzIGxhc3QgdHJhbnNpdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInNldmVyaXR5Ijp7ImRlc2NyaXB0aW9uIjoiU2V2ZXJpdHkgd2l0aCB3aGljaCB0byB0cmVhdCBmYWlsdXJlcyBvZiB0aGlzIHR5cGUgb2YgY29uZGl0aW9uLiBXaGVuIHRoaXMgaXMgbm90IHNwZWNpZmllZCwgaXQgZGVmYXVsdHMgdG8gRXJyb3IuIiwidHlwZSI6InN0cmluZyJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJTdGF0dXMgb2YgdGhlIGNvbmRpdGlvbiwgb25lIG9mIFRydWUsIEZhbHNlLCBVbmtub3duLiArcmVxdWlyZWQiLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJUeXBlIG9mIGNvbmRpdGlvbi4gK3JlcXVpcmVkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSIsInN0YXR1cyJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJvYnNlcnZlZEdlbmVyYXRpb24iOnsiZGVzY3JpcHRpb24iOiJPYnNlcnZlZEdlbmVyYXRpb24gaXMgdGhlICdHZW5lcmF0aW9uJyBvZiB0aGUgU2VydmljZSB0aGF0IHdhcyBsYXN0IHByb2Nlc3NlZCBieSB0aGUgY29udHJvbGxlci4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgdmVyc2lvbiBvZiB0aGUgaW5zdGFsbGVkIHJlbGVhc2UiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwib3BlcmF0b3Iua25hdGl2ZS5kZXYvdjFiZXRhMVwiLFxuICAgIFwia2luZFwiOiBcIktuYXRpdmVTZXJ2aW5nXCIsXG4gICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICBcIm5hbWVcIjogXCJrbmF0aXZlLXNlcnZpbmdcIlxuICAgIH0sXG4gICAgXCJzcGVjXCI6IHtcbiAgICB9XG4gIH0sXG4gIHtcbiAgICBcImFwaVZlcnNpb25cIjogXCJvcGVyYXRvci5rbmF0aXZlLmRldi92MWJldGExXCIsXG4gICAgXCJraW5kXCI6IFwiS25hdGl2ZUV2ZW50aW5nXCIsXG4gICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICBcIm5hbWVcIjogXCJrbmF0aXZlLWV2ZW50aW5nXCJcbiAgICB9LFxuICAgIFwic3BlY1wiOiB7XG4gICAgfVxuICB9LFxuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwib3BlcmF0b3Iuc2VydmVybGVzcy5vcGVuc2hpZnQuaW8vdjFhbHBoYTFcIixcbiAgICBcImtpbmRcIjogXCJLbmF0aXZlS2Fma2FcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImtuYXRpdmUta2Fma2FcIlxuICAgIH0sXG4gICAgXCJzcGVjXCI6IHtcbiAgICAgIFwiYnJva2VyXCI6IHtcbiAgICAgICAgXCJlbmFibGVkXCI6IGZhbHNlLFxuICAgICAgICBcImRlZmF1bHRDb25maWdcIjoge1xuICAgICAgICAgIFwibnVtUGFydGl0aW9uc1wiOiAxMCxcbiAgICAgICAgICBcInJlcGxpY2F0aW9uRmFjdG9yXCI6IDMsXG4gICAgICAgICAgXCJib290c3RyYXBTZXJ2ZXJzXCI6IFwiUkVQTEFDRV9XSVRIX0NPTU1BX1NFUEFSQVRFRF9LQUZLQV9CT09UU1RSQVBfU0VSVkVSU1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInNvdXJjZVwiOiB7XG4gICAgICAgIFwiZW5hYmxlZFwiOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwic2lua1wiOiB7XG4gICAgICAgIFwiZW5hYmxlZFwiOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiY2hhbm5lbFwiOiB7XG4gICAgICAgIFwiZW5hYmxlZFwiOiBmYWxzZSxcbiAgICAgICAgXCJib290c3RyYXBTZXJ2ZXJzXCI6IFwiUkVQTEFDRV9XSVRIX0NPTU1BX1NFUEFSQVRFRF9LQUZLQV9CT09UU1RSQVBfU0VSVkVSU1wiXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiRnVsbCBMaWZlY3ljbGUiLCJjYXRlZ29yaWVzIjoiTmV0d29ya2luZyxJbnRlZ3JhdGlvbiBcdTAwMjYgRGVsaXZlcnksQ2xvdWQgUHJvdmlkZXIsRGV2ZWxvcGVyIFRvb2xzIiwiY2VydGlmaWVkIjoiZmFsc2UiLCJjcmVhdGVkQXQiOiIyMDIwLTA0LTIwVDE3OjAwOjAwWiIsImRlc2NyaXB0aW9uIjoiRGVwbG95IGFuZCBtYW5hZ2UgZXZlbnQtZHJpdmVuIHNlcnZlcmxlc3MgYXBwbGljYXRpb25zIGFuZCBmdW5jdGlvbnMgdXNpbmcgS25hdGl2ZS4iLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2NuZiI6ImZhbHNlIiwiZmVhdHVyZXMub3BlcmF0b3JzLm9wZW5zaGlmdC5pby9jbmkiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vY3NpIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2Rpc2Nvbm5lY3RlZCI6InRydWUiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2ZpcHMtY29tcGxpYW50IjoidHJ1ZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vcHJveHktYXdhcmUiOiJ0cnVlIiwiZmVhdHVyZXMub3BlcmF0b3JzLm9wZW5zaGlmdC5pby90bHMtcHJvZmlsZXMiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1hd3MiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1henVyZSI6ImZhbHNlIiwiZmVhdHVyZXMub3BlcmF0b3JzLm9wZW5zaGlmdC5pby90b2tlbi1hdXRoLWdjcCI6ImZhbHNlIiwib2xtLnNraXBSYW5nZSI6Ilx1MDAzZT0xLjM2LjAgXHUwMDNjMS4zNi4xIiwib3BlcmF0b3JmcmFtZXdvcmsuaW8vc3VnZ2VzdGVkLW5hbWVzcGFjZSI6Im9wZW5zaGlmdC1zZXJ2ZXJsZXNzIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9tdXN0LWdhdGhlci1pbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL3NlcnZlcmxlc3MtbXVzdC1nYXRoZXItcmhlbDhAc2hhMjU2OjU4ZjNlMTgwNmZlY2RiNGQwMzA2NDZjY2VmZDFhMTQ3YmZmZWYyMWVlZTEyMzM0ODdjY2RhYjMzMGU4ZDRlMWQiLCJvcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3ZhbGlkLXN1YnNjcmlwdGlvbiI6IltcIk9wZW5TaGlmdCBDb250YWluZXIgUGxhdGZvcm1cIiwgXCJPcGVuU2hpZnQgUGxhdGZvcm0gUGx1c1wiXSIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vb3BlbnNoaWZ0LWtuYXRpdmUvc2VydmVybGVzcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sImxhYmVscyI6eyJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLmFtZDY0Ijoic3VwcG9ydGVkIiwib3BlcmF0b3JmcmFtZXdvcmsuaW8vYXJjaC5hcm02NCI6InN1cHBvcnRlZCIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL2FyY2gucHBjNjRsZSI6InN1cHBvcnRlZCIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL2FyY2guczM5MHgiOiJzdXBwb3J0ZWQifSwibmFtZSI6InNlcnZlcmxlc3Mtb3BlcmF0b3IudjEuMzYuMSIsIm5hbWVzcGFjZSI6InBsYWNlaG9sZGVyIn0sInNwZWMiOnsiY3VzdG9tcmVzb3VyY2VkZWZpbml0aW9ucyI6eyJvd25lZCI6W3siZGVzY3JpcHRpb24iOiJBIHBsYXRmb3JtIGZvciBzdHJlYW1saW5lZCBhcHBsaWNhdGlvbiBkZXBsb3ltZW50LCB0cmFmZmljLWJhc2VkIGF1dG8tc2NhbGluZyBmcm9tIHplcm8gdG8gTiwgYW5kIHRyYWZmaWMtc3BsaXQgcm9sbG91dHMiLCJkaXNwbGF5TmFtZSI6IktuYXRpdmUgU2VydmluZyIsImtpbmQiOiJLbmF0aXZlU2VydmluZyIsIm5hbWUiOiJrbmF0aXZlc2VydmluZ3Mub3BlcmF0b3Iua25hdGl2ZS5kZXYiLCJzdGF0dXNEZXNjcmlwdG9ycyI6W3siZGVzY3JpcHRpb24iOiJUaGUgdmVyc2lvbiBvZiBLbmF0aXZlIFNlcnZpbmcgaW5zdGFsbGVkIiwiZGlzcGxheU5hbWUiOiJWZXJzaW9uIiwicGF0aCI6InZlcnNpb24ifSx7ImRlc2NyaXB0aW9uIjoiQ29uZGl0aW9ucyBvZiBLbmF0aXZlIFNlcnZpbmcgaW5zdGFsbGVkIiwiZGlzcGxheU5hbWUiOiJDb25kaXRpb25zIiwicGF0aCI6ImNvbmRpdGlvbnMiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjppby5rdWJlcm5ldGVzLmNvbmRpdGlvbnMiXX1dLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9LHsiZGVzY3JpcHRpb24iOiJBbiBldmVudC1kcml2ZW4gYXBwbGljYXRpb24gcGxhdGZvcm0gdGhhdCBsZXZlcmFnZXMgQ2xvdWRFdmVudHMgd2l0aCBhIHNpbXBsZSBIVFRQIGludGVyZmFjZSIsImRpc3BsYXlOYW1lIjoiS25hdGl2ZSBFdmVudGluZyIsImtpbmQiOiJLbmF0aXZlRXZlbnRpbmciLCJuYW1lIjoia25hdGl2ZWV2ZW50aW5ncy5vcGVyYXRvci5rbmF0aXZlLmRldiIsInN0YXR1c0Rlc2NyaXB0b3JzIjpbeyJkZXNjcmlwdGlvbiI6IlRoZSB2ZXJzaW9uIG9mIEtuYXRpdmUgRXZlbnRpbmcgaW5zdGFsbGVkIiwiZGlzcGxheU5hbWUiOiJWZXJzaW9uIiwicGF0aCI6InZlcnNpb24ifV0sInZlcnNpb24iOiJ2MWJldGExIn0seyJkZXNjcmlwdGlvbiI6IkFuIGV4dGVuc2lvbiB0byBLbmF0aXZlIEV2ZW50aW5nLCBtZXJnaW5nIEhUVFAgYWNjZXNzaWJpbGl0eSB3aXRoIEFwYWNoZSBLYWZrYSdzIHByb3ZlbiBlZmZpY2llbmN5IGFuZCByZWxpYWJpbGl0eSIsImRpc3BsYXlOYW1lIjoiS25hdGl2ZSBLYWZrYSIsImtpbmQiOiJLbmF0aXZlS2Fma2EiLCJuYW1lIjoia25hdGl2ZWthZmthcy5vcGVyYXRvci5zZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pbyIsInZlcnNpb24iOiJ2MWFscGhhMSJ9XX0sImRlc2NyaXB0aW9uIjoiVGhlIFJlZCBIYXQgT3BlblNoaWZ0IFNlcnZlcmxlc3Mgb3BlcmF0b3IgcHJvdmlkZXMgYSBjb2xsZWN0aW9uIG9mIEFQSXMgdGhhdFxuZW5hYmxlcyBjb250YWluZXJzLCBtaWNyb3NlcnZpY2VzIGFuZCBmdW5jdGlvbnMgdG8gcnVuIFwic2VydmVybGVzc1wiLlxuU2VydmVybGVzcyBhcHBsaWNhdGlvbnMgY2FuIHNjYWxlIHVwIGFuZCBkb3duICh0byB6ZXJvKSBvbiBkZW1hbmQgYW5kIGJlIHRyaWdnZXJlZCBieSBhXG5udW1iZXIgb2YgZXZlbnQgc291cmNlcy4gT3BlblNoaWZ0IFNlcnZlcmxlc3MgaW50ZWdyYXRlcyB3aXRoIGEgbnVtYmVyIG9mXG5wbGF0Zm9ybSBzZXJ2aWNlcywgc3VjaCBhcyBNb25pdG9yaW5nIGFuZCBpdCBpcyBiYXNlZCBvbiB0aGUgb3Blblxuc291cmNlIHByb2plY3QgS25hdGl2ZS5cblxuIyBQcmVyZXF1aXNpdGVzXG5LbmF0aXZlIFNlcnZpbmcgKGFuZCBLbmF0aXZlIEV2ZW50aW5nIHJlc3BlY3RpdmVseSkgY2FuIG9ubHkgYmUgaW5zdGFsbGVkIGludG8gdGhlXG5ga25hdGl2ZS1zZXJ2aW5nYCAoYGtuYXRpdmUtZXZlbnRpbmdgKSBuYW1lc3BhY2UuIFRoZXNlIG5hbWVzcGFjZXMgd2lsbCBiZVxuYXV0b21hdGljYWxseSBjcmVhdGVkIHdoZW4gaW5zdGFsbGluZyB0aGUgb3BlcmF0b3IuXG5cblRoZSBjb21wb25lbnRzIHByb3ZpZGVkIHdpdGggdGhlIE9wZW5TaGlmdCBTZXJ2ZXJsZXNzIG9wZXJhdG9yIHJlcXVpcmUgbWluaW11bSBjbHVzdGVyIHNpemVzIG9uXG5PcGVuU2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkb2N1bWVudGF0aW9uIG9uIFtHZXR0aW5nIHN0YXJ0ZWRcbndpdGggT3BlblNoaWZ0IFNlcnZlcmxlc3NdKGh0dHBzOi8vZG9jcy5yZWRoYXQuY29tL2VuL2RvY3VtZW50YXRpb24vcmVkX2hhdF9vcGVuc2hpZnRfc2VydmVybGVzcy8xLjM2L2h0bWwvc2VydmluZy9nZXR0aW5nLXN0YXJ0ZWQtd2l0aC1rbmF0aXZlLXNlcnZpbmcjc2VydmVybGVzcy1hcHBsaWNhdGlvbnMpLlxuXG4jIFN1cHBvcnRlZCBGZWF0dXJlc1xuLSAqKkVhc3kgdG8gZ2V0IHN0YXJ0ZWQ6KiogUHJvdmlkZXMgYSBzaW1wbGlmaWVkIGRldmVsb3BlciBleHBlcmllbmNlIHRvIGRlcGxveVxuICBhbmQgcnVuIGNsb3VkIG5hdGl2ZSBhcHBsaWNhdGlvbnMgb24gS3ViZXJuZXRlcywgcHJvdmlkaW5nIHBvd2VyZnVsXG4gIGFic3RyYWN0aW9ucy5cbi0gKipJbW11dGFibGUgUmV2aXNpb25zOioqIERlcGxveSBuZXcgZmVhdHVyZXMgcGVyZm9ybWluZyBjYW5hcnksIEEvQiBvclxuICBibHVlLWdyZWVuIHRlc3Rpbmcgd2l0aCBncmFkdWFsIHRyYWZmaWMgcm9sbG91dCBmb2xsb3dpbmcgYmVzdCBwcmFjdGljZXMuXG4tICoqVXNlIGFueSBwcm9ncmFtbWluZyBsYW5ndWFnZSBvciBydW50aW1lIG9mIGNob2ljZToqKiBGcm9tIEphdmEsIFB5dGhvbiwgR29cbiAgYW5kIEphdmFTY3JpcHQgdG8gUXVhcmt1cywgU3ByaW5nQm9vdCBvciBOb2RlLmpzLlxuLSAqKkF1dG9tYXRpYyBzY2FsaW5nOioqIFJlbW92ZXMgdGhlIHJlcXVpcmVtZW50IHRvIGNvbmZpZ3VyZSBudW1iZXJzIG9mIHJlcGxpY2FzXG4gIG9yIGlkbGluZyBiZWhhdmlvci4gQXBwbGljYXRpb25zIGF1dG9tYXRpY2FsbHkgc2NhbGUgdG8gemVybyB3aGVuIG5vdCBpbiB1c2UsXG4gIG9yIHNjYWxlIHVwIHRvIG1lZXQgZGVtYW5kLCB3aXRoIGJ1aWx0IGluIHJlbGlhYmlsaXR5IGFuZCBmYXVsdCB0b2xlcmFuY2UuXG4tICoqRXZlbnQgRHJpdmVuIEFwcGxpY2F0aW9uczoqKiBZb3UgY2FuIGJ1aWxkIGxvb3NlbHkgY291cGxlZCwgZGlzdHJpYnV0ZWQgYXBwbGljYXRpb25zXG4gIHRoYXQgY2FuIGJlIGNvbm5lY3RlZCB0byBhIHZhcmlldHkgb2YgZWl0aGVyIGJ1aWx0IGluIG9yIHRoaXJkIHBhcnR5IGV2ZW50IHNvdXJjZXMsXG4gIHBvd2VyZWQgYnkgb3BlcmF0b3JzLlxuLSAqKlJlYWR5IGZvciB0aGUgaHlicmlkIGNsb3VkOioqIFByb3ZpZGVzIHRydWUsIHBvcnRhYmxlIHNlcnZlcmxlc3MgZnVuY3Rpb25hbGl0eSxcbiAgdGhhdCBjYW4gcnVuIGFueXdoZXJlIE9wZW5TaGlmdCBDb250YWluZXIgUGxhdGZvcm0gcnVucy4gWW91IGNhbiBsZXZlcmFnZSBkYXRhXG4gIGxvY2FsaXR5IGFuZCBTYWFTIGFzIHlvdSBuZWVkIGl0LlxuXG4jIENvbXBvbmVudHMgXHUwMDI2IEFQSXNcblRoaXMgb3BlcmF0b3IgcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOlxuXG4jIyBLbmF0aXZlIFNlcnZpbmdcbktuYXRpdmUgU2VydmluZyBidWlsZHMgb24gS3ViZXJuZXRlcyB0byBzdXBwb3J0IGRlcGxveWluZyBhbmQgc2VydmluZyBvZiBhcHBsaWNhdGlvbnMgYW5kIGZ1bmN0aW9ucyBhcyBzZXJ2ZXJsZXNzIGNvbnRhaW5lcnMuXG5TZXJ2aW5nIHNpbXBsaWZpZXMgdGhlIGFwcGxpY2F0aW9uIGRlcGxveW1lbnQsIGR5bmFtaWNhbGx5IHNjYWxlcyBiYXNlZCBvbiBpbiBpbmNvbWluZyB0cmFmZmljIGFuZCBzdXBwb3J0cyBjdXN0b20gcm9sbG91dCBzdHJhdGVnaWVzIHdpdGggdHJhZmZpYyBzcGxpdHRpbmcuXG5PdGhlciBmZWF0dXJlcyBpbmNsdWRlOlxuLSBTaW1wbGlmaWVkIGRlcGxveW1lbnQgb2Ygc2VydmVybGVzcyBjb250YWluZXJzXG4tIFRyYWZmaWMtYmFzZWQgYXV0by1zY2FsaW5nLCBpbmNsdWRpbmcgc2NhbGUtdG8temVyb1xuLSBSb3V0aW5nIGFuZCBuZXR3b3JrIHByb2dyYW1taW5nXG4tIFBvaW50LWluLXRpbWUgYXBwbGljYXRpb24gc25hcHNob3RzIGFuZCB0aGVpciBjb25maWd1cmF0aW9uc1xuXG4jIyBLbmF0aXZlIEV2ZW50aW5nXG5LbmF0aXZlIEV2ZW50aW5nIHByb3ZpZGVzIGEgcGxhdGZvcm0gdGhhdCBvZmZlcnMgY29tcG9zYWJsZSBwcmltaXRpdmVzIHRvIGVuYWJsZSBsYXRlLWJpbmRpbmcgZXZlbnQgc291cmNlcyBhbmRcbmV2ZW50IGNvbnN1bWVycy5cbktuYXRpdmUgRXZlbnRpbmcgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBhcmNoaXRlY3R1cmFsIGNsb3VkLW5hdGl2ZSBjb25jZXB0czpcblxuLSBTZXJ2aWNlcyBhcmUgbG9vc2VseSBjb3VwbGVkIGR1cmluZyBkZXZlbG9wbWVudCBhbmQgZGVwbG95ZWQgaW5kZXBlbmRlbnRseSB0byBwcm9kdWN0aW9uXG4tIEEgcHJvZHVjZXIgY2FuIGdlbmVyYXRlIGV2ZW50cyBiZWZvcmUgYSBjb25zdW1lciBpcyBsaXN0ZW5pbmcsIGFuZCBhIGNvbnN1bWVyIGNhbiBleHByZXNzIGFuIGludGVyZXN0IGluIGFuIGV2ZW50IG9yIGNsYXNzIG9mIGV2ZW50cyB0aGF0IGFyZSBub3QgeWV0IGJlaW5nIHByb2R1Y2VkLlxuLSBTZXJ2aWNlcyBjYW4gYmUgY29ubmVjdGVkIHRvIGNyZWF0ZSBuZXcgYXBwbGljYXRpb25zIHdpdGhvdXQgbW9kaWZ5aW5nIHByb2R1Y2VyIG9yIGNvbnN1bWVyLCBhbmQgd2l0aCB0aGUgYWJpbGl0eSB0byBzZWxlY3QgYSBzcGVjaWZpYyBzdWJzZXQgb2YgZXZlbnRzIGZyb20gYSBwYXJ0aWN1bGFyIHByb2R1Y2VyLlxuXG4jIyBLbmF0aXZlIEZ1bmN0aW9uc1xuS25hdGl2ZSBGdW5jdGlvbnMgYWxsb3dzIGRldmVsb3BlcnMgdG8gd3JpdGUgZnVuY3Rpb25zIHRoYXQgbGV0IHRoZW0gZm9jdXMgb24gYnVzaW5lc3MgbG9naWMuXG5UaGVzZSBmdW5jdGlvbnMgYXJlIGRlcGxveWVkIGFzIEtuYXRpdmUgU2VydmljZXMgYW5kIHRha2UgYWR2YW50YWdlIG9mIEtuYXRpdmUgU2VydmluZyBhbmQgRXZlbnRpbmcuXG5LbmF0aXZlIEZ1bmN0aW9ucyBicmluZyBncmVhdGVyIGVmZmljaWVuY3ksIG1vcmUgc2NhbGFiaWxpdHkgYW5kIGZhc3RlciBkZXZlbG9wbWVudCB0byBmYWNpbGl0YXRlIHJhcGlkIGdvLXRvLW1hcmtldC5cblxuT3RoZXIgZmVhdHVyZXMgaW5jbHVkZTpcbi0gQnVpbGRwYWNrc1xuLSBNdWx0aXBsZSBydW50aW1lcywgaW5jbHVkaW5nIE5vZGUuanMsIFF1YXJrdXMgYW5kIEdvXG4tIExvY2FsIGRldmVsb3BlciBleHBlcmllbmNlIHRocm91Z2ggdGhlIGtuIENMSVxuLSBQcm9qZWN0IHRlbXBsYXRlc1xuLSBTdXBwb3J0IGZvciByZWNlaXZpbmcgQ2xvdWRFdmVudHMgYW5kIHBsYWluIEhUVFAgcmVxdWVzdHNcblxuIyMgS25hdGl2ZSBDTEkgYGtuYFxuVGhlIEtuYXRpdmUgY2xpZW50IGBrbmAgYWxsb3dzIHlvdSB0byBjcmVhdGUgS25hdGl2ZSByZXNvdXJjZXMgZnJvbSB0aGUgY29tbWFuZCBsaW5lIG9yIGZyb20gd2l0aGluXG5TaGVsbCBzY3JpcHRzLlxuV2l0aCBpdHMgZXh0ZW5zaXZlIGhlbHAgcGFnZXMgYW5kIGF1dG9jb21wbGV0aW9uIHN1cHBvcnQsIGl0IGZyZWVzIHlvdSBmcm9tIG1lbW9yaXppbmcgdGhlIGRldGFpbGVkIHN0cnVjdHVyZSBvZiB0aGUgS25hdGl2ZSByZXNvdXJjZSBzY2hlbWFzLlxuXG5ga25gIG9mZmVycyB5b3U6XG4tIEZ1bGwgc3VwcG9ydCBmb3IgbWFuYWdpbmcgYWxsIGZlYXR1cmVzIG9mIEtuYXRpdmUgU2VydmluZzogU2VydmljZXMsIFJldmlzaW9ucyBhbmQgUm91dGVzXG4tIFN1cHBvcnQgZm9yIG1hbmFnaW5nIEtuYXRpdmUgRXZlbnRpbmcgZW50aXRpZXM6IFNvdXJjZXMsIEJyb2tlcnMsIFRyaWdnZXJzLCBDaGFubmVscyBhbmQgU3Vic2NyaXB0aW9uc1xuLSBBIGt1YmVjdGwtbGlrZSBwbHVnaW4gYXJjaGl0ZWN0dXJlIHRvIGV4dGVuZCB0aGUgYnVpbHQtaW4gZnVuY3Rpb25hbGl0eVxuLSBFYXN5IGludGVncmF0aW9uIG9mIEtuYXRpdmUgaW50byBUZWt0b24gcGlwZWxpbmVzIGJ5IHVzaW5nIGBrbmAgaW4gYSBUZWt0b24gdGFza1xuLSBDcmVhdGUsIGJ1aWxkIGFuZCBkZXBsb3kgS25hdGl2ZSBGdW5jdGlvbnMgZm9yIG11bHRpcGxlIHJ1bnRpbWVzLCBpbmNsdWRpbmcgTm9kZS5qcywgUXVhcmt1cywgYW5kIEdvXG5cbiMgRnVydGhlciBJbmZvcm1hdGlvblxuRm9yIGRvY3VtZW50YXRpb24gb24gT3BlblNoaWZ0IFNlcnZlcmxlc3MsIHNlZTpcbi0gW0luc3RhbGxhdGlvblxuR3VpZGVdKGh0dHBzOi8vZG9jcy5yZWRoYXQuY29tL2VuL2RvY3VtZW50YXRpb24vcmVkX2hhdF9vcGVuc2hpZnRfc2VydmVybGVzcy8xLjM2L2h0bWwvaW5zdGFsbGluZ19vcGVuc2hpZnRfc2VydmVybGVzcy9pbmRleClcbi0gW0RldmVsb3AgU2VydmVybGVzcyBBcHBsaWNhdGlvbnNdKGh0dHBzOi8vZG9jcy5yZWRoYXQuY29tL2VuL2RvY3VtZW50YXRpb24vcmVkX2hhdF9vcGVuc2hpZnRfc2VydmVybGVzcy8xLjM2L2h0bWwvc2VydmluZy9nZXR0aW5nLXN0YXJ0ZWQtd2l0aC1rbmF0aXZlLXNlcnZpbmcjc2VydmVybGVzcy1hcHBsaWNhdGlvbnMpIiwiZGlzcGxheU5hbWUiOiJSZWQgSGF0IE9wZW5TaGlmdCBTZXJ2ZXJsZXNzIiwiaWNvbiI6W3siYmFzZTY0ZGF0YSI6IlBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXpPQ0lnYUdWcFoyaDBQU0l6T0NJZ2RtbGxkMEp2ZUQwaU1DQXdJRE00SURNNElqNDhaR1ZtY3o0OGMzUjViR1UrTG1GN1ptbHNiRG9qWm1abU8zMHVZbnRtYVd4c09pTmxNREE3ZlR3dmMzUjViR1UrUEM5a1pXWnpQanh3WVhSb0lHTnNZWE56UFNKaElpQmtQU0pOTWpnc01VZ3hNR0U1TERrc01Dd3dMREF0T1N3NVZqSTRZVGtzT1N3d0xEQXNNQ3c1TERsSU1qaGhPU3c1TERBc01Dd3dMRGt0T1ZZeE1HRTVMRGtzTUN3d0xEQXRPUzA1V2lJdlBqeHdZWFJvSUdROUlrMHlPQ3d5TGpJMVFUY3VOelU0Tnl3M0xqYzFPRGNzTUN3d0xERXNNelV1TnpVc01UQldNamhCTnk0M05UZzNMRGN1TnpVNE55d3dMREFzTVN3eU9Dd3pOUzQzTlVneE1FRTNMamMxT0Rjc055NDNOVGczTERBc01Dd3hMREl1TWpVc01qaFdNVEJCTnk0M05UZzNMRGN1TnpVNE55d3dMREFzTVN3eE1Dd3lMakkxU0RJNFRUSTRMREZJTVRCaE9TdzVMREFzTUN3d0xUa3NPVll5T0dFNUxEa3NNQ3d3TERBc09TdzVTREk0WVRrc09Td3dMREFzTUN3NUxUbFdNVEJoT1N3NUxEQXNNQ3d3TFRrdE9Wb2lMejQ4Y0dGMGFDQmpiR0Z6Y3owaVlpSWdaRDBpVFRFMExESXpMalEzTmpaSU1UQmhMall5TlRNdU5qSTFNeXd3TERBc01TMHVOakkxTFM0Mk1qVjJMVFJoTGpZeU5USXVOakkxTWl3d0xEQXNNU3d1TmpJMUxTNDJNalZvTkdFdU5qSTFNaTQyTWpVeUxEQXNNQ3d4TEM0Mk1qVXVOakkxZGpSQkxqWXlOVE11TmpJMU15d3dMREFzTVN3eE5Dd3lNeTQwTnpZMldtMHRNeTR6TnpVdE1TNHlOV2d5TGpjMWRpMHlMamMxYUMweUxqYzFXaUl2UGp4d1lYUm9JR05zWVhOelBTSmlJaUJrUFNKTk1qRXNNak11TkRjMk5rZ3hOMkV1TmpJMU15NDJNalV6TERBc01Dd3hMUzQyTWpVdExqWXlOWFl0TkdFdU5qSTFNaTQyTWpVeUxEQXNNQ3d4TEM0Mk1qVXRMall5TldnMFlTNDJNalV5TGpZeU5USXNNQ3d3TERFc0xqWXlOUzQyTWpWMk5FRXVOakkxTXk0Mk1qVXpMREFzTUN3eExESXhMREl6TGpRM05qWmFiUzB6TGpNM05TMHhMakkxYURJdU56VjJMVEl1TnpWb0xUSXVOelZhSWk4K1BIQmhkR2dnWTJ4aGMzTTlJbUlpSUdROUlrMHhOeTQxTERFMkxqUTNOalpvTFRSaExqWXlOVE11TmpJMU15d3dMREFzTVMwdU5qSTFMUzQyTWpWMkxUUmhMall5TlRJdU5qSTFNaXd3TERBc01Td3VOakkxTFM0Mk1qVm9OR0V1TmpJMU1pNDJNalV5TERBc01Dd3hMQzQyTWpVdU5qSTFkalJCTGpZeU5UTXVOakkxTXl3d0xEQXNNU3d4Tnk0MUxERTJMalEzTmpaYWJTMHpMak0zTlMweExqSTFhREl1TnpWMkxUSXVOelZvTFRJdU56VmFJaTgrUEhCaGRHZ2dZMnhoYzNNOUltSWlJR1E5SWsweU5DNDFMREUyTGpRM05qWm9MVFJoTGpZeU5UTXVOakkxTXl3d0xEQXNNUzB1TmpJMUxTNDJNalYyTFRSaExqWXlOVEl1TmpJMU1pd3dMREFzTVN3dU5qSTFMUzQyTWpWb05HRXVOakkxTWk0Mk1qVXlMREFzTUN3eExDNDJNalV1TmpJMWRqUkJMall5TlRNdU5qSTFNeXd3TERBc01Td3lOQzQxTERFMkxqUTNOalphYlMwekxqTTNOUzB4TGpJMWFESXVOelYyTFRJdU56Vm9MVEl1TnpWYUlpOCtQSEJoZEdnZ1kyeGhjM005SW1JaUlHUTlJazB5T0N3eU15NDBOelkyU0RJMFlTNDJNalV6TGpZeU5UTXNNQ3d3TERFdExqWXlOUzB1TmpJMWRpMDBZUzQyTWpVeUxqWXlOVElzTUN3d0xERXNMall5TlMwdU5qSTFhRFJoTGpZeU5USXVOakkxTWl3d0xEQXNNU3d1TmpJMUxqWXlOWFkwUVM0Mk1qVXpMall5TlRNc01Dd3dMREVzTWpnc01qTXVORGMyTmxwdExUTXVNemMxTFRFdU1qVm9NaTQzTlhZdE1pNDNOV2d0TWk0M05Wb2lMejQ4Y0dGMGFDQmtQU0pOTWprc01qWXVORGMyTmtnNVlTNDJNalV1TmpJMUxEQXNNQ3d4TERBdE1TNHlOVWd5T1dFdU5qSTFMall5TlN3d0xEQXNNU3d3TERFdU1qVmFJaTgrUEM5emRtYysiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbInNvdXJjZXMua25hdGl2ZS5kZXYiXSwicmVzb3VyY2VzIjpbImthZmthc291cmNlcyIsImthZmthc2lua3MiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyIsImV2ZW50cyIsIm5hbWVzcGFjZXMiLCJzZXJ2aWNlYWNjb3VudHMiLCJzZXJ2aWNlcyIsInNlY3JldHMiLCJlbmRwb2ludHMiLCJwb2RzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJhcHBzIl0sInJlc291cmNlcyI6WyJkZXBsb3ltZW50cyIsImRlcGxveW1lbnRzL2ZpbmFsaXplcnMiLCJzdGF0ZWZ1bHNldHMiLCJzdGF0ZWZ1bHNldHMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiYXV0b3NjYWxpbmciXSwicmVzb3VyY2VzIjpbImhvcml6b250YWxwb2RhdXRvc2NhbGVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0Il19LHsiYXBpR3JvdXBzIjpbImJhdGNoIl0sInJlc291cmNlcyI6WyJqb2JzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ3YXRjaCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJwb2xpY3kiXSwicmVzb3VyY2VzIjpbInBvZGRpc3J1cHRpb25idWRnZXRzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsicmJhYy5hdXRob3JpemF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnJvbGVzIiwicm9sZXMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIiwiZXNjYWxhdGUiLCJiaW5kIl19LHsiYXBpR3JvdXBzIjpbInJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJyb2xlYmluZGluZ3MiLCJyb2xlYmluZGluZ3MiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImFkbWlzc2lvbnJlZ2lzdHJhdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbIm11dGF0aW5nd2ViaG9va2NvbmZpZ3VyYXRpb25zIiwidmFsaWRhdGluZ3dlYmhvb2tjb25maWd1cmF0aW9ucyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsibmV0d29ya2luZy5rOHMuaW8iXSwicmVzb3VyY2VzIjpbIm5ldHdvcmtwb2xpY2llcyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiYXBpZXh0ZW5zaW9ucy5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMiLCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zL3N0YXR1cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY2FjaGluZy5pbnRlcm5hbC5rbmF0aXZlLmRldiJdLCJyZXNvdXJjZXMiOlsiaW1hZ2VzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsibW9uaXRvcmluZy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJzZXJ2aWNlbW9uaXRvcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvbnNvbGUub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb25zb2xlcXVpY2tzdGFydHMiLCJjb25zb2xlY2xpZG93bmxvYWRzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVyb3BlcmF0b3JzIiwiY2x1c3Rlcm9wZXJhdG9ycy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0Iiwid2F0Y2giLCJsaXN0Il19LHsiYXBpR3JvdXBzIjpbInJvdXRlLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsicm91dGVzIiwicm91dGVzL2N1c3RvbS1ob3N0Il0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9yLmtuYXRpdmUuZGV2Il0sInJlc291cmNlcyI6WyJrbmF0aXZlc2VydmluZ3MiLCJrbmF0aXZlc2VydmluZ3Mvc3RhdHVzIiwia25hdGl2ZXNlcnZpbmdzL2ZpbmFsaXplcnMiLCJrbmF0aXZlZXZlbnRpbmdzIiwia25hdGl2ZWV2ZW50aW5ncy9zdGF0dXMiLCJrbmF0aXZlZXZlbnRpbmdzL2ZpbmFsaXplcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIiwicGF0Y2giXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3Iuc2VydmVybGVzcy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImtuYXRpdmVrYWZrYXMiLCJrbmF0aXZla2Fma2FzL3N0YXR1cyIsImtuYXRpdmVrYWZrYXMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJpbmdyZXNzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNlcnQtbWFuYWdlci5pbyJdLCJyZXNvdXJjZXMiOlsiY2VydGlmaWNhdGVzIiwiaXNzdWVycyIsImNsdXN0ZXJpc3N1ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsInVwZGF0ZSIsImxpc3QiLCJnZXQiLCJ3YXRjaCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImtuYXRpdmUtb3BlbnNoaWZ0In0seyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyIsIm5hbWVzcGFjZXMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImFwcHMiXSwicmVzb3VyY2VzIjpbImRlcGxveW1lbnRzIiwiZGVwbG95bWVudHMvZmluYWxpemVycyIsInN0YXRlZnVsc2V0cyIsInN0YXRlZnVsc2V0cy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJhdXRvc2NhbGluZyJdLCJyZXNvdXJjZXMiOlsiaG9yaXpvbnRhbHBvZGF1dG9zY2FsZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsiYmF0Y2giXSwicmVzb3VyY2VzIjpbImpvYnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsIndhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbInBvbGljeSJdLCJyZXNvdXJjZXMiOlsicG9kZGlzcnVwdGlvbmJ1ZGdldHMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJyYmFjLmF1dGhvcml6YXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVycm9sZXMiLCJyb2xlcyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giLCJlc2NhbGF0ZSIsImJpbmQiXX0seyJhcGlHcm91cHMiOlsicmJhYy5hdXRob3JpemF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnJvbGViaW5kaW5ncyIsInJvbGViaW5kaW5ncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiYWRtaXNzaW9ucmVnaXN0cmF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsibXV0YXRpbmd3ZWJob29rY29uZmlndXJhdGlvbnMiLCJ2YWxpZGF0aW5nd2ViaG9va2NvbmZpZ3VyYXRpb25zIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJuZXR3b3JraW5nLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsibmV0d29ya3BvbGljaWVzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJhcGlleHRlbnNpb25zLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsiY3VzdG9tcmVzb3VyY2VkZWZpbml0aW9ucyIsImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMvc3RhdHVzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjYWNoaW5nLmludGVybmFsLmtuYXRpdmUuZGV2Il0sInJlc291cmNlcyI6WyJpbWFnZXMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJtb25pdG9yaW5nLmNvcmVvcy5jb20iXSwicmVzb3VyY2VzIjpbInNlcnZpY2Vtb25pdG9ycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29uc29sZS5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvbnNvbGVxdWlja3N0YXJ0cyIsImNvbnNvbGVjbGlkb3dubG9hZHMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJvcGVyYXRvcnMiLCJjbHVzdGVyb3BlcmF0b3JzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ3YXRjaCIsImxpc3QiXX0seyJhcGlHcm91cHMiOlsicm91dGUub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJyb3V0ZXMiLCJyb3V0ZXMvY3VzdG9tLWhvc3QiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvb3JkaW5hdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImxlYXNlcyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3Iua25hdGl2ZS5kZXYiXSwicmVzb3VyY2VzIjpbImtuYXRpdmVzZXJ2aW5ncyIsImtuYXRpdmVzZXJ2aW5ncy9zdGF0dXMiLCJrbmF0aXZlc2VydmluZ3MvZmluYWxpemVycyIsImtuYXRpdmVldmVudGluZ3MiLCJrbmF0aXZlZXZlbnRpbmdzL3N0YXR1cyIsImtuYXRpdmVldmVudGluZ3MvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJvcGVyYXRvci5zZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsia25hdGl2ZWthZmthcyIsImtuYXRpdmVrYWZrYXMvc3RhdHVzIiwia25hdGl2ZWthZmthcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImluZ3Jlc3NlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY2VydC1tYW5hZ2VyLmlvIl0sInJlc291cmNlcyI6WyJjZXJ0aWZpY2F0ZXMiLCJpc3N1ZXJzIiwiY2x1c3Rlcmlzc3VlcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwidXBkYXRlIiwibGlzdCIsImdldCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIm5ldHdvcmtpbmcuaW50ZXJuYWwua25hdGl2ZS5kZXYiXSwicmVzb3VyY2VzIjpbImNlcnRpZmljYXRlcyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJ1cGRhdGUiLCJnZXQiLCJsaXN0Iiwid2F0Y2giXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIn0seyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJuZXR3b3JraW5nLmludGVybmFsLmtuYXRpdmUuZGV2Il0sInJlc291cmNlcyI6WyJpbmdyZXNzZXMiLCJpbmdyZXNzZXMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJyb3V0ZS5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbInJvdXRlcyIsInJvdXRlcy9jdXN0b20taG9zdCJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIn1dLCJkZXBsb3ltZW50cyI6W3sibmFtZSI6ImtuYXRpdmUtb3BlcmF0b3Itd2ViaG9vayIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIiwic2VydmVybGVzcy5vcGVuc2hpZnQuaW8vaXMiOiJ3ZWJob29rIn19LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJsYWJlbHMiOnsibmFtZSI6ImtuYXRpdmUtb3BlcmF0b3IiLCJzZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pby9pcyI6IndlYmhvb2siLCJzaWRlY2FyLmlzdGlvLmlvL2luamVjdCI6ImZhbHNlIn19LCJzcGVjIjp7ImNvbnRhaW5lcnMiOlt7ImVudiI6W3sibmFtZSI6IlBPRF9OQU1FIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLm5hbWUifX19LHsibmFtZSI6Ik9QRVJBVE9SX05BTUUiLCJ2YWx1ZSI6ImtuYXRpdmUtb3BlcmF0b3IifSx7Im5hbWUiOiJTWVNURU1fTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLm5hbWVzcGFjZSJ9fX0seyJuYW1lIjoiTUVUUklDU19ET01BSU4iLCJ2YWx1ZSI6ImtuYXRpdmUuZGV2L3NlcnZpbmctb3BlcmF0b3IifSx7Im5hbWUiOiJSRVFVSVJFRF9TRVJWSU5HX05BTUVTUEFDRSIsInZhbHVlIjoia25hdGl2ZS1zZXJ2aW5nIn0seyJuYW1lIjoiUkVRVUlSRURfU0VSVklOR19JTkdSRVNTX05BTUVTUEFDRSIsInZhbHVlIjoia25hdGl2ZS1zZXJ2aW5nLWluZ3Jlc3MifSx7Im5hbWUiOiJSRVFVSVJFRF9FVkVOVElOR19OQU1FU1BBQ0UiLCJ2YWx1ZSI6ImtuYXRpdmUtZXZlbnRpbmcifSx7Im5hbWUiOiJTRVJWSUNFX01PTklUT1JfUkJBQ19NQU5JRkVTVF9QQVRIIiwidmFsdWUiOiIvdmFyL3J1bi9rby9tb25pdG9yaW5nL3JiYWMtcHJveHkueWFtbCJ9LHsibmFtZSI6IldFQkhPT0tfTkFNRSIsInZhbHVlIjoia25hdGl2ZS1vcGVyYXRvci1zZXJ2aWNlIn0seyJuYW1lIjoiVVNFX09MTV9UTFMiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJLVUJFUk5FVEVTX01JTl9WRVJTSU9OIiwidmFsdWUiOiJ2MS4wLjAifSx7Im5hbWUiOiJJTUFHRV9xdWV1ZS1wcm94eSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tc2VydmluZy1xdWV1ZS1yaGVsOEBzaGEyNTY6MzEzM2MxNzdmY2JmZDRhYmI4OWIyNzNhN2NlMmZiMjIwZTA1MWNlOTU2MTkzYjFkMTQ5YzdhMDQwZmMwN2U4MyJ9LHsibmFtZSI6IklNQUdFX2FjdGl2YXRvciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tc2VydmluZy1hY3RpdmF0b3ItcmhlbDhAc2hhMjU2OjA0MmNlMWU3YmUxMGE1ZjUxZjk0ODdhZjAxOTZjYjI0OWY1ZDhlNjgyMWNlN2MyYWIwNWM1MzJiN2ExODQzOGMifSx7Im5hbWUiOiJJTUFHRV9hdXRvc2NhbGVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLWF1dG9zY2FsZXItcmhlbDhAc2hhMjU2OjBiNjlmYzgzOWY1NjUxYmZmZmNiZjg2MzY2Zjk0ZGEwZWMzZTI5ZTZjMjE3YTI2ZmZjZTdiZDc2ZmJkYTA5MzkifSx7Im5hbWUiOiJJTUFHRV9hdXRvc2NhbGVyLWhwYSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tc2VydmluZy1hdXRvc2NhbGVyLWhwYS1yaGVsOEBzaGEyNTY6NGZhMGNlN2FjMTM1MWFhNGNiZTg1ODQ3MmJmOWY5NTM5NDI5NjFhNTQzMGY4NWJlNTY1NmYyOTUwOGQyNTRkYiJ9LHsibmFtZSI6IklNQUdFX2NvbnRyb2xsZXJfX2NvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctY29udHJvbGxlci1yaGVsOEBzaGEyNTY6NTBhNjJiZjY0MWExMjRkYmEzNzI2MmRhMWU4MmVmMTRlNmI2Y2NiNGM4NTczZmE1MzdjMTlkM2IxYjc3YTYyNyJ9LHsibmFtZSI6IklNQUdFX3dlYmhvb2tfX3dlYmhvb2siLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctd2ViaG9vay1yaGVsOEBzaGEyNTY6ZGU0NWE2MGJjNDVlMWI2N2M2Zjg4ZWIxYzg4NWJkYTEyY2MxMzYzMzZkYzVmYjJlMGI4Y2JmNjNhYTYyYTZiZiJ9LHsibmFtZSI6IklNQUdFX3N0b3JhZ2UtdmVyc2lvbi1taWdyYXRpb24tc2VydmluZy1fX21pZ3JhdGUiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctc3RvcmFnZS12ZXJzaW9uLW1pZ3JhdGlvbi1yaGVsOEBzaGEyNTY6ZmJlNDYyNjk1YjNlNzAzZDQ3MjIyNzdhNjE3YzZlZjA2ZmIzN2MwNzM2NmJhNWM2MjExZGQ1NmI1MDM4YzEzMCJ9LHsibmFtZSI6IklNQUdFX2tvdXJpZXItZ2F0ZXdheSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2aWNlLW1lc2gvcHJveHl2Mi1yaGVsOEBzaGEyNTY6MWMxOWNmODZmZDA1OTQwZWYzZDBkNmU3OWU2ZjM3MWRiOTkzMTUzZjcwYmFlZGI5MTA3YmJlNzNmMjM2ZGMyNCJ9LHsibmFtZSI6IklNQUdFX25ldC1rb3VyaWVyLWNvbnRyb2xsZXJfX2NvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL25ldC1rb3VyaWVyLWtvdXJpZXItcmhlbDhAc2hhMjU2OjkwZTMyMmUzMzA0MjIyMTk5ZWZjOWJmYTI1NDUyNTBkZGUyYjIyNDAzNjY2YzVlMDAzNzJiZGFlYWExOGRkZWUifSx7Im5hbWUiOiJJTUFHRV9uZXQtaXN0aW8tY29udHJvbGxlcl9fY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEvbmV0LWlzdGlvLWNvbnRyb2xsZXItcmhlbDhAc2hhMjU2Ojc2NTVlYzk1ZTU4MjlkM2Q3ODYwMzljYzZjNjkwYzlmYjQ0MmRjODVmMWM4ODQ4MWNmMzRmOWE2ZjE2ODQwMzkifSx7Im5hbWUiOiJJTUFHRV9uZXQtaXN0aW8td2ViaG9va19fd2ViaG9vayIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEvbmV0LWlzdGlvLXdlYmhvb2stcmhlbDhAc2hhMjU2OmZhOGViYjcwYjZmMTUxMGM1NWEwM2JhZWM5OWQzNDk3ZDZhZmI5MzAxNTJmZjM3MzFmZTU3MjExNjc1YWFkYzAifSx7Im5hbWUiOiJJTUFHRV9ldmVudGluZy1jb250cm9sbGVyX19ldmVudGluZy1jb250cm9sbGVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1jb250cm9sbGVyLXJoZWw4QHNoYTI1Njo4MDQzMDFkMzE1YzhkNjk1OGQxMjhmZDU5NTExODQ0MzdmNzU1Njc0ZDhlYzVhNDU4MmQ2MTI4ZTk4OWI5NjZhIn0seyJuYW1lIjoiSU1BR0VfZXZlbnRpbmctaXN0aW8tY29udHJvbGxlcl9fZXZlbnRpbmctaXN0aW8tY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaXN0aW8tY29udHJvbGxlci1yaGVsOEBzaGEyNTY6MjBhZTJkYTFlOGQ4MmQzMTllMjU2YzZjODEyOTllZjg0MmNhMzRkNTdjNjk2NGQ2MWUwMGEyNzVhNDExNTliNCJ9LHsibmFtZSI6IklNQUdFX2V2ZW50aW5nLXdlYmhvb2tfX2V2ZW50aW5nLXdlYmhvb2siLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLXdlYmhvb2stcmhlbDhAc2hhMjU2OmNhOGE2MTkzNDI1ZjRiMjc1MGQ1OGQ2YjFkYTQyMTI0NGFhMDc3YTQ0YTM0YjQxODRlMzViOWQ5NGM5NDMzZmIifSx7Im5hbWUiOiJJTUFHRV9zdG9yYWdlLXZlcnNpb24tbWlncmF0aW9uLWV2ZW50aW5nLV9fbWlncmF0ZSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctbWlncmF0ZS1yaGVsOEBzaGEyNTY6NjRmYjRiMGIxOGY0YjhlOWJkODY0NzBjYTM2ZjJmNDE4NzExMWVkNDRiNmNjZTVkMTZkM2E0MzQ0M2MwMDQ4OSJ9LHsibmFtZSI6IklNQUdFX210LWJyb2tlci1jb250cm9sbGVyX19tdC1icm9rZXItY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctbXRjaGFubmVsLWJyb2tlci1yaGVsOEBzaGEyNTY6ZWRjMTllMzExOTQ3MDUzZGJjZWIyMWQ1MjI1YWQ1MmE0OGY2MWViM2MwNzllMGY5MmY5N2JhMzExYmIxMjFmNyJ9LHsibmFtZSI6IklNQUdFX210LWJyb2tlci1maWx0ZXJfX2ZpbHRlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctZmlsdGVyLXJoZWw4QHNoYTI1Njo2MDVmOGFiNDhlNzYxZjg4ZGU0M2I0YWFjNDM5ZDY1NzZmZWQ0NmQ2ZDk2NTlhN2NiN2QwYzNkMmQ4N2NhNTVhIn0seyJuYW1lIjoiSU1BR0VfbXQtYnJva2VyLWluZ3Jlc3NfX2luZ3Jlc3MiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWluZ3Jlc3MtcmhlbDhAc2hhMjU2OjYyNTQ4ZTk0ZWNmNTJjZDUwYjNkZjdmYzJjYjI3NWNlMzFmMTgwMzdjZDI4M2I5MGI3OTg3ZWI4ZjM4ZjFkYzYifSx7Im5hbWUiOiJJTUFHRV9pbWMtY29udHJvbGxlcl9fY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctY2hhbm5lbC1jb250cm9sbGVyLXJoZWw4QHNoYTI1NjpkYzVlMTgwNzQ5MTNjZWUwNDVmZWI1YjEzMTg5MDhiNzE2NmVhNzM1YjMzMjIzZWNjODk0M2EwOWQwODUzZDQzIn0seyJuYW1lIjoiSU1BR0VfaW1jLWRpc3BhdGNoZXJfX2Rpc3BhdGNoZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWNoYW5uZWwtZGlzcGF0Y2hlci1yaGVsOEBzaGEyNTY6NTNhNmE1ZGZiMzlmODMzODliMTAzODk0ODhmNGQ3YWJhNmE1MzQyZjQxMWZmN2VmYTQxYmFiMzBkODlkOTY0NiJ9LHsibmFtZSI6IklNQUdFX3Bpbmdzb3VyY2UtbXQtYWRhcHRlcl9fZGlzcGF0Y2hlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctbXRwaW5nLXJoZWw4QHNoYTI1Njo0ZTYzM2Y2OGEzYzM2ZjFkOTllZjkxNGExYTcyOTZhZWI2ZmU1NWQ5NjlmZDQ4ZGU5MTZhMjcyYjU5NzFjN2U2In0seyJuYW1lIjoiSU1BR0Vfam9iLXNpbmtfX2pvYi1zaW5rIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1qb2JzaW5rLXJoZWw4QHNoYTI1NjpjZmRiZDY4Yjc4ZTk0NzU5MGU2MzNiNjY4MGQ3Yjg1Y2ZkMzk0ZWE0MjI4N2QzZGZjODFiNzgyM2EzYWI2NmJkIn0seyJuYW1lIjoiSU1BR0VfQVBJU0VSVkVSX1JBX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1hcGlzZXJ2ZXItcmVjZWl2ZS1hZGFwdGVyLXJoZWw4QHNoYTI1NjpjOTA2Y2Q0YTFjNDIzODljN2U0YjM4ZGI1Nzg1OGZhYzIyNTBiNjM1N2VmZjBkYTA0OGU4YzZhY2RiOTViYTkzIn0seyJuYW1lIjoiSU1BR0VfRElTUEFUQ0hFUl9JTUFHRSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctY2hhbm5lbC1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1Njo1M2E2YTVkZmIzOWY4MzM4OWIxMDM4OTQ4OGY0ZDdhYmE2YTUzNDJmNDExZmY3ZWZhNDFiYWIzMGQ4OWQ5NjQ2In0seyJuYW1lIjoiSU1BR0VfRVZFTlRfVFJBTlNGT1JNX0pTT05BVEFfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy10cmFuc2Zvcm0tanNvbmF0YS1yaGVsOEBzaGEyNTY6MGI2MThjOWM4OTI0MjhhNTllMDQ5OWEzZWQwZWJlZmEyYzA5ODE2OTk4MTc0MzMxNTliZmNhZjY4Mzc0MzU5NyJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9USU1FUl9JTUFHRSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW50ZWdyYXRpb25zLXRpbWVyLXNvdXJjZS1yaGVsOEBzaGEyNTY6OGVjNTFmODA5MTk2Mzg0ZjliODNlZjU3ODliMTJiNjM1ODc3MmE3NjFhNzA1NTEyOWRhNTcyMjU0MzgxZWVlZiJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfUzNfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3MtczMtc291cmNlLXJoZWw4QHNoYTI1NjplZTM4YjY4ZTk4YmY5YWRiOTQ1NTRmZDRiM2EzYWVjM2I1MzNjYjQwN2RkMGUwYWZjYTdmMzdlMTBkNjU1M2Q5In0seyJuYW1lIjoiSU1BR0VfSU5URUdSQVRJT05fU09VUkNFX0FXU19TUVNfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3Mtc3FzLXNvdXJjZS1yaGVsOEBzaGEyNTY6ODZlNTU5ODZiOTQ5OWUwYTljY2JlZjU5YTJmYjg1ZGUzNjYzZmU4Njg5N2QyNWRiYTU0MTAxZTkxMDFiMWI5MSJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfRERCX1NUUkVBTVNfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3MtZGRiLXN0cmVhbXMtc291cmNlLXJoZWw4QHNoYTI1Njo2YWRhNDZmNjU1ZTEzZGI2ZThmZGVkNGRiN2VjMzA4MTIzY2Y4MzA3YzFlZjE3MWI3ZWI3ZWNhMjY0ZWUyYzI3In0seyJuYW1lIjoiSU1BR0VfSU5URUdSQVRJT05fU0lOS19MT0dfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1sb2ctc2luay1yaGVsOEBzaGEyNTY6ZTBmMGI5ZjdkOGNlZDk3OTE5ODQ0YmI0YzM0MmNlODljNWZmMjJjNmNjNzY0ZDYyZjY4MGQwZjNlYmEzMTliMSJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NJTktfQVdTX1MzX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXMzLXNpbmstcmhlbDhAc2hhMjU2Ojk0ZDU4OTAwY2I2MmQ2NDM3OWYzYjliMjdjZjdmNjkxNzNkNDBiMTE1YjZkODQzYjllODM4MzlhMDA4MGEwYTEifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TSU5LX0FXU19TUVNfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3Mtc3FzLXNpbmstcmhlbDhAc2hhMjU2OmY5NzI1N2YwYWY1MzdmZmVkMWZmNmZkMGJiMGE4ZGI1OGI1YjZhNDQ1NTlkMDEzNmNjNWYxMzRlOGZmMzRmMmEifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TSU5LX0FXU19TTlNfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3Mtc25zLXNpbmstcmhlbDhAc2hhMjU2OjMxYWU2NjdhNDczNzBlMTA3Mzg0ZDEyNTNjN2ZlMGI3MDg0NDNmOWY5OTEyMTBkZWQxNjc1OTFiNGU2OWNlZjUifSx7Im5hbWUiOiJJTUFHRV9ldmVudG1lc2gtYmFja2VuZF9fY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tYmFja3N0YWdlLXBsdWdpbnMtZXZlbnRtZXNoLXJoZWw4QHNoYTI1NjozYmMzNDg2N2Y3YTYyMGJjZGFjZTY3ZTY1YTBmZmI1MWFlYWQ1ZTRhYTFmMTBjZDBlYjc0NzZmZThlZDFhZjEyIn0seyJuYW1lIjoiSU1BR0VfS1VCRV9SQkFDX1BST1hZIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0NC9vc2Uta3ViZS1yYmFjLXByb3h5LXJoZWw5QHNoYTI1Njo2NzY1MWFkZmQ4ZTZjOGQxMmQyYjk1ODVjNzIzZDVmYmRiNjY0ODE4ZjgwMzMxMmJmZTM1MjJlMDRhODFlOWIwIn0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0VWRU5UX1NFTkRFUiIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tcGx1Z2luLWV2ZW50LXNlbmRlci1yaGVsOEBzaGEyNTY6Zjc3OTUwODg3NzdlYTg0ZmM2MTgwYjgxYjYxMzE5NjI5NDRlMzQ5MThlMmMwNjY3MTAzM2ExYTU3MjU4MTc3MyJ9LHsibmFtZSI6IklNQUdFX0tOX0NMSUVOVCIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tY2xpZW50LWtuLXJoZWw4QHNoYTI1Njo3MWFhMDliOThkOTEwMDZiZTJhODFhYzAzM2Y3MmRmNzI1NmE5Mzg5MDIzNjEzMDhiOGViMzZlYTE5ODY5OGMzIn0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfVVRJTCIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tcGx1Z2luLWZ1bmMtZnVuYy11dGlsLXJoZWw4QHNoYTI1Njo1OTgxMTBlOWI5MWMzOThlNmY3ZWE2MjE1YTY5Zjk1NjIzMzc5NjhhMDI0ZGVkOGUwZjE5NzM2YzVmYjUzNDU3In0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfVEVLVE9OX0JVSUxEQUgiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9yaGVsOC9idWlsZGFoQHNoYTI1NjozZDUwNWQ5YzBmNWQ0Y2Q1YTRlYzAzYjhkMDM4NjU2YzZjZGJkZjUxOTFlMDBjZTYzODhmN2UwZTRkMmYxYjc0In0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfTk9ERUpTXzIwX01JTklNQUwiLCJ2YWx1ZSI6InJlZ2lzdHJ5LmFjY2Vzcy5yZWRoYXQuY29tL3ViaTgvbm9kZWpzLTIwLW1pbmltYWxAc2hhMjU2OmEyYTdlMzk5YWFmMDlhNDhjMjhmNDA4MjBkYTE2NzA5YjYyYWVlNmYyYmM3MDMxMTZiOTM0NWZhYjU4MzA4NjEifSx7Im5hbWUiOiJJTUFHRV9LTl9QTFVHSU5fRlVOQ19PUEVOSkRLXzIxIiwidmFsdWUiOiJyZWdpc3RyeS5hY2Nlc3MucmVkaGF0LmNvbS91Ymk4L29wZW5qZGstMjFAc2hhMjU2OjQ0MTg5N2ExZjY5MWM3ZDRiM2E2N2JiM2UwZmVhODNlMTgzNTIyMTQyNjRjYjM4M2ZkMDU3YmJiZDVlZDg2M2MifSx7Im5hbWUiOiJJTUFHRV9LTl9QTFVHSU5fRlVOQ19QWVRIT05fMzkiLCJ2YWx1ZSI6InJlZ2lzdHJ5LmFjY2Vzcy5yZWRoYXQuY29tL3ViaTgvcHl0aG9uLTM5QHNoYTI1NjoyN2U3OTVmZDZiMWI3N2RlNzBkMWRjNzNhNjVlNGM3OTA2NTA3NDhhOWNmZGExMzhmZGJkMTk0YjNkNmVlYTNkIn0seyJuYW1lIjoiQ1VSUkVOVF9WRVJTSU9OIiwidmFsdWUiOiIxLjM2LjEifSx7Im5hbWUiOiJLTkFUSVZFX1NFUlZJTkdfVkVSU0lPTiIsInZhbHVlIjoiMS4xNiJ9LHsibmFtZSI6IktOQVRJVkVfRVZFTlRJTkdfVkVSU0lPTiIsInZhbHVlIjoiMS4xNiJ9LHsibmFtZSI6IktOQVRJVkVfRVZFTlRJTkdfS0FGS0FfQlJPS0VSX1ZFUlNJT04iLCJ2YWx1ZSI6IjEuMTYifV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEvc2VydmVybGVzcy1vcGVuc2hpZnQta24tcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmYxYTEzNzI1NTY3ZGUzNTdkZTQyNDZiODdhMmVkNjRiM2RjZTAyYzc0MDZiODYyMWFkOGQyYmJlYWNjMGNjZmEiLCJpbWFnZVB1bGxQb2xpY3kiOiJBbHdheXMiLCJuYW1lIjoia25hdGl2ZS1vcGVyYXRvciIsInBvcnRzIjpbeyJjb250YWluZXJQb3J0Ijo5MDkwLCJuYW1lIjoibWV0cmljcyJ9LHsiY29udGFpbmVyUG9ydCI6ODQ0MywibmFtZSI6Imh0dHBzLXdlYmhvb2sifV0sInJlYWRpbmVzc1Byb2JlIjp7Imh0dHBHZXQiOnsiaHR0cEhlYWRlcnMiOlt7Im5hbWUiOiJrLWt1YmVsZXQtcHJvYmUiLCJ2YWx1ZSI6IndlYmhvb2sifV0sInBvcnQiOjg0NDMsInNjaGVtZSI6IkhUVFBTIn0sImxpdmVuZXNzUHJvYmUiOnsiZmFpbHVyZVRocmVzaG9sZCI6NiwiaHR0cEdldCI6eyJodHRwSGVhZGVycyI6W3sibmFtZSI6Imsta3ViZWxldC1wcm9iZSIsInZhbHVlIjoid2ViaG9vayJ9XSwicG9ydCI6ODQ0Mywic2NoZW1lIjoiSFRUUFMifSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6MjAsInBlcmlvZFNlY29uZHMiOjF9LCJwZXJpb2RTZWNvbmRzIjoxfSwic2VjdXJpdHlDb250ZXh0Ijp7ImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6ZmFsc2UsImNhcGFiaWxpdGllcyI6eyJkcm9wIjpbIkFMTCJdfSwicmVhZE9ubHlSb290RmlsZXN5c3RlbSI6dHJ1ZSwicnVuQXNOb25Sb290Ijp0cnVlfX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIn19fX0seyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQifX0sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQifX0sInNwZWMiOnsiY29udGFpbmVycyI6W3siZW52IjpbeyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWUiOiIifSx7Im5hbWUiOiJOQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEubmFtZXNwYWNlIn19fSx7Im5hbWUiOiJERVBMT1lNRU5UX05BTUUiLCJ2YWx1ZSI6ImtuYXRpdmUtb3BlbnNoaWZ0In0seyJuYW1lIjoiUE9EX05BTUUiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEubmFtZSJ9fX0seyJuYW1lIjoiT1BFUkFUT1JfTkFNRSIsInZhbHVlIjoia25hdGl2ZS1vcGVuc2hpZnQifSx7Im5hbWUiOiJSRVFVSVJFRF9TRVJWSU5HX05BTUVTUEFDRSIsInZhbHVlIjoia25hdGl2ZS1zZXJ2aW5nIn0seyJuYW1lIjoiUkVRVUlSRURfU0VSVklOR19JTkdSRVNTX05BTUVTUEFDRSIsInZhbHVlIjoia25hdGl2ZS1zZXJ2aW5nLWluZ3Jlc3MifSx7Im5hbWUiOiJSRVFVSVJFRF9FVkVOVElOR19OQU1FU1BBQ0UiLCJ2YWx1ZSI6ImtuYXRpdmUtZXZlbnRpbmcifSx7Im5hbWUiOiJSRVFVSVJFRF9LQUZLQV9OQU1FU1BBQ0UiLCJ2YWx1ZSI6ImtuYXRpdmUtZXZlbnRpbmcifSx7Im5hbWUiOiJLQUZLQUNIQU5ORUxfTUFOSUZFU1RfUEFUSCIsInZhbHVlIjoiZGVwbG95L3Jlc291cmNlcy9rbmF0aXZla2Fma2EvY2hhbm5lbCJ9LHsibmFtZSI6IktBRktBU09VUkNFX01BTklGRVNUX1BBVEgiLCJ2YWx1ZSI6ImRlcGxveS9yZXNvdXJjZXMva25hdGl2ZWthZmthL3NvdXJjZSJ9LHsibmFtZSI6IktBRktBQ09OVFJPTExFUl9NQU5JRkVTVF9QQVRIIiwidmFsdWUiOiJkZXBsb3kvcmVzb3VyY2VzL2tuYXRpdmVrYWZrYS9jb250cm9sbGVyIn0seyJuYW1lIjoiS0FGS0FCUk9LRVJfTUFOSUZFU1RfUEFUSCIsInZhbHVlIjoiZGVwbG95L3Jlc291cmNlcy9rbmF0aXZla2Fma2EvYnJva2VyIn0seyJuYW1lIjoiS0FGS0FTSU5LX01BTklGRVNUX1BBVEgiLCJ2YWx1ZSI6ImRlcGxveS9yZXNvdXJjZXMva25hdGl2ZWthZmthL3NpbmsifSx7Im5hbWUiOiJRVUlDS1NUQVJUX01BTklGRVNUX1BBVEgiLCJ2YWx1ZSI6ImRlcGxveS9yZXNvdXJjZXMvcXVpY2tzdGFydC9zZXJ2ZXJsZXNzLWFwcGxpY2F0aW9uLXF1aWNrc3RhcnQueWFtbCJ9LHsibmFtZSI6IkRBU0hCT0FSRFNfUk9PVF9NQU5JRkVTVF9QQVRIIiwidmFsdWUiOiJkZXBsb3kvcmVzb3VyY2VzL2Rhc2hib2FyZHMifSx7Im5hbWUiOiJTT1VSQ0VTX1VTRV9DTFVTVEVSX01PTklUT1JJTkciLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJTT1VSQ0VTX0dFTkVSQVRFX1NFUlZJQ0VfTU9OSVRPUlMiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJFTkFCTEVfUFBST0YiLCJ2YWx1ZSI6ImZhbHNlIn0seyJuYW1lIjoiS1VCRVJORVRFU19NSU5fVkVSU0lPTiIsInZhbHVlIjoidjEuMC4wIn0seyJuYW1lIjoiSU1BR0VfcXVldWUtcHJveHkiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctcXVldWUtcmhlbDhAc2hhMjU2OjMxMzNjMTc3ZmNiZmQ0YWJiODliMjczYTdjZTJmYjIyMGUwNTFjZTk1NjE5M2IxZDE0OWM3YTA0MGZjMDdlODMifSx7Im5hbWUiOiJJTUFHRV9hY3RpdmF0b3IiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctYWN0aXZhdG9yLXJoZWw4QHNoYTI1NjowNDJjZTFlN2JlMTBhNWY1MWY5NDg3YWYwMTk2Y2IyNDlmNWQ4ZTY4MjFjZTdjMmFiMDVjNTMyYjdhMTg0MzhjIn0seyJuYW1lIjoiSU1BR0VfYXV0b3NjYWxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tc2VydmluZy1hdXRvc2NhbGVyLXJoZWw4QHNoYTI1NjowYjY5ZmM4MzlmNTY1MWJmZmZjYmY4NjM2NmY5NGRhMGVjM2UyOWU2YzIxN2EyNmZmY2U3YmQ3NmZiZGEwOTM5In0seyJuYW1lIjoiSU1BR0VfYXV0b3NjYWxlci1ocGEiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctYXV0b3NjYWxlci1ocGEtcmhlbDhAc2hhMjU2OjRmYTBjZTdhYzEzNTFhYTRjYmU4NTg0NzJiZjlmOTUzOTQyOTYxYTU0MzBmODViZTU2NTZmMjk1MDhkMjU0ZGIifSx7Im5hbWUiOiJJTUFHRV9jb250cm9sbGVyX19jb250cm9sbGVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLWNvbnRyb2xsZXItcmhlbDhAc2hhMjU2OjUwYTYyYmY2NDFhMTI0ZGJhMzcyNjJkYTFlODJlZjE0ZTZiNmNjYjRjODU3M2ZhNTM3YzE5ZDNiMWI3N2E2MjcifSx7Im5hbWUiOiJJTUFHRV93ZWJob29rX193ZWJob29rIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLXdlYmhvb2stcmhlbDhAc2hhMjU2OmRlNDVhNjBiYzQ1ZTFiNjdjNmY4OGViMWM4ODViZGExMmNjMTM2MzM2ZGM1ZmIyZTBiOGNiZjYzYWE2MmE2YmYifSx7Im5hbWUiOiJJTUFHRV9zdG9yYWdlLXZlcnNpb24tbWlncmF0aW9uLXNlcnZpbmctX19taWdyYXRlIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLXN0b3JhZ2UtdmVyc2lvbi1taWdyYXRpb24tcmhlbDhAc2hhMjU2OmZiZTQ2MjY5NWIzZTcwM2Q0NzIyMjc3YTYxN2M2ZWYwNmZiMzdjMDczNjZiYTVjNjIxMWRkNTZiNTAzOGMxMzAifSx7Im5hbWUiOiJJTUFHRV9rb3VyaWVyLWdhdGV3YXkiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmljZS1tZXNoL3Byb3h5djItcmhlbDhAc2hhMjU2OjFjMTljZjg2ZmQwNTk0MGVmM2QwZDZlNzllNmYzNzFkYjk5MzE1M2Y3MGJhZWRiOTEwN2JiZTczZjIzNmRjMjQifSx7Im5hbWUiOiJJTUFHRV9uZXQta291cmllci1jb250cm9sbGVyX19jb250cm9sbGVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9uZXQta291cmllci1rb3VyaWVyLXJoZWw4QHNoYTI1Njo5MGUzMjJlMzMwNDIyMjE5OWVmYzliZmEyNTQ1MjUwZGRlMmIyMjQwMzY2NmM1ZTAwMzcyYmRhZWFhMThkZGVlIn0seyJuYW1lIjoiSU1BR0VfbmV0LWlzdGlvLWNvbnRyb2xsZXJfX2NvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL25ldC1pc3Rpby1jb250cm9sbGVyLXJoZWw4QHNoYTI1Njo3NjU1ZWM5NWU1ODI5ZDNkNzg2MDM5Y2M2YzY5MGM5ZmI0NDJkYzg1ZjFjODg0ODFjZjM0ZjlhNmYxNjg0MDM5In0seyJuYW1lIjoiSU1BR0VfbmV0LWlzdGlvLXdlYmhvb2tfX3dlYmhvb2siLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL25ldC1pc3Rpby13ZWJob29rLXJoZWw4QHNoYTI1NjpmYThlYmI3MGI2ZjE1MTBjNTVhMDNiYWVjOTlkMzQ5N2Q2YWZiOTMwMTUyZmYzNzMxZmU1NzIxMTY3NWFhZGMwIn0seyJuYW1lIjoiSU1BR0VfZXZlbnRpbmctY29udHJvbGxlcl9fZXZlbnRpbmctY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctY29udHJvbGxlci1yaGVsOEBzaGEyNTY6ODA0MzAxZDMxNWM4ZDY5NThkMTI4ZmQ1OTUxMTg0NDM3Zjc1NTY3NGQ4ZWM1YTQ1ODJkNjEyOGU5ODliOTY2YSJ9LHsibmFtZSI6IklNQUdFX2V2ZW50aW5nLWlzdGlvLWNvbnRyb2xsZXJfX2V2ZW50aW5nLWlzdGlvLWNvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWlzdGlvLWNvbnRyb2xsZXItcmhlbDhAc2hhMjU2OjIwYWUyZGExZThkODJkMzE5ZTI1NmM2YzgxMjk5ZWY4NDJjYTM0ZDU3YzY5NjRkNjFlMDBhMjc1YTQxMTU5YjQifSx7Im5hbWUiOiJJTUFHRV9ldmVudGluZy13ZWJob29rX19ldmVudGluZy13ZWJob29rIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy13ZWJob29rLXJoZWw4QHNoYTI1NjpjYThhNjE5MzQyNWY0YjI3NTBkNThkNmIxZGE0MjEyNDRhYTA3N2E0NGEzNGI0MTg0ZTM1YjlkOTRjOTQzM2ZiIn0seyJuYW1lIjoiSU1BR0Vfc3RvcmFnZS12ZXJzaW9uLW1pZ3JhdGlvbi1ldmVudGluZy1fX21pZ3JhdGUiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW1pZ3JhdGUtcmhlbDhAc2hhMjU2OjY0ZmI0YjBiMThmNGI4ZTliZDg2NDcwY2EzNmYyZjQxODcxMTFlZDQ0YjZjY2U1ZDE2ZDNhNDM0NDNjMDA0ODkifSx7Im5hbWUiOiJJTUFHRV9tdC1icm9rZXItY29udHJvbGxlcl9fbXQtYnJva2VyLWNvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW10Y2hhbm5lbC1icm9rZXItcmhlbDhAc2hhMjU2OmVkYzE5ZTMxMTk0NzA1M2RiY2ViMjFkNTIyNWFkNTJhNDhmNjFlYjNjMDc5ZTBmOTJmOTdiYTMxMWJiMTIxZjcifSx7Im5hbWUiOiJJTUFHRV9tdC1icm9rZXItZmlsdGVyX19maWx0ZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWZpbHRlci1yaGVsOEBzaGEyNTY6NjA1ZjhhYjQ4ZTc2MWY4OGRlNDNiNGFhYzQzOWQ2NTc2ZmVkNDZkNmQ5NjU5YTdjYjdkMGMzZDJkODdjYTU1YSJ9LHsibmFtZSI6IklNQUdFX210LWJyb2tlci1pbmdyZXNzX19pbmdyZXNzIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbmdyZXNzLXJoZWw4QHNoYTI1Njo2MjU0OGU5NGVjZjUyY2Q1MGIzZGY3ZmMyY2IyNzVjZTMxZjE4MDM3Y2QyODNiOTBiNzk4N2ViOGYzOGYxZGM2In0seyJuYW1lIjoiSU1BR0VfaW1jLWNvbnRyb2xsZXJfX2NvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWNoYW5uZWwtY29udHJvbGxlci1yaGVsOEBzaGEyNTY6ZGM1ZTE4MDc0OTEzY2VlMDQ1ZmViNWIxMzE4OTA4YjcxNjZlYTczNWIzMzIyM2VjYzg5NDNhMDlkMDg1M2Q0MyJ9LHsibmFtZSI6IklNQUdFX2ltYy1kaXNwYXRjaGVyX19kaXNwYXRjaGVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1jaGFubmVsLWRpc3BhdGNoZXItcmhlbDhAc2hhMjU2OjUzYTZhNWRmYjM5ZjgzMzg5YjEwMzg5NDg4ZjRkN2FiYTZhNTM0MmY0MTFmZjdlZmE0MWJhYjMwZDg5ZDk2NDYifSx7Im5hbWUiOiJJTUFHRV9waW5nc291cmNlLW10LWFkYXB0ZXJfX2Rpc3BhdGNoZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW10cGluZy1yaGVsOEBzaGEyNTY6NGU2MzNmNjhhM2MzNmYxZDk5ZWY5MTRhMWE3Mjk2YWViNmZlNTVkOTY5ZmQ0OGRlOTE2YTI3MmI1OTcxYzdlNiJ9LHsibmFtZSI6IklNQUdFX2pvYi1zaW5rX19qb2Itc2luayIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctam9ic2luay1yaGVsOEBzaGEyNTY6Y2ZkYmQ2OGI3OGU5NDc1OTBlNjMzYjY2ODBkN2I4NWNmZDM5NGVhNDIyODdkM2RmYzgxYjc4MjNhM2FiNjZiZCJ9LHsibmFtZSI6IklNQUdFX0FQSVNFUlZFUl9SQV9JTUFHRSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctYXBpc2VydmVyLXJlY2VpdmUtYWRhcHRlci1yaGVsOEBzaGEyNTY6YzkwNmNkNGExYzQyMzg5YzdlNGIzOGRiNTc4NThmYWMyMjUwYjYzNTdlZmYwZGEwNDhlOGM2YWNkYjk1YmE5MyJ9LHsibmFtZSI6IklNQUdFX0RJU1BBVENIRVJfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWNoYW5uZWwtZGlzcGF0Y2hlci1yaGVsOEBzaGEyNTY6NTNhNmE1ZGZiMzlmODMzODliMTAzODk0ODhmNGQ3YWJhNmE1MzQyZjQxMWZmN2VmYTQxYmFiMzBkODlkOTY0NiJ9LHsibmFtZSI6IklNQUdFX0VWRU5UX1RSQU5TRk9STV9KU09OQVRBX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtdHJhbnNmb3JtLWpzb25hdGEtcmhlbDhAc2hhMjU2OjBiNjE4YzljODkyNDI4YTU5ZTA0OTlhM2VkMGViZWZhMmMwOTgxNjk5ODE3NDMzMTU5YmZjYWY2ODM3NDM1OTcifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TT1VSQ0VfVElNRVJfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy10aW1lci1zb3VyY2UtcmhlbDhAc2hhMjU2OjhlYzUxZjgwOTE5NjM4NGY5YjgzZWY1Nzg5YjEyYjYzNTg3NzJhNzYxYTcwNTUxMjlkYTU3MjI1NDM4MWVlZWYifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TT1VSQ0VfQVdTX1MzX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXMzLXNvdXJjZS1yaGVsOEBzaGEyNTY6ZWUzOGI2OGU5OGJmOWFkYjk0NTU0ZmQ0YjNhM2FlYzNiNTMzY2I0MDdkZDBlMGFmY2E3ZjM3ZTEwZDY1NTNkOSJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfU1FTX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXNxcy1zb3VyY2UtcmhlbDhAc2hhMjU2Ojg2ZTU1OTg2Yjk0OTllMGE5Y2NiZWY1OWEyZmI4NWRlMzY2M2ZlODY4OTdkMjVkYmE1NDEwMWU5MTAxYjFiOTEifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TT1VSQ0VfQVdTX0REQl9TVFJFQU1TX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLWRkYi1zdHJlYW1zLXNvdXJjZS1yaGVsOEBzaGEyNTY6NmFkYTQ2ZjY1NWUxM2RiNmU4ZmRlZDRkYjdlYzMwODEyM2NmODMwN2MxZWYxNzFiN2ViN2VjYTI2NGVlMmMyNyJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NJTktfTE9HX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtbG9nLXNpbmstcmhlbDhAc2hhMjU2OmUwZjBiOWY3ZDhjZWQ5NzkxOTg0NGJiNGMzNDJjZTg5YzVmZjIyYzZjYzc2NGQ2MmY2ODBkMGYzZWJhMzE5YjEifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TSU5LX0FXU19TM19JTUFHRSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW50ZWdyYXRpb25zLWF3cy1zMy1zaW5rLXJoZWw4QHNoYTI1Njo5NGQ1ODkwMGNiNjJkNjQzNzlmM2I5YjI3Y2Y3ZjY5MTczZDQwYjExNWI2ZDg0M2I5ZTgzODM5YTAwODBhMGExIn0seyJuYW1lIjoiSU1BR0VfSU5URUdSQVRJT05fU0lOS19BV1NfU1FTX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXNxcy1zaW5rLXJoZWw4QHNoYTI1NjpmOTcyNTdmMGFmNTM3ZmZlZDFmZjZmZDBiYjBhOGRiNThiNWI2YTQ0NTU5ZDAxMzZjYzVmMTM0ZThmZjM0ZjJhIn0seyJuYW1lIjoiSU1BR0VfSU5URUdSQVRJT05fU0lOS19BV1NfU05TX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXNucy1zaW5rLXJoZWw4QHNoYTI1NjozMWFlNjY3YTQ3MzcwZTEwNzM4NGQxMjUzYzdmZTBiNzA4NDQzZjlmOTkxMjEwZGVkMTY3NTkxYjRlNjljZWY1In0seyJuYW1lIjoiSU1BR0VfZXZlbnRtZXNoLWJhY2tlbmRfX2NvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWJhY2tzdGFnZS1wbHVnaW5zLWV2ZW50bWVzaC1yaGVsOEBzaGEyNTY6M2JjMzQ4NjdmN2E2MjBiY2RhY2U2N2U2NWEwZmZiNTFhZWFkNWU0YWExZjEwY2QwZWI3NDc2ZmU4ZWQxYWYxMiJ9LHsibmFtZSI6IklNQUdFX0tVQkVfUkJBQ19QUk9YWSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdDQvb3NlLWt1YmUtcmJhYy1wcm94eS1yaGVsOUBzaGEyNTY6Njc2NTFhZGZkOGU2YzhkMTJkMmI5NTg1YzcyM2Q1ZmJkYjY2NDgxOGY4MDMzMTJiZmUzNTIyZTA0YTgxZTliMCJ9LHsibmFtZSI6IklNQUdFX0tOX1BMVUdJTl9FVkVOVF9TRU5ERVIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXBsdWdpbi1ldmVudC1zZW5kZXItcmhlbDhAc2hhMjU2OmY3Nzk1MDg4Nzc3ZWE4NGZjNjE4MGI4MWI2MTMxOTYyOTQ0ZTM0OTE4ZTJjMDY2NzEwMzNhMWE1NzI1ODE3NzMifSx7Im5hbWUiOiJJTUFHRV9LTl9DTElFTlQiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWNsaWVudC1rbi1yaGVsOEBzaGEyNTY6NzFhYTA5Yjk4ZDkxMDA2YmUyYTgxYWMwMzNmNzJkZjcyNTZhOTM4OTAyMzYxMzA4YjhlYjM2ZWExOTg2OThjMyJ9LHsibmFtZSI6IklNQUdFX0tOX1BMVUdJTl9GVU5DX1VUSUwiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXBsdWdpbi1mdW5jLWZ1bmMtdXRpbC1yaGVsOEBzaGEyNTY6NTk4MTEwZTliOTFjMzk4ZTZmN2VhNjIxNWE2OWY5NTYyMzM3OTY4YTAyNGRlZDhlMGYxOTczNmM1ZmI1MzQ1NyJ9LHsibmFtZSI6IklNQUdFX0tOX1BMVUdJTl9GVU5DX1RFS1RPTl9CVUlMREFIIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vcmhlbDgvYnVpbGRhaEBzaGEyNTY6M2Q1MDVkOWMwZjVkNGNkNWE0ZWMwM2I4ZDAzODY1NmM2Y2RiZGY1MTkxZTAwY2U2Mzg4ZjdlMGU0ZDJmMWI3NCJ9LHsibmFtZSI6IklNQUdFX0tOX1BMVUdJTl9GVU5DX05PREVKU18yMF9NSU5JTUFMIiwidmFsdWUiOiJyZWdpc3RyeS5hY2Nlc3MucmVkaGF0LmNvbS91Ymk4L25vZGVqcy0yMC1taW5pbWFsQHNoYTI1NjphMmE3ZTM5OWFhZjA5YTQ4YzI4ZjQwODIwZGExNjcwOWI2MmFlZTZmMmJjNzAzMTE2YjkzNDVmYWI1ODMwODYxIn0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfT1BFTkpES18yMSIsInZhbHVlIjoicmVnaXN0cnkuYWNjZXNzLnJlZGhhdC5jb20vdWJpOC9vcGVuamRrLTIxQHNoYTI1Njo0NDE4OTdhMWY2OTFjN2Q0YjNhNjdiYjNlMGZlYTgzZTE4MzUyMjE0MjY0Y2IzODNmZDA1N2JiYmQ1ZWQ4NjNjIn0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfUFlUSE9OXzM5IiwidmFsdWUiOiJyZWdpc3RyeS5hY2Nlc3MucmVkaGF0LmNvbS91Ymk4L3B5dGhvbi0zOUBzaGEyNTY6MjdlNzk1ZmQ2YjFiNzdkZTcwZDFkYzczYTY1ZTRjNzkwNjUwNzQ4YTljZmRhMTM4ZmRiZDE5NGIzZDZlZWEzZCJ9LHsibmFtZSI6IktBRktBX0lNQUdFX2thZmthLWJyb2tlci1yZWNlaXZlcl9fa2Fma2EtYnJva2VyLXJlY2VpdmVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2ItcmVjZWl2ZXItcmhlbDhAc2hhMjU2OjkxYjMzNjc4YzUzY2RhMzFlNjMwOTQwYzE3MWZhN2Q1OTBmMDg4Yjc4MzZjMzlkOTcxMmYwZjZmMjg1YjlmNWIifSx7Im5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1icm9rZXItZGlzcGF0Y2hlcl9fa2Fma2EtYnJva2VyLWRpc3BhdGNoZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1NjowYTA2OGFkZDRmMjVkYzJmOTU4MjRjYTVkMTUxZjlmOGEwNzZmNjkwMDY2MDg3ODQxNTYzZDMxMDk0YTdmZjVhIn0seyJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2EtY2hhbm5lbC1yZWNlaXZlcl9fa2Fma2EtY2hhbm5lbC1yZWNlaXZlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZWtiLXJlY2VpdmVyLXJoZWw4QHNoYTI1Njo5MWIzMzY3OGM1M2NkYTMxZTYzMDk0MGMxNzFmYTdkNTkwZjA4OGI3ODM2YzM5ZDk3MTJmMGY2ZjI4NWI5ZjViIn0seyJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2EtY2hhbm5lbC1kaXNwYXRjaGVyX19rYWZrYS1jaGFubmVsLWRpc3BhdGNoZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1NjowYTA2OGFkZDRmMjVkYzJmOTU4MjRjYTVkMTUxZjlmOGEwNzZmNjkwMDY2MDg3ODQxNTYzZDMxMDk0YTdmZjVhIn0seyJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2EtY29udHJvbGxlcl9fY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZWtiLWthZmthLWNvbnRyb2xsZXItcmhlbDhAc2hhMjU2Ojc0NWYxMDczODU4NzYxNTFjZWE3ZDZhMTkyM2RmMTI4NjY0ZDcwOWEzYmMyNDQ1OThlMDQ0OTgyYjEyMjRmNzkifSx7Im5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1zaW5rLXJlY2VpdmVyX19rYWZrYS1zaW5rLXJlY2VpdmVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2ItcmVjZWl2ZXItcmhlbDhAc2hhMjU2OjkxYjMzNjc4YzUzY2RhMzFlNjMwOTQwYzE3MWZhN2Q1OTBmMDg4Yjc4MzZjMzlkOTcxMmYwZjZmMjg1YjlmNWIifSx7Im5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1zb3VyY2UtZGlzcGF0Y2hlcl9fa2Fma2Etc291cmNlLWRpc3BhdGNoZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1NjowYTA2OGFkZDRmMjVkYzJmOTU4MjRjYTVkMTUxZjlmOGEwNzZmNjkwMDY2MDg3ODQxNTYzZDMxMDk0YTdmZjVhIn0seyJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2Etd2ViaG9vay1ldmVudGluZ19fa2Fma2Etd2ViaG9vay1ldmVudGluZyIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZWtiLXdlYmhvb2sta2Fma2EtcmhlbDhAc2hhMjU2OjIxMjA0ZDA4ZmI5ZGE4YzQ1ZDA1N2UzYWJhNmU0Y2ZhN2U3NWMwZWZlYmZlYzQwMjliZTc1NzUwYTUxMDk2MWIifSx7Im5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1jb250cm9sbGVyLXBvc3QtaW5zdGFsbF9fcG9zdC1pbnN0YWxsIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2ItcG9zdC1pbnN0YWxsLXJoZWw4QHNoYTI1NjpmMTllMDE3NmNkZGFlMDE3ZGEwM2ViNDBlMmMyYWFkNjA3NmZkMzA2YmI4YWFhYjhmOWI3OTNhZGRhODRkMDAyIn0seyJuYW1lIjoiS0FGS0FfSU1BR0Vfa25hdGl2ZS1rYWZrYS1zdG9yYWdlLXZlcnNpb24tbWlncmF0b3JfX21pZ3JhdGUiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW1pZ3JhdGUtcmhlbDhAc2hhMjU2OjY0ZmI0YjBiMThmNGI4ZTliZDg2NDcwY2EzNmYyZjQxODcxMTFlZDQ0YjZjY2U1ZDE2ZDNhNDM0NDNjMDA0ODkifSx7Im5hbWUiOiJDVVJSRU5UX1ZFUlNJT04iLCJ2YWx1ZSI6IjEuMzYuMSJ9LHsibmFtZSI6IktOQVRJVkVfU0VSVklOR19WRVJTSU9OIiwidmFsdWUiOiIxLjE2In0seyJuYW1lIjoiS05BVElWRV9FVkVOVElOR19WRVJTSU9OIiwidmFsdWUiOiIxLjE2In0seyJuYW1lIjoiS05BVElWRV9FVkVOVElOR19LQUZLQV9CUk9LRVJfVkVSU0lPTiIsInZhbHVlIjoiMS4xNiJ9XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9zZXJ2ZXJsZXNzLWtuLW9wZXJhdG9yLXJoZWw4QHNoYTI1NjphYmY5Nzc5MDcyNmRhMTI5ZmFiNGI2MmI5YmM3YjNjNGYyMjVjMWZiNjg1NTAzNTliZTQ0YTAxMWU2MGQ1NGYzIiwiaW1hZ2VQdWxsUG9saWN5IjoiQWx3YXlzIiwibGl2ZW5lc3NQcm9iZSI6eyJodHRwR2V0Ijp7InBhdGgiOiIvaGVhbHRoeiIsInBvcnQiOjg2ODd9fSwibmFtZSI6ImtuYXRpdmUtb3BlbnNoaWZ0IiwicG9ydHMiOlt7ImNvbnRhaW5lclBvcnQiOjgwODAsIm5hbWUiOiJodHRwLWNsaSJ9XSwicmVhZGluZXNzUHJvYmUiOnsiaHR0cEdldCI6eyJwYXRoIjoiL3JlYWR5eiIsInBvcnQiOjg2ODd9fSwic2VjdXJpdHlDb250ZXh0Ijp7ImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6ZmFsc2UsImNhcGFiaWxpdGllcyI6eyJkcm9wIjpbIkFMTCJdfSwicmVhZE9ubHlSb290RmlsZXN5c3RlbSI6dHJ1ZSwicnVuQXNOb25Sb290Ijp0cnVlfSwidm9sdW1lTW91bnRzIjpbeyJtb3VudFBhdGgiOiIvY2xpLWFydGlmYWN0cyIsIm5hbWUiOiJjbGktYXJ0aWZhY3RzIn1dfV0sImluaXRDb250YWluZXJzIjpbeyJjb21tYW5kIjpbInNoIiwiLWMiLCJybSAtcmYgL2NsaS1hcnRpZmFjdHMvKiBcdTAwMjZcdTAwMjYgY3AgL3Vzci9zaGFyZS9rbi8qKi8qIC9jbGktYXJ0aWZhY3RzIFx1MDAyNlx1MDAyNiBjaG1vZCA0NDQgL2NsaS1hcnRpZmFjdHMvKiJdLCJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWNsaWVudC1jbGktYXJ0aWZhY3RzLXJoZWw4QHNoYTI1NjpiMzc2M2ZmMGQ5YmViZjhmZjVmZjI1NzBhOWZmZWFhZjRhZjZlNDFlNDFmNWFmNWY4MTA1MzlmZWUzMThhZDdiIiwiaW1hZ2VQdWxsUG9saWN5IjoiQWx3YXlzIiwibmFtZSI6ImNsaS1hcnRpZmFjdHMiLCJzZWN1cml0eUNvbnRleHQiOnsiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjpmYWxzZSwiY2FwYWJpbGl0aWVzIjp7ImRyb3AiOlsiQUxMIl19LCJydW5Bc05vblJvb3QiOnRydWV9LCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii9jbGktYXJ0aWZhY3RzIiwibmFtZSI6ImNsaS1hcnRpZmFjdHMifV19XSwic2VydmljZUFjY291bnROYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQiLCJ2b2x1bWVzIjpbeyJlbXB0eURpciI6e30sIm5hbWUiOiJjbGktYXJ0aWZhY3RzIn1dfX19fSx7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIiwic3BlYyI6eyJyZXBsaWNhcyI6MSwic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsibmFtZSI6ImtuYXRpdmUtb3BlbnNoaWZ0LWluZ3Jlc3MifX0sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcyJ9fSwic3BlYyI6eyJjb250YWluZXJzIjpbeyJlbnYiOlt7Im5hbWUiOiJNRVRSSUNTX0RPTUFJTiIsInZhbHVlIjoia25hdGl2ZS5kZXYvc2VydmluZyJ9LHsibmFtZSI6IldBVENIX05BTUVTUEFDRSIsInZhbHVlIjoiIn0seyJuYW1lIjoiUE9EX05BTUUiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEubmFtZSJ9fX0seyJuYW1lIjoiT1BFUkFUT1JfTkFNRSIsInZhbHVlIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcyJ9LHsibmFtZSI6IlNZU1RFTV9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEubmFtZXNwYWNlIn19fSx7Im5hbWUiOiJLVUJFUk5FVEVTX01JTl9WRVJTSU9OIiwidmFsdWUiOiJ2MS4wLjAifSx7Im5hbWUiOiJST1VURV9IQVBST1hZX1RJTUVPVVQiLCJ2YWx1ZSI6IjYwMCJ9XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9zZXJ2ZXJsZXNzLWluZ3Jlc3MtcmhlbDhAc2hhMjU2OjI5NjEzNTQ1YmYxNzU4YjY3OTc3NzkzOTYzYWIzNGZiMmY2ZDFmM2Q0ZjViNDE1OGFkNGM5MmFkZmVlMjBjNWEiLCJpbWFnZVB1bGxQb2xpY3kiOiJBbHdheXMiLCJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcyIsInBvcnRzIjpbeyJjb250YWluZXJQb3J0Ijo5MDkwLCJuYW1lIjoibWV0cmljcyJ9XSwic2VjdXJpdHlDb250ZXh0Ijp7ImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6ZmFsc2UsImNhcGFiaWxpdGllcyI6eyJkcm9wIjpbIkFMTCJdfSwicmVhZE9ubHlSb290RmlsZXN5c3RlbSI6dHJ1ZSwicnVuQXNOb25Sb290Ijp0cnVlfX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIn19fX1dfSwic3RyYXRlZ3kiOiJkZXBsb3ltZW50In0sImluc3RhbGxNb2RlcyI6W3sic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik93bk5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJBbGxOYW1lc3BhY2VzIn1dLCJrZXl3b3JkcyI6WyJzZXJ2ZXJsZXNzIiwiRmFhUyIsIm1pY3Jvc2VydmljZXMiLCJzY2FsZSB0byB6ZXJvIiwia25hdGl2ZSIsInNlcnZpbmciLCJldmVudGluZyIsImthZmthIl0sImxpbmtzIjpbeyJuYW1lIjoiRG9jdW1lbnRhdGlvbiIsInVybCI6Imh0dHBzOi8vZG9jcy5yZWRoYXQuY29tL2VuL2RvY3VtZW50YXRpb24vcmVkX2hhdF9vcGVuc2hpZnRfc2VydmVybGVzcy8xLjM2L2h0bWwvaW5zdGFsbGluZ19vcGVuc2hpZnRfc2VydmVybGVzcy9pbmRleCJ9LHsibmFtZSI6IlNvdXJjZSBSZXBvc2l0b3J5IiwidXJsIjoiaHR0cHM6Ly9naXRodWIuY29tL29wZW5zaGlmdC1rbmF0aXZlL3NlcnZlcmxlc3Mtb3BlcmF0b3IifV0sIm1haW50YWluZXJzIjpbeyJlbWFpbCI6InN1cHBvcnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJTZXJ2ZXJsZXNzIFRlYW0ifV0sIm1hdHVyaXR5Ijoic3RhYmxlIiwibWluS3ViZVZlcnNpb24iOiIxLjI1LjAiLCJwcm92aWRlciI6eyJuYW1lIjoiUmVkIEhhdCJ9LCJyZWxhdGVkSW1hZ2VzIjpbeyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL3NlcnZlcmxlc3Mtb3BlbnNoaWZ0LWtuLXJoZWw4LW9wZXJhdG9yQHNoYTI1NjpmMWExMzcyNTU2N2RlMzU3ZGU0MjQ2Yjg3YTJlZDY0YjNkY2UwMmM3NDA2Yjg2MjFhZDhkMmJiZWFjYzBjY2ZhIiwibmFtZSI6ImtuYXRpdmUtb3BlcmF0b3IifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEvc2VydmVybGVzcy1rbi1vcGVyYXRvci1yaGVsOEBzaGEyNTY6YWJmOTc3OTA3MjZkYTEyOWZhYjRiNjJiOWJjN2IzYzRmMjI1YzFmYjY4NTUwMzU5YmU0NGEwMTFlNjBkNTRmMyIsIm5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdCJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9zZXJ2ZXJsZXNzLWluZ3Jlc3MtcmhlbDhAc2hhMjU2OjI5NjEzNTQ1YmYxNzU4YjY3OTc3NzkzOTYzYWIzNGZiMmY2ZDFmM2Q0ZjViNDE1OGFkNGM5MmFkZmVlMjBjNWEiLCJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcyJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLXF1ZXVlLXJoZWw4QHNoYTI1NjozMTMzYzE3N2ZjYmZkNGFiYjg5YjI3M2E3Y2UyZmIyMjBlMDUxY2U5NTYxOTNiMWQxNDljN2EwNDBmYzA3ZTgzIiwibmFtZSI6IklNQUdFX3F1ZXVlLXByb3h5In0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctYWN0aXZhdG9yLXJoZWw4QHNoYTI1NjowNDJjZTFlN2JlMTBhNWY1MWY5NDg3YWYwMTk2Y2IyNDlmNWQ4ZTY4MjFjZTdjMmFiMDVjNTMyYjdhMTg0MzhjIiwibmFtZSI6IklNQUdFX2FjdGl2YXRvciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLWF1dG9zY2FsZXItcmhlbDhAc2hhMjU2OjBiNjlmYzgzOWY1NjUxYmZmZmNiZjg2MzY2Zjk0ZGEwZWMzZTI5ZTZjMjE3YTI2ZmZjZTdiZDc2ZmJkYTA5MzkiLCJuYW1lIjoiSU1BR0VfYXV0b3NjYWxlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLWF1dG9zY2FsZXItaHBhLXJoZWw4QHNoYTI1Njo0ZmEwY2U3YWMxMzUxYWE0Y2JlODU4NDcyYmY5Zjk1Mzk0Mjk2MWE1NDMwZjg1YmU1NjU2ZjI5NTA4ZDI1NGRiIiwibmFtZSI6IklNQUdFX2F1dG9zY2FsZXItaHBhIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctY29udHJvbGxlci1yaGVsOEBzaGEyNTY6NTBhNjJiZjY0MWExMjRkYmEzNzI2MmRhMWU4MmVmMTRlNmI2Y2NiNGM4NTczZmE1MzdjMTlkM2IxYjc3YTYyNyIsIm5hbWUiOiJJTUFHRV9jb250cm9sbGVyX19jb250cm9sbGVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctd2ViaG9vay1yaGVsOEBzaGEyNTY6ZGU0NWE2MGJjNDVlMWI2N2M2Zjg4ZWIxYzg4NWJkYTEyY2MxMzYzMzZkYzVmYjJlMGI4Y2JmNjNhYTYyYTZiZiIsIm5hbWUiOiJJTUFHRV93ZWJob29rX193ZWJob29rIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctc3RvcmFnZS12ZXJzaW9uLW1pZ3JhdGlvbi1yaGVsOEBzaGEyNTY6ZmJlNDYyNjk1YjNlNzAzZDQ3MjIyNzdhNjE3YzZlZjA2ZmIzN2MwNzM2NmJhNWM2MjExZGQ1NmI1MDM4YzEzMCIsIm5hbWUiOiJJTUFHRV9zdG9yYWdlLXZlcnNpb24tbWlncmF0aW9uLXNlcnZpbmctX19taWdyYXRlIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmljZS1tZXNoL3Byb3h5djItcmhlbDhAc2hhMjU2OjFjMTljZjg2ZmQwNTk0MGVmM2QwZDZlNzllNmYzNzFkYjk5MzE1M2Y3MGJhZWRiOTEwN2JiZTczZjIzNmRjMjQiLCJuYW1lIjoiSU1BR0Vfa291cmllci1nYXRld2F5In0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL25ldC1rb3VyaWVyLWtvdXJpZXItcmhlbDhAc2hhMjU2OjkwZTMyMmUzMzA0MjIyMTk5ZWZjOWJmYTI1NDUyNTBkZGUyYjIyNDAzNjY2YzVlMDAzNzJiZGFlYWExOGRkZWUiLCJuYW1lIjoiSU1BR0VfbmV0LWtvdXJpZXItY29udHJvbGxlcl9fY29udHJvbGxlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9uZXQtaXN0aW8tY29udHJvbGxlci1yaGVsOEBzaGEyNTY6NzY1NWVjOTVlNTgyOWQzZDc4NjAzOWNjNmM2OTBjOWZiNDQyZGM4NWYxYzg4NDgxY2YzNGY5YTZmMTY4NDAzOSIsIm5hbWUiOiJJTUFHRV9uZXQtaXN0aW8tY29udHJvbGxlcl9fY29udHJvbGxlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9uZXQtaXN0aW8td2ViaG9vay1yaGVsOEBzaGEyNTY6ZmE4ZWJiNzBiNmYxNTEwYzU1YTAzYmFlYzk5ZDM0OTdkNmFmYjkzMDE1MmZmMzczMWZlNTcyMTE2NzVhYWRjMCIsIm5hbWUiOiJJTUFHRV9uZXQtaXN0aW8td2ViaG9va19fd2ViaG9vayJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1jb250cm9sbGVyLXJoZWw4QHNoYTI1Njo4MDQzMDFkMzE1YzhkNjk1OGQxMjhmZDU5NTExODQ0MzdmNzU1Njc0ZDhlYzVhNDU4MmQ2MTI4ZTk4OWI5NjZhIiwibmFtZSI6IklNQUdFX2V2ZW50aW5nLWNvbnRyb2xsZXJfX2V2ZW50aW5nLWNvbnRyb2xsZXIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaXN0aW8tY29udHJvbGxlci1yaGVsOEBzaGEyNTY6MjBhZTJkYTFlOGQ4MmQzMTllMjU2YzZjODEyOTllZjg0MmNhMzRkNTdjNjk2NGQ2MWUwMGEyNzVhNDExNTliNCIsIm5hbWUiOiJJTUFHRV9ldmVudGluZy1pc3Rpby1jb250cm9sbGVyX19ldmVudGluZy1pc3Rpby1jb250cm9sbGVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLXdlYmhvb2stcmhlbDhAc2hhMjU2OmNhOGE2MTkzNDI1ZjRiMjc1MGQ1OGQ2YjFkYTQyMTI0NGFhMDc3YTQ0YTM0YjQxODRlMzViOWQ5NGM5NDMzZmIiLCJuYW1lIjoiSU1BR0VfZXZlbnRpbmctd2ViaG9va19fZXZlbnRpbmctd2ViaG9vayJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1taWdyYXRlLXJoZWw4QHNoYTI1Njo2NGZiNGIwYjE4ZjRiOGU5YmQ4NjQ3MGNhMzZmMmY0MTg3MTExZWQ0NGI2Y2NlNWQxNmQzYTQzNDQzYzAwNDg5IiwibmFtZSI6IklNQUdFX3N0b3JhZ2UtdmVyc2lvbi1taWdyYXRpb24tZXZlbnRpbmctX19taWdyYXRlIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW10Y2hhbm5lbC1icm9rZXItcmhlbDhAc2hhMjU2OmVkYzE5ZTMxMTk0NzA1M2RiY2ViMjFkNTIyNWFkNTJhNDhmNjFlYjNjMDc5ZTBmOTJmOTdiYTMxMWJiMTIxZjciLCJuYW1lIjoiSU1BR0VfbXQtYnJva2VyLWNvbnRyb2xsZXJfX210LWJyb2tlci1jb250cm9sbGVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWZpbHRlci1yaGVsOEBzaGEyNTY6NjA1ZjhhYjQ4ZTc2MWY4OGRlNDNiNGFhYzQzOWQ2NTc2ZmVkNDZkNmQ5NjU5YTdjYjdkMGMzZDJkODdjYTU1YSIsIm5hbWUiOiJJTUFHRV9tdC1icm9rZXItZmlsdGVyX19maWx0ZXIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW5ncmVzcy1yaGVsOEBzaGEyNTY6NjI1NDhlOTRlY2Y1MmNkNTBiM2RmN2ZjMmNiMjc1Y2UzMWYxODAzN2NkMjgzYjkwYjc5ODdlYjhmMzhmMWRjNiIsIm5hbWUiOiJJTUFHRV9tdC1icm9rZXItaW5ncmVzc19faW5ncmVzcyJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1jaGFubmVsLWNvbnRyb2xsZXItcmhlbDhAc2hhMjU2OmRjNWUxODA3NDkxM2NlZTA0NWZlYjViMTMxODkwOGI3MTY2ZWE3MzViMzMyMjNlY2M4OTQzYTA5ZDA4NTNkNDMiLCJuYW1lIjoiSU1BR0VfaW1jLWNvbnRyb2xsZXJfX2NvbnRyb2xsZXIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctY2hhbm5lbC1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1Njo1M2E2YTVkZmIzOWY4MzM4OWIxMDM4OTQ4OGY0ZDdhYmE2YTUzNDJmNDExZmY3ZWZhNDFiYWIzMGQ4OWQ5NjQ2IiwibmFtZSI6IklNQUdFX2ltYy1kaXNwYXRjaGVyX19kaXNwYXRjaGVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW10cGluZy1yaGVsOEBzaGEyNTY6NGU2MzNmNjhhM2MzNmYxZDk5ZWY5MTRhMWE3Mjk2YWViNmZlNTVkOTY5ZmQ0OGRlOTE2YTI3MmI1OTcxYzdlNiIsIm5hbWUiOiJJTUFHRV9waW5nc291cmNlLW10LWFkYXB0ZXJfX2Rpc3BhdGNoZXIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctam9ic2luay1yaGVsOEBzaGEyNTY6Y2ZkYmQ2OGI3OGU5NDc1OTBlNjMzYjY2ODBkN2I4NWNmZDM5NGVhNDIyODdkM2RmYzgxYjc4MjNhM2FiNjZiZCIsIm5hbWUiOiJJTUFHRV9qb2Itc2lua19fam9iLXNpbmsifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctYXBpc2VydmVyLXJlY2VpdmUtYWRhcHRlci1yaGVsOEBzaGEyNTY6YzkwNmNkNGExYzQyMzg5YzdlNGIzOGRiNTc4NThmYWMyMjUwYjYzNTdlZmYwZGEwNDhlOGM2YWNkYjk1YmE5MyIsIm5hbWUiOiJJTUFHRV9BUElTRVJWRVJfUkFfSU1BR0UifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctY2hhbm5lbC1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1Njo1M2E2YTVkZmIzOWY4MzM4OWIxMDM4OTQ4OGY0ZDdhYmE2YTUzNDJmNDExZmY3ZWZhNDFiYWIzMGQ4OWQ5NjQ2IiwibmFtZSI6IklNQUdFX0RJU1BBVENIRVJfSU1BR0UifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW50ZWdyYXRpb25zLXRyYW5zZm9ybS1qc29uYXRhLXJoZWw4QHNoYTI1NjowYjYxOGM5Yzg5MjQyOGE1OWUwNDk5YTNlZDBlYmVmYTJjMDk4MTY5OTgxNzQzMzE1OWJmY2FmNjgzNzQzNTk3IiwibmFtZSI6IklNQUdFX0VWRU5UX1RSQU5TRk9STV9KU09OQVRBX0lNQUdFIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy10aW1lci1zb3VyY2UtcmhlbDhAc2hhMjU2OjhlYzUxZjgwOTE5NjM4NGY5YjgzZWY1Nzg5YjEyYjYzNTg3NzJhNzYxYTcwNTUxMjlkYTU3MjI1NDM4MWVlZWYiLCJuYW1lIjoiSU1BR0VfSU5URUdSQVRJT05fU09VUkNFX1RJTUVSX0lNQUdFIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3MtczMtc291cmNlLXJoZWw4QHNoYTI1NjplZTM4YjY4ZTk4YmY5YWRiOTQ1NTRmZDRiM2EzYWVjM2I1MzNjYjQwN2RkMGUwYWZjYTdmMzdlMTBkNjU1M2Q5IiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfUzNfSU1BR0UifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW50ZWdyYXRpb25zLWF3cy1zcXMtc291cmNlLXJoZWw4QHNoYTI1Njo4NmU1NTk4NmI5NDk5ZTBhOWNjYmVmNTlhMmZiODVkZTM2NjNmZTg2ODk3ZDI1ZGJhNTQxMDFlOTEwMWIxYjkxIiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfU1FTX0lNQUdFIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3MtZGRiLXN0cmVhbXMtc291cmNlLXJoZWw4QHNoYTI1Njo2YWRhNDZmNjU1ZTEzZGI2ZThmZGVkNGRiN2VjMzA4MTIzY2Y4MzA3YzFlZjE3MWI3ZWI3ZWNhMjY0ZWUyYzI3IiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfRERCX1NUUkVBTVNfSU1BR0UifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW50ZWdyYXRpb25zLWxvZy1zaW5rLXJoZWw4QHNoYTI1NjplMGYwYjlmN2Q4Y2VkOTc5MTk4NDRiYjRjMzQyY2U4OWM1ZmYyMmM2Y2M3NjRkNjJmNjgwZDBmM2ViYTMxOWIxIiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NJTktfTE9HX0lNQUdFIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3MtczMtc2luay1yaGVsOEBzaGEyNTY6OTRkNTg5MDBjYjYyZDY0Mzc5ZjNiOWIyN2NmN2Y2OTE3M2Q0MGIxMTViNmQ4NDNiOWU4MzgzOWEwMDgwYTBhMSIsIm5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TSU5LX0FXU19TM19JTUFHRSJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXNxcy1zaW5rLXJoZWw4QHNoYTI1NjpmOTcyNTdmMGFmNTM3ZmZlZDFmZjZmZDBiYjBhOGRiNThiNWI2YTQ0NTU5ZDAxMzZjYzVmMTM0ZThmZjM0ZjJhIiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NJTktfQVdTX1NRU19JTUFHRSJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXNucy1zaW5rLXJoZWw4QHNoYTI1NjozMWFlNjY3YTQ3MzcwZTEwNzM4NGQxMjUzYzdmZTBiNzA4NDQzZjlmOTkxMjEwZGVkMTY3NTkxYjRlNjljZWY1IiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NJTktfQVdTX1NOU19JTUFHRSJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1iYWNrc3RhZ2UtcGx1Z2lucy1ldmVudG1lc2gtcmhlbDhAc2hhMjU2OjNiYzM0ODY3ZjdhNjIwYmNkYWNlNjdlNjVhMGZmYjUxYWVhZDVlNGFhMWYxMGNkMGViNzQ3NmZlOGVkMWFmMTIiLCJuYW1lIjoiSU1BR0VfZXZlbnRtZXNoLWJhY2tlbmRfX2NvbnRyb2xsZXIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdDQvb3NlLWt1YmUtcmJhYy1wcm94eS1yaGVsOUBzaGEyNTY6Njc2NTFhZGZkOGU2YzhkMTJkMmI5NTg1YzcyM2Q1ZmJkYjY2NDgxOGY4MDMzMTJiZmUzNTIyZTA0YTgxZTliMCIsIm5hbWUiOiJJTUFHRV9LVUJFX1JCQUNfUFJPWFkifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tcGx1Z2luLWV2ZW50LXNlbmRlci1yaGVsOEBzaGEyNTY6Zjc3OTUwODg3NzdlYTg0ZmM2MTgwYjgxYjYxMzE5NjI5NDRlMzQ5MThlMmMwNjY3MTAzM2ExYTU3MjU4MTc3MyIsIm5hbWUiOiJJTUFHRV9LTl9QTFVHSU5fRVZFTlRfU0VOREVSIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWNsaWVudC1rbi1yaGVsOEBzaGEyNTY6NzFhYTA5Yjk4ZDkxMDA2YmUyYTgxYWMwMzNmNzJkZjcyNTZhOTM4OTAyMzYxMzA4YjhlYjM2ZWExOTg2OThjMyIsIm5hbWUiOiJJTUFHRV9LTl9DTElFTlQifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tcGx1Z2luLWZ1bmMtZnVuYy11dGlsLXJoZWw4QHNoYTI1Njo1OTgxMTBlOWI5MWMzOThlNmY3ZWE2MjE1YTY5Zjk1NjIzMzc5NjhhMDI0ZGVkOGUwZjE5NzM2YzVmYjUzNDU3IiwibmFtZSI6IklNQUdFX0tOX1BMVUdJTl9GVU5DX1VUSUwifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL3JoZWw4L2J1aWxkYWhAc2hhMjU2OjNkNTA1ZDljMGY1ZDRjZDVhNGVjMDNiOGQwMzg2NTZjNmNkYmRmNTE5MWUwMGNlNjM4OGY3ZTBlNGQyZjFiNzQiLCJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfVEVLVE9OX0JVSUxEQUgifSx7ImltYWdlIjoicmVnaXN0cnkuYWNjZXNzLnJlZGhhdC5jb20vdWJpOC9ub2RlanMtMjAtbWluaW1hbEBzaGEyNTY6YTJhN2UzOTlhYWYwOWE0OGMyOGY0MDgyMGRhMTY3MDliNjJhZWU2ZjJiYzcwMzExNmI5MzQ1ZmFiNTgzMDg2MSIsIm5hbWUiOiJJTUFHRV9LTl9QTFVHSU5fRlVOQ19OT0RFSlNfMjBfTUlOSU1BTCJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5hY2Nlc3MucmVkaGF0LmNvbS91Ymk4L29wZW5qZGstMjFAc2hhMjU2OjQ0MTg5N2ExZjY5MWM3ZDRiM2E2N2JiM2UwZmVhODNlMTgzNTIyMTQyNjRjYjM4M2ZkMDU3YmJiZDVlZDg2M2MiLCJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfT1BFTkpES18yMSJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5hY2Nlc3MucmVkaGF0LmNvbS91Ymk4L3B5dGhvbi0zOUBzaGEyNTY6MjdlNzk1ZmQ2YjFiNzdkZTcwZDFkYzczYTY1ZTRjNzkwNjUwNzQ4YTljZmRhMTM4ZmRiZDE5NGIzZDZlZWEzZCIsIm5hbWUiOiJJTUFHRV9LTl9QTFVHSU5fRlVOQ19QWVRIT05fMzkifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZWtiLXJlY2VpdmVyLXJoZWw4QHNoYTI1Njo5MWIzMzY3OGM1M2NkYTMxZTYzMDk0MGMxNzFmYTdkNTkwZjA4OGI3ODM2YzM5ZDk3MTJmMGY2ZjI4NWI5ZjViIiwibmFtZSI6IktBRktBX0lNQUdFX2thZmthLWJyb2tlci1yZWNlaXZlcl9fa2Fma2EtYnJva2VyLXJlY2VpdmVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1NjowYTA2OGFkZDRmMjVkYzJmOTU4MjRjYTVkMTUxZjlmOGEwNzZmNjkwMDY2MDg3ODQxNTYzZDMxMDk0YTdmZjVhIiwibmFtZSI6IktBRktBX0lNQUdFX2thZmthLWJyb2tlci1kaXNwYXRjaGVyX19rYWZrYS1icm9rZXItZGlzcGF0Y2hlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2ItcmVjZWl2ZXItcmhlbDhAc2hhMjU2OjkxYjMzNjc4YzUzY2RhMzFlNjMwOTQwYzE3MWZhN2Q1OTBmMDg4Yjc4MzZjMzlkOTcxMmYwZjZmMjg1YjlmNWIiLCJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2EtY2hhbm5lbC1yZWNlaXZlcl9fa2Fma2EtY2hhbm5lbC1yZWNlaXZlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2ItZGlzcGF0Y2hlci1yaGVsOEBzaGEyNTY6MGEwNjhhZGQ0ZjI1ZGMyZjk1ODI0Y2E1ZDE1MWY5ZjhhMDc2ZjY5MDA2NjA4Nzg0MTU2M2QzMTA5NGE3ZmY1YSIsIm5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1jaGFubmVsLWRpc3BhdGNoZXJfX2thZmthLWNoYW5uZWwtZGlzcGF0Y2hlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2Ita2Fma2EtY29udHJvbGxlci1yaGVsOEBzaGEyNTY6NzQ1ZjEwNzM4NTg3NjE1MWNlYTdkNmExOTIzZGYxMjg2NjRkNzA5YTNiYzI0NDU5OGUwNDQ5ODJiMTIyNGY3OSIsIm5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1jb250cm9sbGVyX19jb250cm9sbGVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1yZWNlaXZlci1yaGVsOEBzaGEyNTY6OTFiMzM2NzhjNTNjZGEzMWU2MzA5NDBjMTcxZmE3ZDU5MGYwODhiNzgzNmMzOWQ5NzEyZjBmNmYyODViOWY1YiIsIm5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1zaW5rLXJlY2VpdmVyX19rYWZrYS1zaW5rLXJlY2VpdmVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1NjowYTA2OGFkZDRmMjVkYzJmOTU4MjRjYTVkMTUxZjlmOGEwNzZmNjkwMDY2MDg3ODQxNTYzZDMxMDk0YTdmZjVhIiwibmFtZSI6IktBRktBX0lNQUdFX2thZmthLXNvdXJjZS1kaXNwYXRjaGVyX19rYWZrYS1zb3VyY2UtZGlzcGF0Y2hlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2Itd2ViaG9vay1rYWZrYS1yaGVsOEBzaGEyNTY6MjEyMDRkMDhmYjlkYThjNDVkMDU3ZTNhYmE2ZTRjZmE3ZTc1YzBlZmViZmVjNDAyOWJlNzU3NTBhNTEwOTYxYiIsIm5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS13ZWJob29rLWV2ZW50aW5nX19rYWZrYS13ZWJob29rLWV2ZW50aW5nIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1wb3N0LWluc3RhbGwtcmhlbDhAc2hhMjU2OmYxOWUwMTc2Y2RkYWUwMTdkYTAzZWI0MGUyYzJhYWQ2MDc2ZmQzMDZiYjhhYWFiOGY5Yjc5M2FkZGE4NGQwMDIiLCJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2EtY29udHJvbGxlci1wb3N0LWluc3RhbGxfX3Bvc3QtaW5zdGFsbCJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1taWdyYXRlLXJoZWw4QHNoYTI1Njo2NGZiNGIwYjE4ZjRiOGU5YmQ4NjQ3MGNhMzZmMmY0MTg3MTExZWQ0NGI2Y2NlNWQxNmQzYTQzNDQzYzAwNDg5IiwibmFtZSI6IktBRktBX0lNQUdFX2tuYXRpdmUta2Fma2Etc3RvcmFnZS12ZXJzaW9uLW1pZ3JhdG9yX19taWdyYXRlIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL3NlcnZlcmxlc3MtbXVzdC1nYXRoZXItcmhlbDhAc2hhMjU2OjU4ZjNlMTgwNmZlY2RiNGQwMzA2NDZjY2VmZDFhMTQ3YmZmZWYyMWVlZTEyMzM0ODdjY2RhYjMzMGU4ZDRlMWQiLCJuYW1lIjoiSU1BR0VfTVVTVF9HQVRIRVIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tY2xpZW50LWNsaS1hcnRpZmFjdHMtcmhlbDhAc2hhMjU2OmIzNzYzZmYwZDliZWJmOGZmNWZmMjU3MGE5ZmZlYWFmNGFmNmU0MWU0MWY1YWY1ZjgxMDUzOWZlZTMxOGFkN2IiLCJuYW1lIjoiSU1BR0VfS05fQ0xJRU5UX0NMSV9BUlRJRkFDVFMifV0sInJlcGxhY2VzIjoic2VydmVybGVzcy1vcGVyYXRvci52MS4zNi4wIiwidmVyc2lvbiI6IjEuMzYuMSIsIndlYmhvb2tkZWZpbml0aW9ucyI6W3siYWRtaXNzaW9uUmV2aWV3VmVyc2lvbnMiOlsidjFiZXRhMSJdLCJjb250YWluZXJQb3J0Ijo5ODc2LCJkZXBsb3ltZW50TmFtZSI6ImtuYXRpdmUtb3BlbnNoaWZ0IiwiZmFpbHVyZVBvbGljeSI6Iklnbm9yZSIsImdlbmVyYXRlTmFtZSI6InZhbGlkYXRpbmcua25hdGl2ZWV2ZW50aW5ncy5vcGVyYXRvci5zZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pbyIsInJ1bGVzIjpbeyJhcGlHcm91cHMiOlsib3BlcmF0b3Iua25hdGl2ZS5kZXYiXSwiYXBpVmVyc2lvbnMiOlsidjFiZXRhMSJdLCJvcGVyYXRpb25zIjpbIkNSRUFURSIsIlVQREFURSJdLCJyZXNvdXJjZXMiOlsia25hdGl2ZWV2ZW50aW5ncyJdfV0sInNpZGVFZmZlY3RzIjoiTm9uZSIsInR5cGUiOiJWYWxpZGF0aW5nQWRtaXNzaW9uV2ViaG9vayIsIndlYmhvb2tQYXRoIjoiL3ZhbGlkYXRlLWtuYXRpdmVldmVudGluZ3MifSx7ImFkbWlzc2lvblJldmlld1ZlcnNpb25zIjpbInYxYmV0YTEiXSwiY29udGFpbmVyUG9ydCI6OTg3NiwiZGVwbG95bWVudE5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdCIsImZhaWx1cmVQb2xpY3kiOiJJZ25vcmUiLCJnZW5lcmF0ZU5hbWUiOiJ2YWxpZGF0aW5nLmtuYXRpdmVzZXJ2aW5ncy5vcGVyYXRvci5zZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pbyIsInJ1bGVzIjpbeyJhcGlHcm91cHMiOlsib3BlcmF0b3Iua25hdGl2ZS5kZXYiXSwiYXBpVmVyc2lvbnMiOlsidjFiZXRhMSJdLCJvcGVyYXRpb25zIjpbIkNSRUFURSIsIlVQREFURSJdLCJyZXNvdXJjZXMiOlsia25hdGl2ZXNlcnZpbmdzIl19XSwic2lkZUVmZmVjdHMiOiJOb25lIiwidHlwZSI6IlZhbGlkYXRpbmdBZG1pc3Npb25XZWJob29rIiwid2ViaG9va1BhdGgiOiIvdmFsaWRhdGUta25hdGl2ZXNlcnZpbmdzIn0seyJhZG1pc3Npb25SZXZpZXdWZXJzaW9ucyI6WyJ2MWJldGExIl0sImNvbnRhaW5lclBvcnQiOjk4NzYsImRlcGxveW1lbnROYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQiLCJmYWlsdXJlUG9saWN5IjoiSWdub3JlIiwiZ2VuZXJhdGVOYW1lIjoidmFsaWRhdGluZy5rbmF0aXZla2Fma2FzLm9wZXJhdG9yLnNlcnZlcmxlc3Mub3BlbnNoaWZ0LmlvIiwicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJvcGVyYXRvci5zZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pbyJdLCJhcGlWZXJzaW9ucyI6WyJ2MWFscGhhMSJdLCJvcGVyYXRpb25zIjpbIkNSRUFURSIsIlVQREFURSJdLCJyZXNvdXJjZXMiOlsia25hdGl2ZWthZmthcyJdfV0sInNpZGVFZmZlY3RzIjoiTm9uZSIsInR5cGUiOiJWYWxpZGF0aW5nQWRtaXNzaW9uV2ViaG9vayIsIndlYmhvb2tQYXRoIjoiL3ZhbGlkYXRlLWtuYXRpdmVrYWZrYXMifSx7ImFkbWlzc2lvblJldmlld1ZlcnNpb25zIjpbInYxYmV0YTEiXSwiY29udGFpbmVyUG9ydCI6OTg3NiwiZGVwbG95bWVudE5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdCIsImZhaWx1cmVQb2xpY3kiOiJJZ25vcmUiLCJnZW5lcmF0ZU5hbWUiOiJtdXRhdGluZy5rbmF0aXZlZXZlbnRpbmdzLm9wZXJhdG9yLnNlcnZlcmxlc3Mub3BlbnNoaWZ0LmlvIiwicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJvcGVyYXRvci5rbmF0aXZlLmRldiJdLCJhcGlWZXJzaW9ucyI6WyJ2MWJldGExIl0sIm9wZXJhdGlvbnMiOlsiQ1JFQVRFIiwiVVBEQVRFIl0sInJlc291cmNlcyI6WyJrbmF0aXZlZXZlbnRpbmdzIl19XSwic2lkZUVmZmVjdHMiOiJOb25lIiwidHlwZSI6Ik11dGF0aW5nQWRtaXNzaW9uV2ViaG9vayIsIndlYmhvb2tQYXRoIjoiL211dGF0ZS1rbmF0aXZlZXZlbnRpbmdzIn0seyJhZG1pc3Npb25SZXZpZXdWZXJzaW9ucyI6WyJ2MWJldGExIl0sImNvbnRhaW5lclBvcnQiOjk4NzYsImRlcGxveW1lbnROYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQiLCJmYWlsdXJlUG9saWN5IjoiSWdub3JlIiwiZ2VuZXJhdGVOYW1lIjoibXV0YXRpbmcua25hdGl2ZXNlcnZpbmdzLm9wZXJhdG9yLnNlcnZlcmxlc3Mub3BlbnNoaWZ0LmlvIiwicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJvcGVyYXRvci5rbmF0aXZlLmRldiJdLCJhcGlWZXJzaW9ucyI6WyJ2MWJldGExIl0sIm9wZXJhdGlvbnMiOlsiQ1JFQVRFIiwiVVBEQVRFIl0sInJlc291cmNlcyI6WyJrbmF0aXZlc2VydmluZ3MiXX1dLCJzaWRlRWZmZWN0cyI6Ik5vbmUiLCJ0eXBlIjoiTXV0YXRpbmdBZG1pc3Npb25XZWJob29rIiwid2ViaG9va1BhdGgiOiIvbXV0YXRlLWtuYXRpdmVzZXJ2aW5ncyJ9LHsiYWRtaXNzaW9uUmV2aWV3VmVyc2lvbnMiOlsidjFiZXRhMSJdLCJjb250YWluZXJQb3J0Ijo4NDQzLCJjb252ZXJzaW9uQ1JEcyI6WyJrbmF0aXZlc2VydmluZ3Mub3BlcmF0b3Iua25hdGl2ZS5kZXYiXSwiZGVwbG95bWVudE5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yLXdlYmhvb2siLCJnZW5lcmF0ZU5hbWUiOiJjb252ZXJzaW9uLmtuYXRpdmVzZXJ2aW5ncy5vcGVyYXRvci5rbmF0aXZlLmRldiIsInNpZGVFZmZlY3RzIjoiTm9uZSIsInRhcmdldFBvcnQiOjg0NDMsInR5cGUiOiJDb252ZXJzaW9uV2ViaG9vayIsIndlYmhvb2tQYXRoIjoiL3Jlc291cmNlLWNvbnZlcnNpb24ifSx7ImFkbWlzc2lvblJldmlld1ZlcnNpb25zIjpbInYxYmV0YTEiXSwiY29udGFpbmVyUG9ydCI6ODQ0MywiY29udmVyc2lvbkNSRHMiOlsia25hdGl2ZWV2ZW50aW5ncy5vcGVyYXRvci5rbmF0aXZlLmRldiJdLCJkZXBsb3ltZW50TmFtZSI6ImtuYXRpdmUtb3BlcmF0b3Itd2ViaG9vayIsImdlbmVyYXRlTmFtZSI6ImNvbnZlcnNpb24ua25hdGl2ZWV2ZW50aW5ncy5vcGVyYXRvci5rbmF0aXZlLmRldiIsInNpZGVFZmZlY3RzIjoiTm9uZSIsInRhcmdldFBvcnQiOjg0NDMsInR5cGUiOiJDb252ZXJzaW9uV2ViaG9vayIsIndlYmhvb2tQYXRoIjoiL3Jlc291cmNlLWNvbnZlcnNpb24ifV19fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoibW9uaXRvcmluZy5jb3Jlb3MuY29tL3YxIiwia2luZCI6IlNlcnZpY2VNb25pdG9yIiwibWV0YWRhdGEiOnsibGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIn0sIm5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzLW1ldHJpY3MifSwic3BlYyI6eyJlbmRwb2ludHMiOlt7InBvcnQiOiJtZXRyaWNzIn1dLCJuYW1lc3BhY2VTZWxlY3RvciI6e30sInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIn19fX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoibW9uaXRvcmluZy5jb3Jlb3MuY29tL3YxIiwia2luZCI6IlNlcnZpY2VNb25pdG9yIiwibWV0YWRhdGEiOnsibGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdCJ9LCJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtbWV0cmljcy0zIn0sInNwZWMiOnsiZW5kcG9pbnRzIjpbeyJwb3J0IjoiaHR0cC1tZXRyaWNzIn1dLCJuYW1lc3BhY2VTZWxlY3RvciI6e30sInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdCJ9fX19 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoibW9uaXRvcmluZy5jb3Jlb3MuY29tL3YxIiwia2luZCI6IlNlcnZpY2VNb25pdG9yIiwibWV0YWRhdGEiOnsibGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIn0sIm5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yLW1ldHJpY3MifSwic3BlYyI6eyJlbmRwb2ludHMiOlt7InBvcnQiOiJtZXRyaWNzIn1dLCJuYW1lc3BhY2VTZWxlY3RvciI6e30sInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIn19fX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJkYXRhIjp7Im1ldHJpY3MuYmFja2VuZC1kZXN0aW5hdGlvbiI6InByb21ldGhldXMifSwia2luZCI6IkNvbmZpZ01hcCIsIm1ldGFkYXRhIjp7Im5hbWUiOiJjb25maWctb2JzZXJ2YWJpbGl0eSJ9fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJraW5kIjoiU2VydmljZSIsIm1ldGFkYXRhIjp7ImxhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQifSwibmFtZSI6ImtuYXRpdmUtb3BlbnNoaWZ0LW1ldHJpY3MtMyJ9LCJzcGVjIjp7InBvcnRzIjpbeyJuYW1lIjoiaHR0cC1jbGkiLCJwb3J0Ijo4MDgwLCJwcm90b2NvbCI6IlRDUCIsInRhcmdldFBvcnQiOiJodHRwLWNsaSJ9LHsibmFtZSI6Imh0dHAtbWV0cmljcyIsInBvcnQiOjgzODMsInByb3RvY29sIjoiVENQIiwidGFyZ2V0UG9ydCI6ODM4M31dLCJzZWxlY3RvciI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQifSwidHlwZSI6IkNsdXN0ZXJJUCJ9fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJraW5kIjoiU2VydmljZSIsIm1ldGFkYXRhIjp7ImxhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcyJ9LCJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcy1tZXRyaWNzIn0sInNwZWMiOnsicG9ydHMiOlt7Im5hbWUiOiJtZXRyaWNzIiwicG9ydCI6OTA5MCwicHJvdG9jb2wiOiJUQ1AiLCJ0YXJnZXRQb3J0Ijo5MDkwfV0sInNlbGVjdG9yIjp7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIn0sInR5cGUiOiJDbHVzdGVySVAifX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJraW5kIjoiU2VydmljZSIsIm1ldGFkYXRhIjp7ImxhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVyYXRvciJ9LCJuYW1lIjoia25hdGl2ZS1vcGVyYXRvci1tZXRyaWNzIn0sInNwZWMiOnsicG9ydHMiOlt7Im5hbWUiOiJtZXRyaWNzIiwicG9ydCI6OTA5MCwicHJvdG9jb2wiOiJUQ1AiLCJ0YXJnZXRQb3J0Ijo5MDkwfV0sInNlbGVjdG9yIjp7Im5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIn0sInR5cGUiOiJDbHVzdGVySVAifX0= +relatedImages: +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3 + name: "" +- image: registry.access.redhat.com/ubi8/nodejs-20-minimal@sha256:a2a7e399aaf09a48c28f40820da16709b62aee6f2bc703116b9345fab5830861 + name: IMAGE_KN_PLUGIN_FUNC_NODEJS_20_MINIMAL +- image: registry.access.redhat.com/ubi8/openjdk-21@sha256:441897a1f691c7d4b3a67bb3e0fea83e18352214264cb383fd057bbbd5ed863c + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_21 +- image: registry.access.redhat.com/ubi8/python-39@sha256:27e795fd6b1b77de70d1dc73a65e4c790650748a9cfda138fdbd194b3d6eea3d + name: IMAGE_KN_PLUGIN_FUNC_PYTHON_39 +- image: registry.redhat.io/openshift-serverless-1/kn-backstage-plugins-eventmesh-rhel8@sha256:3bc34867f7a620bcdace67e65a0ffb51aead5e4aa1f10cd0eb7476fe8ed1af12 + name: IMAGE_eventmesh-backend__controller +- image: registry.redhat.io/openshift-serverless-1/kn-client-cli-artifacts-rhel8@sha256:b3763ff0d9bebf8ff5ff2570a9ffeaaf4af6e41e41f5af5f810539fee318ad7b + name: IMAGE_KN_CLIENT_CLI_ARTIFACTS +- image: registry.redhat.io/openshift-serverless-1/kn-client-kn-rhel8@sha256:71aa09b98d91006be2a81ac033f72df7256a938902361308b8eb36ea198698c3 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-kafka-controller-rhel8@sha256:745f107385876151cea7d6a1923df128664d709a3bc244598e044982b1224f79 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-post-install-rhel8@sha256:f19e0176cddae017da03eb40e2c2aad6076fd306bb8aaab8f9b793adda84d002 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-webhook-kafka-rhel8@sha256:21204d08fb9da8c45d057e3aba6e4cfa7e75c0efebfec4029be75750a510961b + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-apiserver-receive-adapter-rhel8@sha256:c906cd4a1c42389c7e4b38db57858fac2250b6357eff0da048e8c6acdb95ba93 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-controller-rhel8@sha256:dc5e18074913cee045feb5b1318908b7166ea735b33223ecc8943a09d0853d43 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8@sha256:53a6a5dfb39f83389b10389488f4d7aba6a5342f411ff7efa41bab30d89d9646 + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8@sha256:53a6a5dfb39f83389b10389488f4d7aba6a5342f411ff7efa41bab30d89d9646 + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-controller-rhel8@sha256:804301d315c8d6958d128fd5951184437f755674d8ec5a4582d6128e989b966a + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-filter-rhel8@sha256:605f8ab48e761f88de43b4aac439d6576fed46d6d9659a7cb7d0c3d2d87ca55a + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-ingress-rhel8@sha256:62548e94ecf52cd50b3df7fc2cb275ce31f18037cd283b90b7987eb8f38f1dc6 + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-ddb-streams-source-rhel8@sha256:6ada46f655e13db6e8fded4db7ec308123cf8307c1ef171b7eb7eca264ee2c27 + name: IMAGE_INTEGRATION_SOURCE_AWS_DDB_STREAMS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-sink-rhel8@sha256:94d58900cb62d64379f3b9b27cf7f69173d40b115b6d843b9e83839a0080a0a1 + name: IMAGE_INTEGRATION_SINK_AWS_S3_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-source-rhel8@sha256:ee38b68e98bf9adb94554fd4b3a3aec3b533cb407dd0e0afca7f37e10d6553d9 + name: IMAGE_INTEGRATION_SOURCE_AWS_S3_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sns-sink-rhel8@sha256:31ae667a47370e107384d1253c7fe0b708443f9f991210ded167591b4e69cef5 + name: IMAGE_INTEGRATION_SINK_AWS_SNS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-sink-rhel8@sha256:f97257f0af537ffed1ff6fd0bb0a8db58b5b6a44559d0136cc5f134e8ff34f2a + name: IMAGE_INTEGRATION_SINK_AWS_SQS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-source-rhel8@sha256:86e55986b9499e0a9ccbef59a2fb85de3663fe86897d25dba54101e9101b1b91 + name: IMAGE_INTEGRATION_SOURCE_AWS_SQS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-log-sink-rhel8@sha256:e0f0b9f7d8ced97919844bb4c342ce89c5ff22c6cc764d62f680d0f3eba319b1 + name: IMAGE_INTEGRATION_SINK_LOG_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-timer-source-rhel8@sha256:8ec51f809196384f9b83ef5789b12b6358772a761a7055129da572254381eeef + name: IMAGE_INTEGRATION_SOURCE_TIMER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-transform-jsonata-rhel8@sha256:0b618c9c892428a59e0499a3ed0ebefa2c0981699817433159bfcaf683743597 + name: IMAGE_EVENT_TRANSFORM_JSONATA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-istio-controller-rhel8@sha256:20ae2da1e8d82d319e256c6c81299ef842ca34d57c6964d61e00a275a41159b4 + name: IMAGE_eventing-istio-controller__eventing-istio-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-jobsink-rhel8@sha256:cfdbd68b78e947590e633b6680d7b85cfd394ea42287d3dfc81b7823a3ab66bd + name: IMAGE_job-sink__job-sink +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-migrate-rhel8@sha256:64fb4b0b18f4b8e9bd86470ca36f2f4187111ed44b6cce5d16d3a43443c00489 + name: IMAGE_storage-version-migration-eventing-__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-migrate-rhel8@sha256:64fb4b0b18f4b8e9bd86470ca36f2f4187111ed44b6cce5d16d3a43443c00489 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-mtchannel-broker-rhel8@sha256:edc19e311947053dbceb21d5225ad52a48f61eb3c079e0f92f97ba311bb121f7 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-mtping-rhel8@sha256:4e633f68a3c36f1d99ef914a1a7296aeb6fe55d969fd48de916a272b5971c7e6 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-webhook-rhel8@sha256:ca8a6193425f4b2750d58d6b1da421244aa077a44a34b4184e35b9d94c9433fb + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel8@sha256:f7795088777ea84fc6180b81b6131962944e34918e2c06671033a1a572581773 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/kn-plugin-func-func-util-rhel8@sha256:598110e9b91c398e6f7ea6215a69f9562337968a024ded8e0f19736c5fb53457 + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/kn-serving-activator-rhel8@sha256:042ce1e7be10a5f51f9487af0196cb249f5d8e6821ce7c2ab05c532b7a18438c + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-hpa-rhel8@sha256:4fa0ce7ac1351aa4cbe858472bf9f953942961a5430f85be5656f29508d254db + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-rhel8@sha256:0b69fc839f5651bfffcbf86366f94da0ec3e29e6c217a26ffce7bd76fbda0939 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/kn-serving-controller-rhel8@sha256:50a62bf641a124dba37262da1e82ef14e6b6ccb4c8573fa537c19d3b1b77a627 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-serving-queue-rhel8@sha256:3133c177fcbfd4abb89b273a7ce2fb220e051ce956193b1d149c7a040fc07e83 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/kn-serving-storage-version-migration-rhel8@sha256:fbe462695b3e703d4722277a617c6ef06fb37c07366ba5c6211dd56b5038c130 + name: IMAGE_storage-version-migration-serving-__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-serving-webhook-rhel8@sha256:de45a60bc45e1b67c6f88eb1c885bda12cc136336dc5fb2e0b8cbf63aa62a6bf + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:7655ec95e5829d3d786039cc6c690c9fb442dc85f1c88481cf34f9a6f1684039 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:fa8ebb70b6f1510c55a03baec99d3497d6afb930152ff3731fe57211675aadc0 + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/net-kourier-kourier-rhel8@sha256:90e322e3304222199efc9bfa2545250dde2b22403666c5e00372bdaeaa18ddee + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/serverless-ingress-rhel8@sha256:29613545bf1758b67977793963ab34fb2f6d1f3d4f5b4158ad4c92adfee20c5a + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/serverless-kn-operator-rhel8@sha256:abf97790726da129fab4b62b9bc7b3c4f225c1fb68550359be44a011e60d54f3 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8@sha256:58f3e1806fecdb4d030646ccefd1a147bffef21eee1233487ccdab330e8d4e1d + name: IMAGE_MUST_GATHER +- image: registry.redhat.io/openshift-serverless-1/serverless-openshift-kn-rhel8-operator@sha256:f1a13725567de357de4246b87a2ed64b3dce02c7406b8621ad8d2bbeacc0ccfa + name: knative-operator +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:1c19cf86fd05940ef3d0d6e79e6f371db993153f70baedb9107bbe73f236dc24 + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:67651adfd8e6c8d12d2b9585c723d5fbdb664818f803312bfe3522e04a81e9b0 + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +schema: olm.bundle diff --git a/olm-catalog/serverless-operator-index/v4.16/catalog-template.yaml b/olm-catalog/serverless-operator-index/v4.16/catalog-template.yaml index 86b968e913..aabf69f4af 100644 --- a/olm-catalog/serverless-operator-index/v4.16/catalog-template.yaml +++ b/olm-catalog/serverless-operator-index/v4.16/catalog-template.yaml @@ -1,519 +1,525 @@ ---- entries: -- defaultChannel: stable - icon: - base64data: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOCIgaGVpZ2h0PSIzOCIgdmlld0JveD0iMCAwIDM4IDM4Ij48ZGVmcz48c3R5bGU+LmF7ZmlsbDojZmZmO30uYntmaWxsOiNlMDA7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJhIiBkPSJNMjgsMUgxMGE5LDksMCwwLDAtOSw5VjI4YTksOSwwLDAsMCw5LDlIMjhhOSw5LDAsMCwwLDktOVYxMGE5LDksMCwwLDAtOS05WiIvPjxwYXRoIGQ9Ik0yOCwyLjI1QTcuNzU4Nyw3Ljc1ODcsMCwwLDEsMzUuNzUsMTBWMjhBNy43NTg3LDcuNzU4NywwLDAsMSwyOCwzNS43NUgxMEE3Ljc1ODcsNy43NTg3LDAsMCwxLDIuMjUsMjhWMTBBNy43NTg3LDcuNzU4NywwLDAsMSwxMCwyLjI1SDI4TTI4LDFIMTBhOSw5LDAsMCwwLTksOVYyOGE5LDksMCwwLDAsOSw5SDI4YTksOSwwLDAsMCw5LTlWMTBhOSw5LDAsMCwwLTktOVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTE0LDIzLjQ3NjZIMTBhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNCwyMy40NzY2Wm0tMy4zNzUtMS4yNWgyLjc1di0yLjc1aC0yLjc1WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMjEsMjMuNDc2NkgxN2EuNjI1My42MjUzLDAsMCwxLS42MjUtLjYyNXYtNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUtLjYyNWg0YS42MjUyLjYyNTIsMCwwLDEsLjYyNS42MjV2NEEuNjI1My42MjUzLDAsMCwxLDIxLDIzLjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNy41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNy41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yNC41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwyNC41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yOCwyMy40NzY2SDI0YS42MjUzLjYyNTMsMCwwLDEtLjYyNS0uNjI1di00YS42MjUyLjYyNTIsMCwwLDEsLjYyNS0uNjI1aDRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LjYyNXY0QS42MjUzLjYyNTMsMCwwLDEsMjgsMjMuNDc2NlptLTMuMzc1LTEuMjVoMi43NXYtMi43NWgtMi43NVoiLz48cGF0aCBkPSJNMjksMjYuNDc2Nkg5YS42MjUuNjI1LDAsMCwxLDAtMS4yNUgyOWEuNjI1LjYyNSwwLDAsMSwwLDEuMjVaIi8+PC9zdmc+ - mediatype: image/svg+xml - name: serverless-operator - schema: olm.package -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.36.0 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.36.0' - name: stable - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.29.1 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.29.1' - name: stable-1.29 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.30.2 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.30.2' - name: stable-1.30 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.31.1 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.31.1' - name: stable-1.31 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.32.2 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.32.2' - name: stable-1.32 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.33.3 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.33.3' - name: stable-1.33 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.34.1 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.34.1' - name: stable-1.34 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.35.1 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.35.1' - name: stable-1.35 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.36.0 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.36.0' - name: stable-1.36 - package: serverless-operator - schema: olm.channel -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:003a5c5c3682db69aa57da4c05ed3ccbaf94fb80a4972c8ddcf91eb3d5e299b9 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:1905984e13c9d165aad06f954904fc33d3f3a6e2f0041f98bc5840d05a87abaf - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0d73e731e7defc5d1da1aa3a347b419ce5d6f2b6b880403cb2e0871a8b3bb240 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:8da1dda3de163dc82927ad732d560e9c5c7daca3a8d3b46110b561441c483af9 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0422f8843fc62c2b72e01ffefd33db912a1ad3d70ac297882d3663c9b7299f10 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:edb6116289b3c722aca7614eb06b655e2081ebda74a9b7a82261ae1fa1e76408 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0516545990ec466969730d43136016c10e7dc34f633bf2646463d12145d9f917 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:832677abddada05258b4610b6584d442dd20c5bdd55ae8fbddb83ac133b3f12e - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2f82fcdc9a5424a2e195fda62ce0a018970e0211f253eb0d5ae47a72dd0bb6fc - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91b90a9ba578595836772b4f7ecccebf77d1dcaf04c62e3f532d9beed90eb465 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:12373623440b5b1aaea228550674ee69fe926ac6f12e7adffb5592afe1b98fca - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:16b39335e97bcc7c970a8ba385c61d8333e9912faaee813ccf8520d434b7bb7a - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:ffcf75e33c5bf527488fc196bd94bf615ac06ba5735d87cf568777f27817d214 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:51ac9aced282f62c8fb2d3696da3696b8496d8f877e9846fe3a4a743ccd63bea - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:469ae5fc8a478d6d06b13e218a000f34dd988eb69a9488a6349d67c76bda5b49 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:a82288782b61ea46d068cc09ee10608d3201c136abfc767e4d37734775101390 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:b84351200cba437c323f7f21d0cb58e0a443d772376a9ea6de1278a68d1c2c7d - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:828d31bf8a441091b8aed03da213a6b4ffae260070eff58c3319156f9bf04f5a - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:9bee3204d9fafe46f9f188e7ea10ac4843eaaf72a5f9dda68f6d8d7a92310218 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:f938cc534fc4b24bb9449f1e1e1e904dc588e6646c98474de4b8c81d083b4d96 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:82b9bfb8b83701db1a9b891d1ffc1e782d4b0f971fc9a53525942845c2602934 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:095629572a40469eb651c9f81d6c10ff46254eff8b9813cadce54d6f0075c2fb - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:93b945eb2361b07bc86d67a9a7d77a0301a0bad876c83a9a64af2cfb86c83bff - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91456907c61952017daf07e376b565472ef86d67a2925f60e189c639ceb68595 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2d675f8bf31b0cfb64503ee72e082183b7b11979d65eb636fc83f4f3a25fa5d0 - schema: olm.bundle + - defaultChannel: stable + icon: + base64data: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOCIgaGVpZ2h0PSIzOCIgdmlld0JveD0iMCAwIDM4IDM4Ij48ZGVmcz48c3R5bGU+LmF7ZmlsbDojZmZmO30uYntmaWxsOiNlMDA7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJhIiBkPSJNMjgsMUgxMGE5LDksMCwwLDAtOSw5VjI4YTksOSwwLDAsMCw5LDlIMjhhOSw5LDAsMCwwLDktOVYxMGE5LDksMCwwLDAtOS05WiIvPjxwYXRoIGQ9Ik0yOCwyLjI1QTcuNzU4Nyw3Ljc1ODcsMCwwLDEsMzUuNzUsMTBWMjhBNy43NTg3LDcuNzU4NywwLDAsMSwyOCwzNS43NUgxMEE3Ljc1ODcsNy43NTg3LDAsMCwxLDIuMjUsMjhWMTBBNy43NTg3LDcuNzU4NywwLDAsMSwxMCwyLjI1SDI4TTI4LDFIMTBhOSw5LDAsMCwwLTksOVYyOGE5LDksMCwwLDAsOSw5SDI4YTksOSwwLDAsMCw5LTlWMTBhOSw5LDAsMCwwLTktOVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTE0LDIzLjQ3NjZIMTBhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNCwyMy40NzY2Wm0tMy4zNzUtMS4yNWgyLjc1di0yLjc1aC0yLjc1WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMjEsMjMuNDc2NkgxN2EuNjI1My42MjUzLDAsMCwxLS42MjUtLjYyNXYtNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUtLjYyNWg0YS42MjUyLjYyNTIsMCwwLDEsLjYyNS42MjV2NEEuNjI1My42MjUzLDAsMCwxLDIxLDIzLjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNy41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNy41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yNC41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwyNC41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yOCwyMy40NzY2SDI0YS42MjUzLjYyNTMsMCwwLDEtLjYyNS0uNjI1di00YS42MjUyLjYyNTIsMCwwLDEsLjYyNS0uNjI1aDRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LjYyNXY0QS42MjUzLjYyNTMsMCwwLDEsMjgsMjMuNDc2NlptLTMuMzc1LTEuMjVoMi43NXYtMi43NWgtMi43NVoiLz48cGF0aCBkPSJNMjksMjYuNDc2Nkg5YS42MjUuNjI1LDAsMCwxLDAtMS4yNUgyOWEuNjI1LjYyNSwwLDAsMSwwLDEuMjVaIi8+PC9zdmc+ + mediatype: image/svg+xml + name: serverless-operator + schema: olm.package + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.36.0 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.36.0' + - name: "serverless-operator.v1.36.1" + replaces: "serverless-operator.v1.36.0" + skipRange: ">=1.36.0 <1.36.1" + name: stable + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.29.1 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.29.1' + name: stable-1.29 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.30.2 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.30.2' + name: stable-1.30 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.31.1 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.31.1' + name: stable-1.31 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.32.2 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.32.2' + name: stable-1.32 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.33.3 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.33.3' + name: stable-1.33 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.34.1 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.34.1' + name: stable-1.34 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.35.1 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.35.1' + name: stable-1.35 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.36.0 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.36.0' + - name: "serverless-operator.v1.36.1" + replaces: "serverless-operator.v1.36.0" + skipRange: ">=1.36.0 <1.36.1" + name: stable-1.36 + package: serverless-operator + schema: olm.channel + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:003a5c5c3682db69aa57da4c05ed3ccbaf94fb80a4972c8ddcf91eb3d5e299b9 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:1905984e13c9d165aad06f954904fc33d3f3a6e2f0041f98bc5840d05a87abaf + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0d73e731e7defc5d1da1aa3a347b419ce5d6f2b6b880403cb2e0871a8b3bb240 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:8da1dda3de163dc82927ad732d560e9c5c7daca3a8d3b46110b561441c483af9 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0422f8843fc62c2b72e01ffefd33db912a1ad3d70ac297882d3663c9b7299f10 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:edb6116289b3c722aca7614eb06b655e2081ebda74a9b7a82261ae1fa1e76408 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0516545990ec466969730d43136016c10e7dc34f633bf2646463d12145d9f917 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:832677abddada05258b4610b6584d442dd20c5bdd55ae8fbddb83ac133b3f12e + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2f82fcdc9a5424a2e195fda62ce0a018970e0211f253eb0d5ae47a72dd0bb6fc + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91b90a9ba578595836772b4f7ecccebf77d1dcaf04c62e3f532d9beed90eb465 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:12373623440b5b1aaea228550674ee69fe926ac6f12e7adffb5592afe1b98fca + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:16b39335e97bcc7c970a8ba385c61d8333e9912faaee813ccf8520d434b7bb7a + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:ffcf75e33c5bf527488fc196bd94bf615ac06ba5735d87cf568777f27817d214 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:51ac9aced282f62c8fb2d3696da3696b8496d8f877e9846fe3a4a743ccd63bea + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:469ae5fc8a478d6d06b13e218a000f34dd988eb69a9488a6349d67c76bda5b49 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:a82288782b61ea46d068cc09ee10608d3201c136abfc767e4d37734775101390 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:b84351200cba437c323f7f21d0cb58e0a443d772376a9ea6de1278a68d1c2c7d + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:828d31bf8a441091b8aed03da213a6b4ffae260070eff58c3319156f9bf04f5a + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:9bee3204d9fafe46f9f188e7ea10ac4843eaaf72a5f9dda68f6d8d7a92310218 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:f938cc534fc4b24bb9449f1e1e1e904dc588e6646c98474de4b8c81d083b4d96 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:82b9bfb8b83701db1a9b891d1ffc1e782d4b0f971fc9a53525942845c2602934 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:095629572a40469eb651c9f81d6c10ff46254eff8b9813cadce54d6f0075c2fb + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:93b945eb2361b07bc86d67a9a7d77a0301a0bad876c83a9a64af2cfb86c83bff + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91456907c61952017daf07e376b565472ef86d67a2925f60e189c639ceb68595 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2d675f8bf31b0cfb64503ee72e082183b7b11979d65eb636fc83f4f3a25fa5d0 + schema: olm.bundle + - schema: "olm.bundle" + image: "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3" schema: olm.template.basic - diff --git a/olm-catalog/serverless-operator-index/v4.16/catalog/serverless-operator/catalog.yaml b/olm-catalog/serverless-operator-index/v4.16/catalog/serverless-operator/catalog.yaml index 50f12820f4..58347a7d83 100644 --- a/olm-catalog/serverless-operator-index/v4.16/catalog/serverless-operator/catalog.yaml +++ b/olm-catalog/serverless-operator-index/v4.16/catalog/serverless-operator/catalog.yaml @@ -61,6 +61,9 @@ entries: - name: serverless-operator.v1.36.0 replaces: serverless-operator.v1.35.0 skipRange: '>=1.35.0 <1.36.0' +- name: serverless-operator.v1.36.1 + replaces: serverless-operator.v1.36.0 + skipRange: '>=1.36.0 <1.36.1' name: stable package: serverless-operator schema: olm.channel @@ -470,6 +473,9 @@ entries: - name: serverless-operator.v1.36.0 replaces: serverless-operator.v1.35.0 skipRange: '>=1.35.0 <1.36.0' +- name: serverless-operator.v1.36.1 + replaces: serverless-operator.v1.36.0 + skipRange: '>=1.36.0 <1.36.1' name: stable-1.36 package: serverless-operator schema: olm.channel @@ -4356,3 +4362,178 @@ relatedImages: - image: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74 name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3 +name: serverless-operator.v1.36.1 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.36.1 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsibGFiZWxzIjp7ImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIiwiYXBwLmt1YmVybmV0ZXMuaW8vdmVyc2lvbiI6ImRldmVsIn0sIm5hbWUiOiJrbmF0aXZlZXZlbnRpbmdzLm9wZXJhdG9yLmtuYXRpdmUuZGV2In0sInNwZWMiOnsiY29udmVyc2lvbiI6eyJzdHJhdGVneSI6IldlYmhvb2siLCJ3ZWJob29rIjp7ImNsaWVudENvbmZpZyI6eyJzZXJ2aWNlIjp7Im5hbWUiOiJvcGVyYXRvci13ZWJob29rIiwibmFtZXNwYWNlIjoia25hdGl2ZS1vcGVyYXRvciIsInBhdGgiOiIvcmVzb3VyY2UtY29udmVyc2lvbiJ9fSwiY29udmVyc2lvblJldmlld1ZlcnNpb25zIjpbInYxYmV0YTEiXX19LCJncm91cCI6Im9wZXJhdG9yLmtuYXRpdmUuZGV2IiwibmFtZXMiOnsia2luZCI6IktuYXRpdmVFdmVudGluZyIsImxpc3RLaW5kIjoiS25hdGl2ZUV2ZW50aW5nTGlzdCIsInBsdXJhbCI6ImtuYXRpdmVldmVudGluZ3MiLCJzaW5ndWxhciI6ImtuYXRpdmVldmVudGluZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3siYWRkaXRpb25hbFByaW50ZXJDb2x1bW5zIjpbeyJqc29uUGF0aCI6Ii5zdGF0dXMudmVyc2lvbiIsIm5hbWUiOiJWZXJzaW9uIiwidHlwZSI6InN0cmluZyJ9LHsianNvblBhdGgiOiIuc3RhdHVzLmNvbmRpdGlvbnNbPyhALnR5cGU9PVwiUmVhZHlcIildLnN0YXR1cyIsIm5hbWUiOiJSZWFkeSIsInR5cGUiOiJzdHJpbmcifSx7Impzb25QYXRoIjoiLnN0YXR1cy5jb25kaXRpb25zWz8oQC50eXBlPT1cIlJlYWR5XCIpXS5yZWFzb24iLCJuYW1lIjoiUmVhc29uIiwidHlwZSI6InN0cmluZyJ9XSwibmFtZSI6InYxYmV0YTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiU2NoZW1hIGZvciB0aGUga25hdGl2ZWV2ZW50aW5ncyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIEtuYXRpdmVFdmVudGluZyIsInByb3BlcnRpZXMiOnsiY29uZmlnIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6Im9iamVjdCJ9LCJkZXNjcmlwdGlvbiI6IkEgbWVhbnMgdG8gb3ZlcnJpZGUgdGhlIGNvcnJlc3BvbmRpbmcgZW50cmllcyBpbiB0aGUgdXBzdHJlYW0gY29uZmlnbWFwcyIsInR5cGUiOiJvYmplY3QifSwiZGVmYXVsdEJyb2tlckNsYXNzIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGRlZmF1bHQgYnJva2VyIHR5cGUgdG8gdXNlIGZvciB0aGUgYnJva2VycyBLbmF0aXZlIGNyZWF0ZXMuIElmIG5vIHZhbHVlIGlzIHByb3ZpZGVkLCBNVENoYW5uZWxCYXNlZEJyb2tlciB3aWxsIGJlIHVzZWQuIiwidHlwZSI6InN0cmluZyJ9LCJkZXBsb3ltZW50cyI6eyJkZXNjcmlwdGlvbiI6IkEgbWFwcGluZyBvZiBkZXBsb3ltZW50IG5hbWUgdG8gb3ZlcnJpZGUiLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7ImFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3Mgc2NoZWR1bGluZyBjb25zdHJhaW50cy4iLCJwcm9wZXJ0aWVzIjp7Im5vZGVBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBub2RlIGFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgZm9yIHRoZSBwb2QuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnkgdGhlIGFmZmluaXR5IGV4cHJlc3Npb25zIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkLCBidXQgaXQgbWF5IGNob29zZSBhIG5vZGUgdGhhdCB2aW9sYXRlcyBvbmUgb3IgbW9yZSBvZiB0aGUgZXhwcmVzc2lvbnMuIFRoZSBub2RlIHRoYXQgaXMgbW9zdCBwcmVmZXJyZWQgaXMgdGhlIG9uZSB3aXRoIHRoZSBncmVhdGVzdCBzdW0gb2Ygd2VpZ2h0cywgaS5lLiBmb3IgZWFjaCBub2RlIHRoYXQgbWVldHMgYWxsIG9mIHRoZSBzY2hlZHVsaW5nIHJlcXVpcmVtZW50cyAocmVzb3VyY2UgcmVxdWVzdCwgcmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nIGFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSwgY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nIFwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIG1hdGNoRXhwcmVzc2lvbnM7IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBbiBlbXB0eSBwcmVmZXJyZWQgc2NoZWR1bGluZyB0ZXJtIG1hdGNoZXMgYWxsIG9iamVjdHMgd2l0aCBpbXBsaWNpdCB3ZWlnaHQgMCAoaS5lLiBpdCdzIGEgbm8tb3ApLiBBIG51bGwgcHJlZmVycmVkIHNjaGVkdWxpbmcgdGVybSBtYXRjaGVzIG5vIG9iamVjdHMgKGkuZS4gaXMgYWxzbyBhIG5vLW9wKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcmVuY2UiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGxhYmVscy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hGaWVsZHMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGZpZWxkcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwid2VpZ2h0Ijp7ImRlc2NyaXB0aW9uIjoiV2VpZ2h0IGFzc29jaWF0ZWQgd2l0aCBtYXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBub2RlU2VsZWN0b3JUZXJtLCBpbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicHJlZmVyZW5jZSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBhcmUgbm90IG1ldCBhdCBzY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuIElmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGFuIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiIsInByb3BlcnRpZXMiOnsibm9kZVNlbGVjdG9yVGVybXMiOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgdGVybXMuIFRoZSB0ZXJtcyBhcmUgT1JlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbnVsbCBvciBlbXB0eSBub2RlIHNlbGVjdG9yIHRlcm0gbWF0Y2hlcyBubyBvYmplY3RzLiBUaGUgcmVxdWlyZW1lbnRzIG9mIHRoZW0gYXJlIEFORGVkLiBUaGUgVG9wb2xvZ3lTZWxlY3RvclRlcm0gdHlwZSBpbXBsZW1lbnRzIGEgc3Vic2V0IG9mIHRoZSBOb2RlU2VsZWN0b3JUZXJtLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgbGFiZWxzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaEZpZWxkcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgZmllbGRzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbIm5vZGVTZWxlY3RvclRlcm1zIl0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicG9kQWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJEZXNjcmliZXMgcG9kIGFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgKGUuZy4gY28tbG9jYXRlIHRoaXMgcG9kIGluIHRoZSBzYW1lIG5vZGUsIHpvbmUsIGV0Yy4gYXMgc29tZSBvdGhlciBwb2QocykpLiIsInByb3BlcnRpZXMiOnsicHJlZmVycmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgc2NoZWR1bGVyIHdpbGwgcHJlZmVyIHRvIHNjaGVkdWxlIHBvZHMgdG8gbm9kZXMgdGhhdCBzYXRpc2Z5IHRoZSBhZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgaGFzIHBvZHMgd2hpY2ggbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm07IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgd2VpZ2h0cyBvZiBhbGwgb2YgdGhlIG1hdGNoZWQgV2VpZ2h0ZWRQb2RBZmZpbml0eVRlcm0gZmllbGRzIGFyZSBhZGRlZCBwZXItbm9kZSB0byBmaW5kIHRoZSBtb3N0IHByZWZlcnJlZCBub2RlKHMpIiwicHJvcGVydGllcyI6eyJwb2RBZmZpbml0eVRlcm0iOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBwb2QgYWZmaW5pdHkgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ3ZWlnaHQiOnsiZGVzY3JpcHRpb24iOiJ3ZWlnaHQgYXNzb2NpYXRlZCB3aXRoIG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInBvZEFmZmluaXR5VGVybSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBhcmUgbm90IG1ldCBhdCBzY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuIElmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGEgcG9kIGxhYmVsIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiBXaGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBlbGVtZW50cywgdGhlIGxpc3RzIG9mIG5vZGVzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb2RBZmZpbml0eVRlcm0gYXJlIGludGVyc2VjdGVkLCBpLmUuIGFsbCB0ZXJtcyBtdXN0IGJlIHNhdGlzZmllZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkRlZmluZXMgYSBzZXQgb2YgcG9kcyAobmFtZWx5IHRob3NlIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIHJlbGF0aXZlIHRvIHRoZSBnaXZlbiBuYW1lc3BhY2UocykpIHRoYXQgdGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCwgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSBcdTAwM2N0b3BvbG9neUtleVx1MDAzZSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYSBwb2Qgb2YgdGhlIHNldCBvZiBwb2RzIGlzIHJ1bm5pbmciLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwicG9kQW50aUFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiRGVzY3JpYmVzIHBvZCBhbnRpLWFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgKGUuZy4gYXZvaWQgcHV0dGluZyB0aGlzIHBvZCBpbiB0aGUgc2FtZSBub2RlLCB6b25lLCBldGMuIGFzIHNvbWUgb3RoZXIgcG9kKHMpKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcnJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHNjaGVkdWxlciB3aWxsIHByZWZlciB0byBzY2hlZHVsZSBwb2RzIHRvIG5vZGVzIHRoYXQgc2F0aXNmeSB0aGUgYW50aS1hZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhbnRpLWFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSwgY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nIFwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBoYXMgcG9kcyB3aGljaCBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybTsgdGhlIG5vZGUocykgd2l0aCB0aGUgaGlnaGVzdCBzdW0gYXJlIHRoZSBtb3N0IHByZWZlcnJlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSB3ZWlnaHRzIG9mIGFsbCBvZiB0aGUgbWF0Y2hlZCBXZWlnaHRlZFBvZEFmZmluaXR5VGVybSBmaWVsZHMgYXJlIGFkZGVkIHBlci1ub2RlIHRvIGZpbmQgdGhlIG1vc3QgcHJlZmVycmVkIG5vZGUocykiLCJwcm9wZXJ0aWVzIjp7InBvZEFmZmluaXR5VGVybSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkLiBBIHBvZCBhZmZpbml0eSB0ZXJtLCBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgd2VpZ2h0LiIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMsIGluIHRoaXMgY2FzZSBwb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibmFtZXNwYWNlcyI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZXMgc3BlY2lmaWVzIHdoaWNoIG5hbWVzcGFjZXMgdGhlIGxhYmVsU2VsZWN0b3IgYXBwbGllcyB0byAobWF0Y2hlcyBhZ2FpbnN0KTsgbnVsbCBvciBlbXB0eSBsaXN0IG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCB0aGUgcG9kcyBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciBpbiB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGUgc2VsZWN0ZWQgcG9kcyBpcyBydW5uaW5nLiBFbXB0eSB0b3BvbG9neUtleSBpcyBub3QgYWxsb3dlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0b3BvbG9neUtleSJdLCJ0eXBlIjoib2JqZWN0In0sIndlaWdodCI6eyJkZXNjcmlwdGlvbiI6IndlaWdodCBhc3NvY2lhdGVkIHdpdGggbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtLCBpbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicG9kQWZmaW5pdHlUZXJtIiwid2VpZ2h0Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJJZiB0aGUgYW50aS1hZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYW50aS1hZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGEgcG9kIGxhYmVsIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiBXaGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBlbGVtZW50cywgdGhlIGxpc3RzIG9mIG5vZGVzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb2RBZmZpbml0eVRlcm0gYXJlIGludGVyc2VjdGVkLCBpLmUuIGFsbCB0ZXJtcyBtdXN0IGJlIHNhdGlzZmllZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkRlZmluZXMgYSBzZXQgb2YgcG9kcyAobmFtZWx5IHRob3NlIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIHJlbGF0aXZlIHRvIHRoZSBnaXZlbiBuYW1lc3BhY2UocykpIHRoYXQgdGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCwgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSBcdTAwM2N0b3BvbG9neUtleVx1MDAzZSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYSBwb2Qgb2YgdGhlIHNldCBvZiBwb2RzIGlzIHJ1bm5pbmciLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBkZXBsb3ltZW50IGFuZCBpdHMgdGVtcGxhdGUuIiwidHlwZSI6Im9iamVjdCJ9LCJlbnYiOnsiZGVzY3JpcHRpb24iOiJFbnYgb3ZlcnJpZGVzIGVudiB2YXJzIGZvciB0aGUgY29udGFpbmVycy4iLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZW52VmFycyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBkZXNpcmVkIEVudlZhclJlcXVpcmVtZW50cyIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRW52VmFyIHJlcHJlc2VudHMgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgcHJlc2VudCBpbiBhIENvbnRhaW5lci4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZS4gTXVzdCBiZSBhIENfSURFTlRJRklFUi4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFyaWFibGUgcmVmZXJlbmNlcyAkKFZBUl9OQU1FKSBhcmUgZXhwYW5kZWQgdXNpbmcgdGhlIHByZXZpb3VzbHkgZGVmaW5lZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW4gdGhlIGNvbnRhaW5lciBhbmQgYW55IHNlcnZpY2UgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxlIGNhbm5vdCBiZSByZXNvbHZlZCwgdGhlIHJlZmVyZW5jZSBpbiB0aGUgaW5wdXQgc3RyaW5nIHdpbGwgYmUgdW5jaGFuZ2VkLiBEb3VibGUgJCQgYXJlIHJlZHVjZWQgdG8gYSBzaW5nbGUgJCwgd2hpY2ggYWxsb3dzIGZvciBlc2NhcGluZyB0aGUgJChWQVJfTkFNRSkgc3ludGF4OiBpLmUuIFwiJCQoVkFSX05BTUUpXCIgd2lsbCBwcm9kdWNlIHRoZSBzdHJpbmcgbGl0ZXJhbCBcIiQoVkFSX05BTUUpXCIuIEVzY2FwZWQgcmVmZXJlbmNlcyB3aWxsIG5ldmVyIGJlIGV4cGFuZGVkLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHZhcmlhYmxlIGV4aXN0cyBvciBub3QuIERlZmF1bHRzIHRvIFwiXCIuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZUZyb20iOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgZm9yIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSdzIHZhbHVlLiBDYW5ub3QgYmUgdXNlZCBpZiB2YWx1ZSBpcyBub3QgZW1wdHkuIiwicHJvcGVydGllcyI6eyJjb25maWdNYXBLZXlSZWYiOnsiZGVzY3JpcHRpb24iOiJTZWxlY3RzIGEga2V5IG9mIGEgQ29uZmlnTWFwLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGtleSB0byBzZWxlY3QuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgcmVmZXJlbnQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbmFtZXMvI25hbWVzIFRPRE86IEFkZCBvdGhlciB1c2VmdWwgZmllbGRzLiBhcGlWZXJzaW9uLCBraW5kLCB1aWQ/IiwidHlwZSI6InN0cmluZyJ9LCJvcHRpb25hbCI6eyJkZXNjcmlwdGlvbiI6IlNwZWNpZnkgd2hldGhlciB0aGUgQ29uZmlnTWFwIG9yIGl0cyBrZXkgbXVzdCBiZSBkZWZpbmVkIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImtleSJdLCJ0eXBlIjoib2JqZWN0In0sImZpZWxkUmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGZpZWxkIG9mIHRoZSBwb2Q6IHN1cHBvcnRzIG1ldGFkYXRhLm5hbWUsIG1ldGFkYXRhLm5hbWVzcGFjZSwgYG1ldGFkYXRhLmxhYmVsc1snXHUwMDNjS0VZXHUwMDNlJ11gLCBgbWV0YWRhdGEuYW5ub3RhdGlvbnNbJ1x1MDAzY0tFWVx1MDAzZSddYCwgc3BlYy5ub2RlTmFtZSwgc3BlYy5zZXJ2aWNlQWNjb3VudE5hbWUsIHN0YXR1cy5ob3N0SVAsIHN0YXR1cy5wb2RJUCwgc3RhdHVzLnBvZElQcy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJWZXJzaW9uIG9mIHRoZSBzY2hlbWEgdGhlIEZpZWxkUGF0aCBpcyB3cml0dGVuIGluIHRlcm1zIG9mLCBkZWZhdWx0cyB0byBcInYxXCIuIiwidHlwZSI6InN0cmluZyJ9LCJmaWVsZFBhdGgiOnsiZGVzY3JpcHRpb24iOiJQYXRoIG9mIHRoZSBmaWVsZCB0byBzZWxlY3QgaW4gdGhlIHNwZWNpZmllZCBBUEkgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJmaWVsZFBhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZUZpZWxkUmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIHJlc291cmNlIG9mIHRoZSBjb250YWluZXI6IG9ubHkgcmVzb3VyY2VzIGxpbWl0cyBhbmQgcmVxdWVzdHMgKGxpbWl0cy5jcHUsIGxpbWl0cy5tZW1vcnksIGxpbWl0cy5lcGhlbWVyYWwtc3RvcmFnZSwgcmVxdWVzdHMuY3B1LCByZXF1ZXN0cy5tZW1vcnkgYW5kIHJlcXVlc3RzLmVwaGVtZXJhbC1zdG9yYWdlKSBhcmUgY3VycmVudGx5IHN1cHBvcnRlZC4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lck5hbWUiOnsiZGVzY3JpcHRpb24iOiJDb250YWluZXIgbmFtZTogcmVxdWlyZWQgZm9yIHZvbHVtZXMsIG9wdGlvbmFsIGZvciBlbnYgdmFycyIsInR5cGUiOiJzdHJpbmcifSwiZGl2aXNvciI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoiU3BlY2lmaWVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHRoZSBleHBvc2VkIHJlc291cmNlcywgZGVmYXVsdHMgdG8gXCIxXCIiLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sInJlc291cmNlIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQ6IHJlc291cmNlIHRvIHNlbGVjdCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInJlc291cmNlIl0sInR5cGUiOiJvYmplY3QifSwic2VjcmV0S2V5UmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGtleSBvZiBhIHNlY3JldCBpbiB0aGUgcG9kJ3MgbmFtZXNwYWNlIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUga2V5IG9mIHRoZSBzZWNyZXQgdG8gc2VsZWN0IGZyb20uICBNdXN0IGJlIGEgdmFsaWQgc2VjcmV0IGtleS4iLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSByZWZlcmVudC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9vdmVydmlldy93b3JraW5nLXdpdGgtb2JqZWN0cy9uYW1lcy8jbmFtZXMgVE9ETzogQWRkIG90aGVyIHVzZWZ1bCBmaWVsZHMuIGFwaVZlcnNpb24sIGtpbmQsIHVpZD8iLCJ0eXBlIjoic3RyaW5nIn0sIm9wdGlvbmFsIjp7ImRlc2NyaXB0aW9uIjoiU3BlY2lmeSB3aGV0aGVyIHRoZSBTZWNyZXQgb3IgaXRzIGtleSBtdXN0IGJlIGRlZmluZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsia2V5Il0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJob3N0TmV0d29yayI6eyJkZXNjcmlwdGlvbiI6IlVzZSB0aGUgaG9zdCdzIG5ldHdvcmsgbmFtZXNwYWNlIGlmIHRydWUuIE1ha2Ugc3VyZSB0byB1bmRlcnN0YW5kIHRoZSBzZWN1cml0eSBpbXBsaWNhdGlvbnMgaWYgeW91IHdhbnQgdG8gZW5hYmxlIGl0LiBXaGVuIGhvc3ROZXR3b3JrIGlzIGVuYWJsZWQsIHRoaXMgd2lsbCBzZXQgZG5zUG9saWN5IHRvIENsdXN0ZXJGaXJzdFdpdGhIb3N0TmV0IGF1dG9tYXRpY2FsbHkuIiwidHlwZSI6ImJvb2xlYW4ifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJMYWJlbHMgb3ZlcnJpZGVzIGxhYmVscyBmb3IgdGhlIGRlcGxveW1lbnQgYW5kIGl0cyB0ZW1wbGF0ZS4iLCJ0eXBlIjoib2JqZWN0In0sImxpdmVuZXNzUHJvYmVzIjp7ImRlc2NyaXB0aW9uIjoiTGl2ZW5lc3NQcm9iZXMgb3ZlcnJpZGVzIGxpdmVuZXNzIHByb2JlcyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJQcm9iZXNSZXF1aXJlbWVudHNPdmVycmlkZSBlbmFibGVzIHRoZSB1c2VyIHRvIG92ZXJyaWRlIGFueSBjb250YWluZXIncyBlbnYgdmFycy4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZmFpbHVyZVRocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkLiBEZWZhdWx0cyB0byAzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZS4gRGVmYXVsdCB0byAxMCBzZWNvbmRzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJzdWNjZXNzVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZC4gRGVmYXVsdHMgdG8gMS4gTXVzdCBiZSAxIGZvciBsaXZlbmVzcyBhbmQgc3RhcnR1cC4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBkdXJhdGlvbiBpbiBzZWNvbmRzIHRoZSBwb2QgbmVlZHMgdG8gdGVybWluYXRlIGdyYWNlZnVsbHkgdXBvbiBwcm9iZSBmYWlsdXJlLiBUaGUgZ3JhY2UgcGVyaW9kIGlzIHRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHRoZSBwcm9jZXNzZXMgcnVubmluZyBpbiB0aGUgcG9kIGFyZSBzZW50IGEgdGVybWluYXRpb24gc2lnbmFsIGFuZCB0aGUgdGltZSB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIGZvcmNpYmx5IGhhbHRlZCB3aXRoIGEga2lsbCBzaWduYWwuIFNldCB0aGlzIHZhbHVlIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBjbGVhbnVwIHRpbWUgZm9yIHlvdXIgcHJvY2Vzcy4gSWYgdGhpcyB2YWx1ZSBpcyBuaWwsIHRoZSBwb2QncyB0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgdGhpcyB2YWx1ZSBvdmVycmlkZXMgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBwb2Qgc3BlYy4gVmFsdWUgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlci4gVGhlIHZhbHVlIHplcm8gaW5kaWNhdGVzIHN0b3AgaW1tZWRpYXRlbHkgdmlhIHRoZSBraWxsIHNpZ25hbCAobm8gb3Bwb3J0dW5pdHkgdG8gc2h1dCBkb3duKS4gVGhpcyBpcyBhIGJldGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIFByb2JlVGVybWluYXRpb25HcmFjZVBlcmlvZCBmZWF0dXJlIGdhdGUuIE1pbmltdW0gdmFsdWUgaXMgMS4gc3BlYy50ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyBpcyB1c2VkIGlmIHVuc2V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidGltZW91dFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0LiBEZWZhdWx0cyB0byAxIHNlY29uZC4gTWluaW11bSB2YWx1ZSBpcyAxLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIGRlcGxveW1lbnQiLCJ0eXBlIjoic3RyaW5nIn0sIm5vZGVTZWxlY3RvciI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTm9kZVNlbGVjdG9yIG92ZXJyaWRlcyBub2RlU2VsZWN0b3IgZm9yIHRoZSBkZXBsb3ltZW50LiIsInR5cGUiOiJvYmplY3QifSwicmVhZGluZXNzUHJvYmVzIjp7ImRlc2NyaXB0aW9uIjoiUmVhZGluZXNzUHJvYmVzIG92ZXJyaWRlcyByZWFkaW5lc3MgcHJvYmVzIGZvciB0aGUgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlByb2Jlc1JlcXVpcmVtZW50c092ZXJyaWRlIGVuYWJsZXMgdGhlIHVzZXIgdG8gb3ZlcnJpZGUgYW55IGNvbnRhaW5lcidzIGVudiB2YXJzLiIsInByb3BlcnRpZXMiOnsiY29udGFpbmVyIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGNvbnRhaW5lciBuYW1lIiwidHlwZSI6InN0cmluZyJ9LCJmYWlsdXJlVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBmYWlsdXJlcyBmb3IgdGhlIHByb2JlIHRvIGJlIGNvbnNpZGVyZWQgZmFpbGVkIGFmdGVyIGhhdmluZyBzdWNjZWVkZWQuIERlZmF1bHRzIHRvIDMuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sImluaXRpYWxEZWxheVNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB0aGUgY29udGFpbmVyIGhhcyBzdGFydGVkIGJlZm9yZSBsaXZlbmVzcyBwcm9iZXMgYXJlIGluaXRpYXRlZC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvcG9kcy9wb2QtbGlmZWN5Y2xlI2NvbnRhaW5lci1wcm9iZXMiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJIb3cgb2Z0ZW4gKGluIHNlY29uZHMpIHRvIHBlcmZvcm0gdGhlIHByb2JlLiBEZWZhdWx0IHRvIDEwIHNlY29uZHMuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInN1Y2Nlc3NUaHJlc2hvbGQiOnsiZGVzY3JpcHRpb24iOiJNaW5pbXVtIGNvbnNlY3V0aXZlIHN1Y2Nlc3NlcyBmb3IgdGhlIHByb2JlIHRvIGJlIGNvbnNpZGVyZWQgc3VjY2Vzc2Z1bCBhZnRlciBoYXZpbmcgZmFpbGVkLiBEZWZhdWx0cyB0byAxLiBNdXN0IGJlIDEgZm9yIGxpdmVuZXNzIGFuZCBzdGFydHVwLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik9wdGlvbmFsIGR1cmF0aW9uIGluIHNlY29uZHMgdGhlIHBvZCBuZWVkcyB0byB0ZXJtaW5hdGUgZ3JhY2VmdWxseSB1cG9uIHByb2JlIGZhaWx1cmUuIFRoZSBncmFjZSBwZXJpb2QgaXMgdGhlIGR1cmF0aW9uIGluIHNlY29uZHMgYWZ0ZXIgdGhlIHByb2Nlc3NlcyBydW5uaW5nIGluIHRoZSBwb2QgYXJlIHNlbnQgYSB0ZXJtaW5hdGlvbiBzaWduYWwgYW5kIHRoZSB0aW1lIHdoZW4gdGhlIHByb2Nlc3NlcyBhcmUgZm9yY2libHkgaGFsdGVkIHdpdGggYSBraWxsIHNpZ25hbC4gU2V0IHRoaXMgdmFsdWUgbG9uZ2VyIHRoYW4gdGhlIGV4cGVjdGVkIGNsZWFudXAgdGltZSBmb3IgeW91ciBwcm9jZXNzLiBJZiB0aGlzIHZhbHVlIGlzIG5pbCwgdGhlIHBvZCdzIHRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIHdpbGwgYmUgdXNlZC4gT3RoZXJ3aXNlLCB0aGlzIHZhbHVlIG92ZXJyaWRlcyB0aGUgdmFsdWUgcHJvdmlkZWQgYnkgdGhlIHBvZCBzcGVjLiBWYWx1ZSBtdXN0IGJlIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLiBUaGUgdmFsdWUgemVybyBpbmRpY2F0ZXMgc3RvcCBpbW1lZGlhdGVseSB2aWEgdGhlIGtpbGwgc2lnbmFsIChubyBvcHBvcnR1bml0eSB0byBzaHV0IGRvd24pLiBUaGlzIGlzIGEgYmV0YSBmaWVsZCBhbmQgcmVxdWlyZXMgZW5hYmxpbmcgUHJvYmVUZXJtaW5hdGlvbkdyYWNlUGVyaW9kIGZlYXR1cmUgZ2F0ZS4gTWluaW11bSB2YWx1ZSBpcyAxLiBzcGVjLnRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIGlzIHVzZWQgaWYgdW5zZXQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ0aW1lb3V0U2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHdoaWNoIHRoZSBwcm9iZSB0aW1lcyBvdXQuIERlZmF1bHRzIHRvIDEgc2Vjb25kLiBNaW5pbXVtIHZhbHVlIGlzIDEuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsiY29udGFpbmVyIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcGxpY2FzIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG51bWJlciBvZiByZXBsaWNhcyB0aGF0IEhBIHBhcnRzIG9mIHRoZSBjb250cm9sIHBsYW5lIHdpbGwgYmUgc2NhbGVkIHRvIiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgY29udGFpbmVyJ3MgcmVzb3VyY2VzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFJlc291cmNlIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgcmVxdWVzdHMgYW5kIGxpbWl0cyBmb3IgYSBjZXJ0YWluIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgbmFtZS4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBjb250YWluZXIiLCJ0eXBlIjoic3RyaW5nIn0sImxpbWl0cyI6eyJwcm9wZXJ0aWVzIjp7ImNwdSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn0sIm1lbW9yeSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7InByb3BlcnRpZXMiOnsiY3B1Ijp7InBhdHRlcm4iOiJeKFsrLV0/WzAtOS5dKykoW2VFaW51bWtLTUdUUF0qWy0rXT9bMC05XSopJCIsInR5cGUiOiJzdHJpbmcifSwibWVtb3J5Ijp7InBhdHRlcm4iOiJeKFsrLV0/WzAtOS5dKykoW2VFaW51bWtLTUdUUF0qWy0rXT9bMC05XSopJCIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInRvbGVyYXRpb25zIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3MgdG9sZXJhdGlvbnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgcG9kIHRoaXMgVG9sZXJhdGlvbiBpcyBhdHRhY2hlZCB0byB0b2xlcmF0ZXMgYW55IHRhaW50IHRoYXQgbWF0Y2hlcyB0aGUgdHJpcGxlIFx1MDAzY2tleSx2YWx1ZSxlZmZlY3RcdTAwM2UgdXNpbmcgdGhlIG1hdGNoaW5nIG9wZXJhdG9yIFx1MDAzY29wZXJhdG9yXHUwMDNlLiIsInByb3BlcnRpZXMiOnsiZWZmZWN0Ijp7ImRlc2NyaXB0aW9uIjoiRWZmZWN0IGluZGljYXRlcyB0aGUgdGFpbnQgZWZmZWN0IHRvIG1hdGNoLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQgZWZmZWN0cy4gV2hlbiBzcGVjaWZpZWQsIGFsbG93ZWQgdmFsdWVzIGFyZSBOb1NjaGVkdWxlLCBQcmVmZXJOb1NjaGVkdWxlIGFuZCBOb0V4ZWN1dGUuIiwidHlwZSI6InN0cmluZyJ9LCJrZXkiOnsiZGVzY3JpcHRpb24iOiJLZXkgaXMgdGhlIHRhaW50IGtleSB0aGF0IHRoZSB0b2xlcmF0aW9uIGFwcGxpZXMgdG8uIEVtcHR5IG1lYW5zIG1hdGNoIGFsbCB0YWludCBrZXlzLiBJZiB0aGUga2V5IGlzIGVtcHR5LCBvcGVyYXRvciBtdXN0IGJlIEV4aXN0czsgdGhpcyBjb21iaW5hdGlvbiBtZWFucyB0byBtYXRjaCBhbGwgdmFsdWVzIGFuZCBhbGwga2V5cy4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byB0aGUgdmFsdWUuIFZhbGlkIG9wZXJhdG9ycyBhcmUgRXhpc3RzIGFuZCBFcXVhbC4gRGVmYXVsdHMgdG8gRXF1YWwuIEV4aXN0cyBpcyBlcXVpdmFsZW50IHRvIHdpbGRjYXJkIGZvciB2YWx1ZSwgc28gdGhhdCBhIHBvZCBjYW4gdG9sZXJhdGUgYWxsIHRhaW50cyBvZiBhIHBhcnRpY3VsYXIgY2F0ZWdvcnkuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2xlcmF0aW9uU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IlRvbGVyYXRpb25TZWNvbmRzIHJlcHJlc2VudHMgdGhlIHBlcmlvZCBvZiB0aW1lIHRoZSB0b2xlcmF0aW9uICh3aGljaCBtdXN0IGJlIG9mIGVmZmVjdCBOb0V4ZWN1dGUsIG90aGVyd2lzZSB0aGlzIGZpZWxkIGlzIGlnbm9yZWQpIHRvbGVyYXRlcyB0aGUgdGFpbnQuIEJ5IGRlZmF1bHQsIGl0IGlzIG5vdCBzZXQsIHdoaWNoIG1lYW5zIHRvbGVyYXRlIHRoZSB0YWludCBmb3JldmVyIChkbyBub3QgZXZpY3QpLiBaZXJvIGFuZCBuZWdhdGl2ZSB2YWx1ZXMgd2lsbCBiZSB0cmVhdGVkIGFzIDAgKGV2aWN0IGltbWVkaWF0ZWx5KSBieSB0aGUgc3lzdGVtLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgdGFpbnQgdmFsdWUgdGhlIHRvbGVyYXRpb24gbWF0Y2hlcyB0by4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cywgdGhlIHZhbHVlIHNob3VsZCBiZSBlbXB0eSwgb3RoZXJ3aXNlIGp1c3QgYSByZWd1bGFyIHN0cmluZy4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neVNwcmVhZENvbnN0cmFpbnRzIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3MgdG9wb2xvZ3kgc3ByZWFkIGNvbnN0cmFpbnRzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVG9wb2xvZ3lTcHJlYWRDb25zdHJhaW50IHNwZWNpZmllcyBob3cgdG8gc3ByZWFkIG1hdGNoaW5nIHBvZHMgYW1vbmcgdGhlIGdpdmVuIHRvcG9sb2d5LiIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkxhYmVsU2VsZWN0b3IgaXMgdXNlZCB0byBmaW5kIG1hdGNoaW5nIHBvZHMuIFBvZHMgdGhhdCBtYXRjaCB0aGlzIGxhYmVsIHNlbGVjdG9yIGFyZSBjb3VudGVkIHRvIGRldGVybWluZSB0aGUgbnVtYmVyIG9mIHBvZHMgaW4gdGhlaXIgY29ycmVzcG9uZGluZyB0b3BvbG9neSBkb21haW4uIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJtYXhTa2V3Ijp7ImRlc2NyaXB0aW9uIjoiTWF4U2tldyBkZXNjcmliZXMgdGhlIGRlZ3JlZSB0byB3aGljaCBwb2RzIG1heSBiZSB1bmV2ZW5seSBkaXN0cmlidXRlZC4gSXQncyB0aGUgbWF4aW11bSBwZXJtaXR0ZWQgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBudW1iZXIgb2YgbWF0Y2hpbmcgcG9kcyBpbiBhbnkgdHdvIHRvcG9sb2d5IGRvbWFpbnMgb2YgYSBnaXZlbiB0b3BvbG9neSB0eXBlLiBGb3IgZXhhbXBsZSwgaW4gYSAzLXpvbmUgY2x1c3RlciwgTWF4U2tldyBpcyBzZXQgdG8gMSwgYW5kIHBvZHMgd2l0aCB0aGUgc2FtZSBsYWJlbFNlbGVjdG9yIHNwcmVhZCBhcyAxLzEvMDogfCB6b25lMSB8IHpvbmUyIHwgem9uZTMgfCB8ICAgUCAgIHwgICBQICAgfCAgICAgICB8IC0gaWYgTWF4U2tldyBpcyAxLCBpbmNvbWluZyBwb2QgY2FuIG9ubHkgYmUgc2NoZWR1bGVkIHRvIHpvbmUzIHRvIGJlY29tZSAxLzEvMTsgc2NoZWR1bGluZyBpdCBvbnRvIHpvbmUxKHpvbmUyKSB3b3VsZCBtYWtlIHRoZSBBY3R1YWxTa2V3KDItMCkgb24gem9uZTEoem9uZTIpIHZpb2xhdGUgTWF4U2tldygxKS4gLSBpZiBNYXhTa2V3IGlzIDIsIGluY29taW5nIHBvZCBjYW4gYmUgc2NoZWR1bGVkIG9udG8gYW55IHpvbmUuIEl0J3MgYSByZXF1aXJlZCBmaWVsZC4gRGVmYXVsdCB2YWx1ZSBpcyAxIGFuZCAwIGlzIG5vdCBhbGxvd2VkLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUb3BvbG9neUtleSBpcyB0aGUga2V5IG9mIG5vZGUgbGFiZWxzLiBOb2RlcyB0aGF0IGhhdmUgYSBsYWJlbCB3aXRoIHRoaXMga2V5IGFuZCBpZGVudGljYWwgdmFsdWVzIGFyZSBjb25zaWRlcmVkIHRvIGJlIGluIHRoZSBzYW1lIHRvcG9sb2d5LiBXZSBjb25zaWRlciBlYWNoIFx1MDAzY2tleSwgdmFsdWVcdTAwM2UgYXMgYSBcImJ1Y2tldFwiLCBhbmQgdHJ5IHRvIHB1dCBiYWxhbmNlZCBudW1iZXIgb2YgcG9kcyBpbnRvIGVhY2ggYnVja2V0LiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIiwidHlwZSI6InN0cmluZyJ9LCJ3aGVuVW5zYXRpc2ZpYWJsZSI6eyJkZXNjcmlwdGlvbiI6IldoZW5VbnNhdGlzZmlhYmxlIGluZGljYXRlcyBob3cgdG8gZGVhbCB3aXRoIGEgcG9kIGlmIGl0IGRvZXNuJ3Qgc2F0aXNmeSB0aGUgc3ByZWFkIGNvbnN0cmFpbnQuIC0gRG9Ob3RTY2hlZHVsZSAoZGVmYXVsdCkgdGVsbHMgdGhlIHNjaGVkdWxlciBub3QgdG8gc2NoZWR1bGUgaXQgLSBTY2hlZHVsZUFueXdheSB0ZWxscyB0aGUgc2NoZWR1bGVyIHRvIHN0aWxsIHNjaGVkdWxlIGl0IEl0J3MgY29uc2lkZXJlZCBhcyBcIlVuc2F0aXNmaWFibGVcIiBpZiBhbmQgb25seSBpZiBwbGFjaW5nIGluY29taW5nIHBvZCBvbiBhbnkgdG9wb2xvZ3kgdmlvbGF0ZXMgXCJNYXhTa2V3XCIuIEZvciBleGFtcGxlLCBpbiBhIDMtem9uZSBjbHVzdGVyLCBNYXhTa2V3IGlzIHNldCB0byAxLCBhbmQgcG9kcyB3aXRoIHRoZSBzYW1lIGxhYmVsU2VsZWN0b3Igc3ByZWFkIGFzIDMvMS8xOiB8IHpvbmUxIHwgem9uZTIgfCB6b25lMyB8IHwgUCBQIFAgfCAgIFAgICB8ICAgUCAgIHwgSWYgV2hlblVuc2F0aXNmaWFibGUgaXMgc2V0IHRvIERvTm90U2NoZWR1bGUsIGluY29taW5nIHBvZCBjYW4gb25seSBiZSBzY2hlZHVsZWQgdG8gem9uZTIoem9uZTMpIHRvIGJlY29tZSAzLzIvMSgzLzEvMikgYXMgQWN0dWFsU2tldygyLTEpIG9uIHpvbmUyKHpvbmUzKSBzYXRpc2ZpZXMgTWF4U2tldygxKS4gSW4gb3RoZXIgd29yZHMsIHRoZSBjbHVzdGVyIGNhbiBzdGlsbCBiZSBpbWJhbGFuY2VkLCBidXQgc2NoZWR1bGVyIHdvbid0IG1ha2UgaXQgKm1vcmUqIGltYmFsYW5jZWQuIEl0J3MgYSByZXF1aXJlZCBmaWVsZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJtYXhTa2V3IiwidG9wb2xvZ3lLZXkiLCJ3aGVuVW5zYXRpc2ZpYWJsZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiaGlnaC1hdmFpbGFiaWxpdHkiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiBIQSBjb250cm9sIHBsYW5lIiwicHJvcGVydGllcyI6eyJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sInBvZERpc3J1cHRpb25CdWRnZXRzIjp7ImRlc2NyaXB0aW9uIjoiQSBtYXBwaW5nIG9mIHBvZERpc3J1cHRpb25CdWRnZXQgbmFtZSB0byBvdmVycmlkZSIsIml0ZW1zIjp7InByb3BlcnRpZXMiOnsibWF4VW5hdmFpbGFibGUiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJkZXNjcmlwdGlvbiI6IkFuIGV2aWN0aW9uIGlzIGFsbG93ZWQgaWYgYXQgbW9zdCBcIm1heFVuYXZhaWxhYmxlXCIgcG9kcyBzZWxlY3RlZCBieSBcInNlbGVjdG9yXCIgYXJlIHVuYXZhaWxhYmxlIGFmdGVyIHRoZSBldmljdGlvbiwgaS5lLiBldmVuIGluIGFic2VuY2Ugb2YgdGhlIGV2aWN0ZWQgcG9kLiBGb3IgZXhhbXBsZSwgb25lIGNhbiBwcmV2ZW50IGFsbCB2b2x1bnRhcnkgZXZpY3Rpb25zIGJ5IHNwZWNpZnlpbmcgMC4gVGhpcyBpcyBhIG11dHVhbGx5IGV4Y2x1c2l2ZSBzZXR0aW5nIHdpdGggXCJtaW5BdmFpbGFibGVcIi4iLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sIm1pbkF2YWlsYWJsZSI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoiQW4gZXZpY3Rpb24gaXMgYWxsb3dlZCBpZiBhdCBsZWFzdCBcIm1pbkF2YWlsYWJsZVwiIHBvZHMgc2VsZWN0ZWQgYnkgXCJzZWxlY3RvclwiIHdpbGwgc3RpbGwgYmUgYXZhaWxhYmxlIGFmdGVyIHRoZSBldmljdGlvbiwgaS5lLiBldmVuIGluIHRoZSBhYnNlbmNlIG9mIHRoZSBldmljdGVkIHBvZC4gIFNvIGZvciBleGFtcGxlIHlvdSBjYW4gcHJldmVudCBhbGwgdm9sdW50YXJ5IGV2aWN0aW9ucyBieSBzcGVjaWZ5aW5nIFwiMTAwJVwiLiIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBwb2REaXNydXB0aW9uQnVkZ2V0IiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwic2VydmljZXMiOnsiZGVzY3JpcHRpb24iOiJBIG1hcHBpbmcgb2Ygc2VydmljZSBuYW1lIHRvIG92ZXJyaWRlIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgb3ZlcnJpZGVzIGxhYmVscyBmb3IgdGhlIHNlcnZpY2UiLCJ0eXBlIjoib2JqZWN0In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTGFiZWxzIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBzZXJ2aWNlIiwidHlwZSI6Im9iamVjdCJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UiLCJ0eXBlIjoic3RyaW5nIn0sInNlbGVjdG9yIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJTZWxlY3RvciBvdmVycmlkZXMgc2VsZWN0b3IgZm9yIHRoZSBzZXJ2aWNlIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwic2lua0JpbmRpbmdTZWxlY3Rpb25Nb2RlIjp7ImRlc2NyaXB0aW9uIjoiU3BlY2lmaWVzIHRoZSBzZWxlY3Rpb24gbW9kZSBmb3IgdGhlIHNpbmtiaW5kaW5nIHdlYmhvb2suIElmIHRoZSB2YWx1ZSBpcyBgaW5jbHVzaW9uYCwgb25seSBuYW1lc3BhY2VzL29iamVjdHMgbGFiZWxsZWQgYXMgYGJpbmRpbmdzLmtuYXRpdmUuZGV2L2luY2x1ZGU6dHJ1ZWAgd2lsbCBiZSBjb25zaWRlcmVkLiBJZiBgZXhjbHVzaW9uYCBpcyBzZWxlY3RlZCwgb25seSBgYmluZGluZ3Mua25hdGl2ZS5kZXYvZXhjbHVkZTp0cnVlYCBsYWJlbCBpcyBjaGVja2VkIGFuZCB0aGVzZSB3aWxsIE5PVCBiZSBjb25zaWRlcmVkLiBUaGUgZGVmYXVsdCBmb3IgT3BlbnNoaWZ0IFNlcnZlcmxlc3MgaXMgYGluY2x1c2lvbmAuIiwidHlwZSI6InN0cmluZyJ9LCJ3b3JrbG9hZHMiOnsiZGVzY3JpcHRpb24iOiJBIG1hcHBpbmcgb2YgZGVwbG95bWVudCBvciBzdGF0ZWZ1bHNldCBuYW1lIHRvIG92ZXJyaWRlIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJhZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHNjaGVkdWxpbmcgY29uc3RyYWludHMuIiwicHJvcGVydGllcyI6eyJub2RlQWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJEZXNjcmliZXMgbm9kZSBhZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIGZvciB0aGUgcG9kLiIsInByb3BlcnRpZXMiOnsicHJlZmVycmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgc2NoZWR1bGVyIHdpbGwgcHJlZmVyIHRvIHNjaGVkdWxlIHBvZHMgdG8gbm9kZXMgdGhhdCBzYXRpc2Z5IHRoZSBhZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBtYXRjaEV4cHJlc3Npb25zOyB0aGUgbm9kZShzKSB3aXRoIHRoZSBoaWdoZXN0IHN1bSBhcmUgdGhlIG1vc3QgcHJlZmVycmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQW4gZW1wdHkgcHJlZmVycmVkIHNjaGVkdWxpbmcgdGVybSBtYXRjaGVzIGFsbCBvYmplY3RzIHdpdGggaW1wbGljaXQgd2VpZ2h0IDAgKGkuZS4gaXQncyBhIG5vLW9wKS4gQSBudWxsIHByZWZlcnJlZCBzY2hlZHVsaW5nIHRlcm0gbWF0Y2hlcyBubyBvYmplY3RzIChpLmUuIGlzIGFsc28gYSBuby1vcCkuIiwicHJvcGVydGllcyI6eyJwcmVmZXJlbmNlIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHRlcm0sIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB3ZWlnaHQuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBsYWJlbHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoRmllbGRzIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBmaWVsZHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sIndlaWdodCI6eyJkZXNjcmlwdGlvbiI6IldlaWdodCBhc3NvY2lhdGVkIHdpdGggbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgbm9kZVNlbGVjdG9yVGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInByZWZlcmVuY2UiLCJ3ZWlnaHQiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IklmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhbiB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4iLCJwcm9wZXJ0aWVzIjp7Im5vZGVTZWxlY3RvclRlcm1zIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQuIEEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHRlcm1zLiBUaGUgdGVybXMgYXJlIE9SZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG51bGwgb3IgZW1wdHkgbm9kZSBzZWxlY3RvciB0ZXJtIG1hdGNoZXMgbm8gb2JqZWN0cy4gVGhlIHJlcXVpcmVtZW50cyBvZiB0aGVtIGFyZSBBTkRlZC4gVGhlIFRvcG9sb2d5U2VsZWN0b3JUZXJtIHR5cGUgaW1wbGVtZW50cyBhIHN1YnNldCBvZiB0aGUgTm9kZVNlbGVjdG9yVGVybS4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGxhYmVscy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hGaWVsZHMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGZpZWxkcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJub2RlU2VsZWN0b3JUZXJtcyJdLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInBvZEFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiRGVzY3JpYmVzIHBvZCBhZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIChlLmcuIGNvLWxvY2F0ZSB0aGlzIHBvZCBpbiB0aGUgc2FtZSBub2RlLCB6b25lLCBldGMuIGFzIHNvbWUgb3RoZXIgcG9kKHMpKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcnJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHNjaGVkdWxlciB3aWxsIHByZWZlciB0byBzY2hlZHVsZSBwb2RzIHRvIG5vZGVzIHRoYXQgc2F0aXNmeSB0aGUgYWZmaW5pdHkgZXhwcmVzc2lvbnMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQsIGJ1dCBpdCBtYXkgY2hvb3NlIGEgbm9kZSB0aGF0IHZpb2xhdGVzIG9uZSBvciBtb3JlIG9mIHRoZSBleHByZXNzaW9ucy4gVGhlIG5vZGUgdGhhdCBpcyBtb3N0IHByZWZlcnJlZCBpcyB0aGUgb25lIHdpdGggdGhlIGdyZWF0ZXN0IHN1bSBvZiB3ZWlnaHRzLCBpLmUuIGZvciBlYWNoIG5vZGUgdGhhdCBtZWV0cyBhbGwgb2YgdGhlIHNjaGVkdWxpbmcgcmVxdWlyZW1lbnRzIChyZXNvdXJjZSByZXF1ZXN0LCByZXF1aXJlZER1cmluZ1NjaGVkdWxpbmcgYWZmaW5pdHkgZXhwcmVzc2lvbnMsIGV0Yy4pLCBjb21wdXRlIGEgc3VtIGJ5IGl0ZXJhdGluZyB0aHJvdWdoIHRoZSBlbGVtZW50cyBvZiB0aGlzIGZpZWxkIGFuZCBhZGRpbmcgXCJ3ZWlnaHRcIiB0byB0aGUgc3VtIGlmIHRoZSBub2RlIGhhcyBwb2RzIHdoaWNoIG1hdGNoZXMgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtOyB0aGUgbm9kZShzKSB3aXRoIHRoZSBoaWdoZXN0IHN1bSBhcmUgdGhlIG1vc3QgcHJlZmVycmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHdlaWdodHMgb2YgYWxsIG9mIHRoZSBtYXRjaGVkIFdlaWdodGVkUG9kQWZmaW5pdHlUZXJtIGZpZWxkcyBhcmUgYWRkZWQgcGVyLW5vZGUgdG8gZmluZCB0aGUgbW9zdCBwcmVmZXJyZWQgbm9kZShzKSIsInByb3BlcnRpZXMiOnsicG9kQWZmaW5pdHlUZXJtIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQuIEEgcG9kIGFmZmluaXR5IHRlcm0sIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB3ZWlnaHQuIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwid2VpZ2h0Ijp7ImRlc2NyaXB0aW9uIjoid2VpZ2h0IGFzc29jaWF0ZWQgd2l0aCBtYXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm0sIGluIHRoZSByYW5nZSAxLTEwMC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJwb2RBZmZpbml0eVRlcm0iLCJ3ZWlnaHQiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IklmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhIHBvZCBsYWJlbCB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4gV2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgZWxlbWVudHMsIHRoZSBsaXN0cyBvZiBub2RlcyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9kQWZmaW5pdHlUZXJtIGFyZSBpbnRlcnNlY3RlZCwgaS5lLiBhbGwgdGVybXMgbXVzdCBiZSBzYXRpc2ZpZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJEZWZpbmVzIGEgc2V0IG9mIHBvZHMgKG5hbWVseSB0aG9zZSBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gbmFtZXNwYWNlKHMpKSB0aGF0IHRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGgsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgXHUwMDNjdG9wb2xvZ3lLZXlcdTAwM2UgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGEgcG9kIG9mIHRoZSBzZXQgb2YgcG9kcyBpcyBydW5uaW5nIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBvZEFudGlBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBwb2QgYW50aS1hZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIChlLmcuIGF2b2lkIHB1dHRpbmcgdGhpcyBwb2QgaW4gdGhlIHNhbWUgbm9kZSwgem9uZSwgZXRjLiBhcyBzb21lIG90aGVyIHBvZChzKSkuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnkgdGhlIGFudGktYWZmaW5pdHkgZXhwcmVzc2lvbnMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQsIGJ1dCBpdCBtYXkgY2hvb3NlIGEgbm9kZSB0aGF0IHZpb2xhdGVzIG9uZSBvciBtb3JlIG9mIHRoZSBleHByZXNzaW9ucy4gVGhlIG5vZGUgdGhhdCBpcyBtb3N0IHByZWZlcnJlZCBpcyB0aGUgb25lIHdpdGggdGhlIGdyZWF0ZXN0IHN1bSBvZiB3ZWlnaHRzLCBpLmUuIGZvciBlYWNoIG5vZGUgdGhhdCBtZWV0cyBhbGwgb2YgdGhlIHNjaGVkdWxpbmcgcmVxdWlyZW1lbnRzIChyZXNvdXJjZSByZXF1ZXN0LCByZXF1aXJlZER1cmluZ1NjaGVkdWxpbmcgYW50aS1hZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgaGFzIHBvZHMgd2hpY2ggbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm07IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgd2VpZ2h0cyBvZiBhbGwgb2YgdGhlIG1hdGNoZWQgV2VpZ2h0ZWRQb2RBZmZpbml0eVRlcm0gZmllbGRzIGFyZSBhZGRlZCBwZXItbm9kZSB0byBmaW5kIHRoZSBtb3N0IHByZWZlcnJlZCBub2RlKHMpIiwicHJvcGVydGllcyI6eyJwb2RBZmZpbml0eVRlcm0iOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBwb2QgYWZmaW5pdHkgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ3ZWlnaHQiOnsiZGVzY3JpcHRpb24iOiJ3ZWlnaHQgYXNzb2NpYXRlZCB3aXRoIG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInBvZEFmZmluaXR5VGVybSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFudGktYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGFyZSBub3QgbWV0IGF0IHNjaGVkdWxpbmcgdGltZSwgdGhlIHBvZCB3aWxsIG5vdCBiZSBzY2hlZHVsZWQgb250byB0aGUgbm9kZS4gSWYgdGhlIGFudGktYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhIHBvZCBsYWJlbCB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4gV2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgZWxlbWVudHMsIHRoZSBsaXN0cyBvZiBub2RlcyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9kQWZmaW5pdHlUZXJtIGFyZSBpbnRlcnNlY3RlZCwgaS5lLiBhbGwgdGVybXMgbXVzdCBiZSBzYXRpc2ZpZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJEZWZpbmVzIGEgc2V0IG9mIHBvZHMgKG5hbWVseSB0aG9zZSBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gbmFtZXNwYWNlKHMpKSB0aGF0IHRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGgsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgXHUwMDNjdG9wb2xvZ3lLZXlcdTAwM2UgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGEgcG9kIG9mIHRoZSBzZXQgb2YgcG9kcyBpcyBydW5uaW5nIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBvdmVycmlkZXMgbGFiZWxzIGZvciB0aGUgZGVwbG95bWVudCBhbmQgaXRzIHRlbXBsYXRlLiIsInR5cGUiOiJvYmplY3QifSwiZW52Ijp7ImRlc2NyaXB0aW9uIjoiRW52IG92ZXJyaWRlcyBlbnYgdmFycyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgY29udGFpbmVyIG5hbWUiLCJ0eXBlIjoic3RyaW5nIn0sImVudlZhcnMiOnsiZGVzY3JpcHRpb24iOiJUaGUgZGVzaXJlZCBFbnZWYXJSZXF1aXJlbWVudHMiLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkVudlZhciByZXByZXNlbnRzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHByZXNlbnQgaW4gYSBDb250YWluZXIuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUuIE11c3QgYmUgYSBDX0lERU5USUZJRVIuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6IlZhcmlhYmxlIHJlZmVyZW5jZXMgJChWQVJfTkFNRSkgYXJlIGV4cGFuZGVkIHVzaW5nIHRoZSBwcmV2aW91c2x5IGRlZmluZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIHRoZSBjb250YWluZXIgYW5kIGFueSBzZXJ2aWNlIGVudmlyb25tZW50IHZhcmlhYmxlcy4gSWYgYSB2YXJpYWJsZSBjYW5ub3QgYmUgcmVzb2x2ZWQsIHRoZSByZWZlcmVuY2UgaW4gdGhlIGlucHV0IHN0cmluZyB3aWxsIGJlIHVuY2hhbmdlZC4gRG91YmxlICQkIGFyZSByZWR1Y2VkIHRvIGEgc2luZ2xlICQsIHdoaWNoIGFsbG93cyBmb3IgZXNjYXBpbmcgdGhlICQoVkFSX05BTUUpIHN5bnRheDogaS5lLiBcIiQkKFZBUl9OQU1FKVwiIHdpbGwgcHJvZHVjZSB0aGUgc3RyaW5nIGxpdGVyYWwgXCIkKFZBUl9OQU1FKVwiLiBFc2NhcGVkIHJlZmVyZW5jZXMgd2lsbCBuZXZlciBiZSBleHBhbmRlZCwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSB2YXJpYWJsZSBleGlzdHMgb3Igbm90LiBEZWZhdWx0cyB0byBcIlwiLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVGcm9tIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGZvciB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUncyB2YWx1ZS4gQ2Fubm90IGJlIHVzZWQgaWYgdmFsdWUgaXMgbm90IGVtcHR5LiIsInByb3BlcnRpZXMiOnsiY29uZmlnTWFwS2V5UmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGtleSBvZiBhIENvbmZpZ01hcC4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBrZXkgdG8gc2VsZWN0LiIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIHJlZmVyZW50LiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L3dvcmtpbmctd2l0aC1vYmplY3RzL25hbWVzLyNuYW1lcyBUT0RPOiBBZGQgb3RoZXIgdXNlZnVsIGZpZWxkcy4gYXBpVmVyc2lvbiwga2luZCwgdWlkPyIsInR5cGUiOiJzdHJpbmcifSwib3B0aW9uYWwiOnsiZGVzY3JpcHRpb24iOiJTcGVjaWZ5IHdoZXRoZXIgdGhlIENvbmZpZ01hcCBvciBpdHMga2V5IG11c3QgYmUgZGVmaW5lZCIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJrZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJmaWVsZFJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBmaWVsZCBvZiB0aGUgcG9kOiBzdXBwb3J0cyBtZXRhZGF0YS5uYW1lLCBtZXRhZGF0YS5uYW1lc3BhY2UsIGBtZXRhZGF0YS5sYWJlbHNbJ1x1MDAzY0tFWVx1MDAzZSddYCwgYG1ldGFkYXRhLmFubm90YXRpb25zWydcdTAwM2NLRVlcdTAwM2UnXWAsIHNwZWMubm9kZU5hbWUsIHNwZWMuc2VydmljZUFjY291bnROYW1lLCBzdGF0dXMuaG9zdElQLCBzdGF0dXMucG9kSVAsIHN0YXR1cy5wb2RJUHMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiVmVyc2lvbiBvZiB0aGUgc2NoZW1hIHRoZSBGaWVsZFBhdGggaXMgd3JpdHRlbiBpbiB0ZXJtcyBvZiwgZGVmYXVsdHMgdG8gXCJ2MVwiLiIsInR5cGUiOiJzdHJpbmcifSwiZmllbGRQYXRoIjp7ImRlc2NyaXB0aW9uIjoiUGF0aCBvZiB0aGUgZmllbGQgdG8gc2VsZWN0IGluIHRoZSBzcGVjaWZpZWQgQVBJIHZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiZmllbGRQYXRoIl0sInR5cGUiOiJvYmplY3QifSwicmVzb3VyY2VGaWVsZFJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSByZXNvdXJjZSBvZiB0aGUgY29udGFpbmVyOiBvbmx5IHJlc291cmNlcyBsaW1pdHMgYW5kIHJlcXVlc3RzIChsaW1pdHMuY3B1LCBsaW1pdHMubWVtb3J5LCBsaW1pdHMuZXBoZW1lcmFsLXN0b3JhZ2UsIHJlcXVlc3RzLmNwdSwgcmVxdWVzdHMubWVtb3J5IGFuZCByZXF1ZXN0cy5lcGhlbWVyYWwtc3RvcmFnZSkgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQuIiwicHJvcGVydGllcyI6eyJjb250YWluZXJOYW1lIjp7ImRlc2NyaXB0aW9uIjoiQ29udGFpbmVyIG5hbWU6IHJlcXVpcmVkIGZvciB2b2x1bWVzLCBvcHRpb25hbCBmb3IgZW52IHZhcnMiLCJ0eXBlIjoic3RyaW5nIn0sImRpdmlzb3IiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJkZXNjcmlwdGlvbiI6IlNwZWNpZmllcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiB0aGUgZXhwb3NlZCByZXNvdXJjZXMsIGRlZmF1bHRzIHRvIFwiMVwiIiwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJyZXNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkOiByZXNvdXJjZSB0byBzZWxlY3QiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJyZXNvdXJjZSJdLCJ0eXBlIjoib2JqZWN0In0sInNlY3JldEtleVJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBrZXkgb2YgYSBzZWNyZXQgaW4gdGhlIHBvZCdzIG5hbWVzcGFjZSIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGtleSBvZiB0aGUgc2VjcmV0IHRvIHNlbGVjdCBmcm9tLiAgTXVzdCBiZSBhIHZhbGlkIHNlY3JldCBrZXkuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgcmVmZXJlbnQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbmFtZXMvI25hbWVzIFRPRE86IEFkZCBvdGhlciB1c2VmdWwgZmllbGRzLiBhcGlWZXJzaW9uLCBraW5kLCB1aWQ/IiwidHlwZSI6InN0cmluZyJ9LCJvcHRpb25hbCI6eyJkZXNjcmlwdGlvbiI6IlNwZWNpZnkgd2hldGhlciB0aGUgU2VjcmV0IG9yIGl0cyBrZXkgbXVzdCBiZSBkZWZpbmVkIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImtleSJdLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJjb250YWluZXIiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiaG9zdE5ldHdvcmsiOnsiZGVzY3JpcHRpb24iOiJVc2UgdGhlIGhvc3QncyBuZXR3b3JrIG5hbWVzcGFjZSBpZiB0cnVlLiBNYWtlIHN1cmUgdG8gdW5kZXJzdGFuZCB0aGUgc2VjdXJpdHkgaW1wbGljYXRpb25zIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBpdC4gV2hlbiBob3N0TmV0d29yayBpcyBlbmFibGVkLCB0aGlzIHdpbGwgc2V0IGRuc1BvbGljeSB0byBDbHVzdGVyRmlyc3RXaXRoSG9zdE5ldCBhdXRvbWF0aWNhbGx5LiIsInR5cGUiOiJib29sZWFuIn0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTGFiZWxzIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBkZXBsb3ltZW50IGFuZCBpdHMgdGVtcGxhdGUuIiwidHlwZSI6Im9iamVjdCJ9LCJsaXZlbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IkxpdmVuZXNzUHJvYmVzIG92ZXJyaWRlcyBsaXZlbmVzcyBwcm9iZXMgZm9yIHRoZSBjb250YWluZXJzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiUHJvYmVzUmVxdWlyZW1lbnRzT3ZlcnJpZGUgZW5hYmxlcyB0aGUgdXNlciB0byBvdmVycmlkZSBhbnkgY29udGFpbmVyJ3MgZW52IHZhcnMuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgY29udGFpbmVyIG5hbWUiLCJ0eXBlIjoic3RyaW5nIn0sImZhaWx1cmVUaHJlc2hvbGQiOnsiZGVzY3JpcHRpb24iOiJNaW5pbXVtIGNvbnNlY3V0aXZlIGZhaWx1cmVzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBmYWlsZWQgYWZ0ZXIgaGF2aW5nIHN1Y2NlZWRlZC4gRGVmYXVsdHMgdG8gMy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHRoZSBjb250YWluZXIgaGFzIHN0YXJ0ZWQgYmVmb3JlIGxpdmVuZXNzIHByb2JlcyBhcmUgaW5pdGlhdGVkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwicGVyaW9kU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IkhvdyBvZnRlbiAoaW4gc2Vjb25kcykgdG8gcGVyZm9ybSB0aGUgcHJvYmUuIERlZmF1bHQgdG8gMTAgc2Vjb25kcy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwic3VjY2Vzc1RocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgc3VjY2Vzc2VzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBzdWNjZXNzZnVsIGFmdGVyIGhhdmluZyBmYWlsZWQuIERlZmF1bHRzIHRvIDEuIE11c3QgYmUgMSBmb3IgbGl2ZW5lc3MgYW5kIHN0YXJ0dXAuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiT3B0aW9uYWwgZHVyYXRpb24gaW4gc2Vjb25kcyB0aGUgcG9kIG5lZWRzIHRvIHRlcm1pbmF0ZSBncmFjZWZ1bGx5IHVwb24gcHJvYmUgZmFpbHVyZS4gVGhlIGdyYWNlIHBlcmlvZCBpcyB0aGUgZHVyYXRpb24gaW4gc2Vjb25kcyBhZnRlciB0aGUgcHJvY2Vzc2VzIHJ1bm5pbmcgaW4gdGhlIHBvZCBhcmUgc2VudCBhIHRlcm1pbmF0aW9uIHNpZ25hbCBhbmQgdGhlIHRpbWUgd2hlbiB0aGUgcHJvY2Vzc2VzIGFyZSBmb3JjaWJseSBoYWx0ZWQgd2l0aCBhIGtpbGwgc2lnbmFsLiBTZXQgdGhpcyB2YWx1ZSBsb25nZXIgdGhhbiB0aGUgZXhwZWN0ZWQgY2xlYW51cCB0aW1lIGZvciB5b3VyIHByb2Nlc3MuIElmIHRoaXMgdmFsdWUgaXMgbmlsLCB0aGUgcG9kJ3MgdGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgd2lsbCBiZSB1c2VkLiBPdGhlcndpc2UsIHRoaXMgdmFsdWUgb3ZlcnJpZGVzIHRoZSB2YWx1ZSBwcm92aWRlZCBieSB0aGUgcG9kIHNwZWMuIFZhbHVlIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXIuIFRoZSB2YWx1ZSB6ZXJvIGluZGljYXRlcyBzdG9wIGltbWVkaWF0ZWx5IHZpYSB0aGUga2lsbCBzaWduYWwgKG5vIG9wcG9ydHVuaXR5IHRvIHNodXQgZG93bikuIFRoaXMgaXMgYSBiZXRhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyBQcm9iZVRlcm1pbmF0aW9uR3JhY2VQZXJpb2QgZmVhdHVyZSBnYXRlLiBNaW5pbXVtIHZhbHVlIGlzIDEuIHNwZWMudGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgaXMgdXNlZCBpZiB1bnNldC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInRpbWVvdXRTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgd2hpY2ggdGhlIHByb2JlIHRpbWVzIG91dC4gRGVmYXVsdHMgdG8gMSBzZWNvbmQuIE1pbmltdW0gdmFsdWUgaXMgMS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvcG9kcy9wb2QtbGlmZWN5Y2xlI2NvbnRhaW5lci1wcm9iZXMiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJjb250YWluZXIiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBkZXBsb3ltZW50IiwidHlwZSI6InN0cmluZyJ9LCJub2RlU2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik5vZGVTZWxlY3RvciBvdmVycmlkZXMgbm9kZVNlbGVjdG9yIGZvciB0aGUgZGVwbG95bWVudC4iLCJ0eXBlIjoib2JqZWN0In0sInJlYWRpbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IlJlYWRpbmVzc1Byb2JlcyBvdmVycmlkZXMgcmVhZGluZXNzIHByb2JlcyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJQcm9iZXNSZXF1aXJlbWVudHNPdmVycmlkZSBlbmFibGVzIHRoZSB1c2VyIHRvIG92ZXJyaWRlIGFueSBjb250YWluZXIncyBlbnYgdmFycy4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZmFpbHVyZVRocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkLiBEZWZhdWx0cyB0byAzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZS4gRGVmYXVsdCB0byAxMCBzZWNvbmRzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJzdWNjZXNzVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZC4gRGVmYXVsdHMgdG8gMS4gTXVzdCBiZSAxIGZvciBsaXZlbmVzcyBhbmQgc3RhcnR1cC4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBkdXJhdGlvbiBpbiBzZWNvbmRzIHRoZSBwb2QgbmVlZHMgdG8gdGVybWluYXRlIGdyYWNlZnVsbHkgdXBvbiBwcm9iZSBmYWlsdXJlLiBUaGUgZ3JhY2UgcGVyaW9kIGlzIHRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHRoZSBwcm9jZXNzZXMgcnVubmluZyBpbiB0aGUgcG9kIGFyZSBzZW50IGEgdGVybWluYXRpb24gc2lnbmFsIGFuZCB0aGUgdGltZSB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIGZvcmNpYmx5IGhhbHRlZCB3aXRoIGEga2lsbCBzaWduYWwuIFNldCB0aGlzIHZhbHVlIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBjbGVhbnVwIHRpbWUgZm9yIHlvdXIgcHJvY2Vzcy4gSWYgdGhpcyB2YWx1ZSBpcyBuaWwsIHRoZSBwb2QncyB0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgdGhpcyB2YWx1ZSBvdmVycmlkZXMgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBwb2Qgc3BlYy4gVmFsdWUgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlci4gVGhlIHZhbHVlIHplcm8gaW5kaWNhdGVzIHN0b3AgaW1tZWRpYXRlbHkgdmlhIHRoZSBraWxsIHNpZ25hbCAobm8gb3Bwb3J0dW5pdHkgdG8gc2h1dCBkb3duKS4gVGhpcyBpcyBhIGJldGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIFByb2JlVGVybWluYXRpb25HcmFjZVBlcmlvZCBmZWF0dXJlIGdhdGUuIE1pbmltdW0gdmFsdWUgaXMgMS4gc3BlYy50ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyBpcyB1c2VkIGlmIHVuc2V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidGltZW91dFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0LiBEZWZhdWx0cyB0byAxIHNlY29uZC4gTWluaW11bSB2YWx1ZSBpcyAxLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIGNvbnRhaW5lcidzIHJlc291cmNlcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBwb2QgdGhpcyBSZXNvdXJjZSBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHJlcXVlc3RzIGFuZCBsaW1pdHMgZm9yIGEgY2VydGFpbiBjb250YWluZXIgYmFzZWQgb24gdGhlIG5hbWUuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIiwidHlwZSI6InN0cmluZyJ9LCJsaW1pdHMiOnsicHJvcGVydGllcyI6eyJjcHUiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9LCJtZW1vcnkiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJwcm9wZXJ0aWVzIjp7ImNwdSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn0sIm1lbW9yeSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ0b2xlcmF0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHRvbGVyYXRpb25zLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFRvbGVyYXRpb24gaXMgYXR0YWNoZWQgdG8gdG9sZXJhdGVzIGFueSB0YWludCB0aGF0IG1hdGNoZXMgdGhlIHRyaXBsZSBcdTAwM2NrZXksdmFsdWUsZWZmZWN0XHUwMDNlIHVzaW5nIHRoZSBtYXRjaGluZyBvcGVyYXRvciBcdTAwM2NvcGVyYXRvclx1MDAzZS4iLCJwcm9wZXJ0aWVzIjp7ImVmZmVjdCI6eyJkZXNjcmlwdGlvbiI6IkVmZmVjdCBpbmRpY2F0ZXMgdGhlIHRhaW50IGVmZmVjdCB0byBtYXRjaC4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGVmZmVjdHMuIFdoZW4gc3BlY2lmaWVkLCBhbGxvd2VkIHZhbHVlcyBhcmUgTm9TY2hlZHVsZSwgUHJlZmVyTm9TY2hlZHVsZSBhbmQgTm9FeGVjdXRlLiIsInR5cGUiOiJzdHJpbmcifSwia2V5Ijp7ImRlc2NyaXB0aW9uIjoiS2V5IGlzIHRoZSB0YWludCBrZXkgdGhhdCB0aGUgdG9sZXJhdGlvbiBhcHBsaWVzIHRvLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQga2V5cy4gSWYgdGhlIGtleSBpcyBlbXB0eSwgb3BlcmF0b3IgbXVzdCBiZSBFeGlzdHM7IHRoaXMgY29tYmluYXRpb24gbWVhbnMgdG8gbWF0Y2ggYWxsIHZhbHVlcyBhbmQgYWxsIGtleXMuIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gdGhlIHZhbHVlLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEV4aXN0cyBhbmQgRXF1YWwuIERlZmF1bHRzIHRvIEVxdWFsLiBFeGlzdHMgaXMgZXF1aXZhbGVudCB0byB3aWxkY2FyZCBmb3IgdmFsdWUsIHNvIHRoYXQgYSBwb2QgY2FuIHRvbGVyYXRlIGFsbCB0YWludHMgb2YgYSBwYXJ0aWN1bGFyIGNhdGVnb3J5LiIsInR5cGUiOiJzdHJpbmcifSwidG9sZXJhdGlvblNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJUb2xlcmF0aW9uU2Vjb25kcyByZXByZXNlbnRzIHRoZSBwZXJpb2Qgb2YgdGltZSB0aGUgdG9sZXJhdGlvbiAod2hpY2ggbXVzdCBiZSBvZiBlZmZlY3QgTm9FeGVjdXRlLCBvdGhlcndpc2UgdGhpcyBmaWVsZCBpcyBpZ25vcmVkKSB0b2xlcmF0ZXMgdGhlIHRhaW50LiBCeSBkZWZhdWx0LCBpdCBpcyBub3Qgc2V0LCB3aGljaCBtZWFucyB0b2xlcmF0ZSB0aGUgdGFpbnQgZm9yZXZlciAoZG8gbm90IGV2aWN0KS4gWmVybyBhbmQgbmVnYXRpdmUgdmFsdWVzIHdpbGwgYmUgdHJlYXRlZCBhcyAwIChldmljdCBpbW1lZGlhdGVseSkgYnkgdGhlIHN5c3RlbS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHRhaW50IHZhbHVlIHRoZSB0b2xlcmF0aW9uIG1hdGNoZXMgdG8uIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMsIHRoZSB2YWx1ZSBzaG91bGQgYmUgZW1wdHksIG90aGVyd2lzZSBqdXN0IGEgcmVndWxhciBzdHJpbmcuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lTcHJlYWRDb25zdHJhaW50cyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHRvcG9sb2d5IHNwcmVhZCBjb25zdHJhaW50cy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRvcG9sb2d5U3ByZWFkQ29uc3RyYWludCBzcGVjaWZpZXMgaG93IHRvIHNwcmVhZCBtYXRjaGluZyBwb2RzIGFtb25nIHRoZSBnaXZlbiB0b3BvbG9neS4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJMYWJlbFNlbGVjdG9yIGlzIHVzZWQgdG8gZmluZCBtYXRjaGluZyBwb2RzLiBQb2RzIHRoYXQgbWF0Y2ggdGhpcyBsYWJlbCBzZWxlY3RvciBhcmUgY291bnRlZCB0byBkZXRlcm1pbmUgdGhlIG51bWJlciBvZiBwb2RzIGluIHRoZWlyIGNvcnJlc3BvbmRpbmcgdG9wb2xvZ3kgZG9tYWluLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibWF4U2tldyI6eyJkZXNjcmlwdGlvbiI6Ik1heFNrZXcgZGVzY3JpYmVzIHRoZSBkZWdyZWUgdG8gd2hpY2ggcG9kcyBtYXkgYmUgdW5ldmVubHkgZGlzdHJpYnV0ZWQuIEl0J3MgdGhlIG1heGltdW0gcGVybWl0dGVkIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgbnVtYmVyIG9mIG1hdGNoaW5nIHBvZHMgaW4gYW55IHR3byB0b3BvbG9neSBkb21haW5zIG9mIGEgZ2l2ZW4gdG9wb2xvZ3kgdHlwZS4gRm9yIGV4YW1wbGUsIGluIGEgMy16b25lIGNsdXN0ZXIsIE1heFNrZXcgaXMgc2V0IHRvIDEsIGFuZCBwb2RzIHdpdGggdGhlIHNhbWUgbGFiZWxTZWxlY3RvciBzcHJlYWQgYXMgMS8xLzA6IHwgem9uZTEgfCB6b25lMiB8IHpvbmUzIHwgfCAgIFAgICB8ICAgUCAgIHwgICAgICAgfCAtIGlmIE1heFNrZXcgaXMgMSwgaW5jb21pbmcgcG9kIGNhbiBvbmx5IGJlIHNjaGVkdWxlZCB0byB6b25lMyB0byBiZWNvbWUgMS8xLzE7IHNjaGVkdWxpbmcgaXQgb250byB6b25lMSh6b25lMikgd291bGQgbWFrZSB0aGUgQWN0dWFsU2tldygyLTApIG9uIHpvbmUxKHpvbmUyKSB2aW9sYXRlIE1heFNrZXcoMSkuIC0gaWYgTWF4U2tldyBpcyAyLCBpbmNvbWluZyBwb2QgY2FuIGJlIHNjaGVkdWxlZCBvbnRvIGFueSB6b25lLiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIERlZmF1bHQgdmFsdWUgaXMgMSBhbmQgMCBpcyBub3QgYWxsb3dlZC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVG9wb2xvZ3lLZXkgaXMgdGhlIGtleSBvZiBub2RlIGxhYmVscy4gTm9kZXMgdGhhdCBoYXZlIGEgbGFiZWwgd2l0aCB0aGlzIGtleSBhbmQgaWRlbnRpY2FsIHZhbHVlcyBhcmUgY29uc2lkZXJlZCB0byBiZSBpbiB0aGUgc2FtZSB0b3BvbG9neS4gV2UgY29uc2lkZXIgZWFjaCBcdTAwM2NrZXksIHZhbHVlXHUwMDNlIGFzIGEgXCJidWNrZXRcIiwgYW5kIHRyeSB0byBwdXQgYmFsYW5jZWQgbnVtYmVyIG9mIHBvZHMgaW50byBlYWNoIGJ1Y2tldC4gSXQncyBhIHJlcXVpcmVkIGZpZWxkLiIsInR5cGUiOiJzdHJpbmcifSwid2hlblVuc2F0aXNmaWFibGUiOnsiZGVzY3JpcHRpb24iOiJXaGVuVW5zYXRpc2ZpYWJsZSBpbmRpY2F0ZXMgaG93IHRvIGRlYWwgd2l0aCBhIHBvZCBpZiBpdCBkb2Vzbid0IHNhdGlzZnkgdGhlIHNwcmVhZCBjb25zdHJhaW50LiAtIERvTm90U2NoZWR1bGUgKGRlZmF1bHQpIHRlbGxzIHRoZSBzY2hlZHVsZXIgbm90IHRvIHNjaGVkdWxlIGl0IC0gU2NoZWR1bGVBbnl3YXkgdGVsbHMgdGhlIHNjaGVkdWxlciB0byBzdGlsbCBzY2hlZHVsZSBpdCBJdCdzIGNvbnNpZGVyZWQgYXMgXCJVbnNhdGlzZmlhYmxlXCIgaWYgYW5kIG9ubHkgaWYgcGxhY2luZyBpbmNvbWluZyBwb2Qgb24gYW55IHRvcG9sb2d5IHZpb2xhdGVzIFwiTWF4U2tld1wiLiBGb3IgZXhhbXBsZSwgaW4gYSAzLXpvbmUgY2x1c3RlciwgTWF4U2tldyBpcyBzZXQgdG8gMSwgYW5kIHBvZHMgd2l0aCB0aGUgc2FtZSBsYWJlbFNlbGVjdG9yIHNwcmVhZCBhcyAzLzEvMTogfCB6b25lMSB8IHpvbmUyIHwgem9uZTMgfCB8IFAgUCBQIHwgICBQICAgfCAgIFAgICB8IElmIFdoZW5VbnNhdGlzZmlhYmxlIGlzIHNldCB0byBEb05vdFNjaGVkdWxlLCBpbmNvbWluZyBwb2QgY2FuIG9ubHkgYmUgc2NoZWR1bGVkIHRvIHpvbmUyKHpvbmUzKSB0byBiZWNvbWUgMy8yLzEoMy8xLzIpIGFzIEFjdHVhbFNrZXcoMi0xKSBvbiB6b25lMih6b25lMykgc2F0aXNmaWVzIE1heFNrZXcoMSkuIEluIG90aGVyIHdvcmRzLCB0aGUgY2x1c3RlciBjYW4gc3RpbGwgYmUgaW1iYWxhbmNlZCwgYnV0IHNjaGVkdWxlciB3b24ndCBtYWtlIGl0ICptb3JlKiBpbWJhbGFuY2VkLiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibWF4U2tldyIsInRvcG9sb2d5S2V5Iiwid2hlblVuc2F0aXNmaWFibGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwidmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlZlcnNpb24gdGhlIGNsdXN0ZXIgc2hvdWxkIGJlIG9uLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW91bnRzIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTW91bnRzIGFsbG93cyBjb25maWd1cmF0aW9uIG9mIGFkZGl0aW9uYWwgVm9sdW1lTW91bnRzIG9uIHRoZSBvdXRwdXQgU3RhdGVmdWxTZXQgZGVmaW5pdGlvbi4gVm9sdW1lTW91bnRzIHNwZWNpZmllZCB3aWxsIGJlIGFwcGVuZGVkIHRvIG90aGVyIFZvbHVtZU1vdW50cyBpbiB0aGUgYWxlcnRtYW5hZ2VyIGNvbnRhaW5lciwgdGhhdCBhcmUgZ2VuZXJhdGVkIGFzIGEgcmVzdWx0IG9mIFN0b3JhZ2VTcGVjIG9iamVjdHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudCBkZXNjcmliZXMgYSBtb3VudGluZyBvZiBhIFZvbHVtZSB3aXRoaW4gYSBjb250YWluZXIuIiwicHJvcGVydGllcyI6eyJtb3VudFBhdGgiOnsiZGVzY3JpcHRpb24iOiJQYXRoIHdpdGhpbiB0aGUgY29udGFpbmVyIGF0IHdoaWNoIHRoZSB2b2x1bWUgc2hvdWxkIGJlIG1vdW50ZWQuICBNdXN0IG5vdCBjb250YWluICc6Jy4iLCJ0eXBlIjoic3RyaW5nIn0sIm1vdW50UHJvcGFnYXRpb24iOnsiZGVzY3JpcHRpb24iOiJtb3VudFByb3BhZ2F0aW9uIGRldGVybWluZXMgaG93IG1vdW50cyBhcmUgcHJvcGFnYXRlZCBmcm9tIHRoZSBob3N0IHRvIGNvbnRhaW5lciBhbmQgdGhlIG90aGVyIHdheSBhcm91bmQuIFdoZW4gbm90IHNldCwgTW91bnRQcm9wYWdhdGlvbk5vbmUgaXMgdXNlZC4gVGhpcyBmaWVsZCBpcyBiZXRhIGluIDEuMTAuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhpcyBtdXN0IG1hdGNoIHRoZSBOYW1lIG9mIGEgVm9sdW1lLiIsInR5cGUiOiJzdHJpbmcifSwicmVhZE9ubHkiOnsiZGVzY3JpcHRpb24iOiJNb3VudGVkIHJlYWQtb25seSBpZiB0cnVlLCByZWFkLXdyaXRlIG90aGVyd2lzZSAoZmFsc2Ugb3IgdW5zcGVjaWZpZWQpLiBEZWZhdWx0cyB0byBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzdWJQYXRoIjp7ImRlc2NyaXB0aW9uIjoiUGF0aCB3aXRoaW4gdGhlIHZvbHVtZSBmcm9tIHdoaWNoIHRoZSBjb250YWluZXIncyB2b2x1bWUgc2hvdWxkIGJlIG1vdW50ZWQuIERlZmF1bHRzIHRvIFwiXCIgKHZvbHVtZSdzIHJvb3QpLiIsInR5cGUiOiJzdHJpbmcifSwic3ViUGF0aEV4cHIiOnsiZGVzY3JpcHRpb24iOiJFeHBhbmRlZCBwYXRoIHdpdGhpbiB0aGUgdm9sdW1lIGZyb20gd2hpY2ggdGhlIGNvbnRhaW5lcidzIHZvbHVtZSBzaG91bGQgYmUgbW91bnRlZC4gQmVoYXZlcyBzaW1pbGFybHkgdG8gU3ViUGF0aCBidXQgZW52aXJvbm1lbnQgdmFyaWFibGUgcmVmZXJlbmNlcyAkKFZBUl9OQU1FKSBhcmUgZXhwYW5kZWQgdXNpbmcgdGhlIGNvbnRhaW5lcidzIGVudmlyb25tZW50LiBEZWZhdWx0cyB0byBcIlwiICh2b2x1bWUncyByb290KS4gU3ViUGF0aEV4cHIgYW5kIFN1YlBhdGggYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJtb3VudFBhdGgiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1wcmVzZXJ2ZS11bmtub3duLWZpZWxkcyI6dHJ1ZX0sInN0YXR1cyI6eyJwcm9wZXJ0aWVzIjp7ImNvbmRpdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGF0ZXN0IGF2YWlsYWJsZSBvYnNlcnZhdGlvbnMgb2YgYSByZXNvdXJjZSdzIGN1cnJlbnQgc3RhdGUuIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJsYXN0VHJhbnNpdGlvblRpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VHJhbnNpdGlvblRpbWUgaXMgdGhlIGxhc3QgdGltZSB0aGUgY29uZGl0aW9uIHRyYW5zaXRpb25lZCBmcm9tIG9uZSBzdGF0dXMgdG8gYW5vdGhlci4gV2UgdXNlIFZvbGF0aWxlVGltZSBpbiBwbGFjZSBvZiBtZXRhdjEuVGltZSB0byBleGNsdWRlIHRoaXMgZnJvbSBjcmVhdGluZyBlcXVhbGl0eS5TZW1hbnRpYyBkaWZmZXJlbmNlcyAoYWxsIG90aGVyIHRoaW5ncyBoZWxkIGNvbnN0YW50KS4iLCJ0eXBlIjoic3RyaW5nIn0sIm1lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJBIGh1bWFuIHJlYWRhYmxlIG1lc3NhZ2UgaW5kaWNhdGluZyBkZXRhaWxzIGFib3V0IHRoZSB0cmFuc2l0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwicmVhc29uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHJlYXNvbiBmb3IgdGhlIGNvbmRpdGlvbidzIGxhc3QgdHJhbnNpdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInNldmVyaXR5Ijp7ImRlc2NyaXB0aW9uIjoiU2V2ZXJpdHkgd2l0aCB3aGljaCB0byB0cmVhdCBmYWlsdXJlcyBvZiB0aGlzIHR5cGUgb2YgY29uZGl0aW9uLiBXaGVuIHRoaXMgaXMgbm90IHNwZWNpZmllZCwgaXQgZGVmYXVsdHMgdG8gRXJyb3IuIiwidHlwZSI6InN0cmluZyJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJTdGF0dXMgb2YgdGhlIGNvbmRpdGlvbiwgb25lIG9mIFRydWUsIEZhbHNlLCBVbmtub3duLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6IlR5cGUgb2YgY29uZGl0aW9uLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiLCJzdGF0dXMiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWFuaWZlc3RzIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGxpc3Qgb2YgZXZlbnRpbmcgbWFuaWZlc3RzLCB3aGljaCBoYXZlIGJlZW4gaW5zdGFsbGVkIGJ5IHRoZSBvcGVyYXRvciIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sIm9ic2VydmVkR2VuZXJhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBnZW5lcmF0aW9uIGxhc3QgcHJvY2Vzc2VkIGJ5IHRoZSBjb250cm9sbGVyIiwidHlwZSI6ImludGVnZXIifSwidmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSB2ZXJzaW9uIG9mIHRoZSBpbnN0YWxsZWQgcmVsZWFzZSIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsibGFiZWxzIjp7ImFwcC5rdWJlcm5ldGVzLmlvL25hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIiwiYXBwLmt1YmVybmV0ZXMuaW8vdmVyc2lvbiI6ImRldmVsIn0sIm5hbWUiOiJrbmF0aXZlc2VydmluZ3Mub3BlcmF0b3Iua25hdGl2ZS5kZXYifSwic3BlYyI6eyJjb252ZXJzaW9uIjp7InN0cmF0ZWd5IjoiV2ViaG9vayIsIndlYmhvb2siOnsiY2xpZW50Q29uZmlnIjp7InNlcnZpY2UiOnsibmFtZSI6Im9wZXJhdG9yLXdlYmhvb2siLCJuYW1lc3BhY2UiOiJrbmF0aXZlLW9wZXJhdG9yIiwicGF0aCI6Ii9yZXNvdXJjZS1jb252ZXJzaW9uIn19LCJjb252ZXJzaW9uUmV2aWV3VmVyc2lvbnMiOlsidjFiZXRhMSJdfX0sImdyb3VwIjoib3BlcmF0b3Iua25hdGl2ZS5kZXYiLCJuYW1lcyI6eyJraW5kIjoiS25hdGl2ZVNlcnZpbmciLCJsaXN0S2luZCI6IktuYXRpdmVTZXJ2aW5nTGlzdCIsInBsdXJhbCI6ImtuYXRpdmVzZXJ2aW5ncyIsInNpbmd1bGFyIjoia25hdGl2ZXNlcnZpbmcifSwic2NvcGUiOiJOYW1lc3BhY2VkIiwidmVyc2lvbnMiOlt7ImFkZGl0aW9uYWxQcmludGVyQ29sdW1ucyI6W3sianNvblBhdGgiOiIuc3RhdHVzLnZlcnNpb24iLCJuYW1lIjoiVmVyc2lvbiIsInR5cGUiOiJzdHJpbmcifSx7Impzb25QYXRoIjoiLnN0YXR1cy5jb25kaXRpb25zWz8oQC50eXBlPT1cIlJlYWR5XCIpXS5zdGF0dXMiLCJuYW1lIjoiUmVhZHkiLCJ0eXBlIjoic3RyaW5nIn0seyJqc29uUGF0aCI6Ii5zdGF0dXMuY29uZGl0aW9uc1s/KEAudHlwZT09XCJSZWFkeVwiKV0ucmVhc29uIiwibmFtZSI6IlJlYXNvbiIsInR5cGUiOiJzdHJpbmcifV0sIm5hbWUiOiJ2MWJldGExIiwic2NoZW1hIjp7Im9wZW5BUElWM1NjaGVtYSI6eyJkZXNjcmlwdGlvbiI6IlNjaGVtYSBmb3IgdGhlIGtuYXRpdmVzZXJ2aW5ncyBBUEkiLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuIFNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZCBtYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuIE1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIEtuYXRpdmVTZXJ2aW5nIiwicHJvcGVydGllcyI6eyJjb25maWciOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoib2JqZWN0In0sImRlc2NyaXB0aW9uIjoiQSBtZWFucyB0byBvdmVycmlkZSB0aGUgY29ycmVzcG9uZGluZyBlbnRyaWVzIGluIHRoZSB1cHN0cmVhbSBjb25maWdtYXBzIiwidHlwZSI6Im9iamVjdCJ9LCJjb250cm9sbGVyLWN1c3RvbS1jZXJ0cyI6eyJkZXNjcmlwdGlvbiI6IkVuYWJsaW5nIHRoZSBjb250cm9sbGVyIHRvIHRydXN0IHJlZ2lzdHJpZXMgd2l0aCBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZXMiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgQ29uZmlnTWFwIG9yIFNlY3JldCIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6Ik9uZSBvZiBDb25maWdNYXAgb3IgU2VjcmV0IiwiZW51bSI6WyJDb25maWdNYXAiLCJTZWNyZXQiLCIiXSwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJkZXBsb3ltZW50cyI6eyJkZXNjcmlwdGlvbiI6IkEgbWFwcGluZyBvZiBkZXBsb3ltZW50IG5hbWUgdG8gb3ZlcnJpZGUiLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7ImFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3Mgc2NoZWR1bGluZyBjb25zdHJhaW50cy4iLCJwcm9wZXJ0aWVzIjp7Im5vZGVBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBub2RlIGFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgZm9yIHRoZSBwb2QuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnkgdGhlIGFmZmluaXR5IGV4cHJlc3Npb25zIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkLCBidXQgaXQgbWF5IGNob29zZSBhIG5vZGUgdGhhdCB2aW9sYXRlcyBvbmUgb3IgbW9yZSBvZiB0aGUgZXhwcmVzc2lvbnMuIFRoZSBub2RlIHRoYXQgaXMgbW9zdCBwcmVmZXJyZWQgaXMgdGhlIG9uZSB3aXRoIHRoZSBncmVhdGVzdCBzdW0gb2Ygd2VpZ2h0cywgaS5lLiBmb3IgZWFjaCBub2RlIHRoYXQgbWVldHMgYWxsIG9mIHRoZSBzY2hlZHVsaW5nIHJlcXVpcmVtZW50cyAocmVzb3VyY2UgcmVxdWVzdCwgcmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nIGFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSwgY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nIFwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIG1hdGNoRXhwcmVzc2lvbnM7IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBbiBlbXB0eSBwcmVmZXJyZWQgc2NoZWR1bGluZyB0ZXJtIG1hdGNoZXMgYWxsIG9iamVjdHMgd2l0aCBpbXBsaWNpdCB3ZWlnaHQgMCAoaS5lLiBpdCdzIGEgbm8tb3ApLiBBIG51bGwgcHJlZmVycmVkIHNjaGVkdWxpbmcgdGVybSBtYXRjaGVzIG5vIG9iamVjdHMgKGkuZS4gaXMgYWxzbyBhIG5vLW9wKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcmVuY2UiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGxhYmVscy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hGaWVsZHMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGZpZWxkcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwid2VpZ2h0Ijp7ImRlc2NyaXB0aW9uIjoiV2VpZ2h0IGFzc29jaWF0ZWQgd2l0aCBtYXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBub2RlU2VsZWN0b3JUZXJtLCBpbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicHJlZmVyZW5jZSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBhcmUgbm90IG1ldCBhdCBzY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuIElmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGFuIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiIsInByb3BlcnRpZXMiOnsibm9kZVNlbGVjdG9yVGVybXMiOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgdGVybXMuIFRoZSB0ZXJtcyBhcmUgT1JlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbnVsbCBvciBlbXB0eSBub2RlIHNlbGVjdG9yIHRlcm0gbWF0Y2hlcyBubyBvYmplY3RzLiBUaGUgcmVxdWlyZW1lbnRzIG9mIHRoZW0gYXJlIEFORGVkLiBUaGUgVG9wb2xvZ3lTZWxlY3RvclRlcm0gdHlwZSBpbXBsZW1lbnRzIGEgc3Vic2V0IG9mIHRoZSBOb2RlU2VsZWN0b3JUZXJtLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgbGFiZWxzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaEZpZWxkcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgZmllbGRzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbIm5vZGVTZWxlY3RvclRlcm1zIl0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwicG9kQWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJEZXNjcmliZXMgcG9kIGFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgKGUuZy4gY28tbG9jYXRlIHRoaXMgcG9kIGluIHRoZSBzYW1lIG5vZGUsIHpvbmUsIGV0Yy4gYXMgc29tZSBvdGhlciBwb2QocykpLiIsInByb3BlcnRpZXMiOnsicHJlZmVycmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgc2NoZWR1bGVyIHdpbGwgcHJlZmVyIHRvIHNjaGVkdWxlIHBvZHMgdG8gbm9kZXMgdGhhdCBzYXRpc2Z5IHRoZSBhZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgaGFzIHBvZHMgd2hpY2ggbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm07IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgd2VpZ2h0cyBvZiBhbGwgb2YgdGhlIG1hdGNoZWQgV2VpZ2h0ZWRQb2RBZmZpbml0eVRlcm0gZmllbGRzIGFyZSBhZGRlZCBwZXItbm9kZSB0byBmaW5kIHRoZSBtb3N0IHByZWZlcnJlZCBub2RlKHMpIiwicHJvcGVydGllcyI6eyJwb2RBZmZpbml0eVRlcm0iOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBwb2QgYWZmaW5pdHkgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ3ZWlnaHQiOnsiZGVzY3JpcHRpb24iOiJ3ZWlnaHQgYXNzb2NpYXRlZCB3aXRoIG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInBvZEFmZmluaXR5VGVybSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBhcmUgbm90IG1ldCBhdCBzY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuIElmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGEgcG9kIGxhYmVsIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiBXaGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBlbGVtZW50cywgdGhlIGxpc3RzIG9mIG5vZGVzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb2RBZmZpbml0eVRlcm0gYXJlIGludGVyc2VjdGVkLCBpLmUuIGFsbCB0ZXJtcyBtdXN0IGJlIHNhdGlzZmllZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkRlZmluZXMgYSBzZXQgb2YgcG9kcyAobmFtZWx5IHRob3NlIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIHJlbGF0aXZlIHRvIHRoZSBnaXZlbiBuYW1lc3BhY2UocykpIHRoYXQgdGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCwgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSBcdTAwM2N0b3BvbG9neUtleVx1MDAzZSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYSBwb2Qgb2YgdGhlIHNldCBvZiBwb2RzIGlzIHJ1bm5pbmciLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwicG9kQW50aUFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiRGVzY3JpYmVzIHBvZCBhbnRpLWFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgKGUuZy4gYXZvaWQgcHV0dGluZyB0aGlzIHBvZCBpbiB0aGUgc2FtZSBub2RlLCB6b25lLCBldGMuIGFzIHNvbWUgb3RoZXIgcG9kKHMpKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcnJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHNjaGVkdWxlciB3aWxsIHByZWZlciB0byBzY2hlZHVsZSBwb2RzIHRvIG5vZGVzIHRoYXQgc2F0aXNmeSB0aGUgYW50aS1hZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhbnRpLWFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSwgY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nIFwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBoYXMgcG9kcyB3aGljaCBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybTsgdGhlIG5vZGUocykgd2l0aCB0aGUgaGlnaGVzdCBzdW0gYXJlIHRoZSBtb3N0IHByZWZlcnJlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSB3ZWlnaHRzIG9mIGFsbCBvZiB0aGUgbWF0Y2hlZCBXZWlnaHRlZFBvZEFmZmluaXR5VGVybSBmaWVsZHMgYXJlIGFkZGVkIHBlci1ub2RlIHRvIGZpbmQgdGhlIG1vc3QgcHJlZmVycmVkIG5vZGUocykiLCJwcm9wZXJ0aWVzIjp7InBvZEFmZmluaXR5VGVybSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkLiBBIHBvZCBhZmZpbml0eSB0ZXJtLCBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgd2VpZ2h0LiIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMsIGluIHRoaXMgY2FzZSBwb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibmFtZXNwYWNlcyI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZXMgc3BlY2lmaWVzIHdoaWNoIG5hbWVzcGFjZXMgdGhlIGxhYmVsU2VsZWN0b3IgYXBwbGllcyB0byAobWF0Y2hlcyBhZ2FpbnN0KTsgbnVsbCBvciBlbXB0eSBsaXN0IG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCB0aGUgcG9kcyBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciBpbiB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGUgc2VsZWN0ZWQgcG9kcyBpcyBydW5uaW5nLiBFbXB0eSB0b3BvbG9neUtleSBpcyBub3QgYWxsb3dlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0b3BvbG9neUtleSJdLCJ0eXBlIjoib2JqZWN0In0sIndlaWdodCI6eyJkZXNjcmlwdGlvbiI6IndlaWdodCBhc3NvY2lhdGVkIHdpdGggbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtLCBpbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicG9kQWZmaW5pdHlUZXJtIiwid2VpZ2h0Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJJZiB0aGUgYW50aS1hZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYW50aS1hZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGEgcG9kIGxhYmVsIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiBXaGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBlbGVtZW50cywgdGhlIGxpc3RzIG9mIG5vZGVzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb2RBZmZpbml0eVRlcm0gYXJlIGludGVyc2VjdGVkLCBpLmUuIGFsbCB0ZXJtcyBtdXN0IGJlIHNhdGlzZmllZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkRlZmluZXMgYSBzZXQgb2YgcG9kcyAobmFtZWx5IHRob3NlIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIHJlbGF0aXZlIHRvIHRoZSBnaXZlbiBuYW1lc3BhY2UocykpIHRoYXQgdGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCwgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSBcdTAwM2N0b3BvbG9neUtleVx1MDAzZSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYSBwb2Qgb2YgdGhlIHNldCBvZiBwb2RzIGlzIHJ1bm5pbmciLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwiYW5ub3RhdGlvbnMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IkFubm90YXRpb25zIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBkZXBsb3ltZW50IGFuZCBpdHMgdGVtcGxhdGUuIiwidHlwZSI6Im9iamVjdCJ9LCJlbnYiOnsiZGVzY3JpcHRpb24iOiJFbnYgb3ZlcnJpZGVzIGVudiB2YXJzIGZvciB0aGUgY29udGFpbmVycy4iLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZW52VmFycyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBkZXNpcmVkIEVudlZhclJlcXVpcmVtZW50cyIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRW52VmFyIHJlcHJlc2VudHMgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgcHJlc2VudCBpbiBhIENvbnRhaW5lci4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZS4gTXVzdCBiZSBhIENfSURFTlRJRklFUi4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFyaWFibGUgcmVmZXJlbmNlcyAkKFZBUl9OQU1FKSBhcmUgZXhwYW5kZWQgdXNpbmcgdGhlIHByZXZpb3VzbHkgZGVmaW5lZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgaW4gdGhlIGNvbnRhaW5lciBhbmQgYW55IHNlcnZpY2UgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxlIGNhbm5vdCBiZSByZXNvbHZlZCwgdGhlIHJlZmVyZW5jZSBpbiB0aGUgaW5wdXQgc3RyaW5nIHdpbGwgYmUgdW5jaGFuZ2VkLiBEb3VibGUgJCQgYXJlIHJlZHVjZWQgdG8gYSBzaW5nbGUgJCwgd2hpY2ggYWxsb3dzIGZvciBlc2NhcGluZyB0aGUgJChWQVJfTkFNRSkgc3ludGF4OiBpLmUuIFwiJCQoVkFSX05BTUUpXCIgd2lsbCBwcm9kdWNlIHRoZSBzdHJpbmcgbGl0ZXJhbCBcIiQoVkFSX05BTUUpXCIuIEVzY2FwZWQgcmVmZXJlbmNlcyB3aWxsIG5ldmVyIGJlIGV4cGFuZGVkLCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHZhcmlhYmxlIGV4aXN0cyBvciBub3QuIERlZmF1bHRzIHRvIFwiXCIuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZUZyb20iOnsiZGVzY3JpcHRpb24iOiJTb3VyY2UgZm9yIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSdzIHZhbHVlLiBDYW5ub3QgYmUgdXNlZCBpZiB2YWx1ZSBpcyBub3QgZW1wdHkuIiwicHJvcGVydGllcyI6eyJjb25maWdNYXBLZXlSZWYiOnsiZGVzY3JpcHRpb24iOiJTZWxlY3RzIGEga2V5IG9mIGEgQ29uZmlnTWFwLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGtleSB0byBzZWxlY3QuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgcmVmZXJlbnQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbmFtZXMvI25hbWVzIFRPRE86IEFkZCBvdGhlciB1c2VmdWwgZmllbGRzLiBhcGlWZXJzaW9uLCBraW5kLCB1aWQ/IiwidHlwZSI6InN0cmluZyJ9LCJvcHRpb25hbCI6eyJkZXNjcmlwdGlvbiI6IlNwZWNpZnkgd2hldGhlciB0aGUgQ29uZmlnTWFwIG9yIGl0cyBrZXkgbXVzdCBiZSBkZWZpbmVkIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImtleSJdLCJ0eXBlIjoib2JqZWN0In0sImZpZWxkUmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGZpZWxkIG9mIHRoZSBwb2Q6IHN1cHBvcnRzIG1ldGFkYXRhLm5hbWUsIG1ldGFkYXRhLm5hbWVzcGFjZSwgYG1ldGFkYXRhLmxhYmVsc1snXHUwMDNjS0VZXHUwMDNlJ11gLCBgbWV0YWRhdGEuYW5ub3RhdGlvbnNbJ1x1MDAzY0tFWVx1MDAzZSddYCwgc3BlYy5ub2RlTmFtZSwgc3BlYy5zZXJ2aWNlQWNjb3VudE5hbWUsIHN0YXR1cy5ob3N0SVAsIHN0YXR1cy5wb2RJUCwgc3RhdHVzLnBvZElQcy4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJWZXJzaW9uIG9mIHRoZSBzY2hlbWEgdGhlIEZpZWxkUGF0aCBpcyB3cml0dGVuIGluIHRlcm1zIG9mLCBkZWZhdWx0cyB0byBcInYxXCIuIiwidHlwZSI6InN0cmluZyJ9LCJmaWVsZFBhdGgiOnsiZGVzY3JpcHRpb24iOiJQYXRoIG9mIHRoZSBmaWVsZCB0byBzZWxlY3QgaW4gdGhlIHNwZWNpZmllZCBBUEkgdmVyc2lvbi4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJmaWVsZFBhdGgiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZUZpZWxkUmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIHJlc291cmNlIG9mIHRoZSBjb250YWluZXI6IG9ubHkgcmVzb3VyY2VzIGxpbWl0cyBhbmQgcmVxdWVzdHMgKGxpbWl0cy5jcHUsIGxpbWl0cy5tZW1vcnksIGxpbWl0cy5lcGhlbWVyYWwtc3RvcmFnZSwgcmVxdWVzdHMuY3B1LCByZXF1ZXN0cy5tZW1vcnkgYW5kIHJlcXVlc3RzLmVwaGVtZXJhbC1zdG9yYWdlKSBhcmUgY3VycmVudGx5IHN1cHBvcnRlZC4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lck5hbWUiOnsiZGVzY3JpcHRpb24iOiJDb250YWluZXIgbmFtZTogcmVxdWlyZWQgZm9yIHZvbHVtZXMsIG9wdGlvbmFsIGZvciBlbnYgdmFycyIsInR5cGUiOiJzdHJpbmcifSwiZGl2aXNvciI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoiU3BlY2lmaWVzIHRoZSBvdXRwdXQgZm9ybWF0IG9mIHRoZSBleHBvc2VkIHJlc291cmNlcywgZGVmYXVsdHMgdG8gXCIxXCIiLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sInJlc291cmNlIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQ6IHJlc291cmNlIHRvIHNlbGVjdCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInJlc291cmNlIl0sInR5cGUiOiJvYmplY3QifSwic2VjcmV0S2V5UmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGtleSBvZiBhIHNlY3JldCBpbiB0aGUgcG9kJ3MgbmFtZXNwYWNlIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUga2V5IG9mIHRoZSBzZWNyZXQgdG8gc2VsZWN0IGZyb20uICBNdXN0IGJlIGEgdmFsaWQgc2VjcmV0IGtleS4iLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSByZWZlcmVudC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9vdmVydmlldy93b3JraW5nLXdpdGgtb2JqZWN0cy9uYW1lcy8jbmFtZXMgVE9ETzogQWRkIG90aGVyIHVzZWZ1bCBmaWVsZHMuIGFwaVZlcnNpb24sIGtpbmQsIHVpZD8iLCJ0eXBlIjoic3RyaW5nIn0sIm9wdGlvbmFsIjp7ImRlc2NyaXB0aW9uIjoiU3BlY2lmeSB3aGV0aGVyIHRoZSBTZWNyZXQgb3IgaXRzIGtleSBtdXN0IGJlIGRlZmluZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsia2V5Il0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJob3N0TmV0d29yayI6eyJkZXNjcmlwdGlvbiI6IlVzZSB0aGUgaG9zdCdzIG5ldHdvcmsgbmFtZXNwYWNlIGlmIHRydWUuIE1ha2Ugc3VyZSB0byB1bmRlcnN0YW5kIHRoZSBzZWN1cml0eSBpbXBsaWNhdGlvbnMgaWYgeW91IHdhbnQgdG8gZW5hYmxlIGl0LiBXaGVuIGhvc3ROZXR3b3JrIGlzIGVuYWJsZWQsIHRoaXMgd2lsbCBzZXQgZG5zUG9saWN5IHRvIENsdXN0ZXJGaXJzdFdpdGhIb3N0TmV0IGF1dG9tYXRpY2FsbHkuIiwidHlwZSI6ImJvb2xlYW4ifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJMYWJlbHMgb3ZlcnJpZGVzIGxhYmVscyBmb3IgdGhlIGRlcGxveW1lbnQgYW5kIGl0cyB0ZW1wbGF0ZS4iLCJ0eXBlIjoib2JqZWN0In0sImxpdmVuZXNzUHJvYmVzIjp7ImRlc2NyaXB0aW9uIjoiTGl2ZW5lc3NQcm9iZXMgb3ZlcnJpZGVzIGxpdmVuZXNzIHByb2JlcyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJQcm9iZXNSZXF1aXJlbWVudHNPdmVycmlkZSBlbmFibGVzIHRoZSB1c2VyIHRvIG92ZXJyaWRlIGFueSBjb250YWluZXIncyBlbnYgdmFycy4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZmFpbHVyZVRocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkLiBEZWZhdWx0cyB0byAzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZS4gRGVmYXVsdCB0byAxMCBzZWNvbmRzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJzdWNjZXNzVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZC4gRGVmYXVsdHMgdG8gMS4gTXVzdCBiZSAxIGZvciBsaXZlbmVzcyBhbmQgc3RhcnR1cC4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBkdXJhdGlvbiBpbiBzZWNvbmRzIHRoZSBwb2QgbmVlZHMgdG8gdGVybWluYXRlIGdyYWNlZnVsbHkgdXBvbiBwcm9iZSBmYWlsdXJlLiBUaGUgZ3JhY2UgcGVyaW9kIGlzIHRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHRoZSBwcm9jZXNzZXMgcnVubmluZyBpbiB0aGUgcG9kIGFyZSBzZW50IGEgdGVybWluYXRpb24gc2lnbmFsIGFuZCB0aGUgdGltZSB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIGZvcmNpYmx5IGhhbHRlZCB3aXRoIGEga2lsbCBzaWduYWwuIFNldCB0aGlzIHZhbHVlIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBjbGVhbnVwIHRpbWUgZm9yIHlvdXIgcHJvY2Vzcy4gSWYgdGhpcyB2YWx1ZSBpcyBuaWwsIHRoZSBwb2QncyB0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgdGhpcyB2YWx1ZSBvdmVycmlkZXMgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBwb2Qgc3BlYy4gVmFsdWUgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlci4gVGhlIHZhbHVlIHplcm8gaW5kaWNhdGVzIHN0b3AgaW1tZWRpYXRlbHkgdmlhIHRoZSBraWxsIHNpZ25hbCAobm8gb3Bwb3J0dW5pdHkgdG8gc2h1dCBkb3duKS4gVGhpcyBpcyBhIGJldGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIFByb2JlVGVybWluYXRpb25HcmFjZVBlcmlvZCBmZWF0dXJlIGdhdGUuIE1pbmltdW0gdmFsdWUgaXMgMS4gc3BlYy50ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyBpcyB1c2VkIGlmIHVuc2V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidGltZW91dFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0LiBEZWZhdWx0cyB0byAxIHNlY29uZC4gTWluaW11bSB2YWx1ZSBpcyAxLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIGRlcGxveW1lbnQiLCJ0eXBlIjoic3RyaW5nIn0sIm5vZGVTZWxlY3RvciI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTm9kZVNlbGVjdG9yIG92ZXJyaWRlcyBub2RlU2VsZWN0b3IgZm9yIHRoZSBkZXBsb3ltZW50LiIsInR5cGUiOiJvYmplY3QifSwicmVhZGluZXNzUHJvYmVzIjp7ImRlc2NyaXB0aW9uIjoiUmVhZGluZXNzUHJvYmVzIG92ZXJyaWRlcyByZWFkaW5lc3MgcHJvYmVzIGZvciB0aGUgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlByb2Jlc1JlcXVpcmVtZW50c092ZXJyaWRlIGVuYWJsZXMgdGhlIHVzZXIgdG8gb3ZlcnJpZGUgYW55IGNvbnRhaW5lcidzIGVudiB2YXJzLiIsInByb3BlcnRpZXMiOnsiY29udGFpbmVyIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGNvbnRhaW5lciBuYW1lIiwidHlwZSI6InN0cmluZyJ9LCJmYWlsdXJlVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBmYWlsdXJlcyBmb3IgdGhlIHByb2JlIHRvIGJlIGNvbnNpZGVyZWQgZmFpbGVkIGFmdGVyIGhhdmluZyBzdWNjZWVkZWQuIERlZmF1bHRzIHRvIDMuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sImluaXRpYWxEZWxheVNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB0aGUgY29udGFpbmVyIGhhcyBzdGFydGVkIGJlZm9yZSBsaXZlbmVzcyBwcm9iZXMgYXJlIGluaXRpYXRlZC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvcG9kcy9wb2QtbGlmZWN5Y2xlI2NvbnRhaW5lci1wcm9iZXMiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJIb3cgb2Z0ZW4gKGluIHNlY29uZHMpIHRvIHBlcmZvcm0gdGhlIHByb2JlLiBEZWZhdWx0IHRvIDEwIHNlY29uZHMuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInN1Y2Nlc3NUaHJlc2hvbGQiOnsiZGVzY3JpcHRpb24iOiJNaW5pbXVtIGNvbnNlY3V0aXZlIHN1Y2Nlc3NlcyBmb3IgdGhlIHByb2JlIHRvIGJlIGNvbnNpZGVyZWQgc3VjY2Vzc2Z1bCBhZnRlciBoYXZpbmcgZmFpbGVkLiBEZWZhdWx0cyB0byAxLiBNdXN0IGJlIDEgZm9yIGxpdmVuZXNzIGFuZCBzdGFydHVwLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik9wdGlvbmFsIGR1cmF0aW9uIGluIHNlY29uZHMgdGhlIHBvZCBuZWVkcyB0byB0ZXJtaW5hdGUgZ3JhY2VmdWxseSB1cG9uIHByb2JlIGZhaWx1cmUuIFRoZSBncmFjZSBwZXJpb2QgaXMgdGhlIGR1cmF0aW9uIGluIHNlY29uZHMgYWZ0ZXIgdGhlIHByb2Nlc3NlcyBydW5uaW5nIGluIHRoZSBwb2QgYXJlIHNlbnQgYSB0ZXJtaW5hdGlvbiBzaWduYWwgYW5kIHRoZSB0aW1lIHdoZW4gdGhlIHByb2Nlc3NlcyBhcmUgZm9yY2libHkgaGFsdGVkIHdpdGggYSBraWxsIHNpZ25hbC4gU2V0IHRoaXMgdmFsdWUgbG9uZ2VyIHRoYW4gdGhlIGV4cGVjdGVkIGNsZWFudXAgdGltZSBmb3IgeW91ciBwcm9jZXNzLiBJZiB0aGlzIHZhbHVlIGlzIG5pbCwgdGhlIHBvZCdzIHRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIHdpbGwgYmUgdXNlZC4gT3RoZXJ3aXNlLCB0aGlzIHZhbHVlIG92ZXJyaWRlcyB0aGUgdmFsdWUgcHJvdmlkZWQgYnkgdGhlIHBvZCBzcGVjLiBWYWx1ZSBtdXN0IGJlIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyLiBUaGUgdmFsdWUgemVybyBpbmRpY2F0ZXMgc3RvcCBpbW1lZGlhdGVseSB2aWEgdGhlIGtpbGwgc2lnbmFsIChubyBvcHBvcnR1bml0eSB0byBzaHV0IGRvd24pLiBUaGlzIGlzIGEgYmV0YSBmaWVsZCBhbmQgcmVxdWlyZXMgZW5hYmxpbmcgUHJvYmVUZXJtaW5hdGlvbkdyYWNlUGVyaW9kIGZlYXR1cmUgZ2F0ZS4gTWluaW11bSB2YWx1ZSBpcyAxLiBzcGVjLnRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIGlzIHVzZWQgaWYgdW5zZXQuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ0aW1lb3V0U2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHdoaWNoIHRoZSBwcm9iZSB0aW1lcyBvdXQuIERlZmF1bHRzIHRvIDEgc2Vjb25kLiBNaW5pbXVtIHZhbHVlIGlzIDEuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsiY29udGFpbmVyIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcGxpY2FzIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG51bWJlciBvZiByZXBsaWNhcyB0aGF0IEhBIHBhcnRzIG9mIHRoZSBjb250cm9sIHBsYW5lIHdpbGwgYmUgc2NhbGVkIHRvIiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgY29udGFpbmVyJ3MgcmVzb3VyY2VzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFJlc291cmNlIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgcmVxdWVzdHMgYW5kIGxpbWl0cyBmb3IgYSBjZXJ0YWluIGNvbnRhaW5lciBiYXNlZCBvbiB0aGUgbmFtZS4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBjb250YWluZXIiLCJ0eXBlIjoic3RyaW5nIn0sImxpbWl0cyI6eyJwcm9wZXJ0aWVzIjp7ImNwdSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn0sIm1lbW9yeSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7InByb3BlcnRpZXMiOnsiY3B1Ijp7InBhdHRlcm4iOiJeKFsrLV0/WzAtOS5dKykoW2VFaW51bWtLTUdUUF0qWy0rXT9bMC05XSopJCIsInR5cGUiOiJzdHJpbmcifSwibWVtb3J5Ijp7InBhdHRlcm4iOiJeKFsrLV0/WzAtOS5dKykoW2VFaW51bWtLTUdUUF0qWy0rXT9bMC05XSopJCIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInRvbGVyYXRpb25zIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3MgdG9sZXJhdGlvbnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgcG9kIHRoaXMgVG9sZXJhdGlvbiBpcyBhdHRhY2hlZCB0byB0b2xlcmF0ZXMgYW55IHRhaW50IHRoYXQgbWF0Y2hlcyB0aGUgdHJpcGxlIFx1MDAzY2tleSx2YWx1ZSxlZmZlY3RcdTAwM2UgdXNpbmcgdGhlIG1hdGNoaW5nIG9wZXJhdG9yIFx1MDAzY29wZXJhdG9yXHUwMDNlLiIsInByb3BlcnRpZXMiOnsiZWZmZWN0Ijp7ImRlc2NyaXB0aW9uIjoiRWZmZWN0IGluZGljYXRlcyB0aGUgdGFpbnQgZWZmZWN0IHRvIG1hdGNoLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQgZWZmZWN0cy4gV2hlbiBzcGVjaWZpZWQsIGFsbG93ZWQgdmFsdWVzIGFyZSBOb1NjaGVkdWxlLCBQcmVmZXJOb1NjaGVkdWxlIGFuZCBOb0V4ZWN1dGUuIiwidHlwZSI6InN0cmluZyJ9LCJrZXkiOnsiZGVzY3JpcHRpb24iOiJLZXkgaXMgdGhlIHRhaW50IGtleSB0aGF0IHRoZSB0b2xlcmF0aW9uIGFwcGxpZXMgdG8uIEVtcHR5IG1lYW5zIG1hdGNoIGFsbCB0YWludCBrZXlzLiBJZiB0aGUga2V5IGlzIGVtcHR5LCBvcGVyYXRvciBtdXN0IGJlIEV4aXN0czsgdGhpcyBjb21iaW5hdGlvbiBtZWFucyB0byBtYXRjaCBhbGwgdmFsdWVzIGFuZCBhbGwga2V5cy4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiT3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byB0aGUgdmFsdWUuIFZhbGlkIG9wZXJhdG9ycyBhcmUgRXhpc3RzIGFuZCBFcXVhbC4gRGVmYXVsdHMgdG8gRXF1YWwuIEV4aXN0cyBpcyBlcXVpdmFsZW50IHRvIHdpbGRjYXJkIGZvciB2YWx1ZSwgc28gdGhhdCBhIHBvZCBjYW4gdG9sZXJhdGUgYWxsIHRhaW50cyBvZiBhIHBhcnRpY3VsYXIgY2F0ZWdvcnkuIiwidHlwZSI6InN0cmluZyJ9LCJ0b2xlcmF0aW9uU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IlRvbGVyYXRpb25TZWNvbmRzIHJlcHJlc2VudHMgdGhlIHBlcmlvZCBvZiB0aW1lIHRoZSB0b2xlcmF0aW9uICh3aGljaCBtdXN0IGJlIG9mIGVmZmVjdCBOb0V4ZWN1dGUsIG90aGVyd2lzZSB0aGlzIGZpZWxkIGlzIGlnbm9yZWQpIHRvbGVyYXRlcyB0aGUgdGFpbnQuIEJ5IGRlZmF1bHQsIGl0IGlzIG5vdCBzZXQsIHdoaWNoIG1lYW5zIHRvbGVyYXRlIHRoZSB0YWludCBmb3JldmVyIChkbyBub3QgZXZpY3QpLiBaZXJvIGFuZCBuZWdhdGl2ZSB2YWx1ZXMgd2lsbCBiZSB0cmVhdGVkIGFzIDAgKGV2aWN0IGltbWVkaWF0ZWx5KSBieSB0aGUgc3lzdGVtLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgdGFpbnQgdmFsdWUgdGhlIHRvbGVyYXRpb24gbWF0Y2hlcyB0by4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cywgdGhlIHZhbHVlIHNob3VsZCBiZSBlbXB0eSwgb3RoZXJ3aXNlIGp1c3QgYSByZWd1bGFyIHN0cmluZy4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neVNwcmVhZENvbnN0cmFpbnRzIjp7ImRlc2NyaXB0aW9uIjoiSWYgc3BlY2lmaWVkLCB0aGUgcG9kJ3MgdG9wb2xvZ3kgc3ByZWFkIGNvbnN0cmFpbnRzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVG9wb2xvZ3lTcHJlYWRDb25zdHJhaW50IHNwZWNpZmllcyBob3cgdG8gc3ByZWFkIG1hdGNoaW5nIHBvZHMgYW1vbmcgdGhlIGdpdmVuIHRvcG9sb2d5LiIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkxhYmVsU2VsZWN0b3IgaXMgdXNlZCB0byBmaW5kIG1hdGNoaW5nIHBvZHMuIFBvZHMgdGhhdCBtYXRjaCB0aGlzIGxhYmVsIHNlbGVjdG9yIGFyZSBjb3VudGVkIHRvIGRldGVybWluZSB0aGUgbnVtYmVyIG9mIHBvZHMgaW4gdGhlaXIgY29ycmVzcG9uZGluZyB0b3BvbG9neSBkb21haW4uIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJtYXhTa2V3Ijp7ImRlc2NyaXB0aW9uIjoiTWF4U2tldyBkZXNjcmliZXMgdGhlIGRlZ3JlZSB0byB3aGljaCBwb2RzIG1heSBiZSB1bmV2ZW5seSBkaXN0cmlidXRlZC4gSXQncyB0aGUgbWF4aW11bSBwZXJtaXR0ZWQgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBudW1iZXIgb2YgbWF0Y2hpbmcgcG9kcyBpbiBhbnkgdHdvIHRvcG9sb2d5IGRvbWFpbnMgb2YgYSBnaXZlbiB0b3BvbG9neSB0eXBlLiBGb3IgZXhhbXBsZSwgaW4gYSAzLXpvbmUgY2x1c3RlciwgTWF4U2tldyBpcyBzZXQgdG8gMSwgYW5kIHBvZHMgd2l0aCB0aGUgc2FtZSBsYWJlbFNlbGVjdG9yIHNwcmVhZCBhcyAxLzEvMDogfCB6b25lMSB8IHpvbmUyIHwgem9uZTMgfCB8ICAgUCAgIHwgICBQICAgfCAgICAgICB8IC0gaWYgTWF4U2tldyBpcyAxLCBpbmNvbWluZyBwb2QgY2FuIG9ubHkgYmUgc2NoZWR1bGVkIHRvIHpvbmUzIHRvIGJlY29tZSAxLzEvMTsgc2NoZWR1bGluZyBpdCBvbnRvIHpvbmUxKHpvbmUyKSB3b3VsZCBtYWtlIHRoZSBBY3R1YWxTa2V3KDItMCkgb24gem9uZTEoem9uZTIpIHZpb2xhdGUgTWF4U2tldygxKS4gLSBpZiBNYXhTa2V3IGlzIDIsIGluY29taW5nIHBvZCBjYW4gYmUgc2NoZWR1bGVkIG9udG8gYW55IHpvbmUuIEl0J3MgYSByZXF1aXJlZCBmaWVsZC4gRGVmYXVsdCB2YWx1ZSBpcyAxIGFuZCAwIGlzIG5vdCBhbGxvd2VkLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUb3BvbG9neUtleSBpcyB0aGUga2V5IG9mIG5vZGUgbGFiZWxzLiBOb2RlcyB0aGF0IGhhdmUgYSBsYWJlbCB3aXRoIHRoaXMga2V5IGFuZCBpZGVudGljYWwgdmFsdWVzIGFyZSBjb25zaWRlcmVkIHRvIGJlIGluIHRoZSBzYW1lIHRvcG9sb2d5LiBXZSBjb25zaWRlciBlYWNoIFx1MDAzY2tleSwgdmFsdWVcdTAwM2UgYXMgYSBcImJ1Y2tldFwiLCBhbmQgdHJ5IHRvIHB1dCBiYWxhbmNlZCBudW1iZXIgb2YgcG9kcyBpbnRvIGVhY2ggYnVja2V0LiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIiwidHlwZSI6InN0cmluZyJ9LCJ3aGVuVW5zYXRpc2ZpYWJsZSI6eyJkZXNjcmlwdGlvbiI6IldoZW5VbnNhdGlzZmlhYmxlIGluZGljYXRlcyBob3cgdG8gZGVhbCB3aXRoIGEgcG9kIGlmIGl0IGRvZXNuJ3Qgc2F0aXNmeSB0aGUgc3ByZWFkIGNvbnN0cmFpbnQuIC0gRG9Ob3RTY2hlZHVsZSAoZGVmYXVsdCkgdGVsbHMgdGhlIHNjaGVkdWxlciBub3QgdG8gc2NoZWR1bGUgaXQgLSBTY2hlZHVsZUFueXdheSB0ZWxscyB0aGUgc2NoZWR1bGVyIHRvIHN0aWxsIHNjaGVkdWxlIGl0IEl0J3MgY29uc2lkZXJlZCBhcyBcIlVuc2F0aXNmaWFibGVcIiBpZiBhbmQgb25seSBpZiBwbGFjaW5nIGluY29taW5nIHBvZCBvbiBhbnkgdG9wb2xvZ3kgdmlvbGF0ZXMgXCJNYXhTa2V3XCIuIEZvciBleGFtcGxlLCBpbiBhIDMtem9uZSBjbHVzdGVyLCBNYXhTa2V3IGlzIHNldCB0byAxLCBhbmQgcG9kcyB3aXRoIHRoZSBzYW1lIGxhYmVsU2VsZWN0b3Igc3ByZWFkIGFzIDMvMS8xOiB8IHpvbmUxIHwgem9uZTIgfCB6b25lMyB8IHwgUCBQIFAgfCAgIFAgICB8ICAgUCAgIHwgSWYgV2hlblVuc2F0aXNmaWFibGUgaXMgc2V0IHRvIERvTm90U2NoZWR1bGUsIGluY29taW5nIHBvZCBjYW4gb25seSBiZSBzY2hlZHVsZWQgdG8gem9uZTIoem9uZTMpIHRvIGJlY29tZSAzLzIvMSgzLzEvMikgYXMgQWN0dWFsU2tldygyLTEpIG9uIHpvbmUyKHpvbmUzKSBzYXRpc2ZpZXMgTWF4U2tldygxKS4gSW4gb3RoZXIgd29yZHMsIHRoZSBjbHVzdGVyIGNhbiBzdGlsbCBiZSBpbWJhbGFuY2VkLCBidXQgc2NoZWR1bGVyIHdvbid0IG1ha2UgaXQgKm1vcmUqIGltYmFsYW5jZWQuIEl0J3MgYSByZXF1aXJlZCBmaWVsZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJtYXhTa2V3IiwidG9wb2xvZ3lLZXkiLCJ3aGVuVW5zYXRpc2ZpYWJsZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiaGlnaC1hdmFpbGFiaWxpdHkiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiBIQSBjb250cm9sIHBsYW5lIiwicHJvcGVydGllcyI6eyJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sImluZ3Jlc3MiOnsiZGVzY3JpcHRpb24iOiJUaGUgaW5ncmVzcyBjb25maWd1cmF0aW9uIGZvciBLbmF0aXZlIFNlcnZpbmciLCJwcm9wZXJ0aWVzIjp7ImlzdGlvIjp7ImRlc2NyaXB0aW9uIjoiSXN0aW8gc2V0dGluZ3MiLCJwcm9wZXJ0aWVzIjp7ImVuYWJsZWQiOnsidHlwZSI6ImJvb2xlYW4ifSwia25hdGl2ZS1sb2NhbC1nYXRld2F5Ijp7ImRlc2NyaXB0aW9uIjoiQSBtZWFucyB0byBvdmVycmlkZSB0aGUga25hdGl2ZS1sb2NhbC1nYXRld2F5IiwicHJvcGVydGllcyI6eyJzZWxlY3RvciI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiVGhlIHNlbGVjdG9yIGZvciB0aGUgaW5ncmVzcy1nYXRld2F5LiIsInR5cGUiOiJvYmplY3QifSwic2VydmVycyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBzZXJ2ZXIgc3BlY2lmaWNhdGlvbnMuIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJob3N0cyI6eyJkZXNjcmlwdGlvbiI6Ik9uZSBvciBtb3JlIGhvc3RzIGV4cG9zZWQgYnkgdGhpcyBnYXRld2F5LiIsIml0ZW1zIjp7ImZvcm1hdCI6InN0cmluZyIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInBvcnQiOnsicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFiZWwgYXNzaWduZWQgdG8gdGhlIHBvcnQuIiwiZm9ybWF0Ijoic3RyaW5nIiwidHlwZSI6InN0cmluZyJ9LCJudW1iZXIiOnsiZGVzY3JpcHRpb24iOiJBIHZhbGlkIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyIHBvcnQgbnVtYmVyLiIsInR5cGUiOiJpbnRlZ2VyIn0sInByb3RvY29sIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHByb3RvY29sIGV4cG9zZWQgb24gdGhlIHBvcnQuIiwiZm9ybWF0Ijoic3RyaW5nIiwidHlwZSI6InN0cmluZyJ9LCJ0YXJnZXRfcG9ydCI6eyJkZXNjcmlwdGlvbiI6IkEgdmFsaWQgbm9uLW5lZ2F0aXZlIGludGVnZXIgdGFyZ2V0IHBvcnQgbnVtYmVyLiIsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sInRscyI6eyJudWxsYWJsZSI6dHJ1ZSwib25lT2YiOlt7InJlcXVpcmVkIjpbIm1vZGUiLCJjcmVkZW50aWFsTmFtZSJdfSx7InJlcXVpcmVkIjpbImh0dHBzUmVkaXJlY3QiXX1dLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxOYW1lIjp7ImRlc2NyaXB0aW9uIjoiVExTIGNlcnRpZmljYXRlIG5hbWUuIiwiZm9ybWF0Ijoic3RyaW5nIiwidHlwZSI6InN0cmluZyJ9LCJodHRwc1JlZGlyZWN0Ijp7ImRlc2NyaXB0aW9uIjoiSWYgc2V0IHRvIHRydWUsIHRoZSBsb2FkIGJhbGFuY2VyIHdpbGwgc2VuZCBhIDMwMSByZWRpcmVjdCB0byBIVFRQUyBmb3IgYWxsIEhUVFAgcmVxdWVzdHMuIFNob3VsZCBiZSB1c2VkIG9ubHkgZm9yIEhUVFAgbGlzdGVuZXIsIGlzIG11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGFsbCBvdGhlciBUTFMgb3B0aW9ucy4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJtb2RlIjp7ImRlc2NyaXB0aW9uIjoiVExTIG1vZGUgY2FuIGJlIFNJTVBMRSwgTVVUVUFMLCBJU1RJT19NVVRVQUwuIiwiZm9ybWF0Ijoic3RyaW5nIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwia291cmllciI6eyJkZXNjcmlwdGlvbiI6IktvdXJpZXIgc2V0dGluZ3MiLCJwcm9wZXJ0aWVzIjp7ImJvb3RzdHJhcC1jb25maWdtYXAiOnsidHlwZSI6InN0cmluZyJ9LCJlbmFibGVkIjp7InR5cGUiOiJib29sZWFuIn0sImh0dHAtcG9ydCI6eyJ0eXBlIjoiaW50ZWdlciJ9LCJodHRwcy1wb3J0Ijp7InR5cGUiOiJpbnRlZ2VyIn0sInNlcnZpY2UtbG9hZC1iYWxhbmNlci1pcCI6eyJ0eXBlIjoic3RyaW5nIn0sInNlcnZpY2UtdHlwZSI6eyJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLXByZXNlcnZlLXVua25vd24tZmllbGRzIjp0cnVlfSwicG9kRGlzcnVwdGlvbkJ1ZGdldHMiOnsiZGVzY3JpcHRpb24iOiJBIG1hcHBpbmcgb2YgcG9kRGlzcnVwdGlvbkJ1ZGdldCBuYW1lIHRvIG92ZXJyaWRlIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJtYXhVbmF2YWlsYWJsZSI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoiQW4gZXZpY3Rpb24gaXMgYWxsb3dlZCBpZiBhdCBtb3N0IFwibWF4VW5hdmFpbGFibGVcIiBwb2RzIHNlbGVjdGVkIGJ5IFwic2VsZWN0b3JcIiBhcmUgdW5hdmFpbGFibGUgYWZ0ZXIgdGhlIGV2aWN0aW9uLCBpLmUuIGV2ZW4gaW4gYWJzZW5jZSBvZiB0aGUgZXZpY3RlZCBwb2QuIEZvciBleGFtcGxlLCBvbmUgY2FuIHByZXZlbnQgYWxsIHZvbHVudGFyeSBldmljdGlvbnMgYnkgc3BlY2lmeWluZyAwLiBUaGlzIGlzIGEgbXV0dWFsbHkgZXhjbHVzaXZlIHNldHRpbmcgd2l0aCBcIm1pbkF2YWlsYWJsZVwiLiIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwibWluQXZhaWxhYmxlIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwiZGVzY3JpcHRpb24iOiJBbiBldmljdGlvbiBpcyBhbGxvd2VkIGlmIGF0IGxlYXN0IFwibWluQXZhaWxhYmxlXCIgcG9kcyBzZWxlY3RlZCBieSBcInNlbGVjdG9yXCIgd2lsbCBzdGlsbCBiZSBhdmFpbGFibGUgYWZ0ZXIgdGhlIGV2aWN0aW9uLCBpLmUuIGV2ZW4gaW4gdGhlIGFic2VuY2Ugb2YgdGhlIGV2aWN0ZWQgcG9kLiAgU28gZm9yIGV4YW1wbGUgeW91IGNhbiBwcmV2ZW50IGFsbCB2b2x1bnRhcnkgZXZpY3Rpb25zIGJ5IHNwZWNpZnlpbmcgXCIxMDAlXCIuIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIHBvZERpc3J1cHRpb25CdWRnZXQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJzZWN1cml0eSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzZWN1cml0eSBjb25maWd1cmF0aW9uIGZvciBLbmF0aXZlIFNlcnZpbmciLCJwcm9wZXJ0aWVzIjp7InNlY3VyaXR5R3VhcmQiOnsiZGVzY3JpcHRpb24iOiJTZWN1cml0eSBHdWFyZCBzZXR0aW5ncyIsInByb3BlcnRpZXMiOnsiZW5hYmxlZCI6eyJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzZXJ2aWNlcyI6eyJkZXNjcmlwdGlvbiI6IkEgbWFwcGluZyBvZiBzZXJ2aWNlIG5hbWUgdG8gb3ZlcnJpZGUiLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7ImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBvdmVycmlkZXMgbGFiZWxzIGZvciB0aGUgc2VydmljZSIsInR5cGUiOiJvYmplY3QifSwibGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJMYWJlbHMgb3ZlcnJpZGVzIGxhYmVscyBmb3IgdGhlIHNlcnZpY2UiLCJ0eXBlIjoib2JqZWN0In0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgc2VydmljZSIsInR5cGUiOiJzdHJpbmcifSwic2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6IlNlbGVjdG9yIG92ZXJyaWRlcyBzZWxlY3RvciBmb3IgdGhlIHNlcnZpY2UiLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ3b3JrbG9hZHMiOnsiZGVzY3JpcHRpb24iOiJBIG1hcHBpbmcgb2YgZGVwbG95bWVudCBvciBzdGF0ZWZ1bHNldCBuYW1lIHRvIG92ZXJyaWRlIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJhZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHNjaGVkdWxpbmcgY29uc3RyYWludHMuIiwicHJvcGVydGllcyI6eyJub2RlQWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJEZXNjcmliZXMgbm9kZSBhZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIGZvciB0aGUgcG9kLiIsInByb3BlcnRpZXMiOnsicHJlZmVycmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgc2NoZWR1bGVyIHdpbGwgcHJlZmVyIHRvIHNjaGVkdWxlIHBvZHMgdG8gbm9kZXMgdGhhdCBzYXRpc2Z5IHRoZSBhZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBtYXRjaEV4cHJlc3Npb25zOyB0aGUgbm9kZShzKSB3aXRoIHRoZSBoaWdoZXN0IHN1bSBhcmUgdGhlIG1vc3QgcHJlZmVycmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQW4gZW1wdHkgcHJlZmVycmVkIHNjaGVkdWxpbmcgdGVybSBtYXRjaGVzIGFsbCBvYmplY3RzIHdpdGggaW1wbGljaXQgd2VpZ2h0IDAgKGkuZS4gaXQncyBhIG5vLW9wKS4gQSBudWxsIHByZWZlcnJlZCBzY2hlZHVsaW5nIHRlcm0gbWF0Y2hlcyBubyBvYmplY3RzIChpLmUuIGlzIGFsc28gYSBuby1vcCkuIiwicHJvcGVydGllcyI6eyJwcmVmZXJlbmNlIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHRlcm0sIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB3ZWlnaHQuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBsYWJlbHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoRmllbGRzIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBmaWVsZHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sIndlaWdodCI6eyJkZXNjcmlwdGlvbiI6IldlaWdodCBhc3NvY2lhdGVkIHdpdGggbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgbm9kZVNlbGVjdG9yVGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInByZWZlcmVuY2UiLCJ3ZWlnaHQiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IklmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhbiB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4iLCJwcm9wZXJ0aWVzIjp7Im5vZGVTZWxlY3RvclRlcm1zIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQuIEEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHRlcm1zLiBUaGUgdGVybXMgYXJlIE9SZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG51bGwgb3IgZW1wdHkgbm9kZSBzZWxlY3RvciB0ZXJtIG1hdGNoZXMgbm8gb2JqZWN0cy4gVGhlIHJlcXVpcmVtZW50cyBvZiB0aGVtIGFyZSBBTkRlZC4gVGhlIFRvcG9sb2d5U2VsZWN0b3JUZXJtIHR5cGUgaW1wbGVtZW50cyBhIHN1YnNldCBvZiB0aGUgTm9kZVNlbGVjdG9yVGVybS4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGxhYmVscy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hGaWVsZHMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGZpZWxkcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJub2RlU2VsZWN0b3JUZXJtcyJdLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInBvZEFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiRGVzY3JpYmVzIHBvZCBhZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIChlLmcuIGNvLWxvY2F0ZSB0aGlzIHBvZCBpbiB0aGUgc2FtZSBub2RlLCB6b25lLCBldGMuIGFzIHNvbWUgb3RoZXIgcG9kKHMpKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcnJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHNjaGVkdWxlciB3aWxsIHByZWZlciB0byBzY2hlZHVsZSBwb2RzIHRvIG5vZGVzIHRoYXQgc2F0aXNmeSB0aGUgYWZmaW5pdHkgZXhwcmVzc2lvbnMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQsIGJ1dCBpdCBtYXkgY2hvb3NlIGEgbm9kZSB0aGF0IHZpb2xhdGVzIG9uZSBvciBtb3JlIG9mIHRoZSBleHByZXNzaW9ucy4gVGhlIG5vZGUgdGhhdCBpcyBtb3N0IHByZWZlcnJlZCBpcyB0aGUgb25lIHdpdGggdGhlIGdyZWF0ZXN0IHN1bSBvZiB3ZWlnaHRzLCBpLmUuIGZvciBlYWNoIG5vZGUgdGhhdCBtZWV0cyBhbGwgb2YgdGhlIHNjaGVkdWxpbmcgcmVxdWlyZW1lbnRzIChyZXNvdXJjZSByZXF1ZXN0LCByZXF1aXJlZER1cmluZ1NjaGVkdWxpbmcgYWZmaW5pdHkgZXhwcmVzc2lvbnMsIGV0Yy4pLCBjb21wdXRlIGEgc3VtIGJ5IGl0ZXJhdGluZyB0aHJvdWdoIHRoZSBlbGVtZW50cyBvZiB0aGlzIGZpZWxkIGFuZCBhZGRpbmcgXCJ3ZWlnaHRcIiB0byB0aGUgc3VtIGlmIHRoZSBub2RlIGhhcyBwb2RzIHdoaWNoIG1hdGNoZXMgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtOyB0aGUgbm9kZShzKSB3aXRoIHRoZSBoaWdoZXN0IHN1bSBhcmUgdGhlIG1vc3QgcHJlZmVycmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHdlaWdodHMgb2YgYWxsIG9mIHRoZSBtYXRjaGVkIFdlaWdodGVkUG9kQWZmaW5pdHlUZXJtIGZpZWxkcyBhcmUgYWRkZWQgcGVyLW5vZGUgdG8gZmluZCB0aGUgbW9zdCBwcmVmZXJyZWQgbm9kZShzKSIsInByb3BlcnRpZXMiOnsicG9kQWZmaW5pdHlUZXJtIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQuIEEgcG9kIGFmZmluaXR5IHRlcm0sIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB3ZWlnaHQuIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwid2VpZ2h0Ijp7ImRlc2NyaXB0aW9uIjoid2VpZ2h0IGFzc29jaWF0ZWQgd2l0aCBtYXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm0sIGluIHRoZSByYW5nZSAxLTEwMC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJwb2RBZmZpbml0eVRlcm0iLCJ3ZWlnaHQiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IklmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhIHBvZCBsYWJlbCB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4gV2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgZWxlbWVudHMsIHRoZSBsaXN0cyBvZiBub2RlcyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9kQWZmaW5pdHlUZXJtIGFyZSBpbnRlcnNlY3RlZCwgaS5lLiBhbGwgdGVybXMgbXVzdCBiZSBzYXRpc2ZpZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJEZWZpbmVzIGEgc2V0IG9mIHBvZHMgKG5hbWVseSB0aG9zZSBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gbmFtZXNwYWNlKHMpKSB0aGF0IHRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGgsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgXHUwMDNjdG9wb2xvZ3lLZXlcdTAwM2UgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGEgcG9kIG9mIHRoZSBzZXQgb2YgcG9kcyBpcyBydW5uaW5nIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBvZEFudGlBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBwb2QgYW50aS1hZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIChlLmcuIGF2b2lkIHB1dHRpbmcgdGhpcyBwb2QgaW4gdGhlIHNhbWUgbm9kZSwgem9uZSwgZXRjLiBhcyBzb21lIG90aGVyIHBvZChzKSkuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnkgdGhlIGFudGktYWZmaW5pdHkgZXhwcmVzc2lvbnMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQsIGJ1dCBpdCBtYXkgY2hvb3NlIGEgbm9kZSB0aGF0IHZpb2xhdGVzIG9uZSBvciBtb3JlIG9mIHRoZSBleHByZXNzaW9ucy4gVGhlIG5vZGUgdGhhdCBpcyBtb3N0IHByZWZlcnJlZCBpcyB0aGUgb25lIHdpdGggdGhlIGdyZWF0ZXN0IHN1bSBvZiB3ZWlnaHRzLCBpLmUuIGZvciBlYWNoIG5vZGUgdGhhdCBtZWV0cyBhbGwgb2YgdGhlIHNjaGVkdWxpbmcgcmVxdWlyZW1lbnRzIChyZXNvdXJjZSByZXF1ZXN0LCByZXF1aXJlZER1cmluZ1NjaGVkdWxpbmcgYW50aS1hZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgaGFzIHBvZHMgd2hpY2ggbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm07IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgd2VpZ2h0cyBvZiBhbGwgb2YgdGhlIG1hdGNoZWQgV2VpZ2h0ZWRQb2RBZmZpbml0eVRlcm0gZmllbGRzIGFyZSBhZGRlZCBwZXItbm9kZSB0byBmaW5kIHRoZSBtb3N0IHByZWZlcnJlZCBub2RlKHMpIiwicHJvcGVydGllcyI6eyJwb2RBZmZpbml0eVRlcm0iOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBwb2QgYWZmaW5pdHkgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyB3aGljaCBuYW1lc3BhY2VzIHRoZSBsYWJlbFNlbGVjdG9yIGFwcGxpZXMgdG8gKG1hdGNoZXMgYWdhaW5zdCk7IG51bGwgb3IgZW1wdHkgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ3ZWlnaHQiOnsiZGVzY3JpcHRpb24iOiJ3ZWlnaHQgYXNzb2NpYXRlZCB3aXRoIG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInBvZEFmZmluaXR5VGVybSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFudGktYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGFyZSBub3QgbWV0IGF0IHNjaGVkdWxpbmcgdGltZSwgdGhlIHBvZCB3aWxsIG5vdCBiZSBzY2hlZHVsZWQgb250byB0aGUgbm9kZS4gSWYgdGhlIGFudGktYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldCBhdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhIHBvZCBsYWJlbCB1cGRhdGUpLCB0aGUgc3lzdGVtIG1heSBvciBtYXkgbm90IHRyeSB0byBldmVudHVhbGx5IGV2aWN0IHRoZSBwb2QgZnJvbSBpdHMgbm9kZS4gV2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgZWxlbWVudHMsIHRoZSBsaXN0cyBvZiBub2RlcyBjb3JyZXNwb25kaW5nIHRvIGVhY2ggcG9kQWZmaW5pdHlUZXJtIGFyZSBpbnRlcnNlY3RlZCwgaS5lLiBhbGwgdGVybXMgbXVzdCBiZSBzYXRpc2ZpZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJEZWZpbmVzIGEgc2V0IG9mIHBvZHMgKG5hbWVseSB0aG9zZSBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciByZWxhdGl2ZSB0byB0aGUgZ2l2ZW4gbmFtZXNwYWNlKHMpKSB0aGF0IHRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGgsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgXHUwMDNjdG9wb2xvZ3lLZXlcdTAwM2UgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGEgcG9kIG9mIHRoZSBzZXQgb2YgcG9kcyBpcyBydW5uaW5nIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sImFubm90YXRpb25zIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJBbm5vdGF0aW9ucyBvdmVycmlkZXMgbGFiZWxzIGZvciB0aGUgZGVwbG95bWVudCBhbmQgaXRzIHRlbXBsYXRlLiIsInR5cGUiOiJvYmplY3QifSwiZW52Ijp7ImRlc2NyaXB0aW9uIjoiRW52IG92ZXJyaWRlcyBlbnYgdmFycyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgY29udGFpbmVyIG5hbWUiLCJ0eXBlIjoic3RyaW5nIn0sImVudlZhcnMiOnsiZGVzY3JpcHRpb24iOiJUaGUgZGVzaXJlZCBFbnZWYXJSZXF1aXJlbWVudHMiLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkVudlZhciByZXByZXNlbnRzIGFuIGVudmlyb25tZW50IHZhcmlhYmxlIHByZXNlbnQgaW4gYSBDb250YWluZXIuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUuIE11c3QgYmUgYSBDX0lERU5USUZJRVIuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6IlZhcmlhYmxlIHJlZmVyZW5jZXMgJChWQVJfTkFNRSkgYXJlIGV4cGFuZGVkIHVzaW5nIHRoZSBwcmV2aW91c2x5IGRlZmluZWQgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIHRoZSBjb250YWluZXIgYW5kIGFueSBzZXJ2aWNlIGVudmlyb25tZW50IHZhcmlhYmxlcy4gSWYgYSB2YXJpYWJsZSBjYW5ub3QgYmUgcmVzb2x2ZWQsIHRoZSByZWZlcmVuY2UgaW4gdGhlIGlucHV0IHN0cmluZyB3aWxsIGJlIHVuY2hhbmdlZC4gRG91YmxlICQkIGFyZSByZWR1Y2VkIHRvIGEgc2luZ2xlICQsIHdoaWNoIGFsbG93cyBmb3IgZXNjYXBpbmcgdGhlICQoVkFSX05BTUUpIHN5bnRheDogaS5lLiBcIiQkKFZBUl9OQU1FKVwiIHdpbGwgcHJvZHVjZSB0aGUgc3RyaW5nIGxpdGVyYWwgXCIkKFZBUl9OQU1FKVwiLiBFc2NhcGVkIHJlZmVyZW5jZXMgd2lsbCBuZXZlciBiZSBleHBhbmRlZCwgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIHRoZSB2YXJpYWJsZSBleGlzdHMgb3Igbm90LiBEZWZhdWx0cyB0byBcIlwiLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVGcm9tIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGZvciB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUncyB2YWx1ZS4gQ2Fubm90IGJlIHVzZWQgaWYgdmFsdWUgaXMgbm90IGVtcHR5LiIsInByb3BlcnRpZXMiOnsiY29uZmlnTWFwS2V5UmVmIjp7ImRlc2NyaXB0aW9uIjoiU2VsZWN0cyBhIGtleSBvZiBhIENvbmZpZ01hcC4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBrZXkgdG8gc2VsZWN0LiIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIHJlZmVyZW50LiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L3dvcmtpbmctd2l0aC1vYmplY3RzL25hbWVzLyNuYW1lcyBUT0RPOiBBZGQgb3RoZXIgdXNlZnVsIGZpZWxkcy4gYXBpVmVyc2lvbiwga2luZCwgdWlkPyIsInR5cGUiOiJzdHJpbmcifSwib3B0aW9uYWwiOnsiZGVzY3JpcHRpb24iOiJTcGVjaWZ5IHdoZXRoZXIgdGhlIENvbmZpZ01hcCBvciBpdHMga2V5IG11c3QgYmUgZGVmaW5lZCIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJrZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJmaWVsZFJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBmaWVsZCBvZiB0aGUgcG9kOiBzdXBwb3J0cyBtZXRhZGF0YS5uYW1lLCBtZXRhZGF0YS5uYW1lc3BhY2UsIGBtZXRhZGF0YS5sYWJlbHNbJ1x1MDAzY0tFWVx1MDAzZSddYCwgYG1ldGFkYXRhLmFubm90YXRpb25zWydcdTAwM2NLRVlcdTAwM2UnXWAsIHNwZWMubm9kZU5hbWUsIHNwZWMuc2VydmljZUFjY291bnROYW1lLCBzdGF0dXMuaG9zdElQLCBzdGF0dXMucG9kSVAsIHN0YXR1cy5wb2RJUHMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiVmVyc2lvbiBvZiB0aGUgc2NoZW1hIHRoZSBGaWVsZFBhdGggaXMgd3JpdHRlbiBpbiB0ZXJtcyBvZiwgZGVmYXVsdHMgdG8gXCJ2MVwiLiIsInR5cGUiOiJzdHJpbmcifSwiZmllbGRQYXRoIjp7ImRlc2NyaXB0aW9uIjoiUGF0aCBvZiB0aGUgZmllbGQgdG8gc2VsZWN0IGluIHRoZSBzcGVjaWZpZWQgQVBJIHZlcnNpb24uIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiZmllbGRQYXRoIl0sInR5cGUiOiJvYmplY3QifSwicmVzb3VyY2VGaWVsZFJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSByZXNvdXJjZSBvZiB0aGUgY29udGFpbmVyOiBvbmx5IHJlc291cmNlcyBsaW1pdHMgYW5kIHJlcXVlc3RzIChsaW1pdHMuY3B1LCBsaW1pdHMubWVtb3J5LCBsaW1pdHMuZXBoZW1lcmFsLXN0b3JhZ2UsIHJlcXVlc3RzLmNwdSwgcmVxdWVzdHMubWVtb3J5IGFuZCByZXF1ZXN0cy5lcGhlbWVyYWwtc3RvcmFnZSkgYXJlIGN1cnJlbnRseSBzdXBwb3J0ZWQuIiwicHJvcGVydGllcyI6eyJjb250YWluZXJOYW1lIjp7ImRlc2NyaXB0aW9uIjoiQ29udGFpbmVyIG5hbWU6IHJlcXVpcmVkIGZvciB2b2x1bWVzLCBvcHRpb25hbCBmb3IgZW52IHZhcnMiLCJ0eXBlIjoic3RyaW5nIn0sImRpdmlzb3IiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJkZXNjcmlwdGlvbiI6IlNwZWNpZmllcyB0aGUgb3V0cHV0IGZvcm1hdCBvZiB0aGUgZXhwb3NlZCByZXNvdXJjZXMsIGRlZmF1bHRzIHRvIFwiMVwiIiwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJyZXNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkOiByZXNvdXJjZSB0byBzZWxlY3QiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJyZXNvdXJjZSJdLCJ0eXBlIjoib2JqZWN0In0sInNlY3JldEtleVJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBrZXkgb2YgYSBzZWNyZXQgaW4gdGhlIHBvZCdzIG5hbWVzcGFjZSIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGtleSBvZiB0aGUgc2VjcmV0IHRvIHNlbGVjdCBmcm9tLiAgTXVzdCBiZSBhIHZhbGlkIHNlY3JldCBrZXkuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgcmVmZXJlbnQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbmFtZXMvI25hbWVzIFRPRE86IEFkZCBvdGhlciB1c2VmdWwgZmllbGRzLiBhcGlWZXJzaW9uLCBraW5kLCB1aWQ/IiwidHlwZSI6InN0cmluZyJ9LCJvcHRpb25hbCI6eyJkZXNjcmlwdGlvbiI6IlNwZWNpZnkgd2hldGhlciB0aGUgU2VjcmV0IG9yIGl0cyBrZXkgbXVzdCBiZSBkZWZpbmVkIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImtleSJdLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJjb250YWluZXIiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiaG9zdE5ldHdvcmsiOnsiZGVzY3JpcHRpb24iOiJVc2UgdGhlIGhvc3QncyBuZXR3b3JrIG5hbWVzcGFjZSBpZiB0cnVlLiBNYWtlIHN1cmUgdG8gdW5kZXJzdGFuZCB0aGUgc2VjdXJpdHkgaW1wbGljYXRpb25zIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBpdC4gV2hlbiBob3N0TmV0d29yayBpcyBlbmFibGVkLCB0aGlzIHdpbGwgc2V0IGRuc1BvbGljeSB0byBDbHVzdGVyRmlyc3RXaXRoSG9zdE5ldCBhdXRvbWF0aWNhbGx5LiIsInR5cGUiOiJib29sZWFuIn0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTGFiZWxzIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBkZXBsb3ltZW50IGFuZCBpdHMgdGVtcGxhdGUuIiwidHlwZSI6Im9iamVjdCJ9LCJsaXZlbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IkxpdmVuZXNzUHJvYmVzIG92ZXJyaWRlcyBsaXZlbmVzcyBwcm9iZXMgZm9yIHRoZSBjb250YWluZXJzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiUHJvYmVzUmVxdWlyZW1lbnRzT3ZlcnJpZGUgZW5hYmxlcyB0aGUgdXNlciB0byBvdmVycmlkZSBhbnkgY29udGFpbmVyJ3MgZW52IHZhcnMuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgY29udGFpbmVyIG5hbWUiLCJ0eXBlIjoic3RyaW5nIn0sImZhaWx1cmVUaHJlc2hvbGQiOnsiZGVzY3JpcHRpb24iOiJNaW5pbXVtIGNvbnNlY3V0aXZlIGZhaWx1cmVzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBmYWlsZWQgYWZ0ZXIgaGF2aW5nIHN1Y2NlZWRlZC4gRGVmYXVsdHMgdG8gMy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHRoZSBjb250YWluZXIgaGFzIHN0YXJ0ZWQgYmVmb3JlIGxpdmVuZXNzIHByb2JlcyBhcmUgaW5pdGlhdGVkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwicGVyaW9kU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IkhvdyBvZnRlbiAoaW4gc2Vjb25kcykgdG8gcGVyZm9ybSB0aGUgcHJvYmUuIERlZmF1bHQgdG8gMTAgc2Vjb25kcy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwic3VjY2Vzc1RocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgc3VjY2Vzc2VzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBzdWNjZXNzZnVsIGFmdGVyIGhhdmluZyBmYWlsZWQuIERlZmF1bHRzIHRvIDEuIE11c3QgYmUgMSBmb3IgbGl2ZW5lc3MgYW5kIHN0YXJ0dXAuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiT3B0aW9uYWwgZHVyYXRpb24gaW4gc2Vjb25kcyB0aGUgcG9kIG5lZWRzIHRvIHRlcm1pbmF0ZSBncmFjZWZ1bGx5IHVwb24gcHJvYmUgZmFpbHVyZS4gVGhlIGdyYWNlIHBlcmlvZCBpcyB0aGUgZHVyYXRpb24gaW4gc2Vjb25kcyBhZnRlciB0aGUgcHJvY2Vzc2VzIHJ1bm5pbmcgaW4gdGhlIHBvZCBhcmUgc2VudCBhIHRlcm1pbmF0aW9uIHNpZ25hbCBhbmQgdGhlIHRpbWUgd2hlbiB0aGUgcHJvY2Vzc2VzIGFyZSBmb3JjaWJseSBoYWx0ZWQgd2l0aCBhIGtpbGwgc2lnbmFsLiBTZXQgdGhpcyB2YWx1ZSBsb25nZXIgdGhhbiB0aGUgZXhwZWN0ZWQgY2xlYW51cCB0aW1lIGZvciB5b3VyIHByb2Nlc3MuIElmIHRoaXMgdmFsdWUgaXMgbmlsLCB0aGUgcG9kJ3MgdGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgd2lsbCBiZSB1c2VkLiBPdGhlcndpc2UsIHRoaXMgdmFsdWUgb3ZlcnJpZGVzIHRoZSB2YWx1ZSBwcm92aWRlZCBieSB0aGUgcG9kIHNwZWMuIFZhbHVlIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXIuIFRoZSB2YWx1ZSB6ZXJvIGluZGljYXRlcyBzdG9wIGltbWVkaWF0ZWx5IHZpYSB0aGUga2lsbCBzaWduYWwgKG5vIG9wcG9ydHVuaXR5IHRvIHNodXQgZG93bikuIFRoaXMgaXMgYSBiZXRhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyBQcm9iZVRlcm1pbmF0aW9uR3JhY2VQZXJpb2QgZmVhdHVyZSBnYXRlLiBNaW5pbXVtIHZhbHVlIGlzIDEuIHNwZWMudGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgaXMgdXNlZCBpZiB1bnNldC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInRpbWVvdXRTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgd2hpY2ggdGhlIHByb2JlIHRpbWVzIG91dC4gRGVmYXVsdHMgdG8gMSBzZWNvbmQuIE1pbmltdW0gdmFsdWUgaXMgMS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvcG9kcy9wb2QtbGlmZWN5Y2xlI2NvbnRhaW5lci1wcm9iZXMiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJjb250YWluZXIiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBkZXBsb3ltZW50IiwidHlwZSI6InN0cmluZyJ9LCJub2RlU2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik5vZGVTZWxlY3RvciBvdmVycmlkZXMgbm9kZVNlbGVjdG9yIGZvciB0aGUgZGVwbG95bWVudC4iLCJ0eXBlIjoib2JqZWN0In0sInJlYWRpbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IlJlYWRpbmVzc1Byb2JlcyBvdmVycmlkZXMgcmVhZGluZXNzIHByb2JlcyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJQcm9iZXNSZXF1aXJlbWVudHNPdmVycmlkZSBlbmFibGVzIHRoZSB1c2VyIHRvIG92ZXJyaWRlIGFueSBjb250YWluZXIncyBlbnYgdmFycy4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZmFpbHVyZVRocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkLiBEZWZhdWx0cyB0byAzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZS4gRGVmYXVsdCB0byAxMCBzZWNvbmRzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJzdWNjZXNzVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZC4gRGVmYXVsdHMgdG8gMS4gTXVzdCBiZSAxIGZvciBsaXZlbmVzcyBhbmQgc3RhcnR1cC4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBkdXJhdGlvbiBpbiBzZWNvbmRzIHRoZSBwb2QgbmVlZHMgdG8gdGVybWluYXRlIGdyYWNlZnVsbHkgdXBvbiBwcm9iZSBmYWlsdXJlLiBUaGUgZ3JhY2UgcGVyaW9kIGlzIHRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHRoZSBwcm9jZXNzZXMgcnVubmluZyBpbiB0aGUgcG9kIGFyZSBzZW50IGEgdGVybWluYXRpb24gc2lnbmFsIGFuZCB0aGUgdGltZSB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIGZvcmNpYmx5IGhhbHRlZCB3aXRoIGEga2lsbCBzaWduYWwuIFNldCB0aGlzIHZhbHVlIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBjbGVhbnVwIHRpbWUgZm9yIHlvdXIgcHJvY2Vzcy4gSWYgdGhpcyB2YWx1ZSBpcyBuaWwsIHRoZSBwb2QncyB0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgdGhpcyB2YWx1ZSBvdmVycmlkZXMgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBwb2Qgc3BlYy4gVmFsdWUgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlci4gVGhlIHZhbHVlIHplcm8gaW5kaWNhdGVzIHN0b3AgaW1tZWRpYXRlbHkgdmlhIHRoZSBraWxsIHNpZ25hbCAobm8gb3Bwb3J0dW5pdHkgdG8gc2h1dCBkb3duKS4gVGhpcyBpcyBhIGJldGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIFByb2JlVGVybWluYXRpb25HcmFjZVBlcmlvZCBmZWF0dXJlIGdhdGUuIE1pbmltdW0gdmFsdWUgaXMgMS4gc3BlYy50ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyBpcyB1c2VkIGlmIHVuc2V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidGltZW91dFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0LiBEZWZhdWx0cyB0byAxIHNlY29uZC4gTWluaW11bSB2YWx1ZSBpcyAxLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIGNvbnRhaW5lcidzIHJlc291cmNlcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBwb2QgdGhpcyBSZXNvdXJjZSBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHJlcXVlc3RzIGFuZCBsaW1pdHMgZm9yIGEgY2VydGFpbiBjb250YWluZXIgYmFzZWQgb24gdGhlIG5hbWUuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIiwidHlwZSI6InN0cmluZyJ9LCJsaW1pdHMiOnsicHJvcGVydGllcyI6eyJjcHUiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9LCJtZW1vcnkiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJwcm9wZXJ0aWVzIjp7ImNwdSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn0sIm1lbW9yeSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ0b2xlcmF0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHRvbGVyYXRpb25zLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFRvbGVyYXRpb24gaXMgYXR0YWNoZWQgdG8gdG9sZXJhdGVzIGFueSB0YWludCB0aGF0IG1hdGNoZXMgdGhlIHRyaXBsZSBcdTAwM2NrZXksdmFsdWUsZWZmZWN0XHUwMDNlIHVzaW5nIHRoZSBtYXRjaGluZyBvcGVyYXRvciBcdTAwM2NvcGVyYXRvclx1MDAzZS4iLCJwcm9wZXJ0aWVzIjp7ImVmZmVjdCI6eyJkZXNjcmlwdGlvbiI6IkVmZmVjdCBpbmRpY2F0ZXMgdGhlIHRhaW50IGVmZmVjdCB0byBtYXRjaC4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGVmZmVjdHMuIFdoZW4gc3BlY2lmaWVkLCBhbGxvd2VkIHZhbHVlcyBhcmUgTm9TY2hlZHVsZSwgUHJlZmVyTm9TY2hlZHVsZSBhbmQgTm9FeGVjdXRlLiIsInR5cGUiOiJzdHJpbmcifSwia2V5Ijp7ImRlc2NyaXB0aW9uIjoiS2V5IGlzIHRoZSB0YWludCBrZXkgdGhhdCB0aGUgdG9sZXJhdGlvbiBhcHBsaWVzIHRvLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQga2V5cy4gSWYgdGhlIGtleSBpcyBlbXB0eSwgb3BlcmF0b3IgbXVzdCBiZSBFeGlzdHM7IHRoaXMgY29tYmluYXRpb24gbWVhbnMgdG8gbWF0Y2ggYWxsIHZhbHVlcyBhbmQgYWxsIGtleXMuIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gdGhlIHZhbHVlLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEV4aXN0cyBhbmQgRXF1YWwuIERlZmF1bHRzIHRvIEVxdWFsLiBFeGlzdHMgaXMgZXF1aXZhbGVudCB0byB3aWxkY2FyZCBmb3IgdmFsdWUsIHNvIHRoYXQgYSBwb2QgY2FuIHRvbGVyYXRlIGFsbCB0YWludHMgb2YgYSBwYXJ0aWN1bGFyIGNhdGVnb3J5LiIsInR5cGUiOiJzdHJpbmcifSwidG9sZXJhdGlvblNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJUb2xlcmF0aW9uU2Vjb25kcyByZXByZXNlbnRzIHRoZSBwZXJpb2Qgb2YgdGltZSB0aGUgdG9sZXJhdGlvbiAod2hpY2ggbXVzdCBiZSBvZiBlZmZlY3QgTm9FeGVjdXRlLCBvdGhlcndpc2UgdGhpcyBmaWVsZCBpcyBpZ25vcmVkKSB0b2xlcmF0ZXMgdGhlIHRhaW50LiBCeSBkZWZhdWx0LCBpdCBpcyBub3Qgc2V0LCB3aGljaCBtZWFucyB0b2xlcmF0ZSB0aGUgdGFpbnQgZm9yZXZlciAoZG8gbm90IGV2aWN0KS4gWmVybyBhbmQgbmVnYXRpdmUgdmFsdWVzIHdpbGwgYmUgdHJlYXRlZCBhcyAwIChldmljdCBpbW1lZGlhdGVseSkgYnkgdGhlIHN5c3RlbS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHRhaW50IHZhbHVlIHRoZSB0b2xlcmF0aW9uIG1hdGNoZXMgdG8uIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMsIHRoZSB2YWx1ZSBzaG91bGQgYmUgZW1wdHksIG90aGVyd2lzZSBqdXN0IGEgcmVndWxhciBzdHJpbmcuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lTcHJlYWRDb25zdHJhaW50cyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHRvcG9sb2d5IHNwcmVhZCBjb25zdHJhaW50cy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRvcG9sb2d5U3ByZWFkQ29uc3RyYWludCBzcGVjaWZpZXMgaG93IHRvIHNwcmVhZCBtYXRjaGluZyBwb2RzIGFtb25nIHRoZSBnaXZlbiB0b3BvbG9neS4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJMYWJlbFNlbGVjdG9yIGlzIHVzZWQgdG8gZmluZCBtYXRjaGluZyBwb2RzLiBQb2RzIHRoYXQgbWF0Y2ggdGhpcyBsYWJlbCBzZWxlY3RvciBhcmUgY291bnRlZCB0byBkZXRlcm1pbmUgdGhlIG51bWJlciBvZiBwb2RzIGluIHRoZWlyIGNvcnJlc3BvbmRpbmcgdG9wb2xvZ3kgZG9tYWluLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibWF4U2tldyI6eyJkZXNjcmlwdGlvbiI6Ik1heFNrZXcgZGVzY3JpYmVzIHRoZSBkZWdyZWUgdG8gd2hpY2ggcG9kcyBtYXkgYmUgdW5ldmVubHkgZGlzdHJpYnV0ZWQuIEl0J3MgdGhlIG1heGltdW0gcGVybWl0dGVkIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgbnVtYmVyIG9mIG1hdGNoaW5nIHBvZHMgaW4gYW55IHR3byB0b3BvbG9neSBkb21haW5zIG9mIGEgZ2l2ZW4gdG9wb2xvZ3kgdHlwZS4gRm9yIGV4YW1wbGUsIGluIGEgMy16b25lIGNsdXN0ZXIsIE1heFNrZXcgaXMgc2V0IHRvIDEsIGFuZCBwb2RzIHdpdGggdGhlIHNhbWUgbGFiZWxTZWxlY3RvciBzcHJlYWQgYXMgMS8xLzA6IHwgem9uZTEgfCB6b25lMiB8IHpvbmUzIHwgfCAgIFAgICB8ICAgUCAgIHwgICAgICAgfCAtIGlmIE1heFNrZXcgaXMgMSwgaW5jb21pbmcgcG9kIGNhbiBvbmx5IGJlIHNjaGVkdWxlZCB0byB6b25lMyB0byBiZWNvbWUgMS8xLzE7IHNjaGVkdWxpbmcgaXQgb250byB6b25lMSh6b25lMikgd291bGQgbWFrZSB0aGUgQWN0dWFsU2tldygyLTApIG9uIHpvbmUxKHpvbmUyKSB2aW9sYXRlIE1heFNrZXcoMSkuIC0gaWYgTWF4U2tldyBpcyAyLCBpbmNvbWluZyBwb2QgY2FuIGJlIHNjaGVkdWxlZCBvbnRvIGFueSB6b25lLiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIERlZmF1bHQgdmFsdWUgaXMgMSBhbmQgMCBpcyBub3QgYWxsb3dlZC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVG9wb2xvZ3lLZXkgaXMgdGhlIGtleSBvZiBub2RlIGxhYmVscy4gTm9kZXMgdGhhdCBoYXZlIGEgbGFiZWwgd2l0aCB0aGlzIGtleSBhbmQgaWRlbnRpY2FsIHZhbHVlcyBhcmUgY29uc2lkZXJlZCB0byBiZSBpbiB0aGUgc2FtZSB0b3BvbG9neS4gV2UgY29uc2lkZXIgZWFjaCBcdTAwM2NrZXksIHZhbHVlXHUwMDNlIGFzIGEgXCJidWNrZXRcIiwgYW5kIHRyeSB0byBwdXQgYmFsYW5jZWQgbnVtYmVyIG9mIHBvZHMgaW50byBlYWNoIGJ1Y2tldC4gSXQncyBhIHJlcXVpcmVkIGZpZWxkLiIsInR5cGUiOiJzdHJpbmcifSwid2hlblVuc2F0aXNmaWFibGUiOnsiZGVzY3JpcHRpb24iOiJXaGVuVW5zYXRpc2ZpYWJsZSBpbmRpY2F0ZXMgaG93IHRvIGRlYWwgd2l0aCBhIHBvZCBpZiBpdCBkb2Vzbid0IHNhdGlzZnkgdGhlIHNwcmVhZCBjb25zdHJhaW50LiAtIERvTm90U2NoZWR1bGUgKGRlZmF1bHQpIHRlbGxzIHRoZSBzY2hlZHVsZXIgbm90IHRvIHNjaGVkdWxlIGl0IC0gU2NoZWR1bGVBbnl3YXkgdGVsbHMgdGhlIHNjaGVkdWxlciB0byBzdGlsbCBzY2hlZHVsZSBpdCBJdCdzIGNvbnNpZGVyZWQgYXMgXCJVbnNhdGlzZmlhYmxlXCIgaWYgYW5kIG9ubHkgaWYgcGxhY2luZyBpbmNvbWluZyBwb2Qgb24gYW55IHRvcG9sb2d5IHZpb2xhdGVzIFwiTWF4U2tld1wiLiBGb3IgZXhhbXBsZSwgaW4gYSAzLXpvbmUgY2x1c3RlciwgTWF4U2tldyBpcyBzZXQgdG8gMSwgYW5kIHBvZHMgd2l0aCB0aGUgc2FtZSBsYWJlbFNlbGVjdG9yIHNwcmVhZCBhcyAzLzEvMTogfCB6b25lMSB8IHpvbmUyIHwgem9uZTMgfCB8IFAgUCBQIHwgICBQICAgfCAgIFAgICB8IElmIFdoZW5VbnNhdGlzZmlhYmxlIGlzIHNldCB0byBEb05vdFNjaGVkdWxlLCBpbmNvbWluZyBwb2QgY2FuIG9ubHkgYmUgc2NoZWR1bGVkIHRvIHpvbmUyKHpvbmUzKSB0byBiZWNvbWUgMy8yLzEoMy8xLzIpIGFzIEFjdHVhbFNrZXcoMi0xKSBvbiB6b25lMih6b25lMykgc2F0aXNmaWVzIE1heFNrZXcoMSkuIEluIG90aGVyIHdvcmRzLCB0aGUgY2x1c3RlciBjYW4gc3RpbGwgYmUgaW1iYWxhbmNlZCwgYnV0IHNjaGVkdWxlciB3b24ndCBtYWtlIGl0ICptb3JlKiBpbWJhbGFuY2VkLiBJdCdzIGEgcmVxdWlyZWQgZmllbGQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibWF4U2tldyIsInRvcG9sb2d5S2V5Iiwid2hlblVuc2F0aXNmaWFibGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwidmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlZlcnNpb24gdGhlIGNsdXN0ZXIgc2hvdWxkIGJlIG9uLiIsInR5cGUiOiJzdHJpbmcifSwidm9sdW1lTW91bnRzIjp7ImRlc2NyaXB0aW9uIjoiVm9sdW1lTW91bnRzIGFsbG93cyBjb25maWd1cmF0aW9uIG9mIGFkZGl0aW9uYWwgVm9sdW1lTW91bnRzIG9uIHRoZSBvdXRwdXQgU3RhdGVmdWxTZXQgZGVmaW5pdGlvbi4gVm9sdW1lTW91bnRzIHNwZWNpZmllZCB3aWxsIGJlIGFwcGVuZGVkIHRvIG90aGVyIFZvbHVtZU1vdW50cyBpbiB0aGUgYWxlcnRtYW5hZ2VyIGNvbnRhaW5lciwgdGhhdCBhcmUgZ2VuZXJhdGVkIGFzIGEgcmVzdWx0IG9mIFN0b3JhZ2VTcGVjIG9iamVjdHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJWb2x1bWVNb3VudCBkZXNjcmliZXMgYSBtb3VudGluZyBvZiBhIFZvbHVtZSB3aXRoaW4gYSBjb250YWluZXIuIiwicHJvcGVydGllcyI6eyJtb3VudFBhdGgiOnsiZGVzY3JpcHRpb24iOiJQYXRoIHdpdGhpbiB0aGUgY29udGFpbmVyIGF0IHdoaWNoIHRoZSB2b2x1bWUgc2hvdWxkIGJlIG1vdW50ZWQuICBNdXN0IG5vdCBjb250YWluICc6Jy4iLCJ0eXBlIjoic3RyaW5nIn0sIm1vdW50UHJvcGFnYXRpb24iOnsiZGVzY3JpcHRpb24iOiJtb3VudFByb3BhZ2F0aW9uIGRldGVybWluZXMgaG93IG1vdW50cyBhcmUgcHJvcGFnYXRlZCBmcm9tIHRoZSBob3N0IHRvIGNvbnRhaW5lciBhbmQgdGhlIG90aGVyIHdheSBhcm91bmQuIFdoZW4gbm90IHNldCwgTW91bnRQcm9wYWdhdGlvbk5vbmUgaXMgdXNlZC4gVGhpcyBmaWVsZCBpcyBiZXRhIGluIDEuMTAuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhpcyBtdXN0IG1hdGNoIHRoZSBOYW1lIG9mIGEgVm9sdW1lLiIsInR5cGUiOiJzdHJpbmcifSwicmVhZE9ubHkiOnsiZGVzY3JpcHRpb24iOiJNb3VudGVkIHJlYWQtb25seSBpZiB0cnVlLCByZWFkLXdyaXRlIG90aGVyd2lzZSAoZmFsc2Ugb3IgdW5zcGVjaWZpZWQpLiBEZWZhdWx0cyB0byBmYWxzZS4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzdWJQYXRoIjp7ImRlc2NyaXB0aW9uIjoiUGF0aCB3aXRoaW4gdGhlIHZvbHVtZSBmcm9tIHdoaWNoIHRoZSBjb250YWluZXIncyB2b2x1bWUgc2hvdWxkIGJlIG1vdW50ZWQuIERlZmF1bHRzIHRvIFwiXCIgKHZvbHVtZSdzIHJvb3QpLiIsInR5cGUiOiJzdHJpbmcifSwic3ViUGF0aEV4cHIiOnsiZGVzY3JpcHRpb24iOiJFeHBhbmRlZCBwYXRoIHdpdGhpbiB0aGUgdm9sdW1lIGZyb20gd2hpY2ggdGhlIGNvbnRhaW5lcidzIHZvbHVtZSBzaG91bGQgYmUgbW91bnRlZC4gQmVoYXZlcyBzaW1pbGFybHkgdG8gU3ViUGF0aCBidXQgZW52aXJvbm1lbnQgdmFyaWFibGUgcmVmZXJlbmNlcyAkKFZBUl9OQU1FKSBhcmUgZXhwYW5kZWQgdXNpbmcgdGhlIGNvbnRhaW5lcidzIGVudmlyb25tZW50LiBEZWZhdWx0cyB0byBcIlwiICh2b2x1bWUncyByb290KS4gU3ViUGF0aEV4cHIgYW5kIFN1YlBhdGggYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJtb3VudFBhdGgiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1wcmVzZXJ2ZS11bmtub3duLWZpZWxkcyI6dHJ1ZX0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IlN0YXR1cyBkZWZpbmVzIHRoZSBvYnNlcnZlZCBzdGF0ZSBvZiBLbmF0aXZlU2VydmluZyIsInByb3BlcnRpZXMiOnsiY29uZGl0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYXRlc3QgYXZhaWxhYmxlIG9ic2VydmF0aW9ucyBvZiBhIHJlc291cmNlJ3MgY3VycmVudCBzdGF0ZS4iLCJpdGVtcyI6eyJwcm9wZXJ0aWVzIjp7Imxhc3RUcmFuc2l0aW9uVGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RUcmFuc2l0aW9uVGltZSBpcyB0aGUgbGFzdCB0aW1lIHRoZSBjb25kaXRpb24gdHJhbnNpdGlvbmVkIGZyb20gb25lIHN0YXR1cyB0byBhbm90aGVyLiBXZSB1c2UgVm9sYXRpbGVUaW1lIGluIHBsYWNlIG9mIG1ldGF2MS5UaW1lIHRvIGV4Y2x1ZGUgdGhpcyBmcm9tIGNyZWF0aW5nIGVxdWFsaXR5LlNlbWFudGljIGRpZmZlcmVuY2VzIChhbGwgb3RoZXIgdGhpbmdzIGhlbGQgY29uc3RhbnQpLiIsInR5cGUiOiJzdHJpbmcifSwibWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkEgaHVtYW4gcmVhZGFibGUgbWVzc2FnZSBpbmRpY2F0aW5nIGRldGFpbHMgYWJvdXQgdGhlIHRyYW5zaXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJyZWFzb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgcmVhc29uIGZvciB0aGUgY29uZGl0aW9uJ3MgbGFzdCB0cmFuc2l0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwic2V2ZXJpdHkiOnsiZGVzY3JpcHRpb24iOiJTZXZlcml0eSB3aXRoIHdoaWNoIHRvIHRyZWF0IGZhaWx1cmVzIG9mIHRoaXMgdHlwZSBvZiBjb25kaXRpb24uIFdoZW4gdGhpcyBpcyBub3Qgc3BlY2lmaWVkLCBpdCBkZWZhdWx0cyB0byBFcnJvci4iLCJ0eXBlIjoic3RyaW5nIn0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IlN0YXR1cyBvZiB0aGUgY29uZGl0aW9uLCBvbmUgb2YgVHJ1ZSwgRmFsc2UsIFVua25vd24uIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiVHlwZSBvZiBjb25kaXRpb24uIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSIsInN0YXR1cyJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYW5pZmVzdHMiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGlzdCBvZiBzZXJ2aW5nIG1hbmlmZXN0cywgd2hpY2ggaGF2ZSBiZWVuIGluc3RhbGxlZCBieSB0aGUgb3BlcmF0b3IiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJvYnNlcnZlZEdlbmVyYXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgZ2VuZXJhdGlvbiBsYXN0IHByb2Nlc3NlZCBieSB0aGUgY29udHJvbGxlciIsInR5cGUiOiJpbnRlZ2VyIn0sInZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgdmVyc2lvbiBvZiB0aGUgaW5zdGFsbGVkIHJlbGVhc2UiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsibmFtZSI6ImtuYXRpdmVrYWZrYXMub3BlcmF0b3Iuc2VydmVybGVzcy5vcGVuc2hpZnQuaW8ifSwic3BlYyI6eyJncm91cCI6Im9wZXJhdG9yLnNlcnZlcmxlc3Mub3BlbnNoaWZ0LmlvIiwibmFtZXMiOnsia2luZCI6IktuYXRpdmVLYWZrYSIsImxpc3RLaW5kIjoiS25hdGl2ZUthZmthTGlzdCIsInBsdXJhbCI6ImtuYXRpdmVrYWZrYXMiLCJzaW5ndWxhciI6ImtuYXRpdmVrYWZrYSJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3siYWRkaXRpb25hbFByaW50ZXJDb2x1bW5zIjpbeyJqc29uUGF0aCI6Ii5zdGF0dXMudmVyc2lvbiIsIm5hbWUiOiJWZXJzaW9uIiwidHlwZSI6InN0cmluZyJ9LHsianNvblBhdGgiOiIuc3RhdHVzLmNvbmRpdGlvbnNbPyhALnR5cGU9PVwiUmVhZHlcIildLnN0YXR1cyIsIm5hbWUiOiJSZWFkeSIsInR5cGUiOiJzdHJpbmcifSx7Impzb25QYXRoIjoiLnN0YXR1cy5jb25kaXRpb25zWz8oQC50eXBlPT0nUmVhZHknKV0ucmVhc29uIiwibmFtZSI6IlJlYXNvbiIsInR5cGUiOiJzdHJpbmcifV0sIm5hbWUiOiJ2MWFscGhhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJLbmF0aXZlS2Fma2EgaXMgdGhlIFNjaGVtYSBmb3IgdGhlIGtuYXRpdmVrYWZrYXMgQVBJIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IktuYXRpdmVLYWZrYVNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiB0aGUgS25hdGl2ZUthZmthIChmcm9tIHRoZSBjbGllbnQpLiIsInByb3BlcnRpZXMiOnsiYnJva2VyIjp7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIGNvbmZpZ3VyYXRpb24gZm9yIEthZmthQnJva2VyIGluc3RhbGxhdGlvbiIsInByb3BlcnRpZXMiOnsiZGVmYXVsdENvbmZpZyI6eyJkZXNjcmlwdGlvbiI6IlRha2VzIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIEthZmthIGJhc2VkIGJyb2tlcnMiLCJwcm9wZXJ0aWVzIjp7ImF1dGhTZWNyZXROYW1lIjp7ImRlc2NyaXB0aW9uIjoiQXV0aFNlY3JldE5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIHNlY3JldCB0aGF0IGNvbnRhaW5zIEthZmthIGF1dGggY29uZmlndXJhdGlvbiBmb3IgdGhlIEJyb2tlci4iLCJ0eXBlIjoic3RyaW5nIn0sImJvb3RzdHJhcFNlcnZlcnMiOnsiZGVzY3JpcHRpb24iOiJCb290c3RyYXBTZXJ2ZXJzIGlzIGNvbW1hIHNlcGFyYXRlZCBzdHJpbmcgb2YgYm9vdHN0cmFwc2VydmVycyB0aGF0IHRoZSBLYWZrYUJyb2tlcnMgd2lsbCB1c2UiLCJ0eXBlIjoic3RyaW5nIn0sIm51bVBhcnRpdGlvbnMiOnsiZGVmYXVsdCI6MTAsImRlc2NyaXB0aW9uIjoiTnVtUGFydGl0aW9ucyBpcyB0aGUgbnVtYmVyIG9mIHBhcnRpdGlvbnMgb2YgYSBLYWZrYSB0b3BpYy4gQnkgZGVmYXVsdCwgaXQgaXMgc2V0IHRvIDEwLiIsInR5cGUiOiJpbnRlZ2VyIn0sInJlcGxpY2F0aW9uRmFjdG9yIjp7ImRlZmF1bHQiOjMsImRlc2NyaXB0aW9uIjoiUmVwbGljYXRpb25GYWN0b3IgaXMgdGhlIHJlcGxpY2F0aW9uIGZhY3RvciBvZiBhIEthZmthIHRvcGljLiBCeSBkZWZhdWx0LCBpdCBpcyBzZXQgdG8gMy4iLCJtYXhpbXVtIjozMjc2NywidHlwZSI6ImludGVnZXIifX0sInR5cGUiOiJvYmplY3QifSwiZW5hYmxlZCI6eyJkZXNjcmlwdGlvbiI6IkVuYWJsZWQgZGVmaW5lcyBpZiB0aGUgS2Fma2FCcm9rZXIgaW5zdGFsbGF0aW9uIGlzIGVuYWJsZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsiZW5hYmxlZCJdLCJ0eXBlIjoib2JqZWN0In0sImNoYW5uZWwiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3MgY29uZmlndXJhdGlvbiBmb3IgS2Fma2FDaGFubmVsIGluc3RhbGxhdGlvbiIsInByb3BlcnRpZXMiOnsiYXV0aFNlY3JldE5hbWUiOnsiZGVzY3JpcHRpb24iOiJBdXRoU2VjcmV0TmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgc2VjcmV0IHRoYXQgY29udGFpbnMgS2Fma2EgYXV0aCBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYXV0aFNlY3JldE5hbWVzcGFjZSI6eyJkZXNjcmlwdGlvbiI6IkF1dGhTZWNyZXROYW1lc3BhY2UgaXMgdGhlIG5hbWVzcGFjZSBvZiB0aGUgc2VjcmV0IHRoYXQgY29udGFpbnMgS2Fma2EgYXV0aCBjb25maWd1cmF0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwiYm9vdHN0cmFwU2VydmVycyI6eyJkZXNjcmlwdGlvbiI6IkJvb3RzdHJhcFNlcnZlcnMgaXMgY29tbWEgc2VwYXJhdGVkIHN0cmluZyBvZiBib290c3RyYXBzZXJ2ZXJzIHRoYXQgdGhlIEthZmthQ2hhbm5lbHMgd2lsbCB1c2UiLCJ0eXBlIjoic3RyaW5nIn0sImVuYWJsZWQiOnsiZGVzY3JpcHRpb24iOiJFbmFibGVkIGRlZmluZXMgaWYgdGhlIEthZmthQ2hhbm5lbCBpbnN0YWxsYXRpb24gaXMgZW5hYmxlZCIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJlbmFibGVkIl0sInR5cGUiOiJvYmplY3QifSwiY29uZmlnIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6Im9iamVjdCJ9LCJkZXNjcmlwdGlvbiI6IkEgbWVhbnMgdG8gb3ZlcnJpZGUgdGhlIGNvcnJlc3BvbmRpbmcgZW50cmllcyBpbiB0aGUgdXBzdHJlYW0gY29uZmlnbWFwcyIsInR5cGUiOiJvYmplY3QifSwiaGlnaC1hdmFpbGFiaWxpdHkiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3Mgc3BlY2lmaWNhdGlvbiBvZiBIQSBjb250cm9sIHBsYW5lIiwicHJvcGVydGllcyI6eyJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjEsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sImxvZ2dpbmciOnsiZGVzY3JpcHRpb24iOiJTZXQgbG9nZ2luZyBjb25maWd1cmF0aW9uIG9mIHRoZSBkYXRhIHBsYW5lIChyZWNlaXZlcnMgYW5kIGRpc3BhdGNoZXJzKS4gSXQgaXMgbm90IHJlY29tbWVuZGVkIHRvIHVzZSBERUJVRyBvciBUUkFDRSBpbiBwcm9kdWN0aW9uIHNpbmNlIGl0J3MgdG9vIHZlcmJvc2UgYW5kIGRlZ3JhZGVzIHBlcmZvcm1hbmNlLiIsInByb3BlcnRpZXMiOnsibGV2ZWwiOnsiZGVmYXVsdCI6IklORk8iLCJkZXNjcmlwdGlvbiI6IkRlZmluZXMgdGhlIGxvZyBsZXZlbC4gQWxsb3dlZCB2YWx1ZXMgYXJlICdUUkFDRScsICdERUJVRycsICdJTkZPJywgJ1dBUk4nIGFuZCAnRVJST1InLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAnSU5GTycuIiwiZW51bSI6WyJUUkFDRSIsIkRFQlVHIiwiSU5GTyIsIldBUk4iLCJFUlJPUiJdLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInNpbmsiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3MgY29uZmlndXJhdGlvbiBmb3IgS2Fma2FTaW5rIGluc3RhbGxhdGlvbiIsInByb3BlcnRpZXMiOnsiZW5hYmxlZCI6eyJkZXNjcmlwdGlvbiI6IkVuYWJsZWQgZGVmaW5lcyBpZiB0aGUgS2Fma2FTaW5rIGluc3RhbGxhdGlvbiBpcyBlbmFibGVkIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImVuYWJsZWQiXSwidHlwZSI6Im9iamVjdCJ9LCJzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3MgY29uZmlndXJhdGlvbiBmb3IgS2Fma2FTb3VyY2UgaW5zdGFsbGF0aW9uIiwicHJvcGVydGllcyI6eyJlbmFibGVkIjp7ImRlc2NyaXB0aW9uIjoiRW5hYmxlZCBkZWZpbmVzIGlmIHRoZSBLYWZrYVNvdXJjZSBpbnN0YWxsYXRpb24gaXMgZW5hYmxlZCIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJlbmFibGVkIl0sInR5cGUiOiJvYmplY3QifSwid29ya2xvYWRzIjp7ImRlc2NyaXB0aW9uIjoiQSBtYXBwaW5nIG9mIGRlcGxveW1lbnQgb3Igc3RhdGVmdWxzZXQgbmFtZSB0byBvdmVycmlkZSIsIml0ZW1zIjp7InByb3BlcnRpZXMiOnsiYWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJJZiBzcGVjaWZpZWQsIHRoZSBwb2QncyBzY2hlZHVsaW5nIGNvbnN0cmFpbnRzLiIsInByb3BlcnRpZXMiOnsibm9kZUFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiRGVzY3JpYmVzIG5vZGUgYWZmaW5pdHkgc2NoZWR1bGluZyBydWxlcyBmb3IgdGhlIHBvZC4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcnJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHNjaGVkdWxlciB3aWxsIHByZWZlciB0byBzY2hlZHVsZSBwb2RzIHRvIG5vZGVzIHRoYXQgc2F0aXNmeSB0aGUgYWZmaW5pdHkgZXhwcmVzc2lvbnMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQsIGJ1dCBpdCBtYXkgY2hvb3NlIGEgbm9kZSB0aGF0IHZpb2xhdGVzIG9uZSBvciBtb3JlIG9mIHRoZSBleHByZXNzaW9ucy4gVGhlIG5vZGUgdGhhdCBpcyBtb3N0IHByZWZlcnJlZCBpcyB0aGUgb25lIHdpdGggdGhlIGdyZWF0ZXN0IHN1bSBvZiB3ZWlnaHRzLCBpLmUuIGZvciBlYWNoIG5vZGUgdGhhdCBtZWV0cyBhbGwgb2YgdGhlIHNjaGVkdWxpbmcgcmVxdWlyZW1lbnRzIChyZXNvdXJjZSByZXF1ZXN0LCByZXF1aXJlZER1cmluZ1NjaGVkdWxpbmcgYWZmaW5pdHkgZXhwcmVzc2lvbnMsIGV0Yy4pLCBjb21wdXRlIGEgc3VtIGJ5IGl0ZXJhdGluZyB0aHJvdWdoIHRoZSBlbGVtZW50cyBvZiB0aGlzIGZpZWxkIGFuZCBhZGRpbmcgXCJ3ZWlnaHRcIiB0byB0aGUgc3VtIGlmIHRoZSBub2RlIG1hdGNoZXMgdGhlIGNvcnJlc3BvbmRpbmcgbWF0Y2hFeHByZXNzaW9uczsgdGhlIG5vZGUocykgd2l0aCB0aGUgaGlnaGVzdCBzdW0gYXJlIHRoZSBtb3N0IHByZWZlcnJlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGVtcHR5IHByZWZlcnJlZCBzY2hlZHVsaW5nIHRlcm0gbWF0Y2hlcyBhbGwgb2JqZWN0cyB3aXRoIGltcGxpY2l0IHdlaWdodCAwIChpLmUuIGl0J3MgYSBuby1vcCkuIEEgbnVsbCBwcmVmZXJyZWQgc2NoZWR1bGluZyB0ZXJtIG1hdGNoZXMgbm8gb2JqZWN0cyAoaS5lLiBpcyBhbHNvIGEgbm8tb3ApLiIsInByb3BlcnRpZXMiOnsicHJlZmVyZW5jZSI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciB0ZXJtLCBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgd2VpZ2h0LiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgbGFiZWxzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaEZpZWxkcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgZmllbGRzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ3ZWlnaHQiOnsiZGVzY3JpcHRpb24iOiJXZWlnaHQgYXNzb2NpYXRlZCB3aXRoIG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIG5vZGVTZWxlY3RvclRlcm0sIGluIHRoZSByYW5nZSAxLTEwMC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJwcmVmZXJlbmNlIiwid2VpZ2h0Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGFyZSBub3QgbWV0IGF0IHNjaGVkdWxpbmcgdGltZSwgdGhlIHBvZCB3aWxsIG5vdCBiZSBzY2hlZHVsZWQgb250byB0aGUgbm9kZS4gSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBjZWFzZSB0byBiZSBtZXQgYXQgc29tZSBwb2ludCBkdXJpbmcgcG9kIGV4ZWN1dGlvbiAoZS5nLiBkdWUgdG8gYW4gdXBkYXRlKSwgdGhlIHN5c3RlbSBtYXkgb3IgbWF5IG5vdCB0cnkgdG8gZXZlbnR1YWxseSBldmljdCB0aGUgcG9kIGZyb20gaXRzIG5vZGUuIiwicHJvcGVydGllcyI6eyJub2RlU2VsZWN0b3JUZXJtcyI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkLiBBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciB0ZXJtcy4gVGhlIHRlcm1zIGFyZSBPUmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBudWxsIG9yIGVtcHR5IG5vZGUgc2VsZWN0b3IgdGVybSBtYXRjaGVzIG5vIG9iamVjdHMuIFRoZSByZXF1aXJlbWVudHMgb2YgdGhlbSBhcmUgQU5EZWQuIFRoZSBUb3BvbG9neVNlbGVjdG9yVGVybSB0eXBlIGltcGxlbWVudHMgYSBzdWJzZXQgb2YgdGhlIE5vZGVTZWxlY3RvclRlcm0uIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBsYWJlbHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoRmllbGRzIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBmaWVsZHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgR3Qgb3IgTHQsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsibm9kZVNlbGVjdG9yVGVybXMiXSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwb2RBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBwb2QgYWZmaW5pdHkgc2NoZWR1bGluZyBydWxlcyAoZS5nLiBjby1sb2NhdGUgdGhpcyBwb2QgaW4gdGhlIHNhbWUgbm9kZSwgem9uZSwgZXRjLiBhcyBzb21lIG90aGVyIHBvZChzKSkuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnkgdGhlIGFmZmluaXR5IGV4cHJlc3Npb25zIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkLCBidXQgaXQgbWF5IGNob29zZSBhIG5vZGUgdGhhdCB2aW9sYXRlcyBvbmUgb3IgbW9yZSBvZiB0aGUgZXhwcmVzc2lvbnMuIFRoZSBub2RlIHRoYXQgaXMgbW9zdCBwcmVmZXJyZWQgaXMgdGhlIG9uZSB3aXRoIHRoZSBncmVhdGVzdCBzdW0gb2Ygd2VpZ2h0cywgaS5lLiBmb3IgZWFjaCBub2RlIHRoYXQgbWVldHMgYWxsIG9mIHRoZSBzY2hlZHVsaW5nIHJlcXVpcmVtZW50cyAocmVzb3VyY2UgcmVxdWVzdCwgcmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nIGFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSwgY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nIFwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBoYXMgcG9kcyB3aGljaCBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybTsgdGhlIG5vZGUocykgd2l0aCB0aGUgaGlnaGVzdCBzdW0gYXJlIHRoZSBtb3N0IHByZWZlcnJlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSB3ZWlnaHRzIG9mIGFsbCBvZiB0aGUgbWF0Y2hlZCBXZWlnaHRlZFBvZEFmZmluaXR5VGVybSBmaWVsZHMgYXJlIGFkZGVkIHBlci1ub2RlIHRvIGZpbmQgdGhlIG1vc3QgcHJlZmVycmVkIG5vZGUocykiLCJwcm9wZXJ0aWVzIjp7InBvZEFmZmluaXR5VGVybSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkLiBBIHBvZCBhZmZpbml0eSB0ZXJtLCBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgd2VpZ2h0LiIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMsIGluIHRoaXMgY2FzZSBwb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibmFtZXNwYWNlcyI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZXMgc3BlY2lmaWVzIHdoaWNoIG5hbWVzcGFjZXMgdGhlIGxhYmVsU2VsZWN0b3IgYXBwbGllcyB0byAobWF0Y2hlcyBhZ2FpbnN0KTsgbnVsbCBvciBlbXB0eSBsaXN0IG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCB0aGUgcG9kcyBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciBpbiB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGUgc2VsZWN0ZWQgcG9kcyBpcyBydW5uaW5nLiBFbXB0eSB0b3BvbG9neUtleSBpcyBub3QgYWxsb3dlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0b3BvbG9neUtleSJdLCJ0eXBlIjoib2JqZWN0In0sIndlaWdodCI6eyJkZXNjcmlwdGlvbiI6IndlaWdodCBhc3NvY2lhdGVkIHdpdGggbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtLCBpbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicG9kQWZmaW5pdHlUZXJtIiwid2VpZ2h0Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGFyZSBub3QgbWV0IGF0IHNjaGVkdWxpbmcgdGltZSwgdGhlIHBvZCB3aWxsIG5vdCBiZSBzY2hlZHVsZWQgb250byB0aGUgbm9kZS4gSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBjZWFzZSB0byBiZSBtZXQgYXQgc29tZSBwb2ludCBkdXJpbmcgcG9kIGV4ZWN1dGlvbiAoZS5nLiBkdWUgdG8gYSBwb2QgbGFiZWwgdXBkYXRlKSwgdGhlIHN5c3RlbSBtYXkgb3IgbWF5IG5vdCB0cnkgdG8gZXZlbnR1YWxseSBldmljdCB0aGUgcG9kIGZyb20gaXRzIG5vZGUuIFdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIGVsZW1lbnRzLCB0aGUgbGlzdHMgb2Ygbm9kZXMgY29ycmVzcG9uZGluZyB0byBlYWNoIHBvZEFmZmluaXR5VGVybSBhcmUgaW50ZXJzZWN0ZWQsIGkuZS4gYWxsIHRlcm1zIG11c3QgYmUgc2F0aXNmaWVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRGVmaW5lcyBhIHNldCBvZiBwb2RzIChuYW1lbHkgdGhvc2UgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgcmVsYXRpdmUgdG8gdGhlIGdpdmVuIG5hbWVzcGFjZShzKSkgdGhhdCB0aGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IFx1MDAzY3RvcG9sb2d5S2V5XHUwMDNlIG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhIHBvZCBvZiB0aGUgc2V0IG9mIHBvZHMgaXMgcnVubmluZyIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMsIGluIHRoaXMgY2FzZSBwb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibmFtZXNwYWNlcyI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZXMgc3BlY2lmaWVzIHdoaWNoIG5hbWVzcGFjZXMgdGhlIGxhYmVsU2VsZWN0b3IgYXBwbGllcyB0byAobWF0Y2hlcyBhZ2FpbnN0KTsgbnVsbCBvciBlbXB0eSBsaXN0IG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCB0aGUgcG9kcyBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciBpbiB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGUgc2VsZWN0ZWQgcG9kcyBpcyBydW5uaW5nLiBFbXB0eSB0b3BvbG9neUtleSBpcyBub3QgYWxsb3dlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0b3BvbG9neUtleSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwb2RBbnRpQWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJEZXNjcmliZXMgcG9kIGFudGktYWZmaW5pdHkgc2NoZWR1bGluZyBydWxlcyAoZS5nLiBhdm9pZCBwdXR0aW5nIHRoaXMgcG9kIGluIHRoZSBzYW1lIG5vZGUsIHpvbmUsIGV0Yy4gYXMgc29tZSBvdGhlciBwb2QocykpLiIsInByb3BlcnRpZXMiOnsicHJlZmVycmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgc2NoZWR1bGVyIHdpbGwgcHJlZmVyIHRvIHNjaGVkdWxlIHBvZHMgdG8gbm9kZXMgdGhhdCBzYXRpc2Z5IHRoZSBhbnRpLWFmZmluaXR5IGV4cHJlc3Npb25zIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkLCBidXQgaXQgbWF5IGNob29zZSBhIG5vZGUgdGhhdCB2aW9sYXRlcyBvbmUgb3IgbW9yZSBvZiB0aGUgZXhwcmVzc2lvbnMuIFRoZSBub2RlIHRoYXQgaXMgbW9zdCBwcmVmZXJyZWQgaXMgdGhlIG9uZSB3aXRoIHRoZSBncmVhdGVzdCBzdW0gb2Ygd2VpZ2h0cywgaS5lLiBmb3IgZWFjaCBub2RlIHRoYXQgbWVldHMgYWxsIG9mIHRoZSBzY2hlZHVsaW5nIHJlcXVpcmVtZW50cyAocmVzb3VyY2UgcmVxdWVzdCwgcmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nIGFudGktYWZmaW5pdHkgZXhwcmVzc2lvbnMsIGV0Yy4pLCBjb21wdXRlIGEgc3VtIGJ5IGl0ZXJhdGluZyB0aHJvdWdoIHRoZSBlbGVtZW50cyBvZiB0aGlzIGZpZWxkIGFuZCBhZGRpbmcgXCJ3ZWlnaHRcIiB0byB0aGUgc3VtIGlmIHRoZSBub2RlIGhhcyBwb2RzIHdoaWNoIG1hdGNoZXMgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtOyB0aGUgbm9kZShzKSB3aXRoIHRoZSBoaWdoZXN0IHN1bSBhcmUgdGhlIG1vc3QgcHJlZmVycmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHdlaWdodHMgb2YgYWxsIG9mIHRoZSBtYXRjaGVkIFdlaWdodGVkUG9kQWZmaW5pdHlUZXJtIGZpZWxkcyBhcmUgYWRkZWQgcGVyLW5vZGUgdG8gZmluZCB0aGUgbW9zdCBwcmVmZXJyZWQgbm9kZShzKSIsInByb3BlcnRpZXMiOnsicG9kQWZmaW5pdHlUZXJtIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQuIEEgcG9kIGFmZmluaXR5IHRlcm0sIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB3ZWlnaHQuIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgd2hpY2ggbmFtZXNwYWNlcyB0aGUgbGFiZWxTZWxlY3RvciBhcHBsaWVzIHRvIChtYXRjaGVzIGFnYWluc3QpOyBudWxsIG9yIGVtcHR5IGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZSBzZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuIEVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwid2VpZ2h0Ijp7ImRlc2NyaXB0aW9uIjoid2VpZ2h0IGFzc29jaWF0ZWQgd2l0aCBtYXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm0sIGluIHRoZSByYW5nZSAxLTEwMC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJwb2RBZmZpbml0eVRlcm0iLCJ3ZWlnaHQiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IklmIHRoZSBhbnRpLWFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBhcmUgbm90IG1ldCBhdCBzY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuIElmIHRoZSBhbnRpLWFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBjZWFzZSB0byBiZSBtZXQgYXQgc29tZSBwb2ludCBkdXJpbmcgcG9kIGV4ZWN1dGlvbiAoZS5nLiBkdWUgdG8gYSBwb2QgbGFiZWwgdXBkYXRlKSwgdGhlIHN5c3RlbSBtYXkgb3IgbWF5IG5vdCB0cnkgdG8gZXZlbnR1YWxseSBldmljdCB0aGUgcG9kIGZyb20gaXRzIG5vZGUuIFdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIGVsZW1lbnRzLCB0aGUgbGlzdHMgb2Ygbm9kZXMgY29ycmVzcG9uZGluZyB0byBlYWNoIHBvZEFmZmluaXR5VGVybSBhcmUgaW50ZXJzZWN0ZWQsIGkuZS4gYWxsIHRlcm1zIG11c3QgYmUgc2F0aXNmaWVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRGVmaW5lcyBhIHNldCBvZiBwb2RzIChuYW1lbHkgdGhvc2UgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgcmVsYXRpdmUgdG8gdGhlIGdpdmVuIG5hbWVzcGFjZShzKSkgdGhhdCB0aGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IFx1MDAzY3RvcG9sb2d5S2V5XHUwMDNlIG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhIHBvZCBvZiB0aGUgc2V0IG9mIHBvZHMgaXMgcnVubmluZyIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMsIGluIHRoaXMgY2FzZSBwb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwibmFtZXNwYWNlcyI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZXMgc3BlY2lmaWVzIHdoaWNoIG5hbWVzcGFjZXMgdGhlIGxhYmVsU2VsZWN0b3IgYXBwbGllcyB0byAobWF0Y2hlcyBhZ2FpbnN0KTsgbnVsbCBvciBlbXB0eSBsaXN0IG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCB0aGUgcG9kcyBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciBpbiB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGUgc2VsZWN0ZWQgcG9kcyBpcyBydW5uaW5nLiBFbXB0eSB0b3BvbG9neUtleSBpcyBub3QgYWxsb3dlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0b3BvbG9neUtleSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgb3ZlcnJpZGVzIGxhYmVscyBmb3IgdGhlIGRlcGxveW1lbnQgYW5kIGl0cyB0ZW1wbGF0ZS4iLCJ0eXBlIjoib2JqZWN0In0sImVudiI6eyJkZXNjcmlwdGlvbiI6IkVudiBvdmVycmlkZXMgZW52IHZhcnMgZm9yIHRoZSBjb250YWluZXJzLiIsIml0ZW1zIjp7InByb3BlcnRpZXMiOnsiY29udGFpbmVyIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGNvbnRhaW5lciBuYW1lIiwidHlwZSI6InN0cmluZyJ9LCJlbnZWYXJzIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGRlc2lyZWQgRW52VmFyUmVxdWlyZW1lbnRzIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZWYXIgcmVwcmVzZW50cyBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZSBwcmVzZW50IGluIGEgQ29udGFpbmVyLiIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlLiBNdXN0IGJlIGEgQ19JREVOVElGSUVSLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYXJpYWJsZSByZWZlcmVuY2VzICQoVkFSX05BTUUpIGFyZSBleHBhbmRlZCB1c2luZyB0aGUgcHJldmlvdXNseSBkZWZpbmVkIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgY29udGFpbmVyIGFuZCBhbnkgc2VydmljZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUgY2Fubm90IGJlIHJlc29sdmVkLCB0aGUgcmVmZXJlbmNlIGluIHRoZSBpbnB1dCBzdHJpbmcgd2lsbCBiZSB1bmNoYW5nZWQuIERvdWJsZSAkJCBhcmUgcmVkdWNlZCB0byBhIHNpbmdsZSAkLCB3aGljaCBhbGxvd3MgZm9yIGVzY2FwaW5nIHRoZSAkKFZBUl9OQU1FKSBzeW50YXg6IGkuZS4gXCIkJChWQVJfTkFNRSlcIiB3aWxsIHByb2R1Y2UgdGhlIHN0cmluZyBsaXRlcmFsIFwiJChWQVJfTkFNRSlcIi4gRXNjYXBlZCByZWZlcmVuY2VzIHdpbGwgbmV2ZXIgYmUgZXhwYW5kZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgdmFyaWFibGUgZXhpc3RzIG9yIG5vdC4gRGVmYXVsdHMgdG8gXCJcIi4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlRnJvbSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZSBmb3IgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlJ3MgdmFsdWUuIENhbm5vdCBiZSB1c2VkIGlmIHZhbHVlIGlzIG5vdCBlbXB0eS4iLCJwcm9wZXJ0aWVzIjp7ImNvbmZpZ01hcEtleVJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlbGVjdHMgYSBrZXkgb2YgYSBDb25maWdNYXAuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUga2V5IHRvIHNlbGVjdC4iLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSByZWZlcmVudC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9vdmVydmlldy93b3JraW5nLXdpdGgtb2JqZWN0cy9uYW1lcy8jbmFtZXMgVE9ETzogQWRkIG90aGVyIHVzZWZ1bCBmaWVsZHMuIGFwaVZlcnNpb24sIGtpbmQsIHVpZD8iLCJ0eXBlIjoic3RyaW5nIn0sIm9wdGlvbmFsIjp7ImRlc2NyaXB0aW9uIjoiU3BlY2lmeSB3aGV0aGVyIHRoZSBDb25maWdNYXAgb3IgaXRzIGtleSBtdXN0IGJlIGRlZmluZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsia2V5Il0sInR5cGUiOiJvYmplY3QifSwiZmllbGRSZWYiOnsiZGVzY3JpcHRpb24iOiJTZWxlY3RzIGEgZmllbGQgb2YgdGhlIHBvZDogc3VwcG9ydHMgbWV0YWRhdGEubmFtZSwgbWV0YWRhdGEubmFtZXNwYWNlLCBgbWV0YWRhdGEubGFiZWxzWydcdTAwM2NLRVlcdTAwM2UnXWAsIGBtZXRhZGF0YS5hbm5vdGF0aW9uc1snXHUwMDNjS0VZXHUwMDNlJ11gLCBzcGVjLm5vZGVOYW1lLCBzcGVjLnNlcnZpY2VBY2NvdW50TmFtZSwgc3RhdHVzLmhvc3RJUCwgc3RhdHVzLnBvZElQLCBzdGF0dXMucG9kSVBzLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlZlcnNpb24gb2YgdGhlIHNjaGVtYSB0aGUgRmllbGRQYXRoIGlzIHdyaXR0ZW4gaW4gdGVybXMgb2YsIGRlZmF1bHRzIHRvIFwidjFcIi4iLCJ0eXBlIjoic3RyaW5nIn0sImZpZWxkUGF0aCI6eyJkZXNjcmlwdGlvbiI6IlBhdGggb2YgdGhlIGZpZWxkIHRvIHNlbGVjdCBpbiB0aGUgc3BlY2lmaWVkIEFQSSB2ZXJzaW9uLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImZpZWxkUGF0aCJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlRmllbGRSZWYiOnsiZGVzY3JpcHRpb24iOiJTZWxlY3RzIGEgcmVzb3VyY2Ugb2YgdGhlIGNvbnRhaW5lcjogb25seSByZXNvdXJjZXMgbGltaXRzIGFuZCByZXF1ZXN0cyAobGltaXRzLmNwdSwgbGltaXRzLm1lbW9yeSwgbGltaXRzLmVwaGVtZXJhbC1zdG9yYWdlLCByZXF1ZXN0cy5jcHUsIHJlcXVlc3RzLm1lbW9yeSBhbmQgcmVxdWVzdHMuZXBoZW1lcmFsLXN0b3JhZ2UpIGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkLiIsInByb3BlcnRpZXMiOnsiY29udGFpbmVyTmFtZSI6eyJkZXNjcmlwdGlvbiI6IkNvbnRhaW5lciBuYW1lOiByZXF1aXJlZCBmb3Igdm9sdW1lcywgb3B0aW9uYWwgZm9yIGVudiB2YXJzIiwidHlwZSI6InN0cmluZyJ9LCJkaXZpc29yIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwiZGVzY3JpcHRpb24iOiJTcGVjaWZpZXMgdGhlIG91dHB1dCBmb3JtYXQgb2YgdGhlIGV4cG9zZWQgcmVzb3VyY2VzLCBkZWZhdWx0cyB0byBcIjFcIiIsInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwicmVzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZDogcmVzb3VyY2UgdG8gc2VsZWN0IiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsicmVzb3VyY2UiXSwidHlwZSI6Im9iamVjdCJ9LCJzZWNyZXRLZXlSZWYiOnsiZGVzY3JpcHRpb24iOiJTZWxlY3RzIGEga2V5IG9mIGEgc2VjcmV0IGluIHRoZSBwb2QncyBuYW1lc3BhY2UiLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBrZXkgb2YgdGhlIHNlY3JldCB0byBzZWxlY3QgZnJvbS4gIE11c3QgYmUgYSB2YWxpZCBzZWNyZXQga2V5LiIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIHJlZmVyZW50LiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L3dvcmtpbmctd2l0aC1vYmplY3RzL25hbWVzLyNuYW1lcyBUT0RPOiBBZGQgb3RoZXIgdXNlZnVsIGZpZWxkcy4gYXBpVmVyc2lvbiwga2luZCwgdWlkPyIsInR5cGUiOiJzdHJpbmcifSwib3B0aW9uYWwiOnsiZGVzY3JpcHRpb24iOiJTcGVjaWZ5IHdoZXRoZXIgdGhlIFNlY3JldCBvciBpdHMga2V5IG11c3QgYmUgZGVmaW5lZCIsInR5cGUiOiJib29sZWFuIn19LCJyZXF1aXJlZCI6WyJrZXkiXSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsiY29udGFpbmVyIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sImxhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiTGFiZWxzIG92ZXJyaWRlcyBsYWJlbHMgZm9yIHRoZSBkZXBsb3ltZW50IGFuZCBpdHMgdGVtcGxhdGUuIiwidHlwZSI6Im9iamVjdCJ9LCJsaXZlbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IkxpdmVuZXNzUHJvYmVzIG92ZXJyaWRlcyBsaXZlbmVzcyBwcm9iZXMgZm9yIHRoZSBjb250YWluZXJzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiUHJvYmVzUmVxdWlyZW1lbnRzT3ZlcnJpZGUgZW5hYmxlcyB0aGUgdXNlciB0byBvdmVycmlkZSBhbnkgY29udGFpbmVyJ3MgZW52IHZhcnMuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgY29udGFpbmVyIG5hbWUiLCJ0eXBlIjoic3RyaW5nIn0sImZhaWx1cmVUaHJlc2hvbGQiOnsiZGVzY3JpcHRpb24iOiJNaW5pbXVtIGNvbnNlY3V0aXZlIGZhaWx1cmVzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBmYWlsZWQgYWZ0ZXIgaGF2aW5nIHN1Y2NlZWRlZC4gRGVmYXVsdHMgdG8gMy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHRoZSBjb250YWluZXIgaGFzIHN0YXJ0ZWQgYmVmb3JlIGxpdmVuZXNzIHByb2JlcyBhcmUgaW5pdGlhdGVkLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwicGVyaW9kU2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6IkhvdyBvZnRlbiAoaW4gc2Vjb25kcykgdG8gcGVyZm9ybSB0aGUgcHJvYmUuIERlZmF1bHQgdG8gMTAgc2Vjb25kcy4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwic3VjY2Vzc1RocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgc3VjY2Vzc2VzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBzdWNjZXNzZnVsIGFmdGVyIGhhdmluZyBmYWlsZWQuIERlZmF1bHRzIHRvIDEuIE11c3QgYmUgMSBmb3IgbGl2ZW5lc3MgYW5kIHN0YXJ0dXAuIE1pbmltdW0gdmFsdWUgaXMgMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInRlcm1pbmF0aW9uR3JhY2VQZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiT3B0aW9uYWwgZHVyYXRpb24gaW4gc2Vjb25kcyB0aGUgcG9kIG5lZWRzIHRvIHRlcm1pbmF0ZSBncmFjZWZ1bGx5IHVwb24gcHJvYmUgZmFpbHVyZS4gVGhlIGdyYWNlIHBlcmlvZCBpcyB0aGUgZHVyYXRpb24gaW4gc2Vjb25kcyBhZnRlciB0aGUgcHJvY2Vzc2VzIHJ1bm5pbmcgaW4gdGhlIHBvZCBhcmUgc2VudCBhIHRlcm1pbmF0aW9uIHNpZ25hbCBhbmQgdGhlIHRpbWUgd2hlbiB0aGUgcHJvY2Vzc2VzIGFyZSBmb3JjaWJseSBoYWx0ZWQgd2l0aCBhIGtpbGwgc2lnbmFsLiBTZXQgdGhpcyB2YWx1ZSBsb25nZXIgdGhhbiB0aGUgZXhwZWN0ZWQgY2xlYW51cCB0aW1lIGZvciB5b3VyIHByb2Nlc3MuIElmIHRoaXMgdmFsdWUgaXMgbmlsLCB0aGUgcG9kJ3MgdGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgd2lsbCBiZSB1c2VkLiBPdGhlcndpc2UsIHRoaXMgdmFsdWUgb3ZlcnJpZGVzIHRoZSB2YWx1ZSBwcm92aWRlZCBieSB0aGUgcG9kIHNwZWMuIFZhbHVlIG11c3QgYmUgbm9uLW5lZ2F0aXZlIGludGVnZXIuIFRoZSB2YWx1ZSB6ZXJvIGluZGljYXRlcyBzdG9wIGltbWVkaWF0ZWx5IHZpYSB0aGUga2lsbCBzaWduYWwgKG5vIG9wcG9ydHVuaXR5IHRvIHNodXQgZG93bikuIFRoaXMgaXMgYSBiZXRhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyBQcm9iZVRlcm1pbmF0aW9uR3JhY2VQZXJpb2QgZmVhdHVyZSBnYXRlLiBNaW5pbXVtIHZhbHVlIGlzIDEuIHNwZWMudGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMgaXMgdXNlZCBpZiB1bnNldC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInRpbWVvdXRTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgd2hpY2ggdGhlIHByb2JlIHRpbWVzIG91dC4gRGVmYXVsdHMgdG8gMSBzZWNvbmQuIE1pbmltdW0gdmFsdWUgaXMgMS4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy93b3JrbG9hZHMvcG9kcy9wb2QtbGlmZWN5Y2xlI2NvbnRhaW5lci1wcm9iZXMiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJjb250YWluZXIiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBkZXBsb3ltZW50IiwidHlwZSI6InN0cmluZyJ9LCJub2RlU2VsZWN0b3IiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Ik5vZGVTZWxlY3RvciBvdmVycmlkZXMgbm9kZVNlbGVjdG9yIGZvciB0aGUgZGVwbG95bWVudC4iLCJ0eXBlIjoib2JqZWN0In0sInJlYWRpbmVzc1Byb2JlcyI6eyJkZXNjcmlwdGlvbiI6IlJlYWRpbmVzc1Byb2JlcyBvdmVycmlkZXMgcmVhZGluZXNzIHByb2JlcyBmb3IgdGhlIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJQcm9iZXNSZXF1aXJlbWVudHNPdmVycmlkZSBlbmFibGVzIHRoZSB1c2VyIHRvIG92ZXJyaWRlIGFueSBjb250YWluZXIncyBlbnYgdmFycy4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6IlRoZSBjb250YWluZXIgbmFtZSIsInR5cGUiOiJzdHJpbmcifSwiZmFpbHVyZVRocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkLiBEZWZhdWx0cyB0byAzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvd29ya2xvYWRzL3BvZHMvcG9kLWxpZmVjeWNsZSNjb250YWluZXItcHJvYmVzIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZS4gRGVmYXVsdCB0byAxMCBzZWNvbmRzLiBNaW5pbXVtIHZhbHVlIGlzIDEuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJzdWNjZXNzVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZC4gRGVmYXVsdHMgdG8gMS4gTXVzdCBiZSAxIGZvciBsaXZlbmVzcyBhbmQgc3RhcnR1cC4gTWluaW11bSB2YWx1ZSBpcyAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJPcHRpb25hbCBkdXJhdGlvbiBpbiBzZWNvbmRzIHRoZSBwb2QgbmVlZHMgdG8gdGVybWluYXRlIGdyYWNlZnVsbHkgdXBvbiBwcm9iZSBmYWlsdXJlLiBUaGUgZ3JhY2UgcGVyaW9kIGlzIHRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIGFmdGVyIHRoZSBwcm9jZXNzZXMgcnVubmluZyBpbiB0aGUgcG9kIGFyZSBzZW50IGEgdGVybWluYXRpb24gc2lnbmFsIGFuZCB0aGUgdGltZSB3aGVuIHRoZSBwcm9jZXNzZXMgYXJlIGZvcmNpYmx5IGhhbHRlZCB3aXRoIGEga2lsbCBzaWduYWwuIFNldCB0aGlzIHZhbHVlIGxvbmdlciB0aGFuIHRoZSBleHBlY3RlZCBjbGVhbnVwIHRpbWUgZm9yIHlvdXIgcHJvY2Vzcy4gSWYgdGhpcyB2YWx1ZSBpcyBuaWwsIHRoZSBwb2QncyB0ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyB3aWxsIGJlIHVzZWQuIE90aGVyd2lzZSwgdGhpcyB2YWx1ZSBvdmVycmlkZXMgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSBwb2Qgc3BlYy4gVmFsdWUgbXVzdCBiZSBub24tbmVnYXRpdmUgaW50ZWdlci4gVGhlIHZhbHVlIHplcm8gaW5kaWNhdGVzIHN0b3AgaW1tZWRpYXRlbHkgdmlhIHRoZSBraWxsIHNpZ25hbCAobm8gb3Bwb3J0dW5pdHkgdG8gc2h1dCBkb3duKS4gVGhpcyBpcyBhIGJldGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIFByb2JlVGVybWluYXRpb25HcmFjZVBlcmlvZCBmZWF0dXJlIGdhdGUuIE1pbmltdW0gdmFsdWUgaXMgMS4gc3BlYy50ZXJtaW5hdGlvbkdyYWNlUGVyaW9kU2Vjb25kcyBpcyB1c2VkIGlmIHVuc2V0LiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwidGltZW91dFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0LiBEZWZhdWx0cyB0byAxIHNlY29uZC4gTWluaW11bSB2YWx1ZSBpcyAxLiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL3dvcmtsb2Fkcy9wb2RzL3BvZC1saWZlY3ljbGUjY29udGFpbmVyLXByb2JlcyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBudW1iZXIgb2YgcmVwbGljYXMgdGhhdCBIQSBwYXJ0cyBvZiB0aGUgY29udHJvbCBwbGFuZSB3aWxsIGJlIHNjYWxlZCB0byIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIGNvbnRhaW5lcidzIHJlc291cmNlcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSBwb2QgdGhpcyBSZXNvdXJjZSBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHJlcXVlc3RzIGFuZCBsaW1pdHMgZm9yIGEgY2VydGFpbiBjb250YWluZXIgYmFzZWQgb24gdGhlIG5hbWUuIiwicHJvcGVydGllcyI6eyJjb250YWluZXIiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIiwidHlwZSI6InN0cmluZyJ9LCJsaW1pdHMiOnsicHJvcGVydGllcyI6eyJjcHUiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9LCJtZW1vcnkiOnsicGF0dGVybiI6Il4oWystXT9bMC05Ll0rKShbZUVpbnVta0tNR1RQXSpbLStdP1swLTldKikkIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJwcm9wZXJ0aWVzIjp7ImNwdSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn0sIm1lbW9yeSI6eyJwYXR0ZXJuIjoiXihbKy1dP1swLTkuXSspKFtlRWludW1rS01HVFBdKlstK10/WzAtOV0qKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJ0b2xlcmF0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IklmIHNwZWNpZmllZCwgdGhlIHBvZCdzIHRvbGVyYXRpb25zLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHBvZCB0aGlzIFRvbGVyYXRpb24gaXMgYXR0YWNoZWQgdG8gdG9sZXJhdGVzIGFueSB0YWludCB0aGF0IG1hdGNoZXMgdGhlIHRyaXBsZSBcdTAwM2NrZXksdmFsdWUsZWZmZWN0XHUwMDNlIHVzaW5nIHRoZSBtYXRjaGluZyBvcGVyYXRvciBcdTAwM2NvcGVyYXRvclx1MDAzZS4iLCJwcm9wZXJ0aWVzIjp7ImVmZmVjdCI6eyJkZXNjcmlwdGlvbiI6IkVmZmVjdCBpbmRpY2F0ZXMgdGhlIHRhaW50IGVmZmVjdCB0byBtYXRjaC4gRW1wdHkgbWVhbnMgbWF0Y2ggYWxsIHRhaW50IGVmZmVjdHMuIFdoZW4gc3BlY2lmaWVkLCBhbGxvd2VkIHZhbHVlcyBhcmUgTm9TY2hlZHVsZSwgUHJlZmVyTm9TY2hlZHVsZSBhbmQgTm9FeGVjdXRlLiIsInR5cGUiOiJzdHJpbmcifSwia2V5Ijp7ImRlc2NyaXB0aW9uIjoiS2V5IGlzIHRoZSB0YWludCBrZXkgdGhhdCB0aGUgdG9sZXJhdGlvbiBhcHBsaWVzIHRvLiBFbXB0eSBtZWFucyBtYXRjaCBhbGwgdGFpbnQga2V5cy4gSWYgdGhlIGtleSBpcyBlbXB0eSwgb3BlcmF0b3IgbXVzdCBiZSBFeGlzdHM7IHRoaXMgY29tYmluYXRpb24gbWVhbnMgdG8gbWF0Y2ggYWxsIHZhbHVlcyBhbmQgYWxsIGtleXMuIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Ik9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gdGhlIHZhbHVlLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEV4aXN0cyBhbmQgRXF1YWwuIERlZmF1bHRzIHRvIEVxdWFsLiBFeGlzdHMgaXMgZXF1aXZhbGVudCB0byB3aWxkY2FyZCBmb3IgdmFsdWUsIHNvIHRoYXQgYSBwb2QgY2FuIHRvbGVyYXRlIGFsbCB0YWludHMgb2YgYSBwYXJ0aWN1bGFyIGNhdGVnb3J5LiIsInR5cGUiOiJzdHJpbmcifSwidG9sZXJhdGlvblNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJUb2xlcmF0aW9uU2Vjb25kcyByZXByZXNlbnRzIHRoZSBwZXJpb2Qgb2YgdGltZSB0aGUgdG9sZXJhdGlvbiAod2hpY2ggbXVzdCBiZSBvZiBlZmZlY3QgTm9FeGVjdXRlLCBvdGhlcndpc2UgdGhpcyBmaWVsZCBpcyBpZ25vcmVkKSB0b2xlcmF0ZXMgdGhlIHRhaW50LiBCeSBkZWZhdWx0LCBpdCBpcyBub3Qgc2V0LCB3aGljaCBtZWFucyB0b2xlcmF0ZSB0aGUgdGFpbnQgZm9yZXZlciAoZG8gbm90IGV2aWN0KS4gWmVybyBhbmQgbmVnYXRpdmUgdmFsdWVzIHdpbGwgYmUgdHJlYXRlZCBhcyAwIChldmljdCBpbW1lZGlhdGVseSkgYnkgdGhlIHN5c3RlbS4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHRhaW50IHZhbHVlIHRoZSB0b2xlcmF0aW9uIG1hdGNoZXMgdG8uIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMsIHRoZSB2YWx1ZSBzaG91bGQgYmUgZW1wdHksIG90aGVyd2lzZSBqdXN0IGEgcmVndWxhciBzdHJpbmcuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJjaGFubmVsIiwic291cmNlIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiS25hdGl2ZUthZmthU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIEtuYXRpdmVLYWZrYSAoZnJvbSB0aGUgY29udHJvbGxlcikuIiwicHJvcGVydGllcyI6eyJhbm5vdGF0aW9ucyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoiQW5ub3RhdGlvbnMgaXMgYWRkaXRpb25hbCBTdGF0dXMgZmllbGRzIGZvciB0aGUgUmVzb3VyY2UgdG8gc2F2ZSBzb21lIGFkZGl0aW9uYWwgU3RhdGUgYXMgd2VsbCBhcyBjb252ZXkgbW9yZSBpbmZvcm1hdGlvbiB0byB0aGUgdXNlci4gVGhpcyBpcyByb3VnaGx5IGFraW4gdG8gQW5ub3RhdGlvbnMgb24gYW55IGs4cyByZXNvdXJjZSwganVzdCB0aGUgcmVjb25jaWxlciBjb252ZXlpbmcgcmljaGVyIGluZm9ybWF0aW9uIG91dHdhcmRzLiIsInR5cGUiOiJvYmplY3QifSwiY29uZGl0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkNvbmRpdGlvbnMgdGhlIGxhdGVzdCBhdmFpbGFibGUgb2JzZXJ2YXRpb25zIG9mIGEgcmVzb3VyY2UncyBjdXJyZW50IHN0YXRlLiArcGF0Y2hNZXJnZUtleT10eXBlICtwYXRjaFN0cmF0ZWd5PW1lcmdlIiwiaXRlbXMiOnsicHJvcGVydGllcyI6eyJsYXN0VHJhbnNpdGlvblRpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0VHJhbnNpdGlvblRpbWUgaXMgdGhlIGxhc3QgdGltZSB0aGUgY29uZGl0aW9uIHRyYW5zaXRpb25lZCBmcm9tIG9uZSBzdGF0dXMgdG8gYW5vdGhlci4gV2UgdXNlIFZvbGF0aWxlVGltZSBpbiBwbGFjZSBvZiBtZXRhdjEuVGltZSB0byBleGNsdWRlIHRoaXMgZnJvbSBjcmVhdGluZyBlcXVhbGl0eS5TZW1hbnRpYyBkaWZmZXJlbmNlcyAoYWxsIG90aGVyIHRoaW5ncyBoZWxkIGNvbnN0YW50KS4iLCJ0eXBlIjoic3RyaW5nIn0sIm1lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJBIGh1bWFuIHJlYWRhYmxlIG1lc3NhZ2UgaW5kaWNhdGluZyBkZXRhaWxzIGFib3V0IHRoZSB0cmFuc2l0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwicmVhc29uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHJlYXNvbiBmb3IgdGhlIGNvbmRpdGlvbidzIGxhc3QgdHJhbnNpdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInNldmVyaXR5Ijp7ImRlc2NyaXB0aW9uIjoiU2V2ZXJpdHkgd2l0aCB3aGljaCB0byB0cmVhdCBmYWlsdXJlcyBvZiB0aGlzIHR5cGUgb2YgY29uZGl0aW9uLiBXaGVuIHRoaXMgaXMgbm90IHNwZWNpZmllZCwgaXQgZGVmYXVsdHMgdG8gRXJyb3IuIiwidHlwZSI6InN0cmluZyJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJTdGF0dXMgb2YgdGhlIGNvbmRpdGlvbiwgb25lIG9mIFRydWUsIEZhbHNlLCBVbmtub3duLiArcmVxdWlyZWQiLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJUeXBlIG9mIGNvbmRpdGlvbi4gK3JlcXVpcmVkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSIsInN0YXR1cyJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJvYnNlcnZlZEdlbmVyYXRpb24iOnsiZGVzY3JpcHRpb24iOiJPYnNlcnZlZEdlbmVyYXRpb24gaXMgdGhlICdHZW5lcmF0aW9uJyBvZiB0aGUgU2VydmljZSB0aGF0IHdhcyBsYXN0IHByb2Nlc3NlZCBieSB0aGUgY29udHJvbGxlci4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgdmVyc2lvbiBvZiB0aGUgaW5zdGFsbGVkIHJlbGVhc2UiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwib3BlcmF0b3Iua25hdGl2ZS5kZXYvdjFiZXRhMVwiLFxuICAgIFwia2luZFwiOiBcIktuYXRpdmVTZXJ2aW5nXCIsXG4gICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICBcIm5hbWVcIjogXCJrbmF0aXZlLXNlcnZpbmdcIlxuICAgIH0sXG4gICAgXCJzcGVjXCI6IHtcbiAgICB9XG4gIH0sXG4gIHtcbiAgICBcImFwaVZlcnNpb25cIjogXCJvcGVyYXRvci5rbmF0aXZlLmRldi92MWJldGExXCIsXG4gICAgXCJraW5kXCI6IFwiS25hdGl2ZUV2ZW50aW5nXCIsXG4gICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICBcIm5hbWVcIjogXCJrbmF0aXZlLWV2ZW50aW5nXCJcbiAgICB9LFxuICAgIFwic3BlY1wiOiB7XG4gICAgfVxuICB9LFxuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwib3BlcmF0b3Iuc2VydmVybGVzcy5vcGVuc2hpZnQuaW8vdjFhbHBoYTFcIixcbiAgICBcImtpbmRcIjogXCJLbmF0aXZlS2Fma2FcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImtuYXRpdmUta2Fma2FcIlxuICAgIH0sXG4gICAgXCJzcGVjXCI6IHtcbiAgICAgIFwiYnJva2VyXCI6IHtcbiAgICAgICAgXCJlbmFibGVkXCI6IGZhbHNlLFxuICAgICAgICBcImRlZmF1bHRDb25maWdcIjoge1xuICAgICAgICAgIFwibnVtUGFydGl0aW9uc1wiOiAxMCxcbiAgICAgICAgICBcInJlcGxpY2F0aW9uRmFjdG9yXCI6IDMsXG4gICAgICAgICAgXCJib290c3RyYXBTZXJ2ZXJzXCI6IFwiUkVQTEFDRV9XSVRIX0NPTU1BX1NFUEFSQVRFRF9LQUZLQV9CT09UU1RSQVBfU0VSVkVSU1wiXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBcInNvdXJjZVwiOiB7XG4gICAgICAgIFwiZW5hYmxlZFwiOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwic2lua1wiOiB7XG4gICAgICAgIFwiZW5hYmxlZFwiOiBmYWxzZVxuICAgICAgfSxcbiAgICAgIFwiY2hhbm5lbFwiOiB7XG4gICAgICAgIFwiZW5hYmxlZFwiOiBmYWxzZSxcbiAgICAgICAgXCJib290c3RyYXBTZXJ2ZXJzXCI6IFwiUkVQTEFDRV9XSVRIX0NPTU1BX1NFUEFSQVRFRF9LQUZLQV9CT09UU1RSQVBfU0VSVkVSU1wiXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiRnVsbCBMaWZlY3ljbGUiLCJjYXRlZ29yaWVzIjoiTmV0d29ya2luZyxJbnRlZ3JhdGlvbiBcdTAwMjYgRGVsaXZlcnksQ2xvdWQgUHJvdmlkZXIsRGV2ZWxvcGVyIFRvb2xzIiwiY2VydGlmaWVkIjoiZmFsc2UiLCJjcmVhdGVkQXQiOiIyMDIwLTA0LTIwVDE3OjAwOjAwWiIsImRlc2NyaXB0aW9uIjoiRGVwbG95IGFuZCBtYW5hZ2UgZXZlbnQtZHJpdmVuIHNlcnZlcmxlc3MgYXBwbGljYXRpb25zIGFuZCBmdW5jdGlvbnMgdXNpbmcgS25hdGl2ZS4iLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2NuZiI6ImZhbHNlIiwiZmVhdHVyZXMub3BlcmF0b3JzLm9wZW5zaGlmdC5pby9jbmkiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vY3NpIjoiZmFsc2UiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2Rpc2Nvbm5lY3RlZCI6InRydWUiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2ZpcHMtY29tcGxpYW50IjoidHJ1ZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vcHJveHktYXdhcmUiOiJ0cnVlIiwiZmVhdHVyZXMub3BlcmF0b3JzLm9wZW5zaGlmdC5pby90bHMtcHJvZmlsZXMiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1hd3MiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1henVyZSI6ImZhbHNlIiwiZmVhdHVyZXMub3BlcmF0b3JzLm9wZW5zaGlmdC5pby90b2tlbi1hdXRoLWdjcCI6ImZhbHNlIiwib2xtLnNraXBSYW5nZSI6Ilx1MDAzZT0xLjM2LjAgXHUwMDNjMS4zNi4xIiwib3BlcmF0b3JmcmFtZXdvcmsuaW8vc3VnZ2VzdGVkLW5hbWVzcGFjZSI6Im9wZW5zaGlmdC1zZXJ2ZXJsZXNzIiwib3BlcmF0b3JzLm9wZW5zaGlmdC5pby9tdXN0LWdhdGhlci1pbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL3NlcnZlcmxlc3MtbXVzdC1nYXRoZXItcmhlbDhAc2hhMjU2OjU4ZjNlMTgwNmZlY2RiNGQwMzA2NDZjY2VmZDFhMTQ3YmZmZWYyMWVlZTEyMzM0ODdjY2RhYjMzMGU4ZDRlMWQiLCJvcGVyYXRvcnMub3BlbnNoaWZ0LmlvL3ZhbGlkLXN1YnNjcmlwdGlvbiI6IltcIk9wZW5TaGlmdCBDb250YWluZXIgUGxhdGZvcm1cIiwgXCJPcGVuU2hpZnQgUGxhdGZvcm0gUGx1c1wiXSIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vb3BlbnNoaWZ0LWtuYXRpdmUvc2VydmVybGVzcy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0In0sImxhYmVscyI6eyJvcGVyYXRvcmZyYW1ld29yay5pby9hcmNoLmFtZDY0Ijoic3VwcG9ydGVkIiwib3BlcmF0b3JmcmFtZXdvcmsuaW8vYXJjaC5hcm02NCI6InN1cHBvcnRlZCIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL2FyY2gucHBjNjRsZSI6InN1cHBvcnRlZCIsIm9wZXJhdG9yZnJhbWV3b3JrLmlvL2FyY2guczM5MHgiOiJzdXBwb3J0ZWQifSwibmFtZSI6InNlcnZlcmxlc3Mtb3BlcmF0b3IudjEuMzYuMSIsIm5hbWVzcGFjZSI6InBsYWNlaG9sZGVyIn0sInNwZWMiOnsiY3VzdG9tcmVzb3VyY2VkZWZpbml0aW9ucyI6eyJvd25lZCI6W3siZGVzY3JpcHRpb24iOiJBIHBsYXRmb3JtIGZvciBzdHJlYW1saW5lZCBhcHBsaWNhdGlvbiBkZXBsb3ltZW50LCB0cmFmZmljLWJhc2VkIGF1dG8tc2NhbGluZyBmcm9tIHplcm8gdG8gTiwgYW5kIHRyYWZmaWMtc3BsaXQgcm9sbG91dHMiLCJkaXNwbGF5TmFtZSI6IktuYXRpdmUgU2VydmluZyIsImtpbmQiOiJLbmF0aXZlU2VydmluZyIsIm5hbWUiOiJrbmF0aXZlc2VydmluZ3Mub3BlcmF0b3Iua25hdGl2ZS5kZXYiLCJzdGF0dXNEZXNjcmlwdG9ycyI6W3siZGVzY3JpcHRpb24iOiJUaGUgdmVyc2lvbiBvZiBLbmF0aXZlIFNlcnZpbmcgaW5zdGFsbGVkIiwiZGlzcGxheU5hbWUiOiJWZXJzaW9uIiwicGF0aCI6InZlcnNpb24ifSx7ImRlc2NyaXB0aW9uIjoiQ29uZGl0aW9ucyBvZiBLbmF0aXZlIFNlcnZpbmcgaW5zdGFsbGVkIiwiZGlzcGxheU5hbWUiOiJDb25kaXRpb25zIiwicGF0aCI6ImNvbmRpdGlvbnMiLCJ4LWRlc2NyaXB0b3JzIjpbInVybjphbG06ZGVzY3JpcHRvcjppby5rdWJlcm5ldGVzLmNvbmRpdGlvbnMiXX1dLCJ2ZXJzaW9uIjoidjFiZXRhMSJ9LHsiZGVzY3JpcHRpb24iOiJBbiBldmVudC1kcml2ZW4gYXBwbGljYXRpb24gcGxhdGZvcm0gdGhhdCBsZXZlcmFnZXMgQ2xvdWRFdmVudHMgd2l0aCBhIHNpbXBsZSBIVFRQIGludGVyZmFjZSIsImRpc3BsYXlOYW1lIjoiS25hdGl2ZSBFdmVudGluZyIsImtpbmQiOiJLbmF0aXZlRXZlbnRpbmciLCJuYW1lIjoia25hdGl2ZWV2ZW50aW5ncy5vcGVyYXRvci5rbmF0aXZlLmRldiIsInN0YXR1c0Rlc2NyaXB0b3JzIjpbeyJkZXNjcmlwdGlvbiI6IlRoZSB2ZXJzaW9uIG9mIEtuYXRpdmUgRXZlbnRpbmcgaW5zdGFsbGVkIiwiZGlzcGxheU5hbWUiOiJWZXJzaW9uIiwicGF0aCI6InZlcnNpb24ifV0sInZlcnNpb24iOiJ2MWJldGExIn0seyJkZXNjcmlwdGlvbiI6IkFuIGV4dGVuc2lvbiB0byBLbmF0aXZlIEV2ZW50aW5nLCBtZXJnaW5nIEhUVFAgYWNjZXNzaWJpbGl0eSB3aXRoIEFwYWNoZSBLYWZrYSdzIHByb3ZlbiBlZmZpY2llbmN5IGFuZCByZWxpYWJpbGl0eSIsImRpc3BsYXlOYW1lIjoiS25hdGl2ZSBLYWZrYSIsImtpbmQiOiJLbmF0aXZlS2Fma2EiLCJuYW1lIjoia25hdGl2ZWthZmthcy5vcGVyYXRvci5zZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pbyIsInZlcnNpb24iOiJ2MWFscGhhMSJ9XX0sImRlc2NyaXB0aW9uIjoiVGhlIFJlZCBIYXQgT3BlblNoaWZ0IFNlcnZlcmxlc3Mgb3BlcmF0b3IgcHJvdmlkZXMgYSBjb2xsZWN0aW9uIG9mIEFQSXMgdGhhdFxuZW5hYmxlcyBjb250YWluZXJzLCBtaWNyb3NlcnZpY2VzIGFuZCBmdW5jdGlvbnMgdG8gcnVuIFwic2VydmVybGVzc1wiLlxuU2VydmVybGVzcyBhcHBsaWNhdGlvbnMgY2FuIHNjYWxlIHVwIGFuZCBkb3duICh0byB6ZXJvKSBvbiBkZW1hbmQgYW5kIGJlIHRyaWdnZXJlZCBieSBhXG5udW1iZXIgb2YgZXZlbnQgc291cmNlcy4gT3BlblNoaWZ0IFNlcnZlcmxlc3MgaW50ZWdyYXRlcyB3aXRoIGEgbnVtYmVyIG9mXG5wbGF0Zm9ybSBzZXJ2aWNlcywgc3VjaCBhcyBNb25pdG9yaW5nIGFuZCBpdCBpcyBiYXNlZCBvbiB0aGUgb3Blblxuc291cmNlIHByb2plY3QgS25hdGl2ZS5cblxuIyBQcmVyZXF1aXNpdGVzXG5LbmF0aXZlIFNlcnZpbmcgKGFuZCBLbmF0aXZlIEV2ZW50aW5nIHJlc3BlY3RpdmVseSkgY2FuIG9ubHkgYmUgaW5zdGFsbGVkIGludG8gdGhlXG5ga25hdGl2ZS1zZXJ2aW5nYCAoYGtuYXRpdmUtZXZlbnRpbmdgKSBuYW1lc3BhY2UuIFRoZXNlIG5hbWVzcGFjZXMgd2lsbCBiZVxuYXV0b21hdGljYWxseSBjcmVhdGVkIHdoZW4gaW5zdGFsbGluZyB0aGUgb3BlcmF0b3IuXG5cblRoZSBjb21wb25lbnRzIHByb3ZpZGVkIHdpdGggdGhlIE9wZW5TaGlmdCBTZXJ2ZXJsZXNzIG9wZXJhdG9yIHJlcXVpcmUgbWluaW11bSBjbHVzdGVyIHNpemVzIG9uXG5PcGVuU2hpZnQgQ29udGFpbmVyIFBsYXRmb3JtLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIHRoZSBkb2N1bWVudGF0aW9uIG9uIFtHZXR0aW5nIHN0YXJ0ZWRcbndpdGggT3BlblNoaWZ0IFNlcnZlcmxlc3NdKGh0dHBzOi8vZG9jcy5yZWRoYXQuY29tL2VuL2RvY3VtZW50YXRpb24vcmVkX2hhdF9vcGVuc2hpZnRfc2VydmVybGVzcy8xLjM2L2h0bWwvc2VydmluZy9nZXR0aW5nLXN0YXJ0ZWQtd2l0aC1rbmF0aXZlLXNlcnZpbmcjc2VydmVybGVzcy1hcHBsaWNhdGlvbnMpLlxuXG4jIFN1cHBvcnRlZCBGZWF0dXJlc1xuLSAqKkVhc3kgdG8gZ2V0IHN0YXJ0ZWQ6KiogUHJvdmlkZXMgYSBzaW1wbGlmaWVkIGRldmVsb3BlciBleHBlcmllbmNlIHRvIGRlcGxveVxuICBhbmQgcnVuIGNsb3VkIG5hdGl2ZSBhcHBsaWNhdGlvbnMgb24gS3ViZXJuZXRlcywgcHJvdmlkaW5nIHBvd2VyZnVsXG4gIGFic3RyYWN0aW9ucy5cbi0gKipJbW11dGFibGUgUmV2aXNpb25zOioqIERlcGxveSBuZXcgZmVhdHVyZXMgcGVyZm9ybWluZyBjYW5hcnksIEEvQiBvclxuICBibHVlLWdyZWVuIHRlc3Rpbmcgd2l0aCBncmFkdWFsIHRyYWZmaWMgcm9sbG91dCBmb2xsb3dpbmcgYmVzdCBwcmFjdGljZXMuXG4tICoqVXNlIGFueSBwcm9ncmFtbWluZyBsYW5ndWFnZSBvciBydW50aW1lIG9mIGNob2ljZToqKiBGcm9tIEphdmEsIFB5dGhvbiwgR29cbiAgYW5kIEphdmFTY3JpcHQgdG8gUXVhcmt1cywgU3ByaW5nQm9vdCBvciBOb2RlLmpzLlxuLSAqKkF1dG9tYXRpYyBzY2FsaW5nOioqIFJlbW92ZXMgdGhlIHJlcXVpcmVtZW50IHRvIGNvbmZpZ3VyZSBudW1iZXJzIG9mIHJlcGxpY2FzXG4gIG9yIGlkbGluZyBiZWhhdmlvci4gQXBwbGljYXRpb25zIGF1dG9tYXRpY2FsbHkgc2NhbGUgdG8gemVybyB3aGVuIG5vdCBpbiB1c2UsXG4gIG9yIHNjYWxlIHVwIHRvIG1lZXQgZGVtYW5kLCB3aXRoIGJ1aWx0IGluIHJlbGlhYmlsaXR5IGFuZCBmYXVsdCB0b2xlcmFuY2UuXG4tICoqRXZlbnQgRHJpdmVuIEFwcGxpY2F0aW9uczoqKiBZb3UgY2FuIGJ1aWxkIGxvb3NlbHkgY291cGxlZCwgZGlzdHJpYnV0ZWQgYXBwbGljYXRpb25zXG4gIHRoYXQgY2FuIGJlIGNvbm5lY3RlZCB0byBhIHZhcmlldHkgb2YgZWl0aGVyIGJ1aWx0IGluIG9yIHRoaXJkIHBhcnR5IGV2ZW50IHNvdXJjZXMsXG4gIHBvd2VyZWQgYnkgb3BlcmF0b3JzLlxuLSAqKlJlYWR5IGZvciB0aGUgaHlicmlkIGNsb3VkOioqIFByb3ZpZGVzIHRydWUsIHBvcnRhYmxlIHNlcnZlcmxlc3MgZnVuY3Rpb25hbGl0eSxcbiAgdGhhdCBjYW4gcnVuIGFueXdoZXJlIE9wZW5TaGlmdCBDb250YWluZXIgUGxhdGZvcm0gcnVucy4gWW91IGNhbiBsZXZlcmFnZSBkYXRhXG4gIGxvY2FsaXR5IGFuZCBTYWFTIGFzIHlvdSBuZWVkIGl0LlxuXG4jIENvbXBvbmVudHMgXHUwMDI2IEFQSXNcblRoaXMgb3BlcmF0b3IgcHJvdmlkZXMgdGhlIGZvbGxvd2luZyBjb21wb25lbnRzOlxuXG4jIyBLbmF0aXZlIFNlcnZpbmdcbktuYXRpdmUgU2VydmluZyBidWlsZHMgb24gS3ViZXJuZXRlcyB0byBzdXBwb3J0IGRlcGxveWluZyBhbmQgc2VydmluZyBvZiBhcHBsaWNhdGlvbnMgYW5kIGZ1bmN0aW9ucyBhcyBzZXJ2ZXJsZXNzIGNvbnRhaW5lcnMuXG5TZXJ2aW5nIHNpbXBsaWZpZXMgdGhlIGFwcGxpY2F0aW9uIGRlcGxveW1lbnQsIGR5bmFtaWNhbGx5IHNjYWxlcyBiYXNlZCBvbiBpbiBpbmNvbWluZyB0cmFmZmljIGFuZCBzdXBwb3J0cyBjdXN0b20gcm9sbG91dCBzdHJhdGVnaWVzIHdpdGggdHJhZmZpYyBzcGxpdHRpbmcuXG5PdGhlciBmZWF0dXJlcyBpbmNsdWRlOlxuLSBTaW1wbGlmaWVkIGRlcGxveW1lbnQgb2Ygc2VydmVybGVzcyBjb250YWluZXJzXG4tIFRyYWZmaWMtYmFzZWQgYXV0by1zY2FsaW5nLCBpbmNsdWRpbmcgc2NhbGUtdG8temVyb1xuLSBSb3V0aW5nIGFuZCBuZXR3b3JrIHByb2dyYW1taW5nXG4tIFBvaW50LWluLXRpbWUgYXBwbGljYXRpb24gc25hcHNob3RzIGFuZCB0aGVpciBjb25maWd1cmF0aW9uc1xuXG4jIyBLbmF0aXZlIEV2ZW50aW5nXG5LbmF0aXZlIEV2ZW50aW5nIHByb3ZpZGVzIGEgcGxhdGZvcm0gdGhhdCBvZmZlcnMgY29tcG9zYWJsZSBwcmltaXRpdmVzIHRvIGVuYWJsZSBsYXRlLWJpbmRpbmcgZXZlbnQgc291cmNlcyBhbmRcbmV2ZW50IGNvbnN1bWVycy5cbktuYXRpdmUgRXZlbnRpbmcgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBhcmNoaXRlY3R1cmFsIGNsb3VkLW5hdGl2ZSBjb25jZXB0czpcblxuLSBTZXJ2aWNlcyBhcmUgbG9vc2VseSBjb3VwbGVkIGR1cmluZyBkZXZlbG9wbWVudCBhbmQgZGVwbG95ZWQgaW5kZXBlbmRlbnRseSB0byBwcm9kdWN0aW9uXG4tIEEgcHJvZHVjZXIgY2FuIGdlbmVyYXRlIGV2ZW50cyBiZWZvcmUgYSBjb25zdW1lciBpcyBsaXN0ZW5pbmcsIGFuZCBhIGNvbnN1bWVyIGNhbiBleHByZXNzIGFuIGludGVyZXN0IGluIGFuIGV2ZW50IG9yIGNsYXNzIG9mIGV2ZW50cyB0aGF0IGFyZSBub3QgeWV0IGJlaW5nIHByb2R1Y2VkLlxuLSBTZXJ2aWNlcyBjYW4gYmUgY29ubmVjdGVkIHRvIGNyZWF0ZSBuZXcgYXBwbGljYXRpb25zIHdpdGhvdXQgbW9kaWZ5aW5nIHByb2R1Y2VyIG9yIGNvbnN1bWVyLCBhbmQgd2l0aCB0aGUgYWJpbGl0eSB0byBzZWxlY3QgYSBzcGVjaWZpYyBzdWJzZXQgb2YgZXZlbnRzIGZyb20gYSBwYXJ0aWN1bGFyIHByb2R1Y2VyLlxuXG4jIyBLbmF0aXZlIEZ1bmN0aW9uc1xuS25hdGl2ZSBGdW5jdGlvbnMgYWxsb3dzIGRldmVsb3BlcnMgdG8gd3JpdGUgZnVuY3Rpb25zIHRoYXQgbGV0IHRoZW0gZm9jdXMgb24gYnVzaW5lc3MgbG9naWMuXG5UaGVzZSBmdW5jdGlvbnMgYXJlIGRlcGxveWVkIGFzIEtuYXRpdmUgU2VydmljZXMgYW5kIHRha2UgYWR2YW50YWdlIG9mIEtuYXRpdmUgU2VydmluZyBhbmQgRXZlbnRpbmcuXG5LbmF0aXZlIEZ1bmN0aW9ucyBicmluZyBncmVhdGVyIGVmZmljaWVuY3ksIG1vcmUgc2NhbGFiaWxpdHkgYW5kIGZhc3RlciBkZXZlbG9wbWVudCB0byBmYWNpbGl0YXRlIHJhcGlkIGdvLXRvLW1hcmtldC5cblxuT3RoZXIgZmVhdHVyZXMgaW5jbHVkZTpcbi0gQnVpbGRwYWNrc1xuLSBNdWx0aXBsZSBydW50aW1lcywgaW5jbHVkaW5nIE5vZGUuanMsIFF1YXJrdXMgYW5kIEdvXG4tIExvY2FsIGRldmVsb3BlciBleHBlcmllbmNlIHRocm91Z2ggdGhlIGtuIENMSVxuLSBQcm9qZWN0IHRlbXBsYXRlc1xuLSBTdXBwb3J0IGZvciByZWNlaXZpbmcgQ2xvdWRFdmVudHMgYW5kIHBsYWluIEhUVFAgcmVxdWVzdHNcblxuIyMgS25hdGl2ZSBDTEkgYGtuYFxuVGhlIEtuYXRpdmUgY2xpZW50IGBrbmAgYWxsb3dzIHlvdSB0byBjcmVhdGUgS25hdGl2ZSByZXNvdXJjZXMgZnJvbSB0aGUgY29tbWFuZCBsaW5lIG9yIGZyb20gd2l0aGluXG5TaGVsbCBzY3JpcHRzLlxuV2l0aCBpdHMgZXh0ZW5zaXZlIGhlbHAgcGFnZXMgYW5kIGF1dG9jb21wbGV0aW9uIHN1cHBvcnQsIGl0IGZyZWVzIHlvdSBmcm9tIG1lbW9yaXppbmcgdGhlIGRldGFpbGVkIHN0cnVjdHVyZSBvZiB0aGUgS25hdGl2ZSByZXNvdXJjZSBzY2hlbWFzLlxuXG5ga25gIG9mZmVycyB5b3U6XG4tIEZ1bGwgc3VwcG9ydCBmb3IgbWFuYWdpbmcgYWxsIGZlYXR1cmVzIG9mIEtuYXRpdmUgU2VydmluZzogU2VydmljZXMsIFJldmlzaW9ucyBhbmQgUm91dGVzXG4tIFN1cHBvcnQgZm9yIG1hbmFnaW5nIEtuYXRpdmUgRXZlbnRpbmcgZW50aXRpZXM6IFNvdXJjZXMsIEJyb2tlcnMsIFRyaWdnZXJzLCBDaGFubmVscyBhbmQgU3Vic2NyaXB0aW9uc1xuLSBBIGt1YmVjdGwtbGlrZSBwbHVnaW4gYXJjaGl0ZWN0dXJlIHRvIGV4dGVuZCB0aGUgYnVpbHQtaW4gZnVuY3Rpb25hbGl0eVxuLSBFYXN5IGludGVncmF0aW9uIG9mIEtuYXRpdmUgaW50byBUZWt0b24gcGlwZWxpbmVzIGJ5IHVzaW5nIGBrbmAgaW4gYSBUZWt0b24gdGFza1xuLSBDcmVhdGUsIGJ1aWxkIGFuZCBkZXBsb3kgS25hdGl2ZSBGdW5jdGlvbnMgZm9yIG11bHRpcGxlIHJ1bnRpbWVzLCBpbmNsdWRpbmcgTm9kZS5qcywgUXVhcmt1cywgYW5kIEdvXG5cbiMgRnVydGhlciBJbmZvcm1hdGlvblxuRm9yIGRvY3VtZW50YXRpb24gb24gT3BlblNoaWZ0IFNlcnZlcmxlc3MsIHNlZTpcbi0gW0luc3RhbGxhdGlvblxuR3VpZGVdKGh0dHBzOi8vZG9jcy5yZWRoYXQuY29tL2VuL2RvY3VtZW50YXRpb24vcmVkX2hhdF9vcGVuc2hpZnRfc2VydmVybGVzcy8xLjM2L2h0bWwvaW5zdGFsbGluZ19vcGVuc2hpZnRfc2VydmVybGVzcy9pbmRleClcbi0gW0RldmVsb3AgU2VydmVybGVzcyBBcHBsaWNhdGlvbnNdKGh0dHBzOi8vZG9jcy5yZWRoYXQuY29tL2VuL2RvY3VtZW50YXRpb24vcmVkX2hhdF9vcGVuc2hpZnRfc2VydmVybGVzcy8xLjM2L2h0bWwvc2VydmluZy9nZXR0aW5nLXN0YXJ0ZWQtd2l0aC1rbmF0aXZlLXNlcnZpbmcjc2VydmVybGVzcy1hcHBsaWNhdGlvbnMpIiwiZGlzcGxheU5hbWUiOiJSZWQgSGF0IE9wZW5TaGlmdCBTZXJ2ZXJsZXNzIiwiaWNvbiI6W3siYmFzZTY0ZGF0YSI6IlBITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGRwWkhSb1BTSXpPQ0lnYUdWcFoyaDBQU0l6T0NJZ2RtbGxkMEp2ZUQwaU1DQXdJRE00SURNNElqNDhaR1ZtY3o0OGMzUjViR1UrTG1GN1ptbHNiRG9qWm1abU8zMHVZbnRtYVd4c09pTmxNREE3ZlR3dmMzUjViR1UrUEM5a1pXWnpQanh3WVhSb0lHTnNZWE56UFNKaElpQmtQU0pOTWpnc01VZ3hNR0U1TERrc01Dd3dMREF0T1N3NVZqSTRZVGtzT1N3d0xEQXNNQ3c1TERsSU1qaGhPU3c1TERBc01Dd3dMRGt0T1ZZeE1HRTVMRGtzTUN3d0xEQXRPUzA1V2lJdlBqeHdZWFJvSUdROUlrMHlPQ3d5TGpJMVFUY3VOelU0Tnl3M0xqYzFPRGNzTUN3d0xERXNNelV1TnpVc01UQldNamhCTnk0M05UZzNMRGN1TnpVNE55d3dMREFzTVN3eU9Dd3pOUzQzTlVneE1FRTNMamMxT0Rjc055NDNOVGczTERBc01Dd3hMREl1TWpVc01qaFdNVEJCTnk0M05UZzNMRGN1TnpVNE55d3dMREFzTVN3eE1Dd3lMakkxU0RJNFRUSTRMREZJTVRCaE9TdzVMREFzTUN3d0xUa3NPVll5T0dFNUxEa3NNQ3d3TERBc09TdzVTREk0WVRrc09Td3dMREFzTUN3NUxUbFdNVEJoT1N3NUxEQXNNQ3d3TFRrdE9Wb2lMejQ4Y0dGMGFDQmpiR0Z6Y3owaVlpSWdaRDBpVFRFMExESXpMalEzTmpaSU1UQmhMall5TlRNdU5qSTFNeXd3TERBc01TMHVOakkxTFM0Mk1qVjJMVFJoTGpZeU5USXVOakkxTWl3d0xEQXNNU3d1TmpJMUxTNDJNalZvTkdFdU5qSTFNaTQyTWpVeUxEQXNNQ3d4TEM0Mk1qVXVOakkxZGpSQkxqWXlOVE11TmpJMU15d3dMREFzTVN3eE5Dd3lNeTQwTnpZMldtMHRNeTR6TnpVdE1TNHlOV2d5TGpjMWRpMHlMamMxYUMweUxqYzFXaUl2UGp4d1lYUm9JR05zWVhOelBTSmlJaUJrUFNKTk1qRXNNak11TkRjMk5rZ3hOMkV1TmpJMU15NDJNalV6TERBc01Dd3hMUzQyTWpVdExqWXlOWFl0TkdFdU5qSTFNaTQyTWpVeUxEQXNNQ3d4TEM0Mk1qVXRMall5TldnMFlTNDJNalV5TGpZeU5USXNNQ3d3TERFc0xqWXlOUzQyTWpWMk5FRXVOakkxTXk0Mk1qVXpMREFzTUN3eExESXhMREl6TGpRM05qWmFiUzB6TGpNM05TMHhMakkxYURJdU56VjJMVEl1TnpWb0xUSXVOelZhSWk4K1BIQmhkR2dnWTJ4aGMzTTlJbUlpSUdROUlrMHhOeTQxTERFMkxqUTNOalpvTFRSaExqWXlOVE11TmpJMU15d3dMREFzTVMwdU5qSTFMUzQyTWpWMkxUUmhMall5TlRJdU5qSTFNaXd3TERBc01Td3VOakkxTFM0Mk1qVm9OR0V1TmpJMU1pNDJNalV5TERBc01Dd3hMQzQyTWpVdU5qSTFkalJCTGpZeU5UTXVOakkxTXl3d0xEQXNNU3d4Tnk0MUxERTJMalEzTmpaYWJTMHpMak0zTlMweExqSTFhREl1TnpWMkxUSXVOelZvTFRJdU56VmFJaTgrUEhCaGRHZ2dZMnhoYzNNOUltSWlJR1E5SWsweU5DNDFMREUyTGpRM05qWm9MVFJoTGpZeU5UTXVOakkxTXl3d0xEQXNNUzB1TmpJMUxTNDJNalYyTFRSaExqWXlOVEl1TmpJMU1pd3dMREFzTVN3dU5qSTFMUzQyTWpWb05HRXVOakkxTWk0Mk1qVXlMREFzTUN3eExDNDJNalV1TmpJMWRqUkJMall5TlRNdU5qSTFNeXd3TERBc01Td3lOQzQxTERFMkxqUTNOalphYlMwekxqTTNOUzB4TGpJMWFESXVOelYyTFRJdU56Vm9MVEl1TnpWYUlpOCtQSEJoZEdnZ1kyeGhjM005SW1JaUlHUTlJazB5T0N3eU15NDBOelkyU0RJMFlTNDJNalV6TGpZeU5UTXNNQ3d3TERFdExqWXlOUzB1TmpJMWRpMDBZUzQyTWpVeUxqWXlOVElzTUN3d0xERXNMall5TlMwdU5qSTFhRFJoTGpZeU5USXVOakkxTWl3d0xEQXNNU3d1TmpJMUxqWXlOWFkwUVM0Mk1qVXpMall5TlRNc01Dd3dMREVzTWpnc01qTXVORGMyTmxwdExUTXVNemMxTFRFdU1qVm9NaTQzTlhZdE1pNDNOV2d0TWk0M05Wb2lMejQ4Y0dGMGFDQmtQU0pOTWprc01qWXVORGMyTmtnNVlTNDJNalV1TmpJMUxEQXNNQ3d4TERBdE1TNHlOVWd5T1dFdU5qSTFMall5TlN3d0xEQXNNU3d3TERFdU1qVmFJaTgrUEM5emRtYysiLCJtZWRpYXR5cGUiOiJpbWFnZS9zdmcreG1sIn1dLCJpbnN0YWxsIjp7InNwZWMiOnsiY2x1c3RlclBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbInNvdXJjZXMua25hdGl2ZS5kZXYiXSwicmVzb3VyY2VzIjpbImthZmthc291cmNlcyIsImthZmthc2lua3MiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyIsImV2ZW50cyIsIm5hbWVzcGFjZXMiLCJzZXJ2aWNlYWNjb3VudHMiLCJzZXJ2aWNlcyIsInNlY3JldHMiLCJlbmRwb2ludHMiLCJwb2RzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJhcHBzIl0sInJlc291cmNlcyI6WyJkZXBsb3ltZW50cyIsImRlcGxveW1lbnRzL2ZpbmFsaXplcnMiLCJzdGF0ZWZ1bHNldHMiLCJzdGF0ZWZ1bHNldHMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiYXV0b3NjYWxpbmciXSwicmVzb3VyY2VzIjpbImhvcml6b250YWxwb2RhdXRvc2NhbGVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0Il19LHsiYXBpR3JvdXBzIjpbImJhdGNoIl0sInJlc291cmNlcyI6WyJqb2JzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ3YXRjaCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJwb2xpY3kiXSwicmVzb3VyY2VzIjpbInBvZGRpc3J1cHRpb25idWRnZXRzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsicmJhYy5hdXRob3JpemF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnJvbGVzIiwicm9sZXMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIiwiZXNjYWxhdGUiLCJiaW5kIl19LHsiYXBpR3JvdXBzIjpbInJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJyb2xlYmluZGluZ3MiLCJyb2xlYmluZGluZ3MiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImFkbWlzc2lvbnJlZ2lzdHJhdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbIm11dGF0aW5nd2ViaG9va2NvbmZpZ3VyYXRpb25zIiwidmFsaWRhdGluZ3dlYmhvb2tjb25maWd1cmF0aW9ucyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsibmV0d29ya2luZy5rOHMuaW8iXSwicmVzb3VyY2VzIjpbIm5ldHdvcmtwb2xpY2llcyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiYXBpZXh0ZW5zaW9ucy5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMiLCJjdXN0b21yZXNvdXJjZWRlZmluaXRpb25zL3N0YXR1cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY2FjaGluZy5pbnRlcm5hbC5rbmF0aXZlLmRldiJdLCJyZXNvdXJjZXMiOlsiaW1hZ2VzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsibW9uaXRvcmluZy5jb3Jlb3MuY29tIl0sInJlc291cmNlcyI6WyJzZXJ2aWNlbW9uaXRvcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvbnNvbGUub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjb25zb2xlcXVpY2tzdGFydHMiLCJjb25zb2xlY2xpZG93bmxvYWRzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVyb3BlcmF0b3JzIiwiY2x1c3Rlcm9wZXJhdG9ycy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0Iiwid2F0Y2giLCJsaXN0Il19LHsiYXBpR3JvdXBzIjpbInJvdXRlLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsicm91dGVzIiwicm91dGVzL2N1c3RvbS1ob3N0Il0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9yLmtuYXRpdmUuZGV2Il0sInJlc291cmNlcyI6WyJrbmF0aXZlc2VydmluZ3MiLCJrbmF0aXZlc2VydmluZ3Mvc3RhdHVzIiwia25hdGl2ZXNlcnZpbmdzL2ZpbmFsaXplcnMiLCJrbmF0aXZlZXZlbnRpbmdzIiwia25hdGl2ZWV2ZW50aW5ncy9zdGF0dXMiLCJrbmF0aXZlZXZlbnRpbmdzL2ZpbmFsaXplcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIiwicGF0Y2giXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3Iuc2VydmVybGVzcy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImtuYXRpdmVrYWZrYXMiLCJrbmF0aXZla2Fma2FzL3N0YXR1cyIsImtuYXRpdmVrYWZrYXMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb25maWcub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJpbmdyZXNzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNlcnQtbWFuYWdlci5pbyJdLCJyZXNvdXJjZXMiOlsiY2VydGlmaWNhdGVzIiwiaXNzdWVycyIsImNsdXN0ZXJpc3N1ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsInVwZGF0ZSIsImxpc3QiLCJnZXQiLCJ3YXRjaCJdfV0sInNlcnZpY2VBY2NvdW50TmFtZSI6ImtuYXRpdmUtb3BlbnNoaWZ0In0seyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyIsIm5hbWVzcGFjZXMiLCJzZWNyZXRzIiwic2VydmljZWFjY291bnRzIiwic2VydmljZXMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImFwcHMiXSwicmVzb3VyY2VzIjpbImRlcGxveW1lbnRzIiwiZGVwbG95bWVudHMvZmluYWxpemVycyIsInN0YXRlZnVsc2V0cyIsInN0YXRlZnVsc2V0cy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJhdXRvc2NhbGluZyJdLCJyZXNvdXJjZXMiOlsiaG9yaXpvbnRhbHBvZGF1dG9zY2FsZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsiYmF0Y2giXSwicmVzb3VyY2VzIjpbImpvYnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsIndhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbInBvbGljeSJdLCJyZXNvdXJjZXMiOlsicG9kZGlzcnVwdGlvbmJ1ZGdldHMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJyYmFjLmF1dGhvcml6YXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJjbHVzdGVycm9sZXMiLCJyb2xlcyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giLCJlc2NhbGF0ZSIsImJpbmQiXX0seyJhcGlHcm91cHMiOlsicmJhYy5hdXRob3JpemF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsiY2x1c3RlcnJvbGViaW5kaW5ncyIsInJvbGViaW5kaW5ncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiYWRtaXNzaW9ucmVnaXN0cmF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsibXV0YXRpbmd3ZWJob29rY29uZmlndXJhdGlvbnMiLCJ2YWxpZGF0aW5nd2ViaG9va2NvbmZpZ3VyYXRpb25zIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJuZXR3b3JraW5nLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsibmV0d29ya3BvbGljaWVzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJhcGlleHRlbnNpb25zLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsiY3VzdG9tcmVzb3VyY2VkZWZpbml0aW9ucyIsImN1c3RvbXJlc291cmNlZGVmaW5pdGlvbnMvc3RhdHVzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjYWNoaW5nLmludGVybmFsLmtuYXRpdmUuZGV2Il0sInJlc291cmNlcyI6WyJpbWFnZXMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJtb25pdG9yaW5nLmNvcmVvcy5jb20iXSwicmVzb3VyY2VzIjpbInNlcnZpY2Vtb25pdG9ycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29uc29sZS5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNvbnNvbGVxdWlja3N0YXJ0cyIsImNvbnNvbGVjbGlkb3dubG9hZHMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImNsdXN0ZXJvcGVyYXRvcnMiLCJjbHVzdGVyb3BlcmF0b3JzL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJ3YXRjaCIsImxpc3QiXX0seyJhcGlHcm91cHMiOlsicm91dGUub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJyb3V0ZXMiLCJyb3V0ZXMvY3VzdG9tLWhvc3QiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvb3JkaW5hdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbImxlYXNlcyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3Iua25hdGl2ZS5kZXYiXSwicmVzb3VyY2VzIjpbImtuYXRpdmVzZXJ2aW5ncyIsImtuYXRpdmVzZXJ2aW5ncy9zdGF0dXMiLCJrbmF0aXZlc2VydmluZ3MvZmluYWxpemVycyIsImtuYXRpdmVldmVudGluZ3MiLCJrbmF0aXZlZXZlbnRpbmdzL3N0YXR1cyIsImtuYXRpdmVldmVudGluZ3MvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJvcGVyYXRvci5zZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsia25hdGl2ZWthZmthcyIsImtuYXRpdmVrYWZrYXMvc3RhdHVzIiwia25hdGl2ZWthZmthcy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJ1cGRhdGUiLCJ3YXRjaCIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImNvbmZpZy5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImluZ3Jlc3NlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY2VydC1tYW5hZ2VyLmlvIl0sInJlc291cmNlcyI6WyJjZXJ0aWZpY2F0ZXMiLCJpc3N1ZXJzIiwiY2x1c3Rlcmlzc3VlcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwidXBkYXRlIiwibGlzdCIsImdldCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIm5ldHdvcmtpbmcuaW50ZXJuYWwua25hdGl2ZS5kZXYiXSwicmVzb3VyY2VzIjpbImNlcnRpZmljYXRlcyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJ1cGRhdGUiLCJnZXQiLCJsaXN0Iiwid2F0Y2giXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIn0seyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJjb25maWdtYXBzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJuZXR3b3JraW5nLmludGVybmFsLmtuYXRpdmUuZGV2Il0sInJlc291cmNlcyI6WyJpbmdyZXNzZXMiLCJpbmdyZXNzZXMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giLCJwYXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJyb3V0ZS5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbInJvdXRlcyIsInJvdXRlcy9jdXN0b20taG9zdCJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwidXBkYXRlIiwid2F0Y2giXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIn1dLCJkZXBsb3ltZW50cyI6W3sibmFtZSI6ImtuYXRpdmUtb3BlcmF0b3Itd2ViaG9vayIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIiwic2VydmVybGVzcy5vcGVuc2hpZnQuaW8vaXMiOiJ3ZWJob29rIn19LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJsYWJlbHMiOnsibmFtZSI6ImtuYXRpdmUtb3BlcmF0b3IiLCJzZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pby9pcyI6IndlYmhvb2siLCJzaWRlY2FyLmlzdGlvLmlvL2luamVjdCI6ImZhbHNlIn19LCJzcGVjIjp7ImNvbnRhaW5lcnMiOlt7ImVudiI6W3sibmFtZSI6IlBPRF9OQU1FIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLm5hbWUifX19LHsibmFtZSI6Ik9QRVJBVE9SX05BTUUiLCJ2YWx1ZSI6ImtuYXRpdmUtb3BlcmF0b3IifSx7Im5hbWUiOiJTWVNURU1fTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLm5hbWVzcGFjZSJ9fX0seyJuYW1lIjoiTUVUUklDU19ET01BSU4iLCJ2YWx1ZSI6ImtuYXRpdmUuZGV2L3NlcnZpbmctb3BlcmF0b3IifSx7Im5hbWUiOiJSRVFVSVJFRF9TRVJWSU5HX05BTUVTUEFDRSIsInZhbHVlIjoia25hdGl2ZS1zZXJ2aW5nIn0seyJuYW1lIjoiUkVRVUlSRURfU0VSVklOR19JTkdSRVNTX05BTUVTUEFDRSIsInZhbHVlIjoia25hdGl2ZS1zZXJ2aW5nLWluZ3Jlc3MifSx7Im5hbWUiOiJSRVFVSVJFRF9FVkVOVElOR19OQU1FU1BBQ0UiLCJ2YWx1ZSI6ImtuYXRpdmUtZXZlbnRpbmcifSx7Im5hbWUiOiJTRVJWSUNFX01PTklUT1JfUkJBQ19NQU5JRkVTVF9QQVRIIiwidmFsdWUiOiIvdmFyL3J1bi9rby9tb25pdG9yaW5nL3JiYWMtcHJveHkueWFtbCJ9LHsibmFtZSI6IldFQkhPT0tfTkFNRSIsInZhbHVlIjoia25hdGl2ZS1vcGVyYXRvci1zZXJ2aWNlIn0seyJuYW1lIjoiVVNFX09MTV9UTFMiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJLVUJFUk5FVEVTX01JTl9WRVJTSU9OIiwidmFsdWUiOiJ2MS4wLjAifSx7Im5hbWUiOiJJTUFHRV9xdWV1ZS1wcm94eSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tc2VydmluZy1xdWV1ZS1yaGVsOEBzaGEyNTY6MzEzM2MxNzdmY2JmZDRhYmI4OWIyNzNhN2NlMmZiMjIwZTA1MWNlOTU2MTkzYjFkMTQ5YzdhMDQwZmMwN2U4MyJ9LHsibmFtZSI6IklNQUdFX2FjdGl2YXRvciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tc2VydmluZy1hY3RpdmF0b3ItcmhlbDhAc2hhMjU2OjA0MmNlMWU3YmUxMGE1ZjUxZjk0ODdhZjAxOTZjYjI0OWY1ZDhlNjgyMWNlN2MyYWIwNWM1MzJiN2ExODQzOGMifSx7Im5hbWUiOiJJTUFHRV9hdXRvc2NhbGVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLWF1dG9zY2FsZXItcmhlbDhAc2hhMjU2OjBiNjlmYzgzOWY1NjUxYmZmZmNiZjg2MzY2Zjk0ZGEwZWMzZTI5ZTZjMjE3YTI2ZmZjZTdiZDc2ZmJkYTA5MzkifSx7Im5hbWUiOiJJTUFHRV9hdXRvc2NhbGVyLWhwYSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tc2VydmluZy1hdXRvc2NhbGVyLWhwYS1yaGVsOEBzaGEyNTY6NGZhMGNlN2FjMTM1MWFhNGNiZTg1ODQ3MmJmOWY5NTM5NDI5NjFhNTQzMGY4NWJlNTY1NmYyOTUwOGQyNTRkYiJ9LHsibmFtZSI6IklNQUdFX2NvbnRyb2xsZXJfX2NvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctY29udHJvbGxlci1yaGVsOEBzaGEyNTY6NTBhNjJiZjY0MWExMjRkYmEzNzI2MmRhMWU4MmVmMTRlNmI2Y2NiNGM4NTczZmE1MzdjMTlkM2IxYjc3YTYyNyJ9LHsibmFtZSI6IklNQUdFX3dlYmhvb2tfX3dlYmhvb2siLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctd2ViaG9vay1yaGVsOEBzaGEyNTY6ZGU0NWE2MGJjNDVlMWI2N2M2Zjg4ZWIxYzg4NWJkYTEyY2MxMzYzMzZkYzVmYjJlMGI4Y2JmNjNhYTYyYTZiZiJ9LHsibmFtZSI6IklNQUdFX3N0b3JhZ2UtdmVyc2lvbi1taWdyYXRpb24tc2VydmluZy1fX21pZ3JhdGUiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctc3RvcmFnZS12ZXJzaW9uLW1pZ3JhdGlvbi1yaGVsOEBzaGEyNTY6ZmJlNDYyNjk1YjNlNzAzZDQ3MjIyNzdhNjE3YzZlZjA2ZmIzN2MwNzM2NmJhNWM2MjExZGQ1NmI1MDM4YzEzMCJ9LHsibmFtZSI6IklNQUdFX2tvdXJpZXItZ2F0ZXdheSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2aWNlLW1lc2gvcHJveHl2Mi1yaGVsOEBzaGEyNTY6MWMxOWNmODZmZDA1OTQwZWYzZDBkNmU3OWU2ZjM3MWRiOTkzMTUzZjcwYmFlZGI5MTA3YmJlNzNmMjM2ZGMyNCJ9LHsibmFtZSI6IklNQUdFX25ldC1rb3VyaWVyLWNvbnRyb2xsZXJfX2NvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL25ldC1rb3VyaWVyLWtvdXJpZXItcmhlbDhAc2hhMjU2OjkwZTMyMmUzMzA0MjIyMTk5ZWZjOWJmYTI1NDUyNTBkZGUyYjIyNDAzNjY2YzVlMDAzNzJiZGFlYWExOGRkZWUifSx7Im5hbWUiOiJJTUFHRV9uZXQtaXN0aW8tY29udHJvbGxlcl9fY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEvbmV0LWlzdGlvLWNvbnRyb2xsZXItcmhlbDhAc2hhMjU2Ojc2NTVlYzk1ZTU4MjlkM2Q3ODYwMzljYzZjNjkwYzlmYjQ0MmRjODVmMWM4ODQ4MWNmMzRmOWE2ZjE2ODQwMzkifSx7Im5hbWUiOiJJTUFHRV9uZXQtaXN0aW8td2ViaG9va19fd2ViaG9vayIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEvbmV0LWlzdGlvLXdlYmhvb2stcmhlbDhAc2hhMjU2OmZhOGViYjcwYjZmMTUxMGM1NWEwM2JhZWM5OWQzNDk3ZDZhZmI5MzAxNTJmZjM3MzFmZTU3MjExNjc1YWFkYzAifSx7Im5hbWUiOiJJTUFHRV9ldmVudGluZy1jb250cm9sbGVyX19ldmVudGluZy1jb250cm9sbGVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1jb250cm9sbGVyLXJoZWw4QHNoYTI1Njo4MDQzMDFkMzE1YzhkNjk1OGQxMjhmZDU5NTExODQ0MzdmNzU1Njc0ZDhlYzVhNDU4MmQ2MTI4ZTk4OWI5NjZhIn0seyJuYW1lIjoiSU1BR0VfZXZlbnRpbmctaXN0aW8tY29udHJvbGxlcl9fZXZlbnRpbmctaXN0aW8tY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaXN0aW8tY29udHJvbGxlci1yaGVsOEBzaGEyNTY6MjBhZTJkYTFlOGQ4MmQzMTllMjU2YzZjODEyOTllZjg0MmNhMzRkNTdjNjk2NGQ2MWUwMGEyNzVhNDExNTliNCJ9LHsibmFtZSI6IklNQUdFX2V2ZW50aW5nLXdlYmhvb2tfX2V2ZW50aW5nLXdlYmhvb2siLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLXdlYmhvb2stcmhlbDhAc2hhMjU2OmNhOGE2MTkzNDI1ZjRiMjc1MGQ1OGQ2YjFkYTQyMTI0NGFhMDc3YTQ0YTM0YjQxODRlMzViOWQ5NGM5NDMzZmIifSx7Im5hbWUiOiJJTUFHRV9zdG9yYWdlLXZlcnNpb24tbWlncmF0aW9uLWV2ZW50aW5nLV9fbWlncmF0ZSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctbWlncmF0ZS1yaGVsOEBzaGEyNTY6NjRmYjRiMGIxOGY0YjhlOWJkODY0NzBjYTM2ZjJmNDE4NzExMWVkNDRiNmNjZTVkMTZkM2E0MzQ0M2MwMDQ4OSJ9LHsibmFtZSI6IklNQUdFX210LWJyb2tlci1jb250cm9sbGVyX19tdC1icm9rZXItY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctbXRjaGFubmVsLWJyb2tlci1yaGVsOEBzaGEyNTY6ZWRjMTllMzExOTQ3MDUzZGJjZWIyMWQ1MjI1YWQ1MmE0OGY2MWViM2MwNzllMGY5MmY5N2JhMzExYmIxMjFmNyJ9LHsibmFtZSI6IklNQUdFX210LWJyb2tlci1maWx0ZXJfX2ZpbHRlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctZmlsdGVyLXJoZWw4QHNoYTI1Njo2MDVmOGFiNDhlNzYxZjg4ZGU0M2I0YWFjNDM5ZDY1NzZmZWQ0NmQ2ZDk2NTlhN2NiN2QwYzNkMmQ4N2NhNTVhIn0seyJuYW1lIjoiSU1BR0VfbXQtYnJva2VyLWluZ3Jlc3NfX2luZ3Jlc3MiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWluZ3Jlc3MtcmhlbDhAc2hhMjU2OjYyNTQ4ZTk0ZWNmNTJjZDUwYjNkZjdmYzJjYjI3NWNlMzFmMTgwMzdjZDI4M2I5MGI3OTg3ZWI4ZjM4ZjFkYzYifSx7Im5hbWUiOiJJTUFHRV9pbWMtY29udHJvbGxlcl9fY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctY2hhbm5lbC1jb250cm9sbGVyLXJoZWw4QHNoYTI1NjpkYzVlMTgwNzQ5MTNjZWUwNDVmZWI1YjEzMTg5MDhiNzE2NmVhNzM1YjMzMjIzZWNjODk0M2EwOWQwODUzZDQzIn0seyJuYW1lIjoiSU1BR0VfaW1jLWRpc3BhdGNoZXJfX2Rpc3BhdGNoZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWNoYW5uZWwtZGlzcGF0Y2hlci1yaGVsOEBzaGEyNTY6NTNhNmE1ZGZiMzlmODMzODliMTAzODk0ODhmNGQ3YWJhNmE1MzQyZjQxMWZmN2VmYTQxYmFiMzBkODlkOTY0NiJ9LHsibmFtZSI6IklNQUdFX3Bpbmdzb3VyY2UtbXQtYWRhcHRlcl9fZGlzcGF0Y2hlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctbXRwaW5nLXJoZWw4QHNoYTI1Njo0ZTYzM2Y2OGEzYzM2ZjFkOTllZjkxNGExYTcyOTZhZWI2ZmU1NWQ5NjlmZDQ4ZGU5MTZhMjcyYjU5NzFjN2U2In0seyJuYW1lIjoiSU1BR0Vfam9iLXNpbmtfX2pvYi1zaW5rIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1qb2JzaW5rLXJoZWw4QHNoYTI1NjpjZmRiZDY4Yjc4ZTk0NzU5MGU2MzNiNjY4MGQ3Yjg1Y2ZkMzk0ZWE0MjI4N2QzZGZjODFiNzgyM2EzYWI2NmJkIn0seyJuYW1lIjoiSU1BR0VfQVBJU0VSVkVSX1JBX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1hcGlzZXJ2ZXItcmVjZWl2ZS1hZGFwdGVyLXJoZWw4QHNoYTI1NjpjOTA2Y2Q0YTFjNDIzODljN2U0YjM4ZGI1Nzg1OGZhYzIyNTBiNjM1N2VmZjBkYTA0OGU4YzZhY2RiOTViYTkzIn0seyJuYW1lIjoiSU1BR0VfRElTUEFUQ0hFUl9JTUFHRSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctY2hhbm5lbC1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1Njo1M2E2YTVkZmIzOWY4MzM4OWIxMDM4OTQ4OGY0ZDdhYmE2YTUzNDJmNDExZmY3ZWZhNDFiYWIzMGQ4OWQ5NjQ2In0seyJuYW1lIjoiSU1BR0VfRVZFTlRfVFJBTlNGT1JNX0pTT05BVEFfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy10cmFuc2Zvcm0tanNvbmF0YS1yaGVsOEBzaGEyNTY6MGI2MThjOWM4OTI0MjhhNTllMDQ5OWEzZWQwZWJlZmEyYzA5ODE2OTk4MTc0MzMxNTliZmNhZjY4Mzc0MzU5NyJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9USU1FUl9JTUFHRSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW50ZWdyYXRpb25zLXRpbWVyLXNvdXJjZS1yaGVsOEBzaGEyNTY6OGVjNTFmODA5MTk2Mzg0ZjliODNlZjU3ODliMTJiNjM1ODc3MmE3NjFhNzA1NTEyOWRhNTcyMjU0MzgxZWVlZiJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfUzNfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3MtczMtc291cmNlLXJoZWw4QHNoYTI1NjplZTM4YjY4ZTk4YmY5YWRiOTQ1NTRmZDRiM2EzYWVjM2I1MzNjYjQwN2RkMGUwYWZjYTdmMzdlMTBkNjU1M2Q5In0seyJuYW1lIjoiSU1BR0VfSU5URUdSQVRJT05fU09VUkNFX0FXU19TUVNfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3Mtc3FzLXNvdXJjZS1yaGVsOEBzaGEyNTY6ODZlNTU5ODZiOTQ5OWUwYTljY2JlZjU5YTJmYjg1ZGUzNjYzZmU4Njg5N2QyNWRiYTU0MTAxZTkxMDFiMWI5MSJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfRERCX1NUUkVBTVNfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3MtZGRiLXN0cmVhbXMtc291cmNlLXJoZWw4QHNoYTI1Njo2YWRhNDZmNjU1ZTEzZGI2ZThmZGVkNGRiN2VjMzA4MTIzY2Y4MzA3YzFlZjE3MWI3ZWI3ZWNhMjY0ZWUyYzI3In0seyJuYW1lIjoiSU1BR0VfSU5URUdSQVRJT05fU0lOS19MT0dfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1sb2ctc2luay1yaGVsOEBzaGEyNTY6ZTBmMGI5ZjdkOGNlZDk3OTE5ODQ0YmI0YzM0MmNlODljNWZmMjJjNmNjNzY0ZDYyZjY4MGQwZjNlYmEzMTliMSJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NJTktfQVdTX1MzX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXMzLXNpbmstcmhlbDhAc2hhMjU2Ojk0ZDU4OTAwY2I2MmQ2NDM3OWYzYjliMjdjZjdmNjkxNzNkNDBiMTE1YjZkODQzYjllODM4MzlhMDA4MGEwYTEifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TSU5LX0FXU19TUVNfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3Mtc3FzLXNpbmstcmhlbDhAc2hhMjU2OmY5NzI1N2YwYWY1MzdmZmVkMWZmNmZkMGJiMGE4ZGI1OGI1YjZhNDQ1NTlkMDEzNmNjNWYxMzRlOGZmMzRmMmEifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TSU5LX0FXU19TTlNfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3Mtc25zLXNpbmstcmhlbDhAc2hhMjU2OjMxYWU2NjdhNDczNzBlMTA3Mzg0ZDEyNTNjN2ZlMGI3MDg0NDNmOWY5OTEyMTBkZWQxNjc1OTFiNGU2OWNlZjUifSx7Im5hbWUiOiJJTUFHRV9ldmVudG1lc2gtYmFja2VuZF9fY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tYmFja3N0YWdlLXBsdWdpbnMtZXZlbnRtZXNoLXJoZWw4QHNoYTI1NjozYmMzNDg2N2Y3YTYyMGJjZGFjZTY3ZTY1YTBmZmI1MWFlYWQ1ZTRhYTFmMTBjZDBlYjc0NzZmZThlZDFhZjEyIn0seyJuYW1lIjoiSU1BR0VfS1VCRV9SQkFDX1BST1hZIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0NC9vc2Uta3ViZS1yYmFjLXByb3h5LXJoZWw5QHNoYTI1Njo2NzY1MWFkZmQ4ZTZjOGQxMmQyYjk1ODVjNzIzZDVmYmRiNjY0ODE4ZjgwMzMxMmJmZTM1MjJlMDRhODFlOWIwIn0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0VWRU5UX1NFTkRFUiIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tcGx1Z2luLWV2ZW50LXNlbmRlci1yaGVsOEBzaGEyNTY6Zjc3OTUwODg3NzdlYTg0ZmM2MTgwYjgxYjYxMzE5NjI5NDRlMzQ5MThlMmMwNjY3MTAzM2ExYTU3MjU4MTc3MyJ9LHsibmFtZSI6IklNQUdFX0tOX0NMSUVOVCIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tY2xpZW50LWtuLXJoZWw4QHNoYTI1Njo3MWFhMDliOThkOTEwMDZiZTJhODFhYzAzM2Y3MmRmNzI1NmE5Mzg5MDIzNjEzMDhiOGViMzZlYTE5ODY5OGMzIn0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfVVRJTCIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tcGx1Z2luLWZ1bmMtZnVuYy11dGlsLXJoZWw4QHNoYTI1Njo1OTgxMTBlOWI5MWMzOThlNmY3ZWE2MjE1YTY5Zjk1NjIzMzc5NjhhMDI0ZGVkOGUwZjE5NzM2YzVmYjUzNDU3In0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfVEVLVE9OX0JVSUxEQUgiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9yaGVsOC9idWlsZGFoQHNoYTI1NjozZDUwNWQ5YzBmNWQ0Y2Q1YTRlYzAzYjhkMDM4NjU2YzZjZGJkZjUxOTFlMDBjZTYzODhmN2UwZTRkMmYxYjc0In0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfTk9ERUpTXzIwX01JTklNQUwiLCJ2YWx1ZSI6InJlZ2lzdHJ5LmFjY2Vzcy5yZWRoYXQuY29tL3ViaTgvbm9kZWpzLTIwLW1pbmltYWxAc2hhMjU2OmEyYTdlMzk5YWFmMDlhNDhjMjhmNDA4MjBkYTE2NzA5YjYyYWVlNmYyYmM3MDMxMTZiOTM0NWZhYjU4MzA4NjEifSx7Im5hbWUiOiJJTUFHRV9LTl9QTFVHSU5fRlVOQ19PUEVOSkRLXzIxIiwidmFsdWUiOiJyZWdpc3RyeS5hY2Nlc3MucmVkaGF0LmNvbS91Ymk4L29wZW5qZGstMjFAc2hhMjU2OjQ0MTg5N2ExZjY5MWM3ZDRiM2E2N2JiM2UwZmVhODNlMTgzNTIyMTQyNjRjYjM4M2ZkMDU3YmJiZDVlZDg2M2MifSx7Im5hbWUiOiJJTUFHRV9LTl9QTFVHSU5fRlVOQ19QWVRIT05fMzkiLCJ2YWx1ZSI6InJlZ2lzdHJ5LmFjY2Vzcy5yZWRoYXQuY29tL3ViaTgvcHl0aG9uLTM5QHNoYTI1NjoyN2U3OTVmZDZiMWI3N2RlNzBkMWRjNzNhNjVlNGM3OTA2NTA3NDhhOWNmZGExMzhmZGJkMTk0YjNkNmVlYTNkIn0seyJuYW1lIjoiQ1VSUkVOVF9WRVJTSU9OIiwidmFsdWUiOiIxLjM2LjEifSx7Im5hbWUiOiJLTkFUSVZFX1NFUlZJTkdfVkVSU0lPTiIsInZhbHVlIjoiMS4xNiJ9LHsibmFtZSI6IktOQVRJVkVfRVZFTlRJTkdfVkVSU0lPTiIsInZhbHVlIjoiMS4xNiJ9LHsibmFtZSI6IktOQVRJVkVfRVZFTlRJTkdfS0FGS0FfQlJPS0VSX1ZFUlNJT04iLCJ2YWx1ZSI6IjEuMTYifV0sImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEvc2VydmVybGVzcy1vcGVuc2hpZnQta24tcmhlbDgtb3BlcmF0b3JAc2hhMjU2OmYxYTEzNzI1NTY3ZGUzNTdkZTQyNDZiODdhMmVkNjRiM2RjZTAyYzc0MDZiODYyMWFkOGQyYmJlYWNjMGNjZmEiLCJpbWFnZVB1bGxQb2xpY3kiOiJBbHdheXMiLCJuYW1lIjoia25hdGl2ZS1vcGVyYXRvciIsInBvcnRzIjpbeyJjb250YWluZXJQb3J0Ijo5MDkwLCJuYW1lIjoibWV0cmljcyJ9LHsiY29udGFpbmVyUG9ydCI6ODQ0MywibmFtZSI6Imh0dHBzLXdlYmhvb2sifV0sInJlYWRpbmVzc1Byb2JlIjp7Imh0dHBHZXQiOnsiaHR0cEhlYWRlcnMiOlt7Im5hbWUiOiJrLWt1YmVsZXQtcHJvYmUiLCJ2YWx1ZSI6IndlYmhvb2sifV0sInBvcnQiOjg0NDMsInNjaGVtZSI6IkhUVFBTIn0sImxpdmVuZXNzUHJvYmUiOnsiZmFpbHVyZVRocmVzaG9sZCI6NiwiaHR0cEdldCI6eyJodHRwSGVhZGVycyI6W3sibmFtZSI6Imsta3ViZWxldC1wcm9iZSIsInZhbHVlIjoid2ViaG9vayJ9XSwicG9ydCI6ODQ0Mywic2NoZW1lIjoiSFRUUFMifSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6MjAsInBlcmlvZFNlY29uZHMiOjF9LCJwZXJpb2RTZWNvbmRzIjoxfSwic2VjdXJpdHlDb250ZXh0Ijp7ImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6ZmFsc2UsImNhcGFiaWxpdGllcyI6eyJkcm9wIjpbIkFMTCJdfSwicmVhZE9ubHlSb290RmlsZXN5c3RlbSI6dHJ1ZSwicnVuQXNOb25Sb290Ijp0cnVlfX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIn19fX0seyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQiLCJzcGVjIjp7InJlcGxpY2FzIjoxLCJzZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQifX0sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQifX0sInNwZWMiOnsiY29udGFpbmVycyI6W3siZW52IjpbeyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWUiOiIifSx7Im5hbWUiOiJOQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEubmFtZXNwYWNlIn19fSx7Im5hbWUiOiJERVBMT1lNRU5UX05BTUUiLCJ2YWx1ZSI6ImtuYXRpdmUtb3BlbnNoaWZ0In0seyJuYW1lIjoiUE9EX05BTUUiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEubmFtZSJ9fX0seyJuYW1lIjoiT1BFUkFUT1JfTkFNRSIsInZhbHVlIjoia25hdGl2ZS1vcGVuc2hpZnQifSx7Im5hbWUiOiJSRVFVSVJFRF9TRVJWSU5HX05BTUVTUEFDRSIsInZhbHVlIjoia25hdGl2ZS1zZXJ2aW5nIn0seyJuYW1lIjoiUkVRVUlSRURfU0VSVklOR19JTkdSRVNTX05BTUVTUEFDRSIsInZhbHVlIjoia25hdGl2ZS1zZXJ2aW5nLWluZ3Jlc3MifSx7Im5hbWUiOiJSRVFVSVJFRF9FVkVOVElOR19OQU1FU1BBQ0UiLCJ2YWx1ZSI6ImtuYXRpdmUtZXZlbnRpbmcifSx7Im5hbWUiOiJSRVFVSVJFRF9LQUZLQV9OQU1FU1BBQ0UiLCJ2YWx1ZSI6ImtuYXRpdmUtZXZlbnRpbmcifSx7Im5hbWUiOiJLQUZLQUNIQU5ORUxfTUFOSUZFU1RfUEFUSCIsInZhbHVlIjoiZGVwbG95L3Jlc291cmNlcy9rbmF0aXZla2Fma2EvY2hhbm5lbCJ9LHsibmFtZSI6IktBRktBU09VUkNFX01BTklGRVNUX1BBVEgiLCJ2YWx1ZSI6ImRlcGxveS9yZXNvdXJjZXMva25hdGl2ZWthZmthL3NvdXJjZSJ9LHsibmFtZSI6IktBRktBQ09OVFJPTExFUl9NQU5JRkVTVF9QQVRIIiwidmFsdWUiOiJkZXBsb3kvcmVzb3VyY2VzL2tuYXRpdmVrYWZrYS9jb250cm9sbGVyIn0seyJuYW1lIjoiS0FGS0FCUk9LRVJfTUFOSUZFU1RfUEFUSCIsInZhbHVlIjoiZGVwbG95L3Jlc291cmNlcy9rbmF0aXZla2Fma2EvYnJva2VyIn0seyJuYW1lIjoiS0FGS0FTSU5LX01BTklGRVNUX1BBVEgiLCJ2YWx1ZSI6ImRlcGxveS9yZXNvdXJjZXMva25hdGl2ZWthZmthL3NpbmsifSx7Im5hbWUiOiJRVUlDS1NUQVJUX01BTklGRVNUX1BBVEgiLCJ2YWx1ZSI6ImRlcGxveS9yZXNvdXJjZXMvcXVpY2tzdGFydC9zZXJ2ZXJsZXNzLWFwcGxpY2F0aW9uLXF1aWNrc3RhcnQueWFtbCJ9LHsibmFtZSI6IkRBU0hCT0FSRFNfUk9PVF9NQU5JRkVTVF9QQVRIIiwidmFsdWUiOiJkZXBsb3kvcmVzb3VyY2VzL2Rhc2hib2FyZHMifSx7Im5hbWUiOiJTT1VSQ0VTX1VTRV9DTFVTVEVSX01PTklUT1JJTkciLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJTT1VSQ0VTX0dFTkVSQVRFX1NFUlZJQ0VfTU9OSVRPUlMiLCJ2YWx1ZSI6InRydWUifSx7Im5hbWUiOiJFTkFCTEVfUFBST0YiLCJ2YWx1ZSI6ImZhbHNlIn0seyJuYW1lIjoiS1VCRVJORVRFU19NSU5fVkVSU0lPTiIsInZhbHVlIjoidjEuMC4wIn0seyJuYW1lIjoiSU1BR0VfcXVldWUtcHJveHkiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctcXVldWUtcmhlbDhAc2hhMjU2OjMxMzNjMTc3ZmNiZmQ0YWJiODliMjczYTdjZTJmYjIyMGUwNTFjZTk1NjE5M2IxZDE0OWM3YTA0MGZjMDdlODMifSx7Im5hbWUiOiJJTUFHRV9hY3RpdmF0b3IiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctYWN0aXZhdG9yLXJoZWw4QHNoYTI1NjowNDJjZTFlN2JlMTBhNWY1MWY5NDg3YWYwMTk2Y2IyNDlmNWQ4ZTY4MjFjZTdjMmFiMDVjNTMyYjdhMTg0MzhjIn0seyJuYW1lIjoiSU1BR0VfYXV0b3NjYWxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tc2VydmluZy1hdXRvc2NhbGVyLXJoZWw4QHNoYTI1NjowYjY5ZmM4MzlmNTY1MWJmZmZjYmY4NjM2NmY5NGRhMGVjM2UyOWU2YzIxN2EyNmZmY2U3YmQ3NmZiZGEwOTM5In0seyJuYW1lIjoiSU1BR0VfYXV0b3NjYWxlci1ocGEiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctYXV0b3NjYWxlci1ocGEtcmhlbDhAc2hhMjU2OjRmYTBjZTdhYzEzNTFhYTRjYmU4NTg0NzJiZjlmOTUzOTQyOTYxYTU0MzBmODViZTU2NTZmMjk1MDhkMjU0ZGIifSx7Im5hbWUiOiJJTUFHRV9jb250cm9sbGVyX19jb250cm9sbGVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLWNvbnRyb2xsZXItcmhlbDhAc2hhMjU2OjUwYTYyYmY2NDFhMTI0ZGJhMzcyNjJkYTFlODJlZjE0ZTZiNmNjYjRjODU3M2ZhNTM3YzE5ZDNiMWI3N2E2MjcifSx7Im5hbWUiOiJJTUFHRV93ZWJob29rX193ZWJob29rIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLXdlYmhvb2stcmhlbDhAc2hhMjU2OmRlNDVhNjBiYzQ1ZTFiNjdjNmY4OGViMWM4ODViZGExMmNjMTM2MzM2ZGM1ZmIyZTBiOGNiZjYzYWE2MmE2YmYifSx7Im5hbWUiOiJJTUFHRV9zdG9yYWdlLXZlcnNpb24tbWlncmF0aW9uLXNlcnZpbmctX19taWdyYXRlIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLXN0b3JhZ2UtdmVyc2lvbi1taWdyYXRpb24tcmhlbDhAc2hhMjU2OmZiZTQ2MjY5NWIzZTcwM2Q0NzIyMjc3YTYxN2M2ZWYwNmZiMzdjMDczNjZiYTVjNjIxMWRkNTZiNTAzOGMxMzAifSx7Im5hbWUiOiJJTUFHRV9rb3VyaWVyLWdhdGV3YXkiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmljZS1tZXNoL3Byb3h5djItcmhlbDhAc2hhMjU2OjFjMTljZjg2ZmQwNTk0MGVmM2QwZDZlNzllNmYzNzFkYjk5MzE1M2Y3MGJhZWRiOTEwN2JiZTczZjIzNmRjMjQifSx7Im5hbWUiOiJJTUFHRV9uZXQta291cmllci1jb250cm9sbGVyX19jb250cm9sbGVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9uZXQta291cmllci1rb3VyaWVyLXJoZWw4QHNoYTI1Njo5MGUzMjJlMzMwNDIyMjE5OWVmYzliZmEyNTQ1MjUwZGRlMmIyMjQwMzY2NmM1ZTAwMzcyYmRhZWFhMThkZGVlIn0seyJuYW1lIjoiSU1BR0VfbmV0LWlzdGlvLWNvbnRyb2xsZXJfX2NvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL25ldC1pc3Rpby1jb250cm9sbGVyLXJoZWw4QHNoYTI1Njo3NjU1ZWM5NWU1ODI5ZDNkNzg2MDM5Y2M2YzY5MGM5ZmI0NDJkYzg1ZjFjODg0ODFjZjM0ZjlhNmYxNjg0MDM5In0seyJuYW1lIjoiSU1BR0VfbmV0LWlzdGlvLXdlYmhvb2tfX3dlYmhvb2siLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL25ldC1pc3Rpby13ZWJob29rLXJoZWw4QHNoYTI1NjpmYThlYmI3MGI2ZjE1MTBjNTVhMDNiYWVjOTlkMzQ5N2Q2YWZiOTMwMTUyZmYzNzMxZmU1NzIxMTY3NWFhZGMwIn0seyJuYW1lIjoiSU1BR0VfZXZlbnRpbmctY29udHJvbGxlcl9fZXZlbnRpbmctY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctY29udHJvbGxlci1yaGVsOEBzaGEyNTY6ODA0MzAxZDMxNWM4ZDY5NThkMTI4ZmQ1OTUxMTg0NDM3Zjc1NTY3NGQ4ZWM1YTQ1ODJkNjEyOGU5ODliOTY2YSJ9LHsibmFtZSI6IklNQUdFX2V2ZW50aW5nLWlzdGlvLWNvbnRyb2xsZXJfX2V2ZW50aW5nLWlzdGlvLWNvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWlzdGlvLWNvbnRyb2xsZXItcmhlbDhAc2hhMjU2OjIwYWUyZGExZThkODJkMzE5ZTI1NmM2YzgxMjk5ZWY4NDJjYTM0ZDU3YzY5NjRkNjFlMDBhMjc1YTQxMTU5YjQifSx7Im5hbWUiOiJJTUFHRV9ldmVudGluZy13ZWJob29rX19ldmVudGluZy13ZWJob29rIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy13ZWJob29rLXJoZWw4QHNoYTI1NjpjYThhNjE5MzQyNWY0YjI3NTBkNThkNmIxZGE0MjEyNDRhYTA3N2E0NGEzNGI0MTg0ZTM1YjlkOTRjOTQzM2ZiIn0seyJuYW1lIjoiSU1BR0Vfc3RvcmFnZS12ZXJzaW9uLW1pZ3JhdGlvbi1ldmVudGluZy1fX21pZ3JhdGUiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW1pZ3JhdGUtcmhlbDhAc2hhMjU2OjY0ZmI0YjBiMThmNGI4ZTliZDg2NDcwY2EzNmYyZjQxODcxMTFlZDQ0YjZjY2U1ZDE2ZDNhNDM0NDNjMDA0ODkifSx7Im5hbWUiOiJJTUFHRV9tdC1icm9rZXItY29udHJvbGxlcl9fbXQtYnJva2VyLWNvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW10Y2hhbm5lbC1icm9rZXItcmhlbDhAc2hhMjU2OmVkYzE5ZTMxMTk0NzA1M2RiY2ViMjFkNTIyNWFkNTJhNDhmNjFlYjNjMDc5ZTBmOTJmOTdiYTMxMWJiMTIxZjcifSx7Im5hbWUiOiJJTUFHRV9tdC1icm9rZXItZmlsdGVyX19maWx0ZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWZpbHRlci1yaGVsOEBzaGEyNTY6NjA1ZjhhYjQ4ZTc2MWY4OGRlNDNiNGFhYzQzOWQ2NTc2ZmVkNDZkNmQ5NjU5YTdjYjdkMGMzZDJkODdjYTU1YSJ9LHsibmFtZSI6IklNQUdFX210LWJyb2tlci1pbmdyZXNzX19pbmdyZXNzIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbmdyZXNzLXJoZWw4QHNoYTI1Njo2MjU0OGU5NGVjZjUyY2Q1MGIzZGY3ZmMyY2IyNzVjZTMxZjE4MDM3Y2QyODNiOTBiNzk4N2ViOGYzOGYxZGM2In0seyJuYW1lIjoiSU1BR0VfaW1jLWNvbnRyb2xsZXJfX2NvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWNoYW5uZWwtY29udHJvbGxlci1yaGVsOEBzaGEyNTY6ZGM1ZTE4MDc0OTEzY2VlMDQ1ZmViNWIxMzE4OTA4YjcxNjZlYTczNWIzMzIyM2VjYzg5NDNhMDlkMDg1M2Q0MyJ9LHsibmFtZSI6IklNQUdFX2ltYy1kaXNwYXRjaGVyX19kaXNwYXRjaGVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1jaGFubmVsLWRpc3BhdGNoZXItcmhlbDhAc2hhMjU2OjUzYTZhNWRmYjM5ZjgzMzg5YjEwMzg5NDg4ZjRkN2FiYTZhNTM0MmY0MTFmZjdlZmE0MWJhYjMwZDg5ZDk2NDYifSx7Im5hbWUiOiJJTUFHRV9waW5nc291cmNlLW10LWFkYXB0ZXJfX2Rpc3BhdGNoZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW10cGluZy1yaGVsOEBzaGEyNTY6NGU2MzNmNjhhM2MzNmYxZDk5ZWY5MTRhMWE3Mjk2YWViNmZlNTVkOTY5ZmQ0OGRlOTE2YTI3MmI1OTcxYzdlNiJ9LHsibmFtZSI6IklNQUdFX2pvYi1zaW5rX19qb2Itc2luayIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctam9ic2luay1yaGVsOEBzaGEyNTY6Y2ZkYmQ2OGI3OGU5NDc1OTBlNjMzYjY2ODBkN2I4NWNmZDM5NGVhNDIyODdkM2RmYzgxYjc4MjNhM2FiNjZiZCJ9LHsibmFtZSI6IklNQUdFX0FQSVNFUlZFUl9SQV9JTUFHRSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctYXBpc2VydmVyLXJlY2VpdmUtYWRhcHRlci1yaGVsOEBzaGEyNTY6YzkwNmNkNGExYzQyMzg5YzdlNGIzOGRiNTc4NThmYWMyMjUwYjYzNTdlZmYwZGEwNDhlOGM2YWNkYjk1YmE5MyJ9LHsibmFtZSI6IklNQUdFX0RJU1BBVENIRVJfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWNoYW5uZWwtZGlzcGF0Y2hlci1yaGVsOEBzaGEyNTY6NTNhNmE1ZGZiMzlmODMzODliMTAzODk0ODhmNGQ3YWJhNmE1MzQyZjQxMWZmN2VmYTQxYmFiMzBkODlkOTY0NiJ9LHsibmFtZSI6IklNQUdFX0VWRU5UX1RSQU5TRk9STV9KU09OQVRBX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtdHJhbnNmb3JtLWpzb25hdGEtcmhlbDhAc2hhMjU2OjBiNjE4YzljODkyNDI4YTU5ZTA0OTlhM2VkMGViZWZhMmMwOTgxNjk5ODE3NDMzMTU5YmZjYWY2ODM3NDM1OTcifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TT1VSQ0VfVElNRVJfSU1BR0UiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy10aW1lci1zb3VyY2UtcmhlbDhAc2hhMjU2OjhlYzUxZjgwOTE5NjM4NGY5YjgzZWY1Nzg5YjEyYjYzNTg3NzJhNzYxYTcwNTUxMjlkYTU3MjI1NDM4MWVlZWYifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TT1VSQ0VfQVdTX1MzX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXMzLXNvdXJjZS1yaGVsOEBzaGEyNTY6ZWUzOGI2OGU5OGJmOWFkYjk0NTU0ZmQ0YjNhM2FlYzNiNTMzY2I0MDdkZDBlMGFmY2E3ZjM3ZTEwZDY1NTNkOSJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfU1FTX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXNxcy1zb3VyY2UtcmhlbDhAc2hhMjU2Ojg2ZTU1OTg2Yjk0OTllMGE5Y2NiZWY1OWEyZmI4NWRlMzY2M2ZlODY4OTdkMjVkYmE1NDEwMWU5MTAxYjFiOTEifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TT1VSQ0VfQVdTX0REQl9TVFJFQU1TX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLWRkYi1zdHJlYW1zLXNvdXJjZS1yaGVsOEBzaGEyNTY6NmFkYTQ2ZjY1NWUxM2RiNmU4ZmRlZDRkYjdlYzMwODEyM2NmODMwN2MxZWYxNzFiN2ViN2VjYTI2NGVlMmMyNyJ9LHsibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NJTktfTE9HX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtbG9nLXNpbmstcmhlbDhAc2hhMjU2OmUwZjBiOWY3ZDhjZWQ5NzkxOTg0NGJiNGMzNDJjZTg5YzVmZjIyYzZjYzc2NGQ2MmY2ODBkMGYzZWJhMzE5YjEifSx7Im5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TSU5LX0FXU19TM19JTUFHRSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW50ZWdyYXRpb25zLWF3cy1zMy1zaW5rLXJoZWw4QHNoYTI1Njo5NGQ1ODkwMGNiNjJkNjQzNzlmM2I5YjI3Y2Y3ZjY5MTczZDQwYjExNWI2ZDg0M2I5ZTgzODM5YTAwODBhMGExIn0seyJuYW1lIjoiSU1BR0VfSU5URUdSQVRJT05fU0lOS19BV1NfU1FTX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXNxcy1zaW5rLXJoZWw4QHNoYTI1NjpmOTcyNTdmMGFmNTM3ZmZlZDFmZjZmZDBiYjBhOGRiNThiNWI2YTQ0NTU5ZDAxMzZjYzVmMTM0ZThmZjM0ZjJhIn0seyJuYW1lIjoiSU1BR0VfSU5URUdSQVRJT05fU0lOS19BV1NfU05TX0lNQUdFIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXNucy1zaW5rLXJoZWw4QHNoYTI1NjozMWFlNjY3YTQ3MzcwZTEwNzM4NGQxMjUzYzdmZTBiNzA4NDQzZjlmOTkxMjEwZGVkMTY3NTkxYjRlNjljZWY1In0seyJuYW1lIjoiSU1BR0VfZXZlbnRtZXNoLWJhY2tlbmRfX2NvbnRyb2xsZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWJhY2tzdGFnZS1wbHVnaW5zLWV2ZW50bWVzaC1yaGVsOEBzaGEyNTY6M2JjMzQ4NjdmN2E2MjBiY2RhY2U2N2U2NWEwZmZiNTFhZWFkNWU0YWExZjEwY2QwZWI3NDc2ZmU4ZWQxYWYxMiJ9LHsibmFtZSI6IklNQUdFX0tVQkVfUkJBQ19QUk9YWSIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdDQvb3NlLWt1YmUtcmJhYy1wcm94eS1yaGVsOUBzaGEyNTY6Njc2NTFhZGZkOGU2YzhkMTJkMmI5NTg1YzcyM2Q1ZmJkYjY2NDgxOGY4MDMzMTJiZmUzNTIyZTA0YTgxZTliMCJ9LHsibmFtZSI6IklNQUdFX0tOX1BMVUdJTl9FVkVOVF9TRU5ERVIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXBsdWdpbi1ldmVudC1zZW5kZXItcmhlbDhAc2hhMjU2OmY3Nzk1MDg4Nzc3ZWE4NGZjNjE4MGI4MWI2MTMxOTYyOTQ0ZTM0OTE4ZTJjMDY2NzEwMzNhMWE1NzI1ODE3NzMifSx7Im5hbWUiOiJJTUFHRV9LTl9DTElFTlQiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWNsaWVudC1rbi1yaGVsOEBzaGEyNTY6NzFhYTA5Yjk4ZDkxMDA2YmUyYTgxYWMwMzNmNzJkZjcyNTZhOTM4OTAyMzYxMzA4YjhlYjM2ZWExOTg2OThjMyJ9LHsibmFtZSI6IklNQUdFX0tOX1BMVUdJTl9GVU5DX1VUSUwiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXBsdWdpbi1mdW5jLWZ1bmMtdXRpbC1yaGVsOEBzaGEyNTY6NTk4MTEwZTliOTFjMzk4ZTZmN2VhNjIxNWE2OWY5NTYyMzM3OTY4YTAyNGRlZDhlMGYxOTczNmM1ZmI1MzQ1NyJ9LHsibmFtZSI6IklNQUdFX0tOX1BMVUdJTl9GVU5DX1RFS1RPTl9CVUlMREFIIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vcmhlbDgvYnVpbGRhaEBzaGEyNTY6M2Q1MDVkOWMwZjVkNGNkNWE0ZWMwM2I4ZDAzODY1NmM2Y2RiZGY1MTkxZTAwY2U2Mzg4ZjdlMGU0ZDJmMWI3NCJ9LHsibmFtZSI6IklNQUdFX0tOX1BMVUdJTl9GVU5DX05PREVKU18yMF9NSU5JTUFMIiwidmFsdWUiOiJyZWdpc3RyeS5hY2Nlc3MucmVkaGF0LmNvbS91Ymk4L25vZGVqcy0yMC1taW5pbWFsQHNoYTI1NjphMmE3ZTM5OWFhZjA5YTQ4YzI4ZjQwODIwZGExNjcwOWI2MmFlZTZmMmJjNzAzMTE2YjkzNDVmYWI1ODMwODYxIn0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfT1BFTkpES18yMSIsInZhbHVlIjoicmVnaXN0cnkuYWNjZXNzLnJlZGhhdC5jb20vdWJpOC9vcGVuamRrLTIxQHNoYTI1Njo0NDE4OTdhMWY2OTFjN2Q0YjNhNjdiYjNlMGZlYTgzZTE4MzUyMjE0MjY0Y2IzODNmZDA1N2JiYmQ1ZWQ4NjNjIn0seyJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfUFlUSE9OXzM5IiwidmFsdWUiOiJyZWdpc3RyeS5hY2Nlc3MucmVkaGF0LmNvbS91Ymk4L3B5dGhvbi0zOUBzaGEyNTY6MjdlNzk1ZmQ2YjFiNzdkZTcwZDFkYzczYTY1ZTRjNzkwNjUwNzQ4YTljZmRhMTM4ZmRiZDE5NGIzZDZlZWEzZCJ9LHsibmFtZSI6IktBRktBX0lNQUdFX2thZmthLWJyb2tlci1yZWNlaXZlcl9fa2Fma2EtYnJva2VyLXJlY2VpdmVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2ItcmVjZWl2ZXItcmhlbDhAc2hhMjU2OjkxYjMzNjc4YzUzY2RhMzFlNjMwOTQwYzE3MWZhN2Q1OTBmMDg4Yjc4MzZjMzlkOTcxMmYwZjZmMjg1YjlmNWIifSx7Im5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1icm9rZXItZGlzcGF0Y2hlcl9fa2Fma2EtYnJva2VyLWRpc3BhdGNoZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1NjowYTA2OGFkZDRmMjVkYzJmOTU4MjRjYTVkMTUxZjlmOGEwNzZmNjkwMDY2MDg3ODQxNTYzZDMxMDk0YTdmZjVhIn0seyJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2EtY2hhbm5lbC1yZWNlaXZlcl9fa2Fma2EtY2hhbm5lbC1yZWNlaXZlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZWtiLXJlY2VpdmVyLXJoZWw4QHNoYTI1Njo5MWIzMzY3OGM1M2NkYTMxZTYzMDk0MGMxNzFmYTdkNTkwZjA4OGI3ODM2YzM5ZDk3MTJmMGY2ZjI4NWI5ZjViIn0seyJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2EtY2hhbm5lbC1kaXNwYXRjaGVyX19rYWZrYS1jaGFubmVsLWRpc3BhdGNoZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1NjowYTA2OGFkZDRmMjVkYzJmOTU4MjRjYTVkMTUxZjlmOGEwNzZmNjkwMDY2MDg3ODQxNTYzZDMxMDk0YTdmZjVhIn0seyJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2EtY29udHJvbGxlcl9fY29udHJvbGxlciIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZWtiLWthZmthLWNvbnRyb2xsZXItcmhlbDhAc2hhMjU2Ojc0NWYxMDczODU4NzYxNTFjZWE3ZDZhMTkyM2RmMTI4NjY0ZDcwOWEzYmMyNDQ1OThlMDQ0OTgyYjEyMjRmNzkifSx7Im5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1zaW5rLXJlY2VpdmVyX19rYWZrYS1zaW5rLXJlY2VpdmVyIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2ItcmVjZWl2ZXItcmhlbDhAc2hhMjU2OjkxYjMzNjc4YzUzY2RhMzFlNjMwOTQwYzE3MWZhN2Q1OTBmMDg4Yjc4MzZjMzlkOTcxMmYwZjZmMjg1YjlmNWIifSx7Im5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1zb3VyY2UtZGlzcGF0Y2hlcl9fa2Fma2Etc291cmNlLWRpc3BhdGNoZXIiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1NjowYTA2OGFkZDRmMjVkYzJmOTU4MjRjYTVkMTUxZjlmOGEwNzZmNjkwMDY2MDg3ODQxNTYzZDMxMDk0YTdmZjVhIn0seyJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2Etd2ViaG9vay1ldmVudGluZ19fa2Fma2Etd2ViaG9vay1ldmVudGluZyIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZWtiLXdlYmhvb2sta2Fma2EtcmhlbDhAc2hhMjU2OjIxMjA0ZDA4ZmI5ZGE4YzQ1ZDA1N2UzYWJhNmU0Y2ZhN2U3NWMwZWZlYmZlYzQwMjliZTc1NzUwYTUxMDk2MWIifSx7Im5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1jb250cm9sbGVyLXBvc3QtaW5zdGFsbF9fcG9zdC1pbnN0YWxsIiwidmFsdWUiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2ItcG9zdC1pbnN0YWxsLXJoZWw4QHNoYTI1NjpmMTllMDE3NmNkZGFlMDE3ZGEwM2ViNDBlMmMyYWFkNjA3NmZkMzA2YmI4YWFhYjhmOWI3OTNhZGRhODRkMDAyIn0seyJuYW1lIjoiS0FGS0FfSU1BR0Vfa25hdGl2ZS1rYWZrYS1zdG9yYWdlLXZlcnNpb24tbWlncmF0b3JfX21pZ3JhdGUiLCJ2YWx1ZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW1pZ3JhdGUtcmhlbDhAc2hhMjU2OjY0ZmI0YjBiMThmNGI4ZTliZDg2NDcwY2EzNmYyZjQxODcxMTFlZDQ0YjZjY2U1ZDE2ZDNhNDM0NDNjMDA0ODkifSx7Im5hbWUiOiJDVVJSRU5UX1ZFUlNJT04iLCJ2YWx1ZSI6IjEuMzYuMSJ9LHsibmFtZSI6IktOQVRJVkVfU0VSVklOR19WRVJTSU9OIiwidmFsdWUiOiIxLjE2In0seyJuYW1lIjoiS05BVElWRV9FVkVOVElOR19WRVJTSU9OIiwidmFsdWUiOiIxLjE2In0seyJuYW1lIjoiS05BVElWRV9FVkVOVElOR19LQUZLQV9CUk9LRVJfVkVSU0lPTiIsInZhbHVlIjoiMS4xNiJ9XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9zZXJ2ZXJsZXNzLWtuLW9wZXJhdG9yLXJoZWw4QHNoYTI1NjphYmY5Nzc5MDcyNmRhMTI5ZmFiNGI2MmI5YmM3YjNjNGYyMjVjMWZiNjg1NTAzNTliZTQ0YTAxMWU2MGQ1NGYzIiwiaW1hZ2VQdWxsUG9saWN5IjoiQWx3YXlzIiwibGl2ZW5lc3NQcm9iZSI6eyJodHRwR2V0Ijp7InBhdGgiOiIvaGVhbHRoeiIsInBvcnQiOjg2ODd9fSwibmFtZSI6ImtuYXRpdmUtb3BlbnNoaWZ0IiwicG9ydHMiOlt7ImNvbnRhaW5lclBvcnQiOjgwODAsIm5hbWUiOiJodHRwLWNsaSJ9XSwicmVhZGluZXNzUHJvYmUiOnsiaHR0cEdldCI6eyJwYXRoIjoiL3JlYWR5eiIsInBvcnQiOjg2ODd9fSwic2VjdXJpdHlDb250ZXh0Ijp7ImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6ZmFsc2UsImNhcGFiaWxpdGllcyI6eyJkcm9wIjpbIkFMTCJdfSwicmVhZE9ubHlSb290RmlsZXN5c3RlbSI6dHJ1ZSwicnVuQXNOb25Sb290Ijp0cnVlfSwidm9sdW1lTW91bnRzIjpbeyJtb3VudFBhdGgiOiIvY2xpLWFydGlmYWN0cyIsIm5hbWUiOiJjbGktYXJ0aWZhY3RzIn1dfV0sImluaXRDb250YWluZXJzIjpbeyJjb21tYW5kIjpbInNoIiwiLWMiLCJybSAtcmYgL2NsaS1hcnRpZmFjdHMvKiBcdTAwMjZcdTAwMjYgY3AgL3Vzci9zaGFyZS9rbi8qKi8qIC9jbGktYXJ0aWZhY3RzIFx1MDAyNlx1MDAyNiBjaG1vZCA0NDQgL2NsaS1hcnRpZmFjdHMvKiJdLCJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWNsaWVudC1jbGktYXJ0aWZhY3RzLXJoZWw4QHNoYTI1NjpiMzc2M2ZmMGQ5YmViZjhmZjVmZjI1NzBhOWZmZWFhZjRhZjZlNDFlNDFmNWFmNWY4MTA1MzlmZWUzMThhZDdiIiwiaW1hZ2VQdWxsUG9saWN5IjoiQWx3YXlzIiwibmFtZSI6ImNsaS1hcnRpZmFjdHMiLCJzZWN1cml0eUNvbnRleHQiOnsiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjpmYWxzZSwiY2FwYWJpbGl0aWVzIjp7ImRyb3AiOlsiQUxMIl19LCJydW5Bc05vblJvb3QiOnRydWV9LCJ2b2x1bWVNb3VudHMiOlt7Im1vdW50UGF0aCI6Ii9jbGktYXJ0aWZhY3RzIiwibmFtZSI6ImNsaS1hcnRpZmFjdHMifV19XSwic2VydmljZUFjY291bnROYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQiLCJ2b2x1bWVzIjpbeyJlbXB0eURpciI6e30sIm5hbWUiOiJjbGktYXJ0aWZhY3RzIn1dfX19fSx7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIiwic3BlYyI6eyJyZXBsaWNhcyI6MSwic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsibmFtZSI6ImtuYXRpdmUtb3BlbnNoaWZ0LWluZ3Jlc3MifX0sInRlbXBsYXRlIjp7Im1ldGFkYXRhIjp7ImxhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcyJ9fSwic3BlYyI6eyJjb250YWluZXJzIjpbeyJlbnYiOlt7Im5hbWUiOiJNRVRSSUNTX0RPTUFJTiIsInZhbHVlIjoia25hdGl2ZS5kZXYvc2VydmluZyJ9LHsibmFtZSI6IldBVENIX05BTUVTUEFDRSIsInZhbHVlIjoiIn0seyJuYW1lIjoiUE9EX05BTUUiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEubmFtZSJ9fX0seyJuYW1lIjoiT1BFUkFUT1JfTkFNRSIsInZhbHVlIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcyJ9LHsibmFtZSI6IlNZU1RFTV9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEubmFtZXNwYWNlIn19fSx7Im5hbWUiOiJLVUJFUk5FVEVTX01JTl9WRVJTSU9OIiwidmFsdWUiOiJ2MS4wLjAifSx7Im5hbWUiOiJST1VURV9IQVBST1hZX1RJTUVPVVQiLCJ2YWx1ZSI6IjYwMCJ9XSwiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9zZXJ2ZXJsZXNzLWluZ3Jlc3MtcmhlbDhAc2hhMjU2OjI5NjEzNTQ1YmYxNzU4YjY3OTc3NzkzOTYzYWIzNGZiMmY2ZDFmM2Q0ZjViNDE1OGFkNGM5MmFkZmVlMjBjNWEiLCJpbWFnZVB1bGxQb2xpY3kiOiJBbHdheXMiLCJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcyIsInBvcnRzIjpbeyJjb250YWluZXJQb3J0Ijo5MDkwLCJuYW1lIjoibWV0cmljcyJ9XSwic2VjdXJpdHlDb250ZXh0Ijp7ImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6ZmFsc2UsImNhcGFiaWxpdGllcyI6eyJkcm9wIjpbIkFMTCJdfSwicmVhZE9ubHlSb290RmlsZXN5c3RlbSI6dHJ1ZSwicnVuQXNOb25Sb290Ijp0cnVlfX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIn19fX1dfSwic3RyYXRlZ3kiOiJkZXBsb3ltZW50In0sImluc3RhbGxNb2RlcyI6W3sic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik93bk5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJBbGxOYW1lc3BhY2VzIn1dLCJrZXl3b3JkcyI6WyJzZXJ2ZXJsZXNzIiwiRmFhUyIsIm1pY3Jvc2VydmljZXMiLCJzY2FsZSB0byB6ZXJvIiwia25hdGl2ZSIsInNlcnZpbmciLCJldmVudGluZyIsImthZmthIl0sImxpbmtzIjpbeyJuYW1lIjoiRG9jdW1lbnRhdGlvbiIsInVybCI6Imh0dHBzOi8vZG9jcy5yZWRoYXQuY29tL2VuL2RvY3VtZW50YXRpb24vcmVkX2hhdF9vcGVuc2hpZnRfc2VydmVybGVzcy8xLjM2L2h0bWwvaW5zdGFsbGluZ19vcGVuc2hpZnRfc2VydmVybGVzcy9pbmRleCJ9LHsibmFtZSI6IlNvdXJjZSBSZXBvc2l0b3J5IiwidXJsIjoiaHR0cHM6Ly9naXRodWIuY29tL29wZW5zaGlmdC1rbmF0aXZlL3NlcnZlcmxlc3Mtb3BlcmF0b3IifV0sIm1haW50YWluZXJzIjpbeyJlbWFpbCI6InN1cHBvcnRAcmVkaGF0LmNvbSIsIm5hbWUiOiJTZXJ2ZXJsZXNzIFRlYW0ifV0sIm1hdHVyaXR5Ijoic3RhYmxlIiwibWluS3ViZVZlcnNpb24iOiIxLjI1LjAiLCJwcm92aWRlciI6eyJuYW1lIjoiUmVkIEhhdCJ9LCJyZWxhdGVkSW1hZ2VzIjpbeyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL3NlcnZlcmxlc3Mtb3BlbnNoaWZ0LWtuLXJoZWw4LW9wZXJhdG9yQHNoYTI1NjpmMWExMzcyNTU2N2RlMzU3ZGU0MjQ2Yjg3YTJlZDY0YjNkY2UwMmM3NDA2Yjg2MjFhZDhkMmJiZWFjYzBjY2ZhIiwibmFtZSI6ImtuYXRpdmUtb3BlcmF0b3IifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEvc2VydmVybGVzcy1rbi1vcGVyYXRvci1yaGVsOEBzaGEyNTY6YWJmOTc3OTA3MjZkYTEyOWZhYjRiNjJiOWJjN2IzYzRmMjI1YzFmYjY4NTUwMzU5YmU0NGEwMTFlNjBkNTRmMyIsIm5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdCJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9zZXJ2ZXJsZXNzLWluZ3Jlc3MtcmhlbDhAc2hhMjU2OjI5NjEzNTQ1YmYxNzU4YjY3OTc3NzkzOTYzYWIzNGZiMmY2ZDFmM2Q0ZjViNDE1OGFkNGM5MmFkZmVlMjBjNWEiLCJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcyJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLXF1ZXVlLXJoZWw4QHNoYTI1NjozMTMzYzE3N2ZjYmZkNGFiYjg5YjI3M2E3Y2UyZmIyMjBlMDUxY2U5NTYxOTNiMWQxNDljN2EwNDBmYzA3ZTgzIiwibmFtZSI6IklNQUdFX3F1ZXVlLXByb3h5In0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctYWN0aXZhdG9yLXJoZWw4QHNoYTI1NjowNDJjZTFlN2JlMTBhNWY1MWY5NDg3YWYwMTk2Y2IyNDlmNWQ4ZTY4MjFjZTdjMmFiMDVjNTMyYjdhMTg0MzhjIiwibmFtZSI6IklNQUdFX2FjdGl2YXRvciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLWF1dG9zY2FsZXItcmhlbDhAc2hhMjU2OjBiNjlmYzgzOWY1NjUxYmZmZmNiZjg2MzY2Zjk0ZGEwZWMzZTI5ZTZjMjE3YTI2ZmZjZTdiZDc2ZmJkYTA5MzkiLCJuYW1lIjoiSU1BR0VfYXV0b3NjYWxlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1zZXJ2aW5nLWF1dG9zY2FsZXItaHBhLXJoZWw4QHNoYTI1Njo0ZmEwY2U3YWMxMzUxYWE0Y2JlODU4NDcyYmY5Zjk1Mzk0Mjk2MWE1NDMwZjg1YmU1NjU2ZjI5NTA4ZDI1NGRiIiwibmFtZSI6IklNQUdFX2F1dG9zY2FsZXItaHBhIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctY29udHJvbGxlci1yaGVsOEBzaGEyNTY6NTBhNjJiZjY0MWExMjRkYmEzNzI2MmRhMWU4MmVmMTRlNmI2Y2NiNGM4NTczZmE1MzdjMTlkM2IxYjc3YTYyNyIsIm5hbWUiOiJJTUFHRV9jb250cm9sbGVyX19jb250cm9sbGVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctd2ViaG9vay1yaGVsOEBzaGEyNTY6ZGU0NWE2MGJjNDVlMWI2N2M2Zjg4ZWIxYzg4NWJkYTEyY2MxMzYzMzZkYzVmYjJlMGI4Y2JmNjNhYTYyYTZiZiIsIm5hbWUiOiJJTUFHRV93ZWJob29rX193ZWJob29rIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLXNlcnZpbmctc3RvcmFnZS12ZXJzaW9uLW1pZ3JhdGlvbi1yaGVsOEBzaGEyNTY6ZmJlNDYyNjk1YjNlNzAzZDQ3MjIyNzdhNjE3YzZlZjA2ZmIzN2MwNzM2NmJhNWM2MjExZGQ1NmI1MDM4YzEzMCIsIm5hbWUiOiJJTUFHRV9zdG9yYWdlLXZlcnNpb24tbWlncmF0aW9uLXNlcnZpbmctX19taWdyYXRlIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmljZS1tZXNoL3Byb3h5djItcmhlbDhAc2hhMjU2OjFjMTljZjg2ZmQwNTk0MGVmM2QwZDZlNzllNmYzNzFkYjk5MzE1M2Y3MGJhZWRiOTEwN2JiZTczZjIzNmRjMjQiLCJuYW1lIjoiSU1BR0Vfa291cmllci1nYXRld2F5In0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL25ldC1rb3VyaWVyLWtvdXJpZXItcmhlbDhAc2hhMjU2OjkwZTMyMmUzMzA0MjIyMTk5ZWZjOWJmYTI1NDUyNTBkZGUyYjIyNDAzNjY2YzVlMDAzNzJiZGFlYWExOGRkZWUiLCJuYW1lIjoiSU1BR0VfbmV0LWtvdXJpZXItY29udHJvbGxlcl9fY29udHJvbGxlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9uZXQtaXN0aW8tY29udHJvbGxlci1yaGVsOEBzaGEyNTY6NzY1NWVjOTVlNTgyOWQzZDc4NjAzOWNjNmM2OTBjOWZiNDQyZGM4NWYxYzg4NDgxY2YzNGY5YTZmMTY4NDAzOSIsIm5hbWUiOiJJTUFHRV9uZXQtaXN0aW8tY29udHJvbGxlcl9fY29udHJvbGxlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9uZXQtaXN0aW8td2ViaG9vay1yaGVsOEBzaGEyNTY6ZmE4ZWJiNzBiNmYxNTEwYzU1YTAzYmFlYzk5ZDM0OTdkNmFmYjkzMDE1MmZmMzczMWZlNTcyMTE2NzVhYWRjMCIsIm5hbWUiOiJJTUFHRV9uZXQtaXN0aW8td2ViaG9va19fd2ViaG9vayJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1jb250cm9sbGVyLXJoZWw4QHNoYTI1Njo4MDQzMDFkMzE1YzhkNjk1OGQxMjhmZDU5NTExODQ0MzdmNzU1Njc0ZDhlYzVhNDU4MmQ2MTI4ZTk4OWI5NjZhIiwibmFtZSI6IklNQUdFX2V2ZW50aW5nLWNvbnRyb2xsZXJfX2V2ZW50aW5nLWNvbnRyb2xsZXIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaXN0aW8tY29udHJvbGxlci1yaGVsOEBzaGEyNTY6MjBhZTJkYTFlOGQ4MmQzMTllMjU2YzZjODEyOTllZjg0MmNhMzRkNTdjNjk2NGQ2MWUwMGEyNzVhNDExNTliNCIsIm5hbWUiOiJJTUFHRV9ldmVudGluZy1pc3Rpby1jb250cm9sbGVyX19ldmVudGluZy1pc3Rpby1jb250cm9sbGVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLXdlYmhvb2stcmhlbDhAc2hhMjU2OmNhOGE2MTkzNDI1ZjRiMjc1MGQ1OGQ2YjFkYTQyMTI0NGFhMDc3YTQ0YTM0YjQxODRlMzViOWQ5NGM5NDMzZmIiLCJuYW1lIjoiSU1BR0VfZXZlbnRpbmctd2ViaG9va19fZXZlbnRpbmctd2ViaG9vayJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1taWdyYXRlLXJoZWw4QHNoYTI1Njo2NGZiNGIwYjE4ZjRiOGU5YmQ4NjQ3MGNhMzZmMmY0MTg3MTExZWQ0NGI2Y2NlNWQxNmQzYTQzNDQzYzAwNDg5IiwibmFtZSI6IklNQUdFX3N0b3JhZ2UtdmVyc2lvbi1taWdyYXRpb24tZXZlbnRpbmctX19taWdyYXRlIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW10Y2hhbm5lbC1icm9rZXItcmhlbDhAc2hhMjU2OmVkYzE5ZTMxMTk0NzA1M2RiY2ViMjFkNTIyNWFkNTJhNDhmNjFlYjNjMDc5ZTBmOTJmOTdiYTMxMWJiMTIxZjciLCJuYW1lIjoiSU1BR0VfbXQtYnJva2VyLWNvbnRyb2xsZXJfX210LWJyb2tlci1jb250cm9sbGVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWZpbHRlci1yaGVsOEBzaGEyNTY6NjA1ZjhhYjQ4ZTc2MWY4OGRlNDNiNGFhYzQzOWQ2NTc2ZmVkNDZkNmQ5NjU5YTdjYjdkMGMzZDJkODdjYTU1YSIsIm5hbWUiOiJJTUFHRV9tdC1icm9rZXItZmlsdGVyX19maWx0ZXIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW5ncmVzcy1yaGVsOEBzaGEyNTY6NjI1NDhlOTRlY2Y1MmNkNTBiM2RmN2ZjMmNiMjc1Y2UzMWYxODAzN2NkMjgzYjkwYjc5ODdlYjhmMzhmMWRjNiIsIm5hbWUiOiJJTUFHRV9tdC1icm9rZXItaW5ncmVzc19faW5ncmVzcyJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1jaGFubmVsLWNvbnRyb2xsZXItcmhlbDhAc2hhMjU2OmRjNWUxODA3NDkxM2NlZTA0NWZlYjViMTMxODkwOGI3MTY2ZWE3MzViMzMyMjNlY2M4OTQzYTA5ZDA4NTNkNDMiLCJuYW1lIjoiSU1BR0VfaW1jLWNvbnRyb2xsZXJfX2NvbnRyb2xsZXIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctY2hhbm5lbC1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1Njo1M2E2YTVkZmIzOWY4MzM4OWIxMDM4OTQ4OGY0ZDdhYmE2YTUzNDJmNDExZmY3ZWZhNDFiYWIzMGQ4OWQ5NjQ2IiwibmFtZSI6IklNQUdFX2ltYy1kaXNwYXRjaGVyX19kaXNwYXRjaGVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLW10cGluZy1yaGVsOEBzaGEyNTY6NGU2MzNmNjhhM2MzNmYxZDk5ZWY5MTRhMWE3Mjk2YWViNmZlNTVkOTY5ZmQ0OGRlOTE2YTI3MmI1OTcxYzdlNiIsIm5hbWUiOiJJTUFHRV9waW5nc291cmNlLW10LWFkYXB0ZXJfX2Rpc3BhdGNoZXIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctam9ic2luay1yaGVsOEBzaGEyNTY6Y2ZkYmQ2OGI3OGU5NDc1OTBlNjMzYjY2ODBkN2I4NWNmZDM5NGVhNDIyODdkM2RmYzgxYjc4MjNhM2FiNjZiZCIsIm5hbWUiOiJJTUFHRV9qb2Itc2lua19fam9iLXNpbmsifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctYXBpc2VydmVyLXJlY2VpdmUtYWRhcHRlci1yaGVsOEBzaGEyNTY6YzkwNmNkNGExYzQyMzg5YzdlNGIzOGRiNTc4NThmYWMyMjUwYjYzNTdlZmYwZGEwNDhlOGM2YWNkYjk1YmE5MyIsIm5hbWUiOiJJTUFHRV9BUElTRVJWRVJfUkFfSU1BR0UifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctY2hhbm5lbC1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1Njo1M2E2YTVkZmIzOWY4MzM4OWIxMDM4OTQ4OGY0ZDdhYmE2YTUzNDJmNDExZmY3ZWZhNDFiYWIzMGQ4OWQ5NjQ2IiwibmFtZSI6IklNQUdFX0RJU1BBVENIRVJfSU1BR0UifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW50ZWdyYXRpb25zLXRyYW5zZm9ybS1qc29uYXRhLXJoZWw4QHNoYTI1NjowYjYxOGM5Yzg5MjQyOGE1OWUwNDk5YTNlZDBlYmVmYTJjMDk4MTY5OTgxNzQzMzE1OWJmY2FmNjgzNzQzNTk3IiwibmFtZSI6IklNQUdFX0VWRU5UX1RSQU5TRk9STV9KU09OQVRBX0lNQUdFIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy10aW1lci1zb3VyY2UtcmhlbDhAc2hhMjU2OjhlYzUxZjgwOTE5NjM4NGY5YjgzZWY1Nzg5YjEyYjYzNTg3NzJhNzYxYTcwNTUxMjlkYTU3MjI1NDM4MWVlZWYiLCJuYW1lIjoiSU1BR0VfSU5URUdSQVRJT05fU09VUkNFX1RJTUVSX0lNQUdFIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3MtczMtc291cmNlLXJoZWw4QHNoYTI1NjplZTM4YjY4ZTk4YmY5YWRiOTQ1NTRmZDRiM2EzYWVjM2I1MzNjYjQwN2RkMGUwYWZjYTdmMzdlMTBkNjU1M2Q5IiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfUzNfSU1BR0UifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW50ZWdyYXRpb25zLWF3cy1zcXMtc291cmNlLXJoZWw4QHNoYTI1Njo4NmU1NTk4NmI5NDk5ZTBhOWNjYmVmNTlhMmZiODVkZTM2NjNmZTg2ODk3ZDI1ZGJhNTQxMDFlOTEwMWIxYjkxIiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfU1FTX0lNQUdFIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3MtZGRiLXN0cmVhbXMtc291cmNlLXJoZWw4QHNoYTI1Njo2YWRhNDZmNjU1ZTEzZGI2ZThmZGVkNGRiN2VjMzA4MTIzY2Y4MzA3YzFlZjE3MWI3ZWI3ZWNhMjY0ZWUyYzI3IiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NPVVJDRV9BV1NfRERCX1NUUkVBTVNfSU1BR0UifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZXZlbnRpbmctaW50ZWdyYXRpb25zLWxvZy1zaW5rLXJoZWw4QHNoYTI1NjplMGYwYjlmN2Q4Y2VkOTc5MTk4NDRiYjRjMzQyY2U4OWM1ZmYyMmM2Y2M3NjRkNjJmNjgwZDBmM2ViYTMxOWIxIiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NJTktfTE9HX0lNQUdFIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWV2ZW50aW5nLWludGVncmF0aW9ucy1hd3MtczMtc2luay1yaGVsOEBzaGEyNTY6OTRkNTg5MDBjYjYyZDY0Mzc5ZjNiOWIyN2NmN2Y2OTE3M2Q0MGIxMTViNmQ4NDNiOWU4MzgzOWEwMDgwYTBhMSIsIm5hbWUiOiJJTUFHRV9JTlRFR1JBVElPTl9TSU5LX0FXU19TM19JTUFHRSJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXNxcy1zaW5rLXJoZWw4QHNoYTI1NjpmOTcyNTdmMGFmNTM3ZmZlZDFmZjZmZDBiYjBhOGRiNThiNWI2YTQ0NTU5ZDAxMzZjYzVmMTM0ZThmZjM0ZjJhIiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NJTktfQVdTX1NRU19JTUFHRSJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1pbnRlZ3JhdGlvbnMtYXdzLXNucy1zaW5rLXJoZWw4QHNoYTI1NjozMWFlNjY3YTQ3MzcwZTEwNzM4NGQxMjUzYzdmZTBiNzA4NDQzZjlmOTkxMjEwZGVkMTY3NTkxYjRlNjljZWY1IiwibmFtZSI6IklNQUdFX0lOVEVHUkFUSU9OX1NJTktfQVdTX1NOU19JTUFHRSJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1iYWNrc3RhZ2UtcGx1Z2lucy1ldmVudG1lc2gtcmhlbDhAc2hhMjU2OjNiYzM0ODY3ZjdhNjIwYmNkYWNlNjdlNjVhMGZmYjUxYWVhZDVlNGFhMWYxMGNkMGViNzQ3NmZlOGVkMWFmMTIiLCJuYW1lIjoiSU1BR0VfZXZlbnRtZXNoLWJhY2tlbmRfX2NvbnRyb2xsZXIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdDQvb3NlLWt1YmUtcmJhYy1wcm94eS1yaGVsOUBzaGEyNTY6Njc2NTFhZGZkOGU2YzhkMTJkMmI5NTg1YzcyM2Q1ZmJkYjY2NDgxOGY4MDMzMTJiZmUzNTIyZTA0YTgxZTliMCIsIm5hbWUiOiJJTUFHRV9LVUJFX1JCQUNfUFJPWFkifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tcGx1Z2luLWV2ZW50LXNlbmRlci1yaGVsOEBzaGEyNTY6Zjc3OTUwODg3NzdlYTg0ZmM2MTgwYjgxYjYxMzE5NjI5NDRlMzQ5MThlMmMwNjY3MTAzM2ExYTU3MjU4MTc3MyIsIm5hbWUiOiJJTUFHRV9LTl9QTFVHSU5fRVZFTlRfU0VOREVSIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWNsaWVudC1rbi1yaGVsOEBzaGEyNTY6NzFhYTA5Yjk4ZDkxMDA2YmUyYTgxYWMwMzNmNzJkZjcyNTZhOTM4OTAyMzYxMzA4YjhlYjM2ZWExOTg2OThjMyIsIm5hbWUiOiJJTUFHRV9LTl9DTElFTlQifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tcGx1Z2luLWZ1bmMtZnVuYy11dGlsLXJoZWw4QHNoYTI1Njo1OTgxMTBlOWI5MWMzOThlNmY3ZWE2MjE1YTY5Zjk1NjIzMzc5NjhhMDI0ZGVkOGUwZjE5NzM2YzVmYjUzNDU3IiwibmFtZSI6IklNQUdFX0tOX1BMVUdJTl9GVU5DX1VUSUwifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL3JoZWw4L2J1aWxkYWhAc2hhMjU2OjNkNTA1ZDljMGY1ZDRjZDVhNGVjMDNiOGQwMzg2NTZjNmNkYmRmNTE5MWUwMGNlNjM4OGY3ZTBlNGQyZjFiNzQiLCJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfVEVLVE9OX0JVSUxEQUgifSx7ImltYWdlIjoicmVnaXN0cnkuYWNjZXNzLnJlZGhhdC5jb20vdWJpOC9ub2RlanMtMjAtbWluaW1hbEBzaGEyNTY6YTJhN2UzOTlhYWYwOWE0OGMyOGY0MDgyMGRhMTY3MDliNjJhZWU2ZjJiYzcwMzExNmI5MzQ1ZmFiNTgzMDg2MSIsIm5hbWUiOiJJTUFHRV9LTl9QTFVHSU5fRlVOQ19OT0RFSlNfMjBfTUlOSU1BTCJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5hY2Nlc3MucmVkaGF0LmNvbS91Ymk4L29wZW5qZGstMjFAc2hhMjU2OjQ0MTg5N2ExZjY5MWM3ZDRiM2E2N2JiM2UwZmVhODNlMTgzNTIyMTQyNjRjYjM4M2ZkMDU3YmJiZDVlZDg2M2MiLCJuYW1lIjoiSU1BR0VfS05fUExVR0lOX0ZVTkNfT1BFTkpES18yMSJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5hY2Nlc3MucmVkaGF0LmNvbS91Ymk4L3B5dGhvbi0zOUBzaGEyNTY6MjdlNzk1ZmQ2YjFiNzdkZTcwZDFkYzczYTY1ZTRjNzkwNjUwNzQ4YTljZmRhMTM4ZmRiZDE5NGIzZDZlZWEzZCIsIm5hbWUiOiJJTUFHRV9LTl9QTFVHSU5fRlVOQ19QWVRIT05fMzkifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tZWtiLXJlY2VpdmVyLXJoZWw4QHNoYTI1Njo5MWIzMzY3OGM1M2NkYTMxZTYzMDk0MGMxNzFmYTdkNTkwZjA4OGI3ODM2YzM5ZDk3MTJmMGY2ZjI4NWI5ZjViIiwibmFtZSI6IktBRktBX0lNQUdFX2thZmthLWJyb2tlci1yZWNlaXZlcl9fa2Fma2EtYnJva2VyLXJlY2VpdmVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1NjowYTA2OGFkZDRmMjVkYzJmOTU4MjRjYTVkMTUxZjlmOGEwNzZmNjkwMDY2MDg3ODQxNTYzZDMxMDk0YTdmZjVhIiwibmFtZSI6IktBRktBX0lNQUdFX2thZmthLWJyb2tlci1kaXNwYXRjaGVyX19rYWZrYS1icm9rZXItZGlzcGF0Y2hlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2ItcmVjZWl2ZXItcmhlbDhAc2hhMjU2OjkxYjMzNjc4YzUzY2RhMzFlNjMwOTQwYzE3MWZhN2Q1OTBmMDg4Yjc4MzZjMzlkOTcxMmYwZjZmMjg1YjlmNWIiLCJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2EtY2hhbm5lbC1yZWNlaXZlcl9fa2Fma2EtY2hhbm5lbC1yZWNlaXZlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2ItZGlzcGF0Y2hlci1yaGVsOEBzaGEyNTY6MGEwNjhhZGQ0ZjI1ZGMyZjk1ODI0Y2E1ZDE1MWY5ZjhhMDc2ZjY5MDA2NjA4Nzg0MTU2M2QzMTA5NGE3ZmY1YSIsIm5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1jaGFubmVsLWRpc3BhdGNoZXJfX2thZmthLWNoYW5uZWwtZGlzcGF0Y2hlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2Ita2Fma2EtY29udHJvbGxlci1yaGVsOEBzaGEyNTY6NzQ1ZjEwNzM4NTg3NjE1MWNlYTdkNmExOTIzZGYxMjg2NjRkNzA5YTNiYzI0NDU5OGUwNDQ5ODJiMTIyNGY3OSIsIm5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1jb250cm9sbGVyX19jb250cm9sbGVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1yZWNlaXZlci1yaGVsOEBzaGEyNTY6OTFiMzM2NzhjNTNjZGEzMWU2MzA5NDBjMTcxZmE3ZDU5MGYwODhiNzgzNmMzOWQ5NzEyZjBmNmYyODViOWY1YiIsIm5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS1zaW5rLXJlY2VpdmVyX19rYWZrYS1zaW5rLXJlY2VpdmVyIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1kaXNwYXRjaGVyLXJoZWw4QHNoYTI1NjowYTA2OGFkZDRmMjVkYzJmOTU4MjRjYTVkMTUxZjlmOGEwNzZmNjkwMDY2MDg3ODQxNTYzZDMxMDk0YTdmZjVhIiwibmFtZSI6IktBRktBX0lNQUdFX2thZmthLXNvdXJjZS1kaXNwYXRjaGVyX19rYWZrYS1zb3VyY2UtZGlzcGF0Y2hlciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1la2Itd2ViaG9vay1rYWZrYS1yaGVsOEBzaGEyNTY6MjEyMDRkMDhmYjlkYThjNDVkMDU3ZTNhYmE2ZTRjZmE3ZTc1YzBlZmViZmVjNDAyOWJlNzU3NTBhNTEwOTYxYiIsIm5hbWUiOiJLQUZLQV9JTUFHRV9rYWZrYS13ZWJob29rLWV2ZW50aW5nX19rYWZrYS13ZWJob29rLWV2ZW50aW5nIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL2tuLWVrYi1wb3N0LWluc3RhbGwtcmhlbDhAc2hhMjU2OmYxOWUwMTc2Y2RkYWUwMTdkYTAzZWI0MGUyYzJhYWQ2MDc2ZmQzMDZiYjhhYWFiOGY5Yjc5M2FkZGE4NGQwMDIiLCJuYW1lIjoiS0FGS0FfSU1BR0Vfa2Fma2EtY29udHJvbGxlci1wb3N0LWluc3RhbGxfX3Bvc3QtaW5zdGFsbCJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0LXNlcnZlcmxlc3MtMS9rbi1ldmVudGluZy1taWdyYXRlLXJoZWw4QHNoYTI1Njo2NGZiNGIwYjE4ZjRiOGU5YmQ4NjQ3MGNhMzZmMmY0MTg3MTExZWQ0NGI2Y2NlNWQxNmQzYTQzNDQzYzAwNDg5IiwibmFtZSI6IktBRktBX0lNQUdFX2tuYXRpdmUta2Fma2Etc3RvcmFnZS12ZXJzaW9uLW1pZ3JhdG9yX19taWdyYXRlIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQtc2VydmVybGVzcy0xL3NlcnZlcmxlc3MtbXVzdC1nYXRoZXItcmhlbDhAc2hhMjU2OjU4ZjNlMTgwNmZlY2RiNGQwMzA2NDZjY2VmZDFhMTQ3YmZmZWYyMWVlZTEyMzM0ODdjY2RhYjMzMGU4ZDRlMWQiLCJuYW1lIjoiSU1BR0VfTVVTVF9HQVRIRVIifSx7ImltYWdlIjoicmVnaXN0cnkucmVkaGF0LmlvL29wZW5zaGlmdC1zZXJ2ZXJsZXNzLTEva24tY2xpZW50LWNsaS1hcnRpZmFjdHMtcmhlbDhAc2hhMjU2OmIzNzYzZmYwZDliZWJmOGZmNWZmMjU3MGE5ZmZlYWFmNGFmNmU0MWU0MWY1YWY1ZjgxMDUzOWZlZTMxOGFkN2IiLCJuYW1lIjoiSU1BR0VfS05fQ0xJRU5UX0NMSV9BUlRJRkFDVFMifV0sInJlcGxhY2VzIjoic2VydmVybGVzcy1vcGVyYXRvci52MS4zNi4wIiwidmVyc2lvbiI6IjEuMzYuMSIsIndlYmhvb2tkZWZpbml0aW9ucyI6W3siYWRtaXNzaW9uUmV2aWV3VmVyc2lvbnMiOlsidjFiZXRhMSJdLCJjb250YWluZXJQb3J0Ijo5ODc2LCJkZXBsb3ltZW50TmFtZSI6ImtuYXRpdmUtb3BlbnNoaWZ0IiwiZmFpbHVyZVBvbGljeSI6Iklnbm9yZSIsImdlbmVyYXRlTmFtZSI6InZhbGlkYXRpbmcua25hdGl2ZWV2ZW50aW5ncy5vcGVyYXRvci5zZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pbyIsInJ1bGVzIjpbeyJhcGlHcm91cHMiOlsib3BlcmF0b3Iua25hdGl2ZS5kZXYiXSwiYXBpVmVyc2lvbnMiOlsidjFiZXRhMSJdLCJvcGVyYXRpb25zIjpbIkNSRUFURSIsIlVQREFURSJdLCJyZXNvdXJjZXMiOlsia25hdGl2ZWV2ZW50aW5ncyJdfV0sInNpZGVFZmZlY3RzIjoiTm9uZSIsInR5cGUiOiJWYWxpZGF0aW5nQWRtaXNzaW9uV2ViaG9vayIsIndlYmhvb2tQYXRoIjoiL3ZhbGlkYXRlLWtuYXRpdmVldmVudGluZ3MifSx7ImFkbWlzc2lvblJldmlld1ZlcnNpb25zIjpbInYxYmV0YTEiXSwiY29udGFpbmVyUG9ydCI6OTg3NiwiZGVwbG95bWVudE5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdCIsImZhaWx1cmVQb2xpY3kiOiJJZ25vcmUiLCJnZW5lcmF0ZU5hbWUiOiJ2YWxpZGF0aW5nLmtuYXRpdmVzZXJ2aW5ncy5vcGVyYXRvci5zZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pbyIsInJ1bGVzIjpbeyJhcGlHcm91cHMiOlsib3BlcmF0b3Iua25hdGl2ZS5kZXYiXSwiYXBpVmVyc2lvbnMiOlsidjFiZXRhMSJdLCJvcGVyYXRpb25zIjpbIkNSRUFURSIsIlVQREFURSJdLCJyZXNvdXJjZXMiOlsia25hdGl2ZXNlcnZpbmdzIl19XSwic2lkZUVmZmVjdHMiOiJOb25lIiwidHlwZSI6IlZhbGlkYXRpbmdBZG1pc3Npb25XZWJob29rIiwid2ViaG9va1BhdGgiOiIvdmFsaWRhdGUta25hdGl2ZXNlcnZpbmdzIn0seyJhZG1pc3Npb25SZXZpZXdWZXJzaW9ucyI6WyJ2MWJldGExIl0sImNvbnRhaW5lclBvcnQiOjk4NzYsImRlcGxveW1lbnROYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQiLCJmYWlsdXJlUG9saWN5IjoiSWdub3JlIiwiZ2VuZXJhdGVOYW1lIjoidmFsaWRhdGluZy5rbmF0aXZla2Fma2FzLm9wZXJhdG9yLnNlcnZlcmxlc3Mub3BlbnNoaWZ0LmlvIiwicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJvcGVyYXRvci5zZXJ2ZXJsZXNzLm9wZW5zaGlmdC5pbyJdLCJhcGlWZXJzaW9ucyI6WyJ2MWFscGhhMSJdLCJvcGVyYXRpb25zIjpbIkNSRUFURSIsIlVQREFURSJdLCJyZXNvdXJjZXMiOlsia25hdGl2ZWthZmthcyJdfV0sInNpZGVFZmZlY3RzIjoiTm9uZSIsInR5cGUiOiJWYWxpZGF0aW5nQWRtaXNzaW9uV2ViaG9vayIsIndlYmhvb2tQYXRoIjoiL3ZhbGlkYXRlLWtuYXRpdmVrYWZrYXMifSx7ImFkbWlzc2lvblJldmlld1ZlcnNpb25zIjpbInYxYmV0YTEiXSwiY29udGFpbmVyUG9ydCI6OTg3NiwiZGVwbG95bWVudE5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdCIsImZhaWx1cmVQb2xpY3kiOiJJZ25vcmUiLCJnZW5lcmF0ZU5hbWUiOiJtdXRhdGluZy5rbmF0aXZlZXZlbnRpbmdzLm9wZXJhdG9yLnNlcnZlcmxlc3Mub3BlbnNoaWZ0LmlvIiwicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJvcGVyYXRvci5rbmF0aXZlLmRldiJdLCJhcGlWZXJzaW9ucyI6WyJ2MWJldGExIl0sIm9wZXJhdGlvbnMiOlsiQ1JFQVRFIiwiVVBEQVRFIl0sInJlc291cmNlcyI6WyJrbmF0aXZlZXZlbnRpbmdzIl19XSwic2lkZUVmZmVjdHMiOiJOb25lIiwidHlwZSI6Ik11dGF0aW5nQWRtaXNzaW9uV2ViaG9vayIsIndlYmhvb2tQYXRoIjoiL211dGF0ZS1rbmF0aXZlZXZlbnRpbmdzIn0seyJhZG1pc3Npb25SZXZpZXdWZXJzaW9ucyI6WyJ2MWJldGExIl0sImNvbnRhaW5lclBvcnQiOjk4NzYsImRlcGxveW1lbnROYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQiLCJmYWlsdXJlUG9saWN5IjoiSWdub3JlIiwiZ2VuZXJhdGVOYW1lIjoibXV0YXRpbmcua25hdGl2ZXNlcnZpbmdzLm9wZXJhdG9yLnNlcnZlcmxlc3Mub3BlbnNoaWZ0LmlvIiwicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJvcGVyYXRvci5rbmF0aXZlLmRldiJdLCJhcGlWZXJzaW9ucyI6WyJ2MWJldGExIl0sIm9wZXJhdGlvbnMiOlsiQ1JFQVRFIiwiVVBEQVRFIl0sInJlc291cmNlcyI6WyJrbmF0aXZlc2VydmluZ3MiXX1dLCJzaWRlRWZmZWN0cyI6Ik5vbmUiLCJ0eXBlIjoiTXV0YXRpbmdBZG1pc3Npb25XZWJob29rIiwid2ViaG9va1BhdGgiOiIvbXV0YXRlLWtuYXRpdmVzZXJ2aW5ncyJ9LHsiYWRtaXNzaW9uUmV2aWV3VmVyc2lvbnMiOlsidjFiZXRhMSJdLCJjb250YWluZXJQb3J0Ijo4NDQzLCJjb252ZXJzaW9uQ1JEcyI6WyJrbmF0aXZlc2VydmluZ3Mub3BlcmF0b3Iua25hdGl2ZS5kZXYiXSwiZGVwbG95bWVudE5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yLXdlYmhvb2siLCJnZW5lcmF0ZU5hbWUiOiJjb252ZXJzaW9uLmtuYXRpdmVzZXJ2aW5ncy5vcGVyYXRvci5rbmF0aXZlLmRldiIsInNpZGVFZmZlY3RzIjoiTm9uZSIsInRhcmdldFBvcnQiOjg0NDMsInR5cGUiOiJDb252ZXJzaW9uV2ViaG9vayIsIndlYmhvb2tQYXRoIjoiL3Jlc291cmNlLWNvbnZlcnNpb24ifSx7ImFkbWlzc2lvblJldmlld1ZlcnNpb25zIjpbInYxYmV0YTEiXSwiY29udGFpbmVyUG9ydCI6ODQ0MywiY29udmVyc2lvbkNSRHMiOlsia25hdGl2ZWV2ZW50aW5ncy5vcGVyYXRvci5rbmF0aXZlLmRldiJdLCJkZXBsb3ltZW50TmFtZSI6ImtuYXRpdmUtb3BlcmF0b3Itd2ViaG9vayIsImdlbmVyYXRlTmFtZSI6ImNvbnZlcnNpb24ua25hdGl2ZWV2ZW50aW5ncy5vcGVyYXRvci5rbmF0aXZlLmRldiIsInNpZGVFZmZlY3RzIjoiTm9uZSIsInRhcmdldFBvcnQiOjg0NDMsInR5cGUiOiJDb252ZXJzaW9uV2ViaG9vayIsIndlYmhvb2tQYXRoIjoiL3Jlc291cmNlLWNvbnZlcnNpb24ifV19fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoibW9uaXRvcmluZy5jb3Jlb3MuY29tL3YxIiwia2luZCI6IlNlcnZpY2VNb25pdG9yIiwibWV0YWRhdGEiOnsibGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIn0sIm5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzLW1ldHJpY3MifSwic3BlYyI6eyJlbmRwb2ludHMiOlt7InBvcnQiOiJtZXRyaWNzIn1dLCJuYW1lc3BhY2VTZWxlY3RvciI6e30sInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIn19fX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoibW9uaXRvcmluZy5jb3Jlb3MuY29tL3YxIiwia2luZCI6IlNlcnZpY2VNb25pdG9yIiwibWV0YWRhdGEiOnsibGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdCJ9LCJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtbWV0cmljcy0zIn0sInNwZWMiOnsiZW5kcG9pbnRzIjpbeyJwb3J0IjoiaHR0cC1tZXRyaWNzIn1dLCJuYW1lc3BhY2VTZWxlY3RvciI6e30sInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdCJ9fX19 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoibW9uaXRvcmluZy5jb3Jlb3MuY29tL3YxIiwia2luZCI6IlNlcnZpY2VNb25pdG9yIiwibWV0YWRhdGEiOnsibGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIn0sIm5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yLW1ldHJpY3MifSwic3BlYyI6eyJlbmRwb2ludHMiOlt7InBvcnQiOiJtZXRyaWNzIn1dLCJuYW1lc3BhY2VTZWxlY3RvciI6e30sInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7Im5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIn19fX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJkYXRhIjp7Im1ldHJpY3MuYmFja2VuZC1kZXN0aW5hdGlvbiI6InByb21ldGhldXMifSwia2luZCI6IkNvbmZpZ01hcCIsIm1ldGFkYXRhIjp7Im5hbWUiOiJjb25maWctb2JzZXJ2YWJpbGl0eSJ9fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJraW5kIjoiU2VydmljZSIsIm1ldGFkYXRhIjp7ImxhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQifSwibmFtZSI6ImtuYXRpdmUtb3BlbnNoaWZ0LW1ldHJpY3MtMyJ9LCJzcGVjIjp7InBvcnRzIjpbeyJuYW1lIjoiaHR0cC1jbGkiLCJwb3J0Ijo4MDgwLCJwcm90b2NvbCI6IlRDUCIsInRhcmdldFBvcnQiOiJodHRwLWNsaSJ9LHsibmFtZSI6Imh0dHAtbWV0cmljcyIsInBvcnQiOjgzODMsInByb3RvY29sIjoiVENQIiwidGFyZ2V0UG9ydCI6ODM4M31dLCJzZWxlY3RvciI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQifSwidHlwZSI6IkNsdXN0ZXJJUCJ9fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJraW5kIjoiU2VydmljZSIsIm1ldGFkYXRhIjp7ImxhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcyJ9LCJuYW1lIjoia25hdGl2ZS1vcGVuc2hpZnQtaW5ncmVzcy1tZXRyaWNzIn0sInNwZWMiOnsicG9ydHMiOlt7Im5hbWUiOiJtZXRyaWNzIiwicG9ydCI6OTA5MCwicHJvdG9jb2wiOiJUQ1AiLCJ0YXJnZXRQb3J0Ijo5MDkwfV0sInNlbGVjdG9yIjp7Im5hbWUiOiJrbmF0aXZlLW9wZW5zaGlmdC1pbmdyZXNzIn0sInR5cGUiOiJDbHVzdGVySVAifX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJraW5kIjoiU2VydmljZSIsIm1ldGFkYXRhIjp7ImxhYmVscyI6eyJuYW1lIjoia25hdGl2ZS1vcGVyYXRvciJ9LCJuYW1lIjoia25hdGl2ZS1vcGVyYXRvci1tZXRyaWNzIn0sInNwZWMiOnsicG9ydHMiOlt7Im5hbWUiOiJtZXRyaWNzIiwicG9ydCI6OTA5MCwicHJvdG9jb2wiOiJUQ1AiLCJ0YXJnZXRQb3J0Ijo5MDkwfV0sInNlbGVjdG9yIjp7Im5hbWUiOiJrbmF0aXZlLW9wZXJhdG9yIn0sInR5cGUiOiJDbHVzdGVySVAifX0= +relatedImages: +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3 + name: "" +- image: registry.access.redhat.com/ubi8/nodejs-20-minimal@sha256:a2a7e399aaf09a48c28f40820da16709b62aee6f2bc703116b9345fab5830861 + name: IMAGE_KN_PLUGIN_FUNC_NODEJS_20_MINIMAL +- image: registry.access.redhat.com/ubi8/openjdk-21@sha256:441897a1f691c7d4b3a67bb3e0fea83e18352214264cb383fd057bbbd5ed863c + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_21 +- image: registry.access.redhat.com/ubi8/python-39@sha256:27e795fd6b1b77de70d1dc73a65e4c790650748a9cfda138fdbd194b3d6eea3d + name: IMAGE_KN_PLUGIN_FUNC_PYTHON_39 +- image: registry.redhat.io/openshift-serverless-1/kn-backstage-plugins-eventmesh-rhel8@sha256:3bc34867f7a620bcdace67e65a0ffb51aead5e4aa1f10cd0eb7476fe8ed1af12 + name: IMAGE_eventmesh-backend__controller +- image: registry.redhat.io/openshift-serverless-1/kn-client-cli-artifacts-rhel8@sha256:b3763ff0d9bebf8ff5ff2570a9ffeaaf4af6e41e41f5af5f810539fee318ad7b + name: IMAGE_KN_CLIENT_CLI_ARTIFACTS +- image: registry.redhat.io/openshift-serverless-1/kn-client-kn-rhel8@sha256:71aa09b98d91006be2a81ac033f72df7256a938902361308b8eb36ea198698c3 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-kafka-controller-rhel8@sha256:745f107385876151cea7d6a1923df128664d709a3bc244598e044982b1224f79 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-post-install-rhel8@sha256:f19e0176cddae017da03eb40e2c2aad6076fd306bb8aaab8f9b793adda84d002 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-webhook-kafka-rhel8@sha256:21204d08fb9da8c45d057e3aba6e4cfa7e75c0efebfec4029be75750a510961b + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-apiserver-receive-adapter-rhel8@sha256:c906cd4a1c42389c7e4b38db57858fac2250b6357eff0da048e8c6acdb95ba93 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-controller-rhel8@sha256:dc5e18074913cee045feb5b1318908b7166ea735b33223ecc8943a09d0853d43 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8@sha256:53a6a5dfb39f83389b10389488f4d7aba6a5342f411ff7efa41bab30d89d9646 + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8@sha256:53a6a5dfb39f83389b10389488f4d7aba6a5342f411ff7efa41bab30d89d9646 + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-controller-rhel8@sha256:804301d315c8d6958d128fd5951184437f755674d8ec5a4582d6128e989b966a + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-filter-rhel8@sha256:605f8ab48e761f88de43b4aac439d6576fed46d6d9659a7cb7d0c3d2d87ca55a + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-ingress-rhel8@sha256:62548e94ecf52cd50b3df7fc2cb275ce31f18037cd283b90b7987eb8f38f1dc6 + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-ddb-streams-source-rhel8@sha256:6ada46f655e13db6e8fded4db7ec308123cf8307c1ef171b7eb7eca264ee2c27 + name: IMAGE_INTEGRATION_SOURCE_AWS_DDB_STREAMS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-sink-rhel8@sha256:94d58900cb62d64379f3b9b27cf7f69173d40b115b6d843b9e83839a0080a0a1 + name: IMAGE_INTEGRATION_SINK_AWS_S3_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-source-rhel8@sha256:ee38b68e98bf9adb94554fd4b3a3aec3b533cb407dd0e0afca7f37e10d6553d9 + name: IMAGE_INTEGRATION_SOURCE_AWS_S3_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sns-sink-rhel8@sha256:31ae667a47370e107384d1253c7fe0b708443f9f991210ded167591b4e69cef5 + name: IMAGE_INTEGRATION_SINK_AWS_SNS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-sink-rhel8@sha256:f97257f0af537ffed1ff6fd0bb0a8db58b5b6a44559d0136cc5f134e8ff34f2a + name: IMAGE_INTEGRATION_SINK_AWS_SQS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-source-rhel8@sha256:86e55986b9499e0a9ccbef59a2fb85de3663fe86897d25dba54101e9101b1b91 + name: IMAGE_INTEGRATION_SOURCE_AWS_SQS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-log-sink-rhel8@sha256:e0f0b9f7d8ced97919844bb4c342ce89c5ff22c6cc764d62f680d0f3eba319b1 + name: IMAGE_INTEGRATION_SINK_LOG_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-timer-source-rhel8@sha256:8ec51f809196384f9b83ef5789b12b6358772a761a7055129da572254381eeef + name: IMAGE_INTEGRATION_SOURCE_TIMER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-transform-jsonata-rhel8@sha256:0b618c9c892428a59e0499a3ed0ebefa2c0981699817433159bfcaf683743597 + name: IMAGE_EVENT_TRANSFORM_JSONATA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-istio-controller-rhel8@sha256:20ae2da1e8d82d319e256c6c81299ef842ca34d57c6964d61e00a275a41159b4 + name: IMAGE_eventing-istio-controller__eventing-istio-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-jobsink-rhel8@sha256:cfdbd68b78e947590e633b6680d7b85cfd394ea42287d3dfc81b7823a3ab66bd + name: IMAGE_job-sink__job-sink +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-migrate-rhel8@sha256:64fb4b0b18f4b8e9bd86470ca36f2f4187111ed44b6cce5d16d3a43443c00489 + name: IMAGE_storage-version-migration-eventing-__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-migrate-rhel8@sha256:64fb4b0b18f4b8e9bd86470ca36f2f4187111ed44b6cce5d16d3a43443c00489 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-mtchannel-broker-rhel8@sha256:edc19e311947053dbceb21d5225ad52a48f61eb3c079e0f92f97ba311bb121f7 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-mtping-rhel8@sha256:4e633f68a3c36f1d99ef914a1a7296aeb6fe55d969fd48de916a272b5971c7e6 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-webhook-rhel8@sha256:ca8a6193425f4b2750d58d6b1da421244aa077a44a34b4184e35b9d94c9433fb + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel8@sha256:f7795088777ea84fc6180b81b6131962944e34918e2c06671033a1a572581773 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/kn-plugin-func-func-util-rhel8@sha256:598110e9b91c398e6f7ea6215a69f9562337968a024ded8e0f19736c5fb53457 + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/kn-serving-activator-rhel8@sha256:042ce1e7be10a5f51f9487af0196cb249f5d8e6821ce7c2ab05c532b7a18438c + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-hpa-rhel8@sha256:4fa0ce7ac1351aa4cbe858472bf9f953942961a5430f85be5656f29508d254db + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-rhel8@sha256:0b69fc839f5651bfffcbf86366f94da0ec3e29e6c217a26ffce7bd76fbda0939 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/kn-serving-controller-rhel8@sha256:50a62bf641a124dba37262da1e82ef14e6b6ccb4c8573fa537c19d3b1b77a627 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-serving-queue-rhel8@sha256:3133c177fcbfd4abb89b273a7ce2fb220e051ce956193b1d149c7a040fc07e83 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/kn-serving-storage-version-migration-rhel8@sha256:fbe462695b3e703d4722277a617c6ef06fb37c07366ba5c6211dd56b5038c130 + name: IMAGE_storage-version-migration-serving-__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-serving-webhook-rhel8@sha256:de45a60bc45e1b67c6f88eb1c885bda12cc136336dc5fb2e0b8cbf63aa62a6bf + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:7655ec95e5829d3d786039cc6c690c9fb442dc85f1c88481cf34f9a6f1684039 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:fa8ebb70b6f1510c55a03baec99d3497d6afb930152ff3731fe57211675aadc0 + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/net-kourier-kourier-rhel8@sha256:90e322e3304222199efc9bfa2545250dde2b22403666c5e00372bdaeaa18ddee + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/serverless-ingress-rhel8@sha256:29613545bf1758b67977793963ab34fb2f6d1f3d4f5b4158ad4c92adfee20c5a + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/serverless-kn-operator-rhel8@sha256:abf97790726da129fab4b62b9bc7b3c4f225c1fb68550359be44a011e60d54f3 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8@sha256:58f3e1806fecdb4d030646ccefd1a147bffef21eee1233487ccdab330e8d4e1d + name: IMAGE_MUST_GATHER +- image: registry.redhat.io/openshift-serverless-1/serverless-openshift-kn-rhel8-operator@sha256:f1a13725567de357de4246b87a2ed64b3dce02c7406b8621ad8d2bbeacc0ccfa + name: knative-operator +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:1c19cf86fd05940ef3d0d6e79e6f371db993153f70baedb9107bbe73f236dc24 + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:67651adfd8e6c8d12d2b9585c723d5fbdb664818f803312bfe3522e04a81e9b0 + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +schema: olm.bundle diff --git a/olm-catalog/serverless-operator-index/v4.17/catalog-template.yaml b/olm-catalog/serverless-operator-index/v4.17/catalog-template.yaml index 86b968e913..aabf69f4af 100644 --- a/olm-catalog/serverless-operator-index/v4.17/catalog-template.yaml +++ b/olm-catalog/serverless-operator-index/v4.17/catalog-template.yaml @@ -1,519 +1,525 @@ ---- entries: -- defaultChannel: stable - icon: - base64data: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOCIgaGVpZ2h0PSIzOCIgdmlld0JveD0iMCAwIDM4IDM4Ij48ZGVmcz48c3R5bGU+LmF7ZmlsbDojZmZmO30uYntmaWxsOiNlMDA7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJhIiBkPSJNMjgsMUgxMGE5LDksMCwwLDAtOSw5VjI4YTksOSwwLDAsMCw5LDlIMjhhOSw5LDAsMCwwLDktOVYxMGE5LDksMCwwLDAtOS05WiIvPjxwYXRoIGQ9Ik0yOCwyLjI1QTcuNzU4Nyw3Ljc1ODcsMCwwLDEsMzUuNzUsMTBWMjhBNy43NTg3LDcuNzU4NywwLDAsMSwyOCwzNS43NUgxMEE3Ljc1ODcsNy43NTg3LDAsMCwxLDIuMjUsMjhWMTBBNy43NTg3LDcuNzU4NywwLDAsMSwxMCwyLjI1SDI4TTI4LDFIMTBhOSw5LDAsMCwwLTksOVYyOGE5LDksMCwwLDAsOSw5SDI4YTksOSwwLDAsMCw5LTlWMTBhOSw5LDAsMCwwLTktOVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTE0LDIzLjQ3NjZIMTBhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNCwyMy40NzY2Wm0tMy4zNzUtMS4yNWgyLjc1di0yLjc1aC0yLjc1WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMjEsMjMuNDc2NkgxN2EuNjI1My42MjUzLDAsMCwxLS42MjUtLjYyNXYtNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUtLjYyNWg0YS42MjUyLjYyNTIsMCwwLDEsLjYyNS42MjV2NEEuNjI1My42MjUzLDAsMCwxLDIxLDIzLjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNy41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNy41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yNC41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwyNC41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yOCwyMy40NzY2SDI0YS42MjUzLjYyNTMsMCwwLDEtLjYyNS0uNjI1di00YS42MjUyLjYyNTIsMCwwLDEsLjYyNS0uNjI1aDRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LjYyNXY0QS42MjUzLjYyNTMsMCwwLDEsMjgsMjMuNDc2NlptLTMuMzc1LTEuMjVoMi43NXYtMi43NWgtMi43NVoiLz48cGF0aCBkPSJNMjksMjYuNDc2Nkg5YS42MjUuNjI1LDAsMCwxLDAtMS4yNUgyOWEuNjI1LjYyNSwwLDAsMSwwLDEuMjVaIi8+PC9zdmc+ - mediatype: image/svg+xml - name: serverless-operator - schema: olm.package -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.36.0 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.36.0' - name: stable - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.29.1 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.29.1' - name: stable-1.29 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.30.2 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.30.2' - name: stable-1.30 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.31.1 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.31.1' - name: stable-1.31 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.32.2 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.32.2' - name: stable-1.32 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.33.3 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.33.3' - name: stable-1.33 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.34.1 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.34.1' - name: stable-1.34 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.35.1 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.35.1' - name: stable-1.35 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.36.0 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.36.0' - name: stable-1.36 - package: serverless-operator - schema: olm.channel -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:003a5c5c3682db69aa57da4c05ed3ccbaf94fb80a4972c8ddcf91eb3d5e299b9 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:1905984e13c9d165aad06f954904fc33d3f3a6e2f0041f98bc5840d05a87abaf - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0d73e731e7defc5d1da1aa3a347b419ce5d6f2b6b880403cb2e0871a8b3bb240 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:8da1dda3de163dc82927ad732d560e9c5c7daca3a8d3b46110b561441c483af9 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0422f8843fc62c2b72e01ffefd33db912a1ad3d70ac297882d3663c9b7299f10 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:edb6116289b3c722aca7614eb06b655e2081ebda74a9b7a82261ae1fa1e76408 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0516545990ec466969730d43136016c10e7dc34f633bf2646463d12145d9f917 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:832677abddada05258b4610b6584d442dd20c5bdd55ae8fbddb83ac133b3f12e - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2f82fcdc9a5424a2e195fda62ce0a018970e0211f253eb0d5ae47a72dd0bb6fc - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91b90a9ba578595836772b4f7ecccebf77d1dcaf04c62e3f532d9beed90eb465 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:12373623440b5b1aaea228550674ee69fe926ac6f12e7adffb5592afe1b98fca - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:16b39335e97bcc7c970a8ba385c61d8333e9912faaee813ccf8520d434b7bb7a - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:ffcf75e33c5bf527488fc196bd94bf615ac06ba5735d87cf568777f27817d214 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:51ac9aced282f62c8fb2d3696da3696b8496d8f877e9846fe3a4a743ccd63bea - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:469ae5fc8a478d6d06b13e218a000f34dd988eb69a9488a6349d67c76bda5b49 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:a82288782b61ea46d068cc09ee10608d3201c136abfc767e4d37734775101390 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:b84351200cba437c323f7f21d0cb58e0a443d772376a9ea6de1278a68d1c2c7d - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:828d31bf8a441091b8aed03da213a6b4ffae260070eff58c3319156f9bf04f5a - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:9bee3204d9fafe46f9f188e7ea10ac4843eaaf72a5f9dda68f6d8d7a92310218 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:f938cc534fc4b24bb9449f1e1e1e904dc588e6646c98474de4b8c81d083b4d96 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:82b9bfb8b83701db1a9b891d1ffc1e782d4b0f971fc9a53525942845c2602934 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:095629572a40469eb651c9f81d6c10ff46254eff8b9813cadce54d6f0075c2fb - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:93b945eb2361b07bc86d67a9a7d77a0301a0bad876c83a9a64af2cfb86c83bff - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91456907c61952017daf07e376b565472ef86d67a2925f60e189c639ceb68595 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2d675f8bf31b0cfb64503ee72e082183b7b11979d65eb636fc83f4f3a25fa5d0 - schema: olm.bundle + - defaultChannel: stable + icon: + base64data: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOCIgaGVpZ2h0PSIzOCIgdmlld0JveD0iMCAwIDM4IDM4Ij48ZGVmcz48c3R5bGU+LmF7ZmlsbDojZmZmO30uYntmaWxsOiNlMDA7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJhIiBkPSJNMjgsMUgxMGE5LDksMCwwLDAtOSw5VjI4YTksOSwwLDAsMCw5LDlIMjhhOSw5LDAsMCwwLDktOVYxMGE5LDksMCwwLDAtOS05WiIvPjxwYXRoIGQ9Ik0yOCwyLjI1QTcuNzU4Nyw3Ljc1ODcsMCwwLDEsMzUuNzUsMTBWMjhBNy43NTg3LDcuNzU4NywwLDAsMSwyOCwzNS43NUgxMEE3Ljc1ODcsNy43NTg3LDAsMCwxLDIuMjUsMjhWMTBBNy43NTg3LDcuNzU4NywwLDAsMSwxMCwyLjI1SDI4TTI4LDFIMTBhOSw5LDAsMCwwLTksOVYyOGE5LDksMCwwLDAsOSw5SDI4YTksOSwwLDAsMCw5LTlWMTBhOSw5LDAsMCwwLTktOVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTE0LDIzLjQ3NjZIMTBhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNCwyMy40NzY2Wm0tMy4zNzUtMS4yNWgyLjc1di0yLjc1aC0yLjc1WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMjEsMjMuNDc2NkgxN2EuNjI1My42MjUzLDAsMCwxLS42MjUtLjYyNXYtNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUtLjYyNWg0YS42MjUyLjYyNTIsMCwwLDEsLjYyNS42MjV2NEEuNjI1My42MjUzLDAsMCwxLDIxLDIzLjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNy41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNy41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yNC41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwyNC41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yOCwyMy40NzY2SDI0YS42MjUzLjYyNTMsMCwwLDEtLjYyNS0uNjI1di00YS42MjUyLjYyNTIsMCwwLDEsLjYyNS0uNjI1aDRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LjYyNXY0QS42MjUzLjYyNTMsMCwwLDEsMjgsMjMuNDc2NlptLTMuMzc1LTEuMjVoMi43NXYtMi43NWgtMi43NVoiLz48cGF0aCBkPSJNMjksMjYuNDc2Nkg5YS42MjUuNjI1LDAsMCwxLDAtMS4yNUgyOWEuNjI1LjYyNSwwLDAsMSwwLDEuMjVaIi8+PC9zdmc+ + mediatype: image/svg+xml + name: serverless-operator + schema: olm.package + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.36.0 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.36.0' + - name: "serverless-operator.v1.36.1" + replaces: "serverless-operator.v1.36.0" + skipRange: ">=1.36.0 <1.36.1" + name: stable + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.29.1 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.29.1' + name: stable-1.29 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.30.2 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.30.2' + name: stable-1.30 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.31.1 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.31.1' + name: stable-1.31 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.32.2 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.32.2' + name: stable-1.32 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.33.3 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.33.3' + name: stable-1.33 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.34.1 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.34.1' + name: stable-1.34 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.35.1 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.35.1' + name: stable-1.35 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.36.0 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.36.0' + - name: "serverless-operator.v1.36.1" + replaces: "serverless-operator.v1.36.0" + skipRange: ">=1.36.0 <1.36.1" + name: stable-1.36 + package: serverless-operator + schema: olm.channel + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:003a5c5c3682db69aa57da4c05ed3ccbaf94fb80a4972c8ddcf91eb3d5e299b9 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:1905984e13c9d165aad06f954904fc33d3f3a6e2f0041f98bc5840d05a87abaf + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0d73e731e7defc5d1da1aa3a347b419ce5d6f2b6b880403cb2e0871a8b3bb240 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:8da1dda3de163dc82927ad732d560e9c5c7daca3a8d3b46110b561441c483af9 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0422f8843fc62c2b72e01ffefd33db912a1ad3d70ac297882d3663c9b7299f10 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:edb6116289b3c722aca7614eb06b655e2081ebda74a9b7a82261ae1fa1e76408 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0516545990ec466969730d43136016c10e7dc34f633bf2646463d12145d9f917 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:832677abddada05258b4610b6584d442dd20c5bdd55ae8fbddb83ac133b3f12e + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2f82fcdc9a5424a2e195fda62ce0a018970e0211f253eb0d5ae47a72dd0bb6fc + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91b90a9ba578595836772b4f7ecccebf77d1dcaf04c62e3f532d9beed90eb465 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:12373623440b5b1aaea228550674ee69fe926ac6f12e7adffb5592afe1b98fca + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:16b39335e97bcc7c970a8ba385c61d8333e9912faaee813ccf8520d434b7bb7a + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:ffcf75e33c5bf527488fc196bd94bf615ac06ba5735d87cf568777f27817d214 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:51ac9aced282f62c8fb2d3696da3696b8496d8f877e9846fe3a4a743ccd63bea + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:469ae5fc8a478d6d06b13e218a000f34dd988eb69a9488a6349d67c76bda5b49 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:a82288782b61ea46d068cc09ee10608d3201c136abfc767e4d37734775101390 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:b84351200cba437c323f7f21d0cb58e0a443d772376a9ea6de1278a68d1c2c7d + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:828d31bf8a441091b8aed03da213a6b4ffae260070eff58c3319156f9bf04f5a + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:9bee3204d9fafe46f9f188e7ea10ac4843eaaf72a5f9dda68f6d8d7a92310218 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:f938cc534fc4b24bb9449f1e1e1e904dc588e6646c98474de4b8c81d083b4d96 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:82b9bfb8b83701db1a9b891d1ffc1e782d4b0f971fc9a53525942845c2602934 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:095629572a40469eb651c9f81d6c10ff46254eff8b9813cadce54d6f0075c2fb + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:93b945eb2361b07bc86d67a9a7d77a0301a0bad876c83a9a64af2cfb86c83bff + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91456907c61952017daf07e376b565472ef86d67a2925f60e189c639ceb68595 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2d675f8bf31b0cfb64503ee72e082183b7b11979d65eb636fc83f4f3a25fa5d0 + schema: olm.bundle + - schema: "olm.bundle" + image: "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3" schema: olm.template.basic - diff --git a/olm-catalog/serverless-operator-index/v4.17/catalog/serverless-operator/catalog.yaml b/olm-catalog/serverless-operator-index/v4.17/catalog/serverless-operator/catalog.yaml index 51eae5c647..65defcf06c 100644 --- a/olm-catalog/serverless-operator-index/v4.17/catalog/serverless-operator/catalog.yaml +++ b/olm-catalog/serverless-operator-index/v4.17/catalog/serverless-operator/catalog.yaml @@ -61,6 +61,9 @@ entries: - name: serverless-operator.v1.36.0 replaces: serverless-operator.v1.35.0 skipRange: '>=1.35.0 <1.36.0' +- name: serverless-operator.v1.36.1 + replaces: serverless-operator.v1.36.0 + skipRange: '>=1.36.0 <1.36.1' name: stable package: serverless-operator schema: olm.channel @@ -470,6 +473,9 @@ entries: - name: serverless-operator.v1.36.0 replaces: serverless-operator.v1.35.0 skipRange: '>=1.35.0 <1.36.0' +- name: serverless-operator.v1.36.1 + replaces: serverless-operator.v1.36.0 + skipRange: '>=1.36.0 <1.36.1' name: stable-1.36 package: serverless-operator schema: olm.channel @@ -9210,3 +9216,374 @@ relatedImages: - image: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74 name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3 +name: serverless-operator.v1.36.1 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.36.1 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2020-04-20T17:00:00Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + features.operators.openshift.io/cnf: "false" + features.operators.openshift.io/cni: "false" + features.operators.openshift.io/csi: "false" + features.operators.openshift.io/disconnected: "true" + features.operators.openshift.io/fips-compliant: "true" + features.operators.openshift.io/proxy-aware: "true" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + olm.skipRange: '>=1.36.0 <1.36.1' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/must-gather-image: registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8@sha256:58f3e1806fecdb4d030646ccefd1a147bffef21eee1233487ccdab330e8d4e1d + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: A platform for streamlined application deployment, traffic-based + auto-scaling from zero to N, and traffic-split rollouts + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: An event-driven application platform that leverages CloudEvents + with a simple HTTP interface + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: An extension to Knative Eventing, merging HTTP accessibility + with Apache Kafka's proven efficiency and reliability + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36/html/serving/getting-started-with-knative-serving#serverless-applications). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36/html/installing_openshift_serverless/index) + - [Develop Serverless Applications](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36/html/serving/getting-started-with-knative-serving#serverless-applications) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36/html/installing_openshift_serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.25.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3 + name: "" +- image: registry.access.redhat.com/ubi8/nodejs-20-minimal@sha256:a2a7e399aaf09a48c28f40820da16709b62aee6f2bc703116b9345fab5830861 + name: IMAGE_KN_PLUGIN_FUNC_NODEJS_20_MINIMAL +- image: registry.access.redhat.com/ubi8/openjdk-21@sha256:441897a1f691c7d4b3a67bb3e0fea83e18352214264cb383fd057bbbd5ed863c + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_21 +- image: registry.access.redhat.com/ubi8/python-39@sha256:27e795fd6b1b77de70d1dc73a65e4c790650748a9cfda138fdbd194b3d6eea3d + name: IMAGE_KN_PLUGIN_FUNC_PYTHON_39 +- image: registry.redhat.io/openshift-serverless-1/kn-backstage-plugins-eventmesh-rhel8@sha256:3bc34867f7a620bcdace67e65a0ffb51aead5e4aa1f10cd0eb7476fe8ed1af12 + name: IMAGE_eventmesh-backend__controller +- image: registry.redhat.io/openshift-serverless-1/kn-client-cli-artifacts-rhel8@sha256:b3763ff0d9bebf8ff5ff2570a9ffeaaf4af6e41e41f5af5f810539fee318ad7b + name: IMAGE_KN_CLIENT_CLI_ARTIFACTS +- image: registry.redhat.io/openshift-serverless-1/kn-client-kn-rhel8@sha256:71aa09b98d91006be2a81ac033f72df7256a938902361308b8eb36ea198698c3 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-kafka-controller-rhel8@sha256:745f107385876151cea7d6a1923df128664d709a3bc244598e044982b1224f79 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-post-install-rhel8@sha256:f19e0176cddae017da03eb40e2c2aad6076fd306bb8aaab8f9b793adda84d002 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-webhook-kafka-rhel8@sha256:21204d08fb9da8c45d057e3aba6e4cfa7e75c0efebfec4029be75750a510961b + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-apiserver-receive-adapter-rhel8@sha256:c906cd4a1c42389c7e4b38db57858fac2250b6357eff0da048e8c6acdb95ba93 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-controller-rhel8@sha256:dc5e18074913cee045feb5b1318908b7166ea735b33223ecc8943a09d0853d43 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8@sha256:53a6a5dfb39f83389b10389488f4d7aba6a5342f411ff7efa41bab30d89d9646 + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8@sha256:53a6a5dfb39f83389b10389488f4d7aba6a5342f411ff7efa41bab30d89d9646 + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-controller-rhel8@sha256:804301d315c8d6958d128fd5951184437f755674d8ec5a4582d6128e989b966a + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-filter-rhel8@sha256:605f8ab48e761f88de43b4aac439d6576fed46d6d9659a7cb7d0c3d2d87ca55a + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-ingress-rhel8@sha256:62548e94ecf52cd50b3df7fc2cb275ce31f18037cd283b90b7987eb8f38f1dc6 + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-ddb-streams-source-rhel8@sha256:6ada46f655e13db6e8fded4db7ec308123cf8307c1ef171b7eb7eca264ee2c27 + name: IMAGE_INTEGRATION_SOURCE_AWS_DDB_STREAMS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-sink-rhel8@sha256:94d58900cb62d64379f3b9b27cf7f69173d40b115b6d843b9e83839a0080a0a1 + name: IMAGE_INTEGRATION_SINK_AWS_S3_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-source-rhel8@sha256:ee38b68e98bf9adb94554fd4b3a3aec3b533cb407dd0e0afca7f37e10d6553d9 + name: IMAGE_INTEGRATION_SOURCE_AWS_S3_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sns-sink-rhel8@sha256:31ae667a47370e107384d1253c7fe0b708443f9f991210ded167591b4e69cef5 + name: IMAGE_INTEGRATION_SINK_AWS_SNS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-sink-rhel8@sha256:f97257f0af537ffed1ff6fd0bb0a8db58b5b6a44559d0136cc5f134e8ff34f2a + name: IMAGE_INTEGRATION_SINK_AWS_SQS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-source-rhel8@sha256:86e55986b9499e0a9ccbef59a2fb85de3663fe86897d25dba54101e9101b1b91 + name: IMAGE_INTEGRATION_SOURCE_AWS_SQS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-log-sink-rhel8@sha256:e0f0b9f7d8ced97919844bb4c342ce89c5ff22c6cc764d62f680d0f3eba319b1 + name: IMAGE_INTEGRATION_SINK_LOG_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-timer-source-rhel8@sha256:8ec51f809196384f9b83ef5789b12b6358772a761a7055129da572254381eeef + name: IMAGE_INTEGRATION_SOURCE_TIMER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-transform-jsonata-rhel8@sha256:0b618c9c892428a59e0499a3ed0ebefa2c0981699817433159bfcaf683743597 + name: IMAGE_EVENT_TRANSFORM_JSONATA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-istio-controller-rhel8@sha256:20ae2da1e8d82d319e256c6c81299ef842ca34d57c6964d61e00a275a41159b4 + name: IMAGE_eventing-istio-controller__eventing-istio-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-jobsink-rhel8@sha256:cfdbd68b78e947590e633b6680d7b85cfd394ea42287d3dfc81b7823a3ab66bd + name: IMAGE_job-sink__job-sink +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-migrate-rhel8@sha256:64fb4b0b18f4b8e9bd86470ca36f2f4187111ed44b6cce5d16d3a43443c00489 + name: IMAGE_storage-version-migration-eventing-__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-migrate-rhel8@sha256:64fb4b0b18f4b8e9bd86470ca36f2f4187111ed44b6cce5d16d3a43443c00489 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-mtchannel-broker-rhel8@sha256:edc19e311947053dbceb21d5225ad52a48f61eb3c079e0f92f97ba311bb121f7 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-mtping-rhel8@sha256:4e633f68a3c36f1d99ef914a1a7296aeb6fe55d969fd48de916a272b5971c7e6 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-webhook-rhel8@sha256:ca8a6193425f4b2750d58d6b1da421244aa077a44a34b4184e35b9d94c9433fb + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel8@sha256:f7795088777ea84fc6180b81b6131962944e34918e2c06671033a1a572581773 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/kn-plugin-func-func-util-rhel8@sha256:598110e9b91c398e6f7ea6215a69f9562337968a024ded8e0f19736c5fb53457 + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/kn-serving-activator-rhel8@sha256:042ce1e7be10a5f51f9487af0196cb249f5d8e6821ce7c2ab05c532b7a18438c + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-hpa-rhel8@sha256:4fa0ce7ac1351aa4cbe858472bf9f953942961a5430f85be5656f29508d254db + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-rhel8@sha256:0b69fc839f5651bfffcbf86366f94da0ec3e29e6c217a26ffce7bd76fbda0939 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/kn-serving-controller-rhel8@sha256:50a62bf641a124dba37262da1e82ef14e6b6ccb4c8573fa537c19d3b1b77a627 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-serving-queue-rhel8@sha256:3133c177fcbfd4abb89b273a7ce2fb220e051ce956193b1d149c7a040fc07e83 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/kn-serving-storage-version-migration-rhel8@sha256:fbe462695b3e703d4722277a617c6ef06fb37c07366ba5c6211dd56b5038c130 + name: IMAGE_storage-version-migration-serving-__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-serving-webhook-rhel8@sha256:de45a60bc45e1b67c6f88eb1c885bda12cc136336dc5fb2e0b8cbf63aa62a6bf + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:7655ec95e5829d3d786039cc6c690c9fb442dc85f1c88481cf34f9a6f1684039 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:fa8ebb70b6f1510c55a03baec99d3497d6afb930152ff3731fe57211675aadc0 + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/net-kourier-kourier-rhel8@sha256:90e322e3304222199efc9bfa2545250dde2b22403666c5e00372bdaeaa18ddee + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/serverless-ingress-rhel8@sha256:29613545bf1758b67977793963ab34fb2f6d1f3d4f5b4158ad4c92adfee20c5a + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/serverless-kn-operator-rhel8@sha256:abf97790726da129fab4b62b9bc7b3c4f225c1fb68550359be44a011e60d54f3 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8@sha256:58f3e1806fecdb4d030646ccefd1a147bffef21eee1233487ccdab330e8d4e1d + name: IMAGE_MUST_GATHER +- image: registry.redhat.io/openshift-serverless-1/serverless-openshift-kn-rhel8-operator@sha256:f1a13725567de357de4246b87a2ed64b3dce02c7406b8621ad8d2bbeacc0ccfa + name: knative-operator +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:1c19cf86fd05940ef3d0d6e79e6f371db993153f70baedb9107bbe73f236dc24 + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:67651adfd8e6c8d12d2b9585c723d5fbdb664818f803312bfe3522e04a81e9b0 + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +schema: olm.bundle diff --git a/olm-catalog/serverless-operator-index/v4.18/catalog-template.yaml b/olm-catalog/serverless-operator-index/v4.18/catalog-template.yaml index 86b968e913..aabf69f4af 100644 --- a/olm-catalog/serverless-operator-index/v4.18/catalog-template.yaml +++ b/olm-catalog/serverless-operator-index/v4.18/catalog-template.yaml @@ -1,519 +1,525 @@ ---- entries: -- defaultChannel: stable - icon: - base64data: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOCIgaGVpZ2h0PSIzOCIgdmlld0JveD0iMCAwIDM4IDM4Ij48ZGVmcz48c3R5bGU+LmF7ZmlsbDojZmZmO30uYntmaWxsOiNlMDA7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJhIiBkPSJNMjgsMUgxMGE5LDksMCwwLDAtOSw5VjI4YTksOSwwLDAsMCw5LDlIMjhhOSw5LDAsMCwwLDktOVYxMGE5LDksMCwwLDAtOS05WiIvPjxwYXRoIGQ9Ik0yOCwyLjI1QTcuNzU4Nyw3Ljc1ODcsMCwwLDEsMzUuNzUsMTBWMjhBNy43NTg3LDcuNzU4NywwLDAsMSwyOCwzNS43NUgxMEE3Ljc1ODcsNy43NTg3LDAsMCwxLDIuMjUsMjhWMTBBNy43NTg3LDcuNzU4NywwLDAsMSwxMCwyLjI1SDI4TTI4LDFIMTBhOSw5LDAsMCwwLTksOVYyOGE5LDksMCwwLDAsOSw5SDI4YTksOSwwLDAsMCw5LTlWMTBhOSw5LDAsMCwwLTktOVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTE0LDIzLjQ3NjZIMTBhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNCwyMy40NzY2Wm0tMy4zNzUtMS4yNWgyLjc1di0yLjc1aC0yLjc1WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMjEsMjMuNDc2NkgxN2EuNjI1My42MjUzLDAsMCwxLS42MjUtLjYyNXYtNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUtLjYyNWg0YS42MjUyLjYyNTIsMCwwLDEsLjYyNS42MjV2NEEuNjI1My42MjUzLDAsMCwxLDIxLDIzLjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNy41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNy41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yNC41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwyNC41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yOCwyMy40NzY2SDI0YS42MjUzLjYyNTMsMCwwLDEtLjYyNS0uNjI1di00YS42MjUyLjYyNTIsMCwwLDEsLjYyNS0uNjI1aDRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LjYyNXY0QS42MjUzLjYyNTMsMCwwLDEsMjgsMjMuNDc2NlptLTMuMzc1LTEuMjVoMi43NXYtMi43NWgtMi43NVoiLz48cGF0aCBkPSJNMjksMjYuNDc2Nkg5YS42MjUuNjI1LDAsMCwxLDAtMS4yNUgyOWEuNjI1LjYyNSwwLDAsMSwwLDEuMjVaIi8+PC9zdmc+ - mediatype: image/svg+xml - name: serverless-operator - schema: olm.package -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.36.0 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.36.0' - name: stable - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.29.1 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.29.1' - name: stable-1.29 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.30.2 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.30.2' - name: stable-1.30 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.31.1 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.31.1' - name: stable-1.31 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.32.2 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.32.2' - name: stable-1.32 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.33.3 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.33.3' - name: stable-1.33 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.34.1 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.34.1' - name: stable-1.34 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.35.1 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.35.1' - name: stable-1.35 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.36.0 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.36.0' - name: stable-1.36 - package: serverless-operator - schema: olm.channel -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:003a5c5c3682db69aa57da4c05ed3ccbaf94fb80a4972c8ddcf91eb3d5e299b9 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:1905984e13c9d165aad06f954904fc33d3f3a6e2f0041f98bc5840d05a87abaf - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0d73e731e7defc5d1da1aa3a347b419ce5d6f2b6b880403cb2e0871a8b3bb240 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:8da1dda3de163dc82927ad732d560e9c5c7daca3a8d3b46110b561441c483af9 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0422f8843fc62c2b72e01ffefd33db912a1ad3d70ac297882d3663c9b7299f10 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:edb6116289b3c722aca7614eb06b655e2081ebda74a9b7a82261ae1fa1e76408 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0516545990ec466969730d43136016c10e7dc34f633bf2646463d12145d9f917 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:832677abddada05258b4610b6584d442dd20c5bdd55ae8fbddb83ac133b3f12e - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2f82fcdc9a5424a2e195fda62ce0a018970e0211f253eb0d5ae47a72dd0bb6fc - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91b90a9ba578595836772b4f7ecccebf77d1dcaf04c62e3f532d9beed90eb465 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:12373623440b5b1aaea228550674ee69fe926ac6f12e7adffb5592afe1b98fca - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:16b39335e97bcc7c970a8ba385c61d8333e9912faaee813ccf8520d434b7bb7a - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:ffcf75e33c5bf527488fc196bd94bf615ac06ba5735d87cf568777f27817d214 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:51ac9aced282f62c8fb2d3696da3696b8496d8f877e9846fe3a4a743ccd63bea - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:469ae5fc8a478d6d06b13e218a000f34dd988eb69a9488a6349d67c76bda5b49 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:a82288782b61ea46d068cc09ee10608d3201c136abfc767e4d37734775101390 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:b84351200cba437c323f7f21d0cb58e0a443d772376a9ea6de1278a68d1c2c7d - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:828d31bf8a441091b8aed03da213a6b4ffae260070eff58c3319156f9bf04f5a - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:9bee3204d9fafe46f9f188e7ea10ac4843eaaf72a5f9dda68f6d8d7a92310218 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:f938cc534fc4b24bb9449f1e1e1e904dc588e6646c98474de4b8c81d083b4d96 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:82b9bfb8b83701db1a9b891d1ffc1e782d4b0f971fc9a53525942845c2602934 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:095629572a40469eb651c9f81d6c10ff46254eff8b9813cadce54d6f0075c2fb - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:93b945eb2361b07bc86d67a9a7d77a0301a0bad876c83a9a64af2cfb86c83bff - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91456907c61952017daf07e376b565472ef86d67a2925f60e189c639ceb68595 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2d675f8bf31b0cfb64503ee72e082183b7b11979d65eb636fc83f4f3a25fa5d0 - schema: olm.bundle + - defaultChannel: stable + icon: + base64data: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOCIgaGVpZ2h0PSIzOCIgdmlld0JveD0iMCAwIDM4IDM4Ij48ZGVmcz48c3R5bGU+LmF7ZmlsbDojZmZmO30uYntmaWxsOiNlMDA7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJhIiBkPSJNMjgsMUgxMGE5LDksMCwwLDAtOSw5VjI4YTksOSwwLDAsMCw5LDlIMjhhOSw5LDAsMCwwLDktOVYxMGE5LDksMCwwLDAtOS05WiIvPjxwYXRoIGQ9Ik0yOCwyLjI1QTcuNzU4Nyw3Ljc1ODcsMCwwLDEsMzUuNzUsMTBWMjhBNy43NTg3LDcuNzU4NywwLDAsMSwyOCwzNS43NUgxMEE3Ljc1ODcsNy43NTg3LDAsMCwxLDIuMjUsMjhWMTBBNy43NTg3LDcuNzU4NywwLDAsMSwxMCwyLjI1SDI4TTI4LDFIMTBhOSw5LDAsMCwwLTksOVYyOGE5LDksMCwwLDAsOSw5SDI4YTksOSwwLDAsMCw5LTlWMTBhOSw5LDAsMCwwLTktOVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTE0LDIzLjQ3NjZIMTBhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNCwyMy40NzY2Wm0tMy4zNzUtMS4yNWgyLjc1di0yLjc1aC0yLjc1WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMjEsMjMuNDc2NkgxN2EuNjI1My42MjUzLDAsMCwxLS42MjUtLjYyNXYtNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUtLjYyNWg0YS42MjUyLjYyNTIsMCwwLDEsLjYyNS42MjV2NEEuNjI1My42MjUzLDAsMCwxLDIxLDIzLjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNy41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNy41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yNC41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwyNC41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yOCwyMy40NzY2SDI0YS42MjUzLjYyNTMsMCwwLDEtLjYyNS0uNjI1di00YS42MjUyLjYyNTIsMCwwLDEsLjYyNS0uNjI1aDRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LjYyNXY0QS42MjUzLjYyNTMsMCwwLDEsMjgsMjMuNDc2NlptLTMuMzc1LTEuMjVoMi43NXYtMi43NWgtMi43NVoiLz48cGF0aCBkPSJNMjksMjYuNDc2Nkg5YS42MjUuNjI1LDAsMCwxLDAtMS4yNUgyOWEuNjI1LjYyNSwwLDAsMSwwLDEuMjVaIi8+PC9zdmc+ + mediatype: image/svg+xml + name: serverless-operator + schema: olm.package + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.36.0 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.36.0' + - name: "serverless-operator.v1.36.1" + replaces: "serverless-operator.v1.36.0" + skipRange: ">=1.36.0 <1.36.1" + name: stable + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.29.1 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.29.1' + name: stable-1.29 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.30.2 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.30.2' + name: stable-1.30 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.31.1 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.31.1' + name: stable-1.31 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.32.2 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.32.2' + name: stable-1.32 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.33.3 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.33.3' + name: stable-1.33 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.34.1 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.34.1' + name: stable-1.34 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.35.1 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.35.1' + name: stable-1.35 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.36.0 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.36.0' + - name: "serverless-operator.v1.36.1" + replaces: "serverless-operator.v1.36.0" + skipRange: ">=1.36.0 <1.36.1" + name: stable-1.36 + package: serverless-operator + schema: olm.channel + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:003a5c5c3682db69aa57da4c05ed3ccbaf94fb80a4972c8ddcf91eb3d5e299b9 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:1905984e13c9d165aad06f954904fc33d3f3a6e2f0041f98bc5840d05a87abaf + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0d73e731e7defc5d1da1aa3a347b419ce5d6f2b6b880403cb2e0871a8b3bb240 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:8da1dda3de163dc82927ad732d560e9c5c7daca3a8d3b46110b561441c483af9 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0422f8843fc62c2b72e01ffefd33db912a1ad3d70ac297882d3663c9b7299f10 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:edb6116289b3c722aca7614eb06b655e2081ebda74a9b7a82261ae1fa1e76408 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0516545990ec466969730d43136016c10e7dc34f633bf2646463d12145d9f917 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:832677abddada05258b4610b6584d442dd20c5bdd55ae8fbddb83ac133b3f12e + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2f82fcdc9a5424a2e195fda62ce0a018970e0211f253eb0d5ae47a72dd0bb6fc + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91b90a9ba578595836772b4f7ecccebf77d1dcaf04c62e3f532d9beed90eb465 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:12373623440b5b1aaea228550674ee69fe926ac6f12e7adffb5592afe1b98fca + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:16b39335e97bcc7c970a8ba385c61d8333e9912faaee813ccf8520d434b7bb7a + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:ffcf75e33c5bf527488fc196bd94bf615ac06ba5735d87cf568777f27817d214 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:51ac9aced282f62c8fb2d3696da3696b8496d8f877e9846fe3a4a743ccd63bea + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:469ae5fc8a478d6d06b13e218a000f34dd988eb69a9488a6349d67c76bda5b49 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:a82288782b61ea46d068cc09ee10608d3201c136abfc767e4d37734775101390 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:b84351200cba437c323f7f21d0cb58e0a443d772376a9ea6de1278a68d1c2c7d + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:828d31bf8a441091b8aed03da213a6b4ffae260070eff58c3319156f9bf04f5a + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:9bee3204d9fafe46f9f188e7ea10ac4843eaaf72a5f9dda68f6d8d7a92310218 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:f938cc534fc4b24bb9449f1e1e1e904dc588e6646c98474de4b8c81d083b4d96 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:82b9bfb8b83701db1a9b891d1ffc1e782d4b0f971fc9a53525942845c2602934 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:095629572a40469eb651c9f81d6c10ff46254eff8b9813cadce54d6f0075c2fb + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:93b945eb2361b07bc86d67a9a7d77a0301a0bad876c83a9a64af2cfb86c83bff + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91456907c61952017daf07e376b565472ef86d67a2925f60e189c639ceb68595 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2d675f8bf31b0cfb64503ee72e082183b7b11979d65eb636fc83f4f3a25fa5d0 + schema: olm.bundle + - schema: "olm.bundle" + image: "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3" schema: olm.template.basic - diff --git a/olm-catalog/serverless-operator-index/v4.18/catalog/serverless-operator/catalog.yaml b/olm-catalog/serverless-operator-index/v4.18/catalog/serverless-operator/catalog.yaml index 51eae5c647..65defcf06c 100644 --- a/olm-catalog/serverless-operator-index/v4.18/catalog/serverless-operator/catalog.yaml +++ b/olm-catalog/serverless-operator-index/v4.18/catalog/serverless-operator/catalog.yaml @@ -61,6 +61,9 @@ entries: - name: serverless-operator.v1.36.0 replaces: serverless-operator.v1.35.0 skipRange: '>=1.35.0 <1.36.0' +- name: serverless-operator.v1.36.1 + replaces: serverless-operator.v1.36.0 + skipRange: '>=1.36.0 <1.36.1' name: stable package: serverless-operator schema: olm.channel @@ -470,6 +473,9 @@ entries: - name: serverless-operator.v1.36.0 replaces: serverless-operator.v1.35.0 skipRange: '>=1.35.0 <1.36.0' +- name: serverless-operator.v1.36.1 + replaces: serverless-operator.v1.36.0 + skipRange: '>=1.36.0 <1.36.1' name: stable-1.36 package: serverless-operator schema: olm.channel @@ -9210,3 +9216,374 @@ relatedImages: - image: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74 name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3 +name: serverless-operator.v1.36.1 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.36.1 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2020-04-20T17:00:00Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + features.operators.openshift.io/cnf: "false" + features.operators.openshift.io/cni: "false" + features.operators.openshift.io/csi: "false" + features.operators.openshift.io/disconnected: "true" + features.operators.openshift.io/fips-compliant: "true" + features.operators.openshift.io/proxy-aware: "true" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + olm.skipRange: '>=1.36.0 <1.36.1' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/must-gather-image: registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8@sha256:58f3e1806fecdb4d030646ccefd1a147bffef21eee1233487ccdab330e8d4e1d + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: A platform for streamlined application deployment, traffic-based + auto-scaling from zero to N, and traffic-split rollouts + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: An event-driven application platform that leverages CloudEvents + with a simple HTTP interface + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: An extension to Knative Eventing, merging HTTP accessibility + with Apache Kafka's proven efficiency and reliability + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36/html/serving/getting-started-with-knative-serving#serverless-applications). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36/html/installing_openshift_serverless/index) + - [Develop Serverless Applications](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36/html/serving/getting-started-with-knative-serving#serverless-applications) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36/html/installing_openshift_serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.25.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3 + name: "" +- image: registry.access.redhat.com/ubi8/nodejs-20-minimal@sha256:a2a7e399aaf09a48c28f40820da16709b62aee6f2bc703116b9345fab5830861 + name: IMAGE_KN_PLUGIN_FUNC_NODEJS_20_MINIMAL +- image: registry.access.redhat.com/ubi8/openjdk-21@sha256:441897a1f691c7d4b3a67bb3e0fea83e18352214264cb383fd057bbbd5ed863c + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_21 +- image: registry.access.redhat.com/ubi8/python-39@sha256:27e795fd6b1b77de70d1dc73a65e4c790650748a9cfda138fdbd194b3d6eea3d + name: IMAGE_KN_PLUGIN_FUNC_PYTHON_39 +- image: registry.redhat.io/openshift-serverless-1/kn-backstage-plugins-eventmesh-rhel8@sha256:3bc34867f7a620bcdace67e65a0ffb51aead5e4aa1f10cd0eb7476fe8ed1af12 + name: IMAGE_eventmesh-backend__controller +- image: registry.redhat.io/openshift-serverless-1/kn-client-cli-artifacts-rhel8@sha256:b3763ff0d9bebf8ff5ff2570a9ffeaaf4af6e41e41f5af5f810539fee318ad7b + name: IMAGE_KN_CLIENT_CLI_ARTIFACTS +- image: registry.redhat.io/openshift-serverless-1/kn-client-kn-rhel8@sha256:71aa09b98d91006be2a81ac033f72df7256a938902361308b8eb36ea198698c3 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-kafka-controller-rhel8@sha256:745f107385876151cea7d6a1923df128664d709a3bc244598e044982b1224f79 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-post-install-rhel8@sha256:f19e0176cddae017da03eb40e2c2aad6076fd306bb8aaab8f9b793adda84d002 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-webhook-kafka-rhel8@sha256:21204d08fb9da8c45d057e3aba6e4cfa7e75c0efebfec4029be75750a510961b + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-apiserver-receive-adapter-rhel8@sha256:c906cd4a1c42389c7e4b38db57858fac2250b6357eff0da048e8c6acdb95ba93 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-controller-rhel8@sha256:dc5e18074913cee045feb5b1318908b7166ea735b33223ecc8943a09d0853d43 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8@sha256:53a6a5dfb39f83389b10389488f4d7aba6a5342f411ff7efa41bab30d89d9646 + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8@sha256:53a6a5dfb39f83389b10389488f4d7aba6a5342f411ff7efa41bab30d89d9646 + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-controller-rhel8@sha256:804301d315c8d6958d128fd5951184437f755674d8ec5a4582d6128e989b966a + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-filter-rhel8@sha256:605f8ab48e761f88de43b4aac439d6576fed46d6d9659a7cb7d0c3d2d87ca55a + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-ingress-rhel8@sha256:62548e94ecf52cd50b3df7fc2cb275ce31f18037cd283b90b7987eb8f38f1dc6 + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-ddb-streams-source-rhel8@sha256:6ada46f655e13db6e8fded4db7ec308123cf8307c1ef171b7eb7eca264ee2c27 + name: IMAGE_INTEGRATION_SOURCE_AWS_DDB_STREAMS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-sink-rhel8@sha256:94d58900cb62d64379f3b9b27cf7f69173d40b115b6d843b9e83839a0080a0a1 + name: IMAGE_INTEGRATION_SINK_AWS_S3_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-source-rhel8@sha256:ee38b68e98bf9adb94554fd4b3a3aec3b533cb407dd0e0afca7f37e10d6553d9 + name: IMAGE_INTEGRATION_SOURCE_AWS_S3_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sns-sink-rhel8@sha256:31ae667a47370e107384d1253c7fe0b708443f9f991210ded167591b4e69cef5 + name: IMAGE_INTEGRATION_SINK_AWS_SNS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-sink-rhel8@sha256:f97257f0af537ffed1ff6fd0bb0a8db58b5b6a44559d0136cc5f134e8ff34f2a + name: IMAGE_INTEGRATION_SINK_AWS_SQS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-source-rhel8@sha256:86e55986b9499e0a9ccbef59a2fb85de3663fe86897d25dba54101e9101b1b91 + name: IMAGE_INTEGRATION_SOURCE_AWS_SQS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-log-sink-rhel8@sha256:e0f0b9f7d8ced97919844bb4c342ce89c5ff22c6cc764d62f680d0f3eba319b1 + name: IMAGE_INTEGRATION_SINK_LOG_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-timer-source-rhel8@sha256:8ec51f809196384f9b83ef5789b12b6358772a761a7055129da572254381eeef + name: IMAGE_INTEGRATION_SOURCE_TIMER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-transform-jsonata-rhel8@sha256:0b618c9c892428a59e0499a3ed0ebefa2c0981699817433159bfcaf683743597 + name: IMAGE_EVENT_TRANSFORM_JSONATA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-istio-controller-rhel8@sha256:20ae2da1e8d82d319e256c6c81299ef842ca34d57c6964d61e00a275a41159b4 + name: IMAGE_eventing-istio-controller__eventing-istio-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-jobsink-rhel8@sha256:cfdbd68b78e947590e633b6680d7b85cfd394ea42287d3dfc81b7823a3ab66bd + name: IMAGE_job-sink__job-sink +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-migrate-rhel8@sha256:64fb4b0b18f4b8e9bd86470ca36f2f4187111ed44b6cce5d16d3a43443c00489 + name: IMAGE_storage-version-migration-eventing-__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-migrate-rhel8@sha256:64fb4b0b18f4b8e9bd86470ca36f2f4187111ed44b6cce5d16d3a43443c00489 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-mtchannel-broker-rhel8@sha256:edc19e311947053dbceb21d5225ad52a48f61eb3c079e0f92f97ba311bb121f7 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-mtping-rhel8@sha256:4e633f68a3c36f1d99ef914a1a7296aeb6fe55d969fd48de916a272b5971c7e6 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-webhook-rhel8@sha256:ca8a6193425f4b2750d58d6b1da421244aa077a44a34b4184e35b9d94c9433fb + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel8@sha256:f7795088777ea84fc6180b81b6131962944e34918e2c06671033a1a572581773 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/kn-plugin-func-func-util-rhel8@sha256:598110e9b91c398e6f7ea6215a69f9562337968a024ded8e0f19736c5fb53457 + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/kn-serving-activator-rhel8@sha256:042ce1e7be10a5f51f9487af0196cb249f5d8e6821ce7c2ab05c532b7a18438c + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-hpa-rhel8@sha256:4fa0ce7ac1351aa4cbe858472bf9f953942961a5430f85be5656f29508d254db + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-rhel8@sha256:0b69fc839f5651bfffcbf86366f94da0ec3e29e6c217a26ffce7bd76fbda0939 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/kn-serving-controller-rhel8@sha256:50a62bf641a124dba37262da1e82ef14e6b6ccb4c8573fa537c19d3b1b77a627 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-serving-queue-rhel8@sha256:3133c177fcbfd4abb89b273a7ce2fb220e051ce956193b1d149c7a040fc07e83 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/kn-serving-storage-version-migration-rhel8@sha256:fbe462695b3e703d4722277a617c6ef06fb37c07366ba5c6211dd56b5038c130 + name: IMAGE_storage-version-migration-serving-__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-serving-webhook-rhel8@sha256:de45a60bc45e1b67c6f88eb1c885bda12cc136336dc5fb2e0b8cbf63aa62a6bf + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:7655ec95e5829d3d786039cc6c690c9fb442dc85f1c88481cf34f9a6f1684039 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:fa8ebb70b6f1510c55a03baec99d3497d6afb930152ff3731fe57211675aadc0 + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/net-kourier-kourier-rhel8@sha256:90e322e3304222199efc9bfa2545250dde2b22403666c5e00372bdaeaa18ddee + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/serverless-ingress-rhel8@sha256:29613545bf1758b67977793963ab34fb2f6d1f3d4f5b4158ad4c92adfee20c5a + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/serverless-kn-operator-rhel8@sha256:abf97790726da129fab4b62b9bc7b3c4f225c1fb68550359be44a011e60d54f3 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8@sha256:58f3e1806fecdb4d030646ccefd1a147bffef21eee1233487ccdab330e8d4e1d + name: IMAGE_MUST_GATHER +- image: registry.redhat.io/openshift-serverless-1/serverless-openshift-kn-rhel8-operator@sha256:f1a13725567de357de4246b87a2ed64b3dce02c7406b8621ad8d2bbeacc0ccfa + name: knative-operator +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:1c19cf86fd05940ef3d0d6e79e6f371db993153f70baedb9107bbe73f236dc24 + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:67651adfd8e6c8d12d2b9585c723d5fbdb664818f803312bfe3522e04a81e9b0 + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +schema: olm.bundle diff --git a/olm-catalog/serverless-operator-index/v4.19/catalog-template.yaml b/olm-catalog/serverless-operator-index/v4.19/catalog-template.yaml index 86b968e913..aabf69f4af 100644 --- a/olm-catalog/serverless-operator-index/v4.19/catalog-template.yaml +++ b/olm-catalog/serverless-operator-index/v4.19/catalog-template.yaml @@ -1,519 +1,525 @@ ---- entries: -- defaultChannel: stable - icon: - base64data: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOCIgaGVpZ2h0PSIzOCIgdmlld0JveD0iMCAwIDM4IDM4Ij48ZGVmcz48c3R5bGU+LmF7ZmlsbDojZmZmO30uYntmaWxsOiNlMDA7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJhIiBkPSJNMjgsMUgxMGE5LDksMCwwLDAtOSw5VjI4YTksOSwwLDAsMCw5LDlIMjhhOSw5LDAsMCwwLDktOVYxMGE5LDksMCwwLDAtOS05WiIvPjxwYXRoIGQ9Ik0yOCwyLjI1QTcuNzU4Nyw3Ljc1ODcsMCwwLDEsMzUuNzUsMTBWMjhBNy43NTg3LDcuNzU4NywwLDAsMSwyOCwzNS43NUgxMEE3Ljc1ODcsNy43NTg3LDAsMCwxLDIuMjUsMjhWMTBBNy43NTg3LDcuNzU4NywwLDAsMSwxMCwyLjI1SDI4TTI4LDFIMTBhOSw5LDAsMCwwLTksOVYyOGE5LDksMCwwLDAsOSw5SDI4YTksOSwwLDAsMCw5LTlWMTBhOSw5LDAsMCwwLTktOVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTE0LDIzLjQ3NjZIMTBhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNCwyMy40NzY2Wm0tMy4zNzUtMS4yNWgyLjc1di0yLjc1aC0yLjc1WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMjEsMjMuNDc2NkgxN2EuNjI1My42MjUzLDAsMCwxLS42MjUtLjYyNXYtNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUtLjYyNWg0YS42MjUyLjYyNTIsMCwwLDEsLjYyNS42MjV2NEEuNjI1My42MjUzLDAsMCwxLDIxLDIzLjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNy41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNy41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yNC41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwyNC41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yOCwyMy40NzY2SDI0YS42MjUzLjYyNTMsMCwwLDEtLjYyNS0uNjI1di00YS42MjUyLjYyNTIsMCwwLDEsLjYyNS0uNjI1aDRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LjYyNXY0QS42MjUzLjYyNTMsMCwwLDEsMjgsMjMuNDc2NlptLTMuMzc1LTEuMjVoMi43NXYtMi43NWgtMi43NVoiLz48cGF0aCBkPSJNMjksMjYuNDc2Nkg5YS42MjUuNjI1LDAsMCwxLDAtMS4yNUgyOWEuNjI1LjYyNSwwLDAsMSwwLDEuMjVaIi8+PC9zdmc+ - mediatype: image/svg+xml - name: serverless-operator - schema: olm.package -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.36.0 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.36.0' - name: stable - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.29.1 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.29.1' - name: stable-1.29 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.30.2 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.30.2' - name: stable-1.30 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.31.1 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.31.1' - name: stable-1.31 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.32.2 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.32.2' - name: stable-1.32 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.33.3 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.33.3' - name: stable-1.33 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.34.1 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.34.1' - name: stable-1.34 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.35.1 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.35.1' - name: stable-1.35 - package: serverless-operator - schema: olm.channel -- entries: - - name: serverless-operator.v1.20.0 - replaces: serverless-operator.v1.19.0 - skipRange: '>=1.19.0 <1.20.0' - - name: serverless-operator.v1.21.0 - replaces: serverless-operator.v1.20.0 - skipRange: '>=1.20.0 <1.21.0' - - name: serverless-operator.v1.22.0 - replaces: serverless-operator.v1.21.0 - skipRange: '>=1.21.0 <1.22.0' - - name: serverless-operator.v1.23.0 - replaces: serverless-operator.v1.22.0 - skipRange: '>=1.22.0 <1.23.0' - - name: serverless-operator.v1.24.0 - replaces: serverless-operator.v1.23.0 - skipRange: '>=1.23.0 <1.24.0' - - name: serverless-operator.v1.25.0 - replaces: serverless-operator.v1.24.0 - skipRange: '>=1.24.0 <1.25.0' - - name: serverless-operator.v1.26.0 - replaces: serverless-operator.v1.25.0 - skipRange: '>=1.25.0 <1.26.0' - - name: serverless-operator.v1.27.0 - replaces: serverless-operator.v1.26.0 - skipRange: '>=1.26.0 <1.27.0' - - name: serverless-operator.v1.27.1 - replaces: serverless-operator.v1.27.0 - skipRange: '>=1.26.0 <1.27.1' - - name: serverless-operator.v1.28.0 - replaces: serverless-operator.v1.27.1 - skipRange: '>=1.27.0 <1.28.0' - - name: serverless-operator.v1.29.0 - replaces: serverless-operator.v1.28.0 - skipRange: '>=1.28.0 <1.29.0' - - name: serverless-operator.v1.30.0 - replaces: serverless-operator.v1.29.0 - skipRange: '>=1.29.0 <1.30.0' - - name: serverless-operator.v1.31.0 - replaces: serverless-operator.v1.30.0 - skipRange: '>=1.30.0 <1.31.0' - - name: serverless-operator.v1.32.0 - replaces: serverless-operator.v1.31.0 - skipRange: '>=1.31.0 <1.32.0' - - name: serverless-operator.v1.33.0 - replaces: serverless-operator.v1.32.0 - skipRange: '>=1.32.0 <1.33.0' - - name: serverless-operator.v1.34.0 - replaces: serverless-operator.v1.33.0 - skipRange: '>=1.33.0 <1.34.0' - - name: serverless-operator.v1.35.0 - replaces: serverless-operator.v1.34.0 - skipRange: '>=1.34.0 <1.35.0' - - name: serverless-operator.v1.36.0 - replaces: serverless-operator.v1.35.0 - skipRange: '>=1.35.0 <1.36.0' - name: stable-1.36 - package: serverless-operator - schema: olm.channel -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:003a5c5c3682db69aa57da4c05ed3ccbaf94fb80a4972c8ddcf91eb3d5e299b9 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:1905984e13c9d165aad06f954904fc33d3f3a6e2f0041f98bc5840d05a87abaf - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0d73e731e7defc5d1da1aa3a347b419ce5d6f2b6b880403cb2e0871a8b3bb240 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:8da1dda3de163dc82927ad732d560e9c5c7daca3a8d3b46110b561441c483af9 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0422f8843fc62c2b72e01ffefd33db912a1ad3d70ac297882d3663c9b7299f10 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:edb6116289b3c722aca7614eb06b655e2081ebda74a9b7a82261ae1fa1e76408 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0516545990ec466969730d43136016c10e7dc34f633bf2646463d12145d9f917 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:832677abddada05258b4610b6584d442dd20c5bdd55ae8fbddb83ac133b3f12e - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2f82fcdc9a5424a2e195fda62ce0a018970e0211f253eb0d5ae47a72dd0bb6fc - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91b90a9ba578595836772b4f7ecccebf77d1dcaf04c62e3f532d9beed90eb465 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:12373623440b5b1aaea228550674ee69fe926ac6f12e7adffb5592afe1b98fca - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:16b39335e97bcc7c970a8ba385c61d8333e9912faaee813ccf8520d434b7bb7a - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:ffcf75e33c5bf527488fc196bd94bf615ac06ba5735d87cf568777f27817d214 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:51ac9aced282f62c8fb2d3696da3696b8496d8f877e9846fe3a4a743ccd63bea - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:469ae5fc8a478d6d06b13e218a000f34dd988eb69a9488a6349d67c76bda5b49 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:a82288782b61ea46d068cc09ee10608d3201c136abfc767e4d37734775101390 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:b84351200cba437c323f7f21d0cb58e0a443d772376a9ea6de1278a68d1c2c7d - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:828d31bf8a441091b8aed03da213a6b4ffae260070eff58c3319156f9bf04f5a - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:9bee3204d9fafe46f9f188e7ea10ac4843eaaf72a5f9dda68f6d8d7a92310218 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:f938cc534fc4b24bb9449f1e1e1e904dc588e6646c98474de4b8c81d083b4d96 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:82b9bfb8b83701db1a9b891d1ffc1e782d4b0f971fc9a53525942845c2602934 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:095629572a40469eb651c9f81d6c10ff46254eff8b9813cadce54d6f0075c2fb - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:93b945eb2361b07bc86d67a9a7d77a0301a0bad876c83a9a64af2cfb86c83bff - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91456907c61952017daf07e376b565472ef86d67a2925f60e189c639ceb68595 - schema: olm.bundle -- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2d675f8bf31b0cfb64503ee72e082183b7b11979d65eb636fc83f4f3a25fa5d0 - schema: olm.bundle + - defaultChannel: stable + icon: + base64data: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOCIgaGVpZ2h0PSIzOCIgdmlld0JveD0iMCAwIDM4IDM4Ij48ZGVmcz48c3R5bGU+LmF7ZmlsbDojZmZmO30uYntmaWxsOiNlMDA7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJhIiBkPSJNMjgsMUgxMGE5LDksMCwwLDAtOSw5VjI4YTksOSwwLDAsMCw5LDlIMjhhOSw5LDAsMCwwLDktOVYxMGE5LDksMCwwLDAtOS05WiIvPjxwYXRoIGQ9Ik0yOCwyLjI1QTcuNzU4Nyw3Ljc1ODcsMCwwLDEsMzUuNzUsMTBWMjhBNy43NTg3LDcuNzU4NywwLDAsMSwyOCwzNS43NUgxMEE3Ljc1ODcsNy43NTg3LDAsMCwxLDIuMjUsMjhWMTBBNy43NTg3LDcuNzU4NywwLDAsMSwxMCwyLjI1SDI4TTI4LDFIMTBhOSw5LDAsMCwwLTksOVYyOGE5LDksMCwwLDAsOSw5SDI4YTksOSwwLDAsMCw5LTlWMTBhOSw5LDAsMCwwLTktOVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTE0LDIzLjQ3NjZIMTBhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNCwyMy40NzY2Wm0tMy4zNzUtMS4yNWgyLjc1di0yLjc1aC0yLjc1WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMjEsMjMuNDc2NkgxN2EuNjI1My42MjUzLDAsMCwxLS42MjUtLjYyNXYtNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUtLjYyNWg0YS42MjUyLjYyNTIsMCwwLDEsLjYyNS42MjV2NEEuNjI1My42MjUzLDAsMCwxLDIxLDIzLjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNy41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNy41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yNC41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwyNC41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yOCwyMy40NzY2SDI0YS42MjUzLjYyNTMsMCwwLDEtLjYyNS0uNjI1di00YS42MjUyLjYyNTIsMCwwLDEsLjYyNS0uNjI1aDRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LjYyNXY0QS42MjUzLjYyNTMsMCwwLDEsMjgsMjMuNDc2NlptLTMuMzc1LTEuMjVoMi43NXYtMi43NWgtMi43NVoiLz48cGF0aCBkPSJNMjksMjYuNDc2Nkg5YS42MjUuNjI1LDAsMCwxLDAtMS4yNUgyOWEuNjI1LjYyNSwwLDAsMSwwLDEuMjVaIi8+PC9zdmc+ + mediatype: image/svg+xml + name: serverless-operator + schema: olm.package + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.36.0 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.36.0' + - name: "serverless-operator.v1.36.1" + replaces: "serverless-operator.v1.36.0" + skipRange: ">=1.36.0 <1.36.1" + name: stable + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.29.1 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.29.1' + name: stable-1.29 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.30.2 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.30.2' + name: stable-1.30 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.31.1 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.31.1' + name: stable-1.31 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.32.2 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.32.2' + name: stable-1.32 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.33.3 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.33.3' + name: stable-1.33 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.34.1 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.34.1' + name: stable-1.34 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.35.1 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.35.1' + name: stable-1.35 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.35.0 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.35.0' + - name: serverless-operator.v1.36.0 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.36.0' + - name: "serverless-operator.v1.36.1" + replaces: "serverless-operator.v1.36.0" + skipRange: ">=1.36.0 <1.36.1" + name: stable-1.36 + package: serverless-operator + schema: olm.channel + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:003a5c5c3682db69aa57da4c05ed3ccbaf94fb80a4972c8ddcf91eb3d5e299b9 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:1905984e13c9d165aad06f954904fc33d3f3a6e2f0041f98bc5840d05a87abaf + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0d73e731e7defc5d1da1aa3a347b419ce5d6f2b6b880403cb2e0871a8b3bb240 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:8da1dda3de163dc82927ad732d560e9c5c7daca3a8d3b46110b561441c483af9 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0422f8843fc62c2b72e01ffefd33db912a1ad3d70ac297882d3663c9b7299f10 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:edb6116289b3c722aca7614eb06b655e2081ebda74a9b7a82261ae1fa1e76408 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0516545990ec466969730d43136016c10e7dc34f633bf2646463d12145d9f917 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:832677abddada05258b4610b6584d442dd20c5bdd55ae8fbddb83ac133b3f12e + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2f82fcdc9a5424a2e195fda62ce0a018970e0211f253eb0d5ae47a72dd0bb6fc + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91b90a9ba578595836772b4f7ecccebf77d1dcaf04c62e3f532d9beed90eb465 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:12373623440b5b1aaea228550674ee69fe926ac6f12e7adffb5592afe1b98fca + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:16b39335e97bcc7c970a8ba385c61d8333e9912faaee813ccf8520d434b7bb7a + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:ffcf75e33c5bf527488fc196bd94bf615ac06ba5735d87cf568777f27817d214 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:51ac9aced282f62c8fb2d3696da3696b8496d8f877e9846fe3a4a743ccd63bea + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:469ae5fc8a478d6d06b13e218a000f34dd988eb69a9488a6349d67c76bda5b49 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:a82288782b61ea46d068cc09ee10608d3201c136abfc767e4d37734775101390 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:b84351200cba437c323f7f21d0cb58e0a443d772376a9ea6de1278a68d1c2c7d + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:828d31bf8a441091b8aed03da213a6b4ffae260070eff58c3319156f9bf04f5a + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:9bee3204d9fafe46f9f188e7ea10ac4843eaaf72a5f9dda68f6d8d7a92310218 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:f938cc534fc4b24bb9449f1e1e1e904dc588e6646c98474de4b8c81d083b4d96 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:82b9bfb8b83701db1a9b891d1ffc1e782d4b0f971fc9a53525942845c2602934 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:095629572a40469eb651c9f81d6c10ff46254eff8b9813cadce54d6f0075c2fb + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:93b945eb2361b07bc86d67a9a7d77a0301a0bad876c83a9a64af2cfb86c83bff + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91456907c61952017daf07e376b565472ef86d67a2925f60e189c639ceb68595 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2d675f8bf31b0cfb64503ee72e082183b7b11979d65eb636fc83f4f3a25fa5d0 + schema: olm.bundle + - schema: "olm.bundle" + image: "quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3" schema: olm.template.basic - diff --git a/olm-catalog/serverless-operator-index/v4.19/catalog/serverless-operator/catalog.yaml b/olm-catalog/serverless-operator-index/v4.19/catalog/serverless-operator/catalog.yaml index 51eae5c647..65defcf06c 100644 --- a/olm-catalog/serverless-operator-index/v4.19/catalog/serverless-operator/catalog.yaml +++ b/olm-catalog/serverless-operator-index/v4.19/catalog/serverless-operator/catalog.yaml @@ -61,6 +61,9 @@ entries: - name: serverless-operator.v1.36.0 replaces: serverless-operator.v1.35.0 skipRange: '>=1.35.0 <1.36.0' +- name: serverless-operator.v1.36.1 + replaces: serverless-operator.v1.36.0 + skipRange: '>=1.36.0 <1.36.1' name: stable package: serverless-operator schema: olm.channel @@ -470,6 +473,9 @@ entries: - name: serverless-operator.v1.36.0 replaces: serverless-operator.v1.35.0 skipRange: '>=1.35.0 <1.36.0' +- name: serverless-operator.v1.36.1 + replaces: serverless-operator.v1.36.0 + skipRange: '>=1.36.0 <1.36.1' name: stable-1.36 package: serverless-operator schema: olm.channel @@ -9210,3 +9216,374 @@ relatedImages: - image: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74 name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3 +name: serverless-operator.v1.36.1 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.36.1 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2020-04-20T17:00:00Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + features.operators.openshift.io/cnf: "false" + features.operators.openshift.io/cni: "false" + features.operators.openshift.io/csi: "false" + features.operators.openshift.io/disconnected: "true" + features.operators.openshift.io/fips-compliant: "true" + features.operators.openshift.io/proxy-aware: "true" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + olm.skipRange: '>=1.36.0 <1.36.1' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/must-gather-image: registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8@sha256:58f3e1806fecdb4d030646ccefd1a147bffef21eee1233487ccdab330e8d4e1d + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: A platform for streamlined application deployment, traffic-based + auto-scaling from zero to N, and traffic-split rollouts + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: An event-driven application platform that leverages CloudEvents + with a simple HTTP interface + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: An extension to Knative Eventing, merging HTTP accessibility + with Apache Kafka's proven efficiency and reliability + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36/html/serving/getting-started-with-knative-serving#serverless-applications). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36/html/installing_openshift_serverless/index) + - [Develop Serverless Applications](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36/html/serving/getting-started-with-knative-serving#serverless-applications) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36/html/installing_openshift_serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.25.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3 + name: "" +- image: registry.access.redhat.com/ubi8/nodejs-20-minimal@sha256:a2a7e399aaf09a48c28f40820da16709b62aee6f2bc703116b9345fab5830861 + name: IMAGE_KN_PLUGIN_FUNC_NODEJS_20_MINIMAL +- image: registry.access.redhat.com/ubi8/openjdk-21@sha256:441897a1f691c7d4b3a67bb3e0fea83e18352214264cb383fd057bbbd5ed863c + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_21 +- image: registry.access.redhat.com/ubi8/python-39@sha256:27e795fd6b1b77de70d1dc73a65e4c790650748a9cfda138fdbd194b3d6eea3d + name: IMAGE_KN_PLUGIN_FUNC_PYTHON_39 +- image: registry.redhat.io/openshift-serverless-1/kn-backstage-plugins-eventmesh-rhel8@sha256:3bc34867f7a620bcdace67e65a0ffb51aead5e4aa1f10cd0eb7476fe8ed1af12 + name: IMAGE_eventmesh-backend__controller +- image: registry.redhat.io/openshift-serverless-1/kn-client-cli-artifacts-rhel8@sha256:b3763ff0d9bebf8ff5ff2570a9ffeaaf4af6e41e41f5af5f810539fee318ad7b + name: IMAGE_KN_CLIENT_CLI_ARTIFACTS +- image: registry.redhat.io/openshift-serverless-1/kn-client-kn-rhel8@sha256:71aa09b98d91006be2a81ac033f72df7256a938902361308b8eb36ea198698c3 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-kafka-controller-rhel8@sha256:745f107385876151cea7d6a1923df128664d709a3bc244598e044982b1224f79 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-post-install-rhel8@sha256:f19e0176cddae017da03eb40e2c2aad6076fd306bb8aaab8f9b793adda84d002 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-webhook-kafka-rhel8@sha256:21204d08fb9da8c45d057e3aba6e4cfa7e75c0efebfec4029be75750a510961b + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-apiserver-receive-adapter-rhel8@sha256:c906cd4a1c42389c7e4b38db57858fac2250b6357eff0da048e8c6acdb95ba93 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-controller-rhel8@sha256:dc5e18074913cee045feb5b1318908b7166ea735b33223ecc8943a09d0853d43 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8@sha256:53a6a5dfb39f83389b10389488f4d7aba6a5342f411ff7efa41bab30d89d9646 + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8@sha256:53a6a5dfb39f83389b10389488f4d7aba6a5342f411ff7efa41bab30d89d9646 + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-controller-rhel8@sha256:804301d315c8d6958d128fd5951184437f755674d8ec5a4582d6128e989b966a + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-filter-rhel8@sha256:605f8ab48e761f88de43b4aac439d6576fed46d6d9659a7cb7d0c3d2d87ca55a + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-ingress-rhel8@sha256:62548e94ecf52cd50b3df7fc2cb275ce31f18037cd283b90b7987eb8f38f1dc6 + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-ddb-streams-source-rhel8@sha256:6ada46f655e13db6e8fded4db7ec308123cf8307c1ef171b7eb7eca264ee2c27 + name: IMAGE_INTEGRATION_SOURCE_AWS_DDB_STREAMS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-sink-rhel8@sha256:94d58900cb62d64379f3b9b27cf7f69173d40b115b6d843b9e83839a0080a0a1 + name: IMAGE_INTEGRATION_SINK_AWS_S3_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-source-rhel8@sha256:ee38b68e98bf9adb94554fd4b3a3aec3b533cb407dd0e0afca7f37e10d6553d9 + name: IMAGE_INTEGRATION_SOURCE_AWS_S3_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sns-sink-rhel8@sha256:31ae667a47370e107384d1253c7fe0b708443f9f991210ded167591b4e69cef5 + name: IMAGE_INTEGRATION_SINK_AWS_SNS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-sink-rhel8@sha256:f97257f0af537ffed1ff6fd0bb0a8db58b5b6a44559d0136cc5f134e8ff34f2a + name: IMAGE_INTEGRATION_SINK_AWS_SQS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-source-rhel8@sha256:86e55986b9499e0a9ccbef59a2fb85de3663fe86897d25dba54101e9101b1b91 + name: IMAGE_INTEGRATION_SOURCE_AWS_SQS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-log-sink-rhel8@sha256:e0f0b9f7d8ced97919844bb4c342ce89c5ff22c6cc764d62f680d0f3eba319b1 + name: IMAGE_INTEGRATION_SINK_LOG_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-timer-source-rhel8@sha256:8ec51f809196384f9b83ef5789b12b6358772a761a7055129da572254381eeef + name: IMAGE_INTEGRATION_SOURCE_TIMER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-transform-jsonata-rhel8@sha256:0b618c9c892428a59e0499a3ed0ebefa2c0981699817433159bfcaf683743597 + name: IMAGE_EVENT_TRANSFORM_JSONATA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-istio-controller-rhel8@sha256:20ae2da1e8d82d319e256c6c81299ef842ca34d57c6964d61e00a275a41159b4 + name: IMAGE_eventing-istio-controller__eventing-istio-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-jobsink-rhel8@sha256:cfdbd68b78e947590e633b6680d7b85cfd394ea42287d3dfc81b7823a3ab66bd + name: IMAGE_job-sink__job-sink +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-migrate-rhel8@sha256:64fb4b0b18f4b8e9bd86470ca36f2f4187111ed44b6cce5d16d3a43443c00489 + name: IMAGE_storage-version-migration-eventing-__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-migrate-rhel8@sha256:64fb4b0b18f4b8e9bd86470ca36f2f4187111ed44b6cce5d16d3a43443c00489 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-mtchannel-broker-rhel8@sha256:edc19e311947053dbceb21d5225ad52a48f61eb3c079e0f92f97ba311bb121f7 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-mtping-rhel8@sha256:4e633f68a3c36f1d99ef914a1a7296aeb6fe55d969fd48de916a272b5971c7e6 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-webhook-rhel8@sha256:ca8a6193425f4b2750d58d6b1da421244aa077a44a34b4184e35b9d94c9433fb + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel8@sha256:f7795088777ea84fc6180b81b6131962944e34918e2c06671033a1a572581773 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/kn-plugin-func-func-util-rhel8@sha256:598110e9b91c398e6f7ea6215a69f9562337968a024ded8e0f19736c5fb53457 + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/kn-serving-activator-rhel8@sha256:042ce1e7be10a5f51f9487af0196cb249f5d8e6821ce7c2ab05c532b7a18438c + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-hpa-rhel8@sha256:4fa0ce7ac1351aa4cbe858472bf9f953942961a5430f85be5656f29508d254db + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-rhel8@sha256:0b69fc839f5651bfffcbf86366f94da0ec3e29e6c217a26ffce7bd76fbda0939 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/kn-serving-controller-rhel8@sha256:50a62bf641a124dba37262da1e82ef14e6b6ccb4c8573fa537c19d3b1b77a627 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-serving-queue-rhel8@sha256:3133c177fcbfd4abb89b273a7ce2fb220e051ce956193b1d149c7a040fc07e83 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/kn-serving-storage-version-migration-rhel8@sha256:fbe462695b3e703d4722277a617c6ef06fb37c07366ba5c6211dd56b5038c130 + name: IMAGE_storage-version-migration-serving-__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-serving-webhook-rhel8@sha256:de45a60bc45e1b67c6f88eb1c885bda12cc136336dc5fb2e0b8cbf63aa62a6bf + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:7655ec95e5829d3d786039cc6c690c9fb442dc85f1c88481cf34f9a6f1684039 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:fa8ebb70b6f1510c55a03baec99d3497d6afb930152ff3731fe57211675aadc0 + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/net-kourier-kourier-rhel8@sha256:90e322e3304222199efc9bfa2545250dde2b22403666c5e00372bdaeaa18ddee + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/serverless-ingress-rhel8@sha256:29613545bf1758b67977793963ab34fb2f6d1f3d4f5b4158ad4c92adfee20c5a + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/serverless-kn-operator-rhel8@sha256:abf97790726da129fab4b62b9bc7b3c4f225c1fb68550359be44a011e60d54f3 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8@sha256:58f3e1806fecdb4d030646ccefd1a147bffef21eee1233487ccdab330e8d4e1d + name: IMAGE_MUST_GATHER +- image: registry.redhat.io/openshift-serverless-1/serverless-openshift-kn-rhel8-operator@sha256:f1a13725567de357de4246b87a2ed64b3dce02c7406b8621ad8d2bbeacc0ccfa + name: knative-operator +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:1c19cf86fd05940ef3d0d6e79e6f371db993153f70baedb9107bbe73f236dc24 + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:67651adfd8e6c8d12d2b9585c723d5fbdb664818f803312bfe3522e04a81e9b0 + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +schema: olm.bundle diff --git a/olm-catalog/serverless-operator-index/v4.20/catalog-template.yaml b/olm-catalog/serverless-operator-index/v4.20/catalog-template.yaml new file mode 100644 index 0000000000..73b9ab25b9 --- /dev/null +++ b/olm-catalog/serverless-operator-index/v4.20/catalog-template.yaml @@ -0,0 +1,461 @@ +entries: + - defaultChannel: stable + icon: + base64data: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOCIgaGVpZ2h0PSIzOCIgdmlld0JveD0iMCAwIDM4IDM4Ij48ZGVmcz48c3R5bGU+LmF7ZmlsbDojZmZmO30uYntmaWxsOiNlMDA7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJhIiBkPSJNMjgsMUgxMGE5LDksMCwwLDAtOSw5VjI4YTksOSwwLDAsMCw5LDlIMjhhOSw5LDAsMCwwLDktOVYxMGE5LDksMCwwLDAtOS05WiIvPjxwYXRoIGQ9Ik0yOCwyLjI1QTcuNzU4Nyw3Ljc1ODcsMCwwLDEsMzUuNzUsMTBWMjhBNy43NTg3LDcuNzU4NywwLDAsMSwyOCwzNS43NUgxMEE3Ljc1ODcsNy43NTg3LDAsMCwxLDIuMjUsMjhWMTBBNy43NTg3LDcuNzU4NywwLDAsMSwxMCwyLjI1SDI4TTI4LDFIMTBhOSw5LDAsMCwwLTksOVYyOGE5LDksMCwwLDAsOSw5SDI4YTksOSwwLDAsMCw5LTlWMTBhOSw5LDAsMCwwLTktOVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTE0LDIzLjQ3NjZIMTBhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNCwyMy40NzY2Wm0tMy4zNzUtMS4yNWgyLjc1di0yLjc1aC0yLjc1WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMjEsMjMuNDc2NkgxN2EuNjI1My42MjUzLDAsMCwxLS42MjUtLjYyNXYtNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUtLjYyNWg0YS42MjUyLjYyNTIsMCwwLDEsLjYyNS42MjV2NEEuNjI1My42MjUzLDAsMCwxLDIxLDIzLjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNy41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNy41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yNC41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwyNC41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yOCwyMy40NzY2SDI0YS42MjUzLjYyNTMsMCwwLDEtLjYyNS0uNjI1di00YS42MjUyLjYyNTIsMCwwLDEsLjYyNS0uNjI1aDRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LjYyNXY0QS42MjUzLjYyNTMsMCwwLDEsMjgsMjMuNDc2NlptLTMuMzc1LTEuMjVoMi43NXYtMi43NWgtMi43NVoiLz48cGF0aCBkPSJNMjksMjYuNDc2Nkg5YS42MjUuNjI1LDAsMCwxLDAtMS4yNUgyOWEuNjI1LjYyNSwwLDAsMSwwLDEuMjVaIi8+PC9zdmc+ + mediatype: image/svg+xml + name: serverless-operator + schema: olm.package + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.34.1 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.34.1' + - name: serverless-operator.v1.36.1 + replaces: serverless-operator.v1.36.0 + skipRange: '>=1.36.0 <1.36.1' + - name: serverless-operator.v1.36.0 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.36.0' + name: stable + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.29.1 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.29.1' + name: stable-1.29 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.30.2 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.30.2' + name: stable-1.30 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.31.1 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.31.1' + name: stable-1.31 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.32.2 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.32.2' + name: stable-1.32 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.33.3 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.33.3' + name: stable-1.33 + package: serverless-operator + schema: olm.channel + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.34.1 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.34.1' + name: stable-1.34 + package: serverless-operator + schema: olm.channel + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:003a5c5c3682db69aa57da4c05ed3ccbaf94fb80a4972c8ddcf91eb3d5e299b9 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:1905984e13c9d165aad06f954904fc33d3f3a6e2f0041f98bc5840d05a87abaf + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0d73e731e7defc5d1da1aa3a347b419ce5d6f2b6b880403cb2e0871a8b3bb240 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:8da1dda3de163dc82927ad732d560e9c5c7daca3a8d3b46110b561441c483af9 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0422f8843fc62c2b72e01ffefd33db912a1ad3d70ac297882d3663c9b7299f10 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:edb6116289b3c722aca7614eb06b655e2081ebda74a9b7a82261ae1fa1e76408 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0516545990ec466969730d43136016c10e7dc34f633bf2646463d12145d9f917 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:832677abddada05258b4610b6584d442dd20c5bdd55ae8fbddb83ac133b3f12e + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2f82fcdc9a5424a2e195fda62ce0a018970e0211f253eb0d5ae47a72dd0bb6fc + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91b90a9ba578595836772b4f7ecccebf77d1dcaf04c62e3f532d9beed90eb465 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:12373623440b5b1aaea228550674ee69fe926ac6f12e7adffb5592afe1b98fca + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:16b39335e97bcc7c970a8ba385c61d8333e9912faaee813ccf8520d434b7bb7a + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:ffcf75e33c5bf527488fc196bd94bf615ac06ba5735d87cf568777f27817d214 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:51ac9aced282f62c8fb2d3696da3696b8496d8f877e9846fe3a4a743ccd63bea + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:469ae5fc8a478d6d06b13e218a000f34dd988eb69a9488a6349d67c76bda5b49 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:a82288782b61ea46d068cc09ee10608d3201c136abfc767e4d37734775101390 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:b84351200cba437c323f7f21d0cb58e0a443d772376a9ea6de1278a68d1c2c7d + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:828d31bf8a441091b8aed03da213a6b4ffae260070eff58c3319156f9bf04f5a + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:9bee3204d9fafe46f9f188e7ea10ac4843eaaf72a5f9dda68f6d8d7a92310218 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:f938cc534fc4b24bb9449f1e1e1e904dc588e6646c98474de4b8c81d083b4d96 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:82b9bfb8b83701db1a9b891d1ffc1e782d4b0f971fc9a53525942845c2602934 + schema: olm.bundle + - image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:095629572a40469eb651c9f81d6c10ff46254eff8b9813cadce54d6f0075c2fb + schema: olm.bundle + - schema: olm.bundle + image: quay.io/redhat-user-workloads/ocp-serverless-tenant/serverless-operator-136/serverless-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3 + - entries: + - name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' + - name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' + - name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' + - name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' + - name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' + - name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' + - name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' + - name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' + - name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' + - name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' + - name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' + - name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' + - name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' + - name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' + - name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' + - name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' + - name: serverless-operator.v1.34.1 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.34.1' + - name: serverless-operator.v1.36.1 + replaces: serverless-operator.v1.36.0 + skipRange: '>=1.36.0 <1.36.1' + - name: serverless-operator.v1.36.0 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.36.0' + name: stable-1.36 + package: serverless-operator + schema: olm.channel +schema: olm.template.basic diff --git a/olm-catalog/serverless-operator-index/v4.20/catalog/serverless-operator/catalog.yaml b/olm-catalog/serverless-operator-index/v4.20/catalog/serverless-operator/catalog.yaml new file mode 100644 index 0000000000..f60c9007c3 --- /dev/null +++ b/olm-catalog/serverless-operator-index/v4.20/catalog/serverless-operator/catalog.yaml @@ -0,0 +1,8449 @@ +--- +defaultChannel: stable +icon: + base64data: PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzOCIgaGVpZ2h0PSIzOCIgdmlld0JveD0iMCAwIDM4IDM4Ij48ZGVmcz48c3R5bGU+LmF7ZmlsbDojZmZmO30uYntmaWxsOiNlMDA7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJhIiBkPSJNMjgsMUgxMGE5LDksMCwwLDAtOSw5VjI4YTksOSwwLDAsMCw5LDlIMjhhOSw5LDAsMCwwLDktOVYxMGE5LDksMCwwLDAtOS05WiIvPjxwYXRoIGQ9Ik0yOCwyLjI1QTcuNzU4Nyw3Ljc1ODcsMCwwLDEsMzUuNzUsMTBWMjhBNy43NTg3LDcuNzU4NywwLDAsMSwyOCwzNS43NUgxMEE3Ljc1ODcsNy43NTg3LDAsMCwxLDIuMjUsMjhWMTBBNy43NTg3LDcuNzU4NywwLDAsMSwxMCwyLjI1SDI4TTI4LDFIMTBhOSw5LDAsMCwwLTksOVYyOGE5LDksMCwwLDAsOSw5SDI4YTksOSwwLDAsMCw5LTlWMTBhOSw5LDAsMCwwLTktOVoiLz48cGF0aCBjbGFzcz0iYiIgZD0iTTE0LDIzLjQ3NjZIMTBhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNCwyMy40NzY2Wm0tMy4zNzUtMS4yNWgyLjc1di0yLjc1aC0yLjc1WiIvPjxwYXRoIGNsYXNzPSJiIiBkPSJNMjEsMjMuNDc2NkgxN2EuNjI1My42MjUzLDAsMCwxLS42MjUtLjYyNXYtNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUtLjYyNWg0YS42MjUyLjYyNTIsMCwwLDEsLjYyNS42MjV2NEEuNjI1My42MjUzLDAsMCwxLDIxLDIzLjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0xNy41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwxNy41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yNC41LDE2LjQ3NjZoLTRhLjYyNTMuNjI1MywwLDAsMS0uNjI1LS42MjV2LTRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LS42MjVoNGEuNjI1Mi42MjUyLDAsMCwxLC42MjUuNjI1djRBLjYyNTMuNjI1MywwLDAsMSwyNC41LDE2LjQ3NjZabS0zLjM3NS0xLjI1aDIuNzV2LTIuNzVoLTIuNzVaIi8+PHBhdGggY2xhc3M9ImIiIGQ9Ik0yOCwyMy40NzY2SDI0YS42MjUzLjYyNTMsMCwwLDEtLjYyNS0uNjI1di00YS42MjUyLjYyNTIsMCwwLDEsLjYyNS0uNjI1aDRhLjYyNTIuNjI1MiwwLDAsMSwuNjI1LjYyNXY0QS42MjUzLjYyNTMsMCwwLDEsMjgsMjMuNDc2NlptLTMuMzc1LTEuMjVoMi43NXYtMi43NWgtMi43NVoiLz48cGF0aCBkPSJNMjksMjYuNDc2Nkg5YS42MjUuNjI1LDAsMCwxLDAtMS4yNUgyOWEuNjI1LjYyNSwwLDAsMSwwLDEuMjVaIi8+PC9zdmc+ + mediatype: image/svg+xml +name: serverless-operator +schema: olm.package +--- +entries: +- name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' +- name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' +- name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' +- name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' +- name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' +- name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' +- name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' +- name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' +- name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' +- name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' +- name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' +- name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' +- name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' +- name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' +- name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' +- name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' +- name: serverless-operator.v1.34.1 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.34.1' +- name: serverless-operator.v1.36.1 + replaces: serverless-operator.v1.36.0 + skipRange: '>=1.36.0 <1.36.1' +- name: serverless-operator.v1.36.0 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.36.0' +name: stable +package: serverless-operator +schema: olm.channel +--- +entries: +- name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' +- name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' +- name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' +- name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' +- name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' +- name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' +- name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' +- name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' +- name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' +- name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' +- name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' +- name: serverless-operator.v1.29.1 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.29.1' +name: stable-1.29 +package: serverless-operator +schema: olm.channel +--- +entries: +- name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' +- name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' +- name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' +- name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' +- name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' +- name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' +- name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' +- name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' +- name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' +- name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' +- name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' +- name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' +- name: serverless-operator.v1.30.2 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.30.2' +name: stable-1.30 +package: serverless-operator +schema: olm.channel +--- +entries: +- name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' +- name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' +- name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' +- name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' +- name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' +- name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' +- name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' +- name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' +- name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' +- name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' +- name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' +- name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' +- name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' +- name: serverless-operator.v1.31.1 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.31.1' +name: stable-1.31 +package: serverless-operator +schema: olm.channel +--- +entries: +- name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' +- name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' +- name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' +- name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' +- name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' +- name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' +- name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' +- name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' +- name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' +- name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' +- name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' +- name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' +- name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' +- name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' +- name: serverless-operator.v1.32.2 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.32.2' +name: stable-1.32 +package: serverless-operator +schema: olm.channel +--- +entries: +- name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' +- name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' +- name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' +- name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' +- name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' +- name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' +- name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' +- name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' +- name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' +- name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' +- name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' +- name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' +- name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' +- name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' +- name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' +- name: serverless-operator.v1.33.3 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.33.3' +name: stable-1.33 +package: serverless-operator +schema: olm.channel +--- +entries: +- name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' +- name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' +- name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' +- name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' +- name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' +- name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' +- name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' +- name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' +- name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' +- name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' +- name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' +- name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' +- name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' +- name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' +- name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' +- name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' +- name: serverless-operator.v1.34.1 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.34.1' +name: stable-1.34 +package: serverless-operator +schema: olm.channel +--- +entries: +- name: serverless-operator.v1.20.0 + replaces: serverless-operator.v1.19.0 + skipRange: '>=1.19.0 <1.20.0' +- name: serverless-operator.v1.21.0 + replaces: serverless-operator.v1.20.0 + skipRange: '>=1.20.0 <1.21.0' +- name: serverless-operator.v1.22.0 + replaces: serverless-operator.v1.21.0 + skipRange: '>=1.21.0 <1.22.0' +- name: serverless-operator.v1.23.0 + replaces: serverless-operator.v1.22.0 + skipRange: '>=1.22.0 <1.23.0' +- name: serverless-operator.v1.24.0 + replaces: serverless-operator.v1.23.0 + skipRange: '>=1.23.0 <1.24.0' +- name: serverless-operator.v1.25.0 + replaces: serverless-operator.v1.24.0 + skipRange: '>=1.24.0 <1.25.0' +- name: serverless-operator.v1.26.0 + replaces: serverless-operator.v1.25.0 + skipRange: '>=1.25.0 <1.26.0' +- name: serverless-operator.v1.27.0 + replaces: serverless-operator.v1.26.0 + skipRange: '>=1.26.0 <1.27.0' +- name: serverless-operator.v1.27.1 + replaces: serverless-operator.v1.27.0 + skipRange: '>=1.26.0 <1.27.1' +- name: serverless-operator.v1.28.0 + replaces: serverless-operator.v1.27.1 + skipRange: '>=1.27.0 <1.28.0' +- name: serverless-operator.v1.29.0 + replaces: serverless-operator.v1.28.0 + skipRange: '>=1.28.0 <1.29.0' +- name: serverless-operator.v1.30.0 + replaces: serverless-operator.v1.29.0 + skipRange: '>=1.29.0 <1.30.0' +- name: serverless-operator.v1.31.0 + replaces: serverless-operator.v1.30.0 + skipRange: '>=1.30.0 <1.31.0' +- name: serverless-operator.v1.32.0 + replaces: serverless-operator.v1.31.0 + skipRange: '>=1.31.0 <1.32.0' +- name: serverless-operator.v1.33.0 + replaces: serverless-operator.v1.32.0 + skipRange: '>=1.32.0 <1.33.0' +- name: serverless-operator.v1.34.0 + replaces: serverless-operator.v1.33.0 + skipRange: '>=1.33.0 <1.34.0' +- name: serverless-operator.v1.34.1 + replaces: serverless-operator.v1.34.0 + skipRange: '>=1.34.0 <1.34.1' +- name: serverless-operator.v1.36.1 + replaces: serverless-operator.v1.36.0 + skipRange: '>=1.36.0 <1.36.1' +- name: serverless-operator.v1.36.0 + replaces: serverless-operator.v1.35.0 + skipRange: '>=1.35.0 <1.36.0' +name: stable-1.36 +package: serverless-operator +schema: olm.channel +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:003a5c5c3682db69aa57da4c05ed3ccbaf94fb80a4972c8ddcf91eb3d5e299b9 +name: serverless-operator.v1.20.0 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.20.0 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2022-01-26T07:00:42Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + olm.skipRange: '>=1.19.0 <1.20.0' + operatorframework.io/cluster-monitoring: "true" + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Kafka components + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.6/html-single/serverless/index#serverless-getting-started). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications + * without modifying producer or consumer, and + * with the ability to select a specific subset of events from a particular producer + + ## Serverless functions + Serverless functions extend Knative allowing developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Serverless functions bring greater efficiency, more scalability and faster development that facilitate rapid go-to-market. + + Other features include: + - Based on Buildpacks + - Quarkus, Node and Go support + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Support for creating, building and deploying serverless functions for multiple runtimes (Node, Quarkus, Golang) + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.6/html/serverless/administration-guide#installing-openshift-serverless) + - [Getting + started](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.6/html/serverless/serverless-getting-started) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.6/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.19.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-kafka-broker-controller-rhel8@sha256:e7af2251f613b58c9661b9822942226a16c722b95bed4ca661fbd2fd84916272 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-kafka-broker-dispatcher-rhel8@sha256:53f63604e0557a1f0936c0fdb8484e8c41555ea6c36bd7813b74a83a56fbe7aa + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-kafka-broker-receiver-rhel8@sha256:c4138cb979dc9b1ce7d890aa25fdc194f1d6669df17e9ee564c321986bc75895 + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-kafka-broker-webhook-rhel8@sha256:a2c3e8d41578a2236125c3e5a949e2b6c82139cb033db4a457577aeeebe562c5 + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:b61ae07d5e3dc7483e050e311962b85d91d9481ca1962dc0c57f62ba13b54c35 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:18b03a7e7a698fd1507c1082d7013d4a254a1852280718b2c63f864ea7000c56 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:8df9c7d974607b2bc51dccf9205621323b4d7cfa9fd5a6bc5997dd10d9d24461 + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:90aaad80d64f19c37c5ae4af73af1bd6236429742edb9b902219531ea2484fa0 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:655cfaaed21a8a021a1c5c79cd4dcc5f1e5c39b59804b510a51d0adfbb98e5fc + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:655cfaaed21a8a021a1c5c79cd4dcc5f1e5c39b59804b510a51d0adfbb98e5fc + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-cleanup-rhel8@sha256:7a7e2f6fa568d5dc39d702c2b95a9a2a389533c7fcd3c881399e4c9ce3a1813e + name: KAFKA_IMAGE_v0.26-eventing-kafka-channel-post-install-job__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-controller-rhel8@sha256:3ae993986aad5cf3d6ab0764883d888973708805d9e2eed5029938217dded1e8 + name: KAFKA_IMAGE_kafka-ch-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-dispatcher-rhel8@sha256:8c2ffee91216f1473a2a83c4c7da79e5aec2b6e27f7d2e080313b52ec9210dcc + name: KAFKA_IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-webhook-rhel8@sha256:593c8dd85b72fc61c544a2a80c14e76ba8a80bae289859f9901d027fd8789e34 + name: KAFKA_IMAGE_kafka-webhook__kafka-webhook +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-source-controller-rhel8@sha256:9678fba882afd9b3a694f5e7963dc8288848d8732bbc64324d563038447887d8 + name: KAFKA_IMAGE_kafka-controller-manager__manager +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-source-receive-adapter-rhel8@sha256:d827b639bed34b01017a0e285dfb1d82a7735fcd77c4d3451fad653571b5bc8a + name: KAFKA_IMAGE_KAFKA_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:3edf6e507eb078b2222308cc6eed252ce5eda16e64260590646c28bcf911305a + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:3243beab3e944a62ce3f696a2701908343c7d9b57694e9d27d6e8063a47bcd51 + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:3d27912976ee6c6d24e0ba09d18008f7d8b26198700595be29ccb6183d271467 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:fd094c5fe1b03b2dcb02c03c5a6110845040ba3f28d9e7462e9c9d1d07d8af72 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:27dee9e0ca2a5578bee9d777190c35570bb141a6910a5b97b439148d7699faa5 + name: IMAGE_storage-version-migration-eventing-eventing-0.26.0__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-sugar-controller-rhel8@sha256:d9949b5ca998775677f1ded9f9e69ed8d97794c979e0d3cfcd2cb5aa21b14c56 + name: IMAGE_sugar-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:286591b2d982d0f7596644bd634fc4c363b6426c1d8f3a983ec1c9677436a309 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:9e9439eeaaefd0367879717305c98ecba2a83ed6558d526246b4157d0660a574 + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:c21e94f825242a1d6adfc8073fee29ba13ae4a6d31bd2cae0954ae5d27f3309e + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:0ce21db1875e2e7f7c58c5510d434722ca0bb02fd9ce39e3e0a554988d8aacd6 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:430744d0e8d108f1cdacc41d8c020d4b3869cae1158abb361bfa893077cbef85 + name: IMAGE_kourier-control +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:430744d0e8d108f1cdacc41d8c020d4b3869cae1158abb361bfa893077cbef85 + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:ff83481b41f502ae6c7e629ed0aae8692fc7efc180034890650d93784dea0a0a + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:f24348abc22959bd0e378121181098ebd8ee27d22498c4fc3a4ff5f6f93424c1 + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:003a5c5c3682db69aa57da4c05ed3ccbaf94fb80a4972c8ddcf91eb3d5e299b9 + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:b38e0446549dcde3ff960b4c6b660304017501094f1542e7b65b89dea296d7f7 + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:c4da32d3ba28a571f90fe7c1608c27b60539d22f22e49be2b7ccf39456f01e12 + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:8af9752db1b374d2ab7e937430783246c9bfa21208d737cdf3b506624ca34fb3 + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:f7a947f4e4307307e9d978645181d9421c7bf78921cb802b184e5ef540e3501b + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:61029ddfcd2d6817bc967cf893a66fc9d64ef161918eb275e09ce9fafbb35f8b + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8@sha256:f2893793ca05047bf11ce6c89ace163dbee0ef0c20f605cab860eb7eb8978c4a + name: IMAGE_domain-mapping +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8@sha256:f510e34ca5d46e728e0c5f58b8df51994955dfe75752e6df092825d86ac6069b + name: IMAGE_domainmapping-webhook +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:ebd14b9efd29d15b09ebab14f3615cea477db47feca37afeeca475f548cd45af + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:7b1010d1a250a04c82f74eea92f2eb2e889c6a2acbc892d7e8c7b603cd8f5c48 + name: IMAGE_storage-version-migration-serving-serving-0.26.0__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:79df0772b7dbaac2443a03390a71c54e325a0c2d425758caa3c611d9844c9add + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:13f566dca713189e5bdb4c67c1754fafc1ebc3f8b9696ccb2093f927d186737f + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:7a7145e20786d051ce14f0b566481ffe5dc71324acc1dffae31dca84dcbf0e24 + name: IMAGE_KUBE_RBAC_PROXY +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:1905984e13c9d165aad06f954904fc33d3f3a6e2f0041f98bc5840d05a87abaf +name: serverless-operator.v1.21.0 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.21.0 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2022-03-21T05:26:13Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + olm.skipRange: '>=1.20.0 <1.21.0' + operatorframework.io/cluster-monitoring: "true" + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Kafka components + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.9/html/serverless/install#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Serverless functions + Serverless functions extend Knative allowing developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Serverless functions bring greater efficiency, more scalability and faster development that facilitate rapid go-to-market. + + Other features include: + - Based on Buildpacks + - Quarkus, Node and Go support + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Support for creating, building and deploying serverless functions for multiple runtimes (Node, Quarkus, Golang) + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.9/html/serverless/install) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.9/html/serverless/develop) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.9/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.19.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-kafka-broker-controller-rhel8@sha256:9a426067df621818911d18aa8bcf9662bc9bebed5f7a85cbd1d087fcacf41987 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-kafka-broker-dispatcher-rhel8@sha256:598ac6d11807e022b3126d465e142ac582853becf788666016b6dc3e506c3047 + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-kafka-broker-receiver-rhel8@sha256:63595f749af167a3bfa771d6e8314db1a5068d77ac39a487c73b32c55c07f02d + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-kafka-broker-receiver-rhel8@sha256:63595f749af167a3bfa771d6e8314db1a5068d77ac39a487c73b32c55c07f02d + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-kafka-broker-webhook-rhel8@sha256:54c127c7a886a3ec752c834324b42a6a949ddc14561a40701aa83079851bd2b8 + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:c425ae9064a28818a0e0516fd267d35fc9868f88efa0bf58306809ddfda34598 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:cadf52f5ff038e71389712b1486dd9a8855bb96ea31f50555475d3086c9ae835 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:82018fde6f1aac486061ad4ed3f4cb903e06907b4be7262ca03b787dd366ff8b + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:a1205e7ac1be07bfc249d8fbbc0dcae6d0271c23e159740527ceecff40c2cd94 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:2692bc167f42d9b62a2ee9b8f0777c20d25d93585c74620e093ab6929d64dcdf + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:2692bc167f42d9b62a2ee9b8f0777c20d25d93585c74620e093ab6929d64dcdf + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-controller-rhel8@sha256:489919a8e4dafb302263382dbfe3502403ebddb5c73b28a1c1af9d2056b75c56 + name: KAFKA_IMAGE_kafka-ch-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-dispatcher-rhel8@sha256:19c0bcd6dca80e63a142e0c8c507f83bb1d990ddf09e066a129ccff231fd6a83 + name: KAFKA_IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-webhook-rhel8@sha256:3ad823512c58e09627e9f1be57726b13f1874e62f08faf50611d2d8e502f38e7 + name: KAFKA_IMAGE_kafka-webhook__kafka-webhook +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-source-controller-rhel8@sha256:8e8f76359c2a82284edd853aac0b979ad0711edb5f0790731f664043bfe92a26 + name: KAFKA_IMAGE_kafka-controller-manager__manager +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-source-receive-adapter-rhel8@sha256:bf62394ad8558f5723bddc2193de4ff185c45c1c64e3527491a939aa3f585ce9 + name: KAFKA_IMAGE_KAFKA_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-storage-version-migration-rhel8@sha256:01a691af2aff77b065443f92c8d2c07f4c2f40b570852dcc5cd15147ee8dde01 + name: KAFKA_IMAGE_storage-version-migration-kafka-source-1.0.0__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-storage-version-migration-rhel8@sha256:01a691af2aff77b065443f92c8d2c07f4c2f40b570852dcc5cd15147ee8dde01 + name: KAFKA_IMAGE_storage-version-migration-kafka-channel-1.0.0__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:29567865d535c2f3b16db3e1581d20c3530df101c8432629f52530799cd748ee + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:91e45fd99b82de8fd1cc2f56fcc428e2106de041b0986a405c7ca150f72ffa11 + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:fe3c0770c875a9406c569e551635b1deb669e7daabd1bc541aa4cba1305603f2 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:369f58813fda9fe3c4ca8ead6b05cc750ce7437d5afb8f915192da3cf405c269 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:961a0612e2cade3a3312364ea33bd176d34a1a56acf74fd7ea28133793399e65 + name: IMAGE_storage-version-migration-eventing-eventing-1.0.0__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-sugar-controller-rhel8@sha256:8d40f49954e9bb1f1235da4a0ed17a5fdd01fad7943791e56ec47fe99812cf88 + name: IMAGE_sugar-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:3a2b6a5fe33746b6a2cb0577ddb3beef95d72491ffb64a3e7e8b33e370312544 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:8f85446e458fe5953541dfa99294672c498cf5091e3c13b2d0b5b34678741d2f + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:ff0e4fcdb5c92f434714f33c844761c5f909b481ff17cd73fa53338c789455cc + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:3becb8b067c1b9393df2b7d81604b0b06f4753f81dd25b7dfd2f7c392554c1a3 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:0bfbfdcf1cf7f0d00f1bd45496b301eb47f8d4c9ee71df9fd5e26c98d71913b7 + name: IMAGE_kourier-control +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:0bfbfdcf1cf7f0d00f1bd45496b301eb47f8d4c9ee71df9fd5e26c98d71913b7 + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:3200aa708b9f2424e208b5f4761a8500ce381887c313f9ead1381232e1d608c8 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:6e0a1b6060b2f054e24749f9cd527e434d15bf8486f8787ded87acafc68b0ad5 + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:1905984e13c9d165aad06f954904fc33d3f3a6e2f0041f98bc5840d05a87abaf + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:f6a9cfb08f922881159020394c7cceaf54366541012313975a250667e7fa6e54 + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:6498db836688f86bf46f19d42e5dab4afb7d8d35b6fa88daa6d6ce415a33e435 + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:3b0d42654df1608b930a5fee5cd48c56a58e82fdbf9f1165cb12e9a33e5b53b9 + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:ba0981152ab8ba266559e36076cfa3a75ac69cb4f817d082ae029dfc30f58962 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:63f8bf89831e96053ac53a7982b936ea3ea0f1706aeed87491e650f0ea06855e + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8@sha256:c656083c3d58fe1cb4921c91b0591fb9c41437745d092a4cc4070f7b4be1ed7d + name: IMAGE_domain-mapping +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8@sha256:7014a0e70839ce87a46b3756aaa2872ace35fbf37b212731aece2f0e8e02bae1 + name: IMAGE_domainmapping-webhook +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:f4c86c2e1f72495c6ab9ae024c58ef7e38d838e437ea955627fffbc0fc3e41ad + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:30ea9ae3223fcff9c6c91febe8063739971e1ef4618872a470729f1477d3637b + name: IMAGE_storage-version-migration-serving-serving-1.0.1__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:d8cbca46df62c13cae6888a5ab7f8e3e301341d0f291362eaa427610955a1a78 + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:13f566dca713189e5bdb4c67c1754fafc1ebc3f8b9696ccb2093f927d186737f + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:b6fde43491c2e0733c8fe6ee8660f7f6435fe20c0b6d435cfc7f86eeab8b4748 + name: IMAGE_KUBE_RBAC_PROXY +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0d73e731e7defc5d1da1aa3a347b419ce5d6f2b6b880403cb2e0871a8b3bb240 +name: serverless-operator.v1.22.0 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.22.0 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2022-05-04T11:53:23Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + olm.skipRange: '>=1.21.0 <1.22.0' + operatorframework.io/cluster-monitoring: "true" + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Kafka components + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.9/html/serverless/install#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Serverless functions + Serverless functions extend Knative allowing developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Serverless functions bring greater efficiency, more scalability and faster development that facilitate rapid go-to-market. + + Other features include: + - Based on Buildpacks + - Quarkus, Node and Go support + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Support for creating, building and deploying serverless functions for multiple runtimes (Node, Quarkus, Golang) + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.9/html/serverless/install) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.9/html/serverless/develop) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.9/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.19.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-kafka-broker-receiver-rhel8@sha256:0ba3bc18aeacb366815f99db3371ef79cf27b5badfdd2b3833fbb6eb58f4d3c0 + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-kafka-broker-receiver-rhel8@sha256:0ba3bc18aeacb366815f99db3371ef79cf27b5badfdd2b3833fbb6eb58f4d3c0 + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:3df500df58f86ea07ffae63b2d12de6a4dc22c344a2b582d985fa0135c3c7f70 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:13d8a81640c7ba42212de65878274627e8502446c5278dad3bc2f12743e5ed22 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:7c7c2fc45b9263a6e5d6113b62a0048df1250a5d884473d7c9776deb7124207a + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:bca473cfef83b56ff4b67346134540c4e3ce39f43068fb8ad5084f51740efeb6 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:d7214756a96c61323f388289ff3abeb791c0b14d19e5f13b188f4b9fe6d2dd19 + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:d7214756a96c61323f388289ff3abeb791c0b14d19e5f13b188f4b9fe6d2dd19 + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:1f5df72484aa89af08c3933490aceffcfde0bb59eacb52aa862da09769d89f0d + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:6642dae76e63b0386d18b9550e4e0ce6b5496eb4b143f2f4825c6c8811b7e422 + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:6642dae76e63b0386d18b9550e4e0ce6b5496eb4b143f2f4825c6c8811b7e422 + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:a13e6f5797dd89186af1703e802f74197cfd81bd158642981219907117d105c4 + name: KAFKA_IMAGE_kafka-controller-post-install-__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:e50e677af16d8ba684c768cda44c15e8a7435988598ad97af2127d531f80d0d7 + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-controller-rhel8@sha256:ed4fc85d182d8a09f1e883db12cd90fd73a701d46693c9623388c7b0cb2850f3 + name: KAFKA_IMAGE_kafka-ch-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-dispatcher-rhel8@sha256:2001e3462b8579a918297dbe54cc7ea92ccf129df38a415e154ea854a6b63f0d + name: KAFKA_IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-channel-webhook-rhel8@sha256:3712279fffdf370dfa77ab64721e923379e936e1e2a53b20ad8f5719d4a9f692 + name: KAFKA_IMAGE_kafka-webhook__kafka-webhook +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-storage-version-migration-rhel8@sha256:f04e0cbeab7aaee730693817727807ebed55b951c757bf6affed1ce7ff267dc2 + name: KAFKA_IMAGE_storage-version-migration-kafka-channel-__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:10f042c5a9334b768a915dd2c06a931744f448c331bf825d0bd53ea62c5cd2e8 + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:1fb1fe631c26a4908c64cdada9526baa4eb7d75e9ad8c2b56f9d2ce0104afc3b + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:39cf5e7f70fc396f861d7f1e9d17ad0d98b8c7606797bdcf930ee8119d3f183b + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:118a8a4af60c990185df3e971908c82101472505cf99a140e0480e2e78fa1fb0 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:ab3213e9d1c03771688fa0f44459a398d071223f62d07a6789ae11a5e2bef20c + name: IMAGE_storage-version-migration-eventing-eventing-1.1.0__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:ab3213e9d1c03771688fa0f44459a398d071223f62d07a6789ae11a5e2bef20c + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator-__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-sugar-controller-rhel8@sha256:933f27804297123f249baa4b176fdc2189fe70629d2a508219a9c35507235282 + name: IMAGE_sugar-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:c47c5c6214695ead9887e35bf0634f5f928dd548fa45c092e2eaa5cad3a4b8f9 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:d1a41da96d8a07a7d2961cc2f222263f160e9b0975f103c1a3bc61df8280b15b + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:a6cada4d400f4326054c84d3fd367aa7ff60938361ca9b2489e3592954892f5f + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:8125cb05c705bb0f6b900478be95a1ba0b867a9bdf61385d67ca377fb7a68599 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:af0441be17265705e52829a44e6f0bdde7c6ccce8fde331a2328ed0926fb5da7 + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:af0441be17265705e52829a44e6f0bdde7c6ccce8fde331a2328ed0926fb5da7 + name: IMAGE_kourier-control +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:87fb543636775c8ff059e6388806ca36b4c6e4f2c08ae2d45593ded6b700dfa1 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:d9d17b7ef4143069b299db8eef5cad9d85370da041461a39341beafc6552940d + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0d73e731e7defc5d1da1aa3a347b419ce5d6f2b6b880403cb2e0871a8b3bb240 + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:d0ada53609f8ce3e0d159ecf505aede131a120a93a03168f3be410f75cbf8d46 + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:a18734393eb160a4b8594f41b8df0b4077bc898f24c3090ab60dbfdd26b9cc64 + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:0f89451821a861d6f4b39d5e031fd6eecd348d3546aec9a24aa91625c8469135 + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:24422240c308d79f282ecab1fb706252eef8b2a379af2fb86aba582f24606b6d + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:780ccc1c9de02f70513b564e021118186e7ccd8de2d011250436aefccbc412aa + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8@sha256:354cbace2e2e46ec28cd8bfc4014d4033de71ddc040bf6904851a43576de3c19 + name: IMAGE_domain-mapping +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8@sha256:a7923535848df7ac0ce6fea6710a1867cdd25a5b68e5bbb17b53e84d26285cfc + name: IMAGE_domainmapping-webhook +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:1197add615c859ed1744a44e6088c203be1d09ba66a7eea45eeab022fc4bb2d0 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:101e5f57ee6ba9748e716d21fe420343a44be65738109a6dc27e79c80f121d98 + name: IMAGE_storage-version-migration-serving-serving-1.1.2__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:61bcf2402ca520ef3bcbdc60fd347ba8996e6708ef6e221366ad2b8516e5f863 + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:1d0b1923f82a06c1c318cb73bee362eaf396b66205e541509f36bea90a7a12aa + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:20954f1fd9c2bac5cabaedbeec25d60b31546ffc05f3e4c38ffcf45e2ed41be9 + name: IMAGE_KUBE_RBAC_PROXY +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:8da1dda3de163dc82927ad732d560e9c5c7daca3a8d3b46110b561441c483af9 +name: serverless-operator.v1.23.0 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.23.0 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2022-06-21T13:42:32Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + olm.skipRange: '>=1.22.0 <1.23.0' + operatorframework.io/cluster-monitoring: "true" + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Kafka components + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.10/html/serverless/install#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Serverless functions + Serverless functions extend Knative allowing developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Serverless functions bring greater efficiency, more scalability and faster development that facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Support for creating, building and deploying serverless functions for multiple runtimes (Node, Quarkus, Golang) + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.10/html/serverless/install) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.10/html/serverless/develop) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.10/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.19.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-kafka-broker-receiver-rhel8@sha256:2db5d5a0378f448ed3e81ce7bccd5be24b65f2cd0b8a2d9a65afb6e57d39250d + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-kafka-broker-receiver-rhel8@sha256:2db5d5a0378f448ed3e81ce7bccd5be24b65f2cd0b8a2d9a65afb6e57d39250d + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-kafka-broker-receiver-rhel8@sha256:2db5d5a0378f448ed3e81ce7bccd5be24b65f2cd0b8a2d9a65afb6e57d39250d + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:1f287e16ac996cff369875c17051425ca8f318b1548c20c3bbdf6600f1abaff6 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:40fd82ffd4078cd0055cd5819b2a093e836dafb1198f2e58a9343c227ed1d4a2 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:a9e75c271d547b060ad33661611c0a4fdf4ae6dde492fbd354c62a9cb1e5df48 + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:0f725852e7f283f2cd6007fc8ccd6916c77a47507b9e386d8224de770f923ffe + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:0d6e607f3c8207a87d75179353276454d4200127b4378c847e7821e09c2da3df + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:0d6e607f3c8207a87d75179353276454d4200127b4378c847e7821e09c2da3df + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:64528a4adb9b34aa76bc65227c0a842157f56f53fc872e4637bd219823bff175 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:342278266de8cc110eb23cc67fb9dddca1040c400926955a433487db16a1ac51 + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:342278266de8cc110eb23cc67fb9dddca1040c400926955a433487db16a1ac51 + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:342278266de8cc110eb23cc67fb9dddca1040c400926955a433487db16a1ac51 + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:6eed6f3ac3261d0e2887249f233d5a3bb25f244b80166f4a99a3f5e44929091c + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:df0b6708c4ae46dd63d143f5fb94907157ed8c9801eb1cd5d743ad80d88a6e1b + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:a6d7ac8008a443f5938273b9b9351f2a67641d59c320d53a2fdca4bdb6608d01 + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:b00b0ac71e5dc3d125db4bec3940a08db8944a8a1853fca48c62b65acb18236d + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:35eea866f3b7ded420fe79c1c89049cc4cfed3698c55f4581ce92fcd5d36fa72 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:f7d6a87f4592ebaefccd8700642961313ceab45579ad03856675cff53af16389 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:7e3515f6eeebb68e45bbbcd61e99084a8f2846112394adbc58ef6d03cc6d51d1 + name: IMAGE_storage-version-migration-eventing-eventing-1.2.1__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:7e3515f6eeebb68e45bbbcd61e99084a8f2846112394adbc58ef6d03cc6d51d1 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-sugar-controller-rhel8@sha256:6349679a04029235ba4ac7106c99e1f5923f69d79bbe1b264f04bb88b58fc67d + name: IMAGE_sugar-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:c10b26e3d90f65a1c98a5e2b701dec433d3e525de6a22e90567e4af29b8b59a8 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:16a0f18d6855e266b88045c690d37833f8f9a0d22c17cbaa5f69f39979c7572b + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:6ea5f88b9348dbbc50556ee98042f7cb976d69917ac5bbf387cf3ef3caf799e8 + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:f1ecfc5e51805266b0c3818a6d4557cd169fdcc65ba719da42a4057ffa9150c9 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:dcc9a1a064b51fa7741db9511d57a122c11c0c8056d0c86ce29d5df026164afb + name: IMAGE_kourier-control +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:dcc9a1a064b51fa7741db9511d57a122c11c0c8056d0c86ce29d5df026164afb + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:2c18de609b0ad5fb440102fac85f3080357f3a684fca995a6389d668c51bc05f + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:b8b38dbe130129ea3b2429c9dfc08e945b788984be6724fa1c959e3d7ba9ff7c + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:8da1dda3de163dc82927ad732d560e9c5c7daca3a8d3b46110b561441c483af9 + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:6ec8368c6a59ced3e127b8a70e493e5a2cf8397eb148dfccc2f89bc758e08598 + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:f4da0f4dd3d1599e591cb315068cb45ed86d6a0788131225a9be16bc4c00ab78 + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:8c5765c7844590649153644b5a6db01725d436cadc158452bb511e295e4b353a + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:6b951c909628ddfcba163258e7e9bb22748fd046f9f340ac32b808ad927325f1 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:02d7e39b138576988f6eafc78132a0b4b7fed475294953dbd86391ed4c9b1d0e + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8@sha256:93d17e83146300a982d12182acc12610ccb9095ba95ca3059905ea533496a418 + name: IMAGE_domain-mapping +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8@sha256:8f0aab28c5d01f80dd84a16b6cb7cee12eba14ba65cfeb5702d6e103fc7193d1 + name: IMAGE_domainmapping-webhook +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:d0c793aa1d3886403c5f96b66422cb5a7ff93db4c418c63d554d8f829f2e15a6 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:925435f60deb19e6c4d477964d0fa9ccc8b53972d72f656cb37528e7ab1c8dfd + name: IMAGE_storage-version-migration-serving-serving-1.2.0__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:c55310ccc61bc428c0d0f9b785678f9324b93cb2b396434d8a59c7d689befeab + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:887b747cc1586def69e88536d18bfeda1b2d5b81947291633244af11dac7dc68 + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:3658954f199040b0f244945c94955f794ee68008657421002e1b32962e7c30fc + name: IMAGE_KUBE_RBAC_PROXY +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0422f8843fc62c2b72e01ffefd33db912a1ad3d70ac297882d3663c9b7299f10 +name: serverless-operator.v1.24.0 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.24.0 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2022-08-01T13:31:56Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + olm.skipRange: '>=1.23.0 <1.24.0' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Kafka components + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.10/html/serverless/install#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Serverless functions + Serverless functions extend Knative allowing developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Serverless functions bring greater efficiency, more scalability and faster development that facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Support for creating, building and deploying serverless functions for multiple runtimes (Node, Quarkus, Golang) + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.10/html/serverless/install) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.10/html/serverless/develop) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.10/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.19.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-kafka-broker-receiver-rhel8@sha256:7531d998167d4bf14e03d6a8c341b3e24c2e1d28b56e9aebbe5564ecba828b78 + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-kafka-broker-receiver-rhel8@sha256:7531d998167d4bf14e03d6a8c341b3e24c2e1d28b56e9aebbe5564ecba828b78 + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-kafka-broker-receiver-rhel8@sha256:7531d998167d4bf14e03d6a8c341b3e24c2e1d28b56e9aebbe5564ecba828b78 + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:11bc8c74fb9132baf29121ecb788a4a6b650c6a758174b61e47b5ae5727dfefc + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:ccba05cf3fe0d17b45395ab086aa9917656b40afe70dccb8b9a0f29505be0c62 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:87cc64d7ed8a02d7f6ea22c02fd23b7a55a74c0a10d82d07e3b6424744f036a3 + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:f1c17bc51adc70a8f6f5c27791d57d3d63d90564f4f19baa5b68a77c983591f0 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:8a6248c2dbeefec570e818d20c8120842ae7d00f221c2efc243f046155424d95 + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:8a6248c2dbeefec570e818d20c8120842ae7d00f221c2efc243f046155424d95 + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:683d005feabef8c2831f02f2f3343d507d87457a576fb180cf0e104e8b74df8b + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:623bbb3c17ff50b1d11188451e4cbf0fab265c844dfdba30517ad20788877c42 + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:623bbb3c17ff50b1d11188451e4cbf0fab265c844dfdba30517ad20788877c42 + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:623bbb3c17ff50b1d11188451e4cbf0fab265c844dfdba30517ad20788877c42 + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:c0b95510de68fe33a0a3f547d0d2e15deda3119f708ab0a452c65c3641ed615b + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:7d0e31b39c479f3e82a76dfa200bec7de33b5347b742731ef452c13e763faf32 + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:eb922a129932eb2013694bcd751664229510e1fb709c49545df39b922daa10dd + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:6c1e232ce55470d3cfd5761c19dc47b3d4a24ca40384e4f9441319e6fba6a02c + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:445365c0305f2b2abebb6941345b8f89d649449a63bdd771ecdd22c3e7897095 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:4494bf6284aac462fab1b82c131807b7a5efdc9faf474dcd20e6734aac27ea8f + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:f1972b264ebf651979efa081af696adfce05f6b342aa572c40c0c4b66f147809 + name: IMAGE_storage-version-migration-eventing-eventing-1.3.2__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:f1972b264ebf651979efa081af696adfce05f6b342aa572c40c0c4b66f147809 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-sugar-controller-rhel8@sha256:d4bed4c01ea8ad184c025aead4af42e25a68605363b95c334fbf1a5daead720e + name: IMAGE_sugar-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:f09ffc0a1b71d4c2fa9a70a74bcd1be74869a29c15751517a946c493e6b1566e + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:1cc2fed7d8696fccd7b73421e2b7214331ee5bef73abc1ebc63678fc1493998e + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:41d54f9d694d67f276c09092a12fe597aad19dabb047cd401db76276a933468a + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:176ad63e537cae9cff8e520d717bd3567a7859e513c2cadb2eb568ca8abc5a82 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:f2d478b9bb9f61d3b2b750e9066d7c19cc443c717dd02332e75d816dc676964e + name: IMAGE_kourier-control +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:f2d478b9bb9f61d3b2b750e9066d7c19cc443c717dd02332e75d816dc676964e + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:c9369227de2cbee0f460bbe3e060a276b5ff8e763d83a282c3d10142e8d0bad3 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:953c79b292a6ea4e4b887e5a58303f6716301a3e93d5443fdf4c86d0e3258acb + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0422f8843fc62c2b72e01ffefd33db912a1ad3d70ac297882d3663c9b7299f10 + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:9f08813bb45fc5e06885b5c01c734b8b70476b19114cdc8a2a45a2b4dff9aefd + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:4b18d81ac9e3a1958710d231856476c32515930a3a85ed369425355df0918800 + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:c70990baebcbe4a389c3329ad66bdc35c642b4c4894b3ec148437367a918b1ed + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:0ec7529dbcfbb3a89b711fa87c876a2034ec564122b506550ed77f9c3c20d7cb + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:efe7427e8f15c8824730ee4a1c0bec9005c7b9294651f0feb3d5ff5f3b14e29d + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8@sha256:110572383be118d5a7693594bf3400547d0b428e548af27ea9ae609599b8e1c8 + name: IMAGE_domain-mapping +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8@sha256:5d677b0b1aa62084522224b96b9736c8b35559e703980aede049159bd13f3578 + name: IMAGE_domainmapping-webhook +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:710e97c7d8f063ed1a26e86feec1668d4d8ed0388c3d2490453411f7bd5c1f50 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:d41af9b3dbd86d00027972d2c284dfb9a7eab00c01e34293fc0b80ca6e98da3c + name: IMAGE_storage-version-migration-serving-serving-1.3.0__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:d8ac03626fd046388e6a6ac9e4e49c24974ca222dcddf56301f946c22987a7b0 + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:1485769b50bf20c413d44840a5df955ad7a7979978937affe462fe7090ef61bd + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:011909289ad5a6e6dd012fafaab83117777073febb15536ee7e66a4d5830f303 + name: IMAGE_KUBE_RBAC_PROXY +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:edb6116289b3c722aca7614eb06b655e2081ebda74a9b7a82261ae1fa1e76408 +name: serverless-operator.v1.25.0 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.25.0 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2022-10-14T11:09:08Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + olm.skipRange: '>=1.24.0 <1.25.0' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Kafka components + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.11/html/serverless/install#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Serverless functions + Serverless functions extend Knative allowing developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Serverless functions bring greater efficiency, more scalability and faster development that facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Support for creating, building and deploying serverless functions for multiple runtimes (Node, Quarkus, Golang) + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.11/html/serverless/install) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.11/html/serverless/develop) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.11/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.19.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/ocp-tools-4-tech-preview/source-to-image-rhel8@sha256:98d8cb3a255641ca6a1bce854e5e2460c20de9fb9b28e3cc67eb459f122873dd + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_S2I +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:ddec439321826f4d627639348b984c88236b70d991300090acc3268de8026cd2 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@sha256:8ef9539d11a14d19bdf2fa86704adcf9d8c59d613a4ecbb19c0b2475f33f4fa1 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:6a8da8b816824bc0f21cd47c307cd107b5f9e73721bd1febe46a9cd5c9587db6 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:f58450c254f1b99f4c43d57747777341993da42e85381dc958cc1b7683671032 + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:2806145ae552b0d3e3d15eee04ce3932459c21b70b121af6e401e6b699974dd2 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:24d2df044804d5a6db2577e4c1c88b4c874dcaeec61a7d4c0d40ab6247ad87e2 + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:24d2df044804d5a6db2577e4c1c88b4c874dcaeec61a7d4c0d40ab6247ad87e2 + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:a01dffffd4d9098983293adb8492c8fbcd371ddd968bfa8447d08ad96f38d829 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:4841553c3fa69d92737b3627fccf46f77b0f5b54b0e062edd3b0577ca9684910 + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:4841553c3fa69d92737b3627fccf46f77b0f5b54b0e062edd3b0577ca9684910 + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:4841553c3fa69d92737b3627fccf46f77b0f5b54b0e062edd3b0577ca9684910 + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:41e6b33e2c7661bd1e3f08bcb2592c4a43e5267135e06c2f10d8f969bb099975 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:6a8678ebd3b28c1c489de394499f62391911ffdbef581bbf8046eef6b2a8c416 + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:6a8678ebd3b28c1c489de394499f62391911ffdbef581bbf8046eef6b2a8c416 + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:6a8678ebd3b28c1c489de394499f62391911ffdbef581bbf8046eef6b2a8c416 + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:6fcb506428b99e8770e00b9e68493cdb1015027cf3959297adc098e0c9b1d5ee + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:0fb4de1518783693b034bce98547c1290b50bf5944d1fb7abbb38e06c793f539 + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:0d99d244e2f48834fbb853facb3029fe41313e84cd2190aa705bc5199740ca73 + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:8bcb51ec7b4f729fe6d8a7a63a8403efa6f4883bef86acbb1706d7521348f98b + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:8bc831dfde37a3e6456728939337fd25ddadd1ce6fff8aeddc9208f424050b30 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:94dae9f5090ec109fcb43a288dd37abcf0e979b132914f2d5cb4d3d225fd583e + name: IMAGE_storage-version-migration-eventing-eventing-1.4__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:94dae9f5090ec109fcb43a288dd37abcf0e979b132914f2d5cb4d3d225fd583e + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:8b8a67d1a9a3dae95dbe2cf03a1c0d7acc8d39aee718ba393143546623d90fd9 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/func-socat-rhel8@sha256:395f5f2dc8995c014f64636494193414ca9f24a5b4a80e03ad280832580086ba + name: IMAGE_KN_PLUGIN_FUNC_SOCAT +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:2cb82235a069754855104cfcc985abdca49cb153d95043b962c4a2cffc071add + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:ed1afd32c625a6c4d3547176d0f6e7badbcd25f65ed2b1fa061a1b107e2e00bc + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:1364b19dd4810a9d5d40033b7baee9782bde4c16a838631404e62834d1851abd + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:5a38d84de56ac35ac0c3e68902cca47b496bc872065d48f0460aa24f0e968059 + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:5a38d84de56ac35ac0c3e68902cca47b496bc872065d48f0460aa24f0e968059 + name: IMAGE_kourier-control +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:a1f64d821efd9920c53af817182edf64bbe4a0829a163a4ad13bd58689c4ca19 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:55eeaf581d342a8535b09553d4bd0f0db46eacf3034d6269003fb5cbe0a0680c + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:edb6116289b3c722aca7614eb06b655e2081ebda74a9b7a82261ae1fa1e76408 + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:ea7b81a32147d88b0ae100797b5d82dd4e564c79f26fcced799af79ef138f6c5 + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:ded01f6a071237bf108bf143f1f401b2f0d0f975fd6de7cca0506a88e975a3c9 + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:5c84d3931586acc1e67109a580ecca8d67361561ec2fa50e9b318c702cc1491b + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:589d49eb5d0f33ef462b7dc25e94423bb37986ac6f89a407e5165e1fdc30af1c + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:5e630b8121acd1d4cd2a8a85aa2adcfad35b61845bc66a0b065ba8658bcf75b6 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8@sha256:c03f4d11790c91d679b234040436524efad6f27847a9bf2cd5191b62c9991363 + name: IMAGE_domain-mapping +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8@sha256:b3cbfa4ece5eceaf80adb115ccfe9a666d4ce9c31643903b6589b5b646959237 + name: IMAGE_domainmapping-webhook +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:1759aa4dc630d0d15882d570bd2b3abeec1628d6aeb012049bfd5b4839d05232 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:ac9bd799a6a70e51f4d605c365cb5a32e0f223f0daf3e0d01ef99d9c7c02708a + name: IMAGE_storage-version-migration-serving-serving-1.4.0__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:efee462eee82b83534fed2a1f038eee30d1f7c1313ad961a02660f18f977eeda + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:3589029ad53c303102cc08aabd8d8395eadb28cf503249aed22c41e129375a2a + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:ef2c41fb899228a64cf2f61d7606a980a5f8fcae820da246d25c4f17faa0da3d + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:a1e5cc0fb334e333e5eab69689223e8bd1f0c060810d260603b26cf8c0da2023 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0516545990ec466969730d43136016c10e7dc34f633bf2646463d12145d9f917 +name: serverless-operator.v1.26.0 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.26.0 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2022-12-01T16:39:45Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + olm.skipRange: '>=1.25.0 <1.26.0' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Kafka components + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.11/html/serverless/install#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.11/html/serverless/install) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.11/html/serverless/develop) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.11/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.19.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/ocp-tools-4-tech-preview/source-to-image-rhel8@sha256:98d8cb3a255641ca6a1bce854e5e2460c20de9fb9b28e3cc67eb459f122873dd + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_S2I +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:b1b1f4e0306297dbc5c1e87abbd9892bfd800d23d148651209db2f09ed30d9ca + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@sha256:89fb53858bb93ada958faff761915f45d01e3364b5e5df4ba05b01c4b8cde587 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:3391e74bd8a9337f553726039869c1ae24a861ecb8337eabbb5c3844a0cbc52b + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:8d2da1c16df8766618cf7e6ca49f017272591c97f1d88c639aab6de77c757333 + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:7feef3d3ec3ac5072d41f7ba93ee666ab1a20b84e034cddf56e0f3e9de31622a + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:23df9575999bf3fd29f278595ae2f36a31a87b5c4a58b61627cf8f717da8673f + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:23df9575999bf3fd29f278595ae2f36a31a87b5c4a58b61627cf8f717da8673f + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:3e12866ab3c8e521cd31349a7e592e23c45f5e0433fb31849ed73d2c341842b5 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:eea487578add89cd52a31f3a7913fc6c03cd03f0cc0aa285df01a00d2525c38e + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:eea487578add89cd52a31f3a7913fc6c03cd03f0cc0aa285df01a00d2525c38e + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:eea487578add89cd52a31f3a7913fc6c03cd03f0cc0aa285df01a00d2525c38e + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:427c142384a4820bb7c46fc47631b8b6eb99b26194e6ac3e5331bed8330aacd2 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:9caecb2e4066bf88acceb73f87d1b17ac1dffdb4264a3b358abf4b563c4e9b67 + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:9caecb2e4066bf88acceb73f87d1b17ac1dffdb4264a3b358abf4b563c4e9b67 + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:9caecb2e4066bf88acceb73f87d1b17ac1dffdb4264a3b358abf4b563c4e9b67 + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:b4eeaaef3d99f9d4f597152065fa19184c76c49642fef693093bba9f13c0f36a + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:b0416d01035debe4c528580b92cb5d94adb2b16007dda3d818b24f798e7e2892 + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:57236a569f76f6a3b17e6867c5d3dea31eb0ab017f4dbc01042681cb6f4e5ca2 + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:9bda943aa7b34206990a48f51694a5cb386a99eb730037ce6350f8c681566702 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:d0576e3ce7c50efd708c7d46fb05d050d7756cd8e95f6a12e1b62fb8cc6ab8c6 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:29349cbf4f5716933fcc86e7dea1e70fb08afa0c35a436253229e367caf325cc + name: IMAGE_storage-version-migration-eventing-eventing-1.5__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:29349cbf4f5716933fcc86e7dea1e70fb08afa0c35a436253229e367caf325cc + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:7cbdcafe8ade1f4f656081bc2f62faa78f1d75328d6db7946b421f534889db51 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/func-utils-rhel8@sha256:3ab4b3b60e5818eb46ea28a3d649c1fbde86d9d23b727ba96da717b83164a49f + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:20d49ca2d48e0f5d12dedc042fa6791d5b05fb6d5dec3e1b72788391d1b6368f + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:39b7b9449a82e04ed49fd6fe5e31f91a79b7b9cd3e7c01340953ecc334da33f3 + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:b7fc21abe0ead718056af5d6da041ac6de0d3e6dff88b962861392dc6d026dc9 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:b4c680970661373b003e15a5c5f899041a4dface6079395b3c90334027630f92 + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:b4c680970661373b003e15a5c5f899041a4dface6079395b3c90334027630f92 + name: IMAGE_kourier-control +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:6509429d95956bac73bd2531b262136bc121780aa245200f986b3437f061cb93 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:c317e8815afc35c8e8a800bd1c9a127126359b954beddf54a196db66c7f1a8f3 + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0516545990ec466969730d43136016c10e7dc34f633bf2646463d12145d9f917 + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:928c2b33631fef0cda1c1d3b241c2dfb897042e47b22434b220b0f9a2a806c3c + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:aa6a3ee558c19b9dc2b13bbd351843a7bdb12b40c6b94b9e5312578e0e4db6b4 + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:507798c908336173ab0d302e37edf48f39ebb827f42d3e8ee0932d0bf7f07fa3 + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:010bbd4fd08f134f7971c56c5c47d6eff487949bf4f7bb60cd4e511a65ae7c9c + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:bbe6d81eb3ce97d961d686a077e49f69ea26f8fa9746c2f04c9e6cfd3100ac67 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8@sha256:787657127dbde83cfcfd97c013743cafda13601af72546d3afd43e0492e0c280 + name: IMAGE_domain-mapping +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8@sha256:b8e97763348ac558178247c67c7fd8e84f0e6ddd5d324f3a6927d1436b85c3f7 + name: IMAGE_domainmapping-webhook +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:8c34803cb97f69f51d92987f06ffcf14c4bd5f47a81b7fb3f6d9d11eba0bba96 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:8304e4aad026ccef7151a69e70482ade0d75b0fdfbb3854617b30443ddd437c9 + name: IMAGE_storage-version-migration-serving-serving-1.5.0__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:d619de7f9a0c63905a6073f9a508082084be1930ee110afc274438ad949af499 + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:e6d403896601c748075ef9849a799ff63a44f0a80ddc1e7070055061e2608004 + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:f7993b7a5458679621f6686bdc4ab818659e051ef6cdf6a8e107f627adf5f178 + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:a1e5cc0fb334e333e5eab69689223e8bd1f0c060810d260603b26cf8c0da2023 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:832677abddada05258b4610b6584d442dd20c5bdd55ae8fbddb83ac133b3f12e +name: serverless-operator.v1.27.0 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.27.0 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2023-02-07T09:25:21Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + olm.skipRange: '>=1.26.0 <1.27.0' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Kafka components + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.12/html/serverless/install#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.12/html/serverless/install) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.12/html/serverless/develop) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.12/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.21.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/ocp-tools-4-tech-preview/source-to-image-rhel8@sha256:98d8cb3a255641ca6a1bce854e5e2460c20de9fb9b28e3cc67eb459f122873dd + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_S2I +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:85e146835a88a42f54dabefe93b1bbfb1873a7374da9570e621569e96342767f + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@sha256:f4ac62e81c1dfcee845a1f8fe69d456311f68d638b20cefe73875a27ec32fd17 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:4f4cdfa688cae53f24a05892ce247aff903d53a21cc79190505f881ede4396d2 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:8e827fd94a764739d28fd29a525e98851e16d3ecf1d211a7d87bd468e456e700 + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:7fb39f514539657b68b273738e3d5e17772896c836b32202299466befea1e26d + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:ee6f0d2d4ad329f7514e2a2d1f9ac67904719ceba8cec14caf3844f85c8eacf8 + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:ee6f0d2d4ad329f7514e2a2d1f9ac67904719ceba8cec14caf3844f85c8eacf8 + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:0a0805c28de8fe7e7a42f014083372addcebe6bd2001bce4fcc75c06fa6919b5 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:f33f7550bb5e1a715e105da68b5ba3433e03e50d379c2a68effac58a6e6db9d4 + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:f33f7550bb5e1a715e105da68b5ba3433e03e50d379c2a68effac58a6e6db9d4 + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:f33f7550bb5e1a715e105da68b5ba3433e03e50d379c2a68effac58a6e6db9d4 + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:613b62031fe34d2a7ba37d1fa15932fbd902dcc786579264a2b89f42f29f1430 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:ee776e1783f52b8f8c2b37b7ef67bd65d442924253cb9e6904031e41b86b6b1f + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:ee776e1783f52b8f8c2b37b7ef67bd65d442924253cb9e6904031e41b86b6b1f + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:ee776e1783f52b8f8c2b37b7ef67bd65d442924253cb9e6904031e41b86b6b1f + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:17bc9a39e2b5233fe03510b913e7d16c8d1f870b806de83f3d8fce72d8e122a2 + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:d43fcd7c3ed01f514d70b100e61c93f398c81aaea12eff3837bb1083533a0c95 + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:f1b2bded98dfeacd9fd71790eeadfdd5ff950f48bd376845d5a235ca5853952b + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:835f65fcda74c58095f4a93ba24b4f9cfe5a1c70b9f10a2d2dd3cbd5e2b6a85a + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:e162d4c1ebed80fbc7e53bec0ada38a2ed36ef48ca19bd239a6248a0ac630979 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:6fbf126bf8be98c78a2870c84632dcf0be1970178be4fe4127621738a5360589 + name: IMAGE_storage-version-migration-eventing-eventing-1.6__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:6fbf126bf8be98c78a2870c84632dcf0be1970178be4fe4127621738a5360589 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:f7681878ec377fc3c33055c5cacc38da5492be2c00adfc3dbd8ca5ecd0dede48 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/func-utils-rhel8@sha256:d2d9d27673552434a5830b036bda6c914e75a21d6b2f922a886769d4e666955e + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:8b886c4e94a44e38adbf9d830af9021461b984cd3d843ae8835264a7b009dac0 + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:ad1425a1ad0b04e6ae10966dc3eb9068501d6a99d07a70e32e185aa066188540 + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:c411b61db246650168d7b7e063016ae3b6df689fd87bb370b08e65c0cab59c0a + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:632f3a063915b009bcab43fe6a5d0543a719ded272ac177676597b6292e1493f + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:632f3a063915b009bcab43fe6a5d0543a719ded272ac177676597b6292e1493f + name: IMAGE_kourier-control +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:c02d1acf24840976b22fcdff1590f276865aac9b86b220d207d464363f776327 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:02f3809347fa5ef54187b1124e5f45bb94e98e75ce972b0bc998cfab6910422c + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:832677abddada05258b4610b6584d442dd20c5bdd55ae8fbddb83ac133b3f12e + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:9fad0741b9c4688eabbc835d4271c5b5f81766fdfdd7de683234652f14d8cb52 + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:3451cca764bac1ef9dd5ce72a2f4e68ce0de9c79bef15bcb44989ef889c0949f + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:8ed60064b6d8d149458f8e48d2babd5ba82d352b6097ace590cf9dbf98eae1e7 + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:8fa33e18eb145cc10a6ea1516efdcfd6e46f1a452806a2bc887eaa6906f0570e + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:78677b684e2c628ed4f6a23fa4861880c40b31143ed4dce4ba8b87a04b77552f + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8@sha256:4037e7e1eac9c7a3ec9ed7c3b48ff26b620e215f2de47697371a796fda9abc5c + name: IMAGE_domain-mapping +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8@sha256:5ca024d3da31d9f5d0ca125a32c682dd7a6ba817cc342bb3a6a3b022756bc974 + name: IMAGE_domainmapping-webhook +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:4c1df3f2856e90a9b5791848683481f3cfd09fc42c41dafa321e18dadd8ab4d2 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:129dfab42f0da0e91e9f467b1e888cb2c2834c27b771277d3f5f69274cb52f7f + name: IMAGE_storage-version-migration-serving-serving-1.6.0__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:9ad60e16951116c277509937b39d80d9b7a4d9c1f0c7f32770e5225312652a0a + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:5716a22874c9afa06159da127caf28809ae4f3c18a58605ee662021eb8c9099a + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:cb836456974e510eb4bccbffadbc6d99d5f57c36caec54c767a158ffd8a025d5 + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:a1e5cc0fb334e333e5eab69689223e8bd1f0c060810d260603b26cf8c0da2023 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2f82fcdc9a5424a2e195fda62ce0a018970e0211f253eb0d5ae47a72dd0bb6fc +name: serverless-operator.v1.27.1 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.27.1 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2023-03-07T09:16:58Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + olm.skipRange: '>=1.26.0 <1.27.1' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Kafka components + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.12/html/serverless/install#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.12/html/serverless/install) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.12/html/serverless/develop) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.12/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.21.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/ocp-tools-4-tech-preview/source-to-image-rhel8@sha256:98d8cb3a255641ca6a1bce854e5e2460c20de9fb9b28e3cc67eb459f122873dd + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_S2I +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:7737e1e634f361b944fcd7fa01f2418fd9f661695be08c82d27d9d222784410c + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@sha256:75bf624c04517248e3a5c85ed4fb24ffcea778b883e5ffdd3528ef427750eea4 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:1a14f606c07f241a4f3242c2c54e5dcb29de55809d8c54e1adc015b2e24543f3 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:6850e988c1159bbd70732116df950824e63da1bd767637b8a136b0a9ea2354dc + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:8593f2cba314c8fba265e3b00e27fd7219ae0aa80290058ba7395fc2ae2c2a3d + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:12973e2731757c7995b21b9c0b84f463ad201e8838f95c57d0db92b3c8c31b7b + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:12973e2731757c7995b21b9c0b84f463ad201e8838f95c57d0db92b3c8c31b7b + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:228cc2f9b7486c5ed9dc9e75e662f2f5262bcfa522d83d0bcdd549d3286b6b6a + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:48dc3b40cf4c242da984dd34e40502ccc90065adafd26bad5e4401e3286ace6c + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:48dc3b40cf4c242da984dd34e40502ccc90065adafd26bad5e4401e3286ace6c + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:48dc3b40cf4c242da984dd34e40502ccc90065adafd26bad5e4401e3286ace6c + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:ae6e6aa0dc4615957e20530d092f8cbc1ecfa164cc44ffa7207b962894a36821 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:58b1539c97fb4d0a7133d0deef4bc45476e160731b34fd373e84f74e4721b3b9 + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:58b1539c97fb4d0a7133d0deef4bc45476e160731b34fd373e84f74e4721b3b9 + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:58b1539c97fb4d0a7133d0deef4bc45476e160731b34fd373e84f74e4721b3b9 + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:726f553c9fa4f9940744cbb4ec53dfe7877d0ecfb512df0e57b970cc29409919 + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:d97615b61a68c857a879ca07b904ed336d6082ba9cac6b78f209c2c543dcd8e5 + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:4e0e44d2f535942651e365324e54d9397896663c05176d0ac90d98cab6feec18 + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:73274df850f3a91c269e1c208c6ab3355b827c6465f3f2a50f2913df150c340f + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:8a30dbbab33f1a3f39d3448b26640fbde02db6af12dc05736f3c62a57f007450 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:0c05e72e2e9befb32d04e28d5ed498b508a23386edfcd27aa13c517dd2f45b91 + name: IMAGE_storage-version-migration-eventing-eventing-1.6__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:0c05e72e2e9befb32d04e28d5ed498b508a23386edfcd27aa13c517dd2f45b91 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:aa8e7b374a0febc002088a7e3b2bb73b6883606caceeabf086a6df83393855b6 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/func-utils-rhel8@sha256:2e03f00602b6632635599b5689c598cba8739f838b76a05b5e3105f3b32f7cb2 + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:41fe34ae69d7e67d0c413062aa173f81d1d6840e6166124d37434ccd280c0f66 + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:0cb9e1f1dbb767d717d62978ffaf34af4c654ec3848b09729c69e87626b4924e + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:82a04e3a25c3ba9b5b1c3644f93ed2ef1534d54c6e19b781737270bae5a8598e + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:439ed5e378e9b23f3fc1294b3d18c4ceeb07d36215456f4a9edcfdac7905da19 + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:439ed5e378e9b23f3fc1294b3d18c4ceeb07d36215456f4a9edcfdac7905da19 + name: IMAGE_kourier-control +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:158301e7ab506ccfc3672182857ee798860d423d20619d9ef77d7a9125aa901e + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:5c39ee5d621432b2705d02dbe23b116b6874c989ea0d2211680ce16dd20cf2ce + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:2f82fcdc9a5424a2e195fda62ce0a018970e0211f253eb0d5ae47a72dd0bb6fc + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:3c5dec9531b316a539aea17e1f26cf8175693cf22c38c74b0b7a7ad8802c9497 + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:0f8e6dc4e68fcdc249079f125c0fb790c8c8d31fc1553d3d28294f2314e42639 + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:1304101d99492a0c2ebb147476d6a5431376f95a591a8bf3f68418069840dacd + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:75d24253847dbebf152f1be9905f344f121215143dff4f6561db1a6365047fc9 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:c3d0556347feea15e8499da84e21fc2d7cad612e5f7ac5ee21a9d1c5d067546d + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8@sha256:30cbd7d8dba86c31cd9b4c720ef55dd87fa117bd11c8bd2898a3b6496550a212 + name: IMAGE_domain-mapping +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8@sha256:4ebff3c09f1dc0db6d02691c96db2e58fe4e5913acc9851dd7f00b416905ac66 + name: IMAGE_domainmapping-webhook +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:d35f063d640e85c620073e1d8fe0de299175fb05bfee2e9152ff5a2c5b2e5d90 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:c271b6fc5f2b44e7225983183ed6a64762bfbd9a0797c28c71ee09381b363772 + name: IMAGE_storage-version-migration-serving-serving-1.6.0__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:c1316ef1b31940520f96aa48f4df4b8d9cabfc930b8b8bf6565d828fa24d0369 + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:5716a22874c9afa06159da127caf28809ae4f3c18a58605ee662021eb8c9099a + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:5df77deac108236c8d3fc84bfaae9f86439557ccb9a08b9cd4fac7ce4e918485 + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:a1e5cc0fb334e333e5eab69689223e8bd1f0c060810d260603b26cf8c0da2023 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91b90a9ba578595836772b4f7ecccebf77d1dcaf04c62e3f532d9beed90eb465 +name: serverless-operator.v1.28.0 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1alpha1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.28.0 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1alpha1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2023-03-29T10:35:00Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + olm.skipRange: '>=1.27.0 <1.28.0' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1alpha1 + - description: Represents an installation of a particular version of Knative + Kafka components + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.12/html/serverless/installing-serverless#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.12/html/serverless/installing-serverless) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.12/html/serverless/knative-serving#serverless-applications) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.12/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.21.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/ocp-tools-4-tech-preview/source-to-image-rhel8@sha256:98d8cb3a255641ca6a1bce854e5e2460c20de9fb9b28e3cc67eb459f122873dd + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_S2I +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:b15416de07b28ddf806030ccf0fdcc1e533fdeb06a57e644fd2f44c2ad59a5a7 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@sha256:3fcf747549ad9a8957291f1e943316230112f2d87b2fcc050342f5c9a58889fc + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:9590533eebf9eb8df3b844379018a4c72954ec15649af60a4dd930aaabd1288c + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:fe4fe36ac711e920e7c16b3c988f1d7fae2f14a15ffa02d1429a138b491fdca5 + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:b92ebec07483cdbc040b26937f2e9e783222608996a0274af4eaafcd2c4cce1d + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:cdc6036077fd7a00eec8430f7d6f477766c19dc481da698c31bb742600420f95 + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:cdc6036077fd7a00eec8430f7d6f477766c19dc481da698c31bb742600420f95 + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:b298c043507ec2dffc4174b69944212da8c93ca576f7396540d1218375823c11 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:32b3441c900f1a5cddf5b6da1d9a1c64dbb90ec4528007ac74e7cf5a7c15fb48 + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:32b3441c900f1a5cddf5b6da1d9a1c64dbb90ec4528007ac74e7cf5a7c15fb48 + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:32b3441c900f1a5cddf5b6da1d9a1c64dbb90ec4528007ac74e7cf5a7c15fb48 + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:ceec2bd7b6110e1ed600a1fb073199169b43f419af2001be72aacd5b919f2f45 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:1b54b9cc6e09c13bcd66a579d016ca0bed1d4ff730da590aa84e9d34768a6559 + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:1b54b9cc6e09c13bcd66a579d016ca0bed1d4ff730da590aa84e9d34768a6559 + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:1b54b9cc6e09c13bcd66a579d016ca0bed1d4ff730da590aa84e9d34768a6559 + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:35595da04b43c8d89240d94febf5d7422347c29965ff0285384d302c295f8879 + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:babfeffcd42a1868f16a83020c971557308dbc3c9d50603e79e9ff90f4d0db8e + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:fc206d5c18392591312a44117ba3f618e97d11774acd8bdd614825fb8a58ac72 + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:73bfef3b4cc7cdce717d6cefdc8fdcf03c80def1670d4902fc82784bb4a138cf + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:ed4892179cf33d26c8fc8f760fd18b1a845a7cf801efeaee01ff38392ac8743f + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:090e33ff15d33e84fc631d1f8b758d527b92e9231b9a01e73779d7a3e3cc08eb + name: IMAGE_storage-version-migration-eventing-eventing-1.7__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:090e33ff15d33e84fc631d1f8b758d527b92e9231b9a01e73779d7a3e3cc08eb + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:93a16a4e4797c1296c7ec2541e02514b3ec605fdc1585b564de3e532da619e03 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/func-utils-rhel8@sha256:d1d5a3d77fc0b11141bede9fc69a736b39ec23c7767e5d905868e56837c3ad1a + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:a2f977de2d1ff2b252e45700a736635011d19ec3ac1ad919f0f1ee02eeee372d + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:42060246462ea021644d56988883ba09c78e9c79b2e71e7a2cb544be4e60a2cb + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:9f630f77301d720acd4692271171f7b21240f894c3ee3db70d885fd902192b70 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:c6910cd4596eeb1c45ad622a18a58a1d8d104f427b917cbec07453a6bebe5292 + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:c6910cd4596eeb1c45ad622a18a58a1d8d104f427b917cbec07453a6bebe5292 + name: IMAGE_kourier-control +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:0e8e9f227b9018c8325f6357f2001b9c12861a56918501ba7d62b381ecd88add + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:0ac571deaaa4e8a210cf7198caafea5ea628dbe8f18fa132c24ba12de80eb1da + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:91b90a9ba578595836772b4f7ecccebf77d1dcaf04c62e3f532d9beed90eb465 + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:7cf16d2803e7117c2668dec4e0ca107057a72c27e58a61e3b1764750a46715aa + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:6259b6caa2ef106577b5d8fb86d85bfa242125f1a211e986d685e344dca8a5fb + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:82e3a8de0c7659b2ae6ad4af17f9a650e47c10ed5403dc4b31b8e2b30909788c + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:ca017304d3aa55dd19dd1670551dd09da195fdb53afcc8fdc22222443d7759b5 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:697e5b6c08df999a70b751bc7dd96738eb632b21502bdaf241c962d37a97e273 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8@sha256:59470c6eaf1bb4988a954cd7fbc569f4a7ad2291ce08f21ec90990db0306230f + name: IMAGE_domain-mapping +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8@sha256:6d8d5d17b72cebbc5fcce39726cc1a5fd3a700270c4df3a719dcabf7d006fe96 + name: IMAGE_domainmapping-webhook +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:c797d1c797b1edad00fb33b2372f5907eb5b8454138c3c5dc11996de24c70906 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:f9fd6a01b827dc78754f2b3af6df6ac5484a2a5bbd778865f0ee54382dd50219 + name: IMAGE_storage-version-migration-serving-serving-1.7.0__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:8d1a5e189e38d38989ea8ae93336687104ac2b2b9a992d84734a1024bb128208 + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:15444e6b93a05d88c6fc6ce1d1e7744635141291b86a7c3abb57758849a5d19e + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:d291e0d38bd95eb2731a10bd5ff06bfa07c6621528d3c2bbe888397d87b3feaa + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:a1e5cc0fb334e333e5eab69689223e8bd1f0c060810d260603b26cf8c0da2023 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:12373623440b5b1aaea228550674ee69fe926ac6f12e7adffb5592afe1b98fca +name: serverless-operator.v1.29.0 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.29.0 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2023-05-31T10:23:02Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + olm.skipRange: '>=1.28.0 <1.29.0' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: Represents an installation of a particular version of Knative + Kafka components + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/installing-serverless#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/installing-serverless) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/serving#serverless-applications) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.23.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/ocp-tools-4-tech-preview/source-to-image-rhel8@sha256:98d8cb3a255641ca6a1bce854e5e2460c20de9fb9b28e3cc67eb459f122873dd + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_S2I +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:df1a644da964be5d5098c0662cfa8c8a285d5af7c98fb01588f84cf2845f038c + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@sha256:1700137a4ae6e5c0642faef6b3e037952f985dbe4e9a66916c9a27511833d776 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:6bd37a794e0c14bed33a421d0b7ab14f29e27a05fceda818794180871a8b37ec + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:0cf9c79d1e92cc75464a5d21cda692b244a9348747c429af99d51017cee54f06 + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:23b13a5f5df99757fd2d02031e7bde4994eb278100c7b3be1d79524133fdf35a + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:31233e08d7c40039a3a379a6417e308547588b298c20ef7480045cc73bac4abd + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:31233e08d7c40039a3a379a6417e308547588b298c20ef7480045cc73bac4abd + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:017c9fb76405200f475ece40dc6a941e01bf8571e1da7b9e112678d259703727 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:14355efa9ce4d9de8c2bbcd76e7b53adcfdea1f9914a9079c828ed000906b9fd + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:14355efa9ce4d9de8c2bbcd76e7b53adcfdea1f9914a9079c828ed000906b9fd + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:14355efa9ce4d9de8c2bbcd76e7b53adcfdea1f9914a9079c828ed000906b9fd + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:4d5b8d55c70a7a2fcd77f34748478e730e86c28df8372dadb683bdf197107a5f + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:de75ad6eabfa70a72ca097df12ced4d5c08d5d1638c0cb9979311631ae4980e4 + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:de75ad6eabfa70a72ca097df12ced4d5c08d5d1638c0cb9979311631ae4980e4 + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:de75ad6eabfa70a72ca097df12ced4d5c08d5d1638c0cb9979311631ae4980e4 + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:680ecea2dd076df19b9381e36d6528a079281c7eccbaea7d14a4d037ae6f9da0 + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:ff60dc234bf57c8b22da8619d637393f5644d7ba6fff2628b0c74284461aaf44 + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:ee52c61446dfef920a841d45305b3db3cca1dfe58e1d88657714f920985af85b + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:255b065e6de2ede0e4aabe23314119286c5c6f30ba09aa342a58b782f909d3c7 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:b8bc97832af9159720eaf76a924dc2b994c8c79a8dc41cc6b52a39a95843ea22 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:e39303ff0e9b0b01693335474ea6e1650ef4ff24593b82edde84795d3f127289 + name: IMAGE_storage-version-migration-eventing-eventing-1.8__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:e39303ff0e9b0b01693335474ea6e1650ef4ff24593b82edde84795d3f127289 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:2427735ced81c716796cbc6b0faca1fa9001be4f0eeca88162fd27c36cb96992 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/func-utils-rhel8@sha256:ea379133ea27686942d28a4a64599a01bde226a573e2b52195cda02971a33c7d + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:954e21ce48e71d442786606a7243e18cace48857198a514cc72eb167541696a6 + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:5be90fad0e2c55673e78daa8b34b91e9d49a4989273c7e22daf4d76eff119de4 + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:97d0f08bf187bf08d96f759b0c2730657985aa559833a42d02406f3de66ed4d3 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:d7544ab550f10248e936a05a7e08c14138ceffbfcdd246d716162cfb49576f2b + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:e1b2ef1088bd13a383e5081785f1774c6d661b8a9ee9018f206f045b220a916c + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:25c1b3a826a52ac32ccb99d7eec5af50aaa239f75f2cd431b55a215642a56018 + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:12373623440b5b1aaea228550674ee69fe926ac6f12e7adffb5592afe1b98fca + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:6053cbc47c2b593b706a9746d1fcd804e17980ba86888ff1a8afaf8df5ce24c5 + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:54824ae3fc2ed73e1b248d9963bb67ee0baa8039c30979b82f3ed419de8dc88b + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:b32016322fa03d65e1fe7b975935b2a1ce797c4ef1cc19d0a001544cebaee37f + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:070622ae01f756d10ecb0372ac29542f088e483cbac52aba73f777a70432a289 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:3f7386e99d2d42db1d674bfe2f06365ce13073d2f7b86c5ab3fca132452c6d09 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8@sha256:521b3d612adfe63e63f7f62a76a7ab55795b4bf54f21b3d71920ca2f4757080d + name: IMAGE_domain-mapping +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8@sha256:1b63f829cde13dba494299df20277347662080d9552479bede58b01180ddc916 + name: IMAGE_domainmapping-webhook +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:a73df9030d510897c831b7dedd218b7c8fe5f065fa286257261aa7991e6a5aaa + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:528a4ca8ed4e5215854a1be80a1e462a32ea9719626133c6b9e4a5825b37fbe7 + name: IMAGE_storage-version-migration-serving-serving-1.8__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:336357410ff9faf580d2ec788b6590425b816c15171448ce6a96c5a5ad63231a + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:b6281e8ca3553e745edc914cd76ede5ec85e2717cf0a67c235275a026b90ba48 + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:4564ca3dc5bac80d6faddaf94c817fbbc270698a9399d8a21ee1005d85ceda56 + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:a1e5cc0fb334e333e5eab69689223e8bd1f0c060810d260603b26cf8c0da2023 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:16b39335e97bcc7c970a8ba385c61d8333e9912faaee813ccf8520d434b7bb7a +name: serverless-operator.v1.29.1 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.29.1 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2023-07-28T05:42:31Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + olm.skipRange: '>=1.29.0 <1.29.1' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: Represents an installation of a particular version of Knative + Kafka components + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/installing-serverless#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/installing-serverless) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/serving#serverless-applications) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.23.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/ocp-tools-4-tech-preview/source-to-image-rhel8@sha256:98d8cb3a255641ca6a1bce854e5e2460c20de9fb9b28e3cc67eb459f122873dd + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_S2I +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:3aab995872336e6ccb590ef6488c097cff38a91348055031145427a00aa6b732 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@sha256:8273842d8e1714fa03c7e0809924b1ffc5ef282f79b9606bd8ac88c03e7a16bd + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:a4943c0563c45ceccfda0a01e26be3a01c1437c89d927714c577bf6060495958 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:7dd11d385b3d5a178566d901650ecd45e4af395faec2141d57b98af8fc1e5151 + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:b780634fffe2257eb845f8c1d25498d9c654d0327c1f8841b40d90c176a2bfe0 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:61fb98802490323bb03ff4a7060334d8fbda9e9f95cd6366b29b1b6494e4ef8b + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:61fb98802490323bb03ff4a7060334d8fbda9e9f95cd6366b29b1b6494e4ef8b + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:216f58dc8c8166c0c69fc0312b667daad14cf39b7aeb7bc0fe1e313376f1a5fd + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:3d7801f7ffe6420595779673a170235921a9090333f8ca51d5b7f664e19c82b2 + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:3d7801f7ffe6420595779673a170235921a9090333f8ca51d5b7f664e19c82b2 + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:3d7801f7ffe6420595779673a170235921a9090333f8ca51d5b7f664e19c82b2 + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:fe916630003194dbcd3894dd880cad8b15a041a5e534cd8f76fde6296db00797 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:56e48afb1dcbf4e266ace944105f3c45042550d8d4a0528c982225a793d26d56 + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:56e48afb1dcbf4e266ace944105f3c45042550d8d4a0528c982225a793d26d56 + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:56e48afb1dcbf4e266ace944105f3c45042550d8d4a0528c982225a793d26d56 + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:c4cff5ad5b0ac79e71a16b88640a312ab320817041317f50caf575f7e12a864e + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:397eb425f383c1273c7976bea69a603530676a00a61f461ceb5f48d67901c4cd + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:04866e16881f64ff2b5edd379eab0731c9d66a47c25ebfe79c8d8ad33d8116e6 + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:f37f494956adf0892ffca34d2a4c9b839ce28dc9f2779ca32e8801fb4f0e9105 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:4408d1fcf34c0ffe9327d4c9c0bc772afa969d831bc5de1097164d10b4e8d900 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:594c3ac24bf59802e2d3fa127e4051277bc07b6444f934f535fddeb668ccc144 + name: IMAGE_storage-version-migration-eventing-eventing-1.8__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:594c3ac24bf59802e2d3fa127e4051277bc07b6444f934f535fddeb668ccc144 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:a3c5d5fd8014c432830be912aedebbc58f9c60a8cabd87ae6c42c7b8d27db8f9 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/func-utils-rhel8@sha256:fd86ea2a34de43014dea3ba2b8d705a3d94347d3a24a370a8bfd032ed239dc56 + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:a59ba5aeb8e66db3d8ba9074b8e553603c59e6b0e35b57b82c4ce3de589b94cc + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:c12c471902b8e2596588d9e553ad59b501d979dd04f301d45f7d45e794737a8c + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:ab90ec9b3cd9203fdcdd7c43abf95f48c9d7479a9c7af479eb1e4b6599ba9642 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:de0634d14962bdb8701a8c29e80b7b70684824462bc5203e5fa7f139839cb73b + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:557e73127326be051aa6257e7daeb9721e2af04d2f06cc26cfc7a1073666b989 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:3b7449287adf98f0cf0a1dc74e03b69218be3bcf5538327bc34ef776cc1c69c4 + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:16b39335e97bcc7c970a8ba385c61d8333e9912faaee813ccf8520d434b7bb7a + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:bd134e64c156dc5c81d14522c9c9efcc1f56b2e972ac8ecb1bb1b130c76adc60 + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:10788ca67809e5a2d76d6d72df7dd64ea4407773999707a7681e0cf1b5c4695f + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:c2cb80bce34a74afa76151d2b44dc25ece73fb274cdfc6fdf243b1b0cb7d989f + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:6342358e6aed2339333ebf37fc223a41a0a3e199a0e4a840f3f66e5accf8f233 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:e5db11a0adb889f907cad797dad9cf2de09c433e5522fa333193cb35575802d8 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8@sha256:03a3d6f0314acf4da4f3d3d85f1e273a3ef25828d28f5b22f394441d55a645f3 + name: IMAGE_domain-mapping +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8@sha256:b520305189c7567b2f8ac867b20468259fb22cd3edc5b4576af2bfcdb0c11855 + name: IMAGE_domainmapping-webhook +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:0229a0a4f026f04f8fa0a1cd8e7afea10117fe3f12e21986ec6089769c8afcaf + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:ad399867cbb712111db6affaf5c9e3573699ed0eb0def8ce6057de02054ced4f + name: IMAGE_storage-version-migration-serving-serving-1.8__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:aea5f200a845e1d4dc718d76465fdbb1eeac2b20ecae224d5d20a98214ad0357 + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:a10e76aa15707e708f82c8d9e8b5179bf67780d99f3c3e2e99b84ae2a0aa4ecb + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:31d45f10a8519addec9aac115c5edc8a2e14f9621c875d95f123d1291776ef4b + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:a1e5cc0fb334e333e5eab69689223e8bd1f0c060810d260603b26cf8c0da2023 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:ffcf75e33c5bf527488fc196bd94bf615ac06ba5735d87cf568777f27817d214 +name: serverless-operator.v1.30.0 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.30.0 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2023-09-13T06:42:20Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + olm.skipRange: '>=1.29.0 <1.30.0' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: Represents an installation of a particular version of Knative + Kafka components + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/installing-serverless#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/installing-serverless) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/serving#serverless-applications) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.23.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/ocp-tools-4-tech-preview/source-to-image-rhel8@sha256:98d8cb3a255641ca6a1bce854e5e2460c20de9fb9b28e3cc67eb459f122873dd + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_S2I +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-istio-controller-rhel8@sha256:878b6636ab69fe91f25536b7156b0c428bfefb0ab6a544a53221f78593b6372b + name: IMAGE_eventing-istio-controller__eventing-istio-controller +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:f3f2be68d83efc82d98500f4a87fa75f36a0823109222ef3f9ebef4ff8caa1e5 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@sha256:6b0b0edbdaf491daeaca4bd88a01f2faca9ba677fdfba7f09ec799ed49e81fd1 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:55a362bf408f7767eee8a7cc66aa42173edeb227007f5fb946cc98d72a27a46d + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:d90602d0ca6bc53be0a7c5ac918e20ad8a785c6c80a5295dd975fcf9acd582a1 + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:94e60d27f23fdb0c7b831104e4dee8c32a9f689102073a98e5f463b796705924 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:d3d6f17d4147067c6a01e386478746d17093daca6b569242c7cfd6cd9a97b604 + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:d3d6f17d4147067c6a01e386478746d17093daca6b569242c7cfd6cd9a97b604 + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:c2e593e3782b4edfe94e4b044870d980efa71d2b857838ae5cbab04b0fd428b3 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:4ed88a1283de6d44ef715e9d0b352080eae6ba3a2565f3be1626b9df4b6b4355 + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:4ed88a1283de6d44ef715e9d0b352080eae6ba3a2565f3be1626b9df4b6b4355 + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:4ed88a1283de6d44ef715e9d0b352080eae6ba3a2565f3be1626b9df4b6b4355 + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:e2a4df5572c4a79871beaf1adfc3a6968d6fb9f94c0ecaf60f81e1df6be589d7 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:0193f98cf23564b1b3b8c09f9ce18e606a4c1e4127dfad36c6dfc88601c854b6 + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:0193f98cf23564b1b3b8c09f9ce18e606a4c1e4127dfad36c6dfc88601c854b6 + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:0193f98cf23564b1b3b8c09f9ce18e606a4c1e4127dfad36c6dfc88601c854b6 + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:b44b0285c86dd690205205c70ee3b95944f7ec5a8a184e8cbece8696b7ba8397 + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:d27ae2a488c47def76ab73fa090732bf00da491c805b2c03f56fec5baaef523c + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:54466fffdeee09c7b844a1b4bfbcffb234c31c0da71f8d699ed04d7b0228d72f + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:9f288b29136a38af904f4a575c4f7fc3cfd0732381046aacf2d5b72bb0ef4f29 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:434dfaccd8b3023d7c4a2995906e4c1d0626f3214e368795b15212ba612b1a9b + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:c31e65263eec89259a34156aa1c70f5f6c20023d6e716dc6f8cde420a16d736c + name: IMAGE_storage-version-migration-eventing-eventing-1.9__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:c31e65263eec89259a34156aa1c70f5f6c20023d6e716dc6f8cde420a16d736c + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:ef34d78cd8857e9202b1bf2e1f28797153fbf27852d5e9d59b3b0d70c744eae6 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/func-utils-rhel8@sha256:c6ecea4da8e0e72a8b58e25e681faa151343d03dc02f8fe698a4ba66d8b3e62e + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:e4175b5314225a97831f6319bfec12f1ecde62b3529ce2a13eb13f1145385819 + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:38e46284de2046c14a1c1580a6a2d10ccf5f2eb946a572eaf0ce497975d9a130 + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:52deb374b370a2c45282d5081936420803211a982558a0ccee9adbab1c48d8fe + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:6af80c73d02572686404d0277e5d55ccff336fbc16c83469366e980c096cf50f + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:384300fa3d5a1deaae9d3a83c344b8aa245f8148a189c667f81d328fd9785530 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:d26586495d610c2ec4822d67207bd3c3ec706ac6df09d9d92c15fb0d10be3f4b + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:ffcf75e33c5bf527488fc196bd94bf615ac06ba5735d87cf568777f27817d214 + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:af9befc10f19ffae5048cf1f5d2ccefb2bdfd52a5490bc7acb0da6491313ea7b + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:8cb0aa4114c6f7810f44df3ea5930e33d3e06869baeb70b7d4160d3b2d5eacd8 + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:5c1cd0dc1e36cf2c21456e84213479bb5f1193b1e909efb08ef3ccf78ce64c98 + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:bf58a62d055902b69b448b920b5f4c8ac40361a610bb92b656adda9118a0f5f0 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:2100246675d771ab1304dd4d289985777ee23b145dc816a2461288b4b2f77dae + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8@sha256:663064adbeeb19c247a6a5ba6d35f2d5bd29736b55bd291f9b2d0c2a4557bfd1 + name: IMAGE_domain-mapping +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8@sha256:e6853dfc59520ab918e979c30fea9ee2c8293ac59d03d52a0e2185c035ade314 + name: IMAGE_domainmapping-webhook +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:96f096660fdfbe8a319dc2653b503bdb2c7f226837ace099658c895f8f36a207 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:4ca203b721bc789c81e8bfe4734640b0533d0361d9bb2ad284ffa8e143512eea + name: IMAGE_storage-version-migration-serving-serving-1.9__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:e65b92e13e55027dc070ed2d0acd2f7e6749359b4bc82263302b9ba6444d07e3 + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:2b5cb346d61deb35083fab97ffbda6d2f6e04aed7e10403b995b654c1d0ea393 + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:e5091cc36ac7bb8c776c16891cbfc12e3b7810d9003ce034a6a8697267666a7b + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:a1e5cc0fb334e333e5eab69689223e8bd1f0c060810d260603b26cf8c0da2023 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +- image: registry.redhat.io/ubi8/nodejs-16@sha256:3116913de59e6d17e40282a7924104ef835a1868cc142dd6cbb0d93f6b268bb1 + name: IMAGE_KN_PLUGIN_FUNC_NODEJS_16 +- image: registry.redhat.io/ubi8/openjdk-17@sha256:7942acf43a41b8fd202de7c5f7745d9732fae00a401b3da06e1ac988ac26ba4d + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_17 +- image: registry.redhat.io/ubi8/python-39@sha256:547b3c90f95b53e2ab2a839b6187df54931ec84bfe4ebb9d2e053112b7bc511f + name: IMAGE_KN_PLUGIN_FUNC_PYTHON_39 +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:51ac9aced282f62c8fb2d3696da3696b8496d8f877e9846fe3a4a743ccd63bea +name: serverless-operator.v1.30.2 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.30.2 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2023-10-30T14:03:25Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + olm.skipRange: '>=1.30.0 <1.30.2' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: Represents an installation of a particular version of Knative + Serving + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: Represents an installation of a particular version of Knative + Eventing + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: Represents an installation of a particular version of Knative + Kafka components + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/installing-serverless#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/installing-serverless) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/serving#serverless-applications) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.23.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/ocp-tools-4-tech-preview/source-to-image-rhel8@sha256:98d8cb3a255641ca6a1bce854e5e2460c20de9fb9b28e3cc67eb459f122873dd + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_S2I +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-istio-controller-rhel8@sha256:b6ef281fca2b80d379b1e28fe3f23119df8ff765fb2cca291d514053fb512da6 + name: IMAGE_eventing-istio-controller__eventing-istio-controller +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:a0c5a91348ec71697747113990652feb024143fbbd0cdd67e8ae672730383a79 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@sha256:92a39ca90984cebb1938447a31c9170b52994ae98f83caa860acdb2c3ebb75c7 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:66149df8549380673c24e1487d0c2c8eb638b7e502455671ca64ed6f32ff82c3 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:96c135ced2e3bff434addb012368d96d0778ef1d294ba507ae7e624811e20d46 + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:cd1abeb2067afa44a0f1eca301cce37307582d56c1147820ff86b9b64a40588b + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:a5154f9d13a1c373b8ba47e2bcfb9d4474fd03e08db4134c92aa4f049536f1a8 + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:a5154f9d13a1c373b8ba47e2bcfb9d4474fd03e08db4134c92aa4f049536f1a8 + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:e97eb2bb7eb529cbfe67c14e823ffa1269d614e2d35723896e89efa12a499c6a + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:06e9e073f092dce67d4227e282fd8eea6dc9f38b90a8d444cf448d80d027b616 + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:06e9e073f092dce67d4227e282fd8eea6dc9f38b90a8d444cf448d80d027b616 + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:06e9e073f092dce67d4227e282fd8eea6dc9f38b90a8d444cf448d80d027b616 + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:e9505aba7c44cffc3f261a5dc7617a0e54ed98e78f73ea3c9c7a508560b792ed + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:96d6f52711ba433ab2f273be8080840a88e626e989027480424d19c2fe1e9454 + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:96d6f52711ba433ab2f273be8080840a88e626e989027480424d19c2fe1e9454 + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:96d6f52711ba433ab2f273be8080840a88e626e989027480424d19c2fe1e9454 + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:3c8bf480dbb05e09e8d07cab12e4736643f61bf9b5d98efa6bc0557eb31887bc + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:a9c95fc208cc03625cf49bcebdaac73da823d1fa3bfae4239d7db20d3a0b8723 + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:124087e6402caa375b24b976c3b9fd7d53890e20ac3b0b57ba3ac646e352c7ce + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:1f7e65009168383cdcb6b2caa22fe4db49e03c71574973a8086f6c332dc5e26e + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:1455606c8edf611d996a48e29ead53e0bb4078f55384b7689058bb25fc59fb2c + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:69ea22c646c09208ca68345d4b3508453d8c49f7f7fd9a4ff4c4cb78be7bff43 + name: IMAGE_storage-version-migration-eventing-eventing-1.9__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:69ea22c646c09208ca68345d4b3508453d8c49f7f7fd9a4ff4c4cb78be7bff43 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:9a28cb1d4c4f4dd7d494829eeeb7122db2174a27747f915244672c95dc8f9d12 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/func-utils-rhel8@sha256:4800c85e8de031bf77f6fae0e4c8e6c1a9912ccdfb77799cc2ea574c37d870ac + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:5c933641efc6bf919b1945be5a01dfb7774ae865975b1bb1f44653b3e4ca9f1f + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:16939b802f4c16a3d9d941917d0363325f40cdef28f6e1a982bc95401117674c + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:3fb6e7626d2b0c92c2a2fef35e9b8171382b4bdf54393f2ab1281ae7ab441761 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:e8c756b659f6187790bc1a5115e0f71791bff96630859a905bc5b75d14596e0e + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:3508434d5ab6b38c8a7466256f1158ebcd75e8b751afcc5255da8c21566804f0 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:6057a2d18406e00b0b7b1731870f707844e39193d4cce6de50137b77f17d220b + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:51ac9aced282f62c8fb2d3696da3696b8496d8f877e9846fe3a4a743ccd63bea + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:32445e4a73bc7c1e8007775adeb147175d934b17e7d3d4dcf422104dbe80a52b + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:2d3e314a6584fc6974517c1a992fb59f5133f54c2f6cfaa42f579c0d332e0300 + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:c9353a022e6f883b7c0b2d87b1bc4653172feb13806ebf0aa075d6f9f43c264e + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:21a638b481639c3c58e8b026d875917c30a5874b08fa4ceac40d447076b2bfa4 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:01c8fee92889a84a19136b0843e4fed5db31c1f2a6d997669f103373fd995e36 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8@sha256:12bc62246142a605f4efed0f6bb8843aa2df7699cc1c5ab53debb94b0682e9d1 + name: IMAGE_domain-mapping +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8@sha256:85a369d5696771d0932b61760336e52ae3f7c66f9a3def5312aefcac03ba516e + name: IMAGE_domainmapping-webhook +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:ce4b36c90955a356a5774410356aafdac2b60795526a3488b0b76ac2ec1a018c + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:ef116868c9c60e5ee246060688da49832571ff6a7901cfe143a42d048743736e + name: IMAGE_storage-version-migration-serving-serving-1.9__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:2264d2cd4ee2a720667d625ff42b6f8be4f2cd65b57a91eb6044da086a110740 + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:d03f2bf8f5e7cba47102ba26ea0149ae6719076c645d5e451058392d6044b738 + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:53d3620bb0490d83aaf6a356bb7d3b9e7147222d1a2017f8317f05fa90cd3de9 + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:a1e5cc0fb334e333e5eab69689223e8bd1f0c060810d260603b26cf8c0da2023 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +- image: registry.redhat.io/ubi8/nodejs-16@sha256:8abeddc6ccfffbe313f87e5e069e18cb7047f2c7880ad63cf15bcd0a79ba71ff + name: IMAGE_KN_PLUGIN_FUNC_NODEJS_16 +- image: registry.redhat.io/ubi8/openjdk-17@sha256:af305e087061cbaa4107ce0b304a1ef987f6b54bae3f75bfd529cfd084cba9b5 + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_17 +- image: registry.redhat.io/ubi8/python-39@sha256:0ff58549041d32b685cc850aaa85da32d1ef73f99cd4b6e0f6882dad5f0399bf + name: IMAGE_KN_PLUGIN_FUNC_PYTHON_39 +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:469ae5fc8a478d6d06b13e218a000f34dd988eb69a9488a6349d67c76bda5b49 +name: serverless-operator.v1.31.0 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.31.0 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2023-11-10T13:49:39Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + olm.skipRange: '>=1.30.0 <1.31.0' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: A platform for streamlined application deployment, traffic-based + auto-scaling from zero to N, and traffic-split rollouts + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: An event-driven application platform that leverages CloudEvents + with a simple HTTP interface + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: An extension to Knative Eventing, merging HTTP accessibility + with Apache Kafka's proven efficiency and reliability + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/installing-serverless#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/installing-serverless) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/serving#serverless-applications) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.24.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-istio-controller-rhel8@sha256:799442ad945fc58d456544870b8c93ed678de861523a4c4459a1f61e601fe1f2 + name: IMAGE_eventing-istio-controller__eventing-istio-controller +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:81983437cfbe05cc1cc13e98a91937d6e4bdba6cd40b1cdcf9a4ed3da4bbea84 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@sha256:e36d4a92e03d35be45d34036a4c0aa3b4ffbe606280ca6bcb43cfa89dbe67abd + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:d5efaddd8b952f2db4f0b772c065959db0ad468d6e228c3a04c90313299591b1 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:6b9b0f30d83449e27d93053974cca4a4c9b88e2452cb1c6fd60060b7fe2e59cf + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:aba60380667304288108e8aea038ba78e5722f526467c008e870598cc7aabb89 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:d6f30d4fd44f27abb5879e08ba3c62bdd61b238d3013543a006d7fabe30ece6d + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:d6f30d4fd44f27abb5879e08ba3c62bdd61b238d3013543a006d7fabe30ece6d + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:e3073ad3a1087122dac854b64fd0393cf75570832ea4f687a97233a95abac1ab + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:44770cb87f6640896047e74d50cb4f58acf453d2c5f468ac1a5a60c0cbb7cb0f + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:44770cb87f6640896047e74d50cb4f58acf453d2c5f468ac1a5a60c0cbb7cb0f + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:44770cb87f6640896047e74d50cb4f58acf453d2c5f468ac1a5a60c0cbb7cb0f + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:d3913d9fd4319bc4a35404c1b6ee3ee3842780303a577041f870b0e1cdfa4935 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:7357cb94fdfac229440c1cc8b48c9e239905b56d092b5908d417674303e3985f + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:7357cb94fdfac229440c1cc8b48c9e239905b56d092b5908d417674303e3985f + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:7357cb94fdfac229440c1cc8b48c9e239905b56d092b5908d417674303e3985f + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:8b063807c2d5f119490af349c3be7c0d9c4ed08e8b003c850e644da92a38ec32 + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:f192775d31ef1310283bf6f4dc55bcc706d8ad7c76f511ee5533ffdcf7234ef5 + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:7c819b725f73e7a5eaa8bc570b5493dbbdf362bd67c301054a85cdbd042a2dde + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:a5e16256bf52ac39b825e672087f0b62b4e21fc754b8d858ed4026d33bf77ff7 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:02ee04425ad07e1e7bad676ff0c6cb701a0ca4902f4161c1daba468c7d040cfd + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:1ee87b158f4999d122eddd4aee57532abf6e5da36b37091aafcf7bb0cbecf6bf + name: IMAGE_storage-version-migration-eventing-eventing-1.10__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:1ee87b158f4999d122eddd4aee57532abf6e5da36b37091aafcf7bb0cbecf6bf + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:3400b67d44b8083aaaa63e0c0215cb6faf07961f8f4b5bbe2f7eac4d33bb794b + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/func-utils-rhel8@sha256:61ff3f22c1c4cda4af6513da52ca3e818e88b96cc07eb015ea22dc95dce682f8 + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:b8ef03e0fda4ae02ddb6528edffff4ecdd701a28c3e24a2c36c4b17172b06bf4 + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:8dc7b63d51530858e09c1d90e7007498a84766263927ebbecb3508b12cc3e788 + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:7fe03e661ebdcedba5db5aa9fdca0ad5a2769816b9469f867a0465339dcfc1d7 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:d70493c2bd8060414133c356ac1487604adb370207bc9f33080fd17c47f75951 + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:7f49b246dc8a9a37cb319d74ce558958a641a352298a26ce19b82003d22ff464 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:b95f4530f0fb78a995948c095b8e935ce3a55b5326bc2d790d42cd8773df3b7a + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:469ae5fc8a478d6d06b13e218a000f34dd988eb69a9488a6349d67c76bda5b49 + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:33a2515591d765cce475f8612e281ba1d15c6fad5de7f5c49f6c2b1da3c8347a + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:91807aaf7647d301be03f29ee675b909cfa72c7720cd32f8c7f804cec113d9fc + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:fa4cb861898d02d1620877e28ea5069780e7e9e7b2cb59ccb8f38d9171cebf67 + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:c15bbdf5bc0f0da8361e41e684c6c9c35c628c3e8a80cfe40a1fb0600be941ab + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:3600df5efe06496da2918e865d8fe43c26bc3061204a10a4cdad4e267d19014c + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8@sha256:eaeb93ec6fea66614dc3e923f16df87b65320d23060c52de7f7b222ee2c043f8 + name: IMAGE_domain-mapping +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8@sha256:18dc68d847d8591f1d6842dd43350c6d1e6c898a7c16afd42841e629e159480f + name: IMAGE_domainmapping-webhook +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:1dec256cf8b51aea56b3dd92d9da6fa10e8ab12b888eb85d2d411d2a7c7736f8 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:0753f7da3aaef223753dd87078f3c84199981c5fd5af346cb0fb2cec00c324bb + name: IMAGE_storage-version-migration-serving-serving-1.10__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:ef800c728bdba35b8e5df203a8efe3f519b628f1f8c2b461fa90cb71995b7365 + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:d03f2bf8f5e7cba47102ba26ea0149ae6719076c645d5e451058392d6044b738 + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:53d3620bb0490d83aaf6a356bb7d3b9e7147222d1a2017f8317f05fa90cd3de9 + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:55f5c7d88c77e1ab5a2ab8e877172b2b66cb196e21f10dc45148470d0ee8bbae + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +- image: registry.redhat.io/source-to-image/source-to-image-rhel8@sha256:6a6025914296a62fdf2092c3a40011bd9b966a6806b094d51eec5e1bd5026ef4 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_S2I +- image: registry.redhat.io/ubi8/nodejs-16@sha256:8abeddc6ccfffbe313f87e5e069e18cb7047f2c7880ad63cf15bcd0a79ba71ff + name: IMAGE_KN_PLUGIN_FUNC_NODEJS_16 +- image: registry.redhat.io/ubi8/openjdk-17@sha256:af305e087061cbaa4107ce0b304a1ef987f6b54bae3f75bfd529cfd084cba9b5 + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_17 +- image: registry.redhat.io/ubi8/python-39@sha256:0ff58549041d32b685cc850aaa85da32d1ef73f99cd4b6e0f6882dad5f0399bf + name: IMAGE_KN_PLUGIN_FUNC_PYTHON_39 +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:a82288782b61ea46d068cc09ee10608d3201c136abfc767e4d37734775101390 +name: serverless-operator.v1.31.1 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.31.1 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2024-02-01T19:15:42Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + olm.skipRange: '>=1.31.0 <1.31.1' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: A platform for streamlined application deployment, traffic-based + auto-scaling from zero to N, and traffic-split rollouts + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: An event-driven application platform that leverages CloudEvents + with a simple HTTP interface + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: An extension to Knative Eventing, merging HTTP accessibility + with Apache Kafka's proven efficiency and reliability + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/installing-serverless#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/installing-serverless) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/serving#serverless-applications) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.13/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.24.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/openshift-serverless-1-tech-preview/eventing-istio-controller-rhel8@sha256:5b38e5c71e422161e40f9c37dd2f46212cb80e8e37b00247767276b957080397 + name: IMAGE_eventing-istio-controller__eventing-istio-controller +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:433821e6c7f43da5ca2e38c0550722feb179a0bab021decd9a97ad020cb78b76 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@sha256:3181ad775ead55f317f96466c2719b2b73c5b35d31933733da21273955d160c4 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:3dab790fa845ed7eda088e5abdc87799da1354884a53ff1ff728739b8e278418 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:565becc77dbe3bf03d89b1399d6e1853253276a71e80b6b14069285d03cb14b2 + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:9e120ecdbea54eecbc5e0412c1774f8a2ee70d7fca682ecd0757b8627f70680b + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:df1aee67a161fa19d7f49ba56d53e0682cc1996436e985a12a2068fa419b54ea + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:df1aee67a161fa19d7f49ba56d53e0682cc1996436e985a12a2068fa419b54ea + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:2572d98363cca2dd94984d6cefa573c5054fc206ee70048f901ad4b846d8dd52 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:af5c30fc9f631d9ed110641b815315d8b4aef539f687277a3821d9939ca5dd46 + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:af5c30fc9f631d9ed110641b815315d8b4aef539f687277a3821d9939ca5dd46 + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:af5c30fc9f631d9ed110641b815315d8b4aef539f687277a3821d9939ca5dd46 + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:3be4fc173b489d0beb768739f60274e07d95ffee86d70a8423e1f59678c805ea + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:eacdad8db61b23634c3f89bffa3f1c30ac5c7bbb5e938c6208003ff00f9595f1 + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:eacdad8db61b23634c3f89bffa3f1c30ac5c7bbb5e938c6208003ff00f9595f1 + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:eacdad8db61b23634c3f89bffa3f1c30ac5c7bbb5e938c6208003ff00f9595f1 + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:ef7d28580e75d746449a90cc0e5343ef3f4ddd75bd9fb866d97836bfbc3b314d + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:677be039353b2cee51d5faa5d5a2abd6a7bd46992ffe9521eb033eea9925c785 + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:7941b421b3e18bda8c565305241621fcdf1212cbbe0dc02f38f4ab0565d2bfcb + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:9221a833ecc66fe2354aee7aaec2a2470b21e2d89cb6ed287ece32edab2a2edb + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:486bf60d17a5d265ebd65d590a6ee1a7e13bf3953ea797b2f6c2b5910789858f + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:1fcecc11b55007b9c6969a24940a391968378e4102eebf7ceabbe7efda138575 + name: IMAGE_storage-version-migration-eventing-eventing-1.10__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:1fcecc11b55007b9c6969a24940a391968378e4102eebf7ceabbe7efda138575 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:80361e052d366ffffe9a99893cd83965bd69a9ff81d8c9262976de145bbc6184 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/func-utils-rhel8@sha256:cda04e3b7c2c1f37164733ad162ea0c4e52f14fdc8eb8bdef8507f0ed5454640 + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:de62762efa0df95ed23df56f5520490d8a231e47ce13c433c512254ceff81844 + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:d8bdd96c6a9b31f48c961ca438c254511db785fd34bd10b98084b702baf0ebab + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:d2a34100f6309c3cbac7c9ccd452b7bdab2a533afc99463bfbf91e3ba2706d54 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:1ee675125f7141e91f4ee57ebce082967834bbdabe1a870c221f31aeb8750be4 + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:0a2989f688b966277652957b312df736ada43fff78fd89b17f60b2137e38f115 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:dbd9c0cac86f79b8d91ab65ae7543854144781d4cb17ef16183931ec9bc234a7 + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:a82288782b61ea46d068cc09ee10608d3201c136abfc767e4d37734775101390 + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:3a4e7412322755b4c278540c965a403f9e178f138bd4ad7929c1c24a8036dd14 + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:e49220eaf3143a8958f0cb1f22115b2e834fb7177755433bdc592b753a54a8ec + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:63e08279d2852d494d4f8836c54e2ce942a342f452a23ef437df9640bb2f5bc9 + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:3b01ebdb0704dc6a1a993ac076819489495ab3fe32e3c14609e42d1358856be2 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:b37dd2cf4b459fecb6d681cac36918e486c3bd22501df50b90e20b15fe164d56 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-rhel8@sha256:22ffe08d6a0d5461158613f2b2a2ac6936025357e282a09197a750c42b5e6922 + name: IMAGE_domain-mapping +- image: registry.redhat.io/openshift-serverless-1/serving-domain-mapping-webhook-rhel8@sha256:99f5dcb92a33c047f0b68236a3a42ffaec78037dd0a5eb79d1144d62d6bfcf43 + name: IMAGE_domainmapping-webhook +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:8353ccb4f0d70597d61e4fd1f799d4bb74e5bc038f6b9916059e712aa70b97c1 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:887480662b1bfe09626fbca8ec7c5da879d097c46dca11764ea98474ec78ab5d + name: IMAGE_storage-version-migration-serving-serving-1.10__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:b2480154951109a159acfb88c5472a312a515d6a6b060d832b3f7bfc16f90ac5 + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:bf693eaa845373e1a06041626a9314ec00519a6fd2437b12f7f4f3f104864039 + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:c078071cd51c7fd5584039b54a2004331c05a897ee8b0689bfcb9204a8ebae80 + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:b48f410efa0ff8ab0db6ead420a5d8d866d64af846fece5efb185230d7ecf591 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +- image: registry.redhat.io/source-to-image/source-to-image-rhel8@sha256:6a6025914296a62fdf2092c3a40011bd9b966a6806b094d51eec5e1bd5026ef4 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_S2I +- image: registry.redhat.io/ubi8/nodejs-16@sha256:f90b28179d1d5de68d42ef1a9166d70a9dfea85a1c6a4bf12dce2c59eeb2fbb1 + name: IMAGE_KN_PLUGIN_FUNC_NODEJS_16 +- image: registry.redhat.io/ubi8/openjdk-17@sha256:a8165bc2cd5051a96d6937e25ed03155bbd4b731da6e58cebfe2ea83209c16d8 + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_17 +- image: registry.redhat.io/ubi8/python-39@sha256:4f35cbcc6f4e108c69f7d2b70cce5afb138741b0c961506376d524e001b922f4 + name: IMAGE_KN_PLUGIN_FUNC_PYTHON_39 +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:b84351200cba437c323f7f21d0cb58e0a443d772376a9ea6de1278a68d1c2c7d +name: serverless-operator.v1.32.0 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.32.0 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2024-03-11T19:05:23Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + features.operators.openshift.io/disconnected: "true" + features.operators.openshift.io/fips-compliant: "true" + features.operators.openshift.io/proxy-aware: "true" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + olm.skipRange: '>=1.31.0 <1.32.0' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + operators.openshift.io/must-gather-image: registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8@sha256:faaa1ecd0b2b7a37f6e603435b0417d13693662c4bc85a6753f770a14a545ff9 + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: A platform for streamlined application deployment, traffic-based + auto-scaling from zero to N, and traffic-split rollouts + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: An event-driven application platform that leverages CloudEvents + with a simple HTTP interface + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: An extension to Knative Eventing, merging HTTP accessibility + with Apache Kafka's proven efficiency and reliability + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.14/html/serverless/installing-serverless#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.14/html/serverless/installing-serverless) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.14/html/serverless/serving#serverless-applications) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.14/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.25.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:f23587c78cecb9c09b7beb8e572a662cf4dba7844c08abebd583f205a993c435 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@sha256:5121f1657645c4932fb2cf1e85810e5e135dca3a297138c687d827a9e493557d + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:bbf27adc281e3b5e573f7cc11abcfc03e6a50adf6c7160d1e7d427077d288b1c + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:b01e8aa83f81b130aaafb4b29434bfd9057f6b84f9aa1cd3bc229b6c8207ae26 + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:4d156ad90ade221eca5f6ac174245554984b710e39005a7bfd57ce2590800d08 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:4565dd8737c1e84950fa482ef06c6e11084b7873a2272d3a317ac0687a97193d + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:4565dd8737c1e84950fa482ef06c6e11084b7873a2272d3a317ac0687a97193d + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-istio-controller-rhel8@sha256:15af188d02f524da32c0122c3a02b5ce58bbfb6b729abed8c04def9f0ff0b04d + name: IMAGE_eventing-istio-controller__eventing-istio-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:9876c845fe0f94fd53d48a862eb44d219d852b506715c8763934efee30e44475 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:b9bf9288f5008269624b2a3c592d32d8943b9ae536a6b4a65799a7847c051a4d + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:b9bf9288f5008269624b2a3c592d32d8943b9ae536a6b4a65799a7847c051a4d + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:b9bf9288f5008269624b2a3c592d32d8943b9ae536a6b4a65799a7847c051a4d + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:443d5cd21bc2721ae6203cc1bfc6310478c604ea060dfb4496c1f25c5f1b4543 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:b443a4f71e0c479026c37f268cebf05e811dff589f1d69e2d353ae20612356af + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:b443a4f71e0c479026c37f268cebf05e811dff589f1d69e2d353ae20612356af + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:b443a4f71e0c479026c37f268cebf05e811dff589f1d69e2d353ae20612356af + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:5c7f98c061bf856c298a14bba2e4e3117ca3883c5be1697b4ca6b4750dade719 + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:c86aa26e00a2248a051470e7811623dcab6d1ffac6b6831551294dbd13a937a1 + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:b2e3f71858b44053be240c28955574338e006e7a70d650429575333a1fe52a8d + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:1c8931df351e1df76ebd32e2a7891d4b242c4f9304c511e8df04fbc23623b4b6 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:6f999e5dd1bb415ca53c4c8fd8a3e4a032ca5cbebb3354e44d620f1d83a8d489 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:4a5e8233812053808fbf4d26dae6cb512027c872f93ccb09a54bd0065d4720f4 + name: IMAGE_storage-version-migration-eventing-__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:4a5e8233812053808fbf4d26dae6cb512027c872f93ccb09a54bd0065d4720f4 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:ef0a507ae9676f4cd27ef56e81cc2e6b14ec40004e2b6500f7351f5a9e3eae69 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/func-utils-rhel8@sha256:fa4009b583229378dd3ba0348297fd0762aea352895728c648d98e7b34f1be13 + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:58f6b6ec4f46b76cc3a25b3896f0c544486f6a9ebdf8bf8ca1974c90cd885b6a + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:73f0e84235a401319734ab3dd0074533e2364d5043e7afa711ce0c40ca3d71bb + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:764bb6c4d2b86c723e5641f8390ac6aa7d28289b8eb982fd2985399274f910f6 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:cff8c78f5539343b44f20b464bb7848973c94b17b91fde02d0d6c126a4df0a06 + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:bb93b5d5a33e10b6e836f338199b9ae563501af1a5ce9840967ef00009f2a07b + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:854358e190dff1de84327877fbb9f61fb177a1f46cb2cc0ae79b62af3c252e7f + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:b84351200cba437c323f7f21d0cb58e0a443d772376a9ea6de1278a68d1c2c7d + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:fdc073804608d432ffe2875cad548bc5bcc44475fa413aed62a33b33d0d6d822 + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:bad92005f90f01c0e088ad55ce159c3823cdae233125651879379abeb34c7a60 + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:68767264f30604fb950cb29b8f6d4da653d2cedd82a1c637a5bc04d80b21560a + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:3d6f35b63c546c6fd3de5af79f8402f4a27a7d7274a5f0e64478a4e015c3e805 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:f0fa22afae2d140496f64e5e24f418a3ab75be80b0b6e4710d44ca493d1f6628 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:6494a92d822a6ae4ff730a0f0010a78f94b4f632b2a00f712870678c3688df4e + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:1c66deb5e98e8c28741d87dd3cb181b478c7ffaf97e92cfd81abf538200c6e52 + name: IMAGE_storage-version-migration-serving-__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:0010a994ab96d55f29be56819629b9925cb607ab5981171a6e45c08df62045b0 + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:bf693eaa845373e1a06041626a9314ec00519a6fd2437b12f7f4f3f104864039 + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:ecbe2c0919df429655d90d0d0a6a795b5ddc5b27984e800555a8fbc2958d4342 + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:55f5c7d88c77e1ab5a2ab8e877172b2b66cb196e21f10dc45148470d0ee8bbae + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +- image: registry.redhat.io/source-to-image/source-to-image-rhel8@sha256:6a6025914296a62fdf2092c3a40011bd9b966a6806b094d51eec5e1bd5026ef4 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_S2I +- image: registry.redhat.io/ubi8/nodejs-16@sha256:82cbcd71ab2ae4852e87411682f0cbccdda8aa9f3edf40445d8969f77b453287 + name: IMAGE_KN_PLUGIN_FUNC_NODEJS_16 +- image: registry.redhat.io/ubi8/openjdk-17@sha256:7016a0c5ce878211a8b82fbeb6619f82a97a35acdba6773be1c5f92f4e85aec8 + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_17 +- image: registry.redhat.io/ubi8/openjdk-21@sha256:86e499efaa15b1ad6221aa4d4fe26e514a8bb721aa3bf7575293b7101eb0e128 + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_21 +- image: registry.redhat.io/ubi8/python-39@sha256:6b0a73679bad8510b017bb95e411bd4a7d3ee7d3515d030bba3b710254921f23 + name: IMAGE_KN_PLUGIN_FUNC_PYTHON_39 +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:828d31bf8a441091b8aed03da213a6b4ffae260070eff58c3319156f9bf04f5a +name: serverless-operator.v1.32.2 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.32.2 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2024-08-01T10:56:58Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + features.operators.openshift.io/disconnected: "true" + features.operators.openshift.io/fips-compliant: "true" + features.operators.openshift.io/proxy-aware: "true" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + olm.skipRange: '>=1.32.0 <1.32.2' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "fips", "proxy-aware"]' + operators.openshift.io/must-gather-image: registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8@sha256:16c026f09b377c44253cdb902b9a5fa0ae766fd0185cca1863798a212e0daee1 + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: A platform for streamlined application deployment, traffic-based + auto-scaling from zero to N, and traffic-split rollouts + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: An event-driven application platform that leverages CloudEvents + with a simple HTTP interface + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: An extension to Knative Eventing, merging HTTP accessibility + with Apache Kafka's proven efficiency and reliability + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.14/html/serverless/installing-serverless#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.14/html/serverless/installing-serverless) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.14/html/serverless/serving#serverless-applications) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.14/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.25.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:0507ea8745267fdb53329a5274d59d23c387225d2594af51dd2603b4ad99db0f + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@sha256:a5a7b2be50f211d4d9d555b2a2e2302096c139ff5011d984cc386f1530007f16 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:14ca32e999767776c3e585ff5eb1aa568f7d76fd3e5ae24cae05ce7564678080 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:e7e6cbb46720eeca3f0f4b9829dfeeb3db373a83c89cd808b667ded4d5e139a4 + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:1a1de677297525c0c5d317fe8a7a42684fe3f1b422a7d6bea1f70f0924653b08 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:8033b7c1e903ba313134645c626eb3bf7ab1a0d68dc2575bc8e26884ad4f805f + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:8033b7c1e903ba313134645c626eb3bf7ab1a0d68dc2575bc8e26884ad4f805f + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-istio-controller-rhel8@sha256:9b6524f9c0e7f78e6ffb372a8587eaf5f4f1281eaf64f93dd00b63be84a4c21e + name: IMAGE_eventing-istio-controller__eventing-istio-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:990962ad245a6d62cd11551bd4e1f8b14dc08abbebe47beddb2f4874f78d4f47 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:e1e2273fdf6384d95e1128e54c0794d7d620291a272bfb1f91e0c2723be7f1b7 + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:e1e2273fdf6384d95e1128e54c0794d7d620291a272bfb1f91e0c2723be7f1b7 + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:e1e2273fdf6384d95e1128e54c0794d7d620291a272bfb1f91e0c2723be7f1b7 + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:ab9a1b952e9603b4ecc5f197715a1d871abc25ebb0c5e6470d4f0b365ae94276 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:e70dd3a9e067075eb56e5f2772642545e308348cd49b89357c02de3979b1a5be + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:e70dd3a9e067075eb56e5f2772642545e308348cd49b89357c02de3979b1a5be + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:e70dd3a9e067075eb56e5f2772642545e308348cd49b89357c02de3979b1a5be + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:b008da825ee2429f04cf39258389740c68056f82cf4bde0cbd3db850b6256885 + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:7c8cefd5823ad953f112b905c651f12a97491aafc008b2ba0111f0c9e83e50ae + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:46b8dc1c8ea6c40401d4d1a9868ab3edbe8b9e92364a43add6722489e2eefa04 + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:da5f813dea324ffe9679524ea7f3801536fa48f7dbbd8da56a8492b916b15fc3 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:04e5b3882223d45a5f5383ce6481efb7b2cbedea57ebd894caafb1454ad8c09d + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:4933b76d95d411d597d4dc460fc46c92875d28e107cda661946206a9d934b8b5 + name: IMAGE_storage-version-migration-eventing-__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:4933b76d95d411d597d4dc460fc46c92875d28e107cda661946206a9d934b8b5 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:22b4d47725ed8cdd663ee26a03f31198fff9e71dc703532e70c42bdfb4840811 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/func-utils-rhel8@sha256:0551f1657dc158bd41eb2338dd6514d55c39fc77300cdf1744d8f5ab14e9ed1b + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:e55c70591c0498b6b85f0d68e304e88b830ea0b35219ba8881143555757be4b7 + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:1befc9969edd2062b3df69f45aee9771b33a2659c3a14db0aaaf5c3df985af58 + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:3ffcf746df914f0949477b46f90cb2992bb63f8198d73ffd54208e7a777a9cb1 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:2a30ae808d5c32d812406ff4ac9b472e82b6bb0555e62eee4c2c6a972f8750c2 + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:25cbdf78b67e7f5a360313ccfbe3b6e2c98873b4e9ddee46c115a623e77c7abb + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:70c26c7ac48d1eaaf1f95ca5c5b8ba8ee6b047a3c9c4a2c2db9c49a506bb2205 + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:828d31bf8a441091b8aed03da213a6b4ffae260070eff58c3319156f9bf04f5a + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:2f0f84767f7d76dbbf4387ca2e272766267a2c46b5bc29f5d01f05dfa39cb944 + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:9d36cde68bd822016e967148eebd2ef3e7ffab9dcdd37d17f33017e9b703d9b2 + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:ab09a1710aa2331e24df9e7283f3909fdb104c1b314dea88e919d0a396f334d3 + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:42f31eb8f12dd36541c8c0b6572d942c62e2064d5418428482d676d117a6c426 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:0729de0f3f03ed220216c6cb718fc34beece0ceacd926b5e2480bdfcf44df5cd + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:3be20d63d7e82f35ac88274532d6ab7839f9a7306ca272e7d532ac03215faea9 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:b0db9f0fc85fcdcd5da980633a3a44be2bbabae068f89d0965263de38789e812 + name: IMAGE_storage-version-migration-serving-__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:5930caa25ea875d29dff0ec5e235eaa13cb6dc98980d8045335eba1a09ae761d + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:4c9faea6fd162db3340aee8c11af11a08c9d79bbed104967c25df26c4933c8ae + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:20566173a8e907980e603d82fae4d96fcdfd5c43d9004c2e506cf0e09a47b91e + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:55f5c7d88c77e1ab5a2ab8e877172b2b66cb196e21f10dc45148470d0ee8bbae + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +- image: registry.redhat.io/source-to-image/source-to-image-rhel8@sha256:6a6025914296a62fdf2092c3a40011bd9b966a6806b094d51eec5e1bd5026ef4 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_S2I +- image: registry.redhat.io/ubi8/nodejs-16@sha256:69439fe83fa957089cb6fd3c1042ab71d719f81dd457a5d1fbc56c1e3ea600da + name: IMAGE_KN_PLUGIN_FUNC_NODEJS_16 +- image: registry.redhat.io/ubi8/openjdk-17@sha256:a166bd2fedb99cb62ebf4695ab46e19c7e451f887940cdf0b8245c81e403aea2 + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_17 +- image: registry.redhat.io/ubi8/openjdk-21@sha256:bb95ea866269ac8652f666ee1587d71f4f43da33493c2be7f6a9548bcfd2407c + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_21 +- image: registry.redhat.io/ubi8/python-39@sha256:8c96e8648cc6651d0cefbd20496a89f208621601f9664554d3fdeef8ced25453 + name: IMAGE_KN_PLUGIN_FUNC_PYTHON_39 +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:9bee3204d9fafe46f9f188e7ea10ac4843eaaf72a5f9dda68f6d8d7a92310218 +name: serverless-operator.v1.33.0 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.33.0 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2024-06-17T13:54:19Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + features.operators.openshift.io/disconnected: "true" + features.operators.openshift.io/fips-compliant: "false" + features.operators.openshift.io/proxy-aware: "true" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + olm.skipRange: '>=1.32.0 <1.33.0' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "proxy-aware"]' + operators.openshift.io/must-gather-image: registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8@sha256:dde324446b8a4dd9c30edbaaf7bd8ec8c17b53608208bc26b55327749841bb5d + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: A platform for streamlined application deployment, traffic-based + auto-scaling from zero to N, and traffic-split rollouts + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: An event-driven application platform that leverages CloudEvents + with a simple HTTP interface + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: An extension to Knative Eventing, merging HTTP accessibility + with Apache Kafka's proven efficiency and reliability + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.15/html/serverless/installing-serverless#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.15/html/serverless/installing-serverless) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.15/html/serverless/serving#serverless-applications) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.15/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.25.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/openshift-serverless-1-tech-preview/backstage-plugins-eventmesh-rhel8@sha256:7890efb64ea5bdadc6ee97f9675feefdffb7dae2702ead9ff50ec00fb928eb24 + name: IMAGE_eventmesh-backend__controller +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:702b867a588e1b3c85bf75952f0b39b691ac2e59b0119e9c8e01ad4f606c0147 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@sha256:8c7b9a60a344a7302b5f1089ddde71a39b5642af16737977828f11598865186a + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:9962ec37be9e8c968102519812854b2366db4007c582eb088bfcc0988051e067 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:7d5798a50d72d9e721c66b51e9f071f542fa640f91a4456ec7131f06d6965dab + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:ad50dcb62e88bf3543ad9d508bd6bf0f70946eb1a729cdb225bc709dbfde9e60 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:3361f71390529b1a8c6a424068d63d984ccbb94179241a1718d7e2a93fae1dd0 + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:3361f71390529b1a8c6a424068d63d984ccbb94179241a1718d7e2a93fae1dd0 + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-istio-controller-rhel8@sha256:bbf183890ed46556b367e34a968fb7bd0d0c630988695b8d1d58055bff664a94 + name: IMAGE_eventing-istio-controller__eventing-istio-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:8ece7c775831227a198c4e86325a21c8b98e2f54f599219c044033327fd52c08 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:395cd27d93a9ee948e84e9f38c33143bd17a997a78b2844ce6b9aac18410b3d0 + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:395cd27d93a9ee948e84e9f38c33143bd17a997a78b2844ce6b9aac18410b3d0 + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:395cd27d93a9ee948e84e9f38c33143bd17a997a78b2844ce6b9aac18410b3d0 + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:b4fb6c083958c9dfefdc73ace52c67c678d2bc80ae7499b9db3583c1d2d3b6a3 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:e9c1a21a802092cc5b4a78f1449a49391e50c2a487d331c2e6de6fdd3fa1d1f1 + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:e9c1a21a802092cc5b4a78f1449a49391e50c2a487d331c2e6de6fdd3fa1d1f1 + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:e9c1a21a802092cc5b4a78f1449a49391e50c2a487d331c2e6de6fdd3fa1d1f1 + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:601ff5b3615c1d86b5ec7479568c4c6817aeca049b6e745c43be22844dc13d4e + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:83321b6ba12b0e64cb370702396fbbbbab4b2c8201dd235b4a2094f2317497e3 + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:f0e85df2dbb1791e0c062cc55f5d90d005fbd742a942a8cdf237be44c633553e + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:7949087ff89604fd77a0fd5aa06489991462d82a48da224b2b98abb8d69acd27 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:b6add9e1d55f3cc0e32f779f083fdd889daea68b4e247f31b2f69574db5ca4bf + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:9dd214dd2ecb7095bed6f19d8ee85d965d4a081a4afa597962a301bfea49f9fd + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:9dd214dd2ecb7095bed6f19d8ee85d965d4a081a4afa597962a301bfea49f9fd + name: IMAGE_storage-version-migration-eventing-__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:bff9e09435cc1ea41825996d0e8529b37275c9f9d57a245736fc463ac14a4024 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/func-utils-rhel8@sha256:aaec9703d03eda1fc1828ea3c9a921790f16715936cbcaa8c474165d26917ff7 + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:4ba91436c643f21c51b9906443fadac92cdb6c4643778452bcb38e0703ffb0e3 + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:4973d87f9ce0447e2d8e8a54eddd936e9b7cd99fff4e5490ff21b750d2acf706 + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:8fe56a80db8aa1130c5731a383ecfe74db4f1babaf4c067d4a7a1600f2f82cf3 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:d9e1f407aa32520a116d51bd5439c534cf61da11355b831d398a238974c77fdd + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:88a0da51e7507bdf81acf705f636e77a10f2fbdcbe0c6ffe97c312c8570a63f8 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:2c6e04124bc7c9f44be4c41ec4db60aad64192b40a1b69fdf5b918a5de74bbce + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:9bee3204d9fafe46f9f188e7ea10ac4843eaaf72a5f9dda68f6d8d7a92310218 + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:78077131691f4685f4f36e785147920090cd9a138969979e3c46c7ca2b100220 + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:7eb52ae2fd87f4a89133e706b4a2993527a88dfd55ca7266f518d7ade669d978 + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:c8da043cdf66907cbb2370e5f8593fd3cbfcc85948d6f72a266993bd22cbd358 + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:a7eb1df20577cfb908a9d2f84888fe7b6674b9c4946957e7a9933d290248aa2c + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:e279b15f22194425ea46b8c58ea5b5e195afe78d550ff68151d4ccf99205f316 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:20fa7da4753f888dbb495950cf1c946cbbf7c7fddc23ee3a58c8160687198428 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:dc3524e16a1164205429637ad8820032bc3184176b8e5e9beeaa781e4e3bfe00 + name: IMAGE_storage-version-migration-serving-__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:749b263095fd585f3fe4d6e3b925d1f76a843bd54b6b385b435b1e8bced1ad4b + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8@sha256:dde324446b8a4dd9c30edbaaf7bd8ec8c17b53608208bc26b55327749841bb5d + name: IMAGE_MUST_GATHER +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:c4f08d86c2f17e2b265322d17e626fa1f7eff0074275de0cc48ce651f0602ca7 + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:309843a1347643ed7f6d3d74bd5673aa1eee52356a8c1b25b53706181d0f3f0d + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +- image: registry.redhat.io/source-to-image/source-to-image-rhel8@sha256:6a6025914296a62fdf2092c3a40011bd9b966a6806b094d51eec5e1bd5026ef4 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_S2I +- image: registry.redhat.io/ubi8/nodejs-20-minimal@sha256:52124a2ed45a97ed5fd73662b1f557407d4fcd7a10caa57d6d121e7c3f2af3d0 + name: IMAGE_KN_PLUGIN_FUNC_NODEJS_20_MINIMAL +- image: registry.redhat.io/ubi8/openjdk-21@sha256:69090c70cc88587ff10c39be263332e276bc8868d1b9cd507239a42fd036c098 + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_21 +- image: registry.redhat.io/ubi8/python-39@sha256:78f4d1a6528fde88dd8aaee321d3fadceccb52ad1c8781eb13370a5933bd1ba0 + name: IMAGE_KN_PLUGIN_FUNC_PYTHON_39 +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:f938cc534fc4b24bb9449f1e1e1e904dc588e6646c98474de4b8c81d083b4d96 +name: serverless-operator.v1.33.3 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.33.3 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2024-11-20T08:38:34Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + features.operators.openshift.io/disconnected: "true" + features.operators.openshift.io/fips-compliant: "false" + features.operators.openshift.io/proxy-aware: "true" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + olm.skipRange: '>=1.33.0 <1.33.3' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "proxy-aware"]' + operators.openshift.io/must-gather-image: registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8@sha256:e1cb1c24333605e52364456f9bd8d86d787d1bae17ef75dd04be61257fdb2256 + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: A platform for streamlined application deployment, traffic-based + auto-scaling from zero to N, and traffic-split rollouts + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: An event-driven application platform that leverages CloudEvents + with a simple HTTP interface + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: An extension to Knative Eventing, merging HTTP accessibility + with Apache Kafka's proven efficiency and reliability + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.15/html/serverless/installing-serverless#install-serverless-operator). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.15/html/serverless/installing-serverless) + - [Develop Serverless Applications](https://access.redhat.com/documentation/en-us/openshift_container_platform/4.15/html/serverless/serving#serverless-applications) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.15/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.25.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/openshift-serverless-1-tech-preview/backstage-plugins-eventmesh-rhel8@sha256:28ae309e4cf7feabaf78ac6067e1173f9f5b33a71c06d6c27cf25e01a0b1ed64 + name: IMAGE_eventmesh-backend__controller +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:eab4aa93b9d175045b1f01bff09681107d839285e0d633cd5146d2a2efab373c + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@sha256:af66cc7dbed88907d96a390fe5c8807a2a60bbe3276b8cd13b4b061cbaf7b162 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:dd1f7c850f7cf2a4d70403deedd8a57ecc6e0ee5455d68fdfc49ff175fe42dde + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:a8821b59d495e24598b27c6510b32ef19de2bb04ea1e568fc5afb9135d772036 + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:05e3dd6255294b691783523f7722cfaf13aca1a1e1dab344a25eeea72aaf9f9e + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:6dbfa2573a2c78e450d3c1c04c6e7cbc50d9272233e828fe9b42e575ecf386c0 + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:6dbfa2573a2c78e450d3c1c04c6e7cbc50d9272233e828fe9b42e575ecf386c0 + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-istio-controller-rhel8@sha256:ace72435e3e63ab21dff2345f958cf6bd171537ef2846c5d5d91cf821877140d + name: IMAGE_eventing-istio-controller__eventing-istio-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:d8ae7bc888f11121fbbba65074389b879bc22453bbabc551d79d0cee68fc33a3 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:359f8b9fbb4c3c2f79e8c70f3b50c994693b930f6f078c34c87112ebb93037e3 + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:359f8b9fbb4c3c2f79e8c70f3b50c994693b930f6f078c34c87112ebb93037e3 + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:359f8b9fbb4c3c2f79e8c70f3b50c994693b930f6f078c34c87112ebb93037e3 + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:510e98837a549f489b2d74939f3b9c7ed90a8260ba914910f681d5c0dec7655c + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:b2be693c71cfc4ce934d5b01efb863dc6e391f93a6b15fe7eeb15914063a8294 + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:b2be693c71cfc4ce934d5b01efb863dc6e391f93a6b15fe7eeb15914063a8294 + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:b2be693c71cfc4ce934d5b01efb863dc6e391f93a6b15fe7eeb15914063a8294 + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:62bf4bee0ea17ecc60366ecc71431adc79d6f0a5b9f59489913b474128c4adb0 + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:c3dee2598088bda36ef474f4748943a29169ed9589aeb0f77bc79a7f6bef9907 + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:672022b6f2a080483d9d6f6f4a5f42e52e522a5797105f3465731809c6cf4947 + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:a0399a993155e755409355740b260d9b0019559a62be3b6253d8693a4fb59286 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:b871bd08b782c9168e9a54340efffc0b0effadde8079915b848e4eff72bb3e95 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:9b94875e0e5d7abdb3b9ba7b04e217a2a9b7b4410d38d1608c86d1c21f929cc1 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:9b94875e0e5d7abdb3b9ba7b04e217a2a9b7b4410d38d1608c86d1c21f929cc1 + name: IMAGE_storage-version-migration-eventing-__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:879fca768b46676f1df89de1cdc4ded8dac310209c146c2f381ed1deb19b06be + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/func-utils-rhel8@sha256:42d16e4d9f14a427e7a5b7e3a4ea07c258e0f2c74984baeee3b4926a8c5e2640 + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:5c7f29554d04eb9348932953344f2ea0806d14e7704355619381bf395d993f58 + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:ea9e4de6228d5c3ed494c2ce5317ec290543ad40bcf7c43c2a3d6565e5d94e5d + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:09060de091d617bd4606f7a289b4528265ae0b7a04737f383e79efd5b0d3eb79 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:9b850afa750a67120f68a49f4834ba7f105563df22cbcbc563317fe1545640d1 + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:993597ff83a4d62a23f642fadc92f182944b953770716b73b7d19492b5a462c3 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:28c9d05a3ba73b76f293e8f4902b574deb44f77a2bae8cf92473b8a8b10cee92 + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:f938cc534fc4b24bb9449f1e1e1e904dc588e6646c98474de4b8c81d083b4d96 + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:eb95deb2105f14c6a9f3bb2cdd7306b446109a9b142a7bfc726b6429f270d9e5 + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:93b2f5211e79abc38bf92f0b8fb8adf046303efa2fe62c47a2fef9dfb5662f55 + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:e9b38f1df225238836aa829f3a2016372859fb8709cdd2b30496498669a90be1 + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:2bd241898bd54dcb248ae86470430042dc545d45e7519ed470a1a9c8c63bdc37 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:b12272e1a9cb4f4bb62c4badc62b0bab110abb99484612dc781c46bfeac13cc0 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:56c6ac59a68976741d2ba676a53e59fc494d04dc44b513d72fdf8a9ad894a54d + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:ccbda564735555785815f27f8f25ad9c6c27dabe4e262586fc51609331692527 + name: IMAGE_storage-version-migration-serving-__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:a9c84ac7e7c3fb1e5dedaf949d54a3aee8a62397d2bd6022094671de00b651da + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8@sha256:e1cb1c24333605e52364456f9bd8d86d787d1bae17ef75dd04be61257fdb2256 + name: IMAGE_MUST_GATHER +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:02b834fd74da71ec37f6a5c0d10aac9a679d1a0f4e510c4f77723ef2367e858a + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:76a47d100de1f2afa23803bec503d9440605db03c7179b231f963e5663a3d12a + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +- image: registry.redhat.io/source-to-image/source-to-image-rhel8@sha256:6a6025914296a62fdf2092c3a40011bd9b966a6806b094d51eec5e1bd5026ef4 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_S2I +- image: registry.redhat.io/ubi8/nodejs-20-minimal@sha256:acee3b00ccf8ff49bcebcf10e028e34a84d45f28f855363bafb3b93c75e84f11 + name: IMAGE_KN_PLUGIN_FUNC_NODEJS_20_MINIMAL +- image: registry.redhat.io/ubi8/openjdk-21@sha256:095175ef8573de8055e67bd5c8a21098448ac73db4e0d6ccd5269dd36b4d263c + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_21 +- image: registry.redhat.io/ubi8/python-39@sha256:ac12e4706e0fdc464e791a3f274474ac1bb14d5af8f217c440fbb0c76d6a5d00 + name: IMAGE_KN_PLUGIN_FUNC_PYTHON_39 +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:82b9bfb8b83701db1a9b891d1ffc1e782d4b0f971fc9a53525942845c2602934 +name: serverless-operator.v1.34.0 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.34.0 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2024-10-08T12:30:03Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + features.operators.openshift.io/disconnected: "true" + features.operators.openshift.io/fips-compliant: "false" + features.operators.openshift.io/proxy-aware: "true" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + olm.skipRange: '>=1.33.0 <1.34.0' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "proxy-aware"]' + operators.openshift.io/must-gather-image: registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8@sha256:c7ea3d26e4220fcfde67b840b1cdb135bd9774ff84eb2e4673de81c9f3696d11 + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: A platform for streamlined application deployment, traffic-based + auto-scaling from zero to N, and traffic-split rollouts + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: An event-driven application platform that leverages CloudEvents + with a simple HTTP interface + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: An extension to Knative Eventing, merging HTTP accessibility + with Apache Kafka's proven efficiency and reliability + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.34/html/serving/getting-started-with-knative-serving#serverless-applications). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.34/html/installing_openshift_serverless/index) + - [Develop Serverless Applications](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.34/html/serving/getting-started-with-knative-serving#serverless-applications) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.15/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.25.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/openshift-serverless-1-tech-preview/backstage-plugins-eventmesh-rhel8@sha256:5e28ee6c57a52b7f144bca484216562585e1b593c20ed155009f35568ae44df7 + name: IMAGE_eventmesh-backend__controller +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:615c1659509869b87d1e1944f2b7bde8683b99e5c6828f98dd1066ef2be2cf99 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@sha256:735a6918003f933af603363f6db7f3688cbb6224af838b1cb6f5fcca9e2c51f6 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:9da2f46278867e2d5e2e680f1f90c6bec46c283ef7bada24091bc6c42311f968 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:040cd6cd7f4de080515a5386a61b7ae4f0c5a035bdb6243e9769d0c561564ce6 + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:2b8b052aa9d5281e033220cecbe1e41198d3f81d38d8ad863363104a64af793a + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:1203cf6bcb136aa1c9d2ef8fdae9c24f055df4b60fc96ab512712108d076100c + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:1203cf6bcb136aa1c9d2ef8fdae9c24f055df4b60fc96ab512712108d076100c + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-istio-controller-rhel8@sha256:489bc48ea89de2ae891d12a5a2ff4a14fc737d9ab2039b4df5defbaf783a306b + name: IMAGE_eventing-istio-controller__eventing-istio-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:cd6f6210695039f6695668e8fbe9348d934d53d047f81f80aa2cd68da1d565cc + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:e629f016372a1549ed03e3f448c170fe8bd7aeeab9cacdaf7bf0b20c59e296d0 + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:e629f016372a1549ed03e3f448c170fe8bd7aeeab9cacdaf7bf0b20c59e296d0 + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:e629f016372a1549ed03e3f448c170fe8bd7aeeab9cacdaf7bf0b20c59e296d0 + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:3bc7b79bfd0de429d111bbbbbf3f848b9469694ae2ad33d180a11dc12e875d67 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:f469fc6f82e9ed233481180da108d0b1ef480ac165d4ffce5e9402d8aa080ab8 + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:f469fc6f82e9ed233481180da108d0b1ef480ac165d4ffce5e9402d8aa080ab8 + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:f469fc6f82e9ed233481180da108d0b1ef480ac165d4ffce5e9402d8aa080ab8 + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:21b9a2e671cdc5c6d694b918d7fe794c0a91fa6487316240231b90827183a2ef + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:73bba4048d7185c5816d25be2bdcad1597dc9d2eb0e6714d8c3e58f4c77d0282 + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:09f668747852d8ffe8fc7cca51c4e414a046b41b1e3d777466d143636148f55a + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:aedb5d2b060292006ebbfbe1108c93af3c652decc240e19a6415083ddb2e7979 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:b9bf89156a42a950ad188739806c9499084426acc0e19373f5c3832b668730d6 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:fbc93a6137779bc2b2f131765f2db66d3ad1aaab8cc420e2fb1390694b41411d + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:fbc93a6137779bc2b2f131765f2db66d3ad1aaab8cc420e2fb1390694b41411d + name: IMAGE_storage-version-migration-eventing-__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:37dc0c92be81c86eb25e05fca87ce906bcf928c4a90042182d146ac3593f3a73 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/func-utils-rhel8@sha256:7b11f01ff32f7f41899c60d162389f46efccc3ec955b0bce1d993c47fd627db7 + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:6c800066d3df98229ced683ff86e6ba66e73a01a2f32b1956952f3bffe556978 + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:7e36c484e5c005e291467bcdfbff2791ee6b4f52570b740035c453a67b957407 + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:8dcdc36aeb7c0c246095d32d7e1606a5219985278d25dcf29ee5f01dedd778aa + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:737793adc6f8d570f0af45eed1fa9fa95afba68b6c3c3aa67f38892d9625452f + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:062c9c6a15a1feb37ceec917d45901b5eb2368bf0368a151782677a2eea097be + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:d53d0d5bb4fb114fd46a0de22d26ff1eefd9579ad556079e8d65d483b8b94d5a + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:82b9bfb8b83701db1a9b891d1ffc1e782d4b0f971fc9a53525942845c2602934 + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:61b971cbb4a6585c916e956a7a0f4096e49794188eea56cb09c2c89eebedd7df + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:22e62a4ac77f6fcefb041c5d7d5f2fd289a6c8ee06f3de98f6837ad0e876fadc + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:7b7a3107853e467128952012c8647e0dcf3c40a2c81aca3aec90478dc160aab9 + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:74d578ddd1fb1b4a7b696ab2ba0dc59616fe7c730bc94cb2cdd93d6e53f15c69 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:f5d69ffded16f5008c2f936a3eb03488ba554dc004aa0fc24995242251ac6d5b + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:629183a90335e9159284f641103234e79a49e48785c59f3c800f74acea2faa64 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:620794a4937ea20858cee3ea8566286575dfa8e03ca5a2972a70da22748be127 + name: IMAGE_storage-version-migration-serving-__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:e2b0a4336567ca54f17d4ab48266cad9f0505b4b34a99e1ce39a57afb5d808be + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8@sha256:c7ea3d26e4220fcfde67b840b1cdb135bd9774ff84eb2e4673de81c9f3696d11 + name: IMAGE_MUST_GATHER +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:02b834fd74da71ec37f6a5c0d10aac9a679d1a0f4e510c4f77723ef2367e858a + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:e34f912158985525f6efb3c4b675f20854fc677c867d12fe3cd2e971309428dc + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +- image: registry.redhat.io/source-to-image/source-to-image-rhel8@sha256:6a6025914296a62fdf2092c3a40011bd9b966a6806b094d51eec5e1bd5026ef4 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_S2I +- image: registry.redhat.io/ubi8/nodejs-20-minimal@sha256:1a493f45b1621f3f9de81d0c41f2e614803d4b6fe5c3233d0467063d5baf165d + name: IMAGE_KN_PLUGIN_FUNC_NODEJS_20_MINIMAL +- image: registry.redhat.io/ubi8/openjdk-21@sha256:e8e2b2525e1ba56ec2e2cc582a4fba7c95210cb2e073f6744172cf5d41ff309b + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_21 +- image: registry.redhat.io/ubi8/python-39@sha256:59a97ad8ec36453d8f6503f41a06585536b000611827183309fdc4dbb8cf9c27 + name: IMAGE_KN_PLUGIN_FUNC_PYTHON_39 +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:095629572a40469eb651c9f81d6c10ff46254eff8b9813cadce54d6f0075c2fb +name: serverless-operator.v1.34.1 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.34.1 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2024-11-20T08:53:53Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + features.operators.openshift.io/disconnected: "true" + features.operators.openshift.io/fips-compliant: "false" + features.operators.openshift.io/proxy-aware: "true" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + olm.skipRange: '>=1.34.0 <1.34.1' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/infrastructure-features: '["disconnected", "proxy-aware"]' + operators.openshift.io/must-gather-image: registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8@sha256:a4b3d75903de1929326041e9885213074473f07fda91b299548d45680c295c00 + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: A platform for streamlined application deployment, traffic-based + auto-scaling from zero to N, and traffic-split rollouts + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: An event-driven application platform that leverages CloudEvents + with a simple HTTP interface + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: An extension to Knative Eventing, merging HTTP accessibility + with Apache Kafka's proven efficiency and reliability + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.34/html/serving/getting-started-with-knative-serving#serverless-applications). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Build strategies including Source-to-Image (S2I) and Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.34/html/installing_openshift_serverless/index) + - [Develop Serverless Applications](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.34/html/serving/getting-started-with-knative-serving#serverless-applications) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://access.redhat.com/documentation/en-us/openshift_container_platform/4.15/html/serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.25.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/openshift-serverless-1-tech-preview/backstage-plugins-eventmesh-rhel8@sha256:09dd94090eea9cac7a1935a6d671cb97fd9fd5714c715c9d2aed461e468ca54a + name: IMAGE_eventmesh-backend__controller +- image: registry.redhat.io/openshift-serverless-1-tech-preview/knative-client-plugin-event-sender-rhel8@sha256:f94f0e8d21a6b6341b1db00513a1a2ed5cd84fcd898a376ecde942e940a518e7 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/client-kn-rhel8@sha256:33d62d13e16f47db9951ac826671f39fdc048fe7c3fb019eeb4bf9bd0f814222 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/eventing-apiserver-receive-adapter-rhel8@sha256:84994eabeb7342a0771c7cb1bdd70e7ee3928dd45874eafa64cde5bb385fe964 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-controller-rhel8@sha256:1c82d20ccf5eb5f8e7725839f1060f4efdfd1c1b4773a99bd905e690a6e36f38 + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-controller-rhel8@sha256:1252960c0c0a4dc7b39090cde0fd5742a19453b1a65a08b737bc41d044a0882a + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:b801ed7b1cb32d4a1522a959e97f280f2eff6fc92e47fea2ea022f180d37831a + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/eventing-in-memory-channel-dispatcher-rhel8@sha256:b801ed7b1cb32d4a1522a959e97f280f2eff6fc92e47fea2ea022f180d37831a + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-istio-controller-rhel8@sha256:ef7f34a025e40f93fbd51f3a4596998a6dc508db824f137ffa1fbaf90e88f4a8 + name: IMAGE_eventing-istio-controller__eventing-istio-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-controller-rhel8@sha256:86ffb8be1762782d643c147cefcfbc2b4723b0f97d017314a99bd2275d05a1cf + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:d40daf67b36387faa9f55e70e50d10d02accfd19470c0ac11b78bf969947fed1 + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:d40daf67b36387faa9f55e70e50d10d02accfd19470c0ac11b78bf969947fed1 + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-dispatcher-rhel8@sha256:d40daf67b36387faa9f55e70e50d10d02accfd19470c0ac11b78bf969947fed1 + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-post-install-rhel8@sha256:76480201188dd142206040af845bd55b44155af92e0c5ee9bcdb8660bea0cdb8 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:d8b94bbce98325fe8079c11c0b7a6c59bad8a7edd0532a7d27ef1632ff0de708 + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:d8b94bbce98325fe8079c11c0b7a6c59bad8a7edd0532a7d27ef1632ff0de708 + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-receiver-rhel8@sha256:d8b94bbce98325fe8079c11c0b7a6c59bad8a7edd0532a7d27ef1632ff0de708 + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/eventing-kafka-broker-webhook-rhel8@sha256:0f8d006d0e7468783739942a1c82c7aec376c9948f23841132c8ddece8ecba06 + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-filter-rhel8@sha256:75228e70fb1383bbdbcc64d0cf24bf5d977c09112e3f32316824188264c3a2bc + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/eventing-mtbroker-ingress-rhel8@sha256:0f126893074cd0398654c4018df6e882b7610e148c82a41ac814f4bf3830bf9d + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/eventing-mtchannel-broker-rhel8@sha256:586fc8ed88f91298dbff31bc2fc4c63e0d6d9356e3358b2f853f49511c3ff9bf + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/eventing-mtping-rhel8@sha256:d5ad3c9db7ce8e4fc950261f7c388476214a03d92e0043c7bbc4f0add2b1e69e + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:2adb0124f04d6c4a552ade79dd1499c8ca997edb45855bf438ca8043b2709e19 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-storage-version-migration-rhel8@sha256:2adb0124f04d6c4a552ade79dd1499c8ca997edb45855bf438ca8043b2709e19 + name: IMAGE_storage-version-migration-eventing-__migrate +- image: registry.redhat.io/openshift-serverless-1/eventing-webhook-rhel8@sha256:30cb41f09067959cfe3792e070fca62820fcca4035683e5c43dd46d1cce97c01 + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/func-utils-rhel8@sha256:e520d1b6b87f85dfffab5e53cfb70562ab7edf450061c07609da39e3b2498fdd + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/ingress-rhel8-operator@sha256:b07010595201d7cfe0ec4f18e612d323eb38464c74eb187f275617a744d9df12 + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/kn-cli-artifacts-rhel8@sha256:c0376504edae12e7af6b6cce02ac53b6b374f5058ebefcbdbd32628b551bb0c4 + name: "" +- image: registry.redhat.io/openshift-serverless-1/knative-rhel8-operator@sha256:01ea7a06332d60ac16ae0a27adcaaede3f680a98a22ff995259a6c42ac0e358d + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/kourier-control-rhel8@sha256:b9d85323e110d8eb6600223c38f9d4cbe89b50d59e03bf1e6b8808f7cef9a3a5 + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:6d042c614431aa9a9e77cf8ba0064423e903f7c418e367ecc23bc02a24a796c0 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:45bc50a993d04b775a153e985a43d587d5455883fc4c6f31b772408297cf9040 + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:095629572a40469eb651c9f81d6c10ff46254eff8b9813cadce54d6f0075c2fb + name: "" +- image: registry.redhat.io/openshift-serverless-1/serverless-rhel8-operator@sha256:633ea30ea3b6d5152bbdb61acb4271e5905d50fbe3c731fb4c8d8640a57f1970 + name: knative-operator +- image: registry.redhat.io/openshift-serverless-1/serving-activator-rhel8@sha256:144883b09d8a999fd4d2a109d074e44d7d8b959987512379aa71c71e4060ca28 + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-hpa-rhel8@sha256:a9e8583c19ca3e01593f8c0e54731cb73df9b46b2ed47a2b1c711828c2295f82 + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/serving-autoscaler-rhel8@sha256:3d17f12cc9da578549254ba1b8934b5afc66e453b1d5d667bb90281e45b8795c + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/serving-controller-rhel8@sha256:946daeff59b41a6f8c4842f8c2668f97ff1b49e2a8afae5d64ba3baa916b1d95 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/serving-queue-rhel8@sha256:a5950f81cbc64d1edb64ae7f7f120c3435d36afcd14ffc34ae522af297d87e1e + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/serving-storage-version-migration-rhel8@sha256:512c4d93dc13cc53d923a6990770a7527d6fb657278e2c5d8f0ece3cd5020155 + name: IMAGE_storage-version-migration-serving-__migrate +- image: registry.redhat.io/openshift-serverless-1/serving-webhook-rhel8@sha256:4b6f161c14c68536ec2c7679d30681afa9a1fa2d512548f0f591791a10a8b894 + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/svls-must-gather-rhel8@sha256:a4b3d75903de1929326041e9885213074473f07fda91b299548d45680c295c00 + name: IMAGE_MUST_GATHER +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:02b834fd74da71ec37f6a5c0d10aac9a679d1a0f4e510c4f77723ef2367e858a + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy@sha256:76a47d100de1f2afa23803bec503d9440605db03c7179b231f963e5663a3d12a + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +- image: registry.redhat.io/source-to-image/source-to-image-rhel8@sha256:6a6025914296a62fdf2092c3a40011bd9b966a6806b094d51eec5e1bd5026ef4 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_S2I +- image: registry.redhat.io/ubi8/nodejs-20-minimal@sha256:acee3b00ccf8ff49bcebcf10e028e34a84d45f28f855363bafb3b93c75e84f11 + name: IMAGE_KN_PLUGIN_FUNC_NODEJS_20_MINIMAL +- image: registry.redhat.io/ubi8/openjdk-21@sha256:095175ef8573de8055e67bd5c8a21098448ac73db4e0d6ccd5269dd36b4d263c + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_21 +- image: registry.redhat.io/ubi8/python-39@sha256:ac12e4706e0fdc464e791a3f274474ac1bb14d5af8f217c440fbb0c76d6a5d00 + name: IMAGE_KN_PLUGIN_FUNC_PYTHON_39 +schema: olm.bundle +--- +image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3 +name: serverless-operator.v1.36.1 +package: serverless-operator +properties: +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeEventing + version: v1beta1 +- type: olm.gvk + value: + group: operator.knative.dev + kind: KnativeServing + version: v1beta1 +- type: olm.gvk + value: + group: operator.serverless.openshift.io + kind: KnativeKafka + version: v1alpha1 +- type: olm.package + value: + packageName: serverless-operator + version: 1.36.1 +- type: olm.csv.metadata + value: + annotations: + alm-examples: |- + [ + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeServing", + "metadata": { + "name": "knative-serving" + }, + "spec": { + } + }, + { + "apiVersion": "operator.knative.dev/v1beta1", + "kind": "KnativeEventing", + "metadata": { + "name": "knative-eventing" + }, + "spec": { + } + }, + { + "apiVersion": "operator.serverless.openshift.io/v1alpha1", + "kind": "KnativeKafka", + "metadata": { + "name": "knative-kafka" + }, + "spec": { + "broker": { + "enabled": false, + "defaultConfig": { + "numPartitions": 10, + "replicationFactor": 3, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + }, + "source": { + "enabled": false + }, + "sink": { + "enabled": false + }, + "channel": { + "enabled": false, + "bootstrapServers": "REPLACE_WITH_COMMA_SEPARATED_KAFKA_BOOTSTRAP_SERVERS" + } + } + } + ] + capabilities: Full Lifecycle + categories: Networking,Integration & Delivery,Cloud Provider,Developer Tools + certified: "false" + createdAt: "2020-04-20T17:00:00Z" + description: Deploy and manage event-driven serverless applications and functions + using Knative. + features.operators.openshift.io/cnf: "false" + features.operators.openshift.io/cni: "false" + features.operators.openshift.io/csi: "false" + features.operators.openshift.io/disconnected: "true" + features.operators.openshift.io/fips-compliant: "true" + features.operators.openshift.io/proxy-aware: "true" + features.operators.openshift.io/tls-profiles: "false" + features.operators.openshift.io/token-auth-aws: "false" + features.operators.openshift.io/token-auth-azure: "false" + features.operators.openshift.io/token-auth-gcp: "false" + olm.skipRange: '>=1.36.0 <1.36.1' + operatorframework.io/suggested-namespace: openshift-serverless + operators.openshift.io/must-gather-image: registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8@sha256:58f3e1806fecdb4d030646ccefd1a147bffef21eee1233487ccdab330e8d4e1d + operators.openshift.io/valid-subscription: '["OpenShift Container Platform", + "OpenShift Platform Plus"]' + repository: https://github.com/openshift-knative/serverless-operator + support: Red Hat + apiServiceDefinitions: {} + crdDescriptions: + owned: + - description: A platform for streamlined application deployment, traffic-based + auto-scaling from zero to N, and traffic-split rollouts + displayName: Knative Serving + kind: KnativeServing + name: knativeservings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Serving installed + displayName: Version + path: version + - description: Conditions of Knative Serving installed + displayName: Conditions + path: conditions + x-descriptors: + - urn:alm:descriptor:io.kubernetes.conditions + version: v1beta1 + - description: An event-driven application platform that leverages CloudEvents + with a simple HTTP interface + displayName: Knative Eventing + kind: KnativeEventing + name: knativeeventings.operator.knative.dev + statusDescriptors: + - description: The version of Knative Eventing installed + displayName: Version + path: version + version: v1beta1 + - description: An extension to Knative Eventing, merging HTTP accessibility + with Apache Kafka's proven efficiency and reliability + displayName: Knative Kafka + kind: KnativeKafka + name: knativekafkas.operator.serverless.openshift.io + version: v1alpha1 + description: |- + The Red Hat OpenShift Serverless operator provides a collection of APIs that + enables containers, microservices and functions to run "serverless". + Serverless applications can scale up and down (to zero) on demand and be triggered by a + number of event sources. OpenShift Serverless integrates with a number of + platform services, such as Monitoring and it is based on the open + source project Knative. + + # Prerequisites + Knative Serving (and Knative Eventing respectively) can only be installed into the + `knative-serving` (`knative-eventing`) namespace. These namespaces will be + automatically created when installing the operator. + + The components provided with the OpenShift Serverless operator require minimum cluster sizes on + OpenShift Container Platform. For more information, see the documentation on [Getting started + with OpenShift Serverless](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36/html/serving/getting-started-with-knative-serving#serverless-applications). + + # Supported Features + - **Easy to get started:** Provides a simplified developer experience to deploy + and run cloud native applications on Kubernetes, providing powerful + abstractions. + - **Immutable Revisions:** Deploy new features performing canary, A/B or + blue-green testing with gradual traffic rollout following best practices. + - **Use any programming language or runtime of choice:** From Java, Python, Go + and JavaScript to Quarkus, SpringBoot or Node.js. + - **Automatic scaling:** Removes the requirement to configure numbers of replicas + or idling behavior. Applications automatically scale to zero when not in use, + or scale up to meet demand, with built in reliability and fault tolerance. + - **Event Driven Applications:** You can build loosely coupled, distributed applications + that can be connected to a variety of either built in or third party event sources, + powered by operators. + - **Ready for the hybrid cloud:** Provides true, portable serverless functionality, + that can run anywhere OpenShift Container Platform runs. You can leverage data + locality and SaaS as you need it. + + # Components & APIs + This operator provides the following components: + + ## Knative Serving + Knative Serving builds on Kubernetes to support deploying and serving of applications and functions as serverless containers. + Serving simplifies the application deployment, dynamically scales based on in incoming traffic and supports custom rollout strategies with traffic splitting. + Other features include: + - Simplified deployment of serverless containers + - Traffic-based auto-scaling, including scale-to-zero + - Routing and network programming + - Point-in-time application snapshots and their configurations + + ## Knative Eventing + Knative Eventing provides a platform that offers composable primitives to enable late-binding event sources and + event consumers. + Knative Eventing supports the following architectural cloud-native concepts: + + - Services are loosely coupled during development and deployed independently to production + - A producer can generate events before a consumer is listening, and a consumer can express an interest in an event or class of events that are not yet being produced. + - Services can be connected to create new applications without modifying producer or consumer, and with the ability to select a specific subset of events from a particular producer. + + ## Knative Functions + Knative Functions allows developers to write functions that let them focus on business logic. + These functions are deployed as Knative Services and take advantage of Knative Serving and Eventing. + Knative Functions bring greater efficiency, more scalability and faster development to facilitate rapid go-to-market. + + Other features include: + - Buildpacks + - Multiple runtimes, including Node.js, Quarkus and Go + - Local developer experience through the kn CLI + - Project templates + - Support for receiving CloudEvents and plain HTTP requests + + ## Knative CLI `kn` + The Knative client `kn` allows you to create Knative resources from the command line or from within + Shell scripts. + With its extensive help pages and autocompletion support, it frees you from memorizing the detailed structure of the Knative resource schemas. + + `kn` offers you: + - Full support for managing all features of Knative Serving: Services, Revisions and Routes + - Support for managing Knative Eventing entities: Sources, Brokers, Triggers, Channels and Subscriptions + - A kubectl-like plugin architecture to extend the built-in functionality + - Easy integration of Knative into Tekton pipelines by using `kn` in a Tekton task + - Create, build and deploy Knative Functions for multiple runtimes, including Node.js, Quarkus, and Go + + # Further Information + For documentation on OpenShift Serverless, see: + - [Installation + Guide](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36/html/installing_openshift_serverless/index) + - [Develop Serverless Applications](https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36/html/serving/getting-started-with-knative-serving#serverless-applications) + displayName: Red Hat OpenShift Serverless + installModes: + - supported: false + type: OwnNamespace + - supported: false + type: SingleNamespace + - supported: false + type: MultiNamespace + - supported: true + type: AllNamespaces + keywords: + - serverless + - FaaS + - microservices + - scale to zero + - knative + - serving + - eventing + - kafka + labels: + operatorframework.io/arch.amd64: supported + operatorframework.io/arch.arm64: supported + operatorframework.io/arch.ppc64le: supported + operatorframework.io/arch.s390x: supported + links: + - name: Documentation + url: https://docs.redhat.com/en/documentation/red_hat_openshift_serverless/1.36/html/installing_openshift_serverless/index + - name: Source Repository + url: https://github.com/openshift-knative/serverless-operator + maintainers: + - email: support@redhat.com + name: Serverless Team + maturity: stable + minKubeVersion: 1.25.0 + provider: + name: Red Hat +relatedImages: +- image: registry.redhat.io/openshift-serverless-1/serverless-operator-bundle@sha256:0030268c0e7b29d70ce3ff93cf6328132ae05be22faaff4527cad7cb7edbc9d3 + name: "" +- image: registry.access.redhat.com/ubi8/nodejs-20-minimal@sha256:a2a7e399aaf09a48c28f40820da16709b62aee6f2bc703116b9345fab5830861 + name: IMAGE_KN_PLUGIN_FUNC_NODEJS_20_MINIMAL +- image: registry.access.redhat.com/ubi8/openjdk-21@sha256:441897a1f691c7d4b3a67bb3e0fea83e18352214264cb383fd057bbbd5ed863c + name: IMAGE_KN_PLUGIN_FUNC_OPENJDK_21 +- image: registry.access.redhat.com/ubi8/python-39@sha256:27e795fd6b1b77de70d1dc73a65e4c790650748a9cfda138fdbd194b3d6eea3d + name: IMAGE_KN_PLUGIN_FUNC_PYTHON_39 +- image: registry.redhat.io/openshift-serverless-1/kn-backstage-plugins-eventmesh-rhel8@sha256:3bc34867f7a620bcdace67e65a0ffb51aead5e4aa1f10cd0eb7476fe8ed1af12 + name: IMAGE_eventmesh-backend__controller +- image: registry.redhat.io/openshift-serverless-1/kn-client-cli-artifacts-rhel8@sha256:b3763ff0d9bebf8ff5ff2570a9ffeaaf4af6e41e41f5af5f810539fee318ad7b + name: IMAGE_KN_CLIENT_CLI_ARTIFACTS +- image: registry.redhat.io/openshift-serverless-1/kn-client-kn-rhel8@sha256:71aa09b98d91006be2a81ac033f72df7256a938902361308b8eb36ea198698c3 + name: IMAGE_KN_CLIENT +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-channel-dispatcher__kafka-channel-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-broker-dispatcher__kafka-broker-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-dispatcher-rhel8@sha256:0a068add4f25dc2f95824ca5d151f9f8a076f690066087841563d31094a7ff5a + name: KAFKA_IMAGE_kafka-source-dispatcher__kafka-source-dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-kafka-controller-rhel8@sha256:745f107385876151cea7d6a1923df128664d709a3bc244598e044982b1224f79 + name: KAFKA_IMAGE_kafka-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-post-install-rhel8@sha256:f19e0176cddae017da03eb40e2c2aad6076fd306bb8aaab8f9b793adda84d002 + name: KAFKA_IMAGE_kafka-controller-post-install__post-install +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-channel-receiver__kafka-channel-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-broker-receiver__kafka-broker-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-receiver-rhel8@sha256:91b33678c53cda31e630940c171fa7d590f088b7836c39d9712f0f6f285b9f5b + name: KAFKA_IMAGE_kafka-sink-receiver__kafka-sink-receiver +- image: registry.redhat.io/openshift-serverless-1/kn-ekb-webhook-kafka-rhel8@sha256:21204d08fb9da8c45d057e3aba6e4cfa7e75c0efebfec4029be75750a510961b + name: KAFKA_IMAGE_kafka-webhook-eventing__kafka-webhook-eventing +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-apiserver-receive-adapter-rhel8@sha256:c906cd4a1c42389c7e4b38db57858fac2250b6357eff0da048e8c6acdb95ba93 + name: IMAGE_APISERVER_RA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-controller-rhel8@sha256:dc5e18074913cee045feb5b1318908b7166ea735b33223ecc8943a09d0853d43 + name: IMAGE_imc-controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8@sha256:53a6a5dfb39f83389b10389488f4d7aba6a5342f411ff7efa41bab30d89d9646 + name: IMAGE_imc-dispatcher__dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8@sha256:53a6a5dfb39f83389b10389488f4d7aba6a5342f411ff7efa41bab30d89d9646 + name: IMAGE_DISPATCHER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-controller-rhel8@sha256:804301d315c8d6958d128fd5951184437f755674d8ec5a4582d6128e989b966a + name: IMAGE_eventing-controller__eventing-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-filter-rhel8@sha256:605f8ab48e761f88de43b4aac439d6576fed46d6d9659a7cb7d0c3d2d87ca55a + name: IMAGE_mt-broker-filter__filter +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-ingress-rhel8@sha256:62548e94ecf52cd50b3df7fc2cb275ce31f18037cd283b90b7987eb8f38f1dc6 + name: IMAGE_mt-broker-ingress__ingress +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-ddb-streams-source-rhel8@sha256:6ada46f655e13db6e8fded4db7ec308123cf8307c1ef171b7eb7eca264ee2c27 + name: IMAGE_INTEGRATION_SOURCE_AWS_DDB_STREAMS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-sink-rhel8@sha256:94d58900cb62d64379f3b9b27cf7f69173d40b115b6d843b9e83839a0080a0a1 + name: IMAGE_INTEGRATION_SINK_AWS_S3_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-source-rhel8@sha256:ee38b68e98bf9adb94554fd4b3a3aec3b533cb407dd0e0afca7f37e10d6553d9 + name: IMAGE_INTEGRATION_SOURCE_AWS_S3_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sns-sink-rhel8@sha256:31ae667a47370e107384d1253c7fe0b708443f9f991210ded167591b4e69cef5 + name: IMAGE_INTEGRATION_SINK_AWS_SNS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-sink-rhel8@sha256:f97257f0af537ffed1ff6fd0bb0a8db58b5b6a44559d0136cc5f134e8ff34f2a + name: IMAGE_INTEGRATION_SINK_AWS_SQS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-source-rhel8@sha256:86e55986b9499e0a9ccbef59a2fb85de3663fe86897d25dba54101e9101b1b91 + name: IMAGE_INTEGRATION_SOURCE_AWS_SQS_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-log-sink-rhel8@sha256:e0f0b9f7d8ced97919844bb4c342ce89c5ff22c6cc764d62f680d0f3eba319b1 + name: IMAGE_INTEGRATION_SINK_LOG_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-timer-source-rhel8@sha256:8ec51f809196384f9b83ef5789b12b6358772a761a7055129da572254381eeef + name: IMAGE_INTEGRATION_SOURCE_TIMER_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-transform-jsonata-rhel8@sha256:0b618c9c892428a59e0499a3ed0ebefa2c0981699817433159bfcaf683743597 + name: IMAGE_EVENT_TRANSFORM_JSONATA_IMAGE +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-istio-controller-rhel8@sha256:20ae2da1e8d82d319e256c6c81299ef842ca34d57c6964d61e00a275a41159b4 + name: IMAGE_eventing-istio-controller__eventing-istio-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-jobsink-rhel8@sha256:cfdbd68b78e947590e633b6680d7b85cfd394ea42287d3dfc81b7823a3ab66bd + name: IMAGE_job-sink__job-sink +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-migrate-rhel8@sha256:64fb4b0b18f4b8e9bd86470ca36f2f4187111ed44b6cce5d16d3a43443c00489 + name: IMAGE_storage-version-migration-eventing-__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-migrate-rhel8@sha256:64fb4b0b18f4b8e9bd86470ca36f2f4187111ed44b6cce5d16d3a43443c00489 + name: KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-mtchannel-broker-rhel8@sha256:edc19e311947053dbceb21d5225ad52a48f61eb3c079e0f92f97ba311bb121f7 + name: IMAGE_mt-broker-controller__mt-broker-controller +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-mtping-rhel8@sha256:4e633f68a3c36f1d99ef914a1a7296aeb6fe55d969fd48de916a272b5971c7e6 + name: IMAGE_pingsource-mt-adapter__dispatcher +- image: registry.redhat.io/openshift-serverless-1/kn-eventing-webhook-rhel8@sha256:ca8a6193425f4b2750d58d6b1da421244aa077a44a34b4184e35b9d94c9433fb + name: IMAGE_eventing-webhook__eventing-webhook +- image: registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel8@sha256:f7795088777ea84fc6180b81b6131962944e34918e2c06671033a1a572581773 + name: IMAGE_KN_PLUGIN_EVENT_SENDER +- image: registry.redhat.io/openshift-serverless-1/kn-plugin-func-func-util-rhel8@sha256:598110e9b91c398e6f7ea6215a69f9562337968a024ded8e0f19736c5fb53457 + name: IMAGE_KN_PLUGIN_FUNC_UTIL +- image: registry.redhat.io/openshift-serverless-1/kn-serving-activator-rhel8@sha256:042ce1e7be10a5f51f9487af0196cb249f5d8e6821ce7c2ab05c532b7a18438c + name: IMAGE_activator +- image: registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-hpa-rhel8@sha256:4fa0ce7ac1351aa4cbe858472bf9f953942961a5430f85be5656f29508d254db + name: IMAGE_autoscaler-hpa +- image: registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-rhel8@sha256:0b69fc839f5651bfffcbf86366f94da0ec3e29e6c217a26ffce7bd76fbda0939 + name: IMAGE_autoscaler +- image: registry.redhat.io/openshift-serverless-1/kn-serving-controller-rhel8@sha256:50a62bf641a124dba37262da1e82ef14e6b6ccb4c8573fa537c19d3b1b77a627 + name: IMAGE_controller__controller +- image: registry.redhat.io/openshift-serverless-1/kn-serving-queue-rhel8@sha256:3133c177fcbfd4abb89b273a7ce2fb220e051ce956193b1d149c7a040fc07e83 + name: IMAGE_queue-proxy +- image: registry.redhat.io/openshift-serverless-1/kn-serving-storage-version-migration-rhel8@sha256:fbe462695b3e703d4722277a617c6ef06fb37c07366ba5c6211dd56b5038c130 + name: IMAGE_storage-version-migration-serving-__migrate +- image: registry.redhat.io/openshift-serverless-1/kn-serving-webhook-rhel8@sha256:de45a60bc45e1b67c6f88eb1c885bda12cc136336dc5fb2e0b8cbf63aa62a6bf + name: IMAGE_webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/net-istio-controller-rhel8@sha256:7655ec95e5829d3d786039cc6c690c9fb442dc85f1c88481cf34f9a6f1684039 + name: IMAGE_net-istio-controller__controller +- image: registry.redhat.io/openshift-serverless-1/net-istio-webhook-rhel8@sha256:fa8ebb70b6f1510c55a03baec99d3497d6afb930152ff3731fe57211675aadc0 + name: IMAGE_net-istio-webhook__webhook +- image: registry.redhat.io/openshift-serverless-1/net-kourier-kourier-rhel8@sha256:90e322e3304222199efc9bfa2545250dde2b22403666c5e00372bdaeaa18ddee + name: IMAGE_net-kourier-controller__controller +- image: registry.redhat.io/openshift-serverless-1/serverless-ingress-rhel8@sha256:29613545bf1758b67977793963ab34fb2f6d1f3d4f5b4158ad4c92adfee20c5a + name: knative-openshift-ingress +- image: registry.redhat.io/openshift-serverless-1/serverless-kn-operator-rhel8@sha256:abf97790726da129fab4b62b9bc7b3c4f225c1fb68550359be44a011e60d54f3 + name: knative-openshift +- image: registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8@sha256:58f3e1806fecdb4d030646ccefd1a147bffef21eee1233487ccdab330e8d4e1d + name: IMAGE_MUST_GATHER +- image: registry.redhat.io/openshift-serverless-1/serverless-openshift-kn-rhel8-operator@sha256:f1a13725567de357de4246b87a2ed64b3dce02c7406b8621ad8d2bbeacc0ccfa + name: knative-operator +- image: registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:1c19cf86fd05940ef3d0d6e79e6f371db993153f70baedb9107bbe73f236dc24 + name: IMAGE_kourier-gateway +- image: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:67651adfd8e6c8d12d2b9585c723d5fbdb664818f803312bfe3522e04a81e9b0 + name: IMAGE_KUBE_RBAC_PROXY +- image: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74 + name: IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH +schema: olm.bundle diff --git a/olm-catalog/serverless-operator/manifests/serverless-operator.clusterserviceversion.yaml b/olm-catalog/serverless-operator/manifests/serverless-operator.clusterserviceversion.yaml index 2f04111d4a..30a53c880b 100644 --- a/olm-catalog/serverless-operator/manifests/serverless-operator.clusterserviceversion.yaml +++ b/olm-catalog/serverless-operator/manifests/serverless-operator.clusterserviceversion.yaml @@ -78,7 +78,7 @@ metadata: repository: https://github.com/openshift-knative/serverless-operator support: Red Hat olm.skipRange: '>=1.36.0 <1.36.1' - operators.openshift.io/must-gather-image: registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8@sha256:58f3e1806fecdb4d030646ccefd1a147bffef21eee1233487ccdab330e8d4e1d + operators.openshift.io/must-gather-image: registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8@sha256:0af93b84465b01e78bc86d1ba788bf0f0f989e120b6a1e6dca5aeecc1aef13bb labels: operatorframework.io/arch.amd64: supported operatorframework.io/arch.ppc64le: supported @@ -836,7 +836,7 @@ spec: serviceAccountName: knative-operator containers: - name: knative-operator - image: registry.redhat.io/openshift-serverless-1/serverless-openshift-kn-rhel8-operator@sha256:f1a13725567de357de4246b87a2ed64b3dce02c7406b8621ad8d2bbeacc0ccfa + image: registry.redhat.io/openshift-serverless-1/serverless-openshift-kn-rhel8-operator@sha256:6f526110e334de09a481da2d6c4c0f12c8120fc949e5477e37e29cca9aad1d04 readinessProbe: periodSeconds: 1 httpGet: @@ -889,19 +889,19 @@ spec: - name: KUBERNETES_MIN_VERSION value: "v1.0.0" - name: "IMAGE_queue-proxy" - value: "registry.redhat.io/openshift-serverless-1/kn-serving-queue-rhel8@sha256:3133c177fcbfd4abb89b273a7ce2fb220e051ce956193b1d149c7a040fc07e83" + value: "registry.redhat.io/openshift-serverless-1/kn-serving-queue-rhel8@sha256:fcabc635f8422fe91f4417bf10ca749dd73372ce759627ae96f43673da783d65" - name: "IMAGE_activator" - value: "registry.redhat.io/openshift-serverless-1/kn-serving-activator-rhel8@sha256:042ce1e7be10a5f51f9487af0196cb249f5d8e6821ce7c2ab05c532b7a18438c" + value: "registry.redhat.io/openshift-serverless-1/kn-serving-activator-rhel8@sha256:62411935628b5ad0123ae0765f97851dc3f2397a412ca31778e247cd82786918" - name: "IMAGE_autoscaler" - value: "registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-rhel8@sha256:0b69fc839f5651bfffcbf86366f94da0ec3e29e6c217a26ffce7bd76fbda0939" + value: "registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-rhel8@sha256:d869bbc2200b0077f8eb96b25bd4c555d4cad707610af92e0b1179922579e9f3" - name: "IMAGE_autoscaler-hpa" - value: "registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-hpa-rhel8@sha256:4fa0ce7ac1351aa4cbe858472bf9f953942961a5430f85be5656f29508d254db" + value: "registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-hpa-rhel8@sha256:cb8ed20d3ebaafc5f262ec5e7243d81d984d07961acab6ef77e22e1614309093" - name: "IMAGE_controller__controller" - value: "registry.redhat.io/openshift-serverless-1/kn-serving-controller-rhel8@sha256:50a62bf641a124dba37262da1e82ef14e6b6ccb4c8573fa537c19d3b1b77a627" + value: "registry.redhat.io/openshift-serverless-1/kn-serving-controller-rhel8@sha256:3912b0b738d806641d1c989dd50256db6b7ede8c491e5a17930c1402455ebc9b" - name: "IMAGE_webhook__webhook" - value: "registry.redhat.io/openshift-serverless-1/kn-serving-webhook-rhel8@sha256:de45a60bc45e1b67c6f88eb1c885bda12cc136336dc5fb2e0b8cbf63aa62a6bf" + value: "registry.redhat.io/openshift-serverless-1/kn-serving-webhook-rhel8@sha256:0353f32e1b3fdc88447ce1f5a8fff10d9765abe5f6bf11193c1628ab26b40f49" - name: "IMAGE_storage-version-migration-serving-__migrate" - value: "registry.redhat.io/openshift-serverless-1/kn-serving-storage-version-migration-rhel8@sha256:fbe462695b3e703d4722277a617c6ef06fb37c07366ba5c6211dd56b5038c130" + value: "registry.redhat.io/openshift-serverless-1/kn-serving-storage-version-migration-rhel8@sha256:e787ca9a57ea0a1cf9b9e668188dd70af8cbb4ccd2d35e84c07028847ade2e41" - name: "IMAGE_kourier-gateway" value: "registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:1c19cf86fd05940ef3d0d6e79e6f371db993153f70baedb9107bbe73f236dc24" - name: "IMAGE_net-kourier-controller__controller" @@ -937,31 +937,31 @@ spec: - name: "IMAGE_DISPATCHER_IMAGE" value: "registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8@sha256:53a6a5dfb39f83389b10389488f4d7aba6a5342f411ff7efa41bab30d89d9646" - name: "IMAGE_EVENT_TRANSFORM_JSONATA_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-transform-jsonata-rhel8@sha256:0b618c9c892428a59e0499a3ed0ebefa2c0981699817433159bfcaf683743597" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-transform-jsonata-rhel8@sha256:d903c28b4d0002a0ff92252d260b414ee8af482df2fba299ab4258384e2bbf89" - name: "IMAGE_INTEGRATION_SOURCE_TIMER_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-timer-source-rhel8@sha256:8ec51f809196384f9b83ef5789b12b6358772a761a7055129da572254381eeef" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-timer-source-rhel8@sha256:49b957589cc9c5302845956856bd4c899a6b4bbc1d40ae2751ebef793a30768a" - name: "IMAGE_INTEGRATION_SOURCE_AWS_S3_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-source-rhel8@sha256:ee38b68e98bf9adb94554fd4b3a3aec3b533cb407dd0e0afca7f37e10d6553d9" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-source-rhel8@sha256:5b7a4ff34e7b1a2f08ee1379ca979f355eb7b140670c1bd8bd2c89b7ed7710a4" - name: "IMAGE_INTEGRATION_SOURCE_AWS_SQS_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-source-rhel8@sha256:86e55986b9499e0a9ccbef59a2fb85de3663fe86897d25dba54101e9101b1b91" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-source-rhel8@sha256:900560cb0e16c7eebb63c30c0c649ca94241631f737d3d2cb523d86014d3bb9c" - name: "IMAGE_INTEGRATION_SOURCE_AWS_DDB_STREAMS_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-ddb-streams-source-rhel8@sha256:6ada46f655e13db6e8fded4db7ec308123cf8307c1ef171b7eb7eca264ee2c27" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-ddb-streams-source-rhel8@sha256:874ab2665b1fca6029a160b0610a84be323d1719c7f687a9f772ac3df5094ce3" - name: "IMAGE_INTEGRATION_SINK_LOG_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-log-sink-rhel8@sha256:e0f0b9f7d8ced97919844bb4c342ce89c5ff22c6cc764d62f680d0f3eba319b1" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-log-sink-rhel8@sha256:8d95cb5ab6c7f08000c8c4334e9530b82267041099189abfcd5ad241cedf3a6b" - name: "IMAGE_INTEGRATION_SINK_AWS_S3_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-sink-rhel8@sha256:94d58900cb62d64379f3b9b27cf7f69173d40b115b6d843b9e83839a0080a0a1" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-sink-rhel8@sha256:1043b71699412288dfe5113fe748db39e30f399f63b226df6fd6e05e43d99907" - name: "IMAGE_INTEGRATION_SINK_AWS_SQS_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-sink-rhel8@sha256:f97257f0af537ffed1ff6fd0bb0a8db58b5b6a44559d0136cc5f134e8ff34f2a" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-sink-rhel8@sha256:978bdebd8e07d8a4b6d22e3dc3796def5dec894ee5aa8e6a51fa3e89590c57c5" - name: "IMAGE_INTEGRATION_SINK_AWS_SNS_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sns-sink-rhel8@sha256:31ae667a47370e107384d1253c7fe0b708443f9f991210ded167591b4e69cef5" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sns-sink-rhel8@sha256:0f87ed6b83489b1127acd3b7f198e253583f52d5d41a430b247035d5fe6ff3ef" - name: "IMAGE_eventmesh-backend__controller" value: "registry.redhat.io/openshift-serverless-1/kn-backstage-plugins-eventmesh-rhel8@sha256:3bc34867f7a620bcdace67e65a0ffb51aead5e4aa1f10cd0eb7476fe8ed1af12" - name: "IMAGE_KUBE_RBAC_PROXY" value: "registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:67651adfd8e6c8d12d2b9585c723d5fbdb664818f803312bfe3522e04a81e9b0" - name: "IMAGE_KN_PLUGIN_EVENT_SENDER" - value: "registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel8@sha256:f7795088777ea84fc6180b81b6131962944e34918e2c06671033a1a572581773" + value: "registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel8@sha256:89752446cce6a89fc830e081bed6da50f8ad5ac2920fbe7a16c74a87fbf8f00e" - name: "IMAGE_KN_CLIENT" - value: "registry.redhat.io/openshift-serverless-1/kn-client-kn-rhel8@sha256:71aa09b98d91006be2a81ac033f72df7256a938902361308b8eb36ea198698c3" + value: "registry.redhat.io/openshift-serverless-1/kn-client-kn-rhel8@sha256:ba68e5ec14bb209712c8eef580918673c9317660f84675a0f317b16907c9e64a" - name: "IMAGE_KN_PLUGIN_FUNC_UTIL" value: "registry.redhat.io/openshift-serverless-1/kn-plugin-func-func-util-rhel8@sha256:598110e9b91c398e6f7ea6215a69f9562337968a024ded8e0f19736c5fb53457" - name: "IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH" @@ -1003,7 +1003,7 @@ spec: serviceAccountName: knative-openshift initContainers: - name: cli-artifacts - image: registry.redhat.io/openshift-serverless-1/kn-client-cli-artifacts-rhel8@sha256:b3763ff0d9bebf8ff5ff2570a9ffeaaf4af6e41e41f5af5f810539fee318ad7b + image: registry.redhat.io/openshift-serverless-1/kn-client-cli-artifacts-rhel8@sha256:8d9f92c2fb06539b8b0ef588aa59ef915697fb94b528feee471b1047a071f319 imagePullPolicy: Always command: ["sh", "-c", "rm -rf /cli-artifacts/* && cp /usr/share/kn/**/* /cli-artifacts && chmod 444 /cli-artifacts/*"] volumeMounts: @@ -1017,7 +1017,7 @@ spec: - ALL containers: - name: knative-openshift - image: registry.redhat.io/openshift-serverless-1/serverless-kn-operator-rhel8@sha256:abf97790726da129fab4b62b9bc7b3c4f225c1fb68550359be44a011e60d54f3 + image: registry.redhat.io/openshift-serverless-1/serverless-kn-operator-rhel8@sha256:5d839e43a4b6ef36834ae1e582068d60c247e2c50212ad4b2562f14ec5a320ed imagePullPolicy: Always readinessProbe: httpGet: @@ -1079,19 +1079,19 @@ spec: - name: KUBERNETES_MIN_VERSION value: "v1.0.0" - name: "IMAGE_queue-proxy" - value: "registry.redhat.io/openshift-serverless-1/kn-serving-queue-rhel8@sha256:3133c177fcbfd4abb89b273a7ce2fb220e051ce956193b1d149c7a040fc07e83" + value: "registry.redhat.io/openshift-serverless-1/kn-serving-queue-rhel8@sha256:fcabc635f8422fe91f4417bf10ca749dd73372ce759627ae96f43673da783d65" - name: "IMAGE_activator" - value: "registry.redhat.io/openshift-serverless-1/kn-serving-activator-rhel8@sha256:042ce1e7be10a5f51f9487af0196cb249f5d8e6821ce7c2ab05c532b7a18438c" + value: "registry.redhat.io/openshift-serverless-1/kn-serving-activator-rhel8@sha256:62411935628b5ad0123ae0765f97851dc3f2397a412ca31778e247cd82786918" - name: "IMAGE_autoscaler" - value: "registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-rhel8@sha256:0b69fc839f5651bfffcbf86366f94da0ec3e29e6c217a26ffce7bd76fbda0939" + value: "registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-rhel8@sha256:d869bbc2200b0077f8eb96b25bd4c555d4cad707610af92e0b1179922579e9f3" - name: "IMAGE_autoscaler-hpa" - value: "registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-hpa-rhel8@sha256:4fa0ce7ac1351aa4cbe858472bf9f953942961a5430f85be5656f29508d254db" + value: "registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-hpa-rhel8@sha256:cb8ed20d3ebaafc5f262ec5e7243d81d984d07961acab6ef77e22e1614309093" - name: "IMAGE_controller__controller" - value: "registry.redhat.io/openshift-serverless-1/kn-serving-controller-rhel8@sha256:50a62bf641a124dba37262da1e82ef14e6b6ccb4c8573fa537c19d3b1b77a627" + value: "registry.redhat.io/openshift-serverless-1/kn-serving-controller-rhel8@sha256:3912b0b738d806641d1c989dd50256db6b7ede8c491e5a17930c1402455ebc9b" - name: "IMAGE_webhook__webhook" - value: "registry.redhat.io/openshift-serverless-1/kn-serving-webhook-rhel8@sha256:de45a60bc45e1b67c6f88eb1c885bda12cc136336dc5fb2e0b8cbf63aa62a6bf" + value: "registry.redhat.io/openshift-serverless-1/kn-serving-webhook-rhel8@sha256:0353f32e1b3fdc88447ce1f5a8fff10d9765abe5f6bf11193c1628ab26b40f49" - name: "IMAGE_storage-version-migration-serving-__migrate" - value: "registry.redhat.io/openshift-serverless-1/kn-serving-storage-version-migration-rhel8@sha256:fbe462695b3e703d4722277a617c6ef06fb37c07366ba5c6211dd56b5038c130" + value: "registry.redhat.io/openshift-serverless-1/kn-serving-storage-version-migration-rhel8@sha256:e787ca9a57ea0a1cf9b9e668188dd70af8cbb4ccd2d35e84c07028847ade2e41" - name: "IMAGE_kourier-gateway" value: "registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:1c19cf86fd05940ef3d0d6e79e6f371db993153f70baedb9107bbe73f236dc24" - name: "IMAGE_net-kourier-controller__controller" @@ -1127,31 +1127,31 @@ spec: - name: "IMAGE_DISPATCHER_IMAGE" value: "registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8@sha256:53a6a5dfb39f83389b10389488f4d7aba6a5342f411ff7efa41bab30d89d9646" - name: "IMAGE_EVENT_TRANSFORM_JSONATA_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-transform-jsonata-rhel8@sha256:0b618c9c892428a59e0499a3ed0ebefa2c0981699817433159bfcaf683743597" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-transform-jsonata-rhel8@sha256:d903c28b4d0002a0ff92252d260b414ee8af482df2fba299ab4258384e2bbf89" - name: "IMAGE_INTEGRATION_SOURCE_TIMER_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-timer-source-rhel8@sha256:8ec51f809196384f9b83ef5789b12b6358772a761a7055129da572254381eeef" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-timer-source-rhel8@sha256:49b957589cc9c5302845956856bd4c899a6b4bbc1d40ae2751ebef793a30768a" - name: "IMAGE_INTEGRATION_SOURCE_AWS_S3_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-source-rhel8@sha256:ee38b68e98bf9adb94554fd4b3a3aec3b533cb407dd0e0afca7f37e10d6553d9" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-source-rhel8@sha256:5b7a4ff34e7b1a2f08ee1379ca979f355eb7b140670c1bd8bd2c89b7ed7710a4" - name: "IMAGE_INTEGRATION_SOURCE_AWS_SQS_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-source-rhel8@sha256:86e55986b9499e0a9ccbef59a2fb85de3663fe86897d25dba54101e9101b1b91" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-source-rhel8@sha256:900560cb0e16c7eebb63c30c0c649ca94241631f737d3d2cb523d86014d3bb9c" - name: "IMAGE_INTEGRATION_SOURCE_AWS_DDB_STREAMS_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-ddb-streams-source-rhel8@sha256:6ada46f655e13db6e8fded4db7ec308123cf8307c1ef171b7eb7eca264ee2c27" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-ddb-streams-source-rhel8@sha256:874ab2665b1fca6029a160b0610a84be323d1719c7f687a9f772ac3df5094ce3" - name: "IMAGE_INTEGRATION_SINK_LOG_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-log-sink-rhel8@sha256:e0f0b9f7d8ced97919844bb4c342ce89c5ff22c6cc764d62f680d0f3eba319b1" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-log-sink-rhel8@sha256:8d95cb5ab6c7f08000c8c4334e9530b82267041099189abfcd5ad241cedf3a6b" - name: "IMAGE_INTEGRATION_SINK_AWS_S3_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-sink-rhel8@sha256:94d58900cb62d64379f3b9b27cf7f69173d40b115b6d843b9e83839a0080a0a1" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-sink-rhel8@sha256:1043b71699412288dfe5113fe748db39e30f399f63b226df6fd6e05e43d99907" - name: "IMAGE_INTEGRATION_SINK_AWS_SQS_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-sink-rhel8@sha256:f97257f0af537ffed1ff6fd0bb0a8db58b5b6a44559d0136cc5f134e8ff34f2a" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-sink-rhel8@sha256:978bdebd8e07d8a4b6d22e3dc3796def5dec894ee5aa8e6a51fa3e89590c57c5" - name: "IMAGE_INTEGRATION_SINK_AWS_SNS_IMAGE" - value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sns-sink-rhel8@sha256:31ae667a47370e107384d1253c7fe0b708443f9f991210ded167591b4e69cef5" + value: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sns-sink-rhel8@sha256:0f87ed6b83489b1127acd3b7f198e253583f52d5d41a430b247035d5fe6ff3ef" - name: "IMAGE_eventmesh-backend__controller" value: "registry.redhat.io/openshift-serverless-1/kn-backstage-plugins-eventmesh-rhel8@sha256:3bc34867f7a620bcdace67e65a0ffb51aead5e4aa1f10cd0eb7476fe8ed1af12" - name: "IMAGE_KUBE_RBAC_PROXY" value: "registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:67651adfd8e6c8d12d2b9585c723d5fbdb664818f803312bfe3522e04a81e9b0" - name: "IMAGE_KN_PLUGIN_EVENT_SENDER" - value: "registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel8@sha256:f7795088777ea84fc6180b81b6131962944e34918e2c06671033a1a572581773" + value: "registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel8@sha256:89752446cce6a89fc830e081bed6da50f8ad5ac2920fbe7a16c74a87fbf8f00e" - name: "IMAGE_KN_CLIENT" - value: "registry.redhat.io/openshift-serverless-1/kn-client-kn-rhel8@sha256:71aa09b98d91006be2a81ac033f72df7256a938902361308b8eb36ea198698c3" + value: "registry.redhat.io/openshift-serverless-1/kn-client-kn-rhel8@sha256:ba68e5ec14bb209712c8eef580918673c9317660f84675a0f317b16907c9e64a" - name: "IMAGE_KN_PLUGIN_FUNC_UTIL" value: "registry.redhat.io/openshift-serverless-1/kn-plugin-func-func-util-rhel8@sha256:598110e9b91c398e6f7ea6215a69f9562337968a024ded8e0f19736c5fb53457" - name: "IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH" @@ -1215,7 +1215,7 @@ spec: serviceAccountName: knative-openshift-ingress containers: - name: knative-openshift-ingress - image: registry.redhat.io/openshift-serverless-1/serverless-ingress-rhel8@sha256:29613545bf1758b67977793963ab34fb2f6d1f3d4f5b4158ad4c92adfee20c5a + image: registry.redhat.io/openshift-serverless-1/serverless-ingress-rhel8@sha256:437d3cb160bf056feabadeff2699288ccf0c01147d24ae512a9b45d96cc73db8 imagePullPolicy: Always ports: - containerPort: 9090 @@ -1366,25 +1366,25 @@ spec: - knativeeventings.operator.knative.dev relatedImages: - name: "knative-operator" - image: "registry.redhat.io/openshift-serverless-1/serverless-openshift-kn-rhel8-operator@sha256:f1a13725567de357de4246b87a2ed64b3dce02c7406b8621ad8d2bbeacc0ccfa" + image: "registry.redhat.io/openshift-serverless-1/serverless-openshift-kn-rhel8-operator@sha256:6f526110e334de09a481da2d6c4c0f12c8120fc949e5477e37e29cca9aad1d04" - name: "knative-openshift" - image: "registry.redhat.io/openshift-serverless-1/serverless-kn-operator-rhel8@sha256:abf97790726da129fab4b62b9bc7b3c4f225c1fb68550359be44a011e60d54f3" + image: "registry.redhat.io/openshift-serverless-1/serverless-kn-operator-rhel8@sha256:5d839e43a4b6ef36834ae1e582068d60c247e2c50212ad4b2562f14ec5a320ed" - name: "knative-openshift-ingress" - image: "registry.redhat.io/openshift-serverless-1/serverless-ingress-rhel8@sha256:29613545bf1758b67977793963ab34fb2f6d1f3d4f5b4158ad4c92adfee20c5a" + image: "registry.redhat.io/openshift-serverless-1/serverless-ingress-rhel8@sha256:437d3cb160bf056feabadeff2699288ccf0c01147d24ae512a9b45d96cc73db8" - name: "IMAGE_queue-proxy" - image: "registry.redhat.io/openshift-serverless-1/kn-serving-queue-rhel8@sha256:3133c177fcbfd4abb89b273a7ce2fb220e051ce956193b1d149c7a040fc07e83" + image: "registry.redhat.io/openshift-serverless-1/kn-serving-queue-rhel8@sha256:fcabc635f8422fe91f4417bf10ca749dd73372ce759627ae96f43673da783d65" - name: "IMAGE_activator" - image: "registry.redhat.io/openshift-serverless-1/kn-serving-activator-rhel8@sha256:042ce1e7be10a5f51f9487af0196cb249f5d8e6821ce7c2ab05c532b7a18438c" + image: "registry.redhat.io/openshift-serverless-1/kn-serving-activator-rhel8@sha256:62411935628b5ad0123ae0765f97851dc3f2397a412ca31778e247cd82786918" - name: "IMAGE_autoscaler" - image: "registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-rhel8@sha256:0b69fc839f5651bfffcbf86366f94da0ec3e29e6c217a26ffce7bd76fbda0939" + image: "registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-rhel8@sha256:d869bbc2200b0077f8eb96b25bd4c555d4cad707610af92e0b1179922579e9f3" - name: "IMAGE_autoscaler-hpa" - image: "registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-hpa-rhel8@sha256:4fa0ce7ac1351aa4cbe858472bf9f953942961a5430f85be5656f29508d254db" + image: "registry.redhat.io/openshift-serverless-1/kn-serving-autoscaler-hpa-rhel8@sha256:cb8ed20d3ebaafc5f262ec5e7243d81d984d07961acab6ef77e22e1614309093" - name: "IMAGE_controller__controller" - image: "registry.redhat.io/openshift-serverless-1/kn-serving-controller-rhel8@sha256:50a62bf641a124dba37262da1e82ef14e6b6ccb4c8573fa537c19d3b1b77a627" + image: "registry.redhat.io/openshift-serverless-1/kn-serving-controller-rhel8@sha256:3912b0b738d806641d1c989dd50256db6b7ede8c491e5a17930c1402455ebc9b" - name: "IMAGE_webhook__webhook" - image: "registry.redhat.io/openshift-serverless-1/kn-serving-webhook-rhel8@sha256:de45a60bc45e1b67c6f88eb1c885bda12cc136336dc5fb2e0b8cbf63aa62a6bf" + image: "registry.redhat.io/openshift-serverless-1/kn-serving-webhook-rhel8@sha256:0353f32e1b3fdc88447ce1f5a8fff10d9765abe5f6bf11193c1628ab26b40f49" - name: "IMAGE_storage-version-migration-serving-__migrate" - image: "registry.redhat.io/openshift-serverless-1/kn-serving-storage-version-migration-rhel8@sha256:fbe462695b3e703d4722277a617c6ef06fb37c07366ba5c6211dd56b5038c130" + image: "registry.redhat.io/openshift-serverless-1/kn-serving-storage-version-migration-rhel8@sha256:e787ca9a57ea0a1cf9b9e668188dd70af8cbb4ccd2d35e84c07028847ade2e41" - name: "IMAGE_kourier-gateway" image: "registry.redhat.io/openshift-service-mesh/proxyv2-rhel8@sha256:1c19cf86fd05940ef3d0d6e79e6f371db993153f70baedb9107bbe73f236dc24" - name: "IMAGE_net-kourier-controller__controller" @@ -1420,31 +1420,31 @@ spec: - name: "IMAGE_DISPATCHER_IMAGE" image: "registry.redhat.io/openshift-serverless-1/kn-eventing-channel-dispatcher-rhel8@sha256:53a6a5dfb39f83389b10389488f4d7aba6a5342f411ff7efa41bab30d89d9646" - name: "IMAGE_EVENT_TRANSFORM_JSONATA_IMAGE" - image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-transform-jsonata-rhel8@sha256:0b618c9c892428a59e0499a3ed0ebefa2c0981699817433159bfcaf683743597" + image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-transform-jsonata-rhel8@sha256:d903c28b4d0002a0ff92252d260b414ee8af482df2fba299ab4258384e2bbf89" - name: "IMAGE_INTEGRATION_SOURCE_TIMER_IMAGE" - image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-timer-source-rhel8@sha256:8ec51f809196384f9b83ef5789b12b6358772a761a7055129da572254381eeef" + image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-timer-source-rhel8@sha256:49b957589cc9c5302845956856bd4c899a6b4bbc1d40ae2751ebef793a30768a" - name: "IMAGE_INTEGRATION_SOURCE_AWS_S3_IMAGE" - image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-source-rhel8@sha256:ee38b68e98bf9adb94554fd4b3a3aec3b533cb407dd0e0afca7f37e10d6553d9" + image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-source-rhel8@sha256:5b7a4ff34e7b1a2f08ee1379ca979f355eb7b140670c1bd8bd2c89b7ed7710a4" - name: "IMAGE_INTEGRATION_SOURCE_AWS_SQS_IMAGE" - image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-source-rhel8@sha256:86e55986b9499e0a9ccbef59a2fb85de3663fe86897d25dba54101e9101b1b91" + image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-source-rhel8@sha256:900560cb0e16c7eebb63c30c0c649ca94241631f737d3d2cb523d86014d3bb9c" - name: "IMAGE_INTEGRATION_SOURCE_AWS_DDB_STREAMS_IMAGE" - image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-ddb-streams-source-rhel8@sha256:6ada46f655e13db6e8fded4db7ec308123cf8307c1ef171b7eb7eca264ee2c27" + image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-ddb-streams-source-rhel8@sha256:874ab2665b1fca6029a160b0610a84be323d1719c7f687a9f772ac3df5094ce3" - name: "IMAGE_INTEGRATION_SINK_LOG_IMAGE" - image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-log-sink-rhel8@sha256:e0f0b9f7d8ced97919844bb4c342ce89c5ff22c6cc764d62f680d0f3eba319b1" + image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-log-sink-rhel8@sha256:8d95cb5ab6c7f08000c8c4334e9530b82267041099189abfcd5ad241cedf3a6b" - name: "IMAGE_INTEGRATION_SINK_AWS_S3_IMAGE" - image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-sink-rhel8@sha256:94d58900cb62d64379f3b9b27cf7f69173d40b115b6d843b9e83839a0080a0a1" + image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-s3-sink-rhel8@sha256:1043b71699412288dfe5113fe748db39e30f399f63b226df6fd6e05e43d99907" - name: "IMAGE_INTEGRATION_SINK_AWS_SQS_IMAGE" - image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-sink-rhel8@sha256:f97257f0af537ffed1ff6fd0bb0a8db58b5b6a44559d0136cc5f134e8ff34f2a" + image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sqs-sink-rhel8@sha256:978bdebd8e07d8a4b6d22e3dc3796def5dec894ee5aa8e6a51fa3e89590c57c5" - name: "IMAGE_INTEGRATION_SINK_AWS_SNS_IMAGE" - image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sns-sink-rhel8@sha256:31ae667a47370e107384d1253c7fe0b708443f9f991210ded167591b4e69cef5" + image: "registry.redhat.io/openshift-serverless-1/kn-eventing-integrations-aws-sns-sink-rhel8@sha256:0f87ed6b83489b1127acd3b7f198e253583f52d5d41a430b247035d5fe6ff3ef" - name: "IMAGE_eventmesh-backend__controller" image: "registry.redhat.io/openshift-serverless-1/kn-backstage-plugins-eventmesh-rhel8@sha256:3bc34867f7a620bcdace67e65a0ffb51aead5e4aa1f10cd0eb7476fe8ed1af12" - name: "IMAGE_KUBE_RBAC_PROXY" image: "registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:67651adfd8e6c8d12d2b9585c723d5fbdb664818f803312bfe3522e04a81e9b0" - name: "IMAGE_KN_PLUGIN_EVENT_SENDER" - image: "registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel8@sha256:f7795088777ea84fc6180b81b6131962944e34918e2c06671033a1a572581773" + image: "registry.redhat.io/openshift-serverless-1/kn-plugin-event-sender-rhel8@sha256:89752446cce6a89fc830e081bed6da50f8ad5ac2920fbe7a16c74a87fbf8f00e" - name: "IMAGE_KN_CLIENT" - image: "registry.redhat.io/openshift-serverless-1/kn-client-kn-rhel8@sha256:71aa09b98d91006be2a81ac033f72df7256a938902361308b8eb36ea198698c3" + image: "registry.redhat.io/openshift-serverless-1/kn-client-kn-rhel8@sha256:ba68e5ec14bb209712c8eef580918673c9317660f84675a0f317b16907c9e64a" - name: "IMAGE_KN_PLUGIN_FUNC_UTIL" image: "registry.redhat.io/openshift-serverless-1/kn-plugin-func-func-util-rhel8@sha256:598110e9b91c398e6f7ea6215a69f9562337968a024ded8e0f19736c5fb53457" - name: "IMAGE_KN_PLUGIN_FUNC_TEKTON_BUILDAH" @@ -1476,8 +1476,8 @@ spec: - name: "KAFKA_IMAGE_knative-kafka-storage-version-migrator__migrate" image: "registry.redhat.io/openshift-serverless-1/kn-eventing-migrate-rhel8@sha256:64fb4b0b18f4b8e9bd86470ca36f2f4187111ed44b6cce5d16d3a43443c00489" - name: "IMAGE_MUST_GATHER" - image: "registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8@sha256:58f3e1806fecdb4d030646ccefd1a147bffef21eee1233487ccdab330e8d4e1d" + image: "registry.redhat.io/openshift-serverless-1/serverless-must-gather-rhel8@sha256:0af93b84465b01e78bc86d1ba788bf0f0f989e120b6a1e6dca5aeecc1aef13bb" - name: "IMAGE_KN_CLIENT_CLI_ARTIFACTS" - image: "registry.redhat.io/openshift-serverless-1/kn-client-cli-artifacts-rhel8@sha256:b3763ff0d9bebf8ff5ff2570a9ffeaaf4af6e41e41f5af5f810539fee318ad7b" + image: "registry.redhat.io/openshift-serverless-1/kn-client-cli-artifacts-rhel8@sha256:8d9f92c2fb06539b8b0ef588aa59ef915697fb94b528feee471b1047a071f319" replaces: serverless-operator.v1.36.0 version: 1.36.1 diff --git a/olm-catalog/serverless-operator/project.yaml b/olm-catalog/serverless-operator/project.yaml index bbbb080ae5..c2c7dd9e67 100644 --- a/olm-catalog/serverless-operator/project.yaml +++ b/olm-catalog/serverless-operator/project.yaml @@ -67,7 +67,7 @@ dependencies: # backstage-plugins midstream branch or commit backstage_plugins_artifacts_branch: release-v1.16 cli: knative-v1.16 - kube_rbac_proxy: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:67651adfd8e6c8d12d2b9585c723d5fbdb664818f803312bfe3522e04a81e9b0 + kube_rbac_proxy: registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:ed89e221d7a0a1dd82f2fa75e9e70bff3dddcb8979594396590bd3a15673a152 func: promotion_tag: knative-v1.16 tekton_buildah: registry.redhat.io/rhel8/buildah@sha256:3d505d9c0f5d4cd5a4ec03b8d038656c6cdbdf5191e00ce6388f7e0e4d2f1b74