From 2bcfba6fe9011c60b3a27fe4a37f94897e3c1e4e Mon Sep 17 00:00:00 2001
From: Matt Dodson <47385188+MattDodsonEnglish@users.noreply.github.com>
Date: Wed, 12 Mar 2025 12:09:26 -0300
Subject: [PATCH] [Feat] document working example of v picker
---
config/_default/hugo.yaml | 8 +-
content/_index.md | 28 +-
content/latest/_index.md | 30 +
content/{ => latest}/deploy/_index.md | 0
content/{ => latest}/deploy/backup/_index.md | 0
content/{ => latest}/deploy/backup/audit.md | 0
content/{ => latest}/deploy/backup/binary.md | 0
content/{ => latest}/deploy/backup/grafana.md | 0
content/{ => latest}/deploy/backup/graphdb.md | 0
content/{ => latest}/deploy/backup/influx.md | 0
.../{ => latest}/deploy/backup/keycloak.md | 0
content/{ => latest}/deploy/install/_index.md | 0
content/{ => latest}/deploy/install/image.png | Bin
.../{ => latest}/deploy/install/keycloak.md | 0
.../{ => latest}/deploy/install/overview.md | 0
.../{ => latest}/deploy/install/services.md | 0
.../deploy/install/setup-kubernetes.md | 0
.../{ => latest}/deploy/maintain/_index.md | 0
content/{ => latest}/deploy/maintain/audit.md | 0
.../deploy/maintain/bpmn-nodes.md | 0
.../deploy/maintain/keycloak-events.md | 0
content/{ => latest}/deploy/restore/_index.md | 0
content/{ => latest}/deploy/restore/audit.md | 0
content/{ => latest}/deploy/restore/binary.md | 0
.../{ => latest}/deploy/restore/grafana.md | 0
.../{ => latest}/deploy/restore/graphdb.md | 0
.../{ => latest}/deploy/restore/influxdb.md | 0
.../{ => latest}/deploy/restore/keycloak.md | 0
content/{ => latest}/deploy/upgrade.md | 0
content/{ => latest}/explanations/_index.md | 0
.../explanations/about-openidconnect.md | 0
.../explanations/manufacturing-data-hub.md | 0
content/{ => latest}/get-started/_index.md | 0
.../get-started/arch-overview.excalidraw | 0
.../diagram-rhize-arch-overview.png | Bin
.../get-started/how-rhize-works.md | 0
.../{ => latest}/get-started/introduction.md | 0
.../rhize-diagram-data-sources.png | Bin
content/{ => latest}/how-to/_index.md | 0
content/{ => latest}/how-to/audit.md | 2 +-
content/{ => latest}/how-to/bpmn/_index.md | 0
.../{ => latest}/how-to/bpmn/bpmn-elements.md | 0
.../how-to/bpmn/create-workflow.md | 0
.../how-to/bpmn/debug-workflows.md | 0
.../how-to/bpmn/learning-resources.md | 0
.../how-to/bpmn/naming-conventions.md | 0
.../bpmn/screenshot-rhize-flamegraph-json.png | Bin
.../how-to/bpmn/trigger-workflows.md | 0
.../how-to/bpmn/tune-performance.md | 0
.../{ => latest}/how-to/bpmn/use-jsonata.md | 0
content/{ => latest}/how-to/bpmn/variables.md | 0
content/{ => latest}/how-to/gql/_index.md | 0
.../how-to/gql/call-the-graphql-api.md | 0
content/{ => latest}/how-to/gql/default.md | 0
content/{ => latest}/how-to/gql/directives.md | 0
content/{ => latest}/how-to/gql/filter.md | 0
content/{ => latest}/how-to/gql/generate.md | 0
content/{ => latest}/how-to/gql/mutate.md | 0
content/{ => latest}/how-to/gql/query.md | 0
content/{ => latest}/how-to/gql/subscribe.md | 0
.../{ => latest}/how-to/kpi-service/_index.md | 0
.../how-to/kpi-service/about-kpi-service.md | 0
.../kpi-service/configure-kpi-service.md | 0
.../how-to/kpi-service/query-kpi-service.md | 0
content/{ => latest}/how-to/model/_index.md | 0
.../how-to/model/create-objects-ui.md | 0
.../how-to/model/master-definitions.md | 0
.../how-to/publish-subscribe/_index.md | 0
.../publish-subscribe/connect-datasource.md | 0
.../create-equipment-class-rule.md | 0
.../screenshot-rhize-rules-engine.png | Bin
.../how-to/publish-subscribe/track-changes.md | 0
.../how-to/work-calendars/_index.md | 0
.../about-calendars-and-overrides.md | 0
.../work-calendars/create-work-calendar.md | 0
content/{ => latest}/isa-95/_index.md | 0
.../isa-95/how-to-speak-isa-95.md | 0
.../{ => latest}/isa-95/isa-95-diagrams.md | 0
.../isa-95/models-of-work/_index.md | 0
.../isa-95/models-of-work/process-segments.md | 0
.../{ => latest}/isa-95/resources/_index.md | 0
.../isa-95/resources/equipment.md | 0
.../{ => latest}/isa-95/resources/material.md | 0
content/{ => latest}/reference/_index.md | 0
.../{ => latest}/reference/default-ports.md | 0
content/{ => latest}/reference/glossary.md | 0
content/{ => latest}/reference/gql-types.md | 0
content/{ => latest}/reference/image.png | Bin
.../reference/nats-configuration.md | 0
.../reference/observability-metrics.md | 0
.../reference/service-config/_index.md | 0
.../service-config/agent-configuration.md | 0
.../service-config/audit-configuration.md | 0
.../service-config/bpmn-configuration.md | 0
.../service-config/calendar-configuration.md | 0
.../service-config/core-configuration.md | 0
content/{ => latest}/releases/3-0-1.md | 0
content/{ => latest}/releases/3-0-3.md | 0
content/latest/releases/3-0.md | 155 +
content/{ => latest}/releases/_index.md | 0
.../{ => latest}/releases/changelog/3-0-0.md | 0
.../releases/changelog/3-0-0rc05.md | 0
.../releases/changelog/3-0-0rc06.md | 0
.../releases/changelog/3-0-0rc07.md | 0
.../releases/changelog/3-0-0rc08.md | 0
.../releases/changelog/3-0-0rc09.md | 0
.../{ => latest}/releases/changelog/_index.md | 0
.../releases/checksums/v.3.0.3-checksums.txt | 0
.../releases/checksums/v3.0.0-checksums.txt | 0
.../releases/checksums/v3.0.1-checksums.txt | 0
.../releases/checksums/v3.0.3-checksums.txt | 0
content/{ => latest}/use-cases/_index.md | 0
.../{ => latest}/use-cases/calculate-oee.md | 0
.../use-cases/data-collection-ebr.md | 0
content/{ => latest}/use-cases/ebr.md | 0
content/{ => latest}/use-cases/genealogy.md | 0
content/{ => latest}/use-cases/overview.md | 0
content/versions/3-0-3/_index.md | 10 +
content/versions/3-0-3/deploy/_index.md | 41 +
.../versions/3-0-3/deploy/backup/_index.md | 21 +
content/versions/3-0-3/deploy/backup/audit.md | 52 +
.../versions/3-0-3/deploy/backup/binary.md | 79 +
.../versions/3-0-3/deploy/backup/grafana.md | 105 +
.../versions/3-0-3/deploy/backup/graphdb.md | 134 +
.../versions/3-0-3/deploy/backup/influx.md | 67 +
.../versions/3-0-3/deploy/backup/keycloak.md | 60 +
.../versions/3-0-3/deploy/install/_index.md | 26 +
.../versions/3-0-3/deploy/install/image.png | Bin 0 -> 227817 bytes
.../versions/3-0-3/deploy/install/keycloak.md | 407 +
.../versions/3-0-3/deploy/install/overview.md | 46 +
.../versions/3-0-3/deploy/install/services.md | 485 +
.../3-0-3/deploy/install/setup-kubernetes.md | 111 +
.../versions/3-0-3/deploy/maintain/_index.md | 19 +
.../versions/3-0-3/deploy/maintain/audit.md | 72 +
.../3-0-3/deploy/maintain/bpmn-nodes.md | 45 +
.../3-0-3/deploy/maintain/keycloak-events.md | 77 +
.../versions/3-0-3/deploy/restore/_index.md | 17 +
.../versions/3-0-3/deploy/restore/audit.md | 54 +
.../versions/3-0-3/deploy/restore/binary.md | 74 +
.../versions/3-0-3/deploy/restore/grafana.md | 103 +
.../versions/3-0-3/deploy/restore/graphdb.md | 137 +
.../versions/3-0-3/deploy/restore/influxdb.md | 113 +
.../versions/3-0-3/deploy/restore/keycloak.md | 108 +
content/versions/3-0-3/deploy/upgrade.md | 79 +
content/versions/3-0-3/explanations/_index.md | 23 +
.../3-0-3/explanations/about-openidconnect.md | 46 +
.../explanations/manufacturing-data-hub.md | 218 +
content/versions/3-0-3/get-started/_index.md | 13 +
.../get-started/arch-overview.excalidraw | 10323 ++++++++++++++++
.../diagram-rhize-arch-overview.png | Bin 0 -> 619677 bytes
.../3-0-3/get-started/how-rhize-works.md | 109 +
.../3-0-3/get-started/introduction.md | 72 +
.../rhize-diagram-data-sources.png | Bin 0 -> 608118 bytes
content/versions/3-0-3/how-to/_index.md | 29 +
content/versions/3-0-3/how-to/audit.md | 75 +
content/versions/3-0-3/how-to/bpmn/_index.md | 16 +
.../3-0-3/how-to/bpmn/bpmn-elements.md | 404 +
.../3-0-3/how-to/bpmn/create-workflow.md | 240 +
.../3-0-3/how-to/bpmn/debug-workflows.md | 248 +
.../3-0-3/how-to/bpmn/learning-resources.md | 15 +
.../3-0-3/how-to/bpmn/naming-conventions.md | 204 +
.../bpmn/screenshot-rhize-flamegraph-json.png | Bin 0 -> 80274 bytes
.../3-0-3/how-to/bpmn/trigger-workflows.md | 151 +
.../3-0-3/how-to/bpmn/tune-performance.md | 93 +
.../versions/3-0-3/how-to/bpmn/use-jsonata.md | 839 ++
.../versions/3-0-3/how-to/bpmn/variables.md | 17 +
content/versions/3-0-3/how-to/gql/_index.md | 9 +
.../3-0-3/how-to/gql/call-the-graphql-api.md | 373 +
content/versions/3-0-3/how-to/gql/default.md | 83 +
.../versions/3-0-3/how-to/gql/directives.md | 137 +
content/versions/3-0-3/how-to/gql/filter.md | 361 +
content/versions/3-0-3/how-to/gql/generate.md | 62 +
content/versions/3-0-3/how-to/gql/mutate.md | 239 +
content/versions/3-0-3/how-to/gql/query.md | 165 +
.../versions/3-0-3/how-to/gql/subscribe.md | 34 +
.../3-0-3/how-to/kpi-service/_index.md | 17 +
.../how-to/kpi-service/about-kpi-service.md | 69 +
.../kpi-service/configure-kpi-service.md | 198 +
.../how-to/kpi-service/query-kpi-service.md | 1125 ++
content/versions/3-0-3/how-to/model/_index.md | 22 +
.../3-0-3/how-to/model/create-objects-ui.md | 90 +
.../3-0-3/how-to/model/master-definitions.md | 345 +
.../3-0-3/how-to/publish-subscribe/_index.md | 16 +
.../publish-subscribe/connect-datasource.md | 45 +
.../create-equipment-class-rule.md | 412 +
.../screenshot-rhize-rules-engine.png | Bin 0 -> 208283 bytes
.../how-to/publish-subscribe/track-changes.md | 135 +
.../3-0-3/how-to/work-calendars/_index.md | 25 +
.../about-calendars-and-overrides.md | 111 +
.../work-calendars/create-work-calendar.md | 491 +
content/versions/3-0-3/isa-95/_index.md | 12 +
.../3-0-3/isa-95/how-to-speak-isa-95.md | 306 +
.../versions/3-0-3/isa-95/isa-95-diagrams.md | 91 +
.../3-0-3/isa-95/models-of-work/_index.md | 11 +
.../isa-95/models-of-work/process-segments.md | 178 +
.../versions/3-0-3/isa-95/resources/_index.md | 19 +
.../3-0-3/isa-95/resources/equipment.md | 319 +
.../3-0-3/isa-95/resources/material.md | 194 +
content/versions/3-0-3/reference/_index.md | 13 +
.../versions/3-0-3/reference/default-ports.md | 24 +
content/versions/3-0-3/reference/glossary.md | 16 +
content/versions/3-0-3/reference/gql-types.md | 125 +
content/versions/3-0-3/reference/image.png | Bin 0 -> 168606 bytes
.../3-0-3/reference/nats-configuration.md | 94 +
.../3-0-3/reference/observability-metrics.md | 341 +
.../3-0-3/reference/service-config/_index.md | 13 +
.../service-config/agent-configuration.md | 121 +
.../service-config/audit-configuration.md | 62 +
.../service-config/bpmn-configuration.md | 102 +
.../service-config/calendar-configuration.md | 109 +
.../service-config/core-configuration.md | 82 +
content/versions/3-0-3/releases/3-0-1.md | 130 +
content/versions/3-0-3/releases/3-0-3.md | 141 +
content/{ => versions/3-0-3}/releases/3-0.md | 0
content/versions/3-0-3/releases/_index.md | 13 +
.../3-0-3/releases/changelog/3-0-0.md | 230 +
.../3-0-3/releases/changelog/3-0-0rc05.md | 112 +
.../3-0-3/releases/changelog/3-0-0rc06.md | 95 +
.../3-0-3/releases/changelog/3-0-0rc07.md | 133 +
.../3-0-3/releases/changelog/3-0-0rc08.md | 177 +
.../3-0-3/releases/changelog/3-0-0rc09.md | 102 +
.../3-0-3/releases/changelog/_index.md | 6 +
.../releases/checksums/v.3.0.3-checksums.txt | 26 +
.../releases/checksums/v3.0.0-checksums.txt | 35 +
.../releases/checksums/v3.0.1-checksums.txt | 35 +
.../releases/checksums/v3.0.3-checksums.txt | 35 +
content/versions/3-0-3/use-cases/_index.md | 13 +
.../versions/3-0-3/use-cases/calculate-oee.md | 243 +
.../3-0-3/use-cases/data-collection-ebr.md | 174 +
content/versions/3-0-3/use-cases/ebr.md | 454 +
content/versions/3-0-3/use-cases/genealogy.md | 625 +
content/versions/3-0-3/use-cases/overview.md | 68 +
content/versions/_index.md | 4 +-
layouts/partials/theme-toggle.html | 79 +
234 files changed, 25593 insertions(+), 33 deletions(-)
create mode 100644 content/latest/_index.md
rename content/{ => latest}/deploy/_index.md (100%)
rename content/{ => latest}/deploy/backup/_index.md (100%)
rename content/{ => latest}/deploy/backup/audit.md (100%)
rename content/{ => latest}/deploy/backup/binary.md (100%)
rename content/{ => latest}/deploy/backup/grafana.md (100%)
rename content/{ => latest}/deploy/backup/graphdb.md (100%)
rename content/{ => latest}/deploy/backup/influx.md (100%)
rename content/{ => latest}/deploy/backup/keycloak.md (100%)
rename content/{ => latest}/deploy/install/_index.md (100%)
rename content/{ => latest}/deploy/install/image.png (100%)
rename content/{ => latest}/deploy/install/keycloak.md (100%)
rename content/{ => latest}/deploy/install/overview.md (100%)
rename content/{ => latest}/deploy/install/services.md (100%)
rename content/{ => latest}/deploy/install/setup-kubernetes.md (100%)
rename content/{ => latest}/deploy/maintain/_index.md (100%)
rename content/{ => latest}/deploy/maintain/audit.md (100%)
rename content/{ => latest}/deploy/maintain/bpmn-nodes.md (100%)
rename content/{ => latest}/deploy/maintain/keycloak-events.md (100%)
rename content/{ => latest}/deploy/restore/_index.md (100%)
rename content/{ => latest}/deploy/restore/audit.md (100%)
rename content/{ => latest}/deploy/restore/binary.md (100%)
rename content/{ => latest}/deploy/restore/grafana.md (100%)
rename content/{ => latest}/deploy/restore/graphdb.md (100%)
rename content/{ => latest}/deploy/restore/influxdb.md (100%)
rename content/{ => latest}/deploy/restore/keycloak.md (100%)
rename content/{ => latest}/deploy/upgrade.md (100%)
rename content/{ => latest}/explanations/_index.md (100%)
rename content/{ => latest}/explanations/about-openidconnect.md (100%)
rename content/{ => latest}/explanations/manufacturing-data-hub.md (100%)
rename content/{ => latest}/get-started/_index.md (100%)
rename content/{ => latest}/get-started/arch-overview.excalidraw (100%)
rename content/{ => latest}/get-started/diagram-rhize-arch-overview.png (100%)
rename content/{ => latest}/get-started/how-rhize-works.md (100%)
rename content/{ => latest}/get-started/introduction.md (100%)
rename content/{ => latest}/get-started/rhize-diagram-data-sources.png (100%)
rename content/{ => latest}/how-to/_index.md (100%)
rename content/{ => latest}/how-to/audit.md (97%)
rename content/{ => latest}/how-to/bpmn/_index.md (100%)
rename content/{ => latest}/how-to/bpmn/bpmn-elements.md (100%)
rename content/{ => latest}/how-to/bpmn/create-workflow.md (100%)
rename content/{ => latest}/how-to/bpmn/debug-workflows.md (100%)
rename content/{ => latest}/how-to/bpmn/learning-resources.md (100%)
rename content/{ => latest}/how-to/bpmn/naming-conventions.md (100%)
rename content/{ => latest}/how-to/bpmn/screenshot-rhize-flamegraph-json.png (100%)
rename content/{ => latest}/how-to/bpmn/trigger-workflows.md (100%)
rename content/{ => latest}/how-to/bpmn/tune-performance.md (100%)
rename content/{ => latest}/how-to/bpmn/use-jsonata.md (100%)
rename content/{ => latest}/how-to/bpmn/variables.md (100%)
rename content/{ => latest}/how-to/gql/_index.md (100%)
rename content/{ => latest}/how-to/gql/call-the-graphql-api.md (100%)
rename content/{ => latest}/how-to/gql/default.md (100%)
rename content/{ => latest}/how-to/gql/directives.md (100%)
rename content/{ => latest}/how-to/gql/filter.md (100%)
rename content/{ => latest}/how-to/gql/generate.md (100%)
rename content/{ => latest}/how-to/gql/mutate.md (100%)
rename content/{ => latest}/how-to/gql/query.md (100%)
rename content/{ => latest}/how-to/gql/subscribe.md (100%)
rename content/{ => latest}/how-to/kpi-service/_index.md (100%)
rename content/{ => latest}/how-to/kpi-service/about-kpi-service.md (100%)
rename content/{ => latest}/how-to/kpi-service/configure-kpi-service.md (100%)
rename content/{ => latest}/how-to/kpi-service/query-kpi-service.md (100%)
rename content/{ => latest}/how-to/model/_index.md (100%)
rename content/{ => latest}/how-to/model/create-objects-ui.md (100%)
rename content/{ => latest}/how-to/model/master-definitions.md (100%)
rename content/{ => latest}/how-to/publish-subscribe/_index.md (100%)
rename content/{ => latest}/how-to/publish-subscribe/connect-datasource.md (100%)
rename content/{ => latest}/how-to/publish-subscribe/create-equipment-class-rule.md (100%)
rename content/{ => latest}/how-to/publish-subscribe/screenshot-rhize-rules-engine.png (100%)
rename content/{ => latest}/how-to/publish-subscribe/track-changes.md (100%)
rename content/{ => latest}/how-to/work-calendars/_index.md (100%)
rename content/{ => latest}/how-to/work-calendars/about-calendars-and-overrides.md (100%)
rename content/{ => latest}/how-to/work-calendars/create-work-calendar.md (100%)
rename content/{ => latest}/isa-95/_index.md (100%)
rename content/{ => latest}/isa-95/how-to-speak-isa-95.md (100%)
rename content/{ => latest}/isa-95/isa-95-diagrams.md (100%)
rename content/{ => latest}/isa-95/models-of-work/_index.md (100%)
rename content/{ => latest}/isa-95/models-of-work/process-segments.md (100%)
rename content/{ => latest}/isa-95/resources/_index.md (100%)
rename content/{ => latest}/isa-95/resources/equipment.md (100%)
rename content/{ => latest}/isa-95/resources/material.md (100%)
rename content/{ => latest}/reference/_index.md (100%)
rename content/{ => latest}/reference/default-ports.md (100%)
rename content/{ => latest}/reference/glossary.md (100%)
rename content/{ => latest}/reference/gql-types.md (100%)
rename content/{ => latest}/reference/image.png (100%)
rename content/{ => latest}/reference/nats-configuration.md (100%)
rename content/{ => latest}/reference/observability-metrics.md (100%)
rename content/{ => latest}/reference/service-config/_index.md (100%)
rename content/{ => latest}/reference/service-config/agent-configuration.md (100%)
rename content/{ => latest}/reference/service-config/audit-configuration.md (100%)
rename content/{ => latest}/reference/service-config/bpmn-configuration.md (100%)
rename content/{ => latest}/reference/service-config/calendar-configuration.md (100%)
rename content/{ => latest}/reference/service-config/core-configuration.md (100%)
rename content/{ => latest}/releases/3-0-1.md (100%)
rename content/{ => latest}/releases/3-0-3.md (100%)
create mode 100644 content/latest/releases/3-0.md
rename content/{ => latest}/releases/_index.md (100%)
rename content/{ => latest}/releases/changelog/3-0-0.md (100%)
rename content/{ => latest}/releases/changelog/3-0-0rc05.md (100%)
rename content/{ => latest}/releases/changelog/3-0-0rc06.md (100%)
rename content/{ => latest}/releases/changelog/3-0-0rc07.md (100%)
rename content/{ => latest}/releases/changelog/3-0-0rc08.md (100%)
rename content/{ => latest}/releases/changelog/3-0-0rc09.md (100%)
rename content/{ => latest}/releases/changelog/_index.md (100%)
rename content/{ => latest}/releases/checksums/v.3.0.3-checksums.txt (100%)
rename content/{ => latest}/releases/checksums/v3.0.0-checksums.txt (100%)
rename content/{ => latest}/releases/checksums/v3.0.1-checksums.txt (100%)
rename content/{ => latest}/releases/checksums/v3.0.3-checksums.txt (100%)
rename content/{ => latest}/use-cases/_index.md (100%)
rename content/{ => latest}/use-cases/calculate-oee.md (100%)
rename content/{ => latest}/use-cases/data-collection-ebr.md (100%)
rename content/{ => latest}/use-cases/ebr.md (100%)
rename content/{ => latest}/use-cases/genealogy.md (100%)
rename content/{ => latest}/use-cases/overview.md (100%)
create mode 100644 content/versions/3-0-3/_index.md
create mode 100644 content/versions/3-0-3/deploy/_index.md
create mode 100644 content/versions/3-0-3/deploy/backup/_index.md
create mode 100644 content/versions/3-0-3/deploy/backup/audit.md
create mode 100644 content/versions/3-0-3/deploy/backup/binary.md
create mode 100644 content/versions/3-0-3/deploy/backup/grafana.md
create mode 100644 content/versions/3-0-3/deploy/backup/graphdb.md
create mode 100644 content/versions/3-0-3/deploy/backup/influx.md
create mode 100644 content/versions/3-0-3/deploy/backup/keycloak.md
create mode 100644 content/versions/3-0-3/deploy/install/_index.md
create mode 100644 content/versions/3-0-3/deploy/install/image.png
create mode 100644 content/versions/3-0-3/deploy/install/keycloak.md
create mode 100644 content/versions/3-0-3/deploy/install/overview.md
create mode 100644 content/versions/3-0-3/deploy/install/services.md
create mode 100644 content/versions/3-0-3/deploy/install/setup-kubernetes.md
create mode 100644 content/versions/3-0-3/deploy/maintain/_index.md
create mode 100644 content/versions/3-0-3/deploy/maintain/audit.md
create mode 100644 content/versions/3-0-3/deploy/maintain/bpmn-nodes.md
create mode 100644 content/versions/3-0-3/deploy/maintain/keycloak-events.md
create mode 100644 content/versions/3-0-3/deploy/restore/_index.md
create mode 100644 content/versions/3-0-3/deploy/restore/audit.md
create mode 100644 content/versions/3-0-3/deploy/restore/binary.md
create mode 100644 content/versions/3-0-3/deploy/restore/grafana.md
create mode 100644 content/versions/3-0-3/deploy/restore/graphdb.md
create mode 100644 content/versions/3-0-3/deploy/restore/influxdb.md
create mode 100644 content/versions/3-0-3/deploy/restore/keycloak.md
create mode 100644 content/versions/3-0-3/deploy/upgrade.md
create mode 100644 content/versions/3-0-3/explanations/_index.md
create mode 100644 content/versions/3-0-3/explanations/about-openidconnect.md
create mode 100644 content/versions/3-0-3/explanations/manufacturing-data-hub.md
create mode 100644 content/versions/3-0-3/get-started/_index.md
create mode 100644 content/versions/3-0-3/get-started/arch-overview.excalidraw
create mode 100644 content/versions/3-0-3/get-started/diagram-rhize-arch-overview.png
create mode 100644 content/versions/3-0-3/get-started/how-rhize-works.md
create mode 100644 content/versions/3-0-3/get-started/introduction.md
create mode 100644 content/versions/3-0-3/get-started/rhize-diagram-data-sources.png
create mode 100644 content/versions/3-0-3/how-to/_index.md
create mode 100644 content/versions/3-0-3/how-to/audit.md
create mode 100644 content/versions/3-0-3/how-to/bpmn/_index.md
create mode 100644 content/versions/3-0-3/how-to/bpmn/bpmn-elements.md
create mode 100644 content/versions/3-0-3/how-to/bpmn/create-workflow.md
create mode 100644 content/versions/3-0-3/how-to/bpmn/debug-workflows.md
create mode 100644 content/versions/3-0-3/how-to/bpmn/learning-resources.md
create mode 100644 content/versions/3-0-3/how-to/bpmn/naming-conventions.md
create mode 100644 content/versions/3-0-3/how-to/bpmn/screenshot-rhize-flamegraph-json.png
create mode 100644 content/versions/3-0-3/how-to/bpmn/trigger-workflows.md
create mode 100644 content/versions/3-0-3/how-to/bpmn/tune-performance.md
create mode 100644 content/versions/3-0-3/how-to/bpmn/use-jsonata.md
create mode 100644 content/versions/3-0-3/how-to/bpmn/variables.md
create mode 100644 content/versions/3-0-3/how-to/gql/_index.md
create mode 100644 content/versions/3-0-3/how-to/gql/call-the-graphql-api.md
create mode 100644 content/versions/3-0-3/how-to/gql/default.md
create mode 100644 content/versions/3-0-3/how-to/gql/directives.md
create mode 100644 content/versions/3-0-3/how-to/gql/filter.md
create mode 100644 content/versions/3-0-3/how-to/gql/generate.md
create mode 100644 content/versions/3-0-3/how-to/gql/mutate.md
create mode 100644 content/versions/3-0-3/how-to/gql/query.md
create mode 100644 content/versions/3-0-3/how-to/gql/subscribe.md
create mode 100644 content/versions/3-0-3/how-to/kpi-service/_index.md
create mode 100644 content/versions/3-0-3/how-to/kpi-service/about-kpi-service.md
create mode 100644 content/versions/3-0-3/how-to/kpi-service/configure-kpi-service.md
create mode 100644 content/versions/3-0-3/how-to/kpi-service/query-kpi-service.md
create mode 100644 content/versions/3-0-3/how-to/model/_index.md
create mode 100644 content/versions/3-0-3/how-to/model/create-objects-ui.md
create mode 100644 content/versions/3-0-3/how-to/model/master-definitions.md
create mode 100644 content/versions/3-0-3/how-to/publish-subscribe/_index.md
create mode 100644 content/versions/3-0-3/how-to/publish-subscribe/connect-datasource.md
create mode 100644 content/versions/3-0-3/how-to/publish-subscribe/create-equipment-class-rule.md
create mode 100644 content/versions/3-0-3/how-to/publish-subscribe/screenshot-rhize-rules-engine.png
create mode 100644 content/versions/3-0-3/how-to/publish-subscribe/track-changes.md
create mode 100644 content/versions/3-0-3/how-to/work-calendars/_index.md
create mode 100644 content/versions/3-0-3/how-to/work-calendars/about-calendars-and-overrides.md
create mode 100644 content/versions/3-0-3/how-to/work-calendars/create-work-calendar.md
create mode 100644 content/versions/3-0-3/isa-95/_index.md
create mode 100644 content/versions/3-0-3/isa-95/how-to-speak-isa-95.md
create mode 100644 content/versions/3-0-3/isa-95/isa-95-diagrams.md
create mode 100644 content/versions/3-0-3/isa-95/models-of-work/_index.md
create mode 100644 content/versions/3-0-3/isa-95/models-of-work/process-segments.md
create mode 100644 content/versions/3-0-3/isa-95/resources/_index.md
create mode 100644 content/versions/3-0-3/isa-95/resources/equipment.md
create mode 100644 content/versions/3-0-3/isa-95/resources/material.md
create mode 100644 content/versions/3-0-3/reference/_index.md
create mode 100644 content/versions/3-0-3/reference/default-ports.md
create mode 100644 content/versions/3-0-3/reference/glossary.md
create mode 100644 content/versions/3-0-3/reference/gql-types.md
create mode 100644 content/versions/3-0-3/reference/image.png
create mode 100644 content/versions/3-0-3/reference/nats-configuration.md
create mode 100644 content/versions/3-0-3/reference/observability-metrics.md
create mode 100644 content/versions/3-0-3/reference/service-config/_index.md
create mode 100644 content/versions/3-0-3/reference/service-config/agent-configuration.md
create mode 100644 content/versions/3-0-3/reference/service-config/audit-configuration.md
create mode 100644 content/versions/3-0-3/reference/service-config/bpmn-configuration.md
create mode 100644 content/versions/3-0-3/reference/service-config/calendar-configuration.md
create mode 100644 content/versions/3-0-3/reference/service-config/core-configuration.md
create mode 100644 content/versions/3-0-3/releases/3-0-1.md
create mode 100644 content/versions/3-0-3/releases/3-0-3.md
rename content/{ => versions/3-0-3}/releases/3-0.md (100%)
create mode 100644 content/versions/3-0-3/releases/_index.md
create mode 100644 content/versions/3-0-3/releases/changelog/3-0-0.md
create mode 100644 content/versions/3-0-3/releases/changelog/3-0-0rc05.md
create mode 100644 content/versions/3-0-3/releases/changelog/3-0-0rc06.md
create mode 100644 content/versions/3-0-3/releases/changelog/3-0-0rc07.md
create mode 100644 content/versions/3-0-3/releases/changelog/3-0-0rc08.md
create mode 100644 content/versions/3-0-3/releases/changelog/3-0-0rc09.md
create mode 100644 content/versions/3-0-3/releases/changelog/_index.md
create mode 100644 content/versions/3-0-3/releases/checksums/v.3.0.3-checksums.txt
create mode 100644 content/versions/3-0-3/releases/checksums/v3.0.0-checksums.txt
create mode 100644 content/versions/3-0-3/releases/checksums/v3.0.1-checksums.txt
create mode 100644 content/versions/3-0-3/releases/checksums/v3.0.3-checksums.txt
create mode 100644 content/versions/3-0-3/use-cases/_index.md
create mode 100644 content/versions/3-0-3/use-cases/calculate-oee.md
create mode 100644 content/versions/3-0-3/use-cases/data-collection-ebr.md
create mode 100644 content/versions/3-0-3/use-cases/ebr.md
create mode 100644 content/versions/3-0-3/use-cases/genealogy.md
create mode 100644 content/versions/3-0-3/use-cases/overview.md
create mode 100644 layouts/partials/theme-toggle.html
diff --git a/config/_default/hugo.yaml b/config/_default/hugo.yaml
index 9c75eb9d8..d1c4613c3 100644
--- a/config/_default/hugo.yaml
+++ b/config/_default/hugo.yaml
@@ -48,9 +48,7 @@ markup:
goldmark:
renderer:
unsafe: true
- renderHooks:
- link:
- enableDefault: true
+
# enable hextra syntax highlight
highlight:
noClasses: false
@@ -86,3 +84,7 @@ permalinks:
docs: /:slug/
section:
docs: /
+
+
+refLinksErrorLevel: warning
+
diff --git a/content/_index.md b/content/_index.md
index 1ca744ae6..a08e3e73e 100644
--- a/content/_index.md
+++ b/content/_index.md
@@ -1,29 +1,3 @@
---
-title: ##Leave only home page without title
-description: User guides, deploy docs, references, and deep dives about the
- Rhize manufacturing data hub.
-cascade:
- type: docs
+title: Rhize documentation
---
-
-
-
-
-The Rhize Manufacturing Data Hub
-
-
-Rhize is a real-time, event-driven manufacturing data hub.
-
-Rhize unites all events from your manufacturing processes, relates these events as a single graph structure,
-and provides access to any combination of them through a single API endpoint.
-The tight integration of all levels of manufacturing data, from real-time sensor data to operations orders, serves a wide variety of business needs, including as:
-
-- **A manufacturing knowledge graph.** Help humans and algorithms analyze plant processes and discover places to optimize.
-- **An integrator of systems.** Orchestrate processes across applications to standardize, coordinate, and transform data flows.
-- **A backend for {{< abbr "MES" >}} applications.** Rapidly build frontends on top of the database and workflow engine.
- Design the MES system that makes sense for your processes and people.
-
-
-{{< card-list >}}
-
-
diff --git a/content/latest/_index.md b/content/latest/_index.md
new file mode 100644
index 000000000..2a0d5dad0
--- /dev/null
+++ b/content/latest/_index.md
@@ -0,0 +1,30 @@
+---
+title: ##Leave only home page without title
+description: User guides, deploy docs, references, and deep dives about the
+ Rhize manufacturing data hub.
+cascade:
+ type: docs
+ v: latest
+---
+
+
+
+
+The Rhize Manufacturing Data Hub
+
+
+Rhize is a real-time, event-driven manufacturing data hub.
+
+Rhize unites all events from your manufacturing processes, relates these events as a single graph structure,
+and provides access to any combination of them through a single API endpoint.
+The tight integration of all levels of manufacturing data, from real-time sensor data to operations orders, serves a wide variety of business needs, including as:
+
+- **A manufacturing knowledge graph.** Help humans and algorithms analyze plant processes and discover places to optimize.
+- **An integrator of systems.** Orchestrate processes across applications to standardize, coordinate, and transform data flows.
+- **A backend for {{< abbr "MES" >}} applications.** Rapidly build frontends on top of the database and workflow engine.
+ Design the MES system that makes sense for your processes and people.
+
+
+{{< card-list >}}
+
+
diff --git a/content/deploy/_index.md b/content/latest/deploy/_index.md
similarity index 100%
rename from content/deploy/_index.md
rename to content/latest/deploy/_index.md
diff --git a/content/deploy/backup/_index.md b/content/latest/deploy/backup/_index.md
similarity index 100%
rename from content/deploy/backup/_index.md
rename to content/latest/deploy/backup/_index.md
diff --git a/content/deploy/backup/audit.md b/content/latest/deploy/backup/audit.md
similarity index 100%
rename from content/deploy/backup/audit.md
rename to content/latest/deploy/backup/audit.md
diff --git a/content/deploy/backup/binary.md b/content/latest/deploy/backup/binary.md
similarity index 100%
rename from content/deploy/backup/binary.md
rename to content/latest/deploy/backup/binary.md
diff --git a/content/deploy/backup/grafana.md b/content/latest/deploy/backup/grafana.md
similarity index 100%
rename from content/deploy/backup/grafana.md
rename to content/latest/deploy/backup/grafana.md
diff --git a/content/deploy/backup/graphdb.md b/content/latest/deploy/backup/graphdb.md
similarity index 100%
rename from content/deploy/backup/graphdb.md
rename to content/latest/deploy/backup/graphdb.md
diff --git a/content/deploy/backup/influx.md b/content/latest/deploy/backup/influx.md
similarity index 100%
rename from content/deploy/backup/influx.md
rename to content/latest/deploy/backup/influx.md
diff --git a/content/deploy/backup/keycloak.md b/content/latest/deploy/backup/keycloak.md
similarity index 100%
rename from content/deploy/backup/keycloak.md
rename to content/latest/deploy/backup/keycloak.md
diff --git a/content/deploy/install/_index.md b/content/latest/deploy/install/_index.md
similarity index 100%
rename from content/deploy/install/_index.md
rename to content/latest/deploy/install/_index.md
diff --git a/content/deploy/install/image.png b/content/latest/deploy/install/image.png
similarity index 100%
rename from content/deploy/install/image.png
rename to content/latest/deploy/install/image.png
diff --git a/content/deploy/install/keycloak.md b/content/latest/deploy/install/keycloak.md
similarity index 100%
rename from content/deploy/install/keycloak.md
rename to content/latest/deploy/install/keycloak.md
diff --git a/content/deploy/install/overview.md b/content/latest/deploy/install/overview.md
similarity index 100%
rename from content/deploy/install/overview.md
rename to content/latest/deploy/install/overview.md
diff --git a/content/deploy/install/services.md b/content/latest/deploy/install/services.md
similarity index 100%
rename from content/deploy/install/services.md
rename to content/latest/deploy/install/services.md
diff --git a/content/deploy/install/setup-kubernetes.md b/content/latest/deploy/install/setup-kubernetes.md
similarity index 100%
rename from content/deploy/install/setup-kubernetes.md
rename to content/latest/deploy/install/setup-kubernetes.md
diff --git a/content/deploy/maintain/_index.md b/content/latest/deploy/maintain/_index.md
similarity index 100%
rename from content/deploy/maintain/_index.md
rename to content/latest/deploy/maintain/_index.md
diff --git a/content/deploy/maintain/audit.md b/content/latest/deploy/maintain/audit.md
similarity index 100%
rename from content/deploy/maintain/audit.md
rename to content/latest/deploy/maintain/audit.md
diff --git a/content/deploy/maintain/bpmn-nodes.md b/content/latest/deploy/maintain/bpmn-nodes.md
similarity index 100%
rename from content/deploy/maintain/bpmn-nodes.md
rename to content/latest/deploy/maintain/bpmn-nodes.md
diff --git a/content/deploy/maintain/keycloak-events.md b/content/latest/deploy/maintain/keycloak-events.md
similarity index 100%
rename from content/deploy/maintain/keycloak-events.md
rename to content/latest/deploy/maintain/keycloak-events.md
diff --git a/content/deploy/restore/_index.md b/content/latest/deploy/restore/_index.md
similarity index 100%
rename from content/deploy/restore/_index.md
rename to content/latest/deploy/restore/_index.md
diff --git a/content/deploy/restore/audit.md b/content/latest/deploy/restore/audit.md
similarity index 100%
rename from content/deploy/restore/audit.md
rename to content/latest/deploy/restore/audit.md
diff --git a/content/deploy/restore/binary.md b/content/latest/deploy/restore/binary.md
similarity index 100%
rename from content/deploy/restore/binary.md
rename to content/latest/deploy/restore/binary.md
diff --git a/content/deploy/restore/grafana.md b/content/latest/deploy/restore/grafana.md
similarity index 100%
rename from content/deploy/restore/grafana.md
rename to content/latest/deploy/restore/grafana.md
diff --git a/content/deploy/restore/graphdb.md b/content/latest/deploy/restore/graphdb.md
similarity index 100%
rename from content/deploy/restore/graphdb.md
rename to content/latest/deploy/restore/graphdb.md
diff --git a/content/deploy/restore/influxdb.md b/content/latest/deploy/restore/influxdb.md
similarity index 100%
rename from content/deploy/restore/influxdb.md
rename to content/latest/deploy/restore/influxdb.md
diff --git a/content/deploy/restore/keycloak.md b/content/latest/deploy/restore/keycloak.md
similarity index 100%
rename from content/deploy/restore/keycloak.md
rename to content/latest/deploy/restore/keycloak.md
diff --git a/content/deploy/upgrade.md b/content/latest/deploy/upgrade.md
similarity index 100%
rename from content/deploy/upgrade.md
rename to content/latest/deploy/upgrade.md
diff --git a/content/explanations/_index.md b/content/latest/explanations/_index.md
similarity index 100%
rename from content/explanations/_index.md
rename to content/latest/explanations/_index.md
diff --git a/content/explanations/about-openidconnect.md b/content/latest/explanations/about-openidconnect.md
similarity index 100%
rename from content/explanations/about-openidconnect.md
rename to content/latest/explanations/about-openidconnect.md
diff --git a/content/explanations/manufacturing-data-hub.md b/content/latest/explanations/manufacturing-data-hub.md
similarity index 100%
rename from content/explanations/manufacturing-data-hub.md
rename to content/latest/explanations/manufacturing-data-hub.md
diff --git a/content/get-started/_index.md b/content/latest/get-started/_index.md
similarity index 100%
rename from content/get-started/_index.md
rename to content/latest/get-started/_index.md
diff --git a/content/get-started/arch-overview.excalidraw b/content/latest/get-started/arch-overview.excalidraw
similarity index 100%
rename from content/get-started/arch-overview.excalidraw
rename to content/latest/get-started/arch-overview.excalidraw
diff --git a/content/get-started/diagram-rhize-arch-overview.png b/content/latest/get-started/diagram-rhize-arch-overview.png
similarity index 100%
rename from content/get-started/diagram-rhize-arch-overview.png
rename to content/latest/get-started/diagram-rhize-arch-overview.png
diff --git a/content/get-started/how-rhize-works.md b/content/latest/get-started/how-rhize-works.md
similarity index 100%
rename from content/get-started/how-rhize-works.md
rename to content/latest/get-started/how-rhize-works.md
diff --git a/content/get-started/introduction.md b/content/latest/get-started/introduction.md
similarity index 100%
rename from content/get-started/introduction.md
rename to content/latest/get-started/introduction.md
diff --git a/content/get-started/rhize-diagram-data-sources.png b/content/latest/get-started/rhize-diagram-data-sources.png
similarity index 100%
rename from content/get-started/rhize-diagram-data-sources.png
rename to content/latest/get-started/rhize-diagram-data-sources.png
diff --git a/content/how-to/_index.md b/content/latest/how-to/_index.md
similarity index 100%
rename from content/how-to/_index.md
rename to content/latest/how-to/_index.md
diff --git a/content/how-to/audit.md b/content/latest/how-to/audit.md
similarity index 97%
rename from content/how-to/audit.md
rename to content/latest/how-to/audit.md
index 1e727dbb6..083caabd7 100644
--- a/content/how-to/audit.md
+++ b/content/latest/how-to/audit.md
@@ -19,7 +19,7 @@ To use the audit log, ensure you have the following:
- The ability to [Use the Rhize GraphQL API]({{< relref "gql" >}})
- A token configured so that `audience` includes `audit`, and the scopes contain `audit:query`.
- This scope should be created by BaaS, not manually. For details, refer to [Set up Keycloak]({{< relref "../../deploy/install/keycloak/" >}}).
+ This scope should be created by BaaS, not manually. For details, refer to [Set up Keycloak]({{< relref "../deploy/install/keycloak/" >}}).
## Audit through the UI
diff --git a/content/how-to/bpmn/_index.md b/content/latest/how-to/bpmn/_index.md
similarity index 100%
rename from content/how-to/bpmn/_index.md
rename to content/latest/how-to/bpmn/_index.md
diff --git a/content/how-to/bpmn/bpmn-elements.md b/content/latest/how-to/bpmn/bpmn-elements.md
similarity index 100%
rename from content/how-to/bpmn/bpmn-elements.md
rename to content/latest/how-to/bpmn/bpmn-elements.md
diff --git a/content/how-to/bpmn/create-workflow.md b/content/latest/how-to/bpmn/create-workflow.md
similarity index 100%
rename from content/how-to/bpmn/create-workflow.md
rename to content/latest/how-to/bpmn/create-workflow.md
diff --git a/content/how-to/bpmn/debug-workflows.md b/content/latest/how-to/bpmn/debug-workflows.md
similarity index 100%
rename from content/how-to/bpmn/debug-workflows.md
rename to content/latest/how-to/bpmn/debug-workflows.md
diff --git a/content/how-to/bpmn/learning-resources.md b/content/latest/how-to/bpmn/learning-resources.md
similarity index 100%
rename from content/how-to/bpmn/learning-resources.md
rename to content/latest/how-to/bpmn/learning-resources.md
diff --git a/content/how-to/bpmn/naming-conventions.md b/content/latest/how-to/bpmn/naming-conventions.md
similarity index 100%
rename from content/how-to/bpmn/naming-conventions.md
rename to content/latest/how-to/bpmn/naming-conventions.md
diff --git a/content/how-to/bpmn/screenshot-rhize-flamegraph-json.png b/content/latest/how-to/bpmn/screenshot-rhize-flamegraph-json.png
similarity index 100%
rename from content/how-to/bpmn/screenshot-rhize-flamegraph-json.png
rename to content/latest/how-to/bpmn/screenshot-rhize-flamegraph-json.png
diff --git a/content/how-to/bpmn/trigger-workflows.md b/content/latest/how-to/bpmn/trigger-workflows.md
similarity index 100%
rename from content/how-to/bpmn/trigger-workflows.md
rename to content/latest/how-to/bpmn/trigger-workflows.md
diff --git a/content/how-to/bpmn/tune-performance.md b/content/latest/how-to/bpmn/tune-performance.md
similarity index 100%
rename from content/how-to/bpmn/tune-performance.md
rename to content/latest/how-to/bpmn/tune-performance.md
diff --git a/content/how-to/bpmn/use-jsonata.md b/content/latest/how-to/bpmn/use-jsonata.md
similarity index 100%
rename from content/how-to/bpmn/use-jsonata.md
rename to content/latest/how-to/bpmn/use-jsonata.md
diff --git a/content/how-to/bpmn/variables.md b/content/latest/how-to/bpmn/variables.md
similarity index 100%
rename from content/how-to/bpmn/variables.md
rename to content/latest/how-to/bpmn/variables.md
diff --git a/content/how-to/gql/_index.md b/content/latest/how-to/gql/_index.md
similarity index 100%
rename from content/how-to/gql/_index.md
rename to content/latest/how-to/gql/_index.md
diff --git a/content/how-to/gql/call-the-graphql-api.md b/content/latest/how-to/gql/call-the-graphql-api.md
similarity index 100%
rename from content/how-to/gql/call-the-graphql-api.md
rename to content/latest/how-to/gql/call-the-graphql-api.md
diff --git a/content/how-to/gql/default.md b/content/latest/how-to/gql/default.md
similarity index 100%
rename from content/how-to/gql/default.md
rename to content/latest/how-to/gql/default.md
diff --git a/content/how-to/gql/directives.md b/content/latest/how-to/gql/directives.md
similarity index 100%
rename from content/how-to/gql/directives.md
rename to content/latest/how-to/gql/directives.md
diff --git a/content/how-to/gql/filter.md b/content/latest/how-to/gql/filter.md
similarity index 100%
rename from content/how-to/gql/filter.md
rename to content/latest/how-to/gql/filter.md
diff --git a/content/how-to/gql/generate.md b/content/latest/how-to/gql/generate.md
similarity index 100%
rename from content/how-to/gql/generate.md
rename to content/latest/how-to/gql/generate.md
diff --git a/content/how-to/gql/mutate.md b/content/latest/how-to/gql/mutate.md
similarity index 100%
rename from content/how-to/gql/mutate.md
rename to content/latest/how-to/gql/mutate.md
diff --git a/content/how-to/gql/query.md b/content/latest/how-to/gql/query.md
similarity index 100%
rename from content/how-to/gql/query.md
rename to content/latest/how-to/gql/query.md
diff --git a/content/how-to/gql/subscribe.md b/content/latest/how-to/gql/subscribe.md
similarity index 100%
rename from content/how-to/gql/subscribe.md
rename to content/latest/how-to/gql/subscribe.md
diff --git a/content/how-to/kpi-service/_index.md b/content/latest/how-to/kpi-service/_index.md
similarity index 100%
rename from content/how-to/kpi-service/_index.md
rename to content/latest/how-to/kpi-service/_index.md
diff --git a/content/how-to/kpi-service/about-kpi-service.md b/content/latest/how-to/kpi-service/about-kpi-service.md
similarity index 100%
rename from content/how-to/kpi-service/about-kpi-service.md
rename to content/latest/how-to/kpi-service/about-kpi-service.md
diff --git a/content/how-to/kpi-service/configure-kpi-service.md b/content/latest/how-to/kpi-service/configure-kpi-service.md
similarity index 100%
rename from content/how-to/kpi-service/configure-kpi-service.md
rename to content/latest/how-to/kpi-service/configure-kpi-service.md
diff --git a/content/how-to/kpi-service/query-kpi-service.md b/content/latest/how-to/kpi-service/query-kpi-service.md
similarity index 100%
rename from content/how-to/kpi-service/query-kpi-service.md
rename to content/latest/how-to/kpi-service/query-kpi-service.md
diff --git a/content/how-to/model/_index.md b/content/latest/how-to/model/_index.md
similarity index 100%
rename from content/how-to/model/_index.md
rename to content/latest/how-to/model/_index.md
diff --git a/content/how-to/model/create-objects-ui.md b/content/latest/how-to/model/create-objects-ui.md
similarity index 100%
rename from content/how-to/model/create-objects-ui.md
rename to content/latest/how-to/model/create-objects-ui.md
diff --git a/content/how-to/model/master-definitions.md b/content/latest/how-to/model/master-definitions.md
similarity index 100%
rename from content/how-to/model/master-definitions.md
rename to content/latest/how-to/model/master-definitions.md
diff --git a/content/how-to/publish-subscribe/_index.md b/content/latest/how-to/publish-subscribe/_index.md
similarity index 100%
rename from content/how-to/publish-subscribe/_index.md
rename to content/latest/how-to/publish-subscribe/_index.md
diff --git a/content/how-to/publish-subscribe/connect-datasource.md b/content/latest/how-to/publish-subscribe/connect-datasource.md
similarity index 100%
rename from content/how-to/publish-subscribe/connect-datasource.md
rename to content/latest/how-to/publish-subscribe/connect-datasource.md
diff --git a/content/how-to/publish-subscribe/create-equipment-class-rule.md b/content/latest/how-to/publish-subscribe/create-equipment-class-rule.md
similarity index 100%
rename from content/how-to/publish-subscribe/create-equipment-class-rule.md
rename to content/latest/how-to/publish-subscribe/create-equipment-class-rule.md
diff --git a/content/how-to/publish-subscribe/screenshot-rhize-rules-engine.png b/content/latest/how-to/publish-subscribe/screenshot-rhize-rules-engine.png
similarity index 100%
rename from content/how-to/publish-subscribe/screenshot-rhize-rules-engine.png
rename to content/latest/how-to/publish-subscribe/screenshot-rhize-rules-engine.png
diff --git a/content/how-to/publish-subscribe/track-changes.md b/content/latest/how-to/publish-subscribe/track-changes.md
similarity index 100%
rename from content/how-to/publish-subscribe/track-changes.md
rename to content/latest/how-to/publish-subscribe/track-changes.md
diff --git a/content/how-to/work-calendars/_index.md b/content/latest/how-to/work-calendars/_index.md
similarity index 100%
rename from content/how-to/work-calendars/_index.md
rename to content/latest/how-to/work-calendars/_index.md
diff --git a/content/how-to/work-calendars/about-calendars-and-overrides.md b/content/latest/how-to/work-calendars/about-calendars-and-overrides.md
similarity index 100%
rename from content/how-to/work-calendars/about-calendars-and-overrides.md
rename to content/latest/how-to/work-calendars/about-calendars-and-overrides.md
diff --git a/content/how-to/work-calendars/create-work-calendar.md b/content/latest/how-to/work-calendars/create-work-calendar.md
similarity index 100%
rename from content/how-to/work-calendars/create-work-calendar.md
rename to content/latest/how-to/work-calendars/create-work-calendar.md
diff --git a/content/isa-95/_index.md b/content/latest/isa-95/_index.md
similarity index 100%
rename from content/isa-95/_index.md
rename to content/latest/isa-95/_index.md
diff --git a/content/isa-95/how-to-speak-isa-95.md b/content/latest/isa-95/how-to-speak-isa-95.md
similarity index 100%
rename from content/isa-95/how-to-speak-isa-95.md
rename to content/latest/isa-95/how-to-speak-isa-95.md
diff --git a/content/isa-95/isa-95-diagrams.md b/content/latest/isa-95/isa-95-diagrams.md
similarity index 100%
rename from content/isa-95/isa-95-diagrams.md
rename to content/latest/isa-95/isa-95-diagrams.md
diff --git a/content/isa-95/models-of-work/_index.md b/content/latest/isa-95/models-of-work/_index.md
similarity index 100%
rename from content/isa-95/models-of-work/_index.md
rename to content/latest/isa-95/models-of-work/_index.md
diff --git a/content/isa-95/models-of-work/process-segments.md b/content/latest/isa-95/models-of-work/process-segments.md
similarity index 100%
rename from content/isa-95/models-of-work/process-segments.md
rename to content/latest/isa-95/models-of-work/process-segments.md
diff --git a/content/isa-95/resources/_index.md b/content/latest/isa-95/resources/_index.md
similarity index 100%
rename from content/isa-95/resources/_index.md
rename to content/latest/isa-95/resources/_index.md
diff --git a/content/isa-95/resources/equipment.md b/content/latest/isa-95/resources/equipment.md
similarity index 100%
rename from content/isa-95/resources/equipment.md
rename to content/latest/isa-95/resources/equipment.md
diff --git a/content/isa-95/resources/material.md b/content/latest/isa-95/resources/material.md
similarity index 100%
rename from content/isa-95/resources/material.md
rename to content/latest/isa-95/resources/material.md
diff --git a/content/reference/_index.md b/content/latest/reference/_index.md
similarity index 100%
rename from content/reference/_index.md
rename to content/latest/reference/_index.md
diff --git a/content/reference/default-ports.md b/content/latest/reference/default-ports.md
similarity index 100%
rename from content/reference/default-ports.md
rename to content/latest/reference/default-ports.md
diff --git a/content/reference/glossary.md b/content/latest/reference/glossary.md
similarity index 100%
rename from content/reference/glossary.md
rename to content/latest/reference/glossary.md
diff --git a/content/reference/gql-types.md b/content/latest/reference/gql-types.md
similarity index 100%
rename from content/reference/gql-types.md
rename to content/latest/reference/gql-types.md
diff --git a/content/reference/image.png b/content/latest/reference/image.png
similarity index 100%
rename from content/reference/image.png
rename to content/latest/reference/image.png
diff --git a/content/reference/nats-configuration.md b/content/latest/reference/nats-configuration.md
similarity index 100%
rename from content/reference/nats-configuration.md
rename to content/latest/reference/nats-configuration.md
diff --git a/content/reference/observability-metrics.md b/content/latest/reference/observability-metrics.md
similarity index 100%
rename from content/reference/observability-metrics.md
rename to content/latest/reference/observability-metrics.md
diff --git a/content/reference/service-config/_index.md b/content/latest/reference/service-config/_index.md
similarity index 100%
rename from content/reference/service-config/_index.md
rename to content/latest/reference/service-config/_index.md
diff --git a/content/reference/service-config/agent-configuration.md b/content/latest/reference/service-config/agent-configuration.md
similarity index 100%
rename from content/reference/service-config/agent-configuration.md
rename to content/latest/reference/service-config/agent-configuration.md
diff --git a/content/reference/service-config/audit-configuration.md b/content/latest/reference/service-config/audit-configuration.md
similarity index 100%
rename from content/reference/service-config/audit-configuration.md
rename to content/latest/reference/service-config/audit-configuration.md
diff --git a/content/reference/service-config/bpmn-configuration.md b/content/latest/reference/service-config/bpmn-configuration.md
similarity index 100%
rename from content/reference/service-config/bpmn-configuration.md
rename to content/latest/reference/service-config/bpmn-configuration.md
diff --git a/content/reference/service-config/calendar-configuration.md b/content/latest/reference/service-config/calendar-configuration.md
similarity index 100%
rename from content/reference/service-config/calendar-configuration.md
rename to content/latest/reference/service-config/calendar-configuration.md
diff --git a/content/reference/service-config/core-configuration.md b/content/latest/reference/service-config/core-configuration.md
similarity index 100%
rename from content/reference/service-config/core-configuration.md
rename to content/latest/reference/service-config/core-configuration.md
diff --git a/content/releases/3-0-1.md b/content/latest/releases/3-0-1.md
similarity index 100%
rename from content/releases/3-0-1.md
rename to content/latest/releases/3-0-1.md
diff --git a/content/releases/3-0-3.md b/content/latest/releases/3-0-3.md
similarity index 100%
rename from content/releases/3-0-3.md
rename to content/latest/releases/3-0-3.md
diff --git a/content/latest/releases/3-0.md b/content/latest/releases/3-0.md
new file mode 100644
index 000000000..36dd0fed2
--- /dev/null
+++ b/content/latest/releases/3-0.md
@@ -0,0 +1,155 @@
+---
+title: "Rhize 3.0"
+date: '2024-02-27T09:17:43-03:00'
+description: >-
+ Notes for v3.0 of the Rhize Manufacturing Data Hub. A flexible architecture for workflow orchestration, message handling, standards-based modeling, and custom MES apps.
+categories: ["releases"]
+weight: 1709031155 ## auto-generated, don't change
+---
+
+Rhize version 3.0 is now in general release! :partying_face:
+As a full rewrite of our earlier Libre 2.0 application, this release functionally announces a new product.
+
+Read more to learn about the features available in the Rhize Manufacturing Data Hub.
+
+## What is Rhize?
+
+Rhize is the world's first manufacturing data hub.
+It collects event data emitted from all levels of a manufacturing process,
+stores this data in a standardized schema,
+and exposes access to the event stream so users can orchestrate workflows in real-time.
+
+Customers use Rhize to observe and react to past and present states of their manufacturing operation. Its use cases include:
+- **A single source of truth for manufacturing records**. With manufacturing events represented as _a knowledge graph_, Rhize provides access to any view of the system through a single query to a single endpoint. You can query detailed reports about a specific asset, such as a manufacturing batch, or compare production across broad categories, for example, between equipment items or production lines.
+- **A backend for custom MES and MOM applications**. As the data hub has a message broker and real-time database, operators can program custom level-three applications for functions such as track and trace, material genealogy, electronic batch record creation, and KPI calculations.
+- **An integrator of legacy systems**. Rhize accepts data from legacy systems and converts them to a standardized schema. Thus, it serves as a hub to communicate between legacy systems in ways that would otherwise be impossible or very difficult to maintain.
+
+
+## Features
+
+Each of the following features supports Rhize's key design goals:
+- Provide a highly reliable means to collect manufacturing data from varied sources
+- Standardize this data in a way that accurately places it within an _event_ in the context of an entire manufacturing operation
+- Offer a programmable engine to write custom logic to process the data and send it between systems
+- Serve as a complete backend application and architecture for MES/MOM frontends
+- Expose this system through an interface that is accessible to the widest number of stakeholders in the manufacturing operation.
+
+### Knowledge graph and GraphQL
+
+Data is stored in the Rhize DB, a graph database with a custom schema that uses the ISA-95 standard as a data model.
+This database provides several advantages over a relational database or data lake:
+
+- **Standardization.**
+ The database schema enforces standardization using a data model that adequately represents an entire manufacturing operation.
+ All data stored in Rhize has a common structure, unlike the heterogeneous data of a data lake.
+- **Graph Structures.**
+ The graph database represents the object model of ISA-95 exactly.
+ Every event in a manufacturing process is connected to all other events.
+ For example, a job response might have associated operations requests, personnel, equipment, and materials that are consumed and produced.
+ All these objects have their associated classes, instances, and contexts (where context could be a time range, operations segment, or zone of information exchange).
+- **Intuitive, minimal queries**. The Rhize DB is exposed through a GraphQL API, which provides a complete interface through a single endpoint.
+ Users query exactly what they want without needing to handle the relational algebra of SQL or the over-fetching of a REST API.
+
+With standardization, graph structure, and complete interfaces, the Rhize DB thus constitutes a knowledge graph that represents the entire state of a manufacturing operation.
+Users use this knowledge graph to run simulations, discover optimizations, and train machine-learning models for predictive analysis.
+
+You can read and write to the knowledge graph through a GraphQL explorer, a BPMN workflow, a custom frontend, or through the Modeling UI.
+To learn how to use GraphQL for manufacturing analysis, read the [Rhize guide to GraphQL]({{< relref "../how-to/gql" >}}).
+
+### Modeling UI
+
+The Rhize UI is a graphical interface to model and store the objects in your manufacturing process. Without needing programming knowledge, your operators can use the Admin UI to define the items in your role-based equipment hierarchy. For example, you can create and associate equipment with equipment classes, hierarchy scopes, data sources, and segments―all the objects that change infrequently.
+
+These models provide the foundational data objects to associate with the dynamic data that you collect, analyze, and handle during ongoing operations.
+To learn more, read the [Model objects]({{< relref "../how-to/model/create-objects-ui/" >}}) guide and its corresponding topic that describes the [Master definitions and fields]({{< relref "../how-to/model/master-definitions/" >}}).
+
+### Low-code workflow orchestration
+
+While some aspects of manufacturing, such as the plant site, are constant, most manufacturing data is emitted dynamically during production.
+Rhize's {{< abbr "BPMN" >}} editor provides a graphical interface to listen to events, write logic based on event conditions, and process data to send to other devices or store in the knowledge graph.
+It has gateways to represent conditions, messaging to subscribe and publish to topics, and a JSON interpreter to transform variables and process manufacturing data in batches.
+
+For example, you can write a BPMN workflow to do any combination of the following:
+- Automatically write the values associated with a specific job to the database
+- Evaluate incoming data for conditions and write logic to transform this data and send it
+- Subscribe and publish to topics, coordinating communication between systems
+- Listen to events and read and write machine data through OPC-UA
+
+To get started, read the Guides to [Use BPMN]({{< relref "../how-to/bpmn" >}}) and [Write rules]({{< relref "../how-to/publish-subscribe/create-equipment-class-rule" >}}) to trigger workflows from data source values.
+
+### Agent and message broker
+
+Rhize collects data from multiple data sources and protocols.
+To bridge the Rhize system with your devices, Rhize has an agent to collect data from OPC UA and MQTT servers.
+The Rhize agent listens for your devices' messages and publishes them to the message broker.
+
+Based on NATS, Rhize's message broker decouples communication through a publish-and-subscribe pattern.
+Rhize BPMN workflows can subscribe to topics and publish topics back.
+On your side, your manufacturing devices can publish topics to Rhize and subscribe to topics that are published from some BPMN trigger or to changes in the database.
+You can also use Rhize workflows to publish and subscribe to topics on an external broker.
+
+To learn more, read the guide to [Connect a data source]({{< relref "../how-to/publish-subscribe" >}}) and the reference for [Agent Configuration]({{< relref "../reference/service-config/agent-configuration" >}}).
+
+### Audit trails
+
+Manufacturing often happens in strict regulatory environments and in systems where security is critical.
+The Rhize audit log maintains a record of all changes that happen in the system.
+To learn more, read the [Audit]({{< relref "../how-to/audit" >}}) guide.
+
+
+### Secure, vendor-agnostic infrastructure
+
+Rhize is built on open standards and heavily uses open-source cloud infrastructure.
+As such, Rhize is designed to conform to your operation's IT and manufacturing processes.
+
+Rhize runs on your IT infrastructure.
+The data model itself is based on a widely recognized standard, ISA-95.
+Your teams control its security and access policies, with authentication provided through [OpenID Connect]({{< relref "../explanations/about-openidconnect.md" >}}).
+
+### High availability and reliability
+
+Mission-critical systems, such as an MES, must be highly reliable and available.
+Information flows in manufacturing can also have very high demands for CPU, network throughput, and memory.
+
+The design of Rhize accommodates horizontal scaling, where the application runs in clusters of multiple computers.
+This distributed execution ensures that the system continues functioning during upgrades, periods of high use, and momentary failures in single nodes.
+Specifically, Rhize uses Kubernetes for container orchestration, a distributed, ACID-compliant database, and a message broker that uses replication to harden against failure.
+
+The reliance on open source also means that your operators do not need to learn a specialized skill to deploy Rhize.
+It uses the same cloud-native applications that power the modern web.
+
+Read all about how to Deploy Rhize in the [Deploy]({{< relref "../deploy" >}}) guides.
+
+### A backend for MES applications
+
+With the knowledge graph, message broker, and workflow executor, and secure infrastructure,
+Rhize also provides all the components necessary to write custom applications for Manufacturing Execution Systems.
+Rather than rely on a vendor to sell an MES system that prescribes exactly what data it can use and how it can use this data, use Rhize to build the custom MES frontend of your choice.
+
+Combined with rapid prototyping and low-code tools, you can use Rhize to build MES applications quickly and iterate on them as your operators use them in production.
+
+## Install
+
+To install, read the [Install guide]({{< relref "../deploy/install" >}}).
+Or, if upgrading from a release candidate, use the [Upgrade guide]({{< relref "../deploy/upgrade" >}}).
+If upgrading, be sure to review the changelog to be aware of any possible breaking changes.
+
+{{< compatible "3.0.0" >}}
+
+{{% checksums "v3.0.0-checksums.txt" %}}
+
+### Changelogs
+
+The following changelogs document the features, fixes, and refactoring that went into this release.
+- [3.0.0]({{< relref "changelog/3-0-0/" >}})
+- [3.0.0rc09]({{< relref "changelog/3-0-0rc09/" >}})
+- [3.0.0rc08]({{< relref "changelog/3-0-0rc08/" >}})
+- [3.0.0rc07]({{< relref "changelog/3-0-0rc07/" >}})
+- [3.0.0rc06]({{< relref "changelog/3-0-0rc06/" >}})
+- [3.0.0rc05]({{< relref "changelog/3-0-0rc05/" >}})
+
+## Read more
+
+- [Get started]({{< relref "../get-started" >}}) introduces Rhize's application and architecture.
+- [Manufacturing data hub]({{< relref "../explanations" >}}) explains why Rhize chose its design.
+- [Use cases]({{< relref "../use-cases" >}}) explains ways customers use Rhize.
diff --git a/content/releases/_index.md b/content/latest/releases/_index.md
similarity index 100%
rename from content/releases/_index.md
rename to content/latest/releases/_index.md
diff --git a/content/releases/changelog/3-0-0.md b/content/latest/releases/changelog/3-0-0.md
similarity index 100%
rename from content/releases/changelog/3-0-0.md
rename to content/latest/releases/changelog/3-0-0.md
diff --git a/content/releases/changelog/3-0-0rc05.md b/content/latest/releases/changelog/3-0-0rc05.md
similarity index 100%
rename from content/releases/changelog/3-0-0rc05.md
rename to content/latest/releases/changelog/3-0-0rc05.md
diff --git a/content/releases/changelog/3-0-0rc06.md b/content/latest/releases/changelog/3-0-0rc06.md
similarity index 100%
rename from content/releases/changelog/3-0-0rc06.md
rename to content/latest/releases/changelog/3-0-0rc06.md
diff --git a/content/releases/changelog/3-0-0rc07.md b/content/latest/releases/changelog/3-0-0rc07.md
similarity index 100%
rename from content/releases/changelog/3-0-0rc07.md
rename to content/latest/releases/changelog/3-0-0rc07.md
diff --git a/content/releases/changelog/3-0-0rc08.md b/content/latest/releases/changelog/3-0-0rc08.md
similarity index 100%
rename from content/releases/changelog/3-0-0rc08.md
rename to content/latest/releases/changelog/3-0-0rc08.md
diff --git a/content/releases/changelog/3-0-0rc09.md b/content/latest/releases/changelog/3-0-0rc09.md
similarity index 100%
rename from content/releases/changelog/3-0-0rc09.md
rename to content/latest/releases/changelog/3-0-0rc09.md
diff --git a/content/releases/changelog/_index.md b/content/latest/releases/changelog/_index.md
similarity index 100%
rename from content/releases/changelog/_index.md
rename to content/latest/releases/changelog/_index.md
diff --git a/content/releases/checksums/v.3.0.3-checksums.txt b/content/latest/releases/checksums/v.3.0.3-checksums.txt
similarity index 100%
rename from content/releases/checksums/v.3.0.3-checksums.txt
rename to content/latest/releases/checksums/v.3.0.3-checksums.txt
diff --git a/content/releases/checksums/v3.0.0-checksums.txt b/content/latest/releases/checksums/v3.0.0-checksums.txt
similarity index 100%
rename from content/releases/checksums/v3.0.0-checksums.txt
rename to content/latest/releases/checksums/v3.0.0-checksums.txt
diff --git a/content/releases/checksums/v3.0.1-checksums.txt b/content/latest/releases/checksums/v3.0.1-checksums.txt
similarity index 100%
rename from content/releases/checksums/v3.0.1-checksums.txt
rename to content/latest/releases/checksums/v3.0.1-checksums.txt
diff --git a/content/releases/checksums/v3.0.3-checksums.txt b/content/latest/releases/checksums/v3.0.3-checksums.txt
similarity index 100%
rename from content/releases/checksums/v3.0.3-checksums.txt
rename to content/latest/releases/checksums/v3.0.3-checksums.txt
diff --git a/content/use-cases/_index.md b/content/latest/use-cases/_index.md
similarity index 100%
rename from content/use-cases/_index.md
rename to content/latest/use-cases/_index.md
diff --git a/content/use-cases/calculate-oee.md b/content/latest/use-cases/calculate-oee.md
similarity index 100%
rename from content/use-cases/calculate-oee.md
rename to content/latest/use-cases/calculate-oee.md
diff --git a/content/use-cases/data-collection-ebr.md b/content/latest/use-cases/data-collection-ebr.md
similarity index 100%
rename from content/use-cases/data-collection-ebr.md
rename to content/latest/use-cases/data-collection-ebr.md
diff --git a/content/use-cases/ebr.md b/content/latest/use-cases/ebr.md
similarity index 100%
rename from content/use-cases/ebr.md
rename to content/latest/use-cases/ebr.md
diff --git a/content/use-cases/genealogy.md b/content/latest/use-cases/genealogy.md
similarity index 100%
rename from content/use-cases/genealogy.md
rename to content/latest/use-cases/genealogy.md
diff --git a/content/use-cases/overview.md b/content/latest/use-cases/overview.md
similarity index 100%
rename from content/use-cases/overview.md
rename to content/latest/use-cases/overview.md
diff --git a/content/versions/3-0-3/_index.md b/content/versions/3-0-3/_index.md
new file mode 100644
index 000000000..e42e1aac0
--- /dev/null
+++ b/content/versions/3-0-3/_index.md
@@ -0,0 +1,10 @@
+---
+title: v3.0.3
+description: Archive documentation for Rhize version 3-0-3
+cascade:
+ v: 3.0.3
+ type: versions
+---
+
+
+{{< card-list >}}
diff --git a/content/versions/3-0-3/deploy/_index.md b/content/versions/3-0-3/deploy/_index.md
new file mode 100644
index 000000000..7bd07fbb0
--- /dev/null
+++ b/content/versions/3-0-3/deploy/_index.md
@@ -0,0 +1,41 @@
+---
+title: Deploy
+description: >-
+ A collection of pages to administrate Rhize: install, upgrade, back up, and more.
+weight: 100
+icon: server
+identifier: deploy
+cascade:
+ version: latest
+ icon: server
+ domain_name: libremfg.ai
+ brand_name: Libre
+ application_name: libre
+ db: libreBaas
+ pre_reqs: |-
+ - Optional: [kubectx](https://github.com/ahmetb/kubectx) utilities
+ - `kubectx` to manage multiple clusters
+ - `kubens` to switch between and configure namespaces easily
+ - Optional: the [k8 Lens IDE](https://k8slens.dev), if you prefer to use Kubernetes graphically
+ k8s_cluster_ns: |-
+ ```bash
+ ## context
+ kubectl config current-context
+ ## namespace
+ kubectl get namespace
+ ```
+
+ To change the namespace for all subsequent `kubectl` commands to `libre`, run this command:
+
+ ```bash
+ kubectl config set-context --current --namespace=libre
+ ```
+
+ For a reference of useful `kubectl` commands, refer to the official [kubectl Cheat Sheet](https://kubernetes.io/docs/reference/kubectl/cheatsheet/).
+
+---
+
+A collection of pages to administrate Rhize: install, upgrade, back up, and more.
+
+
+{{< card-list >}}
diff --git a/content/versions/3-0-3/deploy/backup/_index.md b/content/versions/3-0-3/deploy/backup/_index.md
new file mode 100644
index 000000000..b69b7a7bf
--- /dev/null
+++ b/content/versions/3-0-3/deploy/backup/_index.md
@@ -0,0 +1,21 @@
+---
+date: "2023-09-12T19:35:35+11:00"
+title: Back up
+description: Guides to back up your data on Rhize
+categories: ["how-to"]
+weight: 200
+cascade:
+ icon: database
+---
+
+Backup is critical to ensure reliability and recovery.
+
+These guides show you how to back up different services and data on Rhize.
+They also serve as blueprints for automation.
+
+Your organization must determine how frequently you backup services, and how long you store them for.
+The correct practice here is highly contextual,
+depending on the size of the data, the importance of the data, and the general regulatory and governance demands of your industry.
+
+
+{{< card-list >}}
diff --git a/content/versions/3-0-3/deploy/backup/audit.md b/content/versions/3-0-3/deploy/backup/audit.md
new file mode 100644
index 000000000..0b0bd9d7e
--- /dev/null
+++ b/content/versions/3-0-3/deploy/backup/audit.md
@@ -0,0 +1,52 @@
+---
+title: 'Back up Audit PostgreSQL'
+date: '2024-03-26T11:20:56-03:00'
+categories: ["how-to"]
+description: How to backup Audit PostgreSQL on your Rhize deployment
+weight: 300
+---
+
+This guide shows you the procedure to backup your Audit PostgreSQL database on your Rhize Kubernetes deployment.
+
+## Prerequisites
+
+Before you start, ensure you have the following:
+
+- A designated backup location, for example `~/rhize-backups/libre-audit`.
+- Access to the [Rhize Kubernetes Environment](/deploy/install/setup-kubernetes)
+{{% param pre_reqs %}}
+
+
+Also, before you start, confirm you are in the right context and namespace.
+
+{{% param k8s_cluster_ns %}}
+
+## Steps
+
+To back up Audit PostgreSQL, follow these steps:
+
+1. Check the logs for the Audit pods, either in Lens or with [`kubectl logs`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs).
+ Ensure there are no errors.
+
+1. Retrieve the Audit user password using the following command:
+
+
+ ```bash
+ kubectl get secret -o jsonpath="{.data.}" | base64 --decode
+ ```
+
+1. Execute a command on the Audit Postgres pod to perform a full backup:
+
+ ```bash
+ kubectl exec -i audit-postgres-0 -- pg_dumpall -U | gzip > audit-postgres-backup-$(date +"%Y%m%dT%I%M%p").sql.gz
+ ```
+
+On success, the backup creates a GZIP file, `audit-postgres-backup-YYYYMMDDTHHMMSS.sql.gz`.
+To check that the backup succeeded, unzip the files and inspect the data.
+
+## Next Steps
+
+- To back up other Rhize services, read how to backup:
+ - [Keycloak]({{< relref "keycloak" >}}).
+ - [Grafana]({{< relref "grafana" >}}).
+ - [The Graph Database]({{< relref "graphdb" >}}).
diff --git a/content/versions/3-0-3/deploy/backup/binary.md b/content/versions/3-0-3/deploy/backup/binary.md
new file mode 100644
index 000000000..a81db4be3
--- /dev/null
+++ b/content/versions/3-0-3/deploy/backup/binary.md
@@ -0,0 +1,79 @@
+---
+title: 'Back up the Graph DB to S3'
+date: '2024-11-04T11:01:46-03:00'
+categories: ["how-to"]
+description: How to back up the Rhize graph database to Amazon S3 storage.
+weight: 100
+---
+
+This guide shows you how to back up the Rhize Graph database to Amazon S3 and S3-compatible storage.
+
+## Prerequisites
+
+Before you start, ensure you have the following:
+
+
+- A designated S3 backup location, for example `s3://s3..amazonaws.com/`.
+- Access to your [Rhize Kubernetes Environment]({{< relref "../install" >}})
+{{% param pre_reqs %}}.
+
+
+Before you start, confirm you are in the right context and namespace:
+
+{{% param "k8s_cluster_ns" %}}
+
+## Steps
+
+To back up the database, follow these steps:
+
+1. Check the logs for the alpha and zero pods, either in Lens or with [`kubectl logs`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs).
+ Ensure there are no errors.
+
+ ```bash
+ kubectl logs {{< param application_name >}}-baas-baas-alpha-0 --tail=80
+ ```
+1. Set the following environmental variables:
+ - `AWS_ACCESS_KEY_ID`. Your AWS access key with permissions to write to the destination bucket
+ - `AWS_SECRET_ACCESS_KEY`. Your AWS access key with permissions to write to the destination bucket
+ - `AWS_SESSION_TOKEN`. Your AWS session token (if required)
+
+1. Make a POST request to your Keycloak `/token` endpoint to get an `access_token` value.
+For example, with `curl` and `jq`:
+
+ ```bash
+ ## replace USERNAME and PASSWORD with your credentials
+ USERNAME=backups@libremfg.com \
+ && PASSWORD=password \
+ && curl --location \
+ --request POST "${BAAS_OIDC_URL}/realms/libre/protocol/openid-connect/token" \
+ --header 'Content-Type\ application/x-www-form-urlencoded' \
+ --data-urlencode 'grant_type=password' \
+ --data-urlencode "username=" \
+ --data-urlencode "password=" \
+ --data-urlencode "client_id=" \
+ --data-urlencode "client_secret=" | jq .access_token
+ ```
+
+1. Using the token from the previous step, send a POST to `:8080/admin` to create a backup of the node to your S3 bucket.
+For example, with `curl`:
+
+ ```bash
+ curl --location 'http://alpha:8080/admin' \
+ --header 'Content-Type: application/json' \
+ --header 'Authorization: Bearer ' \
+ --data '{"query":"mutation {\n backup(input: {destination: \"s3://s3..amazonaws.com/\"}) {\n response {\n message\n code\n }\n taskId\n }\n}","variables":{}}'
+ ```
+
+1. List available backups to confirm your backup succeeded:
+
+ ```bash
+ curl --location 'http://alpha:8080/admin' \
+ --header 'Content-Type: application/json' \
+ --header 'Authorization: Bearer ' \
+ --data '{"query":"query backup {\n\tlistBackups(input: {location: \"s3://s3.>.amazonaws.com/\"}) {\n\t\tbackupId\n\t\tbackupNum\n\t\tpath\n\t\tsince\n\t\ttype\n\t}\n}","variables":{}}'
+ ```
+
+## Next Steps
+
+- Test the [Restore Graph Database From S3]({{< relref "../restore/binary" >}}) procedure to ensure you can recover data from Amazon S3 in case of an emergency.
+- To back up other Rhize services, read how to backup [Grafana]({{< relref "grafana" >}}).
diff --git a/content/versions/3-0-3/deploy/backup/grafana.md b/content/versions/3-0-3/deploy/backup/grafana.md
new file mode 100644
index 000000000..c5d47f98e
--- /dev/null
+++ b/content/versions/3-0-3/deploy/backup/grafana.md
@@ -0,0 +1,105 @@
+---
+title: 'Back up Grafana'
+date: '2023-10-18T11:01:56-03:00'
+categories: ["how-to"]
+description: How to backup Grafana on your Rhize deployment
+weight: 300
+---
+
+This guide shows you the procedure to back up Grafana on your Rhize Kubernetes deployment.
+For general instructions, refer to the official [Back up Grafana](https://grafana.com/docs/grafana/latest/administration/back-up-grafana/) documentation.
+
+## Prerequisites
+
+Before you start, ensure you have the following:
+
+- A designated backup location, for example `~/rhize-backups/grafana`.
+- Access to the [Rhize Kubernetes Environment](/deploy/install/setup-kubernetes)
+{{% param pre_reqs %}}
+
+
+Also, before you start, confirm you are in the right context and namespace.
+
+{{% param k8s_cluster_ns %}}
+
+## Steps
+
+To back up the Grafana, follow these steps:
+
+1. Check the logs for the Grafana pods, either in Lens or with [`kubectl logs`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs).
+ Ensure there are no errors.
+
+1. Open a pod shell for one of the Grafana pods:
+
+ ```bash
+ kubectl exec --stdin --tty -- /bin/bash
+ ```
+
+ For details, read the Kubernetes topic [Get Shell to a Running Container](https://kubernetes.io/docs/tasks/debug/debug-application/get-shell-running-container/).
+
+1. Use `tar` to backup the Grafana data and `conf` directories:
+
+ ```bash
+ ## Data Directory Backup Command
+ tar -v -c -f /home/grafana/grafana-data-$(date +"%Y-%m-%dT%H.%M.%S").tar.gz /var/lib/grafana
+ ## Conf Directory Backup Command
+ tar -v -c -f /home/grafana/grafana-conf-$(date +"%Y-%m-%dT%H.%M.%S").tar.gz /usr/share/grafana/conf
+ ```
+
+1. Change to the backup directory. For example:
+
+ ```bash
+ cd /home/grafana/
+ ```
+
+1. Check for the latest `.gz` files (for example, with `ls -lt`).
+ There should be new backup `data` and `conf` files whose names include timestamps from when you ran the preceding `tar` commands.
+
+1. Create a checksum file for the latest backups:
+
+ ```bash
+ sha256sum .tar.gz .tar.gz > backup.sums
+ ```
+
+
+1. Exit the container shell, and then copy files out of the container to your backup location:
+
+ ```bash
+ ## exit shell
+ exit
+ ## copy container files to backup
+ kubectl cp :/home/grafana/ \
+ ./ -c grafana
+
+ kubectl cp :/home/grafana/ \
+ ./ -c grafana
+ kubectl cp :/home/grafana/backup.sums \
+ ./backup.sums -c grafana
+ ```
+
+## Confirm success
+
+
+To confirm the backup, check their sha256 sums and their content.
+
+To check the sums:
+
+1. Change to the directory where you sent the backups:
+
+ ```bash
+ cd //
+ ```
+
+1. Confirm the checksums match:
+
+ ```bash
+ sha256sum -c backup.sums \
+ .tar.gz .tar.gz
+ ```
+
+To check that the content is correct, unzip the files and inspect the data.
+
+## Next steps
+
+- Test the [Restore Grafana]({{< relref "../restore" >}}) procedure to ensure you can recover data in case of an emergency.
+- To back up other Rhize services, read how to backup [the Graph Database]({{< relref "graphdb" >}}).
diff --git a/content/versions/3-0-3/deploy/backup/graphdb.md b/content/versions/3-0-3/deploy/backup/graphdb.md
new file mode 100644
index 000000000..10ace29cf
--- /dev/null
+++ b/content/versions/3-0-3/deploy/backup/graphdb.md
@@ -0,0 +1,134 @@
+---
+title: 'Back up the Graph DB'
+date: '2023-10-18T11:01:46-03:00'
+categories: ["how-to"]
+description: How to back up the Rhize graph database
+weight: 100
+---
+
+This guide shows you how to back up the Rhize Graph database.
+You can also use it to model an automation workflow.
+
+## Prerequisites
+
+Before you start, ensure you have the following:
+
+
+- A designated backup location, for example `~/rhize-backups/database`.
+- Access to your [Rhize Kubernetes Environment]({{< relref "../install" >}})
+{{% param pre_reqs %}}.
+
+
+Before you start, confirm you are in the right context and namespace:
+
+{{% param "k8s_cluster_ns" %}}
+
+## Steps
+
+To back up the database, follow these steps:
+
+1. Check the logs for the alpha and zero pods, either in Lens or with [`kubectl logs`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs).
+ Ensure there are no errors.
+
+ ```bash
+ kubectl logs {{< param application_name >}}-baas-baas-alpha-0 --tail=80
+ ```
+
+1. Open a pod shell for one of the alpha pods. If you are using the terminal, run this command:
+
+ ```bash
+ kubectl exec --stdin --tty {{< param application_name >}}-baas-baas-alpha-0 \
+ -n {{< param "application_name" >}} -- /bin/bash
+ ```
+
+ For details, read the Kubernetes topic [Get Shell to a Running Container](https://kubernetes.io/docs/tasks/debug/debug-application/get-shell-running-container/).
+
+1. Make a POST request to your Keycloak `/token` endpoint to get an `access_token` value.
+For example, with `curl` and `jq`:
+
+ ```bash
+ ## replace USERNAME and PASSWORD with your credentials
+ USERNAME=backups@libremfg.com \
+ && PASSWORD=password \
+ && curl --location \
+ --request POST "${BAAS_OIDC_URL}/realms/libre/protocol/openid-connect/token" \
+ --header 'Content-Type\ application/x-www-form-urlencoded' \
+ --data-urlencode 'grant_type=password' \
+ --data-urlencode "username=${USERNAME}" \
+ --data-urlencode "password=${PASSWORD}" \
+ --data-urlencode "client_id=${BAAS_OIDC_CLIENT_ID}" \
+ --data-urlencode "client_secret=${OIDC_SECRET}" | jq .access_token
+ ```
+
+1. Using the token from the previous step, send a POST to `localhost:8080/admin` to create a backup of the node.
+For example, with `curl`:
+
+ ```bash
+ curl --location --request POST 'http://localhost:8080/admin' \
+ --header 'Authorization: Bearer ' \
+ --header 'Content-Type: application/json' \
+ --data-raw '{"query":"mutation {\r\n export(input: {format: \"json\", destination: \"/dgraph/backups/'"$(date +"%Y-%m-%dT%H.%M.%SZ")"'\"}) {\r\n response {\r\n message\r\n code\r\n }\r\n}\r\n}","variables":{}}'
+ ```
+
+1. Change to the backup directory (the `destination` parameter in the preceding `curl` command). For example:
+
+ ```bash
+ cd /dgraph/backups
+ ```
+
+1. Check for the latest directory. Its name should be the timestamp of when you sent the preceding `curl` request. For example:
+
+ ```bash
+ ls -lt
+ ```
+
+ With these flags, the first listed directory should be the latest backup, named something like `2023-10-31T16.55.56Z`
+
+1. Create a file that holds the sha256 checksums of the latest backup files. You'll use this file to confirm the copy is identical.
+
+ ```bash
+ sha256sum /dgraph./*.gz > /backup.sums
+ ```
+
+1. Exit the container shell, then copy files out of the container to your backup location:
+
+ ```bash
+ ## exit shell
+ exit
+ ## copy container files to backup
+ kubectl cp --retries=10 /:backups/ \
+ .//
+ ```
+
+1. Use the checksum to confirm that the pod files and the local files are the same.
+If you are using Windows, you can run an equivalent check with the [`CertUtil`](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/certutil) utility:
+
+ {{< tabs items="bash,cmd">}}
+ {{% tab "bash" %}}
+ ```bash
+ ## Change to the directory
+ cd .///
+ ## Check sums
+ sha256sum -c backup.sums *.gz
+ ```
+ {{% /tab %}}
+ {{% tab "cmd" %}}
+ ```cmd
+ CertUtil -hashfile C:\\\backup.sums sha256
+ ```
+ {{% /tab %}}
+ {{< /tabs >}}
+
+## Confirm success
+
+On success, the backup creates three zipped files:
+- The GraphQL schema
+- The DB schema
+- A JSON file with the real database data.
+
+To check that the backup succeeded, unzip the files and inspect the data.
+
+## Next Steps
+
+- Test the [Restore Graph Database]({{< relref "../restore/graphdb" >}}) procedure to ensure you can recover data in case of an emergency.
+- To back up other Rhize services, read how to backup [Grafana]({{< relref "grafana" >}}).
diff --git a/content/versions/3-0-3/deploy/backup/influx.md b/content/versions/3-0-3/deploy/backup/influx.md
new file mode 100644
index 000000000..aecdb39bf
--- /dev/null
+++ b/content/versions/3-0-3/deploy/backup/influx.md
@@ -0,0 +1,67 @@
+---
+title: 'Back up Influx'
+date: '2023-10-18T11:01:56-03:00'
+categories: ["how-to"]
+description: How to backup InfluxDB on your Rhize deployment
+draft: true
+weight: 300
+---
+
+This guide shows you the procedure to back up the InfluxDB on your Rhize Kubernetes deployment.
+For general instructions, refer to the official [Backup Grafana](https://grafana.com/docs/grafana/latest/administration/back-up-grafana/) documentation.
+
+## Prerequisites
+
+Before you start, ensure you have the following:
+
+- A designated backup location, for example `~/rhize-backups/influx`.
+- Access to the [Rhize Kubernetes Environment](/deploy/install/setup-kubernetes)
+{{% param pre_reqs %}}
+
+
+Also, before you start, confirm you are in the right context and namespace.
+
+```bash
+## context
+kubectl config current-context
+## namespace
+kubectl get namespace
+```
+
+
+## Steps
+
+Then, to back up the Influx, follow these steps:
+
+1. Check the logs for the Influx pods, either in Lens or with [`kubectl logs`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs).
+ Ensure there are no errors.
+
+1. Open a pod shell for one of the Influx pods:
+
+ ```bash
+ kubectl exec --stdin --tty -- /bin/bash
+ ```
+
+ For details, read the Kubernetes topic [Get Shell to a Running Container](https://kubernetes.io/docs/tasks/debug/debug-application/get-shell-running-container/).
+
+1. Use the `influx backup` command to backup the data.
+
+ ```bash
+ influx backup --org {{< param brand_name >}} --bucket {{< param brand_name >}} --token /backups/$(date +"%Y-%m-%dT%H.%M.%S")
+ ```
+
+1. Open the backup directory. Check the latest directory (for example with `ls -lt`) for the latest `.gz` files. Its name should be a timestamp from when you ran the preceding backup command.
+
+1. Leave the container shell. Copy files out of the container to your backup location:
+
+ ```bash
+ kubectl cp /:backups/ \
+ ./
+ ```
+
+To check that the backup succeeded, unzip the files and inspect the data.
+
+## Next steps
+
+- Test the [Restore Influxdb]({{< relref "../restore/influxdb" >}}) procedure to ensure you can recover data in case of an emergency.
+- To back up other Rhize services, read how to backup [the Graph Database]({{< relref "graphdb" >}}) and [Grafana]({{< relref "grafana" >}}).
diff --git a/content/versions/3-0-3/deploy/backup/keycloak.md b/content/versions/3-0-3/deploy/backup/keycloak.md
new file mode 100644
index 000000000..1c0b1ba0f
--- /dev/null
+++ b/content/versions/3-0-3/deploy/backup/keycloak.md
@@ -0,0 +1,60 @@
+---
+title: 'Back up Keycloak'
+date: '2024-01-08T14:30:15-05:00'
+categories: ["how-to"]
+description: How to backup Keycloak on your Rhize deployment
+weight: 300
+---
+
+This guide shows you how to back up Keycloak on your Rhize Kubernetes deployment.
+
+## Prerequisites
+
+Before you start, ensure you have the following:
+
+- A designated backup location, for example `~/rhize-backups/keycloak`.
+- Access to the [Rhize Kubernetes Environment](/deploy/install/setup-kubernetes)
+{{% param pre_reqs %}}
+
+Also, before you start, confirm you are in the right context and namespace.
+
+{{% param k8s_cluster_ns %}}
+
+## Steps
+
+To back up Keycloak, follow these steps:
+
+1. Check the logs for the Keycloak pods, either in Lens or with [`kubectl logs`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs).
+ Ensure there are no errors.
+
+1. Retrieve the Keycloak user password using the following command, replacing with your namespace:
+
+
+ ```bash
+ kubectl get secret keycloak--postgresql -o jsonpath="{.data.postgres-password}" | base64 --decode
+ ```
+
+1. Execute a command on the Keycloak Postgres pod to perform a full backup, replacing with your namespace:
+
+ ```bash
+ kubectl exec -i keycloak--postgresql-0 -- pg_dumpall -U postgres | gzip > keycloak-postgres-backup-$(date +"%Y%m%dT%I%M%p").sql.gz
+ ```
+
+
+1. When prompted, use the password from the previous step. Expect the prompt multiple times for each database.
+
+1. Check the logs for the Keycloak Postgres pods, either in Lens or with [`kubectl logs`](https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#logs).
+ Ensure there are no errors relating to the backup.
+
+## Confirm success
+
+On success, the backup creates a gzip file, `keycloak-postgres-backup-YYYYMMDDTHHMMSS.sql.gz`.
+
+To check that the backup succeeded, unzip the files and inspect the data.
+
+## Next Steps
+
+- Test the [Restore Keycloak]({{< relref "../restore/keycloak" >}}) procedure to ensure you can recover data in case of an emergency.
+- To back up other Rhize services, read how to backup:
+ - [Grafana]({{< relref "grafana" >}}).
+ - [The Graph Database]({{< relref "graphdb" >}}).
diff --git a/content/versions/3-0-3/deploy/install/_index.md b/content/versions/3-0-3/deploy/install/_index.md
new file mode 100644
index 000000000..73587e378
--- /dev/null
+++ b/content/versions/3-0-3/deploy/install/_index.md
@@ -0,0 +1,26 @@
+---
+title: 'Install'
+date: '2023-09-22T13:54:26-03:00'
+category: how-to
+description: >-
+ A guide to install Rhize services on your Kubernetes cluster.
+weight: 100
+cascade:
+ domain_name: libremfg.ai
+ brand_name: Libre
+ application_name: libre
+ icon: terminal
+---
+
+This guide shows you how to install Rhize services on your Kubernetes cluster.
+
+
+
+{{< callout type="info">}}
+This procedure aims to be as generic and vendor-neutral as possible.
+Some configuration depends on where and how you run your IT infrastructure—what cloud provider you use, preferred auxiliary tools, and so on---so your team must adapt the process for its particular use cases.
+{{< /callout >}}
+
+
+
+{{< card-list >}}
diff --git a/content/versions/3-0-3/deploy/install/image.png b/content/versions/3-0-3/deploy/install/image.png
new file mode 100644
index 0000000000000000000000000000000000000000..f86a2c0d1cbf5bed49186544fce05e1d897a4154
GIT binary patch
literal 227817
zcmZs>bx>SQ&^Nlk;;vaFxVr^+clRKRyF)@Cz#_qAaR~%>Cj!_#(mG-AT~kaP!pr
zeqY_Hd;gfKJ~OAgr_aop{!MpBYiTHAV~}A0003-dB{>}c0CDnPqd-Ia*P}&+0|Wpt
zXdGo_wUlLLskOY^?HpZf0RW}wv~*N0q9u|D_uE}LG7vA8@BtPvJ$9iZ->AAZ@9aLlzJKspXe)F7
zsQ(IpZf8bEd)5O07db?=i79WzxtTK)z9Mtu0Ya6cc#Vgno6XIC1E#3%^ZW&I^5;G)
zI{#Scws@^0u!&^)4uJf`)39OszK#D|elaNxu8sg0q^pL0OKu&>M#J<@Lcnh}-h;pU
zYqnSaF5$sHu?`n$iyd%o!t+Vx1Np-P@hf+Au;0oza|WK${B-|#l^WKu}9UXe6N$2OD*4+mPH)61u0
z@Rgf@pv9|*u1M#w8U7Wkti!`-Iol`DED#A`&>j1uWPP%$7G=uqNq?o25-|EKMp<`I
zm;Ig*;HnB=Uwx=5RY8CRivkv$j4M`~evtX!KoI0$xZxo}Py`GqVh4mkFcv!m+XGMw
zBfJZxt|zURB8pOE)I>D~zkwqmZvup{Mx=>_(8*wqlPDt6xUIn2(63-nTu3CCU<~pG
zjQ#bH
zQuv^^{UJ&5PGwYo6+;`oTU}1
z3%C(Jw5fcD{4*SpnII-2S=O;YO&cqfi4{Z~vR(Kg|5Cf8oJZ
z%fPJVGLIp*btdVUC_9O2UnN+*etePI1xtYNeUx~F>%dturJOhV1^%Ry08R89Y^q+U-(lWqKd}dWp_bC3%_I~eaG^1$k)Z9ONm9C`=Svo3$xc;grOTx;qf<|k
zfPR4=+n@-C=cue})-v5D|4G@Cy?PBH9eSc%nVk9{IRp2!gAT4DKp@9)C(rD3mXnQ3}*3Vp{h`;
zNYM$?QJvaRc*LNB+6nZU5`AkdHp2=
zwKY`6jXCveP27~+bTWwpFRytSxu0(z2!@~H~@7bV=qH@A&Z!LSN
zgV@?6w;Z>c-?HK~;)b0Roo<~A562Je<}gC`3q#VYw(~D0Nuxu==nQ$=CS`$v%P3
zc#ioVTwJWi-nsF76V&EMe^Y~`d&tFf5m>jW2
zv5c{8zN{y`3v;z!n^RkCObp&@m`v5k)Myx~n~WOs)i_t@Ei*6HyB@pPxz4#*yJ#+T
zHO>6kS^lxY!8b;_LfZM4Ie_W$^CJx^4XR|MS0q!yWkOQIuY_0)1&u6?&T){v;6d0p
zA?GwFdxk=WydmMjS?#l%O$)Z$o}1>{+*;f3HOl(Psv(+0#gnvo@A;4Zh?;LEWWObL
z>itaq8FW49AMnZ0Px5N&YWR|LQEIK;R(2-hW7mf+`7YdNy=R^0ho}2z*(dVn45U+}
z7$im{U&I#Fb*yBx7@T8_LF7l&1!OK)pG7~v9knQJC3E;4W12eY*IM`VMT(aDCz2PA
zF%ElKo&tmd^@6<2Z)0TpI+?0Qwu`i}JtDpSJBv0XycwBsJi;P-O9Nt-&LxV0`h+61qsMIa^5)qG!}
zXbH@S9=EamYddUvHj=&U*3s#Y+C=A~xS{bSw@uW(F}IQY1OCT>-|cBdUv+b?K754z
z{%v}+db)b#p3~(xzB9VBuYTIFsQcqhr=b6zNr|vP#oNGP`-2VUNe*U?J3Tn-&x@M%
z7Tb->zlx_+th}5eL4W{=H~1<4rYFLxXWMmPCQ=N?H+53=Qgxkj-RsW3!qRaLe>-WG
zF2(k@t(hWmBBjtng;?e1>fYMIA3Bv@7JHXGe;cND1cu&M7FS_ZN_>lw@T^;|XfIM|
zE4`-wYqLCT|KsHc(neO$f)SIpq1J8NH(kl4&6&v!hv~&d`Z>K>EWt8?i98J9cb}JE
zd<GW!}LARjmX}D(27F6;93@#=o4VF+cg&T1x(G?ZHMrK6XAv
z*0!3peVDsA-a}XkiCti?yD=5)4*DH&6hHoTP*4;l9%aRybj^v1m-4vP)vLpK(WN!O
zW)1#D`(#S>+XnqWWTxMYLIapDAW5MkLPX;3
zBIBLA&OYWLJ^#9RLN&koU}1|Tg_-=>U`?G1U=P(AM}bVBK=enCoRPptVUjx^85BW>
zbvLx$_|BK#h63oY0k!0i2~$e+xI=
z5}8WBK0_QP`#;PmWNV~sr>+iQ{YRq#5F#A`{~#m);a?;B*Zx7ve8m6LgE*Ow^nYoJ
z{{{m)mdyYFDS)z^w4NWr=^A>Dt)jlr%VV>-y??VB<0B3_O?Y@X10oF`P%fyNHL5Xs
zdxT0}lKJ7yD&9igi>)?({}*`@c{zk783?d984AU2l=*AJ>-=Z!Pv>jP@1xqbnKix{
zzF~U4b0`1G6N6llgV_q*G7XN~4`aTMdbF6*q
z+sFSuB4G)G*Vp`c)>c-9lq=+$cjT%vx4Z!ahsya(A>V-h|3d_(NKt$}7oKiY{{JX?
z)JGJLwC;{+iTwHhV)zD32KwVDYU2K{fd7#M?pDn|@HqX5e~U(ON)YvDrpbOK27oC8T>B&Oa<`Kxybt=5^mzChHlmv7
z_dl!QQLplEIuzC7E%Y1rbz8gB_uVlmK?h^zR(13qLvKIcdHl-#xZd{ZYX2MPR>enr
z^M9912sQ%5rgp
z4L!BozT5`CF4(Vqmin9RT)Pz5xo#DBduiP0k$DcF{j=x8(p0kgj5+d`=^Z0`Km60
zKiB@qOKQb;Zj`iq4u4d>%9w!RQt#fTjNN|936ezL0xxX&`wU)o0Bvyisk_vu%UGkH
z+Cl;FL{gN`4vDV8gvCZ^V9!BD{NVTF7LD==S%bdNPl~n7<)AW-&f0+0YY^DilQr5$C9L9RNK
zR))~o7YLT-cS6?SY5wj3BzRkfh!LD
zUh?NXuH(^in@NM`h-Zy#)mY!B0cMabsAz>cGn|wn52=qrQo!v5BXp
zyk}$XZmDKmgV@5M*GsO~OZ-H?{&>OlsCaN(GdH7%tzn#e9rBYK?1O%w;Qjk%7vbAg
z@7F)C&)pp%OV(2%>{sHv!Bhx^XCb>B?w>|u&94gs{&Z%%$JzC;Gc}$Nc3o!#-z*Zze1(
zjIyr#SaKq8HP$R*I*oNfH&qt*BZh;6gX0p9r&oDi5-YCb@ZeY+DGgaf
zf*19#0&fFO8ziq~C4Ktw6@8X-p9+uxO@t|+84@3=+t#6iSV0bA4e=YjF>98}YLg!$
zKewMke>mN=KrDBhEgqMN4NVa?FA{^Ftf?N2gpgb{cQdHWF%z;WJs?=VsX)
zfiW}78*@NUgYo1%-lH5X4u~&xPxEP!l>X(n!tY+UaD#<}9XeR>UfB$5`&qepcBe>W
zI_|b(LvkPcz4a|W{CE?gC~=vDkS_vpU1@e)xIf5~6cdXxy?#s2D&ufz-eC1b5!@bK
zuAE642$!WSbX2mrb4X=nEPi?e6qR>8R8=fAS6y+ZLH#jF%aa>x|HREOHk4*)zT_g1
zcbQt|KwWUJffDW{U#0|jtb2Xn$`HSqHMY-{H{^@J3eyU<=#D9f*|-}NvoVqys;(c=hL6eOXL=UPR0cd*(qoz3sZ~41OpJ
zE`-(vterGDG>dn%w0BDGN@3UEHY5hd#RQ$a-w=5^?~_HpdADaz_~8cME|B#Jp7?|o
zX7@z-X*cN>GhjAu<7$8_C<)=ynX^U5gb=Px)*tU8y*O?6xDCIV_|xIUm&3%atK2_W
zU%%5YOFk4ywm<&v2>x>$G@*vDS@xg)$Clv7U+zIys1oN0Yh|~$J%gOeV~^X5?T~)w`~KfH;@ir*i_YV|0BXSgZGPO9Up9OqJia0PNP)K<
z8`v?GqP89pN)1AS-CmkV3a4nw(r~0G1Lo%K!xs&iQthfi-04`qseNqfvuxhide7PYThPM(R_0?wN%L&8TkQ2-hQ;_i
zv(?bA83CGVzp?6nYnCgH;(VwmeymN64Q4Z2M+qm|ORM|5cRW`m{clhI`Lguwdrhdv
z`qgLZ*MCTcvkLoiH%0U1VWHctA(sCD_B$$zZWhz)-cEPDR^WYbVq9F#hh@jV^4n73
zSC1R7&l`V&UmtrErI;P2R5!qPX%_dy#I7x{u>fv{?<$F+2cC99=Zy5ufnt*X4$0R;
zMM)=aBaam%u)XAEQlgRN3SHpI`*o)t;QO(z@~`duz?5c>#i-Y(iC2Dl^ULH6yf+(S
zj~G`JXZM1Uxww(yIsMmhnkRONC|d>OIA5;NHT@7nRsy9P{5KH^LjIW($hw?Atxk!~
zx_H;mBq2S{KgcKzHD2cu4B|69++u(+^M_7b$-Y=De;Fs?ww}_LBx05B2C--U)@WY1lN3Kim09)
zoXHm1^SL^&b>8d3HhWfZU(az*a4?OrpALdw?ByIW-$7D7p5
z5rn1>Q!3k`&rs1g?mS5^@+O@!abGT!`9Nq%yUW3e*`0R-T+J--VC{}KaJA#LvqtpZ%c?4w&Z=`vo7${L#;bwMDm}`(CVVoDZ~C=Ky$WYeHpuSa-iQGD
z_YL}!SKn^M)_1+XT~U-gJcqc;Ct7)0d=O$kROU_}*k_UezO$Y0em-+QvF@?1j!Tqy
za7al}3^~554~ZT*-?xOLD;-pXs8^IIeDiyGsCyM5nc+z^5GVJ)`sbgyxB&)V?D52%
zCO9fHOnpwzhU&%kQgu&_tf*C78z??3T2?ZDA)!?2@3ohFG`>G)D_o*_n2Zc%AY|GQ
zF6S0OU>7(TXnOv44z~2z6M5FCExKe4NxgVW-g-~=0+`@N`>gLOiUwA9##QR*w&qg^c&I*mhwpPk;I>)nQ2chFWRdz08TU1S8`
zXCP^^6E@Iq_6QjHNLLF(wRqGNT5(jo(XjAG#}H{?coMO%Ou?5-lQNkwH0Cy=8&p@gd!1BNTv?EB=85Wrmw5ent0!_LM&YXEPg^e>ZXbASS1
zf~=H{``nF!^&IW
z0>(=ZSrt(VbpvA_Q-_rc5sW1n=-J|YyJa883d3>)`pVm$wK2nZrJ%CRmwd@^Lq#ft
z2-Y{BfO!lSwxWXA^(_Ug*idq{i;Jn!aP
zEOc#5qWm#=NR8mVRuCCiM
zju}?$AAv9(5F)#lHjcxd(mB>)d{T6iZgOR&UXwk9O8#%VcapIRaRNRgDZ4dw6Sfx_
zx=}raqD)$T=3AT}F6i(H45#}9V0gBB8sT|1QuGsbjK2J|Q49soQ>p}`SXs1}5}n%n
zer|_1!n>@aYQO`Uk~JX;qaUgvDyQy>9K6!Gd-1H}GOhn-{_{K1pSfl<|+*p`geLsdX%YI)XdiPS9T8ylL-U)Xu&ksz_|6Tw&j8Q5{m~0
zK9MHgDMV^l)ZhQEykQlwF)urkFV=9T7EH?Z8f#wtuJbQkN+(1u$GfA^oZ~sGA68tO
zQG8KBhCHEK{g4c-)y9qIwT(S1FEwnz*?3H=y7|xzwX5-uT{B*UNc=sl$c|5J1kRYd
z+53lU5~QGcR$e}L02&@~$6n&6F>9-{0%F*csYeg89}W(FZ(>K4IoZMv_a;WMWjUdB
zIl-6oh}T=p?sH6%eiCj9=`pm-3F!gB&Lj1@PrsaZVTtMCjPTU?@8?2jgKft&b6`5F
z;*FQTEt0RFCW5C^z7c(pl1Q(_QIzUUi6j^cId*jq_^NJP1EAxh_9aAlnRvaI^h=;U
zYwSV&m(b|u71hmu0hT);Jpt(UG4QQ)aEJBI03l8HdAop$wp<6+)=
zTsShP#uX6$nK#Ia-iBfs@E;=om5c;e2Pi-qp!os<{@8=if*4ZtzS{RJVL3U8*hFUq
z5|2w0^8=SlgalE~wjdsLt<#V7cqMF%Ml$FV^;BmqOkkMZ}Su{^i
zM7`K}`n3VT^LW&iywN2i0QFCUTd7s_%d#jO?z?Z^ciW1xLIZ$d6iD%X1iCR}GulLG
z(eT0Ix$pZnnaJo!OqIaM$(Q50mrB2oK1(Ea4?FI}?hEp6?E!_0d|E1L84v$aWP~t;
zx3_;@U;b>NWh)iZ<%5Mt-r~U()AwVV>*mr>t
zSLq>SRZEgW5sg#7EV(d-#%U)dlGUqor6fIE0!VbO1!C~r)@0%n!CYEl;lge>qUi4s
zVY^?OtP-6_Laj0ng27jU;$+S}@B5$RvwG6P2a}nsF*!WZ=LA$zlBY9^doV*bgc&zs
zES4l%a^s#Vv6k_O!yIUP6JqBLh{~&M8FmRxYyhb4XiQXW9yviYlqOwjkYGxNp=hsd
znsbq#V;l}ep^j_@2EltIPmCvMKUj-p=kQz;JibSq!n~c^ikd+XUNppP)81
z{~nBvsh+fR6ZuLPF1U-QuQ&8rtz8Wz0D(z6v$Djxmyx+|4s9YHqc9-O5+$r$?t{=J
za~f&LXS5}dT{8PyJsyJrJL-7(W#CRy6pYY4&ax09d@IjCZ<_?`YpNjNh%X{>miwS`
za^0G5(OVOZ>5qj`cy1kG113>547S+^2s?&DYpfb}I{{gn-s}hxU?ck$SBI#3IiI%YvuYoO^s)RBs|AMnDjFh(P(?2K2`7XPa`d`aet7hkJ=+8bRGuKeoE@<90@<5dfB3yot93I5Gq)t$6I#eO_!~z`KG!$%u&Qt+Q7aDuNwr+HvUl7LL*%(
zhc|^~_N=N1Y%|lCrB%$8vQdPl$|CZveGeIW>!CpB)8{HJyhW(UBy@Z+XSsL|px*7F>yS_Yn1>IRgLm4eT$Ya0;}BJ!e&cKYc_XFRZ0qz1ApqSBGE
z#FLaOc6ZO%=z+rF6B#i)<02K?KM725BAd=4xosiVk_6Vw{Y4J9-lmpznT^Cl|DesEH(@wU5$
zmB{q*5-=mETqgG}7Z#T>>Es)x>7s-xuZqk)3yUC;Xn4yzdjyafueA?pI7)+Oj98z@
zC%k1}lQw9m(SY*`PtqJfc5OzRkW38J<-DVE%zx(5z_B_j%H8EMA{9XNg3wg!?$`mkCdcB?bS*Kh!WsL
zeon}a;aQgTr_7?17ZKd0@Kclb3Kemw_%oVj>INoqeCtPFm@cP*8hPmrrF*NuYR(%|
zp=#%mMnkt{W=ufh@)lJ99(M0Xv=dqWU(iHJaf7GGZ>IuibDqL8)Ro!{)r7536;4la
zmKQcmwL4*P=;8A=D^YV;3L=_}1_t71?h(?B5oAV7V7qH}3$5tbH0vJYqeP=kiy_S-
zFjt~rBCR&wAq*d3eQV=APjQVhG#l%Gp@p};8;+9Q2>&uhT~=nyqGY4P(DfLCdR@G=wOc
z7);8PBm{~0<{v0&@V#g$v*-X6wrF(rp4GBdIH&+vZAH@0@APQesVve4ygjP14McD8
z1K-Br^FYqex$(}uth($qzMG89+9Wqj5M_<`a;qgZa_cWFg!f5>pu3nV7azGsVN%ME
z*M$shW#=IG>@$p+4sLQ=aW_a>4&!4TTDZXoCZQ7;JczA_3r^iU^_-4OY8J~L^o?UzW4OuE|@tvSa
zBaF95HXYYvKtVe0W1Ifv-6J!3SDYO~okVC+mi{*zLi=$xExn$_YPt1T3;l8jImVBp
z7x}TAO)`eMMd}(n>#~5z
zmXI}mSTotYM!#zCEhr*Y|7Mzhp#;BT#!T;RE^9~3fLkeDl~i%-7yAF2Vy^;*IUndN
zf!DvnGwBM1Jw@LV3sVjtDA35B)N`a*s>qi_(${e5Ej=^QY9$(~UcYfJZx
zz)7R+@;Y@<GWR-KIeEb(^Gstst%y(4ds13UZm}N;YBZ3AdKJW9vPHB#`uG;4j5^AFtMW$P5
z-P(^zjqFjQ`^Q`!vJ+^N3&0PlO&9r&jFM#_o&=cgn|2O{c(o`{7Lu^_wMa7+)I&+)2
zaF|Gi?Y%8s{B|X8uRn=nVkL-(6Mf0Gk$`SuGF~l7VPKj;L(QuT_*Sd9PE+V5Jm*g-
zK6)R8_+4+FUx8)7PP`zBWHSTNQthOuKSkWW^`G-T+_LF*mUB?VEIS3x2;pE3o2;9u
z6fclO)`(byJ-lUi)*RnL(HG$Jb@vBbG0^o;mRe5x#OluGrC{X9-0D>s+$}^=AmxI+
zR|@0`x`?gfk~JVNB8uxW{6cW(`>k~aNr2S|!?21-Th|^>kM+oqv=UV5D7&oSpe6Y)
zhEAmICJ;-a<0jw08A9iDL1}Vhuuin(VPqnNq2irG$SaI}qmjMkRVoLL4O#o$#395U
z#ew6eYH}dTM|QZjT*xn-K#qkJ)+3B8(O?fmiGXEw$rxx9l6u$sclU>+xHkIsGcGUO
zXvEJ|_PC^)pz>k3ym~o&^5qs{vM*(=W^&em{}y&KBSvqR*_E?URb6DJEv%R3$wO8{
z`OBP_DB}h@mC77I_BCz+nBxr*m5{JenSSx(QASl!n4ag~dauz#=pAOF!okpYs#9!Y
z?T932PhGGgy)eRyLq<}+#iQn$7RidGEqIL04S*WZ4^}FUSi7rnk1l`M@4dt%Mo&-6
zw!;kXdM7%piJb#V=WdCf5r4|H5Z@ErToQZx+l!e}1_a2{Yw^+Gj|tgVgBKG3$HS`I
zcUTo}jhVxS5h5mo&8x>e-aG1ziMJb-#?WB&afEa6v1YHKqN0>&ie1R96pC<0ZTDm$
z;`bDd!m5}*Ok0kpczo6i@>}{pD8sAsII!B8-osRPJ
zDPL5;bzM%?Qp-%k1xvtYdcDsvc(*uA1d?H}ndu$=u5*?*~_|oU3B4f1W
zWUt>Z2||csMqwru%fHkvUuqB)oqMYpu}kWY`Th6-IgfyypneiN8toyrLu%7f>EQc}
z`!bw3!9XVF%)s5Q5xN1ctQ2?NRC=C-o}TR6*IlyA-9+
z@`M)X%O@2SGA|T%08VYDWyFMRrDB5t)I=sZgl!~!2ttx7+aX`xdGj&!Bz}%a+ly*v99bQ;bAFU69}S_Q
zs}txywWX<5+IPg2{1rEvX%OOFqqG@0&vRjL>{a-vCICW9-!8_DSX@I7bEy2@+CtEN
zRVzx`u{dZ15vDYT`F|hxE-Cz3J9)XUnlVj^P-LXLjAr;TaGiPxSFPw&dWI+|z1kTEHHwsezX6QN5ewCb
zVAYCw_C|bjHqzD1*M#nvF&}O~
z)3MWPs=i)m?$MJzSq7UVpr;tTkuVv?bzaK*lJ17SEr>c4mwmb&MMDWl?CXqXL5ADF
zKq9;g^Gr1uPziJCLDNHIQu#0GhQjJ1MTw1&k0!O)2ahxAst`Yj6zENKy9TR0!G}{(
z@W_4##r+cAd1Hcl!FvJYgO^(&WiFSOoBcBJW^90VWrj9U@C4%7OGx|6nT*w0t=6Lw
z5OXJK3iUwRGcBo_+_Ko%90In2Qepq%0X~)M#3#M1@3-8pgfo>g=ojBzHJRUHAMsnZ
z%ovV+$CP
zDt1RBj@~0UPJ>EXM^nxWPYf?q+7*iFx6cin5B|I>33_KCxD^-iPV;YxK#Om6jDAOr
zbqnEXiZ;!fxCGBP9Eb=yN4lDZmg6N~-o08f?kp7Xl4@toTZ
z8YHKYI!Rh;BuRV&3)AcAH8c2OdSqNE(ix?d8;rKci|1wDOSavnvm!o{qk-@sNv3-CrmNtiSPZe`A8F07O!fbxvt$_D~cAmDkN77jQ
z{wLGWoPP#!{&btr#Xb?dc(BAv#TgMSs?mgj
zY(7pi=a$n}Bm<7e9mJf7#`$bYtG*UbA#PrVw=*imBwQyx(RYiKM8i=kP2m`zurjN;;bqdIVOA`~o`21$W2phr(
zJgX__!IN(#`f;N1*o|3ehLBMK9EF!V5AvDW;KZ-;`=-0)#NWNj)hE+%c~S4M@eiLlTCs6TstW_aYKNn<8{joX-03-SDqaL=nB$4D+m8p1^G~pLR79z33#_d
zqJq|!CkNJF;xI3OW#v#HANFTDQ;9vIw|w}cBD&+C9@JwMO<8G1=bJP?Y2T;yPY3d)
z&R6;`B}Y}X<=ftcZ6QqYk3&WJ2w+zHG(h
z)X`QC+`^Ad<3HY|#0blhXK_59gJQ`odt?oYZ5byE
zy{2rNZOk%gTuqIIr+C<>NHcGeTx%vN6jDl$+_3s@1Z(DPco%FM5wU7Ar3!~CN+wLC
zY$YWf2GARPPG=&p=3+7!p(s-5zkuV;lU7Dk1CY7Dwb>*w{hYGoWQYWI-$Mu5%`lGO
z4Th+LJybDXR(;gty*+48tQaf^_O1KNGE2LYD<3;g%=#0CfhKdP)lOVvP8W}RQdaH?INC5IkmO~Jtc}Un_6dAY
z{*N76zIB-l#|;_Hqhw@I0A1DTv?sf>s6iW07`%Rj;D=b&
zmyRy!mX!;mQ@o)_CHr@ozW8RcNkf(CN{ouq@O8?B-bVJIQAs3&-H=fl)5vteb`=^X
zR-c5lyG#x)#`py1{%XqGk3#B1R^M9QzlM(Gb@~HZV1PBT+auK?9!j5rkQT^VHD|T{%Q|K}Dn$s6vX*YG0$?Z-dw(=#DW+*c
z{0rlkb(_dOoit7qH84)j1^(}9O@eds;}2*Ex`*Xf3Rncq%IA1APBb=EVlXVF<>6yw
zUoZiuJ###tI~<{Z`>QbguBiP6^{yO~y_o3FR|L3gs)077XZD9wX22uJKmr6dXMm5C
zkE=tVm;~Fr2A}B3C{Lq9@P#6a`03tB$bIva9j}DluV21r(W*!;Ipb;3@Rq_jhb$PW
z>Ns=3Z-rrX-Gz?ls{Ong?>{5Uu>_289}#tM9isF-kl8e4I6Kt6Tf`X{#r_DR5JC#B
zueqQ9l0;}Ap(z903qy!$($1L^WgX$MKC3LD;YncO{^ktX8kuEN+}zshC{(~>q&vU2
znwI&}@)q`)r3A`7#KYtmb<@B&M8{UmzdXvOgL%n4GH7;=3-T4)-K^UPkwfD%WsZD1
z?Ubd>8z-j*9gJ!++(VEm#{lQLu_+-^mSo1o9Ha)Y^=dq$;b5d)0^XG;Ql(x<#Xj;b#Rhgiq=dKz`MlN3#SDN9@a?4sQ+0cSltrkc<5}
z6vgULM=r42)*??+puma5+$?yd*v{YnDViN8qU7dQP8zS?O9n`kA=nF}F*F3%+(#J>h#NayJ6c`A{G
zwQ~i*%9ahB-2CizN8z63JLI@F6`yqZq++FRs*rW?Lf!Q1wL8k`dg6lMROEN=@%|dJYuqou
zh$dQdZfkLBc!!-qgrc1XL4%pHI%Zk_V5?jF(f1fWOkG5j06zo7O3>&94+wF1^qQKc
zdCB9S_wr-}B1L9%z|c{AvFY_?zxmx~<8aDi*AE3P39&HEUn?4Lb=_I%du_H>!Do_-
zF#LEVSA57tOE0U4yq6cZ%(8N@@XV;tiX4+7BA?c{F*RssKG9NMz96_<#*>xiw@)#o
z5L)v|RrxkxBekqvlli&j2wb*TUh=0p7%r+&p=s^H<31H5Nefz)MtnoMa*T(DnGk`N
z4~M{WWfA2(KWH>nYKcEl_oXo4jg1!cWiA9le3^Gm@x_l;zMl
zIYQK`oUc_v1t_ENpZo&gfGX8o0?spf^#|!4ui&
z7!x7UG1)msPF^qCn4mPgFmy*bu|zK>R2&ecOa|iXHb}}2g}%M#g90;%9lesO
z;f@0s1q#tE-&dkbs*t;3ZOch8A?5w|@CgbJ9icDu5324Rjhja1o(mz}Eo}ccv3_1z
zw5$WQl5EIoQ9D9Txpmy7GpV6{TTYLt3_+%Z5gjxR9)YM+wW^@D^NNFTm+>_DSb^I
zJ6jk~`RH!_aFz~z;o~@~tflQYU2X~Ts$oy3L*P2Y!FN_&8<^JmQiJO2`INF$sCI
zHHrQ&a|AXB(9j;j!7I+WImA2es)dCL0E@v={QC6UZu6?-ZeZ+#`kaUqpL?m#=7#VP
z0qSVG2&W$k3K;kn;(_hQC|&?wVNKpGo@ZIgUSlmbNlt@U=43AX269Vb*SIaJfjAlh
z&PF5lcJl*0{R;dj?9~|We+4uk{cBYvb4G(OttMJLtCiB)juLHpK0*c(ufLhGg(K^O
zN*y+pB;j(31|AqwHAed81L#0Z}DlBg~vI9CNynys7caR0d~9$
zt$-mMl@9>b!U$`Ut8Ju4Fsjh+5R#Z7`oIkZD5Un&>YYSPk0_GWD@r5Et81z9g$48M
z%GB1TE1FTfpQI#~r|=yH4-O4##oTTE1S#>j$Rw}++6=8m{is68r@Wldk
z|8=Dil1{w+-V-qhcK9R=#9Pg&CrpixP^^YVgOBNjrjB?CK~-k!7usr-J3z!_`4TQ0
zu?WM(>4`-+#LPM`$5D_ejpe1ZZta=D#Ek)_Q~HhCe5pKA4b*i1po^?_TJVKahx)ug
z>NF!}7@9`)Gjt>%E|sw&;GVOD21pRW8k7ju%1|B#L>|W`<^TA8mb;!EB2Z!d09QwZ
z2!qDIpUOPl$l)B>;E}5%;cEN<&Ta8rmb{B8j1)ePiqRo1AQn}Z<5WlmLB=R#e8@Oa
zU#%8Hhq1o5M61yjS899lBfNm7^}_|4WZ6AuO*lr50BFL_36|`NFxK5kPQMIsl>wE3
z5LCxOoMfn_LKiN&19~3!Fe$EW3;lD5sRk{-CO>p^HoC$+3-ZRP{o$
znl%niiaJQ;yM}wDi~Yx;A$Y9%Vi;3jNg0o=urfE3puSM>y`@6p7L{)j7K+zRTM)~M
zRdlu^kqbaaRW&v#gke+Jf|$k3C{Qk?Cm@{Z6`aObqc_ug3P79E*LEao+=fbJmpnTQ
z?8@aC*d{{`)_A$m^RFeFc=i?_PV65PsA~t8&bqX(tCWk`Yr{uUeo;+^kKEMKT0RjyZG6XaIm&3
z=TSc6VH^WOx5hx3PVlqBB_0AVN3p?u+hQd4qP3nu+HTGiEe0~s^dw$+@mWB?
z0?e^$2xJ)YQ$-2KM4|c!0z;Vl6nd=V&K+u*k?UFL^$!-bA<;x?;;CbL2`Tay
zvq~>}pqRjV`V!`cmwlBuIKEoAUe@+}G$imT`cwQp2kFY~oNIEz;mArQM5_bHjgUUa
zRnApTT%ygxhv!s;7Qx_*Odv1a`!_=MF5%o*`60(Cjnh5#{{fFcaK8f1ravmm54vG_
zahth{mM&251w4SqYFq@yd1l*80M7!Q&&cD#U1Dab@9ty=9FF^u%dCsL!5LnB%!2H)i8j3H-BfvCibBQjFIq83xa2O}8I9Ul#k_zP0Bb}t
zAq@@(Pr~YUSD)q1c-$L+hs=NSCx24KWFyKME&u{&wxkIyfs
zgnBO~v7p}<11vKK{u56)ky6EoTh6#!jQRdzW-;c2E+}4;z-_b6IbPuK~fdj?isPeR{
zwB0=B^8EA9_pJ`96K{Ea-{_E$rY(8c8^bQK$No*uB$;a3Bj>=f*mk$KKvm~$FadL0
z3X9|zlbJb&YvKyG8{J+32mw~n@?fA<NXAb~tt=`}-%~eiF0D8_0ce|KQyjOLS}Oghxpx
zxBsT4omuETeg8-x)G5qzRwS---W)wZn#%66X_&!ePtPCRPI;gmj(zTL72{}Dg2fE|
z&O3PfjCPOG-+!1FlSV6#TXPS9s<)Ag0V)P&wk!hl}B>Ia%kcnM=~`W$teY^j5C>
zTfzq={@%zuD7&r4bWZ|33G^gz088M3-r>0KqA(Y7rNzR1$9AA$SZ1S^33i~huE)=E
zB+%>J
zWhdX`{$i_#=irn;c6TE|U;K3?YLfmoReYh{pUK%fC->kKM33v91P%%bg!%3b$%CS^
z9wa8K(>@l;$Ml!{LTgG>pAG+>SlkPTV*#oKTlk6)#%{8h{yID4rBRsz+RlXt6j
zyDdCmo7ZEkCxP#O2`pYUE_6Y5Y3{%Oh4Ta5!eq5m-|ys@mVY;R-^8*P4hI!nte5j{
zPKEl;6HEE`=PRXqPVQWP&+t8n2U7x7e`66Jy3(J}oU>ic!tn|X>g{nXl2b3ECxHi0
z0y~@Wxuc|W5*pSVwK_WlOseG=b;P`R6C<7B|&uUmu`q`xel@{_9g
zcCmQ*VJ{pGNEf=jL8sy&?5xVExa2J0dhz$61S*}sqW{^y4J0AB@TmOz3c7Elhc6;m0XN&jXtDA5r0#>%Z_(D;XPLD
z`?8v_OoyZDNSHMIpkM2@XETxRF1%NN{4&Gz65oFkV56c@X>~*`c0LiaLP{1VSuCck
z(M{VMOZp|>e}d_?s3(B~R07$7u;ni~2xOn=nf2JIx?r_cOfq?5#E5TlfQ1
zWIw=c>3xRXPW7Z4c~eERSu`2_n!okc*13x{WcQ+4ro&M|;*VNRkJtMeMYmmRj~CtP
zqMO_f94tMR^c;?g@V*a|^Zn~vY)K7vI2@&!O8VF-lBY3P>#m%hsrL_3-CpQPpeKO`
zUjiJC+ct0elfV9J8{_^cbow*yX%N?KbySy_DQlkDz1^|cTljf8z266r1e~X|+x5X_
zU(uO*-D_Wc=d2)z{;Z7cH0FXz30j=u4-=@Zf|RJ
zXQ%6Z?b;I9dJ4DaPB@q$a{tEOM#P<>K2vWtI>kWR1M74Lns?0(tUK))M?dvNMQ66C
zFQF#~j|`GY-uso_gWJA?k>_1W?7(Tufy2qJWVMHUUd8pdZ~E8w{KsRT`op7Rqn)<-
zBLz#>wgv1Ct8XDOhboWvx#vCo>g{mvNkRujdA;85jtmWb?Ngt4-cSA5A?rt+x^YTF
zK`Lsp=eF#%>2Gs&X2*;Ac;CdvwVk`x&E7dYyR9f@I~Pgmfe-YYY=Ei`N4r*^
z>DKLQ49%w9ubHXZbbH0X)Lq5+#-jg_Vktd2(A&8z{#fPe7V^B2PIVXOr_xY``kY1u
zjrqJlmg0a+zXD6CUcfw6(MI)%!Or8^k)7~V!mjE9*+DVjf$m2suS{f56C^n<<9pWp_T$DZE`M1Ryqkj^+~!?AVgg2
z#6^=iUny7UCGJ-V4D}DJXw+VM)n$!=^o;`tZ~B0OEE*$wpt^*Mu=^Sfc8?D+Tg*(4
z&rICY92hV9T8;tJg`+$YE4s3`3c7ph_oX!HWo
zovQDsJD~i}qyPXw07*naRA2m{{Z5lWTwW%!nsdJTT$2f_(QS46n)UL6+D`mGXx!d6
z!nIDjm}z(V`;t~{pW^9vhWn+>RcSzl#<*9NOk`@W4EdoG6om%b%qEUFf2wz;X4%jh
zku}pvW#UZM=1v2LSYuMau36&gjS1xXq{<#$!eGqIA((&D6i3!Z3cD}lw2UvSP1
z1Z41&7$~KI8O?72?33YCwp&cKi-92;0t{o?-kqG8jRUxZqwSVjd$!wdH7J*Q5n8AQ
zCn16P{8E6476uZ<*>tK`J|*mBeucTRBqBXH3leXsChWDMKi!Zc!fr7;Q#AWhua>eZ
zo0q(k9g?dcIw+DjZ_G}&$H%_$&CBoIKHe!`cWmn%q1)VHvMP;PjssD(W6QDsOA^X<
z61Hy5f_6IPl=@unG;7!kT}~!FF`SQqmh_V@>XhQu~eVy$f}>iaJbRGI@>eRE@Q$_uGOiySdcVgfAzg=S)t@e$Xcyjs?S)G?ki)
z-F)#d-J#IQua6_lP~_YS!(mRSrL!VGO#)h#uq6AaYO0ca4!P0BveDInG=J40iDBok
zLsoNS=8AWI+EHf*{EoZ>BgGyBBdOv1FxH{GO6+1svpd^hs^`iN40iXP3y0ikhtJKr
zMx#H?{9AbgEBi-EmC!FcciE0>)M3Ks=#~2!+=_NM9IbA<&T-kky%<;nqjv<7?sRK4
z<(=u7Yp<&hwHg~XbcWW2NiAo76SSw~!Bw>(6tL7nD9Vx@JWx@yV+O~nv^Fdbv&|M3
zrYG8+R%69XF+=~6OUJdqTQkMf_M%_w2T|Xta_(HUb9yHT52*^m91d}M0NhOT`T*p!
z6Q#c|yOBKBDQ%o8#x|Me-Bs(f8_m|B&HlNjCCmv&zP6k)A|&ce67>VHWSAqqxGc3)
zNE)l7r;5&GG1I9H3>C9uiQmaqtu+*j4H5yEI_sbf1Z`W_B57=DVv1syXPxOPpbnrf
zX?8EePGX$ToGV-StLkk;<%JN7o>i%u%DM7H-KCOJmr9Sh>=|68#a`-ytbX(Ch0@J+
z`F!RQm=`h7%h;m?IQ&Ju(Q3B(TkdaCj~IM=thW$gZyk=3&Q3GOlKNN8tk|Bc!3)@!
zSB?eQJ2ZYl!LHyJfGvCs2RWK7ZDGY;@IR(Wuw5TuKsn24@6I4h_B938*0R<06#hi4
zqNI}&cc+tw;cTncwEd_9S~c4xM(~_3l1g)^rgP?8Vu!5eT$Z`~xq-6~d{;7D2=^d7
z*LV6LOg%NHU9Pul?Q%sTU9n;h0)zJt$u#F#S9i8;`SibZC%3i^Ibp>a=N5xU+JrzL
zcW1fepL;QS>7i3&)Ehe`Q_OHfg
zsq@XG*xkuu^DP&=_aCP2{N6Ku_SMBvXVjV_sdiA^;n|dkG%*!mP)$&N%n%+7om3%m
zrDnQQEf?S0_ZD~GS*%;%DFzh@GgHN2e}A$4J74&xzr5$Bn_lpXzur9I%;}=vy|uDD
z_)aY<8znE1Kr|J{x-0qk0j7YPGFPQiy-e;D8OTXugj{cLD{6O+e(s}}UjB_ucinTu
zs&!{R?#ZnuJhPZ+)rQyAi@qd%`aDNrCoBic16k>B_H1-~d~CK`Yx^#6T6c-bVeaH2
zH6~=9QhU6UvB2S2&JIUH8>*ZrR6^QgDnshkNS2;<+7U||TWFQ!=AaUivj69R%km8Ma(D&!_j((gIY}jKGN^Hl^
z{Ymcu#^snnNIQJf+l#5&FL?jk`=+-x)*SJS4eN^I))i@|B89Mjb5?MkMLJZf*!*)y
z##47@<{KCO$NS&+q!<6nVP~FO=hoKJk(`aUqQ0#*e*22PQ;W&1wPvg3Y--NONOqR4
zB2ks8!8}hiP5AQxAj*CufaDsbvd;s}{Z`+&*mC0*rlLmLxtN10*P{u{f2;(kk=AJf7@z#=CqDe4_do4b
zzqbCAM|aX(($d=WyH*?DKDKS^<}@QUFrWAcj5#sSgzSXhFGce~PR^)gr&Yup@I2()
z?{242tIgEA+l%%+pZ>#FZ@lH&bDs7i=RVGw`uhPQb$
zl5`PZ%1L1kZ0;#Nrkr_Cv;^62QR(r_VgEjMZf0iM{iNDxj!#V!F3DH?(Y+Av{poOo
z5+vetZe~ixRmzk~VNNsRAwAFQNY3#Qvz%U3I1gVb*r|_qnv64=#fft9nX5>O{Ds-a(XV&$b)3vu3wl_tEzcH)bAt
z)+tw9_3h$@ON%4Vs5hOhxNML*N!x4FGuDo=TQSpa*BW*;Qh#sTwryl&WPEC>ufIQy
zhpCzNwvD5=-B66)TX@gBK3H!yC#NQx>0Z(Fy0t^xkD_fCWIUbb^eb&mOpHU^YPsY^m}aFb`vvFQ^GPEDHA
z)5XkaYwF(Zw_IC{-%|`7Q(h(M7BjVCXtu5Usi}$n{=up4OoK{vMw>HRM(@0SV)I=@)HgHL
zt@q8kxJX!oM?B-Te_m|aS{!<~hkDVlwJ_5ecM6ai+v;mWOUH
z9Lr1(^z~17+I{uL*v!;$E6IG`-AMvi5YmXB9xDd#z3zj5xA~4+e)1Q7qd5D?MR(w+
z$Gzb31Mj@};~zNlw1+o-=qEb;O&1H2nwNdL0Lel0XsG(R>z=zu-E%2lGmIUMR+n>|
zB)ShF31vQ1?|fJs`!{DBEs2D3m0Yon^VQ~lhbAY(I9Z-G(isXnJw46jI@T0-(s*p7
zZ#7I$Q$kmvD46f1LhU`9KvU&m0fGDeh_@Ve-H;4&uqLLaX1bFT40zwb5W_LIq7Bos
zH*MNWha;)rPDDa`tf4)^@2uP2?iM=nQvK~j8-^XBrJ_BeU8#Gw|U|azim_v3=E8p
zjt;j5(`s*gEG=})Q0~K|DixgQCy|L`G*?G{6>M+Qt}dj@1r=W~V@O6LKg=hR!M79S
z&@XzhG-~NByTzdMRSuTljdZVbtmuwkf9Y3NZ8&1p)1EPK<&~FR_&;Yp?WILAG2>oS
zt=#8u`fSr|+oocmm3)E5ptX4^sm{ot4gS%gemcUdNcXP>Mp}mtcGk__Q%v4g)K?ar
zp&@=k|8y}_o1Pu5yGGC%<+$`WhrAtTP8~Gu)?3Bcc(HPIF*`}C2bz6pY3hQ-itURsDZ9MAVP`dQ+BS0V)d-`1_g&`>eHtr#3E8jX6V(O+LX)vl$BDfD-3Yh8Eq
z`sUhV`kr*kQuJf*l!Zn(y{-V*J91qIZb-T0Mm>Mm*jluL{_Dp}`
zu)QMrBbsQ>W$$B{}qT^e0DT&t7o?wgn`PgS;IKp2u#Hw@##
zdqAlq+e}@So?UFEfCK$J^PyIK`=%{!gH23LPEU@vCui4;tfK$*W?yTdZ*pR?-q)J#
z+V{6X%?OtKJL#_UZ;7ysqIH$E@s6UsOhse8E|co*0%5d0nufK#r0`&a`wqu!XNDL#
zcImp~T<`4zTYKqnpnz&JB5l2xUPP$q;Eo9?t6LhDp;^J(LJdxZ3wmfLEnftm(4+?M
z2s^>=$X=XMEv;;l;YYSURc~&aZETrtwFWk<*>KG8v90dxzyFt9VPmBucm?hbMCv_9RQX*621o%Y5}o4N8{TI=ucA6l_u##Q+;B~U}2Yb
zN1~+CIZJ>pGb@H`@?mT?FB-ZQ6Fc49D3K-!P)>V9R3r`fbTh_^F!lApHr95Q62W>~
zVY0aXTifrv#|#Kyw)^%#6!;*IR6F3z@f#onH5FO#&j{ZvFO}YeD!m8
ze(#1`Z@KBHBahi|@*`_!KcyHrx@9eH-tA1^^R+Kbjop6K`HwI9r`lio^6l4sXKd4^
zV-Mdj_(MNZ9C3Dk-x?#N`@L(5D?Ye(;Usz788RrvwhPetB22cRIy@Y%eSr=
z-*nFrPkL5SU&Dv?0iMELht8Jb8y9W6{f66bxnW>vaNS|YtbFL{#R+GYm)R$aYd%|i
z`;yVod$(@6+f*^M_Rx`29#@?4Zu`zRrzXZ$A9nQGQy){D
z@zkQRw&)mx9J@&`VBc}k#|}SqUGd1r7NgroKmQ;1-g;fL(O9|R*pVN8QPH=dC`O7J
z$?g<%k)O0-+352jnL4R%+ENT9N2lmcjNf@%yEEHAGMqfNbY-4C(`Gf6G*dfaKA<1M
zbt;E3ixEb{CBe9DQ{{Z|NUxUWv@V#pe-exA)Xo-wC>NTtodMErRjn~OlkDF1&6~zI
zZ9IJS$eNMC^+#`5Ik0l$T^q;8C-2&_>F(P$uRiK<_lw=6;~H}-^Odrljh6lrbXgja
z>0qGzz57li6SEuZS9%P|vnbu?5*4GJ+G{Qhz8AH(q{quvcW$n;rcAJzlM-TK6r~Gu
zAEf7W#Gh8PX$II?oO{X8-a8ys0%TbB7XLWSB)jG$CM7&qYtN-ky_M`8UP~%o*m>o1
zIh)NR+8KU6cNf2{8*LjBo=>HYHHQX|JZZzj&n`9`=OTJq>fyiKjUBn-vf{hfY`*c*
z>Ct)cbLu`{1%~-hDu#!OT<41_zvl)>nX_=rSHL1!ZgK3$1s{sX
z5vg`kP-J8bN{o3ILpptav}|&9@v;Ng!IW~k;p@7S_gs8If4%mQv(7CV>yAC=8CPBZ
zPuE_2;VDO-+-$5(-E3b>FWqtd|GfVlkKgq4vyVHu3M{pVl97
z*z->Pt)e#czyJL|1J{1}*pb1nUUJE%&tEcA8@hX@apYs4`0Udjmac`j>Ya(P;)-v6
z=sh3c*EWiAbg#JdYsXxD^`m~_jm7X0>6_G)XXc*b-Wxvn7ys|*-8Vn}uh!R|RM-yfPJHbXADY^7{Zai}KKH3F-hPYQA$qgb!c`meqE%FF)keGfaNe#|sA72dDFZlSs-E+f@
zuX@B;#hOFY3u}C@*==9``#-(;5#&3-#GAT=4nn%fEE^ivCM3{_+ztN1yZJM?aFoamlCuedA4czT)&p6f1BtTx`E*`kJqP{5@}**mUcLb*osO@$0{{
z?K7V_`^n!r`Nv*a^l#|creW1K-TLYGzV!)bKXS!w-~Gr(KQ_|Yx~ehVncP0xZ5?&Z
z4QIdR_lhRDEp#|&;xyHr?e?_}IqZZ-eEW*aMlbmIiXVGOZO{(N)-PT7>7n(<_CNN?
zTG6oQ#D^mRH-&dU%np3@PNOp|b;?7m9qjIp8882FxTQ8m6KMd+1)1BNm}7>C8K^Zz
zx7=Hw8T;|4pZDWGdY+9tomXBjN_Y9cyQR4F+Uq{^l`r19W#eqqo?XMPNV2f@0u7I3
zq2^j+$6D}~dHTh>D!+^%8CEo9mT440sKZDmZ^I8H(&|b$Ib`Z>n0dXi?0pQIJRnJ6
z^R!Yb%>;>7I^k1P-hyR0%Vn6kYiDS1iR^(G40ab7DSWfMT)59FzxNIYs+^2;NH#}w
zd~7T+k-8+ak$N|zS?<-%NzjXaDL+HaW&34e6&jGbct>{Gb4$Skj*h9m=~t<@%Vgaf
zCF7l;JE!^{_Mz*sVT%7!f;+n79bWIzNvwRLDjg|Ivd7Lr8$0m+Gd%UgbuHA~M
zzFK;xh=PxfZSEUtx|){W!EHCv)^T!DXs}!2DlIr*)^vXPx$fTo^Nme
z(7O*=y{0|6y}vOyH8nMxUS>lu3Dn_>xL&4f+^O>XG9Aa1`7v~(vu4ZBaD{9f_E!bF
zlh+Us3t|nd_={@i|$a-7*2n&z&gHl+u-1eYc9X^
z%J1Crq!+#R&`17Iv3^x?^A%Tr@a;ETd)e`qeP+$M9A5)(rr31Vd;a2$BkPa&iU0SH
zi}lB`iiL|6mt6SKxBk(!jkllj+CRfJzweNN{%uoJ|MM>&IO3dVKjmkiSFGPq%xoY1
z*tylwmDlkEXC`ycV#
zmz?$3#}r4Nnhr-=Qx2qV{g-!Lc)_PH{ovak^%Jis8mrIymESGC@`(R_*V~`^ieDM9
z*D^a;^sOk;%XiL_##XNwoE~z2c5|^xyC#ZTzVfkmym4lD?N7e>Z;K;OPE&qo>$M;L
z=Sx5QFNd|-tDf`AjTI-Qw`^9dICf?Kmg}#+>gKzD^aVeC)ML*}M@ZXlzx?n2`i?6v
zExz=L;)ySbs~p*mrS71khE!7v`%Zh#%j$Pr^W_Ua@|e-BtDgAeuYBa+?%Fc;lGprk
z(K@`C8lAf7+W!9GV*Sy@z(C-M>IYYx%qTO?4>rHDMzf_oNw;v)uEUNwxH4wb#>agK
zdCl2P24OB#F{X)In6qXnou=n*F}Y>?%J$6f|Ju(#@));yid&|pzk1`%)^jHwdhFqA
z`c7P39QL?}od39o{6By4mYcWU(-<6SHTotd+XKVH)01P#k+Ms|8)z}Ivy+pPBh8Wa
zbZ6Gqp#6=yJ0IPlz7?ZeN1b0gQcpLKtV&()tJh{!aXgqleUroz?-o!^;^A{lIbrC|
zx?gAW*C}|@0PobMr_%+ZzE;a2a^KM4z2jrhb|rO>%eGfVgM2BC^7jKAnJWk>Ch3wh^cV5A9G>>x;n;ySbpR$JPV4znRd$q@
zsSJ?w!zE0LJ{MT$`DB`<@1JJ9|N6j6SI@Fpi>M_6)R7D%u`oC>Cwd@Yx{;)PENLqz5$BU>>HSv
zp6c}1Rt>DU{mU1QfAKbWT9mCkhr8us(&-iANdlxRIxl(F|ak+5DablytZ+LoQ
zYTKr*BWp*T^YbvAo4ZIjHa0%kTGdxi!1b9)SK!=SykE)%?zMUx!62
z4X!&D$ypz8jIzDCdS&a7PHp96xrP{OOczsKKH@P)9d-Jz{y{Ntic<`3L+iLRPkr)J
zuf6=DYrpyBbIv_K-6yTj-1w;v4o}_n>{q_NIONdeTexG<*KVDD`cuw&_&2`!rBm*@
zr5HKfeBwl7eB0J%|JLsoC!SxlHY9JUf8~m2zi{{~U#j`s#pKq)t?0Uah@pwXxyDFQ
zU!Be=#Mq`hwe2u8_)mUZ;pk2kU%TM8E5H88Gaq~6^L`3gx3Pi=FV+q||Mh<{bN6iy
z)9qoL_57EY>Hd6`Ov#(H{JH4-+Xhi;i0qjBgxdk&MD7(N&V`tUVh=n&pr1!#qjD_
zz0{^ART0U|MILDDc{^|
zoci-WJN`SDU3$p{GZ%mE%yS?8xZnPrV)mq>HBxN6`d|OQHyyG5glE3y^+kE{_n=VT
zC7Cpqsps68X9v=$n^M)$8fJyEXC)c*E#dt}Y<^jKQtOijBURIks>
zdcTWn!B%(sx{bcZ_{8|o;7F%E+wAkfkq)r2@zLQGL*5LSN$1f{My)HSxfDDDpQG_Y
z!PLyGyCJo1124&vSy!|ghpt{VIzBovJKgD81D58^waR9zp1uZI4D|PJ8QTu+_R)!f
zbQ&O-xM#ii$TitEIffJDec8gOYde>xjxd)#N4XzT@%eTywf$adVA!WN`th}+gZ6>!
zJ~$l7*P)N5ObUU1n#9UbaemXRk~p)BpDT=CC2YxX#ZmU`Cpp)`{7G0c29Z;NjEtS&
zEB;6tB>}Ok*vk_4ZlB)ph|`KQpIl7OZvWgr-+tvqYX$};C#H^G$AO;mxufaXvF~2^
zcY}9*w*QzT`dC-H0?Bc(Wk742lar(EM&G0>yY?pB#;^H0kS$p6uxqZRL9;W{xntwT
zslJgz58E)Y<<`MQZHV*Hw6bgV9dhV+XZD`aX}-p)k)eJbZ?|^q#O%OGdZ)iVvH9>;
zXGCi)+R{CR%~&xzc$lUplx<1DN>SJWV@_
zSzQwDgDu!a-+ueGU%Fs;_2I3@Jhf=8p5lTItv>aM=ic%4k8Szlr&mAp+?n>2`)g^=
z>oi-PzWJMXrDpCt7}7XeB9M35n@wVy>2BLPe#oPbPM@DJ15Zx3`@NgeUmSN_t=aUp
zOS;41jHW$t)y1EA))UVt*7Oy#_oi2NYh#61ExKFQp7*HE)!*2B>$lgOvEEU^Y_r|J
z;gI5_hZMuBX2xr+VV-W{;mA`?x#g;B-FbCZknTQrTHcCG+s=Ntz(!)?yvlv*(_-6Q
zcU}6~Ro&6kpY!5k<*|Gr4o1rr&h)lUe{1z{+VigU7c=Qq-=e+UD_!Y(8xwaIo4&WM
zwtd@{(R3n{KF_g>kS#z`8_SGNv31)`-?{m$Gtc!EkfO7?Ju%Zi=yZRmnCg4zlYjKv
z?|ADyS6s4w{ozG@6-Q@mYPNsXVa4p~Vr;l*In!T}z9DwX>CF`bTgUEQx71xiZ}6lg
zEZ4-1)Tz<0|MigsQQ#NrduNdBP@8-#|vAd^cR(kP@Co(;?
zYW?cQiXkgJ3kK|v6C*q6&G5;YtvBC0=%8@TP`b}F+nnuAZ5f}~wq>gqIo7XUd*==J
z%(m()k2$R7Ai~PTfxR(QE4FRFcYNzabM=auiJ6r}|MrcWCM{))`k{v%0bqW_uM2OLv_~!c2T{>8GG+=gd7-nxkyT);Ftih+i>X(0LeqAx
zyE_MB5j?gy5qJhzI5#H40~8_w%b!%`EUJ2YejQ*#fs@I
zH(x$={nd@3ky-P%tu8A~?_V*#ox(dKCp`Mx;?y&@U3}5z8!jL8@k7@%Ykgylm9xdr
zVaFV~{-l$O%uDxsHJ!?jqj$^isj-Pt|GmD2l;^t3%>fVjFKJ2uI
zAAQmp#rne%=l9%s*Ms!%s6OfwPjpL*w544;-4AJB$&zp_#lta*V{<6eV*Oil+I1ln%8i~LWPDbQJ
z_f+9yE}E-2Z;kwhUd7TM<*}D*_667v%E#&Aj_WpFf7z)IJFQsh!sE97sVVbpaq{se
ztY7`L3qJkBFM8dOQ#t!OzSUtrZBA;AQOXosLO&T&=U#*xKl28r>@tJMK14lD_6AyC
zf8W619hR_ih@fP2Y0$6}5M~{kHLXn+gvM
zd++q9)qS-)uh}#;dH3CSuCXW4Ful)=Vr1)Bv0||005OGh2r}C4c)i{icTWncW%%;cu6
z)0_2S7F~xLWF|ewy+$HMsiVCl5
z!!dTvC$?;K_?Z?jHLsZ2zFAxR|Lna7oLt3`_}`QBY~IzbRyj*ZC<}=ovJp9%U<0ozG{V?ZX&wwy`lem|!wSfO1AC$KBQD$$9?Y>i1^$Z9*%+7(Rc$
zot^2|uV07i?yBnQs%meo^5afTk9ACA?15|{)6sr#Vjnr}S12v81sy6GdFs1g1KbO5
z`n;-{eQN#8NB;YBfBex;F8#z<=Zv|kr`1!;g)6H?n1p{jDyFXi@{)e}zEf|6wUyZ_
zW0L&_W3o%{>k5~eR+`vvS1U?WME_E;d@kViH#kMMws&7kWAo%x&KZxS*rdkL)>Bb|
z{5e%9JhOI9Fc5Tk{fSuA=l7)JJ?Qu>Kjq|e-g8DnP%QG>V(FD@HvaMtcSkbCKt(l3
zv*$?b{Mpmr`?=3-+rH!1zx)lt?9sJ#i%wZKcI?>A+cu9IGxqqIvwrpa-@UYHU1dW<
zTH{PvXER_^$*JSV-}u=t?AZ0%?T_3Iyd2p)>K$h;TexJ&qT?r4!5hW$YRhYFcRh6f
zrX8;Z>PK_N0}gCK4mW@Hld)vvd$-<_NyMqf8Ou+YJarm2TfhCoy`t~|+SD5u^nw-c
z#%7bzBY(G%HWZtFOoQSLFdXICB^skJp#Uf+W*Y2AF#nk9>{JQnGI!&IBQe+3Mm*3g
zUlJCEu^a)cNv{!~&XEU$)AywoeA$=Y8b2V+j6!RnE0M07x>yBjSp{x+^8S!LmyUKJ
z!U9L7g%Y@PS(gi)2=pz`LH9Z{piMM3z@bo(T!A%ZWu-HNoygcJs&0lo)RK*_^J8+C
zDfZ+XNBm9GmYw5Wut?5`=-I0}J5;Dvop#0OB@WM{clT_0q&8&d_!%{EwyHheH!nQa
z@3c=EuSMd>)qN^7v0?I}y?5S{JNRNl$kEXe$F-rVn~OJPFuMZHWg}>5t8iu2?)~XQ
z`|NghhZ02_JB^G>hBEZamQH06Jf&fx5R>Rj3m8mbAQU8I0k$c=DVv;*+EgJA@0k_o&4nZmrW_sf1B0ojjmbhUTna10Z+cXjpT9o4;zb}zax?S#p%PFv(
zzNB@0Qt{rl1N9XMvc(Hl$P-FuQ_|}g6u_G!y2y63_x|FyzI<@|)~c~n8mG*dJ>?v9
zOM}&}mwx%bJ-uzhe#PVBxm;o7n;>r)ZB$i16lrLF63BvCz
zJpJ3qu5}lF^i!&Gj!M_6(WB1&;tzlS-LL%OzrOO}fB8Qu9L_`{fvS4tgc0mxzopit
z>+ePqN);I4FZHC_49RpF*U8crA)7!;Pgrqt*Z;Ci_x=ywqPspm5OfB5*CT?wab3fN
zpdah2YF56wu4ckSw?k$M?uw%9e>rTPpr5wHlPOy?$wo;m(lM)f%-242{fuhWrPLv;
zsfubw&@*}YqH`86`s7!?8%@SNfj~AMof)nSCzuS|yzweTZSDZEv
z@WIx1W%3nn$JsL)&YSVkfBxPr&un|uU)`8X6y52>@(HyzReMKQ{KHpVcGdZ(qs+x%
zrNrl+tlY7;#TlwXOAmiJGQ}*HCaOS0dIYFgp1hU8K5TByReAven8#Am7}!z?k{)|4
zj-BDq=zzkEkt%F4lU_s%rJ<=uE%O;vA$8Uxs5BL&Io3)_m}fFkjc6lagaz{qnO-M0
z(`(S1=_U0rmtImbubj$Xi6WayblD?^T}5#(jrs)x8Q~opC;CR=A_2@JE=D!hA1X`P
zc+P6GI^8~89XMw#dynUYGga&EjSu}X)v}rW`+T5&!tp0HoP2)m1()~kc{Y~rL}gWw
zV|Y}<{APsA=@*}B-MKN5Oh%o-#phkF>YB$dziji*{#xZh$`aV|hu^8@_9+)%quLLz
zy8k!+TyK5Ihg>}u>#=7N$t+$RjO8-p5(r`iCS4$lU=38W+Cz_^q1yDO<76D@uHeh~
z7&T#I%Djx&x3Nm4g5QE)Mky8FxNcP_6xw>IebeD+t~cXy`Z918_H0Elf(&8rmNhj?
zPgkKPy+w$YXdc`lorCw3*O7&4&qcE3B+1zQWsm?t$R9s;>@x++Ksv?JU(YgF{E|2k
z_onp?qbtJI6XzVSF1SgBa9IJbqxluoAZ$tD{u~V=bx5)6>|$@rV4$g#j2FfZdTY=d
z+3*7IX&FpDjlNqvg9`KTaD$=;11L_)mN!h5U`)1QkZlOf*2oAyBAHFM-_pKo-4&N!
ztS-1t?0B6473)!|!xpYl(N4A+*@zKC4@|(Z?gc~!$D>0=81`Sto`xRQHxz`@pDz#)
zmm(T_QNFBX61^U$-B(eo5?Gwc8i+_PfJV1z3trt8?NhklK_UH{$OfuAA8*_Hs-Jq*
zj!~{^QDXIk)R?(ff9XFS`|-a$_`Pq;pESL>wtC{pC#!TyxdIw}NiGI1?w{Yg;|}Bp
z9%J>O~L;h=t28qoselNbonktcy>hAR#n1$L8I;_V%czO7*FmK5!(O+_ZBy3i_zW
zc>^IkX3IW2#c})}V~=wXanq3q6;t2({Pm-h`o-PP-}B7lEs+CD;#Gyh
zXPvnG^Os%x_0QjU$(Q~umQM%5HO}5VJC2OpU;XcoYXa(UB(Z7hrru<>zIj429%r=6
z3}WK5mN#i)KX_{+o_;ZJ?Tsd9gR_)jfC38(rSfQ(L=1*w91q9Na2S;lxf0|~GL=^=7`jiyG!
zT)>H`L}DMlk}v^Cv=+PeJDh?YS<&I;3%e40Rk6kts*=w*iv`X`fhlI6MY7cRjwW&=
z38d+ayG)iEiguTx9B=$U(oA9x3sqrD3qaht{XJ@dZZC^!Yt4beH
znYPTHRaM?pstp&!dB4}|bK|Uu>VfFdGND3bT7ro{A6T=Pma!o06yN<&;6`vUg8VH^}6nRk6ME(1FgA7N0o(gEy?q5>a6nu$^YYh`dy@>Ow^|ag|$i
z+1*Ie#7004OTqpN8z*=UJ+wjkBoLA;!%pDFEjz-ZoXN$PPX%ienc~i!2Pfk>qY769
za3|Q$Vj+SCa#EC#yyH~9M;wEp%}U2GV6tMGt!)NHg&70~8zOp|Hr#MAc(VA%ig8LU
zm6VT^B&9RN$`^I9d#anJ@7?p7Ib_p=qCwt673(2;{X(!K9wPV$amoI-l?dO
z+5@Z!N_9)AjswY9udlXQRW*s$2;wC^^a8HZ@TF!T2~bHc=Rx2hJ67eESOc^cLj#Ug
z;^10;vNtLI+E~*f%f}L}X~uiL^!4?(egE*z?Z-`9By$cE6+y*9bQZ>QCTugTP!tt6k%BZpxRE8A9h<_cl@P^xJus+7?f|~UO``ek!{^YlJ{`<$T
z8tYcK{@)w7?CpGQ`>yp{wsyyoyN(=cIntK*y6l{x?)Ac-!@MP#ICai!_=ZPU@7mXO#2xk?KV=5o
z23kp<{kLzV-OlQ9(-EX~cXa;Yz9%L$&OBq;)Qc~==*M^bs^E8dvMII$WYqZ7=fD5+
zRU5b9D;(XsKp^Z71rSWya#^>~Jm$R#coUZz1XjoCj(R<`Y`{%_o3qyv^Ljzp^r3hT
zK}TrUifGniUL
zp(UVe+4o%@xH@3Q%e%v*w^pNHR)VI7`2ZI&J#ssJHKNFt%cqhNu)ds130Gn853Qk8+XmREi{|XkBblOq-cpu9Yya}p!NZ4W?*2pVJNF(+
zB{TV4?&X(P;sqfvXHnMf6B88{XSv*-buXvdwoS#GqdQgQNR16<+g@9zlB_9x<0eke
zHHlHn9i`<
zM^)5TAl%9BftwvXq3$4cl8Fz^EaHKDOc=VeF5GgRP1zTj@a|<
zHa^)FmFvQPOlMa|Fys~Yo>Eh6N)QR4-I8$UQUx|Emz#e2op1c}M?bV^@;FC4iWgco
z!waeS2hTl|(fz+aza`~JN8+7__U$^ncTYUpyKdu}r=R^RB8}-|n=X!W
z_t<>yj+V9y&ORGded|yDx9z|IYzq(X+_QiCPIs=D=#D&a|9xPRaZSy@sF3sLa8)!^jvgPXYc9Gxu{d^Z3?*T;wQ7)b0K>{ta|=jKlklN;oJ6@j1hT!6`l^0F0;{l}eWoyKALecn)m@SiUa>
zj1;W)%C8#ha^txb;~Q+aAXpGrU&f`3%->-rJnR{p-r(Cf`gS&q{rp9LMX`{EX@lEf
zEtzxJIKF|yDu5*xB2Z~f&Rubl00Ueh?QFr@i@sP4U*=x6R6zPbAet`pIBQisE*UC{
z;qldT&v&>om`jSyi``KX&(=LIvVHk|1xJ1PF9@+F{xVb^Gc_9QFVgOh`r@yAf5HJ9FhYF2pKK|s|
zM}N8M@%v6Z{W|=@sj)Mv8ppJ(e}2}=$!fvb3I)bUn_BnRXYahtlh22ISaYzl*95+<
zwyL3W=gW`OESMx7JG>PtijD%lx)TAf3Q-mS6b6Ehg>u8Up%Pak<|^=-cJ;WQohRw4vY
z?0M(WzTlt)T1?YDs&ZmO^Kl)k?^DnGNi7zqqOui&5X6}ehbv-)MiB&Q%gOmXj8t8Tf
zf*w|p=8Wh+{)~S2V-z%Ze#N7;N7gvvb4-EDp2d-h!Q2*lI33tqBP-`NQ)Qd(rmq8CRnYKe#Po#9EYe=L~
zdiVx^%gYts7pb(q80Kgpd+I75-n8ZUFMMUn_(`WMJ!N!bF(~tuLpML
zvU2tL*mKDhGFe1-8r#UueqMBs=o9EV>qf$8PJriiBwqp){UyDlm2D*MbuQgsLwDtn
zZ^^dQ5Ep!q3=k+aGNd7%k2vZW84frL*0-hH;lE%>g(qWp!ZH}MO=g`jD0M;&HDeAM
zIzhtL^hOQ>bAxIc6twS!VM7|