Skip to content

NE-2747: Add external-dns-operator v1.3.6 bundle to all FBC catalogs#501

Merged
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
alebedev87:1-3-6-stage
Jun 17, 2026
Merged

NE-2747: Add external-dns-operator v1.3.6 bundle to all FBC catalogs#501
openshift-merge-bot[bot] merged 1 commit into
openshift:mainfrom
alebedev87:1-3-6-stage

Conversation

@alebedev87

@alebedev87 alebedev87 commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add external-dns-operator.v1.3.6 bundle entry to all FBC catalog-template.yaml files (v4.12-v4.22) using registry.redhat.io
  • Add v1.3.6 to stable-v1 and stable-v1.3 channel entries (replaces v1.3.5)
  • Regenerate all catalog.yaml files with make generate-catalog OCP_VERSION=4.X

@coderabbitai

coderabbitai Bot commented Jun 16, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This PR rolls out external-dns-operator.v1.3.6 through OLM catalog versions v4.12 to v4.22. For each version, the template is updated to add the new bundle to stable-v1 and stable-v1.3 with replaces: external-dns-operator.v1.3.5 and skipRange: <1.3.6, plus a new bundle image reference. The generated catalogs are updated to match those channel entries, refresh related bundle image references where needed, and replace or append the full olm.bundle metadata for version v1.3.6 with updated CSV properties and related image digests.

Possibly related PRs

Suggested reviewers

  • davidesalerno
  • gcs278
🚥 Pre-merge checks | ✅ 5 | ❌ 10

❌ Failed checks (10 inconclusive)

Check name Status Explanation Resolution
Stable And Deterministic Test Names ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Test Structure And Quality ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Microshift Test Compatibility ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Single Node Openshift (Sno) Test Compatibility ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Topology-Aware Scheduling Compatibility ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Ote Binary Stdout Contract ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Ipv6 And Disconnected Network Test Compatibility ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
No-Weak-Crypto ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
Container-Privileges ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
No-Sensitive-Data-In-Logs ❓ Inconclusive Repository clone failed, so this custom check could not run with code access. Retry the review run. If this persists, inspect pre-merge custom-check logs for infrastructure or agent runtime failures.
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed The description is directly related to the changeset, providing a structured summary of what was added and the process followed (template updates, channel entries, and catalog regeneration).
Title check ✅ Passed The title clearly and specifically describes the primary change: adding external-dns-operator v1.3.6 bundle to FBC catalogs across OpenShift versions.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 9

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@catalog/v4.12/catalog.yaml`:
- Line 1098: The ClusterRoleBinding at line 1098 currently grants the
external-dns ClusterRole to groups (system:serviceaccounts:external-dns and
system:serviceaccounts:external-dns-operator) that include all service accounts
in those namespaces, violating the least privilege principle. Replace these
group-based subjects with specific ServiceAccount subjects pointing to the
individual service accounts that actually need the external-dns cluster
permissions. Change each group subject to a ServiceAccount subject with the
appropriate kind ("ServiceAccount"), name (the actual service account name), and
namespace values.
- Line 1080: The base64-encoded CSV data at line 1080 contains deployment
manifests that lack required pod runtime controls. Instead of directly patching
the encoded payload, locate the source CSV or deployment manifests in the
operator's repository (particularly the deployment specs for the
external-dns-operator and kube-rbac-proxy containers), then add resource limits
(cpu, memory) to every container, define liveness probes alongside the existing
readiness probes, and add readOnlyRootFilesystem: true to the securityContext of
each container. After making these changes to the source manifests, regenerate
and rebuild the catalog bundle to update this encoded data rather than modifying
it directly.

In `@catalog/v4.13/catalog.yaml`:
- Around line 1076-1110: Locate the source ClusterServiceVersion manifest file
(not the base64-encoded version in catalog.yaml) and apply the following
security hardening fixes: For the external-dns-operator container in the
deployment spec, add `readOnlyRootFilesystem: true` to the securityContext, add
resource limits (matching the pattern shown for kube-rbac-proxy with cpu and
memory requests), and add a livenessProbe (referencing the existing health-check
port and /livez or similar path). For the kube-rbac-proxy container, add
`readOnlyRootFilesystem: true` to its securityContext, add resource limits, and
add both readinessProbe and livenessProbe (using the https port and /livez type
paths). Additionally, create a new NetworkPolicy manifest in the bundle
directory following Kubernetes security best practices to restrict traffic to
the operator namespace and related services. After making these changes to the
source manifests, regenerate the catalog using your build tooling to produce the
updated base64-encoded bundle, rather than manually editing the encoded payload.

In `@catalog/v4.14/catalog.yaml`:
- Around line 1078-1080: The operator deployment specification is missing
critical security and reliability configurations. Locate the source
ClusterServiceVersion (CSV) manifest that defines the deployment for
external-dns-operator (not the generated catalog.yaml), and update both the
external-dns-operator and kube-rbac-proxy container specifications to add
resource.limits (matching or exceeding the requests of 100m cpu/30Mi memory for
the operator and 100m cpu/20Mi memory for the proxy), add livenessProbe to both
containers with appropriate endpoint paths and timing parameters, ensure
readinessProbe is present on both containers, and add
securityContext.readOnlyRootFilesystem: true to all containers. After making
these changes to the source CSV manifest, regenerate the catalog bundle/OLM data
to reflect the updated deployment specification.

In `@catalog/v4.15/catalog.yaml`:
- Line 1077: The ClusterRole RBAC objects at lines 1092-1095 are granting
permissions to the wrong API group and resource names compared to the CRD
defined at line 1077. The CRD serves
`externaldnses.externaldns.olm.openshift.io`, but the RBAC viewer and editor
roles are granting access to `externaldns` resource with incorrect API groups
(including references to `operator.openshift.io`). Regenerate the encoded RBAC
ClusterRoles to properly reference the correct API group
`externaldns.olm.openshift.io` and the correct resource name `externaldnses` so
that role bindings will authorize access to the actual ExternalDNS resources
defined by the CRD.
- Line 1080: The base64-encoded cluster service version manifest in the catalog
file is missing required pod hardening configuration. Decode the base64 data in
the `alm-examples` annotation to locate the Deployment specification for the
external-dns-operator and kube-rbac-proxy containers. Add the missing pod
hardening fields: include `readOnlyRootFilesystem: true` in the securityContext
for both containers, add `resources.limits` for CPU and memory on every
container (not just requests), add liveness probes to the external-dns-operator
container, and add a readiness probe to the kube-rbac-proxy container. After
making these updates to the source manifests, re-encode the updated manifest
back to base64 and replace the existing base64-encoded data in the catalog YAML
file.

In `@catalog/v4.16/catalog.yaml`:
- Line 1080: The catalog entry contains a base64-encoded CSV with an embedded
deployment that is missing required liveness and readiness probes. Locate the
source operator bundle/CSV file (not this generated catalog file) and add a
liveness probe to the external-dns-operator container (which currently has only
a readiness probe) and add both liveness and readiness probes to the
kube-rbac-proxy sidecar container (which currently has no probes). After making
these changes to the source bundle/CSV manifest, regenerate the catalog YAML
file to update the base64-encoded data field at this location with the new probe
definitions.
- Line 1080: The CSV data in the catalog file contains deployment specifications
for two containers (external-dns-operator and kube-rbac-proxy) that currently
have only resources.requests defined but lack resources.limits. Decode the
base64-encoded data field at line 1080, locate the spec.install.spec.deployments
array, and add calibrated resources.limits (CPU and memory) to both container
specifications alongside their existing resources.requests. Set appropriate
limits such as 500m CPU and 150Mi memory for external-dns-operator, and 200m CPU
and 100Mi memory for kube-rbac-proxy. After adding the limits, re-encode the
modified manifest back to base64 and update the data field with the new encoded
value to ensure Kubernetes resource governance is properly enforced.
- Line 1080: The base64-encoded data field at line 1080 contains an embedded
ClusterServiceVersion manifest with a deployment specification. The deployment
has two containers named "external-dns-operator" and "kube-rbac-proxy", each
with a securityContext that omits readOnlyRootFilesystem. Update the source CSV
file in the bundle to add readOnlyRootFilesystem: true to both container
security contexts (alongside the existing allowPrivilegeEscalation: false,
runAsNonRoot: true, and capabilities settings), then regenerate the catalog from
that updated source so the encoded manifest in this field reflects the hardened
configuration.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 928915ec-e463-4d1e-95ff-1fc9701d8c6d

📥 Commits

Reviewing files that changed from the base of the PR and between 08ec426 and 4a32dd8.

📒 Files selected for processing (22)
  • catalog/v4.12/catalog-template.yaml
  • catalog/v4.12/catalog.yaml
  • catalog/v4.13/catalog-template.yaml
  • catalog/v4.13/catalog.yaml
  • catalog/v4.14/catalog-template.yaml
  • catalog/v4.14/catalog.yaml
  • catalog/v4.15/catalog-template.yaml
  • catalog/v4.15/catalog.yaml
  • catalog/v4.16/catalog-template.yaml
  • catalog/v4.16/catalog.yaml
  • catalog/v4.17/catalog-template.yaml
  • catalog/v4.17/catalog.yaml
  • catalog/v4.18/catalog-template.yaml
  • catalog/v4.18/catalog.yaml
  • catalog/v4.19/catalog-template.yaml
  • catalog/v4.19/catalog.yaml
  • catalog/v4.20/catalog-template.yaml
  • catalog/v4.20/catalog.yaml
  • catalog/v4.21/catalog-template.yaml
  • catalog/v4.21/catalog.yaml
  • catalog/v4.22/catalog-template.yaml
  • catalog/v4.22/catalog.yaml

data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjE4LjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsIm5hbWUiOiJleHRlcm5hbGRuc2VzLmV4dGVybmFsZG5zLm9sbS5vcGVuc2hpZnQuaW8ifSwic3BlYyI6eyJncm91cCI6ImV4dGVybmFsZG5zLm9sbS5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiRXh0ZXJuYWxETlMiLCJsaXN0S2luZCI6IkV4dGVybmFsRE5TTGlzdCIsInBsdXJhbCI6ImV4dGVybmFsZG5zZXMiLCJzaW5ndWxhciI6ImV4dGVybmFsZG5zIn0sInNjb3BlIjoiQ2x1c3RlciIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFhbHBoYTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiRXh0ZXJuYWxETlMgZGVzY3JpYmVzIGEgbWFuYWdlZCBFeHRlcm5hbEROUyBjb250cm9sbGVyIGluc3RhbmNlIGZvciBhIGNsdXN0ZXIuXG5UaGUgY29udHJvbGxlciBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgZXh0ZXJuYWwgRE5TIHJlY29yZHMgaW4gc3VwcG9ydGVkXG5ETlMgcHJvdmlkZXJzIGJhc2VkIG9mZiBvZiBpbnN0YW5jZXMgb2Ygc2VsZWN0IEt1YmVybmV0ZXMgcmVzb3VyY2VzLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC5cblNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZFxubWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLlxuTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLlxuU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uXG5DYW5ub3QgYmUgdXBkYXRlZC5cbkluIENhbWVsQ2FzZS5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6InNwZWMgaXMgdGhlIHNwZWNpZmljYXRpb24gb2YgdGhlIGRlc2lyZWQgYmVoYXZpb3Igb2YgdGhlIEV4dGVybmFsRE5TLiIsInByb3BlcnRpZXMiOnsiZG9tYWlucyI6eyJkZXNjcmlwdGlvbiI6IkRvbWFpbnMgc3BlY2lmaWVzIHdoaWNoIGRvbWFpbnMgdGhhdCBFeHRlcm5hbEROUyBzaG91bGRcbmNyZWF0ZSBETlMgcmVjb3JkcyBmb3IuIE11bHRpcGxlIGRvbWFpbiB2YWx1ZXNcbmNhbiBiZSBzcGVjaWZpZWQgc3VjaCB0aGF0IHN1YmRvbWFpbnMgb2YgYW4gaW5jbHVkZWQgZG9tYWluXG5jYW4gZWZmZWN0aXZlbHkgYmUgaWdub3JlZCB1c2luZyB0aGUgXCJJbmNsdWRlXCIgYW5kIFwiRXhjbHVkZVwiXG5kb21haW4gZmlsdGVyIG9wdGlvbnMuXG5cbkFuIGVtcHR5IGxpc3Qgb2YgZG9tYWlucyBtZWFucyBFeHRlcm5hbEROUyB3aWxsIGNyZWF0ZVxuRE5TIHJlY29yZHMgZm9yIGFueSBpbmNsdWRlZCBzb3VyY2UgcmVzb3VyY2UgcmVnYXJkbGVzc1xub2YgdGhlIHJlc291cmNlJ3MgZGVzaXJlZCBob3N0bmFtZS5cblxuUG9wdWxhdGluZyBEb21haW5zIHdpdGggb25seSBleGNsdWRlZCBvcHRpb25zIG1lYW5zIEV4dGVybmFsRE5TXG53aWxsIGNyZWF0ZSBETlMgcmVjb3JkcyBmb3IgYW55IGluY2x1ZGVkIHNvdXJjZSByZXNvdXJjZSB0aGF0IGRvIG5vdFxubWF0Y2ggdGhlIHByb3ZpZGVkIGV4Y2x1ZGVkIGRvbWFpbiBvcHRpb25zLlxuXG5FeGNsdWRpbmcgRE5TIHJlY29yZHMgdGhhdCB3ZXJlIHByZXZpb3VzIGluY2x1ZGVkIHZpYSBhIHJlc291cmNlIHVwZGF0ZVxud2lsbCAqbm90KiByZXN1bHQgaW4gdGhlIG9yaWdpbmFsIEROUyByZWNvcmRzIGJlaW5nIGRlbGV0ZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFeHRlcm5hbEROU0RvbWFpbiBkZXNjcmliZXMgaG93IHNldHMgb2YgaW5jbHVkZWRcbm9yIGV4Y2x1ZGVkIGRvbWFpbnMgYXJlIHRvIGJlIGNvbnN0cnVjdGVkLiIsInByb3BlcnRpZXMiOnsiZmlsdGVyVHlwZSI6eyJkZXNjcmlwdGlvbiI6IkZpbHRlclR5cGUgbWFya3MgdGhlIE5hbWUgb3IgUGF0dGVybiBmaWVsZFxuYXMgYW4gaW5jbHVkZWQgb3IgZXhjbHVkZWQgc2V0IG9mIGRvbWFpbnMuXG5cbkluIHRoZSBldmVudCBvZiBjb250cmFkaWN0aW5nIGRvbWFpbiBvcHRpb25zLFxucHJlZmVyZW5jZSBpcyBnaXZlbiB0byBleGNsdWRlZCBkb21haW5zLlxuXG5UaGlzIGZpZWxkIGFjY2VwdHMgdGhlIGZvbGxvd2luZyB2YWx1ZXM6XG5cbiBcIkluY2x1ZGVcIjogSW5jbHVkZSB0aGUgZG9tYWluIHNldCBzcGVjaWZpZWRcbiBieSBuYW1lIG9yIHBhdHRlcm4uXG5cbiBcIkV4Y2x1ZGVcIjogRXhjbHVkZSB0aGUgZG9tYWluIHNldCBzcGVjaWZpZWRcbiBieSBuYW1lIG9yIHBhdHRlcm4uIiwiZW51bSI6WyJJbmNsdWRlIiwiRXhjbHVkZSJdLCJ0eXBlIjoic3RyaW5nIn0sIm1hdGNoVHlwZSI6eyJkZXNjcmlwdGlvbiI6Ik1hdGNoVHlwZSBzcGVjaWZpZXMgdGhlIHR5cGUgb2YgbWF0Y2ggdG8gYmUgcGVyZm9ybWVkXG5ieSBFeHRlcm5hbEROUyB3aGVuIGRldGVybWluaW5nIHdoZXRoZXIgb3Igbm90IHRvIHB1Ymxpc2ggRE5TXG5yZWNvcmRzIGZvciBhIGdpdmVuIHNvdXJjZSByZXNvdXJjZSBiYXNlZCBvbiB0aGUgcmVzb3VyY2Unc1xucmVxdWVzdGVkIGhvc3RuYW1lLlxuXG5UaGlzIGZpZWxkIGFjY2VwdHMgdGhlIGZvbGxvd2luZyB2YWx1ZXM6XG5cbiBcIkV4YWN0XCI6IEV4cGxpY2l0bHkgbWF0Y2ggdGhlIGZ1bGwgZG9tYWluIHN0cmluZ1xuICBzcGVjaWZpZWQgdmlhIHRoZSBOYW1lIGZpZWxkLCBpbmNsdWRpbmcgYW55IHN1YmRvbWFpbnNcbiAgb2YgTmFtZS5cblxuIFwiUGF0dGVyblwiOiBNYXRjaCBwb3RlbnRpYWwgZG9tYWlucyBhZ2FpbnN0XG4gdGhlIHByb3ZpZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIHN0cmluZy4iLCJlbnVtIjpbIkV4YWN0IiwiUGF0dGVybiJdLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIGEgc3RyaW5nIHJlcHJlc2VudGluZyBhIHNpbmdsZSBkb21haW5cbnZhbHVlLiBTdWJkb21haW5zIGFyZSBpbmNsdWRlZC5cblxuZS5nLiBteS1hcHAubXktY2x1c3Rlci1kb21haW4uY29tXG53b3VsZCBhbHNvIGluY2x1ZGVcbmZvby5teS1hcHAubXktY2x1c3Rlci1kb21haW4uY29tIiwidHlwZSI6InN0cmluZyJ9LCJwYXR0ZXJuIjp7ImRlc2NyaXB0aW9uIjoiUGF0dGVybiBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB1c2VkIHRvXG5tYXRjaCBhIHNldCBvZiBkb21haW5zLiBBbnkgcHJvdmlkZWRcbnJlZ3VsYXIgZXhwcmVzc2lvbnMgc2hvdWxkIGZvbGxvdyB0aGUgc3ludGF4XG51c2VkIGJ5IHRoZSBnbyByZWdleHAgcGFja2FnZSAoUkUyKS5cblNlZSBodHRwczovL2dvbGFuZy5vcmcvcGtnL3JlZ2V4cC8gZm9yIG1vcmUgaW5mb3JtYXRpb24uIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiZmlsdGVyVHlwZSIsIm1hdGNoVHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJwcm92aWRlciI6eyJkZXNjcmlwdGlvbiI6IlByb3ZpZGVyIHJlZmVycyB0byB0aGUgRE5TIHByb3ZpZGVyIHRoYXQgRXh0ZXJuYWxETlNcbnNob3VsZCBwdWJsaXNoIHJlY29yZHMgdG8uIE5vdGUgdGhhdCBlYWNoIEV4dGVybmFsRE5TXG5pcyB0aWVkIHRvIGEgc2luZ2xlIHByb3ZpZGVyLiIsInByb3BlcnRpZXMiOnsiYXdzIjp7ImRlc2NyaXB0aW9uIjoiQVdTIGRlc2NyaWJlcyBwcm92aWRlciBjb25maWd1cmF0aW9uIG9wdGlvbnNcbnNwZWNpZmljIHRvIEFXUyAoUm91dGUgNTMpLiIsInByb3BlcnRpZXMiOnsiY3JlZGVudGlhbHMiOnsiZGVzY3JpcHRpb24iOiJDcmVkZW50aWFscyBpcyBhIHJlZmVyZW5jZSB0byBhIHNlY3JldCBjb250YWluaW5nXG50aGUgc2hhcmVkIGNyZWRlbnRpYWxzIGZpbGUgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGkvbGF0ZXN0L3VzZXJndWlkZS9jbGktY29uZmlndXJlLWZpbGVzLmh0bWwpXG51bmRlciBgY3JlZGVudGlhbHNgIGtleSBvciBmb2xsb3dpbmcga2V5cyAod2l0aCBjb3JyZXNwb25kaW5nIHZhbHVlcyk6XG5cbiogYXdzX2FjY2Vzc19rZXlfaWRcbiogYXdzX3NlY3JldF9hY2Nlc3Nfa2V5XG5cblNlZVxuaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMtc2lncy9leHRlcm5hbC1kbnMvYmxvYi9tYXN0ZXIvZG9jcy90dXRvcmlhbHMvYXdzLm1kXG5mb3IgbW9yZSBpbmZvcm1hdGlvbi4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBzZWNyZXQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJjcmVkZW50aWFscyJdLCJ0eXBlIjoib2JqZWN0In0sImF6dXJlIjp7ImRlc2NyaXB0aW9uIjoiQXp1cmUgZGVzY3JpYmVzIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuc3BlY2lmaWMgdG8gQXp1cmUgRE5TLiIsInByb3BlcnRpZXMiOnsiY29uZmlnRmlsZSI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ0ZpbGUgaXMgYSByZWZlcmVuY2UgdG8gYSBzZWNyZXQgY29udGFpbmluZ1xudGhlIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiB0byB1c2UgdGhlIEF6dXJlIHByb3ZpZGVyLlxuVGhlIHNlY3JldCByZWZlcmVuY2VkIGJ5IENvbmZpZ0ZpbGUgc2hvdWxkIGNvbnRhaW5cbmEga2V5IG5hbWVkIGBhenVyZS5qc29uYCBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmc6XG5cbntcbiAgXCJ0ZW5hbnRJZFwiOiBcIjEyM1wiLFxuICBcInN1YnNjcmlwdGlvbklkXCI6IFwiNDU2XCIsXG4gIFwicmVzb3VyY2VHcm91cFwiOiBcIk15RG5zUmVzb3VyY2VHcm91cFwiLFxuICBcImFhZENsaWVudElkXCI6IFwiNzg5XCIsXG4gIFwiYWFkQ2xpZW50U2VjcmV0XCI6IFwiMTIzXCJcbn1cblxuU2VlXG5odHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy1zaWdzL2V4dGVybmFsLWRucy9ibG9iL21hc3Rlci9kb2NzL3R1dG9yaWFscy9henVyZS5tZFxuZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9uIGtleS92YWx1ZXMgYW5kIGhvdyB0byBvYnRhaW4gdGhlbS4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBzZWNyZXQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJjb25maWdGaWxlIl0sInR5cGUiOiJvYmplY3QifSwiYmx1ZUNhdCI6eyJkZXNjcmlwdGlvbiI6IkJsdWVDYXQgZGVzY3JpYmVzIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuc3BlY2lmaWMgdG8gQmx1ZUNhdCBETlMuIiwicHJvcGVydGllcyI6eyJjb25maWdGaWxlIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRmlsZSBpcyBhIHJlZmVyZW5jZSB0byBhIHNlY3JldCBjb250YWluaW5nXG50aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIHRvIHVzZSB0aGUgQmx1ZUNhdCBwcm92aWRlci5cblRoZSBzZWNyZXQgcmVmZXJlbmNlZCBieSBDb25maWdGaWxlIHNob3VsZCBjb250YWluXG5hbiBvYmplY3QgbmFtZWQgYGJsdWVjYXQuanNvbmAgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG57XG4gIFwiZ2F0ZXdheUhvc3RcIjogXCJodHRwczovL2JsdWVjYXRndy5leGFtcGxlLmNvbVwiLFxuICBcImdhdGV3YXlVc2VybmFtZVwiOiBcInVzZXJcIixcbiAgXCJnYXRld2F5UGFzc3dvcmRcIjogXCJwYXNzXCIsXG4gIFwiZG5zQ29uZmlndXJhdGlvblwiOiBcIkV4YW1wbGVcIixcbiAgXCJkbnNWaWV3XCI6IFwiSW50ZXJuYWxcIixcbiAgXCJyb290Wm9uZVwiOiBcImV4YW1wbGUuY29tXCIsXG4gIFwic2tpcFRMU1ZlcmlmeVwiOiBmYWxzZVxufVxuXG5TZWVcbmh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzLXNpZ3MvZXh0ZXJuYWwtZG5zL2Jsb2IvbWFzdGVyL2RvY3MvdHV0b3JpYWxzL2JsdWVjYXQubWRcbmZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbiB2YWx1ZXMgYW5kIGhvdyB0byBvYnRhaW4gdGhlbS4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBzZWNyZXQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJjb25maWdGaWxlIl0sInR5cGUiOiJvYmplY3QifSwiZ2NwIjp7ImRlc2NyaXB0aW9uIjoiR0NQIGRlc2NyaWJlcyBwcm92aWRlciBjb25maWd1cmF0aW9uIG9wdGlvbnNcbnNwZWNpZmljIHRvIEdDUCAoR29vZ2xlIEROUykuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFscyI6eyJkZXNjcmlwdGlvbiI6IkNyZWRlbnRpYWxzIGlzIGEgcmVmZXJlbmNlIHRvIGEgc2VjcmV0IGNvbnRhaW5pbmdcbnRoZSBuZWNlc3NhcnkgR0NQIHNlcnZpY2UgYWNjb3VudCBrZXlzLlxuVGhlIHNlY3JldCByZWZlcmVuY2VkIGJ5IENyZWRlbnRpYWxzIHNob3VsZFxuY29udGFpbiBhIGtleSBuYW1lZCBgZ2NwLWNyZWRlbnRpYWxzLmpzb25gXG5wcmVzdW1hYmx5IGdlbmVyYXRlZCBieSB0aGUgZ2Nsb3VkIENMSS4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBzZWNyZXQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInByb2plY3QiOnsiZGVzY3JpcHRpb24iOiJQcm9qZWN0IGlzIHRoZSBHQ1AgcHJvamVjdCB0byB1c2UgZm9yXG5jcmVhdGluZyBETlMgcmVjb3Jkcy4gVGhpcyBmaWVsZCBpcyBub3QgbmVjZXNzYXJ5XG53aGVuIHJ1bm5pbmcgb24gR0NQIGFzIGV4dGVybmFsRE5TIGF1dG8tZGV0ZWN0c1xudGhlIEdDUCBwcm9qZWN0IHRvIHVzZSB3aGVuIHJ1bm5pbmcgb24gR0NQLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNyZWRlbnRpYWxzIl0sInR5cGUiOiJvYmplY3QifSwiaW5mb2Jsb3giOnsiZGVzY3JpcHRpb24iOiJJbmZvYmxveCBkZXNjcmliZXMgcHJvdmlkZXIgY29uZmlndXJhdGlvbiBvcHRpb25zXG5zcGVjaWZpYyB0byBJbmZvYmxveCBETlMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFscyI6eyJkZXNjcmlwdGlvbiI6IkNyZWRlbnRpYWxzIGlzIGEgcmVmZXJlbmNlIHRvIGEgc2VjcmV0IGNvbnRhaW5pbmdcbnRoZSBmb2xsb3dpbmcga2V5cyAod2l0aCBwcm9wZXIgY29ycmVzcG9uZGluZyB2YWx1ZXMpOlxuXG4qIEVYVEVSTkFMX0ROU19JTkZPQkxPWF9XQVBJX1VTRVJOQU1FXG4qIEVYVEVSTkFMX0ROU19JTkZPQkxPWF9XQVBJX1BBU1NXT1JEXG5cblNlZVxuaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMtc2lncy9leHRlcm5hbC1kbnMvYmxvYi9tYXN0ZXIvZG9jcy90dXRvcmlhbHMvaW5mb2Jsb3gubWRcbmZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgc2VjcmV0LiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJncmlkSG9zdCI6eyJkZXNjcmlwdGlvbiI6IkdyaWRIb3N0IGlzIHRoZSBJUCBvZiB0aGUgSW5mb2Jsb3ggR3JpZCBob3N0LiIsInR5cGUiOiJzdHJpbmcifSwid2FwaVBvcnQiOnsiZGVzY3JpcHRpb24iOiJXQVBJUG9ydCBpcyB0aGUgcG9ydCBmb3IgdGhlIEluZm9ibG94IFdBUEkuIiwidHlwZSI6ImludGVnZXIifSwid2FwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJXQVBJVmVyc2lvbiBpcyB0aGUgdmVyc2lvbiBvZiB0aGUgSW5mb2Jsb3ggV0FQSS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjcmVkZW50aWFscyIsImdyaWRIb3N0Iiwid2FwaVBvcnQiLCJ3YXBpVmVyc2lvbiJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJUeXBlIGRlc2NyaWJlcyB3aGljaCBETlMgcHJvdmlkZXJcbkV4dGVybmFsRE5TIHNob3VsZCBwdWJsaXNoIHJlY29yZHMgdG8uXG5UaGUgZm9sbG93aW5nIEROUyBwcm92aWRlcnMgYXJlIHN1cHBvcnRlZDpcblxuICogQVdTIChSb3V0ZSA1MylcbiAqIEdDUCAoR29vZ2xlIEROUylcbiAqIEF6dXJlXG4gKiBCbHVlQ2F0XG4gKiBJbmZvYmxveCIsImVudW0iOlsiQVdTIiwiR0NQIiwiQXp1cmUiLCJCbHVlQ2F0IiwiSW5mb2Jsb3giXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sInNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZSBkZXNjcmliZXMgd2hpY2ggc291cmNlIHJlc291cmNlXG5FeHRlcm5hbEROUyB3aWxsIGJlIGNvbmZpZ3VyZWQgdG8gY3JlYXRlXG5ETlMgcmVjb3JkcyBmb3IuXG5cbk11bHRpcGxlIEV4dGVybmFsRE5TIENScyBtdXN0IGJlXG5jcmVhdGVkIGlmIG11bHRpcGxlIEV4dGVybmFsRE5TIHNvdXJjZSByZXNvdXJjZXNcbmFyZSBkZXNpcmVkLiIsInByb3BlcnRpZXMiOnsiZnFkblRlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiRlFETlRlbXBsYXRlIHNldHMgYSB0ZW1wbGF0ZWQgc3RyaW5nIHRoYXQncyB1c2VkIHRvIGdlbmVyYXRlIEROUyBuYW1lc1xuZnJvbSBzb3VyY2VzIHRoYXQgZG9uJ3QgZGVmaW5lIGEgaG9zdG5hbWUgdGhlbXNlbHZlcy5cbk11bHRpcGxlIGdsb2JhbCBGUUROIHRlbXBsYXRlcyBhcmUgcG9zc2libGUuXG5cblRoaXMgZmllbGQgbXVzdCBiZSBzcGVjaWZpZWQgd2l0aCBhIG5vbmVtcHR5IHZhbHVlIGlmIHRoZSBzb3VyY2UgdHlwZVxuaXMgU2VydmljZSBvciBDUkQgYW5kIEhvc3RuYW1lQW5ub3RhdGlvblBvbGljeSBpcyBzZXQgdG8gSWdub3JlLiAgVGhlXG5maWVsZCB2YWx1ZSBtYXkgYmUgb21pdHRlZCBvciBlbXB0eSBpZiBIb3N0bmFtZUFubm90YXRpb25Qb2xpY3kgaXNcbnNldCB0byBBbGxvdyBvciBpZiB0aGUgc291cmNlIHR5cGUgaXMgT3BlblNoaWZ0Um91dGUuXG5cblByb3ZpZGVkIHRlbXBsYXRlcyBzaG91bGQgZm9sbG93IHRoZSBzeW50YXggZGVmaW5lZCBmb3IgdGV4dC90ZW1wbGF0ZSBHbyBwYWNrYWdlLFxuc2VlIGh0dHBzOi8vcGtnLmdvLmRldi90ZXh0L3RlbXBsYXRlLlxuQW5ub3RhdGlvbnMgaW5zaWRlIHRoZSB0ZW1wbGF0ZSBjb3JyZXNwb25kIHRvIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBzb3VyY2UgcmVzb3VyY2Ugb2JqZWN0IChlLmcuIEt1YmVybmV0ZXMgc2VydmljZSwgT3BlblNoaWZ0IHJvdXRlKS5cbkV4YW1wbGU6IFwie3suTmFtZX19LmV4YW1wbGUuY29tXCIgd291bGQgYmUgZXhwYW5kZWQgdG8gXCJteXNlcnZpY2UuZXhhbXBsZS5jb21cIiBmb3Igc2VydmljZSBzb3VyY2UiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJob3N0bmFtZUFubm90YXRpb24iOnsiZGVmYXVsdCI6Iklnbm9yZSIsImRlc2NyaXB0aW9uIjoiSG9zdG5hbWVBbm5vdGF0aW9uUG9saWN5IHNwZWNpZmllcyB3aGV0aGVyIG9yIG5vdCBFeHRlcm5hbEROU1xuc2hvdWxkIGlnbm9yZSB0aGUgXCJleHRlcm5hbC1kbnMuYWxwaGEua3ViZXJuZXRlcy5pby9ob3N0bmFtZVwiXG5hbm5vdGF0aW9uLCB3aGljaCBvdmVycmlkZXMgRE5TIGhvc3RuYW1lcyBvbiBhIGdpdmVuIHNvdXJjZSByZXNvdXJjZS5cblxuVGhlIGZvbGxvd2luZyB2YWx1ZXMgYXJlIGFjY2VwdGVkOlxuXG4gXCJJZ25vcmVcIjogSWdub3JlIGFueSBob3N0bmFtZSBhbm5vdGF0aW9uIG92ZXJyaWRlcy5cbiBcIkFsbG93XCI6IEFsbG93IGFsbCBob3N0bmFtZSBhbm5vdGF0aW9uIG92ZXJyaWRlcy5cblxuVGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIEV4dGVybmFsRE5TIGlzIFwiSWdub3JlXCIuXG5cbk5vdGUgdGhhdCBieSBzZXR0aW5nIGEgSG9zdG5hbWVBbm5vdGF0aW9uUG9saWN5IG9mIFwiQWxsb3dcIixcbm1heSBncmFudCBwcml2aWxlZ2VkIEROUyBwZXJtaXNzaW9ucyB0byB1bmRlci1wcml2aWxlZ2VkIGNsdXN0ZXJcbnVzZXJzLiIsImVudW0iOlsiSWdub3JlIiwiQWxsb3ciXSwidHlwZSI6InN0cmluZyJ9LCJsYWJlbEZpbHRlciI6eyJkZXNjcmlwdGlvbiI6IkxhYmVsRmlsdGVyIHNwZWNpZmllcyBhIGxhYmVsIHNlbGVjdG9yIGZvciBmaWx0ZXJpbmcgdGhlIG9iamVjdHMgZm9yXG53aGljaCBFeHRlcm5hbEROUyBwdWJsaXNoZXMgcmVjb3Jkcy4gVGhlIGZpbHRlciB1c2VzIGxhYmVsIHNlbGVjdG9yXG5zZW1hbnRpY3MgYWdhaW5zdCBvYmplY3QgbGFiZWxzLiAgU3BlY2lmeWluZyBhIG51bGwgb3IgZW1wdHkgbGFiZWxcbnNlbGVjdG9yIGNhdXNlcyBFeHRlcm5hbEROUyB0byBwdWJsaXNoIHJlY29yZHMgZm9yIGFsbCBvYmplY3RzIG9mIHRoZVxuc291cmNlIHR5cGUgcmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0XG5yZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbixcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpY1xubWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoiYXRvbWljIn19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJhdG9taWMifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHNcbm1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZVxub3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJvcGVuc2hpZnRSb3V0ZU9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJPcGVuU2hpZnRSb3V0ZSBkZXNjcmliZXMgc291cmNlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBzcGVjaWZpYyB0byB0aGVcbnJvdXRlcy5yb3V0ZS5vcGVuc2hpZnQuaW8gcmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJyb3V0ZXJOYW1lIjp7ImRlc2NyaXB0aW9uIjoiUm91dGVyTmFtZSBpcyB0aGUgbmFtZSBvZiBhIHJvdXRlciAoQUtBIGluZ3Jlc3MgY29udHJvbGxlcikgYXNcbnJlcG9ydGVkIGluIFJvdXRlLnN0YXR1cy5pbmdyZXNzW10ucm91dGVyTmFtZS4gIEV4dGVybmFsLWRucyB3aWxsIHVzZVxudGhlIGNhbm9uaWNhbCBob3N0bmFtZSBvZiB0aGUgcm91dGVyIGlkZW50aWZpZWQgYnkgdGhpcyBuYW1lIHdoZW5cbnB1Ymxpc2hpbmcgcmVjb3JkcyBmb3IgYSBnaXZlbiByb3V0ZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJyb3V0ZXJOYW1lIl0sInR5cGUiOiJvYmplY3QifSwic2VydmljZSI6eyJkZXNjcmlwdGlvbiI6IlNlcnZpY2UgZGVzY3JpYmVzIHNvdXJjZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgc3BlY2lmaWNcbnRvIHRoZSBzZXJ2aWNlIHNvdXJjZSByZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7InNlcnZpY2VUeXBlIjp7ImRlZmF1bHQiOlsiTG9hZEJhbGFuY2VyIl0sImRlc2NyaXB0aW9uIjoiU2VydmljZVR5cGUgZGV0ZXJtaW5lcyB3aGF0IHR5cGVzIG9mIFNlcnZpY2UgcmVzb3VyY2VzXG5hcmUgd2F0Y2hlZCBieSBFeHRlcm5hbEROUy4gVGhlIGZvbGxvd2luZyB0eXBlcyBhcmVcbmF2YWlsYWJsZSBvcHRpb25zOlxuXG4gXCJOb2RlUG9ydFwiXG4gXCJFeHRlcm5hbE5hbWVcIlxuIFwiTG9hZEJhbGFuY2VyXCJcbiBcIkNsdXN0ZXJJUFwiXG5cbk9uZSBvciBtb3JlIFNlcnZpY2UgdHlwZXMgY2FuIGJlIHNwZWNpZmllZCwgaWYgZGVzaXJlZC5cblxuTm90ZSB0aGF0IHVzaW5nIHRoZSBcIkNsdXN0ZXJJUFwiIHNlcnZpY2UgdHlwZSB3aWxsIGVuYWJsZVxudGhlIEV4dGVybmFsRE5TIFwiLS1wdWJsaXNoLWludGVybmFsLXNlcnZpY2VzXCIgZmxhZyxcbndoaWNoIGFsbG93cyBFeHRlcm5hbEROUyB0byBwdWJsaXNoIEROUyByZWNvcmRzXG5mb3IgQ2x1c3RlcklQIHNlcnZpY2VzLlxuXG5JZiBubyBzZXJ2aWNlIHR5cGVzIGFyZSBwcm92aWRlZCwgRXh0ZXJuYWxETlMgd2lsbCBiZVxuY29uZmlndXJlZCB0byBjcmVhdGUgRE5TIHJlY29yZHMgZm9yIExvYWRCYWxhbmNlciBzZXJ2aWNlc1xub25seSBieSBkZWZhdWx0LiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiU2VydmljZSBUeXBlIHN0cmluZyBkZXNjcmliZXMgaW5ncmVzcyBtZXRob2RzIGZvciBhIHNlcnZpY2UiLCJ0eXBlIjoic3RyaW5nIn0sIm1pbkl0ZW1zIjoxLCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbInNlcnZpY2VUeXBlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6IlR5cGUgc3BlY2lmaWVzIGFuIEV4dGVybmFsRE5TIHNvdXJjZSByZXNvdXJjZVxudG8gY3JlYXRlIEROUyByZWNvcmRzIGZvci4iLCJlbnVtIjpbIk9wZW5TaGlmdFJvdXRlIiwiU2VydmljZSIsIkNSRCJdLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0eXBlIl0sInR5cGUiOiJvYmplY3QifSwiem9uZXMiOnsiZGVzY3JpcHRpb24iOiJab25lcyBkZXNjcmliZXMgd2hpY2ggRE5TIFpvbmUgSURzXG5FeHRlcm5hbEROUyBzaG91bGQgcHVibGlzaCByZWNvcmRzIHRvLlxuXG5VcGRhdGluZyB0aGlzIGZpZWxkIGFmdGVyIGNyZWF0aW9uXG53aWxsIGNhdXNlIGFsbCBETlMgcmVjb3JkcyBpbiB0aGUgcHJldmlvdXNcbnpvbmUocykgdG8gYmUgbGVmdCBiZWhpbmQuXG5cbkFuIGVtcHR5IGxpc3Qgb2Ygem9uZXMgbWVhbnMgdGhhdCB0aGUgRXh0ZXJuYWxETlMgd2lsbFxucHVibGlzaCB0byBhbGwgem9uZXMgKGkuZSBwdWJsaWMgYW5kIHByaXZhdGUpLCB1bmxlc3MgdGhlXG5vcGVyYXRvciBydW5zIG9uIGEgcGxhdGZvcm0gb24gd2hpY2ggdGhlIG9wZXJhdG9yIGNhblxubG9va3VwIGEgZGVmYXVsdCBzZXQgb2Ygem9uZXMgZS5nIG9uIE9wZW5TaGlmdCB3aXRoIGl0cyBjbHVzdGVyXG5ETlMgY29uZmlnIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJtYXhJdGVtcyI6MTAsInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsicHJvdmlkZXIiLCJzb3VyY2UiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJzdGF0dXMgaXMgdGhlIG1vc3QgcmVjZW50bHkgb2JzZXJ2ZWQgc3RhdHVzIG9mIHRoZSBFeHRlcm5hbEROUy4iLCJwcm9wZXJ0aWVzIjp7ImNvbmRpdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJDb25kaXRpb25zIGlzIGEgbGlzdCBvZiBvcGVyYXRvci1zcGVjaWZpYyBjb25kaXRpb25zXG5hbmQgdGhlaXIgc3RhdHVzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQ29uZGl0aW9uIGNvbnRhaW5zIGRldGFpbHMgZm9yIG9uZSBhc3BlY3Qgb2YgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhpcyBBUEkgUmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJsYXN0VHJhbnNpdGlvblRpbWUiOnsiZGVzY3JpcHRpb24iOiJsYXN0VHJhbnNpdGlvblRpbWUgaXMgdGhlIGxhc3QgdGltZSB0aGUgY29uZGl0aW9uIHRyYW5zaXRpb25lZCBmcm9tIG9uZSBzdGF0dXMgdG8gYW5vdGhlci5cblRoaXMgc2hvdWxkIGJlIHdoZW4gdGhlIHVuZGVybHlpbmcgY29uZGl0aW9uIGNoYW5nZWQuICBJZiB0aGF0IGlzIG5vdCBrbm93biwgdGhlbiB1c2luZyB0aGUgdGltZSB3aGVuIHRoZSBBUEkgZmllbGQgY2hhbmdlZCBpcyBhY2NlcHRhYmxlLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsInR5cGUiOiJzdHJpbmcifSwibWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6Im1lc3NhZ2UgaXMgYSBodW1hbiByZWFkYWJsZSBtZXNzYWdlIGluZGljYXRpbmcgZGV0YWlscyBhYm91dCB0aGUgdHJhbnNpdGlvbi5cblRoaXMgbWF5IGJlIGFuIGVtcHR5IHN0cmluZy4iLCJtYXhMZW5ndGgiOjMyNzY4LCJ0eXBlIjoic3RyaW5nIn0sIm9ic2VydmVkR2VuZXJhdGlvbiI6eyJkZXNjcmlwdGlvbiI6Im9ic2VydmVkR2VuZXJhdGlvbiByZXByZXNlbnRzIHRoZSAubWV0YWRhdGEuZ2VuZXJhdGlvbiB0aGF0IHRoZSBjb25kaXRpb24gd2FzIHNldCBiYXNlZCB1cG9uLlxuRm9yIGluc3RhbmNlLCBpZiAubWV0YWRhdGEuZ2VuZXJhdGlvbiBpcyBjdXJyZW50bHkgMTIsIGJ1dCB0aGUgLnN0YXR1cy5jb25kaXRpb25zW3hdLm9ic2VydmVkR2VuZXJhdGlvbiBpcyA5LCB0aGUgY29uZGl0aW9uIGlzIG91dCBvZiBkYXRlXG53aXRoIHJlc3BlY3QgdG8gdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGluc3RhbmNlLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwicmVhc29uIjp7ImRlc2NyaXB0aW9uIjoicmVhc29uIGNvbnRhaW5zIGEgcHJvZ3JhbW1hdGljIGlkZW50aWZpZXIgaW5kaWNhdGluZyB0aGUgcmVhc29uIGZvciB0aGUgY29uZGl0aW9uJ3MgbGFzdCB0cmFuc2l0aW9uLlxuUHJvZHVjZXJzIG9mIHNwZWNpZmljIGNvbmRpdGlvbiB0eXBlcyBtYXkgZGVmaW5lIGV4cGVjdGVkIHZhbHVlcyBhbmQgbWVhbmluZ3MgZm9yIHRoaXMgZmllbGQsXG5hbmQgd2hldGhlciB0aGUgdmFsdWVzIGFyZSBjb25zaWRlcmVkIGEgZ3VhcmFudGVlZCBBUEkuXG5UaGUgdmFsdWUgc2hvdWxkIGJlIGEgQ2FtZWxDYXNlIHN0cmluZy5cblRoaXMgZmllbGQgbWF5IG5vdCBiZSBlbXB0eS4iLCJtYXhMZW5ndGgiOjEwMjQsIm1pbkxlbmd0aCI6MSwicGF0dGVybiI6Il5bQS1aYS16XShbQS1aYS16MC05Xyw6XSpbQS1aYS16MC05X10pPyQiLCJ0eXBlIjoic3RyaW5nIn0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6InN0YXR1cyBvZiB0aGUgY29uZGl0aW9uLCBvbmUgb2YgVHJ1ZSwgRmFsc2UsIFVua25vd24uIiwiZW51bSI6WyJUcnVlIiwiRmFsc2UiLCJVbmtub3duIl0sInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6InR5cGUgb2YgY29uZGl0aW9uIGluIENhbWVsQ2FzZSBvciBpbiBmb28uZXhhbXBsZS5jb20vQ2FtZWxDYXNlLiIsIm1heExlbmd0aCI6MzE2LCJwYXR0ZXJuIjoiXihbYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPyhcXC5bYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPykqLyk/KChbQS1aYS16MC05XVstQS1aYS16MC05Xy5dKik/W0EtWmEtejAtOV0pJCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImxhc3RUcmFuc2l0aW9uVGltZSIsIm1lc3NhZ2UiLCJyZWFzb24iLCJzdGF0dXMiLCJ0eXBlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm9ic2VydmVkR2VuZXJhdGlvbiI6eyJkZXNjcmlwdGlvbiI6Ik9ic2VydmVkR2VuZXJhdGlvbiBpcyB0aGUgbW9zdCByZWNlbnQgZ2VuZXJhdGlvbiBvYnNlcnZlZC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInpvbmVzIjp7ImRlc2NyaXB0aW9uIjoiWm9uZXMgaXMgdGhlIGNvbmZpZ3VyZWQgem9uZXMgaW4gdXNlIGJ5IEV4dGVybmFsRE5TLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJzcGVjIl0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6ZmFsc2UsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX0seyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJFeHRlcm5hbEROUyBkZXNjcmliZXMgYSBtYW5hZ2VkIEV4dGVybmFsRE5TIGNvbnRyb2xsZXIgaW5zdGFuY2UgZm9yIGEgY2x1c3Rlci5cblRoZSBjb250cm9sbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBleHRlcm5hbCBETlMgcmVjb3JkcyBpbiBzdXBwb3J0ZWRcbkROUyBwcm92aWRlcnMgYmFzZWQgb2ZmIG9mIGluc3RhbmNlcyBvZiBzZWxlY3QgS3ViZXJuZXRlcyByZXNvdXJjZXMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LlxuU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kXG5tYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuXG5TZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by5cbkNhbm5vdCBiZSB1cGRhdGVkLlxuSW4gQ2FtZWxDYXNlLlxuTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoic3BlYyBpcyB0aGUgc3BlY2lmaWNhdGlvbiBvZiB0aGUgZGVzaXJlZCBiZWhhdmlvciBvZiB0aGUgRXh0ZXJuYWxETlMuIiwicHJvcGVydGllcyI6eyJkb21haW5zIjp7ImRlc2NyaXB0aW9uIjoiRG9tYWlucyBzcGVjaWZpZXMgd2hpY2ggZG9tYWlucyB0aGF0IEV4dGVybmFsRE5TIHNob3VsZFxuY3JlYXRlIEROUyByZWNvcmRzIGZvci4gTXVsdGlwbGUgZG9tYWluIHZhbHVlc1xuY2FuIGJlIHNwZWNpZmllZCBzdWNoIHRoYXQgc3ViZG9tYWlucyBvZiBhbiBpbmNsdWRlZCBkb21haW5cbmNhbiBlZmZlY3RpdmVseSBiZSBpZ25vcmVkIHVzaW5nIHRoZSBcIkluY2x1ZGVcIiBhbmQgXCJFeGNsdWRlXCJcbmRvbWFpbiBmaWx0ZXIgb3B0aW9ucy5cblxuQW4gZW1wdHkgbGlzdCBvZiBkb21haW5zIG1lYW5zIEV4dGVybmFsRE5TIHdpbGwgY3JlYXRlXG5ETlMgcmVjb3JkcyBmb3IgYW55IGluY2x1ZGVkIHNvdXJjZSByZXNvdXJjZSByZWdhcmRsZXNzXG5vZiB0aGUgcmVzb3VyY2UncyBkZXNpcmVkIGhvc3RuYW1lLlxuXG5Qb3B1bGF0aW5nIERvbWFpbnMgd2l0aCBvbmx5IGV4Y2x1ZGVkIG9wdGlvbnMgbWVhbnMgRXh0ZXJuYWxETlNcbndpbGwgY3JlYXRlIEROUyByZWNvcmRzIGZvciBhbnkgaW5jbHVkZWQgc291cmNlIHJlc291cmNlIHRoYXQgZG8gbm90XG5tYXRjaCB0aGUgcHJvdmlkZWQgZXhjbHVkZWQgZG9tYWluIG9wdGlvbnMuXG5cbkV4Y2x1ZGluZyBETlMgcmVjb3JkcyB0aGF0IHdlcmUgcHJldmlvdXMgaW5jbHVkZWQgdmlhIGEgcmVzb3VyY2UgdXBkYXRlXG53aWxsICpub3QqIHJlc3VsdCBpbiB0aGUgb3JpZ2luYWwgRE5TIHJlY29yZHMgYmVpbmcgZGVsZXRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkV4dGVybmFsRE5TRG9tYWluIGRlc2NyaWJlcyBob3cgc2V0cyBvZiBpbmNsdWRlZFxub3IgZXhjbHVkZWQgZG9tYWlucyBhcmUgdG8gYmUgY29uc3RydWN0ZWQuIiwicHJvcGVydGllcyI6eyJmaWx0ZXJUeXBlIjp7ImRlc2NyaXB0aW9uIjoiRmlsdGVyVHlwZSBtYXJrcyB0aGUgTmFtZSBvciBQYXR0ZXJuIGZpZWxkXG5hcyBhbiBpbmNsdWRlZCBvciBleGNsdWRlZCBzZXQgb2YgZG9tYWlucy5cblxuSW4gdGhlIGV2ZW50IG9mIGNvbnRyYWRpY3RpbmcgZG9tYWluIG9wdGlvbnMsXG5wcmVmZXJlbmNlIGlzIGdpdmVuIHRvIGV4Y2x1ZGVkIGRvbWFpbnMuXG5cblRoaXMgZmllbGQgYWNjZXB0cyB0aGUgZm9sbG93aW5nIHZhbHVlczpcblxuIFwiSW5jbHVkZVwiOiBJbmNsdWRlIHRoZSBkb21haW4gc2V0IHNwZWNpZmllZFxuIGJ5IG5hbWUgb3IgcGF0dGVybi5cblxuIFwiRXhjbHVkZVwiOiBFeGNsdWRlIHRoZSBkb21haW4gc2V0IHNwZWNpZmllZFxuIGJ5IG5hbWUgb3IgcGF0dGVybi4iLCJlbnVtIjpbIkluY2x1ZGUiLCJFeGNsdWRlIl0sInR5cGUiOiJzdHJpbmcifSwibWF0Y2hUeXBlIjp7ImRlc2NyaXB0aW9uIjoiTWF0Y2hUeXBlIHNwZWNpZmllcyB0aGUgdHlwZSBvZiBtYXRjaCB0byBiZSBwZXJmb3JtZWRcbmJ5IEV4dGVybmFsRE5TIHdoZW4gZGV0ZXJtaW5pbmcgd2hldGhlciBvciBub3QgdG8gcHVibGlzaCBETlNcbnJlY29yZHMgZm9yIGEgZ2l2ZW4gc291cmNlIHJlc291cmNlIGJhc2VkIG9uIHRoZSByZXNvdXJjZSdzXG5yZXF1ZXN0ZWQgaG9zdG5hbWUuXG5cblRoaXMgZmllbGQgYWNjZXB0cyB0aGUgZm9sbG93aW5nIHZhbHVlczpcblxuIFwiRXhhY3RcIjogRXhwbGljaXRseSBtYXRjaCB0aGUgZnVsbCBkb21haW4gc3RyaW5nXG4gIHNwZWNpZmllZCB2aWEgdGhlIE5hbWUgZmllbGQsIGluY2x1ZGluZyBhbnkgc3ViZG9tYWluc1xuICBvZiBOYW1lLlxuXG4gXCJQYXR0ZXJuXCI6IE1hdGNoIHBvdGVudGlhbCBkb21haW5zIGFnYWluc3RcbiB0aGUgcHJvdmlkZWQgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gc3RyaW5nLiIsImVudW0iOlsiRXhhY3QiLCJQYXR0ZXJuIl0sInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIGEgc2luZ2xlIGRvbWFpblxudmFsdWUuIFN1YmRvbWFpbnMgYXJlIGluY2x1ZGVkLlxuXG5lLmcuIG15LWFwcC5teS1jbHVzdGVyLWRvbWFpbi5jb21cbndvdWxkIGFsc28gaW5jbHVkZVxuZm9vLm15LWFwcC5teS1jbHVzdGVyLWRvbWFpbi5jb20iLCJ0eXBlIjoic3RyaW5nIn0sInBhdHRlcm4iOnsiZGVzY3JpcHRpb24iOiJQYXR0ZXJuIGlzIGEgcmVndWxhciBleHByZXNzaW9uIHVzZWQgdG9cbm1hdGNoIGEgc2V0IG9mIGRvbWFpbnMuIEFueSBwcm92aWRlZFxucmVndWxhciBleHByZXNzaW9ucyBzaG91bGQgZm9sbG93IHRoZSBzeW50YXhcbnVzZWQgYnkgdGhlIGdvIHJlZ2V4cCBwYWNrYWdlIChSRTIpLlxuU2VlIGh0dHBzOi8vZ29sYW5nLm9yZy9wa2cvcmVnZXhwLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJmaWx0ZXJUeXBlIiwibWF0Y2hUeXBlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInByb3ZpZGVyIjp7ImRlc2NyaXB0aW9uIjoiUHJvdmlkZXIgcmVmZXJzIHRvIHRoZSBETlMgcHJvdmlkZXIgdGhhdCBFeHRlcm5hbEROU1xuc2hvdWxkIHB1Ymxpc2ggcmVjb3JkcyB0by4gTm90ZSB0aGF0IGVhY2ggRXh0ZXJuYWxETlNcbmlzIHRpZWQgdG8gYSBzaW5nbGUgcHJvdmlkZXIuIiwicHJvcGVydGllcyI6eyJhd3MiOnsiZGVzY3JpcHRpb24iOiJBV1MgZGVzY3JpYmVzIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuc3BlY2lmaWMgdG8gQVdTIChSb3V0ZSA1MykuIiwicHJvcGVydGllcyI6eyJhc3N1bWVSb2xlIjp7ImRlc2NyaXB0aW9uIjoiYXNzdW1lUm9sZSBpcyBhIHJlZmVyZW5jZSB0byB0aGUgSUFNIHJvbGUgdGhhdFxuRXh0ZXJuYWxETlMgd2lsbCBiZSBhc3N1bWluZyBpbiBvcmRlciB0byBwZXJmb3JtXG5hbnkgRE5TIHVwZGF0ZXMuIiwicHJvcGVydGllcyI6eyJhcm4iOnsiZGVzY3JpcHRpb24iOiJhcm4gaXMgYW4gSUFNIHJvbGUgQVJOIHRoYXQgdGhlIEV4dGVybmFsRE5TXG5vcGVyYXRvciB3aWxsIGFzc3VtZSB3aGVuIG1ha2luZyBETlMgdXBkYXRlcy4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJhcm4iXSwidHlwZSI6Im9iamVjdCJ9LCJjcmVkZW50aWFscyI6eyJkZWZhdWx0Ijp7Im5hbWUiOiIifSwiZGVzY3JpcHRpb24iOiJDcmVkZW50aWFscyBpcyBhIHJlZmVyZW5jZSB0byBhIHNlY3JldCBjb250YWluaW5nXG50aGUgZm9sbG93aW5nIGtleXMgKHdpdGggY29ycmVzcG9uZGluZyB2YWx1ZXMpOlxuXG4qIGF3c19hY2Nlc3Nfa2V5X2lkXG4qIGF3c19zZWNyZXRfYWNjZXNzX2tleSIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIHNlY3JldC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImNyZWRlbnRpYWxzIl0sInR5cGUiOiJvYmplY3QifSwiYXp1cmUiOnsiZGVzY3JpcHRpb24iOiJBenVyZSBkZXNjcmliZXMgcHJvdmlkZXIgY29uZmlndXJhdGlvbiBvcHRpb25zXG5zcGVjaWZpYyB0byBBenVyZSBETlMuIiwicHJvcGVydGllcyI6eyJjb25maWdGaWxlIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRmlsZSBpcyBhIHJlZmVyZW5jZSB0byBhIHNlY3JldCBjb250YWluaW5nXG50aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIHRvIHVzZSB0aGUgQXp1cmUgcHJvdmlkZXIuXG5UaGUgc2VjcmV0IHJlZmVyZW5jZWQgYnkgQ29uZmlnRmlsZSBzaG91bGQgY29udGFpblxuYSBrZXkgbmFtZWQgYGF6dXJlLmpzb25gIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxue1xuICBcInRlbmFudElkXCI6IFwiMTIzXCIsXG4gIFwic3Vic2NyaXB0aW9uSWRcIjogXCI0NTZcIixcbiAgXCJyZXNvdXJjZUdyb3VwXCI6IFwiTXlEbnNSZXNvdXJjZUdyb3VwXCIsXG4gIFwiYWFkQ2xpZW50SWRcIjogXCI3ODlcIixcbiAgXCJhYWRDbGllbnRTZWNyZXRcIjogXCIxMjNcIlxufVxuXG5TZWVcbmh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzLXNpZ3MvZXh0ZXJuYWwtZG5zL2Jsb2IvMjI2ZGJiOTMxZjdhMjAxOTgxMGIzNzAzYWVjMDk2YzRlYTRmNDBlYS9kb2NzL3R1dG9yaWFscy9henVyZS5tZCNjb25maWd1cmF0aW9uLWZpbGVcbmZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbiBrZXkvdmFsdWVzIGFuZCBob3cgdG8gb2J0YWluIHRoZW0uIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgc2VjcmV0LiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsiY29uZmlnRmlsZSJdLCJ0eXBlIjoib2JqZWN0In0sImJsdWVDYXQiOnsiZGVzY3JpcHRpb24iOiJCbHVlQ2F0IGRlc2NyaWJlcyBwcm92aWRlciBjb25maWd1cmF0aW9uIG9wdGlvbnNcbnNwZWNpZmljIHRvIEJsdWVDYXQgRE5TLiIsInByb3BlcnRpZXMiOnsiY29uZmlnRmlsZSI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ0ZpbGUgaXMgYSByZWZlcmVuY2UgdG8gYSBzZWNyZXQgY29udGFpbmluZ1xudGhlIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiB0byB1c2UgdGhlIEJsdWVDYXQgcHJvdmlkZXIuXG5UaGUgc2VjcmV0IHJlZmVyZW5jZWQgYnkgQ29uZmlnRmlsZSBzaG91bGQgY29udGFpblxuYW4gb2JqZWN0IG5hbWVkIGBibHVlY2F0Lmpzb25gIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxue1xuICBcImdhdGV3YXlIb3N0XCI6IFwiaHR0cHM6Ly9ibHVlY2F0Z3cuZXhhbXBsZS5jb21cIixcbiAgXCJnYXRld2F5VXNlcm5hbWVcIjogXCJ1c2VyXCIsXG4gIFwiZ2F0ZXdheVBhc3N3b3JkXCI6IFwicGFzc1wiLFxuICBcImRuc0NvbmZpZ3VyYXRpb25cIjogXCJFeGFtcGxlXCIsXG4gIFwiZG5zVmlld1wiOiBcIkludGVybmFsXCIsXG4gIFwicm9vdFpvbmVcIjogXCJleGFtcGxlLmNvbVwiLFxuICBcInNraXBUTFNWZXJpZnlcIjogZmFsc2Vcbn1cblxuU2VlXG5odHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy1zaWdzL2V4dGVybmFsLWRucy9ibG9iLzIyNmRiYjkzMWY3YTIwMTk4MTBiMzcwM2FlYzA5NmM0ZWE0ZjQwZWEvZG9jcy90dXRvcmlhbHMvYmx1ZWNhdC5tZCN1c2luZy1qc29uLWNvbmZpZ3VyYXRpb24tZmlsZVxuZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9uIHZhbHVlcyBhbmQgaG93IHRvIG9idGFpbiB0aGVtLiIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIHNlY3JldC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImNvbmZpZ0ZpbGUiXSwidHlwZSI6Im9iamVjdCJ9LCJnY3AiOnsiZGVzY3JpcHRpb24iOiJHQ1AgZGVzY3JpYmVzIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuc3BlY2lmaWMgdG8gR0NQIChHb29nbGUgRE5TKS4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzIjp7ImRlc2NyaXB0aW9uIjoiQ3JlZGVudGlhbHMgaXMgYSByZWZlcmVuY2UgdG8gYSBzZWNyZXQgY29udGFpbmluZ1xudGhlIG5lY2Vzc2FyeSBHQ1Agc2VydmljZSBhY2NvdW50IGtleXMuXG5UaGUgc2VjcmV0IHJlZmVyZW5jZWQgYnkgQ3JlZGVudGlhbHMgc2hvdWxkXG5jb250YWluIGEga2V5IG5hbWVkIGBnY3AtY3JlZGVudGlhbHMuanNvbmBcbnByZXN1bWFibHkgZ2VuZXJhdGVkIGJ5IHRoZSBnY2xvdWQgQ0xJLiIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIHNlY3JldC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwicHJvamVjdCI6eyJkZXNjcmlwdGlvbiI6IlByb2plY3QgaXMgdGhlIEdDUCBwcm9qZWN0IHRvIHVzZSBmb3JcbmNyZWF0aW5nIEROUyByZWNvcmRzLiBUaGlzIGZpZWxkIGlzIG5vdCBuZWNlc3NhcnlcbndoZW4gcnVubmluZyBvbiBHQ1AgYXMgZXh0ZXJuYWxETlMgYXV0by1kZXRlY3RzXG50aGUgR0NQIHByb2plY3QgdG8gdXNlIHdoZW4gcnVubmluZyBvbiBHQ1AuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiY3JlZGVudGlhbHMiXSwidHlwZSI6Im9iamVjdCJ9LCJpbmZvYmxveCI6eyJkZXNjcmlwdGlvbiI6IkluZm9ibG94IGRlc2NyaWJlcyBwcm92aWRlciBjb25maWd1cmF0aW9uIG9wdGlvbnNcbnNwZWNpZmljIHRvIEluZm9ibG94IEROUy4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzIjp7ImRlc2NyaXB0aW9uIjoiQ3JlZGVudGlhbHMgaXMgYSByZWZlcmVuY2UgdG8gYSBzZWNyZXQgY29udGFpbmluZ1xudGhlIGZvbGxvd2luZyBrZXlzICh3aXRoIHByb3BlciBjb3JyZXNwb25kaW5nIHZhbHVlcyk6XG5cbiogRVhURVJOQUxfRE5TX0lORk9CTE9YX1dBUElfVVNFUk5BTUVcbiogRVhURVJOQUxfRE5TX0lORk9CTE9YX1dBUElfUEFTU1dPUkQiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBzZWNyZXQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sImdyaWRIb3N0Ijp7ImRlc2NyaXB0aW9uIjoiR3JpZEhvc3QgaXMgdGhlIElQIG9mIHRoZSBJbmZvYmxveCBHcmlkIGhvc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ3YXBpUG9ydCI6eyJkZXNjcmlwdGlvbiI6IldBUElQb3J0IGlzIHRoZSBwb3J0IGZvciB0aGUgSW5mb2Jsb3ggV0FQSS4iLCJ0eXBlIjoiaW50ZWdlciJ9LCJ3YXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IldBUElWZXJzaW9uIGlzIHRoZSB2ZXJzaW9uIG9mIHRoZSBJbmZvYmxveCBXQVBJLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNyZWRlbnRpYWxzIiwiZ3JpZEhvc3QiLCJ3YXBpUG9ydCIsIndhcGlWZXJzaW9uIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6IlR5cGUgZGVzY3JpYmVzIHdoaWNoIEROUyBwcm92aWRlclxuRXh0ZXJuYWxETlMgc2hvdWxkIHB1Ymxpc2ggcmVjb3JkcyB0by5cblRoZSBmb2xsb3dpbmcgRE5TIHByb3ZpZGVycyBhcmUgc3VwcG9ydGVkOlxuXG4gKiBBV1MgKFJvdXRlIDUzKVxuICogR0NQIChHb29nbGUgRE5TKVxuICogQXp1cmVcbiAqIEJsdWVDYXRcbiAqIEluZm9ibG94IiwiZW51bSI6WyJBV1MiLCJHQ1AiLCJBenVyZSIsIkJsdWVDYXQiLCJJbmZvYmxveCJdLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0eXBlIl0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGRlc2NyaWJlcyB3aGljaCBzb3VyY2UgcmVzb3VyY2VcbkV4dGVybmFsRE5TIHdpbGwgYmUgY29uZmlndXJlZCB0byBjcmVhdGVcbkROUyByZWNvcmRzIGZvci5cblxuTXVsdGlwbGUgRXh0ZXJuYWxETlMgQ1JzIG11c3QgYmVcbmNyZWF0ZWQgaWYgbXVsdGlwbGUgRXh0ZXJuYWxETlMgc291cmNlIHJlc291cmNlc1xuYXJlIGRlc2lyZWQuIiwicHJvcGVydGllcyI6eyJmcWRuVGVtcGxhdGUiOnsiZGVzY3JpcHRpb24iOiJGUUROVGVtcGxhdGUgc2V0cyBhIHRlbXBsYXRlZCBzdHJpbmcgdGhhdCdzIHVzZWQgdG8gZ2VuZXJhdGUgRE5TIG5hbWVzXG5mcm9tIHNvdXJjZXMgdGhhdCBkb24ndCBkZWZpbmUgYSBob3N0bmFtZSB0aGVtc2VsdmVzLlxuTXVsdGlwbGUgZ2xvYmFsIEZRRE4gdGVtcGxhdGVzIGFyZSBwb3NzaWJsZS5cblxuVGhpcyBmaWVsZCBtdXN0IGJlIHNwZWNpZmllZCB3aXRoIGEgbm9uZW1wdHkgdmFsdWUgaWYgdGhlIHNvdXJjZSB0eXBlXG5pcyBTZXJ2aWNlIG9yIENSRCBhbmQgSG9zdG5hbWVBbm5vdGF0aW9uUG9saWN5IGlzIHNldCB0byBJZ25vcmUuICBUaGVcbmZpZWxkIHZhbHVlIG1heSBiZSBvbWl0dGVkIG9yIGVtcHR5IGlmIEhvc3RuYW1lQW5ub3RhdGlvblBvbGljeSBpc1xuc2V0IHRvIEFsbG93IG9yIGlmIHRoZSBzb3VyY2UgdHlwZSBpcyBPcGVuU2hpZnRSb3V0ZS5cblxuUHJvdmlkZWQgdGVtcGxhdGVzIHNob3VsZCBmb2xsb3cgdGhlIHN5bnRheCBkZWZpbmVkIGZvciB0ZXh0L3RlbXBsYXRlIEdvIHBhY2thZ2UsXG5zZWUgaHR0cHM6Ly9wa2cuZ28uZGV2L3RleHQvdGVtcGxhdGUuXG5Bbm5vdGF0aW9ucyBpbnNpZGUgdGhlIHRlbXBsYXRlIGNvcnJlc3BvbmQgdG8gdGhlIGRlZmluaXRpb24gb2YgdGhlIHNvdXJjZSByZXNvdXJjZSBvYmplY3QgKGUuZy4gS3ViZXJuZXRlcyBzZXJ2aWNlLCBPcGVuU2hpZnQgcm91dGUpLlxuRXhhbXBsZTogXCJ7ey5OYW1lfX0uZXhhbXBsZS5jb21cIiB3b3VsZCBiZSBleHBhbmRlZCB0byBcIm15c2VydmljZS5leGFtcGxlLmNvbVwiIGZvciBzZXJ2aWNlIHNvdXJjZSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImhvc3RuYW1lQW5ub3RhdGlvbiI6eyJkZWZhdWx0IjoiSWdub3JlIiwiZGVzY3JpcHRpb24iOiJIb3N0bmFtZUFubm90YXRpb25Qb2xpY3kgc3BlY2lmaWVzIHdoZXRoZXIgb3Igbm90IEV4dGVybmFsRE5TXG5zaG91bGQgaWdub3JlIHRoZSBcImV4dGVybmFsLWRucy5hbHBoYS5rdWJlcm5ldGVzLmlvL2hvc3RuYW1lXCJcbmFubm90YXRpb24sIHdoaWNoIG92ZXJyaWRlcyBETlMgaG9zdG5hbWVzIG9uIGEgZ2l2ZW4gc291cmNlIHJlc291cmNlLlxuXG5UaGUgZm9sbG93aW5nIHZhbHVlcyBhcmUgYWNjZXB0ZWQ6XG5cbiBcIklnbm9yZVwiOiBJZ25vcmUgYW55IGhvc3RuYW1lIGFubm90YXRpb24gb3ZlcnJpZGVzLlxuIFwiQWxsb3dcIjogQWxsb3cgYWxsIGhvc3RuYW1lIGFubm90YXRpb24gb3ZlcnJpZGVzLlxuXG5UaGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgRXh0ZXJuYWxETlMgaXMgXCJJZ25vcmVcIi5cblxuTm90ZSB0aGF0IGJ5IHNldHRpbmcgYSBIb3N0bmFtZUFubm90YXRpb25Qb2xpY3kgb2YgXCJBbGxvd1wiLFxubWF5IGdyYW50IHByaXZpbGVnZWQgRE5TIHBlcm1pc3Npb25zIHRvIHVuZGVyLXByaXZpbGVnZWQgY2x1c3RlclxudXNlcnMuIiwiZW51bSI6WyJJZ25vcmUiLCJBbGxvdyJdLCJ0eXBlIjoic3RyaW5nIn0sImxhYmVsRmlsdGVyIjp7ImRlc2NyaXB0aW9uIjoiTGFiZWxGaWx0ZXIgc3BlY2lmaWVzIGEgbGFiZWwgc2VsZWN0b3IgZm9yIGZpbHRlcmluZyB0aGUgb2JqZWN0cyBmb3JcbndoaWNoIEV4dGVybmFsRE5TIHB1Ymxpc2hlcyByZWNvcmRzLiBUaGUgZmlsdGVyIHVzZXMgbGFiZWwgc2VsZWN0b3JcbnNlbWFudGljcyBhZ2FpbnN0IG9iamVjdCBsYWJlbHMuICBTcGVjaWZ5aW5nIGEgbnVsbCBvciBlbXB0eSBsYWJlbFxuc2VsZWN0b3IgY2F1c2VzIEV4dGVybmFsRE5TIHRvIHB1Ymxpc2ggcmVjb3JkcyBmb3IgYWxsIG9iamVjdHMgb2YgdGhlXG5zb3VyY2UgdHlwZSByZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXRcbnJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuXG5WYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsXG50aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljXG5tZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJhdG9taWMifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6ImF0b21pYyJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVsc1xubWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlXG5vcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sIm9wZW5zaGlmdFJvdXRlT3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6Ik9wZW5TaGlmdFJvdXRlIGRlc2NyaWJlcyBzb3VyY2UgY29uZmlndXJhdGlvbiBvcHRpb25zIHNwZWNpZmljIHRvIHRoZVxucm91dGVzLnJvdXRlLm9wZW5zaGlmdC5pbyByZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7InJvdXRlck5hbWUiOnsiZGVzY3JpcHRpb24iOiJSb3V0ZXJOYW1lIGlzIHRoZSBuYW1lIG9mIGEgcm91dGVyIChBS0EgaW5ncmVzcyBjb250cm9sbGVyKSBhc1xucmVwb3J0ZWQgaW4gUm91dGUuc3RhdHVzLmluZ3Jlc3NbXS5yb3V0ZXJOYW1lLiAgRXh0ZXJuYWwtZG5zIHdpbGwgdXNlXG50aGUgY2Fub25pY2FsIGhvc3RuYW1lIG9mIHRoZSByb3V0ZXIgaWRlbnRpZmllZCBieSB0aGlzIG5hbWUgd2hlblxucHVibGlzaGluZyByZWNvcmRzIGZvciBhIGdpdmVuIHJvdXRlLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInJvdXRlck5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJzZXJ2aWNlIjp7ImRlc2NyaXB0aW9uIjoiU2VydmljZSBkZXNjcmliZXMgc291cmNlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBzcGVjaWZpY1xudG8gdGhlIHNlcnZpY2Ugc291cmNlIHJlc291cmNlLiIsInByb3BlcnRpZXMiOnsic2VydmljZVR5cGUiOnsiZGVmYXVsdCI6WyJMb2FkQmFsYW5jZXIiXSwiZGVzY3JpcHRpb24iOiJTZXJ2aWNlVHlwZSBkZXRlcm1pbmVzIHdoYXQgdHlwZXMgb2YgU2VydmljZSByZXNvdXJjZXNcbmFyZSB3YXRjaGVkIGJ5IEV4dGVybmFsRE5TLiBUaGUgZm9sbG93aW5nIHR5cGVzIGFyZVxuYXZhaWxhYmxlIG9wdGlvbnM6XG5cbiBcIk5vZGVQb3J0XCJcbiBcIkV4dGVybmFsTmFtZVwiXG4gXCJMb2FkQmFsYW5jZXJcIlxuIFwiQ2x1c3RlcklQXCJcblxuT25lIG9yIG1vcmUgU2VydmljZSB0eXBlcyBjYW4gYmUgc3BlY2lmaWVkLCBpZiBkZXNpcmVkLlxuXG5Ob3RlIHRoYXQgdXNpbmcgdGhlIFwiQ2x1c3RlcklQXCIgc2VydmljZSB0eXBlIHdpbGwgZW5hYmxlXG50aGUgRXh0ZXJuYWxETlMgXCItLXB1Ymxpc2gtaW50ZXJuYWwtc2VydmljZXNcIiBmbGFnLFxud2hpY2ggYWxsb3dzIEV4dGVybmFsRE5TIHRvIHB1Ymxpc2ggRE5TIHJlY29yZHNcbmZvciBDbHVzdGVySVAgc2VydmljZXMuXG5cbklmIG5vIHNlcnZpY2UgdHlwZXMgYXJlIHByb3ZpZGVkLCBFeHRlcm5hbEROUyB3aWxsIGJlXG5jb25maWd1cmVkIHRvIGNyZWF0ZSBETlMgcmVjb3JkcyBmb3IgTG9hZEJhbGFuY2VyIHNlcnZpY2VzXG5vbmx5IGJ5IGRlZmF1bHQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJTZXJ2aWNlIFR5cGUgc3RyaW5nIGRlc2NyaWJlcyBpbmdyZXNzIG1ldGhvZHMgZm9yIGEgc2VydmljZSIsInR5cGUiOiJzdHJpbmcifSwibWluSXRlbXMiOjEsInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsic2VydmljZVR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiVHlwZSBzcGVjaWZpZXMgYW4gRXh0ZXJuYWxETlMgc291cmNlIHJlc291cmNlXG50byBjcmVhdGUgRE5TIHJlY29yZHMgZm9yLiIsImVudW0iOlsiT3BlblNoaWZ0Um91dGUiLCJTZXJ2aWNlIiwiQ1JEIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ6b25lcyI6eyJkZXNjcmlwdGlvbiI6IlpvbmVzIGRlc2NyaWJlcyB3aGljaCBETlMgWm9uZSBJRHNcbkV4dGVybmFsRE5TIHNob3VsZCBwdWJsaXNoIHJlY29yZHMgdG8uXG5cblVwZGF0aW5nIHRoaXMgZmllbGQgYWZ0ZXIgY3JlYXRpb25cbndpbGwgY2F1c2UgYWxsIEROUyByZWNvcmRzIGluIHRoZSBwcmV2aW91c1xuem9uZShzKSB0byBiZSBsZWZ0IGJlaGluZC5cblxuQW4gZW1wdHkgbGlzdCBvZiB6b25lcyBtZWFucyB0aGF0IHRoZSBFeHRlcm5hbEROUyB3aWxsXG5wdWJsaXNoIHRvIGFsbCB6b25lcyAoaS5lIHB1YmxpYyBhbmQgcHJpdmF0ZSksIHVubGVzcyB0aGVcbm9wZXJhdG9yIHJ1bnMgb24gYSBwbGF0Zm9ybSBvbiB3aGljaCB0aGUgb3BlcmF0b3IgY2FuXG5sb29rdXAgYSBkZWZhdWx0IHNldCBvZiB6b25lcyBlLmcgb24gT3BlblNoaWZ0IHdpdGggaXRzIGNsdXN0ZXJcbkROUyBjb25maWciLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sIm1heEl0ZW1zIjoxMCwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJwcm92aWRlciIsInNvdXJjZSJdLCJ0eXBlIjoib2JqZWN0In0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6InN0YXR1cyBpcyB0aGUgbW9zdCByZWNlbnRseSBvYnNlcnZlZCBzdGF0dXMgb2YgdGhlIEV4dGVybmFsRE5TLiIsInByb3BlcnRpZXMiOnsiY29uZGl0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkNvbmRpdGlvbnMgaXMgYSBsaXN0IG9mIG9wZXJhdG9yLXNwZWNpZmljIGNvbmRpdGlvbnNcbmFuZCB0aGVpciBzdGF0dXMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJDb25kaXRpb24gY29udGFpbnMgZGV0YWlscyBmb3Igb25lIGFzcGVjdCBvZiB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGlzIEFQSSBSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7Imxhc3RUcmFuc2l0aW9uVGltZSI6eyJkZXNjcmlwdGlvbiI6Imxhc3RUcmFuc2l0aW9uVGltZSBpcyB0aGUgbGFzdCB0aW1lIHRoZSBjb25kaXRpb24gdHJhbnNpdGlvbmVkIGZyb20gb25lIHN0YXR1cyB0byBhbm90aGVyLlxuVGhpcyBzaG91bGQgYmUgd2hlbiB0aGUgdW5kZXJseWluZyBjb25kaXRpb24gY2hhbmdlZC4gIElmIHRoYXQgaXMgbm90IGtub3duLCB0aGVuIHVzaW5nIHRoZSB0aW1lIHdoZW4gdGhlIEFQSSBmaWVsZCBjaGFuZ2VkIGlzIGFjY2VwdGFibGUuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwidHlwZSI6InN0cmluZyJ9LCJtZXNzYWdlIjp7ImRlc2NyaXB0aW9uIjoibWVzc2FnZSBpcyBhIGh1bWFuIHJlYWRhYmxlIG1lc3NhZ2UgaW5kaWNhdGluZyBkZXRhaWxzIGFib3V0IHRoZSB0cmFuc2l0aW9uLlxuVGhpcyBtYXkgYmUgYW4gZW1wdHkgc3RyaW5nLiIsIm1heExlbmd0aCI6MzI3NjgsInR5cGUiOiJzdHJpbmcifSwib2JzZXJ2ZWRHZW5lcmF0aW9uIjp7ImRlc2NyaXB0aW9uIjoib2JzZXJ2ZWRHZW5lcmF0aW9uIHJlcHJlc2VudHMgdGhlIC5tZXRhZGF0YS5nZW5lcmF0aW9uIHRoYXQgdGhlIGNvbmRpdGlvbiB3YXMgc2V0IGJhc2VkIHVwb24uXG5Gb3IgaW5zdGFuY2UsIGlmIC5tZXRhZGF0YS5nZW5lcmF0aW9uIGlzIGN1cnJlbnRseSAxMiwgYnV0IHRoZSAuc3RhdHVzLmNvbmRpdGlvbnNbeF0ub2JzZXJ2ZWRHZW5lcmF0aW9uIGlzIDksIHRoZSBjb25kaXRpb24gaXMgb3V0IG9mIGRhdGVcbndpdGggcmVzcGVjdCB0byB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgaW5zdGFuY2UuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJyZWFzb24iOnsiZGVzY3JpcHRpb24iOiJyZWFzb24gY29udGFpbnMgYSBwcm9ncmFtbWF0aWMgaWRlbnRpZmllciBpbmRpY2F0aW5nIHRoZSByZWFzb24gZm9yIHRoZSBjb25kaXRpb24ncyBsYXN0IHRyYW5zaXRpb24uXG5Qcm9kdWNlcnMgb2Ygc3BlY2lmaWMgY29uZGl0aW9uIHR5cGVzIG1heSBkZWZpbmUgZXhwZWN0ZWQgdmFsdWVzIGFuZCBtZWFuaW5ncyBmb3IgdGhpcyBmaWVsZCxcbmFuZCB3aGV0aGVyIHRoZSB2YWx1ZXMgYXJlIGNvbnNpZGVyZWQgYSBndWFyYW50ZWVkIEFQSS5cblRoZSB2YWx1ZSBzaG91bGQgYmUgYSBDYW1lbENhc2Ugc3RyaW5nLlxuVGhpcyBmaWVsZCBtYXkgbm90IGJlIGVtcHR5LiIsIm1heExlbmd0aCI6MTAyNCwibWluTGVuZ3RoIjoxLCJwYXR0ZXJuIjoiXltBLVphLXpdKFtBLVphLXowLTlfLDpdKltBLVphLXowLTlfXSk/JCIsInR5cGUiOiJzdHJpbmcifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoic3RhdHVzIG9mIHRoZSBjb25kaXRpb24sIG9uZSBvZiBUcnVlLCBGYWxzZSwgVW5rbm93bi4iLCJlbnVtIjpbIlRydWUiLCJGYWxzZSIsIlVua25vd24iXSwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoidHlwZSBvZiBjb25kaXRpb24gaW4gQ2FtZWxDYXNlIG9yIGluIGZvby5leGFtcGxlLmNvbS9DYW1lbENhc2UuIiwibWF4TGVuZ3RoIjozMTYsInBhdHRlcm4iOiJeKFthLXowLTldKFstYS16MC05XSpbYS16MC05XSk/KFxcLlthLXowLTldKFstYS16MC05XSpbYS16MC05XSk/KSovKT8oKFtBLVphLXowLTldWy1BLVphLXowLTlfLl0qKT9bQS1aYS16MC05XSkkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibGFzdFRyYW5zaXRpb25UaW1lIiwibWVzc2FnZSIsInJlYXNvbiIsInN0YXR1cyIsInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwib2JzZXJ2ZWRHZW5lcmF0aW9uIjp7ImRlc2NyaXB0aW9uIjoiT2JzZXJ2ZWRHZW5lcmF0aW9uIGlzIHRoZSBtb3N0IHJlY2VudCBnZW5lcmF0aW9uIG9ic2VydmVkLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiem9uZXMiOnsiZGVzY3JpcHRpb24iOiJab25lcyBpcyB0aGUgY29uZmlndXJlZCB6b25lcyBpbiB1c2UgYnkgRXh0ZXJuYWxETlMuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbInNwZWMiXSwidHlwZSI6Im9iamVjdCJ9fSwic2VydmVkIjp0cnVlLCJzdG9yYWdlIjp0cnVlLCJzdWJyZXNvdXJjZXMiOnsic3RhdHVzIjp7fX19XX0sInN0YXR1cyI6eyJhY2NlcHRlZE5hbWVzIjp7ImtpbmQiOiIiLCJwbHVyYWwiOiIifSwiY29uZGl0aW9ucyI6bnVsbCwic3RvcmVkVmVyc2lvbnMiOm51bGx9fQ==
- type: olm.bundle.object
value:
data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiZXh0ZXJuYWxkbnMub2xtLm9wZW5zaGlmdC5pby92MWFscGhhMVwiLFxuICAgIFwia2luZFwiOiBcIkV4dGVybmFsRE5TXCIsXG4gICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICBcIm5hbWVcIjogXCJzYW1wbGUtYXdzXCJcbiAgICB9LFxuICAgIFwic3BlY1wiOiB7XG4gICAgICBcImRvbWFpbnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJmaWx0ZXJUeXBlXCI6IFwiSW5jbHVkZVwiLFxuICAgICAgICAgIFwibWF0Y2hUeXBlXCI6IFwiRXhhY3RcIixcbiAgICAgICAgICBcIm5hbWVcIjogXCJ0ZXN0ZXh0ZG5zb3BlcmF0b3IuYXBhY3NoaWZ0LnN1cHBvcnRcIlxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgXCJwcm92aWRlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIkFXU1wiXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcIm9wZW5zaGlmdFJvdXRlT3B0aW9uc1wiOiB7XG4gICAgICAgICAgXCJyb3V0ZXJOYW1lXCI6IFwiZGVmYXVsdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcIk9wZW5TaGlmdFJvdXRlXCJcbiAgICAgIH0sXG4gICAgICBcInpvbmVzXCI6IFtcbiAgICAgICAgXCJaMDQwMTU1OTJRSlgzRUsxWVlZWVlcIlxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcImV4dGVybmFsZG5zLm9sbS5vcGVuc2hpZnQuaW8vdjFhbHBoYTFcIixcbiAgICBcImtpbmRcIjogXCJFeHRlcm5hbEROU1wiLFxuICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgXCJuYW1lXCI6IFwic2FtcGxlLWF6dXJlXCJcbiAgICB9LFxuICAgIFwic3BlY1wiOiB7XG4gICAgICBcImRvbWFpbnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJmaWx0ZXJUeXBlXCI6IFwiSW5jbHVkZVwiLFxuICAgICAgICAgIFwibWF0Y2hUeXBlXCI6IFwiRXhhY3RcIixcbiAgICAgICAgICBcIm5hbWVcIjogXCJ0ZXN0LWF6dXJlMS5xZS5henVyZS5kZXZjbHVzdGVyLm9wZW5zaGlmdC5jb21cIlxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgXCJwcm92aWRlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIkF6dXJlXCJcbiAgICAgIH0sXG4gICAgICBcInNvdXJjZVwiOiB7XG4gICAgICAgIFwib3BlbnNoaWZ0Um91dGVPcHRpb25zXCI6IHtcbiAgICAgICAgICBcInJvdXRlck5hbWVcIjogXCJkZWZhdWx0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwiT3BlblNoaWZ0Um91dGVcIlxuICAgICAgfSxcbiAgICAgIFwiem9uZXNcIjogW1xuICAgICAgICBcIi9zdWJzY3JpcHRpb25zLzUzYjRmNTUxLWYwZmMtNGJlYS04Y2JhLTExMTExMTExMTExL3Jlc291cmNlR3JvdXBzL3Rlc3QtYXp1cmUxLW54a3htLXJnL3Byb3ZpZGVycy9NaWNyb3NvZnQuTmV0d29yay9kbnN6b25lcy90ZXN0LWF6dXJlMS5xZS5henVyZS5kZXZjbHVzdGVyLm9wZW5zaGlmdC5jb21cIlxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcImV4dGVybmFsZG5zLm9sbS5vcGVuc2hpZnQuaW8vdjFhbHBoYTFcIixcbiAgICBcImtpbmRcIjogXCJFeHRlcm5hbEROU1wiLFxuICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgXCJuYW1lXCI6IFwic2FtcGxlLWJsdWVjYXRcIlxuICAgIH0sXG4gICAgXCJzcGVjXCI6IHtcbiAgICAgIFwiZG9tYWluc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImZpbHRlclR5cGVcIjogXCJJbmNsdWRlXCIsXG4gICAgICAgICAgXCJtYXRjaFR5cGVcIjogXCJFeGFjdFwiLFxuICAgICAgICAgIFwibmFtZVwiOiBcIm15em9uZWRvbWFpbi5jb21cIlxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgXCJwcm92aWRlclwiOiB7XG4gICAgICAgIFwiYmx1ZUNhdFwiOiB7XG4gICAgICAgICAgXCJjb25maWdGaWxlXCI6IHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBcImJsdWVjYXQtY29uZmlnXCJcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcIkJsdWVDYXRcIlxuICAgICAgfSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJvcGVuc2hpZnRSb3V0ZU9wdGlvbnNcIjoge1xuICAgICAgICAgIFwicm91dGVyTmFtZVwiOiBcImRlZmF1bHRcIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjogXCJPcGVuU2hpZnRSb3V0ZVwiXG4gICAgICB9XG4gICAgfVxuICB9LFxuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiZXh0ZXJuYWxkbnMub2xtLm9wZW5zaGlmdC5pby92MWFscGhhMVwiLFxuICAgIFwia2luZFwiOiBcIkV4dGVybmFsRE5TXCIsXG4gICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICBcIm5hbWVcIjogXCJzYW1wbGUtZ2NwXCJcbiAgICB9LFxuICAgIFwic3BlY1wiOiB7XG4gICAgICBcImRvbWFpbnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJmaWx0ZXJUeXBlXCI6IFwiSW5jbHVkZVwiLFxuICAgICAgICAgIFwibWF0Y2hUeXBlXCI6IFwiRXhhY3RcIixcbiAgICAgICAgICBcIm5hbWVcIjogXCJ0ZXN0LWdjcDEucWUuZ2NwLmRldmNsdXN0ZXIub3BlbnNoaWZ0LmNvbVwiXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBcInByb3ZpZGVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiR0NQXCJcbiAgICAgIH0sXG4gICAgICBcInNvdXJjZVwiOiB7XG4gICAgICAgIFwib3BlbnNoaWZ0Um91dGVPcHRpb25zXCI6IHtcbiAgICAgICAgICBcInJvdXRlck5hbWVcIjogXCJkZWZhdWx0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwiT3BlblNoaWZ0Um91dGVcIlxuICAgICAgfSxcbiAgICAgIFwiem9uZXNcIjogW1xuICAgICAgICBcInRlc3QtZ2NwMS1xNm01di1wcml2YXRlLXpvbmVcIlxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcImV4dGVybmFsZG5zLm9sbS5vcGVuc2hpZnQuaW8vdjFhbHBoYTFcIixcbiAgICBcImtpbmRcIjogXCJFeHRlcm5hbEROU1wiLFxuICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgXCJuYW1lXCI6IFwic2FtcGxlLWluZm9ibG94XCJcbiAgICB9LFxuICAgIFwic3BlY1wiOiB7XG4gICAgICBcImRvbWFpbnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJmaWx0ZXJUeXBlXCI6IFwiSW5jbHVkZVwiLFxuICAgICAgICAgIFwibWF0Y2hUeXBlXCI6IFwiRXhhY3RcIixcbiAgICAgICAgICBcIm5hbWVcIjogXCJteXpvbmVkb21haW4uY29tXCJcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFwicHJvdmlkZXJcIjoge1xuICAgICAgICBcImluZm9ibG94XCI6IHtcbiAgICAgICAgICBcImNyZWRlbnRpYWxzXCI6IHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBcImluZm9ibG94LWNyZWRlbnRpYWxzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZ3JpZEhvc3RcIjogXCIxMDAuMTAwLjEwMC4xMDBcIixcbiAgICAgICAgICBcIndhcGlQb3J0XCI6IDQ0MyxcbiAgICAgICAgICBcIndhcGlWZXJzaW9uXCI6IFwiMi4xMi4yXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwiSW5mb2Jsb3hcIlxuICAgICAgfSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJvcGVuc2hpZnRSb3V0ZU9wdGlvbnNcIjoge1xuICAgICAgICAgIFwicm91dGVyTmFtZVwiOiBcImRlZmF1bHRcIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjogXCJPcGVuU2hpZnRSb3V0ZVwiXG4gICAgICB9XG4gICAgfVxuICB9LFxuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiZXh0ZXJuYWxkbnMub2xtLm9wZW5zaGlmdC5pby92MWJldGExXCIsXG4gICAgXCJraW5kXCI6IFwiRXh0ZXJuYWxETlNcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcInNhbXBsZS1hd3NcIlxuICAgIH0sXG4gICAgXCJzcGVjXCI6IHtcbiAgICAgIFwiZG9tYWluc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImZpbHRlclR5cGVcIjogXCJJbmNsdWRlXCIsXG4gICAgICAgICAgXCJtYXRjaFR5cGVcIjogXCJFeGFjdFwiLFxuICAgICAgICAgIFwibmFtZVwiOiBcInRlc3RleHRkbnNvcGVyYXRvci5hcGFjc2hpZnQuc3VwcG9ydFwiXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBcInByb3ZpZGVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiQVdTXCJcbiAgICAgIH0sXG4gICAgICBcInNvdXJjZVwiOiB7XG4gICAgICAgIFwib3BlbnNoaWZ0Um91dGVPcHRpb25zXCI6IHtcbiAgICAgICAgICBcInJvdXRlck5hbWVcIjogXCJkZWZhdWx0XCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwiT3BlblNoaWZ0Um91dGVcIlxuICAgICAgfSxcbiAgICAgIFwiem9uZXNcIjogW1xuICAgICAgICBcIlowNDAxNTU5MlFKWDNFSzFZWVlZWVwiXG4gICAgICBdXG4gICAgfVxuICB9LFxuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwiZXh0ZXJuYWxkbnMub2xtLm9wZW5zaGlmdC5pby92MWJldGExXCIsXG4gICAgXCJraW5kXCI6IFwiRXh0ZXJuYWxETlNcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcInNhbXBsZS1henVyZVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJkb21haW5zXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZmlsdGVyVHlwZVwiOiBcIkluY2x1ZGVcIixcbiAgICAgICAgICBcIm1hdGNoVHlwZVwiOiBcIkV4YWN0XCIsXG4gICAgICAgICAgXCJuYW1lXCI6IFwidGVzdC1henVyZTEucWUuYXp1cmUuZGV2Y2x1c3Rlci5vcGVuc2hpZnQuY29tXCJcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFwicHJvdmlkZXJcIjoge1xuICAgICAgICBcInR5cGVcIjogXCJBenVyZVwiXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcIm9wZW5zaGlmdFJvdXRlT3B0aW9uc1wiOiB7XG4gICAgICAgICAgXCJyb3V0ZXJOYW1lXCI6IFwiZGVmYXVsdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcIk9wZW5TaGlmdFJvdXRlXCJcbiAgICAgIH0sXG4gICAgICBcInpvbmVzXCI6IFtcbiAgICAgICAgXCIvc3Vic2NyaXB0aW9ucy81M2I0ZjU1MS1mMGZjLTRiZWEtOGNiYS0xMTExMTExMTExMS9yZXNvdXJjZUdyb3Vwcy90ZXN0LWF6dXJlMS1ueGt4bS1yZy9wcm92aWRlcnMvTWljcm9zb2Z0Lk5ldHdvcmsvZG5zem9uZXMvdGVzdC1henVyZTEucWUuYXp1cmUuZGV2Y2x1c3Rlci5vcGVuc2hpZnQuY29tXCJcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIHtcbiAgICBcImFwaVZlcnNpb25cIjogXCJleHRlcm5hbGRucy5vbG0ub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJFeHRlcm5hbEROU1wiLFxuICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgXCJuYW1lXCI6IFwic2FtcGxlLWF6dXJlLXByaXZhdGVcIlxuICAgIH0sXG4gICAgXCJzcGVjXCI6IHtcbiAgICAgIFwiZG9tYWluc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcImZpbHRlclR5cGVcIjogXCJJbmNsdWRlXCIsXG4gICAgICAgICAgXCJtYXRjaFR5cGVcIjogXCJFeGFjdFwiLFxuICAgICAgICAgIFwibmFtZVwiOiBcInRlc3QtYXp1cmUxLnFlLmF6dXJlLmRldmNsdXN0ZXIub3BlbnNoaWZ0LmNvbVwiXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBcInByb3ZpZGVyXCI6IHtcbiAgICAgICAgXCJ0eXBlXCI6IFwiQXp1cmVcIlxuICAgICAgfSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJvcGVuc2hpZnRSb3V0ZU9wdGlvbnNcIjoge1xuICAgICAgICAgIFwicm91dGVyTmFtZVwiOiBcImRlZmF1bHRcIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjogXCJPcGVuU2hpZnRSb3V0ZVwiXG4gICAgICB9LFxuICAgICAgXCJ6b25lc1wiOiBbXG4gICAgICAgIFwiL3N1YnNjcmlwdGlvbnMvNTNiNGY1NTEtZjBmYy00YmVhLThjYmEtMTExMTExMTExMTEvcmVzb3VyY2VHcm91cHMvdGVzdC1henVyZTEtbnhreG0tcmcvcHJvdmlkZXJzL01pY3Jvc29mdC5OZXR3b3JrL3ByaXZhdGVEbnNab25lcy90ZXN0LWF6dXJlMS5xZS5henVyZS5kZXZjbHVzdGVyLm9wZW5zaGlmdC5jb21cIlxuICAgICAgXVxuICAgIH1cbiAgfSxcbiAge1xuICAgIFwiYXBpVmVyc2lvblwiOiBcImV4dGVybmFsZG5zLm9sbS5vcGVuc2hpZnQuaW8vdjFiZXRhMVwiLFxuICAgIFwia2luZFwiOiBcIkV4dGVybmFsRE5TXCIsXG4gICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICBcIm5hbWVcIjogXCJzYW1wbGUtYmx1ZWNhdFwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJkb21haW5zXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZmlsdGVyVHlwZVwiOiBcIkluY2x1ZGVcIixcbiAgICAgICAgICBcIm1hdGNoVHlwZVwiOiBcIkV4YWN0XCIsXG4gICAgICAgICAgXCJuYW1lXCI6IFwibXl6b25lZG9tYWluLmNvbVwiXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBcInByb3ZpZGVyXCI6IHtcbiAgICAgICAgXCJibHVlQ2F0XCI6IHtcbiAgICAgICAgICBcImNvbmZpZ0ZpbGVcIjoge1xuICAgICAgICAgICAgXCJuYW1lXCI6IFwiYmx1ZWNhdC1jb25maWdcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwiQmx1ZUNhdFwiXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcIm9wZW5zaGlmdFJvdXRlT3B0aW9uc1wiOiB7XG4gICAgICAgICAgXCJyb3V0ZXJOYW1lXCI6IFwiZGVmYXVsdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcIk9wZW5TaGlmdFJvdXRlXCJcbiAgICAgIH1cbiAgICB9XG4gIH0sXG4gIHtcbiAgICBcImFwaVZlcnNpb25cIjogXCJleHRlcm5hbGRucy5vbG0ub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJFeHRlcm5hbEROU1wiLFxuICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgXCJuYW1lXCI6IFwic2FtcGxlLWdjcFwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJkb21haW5zXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwiZmlsdGVyVHlwZVwiOiBcIkluY2x1ZGVcIixcbiAgICAgICAgICBcIm1hdGNoVHlwZVwiOiBcIkV4YWN0XCIsXG4gICAgICAgICAgXCJuYW1lXCI6IFwidGVzdC1nY3AxLnFlLmdjcC5kZXZjbHVzdGVyLm9wZW5zaGlmdC5jb21cIlxuICAgICAgICB9XG4gICAgICBdLFxuICAgICAgXCJwcm92aWRlclwiOiB7XG4gICAgICAgIFwidHlwZVwiOiBcIkdDUFwiXG4gICAgICB9LFxuICAgICAgXCJzb3VyY2VcIjoge1xuICAgICAgICBcIm9wZW5zaGlmdFJvdXRlT3B0aW9uc1wiOiB7XG4gICAgICAgICAgXCJyb3V0ZXJOYW1lXCI6IFwiZGVmYXVsdFwiXG4gICAgICAgIH0sXG4gICAgICAgIFwidHlwZVwiOiBcIk9wZW5TaGlmdFJvdXRlXCJcbiAgICAgIH0sXG4gICAgICBcInpvbmVzXCI6IFtcbiAgICAgICAgXCJ0ZXN0LWdjcDEtcTZtNXYtcHJpdmF0ZS16b25lXCJcbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIHtcbiAgICBcImFwaVZlcnNpb25cIjogXCJleHRlcm5hbGRucy5vbG0ub3BlbnNoaWZ0LmlvL3YxYmV0YTFcIixcbiAgICBcImtpbmRcIjogXCJFeHRlcm5hbEROU1wiLFxuICAgIFwibWV0YWRhdGFcIjoge1xuICAgICAgXCJuYW1lXCI6IFwic2FtcGxlLWluZm9ibG94XCJcbiAgICB9LFxuICAgIFwic3BlY1wiOiB7XG4gICAgICBcImRvbWFpbnNcIjogW1xuICAgICAgICB7XG4gICAgICAgICAgXCJmaWx0ZXJUeXBlXCI6IFwiSW5jbHVkZVwiLFxuICAgICAgICAgIFwibWF0Y2hUeXBlXCI6IFwiRXhhY3RcIixcbiAgICAgICAgICBcIm5hbWVcIjogXCJteXpvbmVkb21haW4uY29tXCJcbiAgICAgICAgfVxuICAgICAgXSxcbiAgICAgIFwicHJvdmlkZXJcIjoge1xuICAgICAgICBcImluZm9ibG94XCI6IHtcbiAgICAgICAgICBcImNyZWRlbnRpYWxzXCI6IHtcbiAgICAgICAgICAgIFwibmFtZVwiOiBcImluZm9ibG94LWNyZWRlbnRpYWxzXCJcbiAgICAgICAgICB9LFxuICAgICAgICAgIFwiZ3JpZEhvc3RcIjogXCIxMDAuMTAwLjEwMC4xMDBcIixcbiAgICAgICAgICBcIndhcGlQb3J0XCI6IDQ0MyxcbiAgICAgICAgICBcIndhcGlWZXJzaW9uXCI6IFwiMi4xMi4yXCJcbiAgICAgICAgfSxcbiAgICAgICAgXCJ0eXBlXCI6IFwiSW5mb2Jsb3hcIlxuICAgICAgfSxcbiAgICAgIFwic291cmNlXCI6IHtcbiAgICAgICAgXCJvcGVuc2hpZnRSb3V0ZU9wdGlvbnNcIjoge1xuICAgICAgICAgIFwicm91dGVyTmFtZVwiOiBcImRlZmF1bHRcIlxuICAgICAgICB9LFxuICAgICAgICBcInR5cGVcIjogXCJPcGVuU2hpZnRSb3V0ZVwiXG4gICAgICB9XG4gICAgfVxuICB9XG5dIiwiY2FwYWJpbGl0aWVzIjoiQmFzaWMgSW5zdGFsbCIsImNlcnRpZmllZCI6ImZhbHNlIiwiY29udGFpbmVySW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vZWRvL2V4dGVybmFsLWRucy1yaGVsOS1vcGVyYXRvckBzaGEyNTY6ZTEzYTJiYWQ1YTZjNWNlYTZmODVjYTYzOGJmYzZkZTk5YzMwMWU1ZGZhYTE2NDg3MzhlMzI3MmNmOTVlZDE3NyIsImNyZWF0ZWRBdCI6IjIwMjYtMDYtMTZUMTY6MzY6MjEiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2Rpc2Nvbm5lY3RlZCI6InRydWUiLCJmZWF0dXJlcy5vcGVyYXRvcnMub3BlbnNoaWZ0LmlvL2ZpcHMtY29tcGxpYW50IjoidHJ1ZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vcHJveHktYXdhcmUiOiJ0cnVlIiwiZmVhdHVyZXMub3BlcmF0b3JzLm9wZW5zaGlmdC5pby90bHMtcHJvZmlsZXMiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1hd3MiOiJmYWxzZSIsImZlYXR1cmVzLm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdG9rZW4tYXV0aC1henVyZSI6ImZhbHNlIiwiZmVhdHVyZXMub3BlcmF0b3JzLm9wZW5zaGlmdC5pby90b2tlbi1hdXRoLWdjcCI6ImZhbHNlIiwib2xtLnNraXBSYW5nZSI6Ilx1MDAzYzEuMy42Iiwib3BlcmF0b3JmcmFtZXdvcmsuaW8vc3VnZ2VzdGVkLW5hbWVzcGFjZSI6ImV4dGVybmFsLWRucy1vcGVyYXRvciIsIm9wZXJhdG9ycy5vcGVuc2hpZnQuaW8vdmFsaWQtc3Vic2NyaXB0aW9uIjoiW1wiT3BlblNoaWZ0IEt1YmVybmV0ZXMgRW5naW5lXCIsIFwiT3BlblNoaWZ0IENvbnRhaW5lciBQbGF0Zm9ybVwiLCBcIk9wZW5TaGlmdCBQbGF0Zm9ybSBQbHVzXCJdIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL2J1aWxkZXIiOiJvcGVyYXRvci1zZGstdjEuMTYuMCtnaXQiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vcHJvamVjdF9sYXlvdXQiOiJnby5rdWJlYnVpbGRlci5pby92MyIsInJlcG9zaXRvcnkiOiJodHRwczovL2dpdGh1Yi5jb20vb3BlbnNoaWZ0L2V4dGVybmFsLWRucy1vcGVyYXRvciIsInN1cHBvcnQiOiJSZWQgSGF0LCBJbmMuIn0sIm5hbWUiOiJleHRlcm5hbC1kbnMtb3BlcmF0b3IudjEuMy42IiwibmFtZXNwYWNlIjoiZXh0ZXJuYWwtZG5zLW9wZXJhdG9yIn0sInNwZWMiOnsiYXBpc2VydmljZWRlZmluaXRpb25zIjp7fSwiY3VzdG9tcmVzb3VyY2VkZWZpbml0aW9ucyI6eyJvd25lZCI6W3siZGVzY3JpcHRpb24iOiJFeHRlcm5hbEROUyBkZXNjcmliZXMgYSBtYW5hZ2VkIEV4dGVybmFsRE5TIGNvbnRyb2xsZXIgaW5zdGFuY2UgZm9yIGEgY2x1c3Rlci4gVGhlIGNvbnRyb2xsZXIgaXMgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIGV4dGVybmFsIEROUyByZWNvcmRzIGluIHN1cHBvcnRlZCBETlMgcHJvdmlkZXJzIGJhc2VkIG9mZiBvZiBpbnN0YW5jZXMgb2Ygc2VsZWN0IEt1YmVybmV0ZXMgcmVzb3VyY2VzLiIsImRpc3BsYXlOYW1lIjoiRXh0ZXJuYWwgRE5TIiwia2luZCI6IkV4dGVybmFsRE5TIiwibmFtZSI6ImV4dGVybmFsZG5zZXMuZXh0ZXJuYWxkbnMub2xtLm9wZW5zaGlmdC5pbyIsInZlcnNpb24iOiJ2MWFscGhhMSJ9LHsiZGVzY3JpcHRpb24iOiJFeHRlcm5hbEROUyBkZXNjcmliZXMgYSBtYW5hZ2VkIEV4dGVybmFsRE5TIGNvbnRyb2xsZXIgaW5zdGFuY2UgZm9yIGEgY2x1c3Rlci4gVGhlIGNvbnRyb2xsZXIgaXMgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIGV4dGVybmFsIEROUyByZWNvcmRzIGluIHN1cHBvcnRlZCBETlMgcHJvdmlkZXJzIGJhc2VkIG9mZiBvZiBpbnN0YW5jZXMgb2Ygc2VsZWN0IEt1YmVybmV0ZXMgcmVzb3VyY2VzLiIsImRpc3BsYXlOYW1lIjoiRXh0ZXJuYWwgRE5TIiwia2luZCI6IkV4dGVybmFsRE5TIiwibmFtZSI6ImV4dGVybmFsZG5zZXMuZXh0ZXJuYWxkbnMub2xtLm9wZW5zaGlmdC5pbyIsInZlcnNpb24iOiJ2MWJldGExIn1dfSwiZGVzY3JpcHRpb24iOiJUaGUgRXh0ZXJuYWxETlMgT3BlcmF0b3IgZGVwbG95cyBhbmQgbWFuYWdlcyBFeHRlcm5hbEROUywgd2hpY2ggZHluYW1pY2FsbHkgbWFuYWdlcyBETlMgcmVjb3JkcyBpbiBleHRlcm5hbCBETlMgUHJvdmlkZXJzIGZvciBzcGVjaWZpYyBLdWJlcm5ldGVzIHJlc291cmNlcy5cblxuIyMgSG93IGl0IHdvcmtzXG4gRm9sbG93IHRoaXMgbGluayB0byBnZXQgYW4gaWRlYSBvZiBob3cgRXh0ZXJuYWxETlMgT3BlcmF0b3Igd29ya3M6IFtmbG93IGRpYWdyYW1dKGh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9vcGVuc2hpZnQvZXh0ZXJuYWwtZG5zLW9wZXJhdG9yL21haW4vZG9jcy9pbWFnZXMvZXh0ZXJuYWwtZG5zLWZsb3ctb3BlbnNoaWZ0LnBuZykuIiwiZGlzcGxheU5hbWUiOiJFeHRlcm5hbEROUyBPcGVyYXRvciIsImljb24iOlt7ImJhc2U2NGRhdGEiOiJpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBRzRBQUFCMUNBTUFBQUNZbENTUkFBQUFCR2RCVFVFQUFMR1BDL3hoQlFBQUFBRnpVa2RDQUs3T0hPa0FBQU1BVUV4VVJRQUFBQ2hiZ1JkT2R5aGJnU3RkZ3g1VGV5aGJnU2hiZ1NoYmdTaGJnU0pYZmlCVmZDVlpnQ2hiZ1NoYmdTaGJnU2hiZ1NoYmdTaGJnU2hiZ1NoYmdTaGJnU2hiZ1NoYmdTaGJnU2hiZ1NoYmdTaGJnU2hiZ1NoYmdTaGJnU2hiZ1NoYmdTaGJnU2hiZ1NoYmdTaGJnU2hiZ1NoYmdTaGJnZi8vLy8vKy9pdGRnL3o5L3Z6OS9TaGJnZjMrL2lsY2docFFlU3BkZ3JyaDVQNysvK3B3YjduZzR4aFBlRlY5bkphdnd1bHhjUDcvLy92OC9OYmIzUnhTZXZiNSt2cjcrK1hvNnVyczdjYk4wYm5CeHFleXQ2M1QxN2EvdzZPdHM1NnFzUEwwOWV4eWNPUG02Sm1vcnV6dThQUDI5K2pxN0YrSmx2MzgvSU9scmtWeGtqdHFqYk83d0xMWTNHUjNnY0hJelBiMytJcWtxOURWMk5MWDJyekV5TXJaNExYYzM2ak8wL1c3dXUveDh2Zkt5bCtOblp5c3N5UllmL0R6OVhlWXNObmU0SStqcXJ2ajVxMjN2ZHJsNnZPdHJJK3V0Wkt6dWNYTHoxbUZsTFhIMU95RmhQR2twUGJDd3V2eDlPK1RrNnF6dWFYTHoyQ0dvazEzbDIyT21leC9mcDNEeUpHcXNNblAwLzcxOVlXVG1uU0VqYUhHeStEbzdaVzV2elZsaVZ5Sm1Oemc0cG0reEhhVm4rdDZlZjc1K3VsdmJzWFUyNlM2ditEazVzdlIxUHZnNElTZ3FWK0drMmFMbDI1eGZJcWdxS0sreEZwcGMzdWVwOXByYTYvRnpadTd3bTZScTZtOXpZaXBzWVNodDVhanF2Q2VuZTZLaWVKdGJZbXV0bithcEo2eXVGMXdlMytocW5lWm82U3d0bkIraDIrVG5hckF4THhvYXViczhXYUxwbzZwdmUyT2pvcURpV2w3aFpHZnBvbG9iOU5wYXRYaDU0Q2RwWFdxdXpwTVdmcisvbUNBakpHMnZGaCtqSlN0d1NwZGdpNWZoWW1sdXJyTDE3N08yZStabUtHM3lIMmNzNDZhb2RIZTVJS1BsN0hPMG1tYXFuZHZlVXh4ZjBKY2FMQm5hK1h3OHZTMHROenE3SW1Ybm5GcGM1TnhkbG1Bbm5xSmtWSjdtczdUMXF1MXVyWFUySDFxYzNpUm1zZG5hV2lGajZobGFURmloNTIweHIzZjRwTmZaWFJoYWZqUHo0TjNmdnpwNkpDT2xJcXp2MUJlYWJ6WTMyUlpZYVdMajVobGEwdHFkL3ZtNWIzUjEwOTNoZnJhMmRSMmQ2bXRzN2lPa3RXR2lOeUxpMHBCd0dZQUFBQW9kRkpPVXdCWi92ejkvYWtCQXdUOS92ME9pSmNnRnNRSEt0bGhvL2RLMFBIaHVlZzBkSDFCN1R1eGExTHJaSDBoQUFBT3VFbEVRVlJvM3UxYmQxeFQyYmFPazJRSUJBVUxPUGFPZTBMS1NRUWNURUlDSkNFaG9RdzFBZW1nZ0xTQUZGRkFtaWlnSUNKSUVSU3hvcUNPZFd4WG5aKzk5ektLZmVaTzcrWE92ZSs5ZlU2Q0U1UVVrdmordXV1Zm5OVHZyTFcrdGM3WmUzM0I0ZjVyL2N5Q1pJa1p5Y0xpM1dOWmFtSllrdDRwR0FuRnNoM2pNTXpHWnRqa21hTXMzNFEzcjJmd2wwZE5HVEdPd2FTZ3hzRGIyVXkxaExGOVJ5bXp3RTJmZ1dkUWFHUXU0dklld2lYUG8xQm9ZKzB0VlQ2YlA0NjI3OU9ZVERMQ0NOeVh1T25zcFEyUGwzT0plQWc0QmpzVDg0S1JjRU9IZmNBZ0VMbEx2a3lsQXBYbFp1MWpJQkJ3eGlqekFzTDBXQXdaenlCWUlaK2ZaME1jT3BYTnBqb0NNQWVrSnM3akVoZ2ZEQnRxdmhTaVp6NXBCSTFpN1JMWVJvVlFkTFZ6Nk9FY2NHVXgxNHJBR0c5dllhWVV3bDhaYm9ObkVwQXorMzJCWTE4ZzFZWSt6d3Awc1NiUVJrdzNSMFJoakVaT25zWWdrTWtibGtGM3dGdm02QWpjUGp1RDRKbjQwYmFtUmhROTN6RjJOSUkxc3FRV3pQbzdqUDBNdnJ4c0E1bElZSXliUEJMbGxDbGdvMmJRS0hoaytVWTJjQndZVEpWREVQa1lzU0xRN0diaWpFNGgvQjVHZnE3MXB0d0I0NmdCNkFpb0c0UFFvcGhnWkZHZzVMZWZpSkovOFZFSU5nZm9OcGpDK1dldDBhS3dHVDc0RkdJZGF3Uk1ta3ZnT1N3N2VtME8vRkRxUGk2WndKam9NTmkraG5hczBUUW1Iam56a1J0NjRnWVpqQ2c0anhYRjJLbURpU2hrMThncDQyREhJaWN1MDVPMHR5S3ErSEk1bXNMM0RTNEs5R016SWZtdGtObVJtajNFSUlNZi95UnhIbG9VVTRZYVVoUVkrU2VnNUEvYVNBZURCRk1YeFpYUFlWK2pqUitpdnlpZ2E4TnRVUExUTnMwM09HbHZwWkRlaGhYRmlFbDZJZ3JKNzRDU243c3YxUUR5NjBpaDczNG1sOERFdzZMUTRhQWxicFNLL09lQkVYRjhvNi90STZKRk1VUXJIblRjSHNZUitlSkxOeVBqcUpsQ0FHcVhvRVZoQSs5bXRFUnlDblNObVBqSm9NaXZJNks4aTJlSUJOcUVvUVBpa1hERGFBVHk4dk1RYkJZd2g4SHIvYkxQWGVDVmNDQThFczZCUnVBR0xnTnNPakNUemFLQ1ZZa0lnVGJENHEzN2JSSnVLcDVDWENJQld1TklaMnZQbEk2SWJvSjR3M0J2MUFPODF0Z3hyWUo4dEtNQm5zajM5YkhDVTVEMDl6dHprM1FWNFFhSU4vVU5QRFJ4ZUZvazBNVVJUeVc5RDFEdTJmNWNvczRRVHlGMjEwRlJzR29KbVRsMlpMLzB3UXZBT0FxeUg3QjFwU0pXTEVtSlZSMG0vSEM4VWFvNjlPRDBCdXNrRElpMHh0TWMrcmtIbldOWUJmb0NYWlQwY1JldDhmQlV3MTAvZnBLUEhVbkU3bUsrSDFVbjNpV0VNcGFrNFI3TTNIZ0tjbEZuS0lGVTRDZjJFYXZjQy83dFpxZ0NPMUpHekEydVM5SDFSWGpWcFZqVHhtaTRSOEtOWVZndnp3VTZTNEFxU0JMTnJWVEJyYmwxNHBFcThMMCtBdjRUanU2Q0IvdTRGSnQrY0RZVUpCSG82U1dWd1pJK1RpejZ6NHNIZkRWaEsva0N0dTV5QitlSVRMdCtaQm5MNUdicGc2T3FQSFB2RlFsS0R4NDhKRXVSVjJJQmxmam82WjhnZC9rOC9LalhjUEN1ZkJ5TnNRd1kwRTRVdllLRTFmbFBvOXJUaFNIUnpla3lFZCtRZmcxbUU1bEQ0UFdtRDI0U1kxN1FmRzF3c1hLTzJtOWVjY0xxcHl5V3MzTjBjbkE2eTVuRkNtbGVtdUxYZHlhVlBscVR0NEZMbWZJYURtVUtlWWtqR1BoeXF2RGEyWmlBUlUzYXZhTTV4Qm0xa0xEa1V5enNxRHdqVEk2bHJxNHB4VXVxTFhsbkVjZ1Z5OWRYMVprTThtTXRhTUJkOE5QeDA1M1E4MTdadFhSeFdCU0xGUlZkbmhGUWxSOEMzYXVRTmVXbmQ4TUdJeTI0SHQzaE9mQXZzTUZuNzFGR2E4QU5ZUkpuYTRzbGI5R3U0L0VuT2puS0hUODVoNG0yQzhzREN2d3pWNnhZNGQrNDYxUkl4cE9tZkZhN2pEKzM1OC9qMXh1VHRNRjk5QjdsZlFQaGdLVDc1SzBUWDdYcytLZXpzekE5WUhkbTVzblFHOCtlM1ZoM2NzV0t4b0QwcWloblZsSFpMeTBuYnI3MG9Kc0REb0NrMGwvMlh2NG5tck9BaHN4MXYrNWR2N1dtWnV2NkY2OXVOS3dvS0ljdnM5b2Y3djFSckpXa2c0VUQ3dDhmUk5HRXV6TkRmMTN2N2UyS21iZjMxdHZyNGh0T29YaExmLzYzOW04UEdvNHF1QllGMFFveUg3eHdjbldxY2NJTVBuZ2YrZFMvSWNQWk9VcTRLOG1NY0p3ZDZVMUZVYnN6bi8yMXBYQmw0WmFGcUJWdVdWbTRzTkQxSy8rR3FwQ3dwb3dFdHVsd1B1NDhGVG12TlNsM2RtUStPSklXc3prdU8rZHVYRnBjVGt6TzNaeTRtQU5iUDQxdnJCQUhiK3RROVdtNmdtNGNITjJYRFRqZFhzSHpZWE5lemNvNDF0RVErc0xwYmt4ZS9ZRTBDUGxOWEV4MlR0dzNPWnU5MTYrTGIwMC9GbDIrZ3c3b2xTSXZFUnU4V2NFR3dmRkVYc0c5VXI4NjJGQkUxMkI2V2pOL2RYWEtTOHZPemp1d01EczdlL09GQXhjdWJNNU9XK2w5dThFL0g3Ni8xaDJ3ZThPbGZFNUVpcnN4d1dUN2NDSUVYckNZRkFKSXkraUcwQ1BlVHRuMTM5WEhyQ3lNcS8rOVBzMjFNTzczMzc4cGROcjZMRDRBTnRCdEhqRDRJaSt2NERWOHRuRzU0NitwOC9PWkJlcFd3MTlMei96VXliVW01c09jdUkvdkxpeXB2L3V2VlhscElDNG1wdERKKzVWL0FXeWw1ZDBRTHNtUDcyYzBWWHpraTdwaDIrMXRnKzE0MStuYjNoQnUxWmFWMy8xclMwbE96WVdQMDlJK3pDbXNnZlYzNUJBYVRXRXlEL0Fpdkx6VzBFMG9CQVdrWnNRMWVLbHBoTEZFNFE1NDE5Y2ZnSEI1SDZldGpGdjFYVGFzOTYwM1ZsUXNZRVd0alFWc2FTelY1TG9UUFMwdkYvcXZXKytLZWVkZGoza0g0V3BjTjM5WGNxREcxZW5UK0czQ0N1RmFQL09VdWFpNVU1Ymh2MjRyQnJjNXV5Um5vZHE3dkMxeEgrWmhjRHZEbm9UdGxKb0xUdGJab1lLN3U2cWtwSDdMd3BJWUZPNUNTVW5KTnl1ZFZIQ0NWblBCZVQ0dHFvakdndWxhZUdIemhVSW4xLy85NjhWZkJ3cFg1bTNPZzJnb1hJZXdJbnF0dXpuZzZMMzNyN0VXUkRWMjdkM3E1TzFVVTFPemZ1L0Q3dzhmdnZydHEvWHdDU1JtelpFSG1SVUxGa1JWYzB5RmswUWtYeTM3K3VzOUxHSEZ5WmRYRHo3Y3U5N0plKy9Cc3Z4VEZhZTJSVDgvZU5zSll0MStlUEQ1eVYxVkljS2U3MlVDVHc3UGVEaTJMUDc2elZ0ZmYvVm81N0VkdFhmY2NpTjNmUC93MVRObGNsRjE5Y3VUMFdIRkIxKzllbGk2K2txdTI1MC9Nbzd0L3ZyYlc3L2QzSjZpTUJwT2t2eFQ0cTU3a1cxN0l1KzRZUy84NHc1OEluN2VubDllVkZSVmNIalBuclpVdHpucWQycjN0RjI1MTdINmlkUm9PS3BvVWNHeGYyRGtGS2l1ZTVleEc4QW55V0ZOVFFuaGFPL24rUGI3eHVyVFRSTGpjOGVya3kvRmtpRzdYRHpYdzg5RDN0SmRweENKSk1wT3BVREFWd1FIKzRRZTVoY0wrRkpCc1JydU1OOGtaa3BWY09LV3N2QlE1YUhnbHRKSFhsMWQzVDMzUFZ2S1NydTd1cnhDTDBkMEhicDZ1VXV1aGxNQ3M4Q2RLSk9HaWtLRGU1U2hWMXV1QnZmMGNubzh5MHJoMGFId2lGdWw0dUtlVWhVam04MERseUs3SDN3NHRFelpGYnFvOTlDajhQdWN5bExsWlk5RGp6aWRvUkdQeWp5RCsrRDJtQXlIVVlYbjVwdDZwZGFINmdQWHhiRit2Tng3UjFNVkNoREw1L0hnazlySTFEcDF1ZTN4TUEyT3Z6MFYxb0RidmF5MXV3dDJCN1RkWTZOUDJyYjMzT2pwK09NTy9JYnYwZWJXM1FXTjZYL2NnYWZsZTJWbnNXbHdDa0gxOXViMmdPMEpYazBod29yZGYrNXFiNjgrL2VkdkR4NjAzRHg5T3FBNW8rQjBhNVZ3VzZubjB1M3B6Um5IMXZadFRSamRNeVdkS1FsZGNsaE04cVVoQ3pwU3lsb0RxaHY4L2RFbFNVTkJRTUJMOGVGODUyMU5jR1ZYZDc5YmR0L2Q1Qll0NFZlS09WSjBwYmhtYlhtNjEvWVFkTUZWbE5GUmxTOTBaaTJva2gycjJwa0FUMFlSMnl1V2N2eE1ocU43aUtYRk11eTA2NUpiVDBXcmw1T2Q3YXJsWkZGcmRRUktFNThFVHFVczNPUUxrQ0o0VWF4Y29NN0lvcCsvRGNpSDYwbVdNRmtVQUIrY2hUK1UzWGlpZXM5UHJIVDM4blF6Q0c0bWsvaDQ0QzBqdmdlYkxsV3puSDc1cS8vNXRtbnROaGpIVXp1TG9vdTJ0VmIvdVBjWDJldGRBcDZiSjhlQTFhdHFiYTUvQjBGNTYwUkxCTSt2T0VVV0ZoYldsTHpETTBueTc1OVAvTmpiYnhrKzROcDh2NHZHMnB5RW04NndDbFFBUFp1MFBpL2pNdytwSEdYekZEd3M5cnpRbTllZngrcmJ0a1YzeFlacGJIVFlmbUI5NWhOOSt5b1I4Y2V2Sjd6NTR1SDQ0N3ZrZXZkVkZoT1o5aHB3SSswWTVGcWdaM2RkRVBCVWZUdkM1ckY1UE5WQ0lOei9oOW9VUFh2RVFCRmt4WmorOTZZWUNmYytCVG1yYjVNcXFYT1JTSVdSVk13SjcxVXRWM2tKMWVLNWV2YmNRZVE4eGtTTi9XOUxuRDFNSGcvb0dZdkVTdFZMbTE3UFlxVmNYV1M4Skw3ZTFHMUNLRFA2N1dmYWptTVN6d0ZEeHdlOW5oNXllYmloRXd3d0g4YlNYbk83RmthVFNWd01ETjNTcit6MWtNK3ROSFNjQUw1RUtCT0hhKzR2a25CVGFVeGlscUh1VWFsS09aVnFxSE81MExrM3R2WXRjRE1ZVmtFU2cvMVR5b0hCemlVaWxHbTIvUWNsRnJoUjR5aGNHRTREOFpJNEJxS3h3VVV1Z1RiNXpia0ZDVGVaUm5DNXBHTVkvOVpZMXdDYnd3WlpaRHhqd3R0RElBdmNhQm9CU2Z3UW1HRzZwU0hBeUpwbnpSaHZPeERjeUJIUXY4VVNkREpsRmtQSGNwOXg4WXh4azNBRGpFUXRjRU1uMEFqY29Dd1RKNU9hWS92RkNKNHhiVHB1d0FFczlBL0cwNHE3MkpTNXE4WnNTM0tXUmlUUTdFYmhTRnFGV1E2cXFYS3VvVnpRemlUSGpVRXVlQXB0OUZBY1NjY1kyMVk5TTZjYXlsRnRncExabUtCa0RFNm5Nazh0aDdGQ0h0Y09XaEV3Z0RKZ3BMNUJmWi9ZaDZoTjdHUEkwUHlqTHhBOGsyYVlHQWlWTW8xR3BVeVV6M3dIUGRCR1UzNXVjRkludFZDTGdIY0p6QnFjN0FFbC8xRk15RFhSbm1TNFprVWxRME5UK1BuUlFjeTFJYm5tYnpKS3B2WmFaRGZ2VXE2QktZUnhaRzljYnF6ZUNCWGtxRlJVRjNrR3BCQ05RZTBTeEJvanZ6RnFLa3dqTmhiVGlKM1hxaEhUMUZSc0lKUFZXakhqcEZzdy9KWU9xQUtPcUtjb1VOSFAvak1JZ1lrZlBkd1VKVnlmdm85TDJhOWRMUU5QaEs3VytVMHlVZWZYcDE3RXV3UzEwUWZzYTJpWXJ5eEdVQlhqRURPb0dOSFlxSXRpSUtVVGZDSDNFdHF4VVBLVHpLSFJSSXRDcmVOQ3BTeU8vWHN4N3lKRy9obTI1aE9FcW5XMWVPUUwyTmZtektKU3FZNk9WQ3FxTkhFOEY0Z01Xb2RtVUFxbllrVVJkRGIxNzNqbWJseUNxdXltT1poZFBRd2pSWEtZeUtCWUk3VFpteTZlaTR3OHYzSC92aThRTXBPQnR4bitMclRSbUg1eUdpcUxSaEFpTks0TDBackN3SnRiTnR3dm9zTWRSbnpBb0ZDWURGVDV6V1RZRFh0WFlIMUZnYk8xdDVrdzFtNjgzWWpSa3llTnhKbUgvUG9FKzMzSnNuem4veEd3c0ZSaHdFZlN1LzlEUXQ4OTR2OFhra24yZjF0MjBQRm1KYzd2QUFBQUFFbEZUa1N1UW1DQyIsIm1lZGlhdHlwZSI6ImltYWdlL3BuZyJ9XSwiaW5zdGFsbCI6eyJzcGVjIjp7ImNsdXN0ZXJQZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyJjbG91ZGNyZWRlbnRpYWwub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJjcmVkZW50aWFsc3JlcXVlc3RzIiwiY3JlZGVudGlhbHNyZXF1ZXN0cy9maW5hbGl6ZXJzIiwiY3JlZGVudGlhbHNyZXF1ZXN0cy9zdGF0dXMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiY29uZmlnLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiaW5mcmFzdHJ1Y3R1cmVzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJleHRlcm5hbGRucy5vbG0ub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJleHRlcm5hbGRuc2VzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImV4dGVybmFsZG5zLm9sbS5vcGVuc2hpZnQuaW8iXSwicmVzb3VyY2VzIjpbImV4dGVybmFsZG5zZXMvZmluYWxpemVycyJdLCJ2ZXJicyI6WyJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsiZXh0ZXJuYWxkbnMub2xtLm9wZW5zaGlmdC5pbyJdLCJyZXNvdXJjZXMiOlsiZXh0ZXJuYWxkbnNlcy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwicGF0Y2giLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsicm91dGUub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJyb3V0ZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImF1dGhlbnRpY2F0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsidG9rZW5yZXZpZXdzIl0sInZlcmJzIjpbImNyZWF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJhdXRob3JpemF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsic3ViamVjdGFjY2Vzc3Jldmlld3MiXSwidmVyYnMiOlsiY3JlYXRlIl19XSwic2VydmljZUFjY291bnROYW1lIjoiZXh0ZXJuYWwtZG5zLW9wZXJhdG9yIn1dLCJkZXBsb3ltZW50cyI6W3sibmFtZSI6ImV4dGVybmFsLWRucy1vcGVyYXRvciIsInNwZWMiOnsicmVwbGljYXMiOjEsInNlbGVjdG9yIjp7Im1hdGNoTGFiZWxzIjp7Im5hbWUiOiJleHRlcm5hbC1kbnMtb3BlcmF0b3IifX0sInN0cmF0ZWd5Ijp7InJvbGxpbmdVcGRhdGUiOnsibWF4VW5hdmFpbGFibGUiOiIyNSUifSwidHlwZSI6IlJvbGxpbmdVcGRhdGUifSwidGVtcGxhdGUiOnsibWV0YWRhdGEiOnsibGFiZWxzIjp7Im5hbWUiOiJleHRlcm5hbC1kbnMtb3BlcmF0b3IifX0sInNwZWMiOnsiY29udGFpbmVycyI6W3siYXJncyI6WyItLW1ldHJpY3MtYmluZC1hZGRyZXNzPTEyNy4wLjAuMTo4MDgwIiwiLS1vcGVyYXRvci1uYW1lc3BhY2U9JChPUEVSQVRPUl9OQU1FU1BBQ0UpIiwiLS1vcGVyYW5kLW5hbWVzcGFjZT0kKE9QRVJBVE9SX05BTUVTUEFDRSkiLCItLWV4dGVybmFsZG5zLWltYWdlPSQoUkVMQVRFRF9JTUFHRV9FWFRFUk5BTF9ETlMpIiwiLS10cnVzdGVkLWNhLWNvbmZpZ21hcD0kKFRSVVNURURfQ0FfQ09ORklHTUFQX05BTUUpIiwiLS1sZWFkZXItZWxlY3QiLCItLXdlYmhvb2stZGlzYWJsZS1odHRwMiJdLCJlbnYiOlt7Im5hbWUiOiJPUEVSQVRPUl9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEubmFtZXNwYWNlIn19fSx7Im5hbWUiOiJSRUxBVEVEX0lNQUdFX0VYVEVSTkFMX0ROUyIsInZhbHVlIjoicmVnaXN0cnkucmVkaGF0LmlvL2Vkby9leHRlcm5hbC1kbnMtcmhlbDlAc2hhMjU2OjBlZjZkZDUxODUwMTMwNjRjMzkxZWFjZDBmNTA4ZDY1ODI5ZmZhNTEyYTc4MDY2NjBkMzUzYzExM2E3YTA2OWIifSx7Im5hbWUiOiJUUlVTVEVEX0NBX0NPTkZJR01BUF9OQU1FIn1dLCJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9lZG8vZXh0ZXJuYWwtZG5zLXJoZWw5LW9wZXJhdG9yQHNoYTI1NjplMTNhMmJhZDVhNmM1Y2VhNmY4NWNhNjM4YmZjNmRlOTljMzAxZTVkZmFhMTY0ODczOGUzMjcyY2Y5NWVkMTc3IiwibmFtZSI6ImV4dGVybmFsLWRucy1vcGVyYXRvciIsInBvcnRzIjpbeyJjb250YWluZXJQb3J0Ijo5NDQzLCJuYW1lIjoid2ViaG9vay1zZXJ2ZXIiLCJwcm90b2NvbCI6IlRDUCJ9LHsiY29udGFpbmVyUG9ydCI6OTQ0MCwibmFtZSI6ImhlYWx0aC1jaGVjayIsInByb3RvY29sIjoiVENQIn1dLCJyZWFkaW5lc3NQcm9iZSI6eyJodHRwR2V0Ijp7InBhdGgiOiIvcmVhZHl6IiwicG9ydCI6ImhlYWx0aC1jaGVjayJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjo1LCJwZXJpb2RTZWNvbmRzIjo1fSwicmVzb3VyY2VzIjp7InJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIzME1pIn19LCJzZWN1cml0eUNvbnRleHQiOnsiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjpmYWxzZSwiY2FwYWJpbGl0aWVzIjp7ImRyb3AiOlsiQUxMIl19LCJwcml2aWxlZ2VkIjpmYWxzZSwicnVuQXNOb25Sb290Ijp0cnVlLCJzZWNjb21wUHJvZmlsZSI6eyJ0eXBlIjoiUnVudGltZURlZmF1bHQifX0sInRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeSI6IkZhbGxiYWNrVG9Mb2dzT25FcnJvciJ9LHsiYXJncyI6WyItLXNlY3VyZS1saXN0ZW4tYWRkcmVzcz0wLjAuMC4wOjg0NDMiLCItLXVwc3RyZWFtPWh0dHA6Ly8xMjcuMC4wLjE6ODA4MC8iLCItLWxvZ3Rvc3RkZXJyPXRydWUiLCItLXY9MTAiLCItLXRscy1jZXJ0LWZpbGU9L3Zhci9ydW4vc2VjcmV0cy9zZXJ2aW5nLWNlcnQvdGxzLmNydCIsIi0tdGxzLXByaXZhdGUta2V5LWZpbGU9L3Zhci9ydW4vc2VjcmV0cy9zZXJ2aW5nLWNlcnQvdGxzLmtleSIsIi0taHR0cDItZGlzYWJsZSJdLCJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9vcGVuc2hpZnQ0L29zZS1rdWJlLXJiYWMtcHJveHktcmhlbDlAc2hhMjU2OjBmYzZhMTZiNzFlMjcxOWQ5ZDAxZDZkZmViODMwNzdjMzg1NjJjMDhkNjI4ZDFmMWFlMDNmYWJlM2E1YjlhOTEiLCJuYW1lIjoia3ViZS1yYmFjLXByb3h5IiwicG9ydHMiOlt7ImNvbnRhaW5lclBvcnQiOjg0NDMsIm5hbWUiOiJodHRwcyJ9XSwicmVzb3VyY2VzIjp7InJlcXVlc3RzIjp7ImNwdSI6IjEwMG0iLCJtZW1vcnkiOiIyME1pIn19LCJzZWN1cml0eUNvbnRleHQiOnsiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjpmYWxzZSwiY2FwYWJpbGl0aWVzIjp7ImRyb3AiOlsiQUxMIl19LCJwcml2aWxlZ2VkIjpmYWxzZSwicnVuQXNOb25Sb290Ijp0cnVlLCJzZWNjb21wUHJvZmlsZSI6eyJ0eXBlIjoiUnVudGltZURlZmF1bHQifX0sInRlcm1pbmF0aW9uTWVzc2FnZVBvbGljeSI6IkZhbGxiYWNrVG9Mb2dzT25FcnJvciIsInZvbHVtZU1vdW50cyI6W3sibW91bnRQYXRoIjoiL3Zhci9ydW4vc2VjcmV0cy9zZXJ2aW5nLWNlcnQiLCJuYW1lIjoibWV0cmljcy1jZXJ0IiwicmVhZE9ubHkiOnRydWV9XX1dLCJzZWN1cml0eUNvbnRleHQiOnsicnVuQXNOb25Sb290Ijp0cnVlfSwic2VydmljZUFjY291bnROYW1lIjoiZXh0ZXJuYWwtZG5zLW9wZXJhdG9yIiwidm9sdW1lcyI6W3sibmFtZSI6Im1ldHJpY3MtY2VydCIsInNlY3JldCI6eyJkZWZhdWx0TW9kZSI6NDIwLCJzZWNyZXROYW1lIjoiZXh0ZXJuYWwtZG5zLW9wZXJhdG9yLW1ldHJpY3MifX1dfX19fV0sInBlcm1pc3Npb25zIjpbeyJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiY29uZmlnbWFwcyIsInNlY3JldHMiLCJzZXJ2aWNlYWNjb3VudHMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJwb2RzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJhcHBzIl0sInJlc291cmNlcyI6WyJkZXBsb3ltZW50cyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJjb29yZGluYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJsZWFzZXMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJldmVudHMiXSwidmVyYnMiOlsiY3JlYXRlIiwicGF0Y2giXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJleHRlcm5hbC1kbnMtb3BlcmF0b3IifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjpmYWxzZSwidHlwZSI6Ik11bHRpTmFtZXNwYWNlIn0seyJzdXBwb3J0ZWQiOmZhbHNlLCJ0eXBlIjoiQWxsTmFtZXNwYWNlcyJ9XSwia2V5d29yZHMiOlsib3BlbnNoaWZ0IiwiZG5zIiwiZXh0ZXJuYWxkbnMiLCJvcGVyYXRvciJdLCJsaW5rcyI6W3sibmFtZSI6IlNvdXJjZSBjb2RlIiwidXJsIjoiaHR0cHM6Ly9naXRodWIuY29tL29wZW5zaGlmdC9leHRlcm5hbC1kbnMtb3BlcmF0b3IifV0sIm1hdHVyaXR5IjoiYmV0YSIsIm1pbkt1YmVWZXJzaW9uIjoiMS4yMi4wIiwicHJvdmlkZXIiOnsibmFtZSI6IlJlZCBIYXQsIEluYy4ifSwicmVsYXRlZEltYWdlcyI6W3siaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vZWRvL2V4dGVybmFsLWRucy1yaGVsOS1vcGVyYXRvckBzaGEyNTY6ZTEzYTJiYWQ1YTZjNWNlYTZmODVjYTYzOGJmYzZkZTk5YzMwMWU1ZGZhYTE2NDg3MzhlMzI3MmNmOTVlZDE3NyIsIm5hbWUiOiJleHRlcm5hbC1kbnMtcmhlbDktb3BlcmF0b3ItZTEzYTJiYWQ1YTZjNWNlYTZmODVjYTYzOGJmYzZkZTk5YzMwMWU1ZGZhYTE2NDg3MzhlMzI3MmNmOTVlZDE3Ny1hbm5vdGF0aW9uIn0seyJpbWFnZSI6InJlZ2lzdHJ5LnJlZGhhdC5pby9lZG8vZXh0ZXJuYWwtZG5zLXJoZWw5LW9wZXJhdG9yQHNoYTI1NjplMTNhMmJhZDVhNmM1Y2VhNmY4NWNhNjM4YmZjNmRlOTljMzAxZTVkZmFhMTY0ODczOGUzMjcyY2Y5NWVkMTc3IiwibmFtZSI6ImV4dGVybmFsLWRucy1vcGVyYXRvciJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vb3BlbnNoaWZ0NC9vc2Uta3ViZS1yYmFjLXByb3h5LXJoZWw5QHNoYTI1NjowZmM2YTE2YjcxZTI3MTlkOWQwMWQ2ZGZlYjgzMDc3YzM4NTYyYzA4ZDYyOGQxZjFhZTAzZmFiZTNhNWI5YTkxIiwibmFtZSI6Imt1YmUtcmJhYy1wcm94eSJ9LHsiaW1hZ2UiOiJyZWdpc3RyeS5yZWRoYXQuaW8vZWRvL2V4dGVybmFsLWRucy1yaGVsOUBzaGEyNTY6MGVmNmRkNTE4NTAxMzA2NGMzOTFlYWNkMGY1MDhkNjU4MjlmZmE1MTJhNzgwNjY2MGQzNTNjMTEzYTdhMDY5YiIsIm5hbWUiOiJleHRlcm5hbF9kbnMifV0sInJlcGxhY2VzIjoiZXh0ZXJuYWwtZG5zLW9wZXJhdG9yLnYxLjMuNSIsInZlcnNpb24iOiIxLjMuNiIsIndlYmhvb2tkZWZpbml0aW9ucyI6W3siYWRtaXNzaW9uUmV2aWV3VmVyc2lvbnMiOlsidjEiLCJ2MWJldGExIl0sImNvbnRhaW5lclBvcnQiOjQ0MywiZGVwbG95bWVudE5hbWUiOiJleHRlcm5hbC1kbnMtb3BlcmF0b3IiLCJmYWlsdXJlUG9saWN5IjoiRmFpbCIsImdlbmVyYXRlTmFtZSI6InZleHRlcm5hbGRucy5rYi5pbyIsInJ1bGVzIjpbeyJhcGlHcm91cHMiOlsiZXh0ZXJuYWxkbnMub2xtLm9wZW5zaGlmdC5pbyJdLCJhcGlWZXJzaW9ucyI6WyJ2MWJldGExIl0sIm9wZXJhdGlvbnMiOlsiQ1JFQVRFIiwiVVBEQVRFIl0sInJlc291cmNlcyI6WyJleHRlcm5hbGRuc2VzIl19XSwic2lkZUVmZmVjdHMiOiJOb25lIiwidGFyZ2V0UG9ydCI6OTQ0MywidHlwZSI6IlZhbGlkYXRpbmdBZG1pc3Npb25XZWJob29rIiwid2ViaG9va1BhdGgiOiIvdmFsaWRhdGUtZXh0ZXJuYWxkbnMtb2xtLW9wZW5zaGlmdC1pby12MWJldGExLWV4dGVybmFsZG5zIn1dfX0=

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

Regenerate the bundle with the required pod runtime controls.

Line 1080’s decoded CSV installs containers with only resource requests, missing liveness probes, and no readOnlyRootFilesystem: true. Fix the source CSV/deployment manifests and regenerate the catalog rather than patching this encoded payload directly.

As per coding guidelines, Resource limits (cpu, memory) on every container, Liveness + readiness probes defined, and securityContext: runAsNonRoot, readOnlyRootFilesystem are required.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@catalog/v4.12/catalog.yaml` at line 1080, The base64-encoded CSV data at line
1080 contains deployment manifests that lack required pod runtime controls.
Instead of directly patching the encoded payload, locate the source CSV or
deployment manifests in the operator's repository (particularly the deployment
specs for the external-dns-operator and kube-rbac-proxy containers), then add
resource limits (cpu, memory) to every container, define liveness probes
alongside the existing readiness probes, and add readOnlyRootFilesystem: true to
the securityContext of each container. After making these changes to the source
manifests, regenerate and rebuild the catalog bundle to update this encoded data
rather than modifying it directly.

Source: Coding guidelines

data: eyJhcGlWZXJzaW9uIjoicmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSIsImtpbmQiOiJDbHVzdGVyUm9sZSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsLCJuYW1lIjoiZXh0ZXJuYWxkbnMtdmlld2VyIn0sInJ1bGVzIjpbeyJhcGlHcm91cHMiOlsib3BlcmF0b3Iub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJleHRlcm5hbGRucyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3Iub3BlbnNoaWZ0LmlvIl0sInJlc291cmNlcyI6WyJleHRlcm5hbGRucy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0Il19XX0=
- type: olm.bundle.object
value:
data: eyJhcGlWZXJzaW9uIjoicmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSIsImtpbmQiOiJDbHVzdGVyUm9sZUJpbmRpbmciLCJtZXRhZGF0YSI6eyJjcmVhdGlvblRpbWVzdGFtcCI6bnVsbCwibmFtZSI6ImV4dGVybmFsLWRucyJ9LCJyb2xlUmVmIjp7ImFwaUdyb3VwIjoicmJhYy5hdXRob3JpemF0aW9uLms4cy5pbyIsImtpbmQiOiJDbHVzdGVyUm9sZSIsIm5hbWUiOiJleHRlcm5hbC1kbnMifSwic3ViamVjdHMiOlt7ImtpbmQiOiJHcm91cCIsIm5hbWUiOiJzeXN0ZW06c2VydmljZWFjY291bnRzOmV4dGVybmFsLWRucyIsIm5hbWVzcGFjZSI6ImV4dGVybmFsLWRucyJ9LHsia2luZCI6Ikdyb3VwIiwibmFtZSI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudHM6ZXh0ZXJuYWwtZG5zLW9wZXJhdG9yIiwibmFtZXNwYWNlIjoiZXh0ZXJuYWwtZG5zLW9wZXJhdG9yIn1dfQ==

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

Bind cluster permissions to concrete service accounts.

Line 1098’s decoded ClusterRoleBinding grants the external-dns ClusterRole to system:serviceaccounts:external-dns and system:serviceaccounts:external-dns-operator, which covers every service account in those namespaces. Bind only the operator/operand service accounts that need these cluster-scoped reads.

As per coding guidelines, RBAC: least privilege; no cluster-admin for workloads is required.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@catalog/v4.12/catalog.yaml` at line 1098, The ClusterRoleBinding at line 1098
currently grants the external-dns ClusterRole to groups
(system:serviceaccounts:external-dns and
system:serviceaccounts:external-dns-operator) that include all service accounts
in those namespaces, violating the least privilege principle. Replace these
group-based subjects with specific ServiceAccount subjects pointing to the
individual service accounts that actually need the external-dns cluster
permissions. Change each group subject to a ServiceAccount subject with the
appropriate kind ("ServiceAccount"), name (the actual service account name), and
namespace values.

Source: Coding guidelines

Comment thread catalog/v4.13/catalog.yaml
Comment thread catalog/v4.14/catalog.yaml
Comment thread catalog/v4.15/catalog.yaml
Comment thread catalog/v4.15/catalog.yaml
Comment thread catalog/v4.16/catalog.yaml
@alebedev87

Copy link
Copy Markdown
Contributor Author

/retest-required

@alebedev87

Copy link
Copy Markdown
Contributor Author

4.22 deploy pipeline has the right kube-rbac-proxy:

$ oras pull quay.io/redhat-user-workloads/external-dns-operator-tenant/ext-dns-optr-fbc-v4-22/external-dns-fbc-container-ext-dns-optr-fbc-v4-22:4a32dd8ad25d7e655e48a4b01ae196d9908d39f2-8bc4e2d5-d7ae-43b0-a382-2e0f1741f570

konflux-artifacts$ ag -A15 'relatedImages' clusterserviceversions.json | grep kube-rbac-proxy
484-                        "image": "registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:0fc6a16b71e2719d9d01d6dfeb83077c38562c08d628d1f1ae03fabe3a5b9a91",
485-                        "name": "kube-rbac-proxy"
1152-                        "image": "registry.redhat.io/openshift4/ose-kube-rbac-proxy-rhel9@sha256:0fc6a16b71e2719d9d01d6dfeb83077c38562c08d628d1f1ae03fabe3a5b9a91",
1153-                        "name": "kube-rbac-proxy"

@melvinjoseph86

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jun 17, 2026

@Thealisyed Thealisyed left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/approve

@openshift-ci

openshift-ci Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: Thealisyed

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci Bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jun 17, 2026
@alebedev87

Copy link
Copy Markdown
Contributor Author

/hold

@openshift-ci openshift-ci Bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jun 17, 2026
Add v1.3.6 bundle to all FBC `catalog-template.yaml` (v4.12-v4.22) using
`registry.redhat.io` and regenerate `catalog.yaml`:

    make generate-catalog OCP_VERSION=4.X

Co-Authored-By: Claude
@openshift-ci openshift-ci Bot removed the lgtm Indicates that a PR is ready to be merged. label Jun 17, 2026
@alebedev87 alebedev87 changed the title Add external-dns-operator v1.3.6 bundle to all FBC catalogs (stage) Add external-dns-operator v1.3.6 bundle to all FBC catalogs Jun 17, 2026
@alebedev87

Copy link
Copy Markdown
Contributor Author

/unhold

@openshift-ci openshift-ci Bot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jun 17, 2026
@alebedev87 alebedev87 changed the title Add external-dns-operator v1.3.6 bundle to all FBC catalogs NE-2747: Add external-dns-operator v1.3.6 bundle to all FBC catalogs Jun 17, 2026
@openshift-ci-robot openshift-ci-robot added the jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. label Jun 17, 2026
@openshift-ci-robot

openshift-ci-robot commented Jun 17, 2026

Copy link
Copy Markdown

@alebedev87: This pull request references NE-2747 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the story to target the "5.0.0" version, but no target version was set.

Details

In response to this:

Summary

  • Add external-dns-operator.v1.3.6 bundle entry to all FBC catalog-template.yaml files (v4.12-v4.22) using registry.redhat.io
  • Add v1.3.6 to stable-v1 and stable-v1.3 channel entries (replaces v1.3.5)
  • Regenerate all catalog.yaml files with make generate-catalog OCP_VERSION=4.X

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@catalog/v4.13/catalog-template.yaml`:
- Around line 156-158: The external-dns-operator.v1.3.6 bundle image reference
uses the production registry registry.redhat.io instead of the stage registry
required for this PR's rollout. In the bundle entry for
external-dns-operator.v1.3.6, update the image field to replace
registry.redhat.io with registry.stage.redhat.io to ensure the catalog can
properly resolve and promote stage-hosted artifacts. Keep the remaining image
digest and path structure intact.

In `@catalog/v4.13/catalog.yaml`:
- Line 1077: The externaldns-viewer ClusterRole in the encoded CRD data
currently uses the API group `operator.openshift.io` in its RBAC rules, but the
CRD itself is defined under the API group `externaldns.olm.openshift.io`. Decode
the base64-encoded data field at line 1077, locate the embedded ClusterRole
definition for externaldns-viewer, and update the apiGroup in the rules section
from `operator.openshift.io` to `externaldns.olm.openshift.io` to match the
CRD's actual API group. After making this correction, re-encode the updated YAML
back to base64 and replace the data field value.

In `@catalog/v4.16/catalog.yaml`:
- Around line 643-644: The external-dns-operator-bundle image reference is
pointing to registry.redhat.io/edo but should point to
registry.stage.redhat.io/edo for stage catalog releases. Update the image
registry URL from registry.redhat.io/edo to registry.stage.redhat.io/edo at line
643 and all other related operator bundle/operand image references throughout
the file (including lines 1057 and 1112-1119). Note that kube-rbac-proxy images
should remain on registry.redhat.io. After updating the source bundle/template,
regenerate the catalog so the encoded CSV reference at line 1080 is also
automatically updated to reflect the new registry URL.

In `@catalog/v4.19/catalog.yaml`:
- Line 5688: The external-dns-operator-bundle image reference at line 5688 is
pointing to the production registry (registry.redhat.io) but should use the
stage registry (registry.stage.redhat.io) for stage catalog entries. Replace
registry.redhat.io with registry.stage.redhat.io in the image field for the
external-dns-operator-bundle reference. Apply the same change to the other
external-dns-* image references mentioned at lines 6036 and 6098-6105, ensuring
that any kube-rbac-proxy or other supporting images remain on registry.redhat.io
as they should not be changed to the stage registry.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited)

Review profile: CHILL

Plan: Enterprise

Run ID: 36f654f5-3e37-458e-a731-6f144719255b

📥 Commits

Reviewing files that changed from the base of the PR and between 4a32dd8 and 8fa6ce3.

📒 Files selected for processing (22)
  • catalog/v4.12/catalog-template.yaml
  • catalog/v4.12/catalog.yaml
  • catalog/v4.13/catalog-template.yaml
  • catalog/v4.13/catalog.yaml
  • catalog/v4.14/catalog-template.yaml
  • catalog/v4.14/catalog.yaml
  • catalog/v4.15/catalog-template.yaml
  • catalog/v4.15/catalog.yaml
  • catalog/v4.16/catalog-template.yaml
  • catalog/v4.16/catalog.yaml
  • catalog/v4.17/catalog-template.yaml
  • catalog/v4.17/catalog.yaml
  • catalog/v4.18/catalog-template.yaml
  • catalog/v4.18/catalog.yaml
  • catalog/v4.19/catalog-template.yaml
  • catalog/v4.19/catalog.yaml
  • catalog/v4.20/catalog-template.yaml
  • catalog/v4.20/catalog.yaml
  • catalog/v4.21/catalog-template.yaml
  • catalog/v4.21/catalog.yaml
  • catalog/v4.22/catalog-template.yaml
  • catalog/v4.22/catalog.yaml
✅ Files skipped from review due to trivial changes (1)
  • catalog/v4.20/catalog-template.yaml
🚧 Files skipped from review as they are similar to previous changes (15)
  • catalog/v4.16/catalog-template.yaml
  • catalog/v4.17/catalog-template.yaml
  • catalog/v4.14/catalog-template.yaml
  • catalog/v4.22/catalog-template.yaml
  • catalog/v4.15/catalog-template.yaml
  • catalog/v4.12/catalog-template.yaml
  • catalog/v4.18/catalog-template.yaml
  • catalog/v4.15/catalog.yaml
  • catalog/v4.21/catalog.yaml
  • catalog/v4.21/catalog-template.yaml
  • catalog/v4.22/catalog.yaml
  • catalog/v4.17/catalog.yaml
  • catalog/v4.20/catalog.yaml
  • catalog/v4.18/catalog.yaml
  • catalog/v4.19/catalog-template.yaml

Comment thread catalog/v4.13/catalog-template.yaml
version: 1.3.6
- type: olm.bundle.object
value:
data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjE4LjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsIm5hbWUiOiJleHRlcm5hbGRuc2VzLmV4dGVybmFsZG5zLm9sbS5vcGVuc2hpZnQuaW8ifSwic3BlYyI6eyJncm91cCI6ImV4dGVybmFsZG5zLm9sbS5vcGVuc2hpZnQuaW8iLCJuYW1lcyI6eyJraW5kIjoiRXh0ZXJuYWxETlMiLCJsaXN0S2luZCI6IkV4dGVybmFsRE5TTGlzdCIsInBsdXJhbCI6ImV4dGVybmFsZG5zZXMiLCJzaW5ndWxhciI6ImV4dGVybmFsZG5zIn0sInNjb3BlIjoiQ2x1c3RlciIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFhbHBoYTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiRXh0ZXJuYWxETlMgZGVzY3JpYmVzIGEgbWFuYWdlZCBFeHRlcm5hbEROUyBjb250cm9sbGVyIGluc3RhbmNlIGZvciBhIGNsdXN0ZXIuXG5UaGUgY29udHJvbGxlciBpcyByZXNwb25zaWJsZSBmb3IgY3JlYXRpbmcgZXh0ZXJuYWwgRE5TIHJlY29yZHMgaW4gc3VwcG9ydGVkXG5ETlMgcHJvdmlkZXJzIGJhc2VkIG9mZiBvZiBpbnN0YW5jZXMgb2Ygc2VsZWN0IEt1YmVybmV0ZXMgcmVzb3VyY2VzLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC5cblNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZFxubWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLlxuTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLlxuU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uXG5DYW5ub3QgYmUgdXBkYXRlZC5cbkluIENhbWVsQ2FzZS5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6InNwZWMgaXMgdGhlIHNwZWNpZmljYXRpb24gb2YgdGhlIGRlc2lyZWQgYmVoYXZpb3Igb2YgdGhlIEV4dGVybmFsRE5TLiIsInByb3BlcnRpZXMiOnsiZG9tYWlucyI6eyJkZXNjcmlwdGlvbiI6IkRvbWFpbnMgc3BlY2lmaWVzIHdoaWNoIGRvbWFpbnMgdGhhdCBFeHRlcm5hbEROUyBzaG91bGRcbmNyZWF0ZSBETlMgcmVjb3JkcyBmb3IuIE11bHRpcGxlIGRvbWFpbiB2YWx1ZXNcbmNhbiBiZSBzcGVjaWZpZWQgc3VjaCB0aGF0IHN1YmRvbWFpbnMgb2YgYW4gaW5jbHVkZWQgZG9tYWluXG5jYW4gZWZmZWN0aXZlbHkgYmUgaWdub3JlZCB1c2luZyB0aGUgXCJJbmNsdWRlXCIgYW5kIFwiRXhjbHVkZVwiXG5kb21haW4gZmlsdGVyIG9wdGlvbnMuXG5cbkFuIGVtcHR5IGxpc3Qgb2YgZG9tYWlucyBtZWFucyBFeHRlcm5hbEROUyB3aWxsIGNyZWF0ZVxuRE5TIHJlY29yZHMgZm9yIGFueSBpbmNsdWRlZCBzb3VyY2UgcmVzb3VyY2UgcmVnYXJkbGVzc1xub2YgdGhlIHJlc291cmNlJ3MgZGVzaXJlZCBob3N0bmFtZS5cblxuUG9wdWxhdGluZyBEb21haW5zIHdpdGggb25seSBleGNsdWRlZCBvcHRpb25zIG1lYW5zIEV4dGVybmFsRE5TXG53aWxsIGNyZWF0ZSBETlMgcmVjb3JkcyBmb3IgYW55IGluY2x1ZGVkIHNvdXJjZSByZXNvdXJjZSB0aGF0IGRvIG5vdFxubWF0Y2ggdGhlIHByb3ZpZGVkIGV4Y2x1ZGVkIGRvbWFpbiBvcHRpb25zLlxuXG5FeGNsdWRpbmcgRE5TIHJlY29yZHMgdGhhdCB3ZXJlIHByZXZpb3VzIGluY2x1ZGVkIHZpYSBhIHJlc291cmNlIHVwZGF0ZVxud2lsbCAqbm90KiByZXN1bHQgaW4gdGhlIG9yaWdpbmFsIEROUyByZWNvcmRzIGJlaW5nIGRlbGV0ZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFeHRlcm5hbEROU0RvbWFpbiBkZXNjcmliZXMgaG93IHNldHMgb2YgaW5jbHVkZWRcbm9yIGV4Y2x1ZGVkIGRvbWFpbnMgYXJlIHRvIGJlIGNvbnN0cnVjdGVkLiIsInByb3BlcnRpZXMiOnsiZmlsdGVyVHlwZSI6eyJkZXNjcmlwdGlvbiI6IkZpbHRlclR5cGUgbWFya3MgdGhlIE5hbWUgb3IgUGF0dGVybiBmaWVsZFxuYXMgYW4gaW5jbHVkZWQgb3IgZXhjbHVkZWQgc2V0IG9mIGRvbWFpbnMuXG5cbkluIHRoZSBldmVudCBvZiBjb250cmFkaWN0aW5nIGRvbWFpbiBvcHRpb25zLFxucHJlZmVyZW5jZSBpcyBnaXZlbiB0byBleGNsdWRlZCBkb21haW5zLlxuXG5UaGlzIGZpZWxkIGFjY2VwdHMgdGhlIGZvbGxvd2luZyB2YWx1ZXM6XG5cbiBcIkluY2x1ZGVcIjogSW5jbHVkZSB0aGUgZG9tYWluIHNldCBzcGVjaWZpZWRcbiBieSBuYW1lIG9yIHBhdHRlcm4uXG5cbiBcIkV4Y2x1ZGVcIjogRXhjbHVkZSB0aGUgZG9tYWluIHNldCBzcGVjaWZpZWRcbiBieSBuYW1lIG9yIHBhdHRlcm4uIiwiZW51bSI6WyJJbmNsdWRlIiwiRXhjbHVkZSJdLCJ0eXBlIjoic3RyaW5nIn0sIm1hdGNoVHlwZSI6eyJkZXNjcmlwdGlvbiI6Ik1hdGNoVHlwZSBzcGVjaWZpZXMgdGhlIHR5cGUgb2YgbWF0Y2ggdG8gYmUgcGVyZm9ybWVkXG5ieSBFeHRlcm5hbEROUyB3aGVuIGRldGVybWluaW5nIHdoZXRoZXIgb3Igbm90IHRvIHB1Ymxpc2ggRE5TXG5yZWNvcmRzIGZvciBhIGdpdmVuIHNvdXJjZSByZXNvdXJjZSBiYXNlZCBvbiB0aGUgcmVzb3VyY2Unc1xucmVxdWVzdGVkIGhvc3RuYW1lLlxuXG5UaGlzIGZpZWxkIGFjY2VwdHMgdGhlIGZvbGxvd2luZyB2YWx1ZXM6XG5cbiBcIkV4YWN0XCI6IEV4cGxpY2l0bHkgbWF0Y2ggdGhlIGZ1bGwgZG9tYWluIHN0cmluZ1xuICBzcGVjaWZpZWQgdmlhIHRoZSBOYW1lIGZpZWxkLCBpbmNsdWRpbmcgYW55IHN1YmRvbWFpbnNcbiAgb2YgTmFtZS5cblxuIFwiUGF0dGVyblwiOiBNYXRjaCBwb3RlbnRpYWwgZG9tYWlucyBhZ2FpbnN0XG4gdGhlIHByb3ZpZGVkIHJlZ3VsYXIgZXhwcmVzc2lvbiBwYXR0ZXJuIHN0cmluZy4iLCJlbnVtIjpbIkV4YWN0IiwiUGF0dGVybiJdLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIGEgc3RyaW5nIHJlcHJlc2VudGluZyBhIHNpbmdsZSBkb21haW5cbnZhbHVlLiBTdWJkb21haW5zIGFyZSBpbmNsdWRlZC5cblxuZS5nLiBteS1hcHAubXktY2x1c3Rlci1kb21haW4uY29tXG53b3VsZCBhbHNvIGluY2x1ZGVcbmZvby5teS1hcHAubXktY2x1c3Rlci1kb21haW4uY29tIiwidHlwZSI6InN0cmluZyJ9LCJwYXR0ZXJuIjp7ImRlc2NyaXB0aW9uIjoiUGF0dGVybiBpcyBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB1c2VkIHRvXG5tYXRjaCBhIHNldCBvZiBkb21haW5zLiBBbnkgcHJvdmlkZWRcbnJlZ3VsYXIgZXhwcmVzc2lvbnMgc2hvdWxkIGZvbGxvdyB0aGUgc3ludGF4XG51c2VkIGJ5IHRoZSBnbyByZWdleHAgcGFja2FnZSAoUkUyKS5cblNlZSBodHRwczovL2dvbGFuZy5vcmcvcGtnL3JlZ2V4cC8gZm9yIG1vcmUgaW5mb3JtYXRpb24uIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiZmlsdGVyVHlwZSIsIm1hdGNoVHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJwcm92aWRlciI6eyJkZXNjcmlwdGlvbiI6IlByb3ZpZGVyIHJlZmVycyB0byB0aGUgRE5TIHByb3ZpZGVyIHRoYXQgRXh0ZXJuYWxETlNcbnNob3VsZCBwdWJsaXNoIHJlY29yZHMgdG8uIE5vdGUgdGhhdCBlYWNoIEV4dGVybmFsRE5TXG5pcyB0aWVkIHRvIGEgc2luZ2xlIHByb3ZpZGVyLiIsInByb3BlcnRpZXMiOnsiYXdzIjp7ImRlc2NyaXB0aW9uIjoiQVdTIGRlc2NyaWJlcyBwcm92aWRlciBjb25maWd1cmF0aW9uIG9wdGlvbnNcbnNwZWNpZmljIHRvIEFXUyAoUm91dGUgNTMpLiIsInByb3BlcnRpZXMiOnsiY3JlZGVudGlhbHMiOnsiZGVzY3JpcHRpb24iOiJDcmVkZW50aWFscyBpcyBhIHJlZmVyZW5jZSB0byBhIHNlY3JldCBjb250YWluaW5nXG50aGUgc2hhcmVkIGNyZWRlbnRpYWxzIGZpbGUgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbGkvbGF0ZXN0L3VzZXJndWlkZS9jbGktY29uZmlndXJlLWZpbGVzLmh0bWwpXG51bmRlciBgY3JlZGVudGlhbHNgIGtleSBvciBmb2xsb3dpbmcga2V5cyAod2l0aCBjb3JyZXNwb25kaW5nIHZhbHVlcyk6XG5cbiogYXdzX2FjY2Vzc19rZXlfaWRcbiogYXdzX3NlY3JldF9hY2Nlc3Nfa2V5XG5cblNlZVxuaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMtc2lncy9leHRlcm5hbC1kbnMvYmxvYi9tYXN0ZXIvZG9jcy90dXRvcmlhbHMvYXdzLm1kXG5mb3IgbW9yZSBpbmZvcm1hdGlvbi4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBzZWNyZXQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJjcmVkZW50aWFscyJdLCJ0eXBlIjoib2JqZWN0In0sImF6dXJlIjp7ImRlc2NyaXB0aW9uIjoiQXp1cmUgZGVzY3JpYmVzIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuc3BlY2lmaWMgdG8gQXp1cmUgRE5TLiIsInByb3BlcnRpZXMiOnsiY29uZmlnRmlsZSI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ0ZpbGUgaXMgYSByZWZlcmVuY2UgdG8gYSBzZWNyZXQgY29udGFpbmluZ1xudGhlIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiB0byB1c2UgdGhlIEF6dXJlIHByb3ZpZGVyLlxuVGhlIHNlY3JldCByZWZlcmVuY2VkIGJ5IENvbmZpZ0ZpbGUgc2hvdWxkIGNvbnRhaW5cbmEga2V5IG5hbWVkIGBhenVyZS5qc29uYCBzaW1pbGFyIHRvIHRoZSBmb2xsb3dpbmc6XG5cbntcbiAgXCJ0ZW5hbnRJZFwiOiBcIjEyM1wiLFxuICBcInN1YnNjcmlwdGlvbklkXCI6IFwiNDU2XCIsXG4gIFwicmVzb3VyY2VHcm91cFwiOiBcIk15RG5zUmVzb3VyY2VHcm91cFwiLFxuICBcImFhZENsaWVudElkXCI6IFwiNzg5XCIsXG4gIFwiYWFkQ2xpZW50U2VjcmV0XCI6IFwiMTIzXCJcbn1cblxuU2VlXG5odHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy1zaWdzL2V4dGVybmFsLWRucy9ibG9iL21hc3Rlci9kb2NzL3R1dG9yaWFscy9henVyZS5tZFxuZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9uIGtleS92YWx1ZXMgYW5kIGhvdyB0byBvYnRhaW4gdGhlbS4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBzZWNyZXQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJjb25maWdGaWxlIl0sInR5cGUiOiJvYmplY3QifSwiYmx1ZUNhdCI6eyJkZXNjcmlwdGlvbiI6IkJsdWVDYXQgZGVzY3JpYmVzIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuc3BlY2lmaWMgdG8gQmx1ZUNhdCBETlMuIiwicHJvcGVydGllcyI6eyJjb25maWdGaWxlIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRmlsZSBpcyBhIHJlZmVyZW5jZSB0byBhIHNlY3JldCBjb250YWluaW5nXG50aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIHRvIHVzZSB0aGUgQmx1ZUNhdCBwcm92aWRlci5cblRoZSBzZWNyZXQgcmVmZXJlbmNlZCBieSBDb25maWdGaWxlIHNob3VsZCBjb250YWluXG5hbiBvYmplY3QgbmFtZWQgYGJsdWVjYXQuanNvbmAgc2ltaWxhciB0byB0aGUgZm9sbG93aW5nOlxuXG57XG4gIFwiZ2F0ZXdheUhvc3RcIjogXCJodHRwczovL2JsdWVjYXRndy5leGFtcGxlLmNvbVwiLFxuICBcImdhdGV3YXlVc2VybmFtZVwiOiBcInVzZXJcIixcbiAgXCJnYXRld2F5UGFzc3dvcmRcIjogXCJwYXNzXCIsXG4gIFwiZG5zQ29uZmlndXJhdGlvblwiOiBcIkV4YW1wbGVcIixcbiAgXCJkbnNWaWV3XCI6IFwiSW50ZXJuYWxcIixcbiAgXCJyb290Wm9uZVwiOiBcImV4YW1wbGUuY29tXCIsXG4gIFwic2tpcFRMU1ZlcmlmeVwiOiBmYWxzZVxufVxuXG5TZWVcbmh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzLXNpZ3MvZXh0ZXJuYWwtZG5zL2Jsb2IvbWFzdGVyL2RvY3MvdHV0b3JpYWxzL2JsdWVjYXQubWRcbmZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbiB2YWx1ZXMgYW5kIGhvdyB0byBvYnRhaW4gdGhlbS4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBzZWNyZXQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJjb25maWdGaWxlIl0sInR5cGUiOiJvYmplY3QifSwiZ2NwIjp7ImRlc2NyaXB0aW9uIjoiR0NQIGRlc2NyaWJlcyBwcm92aWRlciBjb25maWd1cmF0aW9uIG9wdGlvbnNcbnNwZWNpZmljIHRvIEdDUCAoR29vZ2xlIEROUykuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFscyI6eyJkZXNjcmlwdGlvbiI6IkNyZWRlbnRpYWxzIGlzIGEgcmVmZXJlbmNlIHRvIGEgc2VjcmV0IGNvbnRhaW5pbmdcbnRoZSBuZWNlc3NhcnkgR0NQIHNlcnZpY2UgYWNjb3VudCBrZXlzLlxuVGhlIHNlY3JldCByZWZlcmVuY2VkIGJ5IENyZWRlbnRpYWxzIHNob3VsZFxuY29udGFpbiBhIGtleSBuYW1lZCBgZ2NwLWNyZWRlbnRpYWxzLmpzb25gXG5wcmVzdW1hYmx5IGdlbmVyYXRlZCBieSB0aGUgZ2Nsb3VkIENMSS4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBzZWNyZXQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInByb2plY3QiOnsiZGVzY3JpcHRpb24iOiJQcm9qZWN0IGlzIHRoZSBHQ1AgcHJvamVjdCB0byB1c2UgZm9yXG5jcmVhdGluZyBETlMgcmVjb3Jkcy4gVGhpcyBmaWVsZCBpcyBub3QgbmVjZXNzYXJ5XG53aGVuIHJ1bm5pbmcgb24gR0NQIGFzIGV4dGVybmFsRE5TIGF1dG8tZGV0ZWN0c1xudGhlIEdDUCBwcm9qZWN0IHRvIHVzZSB3aGVuIHJ1bm5pbmcgb24gR0NQLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNyZWRlbnRpYWxzIl0sInR5cGUiOiJvYmplY3QifSwiaW5mb2Jsb3giOnsiZGVzY3JpcHRpb24iOiJJbmZvYmxveCBkZXNjcmliZXMgcHJvdmlkZXIgY29uZmlndXJhdGlvbiBvcHRpb25zXG5zcGVjaWZpYyB0byBJbmZvYmxveCBETlMuIiwicHJvcGVydGllcyI6eyJjcmVkZW50aWFscyI6eyJkZXNjcmlwdGlvbiI6IkNyZWRlbnRpYWxzIGlzIGEgcmVmZXJlbmNlIHRvIGEgc2VjcmV0IGNvbnRhaW5pbmdcbnRoZSBmb2xsb3dpbmcga2V5cyAod2l0aCBwcm9wZXIgY29ycmVzcG9uZGluZyB2YWx1ZXMpOlxuXG4qIEVYVEVSTkFMX0ROU19JTkZPQkxPWF9XQVBJX1VTRVJOQU1FXG4qIEVYVEVSTkFMX0ROU19JTkZPQkxPWF9XQVBJX1BBU1NXT1JEXG5cblNlZVxuaHR0cHM6Ly9naXRodWIuY29tL2t1YmVybmV0ZXMtc2lncy9leHRlcm5hbC1kbnMvYmxvYi9tYXN0ZXIvZG9jcy90dXRvcmlhbHMvaW5mb2Jsb3gubWRcbmZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBjb25maWd1cmF0aW9uIG9wdGlvbnMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgc2VjcmV0LiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJncmlkSG9zdCI6eyJkZXNjcmlwdGlvbiI6IkdyaWRIb3N0IGlzIHRoZSBJUCBvZiB0aGUgSW5mb2Jsb3ggR3JpZCBob3N0LiIsInR5cGUiOiJzdHJpbmcifSwid2FwaVBvcnQiOnsiZGVzY3JpcHRpb24iOiJXQVBJUG9ydCBpcyB0aGUgcG9ydCBmb3IgdGhlIEluZm9ibG94IFdBUEkuIiwidHlwZSI6ImludGVnZXIifSwid2FwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJXQVBJVmVyc2lvbiBpcyB0aGUgdmVyc2lvbiBvZiB0aGUgSW5mb2Jsb3ggV0FQSS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjcmVkZW50aWFscyIsImdyaWRIb3N0Iiwid2FwaVBvcnQiLCJ3YXBpVmVyc2lvbiJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJUeXBlIGRlc2NyaWJlcyB3aGljaCBETlMgcHJvdmlkZXJcbkV4dGVybmFsRE5TIHNob3VsZCBwdWJsaXNoIHJlY29yZHMgdG8uXG5UaGUgZm9sbG93aW5nIEROUyBwcm92aWRlcnMgYXJlIHN1cHBvcnRlZDpcblxuICogQVdTIChSb3V0ZSA1MylcbiAqIEdDUCAoR29vZ2xlIEROUylcbiAqIEF6dXJlXG4gKiBCbHVlQ2F0XG4gKiBJbmZvYmxveCIsImVudW0iOlsiQVdTIiwiR0NQIiwiQXp1cmUiLCJCbHVlQ2F0IiwiSW5mb2Jsb3giXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sInNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6IlNvdXJjZSBkZXNjcmliZXMgd2hpY2ggc291cmNlIHJlc291cmNlXG5FeHRlcm5hbEROUyB3aWxsIGJlIGNvbmZpZ3VyZWQgdG8gY3JlYXRlXG5ETlMgcmVjb3JkcyBmb3IuXG5cbk11bHRpcGxlIEV4dGVybmFsRE5TIENScyBtdXN0IGJlXG5jcmVhdGVkIGlmIG11bHRpcGxlIEV4dGVybmFsRE5TIHNvdXJjZSByZXNvdXJjZXNcbmFyZSBkZXNpcmVkLiIsInByb3BlcnRpZXMiOnsiZnFkblRlbXBsYXRlIjp7ImRlc2NyaXB0aW9uIjoiRlFETlRlbXBsYXRlIHNldHMgYSB0ZW1wbGF0ZWQgc3RyaW5nIHRoYXQncyB1c2VkIHRvIGdlbmVyYXRlIEROUyBuYW1lc1xuZnJvbSBzb3VyY2VzIHRoYXQgZG9uJ3QgZGVmaW5lIGEgaG9zdG5hbWUgdGhlbXNlbHZlcy5cbk11bHRpcGxlIGdsb2JhbCBGUUROIHRlbXBsYXRlcyBhcmUgcG9zc2libGUuXG5cblRoaXMgZmllbGQgbXVzdCBiZSBzcGVjaWZpZWQgd2l0aCBhIG5vbmVtcHR5IHZhbHVlIGlmIHRoZSBzb3VyY2UgdHlwZVxuaXMgU2VydmljZSBvciBDUkQgYW5kIEhvc3RuYW1lQW5ub3RhdGlvblBvbGljeSBpcyBzZXQgdG8gSWdub3JlLiAgVGhlXG5maWVsZCB2YWx1ZSBtYXkgYmUgb21pdHRlZCBvciBlbXB0eSBpZiBIb3N0bmFtZUFubm90YXRpb25Qb2xpY3kgaXNcbnNldCB0byBBbGxvdyBvciBpZiB0aGUgc291cmNlIHR5cGUgaXMgT3BlblNoaWZ0Um91dGUuXG5cblByb3ZpZGVkIHRlbXBsYXRlcyBzaG91bGQgZm9sbG93IHRoZSBzeW50YXggZGVmaW5lZCBmb3IgdGV4dC90ZW1wbGF0ZSBHbyBwYWNrYWdlLFxuc2VlIGh0dHBzOi8vcGtnLmdvLmRldi90ZXh0L3RlbXBsYXRlLlxuQW5ub3RhdGlvbnMgaW5zaWRlIHRoZSB0ZW1wbGF0ZSBjb3JyZXNwb25kIHRvIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBzb3VyY2UgcmVzb3VyY2Ugb2JqZWN0IChlLmcuIEt1YmVybmV0ZXMgc2VydmljZSwgT3BlblNoaWZ0IHJvdXRlKS5cbkV4YW1wbGU6IFwie3suTmFtZX19LmV4YW1wbGUuY29tXCIgd291bGQgYmUgZXhwYW5kZWQgdG8gXCJteXNlcnZpY2UuZXhhbXBsZS5jb21cIiBmb3Igc2VydmljZSBzb3VyY2UiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJob3N0bmFtZUFubm90YXRpb24iOnsiZGVmYXVsdCI6Iklnbm9yZSIsImRlc2NyaXB0aW9uIjoiSG9zdG5hbWVBbm5vdGF0aW9uUG9saWN5IHNwZWNpZmllcyB3aGV0aGVyIG9yIG5vdCBFeHRlcm5hbEROU1xuc2hvdWxkIGlnbm9yZSB0aGUgXCJleHRlcm5hbC1kbnMuYWxwaGEua3ViZXJuZXRlcy5pby9ob3N0bmFtZVwiXG5hbm5vdGF0aW9uLCB3aGljaCBvdmVycmlkZXMgRE5TIGhvc3RuYW1lcyBvbiBhIGdpdmVuIHNvdXJjZSByZXNvdXJjZS5cblxuVGhlIGZvbGxvd2luZyB2YWx1ZXMgYXJlIGFjY2VwdGVkOlxuXG4gXCJJZ25vcmVcIjogSWdub3JlIGFueSBob3N0bmFtZSBhbm5vdGF0aW9uIG92ZXJyaWRlcy5cbiBcIkFsbG93XCI6IEFsbG93IGFsbCBob3N0bmFtZSBhbm5vdGF0aW9uIG92ZXJyaWRlcy5cblxuVGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIEV4dGVybmFsRE5TIGlzIFwiSWdub3JlXCIuXG5cbk5vdGUgdGhhdCBieSBzZXR0aW5nIGEgSG9zdG5hbWVBbm5vdGF0aW9uUG9saWN5IG9mIFwiQWxsb3dcIixcbm1heSBncmFudCBwcml2aWxlZ2VkIEROUyBwZXJtaXNzaW9ucyB0byB1bmRlci1wcml2aWxlZ2VkIGNsdXN0ZXJcbnVzZXJzLiIsImVudW0iOlsiSWdub3JlIiwiQWxsb3ciXSwidHlwZSI6InN0cmluZyJ9LCJsYWJlbEZpbHRlciI6eyJkZXNjcmlwdGlvbiI6IkxhYmVsRmlsdGVyIHNwZWNpZmllcyBhIGxhYmVsIHNlbGVjdG9yIGZvciBmaWx0ZXJpbmcgdGhlIG9iamVjdHMgZm9yXG53aGljaCBFeHRlcm5hbEROUyBwdWJsaXNoZXMgcmVjb3Jkcy4gVGhlIGZpbHRlciB1c2VzIGxhYmVsIHNlbGVjdG9yXG5zZW1hbnRpY3MgYWdhaW5zdCBvYmplY3QgbGFiZWxzLiAgU3BlY2lmeWluZyBhIG51bGwgb3IgZW1wdHkgbGFiZWxcbnNlbGVjdG9yIGNhdXNlcyBFeHRlcm5hbEROUyB0byBwdWJsaXNoIHJlY29yZHMgZm9yIGFsbCBvYmplY3RzIG9mIHRoZVxuc291cmNlIHR5cGUgcmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0XG5yZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbixcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpY1xubWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoiYXRvbWljIn19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJhdG9taWMifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHNcbm1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZVxub3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJvcGVuc2hpZnRSb3V0ZU9wdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJPcGVuU2hpZnRSb3V0ZSBkZXNjcmliZXMgc291cmNlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBzcGVjaWZpYyB0byB0aGVcbnJvdXRlcy5yb3V0ZS5vcGVuc2hpZnQuaW8gcmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJyb3V0ZXJOYW1lIjp7ImRlc2NyaXB0aW9uIjoiUm91dGVyTmFtZSBpcyB0aGUgbmFtZSBvZiBhIHJvdXRlciAoQUtBIGluZ3Jlc3MgY29udHJvbGxlcikgYXNcbnJlcG9ydGVkIGluIFJvdXRlLnN0YXR1cy5pbmdyZXNzW10ucm91dGVyTmFtZS4gIEV4dGVybmFsLWRucyB3aWxsIHVzZVxudGhlIGNhbm9uaWNhbCBob3N0bmFtZSBvZiB0aGUgcm91dGVyIGlkZW50aWZpZWQgYnkgdGhpcyBuYW1lIHdoZW5cbnB1Ymxpc2hpbmcgcmVjb3JkcyBmb3IgYSBnaXZlbiByb3V0ZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJyb3V0ZXJOYW1lIl0sInR5cGUiOiJvYmplY3QifSwic2VydmljZSI6eyJkZXNjcmlwdGlvbiI6IlNlcnZpY2UgZGVzY3JpYmVzIHNvdXJjZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgc3BlY2lmaWNcbnRvIHRoZSBzZXJ2aWNlIHNvdXJjZSByZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7InNlcnZpY2VUeXBlIjp7ImRlZmF1bHQiOlsiTG9hZEJhbGFuY2VyIl0sImRlc2NyaXB0aW9uIjoiU2VydmljZVR5cGUgZGV0ZXJtaW5lcyB3aGF0IHR5cGVzIG9mIFNlcnZpY2UgcmVzb3VyY2VzXG5hcmUgd2F0Y2hlZCBieSBFeHRlcm5hbEROUy4gVGhlIGZvbGxvd2luZyB0eXBlcyBhcmVcbmF2YWlsYWJsZSBvcHRpb25zOlxuXG4gXCJOb2RlUG9ydFwiXG4gXCJFeHRlcm5hbE5hbWVcIlxuIFwiTG9hZEJhbGFuY2VyXCJcbiBcIkNsdXN0ZXJJUFwiXG5cbk9uZSBvciBtb3JlIFNlcnZpY2UgdHlwZXMgY2FuIGJlIHNwZWNpZmllZCwgaWYgZGVzaXJlZC5cblxuTm90ZSB0aGF0IHVzaW5nIHRoZSBcIkNsdXN0ZXJJUFwiIHNlcnZpY2UgdHlwZSB3aWxsIGVuYWJsZVxudGhlIEV4dGVybmFsRE5TIFwiLS1wdWJsaXNoLWludGVybmFsLXNlcnZpY2VzXCIgZmxhZyxcbndoaWNoIGFsbG93cyBFeHRlcm5hbEROUyB0byBwdWJsaXNoIEROUyByZWNvcmRzXG5mb3IgQ2x1c3RlcklQIHNlcnZpY2VzLlxuXG5JZiBubyBzZXJ2aWNlIHR5cGVzIGFyZSBwcm92aWRlZCwgRXh0ZXJuYWxETlMgd2lsbCBiZVxuY29uZmlndXJlZCB0byBjcmVhdGUgRE5TIHJlY29yZHMgZm9yIExvYWRCYWxhbmNlciBzZXJ2aWNlc1xub25seSBieSBkZWZhdWx0LiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiU2VydmljZSBUeXBlIHN0cmluZyBkZXNjcmliZXMgaW5ncmVzcyBtZXRob2RzIGZvciBhIHNlcnZpY2UiLCJ0eXBlIjoic3RyaW5nIn0sIm1pbkl0ZW1zIjoxLCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbInNlcnZpY2VUeXBlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6IlR5cGUgc3BlY2lmaWVzIGFuIEV4dGVybmFsRE5TIHNvdXJjZSByZXNvdXJjZVxudG8gY3JlYXRlIEROUyByZWNvcmRzIGZvci4iLCJlbnVtIjpbIk9wZW5TaGlmdFJvdXRlIiwiU2VydmljZSIsIkNSRCJdLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0eXBlIl0sInR5cGUiOiJvYmplY3QifSwiem9uZXMiOnsiZGVzY3JpcHRpb24iOiJab25lcyBkZXNjcmliZXMgd2hpY2ggRE5TIFpvbmUgSURzXG5FeHRlcm5hbEROUyBzaG91bGQgcHVibGlzaCByZWNvcmRzIHRvLlxuXG5VcGRhdGluZyB0aGlzIGZpZWxkIGFmdGVyIGNyZWF0aW9uXG53aWxsIGNhdXNlIGFsbCBETlMgcmVjb3JkcyBpbiB0aGUgcHJldmlvdXNcbnpvbmUocykgdG8gYmUgbGVmdCBiZWhpbmQuXG5cbkFuIGVtcHR5IGxpc3Qgb2Ygem9uZXMgbWVhbnMgdGhhdCB0aGUgRXh0ZXJuYWxETlMgd2lsbFxucHVibGlzaCB0byBhbGwgem9uZXMgKGkuZSBwdWJsaWMgYW5kIHByaXZhdGUpLCB1bmxlc3MgdGhlXG5vcGVyYXRvciBydW5zIG9uIGEgcGxhdGZvcm0gb24gd2hpY2ggdGhlIG9wZXJhdG9yIGNhblxubG9va3VwIGEgZGVmYXVsdCBzZXQgb2Ygem9uZXMgZS5nIG9uIE9wZW5TaGlmdCB3aXRoIGl0cyBjbHVzdGVyXG5ETlMgY29uZmlnIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJtYXhJdGVtcyI6MTAsInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsicHJvdmlkZXIiLCJzb3VyY2UiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJzdGF0dXMgaXMgdGhlIG1vc3QgcmVjZW50bHkgb2JzZXJ2ZWQgc3RhdHVzIG9mIHRoZSBFeHRlcm5hbEROUy4iLCJwcm9wZXJ0aWVzIjp7ImNvbmRpdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJDb25kaXRpb25zIGlzIGEgbGlzdCBvZiBvcGVyYXRvci1zcGVjaWZpYyBjb25kaXRpb25zXG5hbmQgdGhlaXIgc3RhdHVzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQ29uZGl0aW9uIGNvbnRhaW5zIGRldGFpbHMgZm9yIG9uZSBhc3BlY3Qgb2YgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhpcyBBUEkgUmVzb3VyY2UuIiwicHJvcGVydGllcyI6eyJsYXN0VHJhbnNpdGlvblRpbWUiOnsiZGVzY3JpcHRpb24iOiJsYXN0VHJhbnNpdGlvblRpbWUgaXMgdGhlIGxhc3QgdGltZSB0aGUgY29uZGl0aW9uIHRyYW5zaXRpb25lZCBmcm9tIG9uZSBzdGF0dXMgdG8gYW5vdGhlci5cblRoaXMgc2hvdWxkIGJlIHdoZW4gdGhlIHVuZGVybHlpbmcgY29uZGl0aW9uIGNoYW5nZWQuICBJZiB0aGF0IGlzIG5vdCBrbm93biwgdGhlbiB1c2luZyB0aGUgdGltZSB3aGVuIHRoZSBBUEkgZmllbGQgY2hhbmdlZCBpcyBhY2NlcHRhYmxlLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsInR5cGUiOiJzdHJpbmcifSwibWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6Im1lc3NhZ2UgaXMgYSBodW1hbiByZWFkYWJsZSBtZXNzYWdlIGluZGljYXRpbmcgZGV0YWlscyBhYm91dCB0aGUgdHJhbnNpdGlvbi5cblRoaXMgbWF5IGJlIGFuIGVtcHR5IHN0cmluZy4iLCJtYXhMZW5ndGgiOjMyNzY4LCJ0eXBlIjoic3RyaW5nIn0sIm9ic2VydmVkR2VuZXJhdGlvbiI6eyJkZXNjcmlwdGlvbiI6Im9ic2VydmVkR2VuZXJhdGlvbiByZXByZXNlbnRzIHRoZSAubWV0YWRhdGEuZ2VuZXJhdGlvbiB0aGF0IHRoZSBjb25kaXRpb24gd2FzIHNldCBiYXNlZCB1cG9uLlxuRm9yIGluc3RhbmNlLCBpZiAubWV0YWRhdGEuZ2VuZXJhdGlvbiBpcyBjdXJyZW50bHkgMTIsIGJ1dCB0aGUgLnN0YXR1cy5jb25kaXRpb25zW3hdLm9ic2VydmVkR2VuZXJhdGlvbiBpcyA5LCB0aGUgY29uZGl0aW9uIGlzIG91dCBvZiBkYXRlXG53aXRoIHJlc3BlY3QgdG8gdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGluc3RhbmNlLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwicmVhc29uIjp7ImRlc2NyaXB0aW9uIjoicmVhc29uIGNvbnRhaW5zIGEgcHJvZ3JhbW1hdGljIGlkZW50aWZpZXIgaW5kaWNhdGluZyB0aGUgcmVhc29uIGZvciB0aGUgY29uZGl0aW9uJ3MgbGFzdCB0cmFuc2l0aW9uLlxuUHJvZHVjZXJzIG9mIHNwZWNpZmljIGNvbmRpdGlvbiB0eXBlcyBtYXkgZGVmaW5lIGV4cGVjdGVkIHZhbHVlcyBhbmQgbWVhbmluZ3MgZm9yIHRoaXMgZmllbGQsXG5hbmQgd2hldGhlciB0aGUgdmFsdWVzIGFyZSBjb25zaWRlcmVkIGEgZ3VhcmFudGVlZCBBUEkuXG5UaGUgdmFsdWUgc2hvdWxkIGJlIGEgQ2FtZWxDYXNlIHN0cmluZy5cblRoaXMgZmllbGQgbWF5IG5vdCBiZSBlbXB0eS4iLCJtYXhMZW5ndGgiOjEwMjQsIm1pbkxlbmd0aCI6MSwicGF0dGVybiI6Il5bQS1aYS16XShbQS1aYS16MC05Xyw6XSpbQS1aYS16MC05X10pPyQiLCJ0eXBlIjoic3RyaW5nIn0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6InN0YXR1cyBvZiB0aGUgY29uZGl0aW9uLCBvbmUgb2YgVHJ1ZSwgRmFsc2UsIFVua25vd24uIiwiZW51bSI6WyJUcnVlIiwiRmFsc2UiLCJVbmtub3duIl0sInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6InR5cGUgb2YgY29uZGl0aW9uIGluIENhbWVsQ2FzZSBvciBpbiBmb28uZXhhbXBsZS5jb20vQ2FtZWxDYXNlLiIsIm1heExlbmd0aCI6MzE2LCJwYXR0ZXJuIjoiXihbYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPyhcXC5bYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPykqLyk/KChbQS1aYS16MC05XVstQS1aYS16MC05Xy5dKik/W0EtWmEtejAtOV0pJCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImxhc3RUcmFuc2l0aW9uVGltZSIsIm1lc3NhZ2UiLCJyZWFzb24iLCJzdGF0dXMiLCJ0eXBlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm9ic2VydmVkR2VuZXJhdGlvbiI6eyJkZXNjcmlwdGlvbiI6Ik9ic2VydmVkR2VuZXJhdGlvbiBpcyB0aGUgbW9zdCByZWNlbnQgZ2VuZXJhdGlvbiBvYnNlcnZlZC4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInpvbmVzIjp7ImRlc2NyaXB0aW9uIjoiWm9uZXMgaXMgdGhlIGNvbmZpZ3VyZWQgem9uZXMgaW4gdXNlIGJ5IEV4dGVybmFsRE5TLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJzcGVjIl0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6ZmFsc2UsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX0seyJuYW1lIjoidjFiZXRhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJFeHRlcm5hbEROUyBkZXNjcmliZXMgYSBtYW5hZ2VkIEV4dGVybmFsRE5TIGNvbnRyb2xsZXIgaW5zdGFuY2UgZm9yIGEgY2x1c3Rlci5cblRoZSBjb250cm9sbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBjcmVhdGluZyBleHRlcm5hbCBETlMgcmVjb3JkcyBpbiBzdXBwb3J0ZWRcbkROUyBwcm92aWRlcnMgYmFzZWQgb2ZmIG9mIGluc3RhbmNlcyBvZiBzZWxlY3QgS3ViZXJuZXRlcyByZXNvdXJjZXMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LlxuU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kXG5tYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuXG5TZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by5cbkNhbm5vdCBiZSB1cGRhdGVkLlxuSW4gQ2FtZWxDYXNlLlxuTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoic3BlYyBpcyB0aGUgc3BlY2lmaWNhdGlvbiBvZiB0aGUgZGVzaXJlZCBiZWhhdmlvciBvZiB0aGUgRXh0ZXJuYWxETlMuIiwicHJvcGVydGllcyI6eyJkb21haW5zIjp7ImRlc2NyaXB0aW9uIjoiRG9tYWlucyBzcGVjaWZpZXMgd2hpY2ggZG9tYWlucyB0aGF0IEV4dGVybmFsRE5TIHNob3VsZFxuY3JlYXRlIEROUyByZWNvcmRzIGZvci4gTXVsdGlwbGUgZG9tYWluIHZhbHVlc1xuY2FuIGJlIHNwZWNpZmllZCBzdWNoIHRoYXQgc3ViZG9tYWlucyBvZiBhbiBpbmNsdWRlZCBkb21haW5cbmNhbiBlZmZlY3RpdmVseSBiZSBpZ25vcmVkIHVzaW5nIHRoZSBcIkluY2x1ZGVcIiBhbmQgXCJFeGNsdWRlXCJcbmRvbWFpbiBmaWx0ZXIgb3B0aW9ucy5cblxuQW4gZW1wdHkgbGlzdCBvZiBkb21haW5zIG1lYW5zIEV4dGVybmFsRE5TIHdpbGwgY3JlYXRlXG5ETlMgcmVjb3JkcyBmb3IgYW55IGluY2x1ZGVkIHNvdXJjZSByZXNvdXJjZSByZWdhcmRsZXNzXG5vZiB0aGUgcmVzb3VyY2UncyBkZXNpcmVkIGhvc3RuYW1lLlxuXG5Qb3B1bGF0aW5nIERvbWFpbnMgd2l0aCBvbmx5IGV4Y2x1ZGVkIG9wdGlvbnMgbWVhbnMgRXh0ZXJuYWxETlNcbndpbGwgY3JlYXRlIEROUyByZWNvcmRzIGZvciBhbnkgaW5jbHVkZWQgc291cmNlIHJlc291cmNlIHRoYXQgZG8gbm90XG5tYXRjaCB0aGUgcHJvdmlkZWQgZXhjbHVkZWQgZG9tYWluIG9wdGlvbnMuXG5cbkV4Y2x1ZGluZyBETlMgcmVjb3JkcyB0aGF0IHdlcmUgcHJldmlvdXMgaW5jbHVkZWQgdmlhIGEgcmVzb3VyY2UgdXBkYXRlXG53aWxsICpub3QqIHJlc3VsdCBpbiB0aGUgb3JpZ2luYWwgRE5TIHJlY29yZHMgYmVpbmcgZGVsZXRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkV4dGVybmFsRE5TRG9tYWluIGRlc2NyaWJlcyBob3cgc2V0cyBvZiBpbmNsdWRlZFxub3IgZXhjbHVkZWQgZG9tYWlucyBhcmUgdG8gYmUgY29uc3RydWN0ZWQuIiwicHJvcGVydGllcyI6eyJmaWx0ZXJUeXBlIjp7ImRlc2NyaXB0aW9uIjoiRmlsdGVyVHlwZSBtYXJrcyB0aGUgTmFtZSBvciBQYXR0ZXJuIGZpZWxkXG5hcyBhbiBpbmNsdWRlZCBvciBleGNsdWRlZCBzZXQgb2YgZG9tYWlucy5cblxuSW4gdGhlIGV2ZW50IG9mIGNvbnRyYWRpY3RpbmcgZG9tYWluIG9wdGlvbnMsXG5wcmVmZXJlbmNlIGlzIGdpdmVuIHRvIGV4Y2x1ZGVkIGRvbWFpbnMuXG5cblRoaXMgZmllbGQgYWNjZXB0cyB0aGUgZm9sbG93aW5nIHZhbHVlczpcblxuIFwiSW5jbHVkZVwiOiBJbmNsdWRlIHRoZSBkb21haW4gc2V0IHNwZWNpZmllZFxuIGJ5IG5hbWUgb3IgcGF0dGVybi5cblxuIFwiRXhjbHVkZVwiOiBFeGNsdWRlIHRoZSBkb21haW4gc2V0IHNwZWNpZmllZFxuIGJ5IG5hbWUgb3IgcGF0dGVybi4iLCJlbnVtIjpbIkluY2x1ZGUiLCJFeGNsdWRlIl0sInR5cGUiOiJzdHJpbmcifSwibWF0Y2hUeXBlIjp7ImRlc2NyaXB0aW9uIjoiTWF0Y2hUeXBlIHNwZWNpZmllcyB0aGUgdHlwZSBvZiBtYXRjaCB0byBiZSBwZXJmb3JtZWRcbmJ5IEV4dGVybmFsRE5TIHdoZW4gZGV0ZXJtaW5pbmcgd2hldGhlciBvciBub3QgdG8gcHVibGlzaCBETlNcbnJlY29yZHMgZm9yIGEgZ2l2ZW4gc291cmNlIHJlc291cmNlIGJhc2VkIG9uIHRoZSByZXNvdXJjZSdzXG5yZXF1ZXN0ZWQgaG9zdG5hbWUuXG5cblRoaXMgZmllbGQgYWNjZXB0cyB0aGUgZm9sbG93aW5nIHZhbHVlczpcblxuIFwiRXhhY3RcIjogRXhwbGljaXRseSBtYXRjaCB0aGUgZnVsbCBkb21haW4gc3RyaW5nXG4gIHNwZWNpZmllZCB2aWEgdGhlIE5hbWUgZmllbGQsIGluY2x1ZGluZyBhbnkgc3ViZG9tYWluc1xuICBvZiBOYW1lLlxuXG4gXCJQYXR0ZXJuXCI6IE1hdGNoIHBvdGVudGlhbCBkb21haW5zIGFnYWluc3RcbiB0aGUgcHJvdmlkZWQgcmVndWxhciBleHByZXNzaW9uIHBhdHRlcm4gc3RyaW5nLiIsImVudW0iOlsiRXhhY3QiLCJQYXR0ZXJuIl0sInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIGEgc2luZ2xlIGRvbWFpblxudmFsdWUuIFN1YmRvbWFpbnMgYXJlIGluY2x1ZGVkLlxuXG5lLmcuIG15LWFwcC5teS1jbHVzdGVyLWRvbWFpbi5jb21cbndvdWxkIGFsc28gaW5jbHVkZVxuZm9vLm15LWFwcC5teS1jbHVzdGVyLWRvbWFpbi5jb20iLCJ0eXBlIjoic3RyaW5nIn0sInBhdHRlcm4iOnsiZGVzY3JpcHRpb24iOiJQYXR0ZXJuIGlzIGEgcmVndWxhciBleHByZXNzaW9uIHVzZWQgdG9cbm1hdGNoIGEgc2V0IG9mIGRvbWFpbnMuIEFueSBwcm92aWRlZFxucmVndWxhciBleHByZXNzaW9ucyBzaG91bGQgZm9sbG93IHRoZSBzeW50YXhcbnVzZWQgYnkgdGhlIGdvIHJlZ2V4cCBwYWNrYWdlIChSRTIpLlxuU2VlIGh0dHBzOi8vZ29sYW5nLm9yZy9wa2cvcmVnZXhwLyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJmaWx0ZXJUeXBlIiwibWF0Y2hUeXBlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInByb3ZpZGVyIjp7ImRlc2NyaXB0aW9uIjoiUHJvdmlkZXIgcmVmZXJzIHRvIHRoZSBETlMgcHJvdmlkZXIgdGhhdCBFeHRlcm5hbEROU1xuc2hvdWxkIHB1Ymxpc2ggcmVjb3JkcyB0by4gTm90ZSB0aGF0IGVhY2ggRXh0ZXJuYWxETlNcbmlzIHRpZWQgdG8gYSBzaW5nbGUgcHJvdmlkZXIuIiwicHJvcGVydGllcyI6eyJhd3MiOnsiZGVzY3JpcHRpb24iOiJBV1MgZGVzY3JpYmVzIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuc3BlY2lmaWMgdG8gQVdTIChSb3V0ZSA1MykuIiwicHJvcGVydGllcyI6eyJhc3N1bWVSb2xlIjp7ImRlc2NyaXB0aW9uIjoiYXNzdW1lUm9sZSBpcyBhIHJlZmVyZW5jZSB0byB0aGUgSUFNIHJvbGUgdGhhdFxuRXh0ZXJuYWxETlMgd2lsbCBiZSBhc3N1bWluZyBpbiBvcmRlciB0byBwZXJmb3JtXG5hbnkgRE5TIHVwZGF0ZXMuIiwicHJvcGVydGllcyI6eyJhcm4iOnsiZGVzY3JpcHRpb24iOiJhcm4gaXMgYW4gSUFNIHJvbGUgQVJOIHRoYXQgdGhlIEV4dGVybmFsRE5TXG5vcGVyYXRvciB3aWxsIGFzc3VtZSB3aGVuIG1ha2luZyBETlMgdXBkYXRlcy4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJhcm4iXSwidHlwZSI6Im9iamVjdCJ9LCJjcmVkZW50aWFscyI6eyJkZWZhdWx0Ijp7Im5hbWUiOiIifSwiZGVzY3JpcHRpb24iOiJDcmVkZW50aWFscyBpcyBhIHJlZmVyZW5jZSB0byBhIHNlY3JldCBjb250YWluaW5nXG50aGUgZm9sbG93aW5nIGtleXMgKHdpdGggY29ycmVzcG9uZGluZyB2YWx1ZXMpOlxuXG4qIGF3c19hY2Nlc3Nfa2V5X2lkXG4qIGF3c19zZWNyZXRfYWNjZXNzX2tleSIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIHNlY3JldC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImNyZWRlbnRpYWxzIl0sInR5cGUiOiJvYmplY3QifSwiYXp1cmUiOnsiZGVzY3JpcHRpb24iOiJBenVyZSBkZXNjcmliZXMgcHJvdmlkZXIgY29uZmlndXJhdGlvbiBvcHRpb25zXG5zcGVjaWZpYyB0byBBenVyZSBETlMuIiwicHJvcGVydGllcyI6eyJjb25maWdGaWxlIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnRmlsZSBpcyBhIHJlZmVyZW5jZSB0byBhIHNlY3JldCBjb250YWluaW5nXG50aGUgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIHRvIHVzZSB0aGUgQXp1cmUgcHJvdmlkZXIuXG5UaGUgc2VjcmV0IHJlZmVyZW5jZWQgYnkgQ29uZmlnRmlsZSBzaG91bGQgY29udGFpblxuYSBrZXkgbmFtZWQgYGF6dXJlLmpzb25gIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxue1xuICBcInRlbmFudElkXCI6IFwiMTIzXCIsXG4gIFwic3Vic2NyaXB0aW9uSWRcIjogXCI0NTZcIixcbiAgXCJyZXNvdXJjZUdyb3VwXCI6IFwiTXlEbnNSZXNvdXJjZUdyb3VwXCIsXG4gIFwiYWFkQ2xpZW50SWRcIjogXCI3ODlcIixcbiAgXCJhYWRDbGllbnRTZWNyZXRcIjogXCIxMjNcIlxufVxuXG5TZWVcbmh0dHBzOi8vZ2l0aHViLmNvbS9rdWJlcm5ldGVzLXNpZ3MvZXh0ZXJuYWwtZG5zL2Jsb2IvMjI2ZGJiOTMxZjdhMjAxOTgxMGIzNzAzYWVjMDk2YzRlYTRmNDBlYS9kb2NzL3R1dG9yaWFscy9henVyZS5tZCNjb25maWd1cmF0aW9uLWZpbGVcbmZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbiBrZXkvdmFsdWVzIGFuZCBob3cgdG8gb2J0YWluIHRoZW0uIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgc2VjcmV0LiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsiY29uZmlnRmlsZSJdLCJ0eXBlIjoib2JqZWN0In0sImJsdWVDYXQiOnsiZGVzY3JpcHRpb24iOiJCbHVlQ2F0IGRlc2NyaWJlcyBwcm92aWRlciBjb25maWd1cmF0aW9uIG9wdGlvbnNcbnNwZWNpZmljIHRvIEJsdWVDYXQgRE5TLiIsInByb3BlcnRpZXMiOnsiY29uZmlnRmlsZSI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ0ZpbGUgaXMgYSByZWZlcmVuY2UgdG8gYSBzZWNyZXQgY29udGFpbmluZ1xudGhlIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiB0byB1c2UgdGhlIEJsdWVDYXQgcHJvdmlkZXIuXG5UaGUgc2VjcmV0IHJlZmVyZW5jZWQgYnkgQ29uZmlnRmlsZSBzaG91bGQgY29udGFpblxuYW4gb2JqZWN0IG5hbWVkIGBibHVlY2F0Lmpzb25gIHNpbWlsYXIgdG8gdGhlIGZvbGxvd2luZzpcblxue1xuICBcImdhdGV3YXlIb3N0XCI6IFwiaHR0cHM6Ly9ibHVlY2F0Z3cuZXhhbXBsZS5jb21cIixcbiAgXCJnYXRld2F5VXNlcm5hbWVcIjogXCJ1c2VyXCIsXG4gIFwiZ2F0ZXdheVBhc3N3b3JkXCI6IFwicGFzc1wiLFxuICBcImRuc0NvbmZpZ3VyYXRpb25cIjogXCJFeGFtcGxlXCIsXG4gIFwiZG5zVmlld1wiOiBcIkludGVybmFsXCIsXG4gIFwicm9vdFpvbmVcIjogXCJleGFtcGxlLmNvbVwiLFxuICBcInNraXBUTFNWZXJpZnlcIjogZmFsc2Vcbn1cblxuU2VlXG5odHRwczovL2dpdGh1Yi5jb20va3ViZXJuZXRlcy1zaWdzL2V4dGVybmFsLWRucy9ibG9iLzIyNmRiYjkzMWY3YTIwMTk4MTBiMzcwM2FlYzA5NmM0ZWE0ZjQwZWEvZG9jcy90dXRvcmlhbHMvYmx1ZWNhdC5tZCN1c2luZy1qc29uLWNvbmZpZ3VyYXRpb24tZmlsZVxuZm9yIG1vcmUgaW5mb3JtYXRpb24gb24gdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9uIHZhbHVlcyBhbmQgaG93IHRvIG9idGFpbiB0aGVtLiIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIHNlY3JldC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImNvbmZpZ0ZpbGUiXSwidHlwZSI6Im9iamVjdCJ9LCJnY3AiOnsiZGVzY3JpcHRpb24iOiJHQ1AgZGVzY3JpYmVzIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuc3BlY2lmaWMgdG8gR0NQIChHb29nbGUgRE5TKS4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzIjp7ImRlc2NyaXB0aW9uIjoiQ3JlZGVudGlhbHMgaXMgYSByZWZlcmVuY2UgdG8gYSBzZWNyZXQgY29udGFpbmluZ1xudGhlIG5lY2Vzc2FyeSBHQ1Agc2VydmljZSBhY2NvdW50IGtleXMuXG5UaGUgc2VjcmV0IHJlZmVyZW5jZWQgYnkgQ3JlZGVudGlhbHMgc2hvdWxkXG5jb250YWluIGEga2V5IG5hbWVkIGBnY3AtY3JlZGVudGlhbHMuanNvbmBcbnByZXN1bWFibHkgZ2VuZXJhdGVkIGJ5IHRoZSBnY2xvdWQgQ0xJLiIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIHNlY3JldC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwicHJvamVjdCI6eyJkZXNjcmlwdGlvbiI6IlByb2plY3QgaXMgdGhlIEdDUCBwcm9qZWN0IHRvIHVzZSBmb3JcbmNyZWF0aW5nIEROUyByZWNvcmRzLiBUaGlzIGZpZWxkIGlzIG5vdCBuZWNlc3NhcnlcbndoZW4gcnVubmluZyBvbiBHQ1AgYXMgZXh0ZXJuYWxETlMgYXV0by1kZXRlY3RzXG50aGUgR0NQIHByb2plY3QgdG8gdXNlIHdoZW4gcnVubmluZyBvbiBHQ1AuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiY3JlZGVudGlhbHMiXSwidHlwZSI6Im9iamVjdCJ9LCJpbmZvYmxveCI6eyJkZXNjcmlwdGlvbiI6IkluZm9ibG94IGRlc2NyaWJlcyBwcm92aWRlciBjb25maWd1cmF0aW9uIG9wdGlvbnNcbnNwZWNpZmljIHRvIEluZm9ibG94IEROUy4iLCJwcm9wZXJ0aWVzIjp7ImNyZWRlbnRpYWxzIjp7ImRlc2NyaXB0aW9uIjoiQ3JlZGVudGlhbHMgaXMgYSByZWZlcmVuY2UgdG8gYSBzZWNyZXQgY29udGFpbmluZ1xudGhlIGZvbGxvd2luZyBrZXlzICh3aXRoIHByb3BlciBjb3JyZXNwb25kaW5nIHZhbHVlcyk6XG5cbiogRVhURVJOQUxfRE5TX0lORk9CTE9YX1dBUElfVVNFUk5BTUVcbiogRVhURVJOQUxfRE5TX0lORk9CTE9YX1dBUElfUEFTU1dPUkQiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBzZWNyZXQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sImdyaWRIb3N0Ijp7ImRlc2NyaXB0aW9uIjoiR3JpZEhvc3QgaXMgdGhlIElQIG9mIHRoZSBJbmZvYmxveCBHcmlkIGhvc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ3YXBpUG9ydCI6eyJkZXNjcmlwdGlvbiI6IldBUElQb3J0IGlzIHRoZSBwb3J0IGZvciB0aGUgSW5mb2Jsb3ggV0FQSS4iLCJ0eXBlIjoiaW50ZWdlciJ9LCJ3YXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IldBUElWZXJzaW9uIGlzIHRoZSB2ZXJzaW9uIG9mIHRoZSBJbmZvYmxveCBXQVBJLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNyZWRlbnRpYWxzIiwiZ3JpZEhvc3QiLCJ3YXBpUG9ydCIsIndhcGlWZXJzaW9uIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6IlR5cGUgZGVzY3JpYmVzIHdoaWNoIEROUyBwcm92aWRlclxuRXh0ZXJuYWxETlMgc2hvdWxkIHB1Ymxpc2ggcmVjb3JkcyB0by5cblRoZSBmb2xsb3dpbmcgRE5TIHByb3ZpZGVycyBhcmUgc3VwcG9ydGVkOlxuXG4gKiBBV1MgKFJvdXRlIDUzKVxuICogR0NQIChHb29nbGUgRE5TKVxuICogQXp1cmVcbiAqIEJsdWVDYXRcbiAqIEluZm9ibG94IiwiZW51bSI6WyJBV1MiLCJHQ1AiLCJBenVyZSIsIkJsdWVDYXQiLCJJbmZvYmxveCJdLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0eXBlIl0sInR5cGUiOiJvYmplY3QifSwic291cmNlIjp7ImRlc2NyaXB0aW9uIjoiU291cmNlIGRlc2NyaWJlcyB3aGljaCBzb3VyY2UgcmVzb3VyY2VcbkV4dGVybmFsRE5TIHdpbGwgYmUgY29uZmlndXJlZCB0byBjcmVhdGVcbkROUyByZWNvcmRzIGZvci5cblxuTXVsdGlwbGUgRXh0ZXJuYWxETlMgQ1JzIG11c3QgYmVcbmNyZWF0ZWQgaWYgbXVsdGlwbGUgRXh0ZXJuYWxETlMgc291cmNlIHJlc291cmNlc1xuYXJlIGRlc2lyZWQuIiwicHJvcGVydGllcyI6eyJmcWRuVGVtcGxhdGUiOnsiZGVzY3JpcHRpb24iOiJGUUROVGVtcGxhdGUgc2V0cyBhIHRlbXBsYXRlZCBzdHJpbmcgdGhhdCdzIHVzZWQgdG8gZ2VuZXJhdGUgRE5TIG5hbWVzXG5mcm9tIHNvdXJjZXMgdGhhdCBkb24ndCBkZWZpbmUgYSBob3N0bmFtZSB0aGVtc2VsdmVzLlxuTXVsdGlwbGUgZ2xvYmFsIEZRRE4gdGVtcGxhdGVzIGFyZSBwb3NzaWJsZS5cblxuVGhpcyBmaWVsZCBtdXN0IGJlIHNwZWNpZmllZCB3aXRoIGEgbm9uZW1wdHkgdmFsdWUgaWYgdGhlIHNvdXJjZSB0eXBlXG5pcyBTZXJ2aWNlIG9yIENSRCBhbmQgSG9zdG5hbWVBbm5vdGF0aW9uUG9saWN5IGlzIHNldCB0byBJZ25vcmUuICBUaGVcbmZpZWxkIHZhbHVlIG1heSBiZSBvbWl0dGVkIG9yIGVtcHR5IGlmIEhvc3RuYW1lQW5ub3RhdGlvblBvbGljeSBpc1xuc2V0IHRvIEFsbG93IG9yIGlmIHRoZSBzb3VyY2UgdHlwZSBpcyBPcGVuU2hpZnRSb3V0ZS5cblxuUHJvdmlkZWQgdGVtcGxhdGVzIHNob3VsZCBmb2xsb3cgdGhlIHN5bnRheCBkZWZpbmVkIGZvciB0ZXh0L3RlbXBsYXRlIEdvIHBhY2thZ2UsXG5zZWUgaHR0cHM6Ly9wa2cuZ28uZGV2L3RleHQvdGVtcGxhdGUuXG5Bbm5vdGF0aW9ucyBpbnNpZGUgdGhlIHRlbXBsYXRlIGNvcnJlc3BvbmQgdG8gdGhlIGRlZmluaXRpb24gb2YgdGhlIHNvdXJjZSByZXNvdXJjZSBvYmplY3QgKGUuZy4gS3ViZXJuZXRlcyBzZXJ2aWNlLCBPcGVuU2hpZnQgcm91dGUpLlxuRXhhbXBsZTogXCJ7ey5OYW1lfX0uZXhhbXBsZS5jb21cIiB3b3VsZCBiZSBleHBhbmRlZCB0byBcIm15c2VydmljZS5leGFtcGxlLmNvbVwiIGZvciBzZXJ2aWNlIHNvdXJjZSIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sImhvc3RuYW1lQW5ub3RhdGlvbiI6eyJkZWZhdWx0IjoiSWdub3JlIiwiZGVzY3JpcHRpb24iOiJIb3N0bmFtZUFubm90YXRpb25Qb2xpY3kgc3BlY2lmaWVzIHdoZXRoZXIgb3Igbm90IEV4dGVybmFsRE5TXG5zaG91bGQgaWdub3JlIHRoZSBcImV4dGVybmFsLWRucy5hbHBoYS5rdWJlcm5ldGVzLmlvL2hvc3RuYW1lXCJcbmFubm90YXRpb24sIHdoaWNoIG92ZXJyaWRlcyBETlMgaG9zdG5hbWVzIG9uIGEgZ2l2ZW4gc291cmNlIHJlc291cmNlLlxuXG5UaGUgZm9sbG93aW5nIHZhbHVlcyBhcmUgYWNjZXB0ZWQ6XG5cbiBcIklnbm9yZVwiOiBJZ25vcmUgYW55IGhvc3RuYW1lIGFubm90YXRpb24gb3ZlcnJpZGVzLlxuIFwiQWxsb3dcIjogQWxsb3cgYWxsIGhvc3RuYW1lIGFubm90YXRpb24gb3ZlcnJpZGVzLlxuXG5UaGUgZGVmYXVsdCBiZWhhdmlvciBvZiB0aGUgRXh0ZXJuYWxETlMgaXMgXCJJZ25vcmVcIi5cblxuTm90ZSB0aGF0IGJ5IHNldHRpbmcgYSBIb3N0bmFtZUFubm90YXRpb25Qb2xpY3kgb2YgXCJBbGxvd1wiLFxubWF5IGdyYW50IHByaXZpbGVnZWQgRE5TIHBlcm1pc3Npb25zIHRvIHVuZGVyLXByaXZpbGVnZWQgY2x1c3RlclxudXNlcnMuIiwiZW51bSI6WyJJZ25vcmUiLCJBbGxvdyJdLCJ0eXBlIjoic3RyaW5nIn0sImxhYmVsRmlsdGVyIjp7ImRlc2NyaXB0aW9uIjoiTGFiZWxGaWx0ZXIgc3BlY2lmaWVzIGEgbGFiZWwgc2VsZWN0b3IgZm9yIGZpbHRlcmluZyB0aGUgb2JqZWN0cyBmb3JcbndoaWNoIEV4dGVybmFsRE5TIHB1Ymxpc2hlcyByZWNvcmRzLiBUaGUgZmlsdGVyIHVzZXMgbGFiZWwgc2VsZWN0b3JcbnNlbWFudGljcyBhZ2FpbnN0IG9iamVjdCBsYWJlbHMuICBTcGVjaWZ5aW5nIGEgbnVsbCBvciBlbXB0eSBsYWJlbFxuc2VsZWN0b3IgY2F1c2VzIEV4dGVybmFsRE5TIHRvIHB1Ymxpc2ggcmVjb3JkcyBmb3IgYWxsIG9iamVjdHMgb2YgdGhlXG5zb3VyY2UgdHlwZSByZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXRcbnJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuXG5WYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsXG50aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljXG5tZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJhdG9taWMifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6ImF0b21pYyJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVsc1xubWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlXG5vcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sIm9wZW5zaGlmdFJvdXRlT3B0aW9ucyI6eyJkZXNjcmlwdGlvbiI6Ik9wZW5TaGlmdFJvdXRlIGRlc2NyaWJlcyBzb3VyY2UgY29uZmlndXJhdGlvbiBvcHRpb25zIHNwZWNpZmljIHRvIHRoZVxucm91dGVzLnJvdXRlLm9wZW5zaGlmdC5pbyByZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7InJvdXRlck5hbWUiOnsiZGVzY3JpcHRpb24iOiJSb3V0ZXJOYW1lIGlzIHRoZSBuYW1lIG9mIGEgcm91dGVyIChBS0EgaW5ncmVzcyBjb250cm9sbGVyKSBhc1xucmVwb3J0ZWQgaW4gUm91dGUuc3RhdHVzLmluZ3Jlc3NbXS5yb3V0ZXJOYW1lLiAgRXh0ZXJuYWwtZG5zIHdpbGwgdXNlXG50aGUgY2Fub25pY2FsIGhvc3RuYW1lIG9mIHRoZSByb3V0ZXIgaWRlbnRpZmllZCBieSB0aGlzIG5hbWUgd2hlblxucHVibGlzaGluZyByZWNvcmRzIGZvciBhIGdpdmVuIHJvdXRlLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInJvdXRlck5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJzZXJ2aWNlIjp7ImRlc2NyaXB0aW9uIjoiU2VydmljZSBkZXNjcmliZXMgc291cmNlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBzcGVjaWZpY1xudG8gdGhlIHNlcnZpY2Ugc291cmNlIHJlc291cmNlLiIsInByb3BlcnRpZXMiOnsic2VydmljZVR5cGUiOnsiZGVmYXVsdCI6WyJMb2FkQmFsYW5jZXIiXSwiZGVzY3JpcHRpb24iOiJTZXJ2aWNlVHlwZSBkZXRlcm1pbmVzIHdoYXQgdHlwZXMgb2YgU2VydmljZSByZXNvdXJjZXNcbmFyZSB3YXRjaGVkIGJ5IEV4dGVybmFsRE5TLiBUaGUgZm9sbG93aW5nIHR5cGVzIGFyZVxuYXZhaWxhYmxlIG9wdGlvbnM6XG5cbiBcIk5vZGVQb3J0XCJcbiBcIkV4dGVybmFsTmFtZVwiXG4gXCJMb2FkQmFsYW5jZXJcIlxuIFwiQ2x1c3RlcklQXCJcblxuT25lIG9yIG1vcmUgU2VydmljZSB0eXBlcyBjYW4gYmUgc3BlY2lmaWVkLCBpZiBkZXNpcmVkLlxuXG5Ob3RlIHRoYXQgdXNpbmcgdGhlIFwiQ2x1c3RlcklQXCIgc2VydmljZSB0eXBlIHdpbGwgZW5hYmxlXG50aGUgRXh0ZXJuYWxETlMgXCItLXB1Ymxpc2gtaW50ZXJuYWwtc2VydmljZXNcIiBmbGFnLFxud2hpY2ggYWxsb3dzIEV4dGVybmFsRE5TIHRvIHB1Ymxpc2ggRE5TIHJlY29yZHNcbmZvciBDbHVzdGVySVAgc2VydmljZXMuXG5cbklmIG5vIHNlcnZpY2UgdHlwZXMgYXJlIHByb3ZpZGVkLCBFeHRlcm5hbEROUyB3aWxsIGJlXG5jb25maWd1cmVkIHRvIGNyZWF0ZSBETlMgcmVjb3JkcyBmb3IgTG9hZEJhbGFuY2VyIHNlcnZpY2VzXG5vbmx5IGJ5IGRlZmF1bHQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJTZXJ2aWNlIFR5cGUgc3RyaW5nIGRlc2NyaWJlcyBpbmdyZXNzIG1ldGhvZHMgZm9yIGEgc2VydmljZSIsInR5cGUiOiJzdHJpbmcifSwibWluSXRlbXMiOjEsInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsic2VydmljZVR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiVHlwZSBzcGVjaWZpZXMgYW4gRXh0ZXJuYWxETlMgc291cmNlIHJlc291cmNlXG50byBjcmVhdGUgRE5TIHJlY29yZHMgZm9yLiIsImVudW0iOlsiT3BlblNoaWZ0Um91dGUiLCJTZXJ2aWNlIiwiQ1JEIl0sInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ6b25lcyI6eyJkZXNjcmlwdGlvbiI6IlpvbmVzIGRlc2NyaWJlcyB3aGljaCBETlMgWm9uZSBJRHNcbkV4dGVybmFsRE5TIHNob3VsZCBwdWJsaXNoIHJlY29yZHMgdG8uXG5cblVwZGF0aW5nIHRoaXMgZmllbGQgYWZ0ZXIgY3JlYXRpb25cbndpbGwgY2F1c2UgYWxsIEROUyByZWNvcmRzIGluIHRoZSBwcmV2aW91c1xuem9uZShzKSB0byBiZSBsZWZ0IGJlaGluZC5cblxuQW4gZW1wdHkgbGlzdCBvZiB6b25lcyBtZWFucyB0aGF0IHRoZSBFeHRlcm5hbEROUyB3aWxsXG5wdWJsaXNoIHRvIGFsbCB6b25lcyAoaS5lIHB1YmxpYyBhbmQgcHJpdmF0ZSksIHVubGVzcyB0aGVcbm9wZXJhdG9yIHJ1bnMgb24gYSBwbGF0Zm9ybSBvbiB3aGljaCB0aGUgb3BlcmF0b3IgY2FuXG5sb29rdXAgYSBkZWZhdWx0IHNldCBvZiB6b25lcyBlLmcgb24gT3BlblNoaWZ0IHdpdGggaXRzIGNsdXN0ZXJcbkROUyBjb25maWciLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sIm1heEl0ZW1zIjoxMCwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJwcm92aWRlciIsInNvdXJjZSJdLCJ0eXBlIjoib2JqZWN0In0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6InN0YXR1cyBpcyB0aGUgbW9zdCByZWNlbnRseSBvYnNlcnZlZCBzdGF0dXMgb2YgdGhlIEV4dGVybmFsRE5TLiIsInByb3BlcnRpZXMiOnsiY29uZGl0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkNvbmRpdGlvbnMgaXMgYSBsaXN0IG9mIG9wZXJhdG9yLXNwZWNpZmljIGNvbmRpdGlvbnNcbmFuZCB0aGVpciBzdGF0dXMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJDb25kaXRpb24gY29udGFpbnMgZGV0YWlscyBmb3Igb25lIGFzcGVjdCBvZiB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGlzIEFQSSBSZXNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7Imxhc3RUcmFuc2l0aW9uVGltZSI6eyJkZXNjcmlwdGlvbiI6Imxhc3RUcmFuc2l0aW9uVGltZSBpcyB0aGUgbGFzdCB0aW1lIHRoZSBjb25kaXRpb24gdHJhbnNpdGlvbmVkIGZyb20gb25lIHN0YXR1cyB0byBhbm90aGVyLlxuVGhpcyBzaG91bGQgYmUgd2hlbiB0aGUgdW5kZXJseWluZyBjb25kaXRpb24gY2hhbmdlZC4gIElmIHRoYXQgaXMgbm90IGtub3duLCB0aGVuIHVzaW5nIHRoZSB0aW1lIHdoZW4gdGhlIEFQSSBmaWVsZCBjaGFuZ2VkIGlzIGFjY2VwdGFibGUuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwidHlwZSI6InN0cmluZyJ9LCJtZXNzYWdlIjp7ImRlc2NyaXB0aW9uIjoibWVzc2FnZSBpcyBhIGh1bWFuIHJlYWRhYmxlIG1lc3NhZ2UgaW5kaWNhdGluZyBkZXRhaWxzIGFib3V0IHRoZSB0cmFuc2l0aW9uLlxuVGhpcyBtYXkgYmUgYW4gZW1wdHkgc3RyaW5nLiIsIm1heExlbmd0aCI6MzI3NjgsInR5cGUiOiJzdHJpbmcifSwib2JzZXJ2ZWRHZW5lcmF0aW9uIjp7ImRlc2NyaXB0aW9uIjoib2JzZXJ2ZWRHZW5lcmF0aW9uIHJlcHJlc2VudHMgdGhlIC5tZXRhZGF0YS5nZW5lcmF0aW9uIHRoYXQgdGhlIGNvbmRpdGlvbiB3YXMgc2V0IGJhc2VkIHVwb24uXG5Gb3IgaW5zdGFuY2UsIGlmIC5tZXRhZGF0YS5nZW5lcmF0aW9uIGlzIGN1cnJlbnRseSAxMiwgYnV0IHRoZSAuc3RhdHVzLmNvbmRpdGlvbnNbeF0ub2JzZXJ2ZWRHZW5lcmF0aW9uIGlzIDksIHRoZSBjb25kaXRpb24gaXMgb3V0IG9mIGRhdGVcbndpdGggcmVzcGVjdCB0byB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgaW5zdGFuY2UuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJyZWFzb24iOnsiZGVzY3JpcHRpb24iOiJyZWFzb24gY29udGFpbnMgYSBwcm9ncmFtbWF0aWMgaWRlbnRpZmllciBpbmRpY2F0aW5nIHRoZSByZWFzb24gZm9yIHRoZSBjb25kaXRpb24ncyBsYXN0IHRyYW5zaXRpb24uXG5Qcm9kdWNlcnMgb2Ygc3BlY2lmaWMgY29uZGl0aW9uIHR5cGVzIG1heSBkZWZpbmUgZXhwZWN0ZWQgdmFsdWVzIGFuZCBtZWFuaW5ncyBmb3IgdGhpcyBmaWVsZCxcbmFuZCB3aGV0aGVyIHRoZSB2YWx1ZXMgYXJlIGNvbnNpZGVyZWQgYSBndWFyYW50ZWVkIEFQSS5cblRoZSB2YWx1ZSBzaG91bGQgYmUgYSBDYW1lbENhc2Ugc3RyaW5nLlxuVGhpcyBmaWVsZCBtYXkgbm90IGJlIGVtcHR5LiIsIm1heExlbmd0aCI6MTAyNCwibWluTGVuZ3RoIjoxLCJwYXR0ZXJuIjoiXltBLVphLXpdKFtBLVphLXowLTlfLDpdKltBLVphLXowLTlfXSk/JCIsInR5cGUiOiJzdHJpbmcifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoic3RhdHVzIG9mIHRoZSBjb25kaXRpb24sIG9uZSBvZiBUcnVlLCBGYWxzZSwgVW5rbm93bi4iLCJlbnVtIjpbIlRydWUiLCJGYWxzZSIsIlVua25vd24iXSwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoidHlwZSBvZiBjb25kaXRpb24gaW4gQ2FtZWxDYXNlIG9yIGluIGZvby5leGFtcGxlLmNvbS9DYW1lbENhc2UuIiwibWF4TGVuZ3RoIjozMTYsInBhdHRlcm4iOiJeKFthLXowLTldKFstYS16MC05XSpbYS16MC05XSk/KFxcLlthLXowLTldKFstYS16MC05XSpbYS16MC05XSk/KSovKT8oKFtBLVphLXowLTldWy1BLVphLXowLTlfLl0qKT9bQS1aYS16MC05XSkkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibGFzdFRyYW5zaXRpb25UaW1lIiwibWVzc2FnZSIsInJlYXNvbiIsInN0YXR1cyIsInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwib2JzZXJ2ZWRHZW5lcmF0aW9uIjp7ImRlc2NyaXB0aW9uIjoiT2JzZXJ2ZWRHZW5lcmF0aW9uIGlzIHRoZSBtb3N0IHJlY2VudCBnZW5lcmF0aW9uIG9ic2VydmVkLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiem9uZXMiOnsiZGVzY3JpcHRpb24iOiJab25lcyBpcyB0aGUgY29uZmlndXJlZCB6b25lcyBpbiB1c2UgYnkgRXh0ZXJuYWxETlMuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbInNwZWMiXSwidHlwZSI6Im9iamVjdCJ9fSwic2VydmVkIjp0cnVlLCJzdG9yYWdlIjp0cnVlLCJzdWJyZXNvdXJjZXMiOnsic3RhdHVzIjp7fX19XX0sInN0YXR1cyI6eyJhY2NlcHRlZE5hbWVzIjp7ImtpbmQiOiIiLCJwbHVyYWwiOiIifSwiY29uZGl0aW9ucyI6bnVsbCwic3RvcmVkVmVyc2lvbnMiOm51bGx9fQ==

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Decode the v1.3.6 bundle RBAC objects and compare them to the CRD group/plural.
# Expect: externaldns-editor and externaldns-viewer should both grant
#         apiGroups=["externaldns.olm.openshift.io"] and resources including "externaldnses".

python - <<'PY'
import base64
import json
import pathlib
import re

path = pathlib.Path("catalog/v4.13/catalog.yaml")
text = path.read_text()

match = re.search(
    r"(?ms)^image: .*\nname: external-dns-operator\.v1\.3\.6\npackage: external-dns-operator\nproperties:\n.*?^schema: olm\.bundle",
    text,
)
if not match:
    raise SystemExit("external-dns-operator.v1.3.6 bundle block not found")

objects = [
    json.loads(base64.b64decode(m.group(1)))
    for m in re.finditer(r"^\s+data:\s*([A-Za-z0-9+/=]+)\s*$", match.group(0), re.MULTILINE)
]

crd = next(obj for obj in objects if obj.get("kind") == "CustomResourceDefinition")
print("CRD:", crd["spec"]["group"], crd["spec"]["names"]["plural"])

for obj in objects:
    if obj.get("kind") == "ClusterRole" and obj["metadata"]["name"] in {"externaldns-editor", "externaldns-viewer"}:
        print(obj["metadata"]["name"], obj["rules"])
PY

Repository: openshift/external-dns-operator

Length of output: 7638


Fix the externaldns-viewer ClusterRole to use the correct API group.

The CRD defines group externaldns.olm.openshift.io, but the decoded externaldns-viewer ClusterRole grants resources from operator.openshift.io. This mismatch will prevent the viewer role from authorizing access to ExternalDNS CRs. Update the source RBAC manifest and regenerate the catalog to use externaldns.olm.openshift.io in the viewer role rules.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@catalog/v4.13/catalog.yaml` at line 1077, The externaldns-viewer ClusterRole
in the encoded CRD data currently uses the API group `operator.openshift.io` in
its RBAC rules, but the CRD itself is defined under the API group
`externaldns.olm.openshift.io`. Decode the base64-encoded data field at line
1077, locate the embedded ClusterRole definition for externaldns-viewer, and
update the apiGroup in the rules section from `operator.openshift.io` to
`externaldns.olm.openshift.io` to match the CRD's actual API group. After making
this correction, re-encode the updated YAML back to base64 and replace the data
field value.

Comment thread catalog/v4.16/catalog.yaml
Comment thread catalog/v4.19/catalog.yaml
@melvinjoseph86

Copy link
Copy Markdown
Contributor

/lgtm

@openshift-ci openshift-ci Bot added the lgtm Indicates that a PR is ready to be merged. label Jun 17, 2026
@openshift-ci

openshift-ci Bot commented Jun 17, 2026

Copy link
Copy Markdown
Contributor

@alebedev87: all tests passed!

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

@openshift-merge-bot openshift-merge-bot Bot merged commit 7a37b7f into openshift:main Jun 17, 2026
35 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. jira/valid-reference Indicates that this PR references a valid Jira ticket of any type. lgtm Indicates that a PR is ready to be merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants