From 9279c30ea82742ad76270eb69c6e1f04643bc9a8 Mon Sep 17 00:00:00 2001 From: Sarthak Agrawal Date: Wed, 2 Sep 2026 22:10:51 +0530 Subject: [PATCH 1/6] chore: integrate verification tooling and desktop adapters 1/2 --- .github/actionlint.yaml | 5 + .github/dependabot.yml | 4 + .github/workflows/auto-release.yml | 24 +- .github/workflows/ci.yml | 70 ++++- .github/workflows/deploy-landing.yml | 21 +- .github/workflows/docs.yml | 11 +- .../native-production-qualification.yml | 274 ++++++++++++++++++ .github/workflows/native-qualification.yml | 126 ++++++++ .github/workflows/osv-offline.yml | 84 ++++++ .github/workflows/release.yml | 30 +- .github/workflows/repository-security.yml | 182 ++++++++++++ .github/workflows/weekly.yml | 64 ++-- .gitleaksignore | 10 + .husky/pre-commit | 8 +- .husky/pre-push | 16 +- apps/desktop/.size-limit.json | 8 + .../design/product-surfaces-scope-1440.png | Bin 153196 -> 0 bytes .../design/product-surfaces-scope-390.png | Bin 64628 -> 0 bytes .../design/product-surfaces-scope-768.png | Bin 130782 -> 0 bytes apps/desktop/package.json | 11 +- apps/desktop/playwright.config.ts | 7 +- apps/desktop/scripts/mcp-benchmark.mjs | 16 +- apps/desktop/src-tauri/Cargo.lock | 5 +- apps/desktop/src-tauri/Cargo.toml | 7 + apps/desktop/src-tauri/deny.toml | 40 +++ .../surface-parity/evidence-scope-v1.json | 66 +++++ .../surface-parity/local-check-v1.json | 113 ++++++++ apps/desktop/src-tauri/tests/mcp_stdio.rs | 14 +- apps/desktop/src/App.tsx | 7 + apps/desktop/src/lib/performance-workbench.ts | 8 + apps/desktop/src/lib/review-service.test.ts | 56 ++-- apps/desktop/src/lib/review-service.ts | 67 +++-- apps/desktop/src/lib/rubric-migration.test.ts | 94 ++++++ apps/desktop/src/lib/rubric-migration.ts | 30 ++ apps/desktop/src/lib/tauri-ipc.ts | 46 ++- .../differential-cli.test.ts | 7 + .../lib/warm-verification/differential-cli.ts | 33 ++- .../differential-daemon-contracts.test.ts | 9 + 38 files changed, 1424 insertions(+), 149 deletions(-) create mode 100644 .github/actionlint.yaml create mode 100644 .github/workflows/native-production-qualification.yml create mode 100644 .github/workflows/native-qualification.yml create mode 100644 .github/workflows/osv-offline.yml create mode 100644 .github/workflows/repository-security.yml create mode 100644 .gitleaksignore create mode 100644 apps/desktop/.size-limit.json delete mode 100644 apps/desktop/artifacts/design/product-surfaces-scope-1440.png delete mode 100644 apps/desktop/artifacts/design/product-surfaces-scope-390.png delete mode 100644 apps/desktop/artifacts/design/product-surfaces-scope-768.png create mode 100644 apps/desktop/src-tauri/deny.toml create mode 100644 apps/desktop/src-tauri/tests/fixtures/surface-parity/evidence-scope-v1.json create mode 100644 apps/desktop/src-tauri/tests/fixtures/surface-parity/local-check-v1.json create mode 100644 apps/desktop/src/lib/rubric-migration.test.ts create mode 100644 apps/desktop/src/lib/rubric-migration.ts diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml new file mode 100644 index 00000000..545dde8f --- /dev/null +++ b/.github/actionlint.yaml @@ -0,0 +1,5 @@ +# Actionlint 1.7.12 predates GitHub's official Xcode 27 preview image label. +# Treat it as declared until the pinned validator includes the hosted label. +self-hosted-runner: + labels: + - xcode-27 diff --git a/.github/dependabot.yml b/.github/dependabot.yml index dc150637..9b8b11d2 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -4,6 +4,10 @@ updates: directory: / schedule: interval: weekly + # Let ecosystem fixes settle before routine version PRs. Dependabot + # security updates are explicitly not delayed by this setting. + cooldown: + default-days: 7 groups: ccusage-runtime: patterns: diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml index 224e1f98..2163a2b1 100644 --- a/.github/workflows/auto-release.yml +++ b/.github/workflows/auto-release.yml @@ -18,9 +18,7 @@ on: - "apps/desktop/src-tauri/tauri.conf.json" workflow_dispatch: -permissions: - contents: write - actions: write +permissions: {} concurrency: group: auto-release-${{ github.ref }} @@ -28,11 +26,16 @@ concurrency: jobs: publish: + name: Publish release and dispatch build runs-on: ubuntu-latest + permissions: + contents: write # Create the versioned GitHub release. + actions: write # Dispatch the separate signed-build workflow. steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: fetch-depth: 0 + persist-credentials: false - name: Read version from tauri.conf.json id: ver @@ -50,12 +53,13 @@ jobs: id: check env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + RELEASE_TAG: ${{ steps.ver.outputs.tag }} run: | set -euo pipefail - if gh release view "${{ steps.ver.outputs.tag }}" \ + if gh release view "$RELEASE_TAG" \ --repo "$GITHUB_REPOSITORY" >/dev/null 2>&1; then echo "exists=true" >> "$GITHUB_OUTPUT" - echo "Release ${{ steps.ver.outputs.tag }} already exists — skipping." + echo "Release $RELEASE_TAG already exists — skipping." else echo "exists=false" >> "$GITHUB_OUTPUT" fi @@ -64,21 +68,23 @@ jobs: if: steps.check.outputs.exists != 'true' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + RELEASE_TAG: ${{ steps.ver.outputs.tag }} run: | set -euo pipefail - gh release create "${{ steps.ver.outputs.tag }}" \ + gh release create "$RELEASE_TAG" \ --repo "$GITHUB_REPOSITORY" \ --target "$GITHUB_SHA" \ - --title "CodeVetter ${{ steps.ver.outputs.tag }}" \ + --title "CodeVetter $RELEASE_TAG" \ --generate-notes - name: Dispatch release build workflow if: steps.check.outputs.exists != 'true' env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + RELEASE_TAG: ${{ steps.ver.outputs.tag }} run: | set -euo pipefail gh workflow run release.yml \ --repo "$GITHUB_REPOSITORY" \ --ref main \ - -f tag="${{ steps.ver.outputs.tag }}" + -f tag="$RELEASE_TAG" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ea6d5de5..3410211a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,19 +4,72 @@ on: branches: [main] pull_request: workflow_dispatch: + inputs: + native_qualification: + description: "Run isolated native macOS qualification" + required: true + default: false + type: boolean + native_interaction: + description: "Include XCUITest on the isolated hosted desktop" + required: true + default: false + type: boolean + native_production_qualification: + description: "Run protected signing, notarization, and migration qualification" + required: true + default: false + type: boolean +permissions: {} + +concurrency: + group: ci-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: + native-qualification: + name: Native macOS qualification + if: >- + github.event_name == 'pull_request' || + (github.event_name == 'workflow_dispatch' && inputs.native_qualification) + uses: ./.github/workflows/native-qualification.yml + with: + run_interaction: ${{ github.event_name == 'pull_request' || inputs.native_interaction }} + permissions: + contents: read + + native-production-qualification: + name: Native macOS production-candidate qualification + if: github.event_name == 'workflow_dispatch' && inputs.native_production_qualification + uses: ./.github/workflows/native-production-qualification.yml + secrets: + APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} + APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} + APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} + APPLE_ID: ${{ secrets.APPLE_ID }} + APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} + APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} + SPARKLE_EDDSA_PRIVATE_KEY: ${{ secrets.SPARKLE_EDDSA_PRIVATE_KEY }} + SPARKLE_EDDSA_PUBLIC_KEY: ${{ secrets.SPARKLE_EDDSA_PUBLIC_KEY }} + permissions: + contents: read + lint-and-typecheck: + name: Lint, test, and build runs-on: ubuntu-latest + permissions: + contents: read steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: fetch-depth: 2 - - uses: pnpm/action-setup@v4 - - uses: actions/setup-node@v6 + persist-credentials: false + - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: '22' cache: 'pnpm' - - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c # stable - name: Install Tauri Linux dependencies run: | sudo apt-get update @@ -25,7 +78,7 @@ jobs: libayatana-appindicator3-dev \ librsvg2-dev \ libxdo-dev - - uses: Swatinem/rust-cache@v2 + - uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2 with: workspaces: apps/desktop/src-tauri - name: Install Dependencies @@ -35,7 +88,9 @@ jobs: run: pnpm run lint - name: Fetch code-health base if: github.event_name != 'workflow_dispatch' - run: git fetch --depth=1 origin ${{ github.event.pull_request.base.sha || github.event.before || 'HEAD^' }} + env: + CODE_HEALTH_BASE: ${{ github.event.pull_request.base.sha || github.event.before || 'HEAD^' }} + run: git fetch --depth=1 origin "$CODE_HEALTH_BASE" - name: Code health env: CODE_HEALTH_BASE: ${{ github.event.pull_request.base.sha || github.event.before || 'HEAD^' }} @@ -83,7 +138,8 @@ jobs: run: | pnpm run test:ccusage-sidecar pnpm run prepare:ccusage-sidecar - src-tauri/binaries/ccusage-$(rustc -vV | sed -n 's/^host: //p') --version + CCUSAGE_TARGET="$(rustc -vV | sed -n 's/^host: //p')" + "src-tauri/binaries/ccusage-$CCUSAGE_TARGET" --version - name: Qualify CLI artifact working-directory: apps/desktop run: | diff --git a/.github/workflows/deploy-landing.yml b/.github/workflows/deploy-landing.yml index 629d8339..787eff44 100644 --- a/.github/workflows/deploy-landing.yml +++ b/.github/workflows/deploy-landing.yml @@ -7,9 +7,8 @@ name: Deploy Landing Page # apps/landing-page-astro/. on: workflow_dispatch: -permissions: - contents: read - deployments: write + +permissions: {} concurrency: group: deploy-landing-${{ github.ref }} @@ -17,16 +16,22 @@ concurrency: jobs: deploy: + name: Build and deploy landing page runs-on: ubuntu-latest timeout-minutes: 20 + permissions: + contents: read + deployments: write # Record the Cloudflare Pages deployment. steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + with: + persist-credentials: false - - uses: pnpm/action-setup@v4 - - uses: actions/setup-node@v6 + - uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: "22" - cache: pnpm + package-manager-cache: false - name: Install dependencies run: pnpm install --frozen-lockfile @@ -58,7 +63,7 @@ jobs: - name: Deploy to Cloudflare Pages if: steps.cloudflare.outputs.deploy_enabled == 'true' - uses: cloudflare/wrangler-action@v3 + uses: cloudflare/wrangler-action@9acf94ace14e7dc412b076f2c5c20b8ce93c79cd # v3 with: apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 21d75599..a59fc946 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -5,12 +5,19 @@ on: [push, pull_request] permissions: contents: read +concurrency: + group: docs-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: validate: + name: Validate documentation runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 - - uses: actions/setup-node@v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + with: + persist-credentials: false + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: "22" - name: Validate docs (links, frontmatter, structure) diff --git a/.github/workflows/native-production-qualification.yml b/.github/workflows/native-production-qualification.yml new file mode 100644 index 00000000..32ff52c4 --- /dev/null +++ b/.github/workflows/native-production-qualification.yml @@ -0,0 +1,274 @@ +name: Native macOS production-candidate qualification + +on: + workflow_call: + secrets: + APPLE_CERTIFICATE: + required: true + APPLE_CERTIFICATE_PASSWORD: + required: true + APPLE_SIGNING_IDENTITY: + required: true + APPLE_ID: + required: true + APPLE_PASSWORD: + required: true + APPLE_TEAM_ID: + required: true + SPARKLE_EDDSA_PRIVATE_KEY: + required: true + SPARKLE_EDDSA_PUBLIC_KEY: + required: true + workflow_dispatch: + +permissions: {} + +concurrency: + group: native-production-qualification-${{ github.ref }} + cancel-in-progress: false + +jobs: + qualify: + name: Sign, notarize, migrate, and qualify native candidate + runs-on: xcode-27 + timeout-minutes: 180 + permissions: + contents: read + env: + CODEVETTER_NATIVE_CHANNEL: production + CODEVETTER_NATIVE_BUNDLE_IDENTIFIER: com.codevetter.desktop + CODEVETTER_NATIVE_SPARKLE_FEED_URL: https://github.com/Codevetter/codevetter/releases/latest/download/appcast.xml + CODEVETTER_NATIVE_SPARKLE_PUBLIC_KEY: ${{ secrets.SPARKLE_EDDSA_PUBLIC_KEY }} + + steps: + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + with: + fetch-depth: 2 + persist-credentials: false + + - name: Setup pnpm + uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6 + + - name: Setup Node + uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 + with: + node-version: 22 + package-manager-cache: false + + - name: Setup Rust + uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c # stable + + - name: Setup Bun + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + with: + no-cache: true + + - name: Install locked dependencies + run: pnpm install --frozen-lockfile --ignore-scripts + + - name: Require protected production inputs + env: + APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} + APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} + APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} + APPLE_ID: ${{ secrets.APPLE_ID }} + APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} + APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} + SPARKLE_EDDSA_PRIVATE_KEY: ${{ secrets.SPARKLE_EDDSA_PRIVATE_KEY }} + SPARKLE_EDDSA_PUBLIC_KEY: ${{ secrets.SPARKLE_EDDSA_PUBLIC_KEY }} + shell: bash + run: | + set -euo pipefail + missing=() + for name in APPLE_CERTIFICATE APPLE_CERTIFICATE_PASSWORD APPLE_SIGNING_IDENTITY APPLE_ID APPLE_PASSWORD APPLE_TEAM_ID SPARKLE_EDDSA_PRIVATE_KEY SPARKLE_EDDSA_PUBLIC_KEY; do + if [[ -z "${!name:-}" ]]; then missing+=("$name"); fi + done + if (( ${#missing[@]} > 0 )); then + echo "Missing protected inputs: ${missing[*]}" >&2 + exit 1 + fi + + - name: Import Developer ID certificate into ephemeral keychain + env: + APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }} + APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} + shell: bash + run: | + set -euo pipefail + KEYCHAIN_PATH="$RUNNER_TEMP/codevetter-signing.keychain-db" + CERTIFICATE_PATH="$RUNNER_TEMP/codevetter-developer-id.p12" + KEYCHAIN_PASSWORD="$(openssl rand -hex 32)" + printf '%s' "$APPLE_CERTIFICATE" | /usr/bin/base64 --decode > "$CERTIFICATE_PATH" + security create-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH" + security set-keychain-settings -lut 21600 "$KEYCHAIN_PATH" + security unlock-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH" + security import "$CERTIFICATE_PATH" -P "$APPLE_CERTIFICATE_PASSWORD" -A -t cert -f pkcs12 -k "$KEYCHAIN_PATH" + security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH" + security list-keychains -d user -s "$KEYCHAIN_PATH" + rm -f "$CERTIFICATE_PATH" + echo "CODEVETTER_SIGNING_KEYCHAIN=$KEYCHAIN_PATH" >> "$GITHUB_ENV" + + - name: Build production-identity Release app through XcodeBuildMCP + run: pnpm native:build:release + + - name: Build and Developer ID-sign exact native package + env: + APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }} + shell: bash + run: | + set -euo pipefail + pnpm native:package:qualify -- \ + --channel production \ + --identity "$APPLE_SIGNING_IDENTITY" \ + --out-root artifacts/native-production-ci + QUALIFICATION="$(find artifacts/native-production-ci -name qualification.json -print -quit)" + test -n "$QUALIFICATION" + PACKAGE_DIR="$(dirname "$QUALIFICATION")" + echo "NATIVE_QUALIFICATION=$QUALIFICATION" >> "$GITHUB_ENV" + echo "NATIVE_PACKAGE_DIR=$PACKAGE_DIR" >> "$GITHUB_ENV" + + - name: Submit signed app to Apple and staple ticket + env: + APPLE_ID: ${{ secrets.APPLE_ID }} + APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} + APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} + shell: bash + run: | + set -euo pipefail + DEVELOPER_DIR="$(xcode-select -p)" + NOTARYTOOL="$DEVELOPER_DIR/usr/bin/notarytool" + STAPLER="$DEVELOPER_DIR/usr/bin/stapler" + ZIP_PATH="$(find "$NATIVE_PACKAGE_DIR" -maxdepth 1 -name '*.zip' -print -quit)" + "$NOTARYTOOL" submit "$ZIP_PATH" \ + --apple-id "$APPLE_ID" \ + --password "$APPLE_PASSWORD" \ + --team-id "$APPLE_TEAM_ID" \ + --wait \ + --output-format json > artifacts/native-production-ci/notary-initial.json + jq -e '.status == "Accepted"' artifacts/native-production-ci/notary-initial.json >/dev/null + "$STAPLER" staple "$NATIVE_PACKAGE_DIR/CodeVetter.app" + "$STAPLER" validate "$NATIVE_PACKAGE_DIR/CodeVetter.app" + + - name: Rebuild archives around the stapled application + run: pnpm native:package:finalize -- --qualification "$NATIVE_QUALIFICATION" + + - name: Bind final archive to Apple notarization + env: + APPLE_ID: ${{ secrets.APPLE_ID }} + APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }} + APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} + shell: bash + run: | + set -euo pipefail + NOTARYTOOL="$(xcode-select -p)/usr/bin/notarytool" + ZIP_PATH="$(find "$NATIVE_PACKAGE_DIR" -maxdepth 1 -name '*.zip' -print -quit)" + "$NOTARYTOOL" submit "$ZIP_PATH" \ + --apple-id "$APPLE_ID" \ + --password "$APPLE_PASSWORD" \ + --team-id "$APPLE_TEAM_ID" \ + --wait \ + --output-format json > artifacts/native-production-ci/notary-final.json + jq -e '.status == "Accepted"' artifacts/native-production-ci/notary-final.json >/dev/null + pnpm native:notarization:prove -- \ + --app "$NATIVE_PACKAGE_DIR/CodeVetter.app" \ + --archive "$ZIP_PATH" \ + --qualification "$NATIVE_QUALIFICATION" \ + --submission artifacts/native-production-ci/notary-final.json \ + --out artifacts/native-production-ci/notarization-proof.json + + - name: Generate and cryptographically inspect Sparkle appcast + env: + SPARKLE_EDDSA_PRIVATE_KEY: ${{ secrets.SPARKLE_EDDSA_PRIVATE_KEY }} + shell: bash + run: | + set -euo pipefail + APPCAST_DIR="artifacts/native-production-ci/appcast" + mkdir -p "$APPCAST_DIR" + ZIP_PATH="$(find "$NATIVE_PACKAGE_DIR" -maxdepth 1 -name '*.zip' -print -quit)" + cp "$ZIP_PATH" "$APPCAST_DIR/" + GENERATE_APPCAST="$(find artifacts/native-build/DerivedData/SourcePackages/artifacts -path '*/Sparkle/bin/generate_appcast' -type f -print -quit)" + test -x "$GENERATE_APPCAST" + printf '%s' "$SPARKLE_EDDSA_PRIVATE_KEY" | "$GENERATE_APPCAST" \ + --ed-key-file - \ + --download-url-prefix "https://github.com/Codevetter/codevetter/releases/latest/download/" \ + "$APPCAST_DIR" + test -f "$APPCAST_DIR/appcast.xml" + pnpm native:appcast:inspect -- \ + --app "$NATIVE_PACKAGE_DIR/CodeVetter.app" \ + --appcast "$APPCAST_DIR/appcast.xml" \ + --qualification "$NATIVE_QUALIFICATION" \ + --out artifacts/native-production-ci/appcast-proof.json + + - name: Download retained Tauri release for isolated migration proof + env: + GH_TOKEN: ${{ github.token }} + shell: bash + run: | + set -euo pipefail + INCUMBENT_ROOT="$RUNNER_TEMP/codevetter-incumbent" + mkdir -p "$INCUMBENT_ROOT" + gh release download v1.11.0 \ + --repo "$GITHUB_REPOSITORY" \ + --pattern 'CodeVetter_aarch64.app.tar.gz' \ + --dir "$INCUMBENT_ROOT" + tar -xzf "$INCUMBENT_ROOT/CodeVetter_aarch64.app.tar.gz" -C "$INCUMBENT_ROOT" + INCUMBENT_APP="$(find "$INCUMBENT_ROOT" -maxdepth 2 -name CodeVetter.app -type d -print -quit)" + test -n "$INCUMBENT_APP" + echo "NATIVE_INCUMBENT_APP=$INCUMBENT_APP" >> "$GITHUB_ENV" + + - name: Qualify isolated upgrade, relaunch, custom rubric, data, and rollback + run: | + pnpm native:installed-upgrade:qualify -- \ + --incumbent-app "$NATIVE_INCUMBENT_APP" \ + --native-app "$NATIVE_PACKAGE_DIR/CodeVetter.app" \ + --qualification "$NATIVE_QUALIFICATION" \ + --run-root "$RUNNER_TEMP/codevetter-native-upgrade" \ + --out artifacts/native-production-ci/installed-upgrade-proof.json \ + --foreground \ + --hosted-ephemeral + + - name: Require every production-readiness check + shell: bash + run: | + set -euo pipefail + pnpm native:release:inspect -- \ + --app "$NATIVE_PACKAGE_DIR/CodeVetter.app" \ + --qualification "$NATIVE_QUALIFICATION" \ + --appcast-proof artifacts/native-production-ci/appcast-proof.json \ + --notarization-proof artifacts/native-production-ci/notarization-proof.json \ + --installed-proof artifacts/native-production-ci/installed-upgrade-proof.json \ + --out artifacts/native-production-ci/release-readiness.json + jq -e '.shipping_ready == true and (.checks | all(.passed == true))' \ + artifacts/native-production-ci/release-readiness.json >/dev/null + + - name: Test all production qualification contracts + run: | + pnpm test:native-runner + pnpm test:native-package + pnpm test:native-package-finalize + pnpm test:native-appcast + pnpm test:native-notarization + pnpm test:native-data-continuity + pnpm test:native-installed-upgrade + pnpm test:native-release + + - name: Remove ephemeral credential material + if: always() + shell: bash + run: | + if [[ -n "${CODEVETTER_SIGNING_KEYCHAIN:-}" ]]; then + security delete-keychain "$CODEVETTER_SIGNING_KEYCHAIN" || true + fi + rm -f "$RUNNER_TEMP/codevetter-developer-id.p12" + + - name: Upload protected production-candidate evidence + if: always() + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + with: + name: native-production-qualification-${{ github.run_id }} + path: | + artifacts/native-production-ci + artifacts/native-build/DerivedData/Build/Products/Release/CodeVetter.app.dSYM + if-no-files-found: warn + retention-days: 7 + compression-level: 0 diff --git a/.github/workflows/native-qualification.yml b/.github/workflows/native-qualification.yml new file mode 100644 index 00000000..f5d436df --- /dev/null +++ b/.github/workflows/native-qualification.yml @@ -0,0 +1,126 @@ +name: Native macOS qualification + +on: + workflow_call: + inputs: + run_interaction: + description: "Run XCUITest on the isolated hosted desktop" + required: true + type: boolean + workflow_dispatch: + inputs: + run_interaction: + description: "Run XCUITest on the isolated hosted desktop" + required: true + default: false + type: boolean + +permissions: {} + +concurrency: + group: native-qualification-${{ github.ref }} + cancel-in-progress: false + +jobs: + qualify: + name: Build and qualify native preview + runs-on: xcode-27 + timeout-minutes: 120 + permissions: + contents: read + + steps: + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + with: + fetch-depth: 2 + persist-credentials: false + + - name: Setup pnpm + uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6 + + - name: Setup Node + uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 + with: + node-version: 22 + package-manager-cache: false + + - name: Setup Rust + uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c # stable + + - name: Setup Bun + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 + with: + no-cache: true + + - name: Install locked dependencies + run: pnpm install --frozen-lockfile --ignore-scripts + + - name: Prove desktop-control guard + run: pnpm test:native-runner + + - name: Prepare deterministic owner-review outputs + shell: bash + run: | + node scripts/render-native-owner-review.mjs env \ + --out-root artifacts/native-owner-review-ci >> "$GITHUB_ENV" + + - name: Run background-safe native qualification + run: pnpm test:native:background + + - name: Finalize deterministic owner-review packet + run: | + node scripts/render-native-owner-review.mjs finalize \ + --out-root artifacts/native-owner-review-ci + pnpm test:native-review-render + + - name: Run interaction qualification on isolated desktop + if: inputs.run_interaction + run: pnpm test:native:ui -- --foreground --desktop-idle + + - name: Build coverage-free Release application + run: pnpm native:build:release + + - name: Build and qualify local preview package + run: pnpm native:package:qualify -- --out-root artifacts/native-package-ci + + - name: Inspect exact preview release boundaries + id: readiness + shell: bash + run: | + set -euo pipefail + QUALIFICATION="$(find artifacts/native-package-ci -name qualification.json -print -quit)" + test -n "$QUALIFICATION" + PACKAGE_DIR="$(dirname "$QUALIFICATION")" + node scripts/inspect-native-release-readiness.mjs \ + --app "$PACKAGE_DIR/CodeVetter.app" \ + --qualification "$QUALIFICATION" \ + --out artifacts/native-package-ci/release-readiness.json + echo "qualification=$QUALIFICATION" >> "$GITHUB_OUTPUT" + + - name: Test package and readiness inspectors + run: | + pnpm test:native-package + pnpm test:native-release + + - name: Preserve native tool logs + if: always() + shell: bash + run: | + mkdir -p artifacts/native-tool-logs + find "$HOME/Library/Developer/XcodeBuildMCP" \ + -path '*/logs/*' -type f -name '*.log' \ + -exec cp {} artifacts/native-tool-logs/ \; + + - name: Upload unsigned qualification evidence + if: always() + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + with: + name: native-qualification-${{ github.run_id }} + path: | + artifacts/native-package-ci + artifacts/native-owner-review-ci + artifacts/native-tool-logs + artifacts/native-build/DerivedData/Build/Products/Release/CodeVetter.app.dSYM + if-no-files-found: warn + retention-days: 7 + compression-level: 0 diff --git a/.github/workflows/osv-offline.yml b/.github/workflows/osv-offline.yml new file mode 100644 index 00000000..26e263d0 --- /dev/null +++ b/.github/workflows/osv-offline.yml @@ -0,0 +1,84 @@ +name: OSV Offline Scan + +on: + workflow_dispatch: + +permissions: {} + +concurrency: + group: osv-offline-${{ github.ref }} + cancel-in-progress: false + +jobs: + refresh-databases: + name: Refresh OSV databases + runs-on: ubuntu-latest + steps: + - name: Download ecosystem databases + env: + OSV_CACHE_ROOT: ${{ runner.temp }}/osv-db/osv-scalibr + run: | + mkdir -p "$OSV_CACHE_ROOT/npm" "$OSV_CACHE_ROOT/crates.io" "$OSV_CACHE_ROOT/Go" + curl --fail --silent --show-error --location \ + https://osv-vulnerabilities.storage.googleapis.com/npm/all.zip \ + --output "$OSV_CACHE_ROOT/npm/all.zip" + curl --fail --silent --show-error --location \ + https://osv-vulnerabilities.storage.googleapis.com/crates.io/all.zip \ + --output "$OSV_CACHE_ROOT/crates.io/all.zip" + curl --fail --silent --show-error --location \ + https://osv-vulnerabilities.storage.googleapis.com/Go/all.zip \ + --output "$OSV_CACHE_ROOT/Go/all.zip" + cd "$OSV_CACHE_ROOT" + sha256sum npm/all.zip crates.io/all.zip Go/all.zip > SHA256SUMS + - name: Upload database snapshot + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + with: + name: osv-databases-${{ github.run_id }} + path: ${{ runner.temp }}/osv-db + retention-days: 7 + + offline-scan: + name: Scan with network-disabled mode + needs: refresh-databases + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Checkout repository + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - name: Download database snapshot + uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5 + with: + name: osv-databases-${{ github.run_id }} + path: ${{ runner.temp }}/osv-db + - name: Install checksum-pinned OSV-Scanner + env: + OSV_BINARY: osv-scanner_linux_amd64 + OSV_SHA256: f9f25499a2c8cc367b3af45df2ea7eeca7fbccceab9c35079968f4b3652194be + OSV_URL: https://github.com/google/osv-scanner/releases/download/v2.5.1/osv-scanner_linux_amd64 + run: | + curl --fail --silent --show-error --location "$OSV_URL" --output "$RUNNER_TEMP/$OSV_BINARY" + echo "$OSV_SHA256 $RUNNER_TEMP/$OSV_BINARY" | sha256sum --check --strict + chmod 0755 "$RUNNER_TEMP/$OSV_BINARY" + mkdir -p "$RUNNER_TEMP/osv-bin" + mv "$RUNNER_TEMP/$OSV_BINARY" "$RUNNER_TEMP/osv-bin/osv-scanner" + echo "$RUNNER_TEMP/osv-bin" >> "$GITHUB_PATH" + - name: Run offline scan + id: scan + continue-on-error: true + env: + XDG_CACHE_HOME: ${{ runner.temp }}/osv-db + run: node scripts/run-osv-offline.mjs + - name: Upload scan evidence + if: always() + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + with: + name: osv-offline-evidence-${{ github.run_id }} + path: artifacts/tooling/osv + if-no-files-found: error + retention-days: 30 + - name: Enforce scan result + if: always() && steps.scan.outcome == 'failure' + run: exit 1 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 235c30d4..fd596879 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,47 +10,51 @@ on: required: true type: string -permissions: - contents: write +permissions: {} + +concurrency: + group: release-${{ github.event.release.tag_name || inputs.tag || github.ref }} + cancel-in-progress: false jobs: build: + name: Build, sign, and upload desktop artifacts strategy: matrix: platform: [macos-latest] runs-on: ${{ matrix.platform }} + permissions: + contents: write # Upload signed artifacts and updater metadata. steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 with: # On workflow_dispatch we want the commit the tag points at, not # the head of main — checkout the tag explicitly. ref: ${{ github.event.release.tag_name || inputs.tag }} + persist-credentials: false - name: Setup pnpm - uses: pnpm/action-setup@v6 + uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6 # Don't specify version here — it reads "packageManager" from # package.json (pnpm@10.33.2). Specifying both causes # "Multiple versions of pnpm specified" error. - name: Setup Node - uses: actions/setup-node@v6 + uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: 22 - cache: pnpm + package-manager-cache: false - name: Setup Rust - uses: dtolnay/rust-toolchain@stable + uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c # stable with: targets: aarch64-apple-darwin - name: Setup Bun - uses: oven-sh/setup-bun@v2 - - - name: Cache Rust - uses: Swatinem/rust-cache@v2 + uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2 with: - workspaces: apps/desktop/src-tauri + no-cache: true - name: Install dependencies run: pnpm install --ignore-scripts @@ -102,7 +106,7 @@ jobs: - name: Build Tauri app id: tauri - uses: tauri-apps/tauri-action@v0 + uses: tauri-apps/tauri-action@84b9d35b5fc46c1e45415bdb6144030364f7ebc5 # v0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} TAURI_ENV_TARGET_TRIPLE: aarch64-apple-darwin diff --git a/.github/workflows/repository-security.yml b/.github/workflows/repository-security.yml new file mode 100644 index 00000000..3aeebef4 --- /dev/null +++ b/.github/workflows/repository-security.yml @@ -0,0 +1,182 @@ +name: Repository Security + +on: + push: + branches: [main] + pull_request: + workflow_dispatch: + +permissions: {} + +concurrency: + group: repository-security-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + actionlint: + name: GitHub Actions semantics + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Checkout repository + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - name: Install pinned workflow analyzers + env: + ACTIONLINT_ARCHIVE: actionlint_1.7.12_linux_amd64.tar.gz + ACTIONLINT_SHA256: 8aca8db96f1b94770f1b0d72b6dddcb1ebb8123cb3712530b08cc387b349a3d8 + ACTIONLINT_URL: https://github.com/rhysd/actionlint/releases/download/v1.7.12/actionlint_1.7.12_linux_amd64.tar.gz + SHELLCHECK_ARCHIVE: shellcheck-v0.11.0.linux.x86_64.tar.gz + SHELLCHECK_SHA256: b7af85e41cc99489dcc21d66c6d5f3685138f06d34651e6d34b42ec6d54fe6f6 + SHELLCHECK_URL: https://github.com/koalaman/shellcheck/releases/download/v0.11.0/shellcheck-v0.11.0.linux.x86_64.tar.gz + run: | + mkdir -p "$RUNNER_TEMP/workflow-tools" + curl --fail --silent --show-error --location "$ACTIONLINT_URL" --output "$RUNNER_TEMP/$ACTIONLINT_ARCHIVE" + echo "$ACTIONLINT_SHA256 $RUNNER_TEMP/$ACTIONLINT_ARCHIVE" | sha256sum --check --strict + tar -xzf "$RUNNER_TEMP/$ACTIONLINT_ARCHIVE" -C "$RUNNER_TEMP/workflow-tools" actionlint + curl --fail --silent --show-error --location "$SHELLCHECK_URL" --output "$RUNNER_TEMP/$SHELLCHECK_ARCHIVE" + echo "$SHELLCHECK_SHA256 $RUNNER_TEMP/$SHELLCHECK_ARCHIVE" | sha256sum --check --strict + tar -xzf "$RUNNER_TEMP/$SHELLCHECK_ARCHIVE" -C "$RUNNER_TEMP" + mv "$RUNNER_TEMP/shellcheck-v0.11.0/shellcheck" "$RUNNER_TEMP/workflow-tools/shellcheck" + echo "$RUNNER_TEMP/workflow-tools" >> "$GITHUB_PATH" + - name: Validate workflow syntax and shell fragments + run: | + actionlint -version + shellcheck --version + actionlint -color + + biome-sarif: + name: Biome SARIF + runs-on: ubuntu-latest + permissions: + contents: read + security-events: write # Publish the generated Biome report. + steps: + - name: Checkout repository + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - name: Set up pnpm + uses: pnpm/action-setup@b906affcce14559ad1aafd4ab0e942779e9f58b1 # v4 + - name: Set up Node.js + uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 + with: + node-version: '22' + cache: pnpm + - name: Install dependencies + run: pnpm install --frozen-lockfile + - name: Generate Biome SARIF + env: + BIOME_SARIF_PATH: artifacts/tooling/biome.sarif + run: pnpm run quality:sarif + - name: Upload Biome SARIF + if: always() + uses: github/codeql-action/upload-sarif@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4 + with: + sarif_file: artifacts/tooling/biome.sarif + category: biome + + cargo-deny: + name: Rust dependency policy + runs-on: ubuntu-latest + permissions: + contents: read + security-events: write # Publish license and source-policy findings. + steps: + - name: Checkout repository + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - name: Install pinned cargo-deny binary + env: + CARGO_DENY_ARCHIVE: cargo-deny-0.20.2-x86_64-unknown-linux-musl.tar.gz + CARGO_DENY_SHA256: 9f12ed4c49936e09b48bf862b595cde2fe64fcbd9d74dfacac6131ca824c8d5f + CARGO_DENY_URL: https://github.com/EmbarkStudios/cargo-deny/releases/download/0.20.2/cargo-deny-0.20.2-x86_64-unknown-linux-musl.tar.gz + run: | + curl --fail --silent --show-error --location "$CARGO_DENY_URL" --output "$RUNNER_TEMP/$CARGO_DENY_ARCHIVE" + echo "$CARGO_DENY_SHA256 $RUNNER_TEMP/$CARGO_DENY_ARCHIVE" | sha256sum --check --strict + tar -xzf "$RUNNER_TEMP/$CARGO_DENY_ARCHIVE" -C "$RUNNER_TEMP" + echo "$RUNNER_TEMP/cargo-deny-0.20.2-x86_64-unknown-linux-musl" >> "$GITHUB_PATH" + - name: Check licenses, sources, and wildcard requirements + id: policy + continue-on-error: true + run: | + mkdir -p artifacts/tooling + set +e + cargo-deny --format sarif --manifest-path apps/desktop/src-tauri/Cargo.toml --config apps/desktop/src-tauri/deny.toml --frozen check licenses sources > artifacts/tooling/cargo-deny.sarif + policy_status=$? + cargo-deny --manifest-path apps/desktop/src-tauri/Cargo.toml --config apps/desktop/src-tauri/deny.toml --frozen check --hide-inclusion-graph bans + bans_status=$? + set -e + if [ "$policy_status" -eq 0 ] && [ ! -s artifacts/tooling/cargo-deny.sarif ]; then + printf '%s\n' '{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"cargo-deny","version":"0.20.2","rules":[]}},"results":[]}]}' > artifacts/tooling/cargo-deny.sarif + fi + if jq empty artifacts/tooling/cargo-deny.sarif; then + echo "sarif_valid=true" >> "$GITHUB_OUTPUT" + fi + if [ "$policy_status" -ne 0 ] || [ "$bans_status" -ne 0 ]; then + exit 1 + fi + - name: Upload cargo-deny SARIF + if: always() && steps.policy.outputs.sarif_valid == 'true' + uses: github/codeql-action/upload-sarif@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4 + with: + sarif_file: artifacts/tooling/cargo-deny.sarif + category: cargo-deny + - name: Enforce cargo-deny result + if: always() && steps.policy.outcome == 'failure' + run: exit 1 + + gitleaks: + name: Gitleaks + runs-on: ubuntu-latest + permissions: + contents: read + security-events: write # Publish the redacted Gitleaks report. + steps: + - name: Checkout complete history + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + fetch-depth: 0 + persist-credentials: false + - name: Install pinned Gitleaks binary + env: + GITLEAKS_ARCHIVE: gitleaks_8.30.1_linux_x64.tar.gz + GITLEAKS_SHA256: 551f6fc83ea457d62a0d98237cbad105af8d557003051f41f3e7ca7b3f2470eb + GITLEAKS_URL: https://github.com/gitleaks/gitleaks/releases/download/v8.30.1/gitleaks_8.30.1_linux_x64.tar.gz + run: | + curl --fail --silent --show-error --location "$GITLEAKS_URL" --output "$RUNNER_TEMP/$GITLEAKS_ARCHIVE" + echo "$GITLEAKS_SHA256 $RUNNER_TEMP/$GITLEAKS_ARCHIVE" | sha256sum --check --strict + mkdir -p "$RUNNER_TEMP/gitleaks-bin" + tar -xzf "$RUNNER_TEMP/$GITLEAKS_ARCHIVE" -C "$RUNNER_TEMP/gitleaks-bin" gitleaks + echo "$RUNNER_TEMP/gitleaks-bin" >> "$GITHUB_PATH" + - name: Scan repository history + id: scan + continue-on-error: true + run: >- + gitleaks git --no-banner --redact=100 --report-format sarif + --report-path "$RUNNER_TEMP/gitleaks.sarif" . + - name: Upload Gitleaks SARIF + if: always() + uses: github/codeql-action/upload-sarif@cdf488f595d80d6e07e03d4674febd5ab45fa938 # v4 + with: + sarif_file: ${{ runner.temp }}/gitleaks.sarif + category: gitleaks + - name: Enforce Gitleaks result + if: always() && steps.scan.outcome == 'failure' + run: exit 1 + + zizmor: + name: zizmor + runs-on: ubuntu-latest + permissions: + security-events: write # zizmor-action uploads its SARIF report. + steps: + - name: Checkout repository + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - name: Audit GitHub Actions + uses: zizmorcore/zizmor-action@3dc1ecc9bcb9e94e9b2c709687979e1298497054 # v0.6.2 diff --git a/.github/workflows/weekly.yml b/.github/workflows/weekly.yml index c0f7cecb..cb36ed8e 100644 --- a/.github/workflows/weekly.yml +++ b/.github/workflows/weekly.yml @@ -4,24 +4,35 @@ on: - cron: '0 9 * * 1' workflow_dispatch: +permissions: {} + +concurrency: + group: weekly-quality-${{ github.ref }} + cancel-in-progress: true + jobs: quality: + name: Run weekly quality canary runs-on: ubuntu-latest timeout-minutes: 20 permissions: contents: read steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + with: + persist-credentials: false - name: Record source revision id: rev run: | - echo "sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT" - echo "short=$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT" - echo "ts=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> "$GITHUB_OUTPUT" + { + echo "sha=$(git rev-parse HEAD)" + echo "short=$(git rev-parse --short HEAD)" + echo "ts=$(date -u +%Y-%m-%dT%H:%M:%SZ)" + } >> "$GITHUB_OUTPUT" - - uses: actions/setup-node@v6 + - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6 with: node-version: '22' @@ -72,24 +83,29 @@ jobs: - name: Emit canary evidence if: always() + env: + JOB_STATUS: ${{ job.status }} + SOURCE_REVISION: ${{ steps.rev.outputs.sha }} + SOURCE_REVISION_SHORT: ${{ steps.rev.outputs.short }} + STARTED_AT: ${{ steps.rev.outputs.ts }} run: | set -euo pipefail mkdir -p canary-out # The conclusion is only known after the quality step; read it # from the job status env that GitHub sets for `if: always()` steps. # We treat any non-success quality step as a failure. - CONCLUSION="${{ job.status }}" + CONCLUSION="$JOB_STATUS" # `job.status` is the *job* status at the point this step starts; # because this step runs with `if: always()`, the prior step's # failure has already propagated to the job status. cat > canary-out/canary-evidence.json <> "$GITHUB_STEP_SUMMARY" - echo "" >> "$GITHUB_STEP_SUMMARY" - echo "| Field | Value |" >> "$GITHUB_STEP_SUMMARY" - echo "|---|---|" >> "$GITHUB_STEP_SUMMARY" - echo "| Revision | \`${{ steps.rev.outputs.short }}\` |" >> "$GITHUB_STEP_SUMMARY" - echo "| Started | ${{ steps.rev.outputs.ts }} |" >> "$GITHUB_STEP_SUMMARY" - echo "| Conclusion | ${CONCLUSION} |" >> "$GITHUB_STEP_SUMMARY" - echo "| Timeout | 20 minutes |" >> "$GITHUB_STEP_SUMMARY" - echo "| Run | [${{ github.run_id }}](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) |" >> "$GITHUB_STEP_SUMMARY" - echo "" >> "$GITHUB_STEP_SUMMARY" - echo "If this run failed, the previous failed run's conclusion + URL are the unresolved failure evidence. Foundry reads this artifact to compute freshness against the 8-day window." >> "$GITHUB_STEP_SUMMARY" + { + echo "### Weekly canary evidence" + echo "" + echo "| Field | Value |" + echo "|---|---|" + echo "| Revision | \`$SOURCE_REVISION_SHORT\` |" + echo "| Started | $STARTED_AT |" + echo "| Conclusion | ${CONCLUSION} |" + echo "| Timeout | 20 minutes |" + echo "| Run | [$GITHUB_RUN_ID]($GITHUB_SERVER_URL/$GITHUB_REPOSITORY/actions/runs/$GITHUB_RUN_ID) |" + echo "" + echo "If this run failed, the previous failed run's conclusion + URL are the unresolved failure evidence. Foundry reads this artifact to compute freshness against the 8-day window." + } >> "$GITHUB_STEP_SUMMARY" cat canary-out/canary-evidence.json - name: Upload canary evidence if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 with: name: canary-evidence path: canary-out/canary-evidence.json diff --git a/.gitleaksignore b/.gitleaksignore new file mode 100644 index 00000000..2bd3815f --- /dev/null +++ b/.gitleaksignore @@ -0,0 +1,10 @@ +# Exact historical false positives retained for auditability. Each entry is +# scoped to one commit, path, rule, and line; future findings in the same files +# remain visible. +# PostHog browser ingestion key, public by design (see tooling docs). +930c8952a3c80edd61c06c2f49106e616c8dde9a:apps/desktop/src/lib/analytics.ts:generic-api-key:25 +39f414d063cac9ebe9258c69a81c05348f3e4b89:apps/desktop/src/lib/analytics.ts:generic-api-key:25 +# Historical Foundry public project identifier. +81df29eebf1d724d2939cbfd8123b86e9848a940:foundry.json:generic-api-key:4 +# Historical database migration fixture value. +ac5d18ee9b33811accec2df5d7bc33b69f9bb6c3:apps/desktop/src-tauri/src/db/schema.rs:generic-api-key:23 diff --git a/.husky/pre-commit b/.husky/pre-commit index 2312dc58..f46c0171 100644 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1 +1,7 @@ -npx lint-staged +pnpm exec lint-staged + +if command -v gitleaks >/dev/null 2>&1; then + pnpm run quality:secrets:staged +else + echo "gitleaks is not installed; repository security CI will enforce the history scan" >&2 +fi diff --git a/.husky/pre-push b/.husky/pre-push index 60232096..f7bb930f 100755 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -1,14 +1,22 @@ -# Abort push if lint fails or a known secret pattern leaks into tracked files. +# Abort push if lint fails or Gitleaks finds a secret in repository history. +# Keep the narrow regex fallback for contributors who do not have Gitleaks. set -e if [ -f package.json ] && grep -q '"lint"' package.json; then - npm run lint || { echo "lint failed — fix before pushing" >&2; exit 1; } + pnpm run lint || { echo "lint failed — fix before pushing" >&2; exit 1; } fi +if command -v gitleaks >/dev/null 2>&1; then + pnpm run quality:secrets + exit 0 +fi + +echo "gitleaks is not installed; using the limited tracked-file fallback" >&2 + SECRETS=$(git ls-files -z 2>/dev/null \ | xargs -0 grep -lE \ - 'sk-(proj-|ant-)?[A-Za-z0-9]{20,}|AKIA[0-9A-Z]{16}|ghp_[A-Za-z0-9]{36}|gho_[A-Za-z0-9]{36}|AIzaSy[A-Za-z0-9_-]{33}|xoxb-[A-Za-z0-9-]+|-----BEGIN (RSA |EC )?PRIVATE KEY-----' 2>/dev/null \ - | grep -vE '(\.example$|\.sample$|/tests?/|/__tests__/|/fixtures?/|/mocks?/|/vendor/|/\.tmp-|^benchmark/|^apps/landing-page-astro/public/benchmark/|src/commands/secret_policy\.rs$)' \ + 'sk-(proj-|ant-)?[A-Za-z0-9]{20,}|AKIA[0-9A-Z]{16}|ghp_[A-Za-z0-9]{36}|gho_[A-Za-z0-9]{36}|AIzaSy[A-Za-z0-9_-]{33}|xoxb-[A-Za-z0-9-]+|pk_[A-Za-z0-9]{32,}|-----BEGIN (RSA |EC )?PRIVATE KEY-----' 2>/dev/null \ + | grep -vE '(\.example$|\.sample$|/tests?/|/__tests__/|/fixtures?/|/mocks?/|/vendor/|/\.tmp-|^benchmarks/public-catch-rate/|^apps/landing-page-astro/public/benchmark/|src/commands/secret_policy\.rs$|^foundry\.json$)' \ || true) if [ -n "$SECRETS" ]; then diff --git a/apps/desktop/.size-limit.json b/apps/desktop/.size-limit.json new file mode 100644 index 00000000..6452c5a9 --- /dev/null +++ b/apps/desktop/.size-limit.json @@ -0,0 +1,8 @@ +[ + { + "name": "Complete lazy JavaScript distribution (raw)", + "path": "out/assets/*.js", + "limit": "1800 kB", + "brotli": false + } +] diff --git a/apps/desktop/artifacts/design/product-surfaces-scope-1440.png b/apps/desktop/artifacts/design/product-surfaces-scope-1440.png deleted file mode 100644 index d42a3dd28298a458f56302f759ec755c00cd255a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 153196 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%0DYML-GdOVqnvNw_-JSX zsj8#L6j0F4J5O7KT~>^0$U4eT15#}`s-h*sZkoUezQM&{8_Y$D@?ELuFBFf6_vTN zWhi2)Kz4qY*I+oS&hHLp8;RgoVj10ceR9r)!{YX@^vq~Cu?&Xw{DNoRFlv#)QNpXG zRSBx!JMP~eXbr_s>fooDP2^Yu8B~%=2^>P*xxW#=i-~zK)P*0iXZ@?$1^?^K)t+#% zb2#Fp(Kwps_zJTCv`MM@w0#WBngajl(umqS2xd=HiwHblWX(<6iPnT#8?f2k!`aPZ9mkEBSw@FA$tgTOvJ`VwxFmcH)^{}-K z!kPz4&rmsgx16|ZeY_+HxjLL|_;~TQbTe6xtH+Ql@A^Qlx~$#rN|a>ynG7s+-UG1=W(vwDW-x$*RMaz3X%x>NPf=)2pkVjnyNW#5*u#kTgCSQyy_N?{EXPauD(uqSD_uADhhEjv7xz>=u@uNQ zo}Z7%`#gA3{t9y$05vpSPo>29MWCmiSPsoDA?&!u@yfn_T^Xr90C*`||7pGW3xDzb zjj5;)8FEd<>_|>N%vJMs*ojQVJB|#*jK0;T?-@lJwu-e)X+@#=h z^D~&dmEf_m$E#abSW5Wj{iFZAc}FD0@xw;3sflsT&PJuv`N_lqN^a71xgk2LZPI6v9GUFI6Yzq_w)&Ju z(ALCcA<=RWqMq$Y#omv`pvbQ-6QfbJr}EKZ#4*G$@QZtSkC1y#zByqH#xG>)E8Lbp zY38NGr8wQHRPXZH%@fZa-gS*jW@Kgk0<7NBdY)8Y3kLh2Ni)r%l>AXi?tYTd^igUT%C{`{XU>T1se+d-~KABm=f@`LF+zY{q{E9hmv`=s}+ zynXc6LIa$3s5DDO?6>KU**8WBj^cT2+Etv4<03yP))RfbN82P*wrY1KzE1J(`B4yc zsrYS*75WPtd1XV`;dUSU$p(9DVr8Z0g9mb(M)G98cq;P8>K5-8QLbD6c__HI`OQM$ zkCRRETee+^xR@j& z1|P+f)BX|H*Y}Z@&WMW}`+gZ?u`~YBfsO)MCNrI`?<`L2d^(X{N@)l9i;JGG?JO-V z*-TW%ux5c^!cMJTcZt@}8NTXmwmZzspS=TdZzcM8>@KlK?hN-BI%OUV4C$tS!Xjk; z2M=qtr)Y6)q^LQVg45{d^vecGr0@E`5H!92OdfA~pY$}}uib7Nq8TF(?xC~-m|bs7k9_x7hPjku{fVRuQCJ(NONm*J(2tRk`RQbD zCpL9~_Y8EEPK+;UbBL*)4+bxAe_<3d!SitvWBcL*K;|2@E{??G5@56MS@Ngv- zYE7`GdQU}*e^EN$=dKZDWcnQe(ur@C&X>MtCVIX980oaT)PtN?X}HI_ z!C09CizPKNIawcunU;q2`*ZW#p%?FLZ?AuDb@eJbC@ey)9egI=_J&v26zqvGu&oQ2 zCo8yY%|B+$EzC!?v=*ahxGzzskm58+;8_=B1^6wY-`2xvQ_g*|8dCifcs^BOZ5J2Ed;{EK$ESLbv}a^E+f4<;R-;^Rj!W{K+si+yyq zm>QF(JU36x`x1?J@CgXI6MbcxDNOK9?E|wd5GSKZyrv_)%FQc$sXkq8pW8S)fnfVUIWPI14c# zzJ%sGIUaVfF(K&Lxu#$L%6YB3XK+yM-c94hIS^FCAr|@=|0r28LD8*-r7hZ#Vqbug@NaR7IJ;u&~gu zITVCQtt(xWpdJ=*K8kGW{icnN@w9j;I{i`f;~0*BR^HQC0G4l3LkKCaVwK^{kAN-_ z!P$luUmJfiQG2h2_87>qGR)ta$)>;8+A15KxeQ@)FTeK4W2D!Z%ll||xopw{Mtn|v z&Mq+m0ZNoy#NZ{nearhs8yi+Q^H>Q;6R(R}A90mypN-kpf{LW=NEQFxyIZ~KZS3qv zAAjOu`TpKHKt;znhsKn~+Lr+VoB(9P6?OxiIG|!xl*}k{@4pJ!kzHrTTNsr}PKJjW zpUZ30*zo*i?-^l}^D?FvZOZ3ziE)KB=dM%t8HCF=FSWPj^Rq@Xh0C_Ko)Ij;XQof- zb~yC4!5|755Ll7C;b!F@e5t?N8@nGvQG%~xy61b()i8Y6Qf_1mr|)C!w9Ym-C zLq7yiI-oK-zd+qqk5%qXhO3Ki{M&swp@RYUZ@icmcfR~>pD0GpurU7p)Bj&<0sQ^R zD1JUZHbfZuzfFZy|5U7%s~2q;MkZ$F3%yL?xOVi+NN$o$e4*YMcHW$98>_sg zq5#~-1Q%~^;&HH05#QF{W`}&BGgBUg*#YCF2iuA6{Eq z*VfUAY5w8lC?s5E^*JxbgX+$m*Uh=Ck%}6s*F6{RIqFrmpWMlwk-vtCx$vuu8}&NH zO5D7jgMC88e>$;s<;UlV3IheDrC(~eRH{Ap(%Zp5(Ns-sAu2ao{6!pe-N1zgoCaJr z#<_()mp`UuVqr=CWKj5Iv2y|-2`z2y{uHT(LPHt)!iTq}Y;-)oReG8j8-peduQiEg zmb#c84jJ1n_#n9-x@Wj^k#s;k9?NYloestw`x^s8ZDVnAPXBR=Q5NTv22+q0bj=btbL!ZX2N;KE!=dD>vSQ%I` zam|rqQtl_Gm*M4uq1f3MD&W#k3s+ase^t@e1_i^Q;9w`D?Fh$<9($v&9GbEqGsjs^;>i_)q5XC7RZIK}n|s zxB6ft3Jma6^VALw#0C2Xm9DJxXWud?{Fw8jVO^J0e8I&qJgqM15%lKtN;|Lj)`OVBI(LA0Pl;vN z?(SG|b$ED>KwjzR&+T1ZQ!Onq@mQ}Vsgf=9E#7nn#GY56mV+M#bb7vy>J>bF>G=Xd z2pm5+xF`SE53EetOv$I4tOOI^SL_2@h_mHPI!`yZUUdM$qBI`DNh&F)%>x)h1bEo$ z)Y^x%&CAE`VyD9(J$R_SWfw}GUSD_I8N}HU;eoqsYX{>1;kyAr<=d(#U(galE#}BO^-JtUS!j9EpgCTzXiv zB(*~-$E&q$ODS6&Idv=CSC0UDPL&DcU7s@;Ckv6Lv`qSqW_;^SUQ>v7E0`8b$+-T5 zW$knFM;}iiztnm!Y9ELqK=`_^Q_;(g+<@N(cCu#_@*P6}TGZ8Z33+Aj9QlV3-LY(oMfkFuytE>K7K4 zuS#VOdQ5pPF^3Nfa&#(jk?AW7? zqTyKMi1TqM%e8A|E*qoYO@gdQ35Z;!vQ=s6=qf79wVpm)GVFWD#u`m@qbK$kEoch} zfhwqLzlF1f1?I$uu8xlIs3_Rniee32_ou;{9qJ~F@hBeaT^yfSZ{P-PZIuNx(Gmtt zj0*wzDfZ(>n8%IXUl%M`2GQ>HNMI)OVBv6@Wbn9aYBH9*4G>Q*3bF+EwPhX?Q&Vz* zVo^@c>YUi*UbCKN1v2x|$9lA3&5%@fbav|guIDW_XtHYR&=*wsB;@|-*9|a*Oh!C! zWaQ}lId2Ej4G_|JtTh#$$i+$D4YnTRRl&Lc^vKccL~f@#DKV&R;;VCn{?0izp5+6U z6AMD%fR4vA`x_~5D}01IVdHv{ z=1v(C;@woiFW@8he8IB_gZcQXU%&M|wH}jPpC}6ymx>f+;`Dc+>L9?sy|%IOu;;o< z(k)8LMC9>>6nj#5ouvU9^Ut3@?Hmt&@(5l3ew%{0n_ZLCa&@~l@dtfGl>6}?4He|! zM5ijp$iy{3ZjXpYAB&QcdLr*kgHhSk+ggfI=Fiq+S#qR9TJ5Q7Fc;__d(`iQXYIl( z^uXHr=;7VV7V2>(5y*4`0^fX%n0Dy6$A4hj^@l$LrKKY;)0aN&M@atYUkpH z_2`Kc?_!He^P@K8n2f83#mOABz2@gkqNArKxYCs$oM-Vcu3s&cH{&Fh*bQV19L$Ra zZstISZQ>d9m3a4^-oZS3diPq>sqFU~E-!xZ6i=)vZyer>yohuk8IJ{()L2tH3gOKT z4)VUhBk#2U&{pl}`H0cl@iGKPrutau1H0qtH?WWi{eY(3Fmdj*u@!b3Ozv3%PH%F^e zv$9^3$Nbt|j?k&xf2Z+~1IJ(Q<6^Q2|3ro9BgNc)r?Es@F#j8{7}&Zc!?2j%7Cnqc z(he4mKx!z=y+I+*UPv0?`m)tEFG+?eltzyVQ;jW1p6#RY7quq>USSMUUywznSM}jqg{(6 zhN|f5Z9Q<>g||w4@m4Ly35e9o%BIee3JU64TFf^mC#;_R8b2(`@A3%JECuU7P~cp8 zb)IOcE-Jc1P{FAXqTn)_+8in(tiPR`U&Vlrl5uXHlvjB8(8a+)1i+go?mr>-pY+(N zwyiy86q#9o#GOuv`|u#DZRqpiY&r3LHPxR1;@`Ikf>^$=sO(f(5KQ6^iJ3&(trKO+~J{`hf~u|NTh zxA8dH4l#?`jUa3HeQ6~1{u5cq>s2^2#xy!mXY|L`mKG16 zg*N=Kq#O})&-dHvC4FJ!q5?D7Z;nE4Vuq3nKaLZ7^XAPK2n-ZIhpiCzXE#!G=3JW*0&6WNJY%VX4Aw8wwwR_A%RK6ybXP{9U&*)$v=^S%f+(yIK17`S}z^GK;|kz z!?IbqeSU4EZ@}~xW&plD+k}@R(3?0kyqJGD-GbmU@WiO5y8p~nul7eyF_B2@0dzmA zo-inI2PF~AZn;Hq^fi%CKFTg9+29DmXsNB4-(kvAcp@0@plq#PtCCf>!pTK}p9C(U zpXVP3$5mpGilUNhKba8L;jcv&-rr4bc-SFS-^9KKWM$z^R8w0L{?04-q)av%g~H7F z>YOTQdvLs;a|hW73F~79*7wit`^b@;M4?|{e;)&TWYM3Q~| z{||Cw|1+h`{=eMYP84=NjC%ct35Zf0%Thk~@h5CQZv>CLliYXHCYO)!Oe})i=5c|* zF*^F{Z>i=dgVGRVEHS?o6%o-_YAv|%9Q5>H80*pJ&;Q=d?aCi)gvPJ+2}#DN&zh&l z)8FfX(A+|cOU{u32@mw`x3+jk@RJp}T-yH>6f9r{cumzzfOk;n+qX775H=MhC5w>{ zAD(&7zwPaP&pYLn$WeQ;y-Lb^>b$=O0rj}SX(gp^8JBX>_s`F}M=N=}Qa><^fU+wMmBoq!?;9&_;VfcQ1XFl5U))G|F9rf$tyv5Q3?6V*`L0X zDIYE5cPt()7$^hnnDe;PPRd*#a()NwMnOq&B}qy6?fKrjTUO~vewQ`3*8L9N#GbAI z(ay|iDbU$66mU+cosJ6-^%=@luT4sNcGTM0IXTw6czmd*Q|=J{@4M3k%2eGY+`zsJ zIU~qa!hf!)oj7BlI__It$9w71XJbkQhL$oWM_%sac)_L1SArApwuPKG-)*%^8h zXeEFi0i^%c_dMZQy+)cviRQUVdcQ@9zWxjiO*&vQmJV~+e}ur=utH5##mY9=i>I;KYwp;?;qez zJCu_PI3eYrx#~Mt15^{{{lG|COKVK=!n_tfT?%YeU}>7&0+E|T z&{SKKi9(VSxyDeD_@0*Vz`0vho(N6_6W{DRMn z8#?aoUyDSFs;YlLgDg^94^mR!mHuU4YYkAZ?HvNG`oKhG52QsaXi)!WZL^UTM!kfJ znv9%$X9p{%<==|h&eauEvYt_V^t-QU+25prZg{&u;?8x(D9nAs$C<2onkA?DGiBm; zX&B`e(?2y4yQ4>O0DW+NZZ0w=rltRVT&0YUkH`gsG>k&0z}R%)=tTz=oXA<^JK-Gk zCi=lPY_IHjBNCXc&W3T z2t|-v5Tm~dOni#4<{7)&2)9Tlfp|zHZw82`E3;qx>Vp^XEW*G4cx9JFw)MEWg1MRs zW6$6vH?o)F-r7Br-ybBa{%kcO`AZT+WL?avfYm!sX(`9k^2cgF5Os!<-zAUeB3jav zvq49~{NWpIRscrf%0XdDQNv5pN=i38tPv-H^i9di4D0Lb<|OQ}w}H-#i9&>fn-{4o z&=h65&1LDRnj!-0%BAPB^zU1Y zp!ZMggmmE777)HTPY|4_HsT$8C8yL+Xnqxe@(LHYP8~MHU&4O^#G{ZcK&qsUXj$65 zfSC~O&x&~vSZ+cT(o={m|D}eszQ4bQ%^$T#z&>U{|M&0T?_}>`BZP$TR(DbCZ9jC> zp@lI3USs@4rg1zKV1BoE=DFF^@RjC~uGh@frf!;sv9UP4HePLIyN14hZ;9~pgqhsw z2VejjN-QiuMfKw&hx4{kw(2=YTePmb@z#5q;AE!e$%)F-)6pl?P05}Mxf@dA7CWm6O!Zft?|*RY@kR9&gToNzeqh*lCD4CGyK zF?MdmJTi@yrA$oZ?=zUbSm<^5@Cxz1f3O}4Mhg}3KAM}Kj~DTd&4AVsIRWv*9!#Kg zQyyMI8)6grfA@zfmaP(++drkYQzEMa>RP2{_Q33_@jeE* zAC=qzl3F0^XqFl@ezTwT(JSW=5t(djvm75TJVnQrm6Ow{GHRLe$4E^{*%+@`UtT_3 z(6Wse^z~^Q%mc<1m@s)BY*-WA*g8Eq#1@-nv+upfll8rcZ+Hov=I=th*dh||qN3m^ zdx~joWNcbyGq5tNAd*e%s9{EbdNQ+F5TL<~i-RNVzCBj~^h0L7gm>@k=9ZK&1K1ED z@7bFk^j+v!AjCR=x&PbFYNB*~WVw%_7hG8#)<;V$90>98&A4LC`!aL;EqKzasvUeN&<+^s($v!0gm0cdzr6M{_3-Ld zm^0laATqQQqn1do|~za+J8i%V{NFpCRDI=|-TiU*Ya{A*6v52o}y_Xf%)y;NAE zyWBR)A6&*r5cPCfUFdjo?Hc~JED{N6_Q+TBzBh)=uW-nZX2#38hJbB{T5>}b&Tv#c zL){*JfyI9}Fk3V=4!{t3wEOUI=0cpKy`4_yPGH!K}!L4{=CXIr~Z` z9qPYpyhMS>j8VwkzLZ-SV)5dcY2w*Q{}ou^o5o)`h$onuWXTZDSKx@uf*g zhzo6CM3M)@%<;?IxyZL~uU>ktc<*az>B5#9u=&yaWFBVrnRAg~(lZj=esY17SU~*s zBT*urW+%A#WquXcpgD2zPsGLi%in(@`aR*U|I2@QTog^OyTVzE^w24ur}m^}PU(UKm&XzLj@8Xx5RvsR@N6^Wc zTHI%2%R<2(N6m=~Q!c1fxZeQhNRFK6{#9&2s(s z6Gqhhm4SeBa{j*wcHap!yEe)CqPiCKs+@c#DnwJqO2D`g24KaHhzy6-Cr_LXyd{%{nOfU(llCkXV>5+8wqwIEeYGkadjs zHxI$6S6^GuhsM7vf(suOhpNoIn?Ii}OmP>GAGHrR4!`X*-ezL>&cTmNZP%dn(s->PEc`&;%E$ zlC#`*2m!;$c!tr)*A(h*afo@k`;)E-W?*`m7nrJSPAx#htH@M=QqU*zZ^C9K29;Pr z@TKchK1J`EXQ69yda{ETd6SS(S6Lakg&WJt#Ds%uVS#Pe-3*{720HrK$OuCeQbtB* zeTtsLfH^`WLC`k?2!V5R4TLOIHHqhPVq$k1CB3{aFC~g6{{xH{bUwx?yI*sKNlDWn z6F{%_3v?wG9zJ?h3F47*fSiF(nQ7($&wnW;24|8}#I&>-Qc`x->l zbziTLkCD-%;kS}hV?gAO#jQ4`R`6XnJDN^Dg~9u#b`g;p&P30xKU=Bz+eru+?#2Xu zN003^ux!$!XJiHKx8GY^N{sVXG3s9k!Lw79dp7M&mxk7uc9mPFQ<`!VvQeJ?31+fl zyL?b1l}k!2!QUq^d&c&YUd$PWV_6tjmIqYMrK1`eBt1O?LCa6+-3tSp4BNoHgPr?e z!B*UL5!ckTw0jTpV2C)vz)*n!AM=f*LF`EJ zOMuHTaM$=9cCUvubLw^d`J*)mhE(-3P{UC0J)@5^vk#be;6FxytUO#|5)fd;oSg(F zKvNaEImVWjM4k&q4h}!Y@kCGOX7Bs^$Hmt0p(GJu+NzgM&g&Hwxz(@6phbpfTi=g& z7^B?x$Cp9P5MLm983dC>((OzEM zIQJEKQV$vqNlAY0&x9@qbtS)UG$_~BWe9JZhhlO;7eMtK50OTVONm{X?}9Y*3X9Eh zANar8n5xap$^x5EaH5s=-XE#5Q2SUv19P`%W=mj1%E8GQqv-%BcURX%u0Gw9idDMy zSrgT00^J!4nbd5Dm-0JHP!xe)+;a=*DYg$uYPq?s)Y0mZQ6H)fn<~k0%L>@eVKAE0 z$JjpL#>Bf z>u2rDzivB}Xof%)lq!ve3-%Jvr7&b<%EeikBFy_OE*5Z-#YLcECL9|cZDpD>-sZ?d zE2)HXYM1_FmMS9<@jo{h03odR{mpXi&Wrb;iiUz*l$`1ZJHMo*sU|Bbn)##oHNW;o z2Ba(JE*qsuHt?bTV-h3WTBB)p$J)vo^n`I3cSjL_@RZ!bLoB-)9){xzWxFYb+)M^&d!t{u z!d5brYpOs>y1KIC=H@0TQ)c-078f7YxikbCH#ZHawRaFN#UYz?Z0}1~UT(Wz?KI!| zWC2a}i5rbXAa;4JZ0l-~E)2Y6izv8h4ENol{nt?W;03Jc4V5557F{p>4BJ~%ySuv# zU5^cK`5qoNL-|(w`{eO+MKqX{?fgS!me+c+y;G{fWmyQAJqX`(K)R2-=Uc&fy7qKG zE)*AcnV6We^OT-}AzLkgbYxiL{?jUYwmV5xRR%w&A83`@9M6V55u(@x4&c&QX4gDZ zwC|ZQyB44IM8s?pco(e=m+u@OVx^>xRqwAbJ%5fi<$WM0CDmw}=xsmqOKOMYY^Ci! zKrv3B{o|bE?0Haq&=K@^k07x544AH6R;1$>5Lj3wQjK`-cyKP7m@~7np{uA^*B=~| z%hX7l(^X`$mjf>FqVC)H0c>FV)<~<%=ejVL-KXchSE88;4(ANfEuoZxM@@0I6v8e- zjEvj6%NjgdMJ95Kz6aKcK9`5Xy5tiFg@jJ(-6@r>e;;dG9o<{a(<-STpj4m~{lr;W zT)f-YC6Z}{Mbr)wJ+Y@VfkR((GJi`VEpjBO_58OV%%>ZDMCX-!&m#++6sc)OLHv|=y=3xJ3l&3H~kN8MZBjk{_e9j zRXg?b2DM4`7VT9L5G>`i>%I;WPW2dgyDNRsJoo77*+fL1ca&Q;@5gl2zKi^%EjI&P z1Tqn?;hpf|`AV^lw8& zUVfibB?Bt;^(o&vuG6w9UtXS3PcUDaZ;hGFRruXvE)yHOq>dS-OO=d|?hY0>1* zw!UWSFHw=*UH!$yXs5?AQYCvkJ3yA&E!)v-FuIZkDi_V zVeUZ9?k}v$gEe8t1?(LJK4xP*$`S-FlG{*5*(K__I}cXWo{@04{Vt>qY&0lj7iMMc z<5aBC$7{RGqNlrU zq5*7>_3C0T5MLDt}B4$UOS8L7|#`0^F-b_%N9)y6YltHznGB>?8DL)=tsg|SFfgo- zp01KpWdz(R*Z$IHAy>}?k6CTMLmPm2j72GAcLy?#FA|yZ!MlZB;i}8{ibbp8kF}2UW=ZLC(z>kKJQ#^8! zA3Z&VuHd*Jax}~}woOo5bGkqp$7?ff$Ik@JI{n!Ug4(kR<34GMFiWzDda69NO0%u^ zwS)Ojei9fak}34OBuYp$7l>p4?IN?xQ1UYC5p8X4FD8*Q-=f8nqt#7HU#>8<7A{=n zh#xE_W960yyn4PR#(l5$e63Fa4&b#N`RXi_wxpS@Gcs$BVV zC$*ttpyXScBy02(XJ&5hBVApQ0Bl|NLmFV~c=^6%cJsDX<)LSwK1{!+%P7P$67y=s_sjhcZoVP- zuaoowJjhms*-SY|yg_>Tgg4FO=3ASB%zLOu_LD*-H-RLoj3t^D zEY8l($!vk3zsd<*d6>gpYs4| zq6n66K?3dY@R0LBiYiJzMku~{mL0FScL)FDh!FD+M75}(m-hp_R0{e)OrTs3czW#YIzV7DiIt5e0l-hh=S24D zQ*)d);8DeEqQnqQ>Tc%rez=kMMJEinXR42~=t2Ab8O-K=PFH@br8u0T#`*O-E)&zW z0RC2^ufKl5^mo#8R4a}nMB4IbI0p**NB285YYbre(;S#sALF8nOuIS(l6DPUZe85D zuPab%Gm)s7*EBNXzVAJgtT-B zNOyOm2ndKMDcvm~(%m54%>n`G?uKWu_x*qF=XsC!{ravC+r5vyTx+hi=Dg;(#yHR4 z$z?OAm_6hQlcFB&Z3itaGL4B?t6EtBZO@Z~;MhxUw?q4X+bJ;C^2gc|aQ}PXV>m}C z7NCJ@Y5~{}=dLv%u!)A<^5!O4f|l0WNFH-Ou83@FaQvUOwb*ap3N0^UK;Q=qNAUB_ zS#yC$Cef37)IJDE0_&qzawcl+k=?}9_v@DvS?`gv8fV4FH!aZNXRE4TL0@%i>clRd zyY)A2;KpPbz`_H5`TCa-a9aN?D(cKTj?GoM0*VfGe{b(q0F~%q&7+R%Ns_u{(BgyQ zd&xSpnX-vpUE<^{`jGr|5~v-OmY!Z&S^kBXqoFhRwa%MM&{Tzmg-MO>wUI9snNfce zH{v}zhjbwZEncg)7R1D{4DnS8rHzf}dTk+4#G>5sKR&&kr6}Q5=N%Wf4peT~`SSwd zueI-BacE^;J&)nhBkSvkl7|oaxr@~}L)xUpKWE~mhCg^JN<~5OksU3S=PfwlU{3hp z?lChn0yvO4iaC-|J#Cs*9dNl05#D%TKRun$q+?1v!E_+|y{RP~#6FjQVM2w02|VPV zUEPQps~O~V0dU9zEG{hbOE4K*sfoC;oZL2;<7oQ3hc70#YLEAeTtK17fng$QCmnmp z%l2L1ct&H1F%Foorj9a)gwEEsaU&vR~6JJi?O}SOO519i2`03E_;#8@!Y-I z+ue=ib!)@9`!ND4msW>7kQqKb%@1&@jQWnljaUwIRinz#!OUJM$<&q_ zkJ-73=-!&}1g23;Yp-ls-60)x@bjaYW8?Slg}EUVW6_Gg_94K_`!2Q)M|MkcZ};Lo=o zE;BtS0H56QSoVt+9#~DhD+QlD?BBo!mJ75*d6@!juWEn za8XeVE|0^wKn%I<93+!2KUiF7eHe{jA_2Uirp87|2?=mMz~liZf{+V`S-Q8$RNGUdG#}Dy)Ea|q(YzGq z;O+VbnKJQ73%`5<tH&z5F@zHwg zgs^RWr#d9$S19kXmC{ho{Yl#D1exD|WfKZG-Z5)J$;S2Gf`C;!_E^{j6z?hf&S2Ej zsG@lM&w!VOY>bV4EH$~aINb+?gibl*DKey0eSWM~WRJgzTh3I(hlV~YDSiD~CNP*U zU5=W%f9`E~Hv-|4!o|9k^j`SR)x{@?JZOURS-5Gu#LQbtzG;9ztVn) z#b&i=?Y} z!JB(R#Oo0!39jR9@%|cEYA-&e5I?7l%cnCIbS^+eVkP+hoV0Ry9M0;1p2PlTntaN& z67eRQp0lfn*>2LEpcJasMb=(#kD-MvHRl`1b@E&pMFjVJp9BUlu|4{OHbmr*{t(*F zpL;VEo7_`PTee>YdlEcYtd&zDXyVXG?!I~BMw!KodCc!$ssf59;g;O)0bHd`G6xTy zWQF|OgEr%dimmcr$*KnfRkR$ny^W*iSEr1jxUf_OORa^J2dOjNtS_`j>g=?14Vr}0CW1C_*C`&K@gON+h2Z2b*YV8ApBrJ>l4Mbvv zc5!)5E72XKENz$&T|ctu(Dn3&bmSYco}~hTCm9`LN&ekz!j=F+q038LbX;cm zPrncc1l;?~-)fU6o1HaG8!W215^)FysOu^8^~2$V__OMeSrMl#L_6=80_}PVA(FQ% zChRid;ms}h=>8C`SK_oe))(he>^2WN#)7Pk6l7@D!hZAmv3iR?u|PiC^n0`ir9nvY zncu8lpNBwtBLmRDvX-`k(33=$Oa1<*nXVA)uZR4HAINe4bkjw;3l8A5co?Eo_PPWq zZw75nSJ@f<3F^9;HGKUhl<+2-@7tDu((x8Eq-~+2qjT7l4URm72!(T5>j?@TDGBKU zYQ+z!j5oP(+Z3?_Q8nZJ7{r>onz$#+Ud0&?8XIs{+HF|hrte1cPL zpHa3HjpqoVEzIrSMp_ksH_Ca67X9X0m*^4i2~AMxxZ+4D(nf&xL|M1+{}3hp zu{vFDosQ2Sm)6FU?8jig(FngU(e(y6AceTp(Gethu$vPihF1_>SD<|!p)O7Jl;WQo zVXX3um$aM*6{fH@IvRp`EK~8uO&@IR`GXqX8$O5Y2sMv3jHl{ZcxBdbN?Z$9BX^G7 zi8VAJBhd%7AH)0Ve!RCm(ZF?E9!u{J@=KqLVbkw-^iF?`eVnkLao!fWiFCenJxP=@ zrH@dN%a!bBrb2ySGfy9d02VT<0F+ z^(DIezjyzQp&t?PO1Fg(0adz*h?kxXvsnpk-DF?VRmf z0TBYL9I9`q3)1@c)C}3|p|8yytH}5mNOJi9*jFIEo@U30EUD*PyS}|ENMta=g_8g5 z>=(2fZlaw@p`I~B5MeTQ46NE08^h(10GCJo4YH8T>x|jWWbCkOHCEDWPF9xlSEHRV z9Zu5&M^)J9(Ze`3>+1Ro@NSxYw~yh?{YggZdO+drmkW9rU5BeC>z}gO&nSoOo!_)> zyQBX57q)BpuFq!gN+DQDaczYQ0?+PogJr+hbv`|2DHElCE_}Hh6$#@8Xb*WQdwbn2 zn?KD;A^vP`*6to@UvKZT+$1DB$w? zu`ynf>ULzQwousgUAUT9Up&Hf>nt^Dst_}$yG@&C5Bx9!SPpI`5+edrE zEc)r^atGX+gaEr|xt^%noaT-imY&~EBO^D{E zU}E|M9Y65EDkLQBk8V&W9kL~xst0sh3& zghQ)sYlzpt<3Ae{PK#5!>!S%?yFTg zMh=q!{j(c}S~0XMIO z7FdHEGoDWSV};Prp_rVkY?R9%QnExT)Vbx)6RKZm$QwCA#pt-lCu2&d-+?>__{{8y|GBW5#&vrM-k_a^5 z!T26UNav;ZRYHv$KBL<8M*1ZpNj@7D6%{;<1Q%6$n(1iP1O)c67Iac>L=WG1&d6BHAX6+BLkWEX={0J@QmA`)>=o3t&xZ|Z3 zFgj}R@u%J?Q7ZuP!yIsUVAzwP=Z}e};%CS@{gLK5tu4!2bi#i67``gU>Z|E0QXa>z z5@{rhiM|lrIiGzGTUc0_q%Jq7!HhJ{hk4AlsdoAYUYv=w${Jd&IN7+*@rOjM6|oNulBRrJe+ce8lqg_MfkLXOf_%~^hMaChJW zoqCz61N$M4esCXRO+OrE4Y3#H37mH1hA?zcSyME>EI+1DaDH>v)8~ z4%*e;+@KF$SX><7L#GnUw5`Op)eg!18Im5}t`9MR*B4031A&H?^frj}Ozu<3Zn4oAV!2FD}5r#=j?J_mfh3~dZ# z5S22*32HIDIS5UDv$)QY){L~`p?$h+Mco~?gLPpB?)WdBfv=v>Dx~(SK9BsssMNx^ zOb6lz6H)KVcF_F29BTOAy?}r8fARlMWy2~#vYfG=9z9-w8QJ2WJ(Q0^#J0Y149~Vj zRj-x4ALw~KPTxqC}K`(x*V z4Mse733t45E;NGeIYg4>bbr8UrFeaVe3{yR*Y`&H!!4PcSsKgD%|(hZlki1`yOCFu z#V$TblS)I&8tuICT+Pp)tFpix}DjU{*I^)qFOsr+jdGm_*#FL*_S^M8#W z#tQeZ|0fddwR8x;@=~-B@QzS#A#oF~gr{NuA1drlR#OMieAm?Q>5?E_adBgSxIrOQ zM(Q8sMEyh12_#9_R>XPA7fDdkMYUVc5d5ioJRBxx@54v&&zS2PN}I$z1WVVjyjgZ` zE}AcwA}z%`om-Qe5nM~oIw*pcxD3PvT1|I)^XcJ%R^#e@9C_~0$r3F9QFI}ZK zp||_{W4xf;j{Bsf7i+r<(0J==T3lbRb|3#WUE|7JqMdv7H9np+PeV!y{U#E|-G7!! zr0w6JmM$S4&Bq|-9{R3pVIfU3<8em6R}S6#%L>^^J|GrJ?aC6T`_2ly^TfB|9A*9YtI4z%D+95mKhZ+H@ZA z^}8ni^L;r#=XbukfaG>Wg`NKi;^JpA*K`IsZ=54 z+81r)uxr=HUh0W1@|Y|=?C&S$Fh4$NBR8r!oB&^=&`Ob($HCEzXX-sn|GlZtgistf z&5aeJ>@Ag<_cz)L&bNik)H!Vp(I|-W@7#(QOt)KV3Brr#@`$mONFNwA>P~6dn5wPu zs`FfbD!9OW-bXI@&y%_K4~oo#`iGHy^7kF`Fzl(VMEL z68)Scgt<90Q>DU~<9^B>S-N?)Me#7e#KaCLS-(uMHSStGx4^`086i_bi0v%`#b=;8 zj8bNOq-5=Ut8SFhY+0^jadxvO@;(s8+BzaKWfRg&3s2lE=r=b@Ehd&buc~5u0d~8r zr>Oroh_RY!Bie|1!3T?9wa~p{W%b^z8{7|Qb)$)xkXM@EJwJMh_f;AS^OmH^|Ly%$FE+-zz17w2|Ck@TbICq{5Op*-+I zC;K6Lw4bKNf3ZIZwH`5tRcl)tj1%6Rc59UNB=AXM<7_#fq(>P?LK9XL$TrJS+GEQ% zyG0%c;2ZW-gW*}(vDC-sX1e?K<=Kgg3y5iOFjb38ar0Ii;5RI(JD)>iZ{D8A64-~( z+@*ZYJD4O%8J9PN6%yk?B~eiv4ju(m)t`cR09<{HWy+O!trm@bfy0@Uu2MuVs?=?) zZ)R4t3uqd5cL|(M;(6q-7Wn^@8w9vOt4{6pzW22l_b`36` zM@Iv2A?s`B_(Nkla0>TpfxER0uv<#qn;FBYDeJH|A>3GBA9Khcjfx8uqT#Td;&j@K zTUmXx?(^lN*(f-1>k=GicGD#-E=hNEuxT#ExuhgD`^yTMOJu;?$(eBYq zqWf<9)?zOsJw01|yn6Lh(J$35dz5VRWmX7ooyLzS0_RMw`^GU&&DgSXHzV5SEhc_~ zeVqn`Oa?|Lt7`>-E$RWkm`0h|s3p|C#W;aDa;3Q{1u`)#BB}jy9lz2g+rAL)jV~oC z$bi-CUEia_H$DCir4eas-Td*$q8&qR0h3n`8ow0Z&7_~5|<$te0Wa70sIC<_U}LTZw~TIQ?B zmdfno-RpG{p+e0X79Ami#%;5%3bTllFG+ZpgVz{Xe=jo?HppjF+rVI~{#3bST`s68$U&Y16-ytRC!+rMpVkJwI| zkd-lA?vb~lJ~~Vv(vDGhIxjEI=<`L3GNfrfyzEvFwCrmeEG(2r52X)e-rvn)mAhLq zy<%iz!;FFgvu&^^5LD9k$p%1cMu@_GWx(L&)#V{3Ci3N_V)>3*2*5duut9B12AZU> z)Tb6i9;~HJ_=GKfNkNMYq-4ygfib%$lJqb z=!2jhTU3(@;slLsQ>PatVh)r1+^4_+15KB3EL$p$S@sa`W8fw5YckNN6zz zc^RVKAQjc$4PBJf6d5n!J!avOqjox?AA4fH%uRGhU>WpN#n7Knv zfSvtDx^90=fc%xEac^v$N7Gmj2dJ!d1D|Fo=6q-rVvnzBVtj}?9Pqv` zg>On+XkCbL~=fjAtS@a-|j3hB$wlLm43iRTy>C9_R6J`-yV ze-_2DJho`LMr|R3(vWxlA)OVbf`Z};qn-qd{%RLMq$)ceCO7#P6&0mEc}laeUSX#c zVb$Tjmpg$V5=PDAjkS!+Y6T%R37hTTh+GvbL?uO7drn8jaaAi$Bxar|>WR@pF6URI zB$?~l@&<6wL3*?+5Z)oqgeN82j7% zZy^j$RG@VHH>Apge4JUXWcI0OWrZsz4-Z{L4$vajIPx_s-1|p+uio6^^ur>quo-l{ zjr6C^dUq&WDOV-LYxlKY2dF-uz)*1H2jS$K4<6_5AJTOb{Mp)CURITpdug+$oTvUq z?*R5>>(zD7)n9G6bm+k(f#O^E`Pn$09dK?q7(Ow7E`1asG2a!bD!h@BvfOh8NrM$# zOt%(8MS^n3f6Q`M?MKr05^_5=H#ZlDe9@}aZQ(0R&mjyZgnOI0m6d?){xYm?yC>(f ze#nC4*COWO$-fBKW0)cEiH+PmezUjESw&gd7PqC)6t!* zERoaFb^s$U7%U2<7O7ywg(2S1{-UV8y?+AVX(B4pxx=3*HaWMjA$??2{x(55_Z}+xM2Q)($QMW+eMbRd@GFf#cd4$f zcC+8wSY3s|0!89WOn&hNm-c)cq;(~ zSDT2*?A;eEgW&4Un0#J$Sqc*>sz;Bu10Lwzx-q*lh7Ghnoz=_|vx5-eA+kPyLASTA zb|I2hRYf&SC9P;z&1N#k<2u9%{_Z~wHB>UIJoIHDn`5bBR(Uc2xF6|^Vw7KC#j>g} zSQ9TvDufF$eA0msagokmVf;Xur1BCgO6PlqfE_9ep4gwH-ak-*`0ndw{cn2Jp~)%Eu>Zc zYXSL(`L-`Iahwj#pZX#AV(4SWAr}IjhMGE#Z;8*;?Pw*>>v7zWy1LdIW~b@1hXE!2 znfTIa8R@0wgo4^GZfA0PZeUzrk-c_51?&7)CHo&;KnpidmHn5M(}k!+xhjvY@0rx; z5Yq>W6OYrCspe*9DlwxBL2)T5i7;?%D^1g4_V*4n3f*_6T*z-7 z4~qEFY0|SxSodx`pkbg?^Dp>TMK5h{DYImz4Zo&gPcc72?yqGHgfD~a;rKkMAc^>(W{ zpg&cV{&WE!l|wEKEG#=aJNri;o)Bf~=@ANJfjNqX-k>V%dx|)4IPoETsP}T_Y7D7H zL}|k^klW+Do$3bv)v$^dA?G_Jp6AqS>*GZ@%*mg|Vy&umq|$POxa^h&D4Ma*@Z?H< zXccATPF+PmV{WuFeMk)nb zDaO7Luddk+uthqJchb(x#V|Dm{NG|`A|7l!s$IxE?gNDmGJiqc!+a|9zul%Ic9{u4Ohz8OYAd!68TE>RjB4e2)WE>QQ(9^! z=fTCgtX_KnxLwY4R7JqQx1t@YgB0*ITvt*tWcWkuY;>gDBG&Y4OO zoTg)LG+^eXzE3nLB9yG0I!hoIq?k7nC*b9{Q8}!5?6%co<78(<^f8vB;Lhz^kivtg zcHrZ?C=Cf=M0svGH6$?1>#|$y2uQfSh>ohK4kjg6Z&L|wVsjVWMVa*RF=Ii>lt^dq z5m9ko8@X^fd}|KVk!j}(QvNy}es`lC=Tskwyf;O6h9f%hA$i#M#(Q;-GS^|+l6t1D zX@U7-n{6|4q*Yc^o#`SSsW?o!8w|W%rVq& z*Z*~O*!mj7AGfT$iY7g0*{>yZB_)^g{k_U}S%zCfKkp-D&0D9Vy=#DO%IxY~hs;`H z9yJ{_;{t;DN~~r!W2Qz+euY8?j3hS1du*m%?S)oA=+NHrIW|>Dzd*2Zs@(5bzmIsh zxR(c`i6D|cI>OQ=x&>J?n|WX@8O-Qk5E2n_DKgY)Zx7gyfHNLMG_ncYGCHX-_^Qgv zjkQWWgH4^^35asMqT_;sfI^h!fkQ|LOgt9|%Cv7cv)Za>C8}_#a3{N(I(cC)*WZw> zNIPJe*>BTAFl`J$)I!XZl?irEduaf#d4+82C>nS_0HgN|+JE>0&)=3qPQdLXc6N)2 zeZUpE zj!*Kyz*r>6izOp7BSYU%zj}Y}Ie(%PBqN(ft`ThPo4iT+ zPP$`9O=3s|4uH{x!wY;1LO1K7<^b$AN1hI}^p zmdNl(92iV4EU*OM)-1Fbubc%&DLrF>oS7n&C=ArUp>R7`h%&UPsD5FjhaoGyN4>ps z`lHOG^2h$>M(qnD*_!QhI?2dOAscGw#__9G>x0ina&pV*4>ZI>AlqMc?}E5iETJPub?S>6w;9nv>>>3dWU+b#AAaY zYGRo;-$uLZ`%a@a+@=&&(?-q}!uioc^tuMKzLUo(;w!$$;P}yn^&)5ZwwD;1-ap-= zAsZ|kbjP{rJ;O)oAST)T~7^y#Ie(_W| zJ5A1Sb;gA?xb!Ofq(Kd!X%`OHZN;R=u&MYn3pXnRbY2OV^g&g2{g47v!N328lyw9> z;eQ|Au2}!dCE!1^j^MMiqK7z_|L2KWldwGe=ZUL)aCEI7ngkiIBQ;?@avPG@youm@ z5&9-hjkD`q-HJ^IYGI;a(bqVrV1u2CYE^SUH{C+!4bQoLk$?OsSp{So3L*cBBEDR@ zb=Z5u1Fy|jN2NBhORSpKfY@>gCGzrhrl)lnu ziB_a_u(y9sf9(cki+-TgmUKu~@1a6^eUPl`|L7Vl^x^VjYs|m1n3bLVFMZ`SL0Vc- zlOn6;OgZ;IhldV;jcX7~>NmA}N+?QqmC%%A*v91?@RAQVH8659lN#m;nB)?Nqxh)r z-yOR*j~ZLR1sLreXDL#JJ7(pU$~Z5DTjsAW&d`$b3xEBB>3-I#2Bsc2W?RkG_wlhY zMTHpO^HO%yiib|0>H3X}6(@D+z6s@L(PHJ~(_SA)SWc1nlW*Y>5zHm}7MfKMxre10 zv`FuEv^tsTq)om>sWuKMk%jQFOs6{byh*Jpyf#)!`GD}Yg>1HnJ97YMAI%z8kB@Z8 z`X~ep%vafp%3=OQxzKJrS{tlW$n1gST!7euJ0bi1;w*h@Fsaw+{%bUCHY>ng7Zn#P z>Pc8z-`&_u`}=CIYv^4@H^*hVGma7jM_eh;;yMj%RWt2T_{vAe#~Z{kEfVsXn&&F# zF>2Q~^D?k;5!7Be&Vq<;bqHy=H87`mo~+U>@+wOO=}&DxO6-qAm@w^(d)6Vn3$%Ru z>0`=V%G=vrzx7$}+;Pi!5~PBaRk?coH6JM5>HGSs%uK+!@26&!69B!Rv$C!qj84Y@ zr>g5(DnrDqt1l|r3Lyt{>AkKS-4v3ZudCuacoi+w%b;rLmaTjKgAxmc2JpIABvWEL z3V}9#n5T2Ovcp*Hc($HUqVHgbkPGAtPX{a5Z;k9Nb`#^hn4ILPzS>+L)$$6sIHu0g zT^Z2cMMDL1pV=rT=24;JZLh97O-;H#vLtvmldFtQLR?XhR&RJh!|Y#!pz;B3W{fPB zkKD7+_71`ZjhTM@c&69(`O5QhlqQ>IpP7pyz!FkjN9+z_ zBFz21{>iYn65zY&X_3Sq!?|#K<*kh^j0-Bm)t12oW>IqTqqM14P zCM7plBlnZ?zEjv@cYC{`ovVwBzdsuz14E_lfvtovW~62OV#bh<>3UoX~$pnG}9BoR4*DEr``Pb)*?66V7UwCc1G1IlQ=Phv7$ z#U&+c>`$H;SlikIkFvM3*KGWWE-)E!JnmXeH?~dsvkc0!nqnyZILUE!b@uc1 zU+-T#-qEx5^(96q=7I;+^K_iIG=C1;vSxSpd0>ECe4m(=75PLKh!t{eR6zbYu6E;;yMLJ;Y%S8g)^=DWfcSG` ziuwE&m>fha`xata&Bz2*IYu;6tTR+u&$@%kI-MZoD~QuhBQddJGRDI~v9qmXYBb8o z{4q(lxA)~~BTi6;9b$mWozZCWBAYs1nX2?5$IecA>L*MYc42EdXf-OJ-h^*Y#G!FB zym->&&9@C>D9ClIDAjoHZk@eL!s!@f$l*)ug`oAff`YXsCatE-h_66R3nv>WRs-rK zX>f#N@QyW$ww*^|cjNiRIb?;vNBOyQgQC;|dj;C#5!VKMLhggHz!WQKClU`c&(IjM zGT7kb!d<++vA$BylJA&~0!@R6jsklvMQ&SapOeTNtVjetH&^q-PCkJw z79^nPitjhm6>!zgQI(uzua_d}VPsZ&j#1T16XFQx?F=i<#iSH_lMdCjeRdXE?~6M*dx>*2o?zfvgr>K z`Ph*4%^U8#y8jxL7?F4KX=G?F9hY7Eb-YY&$lfY}`s)ds3?;!AKp(93s(WATijzse zv-rAoTk(cc%XenkfsZB}*u=z>(|l)4egb^+iSFE$ns-|78!z8Sd^1flTcSTJq4=L( zfTiW;rc_B5kqI_IQ!0n-7q>uNVb+WDuBhcC7IWvSH&5ICE-sdHR`pT#S*FCZ*e~Bz zr*p&yPk5($({Bkptj04Qf-#(!sHTPEW7g#PxQkpJE&2>) zxBcTSsQ7%NU@6fpfVBMMjc}Z801BqKw0-s*P<<2O7`G5M^tXK2n9ZJ>gJXy(`Q~KL zruM}q9etMk$>NeoIyzn%P7-pxw*?X&Q2x+&R55bma{M}lh7s7NTeV6G4j>W8%v6bN zXSx#s0T_8Fdss0^q7Ok8(21N%LilP_Mp_(H=*zi;n_0(SZ+07Q~01-@o7S zcoXzX$p8EUKxdOOg_Y4p0B?*JK8B_3_91z-TdxfJBx8_gT5$Tyn~3wwP$;ivpWZR5 zIW=Shf5Qkyz$>8@rHvbmvIVhz5=>%w%QK$ZU~qs#x^z2SzF3+V#+g#vnf!I^?D2%{ zxQ4fe(1SWHLLwWis|&2sl4(EhT0BC0%=DvX`<>nJy8nHX7?x5=D0n%Jn9~$=Wn@YV zX{inS3-!7HvnowN!sDnvJta#@>KGors?7lbWvA<2=n@TUEO+TI|>>)1fz#p_}L&J0_vw z_Dt9Os5P?$$QSW6->LDTN5g6_P7zWP7V&KRek1WfDDTk!p%U&47|I) zJe~U*TRU5Eb#qo{eWsx_W?73Hk?3S?&5B{&XR()5{|J@3ulNMYX0I0vI^5n)p=8!O zE)iw3GBAL~bIkYfm%;iT?2HBFxhkerp~W*RrRRIS2vQwE>W8jwXK$jYy1zc|e%>vvt-I zSsYXp1Reu`m27PxFkC!sNH;B`voUcI@J9arzOwGFs0fT&A}8NXldID++j+UW5!_d@ zuC5X~Z~FZ()*yK+F`j?$d(W3;oo`agj(>j>&Wj_f=kZe^q%hIZLn9)fN-5Hgj(V#u zPg_!IXxckEYBl$<9eVrgutx?86JQRq!{1x}0dcBr#Z=V}CYEgAQ^k^;BYQ|EwXZtN zpplMcr(Ga6UvxX()7e9PB7m@U2$ylD@RdP`Mo+8uG@EH2U#2opVoZ`mD-^*mNOKnX% z&%Y+!ZJ7!&9PFR0REp)$@;Ym(AZMavt0&0$G!of(Yw=EURqWXXDY}!&;!I}1f@!vp zQdO&a_sUSw>DiDT_Bi!GbWtJB;gmw>VYdm zE2%DfA3l5_$O;C;2qXAd%5dqlJQgA-rDJ{u0HA}sJHG1A*%pueay_`+zePofIaO0h zeSd}*MA&r3NF^I*YNfKkvqfze#eg_==STQ#^w*3^H_7>ySt33gj|Xm$%~ZQc7K*>h z>yD&<;(D+SK_2#Ve|I1X*;GWKC$?-KahaVhJc|{B7#$rgw!U*mjFyRqYI1tIp?5SS z`#pS@Vj?06H$ywp{M4$bFOnVt!&pK}O7)j{{}}Up`orv&P!kLhp$B>FspJMzCe!|j zeJY=m2^Z(qb!#7)mT*@s57KD7e$C9I>uZCKreIH;i0Wn7v9Fvr@tKTmq-D4yMu|SG zodiQzh{bPmf|SSpVZbFDLwkBBJ_NL^v~r#`$3fqzIQzwZ(@Qyn>1r5x$i_%Mx^KTS zbpR8vZ~}7jnIbVpi8Nc7_2{4_n?l@6s(G<7mDp0lP5)oWH&FFXPEOnGS4qyC%tq!U z26|HXEZ4<#e+2TZIAukH!@KE_jeyxbJfb-;n~0Pb)@WLA?Y%>tYylsj42IjUDTTyo zkCib9mYyo}!a`xDHf$r{Hiqy)X>6P#v;JxkA>Ha0pY2+#+d-yE^hz5 z=B)MIFw0aDd6nlHRqG4d8gj4GfJ;RHVVuIuV3AR^{$+4?G~Xmpr+Ry>+Ir&e-8-`L z$?8uzD_k2bsPkCrxf-v+I;QTZ#`;qzC7 zzR3Ok<~h;Q8wy?lW_&V>+l#3|>|gY%-vIX1ACYr?WCN*gT^l{lz5 z4kBy$+=vfEkPHG0RBDejh&*ehB4}%wD%6{tT1r*%{29}WFNZxk)%2m{Xq2zFD~`|e zJng)?x-0e|#%J$$zi{h$bzSHeaW7WjUmW)dZ)643?lv8*INCR!loJjnPE;S5O@?O& z*H|{GS1$27bl86rCn;JISbzR(X-=1>d9QV@?6TIdWZ^wb@>mQ8iocdV4j=lH^*C4g zQZxI<>uT$1c1cARZL0~UM=Z2I+*Egm^&MqUdw#IAexnIBGbPh1*`3EyDPSVlSD=*5 zG|XK1Ucko2rU;{m7e-y*3pLpkx?l?5?{X1g41CrB6wKe3mv=}1A9XC%$SZs0wi!LZi zy0KaWAvZ3}`Ei5kBEGAM+oR6?u+W0BOD$Cc?>#AGb)JM*t6fON;#yi-6ckf-KLLVt zOYG&#mp~-o zryz)6!uly1P8PITNy6vOY5V7;mp~oqWEmDQ^AlRy)u3L1EBB3wZjDl=JaWW?bVpJi z5(Lb1vM>xw-q)lQi7`YiEi5o&{9T&y4ngy-dR33#H`6c|s+;SFL3J9DtW7@oIvlV% z!>sv3Z->?#B8yDED+ex9E7PeBDMyK?EpFaCcy*G@N-D5p$!O5I$rX9eHqytX1_FeB zqb#x8Co!kCwI=Xrym=$jX;pVpHgmYa#&N<~B;ng$%5LK3R#uY!>PZPv$9raJ9pN+e zg^#}gjuIOVvW|_R>bOjk*w^YNOw4txHA(e(ZmUg?g;(eDuVlUPTs8Pr5Qv8@nUVCGmkXyQE-oZx z%$!*I(fmtWzDl=OT^`(+Qrh>;dsNq;J;phE57XEq#_4mzr%#{6+Je`Jh)!1oE*oA7 zgH%|vp7UEU2s8xNqK!`XH!qH4`IFhD-o1P0D1+%?bJE%93o^3ws4kCWw=$-5`HIu| zh#?_s>(K{)1YdF#u4Fjzag4-{<(FA-7V23{{3zxTWGneVM1**^r(ope=|(fjZajXA zkmpWiNz_GC|NG^wo>qAnG|EyNv8Nm`^gy+g*8736W3B*dek~wK2_v zh@VbyUUD(==Au8UL_Q*P_xPxsM>x?AL|f2XZSdFw@i8DI#0Y8g-su-xdJ2mA839(- zaAw4I^5k1I{O4n(7O@2d1tDb|cG}c5^!G3}M32;a6GO`4qL7jP$eh<+l|e0YdU_lg z84(^8^`ehtU~sV1aZJmsspU%3SAH$ zGtv>N$J3C202hz;P(cVWnkb=TpjjD97LH}NfSIzf>!%C;0F=Lf^{@7{%|LDj)1m2P zzT2rN-joWOnhtzVN&ABh)0A_&dTmP?x+Cl=--1P)>5%HB4;aYuo1Vddtz38(WzU)9D_PW@J8Z?qYK|%SK zTz=rkK#PR&)BR+Zy`e!pWiU^z$nU)$0qEUAIi|M{c20l+y1zC$K~#V7KfM6*zmL_4 zO$V9-UKn;!(=a$XIbGQzxE+s=aOqS$&-=xIrUv9AkTk)G%9*hEgiLW(QGc` zKOh)y*QV#ReYQ3|DUEv16aN_37m-M_1qJ5j(z%62yZmHxCA3$uW8Cgz-m%NPImK5(sZ7U4*>xe3 zr)<-+d;JuoKLj^O`eL?8s!inydb4E?1MiBckW<%)3O~3Wc6jr_q{`bzCKEg0Bl?)2 zudqn-30`2n3_QV3&ig(g`hU^PZ*qu}8~YeA#c2tkGedf(b(qtG;xd7jn_mjT6$lj@6+fy;|0#Kl2fYLpKozf%qOMJbTx9AifDLz-^#4Hu;ANLtBD?Y^`MJkr}a6O7<+f&OhDC+u~-s$y2 zyDsv*05QLL^B1c!kE48q)+5vZbRTU3{d1PfD{X0=K85x;ULNw?Xc^(O&b{C&kZxb4nz47_u4$V?NbhfUnxQR|{f2X#f_MZQ0GcF+Wet zW-T{a`WU#aAbCGIDARsEIJ@IqtT$78F@>1g+qE^3h88XKft6E9nH~jhdM@GrEz)px zbrs#;m`RsZ0s4lT8rZp5-H(5FbrJ7JmX*n>9+7cXa1~G0YTl7$EP!d0V?n)l{rj7@ zPfqUK_5DyiHTCtYKPNVRP)kjto5G?4x2B6r^l-a8rEryFs>V^Vm5t4}hIa(K#>T<& zZxj@Sw=h3_&QTg3VDSjuU&9|y_GnvOr9Gsdo7L%ZG&bf4R#$kV)?lgqMy=<|v2eQt z#Y6n)AOlJR7B%rne_QEv9fuL~b|Y~=@iO?0(>l+g@AhzJ0u^27LqCI z6fI61in!Ui`vte-vf?}1TeQd$OaQrXTT!q%2wEn`8wu+umEEdsR|(6CG%3=mIqh@J zxgp^%5rWWs_7H=VEU|eH0iU?$-rigcq5rkAFurcl18S{cepK`ovmnJb4LMX$<5(!(%-!N*PYEPPJw~>vWa&Y8M!VH zWqAgt2T&m6;F8wt9~`9PjB$rb#Ai!2Ho7w1_RC2?F4ykEXBTOz`)SjNO@iduug!0& z(0}yUp75O%>8&wQ$}`eNW}JB3aII9ftYswcg@u)pzrjvpHcwJguNwJZ$j+rFUj4iPBwMK$Pl+baa<*j80La$25C3l~GrkA#F+RsmQCI@0YAqzs#cKOk>}q z+H{1k*v}*|i@c^Lt(b~!(_0j~N;e9z4jd81Ad#}rbB&samK9(NA|==9S}x2lJ9E8X z)9{j>!}Kznjp(M{AE~$X_~!<*ortQVB;|!4YIf9A%F%I5o)1MZvJ51bj{l^g_via~{O+G@cu<9+ZA6Sl(lAJL(c{LVp;1?Gb zDJvq7ngZBzeVc-=T@mwgim$Y^pd#}9Z#=yJT1H9k3j5|__C-bSw55zAIwa3N*4KY{ zt;Ixh$_@`%)d7PUDJylDFQ>$6V#NOKnIl2|DwUz$aD_P}|8oZuUH|gHZq2Lr6t_P5 zy=B&a2v~tS`@7aGpT~F8VzWS+K?}?o75puzs;0tU6H)knm9l51jL*9}``zD?Zn6#d zN`AereInug9+Gq!y+hTi)VO$1or~nC_QIXk8nAo<>n5RAdpn;oGv8nxE9hcbMl)CV zz?;?HTLqR82dE2K*5y@Nox0r=b7?VIn9PF6J^<6;HB$~07uBr8lVzrR8S^WW1ZVsX z9}dq<1HHj8(K*?OMdf3v1Q4Les%NH){l*Yj-^9@z!$HRzo#0EmKXifFO1R6T_}Lr8 z239k0aWV>v^v`#Q4mk+RbOsyVM1fu`EK*I_9ebn>1KapI>cN=}b`8|&fyJ-OR*AQT zsevD3=r+$$ zWY5YTN43kqI?bAMYU1CmX(?S+56p0A$leYT@Z#7_Ufn;8UU-+-xVA>Pv|MCJXDuRW z*G5p_k-Y^t5e&RskW35I#JB*H|9+lGWa-aWkC1ohyx#{2zp5RE=2%T0PrDVEnEv^F zw3DNc{NyLG0bj{n`!-(~3Gg7AJ@CO!(5QG{tyM5>+@*}ItpFLdsDne(h$ATfl)Fx4 zN6?K~ik!d!eE1-nhbKzOa|U_LWi^u;o=Kr~S!G`WCZ5cZ+3Dyok^+|9f{L@55PL6h z9!j2VGg}t7Ys0xnqISC<2-qBMQ6(fMT6-$+w?m&pMEA3K=q!OYn%nB9c?vx+@A{%w zemv^!Zz@$yl?3kHj|Y>v!+{mX>YKJ;0r{$*F8yH_;svh}G=Fwvct!EE+zB>I!Fp#$thkR@ z{Zm^|pIBcV)ek3LnK)QxWTNQa1{ofFE^RI(MA*&L%PZejgW~k7ptI^*^=oayz*5{U zPSsB)rJ_gJz$|gDDm3)+t+qzN6sTiKHd@33tY$k~E6Uf&O4^Nh!vHW!pipRm)4udQ z#Rc0*AamSsGB!ptq+(MCx0?v9v`wtK-Waf1T>()rCY!#S)4mv)Jo}@`rmb<--<0Vh zM;>f&;|*`9dBnQkVR0{GH@-?#mnSE925&$${gcd9x`92L%>!|%sIG}_w+`g~6E|iF z354zJq*7Rn?FrbIC<2UTK?D9f>9}c1%up*~3|PaHvif}38le_v%Z7Ryt(&Us+W@>p z0VFCq^%}m|Oo{dTyoSz0>ytCYBMXB0M}P_78n#?RHzq!H>QN11$&sUPVSQZ)L|%ui zSx^m_G38v^(A#=fb_$~WpL6%uDS*D<A-3b>UfI=#rY($&mDjyDT ze4m!w!C7w-Z6v)BaBkHK4pi4s}uNQ?G^{_F+7S;4pe6k z(k#lYil?aD=IHVjW4jD@rxp&&oqQbqYgAaFovNwo;UlxZz_Ke&unV+(hM%&z+z*q3 zyKVs+pVSIHQnS6+%=eVorH~D1j8Q}uj5WTSM>EaYrEE3+ofo%y187+j`TsG}z|jS}*Yibb_C?FziYnH%@qfvqR7!1*Pzf3pF`J(% zGF??uo~U5BvkC!rd}$9N$;HJ*C*Z|h)Z`^tYuNPM%6!mlIAv?LM5;*nr7A7I&BH9^ zi4@_tyP(Jm7G9nlQVY_`PBC}P!u^;e^WI_HIKmBCq2s)5O^xCSr7)*mP|O=22ndcO zdB`dVXQ8lR%J3sQpH?Zu36*EL7Yflo2_{N6_ke`CJ8UXBBCg?POjh}RT!2<>-2&kM zz6?>P*4+L5C&{WSHKGv-FKVCd2tE~f`&NP#C`DQN=n71x++CZ6L~B4f<6Ih{D07L7h#j7Web11kfmyL}yHO;NT% zQ=qUNcP(IQ`vw8hf@g6Dh`I)7EspPG5>x#^o}J&ewz7I`KjTok1e&bDK|$Jn+ho(X zrCe46UMsyW88bIC`*ATD4aibu^5xEB)rW&3Uf9y8sQ%r*S{g*aK^({fz8hm>HT3i7 zsYyz*K|2ka)@>x&!m8v++rEAKpj~u!)H1>)Oy1-vum?o1_0KSOHKTB6`t<#2*@Awt z(>*Ot6m+h7&V7#%etP@N;PvZDhl_BC*!fW%4~9L*6@YOKET8D zX3tYbGDyjC%^Fq(bvSdf|2FT?JF=aff$tfHVWrZ(e_w3hP~}QWK)SbMH>>`y7BK4C z)!CaqNk*s;%Pq!z(_G_~)(SaV%Hy(ScelKC>O4Yty5_SCTO$aJbDtDH)Nf3PvosNvwc4UKUXTw-IMXhEuH{#>t%Ay_$7vDnT>n3>n zg?b)PnlOEtoCH+Gv2unW?v3#>+s!=`my}NL3Nd@ja^EAf(9o6C)V-j@#ColQiK7Fr zsUI6hZlDsK0nDTn=J7d`K!1NU;R5UtJ-&8~8-Ry!mz;c@(6qm;O;X5vlP-MrmKJrBVa_p)~{Uvv&ogjV+Ggj{ZISWJ;r$(k?Tr;B}oKBK+W zAMeC|H?*+s)xgU@>0GS>jQBnCM|AF^KI8|f=1t4WVULx2y=^7hVcFApoUikxl5d{+ zgiT&NnYtcmG%>hjSZrv05F0|X!3*S`a>||b7$PhOH4A!l%G|BU+to6hE==tsMphZC zRZG%C%K@SNXj71%d98ydo7*$QRrR zDBj2(iaFq3cw;H$qR$5xoU~206Eb`4S?yeMDxnwPvf)JJ=Tp$J^W}W=PH`?h=V(IjB6=I{tsoss$cVQwcBni*B1Ye}&-V{PaDJ5@K zuruGEXUaeXm}ltJtzU~IMCX)grd0?Cj>az-Amm{1Z zhkC#9PE`a6&h7GgvELR=AFuTk4LnnA`WX11oe+{_X=!Pnry)z?I@I>plRLmyqWMo2 z4ndpXDjOf4FpIIYot>7QotxfS0zibhvCB~i=!NSoQl2e?HzjI;l$OgK1- z-x|Zae&Lmr5|fe0G0)c=RYW*4i%DK^w~39{Mp>kjNoWE4hmajjmInktk3d7`??PMa zmjC#Cjl1Dg)$LIE3?!0bDn52HmO}u{>taJSlQadnD}lDF12fQi?bhL1gzLJLK*?wC zP6_d)B~w<4HKSmL2!%V}Wm3GXwE7tvjE&u>D3$^F96|T@ND0zdw>&g*%gqyu+HtD& zY3nkrg1CxK*LTn4=cxnLkblQO7ZA~59{LW1kG>=(>c4*7`E`N8q+NV8T`p&Hy2Uel zMR+_eF!1Nd>o`*1Ad@~U6|a6>%}V?n%5?&PQ=qw;sVyl8+GeOaKT8PiRsxE$!&a0E zGyrwTQ3pgw_v7IuAtB=XQ}#_zEIPDVr0$j)jH0HdS?nxf&pEkuXV$?)Zo&D;Y@-aFzT>*BWD#^l2U$`A=C{ z5-j5&{{=Yw7@#}wvdXh_ za|b%6;=cq3PXW!_aulg-Aj#9_bgcr2VeONP&`#jps;b%u1eKILP5yUbX$eox?`M*c z;V!65tFeEPAqJPSAN|FW)MV$QqFrVR`uFeWIjIs&*c8e0wa*XQZ{XpDvl<8ggzCF; zkvO8C;h%4NkS1Q!&KXLGKR9`lX_-4*`8Xlovq9(KQ;7Zewr7*y=lOZxb}4>KV4X(S zWDx(Ay8nOYmUgySz)@7Sa|_`QakTa!h1K{;#3d`h5q5mlA81Lfi~?G~?AY8RzQy>* z{kV&1KbnPBJ0^y`Stc-|Fj2@;d?qwT5zN(99@sr1I1nPAMulGHI3vB*0F%Tls?=e~ znO^AF2ehqjDrKUQBz>d(zTaJoW>r#*qz3js|6PT&v*igdXG9x!Db^^%#=_*+ktLAV zT(+eZ{cZ93byh(^_mG;@Y0GV~igJ4|Z*R4vCvjRcKRo4Fz5tn_!wTo7%eOfOCCN`+ zvr9_02Hj_e*AFP<)=&?`f0&nm91Wf^i7`zkkZ@U*es>vI0`Xgcz0@$0HUeDq`kA4j z^_I9)dNDuYM`qOp1qJdfsw&<8-;;3+2xhstKI%UTF_s3y1T}I9u?z%`pYKUe?0eL( zHyIFLW#NVA3l%G=;RdC1ri@XF5P+SP)ZI(}X#^eRlrpS0>%)3({b-2jUjc!f&+(Eu zm?^dZ_B>r?va-4w515C33yb^(@ve;Od4h`^qX?{j5QL z1NVENQ(1ku^l!!9Dhk@<^bAYSY@+3bh#yC$XE7!k$Qw{~|IAdwN4EC9X(2(`*B05y2~w%V1ZzZhynVFZDrNGx;h zmS)3ta&i`tf(oc~!;11QH=TsuUKZOi`)NG8Z%WPFf)-G2Y2OU2f6-6v5+T#OI-GzP z=B&-7#7PIOHFK&Jhm`zO8$Ui4+C^X84i0VDzi>h&{$u^1LR$obTCAUwv-7uybuz1V zwpv=*4b{S9Z{PwLnrS2DbK~|1KY$wk3|I<4?2TgUXl-Sy7e(rZi@$08IH70ijlr7& z4R#7qa+88@{Coq~x2aRYIx=wx&NnrEVvKd#+E`y{9!yj#mF|6P0hv}1u?!+%zQ25j#TI8)^h6!!Tlx zQN8oAvDN@iNAicO_u>YDf{>5TkAeb9;CPVJ;w;KTn+o~#GK-hDJR@U4)Pz2J^}Wyo z2Qy?PzDmP&mVpQlS(*o*p!AsM#*T6(^d3Q1J9!%1T2RfQ6lU)dJUq+}prpT>gMs^> zmv?tTem+P$Nbn_adFT|<*o)utQRj|6p{)#V>F@nT{Elj)c3sQ^~_%nIK zq>iboh6zwEz4{Sg3Izn~a7TA0fp?8;+Co3KF?aOF^=l*dSMVLm?VB!pj! zq=302{QTiv1pfKi8!jSMbyBBBN_Hv%FY&mcZ)?c*m;Xe#N&~_ALy!(NvLAhGah$uE zi!Uio-=3M8avX?yKn@>{bI`wk_yiB!0<7Q|Ma;s&!jAk5ToxH5Ad<`}qe*Jd zzsJ)(Ev)|gq+@?g;8)!T)O7^`4Gqn|8&ldam@EWn>~x1yK?=`}d2rolk6rNS#>VNi zXL2$N)d+Nb4+qysIYcT&STV55nSQzPisTBN@j1KqBbB0`1K94S`TrZiKla-URB5ln zR_XZtFMNpJfo0ZUpV&s&q(yuEbbo_^i3!ky=_XXU^u!J~1}m-2%*+%_M`8q0{`{~E zudgS-{i|h=C)%v}+z~<5elply;t%=$Nio?w`G<)#PKo}Ka_`O^U{QQUxz?-OC%{z+@%0IoWi-s;pcn6T z%#@Bx(LVL?S2MiL+cPLM5=!9y%7463o##-t7 z)wcJ`Jzr1u_|cspNL%z1$qGRtVhv8bi5jLOre@h+p_*o zO4{1QPYAm^jpX)DvD#xs96XwHXlY|SJVvWmClV`NVO)a9$7|WU@*1X2ZbhmcNi}+u zsm97$IYN;GFD_SAVs5AhWaci6=5kR;r!&ERb84k3G5z~#@(*yKbfIS?T==!#}NvyHpDfIoT#r@}oCYKNV z)#g!3alT?*zot6bw^5^t!wp3h=pJ#hwHN%coLRggN+PzU@%74gX8KC^bR7K>9zBm# zSHD`4(payQ@LWv@&}jqsJpBcVF2O*nAV{M6!NO%ID3kt$t}uvD9K=dra1^V_pR=3eHV3p%9;$HWEDe(^s@|3J6v2 zQ|9pIsl5tlK#P%47X|F;wmO>{)inhni}cogzTZEIDY0J3k=NP(6ZQg=1cyMnpf$2l z21N?{7@0CwZ67jnqwLU3of(Ky=$vdmZZOC}4VQ7+Q5K3FD%@|uqdhbK>-Dn*{D&o8!yV;5M+ z_x#nkg|;*bYANreHxrz5k?H<@vAE*_n=YChUL*05+&VmYL-$<1UAm*Dkx{i;oA3zG zdH&4?c3@0400Zi_rNk87r4e>LU|#rz$EfCL=fzf`NCDDu0gLrH?pgwh7C_+OCayaT z{OMtP+y;Uxr=}fT-G+kDb1|v1=c_J@QC&pvFBx|`b-Tu`M{Igz(+BHC_Lho&h0)sT z#`XPBva++4sm<0Z%2_3}onzrYeET^pIgATwqt`N>kgA)TufF!O04b71KNeh_DE)9z zUDTLaEpv#eNkg}I;7T?W2Z!e_*hq>-0210ZC)m`xu(hK@0HFbcm2V{47D(#3E*ue> z19)@&qY`B~M}nuwonJbDuaomto!i8Q$vv)pdnj+Ph#-7Hv)}`~wk#QX;uf2=JZvYT zbJT&Lg^XQF#E)@6ogU{|b$nhZx7x@x*u-`*GWU6!V!n<8)blj(-waPyRAP6U-|9qp zD>SblHqf6_wCfL`sQ#QTas3+y*u|@L0>@!%=fAoT=&o_{@R)pi{(peETZEQxfE^&x zV=t2mDr|zwFY)v3K{-mEg+Ho8GtVkPtGmA+BCwaeae}9IgQkX2zqX^tS0e&9+)L2r zIdP?y+S^;&YpMA3g4EQAP5%b%-%V=qZa43IsE*M+wBjG4Be5wVpH$C6O&uDP$xhwG z6L(gOTW%u{8{O*6TWP-vw;)lL_oXiJee|v_v^hBqVuN=~dhx5B5HO38#y0mKu&@|k zoXNKjTe6CJr2w-^%!?u|eg`2MvF{#&PPwXKS|4pBYdLm}=-T+~?du2W^V2TZfzIbW z0Z=Cd2T}*T2S_^#^!PSqi`%Q(y#f3`Lhbu*RL0WKtIs_?f#yVW`iKfe(7=02Z^2v? z4dW*@i2_OPzvPHpdq-E_!TE3rl8ehrI>_D?st5mS!NJAJ>qORaT5s1~ec^?Is(i7m HQPBSbq8k~p diff --git a/apps/desktop/artifacts/design/product-surfaces-scope-390.png b/apps/desktop/artifacts/design/product-surfaces-scope-390.png deleted file mode 100644 index 4fe578eb31a19ef90963b05a6b4a7e81c30972d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64628 zcmb@tV{~NE)-Ie*$F}WsY+D^C9ox2TyW^x|+qP}nwp~eXo%4?O`+e^iU;V7HtH$1I z%{8C-U`Hs(Nx;M4z<_{&z)SuX{R0B>BNPPWrwkM*@S7EcEJ+X$BoIkaA!YZ>%PdH3 zGzr|{)NLLrD%m6wb!6CI&)Z%%S5f3Ct88^IrA#=|hL>G0+g>7yg=JK^P=SxzZ`mDl z6CQ580rvFoUrquIlT*{v(^tG7-8YxhrIwaw_FzIt0Ks%psK8x#GD$F@Tc`xGKq7ZA zNfaR@-axVlA}9i(1W_cgI3h_Bs6dIoWXNEBq`wn@mm~i_US5tTbPMuS&;Bn3J(T7rCXB^rh~vib5Pzj)~XZIkT3P3A%>#oC^&#&lCE1$hJAICZ(?Evp@UquerrUlU zIa?kD3tv{o)OHzIlt`S2N2#gk$dcc`(Pk!54Q)?@y@frxn)ro!$d2rZ?ljvP-uOJ7 zEbu_`^>FJZt(H3!wPN$1p6Li?rExjC3`%0138v5OcMK~&Z1%yqTJ z#+SLLV@$I(J;tmy+gyq7^ZcT&2)8V7nD>M!=!b=#`eVRHi9KF{OH>tC?ZFi@+ zuh=z{mM-RpHF!U7EeKO~ipFyC2kS)6w>t@yYX*v=ICNtOue1HQ#>b`l?2I?ye@-N6< zLlbSzq<@!Ca~2zE>FpHK9ZjCZ{8DHtUXE>OH*7C;`=*CmT{qy3Of$9FJDOf~VZU3C zXLk|pdJs`17E`GdWK}$NLUk{iw?`1kqyTO;B{o^fPO92pHh&fX7wI!^FtI#cN1^zL z_T9EN9HQdnPD7$W#EE3=SP&+36^&=)+55{*VC~!+p&%N{)d4XuE*Z<`{JiX}qm6+| z2j5fsU_O7)$B#DiE7G%2*^`pMF#Uq^dWdvZ3a!Jq{L)qJjY9;THKX;^n|uhLOCrm0 z?m6(dvA-i5+!ad5DT8-bTX&q#&I#SeM86xe>K}L$;$#4)-}>u5^W2m zM@!EiLq0rQ0?`#^qdfC`{HcF8DVIFC?e`lBF1F8Aa95)GH(8N!Y5A{%NKNK~rMm~; zqsgZr0qH*t5UwZH-J%^^zF7PEW}qU7*Lmh6m6w?XC*E;(_(Y1k|G=+u-hEencOxF_ zw!7mP?5g98j&2~1UAkB2x>Ahc;YRS-`+ylH)a5Fc_6jT(8C}N}9;Jz|vB((C~1P7wEN|o6-0DEj5OXlVYU5=J$l< zLXy|(x%x^Yb|GgjSm1y7>>UGzG&yl``~ayY%C$N+d2DZT3vhvu^n73!-|s{!ij0&+ z7HDEF=4R8TrHHY%e;&syVXTy|BEYZceNN&Oy^&Md8}66J=RPZKB{))%Pd|Z$j*XB` zws>s1Egc=VSXc~D;*^)aELSLT*l7yef{YDIPgG-PleKx3rLSsNv)$%8yt7GxN<18j zVIkD}(BfR8x)o%w%NBvoobB;)`c@)cx#oirN8&%y)+WCfQ6h@BXOFSD%ro~`63P#D zlfN;--2Cxt(H3z0g??t)m{s@hNDZ@E5C8tK*<^`(nQbeGa4Yz*%<7`QO@tWlhB`la zP#6UT1L^T}G^JbXg)g0<^L;Lc?;Jr~&cRG5^UMer{zB_wJ&R)jQx8dgr~c;dm@lq2 zKILmDgx^=xhxF%E3ICqNw6{Z4t2>MR{AR=I=;$khfOhgFo=_81Io_-flmj zdB5JBWM83HR9N`HmLJM?t#p2_!8gA~U!5*}ZG3oMfmZ;pI&Q8$D>Y0vZ@`ypynGN{ zRN=SGLnwM&=CgwLK|a4l`X#Ab82^w-vMJrDqY!HGx6^x z<0`gu%-ePvO|DVUQGX7Mrs=Yh zlH=(c5a!8ucV76jk20-DG@T!EOy-w3dklXyBse~{Ypk|7GCnrd}Cd; zj5`at-eQj?KQlQQ8zVg=;cXB9IXEf^i~FjUKXa&p5FNEGaFtq0X8Qzn#NTnxBGY_K zkRWeQ6nekV%e_yXw|AF<@t#RL&r-kUkyoxQBp9U7wGk)0JKwJj*KkT?Bb-o z{wS!7Mg2@*(;0i?AMfJy;E3Te{(Z_RDsEYC^^)hC`sH-t=#)#m2I}(nK1?KgldHiU zu+($xDfnxjWsc!w6LO&nT5}=>CeLKJTt3YL{#XJO2tTcIOevt zMeZsYH8;D-dLZomg<|}h%UjV71v?!hE;mb*uA8k6wgINcc)-gY38NGVE`S0op@Kv2 zmtr0Pd1O zabj_T`&Kltgw`5wddYt34UbjneJ#1uZif)#bF8@d{=Tf+@Ih6dW=ZdlRUTRcg2SHzv59rYshj_t+p~?fCnopdYQKIRl5g=UE)5fA`sSOjV}?5@&{tbO}ik ziCj~k5q$`d0tDq_Qv4#iE&ud@ieIm}W^`{L)9v3=P?2Fc2Gt_>U#Z}I<1R{AdkMba z#4*IO&9C6_-qk+FA}#BLb@>vg-mDzyx#xPt@!@VxxEO!0e_#3z{(*3=yI32JKl|qMB#}a!q5d?R z9k_T6|MGTp=HbtzRj8n`IcDobUOP8_^cXAu?`#I}1;&LDbE%i@R ztTQnx8)TH`rxRiK6-#3A@VY%7XUI>wpsc{rcHV(-vEESy8YU(_nhc2P1{PLV0`5P~8`lCkbZ3(#bk z_~S(Zqu$8}DLqQ6V5u=g;e>deS1GU0hlS)7r>73V{fZnkal6j>{?dux3g`zRLgn0u^5Qfz zl8wu54Tp$mhK)g+CScmAZ|NybbJ563K<6u+gb`^=&c)NAuAyOQv{)L?OkSo)8fPji zK*wohuHTC+W_Zug!^p?&_XQY`h||xo-wD_4@~r;8V3;F`#lgX8vg+7dsIpoK2!aqH z;R<}UjO=r;nr~%lJlpC}h0Zg90# zXQSEUD!;h+_*ivfc%8cju63M`m-q7ON<~?@uxIGA&GYHpiT-WsnD)u66j0hRmjfor0{VfG5MRGwrVk1 z%I+G@l$4Z>78{Y~%F0UL&-XY&fxXG}h7$RlbS5X$p0A&rdkoCZqxxs~4z#Rg0kpW- zD#E+a#f`7>y^)5=is;oJk>aI#J-)hXfk8n*QBklJ&n3qRmiYkO^j%y%8p)fTo{^r< zkEg^|L(iA%7}yXWn%I~acwypz8r^IGx9dA2`5H=j-z+{YNo)9J*Q@n+-k0Ym58unv zcrUk`U@*w33?8+`0(%EL-~-$IzD=G;ozCRKe>{F_YcNZ1T&h$&5c3z{&*FALOAbxY z*x%#|d;-{Rw+39r;4ZseEMFZ(fg~}y*Y-Y|&vkN*3su>-NW4E;sdc#BWUo+j*lwO) zuCdho)XU=cIbTy^$P96Z7Yi#@>R_J+EwO)Jl=KtW!DcCr!en;6#PSYdF)?%4e`Nxz zB1d3#I)+0tu`wC49F+rWCyIx^>a;w%nd!>$;P(t~&@WmlC9bVnZ?>6uc66y4V=lc4S|9^D=#afmRgxx=68H$ z92ZUO_Iv|X6q{>lRW6pvj@EnL3;K|V!@Ki+ejJMOuhwa=wexy9ANmypu~zHLw~nnM zrlr&4DvPG@Q>jG8k9t<`&tKh7?8g?6FusCAY4!5iR9;Cp(Eq00`P$ZVE-fPTv*2~N69j-V1ZzK?t z&>FFkJ$$9vO+xVTYBaL%Yd4uT+`MQVm%g=F*d^Xo%sn)U@1g~`r? zu0LOPG9VBMtPKp}|NV>f0-5|_U;&ATk8iix8c(CGxLuWkJE7O*$wooXNH5xq`|&&w zhWO(L1E+={(i()X?U~*8%Yu2!y30RyD|-IHW`hF=b2q6-eSE%CHZr5ncX`+p)yA63)kuTRKYrr)%VU~v!_Y}LsJBe79t+pP{itzE!KaX4(} z3oRPTm&zH`TanIA=jpVX2O)4P`@oIW>QIP;cvM_XPe!4Q zHFpmLr!nZY{bO`GT=&AU*eY}jjyK$H#*?TUj&`Q@!?c>Mxm^8TuJN01w!6Y?yvc^Q zM!o?~BMA7lcQeOR$(Q&F%3%ojb1{1Y1gkxWD90x!VRlw+ONMViGzj<01N|HE{k{Iu({+|5wn9Vpd=~^_Gi7t3bKurjqPfw zfwF>86LIQPvjSrfjhe6BukLqaVxm%1N|iOuYF>oBpJA2e#1c9=0}4BJ>_(lE86GI+ z{L=-;?oPyWa!)*Tw<26!p-zX}0gByPJ-8Qz{|DYGzvJQWKlgspqJ5R-tGPeemjQ1j zIp35Qo>%KGHF`b65Fh0(8O?tqny=Oyyo?+j@B2g`>wZKH&-L{I5%tQ%R5jG*_5EEl ziN?-S)%4>TKXX$M6%rmNx&n_vW+)Opy^hi3d~r~;FOm-`Rp#AT-MzlG|dre|4VWRR#XaF)(;vz6(3b@rlcp_rwC zgqhiKE`MmXcedNzS%yGAVpor9D3i-6T?}Hx@~B)TlMzHYPdLPCrP|3*6$Nzu)$Kwx z;OTr$LBW8kvY~;6y?UoLdqpuiWF8L>kL0^R9Ev3*80vl?jnCzrm68>`LfIiABBD%R z4Y}w3a;=9M7U3spYH)Q&q?*x{+j((10$KW zJLJc=wRIZ7YbrR;Y#9Etuthv{8+M@(A#K_GIvGl4D7|KF=3P=MQQ&X|D|jK_ZGp%;Hm#R>o-> zzCQul5HIX9^_i~mW+dV?TWqI1L3v2V^&UnD^8pkTf&7RQ;7qw2Ep|@#efLHOcLyU1 ze-ztGJxfu7A;hWhj2m$eb8WY{8MD}J*IB(^8BLjl%rp?g^5RzlP*6|}B2#G0`o>~f zUi=E|T5dK&D?;Fvlvo-ed`(!zuGX9K5Q_Wr{4G@~9Q&z0Fv)ozFl?eg)mIgr?>4)A zB$9p*kR-vzOn%W0i&LP<-0^n7KLwD%<1y~e2&_Dx&Skv`&1CbT5`L8`m!WK!6S0Pq z`OnNi^L5i{eW7b;?e7+cP4BcxuO#=>2tq##GlIrkc)eWnHJHvEA5yTfiM6YSPamt$ zATyS&hKjE8vnt?5% zqrw!Em_~&~zH>PCj+hLZWPI(E{Nu!{(&mp$%q-s>T38w0_r*rR%_ZTbr{;66Ozg~g z`jHX|_FD{E?O;Ch0|msezpgf$q)BEbQW@4D^7G~~!ECcz5ea!*(ORTlMZay=0yA{I zwY4Wy>4r#00s;bb+FgUB_vdO2_+C7-cwB^Y2H^=~fv0~(gFsf6PVoyg%vZ0=dni`7 zLr&+cBxYgA6Wsld>phCa=jl9|YHN8pbV+toc?`DkCxF_{?xy?mUD^+}Bq0$OtPojV zXr!U}ZQlU~S4&GV!~y2zddqIUkjb0lIgLCDJFg81O@d|FwSw+9VAGSi&FKW8|9iFf zWtf_rvu~$g&`OijqQ`$ci4yVdcTH?68QP~Ee~A%QVvH7LgiNk zy)p+5zARg2-`rln>A$uCDXy`;5hd9_7jeH5D-ISOeyhdrI~W?(s(o2F=MYSB10p}8 z(5uTcU&m6pCfjdnjb()KSh3!{O8+!Z_1F0LeEQnnpw*BelYI8*(=hf#=mw`HJvUyy zBDXLZZ3rO1?(~TKH1RL4!yURxoJtyagg$)TBQ6Jc!eB5o^`zAJh}8iY!!o`RGPXJg z3aP3&M|65WcvK8(FS_Ui1|6qCq4(gZB39496(ub#To6I#W;k9uH0p2^3KNC8&SeYz ze~&=j6j-gaIfjoX+vBUl*(*Y5WEyc0O{>KM#bv#JiR<_FRv6;-_l;k{{=R_DtSk

>u(WCDd9ZLo**jQssai>bmnAlkikkg+Dl4j;iFl*-i{V-SFquY; zldIMBlN%0(Q{fx%$+3Z~@(Cmoc-PNW8LP)IKY6Hx#VXXQ0x=keXT1H_~x~p z`X})9>DJI%q23uILzQ5dSm^JM8Asqzf2Gr5te0gp92>M0^YNA!1o`>toyP#A1^wnY zpoig613miU3$J$qJy5q{k9a(uhf5WLbJrh;c>37QHXAU+14pmBUwoGcZ$Ypii2>=R zj9TortGDcAufs7H@yPLS%bG~{{vAK0x0jcnfgHeFx68ZE`3%L|<^2(RaC(U4U>msZ z46C563;DKox{&*5s|T*M~C&zx!rb;II?gb-;?5lHv17P9B#sP1z`9q*2_x^%U z*L+@_eGO$@0B;{%$nNzzAD$!}pdRP-V&DM)0FdTYF-dUF!p8jd3B5Qk`hp-QEwY$= zaH4Y~P$_;3oHV`d_^ni-@~VR^7!BPY$#-S*zW6@R>|{(%PR_oaOlP>AKU#SF@;;u_ zc*Yy(?($NA`USYCX;@2yaRj|_ADuOT3UlZ;!#SQ#XUX;R%UtOT3KR8+Y>9^!`;+-V z&P0x~LIJHWR`5-V72u$^Id5RN`_*anavht+eef$lYo*zyBP@7-om2D8 z>hyESz91(Ko255k5L#X26sr|)?!|VybE(jR1w*g5m!(?z*_|L7UzA2X4toGSI4({; zhu>!=M*y)ZATM|u3l+7){BB?I`y=NujpH&zx9cO5$Bn=PX;@gr;b}&%R(~v^D0B02 ztL5e-XT&HCrGwNMA@K*s)a@SW*VhSQ^{q@cFL>Z+_GW-;|0$2dz3~eHUwXtKbjI~? zjJ$99>+hc5+0{M>WOZ|%tYtEo)_wgUui?7yC&36jay{}p-4`o%yN5sLa(q8OScC$~ zLUw$1bA`71Qx8OqlE6Xvs&;Y>fdBaQZuME*^Gy(3y84%Rd>phx>oF1CjuaK9;50GO zo4gf|X*{+R$%|V9Z*|FJa#DDwC-qCp+f7}|ez{QP=d^T@6gnvh$=ZSN{ZI4(B-|+e z(L`)a?tLPeA5jpKDN^V(-H5P8$aOVfy2*8Qb(1C7N02QrXJ&&#LJuU4))pEB`EVEF zp5tU(ede^+RN=EuAz&}jIBZ~00^kk*s|6U4ZURI*3RG*`kjw_@s&qP@_uryg;v*7{ zGk_*O8vH7c0^x7U$=Esm^U4%nN`WFLh8LHM79fGQR7|6ME~ zFTcEaI$2X&N9XE_1{*iy@Toj0FK;hlD2f-y12{WS=5QSQ;$_mP={9?(M?}=U9-4vm z5lX!jB&gMBSF2X7CsN95HrbN042&X^uF8-OguwA6*$URLKZf*CvSjze{h83_5JSN zz~JCu^rTEpiKFb>D;v6)YnFb4Su02b_r}HJ$s@h*dU$89=N84*sCFkds%&ESR?90nQK`Da4C%{Ho z9{7=!h3{y)k>*T)@G)r%Y~9g5!|^BIIQMG-IZw(bq=5JPhv5{azfsi$mTRD^uFD19Hf-m z&f!Y|SxKiRo2xA_VAzh(Q$<39Im2&k&vb`RtClN|JQ$)H;o{;p^I4xN45oqVb#>Z*0f16WwwHj2yO=Us;R6s) zYIM7M%iiAJtv74?#^)2RIBhr8t8c@X8-kX@R}ALzLm2eHcD>i~jlOZ&&Zn=me*E~N zl*g0Us@CfOk^=_0*KwW=le_$o{h{f9T!}>u83DXgP#BXrVLG=of*G}S`hDIhu~b-J zcwCNP5=c8q`8>8r|F$|@>pm<;H(D@`j~V~WS{UfbWU&BBnw;eJd@L^v`(-?rqhB+c^5P%yrM8;i46LcCu!ipgbQDdx4E&HqzqIU zsl^%-cKa_kS};EaC@7W-6bm$)HZSq<<~%s}`U5`SpV5yhwb#!6KdP=c0X}QP0N(y(w8eC5JzaIR+nH^ zrCB+xP)D!@?u0U(!I644SH0Ci!_z@D;~x+N1g1eB@Gj3M9zVS#sIk|FnWm;q zOD&BJL3|8ox?CWlsZ?LW>D6dH;ne7M1%BD8f2#qRZX6ymtrLjT*wE3!dXIu1BxGNH zjYKS7au4=Uz<2?+--ivthf}YAz^l_k&$lDkoh)@e88KMUC>8thWY)nAVK4MbUiRaJ zG5eNFfjB{aCe~Uymla0$(CCVuUsW7NwSs1!-0W49)!s7@z3&bvclmP?66&2!PTOD^vmke&2pDRb?Ny7o(B5 z1~D3~7Rw=5yEQ3&CKEHWgNl7i@xa}mV$PdLSf;r7M<-l)zuw;8*{xTR0&o@gA5Qr5 zlPPBncnSF|x7yh*D2JNtKPq|!@7OwRciP|=WVFI30sB!?AMbBMG{{F{$@-6VAsIIU z?nK?TS5;aeT9qD)qw%ldCAr}G-Fxc!Y-ogh-em77Y!t@78;hZC?>%8K(c6zTC(tQ2 zVlp@~IIJLcY?^AT(on-9g?u6_u%QDH(G(MQWozLh(Dy||!2L+Vqc(V?CFQ>jRW9J_ z!094^>)E)t$nY&QA<#2ezaG9)3lEl%W`K_RIb`^t*Kmp1uWLW@e6{7ae<*q9>;P{P z^Y-PF<_=+QC@NZ*oNPkA*K)f>B#FcTH&#?!#D+GUmnNd7J@p&OJ2yPxkz^Nq!~dP= zoLH)*3B7U}ZbV{pd=$2uZWDnAJder9h!jg>|15b3BO?_O?)$q=Q@{4`@L15iFx4f2 zh-eply>EC}lNb3pJ|u+eBL%g3G_Cy)Qm5T^zK5_dNuVCm@`Bm4J-|vl@D(Q#OWH7M z%E@qI#;M=LG%G8sZHA_PLh-jEhV9Di;;t0jGZ;%g3!BxlF}0ILuS`B>z>spI_B=Sn$F^O0L!zFq>}81 zboDg&3;VKXBoWu?fq(jWNgdTj^5rS>$}RTao0C8U&vSmv{CK&Bc*QhC_jqdqYF$7D ziEB@35vZGH@Oh;qCMFL4+78zlXb}0^4WwM!4!1zrC%T3h41v7A47|(3=ir@9G@dbm z(|A-tT`T9@_30NtDjeaG8cQ^lUdQw-#AcWQ@iV&1lErvbAJ6SkUSMrw0};q_vUdw5 z@4J8hMjHA(m$NfyK>o95blb8cPy~PQn5YO8$^E5}7Ftzcd4l zy7umDb#)Vkd^%8WuNI5KT&Y%CS$JUj_(iF;8^T?~=q&`<~qi?jVW zHlT0h4CEK9r*jP_K)sREU=hv%&qMe%1pG?h$_iG8N^|d?qX6vogDB)uk+v`Bcz9Tk zW%@UgSZGQLAdsm*qG6>Qs46)hjw+VwMjcO$#NbB##-_#ef|StQOec~;ODJUUud8($ ziKURmkuDsN#pQNh9grA0E<*+*Mol2YcD~uhFE`d3)0LNBnc3M{S#jIx{=9_e3H;A* z|LZhXDG2|+hf#N<$f%+BB7^_^^VBtQgb`9vVXIkEkV+C}`}dmPx`U^yLP3b;3XMz> zxf+j$mkF%WK6Jt=t(J?W1_m`U)0ux4*V}?5b(Tx#i4<~2QrX=;5VTtD?Y25@a(m7f z%N0I6ZO6WqDizP2ZBcD@k$C~c8SQF%dfzi_xU#ZSoW2FM(&0!Y;R(vkm2Cw7Pw@Fh`K#XZz4P|T(v@UnV4Cn(_Du&|4Z^Y5=r%p4pmQ&k9&vT}0!V5rjP zD-{<6_w1`V+p z#Nny=g@rkP?se|UJle^LygpJA{!!lGFo{H<_IUz>80sXn6&SQbgeWCak&ir{+5!jf z6Bbn%FQH_Fn)q@fvW8qVBaOF-12hYa?QZ<-98_x0_aZGfOUrbIq+T_|I!0+Fju~hk zP!d9QgjH3SUCtLpoQjHz+3wAwX&{d%$;rn$JvE;01$F=o#H=n&tQN^-R9T_-&f=0+6et%alwt)sqgutoBq1XZ^yXq*df1aK9fI zPU(J&Zkft_Pfb=vqm(=@$RFgU{T@^+@O$T?y5T?G~Lpv1Y7OTqCl^E z`B2Z4lao_;`QrsQcsw_C93ZA%_5OrkTA81aoUSslG}U*PSZ8fxq_opzpc^I_HnL_0 z-3RV3oLg1Niig0pb+PpAv02D&vo5j*9G}9RCNDZgcMB|XlVMpuTO}LHI;qGwy_==LN>?7_E3oHKMTdvhGIug8OKiD z;JU)ETR`J9OpBi~sWaebsJEXJ42A(_SbkA&|6f@=e&VVD@9?;+*-Q_ZtnX79 zD=G9E9?Pp>Ewq3`NQ7%KiK-*bkHs>h{SN2LRg;TmKizIL+TNJyXfGmm;8MCB95+4m zixd_YH(Rc`j!e@9iugeZxZ5*OYEv#RH8sCHn6=VgZ??JoQ7_KviEC@y?Z4XYdP$-4 z>w)%+u{l+q`e*whu)}VE*QY14)8TM{^L4r7cYDRdA(z7+aP@aLm){41_u;G2eK9n~ z%A`7baNZ=FxIqj3I3k4kCMPCdsa8x+Y9u<4sMY9*BgLSG>OF9e0R4`9 zL2FL#uNE}?M*WTFDbDK)jsQ}LST65FkR)({@n)NhyQ{7bw^RnLEI(z;j@ldshC;*u zaS_CkCy)wN64PjmAY^1TyvK<`3slOOKHXDy#tH{+k1WiBz$zUXna3(Ej@pR>$~aL| ze9h4GjkY!}I?cxI9>11JN8_)0W`?{@|8yt7tASjtw?RnnN)5d(?+A2ZISyc<^fb=n zv-mC3ZbH=twllaho8Q&NrNj3V#(JRiv~+az#s;UxFpuUFJ-lr+WN*}1~hE!hz-rfkvQ?; zVTRyTgr6-G&g&d@pldlbpnCNe(C9&G>fjLZvrFUCUx(Zg+$!$wX$`ZRwaxWhzWa>Q za0m$fkS6_Xr*j1y9XR$Mk+HGeIbq}stDj>f7L;@7b)>j30IVm)VuA?Zo|M(>I4P3P ziE>&Qks56t&W&0ZX@@i8Xe_=m&oD9X2R%ACAU7QB4=Pfy@A~Z-ueIC?kr-c*%LQN; zBE};sDiU(-m5b?02>iGKdrS&GjdQC8ag7XH_ zVXgF|QGiKTC$EXF@Y{;E`kTBQMnz}&KTG}|3*Qr(5%S;;qU-&?WSa>d1bwtPLllzc zdNx-XuU}) z{f3*bz9aJyH8j#Q@#u1kiee^Mb0+UI%bdx{aj;L)(vs3s+6M64O${) zdM9PJ>uNJMwU4u5-IOOzkiI4>eL0wFU_fkciD%nie2f`r3%d9;bG2;@+HemPLJr1YpP~-lxTHr7?pA;RfEAQ zh=6%a2Ebea0N}HS)TcTk`;(qSydVZH<^Xm7^V8?2I&pE% zbQ`pDJd^#Sr$XV7NS%(y-WnFe*Kg4PU9gV_!t!q{Y{j)P@De!rD$^LvH$rl1E@%oC zHLQC9hG0#7u%V%mtu`lArXN2Ig29Q#LvuiSj1Gon^*W*cYQ#?JvDZjL`R((M%P?}q ze{-NqWJ^O)BNA@kY;_2Ti|Nmk00~>Poc#{0SW5!Zr_T3^X*2w{;a)!1#mYCA@hB9= z7>_G}F`CHwa`n(2(IBd0f+-L3k-VH6! zG3hfUWzeE&iH!X(YN9nXEM5#ormG4hzB>)y2rbUeYV&rjN$2(1-n>nwo zt5e^$;}_v8)p|nHVo@nHG}L?1NVh0SZAKHN@kS|hIx)T{2M^lDOVU9|5IhRDa<=ZT zUdU_4z2M~FEd+?w?4ebDhz`j)ih7<-OFd_nFs&zUx8_WoCH((^<2o4W{wb*asuYep( zO2b2Q`S}qR$6w_H{s6X(SKU%F)498Qr~+JK)noEttxJZ)V)=IyT1t-l@8bPY59qu# zOnUWZg8|KF%FThP432t(?i>I89539SA1oO|eKnwvy1a#fiUhCD%t5p$y?;}%s>cbF zqCfIPeIE^8AMzE{_=zaJks_3OpJK|#8=7%k)f5#&T0hIDI8!G9&E2$bqtkWcvK@ za1<$OP@`L&D_yG5kTR9g#Ory9go`P>g+%;j`xst;E(L`Qh1(|@*wgEYTnQKKE46~f za;{x0vjz$Y1`BIAR%TJg+$4Xe@6O6cN5_40vv?wuj1d#nr?^4cd~&ju%GR7RViE_8^rhtibD9Yrf4`vg2NT)NoL4XgE^ zKpz&B?6*`X+^y)HI1L4x)4%W2H4A=ezQnx(D8OJSDl@mfl-*F zN$p^ztiOfjD^sonRL}lhrpl+c?3#xA^LVr0*kDss~P?mj&-WiaG-dkviMZ(oY3nwj-E-vO(2v08_N z>NF-Oh*Sn;Mgno4zo$UCF5l;9d>WaMztC*dy#S^v7$%8{1{Y~}#MJyKm_c{BbT6_2 zD4A*RUg&T(70YUAcX>ir8JMaLPgm~;LB0f!R0XHF(`9}usYyVVfP6gGorpZsqr=o_ zuYnIwZ@3Zj^KWx;ae1&I7XbO%tIw3olxCy3&&M--in*=rp5_7_6ZPHRfER7Ut@tG-~-(M3r`>EYo49>I42dWE4kuDYzu#K`926JTL} z$`hN4HYe5J#OA$Py4a{pYLuAHa=d#UpAN6%^LTofiDG7H%I>pnH~Em@6abQrI_gx9 zfj??>3;+(|d%B;*BzP;LJ>5SaxG^tR8!aAQgI_I|ETg~9%&Pw?-9;6YRB*V@)K6bQgb#B{f9Ex5>hi!IOJ%%lTR%Qd2Ks8b}1J@!~%=Tjg1!Gw0h~95{I6JTB+f82yQUO`zhy z4)5y9-Yxv1?*{tQCkO$byQHLKsb#O)`8wT*ul3{U@OhP3XCA zFVpqMog>m8_Kvu?xqzu#TyzoQ*Z6zx)QT1Q0#JosuNT`I-6zZpzpzBFU%n3Z(t7pA z{45^!Wo>OsCT_gxyxx!gvWyTcC7wa}%8ToD#_qP2F6`9huOWAp}kukspkBS&pQs}e}R(M_BIVm$8@Gw+$xw!gJ zR6L_nCna8ls*tiuRhu9xvq7zfBC2kPK>38<@#c6i=(3|K{-MgC=R$A!k!x#6dqTs- z`T^x`{i%M6FmR}v@&5eG(DqPgf=8QH2)k`>=FvU0UH&nYsAfTs)RFw3G6`g+(-JSh zyzA=Uz5!AaQg0uiw%i`CmfmV>zfxaIg{XxXnpR$pQ{kTpENfKsC&k0SJv_PzEk_U1 zZi0aLItSee?C>0~H^-wAs4HZ0auY03d+VZ-!JFA`7OemYiV9VRmnX07QpE*{xN9>L zlY*bS&DeyPn8?WV2`s8inWXH_jV_Icx>ZCu`h=RHQwCrwC`EnE$sXMKYa#plhQwyD z#|$Dty*q7g-*R97UC8FKkC!}aSDVb($Hz1=Ei{l58lN^zO-+G&?^};l%(p}19?p)e z0##tlBBiAf&28|WOX=(he>QslgbGe$(Z#VcI_O_|I&mY(*My^?wEpd15~=xGgYT%Q z7%pdbKW}edT9I^*)#!`-v852F21=hP&>z|aQ3$m*X9~z9__c8g?h6!jK)A1WALBg( z%@bm*io+N1zMJ;|>(nQY=uU6~)??cDlLhX{$6LLU(l@J0clm1O+h*z!CMTwk2MCiC$l}2Vl4zzpdSW3g8l%O z7w^w%dMtbd1i4#m*jipG>;Y;ApM`SNezf3*O@T}Uqf z4HGLXN|reN;U|!uLTtD*VLButzJSh2F-T(q{N|b50Fk|#zRUp1d^@5v z44jqpLHxKW{}3pWN^L+Stu}dLXYoEJYJb})sepKI%*Y#wI%#+I zKWC@0%qU&aURVLM)N*slO?_Ee86LOuP#s_coSDLu<2)d-O=z`5c9z%?0YP_pzIz(` z7>r_W@NrDYO?XAWA18Wn7TqCHj#eNlkIaEs4(q<{yw~_Ablh??AUu~~9igC3Bb`#o z%FJx&!h%|zrBN#OLv*xL8#&y3{qRBNYf9@VF%cDqKRnp*XDSD%;AF*kkE#b-!K730 zP^2CmCnpsT4`iNJwX&ip&DmnvLHL2|)%;IPx8J|*b=O=kH@PhjPl2O8H8l;N2LMV4 zvYHVV?6*8ooRzZY+>i8z%7IgO7=%D@Fieo^$Ly_*`0xu52w)ttLUir6La*K1;H#4y z3pq%IoJp&J(?fQM0YSzb7k5K0tG%DC&G`&KvlnP+Hk~QT*^})RbXpqMCuG;!8PA2; z1=aYl)`gb2aLjG~Y%4hqbqks`Bl&hW!!JNP~p5ba!{Rw3Kv9cS)CY z2_oIy(nv{ncQ=xouJ7`B&Kcty=lt9dE2e<5d?>nw_tu@!2bG^;$kQjOS*ztM- zqThB;+F%dh2+md{H*AN^w^M#P4c^(0kx*e@rf7Yd$c|05SFP@9gw|o!BaAL+*{G=C zd)q_8AcqUMa{~uceG6T0VP|P84WvMbny??pzG7CxCB*1SqKyzNrC=n-BbpqllOu1# zd8PRc7Rp4Cgvn{bpP#mv0e|7oY`M9p_u~#7ZoXAfNV=n96$4mH;msn86o<$Ux}M`7 z-?OH$^>_ViOY_|Uc&F$Gw>1V z3*9hSa)rDpPGlyAlrJsI=(>%5FN{>Vtd8aX3{cw#xTU%zsK#*f;K;@@%Cby};u@Mg zfF|0|Pt%%UX^LIHy}#e%Ep*)GToQjIRR3l9u$(}pV}wR&>k+wj+G7e~ThAm z>M?93v|yfqDs_Mq#n!W~lL+m5K#!k;gJXJoXXuOMJB1O3 zK?(7o+MisoatPd-#X5a@s&YqLef`VJx|o=%xGA)>v?Wpa923*i5n;E=wPxkK^+#ZN zNlEx@!v`qS1E#>>x1?0TKboD}m$J*>Cbmj7AJ`QVA>OwaV@HgFOHDO3vXx`1XWGd> ztrkjbt*m4PYdiP0w^@UM2CRPoyH$=s;Dw*c`lA=fWCWUTJ}=gJ0Dah(=fJ+GAMko& zu+LmpW%d)O0VG(m=u}kxlFRK*TaW|Hc~k_{!zuG$Y<8V6^OKhw5BGv8e)?_`HhVUr zLf4zVfZKYy)&d>*K67DxYVrf|a>r7Eix=k$zmd%3<=D~Tp{$bi7y=dZLcR6(PrM&F zI6#se7(Y&;t#2H~) zu66j~8aZDd(>y)^TEMmtK`VRBZe|KgxsQg1nX^3m_gz|0#ywwtT`w*!hE+_LMiZ}A z?a`+aylYBM2EsJn@721y-nYSNb9yj6NS_yL&GltuWa5a)7s_HBN8?5Z(){#y>#mt2 zxxoV{hHfn5>no^$@0an|Dna-1%D~J*dMwmn-eX1L*RYJ7+|hXZr9d`~+PXgct877P zp-Ns{+mBuVf-G#^JEMZnaR-^7^VOnhEvqRm)3X2<6&L^G)2<&^jWal_Z0+D5b9y~( z4?iCu@2aeCIIqp0y*fQbgDghvkZz7w(1~%W^wNec|1<@Fo^(5~SrLABl!XSP(&{}^ z79aN3_*U1m-4GlolDX1Lf4c*>gyJI+H4`FVxqx{6^hmKHT0U0Ve)3-SQtTwrwK&*pTo|p8#;&fS;sfL)a%Di^H^;bAqEVifn23dm8HnZP zc0;RPvVU}N^Ji)9*Z4Xha})78@6T5!G&g%nOIPu~6|T3MX>mLHe7cT?jU5~xH(74Y z<$`kMd9_S1U3q#nEoWfRq42!{XqC9w=r92r4X4mF+;*`J?8fj22m?pr%gf82&ZjD+ z8s&-8i9jt^(={_aqnEDN?0k@un;U7BB@BpCd7&X8sCdj(A7`w9Km!2*wsK7YO+1@A zheEwX&GKm0c0pUa*wRwy>9laTtPCKYKdqNOFHG)qc8V03nE|$v$Kek4Gij^asbHJu zH7gg>_oO5aPYB*zT7{&fBxp+s#XQ^{)S81lpNUxve3ukP?fXp$VNg@Y0tMEPa{k)x zu;olmQfl!+XjoVZlfmQVjgVq=wDNDD7@IEE+w1B@0x2NS)0BMD`G<_vq#rHuZhwOO z0Mq{y!^g(?xj9^yXVb~;7PnL3D`oeD_X=g@wjWegL*5W)7Z%>EcLt_$SdV@atd)$y z=WZ^wE(bhU-DdCb19B0x-e6iyiq|NFkmH3~%c(*`f|dE+URZ+h$c~rQI_n$8zl^tN zJRZm4Zxi#Q{r%qrjd_t#oRE-ADR+3Be8qAC+n{;x0IvXX_?7L)+T9qyq9JuyS?mDt zXS-pyr_ICN-DsKs5&@7HaB^@QE$6FRSsljZN~v(!+Wy%cNh84jmn>7(ZSUld9~Thr z?5rIh+el;c!A>(XFpNB;a#67G^Apl2Mk@l|&gIQbpR2s{aARhl5%l}{fIB2E+eK;% zdi9wrf?3e{!6N{=h@-`Nf>H!#;L6a=3e)P|$@z&GwiW)%J3~JD zp2j_E{u+%E-AA!F)`T)?`HK=$CAV6XaTa6gp^eFn_63l7R00o;VTh5 zrW`vvvv6JTgVl!*AC!;5EfhC`P zcNZvpm)Z7r+S^|b8^<8qgoZ=r_c=rsRiOvUsei0CkB|B7PWa&wWy2ov1_b4`(NN!j za=14VH%wo%#Ds~q)^^D?%#a+4!)p2kEh^wsHN;`dH)KO&tPzVjjFeP*^Yn~sUAu;XthTWbprB@ zQq4+fle6=4?HcES9+?CjhL6Zo$8!eeVxDN9Uwn2Vc${{-d;(!_9tPJW7_+$vxNOt; z%o!z@PgYtU4rl08?wg#<&Bvax(+CI&hegd^^@g;2xotd3!0%KWgNq^1jSizyMr{dv z!X#iB2`FfIc(nP^$xmV_EN>3!3{~Ex){sG6M?!w_^V3t*XeG(p)%>G;@^( zO)u*ep;DN0Y4yV+4BkGO-L6Z`woY2}UdNmI9UFc9{Zr%nwCFfQajK3&+UW8QjkTKn)2{}!wnev)4=XK~PzG}KP(zp^q}? z-{a7t%>H9OX`ocAFXnu!ha6VBcW(|LZh$I7z5D|MKnKq@p4xo{SqY>9Q2+1&rjjOD z|7&Y@Fa9gs;~=+F5xu)e=K8G9=lA>-G|R;irGO7lWlekDG>lW1mzb;>*IXWhHLG;9-{D!1$vJUA#DFUn4#)4jqe>E0`Hq4R|&~DFJs*hFA6h3yzdGUFg{c=Lin5 z*wb(CseeF;bY{PBSjO{ zCG#&uuwcKQtI&ypuD4n!2+))0>Bw?O{}d3U_RWktB{p_F!WDZhxIIZ4!F^*4UHl+> zKYqH=;gW!>BI0?tUplmnY+21{%1yV!;p)#)tmhTJ^YJ(=m#ZQ(iuCn~z|z97#KOXY zP2V=4yhRofhPRE6q5pDqw#RU>f!vi1%QyT;rJNt1oJ97yah*H)lW86Q4-*p=7u*Uf z7u?I3Kl`t~fqtxMS!Rd$c#Pi%<85@Bt_Vne#JI$LuG7=g@_=r-iGI*F-zvwm5OCMw z6qNJ+2h{1o{5iQjcChIqmr_E%4%Rz4Id2@?MEVKtGo6=(R*}Si%me*GQQtaTE$(>T zoVp&)OK5XXe@jgrp#4%Xj;2UM`9l;fKa7m`^LX&biqBz-VIRh;Hxxc~&(CuUGAe$P zdQuoaYI|@6ITk*__bj;0cED&tMCp=}p{b1Tm`9>PA>eFwJ9SkYEmVI61#O_Mv(zQ# z-)CY$@{N?hH7Zs6tp!;`a1=?c2_7n_sT!nhjn9(Z8nxHCu%e{-Rm^mWGwuip(7v~sA+2>U(!@k>X1*Z zu|NShhi0Yzpgd{V2XXZBJYJXOOudAxYqZ( zml=8klA1td@1^-cv~lmSUhYgcPcC^LNv~AICuU8P5#995K1m*{&tl~*EvH76C#6jU zo4KMQo)8ZuNAGam*G30YsCIpC@8!DU+G?Leh{I!~FB0y-$amp$8_>oi6nrd%K-f`G zM$}7FWKJpHC?9^-^HNA>R##VtEvzy>RXpH_XA?OtP)vm#Y4$i;%$0hBXhRr=1+f_1 zPOa(^7ekCK0V2BG*g}0J67^WMaI9z&S!{`PCSVX^$>;VtDmofNDM%8e^i&k@!{nif zi1fHgFfQfE&~X%Y&G+Q+&)d*mS7@{q^jl+++8493QWR85m@CT44i7OKdWF+YHL3nQ zdt(@;BWE6%?e8ca9C=D9G>?SRmFzf(^c9aR@i&?5S11BF&!E97r=V9N*=Xo})$?WF zCuv|*nyCQ{-$zWBhdH4n?(p`tH`;*>E9T|kmk9^&yvzP+c$G75rk)#KhYJh+g&t!a zU6sOtK?6tzcp6Mi zu(C!-^mdEYFChp}a&1-0Ah>lkL{F$*qRaNzz$!ZuK=6vO!@6az@$G<}2 z<3E7pMOGG3lMpM0BKzb0{e98f#4wXE5?^W%N4c~4DJdwteQq>W)K&M|QPukA=kb0M zBx39mN}=_{h$n+0@9!o7@_!pAgU&fw3`qa@ING6B>obK2xDf^7AOSHbmNmd$4e59- z5b#E36kh}_Y)SZQ76Sdn2zEHwIKO`V`iZbwno|S~25IG&2W<^KmR>w_`|r&KLJ_nc z^G{@!R#uJ@MD|SgPGWecAm<{<`;z~`#0M06mKGM;%GtaRWVs_lo2YZ0Ntkjv#er36Q7MfBFqrko4fAK?lN;ff`g7%?HvDyZ&lZ{2`J5c15V-+= zs<5>rBEBHR@q;Yqhx8VHdAS$%p94&RWwF_!OAiNcGe0b{Gp{!E(~#2eo!K51h#3}E zNFi8N=0Gl-^%RTT`cqSr9>zAROm$Xw)e~N>=*^9a8cdwvADkAIkG7|euO8NnAI51@ zn$@qgO+y~>?Jpe&G2T=dM##7p zBj9~tEXcs@Q8hC!xPx+~wuMp4NrbFZt)Sf9vBy1Ik)zo%wsoAY%N`sRybBT1-;5IQmNI;n$ro6*mHUa*CWU5FO8_dcs4n> zt3$?;ZH39o>)F}fj@~!xq>#~5PsPMholho(&&Y!B8>z3!cp>Pd_;!%WV<$R=I9yqn zYxKFK`o_j2vRQI+EyvBWh)yTf+A)}F-^YrF4TXpysT?WY9?J$U6k9hl-gqoE?B%Lz zy*+w9h(0|ywDcd48xl)MPj({3@!_av2>qU26lEl`+_t)1_vo^%yfrhB#qdTeL|n}E zN{Wma@g~s6qVXU|)}Iw`OAAyK(+oUBZQd<7toq(aHc=P75oOD9ZmGWZjgGdxQkAvV zsTbwv>fd1g=rrccNiig1-~agnjx z#CdAiTU&v5C%ZYgnQD+Z2rH{o?k4NG%+PJg!EdJ3$l{GWYa^1mwtqI*T$R1iuy9`v zPrD7tTl~u3NTaP0N=V1&mUAu%_aVJ}i}Tx!(D=CjN4-U$OL_WRZ)MsXOJe`4P}FE0 zuQ!+#(l8xLwd`}^9Q5)t9kwLl|0FH=K8me1z|y%q6L#Rwv{uALAPSfPr(^I~<9T*; zEL}|-sI%0)jAd6nvgI1A-174~A33B;F^GMYl-XXWdU@*kCs{X6_>7uF8qL}dJspD{ zM_Tlk*N`_Amw8(s-0~+$hhD_jS1M&Stf78=R}4(&f7+emtS$tqgMabMe#%r-Q0VRG zVt(0>BR&{l%BfTBaapFPrw54F&R9%)UUmf*rqX392)O~_;WF;-+?vu@?0wRXR<5ig z!ZK*$BIA6Y|3ga5e}FkEkITQpNMzCYNmFR~x#V+Jsc3C9I!tB%=xCJE;4@khIz}?i z+k{RU90|GjYX6TTgUuiDY12Pp)Nk)|r-_7b%(+4|8UE$@_LIuc-1b zlrdOJNr{Q0ejJlTy>8O#;4>C_(j7zsLlKzCl$w>lhtCNTUi%t7=KVI_Dl7L;UrdOG zQpfuafoEcN7UUe8h~b-M6#FV*Wq6Hk4zQAiO?E}bCKla(4e3&cGU!n4VgHJVXxD8( zE&%=u{+`~G@t(<(Me~AMIv!2P6FXhjQyeWH9ij^{fEZP5s{~OPdXLnUy`~qACJCEF zxMz~gA5Uq*kVKCUI`@^PmqHV#f%8eFGXzfoScYM-U%4tB>Z&S64z_>USz|p&w zQKWT7m=ul~HE6Wd=|o)uuhESAR&Cb>g|p@IX7%f$!ouV zH^@vSgDMpe99w*jn*IF^U!KKcS6gnr5X@Bqfo9P+1dhz(m8t+6d$jv z!QL2R@;HV{BZ>VZ0(QHJ<`0x!2AO-B6}r+uc{4ta$9wFT!t}##Igclz+5Q=MXraV~ z&+X)*g`#X4~BC$B(F#_zkC`@OXANgKI@ZDjjeHysnlS{$xVx*#G9t z-qqk43g|GiD-Vuo{>U;dYoO$J+$a+wDS15BDJH4mS`iQ>=mW>7RoCj8 z`Pumhh-qdI$#ixLxl+KRhWGAXFx1d-d%o#J!1JZ;fGM>%B6>c@bcxk;WU1kEdRiJ( z_n*xjK8}((@2f+~_Qe+S&_)Ni(F_6Y!p}YeK2I*zn&E{*^uSB)d##^NnBB?>0h#x% z{+jWhOgcTim6O$`UUYGqAg1^rb>puF|BVHF;uPF^(4H+W;rdh{^x-#zQOGhYpSpW` zrtjFt;MIRYd6Lr1bPyUMw<*XE!_BVrHa3av$>jbtrm#oz+f! z$E=;dlV)wf(*2d6J&X$Ch8;bE=d@{nl4QZB@isHlwiAY7#Mrz-rEwt%KYTp+-Oj1m zSwp`rIgFw2bmuQcMKO|+zikLsV+%qgWh0J@)j+_Xo|&nytJ8Y@b&CArhi3Jr7wI*H z2A5c#eXzJ0Dah`*&tIbu0PXMXtvfl|Y>p{G&^GAob^pCS1~IaN?itEIOP){ilg>Lc z$8$C9RL^DPM=@eb`o*^U`s?bZqlsFqtgU}quPy95Da*WfJ6YaeZt|k^f&$}ZM!ac#Rt!Cz_9sfu)dS+$kw8w4%J;B?ZG z{F0KxovUwj6du?Ch$K}}>pqH#qkopTo^Phc1O>+;nDgqm<;JGJ@Kof0sRSB2z*5&>yPt3cAo5K~q$)E{fgHos* zyximi9ZlfGNvag^X9>|$%bz5Ih*E)psNzgZOG{izYADsi-u!ZkYkP!#bLODAb`G{v zu&W_3%2nO#2l}PHeK1TxP(iZBha6ofxD*9~)Q&o)#3a}fhNp4P<6<%`vSv?DM~#9! zB+@Xl@$Bk>Xv~XMKpBzm>h5k5?OM~q*jxxBX7OWS5b(N;6U`*}vPbE68f-{e&g#)7 z@_~J01q#T&V1yl2n0sJ<;o!UedSIn18PI3y~^**md|+uNK#Mi(@U38v&WXVtE+3i zY|?kmQ(%&MPPTrxBS#h6xsY!r7LyG6>~>=MnF3DCTwFin+t?_Ob1qNx#t#x6z>45= zdmEdcu2oRh`};~RH0suLEko(4Lt;2vE_oI-u=u-$X{Nw7W_Z}y9CuEKYZTDwzRcv+IH4dRm6mEM zZY)hto4|$AS{)v8Rc2nEdytjb{%DQ@G5=(_{i`iII-=h-M5IsAXGmw!EU(a@#q)lK zPKb@osgCM!0Acrcxv9~I-QQPEtTFwF#Tsp>oWL)s)#vC#UD2M-n_tK{b{{*p8>%fQ+P~_L=bF>OK7wYD)Dl&>xj4RLPh;yH%ibC zztdH9;N9zPY7o=bVr^rCgMRM&C(UC&XvGV4Bj}$WvPtPLtBu}$4fRoJbu6r`*p(sa zcYs-(t-$Ts6MBONtH}Jef}?J0OlVgG9iP)GYSr|!;lMCEF7Di%|8veqaH2m?=O2DO zj~vZ01mtAHZPGC?Fc5ln8$|ZZh$yH>jUk>hK#CZGF%1T*uq&0efUu$M{bth9{=)5x|&^QUG9*=2x5EeVL zBmA>jWW~bZeg+K>fAzLX8q*i>deh-`GuSMIyS|pu7E(*QpzgffVonZ$r~SI-@YLMP z*YJYCW1P?NdGTa*h3-2iz1OBkq5Og);rUAE)S0V>E6y>A9NiKGQa3m{b2M$6m>Tz4 zr}LeGgg5-3`6lAeg>Q(LzsQ(cYLimjVt=k`95j?%>7deTXP~7eJATp$XU%pVYlC$~ z`3k#iW+)FnT~{KRuoVk{R)Md-P=eG_f3X)y>9J&a}!E@58*}LCdqtJ7BtIxJB zukfWz;Kw2tRNYO}R<^No)YsL!WPcC9@jWOl&y582a{EQ7%K*ac*J21{pslP7=xV>3 zj|p1tgr2!Y;r|p_0z&Q%554^XEBNPbDVcy9|ItUl;|6MHX^gK<-dRZc`T@oDH^-~{ zSGSCeM-E$lfos`7`INo`N(l$fhU$f@lD~^q?h$)m*ug@SRp>XBc}{{ zO2tpnE(e@wKCcB3@H^W*uOWt}DfqLT*kYnk6Mf>nU1kH%y6V&c7RZW^S-CFx@JF1WY6I^!p&fX1{Uyd-YVMi~iJqaNr3(LD_)G0waf)?)xPe7|* zmT!ncc^p8{;61ZjZ6)_b-;Zq1Fx0-hFg!)lfBdkk&m5d3cs%gBv3cI?cO3k5GJx@^ zN)YPa3H4lAo1a&gum1w)>WyG0W{o!ayEi31KFEuPky{b(u-)kh<0SO$+XH(^UmsA6;g~r}ulpEu!+6h4jWO2X9)Ij>5JJ3X`|uhA(7QwU!}nA)HKoS0f8~&9 zDYKkoB^Ko6(Vr;!DEPi+6U&NE_ZE($R4nX=5S(E`S#3Jt9CR6Oc8(-UDSTr~Qu=gs zBw}jsHt?Xs!ERjf%`W-@#~17T$X^*x2qOM-Q(D(=L6qX6KUb>D<^Y4HE2k!sPDsp` z#Rx0%UG@zsksu8#t1j6Iou0cO28l>`1UmW4ptR<@3vo{fkt#1mcq|-bb;R!_gAV(c zD(nM{%%mIa0lLa!cIvCYGqfVA;%jOTW);xZpb__nz`r&VY7~$M#3;fhQ9N1hSv9+; zMdJmsDIF^Lxmrd`>0 zy$C%=ZpF7hvr9Wm*QaqwX#l9)3iphEOumnP)PX20p|0?Qjvt`Z#l^uDMmD0eEpHAq zaPU7fdIl5+CpxN5A^Kh>kif%24;6*vW+XMeZ$3a7yRGVnkYVMNm;XpqvoKJa_>5)K z0l>^5ywat_Dd)NwmT~M>%`s5_6V%i?Z6(yOtj3&k!1mNq-g3qfr5A20C6T~Ci~TQz z;C~M+JGXrYr3}D*P0hXzTG~My9!Wrg6J<>K{^LhNQc@DA(dUC1+TQ^j2Dk_$C*$ZK za{xUIohrKB2%x1=2bDIK92^~(nwSB-E$yf5v=`J78Z<4*W?o(z?p`cU(4M$OvVrv; zR{{YV1#$(XK|8vM$44sZ6f6P}O41}lVI;Ch%K4z1;7>cyrnae>lXb@V$T3O&_wtYB zfE!SgA0vkkD}%8qbv7p*1E0elkP-PDsXv^=9}!E@d7GAo-wR%a1UyHo(EJxhLK=}6 zUy^l~378K&|AJdYG(Nm&?rV(W5;+Al2c>e{!K)g9cyosr^ zn5O(6i3o-d`l(+>J&PI)r;McBNTl1 z{r!DHKG!1UmYc&FB{4Bf0-*Kj?6i9);Q1oG;5 z_u(`Pcp581n4)!nrU}$d7Z(>j9aTxO7jp*R7Yg-S6k$(J4i5{;%Zc8;&Cbc0EY~?T z?0yavS5Wu^G+MyHg^XOt!qW2UR47j>Mi4xQ{2@#llS@BIt72%?inM?S{q1Mzw_Kko zp6h?Qr86520y;GkedpZG9jK(LHnz3|9Jld|jWLsb_eMv;!rp+G7G|;1yaLo)PLAzb zMsuSTA9e;AQ&Uqx$<@`h>ICKE4A^m?6e;?UzgVo=$Hw}sb2v3zCSPyG0f9ga+L6yL zFVXWs%d^%<;=%1y^ix(f791Rvxj8PL_3G*vaOo27{oNy;9Rys1Z|^UML&V7^D&Ply2q5@<=_rj&rf6iCtl5qB4U6YdL>1_poq`ue)r$VYKW$%wvqz$EO% zjt5W;5Rq)$V;r0v0Ll!xASnC*MGhPTaAANcRLciSI0{jCUbmCkCMP%0*P^W6V;)SR z6S7^j*?+$&B^L74X10t{u2Q>J18DH$=o32r8w=px{PK^O0Dl@u?@0Mck&3aC6Av_W zu7Pjr?_)s?8{kt9cq*?^2^ZUa%qc{}-z%h@>}tT7qQ2uNd=G?SM3dHFc7oY344%*I zY(oOo7+~lB>qMkB{v6FQ{j{7?d>1JF9!P$baa2`n8*KUBQ&I+pv~#f04Iw{otK$w7m6jWKsqGT#(QLVy0eA$FX*N@J>MWk_UDi8ZK5qv} zrk2~nCZp2X0AOW)d|Wv+)#+&VDl6+3rQ9yd)bGK;#eo4>Gm-`eNXN@F(hE?!iiId< z@JIM%^I6Y6X2iw)vyv+0M?;4h0G}E{Foe*hjtN{k;(^L#dZ{QUBwF<244pxVgT_^dOep#haP zB-StCJ;Pa{zyCk4ul@xtwothISxmr;?!&${`IRm900>(@7{tLKx{W8a0M|dfoL1Aw zA}4CqJP6Flp=cOE;ZNalg7d0(gisTddMiq)AkJ;f<`*J$$xk}6*vwO_ZQY)C197C# z6QtHzg)H3vdpI7ZY@nJ*IGU!Yk*6m9yfO>0v`GR)H<654SsamFVrrVyX7S8RkFZr4IgbiWsLOk(Hq>fm@te05wXx{ ze9(n&b?k!bI$LXTvqR76qS;p61)%|qy@+K{gI4jtk?qsYGUC=Kh(#r8R;xT2MDKa? zs**BX;O&?F`2B$|WYBAWx`Jx~@%58gSQrssgYY*ThWjU=FEvg-ny>D@!*aYjl%Vcs z>X0|6Hi`-lKj;kfx*YVlhn$1y72t9IXQS}ubZtlVJwFFbyr|e(XCR;JaaO;)Snv7? zgI+UYU%*y~2v;!h#>4c!e6I{)2uDB9?Ifo=kb2z^ z-`*}_vKq`R|2Wgr0F3qUxc(g;7?=RIAx$e4 z6%`Ix64gePP_H&-<= zRJtQ$FiCG7nMwlMh}~wsh{p*h>Yae$`Q}=wTJi5m0uHOeg8Iud3nL4Qesmb7?4|do zMOqVrz~dW|reg?h>Qe0 zK)*A+cwU#o-R*5;;={%IA-7Y+0xg@>R+p9L6R@kNFlF9Ays0yqfO%7YWktn142)K< z8`pE5+Cs%2SL>ZCzoWjJo116ydrbHBEiJd|hNAvhz={KWY(~|B<0hxV%aV||xN{ID z!H3h+4>IZT5{Jl#qUy1;vu6nTxo-BLD>7s1G=X6WoyZ;++bY3`Nx+dbue6j(uf4ij z=H)q1<)gd%e1+c9dq)uzfbr+i6-{+@ zk23`L0H&#{XH8yPU$0=X-vU&X)i(AcU{(#A*EJR=@e~lx0h@x-+*~-B`<;{n<$Mrs z0CgIOrjIA{ku1gTF0k0}Co3-xhT#(pKK|jpF`$0~(+-Kd38A^l7ji*C-~QM* z4(nz?cY7sBQhWP9yu&#XPU~+JzcHH*#NVCaNF@9$F15C>vf5F_G&MElRs}YlUJsmF zN=lXHW9`89tjB+yY^HeY`D~*tTTCj0*9CcHa%QI7bf}@9srC`P1je2`_JYVA_1)!k z6=`#_La&cblhMP=YX(T4rDs75+25;*uh4Cx*7x7&_TzQhh4E~Ul$!w_KtGLojq1X4 zjdx~BQ-GL%9j2OjC@jqW8mBtme$ien+y}Nv?ZXE_-$!_?%l^10n@zog+JuF#7HxpH z(HptfRSj76y%l;oEv|nM+8*{YQ7p!2RL$DG??iVO9AH$W-5EeVf4;cLyV86m+QI8_ zfp_v)^({Uj0iV+*$WHachvQ?~a5;?T>b5rHtHbx;mV|`FU+%3nyFgQVKjI;f*4EVg zt0yNW-UByl47lOrLJR3u2M2GN)xEtlHp0p-#Z*17kEv>5wpqA-ej?U-TSSWi6zX$8 z5$5CLbBu~a9Ya*_;^LAGD1f72cEv+3wIcUIMdLe%u7M7T1UO-iPp2egAhSyXo{|n1 zKZsJK*lG~Id;7F4kio}Rxg2R2LjM`tZAqT-V|H-VG30^A&x&rG?Ji(~GAkh8r0iG~p9{8$*mMkLz~6x$yMh z)`^@7{G7a5QbUueiI>6*BZ>Bf$jHgp5y*rZV%`aG`#swzjY$EeLTHq@d5R_*aMVS3 z88M?u%EKK)@;xOLRV$X_UW~C-ojo<^U6H zo2Qdd<^Utm=Wj`Gqpx6Xtz#pHCq=ey3kIKl_t5>RFMki^0j~f zan=!8MieTu)2=RzESd>+`Bp!|-i@%c@obq#RYg@UgmnB(p~80*Q$D9%ik6q$;k(O} z&a3_*<9HchW|S|tXE+UDfxX>bn}rK54D{4@{O&M>&HMW?!zn?=)OydrF9{Bn@O7k^ zs_NEyr%$@QOu+e8A&D-^sSQZjq&=>Ot+)Fp($W^;-khKlIWIN%y++21_${LPi7)f8 zbN6t~uYb8I($H8`HJXqIOuB>m<^t?k|MGvSTNxDnNBV(;4@$llgsXdej`^Ky2EU~MsKDxk=s>^#e)@NmhcSE4n|60(&vBEPT*PZuEJbD z9!!DbmVhZPpCvL$V^j07z>{?-Wgh(^!b%RSca}bmn@l#rDMN-3%2ifg{_F5eveq_V zX7INQD@pXQ580H!0Al?&=%~G%cD!^^f8QU+*c0{UdbC$<+!&?*K`od(7OVeO21ch> zT4Mk&b~H(&x-wNpqj{?uix6p6Rd7e{I4pxnFHt@zv7^CK^y0qZm-@!vW20sHLx;K^ z&8n)a{{c1#WCEKe97rPlZxo#6u!yvD>UMYDz=EI8@F&T0=CkKMBm5f+aO7!D!RWd9 z0(DEfgK+caphH$&e$1 zZ$CE{NXY}Umh$r{b!$WA6cq~!eW56dekJblhw4Kd9t&HWdEFgAeE zejMyul3zZu+Vq6F=3wlJl^H9Xj1Fj#S+bxOgi`-7t@}S%5fv5dQEGtruM$f^>I>r+ z1p#F~`QJ;n->W+S?hVG*%Hm>`NAN1seg|HXsKKr*o`f_;jx-HoDwum1h5`GpqTGbi zG=4}DEk8XmQ4Lm0CISyk%vLF&#t=z#9gm#&H<3bo%p9}l#vkgQwQWoCf6y`8N9135 zWET`@6h?c2lA4#d86<_E{f`8Hwj~>1V>$wCNF1GDDgJQz_k#qI#5CyQcwz+Sd?rZUIa=s=u++~&q znTz1GvW`xRr;DbO)8(&UnvqnRq-47O&uJnL2frGP? z-2paKSvfheoK)@9!x?KU3k%SP4h@2F`rG}EObWV1f8;oDc4yhIMnkPQW4D^l^LzQr zN%;2dn_?O}5yAc{EiDwbq`VZ~f{N{0JLd8GWRLMI!>Wc@DLp;o-}+R7yWPk8wUGU|C&{rSQ7 zvrDm4Qd)W(WW`l1zKfPM1ie!0K$(@Y8Wufaq~HnZW4AVv&o%~6cQ-|e77 z8^8}HOLZYcHG&-7C|43iQ^iP85j7o*Q?zzBtV;Te0l9kLUBD(#r0zsstQ&lN_4;*t zU48j41VXMIM!jYot;DIx$z8#Y8~2mtg9<&b<`%D3_YJqpT^B+Xt%B#{h0F7DfMkN& z2M{aK+NCFfPzFrSMAnXzmZE?kogPe*L!>8VVId{k3>43?u)OpAEApO=qdrtl>l z#2eDXmm#JpFy^WOR9l3fLEWeQ3|1~#Nbsj*V4^yZVE%Z2#GZ&ifF=pHv;4R1J@IJL zq9!KuRVtfob0RSXia(wJ?l?Z~2Aljv@arw(!zaER^iRdc@km5e zI60KGFstcu9U#WNCKO2&b%*Fqw)^n0tajLMAZp2n5qBB{`oIV{+S`lU?>#@Y+?}pw zi{X0DUxRAon-C?+W)DcDPo|3r0{W<+y#W=3UU6<;zV}imh)0cO;;p5$X z`6}I%|4IcVXJul-KA@aZ$h=3(HJT;|us+g%u2-0g2i~O`O*Ke;Y{2AservinI@j2g z^M`7+$%7}rOYJNyDB`pn3z?$9>{kHxA|oT`cXTz?-qnIWYk9dX_vS+YZhT%@S?lK& zA+Ss7HQL|RS#~s7&&B0$Mc7Oi(e$zX7yR+l9x+cT^B)_|Mx%l2D|U!2Q50KF;S?$noBO4GPtj@f^msmf;`iDOek0{=aCQ`J3NS)*uk794iSuc|YF90W2EK2Gq(9&~tR0^oRBWJ_dV-9|=NU zo&3zsJ_QrPC`%-l8i-(3=BqZ8<~ab? z4rK1Y)Qa2f1d>1%Q-xFl*Bc6lg@NG>6o1pxSXzWYyR8ZuiG$#)07H%7J_aF|L;6Rw zc{!s^m;>2}UyN_wE!!?P^7#G$@86t@TM#eO0wKM$bm{KWe0-4`GF@DIbG*Q)YbR+u zn5bO@QiYfKyv`ME*69dwB(qJhKsXggKl0%pZXI76?{kdnS@a{!9qHm^6rrzr4e zrP{SPRL-v)W&pA?TW!2IKW}jiW~8(OEXA=4VSbzeSXEM0NWq&F6&L3efz5EXbWYfl zSJq;1v-fhg(qO9I8nkr8e0-n@(ffKCi=e;D5v-zory|G#GnWI5vkB}LE^cZ}kwBaj zOFEm0B_(Il<>s?nEd%WjyGH_tf1fz&F6iq1U^=`YF+aY{QSb5!`?l0#`!tBq~xU+9a#9re4YY{ z4>ZG;=B$9KG!C{+W|E3D-Wfbr~RJ!$F0-T?}>@jz7SygfEE329$*5A^b9gN&~5JMz&t~0-D8s>F<)%7{wmoElKYy)7k&zhfT_2gs<&svxYawca(~ zImd5|XP`i#%4kzB4Gs?jm@cAS0z14aoh)H(AI-skNk+_dp``72@%zn|vQ(klreQqKGV*5ZGAOCScr3)cRUh9KNU6oeTjtU!tOi`@4u2*|*(31Y;58+r+u;>i3?bF^#LceG zbbv-80KlCKJeb}k-Jbv}7-0A>a4$}8s79PuX@5UGH}Q#$jdcvtZ1__57D)Vt zAJ{RY2Cc`7-+u8!bWN2Pl5I|Z{ZTsK0KQX03%<5%QePK#6wWpEuaZQ`3_gJ)qe)n~ z+lIYi@wm4dD78vOQEqN-Ve^=ojPXor^P1%nIMazcWNG53hn-%&0%5rRqZDYAYA{+y z{CFvRW$e|qIT}aiuRftRl3VKLI(8*Lz*d?E)Z1MFX#Cy1yOeN(!4d)((dliXi8Tof zpKS-D3h)a<5#vH=Wb1*TxgeY)Tr!Jav$Q{o?0a_GVk(BOM+=*%q+X?JRlJ5Mw$SG- zA`iFR{xQU@Vc}dflA`4pH(!LyQAvPDo!PH9-F7GjY~P69zbOLQcA0eB{^t)y6uCjC z(fX1*PFrA;Cj#=N(6u$WC>tG)2i%hAvcf6;3-P0tZgyZB+j|Zg(NM5=cc2I`N2kF? zop_vHb3G9K)&(_0g_Hql;1mpTavf6=F`&IZSmc7(Cv%-tOK7hzK~A6P=r?~KtZ{_| zhNrqPRTY#Pt7X2oPzWZ@cv{zCRBfl$xyv3gnL?P!)V<;!#n`)wx(-ZXCy-4d-6!#T zwp$zg`)|<##R+*{1cmi|B$kY4e*R3b#WgXFhq^}MCOy0B{sr;Nh%q$BWrb2+Q@4Uf zN21zx(>~xOaK;F8MHr1G`R>QyT^;6TLa5*wsjOof^0cScJsRC*=qXBJ?C6aFtPsHHgR(Ge3wDX2>Q6n63c$xRsa>S(29 zo&jc5WNK>ae$Gpr5Ne!oULA<;Wmgmw__UW3(NeP|&rHw#rA%aGznB`EdQqyPQF=Hd z{f8X{F3X4B4ued>FPS(#9vB)V5@B*3eR;!yCqZkY9t!fX~d!N%eVCa|n{nxl_RSAy>OtgMetmCl+GqP*_;zWEKWk z3`&VfQqQ;k0Rh7M*1Csu=n!4d-%k1mM~4L`ex0jZwk-e!sS7Cp92B}WVog9222vea zI&{+e-ACVGKhYJCmuM3G8@WNc)DW1LkrDdq$N@qUuAY>nEX6+=oxcek(So0nUVl8m zH!i8j$rHE4AQapMUQ|>S{}G-7)g^xaPN{Dp6G*TJ(}{oSN*2gMk(Bo;!mgZENix!>GbFf>o=-rfVx4Z|`rmLl_Sx z+n)%_)M}5Vk{OZTGY61{7>bCfR8XDK0Lbhe77RG+OUN?lyJ=wuMB=jjo@z^LNSp-~ zdbPE+!y4*f_Pq6H_3K;c%ciC#WCV|~wO7LC$4iYMd*h^Ps_N?6ypJLdX2Wl#)8=i~ zhzhJTIK^ARiLmj9*3nwR%}xTdFc*M1LWMsnk$6^520{}>$tfsN~Ah=M5&DYy?nksc{VLl}nBLd3|dEG8EEp>Z1XsLSf z^2BBR9Fv&|1SV)uc*yJNzN}W7pOf>v)hC4=$5N_>4C6{%2U*SdyRbYz0&Q{-gp8(1 ziPm2?hbaP|(rAQiazaAyJG6Fn2?wtSr~CR6SXfwk%};#JJJq$d*@mFSlH!G#nw-2q z?nL+SS-S_8&~B;D!t7#qOi^j(S-Y-9tEn>ml-R%Rhf9OaIx8=+!F2E6?q3Ss^Iq8P z*s+0mH6ZV=<<+{?hR* z*O;K#uj2S1exRbFA{&OQ(aLE3fX+5*xg zV?0IJZw{M3HcAvPewtv*jQMMuDu(QvIsER##MqecGXal>cmWfRqfNiNo*<;qhzLu7U}~g)!Blqu_ZkH-;kz)K;FlpH2Q_*nYE{9--MJr`em!`{(uQEm4}_A#DskBDIh0kf9||8_jj-@ilQeP0_!s*1j{y z26BrHSfKfgFS=}Ni`nCLaI~CmK@x0jLEWv;eV0%$4*3X-P;mPNmGe7I=6<%;7pTRGi8i*!%tl5=gVF9PU z`{voo_;23=9D?xxTkpKPFMRNEAeDtlw9#gL^Y8*s6dD0hfx~DZVy)?=Gi)7__a`W2 zJEmPUG6ImWlb&w%+q*kEd(sR3;>UxT5sfWUxd~8XBtOwA>3VyLdZDLJ1qlV! z!p_y><%Wv#iU;&eYkrXMy9o4FxZBtuauwZ*3-D*qxjx92f9(N*n49~?sJE+Yjei|H z7nR47#@19SLL!ONzW1!40U*1!CmcvD+HuR2=jQ~ z4?@{Qx9t6IpWkkNo$l=92Q&;3_E~{S@o&8&!jB^LR{Hud zPW;O7xP~|gD3T+GmoH_Z*?kecNQI*y{ z9el#CUxNT4cTC8s!(y$;qOW{A_{{fCnGoy)K~5+bAqX}2SbDr=lYj zj&;1c+$hm$afPkKltmw)|L6Jo2AyAB_&){0D5lL-2#*<>n3JEirjKH7z~qXbc1!xX zu-O%D$#7MM-6&Od&~+~rqwZbU2klfQ9TfYN9&6j{+~qrR~9Xu@~wo}m&FZ=n$lkXCa=r1T{~I(7Z~SG65H z;<-AzCp|OSEX(zr_+qLQXu(%7TUQ&;t1Id0fUFjIZ~logL_4R_K0kl4HhWn_OSdkUWhYPRq`Cmusub z*wb(x__s6rA5g+&yk8tHcCU(yi;V`Nio9{YC2L%?(hMy$dJa@(EEBGEfXVj&o{;Uu z9DP7drW=p-RBZ!Q(I_TSNN!GkNkPv$0`(84{yU?Vs)f?VJ7RA3BoQ=w#l+l!V3H9k z%)_IjAWuOUfK2Z3AtrP%JSnO0vRyoxLm=YPSD(G}b;7r8I6H>h#N3-mv$1sFX_ROgid~@LtVds*|%jhN~Idcjjzr!e19Aa z42pAnOau5gf|*!C5p{|4w6k-*KB5Y-bRrVk`9IS#Y>!apR-A>+#|Va~U4f z@MU60*<0=qWD%t1`4*XK z_ott3xzCR%5;E$Kq;Cmuf|{BMaRa8oP@|!^%z{ckiC83}xhpN37~7BP7|^BOVdLDo z{|&v%`;!rSi~wdDr@+e?|7pRFTB`D-gT#=81SjXxsR#$?vBUj4F&ql?4sL`2`DzFu zO<35VprHRSV5^L#Hidl!{<|7K2QbQ{?)G65KnW8Q^SQqHzC=%{Ob$~4K1(UgrYMD@ zqX_QIK18k|lS=3i-l&jKk)a9^p1tyy@Z{`Gx6SO0wP}@=m0@9UV=*!)t$r2li2kp) zE#N}Tq)x5Y>_#xUQ6U68VE>`6ME~dZ`M;&zdz;)~vZLa?9$E_jj6)?3n_HO2(4j#@ zi_1*FB1nDT!}8u0_}SwFAzMRbn5$){ZRuosS!1>NrL^26wJd*(+Jc6<1Z?L|gH~27 z87L!1WVe{N8QnzbmI;q=wG-GnZ@H!_LNX&qD)A4q^R2r}-tXjljmo^lq$PI$nm#Iq z=%P$ePEc-0{DhEDU#>YfW3%~%+v{mWh>e6jFq>ThZGUQlLGrzcgOZWG;ribPieEWe z85Qn)>CSdy~a+c74=P)`q-CTy?U-g#p3U_D{A zeWP^)2cf?@{)mJJV~j3%!;t@LF8;3}Z}+XHR8#GDoRWO7-+qsJYllN%1J>2CsOE35IlN&je1$!mNwOeb1kIx zt-;|V-c0*ZUtl83Y$CC=+i~KzRL@J@h}g=~jPDeUW|rPRY`v+(P`Lfe^QWO7Sr)`T zx+lep>+y6Kb}6sp^1?=z?c8x|t@jr?@4jEC{usSrOJS&5bxt!Zc}Bg6MKI9z9HY9d z+awYxm)H6_r(}xPQ}tHfoE_&Ze_&iM(o8MAxn?q1?~o>3nxiVJ&1QK`fvD&PC$L3qn>>Zpjo`q|IxRqoM$noUp%sO!$p-$T&FcYXAt zQ`|j)*Kw0R6{f|=d5BB?j#pHX!|ic=ST?a03%);^J?kqUoE>sm8Lr3ckwWIRuhkw3 zZ7ov6_ri()+PA0wu`Oo=IXEZgi7ijG@@srbBCT#PwbnYxYGZl-tQqW+TDzd6;+Jcm z#H#DH5JfemB}WGP%OD~$ilSc#+BnTOqV++g(^-^!5z80|^!_Ec1EHr`a~)@%Y4;2? zc{k^3<#Fr`zcH~hgD!r*eBFrL3(Ncyd@DI9N#jYB8F?E!S~ZMa8Yo({S9fv{TvG^D zYD4-FX+8AM>?8#1AjibQx8CxekN8BiGNlJMy4PQ{A8O^+$%Mp$8t9CQ^ZYu$r!u*> z{Z_y29mgcqO73b*4V!LJB6OCiB%}Er{$r{Gi^S}j4!P>oi+_tzhfXk$*;y~TrDXvp z_oAcG$n8#iF@zXNaH|EpZlVEPjdF~AMW}}(RF6))0FO@Us8dxJ6(0_fH zRQ1&eSm5wuMyYBj>L%S{E^>rHd2RS_EufAcf|B82CZ2jB279STcdQhLKPdY%Sa)I! zbBhW~%j-QA$rtqKqOX&Ym#(agrwcNt;yaC9zwjitw_f}RPw}Ne_@n^!O*}+vlV7*$ zMJhsSoO$-em`spL1h+aA0(w@>YCo5)R7N9;Dnp*GFBJ$^Vz zbI5#=$>2BFfpt5|&}hNxJfC~BI4{&}LFNbN);sRk3TBT7hIuC0dG?pq2(5exJ|EiW zH_dZLLueycu>)W*XkM)&+Bxa;>L{BSfl(h`yK1c`;Ua|xym4?Q(`z4R{932|Lz27-AbD4;vG;ISU>t(ur_7=y0jv;UDy9Kc5G2nP#Hno2tNB3 zGOkD?FbvcC&TsOJW?`1k()>`+1hrd5ocwWkhNUo;>r&pYiNrxAibGGU$ zh^y-o*b9j1M@ttT*`6VV$`#&uQf-VLOUlo!-zTtrl5f zpRJzJVDJ30**=-Y2C0=+VuP)eQy!}+7}lw4p)ylFCz^(3QPFaDyoqb1rN zktAsm!{kCJ%<%u00c<)2T0xtEM_3A_05_rz?%p02c*WeYV{8{`RV6aGz5S>vvR`zs zBmR-?AbHx_EWNAaQiI~)5KjUB^6h_YOWM1Jw&y#Pr>DtPfRQhdKf2y=%6lptIKAxN z*zE^xM3y!f;Wv+7u0#Oz3e4JDZ^Y}V+Ya68=dxFS`vT6ZQ!+DkzkJD=7dVHP;C-QL z@xaLlV--!0JDm+&LGvE<1=F=RBjOrDQW7dpVJ_3fe2-Op;lJRb!8{z8YYc7_d%3Kq zf7(sk=*|CJUCdVGu!1Z{5J3re%rD%72rAHTCET{qL!V%fIceVHeuvTm(D6S7Fya0O zse}I^hAE5}9n4-(#XwB293blqjl!AB&;?NVV1V+hy-EE4D>!iLA^ERZ4CvZ`-WLi6 zi!%8R;J*zEDG?VHHNK-q!KhQKtfiHvLe_oneN0+;L0`LB@!^8*mkQL?tKyj2qlMv4pzla!LV zI6YMdMIY5UJz!epc{VNLF`FY43`8c&)s_a6@TBYOYw@GSJTq6<+aV=NBSS+xd@w2A zhbgdFuB12qb9=T8a>re|;GE%ke_7Mm=tX${+}ZV(Dji=OxQuR3H+N0OY=HCXVcaV8 zJtzjR2kBH#17a-PWU8<_`^Bs@x8y;>> zNFm#ae{0u?jv=EG0#{N1I%)>d=h@oXL$<1#uY!VtzG7q{gqYya=CC_{_jI%Vk@;hO z2atCMdSTJcM!y+=XIx&s0;DnEYpJaQT;L#^nyG97e^gRYx^Eqw)5G@D`4ZmcK;qgT z?Fm8@szE|R8g#y$H0TW?f&)%vA7z1UKtXMHna~x7qP4m{T9ij&w|jZKkOPsVzQgRI zq9&`uM&PD00i5?2x5pD&FRWw8(q`qwy06ipH4=t`TaRuR0}%xNy|3RwSuQmLAY`eZ zP9Xh@wK?dlch&$X{S^*}9M1}^hW;E-xv>D7E1jQAt7iQ>q2zCuJNX44iNNC^RktJ@ zJp9Ps^3l=JxDF>kNA1Q#J5TmXpaWkfrEEI8$AaxQK{|ZapDA@_?|<4h6(w+J07oKdi(kW zqN`DFX;5x1s;Zz=q-$mFL#E}lMIeq z8qz1ndOJ>!P8nqf*4GIGs}a^F+H%Aenq6K9o&(WSUr=GU#CDgZ6s^a-rwY>3@c

    =SL20H&H6ELKN8c%`4bw5_E!Sdur{2dfmRKY7Hbfv~FWo8Oa ziWgF}-e`o5Oer{6Sl@CY`;}I=3wNhOyFiE_v}aJHX9ZBbX>(S+9q+kJEuZeM09AUn z-h3t)nJ~;d@N*MbPK%;4h-^Wzxo(p+zOv{gy`dtIo&BwW3I9}P5|>;SHs`aPoE*ed zjys?X>ZPo{!RwwgS>sJ=@s01KYg&{0+c?{|*9BLhai~oFolk~0UTLgF#yYqx0->SDw zHp@{|4bjmP_g9DUadDzgHW+xE%|=R~m9oxk;u?Qhg#2f*h7q{pPH$0kK&$Zh%Rg7u zf9Xl^@bHfGl@RB@*~^a+|(w%yRIRF-5BwRBzS$0 zIl(_M!55V|VK);XPAR#U5L5AJag}H$iLy@E8lQg>@xf?d(kKRkn2$_?9R3Y(^`Y1c z#mE0`@A+>k2!sUM|GJf((UVJnTR^5|Aw^*eXVzNZ?Bt}fs%jF$z}(#U#szKFu%PfV zaFIgd3!Dx%H(q1O)sz(%gCMirV<)IaFNW-;R;z5iOy7Eh7z?l4kVHE>%y;x91f>G7 zgne>v$ArKg`{(!WyrLqtjR=xEpLP(Udjafug^}6gl$#lVUj>O;fL}+%;eMPu23hQs zt(4{ZW1n@pN1=rsy}~BT#r~eW&>Y{*aIEJeEkwjf&;SJ-Ctx-wE*@gDTqqR%rwzDe znI_o)Tnw@u|D*fknAUtBe0`G(Hm9R8Y4l&n6$TgquW*Ea`RQmiS8t-JxddWov!$w_ z1)UKjEzG;4_~C2bVVN_P+Xe@DxBDrFJNBi)`~WRH;taT%}03Dj^B)Uw70xy!=9b zK3QdqN17P<;hdfK%&KY4Dat7Ag%$BKt??%?N-+)^i(MVg2=t`G*BY`L;rbtM2%sP4tmLDZ@l9EPgY@- zw1k94^JgRs%vzWy_tR6|jYGALv6RgCc%>@cx6wf|*MFA(Cj30uyLKcQz{qLDq80

    yc>X?)LXrh!et@MBc-|oDYF(NneN2muMH1?t9)2J9vuMI6 z%sKH>Lp?2lEfJA-Bz^55ImvR*&4>oPvMteB+*@G~qYUi+D2CUR_3T`<58tC* z4ppr(GRgpUP`BBYfn4O2W(6c5{nlEor|Z9`mM)dfX6@4ZxGXkJ@Du9U01!UlCLS-F zy=u*AI8?1^+SC6K7#zHb0(Kp1ZDw4WucA6ZEt6fE`^$3%=uw_?-(u%bu?8iWU_}7c zlV^MPh~Bve8+$GDWmP#P2RrI_`aOuoQgt&?815#fBihKY-7 z^!f8A!(O>1%_Y!QZ2$r4k>8twozB~e3QJHD$?b4W=0$XHnEzS1LbFZeVh&g;nu+l_ z>yfEpAhV4>IZ4_x%f6lm7y|~-jNOfFcQ-7;$4B^>3a;%gNZ2yMxhIgS`elwMF1N~g zHJsGIKXS6%K}*!B#~IBX+2dJ6MUsSpdHsBoD5W3T8UJOi{GB2R2?-Hgx_%Jp$6H{e zY0;8hI22Y@Ok+I;yrx>aZO)PNq^*L3!^32jCf5rJlx48b3OWdQzTR6>Ipv+q+EjeH z?63p-#fyeRwYWG4o6aqM`7+>%pLZ?`m&f2r>eZgFZoR+3{basXPb!8am=j}YZq8zS z3ZsolDTj|fp;{8>-_fDROSxQc4nK0P%G_~(`(b)*Ef!t+)HJ~Rn3lsUBG^&u;on+7 zn4?3PKj0Uh2a1;{?ag2)oJwctlvZjrx!;9}9KGXEZq{4(1uazBVz(cencoy4aLH=i zDbWoL4pM>MqDTb9hH9z-*n80j{Lh^-78x`@K7Sbw3D5bMjiSAEi$w?^Sk<3Y3~+hB z?p__*%$%%!58Td0eb($SU2Wm}J#Q1zFNWm=yw!czC+o9qS~d*Gpnb>b_Vo47V2$KX z5TCQ=o+NEvOD`{b6H9byMYc5%coKoJ!n%>dpuxGmFsLr4XPW`S!;z7pUAm{QwHh#_ zLlftnNM8SuxHUf?0&#=^dM!43okpM4CibqQ6M9|fcFpF~rpUB8Km*C8cE8@Qb6Kxk z{pw7_PSmWLm|*A7m)N*KE^={;ByKOh_w z!G4Qr5)=T@^V2UFqQf z&E+Dxw%Mr#h=yKfYF_=4{|X3z5I`sP{@gh)xXDm{ z>|+as&bt5!?Drusjwck~UMY#GHGP?V&xEKig@nh1af1ZnVUB|PdBU)hV(&~6J3Eup zH?A*y$-D0Xp3o!yx|CFXHJ;t0%4>wqHX-r0_QAq#vE0)^tn&1+>H;y-2n7Z#UNbrF2MKY0S1C znax{n8GwT=^qyf$9uRdvpH9y;hud#gVAclPaQ?8W69;Wkn1eRYn?}*A)af6cwu9q$ zpEhG}k>}dJo&Y~HrEVrOa=@Fjw^=+cVd&DN9IxL5Y<#-dR_AbwJnORV7KxrX(zsA3 z6x#D$yt==l?Hw1H|8PX7t*G5zuGv7xL&{T?*VzGTV*j?){;d*DN%3tdDJ!c(7f#Uh zh~)~^XI){?ZU>bQXm_5|*|xIm(BZXV`lBD%Ze~77=O!hfp9%G}!g&(Hz4$!=m89im zCzKKwXCnYTQY!hCg>nn3x~#IC2s;6dr%FhMAZy*TaI(Pl9(93y7Vsg~V6%Dwjx)OX zsm1-n-EO?W^7R-saJta|B_ntAXBYz!#Q>qDEUVF^N{vRlc> zg!XfM{ZkLZe(I$8op$IIbN+KE5@>(&a?|R#BkP=&`L?bGPLXbO{zAhm1^YlzL+3-o z3!a2Xuy2b0GKKrDgGL@x^Ihj0KV>gVFfNPKUu+2{y%Jsu8E9D`fb0|%^x&pUpF*VZ zCtXrsZbwS^@Qc^_{wU}5=CL01wnc7@vBQOZZsNv9UFWSgwYCotVO(7N`2j9*mjEbe z6GF*X*eWoJ*YL>brDOq@F6^(hO<{_wUv= zq-Jkvh_tFj`CK`AC`@sya5}RS|GN9Ni_^$l$B0J4UciMj$fGnj!(dAE|9ZXId0b(c zQu{@4<9(gE)Q3w;Q&rK^^3VpvO0$E0-$2NZVwVQi%@s0`0d%OfomnJb2_sEa3nLyQ zNpGKszkcoX>Th>7&3n39emKAfE8O;FIK^Gr48|y&0vO~N7w#?jJnxu zAz%m`Qc+qcxyVPkN3(T|3@ktcVV4(+g7XuD!QI{y+qoK^4R0O>)ZY!&GNh>R{i8E< zG4;&`ZHw)=r(ql-f4}w4R)G2l)=xv1t~(5cf&4SU&JbR@3rXV*N{QGZEuJ6oH?iw; zK=2{xRKcN_tKcGw-L78l{M!^@B?u~o{<;?B!Jo@bex}uU| zc2M)j9wAWD!e`Kpp{x$@!hI*-fQs##x*`-T4qRwvu-6?;KT5yA8V^Bh%XGayWNX%4h2nCt zN-VN#SHt);MQ=?P0%;n8b5Sj(?>C(OO#z|>ouT0o(cawlhrd_oNg$tr6UbHl@+4B> z(OJC>aGl!cJ-7H=yvHJ9T;uPbxFT(Xy|>i(q=$(@&CG=M!Ie_c_>lp`J0LmXnMkVD zbSI?2j)%ExBG{n(#vrGeyc**Z77fukPPlW1I3eT>S$b@*4zxQ&8)j(3>7p_@rd%%z zw_P`ea4&gf>()0n!#zg_1Eh#9B6*J3SXz@`Rai3`cW>2CQrRyWl$Tm=epq)F?!F{`XLJFNn-Dqi zMk_iA3{%=7KV-=|MbKV;v2?~@i^uZDT+WiqZDY9p(JQGgz*?h+=EopqveK7K_#KY> znsFrp2F>U zBKC0uFxdaMl;}-9G(BC~nZgD)N;3piC z6?pOTXS39%egC~v{b+?FEAw1lO^wgt8kC)4k)4Cadzn+Z4wL{9wF+H;=QKFYHVDU@ zc=wK0E>kw6g{AnU3wAphrMzSY0@;sCtpvU+%ChL8jthqpOWtuTo;QLaQokKn6|jU^3^z?@me#;YH$+o|s*pW|$^d zjmKoSM5AZ+;qD^^x}`nZ4%m=@3@ivIW`*_s{E2`T#0?6q&WD9ifQFtu1ZcCR20eY> zzcimF%1$YhZ7p72U4heLpArD6?lIoVFkMBr5_sm2MkF9hT~0+s#FPM(!l8j41lvsLbx;!o0aK(nLaPN5EtE3p z6q$x*luYVJG|J$VJd;4=*EzN=2Dx*mNMS51tEf+KP$F(=X{n;D?BsMsq-ANX5z1|~ z?8r}W<_)|aaG}7>s~;zw&hB*FGJ7O<`I7a_CabspYE9MiCJ1|QFQ7$VU!SO5jb5$E z-D%ax&}hM(47im;BMTj_iXZ!1Qom*9^S{8LQatFzm)Ye-+-V0i0skwNSQzcBiMU$w^YGxql5XasB=hS zXY`_H97_NN&VS7g7`eq_$o>!F{(tA`{da%$f0IT6{7m1-Gg?&WR_4|gvfdcQ#3#j} zUUQOe0e^+CfqVeKb9_23E$sLj8=pS-gk7AH*h6jP53mDpfh2fr3t}2m27FNjzN66w zG5YE3|N1vwdO}#gyqJi(_@eS8QTiYQL8yNN^*MzS5#9gVADSV>`Wu1k}5&4J}OxmLG_L?IAWH#ay5L zZnGMlQbX$dJG)EmM*u4R1NF>Sa>39PVPZnU@^cI33k@|8iAsc6j&Q+zH!e(HMiaM5 z^jB#!=(9#2foddX7(DseT4xR^))gfwnX741Sj2+;K}X}) z%y}b0o~hvL8U>q4;T>Z@lnycUI|--w_4X)r=i6X*@VtIe>vwM)>d@E|J#EjdBy6=p z#Y8MMxiI^n2VOU)i=%LhqI+v@a>;tT3s?Kk4v;sPRo3aDuA7n3p%p#LlrG&K+#T%F z)_=IFxRPcMH)%ugj|$W2x~3&?s3o?7i9pjQRbLGmjEudbah8)9@Sw^}l&24p#ur8i zy}Q*w43a~=)pt_t8tjDPr|%kpyI}fiT4XZ7l(-b9z07 z2|mvsXrZxkJlS;6{>lVkCCuHr7U~?i;r4t8G5RX;_Uv}x;_S`_^h(y3diU>PniPCt zG+n%sUoX-r)+j={bF+hAO>&fYqd_PTVf?p8`H#imKh@d)zGAhHmBefc%|Njmc9 zWj$E26aJ~jc6PQllyp|MG+h|D+;5f!1~$z&1YnLhcKq}ca&9qgvVH+VB#TJ^1=29T z$~3=fsW@pfxEP^>ZRjjiBRyAMfqwda>K_nlN#IIoUE`#se9wlFC50?AHw`I$MiMRw z46k21PFl>nOI{f{vDt=NT}e$@55*i62`w!yYU+~euhip`egw1jb6>Zzg#RIstOXPb zrcFB3Jh5t{9=@WcYDN4vY~&w8%Rf#uA_>7q7*V1FKr9iRbokd8_-_LXi-VGry3bz^ z8TzGOgk;V?r7L8x+fOm-;DuI1`WHMFyb3790G~!R)>-|pL3LbaBb-PqOm4luZbbWN zB2ySl&dk4ySstx)sfb|&&(xDy4dL~Z!ah(D2JY$IMS(F;7H zT$(HGUPq<&w5T)jyjkeX67N;Rvmv4lC2IF3;;a*0(igguA`N&NYG3l^joW^`9-a6J z?A(P&N&nEwD=3(+wI+^Mf$g;F%xolWN_St0_F~`CQV=aSK$}fZO^xx%r7)XV{IvZQ zLWpo{F+#C)aJYk$(yun?V~K}+D@#_Qd6jyNBx_ewv!VuA`Md|o2h#^YxfTkF@<82~ z@Pu@G#~=`%R1se2Nh%t}%E~&<7Y$fl^VV(bThMRM^3q$^ZS|_p$a(+yg`nhRcVFFY za$^%ns~}vls}srNgQ#i`FbRkeq%b`DCQaAW^&4jwrwiy4YE~ z>6#iEEP&AJ>$}hjCeD>f71yG`V zkpwpS`Y1T4HO|M9AbZ>`(%BFAg$;=f0ATqge7Ay8@4L@Az(VE(frKNFgszWQhv011 za-E7~brhC>_|s^!jL>6tdzuAyG<%~O2}wzfb~BoMdV~j&;494K=bms5BfQwxi7{kJhLRHDRE5C zz3uHZ&xhUihozLSCr4jTcA`fxMT7%dzPqio zpvz8p(td;L3T-UxeYEV-8AIHYOs^H7sBb)$$)cj7;&jrUC*b=G-Y85=RU901$8js~ zE{mXuI-S14j~s9?CLXOs~6riczNVg`VU}8pC1V#Ip`+fui zpMDR#Pqu^81?!0k+`TLz2rn1*4!~Ex@q71mT0v`h!jRkcy^1_RybN6s0uJhXOz8_$ za>w$ZbauB-JUZg38>EjDjDsgj1zfK3dUESOf0m1MXNCK|efs%xwo3_gCQ{(b7+Cqj zfiimk!inzyt%AV+n;e|9ZfrtHKBK>a)`4eisc+ySkBT;is6~^~JnvxxpR@qNvzzB_ z8XCDCOThaWZOE+Db#vp`>qo-pd~=7z&HF~9zpT~N?wc5`i^#z;*? zQyZ|JNA|`Gz1j5U&#|1-2JFpE)=H7h%S=%eXk}KaA@6=|WraWV!CZ&OQ+%!VZelEL zZsOYqYBok_GBoxvLeqJ!6OU@gMSIvAFjwMl4?vg>C;2=>Mdgl1zQ1i`OW*3+S*~Sx z7cz9cE~rWcJGE{x&(L#KTwct?%4#qT^6=j*xJTPOIcFTcr3@(*K|MX){1H{X{WD!~ zQEjqsVf?m&o#Q(mhdsDeFF!5b$jB(8KL9Ks{Z2J(jZ4iZ(F=Vhb`~jBQ@q{ zm4qUqjanu=Y*bE2?g@~PY@gSbe@ifV-N9O=*+x)bP?_`Lq~f5ZrG>}+TI0txn{%TO z^vzh>O9vuu)5ypWK6f)9T+Rd|J-6A-IG>7h<|<2$RpLUJ94$9ltln2RH8h;G@ey9| zQQ6MP@iCh2!6L(-UH@ry8v%ax^N5JcbyW~sntYbyy?fJAlOpwg)38pb!}+eP3JVYz zo{kokf{{-;T+fasI?9*oZp0N7aw;oz<@Nc0I0u!@TLR|S{Or^!pe{O)vb(Icy1Y+Y zd-gmY=5jIYg9CwX2D;V`^9xzw=2QD@4h4uRoM%o|CbRSpo`|YnLU3VKyCJ!d32FyL zhh71Xz&x?0P&vI-W%#Czg)3Bc&H(eYlo1K zW6!5OO?P_KR8$-E@6h$T#lYDxITS|%s#Uf*z|k>+0f}B-`7*oa%!G~c1xo~Vka<5# zlJ#aL|D2|)RwiZoQMvYA_cF7v1Ox;`6_S2I7H@TbUhtFutNZP}vg!QCgKON&{zxC6 zjl?(k4j)^juaj5NBuR)|m0tbUsQsXX>4i-F+L-dyn>TN8-sF(|zkTtGP>chq&~ggFfh7|gH+@^9_sZLMYhCL6jsp$Px&1H)W5!1 z(16v@q%3h@A2ve{^L?la!}PR4}M=^@zn~g22wY7YB7*0i{!N(`1 z%^mstc%?3zNKQh6T7L@xK+MF%<_8D$Vae}r9h+(!i=^;Abn8tnsGnDV?plW5M1+Kp z2G^~bhK7VftnF-cc-edcwS#^w?0X1&nNdNZN?O`7>C>z~du%NhO=|_s6~!?X#y~^> z1LA>*41~llUo8HtPx!}ldF4F?MI5ZPWo6e8GoBm-y*|RVuu%A6?j=o!3x zw7}xk&{$JdRW>p)aj@>auwbXua(P0&d16*TWp zn-at2G8g#lw&)B@k=JX_&WyaxjPtEmss-&sv)_Ssj(bfN86AoG ztJK0m)`)VIj;CtC9#zPrEGvO+;s>DY6+Q2#8q+I9Pk(2}=j-Fhndvyy%3FfPpy+R% z3Sf4KqfpJ~_2M?NI}66yQ}Z^^VZw0jIvvkyZ{L!ti$=UZ!i7dAP*Kngn!Y&_JwOM9 z@$n3v)U0HO)6S^kVwB04+}y3-DpGUhx?9Jqi0;gSWP_AMpB-XgC26RsgNTXJ+m0g* zh&qMQ(#GcIP?cvZwDjQNah;qH@$uUpAl+nT|9C#!4~-1@4E-q49TEtcWULUt6)T28&hki%}2ZILPtyWW%g_skMJ#KX2sFb@`ZI?cV&Du`_;w8xBY5DLTypw zGq2(k&S7DeAdJbAFg&>sF2?#6FPt6K9o!Ny5^08|XlX~zT()|jTUs=wS7mU$%PPw7 zxval9)R;*&rx{vH{{FZ;&Z;0|FL(VpCfWOoDh$M%`&qn`Hs_T(Nsq zU)prSjgSr@y0&l^hf!S;Tv}FdY6T@+wsKKk)z-O4iZ_qR+Mo$YV4Mz*O8X~bU|}W3 zpuoq&B|rp2UJIU9ls#Nq*VNeM3u~?P7;nHZwq|*=ZKgzGj*I|n$tX3kKUL~CZl2+( zu`%42S(Z;@^p+?IAa>s!?krp$p!fajjGJXSzMx-KPi{$h@vGNo3DSWRkmP5<35A8C zLOs{TnvRYOYdmS2-Zit^Kgat-nvog9>KYp-hQ?7;i=OSAq{qrTI{?i_T1w{4hnhnY z0p8aFY5wJwvTp_;`XNpASL<;34EuwEUoJXaI`{*Aji&U3eERC7!0YD+nPJN z?k(!%RM65w;eojWqQU_cXX7utFWWa+WEjbD9)MB&n$YV~$4vwF`I}=5DgvVP(MYmv z7qQ^*SXwd>;_rfd?#4R79_!l&xs&MzHEUT+5&=ANBO{X0v5Ga%6DbZ!21Y(g3JSb> z7DHn-h{1OlJ4V*QGlq8!Twiwwcc>ju@P%TYhkt#vU5_EAVRqdq4ppm4Z*yTo5}ka6 zgjZOMiz9K?86Fu)jhEw}+?`}~PE1HnHgh%%lp#j>RLy1zDKtAb_bFNLjV-A(egB>2 z?E&(sPv_@X56*7H7${u^iYS6X@0**x3vTjsWgD%7s^*o+Ng~xUGm9c+J-vx%AOp-u zo?FmFdc5)ThBsCl8qlBkw8UiK&nH!oo|2AhA@bop66xeL`x^liJl-t~nlOIYh4nd> zj^mrUhV7(rBsG=+vAAEO*_3Pl)&kH`>WO1?$g>Q`QVTF%zwYvet368c@!=2RrwaZ5 z^5yisVq8*ER85U}xb+8CR?uf^{zuEg;;TD)T+)^v_s;;1+Fy`giYh9WbNpc`733y5 z`}&l0b=y6IqmB?ab+N1d^kNLf=_$T=iyZGd^4G;z%xJ--WRpop6pTFY{~U_UV5hfT zyM^^NypZBu=vnD5wV3BsmYOWEAasDob%xvRC`hFDD3AYj?+mw$_^84oz%}h+@ zzdOh|hoz?WYhCcp&CVvr$DbT6&rA2-D1FY)6%i5X)jLc~3U2q0 zSLvy#GoMR!eq3+&1G1BviVDF(M_Y5VZU5*CAU-g81|O0k!zStOXHT?B4wqe9Z^cqh%fK zHYg zS`2(^-tj!oi=N*4!ACHiJr@-@qrqx|RN=-{_H3n%U*<6cZuR7s-FCnyl31B~uy%gu z;%^cd$lmzhq~QB{Sx3iPUb@dUc?D`n9U`;ALA5Wb@}o}>ybmWwsp+ZYqFtSZh5qLT zRJA5|Xgw04NShrotsZXIz+LEd_Dk@Qu=lmaC!s9m3#<;8e>>fNE*T|*kt)uodog}@ z=gVO)oOl3iVQ3^$XDmoWM#g1*iqFlh*nB&T#xUCp_>^!+@k>oMcyue%Kl5{EQzvY| zRPQx5`*bK00*I-VkM?S8{PB?VAPFkh&$M4Qi{(H8kP%tNF*$g2Gy@(u*ZTmt5=X&L zpb3qniP$d)6}l8o6h>w$`0a#xLI4M#cW7WK3WDxYw&5k+k@;VLyfkcbaSYj$Zj?2Vq zrx2a*bNkl^&TQxGEPcavXaC`=-<*|?Hx%z(64*%ejEq`-wG9h-R#Tnw$6!8YWExPs zYu^R61!rT8)NGD?vJH@!QZiM1h`wo{F%8?2G`fDgheC zl^8$poFL-JBNz7O5xq)yZFWxJS02qXnkMkB!`;=@r0x8$#Xc=0`n?icYHA9XxR--T z(9MzY!5CrR)W-2?=HSc|WHvxdtU&as$si|JWXrqOxCNeWMbz)(Md$z&&^U_A7>e9) zt=}h?O@^$8(GLU}^7G6UeJ)_`5(Xh>NU{a9b`~cY$;snu1EP`$RG$Uu>CN|Jexsqf ze)z4fq(rfSG$)SujKhkGdi9GmLB#yMldt4Qdc<6ovj;YK#N% zjF`)$*`%`pIlG?saKs)VEq@Om_qW`AiJd!&;v^y%QCi_9@!l(=N1f(;%E}r&9NIos z;8n}*ycytG2=H9}py2L+@(x#{s<@b#Heq9oi;ayW^c5|=2pdWfi3J5MVw=~=f{vE- zyu#kCf&R+u;pZ(MFkWHQYrFT}j^B#DJ2!Pz--&;1<{Be1CzWNP=-@z3OZ#yiO|8x2 zWF;pDeJvv=CwTO&Y-aOZF^Kp^+mGDHKN%3~MDWKaAb~Cff5xRCP!Pegr4dfU!wXMC zc-|#t8Xx!Ks&jCpcz!rU{q$Dhey?q8QqECXPEQYIF2Y^H)TA|URNdGvQ(+4}s=z5NU~b4ruG z^bi{blPY0BdzETS7cFlY(O!8v@|%H(U|veoCUO4pP}TB+;F5xwne>yH0$PW63TxN| zexw*x@vu{7{^m%W!=#6dH!Xs_Dy@O=ujqfRE~@CLh#9zxB4OB*`Q0wEJC{%aNs#mWz5a;UamA)McXO`D}nf#<*&BmBT^aUK#U zJv~Z*9on;nHZ>gw2bqesh*5y>#^q5&Crr}L+E`A(l_7`dNY3F39t1FI26BHFA5*LAW z&`!|+r~AaF?iD#H(aP5`?60k^Eu$Kp>%BWdCw2c#K@n9-S!h^rY4=nOUKHD1Tm`Jo zTff@eZ~kq4eHtl?k=Mtdj7%%l&c$fk1Nx|H?ioCWAPI@dlnOU4^LVP4Y>v1fbd+m? zHH_!~IRwy(D3bg0PLppejD3RNrl&ug-^ng79|Q1F1Om*?(pL)+^?RE(Fl3C-yXi;T zH2rkYSSW^D@AP}&5)U>U%Ml^G_s+3o_3NIQnw1s;o$$~7^Py<&gfCmIBR{z{rSjt8 zqeP$xIE5;N?18$5n%c$+HgG0$a|`Y#8~j2nyUI_F3U(L!y9qywZ4VDHea+yuTk}Ma zj>w3aS*lK7{K)=vLB`Tetv;kPU9B+A%I%`7^;CMd^$`t-evA|g9)=#rw~{H_kujt& zirRxXJ8}bPUf?;T?g>wn^WdKBZ!8-W>zV7#DVbnomg)}*1Dbcl>dK@#v2}tkr-Yxp z$DC##+OP-2oFQ+QY|7H<7j1FAB`&G<@r!;Tum5Zd;XVnw&6evTvF>U2UTcud< z*O@{R$`5nh2f)P_K>K3+A)XCKn4@yIBfUzn7pIuya+=`Eu-W$JT5BgoS2qL8!ttoS zf%A=7L~~Ta&^PeWdwOxdW=I6sp4K2^5fCBTM+5}L2BK36Pn_v}+Fz-k)v5{{b>-om zNH5BrPBczh;2V;VH&n4jeJvoKu+-GliLaYU6wK2GnqGUx`LVpJJ1dbdhAXUz&}k$5 z5}ZFjW6cO?G2}`sPWBCD)%3$7eO~s zRqv~+G@{TwHf-Z{eNc02OJ+yY{p(cRHX){!Ra$EZ5ZOQ_AtwHwcm2E`rrQt=iU&}{ zF~q-!*qkF36!0@{V=};iyw{}X@GRY#s%Z{m0SFFuS7{=F0#qa7us5dh+j?ii;S|Nm z(rmSgNpH6wpGIMe;`zB~M&zWr_cN*2v${7Zr4-S~x?%y#=TlsCJ9XBGuP>s-sM7Gu z)zuGB3K9_!T@mRjF5o#?vap0t%z)W9DH*~|?CU_9wf9{&R_4v;=RH`cXjfN_53odC z-GG@pGT3xo^y`;mx=N89SgOyafkG}i7YU`)-eikB#}|0u3tUNw zRVE%CB)o;JT(EP*wyv9MyK;e)U3Lx*Nsq8jQgrg354+z$+fBx4D$rxMxgo&D_5pnN zd;MOKIvFtzm@+v~mTxo93l>j%ji;UTHIrZx&l!VGzu3ack&1!>=*X8Vk_|L9qvGQJ zRU{*2rV34xdKt>fhLe)EmPy6d;Nk6ddYmYt+_}!>r*o8)t`*hfeYyd~;e>2LC15|B zg{uvCta9C35bEw?g%DTS@FRxpaaojtJgTgR8d8Tu5aCTkKmaCQ6S3MGU^WvRd>^gq z^!L`o_Ysk^hh90y=U~!|g=G~4x-&5|0aZ*xWh2xGyBioP_?)Xlp(ZH)+EAgj>#y7J!K2AQjVk5&#Fwik>Y0w+&*B%tND{P2t2FH?uJR5}OpJ44tFMQ2+X_nhEGIWEjFe%nh z3WZ%Q+d3j5GQXxSNh#c{Zh}F~6nh?B36`7dTaoS#P;3h^GcWaTWNQ2?lNSDKK~A-K zZZWD1k?JaMPka%gXb?h@Yx-ZuJO$qE6-RMW67J4UA#)XTid5BunOEP>%gf`b)BRh4 zrgq-*r;>{&^~x${1PqJ=nx5cnxH^R^*psX**@D-L%S-@+xU$mmi!>|cC{=7nm0;h> z9Pju^?sTDMx+J!Y5oZ}Z8_i) zTIKq0CH&!9tfHoBIAyiXi#r#yR2-fN5m~5d>3{wNbF`ICr`X;XcVeO_aw_5aP~0}j zVE8_^4%dfCC;}Sfo&L%@Fsc~x6EBWcf|o)6;(UI}wK5bNgB~#sr|3AH_dUfO8KV=% zvD5u5H9J|lF44SB^zb)1_3ffMn9HCwwu~rcg-`Je)w%#C0udSzH%(DGruw3WCY-{^dxGOL893P;FtFD}hkZzkt~LDBOo& zb^6BFo=jgYgM06l8MEC?t|FD;;TsVf{~IU&@6GxQX~UZ^cP3a^XlsIY#zc)7ot7rr zO>-*afA64AnonB&A}HcztSB$u_@?2GM*RQH0;E!DsHtryW`1f98I~Gz>4zp=QO<$? z2i}pKlU3i0y$z9$AbnwRfmc7fQtiLD@iKZ5q&+ew=2&D{x?L3IYG8+xqHtj#2JqJG z2OQR1e}2s>q-bg{V`r*v&&wy*gCDKJ9bU78m0&njQ*XspWNU}KLFo016X z*%Omhnr1}|rxJ-eT#}5XIIBSZ0Qh^_#{9~}$9{!=E-SjuOTBNTOx-g{oipvIU6xG#t?p|g6!vg=@;=+P6DMtJuFd#TqJB}3m zt8u_hKIi3`8|=({XZ3ibw%g%;9wFm*k)N0wGPI!(So$hYuB}+8urz&p|JLIe9df4!(V3mXpoq=M@qCjm^YuGfBZ~ z$LbrBRCK<{!N@pfqmSM#=zG%+k_*w`p{F^ldsLjJ7klzQRdKXD)vm98pPb}6 z0luZshWph@6I-hl5>gN^C=wCt5*a@(AFXQr^We|!sLEbBLOQ2uf6R-I&t){*Q|x?H`{T741Y>1A zmEpEMuuPTaub9j$BL+*880}!3w{dq)7sXtNKsXYl3|U^*i^r4*q2_=T1^0M5pQdDH zjyv)A_#o6%9{G*`_|4h2zAlm|;JUZec=fi}VdLr$=m#8ZkRAZBuFkOg{-=uAMQo`( zj33@z;a6u41u0Z^pm)Uai=XzL?P znUiA_^x(nt>>QGCstr4wuP5%Al6aNV)c7`EtcYO@`Fp$V(&R(pF!;M}&dcpHZ-XfA1cj&>LDP`e6Y;y98k0NBNJLNM=DE=hMQ*Qeb2Dwj?ffnx(lt0BxqLUk zSuihtmXvhf(96uhF)HbIsvC3^w6mwS2Z8jz=085a|CgYpnr*_9)m+JGkxuqNL zN}hkKWpVs!N=Iss`o_lXxwT`|k1fC-f3+tb^fLZrkl}+yg+1~W3LOYVy35X5WMvY> z`HAIVZfgl2sVuLCqHGe540w#MU$+T7kdab;G5K^@TnODsmI#mLJlYbOy(1LycD^}+ zyom@$E2Hv9dhhhFm7iDBD8y`Z|G|4 z+kG^Pj`ci4Z;>w0$T+{i<4S6ET$Ot<&u^_&mXu5m;-Jh}bTS;??d~dsea#S0>acFQ znm{5VN>87KyR7YfL$}tAM?j&brdL}$Df0T80S^`ghLUpQ#@0Icb^HZ+URyhn$*lhN z2dvl%gSNaIe^csKYHv^PA3wOLb;U(|Z+iUr^KiRU=J0i7F*&~rX%_KwX(b4MXi!Dx9bMud}`b-4$!oT9h=&Y=scTtTZ`pkjLUC>B|cN6l|KSEXR zgsFdgM;eNRbv$2%6@bA|NY|!LGx0KF^Cd8@51#S3<||sy+NXN(44@9hI!M&p|QVLvA?l< z`*_WhiP-c09Su&~o!DiQX19J^9aBSzM~6K#&D`4?T5T&5*!=j{{%3O^Nxg}tmL?YY znk<8iv@FeSul=3LX^uG>v?bvl;KkCNF}%>LBUQO-Av@k5>h1oxD$vAJ3h~$<2vhx@ z%3p7?QRcf#tNi+|P+pB!K-QGpTV5^%+fwqRzaM1s!l~O)ium5GCs4y|@2z*XHVxC5 zQ*4Pn0A&s`Lx0=j)3s9~@+vk5-Tk{T*|5ONhqfqnmmdifLOf0zLOnf3INnp(!^I>( z3aCshR-rT9Lo9*w*=z<|xuHIPx(A|Qr;oaV8c5e`%ZOD~u6(qCGMyLy2|W}cOxQJr ze8&U_rvSLl$axD32aqsG2aexXKK%FOeHIUJqb{o~g|v{5jEoEq4{Nf(CirGWT^^)IeCTt-g&|Tl-)hcmvnVvxGQ+Iz=KOFTkU4pQc3~>! z^~^(uZ~>|k12<_71|vRj3Qgg}6< zb6%o3)1>9?V0lG27eip#mBvsbI_ge>0~76uc^Ua6D!d`7wC!;>NAhyMk<#7UpfQrBbo4s%sqW?d+41@u)=cp92-z ziF3o+P>?MtYasG53Nc{*wuNR0_MHjOsmxETfDYg*@~)|!d=Y%tj8#)}Y>xd6Knk*Y zX(|ymE{wC!&@mO!z~eq(Xq_DJ0)i_&8GC_`pvH}ol$Dkp8rtBqUBpa*Pp^@^+pu4# z6+c3%JA8DUrOh^!_6H@9!Tn>a`kX5yz=hgfe9+r0BkAH+N?cu@crBapZBxzJ7W} z?zGm0Sj5E3>+>xo|9suo*XJQe&=0p1Z(tjb{{7XT;~xc~T#Uynehj|!_u!;ner~$TtCpalwnZ3w zB;}vN^fT`_p`9}6VDq663yS6o+85cTg@w&T(A$*(y|W~Biq!x4%ki(HEO(y$G6RFv znbG@tGlw-bBct3$or0nww1zoFxR#lPg;GmO%-eWWRLh@Uu$Q(N3Z#PO?|TE`G86Lh zHbO$UnKDCaas#ktpJ5!_k4)E!{G1+TQ(O5w71Kc*eW9x0{l4`_x!P`d5W#xqpW=ix zCnn!Nr*NWHqVZHz`IVJ2~!^7{Gpy`O6W+?h3FD3tk z0}aJJJX)HXsxF2O-O36JX%c~U!Ds10jg&Nt1(lXk;^6p(?uf^yB5*BKAm%oGK+4t|PuC7f~ zS~}TT83+hdUEY_5wz~CSzXG8(J>5#2+qV>IxPVZwQ3ufsTkLXq!b~&3`3a)8=8ktk zzYJ0$3Q8+IL14$;7tTQQwcMqlp-#|?BkbLr{iH%A7jxO0%GEXV68MTv#iyX9#Y;;Y z@Vh4$>;%pI;(!@CM{pfx8vkAJx8+DfCcXP_PJHEm7o$6utTr z^9lVB?NDcCc-V1ntYLe1n!}lCa@Y5L`KHLEygAy+TA(L%KKbeP!QtN;(7M1@v1SC`@r+|jFgZPb~|HIF+Csw zB?59=zqkGWwxS?$t;zlP?)*H@c{Gjfud%W+Ai9c9O}@8bLHt%;<>!y+Z^yhCI6g7W z%g0wBHHm;29o_xCwD{G_xMEtMiIEYn?F_bvNWdOUboJAj%|-aq3IybEIZPs{0y*S- zQpu*-x9_=~)J(^D;o7MlsxWtd1o0O$U{%9zjQjJSnNUQ`|Y4}QCMjj zMJXXTm3Z$%MqIqEhul{hJ>b4cOo+d=r9kiTA6ChC9U0aDbT)PM0fZgZN8iV>h1%S0 zzu$qNIH@cz=j1Z|RyjX$$r+3-uq7K$xpzle7H}jYA-K*J@OX;H5D&HK?)Lu>D9by` z!J_m0$-zP{5Do`;*ZySzP$_KOK*=CZ@1>NQe{x3_mhc(}7~K~GP7 z9WDb__dHebAXsre?FD@xu^n9cN{x5+rQE(aqKL(iT=)UUm zpdQO+0&F-ktbdsO6Bcp?lvB!ESMG3Xos;o0ztevoT2jJmqoIH>Lk+01=&jht$Lo40DUGZc0l%GS_6|^d9}_{b8>kN67bJbcbq3l`n!J z2RpwX%II$t)?K$rW3GcZou3IP(gOFj$GTQVk8;)vQIG|R9at9_@%_)}(( zUtU$g?Z?KIEn@CGX!==4b*p+s$D0pfvA#Ju36IOHPbor1=J@!-WNC`HgoMA`7#lrz z0K~~&-X_1TMN?JNzhk?&U1Pfdbsimmj{qKOeOGSya=5aU7$ojv64Zk132%TAcve1| zk|Ghi?@uP+hryG?uNH)5%rvCM(A)Gi~GwaMUHZ@)xz9Dd1d(zrut>dsz*zE)vcA536jiX zZ$8ceGp>T#H!@Z?iLfhcs z3e6^LEYYP@%KnMB*Lh}J+f6Y@{_4=OcO6-c^D4n%V!gaK(MV$2IuVT z=Nl*L`|ds+c?T7)?r|R0NgEv;|$=&TX651tsZG}&>)rriTkE^X8el;Ic(+U?oKiYHW;uY;paP$~7 z-`gwj(6Ji||DBEeGQTj-$IIuq-ujuA5RVLo=~JL^+%~N^KJ;hCg-O645eMv*Dswm) zLk}&21DRpGUuJ`ob2*;qTzCglnZ0I%R8f^bO#1QWW)~iwnwoLXNWsTmrI@kwopHE8`y~+>IWtnP0YIe~>DO2LXi<%75+=Op?$-~8n`3IO zQN%J*VORTZ%*gzB2d@#~ShK)Dsi8YK5?huokkZrXEry>Ez3;%ie7EoI@KS6Px=4Hm@>+*SXmWf( zw9C`aX+_&jC5Nu$-X=Pgy;!1u?Wd#CHpT56J@h1OfT!!fChz~?htQCV^QdAiN0{ZhU3*%Vq_QL}1>$k% z+Pkf5)8FKFZF0!DC%%-<jUUD!XM2H>%(atZpA8r^-9-~hY?bU@uUz<+|5G&2I3ow&(ELUu~(FT6!q@PPM z+4HtaV67|*yMd^n$6^CjQsfj?h3#nf6%X=d7S$F5rB{B=!UwB50FDU%{+UliO%xuM%QjFvZ}b zC7ek-$M~`U?}^&P2nrt9YD^)~M zy$$O5qII~Uo`kZg1jhh2q>RT4ed>%yO>!}YAhXI6fpp8?E5yniG~n{xV;dA;0!m-(w+&S`;=*+ktAbQ-2I-2TMXuM zbSVYGVI9&yFu6F92vR2`J}_p5QG;BHKXwWe@D%HW6?IR!j1%fKl0L^MPOq$rJyJZH zIc3%=L~kx-@KXo7Oh(iQ=Gq`BJYvoEYn94MVn#4aX#Qy5fZB;vxMf}ow{bh}A_y1t zzsXfxLnMf+T;9UbFfmAkkCpCTn35TGe? zMIL-l`A%srK){%1hoK4ER6Ii;>%}ZW_X9M=3c?bb7cG`Xp&$#>#8Ea^%GV5>q+S^- z1tR3pmTCG^ts`J^Vj3h+Sk(u}2U6jNVt9a&%ct^#F7PyaOI6rfvr&$9jfb=2{?LU? zHLH)`;SLunE98@a0zP90&5u&B@{u4WC=V-4VShm>+VJI9a_9{pr@|2)YYUV0p z$WUoN&QP{daTr^2u0#@6vdUF*AMsA9l&GA5TsTEo(q*F{V(7xMy#P9fs&>WJy1#s#~#2?fhMV#udb0w{z@&GCyT(b%`}V^ z3V@UB1sP|=e~V%K#s4c00ugdmQkjGMg0@^*I^)$q*cEf-6NS{ABk852QcglvH6(si zWfG#Es%(Nc)Pgsy!t*fIc^1LyyC>e(Ah-1G~W>lL9(hE?)DOAHsNNbH$WsimQs zGa_?_5s<4j0ntxR2*^bB>4F&SSvAx`lcY?Mm9l1Vo+w#ixeg_INl>ZSG9C5eI**w z5aam)3{fYU_ohzv`GIRN!LAq&2JB}He1TB#0}r_csUXF6P_G+Q3Njh*3#$1UH}zV} zzCsp36;7k$(4&&d4mkbc%q1W}OoKfhgoslTiOeSu_A?lU38puofddKA*Y$aIM9(4Q z&&&^;#^U!Yqr`gosbWh+jcY|hDlbu42pjqRx3b@_r@|ny<`Lcq$dl*L{!T*mw;}X{ z;@H3qU5eqN>KI1C!?|ic>?;txA)1N z{SwRLhgmez*a2lB;m&?w8**H74Oh%(i3=>MI4zY10`fav!8SHQ#)8z;-`*&(c1&g{ z|M#Cm!ur8W_c zcr#2sT3tgiieo zu<(Vrl^E^_bSVbyh`YE|nKme?A5t^Clsv$VT#ANN%{*8dG zKN0y%S1C7)zp%2Jut;pE;=);SkoYe72WB^2zOQjSMU5Y0PJcNEqMDJ0Fwf7W1QP_z z@2^Y0WA`C7l*l&+i`D@SR#bObJ~E=s>WY4kReZ$>7EuH>1z`+Wi|f;Lf}q+kM++;g zHe?F(k-Io&%=7dglJ)Kk4Ly?UVoktu32?>$sMx~Dj|x$q_t)|_hi)lbyo9zGOzTm` zzrrZ7PUpi6^3>!=pAr5YijpBpy#6`w8@}uSI#rPbLaAyEB3N2zDqdb6i?LQ2$gvb} zFCZEjZFo**exy=PgMc}RQN~(!j@(I(b`l^W%_m;UEs2;sC42P|w9^;ghft6nR>Ye3 zT5Z*&4%y07sSK%{UG*qo^+krB`NXG+22Ro-A*rIWu`C)gej~S-HP0%-EMcDN|1$I? z68w`#xE?JCeEhQzO_Ve_Mk*Ydf?x!@NW};BFOa~nO2|AB7X+3nwm;ob6(m!+C}Y{%uwjHyX+yeXoaH@v1e+kBK#@Uk z0Ss|`7sK&c2Xckskjf7zwt6^I81c>`t=f6NLHFgRPyYv{ACZ;pO_;o~lA`LzeytAy z$CZepVCa!*wtO5R?6~abaVzRtD$E2h>Qe6^s)P(u@Nb+FW>`V7OQRoxROe{VI}dDOKqS#wrt)p+4v*ANBb!-CSTqBISiD zx)6v_#bUh6(hGvSkzgfhet299V%ZS}4MlC&^)rf8v-i3lJ`r3K&w#6&u-P00}e#Z zPK*aM^mD=?uQ2i>=%dMJ6U6yXJfK9z^O8FtXoS{Y>9Qv4qkMJmLw-&TgBQ-XjZ88M zbU=)6y7Kk6rBb~TL5=45b?X)sGdJhr$i$1XWWoM2!_ZU14P*!v5$kg7&WG_SarAoa%u)Y ztyqc#aUMwh-ncnV71N!H%1a@X)__Y-3!yflUq=1uP7pZxNu%9jrb&Jd{1`iivGn() zr=K1drl}!F`jtkBK2fSC*)Lc%6;32$bldG{9-1u9;81t{Vl@d zkrI=kOa2uh#|PBLj8QeM3Gn;)TzbE+cNxVIH(hM{0!~&@ec3J6WEV^bx-cUZx$=CF z>>~(yce-fty0-Stghyp0t=>V?yCQ%DJ@-?QGOVl3Uz=}OL}@c!BKTH06lc3TaA>60 zTW3!$;@`c5GdRyl)4vIn8r05J)RzKQj0yMYe2Bv&B`|i*x&>LDqoN^Yq;acY6wL^34vG!IHt)Ua*5-!K8Sk$sb;5z(_L^2 zIuzJQgtrC8QUA`N%;NA5(kB>C7lg=V;Sp=*Fk5HbYnr$Z(CnczCUZaC)w&$J^r_P8 z-VPyK6c-CxL`Lv3+ep~7UE}dwDNO{!EM(qOHVI#8AnL_>#C>_cs_TD|mXUczC$Z2+ zQ7xwD-Z?p0DYKlsJuQpFJlrExlYYUbQGiEl^gd2&`wo2 zB-Q|ju{d0t&h6#0*>b-BnGzD5liB_wQon`-YbE>f98wEt(hIaFSQDC` zS+}hT1=dpL13&hsoSf@em|(A)d85)l8+id}N~~X9N*IJn#`>@tey=o@zR=xN^YuCR zQ9K_j1CLn9?takAD}e9BqSA68>Jm@3gkt_V)|L@`vZ}S(3rnwsq|ykznoVB!lQRVY zH|#DnLi^1^c+)1US&D;`B7tV>cgrD8zIy@ohikT7n(sWVR*%<~;ub_TvVT2ak9+&Y z-927{GWoj>5?p6&3&{i=^p}R~&UszJ5YWZo=3KWF3#MCaFVT{TnfP)%Y|Jma0;Ofb zqe+)P_GvFw)zrN1=M}Qr?_m-IY&P5;DDq`>#X z_|c4osJg4gxPcdnV4+}9|rkMM|2k89z_v(}i8Hv6}>%f;AgfO{2WVc6ofJHm&U znx8rwd&DGAY+mx;bgc2u4xf6tb0k3zHsv6W{a2PC6*gmep4I=a1qcSnl@Sbt&j>Tr z67s-FdR%JhM5cIh{)Ie&F8qBPD6o_G-buuy#SP)Y=$PA#ho14F_^`7Rel>hb=HvV- zDjA>n4nE5^G0DWgdo5~wF-0_0czsg0^NtC~zkwdwN$zYwZ-JH1;jimYcOAt4$4JZ7 z-FTj>VBc2L{Lj|%H}?|p7(+R!o7HU8UtwgI!5FhY?+rj52`_gh;P1QD-FDaVP48Qx zvT~OuPT(P)@6C9aYR;El;CO~x&U)w8@-Nq#RWGzIU39%Q`z8D|u86DYxWM%8ZbKaP zdneb#lW&Il4SI_cboBH?dKq_5wS|o{+J}vns+YTqLnt}-(C;fX5?9~;y~w6@Bi>tE zrPgd@O||Oe1_oZ&;Wy==;69(9n@}FeU23Xm`_S;2?3aX6)~xj$lXY?)ILHoi5extL zLGoam{qi?_{S(cC&p#bKJD*=MhRIS=-`-D*JkbZ#OH20eIn9q+FJ^&o(7TtXUytKZ z@mU$>0FG3Q}W+i&G~T?5v7YhCUCAy~Ol@+wQ0ZB}bN z&x6X5swc9Aq8P@ck-yIBck4#D_*=K_6_sdzcSN}G={~Uj0To!(pv)42WAdBx^n0H^ zyIN98kzT7}BIU~#)QZ!DoD|*2r2m`vI{Xq(t7NEQ^xHssxn0%TYoL`?Bu^RQqhf*0 z8@6za`-1J>Y9*@tNO;VId^j}&+1eknv&6mqLb0q0#zPwc>o1LXwI-Q;xE77$Qeo&; zs~nUxSdl%^5eh%N*m+)6H0&X7rEZ>PuW&U{#~Itw3~KAjHoGKlo_>M?K95&F@Ul!L z;A^mg!GM!{VS;n6Hp9~7s5|6UFZ(dm4HBU?3bRsmEV*GVlV(#Oi>HfK61_78pVM5A z{HFICBGoM+>)!Z7S1G=t?;=^ZyZcL5(+&2PNUZN#VHt9c*2VTQu06lgLI-X8?GYu1 zb#FdCneWLHILNa7{k3z`FORHB_wwlI@nPeOombD+wmKCNw;8wBo988&VBp4!)4BKV zr9iFiV(U~x1F4VUF$2T)RPet%o@Fir+OxB=rBnt)`?|2}#VyOf`=wX44T=*V**@mI zefaS^yDsl_COv+6IoCyg*EDh&_vc(kVIMz;iM@G#yz$E1eg!=HiGj19p%C$fpYefm zwKIs7R@hRUnDO!IPw9^BG#X?H*7b!RR7quR1{i9KAWK@!xD#rkSvqB_tlFG)V$*)S z(#a$E#s1oGfgVro^v>ySiK~q$N5-74n}mKj4{r#O%X+cE;ae_#UiI#=_N%xh^ubgO zfqQ}mn%wMDu#)xg?WU{v&MVd`#OvjDwuHja1JTQT7bRN+>9O@P8p;Nu6pv9zQ&3iM zREJd*r}4Y44snpKBq3*RS|U_oeR;U|Yu?3UMO9VQtrzt7oG$mxw||_s8MQ7q1;kR{ zeaXTG?t)@q@1gxhVHO+{y5JTZVNF9G;O}kLsFo^Tj^-7ZpZ;a-Q;sxjygn*MbdgDj z776?_BTEv}DlnKmDa-NoC2AmxwB-unJh|=-f4J|yIny7zYn;-pUK{BDRU-g>e$MIP zEUt!GPJQeBs4_ zF!xNG8CfoxE>UgLROyErpk!XRP71X}xOUbtbX}RRVG$dkaQ5SMF28pjKQh#!4sY6C z{HqN{*I;0saozaGJuuHw+rO0NH60khd)t%d?@~&?>GRi#uFj{uIzi0`9`<-a$TDv} z_L@IRQ=jt3Z$9(WBT-HgmrOn{JD)*)R#mlo-#zNrCHAAReQOC>|16L3RjyMmC?&-; zAp%T_Kf@TLM`F#1rgG%5%@t8EkSBqzrYQG~j8I7`x%KqMwjv%qI1QcY%@#iuV{^Q} zVI%qw*koiRj4#H!KgN}ej*WeA*;<&24|>>MZn}`9ef#hgR4bmy)KXL9^}T;98wu;` zde3<0_R}&s)c=@TgOx!4=zI;PrJ#7eDN-e?yjXVK3NwNakBERrBfK6MvL&{*ez_%! zkI!`Dp|AI>@zH62ct2WSJZO6EKt6FkUl3>ck4xqFM?1TpGz2w$xTo{eY@nLvoPVw~akDPO9aIo1 zfuWK!9UbGUCmj(^9GNe2bEc!+CJjqxE53^h8R*?`zQy9)4`#kytG^aB7yA!r6#577 zEs(C>UJHzj{OtdWfvX0G_FyjwOnZoOG=Fq-4D;2o!nCXG_^A$YZF3@NN!Ce*j**#* zs1*^VA~|xYi;I40lSzn5P~@3&*^!m#`TTJij3?Kzu6<6;hN7rpveI@qbAL&uO!&GN z^)jI+J@g!fBvs~q_qLvTk_`H~sLNgFx(FA;-;H};G|`H$SmVCBhx}WR!ynxgF}J1% z-b~c+=sGdtw|&#iP9FpOhv@4!D7)y&$BNod(!MP6)~Z#327MoRt9K^)nA(3^RV~^p zqF(;q-d9ptn!BI-!c6uET~eZp(&^z=Vl&|I6WcCK5xWLX&W2|2XhFz?;^fkr2|i}* zd0QlxJJ-PktgW0D#nS|zNP283enx${Wg4u(b@Qz{5DN}?x9Un6%>JnXKom5FATvln z0T*BZc&kD)5hc>26>+|5PIOypd?LazA>lFpWa!x4FxL?b$@gcGUznJ?7iCMtLP1gc(o`*RQWr_401_rA3o z&_0hQB_@jQEAY|)S5$+ks(YlTl~&w!9?4V{V{1h*F@F^zjwyj5FbiQQfGARpQiJSq z;qlth>LN46`TQU&Jo9R`R`i%6WcaSPCrnkt&5Pb{-|ybz&#~VQmBq)kyI+s}lcSba zm;Yug-+`A!}_9Ip!3(vpH9SzUl6Zgk+9b`IDRC3 z5`GZ&o0oPiQCys=`s7gX-x|x3{CcEUp>LO$2tl%9ej#_ZaLk4L>qJmbOKsn!r9W;$ zXOYQ{s{k;9n9SPJ5*`qG+ht#3`q8*!1_fTf)g$ODz57%@Y%byr$F^tm_wL#&x98W` z*O!ifP4{s`W~rd|4tLketb4Eu91nh#npVRl$wd=Xp(Xft{v&PYmwe z85Jcqp8i)Rhsj4sn*GmQ11>}h4-ohSZ4KNXLkg7Hz9s9WKtu`&ma`>&=8UR9Y`0v$ z-bPYhgUwJGd%!T$P?z`QNdNa-)sjYrLneG2Zzpthh(4I?dh0RL-mvwO9}A|BR7*S! z*JGzCI33soC>UR(-(a}l-;Jx$=#jT3Pwu9K2`GqM$=uFwA+0&YS)LHSL%MeUDeWkv zyI#A_z5fyJ*pU0wv)2<0Z&MG_=_da~F+u@%LTDsR{GNlk4Fy?W$DVS= z!v;QxS#8A^MQE#;bf56k-q(w3Z8?K_|i&9-dnbr{5H9mQf(< zF|g3{-R+i4(dL@7adMJ#Q2ZC2w|L?l;fnwi*z9Ub$>-f4anaB)zaW?NSAL7zASL|6+n-SE*e@g`>uWz8>Kmvp z3~Wyohw-*fptcZ^?wR!tCc?Y%{#}&+LYV>(2c|UZN!df@rIXuhrjnBY-C!9kc`A44 z5k`@WTvRDWif=F2iUx&s74s+epZuiBa3`vLTtR9b!p4xMIOJ+TxVkogQdZCEEMh~> z{^eQ2O`>Zz-}AC7FGX4|*x2N>QvP<$vYj%2=D{k}akDnL{eBD}Att6OU%dj0Qcz#g zPWkAnUqO^Nz6`ldb#sE6^d*+ft22v*L><8}sWbePFqtbm_3D=yp3 zS#cDe*{{|Td;0{-GElErCk?xo43h%WHAciASHq1Kr)8@f&yY54X=83LZt(Ne^;r2r z8z7!RcfL=sv<`Y!wyk~GosGOb9Ru-QtgOE6_&6RWl84L||H_=e+A>`+_G_XpJwb^a% znV4SvYj2@tUI#E48BLH07=cQ{-|SxC9k&>EybWT79z^jxmoS7K645Dv*jhesJbY(= zQ|%LedEd@2NzLLhdK~|07GMH0Z#)fM##%o_Gm+|UFl_35Dk0vs9skPoI{nstZG!)y zU#y;AY(HJ6oRX#T92T(nUR~Yvnd~1Pei7*KeSMoH^K$cf(DmN*y8O2eFY?{x0 zPj)`(gVon&pZ&DndDHKt@gSp2+DI$!SF3yu zm!23$4z*6a&05IuZ0(!hLwPyPCm)F18Jb)V)G;>e&gPFjriFblUWVY@18c2k3LhGx zHdSqz9h}@LdptK!t3$g^dIiwW|iE5gL*wlGBwt%ju;f=SoPzwOt@t?Hb z%T`Z{ZOq~Z!j>L19JDN^2BfuT-jK8m0~x`XSlZI^il1hP1u^r+9ZlC0s+TwuUWeP3 zRUdGRHlXIP`D4lFZzG$G034M4H#W}iX&Ll!4%=r(17v>qXZ{bqAt=cabmNmz-&?!i z2$)Y=_qXihJbj@LalEklqB$-!-p1iZ<=$M@XPC$A&DV=3hB&NvrZn#&Dg&kDIG zb7`g}Tu-z4Pm0j(d@i>RxTzW5rCk7Atu@@VWBNu31me(sbQkQA@yR`UWWj`mON z*Mhv1c(KHa9vHno&wqA(4x%OSc53WYhRGc$VZj3~S9lB!>cpjtEPAhhUsE<8bAROs z^*E3lS>5jA%HSKsEDhdS>gebUDP*(hUx6~uDs#F%PTFhu{cmf!AA6d0dt$eZc%9Gd z{>5yfy?6ee^G>k4nySag?`S%i9eRHVNJ#kUqkG}WpvP~2hEc5Rd--Iv28Q3d_4a%R zBT3unPW+7d@pv*Cv*C7#T`-**i}7%l;8@>VH<0^fm9zPB$z%ysr_cVXEvbH#rt`h& z{$%!J8DH<|r6x-zTj%QedyYc|i!iXY^|IsXW@I-s@tSA!K<3AIsS}ZqGiFMGDf{8* zwGcQ=IG}RUO#7FlZf|Jq$S`M70|>)PC!_u(kR|VIMZ{QK=|}t>mD>E2CJc99bdFqX z*ZX5TfR!*)59At@N3=6Q`!ab*OH#B>N5J+5KR;ayI)xQ8p@idH{moXnH)|_@@oIlx z$Y$*a5uH)>?OnqNo+^jJkdeE<91vXsMwfz3IsMoHvrycmFmy zJ8nPmt=m!oh6uiGy3f5+*XP&v*lNppUuK!kfxwdY`6LCm$-(7>|KLf@vKj>sQ>xrpMeEL+kuh2q~}F>fwQj5H{~&_a>p zmo+|m>2T^laP`(cE^Q4dEZiBgs`cy+XR8lRGCU32G93*j*H*`+iIN9%K2ZXm1pG6L zj#`Vo@W+rAMe)8)r}`6p#bOB~HCwws&tth;b+d6=uYnCj1fNTAfAe`zig9A1c<4Gp zeI#oG9ko`LSjyY2^=ahK_^+eR|62BhLjg8}fB_I@)X` z!fEim2mTu~Gok~kJ(6F!AzQ%}7Gw|-?y1)xpOHE^I5jpn508(jEwiz%5$k9G0FWmd z10SVqYom19K#erQ$dygzI*2<<06`%+*)WQP{=97}xtBhO!Yj-p;7g7e@mVi}z2tsb zd`VDU<^Ho-r$!qp<$4wZ5CIoafu#nVsO9wmkqs?yAk;9qFqTakRIY_uTD`ryZ``?9 zh6ni77^&Y3UD zg1x4+l#YoZ?hl?h_iv5D$n9W{oor)}vbtgIV%9>1j0b^g2U>;C2tyuP+#f?6PE|Mz z+FGE@RD+bZx4WvC{!iXJw$N2~{H2g8e5{{0@yd=&ds5OPe=_r`m9!mP zll?>ZSs3Ymp9a0!LDVFaT~uyjg@-fPq{Z^ETWQ2Oe^FXP{ao6y$VGo{!<-=~eaN^) zz}DpJu3y=1+=h>Uq6Fu}JT}5S!+gv%iCg3pSy=3q5g>&)9VT$OC>YYm-mnArKroHa zk8QZQ%kiBET6m9l%#hl6XMlcVk-o~1v1+!Td_O{Xz>PFp0^xLr^~Q5Ct`S!%hJ2Ac z@7<8SZHjx%<%vC{RKU`3uM3MPh^kz)5`s!$GCmcxBC9TV7&o<$Ki&qlE1QTbv!1EN zt+!Zq5ZqL|hp(i{-i?GI)o%ee^HDUw#NGWrj|;~Z4*5;Hp$%s1*VsxddqtpNW^zAy z<%Q&oyn`vME;P{|nWeUVE<|3s;E2@UJt3rfsx0y#&9Pbogfzv3^*Og``e*53Xeo_q zW?G3U;X^!yvJo7uZUO(d1l?h$6kiA+D9jY3`Z0@)r6?5UAsf#fySFjQP#)0W5BDWz zPtCRVuMdWV-*5nqR$+6J6AncVXGAKayj#3NY_at9*tpEMiJ-HYiV;HP3W`Py`+&r& zdGcdQkfPZhp~8(sc0p0CtZa+0u}hf-(z(QQ%5QrV5p|mC!hC)I1xe1Z3&FiLwz_75 zRyF0Qq6|oi{O^U|2yXH*Ig{=%k&`Z&WUzY>@Co(>aa>Wird_Pol0CP@?IH79e%9K% z{6RO$d!@=PQ#vGZZ?3f8Wyu5mb&Bh%3in9HRwe#I6FY6?@481{FGXlgs~6cTi{| zhY&Tv3}~e8nxLs4&DRSPdltr3!fds>wi@ZBZK=TVU!Dn=O7|E|0(hcOJi$2IHQ(H% z{wae`b|4RL556G|t93@OI61=x(Ouxk7KshiVYd7O(w#twzoJZH#T=kiM8g9%acD-E z+Mw}cGw!2ETJL;7#}`;HkQ&1zFBGD93w_B3b6SQ7zw994Mzko>raL_x{n42)y6 z2$)QjR~w!q_QjxSp#bv`a=exrunl$)TC)0_2H_j!_a=+ycNVJ8@t3fSGQ{B@Az}s% zAfY3=L0v~VI^HOTYB2AC)J<&`ptcMvyo%^8QRl;Mjy->))k8;T@r4y-HZC<_M-Pse z%oRS3m(GBO6eMB}YxMP7!H%GtKl?nx*E}aP{9j>j>Tb9pRhT@hBf+Ij^bSU7&*d>Q zFl>i1j_FT?QU^w^iL}^k;-=?E3mQf_^D5DbNq^_$YICzEX=*sCEEB9a3K+A<)jhmr z?o-P{t3Z(TJMk8#{z{ntH7e%2^b9~C#zzwf1nfbeQH3UvQ-Q0mp6KOdTc2P#sL-^F%%9y zW+PrO3w#qfV&`y7j+I;C3QK`ls4~+64nWDKOR}Zf!ot)HdX{W#2w;&|rj|^3;!LRu zV#suZ6c~bsr@gJ!)6YBPjI=I{m-Bi*IlvhMvqoeMLb(Ht;utiJ`+_Ic8M$W%NRr!@ z?W6gM9u2XNTM<#1`=4mBCQ$EiW8IKuW7#<^gt_*UJV2*_U$w}@6LcLm@nLKr^DD^0 zAf&XmuWJDt6qLwiJ}dwt2NHZNJe;s4^0p}Rzh4BCN~CmA7k2v6WwnUql-TgW8DfO zc#y?sQ7A59bUU7fe_RNhZnwymH3(1C$;4e|sb~lLBrL+!?S*C7h#v}KZ83yJb0hNA z`jA9|6eNiYC{v0&eA~5g;>)STK3GA2!M5tXy;NF?1Gr(R`mtVk6?K2HaB&^Nlc_EH zkOUu9(?#21FzVDIhl}?-!fBj)v>V$;YX>0>0;LpHr)*$_f{?jditxd31*wlmuNc&`?2wHUS}&?F?aVx z-Ot_k7!kXfl~H56+q;S|-^0pz(|H@0`NqQF;DP4fB4m7dkurb(C|>7N%f>o6sqpXk z9+9|#T3)B~wrh>^%h)g0=Omx9Z|A?5oKb0+wg;m4OpJs$`_2bHO#Uv&B;5VOe)&SG zq4t)R`wM~c#>S=o{@+7QcLBwHtZ#79Qu5(4EiSNFL>%Vxl_s9GBt93SeSgfVkDle) zoX(9J|Hw#3{%}oZ@Hh*C$KEkY|6``5sZ8SVY^Sz>T56HwL;3m&El2b7=$KMU>RNw! zV!~&s6j4|Au3Arl&&Q3Wgs==MIEd9IYac$C6z^L&Sfq$#n+g>@35QcWE=3jJFDxrs zjzMtwzottuCWz4f;XHETwUAsTR>R29ucV*^V*)M8({1hXBiOkT&HLTszLga^FnSh~ za8$-0^VK}hcC>Xi8A$~htEE!dGw$!LEiEmF2PUg4OG_(`K1K5Da5#8-@7FJ`hr-b? z3${VK3eV`I#O`dyLkna!h19O+Yy|OVXCyz?Iv>uKoX)m#vf5Gou!-5th;Y`NCUb~g zY+j}(yZviwy1x{m=>LB$pdj#P%!Wwx*@w~4{av*Usa(b%al=o(S%~WC(XZVln}P^= z^Xt*4qptP28m}bQX-B66(m(G$kfB{}P8VF-Nzl>`>O(K*1Nyn|DG}s3KOe-zXiK)+ zIg(9&Mf*^W*5X^ItIR`oU}lyM2}zdc9ifBW2br&x#^J%ma-*0Q-SYIvpZxsSn9W6< zi1wK#?_ZL~E1kX?8Y2tio0psIe`F>ho5YDrN!;F|zpS+HFWUNJ!p+&z=@!Je8qOc+Xb1y;KU^m$IX(=- z5e)3Fd_yBm9%#md*%OrsOx;82>pQ-m*d7}j8yy|hgeez{TA+DWna=G!wPC7|%#M7LEbTRctCM+A~W8HyDc4i0kOfSt%L# ztlUv?4=l3e=I1lEDE(8j<`o%xgATC6#@;R1){8ChdgX5Lza!R-hM}|)^4TEkt_m#= zY`twPoS9KRsykgw(AHVsuK;0e_Zb$+#O&cukF|nZjVkGBqyn58O05BaS1I$K_Dah{ zgCGC93@}F;`Djm4<4#$442DJ&Vir}2jXg0A73>DmmC=w&BExI#9e`JeVr^v6pTIFP zGE$Ln_F~dy^fkj>X~(;#WH@WDx7Xc!VR9%BG%nc9(&YHpfhDShs7*9KRm~Ag#Cq?w zhm|sOI8+VTprVCsAU?!hc`k+q&9rotCUS;#6{1*xj8wZuGs;+RPyuV}9TPNP%;u|! z&G@z)0(Q5Ozp5f;6a7p=OaxYs$%4y;5%%{@xvbUz^f%h}N?ozoi>llMAqJ>Dozl`R zQd>aa^?+FLBb2IY`j#HHZPctH3a6-Xe62jX59W_eL2SZps)3)H@B=BMW!BV{^_ zK*p{QnHII3mx)-MqCyY|Py;l;)@X-{{fY(h=>2b7Y=aL+H3=C{F)Gxz`&}kn^v0MK zo6DN`7B_HYEbY#ojc3(y>`DE~vWLQ^lMH@gDCy2&dkMWFRljHrALa|VKHb~rvpFf# z7>m9tDkaZJD$&aO8+p3*1zK3&_D~%?2s=nxI%0H8=AT0Y7Iw9 z@Rz9t2{O{kUc!vO*afcTE}+ec=A#-D2jw&yxG#Q#VTdVdeB*sSPdZG;S+J($Vp?X! z!00kqlfel6!2F7pL3W7$_WE<4vr5U4#y+}kY91uO2uqkXi`y7d3f!P zT4?07{QaCLURCVvyCNz==O*Kwu*mRXeX6s)L$Z0h(7TAOB6n%{jelQa;1a5(<{&=- zD1`^*Q^Rz8LebAKV3+|!@b8E}Je{s;?V~apYnxpoxqXZ4>*Fby<7$VF#-$TzA`JK` z>DdER3Kx7Z0DS6_{Hp0OG?oHx4k@upUn%X#LQ+3ezu^<$`u`Vs7MQXTA*7};Ks;ZX zH|4K&6sDoTnf-)d7>68!4#vwIK=qjM$+cxZIZE_|2$;ynbWJEq z*p-eDFL85dRN0yuO296e2z@h{GDDcj$S|cYX6Pk!<(g;8MG4J}Pzr!md3iYjlRFL$ zc^ot7f)eGY7&R8dIMP8{_>Du+LjDB`HuRzD4)7Q6B~CxSkkI$f8W#>%MF$gA;E;=7 zFQDw)grCpQ3Eupms)8s~_S>Tdj{83k|2N5>bLNH(nxwX!0Khv@l-~@6< z-&TI6%w-IVH=!c{waL7C=Ft@>v4lUL7NPDzAEN7dY* z0yQD-57|K2Gd;2r!gNl#yn)k++ONxx8Ewol9EpF-tn^Up5w#5smW$QvxkAvZe=Lcy zv1jXyh7QIv+}+(vN=gdaVH6Y;+@RRZb=8*&r4sJXS7G7dX=zKQ2-r^zjErWxeFcuV z0()t=xPEadWGqx|x<7oewXOMgI7x{VG#E+vc5{5KNA%(!qx|8CkXaFuH zALKioE@H|*6QN4`8%w+JN@wbiPvM@+(XSPo520kM*txFb+2qpGq=*#AIK@~eTF5kw zQpdW97o{LIY$;5mdL0BSZX(p}iX&DI`eHEmx3!XRw3JD()2|srHHr~hTR#k#W*mM8 zb2M~!dNN-D|NXM_qt_oAzL9Xt^l?8$PB(ik!(-F!UzO2NG(~tiH1E^HrjO-%8}9o` zv30v1r}f!XUVp3Op?D-o@CBn^(2w^eBkz}cX9ov*28IYw3jq;co5x*xBfA0HGuMXO z+XyVOK5eN`|L4gkYVbu{TN`Vqrg!2n$M^b~*!Ji^H*dwqJEh@^GpuWuXb?;H2Bb>}bmQ#z$L}_YyO2Z0!XyQm z#c^NN-zfe)D*sy8*N?tEV45V~lRZo~);0taSxlpWFnzYWB%V-i3x-&SOmLQv^7KDboCHwk0 zqCMETO5ijH9p-qVHRN=9K4haJ0vQ=aT@inl@L%oY>q+|j_Vj$YSa0t=e3wcv9nXdi zLQzr={T%YfyR8DUY`Z?C`nEf@Z0Dn^ZKVQnaZypf1OF2OK}KHZlS1jU`G&&)+H7v; zlet^MZxP|)Q#!D(1f+a+SN`zDk^=m`R+|UAyVyi{_qVf?C*Zt#eF1Xrx` zjdD(};T~Oi0GG`HhJ&F={fJENUm+_!6{on{2Y$i7PjMlR6;KWG%o%0!SJnQx5P%T$ zdsie04vkHTxD(7Ae~RM6SM=lO8aY2QDIO(QStN{pQC<*$k3t(4FzShHvD-p z041o%4dkq`H>~pX-S;o}1VT!tV;FgSYsiy1F_l%;iqI#N>{pn#T-!yfWRpU2>2NTZ z<)oZmlxhA+bUkj0{8~?}rdHBG%c84A0fXI>5gL zu70JcwNg^WGts**e!tFP2q4O?05#oeXiI)=MMbEnhg>HdAeV4_KbJ$4ZN*ApDw|U+ z9Yj0KRv?k_9Tv{dX1xuL%gT%yI8ZZTBD+(?&-|XzkGK&TP}d-Mw86g;5&Q5 zZyM&<-ab1+dAa(B`eI{a!!4kWfP#|f5Ww+h|FGxnGT%2njY$eRU972*rj39Q#P+y5 zF_|dt?iQF6QZ+zS{9S#*&tIF986Q9#@VDR-rMW{(%ga*0ttjxZ-`Ny7P`wJ1<``xf1r&Jv?ddsde9A73DjD+=5NX8H$0&F`H9e`Ir{=}@I% zEEFs~%HYD3L~ON0vcWSvjkM|y3TYfpMQ3Ow+D@QRfPG(EA3YYYkVX8Q165O|(2Z6t z&Um6{uo7Nyp)kgEFy@#c4m^ei+;UN*I#M9cTVZLJ70zlbOZwbb@yf2juknlwr!*pb zG1Ci#_;iP{qqOa+XWULDc5lzlOB1PVB6nlooljIAw`JtyRQJ)*&^8+FMPzU1f3&-X zhJ<7yBYV0(In?(V4Ms+H5ZD86cABcRG0w>sc(2i0*k$pV!;){dk-HRpS@TR|l!ziJ;B~aMHU;l9-a+3tE79uc+N>NphqZ`;5i<4`;Nf(MR^>-? zwsw8EUn(P$%t#aUdg-gsM_~rEfh~PFU-|PBx6$bsi*>$M2wGcY4dc88_U&~W{!%Zp z1%t=|Pt(83;A7xuy5L$vr_E_F&0q^r03QzM`(CG0&uTs+npq{4FxV!S&20}w%D?IT z&^h~iA~y8?-&T|?0MWl8VK#Zw7d~UE$gY*k_Faq@sd*H6QULwe{aMy6c>Lv+; zJQPjZ>9LRWDz-w3$KQ`yeq)e}M9kH}#11<_h>wZ(yMuAb&9*bi>d?fA@Xg_5I6&S;M{0eV%jn{_S(; zJ!y^3bJv{a+o-xCMA;VMb5XxTJK!Ik)M%o7;ZW}H^}upz{Ss!lDBZS+#lX-5v0#so zP}VzR==^}U6v=vAAN0OOWh%;F`%qlA;(cN<-2f(Q9Z`_y*KhvfPc+8z!@NJ^C6CmL zytSvPqdzC!hRA=q2>)tA!%~h(BmP1o5SJ1YDG@Wm?LmJ*5g1zX$z+$r0JC48=}3Xz zfI8_hrXxGXEvoDck65ZJxw7s;Rf_=QO`Zxg=r5MMihua-64tp>zt+1iX$j_`cYOpu zb}%_J@O*s{lz;p--JhteRPZ7vX9<5a5`sY#7GHilP-LLRnRh$9m@ob|&R6&>EnQMv z9CUt?VVV2q1nEMBUbNZ}H|}J2cQ+osiNmI^hW9BKWAGH_`qbh~pMNqg=Ggdg{lm&RIE_Pcxw$|^<-c_?WEgPD<7I$)^RmkCkfY>P z6rLLtl**03^LJ#V?_579xX!EW2yuIS!7zZwa)KQ1RbEam(76xRtGj}QJ0%lK-V2g! zu3mF`iKP%UVnXcuUL?O+czAfIRjnuG1NRW-`LbFo>3e;_K;(A3ZVHVr*eUuwXRC>* z#=^F@M}i=T6nwdxW(bj_0>j{AzEKwhf%Y$VnUy7{^aGI;GPuIHA0KRM`ktu=SNdAI zZjT$&Ekz#=Xrqa{krENl=&T-bMg2DF%rP(Bm<6@1`b^`h^zMnSNz~~@L@2rXg`xMB zdGIRq^*<bOj#dUMP4VvLW)OR|$zD)>Zp7h3(5ou+ zG~!j2>(eLvL18#fRcTd?fmbN#eY~_P4~aJF8=9C<*~L1fv;-ktS;`^0STnF;@n6}; zZ$=y(!RwNC#khu!hj@%R)Y?h$$RyHAk2EVWcO+fkz|oNsp9c}~>*8|}1~^>GGZA3O z>0X*N15>|E8ntuHA#8*-c$1uHv0q5va7Ak&eKGtSNngu6z(&2pp-t3x(^DzE7ZT-w z@0AIu-+71A730FAewXTXzRFu^p`1dPk_CE2+3sa|zlAD<1IY?BEIwUnO3K(wqv)W# zzrPPb!4AKulN?fX?7AT;LJT4i$$k_cAc!<-v6*RD%I}rTY_>v=L2||z_zb~=s;!r} z+rruo4oj*0tmdx|KS}?fR8vvueg3SN9axF7h>nhp{CE>W>UXzxM+UNk%XGik8ceOy zi6iI1z*uW`q%JnR2tITr8I z$Jbzg+*C3S(EDq9KR_D;-}ydb49{jcy3G249}XElIu8u100fbuoMO1)(|Ol(ILld% z=X%&|Qc^3;{?1>u-?&s(>=~BRePP>wV#9J8H~eNRy)ij>JWlvXaEu|VPowlC=s$n{ zgjg*&=sUlFpC4#)fA%{qmc~JTAN-*bcG)RwrR+Cg;=tSy^W|n|XAeT9T;ULFIa;m~ z)RSpZ0693Zzw2-uBO&Sc^Ybeafx=aDTvNK4rd8|9!xqpKGb)Y9s&pDjdHp^Y{`s08 z9f-YcaJpQK3Ec2=)sLR5Fm&b5k2n;)YKWPkZq+wAF|ft;=JhQspntGlYx{afDZDum z^Zk1e8v^BOgS8r?6H0!SSa zqp56k(d_}3I|=WbUx20nk~tA@;(YkA!DM$tLm5e(WJpF5pL&P-6UT!5@2m0U8cu7k zmoVZ@O}pv3xfRFmkk=`PceABR{eq>6d8u#OJx(#I!olGZFLyghL=LjBm5t`OB=2yn zcTCoQ`XjLWMRmI!mrVRYiEzem+VD3lN|o}0o)vT2fo22_Mf@th-!KyHEhoumEQ*9; zq9P1B75}%SQC~FKJ^6gqAANjJ;N_5B2z?Y#ZCEUgBFCWFmb;mqPoVFlmw$|4ny>tCsfj>uS@3 zni`_0<04!!4ut^HWEARHCJ$zlZj&A3hmxp3vzZ!4!^QjS`pKVcnBb^Mkw+mmHXILV zK|-N4BI7&ZJ&~u+y6WoJ$Bx~7IAuJnx((2qn_kQNhlkA^`7}0Ur1`sxn|d%4HXJw% zxQmE|$U;Q@(D1N$VgtY0{Cv0zf!F#;VO+tUD5Gp(Ake-#`9$5;93j*$$`&odnPe{z z{!(u>3*^YA--Hz#JkH()yR`7&{lL3Np@4{r6Po916v5urKq6XiVP@8GGcUJzI8}i7 zZq5u_%shw{nn=iOFla;2QYHd}N)8N}aXYNSfHpr;Iq>0T7j5cp;}ve@<+%j|G0%3k z1p9lg`LX~HpdcHcm~dDvV$|E+9X0#| zvUPD8+2|ms(rtDq3cC}9!LfTGhI(yF_g*3RFBZ!alZzt=`yKsb{D@FAz(B-8P4!^= z?=R4=3?V`Z;zWaL-jX0C{y1KZh_qd5^u5~~@9v{Oa7Q_NuYukaf{Gn{8We&`gQytM z_Ix?Y9vPi}7*hEsqux@hMjKI51kJ^<`wFMJ0~vW(j~#y6?q3=HiQ{66^YgGXxAsB*Xrv?8x!7`n4$5aTkDCSLX_ zdiV>ZFPmk$y6IMp1K{?DUp zuYwL`-~kg9EIn!BzW%J(6q}wRJ@NF0*=^-*B$E7*TU#KNAS@x6LCZ@ZR0Y1{h7V)E zG!GQNWRyI(883-~>#$zgnv7G2Vdor=@no{Ryc{fnXech>>FMgYQq4MH(auJ?-R95<)Cu_>eZv><5?rJq+sg^zWMoc4#&QztAz&h>L&b7Zg5-R% zoRIt8;{u5wOHQdq(rxqNRQ>srBRniTG=`l2O?9QrWdE(Tzqd=V9w=vRH_Z95uo^=`wu~oD>Zw=e&EQp)Bn0?>Dvwnw4*n z$6t_-T0wuYvH5@y@=ceET@h&H7 zPuQXiQX%~jTA(p6@wu&#Mp`xz5h_A!r)?b_{~iaW7RmoT>+mi|a2hI21{w8xcp6p} zWuMFY4P$=EhmtqEH8H+Yh@1m!Z3IAVl2ipH*>l=7HQ!(EXK23 zlhLyAfhMb}=tFrO{9HPR^9<^FH!4x)RXVVL#gvG?b{GSC%dkyy@>^S59_z%31_M22 z^hD5S!quF_K7VW+oYcLhjo_538)V~DpaVd)g&F3GcuZl zWt}Y6BDSIF(LnY`M#d1@S}i9jowS04W-B!0r_g`DVurh78WVtK9DCA{LNtN>pfTvQ zt;c{hX6B8QV_>_}uCAlCWp?>$b8!bau($iWQeav$ByDVOjuc&c;D`@s*!;9L{L!}W zevrKrBhSKT`_1)J&aWzz)1VCx)}&5|YAO`T33&63$~PK}(?1^W$FCEcqX&dK?=a%VKCE2dc|yvJ=^?S$(qBPAr0~7uC4<@!__-Yqs5raSl=h^m7i{>BgVWKPx;a%K!60#4| zGWmX3O5|Vt%1BHcTrvE<27QN39v7I<-Yl{pDtV zgfk^7stjX5V^W^!PgAGEHQ(!h)sDYNq192GeN!{(=_HJuDuqURpv&?F@_Z^%kOLO( z!zT-oGGPqdp<$cAv=8j;xZ(HVy-~=>!DKv%Ojut5<@6fR`Fk~tjvMFZsO?L|J=N)ZyZ?JdU0hr87>;8W_=V4Y{g`Dt;{z!b<^?-BXMR;rb z*%Ct&6VuDfOGEvOs4#0!CfSKJ%_^M)_OPA{V-jG+ICY8b8JSZdh+?9JE%Jo_zZL); zl2LIF#0=8-;n@9rwyh*GZP9`#Ph1hW9RydU(~J<8m<-g_WaFMb>pP1C{)IqAN^jI!Jm^kxBVFlSS8$GDs%pz41gS{qNpx|JHo`leYnJ9`lN7-JR` zhajxNjtE2S{iJvAD`# zhwBC?3GB3J)Kd67<#fJ%srVfqn|!Nn9iEBj{8{=7dQMDHb!yZ$YrTn9G2(iEX+Fk~ z$?f150=K1w3SYuy1ra+z(tf$T1Rkq?HTsqhq)0sREM7i7C@3fokB_BAMRpInX{CAK z64$h9?)!(_$15C#tD!(e`Ah*i^h&7Z?BHfXaK4LNM?oxO%GS3xOHW zhtkPeCHBNO5!e)RC?o&MlAPIrDzV9mW|H=J?ia)SRi*YODH{?@1ApkRPNFCN6OEX2 z&-6ty8|w*0rB2QP5gr9a2>SDC1Xb$1F#^1j)|>jkm>8^ldT4p-GxaY=S;#Dm$D=<2 zm#mk7nw-RKbWQf>SzGcJkvPzF>j&dD;WUzFZkW0G!#7pSv=ryho^OTeR;MVPh?0F<}e?r(9k14UTwV+ zlalFRiY118Z}H*;y8gE~u#`~4IaJE@I@f(RBOSoA%H6dwjEsa^z{LXR1>7D2%^cM9 zpfFD8@^)^}Ltm|M(IZwZW5moP@HhFYu7CT%vV;Uq3Gp- zpYr8$ll|i%L*Dz`vK%4r8R=G=Jht2O4N)UFG@ED0twE;`_Ub9M*k;7JQl0>M$VSF&Da4Ih7orf<%@IG3 z&;GYkyHkLXb8|SM|J__wG;Se1pMz0gsPlUkmbW6D(^{O5@EDDb8zNkvp29_-J?gNp z5kW*p9;|G=GMaFd!Fm3-`~yHB)?A#x2ov#BQOC;z84uxo5Z_Bj z5GHRPuRW8SwVvJBgZptHF(4m)&7x1h$#pxF$fe*?fUt zN4(Q`YHXp6!0pAux$%Q-wtk=Qv?ga8pa<8@Ftc}Kfux6*J{cF#aM(!>bv1a^GJSFr zp)3$@Y$GQu#^$aj?0CKvbi$<-DcTF$&ogX+mXC}?Ef@skjG1mmZIA+I7XCT1q)8c( zY~l=IxeBNP&m|SJF+7W$Z7XGTm4fHB_8#aHgCnYYfu=619X^CB@*7Sk-IgJ&28(oI z&2?6O{GriZ>MdZX_EM~RR9o?v;}X;9EO4XwJ`BGd^R3ov#h~7E`;ZybpN3OCm|tWwsaD%7&ZN?Q-3(e zn;wFDU1lwjTiEup_C|h~7{Tqy5~jD9eQ-tJw@1M6uGG2Vts^A^+3U18;mcw=2?)W5 zkR#v@0sGd$g6+c3%_sf55M?l43%o&8kzEJvu!d{STGp3!o11@ zf)I2t+q|*EsMZDB8m;Mi@wv_Bccla`8bJzo2jn#i71ulN7hZ*L-lEAn5g;(KFfk!4 z*`0OB-0GGdZH|aujn(IYAKsO~evpAsoH2bayK1-HUdi`FZ@s=P^7COPGYH|=&BOoM zpU4849dNW{EL7>f_C>Sb9*a_gw7$9Fwv%!h33pXwt|a3@({|s^3nRRr`DNH0Q2&`G zwbc{cQOT&%G%b^;msP6iugn3z^m~9?_RPr0sM9S{b`9?8Vk|Ew(tB|dcoGR-ksnow zkv6Tj`0BVi9KW7uMHl#~x1KAOw3hx8)~^Mi)JzzXL-x|KpKq`}x;ge9(CKN$f+_*T z$6>XGm2hCX%|aGE{2FFIfGYdv2j;Jq5m_`)!rayQh>E1)!k5blh|dt!bpOF&G`sRJI-n}l zQ{&nv$2lpiHlev8odR<;|55(wa=vll0twF{pjL##S-%wIw;aQk}XG3+8w z4ksGd4fMtA{$dKqeQgAhFCmN2D<#M?e09Csl8bVmSj;;fn-5;?fh?3Fer6cmlptiO zoM5%UqVlsSWUS()MU=hS`yUU@1-a}|%L4_GPcq#t;ltiA(r?saWoJ@AT12-W=DaQP zd`)l}c1t4qd_B8GCx58pO#=AuPxqx%;?-)!A?)aSrp@`Cz*l~2K}dZ#-KJ(*dQQv( zJlKst%FhQw2Z^*HV##nSPm=f~Bz%DT1!!&XhS%O(Wxq(rq!JsG6Gg+auqfb7!>3>>gGVyMOl z{}TW#@>{Mrs0Ti7WK1YwnUYx7*s58&u@^L~x_zjF925sXneZdI-<-v0fpi*?x{!q) z?Pn$lbE+ZWUov zX8WM;TXhw67-~`}#qSDxD(&n^e04*TIklnR z^#1Bk8Qa;UA`}(l=Fi^0!Q&*v4m%oTl_$haD;X)O|6ziNw67*A&eK#XXo+cIO*mn6 zdfMi7&dv?B^shq!>sAN0cQ>!3{L9YShmTTUA6R1_t`uTF2lA4)-cR4U zaXc=5++dKt-+aHmme};^1E{;GB7kf`qdsIcr=@OUkg&U(m6fGwcyi5SPwbpw2$q0M zXO=wv%-!WmP>Q?9!;NQp%|2A8b>5Ybt+76}@N(#Ub9R1OUa?s-RKGwm+?J`cEHnka z*a_@CU32nLG~R8v+X6ne5z|AjGhZdJw5pm1ZxV&2ldCw+a%4QJyYI?}+Y{{YGobX( zDwCP-_4!sy%rQK{VU@)LjtCYrQfE+)O24v3)F~XotH1K{u5u?Q7 zJ)V50#ec7SGX~-XsS6Dj+Gd)cyx}iIE79g2pmAw6Dp~(sX z_2^-ME|BpP0!dHA6z4in=xSdDG5vj-#&5&Z@j$yLU9IU5sy`HQOkVcV&-{}9 zA}h|@omJKcdAM@6|D*Ltr4>&$`@vXP#4U&u?3y@#%P5^Nyt<}N;aT_=m$XyaI5Mmt zrneexyu4$}rKCZ&W2190SQ>i5cRE%C3SNqF%C$Lv7b?XHZ@*-AJX*-RNA?}~oCka7 z{@5Qmln2LiB8z_~^}Vu;3{(i6Xgw{n3=Qm#PV%AS;(N!(EuQaP#1&IcYUPpf(dlkF zPm8d06?eV(RszL<(H7wzPLI!Kyzzv9{GWJz<%|TaS`Z6vGEFwB8wFIU7xh;6 zA8~N|-!e-mcQ28jjf3LR$lGM~&L`KSAk6!Wd&1i%T_fgSZ&~9MS?zZ$aZgZhh4tPp$mi~qA@=Kn@2+#(E^aRpuIaE!v`8gG8I5FN${q!>j)%a;3kv=kDI zu!W7r8o6yyGF>BcXLa`UvWn7H>eWWFmSabMbL)3*EEP_&E{GEQJ5>l(fJ}d9%gSmt zkU*=A*A?Xgh5U=*`M8%~@_UYhX#IEHl#}aEs$yDqC8hd3yL^aD@!;_LODzWj!WdgGPU@=|GS)8}y2T5sR?ml9A z-r%32db5_SpjqKv9+>kVgf6|Gerr{0s$=-iF%84>O`)#L1oh`cGiSDNSuFcHA2^5|^(@1i zbNzPt5=N_Ew=}M;@TzKUos2;R6_0$R?YYll3sig+^Nbeos_DN|;Gzo6MI&)FqlK>VJPfXFJ_t z&iW>QrFX%$du*b5SF7?HI&AuU!4V=KoyW-3Mj#r{91|IdX>GkQtv@Kw&iV=vqXbEB z0Q3)Fw8yhR^>~A#@6<{Zy1~LX=iPUGFK26lSm6QbeB#ciMjsY}h!}z{qQz*zihkHK zbf?+u)B-@2iHM?Q76@J4n?$>TmPr0n5eWSkoTRsWWqPiM$zqRw|^cki7kuZ@+R&NJzN3Spbly zkpaNSlEUWFQev!#{mHy~v)}G3^gpub=@@`=I9;K{Va?|Q1H)QN0*;Kn{u+Scxm+)9 zJ_Lya3{p!=2@pPUSlg5K@zHJ-%A4-*uLoROX|nCG$g6MeR`ZqoLUDY2d;lf-*7?Fu zPL68=Kz)|F^kpoG)5_!%ltJY$r^~>IgYh4cd`cqw{DSRR?}V^UuFuxaM|R7S|Cw2- zJbF-&Q{?<)laUaniED0F+6G{TsaOhu5QQ+Rw8leaZw>k0QVz3WXuYM<-NAbO?=rMD z91tEkcD@3)9UhicynnI1>D`%dQsNukMjQQjL%ckvD)2KkNwrg}Sa|;GzyNGi>t{a8 z@X6NJOsy%g67J-zr6RBW42!@XMwcoRL?=g(c)4DtW>}uM097t3+F1q}hWhYuFHU?& zG~NA5Eh94oScR_sWQ6D#@2_$741W`m`VcvUC(a}iFvRj&P5qX9RLszR2Y?9!xG~Ef z31wQ7-D;(5MhrqiSZ5e|ok z+#qS-H>!(@U?w}r*(PU`RZ`KZ08zlk!V=gH{CGf*uF*coS5V}IH2Z94hn&=f9>h+( ze|>cm@>oz;fgzy1@K!I`LEjgKilo=+!cWgjs;bjyW4bFG<2C(Dt+bkwk`j=eW_YUG zw&D+VcK#LmvcqcINd5T*9+)a{rnDdqEgq~yx0~m5Y-~hq!Y}gtUQoyCw}^;`T_WJL zpKKBgkb1Y*C-?RPoDemfZ(Fog$m3Mzwj&uqOVlD;sOj<7@YS^bJ+$Fo+Gr~Okf7HH zI3?O4oic77-NcKNG66-N{Ugo?JsxA?|$Sc>#44`x-Nt% z3ESF^9!3Hf^UFq(Qh#i7+TGS*4GaeBqq>S_XR-ZP#`y&O(dpQCpmLY-iO+f_`SDK- zY6xI(1DOKeBG>{ZiICMt5sZM%uUWhyIpQJVut(SEPrWT%uhYncyM)kf9`NetY;5o- zQFp^?|JrQt^u-`?YTu;5hraViNn8=E1}p*d>Arn|hI6#<%FT4qh8H(CA^S-Txn3CH zFEsc#tX?Js4{88t$(6KOTVe{#DdybUlK zakHXVrg9M}W71zyC1IiIZz%t?`4QRyh-kq|NQV8x38qm|7=Um;*Ys5o(>~O2Ooq~% z9H;jiX4Kjg4XsnF8od$~&!vb_3;}~;YrqU*JR0rn)g)`sh8#%)Wi~$<)Asgusjrk% zmBmE5IWRl8vMkiNTxwJkrrZxPiuFimL^xn?=t@Lgg)>4*CvQR-6rWh{eCQEIT+et4 zeoCPIBStpfC=ZNbTe36=rfIGFiE#Guz}pU*;2qcBxqo(6YsMMCKejmCS=ZJa&jum# zaoQu#M~3RYJh?_wWp(#VtW(0KaDMAO{l+x9!RZN|d9T zs;sm$5TDh_$w`5O65BU4H??N;wn6a)Rvnn%KAV2Qp7JYWQmME}+Qb@V#vRG3Y_7q& zd|G9oI7M~g_ppgy!4nZ!05)bj`HJs;_RqaHSjuQ>XuIULVS+vb714k{L+fc;s= z5cJgMSs2TOebrGcc2fdCfEL#Dg@t8(2MbiDxIF>tGuuw~aJ`D50>`2Hj8;0PZ*V-9 zr^fTVE7I~vnez#e%VogoK*JXmwM9YfW5T^?fIab=x07V~+q)2|vcY1!sw~tRq;sf5 zMfrJR|8c^k_#R6gYe3t$G=GTt0k<1zefP*xV%(|0!A z32fO2oYR1p)-(aP0}>)4jBX0xG9N}1K(fN(=U>_Y-w}f46uT2d98Ly=eLW9J zPZm5OiN%w>HFML25$gswy$YNbj&aP{{KKcKo(jq-OCf=vmfF=U{NN2+;g8N(p| zd>rU6c)>#HSbmr5DT6LFuMu)izv~C8R$1h-o*F+Aq^C&F!x`bNEo72Vz&yQWa3r9N ze12}-Ncfvn>VLPku&~v-6wng|@RlAA4S2_h4mE0}iaj+u3A7QA;}F~le(=`tM2_BP zMH7jq>qA`qNVFk-t(to*QJjjvS$EycyveHcM%%kQ>J^wP9G!eG9#o3?SLCXU~EhSEvq6u${zxN&MktiJm1@5%Uu6A6T!xmpLwie zTRn`q9sVH|MFLr=9!BGRi4X4BK6^98(UHFM+}LEimuZIJ`Nl$Db9YA?S2#M;$J-5K z)I~o#y|FHTUp&yFC)^jVV~dhjTbqK;ewmo+TOtfms`+C1X26}}c3gjdY@sO~KJiuy zM&@U``^)Jo{*VJjJ}^2`U^&FWIY+=F2>iI0#S`zfH}+Q?F{1AVLEHqO^TdQ{@R1~x zy$d45BLcGsJ~PhH#|OF}clD~GD(?V+2K(h}f|*BG+v%Tk#lz9m#XYFWLPilz!w*f_ z*!+k&fnJ1oWn^V0{Sk4Y$rOUklJ6ryJ?ahfz~KX4>VWq!F*T*kdMzp{wl3(5*lfkg z#RIT&W<^b|!zLcon6vwcDX@O<&7EBdBhh9&RQq{M&0kT2&siO72msiHmE_%8Fq71jlW+IBdn;clG`SBQ6j-n6wYqOL$~2CTNbq*WYOsq{$C5QAA|UZG4;fM9}No+`MQXXRf+p! zP^Oo_P4b-O&78#)kum(YT6Sh;WGTEnWb6hWQq~4c#B4?mlzv&)UAea~Wj4cDu1m|o z%W7;egT+APbeo4;4GZiYup&o!_L&XC|6*5nOwU_wX6o3~5H{mEIe1wF24PdejSa4a z^a5pNlg$#T8Hb^vp_9&`#Vjk%1C#VgPhXz|xe4yNSbkzYC=itZ3B_0N8F?{ZYxDeh zna8*)zNIC-)|3I_f0{=oL=TS)zxMIyvUqza_Mnam)1C&qPYHg@EHRv>z|zS?p|Y#~ ziw$YZOkiE0FIq;>EhWn1jFL7O+!f`M`Pdm;S_q^SP#u_@hWoC_grbCQx-G{DF_hdM zU)C|7NCe(FXti_^(68cdeZ3-L#ibC)w*fA5<|o4dTkw_>u(y&Bog#i>mu0Oh)8CSOZ_)4sDi-(tg@L$xz!NKuSge69E-wa4^EaE1s-}gaocZ zhZlT6SgEeF%o-Ua#>v@(P7U^uCaDn}9meyE$vaQ0Q5bS?fE4mGY;3+kUH6LygCrRy z1|~~`3UTEgFC6IeuhhP6F03GqG3sL@6YZ0O9i@gw<$M#ZxfA@12dbq075S(po7axonZsRA@eusD5{+`+E?ISzjc|am0ECPKsj>NiN!;r@s z0vyWA8Ed+lu%0ya+dOpZc2cx7S!e?2DjcK#P%n|YE=*{T!I`{KM`w$=x#L(w4al~W zJ5=ZL94wd>OGe;F?J$KF!5b0_KO@ye0#!OqKvK!Lm`9r%;~Us}WsUFiwy#ZNFB!kx zVIhumSW#%ynz@MK-5R>$qdMHNFnHuLo!cvRoyo24$Q27wgrhUIz`Rc+UdxwCG*A+3 z2QZYjM+r-4y;qIzV;j^93H+bjm#>f4?(V*RmmfM<*~blZ{8s797X+fYd~r#Z4p9zs zfhXzyiB{JFptlJmP-09W`H1-^+*ndZLL2%)Apey*8wdI3WEvA3(}N@AaCD8(+nEuZx zGrlGPCHy9snpPQlvydFh(~MV?E$r*F+<*$qrErGumLaprMIlBZtHY^xRxqgz#pc+m zlMh>q@j>0srwV54%xn5o^7YbcKKIgMxBMpKu?bdUXJWb5_!G4`8*xd2W@ZA(r%6vd zLJ*pOGAE>h{WrQg#j*ku4sPpH?8URM4lW_$Ca&SJQ{%HWuVNq3Ji>9_!6ze_F&v*8 z!^DqgTFLgrgnh0Nq@si>dv?npmFX>#iPAE3KrNo8)wElfStxuuU~IJTCRPw8Q{5$#4$9i|yuIOkhtjcb0OhXo z3Ig5}iT}f2(hl72m|yE)|C^)9y)kdIKQY?zb% zUS1?m^VjF1&`wX$@Q8D$Q$40m57lcXPu_UOGa8l@NBZ;4LUl00S&D0MaWTj8{r&u` zfXVzT>^T@2v)9F1``v*gfI_ocg z#e`q>bgSKgLJn2pS6sXHDro%BSjLoU=nMLdwX*wCQv*TyqtUw-DKtD@3%n>FWZ zG5Lw4Ymb*kY7$nX1|v-oiXLcEi@$IJjF7 z;*iJFr!XgS!~$EHyOE=H39*AbUyqCW$!A<`?Bg0nbY@4IgImys7wXF@RLiN|?`oX% zi!D4*v*A6l{L<{g#bTu4?2;br%{xu4>K3^>kr$)QZ|`~qv&M`7^+7~C&POgjwKoI= z&_m0KT%VnUp)?loZjR?hvYiB~2yXy9F_o#&L|7O(Z?~$ng2FWb4gtO(g1+0%usHN1 z{PE0x7AE}3#;ca{GYTMgah6R4oWIK7UC?gz-J8oBBI6(hh}d>Lkk9Q<#>RD{EI2RC z5R$WhkC9c7qn4lQ+=9jokzgr%!w7)Mw$He>350=^D4Ah}cP;)(?D;UF%Z|W@f%>cj_6NjVcesWotue+?FB7cD8re5S|X>R%t7y2+`rJuc|M0}j^Du@@w z!pm|J=f^K9XZ8VNqEvOj*oi&Us9etGvyBWuG<>viwOM&XsYUW8=XLQw>^e@Weuy7X z;oapr-@gapuU$$+Mi!lGPMg3U)98ET0}YX&3P}YVI5@FTL31{^NTiQP6^!bs@Tr@| zvME#~h+ezJcyyS7*-&VO4MI$bvIgu&{hk{c87&8)y6d+M)#36SUORs>4Y=Y`-{#y$ z+>>qEy0y(apTjz0$iDAkq84}^YU<+hzM|M>TTaJyTBG!v74fR$s@{i}8MuDfWwc}N zHxAs~J>#d;A{I=b#Hc(XLMXQH2^4>`S%z=pbN8OvfhOKB*ZUz15F$gvC7*-(JE2?e z?Q4QX(FUq)qItE*-4K?vrt+qU{+i0>R0p|4lRqi5PnwlNW>gD9r8I3L#LF+;sTa)KgZ#R^Yr4+*{PoKyo=NV=uxcF{_ z`KzRW4`uXN4k(z}>Sp2}dZ%B7!b$a%9Y`i?^zY#FN^9JS31iXdz)$Q5htG6`?)H03 z?rRyp?gPTiS4go5d>@T6_ODZ(y8B&wE{B1TyKd_j`_@d=j@{4nB!?eW#WarX4iXLb z3LaGjaOe6EXxgS4vAPE}Q_=VvzfR@Y*`2v19cnJ(R(z3ncLkn*Lda6HceLj7 zBksu9h~0A0Vf9*oNi82jRm%~$FH7Gv;R3qG?tF$uHvHFLLJa~ zI(=2#o2TMwfE??)F83A3MFs@-cAuL%hZ>z$-rCkJ^&B|bHh?SqMEvgo6>g>^4BQ0H z*|mud54UneJZ4WiI}b5e(-2ao*iLcl?Q8RY)C>pGDuDTkFH;~RHt&H4AT zjzpIvUd!|OGcj>ICHlaJz}OV0!hZ{EGaq{72rx7Dv925`57M(W=noCN2caK(H7{gd zK~3OS56V0TrNfQ+{=e%dM`J_myCwU{h#ApxOd=lNF)K%hSvLq>T&H2wWq(1wvzlXA z6O3g~+ivrH&No3c{!O%v`oBMM7lrzUF+E)L{CM>7YQ}PTI;-KvwJdCMr)^u!iS)sU zYJ+=n1K;m5Kmy_JQT1qG#N?F8-LT7~OeOWstUzOn!C&&WofF0dmhxvA1-m0DWtjVu zYj4v;CdbAGuG(IaTS^}?eron~W2LMZlN4nlgnwX9H|JX>(<66yW>t5pF6`8BbSW$2 z?u6>EMsExTedBV6BVHqN?Hn)?vn;$ijR|kLR@J4Qtq4+cv*DEe+zY<_fUL5M6h}rr z&Rn7Jm+5$6p5l_hJedbGenVf!;4ip?m9AZ^K;_YU(Zk_r%VaM_7kt*#^MmwZdEu%7 zS(UCh#O-=_LY>Rf&&N7%-oc={NtqiQJ;+lnCp{JV=964OuJzJx{0!4D6+1u3t zA9N?R0J=N<#TK#G!DPF9^wYe+Svk0*jF99W)b*)Pb1LZDeR0`5atQ(hT(dm*i}{aS z``redf@T5(Wk)2O7atadWqAQ!$}t z0x5(OeCCl~x%lqg=nD%UhBr0CPIKd{Rvot5*VEGf|!}M*;k)5a~TXFcZ89 zJI7>JuKEMP~u+6^O6a=SV&i7EF)APb?88!sWx zwY-W|yjz&fQYb&Sr%LF#k4fShb%}174e=ufUJ~=r;Bme%UpNv-;mVvg(V{rQv_)jy+`=?G#hJq!4!?47|5yjub_Q zL|YrBl)<3{a`J723y#UfoE+U;^^)}vmfYSw-qtjP5WDo4^7wvi79g_XeaZEpGpA1} zl*=L@H#l}k{YnNweTeF$@JziSM7yrTysS06Q1e4H^aYiYHhVgu#__aQcR!g5De1LP z=hDC6oRYP6Jlnp}!%;5ECbuJfTye8KYqN1p{5#-by?4aKi>jW7`fy*po^b?hHV$2? zB7I+0+5(WaX3HgW{!8MV1p;TYqVxmDOm_?i-AnNocwC%Y@jH$YCIu$Lxzqg)#QDI= zMMh%o3a(mu&Dsxdih4AekKmY1cn%v^+5`jLQR~(pcr*-V)jdi5Y*>{-O8@JB!;v&F z3u9a`!>Cf%JZW&(R(^y3)#!trvgS{?NBI#7R9Ml_8Qa)cLku27qo3h!!}s4GAr=1T zPg}@1pjThsb?kbO3~+4yg5an5z35y3ph9HuPfcf-3D}Ce)(gd4;=hKjCmxEnvx|1k z|7!t9G;gWDp!Th>d(6N5`x^DiC-Ol1HA`0efA5{n2@=n}8sxZ?)*;Rm^`dLM-o<7F zJ~b7()mAk6x8f%1DE^7V{kB?P98@L08vNW=JwwsoIU67FH4Wg|WP331nC-Od7oF+% zck_~fcemOjE>7O6@n1^F4P)K6VoRHGkO&EdrqO^L{+S)l5SBS`xa_2t`Z-v-rTQe}DzQ$n{^r~ooYa0K#r^CY&F9A%0DvYz&sMSj>YlbY&uX_)nx}-n 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 diff --git a/apps/desktop/package.json b/apps/desktop/package.json index b04aa7de..3dbf837f 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -22,11 +22,11 @@ "qualify:agent-island:release": "node scripts/verify-agent-island-release.mjs", "tauri:dev": "pnpm prepare:mcp-sidecar && pnpm prepare:ccusage-sidecar && pnpm prepare:agent-island && tauri dev", "tauri:build": "tauri build", - "test": "npx playwright test", + "test": "playwright test", "test:unit": "node --import tsx --test \"src/**/*.test.ts\" && node --import tsx --test tests/qualification/warm-verification-live.test.ts", - "test:coverage": "c8 node --import tsx --test \"src/**/*.test.ts\" && node --import tsx --test tests/qualification/warm-verification-live.test.ts", - "test:e2e": "npx playwright test", - "test:e2e:ui": "npx playwright test --ui", + "test:coverage": "c8 --reporter=text --reporter=lcov --reporter=cobertura node --import tsx --test \"src/**/*.test.ts\" && node --import tsx --test tests/qualification/warm-verification-live.test.ts", + "test:e2e": "playwright test", + "test:e2e:ui": "playwright test --ui", "test:review-proof": "node --import tsx --test src/lib/review-proof.test.ts", "test:agent-fix-packet": "node --import tsx --test src/lib/agent-fix-packet.test.ts", "test:synthetic-qa": "node --import tsx --test src/lib/synthetic-qa/apply-evidence.test.ts src/lib/synthetic-qa/fixture-runner.test.ts", @@ -38,7 +38,8 @@ "verifyd": "node --import tsx src/lib/warm-verification/daemon-entry.ts", "test:verify": "node --import tsx --test \"src/lib/warm-verification/*.test.ts\" && node --import tsx --test tests/qualification/warm-verification-live.test.ts", "lint": "biome check .", - "bench:bundle": "node scripts/bundle-budget.mjs", + "bench:bundle": "node scripts/bundle-budget.mjs && size-limit", + "bench:bundle:upstream": "size-limit", "bench:history-ui": "node --import tsx scripts/history-workbench-benchmark.ts", "bench:mcp": "node scripts/mcp-benchmark.mjs", "bench:mcp:smoke": "node scripts/mcp-benchmark.mjs --smoke", diff --git a/apps/desktop/playwright.config.ts b/apps/desktop/playwright.config.ts index 859fc455..a291e93c 100644 --- a/apps/desktop/playwright.config.ts +++ b/apps/desktop/playwright.config.ts @@ -7,7 +7,12 @@ export default defineConfig({ timeout: 30_000, retries: 0, workers: 1, - reporter: [['list'], ['html', { open: 'never' }]], + reporter: [ + ['list'], + ['html', { open: 'never' }], + ['json', { outputFile: 'test-results/playwright.json' }], + ['junit', { outputFile: 'test-results/junit.xml', includeProjectInTestName: true }], + ], use: { baseURL: 'http://localhost:1420', viewport: { width: 1280, height: 800 }, diff --git a/apps/desktop/scripts/mcp-benchmark.mjs b/apps/desktop/scripts/mcp-benchmark.mjs index f5316376..cfc6a13f 100644 --- a/apps/desktop/scripts/mcp-benchmark.mjs +++ b/apps/desktop/scripts/mcp-benchmark.mjs @@ -7,7 +7,7 @@ import { createInterface } from 'node:readline'; const PROTOCOL_VERSION = '2025-11-25'; const MAX_STRUCTURED_RESPONSE_BYTES = 256 * 1_024; -const EXPECTED_TOOL_COUNT = 24; +const EXPECTED_TOOL_COUNT = 28; const EXPECTED_RELEASE_COUNT = 64; const EXPECTED_GRAPH_NODE_COUNT = 512; const EXPECTED_GRAPH_EDGE_COUNT = 1_024; @@ -18,12 +18,14 @@ const options = parseOptions(process.argv.slice(2)); const desktopRoot = resolve(import.meta.dirname, '..'); const tauriRoot = join(desktopRoot, 'src-tauri'); const protectedRepo = resolve(desktopRoot, '../..'); -const sidecar = join( - tauriRoot, - 'target', - 'release', - process.platform === 'win32' ? 'codevetter-mcp.exe' : 'codevetter-mcp' -); +const sidecar = process.env.CV_MCP_SIDECAR_PATH + ? resolve(process.env.CV_MCP_SIDECAR_PATH) + : join( + tauriRoot, + 'target', + 'release', + process.platform === 'win32' ? 'codevetter-mcp.exe' : 'codevetter-mcp' + ); const fixtureDir = mkdtempSync(join(tmpdir(), 'codevetter-mcp-bench-')); const database = join(fixtureDir, 'codevetter.db'); const activeSessions = new Set(); diff --git a/apps/desktop/src-tauri/Cargo.lock b/apps/desktop/src-tauri/Cargo.lock index a605276f..dbb15484 100644 --- a/apps/desktop/src-tauri/Cargo.lock +++ b/apps/desktop/src-tauri/Cargo.lock @@ -1278,11 +1278,10 @@ dependencies = [ [[package]] name = "event-listener" -version = "5.4.1" +version = "5.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13b66accf52311f30a0db42147dadea9850cb48cd070028831ae5f5d4b856ab" +checksum = "5a23add41df1562121a9393cb065eab5146a1242410f23a644851e90cfd669d2" dependencies = [ - "concurrent-queue", "parking", "pin-project-lite", ] diff --git a/apps/desktop/src-tauri/Cargo.toml b/apps/desktop/src-tauri/Cargo.toml index 22ba15c3..37867467 100644 --- a/apps/desktop/src-tauri/Cargo.toml +++ b/apps/desktop/src-tauri/Cargo.toml @@ -2,6 +2,7 @@ name = "codevetter-desktop" version = "0.1.0" edition = "2021" +publish = false description = "CodeVetter Desktop — code review + agent management" default-run = "codevetter-desktop" @@ -87,6 +88,12 @@ opt-level = 0 [profile.test] debug = 1 +[profile.release] +# Shipping companions favor whole-program runtime and footprint over compile +# throughput. Keep panic unwinding for diagnosability and behavior parity. +lto = "fat" +codegen-units = 1 + [features] default = ["custom-protocol"] custom-protocol = ["tauri/custom-protocol"] diff --git a/apps/desktop/src-tauri/deny.toml b/apps/desktop/src-tauri/deny.toml new file mode 100644 index 00000000..b8813bbe --- /dev/null +++ b/apps/desktop/src-tauri/deny.toml @@ -0,0 +1,40 @@ +[graph] +targets = ["aarch64-apple-darwin"] +all-features = false +no-default-features = false + +[licenses] +allow = [ + "0BSD", + "Apache-2.0", + "Apache-2.0 WITH LLVM-exception", + "BSD-2-Clause", + "BSD-3-Clause", + "BSL-1.0", + "CC0-1.0", + "CDLA-Permissive-2.0", + "ISC", + "MIT", + "MIT-0", + "MPL-2.0", + "Unicode-3.0", + "Unlicense", + "Zlib", +] +confidence-threshold = 0.8 + +[licenses.private] +ignore = true + +[bans] +multiple-versions = "warn" +wildcards = "deny" +highlight = "simplest-path" +workspace-default-features = "allow" +external-default-features = "allow" + +[sources] +unknown-registry = "deny" +unknown-git = "deny" +allow-registry = ["https://github.com/rust-lang/crates.io-index"] +allow-git = [] diff --git a/apps/desktop/src-tauri/tests/fixtures/surface-parity/evidence-scope-v1.json b/apps/desktop/src-tauri/tests/fixtures/surface-parity/evidence-scope-v1.json new file mode 100644 index 00000000..43aa0d42 --- /dev/null +++ b/apps/desktop/src-tauri/tests/fixtures/surface-parity/evidence-scope-v1.json @@ -0,0 +1,66 @@ +{ + "schema_version": "codevetter.surface-parity-fixture/v1", + "authority": { + "rust": "authoritative_resolver", + "cli": "supervised_projection", + "native": "supervised_projection", + "mcp": "read_only_projection", + "mcp_may_execute": false + }, + "request": { + "consumer": "performance", + "kind": "flow", + "value": "coupon total" + }, + "repository": { + "files": { + "vitest.config.ts": "export default {};\n", + "src/cart/coupon.ts": "export const couponTotal = (value: number) => value;\n", + "src/cart/coupon.test.ts": "import { couponTotal } from './coupon';\ntest('coupon total', () => couponTotal(2));\n" + } + }, + "expected": { + "schema_version": 1, + "status": "ready", + "candidate_count": 1, + "first_candidate": { + "id": "scope-336fa25dbb5e59fc", + "adapter": "vitest", + "target": "src/cart/coupon.test.ts", + "confidence_milli": 950, + "testing_supported": true, + "performance_supported": true + }, + "limitation_contains": "Human-language scope is a deterministic local search" + }, + "canonical_receipt": { + "schema_version": 1, + "plan_id": "scope:surface-parity-v1", + "repository_revision": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "dirty": false, + "kind": "flow", + "original_input": "coupon total", + "consumer": "performance", + "status": "ready", + "candidates": [ + { + "id": "scope-336fa25dbb5e59fc", + "adapter": "vitest", + "target": "src/cart/coupon.test.ts", + "name": null, + "reason": "Matched the described flow through local path/content evidence (score 35)", + "source_paths": [ + "src/cart/coupon.test.ts", + "src/cart/coupon.ts" + ], + "confidence_milli": 950, + "testing_supported": true, + "performance_supported": true + } + ], + "uncovered_paths": [], + "limitations": [ + "Human-language scope is a deterministic local search, not model interpretation." + ] + } +} diff --git a/apps/desktop/src-tauri/tests/fixtures/surface-parity/local-check-v1.json b/apps/desktop/src-tauri/tests/fixtures/surface-parity/local-check-v1.json new file mode 100644 index 00000000..d738885b --- /dev/null +++ b/apps/desktop/src-tauri/tests/fixtures/surface-parity/local-check-v1.json @@ -0,0 +1,113 @@ +{ + "schema_version": "codevetter.local-check-surface-parity-fixture/v1", + "authority": { + "rust": "authoritative_service", + "cli": "supervised_execution", + "native": "supervised_execution", + "mcp": "read_only_projection", + "mcp_may_execute": false + }, + "request": { + "schema_version": "codevetter.verification-command/v1", + "request_id": "surface-parity-local-check", + "operation": "execute", + "repo_path": "/fixture/repo", + "change": "main...HEAD", + "task": "Preserve checkout totals" + }, + "expected": { + "receipt_schema": "codevetter.local-check/v1", + "request_id": "surface-parity-local-check", + "run_id": "local-check-surface-parity", + "verdict": "no_confidence", + "exit_code": 2, + "performance_status": "no_confidence", + "limitation": "The performance collector is unavailable in this fixture.", + "mcp_projection_schema": "codevetter.verification-receipt-projection/v1" + }, + "canonical_receipt": { + "schema_version": "codevetter.local-check/v1", + "request_id": "surface-parity-local-check", + "run_id": "local-check-surface-parity", + "ran_at": "2026-09-01T00:00:00Z", + "repo_path": "/fixture/repo", + "task": "Preserve checkout totals", + "source": { + "kind": "range", + "input": "main...HEAD", + "base_sha": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "head_sha": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", + "commits": [ + "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" + ], + "changed_paths": [ + "src/cart.ts" + ] + }, + "stages": { + "review": { + "status": "completed", + "duration_ms": 18, + "target": null, + "evidence": { + "summary": "The bounded review completed without a qualified finding.", + "findings": [], + "cross_review": { + "schema_version": "codevetter.cross-review/v1", + "strategy": "claude_then_codex_independent", + "status": "completed", + "counts": { + "corroborated": 0, + "claude_only": 0, + "codex_only": 0, + "conflicting": 0 + }, + "passes": [ + { "reviewer": "claude", "status": "completed" }, + { "reviewer": "codex", "status": "completed" } + ], + "proof_boundary": "Reviewer agreement is review coverage, never executable proof." + } + }, + "limitations": [] + }, + "correctness": { + "status": "passed", + "duration_ms": 12, + "target": { + "adapter": "vitest", + "target": "src/cart.test.ts", + "name": null, + "source": "selected:fixture" + }, + "evidence": { + "verdict": "passed" + }, + "limitations": [] + }, + "performance": { + "status": "no_confidence", + "duration_ms": 0, + "target": null, + "evidence": {}, + "limitations": [ + "The performance collector is unavailable in this fixture." + ] + }, + "optimization": { + "status": "no_confidence", + "duration_ms": 0, + "target": null, + "evidence": {}, + "limitations": [ + "No paired optimization claim can be made without performance evidence." + ] + } + }, + "verdict": "no_confidence", + "limitations": [ + "The performance collector is unavailable in this fixture.", + "No paired optimization claim can be made without performance evidence." + ] + } +} diff --git a/apps/desktop/src-tauri/tests/mcp_stdio.rs b/apps/desktop/src-tauri/tests/mcp_stdio.rs index d7b3aa9a..2d938eff 100644 --- a/apps/desktop/src-tauri/tests/mcp_stdio.rs +++ b/apps/desktop/src-tauri/tests/mcp_stdio.rs @@ -26,10 +26,22 @@ fn stdio_boundary_is_json_only_scoped_and_paginated() { "jsonrpc": "2.0", "id": 2, "method": "tools/list", "params": {} })); let tool_definitions = tools["result"]["tools"].as_array().expect("tools"); - assert_eq!(tool_definitions.len(), 24); + assert_eq!(tool_definitions.len(), 28); + assert!(tool_definitions.iter().any(|tool| { + tool["name"] == "capability_catalog" && tool["inputSchema"]["additionalProperties"] == false + })); + assert!(tool_definitions.iter().any(|tool| { + tool["name"] == "resolve_evidence_scope" + && tool["inputSchema"]["additionalProperties"] == false + })); assert!(tool_definitions.iter().any(|tool| { tool["name"] == "prepare_review" && tool["inputSchema"]["additionalProperties"] == false })); + assert!(tool_definitions.iter().any(|tool| { + tool["name"] == "verification_get_receipt" + && tool["inputSchema"]["additionalProperties"] == false + && tool["annotations"]["readOnlyHint"] == true + })); assert!(tool_definitions.iter().any(|tool| { tool["name"] == "history_list_landmarks" && tool["inputSchema"]["additionalProperties"] == false diff --git a/apps/desktop/src/App.tsx b/apps/desktop/src/App.tsx index 57d9df5e..5bddcdb1 100644 --- a/apps/desktop/src/App.tsx +++ b/apps/desktop/src/App.tsx @@ -11,6 +11,7 @@ import Sidebar from '@/components/sidebar'; import UpdateChecker from '@/components/update-checker'; import { trackAppLaunch } from '@/lib/analytics'; import { ProjectWorkspaceProvider } from '@/lib/project-workspace'; +import { migrateLegacyRubricConfig } from '@/lib/rubric-migration'; import { getPreference, isTauriAvailable } from '@/lib/tauri-ipc'; import { useWindowVisibilityClass } from '@/lib/use-visibility'; @@ -154,6 +155,12 @@ export default function App() { trackAppLaunch(); }, []); + useEffect(() => { + // A failed attempt leaves the sanitized WebView copy intact. Opening the + // incumbent Rubrics surface retries and exposes its existing sync warning. + void migrateLegacyRubricConfig().catch(() => undefined); + }, []); + return ( } /> diff --git a/apps/desktop/src/lib/performance-workbench.ts b/apps/desktop/src/lib/performance-workbench.ts index 795e5766..2bd86ddb 100644 --- a/apps/desktop/src/lib/performance-workbench.ts +++ b/apps/desktop/src/lib/performance-workbench.ts @@ -41,6 +41,14 @@ export interface PerformanceRunReceipt { owned_process_reaped: boolean; temporary_profiles_retained: boolean; }; + resources?: { + sampler: string | null; + sample_interval_ms: number; + samples: number; + peak_rss_bytes: number | null; + peak_processes: number | null; + limitations: string[]; + }; } export type PerformanceBridgeFixtureKind = diff --git a/apps/desktop/src/lib/review-service.test.ts b/apps/desktop/src/lib/review-service.test.ts index 19c1677d..647c3888 100644 --- a/apps/desktop/src/lib/review-service.test.ts +++ b/apps/desktop/src/lib/review-service.test.ts @@ -7,7 +7,6 @@ import { getActiveStandardsPack, getStandardsPacks, loadReviewConfig, - PROVIDER_PRESETS, type ReviewConfig, saveReviewConfig, } from './review-service'; @@ -29,10 +28,8 @@ class MemoryStorage { } const validConfig: ReviewConfig = { - gatewayBaseUrl: 'https://gateway.example/v1', - gatewayApiKey: 'sk-test', - gatewayModel: 'auto', - reviewTone: 'direct', + activeStandardsPack: 'product-safety', + customRules: ['Check authorization'], }; beforeEach(() => { @@ -45,20 +42,48 @@ describe('loadReviewConfig', () => { assert.equal(loadReviewConfig(), null); }); - it('returns null when required credentials are missing', () => { - saveReviewConfig({ ...validConfig, gatewayApiKey: '' }); - assert.equal(loadReviewConfig(), null); - }); - it('returns null on malformed JSON', () => { localStorage.setItem('codevetter_review_config', '{not json'); assert.equal(loadReviewConfig(), null); + assert.equal(localStorage.getItem('codevetter_review_config'), null); }); it('round-trips a valid config', () => { saveReviewConfig(validConfig); assert.deepEqual(loadReviewConfig(), validConfig); }); + + it('migrates legacy provider config without retaining the credential', () => { + localStorage.setItem( + 'codevetter_review_config', + JSON.stringify({ + ...validConfig, + gatewayApiKey: 'sk-legacy-secret', + gatewayBaseUrl: 'https://api.example.test/v1', + gatewayModel: 'legacy-model', + reviewTone: 'direct', + }) + ); + + assert.deepEqual(loadReviewConfig(), validConfig); + const stored = localStorage.getItem('codevetter_review_config') ?? ''; + assert.equal(stored.includes('sk-legacy-secret'), false); + assert.equal(stored.includes('gatewayApiKey'), false); + assert.equal(stored.includes('gatewayBaseUrl'), false); + assert.equal(stored.includes('gatewayModel'), false); + }); + + it('persists only allowlisted review-standard fields', () => { + saveReviewConfig({ + ...validConfig, + gatewayApiKey: 'sk-should-not-persist', + } as ReviewConfig & { gatewayApiKey: string }); + + const stored = localStorage.getItem('codevetter_review_config'); + assert.ok(stored); + assert.deepEqual(JSON.parse(stored), validConfig); + assert.equal(stored.includes('sk-should-not-persist'), false); + }); }); describe('getStandardsPacks', () => { @@ -122,14 +147,3 @@ describe('buildActiveStandardsContext', () => { assert.equal((context.match(/Custom rule:/g) ?? []).length, 1); }); }); - -describe('PROVIDER_PRESETS', () => { - it('exposes a base url and model for each known provider', () => { - for (const key of ['anthropic', 'openai', 'openrouter']) { - const preset = PROVIDER_PRESETS[key]; - assert.ok(preset, `missing preset for ${key}`); - assert.match(preset.baseUrl, /^https:\/\//); - assert.ok(preset.model.length > 0); - } - }); -}); diff --git a/apps/desktop/src/lib/review-service.ts b/apps/desktop/src/lib/review-service.ts index d5b3839a..1905812c 100644 --- a/apps/desktop/src/lib/review-service.ts +++ b/apps/desktop/src/lib/review-service.ts @@ -1,13 +1,6 @@ -/** - * Review config persistence and provider presets. - * Used by the Settings page to configure AI provider credentials. - */ +/** Review-standards persistence. Provider credentials are never stored here. */ export interface ReviewConfig { - gatewayBaseUrl: string; - gatewayApiKey: string; - gatewayModel: string; - reviewTone: string; customRules?: string[]; activeStandardsPack?: string; standardsPacks?: StandardsPack[]; @@ -55,20 +48,57 @@ export const DEFAULT_STANDARDS_PACKS: StandardsPack[] = [ }, ]; +function isStandardsPack(value: unknown): value is StandardsPack { + if (!value || typeof value !== 'object' || Array.isArray(value)) return false; + const candidate = value as Partial; + return ( + typeof candidate.id === 'string' && + typeof candidate.name === 'string' && + typeof candidate.focus === 'string' && + Array.isArray(candidate.checks) && + candidate.checks.every((check) => typeof check === 'string') + ); +} + +function sanitizeReviewConfig(value: unknown): ReviewConfig | null { + if (!value || typeof value !== 'object' || Array.isArray(value)) return null; + const candidate = value as Partial; + const config: ReviewConfig = {}; + + if (Array.isArray(candidate.customRules)) { + config.customRules = candidate.customRules.filter( + (rule): rule is string => typeof rule === 'string' + ); + } + if (typeof candidate.activeStandardsPack === 'string') { + config.activeStandardsPack = candidate.activeStandardsPack; + } + if (Array.isArray(candidate.standardsPacks)) { + config.standardsPacks = candidate.standardsPacks.filter(isStandardsPack); + } + return config; +} + export function loadReviewConfig(): ReviewConfig | null { try { const raw = localStorage.getItem(STORAGE_KEY); if (!raw) return null; - const config = JSON.parse(raw) as ReviewConfig; - if (!config.gatewayApiKey || !config.gatewayBaseUrl) return null; + const config = sanitizeReviewConfig(JSON.parse(raw)); + if (!config) { + localStorage.removeItem(STORAGE_KEY); + return null; + } + const sanitized = JSON.stringify(config); + if (sanitized !== raw) localStorage.setItem(STORAGE_KEY, sanitized); return config; } catch { + localStorage.removeItem(STORAGE_KEY); return null; } } export function saveReviewConfig(config: ReviewConfig): void { - localStorage.setItem(STORAGE_KEY, JSON.stringify(config)); + localStorage.setItem(STORAGE_KEY, JSON.stringify(sanitizeReviewConfig(config) ?? {})); } export function getStandardsPacks(config: ReviewConfig | null): StandardsPack[] { @@ -123,18 +153,3 @@ export function getActiveStandardsPackId(): string | null { if (!config?.activeStandardsPack) return null; return getActiveStandardsPack(config).id; } - -export const PROVIDER_PRESETS: Record = { - anthropic: { - baseUrl: 'https://api.anthropic.com/v1', - model: 'claude-sonnet-4-20250514', - }, - openai: { - baseUrl: 'https://api.openai.com/v1', - model: 'gpt-4o', - }, - openrouter: { - baseUrl: 'https://openrouter.ai/api/v1', - model: 'anthropic/claude-sonnet-4-20250514', - }, -}; diff --git a/apps/desktop/src/lib/rubric-migration.test.ts b/apps/desktop/src/lib/rubric-migration.test.ts new file mode 100644 index 00000000..39c98732 --- /dev/null +++ b/apps/desktop/src/lib/rubric-migration.test.ts @@ -0,0 +1,94 @@ +import assert from 'node:assert/strict'; +import test from 'node:test'; + +import type { ReviewConfig } from '@/lib/review-service'; +import type { RubricSettingsReceipt } from '@/lib/tauri-ipc'; +import { migrateLegacyRubricConfig } from './rubric-migration'; + +const legacyConfig: ReviewConfig = { + activeStandardsPack: 'team-safety', + customRules: ['Preserve the audit trail.'], + standardsPacks: [ + { + id: 'team-safety', + name: 'Team Safety', + focus: 'Team-specific regressions', + checks: ['Check the audit trail.'], + }, + ], +}; + +function receipt(migrated: boolean): RubricSettingsReceipt { + return { + schema_version: 'codevetter.rubric-settings/v1', + generated_at: '2026-09-02T00:00:00Z', + operation: 'read', + active_pack_id: 'team-safety', + custom_rules: legacyConfig.customRules ?? [], + packs: [], + saved_pack_id: null, + migrated_legacy_config: migrated, + }; +} + +test('browser-only startup does not inspect or migrate WebView state', async () => { + let loaded = false; + let invoked = false; + const status = await migrateLegacyRubricConfig({ + isTauriAvailable: () => false, + loadReviewConfig: () => { + loaded = true; + return legacyConfig; + }, + getRubricSettings: async () => { + invoked = true; + return receipt(true); + }, + }); + assert.equal(status, 'not_tauri'); + assert.equal(loaded, false); + assert.equal(invoked, false); +}); + +test('Tauri startup sends the exact sanitized legacy config to Rust once', async () => { + let received: ReviewConfig | null = null; + const status = await migrateLegacyRubricConfig({ + isTauriAvailable: () => true, + loadReviewConfig: () => legacyConfig, + getRubricSettings: async (config) => { + received = config; + return receipt(true); + }, + }); + assert.equal(status, 'migrated'); + assert.deepEqual(received, legacyConfig); +}); + +test('startup distinguishes absent legacy state from an existing canonical preference', async () => { + const noLegacy = await migrateLegacyRubricConfig({ + isTauriAvailable: () => true, + loadReviewConfig: () => null, + getRubricSettings: async () => assert.fail('Rust should not be called without legacy state'), + }); + assert.equal(noLegacy, 'no_legacy_config'); + + const canonical = await migrateLegacyRubricConfig({ + isTauriAvailable: () => true, + loadReviewConfig: () => legacyConfig, + getRubricSettings: async () => receipt(false), + }); + assert.equal(canonical, 'already_canonical'); +}); + +test('migration errors remain observable to the startup caller', async () => { + await assert.rejects( + migrateLegacyRubricConfig({ + isTauriAvailable: () => true, + loadReviewConfig: () => legacyConfig, + getRubricSettings: async () => { + throw new Error('canonical store unavailable'); + }, + }), + /canonical store unavailable/ + ); +}); diff --git a/apps/desktop/src/lib/rubric-migration.ts b/apps/desktop/src/lib/rubric-migration.ts new file mode 100644 index 00000000..d611fd87 --- /dev/null +++ b/apps/desktop/src/lib/rubric-migration.ts @@ -0,0 +1,30 @@ +import { loadReviewConfig, type ReviewConfig } from '@/lib/review-service'; +import { getRubricSettings, isTauriAvailable, type RubricSettingsReceipt } from '@/lib/tauri-ipc'; + +export type LegacyRubricMigrationStatus = + | 'not_tauri' + | 'no_legacy_config' + | 'migrated' + | 'already_canonical'; + +interface LegacyRubricMigrationDependencies { + isTauriAvailable: () => boolean; + loadReviewConfig: () => ReviewConfig | null; + getRubricSettings: (legacyConfig: ReviewConfig) => Promise; +} + +const defaultDependencies: LegacyRubricMigrationDependencies = { + isTauriAvailable, + loadReviewConfig, + getRubricSettings, +}; + +export async function migrateLegacyRubricConfig( + dependencies: LegacyRubricMigrationDependencies = defaultDependencies +): Promise { + if (!dependencies.isTauriAvailable()) return 'not_tauri'; + const legacyConfig = dependencies.loadReviewConfig(); + if (!legacyConfig) return 'no_legacy_config'; + const receipt = await dependencies.getRubricSettings(legacyConfig); + return receipt.migrated_legacy_config ? 'migrated' : 'already_canonical'; +} diff --git a/apps/desktop/src/lib/tauri-ipc.ts b/apps/desktop/src/lib/tauri-ipc.ts index 2fd44ba1..b35978c2 100644 --- a/apps/desktop/src/lib/tauri-ipc.ts +++ b/apps/desktop/src/lib/tauri-ipc.ts @@ -7,6 +7,7 @@ import { } from '@tauri-apps/plugin-notification'; import { buildActiveStandardsContext, getActiveStandardsPackId } from '@/lib/review-service'; +import type { ReviewConfig, StandardsPack } from '@/lib/review-service'; import type { EvidenceScopeInput, EvidenceScopePlan } from '@/lib/evidence-scope'; import type { DaemonHealth, VerifyResult } from '@/lib/warm-verification/contracts'; import type { @@ -962,6 +963,43 @@ export async function getStandardsPackUsage(): Promise return resp.usage; } +export type RubricSettingsOperation = 'read' | 'select' | 'upsert'; + +export interface RubricPackReceipt extends StandardsPack { + built_in: boolean; + active: boolean; + review_count: number; + total_findings: number; + prompt_preview: string; +} + +export interface RubricSettingsReceipt { + schema_version: 'codevetter.rubric-settings/v1'; + generated_at: string; + operation: RubricSettingsOperation; + active_pack_id: string | null; + custom_rules: string[]; + packs: RubricPackReceipt[]; + saved_pack_id: string | null; + migrated_legacy_config: boolean; +} + +export async function getRubricSettings( + legacyConfig?: ReviewConfig | null +): Promise { + return safeInvoke('get_rubric_settings', { + legacyConfig: legacyConfig ?? null, + }); +} + +export async function setActiveRubricPack(packId: string): Promise { + return safeInvoke('set_active_rubric_pack', { packId }); +} + +export async function saveRubricPack(pack: StandardsPack): Promise { + return safeInvoke('save_rubric_pack', { pack }); +} + // ─── CLI Review ────────────────────────────────────────────────────────────── export interface CliReviewFinding { @@ -1766,7 +1804,11 @@ export async function runCliReview( qaRuns?: ReviewQaRunEvidence[]; } ): Promise { - const standardsContext = buildActiveStandardsContext(); + const canonicalRubrics = await getRubricSettings().catch(() => null); + const canonicalPack = + canonicalRubrics?.packs.find((pack) => pack.id === canonicalRubrics.active_pack_id) ?? + canonicalRubrics?.packs[0]; + const standardsContext = canonicalPack?.prompt_preview ?? buildActiveStandardsContext(); const projectWithStandards = projectDescription.trim() ? `${projectDescription}\n\n${standardsContext}` : standardsContext; @@ -1778,7 +1820,7 @@ export async function runCliReview( changeDescription, agent: agent ?? null, qaRuns: options?.qaRuns ?? null, - standardsPack: getActiveStandardsPackId(), + standardsPack: canonicalRubrics?.active_pack_id ?? getActiveStandardsPackId(), }); } diff --git a/apps/desktop/src/lib/warm-verification/differential-cli.test.ts b/apps/desktop/src/lib/warm-verification/differential-cli.test.ts index 0c426ee8..3b1c0ce6 100644 --- a/apps/desktop/src/lib/warm-verification/differential-cli.test.ts +++ b/apps/desktop/src/lib/warm-verification/differential-cli.test.ts @@ -80,6 +80,13 @@ describe('differential CLI contract', () => { assert.equal(differentialExitCode('cleanup', cleanup(true)), 0); assert.equal(differentialExitCode('cleanup', cleanup(false)), 3); assert.equal(differentialExitCode('run', prepared('ready')), 3); + assert.equal( + differentialExitCode('cleanup', { + type: 'error', + error: { code: 'cleanup_failed', message: 'Cleanup failed.', retryable: false }, + }), + 3 + ); }); }); diff --git a/apps/desktop/src/lib/warm-verification/differential-cli.ts b/apps/desktop/src/lib/warm-verification/differential-cli.ts index 61edc3ee..312b7518 100644 --- a/apps/desktop/src/lib/warm-verification/differential-cli.ts +++ b/apps/desktop/src/lib/warm-verification/differential-cli.ts @@ -142,22 +142,21 @@ export function differentialExitCode( command: Command, response: DifferentialDaemonResponse ): 0 | 2 | 3 { - if (command === 'prepare' && response.type === 'differential_prepared') { - return response.summary.status === 'ready' ? 0 : 3; + switch (response.type) { + case 'differential_prepared': + return command === 'prepare' && response.summary.status === 'ready' ? 0 : 3; + case 'differential_result': + if (command !== 'run' || response.summary.status !== 'complete') return 3; + return response.summary.classification === 'regressed' ? 2 : 0; + case 'differential_status': + if (command === 'cancel') return response.summary.state === 'not_found' ? 3 : 0; + if (command !== 'status' || response.summary.state !== 'completed') return 3; + return response.summary.classification === 'regressed' ? 2 : 0; + case 'differential_cleanup': + return command === 'cleanup' && response.summary.complete ? 0 : 3; + case 'error': + return 3; } - if (command === 'run' && response.type === 'differential_result') { - if (response.summary.status !== 'complete') return 3; - return response.summary.classification === 'regressed' ? 2 : 0; - } - if ((command === 'status' || command === 'cancel') && response.type === 'differential_status') { - if (command === 'cancel') return response.summary.state === 'not_found' ? 3 : 0; - if (response.summary.state !== 'completed') return 3; - return response.summary.classification === 'regressed' ? 2 : 0; - } - if (command === 'cleanup' && response.type === 'differential_cleanup') { - return response.summary.complete ? 0 : 3; - } - return 3; } function daemonRequest(options: DifferentialCliOptions): DifferentialDaemonRequest { @@ -178,7 +177,9 @@ function print(options: DifferentialCliOptions, response: DifferentialDaemonResp process.stdout.write(`${JSON.stringify(response)}\n`); return; } - if (response.type === 'differential_prepared') { + if (response.type === 'error') { + process.stderr.write(`${response.error.code}: ${response.error.message}\n`); + } else if (response.type === 'differential_prepared') { const summary = response.summary; process.stdout.write( `${summary.status} · ${summary.scenario_count} scenario(s) · cache=${summary.source_cache_hits}/2+${Number(summary.dependency_cache_hit)}\n` diff --git a/apps/desktop/src/lib/warm-verification/differential-daemon-contracts.test.ts b/apps/desktop/src/lib/warm-verification/differential-daemon-contracts.test.ts index 04d2dc15..c2195462 100644 --- a/apps/desktop/src/lib/warm-verification/differential-daemon-contracts.test.ts +++ b/apps/desktop/src/lib/warm-verification/differential-daemon-contracts.test.ts @@ -143,6 +143,15 @@ describe('differential daemon wire contracts', () => { error_codes: [], }, }, + { + type: 'error', + error: { + code: 'differential_unavailable', + message: 'The comparison service is unavailable.', + remediation: 'Restart the owned verifier.', + retryable: true, + }, + }, ]; responses.forEach((value) => assert.equal(validateDifferentialDaemonResponseEnvelope(response(value)).ok, true) From c9c3d262a0095f4f755f63a6db299f32ef40c6a6 Mon Sep 17 00:00:00 2001 From: Sarthak Agrawal Date: Wed, 2 Sep 2026 22:11:16 +0530 Subject: [PATCH 2/6] chore: keep tooling migration lint-clean --- biome.json | 3 ++- scripts/inspect-native-appcast.test.mjs | 5 +---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/biome.json b/biome.json index 5fdb8c3a..97562ff0 100644 --- a/biome.json +++ b/biome.json @@ -36,7 +36,8 @@ "!**/*.css", "!**/*.svg", "!**/*.astro", - "!benchmark/cases" + "!benchmark/cases", + "!benchmarks/public-catch-rate/cases" ] }, "formatter": { diff --git a/scripts/inspect-native-appcast.test.mjs b/scripts/inspect-native-appcast.test.mjs index 363e5f05..4b5dbaa2 100644 --- a/scripts/inspect-native-appcast.test.mjs +++ b/scripts/inspect-native-appcast.test.mjs @@ -55,10 +55,7 @@ test('appcast attributes are decoded exactly once', () => { const input = fixture(); const receipt = evaluateNativeAppcast({ ...input, - xml: input.xml.replace( - `/${input.archiveName}\"`, - `/${input.archiveName}?label=a&quot;b\"` - ), + xml: input.xml.replace(`/${input.archiveName}"`, `/${input.archiveName}?label=a&quot;b"`), }); assert.equal(receipt.qualified, true); From 2b20cb6df202426f71adf243bdfc9960ec8e5664 Mon Sep 17 00:00:00 2001 From: Sarthak Agrawal Date: Wed, 2 Sep 2026 22:45:52 +0530 Subject: [PATCH 3/6] fix(ci): keep empty SARIF shellcheck-clean --- .github/workflows/repository-security.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/repository-security.yml b/.github/workflows/repository-security.yml index 3aeebef4..ccbeb1be 100644 --- a/.github/workflows/repository-security.yml +++ b/.github/workflows/repository-security.yml @@ -111,7 +111,7 @@ jobs: bans_status=$? set -e if [ "$policy_status" -eq 0 ] && [ ! -s artifacts/tooling/cargo-deny.sarif ]; then - printf '%s\n' '{"$schema":"https://json.schemastore.org/sarif-2.1.0.json","version":"2.1.0","runs":[{"tool":{"driver":{"name":"cargo-deny","version":"0.20.2","rules":[]}},"results":[]}]}' > artifacts/tooling/cargo-deny.sarif + printf '%s\n' '{"version":"2.1.0","runs":[{"tool":{"driver":{"name":"cargo-deny","version":"0.20.2","rules":[]}},"results":[]}]}' > artifacts/tooling/cargo-deny.sarif fi if jq empty artifacts/tooling/cargo-deny.sarif; then echo "sarif_valid=true" >> "$GITHUB_OUTPUT" From fafffda5f980f826281b9d1e0c027250b580ed52 Mon Sep 17 00:00:00 2001 From: Sarthak Agrawal Date: Wed, 2 Sep 2026 23:24:42 +0530 Subject: [PATCH 4/6] fix(ci): seed locked Rust policy inputs --- .github/workflows/repository-security.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/repository-security.yml b/.github/workflows/repository-security.yml index ccbeb1be..5a40510a 100644 --- a/.github/workflows/repository-security.yml +++ b/.github/workflows/repository-security.yml @@ -99,6 +99,8 @@ jobs: echo "$CARGO_DENY_SHA256 $RUNNER_TEMP/$CARGO_DENY_ARCHIVE" | sha256sum --check --strict tar -xzf "$RUNNER_TEMP/$CARGO_DENY_ARCHIVE" -C "$RUNNER_TEMP" echo "$RUNNER_TEMP/cargo-deny-0.20.2-x86_64-unknown-linux-musl" >> "$GITHUB_PATH" + - name: Seed locked Rust dependencies + run: cargo fetch --locked --manifest-path apps/desktop/src-tauri/Cargo.toml - name: Check licenses, sources, and wildcard requirements id: policy continue-on-error: true @@ -110,7 +112,7 @@ jobs: cargo-deny --manifest-path apps/desktop/src-tauri/Cargo.toml --config apps/desktop/src-tauri/deny.toml --frozen check --hide-inclusion-graph bans bans_status=$? set -e - if [ "$policy_status" -eq 0 ] && [ ! -s artifacts/tooling/cargo-deny.sarif ]; then + if [ ! -s artifacts/tooling/cargo-deny.sarif ]; then printf '%s\n' '{"version":"2.1.0","runs":[{"tool":{"driver":{"name":"cargo-deny","version":"0.20.2","rules":[]}},"results":[]}]}' > artifacts/tooling/cargo-deny.sarif fi if jq empty artifacts/tooling/cargo-deny.sarif; then From d70a840cdfadc9c7c8b1b2d2e33f66a4ef832c3f Mon Sep 17 00:00:00 2001 From: Sarthak Agrawal Date: Wed, 2 Sep 2026 23:39:09 +0530 Subject: [PATCH 5/6] fix(ci): keep integration layer type-safe --- .../differential-daemon-contracts.ts | 23 +++- apps/desktop/src/pages/Rubrics.tsx | 4 - apps/desktop/src/pages/Settings.tsx | 124 ------------------ 3 files changed, 22 insertions(+), 129 deletions(-) diff --git a/apps/desktop/src/lib/warm-verification/differential-daemon-contracts.ts b/apps/desktop/src/lib/warm-verification/differential-daemon-contracts.ts index c13159c9..6a7bc81d 100644 --- a/apps/desktop/src/lib/warm-verification/differential-daemon-contracts.ts +++ b/apps/desktop/src/lib/warm-verification/differential-daemon-contracts.ts @@ -7,6 +7,7 @@ import { VERIFY_CONTRACT_LIMITS, type ContractIssue, type ContractValidation, + type DaemonError, } from './contracts'; import { DIFFERENTIAL_CLASSIFICATIONS, @@ -122,7 +123,8 @@ export type DifferentialDaemonResponse = | { type: 'differential_prepared'; summary: DifferentialPreparedSummary } | { type: 'differential_result'; summary: DifferentialRunSummary } | { type: 'differential_status'; summary: DifferentialStatusSummary } - | { type: 'differential_cleanup'; summary: DifferentialCleanupSummary }; + | { type: 'differential_cleanup'; summary: DifferentialCleanupSummary } + | { type: 'error'; error: DaemonError }; export interface DifferentialDaemonResponseEnvelope { protocol_version: 1; request_id: string; @@ -287,6 +289,25 @@ function validateRequest(value: unknown, issues: ContractIssue[]) { function validateResponse(value: unknown, issues: ContractIssue[]) { const response = object(value, '$.response', issues); if (!response) return; + if (response.type === 'error') { + exactKeys(response, '$.response', ['type', 'error'], issues); + const error = object(response.error, '$.response.error', issues); + if (!error) return; + exactKeys( + error, + '$.response.error', + error.remediation === undefined + ? ['code', 'message', 'retryable'] + : ['code', 'message', 'remediation', 'retryable'], + issues + ); + stringField(error, 'code', '$.response.error', issues, { pattern: ID }); + stringField(error, 'message', '$.response.error', issues); + if (error.remediation !== undefined) + stringField(error, 'remediation', '$.response.error', issues); + boolean(error, 'retryable', '$.response.error', issues); + return; + } exactKeys(response, '$.response', ['type', 'summary'], issues); const rules: Record = { differential_prepared: prepared, diff --git a/apps/desktop/src/pages/Rubrics.tsx b/apps/desktop/src/pages/Rubrics.tsx index 41eaada9..3e2bdc72 100644 --- a/apps/desktop/src/pages/Rubrics.tsx +++ b/apps/desktop/src/pages/Rubrics.tsx @@ -27,10 +27,6 @@ import { getStandardsPackUsage, isTauriAvailable } from '@/lib/tauri-ipc'; function fallbackConfig(): ReviewConfig { return { - gatewayBaseUrl: '', - gatewayApiKey: '', - gatewayModel: 'auto', - reviewTone: 'direct', activeStandardsPack: DEFAULT_STANDARDS_PACKS[0].id, standardsPacks: [], }; diff --git a/apps/desktop/src/pages/Settings.tsx b/apps/desktop/src/pages/Settings.tsx index 0d0eca8d..8557710d 100644 --- a/apps/desktop/src/pages/Settings.tsx +++ b/apps/desktop/src/pages/Settings.tsx @@ -6,12 +6,6 @@ import { Button } from '@/components/ui/button'; import { Card } from '@/components/ui/card'; import { Input } from '@/components/ui/input'; import { Separator } from '@/components/ui/separator'; -import { - loadReviewConfig, - PROVIDER_PRESETS, - type ReviewConfig, - saveReviewConfig, -} from '@/lib/review-service'; import type { GitHubAuthStatus, LinearUser, @@ -590,48 +584,6 @@ export default function Settings() { const [claudeCodePath, setClaudeCodePath] = usePref('claude_cli_path', ''); const [codexPath, setCodexPath] = usePref('codex_cli_path', ''); - // AI Provider - const [aiProvider, setAiProvider] = useState('anthropic'); - const [aiBaseUrl, setAiBaseUrl] = useState(''); - const [aiApiKey, setAiApiKey] = useState(''); - const [aiModel, setAiModel] = useState(''); - const [aiConfigSaved, setAiConfigSaved] = useState(false); - - useEffect(() => { - const existing = loadReviewConfig(); - if (existing) { - setAiBaseUrl(existing.gatewayBaseUrl); - setAiApiKey(existing.gatewayApiKey); - setAiModel(existing.gatewayModel); - // Detect provider from URL - if (existing.gatewayBaseUrl.includes('anthropic')) setAiProvider('anthropic'); - else if (existing.gatewayBaseUrl.includes('openai.com')) setAiProvider('openai'); - else if (existing.gatewayBaseUrl.includes('openrouter')) setAiProvider('openrouter'); - else setAiProvider('custom'); - } - }, []); - - function handleProviderChange(provider: string) { - setAiProvider(provider); - setAiConfigSaved(false); - if (provider !== 'custom' && PROVIDER_PRESETS[provider]) { - setAiBaseUrl(PROVIDER_PRESETS[provider].baseUrl); - setAiModel(PROVIDER_PRESETS[provider].model); - } - } - - function handleSaveAiConfig() { - const config: ReviewConfig = { - gatewayBaseUrl: aiBaseUrl, - gatewayApiKey: aiApiKey, - gatewayModel: aiModel, - reviewTone: defaultTone, - }; - saveReviewConfig(config); - setAiConfigSaved(true); - setTimeout(() => setAiConfigSaved(false), 2000); - } - // Notifications const [notifyReviewDone, toggleNotifyReviewDone] = useBoolPref('notify_review_done', true); const [notifyAgentError, toggleNotifyAgentError] = useBoolPref('notify_agent_error', true); @@ -1500,82 +1452,6 @@ export default function Settings() {

    - -

    - AI Provider -

    -
    - - - - - { - setAiApiKey(v); - setAiConfigSaved(false); - }} - /> - - {aiProvider === 'custom' && ( - <> - - { - setAiBaseUrl(v); - setAiConfigSaved(false); - }} - /> - - )} - - - - { - setAiModel(v); - setAiConfigSaved(false); - }} - /> - -
    - - {!aiApiKey && ( - API key required to run reviews - )} -
    -
    ); From 81d066f1d278025122020273b1ec916d25106594 Mon Sep 17 00:00:00 2001 From: Sarthak Agrawal Date: Thu, 3 Sep 2026 13:10:12 +0530 Subject: [PATCH 6/6] chore(stack): restore canonical parity fixtures --- .../surface-parity/evidence-scope-v1.json | 67 +++++++++- .../surface-parity/local-check-v1.json | 114 +++++++++++++++++- 2 files changed, 179 insertions(+), 2 deletions(-) diff --git a/apps/desktop/src-tauri/tests/fixtures/surface-parity/evidence-scope-v1.json b/apps/desktop/src-tauri/tests/fixtures/surface-parity/evidence-scope-v1.json index fda89e48..43aa0d42 100644 --- a/apps/desktop/src-tauri/tests/fixtures/surface-parity/evidence-scope-v1.json +++ b/apps/desktop/src-tauri/tests/fixtures/surface-parity/evidence-scope-v1.json @@ -1 +1,66 @@ -{"schema_version":"codevetter.surface-parity-fixture/v1","authority":{"rust":"authoritative_resolver","cli":"supervised_projection","native":"supervised_projection","mcp":"read_only_projection","mcp_may_execute":false},"request":{"consumer":"performance","kind":"flow","value":"coupon total"},"repository":{"files":{"vitest.config.ts":"export default {};\n","src/cart/coupon.ts":"export const couponTotal = (value: number) => value;\n","src/cart/coupon.test.ts":"import { couponTotal } from './coupon';\ntest('coupon total', () => couponTotal(2));\n"}},"expected":{"schema_version":1,"status":"ready","candidate_count":1,"first_candidate":{"id":"scope-336fa25dbb5e59fc","adapter":"vitest","target":"src/cart/coupon.test.ts","confidence_milli":950,"testing_supported":true,"performance_supported":true},"limitation_contains":"Human-language scope is a deterministic local search"},"canonical_receipt":{"schema_version":1,"plan_id":"scope:surface-parity-v1","repository_revision":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","dirty":false,"kind":"flow","original_input":"coupon total","consumer":"performance","status":"ready","candidates":[{"id":"scope-336fa25dbb5e59fc","adapter":"vitest","target":"src/cart/coupon.test.ts","name":null,"reason":"Matched the described flow through local path/content evidence (score 35)","source_paths":["src/cart/coupon.test.ts","src/cart/coupon.ts"],"confidence_milli":950,"testing_supported":true,"performance_supported":true}],"uncovered_paths":[],"limitations":["Human-language scope is a deterministic local search, not model interpretation."]}} +{ + "schema_version": "codevetter.surface-parity-fixture/v1", + "authority": { + "rust": "authoritative_resolver", + "cli": "supervised_projection", + "native": "supervised_projection", + "mcp": "read_only_projection", + "mcp_may_execute": false + }, + "request": { + "consumer": "performance", + "kind": "flow", + "value": "coupon total" + }, + "repository": { + "files": { + "vitest.config.ts": "export default {};\n", + "src/cart/coupon.ts": "export const couponTotal = (value: number) => value;\n", + "src/cart/coupon.test.ts": "import { couponTotal } from './coupon';\ntest('coupon total', () => couponTotal(2));\n" + } + }, + "expected": { + "schema_version": 1, + "status": "ready", + "candidate_count": 1, + "first_candidate": { + "id": "scope-336fa25dbb5e59fc", + "adapter": "vitest", + "target": "src/cart/coupon.test.ts", + "confidence_milli": 950, + "testing_supported": true, + "performance_supported": true + }, + "limitation_contains": "Human-language scope is a deterministic local search" + }, + "canonical_receipt": { + "schema_version": 1, + "plan_id": "scope:surface-parity-v1", + "repository_revision": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "dirty": false, + "kind": "flow", + "original_input": "coupon total", + "consumer": "performance", + "status": "ready", + "candidates": [ + { + "id": "scope-336fa25dbb5e59fc", + "adapter": "vitest", + "target": "src/cart/coupon.test.ts", + "name": null, + "reason": "Matched the described flow through local path/content evidence (score 35)", + "source_paths": [ + "src/cart/coupon.test.ts", + "src/cart/coupon.ts" + ], + "confidence_milli": 950, + "testing_supported": true, + "performance_supported": true + } + ], + "uncovered_paths": [], + "limitations": [ + "Human-language scope is a deterministic local search, not model interpretation." + ] + } +} diff --git a/apps/desktop/src-tauri/tests/fixtures/surface-parity/local-check-v1.json b/apps/desktop/src-tauri/tests/fixtures/surface-parity/local-check-v1.json index 8129f489..d738885b 100644 --- a/apps/desktop/src-tauri/tests/fixtures/surface-parity/local-check-v1.json +++ b/apps/desktop/src-tauri/tests/fixtures/surface-parity/local-check-v1.json @@ -1 +1,113 @@ -{"schema_version":"codevetter.local-check-surface-parity-fixture/v1","authority":{"rust":"authoritative_service","cli":"supervised_execution","native":"supervised_execution","mcp":"read_only_projection","mcp_may_execute":false},"request":{"schema_version":"codevetter.verification-command/v1","request_id":"surface-parity-local-check","operation":"execute","repo_path":"/fixture/repo","change":"main...HEAD","task":"Preserve checkout totals"},"expected":{"receipt_schema":"codevetter.local-check/v1","request_id":"surface-parity-local-check","run_id":"local-check-surface-parity","verdict":"no_confidence","exit_code":2,"performance_status":"no_confidence","limitation":"The performance collector is unavailable in this fixture.","mcp_projection_schema":"codevetter.verification-receipt-projection/v1"},"canonical_receipt":{"schema_version":"codevetter.local-check/v1","request_id":"surface-parity-local-check","run_id":"local-check-surface-parity","ran_at":"2026-09-01T00:00:00Z","repo_path":"/fixture/repo","task":"Preserve checkout totals","source":{"kind":"range","input":"main...HEAD","base_sha":"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","head_sha":"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","commits":["bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"],"changed_paths":["src/cart.ts"]},"stages":{"review":{"status":"completed","duration_ms":18,"target":null,"evidence":{"summary":"The bounded review completed without a qualified finding.","findings":[],"cross_review":{"schema_version":"codevetter.cross-review/v1","strategy":"claude_then_codex_independent","status":"completed","counts":{"corroborated":0,"claude_only":0,"codex_only":0,"conflicting":0},"passes":[{"reviewer":"claude","status":"completed"},{"reviewer":"codex","status":"completed"}],"proof_boundary":"Reviewer agreement is review coverage, never executable proof."}},"limitations":[]},"correctness":{"status":"passed","duration_ms":12,"target":{"adapter":"vitest","target":"src/cart.test.ts","name":null,"source":"selected:fixture"},"evidence":{"verdict":"passed"},"limitations":[]},"performance":{"status":"no_confidence","duration_ms":0,"target":null,"evidence":{},"limitations":["The performance collector is unavailable in this fixture."]},"optimization":{"status":"no_confidence","duration_ms":0,"target":null,"evidence":{},"limitations":["No paired optimization claim can be made without performance evidence."]}},"verdict":"no_confidence","limitations":["The performance collector is unavailable in this fixture.","No paired optimization claim can be made without performance evidence."]}} +{ + "schema_version": "codevetter.local-check-surface-parity-fixture/v1", + "authority": { + "rust": "authoritative_service", + "cli": "supervised_execution", + "native": "supervised_execution", + "mcp": "read_only_projection", + "mcp_may_execute": false + }, + "request": { + "schema_version": "codevetter.verification-command/v1", + "request_id": "surface-parity-local-check", + "operation": "execute", + "repo_path": "/fixture/repo", + "change": "main...HEAD", + "task": "Preserve checkout totals" + }, + "expected": { + "receipt_schema": "codevetter.local-check/v1", + "request_id": "surface-parity-local-check", + "run_id": "local-check-surface-parity", + "verdict": "no_confidence", + "exit_code": 2, + "performance_status": "no_confidence", + "limitation": "The performance collector is unavailable in this fixture.", + "mcp_projection_schema": "codevetter.verification-receipt-projection/v1" + }, + "canonical_receipt": { + "schema_version": "codevetter.local-check/v1", + "request_id": "surface-parity-local-check", + "run_id": "local-check-surface-parity", + "ran_at": "2026-09-01T00:00:00Z", + "repo_path": "/fixture/repo", + "task": "Preserve checkout totals", + "source": { + "kind": "range", + "input": "main...HEAD", + "base_sha": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", + "head_sha": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", + "commits": [ + "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" + ], + "changed_paths": [ + "src/cart.ts" + ] + }, + "stages": { + "review": { + "status": "completed", + "duration_ms": 18, + "target": null, + "evidence": { + "summary": "The bounded review completed without a qualified finding.", + "findings": [], + "cross_review": { + "schema_version": "codevetter.cross-review/v1", + "strategy": "claude_then_codex_independent", + "status": "completed", + "counts": { + "corroborated": 0, + "claude_only": 0, + "codex_only": 0, + "conflicting": 0 + }, + "passes": [ + { "reviewer": "claude", "status": "completed" }, + { "reviewer": "codex", "status": "completed" } + ], + "proof_boundary": "Reviewer agreement is review coverage, never executable proof." + } + }, + "limitations": [] + }, + "correctness": { + "status": "passed", + "duration_ms": 12, + "target": { + "adapter": "vitest", + "target": "src/cart.test.ts", + "name": null, + "source": "selected:fixture" + }, + "evidence": { + "verdict": "passed" + }, + "limitations": [] + }, + "performance": { + "status": "no_confidence", + "duration_ms": 0, + "target": null, + "evidence": {}, + "limitations": [ + "The performance collector is unavailable in this fixture." + ] + }, + "optimization": { + "status": "no_confidence", + "duration_ms": 0, + "target": null, + "evidence": {}, + "limitations": [ + "No paired optimization claim can be made without performance evidence." + ] + } + }, + "verdict": "no_confidence", + "limitations": [ + "The performance collector is unavailable in this fixture.", + "No paired optimization claim can be made without performance evidence." + ] + } +}