From e7e19821246e132f9736828abba1ae4115d0a388 Mon Sep 17 00:00:00 2001 From: Aymen Fnayou Date: Sun, 25 Oct 2026 18:00:21 +0100 Subject: [PATCH 1/4] feat(brand): add deterministic asset pipeline --- .github/workflows/brand.yml | 29 ++++ Taskfile.yml | 10 ++ brand/data/brand.json | 10 ++ brand/data/facts.json | 14 ++ brand/generated/favicon.svg | 20 +++ brand/generated/logo.svg | 23 +++ brand/generated/readme-banner.svg | 25 +++ brand/generated/social-preview.png | Bin 0 -> 60670 bytes brand/generated/social-preview.svg | 28 ++++ brand/src/favicon.svg | 20 +++ brand/src/logo.svg | 23 +++ brand/src/readme-banner.svg | 25 +++ brand/src/social-preview.svg | 28 ++++ scripts/brand_generate.py | 242 +++++++++++++++++++++++++++++ tests/test_brand_generate.py | 119 ++++++++++++++ 15 files changed, 616 insertions(+) create mode 100644 .github/workflows/brand.yml create mode 100644 brand/data/brand.json create mode 100644 brand/data/facts.json create mode 100644 brand/generated/favicon.svg create mode 100644 brand/generated/logo.svg create mode 100644 brand/generated/readme-banner.svg create mode 100644 brand/generated/social-preview.png create mode 100644 brand/generated/social-preview.svg create mode 100644 brand/src/favicon.svg create mode 100644 brand/src/logo.svg create mode 100644 brand/src/readme-banner.svg create mode 100644 brand/src/social-preview.svg create mode 100644 scripts/brand_generate.py create mode 100644 tests/test_brand_generate.py diff --git a/.github/workflows/brand.yml b/.github/workflows/brand.yml new file mode 100644 index 0000000..ac51e81 --- /dev/null +++ b/.github/workflows/brand.yml @@ -0,0 +1,29 @@ +name: Brand + +on: + push: + branches: [main] + pull_request: + branches: [main] + paths: + - "brand/**" + - "scripts/brand_generate.py" + - "tests/test_brand_generate.py" + - "Taskfile.yml" + - ".github/workflows/brand.yml" + +permissions: + contents: read + +jobs: + brand: + name: Brand assets + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + - uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0 + with: + python-version: "3.11" + - name: Install librsvg2-bin + run: sudo apt-get update && sudo apt-get install -y librsvg2-bin + - run: python scripts/brand_generate.py --check diff --git a/Taskfile.yml b/Taskfile.yml index c723296..5117f6e 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -28,3 +28,13 @@ tasks: - zensical build --strict - python -m unittest tests.test_check_docs -v - python scripts/check_docs.py site + + brand:generate: + desc: Generate ffmpegfyMe brand assets + cmds: + - python3 scripts/brand_generate.py --generate + + brand:check: + desc: Check ffmpegfyMe brand assets are current + cmds: + - python3 scripts/brand_generate.py --check diff --git a/brand/data/brand.json b/brand/data/brand.json new file mode 100644 index 0000000..ab99f27 --- /dev/null +++ b/brand/data/brand.json @@ -0,0 +1,10 @@ +{ + "base": "#24273a", + "mantle": "#1e2030", + "crust": "#181926", + "text": "#cad3f5", + "subtext1": "#b8c0e0", + "surface0": "#363a4f", + "surface1": "#494d64", + "sky": "#91d7e3" +} diff --git a/brand/data/facts.json b/brand/data/facts.json new file mode 100644 index 0000000..dc3b823 --- /dev/null +++ b/brand/data/facts.json @@ -0,0 +1,14 @@ +{ + "output_formats": [ + "MP4", + "MKV" + ], + "max_attempts_per_item": 3, + "default_inactivity_timeout_seconds": 60, + "social_pillars": [ + "Authenticated HTTP/HLS", + "MP4/MKV stream copy", + "Resumable batches with retries" + ], + "readme_banner_tagline": "Download HTTP/HLS streams as MP4 or MKV — no transcoding." +} diff --git a/brand/generated/favicon.svg b/brand/generated/favicon.svg new file mode 100644 index 0000000..49a2edb --- /dev/null +++ b/brand/generated/favicon.svg @@ -0,0 +1,20 @@ + + ffmpegfyMe + + + + + + + + + + + + + + + + + + diff --git a/brand/generated/logo.svg b/brand/generated/logo.svg new file mode 100644 index 0000000..dbfa5a6 --- /dev/null +++ b/brand/generated/logo.svg @@ -0,0 +1,23 @@ + + ffmpegfyMe + + + + + + + + + + + + + + MPEG + + + + + + + diff --git a/brand/generated/readme-banner.svg b/brand/generated/readme-banner.svg new file mode 100644 index 0000000..154b8b5 --- /dev/null +++ b/brand/generated/readme-banner.svg @@ -0,0 +1,25 @@ + + ffmpegfyMe + + + + + + + + + + + + + + + MPEG + + + + + + + Download HTTP/HLS streams as MP4 or MKV — no transcoding. + diff --git a/brand/generated/social-preview.png b/brand/generated/social-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..9dc8089977b49aa4fde6962aa72fcc454ca2a641 GIT binary patch literal 60670 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 ucKvCi}J7fSFdF!>iQzMFrlyD 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 + ffmpegfyMe + + + + + + + + + + + + + + + MPEG + + + + + + + Download HTTP/HLS streams as MP4 or MKV — no transcoding. + Authenticated HTTP/HLS + MP4/MKV stream copy + Resumable batches with retries + diff --git a/brand/src/favicon.svg b/brand/src/favicon.svg new file mode 100644 index 0000000..fdfd1cc --- /dev/null +++ b/brand/src/favicon.svg @@ -0,0 +1,20 @@ + + ffmpegfyMe + + + + + + + + + + + + + + + + + + diff --git a/brand/src/logo.svg b/brand/src/logo.svg new file mode 100644 index 0000000..8f00ba9 --- /dev/null +++ b/brand/src/logo.svg @@ -0,0 +1,23 @@ + + ffmpegfyMe + + + + + + + + + + + + + + MPEG + + + + + + + diff --git a/brand/src/readme-banner.svg b/brand/src/readme-banner.svg new file mode 100644 index 0000000..09a27db --- /dev/null +++ b/brand/src/readme-banner.svg @@ -0,0 +1,25 @@ + + ffmpegfyMe + + + + + + + + + + + + + + + MPEG + + + + + + + {{TAGLINE}} + diff --git a/brand/src/social-preview.svg b/brand/src/social-preview.svg new file mode 100644 index 0000000..0537678 --- /dev/null +++ b/brand/src/social-preview.svg @@ -0,0 +1,28 @@ + + ffmpegfyMe + + + + + + + + + + + + + + + MPEG + + + + + + + {{TAGLINE}} + {{PILLAR_1}} + {{PILLAR_2}} + {{PILLAR_3}} + diff --git a/scripts/brand_generate.py b/scripts/brand_generate.py new file mode 100644 index 0000000..799600b --- /dev/null +++ b/scripts/brand_generate.py @@ -0,0 +1,242 @@ +#!/usr/bin/env python3 +"""Deterministic brand asset generator for ffmpegfyMe.""" + +from __future__ import annotations + +import argparse +import json +import re +import subprocess +import sys +import tempfile +from pathlib import Path + +ROOT_DIR = Path(__file__).resolve().parents[1] +BRAND_DIR = ROOT_DIR / "brand" +SRC_DIR = BRAND_DIR / "src" +DATA_DIR = BRAND_DIR / "data" +GENERATED_DIR = BRAND_DIR / "generated" + +BRAND_DATA_FILE = DATA_DIR / "brand.json" +FACTS_DATA_FILE = DATA_DIR / "facts.json" + +SOURCE_NAMES = ("favicon.svg", "logo.svg", "readme-banner.svg", "social-preview.svg") +GENERATED_NAMES = ("favicon.svg", "logo.svg", "readme-banner.svg", "social-preview.png", "social-preview.svg") + +SOCIAL_PREVIEW_WIDTH = 1280 +SOCIAL_PREVIEW_HEIGHT = 640 +SOCIAL_PREVIEW_MAX_BYTES = 1_000_000 +PNG_SIGNATURE = b"\x89PNG\r\n\x1a\n" + +PALETTE_KEYS = ("base", "mantle", "crust", "text", "subtext1", "surface0", "surface1", "sky") +HEX_COLOR_PATTERN = re.compile(r"^#[0-9a-fA-F]{6}$") + + +class BrandError(Exception): + """Raised when brand data, templates, or generated assets are invalid.""" + + +def _read_json(path: Path) -> dict: + with path.open(encoding="utf-8") as handle: + return json.load(handle) + + +def validate_palette(palette: dict) -> list[str]: + if not isinstance(palette, dict): + return ["brand palette must be a JSON object"] + errors: list[str] = [] + for key in PALETTE_KEYS: + value = palette.get(key) + if not isinstance(value, str) or not HEX_COLOR_PATTERN.fullmatch(value): + errors.append(f"brand palette entry {key} must be a hex color like #24273a") + return errors + + +def validate_facts(facts: dict) -> list[str]: + if not isinstance(facts, dict): + return ["brand facts must be a JSON object"] + errors: list[str] = [] + if facts.get("output_formats") != ["MP4", "MKV"]: + errors.append("brand facts output_formats must be exactly [MP4, MKV]") + if facts.get("max_attempts_per_item") != 3: + errors.append("brand facts max_attempts_per_item must be 3") + if facts.get("default_inactivity_timeout_seconds") != 60: + errors.append("brand facts default_inactivity_timeout_seconds must be 60") + pillars = facts.get("social_pillars") + if not isinstance(pillars, list) or len(pillars) != 3 or not all(isinstance(pillar, str) and pillar.strip() for pillar in pillars): + errors.append("brand facts social_pillars must list three non-empty strings") + tagline = facts.get("readme_banner_tagline") + if not isinstance(tagline, str) or not tagline.strip(): + errors.append("brand facts readme_banner_tagline must be a non-empty string") + return errors + + +def _token_values(palette: dict, facts: dict) -> dict[str, str]: + values: dict[str, str] = {} + for key, value in palette.items(): + if isinstance(key, str) and isinstance(value, str): + values[key.upper()] = value + pillars = facts.get("social_pillars") or [] + values["PILLARS"] = ", ".join(pillars) + values["PILLAR_1"] = pillars[0] if len(pillars) > 0 else "" + values["PILLAR_2"] = pillars[1] if len(pillars) > 1 else "" + values["PILLAR_3"] = pillars[2] if len(pillars) > 2 else "" + values["TAGLINE"] = facts.get("readme_banner_tagline") or "" + return values + + +def _finalize(svg_text: str, palette: dict, facts: dict) -> str: + rendered = svg_text + for token, value in sorted(_token_values(palette, facts).items()): + rendered = rendered.replace("{{" + token + "}}", value) + if "{{" in rendered: + raise BrandError("brand SVG template has unresolved placeholders") + return rendered + + +def _load_source(name: str) -> str: + path = SRC_DIR / name + if not path.is_file(): + raise BrandError(f"missing brand source template: brand/src/{name}") + return path.read_text(encoding="utf-8") + + +def render_logo_svg(palette: dict, facts: dict) -> str: + return _finalize(_load_source("logo.svg"), palette, facts) + + +def render_favicon_svg(palette: dict, facts: dict) -> str: + return _finalize(_load_source("favicon.svg"), palette, facts) + + +def render_readme_banner_svg(palette: dict, facts: dict) -> str: + return _finalize(_load_source("readme-banner.svg"), palette, facts) + + +def render_social_preview_svg(palette: dict, facts: dict) -> str: + return _finalize(_load_source("social-preview.svg"), palette, facts) + + +def render_social_preview_png(svg_text: str) -> bytes: + with tempfile.TemporaryDirectory(prefix="ffmpegfy-brand-") as tmp_dir: + svg_path = Path(tmp_dir) / "social-preview.svg" + png_path = Path(tmp_dir) / "social-preview.png" + svg_path.write_text(svg_text, encoding="utf-8") + try: + completed = subprocess.run( + ["rsvg-convert", "--output", str(png_path), str(svg_path)], + capture_output=True, + check=False, + ) + except FileNotFoundError as error: + raise BrandError("rsvg-convert is not installed; install librsvg2-bin to generate brand PNG assets") from error + if completed.returncode != 0: + detail = completed.stderr.decode("utf-8", errors="replace").strip() + raise BrandError(f"rsvg-convert failed to render social preview PNG: {detail}") + return png_path.read_bytes() + + +def validate_social_preview_png(png_bytes: bytes) -> list[str]: + if png_bytes[:8] != PNG_SIGNATURE: + return ["social preview PNG must start with a PNG signature"] + width = int.from_bytes(png_bytes[16:20], "big") + height = int.from_bytes(png_bytes[20:24], "big") + errors: list[str] = [] + if width != SOCIAL_PREVIEW_WIDTH or height != SOCIAL_PREVIEW_HEIGHT: + errors.append(f"social preview PNG must be {SOCIAL_PREVIEW_WIDTH}x{SOCIAL_PREVIEW_HEIGHT}, got {width}x{height}") + if len(png_bytes) > SOCIAL_PREVIEW_MAX_BYTES: + errors.append(f"social preview PNG must be under {SOCIAL_PREVIEW_MAX_BYTES} bytes, got {len(png_bytes)}") + return errors + + +def render_generated_assets(palette: dict, facts: dict) -> dict[str, bytes]: + errors = validate_palette(palette) + validate_facts(facts) + if errors: + raise BrandError("brand data validation failed: " + "; ".join(errors)) + logo_svg = render_logo_svg(palette, facts) + favicon_svg = render_favicon_svg(palette, facts) + readme_banner_svg = render_readme_banner_svg(palette, facts) + social_preview_svg = render_social_preview_svg(palette, facts) + png_bytes = render_social_preview_png(social_preview_svg) + png_errors = validate_social_preview_png(png_bytes) + if png_errors: + raise BrandError("social preview PNG validation failed: " + "; ".join(png_errors)) + return { + "favicon.svg": favicon_svg.encode("utf-8"), + "logo.svg": logo_svg.encode("utf-8"), + "readme-banner.svg": readme_banner_svg.encode("utf-8"), + "social-preview.svg": social_preview_svg.encode("utf-8"), + "social-preview.png": png_bytes, + } + + +def check_generated_assets(root: Path, assets: dict[str, bytes]) -> list[str]: + errors: list[str] = [] + generated_dir = root / "brand" / "generated" + with tempfile.TemporaryDirectory(prefix="ffmpegfy-brand-check-") as tmp_dir: + temp_dir = Path(tmp_dir) + for filename, content in sorted(assets.items()): + (temp_dir / filename).write_bytes(content) + for filename, content in sorted(assets.items()): + temp_path = temp_dir / filename + path = generated_dir / filename + if not path.is_file(): + errors.append(f"missing generated asset: brand/generated/{filename}") + continue + if path.read_bytes() != temp_path.read_bytes(): + errors.append(f"stale generated asset: brand/generated/{filename}") + return errors + + +def write_generated_assets(root: Path, assets: dict[str, bytes]) -> None: + generated_dir = root / "brand" / "generated" + generated_dir.mkdir(parents=True, exist_ok=True) + for filename, content in sorted(assets.items()): + (generated_dir / filename).write_bytes(content) + + +def generate_brand_assets(root: Path) -> dict[str, bytes]: + palette = _read_json(root / "brand" / "data" / "brand.json") + facts = _read_json(root / "brand" / "data" / "facts.json") + return render_generated_assets(palette, facts) + + +def check_brand_assets(root: Path) -> list[str]: + return check_generated_assets(root, generate_brand_assets(root)) + + +def write_brand_assets(root: Path) -> None: + assets = generate_brand_assets(root) + write_generated_assets(root, assets) + + +def main(argv: list[str] | None = None) -> int: + parser = argparse.ArgumentParser(description="Generate and check ffmpegfyMe brand assets.") + parser.add_argument("--generate", action="store_true", help="Write generated brand assets.") + parser.add_argument("--check", action="store_true", help="Check generated brand assets are current.") + args = parser.parse_args(argv) + if args.generate == args.check: + parser.error("specify exactly one of --generate or --check") + try: + if args.generate: + assets = generate_brand_assets(ROOT_DIR) + write_generated_assets(ROOT_DIR, assets) + for filename in sorted(assets): + content = assets[filename] + detail = f"{len(content)} bytes" if filename.endswith(".png") else "SVG" + print(f"generated brand asset: brand/generated/{filename} ({detail})") + else: + errors = check_brand_assets(ROOT_DIR) + if errors: + for error in errors: + print(f"brand check failed: {error}", file=sys.stderr) + return 1 + print("Brand assets are up to date.") + except BrandError as error: + print(f"brand error: {error}", file=sys.stderr) + return 1 + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/tests/test_brand_generate.py b/tests/test_brand_generate.py new file mode 100644 index 0000000..e7d18f5 --- /dev/null +++ b/tests/test_brand_generate.py @@ -0,0 +1,119 @@ +import tempfile +import unittest +from pathlib import Path + +from scripts.brand_generate import ( + BrandError, + check_generated_assets, + render_favicon_svg, + render_generated_assets, + render_logo_svg, + render_readme_banner_svg, + render_social_preview_svg, + validate_facts, + validate_palette, + validate_social_preview_png, + write_generated_assets, +) + + +VALID_PALETTE = { + "base": "#24273a", + "mantle": "#1e2030", + "crust": "#181926", + "text": "#cad3f5", + "subtext1": "#b8c0e0", + "surface0": "#363a4f", + "surface1": "#494d64", + "sky": "#91d7e3", +} + +VALID_FACTS = { + "output_formats": ["MP4", "MKV"], + "max_attempts_per_item": 3, + "default_inactivity_timeout_seconds": 60, + "social_pillars": [ + "Authenticated HTTP/HLS", + "MP4/MKV stream copy", + "Resumable batches with retries", + ], + "readme_banner_tagline": "Download HTTP/HLS streams as MP4 or MKV — no transcoding.", +} + + +class BrandGenerateTests(unittest.TestCase): + def test_palette_requires_accepted_hex_colors(self) -> None: + self.assertEqual(validate_palette(VALID_PALETTE), []) + + invalid = dict(VALID_PALETTE, sky="91d7e3") + self.assertIn( + "brand palette entry sky must be a hex color like #24273a", + validate_palette(invalid), + ) + + def test_facts_must_match_verified_metrics(self) -> None: + self.assertEqual(validate_facts(VALID_FACTS), []) + + invalid_attempts = dict(VALID_FACTS, max_attempts_per_item=5) + self.assertTrue(any("max_attempts_per_item" in error for error in validate_facts(invalid_attempts))) + + invalid_timeout = dict(VALID_FACTS, default_inactivity_timeout_seconds=30) + self.assertTrue(any("default_inactivity_timeout_seconds" in error for error in validate_facts(invalid_timeout))) + + def test_rendered_brand_svg_assets_are_deterministic(self) -> None: + self.assertEqual(render_logo_svg(VALID_PALETTE, VALID_FACTS), render_logo_svg(VALID_PALETTE, VALID_FACTS)) + self.assertEqual(render_favicon_svg(VALID_PALETTE, VALID_FACTS), render_favicon_svg(VALID_PALETTE, VALID_FACTS)) + self.assertEqual(render_readme_banner_svg(VALID_PALETTE, VALID_FACTS), render_readme_banner_svg(VALID_PALETTE, VALID_FACTS)) + self.assertEqual(render_social_preview_svg(VALID_PALETTE, VALID_FACTS), render_social_preview_svg(VALID_PALETTE, VALID_FACTS)) + + def test_rendered_brand_svg_assets_use_accepted_copy(self) -> None: + logo = render_logo_svg(VALID_PALETTE, VALID_FACTS) + self.assertIn(VALID_PALETTE["sky"], logo) + self.assertIn(VALID_PALETTE["text"], logo) + + banner = render_readme_banner_svg(VALID_PALETTE, VALID_FACTS) + self.assertIn(VALID_FACTS["readme_banner_tagline"], banner) + + def test_rendered_brand_assets_validate_social_preview_png(self) -> None: + assets = render_generated_assets(VALID_PALETTE, VALID_FACTS) + self.assertEqual(validate_social_preview_png(assets["social-preview.png"]), []) + + invalid_png = b"\x89PNG\r\n\x1a\n" + b"\x00\x00\x00\x0D" + b"IHDR" + b"\x00\x00\x00\x05" + b"\x00\x00\x00\x03" + b"\x00" * 20 + invalid_png_errors = validate_social_preview_png(invalid_png) + self.assertTrue(any("social preview PNG must be 1280x640" in error for error in invalid_png_errors)) + + def test_rendered_brand_assets_reject_invalid_data(self) -> None: + with self.assertRaises(BrandError): + render_generated_assets(dict(VALID_PALETTE, sky="red"), VALID_FACTS) + + def test_social_preview_renders_three_separate_pillar_lines(self) -> None: + social_preview = render_social_preview_svg(VALID_PALETTE, VALID_FACTS) + self.assertIn(VALID_FACTS["social_pillars"][0], social_preview) + self.assertIn(VALID_FACTS["social_pillars"][1], social_preview) + self.assertIn(VALID_FACTS["social_pillars"][2], social_preview) + + def test_check_detects_missing_and_stale_generated_assets(self) -> None: + with tempfile.TemporaryDirectory() as tmp_dir: + root = Path(tmp_dir) + assets = render_generated_assets(VALID_PALETTE, VALID_FACTS) + write_generated_assets(root, assets) + + self.assertEqual(check_generated_assets(root, assets), []) + + logo_path = root / "brand" / "generated" / "logo.svg" + logo_path.write_bytes(b"stale") + self.assertEqual(check_generated_assets(root, assets), ["stale generated asset: brand/generated/logo.svg"]) + + favicon_path = root / "brand" / "generated" / "favicon.svg" + favicon_path.unlink() + self.assertEqual( + check_generated_assets(root, assets), + [ + "missing generated asset: brand/generated/favicon.svg", + "stale generated asset: brand/generated/logo.svg", + ], + ) + + +if __name__ == "__main__": + unittest.main() From 23ae52becc44d6948aaf8d108264d58c05ac5aad Mon Sep 17 00:00:00 2001 From: Aymen Fnayou Date: Sun, 25 Oct 2026 18:09:48 +0100 Subject: [PATCH 2/4] fix(brand): make PNG freshness portable --- .github/workflows/brand.yml | 3 +- brand/generated/social-preview.json | 5 +++ scripts/brand_generate.py | 66 +++++++++++++++++++++++++++-- tests/test_brand_generate.py | 66 +++++++++++++++++++++++++++-- 4 files changed, 132 insertions(+), 8 deletions(-) create mode 100644 brand/generated/social-preview.json diff --git a/.github/workflows/brand.yml b/.github/workflows/brand.yml index ac51e81..2fbd97f 100644 --- a/.github/workflows/brand.yml +++ b/.github/workflows/brand.yml @@ -26,4 +26,5 @@ jobs: python-version: "3.11" - name: Install librsvg2-bin run: sudo apt-get update && sudo apt-get install -y librsvg2-bin - - run: python scripts/brand_generate.py --check + - run: python3 -m unittest tests.test_brand_generate.BrandGenerateTests.test_rsvg_convert_integration -v + - run: python3 scripts/brand_generate.py --check diff --git a/brand/generated/social-preview.json b/brand/generated/social-preview.json new file mode 100644 index 0000000..a9dc7f1 --- /dev/null +++ b/brand/generated/social-preview.json @@ -0,0 +1,5 @@ +{ + "png_sha256": "d6400f336ff5072e80179a321d44bf83e0a65b878d25614130f922d390d1b1a5", + "rsvg_convert_version": "rsvg-convert version 2.63.4\n\nlibraries used:\n cairo 1.18.6\n pango 1.58.2\n harfbuzz 15.0.0\n fontconfig 2.18.3", + "source_sha256": "f141b5ecc395acec896291398958e7078ff61a86f743adce69a041d16ee967e2" +} diff --git a/scripts/brand_generate.py b/scripts/brand_generate.py index 799600b..802ea44 100644 --- a/scripts/brand_generate.py +++ b/scripts/brand_generate.py @@ -4,6 +4,7 @@ from __future__ import annotations import argparse +import hashlib import json import re import subprocess @@ -21,7 +22,8 @@ FACTS_DATA_FILE = DATA_DIR / "facts.json" SOURCE_NAMES = ("favicon.svg", "logo.svg", "readme-banner.svg", "social-preview.svg") -GENERATED_NAMES = ("favicon.svg", "logo.svg", "readme-banner.svg", "social-preview.png", "social-preview.svg") +GENERATED_NAMES = ("favicon.svg", "logo.svg", "readme-banner.svg", "social-preview.png", "social-preview.svg", "social-preview.json") +SOCIAL_PREVIEW_METADATA = "social-preview.json" SOCIAL_PREVIEW_WIDTH = 1280 SOCIAL_PREVIEW_HEIGHT = 640 @@ -136,9 +138,22 @@ def render_social_preview_png(svg_text: str) -> bytes: return png_path.read_bytes() +def rsvg_convert_version() -> str: + try: + completed = subprocess.run(["rsvg-convert", "--version"], capture_output=True, check=False) + except FileNotFoundError as error: + raise BrandError("rsvg-convert is not installed; install librsvg2-bin to generate brand PNG assets") from error + if completed.returncode != 0: + detail = completed.stderr.decode("utf-8", errors="replace").strip() + raise BrandError(f"rsvg-convert failed to report its version: {detail}") + return completed.stdout.decode("utf-8", errors="replace").strip() + + def validate_social_preview_png(png_bytes: bytes) -> list[str]: if png_bytes[:8] != PNG_SIGNATURE: return ["social preview PNG must start with a PNG signature"] + if len(png_bytes) < 24: + return ["social preview PNG must include an IHDR chunk"] width = int.from_bytes(png_bytes[16:20], "big") height = int.from_bytes(png_bytes[20:24], "big") errors: list[str] = [] @@ -161,12 +176,18 @@ def render_generated_assets(palette: dict, facts: dict) -> dict[str, bytes]: png_errors = validate_social_preview_png(png_bytes) if png_errors: raise BrandError("social preview PNG validation failed: " + "; ".join(png_errors)) + metadata = { + "source_sha256": hashlib.sha256(social_preview_svg.encode("utf-8")).hexdigest(), + "png_sha256": hashlib.sha256(png_bytes).hexdigest(), + "rsvg_convert_version": rsvg_convert_version(), + } return { "favicon.svg": favicon_svg.encode("utf-8"), "logo.svg": logo_svg.encode("utf-8"), "readme-banner.svg": readme_banner_svg.encode("utf-8"), "social-preview.svg": social_preview_svg.encode("utf-8"), "social-preview.png": png_bytes, + SOCIAL_PREVIEW_METADATA: (json.dumps(metadata, indent=2, sort_keys=True) + "\n").encode("utf-8"), } @@ -202,7 +223,46 @@ def generate_brand_assets(root: Path) -> dict[str, bytes]: def check_brand_assets(root: Path) -> list[str]: - return check_generated_assets(root, generate_brand_assets(root)) + palette = _read_json(root / "brand" / "data" / "brand.json") + facts = _read_json(root / "brand" / "data" / "facts.json") + errors = validate_palette(palette) + validate_facts(facts) + if errors: + raise BrandError("brand data validation failed: " + "; ".join(errors)) + svg_assets = { + "favicon.svg": render_favicon_svg(palette, facts).encode("utf-8"), + "logo.svg": render_logo_svg(palette, facts).encode("utf-8"), + "readme-banner.svg": render_readme_banner_svg(palette, facts).encode("utf-8"), + "social-preview.svg": render_social_preview_svg(palette, facts).encode("utf-8"), + } + errors = check_generated_assets(root, svg_assets) + generated_dir = root / "brand" / "generated" + png_path = generated_dir / "social-preview.png" + metadata_path = generated_dir / SOCIAL_PREVIEW_METADATA + if not png_path.is_file(): + errors.append("missing generated asset: brand/generated/social-preview.png") + return errors + if not metadata_path.is_file(): + errors.append("missing generated asset: brand/generated/social-preview.json") + return errors + try: + metadata = json.loads(metadata_path.read_text(encoding="utf-8")) + except (OSError, json.JSONDecodeError): + errors.append("invalid generated metadata: brand/generated/social-preview.json") + return errors + if not isinstance(metadata, dict): + errors.append("invalid generated metadata: brand/generated/social-preview.json") + return errors + png_bytes = png_path.read_bytes() + source_hash = hashlib.sha256(svg_assets["social-preview.svg"]).hexdigest() + png_hash = hashlib.sha256(png_bytes).hexdigest() + if metadata.get("source_sha256") != source_hash: + errors.append("stale generated metadata: brand/generated/social-preview.json source_sha256") + if metadata.get("png_sha256") != png_hash: + errors.append("stale generated metadata: brand/generated/social-preview.json png_sha256") + if not isinstance(metadata.get("rsvg_convert_version"), str) or not metadata["rsvg_convert_version"].strip(): + errors.append("invalid generated metadata: brand/generated/social-preview.json rsvg_convert_version") + errors.extend(validate_social_preview_png(png_bytes)) + return errors def write_brand_assets(root: Path) -> None: @@ -223,7 +283,7 @@ def main(argv: list[str] | None = None) -> int: write_generated_assets(ROOT_DIR, assets) for filename in sorted(assets): content = assets[filename] - detail = f"{len(content)} bytes" if filename.endswith(".png") else "SVG" + detail = f"{len(content)} bytes" if filename.endswith(".png") else "JSON" if filename.endswith(".json") else "SVG" print(f"generated brand asset: brand/generated/{filename} ({detail})") else: errors = check_brand_assets(ROOT_DIR) diff --git a/tests/test_brand_generate.py b/tests/test_brand_generate.py index e7d18f5..ce3049a 100644 --- a/tests/test_brand_generate.py +++ b/tests/test_brand_generate.py @@ -1,9 +1,14 @@ +import json +import shutil +import subprocess import tempfile import unittest +from unittest.mock import patch from pathlib import Path from scripts.brand_generate import ( BrandError, + check_brand_assets, check_generated_assets, render_favicon_svg, render_generated_assets, @@ -42,6 +47,16 @@ class BrandGenerateTests(unittest.TestCase): + @staticmethod + def valid_png(width: int = 1280, height: int = 640) -> bytes: + return b"\x89PNG\r\n\x1a\n" + b"\x00\x00\x00\x0dIHDR" + width.to_bytes(4, "big") + height.to_bytes(4, "big") + b"\x08\x02\x00\x00\x00" + b"\x00" * 20 + + def render_assets_without_rsvg(self) -> dict[str, bytes]: + with patch("scripts.brand_generate.render_social_preview_png", return_value=self.valid_png()), patch( + "scripts.brand_generate.rsvg_convert_version", return_value="rsvg-convert mock" + ): + return render_generated_assets(VALID_PALETTE, VALID_FACTS) + def test_palette_requires_accepted_hex_colors(self) -> None: self.assertEqual(validate_palette(VALID_PALETTE), []) @@ -75,7 +90,7 @@ def test_rendered_brand_svg_assets_use_accepted_copy(self) -> None: self.assertIn(VALID_FACTS["readme_banner_tagline"], banner) def test_rendered_brand_assets_validate_social_preview_png(self) -> None: - assets = render_generated_assets(VALID_PALETTE, VALID_FACTS) + assets = self.render_assets_without_rsvg() self.assertEqual(validate_social_preview_png(assets["social-preview.png"]), []) invalid_png = b"\x89PNG\r\n\x1a\n" + b"\x00\x00\x00\x0D" + b"IHDR" + b"\x00\x00\x00\x05" + b"\x00\x00\x00\x03" + b"\x00" * 20 @@ -83,8 +98,9 @@ def test_rendered_brand_assets_validate_social_preview_png(self) -> None: self.assertTrue(any("social preview PNG must be 1280x640" in error for error in invalid_png_errors)) def test_rendered_brand_assets_reject_invalid_data(self) -> None: - with self.assertRaises(BrandError): - render_generated_assets(dict(VALID_PALETTE, sky="red"), VALID_FACTS) + with patch("scripts.brand_generate.render_social_preview_png"): + with self.assertRaises(BrandError): + render_generated_assets(dict(VALID_PALETTE, sky="red"), VALID_FACTS) def test_social_preview_renders_three_separate_pillar_lines(self) -> None: social_preview = render_social_preview_svg(VALID_PALETTE, VALID_FACTS) @@ -95,7 +111,7 @@ def test_social_preview_renders_three_separate_pillar_lines(self) -> None: def test_check_detects_missing_and_stale_generated_assets(self) -> None: with tempfile.TemporaryDirectory() as tmp_dir: root = Path(tmp_dir) - assets = render_generated_assets(VALID_PALETTE, VALID_FACTS) + assets = self.render_assets_without_rsvg() write_generated_assets(root, assets) self.assertEqual(check_generated_assets(root, assets), []) @@ -114,6 +130,48 @@ def test_check_detects_missing_and_stale_generated_assets(self) -> None: ], ) + def test_brand_check_uses_metadata_to_detect_stale_png_without_rendering(self) -> None: + with tempfile.TemporaryDirectory() as tmp_dir: + root = Path(tmp_dir) + data_dir = root / "brand" / "data" + data_dir.mkdir(parents=True) + (data_dir / "brand.json").write_text(json.dumps(VALID_PALETTE), encoding="utf-8") + (data_dir / "facts.json").write_text(json.dumps(VALID_FACTS), encoding="utf-8") + assets = self.render_assets_without_rsvg() + write_generated_assets(root, assets) + + with patch("scripts.brand_generate.render_social_preview_png", side_effect=AssertionError("renderer called")): + self.assertEqual(check_brand_assets(root), []) + changed_facts = dict(VALID_FACTS, readme_banner_tagline="A changed tagline.") + (data_dir / "facts.json").write_text(json.dumps(changed_facts), encoding="utf-8") + self.assertEqual( + check_brand_assets(root), + [ + "stale generated asset: brand/generated/readme-banner.svg", + "stale generated asset: brand/generated/social-preview.svg", + "stale generated metadata: brand/generated/social-preview.json source_sha256", + ], + ) + (data_dir / "facts.json").write_text(json.dumps(VALID_FACTS), encoding="utf-8") + (root / "brand" / "generated" / "social-preview.png").write_bytes(self.valid_png() + b"stale") + self.assertEqual( + check_brand_assets(root), + ["stale generated metadata: brand/generated/social-preview.json png_sha256"], + ) + + @unittest.skipUnless(shutil.which("rsvg-convert"), "rsvg-convert is unavailable") + def test_rsvg_convert_integration(self) -> None: + svg = '' + with tempfile.TemporaryDirectory() as tmp_dir: + svg_path = Path(tmp_dir) / "small.svg" + png_path = Path(tmp_dir) / "small.png" + svg_path.write_text(svg, encoding="utf-8") + subprocess.run(["rsvg-convert", "--output", str(png_path), str(svg_path)], check=True) + png_bytes = png_path.read_bytes() + self.assertEqual(png_bytes[:8], b"\x89PNG\r\n\x1a\n") + self.assertEqual((int.from_bytes(png_bytes[16:20], "big"), int.from_bytes(png_bytes[20:24], "big")), (2, 3)) + self.assertGreater(len(png_bytes), 24) + if __name__ == "__main__": unittest.main() From b77096fd60f14d87581f11a24870c0d8f8c30bd4 Mon Sep 17 00:00:00 2001 From: Aymen Fnayou Date: Sun, 25 Oct 2026 18:49:21 +0100 Subject: [PATCH 3/4] feat(brand): adopt selected Claude identity --- brand/generated/logo.svg | 56 ++++++++++++++-------- brand/generated/readme-banner.svg | 79 +++++++++++++++++++++++-------- brand/src/logo.svg | 56 ++++++++++++++-------- brand/src/readme-banner.svg | 79 +++++++++++++++++++++++-------- 4 files changed, 188 insertions(+), 82 deletions(-) diff --git a/brand/generated/logo.svg b/brand/generated/logo.svg index dbfa5a6..3b32a44 100644 --- a/brand/generated/logo.svg +++ b/brand/generated/logo.svg @@ -1,23 +1,39 @@ - + ffmpegfyMe - - - - - - - - - - - - - - MPEG - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/brand/generated/readme-banner.svg b/brand/generated/readme-banner.svg index 154b8b5..365166f 100644 --- a/brand/generated/readme-banner.svg +++ b/brand/generated/readme-banner.svg @@ -1,25 +1,62 @@ - + ffmpegfyMe - - - - - - - - - + Download HTTP/HLS streams as MP4 or MKV — no transcoding. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + Download HTTP/HLS streams as MP4 or MKV — no transcoding. + + + + + Authenticated HTTP/HLS + + + MP4/MKV stream copy + + + Resumable batches with retries - MPEG - - - - - - - Download HTTP/HLS streams as MP4 or MKV — no transcoding. diff --git a/brand/src/logo.svg b/brand/src/logo.svg index 8f00ba9..0b0d47e 100644 --- a/brand/src/logo.svg +++ b/brand/src/logo.svg @@ -1,23 +1,39 @@ - + ffmpegfyMe - - - - - - - - - - - - - - MPEG - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/brand/src/readme-banner.svg b/brand/src/readme-banner.svg index 09a27db..6e01252 100644 --- a/brand/src/readme-banner.svg +++ b/brand/src/readme-banner.svg @@ -1,25 +1,62 @@ - + ffmpegfyMe - - - - - - - - - + {{TAGLINE}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + {{TAGLINE}} + + + + + {{PILLAR_1}} + + + {{PILLAR_2}} + + + {{PILLAR_3}} - MPEG - - - - - - - {{TAGLINE}} From 4fb710bba5dd1b04d952aefff567b285e2a4f57a Mon Sep 17 00:00:00 2001 From: Aymen Fnayou Date: Sun, 25 Oct 2026 18:58:06 +0100 Subject: [PATCH 4/4] feat(brand): align favicon and social preview identity --- brand/generated/favicon.svg | 41 ++++++++++++++--------- brand/generated/social-preview.json | 4 +-- brand/generated/social-preview.png | Bin 60670 -> 69741 bytes brand/generated/social-preview.svg | 50 +++++++++++++++++----------- brand/src/favicon.svg | 41 ++++++++++++++--------- brand/src/social-preview.svg | 50 +++++++++++++++++----------- 6 files changed, 114 insertions(+), 72 deletions(-) diff --git a/brand/generated/favicon.svg b/brand/generated/favicon.svg index 49a2edb..108aa7c 100644 --- a/brand/generated/favicon.svg +++ b/brand/generated/favicon.svg @@ -1,20 +1,29 @@ ffmpegfyMe - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/brand/generated/social-preview.json b/brand/generated/social-preview.json index a9dc7f1..14f0205 100644 --- a/brand/generated/social-preview.json +++ b/brand/generated/social-preview.json @@ -1,5 +1,5 @@ { - "png_sha256": "d6400f336ff5072e80179a321d44bf83e0a65b878d25614130f922d390d1b1a5", + "png_sha256": "da3a098556eb90e92a785d3537a090ce9f9a81a89da916c2bf34eaf52718e295", "rsvg_convert_version": "rsvg-convert version 2.63.4\n\nlibraries used:\n cairo 1.18.6\n pango 1.58.2\n harfbuzz 15.0.0\n fontconfig 2.18.3", - "source_sha256": "f141b5ecc395acec896291398958e7078ff61a86f743adce69a041d16ee967e2" + "source_sha256": "cb7131a6cb31870dcbcac8f83576ce5f6fee7d4edf127157987e0641f151b656" } diff --git a/brand/generated/social-preview.png b/brand/generated/social-preview.png index 9dc8089977b49aa4fde6962aa72fcc454ca2a641..db2b3be1d79ea579e7780b0760e5a107b0e6a99f 100644 GIT binary patch literal 69741 zcmeEtWmuG5+b&(wAPCYeDcv9`-Q9w8OE(fCUD5*5!VuCOf^;)snWy=d~i$RNiA@kYd2W!C}eENo&BtAp?&H!DtA;H>E_$8{iv? zx#D|iIM_d5KiW%@;ozv?E6XPYuDyZ)!xKd5wf8ZKe2z4KyKXJ(bOOc>yhWWHx0QT-ix#r8}K7EfTq1 zE>V7Szr5!o7XMQ}ItK|@8~7L8Nqdj|?;~8->jXH&zt8X9y+gqK_qXuy=x_ghLPDbJ z`u7PJ_y51~|EuS(E&RVX3W;tnxMx|KRHl#+%TLWl49NrA<{C;-@*2`n(li}Xp|8oX zQFneY30syx_@Wmas`W;84K!m{thR)C{z`mCMc1{g#uOqc)f19J&6V-}RIdv;QI3u% zvbRuAK@Po{W*a8%T%B$o(^po8kzATOe)sq9y0{bITEpoEf4OLTdm~+#h*KpGT5|b> zDL7WAv#<=YFb^?BZ3;8}eeXIZzFDfAM!805kG37>n_Xd|^>ihMxx;)dQb!qmTOa+> z?3zn*yua^tfkS_5L6gYD%4!6PrRl{g?7)sF=+m<-ujI+Hvs13u0WCPys$;i?e)1OA zvPt+#m`GEtN0X?qBN0W_OruAFPgIWCZkgMVP6*;{IYX=ODEwJd^S#Oj{+~||X34i= z^SvMsCh1^BZSX|9Qd9Tdeb??2WurC@Ev05)bHYPSEDp{_O zKPabWDLU#!8Ho8F<6jS1rqi+Cx{v#f`c;}Hn_U4E-O|h_w{VPnuUlm#rfaNy;_|~V zDc41S$-*PNLtsr}A%%M5x~l0bos?9MTvB;O#Rk9RUn$H`(SO+kdSYhg6Or_|WMmn_ zN@KUu()lJtHotrnL5BU_!^1KoPmf)fiSYMzE)E7p>d?oTK06AFe`A^_aC}twk>=)G zQj$G~;#)3iKF!3JRmR1?=H}KGjvH#G@UuoqiHOuqF;a(LN?iOXvnvlr`Df`fPPyQ0 zyh!QE$!cn9m}RF9=w4FC*HY$9y!z*~nO7iY=Amv{o=w;(lr3fOBUc8VhuL3=b3>5k zNwV3QSsy!7#;r6*!y)dq&8htf!Nh!^qBbK+ipt8<82U68X*zvPi*5dY!|V^7J-9V> z8$ItZ1x?ud+R__;oy<|I>p$&s)zZu(nyplo*Z_ zUoO}VvMmko@MHhhDCJ?$WP6bOyY)K^x-P6_1Gt+^WwA3a2}`Us7s^v#=pV2dcq9yMd*nt&Me$}S3sAoLXJ=iE zX6WvS(lqK0Mj=|vAZS64gzcQ^0iK-2oVTBLLoBu$DYQH~}N1^JDX z)J$P|UAny>WLjDMrmRdM_NMPMV90Xpx>`D^ZoJ}ub>@xD+=YeqA{ubeLs)v6Uui?? za77MRvn2719Bb-qP~QfXgHG*=RjsCHNLRB0qO7k?H;oC9Wqz27oQZ- z$tQhMtFPxZQvNq(=e)Zh5B`-vM?&#zy0_Q;XoQ_MHuMprp1tM7B5Txqf;iJIR__eL z8MkOqAYp1#yJ}-xJlQ+6EiqP=H*U`Pl4yGtrd~9aK=;i1H(H>PuGYZff4QXSJ;I`s z9cPm^kBml@k_y>d)K`YAflp+5Q@7OQpoWQ6vs8X9_)Cs%N~UjyL(I!m{`~rZIFYV* zgP)uP>+k*%!jSHQq{H4%2N`L&XXgtn&5)2*Rv!7vsB7ulqR)!>#r8;~q!7(HRud@} z=55$jS`|ZXHaG3BgD_u6{abuc*~kUMXmycha!(Ik1QZl5nlm#96(xI|%F8RunPiUV zh9RDY+Lrn&{U0_+HCT7;tO8smo@y~Oj2QNuB6l8@bZ1EMxT&AoJLx9^ApG)^ljwlC%E10JS9Y-IpIf)*s^SW3(Ih-U3$1!2U*$ z#B3qg3}}*c_%qHo9mvtTKw_Dh z)tZBGGNH+s{r%w2k_i5xkm8sDJ!2mzT#8T<-RZnYB%OSUP}%QJ{A7L&hO3Uv?9sq2 z`h>5q0}XzkXm{MB$}%_$)c=i?aI4h7#@Ul+f*iPbCrT9Xw#~PGZekaSS8w+TxwRth znC1vRcm7gUAT@a$KhdsiKR}iB1mocUT^kJpfBiMx6b!?QLG$<+(Mg{`F(_Ehed`h% zBLqZjRBhP#sJPtU7pa)!g8zC892M1%52`Cv8~}0RJDBMd!5)-R@4GI-k#EB!1V!MgC`{ zSHMct_>o_*DTOyC_fEgrt*YP=icooYcRovbI#XZP=7SS>7P^&BEf#yNkGwg)Vo%I}(@3zJc|Bjw=_@3O zg2|a6qx7Kb8~9H$30llvTv8R)Eycx$H{&dX3NmVMC2)zN7tA@E$=_Jm#d;nHQ1F1QJ?%reFZJM42e+MBpQt!XNg~|% z99OwSBm*|*KbXe!TOy}lgJLlLrsUwWJai&N&n#_Ih~iTOWuU*g2KeJx3AqSlwQc$P zaVKp1=$vO@&&2Yt%s~}czG3&s##~NptBP=^959&V_5NFgd`3b46@;I>No>Ww z?&1cixQwRPv~H(K7Ca)R-~QJEsNksKZ&b5S56NGWzjt%7w3N}Ydgy(z7t?3=&^RH} zw=8^uM;ZI?u_NH#z(Gqs^z=`Wq^4v%AM56R7tYd|d(fl9r*CxNcE6in4bXIUg7;v& zjSKLG`_W+J=S}jSEV}2B2O8ZEX_` z4TlNh*9uXJS2E4I>}hFfzHF~#?;he@dmT9MhdS|+2#;tA@+~&=3(N~Fw(|4MfnvN_ zi9LBZBt(i316cx>A-S|q&yg={)JoGawz{FAxUlKhk9FSQ?Vh;pZp?o7}6~%gI_HoFfXA_lsu?mY{8o~bopYaYA?-roMS}DG}W}r3y30J z>Hjp@{{2*Fqsf|w;$j|;R1w?}@Atd44MM1Z^0*8%B>4SaMJMRd(ZL}k8NLYR>1q&X zX10mxvt7OVu&yH}PPB^{WD93?wcV{&^$!6)DIPwl3a+$FMo0el;oA`M)~gEGUH82b zwso;8bBfr*pF;T1FKep~G5J3OS{noI?}b418*VWHc#Wo2$qQjWrqwOWZ63soi!|dwcls;){Ky`^yzOU5pjl>yS(WYhD`zPu#+j0xk%XEqz z_MIb1d@~sw7CY1Js}%JF#hy-x&`flgz`=q=yZG-$Db}A6PYxyy*clNW_>MAf*9x2E z1Yo{SwcFp)^{mC|NGqILG zrPuW*Fhr(#lL!|c89G8Kei$8tJepfAi`)AO)MY#Z1b;~0D)YRpX#tw_C zNm#}?QWBl8J4EQ@bAL{j2*~>MnX@|fk2#K5A<)xA#%8%6t?uO{T4eD!Zn&uR%7lA8 zD4$qs#crY~=T2QtMogoh)8L^hzS^c9y1Q{)!jz{+Q=bf1gg3;}Dbuzf>Rh#3U!f+g z*JH(trl%(LFyD)lH*Vb~6Sd+!zw8=w`-X>Sk-EHbBo5F($bfgBZ0uO``AR3Ei8x*yv8s`!(vGlNlKq;+MO+ z+B)9caL)LO^zFIcbRLU@+D5E<$%-Fq03~Ey@0%p}R2FwTcSd;8q$>2W1{!BgzXQdY zX-oSnkd!jWX5hEs8F)tS7BV)D89^BJ1Fzu3wEiYqo?|4|aofD{YY8$kDvlEQ z^9}UKdNiQjHQDMBWeYtov87sZb^ooMz?++OoL@p>C(mA~4HP_GZjHFbe4(1JM^KJz zlJTKpw}t#$=XD+9q6d#hj@$w>S?6$Y0fA5khPS=Fj3}rq+3|uNn`mHLRSGZH$WWUm zzuJk-bKQz1_d;>KJhV(P`#dd%OCymS+LXcKaf5-MFB68Hu?tRf5_nZrd>qfCNZd?j z4)aBQX*=)ZRwCy*x^mi~osGU*Vf{IprS+@LwB&U1o(Hq`gBSI+Ccd;{9h_?$E(}7= z_n|DQ@9F($tJ4Mw5sO9Eo;Fb1T{t#uCadBv;Q^;jhThz$yv<2nZuC;H3)-_V3Y3Bi z=8y}1Qn>s`e4V?Q|0rCc?YUV9GA_{NFujTd!VWug)Z|@QpE89H#0Lj?OFdppj5Ck3 z_M!uj7z{`pDV^`M0%Z+4-TJK3h~6}q+hKuq(M|k{V9DmWyU`@Q`kh+o=_t?xr&Wrk zwcnl>mU4uLhhLJ%wUX952ApP9F@0mF82AJ_db;%>7oW}Y+SWBDX4*qh3e=fl8hi2E zTg%(s9Tqv>L?*lU8Ue2D9Rfr*vr*1fj7s>3HQIJOM^HN<*Q=zHZD3s3Z};0j#-eu> zNzUW06~8LhAX#O2D^@Bc%hf)#!ynPZ-im-nNcMR3hlG2#jTE1BH}d}JRM_)HL{I3_ zjhx0~SC49E?I)?Fn`}`p;>rZNg%Z=lRuJFKiEzTH-aMF3h3x#os5B(Pt*lk`)tcu# z)#+Lqu?A@;Ng+n>1hKW;wpcS#X`CK237=OB>-@DOozNOC+&VJ8S!dGxeD7xEiv9Rti0YGoZTUVcxc`CEU3~_@M(;zG3g=jE0WK;iArmgIzCQ!~QNVoKwbTUzB5X zmmXRH-YaFSi#=`9W!zTW-v)fLau*j8+h;7)NY0mj$^_SCd>0E52da^5e$;%X!^0HC z@;&i1AK!;R5sP)l-{uPelmRf(5dpWP7PsgipmJ=qUo7vvLst#F>}3Q*>kf?Ztx1Q!0$V4zjmz#ju3IH0CE`0xDOwA- zK4_>A7bFv#u>U2~xfe^?tf#6aCMfM%7RB!0?JFl<<_fRX9 z^ErZbI0OuQGg#vO;dE4Yh`m*mti0E+>M;{^wv2aiy{M3tYdRWf;$@}P{xk~M{SFF6eyNd<@Jfg|8otIbE zWaA+zSqk)3VWiyo`hsTr@_Q^e5hV0q zu&>c>u3tW$qztb{7RF6%entUY{SA0`H20~^#B{`q6-%wOKDl_Lm%xiZvNtKi&BX7r zUSAiXTtY}QgT&U<@!@L^dXdJ#w(aG~;bdBmVEB*ml~9`L%$KKaPGuE4!l}Y`;^yfz zF()195k0O41Cw=YFeU-7=bO!jP%0(afdCf2r3n^%LTjRPsa*-lTEd?4)#^-*Jw znbMSE0V`7ZNmaP5+^3qe;?&1*Onm&tmJxdk1Rgb>8Wrkk&v7)h2 zG!YbWeH^;-L4XWNC2em5Vd#rbVT$VybtL4`?9M;n_efBn)4PEzw*W;IXl7{UJ6DGP zYPaQc+S9DRCtOGxBiQSG7{>j=M6wm~e3zr=imQ+$XP-`8Kn$Ke0!;Zs|`+bb^)- zZ8~p`n={pd4I1pYtygJ2P(;sMoOJN$f_8IMU`{uW`Iinv@8?H$5px|x&IV=EY-=|T zdG`zAXmz%>WUtr+87P4Qg zs_Kwm2*0M)dM}+6YOSg*D}6?e2Iqo~{ua?ZQmZIV3n@H-Ulgs7X~=;qHHB!2R48>e ztFAJY%+DveWMVT9@_5R7*f+xF34Zt5mB6X$D|Dg`)sPHf1A`(21;oe zA6NC?_gQ28KnFdV*|46<|u3W(9SSOE_dkY$G&aAeNhkBjsR#zB$vZPXo7w z6Hwe=i}Q6D8+H`H!NpO-7b~(R_Whw>F^QrEj#WUbQjN%{)1lF|!9VVerJRkL%dcd3 zLYWlOHm}v-|7f8kJOX5r-eGo-<#x}u3#i0$u?;Qd2XU`YY_Iv4NLG#y-xElglHY#S z?(Em3*Y!S2N{x7X2HoIZ$w-dyrC=89neGyFWZZsAe*2bDlO%Qqdg~U$Ue3C*5Z8A9Yy=YEs%R@@sYzL2QzsL$YCRf`U)9OyCqwM2To2-%4`+KVcZn1a}z99s1k4W6OZ8MO-+4z>-8I8 zYF=h{+SI345V-+S9(6A0re_(sZ;A`sc{>fMX-a@e#9;tpTlnfU8U7KMxy$`ch@=tL z`lY)-#jK3E)!D^^_2*uxQY)rS2~&E$z|Pf;y$#OT)Y@_Ak~rL=Y4 zHu!fS2sz!Gzz=;P32GGBl$6s8pZ_}xpusFvJm!z=7(m_eoR<)1%%zT4+} z%>b9<;ZIvVeSMk$5y$bNeq}~itr-zl@cxV(Kt-fWptARW?v>!W;$WRwIJl&`FLeVV zby+GUqfuX}+q);5rnBHjw)to#%3VEv6BN>o-pk7wwR-Xe_frPlvCAyz8|4UnEWC_; z=#umI-%2bvwGL>Wv0J%1h&b)IwnJAvKIfiN9Sd^ZoL%eivi1moP5a^FCkezvAvYC5#WR01K=0|I~au{SCFpGJGc}(`;=5@ z88j;X1&b0~WXR#XIw?*z-|4oJ*{JWZrGsQP=cP{?A8f{K_$!aK-NGE8PPzw%jdq+-r`bp_|ft5oVf%U80dBOsiFfY#^ znMxN0CyP7un;A8Ju(%Wggpo(+19=MzAV@fRycoFLhvjscrBwbBmC|QX`1V3P2v&c( zR5e@MZtcv%t@8p6PS|jihNSF$rSCbH zGcE?*W#JxHxL*FUU92HBm>H+EmmM}-wdV(jP~n<3c6>sz`2=mC z9RQ;(QAgV zN$AU$F{*|Ki|z4@A?Qp%_wtk1K|yxzqOzm*>SaN7=4HaNH4kYTM^0`)+!LFe!G z038ovM&P4x={FXAz*4$iFYfppDtiSH?Q*+BjVl`(%I#SBb5%BG>}US6PM8k=;H^&U zj-ooLifc*6=#crsnKShw@nf=A$$Myx7y`xOsB>3F$LOo=MJD5 zy4l3kcS$IbDx=kA`ZAWIP!c2{fm{DFMOe4|++7ZCT@W}Q_-w4kRY(O*op+aVyeO|A zXK5*;Rb0ID<3RFbZq_FM&FRwbE4tSed|Y|ey2Gr2#a^ACnd^^~OB#O}Q~)@vu?{w|}YxI;b!4Ium3{f4dD4 z(s;!}>D^D5mbHMX+DyzOm#8`xL#3wLyyCx2KU2g;P<@>ZMX77bI~tIz^z1G; zhYKzNTp5)#4c)q07e|E9KxDmRKV3FnoHu+)FxTJH&Y=LwX)jC)^@bD#dSyH%vY^=B z@uUjHHa6cfq69i4O~&VidW%}d&GUqU_t=oN+U&7`_SQh_6|qc~!ujjhuZPB-%Pm~i zHaLJDdZ<{iY0XX5J{ez>I7X;LJ=Z$-hhWqGV=t{~&}p+7T$gYH99X8=pjt}Z^Hlni zaK$iv|7t~(FH_DLnuobLI4-+&P1I$6zZxgL?ew?jaccryns|?7V2aON6)Zu_%gxil zVSM!ox+hba#8S{KO|49ZfK*++VIo1%nzMFWNZ*K@~bj7xb5u z0p?S|5JH zQ@X&si~c#Y*I+h|Q{&pony-5l&h8238p-nlWj^4u^q*hT)4$HYDm7xzMj0l=2%%zS zNS@IH0Qup|7sD?wm@i&LvzttrHY>PU@C66GLr~Jyx2-nHYtw8`%!gPOwH@1gwC~Nf zD#jW26--KFzZPRRD$)S-g=beUOPn_q7XJPh(_Y^n9$%01D1OrnS9Y+BM+i1`=Mb5} z^=iK5X<#9yYw97t+&{?I-i+>^a=qS2`6+vfLdlr7ex6xv!MqJmrAhV2nMDr$HBsE} zqHaTW^$JCpW7BcJBxE+6Z~2%r@<-7@H!fG8 zHh_5aG7vzrO@{@tp7u=1P`YeFT^Ae3)1L3sdRpDsnMBHcswg6}7yIk%=yg%nY||x6 zwU|wbK%bS36e?qZTn6ZfxV}hAvUuRMGM{z(aU;V49F3K_|`q! zAKspfUiP1M>ah{2B5m&&dIfT&* z$~3wtj2_3|r|aE1t#g`uxsD+x?SM|NnzKpauBhRyx}0hcqgRX{2L+pr@JNYv{bN42 zBIz+CgQgc-t_SU6b&6(xPPZf^;HD^mH0)`$>`cZ8V+4&`lP&gdE&`C_uhusbxUF6eAH2YD?g!?41xWKd9RW?@TFj0s z4YUP{F@1*te%>bunEn7MF(c2&=%`^1#p_XdZkfrVp0OAAPrsaB#8gpUYUm+oY%p|O zS~Iy`hdNIRp6ZsVVFtMN#k-j{WUK^4(WNSU8O>I?O!xpAtlP>?Ia&MWR;ag}Z+bdr zAqygH{wee}U6V%sa8|I?&>GMff%uc}`I-3sE7U-A^k3s(*%l_4j#g^cDCU?5VKhB+ zy(}nNqqL5+LZu)wM$NviMGjEGtc_)kt@K7mpK_*K5*%tAhq&n+P$qfy&X?q5d!G9< zfX&NwUf;7WRdfPJY8rHo-fEAiX0rNHcFWk)DZ-G)aW>?Dqvy%5G0V3J@mS2q;677MUypEDf^l$I<_AmzenpqYlhon zeOvD|hg>EjbV4!SaUR|P-@oRzURj7+YEs;5=-JPaNB}yM#@F#HC1_a3 zx68?c0lq#PCX0oCT!&W$TJ2BsluZrKAF&_N@Xc~dJhWS?7aXJ_;?;qJbSyLgfq!}c z2a4z3kAg0Cc(@boAF=L-@uJH4&b#*oH_@-A2HRR9fZe&rIxd6!#U%y9dt=c;=9>bQ zpRYwc=TI1m$tyxq6mVoVs|+}mf-kFfc1@Zgd1eTolLN~9Kh%lqNLvV7?m=a97dn>g z%zv2=E8{n}ZSCV#_N!9_b@;C*tI}ri<}D=ntWV3+3kpI=xgu9^Ci=E7kGft>w!JSy`k~0>GkxOtEeFhpknE?NLZ$4m02Gb0e`&2?TQ;`6nC{(^BrI4sj7!=E!|= zaeyh7PopFnn92G%P1+%~1z_>|03r`%`++!XeKf~oKg-pijsSiEOhR08w0T?JT#hZp z0C7uRbFca+PDjth5!{EPZ}e)N71IlUXj?9rWI{%kdqp6@^-EUm5Mt`EXq|svvp64g zJ@4noIV|F~W&%B$G%qq`5dDXn-%>f)U#PxLwb=(%!2G)i4YD%|{tIJr9*rym?4r3r z!wwLw@R+ewF04dl9kJ9bP*J)L>83sOj0sDS6`OQ`_JQ22&~d{@(s32rM8!; zEk9pnvm1b7r(|W2-#k`03`d59*xT!}Z*AkQ2V3%G>9jZQkM7uSb0LH6Q-%_N28hk~ zSmqELhe|H#yT~42^;iX3o|38+Nc zu~K+5KWDGBR}D8ojZzKUn+ej#PJqKwO3}{nyYZu@2%#D~StXtmD(YRSqwsWZ^ZFQQ zr88Ddz{B_#2HoG_K{XX{|6^}juSk>l6R2D!*BT*{at|U;>3Yn9=fhSV7Vs`F@XdbP zrc8afh`HzF%sGVYwU!ep>SuIJ|KQ+YVPgTmzM@Y9DueHW^6LAOrPD7DrT1^?+*ExZZ)jnIz5{Iqj>|E~dgsZRBXOXR9Thb^0xO&McusfC zJy56OD;?^1PFc*?9|XZGc1zD=3W~96Iu!L3JU;+#@0`51;z8{4qfg)mlSPsaM0hhG zHwJ%|Ki@vMd=i6>4v)TJ;r^CFIy8)FS@dwh6)I6x#l*qJ#>SZuc44Ywws)&$mHOEiYNw!-SM>ueesYA+2&rO5|KzeC!|YlkUsi z)(32?&|TCe#9CihCnO|H2c4ZYI11U((CRzbnZ+)VLXT^39_dGr1fXy$+@HcUk%%1b z8{?jbW`GiCP`Oowvl?M#_fHBy%4TR%YzSl6qz`IAe@7KLvl`PUHU(Y< zMxVLNyZ{rk2Dmw`M7bx?l_+Hq=V{cU^*A*KG#yrClF~-o=c%CeT&5x($Ls*aKc$cV zruFODU#%jn-xhLi@)6?sC+X27|7R-Z@>7CvBk#?UC1f!Yjs zEDzorEBBNc^Rd;Sx6pAZWc`J>FMQbPF|x^%dg^N5{Dedum#`D%2$QF3v|)jR0e;}p zmbqk>P}FhnjWpd=7qi!-cT{AdbX2ifJbS`O1~D_*bDydTOUT841?@SD2VE~bXrH#% zyKE>Xmxu^Ix9?O5b}(nu~Rmg1-JM{RJlhKOCWBklp*;VJu*{ z+ro=&da_xF;*p5AFW7JSt;^ZhurNB$Ip$XlbRT_LxnF3MUKORK6=9PMD&F|jwva*< zIXIFPNW|Z}bvxBN>enf$8T$YlYGgH#-NRk?^^h?Wq7`1_Hz+%kgEw8@S@ZRqD=*MD zcCYCc{0}^vJ}Vw&*Z$$Q%ma%dwrw8@N&YaIc-6mD(Lm7YuzCe~0iAOk5Koi2eBmlU zc5gj?{Ip)6Jl>gb1NB5rM&vcuH1KRm)1h^R%acIXdlz4lE-+Yvh5^5XI=I0 zSzDb#&5ZQ};g5u8zok$vpZV;rK9y=R9%N1g2+SXUcHP5yHZGd0?cjjpNPv4WF!Mcn zwJp24rL25f4Tzh}Z6-Q)Ox*j!LzqQH^fJhE`i)srHpbt_O*CSV^!CZH`}^(J6z!5A z7c*_-@=+y9rtfgWfa@?`(GsQ?8<{)ZKKR?M>9c%T@b@3fJhI{-?3fyFg^`+OdseUj zKo$kNSQ~s<{5kYJK-vm7LO&nt7y>=y*!W8J!_qDLp1#{D;xckCW~cDyfTBmk5&%sJ z>bU>ByU`e#Ed-R~o7+`}hvMLa4t06s19oYl#~rWxy_$LH19+Mw$mLZsP2$(xI|6Z- z=k^ihtC!BF(z$NeB|a~pqPOnA5Qoqf{U`nS_Y}+ZNu$Zqa1_+=LOxBSp9N4Z@nNgFs{3VM+uOoeIs7uvW-NRIsPM)Cz|Y-~Slu zF_ul*8nji724MlLo-t?zA6$k!D$=l5fJ0=JT{Ub0lsF!_Z*z8yD|1AY-E3RD=x&c+ zE_|DnQbLs>*XvANA|3|HH~@pQ&=(v%0RwR$d+{Q|MJNJ(g1QODg_x0DQ)OH~Vz+bA zG%$18UVTN9q7XM1MkUSS>0a^UG%W$Wv3$I0YMDMVO}RG8Ho)ZmpH40c2N?P!eHkTS__=;zaAGe(iMIRK%pD&gaVULQ|A8T_~ zB9`Jq*XXaoI&paX6&i;5ir!~zRO$(h1~_7?7h$(v2vGC;#?^Xm>v-6mVk2t* zB+2r2W#yH%*z*?0+}L-^*J;O0_!(d?7Ui_6RO)(8@lHBw z3G220e9t+Y3mQxi9ZyF6z_!2f`C(<(v_lX`D9s~a`d;M5kDW*oHXey%YbMjP)83bF zwE@!L1P~Htwu2vETudlaVSKFvTu$3_!czmd>ABW)`YvJ)w4&>1es#in=UYC{Ij-YF zGQvNQdAi~&8H9kqjf2r~vC&}}GfFntEc7-a_tbrg!yX9mYz?>k-SgzuKsx*dc1DKQ^o=O#=H|!tQaC4CXslE@0WOeKi zQtUG&SSRY>|U1sMPW%7K3SZ z865)NSrfvJTD)E*#hzoH)6qKd4&oh6nK1zuzULP*OdEf!uH`vxA>O1$quHB}Y;&JG z7L=@C9N1NE$HjqTOn`&FO(QR9Ylqh}JBQN^eAtMtwN~*n--WnY2R?7GsE&}O%W3$J zpH(YW33*)nWDLQp8HuT@;tTlma4}S-AiGsyPFmeTOb+#QCfLPB&G^R?pu*C0|uL0mpf6xLX-0biPN?w6YKI*%?b07!T1Y8@7XcloB7-mZgC&F*NlMAKEx5v$MG84J(KesHuO zx9H;(Wtqj4d3rf11fv<#{|bKEmFy?c1*859KpKLkT933l2!v*)t!kPQzJw zX&};-SEKRNg0tr7;^h$2vvCJ_#ODRSLEx5Mcc19lD=lgX zM>3jRpX|J9fc6UGGK0P=61^_&%DrDVOKfOF?()hwy{rsh&CU43g(Tj*_)zCHcF?_} zgieDnH(_?C_x90gb5w*>=AA4?(bUeb@&ME}+z~deTZo&WZ1Q}1k7g^J2!`p$$pW&VNyL>FTR>Ko7w$_PAGa_ojLwlpXgYPd-0Z zzxwri9V{jvXahqx}gLjvf_q=_ePni4ZD@f@WG=pAM1T7*3X}1p&f%p*x66 zGZ-lyC7$T>Q#p{~YYIQ!M&T^5880;M77XF1q6YgJNIS#~bKYm{dD|{qva)d-jd}H-%{V=dKF3#`MkZk!v1+v;))PT}oSL1%dS{tWX4cy0&?+B2y zYQ4!OiRC8+VTAHV&9``mvY6cJM`lx!8PipVVqCi zXt+Q$OzG3^)i&Lni2?z%swxX>TgS%M%d388qfQ2xZ_eH(IubA=l_}!5I)u{+$rT#O zp1A`i-t{=lBZT;}t{on1Wz&#QS)e#%yLsLsj_(ddl{f}R2$!4xAoPF06Ttl^00v%U zP~XPEnqPgo#17n~jlh2EyhFtkn9w5?3``D#+}RD;{ccC7fz)Z@ayRje2=$sG@iBvq z0iz)Ijrwf~!-T*M3-OD)KQAdAeBBlfR|8NLikz~0Wz?tpDLWV+vF^KXZ>fnrN`OLw zQU95#bu?V2Y?9q)LGV95md~I>GKZZIz zVu~!qM~o+|Ta-BAB>t2$TWLY04#6 zzEuo>)1$Wa*wq7>6$T8ZVF8`vP2&Ke%<+HWre{s($6ZFsz+vwL$=Px7JG~ovAln^m zpVNx^;h4G4>~rEgdzi(qdim1u*k&%b@2vo(Ll{AWo-0gg{T&Nzw${+mcFD8Qap|`g z6-3|8?i;C<@NqZ;G#Cd`k3#heY4Lp`UFob%c04DcAIHW&WVx~q$Ybka=Ebhkae(Uc>DbR9{GB%>ZSxTSCW#J0uT|LG7IT44^b{25Rs(@^6>o?jQDjjXeWT42Fze3Q zKD6ONb_b3~%fo;_qIo;iDOQm`af@#T>NRqI-UMdOfYGzhKp%AK0=F-ToDR&#e&;~E z-0hZ}V@ta>5p|QZIse7*QV7dtY0bJrS9Us1ymiruPjQ48C)Ku3$QfKRmgF&T==_-Q(0j@g? z@Vu=;=2>M9z2e2`q6q!=%^efQWtr6bXL=+z zQortNpSv{D=Z(Y`hT99Is#j>yCTs&8$mpWrvE|yV_b1pV9v9fjd|?R9 z&nsrBNiePUEEy}(Alvcs``3Lee6XpG`o1%|`Bv}mpYI>NQo7e2%qupw*oBQJ=$G_8*V0f|3q!T{bf6tU8L^Z8X3Z`%*_@PiWH-$EO8-X5PdVrO$xG6V8hLfS*7EbIs!p}3gDt?S z0mQ#f+0}7M3T6sghcqx-e22uAa5jyj*{*rtowg6i*q|#;HM#o4O#mBlWo>emVU1D>{mgU2y*pE%akKmCF^WaS}vNSRr(7Wa z4X=}_3B$Cq%|?j}ymamNi;4#a#Wskmr&~P$`o5&7koIy<0fuSCn>)U4;NiXjns8w~ z0a}U&JDOWyr~zL%20ER9|Ay%K1bxcPC4H*#j?`T2D7+%r^gN15*zW3}9TXse@koy2 zwOaHlBaoB*2?O?AXj+=sK8lH{r_X%vnx6iSG776xN2jpnlMd#WWl+2!$atKeZ&&R0 z4wgBdx@vgyuii*~=OEEk<^zywL7!IDy`rhf;#b73t6luC{WXJ>>#aweuJ`H#4@ydS z>pjz_w3a^Hl{7d!b=1mvBJraXEMM4dkkRP$rJ{lssF{avKz9qI2l_`mD~rd;$Qlqx za$5Tk3VLjw%U9wz(z%OHQy@$hO6XSO z|KAT82`3a+RZ%(Wnm#peI!j7E{4qKmOyzqs=YX>}Uw^&Vd}7d7`%A_R)Yfdqatv=X z5S|Fucv(dHm&_kr%&>1g0aACl7GOS|T+ZhnbT>DxjM_I>Q>HL!qSli$;ykE5?F+h` zC>ogd^*emt>Qv{0pKdo>`!w}u(l5yrw0{t9-cf^icVNT?--j15J+N}n$Pbin4fSol%^OgS8X{qdmO)cU zpRIB13`qAeQ0?dw_R5o=v->q@hZ7$C8=*sak6H`(YyaD#BT!03MP*Zk=CNHiFElmP z*X3j%K9fN8mI-NMIPG3JI8bRaMM3qs@=y!IYI{yd4pN)|- zndKjZf7jxBl>7I)2*o%O^@@gGOLnZ^wIP#o$=R)Bbm-jGuMTET)4r0}Ex!53K*TlK zN^OZDkL^2fcJk~YvK(NMxjvUdJ5dxl-Av=B@yr1L%HvA z*Y(o))c%Z(y#ww^OBP)?*)Lag;nn2yz{}Mcn-?UZVFPbdrkkyGLBEaW2tRqGqKJ0h z!v`DVsY~7tDv5<=vh@j!HrV8=8W$T&)|%{{{f>L@bMI6td*=2Df_Wm`)B45rZnsKM z=1jm6e*}s5;^1PKFIB(Xz&BsP5;eLg>lvn6`}7<{z09%=|6enzv#@q`$m>paIQfa! zI1}7XaR~q`K%%jFIiGFgaAz2d2N$A2TI3Q$2^t0Qv5AbKI`tmz@3gc)lVgfJ0|UtP zG@YJU>v@;>VY^5e#rb+`?q{cfMwl^BsCo?QLo&Kp>l0R@A_ZM)U%i{2Uy57K!Mjbo z;|=V25?OO}#9wzWf6)HH!ONmYNR=BJ7GXCe$j>*G>KK0K$gFei-or%)01hBsmX&OH zZ|o`Wz`GEnMJ>bO{QLK0P2h^$s$={F@NZVa41J7OKeFk2e&EOuO#uyLw?z|LHWH|= zrObCyJ2G6o0{}*u?t7Fh#qmr8`#Ur3)u(4x(dE_?cZHMY>4(%Pyr^BBfk6dtIcj5( zTS2$^6gO{`!N*a_fFk-S-2Am1~7? z!*?6tJr^vogH0#8aX^w8bhfyvIqe?|us7SWu!5>8WDXqF$FN5EhZiRHE}ua@27-1U z^SZqj7sm_6S0RA!$Buy@fH2tcpmp*6)fpm(i#b7y1r(znC~;SukFFLSb*4`@jG1?Y zt;{ea-vxc4{f2if6wBGE=g09pR?JN2*eHH4?#Q-OzEbWwL59gn2|*xe<1-q3Z?{$` zN1@qp_-RP1Z>QJ5wCd}4q1M5cqG84sVe|0qq(sFXN6nWe$v3lj9d_^IgC+&4;I`~C(? z{vv@QE2`4XF+JG*Y4%K-1fOYe(+e3kr$z4l=3azKb>Cvf&-Jx_n`aBw^`uyK?!G9-G}~JMr7XPs9F+&xO5}ee*ubYF~IJ z2{%aKnGt<2PtM7k0=TCH4VJImbK=P3cIT7Nev@%Bl<=$_O?7XlYz(kEKfva=?2oX{ z%M+^FxV*xAe36-qbOPbLta@ehdta$w;J2FUR6xi$m-^VXW~{&Q+=Rezq{000`e!UD zIx&K?6wU2x8GMIr>%*~MmBJlC zawpn zZ>IWQdmIfmEpkZLSM)B?Q(Sq46F)BP{yGG<5|n)U+tuv7q5VyJPmqjeK(1osR{`BW ze`Xa2hE-HO%}(b=y@S=hUQ!_Rz;1YrEBG|sUJ38glmB;43|R@V`ye1 z`RvU6@rM1XcjMEY_2bkHa7v^LuG$&zX6ijJ9p#9<;XeA74nuxI_7>;vQ-(!`r?bNn z!8qF_O+)O^cS>HhSi{M&My~UqJTz>qx8A*GpIvWT`#hKHIo3;HDg~-16tfpchqnzC z+nPKU-awg}XE>{lNn`i|eeAvDuZ8}jfU zAl|<(4k>{w`c)2^( zH5D*bTtKm|TpkgDrJ*rCCwzlQ5Ulh)-Osv2`zCwc-B9BCouaYni72fh2hTdiD~t*`8gYksDIq+|Cg^kbIarF{5P=?Y-GM zhPWLkAW*U5(xhE}5Y#xS=&kMEpXUg3-R5uFxa?iZ1#@|jU_!5W7|HJmrA$svld&tQ z>kB{U%D{qOgum6T_S*Tg`G^3|?t3qMv;ce+GE(2v{NK?r-W}bnYhvb)@4ql*LWte; zeAH~NYW8DawLYoUGw>DER8SaO!OUe(6N!&b^Ef?xp}_rS#%iFR8g2nqv=jTidDJe)DvGOz24- zJS)9q6rpZoZ*OUDVQk&Da;PoH24jaW3Mm|0i7U(z1kw#o zE`2lXCo7DfoW1MJj2X*HEARPrTqJd%I-ZP3N-7#vRaBs^Z3+apX`conI`TplWSNDm053?DO{%)}9;=Arr`Z3W24wilrY7uHNaV*R}@$wI{ z3y8{OkkGaE){oc8-rmD-s$W&=!_`H$^xHBe3bnZ4pe^)Xov|(6^5Bl2la&-1subwFNal)JGo=tPE85$ z^70Gt*Yfi73-I!Xwc}A5wk+)jKEV`DSHum}W7DkcQfG>nAD^Bc)>GG3R@GP5R@c_o z20$j-Sgh59j2{!94-tGu;t(X?`VE-|$C#pNgs)eMqyl~3&_{9|Ja z_V2-w>oYr)3KZwDf?R8(LPHO#y{dgmtzW$Fz4VZp9@-KRG(rB9$r(>*20mSyY*;S( zgDu8~ZqbKpNh${i{rWsp;`Qh>ql$K)GOUr?bgbt2*i63ATC(n#i+yWyblIRY)ppmm z^qml!`0ptsG=aF8#&;V`q(E)S`Gd()$4tFBfq{#%_-E6&L0;m#rHDghbn_poJ`Kbb z=iI)LK+m}GLn_UyQ#cx)Pc$MYPn94_=;(=yCp@*LZ~_AKwf$Rj4?0+x)vLddrs?GF z^`$10sJJEF(H^rasp?PBQPoJCeA4m86-UoVMpdLG_r5I3iIbm(>lP^;xq=_B=lCQ2 zEd>&2+#vc!cA-NB=&YeD-PU75%fXDtH#RPXd8a zh6EqtqP*}C=XsSeJQ5qX!!e!mj8i(A>E*=rcT0DIrBOeMKSc;O zgu`U&oa~I4kYAPjyI-1{479=&a(PB~pBXBqhQV-LaiL(Ozt2k-PS7HV2d&^1ic}jBSS3~m_pbyWphkn6z-xfaq9x??jy8ZG6dBx<3 z|8D4>OO~X9cHOUEtrk9WIoX`oI#hwUb=t;|4O3`l9kbC*`V;Qt!^vUdI#!qM-@+9l za4|qja~_604scA5`t9N-itL-ZR~-}>^^!bT_paJ+it)gS6h4Qz<1>rK-2Az_VAE$>EJKcO3<^NN-P0X9STR>wYf5HJfHjS-?&`f9ZOatCHeQ(j zXGx+i6A8Aj#IE!Dv@@e8lkFlm`RvSl6FPTHfQ7u^qEnPWjqZ_5{keZaV~okn-7*b6 z>d#(7Bbv#OuQ0A+sF^+VqgR~-jJB)Wix${(|1lFIoBby}b*A^Yp)FhZI@fiNLrjl7 zM04elIJ$FK-^y8dSX7f~6TBd7BPySfL4NjJ@pcS@CQ$O;L%$hIIDuH{x^2u`OU})H zGfpdY1@#c^v`E^nFM|wG%EFM6j^5YU)S*!=97qGt^0nG_QT6=Z;-YQ0&&eJ_TT|Ej zaLfYt_>aCh7*y+0UGW(_GlJ8GEtnZ^pY`>WFYPPLE2^q4_3wxv zypBm+q#yc$Cm=qz8wdA(T@`sDwz<)6vNp?TTDGPpC!bibl+4YRk#LUv~EnKT|s*jrZbU3mYH zIlG>q@8;-!fcI<{P*%RCIqs@Dj@UFy8(v0nve_i3KtA408aqs`M)>p$4=egKx9fSn z0(^=Mh=7q=6Ev_lRY|_Y;Oq&b?lK7ql;Gp5KlV-sL!Y)pysP&vNvwb~MqA+hJ3!L5 z-$%#4A5Ai^6?zO#vGNPaNbloojkjid`iC@cuEACvf6@%@#D#7NwLHNrBRMVHeT?5@ zQYO^k1qd~su!=M135Ub8_v%US7PX;+xVJ>jqT7$#$q28x-6-$O*Mi84pL+F7Z{8s4 zS6``<-IP-Yewi|YX5YAO=w$qkX*aR#b%LvBTV+jXnK-(=CdTYdDu!pDBY0piBI2ZM zJ8vGKgi&N-Y_N%;N*yIeLPP@3qp)@&bcx<{+k?eAR3M`?6<<7(jNcJL1bTH1Ac`2p zAlCviw;K5B+l=L?m4uYiYuvz~$!R^$98S_~acl?$$?Tao27$E|)4bP?FW=OLc|Iw@ zvKda^#St^5p|m2BMr9Y63}D*DQbgN3YLYE(T)agGH0CG9%mK_+Yxwkceb1BP>&ID! zfw&w35B*AFtE)I>xVcZvXDj5#g#~NAm40g|tZ@~PX>dBpUZZ4U`ORh6NX`1pQhF>` zuo3U9R3H^mmsb@(YS?7H0;0Zyd73 zjjR0YIg2!Ozra$TTVCMiDc(LpXAOKJ2LTOZs}NK*09&)P;qL5fgKZ!c=NCV>_h1Ed zYr{_NIettr6^52i*!^9<{?z+S+gm1Y$~p*F{PQQIzs^?h>0y;#lQJYfYV?RtR<<06TwI-33odU+$3k&uAMon~TXySgkX+7i)CO?B>L;o2z7sXNf=9&7pX zmqsQ1rp2V<*|>|-*J&-ok@4~AomcX2_twoB69#8wgUYL_y7fFI(P=p4#|Q}A+FxT9 zJW9mr=h+=&3J?WTaF{0D{zA#iCChk5P*fB;K3=t|Az>{i2aeju7?hzE z#AvdAQeg+;k}5rhwkpcXVAGSsGX&W(iuE=fUu0R_5UT6J~2N|G}7D z`w6SO=_HPqlFiV<24M>^`i3oBQeRv7(;gt<-TJS{JxiINFTZ0@P*BJYP&J%p`yUn{ z;N^90{I8DjxxAeGS-nepTU(X9c$bsnBQGQDWb0>TLsqte4SV`#Nm zxWn33-wTv;AVWXK@{_vpvWIODXONM_-jf9BL=o!(<`)(Z{(CMJY6~hS7x(9OJTa-; zw1Q+;Yq>DJahu|6WggzP@;srIGQax{}k1 z(<+8qiv>Gl#yaFev|x;BdbzL9*_mtQgLas^6dj03spg*()n9i*?p3-l}a+Th%1f*C` z^(g0O*yBp@ug53G#z)n#P2&Ik2XUc~uf9b@_n48h!8(^le9NcEt@HF99Zf}!k+W#z z7|Q?dW0?v+fCfiLwQQS4-~C4sBtNA0JUTkMXI@CKnY6Ufc9W?|{vTXc+RWHq6pY*3 z`V9@piSEtN;PkYfvNHc?^?%0 z-De@{`PtRys0JBQ4>vY86%$Db-^BrU>gdjMOe|E-Q~DhE#KV>rqDCK9VJWL{q?686 zU~7ZFx5EZXb#7>^M?l)<*)#N*TK%jHCMH=@vQ5-7yZ>Ic2{-{lZHpf$$Wxr_KU(S( zRh5+$H&vC_){13uFMas=&aYI)PE#W$~h1u|I88#Rr!H4*Ag(3~rIMiSn91370Xv6x<9cu(B4H*_N zC5SZcWk|bbvcD=)p3uEct} zr%(JCs;U3bj>bvV$kh;qBy&i~89s(}3Jp+!6S8v!;mN_%&yIo$@qffqW>QQtp+2Nx-$@b zkbsjzS}a6{)XV#4dTg+^#d0khA{jhd%lAHvqy#!e8gj~{p_!ak*|K>`4DsDn+_eui zoq@>!@3Fr638^&Ek~0bTDd6+782vwX$sqfJAij%#{(06Xk$)V)f4)VaKZgE2W1u4+ zJ%|2X2%Pv6BM7MYfBxm&>y|rb>7Q?dpZ$=Y|8LbtNXSP2{up@sfFu9+07;bp_ke$C zk@5dX^nbxcCq|kO&1lptqVX5r7D(Tg5C8dD+=GQ8o>3Ihm>o|jVVRsvW@Vi}vwZNg znBX6-tm^`rs%6Jj$gO8qfPcPNg(+S(NF}c@FOP|_SH$<`t({9pi)M+)6jFy!5sAW?9Yrm9ZZ_Uu$+yiJ% zXJ1cS=8@xNr{NWKRSeW(&CZgSm$y081A0!4{~QH|j39p$myT(lEgt&ua%7}Gjo;(w zw=Y5V#*nb56a&E{l%eTq4rm~#cRiujb=GGhpf`O>qvUsg-S|${oc3XMY#4Ln^~fp~ zeH4|+uE%arJdLq3D%IHZ@GO&cG`y0VdptWgJ4L{;_XtP+-PyWDx-T-s?bF1~xc@OE ziquWjqPOwXUn)^V$ekjDtyTo6YCYXXW}0srHr6w|d-d&`4$G1|86Yh{BllWu z{T+XH+=jmg0%=)ZkZ87w-I>=8gZ-_peLXSsp?p|G>$;9He(ilNmG6FlDD|kyXaT!0 z2$XHRvm|-_mB5`K|ERU!eM>h%it=eLn6qbzQ6w*KLbBPx#3GUE-I>D)qj4OXQJ{NK z-`5I8|5jRlYIWOOkSz83ZSU-TR|^aMOY^19y0V|o+n;D3$*u0Y1?UsEo!#?aK+`%JR`NPE`Tw2#= zN-uDI7&Tv1^kR0qq6`iIagbku4Dn2Q_R{n6DV6}7p=Y@08?7vVKGovgGrrsrJ+i?L ziYP)HmNe|FtjwIV5rt6@;87Cb3127ZHecB|TRMpNMMY%lh8ESCD9)TH&pY z0;rp8=68Eixy4a`9{f90Rdtf1r$3zqr^T62k>c`n=zdQ5-MYJh{if zK@r@!bCqb(uSVYgMHrcylLJVh{3~yL5Gw4lif2eu6NI#D9Hlq;h*^)@ULCbnCql>w zP7KTs_ftPwV9J%HrXoX?Rh*jY>P|j!An7nW8kY`3oU>_a;$XutA+u)^7}?@`bD`yU zjk=tq&dSD3a}i!mEv@1#<)zdzc#xMD^1RpS$b_NZ@bvWbIZ4}-Oe9dJt1Qnf+#==| z4HO?LV4ibza72URW#he8RNO5cZ1p2_@+vFK4=~XmU`9QWNvQAqF)`=nI~Hmtw4=+7 z&_5MwSU9=7uv~lR*WU5W262ETp)A=QPQlX^r?0LN*Y%diD@uzcAv;^^t#Q}N0VGOW z?sl*N<09Sc&3oG6dOR7kGOj|Vn&$K)B!uF&t$HgWs`WD&PZ_&n2H77+o)OMbvBAJX`$W-eaJ5K5jigNVw6-^iIojuZWm`p4WYvHA>`M5Tbo% zFnQK~iAtrV7U#Rsy3t?ldvtDYLCgc49UO86o!25XzSY)Rw)extcD0@5dXYz$K$LJ@X~Fr00D~`z{>${_`Ne%R^Y5gLBs@NNAi@I^(ZdNY zS8^3ln`@y3D%^v!*q&5<#DkA+>qEEt3jFqeWAJT<e!{zO3oW7*`)QoV zC?hEwNg+Za&zpw2fB&PVM&UjVIucYXUuD;afjHe=U-bT&@d$cu*E(v4Y!vdEln7i- z(x;#RMoev3Do9dCKTEqnePb@UxklBD2DMAL13eJCwL0k-LUPjkkY>rl5Xf!whz}A~9?jj- zaE|mr`c_%9-Ueq@XCj1NcScsYz9(I0$~1nqKkV-Dl+EX3v`JROH93VoM9uuNXkq|# zMqSL!u!DQ0pwd!;&R@@*)Q5i#xev9;A^EWhhClCg3?EwBSX~952aWt`bwl>n);&qC z2IKV~9QIooJrdx_$+`7w3`?G5u;)RP4ju<*ViyhmV8V#5s`t(I{-H$_4*X#pI!y~y z!w!t5$n`tI>-w#oB`Qi1fk`g$r#(Nf>u08yA!=LKx-QzU3VzqL_m7Dvu^?>{OALt_YPDU-*HT`swELUg zL5}q9f`!mO+5z}2=&L>v_NJh7Fsc`rhCY1-%6DEypHFNXtJLhXS2=+oi z0e(|Ex7XoCsY1a$)^_;=0O#d=WhDE-M3d`n*`&ihe(O_HDfdflEv@oNa*5=^x;hTl zm2N=Gtu3pgZjqz)5f*HLW2-;s74#`7dKP`Pth}7VvQKPnExQMLE?iHs=?-IIu)V_C z>dSL9Z7rQHv%ZPp7}vcEgb~pTdW#7#>jC9{@XUvS(+a#^XHs=jjRfRE5eeK&kbPAVbU-a#*ad~#e}8TW29AF$eX zuk~6#rDCl|ZSKGuFm?OvYGxOnFnw{3X7-)z@qLAux3iNW(EHsZ2U%;Iv{J^STui4g=wzg* zY8qf*tjQCV=xB%R=j&=~Z)K%*^mn-Q_d5w)T}hA4Iep*fW4q(E6`i~9b!mxo?*|3u zy6hY0&_n4Wp5mrXb8t$;dUXcyF$LJ2 ziE5bZG_Ur)3_IJ8MSj&f#x$0&$5X1c9inO;9+AGi{il0npKNPOMKuO{`?gb>TLEA9 zk)(VQN6!p<%e+Y7&EfdWuBD9?&m{mtc2++Z%N7SvZuGsX%k?UZ)zl4@mM_J?e>)d zHNl(I7d+hDKgZ|NB+9p}3QF{9Ykc?mKYgm}hp+6P#nKIghmvfq?zS%;#9_EAD5wLk z#8m3$C9elMg#Pg_&cjqevxHz+wVGAIn7EmQ_Q9AOsQ+@G5zxv=Nxj3rSQ6l?$y=!ivAw8bX?y7FFw+vOGZE{Hea9p z&6{W)zz=M8$nSd@JDat??3o9dg~V19=8!1EmhdUeIo~yPe0o+;!4_%UcDASTO`Um- z7cx52>D%8R;5&cP)?8n`B@{^gxqjFC-R@QWBu|bAp|%!3e{Cd*fJ1*n{dkdf#%aat znB{;lSZ|6q*~^mNRu#dy{ue%1-_w0L8(45n%4V8dQ!A{3Bs!p$G3Hk$*YOFfIUrX8 z%mtBdUxV4t8*g7%^@FP^{I!9!^`ZV(ZJBAF`wAID>0C?^<-2vYTZ?hzEq~-jX1+&>#WN&YX@-&kXph7sKGGGgQJpNCRw!#@1^;JhP-}V}P@P7TBBYd#brLkt*P* zcRJUlYQOlt_CsQL&x$Zu`{gfvT0BtoZx1KA?fVo3>=dWxTJ+poxIOSz}*8s2363*gioz5H>NSRDN;7KtbK1+Jn_>{ zw>L~(XB*L>j$ew;A44yfx&~4NW!ENO2H73y>Z&%b?!bC_jva4aU>rIg9#%9qcok(= z`TsPwWc-9yN-J-*M>VeRZ~6NG3q6hB_Kj|`*F>Z(d&5EG?p~hs+r{loVcXSNDsFH0 zvq6JKw38o%#;=v6f1N#0O%%y8?HnR&zB&U5@)#}Mk@WNe7`x!niv10EnKVQI#&HJo+N)X|Fq zX=>~7TrE6LFZ7h#lV4d~Js%DobNa9sN&iS&&er?-BPc3go*MG(O&#aX6~sx;W7JlE~?1!J3JlE)QODV=G0+{VKXSBWs?O3P9olkqIJ_}1&_>Z~Jfj%O4>TJG(g z24Ui%f0d^OV%d<_o9pYXSH*{JSHRiL9w@c7Js6?KAzohnVv`VMzcA^54^UQ>iHG00 zT>urrnp(Zj|7i0=*jQ9W#87Zhgn3nf_|v0%3qO9mfWD1cvFq2-V1BNsm^pxH0QLpB zmENP#x;jz|;_CHD2XLk4lW5`7KgsN@o`o~_HEnHo=DpTTt@BtR&e4ffe)pQf%FhGD zpFTxJehvpRg~MiGVr+cgSw-bU<-8^oMl|an0{u|SKeSK;RmPr~x8vj7Am-1K?2M+} z;On;7&$_+5T5@%!I$rqmtYUQ*8zPOkIO@upN}QM^fAjjSyxZH}%;0pD{D)U9;qUQ6 z;`;ONLn}P}9C%?x>taJ)njTZt<}Ls-moYOQMyXBunB3*+x9@~XEMa%k$(xxeJ{Dg~ zLPP3r41Mi~x#b)qy1GffG-8Hc?B5{Kcr`5~u9UzM2oea0?}_SI#WW}oJ;vSK-o%E8 z2huY={TTbO8s)2dYa{Fm3)GlA?uX%b;#AIaokj-X2t9xZB%T=v!(6zO>Fk|9xX69w zMRbg_G4byn^Gq~We5l_RC6507HZTcNAT3XowwW%m#-(nuBYEU)}N zI4sM-?GvMA)4p<$b~Yc@lfY)uv|#*bD2&o4l=^cO_xT2Xuv{qS%7KQiK=3|(4$$ec zw%Z2UW#;F%M9Cale$<~~2Hr5cCp=tSX~GUa^2^1GlxL>-P|&0XEgC@3`N5F`dwZr` zaMQnCad61qS-m|EKiJADUz%E9NRa+bQWr5gaO)_2uBJ+wuD;Rl2|}XAK6dWfA+Z(K zHnV{M5?1GEZ>)Dk3o)=WGyd+`@Px=84+|gER*rlZ7B(zBO4O8&iI0unKQ)}WIA8%G zBlG+@2%jH7Tw{c}ZzzlMS@1DfGbKBL*K>IOkv^e`8aMP|F$=%_4Z`VtyO)z9rGU|e zDlDFem~gq)Gcxopu+Cu@xD~C8qAw}_-Svj&1+Oub7gU{WWm_<6rbel_PRQEToi{b+f(zm-wkTL4EFL^S&IzZz2WfD zD&QeMWv$K6Z|$F>ago1gNWFlGG9Y~0aga;=f^o%7@FuLJQBJBEM82B%?3_G27!nCI z8PU;MoxrKPBo<3t zBYZPrrFM$M$vrOuk-X<6Zb)qX?uUT)fwZLzO*;EStg!IUq@Yf-XLuHvojq1nG{4al zTDFuccr$wFRGI|RCn|sL!(~^ts5se-4+3Rg5`FXG5=a0Fg4;z^NEM{D zMj7lypwE#MJgz?xzV^2g)mK?^X<1o@@v_brzZL;F6g!Ie5eYugBca2D`$DA8gKzs@L8IY`ri-i65;lz5fI=;)*m z$0{B=AAAg4s%?1#at4wV*^e6*!<;RgiE^hZwg%9M*%O8K-o(7^OY**So%h0kq;Pfw zJl@S`DGExVwbZ-VysW`~FRi7fYTEW`U?L~mVDa$&qO$3F#wU=i*fl(R3{}FrM6|1A ztHW%7*}v62(E(n6b<{1$mtAcsCV#Ep)jfMmalLzU>DnkcX5Z{{J55FfjO_c`2G9w- zuIkSQeA0N?bc8bojhOIac7&?LqMLNYp<#MVH&s{({RrHR!%?w zO;`7_WkHF~t;YFhBN$X0*R5VM|E0udB68lq-BdyP-S^i|C`61&g@RjaYR*EO@N0iC z-0tusY#ejnWxZYJDjq|0@<~5YS`tjaWla?jwFvtq_&u|;B=h$C<*9&mGf25a$$c%i z-KxeqMnz>Nb=~bPo7wdm)UjIHqDo0j%k(6ciE$FnwbNwfka&0YE@z&lOtpUz7=)Ge z<$R^zJU-`Q)x<;*)G{BY4(*4A_PUmWn=V&X&7CfQzug&?ey}{kUOttAMkJJ$m^OSq zLWW1AZm3xg9M=uYF7XToL5`f<2X6hTe5<>BvMf~?*bgSih6lpwMI1N3?rPCLMG;?Q zW*&cz_#|@sSG{`ZVMoHz|F8h;Pzs;>nZJZ0ATeMCs;0~G!?Ua3KeRkvw7#^6#13Ml zr2F&1eXa=!n70e7YyQ>FBj5@(H<-ZFeZhTWs^?#Cy4P^apoK^LofMCsq&x8)5a~4_bld`lr6;>jOlVB1^L1 z4iWT~*HUr~n*2FL0-bDM99A1PSu~OQUf+z6?RnW)tQi?IMuw&Lrnq-RCch3Y7r2?N zyFO*@eRDHYZ`yq{6~(HJ4LRC1s`5Y}#~gd~syO?ZZ{4m!j&hmn>50Iew%4UTPPx{0 zdlZZJA>3kP1}1#TL~%{`%s}gQ%4+rD36Ryr=obTxr7;7Zw zba3Tw=8wImn>Z3*2Y^sVzP#}{j(`&-Omt2qGCXH!sH;0zI-PHrle}2D1gTf2P6Q^B z5s1_3Z!Y4`6MzmK8M1%%Ds}g7Yg~;!oUj4>?8p8 z%6GrZvloYZr+ej4#HShw#K<*=bM3u5WeyLVux=3*`s^3?{VL;_0k1)#F)aL*IeiV; z-phxI$vm6a&(rxGCKudj@nvkccRl~USh{rzCd6{MmoYdr^vw8ArTU&XCGq@R*6{?D z$QB`H7O`lZM_z%;<|v6{y%0;|nKF-fwu*PDNBbhO=T|0&n%Tk9AHX2(?_O>-UpuTF zz~(}!L~3(2`2_`~kRS==H34T7+uLjUAaMg#RS8$Kqu-zcmrYBrLhvjW&f#$UQDE1i zY!dq0R&BVBg{#gm&Fxi{KshGjJubL9_#i0r^A9cPM@hl?^+cb?z!O;44Prz%prvE( zr;)^4^T6H*}s;B0QAJKRK!8dt`LUAj@;QCF8V_rKY0tgJ)kXOZoO@ z%N(wwu59pxAfyFle<^p6Ot)!f(7g~*Owl~lIA7&5VHg=!K=1vg#%;0kprh=9kT5$K z=X!!(rF`Dg5F%)ig5WJFcvp zHNjYhg^dXw>IGv}RaHlSg3@=+C?hsTjf-EV&3;EoSNu41G&m+s601 z1Q0qH8#HwBbO(vrSmpAdx${%onT7tCIw63hWnG#w#lr0n!@`ZNa`Z4`cAZD&WtK}) z0Aa37@C?@Vm01ed83>%xyw7!>LGB9)Wr1q@>}u!c<2sdMgPY?ug*xI-Af1&cT9W)cPc+{b2iM2>M99TeId-Kxf>_8U6bn6iIoZX@4SSU^foV z@x@twJ$$hO?qT~qb*5TFQ}do5d{i@wh1DPo3)hnq>h8P0tv^p8(IAkq0tH?%#&SovtBw}*HDq!P=twig!ASMOO! zzatRCCCCQWGO9Cy1)zh3n{MO}nXQf?}04U>kdd1 z^uuh#qFz|tAPy&H&s|Ams-wV|D^qe?@fxUaQ-y@S@Pf_?qq@UG_h zqw}UlfxE2kOLIZ*sWduV4AYKqPy}siDs}<(w?Aptj2_kl`O$WPOy7DRs*QE5NZsEm zpvbs*xSS0HWElt~B%<#7B_-vn(qp^&#EB2NoVCmWRrh=8KuRh~$j1ppZln2Jdkt3h zdy})XZ%f0Hn@aCP_nJx%8=?1qYHlpP6;^(kduL^{o+6yz(BRDiAxyHmmN}w>vXkp` zqYMFz|C8N$LrQP(Zo0L{>1Fzi53lo|FQXl7Plaj^8%ZO;h0()ZUFy^|Hy=Q`PB+oP z0Uvw!Qnw`fVy%iwA^rQbwv2jS5LTSYo(BDjN`45PpHHor(cRA;Xl}@# z;Q%-s&^wju83xL+6R6EGPW!*buK7}g2nBMylaA&Ee7Mer5Y6@zMVPzrQUa;h?HGaL zjYMAF`h9RpI*V~tZRG@5GFSHuyLs;!Xq3y)Me`5@mBHwcT3DLbg&9Aep^rh;YZF^m zINbHUhf`NMyNEtw$25xK29{RAZ`VrDc$l26Mb78(5F#L4cJ6;F^ea`^q2@4D!JTjF z=!`w%?}clXYtd(6D36FMayEtX2!-MOg|+(;nUtx zc$Belk+n<#L#0zlgzv1`AG0kqou%9~6ai~qXZ-$Z{U%|Rt}z#M2>9+z65$f4Xz0lM zs(#hzo711cdeZ`K===+kL<{T7n>$N;3+wVYMVW_kNG*V4_(hh7gGN?Xo;l&vZgk6r z^0U)QDytd1$+;`Nq61J@hJsw#*WJ+H13la|qNh!bzJ0pytL=0!0+p%(=pUIbMy(Q_ zu6P|VJ<@Byb)-A&GqHks^qsfa5BDOMd4E{j!^0T(MXR0Rk#9j5SwdSC)$sr$#OR*U zMFW7YP4f-pY80??j>-dI!5|sJAf)+*saTIw%P;c>D3|9B)Dc2n*8v+;8`DXf#VW5b zgPz>BDB(n%$TbKWcyc`8!D09KZKz?M^wWzH0Ih=VyBi>!waL^pR4Nz4P9tCs&@r;2 zuKogqf4%h@HzF~CQ&EwMnb|rtGp7Dcas5U?RK0@7(N&NA2!-&fx`s}Ja}N*b^;%kA zCM9~o&uQcIUK&LxoCE@CodFilzMc`#>OP-TUdJeLcJQzuRtG|9lp!roa?%a%J4gDBM7djuoA#;v>j*n8d?8~kb z+761N$=p7pSx+s$_!==lN^x|@`ThxP5OB9g?5* zo%_ki%W2Y?u8SnfQgv_wuDuV?K8t4x`kAfpb@U^`<%evMEhNeoI|QS_GBKb&WO^*f zHs8}Z&_0G3LySyK^$m5kkB_IxxS>OXWwwYi&Nu32Fy>zgFv3$d$WFC#sN!q*7p*N# z9|k4H_z>9fymo}-Q&<-hbI-vCj+ZZsNg51rDM3-(y*9C~NK%N<>=}ZRD88;!Zs|x` z!d(VfXMgW{EtaYhU!}Kd+i@F?>pnfTn7eEYzq!mdS3!IO`lbe(uW$S_zz5{1GRrf! zhudGm*i!(md^{|#J>pYBU#aW+Or9s19bQ$7^Z__;U1?VmNbBA&{8`=I749DEYny8C z>+0(3nu>2*AuS0hgpWzfXY(-oOOh}(Uq_{bWYhLGg-i?~D5+B5myB6q9yqe4i8!CP zl8nH*hMrZ$xOtq{)O+&P*9g?s@C(#$(ScDEekbg_5|-S)hf{YMlNc7cGEkVWRm~kx zXN=Ed{QuZ{%daTExNmf@6_FB}cE)@YO0qK&K?oO$pyN97WhGuA< z&F?<@>WT(Pgczu!;oAdr$Q*Wg+ePN+4IEaW`d7>xGXdKO9pc@g}I z8Asi;a>gM?RyOi?bo_*yAcHy(YG%<3v+^%%NUfhJ8TTasy8J$5-sYl!05|UB7Zp7| zuoh(3^+yW7KZv{GdNWp?@qq3pZeTYa}ppb&9GNF#&Q-}Iy%BTvYHYnyv1^`Mt}qh$K8x+7HJ2Xsx*b0hW?t zg(jU0&%LI-#h-_fyUn+j?%8zWw37fWzy{TYG@V>Hpajoc z^=w~x;f1uViiL#*laPutr;R8^dQTsQ2BDWbsp#k^{)$}&SbHBRp}1`_S>3=)ObB_$ zJ`z%}m1{CsB+N?47wg>7(SP0KACA@nfO7EXj+q#MG#nl~Nl;Gse(ptjDIw{MDxxf-6~jvFuZ zp0DDi66gU$6>L@b@~S7gSinl)>D7VZV`PKNTgkFc*|?quEk)L3j@h&5>vDw8^Pm4D z77o(UtVy*zw{8qVW6OGb;!-Eb_$)D zg6Ryd*$AQb=O07T7BfKXkw{wx+WR!i-T|q{zGJ`J=|@c*cu1Ok|NLHQ z?*fF&(AdRF0TOv>E&+k)53FxRG;J@vT;^||9GL(ipPaM1g1)!@2Ww;ZpHK>~ z+bG!|r^80F?m4x&oAowAh`QBnU_%9x$hOvu%>gWkt)sn{`?STx#7JZE#4)n3w-T=lwJ%N8TcVo$u;F1l{fM_8{-rt60h|)( zPL=b8eJ=Y~vx`Lw)@P@e0gXg8q1f#EE5xE(fF)HY`>ddQ*~#M#lfVzMBT0GPy}YU0 z6pzrkGw;#$0L)jt<^3VkZ&Rv5N8b)9P2>r;w`q~bIhe?uT|89(*#R_SK%D~^P>*L->7{vu#`YpryDF=u0TM?1GTzcIn_t-WKC&-;?XWJ6h}hY*=K zj;N+;@!s1i4o+od=V^}#m&QP!y76rlsIF=KMr&wbh&l+K?t>|^M6IrUdAYKVkGE!Q zk_9S)>-}EgwUVh}LaeFV4epJM7< z{vykF88#uG>6Mw#5)IAsv!6ODzIt`8f-}_N$No6muYH$qoN(S#eF%%_4I2cR|2^zM zYoEwEq@`jei>oRbHZ~kL9bIR&+K^Q6A5%|+kL_i8i~Ke81kxoXpD}o1mMi&EG=hqd zgvgDVIUczo-QZZ{vJG?0&#IL)H#E_|6FEMo`F9VJ&03witUT**OX+y5siSgu6jRJz zM7^!eZIms;em^x%UsWc!fnB=q&?W&GVex|zGb2ffhCil#*X;Mcg%7_O_3?1okW1Ss zsLZM@c^#l*DsFCQAqA1ipp!j}mIg=!nx~P;Iu<@QyIGHn4Pb)-%C@@TQ_s$>SdR$8 z?t2iBu$9*qAk*)(vbgHC-iUbzD#3j&5BfF@-7)N7Vey7cqeQk|V-qyO9v80!e~u#z zm4N&9w^{jSN(}#=wj;neJ3Ypqe0ANLR^6z6M}N=?JhJQSYapnA{o4oNx5ygX+XI<( zQ_XvO*OxbIwmhK3d0V=SLnFI>^w869A?1=>yZYi}uCd6$By1ks2~g$+rTzj%zW~FJ zL4r@e*MRn+5x)566Wz?l7ZIFXj1O4aqUDP4(}=a+D)b{M(Z@q zR9y`;A^!fg5G)cLY^;|e;cXl>kVy5R;;&Sa?%Aau`fvz1$Dcu`X7l22BP)efR$f+BDrTMg5#*{gWsfUf;381iH%2ypVPcA`lO< zx6r;7*Tkv6h{#JSc;2`X+qOEwE{f(0AMO{4WCDcoMw}~xgqIY^t+o9tgrv{-iP1mYuy!Qr>5+{C?n)YgD6Hth3HysW?aqo0Zqi*xbWK7Ua)#^ zXg;f#@Nj4oIx0tdPxq2gJt>KIJE1JwdT(rU{EJC8TFb_iYb4d?a(sM5di5)L)*X2L zx9%^O8<9qRY^vWPSyF8*3m*GU)jWk@VZ9R3r4n>M6J~!A_A0?0@sq9o?*@;1{B+3i zm<^Ywno?X2YT3ZhLOeVexk=%i45~X&!yNNrhk*JBsO&sTE>3)$Z^Y(th9cgCNJ=1A zjm~EAh=kmGs{~W6&dk=B(ckANFE3kUDvx@%Y<_tBGK-!bxEmioUY9d_G2^yXpljsZ zht=%c^6A?{9+DSFlJ5b)et%&OH;5_4OP@M949E$8TBobh*mVI$=Xn@n_2?l$E=SD<(~b|g-&J8`Z9 z-apT*YxV+obI)_*32nuCP0@#Lj+(P@+CTZ769_<}b>@W&!S_eCNf`~{P8ECQ?~YX) z{&a*9ird)MO9zfy04cQ1)G_>LwNMiOEph-=RoTtXzcsPTCX$U#!OA_lKvD%Nj=uLF zj9ca+vsgW^Rxt;g51ofXcW1)1jVd{~??bvNF5itV&Tbk)^q4C#o;}Tp?cO{&Y^Ldv zkVo8!2ye2Sld6Gy2|Ax%4T=6huL>UoyDSX8Rcjd(j=T9fHlc)~I0@U_c<9$*kpHXX zFVIy$Y}dw0oAzST{}xaBNMKImJre~$3ZiTBQ-(sSfb$cGfcQBu-Hhm$h-C=56`PB^gQFeC>5o7kVcv|0geM5BvJE z4^NEd?cvlx6b6!=;@yu912{j=@VBwJXzXmqgKK->aCjC3@#U%&sHe=i09sgJ*A5H< zxk%m;s`<)^(oV{v&J&!F{R4D1SI#f3nepyVpJ0g~S|K&ufM5SEIXdZmj3+ozEz5Fi zcNAOq@ZIR=jhFREq|Px!LYqob=xU1HQCJczQtqK~6~C$cfv+AYw=ieKzw4wD#726? z&wXrd--Ot5Zl?cJ8Z@@MIzw~s7${w)8AaFISh`JZybQD0a=(S#tk8T1;nDA3TVnlc zGH+7oeW1*>8=rpFm{m!Uc4C}*#FM|-Y$a(U|qa07$ zcB{`DbZ_h$QL`R{7}!TE0_(gK!9dX$at&)h4esuY+Ey!eHxb83WFE4A)YLEr?U4o9 z=nc%6<-&u<6h*E%-I)j9o4izJ!BL-WFz*H9MAfBs7HA`1u^4)|k##4O+R*drc`>h$9Rsl@ zWpYq5ftJ4ai^Nu}RG#S$Ss$(8S*@2?BvMfG%DOW9@9&gm9+#S;Id>p0eH_nV5NT!E z+N)f?R&H)vS3oraR}t>2a@n2rR1p6#8i`p(4h!X;H!?HhWgALOao0cWPD~`4@V*g( zpPruRI$syIam+Ql(0cSuojtYuS6)Dw`(w4{)@xw>bNeUv!KXe1n7WBYa}6C*dSo;i`#>N?MM;uL-bTk#v>~I?}&n ziOL?JNFNAuu2K^l@oS!nWd)+%Q2C_1$+=lA$Mpp9N5bP*mD-n!TMJFX(>Y}pMcTQl z3%;;rgyXj052IU_0>Ih$S~ls$5Y-~|5`SfV!<&wYnL#hA{n56tZeZ5! zkC9Qt^$7uaf!l&4S$OrDA1y3|@N&Iqo|t&+!M*Z@lCIUsVuJ%8<<)~!pNk*KBXIa< zwO_;}IRBOpkUlH5gF>EB*X!+eSNmNX)Vo&>}fG-BkAEK&}2)3t$0H zatjuv2+m2l-Ww!t?(UJXva!H>*5BxL6-%iP8lIZ zNwFL=U-FX^-sH4`qt#|=Ss<*U!85_yH9ejjXkRuO{V}$p(V()5!$$44L$-RZ-|k90 z#nlarCXd^h>5*AenwNkDV`dsf5DLyf^)Cti^1$*~@&A=qMf)v{2sZQZaunL1JaIa6^v=(7onj{P_5bH=n< z+c@)X%9&HR{BUUy35;3YE;zK$8fZ+mhw`xAsskOmZ6TU!RWzCjWh!=BgY zmxB#w_^^Y$hD&S{0#viJm6f?=Nkt?yG+4LvkSiv#%C1f0lv>ZmW^iV3zIiXrByaS0A~y2Y;V$|Xyt)Bj?b!?hgx0&5&2SGO#n5*Pdwoh z5n0i!I=;NNR{N!+f7t+s<#as?OhS^6QB-nC#;mFhH>Ww5sB5=|g71Utj{~4()c>Y2 zyY|~3ll%Bxcb@GxsQ2%nE z6u}2UpF3&gHuv_HdE_po^U@ZNAKNrrI!Y-Ui}lpR{cD%lb)?T$9sjJM*k#=H{Q0qo zNp>&+KJI-o#$rOUwWNID^KwxA^vG)^LDRP@Vw7DHG*!V-YK&mWU8iWv0F&s%K?@;)Wyznb-O|DuM#>FRTOQC zn`|N3kSPaK`d?nB!!OGI&IQkZ;NW{p9;IH3B~--6xJ%S)dl#II6QrsgEqrF;Y?+(; zQ2eS!#eSrTRmj`q_cy<8Nss&ATC;UHVY9OaU^-wCQ((2lwNS6QF8mFc!<>?@D3&A0MX7?*k zi#Kxv?913&DbpX`E9XbLpT#Jnswz0tH6+y%KFZ6ZCUtM-zxv<#+jdD;?)gn`Om^}x z3g4DkhlHozfeL*$VfEz3gX#6p?7)N3^*Xo-oZQ^p)VV#Ob(uSQf=w-##3cm$C(^j# zu=1*iQi7|68)3MnCb-Q~&}Sy9Rb|61?{6RPH68XH*=T4;UfmN(aXYYTdtrIGyMDx~ z7Hxm#>+HSruzRwR$$59mlDSf+=49&cJOWDpi`TTli$( zd)KmW3|(8^1EEU(=z;%KFP;F|-T-H~;CWZ_M`oU8pFz1>Up@S5E^baOvrT4#!E?`_ zY8oNKa`OCnpMM7fY15dxu!jQl* z^OK2wVk@IlrrQo+K5EBX3s3;aLfZvvQS+u;*s}3}4v)jBh)T26Wfz0;UcHS#j%I#w z4c+Z1=6u64G63A~hruzdY86_0F1@Go+`EXzkC&5UEB7b3%A&c8*LcDTV{%ZrYp!ma zmo|-=s%H-Cr@B@~&JJtZ7Ss`QcBnR&+3S*17C{8!@^mLoaI)*y$;0DwmwGp`(+rmDZwE@TYzl-w(Zd%zfUlL&8`$kA)o!a}q*Hcl| zY&;!B>3E+08(aCtRL;j`osO)#2d>1X;i3<7-m7~A&J#Acjy`7YB&IPUJt*{7mfAn< ziT_#wMkd2Z&uuVxDv3}$d_=SR#=(Zi~@JV zA`0^G9y@-Blatf#xdYq~b1s{kv~jEbfK}K_wfbw3zQO*dghZkgpRJozF3&94)~os$ zO{Z~M@}`5~%i?XJ1hEV^R6jx0ZBvlZQ2bMW@Pfs}s5CYrJY4o%ul~U?cjvu0P*1Sq z6E#cXV+cML=dD-9lHac8*i<4Wyx&`zSznng*Ab*N`J7e0tprl#lN&f|`FH2AdhW=)`GQ7fO=TR=5pKA-gXbhj?O=Th5p{ffTzFPP0eZw@r;Y{&>= z6|T1~Pu5SsOYL{sZ0zCjm{>DjL-1Er{OQ$al+~5D6*AuJMcwVzU_ThXjptjVGbKsO zXFCzfd2_Oz8`(9ye)9o62<0%ktdN0Ob z9z7QtPb$hkU#w@<^;|>Sjf~MSue<;t?Ilwm{aH|!r@kB?_)JiPEcMuD`e zxqO?Z3rCHff569cbJH|2v35N6kyQ}2FHhWL@bRJf$@{$_i--4pSyIC1J1)8&YOIMw z#15(v6T_Q?ls~p@CTv9!m?f>Jmqkhd^Ju1`g^{X>7Z9$>p6s&^?d+1y3c})o+Yt!u z${e|rqI|;D(7x{?1gb8NAJZzQ=9Q&e{?$ht0!4+P0S(shzxzJsZ6P44+H!Mci6&a2 zFmnQ-t!-shNGq?BB#$J)?k0U%RD`4`Ro1nUx6mwKd?r}O6SlXp@x_?M(#o1IVD*cu zKuThLY~$=dEh^-$LP}l{(G97!HOnE%vW1DsJot>vD%o948J$zN*d>(*CuX#&n_3T# z7FwF~cpa_;ImAiz*d+xA*SAh9>(T63+6daETmC*TrHJs)Ps~YfOj<_go6(e4R@F{$ zyuMWcxl3Gz=2w{8KhxX|1TQxX%D@M2xU9C%D^<-5Q6=TSC9_zy~^3(}@diQ-_#)w9(gBi`#lFIva(LH5`qRh;)z=eirgAeG)frjp)cW{n$b;b|!{(nze z4Yb)VbC-W(V~ZElz$j!D^5RBGXmb36z{=H5NM|GxMC zfARm)+w+9QR{@J)JB-!ZVQV#8sb^1n6ULv%XNta`nCb~pC+Xw%QWcdOuR zsyneVpZ}TtXBQGaub!-I*HBSV5f^xM^$j5idu25`I*KS%VyNfK&zGxkslf30muOQz zIXZe7n>x9^YOJ9ah)XL=o8I~3VyACRe_*7_(!5}h@6e^UWZ&+^GZP9axtYoFX*-p0 zV>9ZfPoI)+lQWf<69lz43W6%r3U4*bt#&%&{NQe8XlZ_RZy|!0zn)ps4ju07aCEg5 zjLCAw-02z~8YX*X*QQ#>Pr#(rxm*)c(Wa^aVXCS~Xtteh66BYk95;3O@k3lbjw3k` zNcD~sAGH)AQ$A-8Xfz{7gI&;RO{zfwhO3~xn>!5sgiEWty0|Hu;Yv>x6(k@uHUXlcK5E|6k!yn-?I@xOhec`w0Z$dsDv3E&_Vg5j*oJ*eVhokjt(UNur?`IjkTZ%d|4uuKmv_X3ESy9xi&hi(g(`9-n%iZ+c`= zKdkfkzD6M}E$vae3~nX@(Fhg~>l&jI#zDb!CFjj#;yYN*|C~3&voH7!lP5{AH(VpJ z`TAmXB=TOUScc%%(pJ;b54d1s11Sj}0HM}_4A|-1{n_0`#$w!C!2bRnTIR~iPT8Tb zC@{gwrr$b-@VUxX$!B$$EMltV6}NW?(?aT84Q_8Dxn^_8K3RklJxT@GVeW+zLu2x_ z$?4wuBc`D^&pNpdpz><;>OkeMo~UDY-hf z*J}wdMR@4xEkt3?7YM26x*RJxjo-C8w5e_g9VFnK7I&6(9P+m89dYkYlqJV!d}F!; zE0rxM@OMwq&*iLmam7FhnsW4KFPdks@6|Xe<;@A-PPJBD-xoO!o9QK81^R9qc{jIB z>b;qHEiFXQ-$Q7v{&DZ|>G95VV`v~4GR3+J)Vm~ihu0!xyC*QqJ2mReqQ~2P`f-MW?tiFk` zP`2JLrv*fx=7tNFANhT+uGYQ!o=cXZvnFy>RW&gZ*$Q;Tz$`|zTa}gdt4q`lRXUi8Qgno%6}u=|_vlofFme(cGQ8x4g$+|P z>dj3R6%`VBp@!n6v$t&n(pg-?c0q=)M>8|iK~Vf_uWQg3!NOy+$>wx*Z(Y#xrp|(% z`Ijdr3u3FQOHN6vYH58+AJr!dCm<4HdB-r(J*^B7T_m!I&rX0+Fc-KYH@3x~a&kpc zIRlP%M<6a3)C6GGezAk#R5FaRFWY(mFR3aW=YRQ%L=2kM@i4afqWXOcEg0ST`ZE9p zi+#E7;^^q;tTj;EbN5(mYr#7xXQ@SzXy8sI7#|2Kte@!NkNlxP{5Lb*n@B`_Jd+sz zv^aq?HSlzI+KdXqMNpa{KogY-F(c@FYHy=^yUAX3W7amAOCR7!{5aq{SWyI2 zG{%P1e71Kjn3!)G2??TpMOOH

)m1%qi^coJ<72EaB4P4(Dz$;6pAS|0rV^ z^4Xb6Cw@{}=Qitp=>>YMI+T;M9k4e!?zbRig}w8KC23OmyiOY)_JSfD(fK0mS!(Ic zs7c@TD$E9Rhg_y9G~_1+(C)$wq!}klo0^2IAeL5!9+z8>1qZ)xhXm()crLB%6jYq( z`T%%mi)`t@RdrDJox|xp#H3pYYU&^;3KI#Jr3oLzxGCD;?y7w843slR z&duG8pCM^^iFTuLuo7UfH+u+GRy)|;&0py8gSbivkg>Ap<6u`-a#=hU`5c7_ZvH+G zi+*cGVIp_RI`a$Cvu#uBwTewuO-U-?7!P={Lz51op%7d^+j7tEPfk5QC39}}TBe#M zAvWRm7LvZKq~>6vUf2CJqNu2Ods<8shVa}bB7@~B33dmZk}@(Az4}z|;VzrR(I!Pv zdy_rhzN{F9x#83{FmQ9qPmZOo_7ZO`nw)V6Hr~p*F}Wmi!&H^0RxVixJ|o5j zMgp>Ez)F+5v=b2f#p-2|fiwIwk(kKb{QTYB&6sKa2akRLvxEalwd-_GWaQVnna?|q z6;xE->5n+Z_cfJg7!K;fgEr3MV+TeQ4~H^Xr>1*@{$|qcNr*{FJ47Wn3eZ@8tq#|P zekq8KKE9pvQU>6e^U0Q5ut~qV1Qfh@m!~%h9(fw(R)PTK$ce>dq&8Z*y8oCx)xtu4 z6S zp{3m$oim`5j+yUEpO+-Mr%*}beU?|^cV8WUzCE=ftD zlB+sRTpAhDo3{b>%gipDol`$nUWBbXuS)lIjC)Otqfa}7v}WWRa&ln@2L+I>Hr(-d zc2-aoVK>jFivR3{U`Nn|&`c6IR(1mJq@v_l=_>h*^1oy8*JESwRe#5Bg`VHFeZEgc zAOe{+2cM@Nq2I>c+}uzS(u2^IUlLg$|Ib} zk6NO#`#1=K0yhFqbhrGo!E+I|RJ&ZD9DM4(2C6I*YL&;sdmq%G$7$E~f&z`qg-k&kEpys+!>kUr^GI-W zsVOXSPXbZVy?7A{Z=sGH+@HBGs3}6l%AI<{|D{Ddqm2a;yFGZlgPxvmATW2bU_A*m zy>pBeVdX32`^?o03<`JYc(X*9gMY%CyhU)fk8o$79T&>IWajYEbuO-QApHZ zT>9sc6CBL$*a`~zWQ3HJRY8G2>rJ&Mst+zJqiK8Anbl|_q=EvMc|dOt=692UG;qVx zzk-aqZ{iMNrZ?wtcdvjR9~Oj|wyY#D&~@r8Ytkh!%tBcsRZWf?SZ^Ug_f*6bh9? zMV?fx*ByxB9Ge~cqk>6bF+J6zrsqZ-*KB&ekHNqg?sItpbLYRl|1sz<-Ms5fxzsp( zj!P?20Jh%y#o1)Ef6qvYzYZQe%b)mGL-p@{+V?y*e)d+chzvqC1wt@#-?OND-tp zojmiWa5(zsJETRWNT(I}x3STwz^7zb+R3qEdb&3`NvprF@8aU(#x8bL3^{@r{RlM{ zc>}XsFF}?D=Rbz)eaKD`ie}(vS9Td}Y4NotVul^;uG))>n{ZOQTc&B?v;>56&&y5QzM;bS*j#6VAFkITCL7f4H4_%Hf?pI-U*H)h1w*bfJT? zfLK(m_En@p{$tPpWKoezNY3P-s!FR$!P>jMw+FVoVRJ{8MyAUPc^bwA_wKB)HeTHL z@30KN_wfNjNI7S|aF~O$-4W)K1I*_q2M2~7;|*R{NU!~PVAE~_;e74V|I@=gzo)mn zgiBK%+Wpx$lsoPoL-dQH2T?q37lXnD^?wC7Hxf0mr{e229ZsQ^l&|g zxBz`KYHA9`ZoSK}7t7a{W^bEj$C~>9T+hhJ=!iPbb+3=^>CCMxeLSxH5&&<_$<*-1{@u*1+ucS;@5`vt|K$ zUb?j<#l=w=s=zzfWjG9QQ)uR!e(6C$j)Xp|T`9RWe0(wDxJ2T4nMomLfZGCHi8!*^Dy|3KFN+aRNFRioV@E<8%P6O!{Cpe-oIm6y8Vj<$d~^;facHIz z1NZfD;asM8VO_!&*c0V@AP%kE=%W@(Xha}Wh`%CEcNbpBpt`t6zSKD5%Y^!xI^Bl) zr06yF`z2vva^tj&7{prjS2W5tHmgC0vpXRmnXTj;#4eqC?;%OunG30Ks?tKg2Mmu* zy@!&(Tdgs))qIJt17@;m|Mu}R(mO8Rmcpb zdYN!}b`c%(^2KObj)$$>Ker7-GPE1Tp81e_lr=0HeG2VU4$&-TydU}7-8-53ZXkikP&>sCs>$rl-a($duCVl zZy*x{F4RnHjO-EH$PSejj=`7yG3+WVYCV6(P*x z&4H2-_u$8tP2p>s7WEMT+h)lm2z+EHRpF@}OCcg5H+D|5ED4-HM^ zxr$22ZdtIUU|{HLoF#n&>M0o$>h?yjYn%EbwA_F7fq`fD{vF~~msCT|5B;!55C5Av z<{#4!-M+4@div}IWja8N4-GG*Tel=-=X}Qd+&~Xuu60!`?31J9j13xQM?140`BN zZ@|5P&6sc7vqR@gs1y47ML!oOu>U6p*xj72wHoEs(#omUwlwVA@uxty^GVJ7JLI~W z>34H8&t=na5K~`36?sYS<_rkUo?a<6ALD*?9;=ISs1hKXa8$yh@!diXsMCQKMx*-l zqe@R8Y&rA|R8Um9SoJMeKqWEFmvJsWXV4IL{#BQwQ2E_Lb^N zmOn$=HVqCOZj;%aBZ^DN#VnQl;AcmyTcN;TjNo;|I{;$N%#R*{5``*vA`U^6aQFJr z$JX@Di-)UUatH`k!JZ9ZRhBF$5QLqzx6^d(tU$+R!5+NuVuDKe-Ke!S5`kP{mLA|v zPno&TEMnvGgBl22#KGwaH}13LPWjo(NjZuOLs-mEi5)<+s;lRt2AjZQpYXI#t>*x6 zVgBOnuLg#h85s}IpDfzVg7PKE^tMSGSQQ;!B&+6+>-wDk+wveg**^x!Y3>*P++agZ zC9lSJ@k!MFr@2aia1%(V3_Bdp!y81N0b_sA8h6N-254mA|$rydHiT zt>^#5Q*HK4Kc5_f3n77FD_n2R*fd=QCfA#wPB-G9n(=+YuUE2E=ZgyqH}|%q_<73G zhXOEnqxtE;9qF;$brVQAbvDZC0C)B`Gf*&5y?MGImZo92zF?|(OHI)AvAPW|i`l#><0 z;`SanZ!oY$MO_66}CKs-1Jf&j$W z*-1=TCk$GQbK1R%>S~>kxqINLwBWsLSSiZKropS^ zG6!@i!m(L|=>BU0VHVcbU|eRTJxV^ksuiSUmej19kX-Z}2p<}ry8)TCw@s_!r{{As zohmG<`{$mZ&g9@eYAzPk{^is3G{3(;bl&SI-no>}!6Bls5W%+VGk>^jLf+i}Q$dn? z;?!O|Y#FS$*O$(X2Q%!uq~Gx3>iPKRytX@9ziI)?;>(``0-dgxXOdJCz`ji0gqpb{ zwX-*Y^~Lb|YXyNkUj^;v5SbMxrT^$WD`LQ^+57Bf8!Xn zk$754lrpk==cQcH+FJT))dV1spI5q;jm>m+bZCP_S!XA(??~x%LmRHT+SJTc?u9#0 ziawXVl*&}}Z|#sWC{#QF?5`2KXuzA737~|Y>e}JspUGzk$Nc=H|FWRsXYEx+}xaBj5AF!LDuXqH8{@jT(k4@V-%*-L-KhDtBr0|a$+On@^l4P!-$h5@=eh{o{hx;__8l@6_%tdz{D7>t%EBW5_Ndjct(u%5xkPW+ zzDoN)mIXkOpnW5{ajeuxPK|9`josUp4<{iUXmTIkshz}9_-uI1hGzRoqNZ^+4Zyso zlkGvDy*%$vIbUzq#in?ep4CG|VHT->GkJ8mAt`J|*#WRu6nr&%gK75`{`?Ars|wTI z_3xlrz`)39qcmJ&)sTa7Rh6assDbnDq?R$*1q!S2z|g^GFgsitxjp5RY_PFpiRyo) zpf4kd;veyam6bezk2c9FIbNO5eqF8s-WDJ@oE}FwoW=atx2v-ySUh_014lt&QK9W4 zfISIRQH%0m^G)J@?U0dB@7t+TqoeFSP9j@uPF;AHIn3E$HT75hkp5xz{3z69D!45zw6nQT&sux8!xUe&xeSU>Trni~r%U$fFu zG4)7MfEE(O?-8z109nE_S^|om9+^EPnU(#SsYF&4rFZXtZ!_dpPE`JZBqVsiS^6=V zjF42`^w5nLK%mfld5EN>O0 zZ0v2Q7S8P>V(CpDc{l-D(v1Ew;1_i1H~>2-ColNrSn*Ao0s!MFq$Jx3F#``JF zwFI!QZ{YI4`FTXZR9Ws~YRZ#r@9N{MQYThuY@#kn1%eSDJn&bCPuU81TSz!<0)>l;AF7leh z>bLKGfN;p!Si@NCSz=Bh495MMkLzEXVF>uIuR7mtXDw!*$p0aa@5U_&JIC7$3M5LE-Z=K7l#dpb-9`Rf-?G|(uI zFfxXxj^Dp4i6F21A+9`NJQx{K1F|_MRWvoE7{bWm*RY8{zxEedR~P=4#PT0Ix~P({ath20&*^9=ZjfW)VB;NK#*kwW zgBcK8!D#hhm`SDGG()%2UGKV1o_*v6=J-2mw_5-Xy9($yTDE>dvz57eKtZ&zCoj#< zlTZ)-3+PGPEkcTsawaC#U{afQC_dlGs0OeuZbWU@Ql9!zB?e&A!B3#+{G716hdU@9 zc1(?px4bX~tXOccBN}Ii6&53tIcuJb*2H~ZokTE{l?>^$>mV1{CvNiy9emEbcOx9H zbI6tjPbc7em8F%V2s2if{rzLPBsOMl{$;QY%aE*TD&Ms^ds<0u=^HNR)^>XKipy1d zf8F;IpKPa8b+2?+YR*7Ap$%ZN03gT141cTe_Q0n3MnqK=W~##y;os4ds1hIw-9|dv z+JfY=1OcZt6Y{1k;=W+!LX|nk934Uj|8i+lwXwcw^hxhi9c5*IWEwyd;u3@Ferw~> z_UqYD?b3riYCad&T>#;uwMo*S@!tX$ z@&s-FNm*FtSs2DAo_d};P;m?MUU)E}JT!h?JD2A*Tb$L{*v7oU$e23VGk`&P@Ghmt z(N|7hPwy3W^zWC?IW>8nUTGM+rHntLE zFJ^i9$PY6upSq$ewIJX{5x&*S9m{Ui_L-GuD1C9)rDlk;S4NENs}yLha(1d_3)!QpJuB$x@Zmgc&^02XNP6ejvI3+DLz`e zKj3|$=}2p!vJ2=N5Taxb!no~hmsN8+GA9e4gu@-q7UqEH%Dl3(&7m)oo*nGCcekuy zZ+5nv+6QoA3cPvw^U=j6`v@k;QgwE6k}R~+LI{9%3QXq^yo?0a6xKMmC%88RJdvzu`*K|XcGUrm{wvx=Pqqj$rHguKZ zL5|u#q)D$!_#6;*3NU&=0RuHP=s0(FRxt%GcKB@?OwaHW_`Ir=%tz-Y>I~tmvl~EAs1ezGXyd6b|%|uxt@Wr25zbFV`K=7;bE`L1yplY`A@Jb9jWp zz{ntq#L&a_MGsjKX6KzI>@BK~9^{UExVy8nwzHG1kUzb$j_vb3|11v};2n#(uTT+$`l#I;qbPrx>G>W>uzMkN!BC7lm z_~l*w>g0Uu@&V|BK^A;8XnhLoynz`p4Ycpa1>Z6ZI!^MXf)6X(a#RQFRlqh;!>YQT zzY-mwD0~2-p@hyj!eQ(e&*+l00AT0|S}E=1ZCt+d#<4M; zIO|`Iri1LP4fOb$KSVo1XdrTNJkg@ffPbF=FYs+V$y&wlZ`^bCE{>L819DJc@&Ug? zIWD(EnJ)VKByLW(fg8vfmWH1*E2kiTDF(i@G4#J->x) zWmH^zJWxE+k`pNleqm>4*KLLn89dYzn;uu!iW7%oE4+0NnA*2-bCU%3A`ta#BFH5Q1+Y5jx>|`E=Y!_32j%HE& zcS~OK&4kJiapv7PB3OkBO(OI)EzmE!fo33BwEV7d=DIKfk5X;Lj0J~UE@8mgo@AW> zO9l#hVfSHHY=DeTj3-l21hvnYl5<&~NfBS;0JzIq`e*@bBSx3oJVTel+{S{rZ}1I8 zZu?BDh``clsC=9ZRLW@bqF8uyGX7uwu&MXW0dWj#XIeP;K{KJ3|Mn=(oV~fg~LRa6jY>j+>W*uiGgeiyi)E6K?edBCp)LT zt(`NV=;k2mH$^V(F0;N&m`p7i$B24vWRm^B|2qg=tgZ7f-?kZ!f7&807CY=UTIga& z(p;Tmvb`2M$)pX?DHC0<{?d`VICK30Pz{y8Q^cW>JKBG>ys(i;EMHgW27-2R70eIO z`h_3k1&qv$v~sP19Gbc!F&De#qM|U&IX5E?f??%fsaCGr|50=1mTVW5B9aO^nij#8 zp;n(vA0*NhspO}+A6w^E_J0cI0;$oUssG6o^1IdA#-^}tku_#u_A02(suUnx-5$*08!mFSlc1QgIRE>{^PgIol zs%lkym(j+W#lX%<#rWrN{eLRoB;p4xl%w5*VdIZlfKmsL))QTB&22!aSS+CM zf7*Kwr>488YgFYCQA9um9zj7+q=QQD5)hQ$dy!s4hXA3dRH-Umfk=r+@11~vfYeAg z^xi`!p(fwq`R@BK+_~?}oym-jgCse>bI#s-t+m$HQx6RZ3CVc5THAsMkSw1a1&^s|Cji&3 zWgg=Wx5>Vm>HYB@H43wj9LGBZV4fDi{zS-pVpL`P{F&RG4**fjz0asa;HMT8O5^3= z-Pxzq6seOq-rP9M-MFz=u^(pxWEqTo{`Ru<%mSA79N_Kbh6e_=gnzN?2=8gaFg_s>0 zU`)_CYv&tEuoKn#rX@5v)fNT4FKy$`nh#W*xN6OR>&JhaWDmAlJ$uZ^}_QHfE9S>Pgne5(N{_2)_a_rWwbYMO>~e9K#? zv8Mzz4b39`t?&1$Kzl`zE$K$ebjB8l+m>ziZ4NpXWlI#oQ|$}2!wIr=7+dN$*GR*u zHRk>tqm^MbuY`xR$j25jW@I17}}gZguhWwsVQj& zUFHaKEjJ_!|34e{~h1>BNZTbXnM>%#ip5fSpq_g=_ZS+klmWOrS!DX+9(D1yooxD5@z zB1eUEbv4h=`(orL9Jjfust2}|l_UjVEt;_xp}FcZNUMqgRta?Z5hhnJ*7RS=e|~1S z{&#;A8d7$;UEr#oR>LEoxnh$?5scVY2>%LqWnx#v54Dk=$T#*~4``e$jg{Yj{mMrD zK&%#+)4YptvVIQi6`GowELl&k{|I{?mlGE9vTNyvFsvkAhX&Mi(P9lJXwc4KhFvcN z!t}2t(!P6`F>dZ(z+D}P%ARv?=Wu~74BAgClf`{vb|pHneVBoAEE4tifudk zakIVAc6r0g)gzSAyNsuC#om?ag%TPG2!39nmZ6@`RhknDG1pA}2vRy%`h1C6-X_fK zs%H@KV~j!T`!5I0W>4vV-1%h4@53R5hpoM<9{qp%CV}&@^!bjLnHd6X3jOAX0D6`= z=DJwT+MhuA8mZdvs@#{y$z&D;wz}d-eDYVXXU=T2M&&WrZPz*PU04d2va^68Og5KY zUtA=>$ut$wn7O3~eVbZ&y&tdh1eFo+?{<$LKseFa}t!1a$<1Ack^;x#<`RDu*5-`OByso_a zIngQolwIH<`!J?GJz{bar9166rm)={SUom8X!C&SwbBXb{254Vb(?$uliplgQjr5n zZQwW6*`rvXn&7yw^Kr*bPOi~oYq)N8Yt4qCUg;hsa;5i0S*W7olUXjgCp$T5I6(S=~$R=_8@yT!m)p7$GYJG!^K>LjTz#BmkODs;ke8X32# z{%y^gna^q*Gxf6ocLivOsL%d$`$I@XZ*O$(*u%zN%}r3h_(Ie{`4?+7sXt)KJG ze;VpH0zkTI$Ze|+1hb34LGzwUc5#ybt-y)K-5P!^k3-uO{!S3Ey6mb!5uC5o_#g{NN@k8Kb>F7k~SjVU;uU=to;7ENH6UE5$rJW|= zIKuVe*F-0}L-z?48ORFeat4x`EkN(4?b#6rFagL#=w~M*j7?45A3w4lT)ZduxU76@ zbM+g)L4(|{n3DnoIQHF<&t1%dN}hqBC(7V7X8q)@)aks@`nz{P5M~yL%aG4@+uyMX z2UD<~rM+{qXVnm?yG`8*{7hPYQeAJOGX|~cpyuc2ulP1wDqT%<`1@usAr&N@fSd;4 z1vk%wv{;6FG|8#vIsLvqRyRAr4b}SQi}Q;&r7s>nRSvlo7x5%(I)f2KKLB#{O*Wdl zx6Q#|@uekMF|Nn|Z8GB*0EOd8;#Zc7N-j!JEKKY!rgl^@Q8YD`vM8$sGTrKGzl2;c zMFo$;Q4M4{mef>#I`o89ytGD#Yho_q3U~i~x_BT{_WhB>%6gSM%#BawSd8%4+46x-G3gRWOLvJD<|+^IsA#i_1OGww#UM-`(oiVPDzd8f1=%jNK3Bzd1a{Lwh`>?kI#zXOhZzj56WWtJ!{2^sjQqL(tRwp&xu$z*h1Z(>Or?w ze0y>Bo4(h|MVeCy@8vbWq%0?1eV(t)`C%0hf6;1bU;tu7M5mj^z=Dg}`K7o{EzU%^ zw~J+ru**qtb29??IW(QL06^aHPBlZ>d0YUZ%R|1{U9ReB$A>W2|Pl_fAyL ztc|uEz`_^ToW|q`+ zV2SQ46$G>|W&s2Owtxxf6^o60Pv?{8_$PQ&Ynz&i{H(5%iG&r&0j!vbG=FdRYJ~ zJvEpxwU@W&UApwCx{EZNXoFR7lE7fv19m?r%6|oABMoA0=Tqh5Y?(a({)nl0gdoi zvHGyZ+TE3%-z(X*?Ay&HQt1FDC}MmnOeZQLR<>I6V`r6t=v#k;Q2XTd_z;j)edr#| zf@>j=PuZ=hFPoRFS;0skTpUBw^ZE{VmBTLlj9*>-dPu7J>g*~w=OgRyfbP_#2{-w4 zM$jsUtt=rDSkvkL`(Jy+?E8h|Ba`*GS=SbWiQhm>SP!q)r?wfgvS)R3cTaqk1GRU!T2!1E1jj$1Yfn9LJHxcL@@`%s=hlggcGdk+M^G0PtV}+vGTP*$5QjHhp=61YSf!8ZJ*^5S#gRS=OC6jMK zl%VbUxp1-MM3qR-cx*K;)zs&bO3Wdfk{d~dLD4nbwq$A0b{>o-tDvAFD{Jwl)RHim z?jUv4Gcqv1+xNlC@Yemmu-TtYGFuWtUgc3yN-!9HS!F{F9}M2%txOiVz}pICq^?@V zb6K*ofQjWHX#53PLmEf>=8~<#W`tZ-RFon1x&5AJe9$+l`P{<-v^Ns`zz$sg5~-_q zbcEUkXm=h|A$+cFV&F!*0m{<1Gm=-HzBQ9qfE%f)p=XnKpb|niCv3oUg3pJ92A4Aj zor~HveSDu0&x%7fItg?eA9; z=sSr>ABLFhPSx9xP2S0}W}9tHaes-U=D2531KdMvA!#!vciMN)v#1}HR~G1~I_jcc zGxK6S$CHv$*3rWfx2%P@V7~hQz5MrshGj?GJ>j*428>hn;CySG)EPRH93dv7~q)sz$&r$#WxTvum($$5wEj4wV-{$>44^=Jm^*9H6fHMpDT z*3PlVCZNa$Qn^bKJeILtclC7)rr9oCBMnRAUzrSQ-p#U{>-C^LIy%uwNIrv+zKIW- zojj(yu)7To>N!~RAbI~Dzg6`3qS5y(pX?`zy|Y89e*NiPdI?EEdOhY4;7S~;aNd_?wGQ3I%hqCc4950gI(`D?Ig+i%j2!){5(wlX8=!4kq*{iB*%6 zm7m(O(B3?RWT)}c{;9U?%(CgSr+#vcibydd9WnlA&)hhx3_a7Q8-$>Sx%j67!h!^` zM8G(`;JdPuYUk)Um5MN`C|O5SN)>zH$>RQ{r4_2I_d{cf>2{hO`Y6p1Sk5#RX~GT` zQw;vsTkfai2dQ9O7kd0CyHfHo_xz^re;oMJr-pBXl9G~a?AzY#tP}HPwndqt4!sfo zsPVakstX7T-reT?Jz0yhD~PYlPE@q+{;~VID_b@!B+tZHOk8~3fszi}J@Yx;UI_6A z@!U(ZzKic$L4n6e4FWIS|Ep^#AmB_)Z2W-&f>+rEJHfr|PQBZ&r)pmvGJEPM9C)e6D zvAVuK3M~WuX*vls(C(AG%%&}?SN<_ktX1Ii8_4I@ zi+>jr$}Y>aI2Su(u~;3QC8G*{u5KmLAS#6qud_ATR4B-9mgDp{)^9;)k}9A|Nh1zk z^&UQQR^7kd=47)E{DKc2j4w{jraa|AL0L=@e!MW`gqV74xuC~s&WeVDgI%0ouvGal!TU>-1j*?6} zUmFuPgsa|Axp_`U4I~H^PUR$`Q@VZ*1nHq@NXD1%K=A)<*=%NX%X{5 zZE0!Z#nb*=dXInQwaGW(VxkP$Gl$-gj~~_JIn>2sJt=^w-c7R zajY8e?~e_D7r56rPoubIcGVv##4$a8Eb)+CpDfeOEpgqrF4xI6u$aoCLv(-2YpcDz zp<4-tHgYxB?Ecq7PtV?dAkMJ~>QIOf@`xS2>UUnheLAe3?WU6cl$G~cdnd58Z$~1L zb&ZwmjtlkmVk=tR?Xj=^mGqwfSV|@=TvS(3P*#>%X*IT7=%q@;fP4KT!<8NMZHdRm z<96P^g+A}*+0&W&#S|2LMg1B>2kC2X9z^?Y7x@I7Ry%d3Pe~rsOcHW;B3^a2e*4A@ zc0EYr4!Wb%L~$jIf?|SCgffxHF8fQ2{NAmlKmLY=`E_2Bcw`CY`%3s9&4R7}1gTP! z{8jngv$E^p<xd7zVzTf+Sy<+_^mt}7h=bwQ!`3!Jbix{^1{ zHYxFh`18kH89&-!XF75$t>0>6VFUkDRt?;67^U~J5H_TWQH}SAEuzt}0&~)gq|6?` zhZ$|r-}Y-Pn_7JYR$oQ&Ym*?G$C7x70e6xX<1f`rZPT)&B=D7Sw~24R9ff=X3f@59 zPK**4q&pbx2oZgzFZfkuMcAdEz zI%P%qGw;q2U+ocRC%kQSf$o_AXTZrO4Ka|_1+I!va~oRUI$AIT#Ll?V+1ZsW%lYp) zX#d?h(o&*#&|n2v>) z^3?Zli+TGS_D$z6@ks#dFZ{IkFc=8Bkam0{v{j{GqG2!O5?E}qHBC=%Pp58Umnz&} zGtE40a=u#Qf|1v5dSuVc_q6S4?eZQo+Yhfk%NtYzCuq|l=GOI?A9;C6%h}%eKW4Cn2W{C3 zX|4nBWjm3o(>f_c90R(h1~0`-PmQo>PB#{y&+C^iGUK^ATiM0$?|;rs+jBJBW!a&U z;7xv=LRwub5#_rOa$O5)@a^=US#yoDvFXxZv%Y7?U%;l2u=qQ?RsqDH3sPEzdBf}N zW7A)rJ2YCFgNtD^BE-O>{}gS+cb;5w3ZTv%hKH9Bb)}`5+46C85dEUj`6=-SW{T-4 zftW;L_PdeA{r%w7Y9}O;edUp0dCns#o9ofMTt5L7`jiZpATje^qL`!pB=i+}TAeo4 z;0-2=!B;83PQMecz#xHgZamylAZ*74jK4$wjE?rb{H}$ksLx2)MMBeT#pOndh;LX_ zR8NZAoj68l>T|*Df&wl!cw6SV;1=V_2m7I$8K&UrR;;8GyTZ5sQa*=vY=Rh11rZP& z1q5b+r2iiaq0^%;^LMns7SVAyWYwEgH!N?+%ydy&_Ko7z;?&VeTryw?a&mUKdGGec zRBcqtQ|R*jDC7pv70}o2kp_=V;m=2gde}q$>ZCM-^fGB#KD&g&3*zS^x0vD<@40o7 zY-a4;O{>&!6k>(c92p%wS@@zOc*=RmcryG!>ru7^1k#o~=}R2!WOQ}nM&ZI(-L7*$ zBG%U>jmr7Km~-$f&6>fG^dV)!Wm2`0f@0JmQ`{t5NU0$(O~*BXlT#?Va-F$bF)GKq zb$NOEIHm)s+H{uB5K2WGWvw+@KR9m!i7?lAX0K&aUte$H(S}v&q36UWi0XQQ(2+N? z9(GdCBWj>RaVT%rynE*f!%b6g_PL6ij?L7FQ*JBdd`(~^@Xa;y@lrzg`6)hsgtzR` zZ7sI%3^7fxN#IqcMD%+Tw4J30Am}io?L8rS9vctc(fWMJB`j0{6(a>sYTKi*(2y{* z0BjLjdOz+muO*P(H3jHoW>SM+b<%kE&V6K3?ZG}$BTAymiW)uNJ4 zTcau<#AvbQd_5x(6BlbTI}D|=aM1}}kTRe91X36t+Mdz0La<)+F^tG%0?WYn&Juh-P0%KZ%3@%wFjHf#$ychHa!XXs~6BJ z`>ys^f+druT<#D!ER9$;3M7b~H8Z}=hDBRzYnaa{H<)=7W{`&J-{-6W-v>HfT3VHc zd3k374?hGDMfYi6uhr!E=z*^Z^v2H4<8y5a(TEff(Y&#TN(9`_Q~+Z#$n1VoTs}Hr zzk8!dcg6Nbgwm@Fp@7(7(|S>l^aZq{ne@=hWNtu-$52q9&-XRpYVGgSC-{YnQ44XD z$0w=04SOeppG}|&Mxj*l*=iPp?99L7r2Y3XY+Tq*@CkP(L&3!Ks-HtW;vCioXtO}{4e3kux-WZK0@i=(MVbY~miX$Q<5=bw7@CpoeZ2E;NGj%_P)qy^kvS@;QT=4k5q+ z9q&Ml-rRFwPs|6q*EYj1rz}&36O8w1JSul&Q_0w3q7vY@B-EJU<)h{X9_1V~@Jr*X zk`Zpbf2E6$m(?gGfM>z&y8@3NvLF3vfBq0njR?XUA+< zCeL!!ODEJ0(5eoC{+x^J;I=g{}w zg#6vTC^byMmj*A7moL{qc95l60QL|OAPCodRltD=Oiua7@nO(Ok0oDY`QUEzidi7O z%ht33PiRJ`*8El}pn)uI|HbVpY>PB;1)Mn1#mJNG_BSWv@8ypD{j)Q0jYtcztEzu( zKa>M8lMV`nFo*n@)Z$gG^zIWzvNi}?6D$_+({Q{O{DcN_cXQHtJNXo&usuFhLX`z9 zs%n3{Ae(~KDLkHI=se)Ulr{+`uS=#!M-)r?uLdW&h<)!|{@#Jt zZDbBn=hOlB@J)5>x7j}+1A;_AjmqzX-`HwX6?igmW9{-UAg8;L(4NQ9r?CTFxQao_rL#I@|ATt+&0n0WI+yPhK zq*k@xh#n+j_TwLFHd>82%6jxAN{fJ^a2d}+MU~%PKicgGG z;2_y_WaMpTIZx%Z1*7>p3OAU&>6Q-<4k8e9*?1yWWOB@=B7itWH|V`;->-!4QrO-q z!El9?8Wd@|cn9a|IjrAhmNT#)7&G(#o109)&je_g=rD)8QbK>EC1uJ{lQtb#2~MLI z=I!g5P$1h~%4PaHRFVVAyY?VcU@!>)-68&E#n3HAMzM5NG7TM_f!utf8Y?X4?;cF! z+@F?~TQQ)>JVIq%J-TU7BndiP7{-Vnn=Ks?h_B!-3Z<$Fr%X%|u?JOCX*Slbpdnm} zm-*#M+4S)6*OuiBxC|7_499CT{~8z_T_GH=^69LAV zf;=o;+9yFBM)>)%0XAJ_RTei;(}j7DjOoO|ygW9D>)&If#pFd^+jkX*orq<}nSt|a zsjwk+J6=JFA(i2@ANe?Bb#1GEs#+8<3}(_=Z-f4{1Pii>$7Yk9;=ydJLypa@t?4fn zZlja?6n<#tOccty`E2uiyZL-_Vs)XCxw5PbuPG9{Cb{7d@UZ`#ZYDXKv!qxSgHhVI$(AtDiyD)a@dq^w(OB2mxTFMag+d}~j}lBm zk0B8qmiX!RWM0#{`IzPJ3vncz-I2+Nlm^xBHfCP3fJR)sBhE4)^<8hB+5~D0{@A%9A8T`SKIuC1yE7>}1P*q7^8QVE6|6iE%@KUHGjYZi&UUFm*d%*Mff3 zhFIBugD;b^P2F%3ni$>eE!}yQ-XCDM=(=V<@KEZvq5dCyaGK&Pde)Ftump{3xr7qN zJn_cdECB}}Cnw`_NM5Bu5maG<+omE)p5IroBV+IL=XsOP0*9)mgVypEe|FFTvdwte z=OO5&aiP3zSmbPHl^{S3)It{&B?^r>XeU+U%N|f58yFwI|6l^9os*N7H!vm3L@%VB zss7igdb};XyC)J<6r`kK5<7ne0c=H1?tOQwmxqr_3gh|9_B*aL{%q8G>ox?4A`j#A zaiYk(LZPVA+=hl~oKHoyB69B#^t+M)nmQtK3%cZ?AzD|Glk`){NytdYI&`2Djb7Yd zU$#Lg)y3^ZOv|gnVCP-M`HuzsS09qNzVyu-+RN{r7R?G1xoHIWS5GHN4==BMJf*V+oT7Q+%&8gB&`9YHDh#0Y<@jBSTrXjXIa&w}O$8 z#DQPTgneZvvBTQ2aRK`OadAj((g-mnm;F~`W53AT3x=zWM=s7|}!1_xG zbg$hSJlGUV??;bm8^M1&V7sOdv+48Sk1io-U0Cp6VR3Ln*_lg@g|JbDeQi9e246XL5-&1K*Z z+$;UD3M%rzCqbQGQUpjI5_)YCIHe^B-^=&HDT zZjNnjeI3{riOIBFiQTKKBFu7bZgU{z#$urWjo(=n;kcwklCKnbnSt*uO^&1(;!;)kjb_C(I~ep#})B`p7r^dkrvB}&Hc$sx!e zW2Bk}mktk}t15pLdItT1nbfItv?atseJ4C#wSqAH&+L$vu{IbShMulplu9%VIMxyN z_O8UIc8s6t@D#)s6m{Zow_7<hj*O@ow;OhFOB3983PhmipiI#@h?U?0?p3e+ z7+L>q{_N5GZOeuD_wU2Vm|I)JOx;HM_)t4J3j_z-spwFu+>!l#&#PC%r(O3=z+g(7 zDq7mb#Kf&>Ee-ECK`!B@ZDq8;s`+-Sq{KmNyc4F5iJ^6TAaHQys-_X5-Qsv77)IEP z7tv*c!E%?xOk8{?%2w#^41MoQ4|+$HRZzhXFdZ<~(c0Pon<+ckTAkgAD_&dQ%u)L@ zH3coxH#Rn&OpEzMI2Mbm+6f|b!3XK9gNH{jsa59C(Xc9T*ZU|NI~iLT8%GLIkNtSI zu;D=I4-BJ7m@;!4;IO%Vz!r3Num+yDhnJOIheQON=I7iSi;N-%>_tep0;rkWJDva% z{OgF}&OYfSBI%~^;$Y`ivY*45P46;qL6t(DHa3qPK8NX4+dzTL3%nGO&jq+ygn&Fy zN|f8_2P9A6xggNcayBN%5kPmh#hRy$lSfsc z27W?(lUqU`aJJlUrmd%E^s!mx3;R*!Uk1)#NLbn^0~T)zK=Z)qQBXDAK)O%Xen>X) zir37$&(DiZxU5g6QOXY+PT9?rZ3Qr=#=xTxD&))1K_%9gS0QAHhLYTzV!UoSR9WR2 zKFmM^M%nsWPDZ=DaY^9x9TB%4cVLR1o&6KJC*yUMhy>vo6!y|!X5B~i+@NK)M^y|H zPC^AEhB^isItIH_V~8(jBrZ)@M!@iuAcEwqwA*Kwg}_5NGO@Uq!w*a<&Ji_9N_TeT zzvHLO3eobIiCdB2^7ak?zXnY5%%jDhz}E$(JA;@vt-Hh65$*j z<@#y-0`ME&Zs3~Az&l-mHu%Uf|edFc|D z6d46o$;`|2^ErD$s7Qm84?y)1&NR% zxuz0gY)~L2R8kNr3ZO>TLH5J)NZeF5RQCK)hh4dJZV&pKAHI+ z_^mj`InVHhZTO-~oOIC26yRyK6ua(fy@4Ma-Z+;K#WnmLa3Mq@?&^Ciq~W^$Y9*SgU-+I-uc-TLqm8t&VYOQ z?awzc9fDqil>{cMJ<7X~gM$NsVLXn>*?tWw7N68nrNw?1+?WUZYS2qU1uA5j-fm_1 zJJmxBH!D`S6RHJyRj=%XROVflVXO4#yc_wF&V<7xtCvD`RJgons@lMTDI?>VnxRam z23S=vsN^OoUwjvF_MME%WuB0ytCF@>z1vzT3D2K6_!LrEOeAsJM?Qg1H04&b$7Ea1 z-;S4mJwYG-*9GyS0e$ca)0tG6+Pq`Y{sE(p)KyZFt*NR?qNTgF$9*3tsBCSaRFHoI z&iYdWOc8pCic78gd@wIBavx7E5B!+rT4t}53fRXtG!QD2Um)?ZTi+)JT$5nynvlw`(hch#GJox*8S~fdc zp6P4pYvJ{Q(dCbSTS85FyVNSVnv*f2=1=|CQlRm>VrA4>QRvp!|0vtM&3b@b?p8aGS0vz$k$~O4U zhEwTyskGW^c?LpZ1T?kp2{r==-F+c=>IL6bo<;^T- zWK@6}a#2!>uN2Vu{jt=;2H}Xs5e6Ru|V1D6>0q#?kGo3otB2&__})m+_;8 zhtdIn3KPNo{_d`px=^HVtj!+cI^+;ab&YaVq&P?LEerO%-uRDE!k3&3dmvWo}Tofy8non{{|FlgwmOoADQ8#aHp>XB@yTjF(xIm$?ogHw_J-T;^)e1=Pftsoy9eyAFjqPp>hpn@eiY<{W7y=at5v zDbX{~YjYw&(9F}m!F+3T=5$SgYZGClX{=xB0f)?kHUQXEOi-yI+|RF2)2X;PpPiRe z!WLK8Jjf9Q0FN#X%R^FG&Aru>lq1<|c$iVcxrz*&nw3u&E@!+46bDvm72nFrOkH-s&;&>XaCHYO@VzdtrD=tYsi<~s zv;o`}XZySv&#`IsZQ;hoCg zw=c!yBjU7sFZbH8AgpooA*i@B_xsmgIcWUOT=l{h;%9sFU~R14bMuMYH>zqGbj zo>j@gA3_Cc+wVEHo70KSXLU`Iz1P-2|BxsC>8maxn0E7t;2JH}q6oM6E03ZDecaxx2YN``Qp_ z*nDE9Chf3wV&GVCt1z#OkebWL!GqxmarN>54U*B((cUl^9}nhyb0~ECS70V9 z4M9Sc5J>spFL88(&%bo9Z^)3&mPq(wn?W$@o93j8=~!d}1%#9CM)CUxJ&Zx6jRzqH z?*X-ssy{<$&S-EngoVko({!ixF)+dxn|di6xwv{lsXlaNKd>eGxwJb1`V9xB1Kj*1 z1SA}YARH4AMz#!$>V|5rZPRN!1KyqV1d{nDn^A><6Of2cN2dLMM z9%$W+@|J2Q52OY$jGg@#07nWI@JCUI5y_@4fAE!@ty3h+X>vCa5;S4u#qD%ttu$ZP|yTie8BAV6N} z4j=^I$+U>UP;~_hvn?cpFZ%dt|NVE~c5fS)8DsQ#4w<|aGqp*Nt{s0l1Nt0CrTr#U zV({7zr=5er4GLgt%+nVTSE$Yz931WgKLwod$w@uQHHSc(1FS4km-60io2Nb;cO$=l z?>HA6Au)qy4~$)Go4T(JV(aS;$k-Vog|W$0V}O4>&y=QGWQ7g|&^5hLk1%z4YSimh zbq&;Wlsi9PX1fWVoZ$5R=o#Y9SiFQ%ube3p==Gp*qYc72Jg)lI0o}^?5z?y^0}K*S zT}LIQeZrS@{w;0b8M7lU`#)MclW+eE#CQKI6oUW%hXeuOe~X;+|AmKjCT;#iQJvxq R#ebd^uV1Rl6+_;<|3CQE9?1Xz literal 60670 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 ucKvCi}J7fSFdF!>iQzMFrlyD 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 ffmpegfyMe - - - - - - - - - - - - - - MPEG - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Download HTTP/HLS streams as MP4 or MKV — no transcoding. Authenticated HTTP/HLS diff --git a/brand/src/favicon.svg b/brand/src/favicon.svg index fdfd1cc..4247175 100644 --- a/brand/src/favicon.svg +++ b/brand/src/favicon.svg @@ -1,20 +1,29 @@ ffmpegfyMe - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/brand/src/social-preview.svg b/brand/src/social-preview.svg index 0537678..b217c79 100644 --- a/brand/src/social-preview.svg +++ b/brand/src/social-preview.svg @@ -1,25 +1,37 @@ ffmpegfyMe - - - - - - - - - - - - - - MPEG - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {{TAGLINE}} {{PILLAR_1}}