From c2842b9e72de51b0acb47e185434f55ebc973029 Mon Sep 17 00:00:00 2001 From: Jinjia Date: Sun, 30 Nov 2025 18:07:29 +0200 Subject: [PATCH 1/7] feat(helm): init --- charts/aconext/.helmignore | 23 +++ charts/aconext/Chart.yaml | 24 +++ charts/aconext/templates/NOTES.txt | 35 ++++ charts/aconext/templates/_helpers.tpl | 62 +++++++ charts/aconext/templates/deployment.yaml | 78 +++++++++ charts/aconext/templates/hpa.yaml | 32 ++++ charts/aconext/templates/httproute.yaml | 38 +++++ charts/aconext/templates/ingress.yaml | 43 +++++ charts/aconext/templates/service.yaml | 15 ++ charts/aconext/templates/serviceaccount.yaml | 13 ++ .../templates/tests/test-connection.yaml | 15 ++ charts/aconext/values.yaml | 161 ++++++++++++++++++ 12 files changed, 539 insertions(+) create mode 100644 charts/aconext/.helmignore create mode 100644 charts/aconext/Chart.yaml create mode 100644 charts/aconext/templates/NOTES.txt create mode 100644 charts/aconext/templates/_helpers.tpl create mode 100644 charts/aconext/templates/deployment.yaml create mode 100644 charts/aconext/templates/hpa.yaml create mode 100644 charts/aconext/templates/httproute.yaml create mode 100644 charts/aconext/templates/ingress.yaml create mode 100644 charts/aconext/templates/service.yaml create mode 100644 charts/aconext/templates/serviceaccount.yaml create mode 100644 charts/aconext/templates/tests/test-connection.yaml create mode 100644 charts/aconext/values.yaml diff --git a/charts/aconext/.helmignore b/charts/aconext/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/charts/aconext/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/aconext/Chart.yaml b/charts/aconext/Chart.yaml new file mode 100644 index 0000000..c858a3c --- /dev/null +++ b/charts/aconext/Chart.yaml @@ -0,0 +1,24 @@ +apiVersion: v2 +name: aconext +description: A Helm chart for Kubernetes + +# A chart can be either an 'application' or a 'library' chart. +# +# Application charts are a collection of templates that can be packaged into versioned archives +# to be deployed. +# +# Library charts provide useful utilities or functions for the chart developer. They're included as +# a dependency of application charts to inject those utilities and functions into the rendering +# pipeline. Library charts do not define any templates and therefore cannot be deployed. +type: application + +# This is the chart version. This version number should be incremented each time you make changes +# to the chart and its templates, including the app version. +# Versions are expected to follow Semantic Versioning (https://semver.org/) +version: 0.1.0 + +# This is the version number of the application being deployed. This version number should be +# incremented each time you make changes to the application. Versions are not expected to +# follow Semantic Versioning. They should reflect the version the application is using. +# It is recommended to use it with quotes. +appVersion: "1.16.0" diff --git a/charts/aconext/templates/NOTES.txt b/charts/aconext/templates/NOTES.txt new file mode 100644 index 0000000..b66a6e5 --- /dev/null +++ b/charts/aconext/templates/NOTES.txt @@ -0,0 +1,35 @@ +1. Get the application URL by running these commands: +{{- if .Values.httpRoute.enabled }} +{{- if .Values.httpRoute.hostnames }} + export APP_HOSTNAME={{ .Values.httpRoute.hostnames | first }} +{{- else }} + export APP_HOSTNAME=$(kubectl get --namespace {{(first .Values.httpRoute.parentRefs).namespace | default .Release.Namespace }} gateway/{{ (first .Values.httpRoute.parentRefs).name }} -o jsonpath="{.spec.listeners[0].hostname}") + {{- end }} +{{- if and .Values.httpRoute.rules (first .Values.httpRoute.rules).matches (first (first .Values.httpRoute.rules).matches).path.value }} + echo "Visit http://$APP_HOSTNAME{{ (first (first .Values.httpRoute.rules).matches).path.value }} to use your application" + + NOTE: Your HTTPRoute depends on the listener configuration of your gateway and your HTTPRoute rules. + The rules can be set for path, method, header and query parameters. + You can check the gateway configuration with 'kubectl get --namespace {{(first .Values.httpRoute.parentRefs).namespace | default .Release.Namespace }} gateway/{{ (first .Values.httpRoute.parentRefs).name }} -o yaml' +{{- end }} +{{- else if .Values.ingress.enabled }} +{{- range $host := .Values.ingress.hosts }} + {{- range .paths }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} + {{- end }} +{{- end }} +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "aconext.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo http://$NODE_IP:$NODE_PORT +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch its status by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "aconext.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "aconext.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo http://$SERVICE_IP:{{ .Values.service.port }} +{{- else if contains "ClusterIP" .Values.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "aconext.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") + echo "Visit http://127.0.0.1:8080 to use your application" + kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT +{{- end }} diff --git a/charts/aconext/templates/_helpers.tpl b/charts/aconext/templates/_helpers.tpl new file mode 100644 index 0000000..cfe7236 --- /dev/null +++ b/charts/aconext/templates/_helpers.tpl @@ -0,0 +1,62 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "aconext.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "aconext.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "aconext.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "aconext.labels" -}} +helm.sh/chart: {{ include "aconext.chart" . }} +{{ include "aconext.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "aconext.selectorLabels" -}} +app.kubernetes.io/name: {{ include "aconext.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "aconext.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "aconext.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/charts/aconext/templates/deployment.yaml b/charts/aconext/templates/deployment.yaml new file mode 100644 index 0000000..60e7c6c --- /dev/null +++ b/charts/aconext/templates/deployment.yaml @@ -0,0 +1,78 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "aconext.fullname" . }} + labels: + {{- include "aconext.labels" . | nindent 4 }} +spec: + {{- if not .Values.autoscaling.enabled }} + replicas: {{ .Values.replicaCount }} + {{- end }} + selector: + matchLabels: + {{- include "aconext.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with .Values.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "aconext.labels" . | nindent 8 }} + {{- with .Values.podLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "aconext.serviceAccountName" . }} + {{- with .Values.podSecurityContext }} + securityContext: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + - name: {{ .Chart.Name }} + {{- with .Values.securityContext }} + securityContext: + {{- toYaml . | nindent 12 }} + {{- end }} + image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + ports: + - name: http + containerPort: {{ .Values.service.port }} + protocol: TCP + {{- with .Values.livenessProbe }} + livenessProbe: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.readinessProbe }} + readinessProbe: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.resources }} + resources: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.volumeMounts }} + volumeMounts: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.volumes }} + volumes: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} diff --git a/charts/aconext/templates/hpa.yaml b/charts/aconext/templates/hpa.yaml new file mode 100644 index 0000000..94af533 --- /dev/null +++ b/charts/aconext/templates/hpa.yaml @@ -0,0 +1,32 @@ +{{- if .Values.autoscaling.enabled }} +apiVersion: autoscaling/v2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "aconext.fullname" . }} + labels: + {{- include "aconext.labels" . | nindent 4 }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "aconext.fullname" . }} + minReplicas: {{ .Values.autoscaling.minReplicas }} + maxReplicas: {{ .Values.autoscaling.maxReplicas }} + metrics: + {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} + {{- end }} + {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} + - type: Resource + resource: + name: memory + target: + type: Utilization + averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} + {{- end }} +{{- end }} diff --git a/charts/aconext/templates/httproute.yaml b/charts/aconext/templates/httproute.yaml new file mode 100644 index 0000000..d90b269 --- /dev/null +++ b/charts/aconext/templates/httproute.yaml @@ -0,0 +1,38 @@ +{{- if .Values.httpRoute.enabled -}} +{{- $fullName := include "aconext.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: {{ $fullName }} + labels: + {{- include "aconext.labels" . | nindent 4 }} + {{- with .Values.httpRoute.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + parentRefs: + {{- with .Values.httpRoute.parentRefs }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.httpRoute.hostnames }} + hostnames: + {{- toYaml . | nindent 4 }} + {{- end }} + rules: + {{- range .Values.httpRoute.rules }} + {{- with .matches }} + - matches: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .filters }} + filters: + {{- toYaml . | nindent 8 }} + {{- end }} + backendRefs: + - name: {{ $fullName }} + port: {{ $svcPort }} + weight: 1 + {{- end }} +{{- end }} diff --git a/charts/aconext/templates/ingress.yaml b/charts/aconext/templates/ingress.yaml new file mode 100644 index 0000000..d29a788 --- /dev/null +++ b/charts/aconext/templates/ingress.yaml @@ -0,0 +1,43 @@ +{{- if .Values.ingress.enabled -}} +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: {{ include "aconext.fullname" . }} + labels: + {{- include "aconext.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- with .Values.ingress.className }} + ingressClassName: {{ . }} + {{- end }} + {{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ .path }} + {{- with .pathType }} + pathType: {{ . }} + {{- end }} + backend: + service: + name: {{ include "aconext.fullname" $ }} + port: + number: {{ $.Values.service.port }} + {{- end }} + {{- end }} +{{- end }} diff --git a/charts/aconext/templates/service.yaml b/charts/aconext/templates/service.yaml new file mode 100644 index 0000000..36b8938 --- /dev/null +++ b/charts/aconext/templates/service.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "aconext.fullname" . }} + labels: + {{- include "aconext.labels" . | nindent 4 }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + {{- include "aconext.selectorLabels" . | nindent 4 }} diff --git a/charts/aconext/templates/serviceaccount.yaml b/charts/aconext/templates/serviceaccount.yaml new file mode 100644 index 0000000..48a3ce1 --- /dev/null +++ b/charts/aconext/templates/serviceaccount.yaml @@ -0,0 +1,13 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "aconext.serviceAccountName" . }} + labels: + {{- include "aconext.labels" . | nindent 4 }} + {{- with .Values.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +automountServiceAccountToken: {{ .Values.serviceAccount.automount }} +{{- end }} diff --git a/charts/aconext/templates/tests/test-connection.yaml b/charts/aconext/templates/tests/test-connection.yaml new file mode 100644 index 0000000..60bf244 --- /dev/null +++ b/charts/aconext/templates/tests/test-connection.yaml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "aconext.fullname" . }}-test-connection" + labels: + {{- include "aconext.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": test +spec: + containers: + - name: wget + image: busybox + command: ['wget'] + args: ['{{ include "aconext.fullname" . }}:{{ .Values.service.port }}'] + restartPolicy: Never diff --git a/charts/aconext/values.yaml b/charts/aconext/values.yaml new file mode 100644 index 0000000..491a8dc --- /dev/null +++ b/charts/aconext/values.yaml @@ -0,0 +1,161 @@ +# Default values for aconext. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + +# This will set the replicaset count more information can be found here: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/ +replicaCount: 1 + +# This sets the container image more information can be found here: https://kubernetes.io/docs/concepts/containers/images/ +image: + repository: nginx + # This sets the pull policy for images. + pullPolicy: IfNotPresent + # Overrides the image tag whose default is the chart appVersion. + tag: "" + +# This is for the secrets for pulling an image from a private repository more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ +imagePullSecrets: [] +# This is to override the chart name. +nameOverride: "" +fullnameOverride: "" + +# This section builds out the service account more information can be found here: https://kubernetes.io/docs/concepts/security/service-accounts/ +serviceAccount: + # Specifies whether a service account should be created. + create: true + # Automatically mount a ServiceAccount's API credentials? + automount: true + # Annotations to add to the service account. + annotations: {} + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template. + name: "" + +# This is for setting Kubernetes Annotations to a Pod. +# For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ +podAnnotations: {} +# This is for setting Kubernetes Labels to a Pod. +# For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ +podLabels: {} + +podSecurityContext: {} + # fsGroup: 2000 + +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +# This is for setting up a service more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/ +service: + # This sets the service type more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types + type: ClusterIP + # This sets the ports more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/#field-spec-ports + port: 80 + +# This block is for setting up the ingress for more information can be found here: https://kubernetes.io/docs/concepts/services-networking/ingress/ +ingress: + enabled: false + className: "" + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + hosts: + - host: chart-example.local + paths: + - path: / + pathType: ImplementationSpecific + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + +# -- Expose the service via gateway-api HTTPRoute +# Requires Gateway API resources and suitable controller installed within the cluster +# (see: https://gateway-api.sigs.k8s.io/guides/) +httpRoute: + # HTTPRoute enabled. + enabled: false + # HTTPRoute annotations. + annotations: {} + # Which Gateways this Route is attached to. + parentRefs: + - name: gateway + sectionName: http + # namespace: default + # Hostnames matching HTTP header. + hostnames: + - chart-example.local + # List of rules and filters applied. + rules: + - matches: + - path: + type: PathPrefix + value: /headers + # filters: + # - type: RequestHeaderModifier + # requestHeaderModifier: + # set: + # - name: My-Overwrite-Header + # value: this-is-the-only-value + # remove: + # - User-Agent + # - matches: + # - path: + # type: PathPrefix + # value: /echo + # headers: + # - name: version + # value: v2 + +resources: {} + # We usually recommend not to specify default resources and to leave this as a conscious + # choice for the user. This also increases chances charts run on environments with little + # resources, such as Minikube. If you do want to specify resources, uncomment the following + # lines, adjust them as necessary, and remove the curly braces after 'resources:'. + # limits: + # cpu: 100m + # memory: 128Mi + # requests: + # cpu: 100m + # memory: 128Mi + +# This is to setup the liveness and readiness probes more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ +livenessProbe: + httpGet: + path: / + port: http +readinessProbe: + httpGet: + path: / + port: http + +# This section is for setting up autoscaling more information can be found here: https://kubernetes.io/docs/concepts/workloads/autoscaling/ +autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 100 + targetCPUUtilizationPercentage: 80 + # targetMemoryUtilizationPercentage: 80 + +# Additional volumes on the output Deployment definition. +volumes: [] + # - name: foo + # secret: + # secretName: mysecret + # optional: false + +# Additional volumeMounts on the output Deployment definition. +volumeMounts: [] + # - name: foo + # mountPath: "/etc/foo" + # readOnly: true + +nodeSelector: {} + +tolerations: [] + +affinity: {} From c1ffb5e71129b007cc7ab9c42f1a6beb9f2fa70f Mon Sep 17 00:00:00 2001 From: Jinjia Date: Tue, 2 Dec 2025 21:19:26 +0200 Subject: [PATCH 2/7] feat(helm): update --- charts/aconext/Chart.lock | 12 + charts/aconext/Chart.yaml | 34 +- charts/aconext/templates/NOTES.txt | 74 ++-- charts/aconext/templates/_helpers.tpl | 155 ++++++- charts/aconext/templates/api-deployment.yaml | 183 +++++++++ charts/aconext/templates/api-service.yaml | 19 + .../aconext/templates/api-serviceaccount.yaml | 15 + charts/aconext/templates/configmap.yaml | 38 ++ charts/aconext/templates/core-deployment.yaml | 105 +++++ charts/aconext/templates/core-service.yaml | 19 + .../templates/core-serviceaccount.yaml | 15 + charts/aconext/templates/deployment.yaml | 78 ---- charts/aconext/templates/hpa.yaml | 32 -- charts/aconext/templates/httproute.yaml | 38 -- charts/aconext/templates/ingress.yaml | 43 -- charts/aconext/templates/secret.yaml | 99 +++++ charts/aconext/templates/service.yaml | 15 - charts/aconext/templates/serviceaccount.yaml | 13 - .../templates/tests/test-connection.yaml | 15 - charts/aconext/values.yaml | 387 +++++++++++------- 20 files changed, 947 insertions(+), 442 deletions(-) create mode 100644 charts/aconext/Chart.lock create mode 100644 charts/aconext/templates/api-deployment.yaml create mode 100644 charts/aconext/templates/api-service.yaml create mode 100644 charts/aconext/templates/api-serviceaccount.yaml create mode 100644 charts/aconext/templates/configmap.yaml create mode 100644 charts/aconext/templates/core-deployment.yaml create mode 100644 charts/aconext/templates/core-service.yaml create mode 100644 charts/aconext/templates/core-serviceaccount.yaml delete mode 100644 charts/aconext/templates/deployment.yaml delete mode 100644 charts/aconext/templates/hpa.yaml delete mode 100644 charts/aconext/templates/httproute.yaml delete mode 100644 charts/aconext/templates/ingress.yaml create mode 100644 charts/aconext/templates/secret.yaml delete mode 100644 charts/aconext/templates/service.yaml delete mode 100644 charts/aconext/templates/serviceaccount.yaml delete mode 100644 charts/aconext/templates/tests/test-connection.yaml diff --git a/charts/aconext/Chart.lock b/charts/aconext/Chart.lock new file mode 100644 index 0000000..1fbb3c7 --- /dev/null +++ b/charts/aconext/Chart.lock @@ -0,0 +1,12 @@ +dependencies: +- name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 18.1.13 +- name: redis + repository: https://charts.bitnami.com/bitnami + version: 24.0.0 +- name: rabbitmq + repository: https://charts.bitnami.com/bitnami + version: 16.0.14 +digest: sha256:a6dacb3ae4b421677920042468a45a83db2632a5dc4e2ff8fce26738c28ace94 +generated: "2025-12-02T21:17:35.634297+02:00" diff --git a/charts/aconext/Chart.yaml b/charts/aconext/Chart.yaml index c858a3c..7ad5f59 100644 --- a/charts/aconext/Chart.yaml +++ b/charts/aconext/Chart.yaml @@ -1,24 +1,22 @@ apiVersion: v2 name: aconext -description: A Helm chart for Kubernetes +description: A Helm chart for Acontext deployment on Kubernetes -# A chart can be either an 'application' or a 'library' chart. -# -# Application charts are a collection of templates that can be packaged into versioned archives -# to be deployed. -# -# Library charts provide useful utilities or functions for the chart developer. They're included as -# a dependency of application charts to inject those utilities and functions into the rendering -# pipeline. Library charts do not define any templates and therefore cannot be deployed. type: application -# This is the chart version. This version number should be incremented each time you make changes -# to the chart and its templates, including the app version. -# Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.1.0 +version: 0.0.1 +appVersion: "0.0.1" -# This is the version number of the application being deployed. This version number should be -# incremented each time you make changes to the application. Versions are not expected to -# follow Semantic Versioning. They should reflect the version the application is using. -# It is recommended to use it with quotes. -appVersion: "1.16.0" +dependencies: + - name: postgresql + repository: https://charts.bitnami.com/bitnami + version: 18.1.13 + condition: postgresql.enabled + - name: redis + repository: https://charts.bitnami.com/bitnami + version: 24.0.0 + condition: redis.enabled + - name: rabbitmq + repository: https://charts.bitnami.com/bitnami + version: 16.0.14 + condition: rabbitmq.enabled diff --git a/charts/aconext/templates/NOTES.txt b/charts/aconext/templates/NOTES.txt index b66a6e5..8f0255d 100644 --- a/charts/aconext/templates/NOTES.txt +++ b/charts/aconext/templates/NOTES.txt @@ -1,35 +1,53 @@ 1. Get the application URL by running these commands: -{{- if .Values.httpRoute.enabled }} -{{- if .Values.httpRoute.hostnames }} - export APP_HOSTNAME={{ .Values.httpRoute.hostnames | first }} -{{- else }} - export APP_HOSTNAME=$(kubectl get --namespace {{(first .Values.httpRoute.parentRefs).namespace | default .Release.Namespace }} gateway/{{ (first .Values.httpRoute.parentRefs).name }} -o jsonpath="{.spec.listeners[0].hostname}") - {{- end }} -{{- if and .Values.httpRoute.rules (first .Values.httpRoute.rules).matches (first (first .Values.httpRoute.rules).matches).path.value }} - echo "Visit http://$APP_HOSTNAME{{ (first (first .Values.httpRoute.rules).matches).path.value }} to use your application" - - NOTE: Your HTTPRoute depends on the listener configuration of your gateway and your HTTPRoute rules. - The rules can be set for path, method, header and query parameters. - You can check the gateway configuration with 'kubectl get --namespace {{(first .Values.httpRoute.parentRefs).namespace | default .Release.Namespace }} gateway/{{ (first .Values.httpRoute.parentRefs).name }} -o yaml' -{{- end }} -{{- else if .Values.ingress.enabled }} -{{- range $host := .Values.ingress.hosts }} - {{- range .paths }} - http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }} - {{- end }} -{{- end }} -{{- else if contains "NodePort" .Values.service.type }} - export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "aconext.fullname" . }}) +{{- if contains "NodePort" .Values.api.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "aconext.api.name" . }}) export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") - echo http://$NODE_IP:$NODE_PORT -{{- else if contains "LoadBalancer" .Values.service.type }} + echo "API URL: http://$NODE_IP:$NODE_PORT" +{{- else if contains "LoadBalancer" .Values.api.service.type }} NOTE: It may take a few minutes for the LoadBalancer IP to be available. - You can watch its status by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "aconext.fullname" . }}' - export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "aconext.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") - echo http://$SERVICE_IP:{{ .Values.service.port }} -{{- else if contains "ClusterIP" .Values.service.type }} - export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "aconext.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") + You can watch its status by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "aconext.api.name" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "aconext.api.name" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo "API URL: http://$SERVICE_IP:{{ .Values.api.service.port }}" +{{- else if contains "ClusterIP" .Values.api.service.type }} + export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "aconext.name" . }}-api,app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}") export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}") echo "Visit http://127.0.0.1:8080 to use your application" kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT {{- end }} + +2. Check service status: + kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/instance={{ .Release.Name }}" + kubectl get svc --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/instance={{ .Release.Name }}" + +3. View logs: + kubectl logs --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "aconext.name" . }}-api" --tail=100 + kubectl logs --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "aconext.name" . }}-core" --tail=100 + +4. Service endpoints: +{{- if .Values.core.enabled }} + Core Service: {{ include "aconext.core.name" . }}:{{ .Values.core.service.port }} +{{- end }} +{{- if .Values.api.enabled }} + API Service: {{ include "aconext.api.name" . }}:{{ .Values.api.service.port }} +{{- end }} + +5. Dependencies status: +{{- if .Values.postgresql.enabled }} + PostgreSQL: Enabled (internal) +{{- else }} + PostgreSQL: External ({{ .Values.external.postgresql.host }}:{{ .Values.external.postgresql.port }}) +{{- end }} +{{- if .Values.redis.enabled }} + Redis: Enabled (internal) +{{- else }} + Redis: External ({{ .Values.external.redis.host }}:{{ .Values.external.redis.port }}) +{{- end }} +{{- if .Values.rabbitmq.enabled }} + RabbitMQ: Enabled (internal) +{{- else }} + RabbitMQ: External ({{ .Values.external.rabbitmq.host }}:{{ .Values.external.rabbitmq.port }}) +{{- end }} + +6. API Documentation: + Swagger UI: http:///swagger/index.html + Health Check: http:///health diff --git a/charts/aconext/templates/_helpers.tpl b/charts/aconext/templates/_helpers.tpl index cfe7236..9f46bce 100644 --- a/charts/aconext/templates/_helpers.tpl +++ b/charts/aconext/templates/_helpers.tpl @@ -51,12 +51,157 @@ app.kubernetes.io/instance: {{ .Release.Name }} {{- end }} {{/* -Create the name of the service account to use +Create the name of the core service account to use */}} -{{- define "aconext.serviceAccountName" -}} -{{- if .Values.serviceAccount.create }} -{{- default (include "aconext.fullname" .) .Values.serviceAccount.name }} +{{- define "aconext.core.serviceAccountName" -}} +{{- if .Values.core.serviceAccount.create }} +{{- default (include "aconext.core.name" .) .Values.core.serviceAccount.name }} {{- else }} -{{- default "default" .Values.serviceAccount.name }} +{{- default "default" .Values.core.serviceAccount.name }} {{- end }} {{- end }} + +{{/* +Create the name of the api service account to use +*/}} +{{- define "aconext.api.serviceAccountName" -}} +{{- if .Values.api.serviceAccount.create }} +{{- default (include "aconext.api.name" .) .Values.api.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.api.serviceAccount.name }} +{{- end }} +{{- end }} + +{{/* +Core service name +*/}} +{{- define "aconext.core.name" -}} +{{- printf "%s-core" (include "aconext.fullname" .) | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +API service name +*/}} +{{- define "aconext.api.name" -}} +{{- printf "%s-api" (include "aconext.fullname" .) | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Core selector labels +*/}} +{{- define "aconext.core.selectorLabels" -}} +app.kubernetes.io/name: {{ include "aconext.name" . }}-core +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +API selector labels +*/}} +{{- define "aconext.api.selectorLabels" -}} +app.kubernetes.io/name: {{ include "aconext.name" . }}-api +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Get PostgreSQL host +*/}} +{{- define "aconext.postgresql.host" -}} +{{- if .Values.postgresql.enabled }} +{{- printf "%s-postgresql" .Release.Name }} +{{- else }} +{{- .Values.external.postgresql.host }} +{{- end }} +{{- end }} + +{{/* +Get PostgreSQL port +*/}} +{{- define "aconext.postgresql.port" -}} +{{- if .Values.postgresql.enabled }} +{{- "5432" }} +{{- else }} +{{- .Values.external.postgresql.port | default "5432" | quote }} +{{- end }} +{{- end }} + +{{/* +Get Redis host +*/}} +{{- define "aconext.redis.host" -}} +{{- if .Values.redis.enabled }} +{{- printf "%s-redis-master" .Release.Name }} +{{- else }} +{{- .Values.external.redis.host }} +{{- end }} +{{- end }} + +{{/* +Get Redis port +*/}} +{{- define "aconext.redis.port" -}} +{{- if .Values.redis.enabled }} +{{- "6379" }} +{{- else }} +{{- .Values.external.redis.port | default "6379" | quote }} +{{- end }} +{{- end }} + +{{/* +Get RabbitMQ host +*/}} +{{- define "aconext.rabbitmq.host" -}} +{{- if .Values.rabbitmq.enabled }} +{{- printf "%s-rabbitmq" .Release.Name }} +{{- else }} +{{- .Values.external.rabbitmq.host }} +{{- end }} +{{- end }} + +{{/* +Get RabbitMQ port +*/}} +{{- define "aconext.rabbitmq.port" -}} +{{- if .Values.rabbitmq.enabled }} +{{- "5672" }} +{{- else }} +{{- .Values.external.rabbitmq.port | default "5672" | quote }} +{{- end }} +{{- end }} + +{{/* +Get PostgreSQL database URL +*/}} +{{- define "aconext.postgresql.url" -}} +{{- $host := include "aconext.postgresql.host" . }} +{{- $port := include "aconext.postgresql.port" . }} +{{- $user := .Values.postgresql.auth.username | default .Values.external.postgresql.username }} +{{- $password := .Values.postgresql.auth.password | default .Values.external.postgresql.password }} +{{- $database := .Values.postgresql.auth.database | default .Values.external.postgresql.database }} +{{- printf "postgresql://%s:%s@%s:%s/%s" $user $password $host $port $database }} +{{- end }} + +{{/* +Get Redis URL +*/}} +{{- define "aconext.redis.url" -}} +{{- $host := include "aconext.redis.host" . }} +{{- $port := include "aconext.redis.port" . }} +{{- $password := .Values.redis.auth.password | default .Values.external.redis.password }} +{{- if $password }} +{{- printf "redis://:%s@%s:%s" $password $host $port }} +{{- else }} +{{- printf "redis://%s:%s" $host $port }} +{{- end }} +{{- end }} + +{{/* +Get RabbitMQ URL +*/}} +{{- define "aconext.rabbitmq.url" -}} +{{- $host := include "aconext.rabbitmq.host" . }} +{{- $port := include "aconext.rabbitmq.port" . }} +{{- $user := .Values.rabbitmq.auth.username | default .Values.external.rabbitmq.username }} +{{- $password := .Values.rabbitmq.auth.password | default .Values.external.rabbitmq.password }} +{{- $vhost := .Values.rabbitmq.auth.vhost | default .Values.external.rabbitmq.vhost | default "/" }} +{{- printf "amqp://%s:%s@%s:%s/%s" $user $password $host $port $vhost }} +{{- end }} diff --git a/charts/aconext/templates/api-deployment.yaml b/charts/aconext/templates/api-deployment.yaml new file mode 100644 index 0000000..da9c35f --- /dev/null +++ b/charts/aconext/templates/api-deployment.yaml @@ -0,0 +1,183 @@ +{{- if .Values.api.enabled }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "aconext.api.name" . }} + labels: + {{- include "aconext.labels" . | nindent 4 }} + app.kubernetes.io/component: api +spec: + replicas: {{ .Values.api.replicaCount }} + selector: + matchLabels: + {{- include "aconext.api.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with .Values.api.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "aconext.api.selectorLabels" . | nindent 8 }} + {{- with .Values.api.podLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "aconext.api.serviceAccountName" . }} + {{- with .Values.api.podSecurityContext }} + securityContext: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + - name: api + {{- with .Values.api.securityContext }} + securityContext: + {{- toYaml . | nindent 12 }} + {{- end }} + image: "{{ .Values.api.image.repository }}:{{ .Values.api.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.api.image.pullPolicy }} + ports: + - name: http + containerPort: {{ .Values.api.service.port }} + protocol: TCP + env: + - name: API_EXPORT_PORT + valueFrom: + configMapKeyRef: + name: {{ include "aconext.api.name" . }}-config + key: API_EXPORT_PORT + {{- if .Values.secrets.api.rootBearerToken }} + - name: ROOT_API_BEARER_TOKEN + valueFrom: + secretKeyRef: + name: {{ include "aconext.api.name" . }}-secret + key: ROOT_API_BEARER_TOKEN + {{- end }} + - name: DATABASE_HOST + value: {{ include "aconext.postgresql.host" . | quote }} + - name: DATABASE_EXPORT_PORT + value: {{ include "aconext.postgresql.port" . | quote }} + - name: DATABASE_USER + value: {{ if .Values.postgresql.enabled }}{{ .Values.postgresql.auth.username }}{{ else }}{{ .Values.external.postgresql.username }}{{ end | quote }} + {{- if .Values.postgresql.enabled }} + - name: DATABASE_PASSWORD + value: {{ .Values.postgresql.auth.password | quote }} + {{- else }} + - name: DATABASE_PASSWORD + valueFrom: + secretKeyRef: + name: {{ include "aconext.fullname" . }}-postgresql-secret + key: password + {{- end }} + - name: DATABASE_NAME + value: {{ if .Values.postgresql.enabled }}{{ .Values.postgresql.auth.database }}{{ else }}{{ .Values.external.postgresql.database }}{{ end | quote }} + - name: REDIS_HOST + value: {{ include "aconext.redis.host" . | quote }} + - name: REDIS_EXPORT_PORT + value: {{ include "aconext.redis.port" . | quote }} + {{- if .Values.redis.enabled }} + - name: REDIS_PASSWORD + value: {{ .Values.redis.auth.password | quote }} + {{- else if .Values.secrets.redis.password }} + - name: REDIS_PASSWORD + valueFrom: + secretKeyRef: + name: {{ include "aconext.fullname" . }}-redis-secret + key: password + {{- end }} + - name: RABBITMQ_HOST + value: {{ include "aconext.rabbitmq.host" . | quote }} + - name: RABBITMQ_EXPORT_PORT + value: {{ include "aconext.rabbitmq.port" . | quote }} + - name: RABBITMQ_USER + value: {{ if .Values.rabbitmq.enabled }}{{ .Values.rabbitmq.auth.username }}{{ else }}{{ .Values.external.rabbitmq.username }}{{ end | quote }} + {{- if .Values.rabbitmq.enabled }} + - name: RABBITMQ_PASSWORD + value: {{ .Values.rabbitmq.auth.password | quote }} + {{- else }} + - name: RABBITMQ_PASSWORD + valueFrom: + secretKeyRef: + name: {{ include "aconext.fullname" . }}-rabbitmq-secret + key: password + {{- end }} + - name: RABBITMQ_VHOST + value: {{ if .Values.rabbitmq.enabled }}{{ .Values.rabbitmq.auth.vhost | default "/" }}{{ else }}{{ .Values.external.rabbitmq.vhost | default "/" }}{{ end | quote }} + - name: RABBITMQ_VHOST_ENCODED + value: {{ if .Values.rabbitmq.enabled }}{{ .Values.rabbitmq.auth.vhost | default "/" | urlquery }}{{ else }}{{ .Values.external.rabbitmq.vhost | default "/" | urlquery }}{{ end | quote }} + {{- if .Values.api.env.S3_ENDPOINT }} + - name: S3_ENDPOINT + valueFrom: + configMapKeyRef: + name: {{ include "aconext.api.name" . }}-config + key: S3_ENDPOINT + {{- end }} + {{- if .Values.api.env.S3_INTERNAL_ENDPOINT }} + - name: S3_INTERNAL_ENDPOINT + valueFrom: + configMapKeyRef: + name: {{ include "aconext.api.name" . }}-config + key: S3_INTERNAL_ENDPOINT + {{- else if .Values.api.env.S3_ENDPOINT }} + - name: S3_INTERNAL_ENDPOINT + valueFrom: + configMapKeyRef: + name: {{ include "aconext.api.name" . }}-config + key: S3_ENDPOINT + {{- end }} + - name: S3_REGION + valueFrom: + configMapKeyRef: + name: {{ include "aconext.api.name" . }}-config + key: S3_REGION + {{- if .Values.secrets.s3.accessKey }} + - name: S3_ACCESS_KEY + valueFrom: + secretKeyRef: + name: {{ include "aconext.fullname" . }}-s3-secret + key: S3_ACCESS_KEY + {{- end }} + {{- if .Values.secrets.s3.secretKey }} + - name: S3_SECRET_KEY + valueFrom: + secretKeyRef: + name: {{ include "aconext.fullname" . }}-s3-secret + key: S3_SECRET_KEY + {{- end }} + - name: S3_BUCKET + valueFrom: + configMapKeyRef: + name: {{ include "aconext.api.name" . }}-config + key: S3_BUCKET + - name: CORE_BASE_URL + value: http://{{ include "aconext.core.name" . }}:{{ .Values.core.service.port }} + {{- with .Values.api.livenessProbe }} + livenessProbe: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.api.readinessProbe }} + readinessProbe: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.api.resources }} + resources: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.api.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.api.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.api.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} +{{- end }} + diff --git a/charts/aconext/templates/api-service.yaml b/charts/aconext/templates/api-service.yaml new file mode 100644 index 0000000..5253b97 --- /dev/null +++ b/charts/aconext/templates/api-service.yaml @@ -0,0 +1,19 @@ +{{- if .Values.api.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "aconext.api.name" . }} + labels: + {{- include "aconext.labels" . | nindent 4 }} + app.kubernetes.io/component: api +spec: + type: {{ .Values.api.service.type }} + ports: + - port: {{ .Values.api.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + {{- include "aconext.api.selectorLabels" . | nindent 4 }} +{{- end }} + diff --git a/charts/aconext/templates/api-serviceaccount.yaml b/charts/aconext/templates/api-serviceaccount.yaml new file mode 100644 index 0000000..347f0cc --- /dev/null +++ b/charts/aconext/templates/api-serviceaccount.yaml @@ -0,0 +1,15 @@ +{{- if and .Values.api.enabled .Values.api.serviceAccount.create }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "aconext.api.serviceAccountName" . }} + labels: + {{- include "aconext.labels" . | nindent 4 }} + app.kubernetes.io/component: api + {{- with .Values.api.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +automountServiceAccountToken: {{ .Values.api.serviceAccount.automount }} +{{- end }} + diff --git a/charts/aconext/templates/configmap.yaml b/charts/aconext/templates/configmap.yaml new file mode 100644 index 0000000..e23b8cc --- /dev/null +++ b/charts/aconext/templates/configmap.yaml @@ -0,0 +1,38 @@ +{{- if .Values.core.enabled }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "aconext.core.name" . }}-config + labels: + {{- include "aconext.labels" . | nindent 4 }} + app.kubernetes.io/component: core +data: + LLM_SDK: {{ .Values.core.env.LLM_SDK | default "openai" | quote }} + {{- if .Values.core.env.LLM_BASE_URL }} + LLM_BASE_URL: {{ .Values.core.env.LLM_BASE_URL | quote }} + {{- end }} + {{- if .Values.core.env.S3_ENDPOINT }} + S3_ENDPOINT: {{ .Values.core.env.S3_ENDPOINT | quote }} + {{- end }} +{{- end }} + +{{- if .Values.api.enabled }} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "aconext.api.name" . }}-config + labels: + {{- include "aconext.labels" . | nindent 4 }} + app.kubernetes.io/component: api +data: + API_EXPORT_PORT: {{ .Values.api.env.API_EXPORT_PORT | default "8029" | quote }} + S3_REGION: {{ .Values.api.env.S3_REGION | default "us-east-1" | quote }} + S3_BUCKET: {{ .Values.api.env.S3_BUCKET | default "acontext-assets" | quote }} + {{- if .Values.api.env.S3_ENDPOINT }} + S3_ENDPOINT: {{ .Values.api.env.S3_ENDPOINT | quote }} + {{- end }} + {{- if .Values.api.env.S3_INTERNAL_ENDPOINT }} + S3_INTERNAL_ENDPOINT: {{ .Values.api.env.S3_INTERNAL_ENDPOINT | quote }} + {{- end }} +{{- end }} + diff --git a/charts/aconext/templates/core-deployment.yaml b/charts/aconext/templates/core-deployment.yaml new file mode 100644 index 0000000..53241d0 --- /dev/null +++ b/charts/aconext/templates/core-deployment.yaml @@ -0,0 +1,105 @@ +{{- if .Values.core.enabled }} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "aconext.core.name" . }} + labels: + {{- include "aconext.labels" . | nindent 4 }} + app.kubernetes.io/component: core +spec: + replicas: {{ .Values.core.replicaCount }} + selector: + matchLabels: + {{- include "aconext.core.selectorLabels" . | nindent 6 }} + template: + metadata: + {{- with .Values.core.podAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + labels: + {{- include "aconext.core.selectorLabels" . | nindent 8 }} + {{- with .Values.core.podLabels }} + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{- with .Values.imagePullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + serviceAccountName: {{ include "aconext.core.serviceAccountName" . }} + {{- with .Values.core.podSecurityContext }} + securityContext: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + - name: core + {{- with .Values.core.securityContext }} + securityContext: + {{- toYaml . | nindent 12 }} + {{- end }} + image: "{{ .Values.core.image.repository }}:{{ .Values.core.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.core.image.pullPolicy }} + ports: + - name: http + containerPort: {{ .Values.core.service.port }} + protocol: TCP + env: + - name: DATABASE_URL + value: {{ include "aconext.postgresql.url" . | quote }} + - name: REDIS_URL + value: {{ include "aconext.redis.url" . | quote }} + - name: MQ_URL + value: {{ include "aconext.rabbitmq.url" . | quote }} + {{- if .Values.core.env.LLM_BASE_URL }} + - name: LLM_BASE_URL + valueFrom: + configMapKeyRef: + name: {{ include "aconext.core.name" . }}-config + key: LLM_BASE_URL + {{- end }} + - name: LLM_SDK + valueFrom: + configMapKeyRef: + name: {{ include "aconext.core.name" . }}-config + key: LLM_SDK + {{- if .Values.secrets.llm.apiKey }} + - name: LLM_API_KEY + valueFrom: + secretKeyRef: + name: {{ include "aconext.core.name" . }}-secret + key: LLM_API_KEY + {{- end }} + {{- if .Values.core.env.S3_ENDPOINT }} + - name: S3_ENDPOINT + valueFrom: + configMapKeyRef: + name: {{ include "aconext.core.name" . }}-config + key: S3_ENDPOINT + {{- end }} + {{- with .Values.core.livenessProbe }} + livenessProbe: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.core.readinessProbe }} + readinessProbe: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.core.resources }} + resources: + {{- toYaml . | nindent 12 }} + {{- end }} + {{- with .Values.core.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.core.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.core.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} +{{- end }} + diff --git a/charts/aconext/templates/core-service.yaml b/charts/aconext/templates/core-service.yaml new file mode 100644 index 0000000..c475188 --- /dev/null +++ b/charts/aconext/templates/core-service.yaml @@ -0,0 +1,19 @@ +{{- if .Values.core.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "aconext.core.name" . }} + labels: + {{- include "aconext.labels" . | nindent 4 }} + app.kubernetes.io/component: core +spec: + type: {{ .Values.core.service.type }} + ports: + - port: {{ .Values.core.service.port }} + targetPort: http + protocol: TCP + name: http + selector: + {{- include "aconext.core.selectorLabels" . | nindent 4 }} +{{- end }} + diff --git a/charts/aconext/templates/core-serviceaccount.yaml b/charts/aconext/templates/core-serviceaccount.yaml new file mode 100644 index 0000000..963b14d --- /dev/null +++ b/charts/aconext/templates/core-serviceaccount.yaml @@ -0,0 +1,15 @@ +{{- if and .Values.core.enabled .Values.core.serviceAccount.create }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "aconext.core.serviceAccountName" . }} + labels: + {{- include "aconext.labels" . | nindent 4 }} + app.kubernetes.io/component: core + {{- with .Values.core.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +automountServiceAccountToken: {{ .Values.core.serviceAccount.automount }} +{{- end }} + diff --git a/charts/aconext/templates/deployment.yaml b/charts/aconext/templates/deployment.yaml deleted file mode 100644 index 60e7c6c..0000000 --- a/charts/aconext/templates/deployment.yaml +++ /dev/null @@ -1,78 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ include "aconext.fullname" . }} - labels: - {{- include "aconext.labels" . | nindent 4 }} -spec: - {{- if not .Values.autoscaling.enabled }} - replicas: {{ .Values.replicaCount }} - {{- end }} - selector: - matchLabels: - {{- include "aconext.selectorLabels" . | nindent 6 }} - template: - metadata: - {{- with .Values.podAnnotations }} - annotations: - {{- toYaml . | nindent 8 }} - {{- end }} - labels: - {{- include "aconext.labels" . | nindent 8 }} - {{- with .Values.podLabels }} - {{- toYaml . | nindent 8 }} - {{- end }} - spec: - {{- with .Values.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - serviceAccountName: {{ include "aconext.serviceAccountName" . }} - {{- with .Values.podSecurityContext }} - securityContext: - {{- toYaml . | nindent 8 }} - {{- end }} - containers: - - name: {{ .Chart.Name }} - {{- with .Values.securityContext }} - securityContext: - {{- toYaml . | nindent 12 }} - {{- end }} - image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" - imagePullPolicy: {{ .Values.image.pullPolicy }} - ports: - - name: http - containerPort: {{ .Values.service.port }} - protocol: TCP - {{- with .Values.livenessProbe }} - livenessProbe: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.readinessProbe }} - readinessProbe: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.resources }} - resources: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.volumeMounts }} - volumeMounts: - {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.volumes }} - volumes: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.nodeSelector }} - nodeSelector: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.affinity }} - affinity: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.tolerations }} - tolerations: - {{- toYaml . | nindent 8 }} - {{- end }} diff --git a/charts/aconext/templates/hpa.yaml b/charts/aconext/templates/hpa.yaml deleted file mode 100644 index 94af533..0000000 --- a/charts/aconext/templates/hpa.yaml +++ /dev/null @@ -1,32 +0,0 @@ -{{- if .Values.autoscaling.enabled }} -apiVersion: autoscaling/v2 -kind: HorizontalPodAutoscaler -metadata: - name: {{ include "aconext.fullname" . }} - labels: - {{- include "aconext.labels" . | nindent 4 }} -spec: - scaleTargetRef: - apiVersion: apps/v1 - kind: Deployment - name: {{ include "aconext.fullname" . }} - minReplicas: {{ .Values.autoscaling.minReplicas }} - maxReplicas: {{ .Values.autoscaling.maxReplicas }} - metrics: - {{- if .Values.autoscaling.targetCPUUtilizationPercentage }} - - type: Resource - resource: - name: cpu - target: - type: Utilization - averageUtilization: {{ .Values.autoscaling.targetCPUUtilizationPercentage }} - {{- end }} - {{- if .Values.autoscaling.targetMemoryUtilizationPercentage }} - - type: Resource - resource: - name: memory - target: - type: Utilization - averageUtilization: {{ .Values.autoscaling.targetMemoryUtilizationPercentage }} - {{- end }} -{{- end }} diff --git a/charts/aconext/templates/httproute.yaml b/charts/aconext/templates/httproute.yaml deleted file mode 100644 index d90b269..0000000 --- a/charts/aconext/templates/httproute.yaml +++ /dev/null @@ -1,38 +0,0 @@ -{{- if .Values.httpRoute.enabled -}} -{{- $fullName := include "aconext.fullname" . -}} -{{- $svcPort := .Values.service.port -}} -apiVersion: gateway.networking.k8s.io/v1 -kind: HTTPRoute -metadata: - name: {{ $fullName }} - labels: - {{- include "aconext.labels" . | nindent 4 }} - {{- with .Values.httpRoute.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - parentRefs: - {{- with .Values.httpRoute.parentRefs }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.httpRoute.hostnames }} - hostnames: - {{- toYaml . | nindent 4 }} - {{- end }} - rules: - {{- range .Values.httpRoute.rules }} - {{- with .matches }} - - matches: - {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .filters }} - filters: - {{- toYaml . | nindent 8 }} - {{- end }} - backendRefs: - - name: {{ $fullName }} - port: {{ $svcPort }} - weight: 1 - {{- end }} -{{- end }} diff --git a/charts/aconext/templates/ingress.yaml b/charts/aconext/templates/ingress.yaml deleted file mode 100644 index d29a788..0000000 --- a/charts/aconext/templates/ingress.yaml +++ /dev/null @@ -1,43 +0,0 @@ -{{- if .Values.ingress.enabled -}} -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: {{ include "aconext.fullname" . }} - labels: - {{- include "aconext.labels" . | nindent 4 }} - {{- with .Values.ingress.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -spec: - {{- with .Values.ingress.className }} - ingressClassName: {{ . }} - {{- end }} - {{- if .Values.ingress.tls }} - tls: - {{- range .Values.ingress.tls }} - - hosts: - {{- range .hosts }} - - {{ . | quote }} - {{- end }} - secretName: {{ .secretName }} - {{- end }} - {{- end }} - rules: - {{- range .Values.ingress.hosts }} - - host: {{ .host | quote }} - http: - paths: - {{- range .paths }} - - path: {{ .path }} - {{- with .pathType }} - pathType: {{ . }} - {{- end }} - backend: - service: - name: {{ include "aconext.fullname" $ }} - port: - number: {{ $.Values.service.port }} - {{- end }} - {{- end }} -{{- end }} diff --git a/charts/aconext/templates/secret.yaml b/charts/aconext/templates/secret.yaml new file mode 100644 index 0000000..4e63cff --- /dev/null +++ b/charts/aconext/templates/secret.yaml @@ -0,0 +1,99 @@ +{{- if .Values.core.enabled }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "aconext.core.name" . }}-secret + labels: + {{- include "aconext.labels" . | nindent 4 }} + app.kubernetes.io/component: core +type: Opaque +data: + {{- if .Values.secrets.llm.apiKey }} + LLM_API_KEY: {{ .Values.secrets.llm.apiKey | b64enc }} + {{- end }} +{{- end }} + +{{- if .Values.api.enabled }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "aconext.api.name" . }}-secret + labels: + {{- include "aconext.labels" . | nindent 4 }} + app.kubernetes.io/component: api +type: Opaque +data: + {{- if .Values.secrets.api.rootBearerToken }} + ROOT_API_BEARER_TOKEN: {{ .Values.secrets.api.rootBearerToken | b64enc }} + {{- end }} +{{- end }} + +{{- if not .Values.postgresql.enabled }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "aconext.fullname" . }}-postgresql-secret + labels: + {{- include "aconext.labels" . | nindent 4 }} + app.kubernetes.io/component: postgresql +type: Opaque +data: + {{- if .Values.secrets.postgresql.password }} + password: {{ .Values.secrets.postgresql.password | b64enc }} + {{- end }} + {{- if .Values.secrets.postgresql.postgresPassword }} + postgres-password: {{ .Values.secrets.postgresql.postgresPassword | b64enc }} + {{- end }} +{{- end }} + +{{- if not .Values.redis.enabled }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "aconext.fullname" . }}-redis-secret + labels: + {{- include "aconext.labels" . | nindent 4 }} + app.kubernetes.io/component: redis +type: Opaque +data: + {{- if .Values.secrets.redis.password }} + password: {{ .Values.secrets.redis.password | b64enc }} + {{- end }} +{{- end }} + +{{- if not .Values.rabbitmq.enabled }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "aconext.fullname" . }}-rabbitmq-secret + labels: + {{- include "aconext.labels" . | nindent 4 }} + app.kubernetes.io/component: rabbitmq +type: Opaque +data: + {{- if .Values.secrets.rabbitmq.password }} + password: {{ .Values.secrets.rabbitmq.password | b64enc }} + {{- end }} + {{- if .Values.secrets.rabbitmq.erlangCookie }} + erlang-cookie: {{ .Values.secrets.rabbitmq.erlangCookie | b64enc }} + {{- end }} +{{- end }} + +{{- if or .Values.core.enabled .Values.api.enabled }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "aconext.fullname" . }}-s3-secret + labels: + {{- include "aconext.labels" . | nindent 4 }} + app.kubernetes.io/component: s3 +type: Opaque +data: + {{- if .Values.secrets.s3.accessKey }} + S3_ACCESS_KEY: {{ .Values.secrets.s3.accessKey | b64enc }} + {{- end }} + {{- if .Values.secrets.s3.secretKey }} + S3_SECRET_KEY: {{ .Values.secrets.s3.secretKey | b64enc }} + {{- end }} +{{- end }} + diff --git a/charts/aconext/templates/service.yaml b/charts/aconext/templates/service.yaml deleted file mode 100644 index 36b8938..0000000 --- a/charts/aconext/templates/service.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ include "aconext.fullname" . }} - labels: - {{- include "aconext.labels" . | nindent 4 }} -spec: - type: {{ .Values.service.type }} - ports: - - port: {{ .Values.service.port }} - targetPort: http - protocol: TCP - name: http - selector: - {{- include "aconext.selectorLabels" . | nindent 4 }} diff --git a/charts/aconext/templates/serviceaccount.yaml b/charts/aconext/templates/serviceaccount.yaml deleted file mode 100644 index 48a3ce1..0000000 --- a/charts/aconext/templates/serviceaccount.yaml +++ /dev/null @@ -1,13 +0,0 @@ -{{- if .Values.serviceAccount.create -}} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: {{ include "aconext.serviceAccountName" . }} - labels: - {{- include "aconext.labels" . | nindent 4 }} - {{- with .Values.serviceAccount.annotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} -automountServiceAccountToken: {{ .Values.serviceAccount.automount }} -{{- end }} diff --git a/charts/aconext/templates/tests/test-connection.yaml b/charts/aconext/templates/tests/test-connection.yaml deleted file mode 100644 index 60bf244..0000000 --- a/charts/aconext/templates/tests/test-connection.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: "{{ include "aconext.fullname" . }}-test-connection" - labels: - {{- include "aconext.labels" . | nindent 4 }} - annotations: - "helm.sh/hook": test -spec: - containers: - - name: wget - image: busybox - command: ['wget'] - args: ['{{ include "aconext.fullname" . }}:{{ .Values.service.port }}'] - restartPolicy: Never diff --git a/charts/aconext/values.yaml b/charts/aconext/values.yaml index 491a8dc..88a6f02 100644 --- a/charts/aconext/values.yaml +++ b/charts/aconext/values.yaml @@ -1,161 +1,234 @@ -# Default values for aconext. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - -# This will set the replicaset count more information can be found here: https://kubernetes.io/docs/concepts/workloads/controllers/replicaset/ -replicaCount: 1 - -# This sets the container image more information can be found here: https://kubernetes.io/docs/concepts/containers/images/ -image: - repository: nginx - # This sets the pull policy for images. - pullPolicy: IfNotPresent - # Overrides the image tag whose default is the chart appVersion. - tag: "" - -# This is for the secrets for pulling an image from a private repository more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ -imagePullSecrets: [] -# This is to override the chart name. +# Global settings nameOverride: "" fullnameOverride: "" -# This section builds out the service account more information can be found here: https://kubernetes.io/docs/concepts/security/service-accounts/ -serviceAccount: - # Specifies whether a service account should be created. - create: true - # Automatically mount a ServiceAccount's API credentials? - automount: true - # Annotations to add to the service account. - annotations: {} - # The name of the service account to use. - # If not set and create is true, a name is generated using the fullname template. - name: "" - -# This is for setting Kubernetes Annotations to a Pod. -# For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/ -podAnnotations: {} -# This is for setting Kubernetes Labels to a Pod. -# For more information checkout: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ -podLabels: {} - -podSecurityContext: {} - # fsGroup: 2000 - -securityContext: {} - # capabilities: - # drop: - # - ALL - # readOnlyRootFilesystem: true - # runAsNonRoot: true - # runAsUser: 1000 - -# This is for setting up a service more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/ -service: - # This sets the service type more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types - type: ClusterIP - # This sets the ports more information can be found here: https://kubernetes.io/docs/concepts/services-networking/service/#field-spec-ports - port: 80 - -# This block is for setting up the ingress for more information can be found here: https://kubernetes.io/docs/concepts/services-networking/ingress/ -ingress: - enabled: false - className: "" - annotations: {} - # kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - hosts: - - host: chart-example.local - paths: - - path: / - pathType: ImplementationSpecific - tls: [] - # - secretName: chart-example-tls - # hosts: - # - chart-example.local - -# -- Expose the service via gateway-api HTTPRoute -# Requires Gateway API resources and suitable controller installed within the cluster -# (see: https://gateway-api.sigs.k8s.io/guides/) -httpRoute: - # HTTPRoute enabled. - enabled: false - # HTTPRoute annotations. - annotations: {} - # Which Gateways this Route is attached to. - parentRefs: - - name: gateway - sectionName: http - # namespace: default - # Hostnames matching HTTP header. - hostnames: - - chart-example.local - # List of rules and filters applied. - rules: - - matches: - - path: - type: PathPrefix - value: /headers - # filters: - # - type: RequestHeaderModifier - # requestHeaderModifier: - # set: - # - name: My-Overwrite-Header - # value: this-is-the-only-value - # remove: - # - User-Agent - # - matches: - # - path: - # type: PathPrefix - # value: /echo - # headers: - # - name: version - # value: v2 - -resources: {} - # We usually recommend not to specify default resources and to leave this as a conscious - # choice for the user. This also increases chances charts run on environments with little - # resources, such as Minikube. If you do want to specify resources, uncomment the following - # lines, adjust them as necessary, and remove the curly braces after 'resources:'. - # limits: - # cpu: 100m - # memory: 128Mi - # requests: - # cpu: 100m - # memory: 128Mi - -# This is to setup the liveness and readiness probes more information can be found here: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ -livenessProbe: - httpGet: - path: / - port: http -readinessProbe: - httpGet: - path: / - port: http - -# This section is for setting up autoscaling more information can be found here: https://kubernetes.io/docs/concepts/workloads/autoscaling/ -autoscaling: - enabled: false - minReplicas: 1 - maxReplicas: 100 - targetCPUUtilizationPercentage: 80 - # targetMemoryUtilizationPercentage: 80 - -# Additional volumes on the output Deployment definition. -volumes: [] - # - name: foo - # secret: - # secretName: mysecret - # optional: false - -# Additional volumeMounts on the output Deployment definition. -volumeMounts: [] - # - name: foo - # mountPath: "/etc/foo" - # readOnly: true - -nodeSelector: {} - -tolerations: [] +# Image pull secrets +imagePullSecrets: [] -affinity: {} +# Core service configuration +core: + enabled: true + replicaCount: 1 + serviceAccount: + create: true + automount: true + annotations: {} + name: "" # If not set, will use {{ release-name }}-core + image: + repository: ghcr.io/memodb-io/acontext-core + tag: "latest" + pullPolicy: Always + + service: + type: ClusterIP + port: 8000 + + env: + # LLM Configuration + LLM_BASE_URL: "" # Optional: Custom LLM base URL + LLM_SDK: "openai" # LLM SDK: "openai" or "anthropic" + + # S3 Configuration (AWS S3) + S3_ENDPOINT: "" # AWS S3 endpoint, e.g., https://s3.amazonaws.com or https://s3.us-east-1.amazonaws.com + + resources: + limits: + cpu: 1000m + memory: 2Gi + requests: + cpu: 500m + memory: 1Gi + + livenessProbe: + httpGet: + path: /health + port: 8000 + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 3 + + readinessProbe: + httpGet: + path: /health + port: 8000 + initialDelaySeconds: 10 + periodSeconds: 5 + timeoutSeconds: 3 + failureThreshold: 3 + + # Pod annotations and labels + podAnnotations: {} + podLabels: {} + + # Security contexts + podSecurityContext: {} + securityContext: {} + + # Node selector, tolerations, affinity + nodeSelector: {} + tolerations: [] + affinity: {} + +# API service configuration +api: + enabled: true + replicaCount: 1 + serviceAccount: + create: true + automount: true + annotations: {} + name: "" # If not set, will use {{ release-name }}-api + image: + repository: ghcr.io/memodb-io/acontext-api + tag: "latest" + pullPolicy: Always + + service: + type: ClusterIP + port: 8029 + + env: + # API Configuration + API_EXPORT_PORT: "8029" + + # S3 Configuration (AWS S3) + S3_ENDPOINT: "" # AWS S3 endpoint, e.g., https://s3.amazonaws.com + S3_REGION: "us-east-2" # AWS region + S3_BUCKET: "acontext-assets" # S3 bucket name + + resources: + limits: + cpu: 1000m + memory: 2Gi + requests: + cpu: 500m + memory: 1Gi + + livenessProbe: + httpGet: + path: /health + port: 8029 + initialDelaySeconds: 30 + periodSeconds: 10 + timeoutSeconds: 5 + failureThreshold: 3 + + readinessProbe: + httpGet: + path: /health + port: 8029 + initialDelaySeconds: 10 + periodSeconds: 5 + timeoutSeconds: 3 + failureThreshold: 3 + + # Pod annotations and labels + podAnnotations: {} + podLabels: {} + + # Security contexts + podSecurityContext: {} + securityContext: {} + + # Node selector, tolerations, affinity + nodeSelector: {} + tolerations: [] + affinity: {} + +# PostgreSQL configuration (Bitnami chart) +# Set enabled: false to use external PostgreSQL +postgresql: + enabled: true + image: + repository: postgres + tag: "16.1" + pullPolicy: Always + auth: + username: "acontext" + password: "acontext" + database: "acontext" + postgresPassword: "postgres" + persistence: + enabled: false + +# Redis configuration (Bitnami chart) +# Set enabled: false to use external Redis +redis: + enabled: true + image: + repository: bitnamilegacy/redis + tag: "6.0.16" + pullPolicy: Always + auth: + enabled: true + password: "acontext" + +# RabbitMQ configuration (Bitnami chart) +# Set enabled: false to use external RabbitMQ +rabbitmq: + enabled: true + image: + repository: bitnamilegacy/rabbitmq + tag: "3.8.12" + pullPolicy: Always + auth: + username: "acontext" + password: "acontext" + persistence: + enabled: false + +# External service configuration (when not using internal services) +# When using external services, set the corresponding internal service (postgresql/redis/rabbitmq) enabled: false +# and configure the external service details below. +# Note: For production, use external-secrets operator or similar tools to inject passwords securely. +external: + postgresql: + host: "" # External PostgreSQL host (e.g., rds-instance.region.rds.amazonaws.com) + port: 5432 + username: "acontext" + database: "acontext" + + redis: + host: "" # External Redis host (e.g., redis-cluster.cache.amazonaws.com) + port: 6379 + + rabbitmq: + host: "" # External RabbitMQ host + port: 5672 + username: "acontext" + vhost: "/" # RabbitMQ virtual host + +# Secrets configuration +# For production, use external-secrets operator or similar tools to inject these values securely +# TODO: use external-secrets operator +secrets: + # PostgreSQL secrets (used when using external PostgreSQL) + # These are also used to override internal PostgreSQL passwords if needed + postgresql: + password: "" + postgresPassword: "" + + # Redis secrets (used when using external Redis) + # Also used to override internal Redis password if needed + redis: + password: "" + + # RabbitMQ secrets (used when using external RabbitMQ) + # Also used to override internal RabbitMQ credentials if needed + rabbitmq: + password: "" + erlangCookie: "" + + # Application secrets + llm: + apiKey: "" # LLM API key (OpenAI or Anthropic) + + api: + rootBearerToken: "" # Root API bearer token for admin operations + + s3: + accessKey: "" # AWS S3 access key + secretKey: "" # AWS S3 secret key + +# TODO: HTTPRoute configuration (Gateway API) From 2b0c1f6118db697972ce5a44dec2060ee11e33f4 Mon Sep 17 00:00:00 2001 From: Jinjia Date: Tue, 2 Dec 2025 21:39:44 +0200 Subject: [PATCH 3/7] feat(helm): update --- charts/aconext/.gitignore | 1 + charts/aconext/templates/configmap.yaml | 1 + charts/aconext/templates/core-deployment.yaml | 5 +++++ charts/aconext/values.yaml | 3 ++- 4 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 charts/aconext/.gitignore diff --git a/charts/aconext/.gitignore b/charts/aconext/.gitignore new file mode 100644 index 0000000..19e9e18 --- /dev/null +++ b/charts/aconext/.gitignore @@ -0,0 +1 @@ +test-values.yaml \ No newline at end of file diff --git a/charts/aconext/templates/configmap.yaml b/charts/aconext/templates/configmap.yaml index e23b8cc..dc25192 100644 --- a/charts/aconext/templates/configmap.yaml +++ b/charts/aconext/templates/configmap.yaml @@ -8,6 +8,7 @@ metadata: app.kubernetes.io/component: core data: LLM_SDK: {{ .Values.core.env.LLM_SDK | default "openai" | quote }} + LLM_SIMPLE_MODEL: {{ .Values.core.env.LLM_SIMPLE_MODEL | default "gpt-4.1" | quote }} {{- if .Values.core.env.LLM_BASE_URL }} LLM_BASE_URL: {{ .Values.core.env.LLM_BASE_URL | quote }} {{- end }} diff --git a/charts/aconext/templates/core-deployment.yaml b/charts/aconext/templates/core-deployment.yaml index 53241d0..a21a714 100644 --- a/charts/aconext/templates/core-deployment.yaml +++ b/charts/aconext/templates/core-deployment.yaml @@ -63,6 +63,11 @@ spec: configMapKeyRef: name: {{ include "aconext.core.name" . }}-config key: LLM_SDK + - name: LLM_SIMPLE_MODEL + valueFrom: + configMapKeyRef: + name: {{ include "aconext.core.name" . }}-config + key: LLM_SIMPLE_MODEL {{- if .Values.secrets.llm.apiKey }} - name: LLM_API_KEY valueFrom: diff --git a/charts/aconext/values.yaml b/charts/aconext/values.yaml index 88a6f02..76664c0 100644 --- a/charts/aconext/values.yaml +++ b/charts/aconext/values.yaml @@ -26,6 +26,7 @@ core: env: # LLM Configuration LLM_BASE_URL: "" # Optional: Custom LLM base URL + LLM_SIMPLE_MODEL: "gpt-4.1" # Default LLM model LLM_SDK: "openai" # LLM SDK: "openai" or "anthropic" # S3 Configuration (AWS S3) @@ -93,7 +94,7 @@ api: API_EXPORT_PORT: "8029" # S3 Configuration (AWS S3) - S3_ENDPOINT: "" # AWS S3 endpoint, e.g., https://s3.amazonaws.com + S3_ENDPOINT: "" # AWS S3 endpoint S3_REGION: "us-east-2" # AWS region S3_BUCKET: "acontext-assets" # S3 bucket name From 561b10105e17c7697a815a845a8bd60ed11a471d Mon Sep 17 00:00:00 2001 From: Jinjia Date: Tue, 2 Dec 2025 23:52:57 +0200 Subject: [PATCH 4/7] feat(helm): update image --- charts/aconext/charts/postgresql-18.1.13.tgz | Bin 0 -> 89171 bytes charts/aconext/charts/rabbitmq-16.0.14.tgz | Bin 0 -> 73978 bytes charts/aconext/charts/redis-24.0.0.tgz | Bin 0 -> 116512 bytes charts/aconext/templates/api-deployment.yaml | 10 +-- charts/aconext/templates/configmap.yaml | 4 +- charts/aconext/templates/core-deployment.yaml | 61 ++++++++++++++++++ charts/aconext/templates/secret.yaml | 10 +-- charts/aconext/values.yaml | 36 +++++++++-- 8 files changed, 103 insertions(+), 18 deletions(-) create mode 100644 charts/aconext/charts/postgresql-18.1.13.tgz create mode 100644 charts/aconext/charts/rabbitmq-16.0.14.tgz create mode 100644 charts/aconext/charts/redis-24.0.0.tgz diff --git a/charts/aconext/charts/postgresql-18.1.13.tgz b/charts/aconext/charts/postgresql-18.1.13.tgz new file mode 100644 index 0000000000000000000000000000000000000000..fa0ba842eca516bbe07cc9d151083418f57f9791 GIT binary patch literal 89171 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 Me>+mS9m~F- z?Ea4jO|M>k{p#Cy@5HNDuU>!q?zR12oy6;RuV24<_3hiYUwv!M6{J(wm^_%DUe~eU^ z|6Vj6N8!?!LG$_l`t952`G1sDHUFs`PXaHM%Q_I6&;K`X-@baD|HnwP=l{wJ{Jxj^ zQFx!V(0Kmey!z(rchB?x7>Vb9**m_N7NGyn{NE#`^8AmzB$e@UmqGLSfA{L^Z=dJ? zF;aQ{V>t=@p10J4V1fC6`|g|P`G1U5p8rIKsUOPVOV9te&-DLM63>5oB!jU(45L^+ zKpTkdH>lUCng4g+TJ!(*EzA72g*fw4p!i`T(n#yJ@5aAPcMX;dO=e!V6Vc)#=W3-JN_HC@n;Dq1pfUKkP2MYaY{vd zUg}*!j>}tJ6BPV_r-&a8A~BNiuTh##lD*ws*rKECvfYcuyI13DFP5#;3;&+&dPySF zmZ}X7hgKRzL2D4jt~ENpQQ2a zKmWOF{WggbAC3_Cb|w3b^!eQB8*4IppYZ{NaN?aQPW`;(N{);W%P>wH@PQ{jaog3gH~ z%Ho~`>7{?=g*}i~KFizIl^0}EBq)!x#c_)Hqd^L}L8Or}fQPb_2bG9Ea7U0a&U$GE zj1VFN6fyCkDy#{38EB{%g{kLH?MBqz}}vO!wu;4brkn$x_AqEl8Z)Bb)YHM!6-87bR7kgM- z@EiH^fYk}>^GhGjkC1rA&yV&GKOBKv`XFu0r2pT1`|iy*W%=*zt9Q@z|54I^{#&cn z5^yxPcsJ1*_&?#C{SVP9!PkMppkAVntP8y;jrjj}wdwn_f;?Jfsagz4o ztP4Rv=CdwEp%}Ue0x*>1a}Nhv%AF-7RcriF6bGaU86?bJASPK16cT15Ld_WttRKN& zz|n#5-SCuTsW@P{yp#KVUObaqZnA*uZ-PQI0OuxBqjeEe?Ri`7D0J8RGdz zO5$NFc+NE{r2F6q!kBFZ3?AvEf8=e{fBrdKFtPkAh+U zb;OIHatHp`#>T}6CZEO!`w-YD+20XkKLiFZ5C@-*6!%Vw+>};_A^IM$1# zysxn)&Y=|nw>0+uj%_8F-%oE_x_MYzun8uy58e9hV@I5gq7(|B_+fUFqsgkDwj$5K zz)dLI?sl6-+#5wWtRFhZY5*|OmiS3Gk#Hx~*kF%MqDdBbv3<%2oEmI|b<3yHi(CJv zj3eE@8o^uo$3T`Y zCqnh;tkV&l9-LuV;XyQ>z;?oOX%O|Ygv-7^KI`m=&c*SMqzD(DAGd}cEMww5p)xqg zf{fJdYJkwA0Eah*2BB9$BDOj|eEhHtO?33=P!S&>VtD9H;^<0-)G(^g6PD^==He(D zj-Y{73NSJo!!C`!8zh?Dx# zR%^%R>2R;X(m9P%AYUEm5z`7^pNi%fp?>~`vVe?xczh<=rD6Z+`UBQn-mJw?!_wT? z__yEoVH>6LCe8Cyv6zwOdv`B`=#tq?sQ3?WUj2gq_Zr#g|BAiq?@-7Vn{YBVnl>OCK~8d+dl5eVGtI7X;DCoFm0xqce?1K3mK((3Y*x1lJPMxL5 z1Himtf70t{s#@OJH0wNQ?7U}ZQ{#eOzHZwfTaC`fd#2pA4OyDH!RyY+Vr8ESb`E z2%onj?+P|1koh5H0a2uggXq8{Ak`uYJc)oZi>-uz;|;Q1(}xeb&sI_39?VdGh#Tu|`;YBc_}AGdVt;(p-k?~hxEh}s*DUPIIG|I_4+pVl#7IS1NQ%)1wmLyC zA|u`q?@OD+96(y!L77=}bNQ#c*FZ|r;?eJ?`yYhP;-|EMz>Udmj~l%c@nrrsPz`9z9rggVog=#>e#k;541ww zc);q)9Sw7jhBnaR#11WU-CvYriv9YoN|{^T+3yM}-mW^%kdq^sm(Ih)K6{kJVyzoZ znN?r=a^S&!5QTHUEwI|(&dllmm#r5zDFD`%SRm3SFzn_l3$aLZFQus!hThL&UU#$z zxEY+$uf75~_^Yq>fNKI~9M^|h9EqYbU0OWYRF{_Nf!$L=$*xngj?6}!OC<;4Hj;@_ zdITW1Ap@@&GDY@1Jn&H!k}_XdUz9im>}t+FVJG~)wDw5OHW8dkK((@UbrVTfu>NPO zH2+D<3Ii<8&yU}k=buH_ZN!h+}Y9H>P+g$^JKyR-*C0^8e1)sCM6 z>bIn{8e|9(P1W>7;Yk80y!TO&q3uiJv64!{d{O3Wn3-#0;nlwXEgC>wxO%L!0ZyL` zGkHa(vcTK#LMD750|(`VUdmXzahKa^nZdR!`C?nK_GdAOrqBhDrj#i|L5xu+2g=_= zs8yTAS*0#-%_i+?V+i6*WxtDPby39Yw%KT>$SC68>v^#S5zE3vV}94yik0gn3VfL7 zSFgU=EoR)(hm~iiFg?V3#H{53@tCyIc`Hz}V%>1Dm(O;je^ym+LRo)( zoS+a5zuDTBp*qo_UaYXK`H`aVY}GO{XOfr(UJT6?-V)p<>AB{CBKa>L>>cZx`nxbNl zWZ$q~io?O)ro2f8z!Kz4s}b#ljN>R~RuxrD8)3wDx{?w3j7RKd5wlHfM%|B!%`yLo zq9y7*ql9hxUT-qPTDgQDd~IRZVO42HKHstj=ZA(VsKQ#E(7&BWECzh)h~x1%W4lJQ zCdfOO%H9YmLHknOWV6aD*_C0*q%l|PY31cEeQ8yFQOgB}>GfJrKPfd^z}-ir`fbs1 z37CfcR?MAjVZSUo(}FpZH|@*?WoNb3nX3@`2%21tjwO~_?<dol9q~&swJh)9X~}yh!h1^1+_KZmYrINJGoWjf!!xWgPa9n-ROwBrPiMb_4%X{Y!O)|GLD^x07hm@&v@9 z<^P%hf3vczFt=`|U*Uq;9?V2@y9SW*QpMk0hDGT`zcS)Cy@^s^?uLU3NPVFpu$DfinWcDS|2U+ zq*@vuNF%vN28xPR+7rkt(J!MYN%u_N7V8gRwfU;j3pR|I;?ioQ6}<=4Jj4^g0N=}E zJWOG2kUoTosbafm_F3A|mjd~5B;qX8Iw>NBVbquZCQJ((8)u5jq2U7%Q;Rp$y%fgA zeGCoa1fy<9hRTG1^qt)|-@N_yPu(5G?38;=R9eppKmup{M^gM1Rb^A_oUc-82SUA6 zLp=5h34Xh*wcdk3Ritfugp->G>*^$MssMIkyZ3xQ*YeovajfpIaCf$ zJGBQ29txz~3Q$+U_nz2*E(~Rbddk%nhY?-AN8Bv0nL=E zMmNe(R!!h;>Ha5($YfphefvKZJEQ;Xhe<2R1_S@*`)+&VNK-v}f0xtge23NTDcFlv zS7{@Z7CpDJM?79z@9!uc!Y8laC&9uC_KU{gLZoT1Ctkne4e=3ACo?&8+z_9Q3tI6f zq&n6t8w&4UmuDY$oX+UsX^CIetum>B_8_m?h`2dmH>y9| z8{L?_>}!-`mZX;J$y&f!gD7NmfTgm0g_R&w<}dp8yLgF-20ASIAF{T7Pw=tcI#*5# zHa336o#Gd7aICwUE;31QQqyhEcM4`=NOz2oTy>qwS7dDM1K4$Bs#IK79_=Z?&c#d9 ze4+a3g!B3>^Q)0cNV_2}t|P75%1fY{4MYT5Pga{eew}>}mNeb%!6fH3?x?* zG*Q+YiB`qI4|qb!ezATHY+Va_3_FJ1An6hqbgK!}PSCl_x;Ayy(nhra-x1|~1tv>b zXr@!RU3)M?8SIt7E`W!Fpq-FRylXTF^M*(uE^o_Z3>ftkg=Hx8!8WpZffE+?LGBJ^ z!v&O>f>rA$|5`8+uvf>v=I#o*%txJXhM=^Oc(D4MyT`WT>pSy$uAuj7yydpcCA#{k zR@JuaW<1scHmo{cVx+C6K4@EE;#fgwDJ#dTtUUM-wlfBF4K=n1W5I+t=LK=ynoA)n zhpH>&^jKw~M(A5x#Oo2Oj^jr~UPA1e0H(f&0~9Gfzzof~Z^%^vP8ct6gH%4c;@(-C z2^mCGDtd~St?CjVX;nkYanOnkXwBNYTFY%3hZdq9u%oab2Y7*FMi35Rt_Ie+Aiea0m3y~hdJytD)Gh?@p`COt+j;Oc(0%-*R`Wc zvKXW~&P0bFH4s&R$Y~gQ*B4=|KBnhGkH+5kY4{ei>+-5E+xtfTl_&= zs`#iJOhDudym-54;n6udy*NHSIsslbZ7I7on69{Wc}qOL_)pFClHQb$T{@d&8<@KB zEtmP8Ic#;ja95Q014k@N6j&{eSZ(3rP)av#435@y*?08jPQ@n1C0GhXd3w960~EOY zURpf8@Q{P5yK3?FfRRnRaAKh%1@|3vuKSvHFN&gYAo@e3;JB!8tB}}JLp&6V_@QLP zB(`AL%h)Fl6*b>Pxk?>CQKQrcrENuq6xkImQlqYewizpb1W|>A09zp}v7|ba(YmIe0aL)G@h6K(&_jUH7cCwWa(rU3GQ{*Sl}AM-^_KPVwA)W3 zz7RJ6>v`nGz|b}yr4^zF&bZLil=T5bQM?tDA{crNYFm4 zpMCXrm*yE~G?esU2+vtmcIJRt{6z&oxKr@#DP5ruHtNQsyxIo&%a&`DM74EwKO$4i z2izUM(A5eq!9Lr_Bzz&NZ&c26_ZeErFads|ul)98iPVQPRFN9dWY4Sg~}9)yDGc-_JEC)@${L1 zkdKd2^QQGLUB?>Kfa|)hZ+^IdX^y<4;AKxncS42V%f!{Tg)@hXYF3@BniiRQltRp0 zW9PtY!sVr^4y2o;>SFUCWZh%F%1a2w18&lqT%)ej&FKet{ursTrQRtsO zHG6yy-DP@dux}SArFO8Q2CsTSDj>fnibY%MYpaFytA)*fSIj}aDwt@tl&UgUKphk? zGHnqh#=}*sd8`|7n87nuHSH+-hxh0hihnJxi|;CXZS>JeVUKQo3|LNB_uVhh-WKocoi%}QIxY<{IKEH|RF z40u>tn4n#)R+eIec2|pb39K4Rb5y#(l5#<-P+RMINXYFD;DC@_Q?R%z_r$5CdQ_9F zZ-sITy`GFyy6vTVp3_JR3?NUbdNBu1GA(tttCi-a3>&*td)C zyR^PxU6BH;^qy-+Z>*{_?I^%=&Hf6gZjzIt5LY~>HRd7mMa z6IOpB(}1_kDLuK+hJeDjNk}25}@j;YO`}8jsgzzL~@f+XJUFPllrkP{Q(uUh8Dt{|=$@w_# ze<~|g@=RRNNAIe(?A(^mu=edZ*e2D2#)_V~L{r1om%`S#cgp(2{j*~{@@{T5a2W{m z_z<=vjq2%Wo2PXo;N(~g0yGf9m5Gg)UPe1uioQ?+Z3}M@TU6V2!OCMV zw;_>Gos7+Br+eK_KKm2e&CnL_ZoopJhB(1z>Zko#u%Y;s-=DrwV{2_?k6M9}88~Zf z(7b7c^u1?Y!C41Wi?g-RxdE|<)^B)lSU-B!59aJR)S6LkbE9U2->I6d%=Ww>it2nP znWyt;6+pkAYm~Z02SQzA5ezF)NouKWi)-OcmD+|uf({>a?rGorsm56}#go{)8qe*n zl(^6>u8*!Uwck<)52BNTc7Skxse&yY1uck8vBeL< zrPyS%qc#>z+IW$N|JoGoZSl{4zEnP)#@NakOi8iw-Eo-i{vp||t*)Xf)ZC#XR&#S~ zL-Ww%U;^>Mo9u1qXJ`&hHEG4HY;J)os77sk`#bNh-}O=mGS3Z4!`IlNo7ux^UG}0l zMirX&ddUYhb&!vNuC=+pW16cmkg&6cIB0bY435g za$4f#mwnMWI6pqS5CSr#ijx@AcfFfilrOoq^ z>p_hpnxgRI7wC!KBL@`frohNv(1Le^hAaA=6FpY*6ZM!F<}*y7I8v2SHpC+pUGG}9 z<+f2`HX#FD{|cYQqp*$Ytpk0cb#q?7%YH%0iAPs$DDx(1P@uYcZCNF%Oh@Q&L2Ns> ziTP0xb$uZ0Ui#r~GE#rFdg>o{E$wuU?-GC4zNG2QpJ@Mk+yT+L27V_ci}JPs@4MIN zPDy2yy^+@BeJ^%#f?7~^m*;JFJl?fH{T)F?On23Qc%keEq-10xKSreRy!7>(e=h*v z)ebEXY}kd$?n_g-#u|RbIOuyzbU73t7l`+dZE-X`1;s`XR#g%2cHXwr=nyV6 zyL)1jkWzxksbxf_-vg0ak=CD_UVUT?t}QXpU5Q2ISd=OK$U0EwZOLp>Yd(?3W}!hj ziXav{wci31J{Vx-r4E>D{odM#CM@-VfuA$FD)ipNiS2ObiJ1gh+ zxa2sCG?155KTp}f;)E3}J#nshT}QudEIvelLar6pg)?HPj&IT5e-^x#?S)Z-%cW^M*-X_D#Aoi`r|+~%&3 z>YPLT?I{JFAh0$b1iuC$>C(S-Spem0&cU9{eS zJbJ_>ADfn5h=b6Iph?xR_I7b0>|(v`xPK|kKUzJ@ovJ3sYTDkQqcmO^W+_Gb5jHAp zltHL54v)-2vX@?AIn7$TXP*vo#d$U{uLr);z5R+YvF_U0p*0;TW-;axA~ZN*CHk>a zaD2t&lyuNvE%wTmjq0s>wz*gO{lQn>1YM)z5&Ko~?Zj7M^i?jple|kO9(EH?U_WIK zYRJdm+8SHnT(GQ}ccMGYbXUD=(3D%e&}!QKkME6dP3;nIH;pF1=j~3A6~$}Po_xVw zr`vy)ZdFD3kYEMowI3>qbbk1Qu&UXi_N*Vwm=rm0>nd;`h|SG>@!>zd7hjzg?5Ml> zD7u30@>1I7z$EI$5XJt`&#e@BO6Xct-Q&HCwOI}fg6{LwgJ#9k`PxihT@BI_r4e7! zgEVcwpv_S5m30(*xw(RB!|3PnwN}1{X$gOYOR-}PH2ajz_W^!^od5^yFZzzZVBt_O z)vrDa3eGE_6*k8OW@I3&bt~G))#I|&rUkYptNe|apabM5zk6$+S*N)dKQK=urq4&mrGD__(YpyYHbE=$>64uX+=nwSmHBu#O2h)$W0&Su&hrgahefwuE&%vj>BKks-85E#ybL*QX$3LwqP`fr=JlBrEx8I5%`8%y2 z{8;|R8PNZP)ziYa)}ZdoZeL#Qh9FpOmcRdHs>CKSQ8-3@jH0*0zPy~S+@LYOH3O^2 zb!F*jDu+$EjCKVpMD0NJV2U$9lQfm>pMTjX{#mSP6G8V|D3u|tfePWn|iZPdlyixq{&zG=CXlB2gn%DB~ z1HQyC9o9PEBbAN*QYxc%G;T)DZ67@6GG`6*i%QIZE?SOH-+$cu>MPPQ)=*@9iQ)|; znMn}mlDio}D-QgdPR#ZfK4+09JC!L48N9%V+fui;A%6gz@Jq>jVaIgvH&5rJqcq5d zBo}!2d>2Rw3mT=HlR}%M+@I-WBlVKc$*$MOML=sxjS7wmScV`=sSdQbt1sAevjup! zE+uqln}re*-b1_TDt8$h8^5xPP`isNpR%)5Hp5DQ$set#8-c(Bl4=aOS-6huhlvEE z;tPtI;rB`4-R5^^QI<|JpmPJ#8sMWrR~4G9=%NPmmxFfRB0g4j z)jw6cB^@a%I4Jls5!!&Q@R*J4-Ra3aI}T2jV+_9Y(M9YR-T(dH|7~pHtb2+rx^k=Z zoa0@>qAPX6T;(p)Ne)P~{*ag@df~PELbuk!%Rw(p{g(a(l^y%Up?bNtF4u=Tq~W8(+&I>+{JMeGiFQ#F}W!CZpdydw=n zy=%^6v=qm(yRD(^k}jc3_lRuHz**?UD)aqnUH5Ov^_%`~{QT)x1D=@brXX%67Z`7p z`*(G%43b2(TQ+`Ks$Q?2RdGn<0M#<4D`!GKpff&m9dC7%ae@38M3?A$-}?EEEzugMJ8_r?plM$GIXR^}@rkbA z^q(+Y3ps`r3zmCMO;QPEny&7U_8bS}J6GGeJAdBQRz0L$ubk(Yqvkm+CBf`$Zg%rO z%hPq11p%96Cf&L^R7J(BX`4JcElQn4RDL(#`+0rc1Gc9p>H+Fg`@L zww`>tv@2b^9C6@NY}wXapVQB&lxFO%#BH8TMTbXc=SK(o7e|MC#3j|wIXN^v1EzMr9!Ec{ikd91ONWnq&pDo^<2s;w6S^eW^T|J`_Mt zE8USlX$4fbco-@(nl_;e(luG#uzgXtqN07)tl{2(8kDJ$;cn1ZF2qHDcZtyak|(g_$UuAr9Nu2E%Pki_W5Vrxy!N8E$WAiA9b77 z-fLaG5uJmBJ>`)M?|S!>UlO!8p@04uN6N-(VEsE#x;u22PQF0YOD5m=D={q6@nO;y zXHk++KlA~B9#i31pio}E9z{wfrr2(1xl%*znCba8Y14aBY$@+9RFoi8s@>q)yGWj9@Wncs&!OfR`Hecd-*h`-R|x4!nZnERU09@dwZphy4sXI(EX z$A!f#V!s#^;Gw%(+e>5t$KHfucqG}l(BV66Vb@b%3!x0iRWur?#r|-JdJ*NNoLwm- z?8m`8`q<*@B{V*p*-O4HE%uTXEtOrQLig?^>w%oQIIovYXIv?fmY?cooC)?}gm;16 z=|UBuiTadREal{>=%uy|3D}DVkYW87Bgl&vWnJA%bYaF(AJi8UeS#d><^zaLCHKVgT@kFRUixDhWob7r zq<+Eu60spXhoYRs(WOk5-sPHJ_I+;{LhXL<1Nz`Gc00O|I*IaZ=+ae^Y^{50+1N1e zYupRl{NAGmdGNtJvsog>1ctkN{TEH-0ss)WllrHL<;`!G>9;{ol zyBzF?z7)HgvJ$Y7tB62R)j1Qp;vqU$VGhx?JJzJ{fs$-hH#@ zd2L8SId)e*-F?gZ&<+awi9}Ca^h!W)KYAD74J+943gjjrAh01@6>|7h8+0xmx#PiU zl#-cIm=lnx&Y7#f>drA+wnQ;Ob*{ulRCKN{FSB9Slu#5!O)7q4lCtzPO-u6570*E( z%den5ZfJJ$kY{B1P;@b@c*t|HTsP0Q?W%Yh^TMXFv$k19Z0YH{miK2exhwcRu0g1n zi919N=87Cmv5;DexgWTK&yo90S&?GL)u&2&+--zTm2__A!Cn6G5TbXSK8-M zxsUfpsO&S(&LrrOO=0Ms@J5+Mo zh``)iRZ!m{uNTy9eZ9++2TtWf&vxuB_76_bD?lp8%{x?}ImHguZ2e{(Lc!3u3O=QW z*9&(DrY)|%wWF9f#sjhyPBgJ3l|{fRvkcQ6s@(Rr147QQV|(+&a)l+2C}GE_zik0~ zHDQ-Y{FDNJX60`6E~|{JR_M?{70;l8p^`%=<9)_x3|-(6HQV0U9c%q&w_K?1V9cAR zv(bLnQ0%;Uh=eC+Xf3Si4i(ua?F9Kg?9(hb*4=csUgllggtn4TTfa18guHKxE})yu z%4s&fwBk%yOWilo=5hsX!9V(r6+oyaB+r+(A-W?k*wvpb?9ewg-huw)qaobw2}WeA zDVEnvr;))Ab+98Yj)=kOjrw;JH4LvX(67p}2l#*qv3u36{#00ZbrfVq%?I_zvgQ7N z$)fxtrh0u#0XwBnR=Qmm<1llNQj!9+uNmB|$_GXit|peG)O~;QOXsJNRa_i%KJ*Xe-5Pr*+?NG7S2h7WZya<11?*5&6!q&-(>0$_zBL3*rD?OY{8Jrv zDO=9X0dLyEZr#9J1iJy-MwX2xr)sXYp{?;xc0Y@8g&PrCLuZR+*ND(M(%BMrE`)X#oh`w+qRElY zmauanw3T#rJwQ{*@w_Wx=R#Fhdzx7c~-LTKyg?E0X$*t&Bev~_fLt*~=hcYI&p zvBdbALUzpue92!B{>jO9?puoA{IS&l##CCVH2o+$|1^c&iOrf-7qV+s*cBPNH3F{@ zcISodR$a=fSz%Y&r0WBoBX;;)8l$Ks+Do@f%^hi*@0cnu^mG*WmBSFkOT8OYuFYp%|>`(e0)j*B!cyV{cnY)kCl9nh#8DOY}U| z>71}vJA56<&g)+09<=x`@?VGlj0S_33d_{q@@ zstUVoqQVq;0jArh5cl}zfVo~f?=iplkcBfHz9z`W7cTwzAWsfoVd#3xI zcO9eg)r=lKrBBcC4vine9gKpW;`>E}c1!7#woy}e=*e*ub{@px>q8`f#~Mqw z@X5CO#L%i)AY*)Q(ygv)s^)zaLKEbEUA*%32?bkS!Q`mFV@JfD6l3=eZ|!4kM$Ki6 z5;aMv;Z9Ul0;^i`m>w(PdB={Le<66f)+Y zm>7>#7@m{kH;d0cdyGa6RS4(bjtnI&toRXJ&W-uC>pJLy1m~ck0}??XIbxZkNtY75<(S$1qWqNCxB~krIRCXjLw<& z1K&&BZ_29I9l3cH9#^%*aeRs7uKTQudr)8V5h;pQB=mJ6uqrv~peRUnwQv6Vnr)x` zYY3eycFD+#CCEx>*L14GdsG+8YwlnnAg*}56Ht6?GK7-=+`@UooBiCe%fd| zo_Etx(;aF)vx3AcgNe2{&aE2^AyRp|%Dkb#hR3&vJHPXN4V+S?$}FoM$>A zxBQVVKP`?OuZHTPT(gB8XI?Y-TzzSoaW$w}gI&*{fK=uW!~2KG_%g|nN5OU1k%8=` z(e!O%UCsHro5A0$Fno^KrBNW`28=P)e32JgSL|H&Y#L3XAR69wCa5(!05m|{^21qC z<$*V*%)-iD2jOZW=!jiEOe#$5=G1(6+7Vo;7PFO3j&v5VV++{otkpFmcJuwEt}cX* z=Uw0rWbd{Y$e*If!RI2^tYc@_-j(64HhOSF`$g?H-|{GU#dX)>t?UP$RBGb?j-!1|JATAfRiae$ zSsYzaxJUKwi_Wnwz0^7ML9|o!p}q7$JyLSjeOlNh{@8QFysb-A9fSKu7V`NM$R=VuPSgmQ*KDJK9C!7GD-M*K4-HK0j>n^)I zbAXSrgUo$DCjHB;zRyuGqB4(eyH^#wMfNOXcXTtEsg5EWGIIIcBV|C=OI2JeD!vA& zE`lA5)*DK)C#f!}YM!Q=s;KB;*@qa;qoxJ0^T_)IhE$%(=v86IMd=0Y>O;qNpJ*QT zYwV};BVc1JKxfg}u1n1o>kf(R+9ZJIk3ag|%1?Fc&ds=@7=wY`E_fv?3q0e_J{>&B z$R0kq+M`(51#U(?RoGdV7pn~$r3J7{-0pk|*eTHT9pieSw*Yp?4tB_)M0Gh+v+|FE z_+S~qUML=55ML-QfSn03iDG(nQLY)^2zYq}2E_1sZo)gO>klu>kz044%W%lfeM5jSOy zjT_h~_DL^Vc!%*MldBDx3w9VQtJCuoe0Q2LiFGzuRwM5UgB(#*Erd%20T*nFtmDO6 zppkE!e%5M<$4=NPX?VTYFsj^U1!9TWkzqQTqdBu5@aV<&IuX<~2@qeWhCmW@jN zy3>`2lxta4=TP~1*PZ%Qja}@~!kfxIT{FK;p>0lA7B`a!xaF-716v{|OkUS0Y#vhC zuDZYNvXSTt+%me}Z7b}^^VNOVovx(3?zT*f?Vqzt^ud+FKd)Z5-@HMilpzTrv3dZR zQP|%v3vk1A*Q=q)l{MF4ry3N;XAdx-M@$XRJM<0tgBM_o_IUu-V|N0T2wlqxBX|$& z=3H3Z&4!GxEI`sNaLgc1bWf}{x?(F*7C}2uB+B~AEXePD`2+DD*s&h!9Nj2Z$HjA7 zciKPd>ZOLXLbDggXZPTZk2H@0wJdu)kC_@`=Xh7aHP64Vs6%%(lIt5#g3MEI|#S(U*gNGEhg9=s5ZPE)DaRcEBB-+(6x0_1M_&bfAi@TIN@vB;G>IsFi zZQ|38>8V%nnX+oh@vf(godc`lYEw~KjVqK~?`Qj$PKR8fX13Mdg|lDT%c28;LqCZ# z60^h)S$~MG8L?jcd)1Pwtu|l>^l|^n^8*B;D*sf?AAqG8XJZj&W8mp_fuQ!#gZYpS zKq8@ZU#93qEXST78h39iKs6eyyRmokOXxYH2iSQxF4&E|Te3j*`ch(=(DPw~qBB5LJsR-Ydk6NUke0*SW>+l#&OTz|2jD$Jj z;s{<$_D3Y`q0=Z4M?rAu^*%3qgb$kTFb+Yt`jZV`fxcAdpRRg_qXx4IS2W(VO7qkS z8a^eP9Yo`?=j`WqKaPQQCgTBvTTj(MyH^Q(fbELHNiSU9pZwDK>F|fm9sZYcbY5D0 zH0o}nsz0i@mnP(89<)Z)C$_Q#&s{cycBBiR2O3+b|0yL`C z@QFbjtw_YK>a^hMLnH6%Qg+p6g*OP(w)8fttC{9KTpr`#)^#nGj!-!9{}%PzZ4*a>&3qW~Y;jrm@1Cq0t;@Hvs*O3J$~xT)kyI*RZ) zk=|;`yI%M$2A>n@t)sl_1mI%uIg#Ev%DZOpIZf!f(N|&xQ2XQQma|aKY8*LVD{c z@0!8qwEEa|r(;R`HKpvTl~c`vj)0zgM9Ow3p(hO5fG7%A4$OJa7>e+n*eqLhDZ6R~ zUy;#UEBuFkrXNuQ~L-l)cXdUGBTWN0;n zZ%R0p?v_`IkQ+jt9T9qAv?IoTFNXgl==*9%ML*dQffo-U%Z>W)8~(?3TU=nE5By*L z_J3+fIzZ}H<(F7u?_}7Qd~{FZsGs%F+zF}&gs@vxa8$$R0$d$@e*-YmM6h|)*jLf3 z`u<=bW3(E|yB+wSr8qeI1)njDOz+Ga3wDw#D&) zU;2ry&CPB2br?jKUeH#1{XO*QC4i^wE6EGnBPUlYg9*tPS)(zz3l8(izVD8NScx0mpLe!WQ7x%wF!tT>8OP-!B-yH4ZqP;yRz$rKnNQA-pvozyD4RgbalRBT%(IPG}n!d(lk} z{BNWcPTpEgp60bY%G<#4-je4#S?QzNo)C0!yB9b?Q-QZEP_sqlB#`uQd6hSeqyDol zw@vZGA5Ck0Kwzd6@kzPp8peecDqKNw(b?K(Tycy-jJDqyM! zhWlzDC89A^e-9AVNoWHfp1tNVR3|t*xNXLSvf4DZiGdn4fI?=P5a?%8tc&fwCm?%s z+3)GT`sIBynm-&%$aCW#tS30T!C>7=86*{uYC)GHI;p}!OAU+*l zp#hg#_}1@YzYyrT%({ik%iqh+u!^dVpD{6<3+aU@-*g{IH~apKTj%*+K%N^5txa-s zjbg~}01G}kM0;|{XsU^#)wk{F!npx%Be(#0uB%r7?4LYx> zs-qmtCBJ3~%)q6qu_R6|O0yvNzYc|e9WL&|^X2OG`^V4t^Kbt+Jcjf0EDz12@}Y~@ zE35hwn3q(BtkJ&)JPB`%Q|IceoB2GoY78*EV83U9^w!O^9ChZO!ss(S7(o`IXvrw@^hdIjU(re7YCyE3 zcH;s;+6<0NjBuoahmrQAIUslm=KIE-GC|_S%i}t%Ho>dsMH%c_l{$*&X7l2D1<^7@ z6(GSFHU<+b)P5!9h_Oe4&5_aU(@je%%g4Z{VKLBs5MZ$fDhz;^Xjw<^=iDfdkYn>T z`_LP)t2-zQqDs#tMzpfMcGUJlz4A@1XEz1KL(~OKlWBBedraY90vCJtk4YDH(x}@G zjAg9C37Y@-!WBf7R?>;kR1y{vJiQA)TeSpDq&f~P|1bKcn&>XSU1UwX)G!3q-jyik zgM5GqZHnqy`0hJzbX&4S23dG)X5@$60001bPQ#mvrjH943Esp zoUDDnYbH*~t%PbNCljPe(xIg9XQ!6Xc3p zA9^zvfH{Ch>`_jkXsj}ZUc^p;%eQm@OMyk)SEqS!cblcNPrNuPub2>cp63d2{ z#RiA9GfGtwwRZ)N23z->RnpOShPam@ITrcV;rD}a$%eDbzWO&){Z!mjiGZ8Gf`jRb zy(S?XkX(Mh!s7Ke-EdHRev&FGrOJ1jxY{|>p0b_X`HYnkccE~;ala^?YRAt>s#m0+ z+XccM$SjDGS2FlkN_x$OtsmWo0}LF;Yj8l(K4C2C zeH)o7_GVWxzI_mg>*t=OOEsTLUElTN4B#Lbe3P3GMoTNZC)Wg_1rQZo-A}ZQZkXNq zzb2(OQCoV+)bDubFparUJX0g9Kx?6U!GPYvl3;wxqN>Y_Dk`X`yfhyOhn`2x5I%Ts zW3K^QVy=?9Pb@w~$77&`gG@%LLQkC~qI-)2`Vwh%bW^Iv?a1`;sKE?+@je>f#{He7K9DlIQX08zW;#lx1t8lU!}td7555YLs6&9{2N2KI`~;`8MQ2!y zG8AbZ_;COsa+tG+a%}8C#Zt7x1-^w7>jHm4`C^_|&pn|Axc}A+b79leCc1|LZcxw> z5T)(R;^yM+s~~SNZ1%v>mi$=XuVJAjkAWv z*LGOG$Q|d^X6B8|IZCeL{=zTDc@0AF6H&4Z-5~`K#lm)NC-_Yx<%O26iq)$Zt4nF) z#rtwusSHjYtvg42PG+v}S;;*({hfeER`@>6t6V--!KJ1l!Y%MFj_ubr&yt2QJdkc6 zHi%z`w^7Ris&-;y>UtoN;)*&Lv)}F1?d?bZm{z*;qnQTo$&BlhWqe6h`ftp*OtV_A z-qsGhy=93Rc_37uNEsxI&)y+!&}OFm=@D=!H1R^JP~P(b9-99F*XTx1fCYy?czL#b z!};my0EAc0Z5PSFK20!g&{eY>yGvFlN}|iRCRXII@Z+6+{ANyme+d2quC4zIuKjQ@ z?n#q`xwbL517@lqHVnN|$7}dt>PTSP@{fR4oPa|1x`R3SPrr)SxitaV%g1W2hvoK- ziQlu*L*jh89*!y~O_kpO+P2xT&Yk({7(Ive{W|Nv+Y%0i0D10*5P9zZ=mGR${aWry z&gA%cIX+4{b@W(q5_lh_d5Wi?T?Ff{LIv7Yp*~Q-8zS-3iG1+Kk^Nm2Rb3JJ=<4+# z*iyJssI%C18Pw9Js&48XMpiNFEseYRs8vXk5}()V=xNodIyTtS_n>jRH5xogPFUD2 zM9&Ox%_4P3wYMsMVZix*!iC&V)mo0XONlIgnx)C&1Qmz5M$gGqXY!6SqPG@Jt%S8h zX<}WX$p74B54F;))f2rK!c;XrR}$`vWJUs*)NlM<_z^DpiO&_kV|n6D7rY<*>ft-} z6g)yyHL#+RbrZ+zP#W`A4l3kNF=Hp4`Vn!O@hp67-b^Y1k*pei{ZwB_E^`3qCJ%UT zgS)gmYIiS+=8k|ig?+P&V$fC(KSH`9S0-zPg%oqsqJ^HYykweCBNnejXis?exXzx- zatl3`swnmIdoxkT;HrRZrg~3Ar;7NL)(QYV+usoT!;xt8HwbQv)8IhoDEVG;J(y}; zszVdtyWVv21@5)l|AMlV#D751H#JeY=s)oMqY?BY)jQzn%E2_;bv z*5gU!?Hql5Ain+EW&g}m2P>Hkx)2-;*bX=W9}kPWwSW2H60SdY5m4)+d*}=KcLU}+ zWI`$Mhy)tQ99-;4!icrX3QS!NVBvm`MQQ@sK;yRSH#Zswg1G({eo}@6xz>E0*!zlQ zXnMe;Vq^P($=MCU^yYIZZM5;R@?UR`zfuL`wV#FJc=g6IQm7e}Fqt&qL__#<5N=!h za%U{OO2n2=SQSp2p&C%aXj_b28{O~qK2yc3J@S&ZFine}EUDeDRe4503HwgxMwEnM zXhERwLHsESXU)v|uCbHQ0Y1}+{Ds=l07P0@e@c% z$e2U^qcEhr?d0x7UZAx$LfpChGhvMpBvQSC1i>@5YtBa$x5JdWX9OdRna-UPifK(A zR*h+xvI3e@F}4)OfT*}vT6y4CwoBedXR{0x%$iUVXe^h`QkiUK?Om+l+U*CmHdxjS zUh^I>k4|ohPT2S@m8G+7VQ3kOPm#15KEX5w-jr@e<->$YjCtRon#LWQzxyOx2~OC| z3B&Jd_+kwJNj@L>FtT!=a|6`QGoXZBxbdFx-suv-DU32k8M$x!`hhU>k&ve(;_PYr zsrceo#$S`szDf~1HA{b>Glw6}#Gc_s?F1=0V6}q>x-zPP4rq=HqF%w@sz#SNd_!tQ zta{1jvGyps-;Zu=FcM;nZ`1VuG_ndVV-Y(9UXT7%69{&qCxPRerL)*(Q&mYE0*6Pw zf!i0#%Y4oU#O$q5ZsyVy##*+;l34#WPe)6YaGH1uRHO+b;Vm-{O;~(l-*v}k2aDFl{6;K=0r!=PZtbN_JnDMX>0@_0*(79LcptlZIZb zK}Jkb!P#IZ@+DionClSBC=$hdhV>eTBsm5rZdSB$=xqge!i?)*e_s+|{z8BU_J%G+ zm)&p|<24=8xk$J9{0&iiRknjWdm)D?Nlt`2>9rm{gsPQHSF{8d;;q$2kDUTr>Gppw z;a=;}(8zo`)^>vbD{qPMrxBZ)l>n}M36wLno+jk7Rx}*|*E-je;1dUGS?EddfrGLt@h0R1 z3!B@oVOPlJ=o}O$$=xGrM(R59x}6&f5EBVg+k9H+X(u4*C;wi{GZu`bKURKL3cfEC zIv!6RcMtf_%6TNw2d+~~CVGlv_Fg^uyp}Jde4-H}=|`(T16@FgJ5O?4J^AqCCayV; zDwAq_z-_CH7dP=6TtA`UpLC_RO=25NK!VT}sW(vw4>!@{poMtMmmbWIBm>88T%ief zzsZR3xKq*hN7zrpHX6Ez%;C?&EBm4`k_iYrth)c;>f&Jo%tw;yaxzDdY>+fC7C=J1 zaT7p=-~#9n7s(G;dod(#hKSQ2(c6#Uz!=5i=@0zZJW^4QfLr4@m3mMh?q{$+iw6$F zt|86Ee(SLfG%VZ7BE!CS}eTcsx?Y0X70kQBd3r!`7m$>o@jj2u{U3HM z&0LM(!)ZkFzfM3o1=UOM6W=ta_yE7BCd#Ssjk@8}v9#fqh%)xDkFUaXCD5PwZf|A~ zebI3u83=#a%!cX&t^7U|!cDS6KPKoURT(sd8uz_emU-v;({nYd*#3DnKqm2zDzZ_k zw{j$@Y!AWuRaj0)ikY|UknCQC3gUTE(Y24%r zb_p6_76pRVma~B&-dwPu2{dYK8w)tjhAbGN6^>*;0W9Rq9E6$7W_hIh?UfM-w*Bs^ zAm@fAG*=00B3b*0=wy<2YH#s#W^^hxH>OkH3B|!b1qW4P4bjSK4zj-uc+@*;* z0#_mB^4zzJBU$AIo*6XqgQ{Rm;sRC(`*c5u=khGxSMi(!q-_?H4$nE@Y$m9-X*v_VI*?9o)4X+BBM zN3InObP~joZ3X-uf#}aCbkmyF4(2dc_ID`$f>WT8c`7dPmo zE@@PiCd!y30lA9JiJP0D$tWr@|)<}+&Nz^-qYElxlbko>_QN8_in{<75;?e5_TO$(Xp$YBt-GH%Tt@ z9~E6W$OTsU4EE*p?{r`}ljnNEH3dVG^Vl<+sh4BA!g*d;(!63~sazND=7cFRv#P{* zN$#44`Fk(rZ0aWV)aT5t#B2aIZ$4JUCn)F$bHOL!t-%_!)mhm zKV8p4`6U%N%h}Qjzad*yk}!>AgSvb$qohnN!f5d?a(^En3481}5!G&wKHv~%H_ob9 zt(weAi?AG$fL9e767w=q8!yTJO>%OTzdU%@`wE`*jlvo9jxzdWtSgnN3Dv#dX1E=2 zrP<<;)0AwYUn*11d%OJ&5I&rt%L*c!@ah6x)@7rgCa_6OD5>rTK%Upx!{rLiB(|qU z?cGWDv^OuL@b`%ex|&Jl{BwU#Ko4M<|9{5^2mluh&~4eV^;gLD%!M~R2}=|1lt3zts~KpAs3P{LL|tWd?;oA;)=A* z59-nEallrG&w2AWb&{to4t zy4;`Xlhuv=vb1cDf3fKFdJ*vqxfx>a|WzLx5U`bObyXdQ& zThul-Cjn2WVXb0bjVO1)O+_vQmwhh#k7%47_r&?>vJ$P)E50(3_9^(q=+!9ZjOB`3 zCV44hOyc1y%3IKg3kS5j6c2hvX`X3hi?~=(0d7MZN+ksC%gpz1cJ>89iRv3Ac<}|L zQ|ry(K%eW!4Mhna83P*iTVdt>i{yYVR%An2-2^Vn##)IjvEr*7CF*-rFpC!z^xb$1 zfOD5G?ZF4e*L0fvJ!zPp(}rM0Itsh_FRzur8%J8!ge#}DOVtuV=ZF7D| z8EYz(j&Ou75*x11?|Lcq!3jp6JHxYEtudianazOU$Th5!#iDBs&Q*t~b&$J4sTa?Z<@P%O2sE|e{j3`Fk@d{49(dU#0CEdK# zNPTcbv{z9FvkEJH?h0PH6rR1Al(~~7jmO1Oe8}Tfe?`c}N|4VB+8AImNZ~v2w!)ED zZe>G)Io_vwL-eo4OLCPy)ES03nh~CGl{+C%7Y_}^>#Skzql71ovy`Bgkw>cO$-$U% zF8$low9Hx>A1@~dANNWh2REuozzfnd5LK5A(n8slqTMC+J)_~mj8<;6G&avQA&G$SKAD1qpH{jpowLKnX~@U z9R%5!FoCwi3_F-=G8hJNES5^KGpjV_6#5K+f`3K$@!aUA{@-6NKSPRbMAE1+^>&{u zPC!m*F`b#F@Rtq910K%}&OY~wfE`m{Dqd}_RR&id!WkT)TZl~tM^*}ukvxwr?$k+% zFDKjV-npw`#i6PQU8LgdSr(mbLu_p4aqZ8+{lkuC)^_%<`3b7=^M8d(Ar48PgEaka zq-2){B9^Nkgco=Kg~oyxDM}LL43B}T0ux6t$@}`44NV~JNg*VCom!X{7_iz#KE-@e zN|pE7OS9&>&*ah3&D9Jr4x(0x0fqd%zRdg>;9!d$B<1dpaXavf*c+zMf-0$VbP9ti z>kO~a?207Pp#>L!17jeVF&Sz$npbt&H7b&cQ z@)T-F{iwE~#b7uPP0w*~ZihinwT*EA3*5IkHLVPBJp2+y9*jUt{7^t!+$U~1@f}>L z4mSWj=`oUHrsqxu*Cv*{8(qU3$uiJLF@S%h!T={%1eqTE@lRbR}KcidE<_ z@7!3r;?6jwI^=}2uTpOEDHsgh{|j0p)|zy!p%uzmLRE+j`523rwfe+4PMvU< z3cS1=tbjO*oOPU~yAjkdPEm^*7d_yiw-(F#)JQ4+Z`sU zeR|XuG9Cb>+Oal?#5oS+GmRKUBUr_4>LiceBtNI9u?VfkRMCESP$1(UwFN_dGt8$c zqH$Bzt>6LJqbOrobUHWWM^;JeNU3$EseQ#SW=pmsjn8Up4Yv`d&A-lLnOX=G2!ZQJf;|tA4N_7 zta#MA9V=t#bL+_GptWXIh@;f2Ct0A1`~~G=7M7}Cu%yDO2yILx|H;s0$etV;8r2)5 zG|yRh8>CCQFHIWVU+rThS7B`s^FN7L2m3JwHl4`QPH?Q3B;*P*y^hVh>9G4Tj>%G) zBDCZQ(e7NlQy};to!Z=r3yigkO0w0J12(a#!?# zhWfVg{sIGQ3q_TFEWx=iOt7{N-|HQDhpZCk4O9=7>_EEY$VTvB4TMxQhWc)Qia!a; zO-`Cbg*U-e!8@2>J?<1;GgkC6FA&0uw1rS!X!$UoiDw&k&Ish_|C^o73^n-Wh%lUA zj?l;?GwEZ0k(Xn;^t`jAJW)mo&^V>)CW}&!6mku48W2vw`&kR z!U~aao3AGq8gC*NqK|PKUb`K+%L6Gg9?%bPX4^poyvTJM{{PhodrerM`gqJnRuZo{ z8#SLu(pNdZsCp|v=D0LFPK>4!pPQ4f-LzL8HV@j*h4BNHUkusN4Ds1em!`Xm4?_}K zGTrqHtN&3Wh$fuYGWMQsBtdfOKLssVfV`Ip!MExQ;IFG-;JhXmfQQZH3H5`-X!1u!>fd2$oT@=Sy`KRmkbefJ^3}w{kH}3 z^nfDAY2i3?d`?#HQqcxDVu9!@A>6fAMB(@1R2^;XWE!?r zJl(1nHtIwuQ!z^}%0mt>+eJfFWRrr$t8gQu3|8nHvE6W#^g|n>9i;>q!(le(-VN-6 zUN!5Oy(3)A@vHkHu{|hGl~{ZtgnamHiFF1_8uT{Xfr;<}sg9Tef3c034d+Os##N9P ztL$S7ag{rrVLWxh91lJpoXBD>AKn}97pKVfJzbHX7;2^e?D(*{SvM{9bMUj(*%^Hi zKeC~M=^E9`uqyUpt&&#TC_itK0!*nOJI`qc1JF(dG_WO9+YP$1*4lZbiL$pSqiAl6 z1Zy-Z3)G2erF^+TY1L+xgInqbrPH@pqTJ&-xDUStnSFB`F}Dv##y7LfO{*^a7qvxQp3_%`GI8VthkHRmE9 zM$YbDKGsM8b1^P@B#~PO5Wz-1Pt(fOM{~CCU0fzUbt_pxu9$~EF|CnE7KJKF)qYm3 zAWp@D&$kiP!+<%?kw*4hae|lETes(JXT`T5H}_c3iWGp@S5z}Y(TQdZV_F_RXlWK+ zuh(I4`?9q}N&ox*a_V^6!(^nrw&7WD8ds4GZDK@McX}F5vw@fWb5CCvq)WoOy@c%i zc3Hf=Pv#P{@U(PeFo}4vVpb72|1`R5;ZgnZ;<|8SVAWYci=o@hy)_I28xMM2Y30tq ziVF6>T}@%)OG9UczY%g-c?$8w(68ax@2mF_pBOqV+}k6~VdKlg=S91QWO=MTM0jK9 zHgN3@G>3>U3|;1L9FXm>aY{8az{2q6oTqlP7%ss-R$Z*%dL7+=Nm zn#aXXExf8zG67q;dfIRxu#Wik=-(Hjkee2)ew9!+P2KPCV zHD3y&zLh8tYFgPchS)D0*`RIk*e|Urgwllt%WI*5X%$1{>KLAE!03$HyPW6GkTv_8 zAf6`gb7LDu|8#pfWZ$c{$KCbf+mc4s=Q&vU=oo;F35cBb^!h&W`eGlr6=IQvtE0V0 zXFpuIwI6G7jY=u$Wb0ESetMeZ#Y}zb`DZ)7n1VOgc4L0xv}Eq*D&zr6H!qVbbC3Y1 zF+bNqzQ1zu?mM&5SjQn>Q6o{AIca9ZO#a(H(&3qvQt=a~({b|0%{S^aRLfVt-^6VB zlPkME4}ED8@&gsxl$Cq?FT4wD9~`!~bLz%PmRh*gI>1hEFspiVIY?G+N~rgH^TNX0 z$8V*8W8OBmSYA``bGE$Dr!fEXHGXkUCpqa=LjG_uCpmWvx=67F-EO#HJPp2(Uco)A zDtK15J;cFy`ab_r^wx4+Ib|P*J_q?cH7zXvx_bS+&gXTo&)%07(kpD8Rld!D-Bqye z0Njp-1iJSO{oDBvY|-YGm8o=}HtU8VnfF4)QgW994fZ5PKydxkD|&VAy1 zsR;g}?N5kPX`dQeoH6=F%T2HbWw!^v`G(0&xCCmez00MVvC5elFAtqF;Gf*H=?zu> z-5UnJD?CjiBeJT(Ux0#T-tq=*N@{YlExzTIkiOod3Vkd3 zq_y1)UDU_LpTe#)f$~T$Q6aU!ZpskcMA5eN7%)9-gFK??sYvg5+-9;>V+KhW6ufOi+H+{4NBL@Z<`!)I8{xuxu3Fs#5^X10I-nK)> zh$VqK3d@m?vDdbOIQZE>2-5!7=(3dSAqj-t_=6jr^DaM0CbIPJ#mybss&l*XfMRqn zdhOx2?gPku?yGZ3q(bB22uYWW68~Q%wLux6I&$&h2XbX7fuo4Ys0upyXmDqNE5uQg z*kM`*i34&RBm1Kf%Ua42DyL;#MEn|s3qm-CCjR>C3%C`tcj&76rMg>}-=YDsRdxg6bLtv>2CQtqnuB81My*<#-;vdx=DxQZC?fB=Ps{f%1z_lf zB{tiS)ZqFI`KobUn{5_5I{9z&Aj+VgdyPH2>AXPK%rBwUV5a9AquA$<;Hy)pg9zZr z>r*WcKfyy|Lj(R?Lm+0*Ca#8^|IUwtP#TMmQTc1{Br2S=a0fH<5Q-&zO@EsHn=e<2 zPp4XeZ+ROxtZ87+CRTacX4?*j$4<`6cFt~eU2o?dxxVj6{@&JkN%699pJu?1DRgi+ zS-=|tSdMNX)Fei~b4iya&G8Ke3Gcr^GlSJiGi*$2M?`TP!LWSVtyhHi4^*%;U`c|qi%<2Un z9RPy`HQcg!Skj1Uy?SU|i<0?T-R{t;W>MJYPm;iS+cry+KAEtF)iTBc06_BLEcI*m zYjqC{A@o{@CgI&L2GVuZQ11o5LGYOTzlUT$DH}89Nh266dfa9E) z((oFktNOMhkDHgFn_-makMUp_`~I3u&6!FzbT>F=4{9k)feK)FIsh55=^2da4Ly;&MSgsLr)m$H2mD-+SfN@e(M8n(bA~2A&v{EaFRVeqL-oQ*T(6SM~2Jm8HJO za9q~)TJ|Aws}OtQX3aSgvZ@YA+Sq?ab>jiOFfoRY!ZleT<~4oZgUb>a$vDD@t8FWz!TKrF}KA21xQeEO_Jqsn=7x6g4!N=D`EW`dpE4h zygIj|pe3*-n5h;g$b)^cE^k1i^(mlmM^Vs@!(h3}l1o@gsHhw%4uT}X+^{AKzXDOM z{tZzbnwuM&c4nY?uVs?~WWm%GoDFx~o4zK$ZAoTLkY4D7^1MEdAGb!SNAdkwcHIMO zHtY(XBiV4!quS=Nz&)NZzHh5t^GE+o-Qe$G3d!p2?_IU$KiCbRhe1O)1WAI0Ysf8} zjgX0u6gA_N4-r57-uAnzqlq+7x4Z8s&L+25p7RnwF-=!o-i&0B>})4Mt?u^O$Y7QM zk)*Lq#DS98r!PLSr{Avpn{OoYJx`n662u4?r}?~Nh?%)J7r(#C3$KEIC^^BNb5%or zCd`kmW@po%OBerAoRH}7|AsA=mCC^`%*-qMhh{t~`(H=6KQMInKaqU^_XV(-9EnPl zHmeM}Mg~*f17o4a6E07-HI zmV6tBQ#9lS*imh_VJ4$A3dTx*O^a^O#gE-$bM8vG#I*;AQ<3sTsRmCDOb-IH!*t_8 z0T}ZL&yyo64kKOBf$9<;#0>$2_`wW*CV{;J15AGyZ|nx|F(6rhgUlT7Nf_U!u(Pu4 z=M5aU@j=Up@%7?74AEhbL}c=ck(^60Ry(ODT<;OP|D*a_EX+j&xoy8|;7q;2lJrWR zv>`#}CIBaBqg=?u7;ox0f^(WCRTi?S&<)~7T+%~MjZ-6Gsj#jNt&e@v%D#5%c}J(? zW=E%@nLUF?U*>EMMxVx3lrMicOo2wNOKaw7%d(d&+m zEISY~CjbVDN?6LA9Ou)A+BfC^9A~Pa0sbHrv9erHY7|HCPr07dY2%}g0-~IpP`8oN zOZo7yC`3ZgAEnVm!P^2Ar6mB|iF=A?XfBM=9tV3h^2)@;LzmS`h`Ni9y@ z3MP2veo7mr9^@xsyz*a>*eqP_6R#a*VGdd-#jm-QVe)~e?0HGM>_p50Vk0F7)V#nb zC>N9&sFc!HygWU;Q%%lD-cGs|TM2VdM_&0~+|Ja}qru2#;1qZVe7rqb5%*Kjvr0g_ zZb6?oFn^yH4v<*(C`stRHh+kB^Z`=bk&_xKF8)rlmfTvNuS!G4eAXXo&?4h$Q<`9| zh>(!UkU*(_1S6faU(kPW2#8?Ht;S~i>CZ$FPy*fx{f?wf#?OoKNuDFT2vP{cw!e$Z zz@T7REYTIxMHsc+_M4r^gvP;eg)vG^=ezrZg=&c2D2oRyP{1JL9g(t!;_D$iCi6)S zMwo<8IX3&P!Rg>I$bfGhH{fT6#&$FVLRSUS#TOttM>nQwLJaVxJVVI`8ey>wPDtJ( z%+waFDi(=3m+2biQ#Zhu;_GcRS1g4Mi*Lgnov>iel`NTxjR9^g?s|{LS&sGM05+Qi zA5kmMsT`F+!Mh;CHi!fTq>{&pYjo<7MvdZZ zWsXxNydHA*@yb;{&M`F=GweTIV3G#qi$H2z2)J5bV^@HeLCHlVC7l~+KNwsAOmGl@ zDZnIY=#3KgV}Tbm=CDI{+DuwT26@XB39pnjb%g9$<(IW(J)*0-#xE1Ni^dk}rH!VX z8-7YKf%DHC%aAoV2#}1_8rT>UxTIuGEHw3PK!%x8#>v=g(A1FuQ6?M_atb3uQVEBl zCpwG8Eomio=L;$Grn9LDf-bdj;b3BWSjhIJS0#mlODQb^a`2PiN7PXToGsFDnU$e& zBMdDA?w=F8S=zq#Io-{Bz77|F@roe%*^bA+sGe0!kqp-1mjUZv+@eiAo0mp?dvnmD zQT}q{rTu+ZFl(!>V_2H6v0oKvgybJ&PjGDmxC;C`9l?s-6s*CdI9PJYVOqon#J3YC z?owK0(WvO>KVnwr32Sn5{0Q%z1rC0zciZF|E|d$N4u z>5*J;!jv?{BVM#Jx0sZotLf3%C-2mAJyF90O_(02PEavp$>R?q12M zuIFP+-UR-vPjh8}6YIsWC=)HP_qPB$iO4_y=$8>o?LuKV&wp#um@%4X7g1B?Q*pZF zl;qPs3|$i1y!>-;fLWT;)O}XlpuRReQ9h-9w*xnYD}N@XRsl3U2`NH|&D!y{xW0Ri% z--y>*ch=Y$`a7bm`$VFQpLQKgEUhEY0$r#k1sXkSxyCODhZm98Z3RfN>Gzd1|JmRN#iF};EJF?a+%ZO%N&uVD&K0x6`-I?OP!}*Yw@=;IYh zf2D@{P!s21$tpRL!KeP5g`FQ*CA8si4^*!7d(zd|0P%2 z&Q)Jovd{H!ri+pcw>>hFryQq@aiK9V#v+eYh~M-Qx56-yA07trD8K_ZHmEkw4`EUx z7;`{R2NH%|StYtzZ9eyBGO5S{=0c2UrwE6*_$o!FE$n6A=r$VxiVo=cxT)B9j6`5e zVQ=jvm8B#_lh7m$cDlnUXqhSzygpj!i7-|geJ*e=mJK7q#$E-sld)yzX2j5H7q03W zFkz1hn_-$J8yaRgo|U!K5QIAitSvg`%26E2)5i(Pl~E@sle4VfMT<}W?cC>yT#Yy1 z@iOpxBLsF`gpt-3VtJC7h3N30f^)Crt5RVKJC5X1d%;o=P{rT z$v&sJ#$k;MKcEqnO;GpKb)j)<)4)Z*#Al|TS%m{inQZ9YVIODfY zDEo`Us-dw}Zsg#yX|Sn6k%Rr%dAdwBlw6!ZT>$3!?1!o?gZD3hV{l;C~z!n1O$ea5wwwX+~uv`3G{-hyOVE z=tL`X*w(9`J)}5JKMVX2```?r!1$SHYSR=owX^yd*Cr`3;tf__MVd7V@<|k8D)6UK zPFuN)tdxP|$OeXtnin{sp@M>|>iEd=>`1Vg6^QHKTYVC1qi(3i0i5jQ##6hY5=4d( z<%)oEMAOfeQu__G%GWy;3j=GnNjGFn7A#``MNB1*9LY}dDOhO_lUHxB!zMstZ6MOH z>=bb)?QmvvM46;*XERK8F|)B3k>*2}3w+mEd~!60qPwo0?Qb&%?xOEI$Fi z!J*U8k8#r!>5bjE=0X~rV>Z0opM(ja&aH%b(7JNifwqfDgdfgzev^Mvca<<|(0TVr zmY)G^b1yoo_0eWe(ohgTd;E61mXz1O77T3Ya8Uy7fp(NK(4f>ObJ@+ z!|muLX5)Z7?&|}Q7bIEdCXyk@ zn{;4?KUE$D@auh++V~GBci$`!(_arVN1Aeonz?Crk_wFI{TSbP@1o@QfjNsAFVI$y z>i{DVOB=XUDPV>i0}nOWcnapjCxj#AmKF|Qi*9X`v};Xe^vE)FGBu`^G~vDO{`@)V zjnv#>U^}(j_2T6RM!`&zvza1jVpNnQrTH@f%0;CUSDzk6;3J>3a@M_x^ZUA>1?_@{ zYyD~O111rIc=h5#kJArX3XGD&e#Tqw0I~X%T!wnc_8s@n_+6W~4qJ7%*R7;(o2BNU z)gICk9cmt*OnRX8n3MyJfAx?`@UgIwc*p|T|DISRWdj`wU;jPCyNlA2u5rKt*jAgD3w7t zF(^tmHk~=Gw-N_VVO=ulUc@qFeJ{n11#Jl%;5BT|Ej0GYm>U%}J9WIMupOFQj}Kem z$f70`Mq$uy#bSl$dqho!B`CF?CRi@9*h9hxcaKF`7=4Fv_AkOoLUH=1G4e`1uF>h9 zr3E+*kq94yFgZ}8k-WcxsYxGryy+Q_y}a=)bs?5o`75~B zY@%buC$}BdvxJruFe_BflS%$`<)r11qY1T>=$@eSY}D8+TT_5UnUJD)?KX3I&Kht{ zw>DhI!D9g{){!a|0$X|AY@S)2pp9yB2|49(=y7-xA_V$AcFRB5u&Cai z!apI=kUE?9*RBu146>Dx6&8C-%0e;pT zg~nV~1(b7zEiFJL(TUTmuHwy?ach^6@w#Tf_4)ldAN3^%!{pGX(hpW#mG?8kPaX_^ z?w&XqNDvU?Y)E0R7i#{^Fj@psJGkA%#6E$P*MryZJ?Z>3imiG~6+>2b$)PMr?BHyw zgOKOT8R7lHd~UQott!RoVj1AsBw#=!Qrj2f(?OK5jitxrBQ{N1tWM8{) z+!Lg5M!gQph3p9)0-q@4VGHWW+bsC8`t@>MBK<;UlBiIc$ky&0m6Sj?>5WL{S^2L&4bwQ+dl#K3)oI70vG##434sFap2@|a z#_YI{Ic2HrPEt3s#?CHC91wq8)7`J@stBFAQJtV>LWc8@)~3;(n8{AtOcD*KhoSD@8pdsns82;Pca0hqIQ51{6` zaO@s>!!hxm2>CKC*{~*DS9Wm%mvE>AQ+d0j9#jQ@w0c2Zyk%_vxvnRHc5$tpqg zv3>E!!Q(=+dgwv`%yhnq66n5X`*Q-m(Zf`gz4;O(>SENhgBGl7<+W0Dbaa6Rh(dhw zvKl^iNo{)f)>e1;)+~UN)s~GcL;QbE7IhG7?M@S8+Rs4nWqT}$$M9mk0GcqZuv9wa z#@(#dPYQ3*apcC}yijCl=`O(Cff!y-e}U~!^KW=}dDb{JYI`<0KX0D0gm1S`zQ0dy z_Gg|0U%YlVy?Q>3P9094=surf+d4k%Z$EOj(FwjpiU$E_r4XL~GmcQ9>Uc9&V@BE=T8@kbT@~J;mni?YxWoD-{ ziE%62*3;Miw{h)udY&BjrT<>t#;tcM39iMfdtF`Ybv^UGk^G$3{VXJwcb{Rf_L;W< zVQj9|r8#R#XQi|w6xiJ{3v5r1QRJG)!AQ^L-DV(#+xa(P3S+MyUPClxljBt=BbE^= z-M%Z5R52(iA_l$Kw`$i>n;!u7Hbu3Xl-=l%UjTKe-IS>{9)siv>P#3Ad&l4LZV^z= zW_1oV97(5pn@fO}rKaG+DEiy<&ieblPBQvil|MVD^$!2Z+>6g9Bkl+(hstsp@8f&~ z;+q$aufOjQ(C5cL|6E%#s_mZ4Qeg8{%ue_{O)NB7k_5Tl)Kx@CXm@#JT{|@eXwf|SKU1xpee*fRj z$I9)8VOyAZ6{J8kP1NB}PJF%LeWDC;Kl}*)Q8LVi$X+PJ)Lh>}_;aNHT=7>|{gqnJ zBn5>x;Us6jU&~(+#RT#ZQ5Og?rj0oTc>%Pk3)B#gouFF`OgeNDqoG{K^04x0WQR__ zb`}r94NoagR??$d)J1@FPNd8J_?N+D|8IX=y*T%~{dm#?<##ythvB%@i!X+hbGHRx z#i{BBl#S$rKN_CaK7^N)HEjcwbDjWv0Tu~t48AA>8GJpN49V93zDg%Gefgcx>v(g# zp#|e*mW(%n+3us1jk$Zs>d-?ZOp?BtL8;qvjk^@MB*6j>b#;g58fq0Ap7=S}&NEB? zxk>x}Q{hv@|M#~yU%c9e!)ZZdOy&O_;Py|l^52v7_S!xFzm3m7{sZ#_1H*1Ie-N3d z*+idA^_Pm$Ko+fBq?J^NDbW_e%`5Zr+7DRQ;XJ|+;QTRAUKO z)M}VHxhjx59Z#6lb3uX%(nige(@pA*JT%Efu@x>Dqc=O*GNE5MN=*E-)dBfI4kNrv zMZ?rY2TKmj)jcZOmt+wQPC#glbOM@i*o%`iq&zd6ckt!kU+k0h3Wd3v9ZteA+RmAP zN4&+uKl&f(Cv#D~Ay@6M{@r}NwbNAh&uk9L-{Py79C75+%?K7Z!lCvd8luw--EF=K zMm1%FL@*i1-+oi!?p~b%_SwA()1BeBy61bp|6WsX4KB%24#EsjWk2@b#Yw+c*QTp? zXPm4>k@EpNRB{Tzf1+tTPC4QWs0XHj#%M}_6!g8Vx7#8aao$l5TQ%NmHh~oOPyJ%( zX-~zPlBm&)K|UH_DEhL_1=Uo;<7EY2Aw=js_WHovJB!Eg^2=yA`DnI9Y3kR0T_ zrGw|MU*YxiftnpExqWi(i-wfqH5}5wsG6n{Sf(71qhWIlXolCnp^SdrK3*9qr&VSD zqB|fEB>(IG{r^%9kH=JpRJD$9ycm&?`9eh{2-7Bdoy(N?;h3E@1LgSr z1BFvgjzMPkBvin2quh}3%M)K{$7Y>qZ3og}hZ%At;I32g4OdBZ8O|TbDJdZjR5aZx zfuD`M2Rmk1JMAbsa{k8;o9Go0ejHEd5rZ$ONF!d!t<~nkLWsI5-IRC-Vbhm0tpgnXn)^9Fogdk4Ax!}l1Ush zg3?X#_d1ij*YQ_Y|B9@Og4QrK%U}5&t7L^6xt9iADnf-dks zI>${&nuPQ#N7l^~c0LWMRK|DIw--^)k&_6%W|PTZsYV8tF&J@bsh#0yGOqrnB&VNQ zG~$XCF0NS^gG&O)p&n>VQo^Xz$Mfb0C%+$#CkfuV;4c&mB3Qq)e1G#eJL*N zyzbS%dHovx|9P;T}D@A2tbli72!i2EM!w_rBjcqAFxh^e9wML2|GmdH}p8uA; zrL4hpgmZ{F82~u{NK6*88>XyC;Y5rki(9p%TAY~(%8C(t445}PbE|g6qGEb42~J>} z9OKnn>%5cM=%o|+IX?F7VEoxDLSE0Hl2W9LnGA}!*x6Mla@`f_Ch>6QWU5X?b@n+X z(hI@?23d@!O{MBYOlO~AA|?TH`AjNL#LA|8+Y_;T(aL91bs~0Ww>=Tym*}{&m_4F8 zn`;sann-dSbZ4@ysuS6NzPV*ea?UZIg>bFj;@I!j{);Ot$6_YJ1;uB~rRqdb&J?Sc z^m}^~0U-lJME9o7r|Lwcv-u{mpost|2a@ji`s{aeZ%1`D$1D~zk+V^-xIOY+oJ7B( zk+1LV#XWCxGLF-3(4Va^EMOw%i<}62rwm7#Y0O@pMQrwTbWFC4VsTP0tOfFj9 zUe}X=7jd$SQyW?oOP3`-5sDr|vnQtkGUEKIzxvm?=dqB@-V;ySEju|#W|8s}*(`kR z%FA+d6LGgqWv*4+*{w{(O}tz(m8uijE9-2L6Jf&&vXv7qTvlROxkDC{oBR}8WA2cd z&%3cnZvL}?dAd8BKh@91@-9koo1h<5uC4;%mLi)1o&C;o@sMWXMn$o} zLzSC^knVdXiGf6BS}sT`D+GnsbG8ljqNEfu3wEIbtaW#o3A)8;|5O<=jQ{M#WoeV# za!HiAy4O7Kcn4cshK1dCDjAh24dG*eoefKjxQ0tQaUy?g<~rhg{E@C zr5jLC#jq#@DL#dy}llN<8V-xzQ~T=adrXHc)ffJcy-=*Nc_v>lla4qdhN%h2h=8^ zZK5Nx*jwhJeIs_{G!q@O+Bg&t{dwN#8TOw z8BQf&Y0S+FI?LtHRvHFPsuBOKm%0E8IpB`2jD?WAhsj$)QmUoeixU*^s2DF;98Vj+1?-s0R`dG&X5Z|7=T-BLqsqu)s!8(Sgf zG9<^Tq%J2KdD$z_)PaIygLDor7+3ZW+A9sCZm8wal+9j$;Np@rzejuwU0mwSFw&kILV~G%O&DTlffv<(x*d80=zMY7w)X z!HpKn3yOMksEjjy`Kn~)5koCUuH|@{DT_H54)T_^0toEXa_|m+Q+YOFDUR3)%r8$! zCz%A#yM89yS}_Df6eKcLJaiXD8aI7{Ry*z%MQ1mCb~&`d@t^qbQ6W}UbrQQ?AqO@A z*P|55ic?{W*ODLd$nEFahT)m3<4#9~vu421`Q(+27TaBVzf6KYW!S_kW18sHd*Iuj zj=sCI=kp0uSx9YLyT~XtlXfYtW5ueMZy^&$gEJEG(Y(oJ9-ADA&TZaG@QUIx z*~W#J9Q(@qbox1Tw{A8{4za0c&)rgUN}zFw%s2*9CBm^~lnJ!gFbUltmbWN{p%=3Q zgpTJ81qK`)=8r(r-RAKN%WCCoAg)v#39?{w)6gvOAl0sJcn}Q{jGkAR^$T)5@!&nSA-jR&}I?f zUTZ}-o)!Kjnc<5<`;<@7ikO>nwly6UtcWg&NX6R5Nfe%kT=n+E3;I}V!zT>V9D%nEA@s~?}x+F@mbyLv|*%i5)V)7TszQ} z2kq}?@i0#IGUKXu%r;#1xbJ0;`^7Sjxfe+W(4DJ-$dpNH#AONm!WAK^ax87eZBrGh z405?hI291CmRb?+XO?a`bw#QKoBzQ+MJs}NU?!s@yA`Ym)w>((8lzl6a_A|hAj`4L zu3Q%p<$%E}%duSRabZcN-_TF~+9lC+wN0aNb&Nr`^OJ zj`}>%t(t}Ju$FY2_T)RPn>aK*9`&Ux4?AugS?CfkUyPCvPK~a#;`?S?F=im$a^#zo z5PzOaFUyFLeY8kzEC!T4g%u3T+DvznaG{<4rFyyRnDLGta@i&Ss00s#FgeYbd|%;D zfCUvBVtW?n(Gi?r%{7Kn45tG>gNLa;DfCmP{80s$l)3js2_Bkg%f^x&BoP1M@j!g@ z%{ZEUy-Mxxlpzy83uC@FmvHR{KMRA%*%1>Y2cOiI!+3jm{x)DH`N?~ZWhT6EcpicB zL#4FNgCwGad}L8!b7{aT&n@V{dTY^u92TZD!TQlW9p$DkR-w~yOxyNI`)tsaP{L+h zy5+_^M}gA8M4G>y&n%rmVMTr=*qZ9cGB0tSK1_-@4%R!RByeOM7@L!kv>tUQd!$U~ zOaQ3qfTqGlMQ&mGtQ#qA$$!nmCJUzzv&PB4j8Z4n92TL%w6SLDI8&)8Oi9yJ-9J2Z zxvdx)iS3i+1nZU#o2vB!rk^*Gz>gglDP$TcLQ8)7-LtU!A)V+lb96B$zhM?Yec;J} zb-RjX;626+U;Xg0xo26@*`k*ZESnkL>*Kvh+_OEEuw17~0_+_%@3WlccTa%$Y#)c|m?);y z7g?M+hzjE3HC9_R)Q1q&u9c#l)O6t|uPeNN?;JFu-(^ou>H97K$eAq z62iu;6&poVTV6;lqi+4wo0 zA09|n1fBI`$2}&iA?HqhW~~^??!9Ak6Ldr&fKlpDPg&R`t;s9w;>B~KJ{@e-_7_~om%V5TP*(7`wLq?S2kOSip2)fsaRKPYS$d@v~R3#o~J)zp& z1cjJWl!GGU=7vOkkwxAGRB5xCAhHPA<65FbmBV)tN8h#ja5lq*;MY&$ejmOZ2B$}Y z2SL3T9Anfx=c<)f-Z(g|mV`*h5FO1QQ&a%uAnuXxn+lK3LaE|#Rcx-V0j|P#3!q*+ zl-lF!NR8k^DT#b_D6m!zM0dm@z5TvjB-v#R60l(DIZDAn%|=-}9leG&6P6q)-$=!~ zXYrzS*(ULdse19EqO)jNI?$K$*+@^@^p#NM0kwrfAq#d1%|XB_+Y!03N`5RG2;(Cc zc2UK{$~I}*|MYWk9(+2Du{1HsStHAD6aOlY;v|yr4zRc}91amJZ3^1%AV{s~Z`=c> z`jINsfrW~=h#qFm7@oqPPN75z@Knv^L?I_)iZ_H~3DX?`O~ISt#{hI_=t~NIL~*TV z6>pj`)V^*>$C8OIwtH5!QHH<*KGtf$yk>RF{Xj#zn~vXE_dCrV)i!B%+RbErwN}H> zUrq)%t5ZVu2>{C7@97u)N8FA0I+}ihBnd9DpyfCm(9hEccr9mr|5B<}BT~2%U8Kbh z9oA8{JvY48uhn3Z6AMenaoi7sVQxm@SY;?ca}LQ2Bw|pm7I=c(6n0C3b$u|4ixiBZ zqH3v)TM|TwBsYibYEHGxMPAvcJ0(3f>M zhDSVgfk+B(J@Bk+ShFF7Z_LEgJMmfJ_MUZ#>)S{`Jl1M*)l9d@vq>_~aN>diX3?U-S9sa9FNF4bdtQHpS;UhfhS+U1Hm=t~bEI1ocm zwOY`Hqb_{~d}NmVPFO3sROc+np?%fWbk;8}>xAOPAU1_s~)impR>lw18 z(sVOsxoi1_X8d`a$qp{1_YdLat6+qM6F0Jb$?v*`BKIj$1saVx)}$cr2_HtoG9Va! z7Mi9an``lDP#<_Uun&N%Dpd{}?aBA=!%K}y#3fA_0h=JFdMEjDaNW?YX$V{h^90gf zB;C%E-$8$cl;?;Vx&;PgfFjwv!#-ai-#3?F@onAY+ykrwYm=s zCvOR^=y#BOit85&R<2&W(35~lKA`}w)nDZ$d_4+&fnA_RH>&~Nm@8n>wm*5t>ubO} z;ma?RcpPFk&ZK*zzL~M_`!$xi!r}QwO$lJCh~(bp!NI%N`!8xnHal0hJsZ}Ko*){C zVm~}_pG-lQ?S>5k`*d&ItOu@9>>G?_`vVj_bws-RnR7sOdn6`08Wr&e*cA(fMr&qA zxto91Zt@%xl5DWu*N58&{`lkADa!fVZ_Q$J)y6Y5yE1!ZyPda4?z#p^1!xo6HoPWG zw`9CdmGL@rjMtIzY6VL;)1;^ub}@!MT4!1t5D_luWX5<#DkZAiJYsE}B%Ve2yTXuJ z8D{Oq2%T&#Rf!m+fFPg*HXb#bDY;WS3-zpCU(VnXej%3maO(KpAsd3}w@H%lbv~A1t?69{=M`4Pw7Plra0$~VbjN*qS+2dC zO%oZZ99s=7c+J@RIgN)1-n05|K2^iCsPOkXvNxE^`kL45HEKmD=v)Z}9UBFm#h{>b z11RWZQJ_lSzEMf&#KSQL(Z21sv9R*c+l|k|!7)hKoz-P;rM=Q#mdxfWx}NDpKzSnu zq#j{Kuk~U%2u+^6wJZFHnt-r0k|D5uL>Y)#lw(uKDs~ z%J_h`)`TgR-IYj=yd@Q9EcLUGV*sCCTA}%^D&$)o;nH%oW}3g-=Ssd$F26~|U>iPG z_q1!vN_Ec`Xqjni9FL-|E;RoDX#hHxNwEV-gVbJ3_6J1O1KoyjWRzVt`BBC{J8?QY z1_7$xAQo5*k{X^zIhf8@eFvlAKlk$V^KKM=)U`6t2UR5cYUq$j(`&{@BNK_y~}KtP4w( zM`=2t8qO7mWEoxdkq~Oy1zj(RVqL;b7bZZXi~Tm%O2^?9%ToIhAi;$+V3=93`? z?5XjlL9o+laJ$Hmvm^A@lfm;vs z*Cud)CSKg84cR902n!D5;;A_R4CkvtEwEoehk(5@{6OV(|Dnc4(T&+Og6OH%%b4r}SSHqUyyq#g!N6Knp z8Le?jb+e;h1Y{nfDk{VEya}a>rVLmh4#0op$+D-4L#+61ZwVXJ()zomot7=5uQSM}&poypS53qaK%qykPaE-w6l zK=k9}wAJS(Y3t?A*7okfb`!t^OuiXndVO=K!&xFELsgoC3%pYePLq%iA{ZI{rz4Dx zQ}yR-J+xv*$CI&x9t9K3({6z0$Iz>99(X$kb?^D+!Op>Q?cL7dcdy?Zdha&(_cwPB zceW3_*Zbbq>)jVShdZx#;jeGJ&E0={-|y_cSoXq*O^+W(lm`nJY(OH2UptUgVQO%F zzeUF5sO#aq!URo-r|1h#H&`Pe4lYST(S0?_7a*KFHyywBr%T0LFutgd?PmCowQlRtUwh0e6( z0}4Qp{HcvFcBZwP^_(Zu_SAnD3gpdwe*3NU*y3f1FD)};+60kfA0MQcmjw7X5&PbY ze>H_Jn>+gIbHm%*+uZt&c6jY^i&gU0WA8i~Y>>Si*$#?l&rs@vWBxtQ1|e}5R$cn zHE9Uj5}17*lQPQB7a`KbhS#a72hIFCPOF7pX&teHn_Wj90bfxEQT1iS9u6d_+##@X zL3r~^TFWV`ca4S9Yj%~g-t(;>FCNb+I`P6^JRb*DW6I3wX*I6lTOEev(Pj6_^fFJc z{D#x3;Cl-0t>X68QE$Cu7Qp_Euv{6v&Z`WsXa5M)r7Ti)H}@%Cq_UNM#x#l1SF0C4 zWA0ca)MfhxweI22i3gk<(h8uAdy-qSPPgl?Oa@8Yy6-+ILae;MXQo3;A=63rvAngb ztbArmXv1HpZvByox2U|D7J{^GUZV&t@_H=+VDrGVwUB2wCu}$175lkH5TMD|#F2uH;--L_0ZT&_GJWg&XV=P8}7@?PQTmm63no+A?7KyN+g97kp- zi1qh5fu*nCwui+2NvSR$q4*@phLqQxOEWxD96n%{_N#2qx%oOjSe&fz7IdBy#%|Hb z%Zknt7jIg6=Pquehkt~9lxMb!-bW@aYLzYYaLzqc*!zEz?SmYLzgv=5XFj=-G_u7B zT#kNrFL0G1=w9HeCUDKKf;Wp#gwH2d<(NmMv*7wCLBTn2MQN(?8IT!rh8&eY0xHW; z6(p#I9suj5+&=T?4YU5LveIYU0wp5R7qJJXN0hZ?0w zTKzS=r6o81v*A9TdSt2SKAfZRU_?(9?a5YqlLn{ZM$w_=%+b7#T-%&r=W5>dV-#*$ z=bgHH+D|#FrVpUiJC#X$b8knruvI)Q(+HZZju3g7rwWNyD}zMLYXx{zl4HTZupYWc zXFaVp{&zv@sam29IotSjqXp4RCg*}rTl!h1^`Qa-P z{jUq|&+&0ZAhG2X(9Cwa4mjN;9##iQwZ3t%dO-+-r6*Tk0 zO~Zx}4d_8z9dGsL$PG46y->Y+MJa|fPe;s-#TBp-mKqZeckR==X}2S zIp<_8+f-*uwhhdbIRLR}D;|t6HCO!~9e?FXvt4)FO~qd4I2;Ey3Q^>m`a&MvWvEZJ zcn!Ec2)mOc8eg)=;Y!%msJQ%y%v(Sq$*CX8Xl$$x%eAd?LA$3`@uD*_p9DOJA6e zsIMD9Uw&JzK^#3FyAkv)OU@l#Ljf~3fj%u+8|%OQ{(IfCGS1Z~EhU2mU#zi%l(ckejt1{i8ZJyQUl1OwrnlHE2MdjEilNt|=afuD7N zBTOi45;1ZTPlmunDbXd6|KmdnN=`uiI>*S%GsyuXA$E^aZx9Wm!DLvp8jl}W)KZvx zrxvVro7OGN)PGw#|DoOd+mDUMKm6zKKR*8b_lI?F$w80z30D7rGUIsG{m#sj>vJ1M z|C@Yf+5a&i#Wg~|=ri5^-(FjPvYxU3w^vtJ?(P4#@wsF6e@gC)cieDX!BI(x2vnh* zg9#_~-0TB~90rsmiZ0B(rGw4gv_YqgD)oK%^1wsl#pp};Wtv@`NIVUO#)__Q+D%bB zG^6(c?l5@~58!w)fBTq$u}_I=NST&QHG|8h{D7q(;rPIS*MpKKP1OK??Z@%xIOu+; zGmm74HJqTneP)LYzej+e_ZZ$nBO>91SVW1pZFXAab&W;NBO`epu>UC_e&HGJTNIo4&n4wZ_2<-w|HEZMuPLV!gJ5$Zn&oHi;x-yr8M$=WxqG`# zPdWT$WlqF#;l8tahLdbZP7ZeqAtTIf!^f>TCivLTEL9OKH@svP3^M_^Lca^|v$(_j z1-$VA^bMn!NibzpqA}0u{(Z$QDnM`Zi-OL7j^V(B(_dPH(v(DlTTqH-$^U4v7)$QV ztLg!>zJy@f*JYs}bw7M+ZZOrQ5` zbm=xq^-IcbS9&g&zi6KpQ=Luf+SC@Sx3l)O%7%MN1QU1)tUhMQ)wWH#uHu3tDB8tr z3{uGQz2}$OEhi!Y8;=Dvjid(WPj!Z7Xeyp1H|Z`lz)*J19LA` z59+A|ftKKcUNC~0sZr3?+<>JPmXDHhXDDaLh9M&R=11Kk{gQLI;$AXv8$u)qbJ(Cv zrS*ol#12;r>J{(uu+w>Vr;O_eFTfu5nf@@DquvP>h!74{L&h13q!rg^c4p5> zxtFaS7>!LW7PcJY)>n7e%J>Ye=u7IE9JrE$?`rdQ!FFeU*qsfCgXcl&_z?C9i|ZGGs|oNup~s$e?>5Wg1o1 zf1tdfHqR(#M+GpG=o}8*)3C=?0&Lu5K=Q4&^H0aVJ1D+DDt=G$_Sflx;NQWZe}4t= z89p=Qf4X?O?ghXM|NqsswUw;>|4HZG|NmA#cR>Cp5Dw3h_(BT$W%AZ?Dp)=?bX`H` z#Lw4#tl2{4Lvsdh;{crWzCyBiyJBd4O4fP>)wL7lYY00x1>sdv>la*_2w#vaxTf4= z9uj+6`U<09Me-=fr`E6S=PE{ytSgV~Xhk<4KG}#-473CzF5IH5!CYo?84pU9#+dXX z6e%&O@Ys;5+7kVzQmSaoLaB8!=Ozlo!Um+e=jX9tD-9?X<=@W* zqVA+`B*C#`*diDOr!Z#y{ZQqwKk&Bq_h0XCc$6>}_oG}uV4CGbXTmr8H=CTA#91D^ zUOwnE@n~^=1TehpXE&yF@4y^FEFT}7jH!;A%3nSvhmpA7!y7|lVL?BoM7KZy!!Ycr zq|)J~`t^gP%hfff#@;y>LF)E{Xpk-h>~AIssp59tbId`097+aWglp`n1jd}Dne%~D zl4icg>9@|}i{?0PjX@>B`cr3dJmy5koa3A|fz|^v`6iQJ^WqG+bW^X3w3n4huQ0_w zXI>H`uG1_}ke|GhAnMQ1DoRccRiVp;!`g&B~Kx9^xN3aj|os7PrC+nl3O?~v&O2^T7 zLgy&oFqp?wx;FX{_Srd@jF!ESM9!YR;-G;*-Xd9O*bSGx<0Sq7DE}Njw~I;iV*^0-XN)Va7umP4L$w35(HY1>@JbhLr-hWJ?3G1l~5C2-gc(a}uMX+kFpqWA4ZI~0HiyqtL zjnqBmu)$*{%afn-glT07QIy+AEH-I!A3>$lafEE1f@q~4tad|H%cx|B zE$fO<$bPeo8J+FfHxhNWj0V9c1sf|u)I=XuP$?d1mEsC&*PM!^RkTf!huDNgRa|X< z^`u>($+-jP)i$BUaz1*iJHwU{@{rk*hJlRWLLJVrdt@M*&hJ&%v(M|#eM+lo=(6qD z7|Z|ififBDYQx7N%rA-)_aLzFq$$(-jS#ml*eE{&vQnQzBD05>#pd%b{r3$-nQ{Mf z5{<4M{xQq{>q$G8|Eb+sy}$ptmCqfx|6w!UHeCmM-|XxiXgRdV7Dg1Q?~eUxHY~TP z!$j~AnR@aj9(t6qUx3J0$CJ1&Z)SCI?aq}|p7Z9)ZvhiD$s)0uZ?$y9AXYLTdRUIH z6cZf6X)+i>+qzdL$DFkP>F3})_;ea$^)b5P8Cm&}X(D3UG{1^YI}@#HTnDQ#T12%$ z4*?8gu2bLu2nZ1TM}bsiCZhaHIFD?9jU3vQ(cw_)@4CQwAZne(JraAcLaDxy=sHpF zCs=fcjA0q@9bu-}M)Hv0gn44VvLzb4A;3G$O!8fNW-@p$X(NLC@=X!-aY!+DQicPO zEY#dE2FeiABSOocL8Oe0>}ieos4h?!%~{10JH{u$tz}ZQ7l2Ga4jS}ygosrKZfa7V zV?((=f0CoR+Rl0vjL6yR;NYdY9mcuSW^b)l*om&N+*ouNCip{9tn|fA`7BN%RqkLC;f3l65sld%E$- zNj;+iVz0`7@Efd8X;BtFGnx`@RTlRR%XS_ieo3Kdo{q^ z&>bc>U!uq?dFT4gy><<%|CSDoE7H9>ajrx8C8t*Lj55}BQDw28&RY8!o=5dOo6Yvt z4?b4ts-UCkZ@~7O$x}bKV0!<#mCp?Qk5%-W_5W+PSD$3{zqPgd_@7((+yVVBn;D3Y zOEE!FJaY{l{`7D$dX;6QE6aqO}AXhAR3BbAN2beoR@O?88op4qmjz;TXa$g zwbOr0IRx!JQ7?C{C{v`MYaF;Pil#U9ka35%oFGbk2{d5Ft6*tqroV%^nN=M+9XW0U zEZuP?1~_j~*4VHhv$5^=gX?4^ez7lO$)VnDXHr(gtJU4;< z>+!EeFTo$13u>)PaP_O8{nh$< z_eprtK0fKLtsJkOJY9X#eY)CdKRtfhZnp$L|1^H^a;?*Rxwhtnw^|7*kN$Is@>Bk` zvGm@TZ~wHvHtG3h^M41;U*9)>{Hr`OKQtaU@QuG#YWMKS!j*diWKzuXluH_F8NKJz z|JC)Y{;S|;6wLLX(a`>LkLEjF_Ak(#ri%8T+cxRwEMhX2RP)77V0 z```Ndeg4l|`P>2fpYn^~41^w@jmUwZU(hNjgby8{P1+Cg(S$?PE)cf4x1)~YbZRJ- zB4`=KN*-fp=9H)Mmpt2x@f=mp57wq~15obrb9!d@he5_np6fe;l;j}dFxy8X#NG60RH3FQC zS~}%0WA%ou9U-NmfX*{9=>rLQaxmulvme@*a_CB}I*hQ!x&1=JJUi*f!FYWw`&{?%zOE9DLullYjy9GCNFx08CtJ-d|B|4q-ND~=L#N~@anuW`tT># zlg9>G1tV)SMNzs|BY5PES%Wa4`(4YHWz5P>wR<(ZZ8kOt%<9_3>sVMJ-C0TO$XUZF zuc%e@3dd9H$1;YqbcOBB;<<0Ab#s<2w_Jr?%BqN+?UTy4;MM;M((+H3?dz8bM!!rs zwDNL~EC*GN!9;e0!DLMS(vlx7opjHuHiy6heGX7F~7kWL)9HXMmFl{io9I9O8Je(M1C1`A*5{YX#Q-Bgv`#qw9$d@|Y zlT;)n?I&UI!77`XE-Q@yzJ=qiU;8e;2;uc*?kF0dye4oVNEb;oW;e(T8@7u5BsFfy zQA_|S1}KH&pcjk-L7l8jxvXD=;YBc5k9N1WG>W<(u3*u2wtvy4|3qd@%vV>)L3vA0 zW33G};TVIuUlLHPa zs5i@syl!!IA-=RDFey$~#Gyb0l;cYSI-i}hCLltc8r1k{H7StBo(O+8o^N^a>WY&J zG~zJD%B6=v6u7QEstUwznD0XFo!XCa41_$@S%=dYK(rJ&LXn7QXl?38gJ`TOq(rH= zB&d3^dw^}p5(<)8gB(89wJCL?a|~FxkBotn@J?m>5O{%hI?l17OE~BmsAA*fp{5np zrnEsNyxWx-9}ctboU`cF^57)QDECde?%ZcOzzthpYX0+w|HNy__r3S;n?E-G+WaS~ zHz4;V?qS?;z_W7`F?7yIg~QK1?F?-@o$;XaQ1EoEVJ2m>={p>DFTY3vFE^_)iJR$J z)ULD`97gUpOgl;UCqgX!@mADhMUvUZl^v?4z+~@0YtSj%aB8as>_v?pcc?;O^82P( z`ZmB9J-zNuD(-dBTWS;2l-S8StvYj@JyjyvCs4#Wl=NOp`7v=7IW%{L9@FBZn|_<`n8m$E8Rt|Z`N=v|6I;bS?k zNV1}O8Cd(j53@?B_uNpzf`Su)^!ywc?Hki?p{qE|j? z|Jhp#KXx${bvQZ;2bk=+nU3QGT|IGnANxUa8n#yWzg`;s8m0{m(nEzGb@x>B1a_H^ z`0du!@J3!7O<I zmoHof({Mmc23Lf-(_Se@&K1D!JXtMYI~Q)E|Egr|w;cj$uU(I<{U;8Aw4YWb>yOuf zdg?G$=-TaWy|Y%8u2()M*z0b0ot2fZs*$$Q-sCb#Ge;kpx>4^yUHzDSn6Ft>q?$?U z$~}73`v7A+!W=x&kW%~6@fu%*Jslziyq`1Y;1Ek((P0_p3vZ?xf=0v6(sSLrlo|3L zR|vUL|KFANdfxuO{^Z{Ne=DCmApg1Uzf5sr;hJLNQk3afwUk5cfmFCD@)mU4p!JIk z2xvB7)fd^xrT#k2!8g-Y)7y4_XyvN5vyUu7qb~O?7ho0ROux%5HF@Z=pev?Cx_(D? z=!mZr7p*Q$lu0BWhQedm5j0XVZ_Mtosyfcn&seX8T@5ty8zMhMx! zrf8%w=BJzYW_BqwXKS2o!O>U!cKQUr06|XI&vG_)wn^sSo6`!W{D87lZw^w5+{-y$ z8`n2}Uq@WqFc+8HF0j&;HnjmY7*NwMw(4cM4ji)EH-p7B*0)Nj~ZiBI) z_*GaCOa){hoY+Y53wm|-_NKMeG>RQykR**}Z`*=h(?N z*b;k)usjnvcFJ21HPGdux-&PM>SFd@( z1=HB8(XI<^m%CH9Tkan8>XIF__tx5ZjX$@ms!;=6R zm~+`?e?NIPPPzNvErK zXCbBGhdBnlo|j$@j^lo+raYr-a|u}>0%g{N?_!B*QxUW@h~!cY*O$c}b%mTxj>WHL zR`o*onk`?5ub}q%dbk^2lui4E92BM|+KDREOys@HB^0>Gn7TO|LVu*`LaXfQCAfx{ zp0BTkAhXOKmkLUg&#Au7 zhZ*ByB=JOip6oqTz!k1Ow%I{q0egrqD{TsM;l%;oUNv^rP_Q`PJgC_ps~axw|pV+s)PjON3q+7e6>4+_JI zQco)P$;Nu*PV|w*5R_|%2Akp?iTP-D6xi&|1`aLkXF;lRD_iJQz%c*8*M;-&Q?>An zqp*iYs1=l<_?*+Y&M|B=<2;ClCg{v;yyrBA6+TjVa|#~V{Vo_645Qr}0y8r+ z7Gs{PWqOaG!PH^K$el81!y2nDwVBhY2y?5~CMMb~e<*5N^SymKL_irf=Sl{fGUH9+ zwQ}a<5iYAM2c(o2;af672S0e^oU#m%85rkgz?&&V=Y=;dUOv>2Vfw+k5ubHRYo+F}elDW5qMIu*}b~44oiB!8W7Nt))X!?dD>F z@Qc`-?$gH6c+~fnN_sK5d>T&1vI1Ceil$q8%}V+%S+c8uW36FECC;Q$liDAis}5_% z@yzBH1!}L|^-N09iPc$h-m{oiwkmt^K2&O|A`exNoyerFfUaBc7i`_E>YoLN$}3-~ zwtRkO*%WVP?Q+G*x#)W_Fqzb9iz+l<4o@M+%bGnh%kPVtm!l-0Pd!0#v0lQ1b+bP@ z3%m{%4#hurCxbAFy6}UyG#QQZtv*Qs_n+!sF5a4-MY*G^{1w+X{ADyI(|G;; z`*#+KD9`ODE=!qsPpWrsXOyjLe3%wiaxm!rY;tnacXyh#hfC&*7y|5-!DOx1%)Gyp zdDzk+vvL431PkJ462BbT}>DE@=9xB`;E{wY<`{%ym~U zqLfm7fDQ=%&u@@ms^lFpi&U_(u?R4)ZB52`D?ygRo(GrA=f6-}mp!SHUOu;tYfjtF zOfg-pzBYI3!bWxL$D5TJGeN@kXiFvXqEo7uK`s>*o&9Rvx4pHhFFF0V4IGXq9HfLD zSp}VPJi&c5EAMuSq)v9m06iejqj-|$mB7F@Hl$THJGY#**+1Lvos+s}5x1IchK?6Y z!+E9099`GX<}?3imj4gCPTgq!zs}0)dd~l6?a96W&ux6}fd7x<|7~a3JrKXjC4qQfe_yxro|l!FDtwtWgJRHT1)Y8F z-SNl&%;5hfU&>9!|Ey*6zrvBwx#$14@wo&1U)Vq1VClOMzKPQJPTKDdnCDqAN?GMe zyKqdXv_$ep${|4L-&Zc*7GwdkjdaC_Mow4tM3}p&?&~xqtV=r@P0weUA26?=<=l(T zmA)di8&#c7^C0FdN9Kgl>rwyhH<;8o{-0?)louOr6(?Q}=ZGLvZx@!eu6+R?V$?3^ z!{^}vwFj`Z@>4ga9n6^|X`L94&RcaEt>LBsZ9tO0W-GQ5BM>q`fl1l&aLT+V@3_YB zygv4dpbXd^2&#=-y_ZmPa5AREt+-|?>z6NmU}dDRM8DoLJAxl@a;&`+K6M{ezvsst@yXnO9Y zCUK(rQR;OFuAQcNL-$-YEi{Sfy{JgdqydAkOq(=dUYgP^Yz@kEbnmgsvUJAvLZz+X>eYGejFt6aum7D5? zq`l|)uer8Zu47||!`X;WmbHR@-M!T*zObUhZv6WAXMFH5<3*AY1k6ae5Du#!dySQ8 zY{UtZ@O~!b97@PK6S*M-sgHt#`4$2%29=uc_oQkmT}yU17b{wo$eUA5gJhfMU4 zKik8iC=RHILblGr?uT?T09r6AjVw=HsXLUe#e2*?NRQ2};L=t+Jc&+U1*2sZ7lq+u z6RNN0jbf+#$ujIF#FNU)rE*kzOKBK-4?171K3#9jmMFRc@S#Af@yZa_L2gEv2EmAK z@aJV}`R+Br#LSWuSWBvkn=mN#hW{KG%N}wOQjr?=`K}cSQ4?ZJrb8XqgHiNW<W}f+vPiUP}d>uK#s9@JH7E4+`MD{&yRn zyQ2TSV?y(S<9LE`Z1_Ei`+Z{F!Ra(6t!Y%+9|osW3Zi1+(rG-ous1uBmnst&OSlR= zh9Q%16sOTRPA(f##Wq_Z^%FZ}egnJ~w2S2Z``%w4eq!#rQE$*$@osZ}cW3w84R7Df z9$*}U$_GNz66#=P9C%>^f5A4t|K3>kM8+I)Wd^PbL0&WHz1qKo;c=R1nxg2I;5?3c zd2EyT8CWUNP>qYA3r?Is;n~`j2#}p&DKP(7Xomu|Cuu7jw$2BD&agQShQCf)pwRTO z^ceKlg#QHn__Re&nnh1k)e30RZ9@O}dfFUMVA@g8Pn#6+L?tSk0(lc5Z_3KRvnC0` zWXYUvw0CJwGHUlcsSHi}&zOSWqSFXt?W@q@AnsAn%#JErK35HMB+}{p$gU!`Ekj} zk*z&^93g3p@0B__aGJS5vVw^F7bNM=AJWSq&^ODn|qsPn|oWl z%`HfM??3@ar6KBJ5TZ? z3_v->N;ueV5TyjV#oN$S6=BQ>77;x#_)@$;@!<_yRm)Jw?_6wLl^HMLJhQkEQZgWN ztW+1R07)K9WYGP-old#h5vh_;+GbHHt!Qbo5xBDGfO%X!?N48lFUrAkwNvtFR3A8MPyP|}_dd|r@(x}vVoD3mhBd?niRS|U!_ zOSK3VGl!b0#+v&v2V>^B`D?bcVKC;}s$6!PF-c8j+=em_1o=6}FU(mjj>}9j+R4*? zU-&afb7(@eTyr(pp7cQhu#E8pC9Ne4t;Gy27OASWqD|RgAut`5T|=fBxYX)zJkx7t zBTzV{wuad;RPv_nkWWAOB}-69C+ej_LJ`#Lr~=8{6eF)CK=2uF8%jh&N7Pmf_<7b| z_Ifc5qZl3FT+ds>VV5d1fJoO482Xhg)T*)5R=`#;5>;BGUug?i;)~64{6=o%8QY?0 zUEJ8(Vzk%@2Ha%&V*(zA7(fnZJclv?ZKBmn)!^VN%3d2e4X(|Ya|BUplOeaf)E=@9 zzLYcUX(8QMaB)TEhS$!crS;gM5$|gNOAGkFmc6DSSa%Hi?` zCRt&MMcg2tsH(Cgt%c`9;@`--?Q=rU-sZ|mI`h3ZBte=N_9V5p(59_!qnX-h)V}wP z^S4toBGrmK<#H*KUV?5nPI|IEE@5!*B2GT^K?A4llNL&-dNImnR9ClmtNKyFZ;(VV z{dg)y?@2-sOC`~!Mueq@x9;7$@9t;1{nv^LZ~X*ZA_bW!|qke>b$R<+|`~Q$!O2COf0`SdD62ob+jD~8(F)y31Q)Lr(^-3p* zQ6*d`%EIOA9B*4{B%PTyNX@$dHJk{(I&(K91yPw|I1_9~Rr3vq)~T3Hhhh5c9lwFq z%;u!D^*~N=qeKA~led;RMeiY>^q9!&4_l`pb zL}dhFU;@U?z1N`W6iU>tY|siC!bR? zn&bQ*pl!5wJpWbjjPw8L)Ag0?`QKT&_y4_>&s{nHB}-4}y+SH`@!V6%f^_sh*T+D< zN2!0NGX8>WMv8iMcV&*jlCs3`sN#gY)v_G8*`-y|QPMQkM3q7ZKXGycCj*G~a!s28 z=R8bNjj;fhSPiAt{a!{UC~#U+?@M>VWPFwrb9|>uIV5NIr4MN5{UGU{MR?-Awx)m;GX;!zo&`1-P*m7l`0i!Xn<)0OU>duCMvb9W2 zs~9ILcC%p9gqp-0>wZPEL|HG_G)ky$@3=|AW~cM)F-NGoL4(8%ZZ~HN*V$+Gi8Rl~ zDtT|g#wOgqbF8cpv%knyHQ>)!QJYH^t(g7$Ow-al_Mdoo8sC8ZXZ6Wy?*0enF>ECZ)zg0httqpaB)A&Xu-wX@6HOcp8m*)E7uUfL37k@wZ@jml2 zkNig&$*&LyI!pdrThGRSuB<=3m;Y|%^T(I}h-z;~`nx>%UoRKJ@Mgk%6|P5}e%W## zO`-B?UsdKS?Blu;A9Z@i<-N*+g+rgWCRW_c_PVw-!Tah9H>KGqxgGiaMpm=B*si(Z zwM}SW^k)wFZxpBF(>m^55#ymHYY+xAM8$@?S6PM!is1w+V5Vqmvky zM^I&xrZF~)Xr(pq8(-CYaPrc@zs>lhsh&;aaV2%5e2=p0A>_xQhL%gJMni#Gxp!qm zx>Ei&eFiR@%N#C(Cj0y;ZDoyPUHtQHJci26eoNBS*+O8|=&T#o0rDuUrUO)8l5+X{ zAtUN-S?0Dm2sAs$41b1F3C5He$*idbOR;ROibzM zni_?@Sa(~kP(rAJI8`n=b1nf2cey@pR7kbB+X5uj$}_qV?qQm~(H^0*IS9F4=C|e) zy7lZmX1=P~nNz_HNuJiSJpDrM6e=F^1~`fB%z8CeV)yVxQ*q&Z7RTLeM9<0Tvc1me zYQg-@9&L1WmRIOC{RNXt>6~VeObJPhGTYpyhiUEp*m`}{&m8(cHNAoRpOq(1+qwIn zmGyi5|2951s{h~M1&}arrpakMm0Mg-h%fHrnkO80dM8Eq5l7=tUV3$)@$4&Onj~B5 z=0?vd8gmiHR2KMDLtnnk{Eoe5(^1cf&$Ts+6K)~=)Z?R6VU!EIQ*P5BiGB?vfzCPS z>h`{V=5^K@l~+Rd1AF&erTe}H{TKFUDGd*;2AdP0ASVV46K3Y>CYK}MZ+P{rJwH1D z?}DoaGi9MIiDfb*P%^x|V=H9#{M>wBedaj-?I@hNq<|Uc|Ju`>|HoSUzW(#=eC~?< z|E-GuW-j1i8!|qiAw3)K&4G;6o^~JBgaDLd`Q>b2oUZagKh?{ky;VS*QWBc&wnXKX zjMiD~XdOLTmEgCsm^V(XT8NvXDde-MW|jdY0COU%Sr%V>U>;VI7bJb0f?8!PQ~A?m z23RMPxoR`mdTDf={Qd~POl6JW4>M)45kmplcF zoQ-fa=ZR!()fo~TliY0T;hHKLA~H1W>xC|j8ryM6YYO6O9~ zrYM-XC7rrrw#aIIz27vqyJ<4|K(2TA>P$~H)w!R~bqaIUDHVz)HQ~gcXH&X+$C63U z%PjO&Dl?fKR~AUma<7^gmUEV>&GovIS+j05l!gkpw|>c+_Rn)heY;vAZU;HaoF*`x ztx1CUg!Rot-EAW28x-eo%IM`rnyW0L^?nu%qiA@CMyKs^6DIAA_rv!?71aLc^!>0v z9Vsd2=(`ytvN=fA(A+)Ma?7zbo!1j{tv+ftQ7l58=-ESTE?fYi0NnXhTR@YBS$*p_ zg}@vpDk~pF^1sDy79wNLkpJ7OmjBNxw(G1vY2W96x|PoZZ$9DwfmcQRuRVC+slqr+ zRQSsd)uPd2%kibRwbR;q0dybtQ!d?*#N9AW(WeL6|Bv)TG*TJ;iLT+-n*H~N$Gta+ zfbWb_{RMq^{~L{e_x0iSfj|B@Uf>wh_do3Zm5!_b!yixY?f? z@!7Js(q4J8?8U?WB`5{`Xb@5A@yW3ili~U+a!ygMwBS65`e^qi3-w77hCUs|Shb~_ zL~!E5ajI(29AJHz(31)+@E{4hVRRl+ag%5`p|M6(ZW-B-E+;b?q1c#m&#$m*1Et3X zu~KEo7A}W1ujp0v`)M>jn;cUqEW-$OM(ij};e>5{wYswYv{rlk*xO^V;F$D*2&I*a zv#1|hDaV0x9)~FRa-|4>`0-<1lT4>$je^r*oQ|XJtGE~H%Z1;$P6~H~bq}Z>knRY} zPv{rD0lrDhAGq;xXjc#dR>2+OOf6Bx^chQ;`Z0V*ug49PH>K4^p@KRd_0QFX$gpQ6 z2~|>8@zm7FjxzSi8=|u!U~i4Z<{&vu7dk9Sa9fE`s5hoo$aN zrw*t#r1;|%p&UovKaj(CufOpQzuWfqUcdMny2A3|XSLc6P)*Xq`;b`Q*9+mR4TEz;O8SOhB5dqskDOH*C=C5>t2?^}8upsOzDb^e-u>kG@pc z^U)^j)n9___dMt$)R&nsl7OV?vzq}aVljff7}oOA+)gePKM%07!S+W| zX#1?9HW&M;sgs8ns( zq+%inj)j&n;4#m(&qcAZ-d8Z>ARSy=c39y~Ltxs&C>{6=J5rcFof6pER4n2mG!-7x z$tj$1V*Ee=Qy8L4CZ_sUe}Z$}*{j2rqyFlp*DZ6$0l+w3!Jj;Yw-#pmr&4JWd3Xrz60 zbq|{b>yl8RJ2BYVX1W2^*^&A_bcclUN*Dk!!U0A-Em;MB;F-fZnTfM4M=?;JP z5D7QCchoMy5^!o^OS4y6hsD&>(PD(iRzTJbNEm^~=TYF1^o=r0whzUbv4ObFpjZ(P zGnH{(>>hYz4Wo*!5_3bPak|X+HdKa5Q+M8#T(Dj!J4U16;#ZY${Peu*Tae3eFJh|f z2B4l$WwD^g`b|6vxoA$x5(7SIq0k&!kCtJT6JX{Cu8=WhRZCYWt*}JKsNIxp_2-ljUFboQTfatG z8)xkrv)3%QGTu@as~HKxrPD^igk<-mpJ__X3>oHUq}Wv1luAX;IrsQf%-#GBSCqA= zjb6*}P@5%YW#^jQP!Ra~yaSP5=71t3AZvg7#m>P`dz%Lb?_Te}c=m9~)*RJ^-&M3S z2S@CHWnYN0<`#QDgM^7!l+WtF`FKa?yGQ8nSSt_oxNv>VYxZ2iz!}2XHNy29vQ8(2GGEx#&{v!#X+eh;VBT3-`uy!>h@MO44=mAc9R5YJG+6@7; zN8Z#Gg!bX^JhwpZ-`EAC1DcZ&s|fM*K;gWpOdFsfr~NP-q0I^9h0B~0I_{?qNdZdG zn$M^{e0ku3`hwPZ)TmQ+y#%OrvDY144S6l3i`F=9G5&lU%)#hJYdjd)Pj6yW4zws4 z6do>g%&pC`S;`Z41HjO4(lEos)bftej);Cxr3)h_moaDt&B&$I_ciyPwM4fzx_7yL zp3}dZO^_deqr;Z3%10S0(FfjJC;%w0W;0UOp%ouUnt6zkOe{vR^>SxpesR@`Uz;Ma z@<~$80cfiO06%TMIsEQfJ+t-eX7B5z^O|Rs4=1lVnnN6R0d*Mz(oi2wj6}QHO$oo_ z9?EPRY#o^PLf(d(J%B|h5NN*ylv&d5?PE<#?kpE6N>l>Wjo~jRPFIsSZyiOqf&nFe z-)S5a3fP}_e+lW_HabeocZ)ppYPH>X9IBhiUAr-vsJKtLpri{M)IK~qD66B-IVLZn zexDR1)YZq1sH~!z9M!5onnr;fg>Tk};>kG0Y$;?jV$H<5C@By@(hV1%m5$HG)FU%{ z}B+wVT{2sR}&~)RR-oZNPlSmh|w(L3Cy?GOUUsA zf0I9cuQzfa?Y-VV%mB3raL~xerxT7p6rBBDS2qS}Wg64whDGy;hq5Gi#y-@z$cj-n z&kW3_aOljvv8h69=;^Y7K1qY%(i;aK&>Q(AyzmCmaDwWR3VgGB_F(>;+((<){F?G6 zd>7CS35RY0QSk-1_sG%M&#!ukdQq7K9yvSdV0-`V&Q`%@x-ux$rLm@I2QT6Ov+Mej zq!g0P*S9e21AoHJ=e6bF_4z-%`Y62DZ;r$buI3ZI@60Z+F8HdkTSX8!pC(ZJMS!)L zu0j<+POZw6Q604#bF9K&Zi+BED^LA4{IBz6kVRf>tZ*zBIR)Gw$}n{TRQKBvNepDE4jA zE5(L`F6Noo2W=lV07kWle!_hR_Nt4Xfsc0?*_AWDxF!$skHoih|=CtgG~u zUZy~>B^~Je4<k{2v{GrqSQ zd&4lK+n)*dw@ka3-GuNZ{>wOBQ|LU}ci3Oqk?S7(hx0#g=M|pyo4bcz=1J|}uitpP z+uJX^!`I&4_Wn1o_g{INyWX3yi3w)VF- z54T@Tp~Hv3{^Lo~4G+RDdlsmg%Jo4wPNFWXs#+@wz-7eXS0WGilB2n-FY3}FD8Y`Z z%)xBew9P!KE9TgovI%qBL3(j2&X0L+1w&+_i>G!yh!-7@KMIp8 z<#{XnOppIsS$p~)VXe&^M-xcHD|)CFL`GJ@A9i_&mzPAt~(tAzqh0m zZDFPStWh>Ehv8m(S}yy(iCLk8l@)NrCqr{&j)ocYEjdcAJ@c|7>Pk3JY9n<~HWTO2 zyEgpp5qc%4`MjMDw0$ODe-qid%5{nDMcn;>7Afj%KRgA|CAst@`#t(vrc?Ra9;n;g zI5kpd$;3F4(Rt%@NlsH_q~er73UQb@57j+#Uljk=`1ohM^-j;?Nxz3yJ@^%~xs)M} zA0PHpyBb45+>fow+rI^qar~`HehK=+*yw6^E=@)1j_lDJ8U(I%Y>(cMpvThaiYSe5NC8e2tX$>(TOkz$ zEXLD{yM$}70Bbis5H!2Z?2krpMH8zuO%ayaK?j%ak;3v8B>7>B#VBD3q?9KXa$x)x zpfL@GU|7{0e2f0kaspCy1c@54;s}yTL$`61Z5j^4SgH#@e01s^`FOXaF_ZUseF&-_ z%2-ji}UN9To%XD zw0AB9b()NaG|Csfu|@=(=31CVS#!V$a&PIe(FT=;I?G?S^yz_u|4z^nX+dc2yeK6Z zqEu#OS!GWMzWsggZw%A~Dd#cQ0F?(9>#bv!e)sx_2LT4|DSj!@51& zK)lC+2FUKso%hh;E$=T5k_y^gXp%;b1=k3ueV)+BstN=i`<)Ca-UH;o1OSu-G$W(Z zl7>Yn`b6zJxl*bRSv7(ls9cAhx*X})&a^BuXsaL_)AUlJ6Ca&J8z@THd1N)(g4R_M z?huDMWd50?84}yjh6BlEvEaCaQGmg78*0qG9juy~RZ=o-8myLe%$mY92yJU4Pu@dk z4P#B&D6Ry8Dn-L!^Mqxig|?y5ENK(a$qvt7B9+`;l;_Ke+iJ5WZ<8vc7Y=ZIc}pr^ z?MSEj9E%Om@RQ>FrI-GQmQiMwDZgOkaJ)rX)p(wK2x6s*QD-Od)#6@g^Z~U}V2off z3o?jz2$$`tNretP#D#)DV&tTQ0qWF*LDPi}eWo$JC48Z2e>@H`JH-$T%id*J$|&lH zPy|U#a|LNNA-xDB4E?`m`1yqjaw}>R9Uhj(9@R5BM*PDQ@wz_bX^H4F34~pPK)t>i^4Cu+61^De?d9 zK1IJ&|KF!C*8aaMd4M*S>H%EfFCeJv@m;bFe;U%95eMFFcjH3{Ndri!xBhfv63l$i z)j(=BzE~GCQee#vzY`~~e*3*SVa0hQ28<=k0QtsJ=0b)>k0#zlWS2}%@aJ4%LTZt> zqQ22Hq&84&2&AgQSUiziJLf_0jENBR1{@HiT!&3sZrwWYK6mgI`xQjUOFM9eib4?9 za5J*i?7(C*Bn1y8>zbtDTd1Eh+>)M3eKnwpb<+MwjV*`zettvzvq&_dTbszzfbFg*hhKPY!ADB(X5f$mvu*#ojkO$|t=i?X_AqOiVLs8t9E& zU@e+bR>pNsX?cf96|fO*J+^zDw# z>q2EqLMa3nSQGP>z(yeSpDd3H&TUiJBJ_)Fu=?e%xpnD@7eb)o8L1m5P==hYw^iJ@ zc}y}sswO_}PNquh8@wHIyO$B5VEQ)`pwhewejp5AZan;)JH51&l^`M| z0+UU#MW$eE*Hf&&B2=2-6y9J@8uhj$pGR0Nyc7v5z|jU_PP}tZCtAT$n{VyAecHv= z{_nRfYz)lQ4}XCVkd7q=@l5%MNd{XkbuJ>hvDWRZG{0I`m9O{KQ7eBd|B2QQWq}1e zOj(ZRpuPO9whOi(-~!E7W6O-d?|==|V6kS;HHHB_w3GZ=s-)*wi|O&is4B+;285%6 z7GO9_QX~3I*EVCcL&CMxYk1eI6syZv6rGe(M4|vdn?x12;}S#vT6(HQbqmQG_;NM9|~RX&|)%0IUbF-in~qCc&HvdH*`I za1wxlw^myW$~gt1wgL|IQ4~a->@FVF><@!6#31Cg*|7SZK^J;JBEWRgfH1cX$?8_# z6JshkoT#9~eog1u4RzZl!P_A(T!n+F%H@PO)fzXZL2yCkOT-X-cI7^6H3Xj3$U6q9 zMiYpL1sQuu3HZ13$ut34u5@IcK{WXC5a`lQJ#hmB3w{Mq1u8fBS&%>sqBEx{_D9Er zjHM_(CAgzfN9a(`x%oORJ?KgjMzbef3+SpxU4EW4_exgJ71;;Y&+q$D?LUadQojTK zam^WkitRtUyHEF?srH}edwXm9&nli3*ni|b9TV6QagahKNaDfj>6wk;q}EKV@}sVQ zcI@fEX{I3#P_q7?KHJ+>*8dCi=X(9G;#uMW z8@p*%wYOXSZrHeqcH**AaZQ}WqnKF3pk2x z@>1WVP0GNGrZKUo>It0g^AwJ-*ZWYERh9s8=lG8ooxS0we~BWqDR1uMbR`$AmgleCZ( zPau#xd z_Wtr0OTz2c=GOmstcNvu(QpJWH@DaZOs!F!3~?xL zvr7{1dS0H5m%s5K#Q+`$a3)8um1$LyHSudac2`)7NH*c|i+AyxyYlHdrsW^>SM;H+8u&Qu;1Tv)Kr{cu`~ z6}X+&fm`I~G7FzDc>}0t(1*@P6e_!4mNM+0o*$p~PdIP6IDP;2RsU?cET&~@{ji4z zyVW3fF}Kr4y_8#G%*9y#AN_yX5i8~^9M11zKljrt;7b$@{l^b{k?w@k9q+gA-n~CP zf_!jY(!U*85BxpOdC0z`^Ee#yPiOB>kB`{5KO&(#bC}c`3&ordD(nzzEMT=buVBg^ik^Sh%TD)QPF8bsA!* zGW0j^hLXfJRfkC8nvM*3Ew;IfZI6~=N(Z3z0$eY^^#Xh}N21ybUePdK`0?1V_K6$x z#W+l1!J>bNH|^#wTbls;f~2f{xr^VlHuFk57G-7&7T4#`Qti#Zl~(8Y71YO_-4s4( z9B%3T)s#t+x!-a94+Ox?i*-oy7YgJ!kl+8dA5py@#bQJngXgbCgblO0qaZTG0q0S#WT zVRAClO_Rz%`>I)V8UAF3wkkT0EpDu>;74Zg`;uhvUyan-I`RXA$uNLi*BB1VPGKT& zlBPm!4(i;7us+_P@k`RXlW-EwO!ZCWgbAD`V@g`hOzbv}9f-T)8ZlUKnoiAWXs-drc0-8??$x)1oof)7s-dm=s5eSJ;Z+ zX<#pKAmaZP54Ub)EFId#=zlDJxO(xHz0a``+FZypMu+UwPwiZ;-sXldyXpv;120AKQAl3ZDgfL%{0dLXGs*Ks%Rm+ zYy@?&kp?lJCQ)*IH=Kf{4DAtcrVk~1thGo(y|N+DSRZj>uiRWQ06MZudS`H;yq__szTU1`a-z3%B)E9wqg zSNQOk%JF#Bu27b@VbNb-vd z5@qun#J6g*WCwV4e16({dwg-!fA#*gRKg?SyXkI_#(s)~c$|RFYhC#f_=t(gtO&aw z2bc5f5;AI=cY+)z;;4AmADkQ?;@plGZ{HpD&B!U{1rbc|qn)pt8mIyh}!0vWBP8;KOGKFF1|Y+46PU%VH0h1etHW=HwgV? z8pK%^!9<}#8X3b&mRdRgNPb%<$4FM@P@_h6VJjvKRvgv+mewGU6$Qj=J&A*nl12jE(6c5Z&ihEr?tAC;^sM~*WN0j*Ryorjj_R0 zjc*2i>Q6G@RIzl}whrXc8^kltdT)o7@jZG&8mqW=%URfxmWSIgiYB6deEYqhYAnAg z3lszID6bU@#)6<@Xyfp0(N{VAHF=OcrtcT!V}%;hCU?ZbtQdEg*rNR@hFW_vO??F< z$(B?bLo-?=Vu*ay; zg2$}YV&7C{3VF-C$t+i*N;{wpachy~e#Y*Q8P8kS_9j#Ql#e_iBEp4W9- zTCtW@ltW-{B5@K2twK~(Ho-q{Pce*Q9}lI$%7&lYB$`ixx8O@NFEHSmI<-PSd%Y2xSGtpGP3?)|Z!eT&6F`dyfOB^h zMW4)|RrgwvYF74Mp_Lz^&qoPrYo`xon3m@Cp|r3nw-2+Y!DsWX-;6}$6-A9S#hPrl z4ColRAdP`^LBIzo6eH=UHa`S+PrOY$=3+id&R&3t^@xXv*Xf{z4>iz_m+&X41{ou2 z9vvQs-;A?!2$`bZ$#Jj9yy=i;w*Y$opJ0*dpI!XWe|2$kJUs88Ui6NR&iX@po9sIC z!PmD19FFMbZ)UUU0!|AuvhRoeGc#5+(`IQiOK^BtyEiQA-tb7gcPN3^a^GRdzJ6Ei z=~V&G>m))vw^=kBlh!HgLX5=RRZL3R!Oo6B_QT)KaZa8$5Fz->mxDScKqK0g2z5H@ zoG)U32kc|guvP zEHFwuSazDAuLK{AN3*Fyj6T%+uy3){>sIEn;e!McN3Y45bUqpWHxrG2lle^wwQ%%{P;JiN=QGJgm)3v8r7kz*+0!qc=D z1Q|oYh9yDyI(=iFFlaE3W3QE?i;g!|dzl@^P zX#Om8ykW4aF^K|30Ix6)koRt?X%>pw)OtekoZL&&OwUDB) zIY9(4pA?Ft;eP@lU5-Y$h3a%`gUae5Z_6ZOTDOTn9}Yc442FFu71=q2s;Ae6If9!N z#>oQXz;Shls9_P$m3E-L=lj(S7lOg0@pKIm?0RWeT+B($r({?Vae=pr&P{d;O1nZz zFB82fx`8#DazyFzu_;HzN$?5%6~@4rm?5!%PKo7ZCrjObyaU{>TS5P|RG+jFHMOQW(t-_=4SS9Ciiwg? zt2oRCh)#;VpIk31YCNwgk5&gS4bxU&*amXtoutwG6*a0VgCM~s(;Js;Mz+RFHbO0X zhLAY338w~QV@?T9oF!SY30T}iJi21N{B7fX5*l2nR|-aS;-FROSn|J5$Cr!eeP>T`{`cLzr~5DD{O{fUXD`zRB$ImD9&hiTG;C96w0L zM`4!Er_lPV`S?1Rt#iiHZLLz$Yq<$6b=+N3$DsL-Gc;xqRd=o*?|TAuVuq*F0t`dUKKAKU() zO;@)6Ki%DZrtbgG_qyx-e-+Pi_kVFG*S0Tt+e8GH&8IkQ%NTEETujKFg{f+YiUZ2V zOg7$~+wLXWPrLbkD_36cwkA#Equ53LC`vvKn6Fts8~G82b>QKwL#PCGA}5g;Cr7%~}{*Kk(S(zuVF3 z_+$75UDMTZ4TTs#%&4h|wu~3d& z&?>x`NQsqh(Sx!~HX!A)9xX?WuRWy7onrWl>V!DAq*Pj#%4*Sk-oT zZ&pKn3hEdN@6|+T?ZT?9f_rQ0-{XBO@?S#&kE(g zLOYw2aZl0s-7+oTkWlMdw^v65(j9-<;uoct5=|kNImPnL37*xkF^Zpy>oKLiId8~J ztb-erCSi(o4Zds6;QBd8D&9Il>-3c$`Dm9;&F3b${3((UA-E>R(-j zBU8!)8H}+)fsl!oU9|>`6{K-d&yh|8BZQE()Qf}~#{(8iR(@NAxLndMTGm0|rOiVS z?R2E^YgfDl7)_yGapZ}(dxn*;ra2J5lWT&;^H&*Yw^M-Oni~U*SO@$@6J0tWhpZ@D zbi8iSwB!v~(bMySvC3J1LrwJ13W`HC@Mzt~L5rTYq)$aCs89+HNR}#xSW)en8YZ6_ zIWiSDUh(8qauQVe;PD`nIVpP4Xs5)6Ds)AN&fLkxAWIui_!P@AN}%$oCBv~;QL8k= zvC#)w@>`LKxa@7hUR9Clv~7iB3XS-D(A?R#lonGT zqb8MajQ$w#V)8RApUr79ZvJ)zhv}|*ELJg9xDb&y-iZADKolm$=YM~M4_^za0ZPvQ z=(PV_KL79SzIgV0eg0p?v%2%YnaT7hg)tZ3WxMaHIs@AN2E_EkK^5fp=gEh_=memk zUsN4XFlr{$Fc$>03_-fe{V3HDWoiaKgbzvEPz|XErF5vav1t6CTx#!R4LSgn@c(B| zUugF~UhJ;z|0{X!f&Z7pZ{gBsexrFYr7wZ|N7wrDL<dA7<+SbA*b#9R|*r9r3I6JlK zt`BwtveFTkbhV{QU~49q1=YX?B^so+>EwJ=Qj%$x8&x!>d0MlgB7*)cO=ig`i4MH; z!+}A)CL*Hhi1fA8q>{)Ey^@xwDaB0n&GLb$ULM4w%KtIBhCpwzHgf_fmjAoE&z`ID z|BI*3*7v_x@~lSwXKR#Fmmaf-i1er8XZ6;#mQPx`KPE%gZeN$^Uy3tSKg#pKW4z&o zFHSw6i^YTso+C+yivq{-bsA(D{nckb3h5kQT>@u07`9nh(BOLIQ z&k`@0-2^E+ZNQ9X#m!Yupsb9ws`C|#8XDonm1fv`wIwO;&Mc8TppYwj?u%@@W=X4r zJV{0rfh-q{i)n{ms=~0F55c}sz*q8mS7|b-Os3KY&v|$3 zjBv{G1Fr>%A6k!NaR`GeXu;&MrSx_>e4C?DR&k?FsKiY$&%A7u`bci_uFw(_brnv$*(E7_DSKp4oY-U; zKVZNr@CB{PJ@AJ@v>V_P)!{!beo>2@xmPrTrR&=Oh&JON{WJPzS(?MLz+(^UOqa3*a7tqsSv zZQHh;iEZ1qZCexD6Wg}!Oq@)dTwm^I?_KqNRbAEnqkngGt+kHh3`MT2$eI)wOZc_( zmL4lANT8U)G)o_^o}`Jzw4twQ3u@|Su0)|f9Y~4012)|~ah2Vj855-zVJGKfyySrP zgk%8Kg&yYqTxM(gl+B(^DVh1`h(h+5#br47mqm<@$=c8*WmvjO#%pkjMK1PVoTo3G z1!tiO?pvoyJP;E+lZl8emkX7|z_Wz1E7_c^A{svD;L#zRd5)Jg7;N$ zDm=T(@^7(j&G3MnWJ^m*!&YnmZ1Hl<6I~hM#L30Vm3#}6dsMss{5JU}?f6M|sTp-w zl3{B8rO2qx3(v=-TA8Q6FZZr)C%*ni!Sa6A!v1U?An5U-1<-LnAG%H;?7yX# zpfcI-JAc9I!l*{@MF-D~l}DPWaQ=w<7-u2CZEjWq{G~oN-<^DxzY4sQ%y_?3yHe;==YPTjslkwf&Qp-qrGu+&lpjC>q_(^Tl8wz4RhR48p3u*NDX zVfY(e5Eu@TV2tdPiAxst8u-@>(#u8XFF&O_f+Qo=v|mZ1iDnKg zc!HI-(LR#=D0@d*+v}Ap^Y7_jQb>w+T;XIpc{%-rq+azfF0?3p*ffvShZO^k>BRv3 zCEC0P-V&Z^mKr((-pDtZ@c_q4RAMNW56k6RW$`S*$nKQ79hoOZ8T3EuoM~f_s>8>bPVjqoU zg@VILpl*5RL;f_MT?>&X4&SWO?y!rpl5YDUw)7C#3jv805JNEX&xt@7?`%NX$XjVV zzSPN#1hB+#cZX~<2fPZ6$4zre2Uo~kI>i1hFcW|HXCJeL){$9X%J(6x62UW3DnB<4 zVJgydQfc*Qw$QV9PRE)Xtfs*er-liN7kEk#!loQCfl-F7R5K9=@>Hzup7zJQBOZQN z)JD|Ff&(FzvWeTehR6M;WocX57GRPsCQ<`OI51-!kEvyg`e2Jn{@ZnchLTgPM=DAZ zd=3N2--u>aWxxTK{g*sBdC4%5BC-8%YEIxI{@l~XAHh^0=TXQ!lu;M9f(HWf9*%ZK zwVEEzxFb2$sQw`X>@9ZHiuv?Q>InmOQDHAwcB*hGTh( zgYrlM2;gLrQE~0sK^$&Fe_WN$Zs}7Du!s~qB zNw;~YbAvIdRRqaI{5e;%JsAomPxROu38gyN^X`ap*( z-SGR_(t;g2qr;zAUD!$JzgV5w3`=3CLZ$&Tn>sdzMgG57U6&=VXd;Jrl#nIv41r5& zn&+WjSB5(0kf>K}i+pRc`si_Kck3vojx(b;#MSJ2EA%;L9@SU5X8?6hbEg6qVuNckPqi%OuW~g#y<|6EBlpOd6U>e^EM&H9 zxasOnS}k;NPZ4r9zZIfmhX@v*1%tbq_hkUuiL0Ti%dYo_kHmjyD<)6x2{rA`N4xzw zcWC#;OLIRzO+6O`uX}hdcx(Q1MrfP;wZ!;wrc`Q{ps}tS=5j{RT;;Hnx2*UCe4ifP z9sddNwzudd7X`LGL5k?AUVJbjv@3a5voD1C6Oa458AKVgA5a3Q*Pg!~mPn&wb11*G z16lDw>uIAH%X;6djyITF1RVNlAjfY$})(djHV`X=KZM$Q=$DdcIcyBvk(yySl zi;m)YSuMcvz@axP$6bF{vA$#|l;$XZ=gL0l{7aw46a+@y+=fjM^}VApj^Z{xjKd42 zH}1cnI51wRj&P(5JTv4j9 z+p_FP9+I0qqn?T))eVE3ElA)YD>T`vnz`W%mcI6w!!~Z8Jnow&1yP}{B&`2t#HJWR zL$pFeGrq5Kb2LU!qCh~QP_QwBFDtyT@%=x0$Q;%HJp&qTB> za=y~lu-+)-rB_?~2fIN-q@_`Y!tJN$DM?j-)wX@uj}Yv&JtB?Q0+Xba1qtZpA7PT| zK1s!(#r@-uVkrQ<8%#b*!XYcc6DH7*@)u}qhlcYGy9jlY2FQlW(6KV(sk@b}v&nh6 zv7pJnHM%N}4N`*`CY!~#jT?Rl-mC@Y2-&e{DhLfIj{hlS!)hH|Xu;eBXdb{OU#rZrJm}-}WTTMXZ zUzezRgMJUxEFRjjv<^rXv`pS)ccA=Z(vmMB3QGhbg_2gX(kv|24v~i(<$doLpzgnhTado> z4?&AYr>x$;0?*V;@a*!+Qy^%2G|TrnoXXfN4;?!IJHI-WD68;r-lk@F;51z0+yfQN9szPAMqWhFmKH9z;`n`=f`b5Apw8uZaV zE7b&^xuF!XuhM1P2P-5c#L3CuMnr31-O|P-Xl_oUe7daeGRJf#EW4cnNf_s&$6C2J zG@B%T-EpGKzrz11@_%#wHDzlttn;+$XcD`w1KbtKcBQ7YtDmAkGNRJeU=vY^+LMi6 zad4)j(2@+*1lA5t`Z=XIN~5C6AkXsd}Lp*8x%XwaK(3 z_SSL!*@YrbFPp31(L}BQ+UP2qTRH+k?*!4B(9E#ZA@X<{ArS}sVtQ3=y!qjmNlzy1 zW@QfRLkpWjA5D+FEzN`nNh&_-FqjcBM2~o62rbx%4LQI?YQhqT1*igo4nd-sSWQCBA3&GXwPV)@FHQ!S~c{R3G-M-lg?LHp^$IWqoRJ*D+~u zYL~pZY`Wp8zG*G-7g!C`KOaM6G!15HiJV$8hpzT;3^*GF7;WttG|S-%2$njiRIDU4 z2&;A38tVpeO*3iU7|jWSm<=hy;8Qx*(q`?yztq9X9`0*^))x`2OYIm3ycS1h>N#Tc zK7cpN%0BT7QK=s*LA~lkqdTBf(F(iJMwACzwP}>?l~X%QrAk=jhjd(ldJ#s$Lx}d~ z5xVtwKMKd`=GG*v3WYH#VLC9nmM+y#ooGT!Svg!n+#nklA*|gLv{w9OKJ-mcYlWmT zwL%)bJTugGfQeL58j?U};)^0-6_@mpOyQg`?Cf7Z6&hnZsV&fJb&0EGzkew}o(c~; z>GK8D5m#`(Y4pb~+hH}1w#1j>NNPfiC@}2v7SfZ65OBzh^!Uw8G$zZU6y9fD%cDpJswWzE!ERvVE zIum@L?K(D^QZc65R9fUo?OBx9-I9yDxrNz&BL0})|3&62qE z&ZI%Scsx;dV9xwHkhe&p5uf=@kUTiekz*J-&qa4Zh z|0!#CXl7?Cx;GOYf@H9hi?L;@Z<<+QlqRN2^qQ&S)L?6%|0WS3(|G$?_q4=?H8LZt~JibW>@+wR4mZV+eTf%%BF=Y9c~oI4DvGK6a@ zJb8h~&)aH9%T^YC`cS!u1x&IaruJBsJVuOIDodmG)6*1$=y_qUO-O3B*tXz}wqUcH zHIN$y!Kc=O;tZjnb`+UA-N7IUqp9$8bgQj<>#GqoBIpxRAXx9`cW}rlCw)b0tF_W5 z0%cMgPi6k8{ntbSFyXp!Q>If%{m>zkV!L7&r~ zo4WzuZ8Tu;(e-6SrT(KkMyAJe)9-y*)WE}|;A>*buJC%%0)b{l@ERn3r`XwS&&oox zyjvnkcNa9q=xi%)$kaO{e2tU!RxSJ0q=l!zbL`%7>#ul{2LvI@EnT2)?0~0_2^ZJ9 z#TgkMxD$qJyirzB2|HGicgXHRj=zP2kH^s#eoHS0+@?l;y@;YPBjF57ATFemKY=Kc zc-DlW2iBVk;oeRJo}191mzS_Vk{K9SN~EqsGTSHOc~!A6%Z<`;u&XFqyPUR7n=#FK ztrt{)2_c-(_fKgS^t2-(Jww6EZz9*NjpN+`PY+*5fwQ8HbPk{TB(@HexgC0ztt)Ch@*$ zoSq~Qo8Vw*z=wlDiljGZuvUbI$$tEy#CsT9{_GPzh#V#bZ21E_I~8Ckg9QG)1q23v zU}ELKZi=2Y+R^6_BAvXua`gbFq3>32mbx~$bo<;m8L)JJ5`Em)Q@(@Q`MIVy6;SP| zP6V(cQ3e@Vq7wG8<(T}3c&E?1Q{<641Ep2|M~NSQCzRE-JHH%Q(HG9Pc7-7YA2{Y( z3FlQTwyLQ^F)CkiYrV3H0h=&Pi>CmDp#Ickn17Ash)~$v6q7HoAyISXzpf=R4%X}w zKA%OFJ0>YQ^;xhd!B3w+uqD- z1K|NS3L+MxI)M;(!r$l%3Nhw=j&&U$1B;}5MwgD%H7+!J8IH>J7Z+{*QwZnaLY{?W)$dD*KDy?*vPw}g|+R^k6an&I6Y9h2jGTl$Zv>x0T&c;Eb z;e?Av43b`JOs2|Bz_dp2W=DMEtkhMgQ4Oh3OAst9KZe`qE};jsi1n;CR)B>+*YB8@ zWiIlm@R>71@yxOw_IK@EqE4hN%VWVe196g=c1oS7UYCp83soHsz5`D4ny$b7#M_d4 zgc!$v7~-%{96aDcg&2hMJ7n8rAy7m$KdxSO-!9LI!2s@CBKAo z4pghE5~HnIWkOO44V#z`$dhp}YvT4P8#d?JAM#LWuFA^>wJQdd0WDgGZtOQVzh{Fh zYF@xc3G#NhmK6Li=kMFzb(JT8&rZ+T+}asHjql|QAPik22_0K?s!>8-7-t`NfV%gb zyjMU;2+~}tD%@Eiuy3d;QGt0!Ws4o^+I6f%LnQML#ute&)w>8s9Z_cLmj&bUYXAy+ z@gsTx%g1f=*&O=U?PEFP^V;W6?`HifXke4^T~UUNq0yRYIES>5e!qEGgPo8yBmh%l z#gi~@2XxP*W9v3owzc6K%{mv`$ddm7f9y0X*B*U0f`j)QYruZ)xhFMTC~Bw%CGOiy z+-VwR_)8w64!jGTNKX1-i>L<;cD7k49E6uAJBZNC1*}8<$U63QLzuo4MpV}m{GPB5oN%M&xo8SrId3P0+4ct-FHVXd|3thV5 ziuoQ2zs?Vm1Jb-?yGL-{4S4B0AZipu7dQt6baFOeZo!@U7VyE?$+-Ffpvm8x`36KI zU2DU6t{VeoQ(qd+xhH@o$X)xogK{!4jb9@I;9>gUPq`AnyC)yBW*7nZv5|GXN7(2< z9R;n-Eb%8|-@KbBs^5wwqHdncxe)F_BHw#EKAkVN1`B|q2b=G{WQ&QngCTPGA{?&Y&fcSy=zZ~GldVOrcCCVH8$-7qD2KM*l)FHr} zsqc8E@Zxph?GQQEfP{@o0Lw?1 zde%Z&nqzb~CZliUtUh2RXVmHhZ>toUN*4uGI~$HgFhLCQ+2W11B|e>aB^s)}N#X45Y!<-woZLWKc#{q~FkH zZT3AHQ5Zk<>S{GIQ3p1sujk?=Ug3R+ScjE{Zmo!j zV2ba7;T>H<2)~~PSlK)<2BRHtAMygfbKX63W6-mYI?VYF;nyi4x3u+L&8a|^96It< z(oW6x*R43~4;2uXE_Li_f7h(TB2kw#2^P|=1uAVIWemu2Hog=WbaDrVr?d{^&!M#< z<1t4;X9;5!*VA3WI&d;)PMrg^q2HP_Lf1*m=Q8ydRVH(*>GJ@FMv{Gtw%oJFj;MeOR0$M~1y_E0f|6&%xR=6qHh7U%edREX% zq%YpV4uz3RJ}a8~8zgVyjeHa=4N!kPU$TzuTU=RJY}k4^tlk~e$7b7Sdz z;~@@(n1}@ZKUm2fCgCemF?ER!1oITh-bw2j24879_VIVN7bDxQowg&zj8o$>i~T6< z{D8J?-ZGd>o52qM3=y3ztaHLk9k+sp_BKLo3GwWGMgJa)ae81*@8lP?=>AL8BV=~w z@9K0Cq2!GFTlr-}cCEMhLH=2PMEJV%T@QU$^8@p@AD@IWrB~3R7Kb~m{kX~a8wPbO z)Vs_z5B@qFZ-xiHVT3$FA~K*`V1rU{Hx$`4e^}JK?%>*MZe)PAg;EK+IYKma!%jkm zyGxO8#{$YGT;B5)+&rmtDpZ8h z6Iy%8?3yK;%e0eIJVxbGGLJ7`;SRbZLODE{CWy)SFO^@$XZv{+R>4sUOXZ*&|yzi-XihC0W|y zpkC+ZeqShFui)@epcpL$#nKUga|7XA)E&v`S~oz{{c7mN!XlALU@Rlr^i4HzThwUL zF8`|2TWwhKDWf)5Ae1%1`@tDgk+=%L1=8duK->vkbs1IPzcNn@z_M&?vtIsy-^T7i%B90GY|sLbC)kv5~I`Ub*5RK2MZ^&amzq%h(SG zvO}Y3d->i9mqaVsT(7T6?TWjs-7JrH z8%F`-JO%PWFQ^`5GFtE!QhF-gb^_ZX54%T#RC zS8KfGnOO)Ri3^hJc^-V>`n^UvEua2!heLWg%sndt<0fSJ;M=xtDqhm!m-i2nax9|f z@yMh6zd1Q^kwk5AC6876GsZbag;1Ei5*f`?j0}7lk9iHL9S+k3BP>=*Pg%oGH{Fqb z)uuGgetq}tyi6}N3!=0R_4zz>g9A&A+}IJVmRaU%g7sUxVxP~8bG4y~4ej>ZFYD8O zkXz27zl0tE-w(r|r5}%&Mz~CIjo|qm@qC@>5QGqzOYfU}A2hbb!oB~V`u}39bLzDp z!2Mp?fPY8SPeqL5=cgSN7~+$X2pF-Is!|nec@0PBFDvlxJS^7q)q7#;#4mahhu zncGFD`QV5xW)ej|bXt9WcK7gTZE-5bR^;GE-pMMaNSC3Cj`HnqP=k+KMZGN{6k&j` z+29(A5aa=G26Oca;w-pyXEILxTV(}tkMr7W3;Njm+_~evWxO-R%%gaFcSTO1^eN$? zYg65hh`3f?Cd`pw{=>7;Wgk6!cC3AZJEp83uZ`!#vYu{0)AVGk0 zrG@8uw-FHk{n1#els^b|KKgsStu$OHtLI#|ZyQ6i|K%-7yB0pIcNujQ9Dhs=-b=U2 z9(iJfh26;%`qSEIoL1-Fgq-Xuva{yo>lVP{5vy8M&%0m2F1ck2`8X(V?^Oq;?4(b% zH9`#zdn_Y;dUwoEk+yqr(e+ZUIr1W2q5=DDS-;yNQpq9orl2;je!-w$B;FaXW@Id0 ziz!*iWLon#uZO_6n%-&G`dWF1zWdDG^f_sUUegsCmI)o=ufrLPorw&*y*r1-2hw(y zHM0#{_3+@#@q%v~S^^o^Rf9*Q{QQ=eHygO*Uc9-YjUtv3Hk@YkfMWuNbXg#<4l~J~ z2^kCG3_ivVTF2lEbE3mX6fVZ63awdU`fM*-+}?`7T#Z| zqoK)HSq6~JKcdb>NbCtq6D&(eMiQ+a zSw#&f~R-(593o`?3W&BCB}-S}X#k38=_+ zjwn-ny6W~cKS}h_6_?34P*WTjyLHpa@kn5uVWI!$$DF~m1PENng}w?>>WmtfGus#E z%eroQdCMV~o-S4!?QGy95p)8rGm&5Wdq=mF<7Auq4MUjzWSpagExK4h%uH-PB{JaMY-JBR@L`WC%x>j%Gw zzgEwC3obYawu1Qzn?4SZAsgr#DNeBDyrLmsSLG%z#asLBOyf)(Y zPCmn$GWc$G zR?$6=^#jYbo=wH$BI+SCWt~Q1$8^8x=PLwCr3KC6;sCQ}H3LPcw|d(d?Jvon(9Boj zc>7>qD1je@Enq`a$FAFr{(w>GAk+%zoY1#}{Y~NOnfXvrb<|7b(H(J;UV!7oTa#-m za{4Yid!tYEU&SK92CP)JQpuOcA$VJTr*TFK@wNwqftc7$k->fBf$E{D53O$d1#!n4Y5yfJeLejqI1_Gq=LwF zij1Npbiswdq8jsbNQ&chDL?$)5r@p2-R^QF&f7k{WP^_?XYG*EA>Q(~a4%u(cVhyk z&Sf0LT>0{_aWpFA9(Gx-33=!T4{$h8acGnq`8m!QHm+=whO`LRfflx21`!+<{bFq~ z3Bw-;!rK`$o|;7G$@bj%)_p+Iln=ms%d&l1fr(VlSm=zEIcNk4;v$m5b7h49L6vsu6*WcYBrR8VQIg`2JL0RKRiT%|4XD5{+d#122s* zikX5RE5DYuUcyrp?zxDXrme5cYi>0v4L&h0nH+2QP3meH=i9J~rE-Jz)AH%!H)PAoJfPeV3 zh|z#&$6cp4H1B0)qXCiLgX5sDNx0_SU!$mOs5Q(Af(G7upTy=74gW5@5Wax81L*rj zWgDeFPHsVqVC4h(MS|-clOEE`JJ15F$_h;VSIiCiWTvGCMVaaf1r7@K__h2Bf^`G6 zw?VH}j^l}{PLav%&VV^rF$LAbP_1WGBY{>XD3$2!*OkaTZQyYb?E#AdN!zT@)xYz$ zpkB*B^LkyGWeSy+=g{ zzl_LO2R}2SsIr}jGvq=cEVi99oMR>ySK7C2r`X!<-7z?|xoN$;dAU<$XEM7db6zkr zvRys!+IM;P$uu^$+G@=CJ#=2VJ8IjFtt~y=JhrT#n+D0LI&NU{o_O$%A)jmx&&BBCSTBj;8ly6~8RvC9+U;&KYarmtdFskgQ7MO>-Q|1Jjrs)j-OGnt+A-C5%nfgg6CUZFLWJ8z-hqG!@4DSJP^40#8DS zBl@V3JL>q6gHtcdOwI~w(+xH%$UYx7;(xV(&DHm57JY;t`4hHJ&fyg>eDP`GV_Z^oIU@<{}#`a7y2Q-m*gLr@;|%Vdm4Y?ZzKJw!6ANyH#I4u!D+XQI!)V-(;qFWk+5F(&BN@oqoJcDz>P`E`Xzh)#qh@O4H-N`%p9w*id z{ZM@0oe4>H9C$qnG+y?$whFdi1bJ`1gsps7qYo+%Fh3S2Uc<$l&< z854uPM2l=YmJhabfO;u8fGhyvpG6iCan5W%67>~sdMoX{Ad;h4j=FV=28$C;4Cg9m z0?T>m>{_R8L@6@-vfUgB88y`PMc?+e7~mGx z<8r@Epu*h&kpxQUKZzJ8BZsf7Tncr?c4kJOtp{4o*Rd`;qlDc2-1EAXl~(+Etc};k!`A56Z?zx_*Z)0wR?-{_7QbiE`gRaN3DIkO z@ZOzqnWNwDgbu`oATQ8IKUJfJ=oANOV%g|9q&Qy1eP!K>OQ%CNEvl&xLoee#?IM17 zO6E6e$TzToVx{h6Qyw5Qx5d$3EeRnk;&j?71F|G8k@Nk^Wrt=G_$4@O0O@Pe` z1AIHk8j*bZsrc`TPY#3s2@S;@HRA40TO^hqKnmvGqXFY2ybDX^_k&X=a|MBcjjwD} z4Ew_DVfn!Oe1aX z!l#%{bBBPUivNTA2IuhIW`MCAjP7erGd}p&R*IDB)|rotHS7(i znebzVta@5(f8ZC4$lIO=TmU&tKv*XTF6$gW{XWXTo_32qPyjDW8Y3F|T6I9)c&xtk zm49ujYu1>Q;EKqLOE;Je#QL>JVYe5~-4)KUbv98)gU=gy@f1%JpZ{vo$=c7wA^2Hi z=Rf(lZ|Bb^Q?By+H6qQ_Y~#!Vx+S@IVl!A-!D<|=^t_wl*tE*ku>O}r5h|}@`0`cK zSH82Dx~P+%b$KQ?jy}46?^iPpR z4>@Pez}c^3F4wW!T~@qHcf1FS@}&*U{EexC@V$`j)ZzbYLgMC>TK)LHDkLT_LZYWY zPJGWM%+H87@=%DI`4}4dAcHM1r^%L%-*Lh`Qb*kA#hdE_8Tg)MCG>A?c{B5TZx>hx z$8kf*JW8>NclrN0lK2R)E5&y~;OKJNy5;L@Q_@9ve_JD7-?2K!MWjAFVw%HQES;w( zp$8Y7QZ3>sJpX4+avdtO6A%vouM3wqe$6X=6yiBgUK8{V7)3yZ2qEu@Gocx{8W@%| z;O0+pvG;GACM9CgYAzJ7{(u{un*AZG9;#djl@0bk5MLE$#3C*C#lE2#k1Lbl5qiJ0I?b->Cw8WJOK8%+q zCM>z6X$ZV)sK9|>Eo#}sal9}vF>p0hLWQ#!6^1oUAEiBLT$Nn8ETUn>1T&~JY|wni z^V}#YpqS^ls2cSNL`oJZ=lDexwNg<~u1{qX&Bo?sM)y-9ml zR~O(a>*u!Rci&C>4Li5{y>zDk;)R*!ec$r&R2k7L;Me;>>ChhZohIPY(EMqI>3D^a zM*E?_JH&Is9)0{kplQmxXOBm*)Wz1_o8?u%I80a~{}Sbam(bRukLG1@NBlSoLN^%K z&KVw365y_oNQZ7Ae1^r#Kq8Py;MpU5dne!5+}_i5e~m!Z#V*K17u+NAJFJcPq9Gn! zJJ)yM;+?csSaGs*tR4DJR>{_6O$5J`U7Ts;8M8mtasqt|F@>$X>0<0Mzm6!zsJf7y zc@;=k1PLESkm5oUN5T2ZxZs=%=VXug6x94+&CDGOQY)ro3e#nP%)Ot1PB*!Ar04Dr zQf&Nv`vI0ZHE*9Mz4sr8>baBubbJ#gia=*0%tAUw$yi~S6tc6rsira$F~-5|Xr(PQ z=oY{2>IUsW9*tkG`QS@aaBrptW@iW1Hum~v5r~i#^h1aYLNk2lTY)VCclxc)cG2$w z9>4ddd*||-z5+D100n*L0y?*VpCYgspyOg;7uCi2_COu_X}M+!YVD&FJPL`KX)zF3 zr}7IkAcF!`c@;>GI;VAuOJC>&e{Q1feY~AVx*0;0*j@ttS=c*$DHI=_tbL2I#o^LX z)_Y1DZMmqf>uYdaefOB%v{etVvkY(}xRcMX&@Pp47J6m97Ox4LeP92Q^nCg%2p8|rx0Ww}d4jDWElz?Y}2>XRfTUgurZ2-I0|Ll}tu23NY*Hbzc2H(?_ zg>WN?I|qU^Q7Mh0rL0W%G+jM}THd60fyYQs}N}@EnqJBhGzF{uY90s`Hl^I6H;j`Fqds3gH+FmJ0M~9FFZuN+KcGN$3ZO0bMxgbY zWnVqahFI0X6+PFjLAw9taDM=Li#y0_jBnxmEymj#Q!+aD2= zNU)cFhjY_yc~BL>RQ`1y$_7O|$)LjqZcxm$ck;}YF+}?E=&1f^A?B)Tt_m%gURzF& zGe{E!d6lOuA>+B5MU>v=A~8RcSM92rJSFQxQZ*9!{ZampA|z1LkpfOAx}4bJeiP5K zz*;fTT~QX7%}v;KemB^mg@$S@GJw`ny(h6-wX-tF<87afcX>K1IoE@=ihm+Ft0_b- z#mS=RI<+GWkc8N|`nc!n+d=XL*xils(*yLi0qT#nZr&0+i{luDpK!?i(M(G|p&)Ks za~RI`{8ufH*P*VLcnQ^Jpq9Yc9n1f^M|u7~;xTaGhj`pPNQgn@~TragSZZ#+()$T=D9&xgo<6zq-(FedP8voTFW5v8GPryBV_j}D{>CYbB5 z&G&Y1D12_5pZ?CZ4RwzDHS2$K^Gks@VBF7JE5Q$t@lPUV9AxAp0P|~IY68TstyipcA%oudmXSD$s^tfN9{o5%3|jt9S~-@J&%X-1Wx0WQ~-$*O3h0i*wulaNv80 z?u|G>QlbiY-2z2BuNr_>?zW9!YZhU@XZng8%#?l=|uW2Bd<|MBDIX zLdmqy5#Pe>l(>5zR-^s%>PoVfA`D^XNWRdUP?Ca@YJS;U4JX z33vBqRt1TT*>i}0`-d#!=9nsCqO1+&&~Pubt9uBJ>j(h195+qkZ)X!yc!~+TK;~0Q zeF4MyF{--@51@%?BoMv3`&wQ;%Ua^el+vK-i*V9IZLKREynC!L)<})H_VRY z`TiWRy5dm}kT}svdWq&EF!d!#!O@twnqEr%J1aCf3)?0>JiEx1S5MSpFR_vvNy}}e zGXV#uv#+V z%yM^F8L4kzTYvo{ZDASpAP9N{vy<|uC<03|?_?TepYM(v8%LxBhF(Iv zoiT|PN-BYjcm-P%qO$`#AcQ_{Y#@c%L2cJG0!1-^B{L?#S)9sv&F_;(t$o2cO?5-F zuqU@eSLeZq(^{q1kKN3K{#y5y^Q)|4O!nDL&Zg(^G z_yazvGAo#%hOMGEll-{*0lTqKcsA^gKNoe4G6&tv2*%Cd@Q|yxk1M}{n&<*0DE1f| zDhI$3%XaXvgitXm2ggg4Q~WKv?mA-5m+NMnA~9i&pIGpl4%(n9dM&s;ICRfUh{X(* z_%DrI5GnDh-Eb5>TP9mkjigdKQ8H|P8!ekdWji~912veIvk_g4udzs!3X`nu>;VF? zD_TY50HpBtjuh_Bq#e>;!UIGb#RS)_Y1}N+7McPMDFWGOhl~NbYSl{zSlS>lwZL($ zn+M`m<0T-o>^Cs3VdJ+${m0=(oi#vb51_ZujPq5nf$2iaa5uJ$<~`fltuO>3R;A%N z{xCkt&#i|~jd{1>YG1s~>wqND`CXnz?zooB){<^z`oy*9&t zyxT{>nr_N3v~AFk9HELnM9YI*+dkAU*`c1O|w8&=!OSLe|bXeMwManUO}iZ!^>)P0_hPlmuF#7VnylEot_bmONe2&q=u;hevwgK z*Foy=uc}z2NSz@cgzy^A8(gkjoo`EDywuZBL;?>wF0W8~<^7c&b>)w+`#b^x-GU5$l^nneJOmy7SE8`zWYvzzbT z?@fRW`rOeypi={~fkugRIL!napEw*$KO(lG&a8oOt5sUpTJz7~DnXV#F?}>Ny}kk& z5>XG?{6Aba1Zi&%6a|rHE_0gK!nEd00^HcpgN6Z(=zxPppN4V>dneRalRtO5K_*mH zejMRsRyRmdlFj?s1i&XAriN(sc(QKg&FwIt5ezS5|Iv52Q+~DGY>T;##j-J$RlDzv z0r>s3R#k+MdF#o=3AO|PL`b}l(bVC{KJH>nN5z#-_VJdT;os2NBqMCoxU{?*+J9f=UcK9 zg4Aqu3J2XfoEL{~$e}jC~#5MLRG0Vpk`W zvJn9{4{`JOw>vsp96R9S#b1y_v!0>{EW_e~U^Z0;Kg}g~n#9S2NuQ{f^75+anmEc) zg{&Ae5iVDF*d?GUM%=obn}A=GvRXBbB{XA(h_P*v>}H8frtUUe1*#;7%RBscFjKzt z{|D1UiTe-JD+#=FsYyq7Ctb2Qn*9Ybj!o#whBdd~JK2@;w7K1@+W1_@7SF154T2b8 zX1n&QNJOW&1jMd7>OSnhUQ- ze0ueFRuhU0nm%|*ml9gHbTVR=Zdia#xN&NkZO*^^_;xy>i3(^&;YGOc$kqwQfhatou_WQEydT6RW7Cu7X- z_qe^kdc6+)LRLpO1sRQ2|HJ(TB>#u|8T?<|uU|=($LP$|wOA5GbpT41ulC4K-4l<; zQg6S3g0Y>WJ$OO>u$2SyHl9Jj$KgYhI{Nqnfv4aLt$owZX6I*I_c@l3cQeP;oBkTQ zMCZ^?g+Bh(2*C`LEAg1MhV3KhombuSc{X=mzP6GGCtzey*ZjS3fA_S zOkl1LD~V($&FK&c7hd9(?pV>L#W&?dLUz{{QE7R1bM<-n^tGk&#Y*d~u$xaF_pG4s zBadAO;N=3WjTCa?egC{t;mdaj7B`w#;eU75j5|wBXQwPt_s~Hrc2!eF0XWV4|3e4E zf6&48R2ws-a-nm|C8F6Ts4{f)#SQB2f7)wG&KHtz8V_4M8KdBZc1DYa+-P|rt<+Nj z6c?{uOfXHxFvd%f5|_h&+7PA1R<=ZUG$QdwGurr61&Xs21v}vMv5h@pKY@mUXHz z#FclYueN3N%l9XIGDrMJ`I)IzkCkq=lNcz*UL-MDHZLYS1PR+@cn6CG0+6 z0iZ#D?rvP-jp$A--54tJk3hVB$NeIpp2weG7O>+EllcP$_A7o#L(~YSt0t+7CF~N_ zIj#Ee*2LZ};4W&8tmw>^WV8z9W{x4%rX4MPPk^41phTlXAene<@fb9n|Iy#xTWNxmRI6d|ltBlo^bzhI zl4+IE#B}aT!>{`;tD@^SwyFM7%GBoe)p^bO6K-XV_tkR1Wc&jrE=tnLwHyQvB2umd zt`;b(SO7~q7c&zSmw4BqLBe;%H#fhTnjR+M7Xg4SW3marIA8 zqI6x*CR(oFA|SN{l&XAP;pCS9|&jSz_>3l<~P4F(z3X*k#V-Au3t z7m?(hu>1HEv;{_oe>c{m!(r437<1xGNYZB<3Oy>Vv{4i`!XdPp0ikma6bTq98+UVCO3_8b@&3&l7~2;7FKN*3tdFonQq(b+{8j|RpoW&M6)PV(;6E2) zp2+WNMjMgIpxj7d0SHt2G;C@QF_$S#WQi4aRRDPloyy!~+;PN6QHaT~52R>W+7uo5 zaQmZ>`Gg992v#N_|IY$*vjHHUHUk4NWjas+W*PIst0nz4yIfJ@NueXC-u%t}={2>u zNm|m)EWVUg*8u00t-3J1-@1QfG~hRXa%V#>5Ld3l zWUhWs=f~eCN&CM|IQ^<8^k$Y0Yq){`T+m!Gl7L%i225u+1rKBbhfP3g1rA=?Z36!d zQ@+7scHU#}(b6|dzrv{iY-T;=WzeSZxX=l{EXMcmvJ{_dXH)6RCrXzwsN6`IS-ms3 zAw!kA5fQLnwiQi&T5v-`V_64mr(8&ynVS&wkU&qi`$*Ot682F&YBum|joOX@J@~)T z{KlBBrOF-LN;t69XG z8viyuphG1`U$6HqZf~ylJ<4;W9TThXo4=20;~9%A&U@iOXQ+!smp_V5aU0kr7KwoL zy3mP()wCxTDJ?AhRjB?1;5itV`yk>P#z0g=_g5EN0d?96E}zSmvwznA_nlfjRsD0v z3VV%iz4SBEug%?mNDJ|bA8bHznEUd7r9(c(UC3!R^rCwVQcYbr;X5)Oa=+dmk$j3* zc)uxp=-sh*K4sw~kD@%u#CVDf+YkTN79vE#CV%+`=vVu?+zI_G4UOIXendUyxHvg4 z;IFJ3l%l|OcTnkJ4TM|Mr%IsNvByTc@zy_4{x^Xuo}%tkH^0hgGUM(Y+2b9A=uCM* z5PE*G0+;5vISX%|fA8$t>VsQPFsPLbA6ruFC#c@z2a1HAg?e}_lDwD`W z+XXFgScZeN467pL`gl3_&l!)>lsW6cIN?&+r%RXou%-nL1Xc zC~5Ccz;N6ySUnHdn^DpsY%PozJ_3=@s|M(cOB>J9G%Ji(GolOnjPD4ON^g1*=EDD% zr4)Vff0okBh5v`8RONq`(lq7&kEOJ@^?#PqjqG1b>Dhml(uwTip(D)etfj!|Ke!cZ z*FM#J%2qr*@P>ZGWwcYMdbY;;ihgUHvvu}MM#^;>Dp$jx8pR>@0u|~OT5(E;Pz%O! zY2zEbhmx_n^uI)wFUmFBKg7!phL_L3vtF z2rna%J&r#`$tN?%syKgXAg-ZgB%}9KpilPO(<>x#MP~hFZap%$fj#YyoMML<##n;^ z?>%UMIZ5PoqY&q7u>iEZq?~i?*8ua>rbUI4G%R_~nb7llI363A|xc>(u~e zObcw_P}Q(@JN|Rpe4JZogM}E_DFBhrG$n~)3@4&nnJDYLHvlxC4kNEN-4AxRt4eG- zoj|Zpe#i2@5L5c~$`tFl=1F|+Ztb)z8X8_yd@maGBmMu)rko~n#HR(%=kzJRnJ{Jq zhJr;?=e*Qr%oKx>{Gs&BCUu;B`(2`*ply#3XOyr@C>ZKuY0^`3Waoy7r>S`NLuaV) zkD>x1*#?FRWWFR(`4}OrYADJE!w$i1bymakGdaW!#i%CXMDs7NN~8k#=X9lIzA>@1 zpsZ(8v8o(Q$1AtBwf^y@)0H~`FT(o9nahb_!&Q_P=_C%=9+|YrG-27SRJ189;q0r- zthh&`0k_h(ng@5(@!{WMc~Xj!P6Ec3gk?7Cnj%=^8Yxk&`308@r2ocN76r@79F`{U z-!XSf>$nB?nvAamn<59;!GdD1KC=!T5asuGt(Xi~O-MAG3ye{Bx|T_$jl>OL%}auX z4ZnT7PXMI)-~Zw%R|+WgM9*2HRvj+ElqbR5a(SWjb;-+`N0TV|Q|JSZuT1R?b;=3g z|CJb==-8#Rh-ea!^10tS_^zH`H~i*S+J}gAnx@nA6rCICjkc&5>zOzE4JN2#?~7OLSFj>@b)Ed));mT>C{ z2&VyKzyh3wP|gHS3f8ucMO*>>aKVNoZL~+2$#nTN-gX1om$jXv z&-Ww~xT{BCr$L|K&zNRM$l$hhH%R=07VgDVJV%x^Ve5;6d#X|3M!~)Mz{+ zpUW8~Q5Ps77#&T`I>S|S>zMf_gBF+BjUL@<_{^-P3(IJ-#p*f*15MFsW-0bK zEwfexG9o2L(oPN>0_5`|2h;;qBz-=1Zdm!2U%SSAi_!rolT!1O`YK2SRuLV4)#B27 z!cwjO@tmct!>A^Dv^v?CT>478s6bh^eNJwE3h9|GBR2v6Wm?h3m87z7Oodcao^uB*B1EPJ76DcAJYS!Uu8S| z3|q>y)?C*ymMLoGiBn&C*Vo=$4(QXji}#+UCOwl$ztO87$hPgd*PlJ)53~D1C%K^g z*aPmKhwbbhXQm+u6WO6TN9uG2DiOTI|KDz0Y&IBHSqXg}3H?EStJ%;a!ZboJ#Cl6| z|1|(#H7lCL{~Uq=YHO86$C2j(8wDV$2n=FXROLN&u92^Tdsnux4WtXSe}8?*?XrW(e0sn)x$ zUB5J6`OZDUSl^Owf6zKUJ}7^Dx3{z(eoc#&CqKq1suKRT6rdWF zH)S2bpbEo7kpsZv)LCy<8lAzyI@`1tSahHGt=&sTrFvJfBLsC^d(F4V6qXff zeHqf?&oue@G`-t?1H6*;#+ZPQju}Cl*$qO0N$CB`6hgs;=@QfNM@*1_Lv^wVdFkj| zAghgLteK3C_;f1hErU=SX5Gx~jwyywqF`OO!JV3y(G%!r&6Wl6(F(qpS&1+R`@4{} z+6WE3<>5=xNMz-mqDuS5Xswulea3>~Xf8su7F z#%gvc{1?j>!}+SAiX9PzRjEWzI%gpAuB4-)Z%o-q7%!Ul)?hvRH=*^^j<6G-sT<%H zqmK=owzCfCB;hSi9p@HC?*aAHmHm(Nd6_dK&Z&6Yy#!q8}Da$)vVha^%Jua(mqy%mi9T*NwoqA%! zYFTk#b1yuAc%kFqM$jkbq;Al+WVbJveWI#VVvy1u`m~cQe7u}rJil|ln1%lmNyivI zh7iM^$J$C>CZdnflFD`?E6}vQ7Qc2Ye*0N7duIwn#~_q~VqbIk?!GXQp9DC~*Ev|^ z)UdLu8|(R5ZJbj;eG0fto$0QEraeBJL7{|8D1#u?{%_Xk9l2O6xNuKkNuOo&I=UW- zUO;^O?9~!3k1V=+16#5WxM3L01c!gB2*z# z6F@?ONKdNQW_6o-P*p5S0bwLet5`Bdm!v%jI*J(`FK0DWaF!z_Tx4!OntI@B7jGE& zzALdCULWmj7wR}Xvz>6Z6^t;l5CViAiII1cbt>K~XbO&1?T9tA^*%C~5`X>nQHfVQ z2w-t{4(UX7Mu`I8n@_u5<|L#vs;_AL$JT!&@hE!)QFS$!eT%<-rto-84*0sioa&-~ zE{;m^KKL}*A_Kl_jQh)iRQk3U#2Kg577fY0j3MU*%TeH(>`uT&{uUhct*+_sczsaR zf4{Cfp%&UdWYVsM_hEV3TrIw{%ds1iJY6OQ|JV2 z{)+EakYl8X&mW?4_Tgd8$qUDc8{yVZaWmEfp4ei%y6Lwe&(CsmQm zjm)w>KDTINS>kUwZQi)-!i)Q<|LXsDYT z3uW)iB40J6S6UZuGTYP7a~-kzZbvw4D>q0Huw)gXRC&CZAI;;FB%ERi4)QTGJScaQ z3>ef;cq;>@j6vupMjgO%Ya;%etORk`n|tVkK2%@mV`~B%^8n?^uHu3Z9_PM8(gM#nK7q3abIPz1+=>S29fw_yz5|G@X^SNcu72J_aa?pQ4u-S58&+?0{+Jj zr4gAN8y(S&D$+%-?YoLs}Oh_6!$n4??8Zz`^?OO@B(KALXEdXU5aB_X`%Rv{-u>T z{MMhzOxmlFqNam(kg}6D`8qX|$e6Xx^nxji?y?rfhhqpay@~Wpk=>9U@jkfH*RMhC z*S!U7)(qp(4%aS`x)Dw3{@ZtQx62ZjJ?=?`mZdM-C}wMx|> z*Tg03H{Fs+{(P~v&W@X8ui!d^*gNoeTj9SYOEUWe9WV#zXZSd`aRQ>m8_uZEKaf!< z`vzw~BD1ytpi)7_qn+&epI^9E)tfP!M+4zJ1C{I=W=^-)c-f_Ce5BWnuY{RF5RW9f zVz@OLM(d+xLm?#clsk-co#(dIXqQ+Iy6b}5fR+-gT|=Dl_8}&w`)Ku&^|?v@!??l| zZEUa`2{M1oKpMJO#*mzCUWGN-z04oNUj`3D#wTm?+84*sG)vJjZL&3v0#1`R2k+!l zb+$6)#m;pX;cCmii?giuaQBS35+T12J`7?HHvpSa(U3oOj*pTYZJWgEubIu$trP}7 zh&9=9EGAT6pldkno4qA)36UM*Rja7(9uaWjkHsSqGRWAehmL8VWODjkUK0e~drvdwKD5vZg1*7i(ggZtYxf^U?1JUXft8;V zt!dvut!oObtT1g)Qa?Uu^z3t~O}#yq>wS2RJg6d)^AzwfzY%|A2oo+jGhF3bL6im+ zu#Baci+ja~^bsF7=PK$3q3Xk^oAKP{ zdo=7F-cOufzDMpF=X!anU`uy$vC%%aG!4Q&5vDE^sSfX_JKmmc2#sLe;!~kHl8iIjHIqslZ)dUm-#1fsnFFy|wg#$Y;P2qyf35cczzCfO3+GZO)V0F~_FBMs(V{rtGcCJ*dP|T%NpScYx>hnd2ZF3~R2y@)O1Jf>RcEd=Xx@^s<3MQfz z>$b_ogJBx>5~_hEAb+<(Sb`c?7pKp3d42ki4dVywcs{Vc3f9-G@CsYa>ZESMm{{@< zReJGc__hcJ{neJm%SH&3-dE7n zi2mCR5#er)OP+~yJDS9`&|c_8#SGGi2mV0jZtq(IH6O_fr+xnWubyG^HzEkX->=^J z`zAXZpGjHwLZ*Yhz{n#!o-jKPL4fQOV}HlLW58N3Oy@AKC!sK#$a7DcucHOCFSglt zU7)^rRp{8i9c$R8&5!v94HUGZ8_Wx^n`-9*{XaCFLo^%DPC_Y)Y9hMqn&qDKbm#S| z``BOK4>N^$vfWf1B&YF(Gr4R-zVFy*Ae7|7VDIF%&F#QzM?-)162it?^TkBZn2m0zHLw3B zl40mx>7d>Pc?=O{wufM&F+6<*4s(2*M@Al&Td2OQq@K&nKvybpccKW`4IuL+ygnVV z9Agy$_F=nUa3cTAId!-=6zpbr^h$G_E_u;EP5zkQ-jbCL@|y37%8Ca9aZ4>|#Acd% zDY+7)9z3KdCqm~}{q9QEtM`XWDB$M@gwHpC6*_K(^U;oQJl#)PRU$*>5qUtj(Z$}( zIBQfaSC&3V)UkWc0RyF;L!!6dBa&rI&(jXS@VNLPoX{25`+rL6S z_xWwkT4Q{yDT_lg1;9$~9Y%X5*ncQEp?F0Lpm~Y0ciDv58s=&IOqqv7-&%zU+(oui zaF|F>VI=Kn_BpwCbg4E>S$7g6cEF6#;hKYsa4v@?4nm4wN@N=RGo1&OU7&U3c$PEoD=#z98HWW(SKmVjDje zKG6K}Ky%j^l)m^jJPj>{pUK80>D)#8yV(%>XSAdf268(j2+rIX$6bjcTL4u@kmpW^ z>)PGXOk5?s>j?sT)5HlG=($NyAMU^@Zr-%@^()QEG0-0}Dx-|lstQ?{3=UHspAq60 zsfL}d3ff-V7*jua-S~v$L_wle^0Zv^+h~T$OSpR1;ZN&TaJku%Y>8q)8F|O@i&AHXOkK)g`$IKCe?Tx)jrCTW5ILhV@)yGF1T6 z8AhIoG}*e9^^6i_1GjEt4VqAu70YCN+WuWi7|T33R!tOXV}h{@ALqPadklB@&!{#> z*@OCnRPc%x;&dh(CF-|h8a<%4w*!S88z^?BtjpmWf{cXI3lc35m{~gi9}uG3E>4e+ zG)fDDG#O@mO9Y2@bkr27qyStK@yi%M%>>QE+3GIx_P%qJ>X-1TH9Z1TBaJQu8Dt}}xx`4!L*NGg7(t9rU=m9Z|R zwB&@Z@;X4Jz$JC6HdU(zwFbVU#^(2MR3v)Xan403^R*XnH}{%Q3?wqBDf8H9;U~s4 z!w!SPoxsquLHiSZ`i61s70h~JM7){Jv2j--2nCz;IU+p!!&k@}4~j4=uv!_<^tVXJ z8^^(`{bJ7*EW73Kw{n(pjPIx&V8Gd zsW-#d(IZ6SmNmFZGSpVu;+@U;>>uQx;2GZ3EzeQ<_hg`Mk(>J8_tD0DUuj0DgIRX+ z74QPr?w(6cTcmr=tH+v#n!h_o$f7|EmkZOd;NIEoM&q!a)!!chhhYvGPkQ^0(UYUf zhHwi&-UQK(qd}x($nYEgF`!VK^l{iUmAeJi(%H2t!seo;q8(U*%Wqay#-SAtjuELB?@)A z8T7r1K$Vw=q^RS)oCU!4Q=CSoW7((CtshAVJ{%M^6UvYUok8!FCS#mh4}i5`?AZN&=%Y7DKiNAmOes6{5FR%&i0Mm0pjcfXF`Dqb zP=3OPpj|JebA{<+g_#%em2kt*Rj4`J(XTKlgN%Y|GNO@Cwz!a>@%#N4Tks@1UAW}sm}3^4;q#9axGnN&GaaXw<$ zZivWYfljzs_2~+40V6xZ*u6I^Z8qNw-kkPD*c=Avpo-XTH)ge>yLvi~5Hhdmx%)lx zacS8zTu)s;J0$C$XNG_J8I&N*Ql0s+f^F;y35J#I$vb8I_vIxYGQ?aeFcVgD*(FQ& zoYb~-o{12*7X~9|zr7Q>jR~;rOm>}RJqgt%F-vvPSPVq4#1Bu>B(|dGTr{Ia)^yK* zj7P^yu-&=($MN6_9Dl>CI!u=OHYXe>5pNb}QcaWEhY9JO`@bad21ECJzGo0u)VuwF z6y7_VW$W5kIPC>t7noiV7k-?AWUfs2dcJm9vcgc=ayf9X4DKZ2q$#Kt#x_IybDZ8v z4L$#1m885LwJfWj1IKig-SqC^UiYjvOCFgm6INczwoo*bPf2!sT;I$l~Rc%qVqS9 ze0*B%fQ@D9h~%n`ynzahcNb>eBV9KM2X;Gw{P1En(;(rV+AByu5(C6u>J<#IkVJ4z z&zUlm_I>p6b)GkY6yVH@*~Mb4cupAA)P{H@XJ#S&0l;hn;-Ab>W4#P^AwFY1|Ha+E zv}s=T=q*m<4=896X0A5>CS=S8Q)GA`3U+8(Omb6d<7C9hG*#;e<7j2N+k+2{)fwak zDg#{0kULz(z4yk65T7`D4IT8#KD7G{X@yW6ey5nU<^=Z$a6rJKzj!HfYzv1%>$m#M7J_^<&U-(K=TJ0wGS`yUnWMUizQ@C z3LA7($Zg72YWg{<-|OP>!okDg>m0yYkBb={Rn$}Qb+aC}dW=_SN;zg-{D79{C*#sD~KublN&w7*rwyAQYsA?`Pf=t8O@BcAL> zUsOdu9f{cdqXI}fe>E6z=@;8=iCzmjdUJPKJAhQ7u2yu<0_MRYDk5D$(tbT_R7DAP zxa{-B6B1u2tgw5oQpyuO=eJIg=ddC+7=DQMXUWZ}F{zRBU<6OZ#xrDP2AnvU1_M8}WmJ#-YKBUJ@`eX5~i zrZvDdR1zdO;C}Y~qyn250x6;e2^}*cP$S)MXVqA7q&(@M8{5wbe7@PxSGbhNT^|vx zU;hlnvRbF4HRX%|ftGwieWre!9YGBBPV~ev!_tP-?xN}gzfLs#iUX1v%S)YFIjAGj z40ql8G|u($@P)U=hV|)ldM3_vCmt4ZxMdc69tcpcO1N{IQAFI8D5`P}`l8wT;ijFBgVNadwdyGE z-_=arwZ}Jw+24udeirVyDJB`^43;hLRjYb2BI%bFF__Ew%j|QK4ijI|51Ofc`+DQq zH+(Bd&~4 zl6gr8`6zCVC(~C<3?t#x<3+9n(5G&RAOiX_f`A{Fps3;nEO%x_w3ncYt=WB7qiw|+ zqN|ow7=k(gBkcG%znLq@=Pl*^9?gDH72z236Fgt%F|jArwrUyIl~)RLl=$p)ufUC3 z`k%0wjx+ALJ0CGa8D{OqTparJxpWY$!8(yKr8y+{<3p}3bY}N*&3lfDSY(iBXrGP4 z@ms-0F*BMf3ba9){32Be%MRDnhbfSFla4-NOd@M>iTfIKTk@I3Ig5OkRYf1X}ZwI%~{Omb(#b z(!)Wo)Rr=t$pKO#C`Shd%z&$nnwSL366JCCY3V6wY1*wT9tU{}KNQ2z71=bcA(_(# zP3!-fa5?c}TV)sqQk%EJslSu}hg?Jtl$A!Le^ufOu#*_rgBdNX7FC_xE@m4h8(q8T zCleSvZ03D8qVs*$tl4aA0-tKmdb)cU@s*M-TtbUV@z}1fdC&M#F(DIOGyf-@wyiM3 zBGnkSeRT6td$yC`fKaHHNNzF4839~DOsJ;2(8dlmvr0dkuG!>Ff3)qMm_9d~1W_rD@uJ~hTc)l+8c z_~*$Bl^z!T>s2N(mpN`n7ZHrXoaNC86@%kSy69hTIRx#AO^OpB(_Q?lU+5r1AURBNFJRc$dij{iCXo7-E{{pi8FqkQ`1wlK8 zeC>U+Z9J07CuDWBnJqNBO`DtV7uug(*+jo;h`uGHkR@#t?HygQqgC!&oUJI|Zc6^Z zTMV>6!Zd1nNur5qVx|zBz9sNt74@|;)5v%KJFrALjZ^qKrog4M^gCo3-vhC^At;uT z%qjq2k<#HuBA50$Ulgyu;N)V^`GpW@d*+x}rXp|-^Tq%mmg};EXv7FLYHh0iv-`1k zTzyJA+VBc{(5HN&E43W1o-Oars!?b74)-RgnEl*?1oFZx7>(?LVwP^?eT|F?v6;2&oE0^!xZaB;$W`>jsON6!RJJE(EKU!%c9G#4iq%E1(KCW1 z`0-h4uWtb2n-0#nH-wlpN}`xwmB8qk0V0`{BAQ1UOZ~*uDu9USf21u;ayB&eE+D_bu|b*Oz~b{AePr2D+=Z zQJNT-(F*RD1;5Xef_{zKb7{Yz9PIkQL#66@@8d-7{hP*@Fx%Vuo!haDN;j5vl0O!+ zBQowAx=`ogaP4I=J=_i))&L`nZ*$tM&fm=%t#;S0e4Q8Qm`Y-_NMh4lr{RF3cD1(u zP{P7Tw9PqCiTee}u1i%1g>6FQo52f2>-kV-wJ#&b|3YDZm1ZlOYVz3=9z%3Ss<)+{ zCmdNuvDAZforJ=$22*Xs&vUsCit3r}*we<+{_c4uySGg!R-SB05|&4<9P~BH-vfpS zG%|saaDd`t>t;H3n%0Ns+rfV7ho|fPY5(-|(Y43YRnt5uVxIm1nTl1y4&J4RD2JY| zuF}!sACy#570C*F!G}bRMkO7(3~y?xjJXSq&~3$U?+;5Xm#0h& zHG;)*&pbEfaO_1$qua4CEgJ>C20-5`S`6%}cULiMfK1)1jvcr$MmblIe*gDtdcBv^ zTl;}a`=IeWl!?bNJ~bD|DxEyK5n#viST=3%`sn%ne!t7;bi&3GmU}oQUOVDSrI1Tf z+j3XjW!3ZfdGe!UIk6|U1z^V zLGNfylx-X!x+a&|0a4Zp%CmpGzGFrds(S5u_G8WoqZ%TXWrqK;$B3RL=F9)h9yC5t z$=Yp5#_=OtYPgGk7Tzh5CmO|!kp{EX=6=zGG|H4|;tF#lD;lb7|0$KO&M0tdxdyRd zeE17J1QkJcYArD?2P`D1s~)Q-b+pX!wyH$$w#YTI!=iTT+)}mlqDiuK? zF`O2DF5hP2A-S0%5#o_P7;-*WE^h-iIjq8NUAJq%r}2XsOj7YfSjoJ5l6BeZis&J> z|AFhD^?$hGhmR8v`}@*GbLmp&%5azc718v4F*}v(>cr-6!3o*>_J(wal}n~Vuv?hr z7<%Bt`hhm(xJYyEMGCR8Ya|$6Ej;d#=Q6SPd0ih9w(3e{R4_ zzs(`l2{O4$eB^U7X>*b6+4=2p<$+6!)fhH#`k=x>euJWQm zwqK@?3BhOfo*Oe;{zd)Sg4Y>>TrU6$KhfGPs?0_E<774CGJt~G^XbAhVS@%L$*gLr zt2Lsmb13tM3Nt|!ro#d59YTrvJlZkpaQw+|s*6H?nWYN(8Hp}?w$SN zb$6QMMgx=*LQW%}O0;#)rmbJTkXCsO!}7DFWUaG^2TjD~s2@B_Ky&3GvZ1uk7Acrl z1vA*`RQ(lV0F?>iG3^!>NK_K!v+rC9SLZS9?8xL@tj|vZtgv2Dk~W&Of!&dawpsZba_g~2LCE3+&M=t`tEQJuG93(VF~|xmZ%Fe9eh{u9xFW=rC$al8XMoB)rX33%E1z zD>&%?&_Fw`ks4xF0}}eWa9~Ec(#~q}q2OVW7=gF3j%+ZZ3@vxGJPXN(ovA@V3q4T> zs1fJMgn4%c*+*R#ANqK8bR)~klwRub^h!6oOZUGid#03BfPr@I?$5RltOEuBDU^Ct}FrouTXmtdymik7sc){>5p$2PZelu#I5VOh45U1N{vvSaBG?)J$q zO@ln(Xd~_lp_AdK7OADl1TS2bXg??x#+&+u%*` z@FZGN9SNFj-(ze(`g!!JW3w;`P+dFF3s&YurO)8#!&|r6I0&40vB#1-QzuAr5EfDb zfUQyuukEv}+%dkpgluEbgW7Br{pD$}OMC4DZ{^`N>J(EWH9BA&NJj+6 zwJU?I0YSpje9jTP2K#TdA!4>+huQ#XUEpmdA0mwl$A_mnR(!)>wGFABW ziahHaln9$y$5lKKB7*C2{3!(79z))pe+yAT;NpoC)lLI=dYR-=WWXV} z3z`FyFh_2nc*8dC!0wiUAnL6xK@niYrGPHJ`HZO3vj@|;VBwkt2P9q~AJ_K1=bY-s zy`qo5QvkCxd^Phz;ek2EON1l1m#8qw#t~Ag`f5m)C5gmRnRGN|A&=?c^)4|spxz)y zZ^3Z37RXq8j9OxZrL|!voP!fB0VzC@IS0qmruT>ck6Jw$$@bKAKGU!?&G$?e`+zVC z2u1uuZ9-}6kI8TUO;7jDdts^G=Chji?m!(zMI;!EKPp;RoixHZgq|g+R03g^KakRk zJS|87q5XMSp9B!aX<~}(wn7p{Gv)-;RZ8X`6Q5(pZd;8qN$EbpB7I^iI8x1|)6A>; zyUZG|b}jrgzEmA}EYswZKFsaMX_1HW_cF;dG&v%R}Q&c}XLRNaKC9ZAJdUM*Ca)mUPrU0@x zXKQ}5TqS}lrBtA)vlogE6#B!O83jr)8YwSN?kS+s?W}{lGF$ROpsj%uE3s9E;61hZ z2$JsKw7%rP9D5Dez7x-XLRo2pp0o^9bjcCM6NLJpjKUDuzo^C0jghCLE(q2rx++2c z4gK`~nB3SE5)PYpeHD-J<&$ScB9p$ihKS7z_1|&#bZvbZR{aN$^GHfV4+}c)s4l{) z9d<1OU$tra*_I ztD=;&YRckx^g4WH$4)tdy%D)oknb6x9p| z^YwLa;0@JcE8~P_(c{OLq$1j-VMULZ1tRP;4zv#fQ)6)NJpTp+9nvr`2^d z(YGuNK)dI@+}Z)Bkkbg>8|61op6)jM8jID?t*!!tjz-Hs5Pk*vjLVd+fW~B2W(#s^ zr_h>kP}bZ+=QUGEdzJt|UgnO4-fo|;{v`uL5`o1h;)qE4 zR;U5Yb0;Ccf5Y=}AkTH8TBi3Tx4C&8zwN5gxvhlS0}U3m7$m{2^#V{?|9{Yol13hH zM}x%OOO1c&j1st#A&TbURU(BHm9(>-LaA{*?4uz&d&;5sE=^UA&mi#d`*Pt?$ zAWD=HpW!?ct}q3QW_z6zCQG?;A16&|E4Z9jk?(QI8u8L zmq<#p^tl|oAiXEfDk!W10O6A+v4ayfK6&l+=fl1KF=15||H5j${s(}~VR zC$et`(B;m6^>m^vbr613$u~h%fAh*D)N)a3*vuGAP zf535g*CfQXnctpE3JxD(+e!+ej!yZ^TS*Gm_%n3TK(^69uDObjBB@VmneKNuvmV)8 zHgQU_ODcRJ%F`JA9Y!FfB_TesQ!XoB{x`HbiigEi69QJVZGKQPR27UiR@&z*an%t! z)tMb<_S4la_c8Uh?!@wujy;Z1Z}l~<9NPobbH8kvL39l2F0Gr}L*EEqeM7U^4%tZP z9&FP;S#>ri{;Gvr4>MA`ji)kxvy7#J&$0peKfLy2)h45VC}E+(daxp zcc!g$Y-6iYk7%jTAJf|c2qQsyi$k^>2y%`Tg@d^g*E9xc(CJ^is$o@;sL2%hyrZr+ zV*KDCoERQf|5QeWS}hDnh#+W@@{H|h#nDSscWncAVt_&`dIHdP--i8EqK(!Dtbbj8^fARw9(d6w{h*5&DJqg zxAT2xO8|8YhTM5}N^n!ZEI2M+9FMbNrN8$OeY7xJRoMZtfhhMNvX&iZ6^#i!<>ZeF zdpzb`n61FBw?P?8*?^r80L3nzs;&}pIrCQ)%@mCf`?!aQIa%Z|2B$)!Jo6GBFBBZF zkN4#*bq-e(bUN_htqlHwZ0|z${9@Q8P(1WhDR~BRPkXYan~Rf_q(Jh6tlfE-&d?xw zv{@XTn|(-35NeT_!d(Ic#s7{O(-$*ry6La~pVTN06-FB2JPlRlCRZBlXhfLvVj0BH zXaz6kbmC=JRBZYs>ZJgU_K^9_f*P^{nc}v5plwz&5f?F$G$v@8(vLQ{8|}!5t!Q|t z)0C-jA}6*4wqI>V@P&rf1k3dEeQeytuGCzdjS0=FDSXU&izQ2WUY4#_CN{Q4R(6#H z?|5}+{f^BkkpA#$ClC2R)Ngc-4CHAj*5o@bQQOj_#;GC|jKrbP+hHa5ufmg+bAL?= zQ+ur0mWXq5L%Tsewkd)jD3n^}H*5E}uN^R(!}#pyaw6ZOJ=uqzVH$+uVd3wf!--rz z_(*1)-L%C^d0PE-0x?FeC?8phSE}8kN&^?%qcHn6j4%Wh`1C^ z=KMfd1!62nyGi^-_F56X=s~BQ;ODiB>O5Ahv>|trHhVOE1ScMT>YQX<*2f6?GWNB%#=XYJ} znpz_PT?FPga)e;j>dx)+f<4RVgrQx2)Eg)6mnPs^uC+c8|q zgN8=Pr=zQDQ8!O-^j!Eb5(~bCk{$WmKJ6LLp;eCLde*PqUyQU;t-H>xZ{##%M@ zO*oPIJbuxrN@qQM1x*{YMK*vX-`2F}b$tkNXQ_Pe6>lom?qS9iI$B8{u+@b75y>t5 zZv4C^8y|Anz5BmuJhnM!F&Bqefk$wH?xA=B#dIf+#G=bW6S`;P(#zyu@q_UPx<_jB z$(sotsf>otsRPOz-l*%2mb4}0#*-L&>oCTKQa=PO_KZ6-p_i_ zr3ohTy0?0_=iYG&A?3~$0n;|Zacp6%h3Eoj;-(%Oq`4D`A`;WDp z!jRtWH4)i4oe`oI5g=w18wR(N9LCS^c~=xM^bQ`0()V;y)f-iYtMM&k*4`GeUrwfnE_^IrKVE zq&^qu$KDznQjDE2AAh+>nV@YW_h&~+XHwZcH~6WYSrvj6?DrQ+y*Pa+H&A8yWh4TQ-M;$HR*pSBVf|)ziPv1XJf`3f1Cjb_X2Lw0rq)UXo2!_Wu6>Za|U0 zm+!gOVpgQ~!h1P&J95*e?aCc%czoiNQrws6fcj3i^4Bq=5F`O&BEVK~m8AeMkTnJX zbjE>1256=zJcq?3hPJuk)W^k>g5m6VR!AHj>)*Eqg6ym@u(`Q8R07M)0n=webVMc=i4*ymybgobm7MHKz7BPrI-fF zL#prqNhEbf|CQKWF3fE;2{cb4--Ff(MM)1RZ+-w6Gcwu zvR_e$wAv_=YO(MsXbwZhVm|VGJ-BL%tSTehqe@3p^lEcu=7B~IuWyjhW+AtW>%vbr zjAanFG+LJlw26w^OO{!Er0M2|Y;sprQx>h-1QMMa5$nhWi|0%nmT4@Bvvv&O%e|jV zi*Q0QyLG2glT|0?4Z@VeT+y(uMad8d<&K;np1KjpLYDL;U8MrP${>`k7a;8spWz~? z>jj9Nz|H6^d}MQ|sUkP1+^J3icKLLA0)KxWOK?eZ=y?P|ov)?dw6Xb|O8v6iMWk&x ziAI|kfxGSy&@-thbl(oqH4OGeaxwL~jCI)A+A-8$kd2;PGj8qk3j16W)z&uO+U8r^ zd~2I;ZS$>dUe3kVHm??ooo!yAsch}?tzBNk#nvvj6U5doe+_oI+ViefC3#{mItJH~ z0Uc>(xduW9!q#pz*sU2^^=-Rulwu*XQZkFBYbBw)PG6q!HDfac^hz@0ODi@S*z9#L zdt?4fulhlmMVD?g_u|+XO}3f!KLl)@K!TCUDWu)bFmw=SWBABF-oJz7d|6-V@=v1l z9G*{bJl!ZPgTpB$^50Y^Zv3{(gM1mW(ah!B-M_M*myi_t^xLQoQo?r&#X-V&5JT%5 zTo$BI0Nbh{&1LuMi-MGM{^Dwa{1&rbbBcl?|FzBIc=v#IM{jLfvNA1;>rw;n*sdi&I2EH{vW{Cl;SI7@dx z_2CET6&%Jh^Bk%~pDCur29fDy=tMmOoF;SQHv?*F!}99|GPURawSt%0OW?NwSZXDY zElBAWq_nE_zClW@ChiuPwB^Bm9$-?dvEG7_zGyJg)*Q69x;D9I+g?zHNDCu`6z7Bm(G~^A`QC{50>t?b>hXL&)ag1Y)3ng1}Yqh%A>FslE+m zNI$&|W!Q!?lnP+$YHlvOSMPOxWuXlHmve)2Yd{CCc6@DMH8+eBggS1cCks8b-WiTi z?zk;L={0t<&joVBH70*TNBPY@d=6r2H5Bo;7`Q@H%@D0(`eGZR(ocwrg-*^lf>Qzh zdvY;)S-LqC^9xseo;~rA_)1~PkC*{O{VG`F!6ZQc1;}&A*o9IlVC1|A77u<0i^mJ% zC0_-UJswWkjo!$ONKsoM;~qsHy!B$p5@I7miu7j7Ujf2kz}oIM474HA1~VnF1g zUT-5ggJ6nwv^Vs>|9JCH+n*QogQa};Nh29PIdi{*K0bW>@ZsCv|DJvL@ZsYhK7G{x z{qW(NgWrGn_7Cjir;q%pKYa5IJooXNKYaS|PwYbnwB&wPP%`|VJ^+m$%bu(H{sa9m z`ERR4cK7p^9fymj$h(^@*>@4wbhuu)$IgQBkR9=T;|jh2d;!<#p6-?IP3ZA9GvfAGUwu30JPK@8uD4^P7J zJrueo%QE!@c^~$q`@vb#nUHrlWMAIn8pPONp&~xPebEiZTtV7Xz%-QB&J{0w|Bgt( zH2@tSuOd_#od?JB@w~Y!CH9a$xe{))J^J%9G1O5j<+feKKSr2*-V2Ec8xhS9Q>_>U zBt3Nn@9JHqUzaZmyPfhpnG<7aZLoLqEs9fMq>(Kfl@@O5J5Zc2xiok`AUvuqwj00C zx2#Koot$1?ogN=upPn4zfRywOdZFt~@(to1HeB#$xC%LuR3du$?$vvyzSvEw#@{%r z!TtymTkn{mek zJt64|0C@tMemCXazGI|X!fYX;4*4OQnkC|h=ER>4?}qeSb}Agw$BYfw{7JsZl|K6V zg3kneKsK$v$^P;S|JX1VqTe|G5${P|VruJI^bm`$4pCdk&kXVP5XE>F;NR{UIz(VQ z3Lm+taqlfKH=C9OmmE}XK=EUvhF23K0A~tyF2_Eh`#790cssY`>~bc~LI?cUfik#l z!atfTw#NFKinsFizVMAHo_W)ycpU!;<%fqtvC4@k)zwfvKg8xU0e zW2qDJebNt~us}OpusHX)HO>`hnDxySN=3Ccs|ODUY;=5l$UmC%nVbZg?P*b0xCc(P z-+h-TlfsnSu@^D9h~z$Vb`lTSWf;dE*_^br_zDjBf)RLp*ebV2;3V(74`2rgiz4p$GWN zruA$S2Ko`}pk^29J;_0;kxVD_rU2a$|45Xk5GJ}+6ucXAgp?5=((irlEI+u>m-~zUZ5{fxvx#= z8#&`s&mYRChJHA9e63k5_H}}jgB^kP2d4nlWEC?7LyhPG11L#L<0Cj|tO89roZQ#!8q)U^RRFC^#)ICA|58ceP| zon3-h`G+{W_3m@y1D^uSi@$=7u4nwES?EvL_gu|~{dlQ9f%93Ct8oyim*vtoGkNwl^?f@EXINg9aS zvw@f-634)MqPxMnq;L&b?7QxwtWPJp;|n_?l)~D*!P~Mck8gSb*Amiaw=!GK@-{I( z`5on_BoCq@4BtfV^pHV`pZIWpf3~_EPSE-TG3`exuZ285OXn`$*Cr}9GE{crUxc1< z$WoymzhrtfS){Th8C;QSD;+$6q!`+iuaaQ6!Y>--L}wp{k9NKJe6_?m32bp8yZQy! z`y6p1@FCMwXW*n8Iu)VQNO90IqZrE0ZKZU#F&S+BwhrkN5f7 z8oQ8vl`OJ-x+vd&yNKKY2!LB6^pRX_iI@+W9(h4s8tRfuZwQ=+Sz~ypj9VOlIX_xq z|KfYc3fqtXiDLRF#c*iH;L?fjkvlRD28(bqP`vH~C&b)f5qS@ge*j1c~b+@Fn`m$>;(dq>j#Jt>Sku3+%J3N|S@rL;j_My|UL>P&k7 zdYfuFW8OH?c;xa6=0v)SP zj#hl|gQfT?!*Oa3G-F!?I}Ug+19Zto1L?>Zgu!6yMe%aLtzV>=(~>^V(dm^r#g%u= zNs*pAj74HcrZI_fC|gT6!uWsk2{cc)t(rxA`_Gd@WT*Eb3DP{WcU&4&C-(Jo*9 zO#Y5nvvdI+0n(xSppZ+`%;_x1kdsy5bFEuYo$f0`yC(2Ln#?S4eO^9;X;O^hi8SGY z6C3lCqZFp0o=l`dVlM zWqiUx`xSA7l_c?9^%or9@Cocae3{Ij2JqKT@^xw-n?K1vQcoyp?u0?=3pttiH~;#- z92v+gzT}e&zWD$CCH)HDSp#%U?fkR&hA1Y@p-@_4*<5I`2=vjOw4Kl+6GND!w!&ew zKy=v0knznzs9$quIi4xepoT`2XuD$8b9S84Nd7`6!!Ocfn$}lnXLKeLRO7kS!+_pZq#b?vzL3X-yzv{mZ=D6)wPOD00QN%I9`GZ~D19Qm zoSldmo~x7ZnD+J_cB6g3PjE;_eNrJWpf)%UZhBDVd2%d0h=r%L8aLV|pTbonBW}~9 zuBto3F&^ONfG)30M{0KEbYDV-DARr4&?9N(j6UNEAsi|fm<$g*WShn4xM1w+KDu4^ zE0>%H+cXq4Ph#q{GS)gZ%GH9M9kP!mLO?A6xBrhGT=P8<<~K@L(FVS<8GQ}Z@HGeC zNb)|1kLY8)<)?_QJ)C|8#o1ee)uo4eO+D8~2hIm!M05HnikgifE|Gk-=x0H3CxsY^KpY&F`+yR8Y8S|8J%SYBHanIFJ$Y#} z8m9ab=7CsLoYFjTsuhLX9Kva{bom%4{~XsZA{X`sE=tz{+-G#Jy7L8>DeaP_s)XQG zDhY3?VK7y~>45BOZ#8Pr}T_{|M}<9k0;;he;s}PY#uZ6{N@y(d+W~7Az088?R=u5aFBelPehx(>y| zYY|S~#ibf?zCVLbENJ6a%js8ld_0HQsc$pMq~vBOH*UNT1N|Y&3Rin(6)8(BX|GTm zaO?2B@7$%zq@>YIr#njb|*1=SKBEp?0&4PT}f{EjErREt0@zm6ZNnxgg6Lgg6y#{P>kmr6IpTv-F{AO*P`F_ z9$u&8RCDD$U!|9!=sL4F>-3#&FzGzIx@C5(DUsGr`O`1x6aR*|KLERbvBFDhk%g-% zhUR&n%HL+2nQ@&ZR%Kk9z9`GMCJ~%deN$!Fm){l7_;ilWrJ z|EkCsE*JjW&mTV}J3>mzT3&bYfaHdv^Tg{n*((y9jiOOy$x1@h2Yd-ER($J9{-!?p zj`Q*0+>;*@&DpoU$-f0Qy?9L*UD1Mu1P%(%kA2M=gDCXT=ySc;Z;Xi~Pu%X#&U^l8 zK1b!9$h#KhP9>c{25t3%7CqfT5_K6)@?el{*nH9(h#&Db_aS~k#4e=28SvpBIPkjB z*@UN#9#WrCU?#a8jlW{R)3a<`c;f_a|+VlpbVMPb4+V9Ty?f@7eCbf1Q> z5}rc5!X)4j3b=8<>SbZg$QaHY;IiEORHhJQ!7VA#`GEm7{9mU`XUVZ%{{6~MG z0P($GElK&{?X>X31+l_F)TSL=6JJiDuVOs09QE(H#A!%oH9 zwYn{WJ7#Bmyr4*+NUs7Yefm<1o#WFJvLY7pb>q%a%&`&eIIT(4f+MaugLSyvA)qwW z7kj#qTK($~u0z0Yt>3!|1vcjnw%lOT3tHiYB&8t}*z;t9XFn7ZP;0hmdg-n@^E^n= zrb}7oK*ER}vNUKhex-{=J`AD(6feNBHQrL(dt6h6%oNwdo3s-Zqrb{tq8iG4x(G5QnR3H_Qb*K|ybgYhNE(B^sc$snJ zV~WTUYHf?pjdvEH3e`E(oXOk^JgjaZGKjQuZq7yG@e_BT`ivD1De{W0LMY*Cw1i-@ zyC+(XS&B6Q!QC@HiPJzdh$#W)_C#LS&-iKUqxDu4{}4oZ$*oM93>CX2Ke#61NeQ8( zZ(t5C?{tFq*q7kMg}ZsStM$uO{wtRP%wb;23Hx5O_(oeLdG^!d=R*rl0p*+fQI)b6 zA2={ySm3&oScQf{7|yLb1^e{gqr5qcap&929-FM9B#};vBhwAl6*F8Sdm(OFkU)-e z+N{Rso>O{d_KTuf2MM@{b0==MkH#4Kavk2gfr#T2-!SnNXCA)es*Kdl`2UnOW6D<& zy+aPyk?%RN8yh(!a6E^epayK_tGx0b@b3k97GJ!R0iPNXpPGYZh-#_391oy_cmQ|G z`0GIQrIxNnVbS$2Z%QPv5{Q*n54-t}qj&*_)`RCh?h8hUR*{alPkkwB6)8p5H-Dfg z53?6~wainU=xnB^X^WpZk;@N2@Sa|%YV0HUlrK#%4}GjXj&9$iT)WI5g!rf=7FA0} zTlY{Xv~+;7fgot02ujWb6F((O1*9~kyg1?eyX4!EBR&$2y&*eGyl^*iiHm1$gd5J3 z;}K4ml-FOV z9?$ajMlquz?Ce-m2)PAFAnw01TLiic)a8SOeR3_+1*^AHY;CW>yoS@(wCv{ zMncoL)_(7LD!^&H#9>b;P=sql6;0k{xCs65?rF3DZU2}*$yGewWX$LjrhinxOmkim z!wX~r|1*#T4PxvcG!EInxG_u+uL_CR^Ix5>qkH#J#k%8uDBi>Lvq0vz;#V+le-2_U zw0Mf~mWS*lya<;gVd5sDE$X^J(32n*7Ycy-DSj;wXx+JNFb8;dIFZG7IngO{4%so; z`rktesbo+4x*$+Jh{>mp>>O9d%=g9>k)kGm@J#0dUxP^~Z@ASC&w2g*PWD04ya(c% zk^c+#X_}Zse+Aou?@itD)7W=^48!}RVoaeE5S*|UqK#w?q|w_& z^u^x99b;tnWTN*hKG!WRkt9|k6D=fLwws%kkenpa{R8Rk!1+l?4chmauP!yj19fR8 z9$3h5Vexm;9ek7S2feF$oH5@w55D=mGU_DZ1pumA7>Y-sY7mmtl6U*J5VYaMGq~j+xMTRo9nV6x164N=Dczs!y!%DUJVUCI z{H2yMrzM%y+++#JF-hlJ4#YA~+!skd1tyO6L=I#?BeE#CP+WfJFhu#mrPp6JP9!$t1~Qa>n5ZsaZ%fVlv|2j9)# zT?#j`=~y*p*Z0C%&M-L-e}UyhjVgs4y_SH(v@{JsvP5K8WGeie%VJ6bd(sdzsqq0K z4%z<1SvnSCTisqt>iO>zFG3CbN&2w_BUtwf{Id1Q_X0L?AM`YubiOwcU^&S2@afk@ z1kGdq4e6${^{e)8_#62U(6;?5UDl>Hzs9g@`xPZhItlTKzmDGSq>On zmHavKmhP8eY_Xr=PGT5S{&98-Ib{F#gJ;2u?kv|5>L>u!$+*u!oR@z(PO+8qY*+Ls zEc$$BnyGK-$JgEdRbrAZ1g#TaL2wdyK)xHP9gv15&HcnPgzt&lhvZXCbw6bDrvd*r zH3(^kK?TXMV~!{iR|NlZ!WewYDBe(SI(gWxah1Xj=P6!+J4rSi^h3*3B3ns7D}`_+ z%#K^Wb4}9wtV%d9)&x>#H67wQIf;Fls30`0@#`xWKHx*x2s6y$UN`BLw&*eR%B?)n ztx3tXAynx>$JB8QzDn?+&B8|zIbqdJ@Wyu{Z&G1CDjN=sovOG1D^lPPAB`QLMr;_0 zJwCKE=K(Tx@uVlTPXxFkgaC!sp~XjFNb_VhcFhr+wiKNR-it}Xcz1w#_9RTJffOOa zoU&TdePKpfBB(>YGs9u5J{Ht!pTErq(+jUeRvQPqiM}b&pT)NYArYd{WfDk$|Bz2# z_-@WF%UcFR4=>?F25KSYkdG=%o| z3G4|y(-wWm$doxBe0`6U^hCXd@j$n+#);S^Q5_L<$oty=`3)2c8GLi_hj0JzA3EcT zg{-tIge)rtT}R+$A7@b}Gvby{^UWC_Pa>JEL?YsaP^B5*5+&TXByI@Lkbx>=1iSFy z*6{(rBtqmyq(lJPjrkJimM5Kb121)s8u?NazfvZVgTfS{3plILIQzPQA=wQe=K{_+ zgo##=$2Y>!aYK&5_ZfmjqXyWc3;`0%*KSZ0^ly4l*seNeb*T1_!-E4*jqgy@QK~%J z`!?tHK#(Kw5cYLp7#Xx2ow3}z3I!sXVQPEBf7E-`ivp(IcVgC+^z)fN#^iHJZ!PT% zQby@TkWy|_WY%Mg482l@##BXRnmSA1@Vxn~HFU#vL*aep7L*^ZCQQP&v^t%{RtY>* z$)dt2Gl_%r;wwlZC_Ze`;t>fwvX8a4Jryj20vs&J^ArI-r~Ak^n*Fyj;b$P4fiwVJ z7V>UGvr5zjb`hhgEA5XThV>CQzMxI1ua>>T5ndv>YT*4b415P|t1Wo79-fV0S>j6RX`mw>!Sgfk>O`7wB6 zF2hN?+r@(yEmt%L@Smf*u6|;+Mn^m>kenG z#BAfoNAd>OJ|GH_62z5+P-Put0}lEBl=cN|5P|6++w>)9#-tL@lv`Hfp`nPRCP;E& zRbnoHlkGCW(h}Z~lmdbum0dz)`bAhm9iNa8FjGBJUAm#R8UiIziXtc=5CW^l^dNJ6Kp*(i;rmH=hq_FDM4X}!=1;pp+z^(>8|Ak^e@ zxhaTF_TO@0qHQ7Ezu5;MMp~S}@RYOg1gv&yZ?=m1wh&xxFKfEP^78`j0{P-Q@#1KO z3LN`xHMw(5>&8;t(JIi@8(sX9Tcg)!aw``XUHt89O8n#t@n9nPd zDPy2!857G|_hL(q%X7&j!Q$WJBD`585`{A>+t=SzSP8k-e=F#*lH>HuDG7yBg6#r8 zR#LMDf~<+YSBW8;j9h;pva-(}P-JCS8wn#TiCZ5>R!&!S6qX>#Dv_)UC7bGWQ@~_X z+^vr$YuX2T!IL%d(F&lffulE-kg_If+QF2qCZ_;ZRwD^rR_8)r6PL}Xg-Ab~(88eO z+b~>0d^*-owrLR4Qcp82;fHX`AX~$lCpOLD&DUk>8ZLhmrS+moL~Ew--WFa_8twvv zRue$n{9)Y)kk>q9>DGQjki1fyjWBsl`%787Ey3~{+is4_Yiw>EU|wT`>mu_S8|?;~ zw;W3HqY+9{e7Y|3>A``K>4xCE7W19v@uUE%Z=w7(8eZ$XpmA@vqCx;|8ILBp>ft5@k#J%jb8`|TC2H{EsraJ_1sZwz2> zGW%ZwVsDOG1=(x-=7nPR=6TtI_LhV8N{MYzd)ojnRldC%u)S($vjFZbX}<;J-jdc^ zfbK18y*YMowM5dOle)CG@V(uw0M%sub)b8KtX4x|U+qHpR(4l_;cLZM0gA6(pJnsB zy3;(6uU)T3B;OkSny`E;doBd?t+mRFTB#|8PSJfWW_Ja=uiaRb0Q^>xP=WAkN5B^2 zw*`z}<>sshl$%mM>Kq^)LFGy|O0jYk(N<`=1x;?@atq*crMxx+FE_a@F9giZD9~#_ z=4#61IeG&?ctV#peTK=@@EL<00eIt9iwJxPr|fsXJ3l(R`1Sb9#Wnx;^y=4(qw~|> z{jLe2|SR>a8 zI=DNM8-NF^bFXXk;KnCqp{dmtey~1%H35Xxf`5@1x#bALscGF1LilCNry4_ebHRh9 z@eL=di^p;HLqY~KYK!s*lhnNfrbH(Y=b zF5Pw{j&SkVtqUZqw_J@R+>%&Z!xEO%TY(98GAA0t2`8jC#S_-~*&+%bmmmtOQ2$Cu zVF~8bKvnG(R9NHa*a}s+f5whC16MeSlPU)mmI6`=cbCY*sYvNop@sEL!4_QDKuzoD z!g<$jEqq~RwlxPBHc94HLkvrqt%ose6x*vu8Eyq+`0{x`hLuKHA7wZl9oZ7ju!){7 zfQC)|bdNM#)_YT|VZ%L`?5-oUVWaHUfE%{upfTWZ3Bes84i~edlUaZ{Y$SCHI@~7c zut~%{p$-@AI%~iV8@cHgci7Zr+rYy{No_dtu!-jOpofhob@$lAB?`hT0w2zC`Hbkp zwP@)Fez-PCuL*xRi3q8SK&%W=BLs1--FhIz*~X1HzU^- z`wBGRoX}q>9&lDH6?nWkvAlLfUc9N3yj+yFm8oRkJm)Tt!RFupmEi0c30TA z`Ea^7*66rLt7RwyZpS%@&o>l!Djq1(_q9jzXai({X^*IpHu}g-IH;z6Fw|MFErC3h z9He;g@;`YguZM0jsuyC-Y1 zpjXvK$=R0g^PEz2)7^>>>-BstQfQ@XWPLE^%*yW%jk%!X7YD~&z{eJkxe|}LNOG?h zkXiY`+CgO2o9i5sIn`O;n9N0--lRhop97US70}WgmbomJrU;l>9XM+$_>HicN8mMu zT>EsalIGmxZM})bQ)zT&`DqFpG2gP@9n2mP?{#*5`Q_^R=;Hd2F4W} zpf7F2Ai4%MBNm`az))Q!Znp*98R8sNqlN7%8qo)%Mk}jz@ov5&G!X-PcxTQYz$tCq zZ~&-;Z!`C9gm@*90wy6XRSJ>sLU-}LS-#lCFmmraZnr+Mzli<)kX@bra5lQW`cF*z z`lXOK`DS_RASS%s*4w}QGCI5dB6`S>T-Kp%OmvB9l9?Vk!-WmNce~zvzFN|B0E}4J z0yNN=_hsBnJZ@Ak3!4{Tdvx9K2!LEO=it+~hmJGkKkU+X9X^-&`f+J;s`ao(Zk(ln z!j{-WWS2O1Wi%~RP*EXW@Q4XE!_X3;m&WBy#q?0Aq}G({Wkb0=eHM%N95=qGV^2?sxUVS5t4__dKwg6H5-Xd*U3g@)wc1q05XbkL4WuF zgyc>JhOiec0PJjf5iT)wUMVG}lfmISKf(d?LsF3|MoH64X=*KX4x0J!v{99Ny0HX(efebvs6k(I`sT4xe)&m5HF-R&8+(*?gpeiSD z=YWjh>*UP^z_dmv27Ca8st_RW@@~aN6f9kVMCajkHM9fZYjiaw-@AQMoKS`iaP9z6 zu!jI8Zo)U-`2-<`f(WMQW)oSP@~vVOxk+?}!*(X&V{imv<>!zSFY@Pi=%$GI5Vypa z1%Dpy*+O>k;ll?t0}95qbUEU7KANqT(C?oeZ~46(2xSu+s+Fkyh#$G07V@n|5sesX zlpp_r3Ode(80%^)HThogQ%IYRl&>1#D}qLvt^{C1FtcowumZ|Nh&R3=k8wgd38iqo zj6n?ib#ud#d)buUB)7c){*Kzjsf1}7;tk2Mk+ehhE!=p&VJy?ZA^Z4m;u`}s@FzbM z{n1k}jGIrgD6}L!c>e|&UMwxLht8S49rJVv0rb*gM0SF@_ ztyF+8u=J*~0)&yAc1l20(^F6aLZ_*n8W2S-HZ1~C)ZPYEfzbDBy$po>+@=zQdF0X! z5|PR?#SUI~H3%ivM&%$(yG?1sE!BfCH{QG;gt@(SDngiBT(=~Ixz*QR6GCy_uqcGh zEbXQ$L_zawl!Yj0ajm)#1#PZf7^0xvO{xsh(uDoC$ee9h8^UJBc2yjrsDpK?Llm{S zUU`V3R@bi&QPlElED%vJcl)jok?FYC5)qlcd#e$lr)X#LKKe@0PR!o=Iofe*m#WCo zX1k|fVg3?scsk0wEF8^9;5KQs)udIUjC;yjHIHwdwAGIvKAdM0SIr!Co4IQ2v+dMX zv$!@qchyLAd&#TD=DWakD4eUE0Xw{X3Hhygu{>jfYdvE6$#AVt(`!m`&0UtW=PrPy zsrN6T0#=?}RRYWW)eEhGWngAo1gpFVR&v|>f~sI8p8Aa}1eCvNu&xA@j~}S21XSHw zyQP4t`zxpgWW`!REg;KI4aIanP1S%by6&_DPj&xx<%sOWU{#dJ zW~Nt^1+t^2q%2T14Hb2P>?qjQ1!|!#kal}ej+Ywe#-vNY)O27$tB9%DxRFw*R1+Po zW2NS&yB$_)zJUUG8+H*wj*S3$UpR3rgOyRkCG8AjF4b|bCvm7;@KxZG8{W-_*$O<6 z7*aO4h2t%`T!iCx;s&4)7a;5;x2;Bqog8oVAa-)C8!>itXq{A`fn95AZB#d?Pd~*% zDT0qFOrn$~J76FCRup&XhBAz74ls~-{JSUSyUv4fZ15Mw^uP6;;C>H2ds1)&NmAIto-ZvTw;j6}YCK>*}#}<@v0^PX~1`B_xK>Qd8t`LCZe_Z{obq@P%^2Q6FC@-wjG!WM+sPu=H`mdH2Mmr1){J$f5T^Jhtl^ zZn`A&;jJ^4*}YJJPK5J|tDh|7p-zj`%&O=w0!YfqYU2TtN?D`3zqp*KSBH>PDiSk9 zQpLD$A(E0DJX^ZZ&qiiCQH8wkXursv?L!USrqf9 z0qqL|rKhTqTd0y5pE6%W;W8YDTtmG+zD$2b$Uc{bH^nbGB}%uyvx-aF`hJt7nwA^D zsi(5xLC>We*@X?INiVSAGb}VTGUuy}?#h1a8QELg__u5uS1AV`7`+|>KZ$>!<@~)Ul@&Pv&d*pJZVPOo^4K%_g)q7vY8E{(^lRiIDDjh}a7lc%z^27>T)B zfd1!BvRshes6Sqtc%0Xlsr36Y4kR9$f?w6BQB4VJvNkR9`}*W)_pus5dVBf}a`R~@ zfHU~?gU{J*qK4A0>N?|D8bfEuKD)u)GAU!Fju|JpT}T;&|p z6ygln2U0Tq!;odpSa597`jJ)MQ^9C&)?Ja}S1KpuLCz;9OMI9lbR-f>eU;TCB#tx; z-G%;O5`nICnM|N!Q4bhrsE}w*5Nl5W%t@^uGu3dAIH!TDgQfj>hTb-G|Drti=mbWz zXysHHhY^?w>Gsfsn1O3g5R_4l5@=qnPHl`KaxOvug~5>eC!Bco5H<{LEtWdLg#8DA zfEpqs+szR`(+XSh|p7YV`?>~r#3?>7Ujk0JdqRo zoXHnf=&#b3kNaDQ=dpqjj%|A3x`5shs0P{O!r(|xG&#t#v zIYcIPtgY*b@{o|)rqb4A$w*G>BHLA3%gcQ&Z`HNZGOEHsj%=>?99>Oc1#0W$HeUkiMn=?l0e{Gu;At|s zl}ufK9_1JBQt8p6Z~j4cFNPPz$y>1TW*gumJEQwRxJ}j-t60q48F;G3+S<@wF)VJ; zX!wI#dxAFjFj|n{GosjPLU_ZS6TJ>779CpWKZPmIC%#%jrAfG`h$fn{p3Cw8{?lF8`PdJ zZ1eaiY4WI&#N=sXgOeFL7h}~V{Gua4pZrKslQC8f2%`z@tm4iGzJ|anKC8S1-*l79 zzHGzTyYAXN7g}iAxv7~b387LQmP-zS^blJJgNYz~bPjv|3UeIcDk{=EvPrA}HB+`c zbM>fBWqXM5Za6C{>QG5~40WiKl3%wBRhlMq8LDjK)>Wt^!DaoKs!*jnOckNZykENr zRl4bH4XRA*{nVgJlVmDEl_9IB1XaGFTm>pqOL_&WH|-UYl7o+rRTPri)^cjGmQ#L0 zD8eXY7T8i-=8xCcml`aP@OTu0xx>4M?2jK0LHAssu|OY}nXtOBn9Pwwpt^8=G4P!QI&4x&ZFRM!UgpPhx!f2XOynWV#`IyT$zM z2EEegoMw$q^KhDWy&BOpYxHYE)2!^-4$RVy3M(+nYFTs& z?`bi|E1)#(WKja8SxG_#lBOL2TO`dEkTg>#T&swcQqK_=5vkLv2)NQfP3yRo)pQji zR;qcqF=+LPviB0e>T}d8ta{@&FBGai&&w96z8tAuN^BE=>Wwtrg}$T869Y*<&A zozECicF2;Rja+c0TZBiFnWa@2%I|JT?3eW}2DbBq=RWR>+>-&AM+4HH<9+HaDLE#I zDVzxW2|c?=sNuilaHD#lT?_8f8PF)9fl2P!F(YUkIdDGjz$w0Ccz`0=ci`e_r|6U^ zMrKN7<{EAgGGI(1CSW=Rzm&Q=EFFh(q?}x@FCHt$ z3><3^OV3C-Sqh49YjPv9@yIo0oKf0v1y8RIw5CiVX0)0L32pIeD%Vp(pqi}Ub!y6? zYO(|vFt2i>YKMBo`$!Hzb#x{NT6Usq1_w8>+%Vox4*Y>k=}J`Odhbc21t-r*I7Sya zS&aPT9?mCkwR{y_LlE>mVB&Y_eHz`TM(vJlOkWzhf!Pj&qD#5ra zWl5yn-#%%gNvTP)@#^&?>A?evpS36u^#=eDqCAvKMde%&NhvYN*8o|^a(+-N@(vmL z7MG)OwA=E~X?u?cG|NM&f_`oGa@q(-AS~pG+oPqH$QZ=OxC~7);c% zC7tcuer0o0mac2lNt~D;36jz>_yleMT$e{q5KrAGO3>G20BU;w7pFt23;Us^sYCU1 z>3_p1mV%ull!BO8xlMJdHPLWhovQs^pIgbUpPbXX zTp3hQF7M3~MYWcU2U`W?aK#YuB%Og8Rlu}@&^@ZX#2-)(PbkS`<;63FhpX_;z}tyR zndS;j%@$mp`8@`$K1y>&Zz$hc{+*C?F};^}PJh9*^js{X#BAq^ZgTMK@RLVu|1d9| z<&1wOd^OtViB^7ebHdaC9!!y@tBQIKodYU|usHU(B)ly5#HBzmMj5eCMuX@x( zHFB)9P>sknHBhbRXV*S8TKdvFwJv+rI<sZwb$*iR$}uk6Ng44t1}AHrCcQUr`g0$H{WJ zT0w>Jd2jT~N9eUs-%34|Rfrtv$4x)Rw`CCw)3Iul zCeBJd%22wlij=0nVsDkfN9i}4?vv^6Q`j(?6(I3#^O#gcO z#E-$X#^qlielgR}ep$bB=j;02W;*x}_Qy00hS_1B9%b{RWP+?QLp-^iEyIw_S7?9C zDc4``AT@3NZ{|z3Mz``gy!95}{tgqyA(~9VX%SJw!io2j`*g}jPXsP!XI_?ItS02d z?k-IQ_W`4feub2ZUzc3Q{yLN4FQ4YWyytVkFaYn#4mb8l1c2ihcRciZcc#%t z8f4bL4>hVjvAGwl;5IsChUs`*3T6ay3AOZ)G};I}`Hn(qFQHNbL0Z0(*-9$GUVn)l z&*)Aa$l-e*0CNQsc8A#p0t$zp|1kpTE=8cO0HH!%5cHuW=z1#h6et??4N8&_RYKzU zUo;pv5#hc6FGaE6X;RK6W>l8_{S@n$f6DTDlVkQqs%$0*mMwbwVb8)#dq=M zBunHc>dQ!*D4|;=P*gngLQ^TqxY{OFlqXf>Ww#0G6>o}@8FG8are!XhlYH}X?kT&t zM#t$qV=ucySEUwH`CSa|Pg)W?j|3EeygM{Zb^tGPXD_QCqizB^B*070xN;1KpPbzj zXX)^T=T8!7+QG!70&NJB>qh^Kn)IH8L?G}3KI?D12^*|#4)Na~*#BkY)shV+J8Xvy zrUy5&2cinE>IAtIRW7j&a1qSBsk~SO!z&(-Df(dY1e@C!>0sU@<{LiWWj;V_fcPtR ze+`+TEcvuL)%3%gDobQ7I09jHEs_Q^Vd3|5hCnBva7Gp-&6h%@AjVB7t~7VO4%#vo)2J&h9;2XLgPs^Yp|Wf zH`W$YniQj%lx@<&I1;bqn>QIm>Gr|WNxx-d`|QD333B#yJZn+eJtbo!U&8Q7cioRQ zlqN*8fzrej89w>frOq$k@5Z_j{n{8eV24PfB{5YlYo!zE+PBEY-zO{@OcfdclkS8} zj`UUQ*0SmX1yfEti5MjQRtQ3vKLyou6W}5R6|}R@)e5znk*_kA6KWv;ru}w6;amgU zX@~J_=cOUbB!aR;mPsUOi6>LpL%SMZWp`;k&xV}>6dAjo5)>KxuJYJ1c75sCG4{Qg z5MwI)D@Ba4>e~t@rkd|gabhgyt{ErBN&+S5FqIvf(P6B*-D1M5g9(#WlQ+h5C#Ou} zOcE}h>zSK!>?pqvod5Y5Q_-kmlbXdp__2_5P|Af{VsT z(@Q|Wz`oGB1bcSC7fou6GFO$dHZ8Y?v0eSwyO_c~rL&Wc~un{(yDQJYBRb3_)b**gb{x1gw;oaN_W*YDE z8ZgyWyLW%7rZ?llFGbQiw|u#VwpV+I41aEb)z?OBk~GXh|4uBrZfpZ*P+z}6u0(?Xb#Tz zze}92OpllahkTdyr`m)nZ(wF6pFk|5br-PGmUP)bnZP%=gWr%!Bml{D7D|YUSJSEY z6{&$i7Jph(BF70v6+-=8K9@u?7qz5ts~`$CRThv>Wl-{fwl`^_4oylvwI|e@lqe5V sb7<)Ji/dev/null; do + echo "PostgreSQL is unavailable - sleeping" + sleep 2 + done + + echo "Creating vector extension in database $PGDATABASE..." + PGPASSWORD="$POSTGRES_PASSWORD" psql -h "$PGHOST" -p "$PGPORT" -U "$PGUSER" -d "$PGDATABASE" -c "CREATE EXTENSION IF NOT EXISTS vector;" || echo "Extension may already exist or failed to create" + + echo "Vector extension initialization completed!" + env: + - name: PGHOST + value: {{ include "aconext.postgresql.host" . | quote }} + - name: PGPORT + value: {{ include "aconext.postgresql.port" . | quote }} + - name: PGUSER + value: "postgres" + - name: POSTGRES_PASSWORD + value: {{ .Values.postgresql.auth.postgresPassword | quote }} + - name: PGDATABASE + value: {{ .Values.postgresql.auth.database | quote }} + {{- end }} containers: - name: core {{- with .Values.core.securityContext }} @@ -82,6 +119,30 @@ spec: name: {{ include "aconext.core.name" . }}-config key: S3_ENDPOINT {{- end }} + - name: S3_REGION + valueFrom: + configMapKeyRef: + name: {{ include "aconext.core.name" . }}-config + key: S3_REGION + - name: S3_BUCKET + valueFrom: + configMapKeyRef: + name: {{ include "aconext.core.name" . }}-config + key: S3_BUCKET + {{- if .Values.secrets.s3.accessKey }} + - name: S3_ACCESS_KEY + valueFrom: + secretKeyRef: + name: {{ include "aconext.fullname" . }}-s3-secret + key: S3_ACCESS_KEY + {{- end }} + {{- if .Values.secrets.s3.secretKey }} + - name: S3_SECRET_KEY + valueFrom: + secretKeyRef: + name: {{ include "aconext.fullname" . }}-s3-secret + key: S3_SECRET_KEY + {{- end }} {{- with .Values.core.livenessProbe }} livenessProbe: {{- toYaml . | nindent 12 }} diff --git a/charts/aconext/templates/secret.yaml b/charts/aconext/templates/secret.yaml index 4e63cff..9fcbf33 100644 --- a/charts/aconext/templates/secret.yaml +++ b/charts/aconext/templates/secret.yaml @@ -12,7 +12,7 @@ data: LLM_API_KEY: {{ .Values.secrets.llm.apiKey | b64enc }} {{- end }} {{- end }} - +--- {{- if .Values.api.enabled }} apiVersion: v1 kind: Secret @@ -27,7 +27,7 @@ data: ROOT_API_BEARER_TOKEN: {{ .Values.secrets.api.rootBearerToken | b64enc }} {{- end }} {{- end }} - +--- {{- if not .Values.postgresql.enabled }} apiVersion: v1 kind: Secret @@ -45,7 +45,7 @@ data: postgres-password: {{ .Values.secrets.postgresql.postgresPassword | b64enc }} {{- end }} {{- end }} - +--- {{- if not .Values.redis.enabled }} apiVersion: v1 kind: Secret @@ -60,7 +60,7 @@ data: password: {{ .Values.secrets.redis.password | b64enc }} {{- end }} {{- end }} - +--- {{- if not .Values.rabbitmq.enabled }} apiVersion: v1 kind: Secret @@ -78,7 +78,7 @@ data: erlang-cookie: {{ .Values.secrets.rabbitmq.erlangCookie | b64enc }} {{- end }} {{- end }} - +--- {{- if or .Values.core.enabled .Values.api.enabled }} apiVersion: v1 kind: Secret diff --git a/charts/aconext/values.yaml b/charts/aconext/values.yaml index 76664c0..cb4e621 100644 --- a/charts/aconext/values.yaml +++ b/charts/aconext/values.yaml @@ -31,6 +31,8 @@ core: # S3 Configuration (AWS S3) S3_ENDPOINT: "" # AWS S3 endpoint, e.g., https://s3.amazonaws.com or https://s3.us-east-1.amazonaws.com + S3_REGION: "us-east-1" # AWS S3 region + S3_BUCKET: "acontext-assets" # S3 bucket name resources: limits: @@ -142,8 +144,9 @@ api: postgresql: enabled: true image: - repository: postgres - tag: "16.1" + registry: "docker.io" + repository: "bitnamilegacy/postgresql" + tag: "17.6.0-debian-12-r4" pullPolicy: Always auth: username: "acontext" @@ -151,33 +154,49 @@ postgresql: database: "acontext" postgresPassword: "postgres" persistence: - enabled: false + enabled: true + # Fix for read-only filesystem error: disable readOnlyRootFilesystem + # PostgreSQL needs to create lock files in /var/run/postgresql/ + primary: + containerSecurityContext: + readOnlyRootFilesystem: false # Redis configuration (Bitnami chart) # Set enabled: false to use external Redis redis: enabled: true image: - repository: bitnamilegacy/redis - tag: "6.0.16" + registry: "docker.io" + repository: "bitnamilegacy/redis" + tag: "8.2.1-debian-12-r0" pullPolicy: Always auth: enabled: true password: "acontext" + persistence: + enabled: true # RabbitMQ configuration (Bitnami chart) # Set enabled: false to use external RabbitMQ rabbitmq: enabled: true image: - repository: bitnamilegacy/rabbitmq - tag: "3.8.12" + registry: "docker.io" + repository: "bitnamilegacy/rabbitmq" + tag: "4.1.3-debian-12-r1" pullPolicy: Always + debug: true auth: username: "acontext" password: "acontext" persistence: + enabled: true + volumePermissions: enabled: false + image: + repository: "bitnamilegacy/os-shell" + tag: "12-debian-12-r50" + pullPolicy: IfNotPresent # External service configuration (when not using internal services) # When using external services, set the corresponding internal service (postgresql/redis/rabbitmq) enabled: false @@ -232,4 +251,7 @@ secrets: accessKey: "" # AWS S3 access key secretKey: "" # AWS S3 secret key + +# TOOD: opentelemetry collector + # TODO: HTTPRoute configuration (Gateway API) From 8d5735d7cf00e622c0cd8fee980488e4569cbdf3 Mon Sep 17 00:00:00 2001 From: Jinjia Date: Wed, 3 Dec 2025 21:16:38 +0200 Subject: [PATCH 5/7] feat(helm): add httproute --- charts/aconext/templates/NOTES.txt | 15 +++++++++--- charts/aconext/templates/httproute.yaml | 31 +++++++++++++++++++++++++ charts/aconext/values.yaml | 17 +++++++++++++- 3 files changed, 59 insertions(+), 4 deletions(-) create mode 100644 charts/aconext/templates/httproute.yaml diff --git a/charts/aconext/templates/NOTES.txt b/charts/aconext/templates/NOTES.txt index 8f0255d..cf1001c 100644 --- a/charts/aconext/templates/NOTES.txt +++ b/charts/aconext/templates/NOTES.txt @@ -48,6 +48,15 @@ RabbitMQ: External ({{ .Values.external.rabbitmq.host }}:{{ .Values.external.rabbitmq.port }}) {{- end }} -6. API Documentation: - Swagger UI: http:///swagger/index.html - Health Check: http:///health +{{- if and .Values.httpRoute.enabled .Values.httpRoute.gateway.name }} +{{- if .Values.httpRoute.hostnames }} +6. API Health Check: +{{- range .Values.httpRoute.hostnames }} + Health Check: http://{{ . }}/health +{{- end }} +{{- else }} +6. API Health Check: + Health Check: http:///health + (Note: Configure httpRoute.hostnames to get the full URL) +{{- end }} +{{- end }} diff --git a/charts/aconext/templates/httproute.yaml b/charts/aconext/templates/httproute.yaml new file mode 100644 index 0000000..e4629c5 --- /dev/null +++ b/charts/aconext/templates/httproute.yaml @@ -0,0 +1,31 @@ +{{- if and .Values.httpRoute.enabled .Values.httpRoute.gateway.name }} +{{- $gatewayNamespace := .Values.httpRoute.gateway.namespace | default .Release.Namespace }} +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: {{ include "aconext.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "aconext.labels" . | nindent 4 }} + app.kubernetes.io/component: httproute +spec: + parentRefs: + - name: {{ .Values.httpRoute.gateway.name }} + namespace: {{ $gatewayNamespace }} +{{- if .Values.httpRoute.hostnames }} + hostnames: + {{- toYaml .Values.httpRoute.hostnames | nindent 4 }} +{{- end }} + rules: +{{- if and .Values.httpRoute.routes.api.enabled .Values.api.enabled }} + - matches: + - path: + type: PathPrefix + value: {{ .Values.httpRoute.routes.api.path | quote }} + backendRefs: + - name: {{ include "aconext.api.name" . }} + namespace: {{ .Release.Namespace }} + port: {{ .Values.api.service.port }} + weight: 100 +{{- end }} +{{- end }} diff --git a/charts/aconext/values.yaml b/charts/aconext/values.yaml index cb4e621..998ec19 100644 --- a/charts/aconext/values.yaml +++ b/charts/aconext/values.yaml @@ -254,4 +254,19 @@ secrets: # TOOD: opentelemetry collector -# TODO: HTTPRoute configuration (Gateway API) +# HTTPRoute configuration (Gateway API) +# HTTPRoute is used to define routing rules for the Gateway API +httpRoute: + enabled: false + # Gateway name and namespace where the HTTPRoute will be attached + gateway: + name: "" # Gateway name (e.g., "main-gateway") + namespace: "" # Gateway namespace (defaults to release namespace if empty) + # Hostnames for the routes + hostnames: [] # e.g., ["api.example.com"] + # Routes configuration + routes: + # API routes + api: + enabled: true + path: "/" # Path prefix for API routes (matches / and all subpaths) From 148a8ce496a6813b969db9d3367ab3a29d516857 Mon Sep 17 00:00:00 2001 From: Jinjia Date: Wed, 3 Dec 2025 22:00:12 +0200 Subject: [PATCH 6/7] feat(helm): add https redirect --- charts/aconext/templates/httproute.yaml | 46 +++++++++++++++++++++++++ charts/aconext/values.yaml | 4 +++ 2 files changed, 50 insertions(+) diff --git a/charts/aconext/templates/httproute.yaml b/charts/aconext/templates/httproute.yaml index e4629c5..6363b5c 100644 --- a/charts/aconext/templates/httproute.yaml +++ b/charts/aconext/templates/httproute.yaml @@ -1,5 +1,6 @@ {{- if and .Values.httpRoute.enabled .Values.httpRoute.gateway.name }} {{- $gatewayNamespace := .Values.httpRoute.gateway.namespace | default .Release.Namespace }} +--- apiVersion: gateway.networking.k8s.io/v1 kind: HTTPRoute metadata: @@ -12,6 +13,50 @@ spec: parentRefs: - name: {{ .Values.httpRoute.gateway.name }} namespace: {{ $gatewayNamespace }} + sectionName: http +{{- if .Values.httpRoute.hostnames }} + hostnames: + {{- toYaml .Values.httpRoute.hostnames | nindent 4 }} +{{- end }} + rules: +{{- if .Values.httpRoute.tls.enabled }} + # Redirect HTTP to HTTPS when TLS is enabled + - matches: + - path: + type: PathPrefix + value: "/" + filters: + - type: RequestRedirect + requestRedirect: + scheme: https + statusCode: 301 +{{- else if and .Values.httpRoute.routes.api.enabled .Values.api.enabled }} + # Route HTTP traffic to API service (when TLS is disabled) + - matches: + - path: + type: PathPrefix + value: {{ .Values.httpRoute.routes.api.path | quote }} + backendRefs: + - name: {{ include "aconext.api.name" . }} + namespace: {{ .Release.Namespace }} + port: {{ .Values.api.service.port }} + weight: 100 +{{- end }} +{{- if .Values.httpRoute.tls.enabled }} +--- +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: {{ include "aconext.fullname" . }}-https + namespace: {{ .Release.Namespace }} + labels: + {{- include "aconext.labels" . | nindent 4 }} + app.kubernetes.io/component: httproute-https +spec: + parentRefs: + - name: {{ .Values.httpRoute.gateway.name }} + namespace: {{ $gatewayNamespace }} + sectionName: https {{- if .Values.httpRoute.hostnames }} hostnames: {{- toYaml .Values.httpRoute.hostnames | nindent 4 }} @@ -29,3 +74,4 @@ spec: weight: 100 {{- end }} {{- end }} +{{- end }} diff --git a/charts/aconext/values.yaml b/charts/aconext/values.yaml index 998ec19..613be71 100644 --- a/charts/aconext/values.yaml +++ b/charts/aconext/values.yaml @@ -270,3 +270,7 @@ httpRoute: api: enabled: true path: "/" # Path prefix for API routes (matches / and all subpaths) + # TLS configuration + tls: + # Rememer to create correct Gateway resource with HTTPS listener, https://gateway-api.sigs.k8s.io/guides/http-redirect-rewrite/#http-to-https-redirects + enabled: false From 5ce3c2f281fabf8ecad932501085d07fb86f44a7 Mon Sep 17 00:00:00 2001 From: Jinjia Date: Thu, 4 Dec 2025 23:15:16 +0200 Subject: [PATCH 7/7] feat(helm): update env --- charts/aconext/templates/_helpers.tpl | 20 +++++++++ charts/aconext/templates/api-deployment.yaml | 40 +++--------------- charts/aconext/templates/configmap.yaml | 41 ------------------- charts/aconext/templates/core-deployment.yaml | 35 +--------------- 4 files changed, 26 insertions(+), 110 deletions(-) delete mode 100644 charts/aconext/templates/configmap.yaml diff --git a/charts/aconext/templates/_helpers.tpl b/charts/aconext/templates/_helpers.tpl index 9f46bce..4db756b 100644 --- a/charts/aconext/templates/_helpers.tpl +++ b/charts/aconext/templates/_helpers.tpl @@ -205,3 +205,23 @@ Get RabbitMQ URL {{- $vhost := .Values.rabbitmq.auth.vhost | default .Values.external.rabbitmq.vhost | default "/" }} {{- printf "amqp://%s:%s@%s:%s/%s" $user $password $host $port $vhost }} {{- end }} + +{{/* +Generate env entries from core.env +*/}} +{{- define "aconext.core.env" -}} +{{- range $key, $value := .Values.core.env }} +- name: {{ $key }} + value: {{ $value | quote }} +{{- end }} +{{- end }} + +{{/* +Generate env entries from api.env +*/}} +{{- define "aconext.api.env" -}} +{{- range $key, $value := .Values.api.env }} +- name: {{ $key }} + value: {{ $value | quote }} +{{- end }} +{{- end }} diff --git a/charts/aconext/templates/api-deployment.yaml b/charts/aconext/templates/api-deployment.yaml index 9a2543d..d30ff00 100644 --- a/charts/aconext/templates/api-deployment.yaml +++ b/charts/aconext/templates/api-deployment.yaml @@ -45,11 +45,6 @@ spec: containerPort: {{ .Values.api.service.port }} protocol: TCP env: - - name: API_EXPORT_PORT - valueFrom: - configMapKeyRef: - name: {{ include "aconext.api.name" . }}-config - key: API_EXPORT_PORT {{- if .Values.secrets.api.rootBearerToken }} - name: ROOT_API_BEARER_TOKEN valueFrom: @@ -109,31 +104,6 @@ spec: value: {{ if .Values.rabbitmq.enabled }}{{ .Values.rabbitmq.auth.vhost | default "/" | quote }}{{ else }}{{ .Values.external.rabbitmq.vhost | default "/" | quote }}{{ end }} - name: RABBITMQ_VHOST_ENCODED value: {{ if .Values.rabbitmq.enabled }}{{ .Values.rabbitmq.auth.vhost | default "/" | urlquery | quote }}{{ else }}{{ .Values.external.rabbitmq.vhost | default "/" | urlquery | quote }}{{ end }} - {{- if .Values.api.env.S3_ENDPOINT }} - - name: S3_ENDPOINT - valueFrom: - configMapKeyRef: - name: {{ include "aconext.api.name" . }}-config - key: S3_ENDPOINT - {{- end }} - {{- if .Values.api.env.S3_INTERNAL_ENDPOINT }} - - name: S3_INTERNAL_ENDPOINT - valueFrom: - configMapKeyRef: - name: {{ include "aconext.api.name" . }}-config - key: S3_INTERNAL_ENDPOINT - {{- else if .Values.api.env.S3_ENDPOINT }} - - name: S3_INTERNAL_ENDPOINT - valueFrom: - configMapKeyRef: - name: {{ include "aconext.api.name" . }}-config - key: S3_ENDPOINT - {{- end }} - - name: S3_REGION - valueFrom: - configMapKeyRef: - name: {{ include "aconext.api.name" . }}-config - key: S3_REGION {{- if .Values.secrets.s3.accessKey }} - name: S3_ACCESS_KEY valueFrom: @@ -148,13 +118,13 @@ spec: name: {{ include "aconext.fullname" . }}-s3-secret key: S3_SECRET_KEY {{- end }} - - name: S3_BUCKET - valueFrom: - configMapKeyRef: - name: {{ include "aconext.api.name" . }}-config - key: S3_BUCKET - name: CORE_BASE_URL value: http://{{ include "aconext.core.name" . }}:{{ .Values.core.service.port }} + {{- include "aconext.api.env" . | nindent 12 }} + {{- if and .Values.api.env.S3_ENDPOINT (not .Values.api.env.S3_INTERNAL_ENDPOINT) }} + - name: S3_INTERNAL_ENDPOINT + value: {{ .Values.api.env.S3_ENDPOINT | quote }} + {{- end }} {{- with .Values.api.livenessProbe }} livenessProbe: {{- toYaml . | nindent 12 }} diff --git a/charts/aconext/templates/configmap.yaml b/charts/aconext/templates/configmap.yaml deleted file mode 100644 index 56f4a9b..0000000 --- a/charts/aconext/templates/configmap.yaml +++ /dev/null @@ -1,41 +0,0 @@ -{{- if .Values.core.enabled }} -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "aconext.core.name" . }}-config - labels: - {{- include "aconext.labels" . | nindent 4 }} - app.kubernetes.io/component: core -data: - LLM_SDK: {{ .Values.core.env.LLM_SDK | default "openai" | quote }} - LLM_SIMPLE_MODEL: {{ .Values.core.env.LLM_SIMPLE_MODEL | default "gpt-4.1" | quote }} - {{- if .Values.core.env.LLM_BASE_URL }} - LLM_BASE_URL: {{ .Values.core.env.LLM_BASE_URL | quote }} - {{- end }} - {{- if .Values.core.env.S3_ENDPOINT }} - S3_ENDPOINT: {{ .Values.core.env.S3_ENDPOINT | quote }} - {{- end }} - S3_REGION: {{ .Values.core.env.S3_REGION | default "us-east-1" | quote }} - S3_BUCKET: {{ .Values.core.env.S3_BUCKET | default "acontext-assets" | quote }} -{{- end }} ---- -{{- if .Values.api.enabled }} -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "aconext.api.name" . }}-config - labels: - {{- include "aconext.labels" . | nindent 4 }} - app.kubernetes.io/component: api -data: - API_EXPORT_PORT: {{ .Values.api.env.API_EXPORT_PORT | default "8029" | quote }} - S3_REGION: {{ .Values.api.env.S3_REGION | default "us-east-1" | quote }} - S3_BUCKET: {{ .Values.api.env.S3_BUCKET | default "acontext-assets" | quote }} - {{- if .Values.api.env.S3_ENDPOINT }} - S3_ENDPOINT: {{ .Values.api.env.S3_ENDPOINT | quote }} - {{- end }} - {{- if .Values.api.env.S3_INTERNAL_ENDPOINT }} - S3_INTERNAL_ENDPOINT: {{ .Values.api.env.S3_INTERNAL_ENDPOINT | quote }} - {{- end }} -{{- end }} - diff --git a/charts/aconext/templates/core-deployment.yaml b/charts/aconext/templates/core-deployment.yaml index ed2739a..c2d9bca 100644 --- a/charts/aconext/templates/core-deployment.yaml +++ b/charts/aconext/templates/core-deployment.yaml @@ -88,23 +88,6 @@ spec: value: {{ include "aconext.redis.url" . | quote }} - name: MQ_URL value: {{ include "aconext.rabbitmq.url" . | quote }} - {{- if .Values.core.env.LLM_BASE_URL }} - - name: LLM_BASE_URL - valueFrom: - configMapKeyRef: - name: {{ include "aconext.core.name" . }}-config - key: LLM_BASE_URL - {{- end }} - - name: LLM_SDK - valueFrom: - configMapKeyRef: - name: {{ include "aconext.core.name" . }}-config - key: LLM_SDK - - name: LLM_SIMPLE_MODEL - valueFrom: - configMapKeyRef: - name: {{ include "aconext.core.name" . }}-config - key: LLM_SIMPLE_MODEL {{- if .Values.secrets.llm.apiKey }} - name: LLM_API_KEY valueFrom: @@ -112,23 +95,6 @@ spec: name: {{ include "aconext.core.name" . }}-secret key: LLM_API_KEY {{- end }} - {{- if .Values.core.env.S3_ENDPOINT }} - - name: S3_ENDPOINT - valueFrom: - configMapKeyRef: - name: {{ include "aconext.core.name" . }}-config - key: S3_ENDPOINT - {{- end }} - - name: S3_REGION - valueFrom: - configMapKeyRef: - name: {{ include "aconext.core.name" . }}-config - key: S3_REGION - - name: S3_BUCKET - valueFrom: - configMapKeyRef: - name: {{ include "aconext.core.name" . }}-config - key: S3_BUCKET {{- if .Values.secrets.s3.accessKey }} - name: S3_ACCESS_KEY valueFrom: @@ -143,6 +109,7 @@ spec: name: {{ include "aconext.fullname" . }}-s3-secret key: S3_SECRET_KEY {{- end }} + {{- include "aconext.core.env" . | nindent 12 }} {{- with .Values.core.livenessProbe }} livenessProbe: {{- toYaml . | nindent 12 }}