diff --git a/Makefile b/Makefile index d34b4d18..8df35975 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ # To re-generate a bundle for another specific version without changing the standard setup, you can: # - use the VERSION as arg of the bundle target (e.g make bundle VERSION=0.0.2) # - use environment variables to overwrite this value (e.g export VERSION=0.0.2) -VERSION ?= 0.13.2-alpha.1 +VERSION ?= 0.13.2-alpha.2 # CHANNELS define the bundle channels used in the bundle. # Add a new line here if you would like to change its default config. (E.g CHANNELS = "candidate,fast,stable") @@ -272,7 +272,7 @@ bundle-push: ## Push the bundle image. $(MAKE) docker-push IMG=$(BUNDLE_IMG) .PHONY: opm -OPM = ./bin/opm +OPM = $(LOCALBIN)/opm opm: ## Download opm locally if necessary. ifeq (,$(wildcard $(OPM))) ifeq (,$(shell which opm 2>/dev/null)) @@ -395,6 +395,7 @@ run-ds: manifests generate fmt vet go-generate tmp/certs --server-certificate-path tmp/certs/server \ --ca-certificate-path tmp/certs/ca \ --client-certificate-path tmp/certs/client \ + --metrics-bind-address :8383 --debug run-envoy: ## runs an envoy process in a container that will try to connect to a local discovery service diff --git a/bundle/manifests/marin3r.3scale.net_envoyconfigrevisions.yaml b/bundle/manifests/marin3r.3scale.net_envoyconfigrevisions.yaml index 2ba67f40..e869d2a8 100644 --- a/bundle/manifests/marin3r.3scale.net_envoyconfigrevisions.yaml +++ b/bundle/manifests/marin3r.3scale.net_envoyconfigrevisions.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.14.0 creationTimestamp: null name: envoyconfigrevisions.marin3r.3scale.net spec: @@ -43,20 +43,25 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: EnvoyConfigRevision is an internal resource that stores a specific - version of an EnvoyConfig resource. EnvoyConfigRevisions are automatically - created and deleted by the EnvoyConfig controller and are not intended to - be directly used. Use EnvoyConfig objects instead. + description: |- + EnvoyConfigRevision is an internal resource that stores a specific version of an EnvoyConfig + resource. EnvoyConfigRevisions are automatically created and deleted by the EnvoyConfig + controller and are not intended to be directly used. Use EnvoyConfig objects instead. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -74,19 +79,21 @@ spec: suported by the envoy discovery service properties: clusters: - description: 'Clusters is a list of the envoy Cluster resource - type. API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto' + description: |- + Clusters is a list of the envoy Cluster resource type. + API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto items: - description: EnvoyResource holds serialized representation of - an envoy resource + description: |- + EnvoyResource holds serialized representation of an envoy + resource properties: name: - description: 'Name of the envoy resource. DEPRECATED: this - field has no effect and will be removed in an upcoming - release. The name of the resources for discovery purposes - is included in the resource itself. Refer to the envoy - API reference to check how the name is specified for each - resource type.' + description: |- + Name of the envoy resource. + DEPRECATED: this field has no effect and will be removed in an + upcoming release. The name of the resources for discovery purposes + is included in the resource itself. Refer to the envoy API reference + to check how the name is specified for each resource type. type: string value: description: Value is the serialized representation of the @@ -97,19 +104,21 @@ spec: type: object type: array endpoints: - description: 'Endpoints is a list of the envoy ClusterLoadAssignment - resource type. API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/endpoint/v3/endpoint.proto' + description: |- + Endpoints is a list of the envoy ClusterLoadAssignment resource type. + API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/endpoint/v3/endpoint.proto items: - description: EnvoyResource holds serialized representation of - an envoy resource + description: |- + EnvoyResource holds serialized representation of an envoy + resource properties: name: - description: 'Name of the envoy resource. DEPRECATED: this - field has no effect and will be removed in an upcoming - release. The name of the resources for discovery purposes - is included in the resource itself. Refer to the envoy - API reference to check how the name is specified for each - resource type.' + description: |- + Name of the envoy resource. + DEPRECATED: this field has no effect and will be removed in an + upcoming release. The name of the resources for discovery purposes + is included in the resource itself. Refer to the envoy API reference + to check how the name is specified for each resource type. type: string value: description: Value is the serialized representation of the @@ -120,19 +129,21 @@ spec: type: object type: array extensionConfigs: - description: 'ExtensionConfigs is a list of the envoy ExtensionConfig - resource type API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/extension.proto' + description: |- + ExtensionConfigs is a list of the envoy ExtensionConfig resource type + API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/extension.proto items: - description: EnvoyResource holds serialized representation of - an envoy resource + description: |- + EnvoyResource holds serialized representation of an envoy + resource properties: name: - description: 'Name of the envoy resource. DEPRECATED: this - field has no effect and will be removed in an upcoming - release. The name of the resources for discovery purposes - is included in the resource itself. Refer to the envoy - API reference to check how the name is specified for each - resource type.' + description: |- + Name of the envoy resource. + DEPRECATED: this field has no effect and will be removed in an + upcoming release. The name of the resources for discovery purposes + is included in the resource itself. Refer to the envoy API reference + to check how the name is specified for each resource type. type: string value: description: Value is the serialized representation of the @@ -143,19 +154,21 @@ spec: type: object type: array listeners: - description: 'Listeners is a list of the envoy Listener resource - type. API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/listener/v3/listener.proto' + description: |- + Listeners is a list of the envoy Listener resource type. + API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/listener/v3/listener.proto items: - description: EnvoyResource holds serialized representation of - an envoy resource + description: |- + EnvoyResource holds serialized representation of an envoy + resource properties: name: - description: 'Name of the envoy resource. DEPRECATED: this - field has no effect and will be removed in an upcoming - release. The name of the resources for discovery purposes - is included in the resource itself. Refer to the envoy - API reference to check how the name is specified for each - resource type.' + description: |- + Name of the envoy resource. + DEPRECATED: this field has no effect and will be removed in an + upcoming release. The name of the resources for discovery purposes + is included in the resource itself. Refer to the envoy API reference + to check how the name is specified for each resource type. type: string value: description: Value is the serialized representation of the @@ -166,19 +179,21 @@ spec: type: object type: array routes: - description: 'Routes is a list of the envoy Route resource type. - API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route.proto' + description: |- + Routes is a list of the envoy Route resource type. + API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route.proto items: - description: EnvoyResource holds serialized representation of - an envoy resource + description: |- + EnvoyResource holds serialized representation of an envoy + resource properties: name: - description: 'Name of the envoy resource. DEPRECATED: this - field has no effect and will be removed in an upcoming - release. The name of the resources for discovery purposes - is included in the resource itself. Refer to the envoy - API reference to check how the name is specified for each - resource type.' + description: |- + Name of the envoy resource. + DEPRECATED: this field has no effect and will be removed in an + upcoming release. The name of the resources for discovery purposes + is included in the resource itself. Refer to the envoy API reference + to check how the name is specified for each resource type. type: string value: description: Value is the serialized representation of the @@ -189,19 +204,21 @@ spec: type: object type: array runtimes: - description: 'Runtimes is a list of the envoy Runtime resource - type. API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/runtime/v3/rtds.proto' + description: |- + Runtimes is a list of the envoy Runtime resource type. + API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/runtime/v3/rtds.proto items: - description: EnvoyResource holds serialized representation of - an envoy resource + description: |- + EnvoyResource holds serialized representation of an envoy + resource properties: name: - description: 'Name of the envoy resource. DEPRECATED: this - field has no effect and will be removed in an upcoming - release. The name of the resources for discovery purposes - is included in the resource itself. Refer to the envoy - API reference to check how the name is specified for each - resource type.' + description: |- + Name of the envoy resource. + DEPRECATED: this field has no effect and will be removed in an + upcoming release. The name of the resources for discovery purposes + is included in the resource itself. Refer to the envoy API reference + to check how the name is specified for each resource type. type: string value: description: Value is the serialized representation of the @@ -212,19 +229,21 @@ spec: type: object type: array scopedRoutes: - description: 'ScopedRoutes is a list of the envoy ScopeRoute resource - type. API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/scoped_route.proto' + description: |- + ScopedRoutes is a list of the envoy ScopeRoute resource type. + API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/scoped_route.proto items: - description: EnvoyResource holds serialized representation of - an envoy resource + description: |- + EnvoyResource holds serialized representation of an envoy + resource properties: name: - description: 'Name of the envoy resource. DEPRECATED: this - field has no effect and will be removed in an upcoming - release. The name of the resources for discovery purposes - is included in the resource itself. Refer to the envoy - API reference to check how the name is specified for each - resource type.' + description: |- + Name of the envoy resource. + DEPRECATED: this field has no effect and will be removed in an + upcoming release. The name of the resources for discovery purposes + is included in the resource itself. Refer to the envoy API reference + to check how the name is specified for each resource type. type: string value: description: Value is the serialized representation of the @@ -238,19 +257,20 @@ spec: description: Secrets is a list of references to Kubernetes Secret objects. items: - description: EnvoySecretResource holds a reference to a k8s - Secret from where to take a secret from. Only Secrets within - the same namespace can be referred. + description: |- + EnvoySecretResource holds a reference to a k8s Secret from where + to take a secret from. Only Secrets within the same namespace can + be referred. properties: name: - description: Name of the envoy tslCerticate secret resource. - The certificate will be fetched from a Kubernetes Secrets - of type 'kubernetes.io/tls' with this same name. + description: |- + Name of the envoy tslCerticate secret resource. The certificate will be fetched + from a Kubernetes Secrets of type 'kubernetes.io/tls' with this same name. type: string ref: - description: 'DEPRECATED: this field is deprecated and it''s - value will be ignored. The ''name'' of the Kubernetes - Secret must match the ''name'' field.' + description: |- + DEPRECATED: this field is deprecated and it's value will be ignored. The 'name' of the + Kubernetes Secret must match the 'name' field. properties: name: description: name is unique within a namespace to reference @@ -268,43 +288,45 @@ spec: type: array type: object nodeID: - description: NodeID holds the envoy identifier for the discovery service - to know which set of resources to send to each of the envoy clients - that connect to it. + description: |- + NodeID holds the envoy identifier for the discovery service to know which set + of resources to send to each of the envoy clients that connect to it. type: string resources: description: Resources holds the different types of resources suported by the envoy discovery service items: - description: Resource holds serialized representation of an envoy + description: |- + Resource holds serialized representation of an envoy resource properties: blueprint: - description: Blueprint specifies a template to generate a configuration - proto. It is currently only supported to generate secret configuration - resources from k8s Secrets + description: |- + Blueprint specifies a template to generate a configuration proto. It is currently + only supported to generate secret configuration resources from k8s Secrets enum: - tlsCertificate - validationContext type: string generateFromEndpointSlices: - description: Specifies a label selector to watch for EndpointSlices - that will be used to generate the endpoint resource + description: |- + Specifies a label selector to watch for EndpointSlices that will + be used to generate the endpoint resource properties: clusterName: type: string selector: - description: A label selector is a label query over a set - of resources. The result of matchLabels and matchExpressions - are ANDed. An empty label selector matches all objects. - A null label selector matches no objects. + description: |- + A label selector is a label query over a set of resources. The result of matchLabels and + matchExpressions are ANDed. An empty label selector matches all objects. A null + label selector matches no objects. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: @@ -312,17 +334,16 @@ spec: applies to. type: string operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, - NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string values. - If the operator is In or NotIn, the values array - must be non-empty. If the operator is Exists - or DoesNotExist, the values array must be empty. - This array is replaced during a strategic merge - patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -334,11 +355,10 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field - is "key", the operator is "In", and the values array - contains only "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic @@ -350,8 +370,9 @@ spec: - targetPort type: object generateFromOpaqueSecret: - description: The name of a Kubernetes Secret of type "Opaque". - It will generate an envoy "generic secret" proto. + description: |- + The name of a Kubernetes Secret of type "Opaque". It will generate an + envoy "generic secret" proto. properties: alias: description: A unique name to refer to the name:key combination @@ -385,9 +406,10 @@ spec: - extensionConfig type: string value: - description: Value is the protobufer message that configures - the resource. The proto must match the envoy configuration - API v3 specification for the given resource type (https://www.envoyproxy.io/docs/envoy/latest/api-docs/xds_protocol#resource-types) + description: |- + Value is the protobufer message that configures the resource. The proto + must match the envoy configuration API v3 specification for the given resource + type (https://www.envoyproxy.io/docs/envoy/latest/api-docs/xds_protocol#resource-types) type: object x-kubernetes-preserve-unknown-fields: true required: @@ -395,9 +417,9 @@ spec: type: object type: array serialization: - description: Serialization specicifies the serialization format used - to describe the resources. "json" and "yaml" are supported. "json" - is used if unset. + description: |- + Serialization specicifies the serialization format used to describe the resources. "json" and "yaml" + are supported. "json" is used if unset. enum: - json - b64json @@ -418,42 +440,42 @@ spec: of an object's state items: description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. maxLength: 32768 type: string observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. format: int64 minimum: 0 type: integer reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 @@ -467,11 +489,12 @@ spec: - Unknown type: string type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -484,13 +507,15 @@ spec: type: object type: array lastPublishedAt: - description: LastPublishedAt indicates the last time this config review - transitioned to published + description: |- + LastPublishedAt indicates the last time this config review transitioned to + published format: date-time type: string providesVersions: - description: ProvidesVersions keeps track of the version that this - revision publishes in the xDS server for each resource type + description: |- + ProvidesVersions keeps track of the version that this revision + publishes in the xDS server for each resource type properties: clusters: type: string @@ -510,12 +535,14 @@ spec: type: string type: object published: - description: Published signals if the EnvoyConfigRevision is the one - currently published in the xds server cache + description: |- + Published signals if the EnvoyConfigRevision is the one currently published + in the xds server cache type: boolean tainted: - description: Tainted indicates whether the EnvoyConfigRevision is - eligible for publishing or not + description: |- + Tainted indicates whether the EnvoyConfigRevision is eligible for publishing + or not type: boolean type: object type: object diff --git a/bundle/manifests/marin3r.3scale.net_envoyconfigs.yaml b/bundle/manifests/marin3r.3scale.net_envoyconfigs.yaml index da730ad7..24f24c1b 100644 --- a/bundle/manifests/marin3r.3scale.net_envoyconfigs.yaml +++ b/bundle/manifests/marin3r.3scale.net_envoyconfigs.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.14.0 creationTimestamp: null name: envoyconfigs.marin3r.3scale.net spec: @@ -35,20 +35,26 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: EnvoyConfig holds the configuration for a given envoy nodeID. - The spec of an EnvoyConfig object holds the Envoy resources that conform - the desired configuration for the given nodeID and that the discovery service - will send to any envoy client that identifies itself with that nodeID. + description: |- + EnvoyConfig holds the configuration for a given envoy nodeID. The spec of an EnvoyConfig + object holds the Envoy resources that conform the desired configuration for the given nodeID + and that the discovery service will send to any envoy client that identifies itself with that + nodeID. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -62,24 +68,26 @@ spec: - v3 type: string envoyResources: - description: EnvoyResources holds the different types of resources - suported by the envoy discovery service DEPRECATED. Use the `resources` - field instead. + description: |- + EnvoyResources holds the different types of resources suported by the envoy discovery service + DEPRECATED. Use the `resources` field instead. properties: clusters: - description: 'Clusters is a list of the envoy Cluster resource - type. API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto' + description: |- + Clusters is a list of the envoy Cluster resource type. + API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/cluster/v3/cluster.proto items: - description: EnvoyResource holds serialized representation of - an envoy resource + description: |- + EnvoyResource holds serialized representation of an envoy + resource properties: name: - description: 'Name of the envoy resource. DEPRECATED: this - field has no effect and will be removed in an upcoming - release. The name of the resources for discovery purposes - is included in the resource itself. Refer to the envoy - API reference to check how the name is specified for each - resource type.' + description: |- + Name of the envoy resource. + DEPRECATED: this field has no effect and will be removed in an + upcoming release. The name of the resources for discovery purposes + is included in the resource itself. Refer to the envoy API reference + to check how the name is specified for each resource type. type: string value: description: Value is the serialized representation of the @@ -90,19 +98,21 @@ spec: type: object type: array endpoints: - description: 'Endpoints is a list of the envoy ClusterLoadAssignment - resource type. API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/endpoint/v3/endpoint.proto' + description: |- + Endpoints is a list of the envoy ClusterLoadAssignment resource type. + API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/endpoint/v3/endpoint.proto items: - description: EnvoyResource holds serialized representation of - an envoy resource + description: |- + EnvoyResource holds serialized representation of an envoy + resource properties: name: - description: 'Name of the envoy resource. DEPRECATED: this - field has no effect and will be removed in an upcoming - release. The name of the resources for discovery purposes - is included in the resource itself. Refer to the envoy - API reference to check how the name is specified for each - resource type.' + description: |- + Name of the envoy resource. + DEPRECATED: this field has no effect and will be removed in an + upcoming release. The name of the resources for discovery purposes + is included in the resource itself. Refer to the envoy API reference + to check how the name is specified for each resource type. type: string value: description: Value is the serialized representation of the @@ -113,19 +123,21 @@ spec: type: object type: array extensionConfigs: - description: 'ExtensionConfigs is a list of the envoy ExtensionConfig - resource type API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/extension.proto' + description: |- + ExtensionConfigs is a list of the envoy ExtensionConfig resource type + API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/core/v3/extension.proto items: - description: EnvoyResource holds serialized representation of - an envoy resource + description: |- + EnvoyResource holds serialized representation of an envoy + resource properties: name: - description: 'Name of the envoy resource. DEPRECATED: this - field has no effect and will be removed in an upcoming - release. The name of the resources for discovery purposes - is included in the resource itself. Refer to the envoy - API reference to check how the name is specified for each - resource type.' + description: |- + Name of the envoy resource. + DEPRECATED: this field has no effect and will be removed in an + upcoming release. The name of the resources for discovery purposes + is included in the resource itself. Refer to the envoy API reference + to check how the name is specified for each resource type. type: string value: description: Value is the serialized representation of the @@ -136,19 +148,21 @@ spec: type: object type: array listeners: - description: 'Listeners is a list of the envoy Listener resource - type. API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/listener/v3/listener.proto' + description: |- + Listeners is a list of the envoy Listener resource type. + API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/listener/v3/listener.proto items: - description: EnvoyResource holds serialized representation of - an envoy resource + description: |- + EnvoyResource holds serialized representation of an envoy + resource properties: name: - description: 'Name of the envoy resource. DEPRECATED: this - field has no effect and will be removed in an upcoming - release. The name of the resources for discovery purposes - is included in the resource itself. Refer to the envoy - API reference to check how the name is specified for each - resource type.' + description: |- + Name of the envoy resource. + DEPRECATED: this field has no effect and will be removed in an + upcoming release. The name of the resources for discovery purposes + is included in the resource itself. Refer to the envoy API reference + to check how the name is specified for each resource type. type: string value: description: Value is the serialized representation of the @@ -159,19 +173,21 @@ spec: type: object type: array routes: - description: 'Routes is a list of the envoy Route resource type. - API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route.proto' + description: |- + Routes is a list of the envoy Route resource type. + API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/route.proto items: - description: EnvoyResource holds serialized representation of - an envoy resource + description: |- + EnvoyResource holds serialized representation of an envoy + resource properties: name: - description: 'Name of the envoy resource. DEPRECATED: this - field has no effect and will be removed in an upcoming - release. The name of the resources for discovery purposes - is included in the resource itself. Refer to the envoy - API reference to check how the name is specified for each - resource type.' + description: |- + Name of the envoy resource. + DEPRECATED: this field has no effect and will be removed in an + upcoming release. The name of the resources for discovery purposes + is included in the resource itself. Refer to the envoy API reference + to check how the name is specified for each resource type. type: string value: description: Value is the serialized representation of the @@ -182,19 +198,21 @@ spec: type: object type: array runtimes: - description: 'Runtimes is a list of the envoy Runtime resource - type. API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/runtime/v3/rtds.proto' + description: |- + Runtimes is a list of the envoy Runtime resource type. + API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/runtime/v3/rtds.proto items: - description: EnvoyResource holds serialized representation of - an envoy resource + description: |- + EnvoyResource holds serialized representation of an envoy + resource properties: name: - description: 'Name of the envoy resource. DEPRECATED: this - field has no effect and will be removed in an upcoming - release. The name of the resources for discovery purposes - is included in the resource itself. Refer to the envoy - API reference to check how the name is specified for each - resource type.' + description: |- + Name of the envoy resource. + DEPRECATED: this field has no effect and will be removed in an + upcoming release. The name of the resources for discovery purposes + is included in the resource itself. Refer to the envoy API reference + to check how the name is specified for each resource type. type: string value: description: Value is the serialized representation of the @@ -205,19 +223,21 @@ spec: type: object type: array scopedRoutes: - description: 'ScopedRoutes is a list of the envoy ScopeRoute resource - type. API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/scoped_route.proto' + description: |- + ScopedRoutes is a list of the envoy ScopeRoute resource type. + API V3 reference: https://www.envoyproxy.io/docs/envoy/latest/api-v3/config/route/v3/scoped_route.proto items: - description: EnvoyResource holds serialized representation of - an envoy resource + description: |- + EnvoyResource holds serialized representation of an envoy + resource properties: name: - description: 'Name of the envoy resource. DEPRECATED: this - field has no effect and will be removed in an upcoming - release. The name of the resources for discovery purposes - is included in the resource itself. Refer to the envoy - API reference to check how the name is specified for each - resource type.' + description: |- + Name of the envoy resource. + DEPRECATED: this field has no effect and will be removed in an + upcoming release. The name of the resources for discovery purposes + is included in the resource itself. Refer to the envoy API reference + to check how the name is specified for each resource type. type: string value: description: Value is the serialized representation of the @@ -231,19 +251,20 @@ spec: description: Secrets is a list of references to Kubernetes Secret objects. items: - description: EnvoySecretResource holds a reference to a k8s - Secret from where to take a secret from. Only Secrets within - the same namespace can be referred. + description: |- + EnvoySecretResource holds a reference to a k8s Secret from where + to take a secret from. Only Secrets within the same namespace can + be referred. properties: name: - description: Name of the envoy tslCerticate secret resource. - The certificate will be fetched from a Kubernetes Secrets - of type 'kubernetes.io/tls' with this same name. + description: |- + Name of the envoy tslCerticate secret resource. The certificate will be fetched + from a Kubernetes Secrets of type 'kubernetes.io/tls' with this same name. type: string ref: - description: 'DEPRECATED: this field is deprecated and it''s - value will be ignored. The ''name'' of the Kubernetes - Secret must match the ''name'' field.' + description: |- + DEPRECATED: this field is deprecated and it's value will be ignored. The 'name' of the + Kubernetes Secret must match the 'name' field. properties: name: description: name is unique within a namespace to reference @@ -261,43 +282,45 @@ spec: type: array type: object nodeID: - description: NodeID holds the envoy identifier for the discovery service - to know which set of resources to send to each of the envoy clients - that connect to it. + description: |- + NodeID holds the envoy identifier for the discovery service to know which set + of resources to send to each of the envoy clients that connect to it. type: string resources: description: Resources holds the different types of resources suported by the envoy discovery service items: - description: Resource holds serialized representation of an envoy + description: |- + Resource holds serialized representation of an envoy resource properties: blueprint: - description: Blueprint specifies a template to generate a configuration - proto. It is currently only supported to generate secret configuration - resources from k8s Secrets + description: |- + Blueprint specifies a template to generate a configuration proto. It is currently + only supported to generate secret configuration resources from k8s Secrets enum: - tlsCertificate - validationContext type: string generateFromEndpointSlices: - description: Specifies a label selector to watch for EndpointSlices - that will be used to generate the endpoint resource + description: |- + Specifies a label selector to watch for EndpointSlices that will + be used to generate the endpoint resource properties: clusterName: type: string selector: - description: A label selector is a label query over a set - of resources. The result of matchLabels and matchExpressions - are ANDed. An empty label selector matches all objects. - A null label selector matches no objects. + description: |- + A label selector is a label query over a set of resources. The result of matchLabels and + matchExpressions are ANDed. An empty label selector matches all objects. A null + label selector matches no objects. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is a selector - that contains values, a key, and an operator that + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values. properties: key: @@ -305,17 +328,16 @@ spec: applies to. type: string operator: - description: operator represents a key's relationship - to a set of values. Valid operators are In, - NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string values. - If the operator is In or NotIn, the values array - must be non-empty. If the operator is Exists - or DoesNotExist, the values array must be empty. - This array is replaced during a strategic merge - patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -327,11 +349,10 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} pairs. - A single {key,value} in the matchLabels map is equivalent - to an element of matchExpressions, whose key field - is "key", the operator is "In", and the values array - contains only "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic @@ -343,8 +364,9 @@ spec: - targetPort type: object generateFromOpaqueSecret: - description: The name of a Kubernetes Secret of type "Opaque". - It will generate an envoy "generic secret" proto. + description: |- + The name of a Kubernetes Secret of type "Opaque". It will generate an + envoy "generic secret" proto. properties: alias: description: A unique name to refer to the name:key combination @@ -378,9 +400,10 @@ spec: - extensionConfig type: string value: - description: Value is the protobufer message that configures - the resource. The proto must match the envoy configuration - API v3 specification for the given resource type (https://www.envoyproxy.io/docs/envoy/latest/api-docs/xds_protocol#resource-types) + description: |- + Value is the protobufer message that configures the resource. The proto + must match the envoy configuration API v3 specification for the given resource + type (https://www.envoyproxy.io/docs/envoy/latest/api-docs/xds_protocol#resource-types) type: object x-kubernetes-preserve-unknown-fields: true required: @@ -388,9 +411,9 @@ spec: type: object type: array serialization: - description: Serialization specicifies the serialization format used - to describe the resources. "json" and "yaml" are supported. "json" - is used if unset. + description: |- + Serialization specicifies the serialization format used to describe the resources. "json" and "yaml" + are supported. "json" is used if unset. enum: - json - yaml @@ -402,53 +425,53 @@ spec: description: EnvoyConfigStatus defines the observed state of EnvoyConfig properties: cacheState: - description: CacheState summarizes all the observations about the - EnvoyConfig to give the user a concrete idea on the general status - of the discovery servie cache. It is intended only for human consumption. - Other controllers should relly on conditions to determine the status - of the discovery server cache. + description: |- + CacheState summarizes all the observations about the EnvoyConfig + to give the user a concrete idea on the general status of the discovery servie cache. + It is intended only for human consumption. Other controllers should relly on conditions + to determine the status of the discovery server cache. type: string conditions: description: Conditions represent the latest available observations of an object's state items: description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. maxLength: 32768 type: string observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. format: int64 minimum: 0 type: integer reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 @@ -462,11 +485,12 @@ spec: - Unknown type: string type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -479,56 +503,66 @@ spec: type: object type: array desiredVersion: - description: DesiredVersion represents the resources version described - in the spec of the EnvoyConfig object + description: |- + DesiredVersion represents the resources version described in + the spec of the EnvoyConfig object type: string publishedVersion: - description: PublishedVersion is the config version currently served - by the envoy discovery service for the give nodeID + description: |- + PublishedVersion is the config version currently + served by the envoy discovery service for the give nodeID type: string revisions: - description: ConfigRevisions is an ordered list of references to EnvoyConfigRevision + description: |- + ConfigRevisions is an ordered list of references to EnvoyConfigRevision objects items: description: ConfigRevisionRef holds a reference to EnvoyConfigRevision object properties: ref: - description: Ref is a reference to the EnvoyConfigRevision object - that holds the configuration matching the Version field. + description: |- + Ref is a reference to the EnvoyConfigRevision object that + holds the configuration matching the Version field. properties: apiVersion: description: API version of the referent. type: string fieldPath: - description: 'If referring to a piece of an object instead - of an entire object, this string should contain a valid - JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container - within a pod, this would take on a value like: "spec.containers{name}" - (where "name" refers to the name of the container that - triggered the event) or if no container name is specified - "spec.containers[2]" (container with index 2 in this pod). - This syntax is chosen only to have some well-defined way - of referencing a part of an object. TODO: this design - is not final and this field is subject to change in the - future.' + description: |- + If referring to a piece of an object instead of an entire object, this string + should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. + For example, if the object reference is to a container within a pod, this would take on a value like: + "spec.containers{name}" (where "name" refers to the name of the container that triggered + the event) or if no container name is specified "spec.containers[2]" (container with + index 2 in this pod). This syntax is chosen only to have some well-defined way of + referencing a part of an object. + TODO: this design is not final and this field is subject to change in the future. type: string kind: - description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind of the referent. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string name: - description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names' + description: |- + Name of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string namespace: - description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/' + description: |- + Namespace of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ type: string resourceVersion: - description: 'Specific resourceVersion to which this reference - is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency' + description: |- + Specific resourceVersion to which this reference is made, if any. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency type: string uid: - description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids' + description: |- + UID of the referent. + More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids type: string type: object x-kubernetes-map-type: atomic diff --git a/bundle/manifests/marin3r.clusterserviceversion.yaml b/bundle/manifests/marin3r.clusterserviceversion.yaml index 5c3224b5..cf1936b7 100644 --- a/bundle/manifests/marin3r.clusterserviceversion.yaml +++ b/bundle/manifests/marin3r.clusterserviceversion.yaml @@ -173,14 +173,14 @@ metadata: categories: Networking certified: "false" containerImage: quay.io/3scale/marin3r - createdAt: "2024-11-04T10:39:27Z" + createdAt: "2024-11-08T12:30:05Z" description: Lighweight, CRD based Envoy control plane for Kubernetes operators.operatorframework.io/builder: operator-sdk-v1.28.0 operators.operatorframework.io/internal-objects: '["envoyconfigrevisions.marin3r.3scale.net","discoveryservicecertificates.operator.marin3r.3scale.net"]' operators.operatorframework.io/project_layout: go.kubebuilder.io/v3 repository: https://github.com/3scale-ops/marin3r support: Red Hat, Inc. - name: marin3r.v0.13.2-alpha.1 + name: marin3r.v0.13.2-alpha.2 namespace: placeholder spec: apiservicedefinitions: {} @@ -927,7 +927,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.annotations['olm.targetNamespaces'] - image: quay.io/3scale/marin3r:v0.13.2-alpha.1 + image: quay.io/3scale/marin3r:v0.13.2-alpha.2 livenessProbe: httpGet: path: /healthz @@ -985,7 +985,7 @@ spec: valueFrom: fieldRef: fieldPath: metadata.annotations['olm.targetNamespaces'] - image: quay.io/3scale/marin3r:v0.13.2-alpha.1 + image: quay.io/3scale/marin3r:v0.13.2-alpha.2 livenessProbe: httpGet: path: /healthz @@ -1292,7 +1292,7 @@ spec: maturity: alpha provider: name: Red Hat - version: 0.13.2-alpha.1 + version: 0.13.2-alpha.2 webhookdefinitions: - admissionReviewVersions: - v1 diff --git a/bundle/manifests/operator.marin3r.3scale.net_discoveryservicecertificates.yaml b/bundle/manifests/operator.marin3r.3scale.net_discoveryservicecertificates.yaml index cf9c3836..e30537b3 100644 --- a/bundle/manifests/operator.marin3r.3scale.net_discoveryservicecertificates.yaml +++ b/bundle/manifests/operator.marin3r.3scale.net_discoveryservicecertificates.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.14.0 creationTimestamp: null name: discoveryservicecertificates.operator.marin3r.3scale.net spec: @@ -29,20 +29,25 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: DiscoveryServiceCertificate is an internal resource used to create - certificates. This resource is used by the DiscoveryService controller to - create the required certificates for the different components. Direct use - of DiscoveryServiceCertificate objects is discouraged. + description: |- + DiscoveryServiceCertificate is an internal resource used to create certificates. This resource + is used by the DiscoveryService controller to create the required certificates for the different + components. Direct use of DiscoveryServiceCertificate objects is discouraged. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -51,9 +56,9 @@ spec: of DiscoveryServiceCertificate properties: certificateRenewal: - description: CertificateRenewalConfig configures the certificate renewal - process. If unset default behavior is to renew the certificate but - not notify of renewals. + description: |- + CertificateRenewalConfig configures the certificate renewal process. If unset default + behavior is to renew the certificate but not notify of renewals. properties: enabled: description: Enabled is a flag to enable or disable renewal of @@ -66,8 +71,9 @@ spec: description: CommonName is the CommonName of the certificate type: string hosts: - description: Hosts is the list of hosts the certificate is valid for. - Only use when 'IsServerCertificate' is true. If unset, the CommonName + description: |- + Hosts is the list of hosts the certificate is valid for. Only + use when 'IsServerCertificate' is true. If unset, the CommonName field will be used to populate the valid hosts of the certificate. items: type: string @@ -77,8 +83,9 @@ spec: a CA type: boolean secretRef: - description: SecretRef is a reference to the secret that will hold - the certificate and the private key. + description: |- + SecretRef is a reference to the secret that will hold the certificate + and the private key. properties: name: description: name is unique within a namespace to reference a @@ -91,12 +98,14 @@ spec: type: object x-kubernetes-map-type: atomic server: - description: IsServerCertificate is a boolean specifying if the certificate - should be issued with server auth usage enabled + description: |- + IsServerCertificate is a boolean specifying if the certificate should be + issued with server auth usage enabled type: boolean signer: - description: Signer specifies the signer to use to create this certificate. - Supported signers are CertManager and SelfSigned. + description: |- + Signer specifies the signer to use to create this certificate. Supported + signers are CertManager and SelfSigned. properties: caSigned: description: CASigned holds specific configuration for the CASigned @@ -139,51 +148,51 @@ spec: of DiscoveryServiceCertificate properties: certificateHash: - description: CertificateHash stores the current hash of the certificate. - It is used for other controllers to validate if a certificate has - been re-issued. + description: |- + CertificateHash stores the current hash of the certificate. It is used + for other controllers to validate if a certificate has been re-issued. type: string conditions: description: Conditions represent the latest available observations of an object's state items: description: "Condition contains details for one aspect of the current - state of this API Resource. --- This struct is intended for direct - use as an array at the field path .status.conditions. For example, - \n type FooStatus struct{ // Represents the observations of a - foo's current state. // Known .status.conditions.type are: \"Available\", - \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge - // +listType=map // +listMapKey=type Conditions []metav1.Condition - `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" - protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" + state of this API Resource.\n---\nThis struct is intended for + direct use as an array at the field path .status.conditions. For + example,\n\n\n\ttype FooStatus struct{\n\t // Represents the + observations of a foo's current state.\n\t // Known .status.conditions.type + are: \"Available\", \"Progressing\", and \"Degraded\"\n\t // + +patchMergeKey=type\n\t // +patchStrategy=merge\n\t // +listType=map\n\t + \ // +listMapKey=type\n\t Conditions []metav1.Condition `json:\"conditions,omitempty\" + patchStrategy:\"merge\" patchMergeKey:\"type\" protobuf:\"bytes,1,rep,name=conditions\"`\n\n\n\t + \ // other fields\n\t}" properties: lastTransitionTime: - description: lastTransitionTime is the last time the condition - transitioned from one status to another. This should be when - the underlying condition changed. If that is not known, then - using the time when the API field changed is acceptable. + description: |- + lastTransitionTime is the last time the condition transitioned from one status to another. + This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable. format: date-time type: string message: - description: message is a human readable message indicating - details about the transition. This may be an empty string. + description: |- + message is a human readable message indicating details about the transition. + This may be an empty string. maxLength: 32768 type: string observedGeneration: - description: observedGeneration represents the .metadata.generation - that the condition was set based upon. For instance, if .metadata.generation - is currently 12, but the .status.conditions[x].observedGeneration - is 9, the condition is out of date with respect to the current - state of the instance. + description: |- + observedGeneration represents the .metadata.generation that the condition was set based upon. + For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date + with respect to the current state of the instance. format: int64 minimum: 0 type: integer reason: - description: reason contains a programmatic identifier indicating - the reason for the condition's last transition. Producers - of specific condition types may define expected values and - meanings for this field, and whether the values are considered - a guaranteed API. The value should be a CamelCase string. + description: |- + reason contains a programmatic identifier indicating the reason for the condition's last transition. + Producers of specific condition types may define expected values and meanings for this field, + and whether the values are considered a guaranteed API. + The value should be a CamelCase string. This field may not be empty. maxLength: 1024 minLength: 1 @@ -197,11 +206,12 @@ spec: - Unknown type: string type: - description: type of condition in CamelCase or in foo.example.com/CamelCase. - --- Many .condition.type values are consistent across resources - like Available, but because arbitrary conditions can be useful - (see .node.status.conditions), the ability to deconflict is - important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + description: |- + type of condition in CamelCase or in foo.example.com/CamelCase. + --- + Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be + useful (see .node.status.conditions), the ability to deconflict is important. + The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) maxLength: 316 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string @@ -218,7 +228,8 @@ spec: format: date-time type: string notBefore: - description: NotBefore is the time at which the certificate starts + description: |- + NotBefore is the time at which the certificate starts being valid format: date-time type: string diff --git a/bundle/manifests/operator.marin3r.3scale.net_discoveryservices.yaml b/bundle/manifests/operator.marin3r.3scale.net_discoveryservices.yaml index 3e40550f..50daab1c 100644 --- a/bundle/manifests/operator.marin3r.3scale.net_discoveryservices.yaml +++ b/bundle/manifests/operator.marin3r.3scale.net_discoveryservices.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.14.0 creationTimestamp: null name: discoveryservices.operator.marin3r.3scale.net spec: @@ -17,18 +17,24 @@ spec: - name: v1alpha1 schema: openAPIV3Schema: - description: DiscoveryService represents an envoy discovery service server. - Only one instance per namespace is currently supported. + description: |- + DiscoveryService represents an envoy discovery service server. Only one + instance per namespace is currently supported. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -36,9 +42,9 @@ spec: description: DiscoveryServiceSpec defines the desired state of DiscoveryService properties: debug: - description: Debug enables debugging log level for the discovery service - controllers. It is safe to use since secret data is never shown - in the logs. + description: |- + Debug enables debugging log level for the discovery service controllers. It is safe to + use since secret data is never shown in the logs. type: boolean image: description: Image holds the image to use for the discovery service @@ -50,13 +56,14 @@ spec: format: int32 type: integer pkiConfg: - description: PKIConfig has configuration for the PKI that marin3r - manages for the different certificates it requires + description: |- + PKIConfig has configuration for the PKI that marin3r manages for the + different certificates it requires properties: rootCertificateAuthority: - description: CertificateOptions specifies options to generate - the server certificate used both for the xDS server and the - mutating webhook server. + description: |- + CertificateOptions specifies options to generate the server certificate used both + for the xDS server and the mutating webhook server. properties: duration: type: string @@ -67,9 +74,9 @@ spec: - secretName type: object serverCertificate: - description: CertificateOptions specifies options to generate - the server certificate used both for the xDS server and the - mutating webhook server. + description: |- + CertificateOptions specifies options to generate the server certificate used both + for the xDS server and the mutating webhook server. properties: duration: type: string @@ -92,23 +99,30 @@ spec: format: int32 type: integer resources: - description: Resources holds the Resource Requirements to use for - the discovery service Deployment. When not set it defaults to no - resource requests nor limits. CPU and Memory resources are supported. + description: |- + Resources holds the Resource Requirements to use for the discovery service + Deployment. When not set it defaults to no resource requests nor limits. + CPU and Memory resources are supported. properties: claims: - description: "Claims lists the names of resources, defined in - spec.resourceClaims, that are used by this container. \n This - is an alpha field and requires enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. It can only be set - for containers." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in pod.spec.resourceClaims - of the Pod where this field is used. It makes that resource - available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -124,8 +138,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -134,11 +149,11 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object serviceConfig: @@ -173,9 +188,10 @@ spec: format: int32 type: integer collisionCount: - description: Count of hash collisions for the Deployment. The - Deployment controller uses this field as a collision avoidance - mechanism when it needs to create the name for the newest ReplicaSet. + description: |- + Count of hash collisions for the Deployment. The Deployment controller uses this + field as a collision avoidance mechanism when it needs to create the name for the + newest ReplicaSet. format: int32 type: integer conditions: @@ -228,11 +244,10 @@ spec: format: int32 type: integer unavailableReplicas: - description: Total number of unavailable pods targeted by this - deployment. This is the total number of pods that are still - required for the deployment to have 100% available capacity. - They may either be pods that are running but not yet available - or pods that still have not been created. + description: |- + Total number of unavailable pods targeted by this deployment. This is the total number of + pods that are still required for the deployment to have 100% available capacity. They may + either be pods that are running but not yet available or pods that still have not been created. format: int32 type: integer updatedReplicas: diff --git a/bundle/manifests/operator.marin3r.3scale.net_envoydeployments.yaml b/bundle/manifests/operator.marin3r.3scale.net_envoydeployments.yaml index f9e8cacc..f8c18ddd 100644 --- a/bundle/manifests/operator.marin3r.3scale.net_envoydeployments.yaml +++ b/bundle/manifests/operator.marin3r.3scale.net_envoydeployments.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.11.3 + controller-gen.kubebuilder.io/version: v0.14.0 creationTimestamp: null name: envoydeployments.operator.marin3r.3scale.net spec: @@ -17,18 +17,24 @@ spec: - name: v1alpha1 schema: openAPIV3Schema: - description: EnvoyDeployment is a resource to deploy and manage a Kubernetes - Deployment of Envoy Pods. + description: |- + EnvoyDeployment is a resource to deploy and manage a Kubernetes Deployment + of Envoy Pods. properties: apiVersion: - description: 'APIVersion defines the versioned schema of this representation - of an object. Servers should convert recognized schemas to the latest - internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + description: |- + APIVersion defines the versioned schema of this representation of an object. + Servers should convert recognized schemas to the latest internal value, and + may reject unrecognized values. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources type: string kind: - description: 'Kind is a string value representing the REST resource this - object represents. Servers may infer this from the endpoint the client - submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + description: |- + Kind is a string value representing the REST resource this object represents. + Servers may infer this from the endpoint the client submits requests to. + Cannot be updated. + In CamelCase. + More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds type: string metadata: type: object @@ -51,22 +57,20 @@ spec: pod. properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to schedule pods to - nodes that satisfy the affinity expressions specified by - this field, but it may choose a node that violates one or - more of the expressions. The node that is most preferred - is the one with the greatest sum of weights, i.e. for each - node that meets all of the scheduling requirements (resource - request, requiredDuringScheduling affinity expressions, - etc.), compute a sum by iterating through the elements of - this field and adding "weight" to the sum if the node matches - the corresponding matchExpressions; the node(s) with the - highest sum are the most preferred. + description: |- + The scheduler will prefer to schedule pods to nodes that satisfy + the affinity expressions specified by this field, but it may choose + a node that violates one or more of the expressions. The node that is + most preferred is the one with the greatest sum of weights, i.e. + for each node that meets all of the scheduling requirements (resource + request, requiredDuringScheduling affinity expressions, etc.), + compute a sum by iterating through the elements of this field and adding + "weight" to the sum if the node matches the corresponding matchExpressions; the + node(s) with the highest sum are the most preferred. items: - description: An empty preferred scheduling term matches - all objects with implicit weight 0 (i.e. it's a no-op). - A null preferred scheduling term matches no objects (i.e. - is also a no-op). + description: |- + An empty preferred scheduling term matches all objects with implicit weight 0 + (i.e. it's a no-op). A null preferred scheduling term matches no objects (i.e. is also a no-op). properties: preference: description: A node selector term, associated with the @@ -76,30 +80,26 @@ spec: description: A list of node selector requirements by node's labels. items: - description: A node selector requirement is a - selector that contains values, a key, and an - operator that relates the key and values. + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: - description: Represents a key's relationship - to a set of values. Valid operators are - In, NotIn, Exists, DoesNotExist. Gt, and - Lt. + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: - description: An array of string values. If - the operator is In or NotIn, the values - array must be non-empty. If the operator - is Exists or DoesNotExist, the values array - must be empty. If the operator is Gt or - Lt, the values array must have a single - element, which will be interpreted as an - integer. This array is replaced during a - strategic merge patch. + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. items: type: string type: array @@ -112,30 +112,26 @@ spec: description: A list of node selector requirements by node's fields. items: - description: A node selector requirement is a - selector that contains values, a key, and an - operator that relates the key and values. + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: - description: Represents a key's relationship - to a set of values. Valid operators are - In, NotIn, Exists, DoesNotExist. Gt, and - Lt. + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: - description: An array of string values. If - the operator is In or NotIn, the values - array must be non-empty. If the operator - is Exists or DoesNotExist, the values array - must be empty. If the operator is Gt or - Lt, the values array must have a single - element, which will be interpreted as an - integer. This array is replaced during a - strategic merge patch. + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. items: type: string type: array @@ -157,50 +153,46 @@ spec: type: object type: array requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements specified by this - field are not met at scheduling time, the pod will not be - scheduled onto the node. If the affinity requirements specified - by this field cease to be met at some point during pod execution - (e.g. due to an update), the system may or may not try to - eventually evict the pod from its node. + description: |- + If the affinity requirements specified by this field are not met at + scheduling time, the pod will not be scheduled onto the node. + If the affinity requirements specified by this field cease to be met + at some point during pod execution (e.g. due to an update), the system + may or may not try to eventually evict the pod from its node. properties: nodeSelectorTerms: description: Required. A list of node selector terms. The terms are ORed. items: - description: A null or empty node selector term matches - no objects. The requirements of them are ANDed. The - TopologySelectorTerm type implements a subset of the - NodeSelectorTerm. + description: |- + A null or empty node selector term matches no objects. The requirements of + them are ANDed. + The TopologySelectorTerm type implements a subset of the NodeSelectorTerm. properties: matchExpressions: description: A list of node selector requirements by node's labels. items: - description: A node selector requirement is a - selector that contains values, a key, and an - operator that relates the key and values. + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: - description: Represents a key's relationship - to a set of values. Valid operators are - In, NotIn, Exists, DoesNotExist. Gt, and - Lt. + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: - description: An array of string values. If - the operator is In or NotIn, the values - array must be non-empty. If the operator - is Exists or DoesNotExist, the values array - must be empty. If the operator is Gt or - Lt, the values array must have a single - element, which will be interpreted as an - integer. This array is replaced during a - strategic merge patch. + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. items: type: string type: array @@ -213,30 +205,26 @@ spec: description: A list of node selector requirements by node's fields. items: - description: A node selector requirement is a - selector that contains values, a key, and an - operator that relates the key and values. + description: |- + A node selector requirement is a selector that contains values, a key, and an operator + that relates the key and values. properties: key: description: The label key that the selector applies to. type: string operator: - description: Represents a key's relationship - to a set of values. Valid operators are - In, NotIn, Exists, DoesNotExist. Gt, and - Lt. + description: |- + Represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists, DoesNotExist. Gt, and Lt. type: string values: - description: An array of string values. If - the operator is In or NotIn, the values - array must be non-empty. If the operator - is Exists or DoesNotExist, the values array - must be empty. If the operator is Gt or - Lt, the values array must have a single - element, which will be interpreted as an - integer. This array is replaced during a - strategic merge patch. + description: |- + An array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. If the operator is Gt or Lt, the values + array must have a single element, which will be interpreted as an integer. + This array is replaced during a strategic merge patch. items: type: string type: array @@ -258,16 +246,15 @@ spec: this pod in the same node, zone, etc. as some other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to schedule pods to - nodes that satisfy the affinity expressions specified by - this field, but it may choose a node that violates one or - more of the expressions. The node that is most preferred - is the one with the greatest sum of weights, i.e. for each - node that meets all of the scheduling requirements (resource - request, requiredDuringScheduling affinity expressions, - etc.), compute a sum by iterating through the elements of - this field and adding "weight" to the sum if the node has - pods which matches the corresponding podAffinityTerm; the + description: |- + The scheduler will prefer to schedule pods to nodes that satisfy + the affinity expressions specified by this field, but it may choose + a node that violates one or more of the expressions. The node that is + most preferred is the one with the greatest sum of weights, i.e. + for each node that meets all of the scheduling requirements (resource + request, requiredDuringScheduling affinity expressions, etc.), + compute a sum by iterating through the elements of this field and adding + "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -278,37 +265,33 @@ spec: with the corresponding weight. properties: labelSelector: - description: A label query over a set of resources, - in this case pods. If it's null, this PodAffinityTerm - matches with no Pods. + description: |- + A label query over a set of resources, in this case pods. + If it's null, this PodAffinityTerm matches with no Pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, a key, - and an operator that relates the key and - values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic merge patch. items: type: string @@ -321,89 +304,74 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only "value". - The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set of pod label - keys to select which pods will be taken into consideration. - The keys are used to lookup values from the incoming - pod labels, those key-value labels are merged - with `LabelSelector` as `key in (value)` to select - the group of existing pods which pods will be - taken into consideration for the incoming pod's - pod (anti) affinity. Keys that don't exist in - the incoming pod labels will be ignored. The default - value is empty. The same key is forbidden to exist - in both MatchLabelKeys and LabelSelector. Also, - MatchLabelKeys cannot be set when LabelSelector - isn't set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity feature gate. + description: |- + MatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. + Also, MatchLabelKeys cannot be set when LabelSelector isn't set. + This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a set of pod label - keys to select which pods will be taken into consideration. - The keys are used to lookup values from the incoming - pod labels, those key-value labels are merged - with `LabelSelector` as `key notin (value)` to - select the group of existing pods which pods will - be taken into consideration for the incoming pod's - pod (anti) affinity. Keys that don't exist in - the incoming pod labels will be ignored. The default - value is empty. The same key is forbidden to exist - in both MismatchLabelKeys and LabelSelector. Also, - MismatchLabelKeys cannot be set when LabelSelector - isn't set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity feature gate. + description: |- + MismatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. + Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. + This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of namespaces - that the term applies to. The term is applied - to the union of the namespaces selected by this - field and the ones listed in the namespaces field. - null selector and null or empty namespaces list - means "this pod's namespace". An empty selector - ({}) matches all namespaces. + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, a key, - and an operator that relates the key and - values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic merge patch. items: type: string @@ -416,40 +384,37 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only "value". - The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static list - of namespace names that the term applies to. The - term is applied to the union of the namespaces - listed in this field and the ones selected by - namespaceSelector. null or empty namespaces list - and null namespaceSelector means "this pod's namespace". + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector means "this pod's namespace". items: type: string type: array topologyKey: - description: This pod should be co-located (affinity) - or not co-located (anti-affinity) with the pods - matching the labelSelector in the specified namespaces, - where co-located is defined as running on a node - whose value of the label with key topologyKey - matches that of any node on which any of the selected - pods is running. Empty topologyKey is not allowed. + description: |- + This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching + the labelSelector in the specified namespaces, where co-located is defined as running on a node + whose value of the label with key topologyKey matches that of any node on which any of the + selected pods is running. + Empty topologyKey is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with matching the corresponding - podAffinityTerm, in the range 1-100. + description: |- + weight associated with matching the corresponding podAffinityTerm, + in the range 1-100. format: int32 type: integer required: @@ -458,53 +423,51 @@ spec: type: object type: array requiredDuringSchedulingIgnoredDuringExecution: - description: If the affinity requirements specified by this - field are not met at scheduling time, the pod will not be - scheduled onto the node. If the affinity requirements specified - by this field cease to be met at some point during pod execution - (e.g. due to a pod label update), the system may or may - not try to eventually evict the pod from its node. When - there are multiple elements, the lists of nodes corresponding - to each podAffinityTerm are intersected, i.e. all terms - must be satisfied. + description: |- + If the affinity requirements specified by this field are not met at + scheduling time, the pod will not be scheduled onto the node. + If the affinity requirements specified by this field cease to be met + at some point during pod execution (e.g. due to a pod label update), the + system may or may not try to eventually evict the pod from its node. + When there are multiple elements, the lists of nodes corresponding to each + podAffinityTerm are intersected, i.e. all terms must be satisfied. items: - description: Defines a set of pods (namely those matching - the labelSelector relative to the given namespace(s)) - that this pod should be co-located (affinity) or not co-located - (anti-affinity) with, where co-located is defined as running - on a node whose value of the label with key - matches that of any node on which a pod of the set of - pods is running + description: |- + Defines a set of pods (namely those matching the labelSelector + relative to the given namespace(s)) that this pod should be + co-located (affinity) or not co-located (anti-affinity) with, + where co-located is defined as running on a node whose value of + the label with key matches that of any node on which + a pod of the set of pods is running properties: labelSelector: - description: A label query over a set of resources, - in this case pods. If it's null, this PodAffinityTerm - matches with no Pods. + description: |- + A label query over a set of resources, in this case pods. + If it's null, this PodAffinityTerm matches with no Pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is a - selector that contains values, a key, and an - operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's relationship - to a set of values. Valid operators are - In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. If the - operator is Exists or DoesNotExist, the - values array must be empty. This array is - replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -516,84 +479,74 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is "In", - and the values array contains only "value". The - requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set of pod label keys - to select which pods will be taken into consideration. - The keys are used to lookup values from the incoming - pod labels, those key-value labels are merged with - `LabelSelector` as `key in (value)` to select the - group of existing pods which pods will be taken into - consideration for the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming pod labels will - be ignored. The default value is empty. The same key - is forbidden to exist in both MatchLabelKeys and LabelSelector. - Also, MatchLabelKeys cannot be set when LabelSelector - isn't set. This is an alpha field and requires enabling - MatchLabelKeysInPodAffinity feature gate. + description: |- + MatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. + Also, MatchLabelKeys cannot be set when LabelSelector isn't set. + This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a set of pod label - keys to select which pods will be taken into consideration. - The keys are used to lookup values from the incoming - pod labels, those key-value labels are merged with - `LabelSelector` as `key notin (value)` to select the - group of existing pods which pods will be taken into - consideration for the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming pod labels will - be ignored. The default value is empty. The same key - is forbidden to exist in both MismatchLabelKeys and - LabelSelector. Also, MismatchLabelKeys cannot be set - when LabelSelector isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. + description: |- + MismatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. + Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. + This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of namespaces - that the term applies to. The term is applied to the - union of the namespaces selected by this field and - the ones listed in the namespaces field. null selector - and null or empty namespaces list means "this pod's - namespace". An empty selector ({}) matches all namespaces. + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is a - selector that contains values, a key, and an - operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's relationship - to a set of values. Valid operators are - In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. If the - operator is Exists or DoesNotExist, the - values array must be empty. This array is - replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -605,32 +558,28 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is "In", - and the values array contains only "value". The - requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static list of namespace - names that the term applies to. The term is applied - to the union of the namespaces listed in this field - and the ones selected by namespaceSelector. null or - empty namespaces list and null namespaceSelector means - "this pod's namespace". + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector means "this pod's namespace". items: type: string type: array topologyKey: - description: This pod should be co-located (affinity) - or not co-located (anti-affinity) with the pods matching - the labelSelector in the specified namespaces, where - co-located is defined as running on a node whose value - of the label with key topologyKey matches that of - any node on which any of the selected pods is running. + description: |- + This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching + the labelSelector in the specified namespaces, where co-located is defined as running on a node + whose value of the label with key topologyKey matches that of any node on which any of the + selected pods is running. Empty topologyKey is not allowed. type: string required: @@ -644,16 +593,15 @@ spec: other pod(s)). properties: preferredDuringSchedulingIgnoredDuringExecution: - description: The scheduler will prefer to schedule pods to - nodes that satisfy the anti-affinity expressions specified - by this field, but it may choose a node that violates one - or more of the expressions. The node that is most preferred - is the one with the greatest sum of weights, i.e. for each - node that meets all of the scheduling requirements (resource - request, requiredDuringScheduling anti-affinity expressions, - etc.), compute a sum by iterating through the elements of - this field and adding "weight" to the sum if the node has - pods which matches the corresponding podAffinityTerm; the + description: |- + The scheduler will prefer to schedule pods to nodes that satisfy + the anti-affinity expressions specified by this field, but it may choose + a node that violates one or more of the expressions. The node that is + most preferred is the one with the greatest sum of weights, i.e. + for each node that meets all of the scheduling requirements (resource + request, requiredDuringScheduling anti-affinity expressions, etc.), + compute a sum by iterating through the elements of this field and adding + "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. items: description: The weights of all of the matched WeightedPodAffinityTerm @@ -664,37 +612,33 @@ spec: with the corresponding weight. properties: labelSelector: - description: A label query over a set of resources, - in this case pods. If it's null, this PodAffinityTerm - matches with no Pods. + description: |- + A label query over a set of resources, in this case pods. + If it's null, this PodAffinityTerm matches with no Pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, a key, - and an operator that relates the key and - values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic merge patch. items: type: string @@ -707,89 +651,74 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only "value". - The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set of pod label - keys to select which pods will be taken into consideration. - The keys are used to lookup values from the incoming - pod labels, those key-value labels are merged - with `LabelSelector` as `key in (value)` to select - the group of existing pods which pods will be - taken into consideration for the incoming pod's - pod (anti) affinity. Keys that don't exist in - the incoming pod labels will be ignored. The default - value is empty. The same key is forbidden to exist - in both MatchLabelKeys and LabelSelector. Also, - MatchLabelKeys cannot be set when LabelSelector - isn't set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity feature gate. + description: |- + MatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. + Also, MatchLabelKeys cannot be set when LabelSelector isn't set. + This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a set of pod label - keys to select which pods will be taken into consideration. - The keys are used to lookup values from the incoming - pod labels, those key-value labels are merged - with `LabelSelector` as `key notin (value)` to - select the group of existing pods which pods will - be taken into consideration for the incoming pod's - pod (anti) affinity. Keys that don't exist in - the incoming pod labels will be ignored. The default - value is empty. The same key is forbidden to exist - in both MismatchLabelKeys and LabelSelector. Also, - MismatchLabelKeys cannot be set when LabelSelector - isn't set. This is an alpha field and requires - enabling MatchLabelKeysInPodAffinity feature gate. + description: |- + MismatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. + Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. + This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of namespaces - that the term applies to. The term is applied - to the union of the namespaces selected by this - field and the ones listed in the namespaces field. - null selector and null or empty namespaces list - means "this pod's namespace". An empty selector - ({}) matches all namespaces. + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, a key, - and an operator that relates the key and - values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's - relationship to a set of values. Valid - operators are In, NotIn, Exists and - DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. - If the operator is Exists or DoesNotExist, - the values array must be empty. This - array is replaced during a strategic + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic merge patch. items: type: string @@ -802,40 +731,37 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is - "In", and the values array contains only "value". - The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static list - of namespace names that the term applies to. The - term is applied to the union of the namespaces - listed in this field and the ones selected by - namespaceSelector. null or empty namespaces list - and null namespaceSelector means "this pod's namespace". + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector means "this pod's namespace". items: type: string type: array topologyKey: - description: This pod should be co-located (affinity) - or not co-located (anti-affinity) with the pods - matching the labelSelector in the specified namespaces, - where co-located is defined as running on a node - whose value of the label with key topologyKey - matches that of any node on which any of the selected - pods is running. Empty topologyKey is not allowed. + description: |- + This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching + the labelSelector in the specified namespaces, where co-located is defined as running on a node + whose value of the label with key topologyKey matches that of any node on which any of the + selected pods is running. + Empty topologyKey is not allowed. type: string required: - topologyKey type: object weight: - description: weight associated with matching the corresponding - podAffinityTerm, in the range 1-100. + description: |- + weight associated with matching the corresponding podAffinityTerm, + in the range 1-100. format: int32 type: integer required: @@ -844,53 +770,51 @@ spec: type: object type: array requiredDuringSchedulingIgnoredDuringExecution: - description: If the anti-affinity requirements specified by - this field are not met at scheduling time, the pod will - not be scheduled onto the node. If the anti-affinity requirements - specified by this field cease to be met at some point during - pod execution (e.g. due to a pod label update), the system - may or may not try to eventually evict the pod from its - node. When there are multiple elements, the lists of nodes - corresponding to each podAffinityTerm are intersected, i.e. - all terms must be satisfied. + description: |- + If the anti-affinity requirements specified by this field are not met at + scheduling time, the pod will not be scheduled onto the node. + If the anti-affinity requirements specified by this field cease to be met + at some point during pod execution (e.g. due to a pod label update), the + system may or may not try to eventually evict the pod from its node. + When there are multiple elements, the lists of nodes corresponding to each + podAffinityTerm are intersected, i.e. all terms must be satisfied. items: - description: Defines a set of pods (namely those matching - the labelSelector relative to the given namespace(s)) - that this pod should be co-located (affinity) or not co-located - (anti-affinity) with, where co-located is defined as running - on a node whose value of the label with key - matches that of any node on which a pod of the set of - pods is running + description: |- + Defines a set of pods (namely those matching the labelSelector + relative to the given namespace(s)) that this pod should be + co-located (affinity) or not co-located (anti-affinity) with, + where co-located is defined as running on a node whose value of + the label with key matches that of any node on which + a pod of the set of pods is running properties: labelSelector: - description: A label query over a set of resources, - in this case pods. If it's null, this PodAffinityTerm - matches with no Pods. + description: |- + A label query over a set of resources, in this case pods. + If it's null, this PodAffinityTerm matches with no Pods. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is a - selector that contains values, a key, and an - operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's relationship - to a set of values. Valid operators are - In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. If the - operator is Exists or DoesNotExist, the - values array must be empty. This array is - replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -902,84 +826,74 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is "In", - and the values array contains only "value". The - requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic matchLabelKeys: - description: MatchLabelKeys is a set of pod label keys - to select which pods will be taken into consideration. - The keys are used to lookup values from the incoming - pod labels, those key-value labels are merged with - `LabelSelector` as `key in (value)` to select the - group of existing pods which pods will be taken into - consideration for the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming pod labels will - be ignored. The default value is empty. The same key - is forbidden to exist in both MatchLabelKeys and LabelSelector. - Also, MatchLabelKeys cannot be set when LabelSelector - isn't set. This is an alpha field and requires enabling - MatchLabelKeysInPodAffinity feature gate. + description: |- + MatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `LabelSelector` as `key in (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both MatchLabelKeys and LabelSelector. + Also, MatchLabelKeys cannot be set when LabelSelector isn't set. + This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. items: type: string type: array x-kubernetes-list-type: atomic mismatchLabelKeys: - description: MismatchLabelKeys is a set of pod label - keys to select which pods will be taken into consideration. - The keys are used to lookup values from the incoming - pod labels, those key-value labels are merged with - `LabelSelector` as `key notin (value)` to select the - group of existing pods which pods will be taken into - consideration for the incoming pod's pod (anti) affinity. - Keys that don't exist in the incoming pod labels will - be ignored. The default value is empty. The same key - is forbidden to exist in both MismatchLabelKeys and - LabelSelector. Also, MismatchLabelKeys cannot be set - when LabelSelector isn't set. This is an alpha field - and requires enabling MatchLabelKeysInPodAffinity - feature gate. + description: |- + MismatchLabelKeys is a set of pod label keys to select which pods will + be taken into consideration. The keys are used to lookup values from the + incoming pod labels, those key-value labels are merged with `LabelSelector` as `key notin (value)` + to select the group of existing pods which pods will be taken into consideration + for the incoming pod's pod (anti) affinity. Keys that don't exist in the incoming + pod labels will be ignored. The default value is empty. + The same key is forbidden to exist in both MismatchLabelKeys and LabelSelector. + Also, MismatchLabelKeys cannot be set when LabelSelector isn't set. + This is an alpha field and requires enabling MatchLabelKeysInPodAffinity feature gate. items: type: string type: array x-kubernetes-list-type: atomic namespaceSelector: - description: A label query over the set of namespaces - that the term applies to. The term is applied to the - union of the namespaces selected by this field and - the ones listed in the namespaces field. null selector - and null or empty namespaces list means "this pod's - namespace". An empty selector ({}) matches all namespaces. + description: |- + A label query over the set of namespaces that the term applies to. + The term is applied to the union of the namespaces selected by this field + and the ones listed in the namespaces field. + null selector and null or empty namespaces list means "this pod's namespace". + An empty selector ({}) matches all namespaces. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement is a - selector that contains values, a key, and an - operator that relates the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a key's relationship - to a set of values. Valid operators are - In, NotIn, Exists and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of string - values. If the operator is In or NotIn, - the values array must be non-empty. If the - operator is Exists or DoesNotExist, the - values array must be empty. This array is - replaced during a strategic merge patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -991,32 +905,28 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator is "In", - and the values array contains only "value". The - requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic namespaces: - description: namespaces specifies a static list of namespace - names that the term applies to. The term is applied - to the union of the namespaces listed in this field - and the ones selected by namespaceSelector. null or - empty namespaces list and null namespaceSelector means - "this pod's namespace". + description: |- + namespaces specifies a static list of namespace names that the term applies to. + The term is applied to the union of the namespaces listed in this field + and the ones selected by namespaceSelector. + null or empty namespaces list and null namespaceSelector means "this pod's namespace". items: type: string type: array topologyKey: - description: This pod should be co-located (affinity) - or not co-located (anti-affinity) with the pods matching - the labelSelector in the specified namespaces, where - co-located is defined as running on a node whose value - of the label with key topologyKey matches that of - any node on which any of the selected pods is running. + description: |- + This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching + the labelSelector in the specified namespaces, where co-located is defined as running on a node + whose value of the label with key topologyKey matches that of any node on which any of the + selected pods is running. Empty topologyKey is not allowed. type: string required: @@ -1026,19 +936,23 @@ spec: type: object type: object clusterID: - description: Defines the local service cluster name where Envoy is - running. Defaults to the NodeID in the EnvoyConfig if unset + description: |- + Defines the local service cluster name where Envoy is running. Defaults + to the NodeID in the EnvoyConfig if unset type: string discoveryServiceRef: - description: DiscoveryServiceRef points to a DiscoveryService in the - same namespace + description: |- + DiscoveryServiceRef points to a DiscoveryService in the same + namespace type: string duration: - description: Defines the duration of the client certificate that is - used to authenticate with the DiscoveryService + description: |- + Defines the duration of the client certificate that is used to authenticate + with the DiscoveryService type: string envoyConfigRef: - description: EnvoyConfigRef points to an EnvoyConfig in the same namespace + description: |- + EnvoyConfigRef points to an EnvoyConfig in the same namespace that holds the envoy resources for this Deployment type: string extraArgs: @@ -1051,8 +965,9 @@ spec: description: Image is the envoy image and tag to use type: string initManager: - description: InitManager defines configuration for Envoy's init manager, - which handles initialization for Envoy pods + description: |- + InitManager defines configuration for Envoy's init + manager, which handles initialization for Envoy pods properties: image: description: Image is the init manager image and tag to use @@ -1098,21 +1013,21 @@ spec: anyOf: - type: integer - type: string - description: An eviction is allowed if at most "maxUnavailable" - pods selected by "selector" are unavailable after the eviction, - i.e. even in absence of the evicted pod. For example, one can - prevent all voluntary evictions by specifying 0. This is a mutually - exclusive setting with "minAvailable". + description: |- + An eviction is allowed if at most "maxUnavailable" pods selected by + "selector" are unavailable after the eviction, i.e. even in absence of + the evicted pod. For example, one can prevent all voluntary evictions + by specifying 0. This is a mutually exclusive setting with "minAvailable". x-kubernetes-int-or-string: true minAvailable: anyOf: - type: integer - type: string - description: An eviction is allowed if at least "minAvailable" - pods selected by "selector" will still be available after the - eviction, i.e. even in the absence of the evicted pod. So for - example you can prevent all voluntary evictions by specifying - "100%". + description: |- + An eviction is allowed if at least "minAvailable" pods selected by + "selector" will still be available after the eviction, i.e. even in the + absence of the evicted pod. So for example you can prevent all voluntary + evictions by specifying "100%". x-kubernetes-int-or-string: true type: object ports: @@ -1171,41 +1086,39 @@ spec: - timeoutSeconds type: object replicas: - description: Replicas configures the number of replicas in the Deployment. - One of 'static', 'dynamic' can be set. If both are set, static has - precedence. + description: |- + Replicas configures the number of replicas in the Deployment. One of + 'static', 'dynamic' can be set. If both are set, static has precedence. properties: dynamic: description: Configure a min and max value for the number of pods to autoscale dynamically. properties: behavior: - description: behavior configures the scaling behavior of the - target in both Up and Down directions (scaleUp and scaleDown - fields respectively). If not set, the default HPAScalingRules - for scale up and scale down are used. + description: |- + behavior configures the scaling behavior of the target + in both Up and Down directions (scaleUp and scaleDown fields respectively). + If not set, the default HPAScalingRules for scale up and scale down are used. properties: scaleDown: - description: scaleDown is scaling policy for scaling Down. - If not set, the default value is to allow to scale down - to minReplicas pods, with a 300 second stabilization - window (i.e., the highest recommendation for the last - 300sec is used). + description: |- + scaleDown is scaling policy for scaling Down. + If not set, the default value is to allow to scale down to minReplicas pods, with a + 300 second stabilization window (i.e., the highest recommendation for + the last 300sec is used). properties: policies: - description: policies is a list of potential scaling - polices which can be used during scaling. At least - one policy must be specified, otherwise the HPAScalingRules - will be discarded as invalid + description: |- + policies is a list of potential scaling polices which can be used during scaling. + At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid items: description: HPAScalingPolicy is a single policy which must hold true for a specified past interval. properties: periodSeconds: - description: periodSeconds specifies the window - of time for which the policy should hold true. - PeriodSeconds must be greater than zero and - less than or equal to 1800 (30 min). + description: |- + periodSeconds specifies the window of time for which the policy should hold true. + PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min). format: int32 type: integer type: @@ -1213,9 +1126,9 @@ spec: policy. type: string value: - description: value contains the amount of change - which is permitted by the policy. It must - be greater than zero + description: |- + value contains the amount of change which is permitted by the policy. + It must be greater than zero format: int32 type: integer required: @@ -1226,43 +1139,41 @@ spec: type: array x-kubernetes-list-type: atomic selectPolicy: - description: selectPolicy is used to specify which - policy should be used. If not set, the default value - Max is used. + description: |- + selectPolicy is used to specify which policy should be used. + If not set, the default value Max is used. type: string stabilizationWindowSeconds: - description: 'stabilizationWindowSeconds is the number - of seconds for which past recommendations should - be considered while scaling up or scaling down. - StabilizationWindowSeconds must be greater than - or equal to zero and less than or equal to 3600 - (one hour). If not set, use the default values: + description: |- + stabilizationWindowSeconds is the number of seconds for which past recommendations should be + considered while scaling up or scaling down. + StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). + If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - - For scale down: 300 (i.e. the stabilization window - is 300 seconds long).' + - For scale down: 300 (i.e. the stabilization window is 300 seconds long). format: int32 type: integer type: object scaleUp: - description: 'scaleUp is scaling policy for scaling Up. - If not set, the default value is the higher of: * increase - no more than 4 pods per 60 seconds * double the number - of pods per 60 seconds No stabilization is used.' + description: |- + scaleUp is scaling policy for scaling Up. + If not set, the default value is the higher of: + * increase no more than 4 pods per 60 seconds + * double the number of pods per 60 seconds + No stabilization is used. properties: policies: - description: policies is a list of potential scaling - polices which can be used during scaling. At least - one policy must be specified, otherwise the HPAScalingRules - will be discarded as invalid + description: |- + policies is a list of potential scaling polices which can be used during scaling. + At least one policy must be specified, otherwise the HPAScalingRules will be discarded as invalid items: description: HPAScalingPolicy is a single policy which must hold true for a specified past interval. properties: periodSeconds: - description: periodSeconds specifies the window - of time for which the policy should hold true. - PeriodSeconds must be greater than zero and - less than or equal to 1800 (30 min). + description: |- + periodSeconds specifies the window of time for which the policy should hold true. + PeriodSeconds must be greater than zero and less than or equal to 1800 (30 min). format: int32 type: integer type: @@ -1270,9 +1181,9 @@ spec: policy. type: string value: - description: value contains the amount of change - which is permitted by the policy. It must - be greater than zero + description: |- + value contains the amount of change which is permitted by the policy. + It must be greater than zero format: int32 type: integer required: @@ -1283,56 +1194,51 @@ spec: type: array x-kubernetes-list-type: atomic selectPolicy: - description: selectPolicy is used to specify which - policy should be used. If not set, the default value - Max is used. + description: |- + selectPolicy is used to specify which policy should be used. + If not set, the default value Max is used. type: string stabilizationWindowSeconds: - description: 'stabilizationWindowSeconds is the number - of seconds for which past recommendations should - be considered while scaling up or scaling down. - StabilizationWindowSeconds must be greater than - or equal to zero and less than or equal to 3600 - (one hour). If not set, use the default values: + description: |- + stabilizationWindowSeconds is the number of seconds for which past recommendations should be + considered while scaling up or scaling down. + StabilizationWindowSeconds must be greater than or equal to zero and less than or equal to 3600 (one hour). + If not set, use the default values: - For scale up: 0 (i.e. no stabilization is done). - - For scale down: 300 (i.e. the stabilization window - is 300 seconds long).' + - For scale down: 300 (i.e. the stabilization window is 300 seconds long). format: int32 type: integer type: object type: object maxReplicas: - description: maxReplicas is the upper limit for the number - of replicas to which the autoscaler can scale up. It cannot - be less that minReplicas. + description: |- + maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up. + It cannot be less that minReplicas. format: int32 type: integer metrics: - description: metrics contains the specifications for which - to use to calculate the desired replica count (the maximum - replica count across all metrics will be used). The desired - replica count is calculated multiplying the ratio between - the target value and the current value by the current number - of pods. Ergo, metrics used must decrease as the pod count - is increased, and vice-versa. See the individual metric - source types for more information about how each type of - metric must respond. If not set, the default metric will - be set to 80% average CPU utilization. + description: |- + metrics contains the specifications for which to use to calculate the + desired replica count (the maximum replica count across all metrics will + be used). The desired replica count is calculated multiplying the + ratio between the target value and the current value by the current + number of pods. Ergo, metrics used must decrease as the pod count is + increased, and vice-versa. See the individual metric source types for + more information about how each type of metric must respond. + If not set, the default metric will be set to 80% average CPU utilization. items: - description: MetricSpec specifies how to scale based on - a single metric (only `type` and one other matching field - should be set at once). + description: |- + MetricSpec specifies how to scale based on a single metric + (only `type` and one other matching field should be set at once). properties: containerResource: - description: containerResource refers to a resource - metric (such as those specified in requests and limits) - known to Kubernetes describing a single container - in each pod of the current scale target (e.g. CPU - or memory). Such metrics are built in to Kubernetes, - and have special scaling options on top of those available - to normal per-pod metrics using the "pods" source. - This is an alpha feature and can be enabled by the - HPAContainerMetrics feature flag. + description: |- + containerResource refers to a resource metric (such as those specified in + requests and limits) known to Kubernetes describing a single container in + each pod of the current scale target (e.g. CPU or memory). Such metrics are + built in to Kubernetes, and have special scaling options on top of those + available to normal per-pod metrics using the "pods" source. + This is an alpha feature and can be enabled by the HPAContainerMetrics feature flag. properties: container: description: container is the name of the container @@ -1347,21 +1253,20 @@ spec: the given metric properties: averageUtilization: - description: averageUtilization is the target - value of the average of the resource metric - across all relevant pods, represented as a - percentage of the requested value of the resource - for the pods. Currently only valid for Resource - metric source type + description: |- + averageUtilization is the target value of the average of the + resource metric across all relevant pods, represented as a percentage of + the requested value of the resource for the pods. + Currently only valid for Resource metric source type format: int32 type: integer averageValue: anyOf: - type: integer - type: string - description: averageValue is the target value - of the average of the metric across all relevant - pods (as a quantity) + description: |- + averageValue is the target value of the average of the + metric across all relevant pods (as a quantity) pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: @@ -1385,12 +1290,12 @@ spec: - target type: object external: - description: external refers to a global metric that - is not associated with any Kubernetes object. It allows - autoscaling based on information coming from components - running outside of cluster (for example length of - queue in cloud messaging service, or QPS from loadbalancer - running outside of cluster). + description: |- + external refers to a global metric that is not associated + with any Kubernetes object. It allows autoscaling based on information + coming from components running outside of cluster + (for example length of queue in cloud messaging service, or + QPS from loadbalancer running outside of cluster). properties: metric: description: metric identifies the target metric @@ -1400,43 +1305,35 @@ spec: description: name is the name of the given metric type: string selector: - description: selector is the string-encoded - form of a standard kubernetes label selector - for the given metric When set, it is passed - as an additional parameter to the metrics - server for more specific metrics scoping. - When unset, just the metricName will be used - to gather metrics. + description: |- + selector is the string-encoded form of a standard kubernetes label selector for the given metric + When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. + When unset, just the metricName will be used to gather metrics. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a - key's relationship to a set of values. - Valid operators are In, NotIn, Exists - and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of - string values. If the operator is - In or NotIn, the values array must - be non-empty. If the operator is - Exists or DoesNotExist, the values - array must be empty. This array - is replaced during a strategic merge - patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -1448,12 +1345,10 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic @@ -1465,21 +1360,20 @@ spec: the given metric properties: averageUtilization: - description: averageUtilization is the target - value of the average of the resource metric - across all relevant pods, represented as a - percentage of the requested value of the resource - for the pods. Currently only valid for Resource - metric source type + description: |- + averageUtilization is the target value of the average of the + resource metric across all relevant pods, represented as a percentage of + the requested value of the resource for the pods. + Currently only valid for Resource metric source type format: int32 type: integer averageValue: anyOf: - type: integer - type: string - description: averageValue is the target value - of the average of the metric across all relevant - pods (as a quantity) + description: |- + averageValue is the target value of the average of the + metric across all relevant pods (as a quantity) pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: @@ -1502,9 +1396,9 @@ spec: - target type: object object: - description: object refers to a metric describing a - single kubernetes object (for example, hits-per-second - on an Ingress object). + description: |- + object refers to a metric describing a single kubernetes object + (for example, hits-per-second on an Ingress object). properties: describedObject: description: describedObject specifies the descriptions @@ -1534,43 +1428,35 @@ spec: description: name is the name of the given metric type: string selector: - description: selector is the string-encoded - form of a standard kubernetes label selector - for the given metric When set, it is passed - as an additional parameter to the metrics - server for more specific metrics scoping. - When unset, just the metricName will be used - to gather metrics. + description: |- + selector is the string-encoded form of a standard kubernetes label selector for the given metric + When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. + When unset, just the metricName will be used to gather metrics. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a - key's relationship to a set of values. - Valid operators are In, NotIn, Exists - and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of - string values. If the operator is - In or NotIn, the values array must - be non-empty. If the operator is - Exists or DoesNotExist, the values - array must be empty. This array - is replaced during a strategic merge - patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -1582,12 +1468,10 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic @@ -1599,21 +1483,20 @@ spec: the given metric properties: averageUtilization: - description: averageUtilization is the target - value of the average of the resource metric - across all relevant pods, represented as a - percentage of the requested value of the resource - for the pods. Currently only valid for Resource - metric source type + description: |- + averageUtilization is the target value of the average of the + resource metric across all relevant pods, represented as a percentage of + the requested value of the resource for the pods. + Currently only valid for Resource metric source type format: int32 type: integer averageValue: anyOf: - type: integer - type: string - description: averageValue is the target value - of the average of the metric across all relevant - pods (as a quantity) + description: |- + averageValue is the target value of the average of the + metric across all relevant pods (as a quantity) pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: @@ -1637,10 +1520,10 @@ spec: - target type: object pods: - description: pods refers to a metric describing each - pod in the current scale target (for example, transactions-processed-per-second). The - values will be averaged together before being compared - to the target value. + description: |- + pods refers to a metric describing each pod in the current scale target + (for example, transactions-processed-per-second). The values will be + averaged together before being compared to the target value. properties: metric: description: metric identifies the target metric @@ -1650,43 +1533,35 @@ spec: description: name is the name of the given metric type: string selector: - description: selector is the string-encoded - form of a standard kubernetes label selector - for the given metric When set, it is passed - as an additional parameter to the metrics - server for more specific metrics scoping. - When unset, just the metricName will be used - to gather metrics. + description: |- + selector is the string-encoded form of a standard kubernetes label selector for the given metric + When set, it is passed as an additional parameter to the metrics server for more specific metrics scoping. + When unset, just the metricName will be used to gather metrics. properties: matchExpressions: description: matchExpressions is a list of label selector requirements. The requirements are ANDed. items: - description: A label selector requirement - is a selector that contains values, - a key, and an operator that relates - the key and values. + description: |- + A label selector requirement is a selector that contains values, a key, and an operator that + relates the key and values. properties: key: description: key is the label key that the selector applies to. type: string operator: - description: operator represents a - key's relationship to a set of values. - Valid operators are In, NotIn, Exists - and DoesNotExist. + description: |- + operator represents a key's relationship to a set of values. + Valid operators are In, NotIn, Exists and DoesNotExist. type: string values: - description: values is an array of - string values. If the operator is - In or NotIn, the values array must - be non-empty. If the operator is - Exists or DoesNotExist, the values - array must be empty. This array - is replaced during a strategic merge - patch. + description: |- + values is an array of string values. If the operator is In or NotIn, + the values array must be non-empty. If the operator is Exists or DoesNotExist, + the values array must be empty. This array is replaced during a strategic + merge patch. items: type: string type: array @@ -1698,12 +1573,10 @@ spec: matchLabels: additionalProperties: type: string - description: matchLabels is a map of {key,value} - pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, - whose key field is "key", the operator - is "In", and the values array contains - only "value". The requirements are ANDed. + description: |- + matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels + map is equivalent to an element of matchExpressions, whose key field is "key", the + operator is "In", and the values array contains only "value". The requirements are ANDed. type: object type: object x-kubernetes-map-type: atomic @@ -1715,21 +1588,20 @@ spec: the given metric properties: averageUtilization: - description: averageUtilization is the target - value of the average of the resource metric - across all relevant pods, represented as a - percentage of the requested value of the resource - for the pods. Currently only valid for Resource - metric source type + description: |- + averageUtilization is the target value of the average of the + resource metric across all relevant pods, represented as a percentage of + the requested value of the resource for the pods. + Currently only valid for Resource metric source type format: int32 type: integer averageValue: anyOf: - type: integer - type: string - description: averageValue is the target value - of the average of the metric across all relevant - pods (as a quantity) + description: |- + averageValue is the target value of the average of the + metric across all relevant pods (as a quantity) pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: @@ -1752,13 +1624,12 @@ spec: - target type: object resource: - description: resource refers to a resource metric (such - as those specified in requests and limits) known to - Kubernetes describing each pod in the current scale - target (e.g. CPU or memory). Such metrics are built - in to Kubernetes, and have special scaling options - on top of those available to normal per-pod metrics - using the "pods" source. + description: |- + resource refers to a resource metric (such as those specified in + requests and limits) known to Kubernetes describing each pod in the + current scale target (e.g. CPU or memory). Such metrics are built in to + Kubernetes, and have special scaling options on top of those available + to normal per-pod metrics using the "pods" source. properties: name: description: name is the name of the resource in @@ -1769,21 +1640,20 @@ spec: the given metric properties: averageUtilization: - description: averageUtilization is the target - value of the average of the resource metric - across all relevant pods, represented as a - percentage of the requested value of the resource - for the pods. Currently only valid for Resource - metric source type + description: |- + averageUtilization is the target value of the average of the + resource metric across all relevant pods, represented as a percentage of + the requested value of the resource for the pods. + Currently only valid for Resource metric source type format: int32 type: integer averageValue: anyOf: - type: integer - type: string - description: averageValue is the target value - of the average of the metric across all relevant - pods (as a quantity) + description: |- + averageValue is the target value of the average of the + metric across all relevant pods (as a quantity) pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true type: @@ -1806,24 +1676,23 @@ spec: - target type: object type: - description: 'type is the type of metric source. It - should be one of "ContainerResource", "External", - "Object", "Pods" or "Resource", each mapping to a - matching field in the object. Note: "ContainerResource" - type is available on when the feature-gate HPAContainerMetrics - is enabled' + description: |- + type is the type of metric source. It should be one of "ContainerResource", "External", + "Object", "Pods" or "Resource", each mapping to a matching field in the object. + Note: "ContainerResource" type is available on when the feature-gate + HPAContainerMetrics is enabled type: string required: - type type: object type: array minReplicas: - description: minReplicas is the lower limit for the number - of replicas to which the autoscaler can scale down. It - defaults to 1 pod. minReplicas is allowed to be 0 if the - alpha feature gate HPAScaleToZero is enabled and at least - one Object or External metric is configured. Scaling is - active as long as at least one metric value is available. + description: |- + minReplicas is the lower limit for the number of replicas to which the autoscaler + can scale down. It defaults to 1 pod. minReplicas is allowed to be 0 if the + alpha feature gate HPAScaleToZero is enabled and at least one Object or External + metric is configured. Scaling is active as long as at least one metric value is + available. format: int32 type: integer required: @@ -1836,22 +1705,29 @@ spec: type: integer type: object resources: - description: Resources holds the resource requirements to use for - the Envoy Deployment. Defaults to no resource requests nor limits. + description: |- + Resources holds the resource requirements to use for the Envoy + Deployment. Defaults to no resource requests nor limits. properties: claims: - description: "Claims lists the names of resources, defined in - spec.resourceClaims, that are used by this container. \n This - is an alpha field and requires enabling the DynamicResourceAllocation - feature gate. \n This field is immutable. It can only be set - for containers." + description: |- + Claims lists the names of resources, defined in spec.resourceClaims, + that are used by this container. + + + This is an alpha field and requires enabling the + DynamicResourceAllocation feature gate. + + + This field is immutable. It can only be set for containers. items: description: ResourceClaim references one entry in PodSpec.ResourceClaims. properties: name: - description: Name must match the name of one entry in pod.spec.resourceClaims - of the Pod where this field is used. It makes that resource - available inside a container. + description: |- + Name must match the name of one entry in pod.spec.resourceClaims of + the Pod where this field is used. It makes that resource available + inside a container. type: string required: - name @@ -1867,8 +1743,9 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Limits describes the maximum amount of compute resources - allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Limits describes the maximum amount of compute resources allowed. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object requests: additionalProperties: @@ -1877,29 +1754,30 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: 'Requests describes the minimum amount of compute - resources required. If Requests is omitted for a container, - it defaults to Limits if that is explicitly specified, otherwise - to an implementation-defined value. Requests cannot exceed Limits. - More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/' + description: |- + Requests describes the minimum amount of compute resources required. + If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, + otherwise to an implementation-defined value. Requests cannot exceed Limits. + More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ type: object type: object shutdownManager: - description: ShutdownManager defines configuration for Envoy's shutdown + description: |- + ShutdownManager defines configuration for Envoy's shutdown manager, which handles graceful termination of Envoy pods properties: drainStrategy: - description: The drain strategy for the graceful shutdown. It - also affects drain when listeners are modified or removed via - LDS. + description: |- + The drain strategy for the graceful shutdown. It also affects + drain when listeners are modified or removed via LDS. enum: - gradual - immediate type: string drainTime: - description: The time in seconds that Envoy will drain connections - during shutdown. It also affects drain behaviour when listeners - are modified or removed via LDS. + description: |- + The time in seconds that Envoy will drain connections during shutdown. + It also affects drain behaviour when listeners are modified or removed via LDS. format: int64 type: integer image: @@ -1930,9 +1808,10 @@ spec: format: int32 type: integer collisionCount: - description: Count of hash collisions for the Deployment. The - Deployment controller uses this field as a collision avoidance - mechanism when it needs to create the name for the newest ReplicaSet. + description: |- + Count of hash collisions for the Deployment. The Deployment controller uses this + field as a collision avoidance mechanism when it needs to create the name for the + newest ReplicaSet. format: int32 type: integer conditions: @@ -1985,11 +1864,10 @@ spec: format: int32 type: integer unavailableReplicas: - description: Total number of unavailable pods targeted by this - deployment. This is the total number of pods that are still - required for the deployment to have 100% available capacity. - They may either be pods that are running but not yet available - or pods that still have not been created. + description: |- + Total number of unavailable pods targeted by this deployment. This is the total number of + pods that are still required for the deployment to have 100% available capacity. They may + either be pods that are running but not yet available or pods that still have not been created. format: int32 type: integer updatedReplicas: diff --git a/catalog/marin3r/alpha-channel.yaml b/catalog/marin3r/alpha-channel.yaml index c80550a5..11f7e46a 100644 --- a/catalog/marin3r/alpha-channel.yaml +++ b/catalog/marin3r/alpha-channel.yaml @@ -31,6 +31,10 @@ entries: - name: marin3r.v0.13.1 replaces: marin3r.v0.13.0 skipRange: ">=0.13.0 <0.13.1" + - name: marin3r.v0.13.2-alpha.1 + replaces: marin3r.v0.13.1 + - name: marin3r.v0.13.2-alpha.2 + replaces: marin3r.v0.13.2-alpha.1 name: alpha package: marin3r schema: olm.channel diff --git a/catalog/marin3r/objects/marin3r.v0.13.2-alpha.1.clusterserviceversion.yaml b/catalog/marin3r/objects/marin3r.v0.13.2-alpha.1.clusterserviceversion.yaml new file mode 100644 index 00000000..3a45aaaa --- /dev/null +++ b/catalog/marin3r/objects/marin3r.v0.13.2-alpha.1.clusterserviceversion.yaml @@ -0,0 +1,70 @@ +--- +image: quay.io/3scale/marin3r-bundle:v0.13.2-alpha.1 +name: marin3r.v0.13.2-alpha.1 +package: marin3r +properties: +- type: olm.gvk + value: + group: marin3r.3scale.net + kind: EnvoyConfig + version: v1alpha1 +- type: olm.gvk + value: + group: marin3r.3scale.net + kind: EnvoyConfigRevision + version: v1alpha1 +- type: olm.gvk + value: + group: operator.marin3r.3scale.net + kind: DiscoveryService + version: v1alpha1 +- type: olm.gvk + value: + group: operator.marin3r.3scale.net + kind: DiscoveryServiceCertificate + version: v1alpha1 +- type: olm.gvk + value: + group: operator.marin3r.3scale.net + kind: EnvoyDeployment + version: v1alpha1 +- type: olm.package + value: + packageName: marin3r + version: 0.13.2-alpha.1 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJraW5kIjoiU2VydmljZSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsLCJsYWJlbHMiOnsiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9LCJuYW1lIjoibWFyaW4zci1jb250cm9sbGVyLW1hbmFnZXItbWV0cmljcy1zZXJ2aWNlIn0sInNwZWMiOnsicG9ydHMiOlt7Im5hbWUiOiJtZXRyaWNzIiwicG9ydCI6ODA4MCwicHJvdG9jb2wiOiJUQ1AiLCJ0YXJnZXRQb3J0IjoibWV0cmljcyJ9XSwic2VsZWN0b3IiOnsiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3RhdHVzIjp7ImxvYWRCYWxhbmNlciI6e319fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJkYXRhIjp7ImNvbnRyb2xsZXJfbWFuYWdlcl9jb25maWcueWFtbCI6ImFwaVZlcnNpb246IGNvbnRyb2xsZXItcnVudGltZS5zaWdzLms4cy5pby92MWFscGhhMVxua2luZDogQ29udHJvbGxlck1hbmFnZXJDb25maWdcbmhlYWx0aDpcbiAgaGVhbHRoUHJvYmVCaW5kQWRkcmVzczogOjgwODFcbm1ldHJpY3M6XG4gIGJpbmRBZGRyZXNzOiAxMjcuMC4wLjE6ODA4MFxud2ViaG9vazpcbiAgcG9ydDogOTQ0M1xubGVhZGVyRWxlY3Rpb246XG4gIGxlYWRlckVsZWN0OiB0cnVlXG4gIHJlc291cmNlTmFtZTogOTQ0NGYxZDcuM3NjYWxlLm5ldFxuIn0sImtpbmQiOiJDb25maWdNYXAiLCJtZXRhZGF0YSI6eyJuYW1lIjoibWFyaW4zci1tYW5hZ2VyLWNvbmZpZyJ9fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoicmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSIsImtpbmQiOiJDbHVzdGVyUm9sZSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsLCJuYW1lIjoibWFyaW4zci1tZXRyaWNzLXJlYWRlciJ9LCJydWxlcyI6W3sibm9uUmVzb3VyY2VVUkxzIjpbIi9tZXRyaWNzIl0sInZlcmJzIjpbImdldCJdfV19 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJraW5kIjoiU2VydmljZSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsLCJuYW1lIjoibWFyaW4zci13ZWJob29rLXNlcnZpY2UifSwic3BlYyI6eyJwb3J0cyI6W3sicG9ydCI6NDQzLCJwcm90b2NvbCI6IlRDUCIsInRhcmdldFBvcnQiOjk0NDN9XSwic2VsZWN0b3IiOnsiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItd2ViaG9vayJ9fSwic3RhdHVzIjp7ImxvYWRCYWxhbmNlciI6e319fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjExLjMifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsIm5hbWUiOiJlbnZveWNvbmZpZ3JldmlzaW9ucy5tYXJpbjNyLjNzY2FsZS5uZXQifSwic3BlYyI6eyJncm91cCI6Im1hcmluM3IuM3NjYWxlLm5ldCIsIm5hbWVzIjp7ImtpbmQiOiJFbnZveUNvbmZpZ1JldmlzaW9uIiwibGlzdEtpbmQiOiJFbnZveUNvbmZpZ1JldmlzaW9uTGlzdCIsInBsdXJhbCI6ImVudm95Y29uZmlncmV2aXNpb25zIiwic2hvcnROYW1lcyI6WyJlY3IiXSwic2luZ3VsYXIiOiJlbnZveWNvbmZpZ3JldmlzaW9uIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJhZGRpdGlvbmFsUHJpbnRlckNvbHVtbnMiOlt7Impzb25QYXRoIjoiLnNwZWMubm9kZUlEIiwibmFtZSI6Ik5vZGUgSUQiLCJ0eXBlIjoic3RyaW5nIn0seyJqc29uUGF0aCI6Ii5zcGVjLmVudm95QVBJIiwibmFtZSI6IkVudm95IEFQSSIsInR5cGUiOiJzdHJpbmcifSx7Impzb25QYXRoIjoiLnNwZWMudmVyc2lvbiIsIm5hbWUiOiJWZXJzaW9uIiwidHlwZSI6InN0cmluZyJ9LHsianNvblBhdGgiOiIuc3RhdHVzLnB1Ymxpc2hlZCIsIm5hbWUiOiJQdWJsaXNoZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9LHsiZm9ybWF0IjoiZGF0ZS10aW1lIiwianNvblBhdGgiOiIubWV0YWRhdGEuY3JlYXRpb25UaW1lc3RhbXAiLCJuYW1lIjoiQ3JlYXRlZCBBdCIsInR5cGUiOiJzdHJpbmcifSx7ImZvcm1hdCI6ImRhdGUtdGltZSIsImpzb25QYXRoIjoiLnN0YXR1cy5sYXN0UHVibGlzaGVkQXQiLCJuYW1lIjoiTGFzdCBQdWJsaXNoZWQgQXQiLCJ0eXBlIjoic3RyaW5nIn0seyJqc29uUGF0aCI6Ii5zdGF0dXMudGFpbnRlZCIsIm5hbWUiOiJUYWludGVkIiwidHlwZSI6ImJvb2xlYW4ifV0sIm5hbWUiOiJ2MWFscGhhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJFbnZveUNvbmZpZ1JldmlzaW9uIGlzIGFuIGludGVybmFsIHJlc291cmNlIHRoYXQgc3RvcmVzIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBhbiBFbnZveUNvbmZpZyByZXNvdXJjZS4gRW52b3lDb25maWdSZXZpc2lvbnMgYXJlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBhbmQgZGVsZXRlZCBieSB0aGUgRW52b3lDb25maWcgY29udHJvbGxlciBhbmQgYXJlIG5vdCBpbnRlbmRlZCB0byBiZSBkaXJlY3RseSB1c2VkLiBVc2UgRW52b3lDb25maWcgb2JqZWN0cyBpbnN0ZWFkLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kIG1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiRW52b3lDb25maWdSZXZpc2lvblNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBFbnZveUNvbmZpZ1JldmlzaW9uIiwicHJvcGVydGllcyI6eyJlbnZveUFQSSI6eyJkZXNjcmlwdGlvbiI6IkVudm95QVBJIGlzIHRoZSB2ZXJzaW9uIG9mIGVudm95J3MgQVBJIHRvIHVzZS4gRGVmYXVsdHMgdG8gdjMuIiwiZW51bSI6WyJ2MyJdLCJ0eXBlIjoic3RyaW5nIn0sImVudm95UmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoiRW52b3lSZXNvdXJjZXMgaG9sZHMgdGhlIGRpZmZlcmVudCB0eXBlcyBvZiByZXNvdXJjZXMgc3Vwb3J0ZWQgYnkgdGhlIGVudm95IGRpc2NvdmVyeSBzZXJ2aWNlIiwicHJvcGVydGllcyI6eyJjbHVzdGVycyI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgQ2x1c3RlciByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvY2x1c3Rlci92My9jbHVzdGVyLnByb3RvIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveVJlc291cmNlIGhvbGRzIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgYW4gZW52b3kgcmVzb3VyY2UiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZveSByZXNvdXJjZS4gREVQUkVDQVRFRDogdGhpcyBmaWVsZCBoYXMgbm8gZWZmZWN0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzIGlzIGluY2x1ZGVkIGluIHRoZSByZXNvdXJjZSBpdHNlbGYuIFJlZmVyIHRvIHRoZSBlbnZveSBBUEkgcmVmZXJlbmNlIHRvIGNoZWNrIGhvdyB0aGUgbmFtZSBpcyBzcGVjaWZpZWQgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVudm95IHJlc291cmNlIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidmFsdWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiZW5kcG9pbnRzIjp7ImRlc2NyaXB0aW9uIjoiRW5kcG9pbnRzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgQ2x1c3RlckxvYWRBc3NpZ25tZW50IHJlc291cmNlIHR5cGUuIEFQSSBWMyByZWZlcmVuY2U6IGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLXYzL2NvbmZpZy9lbmRwb2ludC92My9lbmRwb2ludC5wcm90byIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRW52b3lSZXNvdXJjZSBob2xkcyBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIGFuIGVudm95IHJlc291cmNlIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBlbnZveSByZXNvdXJjZSIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInZhbHVlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sImV4dGVuc2lvbkNvbmZpZ3MiOnsiZGVzY3JpcHRpb24iOiJFeHRlbnNpb25Db25maWdzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgRXh0ZW5zaW9uQ29uZmlnIHJlc291cmNlIHR5cGUgQVBJIFYzIHJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktdjMvY29uZmlnL2NvcmUvdjMvZXh0ZW5zaW9uLnByb3RvIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveVJlc291cmNlIGhvbGRzIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgYW4gZW52b3kgcmVzb3VyY2UiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZveSByZXNvdXJjZS4gREVQUkVDQVRFRDogdGhpcyBmaWVsZCBoYXMgbm8gZWZmZWN0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzIGlzIGluY2x1ZGVkIGluIHRoZSByZXNvdXJjZSBpdHNlbGYuIFJlZmVyIHRvIHRoZSBlbnZveSBBUEkgcmVmZXJlbmNlIHRvIGNoZWNrIGhvdyB0aGUgbmFtZSBpcyBzcGVjaWZpZWQgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVudm95IHJlc291cmNlIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidmFsdWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibGlzdGVuZXJzIjp7ImRlc2NyaXB0aW9uIjoiTGlzdGVuZXJzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgTGlzdGVuZXIgcmVzb3VyY2UgdHlwZS4gQVBJIFYzIHJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktdjMvY29uZmlnL2xpc3RlbmVyL3YzL2xpc3RlbmVyLnByb3RvIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveVJlc291cmNlIGhvbGRzIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgYW4gZW52b3kgcmVzb3VyY2UiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZveSByZXNvdXJjZS4gREVQUkVDQVRFRDogdGhpcyBmaWVsZCBoYXMgbm8gZWZmZWN0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzIGlzIGluY2x1ZGVkIGluIHRoZSByZXNvdXJjZSBpdHNlbGYuIFJlZmVyIHRvIHRoZSBlbnZveSBBUEkgcmVmZXJlbmNlIHRvIGNoZWNrIGhvdyB0aGUgbmFtZSBpcyBzcGVjaWZpZWQgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVudm95IHJlc291cmNlIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidmFsdWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicm91dGVzIjp7ImRlc2NyaXB0aW9uIjoiUm91dGVzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgUm91dGUgcmVzb3VyY2UgdHlwZS4gQVBJIFYzIHJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktdjMvY29uZmlnL3JvdXRlL3YzL3JvdXRlLnByb3RvIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveVJlc291cmNlIGhvbGRzIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgYW4gZW52b3kgcmVzb3VyY2UiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZveSByZXNvdXJjZS4gREVQUkVDQVRFRDogdGhpcyBmaWVsZCBoYXMgbm8gZWZmZWN0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzIGlzIGluY2x1ZGVkIGluIHRoZSByZXNvdXJjZSBpdHNlbGYuIFJlZmVyIHRvIHRoZSBlbnZveSBBUEkgcmVmZXJlbmNlIHRvIGNoZWNrIGhvdyB0aGUgbmFtZSBpcyBzcGVjaWZpZWQgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVudm95IHJlc291cmNlIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidmFsdWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicnVudGltZXMiOnsiZGVzY3JpcHRpb24iOiJSdW50aW1lcyBpcyBhIGxpc3Qgb2YgdGhlIGVudm95IFJ1bnRpbWUgcmVzb3VyY2UgdHlwZS4gQVBJIFYzIHJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktdjMvc2VydmljZS9ydW50aW1lL3YzL3J0ZHMucHJvdG8iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkVudm95UmVzb3VyY2UgaG9sZHMgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiBhbiBlbnZveSByZXNvdXJjZSIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHJlc291cmNlLiBERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2VzIGZvciBkaXNjb3ZlcnkgcHVycG9zZXMgaXMgaW5jbHVkZWQgaW4gdGhlIHJlc291cmNlIGl0c2VsZi4gUmVmZXIgdG8gdGhlIGVudm95IEFQSSByZWZlcmVuY2UgdG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ2YWx1ZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJzY29wZWRSb3V0ZXMiOnsiZGVzY3JpcHRpb24iOiJTY29wZWRSb3V0ZXMgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBTY29wZVJvdXRlIHJlc291cmNlIHR5cGUuIEFQSSBWMyByZWZlcmVuY2U6IGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLXYzL2NvbmZpZy9yb3V0ZS92My9zY29wZWRfcm91dGUucHJvdG8iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkVudm95UmVzb3VyY2UgaG9sZHMgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiBhbiBlbnZveSByZXNvdXJjZSIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHJlc291cmNlLiBERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2VzIGZvciBkaXNjb3ZlcnkgcHVycG9zZXMgaXMgaW5jbHVkZWQgaW4gdGhlIHJlc291cmNlIGl0c2VsZi4gUmVmZXIgdG8gdGhlIGVudm95IEFQSSByZWZlcmVuY2UgdG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ2YWx1ZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJzZWNyZXRzIjp7ImRlc2NyaXB0aW9uIjoiU2VjcmV0cyBpcyBhIGxpc3Qgb2YgcmVmZXJlbmNlcyB0byBLdWJlcm5ldGVzIFNlY3JldCBvYmplY3RzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRW52b3lTZWNyZXRSZXNvdXJjZSBob2xkcyBhIHJlZmVyZW5jZSB0byBhIGs4cyBTZWNyZXQgZnJvbSB3aGVyZSB0byB0YWtlIGEgc2VjcmV0IGZyb20uIE9ubHkgU2VjcmV0cyB3aXRoaW4gdGhlIHNhbWUgbmFtZXNwYWNlIGNhbiBiZSByZWZlcnJlZC4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZveSB0c2xDZXJ0aWNhdGUgc2VjcmV0IHJlc291cmNlLiBUaGUgY2VydGlmaWNhdGUgd2lsbCBiZSBmZXRjaGVkIGZyb20gYSBLdWJlcm5ldGVzIFNlY3JldHMgb2YgdHlwZSAna3ViZXJuZXRlcy5pby90bHMnIHdpdGggdGhpcyBzYW1lIG5hbWUuIiwidHlwZSI6InN0cmluZyJ9LCJyZWYiOnsiZGVzY3JpcHRpb24iOiJERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGlzIGRlcHJlY2F0ZWQgYW5kIGl0J3MgdmFsdWUgd2lsbCBiZSBpZ25vcmVkLiBUaGUgJ25hbWUnIG9mIHRoZSBLdWJlcm5ldGVzIFNlY3JldCBtdXN0IG1hdGNoIHRoZSAnbmFtZScgZmllbGQuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoibmFtZSBpcyB1bmlxdWUgd2l0aGluIGEgbmFtZXNwYWNlIHRvIHJlZmVyZW5jZSBhIHNlY3JldCByZXNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWVzcGFjZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZSBkZWZpbmVzIHRoZSBzcGFjZSB3aXRoaW4gd2hpY2ggdGhlIHNlY3JldCBuYW1lIG11c3QgYmUgdW5pcXVlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwibm9kZUlEIjp7ImRlc2NyaXB0aW9uIjoiTm9kZUlEIGhvbGRzIHRoZSBlbnZveSBpZGVudGlmaWVyIGZvciB0aGUgZGlzY292ZXJ5IHNlcnZpY2UgdG8ga25vdyB3aGljaCBzZXQgb2YgcmVzb3VyY2VzIHRvIHNlbmQgdG8gZWFjaCBvZiB0aGUgZW52b3kgY2xpZW50cyB0aGF0IGNvbm5lY3QgdG8gaXQuIiwidHlwZSI6InN0cmluZyJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgaG9sZHMgdGhlIGRpZmZlcmVudCB0eXBlcyBvZiByZXNvdXJjZXMgc3Vwb3J0ZWQgYnkgdGhlIGVudm95IGRpc2NvdmVyeSBzZXJ2aWNlIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZSBob2xkcyBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIGFuIGVudm95IHJlc291cmNlIiwicHJvcGVydGllcyI6eyJibHVlcHJpbnQiOnsiZGVzY3JpcHRpb24iOiJCbHVlcHJpbnQgc3BlY2lmaWVzIGEgdGVtcGxhdGUgdG8gZ2VuZXJhdGUgYSBjb25maWd1cmF0aW9uIHByb3RvLiBJdCBpcyBjdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgdG8gZ2VuZXJhdGUgc2VjcmV0IGNvbmZpZ3VyYXRpb24gcmVzb3VyY2VzIGZyb20gazhzIFNlY3JldHMiLCJlbnVtIjpbInRsc0NlcnRpZmljYXRlIiwidmFsaWRhdGlvbkNvbnRleHQiXSwidHlwZSI6InN0cmluZyJ9LCJnZW5lcmF0ZUZyb21FbmRwb2ludFNsaWNlcyI6eyJkZXNjcmlwdGlvbiI6IlNwZWNpZmllcyBhIGxhYmVsIHNlbGVjdG9yIHRvIHdhdGNoIGZvciBFbmRwb2ludFNsaWNlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgZW5kcG9pbnQgcmVzb3VyY2UiLCJwcm9wZXJ0aWVzIjp7ImNsdXN0ZXJOYW1lIjp7InR5cGUiOiJzdHJpbmcifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIGlzIGEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMuIFRoZSByZXN1bHQgb2YgbWF0Y2hMYWJlbHMgYW5kIG1hdGNoRXhwcmVzc2lvbnMgYXJlIEFORGVkLiBBbiBlbXB0eSBsYWJlbCBzZWxlY3RvciBtYXRjaGVzIGFsbCBvYmplY3RzLiBBIG51bGwgbGFiZWwgc2VsZWN0b3IgbWF0Y2hlcyBubyBvYmplY3RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwidGFyZ2V0UG9ydCI6eyJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjbHVzdGVyTmFtZSIsInNlbGVjdG9yIiwidGFyZ2V0UG9ydCJdLCJ0eXBlIjoib2JqZWN0In0sImdlbmVyYXRlRnJvbU9wYXF1ZVNlY3JldCI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIGEgS3ViZXJuZXRlcyBTZWNyZXQgb2YgdHlwZSBcIk9wYXF1ZVwiLiBJdCB3aWxsIGdlbmVyYXRlIGFuIGVudm95IFwiZ2VuZXJpYyBzZWNyZXRcIiBwcm90by4iLCJwcm9wZXJ0aWVzIjp7ImFsaWFzIjp7ImRlc2NyaXB0aW9uIjoiQSB1bmlxdWUgbmFtZSB0byByZWZlciB0byB0aGUgbmFtZTprZXkgY29tYmluYXRpb24iLCJ0eXBlIjoic3RyaW5nIn0sImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBrZXkgb2YgdGhlIHNlY3JldCB0byBzZWxlY3QgZnJvbS4gIE11c3QgYmUgYSB2YWxpZCBzZWNyZXQga2V5LiIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBzZWNyZXQgaW4gdGhlIHBvZCdzIG5hbWVzcGFjZSB0byBzZWxlY3QgZnJvbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJhbGlhcyIsImtleSIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJnZW5lcmF0ZUZyb21UbHNTZWNyZXQiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiBhIEt1YmVybmV0ZXMgU2VjcmV0IG9mIHR5cGUgXCJrdWJlcm5ldGVzLmlvL3Rsc1wiIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiVHlwZSBpcyB0aGUgdHlwZSB1cmwgZm9yIHRoZSBwcm90b2J1ZiBtZXNzYWdlIiwiZW51bSI6WyJsaXN0ZW5lciIsInJvdXRlIiwic2NvcGVkUm91dGUiLCJjbHVzdGVyIiwiZW5kcG9pbnQiLCJzZWNyZXQiLCJydW50aW1lIiwiZXh0ZW5zaW9uQ29uZmlnIl0sInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgcHJvdG9idWZlciBtZXNzYWdlIHRoYXQgY29uZmlndXJlcyB0aGUgcmVzb3VyY2UuIFRoZSBwcm90byBtdXN0IG1hdGNoIHRoZSBlbnZveSBjb25maWd1cmF0aW9uIEFQSSB2MyBzcGVjaWZpY2F0aW9uIGZvciB0aGUgZ2l2ZW4gcmVzb3VyY2UgdHlwZSAoaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktZG9jcy94ZHNfcHJvdG9jb2wjcmVzb3VyY2UtdHlwZXMpIiwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1wcmVzZXJ2ZS11bmtub3duLWZpZWxkcyI6dHJ1ZX19LCJyZXF1aXJlZCI6WyJ0eXBlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInNlcmlhbGl6YXRpb24iOnsiZGVzY3JpcHRpb24iOiJTZXJpYWxpemF0aW9uIHNwZWNpY2lmaWVzIHRoZSBzZXJpYWxpemF0aW9uIGZvcm1hdCB1c2VkIHRvIGRlc2NyaWJlIHRoZSByZXNvdXJjZXMuIFwianNvblwiIGFuZCBcInlhbWxcIiBhcmUgc3VwcG9ydGVkLiBcImpzb25cIiBpcyB1c2VkIGlmIHVuc2V0LiIsImVudW0iOlsianNvbiIsImI2NGpzb24iLCJ5YW1sIl0sInR5cGUiOiJzdHJpbmcifSwidmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlZlcnNpb24gaXMgYSBoYXNoIG9mIHRoZSBFbnZveVJlc291cmNlcyBmaWVsZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5vZGVJRCIsInZlcnNpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveUNvbmZpZ1JldmlzaW9uU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIEVudm95Q29uZmlnUmV2aXNpb24iLCJwcm9wZXJ0aWVzIjp7ImNvbmRpdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJDb25kaXRpb25zIHJlcHJlc2VudCB0aGUgbGF0ZXN0IGF2YWlsYWJsZSBvYnNlcnZhdGlvbnMgb2YgYW4gb2JqZWN0J3Mgc3RhdGUiLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkNvbmRpdGlvbiBjb250YWlucyBkZXRhaWxzIGZvciBvbmUgYXNwZWN0IG9mIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoaXMgQVBJIFJlc291cmNlLiAtLS0gVGhpcyBzdHJ1Y3QgaXMgaW50ZW5kZWQgZm9yIGRpcmVjdCB1c2UgYXMgYW4gYXJyYXkgYXQgdGhlIGZpZWxkIHBhdGggLnN0YXR1cy5jb25kaXRpb25zLiAgRm9yIGV4YW1wbGUsIFxuIHR5cGUgRm9vU3RhdHVzIHN0cnVjdHsgLy8gUmVwcmVzZW50cyB0aGUgb2JzZXJ2YXRpb25zIG9mIGEgZm9vJ3MgY3VycmVudCBzdGF0ZS4gLy8gS25vd24gLnN0YXR1cy5jb25kaXRpb25zLnR5cGUgYXJlOiBcIkF2YWlsYWJsZVwiLCBcIlByb2dyZXNzaW5nXCIsIGFuZCBcIkRlZ3JhZGVkXCIgLy8gK3BhdGNoTWVyZ2VLZXk9dHlwZSAvLyArcGF0Y2hTdHJhdGVneT1tZXJnZSAvLyArbGlzdFR5cGU9bWFwIC8vICtsaXN0TWFwS2V5PXR5cGUgQ29uZGl0aW9ucyBbXW1ldGF2MS5Db25kaXRpb24gYGpzb246XCJjb25kaXRpb25zLG9taXRlbXB0eVwiIHBhdGNoU3RyYXRlZ3k6XCJtZXJnZVwiIHBhdGNoTWVyZ2VLZXk6XCJ0eXBlXCIgcHJvdG9idWY6XCJieXRlcywxLHJlcCxuYW1lPWNvbmRpdGlvbnNcImAgXG4gLy8gb3RoZXIgZmllbGRzIH0iLCJwcm9wZXJ0aWVzIjp7Imxhc3RUcmFuc2l0aW9uVGltZSI6eyJkZXNjcmlwdGlvbiI6Imxhc3RUcmFuc2l0aW9uVGltZSBpcyB0aGUgbGFzdCB0aW1lIHRoZSBjb25kaXRpb24gdHJhbnNpdGlvbmVkIGZyb20gb25lIHN0YXR1cyB0byBhbm90aGVyLiBUaGlzIHNob3VsZCBiZSB3aGVuIHRoZSB1bmRlcmx5aW5nIGNvbmRpdGlvbiBjaGFuZ2VkLiAgSWYgdGhhdCBpcyBub3Qga25vd24sIHRoZW4gdXNpbmcgdGhlIHRpbWUgd2hlbiB0aGUgQVBJIGZpZWxkIGNoYW5nZWQgaXMgYWNjZXB0YWJsZS4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJ0eXBlIjoic3RyaW5nIn0sIm1lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJtZXNzYWdlIGlzIGEgaHVtYW4gcmVhZGFibGUgbWVzc2FnZSBpbmRpY2F0aW5nIGRldGFpbHMgYWJvdXQgdGhlIHRyYW5zaXRpb24uIFRoaXMgbWF5IGJlIGFuIGVtcHR5IHN0cmluZy4iLCJtYXhMZW5ndGgiOjMyNzY4LCJ0eXBlIjoic3RyaW5nIn0sIm9ic2VydmVkR2VuZXJhdGlvbiI6eyJkZXNjcmlwdGlvbiI6Im9ic2VydmVkR2VuZXJhdGlvbiByZXByZXNlbnRzIHRoZSAubWV0YWRhdGEuZ2VuZXJhdGlvbiB0aGF0IHRoZSBjb25kaXRpb24gd2FzIHNldCBiYXNlZCB1cG9uLiBGb3IgaW5zdGFuY2UsIGlmIC5tZXRhZGF0YS5nZW5lcmF0aW9uIGlzIGN1cnJlbnRseSAxMiwgYnV0IHRoZSAuc3RhdHVzLmNvbmRpdGlvbnNbeF0ub2JzZXJ2ZWRHZW5lcmF0aW9uIGlzIDksIHRoZSBjb25kaXRpb24gaXMgb3V0IG9mIGRhdGUgd2l0aCByZXNwZWN0IHRvIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBpbnN0YW5jZS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInJlYXNvbiI6eyJkZXNjcmlwdGlvbiI6InJlYXNvbiBjb250YWlucyBhIHByb2dyYW1tYXRpYyBpZGVudGlmaWVyIGluZGljYXRpbmcgdGhlIHJlYXNvbiBmb3IgdGhlIGNvbmRpdGlvbidzIGxhc3QgdHJhbnNpdGlvbi4gUHJvZHVjZXJzIG9mIHNwZWNpZmljIGNvbmRpdGlvbiB0eXBlcyBtYXkgZGVmaW5lIGV4cGVjdGVkIHZhbHVlcyBhbmQgbWVhbmluZ3MgZm9yIHRoaXMgZmllbGQsIGFuZCB3aGV0aGVyIHRoZSB2YWx1ZXMgYXJlIGNvbnNpZGVyZWQgYSBndWFyYW50ZWVkIEFQSS4gVGhlIHZhbHVlIHNob3VsZCBiZSBhIENhbWVsQ2FzZSBzdHJpbmcuIFRoaXMgZmllbGQgbWF5IG5vdCBiZSBlbXB0eS4iLCJtYXhMZW5ndGgiOjEwMjQsIm1pbkxlbmd0aCI6MSwicGF0dGVybiI6Il5bQS1aYS16XShbQS1aYS16MC05Xyw6XSpbQS1aYS16MC05X10pPyQiLCJ0eXBlIjoic3RyaW5nIn0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6InN0YXR1cyBvZiB0aGUgY29uZGl0aW9uLCBvbmUgb2YgVHJ1ZSwgRmFsc2UsIFVua25vd24uIiwiZW51bSI6WyJUcnVlIiwiRmFsc2UiLCJVbmtub3duIl0sInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6InR5cGUgb2YgY29uZGl0aW9uIGluIENhbWVsQ2FzZSBvciBpbiBmb28uZXhhbXBsZS5jb20vQ2FtZWxDYXNlLiAtLS0gTWFueSAuY29uZGl0aW9uLnR5cGUgdmFsdWVzIGFyZSBjb25zaXN0ZW50IGFjcm9zcyByZXNvdXJjZXMgbGlrZSBBdmFpbGFibGUsIGJ1dCBiZWNhdXNlIGFyYml0cmFyeSBjb25kaXRpb25zIGNhbiBiZSB1c2VmdWwgKHNlZSAubm9kZS5zdGF0dXMuY29uZGl0aW9ucyksIHRoZSBhYmlsaXR5IHRvIGRlY29uZmxpY3QgaXMgaW1wb3J0YW50LiBUaGUgcmVnZXggaXQgbWF0Y2hlcyBpcyAoZG5zMTEyM1N1YmRvbWFpbkZtdC8pPyhxdWFsaWZpZWROYW1lRm10KSIsIm1heExlbmd0aCI6MzE2LCJwYXR0ZXJuIjoiXihbYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPyhcXC5bYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPykqLyk/KChbQS1aYS16MC05XVstQS1aYS16MC05Xy5dKik/W0EtWmEtejAtOV0pJCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImxhc3RUcmFuc2l0aW9uVGltZSIsIm1lc3NhZ2UiLCJyZWFzb24iLCJzdGF0dXMiLCJ0eXBlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sImxhc3RQdWJsaXNoZWRBdCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQdWJsaXNoZWRBdCBpbmRpY2F0ZXMgdGhlIGxhc3QgdGltZSB0aGlzIGNvbmZpZyByZXZpZXcgdHJhbnNpdGlvbmVkIHRvIHB1Ymxpc2hlZCIsImZvcm1hdCI6ImRhdGUtdGltZSIsInR5cGUiOiJzdHJpbmcifSwicHJvdmlkZXNWZXJzaW9ucyI6eyJkZXNjcmlwdGlvbiI6IlByb3ZpZGVzVmVyc2lvbnMga2VlcHMgdHJhY2sgb2YgdGhlIHZlcnNpb24gdGhhdCB0aGlzIHJldmlzaW9uIHB1Ymxpc2hlcyBpbiB0aGUgeERTIHNlcnZlciBmb3IgZWFjaCByZXNvdXJjZSB0eXBlIiwicHJvcGVydGllcyI6eyJjbHVzdGVycyI6eyJ0eXBlIjoic3RyaW5nIn0sImVuZHBvaW50cyI6eyJ0eXBlIjoic3RyaW5nIn0sImV4dGVuc2lvbkNvbmZpZ3MiOnsidHlwZSI6InN0cmluZyJ9LCJsaXN0ZW5lcnMiOnsidHlwZSI6InN0cmluZyJ9LCJyb3V0ZXMiOnsidHlwZSI6InN0cmluZyJ9LCJydW50aW1lcyI6eyJ0eXBlIjoic3RyaW5nIn0sInNjb3BlZFJvdXRlcyI6eyJ0eXBlIjoic3RyaW5nIn0sInNlY3JldHMiOnsidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwdWJsaXNoZWQiOnsiZGVzY3JpcHRpb24iOiJQdWJsaXNoZWQgc2lnbmFscyBpZiB0aGUgRW52b3lDb25maWdSZXZpc2lvbiBpcyB0aGUgb25lIGN1cnJlbnRseSBwdWJsaXNoZWQgaW4gdGhlIHhkcyBzZXJ2ZXIgY2FjaGUiLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ0YWludGVkIjp7ImRlc2NyaXB0aW9uIjoiVGFpbnRlZCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgRW52b3lDb25maWdSZXZpc2lvbiBpcyBlbGlnaWJsZSBmb3IgcHVibGlzaGluZyBvciBub3QiLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwic2VydmVkIjp0cnVlLCJzdG9yYWdlIjp0cnVlLCJzdWJyZXNvdXJjZXMiOnsic3RhdHVzIjp7fX19XX0sInN0YXR1cyI6eyJhY2NlcHRlZE5hbWVzIjp7ImtpbmQiOiIiLCJwbHVyYWwiOiIifSwiY29uZGl0aW9ucyI6bnVsbCwic3RvcmVkVmVyc2lvbnMiOm51bGx9fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjExLjMifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsIm5hbWUiOiJlbnZveWNvbmZpZ3MubWFyaW4zci4zc2NhbGUubmV0In0sInNwZWMiOnsiZ3JvdXAiOiJtYXJpbjNyLjNzY2FsZS5uZXQiLCJuYW1lcyI6eyJraW5kIjoiRW52b3lDb25maWciLCJsaXN0S2luZCI6IkVudm95Q29uZmlnTGlzdCIsInBsdXJhbCI6ImVudm95Y29uZmlncyIsInNob3J0TmFtZXMiOlsiZWMiXSwic2luZ3VsYXIiOiJlbnZveWNvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3siYWRkaXRpb25hbFByaW50ZXJDb2x1bW5zIjpbeyJqc29uUGF0aCI6Ii5zcGVjLm5vZGVJRCIsIm5hbWUiOiJOb2RlIElEIiwidHlwZSI6InN0cmluZyJ9LHsianNvblBhdGgiOiIuc3BlYy5lbnZveUFQSSIsIm5hbWUiOiJFbnZveSBBUEkiLCJ0eXBlIjoic3RyaW5nIn0seyJqc29uUGF0aCI6Ii5zdGF0dXMuZGVzaXJlZFZlcnNpb24iLCJuYW1lIjoiRGVzaXJlZCBWZXJzaW9uIiwidHlwZSI6InN0cmluZyJ9LHsianNvblBhdGgiOiIuc3RhdHVzLnB1Ymxpc2hlZFZlcnNpb24iLCJuYW1lIjoiUHVibGlzaGVkIFZlcnNpb24iLCJ0eXBlIjoic3RyaW5nIn0seyJqc29uUGF0aCI6Ii5zdGF0dXMuY2FjaGVTdGF0ZSIsIm5hbWUiOiJDYWNoZSBTdGF0ZSIsInR5cGUiOiJzdHJpbmcifV0sIm5hbWUiOiJ2MWFscGhhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJFbnZveUNvbmZpZyBob2xkcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgYSBnaXZlbiBlbnZveSBub2RlSUQuIFRoZSBzcGVjIG9mIGFuIEVudm95Q29uZmlnIG9iamVjdCBob2xkcyB0aGUgRW52b3kgcmVzb3VyY2VzIHRoYXQgY29uZm9ybSB0aGUgZGVzaXJlZCBjb25maWd1cmF0aW9uIGZvciB0aGUgZ2l2ZW4gbm9kZUlEIGFuZCB0aGF0IHRoZSBkaXNjb3Zlcnkgc2VydmljZSB3aWxsIHNlbmQgdG8gYW55IGVudm95IGNsaWVudCB0aGF0IGlkZW50aWZpZXMgaXRzZWxmIHdpdGggdGhhdCBub2RlSUQuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJFbnZveUNvbmZpZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBFbnZveUNvbmZpZyIsInByb3BlcnRpZXMiOnsiZW52b3lBUEkiOnsiZGVzY3JpcHRpb24iOiJFbnZveUFQSSBpcyB0aGUgdmVyc2lvbiBvZiBlbnZveSdzIEFQSSB0byB1c2UuIERlZmF1bHRzIHRvIHYzLiIsImVudW0iOlsidjMiXSwidHlwZSI6InN0cmluZyJ9LCJlbnZveVJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IkVudm95UmVzb3VyY2VzIGhvbGRzIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgcmVzb3VyY2VzIHN1cG9ydGVkIGJ5IHRoZSBlbnZveSBkaXNjb3Zlcnkgc2VydmljZSBERVBSRUNBVEVELiBVc2UgdGhlIGByZXNvdXJjZXNgIGZpZWxkIGluc3RlYWQuIiwicHJvcGVydGllcyI6eyJjbHVzdGVycyI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgQ2x1c3RlciByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvY2x1c3Rlci92My9jbHVzdGVyLnByb3RvIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveVJlc291cmNlIGhvbGRzIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgYW4gZW52b3kgcmVzb3VyY2UiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZveSByZXNvdXJjZS4gREVQUkVDQVRFRDogdGhpcyBmaWVsZCBoYXMgbm8gZWZmZWN0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzIGlzIGluY2x1ZGVkIGluIHRoZSByZXNvdXJjZSBpdHNlbGYuIFJlZmVyIHRvIHRoZSBlbnZveSBBUEkgcmVmZXJlbmNlIHRvIGNoZWNrIGhvdyB0aGUgbmFtZSBpcyBzcGVjaWZpZWQgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVudm95IHJlc291cmNlIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidmFsdWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiZW5kcG9pbnRzIjp7ImRlc2NyaXB0aW9uIjoiRW5kcG9pbnRzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgQ2x1c3RlckxvYWRBc3NpZ25tZW50IHJlc291cmNlIHR5cGUuIEFQSSBWMyByZWZlcmVuY2U6IGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLXYzL2NvbmZpZy9lbmRwb2ludC92My9lbmRwb2ludC5wcm90byIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRW52b3lSZXNvdXJjZSBob2xkcyBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIGFuIGVudm95IHJlc291cmNlIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBlbnZveSByZXNvdXJjZSIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInZhbHVlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sImV4dGVuc2lvbkNvbmZpZ3MiOnsiZGVzY3JpcHRpb24iOiJFeHRlbnNpb25Db25maWdzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgRXh0ZW5zaW9uQ29uZmlnIHJlc291cmNlIHR5cGUgQVBJIFYzIHJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktdjMvY29uZmlnL2NvcmUvdjMvZXh0ZW5zaW9uLnByb3RvIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveVJlc291cmNlIGhvbGRzIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgYW4gZW52b3kgcmVzb3VyY2UiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZveSByZXNvdXJjZS4gREVQUkVDQVRFRDogdGhpcyBmaWVsZCBoYXMgbm8gZWZmZWN0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzIGlzIGluY2x1ZGVkIGluIHRoZSByZXNvdXJjZSBpdHNlbGYuIFJlZmVyIHRvIHRoZSBlbnZveSBBUEkgcmVmZXJlbmNlIHRvIGNoZWNrIGhvdyB0aGUgbmFtZSBpcyBzcGVjaWZpZWQgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVudm95IHJlc291cmNlIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidmFsdWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibGlzdGVuZXJzIjp7ImRlc2NyaXB0aW9uIjoiTGlzdGVuZXJzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgTGlzdGVuZXIgcmVzb3VyY2UgdHlwZS4gQVBJIFYzIHJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktdjMvY29uZmlnL2xpc3RlbmVyL3YzL2xpc3RlbmVyLnByb3RvIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveVJlc291cmNlIGhvbGRzIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgYW4gZW52b3kgcmVzb3VyY2UiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZveSByZXNvdXJjZS4gREVQUkVDQVRFRDogdGhpcyBmaWVsZCBoYXMgbm8gZWZmZWN0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzIGlzIGluY2x1ZGVkIGluIHRoZSByZXNvdXJjZSBpdHNlbGYuIFJlZmVyIHRvIHRoZSBlbnZveSBBUEkgcmVmZXJlbmNlIHRvIGNoZWNrIGhvdyB0aGUgbmFtZSBpcyBzcGVjaWZpZWQgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVudm95IHJlc291cmNlIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidmFsdWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicm91dGVzIjp7ImRlc2NyaXB0aW9uIjoiUm91dGVzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgUm91dGUgcmVzb3VyY2UgdHlwZS4gQVBJIFYzIHJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktdjMvY29uZmlnL3JvdXRlL3YzL3JvdXRlLnByb3RvIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveVJlc291cmNlIGhvbGRzIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgYW4gZW52b3kgcmVzb3VyY2UiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZveSByZXNvdXJjZS4gREVQUkVDQVRFRDogdGhpcyBmaWVsZCBoYXMgbm8gZWZmZWN0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzIGlzIGluY2x1ZGVkIGluIHRoZSByZXNvdXJjZSBpdHNlbGYuIFJlZmVyIHRvIHRoZSBlbnZveSBBUEkgcmVmZXJlbmNlIHRvIGNoZWNrIGhvdyB0aGUgbmFtZSBpcyBzcGVjaWZpZWQgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVudm95IHJlc291cmNlIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidmFsdWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicnVudGltZXMiOnsiZGVzY3JpcHRpb24iOiJSdW50aW1lcyBpcyBhIGxpc3Qgb2YgdGhlIGVudm95IFJ1bnRpbWUgcmVzb3VyY2UgdHlwZS4gQVBJIFYzIHJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktdjMvc2VydmljZS9ydW50aW1lL3YzL3J0ZHMucHJvdG8iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkVudm95UmVzb3VyY2UgaG9sZHMgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiBhbiBlbnZveSByZXNvdXJjZSIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHJlc291cmNlLiBERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2VzIGZvciBkaXNjb3ZlcnkgcHVycG9zZXMgaXMgaW5jbHVkZWQgaW4gdGhlIHJlc291cmNlIGl0c2VsZi4gUmVmZXIgdG8gdGhlIGVudm95IEFQSSByZWZlcmVuY2UgdG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ2YWx1ZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJzY29wZWRSb3V0ZXMiOnsiZGVzY3JpcHRpb24iOiJTY29wZWRSb3V0ZXMgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBTY29wZVJvdXRlIHJlc291cmNlIHR5cGUuIEFQSSBWMyByZWZlcmVuY2U6IGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLXYzL2NvbmZpZy9yb3V0ZS92My9zY29wZWRfcm91dGUucHJvdG8iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkVudm95UmVzb3VyY2UgaG9sZHMgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiBhbiBlbnZveSByZXNvdXJjZSIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHJlc291cmNlLiBERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2VzIGZvciBkaXNjb3ZlcnkgcHVycG9zZXMgaXMgaW5jbHVkZWQgaW4gdGhlIHJlc291cmNlIGl0c2VsZi4gUmVmZXIgdG8gdGhlIGVudm95IEFQSSByZWZlcmVuY2UgdG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ2YWx1ZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJzZWNyZXRzIjp7ImRlc2NyaXB0aW9uIjoiU2VjcmV0cyBpcyBhIGxpc3Qgb2YgcmVmZXJlbmNlcyB0byBLdWJlcm5ldGVzIFNlY3JldCBvYmplY3RzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRW52b3lTZWNyZXRSZXNvdXJjZSBob2xkcyBhIHJlZmVyZW5jZSB0byBhIGs4cyBTZWNyZXQgZnJvbSB3aGVyZSB0byB0YWtlIGEgc2VjcmV0IGZyb20uIE9ubHkgU2VjcmV0cyB3aXRoaW4gdGhlIHNhbWUgbmFtZXNwYWNlIGNhbiBiZSByZWZlcnJlZC4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZveSB0c2xDZXJ0aWNhdGUgc2VjcmV0IHJlc291cmNlLiBUaGUgY2VydGlmaWNhdGUgd2lsbCBiZSBmZXRjaGVkIGZyb20gYSBLdWJlcm5ldGVzIFNlY3JldHMgb2YgdHlwZSAna3ViZXJuZXRlcy5pby90bHMnIHdpdGggdGhpcyBzYW1lIG5hbWUuIiwidHlwZSI6InN0cmluZyJ9LCJyZWYiOnsiZGVzY3JpcHRpb24iOiJERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGlzIGRlcHJlY2F0ZWQgYW5kIGl0J3MgdmFsdWUgd2lsbCBiZSBpZ25vcmVkLiBUaGUgJ25hbWUnIG9mIHRoZSBLdWJlcm5ldGVzIFNlY3JldCBtdXN0IG1hdGNoIHRoZSAnbmFtZScgZmllbGQuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoibmFtZSBpcyB1bmlxdWUgd2l0aGluIGEgbmFtZXNwYWNlIHRvIHJlZmVyZW5jZSBhIHNlY3JldCByZXNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWVzcGFjZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZSBkZWZpbmVzIHRoZSBzcGFjZSB3aXRoaW4gd2hpY2ggdGhlIHNlY3JldCBuYW1lIG11c3QgYmUgdW5pcXVlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwibm9kZUlEIjp7ImRlc2NyaXB0aW9uIjoiTm9kZUlEIGhvbGRzIHRoZSBlbnZveSBpZGVudGlmaWVyIGZvciB0aGUgZGlzY292ZXJ5IHNlcnZpY2UgdG8ga25vdyB3aGljaCBzZXQgb2YgcmVzb3VyY2VzIHRvIHNlbmQgdG8gZWFjaCBvZiB0aGUgZW52b3kgY2xpZW50cyB0aGF0IGNvbm5lY3QgdG8gaXQuIiwidHlwZSI6InN0cmluZyJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgaG9sZHMgdGhlIGRpZmZlcmVudCB0eXBlcyBvZiByZXNvdXJjZXMgc3Vwb3J0ZWQgYnkgdGhlIGVudm95IGRpc2NvdmVyeSBzZXJ2aWNlIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZSBob2xkcyBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIGFuIGVudm95IHJlc291cmNlIiwicHJvcGVydGllcyI6eyJibHVlcHJpbnQiOnsiZGVzY3JpcHRpb24iOiJCbHVlcHJpbnQgc3BlY2lmaWVzIGEgdGVtcGxhdGUgdG8gZ2VuZXJhdGUgYSBjb25maWd1cmF0aW9uIHByb3RvLiBJdCBpcyBjdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgdG8gZ2VuZXJhdGUgc2VjcmV0IGNvbmZpZ3VyYXRpb24gcmVzb3VyY2VzIGZyb20gazhzIFNlY3JldHMiLCJlbnVtIjpbInRsc0NlcnRpZmljYXRlIiwidmFsaWRhdGlvbkNvbnRleHQiXSwidHlwZSI6InN0cmluZyJ9LCJnZW5lcmF0ZUZyb21FbmRwb2ludFNsaWNlcyI6eyJkZXNjcmlwdGlvbiI6IlNwZWNpZmllcyBhIGxhYmVsIHNlbGVjdG9yIHRvIHdhdGNoIGZvciBFbmRwb2ludFNsaWNlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgZW5kcG9pbnQgcmVzb3VyY2UiLCJwcm9wZXJ0aWVzIjp7ImNsdXN0ZXJOYW1lIjp7InR5cGUiOiJzdHJpbmcifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIGlzIGEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMuIFRoZSByZXN1bHQgb2YgbWF0Y2hMYWJlbHMgYW5kIG1hdGNoRXhwcmVzc2lvbnMgYXJlIEFORGVkLiBBbiBlbXB0eSBsYWJlbCBzZWxlY3RvciBtYXRjaGVzIGFsbCBvYmplY3RzLiBBIG51bGwgbGFiZWwgc2VsZWN0b3IgbWF0Y2hlcyBubyBvYmplY3RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwidGFyZ2V0UG9ydCI6eyJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJjbHVzdGVyTmFtZSIsInNlbGVjdG9yIiwidGFyZ2V0UG9ydCJdLCJ0eXBlIjoib2JqZWN0In0sImdlbmVyYXRlRnJvbU9wYXF1ZVNlY3JldCI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIGEgS3ViZXJuZXRlcyBTZWNyZXQgb2YgdHlwZSBcIk9wYXF1ZVwiLiBJdCB3aWxsIGdlbmVyYXRlIGFuIGVudm95IFwiZ2VuZXJpYyBzZWNyZXRcIiBwcm90by4iLCJwcm9wZXJ0aWVzIjp7ImFsaWFzIjp7ImRlc2NyaXB0aW9uIjoiQSB1bmlxdWUgbmFtZSB0byByZWZlciB0byB0aGUgbmFtZTprZXkgY29tYmluYXRpb24iLCJ0eXBlIjoic3RyaW5nIn0sImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBrZXkgb2YgdGhlIHNlY3JldCB0byBzZWxlY3QgZnJvbS4gIE11c3QgYmUgYSB2YWxpZCBzZWNyZXQga2V5LiIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBzZWNyZXQgaW4gdGhlIHBvZCdzIG5hbWVzcGFjZSB0byBzZWxlY3QgZnJvbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJhbGlhcyIsImtleSIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJnZW5lcmF0ZUZyb21UbHNTZWNyZXQiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiBhIEt1YmVybmV0ZXMgU2VjcmV0IG9mIHR5cGUgXCJrdWJlcm5ldGVzLmlvL3Rsc1wiIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiVHlwZSBpcyB0aGUgdHlwZSB1cmwgZm9yIHRoZSBwcm90b2J1ZiBtZXNzYWdlIiwiZW51bSI6WyJsaXN0ZW5lciIsInJvdXRlIiwic2NvcGVkUm91dGUiLCJjbHVzdGVyIiwiZW5kcG9pbnQiLCJzZWNyZXQiLCJydW50aW1lIiwiZXh0ZW5zaW9uQ29uZmlnIl0sInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgcHJvdG9idWZlciBtZXNzYWdlIHRoYXQgY29uZmlndXJlcyB0aGUgcmVzb3VyY2UuIFRoZSBwcm90byBtdXN0IG1hdGNoIHRoZSBlbnZveSBjb25maWd1cmF0aW9uIEFQSSB2MyBzcGVjaWZpY2F0aW9uIGZvciB0aGUgZ2l2ZW4gcmVzb3VyY2UgdHlwZSAoaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktZG9jcy94ZHNfcHJvdG9jb2wjcmVzb3VyY2UtdHlwZXMpIiwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1wcmVzZXJ2ZS11bmtub3duLWZpZWxkcyI6dHJ1ZX19LCJyZXF1aXJlZCI6WyJ0eXBlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInNlcmlhbGl6YXRpb24iOnsiZGVzY3JpcHRpb24iOiJTZXJpYWxpemF0aW9uIHNwZWNpY2lmaWVzIHRoZSBzZXJpYWxpemF0aW9uIGZvcm1hdCB1c2VkIHRvIGRlc2NyaWJlIHRoZSByZXNvdXJjZXMuIFwianNvblwiIGFuZCBcInlhbWxcIiBhcmUgc3VwcG9ydGVkLiBcImpzb25cIiBpcyB1c2VkIGlmIHVuc2V0LiIsImVudW0iOlsianNvbiIsInlhbWwiXSwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibm9kZUlEIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiRW52b3lDb25maWdTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgRW52b3lDb25maWciLCJwcm9wZXJ0aWVzIjp7ImNhY2hlU3RhdGUiOnsiZGVzY3JpcHRpb24iOiJDYWNoZVN0YXRlIHN1bW1hcml6ZXMgYWxsIHRoZSBvYnNlcnZhdGlvbnMgYWJvdXQgdGhlIEVudm95Q29uZmlnIHRvIGdpdmUgdGhlIHVzZXIgYSBjb25jcmV0ZSBpZGVhIG9uIHRoZSBnZW5lcmFsIHN0YXR1cyBvZiB0aGUgZGlzY292ZXJ5IHNlcnZpZSBjYWNoZS4gSXQgaXMgaW50ZW5kZWQgb25seSBmb3IgaHVtYW4gY29uc3VtcHRpb24uIE90aGVyIGNvbnRyb2xsZXJzIHNob3VsZCByZWxseSBvbiBjb25kaXRpb25zIHRvIGRldGVybWluZSB0aGUgc3RhdHVzIG9mIHRoZSBkaXNjb3Zlcnkgc2VydmVyIGNhY2hlLiIsInR5cGUiOiJzdHJpbmcifSwiY29uZGl0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkNvbmRpdGlvbnMgcmVwcmVzZW50IHRoZSBsYXRlc3QgYXZhaWxhYmxlIG9ic2VydmF0aW9ucyBvZiBhbiBvYmplY3QncyBzdGF0ZSIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQ29uZGl0aW9uIGNvbnRhaW5zIGRldGFpbHMgZm9yIG9uZSBhc3BlY3Qgb2YgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhpcyBBUEkgUmVzb3VyY2UuIC0tLSBUaGlzIHN0cnVjdCBpcyBpbnRlbmRlZCBmb3IgZGlyZWN0IHVzZSBhcyBhbiBhcnJheSBhdCB0aGUgZmllbGQgcGF0aCAuc3RhdHVzLmNvbmRpdGlvbnMuICBGb3IgZXhhbXBsZSwgXG4gdHlwZSBGb29TdGF0dXMgc3RydWN0eyAvLyBSZXByZXNlbnRzIHRoZSBvYnNlcnZhdGlvbnMgb2YgYSBmb28ncyBjdXJyZW50IHN0YXRlLiAvLyBLbm93biAuc3RhdHVzLmNvbmRpdGlvbnMudHlwZSBhcmU6IFwiQXZhaWxhYmxlXCIsIFwiUHJvZ3Jlc3NpbmdcIiwgYW5kIFwiRGVncmFkZWRcIiAvLyArcGF0Y2hNZXJnZUtleT10eXBlIC8vICtwYXRjaFN0cmF0ZWd5PW1lcmdlIC8vICtsaXN0VHlwZT1tYXAgLy8gK2xpc3RNYXBLZXk9dHlwZSBDb25kaXRpb25zIFtdbWV0YXYxLkNvbmRpdGlvbiBganNvbjpcImNvbmRpdGlvbnMsb21pdGVtcHR5XCIgcGF0Y2hTdHJhdGVneTpcIm1lcmdlXCIgcGF0Y2hNZXJnZUtleTpcInR5cGVcIiBwcm90b2J1ZjpcImJ5dGVzLDEscmVwLG5hbWU9Y29uZGl0aW9uc1wiYCBcbiAvLyBvdGhlciBmaWVsZHMgfSIsInByb3BlcnRpZXMiOnsibGFzdFRyYW5zaXRpb25UaW1lIjp7ImRlc2NyaXB0aW9uIjoibGFzdFRyYW5zaXRpb25UaW1lIGlzIHRoZSBsYXN0IHRpbWUgdGhlIGNvbmRpdGlvbiB0cmFuc2l0aW9uZWQgZnJvbSBvbmUgc3RhdHVzIHRvIGFub3RoZXIuIFRoaXMgc2hvdWxkIGJlIHdoZW4gdGhlIHVuZGVybHlpbmcgY29uZGl0aW9uIGNoYW5nZWQuICBJZiB0aGF0IGlzIG5vdCBrbm93biwgdGhlbiB1c2luZyB0aGUgdGltZSB3aGVuIHRoZSBBUEkgZmllbGQgY2hhbmdlZCBpcyBhY2NlcHRhYmxlLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsInR5cGUiOiJzdHJpbmcifSwibWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6Im1lc3NhZ2UgaXMgYSBodW1hbiByZWFkYWJsZSBtZXNzYWdlIGluZGljYXRpbmcgZGV0YWlscyBhYm91dCB0aGUgdHJhbnNpdGlvbi4gVGhpcyBtYXkgYmUgYW4gZW1wdHkgc3RyaW5nLiIsIm1heExlbmd0aCI6MzI3NjgsInR5cGUiOiJzdHJpbmcifSwib2JzZXJ2ZWRHZW5lcmF0aW9uIjp7ImRlc2NyaXB0aW9uIjoib2JzZXJ2ZWRHZW5lcmF0aW9uIHJlcHJlc2VudHMgdGhlIC5tZXRhZGF0YS5nZW5lcmF0aW9uIHRoYXQgdGhlIGNvbmRpdGlvbiB3YXMgc2V0IGJhc2VkIHVwb24uIEZvciBpbnN0YW5jZSwgaWYgLm1ldGFkYXRhLmdlbmVyYXRpb24gaXMgY3VycmVudGx5IDEyLCBidXQgdGhlIC5zdGF0dXMuY29uZGl0aW9uc1t4XS5vYnNlcnZlZEdlbmVyYXRpb24gaXMgOSwgdGhlIGNvbmRpdGlvbiBpcyBvdXQgb2YgZGF0ZSB3aXRoIHJlc3BlY3QgdG8gdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGluc3RhbmNlLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwicmVhc29uIjp7ImRlc2NyaXB0aW9uIjoicmVhc29uIGNvbnRhaW5zIGEgcHJvZ3JhbW1hdGljIGlkZW50aWZpZXIgaW5kaWNhdGluZyB0aGUgcmVhc29uIGZvciB0aGUgY29uZGl0aW9uJ3MgbGFzdCB0cmFuc2l0aW9uLiBQcm9kdWNlcnMgb2Ygc3BlY2lmaWMgY29uZGl0aW9uIHR5cGVzIG1heSBkZWZpbmUgZXhwZWN0ZWQgdmFsdWVzIGFuZCBtZWFuaW5ncyBmb3IgdGhpcyBmaWVsZCwgYW5kIHdoZXRoZXIgdGhlIHZhbHVlcyBhcmUgY29uc2lkZXJlZCBhIGd1YXJhbnRlZWQgQVBJLiBUaGUgdmFsdWUgc2hvdWxkIGJlIGEgQ2FtZWxDYXNlIHN0cmluZy4gVGhpcyBmaWVsZCBtYXkgbm90IGJlIGVtcHR5LiIsIm1heExlbmd0aCI6MTAyNCwibWluTGVuZ3RoIjoxLCJwYXR0ZXJuIjoiXltBLVphLXpdKFtBLVphLXowLTlfLDpdKltBLVphLXowLTlfXSk/JCIsInR5cGUiOiJzdHJpbmcifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoic3RhdHVzIG9mIHRoZSBjb25kaXRpb24sIG9uZSBvZiBUcnVlLCBGYWxzZSwgVW5rbm93bi4iLCJlbnVtIjpbIlRydWUiLCJGYWxzZSIsIlVua25vd24iXSwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoidHlwZSBvZiBjb25kaXRpb24gaW4gQ2FtZWxDYXNlIG9yIGluIGZvby5leGFtcGxlLmNvbS9DYW1lbENhc2UuIC0tLSBNYW55IC5jb25kaXRpb24udHlwZSB2YWx1ZXMgYXJlIGNvbnNpc3RlbnQgYWNyb3NzIHJlc291cmNlcyBsaWtlIEF2YWlsYWJsZSwgYnV0IGJlY2F1c2UgYXJiaXRyYXJ5IGNvbmRpdGlvbnMgY2FuIGJlIHVzZWZ1bCAoc2VlIC5ub2RlLnN0YXR1cy5jb25kaXRpb25zKSwgdGhlIGFiaWxpdHkgdG8gZGVjb25mbGljdCBpcyBpbXBvcnRhbnQuIFRoZSByZWdleCBpdCBtYXRjaGVzIGlzIChkbnMxMTIzU3ViZG9tYWluRm10Lyk/KHF1YWxpZmllZE5hbWVGbXQpIiwibWF4TGVuZ3RoIjozMTYsInBhdHRlcm4iOiJeKFthLXowLTldKFstYS16MC05XSpbYS16MC05XSk/KFxcLlthLXowLTldKFstYS16MC05XSpbYS16MC05XSk/KSovKT8oKFtBLVphLXowLTldWy1BLVphLXowLTlfLl0qKT9bQS1aYS16MC05XSkkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibGFzdFRyYW5zaXRpb25UaW1lIiwibWVzc2FnZSIsInJlYXNvbiIsInN0YXR1cyIsInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiZGVzaXJlZFZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJEZXNpcmVkVmVyc2lvbiByZXByZXNlbnRzIHRoZSByZXNvdXJjZXMgdmVyc2lvbiBkZXNjcmliZWQgaW4gdGhlIHNwZWMgb2YgdGhlIEVudm95Q29uZmlnIG9iamVjdCIsInR5cGUiOiJzdHJpbmcifSwicHVibGlzaGVkVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlB1Ymxpc2hlZFZlcnNpb24gaXMgdGhlIGNvbmZpZyB2ZXJzaW9uIGN1cnJlbnRseSBzZXJ2ZWQgYnkgdGhlIGVudm95IGRpc2NvdmVyeSBzZXJ2aWNlIGZvciB0aGUgZ2l2ZSBub2RlSUQiLCJ0eXBlIjoic3RyaW5nIn0sInJldmlzaW9ucyI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ1JldmlzaW9ucyBpcyBhbiBvcmRlcmVkIGxpc3Qgb2YgcmVmZXJlbmNlcyB0byBFbnZveUNvbmZpZ1JldmlzaW9uIG9iamVjdHMiLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ1JldmlzaW9uUmVmIGhvbGRzIGEgcmVmZXJlbmNlIHRvIEVudm95Q29uZmlnUmV2aXNpb24gb2JqZWN0IiwicHJvcGVydGllcyI6eyJyZWYiOnsiZGVzY3JpcHRpb24iOiJSZWYgaXMgYSByZWZlcmVuY2UgdG8gdGhlIEVudm95Q29uZmlnUmV2aXNpb24gb2JqZWN0IHRoYXQgaG9sZHMgdGhlIGNvbmZpZ3VyYXRpb24gbWF0Y2hpbmcgdGhlIFZlcnNpb24gZmllbGQuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJIHZlcnNpb24gb2YgdGhlIHJlZmVyZW50LiIsInR5cGUiOiJzdHJpbmcifSwiZmllbGRQYXRoIjp7ImRlc2NyaXB0aW9uIjoiSWYgcmVmZXJyaW5nIHRvIGEgcGllY2Ugb2YgYW4gb2JqZWN0IGluc3RlYWQgb2YgYW4gZW50aXJlIG9iamVjdCwgdGhpcyBzdHJpbmcgc2hvdWxkIGNvbnRhaW4gYSB2YWxpZCBKU09OL0dvIGZpZWxkIGFjY2VzcyBzdGF0ZW1lbnQsIHN1Y2ggYXMgZGVzaXJlZFN0YXRlLm1hbmlmZXN0LmNvbnRhaW5lcnNbMl0uIEZvciBleGFtcGxlLCBpZiB0aGUgb2JqZWN0IHJlZmVyZW5jZSBpcyB0byBhIGNvbnRhaW5lciB3aXRoaW4gYSBwb2QsIHRoaXMgd291bGQgdGFrZSBvbiBhIHZhbHVlIGxpa2U6IFwic3BlYy5jb250YWluZXJze25hbWV9XCIgKHdoZXJlIFwibmFtZVwiIHJlZmVycyB0byB0aGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIHRoYXQgdHJpZ2dlcmVkIHRoZSBldmVudCkgb3IgaWYgbm8gY29udGFpbmVyIG5hbWUgaXMgc3BlY2lmaWVkIFwic3BlYy5jb250YWluZXJzWzJdXCIgKGNvbnRhaW5lciB3aXRoIGluZGV4IDIgaW4gdGhpcyBwb2QpLiBUaGlzIHN5bnRheCBpcyBjaG9zZW4gb25seSB0byBoYXZlIHNvbWUgd2VsbC1kZWZpbmVkIHdheSBvZiByZWZlcmVuY2luZyBhIHBhcnQgb2YgYW4gb2JqZWN0LiBUT0RPOiB0aGlzIGRlc2lnbiBpcyBub3QgZmluYWwgYW5kIHRoaXMgZmllbGQgaXMgc3ViamVjdCB0byBjaGFuZ2UgaW4gdGhlIGZ1dHVyZS4iLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIG9mIHRoZSByZWZlcmVudC4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIHJlZmVyZW50LiBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L3dvcmtpbmctd2l0aC1vYmplY3RzL25hbWVzLyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifSwibmFtZXNwYWNlIjp7ImRlc2NyaXB0aW9uIjoiTmFtZXNwYWNlIG9mIHRoZSByZWZlcmVudC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9vdmVydmlldy93b3JraW5nLXdpdGgtb2JqZWN0cy9uYW1lc3BhY2VzLyIsInR5cGUiOiJzdHJpbmcifSwicmVzb3VyY2VWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiU3BlY2lmaWMgcmVzb3VyY2VWZXJzaW9uIHRvIHdoaWNoIHRoaXMgcmVmZXJlbmNlIGlzIG1hZGUsIGlmIGFueS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNjb25jdXJyZW5jeS1jb250cm9sLWFuZC1jb25zaXN0ZW5jeSIsInR5cGUiOiJzdHJpbmcifSwidWlkIjp7ImRlc2NyaXB0aW9uIjoiVUlEIG9mIHRoZSByZWZlcmVudC4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9vdmVydmlldy93b3JraW5nLXdpdGgtb2JqZWN0cy9uYW1lcy8jdWlkcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwidmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlZlcnNpb24gaXMgYSBoYXNoIG9mIHRoZSBFbnZveVJlc291cmNlcyBmaWVsZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInJlZiIsInZlcnNpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOm51bGwsInN0b3JlZFZlcnNpb25zIjpudWxsfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwibWFyaW4zci4zc2NhbGUubmV0L3YxYWxwaGExXCIsXG4gICAgXCJraW5kXCI6IFwiRW52b3lDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImVudm95Y29uZmlnLWV4YW1wbGVcIixcbiAgICAgIFwibmFtZXNwYWNlXCI6IFwibXktbmFtZXNwYWNlXCJcbiAgICB9LFxuICAgIFwic3BlY1wiOiB7XG4gICAgICBcIm5vZGVJRFwiOiBcImV4YW1wbGVcIixcbiAgICAgIFwicmVzb3VyY2VzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwidHlwZVwiOiBcImNsdXN0ZXJcIixcbiAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwiY29ubmVjdF90aW1lb3V0XCI6IFwiMC4wMXNcIixcbiAgICAgICAgICAgIFwiZG5zX2xvb2t1cF9mYW1pbHlcIjogXCJWNF9PTkxZXCIsXG4gICAgICAgICAgICBcImxiX3BvbGljeVwiOiBcIlJPVU5EX1JPQklOXCIsXG4gICAgICAgICAgICBcImxvYWRfYXNzaWdubWVudFwiOiB7XG4gICAgICAgICAgICAgIFwiY2x1c3Rlcl9uYW1lXCI6IFwiZXhhbXBsZVwiLFxuICAgICAgICAgICAgICBcImVuZHBvaW50c1wiOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgXCJsYl9lbmRwb2ludHNcIjogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJlbmRwb2ludFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImFkZHJlc3NcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNvY2tldF9hZGRyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZHJlc3NcIjogXCJleGFtcGxlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwb3J0X3ZhbHVlXCI6IDgwODBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwibmFtZVwiOiBcImV4YW1wbGVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIlNUUklDVF9ETlNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwidHlwZVwiOiBcInJvdXRlXCIsXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICBcIm5hbWVcIjogXCJsb2NhbFwiLFxuICAgICAgICAgICAgXCJ2aXJ0dWFsX2hvc3RzXCI6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwiZG9tYWluc1wiOiBbXG4gICAgICAgICAgICAgICAgICBcIipcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiYWxsXCIsXG4gICAgICAgICAgICAgICAgXCJyb3V0ZXNcIjogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInByZWZpeFwiOiBcIi9cIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcInJvdXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImNsdXN0ZXJcIjogXCJleGFtcGxlXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RlbmVyXCIsXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICBcImFkZHJlc3NcIjoge1xuICAgICAgICAgICAgICBcInNvY2tldF9hZGRyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICBcImFkZHJlc3NcIjogXCIwLjAuMC4wXCIsXG4gICAgICAgICAgICAgICAgXCJwb3J0X3ZhbHVlXCI6IDg0NDNcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZmlsdGVyX2NoYWluc1wiOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBcImZpbHRlcnNcIjogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIjogXCJlbnZveS5maWx0ZXJzLm5ldHdvcmsuaHR0cF9jb25uZWN0aW9uX21hbmFnZXJcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlZF9jb25maWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiQHR5cGVcIjogXCJ0eXBlLmdvb2dsZWFwaXMuY29tL2Vudm95LmV4dGVuc2lvbnMuZmlsdGVycy5uZXR3b3JrLmh0dHBfY29ubmVjdGlvbl9tYW5hZ2VyLnYzLkh0dHBDb25uZWN0aW9uTWFuYWdlclwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiYWNjZXNzX2xvZ1wiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcImVudm95LmFjY2Vzc19sb2dnZXJzLmZpbGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlZF9jb25maWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQHR5cGVcIjogXCJ0eXBlLmdvb2dsZWFwaXMuY29tL2Vudm95LmV4dGVuc2lvbnMuYWNjZXNzX2xvZ2dlcnMuZmlsZS52My5GaWxlQWNjZXNzTG9nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXRoXCI6IFwiL2Rldi9zdGRvdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICBcImh0dHBfZmlsdGVyc1wiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcImVudm95LmZpbHRlcnMuaHR0cC5yb3V0ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlZF9jb25maWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQHR5cGVcIjogXCJ0eXBlLmdvb2dsZWFwaXMuY29tL2Vudm95LmV4dGVuc2lvbnMuZmlsdGVycy5odHRwLnJvdXRlci52My5Sb3V0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICBcInJkc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImNvbmZpZ19zb3VyY2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkc1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXNvdXJjZV9hcGlfdmVyc2lvblwiOiBcIlYzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJvdXRlX2NvbmZpZ19uYW1lXCI6IFwibG9jYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJzdGF0X3ByZWZpeFwiOiBcImh0dHBzXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJ0cmFuc3BvcnRfc29ja2V0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcImVudm95LnRyYW5zcG9ydF9zb2NrZXRzLnRsc1wiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlZF9jb25maWdcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkB0eXBlXCI6IFwidHlwZS5nb29nbGVhcGlzLmNvbS9lbnZveS5leHRlbnNpb25zLnRyYW5zcG9ydF9zb2NrZXRzLnRscy52My5Eb3duc3RyZWFtVGxzQ29udGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICBcImNvbW1vbl90bHNfY29udGV4dFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0bHNfY2VydGlmaWNhdGVfc2RzX3NlY3JldF9jb25maWdzXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiZXhhbXBsZS5kZWZhdWx0LnN2Y1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNkc19jb25maWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVzb3VyY2VfYXBpX3ZlcnNpb25cIjogXCJWM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm5hbWVcIjogXCJodHRwc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJibHVlcHJpbnRcIjogXCJ0bHNDZXJ0aWZpY2F0ZVwiLFxuICAgICAgICAgIFwiZ2VuZXJhdGVGcm9tVGxzU2VjcmV0XCI6IFwiZXhhbXBsZS5kZWZhdWx0LnN2Y1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInNlY3JldFwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIHtcbiAgICBcImFwaVZlcnNpb25cIjogXCJvcGVyYXRvci5tYXJpbjNyLjNzY2FsZS5uZXQvdjFhbHBoYTFcIixcbiAgICBcImtpbmRcIjogXCJEaXNjb3ZlcnlTZXJ2aWNlXCIsXG4gICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICBcIm5hbWVcIjogXCJkaXNjb3ZlcnlzZXJ2aWNlLWV4YW1wbGVcIixcbiAgICAgIFwibmFtZXNwYWNlXCI6IFwibXktbmFtZXNwYWNlXCJcbiAgICB9LFxuICAgIFwic3BlY1wiOiB7fVxuICB9LFxuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwib3BlcmF0b3IubWFyaW4zci4zc2NhbGUubmV0L3YxYWxwaGExXCIsXG4gICAgXCJraW5kXCI6IFwiRW52b3lEZXBsb3ltZW50XCIsXG4gICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICBcIm5hbWVcIjogXCJlbnZveWRlcGxveW1lbnQtc2FtcGxlXCIsXG4gICAgICBcIm5hbWVzcGFjZVwiOiBcIm15LW5hbWVzcGFjZVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJkaXNjb3ZlcnlTZXJ2aWNlUmVmXCI6IFwiZGlzY292ZXJ5c2VydmljZS1leGFtcGxlXCIsXG4gICAgICBcImVudm95Q29uZmlnUmVmXCI6IFwiZW52b3ljb25maWctZXhhbXBsZVwiLFxuICAgICAgXCJwb3J0c1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJodHRwc1wiLFxuICAgICAgICAgIFwicG9ydFwiOiA4NDQzXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJGdWxsIExpZmVjeWNsZSIsImNhdGVnb3JpZXMiOiJOZXR3b3JraW5nIiwiY2VydGlmaWVkIjoiZmFsc2UiLCJjb250YWluZXJJbWFnZSI6InF1YXkuaW8vM3NjYWxlL21hcmluM3IiLCJjcmVhdGVkQXQiOiIyMDI0LTExLTA0VDEwOjM5OjI3WiIsImRlc2NyaXB0aW9uIjoiTGlnaHdlaWdodCwgQ1JEIGJhc2VkIEVudm95IGNvbnRyb2wgcGxhbmUgZm9yIEt1YmVybmV0ZXMiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vYnVpbGRlciI6Im9wZXJhdG9yLXNkay12MS4yOC4wIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL2ludGVybmFsLW9iamVjdHMiOiJbXCJlbnZveWNvbmZpZ3JldmlzaW9ucy5tYXJpbjNyLjNzY2FsZS5uZXRcIixcImRpc2NvdmVyeXNlcnZpY2VjZXJ0aWZpY2F0ZXMub3BlcmF0b3IubWFyaW4zci4zc2NhbGUubmV0XCJdIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL3Byb2plY3RfbGF5b3V0IjoiZ28ua3ViZWJ1aWxkZXIuaW8vdjMiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tLzNzY2FsZS1vcHMvbWFyaW4zciIsInN1cHBvcnQiOiJSZWQgSGF0LCBJbmMuIn0sIm5hbWUiOiJtYXJpbjNyLnYwLjEzLjItYWxwaGEuMSIsIm5hbWVzcGFjZSI6InBsYWNlaG9sZGVyIn0sInNwZWMiOnsiYXBpc2VydmljZWRlZmluaXRpb25zIjp7fSwiY3VzdG9tcmVzb3VyY2VkZWZpbml0aW9ucyI6eyJvd25lZCI6W3siZGVzY3JpcHRpb24iOiJEaXNjb3ZlcnlTZXJ2aWNlQ2VydGlmaWNhdGUgaXMgYW4gaW50ZXJuYWwgcmVzb3VyY2UgdXNlZCB0byBjcmVhdGUgY2VydGlmaWNhdGVzLiBUaGlzIHJlc291cmNlIGlzIHVzZWQgYnkgdGhlIERpc2NvdmVyeVNlcnZpY2UgY29udHJvbGxlciB0byBjcmVhdGUgdGhlIHJlcXVpcmVkIGNlcnRpZmljYXRlcyBmb3IgdGhlIGRpZmZlcmVudCBjb21wb25lbnRzLiBEaXJlY3QgdXNlIG9mIERpc2NvdmVyeVNlcnZpY2VDZXJ0aWZpY2F0ZSBvYmplY3RzIGlzIGRpc2NvdXJhZ2VkLiIsImRpc3BsYXlOYW1lIjoiRGlzY292ZXJ5U2VydmljZUNlcnRpZmljYXRlIiwia2luZCI6IkRpc2NvdmVyeVNlcnZpY2VDZXJ0aWZpY2F0ZSIsIm5hbWUiOiJkaXNjb3ZlcnlzZXJ2aWNlY2VydGlmaWNhdGVzLm9wZXJhdG9yLm1hcmluM3IuM3NjYWxlLm5ldCIsInNwZWNEZXNjcmlwdG9ycyI6W3siZGVzY3JpcHRpb24iOiJDZXJ0aWZpY2F0ZVJlbmV3YWxDb25maWcgY29uZmlndXJlcyB0aGUgY2VydGlmaWNhdGUgcmVuZXdhbCBwcm9jZXNzLiBJZiB1bnNldCBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvIHJlbmV3IHRoZSBjZXJ0aWZpY2F0ZSBidXQgbm90IG5vdGlmeSBvZiByZW5ld2Fscy4iLCJkaXNwbGF5TmFtZSI6IkNlcnRpZmljYXRlIFJlbmV3YWwgQ29uZmlnIiwicGF0aCI6ImNlcnRpZmljYXRlUmVuZXdhbCJ9LHsiZGVzY3JpcHRpb24iOiJFbmFibGVkIGlzIGEgZmxhZyB0byBlbmFibGUgb3IgZGlzYWJsZSByZW5ld2FsIG9mIHRoZSBjZXJ0aWZpY2F0ZSIsImRpc3BsYXlOYW1lIjoiRW5hYmxlZCIsInBhdGgiOiJjZXJ0aWZpY2F0ZVJlbmV3YWwuZW5hYmxlZCJ9LHsiZGVzY3JpcHRpb24iOiJDb21tb25OYW1lIGlzIHRoZSBDb21tb25OYW1lIG9mIHRoZSBjZXJ0aWZpY2F0ZSIsImRpc3BsYXlOYW1lIjoiQ29tbW9uIE5hbWUiLCJwYXRoIjoiY29tbW9uTmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJIb3N0cyBpcyB0aGUgbGlzdCBvZiBob3N0cyB0aGUgY2VydGlmaWNhdGUgaXMgdmFsaWQgZm9yLiBPbmx5IHVzZSB3aGVuICdJc1NlcnZlckNlcnRpZmljYXRlJyBpcyB0cnVlLiBJZiB1bnNldCwgdGhlIENvbW1vbk5hbWUgZmllbGQgd2lsbCBiZSB1c2VkIHRvIHBvcHVsYXRlIHRoZSB2YWxpZCBob3N0cyBvZiB0aGUgY2VydGlmaWNhdGUuIiwiZGlzcGxheU5hbWUiOiJIb3N0cyIsInBhdGgiOiJob3N0cyJ9LHsiZGVzY3JpcHRpb24iOiJJc0NBIGlzIGEgYm9vbGVhbiBzcGVjaWZ5aW5nIHRoYXQgdGhlIGNlcnRpZmljYXRlIGlzIGEgQ0EiLCJkaXNwbGF5TmFtZSI6IklzIENBIiwicGF0aCI6ImlzQ0EifSx7ImRlc2NyaXB0aW9uIjoiU2VjcmV0UmVmIGlzIGEgcmVmZXJlbmNlIHRvIHRoZSBzZWNyZXQgdGhhdCB3aWxsIGhvbGQgdGhlIGNlcnRpZmljYXRlIGFuZCB0aGUgcHJpdmF0ZSBrZXkuIiwiZGlzcGxheU5hbWUiOiJTZWNyZXQgUmVmIiwicGF0aCI6InNlY3JldFJlZiJ9LHsiZGVzY3JpcHRpb24iOiJJc1NlcnZlckNlcnRpZmljYXRlIGlzIGEgYm9vbGVhbiBzcGVjaWZ5aW5nIGlmIHRoZSBjZXJ0aWZpY2F0ZSBzaG91bGQgYmUgaXNzdWVkIHdpdGggc2VydmVyIGF1dGggdXNhZ2UgZW5hYmxlZCIsImRpc3BsYXlOYW1lIjoiSXMgU2VydmVyIENlcnRpZmljYXRlIiwicGF0aCI6InNlcnZlciJ9LHsiZGVzY3JpcHRpb24iOiJTaWduZXIgc3BlY2lmaWVzICB0aGUgc2lnbmVyIHRvIHVzZSB0byBjcmVhdGUgdGhpcyBjZXJ0aWZpY2F0ZS4gU3VwcG9ydGVkIHNpZ25lcnMgYXJlIENlcnRNYW5hZ2VyIGFuZCBTZWxmU2lnbmVkLiIsImRpc3BsYXlOYW1lIjoiU2lnbmVyIiwicGF0aCI6InNpZ25lciJ9LHsiZGVzY3JpcHRpb24iOiJDQVNpZ25lZCBob2xkcyBzcGVjaWZpYyBjb25maWd1cmF0aW9uIGZvciB0aGUgQ0FTaWduZWQgc2lnbmVyIiwiZGlzcGxheU5hbWUiOiJDQVNpZ25lZCIsInBhdGgiOiJzaWduZXIuY2FTaWduZWQifSx7ImRlc2NyaXB0aW9uIjoiQSByZWZlcmVuY2UgdG8gYSBTZWNyZXQgY29udGFpbmluZyB0aGUgQ0EiLCJkaXNwbGF5TmFtZSI6IlNlY3JldCBSZWYiLCJwYXRoIjoic2lnbmVyLmNhU2lnbmVkLmNhU2VjcmV0UmVmIn0seyJkZXNjcmlwdGlvbiI6IlNlbGZTaWduZWQgaG9sZHMgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBmb3IgdGhlIFNlbGZTaWduZWQgc2lnbmVyIiwiZGlzcGxheU5hbWUiOiJTZWxmIFNpZ25lZCIsInBhdGgiOiJzaWduZXIuc2VsZlNpZ25lZCJ9LHsiZGVzY3JpcHRpb24iOiJWYWxpZEZvciBzcGVjaWZpZXMgdGhlIHZhbGlkaXR5IG9mIHRoZSBjZXJ0aWZpY2F0ZSBpbiBzZWNvbmRzIiwiZGlzcGxheU5hbWUiOiJWYWxpZCBGb3IiLCJwYXRoIjoidmFsaWRGb3IifV0sInN0YXR1c0Rlc2NyaXB0b3JzIjpbeyJkZXNjcmlwdGlvbiI6IkNlcnRpZmljYXRlSGFzaCBzdG9yZXMgdGhlIGN1cnJlbnQgaGFzaCBvZiB0aGUgY2VydGlmaWNhdGUuIEl0IGlzIHVzZWQgZm9yIG90aGVyIGNvbnRyb2xsZXJzIHRvIHZhbGlkYXRlIGlmIGEgY2VydGlmaWNhdGUgaGFzIGJlZW4gcmUtaXNzdWVkLiIsImRpc3BsYXlOYW1lIjoiQ2VydGlmaWNhdGUgSGFzaCIsInBhdGgiOiJjZXJ0aWZpY2F0ZUhhc2gifSx7ImRlc2NyaXB0aW9uIjoiQ29uZGl0aW9ucyByZXByZXNlbnQgdGhlIGxhdGVzdCBhdmFpbGFibGUgb2JzZXJ2YXRpb25zIG9mIGFuIG9iamVjdCdzIHN0YXRlIiwiZGlzcGxheU5hbWUiOiJDb25kaXRpb25zIiwicGF0aCI6ImNvbmRpdGlvbnMifSx7ImRlc2NyaXB0aW9uIjoiTm90QWZ0ZXIgaXMgdGhlIHRpbWUgYXQgd2hpY2ggdGhlIGNlcnRpZmljYXRlIGV4cGlyZXMiLCJkaXNwbGF5TmFtZSI6Ik5vdCBBZnRlciIsInBhdGgiOiJub3RBZnRlciJ9LHsiZGVzY3JpcHRpb24iOiJOb3RCZWZvcmUgaXMgdGhlIHRpbWUgYXQgd2hpY2ggdGhlIGNlcnRpZmljYXRlIHN0YXJ0cyBiZWluZyB2YWxpZCIsImRpc3BsYXlOYW1lIjoiTm90IEJlZm9yZSIsInBhdGgiOiJub3RCZWZvcmUifSx7ImRlc2NyaXB0aW9uIjoiUmVhZHkgaXMgYSBib29sZWFuIHRoYXQgc3BlY2lmaWVzIGlmIHRoZSBjZXJ0aWZpY2F0ZSBpcyByZWFkeSB0byBiZSB1c2VkIiwiZGlzcGxheU5hbWUiOiJSZWFkeSIsInBhdGgiOiJyZWFkeSJ9XSwidmVyc2lvbiI6InYxYWxwaGExIn0seyJkZXNjcmlwdGlvbiI6IkRpc2NvdmVyeVNlcnZpY2UgcmVwcmVzZW50cyBhbiBlbnZveSBkaXNjb3Zlcnkgc2VydmljZSBzZXJ2ZXIuIE9ubHkgb25lIGluc3RhbmNlIHBlciBuYW1lc3BhY2UgaXMgY3VycmVudGx5IHN1cHBvcnRlZC4iLCJkaXNwbGF5TmFtZSI6IkRpc2NvdmVyeVNlcnZpY2UiLCJraW5kIjoiRGlzY292ZXJ5U2VydmljZSIsIm5hbWUiOiJkaXNjb3ZlcnlzZXJ2aWNlcy5vcGVyYXRvci5tYXJpbjNyLjNzY2FsZS5uZXQiLCJzcGVjRGVzY3JpcHRvcnMiOlt7ImRlc2NyaXB0aW9uIjoiRGVidWcgZW5hYmxlcyBkZWJ1Z2dpbmcgbG9nIGxldmVsIGZvciB0aGUgZGlzY292ZXJ5IHNlcnZpY2UgY29udHJvbGxlcnMuIEl0IGlzIHNhZmUgdG8gdXNlIHNpbmNlIHNlY3JldCBkYXRhIGlzIG5ldmVyIHNob3duIGluIHRoZSBsb2dzLiIsImRpc3BsYXlOYW1lIjoiRGVidWciLCJwYXRoIjoiZGVidWcifSx7ImRlc2NyaXB0aW9uIjoiSW1hZ2UgaG9sZHMgdGhlIGltYWdlIHRvIHVzZSBmb3IgdGhlIGRpc2NvdmVyeSBzZXJ2aWNlIERlcGxveW1lbnQiLCJkaXNwbGF5TmFtZSI6IkltYWdlIiwicGF0aCI6ImltYWdlIn0seyJkZXNjcmlwdGlvbiI6Ik1ldHJpY3NQb3J0IGlzIHRoZSBwb3J0IHdoZXJlIG1ldHJpY3MgYXJlIHNlcnZlZC4gRGVmYXVsdHMgdG8gODM4My4iLCJkaXNwbGF5TmFtZSI6Ik1ldHJpY3MgUG9ydCIsInBhdGgiOiJtZXRyaWNzUG9ydCJ9LHsiZGVzY3JpcHRpb24iOiJQS0lDb25maWcgaGFzIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBQS0kgdGhhdCBtYXJpbjNyIG1hbmFnZXMgZm9yIHRoZSBkaWZmZXJlbnQgY2VydGlmaWNhdGVzIGl0IHJlcXVpcmVzIiwiZGlzcGxheU5hbWUiOiJQS0lDb25maWciLCJwYXRoIjoicGtpQ29uZmcifSx7ImRpc3BsYXlOYW1lIjoiUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkiLCJwYXRoIjoicGtpQ29uZmcucm9vdENlcnRpZmljYXRlQXV0aG9yaXR5In0seyJkaXNwbGF5TmFtZSI6IkR1cmF0aW9uIiwicGF0aCI6InBraUNvbmZnLnJvb3RDZXJ0aWZpY2F0ZUF1dGhvcml0eS5kdXJhdGlvbiJ9LHsiZGlzcGxheU5hbWUiOiJTZWNyZXQgTmFtZSIsInBhdGgiOiJwa2lDb25mZy5yb290Q2VydGlmaWNhdGVBdXRob3JpdHkuc2VjcmV0TmFtZSJ9LHsiZGlzcGxheU5hbWUiOiJTZXJ2ZXIgQ2VydGlmaWNhdGUiLCJwYXRoIjoicGtpQ29uZmcuc2VydmVyQ2VydGlmaWNhdGUifSx7ImRpc3BsYXlOYW1lIjoiRHVyYXRpb24iLCJwYXRoIjoicGtpQ29uZmcuc2VydmVyQ2VydGlmaWNhdGUuZHVyYXRpb24ifSx7ImRpc3BsYXlOYW1lIjoiU2VjcmV0IE5hbWUiLCJwYXRoIjoicGtpQ29uZmcuc2VydmVyQ2VydGlmaWNhdGUuc2VjcmV0TmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJQcmlvcml0eUNsYXNzIHRvIGFzc2lnbiB0aGUgZGlzY292ZXJ5IHNlcnZpY2UgUG9kIHRvIiwiZGlzcGxheU5hbWUiOiJQb2QgUHJpb3JpdHkgQ2xhc3MiLCJwYXRoIjoicG9kUHJpb3JpdHlDbGFzcyJ9LHsiZGVzY3JpcHRpb24iOiJQcm9iZVBvcnQgaXMgdGhlIHBvcnQgd2hlcmUgaGVhbHRoeiBlbmRwb2ludCBpcyBzZXJ2ZWQuIERlZmF1bHRzIHRvIDgzODQuIiwiZGlzcGxheU5hbWUiOiJQcm9iZSBQb3J0IiwicGF0aCI6InByb2JlUG9ydCJ9LHsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgaG9sZHMgdGhlIFJlc291cmNlIFJlcXVpcmVtZW50cyB0byB1c2UgZm9yIHRoZSBkaXNjb3Zlcnkgc2VydmljZSBEZXBsb3ltZW50LiBXaGVuIG5vdCBzZXQgaXQgZGVmYXVsdHMgdG8gbm8gcmVzb3VyY2UgcmVxdWVzdHMgbm9yIGxpbWl0cy4gQ1BVIGFuZCBNZW1vcnkgcmVzb3VyY2VzIGFyZSBzdXBwb3J0ZWQuIiwiZGlzcGxheU5hbWUiOiJSZXNvdXJjZXMiLCJwYXRoIjoicmVzb3VyY2VzIn0seyJkZXNjcmlwdGlvbiI6IlNlcnZpY2VDb25maWcgY29uZmlndXJlcyB0aGUgd2F5IHRoZSBEaXNjb3ZlcnlTZXJ2aWNlIGVuZHBvaW50cyBhcmUgZXhwb3NlZCIsImRpc3BsYXlOYW1lIjoiU2VydmljZSBDb25maWciLCJwYXRoIjoic2VydmljZUNvbmZpZyJ9LHsiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6InNlcnZpY2VDb25maWcubmFtZSJ9LHsiZGlzcGxheU5hbWUiOiJUeXBlIiwicGF0aCI6InNlcnZpY2VDb25maWcudHlwZSJ9LHsiZGVzY3JpcHRpb24iOiJYZHNTZXJ2ZXJQb3J0IGlzIHRoZSBwb3J0IHdoZXJlIHRoZSB4RFMgc2VydmVyIGxpc3RlbnMuIERlZmF1bHRzIHRvIDE4MDAwLiIsImRpc3BsYXlOYW1lIjoiWGRzIFNlcnZlciBQb3J0IiwicGF0aCI6Inhkc1NlcnZlclBvcnQifV0sInZlcnNpb24iOiJ2MWFscGhhMSJ9LHsiZGVzY3JpcHRpb24iOiJFbnZveUNvbmZpZ1JldmlzaW9uIGlzIGFuIGludGVybmFsIHJlc291cmNlIHRoYXQgc3RvcmVzIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBhbiBFbnZveUNvbmZpZyByZXNvdXJjZS4gRW52b3lDb25maWdSZXZpc2lvbnMgYXJlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBhbmQgZGVsZXRlZCBieSB0aGUgRW52b3lDb25maWcgY29udHJvbGxlciBhbmQgYXJlIG5vdCBpbnRlbmRlZCB0byBiZSBkaXJlY3RseSB1c2VkLiBVc2UgRW52b3lDb25maWcgb2JqZWN0cyBpbnN0ZWFkLiIsImRpc3BsYXlOYW1lIjoiRW52b3lDb25maWdSZXZpc2lvbiIsImtpbmQiOiJFbnZveUNvbmZpZ1JldmlzaW9uIiwibmFtZSI6ImVudm95Y29uZmlncmV2aXNpb25zLm1hcmluM3IuM3NjYWxlLm5ldCIsInNwZWNEZXNjcmlwdG9ycyI6W3siZGVzY3JpcHRpb24iOiJFbnZveUFQSSBpcyB0aGUgdmVyc2lvbiBvZiBlbnZveSdzIEFQSSB0byB1c2UuIERlZmF1bHRzIHRvIHYzLiIsImRpc3BsYXlOYW1lIjoiRW52b3kgQVBJIiwicGF0aCI6ImVudm95QVBJIn0seyJkZXNjcmlwdGlvbiI6IkVudm95UmVzb3VyY2VzIGhvbGRzIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgcmVzb3VyY2VzIHN1cG9ydGVkIGJ5IHRoZSBlbnZveSBkaXNjb3Zlcnkgc2VydmljZSIsImRpc3BsYXlOYW1lIjoiRW52b3kgUmVzb3VyY2VzIiwicGF0aCI6ImVudm95UmVzb3VyY2VzIn0seyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgQ2x1c3RlciByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvY2x1c3Rlci92My9jbHVzdGVyLnByb3RvIiwiZGlzcGxheU5hbWUiOiJDbHVzdGVycyIsInBhdGgiOiJlbnZveVJlc291cmNlcy5jbHVzdGVycyJ9LHsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZveSByZXNvdXJjZS4gREVQUkVDQVRFRDogdGhpcyBmaWVsZCBoYXMgbm8gZWZmZWN0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzIGlzIGluY2x1ZGVkIGluIHRoZSByZXNvdXJjZSBpdHNlbGYuIFJlZmVyIHRvIHRoZSBlbnZveSBBUEkgcmVmZXJlbmNlIHRvIGNoZWNrIGhvdyB0aGUgbmFtZSBpcyBzcGVjaWZpZWQgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4iLCJkaXNwbGF5TmFtZSI6Ik5hbWUiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMuY2x1c3RlcnNbMF0ubmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IlZhbHVlIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmNsdXN0ZXJzWzBdLnZhbHVlIn0seyJkZXNjcmlwdGlvbiI6IkVuZHBvaW50cyBpcyBhIGxpc3Qgb2YgdGhlIGVudm95IENsdXN0ZXJMb2FkQXNzaWdubWVudCByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvZW5kcG9pbnQvdjMvZW5kcG9pbnQucHJvdG8iLCJkaXNwbGF5TmFtZSI6IkVuZHBvaW50cyIsInBhdGgiOiJlbnZveVJlc291cmNlcy5lbmRwb2ludHMifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmVuZHBvaW50c1swXS5uYW1lIn0seyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBlbnZveSByZXNvdXJjZSIsImRpc3BsYXlOYW1lIjoiVmFsdWUiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMuZW5kcG9pbnRzWzBdLnZhbHVlIn0seyJkZXNjcmlwdGlvbiI6IkV4dGVuc2lvbkNvbmZpZ3MgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBFeHRlbnNpb25Db25maWcgcmVzb3VyY2UgdHlwZSBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvY29yZS92My9leHRlbnNpb24ucHJvdG8iLCJkaXNwbGF5TmFtZSI6IkV4dGVuc2lvbiBDb25maWdzIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmV4dGVuc2lvbkNvbmZpZ3MifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmV4dGVuc2lvbkNvbmZpZ3NbMF0ubmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IlZhbHVlIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmV4dGVuc2lvbkNvbmZpZ3NbMF0udmFsdWUifSx7ImRlc2NyaXB0aW9uIjoiTGlzdGVuZXJzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgTGlzdGVuZXIgcmVzb3VyY2UgdHlwZS4gQVBJIFYzIHJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktdjMvY29uZmlnL2xpc3RlbmVyL3YzL2xpc3RlbmVyLnByb3RvIiwiZGlzcGxheU5hbWUiOiJMaXN0ZW5lcnMiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMubGlzdGVuZXJzIn0seyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHJlc291cmNlLiBERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2VzIGZvciBkaXNjb3ZlcnkgcHVycG9zZXMgaXMgaW5jbHVkZWQgaW4gdGhlIHJlc291cmNlIGl0c2VsZi4gUmVmZXIgdG8gdGhlIGVudm95IEFQSSByZWZlcmVuY2UgdG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsImRpc3BsYXlOYW1lIjoiTmFtZSIsInBhdGgiOiJlbnZveVJlc291cmNlcy5saXN0ZW5lcnNbMF0ubmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IlZhbHVlIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmxpc3RlbmVyc1swXS52YWx1ZSJ9LHsiZGVzY3JpcHRpb24iOiJSb3V0ZXMgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBSb3V0ZSByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvcm91dGUvdjMvcm91dGUucHJvdG8iLCJkaXNwbGF5TmFtZSI6IlJvdXRlcyIsInBhdGgiOiJlbnZveVJlc291cmNlcy5yb3V0ZXMifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnJvdXRlc1swXS5uYW1lIn0seyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBlbnZveSByZXNvdXJjZSIsImRpc3BsYXlOYW1lIjoiVmFsdWUiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMucm91dGVzWzBdLnZhbHVlIn0seyJkZXNjcmlwdGlvbiI6IlJ1bnRpbWVzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgUnVudGltZSByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9zZXJ2aWNlL3J1bnRpbWUvdjMvcnRkcy5wcm90byIsImRpc3BsYXlOYW1lIjoiUnVudGltZXMiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMucnVudGltZXMifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnJ1bnRpbWVzWzBdLm5hbWUifSx7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVudm95IHJlc291cmNlIiwiZGlzcGxheU5hbWUiOiJWYWx1ZSIsInBhdGgiOiJlbnZveVJlc291cmNlcy5ydW50aW1lc1swXS52YWx1ZSJ9LHsiZGVzY3JpcHRpb24iOiJTY29wZWRSb3V0ZXMgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBTY29wZVJvdXRlIHJlc291cmNlIHR5cGUuIEFQSSBWMyByZWZlcmVuY2U6IGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLXYzL2NvbmZpZy9yb3V0ZS92My9zY29wZWRfcm91dGUucHJvdG8iLCJkaXNwbGF5TmFtZSI6IlNjb3BlZCBSb3V0ZXMiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMuc2NvcGVkUm91dGVzIn0seyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHJlc291cmNlLiBERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2VzIGZvciBkaXNjb3ZlcnkgcHVycG9zZXMgaXMgaW5jbHVkZWQgaW4gdGhlIHJlc291cmNlIGl0c2VsZi4gUmVmZXIgdG8gdGhlIGVudm95IEFQSSByZWZlcmVuY2UgdG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsImRpc3BsYXlOYW1lIjoiTmFtZSIsInBhdGgiOiJlbnZveVJlc291cmNlcy5zY29wZWRSb3V0ZXNbMF0ubmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IlZhbHVlIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnNjb3BlZFJvdXRlc1swXS52YWx1ZSJ9LHsiZGVzY3JpcHRpb24iOiJTZWNyZXRzIGlzIGEgbGlzdCBvZiByZWZlcmVuY2VzIHRvIEt1YmVybmV0ZXMgU2VjcmV0IG9iamVjdHMuIiwiZGlzcGxheU5hbWUiOiJTZWNyZXRzIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnNlY3JldHMifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgdHNsQ2VydGljYXRlIHNlY3JldCByZXNvdXJjZS4gVGhlIGNlcnRpZmljYXRlIHdpbGwgYmUgZmV0Y2hlZCBmcm9tIGEgS3ViZXJuZXRlcyBTZWNyZXRzIG9mIHR5cGUgJ2t1YmVybmV0ZXMuaW8vdGxzJyB3aXRoIHRoaXMgc2FtZSBuYW1lLiIsImRpc3BsYXlOYW1lIjoiTmFtZSIsInBhdGgiOiJlbnZveVJlc291cmNlcy5zZWNyZXRzWzBdLm5hbWUifSx7ImRlc2NyaXB0aW9uIjoiREVQUkVDQVRFRDogdGhpcyBmaWVsZCBpcyBkZXByZWNhdGVkIGFuZCBpdCdzIHZhbHVlIHdpbGwgYmUgaWdub3JlZC4gVGhlICduYW1lJyBvZiB0aGUgS3ViZXJuZXRlcyBTZWNyZXQgbXVzdCBtYXRjaCB0aGUgJ25hbWUnIGZpZWxkLiIsImRpc3BsYXlOYW1lIjoiUmVmIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnNlY3JldHNbMF0ucmVmIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6aW8ua3ViZXJuZXRlczpTZWNyZXRSZWZlcmVuY2UiXX0seyJkZXNjcmlwdGlvbiI6Ik5vZGVJRCBob2xkcyB0aGUgZW52b3kgaWRlbnRpZmllciBmb3IgdGhlIGRpc2NvdmVyeSBzZXJ2aWNlIHRvIGtub3cgd2hpY2ggc2V0IG9mIHJlc291cmNlcyB0byBzZW5kIHRvIGVhY2ggb2YgdGhlIGVudm95IGNsaWVudHMgdGhhdCBjb25uZWN0IHRvIGl0LiIsImRpc3BsYXlOYW1lIjoiTm9kZSBJRCIsInBhdGgiOiJub2RlSUQifSx7ImRlc2NyaXB0aW9uIjoiUmVzb3VyY2VzIGhvbGRzIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgcmVzb3VyY2VzIHN1cG9ydGVkIGJ5IHRoZSBlbnZveSBkaXNjb3Zlcnkgc2VydmljZSIsImRpc3BsYXlOYW1lIjoiUmVzb3VyY2VzIiwicGF0aCI6InJlc291cmNlcyJ9LHsiZGVzY3JpcHRpb24iOiJCbHVlcHJpbnQgc3BlY2lmaWVzIGEgdGVtcGxhdGUgdG8gZ2VuZXJhdGUgYSBjb25maWd1cmF0aW9uIHByb3RvLiBJdCBpcyBjdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgdG8gZ2VuZXJhdGUgc2VjcmV0IGNvbmZpZ3VyYXRpb24gcmVzb3VyY2VzIGZyb20gazhzIFNlY3JldHMiLCJkaXNwbGF5TmFtZSI6IkJsdWVwcmludCIsInBhdGgiOiJyZXNvdXJjZXNbMF0uYmx1ZXByaW50In0seyJkZXNjcmlwdGlvbiI6IlNwZWNpZmllcyBhIGxhYmVsIHNlbGVjdG9yIHRvIHdhdGNoIGZvciBFbmRwb2ludFNsaWNlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgZW5kcG9pbnQgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IkdlbmVyYXRlIEZyb20gRW5kcG9pbnQgU2xpY2VzIiwicGF0aCI6InJlc291cmNlc1swXS5nZW5lcmF0ZUZyb21FbmRwb2ludFNsaWNlcyJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiBhIEt1YmVybmV0ZXMgU2VjcmV0IG9mIHR5cGUgXCJPcGFxdWVcIi4gSXQgd2lsbCBnZW5lcmF0ZSBhbiBlbnZveSBcImdlbmVyaWMgc2VjcmV0XCIgcHJvdG8uIiwiZGlzcGxheU5hbWUiOiJHZW5lcmF0ZSBGcm9tIE9wYXF1ZSBTZWNyZXQiLCJwYXRoIjoicmVzb3VyY2VzWzBdLmdlbmVyYXRlRnJvbU9wYXF1ZVNlY3JldCJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiBhIEt1YmVybmV0ZXMgU2VjcmV0IG9mIHR5cGUgXCJrdWJlcm5ldGVzLmlvL3Rsc1wiIiwiZGlzcGxheU5hbWUiOiJHZW5lcmF0ZSBGcm9tIFRscyBTZWNyZXQiLCJwYXRoIjoicmVzb3VyY2VzWzBdLmdlbmVyYXRlRnJvbVRsc1NlY3JldCJ9LHsiZGVzY3JpcHRpb24iOiJUeXBlIGlzIHRoZSB0eXBlIHVybCBmb3IgdGhlIHByb3RvYnVmIG1lc3NhZ2UiLCJkaXNwbGF5TmFtZSI6IlR5cGUiLCJwYXRoIjoicmVzb3VyY2VzWzBdLnR5cGUifSx7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHByb3RvYnVmZXIgbWVzc2FnZSB0aGF0IGNvbmZpZ3VyZXMgdGhlIHJlc291cmNlLiBUaGUgcHJvdG8gbXVzdCBtYXRjaCB0aGUgZW52b3kgY29uZmlndXJhdGlvbiBBUEkgdjMgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGdpdmVuIHJlc291cmNlIHR5cGUgKGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLWRvY3MveGRzX3Byb3RvY29sI3Jlc291cmNlLXR5cGVzKSIsImRpc3BsYXlOYW1lIjoiVmFsdWUiLCJwYXRoIjoicmVzb3VyY2VzWzBdLnZhbHVlIn0seyJkZXNjcmlwdGlvbiI6IlNlcmlhbGl6YXRpb24gc3BlY2ljaWZpZXMgdGhlIHNlcmlhbGl6YXRpb24gZm9ybWF0IHVzZWQgdG8gZGVzY3JpYmUgdGhlIHJlc291cmNlcy4gXCJqc29uXCIgYW5kIFwieWFtbFwiIGFyZSBzdXBwb3J0ZWQuIFwianNvblwiIGlzIHVzZWQgaWYgdW5zZXQuIiwiZGlzcGxheU5hbWUiOiJTZXJpYWxpemF0aW9uIiwicGF0aCI6InNlcmlhbGl6YXRpb24ifSx7ImRlc2NyaXB0aW9uIjoiVmVyc2lvbiBpcyBhIGhhc2ggb2YgdGhlIEVudm95UmVzb3VyY2VzIGZpZWxkIiwiZGlzcGxheU5hbWUiOiJWZXJzaW9uIiwicGF0aCI6InZlcnNpb24ifV0sInN0YXR1c0Rlc2NyaXB0b3JzIjpbeyJkZXNjcmlwdGlvbiI6IkNvbmRpdGlvbnMgcmVwcmVzZW50IHRoZSBsYXRlc3QgYXZhaWxhYmxlIG9ic2VydmF0aW9ucyBvZiBhbiBvYmplY3QncyBzdGF0ZSIsImRpc3BsYXlOYW1lIjoiQ29uZGl0aW9ucyIsInBhdGgiOiJjb25kaXRpb25zIn0seyJkZXNjcmlwdGlvbiI6Ikxhc3RQdWJsaXNoZWRBdCBpbmRpY2F0ZXMgdGhlIGxhc3QgdGltZSB0aGlzIGNvbmZpZyByZXZpZXcgdHJhbnNpdGlvbmVkIHRvIHB1Ymxpc2hlZCIsImRpc3BsYXlOYW1lIjoiTGFzdCBQdWJsaXNoZWQgQXQiLCJwYXRoIjoibGFzdFB1Ymxpc2hlZEF0In0seyJkZXNjcmlwdGlvbiI6IlByb3ZpZGVzVmVyc2lvbnMga2VlcHMgdHJhY2sgb2YgdGhlIHZlcnNpb24gdGhhdCB0aGlzIHJldmlzaW9uIHB1Ymxpc2hlcyBpbiB0aGUgeERTIHNlcnZlciBmb3IgZWFjaCByZXNvdXJjZSB0eXBlIiwiZGlzcGxheU5hbWUiOiJQcm92aWRlcyBWZXJzaW9ucyIsInBhdGgiOiJwcm92aWRlc1ZlcnNpb25zIn0seyJkZXNjcmlwdGlvbiI6IlB1Ymxpc2hlZCBzaWduYWxzIGlmIHRoZSBFbnZveUNvbmZpZ1JldmlzaW9uIGlzIHRoZSBvbmUgY3VycmVudGx5IHB1Ymxpc2hlZCBpbiB0aGUgeGRzIHNlcnZlciBjYWNoZSIsImRpc3BsYXlOYW1lIjoiUHVibGlzaGVkIiwicGF0aCI6InB1Ymxpc2hlZCJ9LHsiZGVzY3JpcHRpb24iOiJUYWludGVkIGluZGljYXRlcyB3aGV0aGVyIHRoZSBFbnZveUNvbmZpZ1JldmlzaW9uIGlzIGVsaWdpYmxlIGZvciBwdWJsaXNoaW5nIG9yIG5vdCIsImRpc3BsYXlOYW1lIjoiVGFpbnRlZCIsInBhdGgiOiJ0YWludGVkIn1dLCJ2ZXJzaW9uIjoidjFhbHBoYTEifSx7ImRlc2NyaXB0aW9uIjoiRW52b3lDb25maWcgaG9sZHMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIGEgZ2l2ZW4gZW52b3kgbm9kZUlELiBUaGUgc3BlYyBvZiBhbiBFbnZveUNvbmZpZyBvYmplY3QgaG9sZHMgdGhlIEVudm95IHJlc291cmNlcyB0aGF0IGNvbmZvcm0gdGhlIGRlc2lyZWQgY29uZmlndXJhdGlvbiBmb3IgdGhlIGdpdmVuIG5vZGVJRCBhbmQgdGhhdCB0aGUgZGlzY292ZXJ5IHNlcnZpY2Ugd2lsbCBzZW5kIHRvIGFueSBlbnZveSBjbGllbnQgdGhhdCBpZGVudGlmaWVzIGl0c2VsZiB3aXRoIHRoYXQgbm9kZUlELiIsImRpc3BsYXlOYW1lIjoiRW52b3lDb25maWciLCJraW5kIjoiRW52b3lDb25maWciLCJuYW1lIjoiZW52b3ljb25maWdzLm1hcmluM3IuM3NjYWxlLm5ldCIsInJlc291cmNlcyI6W3sia2luZCI6IkVudm95Q29uZmlnUmV2aXNpb24iLCJuYW1lIjoiIiwidmVyc2lvbiI6InYxYWxwaGExIn1dLCJzcGVjRGVzY3JpcHRvcnMiOlt7ImRlc2NyaXB0aW9uIjoiRW52b3lBUEkgaXMgdGhlIHZlcnNpb24gb2YgZW52b3kncyBBUEkgdG8gdXNlLiBEZWZhdWx0cyB0byB2My4iLCJkaXNwbGF5TmFtZSI6IkVudm95IEFQSSIsInBhdGgiOiJlbnZveUFQSSJ9LHsiZGVzY3JpcHRpb24iOiJFbnZveVJlc291cmNlcyBob2xkcyB0aGUgZGlmZmVyZW50IHR5cGVzIG9mIHJlc291cmNlcyBzdXBvcnRlZCBieSB0aGUgZW52b3kgZGlzY292ZXJ5IHNlcnZpY2UgREVQUkVDQVRFRC4gVXNlIHRoZSBgcmVzb3VyY2VzYCBmaWVsZCBpbnN0ZWFkLiIsImRpc3BsYXlOYW1lIjoiRW52b3kgUmVzb3VyY2VzIiwicGF0aCI6ImVudm95UmVzb3VyY2VzIn0seyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgQ2x1c3RlciByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvY2x1c3Rlci92My9jbHVzdGVyLnByb3RvIiwiZGlzcGxheU5hbWUiOiJDbHVzdGVycyIsInBhdGgiOiJlbnZveVJlc291cmNlcy5jbHVzdGVycyJ9LHsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZveSByZXNvdXJjZS4gREVQUkVDQVRFRDogdGhpcyBmaWVsZCBoYXMgbm8gZWZmZWN0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzIGlzIGluY2x1ZGVkIGluIHRoZSByZXNvdXJjZSBpdHNlbGYuIFJlZmVyIHRvIHRoZSBlbnZveSBBUEkgcmVmZXJlbmNlIHRvIGNoZWNrIGhvdyB0aGUgbmFtZSBpcyBzcGVjaWZpZWQgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4iLCJkaXNwbGF5TmFtZSI6Ik5hbWUiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMuY2x1c3RlcnNbMF0ubmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IlZhbHVlIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmNsdXN0ZXJzWzBdLnZhbHVlIn0seyJkZXNjcmlwdGlvbiI6IkVuZHBvaW50cyBpcyBhIGxpc3Qgb2YgdGhlIGVudm95IENsdXN0ZXJMb2FkQXNzaWdubWVudCByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvZW5kcG9pbnQvdjMvZW5kcG9pbnQucHJvdG8iLCJkaXNwbGF5TmFtZSI6IkVuZHBvaW50cyIsInBhdGgiOiJlbnZveVJlc291cmNlcy5lbmRwb2ludHMifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmVuZHBvaW50c1swXS5uYW1lIn0seyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBlbnZveSByZXNvdXJjZSIsImRpc3BsYXlOYW1lIjoiVmFsdWUiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMuZW5kcG9pbnRzWzBdLnZhbHVlIn0seyJkZXNjcmlwdGlvbiI6IkV4dGVuc2lvbkNvbmZpZ3MgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBFeHRlbnNpb25Db25maWcgcmVzb3VyY2UgdHlwZSBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvY29yZS92My9leHRlbnNpb24ucHJvdG8iLCJkaXNwbGF5TmFtZSI6IkV4dGVuc2lvbiBDb25maWdzIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmV4dGVuc2lvbkNvbmZpZ3MifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmV4dGVuc2lvbkNvbmZpZ3NbMF0ubmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IlZhbHVlIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmV4dGVuc2lvbkNvbmZpZ3NbMF0udmFsdWUifSx7ImRlc2NyaXB0aW9uIjoiTGlzdGVuZXJzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgTGlzdGVuZXIgcmVzb3VyY2UgdHlwZS4gQVBJIFYzIHJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktdjMvY29uZmlnL2xpc3RlbmVyL3YzL2xpc3RlbmVyLnByb3RvIiwiZGlzcGxheU5hbWUiOiJMaXN0ZW5lcnMiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMubGlzdGVuZXJzIn0seyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHJlc291cmNlLiBERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2VzIGZvciBkaXNjb3ZlcnkgcHVycG9zZXMgaXMgaW5jbHVkZWQgaW4gdGhlIHJlc291cmNlIGl0c2VsZi4gUmVmZXIgdG8gdGhlIGVudm95IEFQSSByZWZlcmVuY2UgdG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsImRpc3BsYXlOYW1lIjoiTmFtZSIsInBhdGgiOiJlbnZveVJlc291cmNlcy5saXN0ZW5lcnNbMF0ubmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IlZhbHVlIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmxpc3RlbmVyc1swXS52YWx1ZSJ9LHsiZGVzY3JpcHRpb24iOiJSb3V0ZXMgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBSb3V0ZSByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvcm91dGUvdjMvcm91dGUucHJvdG8iLCJkaXNwbGF5TmFtZSI6IlJvdXRlcyIsInBhdGgiOiJlbnZveVJlc291cmNlcy5yb3V0ZXMifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnJvdXRlc1swXS5uYW1lIn0seyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBlbnZveSByZXNvdXJjZSIsImRpc3BsYXlOYW1lIjoiVmFsdWUiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMucm91dGVzWzBdLnZhbHVlIn0seyJkZXNjcmlwdGlvbiI6IlJ1bnRpbWVzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgUnVudGltZSByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9zZXJ2aWNlL3J1bnRpbWUvdjMvcnRkcy5wcm90byIsImRpc3BsYXlOYW1lIjoiUnVudGltZXMiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMucnVudGltZXMifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnJ1bnRpbWVzWzBdLm5hbWUifSx7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVudm95IHJlc291cmNlIiwiZGlzcGxheU5hbWUiOiJWYWx1ZSIsInBhdGgiOiJlbnZveVJlc291cmNlcy5ydW50aW1lc1swXS52YWx1ZSJ9LHsiZGVzY3JpcHRpb24iOiJTY29wZWRSb3V0ZXMgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBTY29wZVJvdXRlIHJlc291cmNlIHR5cGUuIEFQSSBWMyByZWZlcmVuY2U6IGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLXYzL2NvbmZpZy9yb3V0ZS92My9zY29wZWRfcm91dGUucHJvdG8iLCJkaXNwbGF5TmFtZSI6IlNjb3BlZCBSb3V0ZXMiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMuc2NvcGVkUm91dGVzIn0seyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHJlc291cmNlLiBERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2VzIGZvciBkaXNjb3ZlcnkgcHVycG9zZXMgaXMgaW5jbHVkZWQgaW4gdGhlIHJlc291cmNlIGl0c2VsZi4gUmVmZXIgdG8gdGhlIGVudm95IEFQSSByZWZlcmVuY2UgdG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsImRpc3BsYXlOYW1lIjoiTmFtZSIsInBhdGgiOiJlbnZveVJlc291cmNlcy5zY29wZWRSb3V0ZXNbMF0ubmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IlZhbHVlIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnNjb3BlZFJvdXRlc1swXS52YWx1ZSJ9LHsiZGVzY3JpcHRpb24iOiJTZWNyZXRzIGlzIGEgbGlzdCBvZiByZWZlcmVuY2VzIHRvIEt1YmVybmV0ZXMgU2VjcmV0IG9iamVjdHMuIiwiZGlzcGxheU5hbWUiOiJTZWNyZXRzIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnNlY3JldHMifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgdHNsQ2VydGljYXRlIHNlY3JldCByZXNvdXJjZS4gVGhlIGNlcnRpZmljYXRlIHdpbGwgYmUgZmV0Y2hlZCBmcm9tIGEgS3ViZXJuZXRlcyBTZWNyZXRzIG9mIHR5cGUgJ2t1YmVybmV0ZXMuaW8vdGxzJyB3aXRoIHRoaXMgc2FtZSBuYW1lLiIsImRpc3BsYXlOYW1lIjoiTmFtZSIsInBhdGgiOiJlbnZveVJlc291cmNlcy5zZWNyZXRzWzBdLm5hbWUifSx7ImRlc2NyaXB0aW9uIjoiREVQUkVDQVRFRDogdGhpcyBmaWVsZCBpcyBkZXByZWNhdGVkIGFuZCBpdCdzIHZhbHVlIHdpbGwgYmUgaWdub3JlZC4gVGhlICduYW1lJyBvZiB0aGUgS3ViZXJuZXRlcyBTZWNyZXQgbXVzdCBtYXRjaCB0aGUgJ25hbWUnIGZpZWxkLiIsImRpc3BsYXlOYW1lIjoiUmVmIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnNlY3JldHNbMF0ucmVmIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6aW8ua3ViZXJuZXRlczpTZWNyZXRSZWZlcmVuY2UiXX0seyJkZXNjcmlwdGlvbiI6Ik5vZGVJRCBob2xkcyB0aGUgZW52b3kgaWRlbnRpZmllciBmb3IgdGhlIGRpc2NvdmVyeSBzZXJ2aWNlIHRvIGtub3cgd2hpY2ggc2V0IG9mIHJlc291cmNlcyB0byBzZW5kIHRvIGVhY2ggb2YgdGhlIGVudm95IGNsaWVudHMgdGhhdCBjb25uZWN0IHRvIGl0LiIsImRpc3BsYXlOYW1lIjoiTm9kZSBJRCIsInBhdGgiOiJub2RlSUQifSx7ImRlc2NyaXB0aW9uIjoiUmVzb3VyY2VzIGhvbGRzIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgcmVzb3VyY2VzIHN1cG9ydGVkIGJ5IHRoZSBlbnZveSBkaXNjb3Zlcnkgc2VydmljZSIsImRpc3BsYXlOYW1lIjoiUmVzb3VyY2VzIiwicGF0aCI6InJlc291cmNlcyJ9LHsiZGVzY3JpcHRpb24iOiJCbHVlcHJpbnQgc3BlY2lmaWVzIGEgdGVtcGxhdGUgdG8gZ2VuZXJhdGUgYSBjb25maWd1cmF0aW9uIHByb3RvLiBJdCBpcyBjdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgdG8gZ2VuZXJhdGUgc2VjcmV0IGNvbmZpZ3VyYXRpb24gcmVzb3VyY2VzIGZyb20gazhzIFNlY3JldHMiLCJkaXNwbGF5TmFtZSI6IkJsdWVwcmludCIsInBhdGgiOiJyZXNvdXJjZXNbMF0uYmx1ZXByaW50In0seyJkZXNjcmlwdGlvbiI6IlNwZWNpZmllcyBhIGxhYmVsIHNlbGVjdG9yIHRvIHdhdGNoIGZvciBFbmRwb2ludFNsaWNlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgZW5kcG9pbnQgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IkdlbmVyYXRlIEZyb20gRW5kcG9pbnQgU2xpY2VzIiwicGF0aCI6InJlc291cmNlc1swXS5nZW5lcmF0ZUZyb21FbmRwb2ludFNsaWNlcyJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiBhIEt1YmVybmV0ZXMgU2VjcmV0IG9mIHR5cGUgXCJPcGFxdWVcIi4gSXQgd2lsbCBnZW5lcmF0ZSBhbiBlbnZveSBcImdlbmVyaWMgc2VjcmV0XCIgcHJvdG8uIiwiZGlzcGxheU5hbWUiOiJHZW5lcmF0ZSBGcm9tIE9wYXF1ZSBTZWNyZXQiLCJwYXRoIjoicmVzb3VyY2VzWzBdLmdlbmVyYXRlRnJvbU9wYXF1ZVNlY3JldCJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiBhIEt1YmVybmV0ZXMgU2VjcmV0IG9mIHR5cGUgXCJrdWJlcm5ldGVzLmlvL3Rsc1wiIiwiZGlzcGxheU5hbWUiOiJHZW5lcmF0ZSBGcm9tIFRscyBTZWNyZXQiLCJwYXRoIjoicmVzb3VyY2VzWzBdLmdlbmVyYXRlRnJvbVRsc1NlY3JldCJ9LHsiZGVzY3JpcHRpb24iOiJUeXBlIGlzIHRoZSB0eXBlIHVybCBmb3IgdGhlIHByb3RvYnVmIG1lc3NhZ2UiLCJkaXNwbGF5TmFtZSI6IlR5cGUiLCJwYXRoIjoicmVzb3VyY2VzWzBdLnR5cGUifSx7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHByb3RvYnVmZXIgbWVzc2FnZSB0aGF0IGNvbmZpZ3VyZXMgdGhlIHJlc291cmNlLiBUaGUgcHJvdG8gbXVzdCBtYXRjaCB0aGUgZW52b3kgY29uZmlndXJhdGlvbiBBUEkgdjMgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGdpdmVuIHJlc291cmNlIHR5cGUgKGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLWRvY3MveGRzX3Byb3RvY29sI3Jlc291cmNlLXR5cGVzKSIsImRpc3BsYXlOYW1lIjoiVmFsdWUiLCJwYXRoIjoicmVzb3VyY2VzWzBdLnZhbHVlIn0seyJkZXNjcmlwdGlvbiI6IlNlcmlhbGl6YXRpb24gc3BlY2ljaWZpZXMgdGhlIHNlcmlhbGl6YXRpb24gZm9ybWF0IHVzZWQgdG8gZGVzY3JpYmUgdGhlIHJlc291cmNlcy4gXCJqc29uXCIgYW5kIFwieWFtbFwiIGFyZSBzdXBwb3J0ZWQuIFwianNvblwiIGlzIHVzZWQgaWYgdW5zZXQuIiwiZGlzcGxheU5hbWUiOiJTZXJpYWxpemF0aW9uIiwicGF0aCI6InNlcmlhbGl6YXRpb24ifV0sInN0YXR1c0Rlc2NyaXB0b3JzIjpbeyJkZXNjcmlwdGlvbiI6IkNhY2hlU3RhdGUgc3VtbWFyaXplcyBhbGwgdGhlIG9ic2VydmF0aW9ucyBhYm91dCB0aGUgRW52b3lDb25maWcgdG8gZ2l2ZSB0aGUgdXNlciBhIGNvbmNyZXRlIGlkZWEgb24gdGhlIGdlbmVyYWwgc3RhdHVzIG9mIHRoZSBkaXNjb3Zlcnkgc2VydmllIGNhY2hlLiBJdCBpcyBpbnRlbmRlZCBvbmx5IGZvciBodW1hbiBjb25zdW1wdGlvbi4gT3RoZXIgY29udHJvbGxlcnMgc2hvdWxkIHJlbGx5IG9uIGNvbmRpdGlvbnMgdG8gZGV0ZXJtaW5lIHRoZSBzdGF0dXMgb2YgdGhlIGRpc2NvdmVyeSBzZXJ2ZXIgY2FjaGUuIiwiZGlzcGxheU5hbWUiOiJDYWNoZSBTdGF0ZSIsInBhdGgiOiJjYWNoZVN0YXRlIn0seyJkZXNjcmlwdGlvbiI6IkNvbmRpdGlvbnMgcmVwcmVzZW50IHRoZSBsYXRlc3QgYXZhaWxhYmxlIG9ic2VydmF0aW9ucyBvZiBhbiBvYmplY3QncyBzdGF0ZSIsImRpc3BsYXlOYW1lIjoiQ29uZGl0aW9ucyIsInBhdGgiOiJjb25kaXRpb25zIn0seyJkZXNjcmlwdGlvbiI6IkRlc2lyZWRWZXJzaW9uIHJlcHJlc2VudHMgdGhlIHJlc291cmNlcyB2ZXJzaW9uIGRlc2NyaWJlZCBpbiB0aGUgc3BlYyBvZiB0aGUgRW52b3lDb25maWcgb2JqZWN0IiwiZGlzcGxheU5hbWUiOiJEZXNpcmVkIFZlcnNpb24iLCJwYXRoIjoiZGVzaXJlZFZlcnNpb24ifSx7ImRlc2NyaXB0aW9uIjoiUHVibGlzaGVkVmVyc2lvbiBpcyB0aGUgY29uZmlnIHZlcnNpb24gY3VycmVudGx5IHNlcnZlZCBieSB0aGUgZW52b3kgZGlzY292ZXJ5IHNlcnZpY2UgZm9yIHRoZSBnaXZlIG5vZGVJRCIsImRpc3BsYXlOYW1lIjoiUHVibGlzaGVkIFZlcnNpb24iLCJwYXRoIjoicHVibGlzaGVkVmVyc2lvbiJ9LHsiZGVzY3JpcHRpb24iOiJDb25maWdSZXZpc2lvbnMgaXMgYW4gb3JkZXJlZCBsaXN0IG9mIHJlZmVyZW5jZXMgdG8gRW52b3lDb25maWdSZXZpc2lvbiBvYmplY3RzIiwiZGlzcGxheU5hbWUiOiJDb25maWcgUmV2aXNpb25zIiwicGF0aCI6InJldmlzaW9ucyJ9LHsiZGVzY3JpcHRpb24iOiJSZWYgaXMgYSByZWZlcmVuY2UgdG8gdGhlIEVudm95Q29uZmlnUmV2aXNpb24gb2JqZWN0IHRoYXQgaG9sZHMgdGhlIGNvbmZpZ3VyYXRpb24gbWF0Y2hpbmcgdGhlIFZlcnNpb24gZmllbGQuIiwiZGlzcGxheU5hbWUiOiJSZWYiLCJwYXRoIjoicmV2aXNpb25zWzBdLnJlZiJ9LHsiZGVzY3JpcHRpb24iOiJWZXJzaW9uIGlzIGEgaGFzaCBvZiB0aGUgRW52b3lSZXNvdXJjZXMgZmllbGQiLCJkaXNwbGF5TmFtZSI6IlZlcnNpb24iLCJwYXRoIjoicmV2aXNpb25zWzBdLnZlcnNpb24ifV0sInZlcnNpb24iOiJ2MWFscGhhMSJ9LHsiZGVzY3JpcHRpb24iOiJFbnZveURlcGxveW1lbnQgaXMgYSByZXNvdXJjZSB0byBkZXBsb3kgYW5kIG1hbmFnZSBhIEt1YmVybmV0ZXMgRGVwbG95bWVudCBvZiBFbnZveSBQb2RzLiIsImRpc3BsYXlOYW1lIjoiRW52b3lEZXBsb3ltZW50Iiwia2luZCI6IkVudm95RGVwbG95bWVudCIsIm5hbWUiOiJlbnZveWRlcGxveW1lbnRzLm9wZXJhdG9yLm1hcmluM3IuM3NjYWxlLm5ldCIsInNwZWNEZXNjcmlwdG9ycyI6W3siZGVzY3JpcHRpb24iOiJDb25maWd1cmVzIGVudm95J3MgYWRtaW4gYWNjZXNzIGxvZyBwYXRoLiBEZWZhdWx0cyB0byAvZGV2L251bGwuIiwiZGlzcGxheU5hbWUiOiJBZG1pbiBBY2Nlc3MgTG9nIFBhdGgiLCJwYXRoIjoiYWRtaW5BY2Nlc3NMb2dQYXRoIn0seyJkZXNjcmlwdGlvbiI6IkNvbmZpZ3VyZXMgZW52b3kncyBhZG1pbiBwb3J0LiBEZWZhdWx0cyB0byA5OTAxLiIsImRpc3BsYXlOYW1lIjoiQWRtaW4gUG9ydCIsInBhdGgiOiJhZG1pblBvcnQifSx7ImRlc2NyaXB0aW9uIjoiQWZmaW5pdHkgY29uZmlndXJhdGlvbiBmb3IgdGhlIGVudm95IHBvZHMiLCJkaXNwbGF5TmFtZSI6IkFmZmluaXR5IiwicGF0aCI6ImFmZmluaXR5In0seyJkZXNjcmlwdGlvbiI6IkRlZmluZXMgdGhlIGxvY2FsIHNlcnZpY2UgY2x1c3RlciBuYW1lIHdoZXJlIEVudm95IGlzIHJ1bm5pbmcuIERlZmF1bHRzIHRvIHRoZSBOb2RlSUQgaW4gdGhlIEVudm95Q29uZmlnIGlmIHVuc2V0IiwiZGlzcGxheU5hbWUiOiJDbHVzdGVyIElEIiwicGF0aCI6ImNsdXN0ZXJJRCJ9LHsiZGVzY3JpcHRpb24iOiJEaXNjb3ZlcnlTZXJ2aWNlUmVmIHBvaW50cyB0byBhIERpc2NvdmVyeVNlcnZpY2UgaW4gdGhlIHNhbWUgbmFtZXNwYWNlIiwiZGlzcGxheU5hbWUiOiJEaXNjb3ZlcnkgU2VydmljZSBSZWYiLCJwYXRoIjoiZGlzY292ZXJ5U2VydmljZVJlZiJ9LHsiZGVzY3JpcHRpb24iOiJEZWZpbmVzIHRoZSBkdXJhdGlvbiBvZiB0aGUgY2xpZW50IGNlcnRpZmljYXRlIHRoYXQgaXMgdXNlZCB0byBhdXRoZW50aWNhdGUgd2l0aCB0aGUgRGlzY292ZXJ5U2VydmljZSIsImRpc3BsYXlOYW1lIjoiQ2xpZW50IENlcnRpZmljYXRlIER1cmF0aW9uIiwicGF0aCI6ImR1cmF0aW9uIn0seyJkZXNjcmlwdGlvbiI6IkVudm95Q29uZmlnUmVmIHBvaW50cyB0byBhbiBFbnZveUNvbmZpZyBpbiB0aGUgc2FtZSBuYW1lc3BhY2UgdGhhdCBob2xkcyB0aGUgZW52b3kgcmVzb3VyY2VzIGZvciB0aGlzIERlcGxveW1lbnQiLCJkaXNwbGF5TmFtZSI6IkVudm95IENvbmZpZyBSZWYiLCJwYXRoIjoiZW52b3lDb25maWdSZWYifSx7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIHRoZSB1c2VyIHRvIGRlZmluZSBleHRyYSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGZvciB0aGUgRW52b3kgcHJvY2VzcyIsImRpc3BsYXlOYW1lIjoiRXh0cmEgQXJncyIsInBhdGgiOiJleHRyYUFyZ3MifSx7ImRlc2NyaXB0aW9uIjoiSW1hZ2UgaXMgdGhlIGVudm95IGltYWdlIGFuZCB0YWcgdG8gdXNlIiwiZGlzcGxheU5hbWUiOiJJbWFnZSIsInBhdGgiOiJpbWFnZSJ9LHsiZGVzY3JpcHRpb24iOiJJbml0TWFuYWdlciBkZWZpbmVzIGNvbmZpZ3VyYXRpb24gZm9yIEVudm95J3MgaW5pdCBtYW5hZ2VyLCB3aGljaCBoYW5kbGVzIGluaXRpYWxpemF0aW9uIGZvciBFbnZveSBwb2RzIiwiZGlzcGxheU5hbWUiOiJJbml0IE1hbmFnZXIiLCJwYXRoIjoiaW5pdE1hbmFnZXIifSx7ImRlc2NyaXB0aW9uIjoiSW1hZ2UgaXMgdGhlIGluaXQgbWFuYWdlciBpbWFnZSBhbmQgdGFnIHRvIHVzZSIsImRpc3BsYXlOYW1lIjoiSW1hZ2UiLCJwYXRoIjoiaW5pdE1hbmFnZXIuaW1hZ2UifSx7ImRlc2NyaXB0aW9uIjoiTGl2ZW5lc3MgcHJvYmUgZm9yIHRoZSBlbnZveSBwb2RzIiwiZGlzcGxheU5hbWUiOiJMaXZlbmVzcyBQcm9iZSIsInBhdGgiOiJsaXZlbmVzc1Byb2JlIn0seyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkIiwiZGlzcGxheU5hbWUiOiJGYWlsdXJlIFRocmVzaG9sZCIsInBhdGgiOiJsaXZlbmVzc1Byb2JlLmZhaWx1cmVUaHJlc2hvbGQifSx7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQiLCJkaXNwbGF5TmFtZSI6IkluaXRpYWwgRGVsYXkgU2Vjb25kcyIsInBhdGgiOiJsaXZlbmVzc1Byb2JlLmluaXRpYWxEZWxheVNlY29uZHMifSx7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZSIsImRpc3BsYXlOYW1lIjoiUGVyaW9kIFNlY29uZHMiLCJwYXRoIjoibGl2ZW5lc3NQcm9iZS5wZXJpb2RTZWNvbmRzIn0seyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgc3VjY2Vzc2VzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBzdWNjZXNzZnVsIGFmdGVyIGhhdmluZyBmYWlsZWQiLCJkaXNwbGF5TmFtZSI6IlN1Y2Nlc3MgVGhyZXNob2xkIiwicGF0aCI6ImxpdmVuZXNzUHJvYmUuc3VjY2Vzc1RocmVzaG9sZCJ9LHsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0IiwiZGlzcGxheU5hbWUiOiJUaW1lb3V0IFNlY29uZHMiLCJwYXRoIjoibGl2ZW5lc3NQcm9iZS50aW1lb3V0U2Vjb25kcyJ9LHsiZGVzY3JpcHRpb24iOiJDb25maWd1cmVzIFBvZERpc3J1cHRpb25CdWRnZXQgZm9yIHRoZSBlbnZveSBQb2RzIiwiZGlzcGxheU5hbWUiOiJQb2QgRGlzcnVwdGlvbiBCdWRnZXQiLCJwYXRoIjoicG9kRGlzcnVwdGlvbkJ1ZGdldCJ9LHsiZGVzY3JpcHRpb24iOiJBbiBldmljdGlvbiBpcyBhbGxvd2VkIGlmIGF0IG1vc3QgXCJtYXhVbmF2YWlsYWJsZVwiIHBvZHMgc2VsZWN0ZWQgYnkgXCJzZWxlY3RvclwiIGFyZSB1bmF2YWlsYWJsZSBhZnRlciB0aGUgZXZpY3Rpb24sIGkuZS4gZXZlbiBpbiBhYnNlbmNlIG9mIHRoZSBldmljdGVkIHBvZC4gRm9yIGV4YW1wbGUsIG9uZSBjYW4gcHJldmVudCBhbGwgdm9sdW50YXJ5IGV2aWN0aW9ucyBieSBzcGVjaWZ5aW5nIDAuIFRoaXMgaXMgYSBtdXR1YWxseSBleGNsdXNpdmUgc2V0dGluZyB3aXRoIFwibWluQXZhaWxhYmxlXCIuIiwiZGlzcGxheU5hbWUiOiJNYXggVW5hdmFpbGFibGUiLCJwYXRoIjoicG9kRGlzcnVwdGlvbkJ1ZGdldC5tYXhVbmF2YWlsYWJsZSJ9LHsiZGVzY3JpcHRpb24iOiJBbiBldmljdGlvbiBpcyBhbGxvd2VkIGlmIGF0IGxlYXN0IFwibWluQXZhaWxhYmxlXCIgcG9kcyBzZWxlY3RlZCBieSBcInNlbGVjdG9yXCIgd2lsbCBzdGlsbCBiZSBhdmFpbGFibGUgYWZ0ZXIgdGhlIGV2aWN0aW9uLCBpLmUuIGV2ZW4gaW4gdGhlIGFic2VuY2Ugb2YgdGhlIGV2aWN0ZWQgcG9kLiAgU28gZm9yIGV4YW1wbGUgeW91IGNhbiBwcmV2ZW50IGFsbCB2b2x1bnRhcnkgZXZpY3Rpb25zIGJ5IHNwZWNpZnlpbmcgXCIxMDAlXCIuIiwiZGlzcGxheU5hbWUiOiJNaW4gQXZhaWxhYmxlIiwicGF0aCI6InBvZERpc3J1cHRpb25CdWRnZXQubWluQXZhaWxhYmxlIn0seyJkZXNjcmlwdGlvbiI6IlBvcnRzIGV4cG9zZWQgYnkgdGhlIEVudm95IGNvbnRhaW5lciIsImRpc3BsYXlOYW1lIjoiUG9ydHMiLCJwYXRoIjoicG9ydHMifSx7ImRlc2NyaXB0aW9uIjoiUG9ydCBuYW1lIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6InBvcnRzWzBdLm5hbWUifSx7ImRlc2NyaXB0aW9uIjoiUG9ydCB2YWx1ZSIsImRpc3BsYXlOYW1lIjoiUG9ydCIsInBhdGgiOiJwb3J0c1swXS5wb3J0In0seyJkZXNjcmlwdGlvbiI6IlByb3RvY29sLiBEZWZhdWx0cyB0byBUQ1AuIiwiZGlzcGxheU5hbWUiOiJQcm90b2NvbCIsInBhdGgiOiJwb3J0c1swXS5wcm90b2NvbCJ9LHsiZGVzY3JpcHRpb24iOiJSZWFkaW5lc3MgcHJvYmUgZm9yIHRoZSBlbnZveSBwb2RzIiwiZGlzcGxheU5hbWUiOiJSZWFkaW5lc3MgUHJvYmUiLCJwYXRoIjoicmVhZGluZXNzUHJvYmUifSx7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBmYWlsdXJlcyBmb3IgdGhlIHByb2JlIHRvIGJlIGNvbnNpZGVyZWQgZmFpbGVkIGFmdGVyIGhhdmluZyBzdWNjZWVkZWQiLCJkaXNwbGF5TmFtZSI6IkZhaWx1cmUgVGhyZXNob2xkIiwicGF0aCI6InJlYWRpbmVzc1Byb2JlLmZhaWx1cmVUaHJlc2hvbGQifSx7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQiLCJkaXNwbGF5TmFtZSI6IkluaXRpYWwgRGVsYXkgU2Vjb25kcyIsInBhdGgiOiJyZWFkaW5lc3NQcm9iZS5pbml0aWFsRGVsYXlTZWNvbmRzIn0seyJkZXNjcmlwdGlvbiI6IkhvdyBvZnRlbiAoaW4gc2Vjb25kcykgdG8gcGVyZm9ybSB0aGUgcHJvYmUiLCJkaXNwbGF5TmFtZSI6IlBlcmlvZCBTZWNvbmRzIiwicGF0aCI6InJlYWRpbmVzc1Byb2JlLnBlcmlvZFNlY29uZHMifSx7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZCIsImRpc3BsYXlOYW1lIjoiU3VjY2VzcyBUaHJlc2hvbGQiLCJwYXRoIjoicmVhZGluZXNzUHJvYmUuc3VjY2Vzc1RocmVzaG9sZCJ9LHsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0IiwiZGlzcGxheU5hbWUiOiJUaW1lb3V0IFNlY29uZHMiLCJwYXRoIjoicmVhZGluZXNzUHJvYmUudGltZW91dFNlY29uZHMifSx7ImRlc2NyaXB0aW9uIjoiUmVwbGljYXMgY29uZmlndXJlcyB0aGUgbnVtYmVyIG9mIHJlcGxpY2FzIGluIHRoZSBEZXBsb3ltZW50LiBPbmUgb2YgJ3N0YXRpYycsICdkeW5hbWljJyBjYW4gYmUgc2V0LiBJZiBib3RoIGFyZSBzZXQsIHN0YXRpYyBoYXMgcHJlY2VkZW5jZS4iLCJkaXNwbGF5TmFtZSI6IlJlcGxpY2FzIiwicGF0aCI6InJlcGxpY2FzIn0seyJkZXNjcmlwdGlvbiI6IkNvbmZpZ3VyZSBhIG1pbiBhbmQgbWF4IHZhbHVlIGZvciB0aGUgbnVtYmVyIG9mIHBvZHMgdG8gYXV0b3NjYWxlIGR5bmFtaWNhbGx5LiIsImRpc3BsYXlOYW1lIjoiRHluYW1pYyIsInBhdGgiOiJyZXBsaWNhcy5keW5hbWljIn0seyJkZXNjcmlwdGlvbiI6ImJlaGF2aW9yIGNvbmZpZ3VyZXMgdGhlIHNjYWxpbmcgYmVoYXZpb3Igb2YgdGhlIHRhcmdldCBpbiBib3RoIFVwIGFuZCBEb3duIGRpcmVjdGlvbnMgKHNjYWxlVXAgYW5kIHNjYWxlRG93biBmaWVsZHMgcmVzcGVjdGl2ZWx5KS4gSWYgbm90IHNldCwgdGhlIGRlZmF1bHQgSFBBU2NhbGluZ1J1bGVzIGZvciBzY2FsZSB1cCBhbmQgc2NhbGUgZG93biBhcmUgdXNlZC4iLCJkaXNwbGF5TmFtZSI6IkJlaGF2aW9yIiwicGF0aCI6InJlcGxpY2FzLmR5bmFtaWMuYmVoYXZpb3IifSx7ImRlc2NyaXB0aW9uIjoibWV0cmljcyBjb250YWlucyB0aGUgc3BlY2lmaWNhdGlvbnMgZm9yIHdoaWNoIHRvIHVzZSB0byBjYWxjdWxhdGUgdGhlIGRlc2lyZWQgcmVwbGljYSBjb3VudCAodGhlIG1heGltdW0gcmVwbGljYSBjb3VudCBhY3Jvc3MgYWxsIG1ldHJpY3Mgd2lsbCBiZSB1c2VkKS4gIFRoZSBkZXNpcmVkIHJlcGxpY2EgY291bnQgaXMgY2FsY3VsYXRlZCBtdWx0aXBseWluZyB0aGUgcmF0aW8gYmV0d2VlbiB0aGUgdGFyZ2V0IHZhbHVlIGFuZCB0aGUgY3VycmVudCB2YWx1ZSBieSB0aGUgY3VycmVudCBudW1iZXIgb2YgcG9kcy4gIEVyZ28sIG1ldHJpY3MgdXNlZCBtdXN0IGRlY3JlYXNlIGFzIHRoZSBwb2QgY291bnQgaXMgaW5jcmVhc2VkLCBhbmQgdmljZS12ZXJzYS4gIFNlZSB0aGUgaW5kaXZpZHVhbCBtZXRyaWMgc291cmNlIHR5cGVzIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGhvdyBlYWNoIHR5cGUgb2YgbWV0cmljIG11c3QgcmVzcG9uZC4gSWYgbm90IHNldCwgdGhlIGRlZmF1bHQgbWV0cmljIHdpbGwgYmUgc2V0IHRvIDgwJSBhdmVyYWdlIENQVSB1dGlsaXphdGlvbi4iLCJkaXNwbGF5TmFtZSI6Ik1ldHJpY3MiLCJwYXRoIjoicmVwbGljYXMuZHluYW1pYy5tZXRyaWNzIn0seyJkZXNjcmlwdGlvbiI6Im1pblJlcGxpY2FzIGlzIHRoZSBsb3dlciBsaW1pdCBmb3IgdGhlIG51bWJlciBvZiByZXBsaWNhcyB0byB3aGljaCB0aGUgYXV0b3NjYWxlciBjYW4gc2NhbGUgZG93bi4gIEl0IGRlZmF1bHRzIHRvIDEgcG9kLiAgbWluUmVwbGljYXMgaXMgYWxsb3dlZCB0byBiZSAwIGlmIHRoZSBhbHBoYSBmZWF0dXJlIGdhdGUgSFBBU2NhbGVUb1plcm8gaXMgZW5hYmxlZCBhbmQgYXQgbGVhc3Qgb25lIE9iamVjdCBvciBFeHRlcm5hbCBtZXRyaWMgaXMgY29uZmlndXJlZC4gIFNjYWxpbmcgaXMgYWN0aXZlIGFzIGxvbmcgYXMgYXQgbGVhc3Qgb25lIG1ldHJpYyB2YWx1ZSBpcyBhdmFpbGFibGUuIiwiZGlzcGxheU5hbWUiOiJNaW4gUmVwbGljYXMiLCJwYXRoIjoicmVwbGljYXMuZHluYW1pYy5taW5SZXBsaWNhcyJ9LHsiZGVzY3JpcHRpb24iOiJDb25maWd1cmUgYSBzdGF0aWMgbnVtYmVyIG9mIHJlcGxpY2FzLiBEZWZhdWx0cyB0byAxLiIsImRpc3BsYXlOYW1lIjoiU3RhdGljIiwicGF0aCI6InJlcGxpY2FzLnN0YXRpYyJ9LHsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgaG9sZHMgdGhlIHJlc291cmNlIHJlcXVpcmVtZW50cyB0byB1c2UgZm9yIHRoZSBFbnZveSBEZXBsb3ltZW50LiBEZWZhdWx0cyB0byBubyByZXNvdXJjZSByZXF1ZXN0cyBub3IgbGltaXRzLiIsImRpc3BsYXlOYW1lIjoiUmVzb3VyY2VzIiwicGF0aCI6InJlc291cmNlcyJ9LHsiZGVzY3JpcHRpb24iOiJTaHV0ZG93bk1hbmFnZXIgZGVmaW5lcyBjb25maWd1cmF0aW9uIGZvciBFbnZveSdzIHNodXRkb3duIG1hbmFnZXIsIHdoaWNoIGhhbmRsZXMgZ3JhY2VmdWwgdGVybWluYXRpb24gb2YgRW52b3kgcG9kcyIsImRpc3BsYXlOYW1lIjoiU2h1dGRvd24gTWFuYWdlciIsInBhdGgiOiJzaHV0ZG93bk1hbmFnZXIifSx7ImRlc2NyaXB0aW9uIjoiVGhlIGRyYWluIHN0cmF0ZWd5IGZvciB0aGUgZ3JhY2VmdWwgc2h1dGRvd24uIEl0IGFsc28gYWZmZWN0cyBkcmFpbiB3aGVuIGxpc3RlbmVycyBhcmUgbW9kaWZpZWQgb3IgcmVtb3ZlZCB2aWEgTERTLiIsImRpc3BsYXlOYW1lIjoiRHJhaW4gU3RyYXRlZ3kiLCJwYXRoIjoic2h1dGRvd25NYW5hZ2VyLmRyYWluU3RyYXRlZ3kifSx7ImRlc2NyaXB0aW9uIjoiVGhlIHRpbWUgaW4gc2Vjb25kcyB0aGF0IEVudm95IHdpbGwgZHJhaW4gY29ubmVjdGlvbnMgZHVyaW5nIHNodXRkb3duLiBJdCBhbHNvIGFmZmVjdHMgZHJhaW4gYmVoYXZpb3VyIHdoZW4gbGlzdGVuZXJzIGFyZSBtb2RpZmllZCBvciByZW1vdmVkIHZpYSBMRFMuIiwiZGlzcGxheU5hbWUiOiJEcmFpbiBUaW1lIiwicGF0aCI6InNodXRkb3duTWFuYWdlci5kcmFpblRpbWUifSx7ImRlc2NyaXB0aW9uIjoiSW1hZ2UgaXMgdGhlIHNodXRkb3duIG1hbmFnZXIgaW1hZ2UgYW5kIHRhZyB0byB1c2UiLCJkaXNwbGF5TmFtZSI6IkltYWdlIiwicGF0aCI6InNodXRkb3duTWFuYWdlci5pbWFnZSJ9LHsiZGVzY3JpcHRpb24iOiJDb25maWd1cmVzIHRoZSBzdXRkb3duIG1hbmFnZXIncyBzZXJ2ZXIgcG9ydC4gRGVmYXVsdHMgdG8gODA5MC4iLCJkaXNwbGF5TmFtZSI6IlNlcnZlciBQb3J0IiwicGF0aCI6InNodXRkb3duTWFuYWdlci5zZXJ2ZXJQb3J0In1dLCJ2ZXJzaW9uIjoidjFhbHBoYTEifV19LCJkZXNjcmlwdGlvbiI6Ik1BUklOM1IgaW1wbGVtZW50cyBhIGNvbnRyb2wgcGxhbmUgdG8gZGVwbG95LCBjb25maWd1cmUgYW5kIG9wZXJhdGUgYSBmbGVldCBvZiBlbnZveSBpbnN0YW5jZXMgd2l0aGluIGEgS3ViZXJuZXRlcyBjbHVzdGVyLlxuSXQgb3BlcmF0ZXMgYSBncm91cCBvZiBnYXRld2F5cyBhbmQgUG9kIHNpZGVjYXIgY29udGFpbmVycyB0byBwcm92aWRlIGdlbmVyYWwgcHVycG9zZSBmdW5jdGlvbmFsaXR5IHJlcXVpcmVkIHRvIG9wZXJhdGUgcHJvZHVjdGlvbiBzeXN0ZW1zLlxuXG5GZWF0dXJlczpcblxuKiBEZXBsb3kgYW5kIG1hbmFnZSBhbiBFbnZveSB4RFMgc2VydmVyIHVzaW5nIHRoZSBEaXNjb3ZlcnlTZXJ2aWNlIGN1c3RvbSByZXNvdXJjZS5cbiogSW5qZWN0IEVudm95IHNpZGVjYXIgY29udGFpbmVycyBiYXNlZCBvbiBQb2QgYW5ub3RhdGlvbnMuXG4qIERlcGxveSBFbnZveSBhcyBhIEt1YmVybmV0ZXMgRGVwbG95bWVudCB1c2luZyB0aGUgRW52b3lEZXBsb3ltZW50IGN1c3RvbSByZXNvdXJjZS5cbiogRHluYW1pYyBFbnZveSBjb25maWd1cmF0aW9uIGFuZCByZS1jb25maWd1cmF0aW9uIHVzaW5nIHRoZSBFbnZveUNvbmZpZyBjdXN0b20gcmVzb3VyY2UuXG4qIFVzZSBLdWJlcm5ldGVzIFNlY3JldHMgYXMgY2VydGlmaWNhdGUgc291cmNlcy5cbiogU3ludGFjdGljIHZhbGlkYXRpb24gb2YgRW52b3kgY29uZmlndXJhdGlvbnMuXG4qIExpZmVjeWNsZSBtYW5hZ2VtZW50IG9mIEVudm95IGNvbnRhaW5lcnMgKGdyYWNlZnVsIHNodXRkb3duIGFuZCBjb25uZWN0aW9uIGRyYWluaW5nKS5cbiogU2VsZi1oZWFsaW5nLlxuXG5DaGVjayB0aGUgW2RvY3NdKGh0dHBzOi8vZ2l0aHViLmNvbS8zc2NhbGUtb3BzL21hcmluM3IjcmVhZG1lKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cblxuIyMgTGljZW5zZVxuTUFSSU4zUiBpcyBsaWNlbnNlZCB1bmRlciB0aGUgW0FwYWNoZSAyLjAgbGljZW5zZV0oaHR0cHM6Ly9naXRodWIuY29tLzNzY2FsZS9wcm9tZXRoZXVzLWV4cG9ydGVyLW9wZXJhdG9yL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXG4iLCJkaXNwbGF5TmFtZSI6Ik1BUklOM1IiLCJpY29uIjpbeyJiYXNlNjRkYXRhIjoiUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVZWUkdMVGdpUHo0S1BITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGh0Ykc1ek9uaHNhVzVyUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hzYVc1cklpQjNhV1IwYUQwaU16YzFjSFFpSUdobGFXZG9kRDBpTXpjMExqazVPVGs1TVhCMElpQjJhV1YzUW05NFBTSXdJREFnTXpjMUlETTNOQzQ1T1RrNU9URWlJSFpsY25OcGIyNDlJakV1TWlJK0NqeGtaV1p6UGdvOFp6NEtQSE41YldKdmJDQnZkbVZ5Wm14dmR6MGlkbWx6YVdKc1pTSWdhV1E5SW1kc2VYQm9NQzB3SWo0S1BIQmhkR2dnYzNSNWJHVTlJbk4wY205clpUcHViMjVsT3lJZ1pEMGlJaTgrQ2p3dmMzbHRZbTlzUGdvOGMzbHRZbTlzSUc5MlpYSm1iRzkzUFNKMmFYTnBZbXhsSWlCcFpEMGlaMng1Y0dnd0xURWlQZ284Y0dGMGFDQnpkSGxzWlQwaWMzUnliMnRsT201dmJtVTdJaUJrUFNKTklEazFMamsxTXpFeU5TQXdJRXdnT0RVdU9Ea3dOakkxSURBZ1RDQTROUzQ0T1RBMk1qVWdMVFF5TGpjNU5qZzNOU0JNSURVMExqazRORE0zTlNBd0lFd2dORGt1T0RFeU5TQXdJRXdnTVRndU9UQTJNalVnTFRReUxqYzVOamczTlNCTUlERTRMamt3TmpJMUlEQWdUQ0E0TGpneU9ERXlOU0F3SUV3Z09DNDRNamd4TWpVZ0xUWXpMak15T0RFeU5TQk1JREUyTGpReU1UZzNOU0F0TmpNdU16STRNVEkxSUV3Z05USXVOREl4T0RjMUlDMHhNeTQxT1RNM05TQk1JRGc0TGpNMU9UTTNOU0F0TmpNdU16STRNVEkxSUV3Z09UVXVPVFV6TVRJMUlDMDJNeTR6TWpneE1qVWdXaUJOSURrMUxqazFNekV5TlNBd0lDSXZQZ284TDNONWJXSnZiRDRLUEhONWJXSnZiQ0J2ZG1WeVpteHZkejBpZG1semFXSnNaU0lnYVdROUltZHNlWEJvTUMweUlqNEtQSEJoZEdnZ2MzUjViR1U5SW5OMGNtOXJaVHB1YjI1bE95SWdaRDBpVFNBMk1TNDVOVE14TWpVZ01DQk1JRFl1TmpJMUlEQWdUQ0EyTGpZeU5TQXRNVEF1TURZeU5TQk1JRFl4TGprMU16RXlOU0F0TVRBdU1EWXlOU0JESURZekxqTXpOVGt6T0NBdE1UQXVNRFl5TlNBMk5DNDFNVGsxTXpFZ0xURXdMalUxTkRZNE9DQTJOUzQxSUMweE1TNDFORFk0TnpVZ1F5QTJOaTQwT0RneU9ERWdMVEV5TGpVek5URTFOaUEyTmk0NU9EUXpOelVnTFRFekxqY3lNalkxTmlBMk5pNDVPRFF6TnpVZ0xURTFMakV3T1RNM05TQk1JRFkyTGprNE5ETTNOU0F0TWpFdU5Ua3pOelVnUXlBMk5pNDVPRFF6TnpVZ0xUSXlMamszTmpVMk1pQTJOaTQxTURjNE1USWdMVEkwTGpFME9EUXpPQ0EyTlM0MU5qSTFJQzB5TlM0eE1Ea3pOelVnUXlBMk5DNDJNalVnTFRJMkxqQTJOalF3TmlBMk15NDBOamczTlNBdE1qWXVOVGN3TXpFeUlEWXlMakE1TXpjMUlDMHlOaTQyTWpVZ1RDQXhOaTQyT0RjMUlDMHlOaTQyTWpVZ1RDQXhOaTQyT0RjMUlDMHpOaTQzTURNeE1qVWdUQ0EyTWk0d09UTTNOU0F0TXpZdU56QXpNVEkxSUVNZ05qTXVORFk0TnpVZ0xUTTJMamMxTXprd05pQTJOQzQyTWpVZ0xUTTNMakkxTnpneE1pQTJOUzQxTmpJMUlDMHpPQzR5TVRnM05TQkRJRFkyTGpVd056Z3hNaUF0TXprdU1UYzFOemd4SURZMkxqazRORE0zTlNBdE5EQXVNelEzTmpVMklEWTJMams0TkRNM05TQXROREV1TnpNME16YzFJRXdnTmpZdU9UZzBNemMxSUMwME9DNHlOalUyTWpVZ1F5QTJOaTQ1T0RRek56VWdMVFE1TGpZME9EUXpPQ0EyTmk0ME9EZ3lPREVnTFRVd0xqZ3lPREV5TlNBMk5TNDFJQzAxTVM0M09UWTROelVnUXlBMk5DNDFNVGsxTXpFZ0xUVXlMamMyTlRZeU5TQTJNeTR6TXpVNU16Z2dMVFV6TGpJMUlEWXhMamsxTXpFeU5TQXROVE11TWpVZ1RDQTJMall5TlNBdE5UTXVNalVnVENBMkxqWXlOU0F0TmpNdU16STRNVEkxSUV3Z05qRXVPVFV6TVRJMUlDMDJNeTR6TWpneE1qVWdReUEyTmk0eE1Ea3pOelVnTFRZekxqTXlPREV5TlNBMk9TNDJOalF3TmpJZ0xUWXhMamcxTVRVMk1pQTNNaTQyTWpVZ0xUVTRMamt3TmpJMUlFTWdOelV1TlRneU1ETXhJQzAxTlM0NU5UY3dNekVnTnpjdU1EWXlOU0F0TlRJdU5ERXdNVFUySURjM0xqQTJNalVnTFRRNExqSTJOVFl5TlNCTUlEYzNMakEyTWpVZ0xUUXhMamN6TkRNM05TQkRJRGMzTGpBMk1qVWdMVE0zTGpnM09Ea3dOaUEzTlM0M09ERXlOU0F0TXpRdU5URTVOVE14SURjekxqSXhPRGMxSUMwek1TNDJOVFl5TlNCRElEYzFMamM0TVRJMUlDMHlPQzQ0TXpJd016RWdOemN1TURZeU5TQXRNalV1TkRjMk5UWXlJRGMzTGpBMk1qVWdMVEl4TGpVNU16YzFJRXdnTnpjdU1EWXlOU0F0TVRVdU1UQTVNemMxSUVNZ056Y3VNRFl5TlNBdE1UQXVPVEl4T0RjMUlEYzFMalU0TWpBek1TQXROeTR6TlRFMU5qSWdOekl1TmpJMUlDMDBMalF3TmpJMUlFTWdOamt1TmpZME1EWXlJQzB4TGpRMk9EYzFJRFkyTGpFd09UTTNOU0F3SURZeExqazFNekV5TlNBd0lGb2dUU0EyTVM0NU5UTXhNalVnTUNBaUx6NEtQQzl6ZVcxaWIydytDanh6ZVcxaWIyd2diM1psY21ac2IzYzlJblpwYzJsaWJHVWlJR2xrUFNKbmJIbHdhREF0TXlJK0NqeHdZWFJvSUhOMGVXeGxQU0p6ZEhKdmEyVTZibTl1WlRzaUlHUTlJazBnT0RRdU1qazJPRGMxSURBZ1RDQTNOQzR5TXpRek56VWdNQ0JNSURjMExqSXpORE0zTlNBdE1UY3VPRFF6TnpVZ1F5QTNOQzR5TXpRek56VWdMVEU1TGpJeU5qVTJNaUEzTXk0M016Z3lPREVnTFRJd0xqUXhNREUxTmlBM01pNDNOU0F0TWpFdU16a3dOakkxSUVNZ056RXVOelUzT0RFeUlDMHlNaTR6TnpnNU1EWWdOekF1TlRjNE1USTFJQzB5TWk0NE56VWdOamt1TWpBek1USTFJQzB5TWk0NE56VWdUQ0F4T0M0NU1EWXlOU0F0TWpJdU9EYzFJRXdnTVRndU9UQTJNalVnTUNCTUlEZ3VPREk0TVRJMUlEQWdUQ0E0TGpneU9ERXlOU0F0TmpNdU16STRNVEkxSUV3Z05qa3VNakF6TVRJMUlDMDJNeTR6TWpneE1qVWdReUEzTXk0ek5EYzJOVFlnTFRZekxqTXlPREV5TlNBM05pNDRPVGcwTXpnZ0xUWXhMamcxTVRVMk1pQTNPUzQ0TlRrek56VWdMVFU0TGprd05qSTFJRU1nT0RJdU9ERTJOREEySUMwMU5TNDVOVGN3TXpFZ09EUXVNamsyT0RjMUlDMDFNaTQwTVRBeE5UWWdPRFF1TWprMk9EYzFJQzAwT0M0eU5qVTJNalVnVENBNE5DNHlPVFk0TnpVZ0xUTTNMams0TkRNM05TQkRJRGcwTGpJNU5qZzNOU0F0TXpRdU1EZzFPVE00SURneklDMHpNQzQzTWpZMU5qSWdPREF1TkRBMk1qVWdMVEkzTGprd05qSTFJRU1nT0RNZ0xUSTFMakExTURjNE1TQTROQzR5T1RZNE56VWdMVEl4TGpZNU5UTXhNaUE0TkM0eU9UWTROelVnTFRFM0xqZzBNemMxSUZvZ1RTQTJPUzR5TURNeE1qVWdMVE15TGprek56VWdReUEzTUM0MU56Z3hNalVnTFRNeUxqa3pOelVnTnpFdU56VTNPREV5SUMwek15NDBNamsyT0RnZ056SXVOelVnTFRNMExqUXlNVGczTlNCRElEY3pMamN6T0RJNE1TQXRNelV1TkRFd01UVTJJRGMwTGpJek5ETTNOU0F0TXpZdU5UazNOalUySURjMExqSXpORE0zTlNBdE16Y3VPVGcwTXpjMUlFd2dOelF1TWpNME16YzFJQzAwT0M0eU5qVTJNalVnUXlBM05DNHlNelF6TnpVZ0xUUTVMalkwT0RRek9DQTNNeTQzTXpneU9ERWdMVFV3TGpnek1qQXpNU0EzTWk0M05TQXROVEV1T0RFeU5TQkRJRGN4TGpjMU56Z3hNaUF0TlRJdU9EQXdOemd4SURjd0xqVTNPREV5TlNBdE5UTXVNamsyT0RjMUlEWTVMakl3TXpFeU5TQXROVE11TWprMk9EYzFJRXdnTVRndU9UQTJNalVnTFRVekxqSTVOamczTlNCTUlERTRMamt3TmpJMUlDMHpNaTQ1TXpjMUlGb2dUU0EyT1M0eU1ETXhNalVnTFRNeUxqa3pOelVnSWk4K0Nqd3ZjM2x0WW05c1BnbzhMMmMrQ2p3dlpHVm1jejRLUEdjZ2FXUTlJbk4xY21aaFkyVXhJajRLUEhKbFkzUWdlRDBpTUNJZ2VUMGlNQ0lnZDJsa2RHZzlJak0zTlNJZ2FHVnBaMmgwUFNJek56UXVPVGs1T1RreElpQnpkSGxzWlQwaVptbHNiRHB5WjJJb01UQXdKU3d4TURBbExERXdNQ1VwTzJacGJHd3RiM0JoWTJsMGVUb3hPM04wY205clpUcHViMjVsT3lJdlBnbzhjbVZqZENCNFBTSXdJaUI1UFNJd0lpQjNhV1IwYUQwaU16YzFJaUJvWldsbmFIUTlJak0zTkM0NU9UazVPVEVpSUhOMGVXeGxQU0ptYVd4c09uSm5ZaWd4TURBbExERXdNQ1VzTVRBd0pTazdabWxzYkMxdmNHRmphWFI1T2pFN2MzUnliMnRsT201dmJtVTdJaTgrQ2p4eVpXTjBJSGc5SWpBaUlIazlJakFpSUhkcFpIUm9QU0l6TnpVaUlHaGxhV2RvZEQwaU16YzBMams1T1RrNU1TSWdjM1I1YkdVOUltWnBiR3c2Y21kaUtERXdNQ1VzTVRBd0pTd3hNREFsS1R0bWFXeHNMVzl3WVdOcGRIazZNVHR6ZEhKdmEyVTZibTl1WlRzaUx6NEtQSEJoZEdnZ2MzUjViR1U5SWlCemRISnZhMlU2Ym05dVpUdG1hV3hzTFhKMWJHVTZibTl1ZW1WeWJ6dG1hV3hzT25KbllpZ3dKU3d3SlN3d0pTazdabWxzYkMxdmNHRmphWFI1T2pFN0lpQmtQU0pOSURFNE55NDFJREU1TGpNeU9ERXlOU0JESURFNE5DNDNORFl3T1RRZ01Ua3VNekk0TVRJMUlERTRNUzQ1T1RZd09UUWdNVGt1TXprNE5ETTRJREUzT1M0eU5TQXhPUzQxTXpFeU5TQkRJREUzTmk0MUlERTVMalkyTnprMk9TQXhOek11TnpVek9UQTJJREU1TGpnM01UQTVOQ0F4TnpFdU1ERTFOakkxSURJd0xqRTBNRFl5TlNCRElERTJPQzR5Tnpjek5EUWdNakF1TkRFd01UVTJJREUyTlM0MU5EWTROelVnTWpBdU56UTJNRGswSURFMk1pNDRNalF5TVRrZ01qRXVNVFE0TkRNNElFTWdNVFl3TGpFd01UVTJNaUF5TVM0MU5UUTJPRGdnTVRVM0xqTTVNRFl5TlNBeU1pNHdNak0wTXpnZ01UVTBMalk1TVRRd05pQXlNaTQxTmpJMUlFTWdNVFV4TGprNU1qRTRPQ0F5TXk0d09UYzJOVFlnTVRRNUxqTXdPRFU1TkNBeU15NDJPVGt5TVRrZ01UUTJMall6TmpjeE9TQXlOQzR6TnpFd09UUWdReUF4TkRNdU9UWTROelVnTWpVdU1ETTVNRFl5SURFME1TNHpNVFkwTURZZ01qVXVOemN6TkRNNElERXpPQzQyT0RNMU9UUWdNall1TlRjd016RXlJRU1nTVRNMkxqQTFNRGM0TVNBeU55NHpOekV3T1RRZ01UTXpMalF6TnpVZ01qZ3VNak0wTXpjMUlERXpNQzQ0TkRNM05TQXlPUzR4TmpBeE5UWWdReUF4TWpndU1qVXpPVEEySURNd0xqQTROVGt6T0NBeE1qVXVOamczTlNBek1TNHdOemd4TWpVZ01USXpMakUwTkRVek1TQXpNaTR4TXpJNE1USWdReUF4TWpBdU5qQXhOVFl5SURNekxqRTRNelU1TkNBeE1UZ3VNRGcxT1RNNElETTBMak13TURjNE1TQXhNVFV1TlRrM05qVTJJRE0xTGpRM05qVTJNaUJESURFeE15NHhNRGt6TnpVZ016WXVOalV5TXpRMElERXhNQzQyTlRJek5EUWdNemN1T0Rrd05qSTFJREV3T0M0eU1qWTFOaklnTXprdU1UZzNOU0JESURFd05TNDNPVFk0TnpVZ05EQXVORGcwTXpjMUlERXdNeTQwTURJek5EUWdOREV1T0RNNU9EUTBJREV3TVM0d05ESTVOamtnTkRNdU1qVXpPVEEySUVNZ09UZ3VOamd6TlRrMElEUTBMalkzTVRnM05TQTVOaTR6TlRrek56VWdORFl1TVRRME5UTXhJRGswTGpBM01ETXhNaUEwTnk0Mk56RTROelVnUXlBNU1TNDNPREV5TlNBME9TNHhPVGt5TVRrZ09Ea3VOVE14TWpVZ05UQXVOemcxTVRVMklEZzNMak15TURNeE1pQTFNaTQwTWpVM09ERWdReUE0TlM0eE1Ea3pOelVnTlRRdU1EWXlOU0E0TWk0NU5ERTBNRFlnTlRVdU56VTNPREV5SURnd0xqZ3hNalVnTlRjdU5UQXpPVEEySUVNZ056Z3VOamczTlNBMU9TNHlOU0EzTmk0Mk1ERTFOaklnTmpFdU1EUTJPRGMxSURjMExqVTJNalVnTmpJdU9EazBOVE14SUVNZ056SXVOVEl6TkRNNElEWTBMamMwTWpFNE9DQTNNQzQxTXpFeU5TQTJOaTQyTkRBMk1qVWdOamd1TlRnMU9UTTRJRFk0TGpVNE5Ua3pPQ0JESURZMkxqWTBNRFl5TlNBM01DNDFNekV5TlNBMk5DNDNOREl4T0RnZ056SXVOVEl6TkRNNElEWXlMamc1TkRVek1TQTNOQzQxTmpJMUlFTWdOakV1TURRMk9EYzFJRGMyTGpZd01UVTJNaUExT1M0eU5TQTNPQzQyT0RjMUlEVTNMalV3TXprd05pQTRNQzQ0TVRJMUlFTWdOVFV1TnpVM09ERXlJRGd5TGprME1UUXdOaUExTkM0d05qSTFJRGcxTGpFd09UTTNOU0ExTWk0ME1qVTNPREVnT0RjdU16SXdNekV5SUVNZ05UQXVOemcxTVRVMklEZzVMalV6TVRJMUlEUTVMakU1T1RJeE9TQTVNUzQzT0RFeU5TQTBOeTQyTnpFNE56VWdPVFF1TURjd016RXlJRU1nTkRZdU1UUTBOVE14SURrMkxqTTFPVE0zTlNBME5DNDJOekU0TnpVZ09UZ3VOamd6TlRrMElEUXpMakkxTXprd05pQXhNREV1TURReU9UWTVJRU1nTkRFdU9ETTVPRFEwSURFd015NDBNREl6TkRRZ05EQXVORGcwTXpjMUlERXdOUzQzT1RZNE56VWdNemt1TVRnM05TQXhNRGd1TWpJMk5UWXlJRU1nTXpjdU9Ea3dOakkxSURFeE1DNDJOVEl6TkRRZ016WXVOalV5TXpRMElERXhNeTR4TURrek56VWdNelV1TkRjMk5UWXlJREV4TlM0MU9UYzJOVFlnUXlBek5DNHpNREEzT0RFZ01URTRMakE0TlRrek9DQXpNeTR4T0RNMU9UUWdNVEl3TGpZd01UVTJNaUF6TWk0eE16STRNVElnTVRJekxqRTBORFV6TVNCRElETXhMakEzT0RFeU5TQXhNalV1TmpnM05TQXpNQzR3T0RVNU16Z2dNVEk0TGpJMU16a3dOaUF5T1M0eE5qQXhOVFlnTVRNd0xqZzBNemMxSUVNZ01qZ3VNak0wTXpjMUlERXpNeTQwTXpjMUlESTNMak0zTVRBNU5DQXhNell1TURVd056Z3hJREkyTGpVM01ETXhNaUF4TXpndU5qZ3pOVGswSUVNZ01qVXVOemN6TkRNNElERTBNUzR6TVRZME1EWWdNalV1TURNNU1EWXlJREUwTXk0NU5qZzNOU0F5TkM0ek56RXdPVFFnTVRRMkxqWXpOamN4T1NCRElESXpMalk1T1RJeE9TQXhORGt1TXpBNE5UazBJREl6TGpBNU56WTFOaUF4TlRFdU9Ua3lNVGc0SURJeUxqVTJNalVnTVRVMExqWTVNVFF3TmlCRElESXlMakF5TXpRek9DQXhOVGN1TXprd05qSTFJREl4TGpVMU5EWTRPQ0F4TmpBdU1UQXhOVFl5SURJeExqRTBPRFF6T0NBeE5qSXVPREkwTWpFNUlFTWdNakF1TnpRMk1EazBJREUyTlM0MU5EWTROelVnTWpBdU5ERXdNVFUySURFMk9DNHlOemN6TkRRZ01qQXVNVFF3TmpJMUlERTNNUzR3TVRVMk1qVWdReUF4T1M0NE56RXdPVFFnTVRjekxqYzFNemt3TmlBeE9TNDJOamM1TmprZ01UYzJMalVnTVRrdU5UTXhNalVnTVRjNUxqSTFJRU1nTVRrdU16azRORE00SURFNE1TNDVPVFl3T1RRZ01Ua3VNekk0TVRJMUlERTROQzQzTkRZd09UUWdNVGt1TXpJNE1USTFJREU0Tnk0MUlFTWdNVGt1TXpJNE1USTFJREU1TUM0eU5UTTVNRFlnTVRrdU16azRORE00SURFNU15NHdNRE01TURZZ01Ua3VOVE14TWpVZ01UazFMamMxSUVNZ01Ua3VOalkzT1RZNUlERTVPQzQxSURFNUxqZzNNVEE1TkNBeU1ERXVNalEyTURrMElESXdMakUwTURZeU5TQXlNRE11T1RnME16YzFJRU1nTWpBdU5ERXdNVFUySURJd05pNDNNakkyTlRZZ01qQXVOelEyTURrMElESXdPUzQwTlRNeE1qVWdNakV1TVRRNE5ETTRJREl4TWk0eE56VTNPREVnUXlBeU1TNDFOVFEyT0RnZ01qRTBMamc1T0RRek9DQXlNaTR3TWpNME16Z2dNakUzTGpZd09UTTNOU0F5TWk0MU5qSTFJREl5TUM0ek1EZzFPVFFnUXlBeU15NHdPVGMyTlRZZ01qSXpMakF3TnpneE1pQXlNeTQyT1RreU1Ua2dNakkxTGpZNU1UUXdOaUF5TkM0ek56RXdPVFFnTWpJNExqTTJNekk0TVNCRElESTFMakF6T1RBMk1pQXlNekV1TURNeE1qVWdNalV1Tnpjek5ETTRJREl6TXk0Mk9ETTFPVFFnTWpZdU5UY3dNekV5SURJek5pNHpNVFkwTURZZ1F5QXlOeTR6TnpFd09UUWdNak00TGprME9USXhPU0F5T0M0eU16UXpOelVnTWpReExqVTJNalVnTWprdU1UWXdNVFUySURJME5DNHhOVFl5TlNCRElETXdMakE0TlRrek9DQXlORFl1TnpRMk1EazBJRE14TGpBM09ERXlOU0F5TkRrdU16RXlOU0F6TWk0eE16STRNVElnTWpVeExqZzFOVFEyT1NCRElETXpMakU0TXpVNU5DQXlOVFF1TXprNE5ETTRJRE0wTGpNd01EYzRNU0F5TlRZdU9URTBNRFl5SURNMUxqUTNOalUyTWlBeU5Ua3VOREF5TXpRMElFTWdNell1TmpVeU16UTBJREkyTVM0NE9UQTJNalVnTXpjdU9Ea3dOakkxSURJMk5DNHpORGMyTlRZZ016a3VNVGczTlNBeU5qWXVOemN6TkRNNElFTWdOREF1TkRnME16YzFJREkyT1M0eU1ETXhNalVnTkRFdU9ETTVPRFEwSURJM01TNDFPVGMyTlRZZ05ETXVNalV6T1RBMklESTNNeTQ1TlRjd016RWdReUEwTkM0Mk56RTROelVnTWpjMkxqTXhOalF3TmlBME5pNHhORFExTXpFZ01qYzRMalkwTURZeU5TQTBOeTQyTnpFNE56VWdNamd3TGpreU9UWTRPQ0JESURRNUxqRTVPVEl4T1NBeU9ETXVNakU0TnpVZ05UQXVOemcxTVRVMklESTROUzQwTmpnM05TQTFNaTQwTWpVM09ERWdNamczTGpZM09UWTRPQ0JESURVMExqQTJNalVnTWpnNUxqZzVNRFl5TlNBMU5TNDNOVGM0TVRJZ01qa3lMakExT0RVNU5DQTFOeTQxTURNNU1EWWdNamswTGpFNE56VWdReUExT1M0eU5TQXlPVFl1TXpFeU5TQTJNUzR3TkRZNE56VWdNams0TGpNNU9EUXpPQ0EyTWk0NE9UUTFNekVnTXpBd0xqUXpOelVnUXlBMk5DNDNOREl4T0RnZ016QXlMalEzTmpVMk1pQTJOaTQyTkRBMk1qVWdNekEwTGpRMk9EYzFJRFk0TGpVNE5Ua3pPQ0F6TURZdU5ERTBNRFl5SUVNZ056QXVOVE14TWpVZ016QTRMak0xT1RNM05TQTNNaTQxTWpNME16Z2dNekV3TGpJMU56Z3hNaUEzTkM0MU5qSTFJRE14TWk0eE1EVTBOamtnUXlBM05pNDJNREUxTmpJZ016RXpMamsxTXpFeU5TQTNPQzQyT0RjMUlETXhOUzQzTlNBNE1DNDRNVEkxSURNeE55NDBPVFl3T1RRZ1F5QTRNaTQ1TkRFME1EWWdNekU1TGpJME1qRTRPQ0E0TlM0eE1Ea3pOelVnTXpJd0xqa3pOelVnT0RjdU16SXdNekV5SURNeU1pNDFOelF5TVRrZ1F5QTRPUzQxTXpFeU5TQXpNalF1TWpFME9EUTBJRGt4TGpjNE1USTFJRE15TlM0NE1EQTNPREVnT1RRdU1EY3dNekV5SURNeU55NHpNamd4TWpVZ1F5QTVOaTR6TlRrek56VWdNekk0TGpnMU5UUTJPU0E1T0M0Mk9ETTFPVFFnTXpNd0xqTXlPREV5TlNBeE1ERXVNRFF5T1RZNUlETXpNUzQzTkRZd09UUWdReUF4TURNdU5EQXlNelEwSURNek15NHhOakF4TlRZZ01UQTFMamM1TmpnM05TQXpNelF1TlRFMU5qSTFJREV3T0M0eU1qWTFOaklnTXpNMUxqZ3hNalVnUXlBeE1UQXVOalV5TXpRMElETXpOeTR4TURrek56VWdNVEV6TGpFd09UTTNOU0F6TXpndU16UTNOalUySURFeE5TNDFPVGMyTlRZZ016TTVMalV5TXpRek9DQkRJREV4T0M0d09EVTVNemdnTXpRd0xqWTVPVEl4T1NBeE1qQXVOakF4TlRZeUlETTBNUzQ0TVRZME1EWWdNVEl6TGpFME5EVXpNU0F6TkRJdU9EWTNNVGc0SUVNZ01USTFMalk0TnpVZ016UXpMamt5TVRnM05TQXhNamd1TWpVek9UQTJJRE0wTkM0NU1UUXdOaklnTVRNd0xqZzBNemMxSURNME5TNDRNems0TkRRZ1F5QXhNek11TkRNM05TQXpORFl1TnpZMU5qSTFJREV6Tmk0d05UQTNPREVnTXpRM0xqWXlPRGt3TmlBeE16Z3VOamd6TlRrMElETTBPQzQwTWprMk9EZ2dReUF4TkRFdU16RTJOREEySURNME9TNHlNalkxTmpJZ01UUXpMamsyT0RjMUlETTBPUzQ1TmpBNU16Z2dNVFEyTGpZek5qY3hPU0F6TlRBdU5qSTRPVEEySUVNZ01UUTVMak13T0RVNU5DQXpOVEV1TXpBd056Z3hJREUxTVM0NU9USXhPRGdnTXpVeExqa3dNak0wTkNBeE5UUXVOamt4TkRBMklETTFNaTQwTXpjMUlFTWdNVFUzTGpNNU1EWXlOU0F6TlRJdU9UYzJOVFl5SURFMk1DNHhNREUxTmpJZ016VXpMalEwTlRNeE1pQXhOakl1T0RJME1qRTVJRE0xTXk0NE5URTFOaklnUXlBeE5qVXVOVFEyT0RjMUlETTFOQzR5TlRNNU1EWWdNVFk0TGpJM056TTBOQ0F6TlRRdU5UZzVPRFEwSURFM01TNHdNVFUyTWpVZ016VTBMamcxT1RNM05TQkRJREUzTXk0M05UTTVNRFlnTXpVMUxqRXlPRGt3TmlBeE56WXVOU0F6TlRVdU16TXlNRE14SURFM09TNHlOU0F6TlRVdU5EWTROelVnUXlBeE9ERXVPVGsyTURrMElETTFOUzQyTURFMU5qSWdNVGcwTGpjME5qQTVOQ0F6TlRVdU5qY3hPRGMxSURFNE55NDFJRE0xTlM0Mk56RTROelVnUXlBeE9UQXVNalV6T1RBMklETTFOUzQyTnpFNE56VWdNVGt6TGpBd016a3dOaUF6TlRVdU5qQXhOVFl5SURFNU5TNDNOU0F6TlRVdU5EWTROelVnUXlBeE9UZ3VOU0F6TlRVdU16TXlNRE14SURJd01TNHlORFl3T1RRZ016VTFMakV5T0Rrd05pQXlNRE11T1RnME16YzFJRE0xTkM0NE5Ua3pOelVnUXlBeU1EWXVOekl5TmpVMklETTFOQzQxT0RrNE5EUWdNakE1TGpRMU16RXlOU0F6TlRRdU1qVXpPVEEySURJeE1pNHhOelUzT0RFZ016VXpMamcxTVRVMk1pQkRJREl4TkM0NE9UZzBNemdnTXpVekxqUTBOVE14TWlBeU1UY3VOakE1TXpjMUlETTFNaTQ1TnpZMU5qSWdNakl3TGpNd09EVTVOQ0F6TlRJdU5ETTNOU0JESURJeU15NHdNRGM0TVRJZ016VXhMamt3TWpNME5DQXlNalV1TmpreE5EQTJJRE0xTVM0ek1EQTNPREVnTWpJNExqTTJNekk0TVNBek5UQXVOakk0T1RBMklFTWdNak14TGpBek1USTFJRE0wT1M0NU5qQTVNemdnTWpNekxqWTRNelU1TkNBek5Ea3VNakkyTlRZeUlESXpOaTR6TVRZME1EWWdNelE0TGpReU9UWTRPQ0JESURJek9DNDVORGt5TVRrZ016UTNMall5T0Rrd05pQXlOREV1TlRZeU5TQXpORFl1TnpZMU5qSTFJREkwTkM0eE5UWXlOU0F6TkRVdU9ETTVPRFEwSUVNZ01qUTJMamMwTmpBNU5DQXpORFF1T1RFME1EWXlJREkwT1M0ek1USTFJRE0wTXk0NU1qRTROelVnTWpVeExqZzFOVFEyT1NBek5ESXVPRFkzTVRnNElFTWdNalUwTGpNNU9EUXpPQ0F6TkRFdU9ERTJOREEySURJMU5pNDVNVFF3TmpJZ016UXdMalk1T1RJeE9TQXlOVGt1TkRBeU16UTBJRE16T1M0MU1qTTBNemdnUXlBeU5qRXVPRGt3TmpJMUlETXpPQzR6TkRjMk5UWWdNalkwTGpNME56WTFOaUF6TXpjdU1UQTVNemMxSURJMk5pNDNOek0wTXpnZ016TTFMamd4TWpVZ1F5QXlOamt1TWpBek1USTFJRE16TkM0MU1UVTJNalVnTWpjeExqVTVOelkxTmlBek16TXVNVFl3TVRVMklESTNNeTQ1TlRjd016RWdNek14TGpjME5qQTVOQ0JESURJM05pNHpNVFkwTURZZ016TXdMak15T0RFeU5TQXlOemd1TmpRd05qSTFJRE15T0M0NE5UVTBOamtnTWpnd0xqa3lPVFk0T0NBek1qY3VNekk0TVRJMUlFTWdNamd6TGpJeE9EYzFJRE15TlM0NE1EQTNPREVnTWpnMUxqUTJPRGMxSURNeU5DNHlNVFE0TkRRZ01qZzNMalkzT1RZNE9DQXpNakl1TlRjME1qRTVJRU1nTWpnNUxqZzVNRFl5TlNBek1qQXVPVE0zTlNBeU9USXVNRFU0TlRrMElETXhPUzR5TkRJeE9EZ2dNamswTGpFNE56VWdNekUzTGpRNU5qQTVOQ0JESURJNU5pNHpNVEkxSURNeE5TNDNOU0F5T1RndU16azRORE00SURNeE15NDVOVE14TWpVZ016QXdMalF6TnpVZ016RXlMakV3TlRRMk9TQkRJRE13TWk0ME56WTFOaklnTXpFd0xqSTFOemd4TWlBek1EUXVORFk0TnpVZ016QTRMak0xT1RNM05TQXpNRFl1TkRFME1EWXlJRE13Tmk0ME1UUXdOaklnUXlBek1EZ3VNelU1TXpjMUlETXdOQzQwTmpnM05TQXpNVEF1TWpVM09ERXlJRE13TWk0ME56WTFOaklnTXpFeUxqRXdOVFEyT1NBek1EQXVORE0zTlNCRElETXhNeTQ1TlRNeE1qVWdNams0TGpNNU9EUXpPQ0F6TVRVdU56VWdNamsyTGpNeE1qVWdNekUzTGpRNU5qQTVOQ0F5T1RRdU1UZzNOU0JESURNeE9TNHlOREl4T0RnZ01qa3lMakExT0RVNU5DQXpNakF1T1RNM05TQXlPRGt1T0Rrd05qSTFJRE15TWk0MU56UXlNVGtnTWpnM0xqWTNPVFk0T0NCRElETXlOQzR5TVRRNE5EUWdNamcxTGpRMk9EYzFJRE15TlM0NE1EQTNPREVnTWpnekxqSXhPRGMxSURNeU55NHpNamd4TWpVZ01qZ3dMamt5T1RZNE9DQkRJRE15T0M0NE5UVTBOamtnTWpjNExqWTBNRFl5TlNBek16QXVNekk0TVRJMUlESTNOaTR6TVRZME1EWWdNek14TGpjME5qQTVOQ0F5TnpNdU9UVTNNRE14SUVNZ016TXpMakUyTURFMU5pQXlOekV1TlRrM05qVTJJRE16TkM0MU1UVTJNalVnTWpZNUxqSXdNekV5TlNBek16VXVPREV5TlNBeU5qWXVOemN6TkRNNElFTWdNek0zTGpFd09UTTNOU0F5TmpRdU16UTNOalUySURNek9DNHpORGMyTlRZZ01qWXhMamc1TURZeU5TQXpNemt1TlRJek5ETTRJREkxT1M0ME1ESXpORFFnUXlBek5EQXVOams1TWpFNUlESTFOaTQ1TVRRd05qSWdNelF4TGpneE5qUXdOaUF5TlRRdU16azRORE00SURNME1pNDROamN4T0RnZ01qVXhMamcxTlRRMk9TQkRJRE0wTXk0NU1qRTROelVnTWpRNUxqTXhNalVnTXpRMExqa3hOREEyTWlBeU5EWXVOelEyTURrMElETTBOUzQ0TXprNE5EUWdNalEwTGpFMU5qSTFJRU1nTXpRMkxqYzJOVFl5TlNBeU5ERXVOVFl5TlNBek5EY3VOakk0T1RBMklESXpPQzQ1TkRreU1Ua2dNelE0TGpReU9UWTRPQ0F5TXpZdU16RTJOREEySUVNZ016UTVMakl5TmpVMk1pQXlNek11Tmpnek5UazBJRE0wT1M0NU5qQTVNemdnTWpNeExqQXpNVEkxSURNMU1DNDJNamc1TURZZ01qSTRMak0yTXpJNE1TQkRJRE0xTVM0ek1EQTNPREVnTWpJMUxqWTVNVFF3TmlBek5URXVPVEF5TXpRMElESXlNeTR3TURjNE1USWdNelV5TGpRek56VWdNakl3TGpNd09EVTVOQ0JESURNMU1pNDVOelkxTmpJZ01qRTNMall3T1RNM05TQXpOVE11TkRRMU16RXlJREl4TkM0NE9UZzBNemdnTXpVekxqZzFNVFUyTWlBeU1USXVNVGMxTnpneElFTWdNelUwTGpJMU16a3dOaUF5TURrdU5EVXpNVEkxSURNMU5DNDFPRGs0TkRRZ01qQTJMamN5TWpZMU5pQXpOVFF1T0RVNU16YzFJREl3TXk0NU9EUXpOelVnUXlBek5UVXVNVEk0T1RBMklESXdNUzR5TkRZd09UUWdNelUxTGpNek1qQXpNU0F4T1RndU5TQXpOVFV1TkRZNE56VWdNVGsxTGpjMUlFTWdNelUxTGpZd01UVTJNaUF4T1RNdU1EQXpPVEEySURNMU5TNDJOekU0TnpVZ01Ua3dMakkxTXprd05pQXpOVFV1TmpjeE9EYzFJREU0Tnk0MUlFTWdNelUxTGpZM01UZzNOU0F4T0RRdU56UTJNRGswSURNMU5TNDJNREUxTmpJZ01UZ3hMams1TmpBNU5DQXpOVFV1TkRZNE56VWdNVGM1TGpJMUlFTWdNelUxTGpNek1qQXpNU0F4TnpZdU5TQXpOVFV1TVRJNE9UQTJJREUzTXk0M05UTTVNRFlnTXpVMExqZzFPVE0zTlNBeE56RXVNREUxTmpJMUlFTWdNelUwTGpVNE9UZzBOQ0F4TmpndU1qYzNNelEwSURNMU5DNHlOVE01TURZZ01UWTFMalUwTmpnM05TQXpOVE11T0RVeE5UWXlJREUyTWk0NE1qUXlNVGtnUXlBek5UTXVORFExTXpFeUlERTJNQzR4TURFMU5qSWdNelV5TGprM05qVTJNaUF4TlRjdU16a3dOakkxSURNMU1pNDBNemMxSURFMU5DNDJPVEUwTURZZ1F5QXpOVEV1T1RBeU16UTBJREUxTVM0NU9USXhPRGdnTXpVeExqTXdNRGM0TVNBeE5Ea3VNekE0TlRrMElETTFNQzQyTWpnNU1EWWdNVFEyTGpZek5qY3hPU0JESURNME9TNDVOakE1TXpnZ01UUXpMamsyT0RjMUlETTBPUzR5TWpZMU5qSWdNVFF4TGpNeE5qUXdOaUF6TkRndU5ESTVOamc0SURFek9DNDJPRE0xT1RRZ1F5QXpORGN1TmpJNE9UQTJJREV6Tmk0d05UQTNPREVnTXpRMkxqYzJOVFl5TlNBeE16TXVORE0zTlNBek5EVXVPRE01T0RRMElERXpNQzQ0TkRNM05TQkRJRE0wTkM0NU1UUXdOaklnTVRJNExqSTFNemt3TmlBek5ETXVPVEl4T0RjMUlERXlOUzQyT0RjMUlETTBNaTQ0TmpjeE9EZ2dNVEl6TGpFME5EVXpNU0JESURNME1TNDRNVFkwTURZZ01USXdMall3TVRVMk1pQXpOREF1TmprNU1qRTVJREV4T0M0d09EVTVNemdnTXpNNUxqVXlNelF6T0NBeE1UVXVOVGszTmpVMklFTWdNek00TGpNME56WTFOaUF4TVRNdU1UQTVNemMxSURNek55NHhNRGt6TnpVZ01URXdMalkxTWpNME5DQXpNelV1T0RFeU5TQXhNRGd1TWpJMk5UWXlJRU1nTXpNMExqVXhOVFl5TlNBeE1EVXVOemsyT0RjMUlETXpNeTR4TmpBeE5UWWdNVEF6TGpRd01qTTBOQ0F6TXpFdU56UTJNRGswSURFd01TNHdOREk1TmprZ1F5QXpNekF1TXpJNE1USTFJRGs0TGpZNE16VTVOQ0F6TWpndU9EVTFORFk1SURrMkxqTTFPVE0zTlNBek1qY3VNekk0TVRJMUlEazBMakEzTURNeE1pQkRJRE15TlM0NE1EQTNPREVnT1RFdU56Z3hNalVnTXpJMExqSXhORGcwTkNBNE9TNDFNekV5TlNBek1qSXVOVGMwTWpFNUlEZzNMak15TURNeE1pQkRJRE15TUM0NU16YzFJRGcxTGpFd09UTTNOU0F6TVRrdU1qUXlNVGc0SURneUxqazBNVFF3TmlBek1UY3VORGsyTURrMElEZ3dMamd4TWpVZ1F5QXpNVFV1TnpVZ056Z3VOamczTlNBek1UTXVPVFV6TVRJMUlEYzJMall3TVRVMk1pQXpNVEl1TVRBMU5EWTVJRGMwTGpVMk1qVWdReUF6TVRBdU1qVTNPREV5SURjeUxqVXlNelF6T0NBek1EZ3VNelU1TXpjMUlEY3dMalV6TVRJMUlETXdOaTQwTVRRd05qSWdOamd1TlRnMU9UTTRJRU1nTXpBMExqUTJPRGMxSURZMkxqWTBNRFl5TlNBek1ESXVORGMyTlRZeUlEWTBMamMwTWpFNE9DQXpNREF1TkRNM05TQTJNaTQ0T1RRMU16RWdReUF5T1RndU16azRORE00SURZeExqQTBOamczTlNBeU9UWXVNekV5TlNBMU9TNHlOU0F5T1RRdU1UZzNOU0ExTnk0MU1ETTVNRFlnUXlBeU9USXVNRFU0TlRrMElEVTFMamMxTnpneE1pQXlPRGt1T0Rrd05qSTFJRFUwTGpBMk1qVWdNamczTGpZM09UWTRPQ0ExTWk0ME1qVTNPREVnUXlBeU9EVXVORFk0TnpVZ05UQXVOemcxTVRVMklESTRNeTR5TVRnM05TQTBPUzR4T1RreU1Ua2dNamd3TGpreU9UWTRPQ0EwTnk0Mk56RTROelVnUXlBeU56Z3VOalF3TmpJMUlEUTJMakUwTkRVek1TQXlOell1TXpFMk5EQTJJRFEwTGpZM01UZzNOU0F5TnpNdU9UVTNNRE14SURRekxqSTFNemt3TmlCRElESTNNUzQxT1RjMk5UWWdOREV1T0RNNU9EUTBJREkyT1M0eU1ETXhNalVnTkRBdU5EZzBNemMxSURJMk5pNDNOek0wTXpnZ016a3VNVGczTlNCRElESTJOQzR6TkRjMk5UWWdNemN1T0Rrd05qSTFJREkyTVM0NE9UQTJNalVnTXpZdU5qVXlNelEwSURJMU9TNDBNREl6TkRRZ016VXVORGMyTlRZeUlFTWdNalUyTGpreE5EQTJNaUF6TkM0ek1EQTNPREVnTWpVMExqTTVPRFF6T0NBek15NHhPRE0xT1RRZ01qVXhMamcxTlRRMk9TQXpNaTR4TXpJNE1USWdReUF5TkRrdU16RXlOU0F6TVM0d056Z3hNalVnTWpRMkxqYzBOakE1TkNBek1DNHdPRFU1TXpnZ01qUTBMakUxTmpJMUlESTVMakUyTURFMU5pQkRJREkwTVM0MU5qSTFJREk0TGpJek5ETTNOU0F5TXpndU9UUTVNakU1SURJM0xqTTNNVEE1TkNBeU16WXVNekUyTkRBMklESTJMalUzTURNeE1pQkRJREl6TXk0Mk9ETTFPVFFnTWpVdU56Y3pORE00SURJek1TNHdNekV5TlNBeU5TNHdNemt3TmpJZ01qSTRMak0yTXpJNE1TQXlOQzR6TnpFd09UUWdReUF5TWpVdU5qa3hOREEySURJekxqWTVPVEl4T1NBeU1qTXVNREEzT0RFeUlESXpMakE1TnpZMU5pQXlNakF1TXpBNE5UazBJREl5TGpVMk1qVWdReUF5TVRjdU5qQTVNemMxSURJeUxqQXlNelF6T0NBeU1UUXVPRGs0TkRNNElESXhMalUxTkRZNE9DQXlNVEl1TVRjMU56Z3hJREl4TGpFME9EUXpPQ0JESURJd09TNDBOVE14TWpVZ01qQXVOelEyTURrMElESXdOaTQzTWpJMk5UWWdNakF1TkRFd01UVTJJREl3TXk0NU9EUXpOelVnTWpBdU1UUXdOakkxSUVNZ01qQXhMakkwTmpBNU5DQXhPUzQ0TnpFd09UUWdNVGs0TGpVZ01Ua3VOalkzT1RZNUlERTVOUzQzTlNBeE9TNDFNekV5TlNCRElERTVNeTR3TURNNU1EWWdNVGt1TXprNE5ETTRJREU1TUM0eU5UTTVNRFlnTVRrdU16STRNVEkxSURFNE55NDFJREU1TGpNeU9ERXlOU0JhSUUwZ01UZzNMalVnTVRrdU16STRNVEkxSUNJdlBnbzhaeUJ6ZEhsc1pUMGlabWxzYkRweVoySW9NVEF3SlN3eE1EQWxMREV3TUNVcE8yWnBiR3d0YjNCaFkybDBlVG94T3lJK0NpQWdQSFZ6WlNCNGJHbHVhenBvY21WbVBTSWpaMng1Y0dnd0xURWlJSGc5SWpRM0xqZzBOakUxTkNJZ2VUMGlNakUxTGpRM01UY3lPQ0l2UGdvOEwyYytDanhuSUhOMGVXeGxQU0ptYVd4c09uSm5ZaWd4TURBbExEVTJMamcxT0RneU5pVXNNekF1TVRrNE5qWTVKU2s3Wm1sc2JDMXZjR0ZqYVhSNU9qRTdJajRLSUNBOGRYTmxJSGhzYVc1ck9taHlaV1k5SWlObmJIbHdhREF0TWlJZ2VEMGlNVFV5TGpZd016WXdOeUlnZVQwaU1qRTFMalEzTVRjeU9DSXZQZ284TDJjK0NqeG5JSE4wZVd4bFBTSm1hV3hzT25KbllpZ3hNREFsTERFd01DVXNNVEF3SlNrN1ptbHNiQzF2Y0dGamFYUjVPakU3SWo0S0lDQThkWE5sSUhoc2FXNXJPbWh5WldZOUlpTm5iSGx3YURBdE15SWdlRDBpTWpNMkxqSTBOVFkzTXlJZ2VUMGlNakUxTGpRM01UY3lPQ0l2UGdvOEwyYytDand2Wno0S1BDOXpkbWMrQ2c9PSIsIm1lZGlhdHlwZSI6ImltYWdlL3N2Zyt4bWwifV0sImluc3RhbGwiOnsic3BlYyI6eyJjbHVzdGVyUGVybWlzc2lvbnMiOlt7InJ1bGVzIjpbeyJhcGlHcm91cHMiOlsiYXV0aGVudGljYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJ0b2tlbnJldmlld3MiXSwidmVyYnMiOlsiY3JlYXRlIl19LHsiYXBpR3JvdXBzIjpbImF1dGhvcml6YXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJzdWJqZWN0YWNjZXNzcmV2aWV3cyJdLCJ2ZXJicyI6WyJjcmVhdGUiXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJtYXJpbjNyLWNvbnRyb2xsZXItbWFuYWdlciJ9XSwiZGVwbG95bWVudHMiOlt7ImxhYmVsIjp7ImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifSwibmFtZSI6Im1hcmluM3ItY29udHJvbGxlci1tYW5hZ2VyIiwic3BlYyI6eyJyZXBsaWNhcyI6MSwic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3RyYXRlZ3kiOnt9LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJsYWJlbHMiOnsiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3BlYyI6eyJjb250YWluZXJzIjpbeyJhcmdzIjpbIm9wZXJhdG9yIiwiLS1sZWFkZXItZWxlY3QiXSwiY29tbWFuZCI6WyIvbWFuYWdlciJdLCJlbnYiOlt7Im5hbWUiOiJXQVRDSF9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEuYW5ub3RhdGlvbnNbJ29sbS50YXJnZXROYW1lc3BhY2VzJ10ifX19XSwiaW1hZ2UiOiJxdWF5LmlvLzNzY2FsZS9tYXJpbjNyOnYwLjEzLjItYWxwaGEuMSIsImxpdmVuZXNzUHJvYmUiOnsiaHR0cEdldCI6eyJwYXRoIjoiL2hlYWx0aHoiLCJwb3J0Ijo4MDgxfSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6MTUsInBlcmlvZFNlY29uZHMiOjIwfSwibmFtZSI6Im1hbmFnZXIiLCJwb3J0cyI6W3siY29udGFpbmVyUG9ydCI6ODA4MCwibmFtZSI6Im1ldHJpY3MiLCJwcm90b2NvbCI6IlRDUCJ9XSwicmVhZGluZXNzUHJvYmUiOnsiaHR0cEdldCI6eyJwYXRoIjoiL3JlYWR5eiIsInBvcnQiOjgwODF9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjo1LCJwZXJpb2RTZWNvbmRzIjoxMH0sInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiMzAwbSIsIm1lbW9yeSI6IjMwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjUwbSIsIm1lbW9yeSI6IjEwME1pIn19LCJzZWN1cml0eUNvbnRleHQiOnsiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjpmYWxzZX19XSwic2VjdXJpdHlDb250ZXh0Ijp7InJ1bkFzTm9uUm9vdCI6dHJ1ZX0sInNlcnZpY2VBY2NvdW50TmFtZSI6Im1hcmluM3ItY29udHJvbGxlci1tYW5hZ2VyIiwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjEwfX19fSx7ImxhYmVsIjp7ImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLXdlYmhvb2sifSwibmFtZSI6Im1hcmluM3ItY29udHJvbGxlci13ZWJob29rIiwic3BlYyI6eyJyZXBsaWNhcyI6Miwic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItd2ViaG9vayJ9fSwic3RyYXRlZ3kiOnt9LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJsYWJlbHMiOnsiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItd2ViaG9vayJ9fSwic3BlYyI6eyJjb250YWluZXJzIjpbeyJhcmdzIjpbIndlYmhvb2siLCItLXRscy1kaXI9L2FwaXNlcnZlci5sb2NhbC5jb25maWcvY2VydGlmaWNhdGVzIiwiLS10bHMtY2VydC1uYW1lPWFwaXNlcnZlci5jcnQiLCItLXRscy1rZXktbmFtZT1hcGlzZXJ2ZXIua2V5Il0sImNvbW1hbmQiOlsiL21hbmFnZXIiXSwiZW52IjpbeyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicXVheS5pby8zc2NhbGUvbWFyaW4zcjp2MC4xMy4yLWFscGhhLjEiLCJsaXZlbmVzc1Byb2JlIjp7Imh0dHBHZXQiOnsicGF0aCI6Ii9oZWFsdGh6IiwicG9ydCI6ODA4MX0sImluaXRpYWxEZWxheVNlY29uZHMiOjE1LCJwZXJpb2RTZWNvbmRzIjoyMH0sIm5hbWUiOiJ3ZWJob29rIiwicG9ydHMiOlt7ImNvbnRhaW5lclBvcnQiOjk0NDMsIm5hbWUiOiJ3ZWJob29rLXNlcnZlciIsInByb3RvY29sIjoiVENQIn1dLCJyZWFkaW5lc3NQcm9iZSI6eyJodHRwR2V0Ijp7InBhdGgiOiIvcmVhZHl6IiwicG9ydCI6ODA4MX0sImluaXRpYWxEZWxheVNlY29uZHMiOjUsInBlcmlvZFNlY29uZHMiOjEwfSwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiIxMDBtIiwibWVtb3J5IjoiMTAwTWkifSwicmVxdWVzdHMiOnsiY3B1IjoiNTBtIiwibWVtb3J5IjoiMzBNaSJ9fSwic2VjdXJpdHlDb250ZXh0Ijp7ImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6ZmFsc2V9fV0sInNlcnZpY2VBY2NvdW50TmFtZSI6Im1hcmluM3ItY29udHJvbGxlci1tYW5hZ2VyIn19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiY29vcmRpbmF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsibGVhc2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCIsImNyZWF0ZSIsInVwZGF0ZSIsInBhdGNoIiwiZGVsZXRlIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImFwcHMiXSwicmVzb3VyY2VzIjpbImRlcGxveW1lbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImF1dG9zY2FsaW5nIl0sInJlc291cmNlcyI6WyJob3Jpem9udGFscG9kYXV0b3NjYWxlcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJwb2RzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJzZXJ2aWNlYWNjb3VudHMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJzZXJ2aWNlcyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJkaXNjb3ZlcnkuazhzLmlvIl0sInJlc291cmNlcyI6WyJlbmRwb2ludHNsaWNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsibWFyaW4zci4zc2NhbGUubmV0Il0sInJlc291cmNlcyI6WyIqIl0sInZlcmJzIjpbIioiXX0seyJhcGlHcm91cHMiOlsibWFyaW4zci4zc2NhbGUubmV0Il0sInJlc291cmNlcyI6WyJlbnZveWNvbmZpZ3JldmlzaW9ucyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJtYXJpbjNyLjNzY2FsZS5uZXQiXSwicmVzb3VyY2VzIjpbImVudm95Y29uZmlncmV2aXNpb25zL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJwYXRjaCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJtYXJpbjNyLjNzY2FsZS5uZXQiXSwicmVzb3VyY2VzIjpbImVudm95Y29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJtYXJpbjNyLjNzY2FsZS5uZXQiXSwicmVzb3VyY2VzIjpbImVudm95Y29uZmlncy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwicGF0Y2giLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3IubWFyaW4zci4zc2NhbGUubmV0Il0sInJlc291cmNlcyI6WyIqIl0sInZlcmJzIjpbIioiXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3IubWFyaW4zci4zc2NhbGUubmV0Il0sInJlc291cmNlcyI6WyJkaXNjb3ZlcnlzZXJ2aWNlY2VydGlmaWNhdGVzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9yLm1hcmluM3IuM3NjYWxlLm5ldCJdLCJyZXNvdXJjZXMiOlsiZGlzY292ZXJ5c2VydmljZWNlcnRpZmljYXRlcy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwicGF0Y2giLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3IubWFyaW4zci4zc2NhbGUubmV0Il0sInJlc291cmNlcyI6WyJkaXNjb3ZlcnlzZXJ2aWNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3IubWFyaW4zci4zc2NhbGUubmV0Il0sInJlc291cmNlcyI6WyJlbnZveWRlcGxveW1lbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9yLm1hcmluM3IuM3NjYWxlLm5ldCJdLCJyZXNvdXJjZXMiOlsiZW52b3lkZXBsb3ltZW50cy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJvcGVyYXRvci5tYXJpbjNyLjNzY2FsZS5uZXQiXSwicmVzb3VyY2VzIjpbImVudm95ZGVwbG95bWVudHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbInBvbGljeSJdLCJyZXNvdXJjZXMiOlsicG9kZGlzcnVwdGlvbmJ1ZGdldHMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsicmJhYy5hdXRob3JpemF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsicm9sZWJpbmRpbmdzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbInJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbInJvbGVzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoibWFyaW4zci1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiTXVsdGlOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IkFsbE5hbWVzcGFjZXMifV0sImtleXdvcmRzIjpbImVudm95IiwiZGlzY292ZXJ5IiwiY29udHJvbHBsYW5lIiwicHJveHkiLCJzaWRlY2FyIiwieGRzIiwibmV0d29yayIsImdhdGV3YXkiXSwibGlua3MiOlt7Im5hbWUiOiJHaXRIdWIiLCJ1cmwiOiJodHRwczovL2dpdGh1Yi5jb20vM3NjYWxlLW9wcy9tYXJpbjNyIn1dLCJtYWludGFpbmVycyI6W3siZW1haWwiOiIzc2NhbGUtb3BlcmF0aW9ucyttYXJpbjNyQHJlZGhhdC5jb20iLCJuYW1lIjoiM3NjYWxlIE9wZXJhdGlvbnMgVGVhbSJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInZlcnNpb24iOiIwLjEzLjItYWxwaGEuMSIsIndlYmhvb2tkZWZpbml0aW9ucyI6W3siYWRtaXNzaW9uUmV2aWV3VmVyc2lvbnMiOlsidjEiXSwiY29udGFpbmVyUG9ydCI6NDQzLCJkZXBsb3ltZW50TmFtZSI6Im1hcmluM3ItY29udHJvbGxlci13ZWJob29rIiwiZmFpbHVyZVBvbGljeSI6IkZhaWwiLCJnZW5lcmF0ZU5hbWUiOiJlbnZveWNvbmZpZy5tYXJpbjNyLjNzY2FsZS5uZXQtdjFhbHBoYTEiLCJydWxlcyI6W3siYXBpR3JvdXBzIjpbIm1hcmluM3IuM3NjYWxlLm5ldCJdLCJhcGlWZXJzaW9ucyI6WyJ2MWFscGhhMSJdLCJvcGVyYXRpb25zIjpbIkNSRUFURSIsIlVQREFURSJdLCJyZXNvdXJjZXMiOlsiZW52b3ljb25maWdzIl19XSwic2lkZUVmZmVjdHMiOiJOb25lIiwidGFyZ2V0UG9ydCI6OTQ0MywidHlwZSI6IlZhbGlkYXRpbmdBZG1pc3Npb25XZWJob29rIiwid2ViaG9va1BhdGgiOiIvdmFsaWRhdGUtbWFyaW4zci0zc2NhbGUtbmV0LXYxYWxwaGExLWVudm95Y29uZmlnIn0seyJhZG1pc3Npb25SZXZpZXdWZXJzaW9ucyI6WyJ2MSJdLCJjb250YWluZXJQb3J0Ijo0NDMsImRlcGxveW1lbnROYW1lIjoibWFyaW4zci1jb250cm9sbGVyLXdlYmhvb2siLCJmYWlsdXJlUG9saWN5IjoiRmFpbCIsImdlbmVyYXRlTmFtZSI6ImVudm95ZGVwbG95bWVudC5vcGVyYXRvci5tYXJpbjNyLjNzY2FsZS5uZXQiLCJydWxlcyI6W3siYXBpR3JvdXBzIjpbIm9wZXJhdG9yLm1hcmluM3IuM3NjYWxlLm5ldCJdLCJhcGlWZXJzaW9ucyI6WyJ2MWFscGhhMSJdLCJvcGVyYXRpb25zIjpbIkNSRUFURSIsIlVQREFURSJdLCJyZXNvdXJjZXMiOlsiZW52b3lkZXBsb3ltZW50cyJdfV0sInNpZGVFZmZlY3RzIjoiTm9uZSIsInRhcmdldFBvcnQiOjk0NDMsInR5cGUiOiJWYWxpZGF0aW5nQWRtaXNzaW9uV2ViaG9vayIsIndlYmhvb2tQYXRoIjoiL3ZhbGlkYXRlLW9wZXJhdG9yLW1hcmluM3ItM3NjYWxlLW5ldC12MWFscGhhMS1lbnZveWRlcGxveW1lbnQifSx7ImFkbWlzc2lvblJldmlld1ZlcnNpb25zIjpbInYxIl0sImNvbnRhaW5lclBvcnQiOjQ0MywiZGVwbG95bWVudE5hbWUiOiJtYXJpbjNyLWNvbnRyb2xsZXItd2ViaG9vayIsImZhaWx1cmVQb2xpY3kiOiJGYWlsIiwiZ2VuZXJhdGVOYW1lIjoic2lkZWNhci1pbmplY3Rvci5tYXJpbjNyLjNzY2FsZS5uZXQiLCJtYXRjaFBvbGljeSI6IkVxdWl2YWxlbnQiLCJvYmplY3RTZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJtYXJpbjNyLjNzY2FsZS5uZXQvc3RhdHVzIjoiZW5hYmxlZCJ9fSwicmVpbnZvY2F0aW9uUG9saWN5IjoiTmV2ZXIiLCJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJhcGlWZXJzaW9ucyI6WyJ2MSJdLCJvcGVyYXRpb25zIjpbIkNSRUFURSJdLCJyZXNvdXJjZXMiOlsicG9kcyJdfV0sInNpZGVFZmZlY3RzIjoiTm9uZSIsInRhcmdldFBvcnQiOjk0NDMsInR5cGUiOiJNdXRhdGluZ0FkbWlzc2lvbldlYmhvb2siLCJ3ZWJob29rUGF0aCI6Ii9wb2QtdjEtbXV0YXRlIn1dfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjExLjMifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsIm5hbWUiOiJkaXNjb3ZlcnlzZXJ2aWNlY2VydGlmaWNhdGVzLm9wZXJhdG9yLm1hcmluM3IuM3NjYWxlLm5ldCJ9LCJzcGVjIjp7Imdyb3VwIjoib3BlcmF0b3IubWFyaW4zci4zc2NhbGUubmV0IiwibmFtZXMiOnsia2luZCI6IkRpc2NvdmVyeVNlcnZpY2VDZXJ0aWZpY2F0ZSIsImxpc3RLaW5kIjoiRGlzY292ZXJ5U2VydmljZUNlcnRpZmljYXRlTGlzdCIsInBsdXJhbCI6ImRpc2NvdmVyeXNlcnZpY2VjZXJ0aWZpY2F0ZXMiLCJzaW5ndWxhciI6ImRpc2NvdmVyeXNlcnZpY2VjZXJ0aWZpY2F0ZSJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3siYWRkaXRpb25hbFByaW50ZXJDb2x1bW5zIjpbeyJqc29uUGF0aCI6Ii5zdGF0dXMucmVhZHkiLCJuYW1lIjoiUmVhZHkiLCJ0eXBlIjoiYm9vbGVhbiJ9LHsiZm9ybWF0IjoiZGF0ZS10aW1lIiwianNvblBhdGgiOiIuc3RhdHVzLm5vdEJlZm9yZSIsIm5hbWUiOiJOb3QgQmVmb3JlIiwidHlwZSI6InN0cmluZyJ9LHsiZm9ybWF0IjoiZGF0ZS10aW1lIiwianNvblBhdGgiOiIuc3RhdHVzLm5vdEFmdGVyIiwibmFtZSI6Ik5vdCBBZnRlciIsInR5cGUiOiJzdHJpbmcifV0sIm5hbWUiOiJ2MWFscGhhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJEaXNjb3ZlcnlTZXJ2aWNlQ2VydGlmaWNhdGUgaXMgYW4gaW50ZXJuYWwgcmVzb3VyY2UgdXNlZCB0byBjcmVhdGUgY2VydGlmaWNhdGVzLiBUaGlzIHJlc291cmNlIGlzIHVzZWQgYnkgdGhlIERpc2NvdmVyeVNlcnZpY2UgY29udHJvbGxlciB0byBjcmVhdGUgdGhlIHJlcXVpcmVkIGNlcnRpZmljYXRlcyBmb3IgdGhlIGRpZmZlcmVudCBjb21wb25lbnRzLiBEaXJlY3QgdXNlIG9mIERpc2NvdmVyeVNlcnZpY2VDZXJ0aWZpY2F0ZSBvYmplY3RzIGlzIGRpc2NvdXJhZ2VkLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kIG1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiRGlzY292ZXJ5U2VydmljZUNlcnRpZmljYXRlU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIERpc2NvdmVyeVNlcnZpY2VDZXJ0aWZpY2F0ZSIsInByb3BlcnRpZXMiOnsiY2VydGlmaWNhdGVSZW5ld2FsIjp7ImRlc2NyaXB0aW9uIjoiQ2VydGlmaWNhdGVSZW5ld2FsQ29uZmlnIGNvbmZpZ3VyZXMgdGhlIGNlcnRpZmljYXRlIHJlbmV3YWwgcHJvY2Vzcy4gSWYgdW5zZXQgZGVmYXVsdCBiZWhhdmlvciBpcyB0byByZW5ldyB0aGUgY2VydGlmaWNhdGUgYnV0IG5vdCBub3RpZnkgb2YgcmVuZXdhbHMuIiwicHJvcGVydGllcyI6eyJlbmFibGVkIjp7ImRlc2NyaXB0aW9uIjoiRW5hYmxlZCBpcyBhIGZsYWcgdG8gZW5hYmxlIG9yIGRpc2FibGUgcmVuZXdhbCBvZiB0aGUgY2VydGlmaWNhdGUiLCJ0eXBlIjoiYm9vbGVhbiJ9fSwicmVxdWlyZWQiOlsiZW5hYmxlZCJdLCJ0eXBlIjoib2JqZWN0In0sImNvbW1vbk5hbWUiOnsiZGVzY3JpcHRpb24iOiJDb21tb25OYW1lIGlzIHRoZSBDb21tb25OYW1lIG9mIHRoZSBjZXJ0aWZpY2F0ZSIsInR5cGUiOiJzdHJpbmcifSwiaG9zdHMiOnsiZGVzY3JpcHRpb24iOiJIb3N0cyBpcyB0aGUgbGlzdCBvZiBob3N0cyB0aGUgY2VydGlmaWNhdGUgaXMgdmFsaWQgZm9yLiBPbmx5IHVzZSB3aGVuICdJc1NlcnZlckNlcnRpZmljYXRlJyBpcyB0cnVlLiBJZiB1bnNldCwgdGhlIENvbW1vbk5hbWUgZmllbGQgd2lsbCBiZSB1c2VkIHRvIHBvcHVsYXRlIHRoZSB2YWxpZCBob3N0cyBvZiB0aGUgY2VydGlmaWNhdGUuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiaXNDQSI6eyJkZXNjcmlwdGlvbiI6IklzQ0EgaXMgYSBib29sZWFuIHNwZWNpZnlpbmcgdGhhdCB0aGUgY2VydGlmaWNhdGUgaXMgYSBDQSIsInR5cGUiOiJib29sZWFuIn0sInNlY3JldFJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlY3JldFJlZiBpcyBhIHJlZmVyZW5jZSB0byB0aGUgc2VjcmV0IHRoYXQgd2lsbCBob2xkIHRoZSBjZXJ0aWZpY2F0ZSBhbmQgdGhlIHByaXZhdGUga2V5LiIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgaXMgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZSB0byByZWZlcmVuY2UgYSBzZWNyZXQgcmVzb3VyY2UuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2UgZGVmaW5lcyB0aGUgc3BhY2Ugd2l0aGluIHdoaWNoIHRoZSBzZWNyZXQgbmFtZSBtdXN0IGJlIHVuaXF1ZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sInNlcnZlciI6eyJkZXNjcmlwdGlvbiI6IklzU2VydmVyQ2VydGlmaWNhdGUgaXMgYSBib29sZWFuIHNwZWNpZnlpbmcgaWYgdGhlIGNlcnRpZmljYXRlIHNob3VsZCBiZSBpc3N1ZWQgd2l0aCBzZXJ2ZXIgYXV0aCB1c2FnZSBlbmFibGVkIiwidHlwZSI6ImJvb2xlYW4ifSwic2lnbmVyIjp7ImRlc2NyaXB0aW9uIjoiU2lnbmVyIHNwZWNpZmllcyAgdGhlIHNpZ25lciB0byB1c2UgdG8gY3JlYXRlIHRoaXMgY2VydGlmaWNhdGUuIFN1cHBvcnRlZCBzaWduZXJzIGFyZSBDZXJ0TWFuYWdlciBhbmQgU2VsZlNpZ25lZC4iLCJwcm9wZXJ0aWVzIjp7ImNhU2lnbmVkIjp7ImRlc2NyaXB0aW9uIjoiQ0FTaWduZWQgaG9sZHMgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBmb3IgdGhlIENBU2lnbmVkIHNpZ25lciIsInByb3BlcnRpZXMiOnsiY2FTZWNyZXRSZWYiOnsiZGVzY3JpcHRpb24iOiJBIHJlZmVyZW5jZSB0byBhIFNlY3JldCBjb250YWluaW5nIHRoZSBDQSIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgaXMgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZSB0byByZWZlcmVuY2UgYSBzZWNyZXQgcmVzb3VyY2UuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2UgZGVmaW5lcyB0aGUgc3BhY2Ugd2l0aGluIHdoaWNoIHRoZSBzZWNyZXQgbmFtZSBtdXN0IGJlIHVuaXF1ZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn19LCJyZXF1aXJlZCI6WyJjYVNlY3JldFJlZiJdLCJ0eXBlIjoib2JqZWN0In0sInNlbGZTaWduZWQiOnsiZGVzY3JpcHRpb24iOiJTZWxmU2lnbmVkIGhvbGRzIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBTZWxmU2lnbmVkIHNpZ25lciIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwidmFsaWRGb3IiOnsiZGVzY3JpcHRpb24iOiJWYWxpZEZvciBzcGVjaWZpZXMgdGhlIHZhbGlkaXR5IG9mIHRoZSBjZXJ0aWZpY2F0ZSBpbiBzZWNvbmRzIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsiY29tbW9uTmFtZSIsInNlY3JldFJlZiIsInNpZ25lciIsInZhbGlkRm9yIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiRGlzY292ZXJ5U2VydmljZUNlcnRpZmljYXRlU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIERpc2NvdmVyeVNlcnZpY2VDZXJ0aWZpY2F0ZSIsInByb3BlcnRpZXMiOnsiY2VydGlmaWNhdGVIYXNoIjp7ImRlc2NyaXB0aW9uIjoiQ2VydGlmaWNhdGVIYXNoIHN0b3JlcyB0aGUgY3VycmVudCBoYXNoIG9mIHRoZSBjZXJ0aWZpY2F0ZS4gSXQgaXMgdXNlZCBmb3Igb3RoZXIgY29udHJvbGxlcnMgdG8gdmFsaWRhdGUgaWYgYSBjZXJ0aWZpY2F0ZSBoYXMgYmVlbiByZS1pc3N1ZWQuIiwidHlwZSI6InN0cmluZyJ9LCJjb25kaXRpb25zIjp7ImRlc2NyaXB0aW9uIjoiQ29uZGl0aW9ucyByZXByZXNlbnQgdGhlIGxhdGVzdCBhdmFpbGFibGUgb2JzZXJ2YXRpb25zIG9mIGFuIG9iamVjdCdzIHN0YXRlIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJDb25kaXRpb24gY29udGFpbnMgZGV0YWlscyBmb3Igb25lIGFzcGVjdCBvZiB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGlzIEFQSSBSZXNvdXJjZS4gLS0tIFRoaXMgc3RydWN0IGlzIGludGVuZGVkIGZvciBkaXJlY3QgdXNlIGFzIGFuIGFycmF5IGF0IHRoZSBmaWVsZCBwYXRoIC5zdGF0dXMuY29uZGl0aW9ucy4gIEZvciBleGFtcGxlLCBcbiB0eXBlIEZvb1N0YXR1cyBzdHJ1Y3R7IC8vIFJlcHJlc2VudHMgdGhlIG9ic2VydmF0aW9ucyBvZiBhIGZvbydzIGN1cnJlbnQgc3RhdGUuIC8vIEtub3duIC5zdGF0dXMuY29uZGl0aW9ucy50eXBlIGFyZTogXCJBdmFpbGFibGVcIiwgXCJQcm9ncmVzc2luZ1wiLCBhbmQgXCJEZWdyYWRlZFwiIC8vICtwYXRjaE1lcmdlS2V5PXR5cGUgLy8gK3BhdGNoU3RyYXRlZ3k9bWVyZ2UgLy8gK2xpc3RUeXBlPW1hcCAvLyArbGlzdE1hcEtleT10eXBlIENvbmRpdGlvbnMgW11tZXRhdjEuQ29uZGl0aW9uIGBqc29uOlwiY29uZGl0aW9ucyxvbWl0ZW1wdHlcIiBwYXRjaFN0cmF0ZWd5OlwibWVyZ2VcIiBwYXRjaE1lcmdlS2V5OlwidHlwZVwiIHByb3RvYnVmOlwiYnl0ZXMsMSxyZXAsbmFtZT1jb25kaXRpb25zXCJgIFxuIC8vIG90aGVyIGZpZWxkcyB9IiwicHJvcGVydGllcyI6eyJsYXN0VHJhbnNpdGlvblRpbWUiOnsiZGVzY3JpcHRpb24iOiJsYXN0VHJhbnNpdGlvblRpbWUgaXMgdGhlIGxhc3QgdGltZSB0aGUgY29uZGl0aW9uIHRyYW5zaXRpb25lZCBmcm9tIG9uZSBzdGF0dXMgdG8gYW5vdGhlci4gVGhpcyBzaG91bGQgYmUgd2hlbiB0aGUgdW5kZXJseWluZyBjb25kaXRpb24gY2hhbmdlZC4gIElmIHRoYXQgaXMgbm90IGtub3duLCB0aGVuIHVzaW5nIHRoZSB0aW1lIHdoZW4gdGhlIEFQSSBmaWVsZCBjaGFuZ2VkIGlzIGFjY2VwdGFibGUuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwidHlwZSI6InN0cmluZyJ9LCJtZXNzYWdlIjp7ImRlc2NyaXB0aW9uIjoibWVzc2FnZSBpcyBhIGh1bWFuIHJlYWRhYmxlIG1lc3NhZ2UgaW5kaWNhdGluZyBkZXRhaWxzIGFib3V0IHRoZSB0cmFuc2l0aW9uLiBUaGlzIG1heSBiZSBhbiBlbXB0eSBzdHJpbmcuIiwibWF4TGVuZ3RoIjozMjc2OCwidHlwZSI6InN0cmluZyJ9LCJvYnNlcnZlZEdlbmVyYXRpb24iOnsiZGVzY3JpcHRpb24iOiJvYnNlcnZlZEdlbmVyYXRpb24gcmVwcmVzZW50cyB0aGUgLm1ldGFkYXRhLmdlbmVyYXRpb24gdGhhdCB0aGUgY29uZGl0aW9uIHdhcyBzZXQgYmFzZWQgdXBvbi4gRm9yIGluc3RhbmNlLCBpZiAubWV0YWRhdGEuZ2VuZXJhdGlvbiBpcyBjdXJyZW50bHkgMTIsIGJ1dCB0aGUgLnN0YXR1cy5jb25kaXRpb25zW3hdLm9ic2VydmVkR2VuZXJhdGlvbiBpcyA5LCB0aGUgY29uZGl0aW9uIGlzIG91dCBvZiBkYXRlIHdpdGggcmVzcGVjdCB0byB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgaW5zdGFuY2UuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJyZWFzb24iOnsiZGVzY3JpcHRpb24iOiJyZWFzb24gY29udGFpbnMgYSBwcm9ncmFtbWF0aWMgaWRlbnRpZmllciBpbmRpY2F0aW5nIHRoZSByZWFzb24gZm9yIHRoZSBjb25kaXRpb24ncyBsYXN0IHRyYW5zaXRpb24uIFByb2R1Y2VycyBvZiBzcGVjaWZpYyBjb25kaXRpb24gdHlwZXMgbWF5IGRlZmluZSBleHBlY3RlZCB2YWx1ZXMgYW5kIG1lYW5pbmdzIGZvciB0aGlzIGZpZWxkLCBhbmQgd2hldGhlciB0aGUgdmFsdWVzIGFyZSBjb25zaWRlcmVkIGEgZ3VhcmFudGVlZCBBUEkuIFRoZSB2YWx1ZSBzaG91bGQgYmUgYSBDYW1lbENhc2Ugc3RyaW5nLiBUaGlzIGZpZWxkIG1heSBub3QgYmUgZW1wdHkuIiwibWF4TGVuZ3RoIjoxMDI0LCJtaW5MZW5ndGgiOjEsInBhdHRlcm4iOiJeW0EtWmEtel0oW0EtWmEtejAtOV8sOl0qW0EtWmEtejAtOV9dKT8kIiwidHlwZSI6InN0cmluZyJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJzdGF0dXMgb2YgdGhlIGNvbmRpdGlvbiwgb25lIG9mIFRydWUsIEZhbHNlLCBVbmtub3duLiIsImVudW0iOlsiVHJ1ZSIsIkZhbHNlIiwiVW5rbm93biJdLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJ0eXBlIG9mIGNvbmRpdGlvbiBpbiBDYW1lbENhc2Ugb3IgaW4gZm9vLmV4YW1wbGUuY29tL0NhbWVsQ2FzZS4gLS0tIE1hbnkgLmNvbmRpdGlvbi50eXBlIHZhbHVlcyBhcmUgY29uc2lzdGVudCBhY3Jvc3MgcmVzb3VyY2VzIGxpa2UgQXZhaWxhYmxlLCBidXQgYmVjYXVzZSBhcmJpdHJhcnkgY29uZGl0aW9ucyBjYW4gYmUgdXNlZnVsIChzZWUgLm5vZGUuc3RhdHVzLmNvbmRpdGlvbnMpLCB0aGUgYWJpbGl0eSB0byBkZWNvbmZsaWN0IGlzIGltcG9ydGFudC4gVGhlIHJlZ2V4IGl0IG1hdGNoZXMgaXMgKGRuczExMjNTdWJkb21haW5GbXQvKT8ocXVhbGlmaWVkTmFtZUZtdCkiLCJtYXhMZW5ndGgiOjMxNiwicGF0dGVybiI6Il4oW2EtejAtOV0oWy1hLXowLTldKlthLXowLTldKT8oXFwuW2EtejAtOV0oWy1hLXowLTldKlthLXowLTldKT8pKi8pPygoW0EtWmEtejAtOV1bLUEtWmEtejAtOV8uXSopP1tBLVphLXowLTldKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJsYXN0VHJhbnNpdGlvblRpbWUiLCJtZXNzYWdlIiwicmVhc29uIiwic3RhdHVzIiwidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJub3RBZnRlciI6eyJkZXNjcmlwdGlvbiI6Ik5vdEFmdGVyIGlzIHRoZSB0aW1lIGF0IHdoaWNoIHRoZSBjZXJ0aWZpY2F0ZSBleHBpcmVzIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwidHlwZSI6InN0cmluZyJ9LCJub3RCZWZvcmUiOnsiZGVzY3JpcHRpb24iOiJOb3RCZWZvcmUgaXMgdGhlIHRpbWUgYXQgd2hpY2ggdGhlIGNlcnRpZmljYXRlIHN0YXJ0cyBiZWluZyB2YWxpZCIsImZvcm1hdCI6ImRhdGUtdGltZSIsInR5cGUiOiJzdHJpbmcifSwicmVhZHkiOnsiZGVzY3JpcHRpb24iOiJSZWFkeSBpcyBhIGJvb2xlYW4gdGhhdCBzcGVjaWZpZXMgaWYgdGhlIGNlcnRpZmljYXRlIGlzIHJlYWR5IHRvIGJlIHVzZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwic2VydmVkIjp0cnVlLCJzdG9yYWdlIjp0cnVlLCJzdWJyZXNvdXJjZXMiOnsic3RhdHVzIjp7fX19XX0sInN0YXR1cyI6eyJhY2NlcHRlZE5hbWVzIjp7ImtpbmQiOiIiLCJwbHVyYWwiOiIifSwiY29uZGl0aW9ucyI6bnVsbCwic3RvcmVkVmVyc2lvbnMiOm51bGx9fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjExLjMifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsIm5hbWUiOiJkaXNjb3ZlcnlzZXJ2aWNlcy5vcGVyYXRvci5tYXJpbjNyLjNzY2FsZS5uZXQifSwic3BlYyI6eyJncm91cCI6Im9wZXJhdG9yLm1hcmluM3IuM3NjYWxlLm5ldCIsIm5hbWVzIjp7ImtpbmQiOiJEaXNjb3ZlcnlTZXJ2aWNlIiwibGlzdEtpbmQiOiJEaXNjb3ZlcnlTZXJ2aWNlTGlzdCIsInBsdXJhbCI6ImRpc2NvdmVyeXNlcnZpY2VzIiwic2luZ3VsYXIiOiJkaXNjb3ZlcnlzZXJ2aWNlIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFhbHBoYTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiRGlzY292ZXJ5U2VydmljZSByZXByZXNlbnRzIGFuIGVudm95IGRpc2NvdmVyeSBzZXJ2aWNlIHNlcnZlci4gT25seSBvbmUgaW5zdGFuY2UgcGVyIG5hbWVzcGFjZSBpcyBjdXJyZW50bHkgc3VwcG9ydGVkLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC4gU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kIG1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLiBTZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by4gQ2Fubm90IGJlIHVwZGF0ZWQuIEluIENhbWVsQ2FzZS4gTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiRGlzY292ZXJ5U2VydmljZVNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBEaXNjb3ZlcnlTZXJ2aWNlIiwicHJvcGVydGllcyI6eyJkZWJ1ZyI6eyJkZXNjcmlwdGlvbiI6IkRlYnVnIGVuYWJsZXMgZGVidWdnaW5nIGxvZyBsZXZlbCBmb3IgdGhlIGRpc2NvdmVyeSBzZXJ2aWNlIGNvbnRyb2xsZXJzLiBJdCBpcyBzYWZlIHRvIHVzZSBzaW5jZSBzZWNyZXQgZGF0YSBpcyBuZXZlciBzaG93biBpbiB0aGUgbG9ncy4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJpbWFnZSI6eyJkZXNjcmlwdGlvbiI6IkltYWdlIGhvbGRzIHRoZSBpbWFnZSB0byB1c2UgZm9yIHRoZSBkaXNjb3Zlcnkgc2VydmljZSBEZXBsb3ltZW50IiwidHlwZSI6InN0cmluZyJ9LCJtZXRyaWNzUG9ydCI6eyJkZXNjcmlwdGlvbiI6Ik1ldHJpY3NQb3J0IGlzIHRoZSBwb3J0IHdoZXJlIG1ldHJpY3MgYXJlIHNlcnZlZC4gRGVmYXVsdHMgdG8gODM4My4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInBraUNvbmZnIjp7ImRlc2NyaXB0aW9uIjoiUEtJQ29uZmlnIGhhcyBjb25maWd1cmF0aW9uIGZvciB0aGUgUEtJIHRoYXQgbWFyaW4zciBtYW5hZ2VzIGZvciB0aGUgZGlmZmVyZW50IGNlcnRpZmljYXRlcyBpdCByZXF1aXJlcyIsInByb3BlcnRpZXMiOnsicm9vdENlcnRpZmljYXRlQXV0aG9yaXR5Ijp7ImRlc2NyaXB0aW9uIjoiQ2VydGlmaWNhdGVPcHRpb25zIHNwZWNpZmllcyBvcHRpb25zIHRvIGdlbmVyYXRlIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUgdXNlZCBib3RoIGZvciB0aGUgeERTIHNlcnZlciBhbmQgdGhlIG11dGF0aW5nIHdlYmhvb2sgc2VydmVyLiIsInByb3BlcnRpZXMiOnsiZHVyYXRpb24iOnsidHlwZSI6InN0cmluZyJ9LCJzZWNyZXROYW1lIjp7InR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImR1cmF0aW9uIiwic2VjcmV0TmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInNlcnZlckNlcnRpZmljYXRlIjp7ImRlc2NyaXB0aW9uIjoiQ2VydGlmaWNhdGVPcHRpb25zIHNwZWNpZmllcyBvcHRpb25zIHRvIGdlbmVyYXRlIHRoZSBzZXJ2ZXIgY2VydGlmaWNhdGUgdXNlZCBib3RoIGZvciB0aGUgeERTIHNlcnZlciBhbmQgdGhlIG11dGF0aW5nIHdlYmhvb2sgc2VydmVyLiIsInByb3BlcnRpZXMiOnsiZHVyYXRpb24iOnsidHlwZSI6InN0cmluZyJ9LCJzZWNyZXROYW1lIjp7InR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImR1cmF0aW9uIiwic2VjcmV0TmFtZSJdLCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJyb290Q2VydGlmaWNhdGVBdXRob3JpdHkiLCJzZXJ2ZXJDZXJ0aWZpY2F0ZSJdLCJ0eXBlIjoib2JqZWN0In0sInBvZFByaW9yaXR5Q2xhc3MiOnsiZGVzY3JpcHRpb24iOiJQcmlvcml0eUNsYXNzIHRvIGFzc2lnbiB0aGUgZGlzY292ZXJ5IHNlcnZpY2UgUG9kIHRvIiwidHlwZSI6InN0cmluZyJ9LCJwcm9iZVBvcnQiOnsiZGVzY3JpcHRpb24iOiJQcm9iZVBvcnQgaXMgdGhlIHBvcnQgd2hlcmUgaGVhbHRoeiBlbmRwb2ludCBpcyBzZXJ2ZWQuIERlZmF1bHRzIHRvIDgzODQuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgaG9sZHMgdGhlIFJlc291cmNlIFJlcXVpcmVtZW50cyB0byB1c2UgZm9yIHRoZSBkaXNjb3Zlcnkgc2VydmljZSBEZXBsb3ltZW50LiBXaGVuIG5vdCBzZXQgaXQgZGVmYXVsdHMgdG8gbm8gcmVzb3VyY2UgcmVxdWVzdHMgbm9yIGxpbWl0cy4gQ1BVIGFuZCBNZW1vcnkgcmVzb3VyY2VzIGFyZSBzdXBwb3J0ZWQuIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLCB0aGF0IGFyZSB1c2VkIGJ5IHRoaXMgY29udGFpbmVyLiBcbiBUaGlzIGlzIGFuIGFscGhhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyB0aGUgRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuIFxuIFRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZiB0aGUgUG9kIHdoZXJlIHRoaXMgZmllbGQgaXMgdXNlZC4gSXQgbWFrZXMgdGhhdCByZXNvdXJjZSBhdmFpbGFibGUgaW5zaWRlIGEgY29udGFpbmVyLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC1tYXAta2V5cyI6WyJuYW1lIl0sIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJtYXAifSwibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLiBJZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsIG90aGVyd2lzZSB0byBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlLiBSZXF1ZXN0cyBjYW5ub3QgZXhjZWVkIExpbWl0cy4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNlcnZpY2VDb25maWciOnsiZGVzY3JpcHRpb24iOiJTZXJ2aWNlQ29uZmlnIGNvbmZpZ3VyZXMgdGhlIHdheSB0aGUgRGlzY292ZXJ5U2VydmljZSBlbmRwb2ludHMgYXJlIGV4cG9zZWQiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiU2VydmljZVR5cGUgaXMgYW4gZW51bSB3aXRoIHRoZSBhdmFpbGFibGUgZGlzY292ZXJ5IHNlcnZpY2UgU2VydmljZSB0eXBlcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwieGRzU2VydmVyUG9ydCI6eyJkZXNjcmlwdGlvbiI6Ilhkc1NlcnZlclBvcnQgaXMgdGhlIHBvcnQgd2hlcmUgdGhlIHhEUyBzZXJ2ZXIgbGlzdGVucy4gRGVmYXVsdHMgdG8gMTgwMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJEaXNjb3ZlcnlTZXJ2aWNlU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIERpc2NvdmVyeVNlcnZpY2UiLCJwcm9wZXJ0aWVzIjp7ImRlcGxveW1lbnROYW1lIjp7InR5cGUiOiJzdHJpbmcifSwiZGVwbG95bWVudFN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IkRlcGxveW1lbnRTdGF0dXMgaXMgdGhlIG1vc3QgcmVjZW50bHkgb2JzZXJ2ZWQgc3RhdHVzIG9mIHRoZSBEZXBsb3ltZW50LiIsInByb3BlcnRpZXMiOnsiYXZhaWxhYmxlUmVwbGljYXMiOnsiZGVzY3JpcHRpb24iOiJUb3RhbCBudW1iZXIgb2YgYXZhaWxhYmxlIHBvZHMgKHJlYWR5IGZvciBhdCBsZWFzdCBtaW5SZWFkeVNlY29uZHMpIHRhcmdldGVkIGJ5IHRoaXMgZGVwbG95bWVudC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sImNvbGxpc2lvbkNvdW50Ijp7ImRlc2NyaXB0aW9uIjoiQ291bnQgb2YgaGFzaCBjb2xsaXNpb25zIGZvciB0aGUgRGVwbG95bWVudC4gVGhlIERlcGxveW1lbnQgY29udHJvbGxlciB1c2VzIHRoaXMgZmllbGQgYXMgYSBjb2xsaXNpb24gYXZvaWRhbmNlIG1lY2hhbmlzbSB3aGVuIGl0IG5lZWRzIHRvIGNyZWF0ZSB0aGUgbmFtZSBmb3IgdGhlIG5ld2VzdCBSZXBsaWNhU2V0LiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiY29uZGl0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgdGhlIGxhdGVzdCBhdmFpbGFibGUgb2JzZXJ2YXRpb25zIG9mIGEgZGVwbG95bWVudCdzIGN1cnJlbnQgc3RhdGUuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJEZXBsb3ltZW50Q29uZGl0aW9uIGRlc2NyaWJlcyB0aGUgc3RhdGUgb2YgYSBkZXBsb3ltZW50IGF0IGEgY2VydGFpbiBwb2ludC4iLCJwcm9wZXJ0aWVzIjp7Imxhc3RUcmFuc2l0aW9uVGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3QgdGltZSB0aGUgY29uZGl0aW9uIHRyYW5zaXRpb25lZCBmcm9tIG9uZSBzdGF0dXMgdG8gYW5vdGhlci4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RVcGRhdGVUaW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhc3QgdGltZSB0aGlzIGNvbmRpdGlvbiB3YXMgdXBkYXRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJ0eXBlIjoic3RyaW5nIn0sIm1lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJBIGh1bWFuIHJlYWRhYmxlIG1lc3NhZ2UgaW5kaWNhdGluZyBkZXRhaWxzIGFib3V0IHRoZSB0cmFuc2l0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwicmVhc29uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHJlYXNvbiBmb3IgdGhlIGNvbmRpdGlvbidzIGxhc3QgdHJhbnNpdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IlN0YXR1cyBvZiB0aGUgY29uZGl0aW9uLCBvbmUgb2YgVHJ1ZSwgRmFsc2UsIFVua25vd24uIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiVHlwZSBvZiBkZXBsb3ltZW50IGNvbmRpdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJzdGF0dXMiLCJ0eXBlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm9ic2VydmVkR2VuZXJhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBnZW5lcmF0aW9uIG9ic2VydmVkIGJ5IHRoZSBkZXBsb3ltZW50IGNvbnRyb2xsZXIuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJyZWFkeVJlcGxpY2FzIjp7ImRlc2NyaXB0aW9uIjoicmVhZHlSZXBsaWNhcyBpcyB0aGUgbnVtYmVyIG9mIHBvZHMgdGFyZ2V0ZWQgYnkgdGhpcyBEZXBsb3ltZW50IHdpdGggYSBSZWFkeSBDb25kaXRpb24uIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRvdGFsIG51bWJlciBvZiBub24tdGVybWluYXRlZCBwb2RzIHRhcmdldGVkIGJ5IHRoaXMgZGVwbG95bWVudCAodGhlaXIgbGFiZWxzIG1hdGNoIHRoZSBzZWxlY3RvcikuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1bmF2YWlsYWJsZVJlcGxpY2FzIjp7ImRlc2NyaXB0aW9uIjoiVG90YWwgbnVtYmVyIG9mIHVuYXZhaWxhYmxlIHBvZHMgdGFyZ2V0ZWQgYnkgdGhpcyBkZXBsb3ltZW50LiBUaGlzIGlzIHRoZSB0b3RhbCBudW1iZXIgb2YgcG9kcyB0aGF0IGFyZSBzdGlsbCByZXF1aXJlZCBmb3IgdGhlIGRlcGxveW1lbnQgdG8gaGF2ZSAxMDAlIGF2YWlsYWJsZSBjYXBhY2l0eS4gVGhleSBtYXkgZWl0aGVyIGJlIHBvZHMgdGhhdCBhcmUgcnVubmluZyBidXQgbm90IHlldCBhdmFpbGFibGUgb3IgcG9kcyB0aGF0IHN0aWxsIGhhdmUgbm90IGJlZW4gY3JlYXRlZC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInVwZGF0ZWRSZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRvdGFsIG51bWJlciBvZiBub24tdGVybWluYXRlZCBwb2RzIHRhcmdldGVkIGJ5IHRoaXMgZGVwbG95bWVudCB0aGF0IGhhdmUgdGhlIGRlc2lyZWQgdGVtcGxhdGUgc3BlYy4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpudWxsLCJzdG9yZWRWZXJzaW9ucyI6bnVsbH19 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjExLjMifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsIm5hbWUiOiJlbnZveWRlcGxveW1lbnRzLm9wZXJhdG9yLm1hcmluM3IuM3NjYWxlLm5ldCJ9LCJzcGVjIjp7Imdyb3VwIjoib3BlcmF0b3IubWFyaW4zci4zc2NhbGUubmV0IiwibmFtZXMiOnsia2luZCI6IkVudm95RGVwbG95bWVudCIsImxpc3RLaW5kIjoiRW52b3lEZXBsb3ltZW50TGlzdCIsInBsdXJhbCI6ImVudm95ZGVwbG95bWVudHMiLCJzaW5ndWxhciI6ImVudm95ZGVwbG95bWVudCJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYWxwaGExIiwic2NoZW1hIjp7Im9wZW5BUElWM1NjaGVtYSI6eyJkZXNjcmlwdGlvbiI6IkVudm95RGVwbG95bWVudCBpcyBhIHJlc291cmNlIHRvIGRlcGxveSBhbmQgbWFuYWdlIGEgS3ViZXJuZXRlcyBEZXBsb3ltZW50IG9mIEVudm95IFBvZHMuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LiBTZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmQgbWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuIFNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLiBDYW5ub3QgYmUgdXBkYXRlZC4gSW4gQ2FtZWxDYXNlLiBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJFbnZveURlcGxveW1lbnRTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgRW52b3lEZXBsb3ltZW50IiwicHJvcGVydGllcyI6eyJhZG1pbkFjY2Vzc0xvZ1BhdGgiOnsiZGVzY3JpcHRpb24iOiJDb25maWd1cmVzIGVudm95J3MgYWRtaW4gYWNjZXNzIGxvZyBwYXRoLiBEZWZhdWx0cyB0byAvZGV2L251bGwuIiwidHlwZSI6InN0cmluZyJ9LCJhZG1pblBvcnQiOnsiZGVzY3JpcHRpb24iOiJDb25maWd1cmVzIGVudm95J3MgYWRtaW4gcG9ydC4gRGVmYXVsdHMgdG8gOTkwMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sImFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiQWZmaW5pdHkgY29uZmlndXJhdGlvbiBmb3IgdGhlIGVudm95IHBvZHMiLCJwcm9wZXJ0aWVzIjp7Im5vZGVBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBub2RlIGFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgZm9yIHRoZSBwb2QuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnkgdGhlIGFmZmluaXR5IGV4cHJlc3Npb25zIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkLCBidXQgaXQgbWF5IGNob29zZSBhIG5vZGUgdGhhdCB2aW9sYXRlcyBvbmUgb3IgbW9yZSBvZiB0aGUgZXhwcmVzc2lvbnMuIFRoZSBub2RlIHRoYXQgaXMgbW9zdCBwcmVmZXJyZWQgaXMgdGhlIG9uZSB3aXRoIHRoZSBncmVhdGVzdCBzdW0gb2Ygd2VpZ2h0cywgaS5lLiBmb3IgZWFjaCBub2RlIHRoYXQgbWVldHMgYWxsIG9mIHRoZSBzY2hlZHVsaW5nIHJlcXVpcmVtZW50cyAocmVzb3VyY2UgcmVxdWVzdCwgcmVxdWlyZWREdXJpbmdTY2hlZHVsaW5nIGFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSwgY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nIFwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIG1hdGNoRXhwcmVzc2lvbnM7IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBbiBlbXB0eSBwcmVmZXJyZWQgc2NoZWR1bGluZyB0ZXJtIG1hdGNoZXMgYWxsIG9iamVjdHMgd2l0aCBpbXBsaWNpdCB3ZWlnaHQgMCAoaS5lLiBpdCdzIGEgbm8tb3ApLiBBIG51bGwgcHJlZmVycmVkIHNjaGVkdWxpbmcgdGVybSBtYXRjaGVzIG5vIG9iamVjdHMgKGkuZS4gaXMgYWxzbyBhIG5vLW9wKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcmVuY2UiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGxhYmVscy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hGaWVsZHMiOnsiZGVzY3JpcHRpb24iOiJBIGxpc3Qgb2Ygbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudHMgYnkgbm9kZSdzIGZpZWxkcy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwid2VpZ2h0Ijp7ImRlc2NyaXB0aW9uIjoiV2VpZ2h0IGFzc29jaWF0ZWQgd2l0aCBtYXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBub2RlU2VsZWN0b3JUZXJtLCBpbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicHJlZmVyZW5jZSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBhcmUgbm90IG1ldCBhdCBzY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuIElmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGFuIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiIsInByb3BlcnRpZXMiOnsibm9kZVNlbGVjdG9yVGVybXMiOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgdGVybXMuIFRoZSB0ZXJtcyBhcmUgT1JlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbnVsbCBvciBlbXB0eSBub2RlIHNlbGVjdG9yIHRlcm0gbWF0Y2hlcyBubyBvYmplY3RzLiBUaGUgcmVxdWlyZW1lbnRzIG9mIHRoZW0gYXJlIEFORGVkLiBUaGUgVG9wb2xvZ3lTZWxlY3RvclRlcm0gdHlwZSBpbXBsZW1lbnRzIGEgc3Vic2V0IG9mIHRoZSBOb2RlU2VsZWN0b3JUZXJtLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgbGFiZWxzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaEZpZWxkcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgZmllbGRzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMsIERvZXNOb3RFeGlzdC4gR3QsIGFuZCBMdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6IkFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgaGF2ZSBhIHNpbmdsZSBlbGVtZW50LCB3aGljaCB3aWxsIGJlIGludGVycHJldGVkIGFzIGFuIGludGVnZXIuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbIm5vZGVTZWxlY3RvclRlcm1zIl0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifX0sInR5cGUiOiJvYmplY3QifSwicG9kQWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJEZXNjcmliZXMgcG9kIGFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgKGUuZy4gY28tbG9jYXRlIHRoaXMgcG9kIGluIHRoZSBzYW1lIG5vZGUsIHpvbmUsIGV0Yy4gYXMgc29tZSBvdGhlciBwb2QocykpLiIsInByb3BlcnRpZXMiOnsicHJlZmVycmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgc2NoZWR1bGVyIHdpbGwgcHJlZmVyIHRvIHNjaGVkdWxlIHBvZHMgdG8gbm9kZXMgdGhhdCBzYXRpc2Z5IHRoZSBhZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksIGNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZyBcIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgaGFzIHBvZHMgd2hpY2ggbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm07IHRoZSBub2RlKHMpIHdpdGggdGhlIGhpZ2hlc3Qgc3VtIGFyZSB0aGUgbW9zdCBwcmVmZXJyZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJUaGUgd2VpZ2h0cyBvZiBhbGwgb2YgdGhlIG1hdGNoZWQgV2VpZ2h0ZWRQb2RBZmZpbml0eVRlcm0gZmllbGRzIGFyZSBhZGRlZCBwZXItbm9kZSB0byBmaW5kIHRoZSBtb3N0IHByZWZlcnJlZCBub2RlKHMpIiwicHJvcGVydGllcyI6eyJwb2RBZmZpbml0eVRlcm0iOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBwb2QgYWZmaW5pdHkgdGVybSwgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIHdlaWdodC4iLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4gSWYgaXQncyBudWxsLCB0aGlzIFBvZEFmZmluaXR5VGVybSBtYXRjaGVzIHdpdGggbm8gUG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sIm1hdGNoTGFiZWxLZXlzIjp7ImRlc2NyaXB0aW9uIjoiTWF0Y2hMYWJlbEtleXMgaXMgYSBzZXQgb2YgcG9kIGxhYmVsIGtleXMgdG8gc2VsZWN0IHdoaWNoIHBvZHMgd2lsbCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24uIFRoZSBrZXlzIGFyZSB1c2VkIHRvIGxvb2t1cCB2YWx1ZXMgZnJvbSB0aGUgaW5jb21pbmcgcG9kIGxhYmVscywgdGhvc2Uga2V5LXZhbHVlIGxhYmVscyBhcmUgbWVyZ2VkIHdpdGggYExhYmVsU2VsZWN0b3JgIGFzIGBrZXkgaW4gKHZhbHVlKWAgdG8gc2VsZWN0IHRoZSBncm91cCBvZiBleGlzdGluZyBwb2RzIHdoaWNoIHBvZHMgd2lsbCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24gZm9yIHRoZSBpbmNvbWluZyBwb2QncyBwb2QgKGFudGkpIGFmZmluaXR5LiBLZXlzIHRoYXQgZG9uJ3QgZXhpc3QgaW4gdGhlIGluY29taW5nIHBvZCBsYWJlbHMgd2lsbCBiZSBpZ25vcmVkLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBlbXB0eS4gVGhlIHNhbWUga2V5IGlzIGZvcmJpZGRlbiB0byBleGlzdCBpbiBib3RoIE1hdGNoTGFiZWxLZXlzIGFuZCBMYWJlbFNlbGVjdG9yLiBBbHNvLCBNYXRjaExhYmVsS2V5cyBjYW5ub3QgYmUgc2V0IHdoZW4gTGFiZWxTZWxlY3RvciBpc24ndCBzZXQuIFRoaXMgaXMgYW4gYWxwaGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIE1hdGNoTGFiZWxLZXlzSW5Qb2RBZmZpbml0eSBmZWF0dXJlIGdhdGUuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoiYXRvbWljIn0sIm1pc21hdGNoTGFiZWxLZXlzIjp7ImRlc2NyaXB0aW9uIjoiTWlzbWF0Y2hMYWJlbEtleXMgaXMgYSBzZXQgb2YgcG9kIGxhYmVsIGtleXMgdG8gc2VsZWN0IHdoaWNoIHBvZHMgd2lsbCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24uIFRoZSBrZXlzIGFyZSB1c2VkIHRvIGxvb2t1cCB2YWx1ZXMgZnJvbSB0aGUgaW5jb21pbmcgcG9kIGxhYmVscywgdGhvc2Uga2V5LXZhbHVlIGxhYmVscyBhcmUgbWVyZ2VkIHdpdGggYExhYmVsU2VsZWN0b3JgIGFzIGBrZXkgbm90aW4gKHZhbHVlKWAgdG8gc2VsZWN0IHRoZSBncm91cCBvZiBleGlzdGluZyBwb2RzIHdoaWNoIHBvZHMgd2lsbCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24gZm9yIHRoZSBpbmNvbWluZyBwb2QncyBwb2QgKGFudGkpIGFmZmluaXR5LiBLZXlzIHRoYXQgZG9uJ3QgZXhpc3QgaW4gdGhlIGluY29taW5nIHBvZCBsYWJlbHMgd2lsbCBiZSBpZ25vcmVkLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBlbXB0eS4gVGhlIHNhbWUga2V5IGlzIGZvcmJpZGRlbiB0byBleGlzdCBpbiBib3RoIE1pc21hdGNoTGFiZWxLZXlzIGFuZCBMYWJlbFNlbGVjdG9yLiBBbHNvLCBNaXNtYXRjaExhYmVsS2V5cyBjYW5ub3QgYmUgc2V0IHdoZW4gTGFiZWxTZWxlY3RvciBpc24ndCBzZXQuIFRoaXMgaXMgYW4gYWxwaGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIE1hdGNoTGFiZWxLZXlzSW5Qb2RBZmZpbml0eSBmZWF0dXJlIGdhdGUuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoiYXRvbWljIn0sIm5hbWVzcGFjZVNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIHRoZSBzZXQgb2YgbmFtZXNwYWNlcyB0aGF0IHRoZSB0ZXJtIGFwcGxpZXMgdG8uIFRoZSB0ZXJtIGlzIGFwcGxpZWQgdG8gdGhlIHVuaW9uIG9mIHRoZSBuYW1lc3BhY2VzIHNlbGVjdGVkIGJ5IHRoaXMgZmllbGQgYW5kIHRoZSBvbmVzIGxpc3RlZCBpbiB0aGUgbmFtZXNwYWNlcyBmaWVsZC4gbnVsbCBzZWxlY3RvciBhbmQgbnVsbCBvciBlbXB0eSBuYW1lc3BhY2VzIGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiLiBBbiBlbXB0eSBzZWxlY3RvciAoe30pIG1hdGNoZXMgYWxsIG5hbWVzcGFjZXMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgYSBzdGF0aWMgbGlzdCBvZiBuYW1lc3BhY2UgbmFtZXMgdGhhdCB0aGUgdGVybSBhcHBsaWVzIHRvLiBUaGUgdGVybSBpcyBhcHBsaWVkIHRvIHRoZSB1bmlvbiBvZiB0aGUgbmFtZXNwYWNlcyBsaXN0ZWQgaW4gdGhpcyBmaWVsZCBhbmQgdGhlIG9uZXMgc2VsZWN0ZWQgYnkgbmFtZXNwYWNlU2VsZWN0b3IuIG51bGwgb3IgZW1wdHkgbmFtZXNwYWNlcyBsaXN0IGFuZCBudWxsIG5hbWVzcGFjZVNlbGVjdG9yIG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIi4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ3ZWlnaHQiOnsiZGVzY3JpcHRpb24iOiJ3ZWlnaHQgYXNzb2NpYXRlZCB3aXRoIG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybSwgaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInBvZEFmZmluaXR5VGVybSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFmZmluaXR5IHJlcXVpcmVtZW50cyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCBhcmUgbm90IG1ldCBhdCBzY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuIElmIHRoZSBhZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGEgcG9kIGxhYmVsIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiBXaGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBlbGVtZW50cywgdGhlIGxpc3RzIG9mIG5vZGVzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb2RBZmZpbml0eVRlcm0gYXJlIGludGVyc2VjdGVkLCBpLmUuIGFsbCB0ZXJtcyBtdXN0IGJlIHNhdGlzZmllZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkRlZmluZXMgYSBzZXQgb2YgcG9kcyAobmFtZWx5IHRob3NlIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIHJlbGF0aXZlIHRvIHRoZSBnaXZlbiBuYW1lc3BhY2UocykpIHRoYXQgdGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCwgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSBcdTAwM2N0b3BvbG9neUtleVx1MDAzZSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYSBwb2Qgb2YgdGhlIHNldCBvZiBwb2RzIGlzIHJ1bm5pbmciLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4gSWYgaXQncyBudWxsLCB0aGlzIFBvZEFmZmluaXR5VGVybSBtYXRjaGVzIHdpdGggbm8gUG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sIm1hdGNoTGFiZWxLZXlzIjp7ImRlc2NyaXB0aW9uIjoiTWF0Y2hMYWJlbEtleXMgaXMgYSBzZXQgb2YgcG9kIGxhYmVsIGtleXMgdG8gc2VsZWN0IHdoaWNoIHBvZHMgd2lsbCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24uIFRoZSBrZXlzIGFyZSB1c2VkIHRvIGxvb2t1cCB2YWx1ZXMgZnJvbSB0aGUgaW5jb21pbmcgcG9kIGxhYmVscywgdGhvc2Uga2V5LXZhbHVlIGxhYmVscyBhcmUgbWVyZ2VkIHdpdGggYExhYmVsU2VsZWN0b3JgIGFzIGBrZXkgaW4gKHZhbHVlKWAgdG8gc2VsZWN0IHRoZSBncm91cCBvZiBleGlzdGluZyBwb2RzIHdoaWNoIHBvZHMgd2lsbCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24gZm9yIHRoZSBpbmNvbWluZyBwb2QncyBwb2QgKGFudGkpIGFmZmluaXR5LiBLZXlzIHRoYXQgZG9uJ3QgZXhpc3QgaW4gdGhlIGluY29taW5nIHBvZCBsYWJlbHMgd2lsbCBiZSBpZ25vcmVkLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBlbXB0eS4gVGhlIHNhbWUga2V5IGlzIGZvcmJpZGRlbiB0byBleGlzdCBpbiBib3RoIE1hdGNoTGFiZWxLZXlzIGFuZCBMYWJlbFNlbGVjdG9yLiBBbHNvLCBNYXRjaExhYmVsS2V5cyBjYW5ub3QgYmUgc2V0IHdoZW4gTGFiZWxTZWxlY3RvciBpc24ndCBzZXQuIFRoaXMgaXMgYW4gYWxwaGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIE1hdGNoTGFiZWxLZXlzSW5Qb2RBZmZpbml0eSBmZWF0dXJlIGdhdGUuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoiYXRvbWljIn0sIm1pc21hdGNoTGFiZWxLZXlzIjp7ImRlc2NyaXB0aW9uIjoiTWlzbWF0Y2hMYWJlbEtleXMgaXMgYSBzZXQgb2YgcG9kIGxhYmVsIGtleXMgdG8gc2VsZWN0IHdoaWNoIHBvZHMgd2lsbCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24uIFRoZSBrZXlzIGFyZSB1c2VkIHRvIGxvb2t1cCB2YWx1ZXMgZnJvbSB0aGUgaW5jb21pbmcgcG9kIGxhYmVscywgdGhvc2Uga2V5LXZhbHVlIGxhYmVscyBhcmUgbWVyZ2VkIHdpdGggYExhYmVsU2VsZWN0b3JgIGFzIGBrZXkgbm90aW4gKHZhbHVlKWAgdG8gc2VsZWN0IHRoZSBncm91cCBvZiBleGlzdGluZyBwb2RzIHdoaWNoIHBvZHMgd2lsbCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24gZm9yIHRoZSBpbmNvbWluZyBwb2QncyBwb2QgKGFudGkpIGFmZmluaXR5LiBLZXlzIHRoYXQgZG9uJ3QgZXhpc3QgaW4gdGhlIGluY29taW5nIHBvZCBsYWJlbHMgd2lsbCBiZSBpZ25vcmVkLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBlbXB0eS4gVGhlIHNhbWUga2V5IGlzIGZvcmJpZGRlbiB0byBleGlzdCBpbiBib3RoIE1pc21hdGNoTGFiZWxLZXlzIGFuZCBMYWJlbFNlbGVjdG9yLiBBbHNvLCBNaXNtYXRjaExhYmVsS2V5cyBjYW5ub3QgYmUgc2V0IHdoZW4gTGFiZWxTZWxlY3RvciBpc24ndCBzZXQuIFRoaXMgaXMgYW4gYWxwaGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIE1hdGNoTGFiZWxLZXlzSW5Qb2RBZmZpbml0eSBmZWF0dXJlIGdhdGUuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoiYXRvbWljIn0sIm5hbWVzcGFjZVNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIHRoZSBzZXQgb2YgbmFtZXNwYWNlcyB0aGF0IHRoZSB0ZXJtIGFwcGxpZXMgdG8uIFRoZSB0ZXJtIGlzIGFwcGxpZWQgdG8gdGhlIHVuaW9uIG9mIHRoZSBuYW1lc3BhY2VzIHNlbGVjdGVkIGJ5IHRoaXMgZmllbGQgYW5kIHRoZSBvbmVzIGxpc3RlZCBpbiB0aGUgbmFtZXNwYWNlcyBmaWVsZC4gbnVsbCBzZWxlY3RvciBhbmQgbnVsbCBvciBlbXB0eSBuYW1lc3BhY2VzIGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiLiBBbiBlbXB0eSBzZWxlY3RvciAoe30pIG1hdGNoZXMgYWxsIG5hbWVzcGFjZXMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgYSBzdGF0aWMgbGlzdCBvZiBuYW1lc3BhY2UgbmFtZXMgdGhhdCB0aGUgdGVybSBhcHBsaWVzIHRvLiBUaGUgdGVybSBpcyBhcHBsaWVkIHRvIHRoZSB1bmlvbiBvZiB0aGUgbmFtZXNwYWNlcyBsaXN0ZWQgaW4gdGhpcyBmaWVsZCBhbmQgdGhlIG9uZXMgc2VsZWN0ZWQgYnkgbmFtZXNwYWNlU2VsZWN0b3IuIG51bGwgb3IgZW1wdHkgbmFtZXNwYWNlcyBsaXN0IGFuZCBudWxsIG5hbWVzcGFjZVNlbGVjdG9yIG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIi4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwicG9kQW50aUFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiRGVzY3JpYmVzIHBvZCBhbnRpLWFmZmluaXR5IHNjaGVkdWxpbmcgcnVsZXMgKGUuZy4gYXZvaWQgcHV0dGluZyB0aGlzIHBvZCBpbiB0aGUgc2FtZSBub2RlLCB6b25lLCBldGMuIGFzIHNvbWUgb3RoZXIgcG9kKHMpKS4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcnJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHNjaGVkdWxlciB3aWxsIHByZWZlciB0byBzY2hlZHVsZSBwb2RzIHRvIG5vZGVzIHRoYXQgc2F0aXNmeSB0aGUgYW50aS1hZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2UgYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzIG1vc3QgcHJlZmVycmVkIGlzIHRoZSBvbmUgd2l0aCB0aGUgZ3JlYXRlc3Qgc3VtIG9mIHdlaWdodHMsIGkuZS4gZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlIHJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhbnRpLWFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSwgY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nIFwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBoYXMgcG9kcyB3aGljaCBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIHBvZEFmZmluaXR5VGVybTsgdGhlIG5vZGUocykgd2l0aCB0aGUgaGlnaGVzdCBzdW0gYXJlIHRoZSBtb3N0IHByZWZlcnJlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSB3ZWlnaHRzIG9mIGFsbCBvZiB0aGUgbWF0Y2hlZCBXZWlnaHRlZFBvZEFmZmluaXR5VGVybSBmaWVsZHMgYXJlIGFkZGVkIHBlci1ub2RlIHRvIGZpbmQgdGhlIG1vc3QgcHJlZmVycmVkIG5vZGUocykiLCJwcm9wZXJ0aWVzIjp7InBvZEFmZmluaXR5VGVybSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkLiBBIHBvZCBhZmZpbml0eSB0ZXJtLCBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgd2VpZ2h0LiIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMsIGluIHRoaXMgY2FzZSBwb2RzLiBJZiBpdCdzIG51bGwsIHRoaXMgUG9kQWZmaW5pdHlUZXJtIG1hdGNoZXMgd2l0aCBubyBQb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwibWF0Y2hMYWJlbEtleXMiOnsiZGVzY3JpcHRpb24iOiJNYXRjaExhYmVsS2V5cyBpcyBhIHNldCBvZiBwb2QgbGFiZWwga2V5cyB0byBzZWxlY3Qgd2hpY2ggcG9kcyB3aWxsIGJlIHRha2VuIGludG8gY29uc2lkZXJhdGlvbi4gVGhlIGtleXMgYXJlIHVzZWQgdG8gbG9va3VwIHZhbHVlcyBmcm9tIHRoZSBpbmNvbWluZyBwb2QgbGFiZWxzLCB0aG9zZSBrZXktdmFsdWUgbGFiZWxzIGFyZSBtZXJnZWQgd2l0aCBgTGFiZWxTZWxlY3RvcmAgYXMgYGtleSBpbiAodmFsdWUpYCB0byBzZWxlY3QgdGhlIGdyb3VwIG9mIGV4aXN0aW5nIHBvZHMgd2hpY2ggcG9kcyB3aWxsIGJlIHRha2VuIGludG8gY29uc2lkZXJhdGlvbiBmb3IgdGhlIGluY29taW5nIHBvZCdzIHBvZCAoYW50aSkgYWZmaW5pdHkuIEtleXMgdGhhdCBkb24ndCBleGlzdCBpbiB0aGUgaW5jb21pbmcgcG9kIGxhYmVscyB3aWxsIGJlIGlnbm9yZWQuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGVtcHR5LiBUaGUgc2FtZSBrZXkgaXMgZm9yYmlkZGVuIHRvIGV4aXN0IGluIGJvdGggTWF0Y2hMYWJlbEtleXMgYW5kIExhYmVsU2VsZWN0b3IuIEFsc28sIE1hdGNoTGFiZWxLZXlzIGNhbm5vdCBiZSBzZXQgd2hlbiBMYWJlbFNlbGVjdG9yIGlzbid0IHNldC4gVGhpcyBpcyBhbiBhbHBoYSBmaWVsZCBhbmQgcmVxdWlyZXMgZW5hYmxpbmcgTWF0Y2hMYWJlbEtleXNJblBvZEFmZmluaXR5IGZlYXR1cmUgZ2F0ZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJhdG9taWMifSwibWlzbWF0Y2hMYWJlbEtleXMiOnsiZGVzY3JpcHRpb24iOiJNaXNtYXRjaExhYmVsS2V5cyBpcyBhIHNldCBvZiBwb2QgbGFiZWwga2V5cyB0byBzZWxlY3Qgd2hpY2ggcG9kcyB3aWxsIGJlIHRha2VuIGludG8gY29uc2lkZXJhdGlvbi4gVGhlIGtleXMgYXJlIHVzZWQgdG8gbG9va3VwIHZhbHVlcyBmcm9tIHRoZSBpbmNvbWluZyBwb2QgbGFiZWxzLCB0aG9zZSBrZXktdmFsdWUgbGFiZWxzIGFyZSBtZXJnZWQgd2l0aCBgTGFiZWxTZWxlY3RvcmAgYXMgYGtleSBub3RpbiAodmFsdWUpYCB0byBzZWxlY3QgdGhlIGdyb3VwIG9mIGV4aXN0aW5nIHBvZHMgd2hpY2ggcG9kcyB3aWxsIGJlIHRha2VuIGludG8gY29uc2lkZXJhdGlvbiBmb3IgdGhlIGluY29taW5nIHBvZCdzIHBvZCAoYW50aSkgYWZmaW5pdHkuIEtleXMgdGhhdCBkb24ndCBleGlzdCBpbiB0aGUgaW5jb21pbmcgcG9kIGxhYmVscyB3aWxsIGJlIGlnbm9yZWQuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGVtcHR5LiBUaGUgc2FtZSBrZXkgaXMgZm9yYmlkZGVuIHRvIGV4aXN0IGluIGJvdGggTWlzbWF0Y2hMYWJlbEtleXMgYW5kIExhYmVsU2VsZWN0b3IuIEFsc28sIE1pc21hdGNoTGFiZWxLZXlzIGNhbm5vdCBiZSBzZXQgd2hlbiBMYWJlbFNlbGVjdG9yIGlzbid0IHNldC4gVGhpcyBpcyBhbiBhbHBoYSBmaWVsZCBhbmQgcmVxdWlyZXMgZW5hYmxpbmcgTWF0Y2hMYWJlbEtleXNJblBvZEFmZmluaXR5IGZlYXR1cmUgZ2F0ZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJhdG9taWMifSwibmFtZXNwYWNlU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdGhlIHNldCBvZiBuYW1lc3BhY2VzIHRoYXQgdGhlIHRlcm0gYXBwbGllcyB0by4gVGhlIHRlcm0gaXMgYXBwbGllZCB0byB0aGUgdW5pb24gb2YgdGhlIG5hbWVzcGFjZXMgc2VsZWN0ZWQgYnkgdGhpcyBmaWVsZCBhbmQgdGhlIG9uZXMgbGlzdGVkIGluIHRoZSBuYW1lc3BhY2VzIGZpZWxkLiBudWxsIHNlbGVjdG9yIGFuZCBudWxsIG9yIGVtcHR5IG5hbWVzcGFjZXMgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIuIEFuIGVtcHR5IHNlbGVjdG9yICh7fSkgbWF0Y2hlcyBhbGwgbmFtZXNwYWNlcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyBhIHN0YXRpYyBsaXN0IG9mIG5hbWVzcGFjZSBuYW1lcyB0aGF0IHRoZSB0ZXJtIGFwcGxpZXMgdG8uIFRoZSB0ZXJtIGlzIGFwcGxpZWQgdG8gdGhlIHVuaW9uIG9mIHRoZSBuYW1lc3BhY2VzIGxpc3RlZCBpbiB0aGlzIGZpZWxkIGFuZCB0aGUgb25lcyBzZWxlY3RlZCBieSBuYW1lc3BhY2VTZWxlY3Rvci4gbnVsbCBvciBlbXB0eSBuYW1lc3BhY2VzIGxpc3QgYW5kIG51bGwgbmFtZXNwYWNlU2VsZWN0b3IgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCB0aGUgcG9kcyBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvciBpbiB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGUgc2VsZWN0ZWQgcG9kcyBpcyBydW5uaW5nLiBFbXB0eSB0b3BvbG9neUtleSBpcyBub3QgYWxsb3dlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0b3BvbG9neUtleSJdLCJ0eXBlIjoib2JqZWN0In0sIndlaWdodCI6eyJkZXNjcmlwdGlvbiI6IndlaWdodCBhc3NvY2lhdGVkIHdpdGggbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtLCBpbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicG9kQWZmaW5pdHlUZXJtIiwid2VpZ2h0Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJJZiB0aGUgYW50aS1hZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgYXJlIG5vdCBtZXQgYXQgc2NoZWR1bGluZyB0aW1lLCB0aGUgcG9kIHdpbGwgbm90IGJlIHNjaGVkdWxlZCBvbnRvIHRoZSBub2RlLiBJZiB0aGUgYW50aS1hZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0IGF0IHNvbWUgcG9pbnQgZHVyaW5nIHBvZCBleGVjdXRpb24gKGUuZy4gZHVlIHRvIGEgcG9kIGxhYmVsIHVwZGF0ZSksIHRoZSBzeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiBXaGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBlbGVtZW50cywgdGhlIGxpc3RzIG9mIG5vZGVzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaCBwb2RBZmZpbml0eVRlcm0gYXJlIGludGVyc2VjdGVkLCBpLmUuIGFsbCB0ZXJtcyBtdXN0IGJlIHNhdGlzZmllZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkRlZmluZXMgYSBzZXQgb2YgcG9kcyAobmFtZWx5IHRob3NlIG1hdGNoaW5nIHRoZSBsYWJlbFNlbGVjdG9yIHJlbGF0aXZlIHRvIHRoZSBnaXZlbiBuYW1lc3BhY2UocykpIHRoYXQgdGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCwgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlIHdob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSBcdTAwM2N0b3BvbG9neUtleVx1MDAzZSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYSBwb2Qgb2YgdGhlIHNldCBvZiBwb2RzIGlzIHJ1bm5pbmciLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy4gSWYgaXQncyBudWxsLCB0aGlzIFBvZEFmZmluaXR5VGVybSBtYXRjaGVzIHdpdGggbm8gUG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sIm1hdGNoTGFiZWxLZXlzIjp7ImRlc2NyaXB0aW9uIjoiTWF0Y2hMYWJlbEtleXMgaXMgYSBzZXQgb2YgcG9kIGxhYmVsIGtleXMgdG8gc2VsZWN0IHdoaWNoIHBvZHMgd2lsbCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24uIFRoZSBrZXlzIGFyZSB1c2VkIHRvIGxvb2t1cCB2YWx1ZXMgZnJvbSB0aGUgaW5jb21pbmcgcG9kIGxhYmVscywgdGhvc2Uga2V5LXZhbHVlIGxhYmVscyBhcmUgbWVyZ2VkIHdpdGggYExhYmVsU2VsZWN0b3JgIGFzIGBrZXkgaW4gKHZhbHVlKWAgdG8gc2VsZWN0IHRoZSBncm91cCBvZiBleGlzdGluZyBwb2RzIHdoaWNoIHBvZHMgd2lsbCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24gZm9yIHRoZSBpbmNvbWluZyBwb2QncyBwb2QgKGFudGkpIGFmZmluaXR5LiBLZXlzIHRoYXQgZG9uJ3QgZXhpc3QgaW4gdGhlIGluY29taW5nIHBvZCBsYWJlbHMgd2lsbCBiZSBpZ25vcmVkLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBlbXB0eS4gVGhlIHNhbWUga2V5IGlzIGZvcmJpZGRlbiB0byBleGlzdCBpbiBib3RoIE1hdGNoTGFiZWxLZXlzIGFuZCBMYWJlbFNlbGVjdG9yLiBBbHNvLCBNYXRjaExhYmVsS2V5cyBjYW5ub3QgYmUgc2V0IHdoZW4gTGFiZWxTZWxlY3RvciBpc24ndCBzZXQuIFRoaXMgaXMgYW4gYWxwaGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIE1hdGNoTGFiZWxLZXlzSW5Qb2RBZmZpbml0eSBmZWF0dXJlIGdhdGUuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoiYXRvbWljIn0sIm1pc21hdGNoTGFiZWxLZXlzIjp7ImRlc2NyaXB0aW9uIjoiTWlzbWF0Y2hMYWJlbEtleXMgaXMgYSBzZXQgb2YgcG9kIGxhYmVsIGtleXMgdG8gc2VsZWN0IHdoaWNoIHBvZHMgd2lsbCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24uIFRoZSBrZXlzIGFyZSB1c2VkIHRvIGxvb2t1cCB2YWx1ZXMgZnJvbSB0aGUgaW5jb21pbmcgcG9kIGxhYmVscywgdGhvc2Uga2V5LXZhbHVlIGxhYmVscyBhcmUgbWVyZ2VkIHdpdGggYExhYmVsU2VsZWN0b3JgIGFzIGBrZXkgbm90aW4gKHZhbHVlKWAgdG8gc2VsZWN0IHRoZSBncm91cCBvZiBleGlzdGluZyBwb2RzIHdoaWNoIHBvZHMgd2lsbCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24gZm9yIHRoZSBpbmNvbWluZyBwb2QncyBwb2QgKGFudGkpIGFmZmluaXR5LiBLZXlzIHRoYXQgZG9uJ3QgZXhpc3QgaW4gdGhlIGluY29taW5nIHBvZCBsYWJlbHMgd2lsbCBiZSBpZ25vcmVkLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBlbXB0eS4gVGhlIHNhbWUga2V5IGlzIGZvcmJpZGRlbiB0byBleGlzdCBpbiBib3RoIE1pc21hdGNoTGFiZWxLZXlzIGFuZCBMYWJlbFNlbGVjdG9yLiBBbHNvLCBNaXNtYXRjaExhYmVsS2V5cyBjYW5ub3QgYmUgc2V0IHdoZW4gTGFiZWxTZWxlY3RvciBpc24ndCBzZXQuIFRoaXMgaXMgYW4gYWxwaGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIE1hdGNoTGFiZWxLZXlzSW5Qb2RBZmZpbml0eSBmZWF0dXJlIGdhdGUuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoiYXRvbWljIn0sIm5hbWVzcGFjZVNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIHRoZSBzZXQgb2YgbmFtZXNwYWNlcyB0aGF0IHRoZSB0ZXJtIGFwcGxpZXMgdG8uIFRoZSB0ZXJtIGlzIGFwcGxpZWQgdG8gdGhlIHVuaW9uIG9mIHRoZSBuYW1lc3BhY2VzIHNlbGVjdGVkIGJ5IHRoaXMgZmllbGQgYW5kIHRoZSBvbmVzIGxpc3RlZCBpbiB0aGUgbmFtZXNwYWNlcyBmaWVsZC4gbnVsbCBzZWxlY3RvciBhbmQgbnVsbCBvciBlbXB0eSBuYW1lc3BhY2VzIGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiLiBBbiBlbXB0eSBzZWxlY3RvciAoe30pIG1hdGNoZXMgYWxsIG5hbWVzcGFjZXMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgYSBzdGF0aWMgbGlzdCBvZiBuYW1lc3BhY2UgbmFtZXMgdGhhdCB0aGUgdGVybSBhcHBsaWVzIHRvLiBUaGUgdGVybSBpcyBhcHBsaWVkIHRvIHRoZSB1bmlvbiBvZiB0aGUgbmFtZXNwYWNlcyBsaXN0ZWQgaW4gdGhpcyBmaWVsZCBhbmQgdGhlIG9uZXMgc2VsZWN0ZWQgYnkgbmFtZXNwYWNlU2VsZWN0b3IuIG51bGwgb3IgZW1wdHkgbmFtZXNwYWNlcyBsaXN0IGFuZCBudWxsIG5hbWVzcGFjZVNlbGVjdG9yIG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIi4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlIHNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy4gRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiRGVmaW5lcyB0aGUgbG9jYWwgc2VydmljZSBjbHVzdGVyIG5hbWUgd2hlcmUgRW52b3kgaXMgcnVubmluZy4gRGVmYXVsdHMgdG8gdGhlIE5vZGVJRCBpbiB0aGUgRW52b3lDb25maWcgaWYgdW5zZXQiLCJ0eXBlIjoic3RyaW5nIn0sImRpc2NvdmVyeVNlcnZpY2VSZWYiOnsiZGVzY3JpcHRpb24iOiJEaXNjb3ZlcnlTZXJ2aWNlUmVmIHBvaW50cyB0byBhIERpc2NvdmVyeVNlcnZpY2UgaW4gdGhlIHNhbWUgbmFtZXNwYWNlIiwidHlwZSI6InN0cmluZyJ9LCJkdXJhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IkRlZmluZXMgdGhlIGR1cmF0aW9uIG9mIHRoZSBjbGllbnQgY2VydGlmaWNhdGUgdGhhdCBpcyB1c2VkIHRvIGF1dGhlbnRpY2F0ZSB3aXRoIHRoZSBEaXNjb3ZlcnlTZXJ2aWNlIiwidHlwZSI6InN0cmluZyJ9LCJlbnZveUNvbmZpZ1JlZiI6eyJkZXNjcmlwdGlvbiI6IkVudm95Q29uZmlnUmVmIHBvaW50cyB0byBhbiBFbnZveUNvbmZpZyBpbiB0aGUgc2FtZSBuYW1lc3BhY2UgdGhhdCBob2xkcyB0aGUgZW52b3kgcmVzb3VyY2VzIGZvciB0aGlzIERlcGxveW1lbnQiLCJ0eXBlIjoic3RyaW5nIn0sImV4dHJhQXJncyI6eyJkZXNjcmlwdGlvbiI6IkFsbG93cyB0aGUgdXNlciB0byBkZWZpbmUgZXh0cmEgY29tbWFuZCBsaW5lIGFyZ3VtZW50cyBmb3IgdGhlIEVudm95IHByb2Nlc3MiLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJpbWFnZSI6eyJkZXNjcmlwdGlvbiI6IkltYWdlIGlzIHRoZSBlbnZveSBpbWFnZSBhbmQgdGFnIHRvIHVzZSIsInR5cGUiOiJzdHJpbmcifSwiaW5pdE1hbmFnZXIiOnsiZGVzY3JpcHRpb24iOiJJbml0TWFuYWdlciBkZWZpbmVzIGNvbmZpZ3VyYXRpb24gZm9yIEVudm95J3MgaW5pdCBtYW5hZ2VyLCB3aGljaCBoYW5kbGVzIGluaXRpYWxpemF0aW9uIGZvciBFbnZveSBwb2RzIiwicHJvcGVydGllcyI6eyJpbWFnZSI6eyJkZXNjcmlwdGlvbiI6IkltYWdlIGlzIHRoZSBpbml0IG1hbmFnZXIgaW1hZ2UgYW5kIHRhZyB0byB1c2UiLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sImxpdmVuZXNzUHJvYmUiOnsiZGVzY3JpcHRpb24iOiJMaXZlbmVzcyBwcm9iZSBmb3IgdGhlIGVudm95IHBvZHMiLCJwcm9wZXJ0aWVzIjp7ImZhaWx1cmVUaHJlc2hvbGQiOnsiZGVzY3JpcHRpb24iOiJNaW5pbXVtIGNvbnNlY3V0aXZlIGZhaWx1cmVzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBmYWlsZWQgYWZ0ZXIgaGF2aW5nIHN1Y2NlZWRlZCIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHRoZSBjb250YWluZXIgaGFzIHN0YXJ0ZWQgYmVmb3JlIGxpdmVuZXNzIHByb2JlcyBhcmUgaW5pdGlhdGVkIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZSIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwic3VjY2Vzc1RocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgc3VjY2Vzc2VzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBzdWNjZXNzZnVsIGFmdGVyIGhhdmluZyBmYWlsZWQiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInRpbWVvdXRTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgd2hpY2ggdGhlIHByb2JlIHRpbWVzIG91dCIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbImZhaWx1cmVUaHJlc2hvbGQiLCJpbml0aWFsRGVsYXlTZWNvbmRzIiwicGVyaW9kU2Vjb25kcyIsInN1Y2Nlc3NUaHJlc2hvbGQiLCJ0aW1lb3V0U2Vjb25kcyJdLCJ0eXBlIjoib2JqZWN0In0sInBvZERpc3J1cHRpb25CdWRnZXQiOnsiZGVzY3JpcHRpb24iOiJDb25maWd1cmVzIFBvZERpc3J1cHRpb25CdWRnZXQgZm9yIHRoZSBlbnZveSBQb2RzIiwicHJvcGVydGllcyI6eyJtYXhVbmF2YWlsYWJsZSI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoiQW4gZXZpY3Rpb24gaXMgYWxsb3dlZCBpZiBhdCBtb3N0IFwibWF4VW5hdmFpbGFibGVcIiBwb2RzIHNlbGVjdGVkIGJ5IFwic2VsZWN0b3JcIiBhcmUgdW5hdmFpbGFibGUgYWZ0ZXIgdGhlIGV2aWN0aW9uLCBpLmUuIGV2ZW4gaW4gYWJzZW5jZSBvZiB0aGUgZXZpY3RlZCBwb2QuIEZvciBleGFtcGxlLCBvbmUgY2FuIHByZXZlbnQgYWxsIHZvbHVudGFyeSBldmljdGlvbnMgYnkgc3BlY2lmeWluZyAwLiBUaGlzIGlzIGEgbXV0dWFsbHkgZXhjbHVzaXZlIHNldHRpbmcgd2l0aCBcIm1pbkF2YWlsYWJsZVwiLiIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwibWluQXZhaWxhYmxlIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwiZGVzY3JpcHRpb24iOiJBbiBldmljdGlvbiBpcyBhbGxvd2VkIGlmIGF0IGxlYXN0IFwibWluQXZhaWxhYmxlXCIgcG9kcyBzZWxlY3RlZCBieSBcInNlbGVjdG9yXCIgd2lsbCBzdGlsbCBiZSBhdmFpbGFibGUgYWZ0ZXIgdGhlIGV2aWN0aW9uLCBpLmUuIGV2ZW4gaW4gdGhlIGFic2VuY2Ugb2YgdGhlIGV2aWN0ZWQgcG9kLiAgU28gZm9yIGV4YW1wbGUgeW91IGNhbiBwcmV2ZW50IGFsbCB2b2x1bnRhcnkgZXZpY3Rpb25zIGJ5IHNwZWNpZnlpbmcgXCIxMDAlXCIuIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9fSwidHlwZSI6Im9iamVjdCJ9LCJwb3J0cyI6eyJkZXNjcmlwdGlvbiI6IlBvcnRzIGV4cG9zZWQgYnkgdGhlIEVudm95IGNvbnRhaW5lciIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQ29udGFpbmVyUG9ydCBkZWZpbmVzIHBvcnQgZm9yIHRoZSBNYXJpbjNyIHNpZGVjYXIgY29udGFpbmVyIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiUG9ydCBuYW1lIiwidHlwZSI6InN0cmluZyJ9LCJwb3J0Ijp7ImRlc2NyaXB0aW9uIjoiUG9ydCB2YWx1ZSIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwicHJvdG9jb2wiOnsiZGVmYXVsdCI6IlRDUCIsImRlc2NyaXB0aW9uIjoiUHJvdG9jb2wuIERlZmF1bHRzIHRvIFRDUC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJuYW1lIiwicG9ydCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZWFkaW5lc3NQcm9iZSI6eyJkZXNjcmlwdGlvbiI6IlJlYWRpbmVzcyBwcm9iZSBmb3IgdGhlIGVudm95IHBvZHMiLCJwcm9wZXJ0aWVzIjp7ImZhaWx1cmVUaHJlc2hvbGQiOnsiZGVzY3JpcHRpb24iOiJNaW5pbXVtIGNvbnNlY3V0aXZlIGZhaWx1cmVzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBmYWlsZWQgYWZ0ZXIgaGF2aW5nIHN1Y2NlZWRlZCIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6eyJkZXNjcmlwdGlvbiI6Ik51bWJlciBvZiBzZWNvbmRzIGFmdGVyIHRoZSBjb250YWluZXIgaGFzIHN0YXJ0ZWQgYmVmb3JlIGxpdmVuZXNzIHByb2JlcyBhcmUgaW5pdGlhdGVkIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZSIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwic3VjY2Vzc1RocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgc3VjY2Vzc2VzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBzdWNjZXNzZnVsIGFmdGVyIGhhdmluZyBmYWlsZWQiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInRpbWVvdXRTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgd2hpY2ggdGhlIHByb2JlIHRpbWVzIG91dCIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbImZhaWx1cmVUaHJlc2hvbGQiLCJpbml0aWFsRGVsYXlTZWNvbmRzIiwicGVyaW9kU2Vjb25kcyIsInN1Y2Nlc3NUaHJlc2hvbGQiLCJ0aW1lb3V0U2Vjb25kcyJdLCJ0eXBlIjoib2JqZWN0In0sInJlcGxpY2FzIjp7ImRlc2NyaXB0aW9uIjoiUmVwbGljYXMgY29uZmlndXJlcyB0aGUgbnVtYmVyIG9mIHJlcGxpY2FzIGluIHRoZSBEZXBsb3ltZW50LiBPbmUgb2YgJ3N0YXRpYycsICdkeW5hbWljJyBjYW4gYmUgc2V0LiBJZiBib3RoIGFyZSBzZXQsIHN0YXRpYyBoYXMgcHJlY2VkZW5jZS4iLCJwcm9wZXJ0aWVzIjp7ImR5bmFtaWMiOnsiZGVzY3JpcHRpb24iOiJDb25maWd1cmUgYSBtaW4gYW5kIG1heCB2YWx1ZSBmb3IgdGhlIG51bWJlciBvZiBwb2RzIHRvIGF1dG9zY2FsZSBkeW5hbWljYWxseS4iLCJwcm9wZXJ0aWVzIjp7ImJlaGF2aW9yIjp7ImRlc2NyaXB0aW9uIjoiYmVoYXZpb3IgY29uZmlndXJlcyB0aGUgc2NhbGluZyBiZWhhdmlvciBvZiB0aGUgdGFyZ2V0IGluIGJvdGggVXAgYW5kIERvd24gZGlyZWN0aW9ucyAoc2NhbGVVcCBhbmQgc2NhbGVEb3duIGZpZWxkcyByZXNwZWN0aXZlbHkpLiBJZiBub3Qgc2V0LCB0aGUgZGVmYXVsdCBIUEFTY2FsaW5nUnVsZXMgZm9yIHNjYWxlIHVwIGFuZCBzY2FsZSBkb3duIGFyZSB1c2VkLiIsInByb3BlcnRpZXMiOnsic2NhbGVEb3duIjp7ImRlc2NyaXB0aW9uIjoic2NhbGVEb3duIGlzIHNjYWxpbmcgcG9saWN5IGZvciBzY2FsaW5nIERvd24uIElmIG5vdCBzZXQsIHRoZSBkZWZhdWx0IHZhbHVlIGlzIHRvIGFsbG93IHRvIHNjYWxlIGRvd24gdG8gbWluUmVwbGljYXMgcG9kcywgd2l0aCBhIDMwMCBzZWNvbmQgc3RhYmlsaXphdGlvbiB3aW5kb3cgKGkuZS4sIHRoZSBoaWdoZXN0IHJlY29tbWVuZGF0aW9uIGZvciB0aGUgbGFzdCAzMDBzZWMgaXMgdXNlZCkuIiwicHJvcGVydGllcyI6eyJwb2xpY2llcyI6eyJkZXNjcmlwdGlvbiI6InBvbGljaWVzIGlzIGEgbGlzdCBvZiBwb3RlbnRpYWwgc2NhbGluZyBwb2xpY2VzIHdoaWNoIGNhbiBiZSB1c2VkIGR1cmluZyBzY2FsaW5nLiBBdCBsZWFzdCBvbmUgcG9saWN5IG11c3QgYmUgc3BlY2lmaWVkLCBvdGhlcndpc2UgdGhlIEhQQVNjYWxpbmdSdWxlcyB3aWxsIGJlIGRpc2NhcmRlZCBhcyBpbnZhbGlkIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJIUEFTY2FsaW5nUG9saWN5IGlzIGEgc2luZ2xlIHBvbGljeSB3aGljaCBtdXN0IGhvbGQgdHJ1ZSBmb3IgYSBzcGVjaWZpZWQgcGFzdCBpbnRlcnZhbC4iLCJwcm9wZXJ0aWVzIjp7InBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJwZXJpb2RTZWNvbmRzIHNwZWNpZmllcyB0aGUgd2luZG93IG9mIHRpbWUgZm9yIHdoaWNoIHRoZSBwb2xpY3kgc2hvdWxkIGhvbGQgdHJ1ZS4gUGVyaW9kU2Vjb25kcyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMTgwMCAoMzAgbWluKS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJ0eXBlIGlzIHVzZWQgdG8gc3BlY2lmeSB0aGUgc2NhbGluZyBwb2xpY3kuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6InZhbHVlIGNvbnRhaW5zIHRoZSBhbW91bnQgb2YgY2hhbmdlIHdoaWNoIGlzIHBlcm1pdHRlZCBieSB0aGUgcG9saWN5LiBJdCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicGVyaW9kU2Vjb25kcyIsInR5cGUiLCJ2YWx1ZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJhdG9taWMifSwic2VsZWN0UG9saWN5Ijp7ImRlc2NyaXB0aW9uIjoic2VsZWN0UG9saWN5IGlzIHVzZWQgdG8gc3BlY2lmeSB3aGljaCBwb2xpY3kgc2hvdWxkIGJlIHVzZWQuIElmIG5vdCBzZXQsIHRoZSBkZWZhdWx0IHZhbHVlIE1heCBpcyB1c2VkLiIsInR5cGUiOiJzdHJpbmcifSwic3RhYmlsaXphdGlvbldpbmRvd1NlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJzdGFiaWxpemF0aW9uV2luZG93U2Vjb25kcyBpcyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgZm9yIHdoaWNoIHBhc3QgcmVjb21tZW5kYXRpb25zIHNob3VsZCBiZSBjb25zaWRlcmVkIHdoaWxlIHNjYWxpbmcgdXAgb3Igc2NhbGluZyBkb3duLiBTdGFiaWxpemF0aW9uV2luZG93U2Vjb25kcyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB6ZXJvIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gMzYwMCAob25lIGhvdXIpLiBJZiBub3Qgc2V0LCB1c2UgdGhlIGRlZmF1bHQgdmFsdWVzOiAtIEZvciBzY2FsZSB1cDogMCAoaS5lLiBubyBzdGFiaWxpemF0aW9uIGlzIGRvbmUpLiAtIEZvciBzY2FsZSBkb3duOiAzMDAgKGkuZS4gdGhlIHN0YWJpbGl6YXRpb24gd2luZG93IGlzIDMwMCBzZWNvbmRzIGxvbmcpLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInR5cGUiOiJvYmplY3QifSwic2NhbGVVcCI6eyJkZXNjcmlwdGlvbiI6InNjYWxlVXAgaXMgc2NhbGluZyBwb2xpY3kgZm9yIHNjYWxpbmcgVXAuIElmIG5vdCBzZXQsIHRoZSBkZWZhdWx0IHZhbHVlIGlzIHRoZSBoaWdoZXIgb2Y6ICogaW5jcmVhc2Ugbm8gbW9yZSB0aGFuIDQgcG9kcyBwZXIgNjAgc2Vjb25kcyAqIGRvdWJsZSB0aGUgbnVtYmVyIG9mIHBvZHMgcGVyIDYwIHNlY29uZHMgTm8gc3RhYmlsaXphdGlvbiBpcyB1c2VkLiIsInByb3BlcnRpZXMiOnsicG9saWNpZXMiOnsiZGVzY3JpcHRpb24iOiJwb2xpY2llcyBpcyBhIGxpc3Qgb2YgcG90ZW50aWFsIHNjYWxpbmcgcG9saWNlcyB3aGljaCBjYW4gYmUgdXNlZCBkdXJpbmcgc2NhbGluZy4gQXQgbGVhc3Qgb25lIHBvbGljeSBtdXN0IGJlIHNwZWNpZmllZCwgb3RoZXJ3aXNlIHRoZSBIUEFTY2FsaW5nUnVsZXMgd2lsbCBiZSBkaXNjYXJkZWQgYXMgaW52YWxpZCIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiSFBBU2NhbGluZ1BvbGljeSBpcyBhIHNpbmdsZSBwb2xpY3kgd2hpY2ggbXVzdCBob2xkIHRydWUgZm9yIGEgc3BlY2lmaWVkIHBhc3QgaW50ZXJ2YWwuIiwicHJvcGVydGllcyI6eyJwZXJpb2RTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoicGVyaW9kU2Vjb25kcyBzcGVjaWZpZXMgdGhlIHdpbmRvdyBvZiB0aW1lIGZvciB3aGljaCB0aGUgcG9saWN5IHNob3VsZCBob2xkIHRydWUuIFBlcmlvZFNlY29uZHMgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDE4MDAgKDMwIG1pbikuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoidHlwZSBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHNjYWxpbmcgcG9saWN5LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZSBjb250YWlucyB0aGUgYW1vdW50IG9mIGNoYW5nZSB3aGljaCBpcyBwZXJtaXR0ZWQgYnkgdGhlIHBvbGljeS4gSXQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInBlcmlvZFNlY29uZHMiLCJ0eXBlIiwidmFsdWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoiYXRvbWljIn0sInNlbGVjdFBvbGljeSI6eyJkZXNjcmlwdGlvbiI6InNlbGVjdFBvbGljeSBpcyB1c2VkIHRvIHNwZWNpZnkgd2hpY2ggcG9saWN5IHNob3VsZCBiZSB1c2VkLiBJZiBub3Qgc2V0LCB0aGUgZGVmYXVsdCB2YWx1ZSBNYXggaXMgdXNlZC4iLCJ0eXBlIjoic3RyaW5nIn0sInN0YWJpbGl6YXRpb25XaW5kb3dTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoic3RhYmlsaXphdGlvbldpbmRvd1NlY29uZHMgaXMgdGhlIG51bWJlciBvZiBzZWNvbmRzIGZvciB3aGljaCBwYXN0IHJlY29tbWVuZGF0aW9ucyBzaG91bGQgYmUgY29uc2lkZXJlZCB3aGlsZSBzY2FsaW5nIHVwIG9yIHNjYWxpbmcgZG93bi4gU3RhYmlsaXphdGlvbldpbmRvd1NlY29uZHMgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gemVybyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDM2MDAgKG9uZSBob3VyKS4gSWYgbm90IHNldCwgdXNlIHRoZSBkZWZhdWx0IHZhbHVlczogLSBGb3Igc2NhbGUgdXA6IDAgKGkuZS4gbm8gc3RhYmlsaXphdGlvbiBpcyBkb25lKS4gLSBGb3Igc2NhbGUgZG93bjogMzAwIChpLmUuIHRoZSBzdGFiaWxpemF0aW9uIHdpbmRvdyBpcyAzMDAgc2Vjb25kcyBsb25nKS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sIm1heFJlcGxpY2FzIjp7ImRlc2NyaXB0aW9uIjoibWF4UmVwbGljYXMgaXMgdGhlIHVwcGVyIGxpbWl0IGZvciB0aGUgbnVtYmVyIG9mIHJlcGxpY2FzIHRvIHdoaWNoIHRoZSBhdXRvc2NhbGVyIGNhbiBzY2FsZSB1cC4gSXQgY2Fubm90IGJlIGxlc3MgdGhhdCBtaW5SZXBsaWNhcy4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sIm1ldHJpY3MiOnsiZGVzY3JpcHRpb24iOiJtZXRyaWNzIGNvbnRhaW5zIHRoZSBzcGVjaWZpY2F0aW9ucyBmb3Igd2hpY2ggdG8gdXNlIHRvIGNhbGN1bGF0ZSB0aGUgZGVzaXJlZCByZXBsaWNhIGNvdW50ICh0aGUgbWF4aW11bSByZXBsaWNhIGNvdW50IGFjcm9zcyBhbGwgbWV0cmljcyB3aWxsIGJlIHVzZWQpLiAgVGhlIGRlc2lyZWQgcmVwbGljYSBjb3VudCBpcyBjYWxjdWxhdGVkIG11bHRpcGx5aW5nIHRoZSByYXRpbyBiZXR3ZWVuIHRoZSB0YXJnZXQgdmFsdWUgYW5kIHRoZSBjdXJyZW50IHZhbHVlIGJ5IHRoZSBjdXJyZW50IG51bWJlciBvZiBwb2RzLiAgRXJnbywgbWV0cmljcyB1c2VkIG11c3QgZGVjcmVhc2UgYXMgdGhlIHBvZCBjb3VudCBpcyBpbmNyZWFzZWQsIGFuZCB2aWNlLXZlcnNhLiAgU2VlIHRoZSBpbmRpdmlkdWFsIG1ldHJpYyBzb3VyY2UgdHlwZXMgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgaG93IGVhY2ggdHlwZSBvZiBtZXRyaWMgbXVzdCByZXNwb25kLiBJZiBub3Qgc2V0LCB0aGUgZGVmYXVsdCBtZXRyaWMgd2lsbCBiZSBzZXQgdG8gODAlIGF2ZXJhZ2UgQ1BVIHV0aWxpemF0aW9uLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiTWV0cmljU3BlYyBzcGVjaWZpZXMgaG93IHRvIHNjYWxlIGJhc2VkIG9uIGEgc2luZ2xlIG1ldHJpYyAob25seSBgdHlwZWAgYW5kIG9uZSBvdGhlciBtYXRjaGluZyBmaWVsZCBzaG91bGQgYmUgc2V0IGF0IG9uY2UpLiIsInByb3BlcnRpZXMiOnsiY29udGFpbmVyUmVzb3VyY2UiOnsiZGVzY3JpcHRpb24iOiJjb250YWluZXJSZXNvdXJjZSByZWZlcnMgdG8gYSByZXNvdXJjZSBtZXRyaWMgKHN1Y2ggYXMgdGhvc2Ugc3BlY2lmaWVkIGluIHJlcXVlc3RzIGFuZCBsaW1pdHMpIGtub3duIHRvIEt1YmVybmV0ZXMgZGVzY3JpYmluZyBhIHNpbmdsZSBjb250YWluZXIgaW4gZWFjaCBwb2Qgb2YgdGhlIGN1cnJlbnQgc2NhbGUgdGFyZ2V0IChlLmcuIENQVSBvciBtZW1vcnkpLiBTdWNoIG1ldHJpY3MgYXJlIGJ1aWx0IGluIHRvIEt1YmVybmV0ZXMsIGFuZCBoYXZlIHNwZWNpYWwgc2NhbGluZyBvcHRpb25zIG9uIHRvcCBvZiB0aG9zZSBhdmFpbGFibGUgdG8gbm9ybWFsIHBlci1wb2QgbWV0cmljcyB1c2luZyB0aGUgXCJwb2RzXCIgc291cmNlLiBUaGlzIGlzIGFuIGFscGhhIGZlYXR1cmUgYW5kIGNhbiBiZSBlbmFibGVkIGJ5IHRoZSBIUEFDb250YWluZXJNZXRyaWNzIGZlYXR1cmUgZmxhZy4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6ImNvbnRhaW5lciBpcyB0aGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIGluIHRoZSBwb2RzIG9mIHRoZSBzY2FsaW5nIHRhcmdldCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIGluIHF1ZXN0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwidGFyZ2V0Ijp7ImRlc2NyaXB0aW9uIjoidGFyZ2V0IHNwZWNpZmllcyB0aGUgdGFyZ2V0IHZhbHVlIGZvciB0aGUgZ2l2ZW4gbWV0cmljIiwicHJvcGVydGllcyI6eyJhdmVyYWdlVXRpbGl6YXRpb24iOnsiZGVzY3JpcHRpb24iOiJhdmVyYWdlVXRpbGl6YXRpb24gaXMgdGhlIHRhcmdldCB2YWx1ZSBvZiB0aGUgYXZlcmFnZSBvZiB0aGUgcmVzb3VyY2UgbWV0cmljIGFjcm9zcyBhbGwgcmVsZXZhbnQgcG9kcywgcmVwcmVzZW50ZWQgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSByZXF1ZXN0ZWQgdmFsdWUgb2YgdGhlIHJlc291cmNlIGZvciB0aGUgcG9kcy4gQ3VycmVudGx5IG9ubHkgdmFsaWQgZm9yIFJlc291cmNlIG1ldHJpYyBzb3VyY2UgdHlwZSIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiYXZlcmFnZVZhbHVlIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwiZGVzY3JpcHRpb24iOiJhdmVyYWdlVmFsdWUgaXMgdGhlIHRhcmdldCB2YWx1ZSBvZiB0aGUgYXZlcmFnZSBvZiB0aGUgbWV0cmljIGFjcm9zcyBhbGwgcmVsZXZhbnQgcG9kcyAoYXMgYSBxdWFudGl0eSkiLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJ0eXBlIHJlcHJlc2VudHMgd2hldGhlciB0aGUgbWV0cmljIHR5cGUgaXMgVXRpbGl6YXRpb24sIFZhbHVlLCBvciBBdmVyYWdlVmFsdWUiLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwiZGVzY3JpcHRpb24iOiJ2YWx1ZSBpcyB0aGUgdGFyZ2V0IHZhbHVlIG9mIHRoZSBtZXRyaWMgKGFzIGEgcXVhbnRpdHkpLiIsInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsiY29udGFpbmVyIiwibmFtZSIsInRhcmdldCJdLCJ0eXBlIjoib2JqZWN0In0sImV4dGVybmFsIjp7ImRlc2NyaXB0aW9uIjoiZXh0ZXJuYWwgcmVmZXJzIHRvIGEgZ2xvYmFsIG1ldHJpYyB0aGF0IGlzIG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IEt1YmVybmV0ZXMgb2JqZWN0LiBJdCBhbGxvd3MgYXV0b3NjYWxpbmcgYmFzZWQgb24gaW5mb3JtYXRpb24gY29taW5nIGZyb20gY29tcG9uZW50cyBydW5uaW5nIG91dHNpZGUgb2YgY2x1c3RlciAoZm9yIGV4YW1wbGUgbGVuZ3RoIG9mIHF1ZXVlIGluIGNsb3VkIG1lc3NhZ2luZyBzZXJ2aWNlLCBvciBRUFMgZnJvbSBsb2FkYmFsYW5jZXIgcnVubmluZyBvdXRzaWRlIG9mIGNsdXN0ZXIpLiIsInByb3BlcnRpZXMiOnsibWV0cmljIjp7ImRlc2NyaXB0aW9uIjoibWV0cmljIGlkZW50aWZpZXMgdGhlIHRhcmdldCBtZXRyaWMgYnkgbmFtZSBhbmQgc2VsZWN0b3IiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJuYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBnaXZlbiBtZXRyaWMiLCJ0eXBlIjoic3RyaW5nIn0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgdGhlIHN0cmluZy1lbmNvZGVkIGZvcm0gb2YgYSBzdGFuZGFyZCBrdWJlcm5ldGVzIGxhYmVsIHNlbGVjdG9yIGZvciB0aGUgZ2l2ZW4gbWV0cmljIFdoZW4gc2V0LCBpdCBpcyBwYXNzZWQgYXMgYW4gYWRkaXRpb25hbCBwYXJhbWV0ZXIgdG8gdGhlIG1ldHJpY3Mgc2VydmVyIGZvciBtb3JlIHNwZWNpZmljIG1ldHJpY3Mgc2NvcGluZy4gV2hlbiB1bnNldCwganVzdCB0aGUgbWV0cmljTmFtZSB3aWxsIGJlIHVzZWQgdG8gZ2F0aGVyIG1ldHJpY3MuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0IHJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuIFZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVscyBtYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGUgb3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInRhcmdldCI6eyJkZXNjcmlwdGlvbiI6InRhcmdldCBzcGVjaWZpZXMgdGhlIHRhcmdldCB2YWx1ZSBmb3IgdGhlIGdpdmVuIG1ldHJpYyIsInByb3BlcnRpZXMiOnsiYXZlcmFnZVV0aWxpemF0aW9uIjp7ImRlc2NyaXB0aW9uIjoiYXZlcmFnZVV0aWxpemF0aW9uIGlzIHRoZSB0YXJnZXQgdmFsdWUgb2YgdGhlIGF2ZXJhZ2Ugb2YgdGhlIHJlc291cmNlIG1ldHJpYyBhY3Jvc3MgYWxsIHJlbGV2YW50IHBvZHMsIHJlcHJlc2VudGVkIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgcmVxdWVzdGVkIHZhbHVlIG9mIHRoZSByZXNvdXJjZSBmb3IgdGhlIHBvZHMuIEN1cnJlbnRseSBvbmx5IHZhbGlkIGZvciBSZXNvdXJjZSBtZXRyaWMgc291cmNlIHR5cGUiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sImF2ZXJhZ2VWYWx1ZSI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoiYXZlcmFnZVZhbHVlIGlzIHRoZSB0YXJnZXQgdmFsdWUgb2YgdGhlIGF2ZXJhZ2Ugb2YgdGhlIG1ldHJpYyBhY3Jvc3MgYWxsIHJlbGV2YW50IHBvZHMgKGFzIGEgcXVhbnRpdHkpIiwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoidHlwZSByZXByZXNlbnRzIHdoZXRoZXIgdGhlIG1ldHJpYyB0eXBlIGlzIFV0aWxpemF0aW9uLCBWYWx1ZSwgb3IgQXZlcmFnZVZhbHVlIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoidmFsdWUgaXMgdGhlIHRhcmdldCB2YWx1ZSBvZiB0aGUgbWV0cmljIChhcyBhIHF1YW50aXR5KS4iLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX19LCJyZXF1aXJlZCI6WyJ0eXBlIl0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbIm1ldHJpYyIsInRhcmdldCJdLCJ0eXBlIjoib2JqZWN0In0sIm9iamVjdCI6eyJkZXNjcmlwdGlvbiI6Im9iamVjdCByZWZlcnMgdG8gYSBtZXRyaWMgZGVzY3JpYmluZyBhIHNpbmdsZSBrdWJlcm5ldGVzIG9iamVjdCAoZm9yIGV4YW1wbGUsIGhpdHMtcGVyLXNlY29uZCBvbiBhbiBJbmdyZXNzIG9iamVjdCkuIiwicHJvcGVydGllcyI6eyJkZXNjcmliZWRPYmplY3QiOnsiZGVzY3JpcHRpb24iOiJkZXNjcmliZWRPYmplY3Qgc3BlY2lmaWVzIHRoZSBkZXNjcmlwdGlvbnMgb2YgYSBvYmplY3Qsc3VjaCBhcyBraW5kLG5hbWUgYXBpVmVyc2lvbiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6ImFwaVZlcnNpb24gaXMgdGhlIEFQSSB2ZXJzaW9uIG9mIHRoZSByZWZlcmVudCIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6ImtpbmQgaXMgdGhlIGtpbmQgb2YgdGhlIHJlZmVyZW50OyBNb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoibmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgcmVmZXJlbnQ7IE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbmFtZXMvI25hbWVzIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsia2luZCIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJtZXRyaWMiOnsiZGVzY3JpcHRpb24iOiJtZXRyaWMgaWRlbnRpZmllcyB0aGUgdGFyZ2V0IG1ldHJpYyBieSBuYW1lIGFuZCBzZWxlY3RvciIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIGdpdmVuIG1ldHJpYyIsInR5cGUiOiJzdHJpbmcifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJzZWxlY3RvciBpcyB0aGUgc3RyaW5nLWVuY29kZWQgZm9ybSBvZiBhIHN0YW5kYXJkIGt1YmVybmV0ZXMgbGFiZWwgc2VsZWN0b3IgZm9yIHRoZSBnaXZlbiBtZXRyaWMgV2hlbiBzZXQsIGl0IGlzIHBhc3NlZCBhcyBhbiBhZGRpdGlvbmFsIHBhcmFtZXRlciB0byB0aGUgbWV0cmljcyBzZXJ2ZXIgZm9yIG1vcmUgc3BlY2lmaWMgbWV0cmljcyBzY29waW5nLiBXaGVuIHVuc2V0LCBqdXN0IHRoZSBtZXRyaWNOYW1lIHdpbGwgYmUgdXNlZCB0byBnYXRoZXIgbWV0cmljcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy4gVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbiwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsIHRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzIG1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZSBvcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidGFyZ2V0Ijp7ImRlc2NyaXB0aW9uIjoidGFyZ2V0IHNwZWNpZmllcyB0aGUgdGFyZ2V0IHZhbHVlIGZvciB0aGUgZ2l2ZW4gbWV0cmljIiwicHJvcGVydGllcyI6eyJhdmVyYWdlVXRpbGl6YXRpb24iOnsiZGVzY3JpcHRpb24iOiJhdmVyYWdlVXRpbGl6YXRpb24gaXMgdGhlIHRhcmdldCB2YWx1ZSBvZiB0aGUgYXZlcmFnZSBvZiB0aGUgcmVzb3VyY2UgbWV0cmljIGFjcm9zcyBhbGwgcmVsZXZhbnQgcG9kcywgcmVwcmVzZW50ZWQgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSByZXF1ZXN0ZWQgdmFsdWUgb2YgdGhlIHJlc291cmNlIGZvciB0aGUgcG9kcy4gQ3VycmVudGx5IG9ubHkgdmFsaWQgZm9yIFJlc291cmNlIG1ldHJpYyBzb3VyY2UgdHlwZSIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiYXZlcmFnZVZhbHVlIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwiZGVzY3JpcHRpb24iOiJhdmVyYWdlVmFsdWUgaXMgdGhlIHRhcmdldCB2YWx1ZSBvZiB0aGUgYXZlcmFnZSBvZiB0aGUgbWV0cmljIGFjcm9zcyBhbGwgcmVsZXZhbnQgcG9kcyAoYXMgYSBxdWFudGl0eSkiLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJ0eXBlIHJlcHJlc2VudHMgd2hldGhlciB0aGUgbWV0cmljIHR5cGUgaXMgVXRpbGl6YXRpb24sIFZhbHVlLCBvciBBdmVyYWdlVmFsdWUiLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwiZGVzY3JpcHRpb24iOiJ2YWx1ZSBpcyB0aGUgdGFyZ2V0IHZhbHVlIG9mIHRoZSBtZXRyaWMgKGFzIGEgcXVhbnRpdHkpLiIsInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9fSwicmVxdWlyZWQiOlsiZGVzY3JpYmVkT2JqZWN0IiwibWV0cmljIiwidGFyZ2V0Il0sInR5cGUiOiJvYmplY3QifSwicG9kcyI6eyJkZXNjcmlwdGlvbiI6InBvZHMgcmVmZXJzIHRvIGEgbWV0cmljIGRlc2NyaWJpbmcgZWFjaCBwb2QgaW4gdGhlIGN1cnJlbnQgc2NhbGUgdGFyZ2V0IChmb3IgZXhhbXBsZSwgdHJhbnNhY3Rpb25zLXByb2Nlc3NlZC1wZXItc2Vjb25kKS4gIFRoZSB2YWx1ZXMgd2lsbCBiZSBhdmVyYWdlZCB0b2dldGhlciBiZWZvcmUgYmVpbmcgY29tcGFyZWQgdG8gdGhlIHRhcmdldCB2YWx1ZS4iLCJwcm9wZXJ0aWVzIjp7Im1ldHJpYyI6eyJkZXNjcmlwdGlvbiI6Im1ldHJpYyBpZGVudGlmaWVzIHRoZSB0YXJnZXQgbWV0cmljIGJ5IG5hbWUgYW5kIHNlbGVjdG9yIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoibmFtZSBpcyB0aGUgbmFtZSBvZiB0aGUgZ2l2ZW4gbWV0cmljIiwidHlwZSI6InN0cmluZyJ9LCJzZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6InNlbGVjdG9yIGlzIHRoZSBzdHJpbmctZW5jb2RlZCBmb3JtIG9mIGEgc3RhbmRhcmQga3ViZXJuZXRlcyBsYWJlbCBzZWxlY3RvciBmb3IgdGhlIGdpdmVuIG1ldHJpYyBXaGVuIHNldCwgaXQgaXMgcGFzc2VkIGFzIGFuIGFkZGl0aW9uYWwgcGFyYW1ldGVyIHRvIHRoZSBtZXRyaWNzIHNlcnZlciBmb3IgbW9yZSBzcGVjaWZpYyBtZXRyaWNzIHNjb3BpbmcuIFdoZW4gdW5zZXQsIGp1c3QgdGhlIG1ldHJpY05hbWUgd2lsbCBiZSB1c2VkIHRvIGdhdGhlciBtZXRyaWNzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLiBWYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLCB0aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCwgdGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpYyBtZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHMgbWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlIG9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0YXJnZXQiOnsiZGVzY3JpcHRpb24iOiJ0YXJnZXQgc3BlY2lmaWVzIHRoZSB0YXJnZXQgdmFsdWUgZm9yIHRoZSBnaXZlbiBtZXRyaWMiLCJwcm9wZXJ0aWVzIjp7ImF2ZXJhZ2VVdGlsaXphdGlvbiI6eyJkZXNjcmlwdGlvbiI6ImF2ZXJhZ2VVdGlsaXphdGlvbiBpcyB0aGUgdGFyZ2V0IHZhbHVlIG9mIHRoZSBhdmVyYWdlIG9mIHRoZSByZXNvdXJjZSBtZXRyaWMgYWNyb3NzIGFsbCByZWxldmFudCBwb2RzLCByZXByZXNlbnRlZCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIHJlcXVlc3RlZCB2YWx1ZSBvZiB0aGUgcmVzb3VyY2UgZm9yIHRoZSBwb2RzLiBDdXJyZW50bHkgb25seSB2YWxpZCBmb3IgUmVzb3VyY2UgbWV0cmljIHNvdXJjZSB0eXBlIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJhdmVyYWdlVmFsdWUiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJkZXNjcmlwdGlvbiI6ImF2ZXJhZ2VWYWx1ZSBpcyB0aGUgdGFyZ2V0IHZhbHVlIG9mIHRoZSBhdmVyYWdlIG9mIHRoZSBtZXRyaWMgYWNyb3NzIGFsbCByZWxldmFudCBwb2RzIChhcyBhIHF1YW50aXR5KSIsInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6InR5cGUgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBtZXRyaWMgdHlwZSBpcyBVdGlsaXphdGlvbiwgVmFsdWUsIG9yIEF2ZXJhZ2VWYWx1ZSIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJkZXNjcmlwdGlvbiI6InZhbHVlIGlzIHRoZSB0YXJnZXQgdmFsdWUgb2YgdGhlIG1ldHJpYyAoYXMgYSBxdWFudGl0eSkuIiwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJtZXRyaWMiLCJ0YXJnZXQiXSwidHlwZSI6Im9iamVjdCJ9LCJyZXNvdXJjZSI6eyJkZXNjcmlwdGlvbiI6InJlc291cmNlIHJlZmVycyB0byBhIHJlc291cmNlIG1ldHJpYyAoc3VjaCBhcyB0aG9zZSBzcGVjaWZpZWQgaW4gcmVxdWVzdHMgYW5kIGxpbWl0cykga25vd24gdG8gS3ViZXJuZXRlcyBkZXNjcmliaW5nIGVhY2ggcG9kIGluIHRoZSBjdXJyZW50IHNjYWxlIHRhcmdldCAoZS5nLiBDUFUgb3IgbWVtb3J5KS4gU3VjaCBtZXRyaWNzIGFyZSBidWlsdCBpbiB0byBLdWJlcm5ldGVzLCBhbmQgaGF2ZSBzcGVjaWFsIHNjYWxpbmcgb3B0aW9ucyBvbiB0b3Agb2YgdGhvc2UgYXZhaWxhYmxlIHRvIG5vcm1hbCBwZXItcG9kIG1ldHJpY3MgdXNpbmcgdGhlIFwicG9kc1wiIHNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJuYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBpbiBxdWVzdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInRhcmdldCI6eyJkZXNjcmlwdGlvbiI6InRhcmdldCBzcGVjaWZpZXMgdGhlIHRhcmdldCB2YWx1ZSBmb3IgdGhlIGdpdmVuIG1ldHJpYyIsInByb3BlcnRpZXMiOnsiYXZlcmFnZVV0aWxpemF0aW9uIjp7ImRlc2NyaXB0aW9uIjoiYXZlcmFnZVV0aWxpemF0aW9uIGlzIHRoZSB0YXJnZXQgdmFsdWUgb2YgdGhlIGF2ZXJhZ2Ugb2YgdGhlIHJlc291cmNlIG1ldHJpYyBhY3Jvc3MgYWxsIHJlbGV2YW50IHBvZHMsIHJlcHJlc2VudGVkIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgcmVxdWVzdGVkIHZhbHVlIG9mIHRoZSByZXNvdXJjZSBmb3IgdGhlIHBvZHMuIEN1cnJlbnRseSBvbmx5IHZhbGlkIGZvciBSZXNvdXJjZSBtZXRyaWMgc291cmNlIHR5cGUiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sImF2ZXJhZ2VWYWx1ZSI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoiYXZlcmFnZVZhbHVlIGlzIHRoZSB0YXJnZXQgdmFsdWUgb2YgdGhlIGF2ZXJhZ2Ugb2YgdGhlIG1ldHJpYyBhY3Jvc3MgYWxsIHJlbGV2YW50IHBvZHMgKGFzIGEgcXVhbnRpdHkpIiwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoidHlwZSByZXByZXNlbnRzIHdoZXRoZXIgdGhlIG1ldHJpYyB0eXBlIGlzIFV0aWxpemF0aW9uLCBWYWx1ZSwgb3IgQXZlcmFnZVZhbHVlIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoidmFsdWUgaXMgdGhlIHRhcmdldCB2YWx1ZSBvZiB0aGUgbWV0cmljIChhcyBhIHF1YW50aXR5KS4iLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX19LCJyZXF1aXJlZCI6WyJ0eXBlIl0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbIm5hbWUiLCJ0YXJnZXQiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoidHlwZSBpcyB0aGUgdHlwZSBvZiBtZXRyaWMgc291cmNlLiAgSXQgc2hvdWxkIGJlIG9uZSBvZiBcIkNvbnRhaW5lclJlc291cmNlXCIsIFwiRXh0ZXJuYWxcIiwgXCJPYmplY3RcIiwgXCJQb2RzXCIgb3IgXCJSZXNvdXJjZVwiLCBlYWNoIG1hcHBpbmcgdG8gYSBtYXRjaGluZyBmaWVsZCBpbiB0aGUgb2JqZWN0LiBOb3RlOiBcIkNvbnRhaW5lclJlc291cmNlXCIgdHlwZSBpcyBhdmFpbGFibGUgb24gd2hlbiB0aGUgZmVhdHVyZS1nYXRlIEhQQUNvbnRhaW5lck1ldHJpY3MgaXMgZW5hYmxlZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWluUmVwbGljYXMiOnsiZGVzY3JpcHRpb24iOiJtaW5SZXBsaWNhcyBpcyB0aGUgbG93ZXIgbGltaXQgZm9yIHRoZSBudW1iZXIgb2YgcmVwbGljYXMgdG8gd2hpY2ggdGhlIGF1dG9zY2FsZXIgY2FuIHNjYWxlIGRvd24uICBJdCBkZWZhdWx0cyB0byAxIHBvZC4gIG1pblJlcGxpY2FzIGlzIGFsbG93ZWQgdG8gYmUgMCBpZiB0aGUgYWxwaGEgZmVhdHVyZSBnYXRlIEhQQVNjYWxlVG9aZXJvIGlzIGVuYWJsZWQgYW5kIGF0IGxlYXN0IG9uZSBPYmplY3Qgb3IgRXh0ZXJuYWwgbWV0cmljIGlzIGNvbmZpZ3VyZWQuICBTY2FsaW5nIGlzIGFjdGl2ZSBhcyBsb25nIGFzIGF0IGxlYXN0IG9uZSBtZXRyaWMgdmFsdWUgaXMgYXZhaWxhYmxlLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbIm1heFJlcGxpY2FzIl0sInR5cGUiOiJvYmplY3QifSwic3RhdGljIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlndXJlIGEgc3RhdGljIG51bWJlciBvZiByZXBsaWNhcy4gRGVmYXVsdHMgdG8gMS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlcyBob2xkcyB0aGUgcmVzb3VyY2UgcmVxdWlyZW1lbnRzIHRvIHVzZSBmb3IgdGhlIEVudm95IERlcGxveW1lbnQuIERlZmF1bHRzIHRvIG5vIHJlc291cmNlIHJlcXVlc3RzIG5vciBsaW1pdHMuIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLCB0aGF0IGFyZSB1c2VkIGJ5IHRoaXMgY29udGFpbmVyLiBcbiBUaGlzIGlzIGFuIGFscGhhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyB0aGUgRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuIFxuIFRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZiB0aGUgUG9kIHdoZXJlIHRoaXMgZmllbGQgaXMgdXNlZC4gSXQgbWFrZXMgdGhhdCByZXNvdXJjZSBhdmFpbGFibGUgaW5zaWRlIGEgY29udGFpbmVyLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC1tYXAta2V5cyI6WyJuYW1lIl0sIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJtYXAifSwibGltaXRzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IkxpbWl0cyBkZXNjcmliZXMgdGhlIG1heGltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIGFsbG93ZWQuIE1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLiBJZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsIG90aGVyd2lzZSB0byBhbiBpbXBsZW1lbnRhdGlvbi1kZWZpbmVkIHZhbHVlLiBSZXF1ZXN0cyBjYW5ub3QgZXhjZWVkIExpbWl0cy4gTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNodXRkb3duTWFuYWdlciI6eyJkZXNjcmlwdGlvbiI6IlNodXRkb3duTWFuYWdlciBkZWZpbmVzIGNvbmZpZ3VyYXRpb24gZm9yIEVudm95J3Mgc2h1dGRvd24gbWFuYWdlciwgd2hpY2ggaGFuZGxlcyBncmFjZWZ1bCB0ZXJtaW5hdGlvbiBvZiBFbnZveSBwb2RzIiwicHJvcGVydGllcyI6eyJkcmFpblN0cmF0ZWd5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGRyYWluIHN0cmF0ZWd5IGZvciB0aGUgZ3JhY2VmdWwgc2h1dGRvd24uIEl0IGFsc28gYWZmZWN0cyBkcmFpbiB3aGVuIGxpc3RlbmVycyBhcmUgbW9kaWZpZWQgb3IgcmVtb3ZlZCB2aWEgTERTLiIsImVudW0iOlsiZ3JhZHVhbCIsImltbWVkaWF0ZSJdLCJ0eXBlIjoic3RyaW5nIn0sImRyYWluVGltZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSB0aW1lIGluIHNlY29uZHMgdGhhdCBFbnZveSB3aWxsIGRyYWluIGNvbm5lY3Rpb25zIGR1cmluZyBzaHV0ZG93bi4gSXQgYWxzbyBhZmZlY3RzIGRyYWluIGJlaGF2aW91ciB3aGVuIGxpc3RlbmVycyBhcmUgbW9kaWZpZWQgb3IgcmVtb3ZlZCB2aWEgTERTLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiaW1hZ2UiOnsiZGVzY3JpcHRpb24iOiJJbWFnZSBpcyB0aGUgc2h1dGRvd24gbWFuYWdlciBpbWFnZSBhbmQgdGFnIHRvIHVzZSIsInR5cGUiOiJzdHJpbmcifSwic2VydmVyUG9ydCI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ3VyZXMgdGhlIHN1dGRvd24gbWFuYWdlcidzIHNlcnZlciBwb3J0LiBEZWZhdWx0cyB0byA4MDkwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImRpc2NvdmVyeVNlcnZpY2VSZWYiLCJlbnZveUNvbmZpZ1JlZiJdLCJ0eXBlIjoib2JqZWN0In0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IkVudm95RGVwbG95bWVudFN0YXR1cyBkZWZpbmVzIHRoZSBvYnNlcnZlZCBzdGF0ZSBvZiBFbnZveURlcGxveW1lbnQiLCJwcm9wZXJ0aWVzIjp7ImRlcGxveW1lbnROYW1lIjp7InR5cGUiOiJzdHJpbmcifSwiZGVwbG95bWVudFN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IkRlcGxveW1lbnRTdGF0dXMgaXMgdGhlIG1vc3QgcmVjZW50bHkgb2JzZXJ2ZWQgc3RhdHVzIG9mIHRoZSBEZXBsb3ltZW50LiIsInByb3BlcnRpZXMiOnsiYXZhaWxhYmxlUmVwbGljYXMiOnsiZGVzY3JpcHRpb24iOiJUb3RhbCBudW1iZXIgb2YgYXZhaWxhYmxlIHBvZHMgKHJlYWR5IGZvciBhdCBsZWFzdCBtaW5SZWFkeVNlY29uZHMpIHRhcmdldGVkIGJ5IHRoaXMgZGVwbG95bWVudC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sImNvbGxpc2lvbkNvdW50Ijp7ImRlc2NyaXB0aW9uIjoiQ291bnQgb2YgaGFzaCBjb2xsaXNpb25zIGZvciB0aGUgRGVwbG95bWVudC4gVGhlIERlcGxveW1lbnQgY29udHJvbGxlciB1c2VzIHRoaXMgZmllbGQgYXMgYSBjb2xsaXNpb24gYXZvaWRhbmNlIG1lY2hhbmlzbSB3aGVuIGl0IG5lZWRzIHRvIGNyZWF0ZSB0aGUgbmFtZSBmb3IgdGhlIG5ld2VzdCBSZXBsaWNhU2V0LiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiY29uZGl0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgdGhlIGxhdGVzdCBhdmFpbGFibGUgb2JzZXJ2YXRpb25zIG9mIGEgZGVwbG95bWVudCdzIGN1cnJlbnQgc3RhdGUuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJEZXBsb3ltZW50Q29uZGl0aW9uIGRlc2NyaWJlcyB0aGUgc3RhdGUgb2YgYSBkZXBsb3ltZW50IGF0IGEgY2VydGFpbiBwb2ludC4iLCJwcm9wZXJ0aWVzIjp7Imxhc3RUcmFuc2l0aW9uVGltZSI6eyJkZXNjcmlwdGlvbiI6Ikxhc3QgdGltZSB0aGUgY29uZGl0aW9uIHRyYW5zaXRpb25lZCBmcm9tIG9uZSBzdGF0dXMgdG8gYW5vdGhlci4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJ0eXBlIjoic3RyaW5nIn0sImxhc3RVcGRhdGVUaW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGxhc3QgdGltZSB0aGlzIGNvbmRpdGlvbiB3YXMgdXBkYXRlZC4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJ0eXBlIjoic3RyaW5nIn0sIm1lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJBIGh1bWFuIHJlYWRhYmxlIG1lc3NhZ2UgaW5kaWNhdGluZyBkZXRhaWxzIGFib3V0IHRoZSB0cmFuc2l0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwicmVhc29uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHJlYXNvbiBmb3IgdGhlIGNvbmRpdGlvbidzIGxhc3QgdHJhbnNpdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IlN0YXR1cyBvZiB0aGUgY29uZGl0aW9uLCBvbmUgb2YgVHJ1ZSwgRmFsc2UsIFVua25vd24uIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiVHlwZSBvZiBkZXBsb3ltZW50IGNvbmRpdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJzdGF0dXMiLCJ0eXBlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm9ic2VydmVkR2VuZXJhdGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBnZW5lcmF0aW9uIG9ic2VydmVkIGJ5IHRoZSBkZXBsb3ltZW50IGNvbnRyb2xsZXIuIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9LCJyZWFkeVJlcGxpY2FzIjp7ImRlc2NyaXB0aW9uIjoicmVhZHlSZXBsaWNhcyBpcyB0aGUgbnVtYmVyIG9mIHBvZHMgdGFyZ2V0ZWQgYnkgdGhpcyBEZXBsb3ltZW50IHdpdGggYSBSZWFkeSBDb25kaXRpb24uIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJyZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRvdGFsIG51bWJlciBvZiBub24tdGVybWluYXRlZCBwb2RzIHRhcmdldGVkIGJ5IHRoaXMgZGVwbG95bWVudCAodGhlaXIgbGFiZWxzIG1hdGNoIHRoZSBzZWxlY3RvcikuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1bmF2YWlsYWJsZVJlcGxpY2FzIjp7ImRlc2NyaXB0aW9uIjoiVG90YWwgbnVtYmVyIG9mIHVuYXZhaWxhYmxlIHBvZHMgdGFyZ2V0ZWQgYnkgdGhpcyBkZXBsb3ltZW50LiBUaGlzIGlzIHRoZSB0b3RhbCBudW1iZXIgb2YgcG9kcyB0aGF0IGFyZSBzdGlsbCByZXF1aXJlZCBmb3IgdGhlIGRlcGxveW1lbnQgdG8gaGF2ZSAxMDAlIGF2YWlsYWJsZSBjYXBhY2l0eS4gVGhleSBtYXkgZWl0aGVyIGJlIHBvZHMgdGhhdCBhcmUgcnVubmluZyBidXQgbm90IHlldCBhdmFpbGFibGUgb3IgcG9kcyB0aGF0IHN0aWxsIGhhdmUgbm90IGJlZW4gY3JlYXRlZC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInVwZGF0ZWRSZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRvdGFsIG51bWJlciBvZiBub24tdGVybWluYXRlZCBwb2RzIHRhcmdldGVkIGJ5IHRoaXMgZGVwbG95bWVudCB0aGF0IGhhdmUgdGhlIGRlc2lyZWQgdGVtcGxhdGUgc3BlYy4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpudWxsLCJzdG9yZWRWZXJzaW9ucyI6bnVsbH19 +relatedImages: +- image: quay.io/3scale/marin3r-bundle:v0.13.2-alpha.1 + name: "" +- image: quay.io/3scale/marin3r:v0.13.2-alpha.1 + name: "" +schema: olm.bundle diff --git a/catalog/marin3r/objects/marin3r.v0.13.2-alpha.2.clusterserviceversion.yaml b/catalog/marin3r/objects/marin3r.v0.13.2-alpha.2.clusterserviceversion.yaml new file mode 100644 index 00000000..a9b4bc43 --- /dev/null +++ b/catalog/marin3r/objects/marin3r.v0.13.2-alpha.2.clusterserviceversion.yaml @@ -0,0 +1,70 @@ +--- +image: quay.io/3scale/marin3r-bundle:v0.13.2-alpha.2 +name: marin3r.v0.13.2-alpha.2 +package: marin3r +properties: +- type: olm.gvk + value: + group: marin3r.3scale.net + kind: EnvoyConfig + version: v1alpha1 +- type: olm.gvk + value: + group: marin3r.3scale.net + kind: EnvoyConfigRevision + version: v1alpha1 +- type: olm.gvk + value: + group: operator.marin3r.3scale.net + kind: DiscoveryService + version: v1alpha1 +- type: olm.gvk + value: + group: operator.marin3r.3scale.net + kind: DiscoveryServiceCertificate + version: v1alpha1 +- type: olm.gvk + value: + group: operator.marin3r.3scale.net + kind: EnvoyDeployment + version: v1alpha1 +- type: olm.package + value: + packageName: marin3r + version: 0.13.2-alpha.2 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJraW5kIjoiU2VydmljZSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsLCJsYWJlbHMiOnsiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9LCJuYW1lIjoibWFyaW4zci1jb250cm9sbGVyLW1hbmFnZXItbWV0cmljcy1zZXJ2aWNlIn0sInNwZWMiOnsicG9ydHMiOlt7Im5hbWUiOiJtZXRyaWNzIiwicG9ydCI6ODA4MCwicHJvdG9jb2wiOiJUQ1AiLCJ0YXJnZXRQb3J0IjoibWV0cmljcyJ9XSwic2VsZWN0b3IiOnsiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3RhdHVzIjp7ImxvYWRCYWxhbmNlciI6e319fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJkYXRhIjp7ImNvbnRyb2xsZXJfbWFuYWdlcl9jb25maWcueWFtbCI6ImFwaVZlcnNpb246IGNvbnRyb2xsZXItcnVudGltZS5zaWdzLms4cy5pby92MWFscGhhMVxua2luZDogQ29udHJvbGxlck1hbmFnZXJDb25maWdcbmhlYWx0aDpcbiAgaGVhbHRoUHJvYmVCaW5kQWRkcmVzczogOjgwODFcbm1ldHJpY3M6XG4gIGJpbmRBZGRyZXNzOiAxMjcuMC4wLjE6ODA4MFxud2ViaG9vazpcbiAgcG9ydDogOTQ0M1xubGVhZGVyRWxlY3Rpb246XG4gIGxlYWRlckVsZWN0OiB0cnVlXG4gIHJlc291cmNlTmFtZTogOTQ0NGYxZDcuM3NjYWxlLm5ldFxuIn0sImtpbmQiOiJDb25maWdNYXAiLCJtZXRhZGF0YSI6eyJuYW1lIjoibWFyaW4zci1tYW5hZ2VyLWNvbmZpZyJ9fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoicmJhYy5hdXRob3JpemF0aW9uLms4cy5pby92MSIsImtpbmQiOiJDbHVzdGVyUm9sZSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsLCJuYW1lIjoibWFyaW4zci1tZXRyaWNzLXJlYWRlciJ9LCJydWxlcyI6W3sibm9uUmVzb3VyY2VVUkxzIjpbIi9tZXRyaWNzIl0sInZlcmJzIjpbImdldCJdfV19 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoidjEiLCJraW5kIjoiU2VydmljZSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsLCJuYW1lIjoibWFyaW4zci13ZWJob29rLXNlcnZpY2UifSwic3BlYyI6eyJwb3J0cyI6W3sicG9ydCI6NDQzLCJwcm90b2NvbCI6IlRDUCIsInRhcmdldFBvcnQiOjk0NDN9XSwic2VsZWN0b3IiOnsiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItd2ViaG9vayJ9fSwic3RhdHVzIjp7ImxvYWRCYWxhbmNlciI6e319fQ== +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjE0LjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsIm5hbWUiOiJlbnZveWNvbmZpZ3JldmlzaW9ucy5tYXJpbjNyLjNzY2FsZS5uZXQifSwic3BlYyI6eyJncm91cCI6Im1hcmluM3IuM3NjYWxlLm5ldCIsIm5hbWVzIjp7ImtpbmQiOiJFbnZveUNvbmZpZ1JldmlzaW9uIiwibGlzdEtpbmQiOiJFbnZveUNvbmZpZ1JldmlzaW9uTGlzdCIsInBsdXJhbCI6ImVudm95Y29uZmlncmV2aXNpb25zIiwic2hvcnROYW1lcyI6WyJlY3IiXSwic2luZ3VsYXIiOiJlbnZveWNvbmZpZ3JldmlzaW9uIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJhZGRpdGlvbmFsUHJpbnRlckNvbHVtbnMiOlt7Impzb25QYXRoIjoiLnNwZWMubm9kZUlEIiwibmFtZSI6Ik5vZGUgSUQiLCJ0eXBlIjoic3RyaW5nIn0seyJqc29uUGF0aCI6Ii5zcGVjLmVudm95QVBJIiwibmFtZSI6IkVudm95IEFQSSIsInR5cGUiOiJzdHJpbmcifSx7Impzb25QYXRoIjoiLnNwZWMudmVyc2lvbiIsIm5hbWUiOiJWZXJzaW9uIiwidHlwZSI6InN0cmluZyJ9LHsianNvblBhdGgiOiIuc3RhdHVzLnB1Ymxpc2hlZCIsIm5hbWUiOiJQdWJsaXNoZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9LHsiZm9ybWF0IjoiZGF0ZS10aW1lIiwianNvblBhdGgiOiIubWV0YWRhdGEuY3JlYXRpb25UaW1lc3RhbXAiLCJuYW1lIjoiQ3JlYXRlZCBBdCIsInR5cGUiOiJzdHJpbmcifSx7ImZvcm1hdCI6ImRhdGUtdGltZSIsImpzb25QYXRoIjoiLnN0YXR1cy5sYXN0UHVibGlzaGVkQXQiLCJuYW1lIjoiTGFzdCBQdWJsaXNoZWQgQXQiLCJ0eXBlIjoic3RyaW5nIn0seyJqc29uUGF0aCI6Ii5zdGF0dXMudGFpbnRlZCIsIm5hbWUiOiJUYWludGVkIiwidHlwZSI6ImJvb2xlYW4ifV0sIm5hbWUiOiJ2MWFscGhhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJFbnZveUNvbmZpZ1JldmlzaW9uIGlzIGFuIGludGVybmFsIHJlc291cmNlIHRoYXQgc3RvcmVzIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBhbiBFbnZveUNvbmZpZ1xucmVzb3VyY2UuIEVudm95Q29uZmlnUmV2aXNpb25zIGFyZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgYW5kIGRlbGV0ZWQgYnkgdGhlIEVudm95Q29uZmlnXG5jb250cm9sbGVyIGFuZCBhcmUgbm90IGludGVuZGVkIHRvIGJlIGRpcmVjdGx5IHVzZWQuIFVzZSBFbnZveUNvbmZpZyBvYmplY3RzIGluc3RlYWQuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LlxuU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kXG5tYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuXG5TZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by5cbkNhbm5vdCBiZSB1cGRhdGVkLlxuSW4gQ2FtZWxDYXNlLlxuTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiRW52b3lDb25maWdSZXZpc2lvblNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBFbnZveUNvbmZpZ1JldmlzaW9uIiwicHJvcGVydGllcyI6eyJlbnZveUFQSSI6eyJkZXNjcmlwdGlvbiI6IkVudm95QVBJIGlzIHRoZSB2ZXJzaW9uIG9mIGVudm95J3MgQVBJIHRvIHVzZS4gRGVmYXVsdHMgdG8gdjMuIiwiZW51bSI6WyJ2MyJdLCJ0eXBlIjoic3RyaW5nIn0sImVudm95UmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoiRW52b3lSZXNvdXJjZXMgaG9sZHMgdGhlIGRpZmZlcmVudCB0eXBlcyBvZiByZXNvdXJjZXMgc3Vwb3J0ZWQgYnkgdGhlIGVudm95IGRpc2NvdmVyeSBzZXJ2aWNlIiwicHJvcGVydGllcyI6eyJjbHVzdGVycyI6eyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgQ2x1c3RlciByZXNvdXJjZSB0eXBlLlxuQVBJIFYzIHJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktdjMvY29uZmlnL2NsdXN0ZXIvdjMvY2x1c3Rlci5wcm90byIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRW52b3lSZXNvdXJjZSBob2xkcyBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIGFuIGVudm95XG5yZXNvdXJjZSIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHJlc291cmNlLlxuREVQUkVDQVRFRDogdGhpcyBmaWVsZCBoYXMgbm8gZWZmZWN0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW5cbnVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3Nlc1xuaXMgaW5jbHVkZWQgaW4gdGhlIHJlc291cmNlIGl0c2VsZi4gUmVmZXIgdG8gdGhlIGVudm95IEFQSSByZWZlcmVuY2VcbnRvIGNoZWNrIGhvdyB0aGUgbmFtZSBpcyBzcGVjaWZpZWQgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVudm95IHJlc291cmNlIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidmFsdWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiZW5kcG9pbnRzIjp7ImRlc2NyaXB0aW9uIjoiRW5kcG9pbnRzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgQ2x1c3RlckxvYWRBc3NpZ25tZW50IHJlc291cmNlIHR5cGUuXG5BUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvZW5kcG9pbnQvdjMvZW5kcG9pbnQucHJvdG8iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkVudm95UmVzb3VyY2UgaG9sZHMgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiBhbiBlbnZveVxucmVzb3VyY2UiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZveSByZXNvdXJjZS5cbkRFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuXG51cGNvbWluZyByZWxlYXNlLiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2VzIGZvciBkaXNjb3ZlcnkgcHVycG9zZXNcbmlzIGluY2x1ZGVkIGluIHRoZSByZXNvdXJjZSBpdHNlbGYuIFJlZmVyIHRvIHRoZSBlbnZveSBBUEkgcmVmZXJlbmNlXG50byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBlbnZveSByZXNvdXJjZSIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInZhbHVlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sImV4dGVuc2lvbkNvbmZpZ3MiOnsiZGVzY3JpcHRpb24iOiJFeHRlbnNpb25Db25maWdzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgRXh0ZW5zaW9uQ29uZmlnIHJlc291cmNlIHR5cGVcbkFQSSBWMyByZWZlcmVuY2U6IGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLXYzL2NvbmZpZy9jb3JlL3YzL2V4dGVuc2lvbi5wcm90byIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRW52b3lSZXNvdXJjZSBob2xkcyBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIGFuIGVudm95XG5yZXNvdXJjZSIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHJlc291cmNlLlxuREVQUkVDQVRFRDogdGhpcyBmaWVsZCBoYXMgbm8gZWZmZWN0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW5cbnVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3Nlc1xuaXMgaW5jbHVkZWQgaW4gdGhlIHJlc291cmNlIGl0c2VsZi4gUmVmZXIgdG8gdGhlIGVudm95IEFQSSByZWZlcmVuY2VcbnRvIGNoZWNrIGhvdyB0aGUgbmFtZSBpcyBzcGVjaWZpZWQgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVudm95IHJlc291cmNlIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidmFsdWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibGlzdGVuZXJzIjp7ImRlc2NyaXB0aW9uIjoiTGlzdGVuZXJzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgTGlzdGVuZXIgcmVzb3VyY2UgdHlwZS5cbkFQSSBWMyByZWZlcmVuY2U6IGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLXYzL2NvbmZpZy9saXN0ZW5lci92My9saXN0ZW5lci5wcm90byIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRW52b3lSZXNvdXJjZSBob2xkcyBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIGFuIGVudm95XG5yZXNvdXJjZSIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHJlc291cmNlLlxuREVQUkVDQVRFRDogdGhpcyBmaWVsZCBoYXMgbm8gZWZmZWN0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW5cbnVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3Nlc1xuaXMgaW5jbHVkZWQgaW4gdGhlIHJlc291cmNlIGl0c2VsZi4gUmVmZXIgdG8gdGhlIGVudm95IEFQSSByZWZlcmVuY2VcbnRvIGNoZWNrIGhvdyB0aGUgbmFtZSBpcyBzcGVjaWZpZWQgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVudm95IHJlc291cmNlIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidmFsdWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicm91dGVzIjp7ImRlc2NyaXB0aW9uIjoiUm91dGVzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgUm91dGUgcmVzb3VyY2UgdHlwZS5cbkFQSSBWMyByZWZlcmVuY2U6IGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLXYzL2NvbmZpZy9yb3V0ZS92My9yb3V0ZS5wcm90byIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRW52b3lSZXNvdXJjZSBob2xkcyBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIGFuIGVudm95XG5yZXNvdXJjZSIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHJlc291cmNlLlxuREVQUkVDQVRFRDogdGhpcyBmaWVsZCBoYXMgbm8gZWZmZWN0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW5cbnVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3Nlc1xuaXMgaW5jbHVkZWQgaW4gdGhlIHJlc291cmNlIGl0c2VsZi4gUmVmZXIgdG8gdGhlIGVudm95IEFQSSByZWZlcmVuY2VcbnRvIGNoZWNrIGhvdyB0aGUgbmFtZSBpcyBzcGVjaWZpZWQgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVudm95IHJlc291cmNlIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidmFsdWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwicnVudGltZXMiOnsiZGVzY3JpcHRpb24iOiJSdW50aW1lcyBpcyBhIGxpc3Qgb2YgdGhlIGVudm95IFJ1bnRpbWUgcmVzb3VyY2UgdHlwZS5cbkFQSSBWMyByZWZlcmVuY2U6IGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLXYzL3NlcnZpY2UvcnVudGltZS92My9ydGRzLnByb3RvIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveVJlc291cmNlIGhvbGRzIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgYW4gZW52b3lcbnJlc291cmNlIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuXG5ERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhblxudXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzXG5pcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZVxudG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ2YWx1ZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJzY29wZWRSb3V0ZXMiOnsiZGVzY3JpcHRpb24iOiJTY29wZWRSb3V0ZXMgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBTY29wZVJvdXRlIHJlc291cmNlIHR5cGUuXG5BUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvcm91dGUvdjMvc2NvcGVkX3JvdXRlLnByb3RvIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveVJlc291cmNlIGhvbGRzIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgYW4gZW52b3lcbnJlc291cmNlIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuXG5ERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhblxudXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzXG5pcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZVxudG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ2YWx1ZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJzZWNyZXRzIjp7ImRlc2NyaXB0aW9uIjoiU2VjcmV0cyBpcyBhIGxpc3Qgb2YgcmVmZXJlbmNlcyB0byBLdWJlcm5ldGVzIFNlY3JldCBvYmplY3RzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRW52b3lTZWNyZXRSZXNvdXJjZSBob2xkcyBhIHJlZmVyZW5jZSB0byBhIGs4cyBTZWNyZXQgZnJvbSB3aGVyZVxudG8gdGFrZSBhIHNlY3JldCBmcm9tLiBPbmx5IFNlY3JldHMgd2l0aGluIHRoZSBzYW1lIG5hbWVzcGFjZSBjYW5cbmJlIHJlZmVycmVkLiIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHRzbENlcnRpY2F0ZSBzZWNyZXQgcmVzb3VyY2UuIFRoZSBjZXJ0aWZpY2F0ZSB3aWxsIGJlIGZldGNoZWRcbmZyb20gYSBLdWJlcm5ldGVzIFNlY3JldHMgb2YgdHlwZSAna3ViZXJuZXRlcy5pby90bHMnIHdpdGggdGhpcyBzYW1lIG5hbWUuIiwidHlwZSI6InN0cmluZyJ9LCJyZWYiOnsiZGVzY3JpcHRpb24iOiJERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGlzIGRlcHJlY2F0ZWQgYW5kIGl0J3MgdmFsdWUgd2lsbCBiZSBpZ25vcmVkLiBUaGUgJ25hbWUnIG9mIHRoZVxuS3ViZXJuZXRlcyBTZWNyZXQgbXVzdCBtYXRjaCB0aGUgJ25hbWUnIGZpZWxkLiIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgaXMgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZSB0byByZWZlcmVuY2UgYSBzZWNyZXQgcmVzb3VyY2UuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2UgZGVmaW5lcyB0aGUgc3BhY2Ugd2l0aGluIHdoaWNoIHRoZSBzZWNyZXQgbmFtZSBtdXN0IGJlIHVuaXF1ZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sIm5vZGVJRCI6eyJkZXNjcmlwdGlvbiI6Ik5vZGVJRCBob2xkcyB0aGUgZW52b3kgaWRlbnRpZmllciBmb3IgdGhlIGRpc2NvdmVyeSBzZXJ2aWNlIHRvIGtub3cgd2hpY2ggc2V0XG5vZiByZXNvdXJjZXMgdG8gc2VuZCB0byBlYWNoIG9mIHRoZSBlbnZveSBjbGllbnRzIHRoYXQgY29ubmVjdCB0byBpdC4iLCJ0eXBlIjoic3RyaW5nIn0sInJlc291cmNlcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlcyBob2xkcyB0aGUgZGlmZmVyZW50IHR5cGVzIG9mIHJlc291cmNlcyBzdXBvcnRlZCBieSB0aGUgZW52b3kgZGlzY292ZXJ5IHNlcnZpY2UiLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlIGhvbGRzIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgYW4gZW52b3lcbnJlc291cmNlIiwicHJvcGVydGllcyI6eyJibHVlcHJpbnQiOnsiZGVzY3JpcHRpb24iOiJCbHVlcHJpbnQgc3BlY2lmaWVzIGEgdGVtcGxhdGUgdG8gZ2VuZXJhdGUgYSBjb25maWd1cmF0aW9uIHByb3RvLiBJdCBpcyBjdXJyZW50bHlcbm9ubHkgc3VwcG9ydGVkIHRvIGdlbmVyYXRlIHNlY3JldCBjb25maWd1cmF0aW9uIHJlc291cmNlcyBmcm9tIGs4cyBTZWNyZXRzIiwiZW51bSI6WyJ0bHNDZXJ0aWZpY2F0ZSIsInZhbGlkYXRpb25Db250ZXh0Il0sInR5cGUiOiJzdHJpbmcifSwiZ2VuZXJhdGVGcm9tRW5kcG9pbnRTbGljZXMiOnsiZGVzY3JpcHRpb24iOiJTcGVjaWZpZXMgYSBsYWJlbCBzZWxlY3RvciB0byB3YXRjaCBmb3IgRW5kcG9pbnRTbGljZXMgdGhhdCB3aWxsXG5iZSB1c2VkIHRvIGdlbmVyYXRlIHRoZSBlbmRwb2ludCByZXNvdXJjZSIsInByb3BlcnRpZXMiOnsiY2x1c3Rlck5hbWUiOnsidHlwZSI6InN0cmluZyJ9LCJzZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgaXMgYSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcy4gVGhlIHJlc3VsdCBvZiBtYXRjaExhYmVscyBhbmRcbm1hdGNoRXhwcmVzc2lvbnMgYXJlIEFORGVkLiBBbiBlbXB0eSBsYWJlbCBzZWxlY3RvciBtYXRjaGVzIGFsbCBvYmplY3RzLiBBIG51bGxcbmxhYmVsIHNlbGVjdG9yIG1hdGNoZXMgbm8gb2JqZWN0cy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXRcbnJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuXG5WYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsXG50aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljXG5tZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHNcbm1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZVxub3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJ0YXJnZXRQb3J0Ijp7InR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImNsdXN0ZXJOYW1lIiwic2VsZWN0b3IiLCJ0YXJnZXRQb3J0Il0sInR5cGUiOiJvYmplY3QifSwiZ2VuZXJhdGVGcm9tT3BhcXVlU2VjcmV0Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgYSBLdWJlcm5ldGVzIFNlY3JldCBvZiB0eXBlIFwiT3BhcXVlXCIuIEl0IHdpbGwgZ2VuZXJhdGUgYW5cbmVudm95IFwiZ2VuZXJpYyBzZWNyZXRcIiBwcm90by4iLCJwcm9wZXJ0aWVzIjp7ImFsaWFzIjp7ImRlc2NyaXB0aW9uIjoiQSB1bmlxdWUgbmFtZSB0byByZWZlciB0byB0aGUgbmFtZTprZXkgY29tYmluYXRpb24iLCJ0eXBlIjoic3RyaW5nIn0sImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBrZXkgb2YgdGhlIHNlY3JldCB0byBzZWxlY3QgZnJvbS4gIE11c3QgYmUgYSB2YWxpZCBzZWNyZXQga2V5LiIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIHRoZSBzZWNyZXQgaW4gdGhlIHBvZCdzIG5hbWVzcGFjZSB0byBzZWxlY3QgZnJvbS4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJhbGlhcyIsImtleSIsIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJnZW5lcmF0ZUZyb21UbHNTZWNyZXQiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiBhIEt1YmVybmV0ZXMgU2VjcmV0IG9mIHR5cGUgXCJrdWJlcm5ldGVzLmlvL3Rsc1wiIiwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoiVHlwZSBpcyB0aGUgdHlwZSB1cmwgZm9yIHRoZSBwcm90b2J1ZiBtZXNzYWdlIiwiZW51bSI6WyJsaXN0ZW5lciIsInJvdXRlIiwic2NvcGVkUm91dGUiLCJjbHVzdGVyIiwiZW5kcG9pbnQiLCJzZWNyZXQiLCJydW50aW1lIiwiZXh0ZW5zaW9uQ29uZmlnIl0sInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgcHJvdG9idWZlciBtZXNzYWdlIHRoYXQgY29uZmlndXJlcyB0aGUgcmVzb3VyY2UuIFRoZSBwcm90b1xubXVzdCBtYXRjaCB0aGUgZW52b3kgY29uZmlndXJhdGlvbiBBUEkgdjMgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGdpdmVuIHJlc291cmNlXG50eXBlIChodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS1kb2NzL3hkc19wcm90b2NvbCNyZXNvdXJjZS10eXBlcykiLCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLXByZXNlcnZlLXVua25vd24tZmllbGRzIjp0cnVlfX0sInJlcXVpcmVkIjpbInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwic2VyaWFsaXphdGlvbiI6eyJkZXNjcmlwdGlvbiI6IlNlcmlhbGl6YXRpb24gc3BlY2ljaWZpZXMgdGhlIHNlcmlhbGl6YXRpb24gZm9ybWF0IHVzZWQgdG8gZGVzY3JpYmUgdGhlIHJlc291cmNlcy4gXCJqc29uXCIgYW5kIFwieWFtbFwiXG5hcmUgc3VwcG9ydGVkLiBcImpzb25cIiBpcyB1c2VkIGlmIHVuc2V0LiIsImVudW0iOlsianNvbiIsImI2NGpzb24iLCJ5YW1sIl0sInR5cGUiOiJzdHJpbmcifSwidmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlZlcnNpb24gaXMgYSBoYXNoIG9mIHRoZSBFbnZveVJlc291cmNlcyBmaWVsZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5vZGVJRCIsInZlcnNpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveUNvbmZpZ1JldmlzaW9uU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIEVudm95Q29uZmlnUmV2aXNpb24iLCJwcm9wZXJ0aWVzIjp7ImNvbmRpdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJDb25kaXRpb25zIHJlcHJlc2VudCB0aGUgbGF0ZXN0IGF2YWlsYWJsZSBvYnNlcnZhdGlvbnMgb2YgYW4gb2JqZWN0J3Mgc3RhdGUiLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkNvbmRpdGlvbiBjb250YWlucyBkZXRhaWxzIGZvciBvbmUgYXNwZWN0IG9mIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoaXMgQVBJIFJlc291cmNlLlxuLS0tXG5UaGlzIHN0cnVjdCBpcyBpbnRlbmRlZCBmb3IgZGlyZWN0IHVzZSBhcyBhbiBhcnJheSBhdCB0aGUgZmllbGQgcGF0aCAuc3RhdHVzLmNvbmRpdGlvbnMuICBGb3IgZXhhbXBsZSxcblxuXG5cdHR5cGUgRm9vU3RhdHVzIHN0cnVjdHtcblx0ICAgIC8vIFJlcHJlc2VudHMgdGhlIG9ic2VydmF0aW9ucyBvZiBhIGZvbydzIGN1cnJlbnQgc3RhdGUuXG5cdCAgICAvLyBLbm93biAuc3RhdHVzLmNvbmRpdGlvbnMudHlwZSBhcmU6IFwiQXZhaWxhYmxlXCIsIFwiUHJvZ3Jlc3NpbmdcIiwgYW5kIFwiRGVncmFkZWRcIlxuXHQgICAgLy8gK3BhdGNoTWVyZ2VLZXk9dHlwZVxuXHQgICAgLy8gK3BhdGNoU3RyYXRlZ3k9bWVyZ2Vcblx0ICAgIC8vICtsaXN0VHlwZT1tYXBcblx0ICAgIC8vICtsaXN0TWFwS2V5PXR5cGVcblx0ICAgIENvbmRpdGlvbnMgW11tZXRhdjEuQ29uZGl0aW9uIGBqc29uOlwiY29uZGl0aW9ucyxvbWl0ZW1wdHlcIiBwYXRjaFN0cmF0ZWd5OlwibWVyZ2VcIiBwYXRjaE1lcmdlS2V5OlwidHlwZVwiIHByb3RvYnVmOlwiYnl0ZXMsMSxyZXAsbmFtZT1jb25kaXRpb25zXCJgXG5cblxuXHQgICAgLy8gb3RoZXIgZmllbGRzXG5cdH0iLCJwcm9wZXJ0aWVzIjp7Imxhc3RUcmFuc2l0aW9uVGltZSI6eyJkZXNjcmlwdGlvbiI6Imxhc3RUcmFuc2l0aW9uVGltZSBpcyB0aGUgbGFzdCB0aW1lIHRoZSBjb25kaXRpb24gdHJhbnNpdGlvbmVkIGZyb20gb25lIHN0YXR1cyB0byBhbm90aGVyLlxuVGhpcyBzaG91bGQgYmUgd2hlbiB0aGUgdW5kZXJseWluZyBjb25kaXRpb24gY2hhbmdlZC4gIElmIHRoYXQgaXMgbm90IGtub3duLCB0aGVuIHVzaW5nIHRoZSB0aW1lIHdoZW4gdGhlIEFQSSBmaWVsZCBjaGFuZ2VkIGlzIGFjY2VwdGFibGUuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwidHlwZSI6InN0cmluZyJ9LCJtZXNzYWdlIjp7ImRlc2NyaXB0aW9uIjoibWVzc2FnZSBpcyBhIGh1bWFuIHJlYWRhYmxlIG1lc3NhZ2UgaW5kaWNhdGluZyBkZXRhaWxzIGFib3V0IHRoZSB0cmFuc2l0aW9uLlxuVGhpcyBtYXkgYmUgYW4gZW1wdHkgc3RyaW5nLiIsIm1heExlbmd0aCI6MzI3NjgsInR5cGUiOiJzdHJpbmcifSwib2JzZXJ2ZWRHZW5lcmF0aW9uIjp7ImRlc2NyaXB0aW9uIjoib2JzZXJ2ZWRHZW5lcmF0aW9uIHJlcHJlc2VudHMgdGhlIC5tZXRhZGF0YS5nZW5lcmF0aW9uIHRoYXQgdGhlIGNvbmRpdGlvbiB3YXMgc2V0IGJhc2VkIHVwb24uXG5Gb3IgaW5zdGFuY2UsIGlmIC5tZXRhZGF0YS5nZW5lcmF0aW9uIGlzIGN1cnJlbnRseSAxMiwgYnV0IHRoZSAuc3RhdHVzLmNvbmRpdGlvbnNbeF0ub2JzZXJ2ZWRHZW5lcmF0aW9uIGlzIDksIHRoZSBjb25kaXRpb24gaXMgb3V0IG9mIGRhdGVcbndpdGggcmVzcGVjdCB0byB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGUgaW5zdGFuY2UuIiwiZm9ybWF0IjoiaW50NjQiLCJtaW5pbXVtIjowLCJ0eXBlIjoiaW50ZWdlciJ9LCJyZWFzb24iOnsiZGVzY3JpcHRpb24iOiJyZWFzb24gY29udGFpbnMgYSBwcm9ncmFtbWF0aWMgaWRlbnRpZmllciBpbmRpY2F0aW5nIHRoZSByZWFzb24gZm9yIHRoZSBjb25kaXRpb24ncyBsYXN0IHRyYW5zaXRpb24uXG5Qcm9kdWNlcnMgb2Ygc3BlY2lmaWMgY29uZGl0aW9uIHR5cGVzIG1heSBkZWZpbmUgZXhwZWN0ZWQgdmFsdWVzIGFuZCBtZWFuaW5ncyBmb3IgdGhpcyBmaWVsZCxcbmFuZCB3aGV0aGVyIHRoZSB2YWx1ZXMgYXJlIGNvbnNpZGVyZWQgYSBndWFyYW50ZWVkIEFQSS5cblRoZSB2YWx1ZSBzaG91bGQgYmUgYSBDYW1lbENhc2Ugc3RyaW5nLlxuVGhpcyBmaWVsZCBtYXkgbm90IGJlIGVtcHR5LiIsIm1heExlbmd0aCI6MTAyNCwibWluTGVuZ3RoIjoxLCJwYXR0ZXJuIjoiXltBLVphLXpdKFtBLVphLXowLTlfLDpdKltBLVphLXowLTlfXSk/JCIsInR5cGUiOiJzdHJpbmcifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoic3RhdHVzIG9mIHRoZSBjb25kaXRpb24sIG9uZSBvZiBUcnVlLCBGYWxzZSwgVW5rbm93bi4iLCJlbnVtIjpbIlRydWUiLCJGYWxzZSIsIlVua25vd24iXSwidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoidHlwZSBvZiBjb25kaXRpb24gaW4gQ2FtZWxDYXNlIG9yIGluIGZvby5leGFtcGxlLmNvbS9DYW1lbENhc2UuXG4tLS1cbk1hbnkgLmNvbmRpdGlvbi50eXBlIHZhbHVlcyBhcmUgY29uc2lzdGVudCBhY3Jvc3MgcmVzb3VyY2VzIGxpa2UgQXZhaWxhYmxlLCBidXQgYmVjYXVzZSBhcmJpdHJhcnkgY29uZGl0aW9ucyBjYW4gYmVcbnVzZWZ1bCAoc2VlIC5ub2RlLnN0YXR1cy5jb25kaXRpb25zKSwgdGhlIGFiaWxpdHkgdG8gZGVjb25mbGljdCBpcyBpbXBvcnRhbnQuXG5UaGUgcmVnZXggaXQgbWF0Y2hlcyBpcyAoZG5zMTEyM1N1YmRvbWFpbkZtdC8pPyhxdWFsaWZpZWROYW1lRm10KSIsIm1heExlbmd0aCI6MzE2LCJwYXR0ZXJuIjoiXihbYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPyhcXC5bYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pPykqLyk/KChbQS1aYS16MC05XVstQS1aYS16MC05Xy5dKik/W0EtWmEtejAtOV0pJCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImxhc3RUcmFuc2l0aW9uVGltZSIsIm1lc3NhZ2UiLCJyZWFzb24iLCJzdGF0dXMiLCJ0eXBlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sImxhc3RQdWJsaXNoZWRBdCI6eyJkZXNjcmlwdGlvbiI6Ikxhc3RQdWJsaXNoZWRBdCBpbmRpY2F0ZXMgdGhlIGxhc3QgdGltZSB0aGlzIGNvbmZpZyByZXZpZXcgdHJhbnNpdGlvbmVkIHRvXG5wdWJsaXNoZWQiLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJ0eXBlIjoic3RyaW5nIn0sInByb3ZpZGVzVmVyc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJQcm92aWRlc1ZlcnNpb25zIGtlZXBzIHRyYWNrIG9mIHRoZSB2ZXJzaW9uIHRoYXQgdGhpcyByZXZpc2lvblxucHVibGlzaGVzIGluIHRoZSB4RFMgc2VydmVyIGZvciBlYWNoIHJlc291cmNlIHR5cGUiLCJwcm9wZXJ0aWVzIjp7ImNsdXN0ZXJzIjp7InR5cGUiOiJzdHJpbmcifSwiZW5kcG9pbnRzIjp7InR5cGUiOiJzdHJpbmcifSwiZXh0ZW5zaW9uQ29uZmlncyI6eyJ0eXBlIjoic3RyaW5nIn0sImxpc3RlbmVycyI6eyJ0eXBlIjoic3RyaW5nIn0sInJvdXRlcyI6eyJ0eXBlIjoic3RyaW5nIn0sInJ1bnRpbWVzIjp7InR5cGUiOiJzdHJpbmcifSwic2NvcGVkUm91dGVzIjp7InR5cGUiOiJzdHJpbmcifSwic2VjcmV0cyI6eyJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0In0sInB1Ymxpc2hlZCI6eyJkZXNjcmlwdGlvbiI6IlB1Ymxpc2hlZCBzaWduYWxzIGlmIHRoZSBFbnZveUNvbmZpZ1JldmlzaW9uIGlzIHRoZSBvbmUgY3VycmVudGx5IHB1Ymxpc2hlZFxuaW4gdGhlIHhkcyBzZXJ2ZXIgY2FjaGUiLCJ0eXBlIjoiYm9vbGVhbiJ9LCJ0YWludGVkIjp7ImRlc2NyaXB0aW9uIjoiVGFpbnRlZCBpbmRpY2F0ZXMgd2hldGhlciB0aGUgRW52b3lDb25maWdSZXZpc2lvbiBpcyBlbGlnaWJsZSBmb3IgcHVibGlzaGluZ1xub3Igbm90IiwidHlwZSI6ImJvb2xlYW4ifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOm51bGwsInN0b3JlZFZlcnNpb25zIjpudWxsfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjE0LjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsIm5hbWUiOiJlbnZveWNvbmZpZ3MubWFyaW4zci4zc2NhbGUubmV0In0sInNwZWMiOnsiZ3JvdXAiOiJtYXJpbjNyLjNzY2FsZS5uZXQiLCJuYW1lcyI6eyJraW5kIjoiRW52b3lDb25maWciLCJsaXN0S2luZCI6IkVudm95Q29uZmlnTGlzdCIsInBsdXJhbCI6ImVudm95Y29uZmlncyIsInNob3J0TmFtZXMiOlsiZWMiXSwic2luZ3VsYXIiOiJlbnZveWNvbmZpZyJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3siYWRkaXRpb25hbFByaW50ZXJDb2x1bW5zIjpbeyJqc29uUGF0aCI6Ii5zcGVjLm5vZGVJRCIsIm5hbWUiOiJOb2RlIElEIiwidHlwZSI6InN0cmluZyJ9LHsianNvblBhdGgiOiIuc3BlYy5lbnZveUFQSSIsIm5hbWUiOiJFbnZveSBBUEkiLCJ0eXBlIjoic3RyaW5nIn0seyJqc29uUGF0aCI6Ii5zdGF0dXMuZGVzaXJlZFZlcnNpb24iLCJuYW1lIjoiRGVzaXJlZCBWZXJzaW9uIiwidHlwZSI6InN0cmluZyJ9LHsianNvblBhdGgiOiIuc3RhdHVzLnB1Ymxpc2hlZFZlcnNpb24iLCJuYW1lIjoiUHVibGlzaGVkIFZlcnNpb24iLCJ0eXBlIjoic3RyaW5nIn0seyJqc29uUGF0aCI6Ii5zdGF0dXMuY2FjaGVTdGF0ZSIsIm5hbWUiOiJDYWNoZSBTdGF0ZSIsInR5cGUiOiJzdHJpbmcifV0sIm5hbWUiOiJ2MWFscGhhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJFbnZveUNvbmZpZyBob2xkcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgYSBnaXZlbiBlbnZveSBub2RlSUQuIFRoZSBzcGVjIG9mIGFuIEVudm95Q29uZmlnXG5vYmplY3QgaG9sZHMgdGhlIEVudm95IHJlc291cmNlcyB0aGF0IGNvbmZvcm0gdGhlIGRlc2lyZWQgY29uZmlndXJhdGlvbiBmb3IgdGhlIGdpdmVuIG5vZGVJRFxuYW5kIHRoYXQgdGhlIGRpc2NvdmVyeSBzZXJ2aWNlIHdpbGwgc2VuZCB0byBhbnkgZW52b3kgY2xpZW50IHRoYXQgaWRlbnRpZmllcyBpdHNlbGYgd2l0aCB0aGF0XG5ub2RlSUQuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LlxuU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kXG5tYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuXG5TZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by5cbkNhbm5vdCBiZSB1cGRhdGVkLlxuSW4gQ2FtZWxDYXNlLlxuTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiRW52b3lDb25maWdTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgRW52b3lDb25maWciLCJwcm9wZXJ0aWVzIjp7ImVudm95QVBJIjp7ImRlc2NyaXB0aW9uIjoiRW52b3lBUEkgaXMgdGhlIHZlcnNpb24gb2YgZW52b3kncyBBUEkgdG8gdXNlLiBEZWZhdWx0cyB0byB2My4iLCJlbnVtIjpbInYzIl0sInR5cGUiOiJzdHJpbmcifSwiZW52b3lSZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveVJlc291cmNlcyBob2xkcyB0aGUgZGlmZmVyZW50IHR5cGVzIG9mIHJlc291cmNlcyBzdXBvcnRlZCBieSB0aGUgZW52b3kgZGlzY292ZXJ5IHNlcnZpY2VcbkRFUFJFQ0FURUQuIFVzZSB0aGUgYHJlc291cmNlc2AgZmllbGQgaW5zdGVhZC4iLCJwcm9wZXJ0aWVzIjp7ImNsdXN0ZXJzIjp7ImRlc2NyaXB0aW9uIjoiQ2x1c3RlcnMgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBDbHVzdGVyIHJlc291cmNlIHR5cGUuXG5BUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvY2x1c3Rlci92My9jbHVzdGVyLnByb3RvIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveVJlc291cmNlIGhvbGRzIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgYW4gZW52b3lcbnJlc291cmNlIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuXG5ERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhblxudXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzXG5pcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZVxudG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ2YWx1ZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJlbmRwb2ludHMiOnsiZGVzY3JpcHRpb24iOiJFbmRwb2ludHMgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBDbHVzdGVyTG9hZEFzc2lnbm1lbnQgcmVzb3VyY2UgdHlwZS5cbkFQSSBWMyByZWZlcmVuY2U6IGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLXYzL2NvbmZpZy9lbmRwb2ludC92My9lbmRwb2ludC5wcm90byIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRW52b3lSZXNvdXJjZSBob2xkcyBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIGFuIGVudm95XG5yZXNvdXJjZSIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHJlc291cmNlLlxuREVQUkVDQVRFRDogdGhpcyBmaWVsZCBoYXMgbm8gZWZmZWN0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW5cbnVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3Nlc1xuaXMgaW5jbHVkZWQgaW4gdGhlIHJlc291cmNlIGl0c2VsZi4gUmVmZXIgdG8gdGhlIGVudm95IEFQSSByZWZlcmVuY2VcbnRvIGNoZWNrIGhvdyB0aGUgbmFtZSBpcyBzcGVjaWZpZWQgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlIjp7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVudm95IHJlc291cmNlIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidmFsdWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwiZXh0ZW5zaW9uQ29uZmlncyI6eyJkZXNjcmlwdGlvbiI6IkV4dGVuc2lvbkNvbmZpZ3MgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBFeHRlbnNpb25Db25maWcgcmVzb3VyY2UgdHlwZVxuQVBJIFYzIHJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktdjMvY29uZmlnL2NvcmUvdjMvZXh0ZW5zaW9uLnByb3RvIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveVJlc291cmNlIGhvbGRzIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgYW4gZW52b3lcbnJlc291cmNlIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuXG5ERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhblxudXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzXG5pcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZVxudG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ2YWx1ZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJsaXN0ZW5lcnMiOnsiZGVzY3JpcHRpb24iOiJMaXN0ZW5lcnMgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBMaXN0ZW5lciByZXNvdXJjZSB0eXBlLlxuQVBJIFYzIHJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktdjMvY29uZmlnL2xpc3RlbmVyL3YzL2xpc3RlbmVyLnByb3RvIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveVJlc291cmNlIGhvbGRzIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgYW4gZW52b3lcbnJlc291cmNlIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuXG5ERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhblxudXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzXG5pcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZVxudG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ2YWx1ZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyb3V0ZXMiOnsiZGVzY3JpcHRpb24iOiJSb3V0ZXMgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBSb3V0ZSByZXNvdXJjZSB0eXBlLlxuQVBJIFYzIHJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktdjMvY29uZmlnL3JvdXRlL3YzL3JvdXRlLnByb3RvIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveVJlc291cmNlIGhvbGRzIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgYW4gZW52b3lcbnJlc291cmNlIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuXG5ERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhblxudXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzXG5pcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZVxudG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ2YWx1ZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJydW50aW1lcyI6eyJkZXNjcmlwdGlvbiI6IlJ1bnRpbWVzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgUnVudGltZSByZXNvdXJjZSB0eXBlLlxuQVBJIFYzIHJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktdjMvc2VydmljZS9ydW50aW1lL3YzL3J0ZHMucHJvdG8iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkVudm95UmVzb3VyY2UgaG9sZHMgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiBhbiBlbnZveVxucmVzb3VyY2UiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZveSByZXNvdXJjZS5cbkRFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuXG51cGNvbWluZyByZWxlYXNlLiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2VzIGZvciBkaXNjb3ZlcnkgcHVycG9zZXNcbmlzIGluY2x1ZGVkIGluIHRoZSByZXNvdXJjZSBpdHNlbGYuIFJlZmVyIHRvIHRoZSBlbnZveSBBUEkgcmVmZXJlbmNlXG50byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBlbnZveSByZXNvdXJjZSIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInZhbHVlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInNjb3BlZFJvdXRlcyI6eyJkZXNjcmlwdGlvbiI6IlNjb3BlZFJvdXRlcyBpcyBhIGxpc3Qgb2YgdGhlIGVudm95IFNjb3BlUm91dGUgcmVzb3VyY2UgdHlwZS5cbkFQSSBWMyByZWZlcmVuY2U6IGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLXYzL2NvbmZpZy9yb3V0ZS92My9zY29wZWRfcm91dGUucHJvdG8iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkVudm95UmVzb3VyY2UgaG9sZHMgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiBhbiBlbnZveVxucmVzb3VyY2UiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZveSByZXNvdXJjZS5cbkRFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuXG51cGNvbWluZyByZWxlYXNlLiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2VzIGZvciBkaXNjb3ZlcnkgcHVycG9zZXNcbmlzIGluY2x1ZGVkIGluIHRoZSByZXNvdXJjZSBpdHNlbGYuIFJlZmVyIHRvIHRoZSBlbnZveSBBUEkgcmVmZXJlbmNlXG50byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBlbnZveSByZXNvdXJjZSIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInZhbHVlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInNlY3JldHMiOnsiZGVzY3JpcHRpb24iOiJTZWNyZXRzIGlzIGEgbGlzdCBvZiByZWZlcmVuY2VzIHRvIEt1YmVybmV0ZXMgU2VjcmV0IG9iamVjdHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveVNlY3JldFJlc291cmNlIGhvbGRzIGEgcmVmZXJlbmNlIHRvIGEgazhzIFNlY3JldCBmcm9tIHdoZXJlXG50byB0YWtlIGEgc2VjcmV0IGZyb20uIE9ubHkgU2VjcmV0cyB3aXRoaW4gdGhlIHNhbWUgbmFtZXNwYWNlIGNhblxuYmUgcmVmZXJyZWQuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgdHNsQ2VydGljYXRlIHNlY3JldCByZXNvdXJjZS4gVGhlIGNlcnRpZmljYXRlIHdpbGwgYmUgZmV0Y2hlZFxuZnJvbSBhIEt1YmVybmV0ZXMgU2VjcmV0cyBvZiB0eXBlICdrdWJlcm5ldGVzLmlvL3Rscycgd2l0aCB0aGlzIHNhbWUgbmFtZS4iLCJ0eXBlIjoic3RyaW5nIn0sInJlZiI6eyJkZXNjcmlwdGlvbiI6IkRFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaXMgZGVwcmVjYXRlZCBhbmQgaXQncyB2YWx1ZSB3aWxsIGJlIGlnbm9yZWQuIFRoZSAnbmFtZScgb2YgdGhlXG5LdWJlcm5ldGVzIFNlY3JldCBtdXN0IG1hdGNoIHRoZSAnbmFtZScgZmllbGQuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoibmFtZSBpcyB1bmlxdWUgd2l0aGluIGEgbmFtZXNwYWNlIHRvIHJlZmVyZW5jZSBhIHNlY3JldCByZXNvdXJjZS4iLCJ0eXBlIjoic3RyaW5nIn0sIm5hbWVzcGFjZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZSBkZWZpbmVzIHRoZSBzcGFjZSB3aXRoaW4gd2hpY2ggdGhlIHNlY3JldCBuYW1lIG11c3QgYmUgdW5pcXVlLiIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifX0sInJlcXVpcmVkIjpbIm5hbWUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifSwibm9kZUlEIjp7ImRlc2NyaXB0aW9uIjoiTm9kZUlEIGhvbGRzIHRoZSBlbnZveSBpZGVudGlmaWVyIGZvciB0aGUgZGlzY292ZXJ5IHNlcnZpY2UgdG8ga25vdyB3aGljaCBzZXRcbm9mIHJlc291cmNlcyB0byBzZW5kIHRvIGVhY2ggb2YgdGhlIGVudm95IGNsaWVudHMgdGhhdCBjb25uZWN0IHRvIGl0LiIsInR5cGUiOiJzdHJpbmcifSwicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoiUmVzb3VyY2VzIGhvbGRzIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgcmVzb3VyY2VzIHN1cG9ydGVkIGJ5IHRoZSBlbnZveSBkaXNjb3Zlcnkgc2VydmljZSIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiUmVzb3VyY2UgaG9sZHMgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiBhbiBlbnZveVxucmVzb3VyY2UiLCJwcm9wZXJ0aWVzIjp7ImJsdWVwcmludCI6eyJkZXNjcmlwdGlvbiI6IkJsdWVwcmludCBzcGVjaWZpZXMgYSB0ZW1wbGF0ZSB0byBnZW5lcmF0ZSBhIGNvbmZpZ3VyYXRpb24gcHJvdG8uIEl0IGlzIGN1cnJlbnRseVxub25seSBzdXBwb3J0ZWQgdG8gZ2VuZXJhdGUgc2VjcmV0IGNvbmZpZ3VyYXRpb24gcmVzb3VyY2VzIGZyb20gazhzIFNlY3JldHMiLCJlbnVtIjpbInRsc0NlcnRpZmljYXRlIiwidmFsaWRhdGlvbkNvbnRleHQiXSwidHlwZSI6InN0cmluZyJ9LCJnZW5lcmF0ZUZyb21FbmRwb2ludFNsaWNlcyI6eyJkZXNjcmlwdGlvbiI6IlNwZWNpZmllcyBhIGxhYmVsIHNlbGVjdG9yIHRvIHdhdGNoIGZvciBFbmRwb2ludFNsaWNlcyB0aGF0IHdpbGxcbmJlIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGVuZHBvaW50IHJlc291cmNlIiwicHJvcGVydGllcyI6eyJjbHVzdGVyTmFtZSI6eyJ0eXBlIjoic3RyaW5nIn0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciBpcyBhIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLiBUaGUgcmVzdWx0IG9mIG1hdGNoTGFiZWxzIGFuZFxubWF0Y2hFeHByZXNzaW9ucyBhcmUgQU5EZWQuIEFuIGVtcHR5IGxhYmVsIHNlbGVjdG9yIG1hdGNoZXMgYWxsIG9iamVjdHMuIEEgbnVsbFxubGFiZWwgc2VsZWN0b3IgbWF0Y2hlcyBubyBvYmplY3RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdFxucmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy5cblZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sXG50aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCxcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWNcbm1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVsc1xubWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlXG5vcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sInRhcmdldFBvcnQiOnsidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiY2x1c3Rlck5hbWUiLCJzZWxlY3RvciIsInRhcmdldFBvcnQiXSwidHlwZSI6Im9iamVjdCJ9LCJnZW5lcmF0ZUZyb21PcGFxdWVTZWNyZXQiOnsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiBhIEt1YmVybmV0ZXMgU2VjcmV0IG9mIHR5cGUgXCJPcGFxdWVcIi4gSXQgd2lsbCBnZW5lcmF0ZSBhblxuZW52b3kgXCJnZW5lcmljIHNlY3JldFwiIHByb3RvLiIsInByb3BlcnRpZXMiOnsiYWxpYXMiOnsiZGVzY3JpcHRpb24iOiJBIHVuaXF1ZSBuYW1lIHRvIHJlZmVyIHRvIHRoZSBuYW1lOmtleSBjb21iaW5hdGlvbiIsInR5cGUiOiJzdHJpbmcifSwia2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhlIGtleSBvZiB0aGUgc2VjcmV0IHRvIHNlbGVjdCBmcm9tLiAgTXVzdCBiZSBhIHZhbGlkIHNlY3JldCBrZXkuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIG5hbWUgb2YgdGhlIHNlY3JldCBpbiB0aGUgcG9kJ3MgbmFtZXNwYWNlIHRvIHNlbGVjdCBmcm9tLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImFsaWFzIiwia2V5IiwibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sImdlbmVyYXRlRnJvbVRsc1NlY3JldCI6eyJkZXNjcmlwdGlvbiI6IlRoZSBuYW1lIG9mIGEgS3ViZXJuZXRlcyBTZWNyZXQgb2YgdHlwZSBcImt1YmVybmV0ZXMuaW8vdGxzXCIiLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJUeXBlIGlzIHRoZSB0eXBlIHVybCBmb3IgdGhlIHByb3RvYnVmIG1lc3NhZ2UiLCJlbnVtIjpbImxpc3RlbmVyIiwicm91dGUiLCJzY29wZWRSb3V0ZSIsImNsdXN0ZXIiLCJlbmRwb2ludCIsInNlY3JldCIsInJ1bnRpbWUiLCJleHRlbnNpb25Db25maWciXSwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHRoZSBwcm90b2J1ZmVyIG1lc3NhZ2UgdGhhdCBjb25maWd1cmVzIHRoZSByZXNvdXJjZS4gVGhlIHByb3RvXG5tdXN0IG1hdGNoIHRoZSBlbnZveSBjb25maWd1cmF0aW9uIEFQSSB2MyBzcGVjaWZpY2F0aW9uIGZvciB0aGUgZ2l2ZW4gcmVzb3VyY2VcbnR5cGUgKGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLWRvY3MveGRzX3Byb3RvY29sI3Jlc291cmNlLXR5cGVzKSIsInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtcHJlc2VydmUtdW5rbm93bi1maWVsZHMiOnRydWV9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJzZXJpYWxpemF0aW9uIjp7ImRlc2NyaXB0aW9uIjoiU2VyaWFsaXphdGlvbiBzcGVjaWNpZmllcyB0aGUgc2VyaWFsaXphdGlvbiBmb3JtYXQgdXNlZCB0byBkZXNjcmliZSB0aGUgcmVzb3VyY2VzLiBcImpzb25cIiBhbmQgXCJ5YW1sXCJcbmFyZSBzdXBwb3J0ZWQuIFwianNvblwiIGlzIHVzZWQgaWYgdW5zZXQuIiwiZW51bSI6WyJqc29uIiwieWFtbCJdLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJub2RlSUQiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJFbnZveUNvbmZpZ1N0YXR1cyBkZWZpbmVzIHRoZSBvYnNlcnZlZCBzdGF0ZSBvZiBFbnZveUNvbmZpZyIsInByb3BlcnRpZXMiOnsiY2FjaGVTdGF0ZSI6eyJkZXNjcmlwdGlvbiI6IkNhY2hlU3RhdGUgc3VtbWFyaXplcyBhbGwgdGhlIG9ic2VydmF0aW9ucyBhYm91dCB0aGUgRW52b3lDb25maWdcbnRvIGdpdmUgdGhlIHVzZXIgYSBjb25jcmV0ZSBpZGVhIG9uIHRoZSBnZW5lcmFsIHN0YXR1cyBvZiB0aGUgZGlzY292ZXJ5IHNlcnZpZSBjYWNoZS5cbkl0IGlzIGludGVuZGVkIG9ubHkgZm9yIGh1bWFuIGNvbnN1bXB0aW9uLiBPdGhlciBjb250cm9sbGVycyBzaG91bGQgcmVsbHkgb24gY29uZGl0aW9uc1xudG8gZGV0ZXJtaW5lIHRoZSBzdGF0dXMgb2YgdGhlIGRpc2NvdmVyeSBzZXJ2ZXIgY2FjaGUuIiwidHlwZSI6InN0cmluZyJ9LCJjb25kaXRpb25zIjp7ImRlc2NyaXB0aW9uIjoiQ29uZGl0aW9ucyByZXByZXNlbnQgdGhlIGxhdGVzdCBhdmFpbGFibGUgb2JzZXJ2YXRpb25zIG9mIGFuIG9iamVjdCdzIHN0YXRlIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJDb25kaXRpb24gY29udGFpbnMgZGV0YWlscyBmb3Igb25lIGFzcGVjdCBvZiB0aGUgY3VycmVudCBzdGF0ZSBvZiB0aGlzIEFQSSBSZXNvdXJjZS5cbi0tLVxuVGhpcyBzdHJ1Y3QgaXMgaW50ZW5kZWQgZm9yIGRpcmVjdCB1c2UgYXMgYW4gYXJyYXkgYXQgdGhlIGZpZWxkIHBhdGggLnN0YXR1cy5jb25kaXRpb25zLiAgRm9yIGV4YW1wbGUsXG5cblxuXHR0eXBlIEZvb1N0YXR1cyBzdHJ1Y3R7XG5cdCAgICAvLyBSZXByZXNlbnRzIHRoZSBvYnNlcnZhdGlvbnMgb2YgYSBmb28ncyBjdXJyZW50IHN0YXRlLlxuXHQgICAgLy8gS25vd24gLnN0YXR1cy5jb25kaXRpb25zLnR5cGUgYXJlOiBcIkF2YWlsYWJsZVwiLCBcIlByb2dyZXNzaW5nXCIsIGFuZCBcIkRlZ3JhZGVkXCJcblx0ICAgIC8vICtwYXRjaE1lcmdlS2V5PXR5cGVcblx0ICAgIC8vICtwYXRjaFN0cmF0ZWd5PW1lcmdlXG5cdCAgICAvLyArbGlzdFR5cGU9bWFwXG5cdCAgICAvLyArbGlzdE1hcEtleT10eXBlXG5cdCAgICBDb25kaXRpb25zIFtdbWV0YXYxLkNvbmRpdGlvbiBganNvbjpcImNvbmRpdGlvbnMsb21pdGVtcHR5XCIgcGF0Y2hTdHJhdGVneTpcIm1lcmdlXCIgcGF0Y2hNZXJnZUtleTpcInR5cGVcIiBwcm90b2J1ZjpcImJ5dGVzLDEscmVwLG5hbWU9Y29uZGl0aW9uc1wiYFxuXG5cblx0ICAgIC8vIG90aGVyIGZpZWxkc1xuXHR9IiwicHJvcGVydGllcyI6eyJsYXN0VHJhbnNpdGlvblRpbWUiOnsiZGVzY3JpcHRpb24iOiJsYXN0VHJhbnNpdGlvblRpbWUgaXMgdGhlIGxhc3QgdGltZSB0aGUgY29uZGl0aW9uIHRyYW5zaXRpb25lZCBmcm9tIG9uZSBzdGF0dXMgdG8gYW5vdGhlci5cblRoaXMgc2hvdWxkIGJlIHdoZW4gdGhlIHVuZGVybHlpbmcgY29uZGl0aW9uIGNoYW5nZWQuICBJZiB0aGF0IGlzIG5vdCBrbm93biwgdGhlbiB1c2luZyB0aGUgdGltZSB3aGVuIHRoZSBBUEkgZmllbGQgY2hhbmdlZCBpcyBhY2NlcHRhYmxlLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsInR5cGUiOiJzdHJpbmcifSwibWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6Im1lc3NhZ2UgaXMgYSBodW1hbiByZWFkYWJsZSBtZXNzYWdlIGluZGljYXRpbmcgZGV0YWlscyBhYm91dCB0aGUgdHJhbnNpdGlvbi5cblRoaXMgbWF5IGJlIGFuIGVtcHR5IHN0cmluZy4iLCJtYXhMZW5ndGgiOjMyNzY4LCJ0eXBlIjoic3RyaW5nIn0sIm9ic2VydmVkR2VuZXJhdGlvbiI6eyJkZXNjcmlwdGlvbiI6Im9ic2VydmVkR2VuZXJhdGlvbiByZXByZXNlbnRzIHRoZSAubWV0YWRhdGEuZ2VuZXJhdGlvbiB0aGF0IHRoZSBjb25kaXRpb24gd2FzIHNldCBiYXNlZCB1cG9uLlxuRm9yIGluc3RhbmNlLCBpZiAubWV0YWRhdGEuZ2VuZXJhdGlvbiBpcyBjdXJyZW50bHkgMTIsIGJ1dCB0aGUgLnN0YXR1cy5jb25kaXRpb25zW3hdLm9ic2VydmVkR2VuZXJhdGlvbiBpcyA5LCB0aGUgY29uZGl0aW9uIGlzIG91dCBvZiBkYXRlXG53aXRoIHJlc3BlY3QgdG8gdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhlIGluc3RhbmNlLiIsImZvcm1hdCI6ImludDY0IiwibWluaW11bSI6MCwidHlwZSI6ImludGVnZXIifSwicmVhc29uIjp7ImRlc2NyaXB0aW9uIjoicmVhc29uIGNvbnRhaW5zIGEgcHJvZ3JhbW1hdGljIGlkZW50aWZpZXIgaW5kaWNhdGluZyB0aGUgcmVhc29uIGZvciB0aGUgY29uZGl0aW9uJ3MgbGFzdCB0cmFuc2l0aW9uLlxuUHJvZHVjZXJzIG9mIHNwZWNpZmljIGNvbmRpdGlvbiB0eXBlcyBtYXkgZGVmaW5lIGV4cGVjdGVkIHZhbHVlcyBhbmQgbWVhbmluZ3MgZm9yIHRoaXMgZmllbGQsXG5hbmQgd2hldGhlciB0aGUgdmFsdWVzIGFyZSBjb25zaWRlcmVkIGEgZ3VhcmFudGVlZCBBUEkuXG5UaGUgdmFsdWUgc2hvdWxkIGJlIGEgQ2FtZWxDYXNlIHN0cmluZy5cblRoaXMgZmllbGQgbWF5IG5vdCBiZSBlbXB0eS4iLCJtYXhMZW5ndGgiOjEwMjQsIm1pbkxlbmd0aCI6MSwicGF0dGVybiI6Il5bQS1aYS16XShbQS1aYS16MC05Xyw6XSpbQS1aYS16MC05X10pPyQiLCJ0eXBlIjoic3RyaW5nIn0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6InN0YXR1cyBvZiB0aGUgY29uZGl0aW9uLCBvbmUgb2YgVHJ1ZSwgRmFsc2UsIFVua25vd24uIiwiZW51bSI6WyJUcnVlIiwiRmFsc2UiLCJVbmtub3duIl0sInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6InR5cGUgb2YgY29uZGl0aW9uIGluIENhbWVsQ2FzZSBvciBpbiBmb28uZXhhbXBsZS5jb20vQ2FtZWxDYXNlLlxuLS0tXG5NYW55IC5jb25kaXRpb24udHlwZSB2YWx1ZXMgYXJlIGNvbnNpc3RlbnQgYWNyb3NzIHJlc291cmNlcyBsaWtlIEF2YWlsYWJsZSwgYnV0IGJlY2F1c2UgYXJiaXRyYXJ5IGNvbmRpdGlvbnMgY2FuIGJlXG51c2VmdWwgKHNlZSAubm9kZS5zdGF0dXMuY29uZGl0aW9ucyksIHRoZSBhYmlsaXR5IHRvIGRlY29uZmxpY3QgaXMgaW1wb3J0YW50LlxuVGhlIHJlZ2V4IGl0IG1hdGNoZXMgaXMgKGRuczExMjNTdWJkb21haW5GbXQvKT8ocXVhbGlmaWVkTmFtZUZtdCkiLCJtYXhMZW5ndGgiOjMxNiwicGF0dGVybiI6Il4oW2EtejAtOV0oWy1hLXowLTldKlthLXowLTldKT8oXFwuW2EtejAtOV0oWy1hLXowLTldKlthLXowLTldKT8pKi8pPygoW0EtWmEtejAtOV1bLUEtWmEtejAtOV8uXSopP1tBLVphLXowLTldKSQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJsYXN0VHJhbnNpdGlvblRpbWUiLCJtZXNzYWdlIiwicmVhc29uIiwic3RhdHVzIiwidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJkZXNpcmVkVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkRlc2lyZWRWZXJzaW9uIHJlcHJlc2VudHMgdGhlIHJlc291cmNlcyB2ZXJzaW9uIGRlc2NyaWJlZCBpblxudGhlIHNwZWMgb2YgdGhlIEVudm95Q29uZmlnIG9iamVjdCIsInR5cGUiOiJzdHJpbmcifSwicHVibGlzaGVkVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlB1Ymxpc2hlZFZlcnNpb24gaXMgdGhlIGNvbmZpZyB2ZXJzaW9uIGN1cnJlbnRseVxuc2VydmVkIGJ5IHRoZSBlbnZveSBkaXNjb3Zlcnkgc2VydmljZSBmb3IgdGhlIGdpdmUgbm9kZUlEIiwidHlwZSI6InN0cmluZyJ9LCJyZXZpc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJDb25maWdSZXZpc2lvbnMgaXMgYW4gb3JkZXJlZCBsaXN0IG9mIHJlZmVyZW5jZXMgdG8gRW52b3lDb25maWdSZXZpc2lvblxub2JqZWN0cyIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQ29uZmlnUmV2aXNpb25SZWYgaG9sZHMgYSByZWZlcmVuY2UgdG8gRW52b3lDb25maWdSZXZpc2lvbiBvYmplY3QiLCJwcm9wZXJ0aWVzIjp7InJlZiI6eyJkZXNjcmlwdGlvbiI6IlJlZiBpcyBhIHJlZmVyZW5jZSB0byB0aGUgRW52b3lDb25maWdSZXZpc2lvbiBvYmplY3QgdGhhdFxuaG9sZHMgdGhlIGNvbmZpZ3VyYXRpb24gbWF0Y2hpbmcgdGhlIFZlcnNpb24gZmllbGQuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJIHZlcnNpb24gb2YgdGhlIHJlZmVyZW50LiIsInR5cGUiOiJzdHJpbmcifSwiZmllbGRQYXRoIjp7ImRlc2NyaXB0aW9uIjoiSWYgcmVmZXJyaW5nIHRvIGEgcGllY2Ugb2YgYW4gb2JqZWN0IGluc3RlYWQgb2YgYW4gZW50aXJlIG9iamVjdCwgdGhpcyBzdHJpbmdcbnNob3VsZCBjb250YWluIGEgdmFsaWQgSlNPTi9HbyBmaWVsZCBhY2Nlc3Mgc3RhdGVtZW50LCBzdWNoIGFzIGRlc2lyZWRTdGF0ZS5tYW5pZmVzdC5jb250YWluZXJzWzJdLlxuRm9yIGV4YW1wbGUsIGlmIHRoZSBvYmplY3QgcmVmZXJlbmNlIGlzIHRvIGEgY29udGFpbmVyIHdpdGhpbiBhIHBvZCwgdGhpcyB3b3VsZCB0YWtlIG9uIGEgdmFsdWUgbGlrZTpcblwic3BlYy5jb250YWluZXJze25hbWV9XCIgKHdoZXJlIFwibmFtZVwiIHJlZmVycyB0byB0aGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIHRoYXQgdHJpZ2dlcmVkXG50aGUgZXZlbnQpIG9yIGlmIG5vIGNvbnRhaW5lciBuYW1lIGlzIHNwZWNpZmllZCBcInNwZWMuY29udGFpbmVyc1syXVwiIChjb250YWluZXIgd2l0aFxuaW5kZXggMiBpbiB0aGlzIHBvZCkuIFRoaXMgc3ludGF4IGlzIGNob3NlbiBvbmx5IHRvIGhhdmUgc29tZSB3ZWxsLWRlZmluZWQgd2F5IG9mXG5yZWZlcmVuY2luZyBhIHBhcnQgb2YgYW4gb2JqZWN0LlxuVE9ETzogdGhpcyBkZXNpZ24gaXMgbm90IGZpbmFsIGFuZCB0aGlzIGZpZWxkIGlzIHN1YmplY3QgdG8gY2hhbmdlIGluIHRoZSBmdXR1cmUuIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBvZiB0aGUgcmVmZXJlbnQuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgcmVmZXJlbnQuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L3dvcmtpbmctd2l0aC1vYmplY3RzL25hbWVzLyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifSwibmFtZXNwYWNlIjp7ImRlc2NyaXB0aW9uIjoiTmFtZXNwYWNlIG9mIHRoZSByZWZlcmVudC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvb3ZlcnZpZXcvd29ya2luZy13aXRoLW9iamVjdHMvbmFtZXNwYWNlcy8iLCJ0eXBlIjoic3RyaW5nIn0sInJlc291cmNlVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlNwZWNpZmljIHJlc291cmNlVmVyc2lvbiB0byB3aGljaCB0aGlzIHJlZmVyZW5jZSBpcyBtYWRlLCBpZiBhbnkuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI2NvbmN1cnJlbmN5LWNvbnRyb2wtYW5kLWNvbnNpc3RlbmN5IiwidHlwZSI6InN0cmluZyJ9LCJ1aWQiOnsiZGVzY3JpcHRpb24iOiJVSUQgb2YgdGhlIHJlZmVyZW50LlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9vdmVydmlldy93b3JraW5nLXdpdGgtb2JqZWN0cy9uYW1lcy8jdWlkcyIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwidmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IlZlcnNpb24gaXMgYSBoYXNoIG9mIHRoZSBFbnZveVJlc291cmNlcyBmaWVsZCIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInJlZiIsInZlcnNpb24iXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifX0sInNlcnZlZCI6dHJ1ZSwic3RvcmFnZSI6dHJ1ZSwic3VicmVzb3VyY2VzIjp7InN0YXR1cyI6e319fV19LCJzdGF0dXMiOnsiYWNjZXB0ZWROYW1lcyI6eyJraW5kIjoiIiwicGx1cmFsIjoiIn0sImNvbmRpdGlvbnMiOm51bGwsInN0b3JlZFZlcnNpb25zIjpudWxsfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoib3BlcmF0b3JzLmNvcmVvcy5jb20vdjFhbHBoYTEiLCJraW5kIjoiQ2x1c3RlclNlcnZpY2VWZXJzaW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiYWxtLWV4YW1wbGVzIjoiW1xuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwibWFyaW4zci4zc2NhbGUubmV0L3YxYWxwaGExXCIsXG4gICAgXCJraW5kXCI6IFwiRW52b3lDb25maWdcIixcbiAgICBcIm1ldGFkYXRhXCI6IHtcbiAgICAgIFwibmFtZVwiOiBcImVudm95Y29uZmlnLWV4YW1wbGVcIixcbiAgICAgIFwibmFtZXNwYWNlXCI6IFwibXktbmFtZXNwYWNlXCJcbiAgICB9LFxuICAgIFwic3BlY1wiOiB7XG4gICAgICBcIm5vZGVJRFwiOiBcImV4YW1wbGVcIixcbiAgICAgIFwicmVzb3VyY2VzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgIFwidHlwZVwiOiBcImNsdXN0ZXJcIixcbiAgICAgICAgICBcInZhbHVlXCI6IHtcbiAgICAgICAgICAgIFwiY29ubmVjdF90aW1lb3V0XCI6IFwiMC4wMXNcIixcbiAgICAgICAgICAgIFwiZG5zX2xvb2t1cF9mYW1pbHlcIjogXCJWNF9PTkxZXCIsXG4gICAgICAgICAgICBcImxiX3BvbGljeVwiOiBcIlJPVU5EX1JPQklOXCIsXG4gICAgICAgICAgICBcImxvYWRfYXNzaWdubWVudFwiOiB7XG4gICAgICAgICAgICAgIFwiY2x1c3Rlcl9uYW1lXCI6IFwiZXhhbXBsZVwiLFxuICAgICAgICAgICAgICBcImVuZHBvaW50c1wiOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgXCJsYl9lbmRwb2ludHNcIjogW1xuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJlbmRwb2ludFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImFkZHJlc3NcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNvY2tldF9hZGRyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkZHJlc3NcIjogXCJleGFtcGxlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwb3J0X3ZhbHVlXCI6IDgwODBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwibmFtZVwiOiBcImV4YW1wbGVcIixcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIlNUUklDVF9ETlNcIlxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwidHlwZVwiOiBcInJvdXRlXCIsXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICBcIm5hbWVcIjogXCJsb2NhbFwiLFxuICAgICAgICAgICAgXCJ2aXJ0dWFsX2hvc3RzXCI6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwiZG9tYWluc1wiOiBbXG4gICAgICAgICAgICAgICAgICBcIipcIlxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiYWxsXCIsXG4gICAgICAgICAgICAgICAgXCJyb3V0ZXNcIjogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcIm1hdGNoXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcInByZWZpeFwiOiBcIi9cIlxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBcInJvdXRlXCI6IHtcbiAgICAgICAgICAgICAgICAgICAgICBcImNsdXN0ZXJcIjogXCJleGFtcGxlXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIFwidHlwZVwiOiBcImxpc3RlbmVyXCIsXG4gICAgICAgICAgXCJ2YWx1ZVwiOiB7XG4gICAgICAgICAgICBcImFkZHJlc3NcIjoge1xuICAgICAgICAgICAgICBcInNvY2tldF9hZGRyZXNzXCI6IHtcbiAgICAgICAgICAgICAgICBcImFkZHJlc3NcIjogXCIwLjAuMC4wXCIsXG4gICAgICAgICAgICAgICAgXCJwb3J0X3ZhbHVlXCI6IDg0NDNcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZmlsdGVyX2NoYWluc1wiOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBcImZpbHRlcnNcIjogW1xuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcIm5hbWVcIjogXCJlbnZveS5maWx0ZXJzLm5ldHdvcmsuaHR0cF9jb25uZWN0aW9uX21hbmFnZXJcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eXBlZF9jb25maWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgIFwiQHR5cGVcIjogXCJ0eXBlLmdvb2dsZWFwaXMuY29tL2Vudm95LmV4dGVuc2lvbnMuZmlsdGVycy5uZXR3b3JrLmh0dHBfY29ubmVjdGlvbl9tYW5hZ2VyLnYzLkh0dHBDb25uZWN0aW9uTWFuYWdlclwiLFxuICAgICAgICAgICAgICAgICAgICAgIFwiYWNjZXNzX2xvZ1wiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcImVudm95LmFjY2Vzc19sb2dnZXJzLmZpbGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlZF9jb25maWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQHR5cGVcIjogXCJ0eXBlLmdvb2dsZWFwaXMuY29tL2Vudm95LmV4dGVuc2lvbnMuYWNjZXNzX2xvZ2dlcnMuZmlsZS52My5GaWxlQWNjZXNzTG9nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJwYXRoXCI6IFwiL2Rldi9zdGRvdXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICBcImh0dHBfZmlsdGVyc1wiOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcImVudm95LmZpbHRlcnMuaHR0cC5yb3V0ZXJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlZF9jb25maWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiQHR5cGVcIjogXCJ0eXBlLmdvb2dsZWFwaXMuY29tL2Vudm95LmV4dGVuc2lvbnMuZmlsdGVycy5odHRwLnJvdXRlci52My5Sb3V0ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICBcInJkc1wiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBcImNvbmZpZ19zb3VyY2VcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBcImFkc1wiOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJyZXNvdXJjZV9hcGlfdmVyc2lvblwiOiBcIlYzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICBcInJvdXRlX2NvbmZpZ19uYW1lXCI6IFwibG9jYWxcIlxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgXCJzdGF0X3ByZWZpeFwiOiBcImh0dHBzXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgXCJ0cmFuc3BvcnRfc29ja2V0XCI6IHtcbiAgICAgICAgICAgICAgICAgIFwibmFtZVwiOiBcImVudm95LnRyYW5zcG9ydF9zb2NrZXRzLnRsc1wiLFxuICAgICAgICAgICAgICAgICAgXCJ0eXBlZF9jb25maWdcIjoge1xuICAgICAgICAgICAgICAgICAgICBcIkB0eXBlXCI6IFwidHlwZS5nb29nbGVhcGlzLmNvbS9lbnZveS5leHRlbnNpb25zLnRyYW5zcG9ydF9zb2NrZXRzLnRscy52My5Eb3duc3RyZWFtVGxzQ29udGV4dFwiLFxuICAgICAgICAgICAgICAgICAgICBcImNvbW1vbl90bHNfY29udGV4dFwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgXCJ0bHNfY2VydGlmaWNhdGVfc2RzX3NlY3JldF9jb25maWdzXCI6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwiZXhhbXBsZS5kZWZhdWx0LnN2Y1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBcInNkc19jb25maWdcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiYWRzXCI6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwicmVzb3VyY2VfYXBpX3ZlcnNpb25cIjogXCJWM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBcIm5hbWVcIjogXCJodHRwc1wiXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgXCJibHVlcHJpbnRcIjogXCJ0bHNDZXJ0aWZpY2F0ZVwiLFxuICAgICAgICAgIFwiZ2VuZXJhdGVGcm9tVGxzU2VjcmV0XCI6IFwiZXhhbXBsZS5kZWZhdWx0LnN2Y1wiLFxuICAgICAgICAgIFwidHlwZVwiOiBcInNlY3JldFwiXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH0sXG4gIHtcbiAgICBcImFwaVZlcnNpb25cIjogXCJvcGVyYXRvci5tYXJpbjNyLjNzY2FsZS5uZXQvdjFhbHBoYTFcIixcbiAgICBcImtpbmRcIjogXCJEaXNjb3ZlcnlTZXJ2aWNlXCIsXG4gICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICBcIm5hbWVcIjogXCJkaXNjb3ZlcnlzZXJ2aWNlLWV4YW1wbGVcIixcbiAgICAgIFwibmFtZXNwYWNlXCI6IFwibXktbmFtZXNwYWNlXCJcbiAgICB9LFxuICAgIFwic3BlY1wiOiB7fVxuICB9LFxuICB7XG4gICAgXCJhcGlWZXJzaW9uXCI6IFwib3BlcmF0b3IubWFyaW4zci4zc2NhbGUubmV0L3YxYWxwaGExXCIsXG4gICAgXCJraW5kXCI6IFwiRW52b3lEZXBsb3ltZW50XCIsXG4gICAgXCJtZXRhZGF0YVwiOiB7XG4gICAgICBcIm5hbWVcIjogXCJlbnZveWRlcGxveW1lbnQtc2FtcGxlXCIsXG4gICAgICBcIm5hbWVzcGFjZVwiOiBcIm15LW5hbWVzcGFjZVwiXG4gICAgfSxcbiAgICBcInNwZWNcIjoge1xuICAgICAgXCJkaXNjb3ZlcnlTZXJ2aWNlUmVmXCI6IFwiZGlzY292ZXJ5c2VydmljZS1leGFtcGxlXCIsXG4gICAgICBcImVudm95Q29uZmlnUmVmXCI6IFwiZW52b3ljb25maWctZXhhbXBsZVwiLFxuICAgICAgXCJwb3J0c1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBcIm5hbWVcIjogXCJodHRwc1wiLFxuICAgICAgICAgIFwicG9ydFwiOiA4NDQzXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH1cbl0iLCJjYXBhYmlsaXRpZXMiOiJGdWxsIExpZmVjeWNsZSIsImNhdGVnb3JpZXMiOiJOZXR3b3JraW5nIiwiY2VydGlmaWVkIjoiZmFsc2UiLCJjb250YWluZXJJbWFnZSI6InF1YXkuaW8vM3NjYWxlL21hcmluM3IiLCJjcmVhdGVkQXQiOiIyMDI0LTExLTA4VDEyOjMwOjA1WiIsImRlc2NyaXB0aW9uIjoiTGlnaHdlaWdodCwgQ1JEIGJhc2VkIEVudm95IGNvbnRyb2wgcGxhbmUgZm9yIEt1YmVybmV0ZXMiLCJvcGVyYXRvcnMub3BlcmF0b3JmcmFtZXdvcmsuaW8vYnVpbGRlciI6Im9wZXJhdG9yLXNkay12MS4yOC4wIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL2ludGVybmFsLW9iamVjdHMiOiJbXCJlbnZveWNvbmZpZ3JldmlzaW9ucy5tYXJpbjNyLjNzY2FsZS5uZXRcIixcImRpc2NvdmVyeXNlcnZpY2VjZXJ0aWZpY2F0ZXMub3BlcmF0b3IubWFyaW4zci4zc2NhbGUubmV0XCJdIiwib3BlcmF0b3JzLm9wZXJhdG9yZnJhbWV3b3JrLmlvL3Byb2plY3RfbGF5b3V0IjoiZ28ua3ViZWJ1aWxkZXIuaW8vdjMiLCJyZXBvc2l0b3J5IjoiaHR0cHM6Ly9naXRodWIuY29tLzNzY2FsZS1vcHMvbWFyaW4zciIsInN1cHBvcnQiOiJSZWQgSGF0LCBJbmMuIn0sIm5hbWUiOiJtYXJpbjNyLnYwLjEzLjItYWxwaGEuMiIsIm5hbWVzcGFjZSI6InBsYWNlaG9sZGVyIn0sInNwZWMiOnsiYXBpc2VydmljZWRlZmluaXRpb25zIjp7fSwiY3VzdG9tcmVzb3VyY2VkZWZpbml0aW9ucyI6eyJvd25lZCI6W3siZGVzY3JpcHRpb24iOiJEaXNjb3ZlcnlTZXJ2aWNlQ2VydGlmaWNhdGUgaXMgYW4gaW50ZXJuYWwgcmVzb3VyY2UgdXNlZCB0byBjcmVhdGUgY2VydGlmaWNhdGVzLiBUaGlzIHJlc291cmNlIGlzIHVzZWQgYnkgdGhlIERpc2NvdmVyeVNlcnZpY2UgY29udHJvbGxlciB0byBjcmVhdGUgdGhlIHJlcXVpcmVkIGNlcnRpZmljYXRlcyBmb3IgdGhlIGRpZmZlcmVudCBjb21wb25lbnRzLiBEaXJlY3QgdXNlIG9mIERpc2NvdmVyeVNlcnZpY2VDZXJ0aWZpY2F0ZSBvYmplY3RzIGlzIGRpc2NvdXJhZ2VkLiIsImRpc3BsYXlOYW1lIjoiRGlzY292ZXJ5U2VydmljZUNlcnRpZmljYXRlIiwia2luZCI6IkRpc2NvdmVyeVNlcnZpY2VDZXJ0aWZpY2F0ZSIsIm5hbWUiOiJkaXNjb3ZlcnlzZXJ2aWNlY2VydGlmaWNhdGVzLm9wZXJhdG9yLm1hcmluM3IuM3NjYWxlLm5ldCIsInNwZWNEZXNjcmlwdG9ycyI6W3siZGVzY3JpcHRpb24iOiJDZXJ0aWZpY2F0ZVJlbmV3YWxDb25maWcgY29uZmlndXJlcyB0aGUgY2VydGlmaWNhdGUgcmVuZXdhbCBwcm9jZXNzLiBJZiB1bnNldCBkZWZhdWx0IGJlaGF2aW9yIGlzIHRvIHJlbmV3IHRoZSBjZXJ0aWZpY2F0ZSBidXQgbm90IG5vdGlmeSBvZiByZW5ld2Fscy4iLCJkaXNwbGF5TmFtZSI6IkNlcnRpZmljYXRlIFJlbmV3YWwgQ29uZmlnIiwicGF0aCI6ImNlcnRpZmljYXRlUmVuZXdhbCJ9LHsiZGVzY3JpcHRpb24iOiJFbmFibGVkIGlzIGEgZmxhZyB0byBlbmFibGUgb3IgZGlzYWJsZSByZW5ld2FsIG9mIHRoZSBjZXJ0aWZpY2F0ZSIsImRpc3BsYXlOYW1lIjoiRW5hYmxlZCIsInBhdGgiOiJjZXJ0aWZpY2F0ZVJlbmV3YWwuZW5hYmxlZCJ9LHsiZGVzY3JpcHRpb24iOiJDb21tb25OYW1lIGlzIHRoZSBDb21tb25OYW1lIG9mIHRoZSBjZXJ0aWZpY2F0ZSIsImRpc3BsYXlOYW1lIjoiQ29tbW9uIE5hbWUiLCJwYXRoIjoiY29tbW9uTmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJIb3N0cyBpcyB0aGUgbGlzdCBvZiBob3N0cyB0aGUgY2VydGlmaWNhdGUgaXMgdmFsaWQgZm9yLiBPbmx5IHVzZSB3aGVuICdJc1NlcnZlckNlcnRpZmljYXRlJyBpcyB0cnVlLiBJZiB1bnNldCwgdGhlIENvbW1vbk5hbWUgZmllbGQgd2lsbCBiZSB1c2VkIHRvIHBvcHVsYXRlIHRoZSB2YWxpZCBob3N0cyBvZiB0aGUgY2VydGlmaWNhdGUuIiwiZGlzcGxheU5hbWUiOiJIb3N0cyIsInBhdGgiOiJob3N0cyJ9LHsiZGVzY3JpcHRpb24iOiJJc0NBIGlzIGEgYm9vbGVhbiBzcGVjaWZ5aW5nIHRoYXQgdGhlIGNlcnRpZmljYXRlIGlzIGEgQ0EiLCJkaXNwbGF5TmFtZSI6IklzIENBIiwicGF0aCI6ImlzQ0EifSx7ImRlc2NyaXB0aW9uIjoiU2VjcmV0UmVmIGlzIGEgcmVmZXJlbmNlIHRvIHRoZSBzZWNyZXQgdGhhdCB3aWxsIGhvbGQgdGhlIGNlcnRpZmljYXRlIGFuZCB0aGUgcHJpdmF0ZSBrZXkuIiwiZGlzcGxheU5hbWUiOiJTZWNyZXQgUmVmIiwicGF0aCI6InNlY3JldFJlZiJ9LHsiZGVzY3JpcHRpb24iOiJJc1NlcnZlckNlcnRpZmljYXRlIGlzIGEgYm9vbGVhbiBzcGVjaWZ5aW5nIGlmIHRoZSBjZXJ0aWZpY2F0ZSBzaG91bGQgYmUgaXNzdWVkIHdpdGggc2VydmVyIGF1dGggdXNhZ2UgZW5hYmxlZCIsImRpc3BsYXlOYW1lIjoiSXMgU2VydmVyIENlcnRpZmljYXRlIiwicGF0aCI6InNlcnZlciJ9LHsiZGVzY3JpcHRpb24iOiJTaWduZXIgc3BlY2lmaWVzICB0aGUgc2lnbmVyIHRvIHVzZSB0byBjcmVhdGUgdGhpcyBjZXJ0aWZpY2F0ZS4gU3VwcG9ydGVkIHNpZ25lcnMgYXJlIENlcnRNYW5hZ2VyIGFuZCBTZWxmU2lnbmVkLiIsImRpc3BsYXlOYW1lIjoiU2lnbmVyIiwicGF0aCI6InNpZ25lciJ9LHsiZGVzY3JpcHRpb24iOiJDQVNpZ25lZCBob2xkcyBzcGVjaWZpYyBjb25maWd1cmF0aW9uIGZvciB0aGUgQ0FTaWduZWQgc2lnbmVyIiwiZGlzcGxheU5hbWUiOiJDQVNpZ25lZCIsInBhdGgiOiJzaWduZXIuY2FTaWduZWQifSx7ImRlc2NyaXB0aW9uIjoiQSByZWZlcmVuY2UgdG8gYSBTZWNyZXQgY29udGFpbmluZyB0aGUgQ0EiLCJkaXNwbGF5TmFtZSI6IlNlY3JldCBSZWYiLCJwYXRoIjoic2lnbmVyLmNhU2lnbmVkLmNhU2VjcmV0UmVmIn0seyJkZXNjcmlwdGlvbiI6IlNlbGZTaWduZWQgaG9sZHMgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBmb3IgdGhlIFNlbGZTaWduZWQgc2lnbmVyIiwiZGlzcGxheU5hbWUiOiJTZWxmIFNpZ25lZCIsInBhdGgiOiJzaWduZXIuc2VsZlNpZ25lZCJ9LHsiZGVzY3JpcHRpb24iOiJWYWxpZEZvciBzcGVjaWZpZXMgdGhlIHZhbGlkaXR5IG9mIHRoZSBjZXJ0aWZpY2F0ZSBpbiBzZWNvbmRzIiwiZGlzcGxheU5hbWUiOiJWYWxpZCBGb3IiLCJwYXRoIjoidmFsaWRGb3IifV0sInN0YXR1c0Rlc2NyaXB0b3JzIjpbeyJkZXNjcmlwdGlvbiI6IkNlcnRpZmljYXRlSGFzaCBzdG9yZXMgdGhlIGN1cnJlbnQgaGFzaCBvZiB0aGUgY2VydGlmaWNhdGUuIEl0IGlzIHVzZWQgZm9yIG90aGVyIGNvbnRyb2xsZXJzIHRvIHZhbGlkYXRlIGlmIGEgY2VydGlmaWNhdGUgaGFzIGJlZW4gcmUtaXNzdWVkLiIsImRpc3BsYXlOYW1lIjoiQ2VydGlmaWNhdGUgSGFzaCIsInBhdGgiOiJjZXJ0aWZpY2F0ZUhhc2gifSx7ImRlc2NyaXB0aW9uIjoiQ29uZGl0aW9ucyByZXByZXNlbnQgdGhlIGxhdGVzdCBhdmFpbGFibGUgb2JzZXJ2YXRpb25zIG9mIGFuIG9iamVjdCdzIHN0YXRlIiwiZGlzcGxheU5hbWUiOiJDb25kaXRpb25zIiwicGF0aCI6ImNvbmRpdGlvbnMifSx7ImRlc2NyaXB0aW9uIjoiTm90QWZ0ZXIgaXMgdGhlIHRpbWUgYXQgd2hpY2ggdGhlIGNlcnRpZmljYXRlIGV4cGlyZXMiLCJkaXNwbGF5TmFtZSI6Ik5vdCBBZnRlciIsInBhdGgiOiJub3RBZnRlciJ9LHsiZGVzY3JpcHRpb24iOiJOb3RCZWZvcmUgaXMgdGhlIHRpbWUgYXQgd2hpY2ggdGhlIGNlcnRpZmljYXRlIHN0YXJ0cyBiZWluZyB2YWxpZCIsImRpc3BsYXlOYW1lIjoiTm90IEJlZm9yZSIsInBhdGgiOiJub3RCZWZvcmUifSx7ImRlc2NyaXB0aW9uIjoiUmVhZHkgaXMgYSBib29sZWFuIHRoYXQgc3BlY2lmaWVzIGlmIHRoZSBjZXJ0aWZpY2F0ZSBpcyByZWFkeSB0byBiZSB1c2VkIiwiZGlzcGxheU5hbWUiOiJSZWFkeSIsInBhdGgiOiJyZWFkeSJ9XSwidmVyc2lvbiI6InYxYWxwaGExIn0seyJkZXNjcmlwdGlvbiI6IkRpc2NvdmVyeVNlcnZpY2UgcmVwcmVzZW50cyBhbiBlbnZveSBkaXNjb3Zlcnkgc2VydmljZSBzZXJ2ZXIuIE9ubHkgb25lIGluc3RhbmNlIHBlciBuYW1lc3BhY2UgaXMgY3VycmVudGx5IHN1cHBvcnRlZC4iLCJkaXNwbGF5TmFtZSI6IkRpc2NvdmVyeVNlcnZpY2UiLCJraW5kIjoiRGlzY292ZXJ5U2VydmljZSIsIm5hbWUiOiJkaXNjb3ZlcnlzZXJ2aWNlcy5vcGVyYXRvci5tYXJpbjNyLjNzY2FsZS5uZXQiLCJzcGVjRGVzY3JpcHRvcnMiOlt7ImRlc2NyaXB0aW9uIjoiRGVidWcgZW5hYmxlcyBkZWJ1Z2dpbmcgbG9nIGxldmVsIGZvciB0aGUgZGlzY292ZXJ5IHNlcnZpY2UgY29udHJvbGxlcnMuIEl0IGlzIHNhZmUgdG8gdXNlIHNpbmNlIHNlY3JldCBkYXRhIGlzIG5ldmVyIHNob3duIGluIHRoZSBsb2dzLiIsImRpc3BsYXlOYW1lIjoiRGVidWciLCJwYXRoIjoiZGVidWcifSx7ImRlc2NyaXB0aW9uIjoiSW1hZ2UgaG9sZHMgdGhlIGltYWdlIHRvIHVzZSBmb3IgdGhlIGRpc2NvdmVyeSBzZXJ2aWNlIERlcGxveW1lbnQiLCJkaXNwbGF5TmFtZSI6IkltYWdlIiwicGF0aCI6ImltYWdlIn0seyJkZXNjcmlwdGlvbiI6Ik1ldHJpY3NQb3J0IGlzIHRoZSBwb3J0IHdoZXJlIG1ldHJpY3MgYXJlIHNlcnZlZC4gRGVmYXVsdHMgdG8gODM4My4iLCJkaXNwbGF5TmFtZSI6Ik1ldHJpY3MgUG9ydCIsInBhdGgiOiJtZXRyaWNzUG9ydCJ9LHsiZGVzY3JpcHRpb24iOiJQS0lDb25maWcgaGFzIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBQS0kgdGhhdCBtYXJpbjNyIG1hbmFnZXMgZm9yIHRoZSBkaWZmZXJlbnQgY2VydGlmaWNhdGVzIGl0IHJlcXVpcmVzIiwiZGlzcGxheU5hbWUiOiJQS0lDb25maWciLCJwYXRoIjoicGtpQ29uZmcifSx7ImRpc3BsYXlOYW1lIjoiUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkiLCJwYXRoIjoicGtpQ29uZmcucm9vdENlcnRpZmljYXRlQXV0aG9yaXR5In0seyJkaXNwbGF5TmFtZSI6IkR1cmF0aW9uIiwicGF0aCI6InBraUNvbmZnLnJvb3RDZXJ0aWZpY2F0ZUF1dGhvcml0eS5kdXJhdGlvbiJ9LHsiZGlzcGxheU5hbWUiOiJTZWNyZXQgTmFtZSIsInBhdGgiOiJwa2lDb25mZy5yb290Q2VydGlmaWNhdGVBdXRob3JpdHkuc2VjcmV0TmFtZSJ9LHsiZGlzcGxheU5hbWUiOiJTZXJ2ZXIgQ2VydGlmaWNhdGUiLCJwYXRoIjoicGtpQ29uZmcuc2VydmVyQ2VydGlmaWNhdGUifSx7ImRpc3BsYXlOYW1lIjoiRHVyYXRpb24iLCJwYXRoIjoicGtpQ29uZmcuc2VydmVyQ2VydGlmaWNhdGUuZHVyYXRpb24ifSx7ImRpc3BsYXlOYW1lIjoiU2VjcmV0IE5hbWUiLCJwYXRoIjoicGtpQ29uZmcuc2VydmVyQ2VydGlmaWNhdGUuc2VjcmV0TmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJQcmlvcml0eUNsYXNzIHRvIGFzc2lnbiB0aGUgZGlzY292ZXJ5IHNlcnZpY2UgUG9kIHRvIiwiZGlzcGxheU5hbWUiOiJQb2QgUHJpb3JpdHkgQ2xhc3MiLCJwYXRoIjoicG9kUHJpb3JpdHlDbGFzcyJ9LHsiZGVzY3JpcHRpb24iOiJQcm9iZVBvcnQgaXMgdGhlIHBvcnQgd2hlcmUgaGVhbHRoeiBlbmRwb2ludCBpcyBzZXJ2ZWQuIERlZmF1bHRzIHRvIDgzODQuIiwiZGlzcGxheU5hbWUiOiJQcm9iZSBQb3J0IiwicGF0aCI6InByb2JlUG9ydCJ9LHsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgaG9sZHMgdGhlIFJlc291cmNlIFJlcXVpcmVtZW50cyB0byB1c2UgZm9yIHRoZSBkaXNjb3Zlcnkgc2VydmljZSBEZXBsb3ltZW50LiBXaGVuIG5vdCBzZXQgaXQgZGVmYXVsdHMgdG8gbm8gcmVzb3VyY2UgcmVxdWVzdHMgbm9yIGxpbWl0cy4gQ1BVIGFuZCBNZW1vcnkgcmVzb3VyY2VzIGFyZSBzdXBwb3J0ZWQuIiwiZGlzcGxheU5hbWUiOiJSZXNvdXJjZXMiLCJwYXRoIjoicmVzb3VyY2VzIn0seyJkZXNjcmlwdGlvbiI6IlNlcnZpY2VDb25maWcgY29uZmlndXJlcyB0aGUgd2F5IHRoZSBEaXNjb3ZlcnlTZXJ2aWNlIGVuZHBvaW50cyBhcmUgZXhwb3NlZCIsImRpc3BsYXlOYW1lIjoiU2VydmljZSBDb25maWciLCJwYXRoIjoic2VydmljZUNvbmZpZyJ9LHsiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6InNlcnZpY2VDb25maWcubmFtZSJ9LHsiZGlzcGxheU5hbWUiOiJUeXBlIiwicGF0aCI6InNlcnZpY2VDb25maWcudHlwZSJ9LHsiZGVzY3JpcHRpb24iOiJYZHNTZXJ2ZXJQb3J0IGlzIHRoZSBwb3J0IHdoZXJlIHRoZSB4RFMgc2VydmVyIGxpc3RlbnMuIERlZmF1bHRzIHRvIDE4MDAwLiIsImRpc3BsYXlOYW1lIjoiWGRzIFNlcnZlciBQb3J0IiwicGF0aCI6Inhkc1NlcnZlclBvcnQifV0sInZlcnNpb24iOiJ2MWFscGhhMSJ9LHsiZGVzY3JpcHRpb24iOiJFbnZveUNvbmZpZ1JldmlzaW9uIGlzIGFuIGludGVybmFsIHJlc291cmNlIHRoYXQgc3RvcmVzIGEgc3BlY2lmaWMgdmVyc2lvbiBvZiBhbiBFbnZveUNvbmZpZyByZXNvdXJjZS4gRW52b3lDb25maWdSZXZpc2lvbnMgYXJlIGF1dG9tYXRpY2FsbHkgY3JlYXRlZCBhbmQgZGVsZXRlZCBieSB0aGUgRW52b3lDb25maWcgY29udHJvbGxlciBhbmQgYXJlIG5vdCBpbnRlbmRlZCB0byBiZSBkaXJlY3RseSB1c2VkLiBVc2UgRW52b3lDb25maWcgb2JqZWN0cyBpbnN0ZWFkLiIsImRpc3BsYXlOYW1lIjoiRW52b3lDb25maWdSZXZpc2lvbiIsImtpbmQiOiJFbnZveUNvbmZpZ1JldmlzaW9uIiwibmFtZSI6ImVudm95Y29uZmlncmV2aXNpb25zLm1hcmluM3IuM3NjYWxlLm5ldCIsInNwZWNEZXNjcmlwdG9ycyI6W3siZGVzY3JpcHRpb24iOiJFbnZveUFQSSBpcyB0aGUgdmVyc2lvbiBvZiBlbnZveSdzIEFQSSB0byB1c2UuIERlZmF1bHRzIHRvIHYzLiIsImRpc3BsYXlOYW1lIjoiRW52b3kgQVBJIiwicGF0aCI6ImVudm95QVBJIn0seyJkZXNjcmlwdGlvbiI6IkVudm95UmVzb3VyY2VzIGhvbGRzIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgcmVzb3VyY2VzIHN1cG9ydGVkIGJ5IHRoZSBlbnZveSBkaXNjb3Zlcnkgc2VydmljZSIsImRpc3BsYXlOYW1lIjoiRW52b3kgUmVzb3VyY2VzIiwicGF0aCI6ImVudm95UmVzb3VyY2VzIn0seyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgQ2x1c3RlciByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvY2x1c3Rlci92My9jbHVzdGVyLnByb3RvIiwiZGlzcGxheU5hbWUiOiJDbHVzdGVycyIsInBhdGgiOiJlbnZveVJlc291cmNlcy5jbHVzdGVycyJ9LHsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZveSByZXNvdXJjZS4gREVQUkVDQVRFRDogdGhpcyBmaWVsZCBoYXMgbm8gZWZmZWN0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzIGlzIGluY2x1ZGVkIGluIHRoZSByZXNvdXJjZSBpdHNlbGYuIFJlZmVyIHRvIHRoZSBlbnZveSBBUEkgcmVmZXJlbmNlIHRvIGNoZWNrIGhvdyB0aGUgbmFtZSBpcyBzcGVjaWZpZWQgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4iLCJkaXNwbGF5TmFtZSI6Ik5hbWUiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMuY2x1c3RlcnNbMF0ubmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IlZhbHVlIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmNsdXN0ZXJzWzBdLnZhbHVlIn0seyJkZXNjcmlwdGlvbiI6IkVuZHBvaW50cyBpcyBhIGxpc3Qgb2YgdGhlIGVudm95IENsdXN0ZXJMb2FkQXNzaWdubWVudCByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvZW5kcG9pbnQvdjMvZW5kcG9pbnQucHJvdG8iLCJkaXNwbGF5TmFtZSI6IkVuZHBvaW50cyIsInBhdGgiOiJlbnZveVJlc291cmNlcy5lbmRwb2ludHMifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmVuZHBvaW50c1swXS5uYW1lIn0seyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBlbnZveSByZXNvdXJjZSIsImRpc3BsYXlOYW1lIjoiVmFsdWUiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMuZW5kcG9pbnRzWzBdLnZhbHVlIn0seyJkZXNjcmlwdGlvbiI6IkV4dGVuc2lvbkNvbmZpZ3MgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBFeHRlbnNpb25Db25maWcgcmVzb3VyY2UgdHlwZSBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvY29yZS92My9leHRlbnNpb24ucHJvdG8iLCJkaXNwbGF5TmFtZSI6IkV4dGVuc2lvbiBDb25maWdzIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmV4dGVuc2lvbkNvbmZpZ3MifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmV4dGVuc2lvbkNvbmZpZ3NbMF0ubmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IlZhbHVlIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmV4dGVuc2lvbkNvbmZpZ3NbMF0udmFsdWUifSx7ImRlc2NyaXB0aW9uIjoiTGlzdGVuZXJzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgTGlzdGVuZXIgcmVzb3VyY2UgdHlwZS4gQVBJIFYzIHJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktdjMvY29uZmlnL2xpc3RlbmVyL3YzL2xpc3RlbmVyLnByb3RvIiwiZGlzcGxheU5hbWUiOiJMaXN0ZW5lcnMiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMubGlzdGVuZXJzIn0seyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHJlc291cmNlLiBERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2VzIGZvciBkaXNjb3ZlcnkgcHVycG9zZXMgaXMgaW5jbHVkZWQgaW4gdGhlIHJlc291cmNlIGl0c2VsZi4gUmVmZXIgdG8gdGhlIGVudm95IEFQSSByZWZlcmVuY2UgdG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsImRpc3BsYXlOYW1lIjoiTmFtZSIsInBhdGgiOiJlbnZveVJlc291cmNlcy5saXN0ZW5lcnNbMF0ubmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IlZhbHVlIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmxpc3RlbmVyc1swXS52YWx1ZSJ9LHsiZGVzY3JpcHRpb24iOiJSb3V0ZXMgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBSb3V0ZSByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvcm91dGUvdjMvcm91dGUucHJvdG8iLCJkaXNwbGF5TmFtZSI6IlJvdXRlcyIsInBhdGgiOiJlbnZveVJlc291cmNlcy5yb3V0ZXMifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnJvdXRlc1swXS5uYW1lIn0seyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBlbnZveSByZXNvdXJjZSIsImRpc3BsYXlOYW1lIjoiVmFsdWUiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMucm91dGVzWzBdLnZhbHVlIn0seyJkZXNjcmlwdGlvbiI6IlJ1bnRpbWVzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgUnVudGltZSByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9zZXJ2aWNlL3J1bnRpbWUvdjMvcnRkcy5wcm90byIsImRpc3BsYXlOYW1lIjoiUnVudGltZXMiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMucnVudGltZXMifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnJ1bnRpbWVzWzBdLm5hbWUifSx7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVudm95IHJlc291cmNlIiwiZGlzcGxheU5hbWUiOiJWYWx1ZSIsInBhdGgiOiJlbnZveVJlc291cmNlcy5ydW50aW1lc1swXS52YWx1ZSJ9LHsiZGVzY3JpcHRpb24iOiJTY29wZWRSb3V0ZXMgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBTY29wZVJvdXRlIHJlc291cmNlIHR5cGUuIEFQSSBWMyByZWZlcmVuY2U6IGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLXYzL2NvbmZpZy9yb3V0ZS92My9zY29wZWRfcm91dGUucHJvdG8iLCJkaXNwbGF5TmFtZSI6IlNjb3BlZCBSb3V0ZXMiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMuc2NvcGVkUm91dGVzIn0seyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHJlc291cmNlLiBERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2VzIGZvciBkaXNjb3ZlcnkgcHVycG9zZXMgaXMgaW5jbHVkZWQgaW4gdGhlIHJlc291cmNlIGl0c2VsZi4gUmVmZXIgdG8gdGhlIGVudm95IEFQSSByZWZlcmVuY2UgdG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsImRpc3BsYXlOYW1lIjoiTmFtZSIsInBhdGgiOiJlbnZveVJlc291cmNlcy5zY29wZWRSb3V0ZXNbMF0ubmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IlZhbHVlIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnNjb3BlZFJvdXRlc1swXS52YWx1ZSJ9LHsiZGVzY3JpcHRpb24iOiJTZWNyZXRzIGlzIGEgbGlzdCBvZiByZWZlcmVuY2VzIHRvIEt1YmVybmV0ZXMgU2VjcmV0IG9iamVjdHMuIiwiZGlzcGxheU5hbWUiOiJTZWNyZXRzIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnNlY3JldHMifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgdHNsQ2VydGljYXRlIHNlY3JldCByZXNvdXJjZS4gVGhlIGNlcnRpZmljYXRlIHdpbGwgYmUgZmV0Y2hlZCBmcm9tIGEgS3ViZXJuZXRlcyBTZWNyZXRzIG9mIHR5cGUgJ2t1YmVybmV0ZXMuaW8vdGxzJyB3aXRoIHRoaXMgc2FtZSBuYW1lLiIsImRpc3BsYXlOYW1lIjoiTmFtZSIsInBhdGgiOiJlbnZveVJlc291cmNlcy5zZWNyZXRzWzBdLm5hbWUifSx7ImRlc2NyaXB0aW9uIjoiREVQUkVDQVRFRDogdGhpcyBmaWVsZCBpcyBkZXByZWNhdGVkIGFuZCBpdCdzIHZhbHVlIHdpbGwgYmUgaWdub3JlZC4gVGhlICduYW1lJyBvZiB0aGUgS3ViZXJuZXRlcyBTZWNyZXQgbXVzdCBtYXRjaCB0aGUgJ25hbWUnIGZpZWxkLiIsImRpc3BsYXlOYW1lIjoiUmVmIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnNlY3JldHNbMF0ucmVmIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6aW8ua3ViZXJuZXRlczpTZWNyZXRSZWZlcmVuY2UiXX0seyJkZXNjcmlwdGlvbiI6Ik5vZGVJRCBob2xkcyB0aGUgZW52b3kgaWRlbnRpZmllciBmb3IgdGhlIGRpc2NvdmVyeSBzZXJ2aWNlIHRvIGtub3cgd2hpY2ggc2V0IG9mIHJlc291cmNlcyB0byBzZW5kIHRvIGVhY2ggb2YgdGhlIGVudm95IGNsaWVudHMgdGhhdCBjb25uZWN0IHRvIGl0LiIsImRpc3BsYXlOYW1lIjoiTm9kZSBJRCIsInBhdGgiOiJub2RlSUQifSx7ImRlc2NyaXB0aW9uIjoiUmVzb3VyY2VzIGhvbGRzIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgcmVzb3VyY2VzIHN1cG9ydGVkIGJ5IHRoZSBlbnZveSBkaXNjb3Zlcnkgc2VydmljZSIsImRpc3BsYXlOYW1lIjoiUmVzb3VyY2VzIiwicGF0aCI6InJlc291cmNlcyJ9LHsiZGVzY3JpcHRpb24iOiJCbHVlcHJpbnQgc3BlY2lmaWVzIGEgdGVtcGxhdGUgdG8gZ2VuZXJhdGUgYSBjb25maWd1cmF0aW9uIHByb3RvLiBJdCBpcyBjdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgdG8gZ2VuZXJhdGUgc2VjcmV0IGNvbmZpZ3VyYXRpb24gcmVzb3VyY2VzIGZyb20gazhzIFNlY3JldHMiLCJkaXNwbGF5TmFtZSI6IkJsdWVwcmludCIsInBhdGgiOiJyZXNvdXJjZXNbMF0uYmx1ZXByaW50In0seyJkZXNjcmlwdGlvbiI6IlNwZWNpZmllcyBhIGxhYmVsIHNlbGVjdG9yIHRvIHdhdGNoIGZvciBFbmRwb2ludFNsaWNlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgZW5kcG9pbnQgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IkdlbmVyYXRlIEZyb20gRW5kcG9pbnQgU2xpY2VzIiwicGF0aCI6InJlc291cmNlc1swXS5nZW5lcmF0ZUZyb21FbmRwb2ludFNsaWNlcyJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiBhIEt1YmVybmV0ZXMgU2VjcmV0IG9mIHR5cGUgXCJPcGFxdWVcIi4gSXQgd2lsbCBnZW5lcmF0ZSBhbiBlbnZveSBcImdlbmVyaWMgc2VjcmV0XCIgcHJvdG8uIiwiZGlzcGxheU5hbWUiOiJHZW5lcmF0ZSBGcm9tIE9wYXF1ZSBTZWNyZXQiLCJwYXRoIjoicmVzb3VyY2VzWzBdLmdlbmVyYXRlRnJvbU9wYXF1ZVNlY3JldCJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiBhIEt1YmVybmV0ZXMgU2VjcmV0IG9mIHR5cGUgXCJrdWJlcm5ldGVzLmlvL3Rsc1wiIiwiZGlzcGxheU5hbWUiOiJHZW5lcmF0ZSBGcm9tIFRscyBTZWNyZXQiLCJwYXRoIjoicmVzb3VyY2VzWzBdLmdlbmVyYXRlRnJvbVRsc1NlY3JldCJ9LHsiZGVzY3JpcHRpb24iOiJUeXBlIGlzIHRoZSB0eXBlIHVybCBmb3IgdGhlIHByb3RvYnVmIG1lc3NhZ2UiLCJkaXNwbGF5TmFtZSI6IlR5cGUiLCJwYXRoIjoicmVzb3VyY2VzWzBdLnR5cGUifSx7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHByb3RvYnVmZXIgbWVzc2FnZSB0aGF0IGNvbmZpZ3VyZXMgdGhlIHJlc291cmNlLiBUaGUgcHJvdG8gbXVzdCBtYXRjaCB0aGUgZW52b3kgY29uZmlndXJhdGlvbiBBUEkgdjMgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGdpdmVuIHJlc291cmNlIHR5cGUgKGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLWRvY3MveGRzX3Byb3RvY29sI3Jlc291cmNlLXR5cGVzKSIsImRpc3BsYXlOYW1lIjoiVmFsdWUiLCJwYXRoIjoicmVzb3VyY2VzWzBdLnZhbHVlIn0seyJkZXNjcmlwdGlvbiI6IlNlcmlhbGl6YXRpb24gc3BlY2ljaWZpZXMgdGhlIHNlcmlhbGl6YXRpb24gZm9ybWF0IHVzZWQgdG8gZGVzY3JpYmUgdGhlIHJlc291cmNlcy4gXCJqc29uXCIgYW5kIFwieWFtbFwiIGFyZSBzdXBwb3J0ZWQuIFwianNvblwiIGlzIHVzZWQgaWYgdW5zZXQuIiwiZGlzcGxheU5hbWUiOiJTZXJpYWxpemF0aW9uIiwicGF0aCI6InNlcmlhbGl6YXRpb24ifSx7ImRlc2NyaXB0aW9uIjoiVmVyc2lvbiBpcyBhIGhhc2ggb2YgdGhlIEVudm95UmVzb3VyY2VzIGZpZWxkIiwiZGlzcGxheU5hbWUiOiJWZXJzaW9uIiwicGF0aCI6InZlcnNpb24ifV0sInN0YXR1c0Rlc2NyaXB0b3JzIjpbeyJkZXNjcmlwdGlvbiI6IkNvbmRpdGlvbnMgcmVwcmVzZW50IHRoZSBsYXRlc3QgYXZhaWxhYmxlIG9ic2VydmF0aW9ucyBvZiBhbiBvYmplY3QncyBzdGF0ZSIsImRpc3BsYXlOYW1lIjoiQ29uZGl0aW9ucyIsInBhdGgiOiJjb25kaXRpb25zIn0seyJkZXNjcmlwdGlvbiI6Ikxhc3RQdWJsaXNoZWRBdCBpbmRpY2F0ZXMgdGhlIGxhc3QgdGltZSB0aGlzIGNvbmZpZyByZXZpZXcgdHJhbnNpdGlvbmVkIHRvIHB1Ymxpc2hlZCIsImRpc3BsYXlOYW1lIjoiTGFzdCBQdWJsaXNoZWQgQXQiLCJwYXRoIjoibGFzdFB1Ymxpc2hlZEF0In0seyJkZXNjcmlwdGlvbiI6IlByb3ZpZGVzVmVyc2lvbnMga2VlcHMgdHJhY2sgb2YgdGhlIHZlcnNpb24gdGhhdCB0aGlzIHJldmlzaW9uIHB1Ymxpc2hlcyBpbiB0aGUgeERTIHNlcnZlciBmb3IgZWFjaCByZXNvdXJjZSB0eXBlIiwiZGlzcGxheU5hbWUiOiJQcm92aWRlcyBWZXJzaW9ucyIsInBhdGgiOiJwcm92aWRlc1ZlcnNpb25zIn0seyJkZXNjcmlwdGlvbiI6IlB1Ymxpc2hlZCBzaWduYWxzIGlmIHRoZSBFbnZveUNvbmZpZ1JldmlzaW9uIGlzIHRoZSBvbmUgY3VycmVudGx5IHB1Ymxpc2hlZCBpbiB0aGUgeGRzIHNlcnZlciBjYWNoZSIsImRpc3BsYXlOYW1lIjoiUHVibGlzaGVkIiwicGF0aCI6InB1Ymxpc2hlZCJ9LHsiZGVzY3JpcHRpb24iOiJUYWludGVkIGluZGljYXRlcyB3aGV0aGVyIHRoZSBFbnZveUNvbmZpZ1JldmlzaW9uIGlzIGVsaWdpYmxlIGZvciBwdWJsaXNoaW5nIG9yIG5vdCIsImRpc3BsYXlOYW1lIjoiVGFpbnRlZCIsInBhdGgiOiJ0YWludGVkIn1dLCJ2ZXJzaW9uIjoidjFhbHBoYTEifSx7ImRlc2NyaXB0aW9uIjoiRW52b3lDb25maWcgaG9sZHMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIGEgZ2l2ZW4gZW52b3kgbm9kZUlELiBUaGUgc3BlYyBvZiBhbiBFbnZveUNvbmZpZyBvYmplY3QgaG9sZHMgdGhlIEVudm95IHJlc291cmNlcyB0aGF0IGNvbmZvcm0gdGhlIGRlc2lyZWQgY29uZmlndXJhdGlvbiBmb3IgdGhlIGdpdmVuIG5vZGVJRCBhbmQgdGhhdCB0aGUgZGlzY292ZXJ5IHNlcnZpY2Ugd2lsbCBzZW5kIHRvIGFueSBlbnZveSBjbGllbnQgdGhhdCBpZGVudGlmaWVzIGl0c2VsZiB3aXRoIHRoYXQgbm9kZUlELiIsImRpc3BsYXlOYW1lIjoiRW52b3lDb25maWciLCJraW5kIjoiRW52b3lDb25maWciLCJuYW1lIjoiZW52b3ljb25maWdzLm1hcmluM3IuM3NjYWxlLm5ldCIsInJlc291cmNlcyI6W3sia2luZCI6IkVudm95Q29uZmlnUmV2aXNpb24iLCJuYW1lIjoiIiwidmVyc2lvbiI6InYxYWxwaGExIn1dLCJzcGVjRGVzY3JpcHRvcnMiOlt7ImRlc2NyaXB0aW9uIjoiRW52b3lBUEkgaXMgdGhlIHZlcnNpb24gb2YgZW52b3kncyBBUEkgdG8gdXNlLiBEZWZhdWx0cyB0byB2My4iLCJkaXNwbGF5TmFtZSI6IkVudm95IEFQSSIsInBhdGgiOiJlbnZveUFQSSJ9LHsiZGVzY3JpcHRpb24iOiJFbnZveVJlc291cmNlcyBob2xkcyB0aGUgZGlmZmVyZW50IHR5cGVzIG9mIHJlc291cmNlcyBzdXBvcnRlZCBieSB0aGUgZW52b3kgZGlzY292ZXJ5IHNlcnZpY2UgREVQUkVDQVRFRC4gVXNlIHRoZSBgcmVzb3VyY2VzYCBmaWVsZCBpbnN0ZWFkLiIsImRpc3BsYXlOYW1lIjoiRW52b3kgUmVzb3VyY2VzIiwicGF0aCI6ImVudm95UmVzb3VyY2VzIn0seyJkZXNjcmlwdGlvbiI6IkNsdXN0ZXJzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgQ2x1c3RlciByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvY2x1c3Rlci92My9jbHVzdGVyLnByb3RvIiwiZGlzcGxheU5hbWUiOiJDbHVzdGVycyIsInBhdGgiOiJlbnZveVJlc291cmNlcy5jbHVzdGVycyJ9LHsiZGVzY3JpcHRpb24iOiJOYW1lIG9mIHRoZSBlbnZveSByZXNvdXJjZS4gREVQUkVDQVRFRDogdGhpcyBmaWVsZCBoYXMgbm8gZWZmZWN0IGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgcmVsZWFzZS4gVGhlIG5hbWUgb2YgdGhlIHJlc291cmNlcyBmb3IgZGlzY292ZXJ5IHB1cnBvc2VzIGlzIGluY2x1ZGVkIGluIHRoZSByZXNvdXJjZSBpdHNlbGYuIFJlZmVyIHRvIHRoZSBlbnZveSBBUEkgcmVmZXJlbmNlIHRvIGNoZWNrIGhvdyB0aGUgbmFtZSBpcyBzcGVjaWZpZWQgZm9yIGVhY2ggcmVzb3VyY2UgdHlwZS4iLCJkaXNwbGF5TmFtZSI6Ik5hbWUiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMuY2x1c3RlcnNbMF0ubmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IlZhbHVlIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmNsdXN0ZXJzWzBdLnZhbHVlIn0seyJkZXNjcmlwdGlvbiI6IkVuZHBvaW50cyBpcyBhIGxpc3Qgb2YgdGhlIGVudm95IENsdXN0ZXJMb2FkQXNzaWdubWVudCByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvZW5kcG9pbnQvdjMvZW5kcG9pbnQucHJvdG8iLCJkaXNwbGF5TmFtZSI6IkVuZHBvaW50cyIsInBhdGgiOiJlbnZveVJlc291cmNlcy5lbmRwb2ludHMifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmVuZHBvaW50c1swXS5uYW1lIn0seyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBlbnZveSByZXNvdXJjZSIsImRpc3BsYXlOYW1lIjoiVmFsdWUiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMuZW5kcG9pbnRzWzBdLnZhbHVlIn0seyJkZXNjcmlwdGlvbiI6IkV4dGVuc2lvbkNvbmZpZ3MgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBFeHRlbnNpb25Db25maWcgcmVzb3VyY2UgdHlwZSBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvY29yZS92My9leHRlbnNpb24ucHJvdG8iLCJkaXNwbGF5TmFtZSI6IkV4dGVuc2lvbiBDb25maWdzIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmV4dGVuc2lvbkNvbmZpZ3MifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmV4dGVuc2lvbkNvbmZpZ3NbMF0ubmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IlZhbHVlIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmV4dGVuc2lvbkNvbmZpZ3NbMF0udmFsdWUifSx7ImRlc2NyaXB0aW9uIjoiTGlzdGVuZXJzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgTGlzdGVuZXIgcmVzb3VyY2UgdHlwZS4gQVBJIFYzIHJlZmVyZW5jZTogaHR0cHM6Ly93d3cuZW52b3lwcm94eS5pby9kb2NzL2Vudm95L2xhdGVzdC9hcGktdjMvY29uZmlnL2xpc3RlbmVyL3YzL2xpc3RlbmVyLnByb3RvIiwiZGlzcGxheU5hbWUiOiJMaXN0ZW5lcnMiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMubGlzdGVuZXJzIn0seyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHJlc291cmNlLiBERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2VzIGZvciBkaXNjb3ZlcnkgcHVycG9zZXMgaXMgaW5jbHVkZWQgaW4gdGhlIHJlc291cmNlIGl0c2VsZi4gUmVmZXIgdG8gdGhlIGVudm95IEFQSSByZWZlcmVuY2UgdG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsImRpc3BsYXlOYW1lIjoiTmFtZSIsInBhdGgiOiJlbnZveVJlc291cmNlcy5saXN0ZW5lcnNbMF0ubmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IlZhbHVlIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLmxpc3RlbmVyc1swXS52YWx1ZSJ9LHsiZGVzY3JpcHRpb24iOiJSb3V0ZXMgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBSb3V0ZSByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9jb25maWcvcm91dGUvdjMvcm91dGUucHJvdG8iLCJkaXNwbGF5TmFtZSI6IlJvdXRlcyIsInBhdGgiOiJlbnZveVJlc291cmNlcy5yb3V0ZXMifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnJvdXRlc1swXS5uYW1lIn0seyJkZXNjcmlwdGlvbiI6IlZhbHVlIGlzIHRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBlbnZveSByZXNvdXJjZSIsImRpc3BsYXlOYW1lIjoiVmFsdWUiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMucm91dGVzWzBdLnZhbHVlIn0seyJkZXNjcmlwdGlvbiI6IlJ1bnRpbWVzIGlzIGEgbGlzdCBvZiB0aGUgZW52b3kgUnVudGltZSByZXNvdXJjZSB0eXBlLiBBUEkgVjMgcmVmZXJlbmNlOiBodHRwczovL3d3dy5lbnZveXByb3h5LmlvL2RvY3MvZW52b3kvbGF0ZXN0L2FwaS12My9zZXJ2aWNlL3J1bnRpbWUvdjMvcnRkcy5wcm90byIsImRpc3BsYXlOYW1lIjoiUnVudGltZXMiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMucnVudGltZXMifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgcmVzb3VyY2UuIERFUFJFQ0FURUQ6IHRoaXMgZmllbGQgaGFzIG5vIGVmZmVjdCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIGFuIHVwY29taW5nIHJlbGVhc2UuIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZXMgZm9yIGRpc2NvdmVyeSBwdXJwb3NlcyBpcyBpbmNsdWRlZCBpbiB0aGUgcmVzb3VyY2UgaXRzZWxmLiBSZWZlciB0byB0aGUgZW52b3kgQVBJIHJlZmVyZW5jZSB0byBjaGVjayBob3cgdGhlIG5hbWUgaXMgc3BlY2lmaWVkIGZvciBlYWNoIHJlc291cmNlIHR5cGUuIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnJ1bnRpbWVzWzBdLm5hbWUifSx7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb24gb2YgdGhlIGVudm95IHJlc291cmNlIiwiZGlzcGxheU5hbWUiOiJWYWx1ZSIsInBhdGgiOiJlbnZveVJlc291cmNlcy5ydW50aW1lc1swXS52YWx1ZSJ9LHsiZGVzY3JpcHRpb24iOiJTY29wZWRSb3V0ZXMgaXMgYSBsaXN0IG9mIHRoZSBlbnZveSBTY29wZVJvdXRlIHJlc291cmNlIHR5cGUuIEFQSSBWMyByZWZlcmVuY2U6IGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLXYzL2NvbmZpZy9yb3V0ZS92My9zY29wZWRfcm91dGUucHJvdG8iLCJkaXNwbGF5TmFtZSI6IlNjb3BlZCBSb3V0ZXMiLCJwYXRoIjoiZW52b3lSZXNvdXJjZXMuc2NvcGVkUm91dGVzIn0seyJkZXNjcmlwdGlvbiI6Ik5hbWUgb2YgdGhlIGVudm95IHJlc291cmNlLiBERVBSRUNBVEVEOiB0aGlzIGZpZWxkIGhhcyBubyBlZmZlY3QgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhbiB1cGNvbWluZyByZWxlYXNlLiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2VzIGZvciBkaXNjb3ZlcnkgcHVycG9zZXMgaXMgaW5jbHVkZWQgaW4gdGhlIHJlc291cmNlIGl0c2VsZi4gUmVmZXIgdG8gdGhlIGVudm95IEFQSSByZWZlcmVuY2UgdG8gY2hlY2sgaG93IHRoZSBuYW1lIGlzIHNwZWNpZmllZCBmb3IgZWFjaCByZXNvdXJjZSB0eXBlLiIsImRpc3BsYXlOYW1lIjoiTmFtZSIsInBhdGgiOiJlbnZveVJlc291cmNlcy5zY29wZWRSb3V0ZXNbMF0ubmFtZSJ9LHsiZGVzY3JpcHRpb24iOiJWYWx1ZSBpcyB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZW52b3kgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IlZhbHVlIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnNjb3BlZFJvdXRlc1swXS52YWx1ZSJ9LHsiZGVzY3JpcHRpb24iOiJTZWNyZXRzIGlzIGEgbGlzdCBvZiByZWZlcmVuY2VzIHRvIEt1YmVybmV0ZXMgU2VjcmV0IG9iamVjdHMuIiwiZGlzcGxheU5hbWUiOiJTZWNyZXRzIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnNlY3JldHMifSx7ImRlc2NyaXB0aW9uIjoiTmFtZSBvZiB0aGUgZW52b3kgdHNsQ2VydGljYXRlIHNlY3JldCByZXNvdXJjZS4gVGhlIGNlcnRpZmljYXRlIHdpbGwgYmUgZmV0Y2hlZCBmcm9tIGEgS3ViZXJuZXRlcyBTZWNyZXRzIG9mIHR5cGUgJ2t1YmVybmV0ZXMuaW8vdGxzJyB3aXRoIHRoaXMgc2FtZSBuYW1lLiIsImRpc3BsYXlOYW1lIjoiTmFtZSIsInBhdGgiOiJlbnZveVJlc291cmNlcy5zZWNyZXRzWzBdLm5hbWUifSx7ImRlc2NyaXB0aW9uIjoiREVQUkVDQVRFRDogdGhpcyBmaWVsZCBpcyBkZXByZWNhdGVkIGFuZCBpdCdzIHZhbHVlIHdpbGwgYmUgaWdub3JlZC4gVGhlICduYW1lJyBvZiB0aGUgS3ViZXJuZXRlcyBTZWNyZXQgbXVzdCBtYXRjaCB0aGUgJ25hbWUnIGZpZWxkLiIsImRpc3BsYXlOYW1lIjoiUmVmIiwicGF0aCI6ImVudm95UmVzb3VyY2VzLnNlY3JldHNbMF0ucmVmIiwieC1kZXNjcmlwdG9ycyI6WyJ1cm46YWxtOmRlc2NyaXB0b3I6aW8ua3ViZXJuZXRlczpTZWNyZXRSZWZlcmVuY2UiXX0seyJkZXNjcmlwdGlvbiI6Ik5vZGVJRCBob2xkcyB0aGUgZW52b3kgaWRlbnRpZmllciBmb3IgdGhlIGRpc2NvdmVyeSBzZXJ2aWNlIHRvIGtub3cgd2hpY2ggc2V0IG9mIHJlc291cmNlcyB0byBzZW5kIHRvIGVhY2ggb2YgdGhlIGVudm95IGNsaWVudHMgdGhhdCBjb25uZWN0IHRvIGl0LiIsImRpc3BsYXlOYW1lIjoiTm9kZSBJRCIsInBhdGgiOiJub2RlSUQifSx7ImRlc2NyaXB0aW9uIjoiUmVzb3VyY2VzIGhvbGRzIHRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgcmVzb3VyY2VzIHN1cG9ydGVkIGJ5IHRoZSBlbnZveSBkaXNjb3Zlcnkgc2VydmljZSIsImRpc3BsYXlOYW1lIjoiUmVzb3VyY2VzIiwicGF0aCI6InJlc291cmNlcyJ9LHsiZGVzY3JpcHRpb24iOiJCbHVlcHJpbnQgc3BlY2lmaWVzIGEgdGVtcGxhdGUgdG8gZ2VuZXJhdGUgYSBjb25maWd1cmF0aW9uIHByb3RvLiBJdCBpcyBjdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgdG8gZ2VuZXJhdGUgc2VjcmV0IGNvbmZpZ3VyYXRpb24gcmVzb3VyY2VzIGZyb20gazhzIFNlY3JldHMiLCJkaXNwbGF5TmFtZSI6IkJsdWVwcmludCIsInBhdGgiOiJyZXNvdXJjZXNbMF0uYmx1ZXByaW50In0seyJkZXNjcmlwdGlvbiI6IlNwZWNpZmllcyBhIGxhYmVsIHNlbGVjdG9yIHRvIHdhdGNoIGZvciBFbmRwb2ludFNsaWNlcyB0aGF0IHdpbGwgYmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUgZW5kcG9pbnQgcmVzb3VyY2UiLCJkaXNwbGF5TmFtZSI6IkdlbmVyYXRlIEZyb20gRW5kcG9pbnQgU2xpY2VzIiwicGF0aCI6InJlc291cmNlc1swXS5nZW5lcmF0ZUZyb21FbmRwb2ludFNsaWNlcyJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiBhIEt1YmVybmV0ZXMgU2VjcmV0IG9mIHR5cGUgXCJPcGFxdWVcIi4gSXQgd2lsbCBnZW5lcmF0ZSBhbiBlbnZveSBcImdlbmVyaWMgc2VjcmV0XCIgcHJvdG8uIiwiZGlzcGxheU5hbWUiOiJHZW5lcmF0ZSBGcm9tIE9wYXF1ZSBTZWNyZXQiLCJwYXRoIjoicmVzb3VyY2VzWzBdLmdlbmVyYXRlRnJvbU9wYXF1ZVNlY3JldCJ9LHsiZGVzY3JpcHRpb24iOiJUaGUgbmFtZSBvZiBhIEt1YmVybmV0ZXMgU2VjcmV0IG9mIHR5cGUgXCJrdWJlcm5ldGVzLmlvL3Rsc1wiIiwiZGlzcGxheU5hbWUiOiJHZW5lcmF0ZSBGcm9tIFRscyBTZWNyZXQiLCJwYXRoIjoicmVzb3VyY2VzWzBdLmdlbmVyYXRlRnJvbVRsc1NlY3JldCJ9LHsiZGVzY3JpcHRpb24iOiJUeXBlIGlzIHRoZSB0eXBlIHVybCBmb3IgdGhlIHByb3RvYnVmIG1lc3NhZ2UiLCJkaXNwbGF5TmFtZSI6IlR5cGUiLCJwYXRoIjoicmVzb3VyY2VzWzBdLnR5cGUifSx7ImRlc2NyaXB0aW9uIjoiVmFsdWUgaXMgdGhlIHByb3RvYnVmZXIgbWVzc2FnZSB0aGF0IGNvbmZpZ3VyZXMgdGhlIHJlc291cmNlLiBUaGUgcHJvdG8gbXVzdCBtYXRjaCB0aGUgZW52b3kgY29uZmlndXJhdGlvbiBBUEkgdjMgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIGdpdmVuIHJlc291cmNlIHR5cGUgKGh0dHBzOi8vd3d3LmVudm95cHJveHkuaW8vZG9jcy9lbnZveS9sYXRlc3QvYXBpLWRvY3MveGRzX3Byb3RvY29sI3Jlc291cmNlLXR5cGVzKSIsImRpc3BsYXlOYW1lIjoiVmFsdWUiLCJwYXRoIjoicmVzb3VyY2VzWzBdLnZhbHVlIn0seyJkZXNjcmlwdGlvbiI6IlNlcmlhbGl6YXRpb24gc3BlY2ljaWZpZXMgdGhlIHNlcmlhbGl6YXRpb24gZm9ybWF0IHVzZWQgdG8gZGVzY3JpYmUgdGhlIHJlc291cmNlcy4gXCJqc29uXCIgYW5kIFwieWFtbFwiIGFyZSBzdXBwb3J0ZWQuIFwianNvblwiIGlzIHVzZWQgaWYgdW5zZXQuIiwiZGlzcGxheU5hbWUiOiJTZXJpYWxpemF0aW9uIiwicGF0aCI6InNlcmlhbGl6YXRpb24ifV0sInN0YXR1c0Rlc2NyaXB0b3JzIjpbeyJkZXNjcmlwdGlvbiI6IkNhY2hlU3RhdGUgc3VtbWFyaXplcyBhbGwgdGhlIG9ic2VydmF0aW9ucyBhYm91dCB0aGUgRW52b3lDb25maWcgdG8gZ2l2ZSB0aGUgdXNlciBhIGNvbmNyZXRlIGlkZWEgb24gdGhlIGdlbmVyYWwgc3RhdHVzIG9mIHRoZSBkaXNjb3Zlcnkgc2VydmllIGNhY2hlLiBJdCBpcyBpbnRlbmRlZCBvbmx5IGZvciBodW1hbiBjb25zdW1wdGlvbi4gT3RoZXIgY29udHJvbGxlcnMgc2hvdWxkIHJlbGx5IG9uIGNvbmRpdGlvbnMgdG8gZGV0ZXJtaW5lIHRoZSBzdGF0dXMgb2YgdGhlIGRpc2NvdmVyeSBzZXJ2ZXIgY2FjaGUuIiwiZGlzcGxheU5hbWUiOiJDYWNoZSBTdGF0ZSIsInBhdGgiOiJjYWNoZVN0YXRlIn0seyJkZXNjcmlwdGlvbiI6IkNvbmRpdGlvbnMgcmVwcmVzZW50IHRoZSBsYXRlc3QgYXZhaWxhYmxlIG9ic2VydmF0aW9ucyBvZiBhbiBvYmplY3QncyBzdGF0ZSIsImRpc3BsYXlOYW1lIjoiQ29uZGl0aW9ucyIsInBhdGgiOiJjb25kaXRpb25zIn0seyJkZXNjcmlwdGlvbiI6IkRlc2lyZWRWZXJzaW9uIHJlcHJlc2VudHMgdGhlIHJlc291cmNlcyB2ZXJzaW9uIGRlc2NyaWJlZCBpbiB0aGUgc3BlYyBvZiB0aGUgRW52b3lDb25maWcgb2JqZWN0IiwiZGlzcGxheU5hbWUiOiJEZXNpcmVkIFZlcnNpb24iLCJwYXRoIjoiZGVzaXJlZFZlcnNpb24ifSx7ImRlc2NyaXB0aW9uIjoiUHVibGlzaGVkVmVyc2lvbiBpcyB0aGUgY29uZmlnIHZlcnNpb24gY3VycmVudGx5IHNlcnZlZCBieSB0aGUgZW52b3kgZGlzY292ZXJ5IHNlcnZpY2UgZm9yIHRoZSBnaXZlIG5vZGVJRCIsImRpc3BsYXlOYW1lIjoiUHVibGlzaGVkIFZlcnNpb24iLCJwYXRoIjoicHVibGlzaGVkVmVyc2lvbiJ9LHsiZGVzY3JpcHRpb24iOiJDb25maWdSZXZpc2lvbnMgaXMgYW4gb3JkZXJlZCBsaXN0IG9mIHJlZmVyZW5jZXMgdG8gRW52b3lDb25maWdSZXZpc2lvbiBvYmplY3RzIiwiZGlzcGxheU5hbWUiOiJDb25maWcgUmV2aXNpb25zIiwicGF0aCI6InJldmlzaW9ucyJ9LHsiZGVzY3JpcHRpb24iOiJSZWYgaXMgYSByZWZlcmVuY2UgdG8gdGhlIEVudm95Q29uZmlnUmV2aXNpb24gb2JqZWN0IHRoYXQgaG9sZHMgdGhlIGNvbmZpZ3VyYXRpb24gbWF0Y2hpbmcgdGhlIFZlcnNpb24gZmllbGQuIiwiZGlzcGxheU5hbWUiOiJSZWYiLCJwYXRoIjoicmV2aXNpb25zWzBdLnJlZiJ9LHsiZGVzY3JpcHRpb24iOiJWZXJzaW9uIGlzIGEgaGFzaCBvZiB0aGUgRW52b3lSZXNvdXJjZXMgZmllbGQiLCJkaXNwbGF5TmFtZSI6IlZlcnNpb24iLCJwYXRoIjoicmV2aXNpb25zWzBdLnZlcnNpb24ifV0sInZlcnNpb24iOiJ2MWFscGhhMSJ9LHsiZGVzY3JpcHRpb24iOiJFbnZveURlcGxveW1lbnQgaXMgYSByZXNvdXJjZSB0byBkZXBsb3kgYW5kIG1hbmFnZSBhIEt1YmVybmV0ZXMgRGVwbG95bWVudCBvZiBFbnZveSBQb2RzLiIsImRpc3BsYXlOYW1lIjoiRW52b3lEZXBsb3ltZW50Iiwia2luZCI6IkVudm95RGVwbG95bWVudCIsIm5hbWUiOiJlbnZveWRlcGxveW1lbnRzLm9wZXJhdG9yLm1hcmluM3IuM3NjYWxlLm5ldCIsInNwZWNEZXNjcmlwdG9ycyI6W3siZGVzY3JpcHRpb24iOiJDb25maWd1cmVzIGVudm95J3MgYWRtaW4gYWNjZXNzIGxvZyBwYXRoLiBEZWZhdWx0cyB0byAvZGV2L251bGwuIiwiZGlzcGxheU5hbWUiOiJBZG1pbiBBY2Nlc3MgTG9nIFBhdGgiLCJwYXRoIjoiYWRtaW5BY2Nlc3NMb2dQYXRoIn0seyJkZXNjcmlwdGlvbiI6IkNvbmZpZ3VyZXMgZW52b3kncyBhZG1pbiBwb3J0LiBEZWZhdWx0cyB0byA5OTAxLiIsImRpc3BsYXlOYW1lIjoiQWRtaW4gUG9ydCIsInBhdGgiOiJhZG1pblBvcnQifSx7ImRlc2NyaXB0aW9uIjoiQWZmaW5pdHkgY29uZmlndXJhdGlvbiBmb3IgdGhlIGVudm95IHBvZHMiLCJkaXNwbGF5TmFtZSI6IkFmZmluaXR5IiwicGF0aCI6ImFmZmluaXR5In0seyJkZXNjcmlwdGlvbiI6IkRlZmluZXMgdGhlIGxvY2FsIHNlcnZpY2UgY2x1c3RlciBuYW1lIHdoZXJlIEVudm95IGlzIHJ1bm5pbmcuIERlZmF1bHRzIHRvIHRoZSBOb2RlSUQgaW4gdGhlIEVudm95Q29uZmlnIGlmIHVuc2V0IiwiZGlzcGxheU5hbWUiOiJDbHVzdGVyIElEIiwicGF0aCI6ImNsdXN0ZXJJRCJ9LHsiZGVzY3JpcHRpb24iOiJEaXNjb3ZlcnlTZXJ2aWNlUmVmIHBvaW50cyB0byBhIERpc2NvdmVyeVNlcnZpY2UgaW4gdGhlIHNhbWUgbmFtZXNwYWNlIiwiZGlzcGxheU5hbWUiOiJEaXNjb3ZlcnkgU2VydmljZSBSZWYiLCJwYXRoIjoiZGlzY292ZXJ5U2VydmljZVJlZiJ9LHsiZGVzY3JpcHRpb24iOiJEZWZpbmVzIHRoZSBkdXJhdGlvbiBvZiB0aGUgY2xpZW50IGNlcnRpZmljYXRlIHRoYXQgaXMgdXNlZCB0byBhdXRoZW50aWNhdGUgd2l0aCB0aGUgRGlzY292ZXJ5U2VydmljZSIsImRpc3BsYXlOYW1lIjoiQ2xpZW50IENlcnRpZmljYXRlIER1cmF0aW9uIiwicGF0aCI6ImR1cmF0aW9uIn0seyJkZXNjcmlwdGlvbiI6IkVudm95Q29uZmlnUmVmIHBvaW50cyB0byBhbiBFbnZveUNvbmZpZyBpbiB0aGUgc2FtZSBuYW1lc3BhY2UgdGhhdCBob2xkcyB0aGUgZW52b3kgcmVzb3VyY2VzIGZvciB0aGlzIERlcGxveW1lbnQiLCJkaXNwbGF5TmFtZSI6IkVudm95IENvbmZpZyBSZWYiLCJwYXRoIjoiZW52b3lDb25maWdSZWYifSx7ImRlc2NyaXB0aW9uIjoiQWxsb3dzIHRoZSB1c2VyIHRvIGRlZmluZSBleHRyYSBjb21tYW5kIGxpbmUgYXJndW1lbnRzIGZvciB0aGUgRW52b3kgcHJvY2VzcyIsImRpc3BsYXlOYW1lIjoiRXh0cmEgQXJncyIsInBhdGgiOiJleHRyYUFyZ3MifSx7ImRlc2NyaXB0aW9uIjoiSW1hZ2UgaXMgdGhlIGVudm95IGltYWdlIGFuZCB0YWcgdG8gdXNlIiwiZGlzcGxheU5hbWUiOiJJbWFnZSIsInBhdGgiOiJpbWFnZSJ9LHsiZGVzY3JpcHRpb24iOiJJbml0TWFuYWdlciBkZWZpbmVzIGNvbmZpZ3VyYXRpb24gZm9yIEVudm95J3MgaW5pdCBtYW5hZ2VyLCB3aGljaCBoYW5kbGVzIGluaXRpYWxpemF0aW9uIGZvciBFbnZveSBwb2RzIiwiZGlzcGxheU5hbWUiOiJJbml0IE1hbmFnZXIiLCJwYXRoIjoiaW5pdE1hbmFnZXIifSx7ImRlc2NyaXB0aW9uIjoiSW1hZ2UgaXMgdGhlIGluaXQgbWFuYWdlciBpbWFnZSBhbmQgdGFnIHRvIHVzZSIsImRpc3BsYXlOYW1lIjoiSW1hZ2UiLCJwYXRoIjoiaW5pdE1hbmFnZXIuaW1hZ2UifSx7ImRlc2NyaXB0aW9uIjoiTGl2ZW5lc3MgcHJvYmUgZm9yIHRoZSBlbnZveSBwb2RzIiwiZGlzcGxheU5hbWUiOiJMaXZlbmVzcyBQcm9iZSIsInBhdGgiOiJsaXZlbmVzc1Byb2JlIn0seyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkIiwiZGlzcGxheU5hbWUiOiJGYWlsdXJlIFRocmVzaG9sZCIsInBhdGgiOiJsaXZlbmVzc1Byb2JlLmZhaWx1cmVUaHJlc2hvbGQifSx7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQiLCJkaXNwbGF5TmFtZSI6IkluaXRpYWwgRGVsYXkgU2Vjb25kcyIsInBhdGgiOiJsaXZlbmVzc1Byb2JlLmluaXRpYWxEZWxheVNlY29uZHMifSx7ImRlc2NyaXB0aW9uIjoiSG93IG9mdGVuIChpbiBzZWNvbmRzKSB0byBwZXJmb3JtIHRoZSBwcm9iZSIsImRpc3BsYXlOYW1lIjoiUGVyaW9kIFNlY29uZHMiLCJwYXRoIjoibGl2ZW5lc3NQcm9iZS5wZXJpb2RTZWNvbmRzIn0seyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgc3VjY2Vzc2VzIGZvciB0aGUgcHJvYmUgdG8gYmUgY29uc2lkZXJlZCBzdWNjZXNzZnVsIGFmdGVyIGhhdmluZyBmYWlsZWQiLCJkaXNwbGF5TmFtZSI6IlN1Y2Nlc3MgVGhyZXNob2xkIiwicGF0aCI6ImxpdmVuZXNzUHJvYmUuc3VjY2Vzc1RocmVzaG9sZCJ9LHsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0IiwiZGlzcGxheU5hbWUiOiJUaW1lb3V0IFNlY29uZHMiLCJwYXRoIjoibGl2ZW5lc3NQcm9iZS50aW1lb3V0U2Vjb25kcyJ9LHsiZGVzY3JpcHRpb24iOiJDb25maWd1cmVzIFBvZERpc3J1cHRpb25CdWRnZXQgZm9yIHRoZSBlbnZveSBQb2RzIiwiZGlzcGxheU5hbWUiOiJQb2QgRGlzcnVwdGlvbiBCdWRnZXQiLCJwYXRoIjoicG9kRGlzcnVwdGlvbkJ1ZGdldCJ9LHsiZGVzY3JpcHRpb24iOiJBbiBldmljdGlvbiBpcyBhbGxvd2VkIGlmIGF0IG1vc3QgXCJtYXhVbmF2YWlsYWJsZVwiIHBvZHMgc2VsZWN0ZWQgYnkgXCJzZWxlY3RvclwiIGFyZSB1bmF2YWlsYWJsZSBhZnRlciB0aGUgZXZpY3Rpb24sIGkuZS4gZXZlbiBpbiBhYnNlbmNlIG9mIHRoZSBldmljdGVkIHBvZC4gRm9yIGV4YW1wbGUsIG9uZSBjYW4gcHJldmVudCBhbGwgdm9sdW50YXJ5IGV2aWN0aW9ucyBieSBzcGVjaWZ5aW5nIDAuIFRoaXMgaXMgYSBtdXR1YWxseSBleGNsdXNpdmUgc2V0dGluZyB3aXRoIFwibWluQXZhaWxhYmxlXCIuIiwiZGlzcGxheU5hbWUiOiJNYXggVW5hdmFpbGFibGUiLCJwYXRoIjoicG9kRGlzcnVwdGlvbkJ1ZGdldC5tYXhVbmF2YWlsYWJsZSJ9LHsiZGVzY3JpcHRpb24iOiJBbiBldmljdGlvbiBpcyBhbGxvd2VkIGlmIGF0IGxlYXN0IFwibWluQXZhaWxhYmxlXCIgcG9kcyBzZWxlY3RlZCBieSBcInNlbGVjdG9yXCIgd2lsbCBzdGlsbCBiZSBhdmFpbGFibGUgYWZ0ZXIgdGhlIGV2aWN0aW9uLCBpLmUuIGV2ZW4gaW4gdGhlIGFic2VuY2Ugb2YgdGhlIGV2aWN0ZWQgcG9kLiAgU28gZm9yIGV4YW1wbGUgeW91IGNhbiBwcmV2ZW50IGFsbCB2b2x1bnRhcnkgZXZpY3Rpb25zIGJ5IHNwZWNpZnlpbmcgXCIxMDAlXCIuIiwiZGlzcGxheU5hbWUiOiJNaW4gQXZhaWxhYmxlIiwicGF0aCI6InBvZERpc3J1cHRpb25CdWRnZXQubWluQXZhaWxhYmxlIn0seyJkZXNjcmlwdGlvbiI6IlBvcnRzIGV4cG9zZWQgYnkgdGhlIEVudm95IGNvbnRhaW5lciIsImRpc3BsYXlOYW1lIjoiUG9ydHMiLCJwYXRoIjoicG9ydHMifSx7ImRlc2NyaXB0aW9uIjoiUG9ydCBuYW1lIiwiZGlzcGxheU5hbWUiOiJOYW1lIiwicGF0aCI6InBvcnRzWzBdLm5hbWUifSx7ImRlc2NyaXB0aW9uIjoiUG9ydCB2YWx1ZSIsImRpc3BsYXlOYW1lIjoiUG9ydCIsInBhdGgiOiJwb3J0c1swXS5wb3J0In0seyJkZXNjcmlwdGlvbiI6IlByb3RvY29sLiBEZWZhdWx0cyB0byBUQ1AuIiwiZGlzcGxheU5hbWUiOiJQcm90b2NvbCIsInBhdGgiOiJwb3J0c1swXS5wcm90b2NvbCJ9LHsiZGVzY3JpcHRpb24iOiJSZWFkaW5lc3MgcHJvYmUgZm9yIHRoZSBlbnZveSBwb2RzIiwiZGlzcGxheU5hbWUiOiJSZWFkaW5lc3MgUHJvYmUiLCJwYXRoIjoicmVhZGluZXNzUHJvYmUifSx7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBmYWlsdXJlcyBmb3IgdGhlIHByb2JlIHRvIGJlIGNvbnNpZGVyZWQgZmFpbGVkIGFmdGVyIGhhdmluZyBzdWNjZWVkZWQiLCJkaXNwbGF5TmFtZSI6IkZhaWx1cmUgVGhyZXNob2xkIiwicGF0aCI6InJlYWRpbmVzc1Byb2JlLmZhaWx1cmVUaHJlc2hvbGQifSx7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQiLCJkaXNwbGF5TmFtZSI6IkluaXRpYWwgRGVsYXkgU2Vjb25kcyIsInBhdGgiOiJyZWFkaW5lc3NQcm9iZS5pbml0aWFsRGVsYXlTZWNvbmRzIn0seyJkZXNjcmlwdGlvbiI6IkhvdyBvZnRlbiAoaW4gc2Vjb25kcykgdG8gcGVyZm9ybSB0aGUgcHJvYmUiLCJkaXNwbGF5TmFtZSI6IlBlcmlvZCBTZWNvbmRzIiwicGF0aCI6InJlYWRpbmVzc1Byb2JlLnBlcmlvZFNlY29uZHMifSx7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZCIsImRpc3BsYXlOYW1lIjoiU3VjY2VzcyBUaHJlc2hvbGQiLCJwYXRoIjoicmVhZGluZXNzUHJvYmUuc3VjY2Vzc1RocmVzaG9sZCJ9LHsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0IiwiZGlzcGxheU5hbWUiOiJUaW1lb3V0IFNlY29uZHMiLCJwYXRoIjoicmVhZGluZXNzUHJvYmUudGltZW91dFNlY29uZHMifSx7ImRlc2NyaXB0aW9uIjoiUmVwbGljYXMgY29uZmlndXJlcyB0aGUgbnVtYmVyIG9mIHJlcGxpY2FzIGluIHRoZSBEZXBsb3ltZW50LiBPbmUgb2YgJ3N0YXRpYycsICdkeW5hbWljJyBjYW4gYmUgc2V0LiBJZiBib3RoIGFyZSBzZXQsIHN0YXRpYyBoYXMgcHJlY2VkZW5jZS4iLCJkaXNwbGF5TmFtZSI6IlJlcGxpY2FzIiwicGF0aCI6InJlcGxpY2FzIn0seyJkZXNjcmlwdGlvbiI6IkNvbmZpZ3VyZSBhIG1pbiBhbmQgbWF4IHZhbHVlIGZvciB0aGUgbnVtYmVyIG9mIHBvZHMgdG8gYXV0b3NjYWxlIGR5bmFtaWNhbGx5LiIsImRpc3BsYXlOYW1lIjoiRHluYW1pYyIsInBhdGgiOiJyZXBsaWNhcy5keW5hbWljIn0seyJkZXNjcmlwdGlvbiI6ImJlaGF2aW9yIGNvbmZpZ3VyZXMgdGhlIHNjYWxpbmcgYmVoYXZpb3Igb2YgdGhlIHRhcmdldCBpbiBib3RoIFVwIGFuZCBEb3duIGRpcmVjdGlvbnMgKHNjYWxlVXAgYW5kIHNjYWxlRG93biBmaWVsZHMgcmVzcGVjdGl2ZWx5KS4gSWYgbm90IHNldCwgdGhlIGRlZmF1bHQgSFBBU2NhbGluZ1J1bGVzIGZvciBzY2FsZSB1cCBhbmQgc2NhbGUgZG93biBhcmUgdXNlZC4iLCJkaXNwbGF5TmFtZSI6IkJlaGF2aW9yIiwicGF0aCI6InJlcGxpY2FzLmR5bmFtaWMuYmVoYXZpb3IifSx7ImRlc2NyaXB0aW9uIjoibWV0cmljcyBjb250YWlucyB0aGUgc3BlY2lmaWNhdGlvbnMgZm9yIHdoaWNoIHRvIHVzZSB0byBjYWxjdWxhdGUgdGhlIGRlc2lyZWQgcmVwbGljYSBjb3VudCAodGhlIG1heGltdW0gcmVwbGljYSBjb3VudCBhY3Jvc3MgYWxsIG1ldHJpY3Mgd2lsbCBiZSB1c2VkKS4gIFRoZSBkZXNpcmVkIHJlcGxpY2EgY291bnQgaXMgY2FsY3VsYXRlZCBtdWx0aXBseWluZyB0aGUgcmF0aW8gYmV0d2VlbiB0aGUgdGFyZ2V0IHZhbHVlIGFuZCB0aGUgY3VycmVudCB2YWx1ZSBieSB0aGUgY3VycmVudCBudW1iZXIgb2YgcG9kcy4gIEVyZ28sIG1ldHJpY3MgdXNlZCBtdXN0IGRlY3JlYXNlIGFzIHRoZSBwb2QgY291bnQgaXMgaW5jcmVhc2VkLCBhbmQgdmljZS12ZXJzYS4gIFNlZSB0aGUgaW5kaXZpZHVhbCBtZXRyaWMgc291cmNlIHR5cGVzIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGhvdyBlYWNoIHR5cGUgb2YgbWV0cmljIG11c3QgcmVzcG9uZC4gSWYgbm90IHNldCwgdGhlIGRlZmF1bHQgbWV0cmljIHdpbGwgYmUgc2V0IHRvIDgwJSBhdmVyYWdlIENQVSB1dGlsaXphdGlvbi4iLCJkaXNwbGF5TmFtZSI6Ik1ldHJpY3MiLCJwYXRoIjoicmVwbGljYXMuZHluYW1pYy5tZXRyaWNzIn0seyJkZXNjcmlwdGlvbiI6Im1pblJlcGxpY2FzIGlzIHRoZSBsb3dlciBsaW1pdCBmb3IgdGhlIG51bWJlciBvZiByZXBsaWNhcyB0byB3aGljaCB0aGUgYXV0b3NjYWxlciBjYW4gc2NhbGUgZG93bi4gIEl0IGRlZmF1bHRzIHRvIDEgcG9kLiAgbWluUmVwbGljYXMgaXMgYWxsb3dlZCB0byBiZSAwIGlmIHRoZSBhbHBoYSBmZWF0dXJlIGdhdGUgSFBBU2NhbGVUb1plcm8gaXMgZW5hYmxlZCBhbmQgYXQgbGVhc3Qgb25lIE9iamVjdCBvciBFeHRlcm5hbCBtZXRyaWMgaXMgY29uZmlndXJlZC4gIFNjYWxpbmcgaXMgYWN0aXZlIGFzIGxvbmcgYXMgYXQgbGVhc3Qgb25lIG1ldHJpYyB2YWx1ZSBpcyBhdmFpbGFibGUuIiwiZGlzcGxheU5hbWUiOiJNaW4gUmVwbGljYXMiLCJwYXRoIjoicmVwbGljYXMuZHluYW1pYy5taW5SZXBsaWNhcyJ9LHsiZGVzY3JpcHRpb24iOiJDb25maWd1cmUgYSBzdGF0aWMgbnVtYmVyIG9mIHJlcGxpY2FzLiBEZWZhdWx0cyB0byAxLiIsImRpc3BsYXlOYW1lIjoiU3RhdGljIiwicGF0aCI6InJlcGxpY2FzLnN0YXRpYyJ9LHsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgaG9sZHMgdGhlIHJlc291cmNlIHJlcXVpcmVtZW50cyB0byB1c2UgZm9yIHRoZSBFbnZveSBEZXBsb3ltZW50LiBEZWZhdWx0cyB0byBubyByZXNvdXJjZSByZXF1ZXN0cyBub3IgbGltaXRzLiIsImRpc3BsYXlOYW1lIjoiUmVzb3VyY2VzIiwicGF0aCI6InJlc291cmNlcyJ9LHsiZGVzY3JpcHRpb24iOiJTaHV0ZG93bk1hbmFnZXIgZGVmaW5lcyBjb25maWd1cmF0aW9uIGZvciBFbnZveSdzIHNodXRkb3duIG1hbmFnZXIsIHdoaWNoIGhhbmRsZXMgZ3JhY2VmdWwgdGVybWluYXRpb24gb2YgRW52b3kgcG9kcyIsImRpc3BsYXlOYW1lIjoiU2h1dGRvd24gTWFuYWdlciIsInBhdGgiOiJzaHV0ZG93bk1hbmFnZXIifSx7ImRlc2NyaXB0aW9uIjoiVGhlIGRyYWluIHN0cmF0ZWd5IGZvciB0aGUgZ3JhY2VmdWwgc2h1dGRvd24uIEl0IGFsc28gYWZmZWN0cyBkcmFpbiB3aGVuIGxpc3RlbmVycyBhcmUgbW9kaWZpZWQgb3IgcmVtb3ZlZCB2aWEgTERTLiIsImRpc3BsYXlOYW1lIjoiRHJhaW4gU3RyYXRlZ3kiLCJwYXRoIjoic2h1dGRvd25NYW5hZ2VyLmRyYWluU3RyYXRlZ3kifSx7ImRlc2NyaXB0aW9uIjoiVGhlIHRpbWUgaW4gc2Vjb25kcyB0aGF0IEVudm95IHdpbGwgZHJhaW4gY29ubmVjdGlvbnMgZHVyaW5nIHNodXRkb3duLiBJdCBhbHNvIGFmZmVjdHMgZHJhaW4gYmVoYXZpb3VyIHdoZW4gbGlzdGVuZXJzIGFyZSBtb2RpZmllZCBvciByZW1vdmVkIHZpYSBMRFMuIiwiZGlzcGxheU5hbWUiOiJEcmFpbiBUaW1lIiwicGF0aCI6InNodXRkb3duTWFuYWdlci5kcmFpblRpbWUifSx7ImRlc2NyaXB0aW9uIjoiSW1hZ2UgaXMgdGhlIHNodXRkb3duIG1hbmFnZXIgaW1hZ2UgYW5kIHRhZyB0byB1c2UiLCJkaXNwbGF5TmFtZSI6IkltYWdlIiwicGF0aCI6InNodXRkb3duTWFuYWdlci5pbWFnZSJ9LHsiZGVzY3JpcHRpb24iOiJDb25maWd1cmVzIHRoZSBzdXRkb3duIG1hbmFnZXIncyBzZXJ2ZXIgcG9ydC4gRGVmYXVsdHMgdG8gODA5MC4iLCJkaXNwbGF5TmFtZSI6IlNlcnZlciBQb3J0IiwicGF0aCI6InNodXRkb3duTWFuYWdlci5zZXJ2ZXJQb3J0In1dLCJ2ZXJzaW9uIjoidjFhbHBoYTEifV19LCJkZXNjcmlwdGlvbiI6Ik1BUklOM1IgaW1wbGVtZW50cyBhIGNvbnRyb2wgcGxhbmUgdG8gZGVwbG95LCBjb25maWd1cmUgYW5kIG9wZXJhdGUgYSBmbGVldCBvZiBlbnZveSBpbnN0YW5jZXMgd2l0aGluIGEgS3ViZXJuZXRlcyBjbHVzdGVyLlxuSXQgb3BlcmF0ZXMgYSBncm91cCBvZiBnYXRld2F5cyBhbmQgUG9kIHNpZGVjYXIgY29udGFpbmVycyB0byBwcm92aWRlIGdlbmVyYWwgcHVycG9zZSBmdW5jdGlvbmFsaXR5IHJlcXVpcmVkIHRvIG9wZXJhdGUgcHJvZHVjdGlvbiBzeXN0ZW1zLlxuXG5GZWF0dXJlczpcblxuKiBEZXBsb3kgYW5kIG1hbmFnZSBhbiBFbnZveSB4RFMgc2VydmVyIHVzaW5nIHRoZSBEaXNjb3ZlcnlTZXJ2aWNlIGN1c3RvbSByZXNvdXJjZS5cbiogSW5qZWN0IEVudm95IHNpZGVjYXIgY29udGFpbmVycyBiYXNlZCBvbiBQb2QgYW5ub3RhdGlvbnMuXG4qIERlcGxveSBFbnZveSBhcyBhIEt1YmVybmV0ZXMgRGVwbG95bWVudCB1c2luZyB0aGUgRW52b3lEZXBsb3ltZW50IGN1c3RvbSByZXNvdXJjZS5cbiogRHluYW1pYyBFbnZveSBjb25maWd1cmF0aW9uIGFuZCByZS1jb25maWd1cmF0aW9uIHVzaW5nIHRoZSBFbnZveUNvbmZpZyBjdXN0b20gcmVzb3VyY2UuXG4qIFVzZSBLdWJlcm5ldGVzIFNlY3JldHMgYXMgY2VydGlmaWNhdGUgc291cmNlcy5cbiogU3ludGFjdGljIHZhbGlkYXRpb24gb2YgRW52b3kgY29uZmlndXJhdGlvbnMuXG4qIExpZmVjeWNsZSBtYW5hZ2VtZW50IG9mIEVudm95IGNvbnRhaW5lcnMgKGdyYWNlZnVsIHNodXRkb3duIGFuZCBjb25uZWN0aW9uIGRyYWluaW5nKS5cbiogU2VsZi1oZWFsaW5nLlxuXG5DaGVjayB0aGUgW2RvY3NdKGh0dHBzOi8vZ2l0aHViLmNvbS8zc2NhbGUtb3BzL21hcmluM3IjcmVhZG1lKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cblxuIyMgTGljZW5zZVxuTUFSSU4zUiBpcyBsaWNlbnNlZCB1bmRlciB0aGUgW0FwYWNoZSAyLjAgbGljZW5zZV0oaHR0cHM6Ly9naXRodWIuY29tLzNzY2FsZS9wcm9tZXRoZXVzLWV4cG9ydGVyLW9wZXJhdG9yL2Jsb2IvbWFzdGVyL0xJQ0VOU0UpXG4iLCJkaXNwbGF5TmFtZSI6Ik1BUklOM1IiLCJpY29uIjpbeyJiYXNlNjRkYXRhIjoiUEQ5NGJXd2dkbVZ5YzJsdmJqMGlNUzR3SWlCbGJtTnZaR2x1WnowaVZWUkdMVGdpUHo0S1BITjJaeUI0Yld4dWN6MGlhSFIwY0RvdkwzZDNkeTUzTXk1dmNtY3ZNakF3TUM5emRtY2lJSGh0Ykc1ek9uaHNhVzVyUFNKb2RIUndPaTh2ZDNkM0xuY3pMbTl5Wnk4eE9UazVMM2hzYVc1cklpQjNhV1IwYUQwaU16YzFjSFFpSUdobGFXZG9kRDBpTXpjMExqazVPVGs1TVhCMElpQjJhV1YzUW05NFBTSXdJREFnTXpjMUlETTNOQzQ1T1RrNU9URWlJSFpsY25OcGIyNDlJakV1TWlJK0NqeGtaV1p6UGdvOFp6NEtQSE41YldKdmJDQnZkbVZ5Wm14dmR6MGlkbWx6YVdKc1pTSWdhV1E5SW1kc2VYQm9NQzB3SWo0S1BIQmhkR2dnYzNSNWJHVTlJbk4wY205clpUcHViMjVsT3lJZ1pEMGlJaTgrQ2p3dmMzbHRZbTlzUGdvOGMzbHRZbTlzSUc5MlpYSm1iRzkzUFNKMmFYTnBZbXhsSWlCcFpEMGlaMng1Y0dnd0xURWlQZ284Y0dGMGFDQnpkSGxzWlQwaWMzUnliMnRsT201dmJtVTdJaUJrUFNKTklEazFMamsxTXpFeU5TQXdJRXdnT0RVdU9Ea3dOakkxSURBZ1RDQTROUzQ0T1RBMk1qVWdMVFF5TGpjNU5qZzNOU0JNSURVMExqazRORE0zTlNBd0lFd2dORGt1T0RFeU5TQXdJRXdnTVRndU9UQTJNalVnTFRReUxqYzVOamczTlNCTUlERTRMamt3TmpJMUlEQWdUQ0E0TGpneU9ERXlOU0F3SUV3Z09DNDRNamd4TWpVZ0xUWXpMak15T0RFeU5TQk1JREUyTGpReU1UZzNOU0F0TmpNdU16STRNVEkxSUV3Z05USXVOREl4T0RjMUlDMHhNeTQxT1RNM05TQk1JRGc0TGpNMU9UTTNOU0F0TmpNdU16STRNVEkxSUV3Z09UVXVPVFV6TVRJMUlDMDJNeTR6TWpneE1qVWdXaUJOSURrMUxqazFNekV5TlNBd0lDSXZQZ284TDNONWJXSnZiRDRLUEhONWJXSnZiQ0J2ZG1WeVpteHZkejBpZG1semFXSnNaU0lnYVdROUltZHNlWEJvTUMweUlqNEtQSEJoZEdnZ2MzUjViR1U5SW5OMGNtOXJaVHB1YjI1bE95SWdaRDBpVFNBMk1TNDVOVE14TWpVZ01DQk1JRFl1TmpJMUlEQWdUQ0EyTGpZeU5TQXRNVEF1TURZeU5TQk1JRFl4TGprMU16RXlOU0F0TVRBdU1EWXlOU0JESURZekxqTXpOVGt6T0NBdE1UQXVNRFl5TlNBMk5DNDFNVGsxTXpFZ0xURXdMalUxTkRZNE9DQTJOUzQxSUMweE1TNDFORFk0TnpVZ1F5QTJOaTQwT0RneU9ERWdMVEV5TGpVek5URTFOaUEyTmk0NU9EUXpOelVnTFRFekxqY3lNalkxTmlBMk5pNDVPRFF6TnpVZ0xURTFMakV3T1RNM05TQk1JRFkyTGprNE5ETTNOU0F0TWpFdU5Ua3pOelVnUXlBMk5pNDVPRFF6TnpVZ0xUSXlMamszTmpVMk1pQTJOaTQxTURjNE1USWdMVEkwTGpFME9EUXpPQ0EyTlM0MU5qSTFJQzB5TlM0eE1Ea3pOelVnUXlBMk5DNDJNalVnTFRJMkxqQTJOalF3TmlBMk15NDBOamczTlNBdE1qWXVOVGN3TXpFeUlEWXlMakE1TXpjMUlDMHlOaTQyTWpVZ1RDQXhOaTQyT0RjMUlDMHlOaTQyTWpVZ1RDQXhOaTQyT0RjMUlDMHpOaTQzTURNeE1qVWdUQ0EyTWk0d09UTTNOU0F0TXpZdU56QXpNVEkxSUVNZ05qTXVORFk0TnpVZ0xUTTJMamMxTXprd05pQTJOQzQyTWpVZ0xUTTNMakkxTnpneE1pQTJOUzQxTmpJMUlDMHpPQzR5TVRnM05TQkRJRFkyTGpVd056Z3hNaUF0TXprdU1UYzFOemd4SURZMkxqazRORE0zTlNBdE5EQXVNelEzTmpVMklEWTJMams0TkRNM05TQXROREV1TnpNME16YzFJRXdnTmpZdU9UZzBNemMxSUMwME9DNHlOalUyTWpVZ1F5QTJOaTQ1T0RRek56VWdMVFE1TGpZME9EUXpPQ0EyTmk0ME9EZ3lPREVnTFRVd0xqZ3lPREV5TlNBMk5TNDFJQzAxTVM0M09UWTROelVnUXlBMk5DNDFNVGsxTXpFZ0xUVXlMamMyTlRZeU5TQTJNeTR6TXpVNU16Z2dMVFV6TGpJMUlEWXhMamsxTXpFeU5TQXROVE11TWpVZ1RDQTJMall5TlNBdE5UTXVNalVnVENBMkxqWXlOU0F0TmpNdU16STRNVEkxSUV3Z05qRXVPVFV6TVRJMUlDMDJNeTR6TWpneE1qVWdReUEyTmk0eE1Ea3pOelVnTFRZekxqTXlPREV5TlNBMk9TNDJOalF3TmpJZ0xUWXhMamcxTVRVMk1pQTNNaTQyTWpVZ0xUVTRMamt3TmpJMUlFTWdOelV1TlRneU1ETXhJQzAxTlM0NU5UY3dNekVnTnpjdU1EWXlOU0F0TlRJdU5ERXdNVFUySURjM0xqQTJNalVnTFRRNExqSTJOVFl5TlNCTUlEYzNMakEyTWpVZ0xUUXhMamN6TkRNM05TQkRJRGMzTGpBMk1qVWdMVE0zTGpnM09Ea3dOaUEzTlM0M09ERXlOU0F0TXpRdU5URTVOVE14SURjekxqSXhPRGMxSUMwek1TNDJOVFl5TlNCRElEYzFMamM0TVRJMUlDMHlPQzQ0TXpJd016RWdOemN1TURZeU5TQXRNalV1TkRjMk5UWXlJRGMzTGpBMk1qVWdMVEl4TGpVNU16YzFJRXdnTnpjdU1EWXlOU0F0TVRVdU1UQTVNemMxSUVNZ056Y3VNRFl5TlNBdE1UQXVPVEl4T0RjMUlEYzFMalU0TWpBek1TQXROeTR6TlRFMU5qSWdOekl1TmpJMUlDMDBMalF3TmpJMUlFTWdOamt1TmpZME1EWXlJQzB4TGpRMk9EYzFJRFkyTGpFd09UTTNOU0F3SURZeExqazFNekV5TlNBd0lGb2dUU0EyTVM0NU5UTXhNalVnTUNBaUx6NEtQQzl6ZVcxaWIydytDanh6ZVcxaWIyd2diM1psY21ac2IzYzlJblpwYzJsaWJHVWlJR2xrUFNKbmJIbHdhREF0TXlJK0NqeHdZWFJvSUhOMGVXeGxQU0p6ZEhKdmEyVTZibTl1WlRzaUlHUTlJazBnT0RRdU1qazJPRGMxSURBZ1RDQTNOQzR5TXpRek56VWdNQ0JNSURjMExqSXpORE0zTlNBdE1UY3VPRFF6TnpVZ1F5QTNOQzR5TXpRek56VWdMVEU1TGpJeU5qVTJNaUEzTXk0M016Z3lPREVnTFRJd0xqUXhNREUxTmlBM01pNDNOU0F0TWpFdU16a3dOakkxSUVNZ056RXVOelUzT0RFeUlDMHlNaTR6TnpnNU1EWWdOekF1TlRjNE1USTFJQzB5TWk0NE56VWdOamt1TWpBek1USTFJQzB5TWk0NE56VWdUQ0F4T0M0NU1EWXlOU0F0TWpJdU9EYzFJRXdnTVRndU9UQTJNalVnTUNCTUlEZ3VPREk0TVRJMUlEQWdUQ0E0TGpneU9ERXlOU0F0TmpNdU16STRNVEkxSUV3Z05qa3VNakF6TVRJMUlDMDJNeTR6TWpneE1qVWdReUEzTXk0ek5EYzJOVFlnTFRZekxqTXlPREV5TlNBM05pNDRPVGcwTXpnZ0xUWXhMamcxTVRVMk1pQTNPUzQ0TlRrek56VWdMVFU0TGprd05qSTFJRU1nT0RJdU9ERTJOREEySUMwMU5TNDVOVGN3TXpFZ09EUXVNamsyT0RjMUlDMDFNaTQwTVRBeE5UWWdPRFF1TWprMk9EYzFJQzAwT0M0eU5qVTJNalVnVENBNE5DNHlPVFk0TnpVZ0xUTTNMams0TkRNM05TQkRJRGcwTGpJNU5qZzNOU0F0TXpRdU1EZzFPVE00SURneklDMHpNQzQzTWpZMU5qSWdPREF1TkRBMk1qVWdMVEkzTGprd05qSTFJRU1nT0RNZ0xUSTFMakExTURjNE1TQTROQzR5T1RZNE56VWdMVEl4TGpZNU5UTXhNaUE0TkM0eU9UWTROelVnTFRFM0xqZzBNemMxSUZvZ1RTQTJPUzR5TURNeE1qVWdMVE15TGprek56VWdReUEzTUM0MU56Z3hNalVnTFRNeUxqa3pOelVnTnpFdU56VTNPREV5SUMwek15NDBNamsyT0RnZ056SXVOelVnTFRNMExqUXlNVGczTlNCRElEY3pMamN6T0RJNE1TQXRNelV1TkRFd01UVTJJRGMwTGpJek5ETTNOU0F0TXpZdU5UazNOalUySURjMExqSXpORE0zTlNBdE16Y3VPVGcwTXpjMUlFd2dOelF1TWpNME16YzFJQzAwT0M0eU5qVTJNalVnUXlBM05DNHlNelF6TnpVZ0xUUTVMalkwT0RRek9DQTNNeTQzTXpneU9ERWdMVFV3TGpnek1qQXpNU0EzTWk0M05TQXROVEV1T0RFeU5TQkRJRGN4TGpjMU56Z3hNaUF0TlRJdU9EQXdOemd4SURjd0xqVTNPREV5TlNBdE5UTXVNamsyT0RjMUlEWTVMakl3TXpFeU5TQXROVE11TWprMk9EYzFJRXdnTVRndU9UQTJNalVnTFRVekxqSTVOamczTlNCTUlERTRMamt3TmpJMUlDMHpNaTQ1TXpjMUlGb2dUU0EyT1M0eU1ETXhNalVnTFRNeUxqa3pOelVnSWk4K0Nqd3ZjM2x0WW05c1BnbzhMMmMrQ2p3dlpHVm1jejRLUEdjZ2FXUTlJbk4xY21aaFkyVXhJajRLUEhKbFkzUWdlRDBpTUNJZ2VUMGlNQ0lnZDJsa2RHZzlJak0zTlNJZ2FHVnBaMmgwUFNJek56UXVPVGs1T1RreElpQnpkSGxzWlQwaVptbHNiRHB5WjJJb01UQXdKU3d4TURBbExERXdNQ1VwTzJacGJHd3RiM0JoWTJsMGVUb3hPM04wY205clpUcHViMjVsT3lJdlBnbzhjbVZqZENCNFBTSXdJaUI1UFNJd0lpQjNhV1IwYUQwaU16YzFJaUJvWldsbmFIUTlJak0zTkM0NU9UazVPVEVpSUhOMGVXeGxQU0ptYVd4c09uSm5ZaWd4TURBbExERXdNQ1VzTVRBd0pTazdabWxzYkMxdmNHRmphWFI1T2pFN2MzUnliMnRsT201dmJtVTdJaTgrQ2p4eVpXTjBJSGc5SWpBaUlIazlJakFpSUhkcFpIUm9QU0l6TnpVaUlHaGxhV2RvZEQwaU16YzBMams1T1RrNU1TSWdjM1I1YkdVOUltWnBiR3c2Y21kaUtERXdNQ1VzTVRBd0pTd3hNREFsS1R0bWFXeHNMVzl3WVdOcGRIazZNVHR6ZEhKdmEyVTZibTl1WlRzaUx6NEtQSEJoZEdnZ2MzUjViR1U5SWlCemRISnZhMlU2Ym05dVpUdG1hV3hzTFhKMWJHVTZibTl1ZW1WeWJ6dG1hV3hzT25KbllpZ3dKU3d3SlN3d0pTazdabWxzYkMxdmNHRmphWFI1T2pFN0lpQmtQU0pOSURFNE55NDFJREU1TGpNeU9ERXlOU0JESURFNE5DNDNORFl3T1RRZ01Ua3VNekk0TVRJMUlERTRNUzQ1T1RZd09UUWdNVGt1TXprNE5ETTRJREUzT1M0eU5TQXhPUzQxTXpFeU5TQkRJREUzTmk0MUlERTVMalkyTnprMk9TQXhOek11TnpVek9UQTJJREU1TGpnM01UQTVOQ0F4TnpFdU1ERTFOakkxSURJd0xqRTBNRFl5TlNCRElERTJPQzR5Tnpjek5EUWdNakF1TkRFd01UVTJJREUyTlM0MU5EWTROelVnTWpBdU56UTJNRGswSURFMk1pNDRNalF5TVRrZ01qRXVNVFE0TkRNNElFTWdNVFl3TGpFd01UVTJNaUF5TVM0MU5UUTJPRGdnTVRVM0xqTTVNRFl5TlNBeU1pNHdNak0wTXpnZ01UVTBMalk1TVRRd05pQXlNaTQxTmpJMUlFTWdNVFV4TGprNU1qRTRPQ0F5TXk0d09UYzJOVFlnTVRRNUxqTXdPRFU1TkNBeU15NDJPVGt5TVRrZ01UUTJMall6TmpjeE9TQXlOQzR6TnpFd09UUWdReUF4TkRNdU9UWTROelVnTWpVdU1ETTVNRFl5SURFME1TNHpNVFkwTURZZ01qVXVOemN6TkRNNElERXpPQzQyT0RNMU9UUWdNall1TlRjd016RXlJRU1nTVRNMkxqQTFNRGM0TVNBeU55NHpOekV3T1RRZ01UTXpMalF6TnpVZ01qZ3VNak0wTXpjMUlERXpNQzQ0TkRNM05TQXlPUzR4TmpBeE5UWWdReUF4TWpndU1qVXpPVEEySURNd0xqQTROVGt6T0NBeE1qVXVOamczTlNBek1TNHdOemd4TWpVZ01USXpMakUwTkRVek1TQXpNaTR4TXpJNE1USWdReUF4TWpBdU5qQXhOVFl5SURNekxqRTRNelU1TkNBeE1UZ3VNRGcxT1RNNElETTBMak13TURjNE1TQXhNVFV1TlRrM05qVTJJRE0xTGpRM05qVTJNaUJESURFeE15NHhNRGt6TnpVZ016WXVOalV5TXpRMElERXhNQzQyTlRJek5EUWdNemN1T0Rrd05qSTFJREV3T0M0eU1qWTFOaklnTXprdU1UZzNOU0JESURFd05TNDNPVFk0TnpVZ05EQXVORGcwTXpjMUlERXdNeTQwTURJek5EUWdOREV1T0RNNU9EUTBJREV3TVM0d05ESTVOamtnTkRNdU1qVXpPVEEySUVNZ09UZ3VOamd6TlRrMElEUTBMalkzTVRnM05TQTVOaTR6TlRrek56VWdORFl1TVRRME5UTXhJRGswTGpBM01ETXhNaUEwTnk0Mk56RTROelVnUXlBNU1TNDNPREV5TlNBME9TNHhPVGt5TVRrZ09Ea3VOVE14TWpVZ05UQXVOemcxTVRVMklEZzNMak15TURNeE1pQTFNaTQwTWpVM09ERWdReUE0TlM0eE1Ea3pOelVnTlRRdU1EWXlOU0E0TWk0NU5ERTBNRFlnTlRVdU56VTNPREV5SURnd0xqZ3hNalVnTlRjdU5UQXpPVEEySUVNZ056Z3VOamczTlNBMU9TNHlOU0EzTmk0Mk1ERTFOaklnTmpFdU1EUTJPRGMxSURjMExqVTJNalVnTmpJdU9EazBOVE14SUVNZ056SXVOVEl6TkRNNElEWTBMamMwTWpFNE9DQTNNQzQxTXpFeU5TQTJOaTQyTkRBMk1qVWdOamd1TlRnMU9UTTRJRFk0TGpVNE5Ua3pPQ0JESURZMkxqWTBNRFl5TlNBM01DNDFNekV5TlNBMk5DNDNOREl4T0RnZ056SXVOVEl6TkRNNElEWXlMamc1TkRVek1TQTNOQzQxTmpJMUlFTWdOakV1TURRMk9EYzFJRGMyTGpZd01UVTJNaUExT1M0eU5TQTNPQzQyT0RjMUlEVTNMalV3TXprd05pQTRNQzQ0TVRJMUlFTWdOVFV1TnpVM09ERXlJRGd5TGprME1UUXdOaUExTkM0d05qSTFJRGcxTGpFd09UTTNOU0ExTWk0ME1qVTNPREVnT0RjdU16SXdNekV5SUVNZ05UQXVOemcxTVRVMklEZzVMalV6TVRJMUlEUTVMakU1T1RJeE9TQTVNUzQzT0RFeU5TQTBOeTQyTnpFNE56VWdPVFF1TURjd016RXlJRU1nTkRZdU1UUTBOVE14SURrMkxqTTFPVE0zTlNBME5DNDJOekU0TnpVZ09UZ3VOamd6TlRrMElEUXpMakkxTXprd05pQXhNREV1TURReU9UWTVJRU1nTkRFdU9ETTVPRFEwSURFd015NDBNREl6TkRRZ05EQXVORGcwTXpjMUlERXdOUzQzT1RZNE56VWdNemt1TVRnM05TQXhNRGd1TWpJMk5UWXlJRU1nTXpjdU9Ea3dOakkxSURFeE1DNDJOVEl6TkRRZ016WXVOalV5TXpRMElERXhNeTR4TURrek56VWdNelV1TkRjMk5UWXlJREV4TlM0MU9UYzJOVFlnUXlBek5DNHpNREEzT0RFZ01URTRMakE0TlRrek9DQXpNeTR4T0RNMU9UUWdNVEl3TGpZd01UVTJNaUF6TWk0eE16STRNVElnTVRJekxqRTBORFV6TVNCRElETXhMakEzT0RFeU5TQXhNalV1TmpnM05TQXpNQzR3T0RVNU16Z2dNVEk0TGpJMU16a3dOaUF5T1M0eE5qQXhOVFlnTVRNd0xqZzBNemMxSUVNZ01qZ3VNak0wTXpjMUlERXpNeTQwTXpjMUlESTNMak0zTVRBNU5DQXhNell1TURVd056Z3hJREkyTGpVM01ETXhNaUF4TXpndU5qZ3pOVGswSUVNZ01qVXVOemN6TkRNNElERTBNUzR6TVRZME1EWWdNalV1TURNNU1EWXlJREUwTXk0NU5qZzNOU0F5TkM0ek56RXdPVFFnTVRRMkxqWXpOamN4T1NCRElESXpMalk1T1RJeE9TQXhORGt1TXpBNE5UazBJREl6TGpBNU56WTFOaUF4TlRFdU9Ua3lNVGc0SURJeUxqVTJNalVnTVRVMExqWTVNVFF3TmlCRElESXlMakF5TXpRek9DQXhOVGN1TXprd05qSTFJREl4TGpVMU5EWTRPQ0F4TmpBdU1UQXhOVFl5SURJeExqRTBPRFF6T0NBeE5qSXVPREkwTWpFNUlFTWdNakF1TnpRMk1EazBJREUyTlM0MU5EWTROelVnTWpBdU5ERXdNVFUySURFMk9DNHlOemN6TkRRZ01qQXVNVFF3TmpJMUlERTNNUzR3TVRVMk1qVWdReUF4T1M0NE56RXdPVFFnTVRjekxqYzFNemt3TmlBeE9TNDJOamM1TmprZ01UYzJMalVnTVRrdU5UTXhNalVnTVRjNUxqSTFJRU1nTVRrdU16azRORE00SURFNE1TNDVPVFl3T1RRZ01Ua3VNekk0TVRJMUlERTROQzQzTkRZd09UUWdNVGt1TXpJNE1USTFJREU0Tnk0MUlFTWdNVGt1TXpJNE1USTFJREU1TUM0eU5UTTVNRFlnTVRrdU16azRORE00SURFNU15NHdNRE01TURZZ01Ua3VOVE14TWpVZ01UazFMamMxSUVNZ01Ua3VOalkzT1RZNUlERTVPQzQxSURFNUxqZzNNVEE1TkNBeU1ERXVNalEyTURrMElESXdMakUwTURZeU5TQXlNRE11T1RnME16YzFJRU1nTWpBdU5ERXdNVFUySURJd05pNDNNakkyTlRZZ01qQXVOelEyTURrMElESXdPUzQwTlRNeE1qVWdNakV1TVRRNE5ETTRJREl4TWk0eE56VTNPREVnUXlBeU1TNDFOVFEyT0RnZ01qRTBMamc1T0RRek9DQXlNaTR3TWpNME16Z2dNakUzTGpZd09UTTNOU0F5TWk0MU5qSTFJREl5TUM0ek1EZzFPVFFnUXlBeU15NHdPVGMyTlRZZ01qSXpMakF3TnpneE1pQXlNeTQyT1RreU1Ua2dNakkxTGpZNU1UUXdOaUF5TkM0ek56RXdPVFFnTWpJNExqTTJNekk0TVNCRElESTFMakF6T1RBMk1pQXlNekV1TURNeE1qVWdNalV1Tnpjek5ETTRJREl6TXk0Mk9ETTFPVFFnTWpZdU5UY3dNekV5SURJek5pNHpNVFkwTURZZ1F5QXlOeTR6TnpFd09UUWdNak00TGprME9USXhPU0F5T0M0eU16UXpOelVnTWpReExqVTJNalVnTWprdU1UWXdNVFUySURJME5DNHhOVFl5TlNCRElETXdMakE0TlRrek9DQXlORFl1TnpRMk1EazBJRE14TGpBM09ERXlOU0F5TkRrdU16RXlOU0F6TWk0eE16STRNVElnTWpVeExqZzFOVFEyT1NCRElETXpMakU0TXpVNU5DQXlOVFF1TXprNE5ETTRJRE0wTGpNd01EYzRNU0F5TlRZdU9URTBNRFl5SURNMUxqUTNOalUyTWlBeU5Ua3VOREF5TXpRMElFTWdNell1TmpVeU16UTBJREkyTVM0NE9UQTJNalVnTXpjdU9Ea3dOakkxSURJMk5DNHpORGMyTlRZZ016a3VNVGczTlNBeU5qWXVOemN6TkRNNElFTWdOREF1TkRnME16YzFJREkyT1M0eU1ETXhNalVnTkRFdU9ETTVPRFEwSURJM01TNDFPVGMyTlRZZ05ETXVNalV6T1RBMklESTNNeTQ1TlRjd016RWdReUEwTkM0Mk56RTROelVnTWpjMkxqTXhOalF3TmlBME5pNHhORFExTXpFZ01qYzRMalkwTURZeU5TQTBOeTQyTnpFNE56VWdNamd3TGpreU9UWTRPQ0JESURRNUxqRTVPVEl4T1NBeU9ETXVNakU0TnpVZ05UQXVOemcxTVRVMklESTROUzQwTmpnM05TQTFNaTQwTWpVM09ERWdNamczTGpZM09UWTRPQ0JESURVMExqQTJNalVnTWpnNUxqZzVNRFl5TlNBMU5TNDNOVGM0TVRJZ01qa3lMakExT0RVNU5DQTFOeTQxTURNNU1EWWdNamswTGpFNE56VWdReUExT1M0eU5TQXlPVFl1TXpFeU5TQTJNUzR3TkRZNE56VWdNams0TGpNNU9EUXpPQ0EyTWk0NE9UUTFNekVnTXpBd0xqUXpOelVnUXlBMk5DNDNOREl4T0RnZ016QXlMalEzTmpVMk1pQTJOaTQyTkRBMk1qVWdNekEwTGpRMk9EYzFJRFk0TGpVNE5Ua3pPQ0F6TURZdU5ERTBNRFl5SUVNZ056QXVOVE14TWpVZ016QTRMak0xT1RNM05TQTNNaTQxTWpNME16Z2dNekV3TGpJMU56Z3hNaUEzTkM0MU5qSTFJRE14TWk0eE1EVTBOamtnUXlBM05pNDJNREUxTmpJZ016RXpMamsxTXpFeU5TQTNPQzQyT0RjMUlETXhOUzQzTlNBNE1DNDRNVEkxSURNeE55NDBPVFl3T1RRZ1F5QTRNaTQ1TkRFME1EWWdNekU1TGpJME1qRTRPQ0E0TlM0eE1Ea3pOelVnTXpJd0xqa3pOelVnT0RjdU16SXdNekV5SURNeU1pNDFOelF5TVRrZ1F5QTRPUzQxTXpFeU5TQXpNalF1TWpFME9EUTBJRGt4TGpjNE1USTFJRE15TlM0NE1EQTNPREVnT1RRdU1EY3dNekV5SURNeU55NHpNamd4TWpVZ1F5QTVOaTR6TlRrek56VWdNekk0TGpnMU5UUTJPU0E1T0M0Mk9ETTFPVFFnTXpNd0xqTXlPREV5TlNBeE1ERXVNRFF5T1RZNUlETXpNUzQzTkRZd09UUWdReUF4TURNdU5EQXlNelEwSURNek15NHhOakF4TlRZZ01UQTFMamM1TmpnM05TQXpNelF1TlRFMU5qSTFJREV3T0M0eU1qWTFOaklnTXpNMUxqZ3hNalVnUXlBeE1UQXVOalV5TXpRMElETXpOeTR4TURrek56VWdNVEV6TGpFd09UTTNOU0F6TXpndU16UTNOalUySURFeE5TNDFPVGMyTlRZZ016TTVMalV5TXpRek9DQkRJREV4T0M0d09EVTVNemdnTXpRd0xqWTVPVEl4T1NBeE1qQXVOakF4TlRZeUlETTBNUzQ0TVRZME1EWWdNVEl6TGpFME5EVXpNU0F6TkRJdU9EWTNNVGc0SUVNZ01USTFMalk0TnpVZ016UXpMamt5TVRnM05TQXhNamd1TWpVek9UQTJJRE0wTkM0NU1UUXdOaklnTVRNd0xqZzBNemMxSURNME5TNDRNems0TkRRZ1F5QXhNek11TkRNM05TQXpORFl1TnpZMU5qSTFJREV6Tmk0d05UQTNPREVnTXpRM0xqWXlPRGt3TmlBeE16Z3VOamd6TlRrMElETTBPQzQwTWprMk9EZ2dReUF4TkRFdU16RTJOREEySURNME9TNHlNalkxTmpJZ01UUXpMamsyT0RjMUlETTBPUzQ1TmpBNU16Z2dNVFEyTGpZek5qY3hPU0F6TlRBdU5qSTRPVEEySUVNZ01UUTVMak13T0RVNU5DQXpOVEV1TXpBd056Z3hJREUxTVM0NU9USXhPRGdnTXpVeExqa3dNak0wTkNBeE5UUXVOamt4TkRBMklETTFNaTQwTXpjMUlFTWdNVFUzTGpNNU1EWXlOU0F6TlRJdU9UYzJOVFl5SURFMk1DNHhNREUxTmpJZ016VXpMalEwTlRNeE1pQXhOakl1T0RJME1qRTVJRE0xTXk0NE5URTFOaklnUXlBeE5qVXVOVFEyT0RjMUlETTFOQzR5TlRNNU1EWWdNVFk0TGpJM056TTBOQ0F6TlRRdU5UZzVPRFEwSURFM01TNHdNVFUyTWpVZ016VTBMamcxT1RNM05TQkRJREUzTXk0M05UTTVNRFlnTXpVMUxqRXlPRGt3TmlBeE56WXVOU0F6TlRVdU16TXlNRE14SURFM09TNHlOU0F6TlRVdU5EWTROelVnUXlBeE9ERXVPVGsyTURrMElETTFOUzQyTURFMU5qSWdNVGcwTGpjME5qQTVOQ0F6TlRVdU5qY3hPRGMxSURFNE55NDFJRE0xTlM0Mk56RTROelVnUXlBeE9UQXVNalV6T1RBMklETTFOUzQyTnpFNE56VWdNVGt6TGpBd016a3dOaUF6TlRVdU5qQXhOVFl5SURFNU5TNDNOU0F6TlRVdU5EWTROelVnUXlBeE9UZ3VOU0F6TlRVdU16TXlNRE14SURJd01TNHlORFl3T1RRZ016VTFMakV5T0Rrd05pQXlNRE11T1RnME16YzFJRE0xTkM0NE5Ua3pOelVnUXlBeU1EWXVOekl5TmpVMklETTFOQzQxT0RrNE5EUWdNakE1TGpRMU16RXlOU0F6TlRRdU1qVXpPVEEySURJeE1pNHhOelUzT0RFZ016VXpMamcxTVRVMk1pQkRJREl4TkM0NE9UZzBNemdnTXpVekxqUTBOVE14TWlBeU1UY3VOakE1TXpjMUlETTFNaTQ1TnpZMU5qSWdNakl3TGpNd09EVTVOQ0F6TlRJdU5ETTNOU0JESURJeU15NHdNRGM0TVRJZ016VXhMamt3TWpNME5DQXlNalV1TmpreE5EQTJJRE0xTVM0ek1EQTNPREVnTWpJNExqTTJNekk0TVNBek5UQXVOakk0T1RBMklFTWdNak14TGpBek1USTFJRE0wT1M0NU5qQTVNemdnTWpNekxqWTRNelU1TkNBek5Ea3VNakkyTlRZeUlESXpOaTR6TVRZME1EWWdNelE0TGpReU9UWTRPQ0JESURJek9DNDVORGt5TVRrZ016UTNMall5T0Rrd05pQXlOREV1TlRZeU5TQXpORFl1TnpZMU5qSTFJREkwTkM0eE5UWXlOU0F6TkRVdU9ETTVPRFEwSUVNZ01qUTJMamMwTmpBNU5DQXpORFF1T1RFME1EWXlJREkwT1M0ek1USTFJRE0wTXk0NU1qRTROelVnTWpVeExqZzFOVFEyT1NBek5ESXVPRFkzTVRnNElFTWdNalUwTGpNNU9EUXpPQ0F6TkRFdU9ERTJOREEySURJMU5pNDVNVFF3TmpJZ016UXdMalk1T1RJeE9TQXlOVGt1TkRBeU16UTBJRE16T1M0MU1qTTBNemdnUXlBeU5qRXVPRGt3TmpJMUlETXpPQzR6TkRjMk5UWWdNalkwTGpNME56WTFOaUF6TXpjdU1UQTVNemMxSURJMk5pNDNOek0wTXpnZ016TTFMamd4TWpVZ1F5QXlOamt1TWpBek1USTFJRE16TkM0MU1UVTJNalVnTWpjeExqVTVOelkxTmlBek16TXVNVFl3TVRVMklESTNNeTQ1TlRjd016RWdNek14TGpjME5qQTVOQ0JESURJM05pNHpNVFkwTURZZ016TXdMak15T0RFeU5TQXlOemd1TmpRd05qSTFJRE15T0M0NE5UVTBOamtnTWpnd0xqa3lPVFk0T0NBek1qY3VNekk0TVRJMUlFTWdNamd6TGpJeE9EYzFJRE15TlM0NE1EQTNPREVnTWpnMUxqUTJPRGMxSURNeU5DNHlNVFE0TkRRZ01qZzNMalkzT1RZNE9DQXpNakl1TlRjME1qRTVJRU1nTWpnNUxqZzVNRFl5TlNBek1qQXVPVE0zTlNBeU9USXVNRFU0TlRrMElETXhPUzR5TkRJeE9EZ2dNamswTGpFNE56VWdNekUzTGpRNU5qQTVOQ0JESURJNU5pNHpNVEkxSURNeE5TNDNOU0F5T1RndU16azRORE00SURNeE15NDVOVE14TWpVZ016QXdMalF6TnpVZ016RXlMakV3TlRRMk9TQkRJRE13TWk0ME56WTFOaklnTXpFd0xqSTFOemd4TWlBek1EUXVORFk0TnpVZ016QTRMak0xT1RNM05TQXpNRFl1TkRFME1EWXlJRE13Tmk0ME1UUXdOaklnUXlBek1EZ3VNelU1TXpjMUlETXdOQzQwTmpnM05TQXpNVEF1TWpVM09ERXlJRE13TWk0ME56WTFOaklnTXpFeUxqRXdOVFEyT1NBek1EQXVORE0zTlNCRElETXhNeTQ1TlRNeE1qVWdNams0TGpNNU9EUXpPQ0F6TVRVdU56VWdNamsyTGpNeE1qVWdNekUzTGpRNU5qQTVOQ0F5T1RRdU1UZzNOU0JESURNeE9TNHlOREl4T0RnZ01qa3lMakExT0RVNU5DQXpNakF1T1RNM05TQXlPRGt1T0Rrd05qSTFJRE15TWk0MU56UXlNVGtnTWpnM0xqWTNPVFk0T0NCRElETXlOQzR5TVRRNE5EUWdNamcxTGpRMk9EYzFJRE15TlM0NE1EQTNPREVnTWpnekxqSXhPRGMxSURNeU55NHpNamd4TWpVZ01qZ3dMamt5T1RZNE9DQkRJRE15T0M0NE5UVTBOamtnTWpjNExqWTBNRFl5TlNBek16QXVNekk0TVRJMUlESTNOaTR6TVRZME1EWWdNek14TGpjME5qQTVOQ0F5TnpNdU9UVTNNRE14SUVNZ016TXpMakUyTURFMU5pQXlOekV1TlRrM05qVTJJRE16TkM0MU1UVTJNalVnTWpZNUxqSXdNekV5TlNBek16VXVPREV5TlNBeU5qWXVOemN6TkRNNElFTWdNek0zTGpFd09UTTNOU0F5TmpRdU16UTNOalUySURNek9DNHpORGMyTlRZZ01qWXhMamc1TURZeU5TQXpNemt1TlRJek5ETTRJREkxT1M0ME1ESXpORFFnUXlBek5EQXVOams1TWpFNUlESTFOaTQ1TVRRd05qSWdNelF4TGpneE5qUXdOaUF5TlRRdU16azRORE00SURNME1pNDROamN4T0RnZ01qVXhMamcxTlRRMk9TQkRJRE0wTXk0NU1qRTROelVnTWpRNUxqTXhNalVnTXpRMExqa3hOREEyTWlBeU5EWXVOelEyTURrMElETTBOUzQ0TXprNE5EUWdNalEwTGpFMU5qSTFJRU1nTXpRMkxqYzJOVFl5TlNBeU5ERXVOVFl5TlNBek5EY3VOakk0T1RBMklESXpPQzQ1TkRreU1Ua2dNelE0TGpReU9UWTRPQ0F5TXpZdU16RTJOREEySUVNZ016UTVMakl5TmpVMk1pQXlNek11Tmpnek5UazBJRE0wT1M0NU5qQTVNemdnTWpNeExqQXpNVEkxSURNMU1DNDJNamc1TURZZ01qSTRMak0yTXpJNE1TQkRJRE0xTVM0ek1EQTNPREVnTWpJMUxqWTVNVFF3TmlBek5URXVPVEF5TXpRMElESXlNeTR3TURjNE1USWdNelV5TGpRek56VWdNakl3TGpNd09EVTVOQ0JESURNMU1pNDVOelkxTmpJZ01qRTNMall3T1RNM05TQXpOVE11TkRRMU16RXlJREl4TkM0NE9UZzBNemdnTXpVekxqZzFNVFUyTWlBeU1USXVNVGMxTnpneElFTWdNelUwTGpJMU16a3dOaUF5TURrdU5EVXpNVEkxSURNMU5DNDFPRGs0TkRRZ01qQTJMamN5TWpZMU5pQXpOVFF1T0RVNU16YzFJREl3TXk0NU9EUXpOelVnUXlBek5UVXVNVEk0T1RBMklESXdNUzR5TkRZd09UUWdNelUxTGpNek1qQXpNU0F4T1RndU5TQXpOVFV1TkRZNE56VWdNVGsxTGpjMUlFTWdNelUxTGpZd01UVTJNaUF4T1RNdU1EQXpPVEEySURNMU5TNDJOekU0TnpVZ01Ua3dMakkxTXprd05pQXpOVFV1TmpjeE9EYzFJREU0Tnk0MUlFTWdNelUxTGpZM01UZzNOU0F4T0RRdU56UTJNRGswSURNMU5TNDJNREUxTmpJZ01UZ3hMams1TmpBNU5DQXpOVFV1TkRZNE56VWdNVGM1TGpJMUlFTWdNelUxTGpNek1qQXpNU0F4TnpZdU5TQXpOVFV1TVRJNE9UQTJJREUzTXk0M05UTTVNRFlnTXpVMExqZzFPVE0zTlNBeE56RXVNREUxTmpJMUlFTWdNelUwTGpVNE9UZzBOQ0F4TmpndU1qYzNNelEwSURNMU5DNHlOVE01TURZZ01UWTFMalUwTmpnM05TQXpOVE11T0RVeE5UWXlJREUyTWk0NE1qUXlNVGtnUXlBek5UTXVORFExTXpFeUlERTJNQzR4TURFMU5qSWdNelV5TGprM05qVTJNaUF4TlRjdU16a3dOakkxSURNMU1pNDBNemMxSURFMU5DNDJPVEUwTURZZ1F5QXpOVEV1T1RBeU16UTBJREUxTVM0NU9USXhPRGdnTXpVeExqTXdNRGM0TVNBeE5Ea3VNekE0TlRrMElETTFNQzQyTWpnNU1EWWdNVFEyTGpZek5qY3hPU0JESURNME9TNDVOakE1TXpnZ01UUXpMamsyT0RjMUlETTBPUzR5TWpZMU5qSWdNVFF4TGpNeE5qUXdOaUF6TkRndU5ESTVOamc0SURFek9DNDJPRE0xT1RRZ1F5QXpORGN1TmpJNE9UQTJJREV6Tmk0d05UQTNPREVnTXpRMkxqYzJOVFl5TlNBeE16TXVORE0zTlNBek5EVXVPRE01T0RRMElERXpNQzQ0TkRNM05TQkRJRE0wTkM0NU1UUXdOaklnTVRJNExqSTFNemt3TmlBek5ETXVPVEl4T0RjMUlERXlOUzQyT0RjMUlETTBNaTQ0TmpjeE9EZ2dNVEl6TGpFME5EVXpNU0JESURNME1TNDRNVFkwTURZZ01USXdMall3TVRVMk1pQXpOREF1TmprNU1qRTVJREV4T0M0d09EVTVNemdnTXpNNUxqVXlNelF6T0NBeE1UVXVOVGszTmpVMklFTWdNek00TGpNME56WTFOaUF4TVRNdU1UQTVNemMxSURNek55NHhNRGt6TnpVZ01URXdMalkxTWpNME5DQXpNelV1T0RFeU5TQXhNRGd1TWpJMk5UWXlJRU1nTXpNMExqVXhOVFl5TlNBeE1EVXVOemsyT0RjMUlETXpNeTR4TmpBeE5UWWdNVEF6TGpRd01qTTBOQ0F6TXpFdU56UTJNRGswSURFd01TNHdOREk1TmprZ1F5QXpNekF1TXpJNE1USTFJRGs0TGpZNE16VTVOQ0F6TWpndU9EVTFORFk1SURrMkxqTTFPVE0zTlNBek1qY3VNekk0TVRJMUlEazBMakEzTURNeE1pQkRJRE15TlM0NE1EQTNPREVnT1RFdU56Z3hNalVnTXpJMExqSXhORGcwTkNBNE9TNDFNekV5TlNBek1qSXVOVGMwTWpFNUlEZzNMak15TURNeE1pQkRJRE15TUM0NU16YzFJRGcxTGpFd09UTTNOU0F6TVRrdU1qUXlNVGc0SURneUxqazBNVFF3TmlBek1UY3VORGsyTURrMElEZ3dMamd4TWpVZ1F5QXpNVFV1TnpVZ056Z3VOamczTlNBek1UTXVPVFV6TVRJMUlEYzJMall3TVRVMk1pQXpNVEl1TVRBMU5EWTVJRGMwTGpVMk1qVWdReUF6TVRBdU1qVTNPREV5SURjeUxqVXlNelF6T0NBek1EZ3VNelU1TXpjMUlEY3dMalV6TVRJMUlETXdOaTQwTVRRd05qSWdOamd1TlRnMU9UTTRJRU1nTXpBMExqUTJPRGMxSURZMkxqWTBNRFl5TlNBek1ESXVORGMyTlRZeUlEWTBMamMwTWpFNE9DQXpNREF1TkRNM05TQTJNaTQ0T1RRMU16RWdReUF5T1RndU16azRORE00SURZeExqQTBOamczTlNBeU9UWXVNekV5TlNBMU9TNHlOU0F5T1RRdU1UZzNOU0ExTnk0MU1ETTVNRFlnUXlBeU9USXVNRFU0TlRrMElEVTFMamMxTnpneE1pQXlPRGt1T0Rrd05qSTFJRFUwTGpBMk1qVWdNamczTGpZM09UWTRPQ0ExTWk0ME1qVTNPREVnUXlBeU9EVXVORFk0TnpVZ05UQXVOemcxTVRVMklESTRNeTR5TVRnM05TQTBPUzR4T1RreU1Ua2dNamd3TGpreU9UWTRPQ0EwTnk0Mk56RTROelVnUXlBeU56Z3VOalF3TmpJMUlEUTJMakUwTkRVek1TQXlOell1TXpFMk5EQTJJRFEwTGpZM01UZzNOU0F5TnpNdU9UVTNNRE14SURRekxqSTFNemt3TmlCRElESTNNUzQxT1RjMk5UWWdOREV1T0RNNU9EUTBJREkyT1M0eU1ETXhNalVnTkRBdU5EZzBNemMxSURJMk5pNDNOek0wTXpnZ016a3VNVGczTlNCRElESTJOQzR6TkRjMk5UWWdNemN1T0Rrd05qSTFJREkyTVM0NE9UQTJNalVnTXpZdU5qVXlNelEwSURJMU9TNDBNREl6TkRRZ016VXVORGMyTlRZeUlFTWdNalUyTGpreE5EQTJNaUF6TkM0ek1EQTNPREVnTWpVMExqTTVPRFF6T0NBek15NHhPRE0xT1RRZ01qVXhMamcxTlRRMk9TQXpNaTR4TXpJNE1USWdReUF5TkRrdU16RXlOU0F6TVM0d056Z3hNalVnTWpRMkxqYzBOakE1TkNBek1DNHdPRFU1TXpnZ01qUTBMakUxTmpJMUlESTVMakUyTURFMU5pQkRJREkwTVM0MU5qSTFJREk0TGpJek5ETTNOU0F5TXpndU9UUTVNakU1SURJM0xqTTNNVEE1TkNBeU16WXVNekUyTkRBMklESTJMalUzTURNeE1pQkRJREl6TXk0Mk9ETTFPVFFnTWpVdU56Y3pORE00SURJek1TNHdNekV5TlNBeU5TNHdNemt3TmpJZ01qSTRMak0yTXpJNE1TQXlOQzR6TnpFd09UUWdReUF5TWpVdU5qa3hOREEySURJekxqWTVPVEl4T1NBeU1qTXVNREEzT0RFeUlESXpMakE1TnpZMU5pQXlNakF1TXpBNE5UazBJREl5TGpVMk1qVWdReUF5TVRjdU5qQTVNemMxSURJeUxqQXlNelF6T0NBeU1UUXVPRGs0TkRNNElESXhMalUxTkRZNE9DQXlNVEl1TVRjMU56Z3hJREl4TGpFME9EUXpPQ0JESURJd09TNDBOVE14TWpVZ01qQXVOelEyTURrMElESXdOaTQzTWpJMk5UWWdNakF1TkRFd01UVTJJREl3TXk0NU9EUXpOelVnTWpBdU1UUXdOakkxSUVNZ01qQXhMakkwTmpBNU5DQXhPUzQ0TnpFd09UUWdNVGs0TGpVZ01Ua3VOalkzT1RZNUlERTVOUzQzTlNBeE9TNDFNekV5TlNCRElERTVNeTR3TURNNU1EWWdNVGt1TXprNE5ETTRJREU1TUM0eU5UTTVNRFlnTVRrdU16STRNVEkxSURFNE55NDFJREU1TGpNeU9ERXlOU0JhSUUwZ01UZzNMalVnTVRrdU16STRNVEkxSUNJdlBnbzhaeUJ6ZEhsc1pUMGlabWxzYkRweVoySW9NVEF3SlN3eE1EQWxMREV3TUNVcE8yWnBiR3d0YjNCaFkybDBlVG94T3lJK0NpQWdQSFZ6WlNCNGJHbHVhenBvY21WbVBTSWpaMng1Y0dnd0xURWlJSGc5SWpRM0xqZzBOakUxTkNJZ2VUMGlNakUxTGpRM01UY3lPQ0l2UGdvOEwyYytDanhuSUhOMGVXeGxQU0ptYVd4c09uSm5ZaWd4TURBbExEVTJMamcxT0RneU5pVXNNekF1TVRrNE5qWTVKU2s3Wm1sc2JDMXZjR0ZqYVhSNU9qRTdJajRLSUNBOGRYTmxJSGhzYVc1ck9taHlaV1k5SWlObmJIbHdhREF0TWlJZ2VEMGlNVFV5TGpZd016WXdOeUlnZVQwaU1qRTFMalEzTVRjeU9DSXZQZ284TDJjK0NqeG5JSE4wZVd4bFBTSm1hV3hzT25KbllpZ3hNREFsTERFd01DVXNNVEF3SlNrN1ptbHNiQzF2Y0dGamFYUjVPakU3SWo0S0lDQThkWE5sSUhoc2FXNXJPbWh5WldZOUlpTm5iSGx3YURBdE15SWdlRDBpTWpNMkxqSTBOVFkzTXlJZ2VUMGlNakUxTGpRM01UY3lPQ0l2UGdvOEwyYytDand2Wno0S1BDOXpkbWMrQ2c9PSIsIm1lZGlhdHlwZSI6ImltYWdlL3N2Zyt4bWwifV0sImluc3RhbGwiOnsic3BlYyI6eyJjbHVzdGVyUGVybWlzc2lvbnMiOlt7InJ1bGVzIjpbeyJhcGlHcm91cHMiOlsiYXV0aGVudGljYXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJ0b2tlbnJldmlld3MiXSwidmVyYnMiOlsiY3JlYXRlIl19LHsiYXBpR3JvdXBzIjpbImF1dGhvcml6YXRpb24uazhzLmlvIl0sInJlc291cmNlcyI6WyJzdWJqZWN0YWNjZXNzcmV2aWV3cyJdLCJ2ZXJicyI6WyJjcmVhdGUiXX1dLCJzZXJ2aWNlQWNjb3VudE5hbWUiOiJtYXJpbjNyLWNvbnRyb2xsZXItbWFuYWdlciJ9XSwiZGVwbG95bWVudHMiOlt7ImxhYmVsIjp7ImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLW1hbmFnZXIifSwibmFtZSI6Im1hcmluM3ItY29udHJvbGxlci1tYW5hZ2VyIiwic3BlYyI6eyJyZXBsaWNhcyI6MSwic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3RyYXRlZ3kiOnt9LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJsYWJlbHMiOnsiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItbWFuYWdlciJ9fSwic3BlYyI6eyJjb250YWluZXJzIjpbeyJhcmdzIjpbIm9wZXJhdG9yIiwiLS1sZWFkZXItZWxlY3QiXSwiY29tbWFuZCI6WyIvbWFuYWdlciJdLCJlbnYiOlt7Im5hbWUiOiJXQVRDSF9OQU1FU1BBQ0UiLCJ2YWx1ZUZyb20iOnsiZmllbGRSZWYiOnsiZmllbGRQYXRoIjoibWV0YWRhdGEuYW5ub3RhdGlvbnNbJ29sbS50YXJnZXROYW1lc3BhY2VzJ10ifX19XSwiaW1hZ2UiOiJxdWF5LmlvLzNzY2FsZS9tYXJpbjNyOnYwLjEzLjItYWxwaGEuMiIsImxpdmVuZXNzUHJvYmUiOnsiaHR0cEdldCI6eyJwYXRoIjoiL2hlYWx0aHoiLCJwb3J0Ijo4MDgxfSwiaW5pdGlhbERlbGF5U2Vjb25kcyI6MTUsInBlcmlvZFNlY29uZHMiOjIwfSwibmFtZSI6Im1hbmFnZXIiLCJwb3J0cyI6W3siY29udGFpbmVyUG9ydCI6ODA4MCwibmFtZSI6Im1ldHJpY3MiLCJwcm90b2NvbCI6IlRDUCJ9XSwicmVhZGluZXNzUHJvYmUiOnsiaHR0cEdldCI6eyJwYXRoIjoiL3JlYWR5eiIsInBvcnQiOjgwODF9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjo1LCJwZXJpb2RTZWNvbmRzIjoxMH0sInJlc291cmNlcyI6eyJsaW1pdHMiOnsiY3B1IjoiMzAwbSIsIm1lbW9yeSI6IjMwME1pIn0sInJlcXVlc3RzIjp7ImNwdSI6IjUwbSIsIm1lbW9yeSI6IjEwME1pIn19LCJzZWN1cml0eUNvbnRleHQiOnsiYWxsb3dQcml2aWxlZ2VFc2NhbGF0aW9uIjpmYWxzZX19XSwic2VjdXJpdHlDb250ZXh0Ijp7InJ1bkFzTm9uUm9vdCI6dHJ1ZX0sInNlcnZpY2VBY2NvdW50TmFtZSI6Im1hcmluM3ItY29udHJvbGxlci1tYW5hZ2VyIiwidGVybWluYXRpb25HcmFjZVBlcmlvZFNlY29uZHMiOjEwfX19fSx7ImxhYmVsIjp7ImNvbnRyb2wtcGxhbmUiOiJjb250cm9sbGVyLXdlYmhvb2sifSwibmFtZSI6Im1hcmluM3ItY29udHJvbGxlci13ZWJob29rIiwic3BlYyI6eyJyZXBsaWNhcyI6Miwic2VsZWN0b3IiOnsibWF0Y2hMYWJlbHMiOnsiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItd2ViaG9vayJ9fSwic3RyYXRlZ3kiOnt9LCJ0ZW1wbGF0ZSI6eyJtZXRhZGF0YSI6eyJsYWJlbHMiOnsiY29udHJvbC1wbGFuZSI6ImNvbnRyb2xsZXItd2ViaG9vayJ9fSwic3BlYyI6eyJjb250YWluZXJzIjpbeyJhcmdzIjpbIndlYmhvb2siLCItLXRscy1kaXI9L2FwaXNlcnZlci5sb2NhbC5jb25maWcvY2VydGlmaWNhdGVzIiwiLS10bHMtY2VydC1uYW1lPWFwaXNlcnZlci5jcnQiLCItLXRscy1rZXktbmFtZT1hcGlzZXJ2ZXIua2V5Il0sImNvbW1hbmQiOlsiL21hbmFnZXIiXSwiZW52IjpbeyJuYW1lIjoiV0FUQ0hfTkFNRVNQQUNFIiwidmFsdWVGcm9tIjp7ImZpZWxkUmVmIjp7ImZpZWxkUGF0aCI6Im1ldGFkYXRhLmFubm90YXRpb25zWydvbG0udGFyZ2V0TmFtZXNwYWNlcyddIn19fV0sImltYWdlIjoicXVheS5pby8zc2NhbGUvbWFyaW4zcjp2MC4xMy4yLWFscGhhLjIiLCJsaXZlbmVzc1Byb2JlIjp7Imh0dHBHZXQiOnsicGF0aCI6Ii9oZWFsdGh6IiwicG9ydCI6ODA4MX0sImluaXRpYWxEZWxheVNlY29uZHMiOjE1LCJwZXJpb2RTZWNvbmRzIjoyMH0sIm5hbWUiOiJ3ZWJob29rIiwicG9ydHMiOlt7ImNvbnRhaW5lclBvcnQiOjk0NDMsIm5hbWUiOiJ3ZWJob29rLXNlcnZlciIsInByb3RvY29sIjoiVENQIn1dLCJyZWFkaW5lc3NQcm9iZSI6eyJodHRwR2V0Ijp7InBhdGgiOiIvcmVhZHl6IiwicG9ydCI6ODA4MX0sImluaXRpYWxEZWxheVNlY29uZHMiOjUsInBlcmlvZFNlY29uZHMiOjEwfSwicmVzb3VyY2VzIjp7ImxpbWl0cyI6eyJjcHUiOiIxMDBtIiwibWVtb3J5IjoiMTAwTWkifSwicmVxdWVzdHMiOnsiY3B1IjoiNTBtIiwibWVtb3J5IjoiMzBNaSJ9fSwic2VjdXJpdHlDb250ZXh0Ijp7ImFsbG93UHJpdmlsZWdlRXNjYWxhdGlvbiI6ZmFsc2V9fV0sInNlcnZpY2VBY2NvdW50TmFtZSI6Im1hcmluM3ItY29udHJvbGxlci1tYW5hZ2VyIn19fX1dLCJwZXJtaXNzaW9ucyI6W3sicnVsZXMiOlt7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbImNvbmZpZ21hcHMiXSwidmVyYnMiOlsiZ2V0IiwibGlzdCIsIndhdGNoIiwiY3JlYXRlIiwidXBkYXRlIiwicGF0Y2giLCJkZWxldGUiXX0seyJhcGlHcm91cHMiOlsiY29vcmRpbmF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsibGVhc2VzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCIsImNyZWF0ZSIsInVwZGF0ZSIsInBhdGNoIiwiZGVsZXRlIl19LHsiYXBpR3JvdXBzIjpbIiJdLCJyZXNvdXJjZXMiOlsiZXZlbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsInBhdGNoIl19LHsiYXBpR3JvdXBzIjpbImFwcHMiXSwicmVzb3VyY2VzIjpbImRlcGxveW1lbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbImF1dG9zY2FsaW5nIl0sInJlc291cmNlcyI6WyJob3Jpem9udGFscG9kYXV0b3NjYWxlcnMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJwb2RzIl0sInZlcmJzIjpbImdldCIsImxpc3QiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyIiXSwicmVzb3VyY2VzIjpbInNlY3JldHMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJzZXJ2aWNlYWNjb3VudHMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsiIl0sInJlc291cmNlcyI6WyJzZXJ2aWNlcyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJkaXNjb3ZlcnkuazhzLmlvIl0sInJlc291cmNlcyI6WyJlbmRwb2ludHNsaWNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsibWFyaW4zci4zc2NhbGUubmV0Il0sInJlc291cmNlcyI6WyIqIl0sInZlcmJzIjpbIioiXX0seyJhcGlHcm91cHMiOlsibWFyaW4zci4zc2NhbGUubmV0Il0sInJlc291cmNlcyI6WyJlbnZveWNvbmZpZ3JldmlzaW9ucyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJtYXJpbjNyLjNzY2FsZS5uZXQiXSwicmVzb3VyY2VzIjpbImVudm95Y29uZmlncmV2aXNpb25zL3N0YXR1cyJdLCJ2ZXJicyI6WyJnZXQiLCJwYXRjaCIsInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJtYXJpbjNyLjNzY2FsZS5uZXQiXSwicmVzb3VyY2VzIjpbImVudm95Y29uZmlncyJdLCJ2ZXJicyI6WyJjcmVhdGUiLCJkZWxldGUiLCJnZXQiLCJsaXN0IiwicGF0Y2giLCJ1cGRhdGUiLCJ3YXRjaCJdfSx7ImFwaUdyb3VwcyI6WyJtYXJpbjNyLjNzY2FsZS5uZXQiXSwicmVzb3VyY2VzIjpbImVudm95Y29uZmlncy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwicGF0Y2giLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3IubWFyaW4zci4zc2NhbGUubmV0Il0sInJlc291cmNlcyI6WyIqIl0sInZlcmJzIjpbIioiXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3IubWFyaW4zci4zc2NhbGUubmV0Il0sInJlc291cmNlcyI6WyJkaXNjb3ZlcnlzZXJ2aWNlY2VydGlmaWNhdGVzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9yLm1hcmluM3IuM3NjYWxlLm5ldCJdLCJyZXNvdXJjZXMiOlsiZGlzY292ZXJ5c2VydmljZWNlcnRpZmljYXRlcy9zdGF0dXMiXSwidmVyYnMiOlsiZ2V0IiwicGF0Y2giLCJ1cGRhdGUiXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3IubWFyaW4zci4zc2NhbGUubmV0Il0sInJlc291cmNlcyI6WyJkaXNjb3ZlcnlzZXJ2aWNlcyJdLCJ2ZXJicyI6WyJnZXQiLCJsaXN0Iiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsib3BlcmF0b3IubWFyaW4zci4zc2NhbGUubmV0Il0sInJlc291cmNlcyI6WyJlbnZveWRlcGxveW1lbnRzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbIm9wZXJhdG9yLm1hcmluM3IuM3NjYWxlLm5ldCJdLCJyZXNvdXJjZXMiOlsiZW52b3lkZXBsb3ltZW50cy9maW5hbGl6ZXJzIl0sInZlcmJzIjpbInVwZGF0ZSJdfSx7ImFwaUdyb3VwcyI6WyJvcGVyYXRvci5tYXJpbjNyLjNzY2FsZS5uZXQiXSwicmVzb3VyY2VzIjpbImVudm95ZGVwbG95bWVudHMvc3RhdHVzIl0sInZlcmJzIjpbImdldCIsInBhdGNoIiwidXBkYXRlIl19LHsiYXBpR3JvdXBzIjpbInBvbGljeSJdLCJyZXNvdXJjZXMiOlsicG9kZGlzcnVwdGlvbmJ1ZGdldHMiXSwidmVyYnMiOlsiY3JlYXRlIiwiZGVsZXRlIiwiZ2V0IiwibGlzdCIsInBhdGNoIiwidXBkYXRlIiwid2F0Y2giXX0seyJhcGlHcm91cHMiOlsicmJhYy5hdXRob3JpemF0aW9uLms4cy5pbyJdLCJyZXNvdXJjZXMiOlsicm9sZWJpbmRpbmdzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19LHsiYXBpR3JvdXBzIjpbInJiYWMuYXV0aG9yaXphdGlvbi5rOHMuaW8iXSwicmVzb3VyY2VzIjpbInJvbGVzIl0sInZlcmJzIjpbImNyZWF0ZSIsImRlbGV0ZSIsImdldCIsImxpc3QiLCJwYXRjaCIsInVwZGF0ZSIsIndhdGNoIl19XSwic2VydmljZUFjY291bnROYW1lIjoibWFyaW4zci1jb250cm9sbGVyLW1hbmFnZXIifV19LCJzdHJhdGVneSI6ImRlcGxveW1lbnQifSwiaW5zdGFsbE1vZGVzIjpbeyJzdXBwb3J0ZWQiOnRydWUsInR5cGUiOiJPd25OYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IlNpbmdsZU5hbWVzcGFjZSJ9LHsic3VwcG9ydGVkIjp0cnVlLCJ0eXBlIjoiTXVsdGlOYW1lc3BhY2UifSx7InN1cHBvcnRlZCI6dHJ1ZSwidHlwZSI6IkFsbE5hbWVzcGFjZXMifV0sImtleXdvcmRzIjpbImVudm95IiwiZGlzY292ZXJ5IiwiY29udHJvbHBsYW5lIiwicHJveHkiLCJzaWRlY2FyIiwieGRzIiwibmV0d29yayIsImdhdGV3YXkiXSwibGlua3MiOlt7Im5hbWUiOiJHaXRIdWIiLCJ1cmwiOiJodHRwczovL2dpdGh1Yi5jb20vM3NjYWxlLW9wcy9tYXJpbjNyIn1dLCJtYWludGFpbmVycyI6W3siZW1haWwiOiIzc2NhbGUtb3BlcmF0aW9ucyttYXJpbjNyQHJlZGhhdC5jb20iLCJuYW1lIjoiM3NjYWxlIE9wZXJhdGlvbnMgVGVhbSJ9XSwibWF0dXJpdHkiOiJhbHBoYSIsInByb3ZpZGVyIjp7Im5hbWUiOiJSZWQgSGF0In0sInZlcnNpb24iOiIwLjEzLjItYWxwaGEuMiIsIndlYmhvb2tkZWZpbml0aW9ucyI6W3siYWRtaXNzaW9uUmV2aWV3VmVyc2lvbnMiOlsidjEiXSwiY29udGFpbmVyUG9ydCI6NDQzLCJkZXBsb3ltZW50TmFtZSI6Im1hcmluM3ItY29udHJvbGxlci13ZWJob29rIiwiZmFpbHVyZVBvbGljeSI6IkZhaWwiLCJnZW5lcmF0ZU5hbWUiOiJlbnZveWNvbmZpZy5tYXJpbjNyLjNzY2FsZS5uZXQtdjFhbHBoYTEiLCJydWxlcyI6W3siYXBpR3JvdXBzIjpbIm1hcmluM3IuM3NjYWxlLm5ldCJdLCJhcGlWZXJzaW9ucyI6WyJ2MWFscGhhMSJdLCJvcGVyYXRpb25zIjpbIkNSRUFURSIsIlVQREFURSJdLCJyZXNvdXJjZXMiOlsiZW52b3ljb25maWdzIl19XSwic2lkZUVmZmVjdHMiOiJOb25lIiwidGFyZ2V0UG9ydCI6OTQ0MywidHlwZSI6IlZhbGlkYXRpbmdBZG1pc3Npb25XZWJob29rIiwid2ViaG9va1BhdGgiOiIvdmFsaWRhdGUtbWFyaW4zci0zc2NhbGUtbmV0LXYxYWxwaGExLWVudm95Y29uZmlnIn0seyJhZG1pc3Npb25SZXZpZXdWZXJzaW9ucyI6WyJ2MSJdLCJjb250YWluZXJQb3J0Ijo0NDMsImRlcGxveW1lbnROYW1lIjoibWFyaW4zci1jb250cm9sbGVyLXdlYmhvb2siLCJmYWlsdXJlUG9saWN5IjoiRmFpbCIsImdlbmVyYXRlTmFtZSI6ImVudm95ZGVwbG95bWVudC5vcGVyYXRvci5tYXJpbjNyLjNzY2FsZS5uZXQiLCJydWxlcyI6W3siYXBpR3JvdXBzIjpbIm9wZXJhdG9yLm1hcmluM3IuM3NjYWxlLm5ldCJdLCJhcGlWZXJzaW9ucyI6WyJ2MWFscGhhMSJdLCJvcGVyYXRpb25zIjpbIkNSRUFURSIsIlVQREFURSJdLCJyZXNvdXJjZXMiOlsiZW52b3lkZXBsb3ltZW50cyJdfV0sInNpZGVFZmZlY3RzIjoiTm9uZSIsInRhcmdldFBvcnQiOjk0NDMsInR5cGUiOiJWYWxpZGF0aW5nQWRtaXNzaW9uV2ViaG9vayIsIndlYmhvb2tQYXRoIjoiL3ZhbGlkYXRlLW9wZXJhdG9yLW1hcmluM3ItM3NjYWxlLW5ldC12MWFscGhhMS1lbnZveWRlcGxveW1lbnQifSx7ImFkbWlzc2lvblJldmlld1ZlcnNpb25zIjpbInYxIl0sImNvbnRhaW5lclBvcnQiOjQ0MywiZGVwbG95bWVudE5hbWUiOiJtYXJpbjNyLWNvbnRyb2xsZXItd2ViaG9vayIsImZhaWx1cmVQb2xpY3kiOiJGYWlsIiwiZ2VuZXJhdGVOYW1lIjoic2lkZWNhci1pbmplY3Rvci5tYXJpbjNyLjNzY2FsZS5uZXQiLCJtYXRjaFBvbGljeSI6IkVxdWl2YWxlbnQiLCJvYmplY3RTZWxlY3RvciI6eyJtYXRjaExhYmVscyI6eyJtYXJpbjNyLjNzY2FsZS5uZXQvc3RhdHVzIjoiZW5hYmxlZCJ9fSwicmVpbnZvY2F0aW9uUG9saWN5IjoiTmV2ZXIiLCJydWxlcyI6W3siYXBpR3JvdXBzIjpbIiJdLCJhcGlWZXJzaW9ucyI6WyJ2MSJdLCJvcGVyYXRpb25zIjpbIkNSRUFURSJdLCJyZXNvdXJjZXMiOlsicG9kcyJdfV0sInNpZGVFZmZlY3RzIjoiTm9uZSIsInRhcmdldFBvcnQiOjk0NDMsInR5cGUiOiJNdXRhdGluZ0FkbWlzc2lvbldlYmhvb2siLCJ3ZWJob29rUGF0aCI6Ii9wb2QtdjEtbXV0YXRlIn1dfX0= +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjE0LjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsIm5hbWUiOiJkaXNjb3ZlcnlzZXJ2aWNlY2VydGlmaWNhdGVzLm9wZXJhdG9yLm1hcmluM3IuM3NjYWxlLm5ldCJ9LCJzcGVjIjp7Imdyb3VwIjoib3BlcmF0b3IubWFyaW4zci4zc2NhbGUubmV0IiwibmFtZXMiOnsia2luZCI6IkRpc2NvdmVyeVNlcnZpY2VDZXJ0aWZpY2F0ZSIsImxpc3RLaW5kIjoiRGlzY292ZXJ5U2VydmljZUNlcnRpZmljYXRlTGlzdCIsInBsdXJhbCI6ImRpc2NvdmVyeXNlcnZpY2VjZXJ0aWZpY2F0ZXMiLCJzaW5ndWxhciI6ImRpc2NvdmVyeXNlcnZpY2VjZXJ0aWZpY2F0ZSJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3siYWRkaXRpb25hbFByaW50ZXJDb2x1bW5zIjpbeyJqc29uUGF0aCI6Ii5zdGF0dXMucmVhZHkiLCJuYW1lIjoiUmVhZHkiLCJ0eXBlIjoiYm9vbGVhbiJ9LHsiZm9ybWF0IjoiZGF0ZS10aW1lIiwianNvblBhdGgiOiIuc3RhdHVzLm5vdEJlZm9yZSIsIm5hbWUiOiJOb3QgQmVmb3JlIiwidHlwZSI6InN0cmluZyJ9LHsiZm9ybWF0IjoiZGF0ZS10aW1lIiwianNvblBhdGgiOiIuc3RhdHVzLm5vdEFmdGVyIiwibmFtZSI6Ik5vdCBBZnRlciIsInR5cGUiOiJzdHJpbmcifV0sIm5hbWUiOiJ2MWFscGhhMSIsInNjaGVtYSI6eyJvcGVuQVBJVjNTY2hlbWEiOnsiZGVzY3JpcHRpb24iOiJEaXNjb3ZlcnlTZXJ2aWNlQ2VydGlmaWNhdGUgaXMgYW4gaW50ZXJuYWwgcmVzb3VyY2UgdXNlZCB0byBjcmVhdGUgY2VydGlmaWNhdGVzLiBUaGlzIHJlc291cmNlXG5pcyB1c2VkIGJ5IHRoZSBEaXNjb3ZlcnlTZXJ2aWNlIGNvbnRyb2xsZXIgdG8gY3JlYXRlIHRoZSByZXF1aXJlZCBjZXJ0aWZpY2F0ZXMgZm9yIHRoZSBkaWZmZXJlbnRcbmNvbXBvbmVudHMuIERpcmVjdCB1c2Ugb2YgRGlzY292ZXJ5U2VydmljZUNlcnRpZmljYXRlIG9iamVjdHMgaXMgZGlzY291cmFnZWQuIiwicHJvcGVydGllcyI6eyJhcGlWZXJzaW9uIjp7ImRlc2NyaXB0aW9uIjoiQVBJVmVyc2lvbiBkZWZpbmVzIHRoZSB2ZXJzaW9uZWQgc2NoZW1hIG9mIHRoaXMgcmVwcmVzZW50YXRpb24gb2YgYW4gb2JqZWN0LlxuU2VydmVycyBzaG91bGQgY29udmVydCByZWNvZ25pemVkIHNjaGVtYXMgdG8gdGhlIGxhdGVzdCBpbnRlcm5hbCB2YWx1ZSwgYW5kXG5tYXkgcmVqZWN0IHVucmVjb2duaXplZCB2YWx1ZXMuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3Jlc291cmNlcyIsInR5cGUiOiJzdHJpbmcifSwia2luZCI6eyJkZXNjcmlwdGlvbiI6IktpbmQgaXMgYSBzdHJpbmcgdmFsdWUgcmVwcmVzZW50aW5nIHRoZSBSRVNUIHJlc291cmNlIHRoaXMgb2JqZWN0IHJlcHJlc2VudHMuXG5TZXJ2ZXJzIG1heSBpbmZlciB0aGlzIGZyb20gdGhlIGVuZHBvaW50IHRoZSBjbGllbnQgc3VibWl0cyByZXF1ZXN0cyB0by5cbkNhbm5vdCBiZSB1cGRhdGVkLlxuSW4gQ2FtZWxDYXNlLlxuTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibWV0YWRhdGEiOnsidHlwZSI6Im9iamVjdCJ9LCJzcGVjIjp7ImRlc2NyaXB0aW9uIjoiRGlzY292ZXJ5U2VydmljZUNlcnRpZmljYXRlU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIERpc2NvdmVyeVNlcnZpY2VDZXJ0aWZpY2F0ZSIsInByb3BlcnRpZXMiOnsiY2VydGlmaWNhdGVSZW5ld2FsIjp7ImRlc2NyaXB0aW9uIjoiQ2VydGlmaWNhdGVSZW5ld2FsQ29uZmlnIGNvbmZpZ3VyZXMgdGhlIGNlcnRpZmljYXRlIHJlbmV3YWwgcHJvY2Vzcy4gSWYgdW5zZXQgZGVmYXVsdFxuYmVoYXZpb3IgaXMgdG8gcmVuZXcgdGhlIGNlcnRpZmljYXRlIGJ1dCBub3Qgbm90aWZ5IG9mIHJlbmV3YWxzLiIsInByb3BlcnRpZXMiOnsiZW5hYmxlZCI6eyJkZXNjcmlwdGlvbiI6IkVuYWJsZWQgaXMgYSBmbGFnIHRvIGVuYWJsZSBvciBkaXNhYmxlIHJlbmV3YWwgb2YgdGhlIGNlcnRpZmljYXRlIiwidHlwZSI6ImJvb2xlYW4ifX0sInJlcXVpcmVkIjpbImVuYWJsZWQiXSwidHlwZSI6Im9iamVjdCJ9LCJjb21tb25OYW1lIjp7ImRlc2NyaXB0aW9uIjoiQ29tbW9uTmFtZSBpcyB0aGUgQ29tbW9uTmFtZSBvZiB0aGUgY2VydGlmaWNhdGUiLCJ0eXBlIjoic3RyaW5nIn0sImhvc3RzIjp7ImRlc2NyaXB0aW9uIjoiSG9zdHMgaXMgdGhlIGxpc3Qgb2YgaG9zdHMgdGhlIGNlcnRpZmljYXRlIGlzIHZhbGlkIGZvci4gT25seVxudXNlIHdoZW4gJ0lzU2VydmVyQ2VydGlmaWNhdGUnIGlzIHRydWUuIElmIHVuc2V0LCB0aGUgQ29tbW9uTmFtZVxuZmllbGQgd2lsbCBiZSB1c2VkIHRvIHBvcHVsYXRlIHRoZSB2YWxpZCBob3N0cyBvZiB0aGUgY2VydGlmaWNhdGUuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiaXNDQSI6eyJkZXNjcmlwdGlvbiI6IklzQ0EgaXMgYSBib29sZWFuIHNwZWNpZnlpbmcgdGhhdCB0aGUgY2VydGlmaWNhdGUgaXMgYSBDQSIsInR5cGUiOiJib29sZWFuIn0sInNlY3JldFJlZiI6eyJkZXNjcmlwdGlvbiI6IlNlY3JldFJlZiBpcyBhIHJlZmVyZW5jZSB0byB0aGUgc2VjcmV0IHRoYXQgd2lsbCBob2xkIHRoZSBjZXJ0aWZpY2F0ZVxuYW5kIHRoZSBwcml2YXRlIGtleS4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJuYW1lIGlzIHVuaXF1ZSB3aXRoaW4gYSBuYW1lc3BhY2UgdG8gcmVmZXJlbmNlIGEgc2VjcmV0IHJlc291cmNlLiIsInR5cGUiOiJzdHJpbmcifSwibmFtZXNwYWNlIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlIGRlZmluZXMgdGhlIHNwYWNlIHdpdGhpbiB3aGljaCB0aGUgc2VjcmV0IG5hbWUgbXVzdCBiZSB1bmlxdWUuIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJzZXJ2ZXIiOnsiZGVzY3JpcHRpb24iOiJJc1NlcnZlckNlcnRpZmljYXRlIGlzIGEgYm9vbGVhbiBzcGVjaWZ5aW5nIGlmIHRoZSBjZXJ0aWZpY2F0ZSBzaG91bGQgYmVcbmlzc3VlZCB3aXRoIHNlcnZlciBhdXRoIHVzYWdlIGVuYWJsZWQiLCJ0eXBlIjoiYm9vbGVhbiJ9LCJzaWduZXIiOnsiZGVzY3JpcHRpb24iOiJTaWduZXIgc3BlY2lmaWVzICB0aGUgc2lnbmVyIHRvIHVzZSB0byBjcmVhdGUgdGhpcyBjZXJ0aWZpY2F0ZS4gU3VwcG9ydGVkXG5zaWduZXJzIGFyZSBDZXJ0TWFuYWdlciBhbmQgU2VsZlNpZ25lZC4iLCJwcm9wZXJ0aWVzIjp7ImNhU2lnbmVkIjp7ImRlc2NyaXB0aW9uIjoiQ0FTaWduZWQgaG9sZHMgc3BlY2lmaWMgY29uZmlndXJhdGlvbiBmb3IgdGhlIENBU2lnbmVkIHNpZ25lciIsInByb3BlcnRpZXMiOnsiY2FTZWNyZXRSZWYiOnsiZGVzY3JpcHRpb24iOiJBIHJlZmVyZW5jZSB0byBhIFNlY3JldCBjb250YWluaW5nIHRoZSBDQSIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgaXMgdW5pcXVlIHdpdGhpbiBhIG5hbWVzcGFjZSB0byByZWZlcmVuY2UgYSBzZWNyZXQgcmVzb3VyY2UuIiwidHlwZSI6InN0cmluZyJ9LCJuYW1lc3BhY2UiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2UgZGVmaW5lcyB0aGUgc3BhY2Ugd2l0aGluIHdoaWNoIHRoZSBzZWNyZXQgbmFtZSBtdXN0IGJlIHVuaXF1ZS4iLCJ0eXBlIjoic3RyaW5nIn19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn19LCJyZXF1aXJlZCI6WyJjYVNlY3JldFJlZiJdLCJ0eXBlIjoib2JqZWN0In0sInNlbGZTaWduZWQiOnsiZGVzY3JpcHRpb24iOiJTZWxmU2lnbmVkIGhvbGRzIHNwZWNpZmljIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBTZWxmU2lnbmVkIHNpZ25lciIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwidmFsaWRGb3IiOnsiZGVzY3JpcHRpb24iOiJWYWxpZEZvciBzcGVjaWZpZXMgdGhlIHZhbGlkaXR5IG9mIHRoZSBjZXJ0aWZpY2F0ZSBpbiBzZWNvbmRzIiwiZm9ybWF0IjoiaW50NjQiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsiY29tbW9uTmFtZSIsInNlY3JldFJlZiIsInNpZ25lciIsInZhbGlkRm9yIl0sInR5cGUiOiJvYmplY3QifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiRGlzY292ZXJ5U2VydmljZUNlcnRpZmljYXRlU3RhdHVzIGRlZmluZXMgdGhlIG9ic2VydmVkIHN0YXRlIG9mIERpc2NvdmVyeVNlcnZpY2VDZXJ0aWZpY2F0ZSIsInByb3BlcnRpZXMiOnsiY2VydGlmaWNhdGVIYXNoIjp7ImRlc2NyaXB0aW9uIjoiQ2VydGlmaWNhdGVIYXNoIHN0b3JlcyB0aGUgY3VycmVudCBoYXNoIG9mIHRoZSBjZXJ0aWZpY2F0ZS4gSXQgaXMgdXNlZFxuZm9yIG90aGVyIGNvbnRyb2xsZXJzIHRvIHZhbGlkYXRlIGlmIGEgY2VydGlmaWNhdGUgaGFzIGJlZW4gcmUtaXNzdWVkLiIsInR5cGUiOiJzdHJpbmcifSwiY29uZGl0aW9ucyI6eyJkZXNjcmlwdGlvbiI6IkNvbmRpdGlvbnMgcmVwcmVzZW50IHRoZSBsYXRlc3QgYXZhaWxhYmxlIG9ic2VydmF0aW9ucyBvZiBhbiBvYmplY3QncyBzdGF0ZSIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQ29uZGl0aW9uIGNvbnRhaW5zIGRldGFpbHMgZm9yIG9uZSBhc3BlY3Qgb2YgdGhlIGN1cnJlbnQgc3RhdGUgb2YgdGhpcyBBUEkgUmVzb3VyY2UuXG4tLS1cblRoaXMgc3RydWN0IGlzIGludGVuZGVkIGZvciBkaXJlY3QgdXNlIGFzIGFuIGFycmF5IGF0IHRoZSBmaWVsZCBwYXRoIC5zdGF0dXMuY29uZGl0aW9ucy4gIEZvciBleGFtcGxlLFxuXG5cblx0dHlwZSBGb29TdGF0dXMgc3RydWN0e1xuXHQgICAgLy8gUmVwcmVzZW50cyB0aGUgb2JzZXJ2YXRpb25zIG9mIGEgZm9vJ3MgY3VycmVudCBzdGF0ZS5cblx0ICAgIC8vIEtub3duIC5zdGF0dXMuY29uZGl0aW9ucy50eXBlIGFyZTogXCJBdmFpbGFibGVcIiwgXCJQcm9ncmVzc2luZ1wiLCBhbmQgXCJEZWdyYWRlZFwiXG5cdCAgICAvLyArcGF0Y2hNZXJnZUtleT10eXBlXG5cdCAgICAvLyArcGF0Y2hTdHJhdGVneT1tZXJnZVxuXHQgICAgLy8gK2xpc3RUeXBlPW1hcFxuXHQgICAgLy8gK2xpc3RNYXBLZXk9dHlwZVxuXHQgICAgQ29uZGl0aW9ucyBbXW1ldGF2MS5Db25kaXRpb24gYGpzb246XCJjb25kaXRpb25zLG9taXRlbXB0eVwiIHBhdGNoU3RyYXRlZ3k6XCJtZXJnZVwiIHBhdGNoTWVyZ2VLZXk6XCJ0eXBlXCIgcHJvdG9idWY6XCJieXRlcywxLHJlcCxuYW1lPWNvbmRpdGlvbnNcImBcblxuXG5cdCAgICAvLyBvdGhlciBmaWVsZHNcblx0fSIsInByb3BlcnRpZXMiOnsibGFzdFRyYW5zaXRpb25UaW1lIjp7ImRlc2NyaXB0aW9uIjoibGFzdFRyYW5zaXRpb25UaW1lIGlzIHRoZSBsYXN0IHRpbWUgdGhlIGNvbmRpdGlvbiB0cmFuc2l0aW9uZWQgZnJvbSBvbmUgc3RhdHVzIHRvIGFub3RoZXIuXG5UaGlzIHNob3VsZCBiZSB3aGVuIHRoZSB1bmRlcmx5aW5nIGNvbmRpdGlvbiBjaGFuZ2VkLiAgSWYgdGhhdCBpcyBub3Qga25vd24sIHRoZW4gdXNpbmcgdGhlIHRpbWUgd2hlbiB0aGUgQVBJIGZpZWxkIGNoYW5nZWQgaXMgYWNjZXB0YWJsZS4iLCJmb3JtYXQiOiJkYXRlLXRpbWUiLCJ0eXBlIjoic3RyaW5nIn0sIm1lc3NhZ2UiOnsiZGVzY3JpcHRpb24iOiJtZXNzYWdlIGlzIGEgaHVtYW4gcmVhZGFibGUgbWVzc2FnZSBpbmRpY2F0aW5nIGRldGFpbHMgYWJvdXQgdGhlIHRyYW5zaXRpb24uXG5UaGlzIG1heSBiZSBhbiBlbXB0eSBzdHJpbmcuIiwibWF4TGVuZ3RoIjozMjc2OCwidHlwZSI6InN0cmluZyJ9LCJvYnNlcnZlZEdlbmVyYXRpb24iOnsiZGVzY3JpcHRpb24iOiJvYnNlcnZlZEdlbmVyYXRpb24gcmVwcmVzZW50cyB0aGUgLm1ldGFkYXRhLmdlbmVyYXRpb24gdGhhdCB0aGUgY29uZGl0aW9uIHdhcyBzZXQgYmFzZWQgdXBvbi5cbkZvciBpbnN0YW5jZSwgaWYgLm1ldGFkYXRhLmdlbmVyYXRpb24gaXMgY3VycmVudGx5IDEyLCBidXQgdGhlIC5zdGF0dXMuY29uZGl0aW9uc1t4XS5vYnNlcnZlZEdlbmVyYXRpb24gaXMgOSwgdGhlIGNvbmRpdGlvbiBpcyBvdXQgb2YgZGF0ZVxud2l0aCByZXNwZWN0IHRvIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBpbnN0YW5jZS4iLCJmb3JtYXQiOiJpbnQ2NCIsIm1pbmltdW0iOjAsInR5cGUiOiJpbnRlZ2VyIn0sInJlYXNvbiI6eyJkZXNjcmlwdGlvbiI6InJlYXNvbiBjb250YWlucyBhIHByb2dyYW1tYXRpYyBpZGVudGlmaWVyIGluZGljYXRpbmcgdGhlIHJlYXNvbiBmb3IgdGhlIGNvbmRpdGlvbidzIGxhc3QgdHJhbnNpdGlvbi5cblByb2R1Y2VycyBvZiBzcGVjaWZpYyBjb25kaXRpb24gdHlwZXMgbWF5IGRlZmluZSBleHBlY3RlZCB2YWx1ZXMgYW5kIG1lYW5pbmdzIGZvciB0aGlzIGZpZWxkLFxuYW5kIHdoZXRoZXIgdGhlIHZhbHVlcyBhcmUgY29uc2lkZXJlZCBhIGd1YXJhbnRlZWQgQVBJLlxuVGhlIHZhbHVlIHNob3VsZCBiZSBhIENhbWVsQ2FzZSBzdHJpbmcuXG5UaGlzIGZpZWxkIG1heSBub3QgYmUgZW1wdHkuIiwibWF4TGVuZ3RoIjoxMDI0LCJtaW5MZW5ndGgiOjEsInBhdHRlcm4iOiJeW0EtWmEtel0oW0EtWmEtejAtOV8sOl0qW0EtWmEtejAtOV9dKT8kIiwidHlwZSI6InN0cmluZyJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJzdGF0dXMgb2YgdGhlIGNvbmRpdGlvbiwgb25lIG9mIFRydWUsIEZhbHNlLCBVbmtub3duLiIsImVudW0iOlsiVHJ1ZSIsIkZhbHNlIiwiVW5rbm93biJdLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJ0eXBlIG9mIGNvbmRpdGlvbiBpbiBDYW1lbENhc2Ugb3IgaW4gZm9vLmV4YW1wbGUuY29tL0NhbWVsQ2FzZS5cbi0tLVxuTWFueSAuY29uZGl0aW9uLnR5cGUgdmFsdWVzIGFyZSBjb25zaXN0ZW50IGFjcm9zcyByZXNvdXJjZXMgbGlrZSBBdmFpbGFibGUsIGJ1dCBiZWNhdXNlIGFyYml0cmFyeSBjb25kaXRpb25zIGNhbiBiZVxudXNlZnVsIChzZWUgLm5vZGUuc3RhdHVzLmNvbmRpdGlvbnMpLCB0aGUgYWJpbGl0eSB0byBkZWNvbmZsaWN0IGlzIGltcG9ydGFudC5cblRoZSByZWdleCBpdCBtYXRjaGVzIGlzIChkbnMxMTIzU3ViZG9tYWluRm10Lyk/KHF1YWxpZmllZE5hbWVGbXQpIiwibWF4TGVuZ3RoIjozMTYsInBhdHRlcm4iOiJeKFthLXowLTldKFstYS16MC05XSpbYS16MC05XSk/KFxcLlthLXowLTldKFstYS16MC05XSpbYS16MC05XSk/KSovKT8oKFtBLVphLXowLTldWy1BLVphLXowLTlfLl0qKT9bQS1aYS16MC05XSkkIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibGFzdFRyYW5zaXRpb25UaW1lIiwibWVzc2FnZSIsInJlYXNvbiIsInN0YXR1cyIsInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibm90QWZ0ZXIiOnsiZGVzY3JpcHRpb24iOiJOb3RBZnRlciBpcyB0aGUgdGltZSBhdCB3aGljaCB0aGUgY2VydGlmaWNhdGUgZXhwaXJlcyIsImZvcm1hdCI6ImRhdGUtdGltZSIsInR5cGUiOiJzdHJpbmcifSwibm90QmVmb3JlIjp7ImRlc2NyaXB0aW9uIjoiTm90QmVmb3JlIGlzIHRoZSB0aW1lIGF0IHdoaWNoIHRoZSBjZXJ0aWZpY2F0ZSBzdGFydHNcbmJlaW5nIHZhbGlkIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwidHlwZSI6InN0cmluZyJ9LCJyZWFkeSI6eyJkZXNjcmlwdGlvbiI6IlJlYWR5IGlzIGEgYm9vbGVhbiB0aGF0IHNwZWNpZmllcyBpZiB0aGUgY2VydGlmaWNhdGUgaXMgcmVhZHkgdG8gYmUgdXNlZCIsInR5cGUiOiJib29sZWFuIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpudWxsLCJzdG9yZWRWZXJzaW9ucyI6bnVsbH19 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjE0LjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsIm5hbWUiOiJkaXNjb3ZlcnlzZXJ2aWNlcy5vcGVyYXRvci5tYXJpbjNyLjNzY2FsZS5uZXQifSwic3BlYyI6eyJncm91cCI6Im9wZXJhdG9yLm1hcmluM3IuM3NjYWxlLm5ldCIsIm5hbWVzIjp7ImtpbmQiOiJEaXNjb3ZlcnlTZXJ2aWNlIiwibGlzdEtpbmQiOiJEaXNjb3ZlcnlTZXJ2aWNlTGlzdCIsInBsdXJhbCI6ImRpc2NvdmVyeXNlcnZpY2VzIiwic2luZ3VsYXIiOiJkaXNjb3ZlcnlzZXJ2aWNlIn0sInNjb3BlIjoiTmFtZXNwYWNlZCIsInZlcnNpb25zIjpbeyJuYW1lIjoidjFhbHBoYTEiLCJzY2hlbWEiOnsib3BlbkFQSVYzU2NoZW1hIjp7ImRlc2NyaXB0aW9uIjoiRGlzY292ZXJ5U2VydmljZSByZXByZXNlbnRzIGFuIGVudm95IGRpc2NvdmVyeSBzZXJ2aWNlIHNlcnZlci4gT25seSBvbmVcbmluc3RhbmNlIHBlciBuYW1lc3BhY2UgaXMgY3VycmVudGx5IHN1cHBvcnRlZC4iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJBUElWZXJzaW9uIGRlZmluZXMgdGhlIHZlcnNpb25lZCBzY2hlbWEgb2YgdGhpcyByZXByZXNlbnRhdGlvbiBvZiBhbiBvYmplY3QuXG5TZXJ2ZXJzIHNob3VsZCBjb252ZXJ0IHJlY29nbml6ZWQgc2NoZW1hcyB0byB0aGUgbGF0ZXN0IGludGVybmFsIHZhbHVlLCBhbmRcbm1heSByZWplY3QgdW5yZWNvZ25pemVkIHZhbHVlcy5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjcmVzb3VyY2VzIiwidHlwZSI6InN0cmluZyJ9LCJraW5kIjp7ImRlc2NyaXB0aW9uIjoiS2luZCBpcyBhIHN0cmluZyB2YWx1ZSByZXByZXNlbnRpbmcgdGhlIFJFU1QgcmVzb3VyY2UgdGhpcyBvYmplY3QgcmVwcmVzZW50cy5cblNlcnZlcnMgbWF5IGluZmVyIHRoaXMgZnJvbSB0aGUgZW5kcG9pbnQgdGhlIGNsaWVudCBzdWJtaXRzIHJlcXVlc3RzIHRvLlxuQ2Fubm90IGJlIHVwZGF0ZWQuXG5JbiBDYW1lbENhc2UuXG5Nb3JlIGluZm86IGh0dHBzOi8vZ2l0Lms4cy5pby9jb21tdW5pdHkvY29udHJpYnV0b3JzL2RldmVsL3NpZy1hcmNoaXRlY3R1cmUvYXBpLWNvbnZlbnRpb25zLm1kI3R5cGVzLWtpbmRzIiwidHlwZSI6InN0cmluZyJ9LCJtZXRhZGF0YSI6eyJ0eXBlIjoib2JqZWN0In0sInNwZWMiOnsiZGVzY3JpcHRpb24iOiJEaXNjb3ZlcnlTZXJ2aWNlU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIERpc2NvdmVyeVNlcnZpY2UiLCJwcm9wZXJ0aWVzIjp7ImRlYnVnIjp7ImRlc2NyaXB0aW9uIjoiRGVidWcgZW5hYmxlcyBkZWJ1Z2dpbmcgbG9nIGxldmVsIGZvciB0aGUgZGlzY292ZXJ5IHNlcnZpY2UgY29udHJvbGxlcnMuIEl0IGlzIHNhZmUgdG9cbnVzZSBzaW5jZSBzZWNyZXQgZGF0YSBpcyBuZXZlciBzaG93biBpbiB0aGUgbG9ncy4iLCJ0eXBlIjoiYm9vbGVhbiJ9LCJpbWFnZSI6eyJkZXNjcmlwdGlvbiI6IkltYWdlIGhvbGRzIHRoZSBpbWFnZSB0byB1c2UgZm9yIHRoZSBkaXNjb3Zlcnkgc2VydmljZSBEZXBsb3ltZW50IiwidHlwZSI6InN0cmluZyJ9LCJtZXRyaWNzUG9ydCI6eyJkZXNjcmlwdGlvbiI6Ik1ldHJpY3NQb3J0IGlzIHRoZSBwb3J0IHdoZXJlIG1ldHJpY3MgYXJlIHNlcnZlZC4gRGVmYXVsdHMgdG8gODM4My4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInBraUNvbmZnIjp7ImRlc2NyaXB0aW9uIjoiUEtJQ29uZmlnIGhhcyBjb25maWd1cmF0aW9uIGZvciB0aGUgUEtJIHRoYXQgbWFyaW4zciBtYW5hZ2VzIGZvciB0aGVcbmRpZmZlcmVudCBjZXJ0aWZpY2F0ZXMgaXQgcmVxdWlyZXMiLCJwcm9wZXJ0aWVzIjp7InJvb3RDZXJ0aWZpY2F0ZUF1dGhvcml0eSI6eyJkZXNjcmlwdGlvbiI6IkNlcnRpZmljYXRlT3B0aW9ucyBzcGVjaWZpZXMgb3B0aW9ucyB0byBnZW5lcmF0ZSB0aGUgc2VydmVyIGNlcnRpZmljYXRlIHVzZWQgYm90aFxuZm9yIHRoZSB4RFMgc2VydmVyIGFuZCB0aGUgbXV0YXRpbmcgd2ViaG9vayBzZXJ2ZXIuIiwicHJvcGVydGllcyI6eyJkdXJhdGlvbiI6eyJ0eXBlIjoic3RyaW5nIn0sInNlY3JldE5hbWUiOnsidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsiZHVyYXRpb24iLCJzZWNyZXROYW1lIl0sInR5cGUiOiJvYmplY3QifSwic2VydmVyQ2VydGlmaWNhdGUiOnsiZGVzY3JpcHRpb24iOiJDZXJ0aWZpY2F0ZU9wdGlvbnMgc3BlY2lmaWVzIG9wdGlvbnMgdG8gZ2VuZXJhdGUgdGhlIHNlcnZlciBjZXJ0aWZpY2F0ZSB1c2VkIGJvdGhcbmZvciB0aGUgeERTIHNlcnZlciBhbmQgdGhlIG11dGF0aW5nIHdlYmhvb2sgc2VydmVyLiIsInByb3BlcnRpZXMiOnsiZHVyYXRpb24iOnsidHlwZSI6InN0cmluZyJ9LCJzZWNyZXROYW1lIjp7InR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImR1cmF0aW9uIiwic2VjcmV0TmFtZSJdLCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJyb290Q2VydGlmaWNhdGVBdXRob3JpdHkiLCJzZXJ2ZXJDZXJ0aWZpY2F0ZSJdLCJ0eXBlIjoib2JqZWN0In0sInBvZFByaW9yaXR5Q2xhc3MiOnsiZGVzY3JpcHRpb24iOiJQcmlvcml0eUNsYXNzIHRvIGFzc2lnbiB0aGUgZGlzY292ZXJ5IHNlcnZpY2UgUG9kIHRvIiwidHlwZSI6InN0cmluZyJ9LCJwcm9iZVBvcnQiOnsiZGVzY3JpcHRpb24iOiJQcm9iZVBvcnQgaXMgdGhlIHBvcnQgd2hlcmUgaGVhbHRoeiBlbmRwb2ludCBpcyBzZXJ2ZWQuIERlZmF1bHRzIHRvIDgzODQuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJyZXNvdXJjZXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZXMgaG9sZHMgdGhlIFJlc291cmNlIFJlcXVpcmVtZW50cyB0byB1c2UgZm9yIHRoZSBkaXNjb3Zlcnkgc2VydmljZVxuRGVwbG95bWVudC4gV2hlbiBub3Qgc2V0IGl0IGRlZmF1bHRzIHRvIG5vIHJlc291cmNlIHJlcXVlc3RzIG5vciBsaW1pdHMuXG5DUFUgYW5kIE1lbW9yeSByZXNvdXJjZXMgYXJlIHN1cHBvcnRlZC4iLCJwcm9wZXJ0aWVzIjp7ImNsYWltcyI6eyJkZXNjcmlwdGlvbiI6IkNsYWltcyBsaXN0cyB0aGUgbmFtZXMgb2YgcmVzb3VyY2VzLCBkZWZpbmVkIGluIHNwZWMucmVzb3VyY2VDbGFpbXMsXG50aGF0IGFyZSB1c2VkIGJ5IHRoaXMgY29udGFpbmVyLlxuXG5cblRoaXMgaXMgYW4gYWxwaGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIHRoZVxuRHluYW1pY1Jlc291cmNlQWxsb2NhdGlvbiBmZWF0dXJlIGdhdGUuXG5cblxuVGhpcyBmaWVsZCBpcyBpbW11dGFibGUuIEl0IGNhbiBvbmx5IGJlIHNldCBmb3IgY29udGFpbmVycy4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlJlc291cmNlQ2xhaW0gcmVmZXJlbmNlcyBvbmUgZW50cnkgaW4gUG9kU3BlYy5SZXNvdXJjZUNsYWltcy4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJOYW1lIG11c3QgbWF0Y2ggdGhlIG5hbWUgb2Ygb25lIGVudHJ5IGluIHBvZC5zcGVjLnJlc291cmNlQ2xhaW1zIG9mXG50aGUgUG9kIHdoZXJlIHRoaXMgZmllbGQgaXMgdXNlZC4gSXQgbWFrZXMgdGhhdCByZXNvdXJjZSBhdmFpbGFibGVcbmluc2lkZSBhIGNvbnRhaW5lci4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtbWFwLWtleXMiOlsibmFtZSJdLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoibWFwIn0sImxpbWl0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJMaW1pdHMgZGVzY3JpYmVzIHRoZSBtYXhpbXVtIGFtb3VudCBvZiBjb21wdXRlIHJlc291cmNlcyBhbGxvd2VkLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In0sInJlcXVlc3RzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJkZXNjcmlwdGlvbiI6IlJlcXVlc3RzIGRlc2NyaWJlcyB0aGUgbWluaW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgcmVxdWlyZWQuXG5JZiBSZXF1ZXN0cyBpcyBvbWl0dGVkIGZvciBhIGNvbnRhaW5lciwgaXQgZGVmYXVsdHMgdG8gTGltaXRzIGlmIHRoYXQgaXMgZXhwbGljaXRseSBzcGVjaWZpZWQsXG5vdGhlcndpc2UgdG8gYW4gaW1wbGVtZW50YXRpb24tZGVmaW5lZCB2YWx1ZS4gUmVxdWVzdHMgY2Fubm90IGV4Y2VlZCBMaW1pdHMuXG5Nb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL2NvbmZpZ3VyYXRpb24vbWFuYWdlLXJlc291cmNlcy1jb250YWluZXJzLyIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwic2VydmljZUNvbmZpZyI6eyJkZXNjcmlwdGlvbiI6IlNlcnZpY2VDb25maWcgY29uZmlndXJlcyB0aGUgd2F5IHRoZSBEaXNjb3ZlcnlTZXJ2aWNlIGVuZHBvaW50cyBhcmUgZXhwb3NlZCIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJTZXJ2aWNlVHlwZSBpcyBhbiBlbnVtIHdpdGggdGhlIGF2YWlsYWJsZSBkaXNjb3Zlcnkgc2VydmljZSBTZXJ2aWNlIHR5cGVzIiwidHlwZSI6InN0cmluZyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJ4ZHNTZXJ2ZXJQb3J0Ijp7ImRlc2NyaXB0aW9uIjoiWGRzU2VydmVyUG9ydCBpcyB0aGUgcG9ydCB3aGVyZSB0aGUgeERTIHNlcnZlciBsaXN0ZW5zLiBEZWZhdWx0cyB0byAxODAwMC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IkRpc2NvdmVyeVNlcnZpY2VTdGF0dXMgZGVmaW5lcyB0aGUgb2JzZXJ2ZWQgc3RhdGUgb2YgRGlzY292ZXJ5U2VydmljZSIsInByb3BlcnRpZXMiOnsiZGVwbG95bWVudE5hbWUiOnsidHlwZSI6InN0cmluZyJ9LCJkZXBsb3ltZW50U3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiRGVwbG95bWVudFN0YXR1cyBpcyB0aGUgbW9zdCByZWNlbnRseSBvYnNlcnZlZCBzdGF0dXMgb2YgdGhlIERlcGxveW1lbnQuIiwicHJvcGVydGllcyI6eyJhdmFpbGFibGVSZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRvdGFsIG51bWJlciBvZiBhdmFpbGFibGUgcG9kcyAocmVhZHkgZm9yIGF0IGxlYXN0IG1pblJlYWR5U2Vjb25kcykgdGFyZ2V0ZWQgYnkgdGhpcyBkZXBsb3ltZW50LiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiY29sbGlzaW9uQ291bnQiOnsiZGVzY3JpcHRpb24iOiJDb3VudCBvZiBoYXNoIGNvbGxpc2lvbnMgZm9yIHRoZSBEZXBsb3ltZW50LiBUaGUgRGVwbG95bWVudCBjb250cm9sbGVyIHVzZXMgdGhpc1xuZmllbGQgYXMgYSBjb2xsaXNpb24gYXZvaWRhbmNlIG1lY2hhbmlzbSB3aGVuIGl0IG5lZWRzIHRvIGNyZWF0ZSB0aGUgbmFtZSBmb3IgdGhlXG5uZXdlc3QgUmVwbGljYVNldC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sImNvbmRpdGlvbnMiOnsiZGVzY3JpcHRpb24iOiJSZXByZXNlbnRzIHRoZSBsYXRlc3QgYXZhaWxhYmxlIG9ic2VydmF0aW9ucyBvZiBhIGRlcGxveW1lbnQncyBjdXJyZW50IHN0YXRlLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRGVwbG95bWVudENvbmRpdGlvbiBkZXNjcmliZXMgdGhlIHN0YXRlIG9mIGEgZGVwbG95bWVudCBhdCBhIGNlcnRhaW4gcG9pbnQuIiwicHJvcGVydGllcyI6eyJsYXN0VHJhbnNpdGlvblRpbWUiOnsiZGVzY3JpcHRpb24iOiJMYXN0IHRpbWUgdGhlIGNvbmRpdGlvbiB0cmFuc2l0aW9uZWQgZnJvbSBvbmUgc3RhdHVzIHRvIGFub3RoZXIuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwidHlwZSI6InN0cmluZyJ9LCJsYXN0VXBkYXRlVGltZSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYXN0IHRpbWUgdGhpcyBjb25kaXRpb24gd2FzIHVwZGF0ZWQuIiwiZm9ybWF0IjoiZGF0ZS10aW1lIiwidHlwZSI6InN0cmluZyJ9LCJtZXNzYWdlIjp7ImRlc2NyaXB0aW9uIjoiQSBodW1hbiByZWFkYWJsZSBtZXNzYWdlIGluZGljYXRpbmcgZGV0YWlscyBhYm91dCB0aGUgdHJhbnNpdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInJlYXNvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSByZWFzb24gZm9yIHRoZSBjb25kaXRpb24ncyBsYXN0IHRyYW5zaXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJzdGF0dXMiOnsiZGVzY3JpcHRpb24iOiJTdGF0dXMgb2YgdGhlIGNvbmRpdGlvbiwgb25lIG9mIFRydWUsIEZhbHNlLCBVbmtub3duLiIsInR5cGUiOiJzdHJpbmcifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6IlR5cGUgb2YgZGVwbG95bWVudCBjb25kaXRpb24uIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsic3RhdHVzIiwidHlwZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJvYnNlcnZlZEdlbmVyYXRpb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgZ2VuZXJhdGlvbiBvYnNlcnZlZCBieSB0aGUgZGVwbG95bWVudCBjb250cm9sbGVyLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwicmVhZHlSZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6InJlYWR5UmVwbGljYXMgaXMgdGhlIG51bWJlciBvZiBwb2RzIHRhcmdldGVkIGJ5IHRoaXMgRGVwbG95bWVudCB3aXRoIGEgUmVhZHkgQ29uZGl0aW9uLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwicmVwbGljYXMiOnsiZGVzY3JpcHRpb24iOiJUb3RhbCBudW1iZXIgb2Ygbm9uLXRlcm1pbmF0ZWQgcG9kcyB0YXJnZXRlZCBieSB0aGlzIGRlcGxveW1lbnQgKHRoZWlyIGxhYmVscyBtYXRjaCB0aGUgc2VsZWN0b3IpLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidW5hdmFpbGFibGVSZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRvdGFsIG51bWJlciBvZiB1bmF2YWlsYWJsZSBwb2RzIHRhcmdldGVkIGJ5IHRoaXMgZGVwbG95bWVudC4gVGhpcyBpcyB0aGUgdG90YWwgbnVtYmVyIG9mXG5wb2RzIHRoYXQgYXJlIHN0aWxsIHJlcXVpcmVkIGZvciB0aGUgZGVwbG95bWVudCB0byBoYXZlIDEwMCUgYXZhaWxhYmxlIGNhcGFjaXR5LiBUaGV5IG1heVxuZWl0aGVyIGJlIHBvZHMgdGhhdCBhcmUgcnVubmluZyBidXQgbm90IHlldCBhdmFpbGFibGUgb3IgcG9kcyB0aGF0IHN0aWxsIGhhdmUgbm90IGJlZW4gY3JlYXRlZC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInVwZGF0ZWRSZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6IlRvdGFsIG51bWJlciBvZiBub24tdGVybWluYXRlZCBwb2RzIHRhcmdldGVkIGJ5IHRoaXMgZGVwbG95bWVudCB0aGF0IGhhdmUgdGhlIGRlc2lyZWQgdGVtcGxhdGUgc3BlYy4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In19LCJzZXJ2ZWQiOnRydWUsInN0b3JhZ2UiOnRydWUsInN1YnJlc291cmNlcyI6eyJzdGF0dXMiOnt9fX1dfSwic3RhdHVzIjp7ImFjY2VwdGVkTmFtZXMiOnsia2luZCI6IiIsInBsdXJhbCI6IiJ9LCJjb25kaXRpb25zIjpudWxsLCJzdG9yZWRWZXJzaW9ucyI6bnVsbH19 +- type: olm.bundle.object + value: + data: eyJhcGlWZXJzaW9uIjoiYXBpZXh0ZW5zaW9ucy5rOHMuaW8vdjEiLCJraW5kIjoiQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uIiwibWV0YWRhdGEiOnsiYW5ub3RhdGlvbnMiOnsiY29udHJvbGxlci1nZW4ua3ViZWJ1aWxkZXIuaW8vdmVyc2lvbiI6InYwLjE0LjAifSwiY3JlYXRpb25UaW1lc3RhbXAiOm51bGwsIm5hbWUiOiJlbnZveWRlcGxveW1lbnRzLm9wZXJhdG9yLm1hcmluM3IuM3NjYWxlLm5ldCJ9LCJzcGVjIjp7Imdyb3VwIjoib3BlcmF0b3IubWFyaW4zci4zc2NhbGUubmV0IiwibmFtZXMiOnsia2luZCI6IkVudm95RGVwbG95bWVudCIsImxpc3RLaW5kIjoiRW52b3lEZXBsb3ltZW50TGlzdCIsInBsdXJhbCI6ImVudm95ZGVwbG95bWVudHMiLCJzaW5ndWxhciI6ImVudm95ZGVwbG95bWVudCJ9LCJzY29wZSI6Ik5hbWVzcGFjZWQiLCJ2ZXJzaW9ucyI6W3sibmFtZSI6InYxYWxwaGExIiwic2NoZW1hIjp7Im9wZW5BUElWM1NjaGVtYSI6eyJkZXNjcmlwdGlvbiI6IkVudm95RGVwbG95bWVudCBpcyBhIHJlc291cmNlIHRvIGRlcGxveSBhbmQgbWFuYWdlIGEgS3ViZXJuZXRlcyBEZXBsb3ltZW50XG5vZiBFbnZveSBQb2RzLiIsInByb3BlcnRpZXMiOnsiYXBpVmVyc2lvbiI6eyJkZXNjcmlwdGlvbiI6IkFQSVZlcnNpb24gZGVmaW5lcyB0aGUgdmVyc2lvbmVkIHNjaGVtYSBvZiB0aGlzIHJlcHJlc2VudGF0aW9uIG9mIGFuIG9iamVjdC5cblNlcnZlcnMgc2hvdWxkIGNvbnZlcnQgcmVjb2duaXplZCBzY2hlbWFzIHRvIHRoZSBsYXRlc3QgaW50ZXJuYWwgdmFsdWUsIGFuZFxubWF5IHJlamVjdCB1bnJlY29nbml6ZWQgdmFsdWVzLlxuTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCNyZXNvdXJjZXMiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJLaW5kIGlzIGEgc3RyaW5nIHZhbHVlIHJlcHJlc2VudGluZyB0aGUgUkVTVCByZXNvdXJjZSB0aGlzIG9iamVjdCByZXByZXNlbnRzLlxuU2VydmVycyBtYXkgaW5mZXIgdGhpcyBmcm9tIHRoZSBlbmRwb2ludCB0aGUgY2xpZW50IHN1Ym1pdHMgcmVxdWVzdHMgdG8uXG5DYW5ub3QgYmUgdXBkYXRlZC5cbkluIENhbWVsQ2FzZS5cbk1vcmUgaW5mbzogaHR0cHM6Ly9naXQuazhzLmlvL2NvbW11bml0eS9jb250cmlidXRvcnMvZGV2ZWwvc2lnLWFyY2hpdGVjdHVyZS9hcGktY29udmVudGlvbnMubWQjdHlwZXMta2luZHMiLCJ0eXBlIjoic3RyaW5nIn0sIm1ldGFkYXRhIjp7InR5cGUiOiJvYmplY3QifSwic3BlYyI6eyJkZXNjcmlwdGlvbiI6IkVudm95RGVwbG95bWVudFNwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBFbnZveURlcGxveW1lbnQiLCJwcm9wZXJ0aWVzIjp7ImFkbWluQWNjZXNzTG9nUGF0aCI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ3VyZXMgZW52b3kncyBhZG1pbiBhY2Nlc3MgbG9nIHBhdGguIERlZmF1bHRzIHRvIC9kZXYvbnVsbC4iLCJ0eXBlIjoic3RyaW5nIn0sImFkbWluUG9ydCI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ3VyZXMgZW52b3kncyBhZG1pbiBwb3J0LiBEZWZhdWx0cyB0byA5OTAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiYWZmaW5pdHkiOnsiZGVzY3JpcHRpb24iOiJBZmZpbml0eSBjb25maWd1cmF0aW9uIGZvciB0aGUgZW52b3kgcG9kcyIsInByb3BlcnRpZXMiOnsibm9kZUFmZmluaXR5Ijp7ImRlc2NyaXB0aW9uIjoiRGVzY3JpYmVzIG5vZGUgYWZmaW5pdHkgc2NoZWR1bGluZyBydWxlcyBmb3IgdGhlIHBvZC4iLCJwcm9wZXJ0aWVzIjp7InByZWZlcnJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHNjaGVkdWxlciB3aWxsIHByZWZlciB0byBzY2hlZHVsZSBwb2RzIHRvIG5vZGVzIHRoYXQgc2F0aXNmeVxudGhlIGFmZmluaXR5IGV4cHJlc3Npb25zIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkLCBidXQgaXQgbWF5IGNob29zZVxuYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzXG5tb3N0IHByZWZlcnJlZCBpcyB0aGUgb25lIHdpdGggdGhlIGdyZWF0ZXN0IHN1bSBvZiB3ZWlnaHRzLCBpLmUuXG5mb3IgZWFjaCBub2RlIHRoYXQgbWVldHMgYWxsIG9mIHRoZSBzY2hlZHVsaW5nIHJlcXVpcmVtZW50cyAocmVzb3VyY2VcbnJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhZmZpbml0eSBleHByZXNzaW9ucywgZXRjLiksXG5jb21wdXRlIGEgc3VtIGJ5IGl0ZXJhdGluZyB0aHJvdWdoIHRoZSBlbGVtZW50cyBvZiB0aGlzIGZpZWxkIGFuZCBhZGRpbmdcblwid2VpZ2h0XCIgdG8gdGhlIHN1bSBpZiB0aGUgbm9kZSBtYXRjaGVzIHRoZSBjb3JyZXNwb25kaW5nIG1hdGNoRXhwcmVzc2lvbnM7IHRoZVxubm9kZShzKSB3aXRoIHRoZSBoaWdoZXN0IHN1bSBhcmUgdGhlIG1vc3QgcHJlZmVycmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQW4gZW1wdHkgcHJlZmVycmVkIHNjaGVkdWxpbmcgdGVybSBtYXRjaGVzIGFsbCBvYmplY3RzIHdpdGggaW1wbGljaXQgd2VpZ2h0IDBcbihpLmUuIGl0J3MgYSBuby1vcCkuIEEgbnVsbCBwcmVmZXJyZWQgc2NoZWR1bGluZyB0ZXJtIG1hdGNoZXMgbm8gb2JqZWN0cyAoaS5lLiBpcyBhbHNvIGEgbm8tb3ApLiIsInByb3BlcnRpZXMiOnsicHJlZmVyZW5jZSI6eyJkZXNjcmlwdGlvbiI6IkEgbm9kZSBzZWxlY3RvciB0ZXJtLCBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgd2VpZ2h0LiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgbGFiZWxzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3JcbnRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsXG50aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlc1xuYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci5cblRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaEZpZWxkcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGlzdCBvZiBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50cyBieSBub2RlJ3MgZmllbGRzLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBub2RlIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3JcbnRoYXQgcmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6IlJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cywgRG9lc05vdEV4aXN0LiBHdCwgYW5kIEx0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoiQW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsXG50aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBHdCBvciBMdCwgdGhlIHZhbHVlc1xuYXJyYXkgbXVzdCBoYXZlIGEgc2luZ2xlIGVsZW1lbnQsIHdoaWNoIHdpbGwgYmUgaW50ZXJwcmV0ZWQgYXMgYW4gaW50ZWdlci5cblRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljIG1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJ3ZWlnaHQiOnsiZGVzY3JpcHRpb24iOiJXZWlnaHQgYXNzb2NpYXRlZCB3aXRoIG1hdGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIG5vZGVTZWxlY3RvclRlcm0sIGluIHRoZSByYW5nZSAxLTEwMC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJwcmVmZXJlbmNlIiwid2VpZ2h0Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGFyZSBub3QgbWV0IGF0XG5zY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuXG5JZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldFxuYXQgc29tZSBwb2ludCBkdXJpbmcgcG9kIGV4ZWN1dGlvbiAoZS5nLiBkdWUgdG8gYW4gdXBkYXRlKSwgdGhlIHN5c3RlbVxubWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLiIsInByb3BlcnRpZXMiOnsibm9kZVNlbGVjdG9yVGVybXMiOnsiZGVzY3JpcHRpb24iOiJSZXF1aXJlZC4gQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgdGVybXMuIFRoZSB0ZXJtcyBhcmUgT1JlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbnVsbCBvciBlbXB0eSBub2RlIHNlbGVjdG9yIHRlcm0gbWF0Y2hlcyBubyBvYmplY3RzLiBUaGUgcmVxdWlyZW1lbnRzIG9mXG50aGVtIGFyZSBBTkRlZC5cblRoZSBUb3BvbG9neVNlbGVjdG9yVGVybSB0eXBlIGltcGxlbWVudHMgYSBzdWJzZXQgb2YgdGhlIE5vZGVTZWxlY3RvclRlcm0uIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBsYWJlbHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvclxudGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuXG5WYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sXG50aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCxcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzXG5hcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLlxuVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoRmllbGRzIjp7ImRlc2NyaXB0aW9uIjoiQSBsaXN0IG9mIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnRzIGJ5IG5vZGUncyBmaWVsZHMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIG5vZGUgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvclxudGhhdCByZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuXG5WYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzLCBEb2VzTm90RXhpc3QuIEd0LCBhbmQgTHQuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJBbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sXG50aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCxcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEd0IG9yIEx0LCB0aGUgdmFsdWVzXG5hcnJheSBtdXN0IGhhdmUgYSBzaW5nbGUgZWxlbWVudCwgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZCBhcyBhbiBpbnRlZ2VyLlxuVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWMgbWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsibm9kZVNlbGVjdG9yVGVybXMiXSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9fSwidHlwZSI6Im9iamVjdCJ9LCJwb2RBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBwb2QgYWZmaW5pdHkgc2NoZWR1bGluZyBydWxlcyAoZS5nLiBjby1sb2NhdGUgdGhpcyBwb2QgaW4gdGhlIHNhbWUgbm9kZSwgem9uZSwgZXRjLiBhcyBzb21lIG90aGVyIHBvZChzKSkuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnlcbnRoZSBhZmZpbml0eSBleHByZXNzaW9ucyBzcGVjaWZpZWQgYnkgdGhpcyBmaWVsZCwgYnV0IGl0IG1heSBjaG9vc2VcbmEgbm9kZSB0aGF0IHZpb2xhdGVzIG9uZSBvciBtb3JlIG9mIHRoZSBleHByZXNzaW9ucy4gVGhlIG5vZGUgdGhhdCBpc1xubW9zdCBwcmVmZXJyZWQgaXMgdGhlIG9uZSB3aXRoIHRoZSBncmVhdGVzdCBzdW0gb2Ygd2VpZ2h0cywgaS5lLlxuZm9yIGVhY2ggbm9kZSB0aGF0IG1lZXRzIGFsbCBvZiB0aGUgc2NoZWR1bGluZyByZXF1aXJlbWVudHMgKHJlc291cmNlXG5yZXF1ZXN0LCByZXF1aXJlZER1cmluZ1NjaGVkdWxpbmcgYWZmaW5pdHkgZXhwcmVzc2lvbnMsIGV0Yy4pLFxuY29tcHV0ZSBhIHN1bSBieSBpdGVyYXRpbmcgdGhyb3VnaCB0aGUgZWxlbWVudHMgb2YgdGhpcyBmaWVsZCBhbmQgYWRkaW5nXG5cIndlaWdodFwiIHRvIHRoZSBzdW0gaWYgdGhlIG5vZGUgaGFzIHBvZHMgd2hpY2ggbWF0Y2hlcyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm07IHRoZVxubm9kZShzKSB3aXRoIHRoZSBoaWdoZXN0IHN1bSBhcmUgdGhlIG1vc3QgcHJlZmVycmVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHdlaWdodHMgb2YgYWxsIG9mIHRoZSBtYXRjaGVkIFdlaWdodGVkUG9kQWZmaW5pdHlUZXJtIGZpZWxkcyBhcmUgYWRkZWQgcGVyLW5vZGUgdG8gZmluZCB0aGUgbW9zdCBwcmVmZXJyZWQgbm9kZShzKSIsInByb3BlcnRpZXMiOnsicG9kQWZmaW5pdHlUZXJtIjp7ImRlc2NyaXB0aW9uIjoiUmVxdWlyZWQuIEEgcG9kIGFmZmluaXR5IHRlcm0sIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29ycmVzcG9uZGluZyB3ZWlnaHQuIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuXG5JZiBpdCdzIG51bGwsIHRoaXMgUG9kQWZmaW5pdHlUZXJtIG1hdGNoZXMgd2l0aCBubyBQb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdFxucmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy5cblZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sXG50aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCxcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWNcbm1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVsc1xubWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlXG5vcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sIm1hdGNoTGFiZWxLZXlzIjp7ImRlc2NyaXB0aW9uIjoiTWF0Y2hMYWJlbEtleXMgaXMgYSBzZXQgb2YgcG9kIGxhYmVsIGtleXMgdG8gc2VsZWN0IHdoaWNoIHBvZHMgd2lsbFxuYmUgdGFrZW4gaW50byBjb25zaWRlcmF0aW9uLiBUaGUga2V5cyBhcmUgdXNlZCB0byBsb29rdXAgdmFsdWVzIGZyb20gdGhlXG5pbmNvbWluZyBwb2QgbGFiZWxzLCB0aG9zZSBrZXktdmFsdWUgbGFiZWxzIGFyZSBtZXJnZWQgd2l0aCBgTGFiZWxTZWxlY3RvcmAgYXMgYGtleSBpbiAodmFsdWUpYFxudG8gc2VsZWN0IHRoZSBncm91cCBvZiBleGlzdGluZyBwb2RzIHdoaWNoIHBvZHMgd2lsbCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb25cbmZvciB0aGUgaW5jb21pbmcgcG9kJ3MgcG9kIChhbnRpKSBhZmZpbml0eS4gS2V5cyB0aGF0IGRvbid0IGV4aXN0IGluIHRoZSBpbmNvbWluZ1xucG9kIGxhYmVscyB3aWxsIGJlIGlnbm9yZWQuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGVtcHR5LlxuVGhlIHNhbWUga2V5IGlzIGZvcmJpZGRlbiB0byBleGlzdCBpbiBib3RoIE1hdGNoTGFiZWxLZXlzIGFuZCBMYWJlbFNlbGVjdG9yLlxuQWxzbywgTWF0Y2hMYWJlbEtleXMgY2Fubm90IGJlIHNldCB3aGVuIExhYmVsU2VsZWN0b3IgaXNuJ3Qgc2V0LlxuVGhpcyBpcyBhbiBhbHBoYSBmaWVsZCBhbmQgcmVxdWlyZXMgZW5hYmxpbmcgTWF0Y2hMYWJlbEtleXNJblBvZEFmZmluaXR5IGZlYXR1cmUgZ2F0ZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJhdG9taWMifSwibWlzbWF0Y2hMYWJlbEtleXMiOnsiZGVzY3JpcHRpb24iOiJNaXNtYXRjaExhYmVsS2V5cyBpcyBhIHNldCBvZiBwb2QgbGFiZWwga2V5cyB0byBzZWxlY3Qgd2hpY2ggcG9kcyB3aWxsXG5iZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24uIFRoZSBrZXlzIGFyZSB1c2VkIHRvIGxvb2t1cCB2YWx1ZXMgZnJvbSB0aGVcbmluY29taW5nIHBvZCBsYWJlbHMsIHRob3NlIGtleS12YWx1ZSBsYWJlbHMgYXJlIG1lcmdlZCB3aXRoIGBMYWJlbFNlbGVjdG9yYCBhcyBga2V5IG5vdGluICh2YWx1ZSlgXG50byBzZWxlY3QgdGhlIGdyb3VwIG9mIGV4aXN0aW5nIHBvZHMgd2hpY2ggcG9kcyB3aWxsIGJlIHRha2VuIGludG8gY29uc2lkZXJhdGlvblxuZm9yIHRoZSBpbmNvbWluZyBwb2QncyBwb2QgKGFudGkpIGFmZmluaXR5LiBLZXlzIHRoYXQgZG9uJ3QgZXhpc3QgaW4gdGhlIGluY29taW5nXG5wb2QgbGFiZWxzIHdpbGwgYmUgaWdub3JlZC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZW1wdHkuXG5UaGUgc2FtZSBrZXkgaXMgZm9yYmlkZGVuIHRvIGV4aXN0IGluIGJvdGggTWlzbWF0Y2hMYWJlbEtleXMgYW5kIExhYmVsU2VsZWN0b3IuXG5BbHNvLCBNaXNtYXRjaExhYmVsS2V5cyBjYW5ub3QgYmUgc2V0IHdoZW4gTGFiZWxTZWxlY3RvciBpc24ndCBzZXQuXG5UaGlzIGlzIGFuIGFscGhhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyBNYXRjaExhYmVsS2V5c0luUG9kQWZmaW5pdHkgZmVhdHVyZSBnYXRlLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6ImF0b21pYyJ9LCJuYW1lc3BhY2VTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciB0aGUgc2V0IG9mIG5hbWVzcGFjZXMgdGhhdCB0aGUgdGVybSBhcHBsaWVzIHRvLlxuVGhlIHRlcm0gaXMgYXBwbGllZCB0byB0aGUgdW5pb24gb2YgdGhlIG5hbWVzcGFjZXMgc2VsZWN0ZWQgYnkgdGhpcyBmaWVsZFxuYW5kIHRoZSBvbmVzIGxpc3RlZCBpbiB0aGUgbmFtZXNwYWNlcyBmaWVsZC5cbm51bGwgc2VsZWN0b3IgYW5kIG51bGwgb3IgZW1wdHkgbmFtZXNwYWNlcyBsaXN0IG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIi5cbkFuIGVtcHR5IHNlbGVjdG9yICh7fSkgbWF0Y2hlcyBhbGwgbmFtZXNwYWNlcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXRcbnJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuXG5WYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsXG50aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljXG5tZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHNcbm1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZVxub3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgYSBzdGF0aWMgbGlzdCBvZiBuYW1lc3BhY2UgbmFtZXMgdGhhdCB0aGUgdGVybSBhcHBsaWVzIHRvLlxuVGhlIHRlcm0gaXMgYXBwbGllZCB0byB0aGUgdW5pb24gb2YgdGhlIG5hbWVzcGFjZXMgbGlzdGVkIGluIHRoaXMgZmllbGRcbmFuZCB0aGUgb25lcyBzZWxlY3RlZCBieSBuYW1lc3BhY2VTZWxlY3Rvci5cbm51bGwgb3IgZW1wdHkgbmFtZXNwYWNlcyBsaXN0IGFuZCBudWxsIG5hbWVzcGFjZVNlbGVjdG9yIG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIi4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmdcbnRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlXG53aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGVcbnNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy5cbkVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwid2VpZ2h0Ijp7ImRlc2NyaXB0aW9uIjoid2VpZ2h0IGFzc29jaWF0ZWQgd2l0aCBtYXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBwb2RBZmZpbml0eVRlcm0sXG5pbiB0aGUgcmFuZ2UgMS0xMDAuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsicG9kQWZmaW5pdHlUZXJtIiwid2VpZ2h0Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZ0lnbm9yZWREdXJpbmdFeGVjdXRpb24iOnsiZGVzY3JpcHRpb24iOiJJZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGFyZSBub3QgbWV0IGF0XG5zY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuXG5JZiB0aGUgYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGNlYXNlIHRvIGJlIG1ldFxuYXQgc29tZSBwb2ludCBkdXJpbmcgcG9kIGV4ZWN1dGlvbiAoZS5nLiBkdWUgdG8gYSBwb2QgbGFiZWwgdXBkYXRlKSwgdGhlXG5zeXN0ZW0gbWF5IG9yIG1heSBub3QgdHJ5IHRvIGV2ZW50dWFsbHkgZXZpY3QgdGhlIHBvZCBmcm9tIGl0cyBub2RlLlxuV2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgZWxlbWVudHMsIHRoZSBsaXN0cyBvZiBub2RlcyBjb3JyZXNwb25kaW5nIHRvIGVhY2hcbnBvZEFmZmluaXR5VGVybSBhcmUgaW50ZXJzZWN0ZWQsIGkuZS4gYWxsIHRlcm1zIG11c3QgYmUgc2F0aXNmaWVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiRGVmaW5lcyBhIHNldCBvZiBwb2RzIChuYW1lbHkgdGhvc2UgbWF0Y2hpbmcgdGhlIGxhYmVsU2VsZWN0b3JcbnJlbGF0aXZlIHRvIHRoZSBnaXZlbiBuYW1lc3BhY2UocykpIHRoYXQgdGhpcyBwb2Qgc2hvdWxkIGJlXG5jby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGgsXG53aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGUgd2hvc2UgdmFsdWUgb2ZcbnRoZSBsYWJlbCB3aXRoIGtleSBcdTAwM2N0b3BvbG9neUtleVx1MDAzZSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2hcbmEgcG9kIG9mIHRoZSBzZXQgb2YgcG9kcyBpcyBydW5uaW5nIiwicHJvcGVydGllcyI6eyJsYWJlbFNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIGEgc2V0IG9mIHJlc291cmNlcywgaW4gdGhpcyBjYXNlIHBvZHMuXG5JZiBpdCdzIG51bGwsIHRoaXMgUG9kQWZmaW5pdHlUZXJtIG1hdGNoZXMgd2l0aCBubyBQb2RzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdFxucmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy5cblZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sXG50aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCxcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWNcbm1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVsc1xubWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlXG5vcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sIm1hdGNoTGFiZWxLZXlzIjp7ImRlc2NyaXB0aW9uIjoiTWF0Y2hMYWJlbEtleXMgaXMgYSBzZXQgb2YgcG9kIGxhYmVsIGtleXMgdG8gc2VsZWN0IHdoaWNoIHBvZHMgd2lsbFxuYmUgdGFrZW4gaW50byBjb25zaWRlcmF0aW9uLiBUaGUga2V5cyBhcmUgdXNlZCB0byBsb29rdXAgdmFsdWVzIGZyb20gdGhlXG5pbmNvbWluZyBwb2QgbGFiZWxzLCB0aG9zZSBrZXktdmFsdWUgbGFiZWxzIGFyZSBtZXJnZWQgd2l0aCBgTGFiZWxTZWxlY3RvcmAgYXMgYGtleSBpbiAodmFsdWUpYFxudG8gc2VsZWN0IHRoZSBncm91cCBvZiBleGlzdGluZyBwb2RzIHdoaWNoIHBvZHMgd2lsbCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb25cbmZvciB0aGUgaW5jb21pbmcgcG9kJ3MgcG9kIChhbnRpKSBhZmZpbml0eS4gS2V5cyB0aGF0IGRvbid0IGV4aXN0IGluIHRoZSBpbmNvbWluZ1xucG9kIGxhYmVscyB3aWxsIGJlIGlnbm9yZWQuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGVtcHR5LlxuVGhlIHNhbWUga2V5IGlzIGZvcmJpZGRlbiB0byBleGlzdCBpbiBib3RoIE1hdGNoTGFiZWxLZXlzIGFuZCBMYWJlbFNlbGVjdG9yLlxuQWxzbywgTWF0Y2hMYWJlbEtleXMgY2Fubm90IGJlIHNldCB3aGVuIExhYmVsU2VsZWN0b3IgaXNuJ3Qgc2V0LlxuVGhpcyBpcyBhbiBhbHBoYSBmaWVsZCBhbmQgcmVxdWlyZXMgZW5hYmxpbmcgTWF0Y2hMYWJlbEtleXNJblBvZEFmZmluaXR5IGZlYXR1cmUgZ2F0ZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJhdG9taWMifSwibWlzbWF0Y2hMYWJlbEtleXMiOnsiZGVzY3JpcHRpb24iOiJNaXNtYXRjaExhYmVsS2V5cyBpcyBhIHNldCBvZiBwb2QgbGFiZWwga2V5cyB0byBzZWxlY3Qgd2hpY2ggcG9kcyB3aWxsXG5iZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24uIFRoZSBrZXlzIGFyZSB1c2VkIHRvIGxvb2t1cCB2YWx1ZXMgZnJvbSB0aGVcbmluY29taW5nIHBvZCBsYWJlbHMsIHRob3NlIGtleS12YWx1ZSBsYWJlbHMgYXJlIG1lcmdlZCB3aXRoIGBMYWJlbFNlbGVjdG9yYCBhcyBga2V5IG5vdGluICh2YWx1ZSlgXG50byBzZWxlY3QgdGhlIGdyb3VwIG9mIGV4aXN0aW5nIHBvZHMgd2hpY2ggcG9kcyB3aWxsIGJlIHRha2VuIGludG8gY29uc2lkZXJhdGlvblxuZm9yIHRoZSBpbmNvbWluZyBwb2QncyBwb2QgKGFudGkpIGFmZmluaXR5LiBLZXlzIHRoYXQgZG9uJ3QgZXhpc3QgaW4gdGhlIGluY29taW5nXG5wb2QgbGFiZWxzIHdpbGwgYmUgaWdub3JlZC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZW1wdHkuXG5UaGUgc2FtZSBrZXkgaXMgZm9yYmlkZGVuIHRvIGV4aXN0IGluIGJvdGggTWlzbWF0Y2hMYWJlbEtleXMgYW5kIExhYmVsU2VsZWN0b3IuXG5BbHNvLCBNaXNtYXRjaExhYmVsS2V5cyBjYW5ub3QgYmUgc2V0IHdoZW4gTGFiZWxTZWxlY3RvciBpc24ndCBzZXQuXG5UaGlzIGlzIGFuIGFscGhhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyBNYXRjaExhYmVsS2V5c0luUG9kQWZmaW5pdHkgZmVhdHVyZSBnYXRlLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6ImF0b21pYyJ9LCJuYW1lc3BhY2VTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciB0aGUgc2V0IG9mIG5hbWVzcGFjZXMgdGhhdCB0aGUgdGVybSBhcHBsaWVzIHRvLlxuVGhlIHRlcm0gaXMgYXBwbGllZCB0byB0aGUgdW5pb24gb2YgdGhlIG5hbWVzcGFjZXMgc2VsZWN0ZWQgYnkgdGhpcyBmaWVsZFxuYW5kIHRoZSBvbmVzIGxpc3RlZCBpbiB0aGUgbmFtZXNwYWNlcyBmaWVsZC5cbm51bGwgc2VsZWN0b3IgYW5kIG51bGwgb3IgZW1wdHkgbmFtZXNwYWNlcyBsaXN0IG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIi5cbkFuIGVtcHR5IHNlbGVjdG9yICh7fSkgbWF0Y2hlcyBhbGwgbmFtZXNwYWNlcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXRcbnJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuXG5WYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsXG50aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljXG5tZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHNcbm1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZVxub3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJuYW1lc3BhY2VzIjp7ImRlc2NyaXB0aW9uIjoibmFtZXNwYWNlcyBzcGVjaWZpZXMgYSBzdGF0aWMgbGlzdCBvZiBuYW1lc3BhY2UgbmFtZXMgdGhhdCB0aGUgdGVybSBhcHBsaWVzIHRvLlxuVGhlIHRlcm0gaXMgYXBwbGllZCB0byB0aGUgdW5pb24gb2YgdGhlIG5hbWVzcGFjZXMgbGlzdGVkIGluIHRoaXMgZmllbGRcbmFuZCB0aGUgb25lcyBzZWxlY3RlZCBieSBuYW1lc3BhY2VTZWxlY3Rvci5cbm51bGwgb3IgZW1wdHkgbmFtZXNwYWNlcyBsaXN0IGFuZCBudWxsIG5hbWVzcGFjZVNlbGVjdG9yIG1lYW5zIFwidGhpcyBwb2QncyBuYW1lc3BhY2VcIi4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9LCJ0b3BvbG9neUtleSI6eyJkZXNjcmlwdGlvbiI6IlRoaXMgcG9kIHNob3VsZCBiZSBjby1sb2NhdGVkIChhZmZpbml0eSkgb3Igbm90IGNvLWxvY2F0ZWQgKGFudGktYWZmaW5pdHkpIHdpdGggdGhlIHBvZHMgbWF0Y2hpbmdcbnRoZSBsYWJlbFNlbGVjdG9yIGluIHRoZSBzcGVjaWZpZWQgbmFtZXNwYWNlcywgd2hlcmUgY28tbG9jYXRlZCBpcyBkZWZpbmVkIGFzIHJ1bm5pbmcgb24gYSBub2RlXG53aG9zZSB2YWx1ZSBvZiB0aGUgbGFiZWwgd2l0aCBrZXkgdG9wb2xvZ3lLZXkgbWF0Y2hlcyB0aGF0IG9mIGFueSBub2RlIG9uIHdoaWNoIGFueSBvZiB0aGVcbnNlbGVjdGVkIHBvZHMgaXMgcnVubmluZy5cbkVtcHR5IHRvcG9sb2d5S2V5IGlzIG5vdCBhbGxvd2VkLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInRvcG9sb2d5S2V5Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In19LCJ0eXBlIjoib2JqZWN0In0sInBvZEFudGlBZmZpbml0eSI6eyJkZXNjcmlwdGlvbiI6IkRlc2NyaWJlcyBwb2QgYW50aS1hZmZpbml0eSBzY2hlZHVsaW5nIHJ1bGVzIChlLmcuIGF2b2lkIHB1dHRpbmcgdGhpcyBwb2QgaW4gdGhlIHNhbWUgbm9kZSwgem9uZSwgZXRjLiBhcyBzb21lIG90aGVyIHBvZChzKSkuIiwicHJvcGVydGllcyI6eyJwcmVmZXJyZWREdXJpbmdTY2hlZHVsaW5nSWdub3JlZER1cmluZ0V4ZWN1dGlvbiI6eyJkZXNjcmlwdGlvbiI6IlRoZSBzY2hlZHVsZXIgd2lsbCBwcmVmZXIgdG8gc2NoZWR1bGUgcG9kcyB0byBub2RlcyB0aGF0IHNhdGlzZnlcbnRoZSBhbnRpLWFmZmluaXR5IGV4cHJlc3Npb25zIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkLCBidXQgaXQgbWF5IGNob29zZVxuYSBub2RlIHRoYXQgdmlvbGF0ZXMgb25lIG9yIG1vcmUgb2YgdGhlIGV4cHJlc3Npb25zLiBUaGUgbm9kZSB0aGF0IGlzXG5tb3N0IHByZWZlcnJlZCBpcyB0aGUgb25lIHdpdGggdGhlIGdyZWF0ZXN0IHN1bSBvZiB3ZWlnaHRzLCBpLmUuXG5mb3IgZWFjaCBub2RlIHRoYXQgbWVldHMgYWxsIG9mIHRoZSBzY2hlZHVsaW5nIHJlcXVpcmVtZW50cyAocmVzb3VyY2VcbnJlcXVlc3QsIHJlcXVpcmVkRHVyaW5nU2NoZWR1bGluZyBhbnRpLWFmZmluaXR5IGV4cHJlc3Npb25zLCBldGMuKSxcbmNvbXB1dGUgYSBzdW0gYnkgaXRlcmF0aW5nIHRocm91Z2ggdGhlIGVsZW1lbnRzIG9mIHRoaXMgZmllbGQgYW5kIGFkZGluZ1xuXCJ3ZWlnaHRcIiB0byB0aGUgc3VtIGlmIHRoZSBub2RlIGhhcyBwb2RzIHdoaWNoIG1hdGNoZXMgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtOyB0aGVcbm5vZGUocykgd2l0aCB0aGUgaGlnaGVzdCBzdW0gYXJlIHRoZSBtb3N0IHByZWZlcnJlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IlRoZSB3ZWlnaHRzIG9mIGFsbCBvZiB0aGUgbWF0Y2hlZCBXZWlnaHRlZFBvZEFmZmluaXR5VGVybSBmaWVsZHMgYXJlIGFkZGVkIHBlci1ub2RlIHRvIGZpbmQgdGhlIG1vc3QgcHJlZmVycmVkIG5vZGUocykiLCJwcm9wZXJ0aWVzIjp7InBvZEFmZmluaXR5VGVybSI6eyJkZXNjcmlwdGlvbiI6IlJlcXVpcmVkLiBBIHBvZCBhZmZpbml0eSB0ZXJtLCBhc3NvY2lhdGVkIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgd2VpZ2h0LiIsInByb3BlcnRpZXMiOnsibGFiZWxTZWxlY3RvciI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgcXVlcnkgb3ZlciBhIHNldCBvZiByZXNvdXJjZXMsIGluIHRoaXMgY2FzZSBwb2RzLlxuSWYgaXQncyBudWxsLCB0aGlzIFBvZEFmZmluaXR5VGVybSBtYXRjaGVzIHdpdGggbm8gUG9kcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXRcbnJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuXG5WYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsXG50aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljXG5tZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHNcbm1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZVxub3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9LCJtYXRjaExhYmVsS2V5cyI6eyJkZXNjcmlwdGlvbiI6Ik1hdGNoTGFiZWxLZXlzIGlzIGEgc2V0IG9mIHBvZCBsYWJlbCBrZXlzIHRvIHNlbGVjdCB3aGljaCBwb2RzIHdpbGxcbmJlIHRha2VuIGludG8gY29uc2lkZXJhdGlvbi4gVGhlIGtleXMgYXJlIHVzZWQgdG8gbG9va3VwIHZhbHVlcyBmcm9tIHRoZVxuaW5jb21pbmcgcG9kIGxhYmVscywgdGhvc2Uga2V5LXZhbHVlIGxhYmVscyBhcmUgbWVyZ2VkIHdpdGggYExhYmVsU2VsZWN0b3JgIGFzIGBrZXkgaW4gKHZhbHVlKWBcbnRvIHNlbGVjdCB0aGUgZ3JvdXAgb2YgZXhpc3RpbmcgcG9kcyB3aGljaCBwb2RzIHdpbGwgYmUgdGFrZW4gaW50byBjb25zaWRlcmF0aW9uXG5mb3IgdGhlIGluY29taW5nIHBvZCdzIHBvZCAoYW50aSkgYWZmaW5pdHkuIEtleXMgdGhhdCBkb24ndCBleGlzdCBpbiB0aGUgaW5jb21pbmdcbnBvZCBsYWJlbHMgd2lsbCBiZSBpZ25vcmVkLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBlbXB0eS5cblRoZSBzYW1lIGtleSBpcyBmb3JiaWRkZW4gdG8gZXhpc3QgaW4gYm90aCBNYXRjaExhYmVsS2V5cyBhbmQgTGFiZWxTZWxlY3Rvci5cbkFsc28sIE1hdGNoTGFiZWxLZXlzIGNhbm5vdCBiZSBzZXQgd2hlbiBMYWJlbFNlbGVjdG9yIGlzbid0IHNldC5cblRoaXMgaXMgYW4gYWxwaGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIE1hdGNoTGFiZWxLZXlzSW5Qb2RBZmZpbml0eSBmZWF0dXJlIGdhdGUuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoiYXRvbWljIn0sIm1pc21hdGNoTGFiZWxLZXlzIjp7ImRlc2NyaXB0aW9uIjoiTWlzbWF0Y2hMYWJlbEtleXMgaXMgYSBzZXQgb2YgcG9kIGxhYmVsIGtleXMgdG8gc2VsZWN0IHdoaWNoIHBvZHMgd2lsbFxuYmUgdGFrZW4gaW50byBjb25zaWRlcmF0aW9uLiBUaGUga2V5cyBhcmUgdXNlZCB0byBsb29rdXAgdmFsdWVzIGZyb20gdGhlXG5pbmNvbWluZyBwb2QgbGFiZWxzLCB0aG9zZSBrZXktdmFsdWUgbGFiZWxzIGFyZSBtZXJnZWQgd2l0aCBgTGFiZWxTZWxlY3RvcmAgYXMgYGtleSBub3RpbiAodmFsdWUpYFxudG8gc2VsZWN0IHRoZSBncm91cCBvZiBleGlzdGluZyBwb2RzIHdoaWNoIHBvZHMgd2lsbCBiZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb25cbmZvciB0aGUgaW5jb21pbmcgcG9kJ3MgcG9kIChhbnRpKSBhZmZpbml0eS4gS2V5cyB0aGF0IGRvbid0IGV4aXN0IGluIHRoZSBpbmNvbWluZ1xucG9kIGxhYmVscyB3aWxsIGJlIGlnbm9yZWQuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGVtcHR5LlxuVGhlIHNhbWUga2V5IGlzIGZvcmJpZGRlbiB0byBleGlzdCBpbiBib3RoIE1pc21hdGNoTGFiZWxLZXlzIGFuZCBMYWJlbFNlbGVjdG9yLlxuQWxzbywgTWlzbWF0Y2hMYWJlbEtleXMgY2Fubm90IGJlIHNldCB3aGVuIExhYmVsU2VsZWN0b3IgaXNuJ3Qgc2V0LlxuVGhpcyBpcyBhbiBhbHBoYSBmaWVsZCBhbmQgcmVxdWlyZXMgZW5hYmxpbmcgTWF0Y2hMYWJlbEtleXNJblBvZEFmZmluaXR5IGZlYXR1cmUgZ2F0ZS4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LXR5cGUiOiJhdG9taWMifSwibmFtZXNwYWNlU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgdGhlIHNldCBvZiBuYW1lc3BhY2VzIHRoYXQgdGhlIHRlcm0gYXBwbGllcyB0by5cblRoZSB0ZXJtIGlzIGFwcGxpZWQgdG8gdGhlIHVuaW9uIG9mIHRoZSBuYW1lc3BhY2VzIHNlbGVjdGVkIGJ5IHRoaXMgZmllbGRcbmFuZCB0aGUgb25lcyBsaXN0ZWQgaW4gdGhlIG5hbWVzcGFjZXMgZmllbGQuXG5udWxsIHNlbGVjdG9yIGFuZCBudWxsIG9yIGVtcHR5IG5hbWVzcGFjZXMgbGlzdCBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIuXG5BbiBlbXB0eSBzZWxlY3RvciAoe30pIG1hdGNoZXMgYWxsIG5hbWVzcGFjZXMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0XG5yZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbixcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpY1xubWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzXG5tYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGVcbm9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwibmFtZXNwYWNlcyI6eyJkZXNjcmlwdGlvbiI6Im5hbWVzcGFjZXMgc3BlY2lmaWVzIGEgc3RhdGljIGxpc3Qgb2YgbmFtZXNwYWNlIG5hbWVzIHRoYXQgdGhlIHRlcm0gYXBwbGllcyB0by5cblRoZSB0ZXJtIGlzIGFwcGxpZWQgdG8gdGhlIHVuaW9uIG9mIHRoZSBuYW1lc3BhY2VzIGxpc3RlZCBpbiB0aGlzIGZpZWxkXG5hbmQgdGhlIG9uZXMgc2VsZWN0ZWQgYnkgbmFtZXNwYWNlU2VsZWN0b3IuXG5udWxsIG9yIGVtcHR5IG5hbWVzcGFjZXMgbGlzdCBhbmQgbnVsbCBuYW1lc3BhY2VTZWxlY3RvciBtZWFucyBcInRoaXMgcG9kJ3MgbmFtZXNwYWNlXCIuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwidG9wb2xvZ3lLZXkiOnsiZGVzY3JpcHRpb24iOiJUaGlzIHBvZCBzaG91bGQgYmUgY28tbG9jYXRlZCAoYWZmaW5pdHkpIG9yIG5vdCBjby1sb2NhdGVkIChhbnRpLWFmZmluaXR5KSB3aXRoIHRoZSBwb2RzIG1hdGNoaW5nXG50aGUgbGFiZWxTZWxlY3RvciBpbiB0aGUgc3BlY2lmaWVkIG5hbWVzcGFjZXMsIHdoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZVxud2hvc2UgdmFsdWUgb2YgdGhlIGxhYmVsIHdpdGgga2V5IHRvcG9sb2d5S2V5IG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaCBhbnkgb2YgdGhlXG5zZWxlY3RlZCBwb2RzIGlzIHJ1bm5pbmcuXG5FbXB0eSB0b3BvbG9neUtleSBpcyBub3QgYWxsb3dlZC4iLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0b3BvbG9neUtleSJdLCJ0eXBlIjoib2JqZWN0In0sIndlaWdodCI6eyJkZXNjcmlwdGlvbiI6IndlaWdodCBhc3NvY2lhdGVkIHdpdGggbWF0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcgcG9kQWZmaW5pdHlUZXJtLFxuaW4gdGhlIHJhbmdlIDEtMTAwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInJlcXVpcmVkIjpbInBvZEFmZmluaXR5VGVybSIsIndlaWdodCJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJyZXF1aXJlZER1cmluZ1NjaGVkdWxpbmdJZ25vcmVkRHVyaW5nRXhlY3V0aW9uIjp7ImRlc2NyaXB0aW9uIjoiSWYgdGhlIGFudGktYWZmaW5pdHkgcmVxdWlyZW1lbnRzIHNwZWNpZmllZCBieSB0aGlzIGZpZWxkIGFyZSBub3QgbWV0IGF0XG5zY2hlZHVsaW5nIHRpbWUsIHRoZSBwb2Qgd2lsbCBub3QgYmUgc2NoZWR1bGVkIG9udG8gdGhlIG5vZGUuXG5JZiB0aGUgYW50aS1hZmZpbml0eSByZXF1aXJlbWVudHMgc3BlY2lmaWVkIGJ5IHRoaXMgZmllbGQgY2Vhc2UgdG8gYmUgbWV0XG5hdCBzb21lIHBvaW50IGR1cmluZyBwb2QgZXhlY3V0aW9uIChlLmcuIGR1ZSB0byBhIHBvZCBsYWJlbCB1cGRhdGUpLCB0aGVcbnN5c3RlbSBtYXkgb3IgbWF5IG5vdCB0cnkgdG8gZXZlbnR1YWxseSBldmljdCB0aGUgcG9kIGZyb20gaXRzIG5vZGUuXG5XaGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBlbGVtZW50cywgdGhlIGxpc3RzIG9mIG5vZGVzIGNvcnJlc3BvbmRpbmcgdG8gZWFjaFxucG9kQWZmaW5pdHlUZXJtIGFyZSBpbnRlcnNlY3RlZCwgaS5lLiBhbGwgdGVybXMgbXVzdCBiZSBzYXRpc2ZpZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJEZWZpbmVzIGEgc2V0IG9mIHBvZHMgKG5hbWVseSB0aG9zZSBtYXRjaGluZyB0aGUgbGFiZWxTZWxlY3RvclxucmVsYXRpdmUgdG8gdGhlIGdpdmVuIG5hbWVzcGFjZShzKSkgdGhhdCB0aGlzIHBvZCBzaG91bGQgYmVcbmNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCxcbndoZXJlIGNvLWxvY2F0ZWQgaXMgZGVmaW5lZCBhcyBydW5uaW5nIG9uIGEgbm9kZSB3aG9zZSB2YWx1ZSBvZlxudGhlIGxhYmVsIHdpdGgga2V5IFx1MDAzY3RvcG9sb2d5S2V5XHUwMDNlIG1hdGNoZXMgdGhhdCBvZiBhbnkgbm9kZSBvbiB3aGljaFxuYSBwb2Qgb2YgdGhlIHNldCBvZiBwb2RzIGlzIHJ1bm5pbmciLCJwcm9wZXJ0aWVzIjp7ImxhYmVsU2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHF1ZXJ5IG92ZXIgYSBzZXQgb2YgcmVzb3VyY2VzLCBpbiB0aGlzIGNhc2UgcG9kcy5cbklmIGl0J3MgbnVsbCwgdGhpcyBQb2RBZmZpbml0eVRlcm0gbWF0Y2hlcyB3aXRoIG5vIFBvZHMuIiwicHJvcGVydGllcyI6eyJtYXRjaEV4cHJlc3Npb25zIjp7ImRlc2NyaXB0aW9uIjoibWF0Y2hFeHByZXNzaW9ucyBpcyBhIGxpc3Qgb2YgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnRzLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkEgbGFiZWwgc2VsZWN0b3IgcmVxdWlyZW1lbnQgaXMgYSBzZWxlY3RvciB0aGF0IGNvbnRhaW5zIHZhbHVlcywgYSBrZXksIGFuZCBhbiBvcGVyYXRvciB0aGF0XG5yZWxhdGVzIHRoZSBrZXkgYW5kIHZhbHVlcy4iLCJwcm9wZXJ0aWVzIjp7ImtleSI6eyJkZXNjcmlwdGlvbiI6ImtleSBpcyB0aGUgbGFiZWwga2V5IHRoYXQgdGhlIHNlbGVjdG9yIGFwcGxpZXMgdG8uIiwidHlwZSI6InN0cmluZyJ9LCJvcGVyYXRvciI6eyJkZXNjcmlwdGlvbiI6Im9wZXJhdG9yIHJlcHJlc2VudHMgYSBrZXkncyByZWxhdGlvbnNoaXAgdG8gYSBzZXQgb2YgdmFsdWVzLlxuVmFsaWQgb3BlcmF0b3JzIGFyZSBJbiwgTm90SW4sIEV4aXN0cyBhbmQgRG9lc05vdEV4aXN0LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWVzIjp7ImRlc2NyaXB0aW9uIjoidmFsdWVzIGlzIGFuIGFycmF5IG9mIHN0cmluZyB2YWx1ZXMuIElmIHRoZSBvcGVyYXRvciBpcyBJbiBvciBOb3RJbixcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBub24tZW1wdHkuIElmIHRoZSBvcGVyYXRvciBpcyBFeGlzdHMgb3IgRG9lc05vdEV4aXN0LFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIGVtcHR5LiBUaGlzIGFycmF5IGlzIHJlcGxhY2VkIGR1cmluZyBhIHN0cmF0ZWdpY1xubWVyZ2UgcGF0Y2guIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifX0sInJlcXVpcmVkIjpbImtleSIsIm9wZXJhdG9yIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1hdGNoTGFiZWxzIjp7ImFkZGl0aW9uYWxQcm9wZXJ0aWVzIjp7InR5cGUiOiJzdHJpbmcifSwiZGVzY3JpcHRpb24iOiJtYXRjaExhYmVscyBpcyBhIG1hcCBvZiB7a2V5LHZhbHVlfSBwYWlycy4gQSBzaW5nbGUge2tleSx2YWx1ZX0gaW4gdGhlIG1hdGNoTGFiZWxzXG5tYXAgaXMgZXF1aXZhbGVudCB0byBhbiBlbGVtZW50IG9mIG1hdGNoRXhwcmVzc2lvbnMsIHdob3NlIGtleSBmaWVsZCBpcyBcImtleVwiLCB0aGVcbm9wZXJhdG9yIGlzIFwiSW5cIiwgYW5kIHRoZSB2YWx1ZXMgYXJyYXkgY29udGFpbnMgb25seSBcInZhbHVlXCIuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QiLCJ4LWt1YmVybmV0ZXMtbWFwLXR5cGUiOiJhdG9taWMifSwibWF0Y2hMYWJlbEtleXMiOnsiZGVzY3JpcHRpb24iOiJNYXRjaExhYmVsS2V5cyBpcyBhIHNldCBvZiBwb2QgbGFiZWwga2V5cyB0byBzZWxlY3Qgd2hpY2ggcG9kcyB3aWxsXG5iZSB0YWtlbiBpbnRvIGNvbnNpZGVyYXRpb24uIFRoZSBrZXlzIGFyZSB1c2VkIHRvIGxvb2t1cCB2YWx1ZXMgZnJvbSB0aGVcbmluY29taW5nIHBvZCBsYWJlbHMsIHRob3NlIGtleS12YWx1ZSBsYWJlbHMgYXJlIG1lcmdlZCB3aXRoIGBMYWJlbFNlbGVjdG9yYCBhcyBga2V5IGluICh2YWx1ZSlgXG50byBzZWxlY3QgdGhlIGdyb3VwIG9mIGV4aXN0aW5nIHBvZHMgd2hpY2ggcG9kcyB3aWxsIGJlIHRha2VuIGludG8gY29uc2lkZXJhdGlvblxuZm9yIHRoZSBpbmNvbWluZyBwb2QncyBwb2QgKGFudGkpIGFmZmluaXR5LiBLZXlzIHRoYXQgZG9uJ3QgZXhpc3QgaW4gdGhlIGluY29taW5nXG5wb2QgbGFiZWxzIHdpbGwgYmUgaWdub3JlZC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZW1wdHkuXG5UaGUgc2FtZSBrZXkgaXMgZm9yYmlkZGVuIHRvIGV4aXN0IGluIGJvdGggTWF0Y2hMYWJlbEtleXMgYW5kIExhYmVsU2VsZWN0b3IuXG5BbHNvLCBNYXRjaExhYmVsS2V5cyBjYW5ub3QgYmUgc2V0IHdoZW4gTGFiZWxTZWxlY3RvciBpc24ndCBzZXQuXG5UaGlzIGlzIGFuIGFscGhhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyBNYXRjaExhYmVsS2V5c0luUG9kQWZmaW5pdHkgZmVhdHVyZSBnYXRlLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6ImF0b21pYyJ9LCJtaXNtYXRjaExhYmVsS2V5cyI6eyJkZXNjcmlwdGlvbiI6Ik1pc21hdGNoTGFiZWxLZXlzIGlzIGEgc2V0IG9mIHBvZCBsYWJlbCBrZXlzIHRvIHNlbGVjdCB3aGljaCBwb2RzIHdpbGxcbmJlIHRha2VuIGludG8gY29uc2lkZXJhdGlvbi4gVGhlIGtleXMgYXJlIHVzZWQgdG8gbG9va3VwIHZhbHVlcyBmcm9tIHRoZVxuaW5jb21pbmcgcG9kIGxhYmVscywgdGhvc2Uga2V5LXZhbHVlIGxhYmVscyBhcmUgbWVyZ2VkIHdpdGggYExhYmVsU2VsZWN0b3JgIGFzIGBrZXkgbm90aW4gKHZhbHVlKWBcbnRvIHNlbGVjdCB0aGUgZ3JvdXAgb2YgZXhpc3RpbmcgcG9kcyB3aGljaCBwb2RzIHdpbGwgYmUgdGFrZW4gaW50byBjb25zaWRlcmF0aW9uXG5mb3IgdGhlIGluY29taW5nIHBvZCdzIHBvZCAoYW50aSkgYWZmaW5pdHkuIEtleXMgdGhhdCBkb24ndCBleGlzdCBpbiB0aGUgaW5jb21pbmdcbnBvZCBsYWJlbHMgd2lsbCBiZSBpZ25vcmVkLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBlbXB0eS5cblRoZSBzYW1lIGtleSBpcyBmb3JiaWRkZW4gdG8gZXhpc3QgaW4gYm90aCBNaXNtYXRjaExhYmVsS2V5cyBhbmQgTGFiZWxTZWxlY3Rvci5cbkFsc28sIE1pc21hdGNoTGFiZWxLZXlzIGNhbm5vdCBiZSBzZXQgd2hlbiBMYWJlbFNlbGVjdG9yIGlzbid0IHNldC5cblRoaXMgaXMgYW4gYWxwaGEgZmllbGQgYW5kIHJlcXVpcmVzIGVuYWJsaW5nIE1hdGNoTGFiZWxLZXlzSW5Qb2RBZmZpbml0eSBmZWF0dXJlIGdhdGUuIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkiLCJ4LWt1YmVybmV0ZXMtbGlzdC10eXBlIjoiYXRvbWljIn0sIm5hbWVzcGFjZVNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBxdWVyeSBvdmVyIHRoZSBzZXQgb2YgbmFtZXNwYWNlcyB0aGF0IHRoZSB0ZXJtIGFwcGxpZXMgdG8uXG5UaGUgdGVybSBpcyBhcHBsaWVkIHRvIHRoZSB1bmlvbiBvZiB0aGUgbmFtZXNwYWNlcyBzZWxlY3RlZCBieSB0aGlzIGZpZWxkXG5hbmQgdGhlIG9uZXMgbGlzdGVkIGluIHRoZSBuYW1lc3BhY2VzIGZpZWxkLlxubnVsbCBzZWxlY3RvciBhbmQgbnVsbCBvciBlbXB0eSBuYW1lc3BhY2VzIGxpc3QgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiLlxuQW4gZW1wdHkgc2VsZWN0b3IgKHt9KSBtYXRjaGVzIGFsbCBuYW1lc3BhY2VzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdFxucmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy5cblZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sXG50aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCxcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWNcbm1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVsc1xubWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlXG5vcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn0sIm5hbWVzcGFjZXMiOnsiZGVzY3JpcHRpb24iOiJuYW1lc3BhY2VzIHNwZWNpZmllcyBhIHN0YXRpYyBsaXN0IG9mIG5hbWVzcGFjZSBuYW1lcyB0aGF0IHRoZSB0ZXJtIGFwcGxpZXMgdG8uXG5UaGUgdGVybSBpcyBhcHBsaWVkIHRvIHRoZSB1bmlvbiBvZiB0aGUgbmFtZXNwYWNlcyBsaXN0ZWQgaW4gdGhpcyBmaWVsZFxuYW5kIHRoZSBvbmVzIHNlbGVjdGVkIGJ5IG5hbWVzcGFjZVNlbGVjdG9yLlxubnVsbCBvciBlbXB0eSBuYW1lc3BhY2VzIGxpc3QgYW5kIG51bGwgbmFtZXNwYWNlU2VsZWN0b3IgbWVhbnMgXCJ0aGlzIHBvZCdzIG5hbWVzcGFjZVwiLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In0sInRvcG9sb2d5S2V5Ijp7ImRlc2NyaXB0aW9uIjoiVGhpcyBwb2Qgc2hvdWxkIGJlIGNvLWxvY2F0ZWQgKGFmZmluaXR5KSBvciBub3QgY28tbG9jYXRlZCAoYW50aS1hZmZpbml0eSkgd2l0aCB0aGUgcG9kcyBtYXRjaGluZ1xudGhlIGxhYmVsU2VsZWN0b3IgaW4gdGhlIHNwZWNpZmllZCBuYW1lc3BhY2VzLCB3aGVyZSBjby1sb2NhdGVkIGlzIGRlZmluZWQgYXMgcnVubmluZyBvbiBhIG5vZGVcbndob3NlIHZhbHVlIG9mIHRoZSBsYWJlbCB3aXRoIGtleSB0b3BvbG9neUtleSBtYXRjaGVzIHRoYXQgb2YgYW55IG5vZGUgb24gd2hpY2ggYW55IG9mIHRoZVxuc2VsZWN0ZWQgcG9kcyBpcyBydW5uaW5nLlxuRW1wdHkgdG9wb2xvZ3lLZXkgaXMgbm90IGFsbG93ZWQuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsidG9wb2xvZ3lLZXkiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifX0sInR5cGUiOiJvYmplY3QifX0sInR5cGUiOiJvYmplY3QifSwiY2x1c3RlcklEIjp7ImRlc2NyaXB0aW9uIjoiRGVmaW5lcyB0aGUgbG9jYWwgc2VydmljZSBjbHVzdGVyIG5hbWUgd2hlcmUgRW52b3kgaXMgcnVubmluZy4gRGVmYXVsdHNcbnRvIHRoZSBOb2RlSUQgaW4gdGhlIEVudm95Q29uZmlnIGlmIHVuc2V0IiwidHlwZSI6InN0cmluZyJ9LCJkaXNjb3ZlcnlTZXJ2aWNlUmVmIjp7ImRlc2NyaXB0aW9uIjoiRGlzY292ZXJ5U2VydmljZVJlZiBwb2ludHMgdG8gYSBEaXNjb3ZlcnlTZXJ2aWNlIGluIHRoZSBzYW1lXG5uYW1lc3BhY2UiLCJ0eXBlIjoic3RyaW5nIn0sImR1cmF0aW9uIjp7ImRlc2NyaXB0aW9uIjoiRGVmaW5lcyB0aGUgZHVyYXRpb24gb2YgdGhlIGNsaWVudCBjZXJ0aWZpY2F0ZSB0aGF0IGlzIHVzZWQgdG8gYXV0aGVudGljYXRlXG53aXRoIHRoZSBEaXNjb3ZlcnlTZXJ2aWNlIiwidHlwZSI6InN0cmluZyJ9LCJlbnZveUNvbmZpZ1JlZiI6eyJkZXNjcmlwdGlvbiI6IkVudm95Q29uZmlnUmVmIHBvaW50cyB0byBhbiBFbnZveUNvbmZpZyBpbiB0aGUgc2FtZSBuYW1lc3BhY2VcbnRoYXQgaG9sZHMgdGhlIGVudm95IHJlc291cmNlcyBmb3IgdGhpcyBEZXBsb3ltZW50IiwidHlwZSI6InN0cmluZyJ9LCJleHRyYUFyZ3MiOnsiZGVzY3JpcHRpb24iOiJBbGxvd3MgdGhlIHVzZXIgdG8gZGVmaW5lIGV4dHJhIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgZm9yIHRoZSBFbnZveSBwcm9jZXNzIiwiaXRlbXMiOnsidHlwZSI6InN0cmluZyJ9LCJ0eXBlIjoiYXJyYXkifSwiaW1hZ2UiOnsiZGVzY3JpcHRpb24iOiJJbWFnZSBpcyB0aGUgZW52b3kgaW1hZ2UgYW5kIHRhZyB0byB1c2UiLCJ0eXBlIjoic3RyaW5nIn0sImluaXRNYW5hZ2VyIjp7ImRlc2NyaXB0aW9uIjoiSW5pdE1hbmFnZXIgZGVmaW5lcyBjb25maWd1cmF0aW9uIGZvciBFbnZveSdzIGluaXRcbm1hbmFnZXIsIHdoaWNoIGhhbmRsZXMgaW5pdGlhbGl6YXRpb24gZm9yIEVudm95IHBvZHMiLCJwcm9wZXJ0aWVzIjp7ImltYWdlIjp7ImRlc2NyaXB0aW9uIjoiSW1hZ2UgaXMgdGhlIGluaXQgbWFuYWdlciBpbWFnZSBhbmQgdGFnIHRvIHVzZSIsInR5cGUiOiJzdHJpbmcifX0sInR5cGUiOiJvYmplY3QifSwibGl2ZW5lc3NQcm9iZSI6eyJkZXNjcmlwdGlvbiI6IkxpdmVuZXNzIHByb2JlIGZvciB0aGUgZW52b3kgcG9kcyIsInByb3BlcnRpZXMiOnsiZmFpbHVyZVRocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJIb3cgb2Z0ZW4gKGluIHNlY29uZHMpIHRvIHBlcmZvcm0gdGhlIHByb2JlIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJzdWNjZXNzVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZCIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidGltZW91dFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0IiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsiZmFpbHVyZVRocmVzaG9sZCIsImluaXRpYWxEZWxheVNlY29uZHMiLCJwZXJpb2RTZWNvbmRzIiwic3VjY2Vzc1RocmVzaG9sZCIsInRpbWVvdXRTZWNvbmRzIl0sInR5cGUiOiJvYmplY3QifSwicG9kRGlzcnVwdGlvbkJ1ZGdldCI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ3VyZXMgUG9kRGlzcnVwdGlvbkJ1ZGdldCBmb3IgdGhlIGVudm95IFBvZHMiLCJwcm9wZXJ0aWVzIjp7Im1heFVuYXZhaWxhYmxlIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwiZGVzY3JpcHRpb24iOiJBbiBldmljdGlvbiBpcyBhbGxvd2VkIGlmIGF0IG1vc3QgXCJtYXhVbmF2YWlsYWJsZVwiIHBvZHMgc2VsZWN0ZWQgYnlcblwic2VsZWN0b3JcIiBhcmUgdW5hdmFpbGFibGUgYWZ0ZXIgdGhlIGV2aWN0aW9uLCBpLmUuIGV2ZW4gaW4gYWJzZW5jZSBvZlxudGhlIGV2aWN0ZWQgcG9kLiBGb3IgZXhhbXBsZSwgb25lIGNhbiBwcmV2ZW50IGFsbCB2b2x1bnRhcnkgZXZpY3Rpb25zXG5ieSBzcGVjaWZ5aW5nIDAuIFRoaXMgaXMgYSBtdXR1YWxseSBleGNsdXNpdmUgc2V0dGluZyB3aXRoIFwibWluQXZhaWxhYmxlXCIuIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJtaW5BdmFpbGFibGUiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJkZXNjcmlwdGlvbiI6IkFuIGV2aWN0aW9uIGlzIGFsbG93ZWQgaWYgYXQgbGVhc3QgXCJtaW5BdmFpbGFibGVcIiBwb2RzIHNlbGVjdGVkIGJ5XG5cInNlbGVjdG9yXCIgd2lsbCBzdGlsbCBiZSBhdmFpbGFibGUgYWZ0ZXIgdGhlIGV2aWN0aW9uLCBpLmUuIGV2ZW4gaW4gdGhlXG5hYnNlbmNlIG9mIHRoZSBldmljdGVkIHBvZC4gIFNvIGZvciBleGFtcGxlIHlvdSBjYW4gcHJldmVudCBhbGwgdm9sdW50YXJ5XG5ldmljdGlvbnMgYnkgc3BlY2lmeWluZyBcIjEwMCVcIi4iLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX19LCJ0eXBlIjoib2JqZWN0In0sInBvcnRzIjp7ImRlc2NyaXB0aW9uIjoiUG9ydHMgZXhwb3NlZCBieSB0aGUgRW52b3kgY29udGFpbmVyIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJDb250YWluZXJQb3J0IGRlZmluZXMgcG9ydCBmb3IgdGhlIE1hcmluM3Igc2lkZWNhciBjb250YWluZXIiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJQb3J0IG5hbWUiLCJ0eXBlIjoic3RyaW5nIn0sInBvcnQiOnsiZGVzY3JpcHRpb24iOiJQb3J0IHZhbHVlIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJwcm90b2NvbCI6eyJkZWZhdWx0IjoiVENQIiwiZGVzY3JpcHRpb24iOiJQcm90b2NvbC4gRGVmYXVsdHMgdG8gVENQLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbIm5hbWUiLCJwb3J0Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sInJlYWRpbmVzc1Byb2JlIjp7ImRlc2NyaXB0aW9uIjoiUmVhZGluZXNzIHByb2JlIGZvciB0aGUgZW52b3kgcG9kcyIsInByb3BlcnRpZXMiOnsiZmFpbHVyZVRocmVzaG9sZCI6eyJkZXNjcmlwdGlvbiI6Ik1pbmltdW0gY29uc2VjdXRpdmUgZmFpbHVyZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIGZhaWxlZCBhZnRlciBoYXZpbmcgc3VjY2VlZGVkIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJpbml0aWFsRGVsYXlTZWNvbmRzIjp7ImRlc2NyaXB0aW9uIjoiTnVtYmVyIG9mIHNlY29uZHMgYWZ0ZXIgdGhlIGNvbnRhaW5lciBoYXMgc3RhcnRlZCBiZWZvcmUgbGl2ZW5lc3MgcHJvYmVzIGFyZSBpbml0aWF0ZWQiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJIb3cgb2Z0ZW4gKGluIHNlY29uZHMpIHRvIHBlcmZvcm0gdGhlIHByb2JlIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJzdWNjZXNzVGhyZXNob2xkIjp7ImRlc2NyaXB0aW9uIjoiTWluaW11bSBjb25zZWN1dGl2ZSBzdWNjZXNzZXMgZm9yIHRoZSBwcm9iZSB0byBiZSBjb25zaWRlcmVkIHN1Y2Nlc3NmdWwgYWZ0ZXIgaGF2aW5nIGZhaWxlZCIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwidGltZW91dFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJOdW1iZXIgb2Ygc2Vjb25kcyBhZnRlciB3aGljaCB0aGUgcHJvYmUgdGltZXMgb3V0IiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsiZmFpbHVyZVRocmVzaG9sZCIsImluaXRpYWxEZWxheVNlY29uZHMiLCJwZXJpb2RTZWNvbmRzIiwic3VjY2Vzc1RocmVzaG9sZCIsInRpbWVvdXRTZWNvbmRzIl0sInR5cGUiOiJvYmplY3QifSwicmVwbGljYXMiOnsiZGVzY3JpcHRpb24iOiJSZXBsaWNhcyBjb25maWd1cmVzIHRoZSBudW1iZXIgb2YgcmVwbGljYXMgaW4gdGhlIERlcGxveW1lbnQuIE9uZSBvZlxuJ3N0YXRpYycsICdkeW5hbWljJyBjYW4gYmUgc2V0LiBJZiBib3RoIGFyZSBzZXQsIHN0YXRpYyBoYXMgcHJlY2VkZW5jZS4iLCJwcm9wZXJ0aWVzIjp7ImR5bmFtaWMiOnsiZGVzY3JpcHRpb24iOiJDb25maWd1cmUgYSBtaW4gYW5kIG1heCB2YWx1ZSBmb3IgdGhlIG51bWJlciBvZiBwb2RzIHRvIGF1dG9zY2FsZSBkeW5hbWljYWxseS4iLCJwcm9wZXJ0aWVzIjp7ImJlaGF2aW9yIjp7ImRlc2NyaXB0aW9uIjoiYmVoYXZpb3IgY29uZmlndXJlcyB0aGUgc2NhbGluZyBiZWhhdmlvciBvZiB0aGUgdGFyZ2V0XG5pbiBib3RoIFVwIGFuZCBEb3duIGRpcmVjdGlvbnMgKHNjYWxlVXAgYW5kIHNjYWxlRG93biBmaWVsZHMgcmVzcGVjdGl2ZWx5KS5cbklmIG5vdCBzZXQsIHRoZSBkZWZhdWx0IEhQQVNjYWxpbmdSdWxlcyBmb3Igc2NhbGUgdXAgYW5kIHNjYWxlIGRvd24gYXJlIHVzZWQuIiwicHJvcGVydGllcyI6eyJzY2FsZURvd24iOnsiZGVzY3JpcHRpb24iOiJzY2FsZURvd24gaXMgc2NhbGluZyBwb2xpY3kgZm9yIHNjYWxpbmcgRG93bi5cbklmIG5vdCBzZXQsIHRoZSBkZWZhdWx0IHZhbHVlIGlzIHRvIGFsbG93IHRvIHNjYWxlIGRvd24gdG8gbWluUmVwbGljYXMgcG9kcywgd2l0aCBhXG4zMDAgc2Vjb25kIHN0YWJpbGl6YXRpb24gd2luZG93IChpLmUuLCB0aGUgaGlnaGVzdCByZWNvbW1lbmRhdGlvbiBmb3JcbnRoZSBsYXN0IDMwMHNlYyBpcyB1c2VkKS4iLCJwcm9wZXJ0aWVzIjp7InBvbGljaWVzIjp7ImRlc2NyaXB0aW9uIjoicG9saWNpZXMgaXMgYSBsaXN0IG9mIHBvdGVudGlhbCBzY2FsaW5nIHBvbGljZXMgd2hpY2ggY2FuIGJlIHVzZWQgZHVyaW5nIHNjYWxpbmcuXG5BdCBsZWFzdCBvbmUgcG9saWN5IG11c3QgYmUgc3BlY2lmaWVkLCBvdGhlcndpc2UgdGhlIEhQQVNjYWxpbmdSdWxlcyB3aWxsIGJlIGRpc2NhcmRlZCBhcyBpbnZhbGlkIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJIUEFTY2FsaW5nUG9saWN5IGlzIGEgc2luZ2xlIHBvbGljeSB3aGljaCBtdXN0IGhvbGQgdHJ1ZSBmb3IgYSBzcGVjaWZpZWQgcGFzdCBpbnRlcnZhbC4iLCJwcm9wZXJ0aWVzIjp7InBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJwZXJpb2RTZWNvbmRzIHNwZWNpZmllcyB0aGUgd2luZG93IG9mIHRpbWUgZm9yIHdoaWNoIHRoZSBwb2xpY3kgc2hvdWxkIGhvbGQgdHJ1ZS5cblBlcmlvZFNlY29uZHMgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDE4MDAgKDMwIG1pbikuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoidHlwZSBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHNjYWxpbmcgcG9saWN5LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZSBjb250YWlucyB0aGUgYW1vdW50IG9mIGNoYW5nZSB3aGljaCBpcyBwZXJtaXR0ZWQgYnkgdGhlIHBvbGljeS5cbkl0IG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJwZXJpb2RTZWNvbmRzIiwidHlwZSIsInZhbHVlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6ImF0b21pYyJ9LCJzZWxlY3RQb2xpY3kiOnsiZGVzY3JpcHRpb24iOiJzZWxlY3RQb2xpY3kgaXMgdXNlZCB0byBzcGVjaWZ5IHdoaWNoIHBvbGljeSBzaG91bGQgYmUgdXNlZC5cbklmIG5vdCBzZXQsIHRoZSBkZWZhdWx0IHZhbHVlIE1heCBpcyB1c2VkLiIsInR5cGUiOiJzdHJpbmcifSwic3RhYmlsaXphdGlvbldpbmRvd1NlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJzdGFiaWxpemF0aW9uV2luZG93U2Vjb25kcyBpcyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgZm9yIHdoaWNoIHBhc3QgcmVjb21tZW5kYXRpb25zIHNob3VsZCBiZVxuY29uc2lkZXJlZCB3aGlsZSBzY2FsaW5nIHVwIG9yIHNjYWxpbmcgZG93bi5cblN0YWJpbGl6YXRpb25XaW5kb3dTZWNvbmRzIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHplcm8gYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAzNjAwIChvbmUgaG91cikuXG5JZiBub3Qgc2V0LCB1c2UgdGhlIGRlZmF1bHQgdmFsdWVzOlxuLSBGb3Igc2NhbGUgdXA6IDAgKGkuZS4gbm8gc3RhYmlsaXphdGlvbiBpcyBkb25lKS5cbi0gRm9yIHNjYWxlIGRvd246IDMwMCAoaS5lLiB0aGUgc3RhYmlsaXphdGlvbiB3aW5kb3cgaXMgMzAwIHNlY29uZHMgbG9uZykuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwidHlwZSI6Im9iamVjdCJ9LCJzY2FsZVVwIjp7ImRlc2NyaXB0aW9uIjoic2NhbGVVcCBpcyBzY2FsaW5nIHBvbGljeSBmb3Igc2NhbGluZyBVcC5cbklmIG5vdCBzZXQsIHRoZSBkZWZhdWx0IHZhbHVlIGlzIHRoZSBoaWdoZXIgb2Y6XG4gICogaW5jcmVhc2Ugbm8gbW9yZSB0aGFuIDQgcG9kcyBwZXIgNjAgc2Vjb25kc1xuICAqIGRvdWJsZSB0aGUgbnVtYmVyIG9mIHBvZHMgcGVyIDYwIHNlY29uZHNcbk5vIHN0YWJpbGl6YXRpb24gaXMgdXNlZC4iLCJwcm9wZXJ0aWVzIjp7InBvbGljaWVzIjp7ImRlc2NyaXB0aW9uIjoicG9saWNpZXMgaXMgYSBsaXN0IG9mIHBvdGVudGlhbCBzY2FsaW5nIHBvbGljZXMgd2hpY2ggY2FuIGJlIHVzZWQgZHVyaW5nIHNjYWxpbmcuXG5BdCBsZWFzdCBvbmUgcG9saWN5IG11c3QgYmUgc3BlY2lmaWVkLCBvdGhlcndpc2UgdGhlIEhQQVNjYWxpbmdSdWxlcyB3aWxsIGJlIGRpc2NhcmRlZCBhcyBpbnZhbGlkIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJIUEFTY2FsaW5nUG9saWN5IGlzIGEgc2luZ2xlIHBvbGljeSB3aGljaCBtdXN0IGhvbGQgdHJ1ZSBmb3IgYSBzcGVjaWZpZWQgcGFzdCBpbnRlcnZhbC4iLCJwcm9wZXJ0aWVzIjp7InBlcmlvZFNlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJwZXJpb2RTZWNvbmRzIHNwZWNpZmllcyB0aGUgd2luZG93IG9mIHRpbWUgZm9yIHdoaWNoIHRoZSBwb2xpY3kgc2hvdWxkIGhvbGQgdHJ1ZS5cblBlcmlvZFNlY29uZHMgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDE4MDAgKDMwIG1pbikuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoidHlwZSBpcyB1c2VkIHRvIHNwZWNpZnkgdGhlIHNjYWxpbmcgcG9saWN5LiIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZSBjb250YWlucyB0aGUgYW1vdW50IG9mIGNoYW5nZSB3aGljaCBpcyBwZXJtaXR0ZWQgYnkgdGhlIHBvbGljeS5cbkl0IG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn19LCJyZXF1aXJlZCI6WyJwZXJpb2RTZWNvbmRzIiwidHlwZSIsInZhbHVlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5IiwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6ImF0b21pYyJ9LCJzZWxlY3RQb2xpY3kiOnsiZGVzY3JpcHRpb24iOiJzZWxlY3RQb2xpY3kgaXMgdXNlZCB0byBzcGVjaWZ5IHdoaWNoIHBvbGljeSBzaG91bGQgYmUgdXNlZC5cbklmIG5vdCBzZXQsIHRoZSBkZWZhdWx0IHZhbHVlIE1heCBpcyB1c2VkLiIsInR5cGUiOiJzdHJpbmcifSwic3RhYmlsaXphdGlvbldpbmRvd1NlY29uZHMiOnsiZGVzY3JpcHRpb24iOiJzdGFiaWxpemF0aW9uV2luZG93U2Vjb25kcyBpcyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgZm9yIHdoaWNoIHBhc3QgcmVjb21tZW5kYXRpb25zIHNob3VsZCBiZVxuY29uc2lkZXJlZCB3aGlsZSBzY2FsaW5nIHVwIG9yIHNjYWxpbmcgZG93bi5cblN0YWJpbGl6YXRpb25XaW5kb3dTZWNvbmRzIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHplcm8gYW5kIGxlc3MgdGhhbiBvciBlcXVhbCB0byAzNjAwIChvbmUgaG91cikuXG5JZiBub3Qgc2V0LCB1c2UgdGhlIGRlZmF1bHQgdmFsdWVzOlxuLSBGb3Igc2NhbGUgdXA6IDAgKGkuZS4gbm8gc3RhYmlsaXphdGlvbiBpcyBkb25lKS5cbi0gRm9yIHNjYWxlIGRvd246IDMwMCAoaS5lLiB0aGUgc3RhYmlsaXphdGlvbiB3aW5kb3cgaXMgMzAwIHNlY29uZHMgbG9uZykuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9LCJtYXhSZXBsaWNhcyI6eyJkZXNjcmlwdGlvbiI6Im1heFJlcGxpY2FzIGlzIHRoZSB1cHBlciBsaW1pdCBmb3IgdGhlIG51bWJlciBvZiByZXBsaWNhcyB0byB3aGljaCB0aGUgYXV0b3NjYWxlciBjYW4gc2NhbGUgdXAuXG5JdCBjYW5ub3QgYmUgbGVzcyB0aGF0IG1pblJlcGxpY2FzLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwibWV0cmljcyI6eyJkZXNjcmlwdGlvbiI6Im1ldHJpY3MgY29udGFpbnMgdGhlIHNwZWNpZmljYXRpb25zIGZvciB3aGljaCB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZVxuZGVzaXJlZCByZXBsaWNhIGNvdW50ICh0aGUgbWF4aW11bSByZXBsaWNhIGNvdW50IGFjcm9zcyBhbGwgbWV0cmljcyB3aWxsXG5iZSB1c2VkKS4gIFRoZSBkZXNpcmVkIHJlcGxpY2EgY291bnQgaXMgY2FsY3VsYXRlZCBtdWx0aXBseWluZyB0aGVcbnJhdGlvIGJldHdlZW4gdGhlIHRhcmdldCB2YWx1ZSBhbmQgdGhlIGN1cnJlbnQgdmFsdWUgYnkgdGhlIGN1cnJlbnRcbm51bWJlciBvZiBwb2RzLiAgRXJnbywgbWV0cmljcyB1c2VkIG11c3QgZGVjcmVhc2UgYXMgdGhlIHBvZCBjb3VudCBpc1xuaW5jcmVhc2VkLCBhbmQgdmljZS12ZXJzYS4gIFNlZSB0aGUgaW5kaXZpZHVhbCBtZXRyaWMgc291cmNlIHR5cGVzIGZvclxubW9yZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgZWFjaCB0eXBlIG9mIG1ldHJpYyBtdXN0IHJlc3BvbmQuXG5JZiBub3Qgc2V0LCB0aGUgZGVmYXVsdCBtZXRyaWMgd2lsbCBiZSBzZXQgdG8gODAlIGF2ZXJhZ2UgQ1BVIHV0aWxpemF0aW9uLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiTWV0cmljU3BlYyBzcGVjaWZpZXMgaG93IHRvIHNjYWxlIGJhc2VkIG9uIGEgc2luZ2xlIG1ldHJpY1xuKG9ubHkgYHR5cGVgIGFuZCBvbmUgb3RoZXIgbWF0Y2hpbmcgZmllbGQgc2hvdWxkIGJlIHNldCBhdCBvbmNlKS4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lclJlc291cmNlIjp7ImRlc2NyaXB0aW9uIjoiY29udGFpbmVyUmVzb3VyY2UgcmVmZXJzIHRvIGEgcmVzb3VyY2UgbWV0cmljIChzdWNoIGFzIHRob3NlIHNwZWNpZmllZCBpblxucmVxdWVzdHMgYW5kIGxpbWl0cykga25vd24gdG8gS3ViZXJuZXRlcyBkZXNjcmliaW5nIGEgc2luZ2xlIGNvbnRhaW5lciBpblxuZWFjaCBwb2Qgb2YgdGhlIGN1cnJlbnQgc2NhbGUgdGFyZ2V0IChlLmcuIENQVSBvciBtZW1vcnkpLiBTdWNoIG1ldHJpY3MgYXJlXG5idWlsdCBpbiB0byBLdWJlcm5ldGVzLCBhbmQgaGF2ZSBzcGVjaWFsIHNjYWxpbmcgb3B0aW9ucyBvbiB0b3Agb2YgdGhvc2VcbmF2YWlsYWJsZSB0byBub3JtYWwgcGVyLXBvZCBtZXRyaWNzIHVzaW5nIHRoZSBcInBvZHNcIiBzb3VyY2UuXG5UaGlzIGlzIGFuIGFscGhhIGZlYXR1cmUgYW5kIGNhbiBiZSBlbmFibGVkIGJ5IHRoZSBIUEFDb250YWluZXJNZXRyaWNzIGZlYXR1cmUgZmxhZy4iLCJwcm9wZXJ0aWVzIjp7ImNvbnRhaW5lciI6eyJkZXNjcmlwdGlvbiI6ImNvbnRhaW5lciBpcyB0aGUgbmFtZSBvZiB0aGUgY29udGFpbmVyIGluIHRoZSBwb2RzIG9mIHRoZSBzY2FsaW5nIHRhcmdldCIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIGluIHF1ZXN0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwidGFyZ2V0Ijp7ImRlc2NyaXB0aW9uIjoidGFyZ2V0IHNwZWNpZmllcyB0aGUgdGFyZ2V0IHZhbHVlIGZvciB0aGUgZ2l2ZW4gbWV0cmljIiwicHJvcGVydGllcyI6eyJhdmVyYWdlVXRpbGl6YXRpb24iOnsiZGVzY3JpcHRpb24iOiJhdmVyYWdlVXRpbGl6YXRpb24gaXMgdGhlIHRhcmdldCB2YWx1ZSBvZiB0aGUgYXZlcmFnZSBvZiB0aGVcbnJlc291cmNlIG1ldHJpYyBhY3Jvc3MgYWxsIHJlbGV2YW50IHBvZHMsIHJlcHJlc2VudGVkIGFzIGEgcGVyY2VudGFnZSBvZlxudGhlIHJlcXVlc3RlZCB2YWx1ZSBvZiB0aGUgcmVzb3VyY2UgZm9yIHRoZSBwb2RzLlxuQ3VycmVudGx5IG9ubHkgdmFsaWQgZm9yIFJlc291cmNlIG1ldHJpYyBzb3VyY2UgdHlwZSIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiYXZlcmFnZVZhbHVlIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwiZGVzY3JpcHRpb24iOiJhdmVyYWdlVmFsdWUgaXMgdGhlIHRhcmdldCB2YWx1ZSBvZiB0aGUgYXZlcmFnZSBvZiB0aGVcbm1ldHJpYyBhY3Jvc3MgYWxsIHJlbGV2YW50IHBvZHMgKGFzIGEgcXVhbnRpdHkpIiwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoidHlwZSByZXByZXNlbnRzIHdoZXRoZXIgdGhlIG1ldHJpYyB0eXBlIGlzIFV0aWxpemF0aW9uLCBWYWx1ZSwgb3IgQXZlcmFnZVZhbHVlIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoidmFsdWUgaXMgdGhlIHRhcmdldCB2YWx1ZSBvZiB0aGUgbWV0cmljIChhcyBhIHF1YW50aXR5KS4iLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX19LCJyZXF1aXJlZCI6WyJ0eXBlIl0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImNvbnRhaW5lciIsIm5hbWUiLCJ0YXJnZXQiXSwidHlwZSI6Im9iamVjdCJ9LCJleHRlcm5hbCI6eyJkZXNjcmlwdGlvbiI6ImV4dGVybmFsIHJlZmVycyB0byBhIGdsb2JhbCBtZXRyaWMgdGhhdCBpcyBub3QgYXNzb2NpYXRlZFxud2l0aCBhbnkgS3ViZXJuZXRlcyBvYmplY3QuIEl0IGFsbG93cyBhdXRvc2NhbGluZyBiYXNlZCBvbiBpbmZvcm1hdGlvblxuY29taW5nIGZyb20gY29tcG9uZW50cyBydW5uaW5nIG91dHNpZGUgb2YgY2x1c3RlclxuKGZvciBleGFtcGxlIGxlbmd0aCBvZiBxdWV1ZSBpbiBjbG91ZCBtZXNzYWdpbmcgc2VydmljZSwgb3JcblFQUyBmcm9tIGxvYWRiYWxhbmNlciBydW5uaW5nIG91dHNpZGUgb2YgY2x1c3RlcikuIiwicHJvcGVydGllcyI6eyJtZXRyaWMiOnsiZGVzY3JpcHRpb24iOiJtZXRyaWMgaWRlbnRpZmllcyB0aGUgdGFyZ2V0IG1ldHJpYyBieSBuYW1lIGFuZCBzZWxlY3RvciIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIGdpdmVuIG1ldHJpYyIsInR5cGUiOiJzdHJpbmcifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJzZWxlY3RvciBpcyB0aGUgc3RyaW5nLWVuY29kZWQgZm9ybSBvZiBhIHN0YW5kYXJkIGt1YmVybmV0ZXMgbGFiZWwgc2VsZWN0b3IgZm9yIHRoZSBnaXZlbiBtZXRyaWNcbldoZW4gc2V0LCBpdCBpcyBwYXNzZWQgYXMgYW4gYWRkaXRpb25hbCBwYXJhbWV0ZXIgdG8gdGhlIG1ldHJpY3Mgc2VydmVyIGZvciBtb3JlIHNwZWNpZmljIG1ldHJpY3Mgc2NvcGluZy5cbldoZW4gdW5zZXQsIGp1c3QgdGhlIG1ldHJpY05hbWUgd2lsbCBiZSB1c2VkIHRvIGdhdGhlciBtZXRyaWNzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdFxucmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy5cblZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sXG50aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCxcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWNcbm1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVsc1xubWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlXG5vcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidGFyZ2V0Ijp7ImRlc2NyaXB0aW9uIjoidGFyZ2V0IHNwZWNpZmllcyB0aGUgdGFyZ2V0IHZhbHVlIGZvciB0aGUgZ2l2ZW4gbWV0cmljIiwicHJvcGVydGllcyI6eyJhdmVyYWdlVXRpbGl6YXRpb24iOnsiZGVzY3JpcHRpb24iOiJhdmVyYWdlVXRpbGl6YXRpb24gaXMgdGhlIHRhcmdldCB2YWx1ZSBvZiB0aGUgYXZlcmFnZSBvZiB0aGVcbnJlc291cmNlIG1ldHJpYyBhY3Jvc3MgYWxsIHJlbGV2YW50IHBvZHMsIHJlcHJlc2VudGVkIGFzIGEgcGVyY2VudGFnZSBvZlxudGhlIHJlcXVlc3RlZCB2YWx1ZSBvZiB0aGUgcmVzb3VyY2UgZm9yIHRoZSBwb2RzLlxuQ3VycmVudGx5IG9ubHkgdmFsaWQgZm9yIFJlc291cmNlIG1ldHJpYyBzb3VyY2UgdHlwZSIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiYXZlcmFnZVZhbHVlIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwiZGVzY3JpcHRpb24iOiJhdmVyYWdlVmFsdWUgaXMgdGhlIHRhcmdldCB2YWx1ZSBvZiB0aGUgYXZlcmFnZSBvZiB0aGVcbm1ldHJpYyBhY3Jvc3MgYWxsIHJlbGV2YW50IHBvZHMgKGFzIGEgcXVhbnRpdHkpIiwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoidHlwZSByZXByZXNlbnRzIHdoZXRoZXIgdGhlIG1ldHJpYyB0eXBlIGlzIFV0aWxpemF0aW9uLCBWYWx1ZSwgb3IgQXZlcmFnZVZhbHVlIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoidmFsdWUgaXMgdGhlIHRhcmdldCB2YWx1ZSBvZiB0aGUgbWV0cmljIChhcyBhIHF1YW50aXR5KS4iLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX19LCJyZXF1aXJlZCI6WyJ0eXBlIl0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbIm1ldHJpYyIsInRhcmdldCJdLCJ0eXBlIjoib2JqZWN0In0sIm9iamVjdCI6eyJkZXNjcmlwdGlvbiI6Im9iamVjdCByZWZlcnMgdG8gYSBtZXRyaWMgZGVzY3JpYmluZyBhIHNpbmdsZSBrdWJlcm5ldGVzIG9iamVjdFxuKGZvciBleGFtcGxlLCBoaXRzLXBlci1zZWNvbmQgb24gYW4gSW5ncmVzcyBvYmplY3QpLiIsInByb3BlcnRpZXMiOnsiZGVzY3JpYmVkT2JqZWN0Ijp7ImRlc2NyaXB0aW9uIjoiZGVzY3JpYmVkT2JqZWN0IHNwZWNpZmllcyB0aGUgZGVzY3JpcHRpb25zIG9mIGEgb2JqZWN0LHN1Y2ggYXMga2luZCxuYW1lIGFwaVZlcnNpb24iLCJwcm9wZXJ0aWVzIjp7ImFwaVZlcnNpb24iOnsiZGVzY3JpcHRpb24iOiJhcGlWZXJzaW9uIGlzIHRoZSBBUEkgdmVyc2lvbiBvZiB0aGUgcmVmZXJlbnQiLCJ0eXBlIjoic3RyaW5nIn0sImtpbmQiOnsiZGVzY3JpcHRpb24iOiJraW5kIGlzIHRoZSBraW5kIG9mIHRoZSByZWZlcmVudDsgTW9yZSBpbmZvOiBodHRwczovL2dpdC5rOHMuaW8vY29tbXVuaXR5L2NvbnRyaWJ1dG9ycy9kZXZlbC9zaWctYXJjaGl0ZWN0dXJlL2FwaS1jb252ZW50aW9ucy5tZCN0eXBlcy1raW5kcyIsInR5cGUiOiJzdHJpbmcifSwibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIHJlZmVyZW50OyBNb3JlIGluZm86IGh0dHBzOi8va3ViZXJuZXRlcy5pby9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L3dvcmtpbmctd2l0aC1vYmplY3RzL25hbWVzLyNuYW1lcyIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbImtpbmQiLCJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwibWV0cmljIjp7ImRlc2NyaXB0aW9uIjoibWV0cmljIGlkZW50aWZpZXMgdGhlIHRhcmdldCBtZXRyaWMgYnkgbmFtZSBhbmQgc2VsZWN0b3IiLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJuYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSBnaXZlbiBtZXRyaWMiLCJ0eXBlIjoic3RyaW5nIn0sInNlbGVjdG9yIjp7ImRlc2NyaXB0aW9uIjoic2VsZWN0b3IgaXMgdGhlIHN0cmluZy1lbmNvZGVkIGZvcm0gb2YgYSBzdGFuZGFyZCBrdWJlcm5ldGVzIGxhYmVsIHNlbGVjdG9yIGZvciB0aGUgZ2l2ZW4gbWV0cmljXG5XaGVuIHNldCwgaXQgaXMgcGFzc2VkIGFzIGFuIGFkZGl0aW9uYWwgcGFyYW1ldGVyIHRvIHRoZSBtZXRyaWNzIHNlcnZlciBmb3IgbW9yZSBzcGVjaWZpYyBtZXRyaWNzIHNjb3BpbmcuXG5XaGVuIHVuc2V0LCBqdXN0IHRoZSBtZXRyaWNOYW1lIHdpbGwgYmUgdXNlZCB0byBnYXRoZXIgbWV0cmljcy4iLCJwcm9wZXJ0aWVzIjp7Im1hdGNoRXhwcmVzc2lvbnMiOnsiZGVzY3JpcHRpb24iOiJtYXRjaEV4cHJlc3Npb25zIGlzIGEgbGlzdCBvZiBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudHMuIFRoZSByZXF1aXJlbWVudHMgYXJlIEFORGVkLiIsIml0ZW1zIjp7ImRlc2NyaXB0aW9uIjoiQSBsYWJlbCBzZWxlY3RvciByZXF1aXJlbWVudCBpcyBhIHNlbGVjdG9yIHRoYXQgY29udGFpbnMgdmFsdWVzLCBhIGtleSwgYW5kIGFuIG9wZXJhdG9yIHRoYXRcbnJlbGF0ZXMgdGhlIGtleSBhbmQgdmFsdWVzLiIsInByb3BlcnRpZXMiOnsia2V5Ijp7ImRlc2NyaXB0aW9uIjoia2V5IGlzIHRoZSBsYWJlbCBrZXkgdGhhdCB0aGUgc2VsZWN0b3IgYXBwbGllcyB0by4iLCJ0eXBlIjoic3RyaW5nIn0sIm9wZXJhdG9yIjp7ImRlc2NyaXB0aW9uIjoib3BlcmF0b3IgcmVwcmVzZW50cyBhIGtleSdzIHJlbGF0aW9uc2hpcCB0byBhIHNldCBvZiB2YWx1ZXMuXG5WYWxpZCBvcGVyYXRvcnMgYXJlIEluLCBOb3RJbiwgRXhpc3RzIGFuZCBEb2VzTm90RXhpc3QuIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZXMiOnsiZGVzY3JpcHRpb24iOiJ2YWx1ZXMgaXMgYW4gYXJyYXkgb2Ygc3RyaW5nIHZhbHVlcy4gSWYgdGhlIG9wZXJhdG9yIGlzIEluIG9yIE5vdEluLFxudGhlIHZhbHVlcyBhcnJheSBtdXN0IGJlIG5vbi1lbXB0eS4gSWYgdGhlIG9wZXJhdG9yIGlzIEV4aXN0cyBvciBEb2VzTm90RXhpc3QsXG50aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgZW1wdHkuIFRoaXMgYXJyYXkgaXMgcmVwbGFjZWQgZHVyaW5nIGEgc3RyYXRlZ2ljXG5tZXJnZSBwYXRjaC4iLCJpdGVtcyI6eyJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOiJhcnJheSJ9fSwicmVxdWlyZWQiOlsia2V5Iiwib3BlcmF0b3IiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwibWF0Y2hMYWJlbHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsidHlwZSI6InN0cmluZyJ9LCJkZXNjcmlwdGlvbiI6Im1hdGNoTGFiZWxzIGlzIGEgbWFwIG9mIHtrZXksdmFsdWV9IHBhaXJzLiBBIHNpbmdsZSB7a2V5LHZhbHVlfSBpbiB0aGUgbWF0Y2hMYWJlbHNcbm1hcCBpcyBlcXVpdmFsZW50IHRvIGFuIGVsZW1lbnQgb2YgbWF0Y2hFeHByZXNzaW9ucywgd2hvc2Uga2V5IGZpZWxkIGlzIFwia2V5XCIsIHRoZVxub3BlcmF0b3IgaXMgXCJJblwiLCBhbmQgdGhlIHZhbHVlcyBhcnJheSBjb250YWlucyBvbmx5IFwidmFsdWVcIi4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCIsIngta3ViZXJuZXRlcy1tYXAtdHlwZSI6ImF0b21pYyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInRhcmdldCI6eyJkZXNjcmlwdGlvbiI6InRhcmdldCBzcGVjaWZpZXMgdGhlIHRhcmdldCB2YWx1ZSBmb3IgdGhlIGdpdmVuIG1ldHJpYyIsInByb3BlcnRpZXMiOnsiYXZlcmFnZVV0aWxpemF0aW9uIjp7ImRlc2NyaXB0aW9uIjoiYXZlcmFnZVV0aWxpemF0aW9uIGlzIHRoZSB0YXJnZXQgdmFsdWUgb2YgdGhlIGF2ZXJhZ2Ugb2YgdGhlXG5yZXNvdXJjZSBtZXRyaWMgYWNyb3NzIGFsbCByZWxldmFudCBwb2RzLCByZXByZXNlbnRlZCBhcyBhIHBlcmNlbnRhZ2Ugb2ZcbnRoZSByZXF1ZXN0ZWQgdmFsdWUgb2YgdGhlIHJlc291cmNlIGZvciB0aGUgcG9kcy5cbkN1cnJlbnRseSBvbmx5IHZhbGlkIGZvciBSZXNvdXJjZSBtZXRyaWMgc291cmNlIHR5cGUiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sImF2ZXJhZ2VWYWx1ZSI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoiYXZlcmFnZVZhbHVlIGlzIHRoZSB0YXJnZXQgdmFsdWUgb2YgdGhlIGF2ZXJhZ2Ugb2YgdGhlXG5tZXRyaWMgYWNyb3NzIGFsbCByZWxldmFudCBwb2RzIChhcyBhIHF1YW50aXR5KSIsInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6InR5cGUgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBtZXRyaWMgdHlwZSBpcyBVdGlsaXphdGlvbiwgVmFsdWUsIG9yIEF2ZXJhZ2VWYWx1ZSIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJkZXNjcmlwdGlvbiI6InZhbHVlIGlzIHRoZSB0YXJnZXQgdmFsdWUgb2YgdGhlIG1ldHJpYyAoYXMgYSBxdWFudGl0eSkuIiwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJkZXNjcmliZWRPYmplY3QiLCJtZXRyaWMiLCJ0YXJnZXQiXSwidHlwZSI6Im9iamVjdCJ9LCJwb2RzIjp7ImRlc2NyaXB0aW9uIjoicG9kcyByZWZlcnMgdG8gYSBtZXRyaWMgZGVzY3JpYmluZyBlYWNoIHBvZCBpbiB0aGUgY3VycmVudCBzY2FsZSB0YXJnZXRcbihmb3IgZXhhbXBsZSwgdHJhbnNhY3Rpb25zLXByb2Nlc3NlZC1wZXItc2Vjb25kKS4gIFRoZSB2YWx1ZXMgd2lsbCBiZVxuYXZlcmFnZWQgdG9nZXRoZXIgYmVmb3JlIGJlaW5nIGNvbXBhcmVkIHRvIHRoZSB0YXJnZXQgdmFsdWUuIiwicHJvcGVydGllcyI6eyJtZXRyaWMiOnsiZGVzY3JpcHRpb24iOiJtZXRyaWMgaWRlbnRpZmllcyB0aGUgdGFyZ2V0IG1ldHJpYyBieSBuYW1lIGFuZCBzZWxlY3RvciIsInByb3BlcnRpZXMiOnsibmFtZSI6eyJkZXNjcmlwdGlvbiI6Im5hbWUgaXMgdGhlIG5hbWUgb2YgdGhlIGdpdmVuIG1ldHJpYyIsInR5cGUiOiJzdHJpbmcifSwic2VsZWN0b3IiOnsiZGVzY3JpcHRpb24iOiJzZWxlY3RvciBpcyB0aGUgc3RyaW5nLWVuY29kZWQgZm9ybSBvZiBhIHN0YW5kYXJkIGt1YmVybmV0ZXMgbGFiZWwgc2VsZWN0b3IgZm9yIHRoZSBnaXZlbiBtZXRyaWNcbldoZW4gc2V0LCBpdCBpcyBwYXNzZWQgYXMgYW4gYWRkaXRpb25hbCBwYXJhbWV0ZXIgdG8gdGhlIG1ldHJpY3Mgc2VydmVyIGZvciBtb3JlIHNwZWNpZmljIG1ldHJpY3Mgc2NvcGluZy5cbldoZW4gdW5zZXQsIGp1c3QgdGhlIG1ldHJpY05hbWUgd2lsbCBiZSB1c2VkIHRvIGdhdGhlciBtZXRyaWNzLiIsInByb3BlcnRpZXMiOnsibWF0Y2hFeHByZXNzaW9ucyI6eyJkZXNjcmlwdGlvbiI6Im1hdGNoRXhwcmVzc2lvbnMgaXMgYSBsaXN0IG9mIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50cy4gVGhlIHJlcXVpcmVtZW50cyBhcmUgQU5EZWQuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJBIGxhYmVsIHNlbGVjdG9yIHJlcXVpcmVtZW50IGlzIGEgc2VsZWN0b3IgdGhhdCBjb250YWlucyB2YWx1ZXMsIGEga2V5LCBhbmQgYW4gb3BlcmF0b3IgdGhhdFxucmVsYXRlcyB0aGUga2V5IGFuZCB2YWx1ZXMuIiwicHJvcGVydGllcyI6eyJrZXkiOnsiZGVzY3JpcHRpb24iOiJrZXkgaXMgdGhlIGxhYmVsIGtleSB0aGF0IHRoZSBzZWxlY3RvciBhcHBsaWVzIHRvLiIsInR5cGUiOiJzdHJpbmcifSwib3BlcmF0b3IiOnsiZGVzY3JpcHRpb24iOiJvcGVyYXRvciByZXByZXNlbnRzIGEga2V5J3MgcmVsYXRpb25zaGlwIHRvIGEgc2V0IG9mIHZhbHVlcy5cblZhbGlkIG9wZXJhdG9ycyBhcmUgSW4sIE5vdEluLCBFeGlzdHMgYW5kIERvZXNOb3RFeGlzdC4iLCJ0eXBlIjoic3RyaW5nIn0sInZhbHVlcyI6eyJkZXNjcmlwdGlvbiI6InZhbHVlcyBpcyBhbiBhcnJheSBvZiBzdHJpbmcgdmFsdWVzLiBJZiB0aGUgb3BlcmF0b3IgaXMgSW4gb3IgTm90SW4sXG50aGUgdmFsdWVzIGFycmF5IG11c3QgYmUgbm9uLWVtcHR5LiBJZiB0aGUgb3BlcmF0b3IgaXMgRXhpc3RzIG9yIERvZXNOb3RFeGlzdCxcbnRoZSB2YWx1ZXMgYXJyYXkgbXVzdCBiZSBlbXB0eS4gVGhpcyBhcnJheSBpcyByZXBsYWNlZCBkdXJpbmcgYSBzdHJhdGVnaWNcbm1lcmdlIHBhdGNoLiIsIml0ZW1zIjp7InR5cGUiOiJzdHJpbmcifSwidHlwZSI6ImFycmF5In19LCJyZXF1aXJlZCI6WyJrZXkiLCJvcGVyYXRvciJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSJ9LCJtYXRjaExhYmVscyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJ0eXBlIjoic3RyaW5nIn0sImRlc2NyaXB0aW9uIjoibWF0Y2hMYWJlbHMgaXMgYSBtYXAgb2Yge2tleSx2YWx1ZX0gcGFpcnMuIEEgc2luZ2xlIHtrZXksdmFsdWV9IGluIHRoZSBtYXRjaExhYmVsc1xubWFwIGlzIGVxdWl2YWxlbnQgdG8gYW4gZWxlbWVudCBvZiBtYXRjaEV4cHJlc3Npb25zLCB3aG9zZSBrZXkgZmllbGQgaXMgXCJrZXlcIiwgdGhlXG5vcGVyYXRvciBpcyBcIkluXCIsIGFuZCB0aGUgdmFsdWVzIGFycmF5IGNvbnRhaW5zIG9ubHkgXCJ2YWx1ZVwiLiBUaGUgcmVxdWlyZW1lbnRzIGFyZSBBTkRlZC4iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0IiwieC1rdWJlcm5ldGVzLW1hcC10eXBlIjoiYXRvbWljIn19LCJyZXF1aXJlZCI6WyJuYW1lIl0sInR5cGUiOiJvYmplY3QifSwidGFyZ2V0Ijp7ImRlc2NyaXB0aW9uIjoidGFyZ2V0IHNwZWNpZmllcyB0aGUgdGFyZ2V0IHZhbHVlIGZvciB0aGUgZ2l2ZW4gbWV0cmljIiwicHJvcGVydGllcyI6eyJhdmVyYWdlVXRpbGl6YXRpb24iOnsiZGVzY3JpcHRpb24iOiJhdmVyYWdlVXRpbGl6YXRpb24gaXMgdGhlIHRhcmdldCB2YWx1ZSBvZiB0aGUgYXZlcmFnZSBvZiB0aGVcbnJlc291cmNlIG1ldHJpYyBhY3Jvc3MgYWxsIHJlbGV2YW50IHBvZHMsIHJlcHJlc2VudGVkIGFzIGEgcGVyY2VudGFnZSBvZlxudGhlIHJlcXVlc3RlZCB2YWx1ZSBvZiB0aGUgcmVzb3VyY2UgZm9yIHRoZSBwb2RzLlxuQ3VycmVudGx5IG9ubHkgdmFsaWQgZm9yIFJlc291cmNlIG1ldHJpYyBzb3VyY2UgdHlwZSIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifSwiYXZlcmFnZVZhbHVlIjp7ImFueU9mIjpbeyJ0eXBlIjoiaW50ZWdlciJ9LHsidHlwZSI6InN0cmluZyJ9XSwiZGVzY3JpcHRpb24iOiJhdmVyYWdlVmFsdWUgaXMgdGhlIHRhcmdldCB2YWx1ZSBvZiB0aGUgYXZlcmFnZSBvZiB0aGVcbm1ldHJpYyBhY3Jvc3MgYWxsIHJlbGV2YW50IHBvZHMgKGFzIGEgcXVhbnRpdHkpIiwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9LCJ0eXBlIjp7ImRlc2NyaXB0aW9uIjoidHlwZSByZXByZXNlbnRzIHdoZXRoZXIgdGhlIG1ldHJpYyB0eXBlIGlzIFV0aWxpemF0aW9uLCBWYWx1ZSwgb3IgQXZlcmFnZVZhbHVlIiwidHlwZSI6InN0cmluZyJ9LCJ2YWx1ZSI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoidmFsdWUgaXMgdGhlIHRhcmdldCB2YWx1ZSBvZiB0aGUgbWV0cmljIChhcyBhIHF1YW50aXR5KS4iLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX19LCJyZXF1aXJlZCI6WyJ0eXBlIl0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbIm1ldHJpYyIsInRhcmdldCJdLCJ0eXBlIjoib2JqZWN0In0sInJlc291cmNlIjp7ImRlc2NyaXB0aW9uIjoicmVzb3VyY2UgcmVmZXJzIHRvIGEgcmVzb3VyY2UgbWV0cmljIChzdWNoIGFzIHRob3NlIHNwZWNpZmllZCBpblxucmVxdWVzdHMgYW5kIGxpbWl0cykga25vd24gdG8gS3ViZXJuZXRlcyBkZXNjcmliaW5nIGVhY2ggcG9kIGluIHRoZVxuY3VycmVudCBzY2FsZSB0YXJnZXQgKGUuZy4gQ1BVIG9yIG1lbW9yeSkuIFN1Y2ggbWV0cmljcyBhcmUgYnVpbHQgaW4gdG9cbkt1YmVybmV0ZXMsIGFuZCBoYXZlIHNwZWNpYWwgc2NhbGluZyBvcHRpb25zIG9uIHRvcCBvZiB0aG9zZSBhdmFpbGFibGVcbnRvIG5vcm1hbCBwZXItcG9kIG1ldHJpY3MgdXNpbmcgdGhlIFwicG9kc1wiIHNvdXJjZS4iLCJwcm9wZXJ0aWVzIjp7Im5hbWUiOnsiZGVzY3JpcHRpb24iOiJuYW1lIGlzIHRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBpbiBxdWVzdGlvbi4iLCJ0eXBlIjoic3RyaW5nIn0sInRhcmdldCI6eyJkZXNjcmlwdGlvbiI6InRhcmdldCBzcGVjaWZpZXMgdGhlIHRhcmdldCB2YWx1ZSBmb3IgdGhlIGdpdmVuIG1ldHJpYyIsInByb3BlcnRpZXMiOnsiYXZlcmFnZVV0aWxpemF0aW9uIjp7ImRlc2NyaXB0aW9uIjoiYXZlcmFnZVV0aWxpemF0aW9uIGlzIHRoZSB0YXJnZXQgdmFsdWUgb2YgdGhlIGF2ZXJhZ2Ugb2YgdGhlXG5yZXNvdXJjZSBtZXRyaWMgYWNyb3NzIGFsbCByZWxldmFudCBwb2RzLCByZXByZXNlbnRlZCBhcyBhIHBlcmNlbnRhZ2Ugb2ZcbnRoZSByZXF1ZXN0ZWQgdmFsdWUgb2YgdGhlIHJlc291cmNlIGZvciB0aGUgcG9kcy5cbkN1cnJlbnRseSBvbmx5IHZhbGlkIGZvciBSZXNvdXJjZSBtZXRyaWMgc291cmNlIHR5cGUiLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sImF2ZXJhZ2VWYWx1ZSI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sImRlc2NyaXB0aW9uIjoiYXZlcmFnZVZhbHVlIGlzIHRoZSB0YXJnZXQgdmFsdWUgb2YgdGhlIGF2ZXJhZ2Ugb2YgdGhlXG5tZXRyaWMgYWNyb3NzIGFsbCByZWxldmFudCBwb2RzIChhcyBhIHF1YW50aXR5KSIsInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6InR5cGUgcmVwcmVzZW50cyB3aGV0aGVyIHRoZSBtZXRyaWMgdHlwZSBpcyBVdGlsaXphdGlvbiwgVmFsdWUsIG9yIEF2ZXJhZ2VWYWx1ZSIsInR5cGUiOiJzdHJpbmcifSwidmFsdWUiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJkZXNjcmlwdGlvbiI6InZhbHVlIGlzIHRoZSB0YXJnZXQgdmFsdWUgb2YgdGhlIG1ldHJpYyAoYXMgYSBxdWFudGl0eSkuIiwicGF0dGVybiI6Il4oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkoKFtLTUdUUEVdaSl8W251bWtNR1RQRV18KFtlRV0oXFwrfC0pPygoWzAtOV0rKFxcLlswLTldKik/KXwoXFwuWzAtOV0rKSkpKT8kIiwieC1rdWJlcm5ldGVzLWludC1vci1zdHJpbmciOnRydWV9fSwicmVxdWlyZWQiOlsidHlwZSJdLCJ0eXBlIjoib2JqZWN0In19LCJyZXF1aXJlZCI6WyJuYW1lIiwidGFyZ2V0Il0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6eyJkZXNjcmlwdGlvbiI6InR5cGUgaXMgdGhlIHR5cGUgb2YgbWV0cmljIHNvdXJjZS4gIEl0IHNob3VsZCBiZSBvbmUgb2YgXCJDb250YWluZXJSZXNvdXJjZVwiLCBcIkV4dGVybmFsXCIsXG5cIk9iamVjdFwiLCBcIlBvZHNcIiBvciBcIlJlc291cmNlXCIsIGVhY2ggbWFwcGluZyB0byBhIG1hdGNoaW5nIGZpZWxkIGluIHRoZSBvYmplY3QuXG5Ob3RlOiBcIkNvbnRhaW5lclJlc291cmNlXCIgdHlwZSBpcyBhdmFpbGFibGUgb24gd2hlbiB0aGUgZmVhdHVyZS1nYXRlXG5IUEFDb250YWluZXJNZXRyaWNzIGlzIGVuYWJsZWQiLCJ0eXBlIjoic3RyaW5nIn19LCJyZXF1aXJlZCI6WyJ0eXBlIl0sInR5cGUiOiJvYmplY3QifSwidHlwZSI6ImFycmF5In0sIm1pblJlcGxpY2FzIjp7ImRlc2NyaXB0aW9uIjoibWluUmVwbGljYXMgaXMgdGhlIGxvd2VyIGxpbWl0IGZvciB0aGUgbnVtYmVyIG9mIHJlcGxpY2FzIHRvIHdoaWNoIHRoZSBhdXRvc2NhbGVyXG5jYW4gc2NhbGUgZG93bi4gIEl0IGRlZmF1bHRzIHRvIDEgcG9kLiAgbWluUmVwbGljYXMgaXMgYWxsb3dlZCB0byBiZSAwIGlmIHRoZVxuYWxwaGEgZmVhdHVyZSBnYXRlIEhQQVNjYWxlVG9aZXJvIGlzIGVuYWJsZWQgYW5kIGF0IGxlYXN0IG9uZSBPYmplY3Qgb3IgRXh0ZXJuYWxcbm1ldHJpYyBpcyBjb25maWd1cmVkLiAgU2NhbGluZyBpcyBhY3RpdmUgYXMgbG9uZyBhcyBhdCBsZWFzdCBvbmUgbWV0cmljIHZhbHVlIGlzXG5hdmFpbGFibGUuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwicmVxdWlyZWQiOlsibWF4UmVwbGljYXMiXSwidHlwZSI6Im9iamVjdCJ9LCJzdGF0aWMiOnsiZGVzY3JpcHRpb24iOiJDb25maWd1cmUgYSBzdGF0aWMgbnVtYmVyIG9mIHJlcGxpY2FzLiBEZWZhdWx0cyB0byAxLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInR5cGUiOiJvYmplY3QifSwicmVzb3VyY2VzIjp7ImRlc2NyaXB0aW9uIjoiUmVzb3VyY2VzIGhvbGRzIHRoZSByZXNvdXJjZSByZXF1aXJlbWVudHMgdG8gdXNlIGZvciB0aGUgRW52b3lcbkRlcGxveW1lbnQuIERlZmF1bHRzIHRvIG5vIHJlc291cmNlIHJlcXVlc3RzIG5vciBsaW1pdHMuIiwicHJvcGVydGllcyI6eyJjbGFpbXMiOnsiZGVzY3JpcHRpb24iOiJDbGFpbXMgbGlzdHMgdGhlIG5hbWVzIG9mIHJlc291cmNlcywgZGVmaW5lZCBpbiBzcGVjLnJlc291cmNlQ2xhaW1zLFxudGhhdCBhcmUgdXNlZCBieSB0aGlzIGNvbnRhaW5lci5cblxuXG5UaGlzIGlzIGFuIGFscGhhIGZpZWxkIGFuZCByZXF1aXJlcyBlbmFibGluZyB0aGVcbkR5bmFtaWNSZXNvdXJjZUFsbG9jYXRpb24gZmVhdHVyZSBnYXRlLlxuXG5cblRoaXMgZmllbGQgaXMgaW1tdXRhYmxlLiBJdCBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRhaW5lcnMuIiwiaXRlbXMiOnsiZGVzY3JpcHRpb24iOiJSZXNvdXJjZUNsYWltIHJlZmVyZW5jZXMgb25lIGVudHJ5IGluIFBvZFNwZWMuUmVzb3VyY2VDbGFpbXMuIiwicHJvcGVydGllcyI6eyJuYW1lIjp7ImRlc2NyaXB0aW9uIjoiTmFtZSBtdXN0IG1hdGNoIHRoZSBuYW1lIG9mIG9uZSBlbnRyeSBpbiBwb2Quc3BlYy5yZXNvdXJjZUNsYWltcyBvZlxudGhlIFBvZCB3aGVyZSB0aGlzIGZpZWxkIGlzIHVzZWQuIEl0IG1ha2VzIHRoYXQgcmVzb3VyY2UgYXZhaWxhYmxlXG5pbnNpZGUgYSBjb250YWluZXIuIiwidHlwZSI6InN0cmluZyJ9fSwicmVxdWlyZWQiOlsibmFtZSJdLCJ0eXBlIjoib2JqZWN0In0sInR5cGUiOiJhcnJheSIsIngta3ViZXJuZXRlcy1saXN0LW1hcC1rZXlzIjpbIm5hbWUiXSwieC1rdWJlcm5ldGVzLWxpc3QtdHlwZSI6Im1hcCJ9LCJsaW1pdHMiOnsiYWRkaXRpb25hbFByb3BlcnRpZXMiOnsiYW55T2YiOlt7InR5cGUiOiJpbnRlZ2VyIn0seyJ0eXBlIjoic3RyaW5nIn1dLCJwYXR0ZXJuIjoiXihcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSgoW0tNR1RQRV1pKXxbbnVta01HVFBFXXwoW2VFXShcXCt8LSk/KChbMC05XSsoXFwuWzAtOV0qKT8pfChcXC5bMC05XSspKSkpPyQiLCJ4LWt1YmVybmV0ZXMtaW50LW9yLXN0cmluZyI6dHJ1ZX0sImRlc2NyaXB0aW9uIjoiTGltaXRzIGRlc2NyaWJlcyB0aGUgbWF4aW11bSBhbW91bnQgb2YgY29tcHV0ZSByZXNvdXJjZXMgYWxsb3dlZC5cbk1vcmUgaW5mbzogaHR0cHM6Ly9rdWJlcm5ldGVzLmlvL2RvY3MvY29uY2VwdHMvY29uZmlndXJhdGlvbi9tYW5hZ2UtcmVzb3VyY2VzLWNvbnRhaW5lcnMvIiwidHlwZSI6Im9iamVjdCJ9LCJyZXF1ZXN0cyI6eyJhZGRpdGlvbmFsUHJvcGVydGllcyI6eyJhbnlPZiI6W3sidHlwZSI6ImludGVnZXIifSx7InR5cGUiOiJzdHJpbmcifV0sInBhdHRlcm4iOiJeKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKChbS01HVFBFXWkpfFtudW1rTUdUUEVdfChbZUVdKFxcK3wtKT8oKFswLTldKyhcXC5bMC05XSopPyl8KFxcLlswLTldKykpKSk/JCIsIngta3ViZXJuZXRlcy1pbnQtb3Itc3RyaW5nIjp0cnVlfSwiZGVzY3JpcHRpb24iOiJSZXF1ZXN0cyBkZXNjcmliZXMgdGhlIG1pbmltdW0gYW1vdW50IG9mIGNvbXB1dGUgcmVzb3VyY2VzIHJlcXVpcmVkLlxuSWYgUmVxdWVzdHMgaXMgb21pdHRlZCBmb3IgYSBjb250YWluZXIsIGl0IGRlZmF1bHRzIHRvIExpbWl0cyBpZiB0aGF0IGlzIGV4cGxpY2l0bHkgc3BlY2lmaWVkLFxub3RoZXJ3aXNlIHRvIGFuIGltcGxlbWVudGF0aW9uLWRlZmluZWQgdmFsdWUuIFJlcXVlc3RzIGNhbm5vdCBleGNlZWQgTGltaXRzLlxuTW9yZSBpbmZvOiBodHRwczovL2t1YmVybmV0ZXMuaW8vZG9jcy9jb25jZXB0cy9jb25maWd1cmF0aW9uL21hbmFnZS1yZXNvdXJjZXMtY29udGFpbmVycy8iLCJ0eXBlIjoib2JqZWN0In19LCJ0eXBlIjoib2JqZWN0In0sInNodXRkb3duTWFuYWdlciI6eyJkZXNjcmlwdGlvbiI6IlNodXRkb3duTWFuYWdlciBkZWZpbmVzIGNvbmZpZ3VyYXRpb24gZm9yIEVudm95J3Mgc2h1dGRvd25cbm1hbmFnZXIsIHdoaWNoIGhhbmRsZXMgZ3JhY2VmdWwgdGVybWluYXRpb24gb2YgRW52b3kgcG9kcyIsInByb3BlcnRpZXMiOnsiZHJhaW5TdHJhdGVneSI6eyJkZXNjcmlwdGlvbiI6IlRoZSBkcmFpbiBzdHJhdGVneSBmb3IgdGhlIGdyYWNlZnVsIHNodXRkb3duLiBJdCBhbHNvIGFmZmVjdHNcbmRyYWluIHdoZW4gbGlzdGVuZXJzIGFyZSBtb2RpZmllZCBvciByZW1vdmVkIHZpYSBMRFMuIiwiZW51bSI6WyJncmFkdWFsIiwiaW1tZWRpYXRlIl0sInR5cGUiOiJzdHJpbmcifSwiZHJhaW5UaW1lIjp7ImRlc2NyaXB0aW9uIjoiVGhlIHRpbWUgaW4gc2Vjb25kcyB0aGF0IEVudm95IHdpbGwgZHJhaW4gY29ubmVjdGlvbnMgZHVyaW5nIHNodXRkb3duLlxuSXQgYWxzbyBhZmZlY3RzIGRyYWluIGJlaGF2aW91ciB3aGVuIGxpc3RlbmVycyBhcmUgbW9kaWZpZWQgb3IgcmVtb3ZlZCB2aWEgTERTLiIsImZvcm1hdCI6ImludDY0IiwidHlwZSI6ImludGVnZXIifSwiaW1hZ2UiOnsiZGVzY3JpcHRpb24iOiJJbWFnZSBpcyB0aGUgc2h1dGRvd24gbWFuYWdlciBpbWFnZSBhbmQgdGFnIHRvIHVzZSIsInR5cGUiOiJzdHJpbmcifSwic2VydmVyUG9ydCI6eyJkZXNjcmlwdGlvbiI6IkNvbmZpZ3VyZXMgdGhlIHN1dGRvd24gbWFuYWdlcidzIHNlcnZlciBwb3J0LiBEZWZhdWx0cyB0byA4MDkwLiIsImZvcm1hdCI6ImludDMyIiwidHlwZSI6ImludGVnZXIifX0sInR5cGUiOiJvYmplY3QifX0sInJlcXVpcmVkIjpbImRpc2NvdmVyeVNlcnZpY2VSZWYiLCJlbnZveUNvbmZpZ1JlZiJdLCJ0eXBlIjoib2JqZWN0In0sInN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IkVudm95RGVwbG95bWVudFN0YXR1cyBkZWZpbmVzIHRoZSBvYnNlcnZlZCBzdGF0ZSBvZiBFbnZveURlcGxveW1lbnQiLCJwcm9wZXJ0aWVzIjp7ImRlcGxveW1lbnROYW1lIjp7InR5cGUiOiJzdHJpbmcifSwiZGVwbG95bWVudFN0YXR1cyI6eyJkZXNjcmlwdGlvbiI6IkRlcGxveW1lbnRTdGF0dXMgaXMgdGhlIG1vc3QgcmVjZW50bHkgb2JzZXJ2ZWQgc3RhdHVzIG9mIHRoZSBEZXBsb3ltZW50LiIsInByb3BlcnRpZXMiOnsiYXZhaWxhYmxlUmVwbGljYXMiOnsiZGVzY3JpcHRpb24iOiJUb3RhbCBudW1iZXIgb2YgYXZhaWxhYmxlIHBvZHMgKHJlYWR5IGZvciBhdCBsZWFzdCBtaW5SZWFkeVNlY29uZHMpIHRhcmdldGVkIGJ5IHRoaXMgZGVwbG95bWVudC4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sImNvbGxpc2lvbkNvdW50Ijp7ImRlc2NyaXB0aW9uIjoiQ291bnQgb2YgaGFzaCBjb2xsaXNpb25zIGZvciB0aGUgRGVwbG95bWVudC4gVGhlIERlcGxveW1lbnQgY29udHJvbGxlciB1c2VzIHRoaXNcbmZpZWxkIGFzIGEgY29sbGlzaW9uIGF2b2lkYW5jZSBtZWNoYW5pc20gd2hlbiBpdCBuZWVkcyB0byBjcmVhdGUgdGhlIG5hbWUgZm9yIHRoZVxubmV3ZXN0IFJlcGxpY2FTZXQuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJjb25kaXRpb25zIjp7ImRlc2NyaXB0aW9uIjoiUmVwcmVzZW50cyB0aGUgbGF0ZXN0IGF2YWlsYWJsZSBvYnNlcnZhdGlvbnMgb2YgYSBkZXBsb3ltZW50J3MgY3VycmVudCBzdGF0ZS4iLCJpdGVtcyI6eyJkZXNjcmlwdGlvbiI6IkRlcGxveW1lbnRDb25kaXRpb24gZGVzY3JpYmVzIHRoZSBzdGF0ZSBvZiBhIGRlcGxveW1lbnQgYXQgYSBjZXJ0YWluIHBvaW50LiIsInByb3BlcnRpZXMiOnsibGFzdFRyYW5zaXRpb25UaW1lIjp7ImRlc2NyaXB0aW9uIjoiTGFzdCB0aW1lIHRoZSBjb25kaXRpb24gdHJhbnNpdGlvbmVkIGZyb20gb25lIHN0YXR1cyB0byBhbm90aGVyLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsInR5cGUiOiJzdHJpbmcifSwibGFzdFVwZGF0ZVRpbWUiOnsiZGVzY3JpcHRpb24iOiJUaGUgbGFzdCB0aW1lIHRoaXMgY29uZGl0aW9uIHdhcyB1cGRhdGVkLiIsImZvcm1hdCI6ImRhdGUtdGltZSIsInR5cGUiOiJzdHJpbmcifSwibWVzc2FnZSI6eyJkZXNjcmlwdGlvbiI6IkEgaHVtYW4gcmVhZGFibGUgbWVzc2FnZSBpbmRpY2F0aW5nIGRldGFpbHMgYWJvdXQgdGhlIHRyYW5zaXRpb24uIiwidHlwZSI6InN0cmluZyJ9LCJyZWFzb24iOnsiZGVzY3JpcHRpb24iOiJUaGUgcmVhc29uIGZvciB0aGUgY29uZGl0aW9uJ3MgbGFzdCB0cmFuc2l0aW9uLiIsInR5cGUiOiJzdHJpbmcifSwic3RhdHVzIjp7ImRlc2NyaXB0aW9uIjoiU3RhdHVzIG9mIHRoZSBjb25kaXRpb24sIG9uZSBvZiBUcnVlLCBGYWxzZSwgVW5rbm93bi4iLCJ0eXBlIjoic3RyaW5nIn0sInR5cGUiOnsiZGVzY3JpcHRpb24iOiJUeXBlIG9mIGRlcGxveW1lbnQgY29uZGl0aW9uLiIsInR5cGUiOiJzdHJpbmcifX0sInJlcXVpcmVkIjpbInN0YXR1cyIsInR5cGUiXSwidHlwZSI6Im9iamVjdCJ9LCJ0eXBlIjoiYXJyYXkifSwib2JzZXJ2ZWRHZW5lcmF0aW9uIjp7ImRlc2NyaXB0aW9uIjoiVGhlIGdlbmVyYXRpb24gb2JzZXJ2ZWQgYnkgdGhlIGRlcGxveW1lbnQgY29udHJvbGxlci4iLCJmb3JtYXQiOiJpbnQ2NCIsInR5cGUiOiJpbnRlZ2VyIn0sInJlYWR5UmVwbGljYXMiOnsiZGVzY3JpcHRpb24iOiJyZWFkeVJlcGxpY2FzIGlzIHRoZSBudW1iZXIgb2YgcG9kcyB0YXJnZXRlZCBieSB0aGlzIERlcGxveW1lbnQgd2l0aCBhIFJlYWR5IENvbmRpdGlvbi4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInJlcGxpY2FzIjp7ImRlc2NyaXB0aW9uIjoiVG90YWwgbnVtYmVyIG9mIG5vbi10ZXJtaW5hdGVkIHBvZHMgdGFyZ2V0ZWQgYnkgdGhpcyBkZXBsb3ltZW50ICh0aGVpciBsYWJlbHMgbWF0Y2ggdGhlIHNlbGVjdG9yKS4iLCJmb3JtYXQiOiJpbnQzMiIsInR5cGUiOiJpbnRlZ2VyIn0sInVuYXZhaWxhYmxlUmVwbGljYXMiOnsiZGVzY3JpcHRpb24iOiJUb3RhbCBudW1iZXIgb2YgdW5hdmFpbGFibGUgcG9kcyB0YXJnZXRlZCBieSB0aGlzIGRlcGxveW1lbnQuIFRoaXMgaXMgdGhlIHRvdGFsIG51bWJlciBvZlxucG9kcyB0aGF0IGFyZSBzdGlsbCByZXF1aXJlZCBmb3IgdGhlIGRlcGxveW1lbnQgdG8gaGF2ZSAxMDAlIGF2YWlsYWJsZSBjYXBhY2l0eS4gVGhleSBtYXlcbmVpdGhlciBiZSBwb2RzIHRoYXQgYXJlIHJ1bm5pbmcgYnV0IG5vdCB5ZXQgYXZhaWxhYmxlIG9yIHBvZHMgdGhhdCBzdGlsbCBoYXZlIG5vdCBiZWVuIGNyZWF0ZWQuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9LCJ1cGRhdGVkUmVwbGljYXMiOnsiZGVzY3JpcHRpb24iOiJUb3RhbCBudW1iZXIgb2Ygbm9uLXRlcm1pbmF0ZWQgcG9kcyB0YXJnZXRlZCBieSB0aGlzIGRlcGxveW1lbnQgdGhhdCBoYXZlIHRoZSBkZXNpcmVkIHRlbXBsYXRlIHNwZWMuIiwiZm9ybWF0IjoiaW50MzIiLCJ0eXBlIjoiaW50ZWdlciJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwidHlwZSI6Im9iamVjdCJ9fSwic2VydmVkIjp0cnVlLCJzdG9yYWdlIjp0cnVlLCJzdWJyZXNvdXJjZXMiOnsic3RhdHVzIjp7fX19XX0sInN0YXR1cyI6eyJhY2NlcHRlZE5hbWVzIjp7ImtpbmQiOiIiLCJwbHVyYWwiOiIifSwiY29uZGl0aW9ucyI6bnVsbCwic3RvcmVkVmVyc2lvbnMiOm51bGx9fQ== +relatedImages: +- image: quay.io/3scale/marin3r-bundle:v0.13.2-alpha.2 + name: "" +- image: quay.io/3scale/marin3r:v0.13.2-alpha.2 + name: "" +schema: olm.bundle diff --git a/config/manager/kustomization.yaml b/config/manager/kustomization.yaml index afa2da14..7bac200e 100644 --- a/config/manager/kustomization.yaml +++ b/config/manager/kustomization.yaml @@ -13,7 +13,7 @@ kind: Kustomization images: - name: controller newName: quay.io/3scale/marin3r - newTag: v0.13.2-alpha.1 + newTag: v0.13.2-alpha.2 patchesStrategicMerge: - custom/manager_patch.yaml diff --git a/config/webhook/kustomization.yaml b/config/webhook/kustomization.yaml index 5fc79bef..3253078e 100644 --- a/config/webhook/kustomization.yaml +++ b/config/webhook/kustomization.yaml @@ -10,7 +10,7 @@ kind: Kustomization images: - name: controller newName: quay.io/3scale/marin3r - newTag: v0.13.2-alpha.1 + newTag: v0.13.2-alpha.2 # [CUSTOM: pod mutating webhook config] This patch adds a label selector to the MutatingWebhookConfig patchesStrategicMerge: diff --git a/pkg/image/zz_generated.go b/pkg/image/zz_generated.go index 90726247..768fb6e1 100644 --- a/pkg/image/zz_generated.go +++ b/pkg/image/zz_generated.go @@ -1,5 +1,5 @@ package image const ( - image string = "quay.io/3scale/marin3r:v0.13.2-alpha.1" + image string = "quay.io/3scale/marin3r:v0.13.2-alpha.2" ) diff --git a/pkg/version/zz_generated.go b/pkg/version/zz_generated.go index bb6288d7..01b2949f 100644 --- a/pkg/version/zz_generated.go +++ b/pkg/version/zz_generated.go @@ -1,5 +1,5 @@ package version const ( - version string = "v0.13.2-alpha.1" + version string = "v0.13.2-alpha.2" )