From 259e49c0f6cd55f87dcda673bd4ad1d270210a23 Mon Sep 17 00:00:00 2001
From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com>
Date: Sun, 28 Jun 2026 18:41:08 +0100
Subject: [PATCH 01/12] chore(api): close v1.9.0 engine-leak guard and metadata
gaps (#253)
* test(api): extend the engine-leak guard to all public document.* packages
PublicApiNoEngineLeakTest pinned only eight document.* packages, while
output, snapshot, theme, exceptions, and emoji are equally public and must
stay free of com.demcha.compose.engine.* imports. Add all five to
PUBLIC_API_ROOTS; each is already engine-clean so the guard passes and
locks the property in. Engine-adjacent internals (layout, backend,
templates, debug) stay excluded by design.
* docs(api): complete v1.9.0 since/deprecation metadata and date-ready CHANGELOG
- DocumentSession.pageMargins(List) gains @since 1.9.0,
matching its sibling 1.9.0 methods (viewerPreferences, pageIndex, toImage).
- HeadlineRenderer / ContactRenderer / BannerRenderer become
@Deprecated(since = "1.9.0", forRemoval = true) with the @deprecated Javadoc
leading "since 1.9.0; removed in 2.0.", matching CoverLetterTemplate and the
api-stability deprecation ledger.
- CHANGELOG in-progress header "v1.9.0 - unreleased" -> "v1.9.0 - Planned" so
the release tooling rewrites it to the ISO date at cut time.
---
CHANGELOG.md | 2 +-
.../com/demcha/compose/document/api/DocumentSession.java | 1 +
.../document/templates/cv/v2/components/BannerRenderer.java | 4 ++--
.../document/templates/cv/v2/components/ContactRenderer.java | 4 ++--
.../templates/cv/v2/components/HeadlineRenderer.java | 4 ++--
.../com/demcha/documentation/PublicApiNoEngineLeakTest.java | 5 +++++
6 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 782755d47..f858988bf 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,7 +3,7 @@
All notable changes to GraphCompose are documented here. Versions
follow semantic versioning; release dates are ISO 8601.
-## v1.9.0 — unreleased
+## v1.9.0 — Planned
In-document navigation. Rendered PDFs can now declare named **anchors** and
**internal links** that jump to them — clickable tables of contents,
diff --git a/src/main/java/com/demcha/compose/document/api/DocumentSession.java b/src/main/java/com/demcha/compose/document/api/DocumentSession.java
index 5f0586f73..8ae52b00f 100644
--- a/src/main/java/com/demcha/compose/document/api/DocumentSession.java
+++ b/src/main/java/com/demcha/compose/document/api/DocumentSession.java
@@ -475,6 +475,7 @@ public DocumentSession pageBackgrounds(List fills) {
* @param rules ordered list of per-page margin overrides, or {@code null}/empty to clear
* @return this session
* @throws IllegalStateException if this session has already been closed
+ * @since 1.9.0
*/
public DocumentSession pageMargins(List rules) {
ensureOpen();
diff --git a/src/main/java/com/demcha/compose/document/templates/cv/v2/components/BannerRenderer.java b/src/main/java/com/demcha/compose/document/templates/cv/v2/components/BannerRenderer.java
index 79782a470..ea6ee9ad4 100644
--- a/src/main/java/com/demcha/compose/document/templates/cv/v2/components/BannerRenderer.java
+++ b/src/main/java/com/demcha/compose/document/templates/cv/v2/components/BannerRenderer.java
@@ -5,7 +5,7 @@
import com.demcha.compose.document.templates.cv.v2.widgets.SectionHeader;
/**
- * @deprecated Use
+ * @deprecated since 1.9.0; removed in 2.0. Use
* {@link com.demcha.compose.document.templates.cv.v2.widgets.SectionHeader#banner}
* instead — the widget groups the banner alongside its sibling
* variants ({@code underlined}, {@code flat}) so picking a section-
@@ -13,7 +13,7 @@
* delegating shim so v2 code written before the widgets layer keeps
* compiling unchanged.
*/
-@Deprecated(forRemoval = true)
+@Deprecated(since = "1.9.0", forRemoval = true)
public final class BannerRenderer {
private BannerRenderer() {
diff --git a/src/main/java/com/demcha/compose/document/templates/cv/v2/components/ContactRenderer.java b/src/main/java/com/demcha/compose/document/templates/cv/v2/components/ContactRenderer.java
index 2c091171e..1ba904810 100644
--- a/src/main/java/com/demcha/compose/document/templates/cv/v2/components/ContactRenderer.java
+++ b/src/main/java/com/demcha/compose/document/templates/cv/v2/components/ContactRenderer.java
@@ -6,14 +6,14 @@
import com.demcha.compose.document.templates.cv.v2.widgets.ContactLine;
/**
- * @deprecated Use
+ * @deprecated since 1.9.0; removed in 2.0. Use
* {@link com.demcha.compose.document.templates.cv.v2.widgets.ContactLine#centered}
* instead — the widget gives you named centred/right-aligned
* variants plus a configurable field order. Kept as a thin
* delegating shim so v2 code written before the widgets layer keeps
* compiling unchanged.
*/
-@Deprecated(forRemoval = true)
+@Deprecated(since = "1.9.0", forRemoval = true)
public final class ContactRenderer {
private ContactRenderer() {
diff --git a/src/main/java/com/demcha/compose/document/templates/cv/v2/components/HeadlineRenderer.java b/src/main/java/com/demcha/compose/document/templates/cv/v2/components/HeadlineRenderer.java
index 7da0ccf95..c59b057a6 100644
--- a/src/main/java/com/demcha/compose/document/templates/cv/v2/components/HeadlineRenderer.java
+++ b/src/main/java/com/demcha/compose/document/templates/cv/v2/components/HeadlineRenderer.java
@@ -6,14 +6,14 @@
import com.demcha.compose.document.templates.cv.v2.widgets.Headline;
/**
- * @deprecated Use
+ * @deprecated since 1.9.0; removed in 2.0. Use
* {@link com.demcha.compose.document.templates.cv.v2.widgets.Headline#spacedCentered}
* instead — the widget gives you a named API plus alignment +
* spaced-caps variants, while this class only ever did the
* centred-spaced-caps form. Kept as a thin delegating shim so v2
* code written before the widgets layer keeps compiling unchanged.
*/
-@Deprecated(forRemoval = true)
+@Deprecated(since = "1.9.0", forRemoval = true)
public final class HeadlineRenderer {
private HeadlineRenderer() {
diff --git a/src/test/java/com/demcha/documentation/PublicApiNoEngineLeakTest.java b/src/test/java/com/demcha/documentation/PublicApiNoEngineLeakTest.java
index 946c17468..0f20abbe2 100644
--- a/src/test/java/com/demcha/documentation/PublicApiNoEngineLeakTest.java
+++ b/src/test/java/com/demcha/documentation/PublicApiNoEngineLeakTest.java
@@ -41,6 +41,11 @@ class PublicApiNoEngineLeakTest {
PROJECT_ROOT.resolve("src/main/java/com/demcha/compose/document/style"),
PROJECT_ROOT.resolve("src/main/java/com/demcha/compose/document/table"),
PROJECT_ROOT.resolve("src/main/java/com/demcha/compose/document/image"),
+ PROJECT_ROOT.resolve("src/main/java/com/demcha/compose/document/output"),
+ PROJECT_ROOT.resolve("src/main/java/com/demcha/compose/document/snapshot"),
+ PROJECT_ROOT.resolve("src/main/java/com/demcha/compose/document/theme"),
+ PROJECT_ROOT.resolve("src/main/java/com/demcha/compose/document/exceptions"),
+ PROJECT_ROOT.resolve("src/main/java/com/demcha/compose/document/emoji"),
PROJECT_ROOT.resolve("src/main/java/com/demcha/compose/font"));
/**
From dba858aa9daf41aa6fcb4eca932613d75b031ee3 Mon Sep 17 00:00:00 2001
From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com>
Date: Sun, 28 Jun 2026 19:47:31 +0100
Subject: [PATCH 02/12] docs(readme): announce v1.9.0 "navigable" and add the
v1.8->v1.9 migration guide (#254)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- README "Release status" now names v1.9.0 (codename "navigable") as Latest
stable, and the "What's new" section covers in-document navigation, the
native TOC / page references / bookmarks, multi-section documents, the
per-page-margin / bleed / row-layout additions, inline chips / SVG / emoji,
and render-to-images. Install snippets stay at 1.8.0 (the release tooling
flips them at cut time).
- Add docs/roadmaps/migration-v1-8-to-v1-9.md — additive-only upgrade guide
with a per-area TL;DR table, the one negative-margin behaviour note, the
2.0-bound shim deprecations, and the upgrade snippet.
- Index the v1.8->v1.9 and the previously unlisted v1.7->v1.8 guides in
docs/README.md.
---
README.md | 25 ++++----
docs/README.md | 2 +
docs/roadmaps/migration-v1-8-to-v1-9.md | 84 +++++++++++++++++++++++++
3 files changed, 97 insertions(+), 14 deletions(-)
create mode 100644 docs/roadmaps/migration-v1-8-to-v1-9.md
diff --git a/README.md b/README.md
index 66e97b8ce..9a53f7ff0 100644
--- a/README.md
+++ b/README.md
@@ -19,7 +19,7 @@
> **Release status** —
-> 🟢 **Latest stable**: [v1.8.0](https://github.com/DemchaAV/GraphCompose/releases/tag/v1.8.0) — codenamed **"illustrative"**: native vector charts, SVG & gradient graphics, free-form clipping, and a leaner engine artifact. **[What's new in v1.8 ↓](#whats-new-in-v18)**
+> 🟢 **Latest stable**: [v1.9.0](https://github.com/DemchaAV/GraphCompose/releases/tag/v1.9.0) — codenamed **"navigable"**: in-document navigation (anchors, internal links, a clickable TOC, page references & bookmarks), multi-section documents, and inline chips / SVG icons / colour emoji. **[What's new in v1.9 ↓](#whats-new-in-v19)**
> · 🟡 **In develop**: next cycle — open (see [CHANGELOG](./CHANGELOG.md))
> · See [API stability policy](./docs/api-stability.md) for tier definitions.
@@ -51,22 +51,19 @@
Sits between **iText** (low-level page primitives) and **JasperReports** (XML-template-driven layout): a Java DSL describes the document semantically, the engine renders.
-## What's new in v1.8
+## What's new in v1.9
-The **"illustrative"** release — the engine gains a vector-graphics dimension.
+The **"navigable"** release — a rendered PDF becomes a document you can move through.
-
-
-
-
-- **Native vector charts** — bar / line / pie, inline sparklines, and `MONOTONE` / `SMOOTH` line interpolation, drawn as native PDF Béziers (no rasterization): `section.chart(ChartSpec.line()…, style)`.
-- **SVG path & icon import** — `SvgIcon.parse(svg)` turns SVG into native vector geometry; recolour per use and place with `addSvgIcon(icon, width, align)`.
-- **Gradients & free-form clipping** — linear / radial `DocumentPaint` fills and arbitrary `ShapeOutline.Path` clip regions.
-- **Block-level alignment** — `addAligned(HorizontalAlign.CENTER, node)` centres or right-aligns any fixed node without a wrapper container.
-- **`keepTogether()` pagination** — keep a section from splitting across a page break.
-- **Leaner publication** — the bundled Google fonts moved to the independently-versioned `graph-compose-fonts` artifact, so the engine jar dropped from ~20 MB to ~2 MB. Pure-text / standard-14 documents need nothing extra; add `graph-compose-fonts` (or `graph-compose-bundle`) to keep the bundled families — see the [migration note](./docs/migration/v1.8.0-fonts.md).
+- **In-document navigation** — named `anchor(...)` targets and internal `link(...)` jumps emitted as native PDF `GoTo` actions: clickable cross-references, `[text](#heading)`-style links, and bidirectional footnotes (`DocumentLinkTarget` unifies internal and external links).
+- **Native table of contents & page references** — `addTableOfContents(toc -> toc.entry(label, anchor))` builds a clickable TOC with dot leaders and auto-resolved page numbers; `addPageReference(anchor)` prints a native "see page N" cross-reference; `DocumentSession.pageIndex()` resolves any anchor to its page.
+- **Bookmarks & viewer preferences** — `section.bookmark(...)` makes any section or container a PDF outline (bookmark-panel) target, and `chrome().viewerPreferences(...)` opens the reader on the outline panel, a chosen page layout, or the doc title in the window.
+- **Multi-section documents** — `GraphCompose.documents()` concatenates independently authored sections — each with its own page size, margins, and footer numbering — into one PDF, with anchors, links, and the outline resolving across section boundaries.
+- **Richer row & page layout** — `row.columns(auto(), weight(1), fixed(80))`, main-axis `flexSpacer()` / `arrangement(...)`, cross-axis `verticalAlign(...)`, per-page `pageMargins(...)`, and full-bleed `bleed(...)`.
+- **Inline chips, SVG icons & colour emoji** — text on a rounded highlight chip, a parsed `SvgIcon` on the text baseline, and `RichText.emoji(":star:", size)` colour emoji via the new independently-versioned `graph-compose-emoji` module.
+- **Render straight to images** — `DocumentSession` renders directly to `BufferedImage`s with no PDF round-trip; plus page-number offset / restart / style and round / dotted line caps.
-Core document APIs stay source- and binary-compatible with v1.7 (`ConfigLoader` is the one removal). Full notes in [`CHANGELOG.md`](./CHANGELOG.md).
+Core document APIs stay source- and binary-compatible with v1.8 — v1.9 is purely additive (two cover-letter / CV shim types are newly `@Deprecated` for 2.0). Full notes in [`CHANGELOG.md`](./CHANGELOG.md).
## Installation
diff --git a/docs/README.md b/docs/README.md
index 44c722e6c..33d23e7d4 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -54,6 +54,8 @@ back here.
### Roadmaps & migrations
- **[roadmaps/v1.6-roadmap.md](roadmaps/v1.6-roadmap.md)** — current development roadmap.
+- **[roadmaps/migration-v1-8-to-v1-9.md](roadmaps/migration-v1-8-to-v1-9.md)** — upgrade guide for v1.8 → v1.9.
+- **[roadmaps/migration-v1-7-to-v1-8.md](roadmaps/migration-v1-7-to-v1-8.md)** — upgrade guide for v1.7 → v1.8.
- **[roadmaps/migration-v1-6-to-v1-7.md](roadmaps/migration-v1-6-to-v1-7.md)** — upgrade guide for v1.6 → v1.7.
- **[roadmaps/migration-v1-5-to-v1-6.md](roadmaps/migration-v1-5-to-v1-6.md)** — upgrade guide for v1.5 → v1.6.
- **[roadmaps/migration-v1-4-to-v1-5.md](roadmaps/migration-v1-4-to-v1-5.md)** — upgrade guide for v1.4 → v1.5.
diff --git a/docs/roadmaps/migration-v1-8-to-v1-9.md b/docs/roadmaps/migration-v1-8-to-v1-9.md
new file mode 100644
index 000000000..d12a8a3d1
--- /dev/null
+++ b/docs/roadmaps/migration-v1-8-to-v1-9.md
@@ -0,0 +1,84 @@
+# Migration: v1.8 → v1.9
+
+v1.9 — codenamed **"navigable"** — is **additive only**. Every public
+type, method, and behaviour from v1.8 is unchanged: bump the dependency
+to `1.9.0` and rebuild with **no source changes required**. Adding public
+API is what turns the open cycle into a minor release.
+
+The theme of the release is **in-document navigation** — a rendered PDF
+stops being a flat sequence of pages and becomes a document you can move
+through: named anchors, internal links, a native clickable table of
+contents, "see page N" cross-references, and a bookmark outline, all
+emitted as native PDF `GoTo` actions and resolved in a single authoring
+pass.
+
+If your application targets v1.8 today, there is nothing to do but
+upgrade. The rest of this guide is a tour of what you can now reach for.
+
+## TL;DR
+
+Everything below is `@since 1.9.0` and purely additive — no v1.8 API is
+replaced or removed.
+
+| Area | v1.9 addition | Reach for it when |
+| --- | --- | --- |
+| **In-PDF navigation** | `anchor(...)` targets + internal `link(...)`; sealed `DocumentLinkTarget` (`InternalLinkTarget` / `ExternalLinkTarget`) | clickable cross-references and `[text](#heading)`-style jumps emitted as native PDF `GoTo` actions |
+| **Table of contents** | `addTableOfContents(toc -> toc.entry(label, anchor))` + `TocBuilder` / `DocumentLeader` | a native clickable TOC with dot leaders and auto-resolved page numbers |
+| **Page references** | `addPageReference(anchor)` + `PageReferenceNode`; `DocumentSession.pageIndex()` → `PageIndex` / `PageReference` | a "see page N" cross-reference, or resolving any anchor to its page from code |
+| **Bookmarks & viewer prefs** | container `bookmark(DocumentBookmarkOptions)`; `chrome().viewerPreferences(...)` + `DocumentViewerPreferences` / `DocumentPageMode` / `DocumentPageLayout` | a PDF outline (bookmark panel), and controlling how a reader opens the document |
+| **Multi-section documents** | `GraphCompose.documents()` + `MultiSectionDocumentBuilder` / `MultiSectionDocument` | concatenating independently authored sections (own page size / margins / numbering) into one PDF, with links resolving across sections |
+| **Per-page margins & bleed** | `pageMargins(List)`; `bleed(...)` + `DocumentBleed` / `DocumentEdge` | mixing a full-bleed cover with book-margin body pages, or running content to the trimmed page edge |
+| **Row layout** | `row.columns(auto() / weight() / fixed())` + `DocumentRowColumn`; `flexSpacer()` / `pushRight()` / `arrangement(...)` + `RowArrangement`; `verticalAlign(...)` + `RowVerticalAlign` | column tracks, main-axis justify (push a badge flush right), and cross-axis seating within a row |
+| **Inline chips / SVG / emoji** | inline highlight chips, inline `SvgIcon` runs, `RichText.emoji(":star:", size)` via the new `graph-compose-emoji` module | a code/badge chip, an icon on the text baseline, or colour emoji by shortcode |
+| **Page numbering** | `DocumentPageNumbering` / `DocumentPageNumberStyle` | page-number offset / restart / numeral style in headers and footers |
+| **Lines** | `LineBuilder.fill()`; `LineBuilder.lineCap(DocumentLineCap)` | a line that stretches to its slot (dot leaders), and round / square caps or dotted strokes |
+| **Render to images** | render a `DocumentSession` straight to `BufferedImage` | a raster preview / thumbnail with no PDF round-trip |
+
+Runnable code for each lives in the
+[examples gallery](../../examples/README.md); the exact public-API list
+is in [`CHANGELOG.md`](../../CHANGELOG.md) under **v1.9.0**.
+
+## One behaviour to know about
+
+- **A negative page margin is now rejected; a negative bottom *content*
+ margin is honoured.** A negative `margin(...)` on the page fails fast at
+ construction instead of silently mis-laying-out the page, while an
+ intentional negative bottom margin on a block now pulls the following
+ content up as written. This only affects code that passed a negative
+ *page* margin — pass a non-negative one.
+
+## Things that did NOT break
+
+- Every entry point on `GraphCompose`, the full `DocumentSession`
+ authoring lifecycle (`compose`, `pageFlow`, add, `buildPdf`, export,
+ close, `layoutGraph`, `layoutSnapshot`).
+- `DocumentDsl`, `BusinessTheme`, `DocumentPalette`, and the invoice /
+ proposal / CV / cover-letter / weekly-schedule template entry points
+ (V1 and V2).
+- The fixed-layout and semantic backend SPIs and every public render
+ handler.
+- Layout snapshots and visual-regression baselines — navigation markers
+ are non-visual, so a document that adds no anchors, links, or bookmarks
+ renders byte-for-byte as before.
+
+> **Deprecations (informational, not breaking).**
+> `templates.api.CoverLetterTemplate` and the `cv.v2.components`
+> `HeadlineRenderer` / `ContactRenderer` / `BannerRenderer` shims are now
+> `@Deprecated(forRemoval = true, since = "1.9.0")` — superseded by the
+> generic `DocumentTemplate` seam and the `cv.v2.widgets` widgets
+> respectively. They still compile and behave exactly as before in 1.x;
+> they are slated for removal in 2.0. See
+> [`docs/api-stability.md`](../api-stability.md) §3 for the ledger.
+
+## Upgrading
+
+```xml
+
+ io.github.demchaav
+ graph-compose
+ 1.9.0
+
+```
+
+That is the entire migration. Pull in any of the primitives above as you
+need them.
From 312259bd5cb94149d2295d2f30ea441ffe137004 Mon Sep 17 00:00:00 2001
From: Artem Demchyshyn <132658418+DemchaAV@users.noreply.github.com>
Date: Sun, 28 Jun 2026 21:19:31 +0100
Subject: [PATCH 03/12] docs(examples): gallery entries for inline chips, SVG,
emoji, in-PDF navigation (#256)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Four v1.9.0 features visible in a rendered document had no gallery presence.
Add a row + detailed showcase section + a committed preview render for each,
with the API names read off the runnable *Example classes:
- Inline highlight chips (RichText.code / chip / highlight) — Core DSL.
- Inline SVG icons (RichText.svgIcon) — Core DSL.
- Colour emoji by shortcode (RichText.emoji) — Core DSL.
- In-PDF navigation (anchor / linkTo / inlineLinkTo / shapeLinkTo) — Advanced SPI.
The emoji preview uses the 44 KB shortcode showcase; the full emoji-gallery
render is 3.9 MB, too large for a committed README asset.
---
assets/readme/examples/emoji-shortcodes.pdf | Bin 0 -> 44610 bytes
assets/readme/examples/in-pdf-navigation.pdf | Bin 0 -> 2482 bytes
.../examples/inline-highlight-chips.pdf | Bin 0 -> 3804 bytes
assets/readme/examples/inline-svg-icons.pdf | Bin 0 -> 3938 bytes
examples/README.md | 79 ++++++++++++++++++
5 files changed, 79 insertions(+)
create mode 100644 assets/readme/examples/emoji-shortcodes.pdf
create mode 100644 assets/readme/examples/in-pdf-navigation.pdf
create mode 100644 assets/readme/examples/inline-highlight-chips.pdf
create mode 100644 assets/readme/examples/inline-svg-icons.pdf
diff --git a/assets/readme/examples/emoji-shortcodes.pdf b/assets/readme/examples/emoji-shortcodes.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..32910dedb57b140c65b35ffec7c9b89ddf42666f
GIT binary patch
literal 44610
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
O*tp;+DJ2vo;r|zc=4YV*
literal 0
HcmV?d00001
diff --git a/assets/readme/examples/in-pdf-navigation.pdf b/assets/readme/examples/in-pdf-navigation.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..5a9363dd228085bf45207354a39e22927dc7aff1
GIT binary patch
literal 2482
zcmbuBdo&Y%AIE>?+I}v{NJ`DzTiK1xB2U>Sl4^^gnfqL4G>a`t&HWO&g(7Jv6A^M3
zD^X-_Db4Lk;zy*(CG_j3=XpBkdCt>0&mYf!-}5=|_vgIN_ni0Ze6&vE%n!o#Q2?#w
z_ZwpXI0yy`aPtM2m;j(Q>_93AigjhW(gM5yP!g39JLYZ$d4^|O~CZ(K*a-eK8GuU{J56g6y^
z`Y-arqOQw77gD_@I>^O|A}9X4zu#(-QgOXT0xpxRsw{P@vyl6B_~86R_m`!&c*LSm
zyiYkOy1Y1c<*Wk&kU`2K_KGE$#b?->ab2)_{g9+?al%yK8|AohdsW^LPWriQ?TC3)
zzsEbu=SH=SefehTgy4rBYWsC1`i5P!3Q1TAy}T08@;Xbhl_FQ~G%Bzc`W%9$`i&Xj6fO-tmbkci~Uk@GGVHT6~3
z7QcMykaQbhFwlasi2&-OvKh%+kwyE1ODiGhhRPh(rqheF68Z
zXG34#0RkH;?@{iSkI*RqBmCR?x7;efm}oFpkicAMUU5`B0Q91qR1UFiIyI|gv?Z95
zT_(L8L38dCV{LEp_8tr{`|l=`n-QL~$u4@nmRS^HA0KZbGm=undk|8z@@KkNnsk
z*|@R-72K#>pOCwg$lqw2an>OR&i+xjpi+~i;BzpQ2(CKiep5y&(VAeU0(DbkU+)PDl;|SKCm4z8I
z*}KO)t=Iz<55a#caPF#U