From da074340369fb21027df97c66c8686ba99ef61e7 Mon Sep 17 00:00:00 2001 From: transitrix Date: Sat, 22 Aug 2026 09:53:42 +0400 Subject: [PATCH 1/4] site: fix the reference-sheet library's shape and no-gate contract Adds the convention note, a machine check for the shape and gate rules, and an empty-but-valid checksum manifest so the guard is in place before any sheet lands. --- .github/workflows/reference-sheets.yml | 39 +++ reference-sheets/README.md | 20 ++ reference-sheets/SHA256SUMS | 0 scripts/check_reference_sheets.py | 402 +++++++++++++++++++++++++ 4 files changed, 461 insertions(+) create mode 100644 .github/workflows/reference-sheets.yml create mode 100644 reference-sheets/README.md create mode 100644 reference-sheets/SHA256SUMS create mode 100644 scripts/check_reference_sheets.py diff --git a/.github/workflows/reference-sheets.yml b/.github/workflows/reference-sheets.yml new file mode 100644 index 0000000..f82daee --- /dev/null +++ b/.github/workflows/reference-sheets.yml @@ -0,0 +1,39 @@ +name: Reference sheets + +# The reference-sheet library's shape and no-gate contract - see +# reference-sheets/README.md - is machine-enforced so a sheet that violates +# it fails the build rather than reaching a reader. Passes vacuously with +# zero sheets present. + +on: + push: + branches: [main] + paths: + - 'reference-sheets/**' + - 'scripts/check_reference_sheets.py' + - '.github/workflows/reference-sheets.yml' + pull_request: + branches: [main] + paths: + - 'reference-sheets/**' + - 'scripts/check_reference_sheets.py' + - '.github/workflows/reference-sheets.yml' + +permissions: + contents: read + +jobs: + check-reference-sheets: + runs-on: ubuntu-latest + name: reference-sheets/ shape and no-gate contract hold + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Check reference-sheets/ contract + run: python3 scripts/check_reference_sheets.py diff --git a/reference-sheets/README.md b/reference-sheets/README.md new file mode 100644 index 0000000..7c5f131 --- /dev/null +++ b/reference-sheets/README.md @@ -0,0 +1,20 @@ +# Reference sheets — contract + +This directory holds the transitrix.com reference-sheet library. The shape below is +enforced by `scripts/check_reference_sheets.py` in CI +(`.github/workflows/reference-sheets.yml`) — a sheet that violates it fails the check +rather than reaching a reader. + +- **One directory per sheet:** `reference-sheets//`, served at + `https://transitrix.com/reference-sheets//`. +- **The PDF lives at `reference-sheets//.pdf`.** The filename is the slug, + so a revision replaces the file in place and never mints a second URL. +- **The page carries the sheet's content as HTML.** The PDF is the take-away download, + never the only copy of the content. +- **The page `` leads with the sheet's own printed name** — the same name printed + on the sheet itself — with no suffix beyond the site's existing ` | Transitrix`. +- **No gate of any kind.** No form, no email field, no sign-up, no interstitial, no + tracking wall, on the index or on any sheet page. +- **`SHA256SUMS`** lists every committed PDF's checksum, one `<sha256> <slug>/<slug>.pdf` + line per sheet (`sha256sum` output format). It is updated in the same commit as the + PDF it describes. diff --git a/reference-sheets/SHA256SUMS b/reference-sheets/SHA256SUMS new file mode 100644 index 0000000..e69de29 diff --git a/scripts/check_reference_sheets.py b/scripts/check_reference_sheets.py new file mode 100644 index 0000000..27bcee6 --- /dev/null +++ b/scripts/check_reference_sheets.py @@ -0,0 +1,402 @@ +#!/usr/bin/env python3 +"""Guard the reference-sheet library's shape and no-gate contract. + +Checked against reference-sheets/ (see reference-sheets/README.md for the contract +in prose): every sheet directory carries index.html and <slug>.pdf and nothing else +named .pdf, no sheet page contains a form/input/submit-button/signup-script gate, +and reference-sheets/SHA256SUMS matches the committed PDFs byte-for-byte. + +Usage: python3 scripts/check_reference_sheets.py +Runs a self-test against throwaway fixtures in a temp directory before checking the +real tree - see .github/workflows/indexing-declarations.yml for the same shape. +""" +import hashlib +import os +import re +import shutil +import sys +import tempfile + +REFERENCE_SHEETS_DIR = "reference-sheets" +CHECKSUMS_FILE = "SHA256SUMS" +NON_SHEET_ENTRIES = {"README.md", CHECKSUMS_FILE} + +GATE_PATTERNS = [ + (re.compile(r"<form\b", re.IGNORECASE), "a <form> element"), + (re.compile(r"<input\b", re.IGNORECASE), "an <input> element"), + (re.compile(r'<button[^>]*type\s*=\s*["\']?submit', re.IGNORECASE), 'a <button type="submit">'), + ( + re.compile( + r"(mailchimp|convertkit|hubspot|getresponse|klaviyo|substack|beehiiv|typeform)", + re.IGNORECASE, + ), + "a mail-capture/signup script", + ), + ( + re.compile(r"(interstitial|signup-modal|email-gate|paywall)", re.IGNORECASE), + "an interstitial/gate marker", + ), +] + + +def find_slug_dirs(sheets_root): + if not os.path.isdir(sheets_root): + return [] + slugs = [] + for name in sorted(os.listdir(sheets_root)): + if name in NON_SHEET_ENTRIES or name.startswith("."): + continue + if os.path.isdir(os.path.join(sheets_root, name)): + slugs.append(name) + return slugs + + +def check_shape(sheets_root, slug): + errors = [] + slug_dir = os.path.join(sheets_root, slug) + index_path = os.path.join(slug_dir, "index.html") + if not os.path.isfile(index_path): + errors.append(f"{slug_dir}: missing index.html") + + expected_pdf = f"{slug}.pdf" + pdfs = [f for f in os.listdir(slug_dir) if f.lower().endswith(".pdf")] + if expected_pdf not in pdfs: + errors.append(f"{slug_dir}: missing {expected_pdf}") + for f in pdfs: + if f != expected_pdf: + errors.append(f"{slug_dir}: PDF named {f!r}, expected only {expected_pdf!r}") + return errors + + +def check_gate(sheets_root, slug): + errors = [] + index_path = os.path.join(sheets_root, slug, "index.html") + if not os.path.isfile(index_path): + return errors + with open(index_path, encoding="utf-8") as f: + html = f.read() + for pattern, label in GATE_PATTERNS: + if pattern.search(html): + errors.append(f"{index_path}: contains {label} - no gate is allowed on a reference-sheet page") + return errors + + +def parse_checksums(checksums_path): + """Returns {relative_path: lowercase_hex_sha256}, or None if the file is missing.""" + if not os.path.isfile(checksums_path): + return None + entries = {} + with open(checksums_path, encoding="utf-8") as f: + for lineno, line in enumerate(f, start=1): + line = line.rstrip("\n") + if not line.strip(): + continue + m = re.match(r"^([0-9a-fA-F]{64})\s+(.+)$", line) + if not m: + raise ValueError(f"{checksums_path}:{lineno}: unparseable line {line!r}") + entries[m.group(2).strip()] = m.group(1).lower() + return entries + + +def sha256_of(path): + h = hashlib.sha256() + with open(path, "rb") as f: + for chunk in iter(lambda: f.read(1 << 16), b""): + h.update(chunk) + return h.hexdigest() + + +def check_checksums(sheets_root, slugs): + checksums_path = os.path.join(sheets_root, CHECKSUMS_FILE) + try: + entries = parse_checksums(checksums_path) + except ValueError as e: + return [str(e)] + if entries is None: + return [f"{checksums_path}: missing"] + + errors = [] + pdf_by_rel = {} + for slug in slugs: + rel = f"{slug}/{slug}.pdf" + abs_path = os.path.join(sheets_root, slug, f"{slug}.pdf") + if os.path.isfile(abs_path): + pdf_by_rel[rel] = abs_path + + for rel, abs_path in pdf_by_rel.items(): + if rel not in entries: + errors.append(f"{checksums_path}: no entry for {rel}") + continue + actual = sha256_of(abs_path) + if actual != entries[rel]: + errors.append( + f"{checksums_path}: checksum for {rel} does not match the committed PDF " + f"(expected {entries[rel]}, got {actual})" + ) + + for rel in entries: + if rel not in pdf_by_rel: + errors.append(f"{checksums_path}: entry for {rel} but no such PDF exists") + + return errors + + +def run_checks(root): + sheets_root = os.path.join(root, REFERENCE_SHEETS_DIR) + slugs = find_slug_dirs(sheets_root) + errors = [] + for slug in slugs: + errors.extend(check_shape(sheets_root, slug)) + errors.extend(check_gate(sheets_root, slug)) + errors.extend(check_checksums(sheets_root, slugs)) + return errors, slugs + + +def _write(path, content=""): + os.makedirs(os.path.dirname(path), exist_ok=True) + with open(path, "w", encoding="utf-8") as f: + f.write(content) + + +def _sha256sums_line(root_for_hash, slug): + pdf_path = os.path.join(root_for_hash, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf") + return f"{sha256_of(pdf_path)} {slug}/{slug}.pdf\n" + + +def _fresh_sheet(tmp, slug="widgets", pdf_bytes=b"%PDF-1.4 fixture\n"): + """A minimal, contract-clean sheet: index.html, <slug>.pdf, and a matching + SHA256SUMS entry. Callers mutate one thing at a time to demonstrate a failure.""" + _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), "<html><body>content</body></html>") + _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf")) + with open(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf"), "wb") as f: + f.write(pdf_bytes) + _write( + os.path.join(tmp, REFERENCE_SHEETS_DIR, CHECKSUMS_FILE), + _sha256sums_line(tmp, slug), + ) + return slug + + +def _expect(condition, ok_msg, fail_msg, failures): + if condition: + print(f"ok: {ok_msg}") + else: + print(f"::error::self-test regression - {fail_msg}") + failures.append(fail_msg) + + +def _selftest(): + print("== Self-test: the checker itself must catch what it's meant to catch ==") + failures = [] + + # A clean sheet passes outright. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + errors, slugs = run_checks(tmp) + _expect(errors == [], "a contract-clean sheet passes with zero errors", "a clean sheet was flagged", failures) + finally: + shutil.rmtree(tmp) + + # Zero sheets present passes vacuously, provided SHA256SUMS exists (empty). + tmp = tempfile.mkdtemp() + try: + _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, CHECKSUMS_FILE), "") + errors, slugs = run_checks(tmp) + _expect(errors == [] and slugs == [], "zero sheets present passes vacuously", "an empty library was flagged", failures) + finally: + shutil.rmtree(tmp) + + # Missing index.html. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + os.remove(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html")) + errors, _ = run_checks(tmp) + _expect( + any("missing index.html" in e for e in errors), + "a sheet directory missing index.html is caught", + "a missing index.html was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # Missing PDF. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + os.remove(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf")) + errors, _ = run_checks(tmp) + _expect( + any(f"missing {slug}.pdf" in e for e in errors), + "a sheet directory missing <slug>.pdf is caught", + "a missing PDF was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # PDF named wrong (not <slug>.pdf). + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + os.rename( + os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf"), + os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "final-v2.pdf"), + ) + errors, _ = run_checks(tmp) + _expect( + any("PDF named 'final-v2.pdf'" in e for e in errors), + "a PDF whose name is not <slug>.pdf is caught", + "a misnamed PDF was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # Gate: <form>. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), '<html><body><form></form></body></html>') + errors, _ = run_checks(tmp) + _expect( + any("<form>" in e for e in errors), + "a page with a <form> gate is caught", + "a <form> gate was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # Gate: <input>. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), '<html><body><input type="email"></body></html>') + errors, _ = run_checks(tmp) + _expect( + any("<input>" in e for e in errors), + "a page with a bare <input> gate is caught", + "an <input> gate was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # Gate: <button type="submit">. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + _write( + os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), + '<html><body><button type="submit">Get it</button></body></html>', + ) + errors, _ = run_checks(tmp) + _expect( + any('type="submit"' in e for e in errors), + 'a page with a <button type="submit"> gate is caught', + "a submit-button gate was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # Gate: mail-capture/signup script. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + _write( + os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), + '<html><head><script src="https://embed.mailchimp.com/embed.js"></script></head><body>content</body></html>', + ) + errors, _ = run_checks(tmp) + _expect( + any("mail-capture/signup script" in e for e in errors), + "a page embedding a signup-form script is caught", + "a signup-script gate was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # Gate: interstitial marker. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + _write( + os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), + '<html><body><div class="signup-modal">Before you download...</div></body></html>', + ) + errors, _ = run_checks(tmp) + _expect( + any("interstitial/gate marker" in e for e in errors), + "a page carrying an interstitial/gate marker is caught", + "an interstitial marker was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # SHA256SUMS mismatch. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + with open(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf"), "ab") as f: + f.write(b"tampered after the checksum was recorded") + errors, _ = run_checks(tmp) + _expect( + any("does not match the committed PDF" in e for e in errors), + "a PDF that no longer matches SHA256SUMS is caught", + "a checksum mismatch was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # SHA256SUMS stale entry (PDF removed, entry left behind). + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + second = os.path.join(tmp, REFERENCE_SHEETS_DIR, CHECKSUMS_FILE) + with open(second, "a", encoding="utf-8") as f: + f.write("0" * 64 + " ghost/ghost.pdf\n") + errors, _ = run_checks(tmp) + _expect( + any("entry for ghost/ghost.pdf but no such PDF exists" in e for e in errors), + "a SHA256SUMS entry with no matching PDF is caught", + "a stale checksum entry was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + if failures: + print(f"::error::check_reference_sheets self-test failed - {len(failures)} check(s) did not behave as expected, not trusting its verdict on the real tree") + return 1 + print("self-test: all failure modes are caught, and a clean tree passes.") + return 0 + + +def main(): + root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + selftest_status = _selftest() + if selftest_status != 0: + return selftest_status + + print("== Checking reference-sheets/ against the committed tree ==") + errors, slugs = run_checks(root) + for e in errors: + print(f"::error::{e}") + if errors: + print(f"check_reference_sheets: {len(errors)} problem(s), see above") + return 1 + note = " (zero sheets present)" if not slugs else f" ({len(slugs)} sheet(s))" + print(f"check_reference_sheets: reference-sheets/ contract holds{note}") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) From 6b2085874c47f2b83ed79f65739c67ec709b2284 Mon Sep 17 00:00:00 2001 From: transitrix <automation@transitrix.com> Date: Sat, 22 Aug 2026 10:54:58 +0400 Subject: [PATCH 2/4] site: rename the reference-sheet library route to /library/ The section will carry more than one kind of material, and a route named after one kind would have to move the first time a second kind arrives. Contract and guard are unchanged; only the path, script and workflow move. --- .github/workflows/library.yml | 38 +++++ .github/workflows/reference-sheets.yml | 39 ----- library/README.md | 22 +++ {reference-sheets => library}/SHA256SUMS | 0 reference-sheets/README.md | 20 --- ...k_reference_sheets.py => check_library.py} | 134 +++++++++--------- 6 files changed, 127 insertions(+), 126 deletions(-) create mode 100644 .github/workflows/library.yml delete mode 100644 .github/workflows/reference-sheets.yml create mode 100644 library/README.md rename {reference-sheets => library}/SHA256SUMS (100%) delete mode 100644 reference-sheets/README.md rename scripts/{check_reference_sheets.py => check_library.py} (68%) diff --git a/.github/workflows/library.yml b/.github/workflows/library.yml new file mode 100644 index 0000000..690a59e --- /dev/null +++ b/.github/workflows/library.yml @@ -0,0 +1,38 @@ +name: Library + +# The library's shape and no-gate contract - see library/README.md - is +# machine-enforced so an item that violates it fails the build rather than +# reaching a reader. Passes vacuously with zero items present. + +on: + push: + branches: [main] + paths: + - 'library/**' + - 'scripts/check_library.py' + - '.github/workflows/library.yml' + pull_request: + branches: [main] + paths: + - 'library/**' + - 'scripts/check_library.py' + - '.github/workflows/library.yml' + +permissions: + contents: read + +jobs: + check-library: + runs-on: ubuntu-latest + name: library/ shape and no-gate contract hold + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Check library/ contract + run: python3 scripts/check_library.py diff --git a/.github/workflows/reference-sheets.yml b/.github/workflows/reference-sheets.yml deleted file mode 100644 index f82daee..0000000 --- a/.github/workflows/reference-sheets.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Reference sheets - -# The reference-sheet library's shape and no-gate contract - see -# reference-sheets/README.md - is machine-enforced so a sheet that violates -# it fails the build rather than reaching a reader. Passes vacuously with -# zero sheets present. - -on: - push: - branches: [main] - paths: - - 'reference-sheets/**' - - 'scripts/check_reference_sheets.py' - - '.github/workflows/reference-sheets.yml' - pull_request: - branches: [main] - paths: - - 'reference-sheets/**' - - 'scripts/check_reference_sheets.py' - - '.github/workflows/reference-sheets.yml' - -permissions: - contents: read - -jobs: - check-reference-sheets: - runs-on: ubuntu-latest - name: reference-sheets/ shape and no-gate contract hold - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.12' - - - name: Check reference-sheets/ contract - run: python3 scripts/check_reference_sheets.py diff --git a/library/README.md b/library/README.md new file mode 100644 index 0000000..bdc870f --- /dev/null +++ b/library/README.md @@ -0,0 +1,22 @@ +# Library — contract + +This directory holds the transitrix.com library of free reference material. The shape +below is enforced by `scripts/check_library.py` in CI (`.github/workflows/library.yml`) +— an item that violates it fails the check rather than reaching a reader. + +- **One directory per item:** `library/<slug>/`, served at + `https://transitrix.com/library/<slug>/`. +- **The PDF lives at `library/<slug>/<slug>.pdf`.** The filename is the slug, so a + revision replaces the file in place and never mints a second URL. +- **The page carries the item's content as HTML.** The PDF is the take-away download, + never the only copy of the content. +- **The page `<title>` leads with the item's own printed name** — the same name printed + on the item itself — with no suffix beyond the site's existing ` | Transitrix`. +- **Kinds of material are not path segments.** A cheat sheet, a template and a worked + example all sit directly under `library/<slug>/`; grouping belongs on the index page, + where it can be revised, never in an address that has been printed and handed out. +- **No gate of any kind.** No form, no email field, no sign-up, no interstitial, no + tracking wall, on the index or on any item page. +- **`SHA256SUMS`** lists every committed PDF's checksum, one `<sha256> <slug>/<slug>.pdf` + line per item (`sha256sum` output format). It is updated in the same commit as the + PDF it describes. diff --git a/reference-sheets/SHA256SUMS b/library/SHA256SUMS similarity index 100% rename from reference-sheets/SHA256SUMS rename to library/SHA256SUMS diff --git a/reference-sheets/README.md b/reference-sheets/README.md deleted file mode 100644 index 7c5f131..0000000 --- a/reference-sheets/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Reference sheets — contract - -This directory holds the transitrix.com reference-sheet library. The shape below is -enforced by `scripts/check_reference_sheets.py` in CI -(`.github/workflows/reference-sheets.yml`) — a sheet that violates it fails the check -rather than reaching a reader. - -- **One directory per sheet:** `reference-sheets/<slug>/`, served at - `https://transitrix.com/reference-sheets/<slug>/`. -- **The PDF lives at `reference-sheets/<slug>/<slug>.pdf`.** The filename is the slug, - so a revision replaces the file in place and never mints a second URL. -- **The page carries the sheet's content as HTML.** The PDF is the take-away download, - never the only copy of the content. -- **The page `<title>` leads with the sheet's own printed name** — the same name printed - on the sheet itself — with no suffix beyond the site's existing ` | Transitrix`. -- **No gate of any kind.** No form, no email field, no sign-up, no interstitial, no - tracking wall, on the index or on any sheet page. -- **`SHA256SUMS`** lists every committed PDF's checksum, one `<sha256> <slug>/<slug>.pdf` - line per sheet (`sha256sum` output format). It is updated in the same commit as the - PDF it describes. diff --git a/scripts/check_reference_sheets.py b/scripts/check_library.py similarity index 68% rename from scripts/check_reference_sheets.py rename to scripts/check_library.py index 27bcee6..aba492e 100644 --- a/scripts/check_reference_sheets.py +++ b/scripts/check_library.py @@ -1,12 +1,12 @@ #!/usr/bin/env python3 -"""Guard the reference-sheet library's shape and no-gate contract. +"""Guard the library's shape and no-gate contract. -Checked against reference-sheets/ (see reference-sheets/README.md for the contract -in prose): every sheet directory carries index.html and <slug>.pdf and nothing else -named .pdf, no sheet page contains a form/input/submit-button/signup-script gate, -and reference-sheets/SHA256SUMS matches the committed PDFs byte-for-byte. +Checked against library/ (see library/README.md for the contract in prose): every +item directory carries index.html and <slug>.pdf and nothing else named .pdf, no item +page contains a form/input/submit-button/signup-script gate, and library/SHA256SUMS +matches the committed PDFs byte-for-byte. -Usage: python3 scripts/check_reference_sheets.py +Usage: python3 scripts/check_library.py Runs a self-test against throwaway fixtures in a temp directory before checking the real tree - see .github/workflows/indexing-declarations.yml for the same shape. """ @@ -17,9 +17,9 @@ import sys import tempfile -REFERENCE_SHEETS_DIR = "reference-sheets" +LIBRARY_DIR = "library" CHECKSUMS_FILE = "SHA256SUMS" -NON_SHEET_ENTRIES = {"README.md", CHECKSUMS_FILE} +NON_ITEM_ENTRIES = {"README.md", CHECKSUMS_FILE} GATE_PATTERNS = [ (re.compile(r"<form\b", re.IGNORECASE), "a <form> element"), @@ -39,21 +39,21 @@ ] -def find_slug_dirs(sheets_root): - if not os.path.isdir(sheets_root): +def find_slug_dirs(library_root): + if not os.path.isdir(library_root): return [] slugs = [] - for name in sorted(os.listdir(sheets_root)): - if name in NON_SHEET_ENTRIES or name.startswith("."): + for name in sorted(os.listdir(library_root)): + if name in NON_ITEM_ENTRIES or name.startswith("."): continue - if os.path.isdir(os.path.join(sheets_root, name)): + if os.path.isdir(os.path.join(library_root, name)): slugs.append(name) return slugs -def check_shape(sheets_root, slug): +def check_shape(library_root, slug): errors = [] - slug_dir = os.path.join(sheets_root, slug) + slug_dir = os.path.join(library_root, slug) index_path = os.path.join(slug_dir, "index.html") if not os.path.isfile(index_path): errors.append(f"{slug_dir}: missing index.html") @@ -68,16 +68,16 @@ def check_shape(sheets_root, slug): return errors -def check_gate(sheets_root, slug): +def check_gate(library_root, slug): errors = [] - index_path = os.path.join(sheets_root, slug, "index.html") + index_path = os.path.join(library_root, slug, "index.html") if not os.path.isfile(index_path): return errors with open(index_path, encoding="utf-8") as f: html = f.read() for pattern, label in GATE_PATTERNS: if pattern.search(html): - errors.append(f"{index_path}: contains {label} - no gate is allowed on a reference-sheet page") + errors.append(f"{index_path}: contains {label} - no gate is allowed on a library page") return errors @@ -106,8 +106,8 @@ def sha256_of(path): return h.hexdigest() -def check_checksums(sheets_root, slugs): - checksums_path = os.path.join(sheets_root, CHECKSUMS_FILE) +def check_checksums(library_root, slugs): + checksums_path = os.path.join(library_root, CHECKSUMS_FILE) try: entries = parse_checksums(checksums_path) except ValueError as e: @@ -119,7 +119,7 @@ def check_checksums(sheets_root, slugs): pdf_by_rel = {} for slug in slugs: rel = f"{slug}/{slug}.pdf" - abs_path = os.path.join(sheets_root, slug, f"{slug}.pdf") + abs_path = os.path.join(library_root, slug, f"{slug}.pdf") if os.path.isfile(abs_path): pdf_by_rel[rel] = abs_path @@ -142,13 +142,13 @@ def check_checksums(sheets_root, slugs): def run_checks(root): - sheets_root = os.path.join(root, REFERENCE_SHEETS_DIR) - slugs = find_slug_dirs(sheets_root) + library_root = os.path.join(root, LIBRARY_DIR) + slugs = find_slug_dirs(library_root) errors = [] for slug in slugs: - errors.extend(check_shape(sheets_root, slug)) - errors.extend(check_gate(sheets_root, slug)) - errors.extend(check_checksums(sheets_root, slugs)) + errors.extend(check_shape(library_root, slug)) + errors.extend(check_gate(library_root, slug)) + errors.extend(check_checksums(library_root, slugs)) return errors, slugs @@ -159,19 +159,19 @@ def _write(path, content=""): def _sha256sums_line(root_for_hash, slug): - pdf_path = os.path.join(root_for_hash, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf") + pdf_path = os.path.join(root_for_hash, LIBRARY_DIR, slug, f"{slug}.pdf") return f"{sha256_of(pdf_path)} {slug}/{slug}.pdf\n" -def _fresh_sheet(tmp, slug="widgets", pdf_bytes=b"%PDF-1.4 fixture\n"): - """A minimal, contract-clean sheet: index.html, <slug>.pdf, and a matching +def _fresh_item(tmp, slug="widgets", pdf_bytes=b"%PDF-1.4 fixture\n"): + """A minimal, contract-clean item: index.html, <slug>.pdf, and a matching SHA256SUMS entry. Callers mutate one thing at a time to demonstrate a failure.""" - _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), "<html><body>content</body></html>") - _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf")) - with open(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf"), "wb") as f: + _write(os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), "<html><body>content</body></html>") + _write(os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf")) + with open(os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf"), "wb") as f: f.write(pdf_bytes) _write( - os.path.join(tmp, REFERENCE_SHEETS_DIR, CHECKSUMS_FILE), + os.path.join(tmp, LIBRARY_DIR, CHECKSUMS_FILE), _sha256sums_line(tmp, slug), ) return slug @@ -189,33 +189,33 @@ def _selftest(): print("== Self-test: the checker itself must catch what it's meant to catch ==") failures = [] - # A clean sheet passes outright. + # A clean item passes outright. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) + slug = _fresh_item(tmp) errors, slugs = run_checks(tmp) - _expect(errors == [], "a contract-clean sheet passes with zero errors", "a clean sheet was flagged", failures) + _expect(errors == [], "a contract-clean item passes with zero errors", "a clean item was flagged", failures) finally: shutil.rmtree(tmp) - # Zero sheets present passes vacuously, provided SHA256SUMS exists (empty). + # Zero items present passes vacuously, provided SHA256SUMS exists (empty). tmp = tempfile.mkdtemp() try: - _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, CHECKSUMS_FILE), "") + _write(os.path.join(tmp, LIBRARY_DIR, CHECKSUMS_FILE), "") errors, slugs = run_checks(tmp) - _expect(errors == [] and slugs == [], "zero sheets present passes vacuously", "an empty library was flagged", failures) + _expect(errors == [] and slugs == [], "zero items present passes vacuously", "an empty library was flagged", failures) finally: shutil.rmtree(tmp) # Missing index.html. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) - os.remove(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html")) + slug = _fresh_item(tmp) + os.remove(os.path.join(tmp, LIBRARY_DIR, slug, "index.html")) errors, _ = run_checks(tmp) _expect( any("missing index.html" in e for e in errors), - "a sheet directory missing index.html is caught", + "an item directory missing index.html is caught", "a missing index.html was not caught", failures, ) @@ -225,12 +225,12 @@ def _selftest(): # Missing PDF. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) - os.remove(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf")) + slug = _fresh_item(tmp) + os.remove(os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf")) errors, _ = run_checks(tmp) _expect( any(f"missing {slug}.pdf" in e for e in errors), - "a sheet directory missing <slug>.pdf is caught", + "an item directory missing <slug>.pdf is caught", "a missing PDF was not caught", failures, ) @@ -240,10 +240,10 @@ def _selftest(): # PDF named wrong (not <slug>.pdf). tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) + slug = _fresh_item(tmp) os.rename( - os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf"), - os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "final-v2.pdf"), + os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf"), + os.path.join(tmp, LIBRARY_DIR, slug, "final-v2.pdf"), ) errors, _ = run_checks(tmp) _expect( @@ -258,8 +258,8 @@ def _selftest(): # Gate: <form>. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) - _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), '<html><body><form></form></body></html>') + slug = _fresh_item(tmp) + _write(os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), '<html><body><form></form></body></html>') errors, _ = run_checks(tmp) _expect( any("<form>" in e for e in errors), @@ -273,8 +273,8 @@ def _selftest(): # Gate: <input>. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) - _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), '<html><body><input type="email"></body></html>') + slug = _fresh_item(tmp) + _write(os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), '<html><body><input type="email"></body></html>') errors, _ = run_checks(tmp) _expect( any("<input>" in e for e in errors), @@ -288,9 +288,9 @@ def _selftest(): # Gate: <button type="submit">. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) + slug = _fresh_item(tmp) _write( - os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), + os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), '<html><body><button type="submit">Get it</button></body></html>', ) errors, _ = run_checks(tmp) @@ -306,9 +306,9 @@ def _selftest(): # Gate: mail-capture/signup script. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) + slug = _fresh_item(tmp) _write( - os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), + os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), '<html><head><script src="https://embed.mailchimp.com/embed.js"></script></head><body>content</body></html>', ) errors, _ = run_checks(tmp) @@ -324,9 +324,9 @@ def _selftest(): # Gate: interstitial marker. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) + slug = _fresh_item(tmp) _write( - os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), + os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), '<html><body><div class="signup-modal">Before you download...</div></body></html>', ) errors, _ = run_checks(tmp) @@ -342,8 +342,8 @@ def _selftest(): # SHA256SUMS mismatch. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) - with open(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf"), "ab") as f: + slug = _fresh_item(tmp) + with open(os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf"), "ab") as f: f.write(b"tampered after the checksum was recorded") errors, _ = run_checks(tmp) _expect( @@ -358,8 +358,8 @@ def _selftest(): # SHA256SUMS stale entry (PDF removed, entry left behind). tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) - second = os.path.join(tmp, REFERENCE_SHEETS_DIR, CHECKSUMS_FILE) + slug = _fresh_item(tmp) + second = os.path.join(tmp, LIBRARY_DIR, CHECKSUMS_FILE) with open(second, "a", encoding="utf-8") as f: f.write("0" * 64 + " ghost/ghost.pdf\n") errors, _ = run_checks(tmp) @@ -373,7 +373,7 @@ def _selftest(): shutil.rmtree(tmp) if failures: - print(f"::error::check_reference_sheets self-test failed - {len(failures)} check(s) did not behave as expected, not trusting its verdict on the real tree") + print(f"::error::check_library self-test failed - {len(failures)} check(s) did not behave as expected, not trusting its verdict on the real tree") return 1 print("self-test: all failure modes are caught, and a clean tree passes.") return 0 @@ -386,15 +386,15 @@ def main(): if selftest_status != 0: return selftest_status - print("== Checking reference-sheets/ against the committed tree ==") + print("== Checking library/ against the committed tree ==") errors, slugs = run_checks(root) for e in errors: print(f"::error::{e}") if errors: - print(f"check_reference_sheets: {len(errors)} problem(s), see above") + print(f"check_library: {len(errors)} problem(s), see above") return 1 - note = " (zero sheets present)" if not slugs else f" ({len(slugs)} sheet(s))" - print(f"check_reference_sheets: reference-sheets/ contract holds{note}") + note = " (zero items present)" if not slugs else f" ({len(slugs)} item(s))" + print(f"check_library: library/ contract holds{note}") return 0 From dac2ad497b48d8933063609b4af0f9537ba8d0ac Mon Sep 17 00:00:00 2001 From: transitrix <automation@transitrix.com> Date: Sat, 22 Aug 2026 12:15:33 +0400 Subject: [PATCH 3/4] site: render a library item's PDF from its committed source Vendors IBM Plex (Sans 400/500/600/700, Mono 400/500) under assets/fonts/ so a page fitted to the millimetre never depends on a network fetch, adds scripts/render_library_item.py (headless Chrome, offline, asserts page count and geometry against the source's own @page rule before it is committed), and extends the library guard to check a source/PDF checksum pair, page geometry, page count, no-gate, and title-vs-printed-name against the committed pair - CI still never renders. Ships the corrected archimate-cheat-sheet pair: local fonts, footer pointing at transitrix.com/library. --- .gitattributes | 5 + .../fonts/ibm-plex/IBMPlexMono-Medium.woff2 | Bin 0 -> 14888 bytes .../fonts/ibm-plex/IBMPlexMono-Regular.woff2 | Bin 0 -> 14708 bytes assets/fonts/ibm-plex/IBMPlexSans-Bold.woff2 | Bin 0 -> 22832 bytes .../fonts/ibm-plex/IBMPlexSans-Medium.woff2 | Bin 0 -> 24184 bytes .../fonts/ibm-plex/IBMPlexSans-Regular.woff2 | Bin 0 -> 22588 bytes .../fonts/ibm-plex/IBMPlexSans-SemiBold.woff2 | Bin 0 -> 24252 bytes assets/fonts/ibm-plex/OFL.txt | 93 +++++ library/README.md | 48 ++- library/SHA256SUMS | 2 + .../archimate-cheat-sheet.pdf | Bin 0 -> 92008 bytes .../archimate-cheat-sheet.source.html | 288 ++++++++++++++++ scripts/check_library.py | 326 ++++++++++++++---- scripts/render_library_item.py | 181 ++++++++++ 14 files changed, 860 insertions(+), 83 deletions(-) create mode 100644 .gitattributes create mode 100644 assets/fonts/ibm-plex/IBMPlexMono-Medium.woff2 create mode 100644 assets/fonts/ibm-plex/IBMPlexMono-Regular.woff2 create mode 100644 assets/fonts/ibm-plex/IBMPlexSans-Bold.woff2 create mode 100644 assets/fonts/ibm-plex/IBMPlexSans-Medium.woff2 create mode 100644 assets/fonts/ibm-plex/IBMPlexSans-Regular.woff2 create mode 100644 assets/fonts/ibm-plex/IBMPlexSans-SemiBold.woff2 create mode 100644 assets/fonts/ibm-plex/OFL.txt create mode 100644 library/archimate-cheat-sheet/archimate-cheat-sheet.pdf create mode 100644 library/archimate-cheat-sheet/archimate-cheat-sheet.source.html create mode 100644 scripts/render_library_item.py diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..72a8c74 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +# A committed source's bytes are what SHA256SUMS records - line-ending +# normalization on checkout would make the hash disagree with itself on a +# clone whose autocrlf setting differs from the one that last touched the +# working tree. Force LF unconditionally rather than depend on that setting. +library/**/*.source.html text eol=lf diff --git a/assets/fonts/ibm-plex/IBMPlexMono-Medium.woff2 b/assets/fonts/ibm-plex/IBMPlexMono-Medium.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..090f82f7ec7997047324e07650865305a099969a GIT binary patch literal 14888 zcmV+@I@iT_Pew8T0RR9106HiD5dZ)H0HUM-06E400RR9100000000000000000000 z0000QOdE!F9EMf~U;u<z2t)~ja}f{<f{b*5?>GyDG5`TK0we>7U<4oqgBk~kX$*s4 z8;g)7Y@0^(;5-1)W%qZIqX;$*All&dD1wax0vS0<_W$3Glf#Od!4D&*z_JoluvXSW zsEk5)EqB|2(WYJDMSUVJ(l{cz$2~7|j<9~@xk3Ech{cHv5`@CB^sGC(EaM3cv*rEh z3jh35(rOK4*aI8S*z~r%^4DiP<40)eBVL~We!o7~KCg$t5%vHoB(jMepNf#taX`XE z*bl}8sP7S-IkS7&fG=P2(&34GAzUq`PAR8fWPr9An}C7abRs#B5EKvuiHM_=mQVz3 z6z%CEU41TpbJe=YpRVg`U0=1|zKDmvZ$IY+T$V^2rRhrR3L2L!f7#8y(rp01EP?;G z*1z4NuHvqS>FH@6!hS@blPs|g2=l)%3wrtZkZ}8CfP~9Ceo43=;o_Im-d)*Fc`M~m zf&zFtAOTpmT(0Sy8PCKMT&hGRoK}Wc`V-ts0L;5zJ842FypD$gk*-!LiBeC*CTH^H z%(gF+O<5|pEL}E4vaQ?);m2(0u%&B|3n3z&s*Cpl&bL$rFwkHTj;z3)Tg1A21Q#lH zEpU`z8m?gE|LQa6|G&-3RQJ6qNz=x%TGIy7sc91gS&fF$T}};2QvK?;{*=C+{y-bG zZ6Ym0m%g+snpuR{oH=qt6eJFbf*^3X;r^dZv)!>gJ~;&ZdLZs|ZK~1Vv9!CR5qK?I zU_$vomP{xg5$URgS4XH2Vn<M2Ql%y6QZ#96WE(QAN0w_<!Ygs+dq1Xr?`&e1>EK1A zmLSm!;sQlG|DMNwieI|McVgeja0HDcAY<Jjp#Gm0U@`zj2k9V#RA{ov&@8i{`Q}4Q zErqt)3LSM625<t<SmK33V4@-sDf<sv-JqgHzqTe2;n=*R83e}xnp==Oi=PKw#~%fP zCq<tCW0K1l@vk2mn2iaAX)jYs49F1RANUR*z4p|7Pu+CcS;rmp^twE5e%5PF+ibMj zQeVEN@q9B)76$gm8V)`9_CQ^dzm@I7AHoc(y)Xld15BkY$Gb#bUxE!QUzKdm;WQT5 zhYLAbV~xSN+Q1>4#mRAk*yiyrMsZ2VnQTQ^hcLjefF9|i8HUo(CPv<4U#U#N<s?pK zfkl>nvN9vEogKYxgrJ`edh&~D0LK7i9BP3rlzD9sldLc#&5Oay-YgG_KNvQ5@Y*fi zn$StW+(22vq{-6!n6wwKT$g7}5)EAXmW$b&;+rN46u>?#aW>!JSnkGAY~TdW<w~5) zDICH{oW)jzNq9O)4Su(dnt_Fumv|<L<f4<Y009YbU0~P)u3gI^7ERncD(a1^qM=t# zA92)lF9&oOEyKNgi6khrZOXE_B?0o*|C1{Y0&+Ix+?i+tS+)lxsE#0xip8<&oY$H# z5HZ1paQz8S%q;U`iAOx+1u;7Ms8Ed>)RM+U-d0F2oSBC}Y4X9s(sy_9FI%mxGKD-5 zCd^l$T2gSN%#LFd$dk?&E&BjWCSwID)KvG5Nf9ZFW6~sv63Um!XLJ6Rz+NGf=&*tn zq||Gfzai^hFtLmkq}&`9^G!G2aQ(GuP^DZM3k?ZL9Gh=ODN3K(*L_Tpd+!Q=ZJodD z4}abYd&Zf_6f0Q43RbX!6|5iyf*_~U%rj-lmWu&hh*!--Q7H2aOj$4n;)1#`f)gwi z_|`UoPd%<+$H&4D6qux;xHtvrb;yQ2`y<E`jYzTT0BFEBp}d*w(X`v<Pz@w>Ig(3; zA;49=d<PY%&s7h|G5AxFn`}uPuO)h>RS^oL8wwr)Sq*?A9UB1;gT-|Y|9=3zpx12} z^);Y+WG}D~1q$eZ*(d~N<H`=?AQcD(Opz>8fpSs3ruZMl)U5q=vhLRX4k<^qG<=~q zAIOLDHa?1%`7GYfZ(KyOPFu8S@pzk$+YP4R39=Lls?uj|#MG#LHZ}#?QO)LFygwg& zv=X2BjEQe_0LFrL542@~))Ht?G)Nsx1_k*4AHo06Mn%Brc+@tk9L0_jMs7c<IMQN7 z8E!pX%_xAqKyCtg4CJjIplks^*0C(ofAVeo?0>n;R-a9Weyyokg@m>1W}#tJ#SAdn zBvS;bMZ{F-WbhtPGqs|+;-j9KMj395w(9)_9W?Wru2_?|(3Lq8UA^{h*I=su_bq&0 zK6_Per$Iw@+hLbI_B!N%gFbh}un~vtcht#ajyrv#*Qtx=&R@86c7p}xn&(6Fec&S> zTkKN{EwbEF%Y5b&1J+n+m33C@v({FdY_`QV8*O)HeQ3H=#;|iJ<5bE8X#nt3xRqHT zB4DFJMMy#i5CD@~21Ck&rUPiIf~Fg2abT#u4E3DhJJ9bsL3{f09>mF44xxM0cVKVs zp+#@qWIADgAz#u?w;P+Sbt3)m;Oa$*PPD(UjDtoVtl=lu=f^Lce<VJiH}Gwn$9Hp) z+;AGE)%g0wyhF`VeN(p9i0IfIz}{A>4g@5LPMi%LM=}XH`1Z!S_695ed*M{|k5Qyu z)aiPq{@p|ESjTQ%0Bg1KC62?+%QHz_*824`tgM#?P8n2>>Mv5;*=lRnSdh+nslaBd ze;Y5QldX;~d~VSEC4po>PKQ?q8^8ssleIt^dBBN7PZvu=p#()_CBardXwtGXowWU9 zHT`;>BJSQw1Vm}*Sg4xYG(hG9Y6HkBFslVH{}=Q=gZd5ZX#lwfDQ-O#2AOn6C8U+8 zpT@w`GR1Zx@`&axm%PU$o`BQYEy?x#SO>sWEZYm)YPGK>5j=2ZoU_tmge|X7f>%#i zm00tIT2DP%0d-2tA!|zrpH%ATb(OHII>7hT6iQp2#HU;L`zt-Twk~%{JE!J(>U4j? zaG&PN$6g5<D>aqMsEskH3!?VVqDA4H*oi{Lu~BL4On0T}x^uE|u5;)5*wF!w=m|*Y zJa7)xe#4;<k8jij;}Tzblg4RQT1_WJ)EeVbL&H@s3OEDf4}T$C9CWS}^ZhE|>4}lo zE2ng>w3D-O5_|g0x<aW)SyAa~Yn;=~R?~6jWZ_)qc06HNSoP(pqO>-`-3>1^R-@cA znuo!AmKpo!{RZ#*L@`W4L`lNYllGn(Ny;21w98U3l0!Ju;aL^XUn4&fQliPdnFYZS z{$Iz$K;TuP<Upm0UVj9*!);LnjrQMJ5Wv5+8mGL+%14|NB$MPoq9#NG6lRU=^XG=< zWbgpJ5hVHN!VPJ?i-F-NSPHNV%SE7BP^!MruL{@m&ZtF*=~bZ0c1`F(zP=DEDtrBx zZ^QgfCi_r_By$;uh#fjCNE)&&I9iwt5X?bmK0rGgarRKep%TfQlPawFX9a|Db5|78 zzN?l>LY9FcuI`6gX5}2&4jT(_RVoW<sf6SSNOr5mZbE{t-EjsL8tp=mk%B>yf$NYM zCv9)&=s#g-Z2I@U7yS)gaJLR_E<t0cBwx7WS(zTvRF6(io9p8Ce%Z=Jj4P}POpXR_ zs<60Qa>PuM5Eh!}nqZkS{}FfVo2#hJ5*55{!m{wnTI$+g0m}__GBBSddbEhVDTa~E zZ_rv}wYygg!Q%RG!joo0=M0&<>e$HYJhrm&fjgDnrb~N#MeQ;b90`I3Veww5b9ZDX zqwxRs0<JllS+G%Y{r0sMD=z<PD5Wx_iJ5Yy+(MU)Tk{-U(S2~HED948DpBGz<Aq@- z1a(%u^hrXyA(Ir_ckamo4F)f?1bQj`Cx>m1bq(Mp0@nuRw(3f%)|?}RxEW4{DkM7s z#do=f{LW}Vl4QlPDkeMZ;Z}O`mgG56%1Up}#qnB|&?qNU)!ooAmZ-oB+9>b8G@v|M z`B(-}%&^yTL8uc3Dj?x*WnN5w3J(2@NNc6IO;rm$4_e&=j`d+MT%4+hDmBU#5XwPV z*EUQg7Mk66`MBV<)v4J-ExM-?kCF0d%6qoMe05B_L3gvkyO*vowb^TcE2Z!Ej~Q@U zG?$MJYo0_2fp$`0)>d9xwLFq@BVcPSh9~iMe_TnAp<6ciIhqZior{ASpWF(wCa|Gp z6ZP!Q;ZG@D#GXw0*ix_q+An(?RN5@2N8*DV0$t2|>zk)ok7+d9mu6h;vGa?s(i$h< z%@(kdQSyYwS1Iyu&P%<~6X`&Jhs;-b8a!n>?|gLMbU<beLRD&D+#NrRRK@D$OkKZT zkYU-AG+7fIRZKbv6J|pL8!C7~H5>Ae#2rupZdIuwQ;VSxH8U{ew8uucS}JDE3J_8Z z($U&>=sJTCYOQMYdcey^gdpm(bU2?L+d+l(+t)+gEdKkEky(agbaHwS3Kq>}laDs3 z7t*6}TMXu=Frgg?2O(E9ZQVH3{wEZ5pMH9A`DESsrDkR<W@7i*a4gvwqu$-s{^2WT zzf{^nWSFPfKL8o2^wxyxo}J;(#Q;KcHbIE@{x$s@hF%T~nMJ(1D*uMSF$|*fRfE?5 zp@?<{zq3R{J_ATFxV}o4d^=qhCbHcONe@jjL}Q22)Vl9{rur`Xq$4kxYYg~B9ioxG zvJq%D3D-i?`D+yf@1w77h5ZVLu*;uGdt65~U3Uk~|6)i<Q(XbGnO2>&&Ka3~s8C|` zA40K_!%3Kyz{;UCMMj5A66G_pQFYdI&hHTkxCar5WX1p99fVr_{<XT^jmhr4E0@KX z4S>q7%5xUS+^RA}3qJx$Az|)vDX@cWu%;;ut+98H$-;Z<_buZG1X82c0iiPdPVmG_ zG~-jFF@TrKeykkC%3dt*25vtF5bIYqQ0w%(cMGBWfF!L4S=jDniCL@=E)u35+op`V zv4i-}tC*Oh_FDSEZ%%2Q(na+O4}-oIAU;qV$Y`sMwiWRN%7QHW_6-ss+nP%w>&c(x zD0b{=I}(UuVzEm%E!)gdUslJOjk@yQ$antlwB*A!wbOgA`Az;il{~3`z4_kc2Gtr? z0WY)ATj_dL_fH#Cu4g5w4?OJiDuWPiD+xmamoPQpFQ;q=nEX1#Z)D*y3c0Uj(ASa_ z94|)0iU79)P<-~UDVUJ|hq63j!ab7Gsg=K~>`%hMZNZPi%f*$1bx_j8pT9`b>AlUu zVCew?YbQ@3T_*(8emu6iwICi^pi07kbEKJfhwHnrB{>*J)q{An7l2C#W<8x60lrrr zHR~yfIleNW%io$ObX9E0l8DuCcea~Uqy6`#p@V<<eiq9jUf%Myh^DTA8~+BAjxxSZ zJi`y>-f^BB&vP%!`WGh5xcW&UWYSy)I;`ZDy1z;XiA~s-y+z)jB5+WZW_S$Qd4pp! zg>R38N{(6&V*?J&F$7wKan>yrGY&Li%T5pFU@#y#!7^kiz$m3ZEuZeC=6U`kD>?VY zYX}LeGILCTizeH;R5^P4daNbxD!Ibi!${vj3=X@iE36KYIkWzE75z_TMFR`llMHFR zlV<nEuSr#(S+>+Ewn3kZZ@NnFoNHIJuJUX2bF;B4tSRDidly82AOWn*f_W>11SpEs z#T`Lu-4NwKqQ7j?mW090e9q5~)n+zAj2S?f60sf~*Q_#=qsGtdvYWupA&m=W*oWxI z9@F#>ho?Rmjm{XGg{_l=Q-Wk>?S{3uFSuaENGVIGMMvUYVp@H%g`Y5G)KvSrbNlK) ztPFthv7d*T+VEir(z{F4@M}-J@7@07_oi+?`TbfG)3pEl{YoEi+X{8OsdAxkM`GnO zbBT(x&~8!oZ~{L`V@KD0x{E1qnjE8)J8n}Q$|Z}W@V?5B-ayEk#i&_Tv68=3u9o?1 z>=^FPi--<(C=d4Lp!)7+utmLe$szoc#Rg8i)pzT)E`hb5Lt{_R><=V4+R;~KcWP-r zq;}iOnX>HEnvkwL&33zQ1UjeB`TeD@!N9)FeM9-CNytQHUb0SUn<DwX_$LG8M>|*U z2$z|GW_x?Au)d|_rbERG)XK`LTEc-8wU?^pYm2Esw95!5kDoi>gEj*^aj<bte}Chg zpcvpaL;VSGqQi<BcuPVJp-68BPznv8bSpK$bo;Y}h?@Asy1yO8Az`O0V3Kl*LQjY( z6tkq?-j`x$rMA<}{CXZ!p|vQyaxI`@U(R)~XIJaAoj5k4#PbJ^045DnlzL*7LP3ft z3;~Kz;LDe531Km<En5y)wIv3+ODkR3AopFsrQ~z)sVNz9ooR~Ax5>TBzbh<Jnsht; zXXl<J$<24ei8is&IUAU#EzkP+Lmd6b?HS9T;i!UnkQZEsh=$WNThVO6+H5?M9P##` z5M)Df!7YShlWxF;xu|=jj=G?|+JIRt+*ewNOBa_aRQZE0el{IT&*q=qGP_;R5+X?Z zEXn_!y`nl|P00Ehb9?_FA|i=KAW9#F&P9)+9WB#w>AT&#{kWk`{!_7N%kv4}`h8}J z%A~uJy^mh$PWSnqC5}U!WuGjV{>7zNqM7^N8#RX#F^g}IH|R%wFz7#RECPqMklk15 zv@2flS6Rg}maDWe92R_r!;r{b?W%Ke*okj(gA@LaWi~Qk;_xA2G%=W5PUMjpOeVW& zvB<KCXzeKpe;`LjNIZehkxrOA|AZ_12!Fr;zIpC>{y*nI8$Rt=TA-+_kpTwT$;19V zZACD558tYh!rfE}Uqz;79SEQQr8M*FFG0^d9X+KnQyrahU0|ll6MEw7-%ewnUysz@ z<8K6XN|S`P#@~wT!cVU`c;A2DJr5+l)HfRQBp@RRaH9Urp_Ep`9nCdpMb-yk;!uh% zCne0;lWyJ90PIOG*%L6P^y@xO*MHpK%RCPG{NJhCDBlL<*|gEFL+?(ePqQ}j04Ns# zn!8V>G{39ms5o+;zn9f@{hzkdTgu%~RPfs>#XzxtTj{IwyRPwuA7Y)h%frimg&<66 z9?t%F+3+tFby1I8YGgsKn(ZbA*2ptWD9U`}5gp~`bB~H9y=)Zn>)841I)2m5gc3G; z+Tk5LrX8NmwO}IleQ{#9_`!6%MVqYbs?;Ve_~{SC-ErbRd&Gj#mJWZ>KW)$8;Iuvc zUt9><EH#xKm6jS?`Dnm9av-9=ERKk8=p#Pw$jM0Q<&sDV*S4b~bymNPLrNrux9^>N zcm~&sjVRW~iCv=W({W~1va*Fe#*yZr%2g(@a*q3l>YA=KC9k>3ktFRk4ZB<F^lZ%9 z=s9%df$xX^XX4E>9av7NDLBqqpF1DT=QPL{{uWVYt6X)rU*9u!h`W9Jo#`(qKQ5XU zYZ^(06cPRr+vqRT7St@LNgMs8JvK700iN0jpFR?6-HS>`SB-pfC7nl<0n=2n6+zr= zuLsx9WMdkcz~=ED0n4dFfIJ!PtXyOu##VNf*Sbd_@w%3(s_H!%UxH|#RaeQVsGH?^ zw{x0KYLHM(HepFQvd>oA8D9|_uFrC<ygHa1J>9Z;0y}NBCfHi?q($iP>_A-wqoS_= zO_Bl&_9;7zx~YL8vBn@3G1=b&Fr+qrA&VTFT9b5j@RWM}DLY-FQ1Q47f-1wD8P4+5 zSl9%IN*KY%V!=={bT2}U$oCKLV1V_>cXax@Bv{Ybkz5XBB{`OIirGwr$)*V`H#|Hu zJTX`y`yM(uLlqshwhrJ7SD}_<>`k+;X@Qg$%cGY>IKxW~i_&ldcN?bK=b2|hftjWA zx^Glpa7{H#GERdSr<o^pUvzc<p89I<Wd9E1VyJ1ce@CwglUiQ*SFHK3Xykt1o0DCh z_YGQA$;zI}YL`}O2r<^m?qSag5u$ua9)u&{gXH*^V4XjF29~yNNGIQOVn=veI7ocj z`0QMT#KVRON5qmJ9!2v%3GH%X`2sh73C_Z#qYOo=d$z3~*1N_o*Q!K}RQ6Lo*TC!s zRDUjy=*JgvT*!w+4V|brp$|ZAl&|Qevd9(<KRiLgvA`D&y)9ENH}Di1y-biMFp2a) zB-$|7T1ozL(cLP4)m-1BAKIZ6|M}(FZ_|3TY$?-<n?rDNc|`AjVUn!a1fQ|;ZK?9~ zDe(_@wbmd{lk2pq;!<8H6FqC8j|r0oDM|w|rnE9=n_B|jBTGjr90pf$=t6YkH+@PX z6TtQ09VI-HS0xXUL;;mvr_4~op;9I{NX53%p{(iAhfk{h_8A#4MHv4F!CYjpxgMvL zsY_+0J<*nyihyhpm8CtlxeP@F^B-Zn+^;c+`MLbXqQUBFlk7Qr4EwokoxFy0pgV`b zcUYB#I-mG<#hFFfzwhqYH!zkF4?!DfVqvW=|0c;yr(VP9PzB^g*Kc<?X~z&`>W`Gv zaeaB`EI?RM28pLsq_6Ur17i*8la@?$#h~lUWchwlL*|NO<yaLZo%`nCsg@2$V~M6_ z!a!X+VL(w4DwHYw6tNmp&g<|>p*wHVr23kc7JZGBc54R|y?r6=et|lt4wx><u4L#f zR8fci5Wz)SOmY#(PNhoeoVNH~f|Wo@L6OH1<fw>0GDf=hwmKu7U5mruYT0R6WF0vF z2Sh&NhkWwCpB4UH+flM~t>V8e8|W+a<h~oG$LV;^GdG_$fKPokFp1{I7w31eE)UjB z=>*e)CDxsLygMa3QN1L&KOMMSIEq?0>avu=^59T74+~u-sPAjJ=cfDde-?glwXBmR zPV7Rwsfd}U=V<aM{`vvu=&(dNwqzHF_x?zP^0B$miXm_e24sKokT6{zSsDRMNj=?j zUSou%#|36Wzo;Dutw~&Wc%-%D4pm6CkVtm<*AuIO@Hx42<SwglNa5A1uK_}{y*6(K z!~W&VFYUCsZ^grbqMgSF7YZ@U#tP@BT**>TcG+E%)mc|k=8OK_f)N&i`Md2$RPfN2 zXA{AX2=w({sCPY`@CZEd*_IGob;NGWd24z!TmBVoyg)d1Y5#@2zpdTB^%ky+l+DY{ znGv0nayN)dZ-+e_8J_jgq?~JWP+u1E`-$s$b)A-|ptI=;;_>UC30=OD5!e|G3^2+! z!D#b2`_H@?kr}!Fd{P^!4P%-cjPmnn>VrNjqL^KQtrF|{UsJi;DMZ9S`WzR+=;W|O zMo&ghzK-_dSoK<ws|k(OFHCtO|EG_2+0*}MTXX_{tJRzGN3oN5k5tCt%+fuHusF>T zdgpu>;xV$7O-!eUHPL2e^)hLhQYNrjZAU<@ms~GJp&<vjGVVem*>#Y+bHj=Qc7NRC zDUVwPYEG(}v;~GCPogOEn<zNuK@}OI<0cpZss@{f)f5!WQl7|E6+3PMA!!_5kRLai z<G{o54$f%Y$rCS&HS8z+jD^#obOTp`d4fTtAuxHoU&5<jIe3qGj#o*nRn`lZ_ZqR1 zwiGYezSO=HoZ@Zk9SRe081P`6DcH;wICy{-X*Q7#pZV)=BTb^SYE+vFRKrX2tC5+= zZ?I%Mj<$l~aRj1XFLB4Fx?MqAN0-po(T=quj3`xw`M*$6sU-a`b}B`oG78%w-^vg( zZnojMmyiJQ`NIzsTY25<Mif}ju;N1Hh2cncB#F?<>s*)Jf34R&FQ>i7JtzNKuy;5p zFzt~OpNn@hcGyy}Nm;?={;qc<{=*T<(&<S-4vuKp=@>Vz)>@~Es+!-+&mRpOJzsSh zra%r3+z%k%Zx~VPNEO)e8`5%G#?LDTRH}h$)fFn0DQCsx>Ob5q1fh^9P+{7A!R)&( zt-Sf!e(&pLktObb>UR9xU^$p(InbEv?##%+P!1rM@!*m324@UeWa<(;`p$nG3Wf9E z9W=f~rq11|J=q$#f<ZD`xu2+8Y(<9d)tE9a7gM%ch$4qx`Gl*>FL7~J%7%oMoK&NA zOlw1UZ1o4t%`@Q}vcX;V%BggeGKN0?v!06n$;zs5tJJA=+f7`S@pAk!%gAjv!e-4G z*|`(n-Lp7Gq(O7X%aI-wYRrxd{S*63_e=Ye487T*5gwF!Id?P$BXX~)>yrW%Gn-K3 zwI0t=6|jibS3aE3-Y6m2REsn;u2?HolQBcbyc?mgRNN1-OSe+%<1tu<1Co#z8+9n4 z==T>fl%Bj#k?*OGSESdvYt_&SZjnhn<;CJ}HlXz6Q_6gALm~#NcUQF2e+*uT!%$0^ zW9Q!#`nG7i`&aDuP2Stuy{R>IQ)|cG*2zBQYn!jS=EFpQ)#3~~`~o50P9_TX=n10% zrHpwK3>G~tu)8KEW$$w}3@4qW+GW8^Tpi~VxpuJ#Jg63+&GZ0M&tOyN+2r$i^Jpu@ z1)B=QD}RxXdn5hU>a5h*My=wm*TQhq$Ver48;S|+_-OuPWX^}<GB@v^F-996Q~P1_ zoBEHLwr`G>^8dfGF~X>X(nM@f=mSKdG?=f@5G!R8Tu7(}$i*@ne`1+H8Cq7MSnm~K zEyYW=zJZJhNG5HT8T5Lk-l&&lX>;Pfw~F^_EUnaNT^w!V&C?0H=g5I0O8lia7iVV4 zCIHv}ea~yTGs}O6*6dY~n{=~uP2@E4=ywI;NmS}2aY31YrlMAZ3#?9C>74%l`Eg_S zlievHRY4)(>}i$#lB=PY(g@ifTQKz>>2gQhQHj!|U+5j0?=D|;Bb;7e5v>0((WCJy z?0`^?k~vCzIo@Sgzu)=cyHQ&I?c=LO8=1u%X&xSK^{v0T%(v{(dLIna=nf>yKTy=Y z1y_QdWz7v!;@R$H$_?0GKIE>~X5d4#AxnC6^-Fkg<BUvA^SJthYu*^F)#lS1J;uCC zZ~7hR(y7blJ~z!d?fdf#n9t8Hwa^u{N6}MDUxANPg*wNS(pTauUt*%@+WS3l$(uXs zT*DhZRPkLiVdj)QgM)L@%sfXlGQ62%ZPxmDGG1%iYTYBrIg8?TEzwH4nDIpmf0|hz zVMOX@#$4yGBt%o|a(i#Q5f1OKcw%b*UW3g$@D7qyH*>~*lcMH_FzZ#f%*_odf+HrR zp{FAK6&j3sg~mVV(xGo?1qzj3&OyH26R|r*Cw&+y>GgOp{1%3Hj{!X4DlI%F`O@zx zl)tGZPKj2krZEQ3H4zCJC@@-2EKqeZ;zo73tBmwUqrS{l-5?|l6{-t|Na-Gl{_LX} z=^00}f7mMyZ!Ev%qOYqL*mIqd--5da6P{cBNbvY22=wLtTTaERV>sz;dhXLt<O&UE zhvXk0H7>aL-n~(Z!=8ty=2Gx^LL&Y^R$BH(WbvU}k|`{)wwOlfKLZADCNquvZq@eH z>bX~gcUgRv%Fy{4xO!PVEzV#5EpI;qi+h9uBfmrE?y0?%dF-xqQ(6mTGmgx9&gJU0 zwMB8I&Lkr@^DZ{mXo{THwa)2n6y`EE&!9dq;R-4Pbp>~HgZZLUJJia)e-xcrHYFpj z)C%aN{#W2Fd_46lnd~bnp1%eBs-Hx^s;;<zIhd1{a}Wc2L@&hNhNr=AV+S;Fv7rsC zqV?_}+nXDb6%5D-?~QoBsrE<6J}CD)WdDIQfuAsP2Bgn?bLse9oA&yF1(?Ey1TKdz zLjvq67U04C`^EMzG%u$!h*qRFFtV~&en0aik#c8|jVsQQ%1F}l5y}H(4)OsdZGVHL z=@Mu(dFA`UO!D^E4T)r@Nk(v?-Ak5tws*DHvo^rsVSmk1U?<44f5pm-v*i=8imYD; zg?ubuxOrP_IUBOf$n(?5zhSMA^HWHoFPOj+*|<3|aaQRw(%Z;`a?|@*JPi6`)0%;j zs-D1bS6*aZ#+9pqeSXGkN>TfRQaU#+r~RJ18RV;>smJGPdXAIiA{FjhkD3@6gZge% z<C!zlM{Nze;QMTL#=b=>fxV~Q$6mvDI9w@|yU!1!DF^MlIPlY`PlMwG{eBAkKMT?n zgCd|>t}KvoTYKKCy;jgy`Xf0m^hTw{xhmI-jVc$e%2m(RcqMmgSOCt|`izoVX5Vau z+GQY8v-Wm07Fw3NZuYp_271Kr?|Jr5)|D;I{^g$=zj1@f{>i!q%!WfM@zJb<m~{<i z0r3NKJ4^^7%R$V#*b<i(W(?$xd=Em_HSh&;Q=m9zkzEvgi5MVj%IdSmtQoo-8`}+d zOW=~2I8m&Q^;zS5M9bNTY(yqvBf9fqb2e~XY!WKRv3|KRayn#T-eAT;cfla1IKv`L zE|<pqh?YNSoO@=+@%=7W!nF9olB*B~|IlU-kA1bvwJ^kwmRyH0ZS`Y_pB($@v9EWz z8IJH&c<bl?zwxiw75_%5z4|vy?_C295B?i4QnpQLUylMTD4)3i_(~}rOB*-JpBYgm zI9OUT1s^##dvm0o%R5vmG=%MR&8Oc{f#$L+u0rxb4&WmT<gO=bum0(rhxp)}^1YHf zzlc3n-PgquKR~d7h~>E!`>jU8@`&Y6HbSj$PaqGZ=fY}u#PXa8(GE}*oZ%76VWaD# zOU6Xp!EL=k9q5ig>{vD$;`_-M9-URSSDkXwlfl^GM<c5F@en)wXh6BUPVdG@DBmkV z8;l*xMq{3X5_lPm9ey;*1NQWBvY~pWzLkPMtTV9Ua9I_)?w!i!RFpqMb5<jJs|PJv zJuR$Gw(@FfYjwX}tYR~2er+h##DC5ot~;Ov`B@h_z{4l-=HDmKe+%G$-zR8+hmr#5 zOMH*`Q#!M;#jIf|PjZ#nA-=_Vf(ZT)A6xQ{#pSln*c_7?lv1tPw`s`p5aj|uC4EQ} za|<L5N?|r6HLrGvZc(1%C?2b^=~RkPO_Po$9Zi%Z(0IcT+Cn-CvH_W_p(u)AI7x{_ zfPjnbP{DK}t!}Lhk|2Ub<-rrl$zR=Gci9cvPN=l9v_i#db~jMT@DqSa{P)Mpej)O< z2!8M#rW;f`l8X#>j-Q`ELl=0YZ1hMzr_?#vs3@g$^eOlf)DZ#6#?c4G=O7FZI2X0G z4)I&RGkQD+@o%|IWwxa0{B(!N8;ICV-4NH(J)-RIz3`sz*n4GPJ0*F+FVYKpFMj7m zykl?4!*eKLkGFC`sXv<?9WOVUZf29n3d)cL7W!}f49kemy8kCQ+d`;sCJsMO_()^@ zL2)*w;b3U}BjOQ2+?#UzGOXZ?*39;?8`6<arI7;Cxr@*gTUZ$bsMDWnI>bV=q%a?H zh#(8ZvW#R_lC9ejV;KZ?n&}Rr=t;~j??wv}Q9TY++4_W~3^?oqgxo4;g!X?_Wh+W3 z5naCqfG>89$mG{l+<!|o`G*{aCK_m`1{4Ks5><%hFhhp)X0RoJF;b1D=>SYjb6jxh zct)S5j6$KDItUP4A%M!N^{UuTdX91x4gj%#8HT_v@hb4%<Scpap<F8ikuKmJ0&1F9 zM*;wb0+{`fRbWn1fW5;ssDmH^pM#7v)Pg4X7AKPs&n2DVa;<=eQNl~62Be=`YnC%i zL|S0dm|#$62er>TMGr2LjW+=uTIIdrb)Nw!W!Zy%dUca1^&erw5BqU~2pkjp$68)Q zupBgMYKjzcSmh{u;r7qsGGTkzC~A0g$yh@8f-&RaDAZvv$R%|I(?J+#pzeZt*|21$ zxA0or(=czBqiM&<G1tJ({MgmeLS~r=L~JD?g#6hTOw53I4%S4TH5;oZ7yyA{I#v<e z9T>|SDho@jwugH1@pA|O0az=}@{GMcodYO8J&!lLftxGrax`O=HO)=UszP0_F|;p6 zEVyNxa)}gtEy<$Q9QKwDL>#N+?F7@Ah7ll8k;o<m&1jkPlIGQ}X!)ZiF<TOCU$b!= zw4Ph19Xgaxdnm|N3J{oU5TJ9x91Ekzmu=VpXO}eqHf;YU>0<J;P)fcJbTSI@MBgUt z?eDyV;CtN5o2|4ASrZ6HbVgu~HhZEDAeIwC043cMLnpE9e4;ffu;Fx~A$cqrCi?+N z$^bUd{uqb=*C3&4SW1aV9G-)HV%S2eNg{c*e*3iG*OP@Tnd}LIeZ^=c>E$hU)MBkL z3z9pYreWE7<1JtyW)r5oRDyu8X3YATAnA__E9<uJTMQvWLsL~y@@Mn1x#;EB7*;>I zC_~}L3~yzI4M#YO39W;yE*-$oco3~yPNe}09H%L_v#;Q}X*kRr8S31pP7UDhX**LH zeu1gZqT>q|r0o(W+_PF(2LnGgQ7CCdqp(-3u2>GZj|-xHnfN-~Q9H_nddxE2<D{Wy zUB~QZ<N9>~n+ObI1rP|>E15EE*I~6I4jxbw1Ckk~hQtMH#H3f+SjMcI@Nr{;B>>1| zp$)PCQ}r?;hkz=C<|@<+$YLWUIE2wCaN{Z3XU>gKFZ#k`<UU;}!Oa(Ok7re0@9kGU zQHaFx30N=Y-3s6XsYE3zeX>Mn92N)~lT+jdiBp%?)f7Zh@5*)6z59mHJetFgIGb78 z^5*XHGA&%X5UAh}7WKuDFFV7{7Mu+(k6@S_n-2oCQ4+QvTUy)D63bw`+FOpWubT;v zYR8ipP@nfPA?+OW=q>^%iR;{Fx}-pJ8O@58?M`O!!Al@1q+*ns@t6X@G?<P7ZruJ? z8+Bf`3p8P30*OB@4WkhR*gn<VrR;xmuUQ}Cuk!1R5d8_q{qkbu?y*vEH@7y;ng9ov zl{wFF43q(zC06E@a$BCnQhbp{GAoVq5=OS3dbaE;pFOpUrK9@Mb^qt2PT<^Vf*W0y z*IdE>jV7)eo%P9qt%KgpZFt={P7h{|^@<3?srJNEXu5m6rwI=3DcTd&X=_gf6O255 zMw&P_9M^_)E9#~m%yI$Z9yP9v&LkAOSw2VXzt{V@HmQ9rG;GrezsRYN-qnua_H<7# zu5AKexYStGq;hj;(Aww}HMA+#@A0F3jc^e=*g{Z;lY{M4M;K0&q=2Cd;y{DM!bI-p zzzy&oRAA(%P*+0S-m3uUg;Nq49<vl+Yv<~r+7p`fXA|D)894&>o%|C<){nzH6F`DK z8tHsAqg50CgR`NUYU$RC(Wu>wu2ysNCZkxO02gy<PG3R9!5l+~4vE-kH&Z~&=4dDI z8*n69=QucGJoZG}k<elyYP&fByFN%PIf*#)ocQ)g;>Inm%Z}-_p$VrpuXMvyD$u!c zOJ~Q44BW9w1;nrlu2=z>7`TjBQUKsp%kuJBMDt7zqDVS-=aJ6CE9M%W;yP}h*mW~B zRLmFuqw&_5r^#S4qZD8)n1dK^v(Dp{!sKIfm1ebovf*w5E~F<`IG=`7;caiZ<7km% z#1J2q#(wS>i2Fb209IjDn=rh~ASS%-#MW3&<KBd6{Ikon(0k^8(o$aJJ}x&~)c)8} z0ER^GLaobx@3VO4dja0`7K)|Ko(d0>6oqna(@*dASFiJ`d9=wTgpGT=^`4%&^!UtK zRO6XG)4tv4YA4c*)2b^(B+omiZ$wO5Y5)6j*IoJX);+^FcsNfFV6JVS{g$_!Cyyhl zZE*(Qof8Jq_ulxK)YemW1g5<Ak<?S^NSHd_eTiL;{5XB$u`QnPWqRs~%kg$N7p%`} zhRDFGnF%zrW>5CWNX!x7rW(5fAOL&5853lt&f#;Xik#YEqYso*UTol^*~#kP*FWZ` zI|mhOZx|3XxzNHaNNtfnG4EKpT3GMxy?}vjwP*@ZC>Krepg;qL4*wC<MbLTx08G!q z)r|a7bjBqdEndDly6AgsTtRVC%#Rv%>yTk$i63r2V+a{quZ6P*q}S0KGASYGKGDrv ze?<I?WGzRp5M~wXQN3O@D*Pk*v)DhWk0}h``?#$Ujmm2ptB?*hi>Jz+NQ;uCJD<;U ziEp*&&l&i)hcsKI8`6XCy*6Vdx>C!8$`Js=0)q%62^<(|5{P7JuI+n~2JIAs0OtY= zBllaFeFD&r8qD#A>)FQfU$Qecr$@$}l@Z`My$AxlkM8bB7=>a-Wmqm?pkFO%m#qp= z%FjS?bXh=GKqnz)K+J~_4`g9H^lJsU<yxWQdp=zC2Z4FNQfg!1up2WA%iVW7UI)u_ z`1k@b2EKU|jVpzpAGfAv&xIPU2g{D87Bkq>BUE>T8C5Qk#0|%}iAS!;bt`Om&$=me z+s}uXRJl#)EH(-TsjnD*eXhS<{|Cc}RQCsHhz@)9KGna*KZIb2e8OHe%`4W^!D508 za1PK-{wm3BM5MjVKy6YU9(TBN7v@s8x7RsA;^FcvBHp!y9U@JTh6H=;d`VgAfvwaD z0CT{(#fE#0@`PVJR<8e5tX!s(8>w|vURGgWTq}?)l6noO8dn&H>f`s;5BzZNyr(sv zA26cP+M`-BZRfT}koGk!t>gqw1KP<T*qMd^fn?cRf!K`z7jV0_9n@V>qy8M*3Op(2 zu};!Hfh$0*-ib+~^u@8ZAA0TD%_cn^`{P{4Za^uIMeM}f&FN<pTOKO34E=kML%-Lp z*9ja*dlxQU?>m+RDzDSk8`={(S6E<Rs?4SVLS=FmVny2Dj9Zi2z-rokQYW)YCCxmz z$HQc(rnYW?_Fmr8vI&+5A1X9q0cmg5*;gf|;;XlfX6>d-?D9{(ZAm)05WjA8^HJuO zF5J4q0t5?W!99m|i#T)uFSM=~Q2=A=c!M>^erOu)gP0Dt{P^JhfNfl+)8i7rl<Dm` zuKpoPW0OO0VWC=|*NCa3&d3W~Y_BbJy`!avwR$-Fz93FQ`^xG*WJ4e3fDo<`m(auc zGs1)=)%+skauFU?O*q)sf);2NaInHsFG>0CgJ+&ggf5=@LZjM3#up<D)^rzyv5djU z!(fCFk8r>WW79>Cwvl~l_>uxo(1id<w~|f<Yzi=7&O@KM2JB?fLt?w~h~X)IiFfeo zZ158Bf0Kyz9vR-B>z@B)yn$KIDPR~mVu8Z^vBmJ+)@8He-!%9D7M;O!=yE7)>>ipz zTb%u!OC#>rw+oUsI?&ka?oW}4umVQJF#A3nPWEK?dVAR2?-itRMdRE;rp`bHcM(*@ zoro=6-Jk&=EoD1T%9B4dQ>hQWk&boPWC-TLUTF{wm|YthK*>=plt9Hyp6+opnW1vr zPf3Cp=FX&qn*{8rU<M0si2CTof-uj%siDh7f;(S~6t2ywN#;j&K()Dt>6DR*!-dpw zx@93Se&+!2o`oecEL(;iPtMUdWS6wkbt!<=6BTw!7#Ih*utMi*nHadIB?L!nkF5YS zi?qh5q9vFGdm4HTU|bSDuRteg6TI>zxWbK=>Q*f?19#wP)Dmc0sJk`PtkZA+T#RY6 z0e4OL5$7qxFVB<LXTjx}h)iC{<&TszMctI1Y|(<OXLDYbTjt{yp`4@G!5m_eO{1~9 zAKhBM4d=lMcKF@O5}5mPiVnp&k---oUf=dvzN$4dM?FIwo-&uw?07<ElIo6?@j2pJ z`KIkmJDP@B@F`Jr03>=q%vxyrg{_=_J=3xB^-L%!j0@LOD<<Og({FO<9^cTz>GKQs zeSW{-n<h<R`j%VX0>jzoq&3C;8mv}x1qyCuF|&<#&5y%hB>+j+9RAdI%}==xa^U4p zj1q^rB_EGXyHn8PHsN=(<Z9-UI6RFdS8+yk&5!amF2;Thvt@1i5-Zj-6F!e0iK9Rf z73Hgp5Pg^5FKUw?{lB>CSb58|DjO`LP3aI0IGkBsL)W~kzoG!O&C6GzSa=&V*wwUz zS3uS5cmMaSUH?_`8qW{IbNv_GKa(IcE}wUlVjYCQWXQ9De6H4Ti_CvQUKTWmug~=( zzQ2_K!A)?sDm6z7{ru`5^DpIXi=Ait9bQ{8TLhkO3CsZ_1WWo?4$c<+?)?U_hZqKQ zHW79G+3W%a6@Gz$?(7@h(rNry!I3@>>ANlO<q*F-KU%bE4<WF*K$v%RLtVn-Aqc33 ziq@2?HMjC%kdk760S}tC;D9{8AImRfR}=1;N(IZk^RT~O?}rZ;!*>WjjL=l0fcOZ2 zFD-+WQ;+xc9-;JsuGBV+@;tdwyPs^b%V=PbH8HDc(boz4<M<x{Sc4xL+nU-yqIa16 z*zW<bZPY&+zD)})^&vx%zI9S3ARqy&dFYL$%8q5S!uGn~8qB2dSnG<1hUhhKP)~yf znyPN@5?)f#4{B-_b_R8Puqm7{tv9_G$(s5<1O&?Q|H@xJs+gAZyU^0tfT4Eh28`UR z;lb;{@{Q<q1Tp~u2(a;k!q3*_huZ6BLsvJ+{HljALx!1i;ebWCDs+&-jcSD82cShd z2-QJXD^&|4umJ}X1!|Mwf&^viWhjP8o#wEk$%%BfEz3~=bgTy&ImlEt1xyG)1s*c+ zRf;G996VjZAX5;>jhL#(0Ppb`4&W;&G^mFQgE*l&bG?m%u>nC`M?~WgyRxwOUsyl} z2%Q***_er5z0X0#7*N2RSHQe8R}bKZZc?Fy1u}5J&@pllHI=$bs9#l$2*KS=s1&Ya z%2qirE;t@IG9ZbwyLr1gVd_?-WCRB8WqQy|9adu{7GeXoV5@GFF@$Zpi(jnGl!qI} zVh8##fZ6yRgE|@Y+kSleGFt(y8lfv1;0%Uh5f0RAi>;s?L#t8%+6Te^{sEaE7sP1? z3IQg9Lcc*FFkWjZu%`uZ)!lp>#n`q@n5^8U(sZ8Z%C}W~)!Swwq?9K4Hh8RK>?BDf zuL##eOq+U19cERQ9&!`kU0t-PRjeulD>DrnrzX{U*tBTYf~m4<arHVScvWjNg_4p4 zk|gq$XB%^ZXe~RaOs+-CCQ)r>M!J;{@0B2H51yonuCQ7cp$DY}qIA3kks!B)7s|pb z)T9Z4%-SWnno%|Dvdmd8AEC8TDg(V}#KoWU!2S>@VPIrpW&yCWv2$=LRmR25!^_7n zpj=Q$SiVS6qQ!_6CtiX?Ns<Xf5?P8=X}{=$oD+(B@#e$#Gob!*3lt=nRya#2Y_naF zY#W3y3#Fs7%WgaDbleFC9kR}PD{z*xaUd*Hp%PJPyz)q>v<k2L&9%UMA6R9znPC}g z3{)*@>`#mQ+(*bGo}Oc)qh^JhEp@4SjhZxQmatZfZ<E@zYjvwbmu{UAdQ8-3l3wdf zw#Pg_PBG1NQ++?;;`ukN0%G7N@kn}8ZGGwTm8;jT*D$`UWq-PB_YdFPs3X2x_KUB+ zMX|7E!-shB3vYbKB+VdMhRHKZkup_kzo$v-4?ojooJppcWu8TrS!JC~!XKZ6B)a3S z$tEdw+k+$}*~17CBSlV1Qj?bSWF#|L$xcpklb8Gyq%cJ(mJ+*BDH+#%UGt6|Y*F3o zWj$LcwDa{#Br$bOL6+iW?pI@mJKJPSayql$b4NSU|1LZD#Xqvsy1cB;5_*18SjKNW zPh%zhPobm2@uZ8gMvo^w;xB$f&&A*4hMup{`AIXi55Is20L=gZD2NFK5EK9a#4`#s zp#VSugy>$1m@0Fef>UuCPRAKI6Bl9u7vW-T$0gBXOlFk4AzLac(iN{M3o=f@8Cb+Z zbY@6NHnx0H{cl)k8I5&zR7(y2IUg%kkL8JfMYUf>&nHds>i;2!i6R2aFrypTP-uVL zpO9<(SG|d{lK%Voh=OOfFJ87keiLN3UQHdy>4vDr%{{ZgFPdO?0<5tYG9qiTmkC*+ zLsv(ZB$OXdVEme2nF*qW@nuxz>JU_hM1rsioWPnPJhn;YOA%u_E6S<QOx*H7n4L-y z89@X;W!j9LP`p)Hom<i>m=`^`G_vzi6t_U3Rvx(>?BUX}QFC7wI+&f_c-{CZMJe3S zmo+2#%0}N@6fM}sEbV2XrC#$L_<bi}C*2#qXIy~0;(WX`$|8Kg1x@m~uPH`Qz)SE_ ad};MAP-qCiD$QV&cRGZj2*AytTLJ*~+Orn` literal 0 HcmV?d00001 diff --git a/assets/fonts/ibm-plex/IBMPlexMono-Regular.woff2 b/assets/fonts/ibm-plex/IBMPlexMono-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0804aaff92260b5359330f63e05b9ac25ccabeee GIT binary patch literal 14708 zcmV-)Ig7@3Pew8T0RR9106BC35dZ)H0HGiN067o<0RR9100000000000000000000 z0000QOdEz$9EMf~U;u<z2tWyfa}f{<f{G-8>u?K%G5`TK0we>7U<4oqgE|L^X$*rj z8;_19%I%W^bO(SBuPiMn*f#0ijzrPkb7(X&f{g=!B742;|Gy<yV+foBUdslHv{T{T z6v3I)HPtYl1|6J;Q;u!%rlvunx2d?T-lk16e3rNr^Ji3KxRh|HdKXcaUeKR?aB(?^ zrIqndI2^XuU1=}BUJ~Uoe|SQspyG|R_PQf9_DL?6;CY+cyuUIY(<*={J4jN19RRM6 zJHV1ErPC2KZGfvo^8P%Y{-2w48K4Yu*FnxGJW+YDi;n@C(|_6|STKzfQ4*ql7f~V? zAxH>8w1P?Xm&z;E?bn2ER0SB@N_|ohnR#tmztr{aO7{OhZ>6~^sZ*r{s<<MS;p`)y zGviD=>4EH4Dw+^f;SyWMD_#BD1JaCUG$UB8U?kpU?cMV6-Uq<w+YS=oh$B0C<skCQ zUicjnhMy`oh0g3C@*|%9V*CC9pV`sr=|M>|O<_fGpiN*+6o|bB1jrJ2rAzlx?#_2c zgagkjBm=2TmlU1Tnn7<O!~oAORCviMv_T4EmI1Ob1g=I-`G4y#<@x{a`EB?RPS#oh z1_vzRWCZ33MwCHtmS4dcet)TU2yts$S`tH}LR+h6?fW1-(EnOGd;cDvlD<@Zj#7pD zH)~GHO>(K5WM|?iUDakwSHWmB<1+|}P?0FC<>z&ptG-<w!&adEZdeLPTW>EseJQc5 zFBw?2b#}sz4`c{~Q(|%m&vi<KBf&5MPgB>Cc<Qju_5WMy7w!8>t)AK3lD)!xYEuGG z&U7YI6WD%wR{d6~RQ^6aleH;nb8x9zKC&cxVxk+-0+iUo#S7RHwwMeY;_1g)UR)B% zPD;dT!vEYoEZTIUck@nZ)IvxM{X))62l}sFHFvkN8H85e-vo`Q@nyesFCci_p^Z#w zRAl{{|B2Jur{F?pJT){`Wcrn5lnf!f<FwaX#`M3>?d9`Ux5YtA1Y{))X@4Mqy8%dq zAnU9M8_1AT$fQE%6tY|)I}~#AzoG!t26*_935S4oEXnXn=ltc2FFl9$Aa9W)`^aDb zigz(=DbWhZa{htLOR-1<e~HE45EwuZfZ}0fK=Ba~)`@|Cy!5koUU=jV+8r02cGQ0F z-05|HWT(y6T5irnVn9O^JsxegX+Vs<JF1ktmgac`#m~~X`e}mWRl5}G2PCXa#x-`h zz!pQih?!kV+phoyC#-o@P>Mdg5bQa_HEPNOj0m&?O1Py20#1OS5+!pW$A(yCt!ab8 z4Cb(a<=0vf1twYHF{=m^(?UVM#{*CkK(rtSh|cj^u;Ena3&jnK#;OdP7n{d;cd?NS z?AnFxd0B3=p9&2U2bg^<PloAR`-zps*_}|l0ABvn2_4DUVu)LOf(5>ZDO{}Z3|_?n zM;NSeLajE+aWgD|@B_V&6c-^ukTj!VDHAsIg60q)A($Uf*c;Q-Nc*++E2fL0lk*WE zEbKVKz)$F{fDA#9$d)a84@i8O!*$>Oy`rmro{BXHox|hk-b4J^0umfr3^6!wAR>J= zzLm_IJu#@kd&fv2Oqxqtq(??%lDZ^BI4r~vN6xpCBQjQTZ=5g-gV=Hd9VqZk1lkNO zM>u^_Fk%Qlz+`ZB5Y-WbCM8mYd=Dg_L7aJ-LKG*f{Yab`q6Q+^GNnt695LVIr4I!1 zmJ!DwnxZL0RmoU-Pu9LB4m?dE>h6#*XH1_qb;{(S#0%$-#gQdLntn<tZoX!({i3+| zR2Au+a_LQRq*s}cmkzO)r74=CDVm}wnxZL01rUNA+IHZ`i3<YAns}lJ9I16J1q9Fp zVKi!A7zPzKz(qSL?P6pVr<b5A9LV?(!;yjr2O&*b>JS)ghr&{t2!Vo~#c?vkiUkKO zC}M6RL5_f^BLerEK8zLkKzcp}fqCp-MXcu>QELL0mSbT8SoR~Z9T)(BIqQOa%1O{; zrc?g^JtzelY>Yv#0a6M72FT$+0y5xXI0QV5k)8!QG4UaQdzf*+6faGkCjU>_hBr;5 zbLn1skWC?!IAoMZjcKZ;Yo^V<xoMsy>@5@9pO;tn$moWT-$l3w$($p12`KfJhZmmo zk%}c^@Qm=K22I)&8@g+*UoqlH1kenM`=HncD5^pCjBZhP*KNT6|Hs7qf8*+Kz}3@L z;#JL6^i{%@J6GmiiC(F?TzlCC0n7l_13Q32YCwzvKn$_YA7W5&jsJ6ths6m}p-UE~ zK#7u+tLBfz2gOf-Mh%)IaF;Ayib~$Nrbv}7O;xhRYS*bvw;Z|HniPrF%0q#_W~g<= zRUBW))9nA4&x*x(<E6LaZMDf}+ikJU4m<6)$6os!cECZ0>~_QnM;&v@adl3*;H-1b zyXcHn`t|5FsLy~Q!zPRxGj7(DX){L5TV}zc6_(UnZoM_uT4#gRO!ZOUxvLaeq-gTG zMV4A@iDe!$NyTWZ&2Y>i9iFd`IhI<9y9=qiV~*z7tvMEHj)R(0iJLxgce=?m7_>FC zEv{aSc)8YyVgXQj=3{NhhV_FRVo;uU?5xyd<KTugs38WF2RCGc^3HnJyK`x^XDxp| z_j9&BpYP0fY}#5c^>&!k7P_9V4bAJ8Rd@D<msiX6X|<<bOLWz069zYwRA@_32xQN9 zNo#j8R{cL4O@rnk!K}~X>XK^x!n04+r&VfCmCJcY{VUf8^_5(%)e4Nwg=9oIyYunl zq84-W04ugC;Fmdmn$1*u{&~*dvs}O6vUA^aI61V2uLf%x=xNplWszC$jz(Nq?9X3- z@Kg`p;7zrs)_9e{4Q+$wEvt4^5~v=n!2-bvzNX?G4-k(-8b<Wzp*vFPAE3Vg{|laY z1H2$R^x}ypOyS*;!=$w+xQT=(QDRL9MUKoRnlZF^G-ugNZH2Fw?FxVfip?*RX;@U5 zFuO39${Fq|@=SC<iO!!l9AV_I;9+B9Ma5>xMwG3<&b&xV79l}IXWnsD^wo8Pq2W(e zpWDvx+tFE9NUg<WF%Ej5Cin58=?{lZPQ#`cHH0gcZ8z@PK|7kZgqe25s&1O$uq~n~ zsCJthNf(uNK<U7>+-d5N)=)oVwysbamL#0t-HA3=TWWd}hEbf`ZWZT2D_tGA)N@^K zCj0|SfA@2)wO#0(FV5zSMHkw+n`$8o$I(td3PPXWD{Yhtgc7+ddRJ?i^^&%!c8u1s zUh#OIQEFyU7*V*A9!e&_=n8kfWS&i=<~BCgcRX;Op%<)|B-|79EUY5fy}P5pVM6mT z-CJVZ6@a>R18A*;H(`m8hH6-5Z|rV{2ly{h0-1wnq3<AMK@PkixwJixaD8V(_u?}F z;fo?imqo58&i0r6`GXrOJZ5CM#Zp;mU0ngphk(qxMQd`r9cB~`Z<Plu<&z1-l=7NW zUGllzL^f?q6cl!oLQnjK5Hp@|zYO|&pJ>LRGd0-@$|QmF9w6QWOca#XK$*$R2o$b( z#x-+q%Ww|pG6#m%D^F&s6#gx_*4zlT0B<^x*szT{hBz0FmBh<3aziW}VD<!oc?`Bw zA-UG2&~~R0m<3g6+H$!VwH2WTjp2&HEXvx^HQfqm!xhS!JHUz;oUuJ5_Xb#Gh_CA9 zXH>R11z9vOJslu3liO3HDTed(Dvz>z8Lu1usSSUT9^ae*W+@j~GV_DVSn4gj#$|1L z9Rq`+I!+nm7Lq3uNfLuajHWb{(o&63Ajd{he^#5SG)3o(R()AB*AaX{ib+etjbTg2 zE!o?$n9BGh<}x*dI}R@F?B{nhtvLWH1B?hrl_|>ehZAQWFm`uM0IGa*Z^>2odiU>% zI1#eZk;Ik^S-K@rWkc7sD|4SbkZjvvQD}@pEXr1!aQiS5yt$43C2pQDnf2+mjo6fS zHx9;F15^$eAyIh4$P1(-u%-a=6wy9$EO8xLiWQ!X3Y<QoUmfR1if7>LTGj^mE6)GE z@>}`C!-)nG2DrO}OHBfIS8vX-lQ!cgGQIplTs4X(`|x6i&4opB(dt*mp%@Wj@PMYO z<1055mTO-v#KPW@_W8+lyZCTOWr;nKOr&fe4%&r+WzkZ6xz(?EYGAl+9S710tCd)_ zIkU|((;Zc`U|=}=w$^1t$>4AU5MF*1IDSsz&Zf`pirG%U+;m{=U;Dw-{9py@*Z+9v zQt3zRTyRvFmauHN>6k!stI?WVo<g<N>BBZo?pHzbr$YWzx__^IUiM4*Y3_Lkkw>i| zn1QjHS9d9Yw7J?l%p$sZN36yPe+=eN!l$p<;_Gnu;Sv$w%o)pRq6o>CTzgAh6g!LP z`Obnf4}h(1cm9QiVDUz`q$dF`hvqORVM}p4b#JJw9V(i`puoVm+}gwzmTi6Zlo^v# zk))x^6xBh!yuQYktbpbLB_db8lfheI2K&+ywOm)Oc!T6<w5V3FrK#hlEL+Fll#;Px z1Lw#}8PZSH=iE>*q1=f^U0?GP8PV^pO`7x-Ay>nD=PLeZO2tb?yBXI!`w|BVMXmAC zKBonLI_`>DY^f`BgcAXhGic|gU$JNj3qtLJVOazlBq};E=QtN^i`=$87}Blu4`(nz z2t(AJZ8|`Cbb)~u)T=>4ZR%m6UenI>mBS{qFUSk-`tKXc7r_I#-*A~VOtQ3)-@dZm z3>`2TgOhV~y826JjEUUdO5Ya!G7Q;48Z@EQ61noKbbV148b?23cimZs{(eMC?*E(u zWIZU@``OyjOYX4cPtH;nj#_1|^Y?tT{tst|%bt|%o!&Ql02l9>+M63TwC`M5z#@3J z>aB>gCg>NSs{u(BbpATLD9|V(B&w!svBp}?g~t(_5Ai_{S;@%wzdVY@mcv_Qh2|;U z?So7MEsi&ad2`6&0EXj87=c7f0K8TToWZ4-P>WYwuy=)?AVY}3no~xPN+__ZCZ@iI z0okA2$hxRs9ImpycyyP+E(?1vB_~k41U3P!q&%xoQVAxMC0vyKQpo;3tBlZ!6GAU& z3e5LvG^{&7#Nw9p@SR`sXl0>I&!lfYdvACSjv}yjTJ67@S!=FF$y%YRxv07n>#Q=? z`XBrmz8!?B-!$o@YBuMJe%F=)2_h6l__F{tuwkoef64FFE9+m<O0j1T7wV3`fXAdv zZhJ$k&TBtIvCt<wyet9|zHPzCa*c7ac06CdekT<Y$FMPfsD+#O)g}u%Ad{O0#)e0F zfAZX!09Q7|=1n`WQ1$mS=hy+y*Q-LQZhCyJQb7KJv|CO%>9F9}&rLm%boD?GC`o}6 z#C(3IN%972Frwu)(%kc`!zplhAmflqWas8wi+$QYrYRYNqbw&h=SETrw6f?eKw!ta zyNp~Qov*Z?0sC6Xnd|5q4w+s56tb*W5(1R<cnxR!vbv9d>*0>8B7@(mhDf2Qy1)8` zem4~b_if6Iq4|T=4c9qP2Tut9xhG>s>wJ!J%-y>72RB2*-~6yph``7qScc}wMr-n* zvDko};-o~e<m?|iIbAGQGNTfzx+8LoSBX^z`}?U+a?&jV-2-tDR@bsq*TA9?tDA)I z*um~yg^cFjW#wN)Tf4ZkrY!J}bUGB3aH;#BTePIg@{}~jH#k*Eoy19u9#59UqB>$P zG3HO|5Cv&0+O1Z0CDa(s9tLTuk<oH03Hl~HPDB#7x1o6yJ1y%R{2|!#gN-$W5g;V9 zuTB^D%?9s<id2EsKv{WDGSf@Jo#oPmCv~IDus^T#RE|WqzZvQy2#p6W<8m{zsS9_L z`ygY^GVl^6!c;r61)TY&g<yueE9GG_a&`qDzR!A19h<NvwqHCu3M6y2KksBe&^%?V zc*;Des~fz6LOGi3mI{<Q4oWwvK`!SUb5Qp$hDK`NzI+{eYhIs|2YhB7e{)q{z6l+w zKDDpxkg8o84pbdnZ?_zNbx>-FyRK!2%&`+&(AkQt*BqsCMYf~d7Uh=beq?i_qv0@J zL7%eA$m`#=b^EC@g{)(GZ|j#OGsTig7<-lYr9_b-lH_ZO`s-*AqcC%Bk3yYZ9aA&6 zW0rmC{)xjBnN(YUZ+7Pvh~IPtMmXn#bh<o{7&8?L@7^FCdEtBQ{x(BVTQ@l-N$kEp zE$op#4WPbNrLSpk>Auf><#}QelJb)7E4IG3RsKuSYygpD<!jtwuf<&N=$Iyuy;TTx zbberUHs)7aX=AAeV>Xh-cur8C<(p>K(Wu$<MN4*i;k<B5xN&IC9EJ_{s|$x*aMye} z`d_&bHI6dM|3w?^kTDoeV{XNBmyqbVE)Q*De8=a`ToqF4rz#A%s7i&8DvUmg#8$3@ ze!Hz@aY?l$3}TSTDCr~%fg;&pv=RXFuyKU07f&D|QW~VFjRjRIH8H9(`Y9qIL{aGR zr4s6_JYvb>56MDXk!&Q|sCVBj=vrJ)jH4roCbOZ*1MKe~1xFi&Vx3|iczNSxX3{79 z@m8+fIoCRGpjoG8e%zZBnu(&Ddf+dGZV3&ob6WD*@}mj36U4Bwopb`LW6&@<wKboe zJoC_@wH4Qsb01M!t4pj_Jw8i)M93q$G)|*~IpI+*<X}02N@eHd?m8FI+bwTxWxOM} zBefMam&&99m3j9izWiEOldXd^k&~7)K|)e+-gy5wn0RtOI2x^){}%`Yz5e_j^G*gy z9qS<v)IWD!hnGNmHdWpH>}Of@0y60O$Q3OHj+Pw-;aiV_qb4!js)T<$#$rzZuxl!g zh8ghGT1)iX$%JlZpF4p>Saf<us^BgtZ{0MpkYYbYX~b8lRrsjDE{gdjqbfDNs)z^# z+{KU;3P!*^)(V&lYRu!rxUNraC$+Xe>dTd!`lPV~Yx>uK-^@e&69f%rSHu7n>mFYK z547@-?soA|g)zWTEA329*7sZ9X1I{UKdDJf+P9sy47RbBW#lgTuu4HxX&Lm~i1?`^ zk33A&(dlh6D8xFUbuTyv1)>%@j{gAu(9efi{ef2_-9o5Z7u?nG=P1l=xn2A%yk*{T zM`0iqW|DuL5coI<K4E*{4Nh3S`#`++Kz*<3Q^fecm5yeW53capo69EtnT)OUcgx*y zsoUG#bq(fv*S^4YV?EXmcFTq?|LO7Hwx5QhSkULNx9Y)ljXD5&pUTg@!i>PpvFQ(V zLS;h4b+I}y_EV@P;?XEg|H1az>=q{4LIH7f<ZouVP9SE8bVB*&f0ye-pKxj1Pem)f zZqXy>^p71lzzNOa8uHOOUziAk-6@j<uWO*8wV_JTOPEaQ9yAfY%tjmXfr_!ya|RCV z+lM%FPJd#Cpti>5Mm%|;Cb}&&zTXo1!D(^63|Ru9@li|l4@Qeo<@l%!F~7skBezaF zvG-`t*leCDpOv%6L>R13xr&FJ0}aihRDbby7HD(p%&UQ?CC<(x$}|-;4hhqQ)hu%$ zV83ubaPWb*Jsv|8VoebnitVcNq*{y9K=|idurjsQu<sv>Cdn7=cmj<>&9Kt8i*IUP zQvP0D7405}X4)*GbL9`?SJjS1;~!Qy#+!Quu~obE<BplzZE<${c-K#MHxU+6Tgp|G zq8Ipm=s|&<XnBCi=hv9^rZF>Dl%_$VR$-d2bOm#~JfE;tlm-<ALgW8MY8t{}?me=b zK69sN2T#b`A=>Htez>C@U0RCKF6M=DXE~GI={7~i8<GQSKH2Dv?1u)O`vNuIxI^rU zU5x1?#>D@(IA#U|S<wa7OwJ4OH1=YHMzGd|bR^M1(ke_r<v^qfYLyVTpLG}MOg4qG zXo)4snnX8{wqc2pSuIiDjG55P?<`b{YItl|fGA$u!sE59MHCB$q2<n$HjcwjHJSWW zjw7Ybx!m~2rLmH#GHV>d8dp{3zcdDh#A7zh@|0`wrF$z%_r|AO!z{Om$9kZx@zB;T zP1v)fbPc>>O<+mc^XM&K*fr>13imDb4wl`9x~69QI#L-u25pA>H%E_E{5p~mqQA8* zq4ZjA+5Sh_<gJNG2W{yy(tWmr%mD)wP+7(c(w?lGtUV<A4_?@3xgdx;Fbp5vJAdY= zr8NJV|J$o<U8OilqXTtXP>ZmlH#5uaXo1j$t-)9d={bhwOWCJ(^?8$5TFhEOoYW|h zNkMMlmovd4eI|?T$k|BHF^L8f`Z)Y-X#G+en`nIz#ELn_%*f)`zudT5k1en|0ZqKx z4miB#NblmHmHl<^kM)N7#bp<h_rSw1XGk*><5s<ua_pEcyi*{+Lk|K4(n2s(*Yo<9 z8<W9*31+*)5N~ieEc{5lF(Geuf1nU436PZ_A*yzA7MW+1_;)ui3OWFYUHPMKiCe1U z*sxu=VxFJ?`qEz@GMb$ZQ@qI;%#%B$ZeQ9={yf{~*R06tCKggviaU$5u*?qcuko!~ zNa^aRXl!JYOF1Rq8vm=qYi8jrH$yn3(dyMHbCe#P&E{b+v~KZ%MwvK8Y?kTuW&kc} zPVShKv&b?dn4^*FT`kzLbvP$qK!6_nq~v}-e%PI}pY%IOju8vbH_%ZhZp3(wkZo-0 z#Ux!WrJ!ol*(zPZB`J+<WW}cq#C$+2nPx6Q)WV|pA;3l}=~_G3vpnptMO^o(IYyR_ zRJ8Bv1B#iIDmH13pPk-kujQ+2QS0j4aT^ukAYGw^C?Z{6NZ4+YA=ce1RGDh0PdC-6 za*%Cr?1(&{G2$w*FIqEKo?6YcTA9i|=Qw$Ux{f+RX6^)3z|O(-2#5&fDiW<vthq>Q z(3-5+`3h|`V+tw*HHBeEk{e;9i5%>n8DsZu=8~<BSva>f3&=)X%C=|YM9%?X)?8fX zb5X+i=XOah?sKiKMXNVjclNm%Hd!R7v)>*20*xS;Lw>=MrY`f*-=64$H~UQe&G*v` zFekZolnZNM6%`oWAdXT~yvYZP=)n}JULseTbl0rt74jx)J_eLI9Lk?>QJUi>wNKJx zmZ1Afv4t=wZL^haaUZn%<+TN!TE8~H28Y~(?#;IHbGWl-FNv{(^3Cq84lu#3?k%=5 zbogZPygc>w*z0OW=Ns?oKv6GdZYF8aBkz)yz`jhQ8i=4%?F0=(YTB2uCDQ+PqBW$= z%!BGr9gM!0h(`qGFcnT6W)dDDUiL8@pQ=rHZ)Dec=YQ+y-AG8u;_TD&%<RlQ#!CD< zX5PXw?}<!Q-knjsCpZI3dZ(;TM4sgGxs&An-n#KI55PubzlX8-#q*5wvg23O8S4zF z@FkJ*^;Gg_7E3mp6U=9S({_t0`;S3wX8-2NvA6_WnFT`BkpX&mXUzMo)mNUtVqb_! zZoJ;)S4FOZ`$P|q$Nc@6VA1!*=G0KCS;$J)G_zekPLIRR=@l4=h6kAJ4vks7uLXXJ zT2CqwC<OsFI5aC*xdSB;i>uP@afi*^FJSf&G={dFA!Dv$;8b^TQ?=|CRtZ&)#-sH# z8uR$5rzRs)F+hAO-cS%bl~;_*!WHwTV#mJ-G4wGX=4TYm&bG0s2CNd57ng@3OMa@^ z{+*xmgya8iPOeV70H$4_&gIUI@xYxMoEzXVp4q*7s|!BLgMV04BwoN4J9%ac#_1sa z_~FXtMVTLAv}T=ZH&uGzJ?4qrM4pO%7{^%8DzkgTJ_riiY)}~TL1C+qeT$`F-D2Ba z`&iS-cYoSUCU5@fF4>FJa9Y^x7S0b9@O_^|Wv#o*+HYFix9glPOLtCl$9l&z8?XCF zY;pgd^wqcjPro8(!F>I4%56*Un1yd*C==DDZ*dboIA%P$+80U`xAF|tI=QkV6Wfw% zznE5Ph$^VEgGbUK#89l4E@n5HAPYiu^#XX|s(sc1O_c&Z0CN#*&iB^yc9=8Qe5wG} zyY1U!#_A(dMBL|3_x7p#B+h>;1FE*X`TqG3hXKXA_PzC1U5Iy?zHF$<1;sRn%w~PR zTWBYjH3l>lVhWo8JHhNTj>(1Kmxx?er*Jjcamq4K-q28P`BVG8uNDd+0=-zP)h`aM z*mcd!nVI=aO{yN6F{5UvEU7_Vr-i$<n%_>zt5@vUhZrpO=>T}$Zj(ad2`vdpJc_pC z-w6i%!fu`t%*Ex2t`~-H%DyqYAUKpV6P~7YFErqfgMU~CZ4E2PKv6Oc9Wgk!WdTeM z-f`ZK6T9lwQ-2(_7RvN?or95~JMfv|I4KkVtoz~}#2i;NC(#3M(eoyi#XJxZl^V#a za715oWkqbQx)y|2OFcghgRHDqH|Pe^c04KA+)xu&tM2XQEz~Ffc<e9vfcU%t`PbKg zZo~?XjgJ|ICOgVcbih}>)L4cL!V~sX=TfB1VzW9!&VWV)?4VNjT+_CF;FyAA-$uaX zS|ZI^+}R<Xns4Hk6lMNgpXyrQxi?C|3oHr)?4DknoX71ynhgmh=Q*j2f4RdP9%v?> zB%1rfcTt&oseUh2mFlfiRuCy!*a#sT|GX!M@%_Hwk}Elx%hFQbd;dr>P?}slH2s|a zInnz0X}|JkxudWgHAA<wZ*h|}KvDwu3WWk+Aq5<yB2}@Zi#MbXuc<PWm1+`9Y-m=Z zSyQg<J^{FGPNUOp16*IY0k|k$p~<BADrUFlhr}1B(S@e`b87pf4||TPgZ1+7zs`>T z<a?Y>vvOH<%Yh<#q0!&y4+gqhr0+G+%mE7v`Jpru%lJ$ks~$#!y!7{}#*8YpDkDlY zzE3aIa&Ry&z+l>}ogL!0`DSjAlkti9v1@(pQUPLL?X=w8Yl{tgHUx_IKB<ju4~K>1 zVn9@hR_Z~0$geTw17*_MH1NRll#@d@SL%Px?2=qqyMA1ui(^j1&fhi~HvYBK@D?{v zJAH7*Qhoo~-1+wfB2kaJGN-xDZ4%I!Qg>|ISz(3NnqrsM#hf??T;0Tp>s0-8NIMia zorNr&&M7{ksM(Y^+kM>b49#9mnYDATh#2aAvz1~Zo#)us2QPh6{M1_t=JXxdw~w83 zQp-~04am*(`8t|M2yuONp>b&C?nq5zSs4#KvU|ge-J)TxkUK2e9gUp-(xqD3mG=b= zyeNNRLh$)j372rTBk)-7#(4+K{Fa0U@&5+2pr(pndd!?An_GWA1s#h@A&?5Xyzb)o zM>w@k$t@IWw^Uj$2J#E2_FQ;A6Nl}(u`T{IUuNd9$#-AFve9&&U9OkhW<0&wN1{&0 z#!4J)!8BI2K^^jXpf|_}kGCwyqdaA)SWhYa*~t~@A15Xxew_YGJ#S)T#n-{Yz9tEX z_40o$J-lN^NvH^sxf_N0ah+k?DUoauomp(R%a8J32gudJ^?yG(&L&_JbK`Qw1tdO+ z@J)JL)@@YLqLumKLh*m}g26NJmnTSUP}FVQJ**hI?s;6qEz+uH?1s(U)x@ag_uQL2 zn~cR5pkXK#CihUcDQV)0U~7Ck;)6d4oSS?Bpz{`1D*=;|JY6_e9(Y9yYzVrBmy_5d zTmh&%fK{WBXf^iR9TsR<Fjp&Se<dEs(`s1NYOR<_?0N$q6=A7YWwNVOtY{Seri;kD zDyuq={Wd!;`&%q#$E?Alauae<__J%f)%d-`emD)IBK3Vv{UEa=FU&&dc0<Awyp=6m z^$;teS>=dT2QeJA8L3!^J>_=)6Z_ZeUw!_S1VrUe;7^E3!b+e2*Grd*%1#BmmG&sg z{iZ)LIepWQao4Yq-sH~RaxxEG%3f-~ugglwT8Fn|H*oRTe6s}FWhRowzv*EsCLxvo zGi}+W_L<)=p?a1kZ|l$b@cq0s&nq(n{Ua&|^&{H;7&tQjh*zN}T1bCURk0IwYRRSD z*U2&}`Khj*+glfU|7oGV%gtHcJa9`^*BRMckQvFy^RdS?6x>Poiyh(o%(!UXJv=$w zvHsTn<r;rlmIvn1w@e)#KW?r!#c;>BKIxAvtxXB=fA=DftQs6F`}xRVlgU`$9V3bW zMl^8(RWYZZvTs8}Ty;8SSVhl!)6Y5<3oMZO@Bvz0%<*Efo?-vNz`rR;1RmSL?_Y`F z7eWxy4*!vZaHF6d`R%Dlo#*<BYCqCo)OocTG9qoMx<u(Afpl<wT1uW|ORoF}e?UYy zN%ABcTueqdx#USUxDD}a{H#yn6-b_BOD_IEF2d=SJjn*PrGyH=_En<cN-d>S(j&3j z47&u79j*nbrG$cZ#09CPgn|JC45cfzlu|*!T)I+A3FWMNxB8;n1Zc|mti?l9BYvd6 z9;W%R{zjPQC;IF98~U4JnxE=#g=zgWey+cvzoowurs+k&8Tr$Flm9ZCImE5Zf8qZ9 zdJF>z{yTleR4niHtKhl*>a7^wN-X+)guLjR=uF9Qxot5IOSk57>`5<#(;KfSkupur z;I<zA>_<+Z<^f9WE(KC&8aJN)I4iSReVM2kGM)Z?=SEOEqpCYRD7%Ps`q$mSaUMuL zkWT-)8}O*z_%Gd2)yz@d%*oQvx!W@(UgBW9j-5PWxEn#oHkFQqJg%yPG$A_%9(ivT z_==iGF38ik_*!c&X8g$gfKj9?fgiaaz=l#L|Ac*CCPInvh{4@n9u!LPvBQtt57?e0 zNV8CCDuZbMvL|~qC&s%cqbhLXy}Njn%12RpP?V%<8^)cYBMlfFlSNZ%G(Bz<H<Cr! zgnaxec`N6fUj7EfIq$;{=mLD<SKzrH!1~hw^!E>F0GS#Ep)EG&?N|SQ>4l9g7MY?v z&ly=E)?+k53;rEj*5NlPOs?uoMXN<Ybr!$;2bwwZLWE@mpyop8z{nUuMo9H5a+aMH zB0WNr-|}b9vLYoA1f?sGLQuv+3KWslGfAk2RAlvAB>N?KEf1DTGr3KqP`jnWR7t$H zVDt^)0}UReApIa{mC>8gB{OD%K~JD7y%j2m#j5dyCCNglstVM&sz8!6zf2}c73BT6 zn)y(?LgmRSqCLt`G>)=U0P0DpoGbELz$KP!E0FV`nH9u){1S|3LHr9Pq^v)qc1>$w z@~hU^rmDI}WRLZU%zv(jo~ZaTmak*MJDm`HbaMJHDt_VQV<-4T$rn!0wo9^$<C!v| zS1%yL>w-LEnssgB{hX5igxr?vd512rK=LF1z?r8r^`xb`>a|4*Hwl%0PPhz!-7hir zy*_E7r62e~ba18@B6Vm-#=v=9x>|V>_bT|HR!)bIc@~uB&GDj*9RNA~4k=PBm)xRG z?7*+^&jljLdBU!)MvE}fNM-+NVPd+L^S!oV#t}s9&@d|c3mUWro|$Y#WDKjF5LQTe zsge%~iDE4DV0~zCja@o{f>30`T)2QNlxYfp&WQD6ao>|g$Q#E2g8K+y$nW`llKYey zPW9U`5^m%>@eEQo;#r&7(q%A+-&N#IHnmoX9k4$fIXKQnW)q_gGqY^8^ujj+5(FJ1 z8@Z2_QTG`0{mMxHV7<uDsK*zK>`m->VZ-8H!bE0?Y{l;d+8%?7hRZ`ncE3$&D}}AR z0>C49LE@%fw;-*G_<p#xU_Y+-0s?~A+Q&H>x)alSasB7GF@asyFuwAv$F<Oa@HMgE z@ksR3$%26;J;AyC46*1RfUKA@^Md;$Gt3o1Vh0@l{0lA~*~Fpm1Mh8ia$aQ4k;jvL zAezdLa2hwjU&X524vJu&I6h}@oLeY=!P2ee)miH-c~+R3U8o9Oqjo-=hoB!Qpx_D1 zH}!M^NIxdZOqoewwt(7{^gwY#lV4vjWv9}m!)MGu#K1OmL==SypA5j$&^fZ5vvryX z0tCtm*`nZ%*a+txo)5Ah<;OqWSn3Vcu$bGRMQZ`qCF<Eu*dkZkoca*JM027s6*InP zmx@SsRS|dM_Rof`D8ul(QStzS&Ih*oBR@lYZlmq-`0bD}ixd;a-Rh~+izUYI?piRP zck?iGkq}N2!Db+kvzHTR-e#2zh5kyy#!N++BO+-c5Js0^W{lZFJjHX$L$i;m$&hJh zWjNy6-Z4@ihLwsF&9w-s10#>ow*3^T?AD}q4aIQ57Xy<YDo21tlMVcGAmw{gBY}Yz zM!c*bt7Y9z%S$oK5_MAZRHpKxp9tJbWtk@2j|pvp>`NywG)rR20c%G>0jKeCX620H z4Pptu8$*n;bXqF`^slR?kr+F`$c^LR>*gHWB}_Q5S_=b@4;VRRl*RpDn4es5AJ?KD znAj%FC0i<l^KnA6`$<ABp0%8V&y^j(76Ri~0XS^sJ33|DuH$+~3@oB2%xmgF1V48$ zAr%=F0=~+!Zo>P<1S<f0@k$GY@D|?kL=9102$#y-16R(vnp0d13QRo3_LXY^^~RST zqjY+y27mi9wq*w&;``?*7Y9$s<O)GB(nO;TG`EQ)Q1SI{P!XFAmWjinBp@--yWY4Z zzu%`xXF^*)PlCi1CMDf*6?I)1@mEwpZA5?Ii=n<y-Iy%My9Hl~xf1erTo%(%>UeHp zNi)o%VXB@ju)mu+K5nhMY<hVz<Wi07t(;vOOoLHUPXK_b5SXguKr(4ma1ODkM8u>O zE+_!ZVN{H{d*e2(vK4uIdlE;m4+Pzw*pDV;>xqAxP%F10nfc13jA<MJin7r4#$%kz zVi*tI%2>COco!(Rs8a8{6VEbe*Q?>WDA?GI(xH7|Z3Wk3p=*RTKb)TAX`mLyPHuY3 zW9cjc5^kkf_1RJHOdZ`FV}Z5wBpoE3p6jUufa<BtIT}OhNl)F8)b8deN(uROlo7r= zuw!lRUfbOvS3bjmx*NOzpsXL!Zz1yEn|&RdcX<;u%wXGS*tgD%UZXOriJ)|Etghl+ zyr4MPeflbf&EDJyEo@WPXpI}qGsR2Q(F+7^I2>%I`jCa;6**C`3sSbT3rG^M*WvQq z|HW+1HG<unR|CC^XChV&Pc09v6<ZE<YewVoctTaeeL28A`QW}fSoa2b{KcuMq>`^2 z24a+U%ol~w)jW}o73ys$lO=fsfwGq@9B2`sqR*frUf05x=v813<5Um9oPEWIuG~4f zb|kcJT#?xtgGuVcIEN?mq}NLm9=Jt^TXmyDH#&syPO_%pSe)~O62^@V0V!AqM+^WG z@m3MLiIX_yoio6CS0)*KghqVhL~EyA>ZK)W<7A`t7E@_mS+uP(P2IR#kOpYkHLP1^ zf^je?NzWNwJr7{^{37N!Hjz%Og)L{!X>NVOLOj(h^eV>{2<drPfq0W5z<O6@YEgt1 ztna3^t~BVMJk-Y8lm4X(U%2p+l3jquMX%>#h@pYphQHq#Li1+;o@2zPRy;4;r6(wq z`%!fEOM_a@Hq)w0EOGx>Iw*V3>+Fyud&)g!aIbvAlM}gPx9*bi@O)P6J(e<#TJuT& zOVRL9@0W}};ftry-H^OmyD%cfo2`w0{J)R90{GT%;gcd6KOqhykPkd5D>*rUaI0y* zh*h*Y>3b(V?$w3fxpy(^7Y?9$-t+^96;>NiELst%$x@ajc+3f63IGSxeybpe?O;}~ z5E2x%&)&p_ej-X9YCxHM@zM6Fsm`BH*PS<cUTexoGg*yfRvIv#am%QaSX0OZf$FwM z1$mV_H#CG>T?G2zV*nV42oTTs1sB=KLyp}>yE7t@3jgKdfks=yB3ZML2}va;3J^Xi ze;~;m;+yic->_IKnIRo>qID;tz|%ueuo6zUBwSGKa-r(ouu<EnkTLN847s4H!p5o7 z0RJ<8|AfQd?^2F&lHZ9bgH=vq=JFu`mjYG<q-Jd!D-j|+#pT%47p(osIS6nWq2TiQ zE~cIv)}zJ?uJOHO@z!^3w9-92?4ks~b2*_N_6VIlNsz@HelV<zus}lu@!j8Ga3r{b zj(~<}w)!nrIuuuK%Rq{*1}gq+B<d<x`=zA34*gRMn#&HCM?LJNc3nDQV8EryeE1l6 zb1zJtH0$b(j0uHMM~i>b_!v)DixMQ%V!#zjRHecxvaUAs*l)qYau)^_n{HkS_={hP zinZ7i{L^^b5HA=0iwwO%{7dF&toJcBLjrW>%=x1EpAESU1;A2*Kx;WpTTaLhxb0xo z%!Ny^x^K71p8UoOp9oCSe9CNK#N0`+#meWLxuMpL>;aen&Sw*Drva8_`aJP=JU3{j z3KE-$dM7|y2yWo%f;I@KbG=&XDZfa)#`zdhs&Cu9%8S*~PfVlt0txzo)~z+7sf3i3 zUqIR>U7XoTvc#?lJl}>~J*#VD&!X0Q7bI+TLXDUBLEMfCM|ZK~wF9t|i<6j!Vj(#E zopOTllxoKMW5~vCzPlQmL`FSzaJ)K=Sk$a<UghCTKW{j!yf4_<+ZbwE#Li5cz9Dp& zMmr?;a$k*-u-rShu8VfBHmTk~i3i^TaU=|vct__{oxImOb2)e^#djC-k%IfIcPqwA z)4itw=t0nDG0pmCbiVFf)L8z@Pyk_OS&wrSBEcnVWjAzr$38YbEOG#|lD@mdlnZsG zlb^Q^@ptb+3t#7_VX{VGY$e-VSCXn;F4YBN8?P$(4YV&gz4NM1{mOgw5O^Dg1!dCE zk;V}}!j?r}NgEh;nc0?XNX4O{1fvP1|HIzBCzL{azn|ZPr2(t=%iT&ma;$$6vBN-& zSjFfuK_%C?vsS9haRKBi_2yy(@17>!J<3%C)DGu&Bu#PP#GJd=$WwXnQ<F9j%_~_o z3As>cS%F=E)>*yyP&>PzJ<807pXt(!(v=ou8@FY$!`jOg3Kpj%7zoX()b8Qkb1z7O zHNDjm*FqwNxB<O8OvIF6zAphFV^V6FG*+GU6wThpBALp#ZWAnnZPAd1iBHR1Pa;<8 zka+B&r<Ng%9y|L5b~#5O%MqfOC8^OC0fV}nBbeRsec3l!DBD&PS~IZ5ZC&*nkpAqr z)?1NQI;0#)$mOLiEoajCu}`9V6Fqry00J#JvmOGNGotWaLYvPmgb)F)XG|@L=H|w% zv0FCa+D85c)IW@h|1uska53cLJx0x3$kRPiPIICsGiIQ$CNRM|XX)nvFqY$e&KOF^ zDPJ|LfC@w#2EctG!u<5A>NBb~sUVV}Q>_A~r75M{=uJFoGpu8vLR!*y#{zmzPj($a zGDT!P0gG9W5LR;>;ZBOLlNz&t2PL4rzE)?}@yFA-0p{{ahJjZ2d3djGbz07d^Hix0 zaVbJuA9g)8v%i*ch}Uo^s_EL`7s#B4bjTUg-+Ueh40CgX-&W?OR_hTfo({fpgMLn7 zO2@_~E?&dMrjo&~<n2m5vW#4T6jZFd3~Sys-iO`>7%XP(y1Hu&ee`yXk6gz!@b-sv z&X}=;?M-*5pa*c{<uiB?m_a;Ag9kXpca3-GgqxUQyjTVg_MB>-)?D0IfYMy~4cmMC z{#P`vta<SZgYa7H==(*pADuXf!Je$$_UCPn-o#Ox*MfcJ7WUT_>t4g%%L*R{j>uY+ ze;sU)AqZpW;!gu+easBNGQO4yC1er|Z&-4=a;@64Ytu`R8o`Qn#iGTbwS;HHJmMZv zY<cMCe}w8qQH$3?(GLh{^v~Uh0zkY5Tw~-qpOe80j}92uhQgZg7HXl%*WC6S?FUNB zT^w@~`yD@s&f5?nQqdi%U=z5HG2&TleSzDxJNVOh;0edR^+SlMCLU$-u|QBgkMRZl zdwgz;OOubau~@h=KBo!F3&`LGyR?hvm6dcz<TUjN)oe(nTjBFTc|Y|*8Q?we)WI4P zZS9g3{}D(4z}%-Y%&fEWCj~EWy*MDfKe}y3^bM}t7^npY+bNS}=7f5C=!8kx6gH80 zd#FT>RSmlwrAVR>fI!&RPRpX`ph}bF?sZaI-eo7SHy+oj$SvMU|A&Bp<n;5--mmF> z%HMec`48aIlD$J*`M8aB|MTDWEh>e9HW)yFe_Z-@s%DaZ4EhY2pNhv*5Xla&rxXsf z1jOQ~(x_YmSHwZ|3De`CqA8<=qaxyi7mQIRA&Zm?6e~@4z@VlSn+|sJgOQP-q=!o( zijGHQiB^ncDW5tUEXu?<o^=*BzeLZJ*xs1^PJ7H_TE2wc&a(pY3_=_(YV=gNv!OFI zFJoXzLT`*4TZ|5AmRM@8AFReo8jbL&8c&1E_~2O%i|imqLVP)I(L-V&yaZsWM&++n zsYnr%qE`5&GS(?t4qg^xXU<}w#UQT5q$xru^p{*rx+?2!v&K%l?K5IW^Dw{ZeAFJw zdorx|rbee6y1)+0P5Iv;{r3Cm==5z+l<3gph86ZY-&MV)>J~L?wCfab3^?B(ARdpm zm~s&iKs!kA_u&xGDhm#k9003vmlZ_GvkFGcjS9}*T!q0<NrjJ`_zFRnbrEwXV26rj zx`ZRM)8*2Y$xTaz88ua23gq_`E0fJk2ycP>umlNJAXAMX#flU&5iV1<N(IuCiI%BM zxm?AHkSv+9lG`CiJLG6Fa*ev<H2MgqEU$BS&8m3NVTszRHnL5yQoO6?EZ8AsRtcrd zw`z*yu0R2j+$iTtrpPQ+?l^<#;pJ;ZJ7;iE*&O{ippvQJ#hVXbe*6Up6eL)PP+`JF zh!iDSj978vB}kM+n+{!i^cgT@#Fz<FW(97+k`-$<Y&|_farPIb$&e-Y+iccuwg00D z(jpNU?6eDuq)k+bQzL}WUi<8}$7yFAb<74Et-`R9CSf96F(peS#m(WsK|qRky7cJR zXTYK*?Li<LL=oJj5%bl!Z$^>SX*i|ZYDaV=4m$Chk}F?<JVgpESL}llWy+Pht3s7( zm5GNMwdysfvqGaCdVSHPMXP3?9CX1slr7S2H6kMk@Ls0#F1qBhE3UdG3+=jWH;vk6 zyU%X9Eyo=nP5bV5kN<-(E!%OQqT-Jc8Hy!R86#IHd#O_Qs@EE=&dAur)Xdz%Qg7v~ zyWMM<A%Ooq#If!XuC1NDgQE+Vu3Wou>(0r&Cp<|<4@moB|A@S**3CzT@mR;cox`|K zfzH$j{`NS@-S77I^jV5m-qa7{?=Nj|%fY52ZU2oo);vwd-#UF?m;1CI7tZz%$nNN9 z`|NCb@6KbCt!?LtdQupF*2jMF=QeHUKGo-`HUixs5H%6;L=e;u;Y0)?URCeo9rq3g zj$Clb71un)hNpRkXL)XH=j&^))AwmTI<N~idk$Q&Wizf%KgZo(RqyQj+71?O+H&+r z7gznu+!)t&ueA58iw<jV-??XN*Z(<&j>3Yp%W+dY<q&({XO2z%YS&m^X!|%ftS8-_ zJv)nia9YD^m4upkC?Bkt()L8I6TNwM6by8Ov;;OV#)-gO^y$s<WXFg)X`prBmqany zFrY?C;8h(Vi2^t=Bp0J2Oc)Q=bSba^E=QDCjHw~O;L5UGA<3XJpHM7TbW{WgX7q{` zc_QeDp9Ni7WJw4C0l}DqQCp%TL54IbktQs3BxF>zBrN(uVPOGWnX`5sBt{Vbzy|n; z3`NE<NkK;?wn<D!aDzz+%Wnzl?S_v@Mn<rV<y@m=Ehe|5QaBFtU7?A$qoOYZ0000= CRdxsf literal 0 HcmV?d00001 diff --git a/assets/fonts/ibm-plex/IBMPlexSans-Bold.woff2 b/assets/fonts/ibm-plex/IBMPlexSans-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..953f94fa178e8ca69a8894c2c9d1325b3a15c150 GIT binary patch literal 22832 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/ibm-plex/IBMPlexSans-Medium.woff2 b/assets/fonts/ibm-plex/IBMPlexSans-Medium.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..6d5527eef47ace16b08cf9932050b83858995e62 GIT binary patch literal 24184 zcmY(p18ipB_dWd7wlTGB+qP}nnzmEhwx8OzZQI6_Q%>9ee16~LP2QE0+;eYoPxiTc z-R!egwx^;53jhT04+dTU)c>x#Pygl!|9ke|{r?}hY<RyqE$~B3AdLi7)r8e_03m+R zG%)#KDDbeqI-q}LDZzyh06;iE$-pAGz=<G244@+H;eS!#8BTM~FL?}1>~H`AU1NLy z`V+>+>>!GW-<M>>Mi?IfkmhisufM+qX)9t1<(;gl1EcUh987*Y5GSudPghT-?JT-X z^U=?7)HUsGr0k#Cv*{ivu74zovRS=ujATvcRu-rr?Di@#*C-y&c2e3Zm=7$MYi@De zH(B=<RIUb9`9%wu#KV3NMv8yTouaH=`Q09<k%$zYe-gg7;w6bi?guG5e;J`6RJD`P zRqp?ShEHf8Hb>fhj*u~%$dsdiccc07L;;tUTVt0#mY8YUMc>sBv^0w4Sxfq1@kPkk z3R|yxC|YtYlE?R5kNEDoSA7EAQNjH5sURqpG6?PycgFac@5+#t$k8baUJZIt3i7>$ zzOS(<BBdJmHc8tc+*6YrYOu9rVX(Cmkikkot`vqGqDcn52I8On6aCaq$ZLL4B_914 zr9zDg8gjFoOFxuhX~$5kbH3v$w+%kspgB5P&+i?GxZWGEXojkUS_ZP3!e)-FLkFy? z@$z3}9U0g+USQ<jAIiV_*$4yA*I9=p?IiG%rwaJ=3rPwToZb}AGls=(+z8LtDPl*T zHE+C=b5L$$*N@A6e8E~Z!|y?A*o*7;L76ZxlMF5x78E8#*vK?$?hjoIWAE$Y-xm1j z@Xw!*drSdgH{tB1^tvoD8*|UJVERGPF?{Rs7kRn}Et$C=@eDPNTl7~qw?!RQJ06!_ zFVFbttl?|x4SmU60<SoJDDa5T$V4H?NnWUZmjZjf4QNmbG9a$0e)2a*4gF~<L31{7 zuGGjSLJV>Gqi#puh>32k$xHqe823T?uxW4ktN~~Y!jqETHz1{4E>^=KCP#2$oKyv( z1oe4|uBGKWlUt%RAX-M7+uySrNPkZ`Z>EwMeiZOni0{u<P9%$RwzUSkY5~4M_5<jb zcE5jE@W{OkBQ#~F4(ciBK~95St06=nF~KlJ6Yva}vKXNn>GYfRUkAKD%HN{(=1;Q1 z>dok<<>Iaf5}THsK}@7bFVLrXwb{mD<}cAB)Kn>bbje88DG<=}OWl0B+*I+tx!&<? z1c(jR-<`E-KtQIQ2mY|MD~cB?g3yq=``#<fdgJ_qgm3`LpcEq;APt02unsYvgh2-K zo_@=%Y~s*qKw>Bqk^WS6TYVF`E_`)jc4xT#V{P$8XJH8i#~}Ow4q5`9)T%&MZ3%#f zB!&Vl*##+iBA^DQqz(9oxPc_8ru-y6qX{qSEwZYOS;4S(<-6;f-nH6UV)#gP-O7C9 zKH(6eMl%zknX$^-U5;5o;-~+Nu$ctCX%PC(XMY!Pfd&a{M-k_K3B%tP2_M4R7xzLj z08Ixp-?7K$J7RW=)XpEU`k8QvXa&g^b`%be7!G}DiOZl+3qPQeN!<atWh-ws?q=r_ zZgEXxm_^WwkV8?*+Irr@%;|iKvB@o=NvZsAz8q_&FRmv{L$%z^RM<5oK{P<}L4J43 zz3^*<>wHSux9li2!kCGGg3NMK3n2ku5nw_yGK`woM0K`9{GRbpVyK9S3bI*v6YzS) z(422SJjKp6HQ9yk^;!9eg+MpI;X>pd#0WrpOBnw8<wtata)vb=vfB3pAad7gBb1>$ zi0)eBeT9Kw=-=T;kVnqzM}UDe7RbN3GA@GUR{PP@*CLj@GcXDbQyh5Jtt#o52$d=1 zY+>al8mN6<quhRCq=9|fJ(l-_r1t*S?xMD@P7^p|_>E(&R_jLUP1-gUZ*pbFb~zfP z1+dj<1y40-1(mwdzW3gl@!14T@>wxOLbNEyq+-&5l~zA{ka3Q=^I98W1W1vHk_<6f zgQh5CC_3<%$li13{%9v}(2FNC*-}kgR;?4{`eZ;m5!^6{YoOgj#)uUgC?3{C9v&uA zAwFGwLSCkJ;ED!Z^MZsh#}?f>@r+2b70PK*^q{_nHaM@*h^fD_7d{9(lN}<d-}8^x zDaR+Tm|<p}KLtikGii9~an|tXj^B5sn1-+89J)RC3;`3Y1dj>6+ozD49d4VAZ&^8q zT$CHu(Z<2=ZcqMb)|VkE6kMHDBvFdnN7xJ`%mLm!=l7(HmV7}p0Lo^heOE*<#y{EL zZf@SmC_V}5=w2jqB$M|58K!!+rr=pt!j5pkt@)67Ohm5zeh{c1T9vxUs`3a^HC#T9 zo~AbHt;WQ}QQ#Y7Nz*c1J1YHtJEWGe7W);+!wL|!a*~r0k8$^dc}{Oi^`B3nP{trT zclGPeg9kE0c?wh=+L%mQW~ofJc9{0rqDd|7)&1(6E22V_&_u{<e<@M+y^R@}F`)tA z5%J(!XN1JVv>(xC4FP{vz|RRQZ|{8sPheg->OG|(Mp0=A*6Cn~#kFO!M4BIts}Gk) zj6^#)8mbDESxBbfL};{CvfQ*Jip(f<G>Xg&7hR4?ykM^}@i3=B2H^)Kh3D%Fj4`wf z$W{D{(8*K^sVb0>T}!+~7CDTr-=r9yn&RhP&Fw2O*bi?x^wJL5iW*Nn5QlS`(N6>N zoMTnlE)&o!zg-8(uyyTVYWn-AMOyVrP)oHc)eg#)ffS6TwyvlMkfNBZ=00@kG}_gx zHmRLqrxvzV2t={^Sv8y>H0`~sWh>XGy~NR(EIo8Jo36!0K0odK&|8f?ST$@t=WDgN z=G5Sk(?AFan+{DigY99&)mI*2sk30mC+tvlXLUtDcw@9-=%q|WP0Hlj#Dmp;pGeWy zFH^2~NL}g4ZK!nRy3-$Vrw=-tGOLyy>7A~ha#9zkbaF1W$dTi5zuAY@kn|hhZ6^%N zWyZOBjWOU=JpF>5UAY-s+or>eR@X9KvHEKvHn$hQAf>(-IIZPD%b7ezTa8W|(uK9+ zRI3Mh-fSr~H9k2(OXZ+5Qy5oRQ&bU{BS+eB19aTT#)YSUZtPzx@baC-2b$(=43GqH znpW}t7hG$P(SPsNJ&q#AZiz8(;8N8?q%k3_Gr?bjblzrf9SVL^)Z_e3CXO6oHaMb? z8?6w`^p~g-5b6UVm6*}3f9198e&j9Mn7goCJY&IXBt1cW)DKl}FfR|+Ovp!G$+4z% zVE!<8RBY0fsbhH3z59N$Q2QJ@O1k<gp$#}Pg<rvQnI6+HrNF;(^q*xGWOW=M$t5PI zC#3}zgf2`n!*WLt!2Opxo>>%p-<O~R#>S49VV{I2)^szM!JAH_<Mr}?VQ?|ifb);R z(G@oV$5V{TdIm6bXQq3+lOyJ$ds<C+Z~w|Uf+}mn<q1M?IiJ`X>7>F4e($_t+Ydlc z#Dh`+${+zudz_|dlCwQ>t172N<zn%<27%D(2Th0Z5FXK27;U0fdW_vUR<=SxZBjNY zGv2PK->v#I6enq@7HRhA<#w61s$%2>gMOMQ40Da<n0GRir-gyVK6%>^ft0#LsR|6$ ze-WKny|C?F=pR$pBc!X4Dvv7UllurhW%w>BsI_Q1m|asFBe|RV<=J0<({7V(PJgGe zF+<u5{+9S4X^YdI;n)I9e?Vsl!!aq|*LDsaY2l@b4|nD`gm;D=Z(i#eRgOuK8_v5a zVPgI$%65DPDD9#a6g<QC+q-YT7mzid@v&vWL4L_UE*t53e09$kCJhOtY9kbPDYYA7 zg^32PMqlq`;eg>Au?%6e&B3w8mP!R?7046M)e9;|@UxBTZHa-?84)AWjgg<V19$K0 z8;Nr^yTcO}%V&C9JEtaT$!jlt!U2}<%`g?cCu2st5EEJMY-)OSc4n2+`Y`fyTsSWf zv%jbw%Z65*OdoDYJ|suFm^QMz^ELq#?BcoYT}Gg%(FU1>P|TldV2ZUG_BL;b^y)KM zcuMdRUF~YTw&XvU)<o0YCd`DB@RWxHnc6xu;Unu5q9|JiG!#bvIBg&;n^-ays&^KA z>QFn`MVh7Q#9_$jm%3;>aAO%q#MIz&jB1u<pRr_3HNIrRIz|0z^k9{LYM*z5Q4R<4 z$2PsWhCcNZo$4T)G`Ft|S<xQ{ObWc|AUNa4(-w1%{2DM3-{b+xUc|M|x0hQ|JvMn6 zlF0A;#c3~xx0K@?p*MDQaL|YNGRcW&Nu1|91sxUWks3Wl#T?>dEzc!VvSwJ{)N&5O zPk!2O2ZoGJYW&a^`fcyZ@#`nJVgmb^TxaV#0;ka`AJwpG3?`%A)Z|6z73u6VdDoCl zgT+qYQqMc0(-ws{1ogRI?c|r4VueSI!A$I77^|76L{wNou}!1R5c!3O{9p`ECSI~H z?mDMLm%9>I@U4kljcT~)9y2c-(<kNVZ2`7aP4OsE>3VLcY>=!@QGyRSCzkV$6M(t( zX6DFe4+zWhaZ)<WbGnsxPnZV3<FaAnl|ShQAmI(iDWG5=!0*J2YSSy|_&qZ?`9nnE z{hKjqolmLT%lT*~oi{+lV0hS1iuzSW6>Slg2$d{CFG2~n;jn^?rbN9~&k%#=iFI8` zS&k#RMZM`uCx@e7J3ZEIMIMc4TwZ?{Sw@P;lv>mV1vX3=Fi@_F#RPF@f!z-P7zsJR zsEi1+E5vTGo;)dI09X2@Fyd9v>hS7wUz<g!p`T%8VONZ`12yq^_0ZyS;j1vmhw@AV z;Xgu8rdZG4XhFNt3hdX?%>Y}D@>&x*Q82F`SG~sg_Odm__<#&BbPi->ddNUbB2TAM z5CBX<n(-m%D8N7%qZ~J*^3-|Hx>Khq_thk_8}0*I7LlD>7jypv!QZD8SA|#GqA#s@ zt_q-=jDeOU0-nnC^!Efrn}&z>%QQ2!aJw%G%6GtlDO|9>&1uiYlZJLW)x|kyDn|)l zVVfuVGpi?%o}qVdgQA+64m5eVeHwb+aM8Khve~^^W)fhIDJ~~Xzo~CV(nsFnYl|{m zEEb^^!#JithRZa^l-n;20QEA~WP`~y9Z-sYk6*{WRISfNTxPl?quA5uQah(9A$1^W zB}v1`xe}~JzwVJf(tQPsD8lMD?%O5X7aWX_>dssTnR>jVf2$k7uiqML#}^9Nkg7tT z6Ltg`1IA6h`QRF`Zzcmwrkl1~bCNd#%=jmZ6#C7&6$}%enTQD=4WaU&;tO3TwK+uJ zjXx=&wxKM};)iR%Q0<Y((Q2d$P|a1;E+*Y1<XQeItX68*E@ifNPCOAl+hmsK4MeiR z_LQd%nu=w`kccIj9eq<)sBtSxZtApk&SZ#++VgSjWUr;o%|h5^{y6LBc4o-II~(wJ z78s5PPar}S8I;1EAkroaKTZTy5tGs8t`uA8)L6Tc*s0ca@A_TqQ}tz2ud{OHqw09I zW63y^&h#2OA(vC;r4grgV5(b<GJl8&r&FBgM7{Q+Gz7&v33o6hA|s3p{=Y%Oa2Uv` zvNpfG7?*2eW@ln!;oywn&SALS=mf2_PLfArGfq_`m8OOeY6`Tb2ZV!XiU0JGZa3IH zO|kVPsUU8s^+Oi~4H6k#WNCDHfQ^bSt<=*r!3fOi3@c0XxJH&3r6{vF#ne>ZA1&<N z_-V8Hy<y5jw%Ab%IfnFlvkIEx?UK<WebS`ne2LuU&iIEpqS){MqCnAH*&Kbo`<+c` zVIoohLyAhx66KUM6s46JrICZVn1pD%+2fSN@P~=e(!qK)@&_QCtE1i9s~G7F3mF|X zEiExMSyL(IM4Vhhn%x~ip8jU}fQDv)O@7Hua1~KQ51N=tf1$-eV?em#VQ}P@za?yG zDWh$avuwQ5Vse4ul!+3H6Y2J2^~@y2MB7bPanHzWUq*@QiR@D94*a<p6l_rFFnzn` zIaBlWaiZyEv>hn~Sp=Fm1UXNL5wX1CzuiA8&$xd!^n?e_Cy0v*M#2M8=cT5#7Z`^L zLFrm==s$V}6<jisqqD=?O4T+!C1BkOz&<<YAHTH2%0$v)7u{5lM(kU;ccN;4<_Zz9 zm+$s}TD>b7Zrz?$-rWi_pu6CYIpeq0c7pO>;SDRZb1<{BwnbFA*_-m-eEBnf6b}Ya z-gzRg;Z)YII3&TxX1;Uz##`^+-Z||FA8DDNXk_SW>5Sa!EAA21X0^oH<LNqn45*2E zH=&@nMjVk09+QOYQ4`A*xuX)2ODDN~{V{`+QIA!%{QP6&a1`z!-8E$4wUu&}n8;Oe zb81v$XY$-q{J#t^{(*yrg<+J4DzEJQb#T}&1;o+j_J$Z4Nz%$>jov`&7~CFQyj=R3 zO7(AHvI%JelgSSfLV?U=Ws17m>!rT(tThv>y>psRZc$d^Q$JYve-4!ruf)m|0z4Kl zhQ$%HiSvIMU9a(Zhukt?f>07z#6_qM?^CT2M+{X_%MiO#&XMAg=BYCiO_P4uR7*(V zRgbj+u)T@hU>Ptj4{iQf`zzp<W5p#-SM5r}Hdw&?f7vd(-P}VWgFr$3T26E$vHmM} z;XavCozop;f=6}nDeyBPUSNa;kgD}bqWRy)`$JVoby=#p6gS^Rj#`2uUG(c_{fLw3 zL`J$mt13l9v{``H?i|<M_49i1&p5iorzR)LwCL0z?v~|Ks(-1F%Dl)R^W+sC_Na8` z|Hx{N(3Fw8vdqrb(u~C`@436g8BuKUzhAOmmoHBRCXiYlhOw63TtTN=BO<)#J(xv= z0>#xDq#rhrQ4R!fm-K&Lo(gsJh)IJMT^3QqiwO8dJ_tZl>j#Lih?7()7c6BZF69J4 zFv5ECJdF|llYf~8X|4ir>0;OX#bvIgal?)y`?J=b%Kx5$kJB5*(pXB_kPP*xx_+U1 zRz?AJ1pQ8?P852Y{rbK91y;y=d&LF+Wrde?!N<2>CM+Zh0AK|30|7Xg5(k2oH(ik_ z$8_I_HZ`B=vwSM8i8k%`oS+m|RA_T(r%j!>bZmPbEuIm=9ES}G_a`vnORY&CRR4Z1 zx#4~TGdSB)GYlc#M2<`{A!lgNLZyaNi?ip*Ef#k1!`(r;%|;<kRIv%i>>5{!vsmrE zo}JZyqh5sl4X0yh?_!rifN^kodfLL?(j0%>abR9MGBl)ni~<mXz7)<OBaUSeQ)nnh zSFv9XXu<_FdrS^L>uyT+l<w!w2Qv``MSXePZ6=HyN-^P%0sc=5*e+$Wf+8N_4=g<G z>iDsOWFTRh-3uI>Dg481mKTN-?+&%+j_Y3V6LS2aYCr2-PXyyecT^qau2!Snh>dOC z(i-78G+08^6Q#xc=6(tla%F_0A!thBq>gcPQBaV^`Ly4gB2&3n`vR!e?XjqDC~~X1 zb^$>wEH06dsqghwLOmug_@GVceD@oDcdv{f<RQ^Qf)@S;cC2ZlGaAJa`hr`|f%~!N z7orJAx|S5;PrgTKn=d+gBj<areelZ?RR!LoYS&w>fdz_A*k&Dcab<M+^Kg(?$bVj( zP$0k&016JRG;oVPRr26UUdf^yT7(<BZnh+2FIaqD(9?|FIP_koVC*E_kWn^{Y_1yj z{dN3@N(rMw3UO1qNwtn&1auYR>u6b+-s}DLY9CKW(TNy7B2U(i-0~?2#f-^)gGMhB zeN0AtnbL`-9ahr`199MUgNsjapGc?}8Wg`1=}%HGt|(Vs-P33qoo<5-eVy-zTNyUq zAjm73u$1NPd<U^gU~X_Sc4=VuSrh=Hh-NxLNkwEO_`;qu+?7X*hA5p7Jq9u_-$YA` z2=hPsV+RpISJFzFpsm;ctgryjLKaz;(oirEzE@2F*ma^CoBkh`Ak+02(x*<udnKeu zVLJ|e&>J?I3%YEbD-yHE`IKxVBe;UYb5kvP#_cX3{;e1U>t^`Zl#>sBA&E?d79ts8 zE*W4ikq%Y$TQ||CrcJc%64Re_txF=h=S{lhCV;{?l1NIQxx#`ZxiRfuIpX8#3w0m5 zZ}B+iz|PLd%G7P{ykRqB;OYrf+T;0dpbJotWok|d^&KZ%hzLr(0(F4a`d}UGDRX&X zv@YSP{lsXa^22D%HL*@K3IiG_j<g4FnWqcLO=V}JbX!rIoS1I8L8HQXYXrF5^6&Xx z{)%gzEoIQyA>;RLt?xsS-u3Yr+1VTK6{T#hdoqAl3F&>N{}C6TbIu$2KZ0aq&2FPU zwX^o>`H1_;Ka3`s(`wZG>=eA6;N<@w(9qD5S8VYin_9oy?+a)Ve!GJoD4o3isIZ6I zA{{^`5W(-{H1vIwtHU=0{vY`(TVCrz13u!v%iIy5jtQfRsIn?Rt+US@VyCs>Bxs=3 zw|f{s{?YOO#uMm|<Jau!zV&zB+-4m!2AKx}8bqlA@7p99#tx`sT)G<};*d@fOuM5I zmM&Orb^5j9#(K@{!Bys|vM%`_cectyFow}~5`7#~6nUTEvy2{oR{_}9DuHah)q71E zQ~{D^;zAd2CqGjItYVj+tqF}$*I~P1pt0sCePof1!A_~Wkq4WV+nnK+!j^_u6MK81 zJ~`^KOR>ceVjay*n7g@JISAx3@PSH8!<p-eBib=9fXETDjmSZ1V2;PA_SxZEC>%rQ zaU<>T_N%-P0<ZIhh50RJ&|gAC$k5V4G^sMBDi?1lWV=D!1eFDMwf*Bwc~-|HCk7L? z6gp4}j`^1dyG8dF-FHX4;wB4lO?v+vh+49VbT=?0tjrk3<EYg97UZFy?MR*n!1)@U zk&aHhm#;wW7(0Spa55d&bp~FR5+4oA$d0jGzCyX(NCe$?dlAjD4;e+f=&>8mXR4c{ zCoop1d$u5h)^MlZ73i0z*eBEd(Q{2on)@0lIs{vM;aD5jm>sSSaEiISdb?RNL}1+h z`LlM?Yi3FAsWO~7bKW`6Mat4F*OeaMp6h^kx}L|$mZ5&Tah-1Lmd4?|7au`9Wug?B z81bNbF!_{5)JoPRIs6b4{1AKe6&FutL%xZjTcmq|TkT+e>ATDg-XGOi*O}H;q|Gsp z_u!!O$k+Z&Ey_QUefAvji0?45e_z_e*S=&av*786X-WeDllE4P0;+;*8LCs8$@v=1 zbBP4oCn-IeK3pPrs-<q7*}Pw)b0EZQS9(Dd004S<L4OUv@p2a~etRjlp(KgmPZUZ; zk6YYvz12D+MtBNas0`e$)21RbvmLf0=%Q*zc-C=NvhQ4S_k;jD0NfmA$uF1Z+oD<G zmH`{4=BF*$Hr9lA0P|}kar6jE&;pkPo5P@4&inAw1Cv$%Vc1K(9`F<fbJ9fd0XxhX zJ8a;;egA)4pcH`IakTjlJ|BWLbr<*tuXyHMX3E@Zc}989DN80DYWMjq?*{gYpEaYv ztcF$F8(9L}=w@bDBe56A*~CnTK8}RSQq7MXHD=9=cr#gT!4}8cVuQP4-zD_kK2<W5 z6V4Bf7Vx~9fW&v1cctgj?mqqdy-72S-QkZr9!YhKI8MhT%1zX@gtx2iA$U9_2cnp> zjHnWRi+_f0(^=<3hlt_5c7?`hReeQc#fSuo<~l7**Lj;kr@#F=w0b%2yQ@~CTJnAo z$qS)DB%K(_J40-$^f9bAVyKL@CUN=UO1<k9k{2bVJ<a{QFiA1+Tq%FbMybRK*ZzZ? z0!laVRt|d6adLYtP9-8ouj;t=97o9u>4SqKMg|(9>NgyIQY<OIsjkhozg7IA0AhF- zNutwI6-u-z*S|7cR$-afimaR0Uba`{%!Q8_KIDwa#mmdfn79?^nYZIU_Y;ZlseCUh zQmlvs))@m2=Rdqz;(VazzingnKBd+nU3o#q2|}guo{8Nblvd3n#2;{U!?&&F@I>=_ zMkb@qQZQYxgH5@mQO@t!*AU~im1(gDuP}D<cM$eGlkf)^;U7qnxU|Ih9Xub<dm|uk z*E5KJ92Ns@^<eBQTI95Eel%D=HG)@LbX{+$?7WU%x@uqHt9n}awra;)nf6>!W5bE> zzmM-PCX6t|!D*Y%VCPGlaZ(>{)kr`aFRA(EdYeu(VpOg2P~&nG+9dqW6;Zwv?rsi( z$=)bnPzqG71BV&xkZO`AiO>4<>Jpt`yZ~-~v#C~mr#nn_r|~E9Dti@sRf}ny$`OCa zXKd9vEVB>D%H*|iK=afJdxImFT=Ox8d5D`Km(1{7LxUos2^>)U?)5eFqcyG~6TdUI ze4e4J!|(fBeaFj~ltO9Kc4->hYf;GF>&N?W#3JD`;Ogr*kFai#rM=-ZCT9fAqYacm zF5V>^x;u@LX6<nk`&myi?kg6BF~*>TZ&-U>gEaf#C~?ep0s=uO>gl(O(;M&?1kfDl z(aoCUZmAn&n8comIuRU@#s`h`hEFahA_zZN9R=HKeoR#cncbfqNT=ge&D?sN)dZX` z%GT14Rgv9#m}#rS_se=ry1Xj&$9qLz2%eGJuX=Ucs{Z)O<|VSD;GTZeP8b<E;-chG z;5lh#o#nxr!(wPZPnvp@SqS}C!vCF$b5#A0`f$I~zF!@?S|@}`%c`UEgMjrgP+7y} zJ**hs7=AA@C79${5NnChqQIjFwGt&HkSJbN^h5SnN@0f8lDitdWsL8b)*udoEl9^N zr;iNqbM`V>?WvoSBPd3PT$%>J^OkON!(TNH+_Hn1Pu}=B`z%NEoU}&mO+=gz!Rxks z{5G1A7Ig<h`Q^<^G?YL=p2e>~U@RF3WS5Ef%KJBI>eoE+lt(BPd=c;Cg|uXA$>Kjr zTQz`Kj_OP(@)@hn4&ojKnNH!)$a3Gk{1xtZG9DAL^kEmWJiD<Rbd~~qmi1!E!MCXv zDKzhvvsj^sl9eX9&CTqoJKrrO{CO87PCBGqHje=xD_?S)akqe3MMPWp!VyP&d;gf! zlmm5YjrhBj{g04ZkQUFuv^N6%GNMKOg^5^2gU*eR3`($qkyUnQImwM%FF~*44VoF& z;U9Xs`|Xd!1jRW2Z>3o-iz?@AChzBi9KrJ~^d`{VC1L_uXs$SV`EIh<b<=O(BPzM- zCIijglz&B{TIZvu?s2gKo`71wI@{bX9YGqef_+OSa#G2?(gTTPJf0!|I4YSNE})Ok zfX~WWk>KlfQHo+g<~V-BZ!;XfPhM+m3eDj`px_Y}%a9Arqva^6j(>wgHGUhQ+>|&m z!gzZ$I#}A2q~~n^kYB?m`rxe&@&GcYC46^M%<0q*38v8~peEdzq-+aEon6o6F&LKw zcBs~Ji;}$>=t>!DxDgz#KDTK3b+iG|#C$c^6TrB`%DU3Z<JY!R>e>HC-`Y~zQrI%- z%g>(=X*R9tGGjJ{^;!$j4SF}LJ8sXy3vnhZlPPzJ>DPVtR?GLr-rXzbcTw9@3c*U= z$MeRk%#5S09{QD{>#IyRN7wp^B*y|$=YG1wLwuBg&Dlp^iI2Xmjl)W6l^O&`r^KRD z1GznQ6vMg9ov&`sVMAOjw-`X0Bx@i?sETZbY}yQ8i`}P{>FTEB>hfzIfI<IDq)d)y zqw(To%2KIZDiD=CD1{nrx?CDM`DC!VQKzV-RjO6C$&Oxu)_oO&-Jx@0oW||D`-sX! zy*iv|c|hW<uGr0a?Vr|`CHRYr@sm7SXB;y<j=m(|V56CBYM@u}#v?goY>P5G^}+ap zP-2;`%YZt$6Y{2vP5ZI;lkReeY3`A4PBBl6J<CrOH~~@Al}o_DJl3~y@yr(EXIs*v z_-;h_Gm8lQduh0{m~y{@a)}@2dq#PW|Cuj89NqMzh~|HSfBHT8rMhz}N(T4waSuH6 z!?ywqG`u-yqEA+z(GHG=cz)e9Iww+A(Gg*k@m}-ov@75L?dVn;Q=4*=k@XnX6;8Hl z8rah4(3J_+&y|;dzmEe#23XgpF}^|W8dzhDdw=HUPRThvJUxi5`ugWS;SkH&ZT}I2 zmv2R@O(WgIM$vR}^&TSa!x(ZV{de#g`SG9V14H7URGdCMKi6{Q9|~wWQvaMmm7Q^? za_xB8Bav1nsrQN}p)TmGdyahX9qm13{slH4+6lq>Rjj5|edR&p9&znt`+RnBy_beY zJM&uQry7<vnM2dY`(V7}q4Zmau<D1EgGLTrI<PgI@*>qtRnNUE{W(%YE)Lsff}_T8 z9toSA6qq10$u496Ezps=mn^hlINmrshh;RNfG1yVW>{`{7J+YR{)e(p5_P^dcjLh` zY@)4<uF(fcMZ&^YZRYRXD7f$p?u|Z_&==9yf;&i6lmRK_yc-v3!LlMc?es%(!>w{3 z!Z4M%iK66puPj5?dlnvl1-}U%s(3N+=h9B4tqAZldKB%}{@l`Bs1}cF457Q~-KkfV znN@`IF}P&VxBNNJ{yWhhsni{notqEL>?1IN>Yu}Xiqs{S*JTfMy(Zo;@x6{F1(i60 zA|w3M#RT#z%TIQ@_-Z*{T42Od;3bst=gF120#RwjSr~$b`e6Dh(IZtBt9w5O8Wi5U z+o^XO6y{f-1OEvsV(m+Q_TiJ)MGU*?oEACn$<G<;H&>m392Ku5|K+D0CyE!L^slyA zhTZNgWg%mlwQY5A54?}(-w9eE^XyRa6oP-w7Bf{5bcUiv2T@83Ney&520fO{?Neax ztDy%6XT304V|`P@5WOxCV32|x24lJV-{qLly19h&KyerkkqF%nKkg-tB|oly?a$R# z2cC9yOb~rsc>4_igaN`J5a7_LRBV_Eh_-Cy3eJ4m!%m@rMnifHP8l_bq@alrI>(N4 zLoYjueSam6>NtdR;h&)+2#0Z?=OIKMHdEQ&U?IZK@?b0kSobE7Kwx(xhQ}4fUdymF zQu&G&J2V)Bcsmng#V{+RoXq!TXWy~<jP}~&hkJYL-JQzhzUT?PvOljce<?Uf{XJ%5 zg@-|dkn6aO?*{SM`~jUFJiGg`_7rc~KYb>id)C%6F_9(zSmAevc$4`>scCNm`;`3s zNuU`TP1mPYDAbd-5eU2#l;0)gcfbnqMi({)bz+6#0+R#lU&V?Ha?RM<Y2Xj|g(x}m z1MD0}$bEnkV7iYHGY<CNmyUCnyXQfI?sR5q0|UjwS}KToFeJ9U0FAA{q$LhRPWYqT zA}O;$XIUGFQ$Z-uhzsBqE4;f9k5DPv#YS5<>6n;tsy!Aaz#x$d5{(!$Dx+P>#p#E} z7L*ts&mf{miX6JB5E~R<N!rvtUR_%M+BAX>mRgWu$F>y(nV9gF^!VBpVgvVm`HG=D zdb|W@K{2Gy75)IX@&w)Vx%&=UXz~fde!UIv4{-c`a?SJQzzRe{YU31C<rC!};{W-| z*0N&no^_T@&jH3QvKZLZ@4jF7MzjSW!s{gQKGY<;{Bc&i0TWe<XA#D;u$b~Tr9@g9 zky<X(sCE>~DqMkmQu&8dFG!&ro)GUl+PF%oZZRUMa9nLko>?_m0y6-wp#Qkt=xLRx zcxR<@i2j>pfzlIR?L73%fTm%O!1qV<97s4D@9&6Wf;kw2TBCS)Il4~^%=SD&o};$2 z^!T-xxw^@@Tf-&|N58g@+~4({+37%5>CE!y^Y5xZzL4v3+>K^a^sxGN`)e?-e_;LJ z_Jg0}5e%zFKU>__VEePyzV}@or*W2m^0_SDi^DK4?gSsL43AGA{=0Q&rugr*_Lnw2 z12!EI2hnqaA8rO-FFqW(G2wLvy<T5-^SAE2H}MW9lw+#eu)#5SSIHNZGSI9JISQJr z?Ks^zA3;lLMq#t?616MKqh2$Rka8`ZRfjT@dP}UOG|0a`9ws173E<%*>9s*;QWQ|P zH9W`c#FUjRvYp2#f1wf*VDFQ9_e+8tv4H59%uzU{R1BSmD4uvf%f>COvZm4FdDt5C zk@cIIq2jLKEO_C#3*n?P({<XW)pdwH(c&L3j(TSP5Q5DmI6`fGNPky=7*B$(JshE> zBxPr4P|%3S=M7~*o+P`SI_)#2fN7Pk$%1ZFi4tr{o)B<@Yl{`0$oKiJDKaUt1EjZ5 z5mI3#C<1|wuT~#xIwB=+-+5Z4DyNGoB|6WbMQLOWK^l-P^rFk65SKH+<dB>09@M=s z)$%%YxD7-unAS}M$1_(|RA}dB89R*$qms@@>w~NfK<<}ZXXXmwR<kZ1W~}yqNb-pW zfZDX1sO#axW`cuBnylLS)keRw_O&u@JECNmECMyEc01E_T2jwbPVBRc&`VgLw}RL3 zCF971Z4w)fS|IHG#_nfqr<+=n@axz=ntfWf?Mk^E;K}eX{UK-aD!AqcCZ9)J8>!A- z)C9RI+m1cFdSeIFB%c=-PGXunrb~txCbwM1Nvow0tMzYNi&0rp`BmaklkirAJ8Mbh zu10?lR*ey0dDHi|&~_hUwv|6<$QU3Gbh|h{jY^I`ux;%5rmec0B$&t4nYGZgpyo8r z=(sb<otFM&_rwW#l)eVJ++1?T88VPB-jMpLSOSxu<ItU~K#+v2syi`OOLCngIF_Q# zAkH8WN)Jyg+6OAYQZ8uk<~G3PQVvEi6pxmyB{6Dx6lqskAXXH8B2kdmpWp0Or)3+= zsSJ|bk%;eQgf<QJ5_cFMD~Eg>ftDHr@sCy~CpVipi@8IRV{-~qIn$w={YH^#UrnI~ zlruD?x<4c&E2;70m$4Ra7<6ua+5=SEh-0k=eYk?Ba5a1A^Qnq-C=!|XjvNDre=H~d zMX8!R&!AiTeGd2AGFjK^Xy7T_xPha{nl1w$YmHvu&^3_XQmB%ex?BgnJGn4$Gj1Wo zJBDMSK4VI~Zd1h1{h*v%<|PXv7pOXP)lqhyB|l7%nohk0TdZ4)bj~A0!qLKh8fnM* zOzMQ7`NFq#y4{SwmLOX#M-8Ycl_$ZGuxfE=xYyof=4L5uNe7?Vi&u{>fiM=(a&jl9 zt=Xow+#T?%MPHiIuD7ECa#U<Y@|b|u`y?LS!Wm4Q(F%qBRl;4f%Mw&W8YsUHt0@N` z=mkILYMx9@Cvw=8$+F(bg|+oU=M}HZNXpok`#r<NWwES_+Yl_&!;*bdO^{PVi2T^O z|F7SJal8r>7d<uG7Udz)sa985fO(Rxj#}8|deCNiAklQMl3zV0PCk^tA-oD(_38&9 ztoBXjswu^TfOz^${YhS8KZ<fpE2<hc)4qBmsPcld7%?OjdIzOi&-)p_s&F-*zc#a@ z0t{AXg5FpwPSCQ^NLzLNin8FdRPkJ)>$!<ls1c#ptwj-eLKm(A+qAbV(Ac${HN!_j zWKCwHc0L{z;SWDp(|E6TwmRNlPN-EHrOlaMG#OBNekybz{#R;X<kKwVTV~{Zm2(ZL z%*5QB-9#;OHRQ#UCStv);5e(Wl;JOfnh%Ex-MJe|-(5Ya#ixE9CVVUPlGWfZ?B^1z z$isRwBC$X<1`sYK?gx~?1tSP@GPMj{fAG9>s`KLb`C6C5pY^6z;pNw)!}@ZJBb_Z; zS$*fZGl{)4rG}yfzXwG}iN{C$bmD}fYf+KvBjxl+ua(UIT(Z%+=DlxKTSxF8(;)P> z-fWc};Q%@S<spo)5}CiC(<V$VVpn#j>UD0$&&8juk?3Rjdi!Jj(y*v1Oy%qn+A^{G zoKY)h<hKnPZ&9o!56XQT+5QmqtS9QPaOXWciO~*+_2!pO&<862I=L5N@Z^Nd+t5+3 z#-_o4E*HwR3=6w?B>Wmaht(GjW6JKVcb<4i-MivwfBzj2z?xR!@%RzjzfoH*^vXwj zH!jSkU;Ow!GAR9L_~%&3@?Sv_Y}4WygUdcVCeROuPUB#`E8dw(&Gzy8>ZDzXdOBHB z*@HzoI1?2B)EZsuxYqsj8I#3`7-VteJ^In0v%&`0A0rC0M^w@glnj^5?Jk0LHIDoG zIumIz_h)OgM3%luG!{*ddr(JlTXb4~vPz6v$O6SqHXXP@t~qW}UqARVEYs7-L`sS2 z+PJ6q36^Lj*Fb8_H(Am!1^8FmWN(hJlzbl3MMT3FlM{#1=<={k-hNj?g@teNb?{Mu zs5G--@p*O%Zgiu!K}py`4CO1w2g1|`N^wkP=*kh@9scERVk<~f86)HfdS)^Xhc7tM zs2VrYH7?91Kvm4kgb+-K3DIH88*C9S5Eq06<LMiW>4_dPYfI<{IHVwmf!z}wOw3AP z7*?#E9vf;<9MlF{T{o)fIPcYx$B1NNl)F@Q0%IOz)OgW?y{3B33Eacbh&_HWhv^%` zLy;NPy_Bp3KI6m&vKy}3RD~0sIP_agcNaN$+d5`M#f*8P%igWXH7+aX$F!C^`oUGC zgh&?hj52D}S=9-Tf>oCOf?nG;Bli2Xax+YG4v|`KetEy4591G8Qx^MyxQSrB#13fI zmXt3?@?9H|*sGBAD<h{{wgnt*MYvoQ>C3Bso#?0a7=x$kGe4<Bw=ubHJLFoWp;b=3 zp?wUeyNlVs`C`QmdbyinvkgM_<MORM9zBI|N)^PP_>nRij9rSwsWahrDNL@JnUg-7 zs?pi=9*Mkb-z~+!Wb^n`&<+|!Y|Si62a(?zXS^6Cs4ZrF?(;)FKwZ&^IA@y&g{14* zg<veg@TOS^G=gJ#r<}+sf|c5>e`Dn{sTK^EqmsAnZGMXssV@y8o1om<a$7jE3w*B+ zM@6Y8`tkkh1SLnn%1#+HiMc7$yxSFmM1grwwy}@n_yx|wxhEA&ZjA<NT+E|_^{DP+ zYr&UoST7K3ImVUK!$=KpCRpXVI^duY<W}YadGrb49BfKi<4$1<PcE_%h)p{5JjggJ zn|&Z_>lAzqzd%{wJ5=TiEGTOn+*L0n0ZNC-KoZPRDuWAJ)|*S4kgXXx870DvUJ?h% zNKqD!7x(LT`vlR1TH_UA!nTysbdcByvng&dE|=p;Z_SYC8g1Y3e94JOl{qSuRIr!H zPg_YkJKvg3BLly1$J4nj02lapvS>OJ%eizkrrIr0=3NRl%G7Opdh}q?()R`et$%Ux z+MGiIXO-7f;1`R7S%ImI4uMF}Y3otAoVH#Q^`+jtZ2U1pDQryH6?Vo6<4}Ydk8`cV z33k$xE#9SL>AwbJ;M(ZL9QvT5F$1X7d2tL5k~3PE*iy+wKiXgzB8iU>flLhJTBl!G z%v#Gzc%e~rThE>*S~T_K@Me=V?x~5+bU+mrge@K`RWo6Qp8CnkT(>Yk8_4<Xp4wEY zNdl5`vcV9Zj7TAl0*;t7BNkj8>_pO%&e%J_bJG20gW3u^!R`SLrpVF8L+$8|oAP!( zkp{W8xapXBa*h|q(~94wfv|izsN@uX_QXWglCHrxr+9gA!jHK&0~?m4j+bLM&{{$r z_#sKlm?OxVQ9l<O!}3pM%AJLkN10jh`_dbqv>04KY0?JSYlIFA*u-j6XkE{hJ#Akx zmL*?*dkh32Fh-(^=q3w@jk;GXf>xgG-wff_MSf2_0c{WQ&<t)XoyOYU)K2UzY6Y`Q zCKEofq3K8dPGqyrqtO(^Gmuo@=cj>`{(a7RO%D8SlU2`#9DqV!zROt<J_Ye4g(J-N zV_0&5F%fA;+lO>V-r?^jSl5Qr>xWFVr5Z!C<c8D8jPH<PgQw;S-6}1rrlR#AqoA2k zG<KC}ePD!O-4de^l6GXaQ;fZHVvNtZ5g_FVabrZL0&$-%q;5CqoMX(RV7Iz3IE!%8 zA!BfLO%UgV4?5mFB#X`yjiH<W19FzgYptV^9+?(;DXH5mJ&IKbQyn0=Gjgu2gXA(w zzyIyQDF;t2dG%Ox@*s+9UFtRS?arhld)E^!QFUxvQ4B*n(lBfWQJp=Euz`Jr9`F4q zk1F!LQh_u*Ku@Glea`emjSG(ljku}X*>h+4XqC;(H#-im0Ouq{hZxYUsa}EB``aaz z&1aEEmea5mt{Po`97ASS8cq^tFDZU8#O0b2VYil+V601v#t;$mswK(qn0B|39xtBX zba84MV#BaSS5G*oqu0@-s}ViRJ(wJ+sn&tHday7{N#LIdAD9Zw9idqv!cxT~t@jy~ zPKxiZkN2^??W~MI%oCKpn;+7S1(gIvdnXs_W!jA#7{90#xE4K!p$u<Ek;cuh_oG`q ziQ6HEv*07IhxUZHg4h95*|T=fdP@vbC>yp{3)<q!7t3#y#dt1*MdXS$Pixl(->{fg zef%8dv0_UPZhr$j&QjWvmmE^gzNy81WkxH@HoZ~>WT}ST)BrQ7?r6xXLMx9C)j>!Z z=IyoUFf8V#8@aQ}aFEg`n)pOf0<Fi8LD(Cvj3CKUg`3#v0vRl|=`|)hLDk6#QAf;q zBVaqEN|&NJe~qk^YMs{<1+X1kx&`KrP|UzEYE|DeAhh5HgvIH|QO#Vy#Le#^59qNA zO1KU&f?s8Oj2~}0rRX~CO9e)!)*u0vaPCeg<03hjwiXD!7^Ub(0w%_ygjKZKBivB> z5R+)P@JR7Pmfi;bylsH6i7cD8?9WUKj|6THR(LOBp%`$ZbR+lWI3>{WF{}u>mZ0!; z5Gor|k-Z^q{mNWvx+kTrm%UA{m{to%Jp<x4%k0g~ZFgH0+LnK^DIRHGW>6}-GU|#t zb`Eg`4~)L!hO}~}-E|JdSGbcYT}7$%hS8$40kylh?ZUVJ+_2Zyb}^gD(mWIDK=u}; zrR6Iozi|SEUSCP9O$mZ&@M?ifxcI1p`q5l{pJY!h7z1S>W{&-dY$o&yp^3NJXtd(; zqaRr;_=pHY6H_I@<tIwWJZ=N0iW~#*605|vF(E;XZIsRxqt|9dsDG=oDqjqym5|h& zxtaR?;6y2p9VXh?GBK2LZ--wRk+9bGymm90;ROo$;v_MiI0M7I&kj@Q_h;@<>4hll ze}s)##89g=q9=e*a9Bw}P5e57={AlV$h+}(q0*J^0wG)vE@;Rqcqnwep7b)Xr2m7D zk*gwO)GiuG@A4@l7HG|tNsd?XdPtn{G%ta`P5e6{Q&t_i2VjQ~XZd(8?}VJz(nN;j z5RHepRSvXHe_Az85uv8+^%vp#DwE}Ct6nC#4x=lTO!O;Rl9eK$NvBb^H<JBpb=fOY zwgF9g-cB8=$v$C|Xu}vQ-Vu9IsdCHxIzz}5Z{H}fC<v0%@#*|&@thf~45ph^ceV%L z;nniHWO1i(*z}<|Dg6hjPrRbj^esZ~>xuJ3dbI`BkB&CzGVvMXxc+<NoQuigareit zx8KMypFPtUG%Lrk#y4`F<X2ZmGw_$BHy%AcEvBp{tB#$+tG+xz#EI@$;`hyAHL9v< z7Mm*aS2zw<)lomZ_p6cqV&Cj~kj8M?Z(@*gy-SA3eiQAeef3`b#FUHUwxTSFK{3?! zM$KNUfb!154PqWQ3np3h=O)`hM^6vk3fdK0s4WGV5EDT>@TB?m{X?a9HyJwRUf3LP zDCh3Wr3#vW%J#TR=|fUqSL3xKm~m9z*W%SMN>!C&Er&kUhGKB&%ZjA-Mm&oipUt|0 zRMF2OkZ^v{AhS#%L2gqFUiXRTj{g`Rr<Z`4+iP(u=N7AT*^GhFtiOcK@@51%dRxYV z<7=Cg+t8?-EBmc}PqOEak^r|PS3`5522^D!)wXBhw0h--)Zx-Cqt$dyVWU)gua-Ay z*IVXQkpH4j^~n=;5U{AJ_d%!0T~tN6h*lGeJAmU7DKsWwKDPn&FJKzwDEY|^tEB4( zv*%o0AY?BcSRwXVFh_QZR=xYLrA~Sdl=YTAj3(U+cy4Uao5Tg&RMl`4C&a*)v^X_6 za6x$bsI^hRVa?Yb<#r$<{Pu+QPwbwviQ&!oMZw2mj=#3f%OWFF66~8@gfd~*dupR9 z#z1%m7GfrcoPkBrEn-1xhyp$LsraXZ5k9*AVdf^86f;w<N=1#X`|+|Eyv+}<0*(^* zudBv1pYK~#wc`z8SR>fFSB)30ql;Mu@uMF&<~`XLSfs2FZynWFVheg>`}s`3p!f-& z5#?~?ci=$~!l*K;PzjFivUtKgRq;VmX&rhM8*aWuWTbeOB1vtC-sAX8#8|HZcNvs_ z8P$~p)9J^gqd!91IKF=aCxrt2t_V~XPK@eaK|)_C&X8Y|#(iYm;Hh7<<ml|Tsu@M? zeo7k`zny(;m3AqzFgVX686=wa9gug&MCHzlLJ%P#d^jA!#TNptRPxPMQ;dcr&&Q~N z^1fH5vRQ*oJze~`QI0_9FCJP<Kfvnu{V~TCmlw|j%D4DtMpuBh3mlh@AG3i|gIlu( zGfg-4TqhNFjbRp_KC6O0o}zXY4&`aCG!F`^F>XXY+q~=HH{){k#Lzu!7|3Fegu`R; zb8-cER?#4oS2%N`1jBqLv|sCt=Ke&r)&)&9S%HOo5(4F9c$Wb@0~CjKt?5u?Py{1M zx24p6MU``4+Bi_UH78m#^U$OZ0lW|L)*rUo765%d>fTQ|%otZ_%TA?NScW+B41D{r z+oVtSY3BXV`<k@YDB>QU<B&e_2#}PwZRuMvunC1u6$!FVqg-Qs@*L@Q85+$aAUoD! z?sEXKGM?XwQV>@hMG|Ny;`}Zyj2}#!TQ`2jfb%5dVMEpk2tzRa6_ggT!fsR5v}U}$ zx}@6rvth|_<%$gVFX%XNu$Tfz6>5}7kqMUM<YIAn#-KX;Z721;9S$!Kdg(aTsWv#m z$S)&3rh0i1XJWOhf{&UUL!3jAud+*cSJN*Q73L{g{YU%X*}R)d#|NPoy_va6oL7I> z9>0izbr8MUUx%l{mOf#pp0T)?BfN(@A7Psw;%H)t-vgZJ5jR~|yW)SZvbj&L4h1t- zIM_a}rZLLp9~qsn+g{{Y9EyDc_N#X|D#qIRdFdKmwEe|-o7=UyNq*%HJ&E2#ZLxVc z{FZWyfKh+gP)`62uuUa$GkCKD?3@X^0z3(`@@-(kN|)Y1U1icWpM_}`ZW}2s-ZAr; zcZjyy<O_O*h;9^vO7EOIKvI>L3a0fHvs%C#*qT2n&4e^kPID0vwBT6?Ws5YXyr>rX zk_ju8Xglb#%bQDza_t)x&=s1kJhQA-aE2KmeUjW2n=df@I>oE$D&k;4DnH67FFSB% zXWNiG@acthQ_%~divX)h#Xqv~yngCOU0y0cwAB%N+U&IjCzA;LafG?t+x)qpw{g7_ zjOMN}i*#Q^h`*}sQFZs>wfh2TJ61Tb(M$1_%XNpy{9W~~eD=5I-g)cDQozGsS1=&J z|L?A!oi5wU$}TrlsPjiilmAX^(Ml-V6|lzvJ|I9X(4@qhXJ`MpmcdC9ICXU6r0vt` zaO>nNvTaaeC?Ma9KR<O+?fr3PFVFDee|My|9yf&hb{`)P`E0UKcqwT=*IOU)^BR8F zT*>7~hyD#Kl6!dd;!22#D4B_7icauaC#<Jlxz0~W@igby)qQ%Dg{pn(S8C<ug-Vr} zeXG1;PDzRCA3twvbEv(NYBB+M?t*V?A?}hinB-8N#LbePolYrLRWH{at8x<bp1)-8 z_E`5bMm0<yb;q2LoZ^_r(UmPa(zfB#I+x^mO`C;CUv$6Jbi6C&N@>hj6F@J<y}dMa zyt`C*R@7&69Ix-Z=3aD%7cfN?(<)BW>Em(8L6EC8tj%le$teWg-};*2H~Xe4nok7X z<Hr@JCPF40!RkBM=Ok<wV%T({sP1LmPHLGmz#6CQl5I&*-0T`zF9TyS@N<u6*lr4H zR0<OVz5Qa<3YC=o39vIuM+iLE(bhf5#!RgnfN$%<sP_Jc#l@N#>^$1CC3W0IDGHyD z=M-{PYl1UoSt58?q~az0N@Hi<q1`0>;5LUDaV8$lnc><b^~urfc9`llD0F)5rwU~V zy#fWlsg?Tln_GdoPlPCGpDWe}v5HVAOzj9HAm{gC4WE{2>UhjJcBRAZ(e{1<Z(5>v z+szm3Lu0ySSy+v@!HXCx5;Ex+N%yA_r~w&6#;FZB!oj~#=x8mN!NyS84fy<-lV+dR z|6c&b9XjGDUh}L4T91Ar+v#C-Yk6AcM7y(#sfUfAx;2Q&1yCKj_-|Gj>o1YxpZtz| z7$pV=6JS5Y%!8l9a*q93^(Sm)8o3C_!jQ;CBuo}il)7?B5gC)k1zSJ2|9?DP*Ne!) zkTZ{-tzp(=F1br4qO-Zerc;)e8|U?P7389cnX6xrbAfEOpgFV8C2Qw*!gGLow0vVx z0y>8SHlDJ*-`F?5rXUBM0E=CO)ei5hb;PI6UKW?cTQo-#NdogiN@OKTH%|17;OIO& zUD8}cLgxUaBA*51ph*QsM|h?ABRwP1_f<ePk3La|zb-)49MD@L=Q|zTkwDWnTf9dm z%Vf=C@h%?@k_QC_AB!y`gXkOpBvbN$9CRKg`%x9t=X<p2Fqc3>1q)Jzh#bKAlBZ%( zMajF@d4y6?4f~*V5xvoFo5xsRZZk7CSbIZF|JoLEj=-`i`#fx0glq^|aX+~~^430E zW1)2+`w%RB@!8(9cK4V&OZ4}d-ZOUBm@A#JI7I!5I>v0HSJB%TW3(}9s8s$JZ2xDc zQwKg@kNd?1i2e@JZi?~JWOmJ8(Sl;1xb*`AX{S$>{n>@A>kno-rw3E}`>V3mRM8^$ z--GV-!uoFp>rt}>CRULbf{=(-fzWtC#@kRKzI)e*iSNEcY>s5oA~5aG?f!J*KV4ka zTLpW%wkoVBen!B?lKG&~Pc7wCq3vSrf`>)iMI?A|?~j_?4i)Pmu2^W$rsY#rEI!}h zFOqXYD2GHde~`xMCl|Eu`AL)0p)LlP=T0q}7P<uouS(Q8(LcKSj$??=D<6XFXkzWW zj|9K3J1(vi3#!BtL9kLJu5zj0_}(<XfiFm{-stsh@96OD*yyRQ{lMefak_8+z*{4; zPSt9rltblrvW&J`t{iuWRY`lGsygD4nFJ_P(ScGdWgAtGl~Hh=qecp%T*CgDCae?) zs-z`?0M!V^6@r=)sh}!*8dFW7sOg3Do{U{gx`sl%B9h22-t;*J{;d#+1RyO*#a3~V z{$f%3<+KTDm(z;`N46?|uz_Qs_0;!Ll&N%TqI{|jCFxA?CfNF|{Rs(P$+Y!K7CJ(n zun^c(#{~DWg%;4HM38ey`11q*ylK-Us&W;y&+1bW8w%3lcTxCEwB)+Q;;r?#(PuH2 zb9+3sW(8#>T~41vp{xS8ZOETOTx&7Q#^(z{qqw}wBg-+P7YETm)e<y%V+26AFV0`n z8kU;FnYVrpCGE)Wm!dtJnQ={X%R&E=I7fVH^W3;COu&=P&W6?DKiq=*&^)B{80Vr7 zbZZhg<+xXb#kkqMsOb6REtTvoWi*qUzL%cpwyB+dr9GUw<12C>_JSG<XLYpEjun%8 zvxYTTL~*c<x;;N2uN^s8aqf%SFQ9y8Uc&8)+pxf%+QD;`=g!rhySbbV-mbij`oy_@ z<Iv-M|Hl4J?@#6?t6){#e&kcK5O8=lg&KRLA!6q9DB0G`3S~^8Ef$&A@m{iV`t-k( zH@tIhc-u)onM^;G8cKekQ_jiGWKw79fp5q{APWPM$qq0ZcJ-i1rsU$d_pm9c9F}MH zpPgCp5C%r6n%vdZ)lX_`-%L<ZC}_SJ%_p(Bx^U#Ew8Df_FfQBT;{x#b$d;(0-j>SD z@Y0Ts`lS__E#9X47ARzAUg-b6A@Sc=X12`*eZPN<$Iu_DJ=D4J*cEA&bDg^F-Q7s& zUx><5AMvH$DYlq|BDKesq58}GCZC@F#{5@?+GACVEz%mNRH#q}irC2O6Qd*@JuMGe z=htrjk60=Rw16gSt4!pOu2)gmQe|l==FZ|9{*#CasX})7iKGy=!tS0CF-2y$XH=Q0 z;3d@<J-EW4G&XAxwBi@9%R<rHg@;TN0(`oOFBCZ2I1Wd&gk_Wk?A#I^B%}b7k||K8 zenKUeVGu~9RUHC6YUz<>oy(4xkGPJQXP#8d-bzc@M4NtEG4o*<_Dt9(fF-{?_AZQH z4$i_8H_xj3A<)@J$RT{k!12FBwymE-e{zw?y>F>Ye&nd=%6B(f#9GjS=Y5dWc-uk{ zTYYY=0MylzbU_Lm6c+C-g(OQu;xf+D@&!rz-Wt)xWpx^EkAYU7Ei;t+3vw;t@mEyP z|0m$fuPvlf$89C<bf#jW1WbVq$11t7a?@Br?(zxgdk1<mRKfK6715c~*HG5J?kwY7 z)kmpI?A5Z_EpmNX8zk+vmV=!&3MHuJvmB?O+Di^WwUJY(=cxBRygN>aP&(f;<jnV- zl%hE=nR3R<Ir4enn)JAl3j5r6icB|SSmmgNdj*Ts$*J1>0hwu7?W%_Rz<X@?n|*3A zQ=&2Gp!6aVHLh!!v;N&tL{zLbY8B}PAR=z!GDrCR7A3+muN_4ilj5V*r(&CsjLS*V zDgk6{QA?*eT+%5mN@J;?)0tEi;HwM`O5sGaxE^_Zxta^n>fS$VmT0GMwbuJxr9SF? zrDEAKB4rN&xLxr><q0HH=`ov<5_EDEq`;UiJECI}{;4ExXcQXs4MI`9uAEOsFGFAh z$cM_TQZ?5+ayY`9WB*Q(4-P-_pYN&~ObJ^*<Aga^tl<yc*&9WN_5SJ^U?$!$$?b|= zp~Kn0+`Y;!Y+L&J`lhSOlRMod{gH*_bd*ZS>^77Cs+?D@-`LZGga~BR%@>#%jD;h) zlgAwu%>QJrd#<)NjcqT;7d!ODP!*Fr*SRp-pY13}eB56~p5t12&5Mfc6;(l9n6vBS zw*Jz#%~p-g7TbBOz%Ud01#UgGeCLIE$|P)P$?}cR!9rM7(!k&hb^KIdZ~u7zULaHx z3AHbo%8}?$biw(BTQsOBMM6aSpr>0q&x2y4-Sg1ep^?bVNU1D?hX(%!f`5rrkZ}Kz z2!HNOLRJfTNM$zG`UA>mwv_Yxjdf;-{1HRP_>fGx4*x{l$kiCKOB?@4GJ8_0S|{=S z@RCIkLN_Ip@(&^b@fQN~GOR&f)Cfx<t(?o2sSaDkz{Dal;fL&m{D*~w3%_NS{mLsX z2U*0?KL>(0MLfGyU81CwoWB^sW6|(Lga%LHXB*1(r&ODNsC@~_z_OC9iEUf3^g-2W z*yMyuY%-{mi^OK5K?2cGOYc=-@v*1`R0b9?Hbt47c@uj|r7O3nLAqC|&Wq?dF8gU{ z?c5@sN+u9n4XP4s29OM(F@Wq=jzu|Sa4+W0Q)_zR>Z~&#O(QEN4pS3GjW~u*04ZfQ z17{pf5FaKM7auL%Gt5XntY8EKJSc$WKS1xo{acU*{|ASG!P5#-h-wx{_d+T%y;{cr zv^(lv3QDYcwXWQ<rWs)M85lGM!^F@$Dnp3^9!{Hj6))bu@S3L-{OC)R_rQllT#yh? z<>#auUYwe*#j;8)J{&DYVyRS|V}V`5CURMQTfxDLPo6wAmCfQLR$TF4NvPn=3J!Rh zelV@Tlb|PVx+jRRCQn0UWgQ;x`yNk5SfZ-z&C?SE|C{6_IgukZgbRpl_yvMbhi4-$ z?8RRjXJ5l_K;{d#!{a@B)ws%2aGds06=Y>kaHh6TUO#P8_da$S{wkXxB5kLU$kgpv zb`_OOqOB?`yoy92uM`$uf%|`z$TXpUL1s`$#(u49L$iaKn}+-)qwyQbMMKKPH1SP0 zHfIce$lN+fmYu&-o#y231)+A>HoX`uL=Mi}x`|s$J%@h*&w;<d6Q0V=J%zz?J9_p! ztvt2Th`$D}J4D{2(5%()3*^)<8yp|Qyx1GpU%9K_I!Vrd4{c6OgV!Yr91;AiQ_0i& zV1(=N9Qbv@v3f85S>rSOjXSdN&f1<mYHa1HRNVN?#EDYz@#xe^6Zg}b%3wT|;LDX4 zUOCSdS`xob3agN?y!>Y4XXqKej;_PeOIVeQr9kuV`;e=|IpP=Jhst}GWb}ECXpbL4 zd5+1I6^@B4nNA?>dYS4wB$G1f8kuK!?u2K59xL}H_8za6{-;Lv?r$tXCJ~q{vHYOU zRb!w@>M_|BH>QPCW~Ql4a~WtEJ7l=0W$Kw)j-I3C?U3iGmapZ<JE_@fgYChr7@ew< zj(1o8E`N)Er~iBHjYbD_eDB}oZ_zrj`BFOTXe)$;-!0s(cZMA6;lE~cD*BfEyZkNw zo!T4CBcS6~|1N)v)*1HJNI<h_zH@s<1_T0i7u)jw2>)sC<gkq<T;9`_0s?`$HJc`# z+w)>TAW*kv(^ND6EYZ|+dlm--0(JY_v_D$F+@7fcfk54wtvIA5b!QBAsHyV|?iU+& zc6gXidaE8%&t7+U^Z#4=Tiv2};7$=Ab8o!~BnI4l{;;cC?N9&Us=ffWTx%u3968s@ z%W`43!!dqF=Nz7IiS3@ZQeN3p59U3RJGZ^8CS7)ZWhX(PS7nw6<Z6b{XLN0zUU98~ z5#C<z#_*FpJ+%5cDjdV%?MAwSR;Ph<R8`wnyP)CPd^venO9HRs4ErArJy}o2$@zhH zP_oazj8|_eL4=k3_A_GW?GEa0eFFXXa0{S6sa}L#?VSu!AP4R^=?Cg&P-i&EX)wb$ zk;a$nf>_D3->gN1U29hHpdTRQ2MW%?ejfDWbqgrT19ezx5}FMeBD@$oY@11SZmkP( zaL>1WlUckQ8(b}$_GCwrz~tlIo_~H9bo|hK$Vd`s!n*I}zT2JJnW|wQ)TKg$dZEy( zQmfI(TW&UtY;rCw2Tk94osjC-|8&~R`EvZlkOAqYLuWZbMW-FKA=O@^RBS~?k+!(R zO1mAN7jCTAfTnCY>1{CWM_ONlC4H5xtR6++h6ojUUEF`TP4rhWAtBV+zQzMfIXo+k z+4HfM=_>FpXVKT>I{CSRc`I&r_8o41`f0PlJ^$wL^y!~}nySS`>hYLXQtPvO3hW5g z$0`26>v8nx(PCi}U-UozXr+-&3$z`6oj`KMLR^Nfw?d$mHU>A8NZ$}S0^k~MO3z8< z<Rz}P?$VbMt|LPGri>$Ax9EqA2BaifSxwz|o2G$U*0t9PxdZ}{D8!`rOQ;LJSsjy3 zCA|VfY(%_@jJ;CG1}B@+%I!3c^TGvB(baR<%nXD&XLY{D{g8J*g|ECfWRqd4B6Sga zZYLIF?c$={QKm(X&=u5D=oUu;3nK1ep|}|x7$Osb2}K%&RYY`(P}Ra23})9Exwgbi zSuQ||%bl-b?F+eNX<De$X!hDLa)aocHzxNeVXrcyB*)LBRGjD9!OZa)3e6Nw3!!u| z0iTv!pSIm?X-+oP*VujAY@x@N)y8_Nrw~htwD^|$%f3f7jDqf<E4Xij4pb<v+jw|u z=rKnx^h_9I)o>mrn;55g*&5F0rbYCwLaACw*|B7*xNRDzjZv`}`vlTsH88bom9=Yk zhuku~9Mt2cgIP&q-owbGBzHGdg4h<cY?RU*s3mLD8?S+{UBdFv!{+aJ=fLuDEDsSW zSY$FrWs;{Mn>_5@LW)7A386yIf{a7c?%=1UtwhP`Gya?BJAdza7tFi%H>dT!C`88F z#?#Gh#AJj<LzjX|3>$Gm_j1N!yaHSS_#XSgPhg|o0Ro`j3<^U4i=c>O5BB_zTR@ID zaL2)NGU_ugZ0z)*q?8u2G&b#2S4>`B)b%|CNk7>hd#-wBR$_UOC3z8+^+25j40vVB z_wK^5Qi7!I73>o-E9dFh#;}@)DCj8ytFw%i%9%s{6zt6E%Uov2IoS;61-i{?9O07w z!sKE)g7m?<9{#atXAPe|kyEXI{4=njMR!APfClU3<&>q;(OKkvof++zNK%nW?}czq z9z{yG1ns@~{0N>b%Q8h1v>&px->(QjznLx)2wS*o?YB9ZftxaKyhoeoj!R`hp_CAs z1ck;2yBRn3PFG!XYS6CX>h>DpG+~O$#9mYEc1J+sAZW9l=L{Y?HL&9{hp(>pEN|P< z&{_;j1qUg!=X1EMYVPC7<W7&pue%q+liky~gMDPFHGO<8b$y=aJYf>yjP9`6MDu!P ze)(l|s_Pf@*HdH+`s#*SKlc?vK4CeCUf^pc*q>R%)>}ijV4}(QIRLwmD|D_UlB}!c z(Y_u)xqIb#4P5zJNJ}eUNvv+|M1&x%3z3K~>!F~F5sAX{XoBrL|GN1#%X4F3OvT;~ z!2!vQRA`z3P|3=C7En3%zJ0zZvGu9Icx%_BxNXKr(D_zNfd~kV&zG<X$;6vxDJ(M_ zL$EJ5uaqozOfm^li0Fm*Th^_}JJr2+Ol+)~_Qm#awcVn_F>kRXe>l<F7_WLUFrnV4 z@f>2zOt(L=Kaan%?f3cVh)=pYXZ3PfGg;o(UdU9ITLmOg+d~C#DnlYgW^|q(b#&Yu z?4h=cMd)qo%m;vFin@SVt<JXFcEfS$x?|gB$Js1o6YT?cT)*6+7)&rcW4!)Oj7PNN zt*E%MhB6@}(G&-ntW0t&hPMGO=^<B*tk85SJ9(0W5Au^OS0$6gJ6$2?F2@XsfFOE6 zIuZA400B%C4PW!l2u^N+5`bx%8U;b)ogvj5TcvG(HA{oWMd6Ohk~TrKSB|11=ZcKA zmIY{%HdQzkD&t+5dhs7vloB3=P7{4>z_0)?KCH>|vh;UO<U-=2&@}K*bNwWRAY@?$ zS%gel-e|60E}bfcq;mwGN3D%m=>)ng)k>HkJ83HZ8Z7eShX~H@zU7muT7y(;#bex8 zEf@-M2G$CIUIBd?wiG-Lw5<xV(p#cNF=KKf?pb1|Trg~m=*q^Z=Qj5v)n!qFBFhrL z38N$lCsbtOIQbV#Hxr!HWJRZnShA_E!b-$M^rv~Fug2HcSDM>&h!bg8J09nz$*`ue z(_~z3*46+jEx%<%7?Zr7-C-glXE!KPn9)aay%lS|zP~pw7Pt1Med5j1Uw?&@GWy=9 zS8K2@EQ&)p$fbPc9p5}D!90d@|20TI4i-v06bssmaOiwue;2C7=Y`|#))*}^bSz;R zrg|x=^VXb9sg0%=*9sA_gqIGKYRi_|7B{Wx%Y7ul#?%fK1{K3GdAa=qfj7|z-?FCr znjd6caHMXN1@8%;X4X54&LsPUCBsE<fl(;u60hj$+1+7NxyvOGyTcsv&EYN{vOD(# zR2fSfd794#=|m1jpk1=ZP$s{nlcp_Jvg=YRKAA_;B)N~$sk=3F45-G!c&^(m314fe zka^*5bM5h+cwgiNyh=LEQg!Z;ly6ctaOS(8tJqYZE1UT|ibRIplBLfb<y5elpxGdb zYrbLLA)le&2tAu0Vcs3zqw+GDd*dL$k(Z5r7tvj&o9qYMS=5CcFyX@2fmt8Djt9N* zF&hwV%gYT3PBNeJDQ^B7u^uDzLeIn~8L6RvKsHI2qWlNMH~9+_gYh)ip@?!PJc%vp z9g(hHNSqZ8z9mVo*noe<EM*XG*-fIim-80<Yhx2>EK!!VEJd5h_b9}M27?BFt)v-x z1W5;?*UD5boP!8LA<(rZ0cdinG87y_{*1TMQbW2sWj(KYHLDs{FIMPu)p+~)#Cecn znAUi|_b|6sSdoPwgrcAYS`+cR3gj$zvo=O+Kc+QCrkZamNEnLZWxS6MQN-A}9bjmg zuxL82`6x7n5R*@E$E*Ct9jq}6|Cl|uP%LnS_)a9G*7|?{pMUhi`+1?9wt}{Ss1O>W zizY;u0LU&L&d;4TPvM0{bZH3LMZ<-AGt^B4SG<N->l7inSRm^MY@c;gEf&V_0bOcB z)*o{Bhw|BQTHk}GFc!2Vk|gr?`>l<6qpvk<{RZ#`a1G!c5P&^j&gb4<MsX3IPAcd# z03U!p040FuLb5sUIy__m)+ZFaNjdp<L=O%PC^it5neYq&0fAir;i9lm0569gB#P)M zq>5p5UFXuZ<5B444?xdE)fIleVXaYpsGo2SK-m4{r9N?Bt;znRfcuy|xs`>`=~G<% ztOGpQ{o2!|Du^$}M~D7F1Bw%y|38tp=J00%yFN>d{sdy;;eLuUR%3SVM$(-^5k1(F zS24nxas8x-X|}c!A}5Lf)=jow7dKipsYAaZpj+$d(6Ju;Rut%R{P&lOb}e6TP(}Yc z)JrHd#O$;KfLQBf{>Jo#DI?{JYNxI>8mwQpY|!TsAv$|91oRtvi{AHH0SnMgJv?XC zciqhpN-_|BYv{cp(=<@2ok$T~qkA-*|1)k}Yb{x~Dt5XX;!f;tM`W04^1Nw^0yfME zDgsVpCcuEWWB({J6#)Uw{96l}4%zpgAp1?E5*C1W24vj^;FDJ-y(wNzJ?UsbCm0~$ zu}2IbOlm=5LZ!6Iq!+peGbzQg(07v=y+ftPS5uXTU;?5s*k>FWr9fPpO@{;%5Wdq@ zHI3r&t&Ae|O*Aj~5~d~u>B)<MUX8!ra%Zl?z|UJGTZ;RZP_Su)ZI_aENGaqeNpz!M zTM3^FZw^W4$3nqjGgJLWY=sX)l?A7HQ7jtI?InknPG_CoHW9Zq!mBK#E5gvF5y78W zlyLn7K7Gh8(C<w86Ss)IOG9$_AXxyv7)hs$q(C|0$i%uqw~Ri+91y!y_7(mZ{Ym<U zc_?WNnk(s(f>KNWm7XK)EiPrz51(OwsG%T+SB+Z?Zv*rbWtLp}1*(}|RWSKqWU)kV z1M1@dLH&bd6Y*^e>eiy{|Mb#L-$nGpAlf$MD?;BD`NFX$3$%*Gid<B-iG)8}pZ$$P zIn!(iVM`}qg{U_OpA{qUjjK^O6`ij<q94t@@a8y>mhO>!jl7`g-gGIFfU09=&RIV7 z&dK!1IN&#ab5-1Wwt{_WwGTVA{<MQ04KOqp!hPwgxaK_dvBszFMIE*!lhI@(RpMR= zzTmLkr3(D3Ls%+a4Md{fCw`o@Q-%9UrDu-h&=hdz@m0iFtIFBF*j<jd%V%%mP0(7k z3mP%o79Zcg@{G%OHOtkoi+8a?JfaJP{93vFLjHrAFX2KUy&xYY6A5#qw+dw4yAJ{a z`nZCCI&c8&uT(z;QRMy<%s%X=5W=;dB<)Y32po9|O=9s=>;)_5SjIis319ddksPJw zq}KEl11^!k(me&C<o?Nmae;jXYEo%{WW!W4YE&(wmWNOsr$U)(%&8%YwHnpeQA}5> zW_`FO$ztTUXJj#|H3}owSsu#T9A=P6dU}f0hG<N~^jv4?%1AevJJ-|8lpxK~nQ$k3 zXYIsNfzCsUrh%59lo3QHkU>B+^m6jv_i`pD)zepNRB6b<yfaf^6>H#eM=lOoB?B|z z8zV4i8EJ@2I{nR}85uF`&YdAOsm&uC->QSPUSE4ex<7Dw0oYI+#7mGUNwSpUA@vO1 zQ>M(>a>|ph;CP{mQ)&2n|BHl_jGTg!ikgO&j((O|{?`~NNU#v0!i0+ush8gRaN)|0 zI}e_`2zc|sA?E0iW-*-X=F5Q}F3J%{9oFKK%g#7!r(HH9Z6d<M*H@Hs6`b{RDiYZG zvzWnTj@jl~Yn`c4hz2{fXqD`Ju*65lF#HK!G}9KRO^XH7v6!9n*_*X$)1qC(b{&51 z)McWm2i+!_tS6dcs_AB!W`~(hSnTC2bIdi{_>fB@wT`HB)GFb^pXz;i`O4L6*Kahq zd8^T#)s8vt#oc>N?*FnO{7Pl23>{9F+e1<!F)cBY%9#8?4L4C_G}WASoaJPWNuDZA z^Gv1IXw6)iTUc6I+qkx6b#{7tH;MN;xb@i49XFTUn&O(aZVq=fs^{jdp7v%Q&vGXY zJ;LjHgjsB#93Jb|)HT+0o0|%xho1V@OK-2{G<4HlryhFhTQ9ve?ZlOxmv6Ya{vHtW z`6~S$IaTn{p7Ru+ho++vntCTbsE6LV>F{cW^O?j!HFZ7R^@;pDkXcthc{}odJ7uI! z&28cO$7CruKq|EuZ$JZ3G+}xnX{9`Z92VK>lZR$$PNP72z=(#)oes#t^fz(-<=+HX zwoJOlb2@Zdoeo5Q3Tq(AGF^R=PcM5H{qu>l>FLDDH1`+zS$>iqPaI7TCl03j6MNI$ ziJfWIQ~jg-Am7V(a+T+5_dfyy;K1-Z^z5MYnvnp}ngc)7svEFle>iaEw9qf+E+Kx+ nzyI<DHq{wv-@EQt2Zp9sQObrDA9GgJ)npr6E(~c^000009SE&l literal 0 HcmV?d00001 diff --git a/assets/fonts/ibm-plex/IBMPlexSans-Regular.woff2 b/assets/fonts/ibm-plex/IBMPlexSans-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f0ee65dd7f3ed64dc8d674e5c6007a0e7761bd57 GIT binary patch literal 22588 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 R;$T5nL-p?z%LdxSxC2frlW_n5 literal 0 HcmV?d00001 diff --git a/assets/fonts/ibm-plex/IBMPlexSans-SemiBold.woff2 b/assets/fonts/ibm-plex/IBMPlexSans-SemiBold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..08c0d5adcbdd87d740ed91568f9836134c84bdfb GIT binary patch literal 24252 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/ibm-plex/OFL.txt b/assets/fonts/ibm-plex/OFL.txt new file mode 100644 index 0000000..01497cc --- /dev/null +++ b/assets/fonts/ibm-plex/OFL.txt @@ -0,0 +1,93 @@ +Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. + +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/library/README.md b/library/README.md index bdc870f..bfb65c3 100644 --- a/library/README.md +++ b/library/README.md @@ -6,17 +6,45 @@ below is enforced by `scripts/check_library.py` in CI (`.github/workflows/librar - **One directory per item:** `library/<slug>/`, served at `https://transitrix.com/library/<slug>/`. -- **The PDF lives at `library/<slug>/<slug>.pdf`.** The filename is the slug, so a - revision replaces the file in place and never mints a second URL. -- **The page carries the item's content as HTML.** The PDF is the take-away download, - never the only copy of the content. -- **The page `<title>` leads with the item's own printed name** — the same name printed - on the item itself — with no suffix beyond the site's existing ` | Transitrix`. +- **The source lives at `library/<slug>/<slug>.source.html`.** This is the committed, + human-authored content — the words are its author's. It is never edited by a + rendering step; only read. +- **The PDF lives at `library/<slug>/<slug>.pdf`, rendered from the source, never + hand-authored.** `scripts/render_library_item.py <slug>` renders it via headless + Chrome on an agent's own host, offline, and asserts the result's page count and + geometry against the source's own `@page` rule before it is committed. CI never + renders — see "Checked, not rendered" below. The filename is the slug, so a revision + replaces the file in place and never mints a second URL. +- **The source's `<title>` leads with the item's own printed name** — read from the + source's own `<h1>` — with no suffix beyond the site's existing ` | Transitrix`. - **Kinds of material are not path segments.** A cheat sheet, a template and a worked example all sit directly under `library/<slug>/`; grouping belongs on the index page, where it can be revised, never in an address that has been printed and handed out. - **No gate of any kind.** No form, no email field, no sign-up, no interstitial, no - tracking wall, on the index or on any item page. -- **`SHA256SUMS`** lists every committed PDF's checksum, one `<sha256> <slug>/<slug>.pdf` - line per item (`sha256sum` output format). It is updated in the same commit as the - PDF it describes. + tracking wall, on the source or on any item page. +- **The typefaces are vendored, not fetched.** A source pulls its fonts from + `/assets/fonts/`, declared with local `@font-face`; nothing under `library/` may + depend on a third-party font host or any other network fetch at render time. +- **`SHA256SUMS` carries a pair of entries per item** — `<slug>/<slug>.source.html` + and `<slug>/<slug>.pdf` — one `<sha256> <path>` line each (`sha256sum` output + format), updated in the same commit as the files they describe. + +## Checked, not rendered + +`scripts/check_library.py` verifies the *committed* pair — it never launches a +browser and never re-renders to check its work. Concretely it checks: the checksum +pair against the committed files, the PDF's page count and its `MediaBox` against +the source's own `@page` rule, the no-gate patterns against the source, and the +source's `<title>` against its own `<h1>`. + +**A source edited without re-rendering is caught as an ordinary checksum +mismatch**, the same way a tampered PDF already was: `SHA256SUMS` is only ever +updated by the render step, so an edit that skips it leaves the source's committed +bytes disagreeing with the hash recorded for it. + +**Do not add a check that re-renders and diffs the two PDFs to verify a render is +current.** It cannot work: a browser embeds a creation date in the PDF it writes, +and rendered output shifts across Chrome milestones, so two renders of the same +source are not byte-identical even seconds apart — the diff would fail on nothing, +every time, and teach everyone to ignore it. This has already been tried once; it +is written here so it is not tried again. diff --git a/library/SHA256SUMS b/library/SHA256SUMS index e69de29..2ae8bec 100644 --- a/library/SHA256SUMS +++ b/library/SHA256SUMS @@ -0,0 +1,2 @@ +5cc0ad239a5c959a0a62ed060d16db3ba31314f6da3ced4c3fe3ac0183159c15 archimate-cheat-sheet/archimate-cheat-sheet.source.html +5c2a78a82d03173d05e9095f784418a83faad4c992d0fb7437b3989d12e9956d archimate-cheat-sheet/archimate-cheat-sheet.pdf diff --git a/library/archimate-cheat-sheet/archimate-cheat-sheet.pdf b/library/archimate-cheat-sheet/archimate-cheat-sheet.pdf new file mode 100644 index 0000000000000000000000000000000000000000..876afdd6510e23fcd12cf795f62ffb997953a1cc GIT binary patch literal 92008 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�s+50MBcV~EU+Mu>Kot|FRGrKNeg4k~G@}0E7-Mr;vS`u6Ya;z2Y{8;&M zd&EnIfekq4Fn4XYm0?DPt$Hf@_HSUHjXkSJ{L@U#Qk9Hjh}pe6SYdlGc9{2)A}^5` zIW@ii-kLy(U7Ih7K7K%?C(~>kMjj{rlbi0@FA`iXH>GdV9qA!co+z|GdQ{u3xv*!r z#(dVJSkFPhxZFej?yKQIYIThJZzNq-dxI{ymisK-%&xq8>9f~RS9ME)a<Ovd%E*Yn zrv#<A^XamUc-BGp9KJ5PeDVih*j(TFF4bF%E7$}%#eExLqp*JH*1jHldP8HW7^|^7 z{-UTlNzd&1`4)HWQi&|-9RJ9V=X_V`J~w82?m=Qr`s83|C+YaU*BrINF+N9o-yZ7@ zUs-D0(saPnTUCWkVrPmk$-F%4V)He!R8;5`Pv$H|o=8e#(5w2D(443cue_T9OJcma zz!wC&suvt2y3hl6k`(Ns2G4uPJQq$6@=na8wc}lu&b67`6*H5k+@MI^iyqG%82z^K z{nF8IU+l8Kuc*=!eRC&p)L6Y}(Kp>}#WQa{H&@0ne<~&Kky^Z{RF3=#`oiZ}WkWWa zCY8{q=av?z6Pf*P6*<^kJ?&p!<9B~@jfN(+egHab<uLz&6K9ZJq$YN0;T-?4OVV61 z!yYy((Koux6S2p;WLR;Jqp{)zL{RUAZQJtf5(He=S$fsTFhcd>`=a%Hpy{Jc=q{lb zRgtN8(l%+=$ES05vzsVpgzoo$;(5X^y!BRRWZ*qsGt+spb72`LcUCdjw&z<hOr<ii z=CxPSq`J|_N@*Z%cq*5x=#yyKk7d$tZ`>?dJo{+ddocN$hpV(-Yin_B#iukDf~_y& zr3p@01Thm1>tegd`T`kJvpljf-t|F_9Ls#0=5F)G{i|Q0v9d@!<<)yGLeunDE<Dff zbsZNA67NmT_2D2loW*T_boBAIZ*h6&M)E}~?`_Vnk35%fKSw+XO~&4#5RMKNFr*%i z=2DXUQo?yxu5;3`F>qG9sFTSiSw#4O4C#oGbhKSVyAj6u4c;n}@04kc(%c5~h3+TW z?eDk*7IM**AKf<2yM>cpiABwG%q<o&I6xC^?}uZya70%)Y;+6Luh`jb<H}+Hns;z{ z!+uT@nf3bdrK`VhTCxBAGZ{-)3m02wHzyaw_s~?$9DpyeNy7heDoUwbu($NmG;?(2 z(zJB2m2$Gb1YBlsX6?$zi+5Ji)dC=`09(hv_<(F4AZWh?695XDZk7%@K+cjM_%@lD zvx23qwT&AizYvhEQv_0vwic3()<D9K8}Udf_=nTD_DNh^`xIay-~}jvd$9k_w0#YM z{GKHY$ZNuhB;b_ben#{cR?Ys^h<pC36>uXmIVol4YPo;Kztm3C-P{fSZ8d2{nf=T6 z)0Z%y8j3PnPV$N}DrU~W2j?yUHMMoS3O}uR)fK4ikHo2lrL`^4@K+g6N?vj@w*+`R zYA%;7U2OMhJwI*(PHMV4I|E-|+i$S_-KEaz?q`M#d4cz9`S^s4fzQzy@<DlwfltsG z@&T^`@BmB%KKLsId;kF-Xknn{e88&!FyLJnLEy~(Sw4Q?dLT1y$OEMBd4V@tcmVnU z{0D$EBnYI=`GAJt1ODa%()9fB7kT;NsbN4A@G_|YoO{g+q|gx$0={Agr*m*K^20OA z{J^X1`~W?k4^DC626iL@)CAr>Fyw`2{RQBsVel7ecz}lie;M!ZVPwcF1gHhPXJg3A zBVY`tXc+Rt_BGvCA9$x7U{L}6ETaqT-2~cZ3kLq!%byawJo^l<zw*1r@vSkz5=62a z-^l7{DZ(zBT$WNGWi^Aw5=`PSCK9xC-F$4kxk0iG6TTwJo@Y}1<m6e-uc3=Y>*8$} zlI=fM_ePJmI`i?hk~~Q#f0L}DJCyRlaHIcZZPEMWCy^iPyFN*>L?n)|KN)ULz2iH; z|2%@C$w%Pm9n~kRA8#k&k0-smvO9jaGKr-}i{F>r<f}onlXhp1t3zv+nS+RrA$`TF z`ieV^{&oymU!U~z<cEa=T2C$Gh>qvNTGm9>u;!;ZN|_#|cYN`*G^$pzlp=lL##HG^ z+L0K7F29HU2*)yp$%Pd2UQ#yER5mP1BV{v3std0g;|Na(mrbP6^vS^!$s#xWrf4~C zNMbg%aS63n2z>eMRu|TL`{c-OsnK_BagQSyyq=q?Xp(f2I<;~{_?j0emdc(GNfz0J zdIazXcAG_+USs@xjRupDTlGE1AchU@bZEf<ghlO~xA5y7vVL6)JwwmRMVI?`W_d>m zeP~}6*lqix86Rye`@6&0hus12{E4r9U;!TBKf+Sh5lHOsqv$92xD<Xkol9nbmjIx; z|LH@-i#LEtX*p>-+U}D901p7?k$_zXh}Zm+O~Atk+jmHRU=s)k?!Slom$fZ;+qu!a zyE^8%M8NG855Zl=61Nhhy~zYYXE_qj$brjpWSKRB5%&UwRS9yD*r6rfwB?pLXI%Ds z^*EIxHXmXEaiPbn?;VF7dCJnSO)Ju|$5e<53Av{YFEZbGIiht((Dt!n&E+0Jwz4`; zY{uM^1wI}D3m){Ii)%HbJN_H!fslK|B@hg2>*+eNjq3~2koP!{*{w~5-Ob2xM#wfl zgw{|fT}Wi_MJx-%3IZ`PzB(rARD?zX5ypa~&s(ddiSK4A;RhB_+*_TCX!~X@Nq7w6 zg#$Uyu4-)XeRj-s7!sorxSg6{m!iGmB))qN(nSL4@?4!V2z$`KhX+xCNDQ^~emZM% z_3bV}U<Y<1e}-^H{FdOxrYwXDGFI4|5@}6!NfC{a4zj#qsajfX5)nWb$hzSCwe8!d z$c#`kNT1|jr`5ZTk%rQRqYz&@$Q~DC<2@YdhewhEPbOm8m}2WSnxdWcC5A-nm|$TO zaZ8j=97SI`LxFCpJ|2M1?L>yr3|aG=E*24Xo}smY;<MFavH6mmuZmeN@p>S5p*EB) z(uv|-<P(qQ7%u}dCn++juGG40F1cf4jRcf8*Gtz2d~q_V&Z9i}G-auRm?&&)RS;A7 zMsf6g$40`tf>-G)F+{7p_gGfZ1_d*OLU#i*$u3La6PPyUKM~~&3REX7A|^P(9EWd= z(|GZ|n4Z1-J4xv`f*Y|K-*n$ld}AeG&Nyb49oB7%&FzY%B&u1`(j6jNiz(`)x%uM0 zIv?Q-M^Bi3tt<<sAn79y1LCBW8`r9P6S+O8iEnAizDb1TtfxQ4d{>}iBRqiF8$ojN z7_PC>9dk`VEDn6`068L@ql|8J6D6}MC4vH6^XBrG+*EE&D^jN#Csw|@q;Q&Ear*eS z!dy3D0A;FN-pBd17Hg`&``udflgsw7P8fq?bnpYWUOUgsm{XLATTwH~p`Xz1k$DwL zih4aG^y9{y<i>?we{Lp-wiJ{%t~Rb*TdbEuTGNQ*$9;sE8yCm)7&#*byXTj!6A<S{ zG|~p$r)W1a!bqAaB1`KBRIH~tLWVq`H7or6K1BB!2`0-361Y{|Q?QQO1Ywv9SZ(rV z2KHk#GMV>_24inVq`ta<HmbQsKyYiPq6?RzzZRQ%>~`wAU=r*^(aSg_RsFSgILB6l z&<y&032)z%Yu|Z>iOn~Pj}5sU!sAR0b7nZ-boF&3$NNAsK}>5#<$1MdX72;F1qs>5 zxr?4*rv)ZB)3ce89+M(aeMW6`?JC~5|8gU3(KFmCNFF1GzFr{T>!xo2sbEZe>=~hP z7l!zZ&Z{-cBfeDF0XR|VQ0ck+Oi!Vmh1^kb3(Ag0{VL1>n0u|T1<~ee75B#${TXz6 zxiQi-bbwK?V{3bKF^}{d#I6j_SW9;VXDK9rutCmZhS`QBb{y)9b}sbdb0?nuHoP_H z^qrz;v6td+_HZ8Ouh?4g#@dRPZYgv1c-S)Z?xlP!6~cLvT=UX+a_{!Y#Yz7HyMDTN zV!1v_8y4Tn#B<eV&(1d78ws$^=V2kZ$o8cB={$LK7Sxo0@>7)SON*BeUcUOSzY#rJ zt3u{kxAEbMy#M50*Y{BY$oARBNor@!PEl;!b>-y==*%->uWm|SGyE!>AqdNugCN8S zqbcd81i1n?%}vHH@8w^yycTrBCZ3V+3X72@p%0|o=FoydxMtp&%74c%ni*molfOqE zKzVD~mhy$#Gh+I1*3Y4=yR4Ks_`P4!-6_6_orXH<HJyD<yeCXBVNoWtQjM-Gh@S36 zdD%t?gMa!&*@8!?AntQPT>rFdM^vRgm258?Cx3Z$LaIJWai#P%dhhy>+^mDVLzmw> zud(k<p(8lkp8ZQcT`P`ed;G$!Wm#o=YE3iY_dP{M8;rga8lTe^&n!6SH9^Ageas@( ze{61tp?bA`!^D3xbHnKA<`@P=$7qI_=hrsBJhfq;&X+AD^L7t7TT|9oER^MAPv4IZ zryyS08hGE98G>^^kB$9hHXRpv$Vl|6oU|T6DV3<>YnmuCsQr3XT+z{1+TuiOqgvWj z6}(>8me;qXi8PL>-;{=N%D%p%-(H+ZtwAsF+DPv$F;VZ@#QJCR_}HnQN8OWmV@7o} z265gvTvmNK?xhj)ls35Rfv9Th$B7qo?FqS7amgocwH8kY#Z4#*O}%DL?Y?#{G2YsU zL*2w9BKWqE^3@Ml>26>168?PUlS(e_#4AhMX#uXXTHBzc=M!uiu91o<YNdH>qKl%Y ziuXHr*)U&3Dv5Kgaf+U`W4$7Ds|^>X6nU&tG?^5O%92({l5|t+a>Zu9T#q3sa7$Qs z?e&uOY3Z54UGr5ed`JM-U0-r$TGiP5s}3`R_N!R*j52o60@kFQ#su{9*|XJC6?*bJ zA|^-Bj53Q)7vKAsq=NZKRku*OtUMw~I1(0@ph}8Pz<H;rhxpVND>F;Yygp-fZ_oTX z_p)-^6I_OY#~}_{C89(v*9cN?p2;ChDWeiuy{;wp0C)B=Q6T*@SGG%XF}q~6ceDHN z%qW>KxYSCVXfF^e4Wy5I%K7oB3PH}$8Hs{KshP?b$FL%rr(D^%nQ>G!3;Ir0i!LhA zGq^;ETo${N_>i<ETe`&U&53v>X4%dD4>xF2)#B@I!*9AADd@ZXO65_c+6}v7(4;2= zF4oLfBUwe$@jK5D8)xI)>a<C>)m2p&%CgC_?3%nqW$Pjvb^jw(^2v($Hl+j@bMfhA z+p9tg@l+8{WL(v=$f$Z~F0bB>TfLstCH_8HUe7N6=)_>YJ*j*v*N$03PZldzn&7Ey z>d^V)(580|Q#vm!?<Pw>oWgzOeTsRF(?y}}b&=rQ>k95uM+$_euB^q0(z--n{m@&n z)fL6*!P25>wOsvyGK278N1IYu;w#MXlT&?cSL{z$+R0q&Y{_g>8a#m)N4oI&O5|~I zisL-Hg|w+j`Vq-yCM-0KvM{##+ifX2&DvMQQwT#{sQg(c$8<Gfj4p?|__j^T(F=He zNTplK5oSMcZ(^XI{P0oBa~A_6om1D{NAx`>I&Qe9s4bO{<h^!VkDL(@V3pIcJRK)c zaf)ZWI;XMpK50@A<rkWUN|M3;h-9h=^iKUSCDxo<m*nE9IM_3)>b%O0qT&U(Dm0R_ zIAQZFsmY{MKD4U^i4Q)oGGEl6cCD4AB~_HdiA@mTvdg)$^+qX7ke#brOrKe$MOSBY zs$5#3rHCiBBZ;?T@|M2!RkkhhcMgoQCUPq|j200$nJ-4H%#voPuE78_28Sf`RVW5s z>?Hcg<S1~zi^T9eaUoCjRt_Tulrg-mIbqk^N`;gby+ApabdiL1AmGKZ=>(Xdix8AO zJF!hk-Cyi^D|KFxyJ~#wOO6cph!nmQwS=wBHflPWkFI#0M|kCBNHtRUsFV|vixNg( zl%0=HO1nM&G53-3TZOkq+A)OF@rGrW&`i@g@oke&E|ZJD(Nwpl&62pyt*BIRBGzy= zKUqOupSk-LM~278WI@}!FmY=mC2P9SH?7>si59tMX#IHOeLGku2hpgekF3}@LKSb9 z=9);pRY<TkIo8gKg+tZeDtK3`S^AY)d}d61W1?A=N8nTA^3!;%zR`H~Z*mN_Z_i{W zUrJ{g{S-eih*p`xJoWkHGg}Ht1FGj2+{n-=BhEKJ;7Yvt$iOt0Pbs0CcJ+lHp36xf z(ehB=m*ZBVv~65%0cnbfJUbKf$(c0t+hxki)Jre%+}S=t<E`W4%W4KC7-A;Q50b|7 zKH)L>ID+4tEHR#T&qT)hND_lqu|{PLU$`&qqk*=Ztu|rD8s`hw(zYI(Nd*lenIP9? zPS~x@B!aV@H7=ZZ4h&jV!ns~JSxF~PNol=Jgk1ob2qf288e0|8Zax$YdLy)=PoThl z>}IS9?Q4q{E%{-B%#j0$hR0nwXSFReV^}RIoe2`U6qK=w^UD1KtL}SgOqyzHS*ERq zoY9U<T1V5Z{w8UjU=)!c+;fXl;PS~T9I|2O!dZ+n!^ZL--Ig3->8Dim)rPJMxXk%) zXhkvI<B&Dd)C&^L-HhN!aW9#2c~SW>`PB8$)HEIa$)fn98W*N>?%l{WiD&R=A!62? zw>ir7GT|Cg_9_0BlQb-mMalJr`H$77fxnXK=Pr1+$jyeDAE$Rt^5#76)g`+nL0_p) zS8Vesq$JV)X4aHSt1yR>Nq>A)VN&Yi^7bh&+56i=G|e#Xa)6(3Jtt9~jpObmy3|B_ z=T-8QIBbq{>2fKqtG7Ow(qB=n3<+~<>@huKeR?ZkV(%j42-?vzCz5I^r0PGfR=EnL zZ!K~?6|rl7WRO%|y~~<ZC`8#*4n03XQO-Xbf$r8qJ-f<T*qJ&0;>^pgQ|32n?B<Uw zRmUp}PM(V9T5(8EeI)!fX3%T3yiMtvX6el&8Mz+L@|PSp-%0ApTQdv$zs$vcnjGOa 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 literal 0 HcmV?d00001 diff --git a/library/archimate-cheat-sheet/archimate-cheat-sheet.source.html b/library/archimate-cheat-sheet/archimate-cheat-sheet.source.html new file mode 100644 index 0000000..192e5d8 --- /dev/null +++ b/library/archimate-cheat-sheet/archimate-cheat-sheet.source.html @@ -0,0 +1,288 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="UTF-8"> +<title>ArchiMate cheat sheet + + + +
+ +
+
+

ArchiMate cheat sheet — every element, by layer and aspect

+

All 60 elements of ArchiMate® 3.2 in one grid, placed by the two questions that decide where an element belongs.

+
+
+ transitrix.com
+ Free to share and print — no sign-up +
+
+ +
+ + +
+

The framework layer answers whom it serves · aspect answers what kind of thing it is

+
+
+
Active structurewho or what does it
+
Behaviourwhat is done
+
Passive structurewhat it is done to
+ + +
Motivationwhy — its own aspect
+
StakeholderDriverAssessmentGoalOutcomePrincipleRequirementConstraintMeaningValue
+ + +
Strategywhat we must be able to do
+
Resource
+
CapabilityValue StreamCourse of Action
+
—
+ + +
Businesswhat the organisation does for its customers
+
Business ActorBusiness RoleBusiness CollaborationBusiness Interface
+
Business ProcessBusiness FunctionBusiness InteractionBusiness EventBusiness Service
+
Business ObjectContractRepresentationProduct †
+ + +
Applicationwhat software does for the business
+
Application ComponentApplication CollaborationApplication Interface
+
Application FunctionApplication InteractionApplication ProcessApplication EventApplication Service
+
Data Object
+ + +
Technologywhat infrastructure does for software
+
NodeDeviceSystem SoftwareTechnology CollaborationTechnology InterfacePathCommunication Network
+
Technology FunctionTechnology ProcessTechnology InteractionTechnology EventTechnology Service
+
Artifact
+ + +
Physicalpart of Technology, not a layer of its own
+
EquipmentFacilityDistribution Network
+
— uses Technology behaviour
+
Material
+ + +
Implementation & Migrationhow we get there
+
—
+
Work PackageImplementation Event
+
DeliverablePlateau ‡Gap ‡
+ + +
Compositeno layer of their own
+
Grouping — anything that belongs togetherLocation — where elements sit or behaviour happens
+
+

† Product is composite, not passive structure: it aggregates services and passive elements across layers, under a contract. Most cheat sheets file it wrongly.  ‡ Plateau aggregates core elements as they stand at one point in time; Gap states the difference between two plateaus.

+
+ + +
+

Relationships 11 + junction

+
+ +
Structural — static coherence
+
+
Compositionthe part cannot exist without the whole
+ +
+
Aggregationgroups parts that can exist alone
+ +
+
Assignmentwho performs it, where it runs
+ +
+
Realizationthe concrete one delivers the abstract one
+ +
Dependency — one needs another
+
+
Servingprovides its functionality to another
+ +
+
Accessreads, writes or deletes a passive element
+ +
+/-
+
Influenceaffects a motivation element, for or against
+ +
+
Associationa link the language has no word for
+ +
Dynamic — something moves
+
+
Triggeringthis then that — order in time
+ +
+
Flowsomething is transferred — data, money, goods
+ +
Other & connector
+
+
Specializationis a particular kind of
+ +
+
Junctionand / or — joins relationships of one type
+
+ +
+ The derivation rule — the one worth memorising + A chain of relationships pointing the same way can be replaced by the weakest link in the chain. That is how a diagram stays readable when you zoom out.
+ composition › aggregation › assignment › realization › serving › access › influence › association +
+ +
+ Three pairs that get confused +

Assignment vs realization. Assignment allocates a performer — an actor does a process. Realization says something concrete delivers something abstract — a process provides a service.

+

Serving vs flow. Serving is a standing offer: it is available to you. Flow is one actual transfer during one run.

+

Composition vs aggregation. A composed part dies with its whole and has exactly one whole. An aggregated part survives on its own and may belong to several.

+
+
+ + + + +
+ +
+ Made with Transitrix — an open method for describing a company as text · transitrix.com + Element set per the ArchiMate® 3.2 Specification. ArchiMate is a registered trademark of The Open Group. + More sheets: transitrix.com/library +
+ +
+ + diff --git a/scripts/check_library.py b/scripts/check_library.py index aba492e..9287a02 100644 --- a/scripts/check_library.py +++ b/scripts/check_library.py @@ -2,13 +2,20 @@ """Guard the library's shape and no-gate contract. Checked against library/ (see library/README.md for the contract in prose): every -item directory carries index.html and .pdf and nothing else named .pdf, no item -page contains a form/input/submit-button/signup-script gate, and library/SHA256SUMS -matches the committed PDFs byte-for-byte. +item directory carries .source.html and .pdf and no other file named +.pdf, the source's own `@page { size: mm mm }` rule matches the committed +PDF's MediaBox, the PDF is exactly one page, the source's `` leads with the +item's own printed name (its `<h1>`), no item page contains a form/input/submit- +button/signup-script gate, and library/SHA256SUMS carries a matching pair of +hashes - source and PDF - for every item, byte-for-byte. Usage: python3 scripts/check_library.py Runs a self-test against throwaway fixtures in a temp directory before checking the -real tree - see .github/workflows/indexing-declarations.yml for the same shape. +real tree - see .github/workflows/library.yml for the same shape. + +Rendering happens only in scripts/render_library_item.py, on an agent's own host; +this check never launches a browser and never re-renders to verify - see +library/README.md for why a byte-diff re-render check is not attempted. """ import hashlib import os @@ -20,6 +27,7 @@ LIBRARY_DIR = "library" CHECKSUMS_FILE = "SHA256SUMS" NON_ITEM_ENTRIES = {"README.md", CHECKSUMS_FILE} +GEOMETRY_TOLERANCE_PT = 0.5 GATE_PATTERNS = [ (re.compile(r"<form\b", re.IGNORECASE), "a <form> element"), @@ -51,12 +59,20 @@ def find_slug_dirs(library_root): return slugs +def source_path_for(library_root, slug): + return os.path.join(library_root, slug, f"{slug}.source.html") + + +def pdf_path_for(library_root, slug): + return os.path.join(library_root, slug, f"{slug}.pdf") + + def check_shape(library_root, slug): errors = [] slug_dir = os.path.join(library_root, slug) - index_path = os.path.join(slug_dir, "index.html") - if not os.path.isfile(index_path): - errors.append(f"{slug_dir}: missing index.html") + + if not os.path.isfile(source_path_for(library_root, slug)): + errors.append(f"{slug_dir}: missing {slug}.source.html") expected_pdf = f"{slug}.pdf" pdfs = [f for f in os.listdir(slug_dir) if f.lower().endswith(".pdf")] @@ -68,16 +84,103 @@ def check_shape(library_root, slug): return errors +def _read(path): + with open(path, encoding="utf-8") as f: + return f.read() + + def check_gate(library_root, slug): errors = [] - index_path = os.path.join(library_root, slug, "index.html") - if not os.path.isfile(index_path): + source_path = source_path_for(library_root, slug) + if not os.path.isfile(source_path): return errors - with open(index_path, encoding="utf-8") as f: - html = f.read() + html = _read(source_path) for pattern, label in GATE_PATTERNS: if pattern.search(html): - errors.append(f"{index_path}: contains {label} - no gate is allowed on a library page") + errors.append(f"{source_path}: contains {label} - no gate is allowed on a library page") + return errors + + +def check_title(library_root, slug): + """The source's <title> must lead with the item's own printed name - the same + convention library/README.md states for the served page, applied here to the + source it will eventually be built from. The printed name is read from the + source's own <h1>, so there is nothing outside the file to keep in sync.""" + source_path = source_path_for(library_root, slug) + if not os.path.isfile(source_path): + return [] + html = _read(source_path) + + title_m = re.search(r"<title>(.*?)", html, re.IGNORECASE | re.DOTALL) + h1_m = re.search(r"]*>(.*?)", html, re.IGNORECASE | re.DOTALL) + if not title_m: + return [f"{source_path}: no element"] + if not h1_m: + return [f"{source_path}: no <h1> to read the item's printed name from"] + + title_text = re.sub(r"\s+", " ", title_m.group(1)).strip() + h1_text = re.sub(r"<[^>]+>", "", h1_m.group(1)) + h1_text = re.sub(r"\s+", " ", h1_text).strip() + + if not h1_text.startswith(title_text): + return [ + f"{source_path}: <title> {title_text!r} does not lead the printed name " + f"{h1_text!r} (<h1>)" + ] + return [] + + +def page_size_mm(source_path): + html = _read(source_path) + m = re.search(r"@page\s*\{[^}]*size:\s*([\d.]+)mm\s+([\d.]+)mm", html) + if not m: + return None + return float(m.group(1)), float(m.group(2)) + + +def mm_to_pt(mm): + return mm * 72.0 / 25.4 + + +def read_mediabox_and_page_count(pdf_path): + with open(pdf_path, "rb") as f: + data = f.read() + boxes = re.findall(rb"/MediaBox\s*\[\s*([\d.]+)\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)\s*\]", data) + if not boxes: + return None + page_count = len(re.findall(rb"/Type\s*/Page[^s]", data)) + w = float(boxes[0][2]) - float(boxes[0][0]) + h = float(boxes[0][3]) - float(boxes[0][1]) + return w, h, page_count + + +def check_geometry(library_root, slug): + """Statically compares the source's own @page rule against the committed PDF's + MediaBox and page count - never by re-rendering (see module docstring).""" + source_path = source_path_for(library_root, slug) + pdf_path = pdf_path_for(library_root, slug) + if not os.path.isfile(source_path) or not os.path.isfile(pdf_path): + return [] + + want_mm = page_size_mm(source_path) + if want_mm is None: + return [f"{source_path}: no `@page {{ size: <w>mm <h>mm }}` rule"] + want_w_pt, want_h_pt = mm_to_pt(want_mm[0]), mm_to_pt(want_mm[1]) + + got = read_mediabox_and_page_count(pdf_path) + if got is None: + return [f"{pdf_path}: no /MediaBox found"] + got_w_pt, got_h_pt, page_count = got + + errors = [] + if page_count != 1: + errors.append(f"{pdf_path}: expected exactly 1 page, found {page_count}") + if abs(got_w_pt - want_w_pt) > GEOMETRY_TOLERANCE_PT or abs(got_h_pt - want_h_pt) > GEOMETRY_TOLERANCE_PT: + errors.append( + f"{pdf_path}: MediaBox {got_w_pt:.2f}x{got_h_pt:.2f}pt does not match " + f"{source_path}'s @page size {want_w_pt:.2f}x{want_h_pt:.2f}pt " + f"(tolerance {GEOMETRY_TOLERANCE_PT}pt)" + ) return errors @@ -107,6 +210,11 @@ def sha256_of(path): def check_checksums(library_root, slugs): + """Every item carries a *pair* of entries - source and PDF - each verified + against the committed file it names. A source edited without re-rendering is + caught here: its committed bytes no longer match the hash recorded for it, + the same way a tampered PDF already was. See library/README.md for the failure + mode this exists to catch and the one it deliberately does not attempt.""" checksums_path = os.path.join(library_root, CHECKSUMS_FILE) try: entries = parse_checksums(checksums_path) @@ -116,27 +224,29 @@ def check_checksums(library_root, slugs): return [f"{checksums_path}: missing"] errors = [] - pdf_by_rel = {} + committed = {} for slug in slugs: - rel = f"{slug}/{slug}.pdf" - abs_path = os.path.join(library_root, slug, f"{slug}.pdf") - if os.path.isfile(abs_path): - pdf_by_rel[rel] = abs_path - - for rel, abs_path in pdf_by_rel.items(): + for rel, abs_path in ( + (f"{slug}/{slug}.source.html", source_path_for(library_root, slug)), + (f"{slug}/{slug}.pdf", pdf_path_for(library_root, slug)), + ): + if os.path.isfile(abs_path): + committed[rel] = abs_path + + for rel, abs_path in committed.items(): if rel not in entries: errors.append(f"{checksums_path}: no entry for {rel}") continue actual = sha256_of(abs_path) if actual != entries[rel]: errors.append( - f"{checksums_path}: checksum for {rel} does not match the committed PDF " + f"{checksums_path}: checksum for {rel} does not match the committed file " f"(expected {entries[rel]}, got {actual})" ) for rel in entries: - if rel not in pdf_by_rel: - errors.append(f"{checksums_path}: entry for {rel} but no such PDF exists") + if rel not in committed: + errors.append(f"{checksums_path}: entry for {rel} but no such file exists") return errors @@ -148,6 +258,8 @@ def run_checks(root): for slug in slugs: errors.extend(check_shape(library_root, slug)) errors.extend(check_gate(library_root, slug)) + errors.extend(check_title(library_root, slug)) + errors.extend(check_geometry(library_root, slug)) errors.extend(check_checksums(library_root, slugs)) return errors, slugs @@ -158,22 +270,42 @@ def _write(path, content=""): f.write(content) -def _sha256sums_line(root_for_hash, slug): - pdf_path = os.path.join(root_for_hash, LIBRARY_DIR, slug, f"{slug}.pdf") - return f"{sha256_of(pdf_path)} {slug}/{slug}.pdf\n" +PAGE_W_MM, PAGE_H_MM = 100.0, 50.0 +PAGE_W_PT, PAGE_H_PT = mm_to_pt(PAGE_W_MM), mm_to_pt(PAGE_H_MM) -def _fresh_item(tmp, slug="widgets", pdf_bytes=b"%PDF-1.4 fixture\n"): - """A minimal, contract-clean item: index.html, <slug>.pdf, and a matching - SHA256SUMS entry. Callers mutate one thing at a time to demonstrate a failure.""" - _write(os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), "<html><body>content</body></html>") - _write(os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf")) - with open(os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf"), "wb") as f: - f.write(pdf_bytes) - _write( - os.path.join(tmp, LIBRARY_DIR, CHECKSUMS_FILE), - _sha256sums_line(tmp, slug), +def _fixture_source(title="Widgets", h1="Widgets — the complete field guide", extra_head="", extra_body=""): + return ( + "<!DOCTYPE html><html><head>" + f"<title>{title}" + f"" + f"{extra_head}" + f"

{h1}

{extra_body}" ) + + +def _fixture_pdf(w_pt=PAGE_W_PT, h_pt=PAGE_H_PT, page_count=1): + pages = "".join(f"<< /Type /Page /MediaBox [0 0 {w_pt:.2f} {h_pt:.2f}] >>\n" for _ in range(page_count)) + return f"%PDF-1.4\n{pages}%%EOF".encode("ascii") + + +def _sha256sums_lines(root_for_hash, slug): + source_path = source_path_for(os.path.join(root_for_hash, LIBRARY_DIR), slug) + pdf_path = pdf_path_for(os.path.join(root_for_hash, LIBRARY_DIR), slug) + return ( + f"{sha256_of(source_path)} {slug}/{slug}.source.html\n" + f"{sha256_of(pdf_path)} {slug}/{slug}.pdf\n" + ) + + +def _fresh_item(tmp, slug="widgets", source_html=None, pdf_bytes=None): + """A minimal, contract-clean item: .source.html, .pdf, and a + matching pair of SHA256SUMS entries. Callers mutate one thing at a time to + demonstrate a failure.""" + _write(source_path_for(os.path.join(tmp, LIBRARY_DIR), slug), source_html or _fixture_source()) + with open(pdf_path_for(os.path.join(tmp, LIBRARY_DIR), slug), "wb") as f: + f.write(pdf_bytes if pdf_bytes is not None else _fixture_pdf()) + _write(os.path.join(tmp, LIBRARY_DIR, CHECKSUMS_FILE), _sha256sums_lines(tmp, slug)) return slug @@ -207,16 +339,16 @@ def _selftest(): finally: shutil.rmtree(tmp) - # Missing index.html. + # Missing source. tmp = tempfile.mkdtemp() try: slug = _fresh_item(tmp) - os.remove(os.path.join(tmp, LIBRARY_DIR, slug, "index.html")) + os.remove(source_path_for(os.path.join(tmp, LIBRARY_DIR), slug)) errors, _ = run_checks(tmp) _expect( - any("missing index.html" in e for e in errors), - "an item directory missing index.html is caught", - "a missing index.html was not caught", + any("missing widgets.source.html" in e for e in errors), + "an item directory missing .source.html is caught", + "a missing source was not caught", failures, ) finally: @@ -226,7 +358,7 @@ def _selftest(): tmp = tempfile.mkdtemp() try: slug = _fresh_item(tmp) - os.remove(os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf")) + os.remove(pdf_path_for(os.path.join(tmp, LIBRARY_DIR), slug)) errors, _ = run_checks(tmp) _expect( any(f"missing {slug}.pdf" in e for e in errors), @@ -242,7 +374,7 @@ def _selftest(): try: slug = _fresh_item(tmp) os.rename( - os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf"), + pdf_path_for(os.path.join(tmp, LIBRARY_DIR), slug), os.path.join(tmp, LIBRARY_DIR, slug, "final-v2.pdf"), ) errors, _ = run_checks(tmp) @@ -258,12 +390,11 @@ def _selftest(): # Gate:
. tmp = tempfile.mkdtemp() try: - slug = _fresh_item(tmp) - _write(os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), '
') + slug = _fresh_item(tmp, source_html=_fixture_source(extra_body="
")) errors, _ = run_checks(tmp) _expect( any("
" in e for e in errors), - "a page with a gate is caught", + "a source with a gate is caught", "a gate was not caught", failures, ) @@ -273,12 +404,11 @@ def _selftest(): # Gate: . tmp = tempfile.mkdtemp() try: - slug = _fresh_item(tmp) - _write(os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), '') + slug = _fresh_item(tmp, source_html=_fixture_source(extra_body='')) errors, _ = run_checks(tmp) _expect( any("" in e for e in errors), - "a page with a bare gate is caught", + "a source with a bare gate is caught", "an gate was not caught", failures, ) @@ -288,15 +418,11 @@ def _selftest(): # Gate: ', - ) + slug = _fresh_item(tmp, source_html=_fixture_source(extra_body='')) errors, _ = run_checks(tmp) _expect( any('type="submit"' in e for e in errors), - 'a page with a + + + +
+
+

← Library

+

ArchiMate cheat sheet — every element, by layer and aspect

+

All 60 elements of ArchiMate® 3.2 in one grid, placed by the two questions that decide where an element belongs.

+
+ Download the PDF + Free to share and print — no sign-up +
+
+ +
+

The framework

+

Layer answers whom it serves · aspect answers what kind of thing it is.

+
+
+

Motivation

+

why — its own aspect

+
+ Stakeholder, Driver, Assessment, Goal, Outcome, Principle, Requirement, Constraint, Meaning, Value +
+
+ +
+

Strategy

+

what we must be able to do

+
+ Active structure — who or what does it + Resource +
+
+ Behaviour — what is done + Capability, Value Stream, Course of Action +
+
+ Passive structure — what it is done to + — +
+
+ +
+

Business

+

what the organisation does for its customers

+
+ Active structure — who or what does it + Business Actor, Business Role, Business Collaboration, Business Interface +
+
+ Behaviour — what is done + Business Process, Business Function, Business Interaction, Business Event, Business Service +
+
+ Passive structure — what it is done to + Business Object, Contract, Representation, Product † +
+
+ +
+

Application

+

what software does for the business

+
+ Active structure — who or what does it + Application Component, Application Collaboration, Application Interface +
+
+ Behaviour — what is done + Application Function, Application Interaction, Application Process, Application Event, Application Service +
+
+ Passive structure — what it is done to + Data Object +
+
+ +
+

Technology

+

what infrastructure does for software

+
+ Active structure — who or what does it + Node, Device, System Software, Technology Collaboration, Technology Interface, Path, Communication Network +
+
+ Behaviour — what is done + Technology Function, Technology Process, Technology Interaction, Technology Event, Technology Service +
+
+ Passive structure — what it is done to + Artifact +
+
+ +
+

Physical

+

part of Technology, not a layer of its own

+
+ Active structure — who or what does it + Equipment, Facility, Distribution Network +
+
+ Behaviour — what is done + — uses Technology behaviour +
+
+ Passive structure — what it is done to + Material +
+
+ +
+

Implementation & Migration

+

how we get there

+
+ Active structure — who or what does it + — +
+
+ Behaviour — what is done + Work Package, Implementation Event +
+
+ Passive structure — what it is done to + Deliverable, Plateau ‡, Gap ‡ +
+
+ +
+

Composite

+

no layer of their own

+
+ Grouping — anything that belongs together, Location — where elements sit or behaviour happens +
+
+
+

† Product is composite, not passive structure: it aggregates services and passive elements across layers, under a contract. Most cheat sheets file it wrongly. ‡ Plateau aggregates core elements as they stand at one point in time; Gap states the difference between two plateaus.

+
+ +
+

Relationships

+

11 + junction.

+
+
+

Structural — static coherence

+
    +
  • Compositionthe part cannot exist without the whole
  • +
  • Aggregationgroups parts that can exist alone
  • +
  • Assignmentwho performs it, where it runs
  • +
  • Realizationthe concrete one delivers the abstract one
  • +
+
+
+

Dependency — one needs another

+
    +
  • Servingprovides its functionality to another
  • +
  • Accessreads, writes or deletes a passive element
  • +
  • Influenceaffects a motivation element, for or against
  • +
  • Associationa link the language has no word for
  • +
+
+
+

Dynamic — something moves

+
    +
  • Triggeringthis then that — order in time
  • +
  • Flowsomething is transferred — data, money, goods
  • +
+
+
+

Other & connector

+
    +
  • Specializationis a particular kind of
  • +
  • Junctionand / or — joins relationships of one type
  • +
+
+
+ +
+ The derivation rule — the one worth memorising. + A chain of relationships pointing the same way can be replaced by the weakest link in the chain. That is how a diagram stays readable when you zoom out. +
composition › aggregation › assignment › realization › serving › access › influence › association
+
+ +
+

Three pairs that get confused

+

Assignment vs realization. Assignment allocates a performer — an actor does a process. Realization says something concrete delivers something abstract — a process provides a service.

+

Serving vs flow. Serving is a standing offer: it is available to you. Flow is one actual transfer during one run.

+

Composition vs aggregation. A composed part dies with its whole and has exactly one whole. An aggregated part survives on its own and may belong to several.

+
+
+ +
+

Reading the sheet

+
+
+

Placing an element — two questions

+

1. Whom does it serve? That is the layer. Technology serves applications, applications serve the business, the business serves its customers. 2. What kind of thing is it? Active structure does something, behaviour is what is done, passive structure is what it is done to.

+
+
+

Internal or external — the pair people miss

+

Every layer repeats the same pair. A Service is the outward face of behaviour — what others may use. An Interface is the outward face of active structure — where they reach it. Everything else in the layer is internal, and no one outside should depend on it.

+
+
+

Reading the notation

+

Colour is convention, not specification — yellow business, blue application, green technology, purple motivation, tan strategy, pink implementation. The small icon in the top-right corner of a box carries the actual element type; a rounded box is behaviour, a square one is structure.

+
+
+
+ +
+

About this sheet

+
+

Made with Transitrix — an open method for describing a company as text · transitrix.com

+

Element set per the ArchiMate® 3.2 Specification. ArchiMate is a registered trademark of The Open Group.

+

More sheets: transitrix.com/library

+
+
+
+ + + + diff --git a/library/index.html b/library/index.html new file mode 100644 index 0000000..425ab65 --- /dev/null +++ b/library/index.html @@ -0,0 +1,76 @@ + + + + + + Library — free reference sheets | Transitrix + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+

Library

+

Free reference sheets, templates and worked examples. Read the content on the page, take the PDF away — no account, no email address, no form of any kind.

+
+ +
+

Reference sheets

+
+
+
cheat sheet · PDF + web
+

ArchiMate cheat sheet

+

All 60 elements of ArchiMate® 3.2 in one grid, placed by the two questions that decide where an element belongs.

+ Read it → +
+
+
+
+ + + + diff --git a/sitemap.xml b/sitemap.xml index 0963deb..b226cba 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -34,6 +34,14 @@ https://transitrix.com/is-it-open-source/ + + https://transitrix.com/library/ + + + + https://transitrix.com/library/archimate-cheat-sheet/ + + https://transitrix.com/strategy-and-behaviour/