From 3a7606a2c75fcfa0e020f8d9199042661ab18758 Mon Sep 17 00:00:00 2001 From: klamas Date: Thu, 10 Nov 2022 03:20:49 +0500 Subject: [PATCH 1/4] add global nodeSelector, tolerations and affinity --- charts/posthog/ALL_VALUES.md | 3 + .../templates/_snippet-plugins-deployment.tpl | 19 +--- .../templates/clickhouse-backup-cronjob.yaml | 3 + .../templates/clickhouse_instance.yaml | 13 +-- .../posthog/templates/events-deployment.yaml | 23 ++--- charts/posthog/templates/migrate.job.yaml | 20 +---- .../templates/pgbouncer-deployment.yaml | 17 +--- charts/posthog/templates/web-deployment.yaml | 19 +--- .../posthog/templates/worker-deployment.yaml | 19 +--- .../clickhouse-backup-cronjob.yaml.snap | 3 + .../clickhouse-instance.yaml.snap | 3 + .../pgbouncer-deployment.yaml.snap | 3 + charts/posthog/tests/clickhouse-instance.yaml | 89 ++++++++++++++++++- charts/posthog/tests/migrate-job.yaml | 89 +++++++++++++++++++ charts/posthog/values.yaml | 26 +++++- 15 files changed, 241 insertions(+), 108 deletions(-) diff --git a/charts/posthog/ALL_VALUES.md b/charts/posthog/ALL_VALUES.md index 3c4c03722..83629d7dd 100644 --- a/charts/posthog/ALL_VALUES.md +++ b/charts/posthog/ALL_VALUES.md @@ -23,6 +23,9 @@ The following table lists the configurable parameters of the PostHog chart and t | posthogSecretKey.existingSecret | string | `nil` | Specify that the key should be pulled from an existing secret key. By default the chart will generate a secret and create a Kubernetes Secret containing it. | | posthogSecretKey.existingSecretKey | string | `"posthog-secret"` | Specify the key within the secret from which SECRET_KEY should be taken. | | env | list | `[]` | Environment variables to inject into every PostHog deployment. | +| nodeSelector | object | `{}` | Global Node labels for all deployment. | +| tolerations | list | `[]` | Global Toleration labels for all deployment. | +| affinity | object | `{}` | Global Affinity settings for all deployment. | | migrate.enabled | bool | `true` | Whether to install the PostHog migrate job or not. | | events.enabled | bool | `true` | Whether to install the PostHog events stack or not. | | events.replicacount | int | `1` | Count of events pods to run. This setting is ignored if `events.hpa.enabled` is set to `true`. | diff --git a/charts/posthog/templates/_snippet-plugins-deployment.tpl b/charts/posthog/templates/_snippet-plugins-deployment.tpl index 0ff3cbdef..c4e125245 100644 --- a/charts/posthog/templates/_snippet-plugins-deployment.tpl +++ b/charts/posthog/templates/_snippet-plugins-deployment.tpl @@ -44,22 +44,9 @@ spec: {{- end }} spec: serviceAccountName: {{ template "posthog.serviceAccountName" .root }} - - {{- if .params.affinity }} - affinity: - {{- toYaml .params.affinity | nindent 8 }} - {{- end }} - - {{- if .params.nodeSelector }} - nodeSelector: - {{- toYaml .params.nodeSelector | nindent 8 }} - {{- end }} - - {{- if .params.tolerations }} - tolerations: - {{- toYaml .params.tolerations | nindent 8 }} - {{- end }} - + affinity: {{ toYaml (merge .params.affinity .root.Values.affinity) | nindent 8 }} + nodeSelector: {{ toYaml (merge .params.nodeSelector .root.Values.nodeSelector) | nindent 8 }} + tolerations: {{ toYaml (coalesce .params.tolerations .root.Values.tolerations) | nindent 8 }} {{- if .params.schedulerName }} schedulerName: "{{ .params.schedulerName }}" {{- end }} diff --git a/charts/posthog/templates/clickhouse-backup-cronjob.yaml b/charts/posthog/templates/clickhouse-backup-cronjob.yaml index 95f74edce..1602bbb77 100644 --- a/charts/posthog/templates/clickhouse-backup-cronjob.yaml +++ b/charts/posthog/templates/clickhouse-backup-cronjob.yaml @@ -29,6 +29,9 @@ spec: {{- end }} {{- end }} {{- end }} + affinity: {{ toYaml (merge .Values.clickhouse.affinity .Values.affinity) | nindent 12 }} + nodeSelector: {{ toYaml (merge .Values.clickhouse.nodeSelector .Values.nodeSelector) | nindent 12 }} + tolerations: {{ toYaml (coalesce .Values.clickhouse.tolerations .Values.tolerations) | nindent 12 }} initContainers: # diff --git a/charts/posthog/templates/clickhouse_instance.yaml b/charts/posthog/templates/clickhouse_instance.yaml index f39529ac4..4af83ce72 100644 --- a/charts/posthog/templates/clickhouse_instance.yaml +++ b/charts/posthog/templates/clickhouse_instance.yaml @@ -71,16 +71,9 @@ spec: podDistribution: {{ toYaml .Values.clickhouse.podDistribution | nindent 12 }} {{- end}} spec: - {{- if .Values.clickhouse.affinity }} - affinity: {{ toYaml .Values.clickhouse.affinity | nindent 12 }} - {{- end }} - {{- if .Values.clickhouse.tolerations }} - tolerations: {{ toYaml .Values.clickhouse.tolerations | nindent 12 }} - {{- end }} - {{- if .Values.clickhouse.nodeSelector }} - nodeSelector: {{ toYaml .Values.clickhouse.nodeSelector | nindent 12 }} - {{- end }} - + affinity: {{ toYaml (merge .Values.clickhouse.affinity .Values.affinity) | nindent 12 }} + nodeSelector: {{ toYaml (merge .Values.clickhouse.nodeSelector .Values.nodeSelector) | nindent 12 }} + tolerations: {{ toYaml (coalesce .Values.clickhouse.tolerations .Values.tolerations) | nindent 12 }} {{- if .Values.clickhouse.persistence.enabled }} volumes: {{- if .Values.clickhouse.persistence.existingClaim }} diff --git a/charts/posthog/templates/events-deployment.yaml b/charts/posthog/templates/events-deployment.yaml index dd40f9815..91a66ed9a 100644 --- a/charts/posthog/templates/events-deployment.yaml +++ b/charts/posthog/templates/events-deployment.yaml @@ -25,8 +25,8 @@ spec: metadata: annotations: checksum/secrets.yaml: {{ include (print $.Template.BasePath "/secrets.yaml") . | sha256sum }} - {{- if .Values.web.podAnnotations }} -{{ toYaml .Values.web.podAnnotations | indent 8 }} + {{- if .Values.events.podAnnotations }} +{{ toYaml .Values.events.podAnnotations | indent 8 }} {{- end }} labels: app: {{ template "posthog.fullname" . }} @@ -41,22 +41,9 @@ spec: spec: terminationGracePeriodSeconds: {{ include "snippet.web-deployments.terminationGracePeriodSeconds" . }} serviceAccountName: {{ template "posthog.serviceAccountName" . }} - - {{- if .Values.web.affinity }} - affinity: -{{ toYaml .Values.web.affinity | indent 8 }} - {{- end }} - - {{- if .Values.web.nodeSelector }} - nodeSelector: -{{ toYaml .Values.web.nodeSelector | indent 8 }} - {{- end }} - - {{- if .Values.web.tolerations }} - tolerations: -{{ toYaml .Values.web.tolerations | indent 8 }} - {{- end }} - + affinity: {{ toYaml (merge .Values.events.affinity .Values.affinity) | nindent 8 }} + nodeSelector: {{ toYaml (merge .Values.events.nodeSelector .Values.nodeSelector) | nindent 8 }} + tolerations: {{ toYaml (coalesce .Values.events.tolerations .Values.tolerations) | nindent 8 }} {{- if .Values.web.schedulerName }} schedulerName: "{{ .Values.web.schedulerName }}" {{- end }} diff --git a/charts/posthog/templates/migrate.job.yaml b/charts/posthog/templates/migrate.job.yaml index 918f65021..9f0fb8087 100644 --- a/charts/posthog/templates/migrate.job.yaml +++ b/charts/posthog/templates/migrate.job.yaml @@ -21,28 +21,16 @@ spec: {{ toYaml .Values.worker.podLabels | indent 8 }} {{- end }} spec: - {{- with .Values.hooks.affinity }} - affinity: -{{ toYaml . | indent 8 }} - {{- end }} - - {{- with .Values.hooks.nodeSelector }} - nodeSelector: -{{ toYaml . | indent 8 }} - {{- end }} - - {{- with .Values.hooks.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} - {{- end }} - + affinity: {{ toYaml (merge .Values.hooks.affinity .Values.affinity) | nindent 8 }} + nodeSelector: {{ toYaml (merge .Values.hooks.nodeSelector .Values.nodeSelector) | nindent 8 }} + tolerations: {{ toYaml (coalesce .Values.hooks.tolerations .Values.tolerations) | nindent 8 }} restartPolicy: Never {{- if .Values.image.imagePullSecrets }} imagePullSecrets: {{ toYaml .Values.image.imagePullSecrets | indent 8 }} {{- end }} - + # I do not know for sure if the old one has been used anywhere, so do both :( {{- if .Values.image.pullSecrets }} imagePullSecrets: diff --git a/charts/posthog/templates/pgbouncer-deployment.yaml b/charts/posthog/templates/pgbouncer-deployment.yaml index c59abaa14..fb2e41638 100644 --- a/charts/posthog/templates/pgbouncer-deployment.yaml +++ b/charts/posthog/templates/pgbouncer-deployment.yaml @@ -40,21 +40,10 @@ spec: # shuts down and exits before the terminationGracePeriod is done, we # moves to the next step immediately. terminationGracePeriodSeconds: 65 - serviceAccountName: {{ template "posthog.serviceAccountName" . }} - - {{- if .Values.pgbouncer.affinity }} - affinity: {{ toYaml .Values.pgbouncer.affinity | nindent 8 }} - {{- end }} - - {{- if .Values.pgbouncer.nodeSelector }} - nodeSelector: {{ toYaml .Values.pgbouncer.nodeSelector | nindent 8 }} - {{- end }} - - {{- if .Values.pgbouncer.tolerations }} - tolerations: {{ toYaml .Values.pgbouncer.tolerations | nindent 8 }} - {{- end }} - + affinity: {{ toYaml (merge .Values.pgbouncer.affinity .Values.affinity) | nindent 8 }} + nodeSelector: {{ toYaml (merge .Values.pgbouncer.nodeSelector .Values.nodeSelector) | nindent 8 }} + tolerations: {{ toYaml (coalesce .Values.pgbouncer.tolerations .Values.tolerations) | nindent 8 }} {{- if .Values.pgbouncer.schedulerName }} schedulerName: "{{ .Values.pgbouncer.schedulerName }}" {{- end }} diff --git a/charts/posthog/templates/web-deployment.yaml b/charts/posthog/templates/web-deployment.yaml index 335417222..5e7cd0247 100644 --- a/charts/posthog/templates/web-deployment.yaml +++ b/charts/posthog/templates/web-deployment.yaml @@ -41,22 +41,9 @@ spec: spec: terminationGracePeriodSeconds: {{ include "snippet.web-deployments.terminationGracePeriodSeconds" . }} serviceAccountName: {{ template "posthog.serviceAccountName" . }} - - {{- if .Values.web.affinity }} - affinity: -{{ toYaml .Values.web.affinity | indent 8 }} - {{- end }} - - {{- if .Values.web.nodeSelector }} - nodeSelector: -{{ toYaml .Values.web.nodeSelector | indent 8 }} - {{- end }} - - {{- if .Values.web.tolerations }} - tolerations: -{{ toYaml .Values.web.tolerations | indent 8 }} - {{- end }} - + affinity: {{ toYaml (merge .Values.web.affinity .Values.affinity) | nindent 8 }} + nodeSelector: {{ toYaml (merge .Values.web.nodeSelector .Values.nodeSelector) | nindent 8 }} + tolerations: {{ toYaml (coalesce .Values.web.tolerations .Values.tolerations) | nindent 8 }} {{- if .Values.web.schedulerName }} schedulerName: "{{ .Values.web.schedulerName }}" {{- end }} diff --git a/charts/posthog/templates/worker-deployment.yaml b/charts/posthog/templates/worker-deployment.yaml index b9d07c008..508a4045e 100644 --- a/charts/posthog/templates/worker-deployment.yaml +++ b/charts/posthog/templates/worker-deployment.yaml @@ -40,22 +40,9 @@ spec: {{- end }} spec: serviceAccountName: {{ template "posthog.serviceAccountName" . }} - - {{- if .Values.worker.affinity }} - affinity: -{{ toYaml .Values.worker.affinity | indent 8 }} - {{- end }} - - {{- if .Values.worker.nodeSelector }} - nodeSelector: -{{ toYaml .Values.worker.nodeSelector | indent 8 }} - {{- end }} - - {{- if .Values.worker.tolerations }} - tolerations: -{{ toYaml .Values.worker.tolerations | indent 8 }} - {{- end }} - + affinity: {{ toYaml (merge .Values.worker.affinity .Values.affinity) | nindent 8 }} + nodeSelector: {{ toYaml (merge .Values.worker.nodeSelector .Values.nodeSelector) | nindent 8 }} + tolerations: {{ toYaml (coalesce .Values.worker.tolerations .Values.tolerations) | nindent 8 }} {{- if .Values.worker.schedulerName }} schedulerName: "{{ .Values.worker.schedulerName }}" {{- end }} diff --git a/charts/posthog/tests/__snapshot__/clickhouse-backup-cronjob.yaml.snap b/charts/posthog/tests/__snapshot__/clickhouse-backup-cronjob.yaml.snap index a1857d7e2..5e1d89fa5 100644 --- a/charts/posthog/tests/__snapshot__/clickhouse-backup-cronjob.yaml.snap +++ b/charts/posthog/tests/__snapshot__/clickhouse-backup-cronjob.yaml.snap @@ -16,6 +16,7 @@ should match the snapshot when backup is true: labels: job: clickhouse-backup spec: + affinity: {} containers: - command: - /bin/sh @@ -67,7 +68,9 @@ should match the snapshot when backup is true: image: busybox:1.34 imagePullPolicy: IfNotPresent name: wait-for-service-dependencies + nodeSelector: {} restartPolicy: Never + tolerations: null volumes: - configMap: defaultMode: 511 diff --git a/charts/posthog/tests/__snapshot__/clickhouse-instance.yaml.snap b/charts/posthog/tests/__snapshot__/clickhouse-instance.yaml.snap index 8449d52a7..abe083e29 100644 --- a/charts/posthog/tests/__snapshot__/clickhouse-instance.yaml.snap +++ b/charts/posthog/tests/__snapshot__/clickhouse-instance.yaml.snap @@ -70,6 +70,7 @@ the manifest should match the snapshot when using default values: podTemplates: - name: pod-template spec: + affinity: {} containers: - command: - /bin/bash @@ -87,10 +88,12 @@ the manifest should match the snapshot when using default values: volumeMounts: - mountPath: /var/lib/clickhouse name: data-volumeclaim-template + nodeSelector: {} securityContext: fsGroup: 101 runAsGroup: 101 runAsUser: 101 + tolerations: null volumes: - name: data-volumeclaim-template persistentVolumeClaim: diff --git a/charts/posthog/tests/__snapshot__/pgbouncer-deployment.yaml.snap b/charts/posthog/tests/__snapshot__/pgbouncer-deployment.yaml.snap index 4e82d25de..7c33adfbd 100644 --- a/charts/posthog/tests/__snapshot__/pgbouncer-deployment.yaml.snap +++ b/charts/posthog/tests/__snapshot__/pgbouncer-deployment.yaml.snap @@ -1,5 +1,6 @@ should match snapshot data: 1: | + affinity: {} containers: - env: - name: POSTGRESQL_USERNAME @@ -54,5 +55,7 @@ should match snapshot data: tcpSocket: port: 6543 timeoutSeconds: 2 + nodeSelector: {} serviceAccountName: RELEASE-NAME-posthog terminationGracePeriodSeconds: 65 + tolerations: null diff --git a/charts/posthog/tests/clickhouse-instance.yaml b/charts/posthog/tests/clickhouse-instance.yaml index 72f76ea8b..411f1bad7 100644 --- a/charts/posthog/tests/clickhouse-instance.yaml +++ b/charts/posthog/tests/clickhouse-instance.yaml @@ -146,11 +146,84 @@ tests: - mountPath: /var/lib/clickhouse name: existing-volumeclaim - - it: nodeSelector override via 'clickhouse.nodeSelector' works + - it: nodeSelector, affinity and tolerations via '.Values.' works set: + nodeSelector: + diskType: hdd + nodeType: slow + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: node-group + operator: In + values: + - test + tolerations: + - key: dedicated + operator: Equal + value: test + effect: NoExecute + asserts: + - hasDocuments: + count: 1 + - equal: + path: spec.templates.podTemplates[0].spec.nodeSelector + value: + diskType: hdd + nodeType: slow + - equal: + path: spec.templates.podTemplates[0].spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0] + value: + key: node-group + operator: In + values: + - test + - equal: + path: spec.templates.podTemplates[0].spec.tolerations[0] + value: + key: dedicated + operator: Equal + value: test + effect: NoExecute + + - it: nodeSelector, affinity and tolerations override via '.Values.clickhouse.' works + set: + nodeSelector: + diskType: hdd + nodeType: slow + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: node-group + operator: In + values: + - test + tolerations: + - key: dedicated + operator: Equal + value: test + effect: NoExecute clickhouse.nodeSelector: diskType: ssd nodeType: fast + clickhouse.affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: node-group + operator: In + values: + - test-override + clickhouse.tolerations: + - key: dedicated + operator: Equal + value: test-override + effect: NoExecute asserts: - hasDocuments: count: 1 @@ -159,6 +232,20 @@ tests: value: diskType: ssd nodeType: fast + - equal: + path: spec.templates.podTemplates[0].spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0] + value: + key: node-group + operator: In + values: + - test-override + - equal: + path: spec.templates.podTemplates[0].spec.tolerations[0] + value: + key: dedicated + operator: Equal + value: test-override + effect: NoExecute - it: volumeClaimTemplates shouldn't exit if clickhouse.persistence.enabled is false set: diff --git a/charts/posthog/tests/migrate-job.yaml b/charts/posthog/tests/migrate-job.yaml index ecc3cff15..ba7af4fc5 100644 --- a/charts/posthog/tests/migrate-job.yaml +++ b/charts/posthog/tests/migrate-job.yaml @@ -45,13 +45,88 @@ tests: name: SENTRY_DSN value: sentry.endpoint + - it: nodeSelector via 'nodeSelector' works + template: templates/migrate.job.yaml # TODO: remove once secrets.yaml will be fixed/removed + set: + cloud: local # TODO: remove once secrets.yaml will be fixed/removed + nodeSelector: + diskType: hdd + nodeType: slow + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: node-group + operator: In + values: + - test + tolerations: + - key: dedicated + operator: Equal + value: test + effect: NoExecute + asserts: + - hasDocuments: + count: 1 + - equal: + path: spec.template.spec.nodeSelector + value: + diskType: hdd + nodeType: slow + - equal: + path: spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0] + value: + key: node-group + operator: In + values: + - test + - equal: + path: spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0] + value: + key: node-group + operator: In + values: + - test + - it: nodeSelector override via 'hooks.nodeSelector' works template: templates/migrate.job.yaml # TODO: remove once secrets.yaml will be fixed/removed set: cloud: local # TODO: remove once secrets.yaml will be fixed/removed + nodeSelector: + diskType: hdd + nodeType: slow + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: node-group + operator: In + values: + - test + tolerations: + - key: dedicated + operator: Equal + value: test + effect: NoExecute hooks.nodeSelector: diskType: ssd nodeType: fast + hooks.affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: node-group + operator: In + values: + - test-override + hooks.tolerations: + - key: dedicated + operator: Equal + value: test-override + effect: NoExecute asserts: - hasDocuments: count: 1 @@ -60,6 +135,20 @@ tests: value: diskType: ssd nodeType: fast + - equal: + path: spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0] + value: + key: node-group + operator: In + values: + - test-override + - equal: + path: spec.template.spec.tolerations[0] + value: + key: dedicated + operator: Equal + value: test-override + effect: NoExecute - it: allows setting imagePullSecrets template: templates/migrate.job.yaml # TODO: remove once secrets.yaml will be fixed/removed diff --git a/charts/posthog/values.yaml b/charts/posthog/values.yaml index cb65b19dd..d198edf4d 100644 --- a/charts/posthog/values.yaml +++ b/charts/posthog/values.yaml @@ -47,16 +47,27 @@ env: [] # - name: FOO # value: bar +# -- Global Node labels for all deployment. +nodeSelector: {} +# -- Global Toleration labels for all deployment. +tolerations: [] +# -- Global Affinity settings for all deployment. +affinity: {} migrate: # -- Whether to install the PostHog migrate job or not. enabled: true - events: # -- Whether to install the PostHog events stack or not. enabled: true + podAnnotations: + # Uncomment these lines if you want Prometheus server to scrape metrics. + # prometheus.io/scrape: "true" + # prometheus.io/path: /metrics + # prometheus.io/port: "8001" + # -- Count of events pods to run. This setting is ignored if `events.hpa.enabled` is set to `true`. replicacount: 1 @@ -83,6 +94,17 @@ events: # -- Additional env variables to inject into the events stack, uses `web.env` if empty. env: [] + # -- Resource limits for events service. + resources: + {} + + # -- Node labels for events stack deployment. + nodeSelector: {} + # -- Toleration labels for events stack deployment. + tolerations: [] + # -- Affinity settings for events stack deployment. + affinity: {} + # -- Container security context for the events stack HorizontalPodAutoscaler. securityContext: enabled: false @@ -1286,6 +1308,8 @@ clickhouse: ## pullSecrets: [] + # -- Node labels for clickhouse pod assignment + nodeSelector: {} # -- Toleration labels for clickhouse pod assignment tolerations: [] # -- Affinity settings for clickhouse pod From 17f8bcfa2ca51e654b26fd149a59c698d8835163 Mon Sep 17 00:00:00 2001 From: klamas Date: Tue, 14 Feb 2023 00:41:49 +0500 Subject: [PATCH 2/4] add startupProbe for plugins --- .../templates/_snippet-plugins-deployment.tpl | 10 +++ charts/posthog/values.yaml | 72 +++++++++++++++++++ 2 files changed, 82 insertions(+) diff --git a/charts/posthog/templates/_snippet-plugins-deployment.tpl b/charts/posthog/templates/_snippet-plugins-deployment.tpl index c4e125245..2c2422d3a 100644 --- a/charts/posthog/templates/_snippet-plugins-deployment.tpl +++ b/charts/posthog/templates/_snippet-plugins-deployment.tpl @@ -132,6 +132,16 @@ spec: periodSeconds: {{ .params.readinessProbe.periodSeconds }} successThreshold: {{ .params.readinessProbe.successThreshold }} timeoutSeconds: {{ .params.readinessProbe.timeoutSeconds }} + startupProbe: + failureThreshold: {{ .params.startupProbe.failureThreshold }} + httpGet: + path: /_health + port: 6738 + scheme: HTTP + initialDelaySeconds: {{ .params.startupProbe.initialDelaySeconds }} + periodSeconds: {{ .params.startupProbe.periodSeconds }} + successThreshold: {{ .params.startupProbe.successThreshold }} + timeoutSeconds: {{ .params.startupProbe.timeoutSeconds }} resources: {{- toYaml .params.resources | nindent 12 }} {{- if .params.securityContext.enabled }} diff --git a/charts/posthog/values.yaml b/charts/posthog/values.yaml index d198edf4d..b9fd0ee99 100644 --- a/charts/posthog/values.yaml +++ b/charts/posthog/values.yaml @@ -341,6 +341,18 @@ plugins: # -- The readiness probe timeout seconds timeoutSeconds: 5 + startupProbe: + # -- The startup probe failure threshold + failureThreshold: 30 + # -- The startup probe initial delay seconds + initialDelaySeconds: 0 + # -- The startup probe period seconds + periodSeconds: 10 + # -- The startup probe success threshold + successThreshold: 1 + # -- The startup probe timeout seconds + timeoutSeconds: 5 + # -- Sentry endpoint to send errors to. Falls back to global sentryDSN sentryDSN: @@ -419,6 +431,18 @@ pluginsAsync: # -- The readiness probe timeout seconds timeoutSeconds: 5 + startupProbe: + # -- The startup probe failure threshold + failureThreshold: 30 + # -- The startup probe initial delay seconds + initialDelaySeconds: 0 + # -- The startup probe period seconds + periodSeconds: 10 + # -- The startup probe success threshold + successThreshold: 1 + # -- The startup probe timeout seconds + timeoutSeconds: 5 + # -- Sentry endpoint to send errors to. Falls back to global sentryDSN sentryDSN: @@ -502,6 +526,18 @@ pluginsIngestion: # -- The readiness probe timeout seconds timeoutSeconds: 5 + startupProbe: + # -- The startup probe failure threshold + failureThreshold: 30 + # -- The startup probe initial delay seconds + initialDelaySeconds: 0 + # -- The startup probe period seconds + periodSeconds: 10 + # -- The startup probe success threshold + successThreshold: 1 + # -- The startup probe timeout seconds + timeoutSeconds: 5 + # -- Sentry endpoint to send errors to. Falls back to global sentryDSN sentryDSN: @@ -579,6 +615,18 @@ pluginsExports: # -- The readiness probe timeout seconds timeoutSeconds: 5 + startupProbe: + # -- The startup probe failure threshold + failureThreshold: 30 + # -- The startup probe initial delay seconds + initialDelaySeconds: 0 + # -- The startup probe period seconds + periodSeconds: 10 + # -- The startup probe success threshold + successThreshold: 1 + # -- The startup probe timeout seconds + timeoutSeconds: 5 + # -- Sentry endpoint to send errors to. Falls back to global sentryDSN sentryDSN: @@ -656,6 +704,18 @@ pluginsJobs: # -- The readiness probe timeout seconds timeoutSeconds: 5 + startupProbe: + # -- The startup probe failure threshold + failureThreshold: 30 + # -- The startup probe initial delay seconds + initialDelaySeconds: 0 + # -- The startup probe period seconds + periodSeconds: 10 + # -- The startup probe success threshold + successThreshold: 1 + # -- The startup probe timeout seconds + timeoutSeconds: 5 + # -- Sentry endpoint to send errors to. Falls back to global sentryDSN sentryDSN: @@ -732,6 +792,18 @@ pluginsScheduler: # -- The readiness probe timeout seconds timeoutSeconds: 5 + startupProbe: + # -- The startup probe failure threshold + failureThreshold: 30 + # -- The startup probe initial delay seconds + initialDelaySeconds: 0 + # -- The startup probe period seconds + periodSeconds: 10 + # -- The startup probe success threshold + successThreshold: 1 + # -- The startup probe timeout seconds + timeoutSeconds: 5 + # -- Sentry endpoint to send errors to. Falls back to global sentryDSN sentryDSN: From dcdfb097f50f02a14b4c7aeadda63bf008fb70ca Mon Sep 17 00:00:00 2001 From: klamas Date: Fri, 17 Feb 2023 17:09:37 +0500 Subject: [PATCH 3/4] Update APIVersion of HorizontalPodAutoscaler autoscaling/v2beta2 to autoscaling/v2 Update APIVersion of PodDisruptionBudget policy/v1beta1 to autoscaling/v2 --- charts/posthog/Chart.lock | 6 +++--- charts/posthog/Chart.yaml | 2 +- charts/posthog/charts/zookeeper-7.0.5.tgz | Bin 34656 -> 0 bytes charts/posthog/charts/zookeeper-7.4.11.tgz | Bin 0 -> 38289 bytes .../templates/_snippet-plugins-deployment.tpl | 2 +- charts/posthog/templates/events-hpa.yaml | 2 +- charts/posthog/templates/pgbouncer-hpa.yaml | 2 +- charts/posthog/templates/web-hpa.yaml | 2 +- charts/posthog/templates/worker-hpa.yaml | 2 +- charts/posthog/tests/events-hpa.yaml | 2 +- charts/posthog/tests/pgbouncer-hpa.yaml | 2 +- charts/posthog/tests/plugins-async-hpa.yaml | 2 +- charts/posthog/tests/plugins-exports-hpa.yaml | 2 +- charts/posthog/tests/plugins-hpa.yaml | 2 +- charts/posthog/tests/plugins-ingestion-hpa.yaml | 2 +- charts/posthog/tests/plugins-jobs-hpa.yaml | 2 +- charts/posthog/tests/plugins-scheduler-hpa.yaml | 2 +- charts/posthog/tests/web-hpa.yaml | 2 +- charts/posthog/tests/worker-hpa.yaml | 2 +- 19 files changed, 19 insertions(+), 19 deletions(-) delete mode 100644 charts/posthog/charts/zookeeper-7.0.5.tgz create mode 100644 charts/posthog/charts/zookeeper-7.4.11.tgz diff --git a/charts/posthog/Chart.lock b/charts/posthog/Chart.lock index 6b3d8db6b..dcda37014 100644 --- a/charts/posthog/Chart.lock +++ b/charts/posthog/Chart.lock @@ -19,7 +19,7 @@ dependencies: version: 16.8.9 - name: zookeeper repository: https://raw.githubusercontent.com/bitnami/charts/pre-2022/bitnami - version: 7.0.5 + version: 7.4.11 - name: grafana repository: https://grafana.github.io/helm-charts version: 6.40.0 @@ -44,5 +44,5 @@ dependencies: - name: prometheus-statsd-exporter repository: https://prometheus-community.github.io/helm-charts version: 0.3.1 -digest: sha256:5ac223659ced28c44ff2c89963e0268427f848b5d4db98df9b8f1010f22f8207 -generated: "2022-12-20T11:35:36.888806538Z" +digest: sha256:5615fc5fda7592b7c87d352789702c33db0ec6c6ff8625aee1ef20465aaa442f +generated: "2023-02-17T16:38:29.581158+05:00" diff --git a/charts/posthog/Chart.yaml b/charts/posthog/Chart.yaml index 8026850ab..63a1d72fc 100644 --- a/charts/posthog/Chart.yaml +++ b/charts/posthog/Chart.yaml @@ -49,7 +49,7 @@ dependencies: condition: redis.enabled - name: zookeeper - version: 7.0.5 + version: 7.4.11 repository: https://raw.githubusercontent.com/bitnami/charts/pre-2022/bitnami condition: zookeeper.enabled diff --git a/charts/posthog/charts/zookeeper-7.0.5.tgz b/charts/posthog/charts/zookeeper-7.0.5.tgz deleted file mode 100644 index be0d85940200076140f03234bc66374d4dafb4e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 34656 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 diff --git a/charts/posthog/charts/zookeeper-7.4.11.tgz b/charts/posthog/charts/zookeeper-7.4.11.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0149d99337919d3635987708ad6ec1bea963e470 GIT binary patch literal 38289 zcmV)YK&-zXiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0POwyb{n^{AP%3u`4kvA=UB>!q;7V+Ig`DPEXj#>bm0+YXYZYp zWkTH`iKq#50JJ2=_N;k~?|Z#@lHWoB=tkejrf#;g)ho*pyMaO#P^c;Zg{nU|za%6k zqPsW2LUm?%8vWZnKN}kx8!vZu;Qt#N8^!-`Zok<4x6Pf+osAbSUVgW=^=})S+glr3 z|Asd189p=xVEl<2e1f-TAJw(F#dSSV&kviR`u7h~X*ep@2`PoV5@VB<7MT06kGEmc4E_ z&>SZ_7gRAkrJaCJyY}xELJE%oqc*bd+9|9n*YalPrgPH@i3|jd6};L-0bxqui2gxB zB#F490YM`!&=gaqFlCgDQNY=VjuQcdBg#fxOyTc!jW=cE^%g?0;8!%%#X~BUpcjeK zAZIL?2+rsqwgP6MS9C0R61#RKH0;%GA%x>NqJio0PHVz-FS!mGQ#DC0{Eo1F)K!9z z?i5Q!MEWV6x-A-L(j64PKe3cV$*xp5xRhCqE}f3EUv2o@-rCx@+1lRe#BAKUB(rNS zLKw-c9oL0Kzy~tLG}2@2UjC=obPHJ)cx{K&{K|kyo`}Hk${hOL;Dℑ`^>elgm- zAo#_`X7Js`&Wmt#L0#qRjuIjt!T_8<|6hK$`Qk-!{_nha`859@<9YTB z{ih@W*g-!;`~pWP#sW`?B0{#FJ##PjLH{B;#bZ(^(T@n0WF0ZC2vQTQkeX15u4xn@ zeno_!p?*(FmDdqvL6jI1%acRvseML5q&P~XsXsQT0Hf-L_YxrpQwU#S8sUp5Em4DP z&%8M!V{MVm*3Hj;5=8?N2%;p|a#C@D$7C|%U7_KD;Drwg~zh%aVG%mq{`r*od4vvRH0s64QH-b)N!9mwGVwM1mKoC$0cG|)q$2cIJ0$sA2Foor% z?4~wjJLX|K6$V{Ri6O2X3wnhWNx7y)kphJaJBA7(4cLzUeDcud?Ejh$}0}e^0nbrf7n%pwj}* z7zvy{TMqrrvb$aOKix=B3eLNYC_jtk- zI@ePmnO+b9eUm|xAbmxc&6HwO7i7c*P{nX8CtNwY6uu-3tvV~9SWoaMG6KDo;-UL- zBR{TFe6tr(!qgtSVG=>VNHb+qd;`t`yDqaMWvnT^F2qPuHjW4i01BGo8Jc1<7t(K2 zl9Ha|2*Mj5z)1^N#xHHsz^koLc0k52RKfrdgOI^EqC7VM4%(0 zwE6op7ol`kiL}d4u&b-V_K*};VjWGH66;7L{L(`uf;HDE+l`{bzC?QXuRXf~rh_g4 zeB*Z)@S*P9nCMx+8CW>kLiezba2N_ArLjfx4VC9T)-CTc&Sq1d$Rj?c%wnUvJ_tyx z%Izl%Cu%~Nq5*W1Rv^$?1+*TBxfV_oj}tL27_#Z>j%KejqD8Y|cJsGkqT;tHmrAp| zW);WK(z9fRATs6*_74giZHk2?f~AdFj>*&tEHu{aCdqWwT z@I;t3_Vt7Y6KD&nA+46s1OpH0DJbZ8OavSPWy%2~FfizqfjTAvt!@JH_<~=NHC@IS zwLvE;4l#PvkMQ^26n&y== z3s>owaY3Y(%U6^q62(}`Yc9fURg;5~ZE)mT$}h08i3(q}E(R?&*c}{o_hDnZeZ2po z!MX|Rn?8Fhi9qlVbTRa6B7H$;%9#adq9*A=DXm_Oy!qa@bfff-TQ%cqS2tyNLZc$h z+HW06GNl2JwD|%vK^Y6q6S7YDCeld03*zj)ysfMzWNNktBy57L!{j2?MnfyQ{^q*= zcWWJoQ_5D-X`P`p4{t}?EpU(1s=C*tq+@0^gplZZLfGv{(qMNCT`2u~%l=(OV@g6{ zb7w+u3?>QuLm4`LZA_90L4U(n82w0ajCgE>{OaGQHy~>Mehj;T=zKyYBJ2uXVWF2E zW>$sTcr``Q-=}67=xxwmQH=if?)c5o?hgY!y&VqPe%RXal_4J=kt-6RBR)nE{N-@V zW}2a|gAUHlPS3Of8XA$J;rxg}N}?%cp);uUa)^Q;Iy`xEst54r-Ln$_dPZ0$KA_NJ6Wm0X+g<4`z~S zOWt@XOh^<qB5GY`EUs@Tb}pJ8Xq zE1Bcc->#-_B0QE(U8L;e^MjRAvETtQ8}Y7MaYGYW5$!pS^eSIdH9;5!iBx>5hoKXU zGJD)qtk@BT*`IF3p13!FT?Rb27g(xRoS0my-H2kXKK9dHDHQV%J|S$r=^Aquy4toT zv65ZqU(#koU2}0s*|>|tuuYf}l*qQ?um~n9XlwAYt$PCgY}=N)FjX_GVAY!22pcG@ z$S8^Q3@dMfnT_5nI7=|b7V+MoskW<9{?rpyaq|*!;Avaa<1SF_dj=O%G9W_H5%9J2 z?Vv~&cc0%`JaSm+LZmYWuJud73wP3;Il)|#nN(bW9fPc4(KA1glR~gXi?&|9a_?oj z6Ho`L+>jE9RPugWGO%o0tsIs4J#_EWu^AiqUvAXQnNZqii@FE~sgKp9hq`*GWHWiE5!By*ZO?{TH1n)Lt1!eDjuNEA3-^Q|z7! zx?z8(3{0B&c{q7!?_VdJxg zKNU_=2F&aa#zSL!_$4)aftx^ZpeNVwwR_LK^4c6Z_p=&u6e#is={5$TX*+-q+lRzIP^Q zPAlDKkoBnvn>C}~`|$NskU5)M+dJ<3#zQx6!o@t?9huX5IEPfgiP*j}3Pg3#VYXi} zbRUP>j)1SQ-%Ub$6x>5Y$wz94xIn`R7GWbzkgdRi2?-N8IMs`7&;w>e2v%NNICP)E zJ~8}u*t9VV+n6buzOgzXPhMH^?lMKIy1)l@kNt4=+4`YGXAf!oG*Tx#B*j6$e`NK) zIjr=H0!q29#q#%#n#H6NU8KL8 zNoGB?lJ8-%McViekRs_Or75=%FYA-xp=RGW>=txX5k1>q*`d9`ZL|1d%i-xdI45h; z5p&prKG4RcVHNAR)tu{cmyOE&Hg`&(6Rtpx76in4wM;PkeC4iAtpT^A3wza6J(tc8 z#{}E9rMn;zwdQuwC+(b3|Vu4 znAduNSrm_X#K*HiEC>$wIMXXN%9O^^d_m?D^1qd_M$(kRf#4E0%!Ko|M0m>C7>zKE z5<%J_cw@>AI;i%gT#Ej}B3Uz~qo{2#Y6ltK-Dl-@?GXpbZX81DdZRF!F%PXbr@tg| zew|BEz_0Ymkz9A}HmKR@v<|3U1F&m#OQjk$o2e`HKU{-bFPpJUBuuhjp|9&wv)^A8k;7OqH#ppDR477 zIYb&44s3U7iq(LXn)d790pu{%c8%|!Id?AU<+aicwz zxlVi8dk48K+;Lvp_&9f;d6nT!&hf_7>gx~1b!hHmZ6&P^DUS9@gl7Zm6>(_Zp-{g> z&R4?kfcY?EA}9|Xv_Aa01sLnJ;ovymj^zParE)$IL{4}VqBrIRQt6xKz+@5xM9K`< zz`VE>Fc?wmY~|>KFR2H+^IWNd*~-1BT9j9eZVzp5v=GXT5jYbfl<)8!dZCx~g}&>d zmo0>fozO#@<|=uSnjYF(G^tXK|59d^@J`gr(<=Y9zS?pVt0~llQ>!VU29v8PsD{(4 zDY%9ctZ|PmHN{F$TlqJQC)tZfpJQ$_9NYkoe94gA9J9x+WkuGis8+m71SQUL-BE^I zp3SYQis>by^dSCR=*3xp4sK#DHTRTH<2~~zXMyQ&Z@7S6Wi2h%&Gmr^1#?fY=lWbI zbF<(Yj#Ls!&=JSsYaC$~SRZKPZIIvfurJM4hu8kVhTPEa^BWcRg4toe5>Dhbde{dX z(1rbt4*PjmA#KXKhE}<~jIfS^h$o@FkwAmBWp70|uZr$7jc{9IDJhD4@aC2qgU3Ri&TMRmUBEK)bn*i?z7oo zNr%qoE3lFs1Ez6Wbid1nw?5`N!`OFrBsD%hl_~nh?lmrtb}-$~^Qi1Zm=14p5m7lg z;R=ovcbz9TIxIS^PY4bpJ?9;T_5zZHfc8%Y)~VlU7RHUBn88Xd^YE>1FBP;E(=w9A zLmv9q%@yEF7>-CfA70Px+d%4DAKGZRbgYVA-=|vcvzj0DZfg6 zi4AUor?s@?1Pua_a@@U^Do9l>x2|dbN~gcjcT8!!W-jTr(f1cvlJ^GPTsPpt>b(jN z#|aA&`q8nBk68<)tYmn$*rYvX)ZK=I01l0xx}x z3UZcu@_Y2=JeBv%H6eSs5c(5Q>+a$Rqp}Dh`KTvaofwVjA}rt0c_*{7)~mf+KA`@%Mr zKa=r4rOP>^$tk$!5OCJSZiKAUPj-veXQKI6Ao6X2W9Y$+B7#Bi3-(;WW)u~vJ}@Uj zg^N)JFCVeKB;d(AQhuQi3-~Ow=+VXZ3R@y67RaREk?X@VYLL~}k3{Pob zLgq=zb&pzD3A3%ERdahE7EWu33)c)wqG%m4UTO-AemzvyrByVLf{r}evb=X@7DVOF$jwP);b zD(eDp6fa2uCMD&RBd_kN6!4l?(yEXCySgJQ1G%s^x(9OHTJXh(Mokx_7iEgk zW$GF-^ZyvUxpX_bMjlMTz0S?Vtc;5up)K*B1y$sf1#_sNe~=vZXJ*H}0se4>=G70h z9`OZ+q}S#14AdOD?x;6C^GzKEe9kS4lAMY5Tv~}^5wLP%-C>0StmQpOVO`3}1mNdv zhML_hs*1<_4$1VO9}u*Md+r?s+U%j}tc~M1yFBF`E+hXc3k+&?pJb&Pj^=Y&aZ$)N z0RQucwn3}6mL#Q7sYUC)#LY4SC+&_Zq0?kA?u%E`UNQW7KOF1xY>8{D`L>30Gq&-$ zH)jV}!umu^DO{|T73RQU&X3S90j8!IQ4d59?M*Nno4acKn%O-Y6X4b^q2jD_{fj>_ zr)EKwxjH(}P3z$UW|3Kx{ z4I7xiWrPcHe)2SJ+eYlUeaxPR zkJ?j=+fx;}r$OwVRJK;e@2O>v%*CR>7A0qpE;xcXM#y|GN+SH2C_#fNx$Sx13qI8g z@<# z^8owCe|iQ}wF=1X0OLgQc1UHwuZa0vF~%t}h1>vuUrLIe$1)HYT#)rjZl$t_A!y~p z2h@3I0t{Dn(Wg%})!{1WO4n9eaohB1hn~hnU}FUWxMR+=7@f-ELq}++ z=^Ua%iPZRM_e@Sfv4T(pWlJ*^QxeMr4usfUCl4MdGCh2)H0zb~A=)b2|jx zi-=#ibP4-BNT!4->wX>6&NO^hV0Uxp+5Sz_P&%6%(kDFo(3EaNigT`T|HmUOV6t#Q zrWCA}wEgqB=*}TqBEImoaSyn~nKx4?lL|8kuwp-2$KM5nH^_-m(J9ZocSWgC?t}6w zEvpWTvg~K=+N@SaW$(_Cs78auxiWP!Dqm`O8CAe!DH&xh(AHogl8DG#h_M2gd19=9 z`$LMc0#^T;%-o=3VATCyfsygf?^6ug2uDPl1gTvzn6ZF_Z>%qi^fp3D_J=$7ni47D zXe}QqQ39mYEhe*pOgKky`_StZZ?ifJ#WJ0>UBqrGQDofeFhg4%6KW@sX5BL-*o8Bc zJUdLzV48cuSP=GH!BKF+;G#G<>FaTfW*u}mLR6uU6KPJqB#*8LqDqp;#5D>qLrToh zC54Om?od*qRn7>ym?6%{TF2`ZaubUln&O*P(+%&_ZunqD^7ktljcsR8eOg2R8*O=T zMta;|OuaWzd4~!~azzAO7YYPbG{DiE5k5^69Ij9{wi~8*8D*Y9%Y5!jE&}Mo2lS1> zyrX}9`c#f5v0;Z+_cdiEfD(ek3kb%lCpDEaA=!~)pNEKhH*?VSgh!-23?7c}9gg#d z0sYl@LEh6am`w#eE6ag>&W{G&!QiMWsE=6|4hBcv^P>SGED*EUEi9F3+&W7Y?C4|RF0Dk6y)^=6|08C1MfUk*g)w@X=% zdKNsW68Ured3p5nP;W^<24p@7X~@BB;|d+r^TtoMUrdk{LAJEu1;fd)VYN`a`ZlsJet>GO(c;;?>3U?zv`P_UJMyLnu{Te_ie?{9Ncds zgG$&hltC8%FGB{EnBakBP{rUqfDC%}4E;>f)kS&?29A}Ar-wD!EfRP1U=yxH1mfaD zG*G?T4>*$n<%#uL3nrX;Yv)7~(Q&auB{w07ASz`r(FU(HSx+Pq3HXf?c0~n;E9%y> zE}}|B#JT8OWY&>Pf{8}p*xodOC5~RmgdAOCmZQb1mM}xFi8XDOEH1P)iYU`%aQIsy zRT@N>5#8Zf%uKKYVVuapqb?EA3|$Be-2fS2fHjshL zUl6`U8z}(Y%I8jY_wzXJv&DyyT=DT^x*^Qm@L4c;Xi$9nXm5-&IX64Cw>8!dGFJw)^5LFRbn^I5UvZg zK743v#b||`Oiu%IC$cO44Y3tn&sNjQ(AB64cK_*9t9`#u3*v|$p8U`PG4?ujo6rW% zipBbT7L)JuIAg22{nCDJf$y`UQmq}qqYUy~MD&tGGemA;uFb!4HXN9TTG3*ynZQ6enrH!ph^)2ywYoV$@UOn3&~drTCw+) zR2wPZ%5N?6Yt$;vycaHUYo5S zh|M$Qk~i>Bq6n#xkviEy)Td9V9U&aYoxEF< zI|}-~SPjtGb$9h)Bj02Lvxc!rQRk!PW2Rp=#7a^0zqKq!r*F{tj|ZrKy8lyx6W}-E`IQv>N!+csbWH(wZQ&*!IG^e{L0K-+mZj^% zhb*t_O66U?71TkWK6P>hvsHCEP_~%73OXL1`2?(*&huPSGr*{r2o2U_d2(EeDvLF_ zF}_Bp`|mXeeE-erBF=7ryXNziGNbEK-`96j)bV`F~`06X+#zJ#`Te&8Gl^vMHE=C$tVEl@I*G@4ra!AqA__HQr`eYdTOWtPZ37p*EgQ*;z~DmrCT7#6ho1X=EU!xX zpiw_xH}1LTIp!N2oV`2TtKh#|BGMEK)NW_xK73gD@Bs<9k+7=u{0(yK>IdcMP&U@= ziZ<5Jr%xX~bo4*gzFYa^m^kB!jJ96AE~#S^&n%uhiCv#*aP1Kn*I0zN={R{6bQ^bG zJvlz5c}Lw(pU{8gJ7{z3yUs>uqqDiVd&=f?&fLq$f`tH9#6UCX)|Cw=B)GJxE6(xQ zmHynz=0D9-wg2;eLZX-msZI0yXk-5V&*s+7cP|S2KQCTxynNdKd5q`7hwiuNicWiQ z#d<^|q9xb&Q{64Wg!It2T{Dxr-?q+(N`x^(jVDtn1v*40fEs!_n;V7xY=%-Rs0{^5 zD?yWi+7+^^K=^gWxo0SuwpPXwzra!U+WcPgg;0AA?it2t)v0OP?3T~kJQ{0m6Wy8W z8n}1vhkdw+WYfO8i!#VN0hS9#)Vnz3$Skk(EuFDn)~8nggr$0Zm=}=0R!@JsvIF+C zLeXkmr72`=@*8s*%}=I1m-4b^s-yfG3r5*kc0^jb$jrB?S;r8SWIGoFRS1G33qgZy zzGF0p@O%)M6R?D{&sb`t{Sa@`n6G_@~MLNp`eTZ%|ELXF< z`IoDbH^eJtf7xjxQ{~oKr|8i$uRENpMC5sKWTXF0mb(!3zE26S_dD{~#;@xW84JqP z2(A3PRvRjgas|Ixt7nv~V%s#{4uo21B!n9CloAQ76ftz7?Q3&MuOfER;(j$H&t324 z<`rgPWslkehl)>m*RxgsY^`=k*1R4B>YDdON#Rtvk1cW;YQ}v1yf4u*99ZSz^tf!O zBH7kh+&3@Q&vwsKc$vxWd^4Ax?A1=skJQVi@h^F@+wNIrvKL(LD?Tll?3F{ZhQ8q0 zo^ju8X8Rnc>c{27`=0H4d>Ye;ARI-=tr`$ziX)69W#fpr`!t=oi`T-|T-v3!veX?4 ztF+25IF2=1*}K(++kf7G=19FW+)ORh!*xy+*~^tO&AQ-koHDfX-)zMz+V=cf(z32H zO2_=a*}L7Nw+93CZujVLfA{?G^rZLSOtVm0=_3R>Up&g_oh8wQ(J=`@t=-mkOA>Q; z$B2Z+W1Sm^<|3y~qU7Yx+A@MCMX*mYRd3z5})&9S^G%&?+XNITua00Nv|8sNmQV6v6Fdf)8ivz1qh+# z&O5^ym(;sv&{=;ezyttWG6i4Q>FiHW*ieK`yMQS1^Rz`WAkM} z|9`jf;z|EM%2V`OsmuuV>62CaxinBY%OFd>)wz5HllyA3+B#Tx-1W3a^wsYXIdvBE zaF7c^>8HH7l{R_ll%M9n^I4oF)nB zgg0*VRt&PalkXz0&oWl9eUgulhc1Y^CWM)5b&dIrvP zmHijaEN}9gky5Ijo?M+e=m#sKU*7HJ5T3-kMe+{iwy>_2R8tE-)jMx%BtMA z%#C2I3e`4?dqovGBET`epb=G+$c|lJWL2ygXDrP=5BF0Zd<{JKHJ&;CsWzFuD$`Rw zh~2r=n1cHx{|BB%DP?h)t-VIJ9$y_-%KtQuJ4BGa^A5nG{r}CK?c(}>XXEMo?@^u# zudw36rTD%k_r!u?CPhF&M@&tY5X#0Klhp)LBc!Jc`AiRY+D@ohoYkhCsL&b9)y-et zDL|@<-qR`w-A7kG<{0>!OEOzW-klo;9mzlMN5eF91?oR8@Dge$VlX8n`q zyRGJfWR|dIZ7)4d(xd?ux@+#lE@(;*t*1rhm;6-ef1AGYp1eO7>i?IUrTCvOUT$qZ z>Ho)gD)he}t}^fFZN3y-yxa9Y0=mH0xN3V+NcWNaZcKgDSjbYD5u zUzykAbn$YBupnN#o5%c)UOrXmLY;yX7FH!+Ks z*q$cppKzj ztm+%NPhs`BmpxC9eX7_0;GSSZg57-^VA1*S_QpYFo!6Wi?9{V8b8d9_BVa_wlIlm;V$|=gR-n@EGUQ74(%#r{0aPGn7|Mo`d z{{MGdn@|4VkMi8&{MWL_v1N~%t6~d|b_Y2iciSYMe@n^XxzyS2{JLM?+3u4f`wAS3 zn(=Y*#J%z8HMw(FYNY1g-OE}h>m^u|un_VCr7rx&QM%$58>F~haTk+Umg+C?_P+8x z;N6=hGrwHB&Jll6j|KwA6iKzl(!=JaauLId1VJjM)<$&@f|*Z<&2npww0PXYu+|hMA`T)eC;8YL{UCayf?zRvVANRRW=uI z8B%Iy*;4ubnhPk$WM6>Kz2gy!f+vFXv$Pn}&#lGEE96}RTtc)|h?1Cxc{y@dyFUY1 zW8uFlwp3;FdIwZ75B=F*6`;2+z;$P>vUpwa`_7uj7sZGr{@hv)1&>@v?IM$DS4A?t z!|G|rRfz42zUiD>HtM{_lJv2fpcSZNJSf3I&5ps658ybV@Y>v3!Jb zo70vmifxkcJ=3q{>+6LA*|ZzU9|TY0!lr&6nl00OH9g@{?M4(!;&G7o@@_e$edvoh zX%Vh?G@^{EnJ1p?o4a9|!fl9RE@e!LLOM=*2F=CGRxy_}!z@jgHf{0~(Sqp1IHNZh>gVBF`H&)KUzx#|+JR+i~U%Z!hL)M3WAGpRm;^WyM76gZToJl1x zWh#exO_96OQP*-tRp*ve#e#AW@DY|Wuk%Wu@{6kaiVdty&GCCKREk8a{`ploFJAE^ zD<(oxsR#?w>x;GS*>e&prB%J1Wgo4QMOuS>&Q!VeC>MYh7*+{7ZEPQ<2;aF|eVFbx zS~;tx7u5s|pjuO=Hn(QSZ^%N?W|X&@PxApT%%BK4D(yPIaC6Z-fywKhkH*qQ!GvEk z?;RFnSuE2&E4-LvEQy5e%D0k;LeA!eMwNrzy`YNWDeacmmla&87s^L`yiY|LlGl2D zu?jw#V=f}NY-lO$p^a88V&!2HMDj!gMCRK{Usv8=oCn6!mRot4l|&g($J(AQjj&;I z-AlO-2!S_CAC9u_Z(y?4+7Tbuw|LtDtd|Y96_-^aLCdaoK!mCm1$7IhM)N+EkBz4G zva2Dq1dBJE>Wi4KLi)f|XWa`dC%Lz666Ah=Y|rDfieao^km?E*?#AA*jL z`=4syPzJ_)ONI zPz2T|{h#&*n_Ke>>V83Y=$DXKm-G7o4Qkqx zq&CCjW2@CG_urrF z9v>7?fDPO?xoFQBA|wjW$f*1Up~6+XasjApwtbuf4EVQH*$B4}?@*OPd)bWv*GG#M zdd)k|crW}!W;LBx4v5w$wRoq9xp^+htOrMT`CHX1OIUSx2}tpPLr|ejzU)D$xZHk+ zVOSz^z@kBDVtE$_q0W+eoFT|EM}NL~uvDyr2ONUWHVOsi~79=d4Rpdc6-tbt|BXj4*T*__Gn<;0oL$&$m%KyTrNyW29ipPvgMT27=RvzPL2T*r%N+~pCVb*$M z732pTt>0(+8er4Ls~4L!P6358x$>zToXeHO`7?BILxMyRM3@pYxF?CQM2Sprgz!ia zf%t`<0+fwGX$=m}-W{C1KP>7e4GWxt^Q91FD0SFSR`$ZeX*#1}1q_>OC>BH#rq+=p zN)tyy#2MM+a)lVMReh%{Q(*`u_i*)y}tT?bTm4+JE`=f3AHqj}C-R&-TCn z=ELjV!H@6H4vu%v_kR3k>(?rEUPJUZtE;DH`{;k>u8LANfB=_=dZwbawW=PhCflva z-(afex#DO{6y$EdfkZ^J>PwQbo#^l{ll|bv?|<08i4Mfo}Irxd3*f&U@_!;j<``_ob0|nI;dP1<|q1$$Q880cxHt}pngx;ZWJB%8xgzv_WZQ}_Uwm)_lGCv z2WRhgj}{WD*S&Efz+M$&a_B-DEY;fC!TIjt$@^v;lC`LL<&5a*z7)p{4hDn6(-WBV zr*9WGIK?*u0$zPCGC~uM2c=r%$PdeA#Hy(7E964$ysoaQoJ%BFsO`S()uoB_;N-Fk z7T~yVP2dO<&?bv#1F%XP7UlccB}i%EH};-o4%FhCnAO03v=@E{*>zzJ7w)-@(8|Bd z_P@)Os>WB`RpAwIkWN^DUT&kB=7K1Ziimwa#gzGpQSu*3l`~$o`BmsT`UVh8n4(dE z)joat@SzITPoLWQgZ`tFD^W$fEmIn|PoFySDu8cAq6bVRH7ef} z%+3!VsrMvws6?>;{s?f`7;z z#3IePc+Q5e78bCJ+NSrTs|VaXuo+p1^}j$6L+>xP4*+`;&tG?cBc*8@aQ$D|$e(cl z3fU2wY{&cE_T#~BznQT)Avm6AXcner#K$|o^#!lEv)~z7r$6lc?S233w7;-|wEBp8VtZ^zA^maCmYnVW?&GF5_%A z<%vAvW6BzK{%=>)HxVAoIu!r*?)c5o?hlJ+VhU(ZyNlh~=H$sP4u{nr{j<~KgYzE` z-VWX$ADo{Z?$w|Qy*6h#RfMwCBDOkV_nmrTvHyL|VXf(x#f#%I{3eU|GthvxQipieK;T29HcKHqYCgF%8R1UL}O`D z^7UvgqsmSK%eHzK8TI6(^5mrQujHh%aLw`s`&p(NZ#PQd19tTei;@9eaW<7JUVl7Q z(=#y_#rw$?9X|_{jStibsni1ZHI~F|z*p@F=G|cmoszSK=N$Pwuyveer)!L#isam_ z&;^X=cFr2N*JvNtL3ev_jiEQ%-M!s1EFYM8F)G!|q$a&v!KqE0Q;Itc^olSdWnb`% zni{zx`Po8lvdCa_@LFmHdHyrMJWsD}KVL`B+kyVqoX3lVU&6MuJ`mm5o!mVF%qb(cY5HAn)xVq9MnJuVu zNoKh!3wyL`8?@#Fgz3W3K8f&bKmyLfe1O<|M^=pz@aUvC;9{Et_N##4a`c<{HjH};5 zrz0HF1v(~Q<||M#1)`d2nP%1gd}^i{-G2%_^La@9Gb)-wPu@w>6i4Njs-^(u4!WiQ z=}yX~0PD8e<}3$hu7JJ=eN$-dt_tU0I0jh-I_5@6?FImRokM#4H5L7{6O4+LWpZJv zR(*b;{fpWQH+R2mge=FOvS`*rN+jhytNT0(SagHv?stgpg&^2$d*@B7rW>I8uOh`8R4pf#&cTExTcGIXP`cz;G}A84?!%gspnR{& z^ss92IdyihRdM`d!|xvRko3^ji$iZAXEk{GqvZ`m^YHg|fBwk|1uc0+S<0_LbEy3spwDlz<3T3EU~!9acV=@T%jh0;iKW=g#>SJ;v~bJsLs`Fspbu`VY~ zve}&Omw*K+*%sjL=bu3c!$MgLgi3Cx9Q~|Her!zO?kca6iVn?{B*`hokXe^b@jH%e1Vm-RGx&^lhFEe2`z8Jd|mR(NBmJlSyh8~mTDiK zQcQn_r!xQZRgh*;y^jRY^YcG%Y;SJvl=DA-_muznF`j~xqs`)M&dKhO!P(Ek`^Ben zZlHu8Ufs@3+wA!rmyM6&>1N5SDw%4V_=QXfghcq|z9?8V3AGbm_ zYm*py&s@Ad?6(jK+}}NP!Wn5H6ekxEm6H>$&Ik@?yJ0AZv{^1oy;)b-VBq=wn%k*M z`;xdFC>6x*+zC=#bn;9w%6XzFEXG6`k5I3E{?cmx=4|~gW*HgJzqb}470D_enKEW6 zusn7({=K#B6>iX1G?#jcD8pm3-;g6ciTHp_TOVX4`ly6nSEc6+4oS^-oLJqS7nLJVp2NkS}m4}I1XRq z2(v(&g==V){9X-d<;W|!Vo$5{wJXuc7b%hP1)Giej^koZ-<<59_Zns+>ATT0Ez3Vipj&dke>AF9v-Zya?IijS6! zD+#q^K5%67ij#$rC$k8Xs|&%drEqZs?qX5{gOIeV4&=9;f0z0{y+ntomQ^T}J2~Hv zYZ<)zg;v5&-V0XCL0Q?{`mVFl+30Mppq2D~(Tc|$DRY^)sAIwgbj(P&M}+c{N?K-uk$=?&4Mm(XJ|v#jj>4$ zY1~u-+yNH)h%R345EkS;2yD_)TU4k;Wg$|EEBh0fRTlLyog>MuFX}BNx$};FlH^a4 z{81(OmoBm0#CVd}PZIk!68m%8{{NO+|8*uLn$j`jg4}Z(3)X)dFE(Ek)_>bOn;TE- zzsGopD5PwRVjNuJF_E3tGju+o63HZnZDJ%RB#O{D;ui?^ zYbYD9BS9jp=oLY5r9OL)S=f4p7#YKi)+&OG=nV#%qy%m~Lwg_`(7U|>3aOB-&X}q${ANQ*>rs*LGWR zQn78@wr$&X#kOtRNyWBpTNT^Jz4LtUzmL|*I#_KT%r@J&uHHxIJN}EZUcDXoDKJEu zq)j4BYtPl#Mcb3@39x=k&sDkQ*84M{DYw8)Lm^kfxy_G2J4fSoS0Y~v7Yk{N^#~Mj z6_q|G&A0x^&%L(I&vz;_=w)ww{S%YyY<=5x{=@@%mpnNDzKI8zucU{(DK*QBw8tBL zb#kfUhSjG(J_i^O$P4>MTe`w3MA5(l$$f}lLBV60t`A-PHf+$Jd7OCR9o#Y`0yKitWT;Mk zCE=pYATT5m_d_d-|YSaV+F3i7=P&qIxVqL^O04Ee}4(vpV zD!`bRNR^nQ)GATu6|xP`DvYOtG%u&EEll`>PG?yyMl!?RmMz6IA$V=u&9rDa+1XGe zcxp-Ng&xYG!F9WKal0Y5J* z3YbAEJxxATj0S^mK5GwE(+4c^YhUF1^dX(;)6L?^q2vkWul^LG?r-vHio)YYJA?y> zX3GBw0hS(T+=-~%o9M#{ddXFkL`|xepXawPZS1~g)i&okx7ROinl{P-Gcpw23`7HG zF5A+cD9E;j;>_C=ro;gyNRs(Tf;9ZV4;_SIaCXfz9uv#&)n^(Ql3$CCoHQ$;n49ok zdA4RbL0xr(3B^anGGxHWGU2;PvD>!v>(E^uoMjnN`TFk~dzABA&ll&79AEXJ#hfrf zv_Mb>4Yd-ob$^)q1xX2iBO8VSOE6D2Y59rn`g+M7*!Nx)5L2NpsAwma1_5HedgeC!!&Rr;v$B z_JLuy#3;o)V@}Bdwq!rgo1KGqs2I7}R=Xe$yb7B*A>JToLSPA` z*7M06{WWa-6QQ7M?$yc8NH2}?4ftpCcVaqpE$5*%KA}%a&IZ?M#BK`kkP@&NKDu;fuI57rvDTG0c*5Ol$V4J$&f zc@LBrP!X&&XDN;f{`>ELwt#Iptu8Hh0j%F6!WrOWrTR2U^8(^yhnwu=DgS2;&;pWb zNdDah0t?oBzPN|9rH=51*gcX6jqYTbnx)J8&gjGR$vYlqG@h%|3TK8K zwBE#15cF0?ED$t>K*$L%|E*kN7Yx%8sA%K|j_27_%-vH|Sz+pv#ztiZ zwn+bn?G$1Zx6Png$Lc>mC8sVX)u$N`SrDT%xn)+**e_Kiv(7>EyaDzf9RE++Xl>Uw zE3rxaPf|F8WGQ-zaMfsmFJH7fQK7Z<{$w7x3gVh0OKHoU5AaZ#GB0w|a+P|xy*tqy zqN1nhe|Y>mU!bX@!LD3sJR2d)wh2?D`UVP^Bfq?IvtbIX$wnvd0DaGEa?^H zUb@FCh50?J2_(u`x8ckt!3hoD?HL=c=R65w$a)AS*^@VdWVE8fnXb<6)>sQ&e;JsR z78n~_!s17euU(6$%M67abPV0HBHx41ibrc>u6PMg?O%Tv;X}nD#>EWieSJKFC$H?r z9SKK})oHi7T0J@sjfx*eilngM+%ZNzt|kY|h-B1X`AC52Xy&+V@da>lmo31BW!(NS=5Hzw^Ue9sINfb33R^Y|=876%;N~Q( z{WM=q@}lNI^k1&5KFIs^e{sTmHkjxOcYT13!oMg|PS{zb)o_7&` z(txEbjBxL_tlQyPc3r7 z9WWL!h!W|~%^j=ZHPOog$9qjg65RVMsq5q%LVV6gWT{mo@;rAN9kjWv{mKIRVCz2d zY`9qvi)%0LTR_^lKRM__B?@eG<$@F&aV~Q=t(|Ho2Rl8nvuPFWL7_NSi<#)0De{|n z02!0_Tk`}dj!pZa8|o0cSNdIpqB2rWu`a$5|2N31sB*TK)mD@d9$s1Qd`Xgox(nh1 zG}1oy+Rh;n$sP%-TwR|GV&SUv#;+(apiwWj&_Jl7Uh;S^bd224V9H7}z3y|UVq2Km zG;BE0X%?;@8XDnW?uO>lD6n{fUbOe4pUELK@b?017+CCQQt}-$a*SZ~d+kw$;kSoz@towk40}VIDqg&jj6Tc<3hTVJD>g!~34`wa!{H zVB=jN?z>98HuA9ZR9SZ1?WkAizLk0`?`QN*n>P6GyI%h(or!B05$nIoB8Qh>o4pRf zO7&+E4T2a#)&E#%Qv%~{W%a`-21qNBJQ6{o^31CY>cbT6voo;{>gdZ5r>4yMVU(Z? z+bR5en!RWFH_?x+X-wys{s_5Dhh$%uZ$w$<2bg0dg5N1d(&^uOT zeQ`chl@g;`v+)bGu8zOr?M$n+mwY9UEh;^IWoEU=IcEIm9tnfR?_&+ROG( zhR84;rc|B7SxW5-I8aX0db?rc$a7*BA(ko6X4;>pNROo9UXT3{s3GjN^P0~~d{cHx65J)R*Vyqs`b<>`9K>RO)Kr)N`V zl8^PU3=a%94WfC5eaClJSCW?AzjvuD^o`gP%pBIIpMH#}bzEm(d;}0HKW!(U>utNC zh;x+$ISW2Q>{ecdm-#}mgdhK~ylf0;ejF2L+1k-yd1pjS4#V89vBKZ+OL5*T^X9Gy z^u9>a%?A)STyN0q8@5nUwRXTXWx$f4v0IA@rXi>S0>hTVEP|iGt4wVsC792Q}8#vWeMkeW=0<8S0Gj ztnEk{J^J?;|748ex?8V^FW0F)^q1-(wmrZpK%5vWKPW3*ns(1_|Ne&6X}1U9A^%yb z_v)mxe)E1v$i*H(qr5*5G`V%1APoFj7_up8sFGM1RYnv=jw zj%c3xl#`-EqQXCa22kCZZaT^lzyQI6M#*q#TR&wsaLR_;x$p5la1KT?x&yJT*=Tk@ zU!at{FJHFRcV%VvB!lvNb)vJH`wv0VRLo|qnVKn99W{G%1l6^DgWI19+_QqjUOIN5 zDf`e^=XCBMBt4fV)6>@_YpkPA@Ah%Vpm;3)aiLnwd|YgbU4Ry^Sf^lL5{uhmwwIb2 zGjQZt#jH3SJaoTqYS&aOCAxtMvlSe%njc9rUKGQP!C(K_c8s3j3-N9=M~r@3qA&HH ziXYr{Z4S(qF)bD$nfe7O*`;9OVQ(^RwaSbiR?`2X3q%?P(_D~VrSu6whlR`OeT;j6 zeFpnK2a2U##S+dx_otYtQU{=rK3uD4Id23#j8?MNH|kf4I7Cne&Nf961|3Jh7xBi) zWqTk98j|m$AT>$pnRSEBedpL~4g5RyvL> z7ZPR@9Z(?Z`pbFKP!oiXpA?f69~h{@OOFl}>;0%0 zY&ljx`6l4^w#8|OC!%$>%Q36X4Id-Yl_2@Z>`OlRl;guT*4C$+56yqiDeV3=L?dqP zGOSQCthlDqV+;7pjyyHO_KnwT=IUar1diYBZ{K+dCwUE^AjdFEkd|7L31QJVIPQ!bl5YqOuz=8B{8Wk6CCRUIpgI>aAgZe$?LNbyB zy3(3ty<2u@*dOiN@*@GU;zqfH$Q1nR?YuVkGc(tJXg&(!&ZWmI^)3GVEqxYu`?kLL z(5G^RsL0p{M~0Q0$lb3h36ZDzd2xJ~QRanR1HZ1aehHOYvMTk&c8hfm#V%YW%v)+B zKK?n-inUZa1V@_%OSF?W@wO8PY{CoIECr%V_*qLC(3Qz-K{y1h;eQ5nhHqZiGx*YN`Qvp81(oZC(;VN+mC-qcKQGAZ_GR)hYSJay?}Z76 zrTEa7eM~xY+h|sdO+nc>kGMtA8|CwGiu{jda_f&=y8vAj-91KkEV0y zFYY$_uZOg$q*QG8GGLuwz1MjzSF#dq8o^u(vpv7{E9gLIe6;Ym;7RtWoDZdJTXy$z zm6o%vAefDVZJs?fv-3P_bKXhY%IYbmEC%27>C9Q~tM&~1Fy>eS9V0SAWh7MQ;f1tTtNcG87& zq!~W&=!CwS@_*pJqA*>C%$@)Bf76s1_ij2&Q_IfRhE; z2?2y~k2vD?SQ8`}giw>I0h5tqBIJyVmQ6pB`KF*5pEV|kZ3rv&^g$Nh*^X(G2!^Z_ zUNaJ{tKKAQOAT_!7m%j&Youb^Uxbw_tacH9iLQtW60DR%9XLv&g%Ux3zomMRG+#GXmf%f8OyxU)d+F*#WD>ul}qy@3FecKnvvKwTKIa0^} zpWP(#8s_15y)!Sz28?qR^Ch7C7Ro-6b2=XJ1tE9wmy4T%ud z)If`D(EJL+hTeFy+6BUzHdX&RN9J2BGaasdf45j%FJ3GIqgyLvXJMdlQx_apULRDL z3~2rQJrkTLA-NfmCitv9h@vrk&x%Hd4NigdC+fm{_z#hK(7j;Q&4z2BRNqcG z9G+l3x&5o3wB)vi-oh-zNZqs4BybNYf`sP$*5D|&(p@85qSzx~`4Prm_<4Rba9kqFM5K7g zLm92zz`q!XLO`!0~W|dL4jr> z5{g$~XV@=*7lEGM#(?02goD>w3hLHfD=V&Gb|F&$Hn?VS~hrJ>%Ks1xS9Y+MX6M)omz0Z~E92Sr!HYtSr-u^cS3 zeWosUTcf5nMk4&HK-%H7jeB+W8>gQ}A0BiHOhhD%kEsic3T?p$o)~Y>VxREUu!R5M&y|pf(rGFlMUxtxfnse)JZ=PDV0XA0UyZP6 zK;#&d!g(ktFGIs$*k$2fo*O-dmF~Vj_uja?_7Ly81c-=M(o4C8w8bfkwVSe*H3u?Z&470IMHZjmU}$d!P}rL^E3AEyY*&bMHWpmJ+1>t zql`d<{U&Bopu~g=L~llBtcil8u9{>5G<`AM|d^MQAkk zG}aZ<|2A#wFAO8Rofe6(!Fw|FI596@9w$jLo-sOW(mKjQcc2}LCSLAvtJZq zo0n!zJr0l_tj6QMWkyL?WBaagYlwI9!><4tb|bXO&`ChRhBKP_o|TP!)K<+hN&CV| zQolXjQ<{H0?p_f(B@F3(J=Zo{9`OO^2w-g4lMcu*WL0V&l&m8~58V%#;|82B^)Z{wbS<)sxk{ zaxH4pg$-Z5QnOER(VNG>+lygt%d6Z)nNp({frj&gXa~Yu(04l!k~e)_= zgrriFO*1n52bWb|>FGz9MafV#BFe9#w!0Itfy7O({mX`ETn=d6p(C_qxXQ!IQ^8gzy`%_OWr*;z-*6 zJzdtfa2Anby^xs0;l^{YE=hjI&9|N7p5y%Ixzx)zJeZ`3G7whbk2CVk`s&*1Ci!~M z07O51M1$#Q2BRMdT11>s!H*;zrBX>nszs?Drb(cZn4}6ybs_?(0}^W5hIw; zz$u|6ZPPAl`!8}(nC>PpZ})jfC1ujlq^Z4GQ4Iu6>*a55DfVvJE#>B<{sRCC{hTS6R5T^?u0>!wgyx9V(0XCTcpn{|W^>&&hmbgr?1gqP&x2 zMgI~P7W&S|E&gy=SpJ*?_C;6lm{QFCAx?+9$x#I5xllk##a|=A~x7 zYQznm4-1BCSHblEK)ICuQ>-AfG?UgCEoP*S{#D)@M5|d^cE39W`gq5p6?}>ge&5zu zZFQW5UCKIXS;*vg4vkODCT;v^D8$izEM|h@^u#8-lhl2M#b&779|nHynn-Kh_oTLY5eeSq%5rz+&q->n18Pgji!!12y4o^%E#6 zFBs{VV@p$aiV|^u3pxoVq3meJxR@n#h3EUH*@6?F*9?Q)O57bn8mBE#@|=j7fAGvj zo-wj~f9>A+WW{l!vS*1nDMm3zdC^SIYOXrtvjwS~+S4_Dn;rDEAI>#Zu`MN|JcHFSt{;qyV|1)ri$J|(Jp#_4bn$YV1HW;n^a z9c0_ylpE8>M+v4$M-0IJ_0A?9$Nm!`uOK-bd~{B-35vG3A*|U7J%0yTB7-T^6&lbX z{(+9bGo>l(u&^iQ#!ORLXYTX*ak0wZ?d@@Y&$4#I&q-0PE*VJ}DqIkMcXy4Se6USu zjvjcKYW>7>j*}Bp9PAx{KA`c*00I6t8m>W;b44Q1P_9>uLy0ZgDDY(o6yRU<06k?4 z6v;PproiZSCC8X+7`v!b=$R@cAhdp%JWPgC)`JC_Sjk5Ovf)m#HPuA)=(}uw2iGT@ zND;8}*O|j~0hyo}oV845`yaSP)hNrcKR7g_@=Y%l2uv|>4l3FDVB~DTA*Nz3 z#wZMXR!y}EMz|t^h=vFUnfQ4zc=Rh)Q4scMx%Fo^nGnRPP`T(BZ2m*%$4Tc6&W$1| z3uS}_`m?ixX1g!`m+wyn{gv@^_vWPv0RIjVbORm-5%(dVi^H?M`BB5~e*ZXraHHUd z45ITiMPmO|<9F3l8T28BXRgfmh>*DXntnG-$VCUmhBtG{-P{E~?>#%HY32tv5O65& z=;(5bz$?se9nznGARb+%A-A!`t%|0OrRi0R*3g7V`iS7E{bwl2TlS7@4Koay7BX}v zSazJSBUWy2UP8z&)8VK)UAGu&uzpQ;Egj11FZ=K(&(uP_n;hC+x7#V0r-9zDW7~o5 zKC`b!V3y1h1E?opW;OfBiaU|S<#Ck7!#PL!cQ*(mcp!5g7Bh1BuLWHzbmjF4DUnmA zu+C0&bac}Fl}U6=P7y8A`{NYL?+s8dfX$=j0U&nvU-O4XKj0%MDCjqUe+`?b`vlN> zXJcFN8+&U*XaaWW{Cg10)3@v6GvxUyrP66c6SUx5So3>#m~%Q>0fN1&yP9_P%ho-) zp>B&gf%~DU+ON?(VmofQKsMc6eIJ~91<>EGC;GjK{rHl%RSVd3=kwd~2|jlAgdDXe z&O~Vc!j~o0Dum(`iF2i==aol$kdx#)pd65>Q;gjbW+(pze$VH}_KbB%ZS@-$DREhZ zLi={!Ri+5%?ZjlC7%;k8>vLG;Gb+9bh01yF=k9tw=?A!e@uX<$di<3=n+LLdFo9=+ zdO`PLG-Ao+TZF{B=o!*UJ`a^b6eEi1`q;!Xkmxjg37q;qx6 zoZ@;9AHh@iMEt@4b3V|gADI6czB~Rtghcx25t2<4uFgMOP_dCRQGByx#I6o*_ZBF4tKh&=@j77UOqhl;#8`6HEflQ zri(XlXs3Q6v@SSk3Du1i#rp_W!V+`j0P%Itv<#ZlfMZK7UI%R1ZKas(n0ZWmct8U^ zsVCgBK=`irN_T9%&H33qVUCxbGz{mNkEDu=$0{R*S_l!@57fB$gte|%ZH%4%cZi*o ze^CS4rLDd$Ttm&8(;QQJ&HXOPq}4Q7COsYtO4A8{bIXe6%1Ymy6>W3ps(R#!eJ$T( z+176QYngO-2KxGavf8j-*RjGy&mx8HBFbi(bj37)R#ORETeg+hsyvsCz>>pj{}>e3 zT(UNi*-jI1kq;2(XjIp#H38Bn0Py>CytGvUZur+bR{{11?SbEU@{kjZ_(@ycoCUK` zTB}wOktEy;C*s3o;^MCOxa2nBNellfeVsQQpy?=4Ife~*xqGL{Gu31u zs%bl;v|buA@VF|-HqwF{qm?0RE#R-C<=f_7tW`Q9>Nca#21Kn(JdjPe$Uix=%+iq$ z0T%>Y*q}bWJvXh&f@_Vi13NL^%SYGV3?!U*ucpN6)OQY>x7yK8TadH8uCV{erbpL3+f?&CcrjvVQH?X7(tFbF(=BEqFZfnlM3Co1c zNnr7IxfJ(lkg-LR50)1ZmF;3SMN)p;ngU3&quG%2h=Qfg(0`^@ilS)W4x0?5T_}tW zPiuwirf~re&D?fIW!U=zFB+X!-4~Bx=Ce@_wz%r3`2Q?meVx9(^jtV5$)gwj%B_x>6lTnaMB0FFv|Stv+QRDbuK}cw zxdqT&3Tb1K&O1u)z|^%rxhJ_;BTHGt0b(!y^D=E@!!cpjJjTX+fm73BMu#WXsKI_e z)IGnx-aDkGdEcDQbc#X$m(wQu*8RST%ugae1zZ2{#(YU+%aA`QjqUbZi)}voux&Qt z4~e(AJ#~TKHvG$zDJpL0R2T^pF-`@6jDzNwx;mTi&3sX-L!(GYP^4-Tq=Ux@r`+0W zf&VG$qUHt*b{w7y3cs_+FNhT+TJH2ae*0Pe#~{D&?w8X+K*#6T{Lv8zzHQoEP)~k# zw_@64vyXBM$YEpj#>zZ^d(CgDWR?2e*SmG&yOG~r=Lv9nbG5zcXLodF1^{|~avfN= z;h6`DF#wvL8aDQM(bGJNdhLC`#NPTK49?U^7cQI#$$hEnGyYQ^OMA>wz<4Q2Zwm3n z$Hh~*t`a3Ag#S0J;UGA8uDF?Xur;r5D0|-<>3C{{{rctSm^2u9j#GD+@;;2CkTfbU zj0FGc(YL{6g@j-S+c$uPgg_g>qVU|$j0$trI*)G~Y;b)I#jGgGSLgee=(SyOhs}ap z`C%i3i=pZz475N)Cs1k@?wk6nE!FElpw6zS)54~by+L{Z~Ez|!h2vn#PGX8 zAC~mDjRt0GFY=VjIRuA}<NSPnK{nzd}W=N#9r-_^r?rUzXmaO{FXi3URVt5L`k3uZz**Vf2>h{#W1NH6R)kNKmgsc>qTyALT+ zA5SeRHS#ff1iNdy9P@4d3trqq{%~s7p!?l}QTbf8qu&1h{_amV>{+b)yrRb{jaaUK z+0P{95%`&Qd;Ive#H6-;v&tj)1J)yB{BObK3uEeKZeqn2n=zBT8l2N6yI~}hVd4}` zJ{#WOc7{neJ@sv}q4v~=?mCpDyBw97*37niV@u{qm0%zVj$jq=`{gBK7ZpVh?6|5} zPSu#ihko>~z35?kkjhkQ!_Y9D+jPLR8D^;}mqv;ULr=g)W`)KCklbb|*&;{vBAcS8 z0m6_`s-@6y_5AXYP0u4Z^V&i+a%i8w=e7FVQtTkOuXdk3!Bo>`%RA%Up{T^ioOh%P zL2pUqs+x|K@}H$$B`1az4SW)n{3yJ;BuZ zw7*p_{N6m=9K)}B=;xE^WeR4H^7Z2AS4#!B!GF9t`niIv+yNRXy}~%S(x?NA|40La zz|j`Yk%)|r(uS$|y8f{t9%?Jyea9;~lYKF2kAU+jrY(4{`Y!3sVaP?_eXOnYxgV+* z+6%7TNs$xx7I3te=ybCMK5 zF~UBt3Qq-(2v>37g#2qVm9r*-Yo-I1J2RfXB$Go=@=u5RL>sqF+m|iO+N?s`F|gzc zd~V}VqkD|=lb1)!k!$lXM5ztH-2r`Ik@cx*)ithPpiaMht&`8?V5VmaLPv?RdnA(D zGdQL8MDTSrH*#WOfgnf}FRYH3EPbUxpf6jZe=)cPVgZ_eI9{n}idAf>XIHK6jZF%3 z0ufiWE9)ju`2^Q1fn>c#nP%-mem=!>q69NXzLN+qk#KiKL<~8@EQM*##Q^R!;aRAC zw~W^lX>zfQBeZGf!2Ei#VF%924-(GSyj37Tcw)5!;%PC9OatnWWxfBnM_KL1Prb#uPEr zS;ny$;X?iX5>MR}+yRQt**zhG9cHMb__z0}%lTJ7kTKSo&vLiqs*Z1@G7p&}gHEz_ z*F2LUaqo&ckc%&}#6>!(4Ps=pNWmOC**11O)#NY_RhmY~<^t-(MWLIn%J##&{nuF^ z05wG?=c{%JkcYE019%^HOJH_Je`^{J zFF5zJM?ifN7VNMJf_z?+?7o-}CE4w=7agpdU|Q$el$bqa9NF4TNua z6|05cbe;(b(N~()>MSYO)e2b4vmN4Hw};%yfNiZ+y4|0|Qo*Dp#0vFJapNZDJ*yw; zg1odaIDXyi;n4)F&e4sw(`YD@z~rRIrK(k?DOiDV?Qg3R;uXJ(v@v&cIcPbTt4(N^ zg)~39+Wx9i(Xf(z>V&JOUFBCtGECUo&ng~v<<(RyO6n{mkU=IEaV?Tf5aql|E0L;X zx^XTB5$0VU$bp|p?K`AHD_bO`HnXgNrNNHM{iCj%CZ{|G4e?r9yQ(J@Q*CD_>2qbf z%lC6^9{GD4pYR8DcWZr)et#!!|aiKYoAkYchtM8O0U2QXrp&=#oEN#FZFx5*E535)NI>7F=ZEWHiyQzS&owg(p z^53Ip!L7d-7Tsk!Q0E0vvqt{sd54~^;u!1_7-2%_@d2jjp#qwL9GgTX7h+O({q>r~ zH%ql>VGCWAQC5{``L;B1-3bdx#pDs(xEsp2LIM;-bp$ z@}dFawANL&%nn#7q{{~bpSsNgo2A<2B#)A_fgqC64Z0|YR6POx#Q5@B`NRG9D4Qm; z7PR}14O~O~K8AwJ6L8pilL{3!2agh?o-}l;;dU~}?6R6%yV!bl#ZKYn9eTFuh~nB^ zS7IFwVdlu;VuKbu&D_zh_ zKYAB}`KVs8dJ2k!OJUX|cv~AFXGTJ<&6Z(CRLDPUBl``_3YP7LjOCCkbcG7P+|IvM zS)c8XRw`}Aw;maNOJHp*Arc(CDTW#D%#9c?!%n-G>Y1@}iV%;8YDuS8E|}F~C>55o z^M856{Pv|ZRMUTy7|moe9&*HLtPst%5|btWJqI663R-qlx+4#{wGmkS!iW@g7GLp@ z0Vj)&WfPRIoB>}l24Wrh;RL+cCSh041-td~x zSW#@ke%_|CMtyiqvmqp6ees+Vak#$0m>jPQID|y)%fuS3YjT@rDt69baOInf=TEzw z7$bvE9eQ1Ivc@hV-puV(u8DH8GzHX!Gsdo8fBamm` zcZ(a21v&WSTpI|CPFw3d*~M3x&&Pg)RYOr#wL9(4u`pL!li51B&=!gU3dd=YtDo`B z&e>|bF1H4@Z=rqvWG>0pZ!vdKkymS`JYX3N&fCO0+2C10|330Os+6yu)>6La3?$nNG@YkOs1gaWXy;W zgR<1|o)%=X21yI|WX)RX(_S!X+%%BnnAS;@Tmf32{`vtnyNh1M z62O7;cExHcEy)wXBBevwc*I3AZ5`zTYSQ|tbx|v0zke|V&W~F1(D>N2wd*z?pGpTb zTiKxi{=|t-Qq!^~07F!-GVxs;$}@nZMLtrQkv2AVm@bus?SAfhzvPy5Zq`;-4Mmxa zX^A_{{=3;(3;>|7a@V$j{M`e51^G?`ZqB~!?-KGOo7|kfSUtfpRb=e%Pych#XRPzmhNF*WjLUO2JGNX!)jgZWSQ;D6)xXG zG7D>zWc9+gy}>pR@4QukoPnPEJ|s0Zh^U2_-TZr+LDhGNt!ht5Ha8>wjHqr@u*$r6 zA=$V%n0^m3ffR)XN$49Wfv{w$D(q_M7xIo1%~)J>r2*7m(XsO9eLK|ZYE(hS4JjL9 zQyCb=TH10^Lvhy5`XYo-)U<1?KZeMhXa zN`WYgh;5aeNi3WRM3$T>q7fHK+v;Fa(6DbPDNU@?1zm}nueF*#o_=y@K}@&<8DAaA z8t1j=4+UZLAM`zrOyoN8d54pO#KnH+N~Tm!QEKFGR^s7?2lWcI&V?uO!o!9nHk{?w zjWrjdVb`Ib9suv{vY=1D01v6fyJc1Xl;>UF>F*B{KY-qMZ;UzY8=$)oBsk0_^}_!q zn-oeUbmYL)sF##b_nQ`v9tz+wq0tjP%ieOlA>)WuWNV#q8?#stm+ha+i>v$>tNS5} ztKci4l<^+qd(-|-AI}>Rx$EU{Z%%!GWQU*I$K~_fKJ2s!gEvxAt}uJZLOb$MZf|aK zQus|QwY}@|ih$OpnC-dw_h}JaLlW3O5xAt{`i{5Yljso_n~Q98Op+ac$R&~-at9lQp_)_Ba5^tkw5TTjr&2bR7am45yws zvxX_a1h}K>&~hY!o^XUX+5-(_r#tGV!U4bb1#^XaUeJ2rDJa!Ezi>YDkt!p(6nfw# zoO6+7s^(Z`BU_g0+;G^Yvs&Q43=Ye^tevPWr2_W(17|ejmTJ;r#v8V`I?lR4)T`C0 zcpNu;_qo%2^T9?v0!5mYLnO8hp(;PMi18TOn7g0pK}nbOkrV^^V46cwZ6B&ypl(BU z2w1pX;8i4q-F&GQ*D^KBNVcvci^ht{NhllZo#zpnu%`Vr?1NSA<8_kZ#u)>24Q!o{ z*i>KYUXO`P@>KQkV8?i}k8W4iCbd=1>OlMCS&YAdC=l+`%}gzy8v^xlSI0zVY2#-} zmirDtoyH*z%|+0Q?d}ZvTbFNCQIKuA?vQ!8fSh z2CrH#B)>}IvJ&2~6*^Lf?9VTbZ)x&$G*4@rmTB&d@nkLJ2xe{2{j>iqr<%PL>$;RT z5p&l6ohxL^W=d@>hueBPO!Kt05WhD+FxzWlT&z`J(XZ~Isr8d;2o@6{vK_2QD{p;w zQ7JqpX{r=03B0OIAPW$f*$ZthLIORS{}oS%t8+AC7?YdHQrxhcl_gLFDqMTr+hs|* zWY7_N7*koG>SpEkO2yYTspB2C^hGLRp~-x;w5repf{4~^_e)lmfp&Dw4^^~h6150LNq-RX9F`2G2!mP@_vM}pY(x}V2^379;N5y%|4jzt{9we2L82=I~Bj^A8{ z#SA__)tx0MzOWx6P_e5TCTQA2R6MJ}4A$Gjfv+!LiF>-(WTNOM z92xAjlTzAMYk9OumDfXS`qyN9RyYg;R;%BVw9W;NiXMqNasIwSZyMy_)s|$&I6eLi zoj$Ar<_4=ftJrPe`x78(E(_pwwnUzi80g5w^i6^k~X40XVLc6%V3ueEh<7oN?0?v0M{ zo{D&7)*J+F8~A4b35D`K0S9*nAFuqa_d3JhZiV4{(|}ixgBAX;p6h6!I{%98Pxa*X zT(G&b3$shVX-K_E&{G!2X=?&lTGowU)mqk*om#i&Y9&JkJCOryt%dNTmPQdS745BJ z?3K6FT=J|%HQW9Q^gA^?>pt^Xh7It z$D0i?Rjkx-ps))OJ}^y;pw0yqp&OTqsC3&M)-?EnnhmvMd$fYe*wUO|9ETMYU`l&` z|CSWpw2{T!|Mg>?Tsi+)t*JeF{+yj7Ls-dLHjD+Tb!GAtA<D*)6`s{)NQgMwb86w-ad-GM^aPg$*QJ==GJRS zWrs6++?Ew}%F3zRyo@Sqo4(uLZK`hW5i@bYE<;ystR=`qOOl|P+Aa-0Ik7D%{FwQy zFK5)@O3;S-;s^hXr+(Gz^%3`Sebw7~=dRB9D^H5*wJiG}-DU?!C1EY6{u`L%Dpdc~ zn>VZWeBW%Uo7KdXd8*QC+oqwqC!<7cW?U#3Gr5`tRPcnM3_x(lJs=tdTf3C5OqyNA z)e{-CVK+Qe0y%+h(V0kG%>>swo>kP^pwo;kwwB6_t9&!r1CDhY{8cvzv1#zp$B6vdG8UKF>^bG^g>X+>eiN z-Xq}%`4;w8I0`QR8C}^~MhIyVsODE_Xd((-Yo&yXD@*=*u? zJJAVka%N-{fI1!PrfBNOF5v=ClTw_sLe*=rrW684t2L#$Ung<*ZubCdI{(wE{#7wO zHVsUSbKKlTyIVvDiNDyyRIZrN+Qv$%)VjI+Ycw3%iEh=Hbat#IN%WUXUzW;DvZTI-d}_qHe`z;MRrn33fOGtf;&?Ro51 zuAQpI@~SDCiWS#(xl;+-W?+tm%J*HXQ|K3JQO`tVbKcYs!{@bQa5r0_Tn>6GD-{`& z{P~P?k`^XKzm^OYr?KT6rF?p|p4Li>=+v)*QD`^lZJ|g{s^S{Bt;NU*~%dI?H=mh7IQ$aFUHQ{pG zNzrgdlUQ=`3`gg9Oho8yp|=w%keFo|xJlbnk*1Yp{4{0WrU-IrX=*j7jHhkk(->ig`NY2qIb{V zpqO&ug=3oU!oLc9FC6}Z@4~<4#bmrI|1m$sJl!oC8sg}DmVxdgyhow9$h=445TARG z!hD)}kN&r}h2CLK*-W707cYeuW}N*&qTCBsFpE^n=O^W>&+`bjYRD@?4UG=RHFo{(~gb z^6THXO=dBf zAgW&Id0SiP?a%-6;?(ob&d#J{?ZqS`X-v|H5-q*Uz4cJH2m8D>vL2#-_$mBkoN{zB zwnLi|O?ToZMbm%F&Y;I378CCQlHeoT@dC{}02j{aJJauc;GNSnK15Q3r{iC6 z=1obCrSvR8Rsc7sOpqQr9LOEDkB#?V;@-emXhrh3Ex9iR3Sv6MdGmDJV2=e}01^!gD&J5zdL&k#s+XOo}N4 zOpv50f6DPL*o-5bSuZlZ4o)}$TY{iD5uO*g;10sU-e0^xjdwpBgnd;->bOMWLsA4m zBbFrWLZuHJCMut=Iy*6xfajPd@J%azdL?TT0q2*9Wdsz%n2tsSgmyuq0@5w?Y&4=N z&8dX*iv&vU;xs0yL;&H)eZHUnaZ|!oMy9pbp`KBu>4u|eN)xG zcwf+&Uh&vsDoj~SLcvD)8Tx`$qGp7Ve1YUAjnjove`yo8zMwPL`TED#uYGN1Dbg(e z@a)u=|NhA0L47Rr^@SNErBC9Ym<*I!1P=)j%q$iZ_cdA#1v z&#J@KvoE=0j=5y?4ktEe&f99Qj1nsOqq&(xM>gfH(*vRc><@zEy-?Cgc&4^AWD%z&0IBEcL4LDDKc=jA|BG`;aWF2tVTt{&;n4RH# ze){4H$XplBj3qQ$G=bU`&Wy!^L^DqFg>LL7;7mz=!T9+}9o(*P>K4|6acww_9ZL$% zWsDj)g>p`z>eK>s7m%{&1@GPu_y4lyq_@HeTmDPV8DDF&zwupuQ_tFRd$(5CkT-5z z(Ad;-Gl05FfdHL_vuw<9Oo}@K>f}tW)#Dsp&?G@56*IUA(Rk5gOy?w3CgTeNZ&Z_@ z;41w)M8_j^R-Dx-5lL^u$Llz28h8z=s}JAAJSnbd32WjMn;&Eo zhfuQgdfNGhw(Q$uARBwuvkq*C!F)5@e({u+jaJu&I65b3eAa+f^f&Dcgs@pYnlO>B zg-9xwk2=Yan=@03?b*q(m1pg85rofaM2zPZW4?WN!ob67h`F!1pls!X>CNyX*<8wU z8dZ$v%2X0kwmVGNcz3Tq_~+gJ)7`;ecX37or?v=a8VrKL!LGwk7io?^S=)0&1Zu*Q z5$sQJK6$&y$eDwu6He1ym`fE}vd?ru* z(MrKp`1&UC1YG@RJS53&%6+#ep}C}xz&On{mAGt`b4;7208$m2N3~q{)?I-|h(hm` zxBVsRGZa`hZ`ay-8)k0V#9eFOSv7U)z*wzU3!9XAB`#CP+tOa~lJeo1k#A&)*K@)- zjbXtrpS<$vv@HLe6SdtK`?mbJK!46~BGDZqoMiw;-G0-pGXPr?q$&%8%92@OY40>; zt+b-0&*iK9nxfh_D59?ftrZZj3-z3(?!4 zYLdJZW#L0h5ggjg+Lj8S*rj0_LgZ-=&-g8YVjthuZF&Jvap6+i$3k< zd`{LdC|?VGHpnMP(O(ls%SPy+uP^~BH=DBt^jYtG#t|nur({mRXOoT)PB_8w0!6Sh z#G$KBlrD4xIv89TL&(?OO7Xk0vw%Ue>3iVU-|hK5H@=Mx_d`p6eKXX&^I3nTfz z?xys2LBu;q)!#v?F4&J$*=I)7RVGhn?@TmNAIzvYD;*=4Tg*~9BXe*iwYN76Y7P2S z{Sd80U$f`HxAd5OIA$>#ipzRsq*IWMEHv+I?JSxre8Nmb90(_KMbPa6Vtu%OmV z%4Q;$>UlGxbP6<>R8NYpzi)3jWn0XuKtXRa6)kd8vfLe(+BPI^-C@DXrNcZ+Y$&TV zCR~xC{7cxYiExQbGDA$$!une}7n-$@qPmJx-UaOaI(x4Vi3yt}F;XC?&>5zi9jjD~ zIQer%(mYw1%27$_ID2p=cTK5{XsZ1+r>kuYH+#UlF+%TP*S$fK+gQ^s?KRwRQ@i>P zGn&MRq;twyI#n0fI0esH5YW|;C{`lFn(hmVWSj1~uCvM4hf%pJXH9%?AjFlsv#`#~ zMkY~rch{zc6@rTyoqh|Q1mp~6Dr ze6rRs&P#y<)US1fuf}2gL>6)oKU3j)xC%6)T;$FWB*fq_kM-r(SPzwPT~_OZAS{Cz zo}iSafhp|{qb^jRlf|GsI1r_qhNrpKyW-C66(i zaT&{stMKj_Scl*aH%W9QxvW!AmN30e2#7Pio9*c1Dyi4otJ-CK{y0Su7GP^z6y8lc z&NUh3j5IDzTPN(oY@5zj8lpE+nR(}iboqUI%Y-?YtC)~0=C2%IV1`W2 z&T>@ct50iPI@53l#j0BpeDJJTJNER~EFfhv16^rIl<%yB2TX7@*S-e=u~bJkS+JQx zz)TRNq0m~BIml9Ix*>kFV*Z+v<(;iPe@?o@jZ9&E{+#q*Uv~F)(@S6@Iq9m$>(5v({*V4s!VYwxSaBCrvfDmJjp$T z$R|9_5^{)Qs1;J?c}^US6O!j%oVI^Kv|1)vRhK$78pdK{z-F z2SH4R6sN(UAMk^H&&y^>qAsAVY7~$?S|F^NKd}{UG;A=7K75v3;DvaI=%|20;_M-~ zn&%I9R9tI8awvX0dd2b+P6SEwhYB9;Zd3q-ImZhRA(|5vjc_@nCYWBbK*9i>szwkS z72q3J|Lr0nXvr%+^t_l1XAZiDDrk5OHEJy84jiy6;BE;$C-RG=Zt^MT7}0dZ_*A+5 zs>m+Fog@`bT+;Tl6x3v#MnpF@B!}LXB}8Y@>1LWQ)`x7wj_mUXYHrto!!|C|vU%&M4;&!3%Bc`f*VLBoT`B#mrl z=gUj4H0U@>iV=rlsKbqtbbe@aoSVR4C(quzdH?$Kg;xlfb8~!n=()0|LM5c68I`{* zL6_^VX#>W#`3kmXXL_I`$hyxtSuE}G+=)=zwL^1^Y112BUIPBSEjN5IptZ81%8P&1 zYCLWd47eaYakAP0|85X2;6G3j|th!|W65d#+y zgUujfa07@KG$X9AuTZZzP#1D0Sp?%5vu^%HaJ>=1`Hah^ z;#dXVQ$yWX@)WcpSEUw!!BNC^rAL5hE=V$xDi-FkmNG2LUcUZ0^t?xp-h&sN2K<6> zf~bxvNpvLmDiZ$tqeq?>pcCWKtX~U-4ikYcZga2RrizM)Seh()A^Pwigp=jrOHJ5PNdh>ddQi$esRuf6gi}dV zF`6>KQla@OqmabznH%;-`GI)>`c+~<$wWG~;#m!*`F>aeYlQ#Y-O{B404~r}z5*KA z;oCAXDHrxk>B2_xeguexz5fwJK`z2&GOqm{lWc;AB&QK9C=hoiY|6$YC35C3@SsXr|v=nV(e^kmUw=c)J9&RKkLNM`0 z^}5-C_LM_s`Y=Z$$-Z#9Kvaks5#75~^15C{nodPTQp_o{LEY@FSS-r5V@8DR-Y_h) z8gaUi^H_jUj6!){m)Dv*G___V*kT#nWn}36gp(2BhE087qY(uIBovETG?Q8m%-Zs` zGvE6--~TwJV>QLQTlUXjCP)xrK}1il68$M1tI0EC$QhdNOJey|kkKqb2~E$1q6O2l z?6DNNH=pH Date: Fri, 17 Feb 2023 19:09:06 +0500 Subject: [PATCH 4/4] =?UTF-8?q?UGCMNT-3776:=20posthog:=20=D1=81=D0=BA?= =?UTF-8?q?=D0=B0=D0=BB=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B8=20=D1=82=D1=8E=D0=BD=D0=B8=D0=BD=D0=B3=20kafka?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- charts/posthog/templates/_kafka.tpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/charts/posthog/templates/_kafka.tpl b/charts/posthog/templates/_kafka.tpl index cb6562aff..2cff3f780 100644 --- a/charts/posthog/templates/_kafka.tpl +++ b/charts/posthog/templates/_kafka.tpl @@ -14,7 +14,7 @@ {{/* Return the Kafka hosts (brokers) */}} {{- define "posthog.kafka.brokers"}} {{- if .Values.kafka.enabled -}} - {{- printf "%s:%d" (include "posthog.kafka.fullname" .) (.Values.kafka.service.port | int) }} + {{- printf "%s:%d" (include "posthog.kafka.fullname" .) (.Values.kafka.service.ports.client | int) }} {{- else -}} {{- printf "%s" .Values.externalKafka.brokers }} {{- end }}