From e905a3d7020c76d940c0938b2617d55d6d57de7e Mon Sep 17 00:00:00 2001 From: Nobody <127373451+Nobodyworld@users.noreply.github.com> Date: Sat, 8 Aug 2026 03:56:13 -0500 Subject: [PATCH 01/13] docs(execplan): plan operator validation command center --- .../013_operator_validation_command_center.md | 622 ++++++++++++++++++ 1 file changed, 622 insertions(+) create mode 100644 .agent/execplans/013_operator_validation_command_center.md diff --git a/.agent/execplans/013_operator_validation_command_center.md b/.agent/execplans/013_operator_validation_command_center.md new file mode 100644 index 0000000..f530494 --- /dev/null +++ b/.agent/execplans/013_operator_validation_command_center.md @@ -0,0 +1,622 @@ +# Ship the operator validation command center + +This ExecPlan is a living document. The sections `Progress`, `Surprises & Discoveries`, `Decision Log`, and `Outcomes & Retrospective` must be kept up to date as work proceeds. + +This repository implements the Switchboard service. This plan must be maintained in accordance with `.agent/PLANS.md`. + +Primary issue: #136. Parent epic: #111. Cheapest-capable local routing was squash-merged through PR #135 at `223df7752716dd6ad35e75ba7613eeb03cfb2887`. + +## Purpose / Big Picture + +Turn the execution broker from a collection of trusted APIs into a usable operator product. + +After this slice, an operator should be able to open the existing Switchboard dashboard and complete one whole local-first validation workflow without stitching together curl commands: + +```text +configure worker routing + -> request validation for a GitHub PR + -> inspect the exact resolved head + -> explicitly approve and queue + -> observe cheapest-capable execution or exact reuse + -> inspect compact evidence + -> explicitly publish current or stale evidence + -> review bounded history and avoided-work metrics +``` + +The dashboard must preserve existing task, maintenance, configuration, diagnostics, analytics, and live-document behavior. This is a large vertical slice, not a replacement of the existing domains. + +The user-visible value is proof that Switchboard can make deterministic local validation genuinely convenient: it resolves exact source identity, chooses a trusted local worker, reuses exact retained evidence when safe, and shows what execution was avoided without claiming unmeasured money or paid-agent credits. + +The product remains: + +```text +PUBLIC DEVELOPER PREVIEW — NOT PRODUCTION READY +``` + +## Progress + +- [x] PR #135 squash-merged and issue #134 completed. +- [x] Exact base selected: `223df7752716dd6ad35e75ba7613eeb03cfb2887`. +- [x] Issue #136 created as one large end-to-end product slice. +- [x] Canonical branch `feat/operator-validation-command-center` created from the exact base. +- [x] Initial living ExecPlan created. +- [ ] Verify local/remote preflight and establish a clean isolated worktree. +- [ ] Run the pre-change focused backend, adapter, worker, and strict-browser baselines. +- [ ] Audit current dashboard state, execution APIs, GitHub adapter identity, and persistence upgrade path. +- [ ] Lock bounded operator projection and adapter-policy contracts. +- [ ] Implement additive adapter policy persistence and restart compatibility. +- [ ] Implement bounded worker, request, overview, and history projection APIs. +- [ ] Implement truthful avoided-work aggregation. +- [ ] Implement the Validation Broker dashboard workspace and profile-management UX. +- [ ] Implement explicit lifecycle and publication controls. +- [ ] Add server-backed fresh-then-reused routed GitHub validation proof. +- [ ] Add strict browser and accessibility acceptance. +- [ ] Add public-safe screenshot and operator documentation. +- [ ] Run the complete protected local matrix and public-hygiene audit. +- [ ] Push focused commits to the existing branch and require the complete hosted matrix. +- [ ] Complete connector review while keeping PR #137 draft and unmerged. + +## Surprises & Discoveries + +- Observation: the current dashboard is one long server-served HTML page backed by vanilla JavaScript, HTMX, Tailwind CDN classes, and a small local stylesheet rather than a component framework. + Evidence: `web/index.html` and `web/static/app.js`. The implementation should extend the established architecture unless a framework migration is independently justified, which is outside this slice. + +- Observation: the browser already stores the admin token only in local storage and sends it for protected mutations. That pattern can serve the validation workspace, but the token must never render or enter application state returned by the server. + Evidence: `ADMIN_TOKEN_STORAGE_KEY`, `loadAdminToken`, and `persistAdminToken` in `web/static/app.js`. + +- Observation: existing execution APIs expose work orders, runs, evidence, route provenance, routing-profile CRUD, and lifecycle actions, but their list endpoints are broad primitives rather than a bounded operator projection. + Evidence: `server/api/routers/execution.py`. A projection layer is preferable to making the browser join several unbounded domain lists. + +- Observation: the GitHub adapter creates and reads one request by ID but does not expose a bounded list endpoint, and its create contract currently accepts only repository, PR number, and manifest identity. + Evidence: `server/api/routers/github_execution.py` and `server/github_adapter/schemas.py`. Optional reuse/routing inputs must be additive, strict, and included in adapter idempotency. + +- Observation: the GitHub adapter response already exposes tested head, base SHA, linked work-order status, terminal run, evidence fingerprint, and publication state. The command center can build on this instead of inventing a second lifecycle. + Evidence: `GitHubValidationRequestOut` in `server/github_adapter/schemas.py`. + +- Observation: exact reuse and routed execution already persist source-run provenance, route cost snapshots, quota state, timestamps, and terminal run state. Avoided-work metrics should be derived from those immutable records rather than written into a mutable savings ledger. + Evidence: `ExecutionRun` route and reuse fields in `server/models.py`. + +- Observation: existing strict Playwright tests spin up a real FastAPI application with a file-backed SQLite database and use browser route interception only for deliberately simulated failures. + Evidence: `web/tests/test_ui.py`. New browser tests should continue exercising the real application wherever possible and use bounded mocks only for GitHub transport-dependent surfaces. + +## Decision Log + +- Decision: deliver backend projections, operator UX, history, avoided-work metrics, documentation, and end-to-end acceptance in one large vertical PR. + Rationale: the owner explicitly prefers fewer, larger coherent slices; the value of the execution broker is not obvious until the complete operator loop is visible. + Date/Author: 2026-08-08 / owner and connector planning + +- Decision: retain the existing vanilla HTML/JavaScript dashboard architecture for this slice. + Rationale: a framework migration would add unrelated build, dependency, and review risk without being required to ship the operator workflow. + Date/Author: 2026-08-08 / connector planning + +- Decision: add bounded operator projections rather than making the browser join raw work-order, run, request, worker, and profile lists. + Rationale: one server-owned projection can enforce pagination, redaction, stable ordering, and no-double-counting rules consistently. + Date/Author: 2026-08-08 / connector planning + +- Decision: extend the GitHub adapter request with optional reuse and routing policy inputs using compatibility defaults. + Rationale: the dashboard must be able to request the broker behavior already implemented without creating or mutating work orders through a separate hidden workflow. + Date/Author: 2026-08-08 / owner and connector planning + +- Decision: adapter idempotency must bind every accepted execution-policy input. + Rationale: two requests with materially different reuse, routing, quota, ceiling, or preferred-worker policy must not collapse into one adapter request. + Date/Author: 2026-08-08 / connector planning + +- Decision: derive avoided-work metrics only from successful reused runs and immutable linked source runs. + Rationale: this produces an auditable exact count and historical duration estimate without pretending to know actual paid-agent cost. + Date/Author: 2026-08-08 / owner and connector planning + +- Decision: comparison units remain operator-defined routing values, never currency or credits. + Rationale: the system does not integrate a provider or authoritative billing source. + Date/Author: 2026-08-08 / owner and connector planning + +- Decision: approval and publication remain explicit button actions. + Rationale: this slice makes the workflow convenient but must not weaken the accepted operator-control boundary. + Date/Author: 2026-08-08 / owner and connector planning + +- Decision: use bounded polling for execution state unless implementation proves a focused execution-event WebSocket materially simplifies the system. + Rationale: the current APIs are sufficient; a new event transport is not a requirement for the user outcome. + Date/Author: 2026-08-08 / connector planning + +## Outcomes & Retrospective + +Pending implementation. + +The final retrospective must describe: + +- whether the operator can complete the entire workflow without curl; +- the final API and projection boundaries; +- exact adapter-policy and migration behavior; +- fresh versus reused end-to-end evidence; +- avoided-work aggregation semantics and limitations; +- browser/accessibility results; +- screenshot provenance; +- remaining limitations before MCP or paid-provider work. + +## Context and Orientation + +### Existing operator dashboard + +- `web/index.html` contains the complete dashboard markup. +- `web/static/app.js` owns browser state, API helpers, rendering, actions, polling, and WebSocket behavior. +- `web/static/styles.css` contains local styles layered over Tailwind CDN utilities. +- `web/tests/test_ui.py` launches the real FastAPI service and runs strict Playwright acceptance. +- `server/api/routers/ui.py` serves the dashboard document. + +The current dashboard already presents: + +- system maintenance state; +- configuration; +- diagnostics; +- task analytics; +- task creation and lifecycle; +- live documents. + +The new workspace must preserve those surfaces. + +### Execution domain + +- `server/models.py` defines `ExecutionWorkOrder`, `ExecutionWorker`, `WorkerRoutingProfile`, `ExecutionRun`, and `ExecutionLease`. +- `server/execution/enums.py` defines work-order, run, reuse, routing, quota, worker, and approval states. +- `server/execution/schemas.py` defines strict input/output contracts. +- `server/execution/repository.py` owns database queries and transactional mutations. +- `server/execution/service.py` owns lifecycle, routing, reuse, quota, and evidence validation. +- `server/api/routers/execution.py` exposes authenticated operator and worker routes. +- `server/api/lifecycle.py` provides additive repeated-startup compatibility. + +### GitHub adapter + +- `server/github_adapter/schemas.py` defines strict create and response contracts. +- `server/github_adapter/service.py` resolves exact PR identity, creates the linked work order, and publishes managed evidence. +- `server/github_adapter/repository.py` owns request persistence. +- `server/github_adapter/transport.py` enforces bounded GitHub transport behavior. +- `server/api/routers/github_execution.py` exposes authenticated request, status, and publish routes. +- `server/models.py` defines `GitHubValidationRequest`. + +### Existing test foundations + +- `server/tests/test_github_adapter_service.py` +- `server/tests/test_github_adapter_transport.py` +- `server/tests/test_execution_routing.py` +- `server/tests/test_execution_reuse.py` +- `server/tests/test_execution_concurrency.py` +- `server/tests/test_execution_startup.py` +- `client/python/tests/test_execution_worker_server_smoke.py` +- `client/python/tests/test_execution_worker_reuse.py` +- `web/tests/test_ui.py` + +## Plan of Work + +### 1. Establish exact baseline + +Verify the branch and merge base, create or reuse a clean isolated worktree, and run focused baselines for: + +- GitHub adapter service/transport/startup; +- execution contracts/routing/reuse/concurrency/startup; +- worker server-smoke/reuse/strict work-order parsing; +- current strict Playwright dashboard tests. + +Record exact counts and environment limitations before implementation. + +### 2. Extend GitHub adapter policy identity + +Add optional strict fields to the adapter request: + +```text +reuse_policy +routing_policy +maximum_cost_units +required_quota_units +preferred_executor +``` + +Compatibility defaults: + +```text +never +first_available +null +0 +null +``` + +Update: + +- request schema; +- internal request identity; +- idempotency hash; +- persistence or authoritative linked-order recovery; +- work-order creation; +- response projection where useful; +- prior-schema repeated-startup compatibility; +- tests for every policy dimension. + +Do not accept manifest parameters, commands, paths, environment values, or credentials. + +### 3. Add bounded read models + +Create a focused operator projection module, likely under `server/execution/` or `server/application/`, rather than expanding already-large lifecycle methods without structure. + +Define typed outputs for: + +- overview metrics; +- worker/profile summaries; +- GitHub request list items; +- history rows; +- paginated metadata; +- current request detail when a joined projection materially reduces client calls. + +Use stable ordering and explicit hard bounds. + +Suggested history row fields: + +```text +request ID +repository and PR number +tested head SHA +manifest identity +work-order ID/status +terminal/latest run ID/status +routing policy and selected worker +estimated cost units +reuse decision and source run +run duration +evidence fingerprint +publication state/decision +created/updated timestamps +``` + +No full logs, artifact bytes, commands, argv, local paths, environments, private URLs, or credentials may enter the projection. + +### 4. Implement overview aggregation + +Derive metrics from authoritative persisted records within a caller-supplied bounded window. + +At minimum calculate: + +- request counts; +- work-order status counts; +- run status counts; +- fresh successful runs; +- reused successful runs; +- unavailable exact reuse; +- deterministic executions avoided; +- reused source-duration sum where source timing is complete; +- comparison units avoided where the reused run has a route cost snapshot; +- reuse rate; +- current/stale publication counts; +- active/stale/capacity-constrained worker counts. + +Do not double-count: + +- multiple attempts for one work order in work-order counts; +- publication updates; +- source runs themselves as avoided executions; +- reused runs without successful terminal state; +- missing source timing or missing cost snapshots. + +### 5. Add operator APIs + +Add authenticated typed endpoints equivalent to: + +```text +GET /api/execution/operator/overview +GET /api/execution/operator/history +GET /api/execution/workers +GET /api/execution/github/requests +``` + +Use explicit bounds for limit, offset/cursor, time window, and filters. + +The request-list endpoint should return bounded joined lifecycle state without forcing N+1 client calls. + +Preserve existing routes and response compatibility. + +### 6. Build the Validation Broker workspace + +Extend `web/index.html` with accessible sections or tabs for: + +- broker overview cards; +- new GitHub PR validation form; +- request detail and lifecycle actions; +- worker/routing-profile management; +- execution history and filters. + +Extend `web/static/app.js` with focused state and render functions. Avoid one monolithic function where small modules or grouped functions improve reviewability without a framework migration. + +The form should load manifest and worker choices from the server. + +Actions must include: + +- request validation; +- approve; +- approve and queue; +- queue; +- cancel; +- expire; +- refresh; +- publish evidence; +- create/replace routing profile; +- reset quota. + +Only render actions allowed by the current lifecycle state. Confirm destructive transitions. + +### 7. Monitor and explain state + +Show exact head, route, quota, run, reuse, evidence, and publication state with concise badges and a timeline. + +Use bounded polling with cleanup when the page unloads. Do not create uncontrolled request loops. + +Display conflict and stale responses through existing toast patterns plus persistent inline status where the operator needs recovery guidance. + +### 8. Implement history and avoided-work UX + +Add cards for: + +- deterministic executions avoided; +- reference execution time avoided; +- comparison units avoided; +- fresh runs; +- reused runs; +- reuse rate; +- current/stale publications. + +Use explicit labels and help text that comparison units are not money or measured paid-agent credits. + +Add a filterable table with exact SHA copy controls and fresh/reused/current/stale badges. + +### 9. Add end-to-end server proof + +Use mocked GitHub transport and existing server-backed worker helpers to prove: + +1. two workers and profiles; +2. cheapest-capable selection; +3. fresh successful evidence; +4. current publication; +5. second exact policy request; +6. local exact reuse without validation steps; +7. correct overview/history metrics; +8. moved-head stale publication. + +The proof must remain offline and use no real credentials. + +### 10. Add strict browser acceptance + +Extend Playwright tests for the principal workflow, responsiveness, keyboard navigation, disabled action reasons, optimistic conflicts, fresh/reused history, and current/stale publication. + +Use strict mode and require zero skips. + +Test at least one desktop and one narrow viewport for horizontal containment. + +### 11. Documentation and screenshot + +Update README, API, architecture, configuration, local-worker operations, public status, and a focused command-center guide. + +Capture a public-safe screenshot only from synthetic local data. Inspect it for: + +- no token; +- no local path; +- no machine identity; +- no private URL; +- no real credential-shaped value; +- no misleading actual-savings claim. + +### 12. Complete validation and delivery + +Run focused tests first, then the full protected matrix. Remove generated artifacts. Audit public changes. Commit in intentional functional groups. Push normally to the existing branch. Keep the PR draft until connector review is complete. + +## Concrete Steps + +### Preflight + +From the primary checkout, inspect only: + +```powershell +git fetch origin --prune --tags +git status --short --branch --untracked-files=all +git worktree list --porcelain +git rev-parse origin/main +git rev-parse origin/feat/operator-validation-command-center +git merge-base origin/main origin/feat/operator-validation-command-center +``` + +Require: + +```text +origin/main: 223df7752716dd6ad35e75ba7613eeb03cfb2887 +starting branch head: +merge base: 223df7752716dd6ad35e75ba7613eeb03cfb2887 +``` + +Use a clean isolated worktree. Do not switch, reset, clean, or alter an unrelated primary checkout. + +### Focused baselines + +Run at minimum: + +```powershell +python -m pip check + +python -m pytest -q -p no:cacheprovider ` + server/tests/test_github_adapter_service.py ` + server/tests/test_github_adapter_transport.py ` + server/tests/test_execution_startup.py ` + server/tests/test_execution_contracts.py ` + server/tests/test_execution_routing.py ` + server/tests/test_execution_reuse.py ` + server/tests/test_execution_concurrency.py + +python -m pytest -q -p no:cacheprovider ` + client/python/tests/test_execution_worker_server_smoke.py ` + client/python/tests/test_execution_worker_reuse.py ` + client/python/tests/test_execution_worker_strict_work_order.py + +$env:SWITCHBOARD_STRICT_PLAYWRIGHT = "1" +python -m pytest web/tests/test_ui.py -rA +``` + +### Expected implementation files + +The actual design determines the final set, but likely files include: + +```text +server/models.py +server/api/lifecycle.py +server/api/routers/execution.py +server/api/routers/github_execution.py +server/api/__init__.py +server/execution/entities.py +server/execution/schemas.py +server/execution/repository.py +server/execution/service.py +server/execution/operator_projection.py +server/github_adapter/schemas.py +server/github_adapter/repository.py +server/github_adapter/service.py +web/index.html +web/static/app.js +web/static/styles.css +web/tests/test_ui.py +server/tests/test_execution_operator_projection.py +server/tests/test_github_adapter_service.py +server/tests/test_execution_startup.py +client/python/tests/test_execution_worker_server_smoke.py +docs/API.md +docs/configuration.md +docs/architecture/local-execution-broker.md +docs/operations/local-worker.md +docs/operations/validation-command-center.md +docs/reports/status.md +README.md +``` + +Do not treat this as permission for unrelated edits. + +### Complete local matrix + +Run the repository's current protected commands, including: + +```powershell +python -m pip check +python -m pre_commit run --all-files --show-diff-on-failure +python scripts/dev.py check-todos --root . +python -m ruff check server client scripts tests web switchboard_cli.py switchboard_client.py +python -m black --check server client scripts tests web switchboard_cli.py switchboard_client.py +python -m mypy --config-file mypy.ini server client scripts + +New-Item -ItemType Directory -Force reports | Out-Null +python -m pytest --maxfail=1 --disable-warnings --junitxml=reports/pytest.xml + +$env:SWITCHBOARD_STRICT_PLAYWRIGHT = "1" +python -m pytest web/tests/test_ui.py -rA +``` + +Run the configured coverage suite and all existing module thresholds exactly as defined by the current workflow and prior ExecPlans. + +Also run: + +```powershell +python -m bandit -q -r server -x server/tests +python -m pip_audit --progress-spinner=off -r server/requirements-dev.txt +gitleaks detect --verbose + +New-Item -ItemType Directory -Force lychee | Out-Null +lychee --config lychee.toml --no-progress ` + README.md CHANGELOG.md SECURITY.md CONTRIBUTING.md CODE_OF_CONDUCT.md ` + "docs/**/*.md" ` + --exclude-path docs/history ` + --exclude-path archive + +git diff --check +git status --short --branch --untracked-files=all +``` + +Use the established compatible interpreter for pinned tools when the host interpreter has a documented tool incompatibility. Do not silently accept a scanner that skipped analysis. + +## Validation and Acceptance + +The slice is accepted only when all of the following are proven: + +1. Existing callers omit new adapter fields and retain current defaults. +2. Every policy input changes adapter idempotency when it should. +3. Existing adapter databases upgrade and start twice without duplication or data loss. +4. Worker/profile APIs are bounded and do not allow worker-owned profile writes. +5. Overview and history are paginated, stably ordered, and redacted. +6. Avoided execution count equals successful reused runs only. +7. Source-duration estimate uses the linked immutable source run only. +8. Missing source duration or route cost is excluded rather than guessed. +9. The dashboard can request, approve, queue, monitor, and publish a validation. +10. The dashboard can create/update a profile and handle revision conflicts. +11. Fresh and reused runs display distinctly. +12. Current and stale publication display distinctly. +13. A real server-backed offline fresh-then-reused flow passes. +14. Existing task dashboard behavior remains green. +15. Strict browser tests execute with zero skips. +16. Desktop and narrow viewport containment pass. +17. A public-safe screenshot contains only synthetic data. +18. Full local and hosted matrices pass. +19. Public-hygiene review finds no credential, path, machine, private URL, log, database, report, or cache leakage. +20. PR #137 remains draft and unmerged pending connector review. + +## Idempotence and Recovery + +- Adapter schema changes must use idempotent repeated-startup compatibility. +- Projection endpoints are read-only and safe to retry. +- List/history pagination must not mutate last-seen state. +- Route assessment must not refresh worker poll timestamps unless the accepted implementation explicitly documents and tests a change; the current preference is no mutation. +- UI polling must cancel prior timers and tolerate repeated refresh. +- Optimistic profile conflicts must refresh state rather than overwrite a newer revision. +- Repeated request submission with identical full identity should return the existing adapter request. +- Publication remains idempotent under the managed-comment contract. +- The screenshot must be regenerated only after the final UI state is stable. +- If implementation stops, preserve the isolated worktree and report local/remote SHAs plus every dirty path. Do not reset, clean, stash, or recreate the branch. + +## Artifacts and Notes + +Record during implementation: + +- exact preflight SHAs; +- baseline counts; +- adapter schema before/after and prior-schema test; +- example bounded overview/history payloads using synthetic values; +- fresh and reused run IDs from the server-backed proof; +- source duration and comparison-unit calculations; +- strict browser counts and viewport evidence; +- screenshot path and exact tested SHA; +- full pytest count; +- aggregate and module coverage; +- security, dependency, secret, and link results; +- public-hygiene result; +- final local/remote SHA equality; +- final hosted Commitlint and CI IDs in PR #137's external review record. + +## Interfaces and Dependencies + +Expected new or extended interfaces include equivalents of: + +```python +class GitHubValidationCreateIn: + reuse_policy: ReusePolicy = ReusePolicy.NEVER + routing_policy: RoutingPolicy = RoutingPolicy.FIRST_AVAILABLE + maximum_cost_units: int | None = None + required_quota_units: int = 0 + preferred_executor: str | None = None + +class ExecutionOperatorOverviewOut: + window: TimeWindowOut + requests: RequestMetricsOut + work_orders: WorkOrderMetricsOut + runs: RunMetricsOut + avoided_work: AvoidedWorkMetricsOut + publications: PublicationMetricsOut + workers: WorkerMetricsOut + +class ExecutionHistoryPageOut: + items: list[ExecutionHistoryItemOut] + limit: int + offset: int + total: int +``` + +Names may change to fit repository conventions, but contracts must remain typed, bounded, and strict. + +No new runtime dependency is expected. Any dependency addition requires explicit justification, pinning, license review, audit evidence, and documentation. From bd79978125eedbeb39d2ac726732ff222f14bac4 Mon Sep 17 00:00:00 2001 From: Nobodyworld <127373451+Nobodyworld@users.noreply.github.com> Date: Sat, 8 Aug 2026 16:27:29 -0500 Subject: [PATCH 02/13] feat(operator): add validation broker projections --- server/api/routers/execution.py | 101 +++- server/api/routers/github_execution.py | 68 ++- server/execution/operator_projection.py | 610 ++++++++++++++++++++++++ server/github_adapter/schemas.py | 17 + server/github_adapter/service.py | 126 ++++- 5 files changed, 914 insertions(+), 8 deletions(-) create mode 100644 server/execution/operator_projection.py diff --git a/server/api/routers/execution.py b/server/api/routers/execution.py index c979a2e..747136a 100644 --- a/server/api/routers/execution.py +++ b/server/api/routers/execution.py @@ -6,7 +6,8 @@ from __future__ import annotations -from typing import NoReturn +import datetime as dt +from typing import Literal, NoReturn from fastapi import APIRouter, Depends, HTTPException, Query from sqlalchemy.exc import IntegrityError @@ -24,7 +25,12 @@ WorkerRegistration, WorkOrderDraft, ) -from server.execution.enums import ExecutionRunStatus +from server.execution.enums import ( + ExecutionRunStatus, + ReuseDecision, + RoutingPolicy, + WorkOrderStatus, +) from server.execution.evidence import ExecutionEvidence from server.execution.exceptions import ( ApprovalDeniedError, @@ -38,6 +44,15 @@ RepositoryWritePolicyError, UnknownManifestError, ) +from server.execution.operator_projection import ( + MAX_OPERATOR_LIMIT, + MAX_OPERATOR_OFFSET, + MAX_OPERATOR_WINDOW_DAYS, + ExecutionHistoryPageOut, + ExecutionOperatorOverviewOut, + ExecutionOperatorProjection, + ExecutionWorkerPageOut, +) from server.execution.schemas import ( ApproveWorkOrderIn, CheckoutIn, @@ -62,10 +77,92 @@ WorkOrderCreateIn, WorkOrderOut, ) +from server.settings import get_execution_routing_settings router = APIRouter(dependencies=[Depends(require_admin_token)]) +@router.get( + "/api/execution/operator/overview", + response_model=ExecutionOperatorOverviewOut, +) +async def get_operator_overview( + session: SessionDependency, + window_days: int = Query(default=30, ge=1, le=MAX_OPERATOR_WINDOW_DAYS), +) -> ExecutionOperatorOverviewOut: + """Return bounded validation, reuse, publication, and worker metrics.""" + + freshness = get_execution_routing_settings() + return await ExecutionOperatorProjection(session).overview( + window_days=window_days, + heartbeat_freshness_seconds=freshness.heartbeat_freshness_seconds, + active_poll_freshness_seconds=freshness.active_poll_freshness_seconds, + ) + + +@router.get( + "/api/execution/operator/history", + response_model=ExecutionHistoryPageOut, +) +async def list_operator_history( # noqa: PLR0913 + session: SessionDependency, + limit: int = Query(default=25, ge=1, le=MAX_OPERATOR_LIMIT), + offset: int = Query(default=0, ge=0, le=MAX_OPERATOR_OFFSET), + repository_full_name: str | None = Query( + default=None, min_length=3, max_length=255 + ), + pull_request_number: int | None = Query(default=None, ge=1), + work_order_status: WorkOrderStatus | None = None, + run_status: ExecutionRunStatus | None = None, + reuse_decision: ReuseDecision | None = None, + routing_policy: RoutingPolicy | None = None, + publication_state: ( + Literal[ + "not_published", + "published_current", + "published_stale", + "retryable_failure", + "failed", + ] + | None + ) = None, + created_after: dt.datetime | None = None, + created_before: dt.datetime | None = None, +) -> ExecutionHistoryPageOut: + """List redacted validation history in stable newest-first order.""" + + return await ExecutionOperatorProjection(session).list_history( + limit=limit, + offset=offset, + repository_full_name=repository_full_name, + pull_request_number=pull_request_number, + work_order_status=(work_order_status.value if work_order_status else None), + run_status=(run_status.value if run_status else None), + reuse_decision=(reuse_decision.value if reuse_decision else None), + routing_policy=(routing_policy.value if routing_policy else None), + publication_state=publication_state, + created_after=created_after, + created_before=created_before, + ) + + +@router.get("/api/execution/workers", response_model=ExecutionWorkerPageOut) +async def list_execution_workers( + session: SessionDependency, + limit: int = Query(default=25, ge=1, le=MAX_OPERATOR_LIMIT), + offset: int = Query(default=0, ge=0, le=MAX_OPERATOR_OFFSET), +) -> ExecutionWorkerPageOut: + """List bounded worker and operator-owned routing profile summaries.""" + + freshness = get_execution_routing_settings() + return await ExecutionOperatorProjection(session).list_workers( + limit=limit, + offset=offset, + heartbeat_freshness_seconds=freshness.heartbeat_freshness_seconds, + active_poll_freshness_seconds=freshness.active_poll_freshness_seconds, + ) + + def _raise_domain_error(error: ExecutionDomainError) -> NoReturn: """Map expected execution-domain errors to documented HTTP responses.""" diff --git a/server/api/routers/github_execution.py b/server/api/routers/github_execution.py index cecb957..90d0805 100644 --- a/server/api/routers/github_execution.py +++ b/server/api/routers/github_execution.py @@ -2,9 +2,10 @@ from __future__ import annotations -from typing import NoReturn +import datetime as dt +from typing import Literal, NoReturn -from fastapi import APIRouter, Depends, HTTPException +from fastapi import APIRouter, Depends, HTTPException, Query from sqlalchemy.exc import IntegrityError from server.api.dependencies import ( @@ -12,6 +13,18 @@ SessionDependency, require_admin_token, ) +from server.execution.enums import ( + ExecutionRunStatus, + ReuseDecision, + RoutingPolicy, + WorkOrderStatus, +) +from server.execution.operator_projection import ( + MAX_OPERATOR_LIMIT, + MAX_OPERATOR_OFFSET, + ExecutionHistoryPageOut, + ExecutionOperatorProjection, +) from server.github_adapter.errors import ( GitHubAdapterError, GitHubManifestError, @@ -28,6 +41,52 @@ router = APIRouter(dependencies=[Depends(require_admin_token)]) +@router.get( + "/api/execution/github/requests", + response_model=ExecutionHistoryPageOut, +) +async def list_github_validation_requests( # noqa: PLR0913 + session: SessionDependency, + limit: int = Query(default=25, ge=1, le=MAX_OPERATOR_LIMIT), + offset: int = Query(default=0, ge=0, le=MAX_OPERATOR_OFFSET), + repository_full_name: str | None = Query( + default=None, min_length=3, max_length=255 + ), + pull_request_number: int | None = Query(default=None, ge=1), + work_order_status: WorkOrderStatus | None = None, + run_status: ExecutionRunStatus | None = None, + reuse_decision: ReuseDecision | None = None, + routing_policy: RoutingPolicy | None = None, + publication_state: ( + Literal[ + "not_published", + "published_current", + "published_stale", + "retryable_failure", + "failed", + ] + | None + ) = None, + created_after: dt.datetime | None = None, + created_before: dt.datetime | None = None, +) -> ExecutionHistoryPageOut: + """List bounded GitHub request and linked lifecycle projections.""" + + return await ExecutionOperatorProjection(session).list_history( + limit=limit, + offset=offset, + repository_full_name=repository_full_name, + pull_request_number=pull_request_number, + work_order_status=(work_order_status.value if work_order_status else None), + run_status=(run_status.value if run_status else None), + reuse_decision=(reuse_decision.value if reuse_decision else None), + routing_policy=(routing_policy.value if routing_policy else None), + publication_state=publication_state, + created_after=created_after, + created_before=created_before, + ) + + def _raise_adapter_error(error: GitHubAdapterError) -> NoReturn: reason = str(error) if isinstance(error, GitHubRequestNotFoundError): @@ -71,6 +130,11 @@ async def request_pull_request_validation( pull_request_number=body.pull_request_number, manifest_name=body.manifest.name, manifest_version=body.manifest.version, + reuse_policy=body.reuse_policy, + routing_policy=body.routing_policy, + maximum_cost_units=body.maximum_cost_units, + required_quota_units=body.required_quota_units, + preferred_executor=body.preferred_executor, ) except GitHubAdapterError as error: await session.rollback() diff --git a/server/execution/operator_projection.py b/server/execution/operator_projection.py new file mode 100644 index 0000000..d3a6bba --- /dev/null +++ b/server/execution/operator_projection.py @@ -0,0 +1,610 @@ +"""Bounded, redacted read models for the validation broker dashboard.""" + +from __future__ import annotations + +import datetime as dt +from typing import Any, Literal + +from pydantic import BaseModel, ConfigDict, Field +from sqlalchemy import Select, func, select +from sqlalchemy.ext.asyncio import AsyncSession +from sqlalchemy.orm import InstrumentedAttribute, aliased +from sqlalchemy.sql.elements import ColumnElement + +from server.models import ( + ExecutionRun, + ExecutionWorker, + ExecutionWorkOrder, + GitHubValidationRequest, + WorkerRoutingProfile, +) +from server.time_utils import utcnow_naive + +from .enums import ExecutionRunStatus, ReuseDecision, WorkerStatus + +MAX_OPERATOR_LIMIT = 100 +MAX_OPERATOR_OFFSET = 10_000 +MAX_OPERATOR_WINDOW_DAYS = 365 +SHA256_HEX_LENGTH = 64 + + +class OperatorProjectionModel(BaseModel): + """Strict base for browser-safe operator projections.""" + + model_config = ConfigDict(extra="forbid") + + +class OperatorWindowOut(OperatorProjectionModel): + """Inclusive UTC window applied to persisted record timestamps.""" + + days: int = Field(ge=1, le=MAX_OPERATOR_WINDOW_DAYS) + starts_at: dt.datetime + ends_at: dt.datetime + + +class OperatorRequestMetricsOut(OperatorProjectionModel): + total: int = Field(ge=0) + + +class OperatorWorkOrderMetricsOut(OperatorProjectionModel): + total: int = Field(ge=0) + by_status: dict[str, int] + + +class OperatorRunMetricsOut(OperatorProjectionModel): + total: int = Field(ge=0) + by_status: dict[str, int] + fresh_successful: int = Field(ge=0) + reused_successful: int = Field(ge=0) + unavailable_exact_reuse: int = Field(ge=0) + + +class AvoidedWorkMetricsOut(OperatorProjectionModel): + deterministic_executions_avoided: int = Field(ge=0) + reference_seconds_avoided: float = Field(ge=0) + comparison_units_avoided: int = Field(ge=0) + reuse_rate: float = Field(ge=0, le=1) + + +class OperatorPublicationMetricsOut(OperatorProjectionModel): + current: int = Field(ge=0) + stale: int = Field(ge=0) + + +class OperatorWorkerMetricsOut(OperatorProjectionModel): + total: int = Field(ge=0) + active: int = Field(ge=0) + stale: int = Field(ge=0) + capacity_constrained: int = Field(ge=0) + + +class ExecutionOperatorOverviewOut(OperatorProjectionModel): + window: OperatorWindowOut + requests: OperatorRequestMetricsOut + work_orders: OperatorWorkOrderMetricsOut + runs: OperatorRunMetricsOut + avoided_work: AvoidedWorkMetricsOut + publications: OperatorPublicationMetricsOut + workers: OperatorWorkerMetricsOut + + +class RoutingProfileSummaryOut(OperatorProjectionModel): + enabled: bool + estimated_cost_units_per_run: int = Field(ge=0) + quota_capacity_units: int = Field(ge=0) + quota_remaining_units: int = Field(ge=0) + quota_reset_at: dt.datetime | None + routing_priority: int = Field(ge=0) + revision: int = Field(ge=1) + updated_at: dt.datetime + + +class ExecutionWorkerSummaryOut(OperatorProjectionModel): + worker_id: str = Field(min_length=1, max_length=128) + display_name: str = Field(min_length=1, max_length=255) + operating_system: str = Field(min_length=1, max_length=64) + architecture: str = Field(min_length=1, max_length=64) + status: str = Field(min_length=1, max_length=32) + activity_state: Literal["active", "stale", "capacity_constrained", "unavailable"] + active_run_count: int = Field(ge=0) + max_concurrency: int = Field(ge=1) + last_heartbeat_at: dt.datetime + last_checkout_poll_at: dt.datetime | None + profile: RoutingProfileSummaryOut | None + + +class ExecutionWorkerPageOut(OperatorProjectionModel): + items: list[ExecutionWorkerSummaryOut] + limit: int = Field(ge=1, le=MAX_OPERATOR_LIMIT) + offset: int = Field(ge=0, le=MAX_OPERATOR_OFFSET) + total: int = Field(ge=0) + + +class ExecutionHistoryItemOut(OperatorProjectionModel): + request_id: int = Field(ge=1) + repository_full_name: str = Field(min_length=3, max_length=255) + pull_request_number: int = Field(ge=1) + tested_head_sha: str = Field(pattern=r"^[0-9a-f]{40}$") + manifest_name: str = Field(min_length=1, max_length=128) + manifest_version: str = Field(min_length=1, max_length=64) + work_order_id: int = Field(ge=1) + work_order_status: str = Field(min_length=1, max_length=32) + routing_policy: str = Field(min_length=1, max_length=32) + preferred_executor: str | None = Field(default=None, max_length=128) + maximum_cost_units: int | None = Field(default=None, ge=0) + required_quota_units: int = Field(ge=0) + run_id: int | None = Field(default=None, ge=1) + run_status: str | None = Field(default=None, max_length=32) + selected_worker_id: str | None = Field(default=None, max_length=128) + estimated_cost_units: int | None = Field(default=None, ge=0) + reuse_decision: str | None = Field(default=None, max_length=32) + reused_from_run_id: int | None = Field(default=None, ge=1) + run_duration_seconds: float | None = Field(default=None, ge=0) + evidence_fingerprint: str | None = Field(default=None, pattern=r"^[0-9a-f]{64}$") + publication_state: str = Field(min_length=1, max_length=32) + publication_decision: str = Field(min_length=1, max_length=16) + created_at: dt.datetime + updated_at: dt.datetime + + +class ExecutionHistoryPageOut(OperatorProjectionModel): + items: list[ExecutionHistoryItemOut] + limit: int = Field(ge=1, le=MAX_OPERATOR_LIMIT) + offset: int = Field(ge=0, le=MAX_OPERATOR_OFFSET) + total: int = Field(ge=0) + + +def _enum_value(value: object) -> str: + return str(getattr(value, "value", value)) + + +def _utc_naive(value: dt.datetime) -> dt.datetime: + if value.tzinfo is None or value.utcoffset() is None: + return value + return value.astimezone(dt.UTC).replace(tzinfo=None) + + +def _fresh(value: dt.datetime | None, *, now: dt.datetime, seconds: int) -> bool: + return value is not None and _utc_naive(value) >= now - dt.timedelta( + seconds=seconds + ) + + +class ExecutionOperatorProjection: + """Build stable operator views without exposing executable or sensitive data.""" + + def __init__(self, session: AsyncSession) -> None: + self._session = session + + async def overview( + self, + *, + window_days: int, + heartbeat_freshness_seconds: int, + active_poll_freshness_seconds: int, + now: dt.datetime | None = None, + ) -> ExecutionOperatorOverviewOut: + now = _utc_naive(now or utcnow_naive()) + starts_at = now - dt.timedelta(days=window_days) + + request_total = int( + await self._session.scalar( + select(func.count(GitHubValidationRequest.id)).where( + GitHubValidationRequest.created_at >= starts_at + ) + ) + or 0 + ) + work_order_counts = await self._grouped_counts( + ExecutionWorkOrder.status, + ExecutionWorkOrder.created_at >= starts_at, + ) + run_counts = await self._grouped_counts( + ExecutionRun.status, + ExecutionRun.created_at >= starts_at, + ) + reuse_rows = ( + await self._session.execute( + select( + ExecutionRun.reuse_decision, + ExecutionRun.status, + ExecutionRun.route_estimated_cost_units, + ExecutionRun.reused_from_run_id, + ).where(ExecutionRun.created_at >= starts_at) + ) + ).all() + fresh = sum( + status == ExecutionRunStatus.SUCCEEDED and decision == ReuseDecision.FRESH + for decision, status, _cost, _source in reuse_rows + ) + reused_rows = [ + row + for row in reuse_rows + if row.status == ExecutionRunStatus.SUCCEEDED + and row.reuse_decision == ReuseDecision.REUSED + ] + reused = len(reused_rows) + unavailable = sum( + decision == ReuseDecision.UNAVAILABLE + for decision, _status, _cost, _source in reuse_rows + ) + source_ids = { + row.reused_from_run_id for row in reused_rows if row.reused_from_run_id + } + source_durations: dict[int, float] = {} + if source_ids: + source_runs = ( + await self._session.execute( + select( + ExecutionRun.id, + ExecutionRun.started_at, + ExecutionRun.finished_at, + ).where(ExecutionRun.id.in_(source_ids)) + ) + ).all() + source_durations = { + run_id: max(0.0, (finished - started).total_seconds()) + for run_id, started, finished in source_runs + if started is not None and finished is not None and finished >= started + } + seconds_avoided = sum( + source_durations.get(row.reused_from_run_id, 0.0) for row in reused_rows + ) + units_avoided = sum( + row.route_estimated_cost_units + for row in reused_rows + if row.route_estimated_cost_units is not None + ) + + publication_counts = await self._grouped_counts( + GitHubValidationRequest.publication_state, + GitHubValidationRequest.created_at >= starts_at, + ) + worker_rows = ( + await self._session.execute( + select( + ExecutionWorker.status, + ExecutionWorker.active_run_count, + ExecutionWorker.max_concurrency, + ExecutionWorker.last_heartbeat_at, + ExecutionWorker.last_checkout_poll_at, + ) + ) + ).all() + worker_states = [ + _worker_activity_state( + status=status, + active_run_count=active_runs, + max_concurrency=max_concurrency, + last_heartbeat_at=heartbeat, + last_checkout_poll_at=poll, + now=now, + heartbeat_freshness_seconds=heartbeat_freshness_seconds, + active_poll_freshness_seconds=active_poll_freshness_seconds, + ) + for status, active_runs, max_concurrency, heartbeat, poll in worker_rows + ] + denominator = fresh + reused + return ExecutionOperatorOverviewOut( + window=OperatorWindowOut( + days=window_days, + starts_at=starts_at.replace(tzinfo=dt.UTC), + ends_at=now.replace(tzinfo=dt.UTC), + ), + requests=OperatorRequestMetricsOut(total=request_total), + work_orders=OperatorWorkOrderMetricsOut( + total=sum(work_order_counts.values()), by_status=work_order_counts + ), + runs=OperatorRunMetricsOut( + total=sum(run_counts.values()), + by_status=run_counts, + fresh_successful=fresh, + reused_successful=reused, + unavailable_exact_reuse=unavailable, + ), + avoided_work=AvoidedWorkMetricsOut( + deterministic_executions_avoided=reused, + reference_seconds_avoided=seconds_avoided, + comparison_units_avoided=units_avoided, + reuse_rate=(reused / denominator if denominator else 0.0), + ), + publications=OperatorPublicationMetricsOut( + current=publication_counts.get("published_current", 0), + stale=publication_counts.get("published_stale", 0), + ), + workers=OperatorWorkerMetricsOut( + total=len(worker_states), + active=worker_states.count("active"), + stale=worker_states.count("stale"), + capacity_constrained=worker_states.count("capacity_constrained"), + ), + ) + + async def list_workers( + self, + *, + limit: int, + offset: int, + heartbeat_freshness_seconds: int, + active_poll_freshness_seconds: int, + now: dt.datetime | None = None, + ) -> ExecutionWorkerPageOut: + now = _utc_naive(now or utcnow_naive()) + total = int( + await self._session.scalar(select(func.count(ExecutionWorker.id))) or 0 + ) + rows = ( + await self._session.execute( + select(ExecutionWorker, WorkerRoutingProfile) + .outerjoin( + WorkerRoutingProfile, + WorkerRoutingProfile.worker_id == ExecutionWorker.worker_id, + ) + .order_by(ExecutionWorker.worker_id) + .limit(limit) + .offset(offset) + ) + ).all() + items = [] + for worker, profile in rows: + profile_out = None + if profile is not None: + profile_out = RoutingProfileSummaryOut.model_validate( + { + "enabled": profile.enabled, + "estimated_cost_units_per_run": ( + profile.estimated_cost_units_per_run + ), + "quota_capacity_units": profile.quota_capacity_units, + "quota_remaining_units": profile.quota_remaining_units, + "quota_reset_at": profile.quota_reset_at, + "routing_priority": profile.routing_priority, + "revision": profile.revision, + "updated_at": profile.updated_at, + } + ) + items.append( + ExecutionWorkerSummaryOut( + worker_id=worker.worker_id, + display_name=worker.display_name, + operating_system=worker.operating_system, + architecture=worker.architecture, + status=_enum_value(worker.status), + activity_state=_worker_activity_state( + status=worker.status, + active_run_count=worker.active_run_count, + max_concurrency=worker.max_concurrency, + last_heartbeat_at=worker.last_heartbeat_at, + last_checkout_poll_at=worker.last_checkout_poll_at, + now=now, + heartbeat_freshness_seconds=heartbeat_freshness_seconds, + active_poll_freshness_seconds=active_poll_freshness_seconds, + ), + active_run_count=worker.active_run_count, + max_concurrency=worker.max_concurrency, + last_heartbeat_at=worker.last_heartbeat_at, + last_checkout_poll_at=worker.last_checkout_poll_at, + profile=profile_out, + ) + ) + return ExecutionWorkerPageOut( + items=items, limit=limit, offset=offset, total=total + ) + + async def list_history( # noqa: PLR0913 + self, + *, + limit: int, + offset: int, + repository_full_name: str | None = None, + pull_request_number: int | None = None, + work_order_status: str | None = None, + run_status: str | None = None, + reuse_decision: str | None = None, + routing_policy: str | None = None, + publication_state: str | None = None, + created_after: dt.datetime | None = None, + created_before: dt.datetime | None = None, + ) -> ExecutionHistoryPageOut: + latest_run = aliased(ExecutionRun) + latest_run_id = ( + select(func.max(ExecutionRun.id)) + .where(ExecutionRun.work_order_id == ExecutionWorkOrder.id) + .correlate(ExecutionWorkOrder) + .scalar_subquery() + ) + statement = ( + select(GitHubValidationRequest, ExecutionWorkOrder, latest_run) + .join( + ExecutionWorkOrder, + ExecutionWorkOrder.id == GitHubValidationRequest.work_order_id, + ) + .outerjoin(latest_run, latest_run.id == latest_run_id) + ) + statement = self._history_filters( + statement, + latest_run=latest_run, + repository_full_name=repository_full_name, + pull_request_number=pull_request_number, + work_order_status=work_order_status, + run_status=run_status, + reuse_decision=reuse_decision, + routing_policy=routing_policy, + publication_state=publication_state, + created_after=created_after, + created_before=created_before, + ) + count_statement = select(func.count(GitHubValidationRequest.id)).join( + ExecutionWorkOrder, + ExecutionWorkOrder.id == GitHubValidationRequest.work_order_id, + ) + if reuse_decision is not None or run_status is not None: + count_statement = count_statement.outerjoin( + latest_run, latest_run.id == latest_run_id + ) + count_statement = self._history_filters( + count_statement, + latest_run=latest_run, + repository_full_name=repository_full_name, + pull_request_number=pull_request_number, + work_order_status=work_order_status, + run_status=run_status, + reuse_decision=reuse_decision, + routing_policy=routing_policy, + publication_state=publication_state, + created_after=created_after, + created_before=created_before, + ) + total = int(await self._session.scalar(count_statement) or 0) + rows = ( + await self._session.execute( + statement.order_by( + GitHubValidationRequest.created_at.desc(), + GitHubValidationRequest.id.desc(), + ) + .limit(limit) + .offset(offset) + ) + ).all() + return ExecutionHistoryPageOut( + items=[_history_item(request, order, run) for request, order, run in rows], + limit=limit, + offset=offset, + total=total, + ) + + async def _grouped_counts( + self, column: InstrumentedAttribute[Any], predicate: ColumnElement[bool] + ) -> dict[str, int]: + rows = ( + await self._session.execute( + select(column, func.count()).where(predicate).group_by(column) + ) + ).all() + return {_enum_value(value): int(count) for value, count in rows} + + @staticmethod + def _history_filters( # noqa: PLR0913 + statement: Select[Any], + *, + latest_run: Any, + repository_full_name: str | None, + pull_request_number: int | None, + work_order_status: str | None, + run_status: str | None, + reuse_decision: str | None, + routing_policy: str | None, + publication_state: str | None, + created_after: dt.datetime | None, + created_before: dt.datetime | None, + ) -> Select[Any]: + if repository_full_name is not None: + statement = statement.where( + GitHubValidationRequest.repository_full_name == repository_full_name + ) + if pull_request_number is not None: + statement = statement.where( + GitHubValidationRequest.pull_request_number == pull_request_number + ) + if work_order_status is not None: + statement = statement.where(ExecutionWorkOrder.status == work_order_status) + if run_status is not None: + statement = statement.where(latest_run.status == run_status) + if reuse_decision is not None: + statement = statement.where(latest_run.reuse_decision == reuse_decision) + if routing_policy is not None: + statement = statement.where( + ExecutionWorkOrder.routing_policy == routing_policy + ) + if publication_state is not None: + statement = statement.where( + GitHubValidationRequest.publication_state == publication_state + ) + if created_after is not None: + statement = statement.where( + GitHubValidationRequest.created_at >= _utc_naive(created_after) + ) + if created_before is not None: + statement = statement.where( + GitHubValidationRequest.created_at <= _utc_naive(created_before) + ) + return statement + + +def _worker_activity_state( # noqa: PLR0913 + *, + status: WorkerStatus, + active_run_count: int, + max_concurrency: int, + last_heartbeat_at: dt.datetime, + last_checkout_poll_at: dt.datetime | None, + now: dt.datetime, + heartbeat_freshness_seconds: int, + active_poll_freshness_seconds: int, +) -> Literal["active", "stale", "capacity_constrained", "unavailable"]: + if status != WorkerStatus.ONLINE: + return "unavailable" + if active_run_count >= max_concurrency: + return "capacity_constrained" + if not _fresh( + last_heartbeat_at, now=now, seconds=heartbeat_freshness_seconds + ) or not _fresh( + last_checkout_poll_at, now=now, seconds=active_poll_freshness_seconds + ): + return "stale" + return "active" + + +def _history_item( + request: GitHubValidationRequest, + order: ExecutionWorkOrder, + run: ExecutionRun | None, +) -> ExecutionHistoryItemOut: + fingerprint = None + duration = None + if run is not None: + if isinstance(run.evidence_metadata, dict): + candidate = run.evidence_metadata.get("fingerprint") + if isinstance(candidate, str) and len(candidate) == SHA256_HEX_LENGTH: + fingerprint = candidate + if run.started_at is not None and run.finished_at is not None: + duration = max(0.0, (run.finished_at - run.started_at).total_seconds()) + return ExecutionHistoryItemOut( + request_id=request.id, + repository_full_name=request.repository_full_name, + pull_request_number=request.pull_request_number, + tested_head_sha=request.head_sha, + manifest_name=request.manifest_name, + manifest_version=request.manifest_version, + work_order_id=order.id, + work_order_status=_enum_value(order.status), + routing_policy=_enum_value(order.routing_policy), + preferred_executor=order.preferred_executor, + maximum_cost_units=order.maximum_cost_units, + required_quota_units=order.required_quota_units, + run_id=run.id if run is not None else None, + run_status=_enum_value(run.status) if run is not None else None, + selected_worker_id=run.worker_id if run is not None else None, + estimated_cost_units=( + run.route_estimated_cost_units if run is not None else None + ), + reuse_decision=_enum_value(run.reuse_decision) if run is not None else None, + reused_from_run_id=run.reused_from_run_id if run is not None else None, + run_duration_seconds=duration, + evidence_fingerprint=fingerprint, + publication_state=request.publication_state, + publication_decision=request.publication_decision, + created_at=request.created_at, + updated_at=request.updated_at, + ) + + +__all__ = [ + "MAX_OPERATOR_LIMIT", + "MAX_OPERATOR_OFFSET", + "MAX_OPERATOR_WINDOW_DAYS", + "ExecutionHistoryPageOut", + "ExecutionOperatorOverviewOut", + "ExecutionOperatorProjection", + "ExecutionWorkerPageOut", +] diff --git a/server/github_adapter/schemas.py b/server/github_adapter/schemas.py index b789785..1fabc9c 100644 --- a/server/github_adapter/schemas.py +++ b/server/github_adapter/schemas.py @@ -7,6 +7,9 @@ from pydantic import BaseModel, ConfigDict, Field +from server.execution.enums import ReusePolicy, RoutingPolicy +from server.execution.routing import MAX_ROUTING_INTEGER + from .service import GitHubRequestStatus @@ -33,6 +36,15 @@ class GitHubValidationCreateIn(GitHubAdapterInput): ) pull_request_number: int = Field(ge=1, le=2_147_483_647) manifest: GitHubManifestReferenceIn + reuse_policy: ReusePolicy = ReusePolicy.NEVER + routing_policy: RoutingPolicy = RoutingPolicy.FIRST_AVAILABLE + maximum_cost_units: int | None = Field( + default=None, strict=True, ge=0, le=MAX_ROUTING_INTEGER + ) + required_quota_units: int = Field( + default=0, strict=True, ge=0, le=MAX_ROUTING_INTEGER + ) + preferred_executor: str | None = Field(default=None, min_length=1, max_length=128) class GitHubValidationRequestOut(BaseModel): @@ -60,6 +72,11 @@ class GitHubValidationRequestOut(BaseModel): operator_id: str = Field(min_length=1, max_length=128) work_order_id: int = Field(ge=1) work_order_status: str = Field(min_length=1, max_length=32) + reuse_policy: ReusePolicy + routing_policy: RoutingPolicy + maximum_cost_units: int | None = Field(default=None, ge=0) + required_quota_units: int = Field(ge=0) + preferred_executor: str | None = Field(default=None, max_length=128) terminal_run_id: int | None = Field(default=None, ge=1) terminal_run_status: str | None = Field(default=None, max_length=32) evidence_fingerprint: str | None = Field(default=None, pattern=r"^[0-9a-f]{64}$") diff --git a/server/github_adapter/service.py b/server/github_adapter/service.py index 7b2c574..641a94a 100644 --- a/server/github_adapter/service.py +++ b/server/github_adapter/service.py @@ -12,7 +12,12 @@ from sqlalchemy.exc import IntegrityError from server.execution.entities import WorkOrderDraft -from server.execution.enums import ApprovalPolicy, is_terminal_run +from server.execution.enums import ( + ApprovalPolicy, + ReusePolicy, + RoutingPolicy, + is_terminal_run, +) from server.execution.evidence import ExecutionEvidence from server.execution.exceptions import ExecutionNotFoundError, MalformedEvidenceError from server.execution.registry import ( @@ -74,6 +79,11 @@ class GitHubRequestStatus: operator_id: str work_order_id: int work_order_status: str + reuse_policy: ReusePolicy + routing_policy: RoutingPolicy + maximum_cost_units: int | None + required_quota_units: int + preferred_executor: str | None terminal_run_id: int | None terminal_run_status: str | None evidence_fingerprint: str | None @@ -115,13 +125,18 @@ def __init__( self._settings = settings self._clock = clock - async def request_validation( + async def request_validation( # noqa: PLR0913 self, *, repository_full_name: str, pull_request_number: int, manifest_name: str, manifest_version: str, + reuse_policy: ReusePolicy = ReusePolicy.NEVER, + routing_policy: RoutingPolicy = RoutingPolicy.FIRST_AVAILABLE, + maximum_cost_units: int | None = None, + required_quota_units: int = 0, + preferred_executor: str | None = None, ) -> GitHubRequestStatus: """Create or return one pending work order for the exact resolved head.""" @@ -146,8 +161,27 @@ async def request_validation( actor=actor, resolved=resolved, manifest=manifest, + reuse_policy=reuse_policy, + routing_policy=routing_policy, + maximum_cost_units=maximum_cost_units, + required_quota_units=required_quota_units, + preferred_executor=preferred_executor, ) existing = await self._repository.get_by_idempotency_key(idempotency_key) + if existing is None and _uses_legacy_default_policy( + reuse_policy=reuse_policy, + routing_policy=routing_policy, + maximum_cost_units=maximum_cost_units, + required_quota_units=required_quota_units, + preferred_executor=preferred_executor, + ): + legacy_key = _legacy_idempotency_key( + settings=self._settings, + actor=actor, + resolved=resolved, + manifest=manifest, + ) + existing = await self._repository.get_by_idempotency_key(legacy_key) if existing is not None: return await self._status(existing) @@ -179,8 +213,12 @@ async def request_validation( resource_metadata={}, network_policy=manifest.network_policy, repository_write_allowed=False, - preferred_executor=None, + preferred_executor=preferred_executor, cost_ceiling=0.0, + reuse_policy=reuse_policy, + routing_policy=routing_policy, + maximum_cost_units=maximum_cost_units, + required_quota_units=required_quota_units, ) ) request = await self._repository.create( @@ -223,6 +261,22 @@ async def request_validation( recovered = await self._repository.get_by_idempotency_key( idempotency_key, refresh=True ) + if recovered is None and _uses_legacy_default_policy( + reuse_policy=reuse_policy, + routing_policy=routing_policy, + maximum_cost_units=maximum_cost_units, + required_quota_units=required_quota_units, + preferred_executor=preferred_executor, + ): + recovered = await self._repository.get_by_idempotency_key( + _legacy_idempotency_key( + settings=self._settings, + actor=actor, + resolved=resolved, + manifest=manifest, + ), + refresh=True, + ) if recovered is None: raise request = recovered @@ -677,6 +731,11 @@ async def _status( operator_id=request.operator_id, work_order_id=request.work_order_id, work_order_status=work_order.status.value, + reuse_policy=work_order.reuse_policy, + routing_policy=work_order.routing_policy, + maximum_cost_units=work_order.maximum_cost_units, + required_quota_units=work_order.required_quota_units, + preferred_executor=work_order.preferred_executor, terminal_run_id=run.id if run is not None else None, terminal_run_status=(run.status.value if run is not None else None), evidence_fingerprint=fingerprint, @@ -696,12 +755,17 @@ async def _status( ) -def _idempotency_key( +def _idempotency_key( # noqa: PLR0913 *, settings: GitHubSettings, actor: GitHubActorIdentity, resolved: ResolvedPullRequest, manifest: TrustedManifest, + reuse_policy: ReusePolicy, + routing_policy: RoutingPolicy, + maximum_cost_units: int | None, + required_quota_units: int, + preferred_executor: str | None, ) -> str: if resolved.head_sha is None: # pragma: no cover - request requires it raise GitHubTransportError("github_head_unavailable") @@ -718,11 +782,65 @@ def _idempotency_key( "repository_node_id": resolved.repository_node_id, "schema_version": GITHUB_ADAPTER_SCHEMA_VERSION, "tested_head_sha": resolved.head_sha, + "execution_policy": { + "maximum_cost_units": maximum_cost_units, + "preferred_executor": preferred_executor, + "required_quota_units": required_quota_units, + "reuse_policy": reuse_policy.value, + "routing_policy": routing_policy.value, + "schema_version": 1, + }, } encoded = json.dumps(payload, sort_keys=True, separators=(",", ":")) return hashlib.sha256(encoded.encode("utf-8")).hexdigest() +def _legacy_idempotency_key( + *, + settings: GitHubSettings, + actor: GitHubActorIdentity, + resolved: ResolvedPullRequest, + manifest: TrustedManifest, +) -> str: + """Return the exact pre-#136 key for immutable all-default fallback only.""" + + if resolved.head_sha is None: # pragma: no cover - request requires it + raise GitHubTransportError("github_head_unavailable") + payload = { + "github_api_url": settings.api_url, + "github_actor_id": actor.actor_id, + "github_actor_node_id": actor.node_id, + "manifest_digest": manifest.digest, + "manifest_name": manifest.name, + "manifest_version": manifest.version, + "pull_request_id": resolved.pull_request_id, + "pull_request_node_id": resolved.pull_request_node_id, + "repository_id": resolved.repository_id, + "repository_node_id": resolved.repository_node_id, + "schema_version": GITHUB_ADAPTER_SCHEMA_VERSION, + "tested_head_sha": resolved.head_sha, + } + encoded = json.dumps(payload, sort_keys=True, separators=(",", ":")) + return hashlib.sha256(encoded.encode("utf-8")).hexdigest() + + +def _uses_legacy_default_policy( + *, + reuse_policy: ReusePolicy, + routing_policy: RoutingPolicy, + maximum_cost_units: int | None, + required_quota_units: int, + preferred_executor: str | None, +) -> bool: + return ( + reuse_policy == ReusePolicy.NEVER + and routing_policy == RoutingPolicy.FIRST_AVAILABLE + and maximum_cost_units is None + and required_quota_units == 0 + and preferred_executor is None + ) + + def _same_stable_identity( request: GitHubValidationRequest, resolved: ResolvedPullRequest ) -> bool: From fd2a1fc7b5afddd299ed503fabe97be677f5b56d Mon Sep 17 00:00:00 2001 From: Nobodyworld <127373451+Nobodyworld@users.noreply.github.com> Date: Sat, 8 Aug 2026 16:27:44 -0500 Subject: [PATCH 03/13] feat(operator): add validation command center --- web/index.html | 214 +++++++++- web/static/app.js | 9 + web/static/styles.css | 475 ++++++++++++++++++++++ web/static/validation_broker.js | 690 ++++++++++++++++++++++++++++++++ 4 files changed, 1385 insertions(+), 3 deletions(-) create mode 100644 web/static/validation_broker.js diff --git a/web/index.html b/web/index.html index 422efcb..3eb4489 100644 --- a/web/index.html +++ b/web/index.html @@ -11,9 +11,14 @@
-
-

Switchboard

-

Real-time task switchboard & live file host for agents.

+
+
+
+

Switchboard

+

Real-time task switchboard & local validation broker for agents.

+
+ Public developer preview — not production ready +
+
+
+
+

Local-first execution

+

Validation Broker

+

Resolve an exact GitHub head, route it to a trusted local worker, and publish compact evidence explicitly.

+
+
+ + + +
+
+

Loading validation broker…

+ +
+ +
+
+
+
+

New request

+

GitHub PR validation

+
+
+
+ + + +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ +
+
+ + +
+
+ + +
+
+ + + +

Comparison units are operator-defined routing values, not money or measured paid-agent credits.

+ +
+
+ +
+
+
+

Selected request

+

Lifecycle & evidence

+
+ +
+
Select a request from history or submit a new validation.
+
+
+ +
+
+
+
+

Operator-owned configuration

+

Worker routing profiles

+
+
+
+
+ +
+
+
+

Revision-safe edit

+

Create or replace profile

+
+
+
+ + +
+
+ + +
+
+ + +
+
+
+
+ + +
+
+ + +
+
+ + +
+ + +
+

Choose a worker to author operator-owned cost and quota state.

+
+
+
+ +
+
+
+

Bounded newest-first records

+

Execution history

+
+
+ + + + + + + + + +
+
+
+
+

No history loaded.

+
+ + +
+
+
+
+
@@ -214,5 +421,6 @@

Tasks

+ diff --git a/web/static/app.js b/web/static/app.js index 28a36f8..319337e 100644 --- a/web/static/app.js +++ b/web/static/app.js @@ -1409,3 +1409,12 @@ document.addEventListener('click', (event) => { }); document.addEventListener('DOMContentLoaded', initialize); + +export { + apiFetch, + apiFetchJson, + copyToClipboard, + escapeHtml, + loadAdminToken, + showToast, +}; diff --git a/web/static/styles.css b/web/static/styles.css index 31f2afc..cbea7d6 100644 --- a/web/static/styles.css +++ b/web/static/styles.css @@ -1,3 +1,9 @@ +html, +body { + max-width: 100%; + overflow-x: hidden; +} + .toast-container { position: fixed; top: 1rem; @@ -199,6 +205,474 @@ justify-content: space-between; } +.preview-badge { + align-self: flex-start; + border: 1px solid #d97706; + border-radius: 999px; + color: #92400e; + background: #fffbeb; + padding: 0.35rem 0.75rem; + font-size: 0.7rem; + font-weight: 800; + letter-spacing: 0.06em; + text-transform: uppercase; +} + +.broker-shell { + --broker-bg: #07111f; + --broker-panel: #0d1a2b; + --broker-border: #26364d; + --broker-muted: #9fb0c6; + --broker-text: #eff6ff; + --broker-accent: #22d3ee; + --broker-success: #34d399; + --broker-warning: #fbbf24; + color: var(--broker-text); + background: var(--broker-bg); + border: 1px solid #17263a; + border-radius: 1rem; + padding: 1rem; + overflow: hidden; + box-shadow: 0 24px 60px -42px rgba(15, 23, 42, 0.9); +} + +.broker-shell * { + box-sizing: border-box; +} + +.broker-heading-row, +.broker-panel-heading, +.broker-pagination, +.broker-action-row, +.broker-toolbar { + display: flex; + align-items: center; + gap: 0.75rem; +} + +.broker-heading-row, +.broker-panel-heading, +.broker-pagination { + justify-content: space-between; +} + +.broker-heading-row h2 { + margin: 0; + font-size: clamp(1.5rem, 3vw, 2rem); + font-weight: 750; +} + +.broker-heading-row p, +.broker-panel p, +.broker-pagination p { + color: var(--broker-muted); +} + +.broker-eyebrow { + margin: 0 0 0.25rem; + color: var(--broker-accent) !important; + font-size: 0.68rem; + font-weight: 800; + letter-spacing: 0.12em; + text-transform: uppercase; +} + +.broker-toolbar label, +.broker-form label { + color: #dbeafe; + font-size: 0.75rem; + font-weight: 700; +} + +.broker-toolbar select, +.broker-form input, +.broker-form select, +.broker-history-filters input, +.broker-history-filters select { + min-width: 0; + border: 1px solid #34465f; + border-radius: 0.45rem; + color: var(--broker-text); + background: #07111f; + padding: 0.55rem 0.65rem; +} + +.broker-toolbar select:focus-visible, +.broker-form input:focus-visible, +.broker-form select:focus-visible, +.broker-history-filters input:focus-visible, +.broker-history-filters select:focus-visible, +.broker-button:focus-visible { + outline: 2px solid var(--broker-accent); + outline-offset: 2px; +} + +.broker-inline-status { + min-height: 1.25rem; + margin: 0.8rem 0; + color: var(--broker-muted); + font-size: 0.8rem; +} + +.broker-inline-status[data-tone="error"], +.broker-help[data-tone="error"] { + color: #fca5a5; +} + +.broker-inline-status[data-tone="success"], +.broker-help[data-tone="success"] { + color: #6ee7b7; +} + +.broker-metrics { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 0.65rem; + margin-bottom: 0.85rem; +} + +.broker-metric { + min-width: 0; + border: 1px solid var(--broker-border); + border-radius: 0.65rem; + background: var(--broker-panel); + padding: 0.8rem; +} + +.broker-metric dt { + min-height: 2rem; + color: var(--broker-muted); + font-size: 0.7rem; + font-weight: 700; + line-height: 1rem; +} + +.broker-metric dd { + margin: 0.25rem 0 0; + color: #fff; + font-size: 1.5rem; + font-weight: 750; + font-variant-numeric: tabular-nums; +} + +.broker-workspace-grid { + display: grid; + gap: 0.85rem; + margin-bottom: 0.85rem; +} + +.broker-panel { + min-width: 0; + border: 1px solid var(--broker-border); + border-radius: 0.75rem; + background: var(--broker-panel); + padding: 0.9rem; +} + +.broker-panel h3 { + margin: 0; + color: #fff; + font-size: 1rem; + font-weight: 750; +} + +.broker-form { + display: grid; + gap: 0.6rem; + margin-top: 0.8rem; +} + +.broker-form label { + display: block; + margin-bottom: 0.25rem; +} + +.broker-form label span { + color: var(--broker-muted); + font-weight: 500; +} + +.broker-form > input, +.broker-form > select, +.broker-form-pair input, +.broker-form-pair select { + width: 100%; +} + +.broker-form-pair { + display: grid; + gap: 0.6rem; + grid-template-columns: repeat(2, minmax(0, 1fr)); +} + +.broker-help { + margin: 0; + color: var(--broker-muted); + font-size: 0.72rem; + line-height: 1.1rem; +} + +.broker-checkbox { + display: inline-flex !important; + align-items: center; + gap: 0.5rem; +} + +.broker-button { + border: 1px solid transparent; + border-radius: 0.45rem; + padding: 0.55rem 0.75rem; + font-size: 0.75rem; + font-weight: 750; + cursor: pointer; +} + +.broker-action-row { + flex-wrap: wrap; +} + +.broker-button:disabled { + cursor: not-allowed; + opacity: 0.45; +} + +.broker-button--primary { + color: #06202a; + background: var(--broker-accent); +} + +.broker-button--secondary { + border-color: #3b516e; + color: #dbeafe; + background: #16253a; +} + +.broker-button--quiet { + border-color: #34465f; + color: #cbd5e1; + background: transparent; +} + +.broker-button--danger { + border-color: #7f1d1d; + color: #fecaca; + background: #3f1218; +} + +.broker-empty { + margin-top: 0.8rem; + border: 1px dashed #34465f; + border-radius: 0.6rem; + color: var(--broker-muted); + padding: 1rem; + font-size: 0.8rem; +} + +.broker-detail-list { + display: grid; + grid-template-columns: minmax(7rem, 0.7fr) minmax(0, 1.3fr); + gap: 0.45rem 0.75rem; + margin: 0.8rem 0; + font-size: 0.78rem; +} + +.broker-detail-list dt { + color: var(--broker-muted); +} + +.broker-detail-list dd { + min-width: 0; + margin: 0; + overflow-wrap: anywhere; +} + +.broker-code { + font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; + font-size: 0.72rem; +} + +.broker-badge { + display: inline-flex; + align-items: center; + border: 1px solid #40526c; + border-radius: 999px; + color: #dbeafe; + background: #17263a; + padding: 0.2rem 0.5rem; + font-size: 0.65rem; + font-weight: 750; + white-space: nowrap; +} + +.broker-badge[data-tone="success"] { + border-color: #166534; + color: #86efac; + background: #0c2f25; +} + +.broker-badge[data-tone="warning"] { + border-color: #92400e; + color: #fde68a; + background: #352309; +} + +.broker-badge[data-tone="fresh"] { + border-color: #0369a1; + color: #7dd3fc; + background: #082f49; +} + +.broker-worker-list { + display: grid; + gap: 0.55rem; + margin-top: 0.8rem; +} + +.broker-worker-card { + border: 1px solid #34465f; + border-radius: 0.55rem; + padding: 0.7rem; +} + +.broker-worker-card header { + display: flex; + align-items: flex-start; + justify-content: space-between; + gap: 0.5rem; +} + +.broker-worker-card dl { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 0.35rem; + margin: 0.6rem 0; + color: var(--broker-muted); + font-size: 0.72rem; +} + +.broker-worker-card dd { + margin: 0; + color: var(--broker-text); + font-variant-numeric: tabular-nums; +} + +.broker-history-panel { + overflow: hidden; +} + +.broker-panel-heading--history { + align-items: flex-end; +} + +.broker-history-filters { + display: flex; + flex-wrap: wrap; + justify-content: flex-end; + gap: 0.45rem; +} + +.broker-history-filters input, +.broker-history-filters select { + max-width: 12rem; + font-size: 0.72rem; +} + +.broker-table-wrap { + width: 100%; + min-width: 0; + max-width: 100%; + margin-top: 0.8rem; + overflow-x: auto; + contain: inline-size layout paint; +} + +.broker-table { + width: 100%; + min-width: 62rem; + border-collapse: collapse; + font-size: 0.72rem; +} + +.broker-table th, +.broker-table td { + border-bottom: 1px solid #26364d; + padding: 0.55rem; + text-align: left; + vertical-align: top; +} + +.broker-table th { + color: var(--broker-muted); + font-size: 0.65rem; + letter-spacing: 0.04em; + text-transform: uppercase; +} + +.broker-table tbody tr:hover { + background: #111f32; +} + +.broker-table .copy-button { + color: #bae6fd; + background: #143147; +} + +.broker-pagination { + margin-top: 0.7rem; + font-size: 0.72rem; +} + +@media (min-width: 768px) { + .broker-metrics { + grid-template-columns: repeat(4, minmax(0, 1fr)); + } + + .broker-workspace-grid { + grid-template-columns: minmax(18rem, 0.85fr) minmax(22rem, 1.15fr); + } + + .broker-workspace-grid--profiles { + grid-template-columns: minmax(22rem, 1.2fr) minmax(18rem, 0.8fr); + } +} + +@media (min-width: 1200px) { + .broker-metrics { + grid-template-columns: repeat(8, minmax(0, 1fr)); + } +} + +@media (max-width: 767px) { + .broker-heading-row, + .broker-panel-heading--history, + .broker-pagination { + align-items: stretch; + flex-direction: column; + } + + .broker-toolbar, + .broker-history-filters { + align-items: stretch; + flex-direction: column; + } + + .broker-history-filters input, + .broker-history-filters select { + max-width: none; + width: 100%; + } + + .broker-form-pair { + grid-template-columns: 1fr; + } + + .toast-container { + right: 0.75rem; + left: 0.75rem; + max-width: none; + } +} + @media (prefers-reduced-motion: reduce) { .toast { transition: none; @@ -208,3 +682,4 @@ transition: none; } } +.toast-container { diff --git a/web/static/validation_broker.js b/web/static/validation_broker.js new file mode 100644 index 0000000..eec9d7a --- /dev/null +++ b/web/static/validation_broker.js @@ -0,0 +1,690 @@ +import { + apiFetchJson, + escapeHtml, + loadAdminToken, + showToast, +} from './app.js'; + +const POLL_INTERVAL_MS = 4000; +const HISTORY_LIMIT = 25; +const ACTIVE_WORK_ORDER_STATUSES = new Set([ + 'pending_approval', + 'approved', + 'queued', + 'assigned', + 'running', +]); +const TERMINAL_WORK_ORDER_STATUSES = new Set([ + 'succeeded', + 'failed', + 'timed_out', + 'cancelled', + 'rejected', + 'expired', +]); + +const brokerState = { + overview: null, + manifests: [], + workers: [], + history: [], + historyTotal: 0, + historyOffset: 0, + selectedRequest: null, + selectedProjection: null, + pollTimer: null, +}; + +function authorizedHeaders({ json = true } = {}) { + const headers = {}; + if (json) headers['Content-Type'] = 'application/json'; + const token = loadAdminToken(); + if (token) headers.Authorization = `Bearer ${token}`; + return headers; +} + +function setBrokerStatus(message, tone = '') { + const element = document.getElementById('brokerStatus'); + if (!element) return; + element.textContent = message; + if (tone) element.dataset.tone = tone; + else delete element.dataset.tone; +} + +function setProfileStatus(message, tone = '') { + const element = document.getElementById('profileStatus'); + if (!element) return; + element.textContent = message; + if (tone) element.dataset.tone = tone; + else delete element.dataset.tone; +} + +function formatInteger(value) { + return Number.isFinite(Number(value)) ? Number(value).toLocaleString() : '—'; +} + +function formatSeconds(value) { + if (!Number.isFinite(Number(value))) return '—'; + const seconds = Number(value); + if (seconds < 60) return `${seconds.toFixed(seconds % 1 ? 1 : 0)} s`; + return `${(seconds / 60).toFixed(1)} min`; +} + +function formatPercent(value) { + return Number.isFinite(Number(value)) ? `${(Number(value) * 100).toFixed(1)}%` : '—'; +} + +function formatDate(value) { + if (!value) return '—'; + const date = new Date(value); + return Number.isNaN(date.valueOf()) ? '—' : date.toLocaleString(); +} + +function formatLabel(value) { + return value ? String(value).replaceAll('_', ' ') : '—'; +} + +function shortSha(value) { + return value ? String(value).slice(0, 8) : '—'; +} + +function badge(value, tone = '') { + const attribute = tone ? ` data-tone="${tone}"` : ''; + return `${escapeHtml(formatLabel(value))}`; +} + +function stateTone(value) { + if (['succeeded', 'reused', 'published_current', 'active', 'online'].includes(value)) { + return 'success'; + } + if (['fresh'].includes(value)) return 'fresh'; + if ( + ['failed', 'timed_out', 'cancelled', 'expired', 'published_stale', 'stale'].includes(value) + ) { + return 'warning'; + } + return ''; +} + +function renderMetrics() { + const container = document.getElementById('brokerMetrics'); + if (!container) return; + const overview = brokerState.overview; + if (!overview) { + container.innerHTML = '

Metrics are unavailable.

'; + return; + } + const cards = [ + ['Deterministic executions avoided', overview.avoided_work.deterministic_executions_avoided], + ['Reference time avoided', formatSeconds(overview.avoided_work.reference_seconds_avoided)], + ['Comparison units avoided', overview.avoided_work.comparison_units_avoided], + ['Fresh successful runs', overview.runs.fresh_successful], + ['Reused successful runs', overview.runs.reused_successful], + ['Reuse rate', formatPercent(overview.avoided_work.reuse_rate)], + ['Current publications', overview.publications.current], + ['Stale publications', overview.publications.stale], + ]; + container.innerHTML = cards + .map( + ([label, value]) => ` +
+
${escapeHtml(label)}
+
${typeof value === 'number' ? formatInteger(value) : escapeHtml(value)}
+
+ ` + ) + .join(''); +} + +function renderManifestChoices() { + const select = document.getElementById('validationManifest'); + if (!select) return; + const previous = select.value; + select.innerHTML = brokerState.manifests.length + ? brokerState.manifests + .map( + (manifest) => + `` + ) + .join('') + : ''; + if (previous && Array.from(select.options).some((option) => option.value === previous)) { + select.value = previous; + } +} + +function renderWorkerChoices() { + const preferred = document.getElementById('validationPreferredExecutor'); + const profileWorker = document.getElementById('profileWorker'); + if (!preferred || !profileWorker) return; + const preferredValue = preferred.value; + const profileValue = profileWorker.value; + const options = brokerState.workers + .map( + (worker) => + `` + ) + .join(''); + preferred.innerHTML = `${options}`; + profileWorker.innerHTML = brokerState.workers.length + ? `${options}` + : ''; + if (preferredValue) preferred.value = preferredValue; + if (profileValue) profileWorker.value = profileValue; +} + +function renderWorkers() { + const container = document.getElementById('brokerWorkers'); + if (!container) return; + if (!brokerState.workers.length) { + container.innerHTML = '

No execution workers are registered.

'; + return; + } + container.innerHTML = brokerState.workers + .map((worker) => { + const profile = worker.profile; + const profileDetails = profile + ? ` +
+
Comparison units
${formatInteger(profile.estimated_cost_units_per_run)}
+
Revision
${formatInteger(profile.revision)}
+
Quota
${formatInteger(profile.quota_remaining_units)} / ${formatInteger(profile.quota_capacity_units)}
+
Priority
${formatInteger(profile.routing_priority)}
+
+ ` + : '

No operator routing profile.

'; + return ` +
+
+
+ ${escapeHtml(worker.display_name)} +

${escapeHtml(worker.worker_id)}

+
+
${badge(worker.activity_state, stateTone(worker.activity_state))}
+
+ ${profileDetails} + +
+ `; + }) + .join(''); +} + +function populateProfileForm(workerId) { + const worker = brokerState.workers.find((item) => item.worker_id === workerId); + const form = document.getElementById('routingProfileForm'); + if (!form || !worker) return; + const profile = worker.profile; + form.elements.worker_id.value = worker.worker_id; + form.elements.estimated_cost_units_per_run.value = + profile?.estimated_cost_units_per_run ?? ''; + form.elements.quota_capacity_units.value = profile?.quota_capacity_units ?? ''; + form.elements.quota_remaining_units.value = profile?.quota_remaining_units ?? ''; + form.elements.routing_priority.value = profile?.routing_priority ?? 0; + form.elements.enabled.checked = profile?.enabled ?? true; + form.elements.expected_revision.value = profile?.revision ?? ''; + document.getElementById('resetProfileQuota').disabled = !profile; + setProfileStatus( + profile + ? `Editing revision ${profile.revision}. A newer server revision will return a conflict.` + : 'Creating the first operator-owned profile for this worker.' + ); +} + +function currentProjectionForRequest(requestId) { + return brokerState.history.find((item) => item.request_id === requestId) || null; +} + +function renderRequestDetail() { + const container = document.getElementById('brokerRequestDetail'); + const refresh = document.getElementById('refreshRequest'); + if (!container || !refresh) return; + const request = brokerState.selectedRequest; + if (!request) { + refresh.disabled = true; + container.className = 'broker-empty'; + container.textContent = 'Select a request from history or submit a new validation.'; + stopRequestPolling(); + return; + } + refresh.disabled = false; + container.className = ''; + const projection = brokerState.selectedProjection || {}; + const status = request.work_order_status; + const canApprove = status === 'pending_approval'; + const canQueue = status === 'approved'; + const canCancel = !TERMINAL_WORK_ORDER_STATUSES.has(status); + const canExpire = ['approved', 'queued'].includes(status); + const canPublish = Boolean(request.evidence_fingerprint); + const selectedWorker = projection.selected_worker_id || 'Not selected'; + const reuseDecision = projection.reuse_decision || 'pending'; + container.innerHTML = ` +
+
Request
#${request.request_id}
+
Exact head
${escapeHtml(request.tested_head_sha)}
+
Base SHA
${escapeHtml(request.base_sha)}
+
Manifest
${escapeHtml(`${request.manifest_name}@${request.manifest_version}`)} ${escapeHtml(request.manifest_digest)}
+
Work order
#${request.work_order_id} ${badge(status, stateTone(status))}
+
Route
${badge(request.routing_policy)} · ${escapeHtml(selectedWorker)}
+
Comparison units
${formatInteger(projection.estimated_cost_units)}
+
Quota requested
${formatInteger(request.required_quota_units)}
+
Reuse
${badge(reuseDecision, stateTone(reuseDecision))}
+
Run
${request.terminal_run_id ? `#${request.terminal_run_id} ${badge(request.terminal_run_status, stateTone(request.terminal_run_status))}` : 'Not started'}
+
Evidence
${escapeHtml(request.evidence_fingerprint || 'Not available')}
+
Publication
${badge(request.publication_state, stateTone(request.publication_state))}
+
Updated
${escapeHtml(formatDate(request.updated_at))}
+
+
+ + + + + + +
+

Actions are enabled only when the persisted lifecycle permits them. Publication always rechecks the GitHub head.

+ `; + syncRequestPolling(); +} + +function renderHistory() { + const container = document.getElementById('brokerHistory'); + const summary = document.getElementById('brokerHistorySummary'); + const previous = document.getElementById('historyPrevious'); + const next = document.getElementById('historyNext'); + if (!container || !summary || !previous || !next) return; + if (!brokerState.history.length) { + container.innerHTML = '

No validation requests match these filters.

'; + } else { + const rows = brokerState.history + .map( + (item) => ` + + + ${escapeHtml(item.repository_full_name)} #${item.pull_request_number} + ${escapeHtml(shortSha(item.tested_head_sha))} + ${badge(item.work_order_status, stateTone(item.work_order_status))} + ${item.reuse_decision ? badge(item.reuse_decision, stateTone(item.reuse_decision)) : '—'} + ${escapeHtml(item.selected_worker_id || '—')} + ${formatInteger(item.estimated_cost_units)} + ${badge(item.publication_state, stateTone(item.publication_state))} + ${escapeHtml(formatDate(item.created_at))} + + ` + ) + .join(''); + container.innerHTML = ` + + + ${rows} +
RequestSourceExact SHALifecycleDecisionWorkerUnitsPublicationCreated
+ `; + } + const first = brokerState.historyTotal ? brokerState.historyOffset + 1 : 0; + const last = Math.min( + brokerState.historyOffset + brokerState.history.length, + brokerState.historyTotal + ); + summary.textContent = `Showing ${first}–${last} of ${brokerState.historyTotal} requests`; + previous.disabled = brokerState.historyOffset === 0; + next.disabled = brokerState.historyOffset + HISTORY_LIMIT >= brokerState.historyTotal; +} + +async function refreshOverview() { + const days = document.getElementById('brokerWindow')?.value || '30'; + brokerState.overview = await apiFetchJson( + `/api/execution/operator/overview?window_days=${encodeURIComponent(days)}`, + { headers: authorizedHeaders({ json: false }) } + ); + renderMetrics(); +} + +async function refreshManifests() { + brokerState.manifests = await apiFetchJson('/api/execution/manifests', { + headers: authorizedHeaders({ json: false }), + }); + renderManifestChoices(); +} + +async function refreshWorkers() { + const page = await apiFetchJson('/api/execution/workers?limit=100&offset=0', { + headers: authorizedHeaders({ json: false }), + }); + brokerState.workers = Array.isArray(page.items) ? page.items : []; + renderWorkerChoices(); + renderWorkers(); + const selectedWorker = document.getElementById('profileWorker')?.value; + if (selectedWorker) populateProfileForm(selectedWorker); +} + +function historyQuery() { + const form = document.getElementById('brokerHistoryFilters'); + const params = new URLSearchParams({ + limit: String(HISTORY_LIMIT), + offset: String(brokerState.historyOffset), + }); + if (form) { + for (const [key, rawValue] of new FormData(form).entries()) { + const value = String(rawValue).trim(); + if (value) params.set(key, value); + } + } + return params; +} + +async function refreshHistory() { + const page = await apiFetchJson(`/api/execution/operator/history?${historyQuery()}`, { + headers: authorizedHeaders({ json: false }), + }); + brokerState.history = Array.isArray(page.items) ? page.items : []; + brokerState.historyTotal = Number(page.total) || 0; + if (brokerState.selectedRequest) { + brokerState.selectedProjection = currentProjectionForRequest( + brokerState.selectedRequest.request_id + ); + renderRequestDetail(); + } + renderHistory(); +} + +async function refreshSelectedRequest({ silent = false } = {}) { + if (!brokerState.selectedRequest) return; + const requestId = brokerState.selectedRequest.request_id; + try { + brokerState.selectedRequest = await apiFetchJson( + `/api/execution/github/requests/${requestId}`, + { headers: authorizedHeaders({ json: false }) } + ); + brokerState.selectedProjection = currentProjectionForRequest(requestId); + renderRequestDetail(); + } catch (error) { + console.error('Failed to refresh selected validation request', error); + if (!silent) setBrokerStatus('Unable to refresh the selected request.', 'error'); + } +} + +async function selectRequest(requestId) { + brokerState.selectedProjection = currentProjectionForRequest(requestId); + brokerState.selectedRequest = await apiFetchJson( + `/api/execution/github/requests/${requestId}`, + { headers: authorizedHeaders({ json: false }) } + ); + renderRequestDetail(); + document.getElementById('brokerRequestDetail')?.scrollIntoView({ + behavior: 'smooth', + block: 'nearest', + }); +} + +function stopRequestPolling() { + if (brokerState.pollTimer) { + clearInterval(brokerState.pollTimer); + brokerState.pollTimer = null; + } +} + +function syncRequestPolling() { + stopRequestPolling(); + const status = brokerState.selectedRequest?.work_order_status; + if (!ACTIVE_WORK_ORDER_STATUSES.has(status)) return; + brokerState.pollTimer = setInterval(async () => { + await refreshSelectedRequest({ silent: true }); + await refreshHistory(); + await refreshOverview(); + }, POLL_INTERVAL_MS); +} + +async function refreshBrokerWorkspace({ announce = false } = {}) { + setBrokerStatus('Refreshing bounded operator projections…'); + const results = await Promise.allSettled([ + refreshOverview(), + refreshManifests(), + refreshWorkers(), + refreshHistory(), + ]); + const failures = results.filter((result) => result.status === 'rejected').length; + if (failures) { + setBrokerStatus( + `${failures} broker surface${failures === 1 ? '' : 's'} could not be loaded. Enter the admin token above if access is protected.`, + 'error' + ); + } else { + const windowDays = brokerState.overview?.window?.days || 30; + setBrokerStatus( + `Operator projections refreshed. Metrics cover the last ${windowDays} days.`, + 'success' + ); + if (announce) showToast('Validation broker refreshed.', 'success'); + } +} + +async function handleValidationRequest(event) { + event.preventDefault(); + const data = new FormData(event.currentTarget); + const [manifestName, manifestVersion] = String(data.get('manifest') || '').split('@'); + const maximumCost = String(data.get('maximum_cost_units') || '').trim(); + const preferredExecutor = String(data.get('preferred_executor') || '').trim(); + const payload = { + repository_full_name: String(data.get('repository_full_name') || '').trim(), + pull_request_number: Number(data.get('pull_request_number')), + manifest: { name: manifestName, version: manifestVersion }, + reuse_policy: data.get('reuse_policy'), + routing_policy: data.get('routing_policy'), + maximum_cost_units: maximumCost ? Number(maximumCost) : null, + required_quota_units: Number(data.get('required_quota_units') || 0), + preferred_executor: preferredExecutor || null, + }; + try { + brokerState.selectedRequest = await apiFetchJson( + '/api/execution/github/pull-requests/validate', + { + method: 'POST', + headers: authorizedHeaders(), + body: JSON.stringify(payload), + } + ); + setBrokerStatus( + `Validation request #${brokerState.selectedRequest.request_id} resolved exact head ${shortSha(brokerState.selectedRequest.tested_head_sha)}.`, + 'success' + ); + showToast('GitHub validation request resolved.', 'success'); + await Promise.all([refreshHistory(), refreshOverview()]); + brokerState.selectedProjection = currentProjectionForRequest( + brokerState.selectedRequest.request_id + ); + renderRequestDetail(); + } catch (error) { + console.error('Failed to request GitHub validation', error); + setBrokerStatus( + error?.details + ? `Validation request failed: ${error.details}` + : 'Validation request failed. Check GitHub adapter configuration and retry.', + 'error' + ); + } +} + +async function handleProfileSubmit(event) { + event.preventDefault(); + const form = event.currentTarget; + const data = new FormData(form); + const workerId = String(data.get('worker_id') || ''); + const worker = brokerState.workers.find((item) => item.worker_id === workerId); + if (!worker) return; + const base = { + enabled: form.elements.enabled.checked, + estimated_cost_units_per_run: Number(data.get('estimated_cost_units_per_run')), + quota_capacity_units: Number(data.get('quota_capacity_units')), + quota_remaining_units: Number(data.get('quota_remaining_units')), + quota_reset_at: worker.profile?.quota_reset_at || null, + routing_priority: Number(data.get('routing_priority')), + }; + const existing = worker.profile; + const url = existing + ? `/api/execution/routing-profiles/${encodeURIComponent(workerId)}` + : '/api/execution/routing-profiles'; + const payload = existing + ? { ...base, expected_revision: existing.revision } + : { ...base, schema_version: 1, worker_id: workerId }; + try { + const profile = await apiFetchJson(url, { + method: existing ? 'PUT' : 'POST', + headers: authorizedHeaders(), + body: JSON.stringify(payload), + }); + setProfileStatus(`Saved profile revision ${profile.revision}.`, 'success'); + showToast(`Routing profile for ${workerId} saved.`, 'success'); + await refreshWorkers(); + populateProfileForm(workerId); + } catch (error) { + if (error?.response?.status === 409) { + await refreshWorkers(); + populateProfileForm(workerId); + setProfileStatus('Profile revision conflicted. Latest server state was reloaded.', 'error'); + } else { + console.error('Failed to save routing profile', error); + setProfileStatus('Profile could not be saved.', 'error'); + } + } +} + +async function resetProfileQuota() { + const form = document.getElementById('routingProfileForm'); + const workerId = form?.elements.worker_id.value; + const worker = brokerState.workers.find((item) => item.worker_id === workerId); + if (!form || !worker?.profile) return; + const remaining = Number(form.elements.quota_remaining_units.value); + if (!window.confirm(`Reset ${workerId} quota to ${remaining} units?`)) return; + try { + const profile = await apiFetchJson( + `/api/execution/routing-profiles/${encodeURIComponent(workerId)}/quota-reset`, + { + method: 'POST', + headers: authorizedHeaders(), + body: JSON.stringify({ + expected_revision: worker.profile.revision, + quota_remaining_units: remaining, + quota_reset_at: new Date().toISOString(), + }), + } + ); + setProfileStatus(`Quota reset recorded at revision ${profile.revision}.`, 'success'); + await refreshWorkers(); + populateProfileForm(workerId); + } catch (error) { + if (error?.response?.status === 409) { + await refreshWorkers(); + populateProfileForm(workerId); + setProfileStatus('Quota reset conflicted. Latest profile was reloaded.', 'error'); + } else { + console.error('Failed to reset routing quota', error); + } + } +} + +async function mutateSelectedRequest(action) { + const request = brokerState.selectedRequest; + if (!request) return; + let url; + let body; + let confirmMessage; + if (action === 'approve' || action === 'approve-queue') { + url = `/api/execution/work-orders/${request.work_order_id}/approve`; + body = { queue: action === 'approve-queue' }; + } else if (action === 'queue') { + url = `/api/execution/work-orders/${request.work_order_id}/queue`; + } else if (action === 'cancel' || action === 'expire') { + confirmMessage = `${formatLabel(action)} work order #${request.work_order_id}?`; + url = `/api/execution/work-orders/${request.work_order_id}/${action}`; + body = { reason: `operator_${action}` }; + } else if (action === 'publish') { + confirmMessage = `Publish compact evidence for request #${request.request_id}? The GitHub head will be rechecked.`; + url = `/api/execution/github/requests/${request.request_id}/publish`; + } + if (!url || (confirmMessage && !window.confirm(confirmMessage))) return; + try { + await apiFetchJson(url, { + method: 'POST', + headers: authorizedHeaders({ json: body !== undefined }), + ...(body !== undefined ? { body: JSON.stringify(body) } : {}), + }); + showToast(`${formatLabel(action)} completed.`, 'success'); + await Promise.all([ + refreshSelectedRequest({ silent: true }), + refreshHistory(), + refreshOverview(), + refreshWorkers(), + ]); + } catch (error) { + console.error(`Failed request action ${action}`, error); + if (error?.response?.status === 409) { + setBrokerStatus('Lifecycle action conflicted. Latest request state was reloaded.', 'error'); + await refreshSelectedRequest({ silent: true }); + } + } +} + +function initBrokerEvents() { + document.getElementById('refreshBroker')?.addEventListener('click', () => { + refreshBrokerWorkspace({ announce: true }); + }); + document.getElementById('brokerWindow')?.addEventListener('change', refreshOverview); + document.getElementById('validationRequestForm')?.addEventListener( + 'submit', + handleValidationRequest + ); + document.getElementById('routingProfileForm')?.addEventListener( + 'submit', + handleProfileSubmit + ); + document.getElementById('profileWorker')?.addEventListener('change', (event) => { + if (event.currentTarget.value) populateProfileForm(event.currentTarget.value); + }); + document.getElementById('resetProfileQuota')?.addEventListener('click', resetProfileQuota); + document.getElementById('refreshRequest')?.addEventListener('click', () => { + refreshSelectedRequest(); + }); + document.getElementById('brokerHistoryFilters')?.addEventListener('submit', (event) => { + event.preventDefault(); + brokerState.historyOffset = 0; + refreshHistory(); + }); + document.getElementById('historyPrevious')?.addEventListener('click', () => { + brokerState.historyOffset = Math.max(0, brokerState.historyOffset - HISTORY_LIMIT); + refreshHistory(); + }); + document.getElementById('historyNext')?.addEventListener('click', () => { + brokerState.historyOffset += HISTORY_LIMIT; + refreshHistory(); + }); + document.getElementById('validation-broker')?.addEventListener('click', (event) => { + const selectButton = event.target.closest('[data-select-request]'); + if (selectButton) { + selectRequest(Number(selectButton.dataset.selectRequest)); + return; + } + const editButton = event.target.closest('[data-profile-edit]'); + if (editButton) { + populateProfileForm(editButton.dataset.profileEdit); + document.getElementById('profileWorker')?.focus(); + return; + } + const actionButton = event.target.closest('[data-request-action]'); + if (actionButton && !actionButton.disabled) { + mutateSelectedRequest(actionButton.dataset.requestAction); + } + }); + window.addEventListener('beforeunload', stopRequestPolling, { once: true }); +} + +function initializeBroker() { + if (!document.getElementById('validation-broker')) return; + initBrokerEvents(); + renderMetrics(); + renderWorkers(); + renderHistory(); + renderRequestDetail(); + refreshBrokerWorkspace(); +} + +document.addEventListener('DOMContentLoaded', initializeBroker); From d87d329eed0c239b2c391a6fbcde1722f6389f0f Mon Sep 17 00:00:00 2001 From: Nobodyworld <127373451+Nobodyworld@users.noreply.github.com> Date: Sat, 8 Aug 2026 16:27:55 -0500 Subject: [PATCH 04/13] test(operator): prove routed fresh and exact reuse flow --- server/tests/test_github_adapter_service.py | 426 +++++++++++++++++++- web/tests/test_ui.py | 327 ++++++++++++++- web/tests/ui_test_app.py | 313 ++++++++++++++ 3 files changed, 1063 insertions(+), 3 deletions(-) create mode 100644 web/tests/ui_test_app.py diff --git a/server/tests/test_github_adapter_service.py b/server/tests/test_github_adapter_service.py index 4dd6a39..3c58608 100644 --- a/server/tests/test_github_adapter_service.py +++ b/server/tests/test_github_adapter_service.py @@ -24,23 +24,37 @@ from server.app import app as server_app from server.application import build_execution_service from server.db import AsyncSessionLocal -from server.execution.entities import ExecutionCompletion, WorkerRegistration +from server.execution.entities import ( + ExecutionCompletion, + RoutingProfileDraft, + WorkerRegistration, +) from server.execution.enums import ( ExecutionRunStatus, NetworkPolicy, + ReuseDecision, + ReusePolicy, + RoutingPolicy, WorkerStatus, WorkOrderStatus, ) from server.execution.evidence import ( AuditSummary, + DependencyLockHash, EnvironmentIdentity, + EvidenceReuseIdentity, + EvidenceReuseProvenance, ExecutionEvidenceDraft, ParsedCoverage, ParsedResult, ParsedTestCounts, StepEvidence, + compute_result_contract_hash, + compute_reuse_identity_hash, finalize_evidence, ) +from server.execution.operator_projection import ExecutionOperatorProjection +from server.execution.registry import get_trusted_manifest from server.github_adapter.errors import ( GitHubAmbiguousWriteError, GitHubRateLimitedError, @@ -58,6 +72,7 @@ PUBLICATION_CLAIM_TTL, GitHubAdapterDependencies, GitHubAdapterService, + _legacy_idempotency_key, ) from server.github_adapter.transport import ( GitHubActorIdentity, @@ -297,6 +312,78 @@ def _step( ) +def _reuse_identity(order: ExecutionWorkOrder) -> EvidenceReuseIdentity: + manifest = get_trusted_manifest(order.manifest_name, order.manifest_version) + assert manifest is not None + return EvidenceReuseIdentity( + repository_full_name=order.repository_full_name, + tested_sha=order.commit_sha, + manifest_name=order.manifest_name, + manifest_version=order.manifest_version, + manifest_digest=order.manifest_digest, + worker_environment_fingerprint="d" * 64, + dependency_lock_hashes=[ + DependencyLockHash(relative_path=path, sha256="e" * 64) + for path in sorted(manifest.dependency_lock_paths) + ], + execution_policy_hash=order.execution_policy_hash, + result_contract_hash=compute_result_contract_hash( + fixed_step_metadata=manifest.fixed_step_metadata, + artifact_declarations=manifest.artifact_declarations, + dependency_lock_paths=manifest.dependency_lock_paths, + ), + ) + + +def _reuse_evidence( # noqa: PLR0913 + *, + order: ExecutionWorkOrder, + run_id: int, + worker_id: str, + identity: EvidenceReuseIdentity, + decision: str, + source_run_id: int | None = None, + source_fingerprint: str | None = None, +): + now = dt.datetime(2026, 8, 8, 12, tzinfo=dt.UTC) + return finalize_evidence( + ExecutionEvidenceDraft( + work_order_id=order.id, + run_id=run_id, + repository_full_name=order.repository_full_name, + tested_sha=order.commit_sha, + manifest_name=order.manifest_name, + manifest_version=order.manifest_version, + manifest_digest=order.manifest_digest, + worker_id=worker_id, + environment=EnvironmentIdentity( + operating_system="windows", + architecture="amd64", + python_version="3.11.14", + fingerprint=identity.worker_environment_fingerprint, + ), + dependency_lock_hashes=identity.dependency_lock_hashes, + started_at=now, + finished_at=now + dt.timedelta(seconds=7), + duration_seconds=7, + terminal_status="succeeded", + steps=[], + artifacts=[], + dependency_lock_status="succeeded", + artifact_finalization_status="succeeded", + source_cleanup_status="succeeded", + local_record_status="succeeded", + reuse_provenance=EvidenceReuseProvenance( + decision=decision, # type: ignore[arg-type] + reason=("exact_evidence_verified" if decision == "reused" else "fresh"), + reuse_identity_hash=compute_reuse_identity_hash(identity), + source_run_id=source_run_id, + source_evidence_fingerprint=source_fingerprint, + ), + ) + ) + + async def _complete_with_compact_evidence( service: GitHubAdapterService, request_id: int, @@ -494,6 +581,338 @@ async def test_duplicate_request_reuses_work_order_and_new_head_is_distinct() -> assert int(work_order_count or 0) == 2 +@pytest.mark.asyncio +async def test_every_adapter_policy_dimension_changes_request_identity() -> None: + transport = FakeGitHubTransport() + variants = ( + {}, + {"reuse_policy": ReusePolicy.ALLOW_EXACT}, + {"routing_policy": RoutingPolicy.CHEAPEST_CAPABLE}, + {"maximum_cost_units": 17}, + {"required_quota_units": 3}, + {"preferred_executor": "worker-preferred"}, + ) + async with AsyncSessionLocal() as session: + service = _service(session, transport) + await service._execution.register_worker(_worker("worker-preferred")) + statuses = [] + for policy in variants: + statuses.append( + await service.request_validation( + repository_full_name=REPOSITORY, + pull_request_number=125, + manifest_name="validate-switchboard", + manifest_version="1", + **policy, + ) + ) + records = ( + ( + await session.execute( + select(GitHubValidationRequest).order_by(GitHubValidationRequest.id) + ) + ) + .scalars() + .all() + ) + + assert len({status.request_id for status in statuses}) == len(variants) + assert len({status.work_order_id for status in statuses}) == len(variants) + assert len({record.idempotency_key for record in records}) == len(variants) + assert statuses[0].reuse_policy == ReusePolicy.NEVER + assert statuses[0].routing_policy == RoutingPolicy.FIRST_AVAILABLE + assert statuses[1].reuse_policy == ReusePolicy.ALLOW_EXACT + assert statuses[2].routing_policy == RoutingPolicy.CHEAPEST_CAPABLE + assert statuses[3].maximum_cost_units == 17 + assert statuses[4].required_quota_units == 3 + assert statuses[5].preferred_executor == "worker-preferred" + + +@pytest.mark.asyncio +async def test_default_policy_finds_exact_legacy_key_without_mutating_it() -> None: + transport = FakeGitHubTransport() + async with AsyncSessionLocal() as session: + service = _service(session, transport) + created = await service.request_validation( + repository_full_name=REPOSITORY, + pull_request_number=125, + manifest_name="validate-switchboard", + manifest_version="1", + ) + record = await session.get(GitHubValidationRequest, created.request_id) + manifest = get_trusted_manifest("validate-switchboard", "1") + assert record is not None + assert manifest is not None + legacy_key = _legacy_idempotency_key( + settings=_settings(), + actor=CREDENTIAL_ACTOR, + resolved=transport.resolved, + manifest=manifest, + ) + record.idempotency_key = legacy_key + await session.flush() + + recovered = await service.request_validation( + repository_full_name=REPOSITORY, + pull_request_number=125, + manifest_name="validate-switchboard", + manifest_version="1", + ) + unchanged = await session.get(GitHubValidationRequest, created.request_id) + non_default = await service.request_validation( + repository_full_name=REPOSITORY, + pull_request_number=125, + manifest_name="validate-switchboard", + manifest_version="1", + reuse_policy=ReusePolicy.ALLOW_EXACT, + ) + + assert recovered.request_id == created.request_id + assert unchanged is not None + assert unchanged.idempotency_key == legacy_key + assert non_default.request_id != created.request_id + + +@pytest.mark.asyncio +async def test_routed_github_validation_is_fresh_then_reused_and_projected() -> ( # noqa: PLR0915 + None +): + transport = FakeGitHubTransport() + cheap_worker = "worker-cheap" + expensive_worker = "worker-expensive" + async with AsyncSessionLocal() as session: + adapter = _service(session, transport) + execution = adapter._execution + await execution.register_worker(_worker(cheap_worker)) + await execution.register_worker(_worker(expensive_worker)) + await execution.create_routing_profile( + RoutingProfileDraft( + schema_version=1, + worker_id=cheap_worker, + enabled=True, + estimated_cost_units_per_run=3, + quota_capacity_units=20, + quota_remaining_units=20, + quota_reset_at=None, + routing_priority=0, + ) + ) + await execution.create_routing_profile( + RoutingProfileDraft( + schema_version=1, + worker_id=expensive_worker, + enabled=True, + estimated_cost_units_per_run=9, + quota_capacity_units=20, + quota_remaining_units=20, + quota_reset_at=None, + routing_priority=0, + ) + ) + + fresh_request = await adapter.request_validation( + repository_full_name=REPOSITORY, + pull_request_number=125, + manifest_name="validate-switchboard", + manifest_version="1", + reuse_policy=ReusePolicy.NEVER, + routing_policy=RoutingPolicy.CHEAPEST_CAPABLE, + required_quota_units=1, + ) + assert not (await execution.checkout(expensive_worker)).assigned + assert not (await execution.checkout(cheap_worker)).assigned + await execution.approve_work_order(fresh_request.work_order_id) + assert not (await execution.checkout(expensive_worker)).assigned + fresh_assignment = await execution.checkout(cheap_worker) + assert fresh_assignment.run_id is not None + await execution.heartbeat_run(fresh_assignment.run_id, worker_id=cheap_worker) + fresh_order = await execution.get_work_order(fresh_request.work_order_id) + fresh_identity = _reuse_identity(fresh_order) + fresh_evidence = _reuse_evidence( + order=fresh_order, + run_id=fresh_assignment.run_id, + worker_id=cheap_worker, + identity=fresh_identity, + decision="fresh", + ) + fresh_run = await execution.complete_run( + fresh_assignment.run_id, + worker_id=cheap_worker, + completion=ExecutionCompletion( + status=ExecutionRunStatus.SUCCEEDED, + evidence_metadata=fresh_evidence, + reuse_decision=ReuseDecision.FRESH, + reuse_reason="fresh_execution_completed", + reuse_identity=fresh_identity, + reuse_identity_hash=compute_reuse_identity_hash(fresh_identity), + evidence_retention_expires_at=( + fresh_evidence.started_at + dt.timedelta(days=14) + ), + ), + ) + fresh_run.started_at = dt.datetime(2026, 8, 8, 12, 0, 0, tzinfo=dt.UTC) + fresh_run.finished_at = dt.datetime(2026, 8, 8, 12, 0, 7, tzinfo=dt.UTC) + await session.flush() + published_current = await adapter.publish(fresh_request.request_id) + assert published_current.publication_state == "published_current" + republished_current = await adapter.publish(fresh_request.request_id) + assert republished_current.managed_comment_id == ( + published_current.managed_comment_id + ) + + reused_request = await adapter.request_validation( + repository_full_name=REPOSITORY, + pull_request_number=125, + manifest_name="validate-switchboard", + manifest_version="1", + reuse_policy=ReusePolicy.ALLOW_EXACT, + routing_policy=RoutingPolicy.CHEAPEST_CAPABLE, + required_quota_units=1, + ) + reused_order = await execution.get_work_order(reused_request.work_order_id) + assert reused_request.request_id != fresh_request.request_id + assert reused_order.execution_policy_hash == fresh_order.execution_policy_hash + assert not (await execution.checkout(expensive_worker)).assigned + assert not (await execution.checkout(cheap_worker)).assigned + await execution.approve_work_order(reused_request.work_order_id) + assert not (await execution.checkout(expensive_worker)).assigned + reused_assignment = await execution.checkout(cheap_worker) + assert reused_assignment.run_id is not None + reused_identity = _reuse_identity(reused_order) + assert reused_identity == fresh_identity + lookup = await execution.resolve_reuse_candidate( + reused_assignment.run_id, + worker_id=cheap_worker, + reuse_identity=reused_identity, + reuse_identity_hash=compute_reuse_identity_hash(reused_identity), + ) + assert lookup.candidate is not None + assert lookup.candidate.source_run_id == fresh_run.id + reused_evidence = _reuse_evidence( + order=reused_order, + run_id=reused_assignment.run_id, + worker_id=cheap_worker, + identity=reused_identity, + decision="reused", + source_run_id=fresh_run.id, + source_fingerprint=fresh_evidence.fingerprint, + ) + reused_run = await execution.complete_run( + reused_assignment.run_id, + worker_id=cheap_worker, + completion=ExecutionCompletion( + status=ExecutionRunStatus.SUCCEEDED, + evidence_metadata=reused_evidence, + reuse_decision=ReuseDecision.REUSED, + reuse_reason="exact_evidence_verified", + reuse_identity=reused_identity, + reuse_identity_hash=compute_reuse_identity_hash(reused_identity), + evidence_retention_expires_at=( + reused_evidence.started_at + dt.timedelta(days=14) + ), + ), + ) + assert reused_run.worker_id == cheap_worker + assert reused_run.reused_from_run_id == fresh_run.id + assert reused_run.evidence_metadata["steps"] == [] + + transport.resolved = _resolved(head_sha=MOVED_SHA) + published_stale = await adapter.publish(reused_request.request_id) + assert published_stale.publication_state == "published_stale" + + projection = ExecutionOperatorProjection(session) + overview = await projection.overview( + window_days=30, + heartbeat_freshness_seconds=300, + active_poll_freshness_seconds=60, + ) + history = await projection.list_history(limit=25, offset=0) + first_page = await projection.list_history(limit=1, offset=0) + second_page = await projection.list_history(limit=1, offset=1) + reused_history = await projection.list_history( + limit=25, + offset=0, + repository_full_name=REPOSITORY, + pull_request_number=125, + work_order_status=WorkOrderStatus.SUCCEEDED.value, + run_status=ExecutionRunStatus.SUCCEEDED.value, + reuse_decision=ReuseDecision.REUSED.value, + routing_policy=RoutingPolicy.CHEAPEST_CAPABLE.value, + publication_state="published_stale", + created_after=dt.datetime(2026, 8, 7, tzinfo=dt.UTC), + created_before=dt.datetime(2026, 8, 9, tzinfo=dt.UTC), + ) + workers = await projection.list_workers( + limit=25, + offset=0, + heartbeat_freshness_seconds=300, + active_poll_freshness_seconds=60, + ) + fresh_run.started_at = None + reused_run.route_estimated_cost_units = None + await session.flush() + missing_estimates = await projection.overview( + window_days=30, + heartbeat_freshness_seconds=300, + active_poll_freshness_seconds=60, + ) + + assert overview.requests.total == 2 + assert overview.runs.fresh_successful == 1 + assert overview.runs.reused_successful == 1 + assert overview.avoided_work.deterministic_executions_avoided == 1 + assert overview.avoided_work.reference_seconds_avoided == 7 + assert overview.avoided_work.comparison_units_avoided == 3 + assert overview.avoided_work.reuse_rate == 0.5 + assert overview.publications.current == 1 + assert overview.publications.stale == 1 + assert history.total == 2 + assert history.items[0].request_id == reused_request.request_id + assert history.items[0].reuse_decision == "reused" + assert history.items[1].reuse_decision == "fresh" + assert [item.request_id for item in first_page.items] == [reused_request.request_id] + assert [item.request_id for item in second_page.items] == [fresh_request.request_id] + assert reused_history.total == 1 + assert reused_history.items[0].request_id == reused_request.request_id + assert {item.worker_id for item in workers.items} == { + cheap_worker, + expensive_worker, + } + assert "capabilities" not in workers.items[0].model_dump() + assert "repository_full_name" not in workers.items[0].model_dump() + assert missing_estimates.avoided_work.deterministic_executions_avoided == 1 + assert missing_estimates.avoided_work.reference_seconds_avoided == 0 + assert missing_estimates.avoided_work.comparison_units_avoided == 0 + + +@pytest.mark.asyncio +async def test_operator_projection_routes_enforce_hard_query_bounds() -> None: + transport = ASGITransport(app=server_app) + async with AsyncClient(transport=transport, base_url="http://test") as client: + overview = await client.get("/api/execution/operator/overview") + history = await client.get("/api/execution/operator/history") + workers = await client.get("/api/execution/workers") + requests = await client.get("/api/execution/github/requests") + too_wide = await client.get( + "/api/execution/operator/overview", params={"window_days": 366} + ) + too_many = await client.get( + "/api/execution/operator/history", params={"limit": 101} + ) + too_far = await client.get( + "/api/execution/github/requests", params={"offset": 10_001} + ) + + assert overview.status_code == HTTPStatus.OK + assert overview.json()["window"]["days"] == 30 + assert history.status_code == HTTPStatus.OK + assert workers.status_code == HTTPStatus.OK + assert requests.status_code == HTTPStatus.OK + assert too_wide.status_code == HTTPStatus.UNPROCESSABLE_ENTITY + assert too_many.status_code == HTTPStatus.UNPROCESSABLE_ENTITY + assert too_far.status_code == HTTPStatus.UNPROCESSABLE_ENTITY + + @pytest.mark.asyncio async def test_token_rotation_to_another_actor_creates_distinct_request() -> None: transport = FakeGitHubTransport() @@ -1431,7 +1850,10 @@ async def test_api_rejects_caller_owned_injection_before_service_call( reload_admin_token() app = server_app - app.dependency_overrides[get_github_adapter_service] = lambda: object() + def invalid_service() -> object: + return object() + + app.dependency_overrides[get_github_adapter_service] = invalid_service payload = { "repository_full_name": REPOSITORY, "pull_request_number": 125, diff --git a/web/tests/test_ui.py b/web/tests/test_ui.py index b4c2a31..8fdb764 100644 --- a/web/tests/test_ui.py +++ b/web/tests/test_ui.py @@ -24,6 +24,7 @@ HTTP_OK = 200 SERVER_WAIT_INTERVAL = 0.2 +EXPECTED_PUBLICATION_DIALOGS = 2 ROOT = Path(__file__).resolve().parents[2] if str(ROOT) not in sys.path: @@ -90,7 +91,7 @@ def app_server(tmp_path_factory: pytest.TempPathFactory) -> Generator[str, None, sys.executable, "-m", "uvicorn", - "server.app:app", + "web.tests.ui_test_app:app", "--host", "127.0.0.1", "--port", @@ -361,3 +362,327 @@ def test_two_agent_dependency_flow_updates_dashboard( expect(page.locator("#planVersion")).not_to_have_text(initial_version) finally: page.close() + + +def _post_json(page, url: str, payload: dict | None = None) -> dict: + return page.evaluate( + """async ({ url, payload }) => { + const options = { method: 'POST' }; + if (payload !== null) { + options.headers = { 'Content-Type': 'application/json' }; + options.body = JSON.stringify(payload); + } + const response = await fetch(url, options); + const body = await response.json(); + if (!response.ok) { + const detail = JSON.stringify(body); + throw new Error(`${url}: ${response.status} ${detail}`); + } + return body; + }""", + {"url": url, "payload": payload}, + ) + + +def _put_json(page, url: str, payload: dict) -> dict: + return page.evaluate( + """async ({ url, payload }) => { + const response = await fetch(url, { + method: 'PUT', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(payload), + }); + const body = await response.json(); + if (!response.ok) { + const detail = JSON.stringify(body); + throw new Error(`${url}: ${response.status} ${detail}`); + } + return body; + }""", + {"url": url, "payload": payload}, + ) + + +def test_validation_broker_operator_workflow_is_accessible_and_responsive( # noqa: PLR0915 + app_server: str, + browser: object, +) -> None: + page = browser.new_page(viewport={"width": 1440, "height": 1000}) + console_errors: list[str] = [] + page.on( + "console", + lambda message: ( + console_errors.append(message.text) + if message.type == "error" and "status of 409" not in message.text + else None + ), + ) + try: + page.goto(f"{app_server}/", wait_until="domcontentloaded") + expect(page.locator("h1")).to_have_text("Switchboard") + expect(page.locator("#validation-broker-heading")).to_have_text( + "Validation Broker" + ) + expect(page.locator("#validation-broker")).to_be_visible() + page.wait_for_function( + "() => document.querySelector('#brokerStatus')?.textContent" + ".includes('refreshed')" + ) + page.evaluate( + "() => localStorage.setItem('switchboardAdminToken', 'ui-admin-sentinel')" + ) + page.click("#refreshBroker") + page.wait_for_function( + "() => document.querySelector('#brokerStatus')?.textContent" + ".includes('refreshed')" + ) + assert "ui-admin-sentinel" not in page.locator("body").inner_text() + assert "ui-admin-sentinel" not in page.locator("body").inner_html() + + worker_base = { + "display_name": "Synthetic local worker", + "operating_system": "linux", + "architecture": "x86_64", + "python_version": "3.11.14", + "node_version": None, + "docker_available": False, + "browsers": [], + "gpu_available": False, + "unity_available": False, + "desktop_available": False, + "capabilities": {}, + "max_concurrency": 1, + "network_policy_capability": "worker_restricted", + "repository_write_capability": False, + "status": "online", + } + _post_json( + page, + "/api/execution/workers", + { + **worker_base, + "worker_id": "ui-worker-cheap", + "display_name": "Local small", + }, + ) + _post_json( + page, + "/api/execution/workers", + { + **worker_base, + "worker_id": "ui-worker-expensive", + "display_name": "Local large", + }, + ) + _post_json( + page, + "/api/execution/workers", + { + **worker_base, + "worker_id": "ui-worker-new", + "display_name": "Local reserve", + }, + ) + for worker_id, cost in (("ui-worker-cheap", 3), ("ui-worker-expensive", 9)): + _post_json( + page, + "/api/execution/routing-profiles", + { + "schema_version": 1, + "worker_id": worker_id, + "enabled": True, + "estimated_cost_units_per_run": cost, + "quota_capacity_units": 20, + "quota_remaining_units": 20, + "quota_reset_at": None, + "routing_priority": 0, + }, + ) + _post_json(page, "/api/execution/checkout", {"worker_id": worker_id}) + _post_json(page, "/api/execution/checkout", {"worker_id": "ui-worker-new"}) + + page.click("#refreshBroker") + page.wait_for_selector('[data-worker-id="ui-worker-cheap"]') + expect(page.locator("#brokerWorkers")).to_contain_text("Local small") + expect(page.locator("#brokerWorkers")).to_contain_text("3") + + page.select_option("#profileWorker", "ui-worker-new") + page.fill("#profileCost", "12") + page.fill("#profilePriority", "2") + page.fill("#profileCapacity", "20") + page.fill("#profileRemaining", "15") + page.click('#routingProfileForm button[type="submit"]') + expect(page.locator("#profileStatus")).to_contain_text("revision 1") + page.fill("#profileRemaining", "14") + page.once("dialog", lambda dialog: dialog.accept()) + page.click("#resetProfileQuota") + expect(page.locator("#profileStatus")).to_contain_text("Editing revision 2") + expect(page.locator("#profileRemaining")).to_have_value("14") + + page.click('[data-profile-edit="ui-worker-cheap"]') + expect(page.locator("#profileRevision")).to_have_value("1") + page.fill("#profileCost", "4") + page.click('#routingProfileForm button[type="submit"]') + expect(page.locator("#profileStatus")).to_contain_text("revision 2") + + _put_json( + page, + "/api/execution/routing-profiles/ui-worker-cheap", + { + "expected_revision": 2, + "enabled": True, + "estimated_cost_units_per_run": 3, + "quota_capacity_units": 20, + "quota_remaining_units": 20, + "quota_reset_at": None, + "routing_priority": 0, + }, + ) + page.fill("#profileCost", "5") + page.click('#routingProfileForm button[type="submit"]') + expect(page.locator("#profileStatus")).to_contain_text("conflicted") + expect(page.locator("#profileRevision")).to_have_value("3") + + page.fill("#validationRepository", "missing-owner") + page.fill("#validationPullRequest", "0") + page.fill("#validationCostCeiling", "-1") + page.fill("#validationQuotaUnits", "-1") + assert not page.locator("#validationRequestForm").evaluate( + "form => form.checkValidity()" + ) + assert page.locator("#validationReusePolicy option").evaluate_all( + "options => options.map(option => option.value)" + ) == ["never", "allow_exact", "require_exact"] + assert page.locator("#validationRoutingPolicy option").evaluate_all( + "options => options.map(option => option.value)" + ) == ["first_available", "cheapest_capable"] + + page.fill("#validationRepository", "Nobodyworld/dev-agent-switchboard") + page.fill("#validationPullRequest", "137") + page.fill("#validationCostCeiling", "") + page.select_option("#validationReusePolicy", "never") + page.select_option("#validationRoutingPolicy", "cheapest_capable") + page.fill("#validationQuotaUnits", "1") + page.click('#validationRequestForm button[type="submit"]') + page.wait_for_function( + "() => document.querySelector('#brokerRequestDetail')?.textContent" + ".includes('7d3a91c')" + ) + expect(page.locator("#brokerRequestDetail")).to_contain_text("pending approval") + page.click('[data-request-action="approve-queue"]') + page.wait_for_function( + "() => document.querySelector('#brokerRequestDetail')?.textContent" + ".includes('queued')" + ) + first_request_id = page.evaluate( + "() => Number(document.querySelector('[data-history-request]')" + "?.dataset.historyRequest)" + ) + fresh = _post_json(page, f"/__test__/complete/{first_request_id}") + assert fresh["reuse_decision"] == "fresh" + page.click("#refreshRequest") + page.wait_for_function( + "() => document.querySelector('#brokerRequestDetail')?.textContent" + ".includes('succeeded')" + ) + + dialogs: list[str] = [] + + def accept_dialog(dialog) -> None: + dialogs.append(dialog.message) + dialog.accept() + + page.on("dialog", accept_dialog) + page.click('[data-request-action="publish"]') + page.wait_for_function( + "() => document.querySelector('#brokerRequestDetail')?.textContent" + ".includes('published current')" + ) + + page.select_option("#validationReusePolicy", "allow_exact") + page.click('#validationRequestForm button[type="submit"]') + page.wait_for_function( + "() => document.querySelectorAll('[data-history-request]').length === 2" + ) + page.click('[data-request-action="approve-queue"]') + second_request_id = page.evaluate( + "() => Number(document.querySelector('[data-history-request]')" + "?.dataset.historyRequest)" + ) + assert second_request_id != first_request_id + reused = _post_json(page, f"/__test__/complete/{second_request_id}") + assert reused["reuse_decision"] == "reused" + _post_json(page, f"/__test__/github/head/{'c' * 40}") + page.click("#refreshRequest") + page.wait_for_function( + "() => !document.querySelector('[data-request-action=publish]')?.disabled" + ) + page.click('[data-request-action="publish"]') + page.wait_for_function( + "() => document.querySelector('#brokerRequestDetail')?.textContent" + ".includes('published stale')" + ) + assert len(dialogs) == EXPECTED_PUBLICATION_DIALOGS + + page.click("#refreshBroker") + page.wait_for_function( + "() => document.querySelector('#brokerHistory')?.textContent" + ".includes('reused')" + ) + expect(page.locator("#brokerHistory")).to_contain_text("fresh") + expect(page.locator("#brokerHistory")).to_contain_text("reused") + expect(page.locator("#brokerHistory")).to_contain_text("published current") + expect(page.locator("#brokerHistory")).to_contain_text("published stale") + expect(page.locator("#brokerMetrics")).to_contain_text( + "Deterministic executions avoided" + ) + expect( + page.locator("#brokerMetrics .broker-metric").first.locator("dd") + ).to_have_text("1") + + page.select_option("#historyReuseDecision", "reused") + page.click('#brokerHistoryFilters button[type="submit"]') + page.wait_for_function( + "() => document.querySelectorAll('#brokerHistory tbody tr').length === 1" + ) + expect(page.locator("#brokerHistory")).to_contain_text("reused") + + page.locator("#validationRepository").focus() + page.keyboard.press("Tab") + assert ( + page.evaluate("() => document.activeElement?.id") == "validationPullRequest" + ) + expect(page.locator('[data-request-action="approve-queue"]')).to_be_disabled() + assert "pending" in ( + page.locator('[data-request-action="approve-queue"]').get_attribute("title") + or "" + ) + + page.set_viewport_size({"width": 390, "height": 844}) + expect(page.locator("#validation-broker")).to_be_visible() + overflow = page.evaluate( + """() => ({ + contained: document.documentElement.scrollWidth <= window.innerWidth, + offenders: [...document.querySelectorAll('body *')] + .filter( + (node) => node.getBoundingClientRect().right + > window.innerWidth + 1 + ) + .slice(0, 10) + .map((node) => ({ + tag: node.tagName, + id: node.id, + className: String(node.className), + right: node.getBoundingClientRect().right, + })), + })""" + ) + assert overflow["contained"], overflow["offenders"] + page.evaluate( + "() => document.querySelectorAll('.toast.is-visible')" + ".forEach((toast) => toast.click())" + ) + expect(page.locator(".toast.is-visible")).to_have_count(0) + assert console_errors == [] + finally: + page.close() diff --git a/web/tests/ui_test_app.py b/web/tests/ui_test_app.py new file mode 100644 index 0000000..d412e9d --- /dev/null +++ b/web/tests/ui_test_app.py @@ -0,0 +1,313 @@ +"""Real Switchboard app with an offline GitHub transport for browser acceptance.""" + +from __future__ import annotations + +import datetime as dt + +from fastapi import HTTPException + +from server.api.dependencies import SessionDependency, get_github_adapter_service +from server.app import app +from server.application import build_execution_service +from server.execution.entities import ExecutionCompletion +from server.execution.enums import ExecutionRunStatus, ReuseDecision +from server.execution.evidence import ( + DependencyLockHash, + EnvironmentIdentity, + EvidenceReuseIdentity, + EvidenceReuseProvenance, + ExecutionEvidenceDraft, + compute_result_contract_hash, + compute_reuse_identity_hash, + finalize_evidence, +) +from server.execution.registry import get_trusted_manifest +from server.github_adapter.repository import GitHubAdapterRepository +from server.github_adapter.service import ( + GitHubAdapterDependencies, + GitHubAdapterService, +) +from server.github_adapter.transport import ( + GitHubActorIdentity, + GitHubComment, + GitHubCommentListing, + GitHubTransport, + ResolvedPullRequest, +) +from server.settings import GitHubSettings +from server.time_utils import utcnow_naive + +REPOSITORY = "Nobodyworld/dev-agent-switchboard" +INITIAL_HEAD = "7d3a91c" + "0" * 33 +BASE_SHA = "223df77" + "0" * 33 +CHEAP_WORKER = "ui-worker-cheap" +EXPENSIVE_WORKER = "ui-worker-expensive" +SHA1_HEX_LENGTH = 40 + + +class OfflineGitHubTransport(GitHubTransport): + """Minimal stateful transport that never performs network I/O.""" + + def __init__(self) -> None: + self.head_sha = INITIAL_HEAD + self.comments: list[GitHubComment] = [] + self.actor = GitHubActorIdentity(actor_id=700, node_id="U_ui_operator") + + async def resolve_authenticated_actor(self) -> GitHubActorIdentity: + return self.actor + + async def resolve_pull_request( + self, + repository_full_name: str, + pull_request_number: int, + *, + require_head: bool = True, + ) -> ResolvedPullRequest: + _ = require_head + return ResolvedPullRequest( + repository_full_name=repository_full_name, + repository_id=100, + repository_node_id="R_ui_repo", + pull_request_number=pull_request_number, + pull_request_id=200, + pull_request_node_id="PR_ui_request", + state="open", + draft=True, + merged=False, + base_ref="main", + base_sha=BASE_SHA, + head_ref="feat/operator-validation-command-center", + head_sha=self.head_sha, + head_repository_full_name=repository_full_name, + head_repository_id=100, + ) + + async def list_comments( + self, repository_full_name: str, pull_request_number: int + ) -> GitHubCommentListing: + return GitHubCommentListing( + comments=tuple( + comment + for comment in self.comments + if comment.repository_full_name == repository_full_name + and comment.pull_request_number == pull_request_number + ), + complete=True, + ) + + async def get_comment( + self, repository_full_name: str, comment_id: int + ) -> GitHubComment: + for comment in self.comments: + if ( + comment.repository_full_name == repository_full_name + and comment.comment_id == comment_id + ): + return comment + raise AssertionError("offline UI transport comment not found") + + async def create_comment( + self, + repository_full_name: str, + pull_request_number: int, + body: str, + ) -> GitHubComment: + comment = GitHubComment( + comment_id=500 + len(self.comments), + body=body, + author=self.actor, + repository_full_name=repository_full_name, + pull_request_number=pull_request_number, + ) + self.comments.append(comment) + return comment + + async def update_comment( + self, + repository_full_name: str, + comment_id: int, + body: str, + ) -> GitHubComment: + current = await self.get_comment(repository_full_name, comment_id) + updated = GitHubComment( + comment_id=current.comment_id, + body=body, + author=current.author, + repository_full_name=current.repository_full_name, + pull_request_number=current.pull_request_number, + ) + self.comments[self.comments.index(current)] = updated + return updated + + +offline_transport = OfflineGitHubTransport() +offline_settings = GitHubSettings( + api_url="https://api.github.com", + operator_id="synthetic-ui-operator", + token="offline-ui-placeholder", # noqa: S106 +) + + +def get_offline_github_adapter(session: SessionDependency) -> GitHubAdapterService: + """Build the real adapter around a stateful no-network transport.""" + + return GitHubAdapterService( + dependencies=GitHubAdapterDependencies( + repository=GitHubAdapterRepository(session), + execution=build_execution_service(session), + transport=offline_transport, + ), + settings=offline_settings, + clock=utcnow_naive, + ) + + +app.dependency_overrides[get_github_adapter_service] = get_offline_github_adapter + + +def _identity(order) -> EvidenceReuseIdentity: + manifest = get_trusted_manifest(order.manifest_name, order.manifest_version) + assert manifest is not None + return EvidenceReuseIdentity( + repository_full_name=order.repository_full_name, + tested_sha=order.commit_sha, + manifest_name=order.manifest_name, + manifest_version=order.manifest_version, + manifest_digest=order.manifest_digest, + worker_environment_fingerprint="d" * 64, + dependency_lock_hashes=[ + DependencyLockHash(relative_path=path, sha256="e" * 64) + for path in sorted(manifest.dependency_lock_paths) + ], + execution_policy_hash=order.execution_policy_hash, + result_contract_hash=compute_result_contract_hash( + fixed_step_metadata=manifest.fixed_step_metadata, + artifact_declarations=manifest.artifact_declarations, + dependency_lock_paths=manifest.dependency_lock_paths, + ), + ) + + +def _evidence( # noqa: PLR0913 + *, + order, + run_id: int, + identity: EvidenceReuseIdentity, + decision: str, + source_run_id: int | None = None, + source_fingerprint: str | None = None, +): + now = dt.datetime(2026, 8, 8, 12, tzinfo=dt.UTC) + return finalize_evidence( + ExecutionEvidenceDraft( + work_order_id=order.id, + run_id=run_id, + repository_full_name=order.repository_full_name, + tested_sha=order.commit_sha, + manifest_name=order.manifest_name, + manifest_version=order.manifest_version, + manifest_digest=order.manifest_digest, + worker_id=CHEAP_WORKER, + environment=EnvironmentIdentity( + operating_system="linux", + architecture="x86_64", + python_version="3.11.14", + fingerprint=identity.worker_environment_fingerprint, + ), + dependency_lock_hashes=identity.dependency_lock_hashes, + started_at=now, + finished_at=now + dt.timedelta(seconds=7), + duration_seconds=7, + terminal_status="succeeded", + steps=[], + artifacts=[], + dependency_lock_status="succeeded", + artifact_finalization_status="succeeded", + source_cleanup_status="succeeded", + local_record_status="succeeded", + reuse_provenance=EvidenceReuseProvenance( + decision=decision, # type: ignore[arg-type] + reason=("exact_evidence_verified" if decision == "reused" else "fresh"), + reuse_identity_hash=compute_reuse_identity_hash(identity), + source_run_id=source_run_id, + source_evidence_fingerprint=source_fingerprint, + ), + ) + ) + + +@app.post("/__test__/github/head/{sha}") +async def set_offline_head(sha: str) -> dict[str, str]: + if len(sha) != SHA1_HEX_LENGTH or any( + character not in "0123456789abcdef" for character in sha + ): + raise HTTPException(status_code=422, detail="invalid_test_sha") + offline_transport.head_sha = sha + return {"head_sha": sha} + + +@app.post("/__test__/complete/{request_id}") +async def complete_offline_validation( + request_id: int, session: SessionDependency +) -> dict[str, object]: + request = await GitHubAdapterRepository(session).get(request_id) + if request is None: + raise HTTPException(status_code=404, detail="github_request_not_found") + execution = build_execution_service(session) + await execution.checkout(EXPENSIVE_WORKER) + assignment = await execution.checkout(CHEAP_WORKER) + if assignment.run_id is None: + raise HTTPException(status_code=409, detail=assignment.reason or "not_assigned") + await execution.heartbeat_run(assignment.run_id, worker_id=CHEAP_WORKER) + order = await execution.get_work_order(request.work_order_id) + identity = _identity(order) + identity_hash = compute_reuse_identity_hash(identity) + decision = ReuseDecision.FRESH + source_run_id = None + source_fingerprint = None + if order.reuse_policy.value != "never": + lookup = await execution.resolve_reuse_candidate( + assignment.run_id, + worker_id=CHEAP_WORKER, + reuse_identity=identity, + reuse_identity_hash=identity_hash, + ) + if lookup.candidate is None: + raise HTTPException(status_code=409, detail=lookup.reason) + decision = ReuseDecision.REUSED + source_run_id = lookup.candidate.source_run_id + source_fingerprint = lookup.candidate.expected_source_evidence_fingerprint + evidence = _evidence( + order=order, + run_id=assignment.run_id, + identity=identity, + decision=decision.value, + source_run_id=source_run_id, + source_fingerprint=source_fingerprint, + ) + run = await execution.complete_run( + assignment.run_id, + worker_id=CHEAP_WORKER, + completion=ExecutionCompletion( + status=ExecutionRunStatus.SUCCEEDED, + evidence_metadata=evidence, + reuse_decision=decision, + reuse_reason=( + "exact_evidence_verified" + if decision == ReuseDecision.REUSED + else "fresh_execution_completed" + ), + reuse_identity=identity, + reuse_identity_hash=identity_hash, + evidence_retention_expires_at=(evidence.started_at + dt.timedelta(days=14)), + ), + ) + if decision == ReuseDecision.FRESH: + run.started_at = dt.datetime(2026, 8, 8, 12, 0, 0, tzinfo=dt.UTC) + run.finished_at = dt.datetime(2026, 8, 8, 12, 0, 7, tzinfo=dt.UTC) + await session.commit() + return { + "run_id": run.id, + "reuse_decision": decision.value, + "evidence_fingerprint": evidence.fingerprint, + } From 001b2005a5103eccec19eed0eabc954123bc8527 Mon Sep 17 00:00:00 2001 From: Nobodyworld <127373451+Nobodyworld@users.noreply.github.com> Date: Sat, 8 Aug 2026 16:28:11 -0500 Subject: [PATCH 05/13] docs(operator): document validation command center --- .../013_operator_validation_command_center.md | 124 +++++++++++++---- README.md | 8 ++ docs/API.md | 49 +++++-- docs/architecture/local-execution-broker.md | 29 ++++ .../switchboard-validation-command-center.png | Bin 0 -> 161197 bytes docs/configuration.md | 15 ++ docs/operations/local-worker.md | 6 + docs/operations/validation-command-center.md | 128 ++++++++++++++++++ docs/reports/status.md | 28 ++-- 9 files changed, 339 insertions(+), 48 deletions(-) create mode 100644 docs/assets/switchboard-validation-command-center.png create mode 100644 docs/operations/validation-command-center.md diff --git a/.agent/execplans/013_operator_validation_command_center.md b/.agent/execplans/013_operator_validation_command_center.md index f530494..df366aa 100644 --- a/.agent/execplans/013_operator_validation_command_center.md +++ b/.agent/execplans/013_operator_validation_command_center.md @@ -40,19 +40,19 @@ PUBLIC DEVELOPER PREVIEW — NOT PRODUCTION READY - [x] Issue #136 created as one large end-to-end product slice. - [x] Canonical branch `feat/operator-validation-command-center` created from the exact base. - [x] Initial living ExecPlan created. -- [ ] Verify local/remote preflight and establish a clean isolated worktree. -- [ ] Run the pre-change focused backend, adapter, worker, and strict-browser baselines. -- [ ] Audit current dashboard state, execution APIs, GitHub adapter identity, and persistence upgrade path. -- [ ] Lock bounded operator projection and adapter-policy contracts. -- [ ] Implement additive adapter policy persistence and restart compatibility. -- [ ] Implement bounded worker, request, overview, and history projection APIs. -- [ ] Implement truthful avoided-work aggregation. -- [ ] Implement the Validation Broker dashboard workspace and profile-management UX. -- [ ] Implement explicit lifecycle and publication controls. -- [ ] Add server-backed fresh-then-reused routed GitHub validation proof. -- [ ] Add strict browser and accessibility acceptance. -- [ ] Add public-safe screenshot and operator documentation. -- [ ] Run the complete protected local matrix and public-hygiene audit. +- [x] Verify local/remote preflight and establish a clean isolated worktree. +- [x] Run the pre-change focused backend, adapter, worker, and strict-browser baselines. +- [x] Audit current dashboard state, execution APIs, GitHub adapter identity, and persistence upgrade path. +- [x] Lock bounded operator projection and adapter-policy contracts. +- [x] Implement additive adapter policy handling and restart compatibility without adapter schema changes. +- [x] Implement bounded worker, request, overview, and history projection APIs. +- [x] Implement truthful avoided-work aggregation. +- [x] Implement the Validation Broker dashboard workspace and profile-management UX. +- [x] Implement explicit lifecycle and publication controls. +- [x] Add server-backed fresh-then-reused routed GitHub validation proof. +- [x] Add strict browser and accessibility acceptance. +- [x] Add public-safe screenshot and operator documentation. +- [x] Run the complete protected local matrix and public-hygiene audit. - [ ] Push focused commits to the existing branch and require the complete hosted matrix. - [ ] Complete connector review while keeping PR #137 draft and unmerged. @@ -79,6 +79,21 @@ PUBLIC DEVELOPER PREVIEW — NOT PRODUCTION READY - Observation: existing strict Playwright tests spin up a real FastAPI application with a file-backed SQLite database and use browser route interception only for deliberately simulated failures. Evidence: `web/tests/test_ui.py`. New browser tests should continue exercising the real application wherever possible and use bounded mocks only for GitHub transport-dependent surfaces. +- Observation: connector planning review `4888524384` established the canonical branch, draft PR #137, and this vertical-slice contract at the planning head. + Evidence: the branch began at `e905a3d7020c76d940c0938b2617d55d6d57de7e`; planning-head Commitlint workflow `31249483907` and CI workflow `31249483899` succeeded. + +- Observation: the pre-change shared Python 3.14 environment was dependency-dirty even though the focused suites were green. + Evidence: `python -m pip check` reported unrelated global conflicts for OpenCV versus NumPy and Streamlit versus Pillow, plus a stale invalid `~andit` installation warning. The pre-change backend/adapter matrix passed 169 tests with 8 warnings, the worker matrix passed 36 tests, and strict Playwright passed 2 tests with zero skips. + +- Observation: additive GitHub adapter policy does not require a persisted adapter-table column. + Evidence: the linked `ExecutionWorkOrder` already owns reuse, routing, integer ceiling, quota, and preferred-executor policy. Keeping that record authoritative avoids duplicating mutable state and avoids any `github_validation_requests` schema migration or `schema_version = 1` constraint change. + +- Observation: the exact pre-#136 adapter key must remain a separate calculation rather than a partially populated form of the new key. + Evidence: `_legacy_idempotency_key` preserves the prior canonical input byte-for-byte. Only an all-default request checks it after a new-key miss; a recovered legacy row is returned without changing its immutable key or linked work order. + +- Observation: the current-main manifest restart regression remains the relevant prior-schema startup proof because this slice changes no table shape. + Evidence: `test_main_manifest_schema_survives_repeated_startup` creates the manifest table in its merged-main shape without `updated_at`, runs lifespan twice, resolves/lists the trusted manifest both times, proves one identity, and verifies routing tables and columns remain present. The adapter compatibility regression independently proves legacy default identity recovery without duplication. + ## Decision Log - Decision: deliver backend projections, operator UX, history, avoided-work metrics, documentation, and end-to-end acceptance in one large vertical PR. @@ -117,20 +132,63 @@ PUBLIC DEVELOPER PREVIEW — NOT PRODUCTION READY Rationale: the current APIs are sufficient; a new event transport is not a requirement for the user outcome. Date/Author: 2026-08-08 / connector planning -## Outcomes & Retrospective +- Decision: keep execution policy authoritative on the linked work order and add no adapter persistence. + Rationale: every new request field already maps to an accepted work-order field, so duplicating it in `github_validation_requests` would introduce drift, a needless prior-schema migration, and a schema-version constraint change without adding recoverability. + Date/Author: 2026-08-08 / implementation + +- Decision: expose one bounded projection module with a 100-row maximum, 10,000 maximum offset, 365-day maximum window, stable request ordering, and redacted worker summaries. + Rationale: these hard bounds give the browser the joined state it needs without N+1 queries or raw-domain overexposure. + Date/Author: 2026-08-08 / implementation -Pending implementation. +- Decision: preserve the existing page shell while rendering the new command center as a visually distinct dark operator workspace. + Rationale: the final implementation carries the concept's dense scan-friendly metrics and two-column control surface without replacing the existing task, maintenance, configuration, diagnostics, analytics, live-document, or WebSocket UI. + Date/Author: 2026-08-08 / implementation -The final retrospective must describe: +## Outcomes & Retrospective -- whether the operator can complete the entire workflow without curl; -- the final API and projection boundaries; -- exact adapter-policy and migration behavior; -- fresh versus reused end-to-end evidence; -- avoided-work aggregation semantics and limitations; -- browser/accessibility results; -- screenshot provenance; -- remaining limitations before MCP or paid-provider work. +The operator can now complete the complete validation workflow in the existing +dashboard without assembling curl calls: inspect workers and profiles, create or +revision-safely replace a profile, reset quota, request an exact GitHub PR head, +approve/queue or apply another valid lifecycle action, monitor route/run/reuse/ +evidence state, explicitly publish current or stale evidence, and review bounded +history and avoided-work metrics. Existing task and operational surfaces remain +in the same page and their strict browser regressions remain green. + +The server boundary is one focused read-only projection module plus four bounded +authenticated routes: overview (1-365 UTC days), history and GitHub request lists +(1-100 rows and offsets through 10,000), and worker/profile summaries. Request +history is newest-first by creation time then numeric ID, joins only the latest +run, accepts typed repository/PR/work-order/run/reuse/routing/publication/time +filters, and omits executable, local, private, credential, and unbounded fields. + +Every new adapter policy input participates in the new identity. Existing +all-default requests remain recoverable through the exact pre-#136 key and are +returned without mutating identity; non-default requests never use legacy +fallback. Policy is authoritative on the linked work order, so this slice adds +no table column, schema-version change, or migration. The existing merged-main +manifest-shape regression ran lifespan startup twice and remained green. + +The offline server-backed proof created a fresh successful run and a distinct +same-worker reused run whose compact evidence contained no validation steps. It +reported one fresh and one reused success, one avoided execution, 7 historical +reference seconds, 3 operator comparison units, and a 50% reuse rate without +double-counting repeat publication. Missing source timing and route cost were +separately proven to contribute zero rather than a guess. Publication was current +before the mocked head moved and stale afterward while preserving the tested SHA. + +Strict Playwright passed all three tests with zero skips. The command-center test +proved native malformed-input rejection, server-loaded selectors, UI profile +creation/replacement/quota reset, visible revision conflict recovery, explicit +lifecycle/publication transitions, fresh/reused and current/stale rendering, +disabled-action reasons, keyboard order, zero unexpected console errors, and +page containment at 1440 and 390 pixels. The approved screenshot was generated +from that no-network file-backed application with synthetic public data and was +visually inspected against the generated concept. + +The product remains a public developer preview for trusted local networks. MCP, +paid-agent/provider execution, billing, browser/desktop/RPA workers, automatic +approval/publication, webhooks, repository writes, full-log transfer, and +production multi-tenancy remain deliberately out of scope. ## Context and Orientation @@ -589,6 +647,24 @@ Record during implementation: - final local/remote SHA equality; - final hosted Commitlint and CI IDs in PR #137's external review record. +Current evidence before the complete validation pass: + +- preflight: `origin/main` and merge base were `223df7752716dd6ad35e75ba7613eeb03cfb2887`; the local and remote implementation branch began at `e905a3d7020c76d940c0938b2617d55d6d57de7e`; the isolated worktree was clean and exclusively owned the branch; +- pre-change backend/adapter baseline: 169 passed, 8 warnings; +- pre-change worker baseline: 36 passed; +- pre-change strict browser baseline: 2 passed, zero skips; +- implemented server-backed proof: request/work-order/run IDs are database-local synthetic IDs; request 1 completed fresh on the lower-cost worker, request 2 completed as a distinct reused run on the same worker with an empty step list, reference duration 7 seconds, route comparison units 3, one avoided execution, and a 50% reuse rate; publication was current before the mocked head moved and stale afterward; +- focused implementation checks before documentation: the new policy/operator tests passed 4 tests, the adapter/startup target passed 44 tests, and the new strict command-center browser test passed 1 test; +- public screenshot: `docs/assets/switchboard-validation-command-center.png`, captured from the offline file-backed browser application with synthetic public-repository data and inspected against the generated command-center concept; no token, authorization value, path, machine identity, private URL, credential-shaped value, environment value, or financial-savings claim is present; +- final focused backend/adapter/startup matrix: 173 passed with 8 existing SQLAlchemy deprecation warnings; +- final focused worker matrix: 36 passed; +- final strict browser matrix: 3 passed with zero skips in 21.55 seconds; +- complete pytest: 576 passed, 5 documented platform skips, and 344 warnings in 404.09 seconds; +- coverage pytest: the same 576 passed and 5 skipped; aggregate configured coverage was 93%; all 16 gates passed at 95.40%, 94.17%, 100%, 100%, 92.59%, 95%, 87.76%, 100%, 100%, 97.73%, 90.16%, 97.59%, 94.83%, 100%, 90.71%, and 91.30% in workflow order; +- clean Python 3.11 `pip check`, pre-commit, TODO policy, Ruff, Black, Mypy, compatible-interpreter Bandit, pip-audit, Gitleaks over 250 commits, Lychee, and `git diff --check` passed; +- the shared Python 3.14 environment retains the unrelated baseline OpenCV/NumPy and Streamlit/Pillow conflicts. A clean external Python 3.11 environment proved dependency consistency and direct gates. The fixed worker argv `python` resolves the base Astral interpreter ahead of a Windows venv under its intentionally sanitized environment, so the established host interpreter was retained for worker/full pytest while direct Python 3.11 gates used the clean environment; no worker command or trust boundary was weakened; +- generated reports, coverage data, databases, caches, bytecode, link output, and temporary environments are removed before commit. The final public-hygiene audit, local/remote equality, and hosted ultimate-head workflow IDs are recorded during delivery; ultimate-head IDs belong in PR #137's external review record rather than a self-referential plan commit. + ## Interfaces and Dependencies Expected new or extended interfaces include equivalents of: diff --git a/README.md b/README.md index 40cf058..c725677 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,7 @@ Switchboard is a reference implementation for coordinating multiple agents again - **Lease-based ownership** — agents claim work with expiry and heartbeat semantics that reduce duplicate execution. - **Trusted local execution** — approved exact-SHA work orders are claimed by an outbound local worker using fixed reviewed argv, read-only disposable worktrees, bounded output, cancellation, and cleanup. - **Compact validation evidence** — `validate-switchboard@1` records strict step outcomes, parsed test/coverage/security summaries, dependency-lock hashes, retained artifact hashes, and a deterministic fingerprint without returning full local logs. +- **Validation Broker workspace** — operators can configure local-worker routing, resolve a GitHub pull request to an exact head, approve and queue it, distinguish fresh execution from exact reuse, publish current or stale evidence, and inspect bounded history without assembling API calls by hand. - **Live state synchronization** — plan changes are broadcast to the dashboard and clients over WebSockets. - **Live-file hosting** — agents can fetch mutable documents by URL; mutation endpoints can be protected with an admin token. - **Operational visibility** — health, readiness, diagnostics, metrics hooks, structured logs, and rate limiting. @@ -59,6 +60,12 @@ python scripts/run_uvicorn.py Open [http://localhost:8000/](http://localhost:8000/) to view the operator dashboard. +The **Validation Broker** workspace uses the same optional admin-token boundary as +the execution APIs. Its comparison units are operator-authored routing values, +not currency, provider credits, or measured savings. See the +[command-center operations guide](docs/operations/validation-command-center.md) +for the end-to-end workflow and trust boundaries. + ### 3. Create a task ```bash @@ -152,6 +159,7 @@ See [SECURITY.md](SECURITY.md) and [docs/configuration.md](docs/configuration.md - **[Configuration](docs/configuration.md)** — environment variables and runtime settings. - **[Agent Integration](docs/ai-interface.md)** — how agents interact with Switchboard. - **[Local Worker Operations](docs/operations/local-worker.md)** — trusted repository mapping, worker configuration, execution, evidence retention, and limitations. +- **[Validation Command Center](docs/operations/validation-command-center.md)** — browser workflow, bounded projections, exact-reuse metrics, and publication controls. - **[Public Status](docs/reports/status.md)** — current developer-preview posture and release boundaries. - **[Two-Agent Workflow](docs/visuals/TWO_AGENT_WORKFLOW.md)** — dependency-unlock sequence. - **[Documentation Index](docs/index.md)** — full navigation. diff --git a/docs/API.md b/docs/API.md index 8d62199..4d558fc 100644 --- a/docs/API.md +++ b/docs/API.md @@ -32,7 +32,7 @@ Use this page as the concise endpoint index; use [ai-interface.md](ai-interface. | `/api/execution/routing-profiles` | `GET`, `POST` | List or create privileged operator-owned local-worker cost, quota, and priority profiles. | | `/api/execution/routing-profiles/{worker_id}` | `GET`, `PUT` | Read or revision-protected replace one worker routing profile. | | `/api/execution/routing-profiles/{worker_id}/quota-reset` | `POST` | Apply an explicit monotonic, revision-protected quota replacement. | -| `/api/execution/workers` | `POST` | Register or refresh a read-only worker capability declaration. | +| `/api/execution/workers` | `GET`, `POST` | Read a bounded, redacted operator worker/profile projection or register/refresh a read-only worker capability declaration. | | `/api/execution/workers/{worker_id}/heartbeat` | `POST` | Refresh a registered worker heartbeat and availability state. | | `/api/execution/checkout` | `POST` | Atomically assign one capability-compatible queued work order to one worker. | | `/api/execution/runs` | `GET` | List historical execution attempts; filter with `work_order_id`. | @@ -44,8 +44,11 @@ Use this page as the concise endpoint index; use [ai-interface.md](ai-interface. | `/api/execution/runs/{id}/complete` | `POST` | Record `succeeded`, `failed`, `timed_out`, or `cancelled` after ownership validation. | | `/api/execution/leases/expire` | `POST` | Timeout stale runs, release worker capacity, and safely requeue their work orders. | | `/api/execution/github/pull-requests/validate` | `POST` | Resolve an allowlisted GitHub PR to one exact head and create or return one normal pending work order. | +| `/api/execution/github/requests` | `GET` | List a bounded, stably ordered adapter projection with repository, lifecycle, reuse, and publication filters. | | `/api/execution/github/requests/{request_id}` | `GET` | Return bounded adapter identity and execution/publication lifecycle. | | `/api/execution/github/requests/{request_id}/publish` | `POST` | Recheck the PR head and synchronously create or update one bounded managed comment as current or stale. | +| `/api/execution/operator/overview` | `GET` | Return database-derived request, run, reuse, publication, avoided-work, and worker counts for a bounded day window. | +| `/api/execution/operator/history` | `GET` | Return bounded, paginated, newest-first request/work-order/latest-run history with redacted route and evidence fields. | | `/api/plan` | `GET` | Return current plan snapshot used by agents and dashboard. | | `/api/execplans/index` | `GET` | Return ExecPlan registry index in JSON (default) or YAML based on query/header negotiation. | | `/health/live` | `GET` | Liveness probe returning process and probe observations. | @@ -170,18 +173,35 @@ retention is not changed. ## GitHub exact-PR adapter The manual outbound adapter reuses `SWITCHBOARD_ADMIN_TOKEN` authentication. -Its create request accepts only `repository_full_name`, `pull_request_number`, -and a trusted manifest `name`/`version`. Stable GitHub identities, exact head -SHA, base provenance, manifest digest, work-order identity, terminal evidence, -comment identity, and publication state are server-owned. Unknown fields, -including commands, URLs, paths, status, hashes, worker IDs, and comment IDs, -return `422`. - -An identical authenticated actor + stable PR + exact head + trusted manifest -request returns the same adapter and work-order identities. A new head or -credential actor creates a distinct request. Stable actor ownership identifiers -remain server-owned and are not returned. The work order remains -`pending_approval` until the normal explicit approval route is called. +Its create request accepts `repository_full_name`, `pull_request_number`, a +trusted manifest `name`/`version`, and optional strict `reuse_policy`, +`routing_policy`, `maximum_cost_units`, `required_quota_units`, and +`preferred_executor` fields. Defaults preserve the original `never` plus +`first_available` behavior. Stable GitHub identities, exact head SHA, base +provenance, manifest digest, work-order identity, terminal evidence, comment +identity, and publication state are server-owned. Unknown or executable-shaped +fields still return `422`. + +An identical authenticated actor + stable PR + exact head + trusted manifest + +complete execution-policy request returns the same adapter and work-order +identities. Every accepted execution-policy field participates in the new +idempotency identity. An all-default request also recognizes the exact legacy +pre-command-center identity, so an existing default request is returned without +mutation or duplication; a non-default request never falls back to that legacy +identity. Policy remains authoritative on the linked work order rather than on +adapter-owned schema columns. A new head, credential actor, or material policy +creates a distinct request. The work order remains `pending_approval` until the +normal explicit approval route is called. + +The operator projections accept bounded pagination (`limit` at most `100`, +`offset` at most `10000`) and the overview accepts a day window at most `365`. +History has stable newest-first ordering and joins only the latest run per +request. It never returns commands, argv, logs, environment dumps, local paths, +credentials, candidate lists, or complete worker capabilities. Avoided-work +counts include successful reused runs only; reference seconds come from each +linked successful source run's persisted start/finish interval, and comparison +units come from the reused run's persisted route estimate. Missing values are +excluded rather than guessed. Publication requires terminal compact evidence and re-resolves the PR immediately before its managed comment is written. A moved or unavailable head @@ -201,6 +221,9 @@ See for credential permissions, marker recovery, local commit availability, and transport limits. +See [Validation command center](operations/validation-command-center.md) for +the browser workflow and projection semantics. + ## Related Docs - [ai-interface.md](ai-interface.md) diff --git a/docs/architecture/local-execution-broker.md b/docs/architecture/local-execution-broker.md index b589a70..592e2c8 100644 --- a/docs/architecture/local-execution-broker.md +++ b/docs/architecture/local-execution-broker.md @@ -249,6 +249,35 @@ Provider budgets, external remaining-rate-limit ingestion, and paid-agent routing remain later concerns. Deterministic local validation must not invoke a paid coding agent. +### Operator validation command center (#136) + +The dashboard adds a browser workspace over the accepted execution and GitHub +adapter boundaries; it does not create a second scheduler or execution path. +Lifecycle actions still call the explicit approve, queue, cancel, expire, and +publish routes. Only the selected active request is polled, with one replaceable +timer that is cleared when selection changes or the page unloads. + +Server-owned projections assemble the operator view with bounded, stably ordered +queries. The browser does not join unbounded request, work-order, run, worker, +profile, evidence, and publication lists. History selects only the latest run +per adapter request and returns compact scalar provenance. Worker summaries +combine the declared worker with its operator-owned profile without exposing +capability dumps, local roots, or private connectivity data. + +Adapter request identity binds every accepted result-affecting execution policy. +For compatibility, an all-default request may resolve the exact pre-#136 legacy +identity; that row and linked work order are returned unchanged. A non-default +request never uses legacy fallback. The linked work order remains the single +authoritative persistence location for reuse, routing, cost, quota, and preferred +executor policy, so no adapter schema migration is required. + +Avoided-work metrics are projections, not a mutable savings ledger. One +successful reused run counts as one deterministic execution avoided. Reference +seconds are the non-negative persisted duration of its linked successful source +run, when available. Comparison units are the reused run's persisted route cost, +when available. These units are local routing comparisons only and are not money, +credits, provider usage, or verified spend reduction. + ## Execution-Plane Domain ### WorkOrder diff --git a/docs/assets/switchboard-validation-command-center.png b/docs/assets/switchboard-validation-command-center.png new file mode 100644 index 0000000000000000000000000000000000000000..ffcc9eb80bf4971ec16849700479682744a0eae0 GIT binary patch literal 161197 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
    Lguk#@ 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 literal 161197 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

      Lguk#@ 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
      Comparison units
      ${formatInteger(profile.estimated_cost_units_per_run)}
      Revision
      ${formatInteger(profile.revision)}
      Quota
      ${formatInteger(profile.quota_remaining_units)} / ${formatInteger(profile.quota_capacity_units)}
      @@ -200,8 +204,14 @@ function renderWorkers() { ${escapeHtml(worker.display_name)}

      ${escapeHtml(worker.worker_id)}

      -vrA>L`yxyzc3)n|-cUn8y?2=+rfzjpA{rkz=3iRKi^AU|QbO{fPn!*&AA~kC-Q=sD z8|DdID?=2RdK*>E<2=e=Hw~4H>(ys^!ou7~olm)>H-f4Ib5}=;b4a6_z799fJ)Gt= zdF$0z{mPw}Ce=0vfp---fWq+{AEhI6_w(mX46?nOZ*$>cNqw+4F87hy+?FFI6`CGr zrd2&_M8rRJ1>Y)~FKJa8#wp}6Zq*h)zvhxNSc7_mNz{ImlIt>2%X@WIlTk2jZ)do0 z@@BQ)C+E`ay?*BN<0+-gH}YRIUnY*H3Ya)%=0KdgI`xT7Ig>eWl&90|r9xE+I%x_i z`CX}Kh2q|5W+v6%ns*ebGZD5P-;gmCoc{eAejZ0-#fAFNjT+H$>C+Of1jd@uO0KtWrS2;#$DF_FFkYutR4AygifO;a zjp5P#Ju(q))OgV|sylIBs$6Nb@xqxm(hpp-!= z_wogpt0bJs(Mk=^tbmd}2_}(QKcOa%c(Q$HW>sir$<#1**zDkRR9w2L0+F@zj|8c0ZIJii!45qcV2l z8GL!kPoJSzAv+`4t+*oRMX50!;u5{^toL$YgnI!IJQcMW>Jq5PU}}J!8n|&$)K~GE zy~}URDO)zCZmaCi%RtV&iuW*4l?_+t4}V}C`NqBAXYoe)EIRox#V}ESxwuL{p)!;0 z5{i_>wpBufCWoxfAh915Hu55z-`&OKJ!~_x&$g#1t8z7F-U%nZgGIKrUmEW;kh#+6 zfAQ+z*xho$LamHV7Ae#b@FZt78`ZHmB}%>-{M;Ld;&-8_KgU&;4^R=Y^#<_D1Vi!? zv|&?nKDd9zvYw=XFsvpyZ&6xUAsJ{#|TLB94_hG zkL)OsynU6G`W&}aDhm@f{I!37wOCZvh|xzu_24DS(quN2FFT(rYk@hsjy+`tUSYox zmKFX9Wl!#;;%&^H`+IWaL;>qr~epPw<~RqLZhu40;)=I+;v>Q1AbDYVsW$`!Pe?+)+0B~ z)!KbjtkA}q5g`dr7?3{+%ewzju?HL3pFpz~7&(uXq~957-n%j@*(I-E9u`+)TxR@~ zpq$6mk6D(qS*dwlIh>B+i(uJlXm>oY#yGXQ`RI1<`sqq+WJ(3i90kN1j(LEYYARf) z3fJ&7r$jR=G%;(O-h}Or43V?Zf@(0TBVGjZz%TbORU!xz#KRviJ2SYDae|PERw9Q z!%^Eq;EX{9X>QRmT$gN*z^xVtRM!6R%hXt4Bs-m)YA8}R82iowYWBxy8?~_#>?QZ# zpg`3n+5O*^%!Z+>k2Dw)uf#5^z|^*zZxumamLDI+B4KfFAG{-PB;fAx)$wxb{hl30 z1uiL7(iu(9!(9~ZpWXLqGt8HN$`ogg15HL=e|568J2V$k+VJG)y*D@?j|*1Tv8O`3 z->=K(M+RBzJs_;VYyhqepxxthmk!+s>n{eVj!Zc2t^tVc)1wIV_4f4xMQyu|0{Y79 z5!Fq9kK>lpp>+GENTAm)lIqb8Pr?1Fy6-b*A1XKMs|@%^^u9j$NUV+idFf0N8gzCT zVCs26{)g~y(^{suirlU%8e;}gF@q>R^r=AXK8J zl(eQ@jy-x~A-rK>_m+uM)&*F`XkvNu>&hDeMNkXX8*K4H>h+Ow zX5OORr}2Z{Rr7H!o|5Bo0tr0}Gu0n+b`Dkm2DY&DsLH=yLP@`MPt#!<&NV6v=)UIr zC6WT4`{!2@dSi3QrlRfg9BsB?dG$ddP|B=LvqI11Of?49^nh-KZw4261IIxB+@q|% zqDWtTs-bObtI-l^E+g;=b9m^tzpRETSgGZX80Y1$JL0=xQHd|zB z0EGAp41*=T$&wdwJ;4I}=84$Ifc&m9kXW%2W4wW9CA;1nQnqzF7#dt&MHAevI2`4h z5!fs0G?iHPjL$OVuZfGkHDg4ZF*v&4L+28~g$;w&($b**9;dYXh?3l%V?E*?V3LTwDF@?z^)Jj~?tTOG%hx6B zc=K==Fh5qgOMVY)6Zm~xk@>2EzVY={ACb6okQn&J+%te(ROvL6nVaFY>oD}E`I5?Q z-#4g%VXVf$kJ~wo*%|1sS8{+o%yRC{r^l%N{0|!aWB{W`?BX~{QfesACUDvrT(Rva z7ax^$c;wbg)M!fQDcxYwj#$-LU5k-I0mB?gwlPx9TxTNWKlS<#t%Y^}OT3nN9Wnp5 zb+!VGG+heV#MHNswBhwFaXtGnvh|CCTFk={`~Mn=nvaRr?U3p$&96RcplonZ7068h zYMmq?Ovfq}DfD?Y5GuvVJz6e4^WQ?Hw6EJ85qD(!P_ohd*}o2ky|q`3PeCld01BW; z+yANHZ{G@T9*0f-ogd%-mBBMNeB4}ktM7U#O`?LN@*KEbpq>v{UoCe&{oQVV7n}%u zeA`2+Qjn7pF&A`X6Q_79Mv%7G;z}^n^rkK{V(t-$Ko{}XI*`U{1961#53X{x%`mq7 zSmB%6Z}`vvZ!*)vdkq4Hx{?p|{~)u)Xw<~^i>-Oqo;VM;;`+HF$fD=y^n0hsICyc%*riv#Vdv2hc=`2_i2)jwPsBDYY3$rU1SW zL>oQUVe!ny1f*s_{Dc(vwp;zA-QV;6xLD=xh!W}aQ84!et;*VWOyZaP=E`K$MFJ6j z4-5!_Z%owcQo1 zvSdC&vyUU|o9pXS>orAkF3wZ$*Ny+(!>uGsWWNPV#=Y)MHGV_hHCwEsH!0FwdP5O< zv$_n18gg-Z98NvIzY0)1yqS;7dQMba1n%mz=+6!xSr9U>3#4y`BKV@5D1_#}a44(a zrrWq=^qDo!X}%N?sN2M1pjWE#2lO*Pmeq!I&y-vJvF)~NJ>c=UZ$TEhzYlmd=YK#< zfVzAvrdml8jSq#D2e@zC5iISK?dR2JLz)A?_^4j>zq*a`gswYxnt{GQRxDy>dKhTjowE=8~=al0G}Zi2sO z)eJUQ#<+IT=<~c`xJ5IaxRNOd;D*F#9BHFP#V*cQ(J{qu2R#do#nqX}4#U)JD@z8R zK8SS8fv`J~tsID%6+PrN?dbH6e2Bj1Fh{ZV0Th9N2m=nCeQ{t;_-o53ukj-F{;bgP z75c^>@T;?6!q$p~yZ7V)cZc2m-bAves|xF={tw#r&w=e#pibRi`ZVlVu?&~6>DAEB6s+Iqcobq9-2F)Nd$^7;_!|V=vo9-j zEX;0)xUPOysc=>T6~5&8*5(1pQ#An6lDiN{5{&w?rAADIoy*K;HY zwF*$8i<%ls-|d`m$gX@7ujXFmLrU{cdb`NEujZDxpB)^F!iBV}t7$lP)wal+L2ZLD z&HefE)^v#sAaZKW(~EC1%{>8<2Dt|9ulxCB&aODbXMK6*)^m9-Y67_B2`$?L(wtQ1 z^dRKQ3Waqn(J77e45k)(K23e%zzC`M#s<`oRj0dIL`3Hi+R)(<`*J26Y3l)jziRR; zs2j)Lx33H=&M}~U7p~3)d2kt>NB6ZqN)$NpJ*a4-un}#6QsZLjcQSe=Djb2Q5*^U& zLCh5FChEFLG^1V>p@oxQTU0xzACHCvIt_q5PCCZ!(>=OMFlx`0?xSiRz5l%7GteK7 z)!^J^%RU)=@3PrI1FePPnjH5M3ceORLe97b4FURWu& zWumZ)9eMmf<6y_;q)!s}7tfHqDDTy5KE6{!Myg5dTk-ih+1Q!;?&mB8zWI}UD2E__ z*zI0+^oSHL!wC)ID~~E+wW%yb4CWR}k%1aW^6BN!Z>fReBk9eH-*IdE0$?0U3fA2W7Y{Bt%G%)&Oe+a7-Z8T+Ew1Ta*0 zjOyBNE?-F#OqA0)NT{|82j5kI#9z|14^D+2U$zpqKm@b?H4Dfu>qw5PpV%hvd?;oC zmL=<$rRKT+LhmHNGBq+<7|%~jE>{^C>Z0B^w*(!zwHO!4B(oCmDiv}`&(vc%(pJx> z+8ei!^9Yk2-ky72td^azBbu+_zAIMlN97_(pFO5RXVGeRikAHqL1{Bd)QbkX@U_jJ z;QQJu)%z(2HZG=h!LKViCJ)&?#mAF1C6_@R`SFeX+XS0bk6+^38DWFspCkdg_p%;b z@6&yafvbpzq%isArNMR)CC0^fome3eHaIuQti*`XU4+uxVs_{``v`J|52rG%(<@dR z^4)BR{aAlRhyC+CCg*W&YLM5y?J`CVgyFK}Q}dgG6Gcrf(e!@xRs5$iWRJ;fftn)yU3`1yofQVf8c830zTmY|rYLol6UI?2HC zHwDb}tL11<-RIMea#~ivUEJE8a|6k~X4^AvLVVD#9>3ifp$Lu_7wWF-Q`F@x>TkQB z-RzSK|8Vj=ajwxy@r^_5q(ar%Om1e?2L`{3lzocwEnuulEeMZ4>wP*P2xp&{FG$gT zEdj?jG}(5?w@`8KuDTRMb?_$jg_Bzn0jOleQiD>_h{N#Q~+E^SOl^ z1Aco~10_slpaT&vSv+~7Fw7fk$|n!%H(9ILjDaK8d_9ul`OOaACkn|*8kL#YwRG1U zPJ9{P+FZ;aA8Sid59fkH4zx-5D9NeEHjN&@ zi1HpB_K;&~4%@0#qkrIZO$G%UbyOtYVpQGVV=*)8-wD5*m6n+=`E!^I#7~T>ZstzZ zUb}8?Pmk&dR-7372dusN$AcVg*q~~=LgRal6{vfF5rxw7n_>VvFkUGLOFi={>!r8c z1=Y~6XRQSy1A@d{QX0vkN!_?7T_ZIZ3)eLPUe{C7l-`xoS+V3|LPi+KUMbf9#wd?= zwEUl@e4WZ#?G?u37&`y#14Bkj$L*pe{NsxDq{@4O{C>kIk==m{LAvv~qE3Y_2JM!F zzErUeektU81++b``MRCLFv9q@PZR3%sWAkaw9%(|=JQx1Icwa`#IqV7QAPgN4`(rD zyb%7VJ8khZpyRG%TYn(;@xn=~uEBCZJaGb&O5PAm{AU5ZNH$UKHL}0b{O{zzCi6qd zyouvOF3?sAoQqVT{>5^_D!!Y4v`Be%hA;}Pf*}JHsz#kTkP<8*n^`}!sGEbVXn1P(DoaJEr! zx|hur2jmK*^RDEg&TfUF64DHq?^ z_~@wX6cFNa@|tvgPF>2vu$fofEurW( zsNW)@ULp;y`q>llZQt^ibZD+X8b}?QV@?L@jzXCUh5QTvS+8Lv!L^pE;K`pNM>@rO zASwneWJhh3CmdshT39ua-z{tm{>LI;&_3xu{Q*$O{ExYG|G7=)|D0d>uNRyJs#t)Q zC1 z3{TG&!^Fa!{&Go2v~oqm=-6nCXv{XGJ<4S1FoCBsUc@ z$%VNpk0EkBdo?|LUiHUA#VUo){{q~LuYoihbWGvi-z0_fw^|DlZo2S7Pj-FZ@WwOS(#m0!Aq{mD%+rUbF zF$tF{H66B~t4B&!U}g@1pA#({|9)@?9_9cBK&|}m)OM!fbmji*_8$2b%ia}w0DOWz zm08y*5LIQDXba?o&WuSlR61E&-)WTAS9W?EsXhPjMWv#KB;>sQxlMMAarN2A&sE>@ zxbAkTwS20Ho@ocp3@GV{Ba2JT&x*F1v?+BD$icM2MyCF(tX}(sQ7`J`f^pUt2YSsy zB!dC@Q36dj8BNt&AB{rC%nnAl9-~>MvawhIy97UFlf(-m!l1pPs4xW!u^ASB4b8cd zcfuV))U9Wa;GL69RF$B_|Yrg#ZYiLd328QHQdSzQ6JXyqyf54w9i7Y>_Xtw`A z%J|VnGl!?YE{auXXp{BlpjmM=QI>w2xItF_6Pm*RPeJ zkm-+oHTS4DFMfi2{8dojtZ|CJZcM>X&bdU2d#a%1zX{9TJiVBrEauc3e79*f9pY=Y zx!5lbRL;~U-re&5B+K|}Pf7s2cy?{8yPhXkm4c7|#p&GZ%NP*wn$Zb2k|0NqVo8-k zdAkVKU1gYPKep|fPefSbS&^BBhi2;6x4mF~f==U7-a|I^GB}vBIM@cYRUrbpnA|-3(93&|(7%cQmp|nD|K<(C=AM0s|A{!G& zwz(7x+g-6gq;IbJ{q_)#6R+3+ThPl;b}QRDzXca^44v*CrXNgvfb^a%d@W%YgZb?a zhAeL%Lv0k}?3^XJ*+QiQq)j&f>qxZD=KcKWq;FsK6|ZmlHPpI5P)HA2>S5-qIq z<%qn#^^mozlI>n&UYdVe%371~N4owXb@{W`Pl!K^3b~(i2B5Gr<)_Ri7)l0cd^G>*fe0%DKAIFU0 zw0S?O{i9M!WMcf(&e%Brv>!LV>vra3>+u1!@>&)S!46?uhIUEWY! z@KR^^FmksEOx_-7i?xp1Kz4&yKha=Nwy)0x$uK_P_>wpH22Velh-=VkcQ%5YsqRpH zDnn5@R%GZ=7`I&es}UeU`bhFzbz|H6qvWactj9Mg;Snch?*4|YQaUgJx-hC264dDxm9ffrbvHM2XdUvk$O#FL`cB^IFWl41cqXk{B4>k44SMfHo)NY>|ndvB&THlW0vvq`7uJu(tFlEPi0j81cE6gcJ-NBC@yVF4rL^@%O;0C zhj#?OO_^%$9rJ4l0Shdy71LSc4SrfcR?V#P_qWTC;%mwQJ=*%C!ot610d~~VRXY+= zGi4H;HuiDTeL208o(Ihfu>p|x2H0n89Au0tIRL^hJLiv4;9vihoDNJBUQH ziv<)3Y3WwZZ+AAmnHa`Wyr>v~5j^!kz{B2vK~9?gK*p!Mv3+v!1;xmH1Fz{Th}2^R6FHdhY`SR9myvV!P9WNrT-p_uXUN zIEB?*p634){1uV|1dN67gol?o`oQ~8)?MJTahpEmDXviny65O$_MV%}>W>gLrGG&q zbL~c%lzB`o1=pkP9Q-!E%I^pb8Fp~*HyKVAqSm9Ngqi2u6>JA0rAoQ>yct%q0@+fJ z*%lfRbiHxJvx!!b(g;%efw2KQM9&24Ri$68y`9N$RnEGxu90dh(!$Khi@M+x>70+2 zSW2u^?!_zAk;td*jGraCT*Dp!&T6a`T6wPr`9A2k^fJur1tnbd0g^Jt2uUES8PmgED&l%lod zPDK={<~$4;qP+vL|HR{{pGDmLY}HGx4+H~MXkiW zz3K49@!@1LuqYI$yj~FD)iSbgDoSZm6QXr=2dz!K1ieGxttDrn!t`)xgoy0VGu&5H zTaZ2S6fI)PZjEp-#d2}=mJA) zh{AuGGfJE>wu{G?>Hcu>cNAbq)}ftOKb4Ke)!?=Z?|!MX3&f3IyrH%WbW+nM9Mh&Lr}>8+?HZ#KU6nITx(GjbLYS5)e7B+(N%~Y4phjy zbnF$fj1U(jI@g~jL7fVsqfb%f0|?18*4E-B(Oj}4PjkK`CAAGTbQ%RM6=>*S@8!s)!GM-`LWX?wEgEtN+JZtP zHI*1zhN*JgtuMh*arn8rLoE<|3+2L}3=;}#tFKf-j9f0-CdGHBi*2MBQ$=YKbB4fO_BHT{iTtDZ zN_lDhbrnZ)6#tCN-+p>V)3}(StSb^`7ni-MAZID0EEj^j*vb>_wRc}CbUmpN`5=;( z+nIeZLnol@Bfa`Ph97(eL)b+>RHKfVd=uT|=BYRfExX#x-h2&ldH(8Fe>||WrT5tT z^g?(}xXfxEXZYdJ7kp3)^k$!()9SEo)G@ue1^JURt~2F9_tHkM-%J>XU28#uzr7#` z-Lq`x##<}0THt0|jmE{R+u3<(2I0WE-!QdJ+rOm!LjGbZq@>-&Nb4_$vuHZ2s4~s+ zy1mFIof>5mJs?0djv&3V;+yjwchHx9?JvC9^SOW()S|26ju$HXoH9qYY6s5*fS8Kc zjEQ4vDL9nrc>8%rh^Bh77^+1fO->^(oxd3oCmjtpD|GHB?~~k@!sGwx=m0xDGX-5K zfcRnk3c3+VV+l*~K05J0_-Bj|It=A!m_PWnb2SLDI#3x+J)Jir)nE7W+^faI8*r!h<;!zxQ)LFWm~Of-j`#tQ2V{6&=j zn}Q-_g1DCG6Y1=U*Jf9zhE~jJr&CFgn^{rk;=LL@jd&pk!X{~_Sn<_q7 z1Qxxf-HMiAQB@)$#V*7*l$bCx0y&0Ty?oK8cuJeIQIc!OtrdL1HK^KdP*w^tt$)m> zt9$zrvKbEzvf#bgXB6be>-&JgitqoK{Rd|FrW`s71b_m4Q6t<0R~ZK@5NO~lmi{Co zovrQ}K~;qs>>*FIj|WSYTn8uyu60s(?q`}i!xCPB$J#RdQF?9YV>>m+RZH$!jgK4N zrMuS$@Dp@hy+j1tK6rxy{8w+!F_|YPucs3bw9B;14K>`2r|14o+jw8Z7KM@x0 z0i8_HikoYerNI${=2oberVnLWG&haVP1sumn3_tjD`bwx=~-LAWoQ_OIb99+b}!)g zIwbLMh(wCam9b3sM2X+E;j8QCueIni@?NJqsZ1TA()v=1#1g0Y+iNWeCrH~8<%~aT z7QsLIHph|I*lK0SpUoms$9L6>m9Iw&H@d2VVux+0?#wrbs+;>-ym-e<$%>pSG=n94 zD?!C+gOGNzDrC@u6tGT2_^X#XhtEUt+P#mRo3A9mtB3k-RI#(&nx(Oh z?{G{}6(^LBHXB)VcU~Gqe%x}|GUVKmvSg!;Yd({3%A7zy*Ldf#J)>tiq{&}XQ~7%Z zPHq_RcrrFsff`)?{OkrWh9e;rz2 zf{%hSJy|8;n?lw8jMMb$!$z5!L7F!4G83u|WlUP=@%5g)2rxhfj*PxU8cd(kiH%Y{ zu#_xd6X>G85as>*qw*&YKuh``Qh~d0;P_v)>Zga#2Adk z8#+3goz?OimiiD`k9lUEw&s0BdrJzk!5(Pj4gyTC|6mF~ox3#FFk>{9T3HP?j>>xC zgr=~3bSxJdx15H9U13iVzo%3rCQu7ltOoB9d;DjgXC{R?tQ^XaxedGi zBSipZgYEC{bN$y~6J&@FW%qToU=S&Vy4VPH& z&%wm~zVjg6#JM46IaFWk4nmi9wB))1wLj@sW#U7MtaU<5F2_gW^%CDF@Vht}suii% zns+zQqVh1NB%K~Hj#3vszL3Jpf4jXv-B=*CXT7_;IOt#d?aecQ&9F)9f0vQ*z$@u? zu?65)c$4V?)3C5`X|Xi1)RcR%jz!Q1X9>Aq_>FJ z|M@)jUb;mRC1S*F%4T5ql4ME0VV=%LBQN}GQIU-RgWvPo(5ErnN7HR<8vyTm$rO6o z9YVmgmg;r6@uT#2b<<**Gt%8nI0 zm_P=oW7SWs1(WEo=k`~h*novWg{M?a2}u;H<};MmClQ402z(-e>%K_pNj2|@#bPla z0OG44KpxqNfow^3PLi?s1&GJQD9~VPI;edJ)c?^^6W8^CJd#tmWgRBxT{e=)*7PT2 zZ#&O0k$<}kyY$j&a83NyE{eiC>6J-M?9$+!tI;4Yt+jkdY>7Ry9u^Gwg(?z-OoL5h z=}@KkXxi>5`Dar|_fIAwBUa|6o^o3J(xfYF7TMPWE4{sumW=PiInDM2ui1Uj!YwVB z6pba6AvmPnl`aVk@qEAIOJ6ClSjAnP9|8O8s3U&Ew~|iE zjC2^B#zI1tp7Tu`k(KAJ%A5=bBKxRBy!FMRb|4l-gM!v)BOH54Uv5#B**X=Y%g}g= z!V|n^r<}+4*YQkG>o2}M1_RNUHl}cT=O~iFHnmZkDHhX5SNkD#`VPKwI4?_1{?tG` zId=H8tq$J;ou<0~?VbLmAN8@Y)YL{5;No(nn0!0V=&~M2k$j(&QbP*fw-*`Iw z;CqofU;fcuS_s`}X6Z z&iqT;w^FjV9tqX2Sg#dlM==G0CR`-7SR<4zcLMlscAnEW866reo8E|ZsLQa*l(I{e zT%IvUejFOU0T1o>Z^<^|pnOXI_ih{rnv7z#%@IuLsFOkYt_ygqdCk`@Dpx+g>8Aul zizWlDFu}tzZpEUbtC$6(Oq9S^$&3x>kEp|6!J6OQrH3ENHbyQ_)NBL6ASfr`sr6he zlJzr`I&_94 zN-O6-6F1A6o3W7sp>u1yeUMNZj0KY%1ts~PR(-ij%+O8h*p;I2e*L}nP~gqhr4z!F znWWDB(Rb@salmtr^6BHmHWI2q#Mw8@s6WzdM|K+Xdk-7wdb9U=hM8pj`NQvfzrWi6 z5B$DoHdTMu9jUMMWFZ0fTmOQL8f;7fHuw7$HleoecjlD$-OKucuJsO-gakMb?4CyM zg#Wt1kRxv4zL;Q!2Hl3Yd%VefQY}YX{N~TBkZ0R2XYDrg-gFZGk@bbH+1p9N*O!1J0Xv`XGUa6-px zZ-ATg39jQARQzO}Ce4#xiu*e{;Fw;D%DZk?)S-ckWk=BB zUk%bV4ETZht?^+f5L;#0rL_GhEL^6Sxk+$*M>n*-9IMpvYD$MRo97gk| z2On6Ct(^v9n5o=#O!n;sz+*AwCc9Huyl}mB7KeW75E!fziiZ`?_&r4AaEQ~})|d~_ z4=+*L{9>?86&>is)?;(a#eLC*O*3>){ z1uX117rDy?qGmM5FvL<-yZV5WRr5TAw*Y{NurOlC#_xh)G1yZ>yDz{p zYPmtJX2gsp-nL@ff^Gp41|@r&up_3jS-JhjPj=5wCI#2c3|Hbl9p1-Sv3QuV5?Zbw z$J|H>Ov>RlTJ4?W3I4(Ukh?`22Y1i@^S+%lybmOOGx1`|>tKfxxqJLg4UbO~8o_B3 zUilk4&69U{<%J8TVB#xJa&bYe9e{!pW+3&UFzn8=Vuf`Wi66h2-u2|_nCiXOZK#OM zVJRTHPf$}V91zF1A3G{=2z)cOmHEM33;6Im-MFdrDcSeG1B;7c0lHE_&^>x6>F7lJ z4EO$0JK@a3;Bqad^H-dQc#5top{b}8uFtwiYbQOOQ8Gcrh{M!pcDM=5dFYSJUYDJi3k54s%P_V-9_H%K8q|+$GB7k|f&iN9 z<^RFB3FX}2i*dso1$-eWTxcNRS>r~t2XDvz0j0W__fH6A-j($1R1niUQqt3|hHXhm*uG=63ymR zdxDbk{~8`V}8ZUt385 z=cD|9og!s9Veu*1gNk@CVv0=#aSHmK-F2khufhaIG^?*#H&~LKTs;qC)MOebkhG<$CK)nU*V8dKIT6LVo)&D_iH-#% zX@%({r>Up~qvkg*oqnH!p_~I(Nv@mU&E-=SzWo+FOcbH^GpT{g-JC9Hcm7eyq7QX3 z214KtUu_Mb4JUP^{C%D9q--jwX#Xx(czNhtfc;ILf%-^mZ+T{3*BcbMEiua8NU_WOzp&C&_(1C21lOdg?3bI>e< zHl9bq)Ls62(9r#G^J1UCs#ir-?!G%WWxN5aw61;b%y61hLizl!2w>rSYB7Xc;rh2f zKR|FLYA%19_w|`Eb*?oCTh}|`Ja){h_6I+Qj`KA=WNO{h-##$rQjDp#SnqRAV-|=- zi8BVmX0uDx;@eoUH~%Ob+U|D zr=JS67hR zSVx(3(sFS^F#3qdE8TthL>(szw?tayVJF+9U3uKu%oiSr)Y^OJY%dieelJw_ zYRi^rZays~S{vhbABo9EnGZ#Uq!?4NX)g+T05!yoFDbisGtl{ywNuWxdt6{$y|d~; z#Ie97o5mfIEu019kLm^`z4ci(F6(uaUuwZweR!)fsS>kp#o1J+|M{Sv;yMKHlir4e zXBPmVS{2N&Bd0x?<-M$UanFhv9dyLb$@QzE1$qc-4MUaiUIR%;NIO#YH&D9=8;Ja) zn|-&o@z2r2yD}Z9dWKgl~tW^=LK#S+Fv=#bDLH=Ftcxj76m+h0~tg z*k(gtT>&icy9YIo1a?V@FFXWaUXgUWPcK&*kHuxmF6O!PnLSf?(7aDGLXGf`kMytn zIs5{z@_YGK>=)61CwlqM80m`TcPlLpgyT5<#RJMJzHk+;ty#86BS!jbIr)BNQi($S z0jP9LO%9jFJGtLUTX=oCGoyol^daO`<})oavZ-}%)xy$aQpbIUNsEa%q5(JgwlLw) zeW;_iurX36b&KW-p?*yaXnIlo@*;TCTZ|Nt(Kj`C1OuVQQtI;w#NVzxD-Jw@o)Xm0 zpBez+2mF&tY0}2%K#?D-)MeQ3z&)q^iHtd#QjPc-PpwH~h zP-iJqF`X;_1*32|?ZZ6OvF6Wb*BuM7iVBMAhrlH(%n%Kt$pPZl|AxWuyOi{&hIln8 zMksWI{MPF%aGd3UP;z)-59*&Xr6}C2vsdXfaq{wM&bCP|igI2R**ms(O9qSMzrKoL z<|JlXhNXY|V66!XEPuOELB|beEXOcEFjTD37|~7Ty+eEWy`^+N9AKQFs3}KP(Tnr- z%(|zD$;iG9dH$8m;pd6prrKE{%|h%-7DeCXddB0~QyI@$}}?zsy_S9?8^TaF0nVNYf1Z@Wm1 zSzxu{^ETyPh=7wyb)^My_8FPSy`C)YFRkz=OIx=%G;b1?VmPyU0S5&ppLTj$O*_wJ zl>0Z8?eKQ{tcRc+z2Z^JEaA@5Tm;gK`dok3+L+V@HAv}3@>>ucS_{gHP-=kH!`%35 z!ca2y|27`66g9?yX4Y2=#0>cZ1}RtP*`H;i509JMh)y{evyE~uRz0oTA9_Cf6LGkg zrPoWIsb8FB`=|Pw8x#G5U-})C>F@G48MCbOuSDd{Uk;@fa1!D4@s8+5gCdND3P!K1 z#eBJW4cRGTjkU4CbhG`kf)0Nuw|0e45MeCh4?q$E5LwS=4j8@_CImH4TkJuWE=5d6%e zrKub13|=vLgD)vWDfN|8yJ#(v0x0?mcd`MGpo?9Sgu46MRY-z3Teh~Th$cnD#OLAi z^7lwqW5`Umn56zM31FC}7)PW3gU@|8;8{B$RtwKV#|7rszGn%J!h^S4#JyFB&8v(` zG$R4Q7joErFgX}EGt$Q`;C*A|oSxvvVJ*X~oG@y1y+Oq&CS@8kEGqu2y+*rBlB*%y zP;7V-cKkZUT)74if*E73-f36WuC)Fnd3ybw&cD5YT_O}DQ==Tw+FzhoBS6RndLGO7 za@_RxH7Womh1IVOanvewQEdX@NC`49n9f6rU#`M08wDh_tCTg>Z7*DWzqkOhj`GpTPcT#FGh=%S~^2 zF1oFT>gIM$auwm@7dOu7m!_+s&Kf94f5{|!Egyn#5DMUSe}r&ms)gQ1M_cyW=jctZ z2`%{kPRbAL#4Sik_yZC*zxMSwSR?j)>|*4?V;L_&0i?}aw6B!}FCDNW>MSmv$+Sx$ z_12XWgXsQ_Udy&=32`gn*!q#Z-KO~fC4Ju3a?YoZ;JxsZR{l0-BaxNCLa7DKJT2%6 zKReTw*rYK)=>oQwz;O&LQeyTsN#n$Dc;jjE&;oKJL&*R`-w~zp zEBA0IMQ_~rN^jZ)cD3>l(A>^5K4(nog+@7h5BUD-lR=IuFE#dLdSJk;%ZCg7y3J;ME=(AVL28?k%Vv_x^sdr5on~ zNL;)d9)kXBdGyqgV^AhM9P>0m7%1aqf%pIH?DY8TkR;>TpHUNWz+(ec0=PhLjLKjL zFmVoMWc(Hq4nSf|BOG>2fTsPQQuF^344)~wvi|)AhX26L2L3|rfL$%}o9Vw4x^t}i z6Td(H&yt6L2mYUrEB5{t)PNVv?%j|o8PNaudB3!ZADZ@wRPU_fA$cjbql)AN@_X_UbjrAvG$y!jgx0S z`JOKj9$&iK8gH%F_>y>oRPv(cZGO6Ay2{H{SZqv|kwL%h9Jz9JHe0)Ey{T`kVC*T? zm9ob>RsM7!4;A_?fO_q~lUf_eA{5DfA7ABc(*&efRRP!7tB1V*tdVfC*KOAInp&Df zZ)}{aYh%#u4A0BcbkouR>gAJ(N!>haJ9Lb#kG9cQp9CNBetpnH8@e1Autkxj89}z4 zUyy5Uw@%}hXBEjKrf5+mJ3Ti#IwEAX<}edp5T87>G|1f3e8cA&{IuHrn%!4RGg&Js zX%4onp)4lrE6T<6q17w}d~ zXug7QzZci+=(31R&c3a7{2ah6u7rd@0rv9R3jmn~IN2!zB|Ob6)|=ED@&?u8YWODm zEC3Mk(UXHQpESLA02RPt_RQhD+{D%Sqp4pFnmDIm9lG00t1=*kb!V9$pDFQBYA*qI z1x$fy2*NoDRgb6EX}|{N=9XW@0X@LNL)7LxS@CKF$_`bP(qP+_bqRb;<|JZHSG?PI z!mhF822z?eN}nYYFc~tr3ogz2)tovBo~+j@s!}hlSXO0g^x!LYDt+NI8R!}H`yFu+ zc@d~~%6Qpi!uPOdx@=-n8>-`tH@co`xN!hETOUla_*hsb8lLoBKfno|fI-`MEQ`f; z>xInqxMkurT*P1)rfy`s_qr3)f%>C~55J45qHkt}>4>gL&fFaSL-CU}8AwuW6!i3; zxy9O&Vd8U1g8&>LTAoU?QJgI$^`|6vH<`>>F5W-VvINavo_P(={qROplMF>h&sjY$%QhXSPBN{9k&ZsCozmKE zFtNiNWE!)a4nHvE7r(L8_7}Cq+&QY@zJgm=SQxWzd>Z_t#ks*97?~vReq%RIa+3AL zVn(Y4vSmJzf0zS8f4b9-GwK2CUx3}!c%y$f^n>%V^=rVjI=%$@WMLuYo_=MJMxvml zh0e>P_1xW$|Bt}ew?9xT@P=d?nW>vSpH$aW*NqTRH0{Jl8`!;ndk*4Ebz&Bm4rvCi-_2_K*I|k@J z8R<%)1&+@2Du#%jbn=xoK7uAHW%izxEz;?Zzl+(g%{dx>&t2ftGQBRWeBMuepHj-H z2ub%IXNgt=S*+%YsIE2T$$)V+n6Q81T0^pAotSMThv~?3y`{|((dqXsr9Uh+HsOGK zNEFJ~`sE8GrD|oCVdUTiI7~U>b5tQy9uZEs_yHz(N;WJM$9;Obyo*aUeiK`K*2K@& zIR8FCHL8X!h1ltXMqenI;lHt{PMU9rN)&Y$O@OpckrtUg^(yvvKQXqGQq*0q0;Gy} zfG2%u9_nv^p1pMYwA~R0Hm^qEvS;MFs4kABW^>(i*b9a?##);OQ4N7NG4%2!|Lfu3~Jg-JQpMPme5i0t6( z3^vkPyI(9cn&6m&!V_%La7!%VN z#M~8Z>g-89LesJIBU*83mf?GZxg{N9vP{ojX_$7^w(0E53IE&NhaW$e{``T>B|kcw zn3~HZd>Qu4Z>QtI1CTNhtNNpJ@CB4D_XZ&qdsPB27;9Dokl-oQp^$^d0W0)KXnKpE zxIurK^n!}fNuj!@zUITw4yTfyrOw)J_llv=!R5%C)z2-u9Tfad1PM&dC#ECI=lBSl zo`x9?=#}(Z^48Xqci#*snrrErgO-Gb(u5>w#Z;*&a-^7H0{c=aR)jX&S4))(gOYti zWovJYYIlxCE9ipAd_1%-1NshN@&>1Cwb|E9C6bzzEo1V8mq8Jh46hd4E^%Go>+iXF zg|Sw<_EO*kuH}JZ9G=W1@N9TDQ8DlxK2%NAeeXcwQv!Sj5~hZ$2t z!p~YdjIMf-aW|{cy%!8xs>z~nd;7SJq}qBZsN}Ii_C1v=JRqHa2F4u4nPoiy)yp}C zg6SC74f=Ays(O(+i%)M@(EPyrxK+h9FV~AvKpa<)GHKrx1kAUz=+Xz03_!cxE7xmj zk?HDIIK9b=+-msUjb=C+2t|w2R8iq#oxLFznVIOOl@iM6AoWyA8u8IXlHAeUU70Te z#~$KZ1jL+Paw;K=)HUj?R7X9z#8tJ|6}`bUHWlwrV?YyM8kSluFK2L~dCb^8ggUmX zGAq5~7erOo`6QX&u)S(_viHG=G zbM;fw(saWy-%W{VWDays=R!7wNop@$z7T8=EsP0yL2gt-0t0E?X`{El_Nqrd;0%YG z#Mhkx@fq$0&(>OhUOn4s2QHz%QMKw$SvF1Y$=Nd~K>i--%4y6?^|-^_LGF8*MK#&< zFFr;AwL$hZDl@ci&-P9;;o8IC5&TVM{EmuKnMN<(LwA`y2#^ZS9ilf^(=n4U7VbSpe3gp<^7|0STFLL@k`cYbcj%Ef}R5Yz{bVHTRd-iN= zD_Y0CX-gVYwE2Xb8}&G!i6&n4Lpq0lPQ@`8a%BSI+1Fs>xarl#x(?3M8i8%&FBOU! zFL|E}54N#qTZX5GH+SO^$jWA9iP26`okxQl1dg3O`7NGfFK05HmzI`(YjlYF#}4~B zXHJ2fDn5$QumTgF5hlgJyhb-$Od;N2JIt?_@_`~u&p)7@ERiHWt!{It`X!t;9G&NS z`jjTG^CY^Uf=^ISw@6BMAwj_`7R(NEEoF*~KPoA)I!!gcv2%7bn<5BWccz-oBoL05 z>GAVe7xf&H+NVED!^D9-JHZCko5C?nH8=(qk5ZdDrLpvuzPOFtUk=N-6N~6Zi(0=O zbj~756$~72*HgKCI$$Xj8e58&CIL`kmC~Te+?8UU*YT;;`SuNGXIQXYPFu3?dY=%F z_lT0Mw{p&^kW*m|2guj^@}yXTGlmYi!z~+~8k|T>o>hKy3UGWk z^SD)o>+PSl^N8M+sgymQ0#MeM?+3*haf${8ukrP)q+UJ1Z0#eDY;A;d=xSbAWk&fbFNRzc`1jnXhT ze>W4|$b}QUP<{iv7*xqxg4wy3;p!=5;ER=*RBJ$ithoJ>$z6$nMlew_PFQSmy`)Mh zUbg?X*JNXMhk5E0f4}aBM)OqhV15&UG)-=$`bVab+B5gKVX@fkwbt2|`$p!G5UJ8n25O)EWD^5(o1%dchevKhxYXv{rZ4U+Ix z*ZfZN&dV&|$fK(;-lUw4oloU*@cTcrZiqBK5u2Xs0H}t5r{G5C??Bogd}9a)>;4%{=ccr*m+l#n;R<_B0~(fQB9c~0noKu zg88jS+^qC{*zY?`sKixY2Foi!+vUodIf+>?;K3~RTgFg+E$$ZY^+n@AA5d1 zS3nw%1J*4KPr5NuF8Puw>M-__5r7@r;p=e2REMzBcO1Mc6zdqxyQLOD+i=w)wnm-@ zlF5!&MPH^{NCThWX~>_mC@W-S=R8LXykN7_(9oS zR!A*PXt?rAtyHYm_flwbMCEiv`HhY1B)i~XYZsuf<_y!`xM7Y5|-VWv{;e0bBx?bCC?hzA<=JG|6Pt%bG~ zxjdRapLh?|&No_B{Ok+)rxRe#_bM>**Qail}Vss`pM8u6+QJlRS&F0LpsNd^LD@}L>mcy51*n~bPZ zB>h6lLY0+MnKcChLx7aCG}J+LIETs);@Ic&k9! z{t>Yn{YB4XTak%b62gI10DMHCB^ z?)OPz>WG(H@9Vb#@omgdWY)0slHrMO4$^BBcod3f0OR8nnizhcsG}W>jYv6dEZ!o- z?4zl9%8l+lGG31$ATbvx{(N%tdat!{R2^*j?NA4TmO9TZ8il%H zB?;NnvKmEJyS4`Iuz3N0u*Kta5-xGizJ%@#5yo!uxoAPpL;eMsRZ^L7(g{1}JGnr{ z-ceGwoy4HuNKlE&(#<7|%u3hQ<7k}n$!Pe>FtnkOcI}WP-qG$jz*FbgVuZI*_oVmKMV8wm*s)7VR8Pl=Y-t$8f(WkN_l( zy8IRAjmIm9EdC2oF52lqu5n9vuBM%VA{`w?Ep5w;wuiXBzNZZ9tjg}IfiZiQzc%F| zklkA;q4^PWGz)eieM-c9Gl4CqGGr>sU7brswOU0x_r=EZEr%LM_LRBppzF;vHg4pt z7gLdj%NO%FajAEKol9i6{6B_LGX&o5j9!r6Y?>s#wE7UY?&V+op##mMitF67Iq&HaL9-{=CJNKsi$&nP zXm)01W+2BIFQ;1YdRkA84ncEcQ16{(t8X>iedj6sGKP}{o=Y=~%nH%o4g0kIX}ctoKzy{H`tqXD~Oc_ZdenvF*wl>An6K$loPKo*(Bx zt|Q+tqSaq5O-Kmt5Oc!CDJo3OJhD#IL4kzdkoQv%w;H#WR4f_ ze@U;%sg)xsEPGjYbh2*MLIN!?DUi(yr*kKEsT3&tyyJ$V!)xFoz3%Stu`tZGbInsC zkRGe=uxdB7YgSRGz~=QvpLNFqS?04u>1EV)D*uy41>|A8IK4;1GHW=yg))_9mMtn6 z_G`jAXSZ*gM|}p>w<*Y4^{(vFF6t~ceV*xRXZz0h7h=cns!3B*^Xl|?Me3B_#{0uf zL61;oMhZ=wBoT`(4K`o&2l_g)$@IIEqL?v5@Eub|;DzrLJ`0QOM2T9&jem}aXuRfO zLUwfK_gEH^^O>gCm*}r)H|=@PpXm~Uf3fdnn~&;q(Cqd^VI1~k5)}O!W)80D_&kcL z>gMS%r*Ebb>Qyi4tf8peoMbS;d;Sp?$%oSpiIM5oAT;}>;98mQdm`_E4c^kz)7#(J z$kXc~dyT~H_jK4unk00cScKn4#~{Z5rK*9zKry@k=zpC*8ckQ#viFJ59q(&4KULp@ z_jr3=+tRxW9sd!Oo?>ayxjgK?Q~6f!kM!@5Au-dufJVw*pcPK8Uh61TZOb1R6fcl!MZhKEK_Dk!PAtb0T<_n zS&x&Hqw$cB^ahY6rQu7zir9%?T^70i8eg4ud#pxZf#V3@JN?|7ScDPeFKvE<7;MME zB(WF2v2f2BDWq42hIC!`)2QIV5Xh&cB>E4st9f;EWF3Jpk@2=HnGmv8Ntys99idf! z*xI$&+uOQ#Wuk|is}8fT|y37 zT(N9Y^hvFqQ&}of530Z%bF0T^XZTA8m(eU}9>|RC2OE)=&_XX_9adk7oP2qlSnMIo z?apCke@LntMj>`=03{i;D?RPJGyGu97A~61w2~Sf>zb(xRToJ%fO@d7%I!?-!=)kG zAJ(Io$Ky=L^8+a6vhj|7UCOAp7{3!LvkS+dO~+Ppy9d|*ZAAgP6(qxGI+#6b_(mz) zWpTJp&8k0KGHsVn)1Fe2ZN~i**TRd?nrWAJU-~#sj}>wsMWJu6_S(}JGcefD_|1R( z+WG~UGQuA`Pj0UwBtHcHN>jB(`tJ#J5pT^*ADB18PyB?FLd?*$JC~~f*GmHSX_f6S z&-I?TV!{hP4}V)kS99Km%+IPY4Ajd1Vp$bn@4Hd{v5DWWTViU69WZrF+GN=6K4u(c zR&075^Fc+)vsw1;hP^*&U4^covp?LMXTs&ZX{(XJwp#?Jj1AGQY+>}IZ%%&+zWdJ8 zazu5I@as=Q%zTzVjkC;^8R_lvn1(#|>gmjW)CTBiZ6IW=W7l@3)1ihP?E$dsqXqLM zk(;I_w9$lCA--@|q4cE~#awoywv;@Y&FPXnT@%iLH{Ync%#90WI_JI_zwG(31Wl#)qM)Gp zy6K=uSmBzRn?`YMkjCXmT*aN*@%yGJA-ME$@q;8G#bba3z>-mBp zmt|q37?wufacA>*+~^lr;zRsZ`qVG3+S9rFD(>+M`>(_-SD7DZF8aoI2WB>!Z#1ji zTz5#FUk!voo6G*32`mOXx01+O7&VA5_$wAsx96Viv5V3c)?g=LFq0B;*QMKDDHzY? zi^+O+X$s}Q&%u&7JXp_>&!TM0H0f<-?U)5OR#3$}Ev%fXs5V;7+Q)4pqpOJid`#JV zc$Tr#q~)_Pc>}5BgvY~71m@dG zg~!{UZEWTL)0sYk0^R28z@d*O1FKRl&KhaeFIkMO27bEf9b;A7Et6+6Ei+a|(=WeF zOsV0p*De0_+6@NiC`l;WeUON%C<+=&R)h+pkKFTgQl6QgtyG@FGczyXQ%iof)7n`F z-$A@u`AeSX{roNkD^7S?JY1H5V8^P>;qr%}1fk$!qskxFUlL`S_#Tyay1c!C9~hoV z1AhU`7BG>?nr0H){{>ZKHu@?K{%SBUo3zRD2Q*MHlm|U2XMrQdf^~0joAI+u!9$ui zA0tr~P@f>2X)9BG^nNzRf&s^8j!IwQ&ZuXGSS(IWNwZnQ`MwrW$GFAD8XA^Ubw~CF zgfCD&xaH;`gW}(wdFied3MhB$0?8bGNNd)+ z_&I(2$JP4FsuiK+6#*?(z7Ji7XKWROn=yK&RXA4410y`X@V&Y1i4E-0*m<{Mza@$I zo$zV=N3<8Kps`-G^wLp~=tniBM%^T8WDQXcVF}N-xP7^;oxW@v9BlQiXy=yHRwreT zE_SSWM>qpLi8XwUs++B7?IXA7)+Vp>F?dORR== zNI;BeKtZ*jXYd#{Cuh|4eRD6iMFK(5Xw)5n$5r7Gcs5n|zGKgqO7m) z;up-1wfWJClVl#2a$Yg9JIXfd(y@FaASVOoH-qn$`67oshK~CPYDM*_sTm=H*LgSn z=bWJn^;gG#VpvW|W(A8gDx&4MsPH8x&R&0LfqMI2ZuKoDpL@i28-44L=&VPkDs;uZ2a3aNB0q^BdEnLosI$DJ_PBX+O{${75A{Jw453le#+e%DWc2TUkN0a!HdF5i*gSXRw#hk1)~8b|zYL953RY>D|Awh0s^*`(Ylk^w}O0}NJ|E8#9+ zRnO0bzv6CobvdP^EvOt@UMW3dmd@N2PkRw4O(7#W()d4&s!TQYE^STW|4e}T9)g!W z{*HR$KlcT<1XLPdeVnEmDjk@KX5^RiG}{jHq26ZHV3NGokG%Hx2iVQRN*lCHK(O6!op3QZbM0K&3y@M@{cJGWn`Q9q>Ao-@@-*bk<(IS zL$<)*Cd!f-K54!8mVnxP(Qy|xH`g;+4O897?Sefz3p}-gFKVLqJonbfJ zL`g!Y8Qi*T$+ue^+)%HH2j8dvm`s%ZW`A66V!xy`GAi|nv$I-5iKBDvsl6{r ze4d)%L-(Vt>GYd7qF>3ls(?-ZDKP0KP1BtqaCLL5shNv49$RRV`16f3&1p)6U#BG4 z?Eo@uAl3WC?zobf-I3vDUVYH2LBq<%#{T?UPXER-qIb(us<#VPi@f66kRv@MxoP%% zV>696^VeGU&2N2O>|=bN;7o)ugJu$uCH<`J@sl6zvo3Q$1NI0qJ#Q-2n_OIs{v>55 zWWIXW1c+9i9nZm?ASF#J9)iRI7NXAq`&KJ*kJ$$a%@@ z4niKMSiy}+WH|lNzSTOgf2jAIR z413+^P>b&(W{1c7Lnmj!ZGaWz0_))TjO5E#GJ)$8tU3)(|5kzfc`7=}ir~7@Xl~^Gcda>VhjNyyWus3AFYpO)=B)%!*?oNjwE3K)Tdj$Y z?=KG&ZJj}myYE+ge9aCGXAsC##F>+w&>ku2&WjoE*%D^nOzV=OMz0dY$PX_(+IsAc z<}6Qy^<*uv;FQ96v$dVB5>9Pf17`#;Ry3$cUGgVDTh6N~>0H zy7zoIbZ?MVF};;50s<{Lpu5E%`ww=XJphC$TrZ_4PR|M7-o}yj+=e^XC;H9k6elNZ z0YhOa`&BC|xh|v17x}JBdi?)ivWlQ_Kvpqw*0W1|itb=TCerX}%rVHiXeg`Rw>uuQ zquXk3CT0pZlzX;jdwL1x3rBU_IpXeYE@c;dab;s6bVRfzvue5{X)S&{Kj|%wx z^vl|4j$A4Pu!y}}c9n|n^Ii3^+E}5H)?f3<>;99AeNF>u&5GZT~&{83Q@Tzwanw4!8y&>sbKpizM=Z+?!{MHrE86{ zxUJGSfBuF|4`{yZEjAL&mLIHIm5pq$}#KSdUkAU~MeB#pslO%#~wLER>@R zW1imVer<^Yc(KX^(_MpULRxl{Qsum>fPOhx%^t$kOaATI4$YD4Tniv3B`yWrs<<_9 z=Up`>FDBCk<)DI(29tJg=#<{|;;%X)_<)c80H(snRv%rl7|r zTFdlyG(a$|IdnLCeqtpSM}ldag4uW}BhT*`&Cy?PvWp*I;^qB#yls%NbZC($^J_1X zvdj3du0Z2=3$NZ6SCCtuwN|JVAy;B`Z!ixdHimKH!CdKf*6RmtMkCXwzKE`h9 z52*Lq-L%Lpxgd`K4N3C%afbe$ zpQdhE)LCwGsC8>DLHdf)|lW+9|=;aKW`oyb8 z@+GzGm| zb>BBhOb~1&ZLlxYS;%a+qb{NHCfNe_bpPqCIh+Y$`ML%ss`Z6ObXh|S4;xzRo2KRp z?P-)>^zE9?95+{As9_GXFQmCtF`h2m05#4Bgfrq9BTbZtuJ6+-l&Xc(HEOPyk0k*!qly8W9Z|P?8_+RbI2fxpWF*(Dc zc3iN2O*0A6l?e5g4;wOXUtXPj3eE(twv_Gg84@u>g z8KQ7J>)7(KJbRm$VX1YE!9&q0OCMWh6eU1a#4)czmt}e}_(L&ZiL*o!_oMU=JUm3R zC_?mF?8o_Nj)s!?d0tt$bjtd^W)w73@Q=`R(+sh#JB~oeqMTkd%hJu4)RvBsRLTHe zLHaL-jc;8|<@emq=xB@|6%F9qPSZhh_g#9y1AxBZV_|Y#I@@Ay-=5@#mGr$LsllPB zfg>esmCUP20R$gPG5Dfy{6r8RKrAbGx7^SwX^>>Ez-L`MwcuaVmJUdkex=M@OVxy~ zwg-jKnQ6;oK9&i|Im(>4=-GM*fzvW$F-V_eX|+Yh2jZDM+m6s&px>uFPa91==XwJ% zv5S12#$ye2iHp;Fzi--7(;Vp0Oy`NG7tNIZ4)Kznpuc*$NFk1?j53tGB;7vlOgP(b zdrXI=C}1q*Xg1Z2p#s?tqV)N2KcS{*fnW55+$6hv=PCTZSbOWJxVq(Su!$#xV8JaR z!QCB_U_m=*(`ayacM<{#9^4_gG!BhhaCf)HthpRH%t zu6pXJs;ROT`b74vGFXyjO@Dc%agF)H$dvPoYcC;6CIwT+onQFIj{}u}dL>=Iy85H4 z;_Co<1bM^`75uChC#8}J8io8l zUo8&;UOG){kKHLc9F{}y%NsoG3=Nq{!^pL8;&IJ2p#eOg6gtJ<1(mfO^{1R)J^=px z*g-;UCHKZTk7yQ5k=hUSTT>+7VzST$e5axqRSl0;s-S?k!?-HD?@TWAR@PsK8y!li znO?jVWg!xlXj31#>sO+C7*>4S%P%y?gzMlP# zOqGA7-EK2+!ti8G{io)R0WV$;U(UIYVhsNZSI%2B!;R_E_fXQ;0voT1tg7!Af^gtm zh&;Gji+>@JPDUUp-MqX{B}Uf^tTrWzC81{t4pfvi~E=8}boq-n_bl|sJUxfhMtbSk@4zl#TggbJrtfk{I*)7t|%M)1<&25)QAO8l zQ9z71Rmm(oE{fTx)R>3apS_f*I~?!vgmvhJSd=@xUI!61d}9kf16#8rV^sa>8rLPp zAkx^~ODH`|EVT-yZ zRDYmjxuhW9-R4fVWc}JED6BcLQxtBf|9v@iOjBQD(GZ8AOhBK(I0C^apX6BOg_!{> z^y?&fl}ho4$=!HqZGDB)tZaI`d%A4(ru8*f_v&|b&CY>AS7SBuae#`^Arjv_VCIr< zt*@N&A1q)ij21A<-Nsg5#z+aPzTY=blV&KJi=y*hqg~}js9cbjdNes?&5oC>8QZCG z%jWqWCXUtXsudV}p;QpT_|nBhTH!$QgDD7W@>B6-%NWlvTvk1&KQUV7F>|k69RB92 z-+DnbsB->rn<)|x`Vl*Iw%*>fhrf#`P*Ew|V&1tH?Oqo3H=f6!cvqINOojv$n!~VP z4hlpv$=v=xNCDiocW>uR+--)HzxX{m3rSHxu8^Kx6yanKNrYVr?z#{$v&htDL{snD zkDZjIV`4w_$DpA^K?;XZpV3^A!XL&@rp^%4|0FojhtfqD*Dv-e1yeJ=^;*%Reb)#R zPN(oSC`0#bg5pmTJKC-$t7i>=#A`RiH!pQB0MbT9$(v^f5S$izzov+!zPyzhFP~!? zq-Dl4+@=piuKIDo6Z{wcP;EvI-L1Y%d-FdP~jh2yPrH4pdkL)y0jch zk*bRwe{DwYN@4Bh(}?@%j?mN=(WVra zEYvkpoikXTp%vWNlc-Qn21IwPQc>@l#|*7lU*yW?=UkFQN?0Sn1Z~CeUr$8a2!!%s zB|Lu!Lzz8W2&pOcB#qaSb5Ym^6G^A)MVY9#`t@y_5mKU@RaQZW4A~z>P$Ey?aB2*8 z0gmKKT~oml1;qKyRtJTS1O@Q~HO97W>t=m~dl(HfE}-WXq)RZDi)ahOFn)$XzP$OX zwfavar^=aK*T2XeGitn>EKlbyPk@w1n^a^>OyeS{R{Be6x(aLUmGTy|h2F24!`lkd z1ok9i#h?B*`VJ&ayNnPJro9%^O?7zMWcqyZ<-da@&CZzNzqrvrZUn+V_k}7?>L1s! z?Mq@bA2uemBi_yYa1ZtM`Uzx}0Fi#!wlb69;V8iz29Fd_aQSQ=47yi2>Dy8J2)FEM znfac1$^e1`mTx4ir!VD@_ZWCaMF^=F^zxtdMIg}Bch1slgBaeB zI}bn2Z@H%}m*!%VPFjXsV8pml;fL4)i+frJs97AyvXFzbd-r##q-p0gEVB|*b?SBI zJO(AT=BSvnsG7@JEyk}mqwj0?_VDi?043q=S^RyDaS~6ib@ow8hDzbtG-7zx*^qwi zx2xzadsuDW?j~a9c)yk0@?Sle0zJ?;WF3BZK75RZ8DPx#^jt4ytat3FeO~m|mKGh` z-0RjXBTcY3$m)!*_F(%dm9RPHQ(-YnZ*DiQw zrUawDw`BtwnIB+HYwm}a;L{HaFhwH2iVVqxS63pDOlBrtZ{An#&~108RCuyhp*~#x zMkvB{(IMNT8xzq)uZF_f7t+^L!iOylJ(vPzDI&Nq_jT{*XQRHUh%TR%xz|n?Et2Z) ze!0hry(RULxS=bB{FR&7p7HFlHJxR`KCWa?M!ujXrbmsbRgkgcOZ zyAQNaJfv$nQK~0QYQ<@sOuxH|E0YT;(?`tn+(C@e1 ziNw!QpMAz@rJ|;OFNXDnu7JB)9s93Yte%P@`n4ww3FBZ=dz?>&c<5j)34z0SjUzN4hx zBtGMTia(irM%!+=!W^$YGF!axc{iB7l*gdIg~gdMiHf6?DU>%5_q4E+0F@ADe%dTVlk^ zG+NPglYQ%LF2@7kuA6>toy(*SoIf8QoCtpEeY+FBu#WDoc$dcfzWx@veT*(L8qfyg zO=ri&@)POYybuYKK0-KRhVHB@85A+#Rr$3yaG*mSRkLjt^2GX5Fz6NChuU( z3sCdok~1Mt<_e$UQ4-Yy5Ua~M8PJ7qI}*(pdF9=x2w?!eE%jv8PJ946Aeco6?y_((w@Rxua1h_AyrKIL#K#_t?2LC?5#vBP%@ z3-@9-Y=FM8mbRq6i|afXsGP_yVI5!vy_xC?ibWAD+@MHb0b`*Q6p||0RBE1{U=)i5 z`i?Ius+=%73$o`0qT+H74&MJwXFxSK$tIov;qtBu|S08dAbOiaqO^~ifR%+yD$1I2&;P4uy-tcQZ*XS(UC|z)dm>W z8`_h*_a9$`$kk@Ur{7$5ndBBX(3@5ZcAJ>*_G&?ajiwc5<5Q$?Y%I$Zd5VMg6QIC; z@9{}`zp206Dt6a}K1%=_=%Avec_o8QnVFH%P~ISSYt5;R4FZW|jQaWil>8ws)^oSk zyWZj7aY@XEbw5k2p?ZgiA%u^TezoT4m7=p+E@v%={DJsakdv)1a{$r4{AiJ#V7eGp@2Xl335#o1oCHn^%U5i@92Z~uLP+0 z-{`H&<9kdS_y@zk3x{Zb{8zN%|2!-Ihr{t-n+QZh=M`;jd3Q35jRJNDI}H=#UDRXH z*Uxn$)6)wJBMTEF3o|1#GX^_5uO9~5V}b}jXkQMK$EB`Uw;6akX#Ty~6)6PoeoUwhjM@yW?# zC$ag!Y4C{;2F=c>uZp@8#j-MTF(2018)|83rBm>pfk4&=BVm>D$G*&*j7;_xk!cHG zbncf!GtwAcF66`%y5dmVsI$L5_YmZv|G}$5-21`6@83h=L^TA1kcz6R7eMn16;*KU z>qul`=%X~(eFy2q+%ki${?EP6_W|XBMlbi)8y+b@0CvXL} zL;fmjgBGBjmy}@d3d<9!#WAG*CqRsR5c%;#OroP28gsvv1}WDjv)eMwM0sIbn-)MN zYmn#o@Gv~IAu{QDU{iIo(Ysl3Fo zkr3M!5I7$OULQ{ymKaH~&3VSY``($uynx=b=8a8E;)Y$sfewzN1!JE%*4;h-AMLLI ze+Qao_`gK&e|eq!iXRL}I%Um8>biNIg2!bh_=t*fs|DRZ{zR?b<|3GaLL5np+z-K0 zO3O*nlLdk9`^>w0tcClsJoVWa4slWWhvhTwu|(rJm7_b1a~`HA!o!x;<*s~oY-C4s zaIocV{q}PF!U+DjU~SrAR-O7QbX(*)ETxvNul*^HH$QR%Z+_B}XK6O{eJFlM2x;uH>eg$W5YJ0AWkyy5qPq6Q7uDvI3 ztTRjGi{f$oK?;fG?lU?pYmM6M8glJ$lC~`c@4g`Lq?#-|@{8(xh%D`CprVKqj~E4) z25?{HH|aQ>Wo@6hPa=+Tay1?ULhjfBi$G5c30(tEl~}9|7QP#6RTW2?%Ln$n`!%{^ zdZzc#@z0iSXstk5zvL9}4cQsG&M?Bh?c@RnG z&QL5MU(BTZuzYxOwu2k>J)S*A)J#D;EJ^4F1?}YX11lSiO`BjGC|{}XMJut!PU4Ho zSTEG_eH0=zu^+~NW6=}VIv*FCOrE1(kgs&x_6i;EOfobCH^g7w@~~nBs&AUOvL-wE zRNPT_mGR~2&kwF?!8{&#h0)`0#EZRkZ z!>_8=srDNWgotukX1>*>)_VUH0eu~+5&mTkFynO%bML`3+GSo8WI^n)(gfD znCs-T{Pdg8&*o%_spQT-%;BDBKXMu!YZ;zO#6kV!ix015wexEeT3+oB6-uRB39K$D z4YfAKPT+NKD=iBBXN4k4b89~j6gwm+hWmH)Z|INd^JyDQ9+<(5w@aH5IZ!A>@c`mx3!Gv#In-4IVB9T^$x<|iMNMvlL?nc58g ziyZ3K#dvv3>AC?7`5+HT%mYKa-h9~rXdB#hE5Gd33)Nj^rwg!mr0 zlvETnd9k|iZ9QBo8(AJhR~MH-hdZk_b2{UC5?C(!0UhM^_X=%8cUN*~Zel>QYV>0N zd|HH$6jM_*Pet^NtLuo}Zhuspk{(29kd2w%eTr8pC+iXXm-yMT!wErC(UA?y5z2=D zYV4WPkE~at!spTazKSk8tQ*KB_+w`CgW6n0*z-XiN0K4Wgl*EgNdqTqjN|&xLX&-L zU=eN|LPmJDTpvul@PUEZyjd!Oyo6<@UGW5!hsgq~()bGc@W<8@%Q;t(p)a7Vq;#5@ zxIXTO^(J0=^xD8fiZ)&=1J_CRPPD$X{Nz5mJE>7;G#2ac_W{ z8xD&I)+;#8e2ce_!1#CoI`l@%XIO54y+9UC3^_A^9S(;L<1MTj~8KhjEaKYNODAyJD}Iw z-$~9=vKfvoI?4h%CJ6M*>_3Lef7QkQhw1ZQ?%)5jMwtA}qnKQH-e%81bT~0A(C2Wo zQU6u)%%y!hzVsrACpgAC+KbklPwTtA9Pot`5l943|xdD4vA27b$LfC~Pm z-mV#-s3M*AzBRwk=#M>GE-cnrx_)$E4j5zz-m~OOp2KZqpRaaOM4?bXD(md==)vZW zCRYg^gNNp$ce^u*Yj3KMO-&YGZYL&FUf=d!XK|9cI(b~@*4KGEpcov_omJ`p73$XN zFGY|%PhT(2LZ+5zRYU$O77iVFF^h-Y*!j6FX5%IA291x-(MOVjalb74&aP)1?#nQC zf9wf#g%;`;$u98I*`-M|HN>=sK|kzlqk;Z`xZE1aOyqc^WFcV0Kl%>AEKW-KBg`;Q z;SJk5KiO=2D1!5_%MOD~7~(nLLEnDyd~woa*#BtN*^C?fJ_mNuAUPVbb{C5r|7P}@ zo<%h)ht`|f`{LVHRcqseV0cO)e7#U~V5mhotZ8Wu%~Ekf{T5|=F0RXS&%&Qrk9K2p=>Ev|IJk0oT^?n#pJKd}?PV+uo2inrxgO)DnA>VsHXbcy zjDV?Zc&IQy{Q6H+%GS+$M>XKaIj|XrZ`15a+;|`mh0A7t9sJ7>^~~#@#|S>>rX>_- z^ToHmb=tXIH4#YNpQN~|5jT$t2JhyR6T{d}NeInbqnOs4pqbZhN!DQ-Pv%t!gjO@K{3uvpanV>u7N01L<^ciY;DN?C9+Vx~65%&*PYGp~ zRX7iT1vNf_78WD5%@F5{$_*%pY2VGzE^ZV>XF?Cpt&;*#F82!OIIjxKDuG2xTewo# zYs}?hN-Mu!wlC56tS(Pwjw0ImjD-844&R@fY!5gjfSW1u(yW+0`P>*ix*CYV=3?tN zobxRTCC#>7YafQJn~ET_-)2luD2R;3O*drjkT*DbTraSnGmfR zDBo*)*Wqy7X$p8nODX$d-kq zfV(Zd!fO#z`^F_3>Gg?=ZW7GwL~wJ3pHx#*r&A(1^IO2c>$g;JQc-2_juO(Wb5V6e zDcE=N1weFiRLWGIsuvZ-mnDy6&{UZ8E5C#27Xq2V>!ce9sl8LE&4n=IS;o3ydeTBK zMx#Y$x70S4zr%6gjeb)987FW{RGnhPLNN=weNe>A2!F|;!p&Vsn#KG(hRDg7|5c6Q zQC*D6#zMYRP_K&RC8N65yY0~jAdl9$q#R@J95kV14mEXTQsp3}lW}cd{`jc{>jrDx zNy@g1O_gRs)t0Wp@j_&}p##tQ>`~3P_#m*Eux?3q5QX=bym$+Kt`YT@@%9l#gF%gM zgAT(ru}XE{1Vj!UfTQ9Yw%2NUnf3YerB38n+(BK_^Iov_Y1>_vw*U3^4-|vZt?8y; zWN6o_HSAR1ve9NuPqDJ8BxcV>vt+BStKU59VZX;SB3@wZ>-kQSm@su}mqI8ss}bvF z_#vo%Z#~923%Gzqo z_0UkPV)+sJ!!u%1{NgK~lg{Be`eu)kQswVlLeytl0}Sgh^OzU(G1@hjVNbJDS&!Jy zQdJM9)OS~hJvrPgTTP$W^m94MA}2l~AdY8JC)N2n4I+ctcA=v(`2b=^dsN6yIN1W8m=K70f<^i532iI+*RF4)h8ej1CJBq&s zqL(Zi`~Bg2xrU1*n76}~IO}{$O4c$ezsWaHi~LOSF+z~7-i^bCY@?W?C+W`Yoq6%w zFq0EeMu;MupX7*)Uy7%Fc0${1z7n~2Ci`vA!|_6A!2aEE{(Brt{EXw@M-&sc1!hl~ zfywsp{dI$>fP8eILeohZ<)rILq<@&)_>4=6BTWr!nJxCRoKEhHg)z5k+)pLF_08V$ zA#SlQIfcjj`%nv(GcB<0i4_*^ ztnEAT11GpWXD=6P@%$=aXc&4mZ_-+G_lv5&YX8;3M{iZQ5Dx^NclH$kV&%8KX3v&( zyN%C&gFTGrvQY`u3so_5p1-kn5{;4;dbI&!j_tqoDSA(H<@IaFvC%4tBwQjbiMf|CL^U~}heemwPdAL=&G z#~1b-eGT~)Og)E>!T`+AOHWK)RlHluS=w%I7~*AP^|kSDV!09l=v&(jg=J7%l!9=t zO?ol8+fg-KdN8O{PDL{}4uFF|%?Q8e=MAuE?w1UfKjW-8@Baq!3ijbx9D4arlIX90 zFaU^&khEgykq>C3iaY6^o(O#Y{{-ItyRvuS*i3{QONdKCkQer9cq=_!4^V!daTYSk zNo153!fWzM)4IQ~0N$FvIcOU|%Bs-N(9=q8(VMJ^nDrv&3}C$906$7jSYS+SSVqRm zGOmAeF+G4W@vfBnaJ)C3lOq`Lw9G9AoP=+Fcgu7z^@pI|rgl=jjQn{Xkv_Qg6%FJA zpdHU$Y5A|J1_JDqSvW)j$Ow*Kn~vQAh_>VHhz|qI1jMBK47sE3$UcX2vcI{ z0Fva!i4O-gb6R}<|N@puAZ~xJ# z42!Ehr!A^}RiV5h)_?h7ouB%VlU0#vFlwG>V4C)>(PptNN!B;*Ei3?3$tKjjq<>BBnkWUBl=@U=omuEm?^*5W{ zt)9xt!3Vf?gPsg`vDoX^M7Ya8(oVm)hG5xtB(iOy> zHG_e>>*g0nQ|uO+bUzXLc}{hwOjjmKq~5M0A-GPlLDk)12^uaPL3)O7fK1d=s91(@ zV1*t^T6Pe{3T#xa@($Zr#5rkZd=FNFe($lYlLSkAd=|<=Hey5#(`PN@S zEtvlPQxGOC-Iv1WCUdJaU=QZVm1Q+(tWtq!z`P)e{h>e!GAjny^0uzI^b zNhr47rAfr>HshmYdPH{z(fE<@N&2T-Il}^gujl*|^Z!QqK)3Xxdv+F^GX=jPmUOSI z0<0}{TPEDqS3SgOcU4xVbzqNJzTtG6%{TAV;%^n)?#rH~fKlFlp-b!WBhcdOdyxE@ zggS>j(dPu5gt{oBq!z^xr^%5m_0fJM8es^Dy}XX{qMdqOOrxp^)}bqybY5N1c;uTM zHjiNg`*Pkz%>&So@9!}-*I3w~E2q4~K--aup%wlBnMlp~u`M6~z9;8Az4^EMif(Hd zz*n0|=I(|oKg$w{lgI;Ti(J$Y)wV;x+gg`oW_bb}KF~>Y?M$$Q@9@;uom$2s&00!z z0BF9E1mOD*Z-x!GKPi3sAy1fC>@em)$WZ)ifO*(^>22-im$mS;(X5|DEX2hg{aXFN z6XN$z_&g(6@+Ppd*s@?b`*d5H(W{1_qsWG4A>TEedI)+`;4URt=Xz>%oCH8jzq%f5zI0W*em=FV^F3%};^Cq7mI1U#yBsqruM~9^!!x)CPHj-H_xOWaU__o{_zlXr*+^2XQ!WU?-K4)`Wi^r9 zO^4*{Qxw)K+-+SxKk_ro-tN`vDfi26F*3X=+b94s6d(I)Zz?+MuJ!93I4D<27>MiC zys3r&&OoKx)TOAyRntV?FM)TrW->~H1enn?Vu?mUBN4mWonY6!w!|PY@J@!DB%L$q zXu2HT(mGX+#V5@RyTMN<(^Hv`>cY$RScFOx?m_rkm;+_zpd79J-u1qt%&m~5Fv-O} zSm; zy0dxIq`>+{9?N*=eoxfL!JxO=F8L*~+j zfQ=>CM;oRJvwL4q0-D1 z$H(@ea3}Gt4Op~@u^Cc4MzQtO6aKyEA}e0D$_x$gwmuXkC`RV)*&Jreeq~O`^oxq# zZ#)kBxrRu*wV%fvjYf+V@h)a`ck=geT1n5jJ(`aV>=1G^c5AN_Fw0>|c;7g6k%924 zLn%0R<z zr3z@}V8YLxkUnt2NW>=?+`QH@yAFScPdCyEF8>0^B|6%^Wl*xQ+#liWT_L^Bq~lhl zmxc zkw|3MzWE!98?q&GJ*bg9AjK^DnN$Txn@WCk=KE7tFyEWWQHh|B95(J*c%xWwyHmh# zar{z=L7M1f*GqwsG>ckT&hwPFa%1Q3z*Cy3u^G9~jq)xZg1q|k6gp3nfR|Pr5{tzQ zD_h{d%WwpDcP6vv5XD9@DgJDKZo9QSDg}4}# zG%ItM`W4PBk@<-U^au00NZRtWA%|g~O9&$1Gk+B;5Jm20@e^GpYoh9fFX-*8t4zA_N9cDLvCr~Xtz5#oaPptXRO*)6V}ZLCH?CXve30Rq@o(9fD^N5q zK6YM*R-2!^H0PQr^Hc`tNG~7h`{LN}ds}-d`29+(Q0}#%Z@k%vz17Tnb@3UQbZVoJ zmC#TDqt!s|bw*QiGnba`Wa7k&@$plMZ%@m*# z;s^YZF1}YHGxz{w;TljG0DmX@ilM$qtq5s>XmIR9c+kv`w$-@mb3h4+9VR5gV**^M zW~Qbu#{DWQIeEAycr=Uf8b1Nz+=s#(uVcTqW%PtBx=`=;597^{jXJT!XS{FU)>Z`X zT*{0)B0OhD=B9>)O^{fi>yIv(!u0g2+HNv+PJK0j5zJZo{KY`=9Z++z*2SfCTbGTN zX6`WSGd>9|k6dQKiiR@LM=8G*wlW62m1gFq-he=#94g>FKdTuNUY=x(l*8zyf1KHZ znLwaxt*bi+vGulJf8T5{Y%o6<;+kC7%;lE>%4W@T@l5FC(#!OAVK3a@T0RKmYbFXV zBu%?to8Jqa@S6VI{q`!4Dar>WhejTHimh41>2e?&@s1?_%i8lF@0Sek!OurNzqz%L zPYah?-?bJEqwk{+4*ks8)<9Ten4)8&(Nc3a7Qz7+y=G)nB%AGFORq^QaNB)-w)Jw0 zcOtL%SwL4{3?w*24ienoBkJ%{tQhlOmn1eWeeI9K^wI{wH|8T|#|mtK1`Dt@)Md(b z#l}qj-8GKBcxCL`yvjYS!#z+36^|~AvU=&^D={Kh_NDgY*)M*^N{i1qIQ}-(bi6cljO=7MOUM&x zupOsHijB2UT@hH*eaR_t@K6kUr^wE@+s`hREp)`O+oR^M zw$6JJAeUigo-HR|l?Z4Ez;+OO57^-EX{l60Rz)f;gL^5(3AWp8()=wW8`bK?+i1o; zRo?naWKD1AQAtGqU9DYHF>{IMQ9HSv8*FaseUoEm4+trs5N&}Uk$H@Ftg1Gw&JUyqMFy(rkmqPvQ6eW2Wx!XtV zLcyyP^CgnMHck03NMad_z6f7^cTIhr-}?_22#tEkEe~$=#*dCB9xIg^MT23EZ>l5~ zom=g1_h-~ne`KP_Lhan^;eO)CcO&+d zmV=WWg(8JFj)V#UGFAP3YzZyGb9uF&#Pe*3(NJ~q30t^9 zZgh;kKxDaj#+mMVjwgPqlRFLupyDG}M{xgP>OA}K4c`Xe(#ez=+K_ zI%QQ518PyRN{BCOcE|b}F{H2U`{%oR988QB>TO%>+4tm9r)5&B{8D3nnL2MclW5z^ zKmVB1SI0Dem~88+k4q08GQKx=eVSKUhz0`5I;AW7=jtu9X+>^qJ!AO$)a_OB*0WsoA$7Rot9cl{CBIsukPdWgJuD0o z_+F_ysb-dE5KmnqisU!I*sA6xyXDuZ7rLI%34Du;#$@ipb(ffL)CBn$|KB|^HBesX z>(%Aa&c|~`+n|6pYS5b@7q=mb|M+Ielif{Z?D7xZEtTq!@j2^+o~%Kc+9(&_FFyJ{ z{)0}$=FWNc->89?au(nQ_*%la;EZaifsPMq3wT6rmF94+CH#B@dX%dpcs(=@$(ec; z&O#tk@%dc!k0UYXBQ@(NVD~&$qA@4dRRjzUVi5cafE2sT@zy-JE{74^u6(Z%skvKr z9=H3vJx+J!-NeFiG!qlEu2tvF;Nf@Awk2G~zwtWVywtCAFJj5h{?MdKL19tm2{hT) z+SK^vc(&c?-Ocu|wL*Iu@4MeYrLXRKq+C0tpqBg=@#~Y4+Su~K^23wuSNPNNqnD^O z1inTrVtmkHU7An=JtBeJsRN=8Sh&7lHE}6 z$jrV1s(tJD_ln{f1toC1fJA3S%ZtD!=cooUq3G_${n%y1czz`dDU2f7Ie@IlvmWP7nRC$Pux*GoB_Agn zCK%hVPj{9El6l{jyy?ztW+KX)x}YofE3^PY2BZsJE> zGkpr>+RK@R2MCJn$&5aAT~h1uzE%SRrdQlouy%j#vJ8US;du7q!Lbn{q>py zTp+#u%4jXB(K28!=59Um@`tU+&cd(bkW~39`J-|i>{Po3{qWs=ym6Y$U`VQU0%vXG zalzW!Icx>l#5lEZv}`Jk?zLPkKPDe-(Gh`*-FZ8&+2_b#?1pQ%4bq5 zKw3WC$J4XHvM@%t>;F@7VYk`D3ZCJQ*S z1D@`;DXDWTcg5H1Bt(`ySjy+5_og}FOw>W2RLW4I)3rg8V*IH9mwNe+Z4-EQ`PBA=RGBNHk`Dt@i7i3yiFYLKG@G(QbQ9X4shtpFiv?7*V3SKdvtj2ef@;Dv$*gi7g`Kx1BIaa#U_6?`!2*6uRb ze3Fy{UL|;w3>037joO-3U3L_gfmkI7$>-vkL`zqq4AlcwQzshQ?Z4dYRTG3hpN+|q zr+(0k*?pWXYZv(OUUvie*RECNr$u>s=O?~$-Vf{i%W`+5=4)9cl=un}t8~}xogZxx zEfF_;24(1PM1AyfYAr=vE4nWcwc4;U^OR(prNcpK9INg@ z-0Xqh1{MYN!4Ti21^hv(_&9hFUvvrgl`zuSb+bzH^x_iV8+1*2c3(K)ciLEJ`;~l= z(3xYSq1x7LtGmp5t0wRC-}*v#Cw?3K8NnQ#7S`9Ckn76x3uERacL`5Vr@`ESnC)!7 zqsB&7u&3%>H*sMnq!WeFnUcI|z;|aElO@}|P$g5gZ(nM{Zt1QgADH!^@REHtyWKP_ zXd^*WVI?%F&U&{dQpCe)8BE^fS$)3veXX1pcls@;S>p3{Tz&8Oh9EJ`JLBbxe0Co6 zjnGt0kIQP{n)y2bkm-L_6a+>@?nNDM&WUP7DEUzUnqC;S?8UdMrrEta6OH%T!IXgZ z2Ymj&k{h3KGcm~l2o4FwwfZHbneQZE_ac6~{Bo28VwsO6{QGXIvOY*7cAp8S@vX>8 z-^^qxLV?yNO|Pfk5fd!K+CV$qd`Rx;F(xj?a;wzPe~0JP}KqpJ1@2= zrlt3qW-*E;oZ}~%H=xX%tlG_?T+7A$+>Ntt%7MiCLM=Z-t<*e}Jt@K2G@eU)@jO_I z2_h4p+H8AMwQ7yb{?24r1?x{kcP`vgA7lMe*GR}n*L%*3_UGy4X0__RF|T8bhyi0y z7(vV7C;wewI#r)kV!z9!9AkB$br0y9csvmGCQO zO3>C<-Idq=YJGOqfw|8%jti@xV=V;FPyik>R~9sG?*0v)USP_btYbo9>iR z0XA;Rbr@4nh(l>=moioB0u2}3_i(Wv`D-XMK~H6^k)lu{rG`*h>7zk~SxqUG>R*(R z^&Ce<4vQ;=(hrVy22RE@(JAMnUhFbawb%AV=a$Qfl%whC0erFd_ z(KBU117_2PnN+bmJXI(3GY%z!o+FHFrn`q)X2fEl(1isq54$u z`q}hgLz7z1qsm?O!T6}CteAX36N*I@56r!Gu3c=sub*2WdrneJKBX+IkC0*bnbKbJqNfGoh9|l9t_LS#kuq#PqcIrgqkOS;()(Ua4?X~@-@pl}G6(;2{8JE;l z177sOaUsFcs5wF#_0*W4DigSYwT(jl*WI!QS(J$N8tM6Zupj31U;;h-nYMf74n_HN z(sr@X-q6F{C=R{9{VUmX9vWp@kFV0@23Zu!{v=ij?Ra5Uf!>V8mFK6w7iPQ2UtM~a zEbTUn=@6yQP4%L9ECzwGjEs5v>Vd6n|` zY9E)g37^$PUtfN4Cp*HbaJt;R2uJm>RxGSLrJz(J+Dw&Uq? z=+^ONlcP`qtz4O|$h^cr%5Ym5)d*T#^0K}e0R^5#iWdtv=iKo?_0F@s%o=C;c?FYE zOv|MO%zcm3Jpu9g(v3PTCk6TrNH@B~MGL8o>habYS~J#|O^t*wP<@^C9B_0;z4uo? zbS%0oyIy2>-J_kblAW#4n?3a~{2g(l8BaLP#a3qiZF=$xN?;(ER z^ZyLq_zx$_PyRe07E?JUMU~Q~7mW>&qt!QIbx5IF0I++63J>_!dHxkg;Ka$O||m zBrif2+&;b(G6xDRNMAMG>hRjMTqVXBBVt+37|$8*p7T1dffdzV8z^IxQ(PkH;UB)Z z+J(*lj3T+L9LxqrP_tyu8MxN=JF40^B+_|YX{ptE%E3t0zUaeoxEsFLo95!Y@tA#l z-^{d1wF?epNQN)o*(+kvCFz;~D_YK9=k=0;ulj0>*?cSM8(@FS<4xRE&xBry`XW^F z=GnYwcW`BlSY8V_0Sj$-5{!^5s6Q0H5CcM75*;vOf0t*jlfs5izmb>f1nfRf-z+;~`ho~TuRLw%|6P=Qc(1MY(jb|XjN9dL0 zuIw!Go@TVy#mjT4axuo+lvb!nn$SMAiv*X;06JUtcW&TP^@6`&e}yTbll1h88)aWs zc$|gUbLV&WU92CB{NrKk@kAcg)bzmmE>cqy{&BEP#ju4?aVQ|i`D%|_zTw(e*b;|Y z#??Ah^*>1TkLw|PiD7Fyli3s0%VE#KBvS@+M|0dW@0T%2j;j5U9R~GST$`C)t*^yX zRqY~9e9VD~?UbRhVRZ-H!IyGnCY`V>b=2z4a#ImZ_gpxyr;#UX++EXXN;Zx!R%MUt zPi6b)b&6scQyb`p6kCeSxUq^%HgYYMbVRA#ECsjPxpQ+8E-zd1Xz5l_snJ+z`;(pO z^UW($lcxUh)S1W{>EO10h;Gri=CA)Vkf!g;X+bocV?yJs`e~rJn^jU|nE#(ufS~If zKmtkFYjrK2;@SGhkMZDpXS_nWtn;)M-(KG(5%>k@AiS?e9a-IK&8T)5YG=j_Hj5^% z93{BfPRnBmV{m=z8pEjLG)R~1CI?%iU1o3pMnaS8$FY$MM>F)7EX=z?vH1$Rr&N6^ za9!-UF?%fPs%{NlAFO`xCczumKX|nCPBpiJ=&8sG^!jydnGL6E&Ys zVeMAPN3y^+IVelj2#p=sGVbfEbuF)x)1ApF(Rur^_B*|%ts<9B)Y_gil#09P)F+a@ zah?ayFeCa~dfC%F`|$8gIY+4FY+UVearWe6C-=E|YkYwAforAlRemIff@bEW_U(wj zeY?djw5IijqYFYQ%zr`WQ8gGjf&?Neu%w;!0o!sJyu^uM{{$tJ!^N!n zY}Gh^qPiU&-6$L3Q2r$S^Z+iq&ihpAu*)p<_>%J|9QoHCYI6;$OM%bhrKb)~iR%Ig z12JiXN|8QpPALWhveVonSEm{mb?TbtBI2TlZ>fHGtq18j?wR%dIR)!$liR-r9Jr!C zQ`fZCxLTsvlze|exdE2@M_sF~oc@L@Hyd%Ss(XiWYChNJWDdOFf7MEOwv@k{5#2%` z^riqDrCcT&xEzms{EywJNm3SPwwM^hdC$$LzyFK6w+xG;-L^#=VuU~-AwYltfdsbz z!7V|9ySux)lMvhzqzUdG+@0XiNN{%=cX#efzV+?3);?$5yPx~q^W*kEsD8SttE=7` zbIdWuJbALwkn@9C#k{IQzC#(iEE-ZWpTgH|A2^Lux+PPKBylrj4EkCuBpO}$FH;I!!Wo^*e+vO9k9#aN>nBhrc&h7-oD#rroGz%GSRRI%@S zZl@;f?5wsbCH#saU(j$lccQN#-AVSs?k4;DPVjBdD_JAl=;;iDf-(|py6JDG!bvAT ztJ=eNW0@F)t3+XiD#~ed+$(2@9gMC~G>o?Gqvw5%F6J1xY%-7Q$lfaB-s31JCNNgb zWY!;>QPZDIRtt63*3hsF=m^Q`?j6zDW?Z0U-LjrsbGBg<6IQ%WbNBVo(|gQW^)oFF zIVSU;mP6xBgeW#B8lWAA^BOOp#oV65ne1x?8H7;N5u-VmU&AF5ISqNEI`WJ8hAZS< z?Do#1tL*F9z(mkn)+9309dc^4eOjh(!CIjm`pEw2h{5O05rwo$?lRM*DHB&twj3cB z)TuH&n?xCgRNjP~;KB0DIGg0jA4AHjzbqW+*tKrzBwe3Vs$d=OeddYXNzW}`t|MDx z)XJPJbq?ENg&*ZrS~z8`yj6`uP#sg+6`ofY)nv4MoYenvy`)yDoVki4?>dGJwB0c_ z+6`E5Z0N+z@lROueJkRk-=TN@XXXy{?;R2ej)c)EOe4e#Bw_ zpSkVsm;SegkJsnX!NC`~Pt47YElhq|R;f{Ob|@eduHE`hvfOn;UbFgqT^nR5*`$*n zb3Zi~wbd1J&4bjv;gli7#H7+~D>Lng&m&*o*s!tXuaG&DNn#nk*~{}{ye&3ov=!^W zAj_-q#N%<#d1vEsx#(0)hlJuR$ zdFdw95DDV(sXYd&?%FGNc}nR(?f7Og^2AJ8Cy+UdyZE|T84==Q)mzSno!e(afJSI) z@v~7%9t!=wB%xg)gMt;tJnV50?Pa@xAyRgJ70Nrb3BdktVT^-g0|Z^{ulg1~Q2rLO zr}kF|sc(s%d^x8srGb{4C}&m2EaRn`g+=!DDtOFg1>=sot%UhFwB+KNtcJ!=&Z$&> zxDpgK6^k)+<~HqJsa`i>EB8%Q0#x+Ajd}ifMZMnbB2Dv+I^{fq2Prs9KB+$~4$k5a zyzxvAu>#dMj!EOXE8&ku$_#IGr`pvx6FJRG&YU)jhck2~sFkS_#}kt%_*YJPD@WWS z(AA4aVo&0gO>Jk8o6xZ^@H}%a>L3q=RZS1&yISxzTsNY9@?UuOC7_nyUcH^~5fMkn z#`nck&&JsA3!)mx952<|mrfZ?2VB5LczM62`ps5?su9znbh!&PUT#V@bm$(!l=ZDjhq6bef8reYH3 zimLY^!2`} zgn0LwMoqy!~7v zZT4y*paho$>0C7n$d+Nt?h??6gjUP4EUaNO=~^mt8!Js@m5qYt)E=XUEn(kX)!OB0 zHg(c#+soIDW^#_6VK6i3$0F&WG^_|6&a=e)IrF2!xUFK_gsehjg+J$qqTN=olhWq< zwWj?#Oq1*S$pewyiq8+;X(68$bi0_v)s#LdA9|fZY7QMr6>7}xNvd@}G|yrwn3R(S zHCzR#;dD&;fX@9a?mr5Z7OHbpgd#H&DG{15GsvbeL`MlQArE8zUAp8~@iq&Y=Xuk7 z%scoauHC0*8GDcFEwU^AA!mZK;PhDlE~{t#jhBW#bvKNHN6_&jsE#~3J?}|C)R;YJA=9ZQBc|)=Dk^MXh`OIdMg6? z?EA;czb6Tp?A;ArIut_t?LBGBXuUbbI!b-)6r{kdmBEL%@#WbDMFs@VDRRNBMPDE{IgXnOy)jBUB%Sg`+4UB(BYhW79l8x`XE}zxg^ympwg0tM%=F;UaYEwlt?>3l zL9WU1E)1izpP*Zjlvtrop1gfl!r{RllLH?RROzURd^syH@w0Ejlb;JXi`;yG{^6<$ zb+ylSyeL!n-0FGSBGo%BsOF z*(SzG!1x>6O(~u^I|76Aer9B|x}*c4_&Up)buo?m2~fg-+CMjS!^PS@R$MgFZ?FIh zbwm^Swbz+tQ}up3sPG7fDf1mIPc!VW?N+?;L*H~6*#?YrdVHzYUJcES{kpss zYdXP)K&Z=d9}Hc0aFeBZUO-@oZ{;q+>pqY)hYrr`oYx^N)_03T%u!0oPRN4ym@RIv zMAh+QZ1idfM`>>X>2?H}s8IiSsg!fg{%4A2;b7z@*qtRn`7o90LRUiI( z%#mNH&_l3WhA|m}wv1JOtaZA;AZQ=X=4>Nz5rNpGrE~XvE%kbY@m20K-1b_XXtix| z-knj%o+Sd#U&P53;av;me;xsFKMo2dML@~bVBrN2;vS)yA3OL&bTwZ4l!fmu2q@wH zpX#TPTxnYr0zaKC2&)$)kf!*Fk0#5G) zq!!{Ks9e$7RBg$&hJ4#Re;}+GF6~%5>C>Q4adfZ#wpMjaJkO}ReY7hC{(`Uky$_^> zJaS=iSa5*o3oo=T#r;vyrl?Wuv=BDPx#>_z8g51PGOniK?#_BF-CwBD?{T2YzenD-a)2K-E6K6H%dfu;h4`XaZhed;pX7 zUHX@Eqj=c;O>v>S&p;8su_pvo2oPNV{+p2d&kn=?qWF}WoTo%x$HW54>!`1<)zKPF z4o}cV37uSY%+@a%3EcI&@;qzkYE?fY9G-3N&VA3P{&fk)^Es}Ojgd>9q^qpZ-tAJW z^GPR4)|9rM?hFn*4A;#AAz&xB#6)xn;M1{?U zK+_%9TS=D5OhLlyl50-<* z8(l9X9~oS`^szWn3{hMi$A8&*^4csD1!x2eevQ77Txnx^HTBMZ-D3OeSyziCQkZTZ z(8BZ33!I4-O-iZ$ypra7p?zV5r04McM@exn*M8_8=Zf0p=&G&lBMv1dBh@TX)cU%x z`3wvM@=G#L_M-;3E%n=b88a(O43m*5^Z1VWG-g{0CsBU8PK|QT#A)1QnAW-i6O$Y} zvHO>nk^V;`9W>r_FQ%E6LY=AFF7ByZisg%);QMLxsyO!--U`Kpp$P599u5=6)238E z-&JS4f$OEsL;_d9Y5hAoItc?NO(q|`{w*#8bnA%KeDuVaJMwVv3EpnZyLCaDX0>-@ zEE=zodgh1@zcA1nbzg34*d?p^_u#0mKIyNs;wyM52g)zIrLP3E-Q#BUF9Q)9P*=_A z^t z(qyHN7`%r^mzjLVWm4A5*?h@z-i0A#@H5_H=VOczLzIzKxK^3ON9WTf^O;}c6?yDa>Wk&$e=;=^)Z#9V{1u2kjyL*En+Smq+U)-t|ypd>-Bk8A%N)y97< zg|vDbE8CosIj+9u&5zuNFH!cbH<(Sx>9AvBtf3QZ`8gKK&1i<>mJ1bW*{ZGuDuch# zv9oq?S9(VZG>VbNbK9(lUNgpjPT5Zn=NKV4{rPqhXazmHFs$>RO@?5QcD;|_bo4Yd z2c@qffhGEe^6^`EnN#n*1NHN9DWh-uv+kzbnOer}4rvrIZ-f++B*(YERRrd7X~lHD z;V_6f;5pbYVM3iUH!-M%N+<^ANUwcWH6)NWp)iZ)tZf)o->dT(cAU8;z4YhIF6x-kL~KKq8Hr9u@wP@;G=` z;#she95d+xZ`(Xxbexa9V%WyEmL+ieIB}T>9muRHH+6mWMXc#jJfVlJ@J$kzbWUk5 z$=h0rJX1S1m#y*Lxy*Fo#w7DDhe?ULYeO_N{#J! z{HvJEWOGJ_zAcTaifNmW7Aad1|1XxNTt7T|s}T>$t%W5_E=}^eBu6NV;lQn8cG~a- zEeI9y7isd8)y;a7C=XWQ&EmF9N?C#1t)yu?vSA9GPyx#=P2S4A-gO?E!#d=ZwE2UL z^p7h-RI5hfEby)2_V@x^bM`)I^HpP&zAUn*K%C#?$eb8XwzMxY!jF+ZqkF#ZVHchw z7-lj?En<_SC}NcBusx(YC`hUpl`JQ$x=o9nI4JSkmTaq244Sly-n)$Ge_mUf+5Kof z_j5;FL^$P`%)SLv>DJszUA{%Wd?I8^ zlhMUkXD#tzYLcM!bk@V@8a8vHH@hrU**BMQB9nJaRHi7r<)&Jz(F&^zM6V@%8xtGS zC3~AiCMhj>JvKffF8{<-f4JFX)cPj$`;0+$x+%kmOGWKS+47aN2o4jXnst&pA&&{_ zc*q7ZMRn#h-pUj62`n>l2YM!s+HTXb(?;Uqk z>3$Bl>P(QvVv>V;R=ov7zcg(-2c$xeu&DIuHc+e9qYm`fClTN*s6 zX!u@xlrme8;l$w1f|>0aQ*nAO$)f)91F((($%7%VpD^4@JNjw6cqpqpvD=iFp?R?cht+M1oGiJH9U7E-PJVm7vea-4a=} zGRB*4^NroS>-EJq~m=_FDbvkKDdAy;eGG3RzzDj%l>RO@D%liWY_r(kA)S zC4~M0JYW18`B}|rdcR8#=pY3R3sshf|7m5Sb6#bLn5Qk+@TY5_Xn+5HA;<@^NdV2Q zwE(n|Anb~seqWlN??|I?pxZDkit6Lt#t%h%X&NR#SS<(!cs?GOeqXk8Mw!-|o+spX zc&rHE7fRW`aD}X`Q@c%~Dk`x6l!Jo@;MyHVSQOR#=%O*@Bm|gm0m5A!{vk_<&P@r9rllvKr zIaGlEM$)Kun!8Y!%7^aQnQt5IwgxThsz+Ya6Eo?@t0XJ=<-M{3ssmifNF+f3BM(jm zZstIK+C>dN_;ds;21@s%b4!spJiPn!`am6hKtvk^AZqr}RxUEI>;P~L`sh-ZZHAs>&@g2HS zowCk+?&@y5GW~7iBJ@?$(^8jVcih1JxF6$AI~E}y-?B6UP5nO^tA7+E7ui3cD}tb$ zff{)KTREeF#;U3s%gc*o3S5geMC=K`cX+E+r;}bOiIN&xF-n_OyvhKGMY|mU+*gmK zejB~tsEz|i{!2oGl*Q$?wN3oOsE_Mir%QbTsVc?QXSAKm4Ui6)U(P1ezjGh*;oHz= znu@B?w}+6TCGh{8Vj@mX&}i^V#=;_)m{tO=%%X*BuOTTyECPb)cVMQE*K2UHU*O_S zwxSY1ASZ4E3H|4}2McKhBkQ~Xt|GB(YilcpeQLDY0f+3xMR-i8Dswckwn^F^v3ei! zx~g+}rJM~zq~8sgDc4BF&OSv4v-xG|3knK2I+RsbyoU)XMmHYmgGF^3J9TJ1P3Pz$ zyJ)ZT_ir#r65>V0{e%@0JGWbR@p-E5V#HG6U`_`mfc}W$qN2Ld#iAM<78XCVW=J8) zkGN4;eJ1_Bxq-a1yDR$8{x2@)CGr1^4hP`tpUI5>j|SGyQ>OPIF7rcPw)`pvLPA2W zs&OedGNz)oiqX>GoP7Y7_K=VO4AwC)V7>pirB5*mwCLmam78$F8Fwppl30w*1-};xH`*!iU2@kB=6oDsQqQu!(&KC*SQ>*-7^3i=9XDgn|N?Eog3m}BI zTMD|{ZDx--ZirkmNY_Hb2}!{2mq(F=fvv#Hc;~+TJu&dn0t5Vdqf(lV8Kry#N8ra| zt|PQ+Z+EmS0|$dX%+4{Hrn~s(-vm~I8);K2ad$tc3Am>(vW>uxiCTCnlQ*=!{Or@+ z1wx8;O2kfRFNg#|dI2ueV`=(nOR$4vGPF}^X?n0o;BnWY{VDdfjQ&Vee`RK52t&Mc z$3nj4zqo07G(}_%mdp=Dk4Jobg*G0%`vfXpn>Sn4D5?|>6FBfpZts#Zy|jiV2Va4H zg4f5?uu#)&8tc}7FZJI8F&SG_$NYd$+j}PFqkl57f6N!j0ncmr6KLuAu?vBRikJA& z{DHM%+7ArDVRz%?%7s36Y|pDgblM&B+gFm<4rylAsYjW12L2-#tW)fKoOJB~74}yO|pvx9V#_4*Z)Mpl?O&0|ccC z7s*He!MTv6{q!l2YWgm_rn&aWv(WOo=e1j>QPrSLD$&NHeHy~DuXYbjdMF~HHcSUZ z5FS9Fyk23cAMSQ4JhIbYU+1F(*PRyC!7lNnsA{X05tVVcEwFVTJ+2f0Lv#v#3^syk z6!jXUQ692s>P|)dHm&zCv;to0J2`h#*t!p`z}SAT*2$aHvQ;tE@1o#h$wEv+T}_?o zNUUX>y~cwTIcEW+~XB~z1FXyePU zE%nL1weuVpueNE(WKJ4AK=nLV->-7rj`NPi^Uv)*(eGC#0!voH4rKz;z5v~qdZhJ1 zl8s<jX6U==>RMac>#lbqs@les!oRE>4%-s>lwe6Jb_H9KYZ=(Z)BReQ_%d-KI} zi$v3eLUlXb+iO>v;*9f|kqW;5vSV`0$P=|gxfL^es}CE;XwFYxotrH;@*EEfZLSo) z_!kr8?!CU~Rb%Uf9;{45SjR=55?^{(~c|7^mDuE82Q?yNC1a&r2;*E#E@C@a*>4b!C$d z1K&jGi1*)F)HE)B<<4vh%mIgQ=RZxDj3N3-F&6SAoAr#M4RjcZ`@&;E4~!``ic0-@ zn9LmE{ff7f^4i-G8d+8+>D4M*_7o;Hra6NQzp;E#Q-XAX^EjI5*9W9Su(&1L@^#jI?^Hx-XT#(K#V zz%*wXJ`u_|dPjo2OZxUMqH|6BFIOY9?lMiD!SZ~tHj3DNBjJ?d*ue9L1#7W9PSti2 zkISjht^)b@)u%LABZ6$oCg{b=7`qrOA)?qJnr>A$qvwFl*xx{Nh&K|uUGSXUFfowJ zegHZ8-1sP-ihJw}mni=5gVK&%X#>9PXq{t275K;i;|cZq`dY)&pp}>X!z^LCrecmx z?|l+hb4MB<>spTCI$O9A4+~fR%>^`(GMRXcsb!2_{ip|qzTa`Q-qP6H8_>6veYZw4 zvIo{#J;v=M`a#3m*1T#pXAY7WS0_s)Fp-7$VeLhmblyRC6}R~R*2 zST3cRR$gFlq7Yx_4qtvP3Sh(V>q0MSy|~zJgwoV$50+hG=%DHoM*CL^jhf;}m|_h- zw#T`9pc5S4p1cIkOg6igG&x(Q84JC;#>Hv$WL?& zKA^)IoobxQG68THX(@wNJu=Aq_#zeg8H;fabV1JTvY+m{S_c2%`zYJ?LaGRptFfYV z#qvxTm4KO=j_!mo2`yKhYR-4pRaujgVR@Dc8=U2E05v#Y{Cj|O_Y4x{Uo}UYlum*XYj9h2+QdcpSaKK4FqNg8)hB>u(8Ks2j!d1s zzwDSUAAg zZOxgKx|5Nsz8@0#oIPt8bBledR`JyuOVs?8`t*w90_{7 zXEHt1B7v?>Zxl~x1dY~EJ7Fx)aXK-_dD~v~aYL%dgG6^zNS!ar>IbJk4F?dYyZ*<+ z>4`q3FgOj*G(#CkBqDbktosBP_!zp~bply$4)W2q2OqvP z33>qG`2b+#2MCh!P`Sr%+`JY+NadP1ldqn_WTW9p4Mvo;I@>)Ebsc1R)^t`5#^Pd*X#biiXEs zG`Lq2`XJ7r^-tO8XV1T5(%3bR+qI4VG<($W45ONe?@#9G{WgG$t9h@=PSzL-kDVY=# zqyps(s1Nzv)Z%+fa)wx5;w~FDQ0GxzFQNZiC8>SjB8#(7L=YGy zP@*nz8E|h8aS~ub^iRQ<>iC*=8Wb$PWt+_r#A)qqg173tw}dwA3titCk|vZbwpdfd zH1AjaMlXIZ`BosPB`h#3+CTE;zHx@rnPZ|D@8gN~Sp- z555G~eTcK&Q<{#j#J?}XcJ-n9xyu9#sT?5nn#F&VrTm`XD-i3YNXs5bV?viV$Q3sU zRnPl`1MA8beki)Zz?$;~4~Y7p`mV!+SA%6{r$3eVL!Srdq`?^eO6b_KL)eO;D(sHg zp{MzPDn(jB74I=_ht>SR5gGl(-N^YB^{VYVFmyeM=? z+7TB$R%bRD4rG2?4lEE1;XaT1Rj)p!Ck?HWrF=c_yM91rm81M{ZfSrn)N@lPEcars@>c3}&E?F~k-JrTJ^8 zk#he=PkGJ*j(zEvmrf?P?7mB`EP)SVx*T>};e9_crZx2h3v?+9s}$Pn|4_2-Or9O1 z*jri3YD>y$S3pBoFGb?G`r5XHVIPRGw(-i%vS?zaWwGo+!;RJ7k&PMSkRdnZW3JTX z3dWQl>$QniD?)zYfCpkxG{Mx zn>77&FI&OXsElCS73O%_2*3U<`8XkN=fy)IeDC@yicKD#a*g^%e|P;cb3kB|HktTCs5QLseu5ay_G?l75 zCDVhA7tm124eM59MNu6V9iUk6ISW>%FVCaE?Nu^Z67@y+r@N_moHe$d7(j z$!cu8pw~(x+NwLX6HlpIR~uy{8yZ#oX;~~(5nJprHep=3q3Gu!HbF_4@pzS9@xezZ zr7SD^W}mVBqv-s}p`mUHV6$<%OjlmaE^#`KV4#vTlS+lhfV9vlEo5cFIQgoK{$9Xy zA-xiL>wK|Iu=8mBm?MVxb)D6R^}U>{C#m91u88^3DyH00KWxGu?;A5T;EqxcX8Kb~ ztE!R?w!e+?)bIAka+7Cp6pQ_~+xcRycCslA4=XQ66i1l5&e`U$Lp3^YAQR=hecAsg z-hAq?++yDY_>wZOE|WL^DrHmheo+binb_-4eFM? zA{}L=Qk@f-ZIYe9VS8A!Kzo=sx#%t(CS=aa7y>!-5w&%JoV(!)$^&bJC&DUuL(Ly2Q4XF9J9+_o*~XLD-I)%%cBO! z;^c6`uwou5o7BYq?Nfi{XOB1VKIlMXK}2zso zM~*$ep6GmuryxpM+}URgR|2d^DLR1ruD!2D?qozM-vCM4Pm}Nt4=?!|?xgmP=GXQ2 z|7L2($VZ7dZ|b3+?B!*^g2RVdm?k3&fwwM}n_8Rx_F+21o-&ay7hXT8Z~az(RH za+T`Y8pXG`N$*)Y?j zzdK&4fBU0Xv{F)bZZADLVdsqjSEj>@bh+diE33f@za&hZtlyOTl$dIwC#Ly=GqJku zsp3?mLQiaC(h3wMfHJNH+V`SEv+!O1h&o}RtCDhFru@ff08~MTxI@z=2OrtY1<*>b zkCcB>x-^bjEJULs`e%55p#)ZP8%mGZw#MERfh@c%I>_%C11{eK@@LjPXv zd`G8aVlb3WvV3QX=7N%el9YjglA1F$FOTXywHgY7B0C2!FE1d#!0?7imDu}UpYLEE z4%x}UGWTa=)j!b_kqV@Uwt4X~n1?PM0?4ENK-RS%Y^s1`0B6NHeY^^QU_PoSBh zC!<7|<|6G>ig(&pLrZgGiBGtc6xL07ccsmT-vPmat~&Pqp@*-C6nUrVlAu(ry$32~ z&KYUyDCRb(Wy~xjD77k(H9`-6@b;pBt4qSKA+Jc1!}E9x&>cktH+0$ACj*$7Y`E+k z?Dz%SkRaE8eLwND@y!QjRn@%2#{+!%PtE&-+o`@=koh67{!zYt5g)g|AMY@&Mx?#4 zkf6wZzlWWJqq+IbeJ_vXyT}-Hv*rR}?4pGgV{cEg!`%AkV<6k_RP2J5l5h%0J&b~LCE3^h-ce6+k`P^lSMB<`{PI`r#Yy$leko& zThF-d>{=GnHZYtSxYnOI_Sb!ej9nFD5r?V*2`!WClTiYD-B++ao&K>);An(g^k`06 z8T==YDxjsv_aabMBjapaW9C@%^x5wuxhi@0WPRV>X>S+DW8!0mp7ZAiOXuwjBO4tb znayFQ+Vnps`A+<(;K!?c34T1{(i~k{0?9;XWw*LxrHw&)GO>GxE8{)ctI8Y-7g5e} zNkIvd=rG&ku3zCl-Sl@d1B?QCF<7#r{1_`O8^k46n_u}U-}_|()Sl86vQwQjwMz9B z*h*C0Dh?RsSYG9V1vPP0mxVR`E>#iWc4}I^D!WYS`)+GL%|7HNy6^NrXEBIm( zZ5V2dx~1XH7fSmVB_uu~@){}i8R<&V$}&IedsNu&B{GU0X%I1MUy0cZb~jJo>3-!f z_keo0SuI1ML7&C+HIjg&YK?nr(PKn7twW1qcc1Abeb_c~>t6sXo zUW6H{+okk{*Hn{G2|M*Lm?GRS{^H0(z$`me8$mk9HnLOSTu(R}Tz}bDY~N9%dFKJ$ zE$pc#nqyCwY(#_1Cm*6c$-B{xUEeQELgM*-Q8;wnz-0_^M5u z$7TL=k}~1xY$6q;38%4|CNR8JimIVcUK0xN+{YW`T6*)LK=Y{)TQQQ$tRu+qRHVt~ zBDTd;!B;nt|GisuB8nHyuzvNA+?c9-@}OH~pf*iYZlzzI9rdCx{AbccFD{Y}LvEez zp;|_LMlY>F1DoM5MSEMrz-!a(_M#IMxoV+mqCmD4>NVKzJ;-?Yz={uxNDILv%T>pl zuP7Tg^N;XDu8${T-!zwf!ak+s8yvjetXNmrp1V1A^b4}JthXHO9Nw>7!6Kx^a*y!1 zte2JbVP~Q*s$tkr#0xFyEsJq#%C8tKOz%eoNfKf=q@GAuZ#uKj1H`|| z$+Z^t36@LFwk{zY*2k3&=5JKVimg014b>y7D`upXKYM)na-7$Ib+?eNk?Z`H8${p9 zak;t_>WBMfX%I#|qjcSz;WqFe`Notw^F(_ABF0AV?9}Tcg3uK4 zS8nW$OBc{-HNl!~O545;xhXu-R*y|EIUN&&ub?rRQ^(v^Hd&<|laT-?7KvFR+lXZ9K57{@l5JRXTe`_b zgQ9w>40o=J-O5kiRunevj~V7AUVd=J)h}K4e#>&0i$sJ=YcjAxtJCs~Cx z_vyO_9wtS(n8s&Qo>A>o^eJux^arkJ({T=qj)Y2ld~w$0i*U>9QxYcM$Tv6pjIx|L zT$NPQ9?}v*(;M&Lxn-`6j^)lanZ*#NxW+#kg}ve;!d)?iArG2<@w^K^AK##E+w0pK z*6rKwj)t#dIA`^vlorBHJ_wA{49;c z@8omty2?Mu^KYZ;6EagW7Ej!5E`;YIWPdLzu@!0x1fZGREKKwf?!GGM5q)eoWcEf$ z)ufDKNzDAQY9d~%Z-U6{)24n>5>57fC{|t0KxQ!G+(jYATt!e`$xg#Mv^MIs)Wg7A zl1D13;y7FN$D^8!rr7&q*K4^gmQ+3?R!1~bMzYJZ+-;mY13}yM)IscT?vzDuWXNV* zYpvpK_8&FMVlCxYcH@5a?@yhfn8)~qWu>sCB;gJo%JZa5b#lZk+89{5Gbct9u)xqD z;w@;c-qx73y~fpXKLZiYvE*ShErD_PF4R(i{a898B%y6)(o^C#Mdq5x-X%ER={$PH zi;-gmtGwVR^Mm~0DiVVlV~u)~>klyrxJ0VaR^P}!PtW0g#hsz}H6`99vUre7O@b^h z8+38Dr$Dk8)bBQL=s1@iY$KX0^Y*4DiEGabYBtC6}frL6t{)`pP=D z)S@tlvf@Rke@(Y=_4L$kRH=e(Q6FH3jqW1zAbivQRlS#AWq3|teL=2KDnCsgC~D`Z z=G_m8+vH)@`4sVMcAI`KVj-1XEoaLm=;eKn;hm$>TUyC$ua0TPF3YVG!5S{Gpn>eBihy3^%T$%y5j8@27>j`hp+ZJF zaSMS9KV6@roH8;vKrYo4#?3IL1L*p~!R?zu<8rGu%~RZ(ES#__<(M-~&Adtj26Lkr z$^78*%!0M3!5ukL-CI6Wdgs|azmJVkFfsuVcf|}}6Z4>O=ZX>!ew5 z zku7#YDz-MyESnm2-CjFgUfI^>k!D-KM+IejXOWGOXE{rZw->c(i?ca7F=$s}>W--J z3U{Qg=*G)=4B2MJ&CicYBDJH38~k{v&S^JY6*(MmkGcqNq13kF8^e=RQ6J>TF+Jv8 znfZ9mmj+(4Z3?4ZnT1Pnpbpmbl*ie~d#k;SF{JhO7D0P4%q>)kSN>ot9Z*K2i7{`Gj^ z{P^z!8`qL6RU-&%=W=zs2=bvgB^W1%+z$)c?J^a{Xj2Az@gi!IoV23-Bx-yHTN&vd zNpo51oI@)A*I74^39@cu(7a9>hkK@h(K98f44Q0bZw zUhx57O;G8?0B2Gj4+kF4&QqFBxBbk4KLrr_+EoVXYTzH!e~tt0`{Iis-;G@LyKUTH z;2vKS!RGxnGC&SF90zahi)4MAaBWkPb{7QOkHlA5FcFynKn5>RbRaP5n}7WZfc-px z$z7>4q79nv7dZRm>vlCK69JwqN>m znvk7Z_=7)H^oGiln=Og13TWn6ZACC)u8vnlGLZz#9P|}>k3;(ea@`~Vz&E;C4ebcd zjlFsF0J$$`^>f@&t~vYazTSgl`?>WrUA>E&F-EhHp`S(qrLXV5&9f9p>f|)klM~|y36-1`d3mP(M{m=o z5lHw!*;H1^%)+Gh9P$wHuCb0}z_4aALpGmN0VM@Oq2E0JAI`@4f8~(`*O;Hg*%Ok< zR}NRl`l47=Vfp&H(H5~ReG!j?K?zg?$3gTW47bkIAJbqQxv3Atht2piXMoD-M`~}5 zq?xA~6kID_Nr(RvgCkI&Q1j%-aOe*gtuT60m*FXlNO3s!$eoYYJXmB=QPJ(@gdHlI zGWUxs!g837S`Q4PLnWW<0Q=Zo;^VWET^R(lJw}`$W||jwnUJfIgwslKl~P+Wg)9?t z4KzI2AoP)NiuvCoeRR51_V0>HA_h<%<*&qjT?@<~EnDqTiQ7~FhyK#cBYXik71x-5 zuJI=1EsB(Z@SWnE6f(wCRmri@q}eLHeJCOk@@Q=CN;v6*tL~p1Spg-IBWLf7ZLS_y zN2pK@Q4Xw(KbNh);L=$s4a&@J0ogn1FsM@DEBu)vC&}t>(NJixW*^6I?GDe~-x8spInbj+qo069^(9Wp75L5g??pN#hOY6}};p57tO(TWRn77SpqWYI3GjW7 zLC;^wH6lJrDe|%6H%@sr7e*lh9qI% zMh!|CpbrGfk;umogygN%AJtX^FY=$Q4A*u9g^yA3D-@>TU#G52s6w-zQgHy&3dG>x z{)fn|T&oj>$v;HYlp50JtczN`R{jYp5rsP+IT;x=t};fb%#KXj5^rJ>`l7r7pP1cF zfT*-^LkXO!_Zwk0T67`f+oT1UR!Wd#;>(zt{UHXbQ|bZAFELrwAnwsmI$rIOotjxp zb?lMP$%N0zRVyl#^vEU@JCdab<9#7XM!HP9K{@%-Xd(f#b6t@t9<7LnwN#Hhc1wvu z{+!QAwV5J}cHed?N?~+!wS4G z@3K=BCE?!e5W(tTd#c{m%C6IOGe$RSaLM$Ts_{LTEb&)%U@iRiZGV9(^oxb*V}wr2 zofhS?^>Y#%KWUTcm`K85k4NQ7c8AM;0`B?&3WpV1+wEoIHhgka9psI#y9-SQiWwKR z%{Mu%I4ymq{o$F)8p>3V`(FV)UP3UHxwFN~r9jbvxr(s*C%ebQuTmWIf#!&L9K{J; z0Xjr09Qs22)Th*T=<7b?oxhiy3{JJvH>WCRV8T_PzTu*CSsK(mEIa#?Q58FHmFQqu zZ>TO8o-`YtHC@+h(~y_&g-*I4m}>QOB}hLPELTQZlQz>FSv%zK$4(SCY{f+)45@WC zP`k>B&sVHdQ^~=7*&C2bA%UgqCxur`C7LHD67z*R^J<#HzN&_=bMMS-KkaIMNAp{nW`Hsab@Gb5;En(-GnhpnS+u;Fc!KI-BOlk-v$V#8wna<{F$ z30J4F?g<5xN@0Iwzrq$90bO9e-gru@s((}TfLSvF{RGx{a-KgLmZQEd#bRt8>tpu- z*Z+!iUQWs3rO)6IZz4aXBDWs(hLT*h_1sfG?E}CicW3PEBEF>VZdiZ!X{WiL!`b5W zjTXV;mh-Pk{Rb6ol#(xyAVt}^=7}-P0yj6T4bqk-R2p~LUHwrS1g})W`mdZd1m){k z8(?l4wL%(g8cwjtdU+;c+kE+AhQV+FgBqLEREqwRglLjN61pJGS6Tejnd`71eU@cd z>9%l7_fx1I1xV@P7BlutJXShwL&x62D<Nbwe*#+oWVM^q~Dj zxU^L|?%-*VyTnnhO&GL|@+?U7k#kkq`UO{F8!}KgW>O!y$_huuNG#?UiMP*+cuw0$ zw`zjFiPHZB*pYP1z9L-v_9h*YB8 zG%!nJUeA=vo=^)X_eeEP^8_lYZn$JwUO0(Pk3l|Se(5f+IFSn3qS<5D^Ez6~3L;sn znFhOsgG-ytRIgCUE8rX}{>ts|b`zmCn#GAVw>gwd1P@VF_Yb!j&XQJmaRiQK$Qvns&Zy-MD zpB7Fhg4!uM?<9R2cnp4cn-1)d%oQ^0%K?ZDD(~hbM2QU5 z?<6{hXE>5IvKMV}GRTf>6gfwDM^)ocZrAcZZ$lyQ+{kcZ6y0xnd}Fi!%lXt@TZ18&L^_^>VL%^K;G${ivq{}=jqg5 z2PR|3I!$Ve#H`r^kfz5`BC>7L@32Yx>F}V=+OT3`B;EZ$Z+#7C(p>@A{{>hBq!FBO zYJpU@NeYt`7;nlV&vpyB)s3H0ih8nmv`3&d*mM-Hib&4U@n2_cl8uih%GW;W-eryw zFz$NHQuvcv-Ppzbk5ZV?!!cPVuEcGEOYp(G{gyBIZhVpd7jthJ6j#@Ei;@t5Km-pE zAh-s1O>if;LvU@}HG(_AJ-E9CPjG0o@kTnhyEf8&HhJFX-0$35r|SOr>eSiA59r-{ z`CiO9*BE00j{H5$kniato5-jYjkrv3`}vQS^{n)`1C88|C**b3Gvb|=g*|8 zmRtbR13-FTGyE$p40QJSzeMl<<&YQ%l>SeC$G-z9@%eFjV_Tj3aJ&{641vMUk4m}i zk)Q6q6w>x4wu`KeYbLf{7v9vg;Js#z?m!?&<_57_MON2bgZ-Q$PfV3c%nts>b%I(y z4>>fGNODhSC?kq~Z}Ql~j>AF5pO`$=CDS62r!1!$epKDL9U2=h#quF)e>=yD0cEJ4 zCv5}2F%b4MX?XonM3KzybZ5$NXeEJ~GYQ`ynsNk&Sgu7*8a zmu<*GVvuTXG~#+pslv+EHX?GWcS_}lhyikh1;MOAT(-g5$Iv66OE+Z(o_u&Bu?G{n zD@3jJ6WUB`iQmRWcqx9keEf=A^$AeL=WGeuhaWGL5H4H3@Yxo`Q`wf`K7jfv_FLdU zM|XC%e2?)Z?AWjPL|oEWkzu7btft-_pk80X=&-g+qjjGc(*3mQB{|gyJAYbtk)o5b zC-9;zwf-d25E;!*Mi{lkwOK5}t1s$Iz0_iU3m%Ycp+^O3{q+$m=7Gib;h_q}FM)WP z_{QPE@7ukQI9U-PGW>WhFW%x_4uAMZgy*@v>_>jVbMA?I-n5wNe5gC)1Zp{U<#$z~ zv$Jk3_rCiH`23?2q}*C?yax5w@cX+)K7~93$ob_jJDRAFqnSmM+Eduy7vrazM!b8Y z?hqhZ#<4>S-I|OB98J{%Xm?NU4BtCSy!HubYz7rYRah zI=oRX5Yl{dCsIzxm>!tuucdtysqy>#{NRh>UN@JMcs*WG+>;ct^7LG;#rRrPV&`V- zx@}&m`iw#=zN}1MfJ+7RI|k=}#S51V4R`*dSt|Uo=gIeJInZ+DVmP_4(JKw01*m-! zsB`}X)PxG?G5kkuI_EyqA5b9Uzw{=y0Mrppf3{Wizsu_g`#v%ZT$RAfRSU>aV0xDQ z-J5=Q8`_2E{8vUH!BL~c-)#cJKhyz0Ljd8mo>%zA(RMb}e>KS7dR)mRKqb4@0qu>~ zofMSkkwISnzMt&rz#d~_ypn6Y(j9|a?sK8lg#EXgM;Id3oLcJ2-{aXSytaDM*`e~y zUgGK!#rJLc{B}jEQ36m3s*#I6{=%>kP=o{>uI3y3zPH8(c00acS?*gC_COP#gVqgAk zE1D_dH2^6EuCFNf0loh^a?9uQIe>ylV8GS*uqMzto`5ZvlOKPnaQ`sua&v(3L9@Ot zdhIy|v}X3m>(?AmWijm^fZ^7^eXa~prhu}E0a{cV5pic1B`^eN)<(;*!;$Crp95*6 zpPvJe3P<#=`#UPfp)%Ro*(VIOKr4b+nos!*)rEZ~>-qJIfOdVLWn$Xf!P*9r90Era zRhzj86S**9V&BDXj}u@@9}%R?w{lyEZl{a_Wi4Lq38(9`Z@kG&1a`#5x$z|^gb9Q6 z!PdXA05X03dve|TKj`Dzfc%MK-{VZ&r(;C@bFAe04%aG)T}4zqWfaffEX}vy`6>g13d>WOss$Zy=}>{)B~uR zraoY+-+JlEOg>7tz%&G8n!{v{_N&{M#Lcv^x4&nx0#Er;k5WVDb^ptK&^i4dTM&Bq zA1N{*)UB^2Zt87Qnij}+3BaG$$DEWEp8Z3A+vW!fY~VeJ=$k2g#ueV&+|n}e8!$VuPl4ap2wlDD=i;W2P*M52!f zp?rGfd7TR?WqD9IsbxrvkB^T9$VLNS3kivM_WZd`S>>rE)BV>zp6yG`=R`j!JX>sB z*QCzBPrs?ue;Rx^l7KPlc<=zFeP)vkqyR%50ce^fWxTGYPiBY!9-Y9N*~w(=j79>U zt1DsPChsK*is8;?bOQ}1_jc;E`L`{~-0b#?lDy>;_m1*<7I!mX#fpjh7(3+&@A#O> z_$%t&KLUFlLk9Ad_etI&^DI9$o|^mFz1D3+FB;(DQs>^#IDm}oWds%*rV+osrH6;O z7QnYPY`3+uwJfW|y6XjI!sA<#U)>F{gEeN7O)3$~?m1iR^;S{x&j2)E%h_M@guvP= zV$8_c-!CTty^B1rFCSKrG%;-EaS3#OiSk;@;Ch_2D$Cr&!ou04?JvvnaCHF{<(6#b z;ompx|4fciRD6e^pg^geT*@^{b_NPjG9pPjAl?rw+GSY_3vX{ZZ(TWW8#x=BxawL} z%z!WG7^~QE=i`p#qAo5CJUoPe)(=sn=0D5$)s{>4@-mhY7FPAKO!aY>PAU=Rd3_G- zn%E&IV5@>OVQy|t*}oV#V+F2TfmQK7lgf! zn{em(x$ECO<`u4K$jqcxRw9>T;jZTQn!^Vc($ZV~5ewm)jKIqOyW74E0SqC7+XiDb z^9rc`ASLt;Ff%H4?!mK)&SIUD)k2C;Gm1c*!aqK%$Y|B0CF z1IFU-p#6F^Ha<=YB>NJa0ZcGK71+4qKX$8_sD-z#xM}>69^kr!Nc&nm{b$p}L}%|J z#L6bf+?8t?9UEiKJr28XEehrXb`;Eg)xrj;d6zcJL<*-C{ z-eOi=&5cSVQrhO8GJY$2xsvt0pxbIx0E5R+r)|{kXYoJV^gze*d=ynwLxi2*OsAgwaeqa;H#^hePp+_cr&||t#+E+Y6^UJ)j{MNhG|BP7 ze%Q(_f3Z?T#0LnJq-*3C%O?+x=sQdu1zUg)pQffS>SM zN<7$`?K6JU_Te1$NHfz!^=7RiHRK~s#Pk&v<#8LODDTTey$ECQ*xYLZ{IuAg3cQi7 z=a+BBVJ4y2m-QK*tQx(Lt{PY4jCpu*g?*=^c zwHwdQJl`?FV%O!cf}`u0TVx~?22~VXl!t%v6e#5tS^5s2s}zs_WSZEj3P}9(F?`7I zMr@UYeJpYU=I9Sz_I(kjl70t~vGn!OHfi@FA$JXs*CT$q;{4#jJ7G3@8g7Hi=U0~#Arcp5Fp$@8krW8{04`BtT_6B{RGcj8Sux76#b;`1sF2@r1pY@ zCpPs%@A~b}J!j}_T)B_L-iCX%B%-@V$N=zUplmC^+){Z^i~!?=1S z$c3RrLYzX;j7#aYRI@W7@rKB+8BLEI>+Jaw`|uCACeY;tBkjEA!9}PxXlv3DMO?GySv`B!VI{Du%A) z^$SmAWz^}zPgY#GJW6-fMsE_{Duj{XGcfU098_<$Ck|)1hGhn9!q#l{2vrr5z^k0R zj%;CVUEm#z=M_t~zEUY3_0;X`z7Qi>)RFMb$ly^%7S-DGYDFRk{s`iBkmgU7z^S^O z?ycP}39|d8wC0{SB4Lg(Jp9&v@y+GRo$T|aB;ne-8bQeQ$cALT%CUk>)Ufe>(qLU8 zyD-Nqs3c^ch*m=;KFuF+lD_?adB8UGHp& zLsO6{9dc%AiKe4CH9Uc!bWqZOqxtfqWPhc{y*7pov(LmY%{?4I9m7doGpn-oXm}0~ z*=>vdWykwka3Ntf`r&7bmP~ArVo7N`AS6&d;NWQ~nWh5h9jJD#Uqi!_N?6SG-Q)CF zI&XXk97?9RhTF=mY43uQxH9Y86HKi;E}yE}4NuNQsi?C{*dR7J3Agxu;TfKVFl0)LlW0|3ziGc%Z8yt=ZAUn>cY zJX;{nzq~EUHw8A%&|=V90{_0M_eXy%wy}DZj4@*q!po)Qytt)y_iB@a5*}`U^_Tf? z8lGZM@dXYUBUDBOLEiFJG|^W2pyed7tUr^=K^6E`#Y zfclsJ2$xX5q=1tU?(D93Uq#J6zx!;Z8Rm}QswR7!lj+{pod=aP z4|x9SgMhm5sAhtIZ_?tJ(peSohCVJLb!&@ACr-soS{M6eAg^caqUU2aK+gmI2PR1` z7@N#)%?kLgpMU?DkphEL9)2mSA9#g_x4WYc=m29F9)Gg2;_heZoNCz%@)Mm)I2&=N zzQ{$H>Z%~XBbfj~NMj0s3Fso9e#8#MfnH-bHwTQ*O3V;^sc35}m-CBd<`-l$U^~Hk z*&NlNp-CcALwxe{s`FoW5KGeO9?}QLtRtPw(TPzQ(m>V@dcnnD?DrJ<#clS zvbf6t{-?94k_Gq9t$M2x$f*Toexf$mm|JFaZiI9_v-_-Bd|UAnDSH)lySFjS#M*z? zc_6@k_#u&`&t&o9!?F*L3rwuz-N9}rCVitl{B%5*j7+H6J7p`b&>cJuTXgCmmdJt@ z4{fdHBF`slkSdvbJ~|+5(Z~fAc;AEP~_N zyq>K+qnUNbY~N11`J*FU*m^~2>6NTBtHAnf?aT|Z%ZYts*0VPcJ!#)x_jJ9~_jL{1 ze+73s7F)tdAdcq}l=YPN*ZZX)j7(j-aGRLQx2Vh%LLo3*FqwPqZHCj_aXhi0+{i+3 zH?z8qLO6~8{MPGe+1(4N&*!)k7a^mBQK@rb=)R8DMVnTja5pEngCYhB^+o5pa$#{h zH@tUSvr@SoXJbYD-~J)PA0@q944qeskIGy#y0EqUH~As*=*G8r1IG|9-mZ6Z%Ym_h zRQn}@IXF{ir81b*F?W~$`m*c&;NTO?EWg521mc?4sHlh)E!MeBb0Xr>0<*S#_O{ka zwGiRZW6*-#s5Bad^Wa_|=#$BwNP86=hK#<}5>}m6_fO#KB0wJNoNw15HD9#)!Z-Xg zX`bp}*x08?`Y&fy;8>H)5Fob6lECBzKCAmMVvXz2?@MZu$nE=u!d*JiIC7a)h(6Jh z7-|#8{_b0G^011P*rb`Ng?n(DeaFACfDCqrk@^*=KPy38R%e}BVh`)+ouNi$BlGQ8 zX>7|@FfdyldQ2jY+!o(&2HuyeWXU@U#wESVx@^^;oY8?#=%J69_xF*_sCA1}bImm|;aCz(8(iltMvC(svj49{?@4d-W77L1?Pya z#Kr%%u%$M54?P?mJs^O356hH{q`!sHki+0`hQbTp@QNn`-LruI{ef5Z#kI!H9|Cii-N( zNzYy1(rd7@si|xWA5XXfXvw`GpjE;tQ+#I*tetmthIh`R!OXp z!AE06FcPxJ;(E%+TH$E~QkgfoS{VGkeQc^5786(9Id>gCFsDb()m!ZIGAS@@29I1% ztizI8q{2z%v9}MSd1@Y`bK^tJT0iN3YohY0@$E z->zY2rDHKkmL$Lqg&0OYOS-7vAUA2P{E~WR#+R{v4~#w|luk{-j3%YZ`dLTyEvJiR z&r>X2?RW4E%gbhO{P184CW7xdZZjoh1B*1nXIn{4RL7YgPMRhH$v9ILjJkzn#QWPX z@YCXgaW|g%j=^Bs>L3-h5PD`W-dOSHxBLDyw0a9ImT8<{`A#W^C#?gxY0SKA=JDS7 zf|n?jx;ep&s^7$}X|!88*k$`0tE?b(7HUJQn{{01FWvXQ@M~7;`+JO2Qs--~7(a#h z*MV=wx~zEK;DNB`gwj`@dvo=<9eE!mK99&*{!*2#)l6@l*LhLQcku*?yNGCRXG`2= zq)81JefEuc1C0&64FwCED{NSlNVF^2mjFaCg6O0x4_i0)7o-U*{9)z|GR4IrNM`Pe zGU3Vtr?;df4wJ}??5`SbTwc1Dl}y(e`6HLB8@}fR3iRkQYa-4AjOlJXWU;X>zls}; z>abMVjzYq@ZWLyK{c-%s?~_^(DZ7gAm#GJG{8#Vx-_q`@8Yszq?L{8X=Zd5#~Fw(S5@ z99jniAa&jRII<5vB2zdg3>UGx)zP2cbonw&v1sTfCi5n~cbdd=R|1au<;k7MT-u)F z2N6Weik>C+$>_#KB`F6U4>rjv8liL$1XEWl52ECt_ z<35y26{(hv9{b{4$MQV&xIKoa7EYz$x@1#reb~lw_T7+aVQxG4INq@B!oEZAY%UWC z0)evi4WKV+Dn6Jfm-h8)*=98W|ISsyE&{i1V5M#| z+n8)r!|j$1|FgrMlSelDK5_!*t!%V=6L=VXwSsE|6G=7wNAP{vh}@cby{n7jk>GJXNE1&`<6!T z)?0n)F#^d0PRF}(wT%*us&moge}Ll9e!}2%S(!)1)P(%qB7^9#d~sBI$Px?_;<Nqc@%U5_#yewIW_juOVO>4p+d(}%8#nb=oz{2oy1E#F^uQ2SM+(PQ zP2FolkiqcFh5Ysk?efm6EL$i*uyYO-@WSFdRxA4^&T0$ zn6w4{#-2h(9q6685p?e`!AgvYEP7~1SwW2Z-L{iVd8o4+&L|sV+=s5ss)AQwUFH9Oblmn#Kp0`Gj_P5``UPY zSTJU!hmGAvttQh^Lx%E9M}F9wR;4T@^As^v(vvB@)U0^Tsb`HY2qW^AOO<{%>L&Fuc$?km((t@OXUiUPNVurgocRI(gzr#TD2vUa_%7qfn9Hnd8l+dy>UGKXn(q zqrL{m9RcOHcfqELAtO|ZQ?Y#J3i5AJP?%MZmczX>;g#$5Lx24BXHO$yN(ECj&$oQl zvub8UGU%u{DEtJiEgniCZ{6glwY?82p`4{|C=795gDz? z(pBZ-8ftov)$=V8VY#>z+t+gWq-IK}UQUu#XT=ZMw@9s0nb>ZA`GcC0%=9=!beq-( zkj=VUMWcueb%>-c^RJGRq^cW1q@ov=0hHmeVr*;0$$GHng+<*OV2aRhOT)uCZ+;_I zLNVa4$f;}CHN7(yZ5xI!C`H@BOL=*U4M#=T!pY{nS{|OwRkzE#>&}+X%rTK{ zE-Df#>zfRxEnRMYuKKd?t49;x8P(Tg4i~tw73+HC%cTKHYFjU(QBSvnypoX;nx=j4 z!TYBkVT+?R0UYzZXSDI))6!!D39rwm7Zj&9GL&x#OCSF|Sd(o0A2O%CSRarN{wN^H>c3Cfv8A zE%%o>Y@on%$4z zS{pH-9q0s04H-KYWplTuR7Zx?)nc-oty40mb-tBK=OG4l#zo;GEg*kBL`nqoSv5(X zQlLGf59}LgR%PIKZI^!4yoS+pBdRYtWxq9P4e~4$#!2Gc(9w3J6@HsAsq;9UGp#Y8 zPjkgVbsaQ*@W-12t`Ln89Jaa>)ynDG4ws|%4_70bf7Np62i6Xu?1xc+BJG6~tO%KC z>N8DSxf3pJtQCcl&SrJF85t_Dd@n~$%Xw9;2FiK94(~bjZQ=KU3uz)#5T1xs!U9Ig z8tpXm#?^%?YM0+(ZX)i^G=`$58#%@L+}$G&QQudx+fD|MDUr}Hvu`2qj(?vJ@VIjZ zdLRei<#rez_bRWv;dHpen>)_==0{TJ9hvC?gV)07+t;D`3&P9fY?p3L)-xs^N5VS_ zd;2tfhq*{W6=C5Kfbf%kqzOZotIMcO(fb{9oAC0 z*WQSKb_&gwHg9xh0Q9A~CM`J9OT zn9DhYSa4OuHjCVp5Y+Icyo?EoOEc1#>C=yG^?M2G-kv(@;u2QnVQk%ay`UMw{oq$U zGg7H9SD`R1fj>7%h`Aq6OQGN_f&%69(pMOP&PkxIWZK9w)SI_<6A8z~h!Leh__qir z16bo`N`LcEUgsl1AqHNr$rl>fZyzadXCZ@Mf$t4^*h#Q|3 z%}QvvD;M}@cB+O$_P)BG+`iLim^-}|6=S%1YV{DO*B- zTny(d_sAlvHQ%u+q?@a5zfWDlZTx0sX1J0T-aXog>E5$F7TSuO-IS>5x!J$V)vhYJ zaU>&EeT4EO1S!7x@FezDQ~k$$b)R_+*@u+nQ~?_l6usq_0#`U@cyb_bEKOJ!9AUDn zsx`bhR*Zv=QP*%HI(DX&ZJA|uI?_%PNeoRAI>{zex>P5dr|4|7>`a7-=W z{8Q435x$!IzJ%xBSU_-?QaqlF^N^r=orC4PyUuj_wS9Z4Cy%Qfw&hng_UWC(t;>$< zV-XriE43V)IWg%_C$>RMdC3X<@>!awijQoAdeSC7i%bYDd6(Y@i&XZABs#KGSU$EV z3d#)J`t;f6E$N1m|EN!a=3?_UQR%^9^hcccXE%i7j|4HjQOfqm^h;IehjbBE1Duy0 zie)xUfUsT<+L(^onG-$FY{nb5VK>uJrSB(M0YKI217Ul%PZ_xq@DnCW-A-KW96Dl+ zh4usWXhlf>V#`oIJG%aY&%c~Lxp~QgTg@;%R!n#+Ih<^tv3bH(=`1_d-mB~q~(X#`Y9ZId?C-qL@ zo0wP=x>SClygtj8*E2WkJn*rxVw>6b;J!A9Qi3%cS*w?`U#SNjva9xx+w>QpQ!|Nv z2q1vcXW;%dC7Nsy{OOez1yi_TPa1bm0$!Gc+ATbX+kZ&a!{wtiE3Cm240N51NJi`q z^e{8}K&qK10cQP+*$v~u?a>RdMq@x9)N!o|_mX509LamIXH(~|xD6O|4vH~;`(o~E zl_~hjFdpqabp91oC)?T9p3|5VoFPUH)bR~18(8Y^YXYutfmDZ)t<9r#aKzOHQYJb2Ik z*4!cCLI>pf_(3$@8+<|{wm)8Q>K^x}-Q6&V!ITj}i<*O$nwBZj#_Zw(3+U@uZ+5_H zzgWHFRu6SlyMAFyc`3~&dRAV}x2!+ww)$Q~9X{yjLRUP|UFI=AI!#0Ql-;hlxk(`X zD-M2rUR+vQeR;6oOeBI7exx@zDiY%c+HVW*8dDe(+r9v;FaD?KDK$+GPxz~<<^BEA zmVD|LL7!_a=IZ)K4;R!BM8@x&eXH7=Bvs;;77a0#t>XHYnM zwxUnb#E5=E0W_KchbNh`jA*d0W+d!tcoX zC|w9Q%<92=8BZBy*p>%$j^dBi^`qd6a8mKhPxHA6Nw^o`gc16C*mWIpm&)2!EjMVv z*^I7h_mi*9@3f`g>_F3M?~nZT_Msk%5H`h)A-{hRFX;iG7QbbtRlCs+13;PL9t{b3-2@KmYo3 zD{8JY11LAiq+;u zG8^pHQx#4Uen3)R7wwX4TxK+Y|mNVEoo+qhg*$WDOhRRg zj<4ulX@2eRIO==|?qJy9UO2f?D(hI{mWuOff2I)Wxsr!EfrUQ+sG@)_NR_HnRD{hz zsXt$UkgD9nEjWMP+rlDbBSL7`)b!-3h}k{1I7Qnd(WBm; zKQ`NcR|RM2Dthc3a=XB@uT2j%)vTL)H6NEd99r*AEV#SP$9Hl4l6qdFV%8ih9NUpn zU_CX}6Uc@UL$O42Bw_YWQUGjzXeq117cRw)6{@=0UyS`d*X3(6-OYRG1n1A1d9&xq zh}{HQZ}lS+`z{8uT5j6F7a;$+N9(mQ`+-xtniLx@@3gev%$}!s{M^`s zR~YcVbj3&3G{>(S*V+}$>gH@hho7>zI-!?VB!v(cBDOYPv|nKUkx|^gZH^C!&}lYU za`|XAu*b0dJC}>f(KeN}C|v3zZR*>=6w$uC!A`nRaqBlR`tgi~Nk57VY#ba8iF@W+|N0|#4XW`4%|i#r%BQ?=mdd9{0f z$|PM*Qu72jSnsV}_M>bLEyL2@jP9tqO*qTm=21Z^+?vahWHGjztmecaHZDI>tZg*i z+-?{L;9wHpH_gFd)RE8IN^Om1yG%7Vj_|;+?m!@kitg216c_&VtY;C)H;Za|+x19u z#K!(v@=L<{)EC+v5IiGVWOLjs=LAJ;==d_XN#LWtIv(r}2LQ#{OlN-rFZ$7xql7b&*)0+er zHbwM}$bX=)t4kVMWSNV}LoA08P@G2NjcxfpZ28m}Y>0c`W^YB~127*{l~ySh0476=J)-E)^*7_TO24*7NS#R`&8 z%snTNI=lYTX}h!WhGmRp?F_zeA9vAQMzBRlWi0Ad$wx42U$93~i%%OkVvBT3b%$oY zav)E7n$GDBsM`?f=qoZV++Br5^aU1VWdxL=`-ZO&b6wENb8NdjQ~C0g@!^1n52eUW z^9B@x(40L%(^sF4%3`RjA(Y~!0lOqz(26x;>SL(dQte=HSM*3|LiqeNsBn|Yl+>bq+O64SMZ2eS1+jZ#Z{t6gz_KLXIPqYV6RSf2X0e_#Kou6Rpe!K zR=Xr@(`Ql(;`9|_0a5PV5!bFjBc2U$kJf;+bT3s}bVU$iMrKwb&JhTTGn~uqTT&k%;&_mW5I0T$e{9qi=pYkeZP?ufvRC< z301q<4<`JDxYEy_T)4-ynP~W_Y)xJ?!dg!m?xG61e}7oW$s2v&f-&=#;y$SNF<}?Etsi zw)=JE9G;EQY94tc`X`!2b9h0kk&!}x3rSc{fM~JNO!V8i>V@9#bR)R@L4j{bLLYe9 zaqv1Gk7|Fli_RdP3W$?#N&1+eo6_VXO|b1;cm=qY$H18^u&_QqQ{mi z=jo6halhE=#Tuh|=F)wNYDIhL_m8&mptc3^QQ9fYw*J(E?iQcpn)*g_su+vYG?o4| zem-SAk(q=@p)bYs(IFAtV=|6U>Q;y);JfT~5z zARZ>!f`wDBx?RA1Br>Ql?^MBxvEMPn`fkSi$1h)i8q>%xD*2OF>wF}OR9oJxAnFKyNwtZ!F;NQ~zy- z>x-AXfS>jsE7yTzW-u)D8=v4Gmrnk_^#J)ML}dVC!~ON&W%+jM1Nl+M`hWd-W!Qm| z`}@!Crc$$*iCCLXt`*=1l$KAcYXZ3c8ReTNMR&JqOTyNXsKf?hHsQ)JTT5F`&M6$8 zH7QObB6T|D;G(Gy)(O$6KOdOH{r+gfx`o+m4e=^X;KXiR?cd*cQ2O$dREVZrng8i~ z*!2UyYd_)gF9wnj$^|>+MN5bt=!Dq@lg{dFy#B4oqs-xR*rxhbH;hiA>Y zoG8?GVjNoKQ7Sm~;~!xqGds_z%kz4Kpr-Z-{O`LEJ;hVi20_F@)8Hp7+;7?!7rf5_ z<#Bu+A*LUS<<@QaJoqqfKY#G-tZI9cpEdSD?z2<7R9vT<%vTD(_l5gP#Lz$YIXV8K z7f-|E8MGq$&WrNgFc7UFd)ZB1kHT0H#X$Jd0UfO-cRmLvR{V2$*6LVEP7pWenW?8$eM(a`oErs-l_GB7$ckcD zN+Lc(5GTa{wsN{f%v$ng8O&h1a-fJDg|xqCUH(NR_d1c?jD~fkL?1OUX|yUgk9kF) zxEA}Xa+`{J!&??-S=*HzOGOPZSXS(73YZ?C=w?};ltfN^qOB^+VYWO=*&et zJ_%UcnzYKcuUf2fj?i=asmO+3RfNlnj6cx=5E&j7J!kM>-4l^GB8o{0M4d=iguoO1 zKhT)b^#_IH^IJ%cj-UyCv2t41=i3nOwVm6;Q=aCnMAjKQo}|k5fCfK}%_IRxxrI!$ z@WePyqX)&-hTXSSc&TnCsf+WB`rUBBlIw>x$v8)gCPd0rTD!FpMy)~{R`^oxwg;y# zarq0kYHzE9=427OQ> zG-)B5?uFD9n7pXp#8T7Jy_OrAn&?^S0)9$IM#*cBuQp#*zRS!Jif_pHnI`c3wn2oO z-{`kBq~{OpxTaT1J(JSZl!|_S zjk^@|{719g4__2soX}LPLYq|EFRwW9n#>46PdV|H3cyNwzeyU>FfXq-e(t(si?Go71~kttf?>5$4X zv(aEyjD*U|T1f)FrJR}6Ob&tXPhJQGF`_COc6=_7EX@3vMr3z${S=!3eVi1UpOL&Y zyv;%|&&zyrC6)3hUFv5{11q`5N^?$acu+SBHgiKYn&;$J^pKLt(uH2ZD;Q$bbsCOrR9w>=-}gMs~+L)(u0r;h6IGQlPimSmvc7 zHBBL+OxTwvc?;5sMvbp6D;QZf7vziKLiD%xiAg;A3P!5JxB3-KJuJQstHQ!#ZqtI< zNwuRTnC~^-y`nU9NwvU%Vr7%QFB%Qy?yzTI_;gxN7o{@zJ{629FCknr;OEd^z^V2+ zQq#;dRIXn$CaTI3O~ymI*jlY!x@M31E`)QUOst@B%b$Zb=x9t)OQ%#D>=xG=CZ>Zm zv4H1RJv^vm=efQ=U|L8$QEJ>HkyQn@<+^>gFvKm^XI2}Gl`WI-e4L^UJ!(U0Qkg-i z$$o;=*DAL;D~xybK^Jzz;-p>8VtUi{N!-^nonqT5AKj+{Y$>C9o$sBg(`IQ-ak`%d zGlAhAsEiSx^lAFc+rHJ$KC3Ulx8MvXZz!}nMbGa?po7oPoysbGpkmCzL0(+6PbU2g zC+5kreM+FLf>q43U@=H5=R-_$w%0<_Dv~j`sK$?^S7nyDo>SuVqCY)M4hZ)&UZC4G zNF5tf(@h+v)Y4e)F-x*~SDBo=M1u9w1U6f<6SCA7io8dZ1$Zz_^WfuGl9lPN>)^UNE zVS|Zzyu;hJ28+eKXW62ka0nCMwko{rar7*BY*4>ixEDud)!^|$gMYwmM4lB7&a`A{ zQR5;IAwn6^K<*!)g@Ma%MKjll!HotcuT)&7&gG<%Yj{?w724@&l(4N^MuJ=MZoEK2 zD!?t6+Y@>Mf*^<#zVVZk{`~QQWS=hC?YHH!bz)uGbOx0wDW1Dcr9dwp= z`fAQhRhxjFex**0pl|GnTQ}UbOe=}|JK^mDIp@gA6*^@V*~f*d0U(^Tw+pNl4x3Q>)Qs)&eHL40(Z9sjo%auTc5u7 zwtKLvIH7GJx!1VI49O4Un(D5>kT1i3KmCn*zk23D?R!mCd=q56+Yiwl8Hl2l5~G-N zVXgFG6=-03RheUWj+KZbeSu*y_q)}L0T&hO&&e%?bGIw{kZd}Mgs$9>;!mIbH0Zd0 zNCn3160p#e3#$%Ql2(HyZZOa=gtyOMU*k23*nsVue5U8Do`xxOsY_-Wnb_gWy-Qnx>N1T_PYz~y2& zZfGj~Z(}BX%8C%P-$B39_46{&-Hxqf3$}HV>dLoHaNi8lGF_SOI!RVbCxeuBuZ^sD z21;q<)4tNw&0Rz1Ml={1VJBhps@>k`yEHvY*~6D&$G6YY+icbZ2?j-{F~j96)%qUV z8BGcJ-`rv#>^D_ke$NyqDPZS33$TzT+R@!^er4g!|QyWFrXSf-+_IC(yFo= zlgQIbNjW#5xa2elUb0?$w-kaoU5O`<#A$;y1XTeSXf<~%u3+}C{L!gThomT%g{uk+ z&2gVY(7`JYt80ZC-~Ut-YA>26bJ?Ury(20;kCL@-|BisH5!##XQAACO2!^kjv7 ziM(v$$s}!MoW*-{?JFRpICz={E}K=RF({Z5)d;;KbiP#i_3Y_ZPsSQIW384&w7v-Y zjE_EU7OQb(MS`MRLJZXC=|iO_W2+QBIca?_R5DYvGDIs0(fLN%pmF?(HuZ$sy^2re zyX}IEefhlB<%AzYzaKsMK)!V0!;ByqF$nFo4VTmO`Ka;!05_62;mHK=W}lRHqKJ&Q z<(V7*+sY!#q2Bxi&hn0Hlx+KV;e>#A;cIel>EJ5Suk7=`_xui8wGd9Gc`L8a>Y9I_ zKoq?YVG;59+w`@Rr;Sz1Rs$RE+uEM`YuU2_@=GXYXmL}S)otu~0-0vVuS3lQq;)M5 zRk+z@2x6+K>0kOb;mgAXcA5a#qf;n?WF2@kX(p?fpF6*^09C zw*7&zCkIVsVol?71JRKSjlp?!{*I{ztI`9*pLpSRHldJL`0;7!xlUUK4~{CbiK*$Ow|b5H{>)vLA%E0bJAB9BM7meiWFQ5k zn?+A$lPHokNSxeE)_`0&)SO35IDHl1es$WHqT7j#L^|B*370{w@oOAy$3IU9e9dIc zzUuuN)w;k#2|IyNVqllQw%y(Q%rFgf^F^{`jV4sTl_NGV?p~ z><3zdkg}qp)46%{lto0m=vM0B0nVz@VU?u>kFd2@$~zG;&_bbyaE-CImvw2eJ8BAt z2%+jAvyAtz+Sk`NJ1jGdG)SwBqhnL2Qf|74$1c=a3W~@m8cfaqQQccd#qmY^o+Jbd z7J_?lhY;Ko2<{Nvf@|aM1cx;4ZjDQzad!#9wQ+ZM=XHL`@2$7)%$<2N>#naT{X zI<;%psqTHw{+#ay(llr-^}lQ5{$W7Q^SE???YVHWix9#8QM|-hj66yPmqwD(>qmA3e%SJRsc6tvl^6SMz?k7ciJj>vJ=JH9HY1 zc>|SG19DS!Dcvs^+a!#Rbl)nk`WC^>>Xr`?Q4n_?OiQVrh~~=TOv`bkKi0*ol!jY* zjNP;((&eWOvCb7o9Ri5fli4r>x&nw-TDMXEoeLP8g9R{0nzJ(UeSN!c(#MWmi^o@G zChjO?>8btYX$7y}wz1Oz+1Z?C7$dA1nLhLu-%evUHt*&2*PZxq z-HiNAqn7TkF&<05?8^p=0|&Bkqq=2?ht@?SeAtDh3w|x7G+4ZoQPb`;C)F&!*L3RYk=uYdya`IrTO_mfUOmuW8Q;gGofGN3V6;7bZFI7Wgj*_ z@m<&Kt7zMrzr~@%@=eO_^h1ww$gVD;u53&C1<{(5`>LN!PxluzfK4?c=)O?2R4m<- zd}_VyjpfD;_NWuhyxW(wTQa9A;Z|q`7tw5X^o-|9I9~Ge0uf3t}df z7oj82h(7|Y`)JV1ot1NCWD*XVHrBB_F62xGWA`e4o)O00=#H7=tR?JHjTIZ@EU{u> zb!x2t=FCX|_(5SlxVCdwva$%*h7inL=#Vp0m4~gr?Z_u8U|o=D zBdtO>@`zac)P~O@`?U5pG^#UtClH>2^mBBWV6p!lF*s1 zH4{GjI#6}Qe?K@Bi&m3g(K2qcj+y_LgkNeL84sWQ~-Etp})!oXK9`wPnk zM&I^n@-Fci3r*=sU1up2TfA0>#Dn<9Rb?+=ypwLOIYTWd2&KUC#~^<)CWIlyhp@7M z{oIO9sNU=-&?_`?d_NCcks-kEAdK#Q3uF~C0D?ROTJb0J>K}su4bS4Lnv!}rq(Vip zZ!;kGuRo~gdxx?&v0;P23=p`lPt$P{Pb#%smh&K4h*x3Ausf<&QfyCv4!Z$dqvtmw z)a<@=9W_U1;z5fHdUA};b|==p+1M|k++Nd0{D}pil9Pd#eDeV#qH5ZCU_Qvy*L7BUU?y7OZ2TnEn94;7sO~mqjfN#j1urFylLJ8&)fe9 zX97;bPJCiYh>6tl^XHIixPV}3r1g_QAbTj&r2@p;RE=svNesjLTV+P#LwL1O{jD%v zy5MS{=i#CktBE~7-BNVH$*{lt=7Tl;h;}psg7+n5xUf01W9Kcb(e%ORJ8@!U<$=3& z%gzYo^8pJ8qo*>9h@_v*u4vct11L05 zZ#+V}OTS16?3+syeB@Oa56X zm~{{!UMV0zmo{UTn+;U&Np+bhT7bOH*~Uu8W@h_=^UJ{++j74|-Tn&uR7KtO+hV0f z`0(ia4`qAP5A~xj!u#R&uLoP{8sqt&{4m8yR-n1!(mi)HIzmm+NCE2#h}24~HQ^1r|XD&_HKg)$oo2AVNRFRWhsZDx)#!~22GD#?KSl{WN*|C&AQY+Ze+~gO z#15T}CTSGGPGc|*c`)YFJl#PjsZI4wx$)i73sfrKR2IF&)`+{V=7A1F+R`Xe;RJ55 zgBfH-ALhPDyvso#;d!s(jaX&^DxPNC5{;t)@mtOhj3*cbyrG%3LV#%ha;Vnf=ovZF zpl!C)#k&V4fzm^bG63N1vbMd8mB$@Box#V>BknP=vjd zIE+(GNFRTl#EH=+*N`Hxle}zHlP=GcL{!Jd0J&%Yks|8zr}l)L_p$VfM_=^>UXEov zPnx_B=ZpDXO2GkfwL$EbxdIX$d*$U9JksH%^>L2R-_Yg>0V|LXAL&$=?AL|TKB_k! zGwrUuOh22gKWW;z;U6~YNP44E)wvjX7?B%NCR%nLg9NbVitQwObz7@%z@PDeZSp)d}z!4S$Is+K{d6;jX1g2OOrovoa~34Pub> z)cSU4KbK};m9k(AMk<=+;q3ukbGUAWuDHjlB}KM&ES;xz-Glj8VeWKVRa8FPOI#M8 zX4e|R1zr~@ZjRc{t!Ouj!8YJeQ*4yFQizwv5MRFJv3$HL-;ZaIcvCTl9XyIcgHOcz zE@+51 z#be*Uwr_e1$io*6KLXk74e$L>*&~^kN$xFwu&(0FH#{ntzskbmt=@`gxpbU6=%iz} zJPWOmOP=dZ%0PZ$8ri+i2_|wCR1Tvg4p;kZwWD9BAacDLs4v{xwbqNmb}BtcLg2|5 z{Nuj#7cOH_xZ8s>H657-qH%e_!sfe=(nP&7K&0J1p`CPw0xww@X~ynjcg%1VQ( zdcLH~fc9`O*xb;T@*yZv*;PU2s}$^vr^{wIQc1sQD#?Qe|G@KnLH7`z;}tB;`A{rK zuj*!-nRRslp^`M|{^nQjxUv6fCcg zJn?wAEx`^j=n8f$vy-mc@p}wdM{d;VY0CF_J{ukGM(UA0K3fZPxAqbj6|&nO$buZuW`{ekdYGA`5accwQZqDP_P@b#-*~$4vH(Tlh=@9*kY@+WhiVfB-wl4Cm;9a!)J(&Mgw@+lp`rGvgbV+!?xde z!z;Tk4pV4lx#ZGGoyXFE5a2Z0aDG_K7Q*J5;2;XAv8gm;8fs^3;{ICmUyBv$#;__F zAmyO+76t7}BV^gM;cXi0UJfr)FUKr)(V=BOm-V3E#$6=@`petA!s0{U>c6Z&PAepsTz1Mb88U-CyOm{boIiH7K z+q77*FMRw35im0xzha^C70A7xT*Oqm1jHZK;H_qVV$@F(aSzI#aG__q46J50hpXmfFgjMW;Pt~QF_-6E zsx)F7@gy|s(OD6YoPpqPhI#OIJT-rwayAyGH@t1Nb#yCQ`kE%$dXlp9JoZ;)=Z9?4 z>gRRVT6BT|ey`{d^rf#g^~CpNm$G_96o%8yEmC(LQ-cRil?mV7>|1VN>Ck@>i-biY zAG)voP??4m638Isd?*??ojX6esV3`Uf@N*I+h%VJjIIa=;}tIgnu=!0KXGMmn|)5z zQJ&i|d`F@zzNY}6t7h)c^5TSuBx?2HwuDbFX|~TmVazXiP?ngHYzi_)X&O0V`|^Sp zXIIu7@fjm7N8UL$Se^4Mt-*czf!lt!2&QqJh9UoR6-q%-|MW$;AdYd}R^}JhNB1yu znZRXbjM*Vu`-4P9_}45Io|J-@rc;BN=fSWTgTe68456?HKM|A+r;oKU^{is4YgUR; zXh8URilTUzAYiwlTi-2yP4V>Gf+yOLdn>NmJ1&(nkihEomu!Tjx0-C-ZFfz3x{rZr zc*PA0q|Q~;Nig-oGau4Ol$4qt(nTDsTh46yl%ZXB^?qC6G~uB|<(MQX{bRZ3uRW_K zr+gR~m(oLDus=yu;^fa!-*d?-3g|B~mu=(wl|0XU_x%bk0t zO%B0_TbF9 z*jprXWtCj^!XrMX!oUdh7YFx7Jz!d2*S~An^4aym6u1W|SdQgk_<{FOA|>x(O`kxS`j=q$hh(p#+pb~MYb2Yo1!@m#g)yNm zCfB91CT*BeOMETjn7o{Zp*AnUR3hz%tpesG51Q(zpf1#>fsVa*@{PA))YlKkXx2B4 ze)Sgj4USC>-q0+j8G9iY_O)#I)!z0zg*C?U`;>W4%DH`^@Ow@|fz49}7!wjjC280} zIu#$yW|IH~^`yJ zET_KrJT2=FlY%K*vF~-rL^tU!~HDBJg5EHM+PpEWOehV2AH`*U&U2 z&RJVbe$3Gb`WA++I+tW;JW{w{*JBK7iF!C3=w$^7#9jqu-^O^v#qgRoH5@{HJ!YiP z=0#=VzEifl>SPh0T?|nNag9H7Ud5eE$jf$meOXkZ@-qbl$AR$gIUgA+VSO zgZ@}T&xy3==L}Q%G+`=A5O12T5mXiQPaOgO?An^mm=1O0cSGG}-0n>cw@~XGs(BeJ zm}!UW^c6mOd4ApBcrTKrhVGU$dWbVMWO50l9;(!Okx2Nsujz3NC>dpQ-Q&91-^TTk zg@NIRR&%JCE69}EoaBr64lg1N;IQKYcDpW)+NZa6%JVtH*An`^)d`=8Wcnnughmdt z(rY{L3Z}jCJ5*nhYjCRdg@uq%d|jmGdVA2!=$yeM7a;*5s_f-&<+Jvw-`p)XED#3c z6;ulAqmBQ+2*m$6XsZUF21I49PamLS`$vrpW+zblme9-s*gHQT%pDEQ&}$yz2;D<{ z0o_K|8$R4wSQK7gqQ8^d*vB263_7ouMs9U2 zQ_N)#9t8)O;N%qTVLcMr|hZlmNjnWZ%uPJsWdcJCcwDz)>$c~^*+us!}#sP z%Kh&kAYv5I)v6zAdil6z4)?{0B1ORjEI>WqY`TvXO`@<0Yn<%>4i~IqnET7SlwyYBfd4%F=K3g z1P{*w1!V%AKpGx6rOk3i_mlzS%6JWcTG|4&6cZOAO}JXaE;lWoEEIP1L?z@aA%S&Y zHx>ETE12zbG$ghAo44CJr%dS;PYDV2FLD#du1QEm3@y*8>V7rt0ii>gJNcVIzUh%| z=FI$9*5)UhtF$YZ5C$89HF7#iDa z>K^ljn!}er*4E}=gT+$qQR^%jYG!iQ-y*^IVirBVOd|z^fv-+M4m9N^7i@PU7c+V` zlX|D$-C3ZS(X>PJPtjXo_vWkho0I@fTt^j%SvC1^i){8-BBEE~1^yozI z6T>5fL5b~Aq^Ej{bVrJwo-Bqc7U?S&ce(N&cZ?XPLbDOEwbh-*x+WZ{dDHb)u(OLL zE}hK?@P4-4nD0v6t4K;Vyt~!j^j7F}-4T*U_Mo@jW;hC0j(V$2VoT5hd=fghF67IZu0KdhB_*Ma{ zjR&)G2u&R^w;m=o0E3O?@vGcq(ZMz%x1Url*>8Nt65bL8wJakwBum=b%wh_~{)%%F zJz0Xl5p4+YbBv$Hys<2@E%l>Kbc3eVGn>2~N(8|t{=fn*I=S`YTIr7eVgh7dc4-7c z>7_bWmDHc|twLSi{9f(0u|Elfb3Fa!f%2X~fLe;i*`-dX_SvABk^75g1}E=V`!khk z)z3o-J@eAX^5YpJGy=g;e#WpQ+aptQo|%^~w+T5spq4E zjvvpqiPX@s!_pU$T^{HPicnhf|%}do7rpm$(?>1+GKXo($ z@e)SZORoCXOIh(nYK5p>oD%%Fw#irevuN2Xe-TblcBff0J%zNkaO*e608tT%P7x`U z+%wS_W0qaWqDeezW3crSrRP}4%H4JT59{NI5 zq7&rUL0pE&mSzvJZisJ1|LQOs-!BwQ6}o%3F-^NBr$6V zE1?eks%}RaaEhOQ9ak{m)keq$WYFP?rDMH@Kg*%6WZ9~v3JweUjuGCui~G27zbvur z?e01gvTWiWQAA7OY)b4Dgr@P1_^L|yTR@r7=Vo(A;$ad#6_G^6p$1oxaN(QT&p}j( zHWMOt+8O44YKJ#;_mq+;Od0<1a`w>N7?cGH=bB4qTtr(RLCgj8lafup43tTctUdXL z+G*ckqU<_Ai#iZf)=96LW2>!he1~I+5NIh~Z9ajKy_hYVQR|sn-6l4XCD%vKY^EU2 z_c~way=Hw1)nUF9%|M)Z&tl5SXwro6ZLsqi{alyAQV-|f znlLM3fL(OtRHds7IxK$zuZ--M^0v?&Xl}^o>E!Ix zX|pt&T~h$QV%~03$nl50g=UQf*HP~yyBw|Ojm7^v8IXOQwy1ryS|*4)zePR|p_pM% ztQN@Q%ZDMdWVzy3Zyc`KQ}vpqd9gr+_O4j0*eIhTuY2Gx3g6g2uJz7$x2XVg<!itkIvMAH5sDr{2y~>b`B0>C^Fi=(+c4Jhrgw zOHfdT!mUZ64QO9D4O#-A3>re7mYtZ=pi?{1EPJjj&Rja#E7q!^st^$ndJ zQYd8+ukaiw_^9=E=^btNe8xymTNi|3ED2z@8;1V#b$@z}UGDf-g6)SJ+QBm#b9CU6 z9Kr@RHV{%@9g}~lM*8le%$T*S+LVMM&tC^eRYJjpFKKZk9d}SK;`Ds};5XQL+^PJSlH1G4}_ML0iJYSaK>7K(n=99ykgkYgX1k%Xes3c(zCNa?2- zHC?VMGKU#!sDij5J+@jfHC$|X(_yA2;&NnlxTIBECct&&kc9+w zaQ^+Xi`zj3LZ)V0m}g_?1=ilz8r_n*bLy7&ZH&n-@lsdikB!gg(tXhjTzZSrBm=G% zj67h#K3kyC(Al=K8?5qm*OlJGqs6?BrkrgbyulMUMXwF}^ZP{flG>C&DIArnthfmn3}lp9u%2ZO4@}FJ)bix4!q$oYK6Vd^lNZs))^Op?GpLKZYeW zW%+Rv>%;5WD?XAx9+~Ks(5hX@{0%-WsIa43pwe0X%JfrjF=W>`y1Hzbayvs-YG=@?TDsyyK z9DiPkMWrHFQXHWNNq|#kmcpId?vk3%IjXGATs1uu8ZpNYRu+*3`gZese`^LbP(O#v z*7Ev-;Jd4c=D~M|5h?sdHrVXv^K=+A!rxu=q%oq5XSV@BV4^& zt=ojSBL9hvBche0?%)<3!VahlkDX^0CG6|LC02iz7N>FS2sgxwVrr}^ee+JWz}6zx z)^Q^Ib0l=%3{X~ zHZ9JlZ`ggQVWOh!v*i-*j&?EQ{s8khs-+xR!mO_zv72;1#g9+k<(2iqul8Cy3(#4} zxEpP@9v%>=Pab@y1Z1SYi2wvg#0iDEP@KH=RBfuLP6w!|%Gr6Oj3J|z?m#K9GU8oA zJ+{S^HrLmzi^v@%MRlfe9c-(wdN|!dUq{_hxJZAW_T9#v>!X z$S^jcJUP|=nFs`~U!XCQxfK4>WBFz6c?an1yGL+!Q|`l3ipGGKg~M_l9o&*1Sk%M3 zsIod$RNOVbH`e)iL2KOfpp)xupN~YY?3}1p)1wSPd++RYV~MJIS?u2Ey6my)OB&@N z)-Z6BZBdJW*IIF}>-9Qqj%D_1`=y3)JglO$)nB?#%R-~WjDxn`jGR;K?naQ|RiB(y zDi2w4ytKRNlZ%Gfmk_gxg4EtTTunju$01TniC-fJaqHvB1pf28Sv+z7^%#jbrd69{ z_T2)nHz{AE;(BMRAeMjLkRvQQ(W%Y`e z()lR(dc4}oTn>-U;qgE*iMVXiM4wx`{ z)xtPKC!nvzK|SZCsR=qVG}qvkjNJqtScoJR3J|r#kXjF+H&Ta=z?Q?wub&|*hX6Np@ z_yix)$~&0PjpU3f%$@+<8RNgepof*52HYzuU8#y#)z4*b;Hwz&4^k7W$fy%d&T*?w z)d_-I5^Fb~NHxrMa4@H7^#6YYiqvrrMTQ_o*ZQ8=(&-aR_4Ib+VRcZqC=#O!S#}TdaJ<~$& zv3o1~c16vJQ&$hQxFF9=JA-o@NeERvkIQvC-BcgKsfB3-M7xH?pCi#r8*78p@U$-{ zcWl@4YngcBbgQGde)Ndq&J)FR4JsnsxCLY=lcW@3mnUeZId&@-be@y#ZqjsGIQC7b z3b@rfI%DorK%c#!9j8gdA#H5|P2f2JfV~={#P!^oH=a-H(?wbixYHPC`kPySnZd)A zZ2Zl0t<*UvUyzo(h+y=FKUV`pPqQlJBN$SMm7VpV}p=pyXyJ8a8z#7ZWYDh(0> zHU_75-ftkc$exRCJ)e*5yNm}YG!zx*)$};zoGMx5;b$3~eMS}=i4I2KEQGc-+d!lg zz0}u8pD)@e5b}SbXHS)WnM&zt4mrzAg{`O2)TGmhXM*Z4m6H^cJjhAmf}VRZZvpIOLnN z2Zi;M5*K1e8vg2UT=ZE2r98`tF2d#udjE#Y`(?@Zv;6J=Fc{VA#3JFo6D z&Ima-DymMHYBFuUpB;#J6yAX13sv@xWeTI)5BVoU+yK7rLnx#mONex zhiC7%=ceiGB0SixFT;0aIDA$kXvu8x6bNq0R;&?+lBQaGG>ECm^tG!}n9B)Yo6#pFv$2G3Tjg%&-3 zAz_>3_p*cr{|A*jz|mGB9;4Gs@B`=g_Z-n{r3MyLr&)TZNI<@fp_(_B2H^zj^%THE z;We?QL*J4+FTi;fD~02>TdhC_U??*Z=nEEKb4t}fj~m>@FirMiWjFxkWJ%@-RN-s-wnKdkGPeRd&!#9d2!roh`36%|;f{Loj~({jE-ls?SjdN!yoSwpB#C zOUnncylGNwX%3;T2s1OL`AnPUVSA05`Wb4Okofx%WBxLFxo&47QBS6{8FS^Sg{(@_ z-Oufk-gjLciV(0_P^_-+J1PV{7Q81b3lyJ%12A+LchNwcj0m)!N>8TqjSZCzYw-n- z%z}dZ-s&3s^sn~ZR~3CT2u>^wi(mFO7r;JWT!CUH>C`S%8j&YM5iOD<1u4{3&V4~` zq-7?c;;*zt|AQJIYlC5zm@K!?RZ|4;ekJJnQAeqR5BW+SavuDn1?*F&;!d$% z#zG=je^zNFaXmCif#kKrNgBS!6Oh?~rCWF2kF&FA7B>E{A-VhM({u$~DFNqRdtowM z=g5={_Hj2}qUkLh_$KRS1KsY`y!n|pYN(!~`Q7-7op}~9w`8@J^SXgLqifqR5xwEv z>rnF*f5O_Qu;%ny>WKKsVGr}zo_78_gCpQ~mix+QLG$aUk$ghqZtO|e$rN=J2RqnP zTS1YRnk#-r*LotWJXnr{nS^>`1R4qv_y&jCu#x5dF+72cIJuT4tH zhMkPQTfNo)y0uY@>>m2RF6=JgXQvfxme+ZDk{<~9A?Q?>w=FbA8z+|fY9nA7Z4YUT zdR47cX2kzfHIg&ZuIvQh?SUlBde5@0p4oXn=ss44%i`_ot>l)te)1^#-18~kJOa=t zqgA3C!RCkNLd0X#T|P@hG^^#3F4bepp7B+qx^yppgYJW09Ku!vSx;Y}vw+IYDE4lG-ujX{H~J&0ES>&s6;m|3`B2^%Sqo5(CI zuc}o3?yBhRUsK?%zG!KAxKUyu4OXfcV{Tc|+I+o>O4=rl=e)4p8D$wm`iG3LcI%*6 z!?y1q6kOdlDNc)oN_3w*Yj32N&i)^f9Ob@(f(=v#Su>jx-5Q$kG#-o12VS=*FKi73 zvVNyhs&z&Q9htgz$*5`umwDK?rx~7|`8R!ha9e$rFl~~T)S)#XAy5UVc0diWt@9}C zS&Sw=fvupVvr#EvA6^a@J}qwKi_PPum`Itpv-@NR!EvkiP~TL$|+)jI6%>0je5&L-?3|uGX!<8WlKbs&)sv?mzGvu%V_o(sGHJ z_1~6Hb;`O5Fbm9xIn#$DU|e5DT0;|FfdE`z@@sT%5FrPq38}%rFDMVBza4as2;(dM zzLs}Gihl_3ba)QgSXtu|a_U&%%MN5GvObYVQ$;Wj+0MFs@!TY}KK%aQxd4B{R_k}n zbKb=X)XVZFLX^q*gH95h65p$sK1ki#q2u-}soSd)Cnrm}mjSoEdNrpQ_i{JhsRKEUaIj}P1R z-7mYh-PWB+*rBYy;Kt+SO6Wo}v>UkqnqW#@h1=a+hrV?^^qjd7dwzHW_Y3n`8KiD*0L`%s{N;W3cs`bY9dgAUxnu&_7%LmgW7= zRL->VZ8H zwF1%QjrDy~0%0|<#`5HzcgX-wO)_(_&~MGge;m1DwInE5##ENqXAS^dUY&A0?hcng zEV9D)M2JxS)Ki4vPVF6Rs;LnNalx@C4`hfijF~krICDU9c%SqeT+M!$ONI8^^p2g- zkvssd7G3VxLtQl9q7z3t`0;OvMPIOav%3`~xjbRxtp)i%C3~UgWW4@+h5uWXl{8FS zIql}B&|R_vl}(r9*5<=63spnXlAKAev^)C>A>49iGxQ&8VJ;|#5xENl?z=-eUDQq_tmdlX?eYfg@+F7$KG;jl zoN)g*Q8FjYl?fjM{BmvnjOX_Fv#KUlS|T+@b@;VV6Kj`2wVZt3{TR1U`a{jWKF{w~ zeZx`HDs7eGBB3&4S2qRXP;Gh)XjVemHqQ?1&BOks^_$CxH#hV5N!^>9cKo%D$?jEZ zvEUipv^W00Z0dM~j;gAk^9jNUhX_^_e(w!%T@lLMU>Q}Qhe);g*LEYpzbv_)E@ z=NQ%2i^)R7C*9SfzUL~vgsfc2&dmLQv3!9hp1X6y#|(m$LF%Ndi|Oo!CP@Mo-OWt$ zs@F?*xyvdtk@a8e9BXx0J1|smODT*T%B&v8xYUj)*9_UCI=@tZ30lznev zx&gg1#x`aIOLD%heD4yjp#Y&AiMI{AM>v6@OeT-f-lKmYP z{a0L?bo$KY%1!w-HV&0T!PKimbP*7`Jv(_kxii69kPnS2$L}iRFs^x(tNNcM6w#7T zS7u)<-I=u1MbS8gNn@3!D`rfRqTq|`Hf27sI z&Nn~iARSxXtiQ9IAw;-9Ct&yLPtHv^{+`~#%_`yQR&qj$fcUJePO@6IS8VCG>dDiB zAal3b$=!Nn-L4^DwD|lp?2++6qs5yF$b&SvWqdvxvniC=D?>?{6e3cXCa^54!|S#- zOe!_en?Kf0$J2cCRi7VOQ1bai8rSScqE&{Yc|=tEf={;X>L{LWhsQ;Q@Til;_Ds>l zyo@ARH08}ZQu2KKo_2fCRG0Uf0XedZH0(JSY4e5d8PORaIlX8;88LHES1^j12`aZp zLM*Ew!6oWyK0JrUC?uN})Lp)GmvLhXWGT$E1a&v7+*iUVxWOmcOLZ*IhS%t8L&+O==zNj7MlQlv@&t}&du2~{`WP;#l(>@G zw5XqL%y$b+Bw}+}^LDQ!aNN+mTsd#+)$NAYO)AY|dt8Oyn9}mtc0`tSe)m%wf_0M^ zNc0nLV~4vt^;`dhF0)I@;dv1C$=`Lu?IeT_%@m`4e#1Wf4opimUlmy{Ul95;miPfC zlB|GgS7No&Mm|d8d}7UDt;9R))FS0^r286KpKcV5W&9`hyj9TnN4tYSY#ncA#cgT> zm31k$oV+y0UsU@DhplNH!aGb_nNh{zRQxLikVz(FMWuf#<7S9`XDgeuaC^fY6&#oM zJllhg+(2N{c5+-ZWv8F*jbS7KeP4im-UfC>7Y%+cl|Lu;=yhx9Bk+y3Tl;>B38a5j zUt_@)r(+hm=5x^HGgF%M)qgQFn+A!pQ)H|gNFY&b{@A7NAMk6qRpWH;j5U z>}oc;W~$a3T4By^W?K4zI6117Tk?hi(DAA>lPxaRgYJWy_X+A9@3Z=+n@Lb8cEjPu z&W^Z&DN`!#@ZEN09y0QSLyX~et$Yf-3{+o}eKj&K9t@v2r;$-hP3}Si zoD1n^o6{8jmXi;jt!g;4NL;UE5Eq(vQ<|3vVB9~j>pm?fx_xTQ2oMW(Y9=R8Nl_i8 z_mhORTB}Vv9nDG?%CnB97c$=hE-GdX&G*r^#0?}G_)+fi2 zzPG-(qp7t@?|EJuc~aDTiUIV!t{Yyb*uE>-JY5$+*(*7M->B}9TK>|Gq1aobK-H2@vy(1Fn#iH76dImA z@y{M43S8^+2&=glw*4Bg^Caw{L4szPw!Lk?Ph?g<*EV<&|$5s$v zEWMqU)`UCtlT6o`bVdycWuf~;k&Z!ty$FUKt}dvPYgrwuWBe`F4E-I+C{)glFx}N` z-+e2G$en&S`ffW)$aVTl%0Ko&(dB7aSh-Dv5qH`rM~#2JK49c0q5t~x(H7zVAe8J2 zuBok#B9UsfU^;3^kyGdA_=6xraagIcBfpLi%`!6j^GtedyZNcS@M5K+5P!0NOo4$h zwFHb=HaAN~=ANEe05}RzcP(prWz}MtEW$Im@%~23wwzuLv0}Mo0uf^CqH04IG+u|B zTmuN`};DCel3-^RS$1%sHp+fh}yiz z3n@@6;UHjPxe~ImArNMWSf?(5M2j9e|Mf__vDtfQczL|OUx0){4o?9L3fX>>f&Tfq z#KyXKV$s@ACb7b#54XnS-@8|{u(rs0mXM#3R-JhLe?2s4JOk4*F}cSRv=#gb`$ri@ zVSb2K(4^1A*DH>A=S>Cwc|IRmR-o$UHrABT9lqd(qK?7&#DDjEWQ&m1aqqTPn{8Zr z2Ll5eA^G{!mzTr&z3w(PHh)JGExw6$@(v;byUomSX{e~(5`Rw4N;I>uS8X?czeBiZ z=`T$FcYJhV_K9ruvd$8vj4AKD@#Y7lF-3}nB}Mh}-_eiA?aiGzyKbFju|%Td`%{B(UUvbn0@u9%^hsY5a&AiUckef(PI=vZDH(ORY;wg3xiPSZ?KNZFzZq%t9p}DmPpW2X@_lF_iH1 ze0&M}(!be@yrua>B>j)g8QGw~e6&<3&Tmn|kV3HEbS0yywTNk}V3ixmFgxJ}&um%kZZ$M^XZl-i0Z7Vj;74|33d6F#?<8?i=pQ z4W#vdmB>GGjl15;q`a3C0GtK*3VQwZ{zon(M8q^+ItYXHiq2C1pL*>uA6*oSJiWXO zj`k|@aRibG@QB3zTn*+({cC1a&ogHvd}=X)4)NoC#yu(2wUatRM}LQ}EwR0WeAc#| zq5h;3Gixli-X~jkSwCq1_6=KvZ^9JMru&wimaHp8JO(>Ca78aZW&a7mVX~yn6q2t7 zZ@YrfFrKiaE#Ts z8%L4+I`j?ufRCQr_h)_<@lwWj{;m0}+cpXOLd|GFCvOV8|t_7)a#QVEi;zy3sE!?Zi!x@`-z3E62o;36y zNZg@Vrmq8LF4|aZX3qvp?=RiGl$8xFr5#Fim*;Z02>!L)oitub_B67IC<#j-D^skj638j*^Yje8ujgmFwa!}T2l(G_CM=BL{!@9qZL +

    -vrA>L`yxyzc3)n|-cUn8y?2=+rfzjpA{rkz=3iRKi^AU|QbO{fPn!*&AA~kC-Q=sD z8|DdID?=2RdK*>E<2=e=Hw~4H>(ys^!ou7~olm)>H-f4Ib5}=;b4a6_z799fJ)Gt= zdF$0z{mPw}Ce=0vfp---fWq+{AEhI6_w(mX46?nOZ*$>cNqw+4F87hy+?FFI6`CGr zrd2&_M8rRJ1>Y)~FKJa8#wp}6Zq*h)zvhxNSc7_mNz{ImlIt>2%X@WIlTk2jZ)do0 z@@BQ)C+E`ay?*BN<0+-gH}YRIUnY*H3Ya)%=0KdgI`xT7Ig>eWl&90|r9xE+I%x_i z`CX}Kh2q|5W+v6%ns*ebGZD5P-;gmCoc{eAejZ0-#fAFNjT+H$>C+Of1jd@uO0KtWrS2;#$DF_FFkYutR4AygifO;a zjp5P#Ju(q))OgV|sylIBs$6Nb@xqxm(hpp-!= z_wogpt0bJs(Mk=^tbmd}2_}(QKcOa%c(Q$HW>sir$<#1**zDkRR9w2L0+F@zj|8c0ZIJii!45qcV2l z8GL!kPoJSzAv+`4t+*oRMX50!;u5{^toL$YgnI!IJQcMW>Jq5PU}}J!8n|&$)K~GE zy~}URDO)zCZmaCi%RtV&iuW*4l?_+t4}V}C`NqBAXYoe)EIRox#V}ESxwuL{p)!;0 z5{i_>wpBufCWoxfAh915Hu55z-`&OKJ!~_x&$g#1t8z7F-U%nZgGIKrUmEW;kh#+6 zfAQ+z*xho$LamHV7Ae#b@FZt78`ZHmB}%>-{M;Ld;&-8_KgU&;4^R=Y^#<_D1Vi!? zv|&?nKDd9zvYw=XFsvpyZ&6xUAsJ{#|TLB94_hG zkL)OsynU6G`W&}aDhm@f{I!37wOCZvh|xzu_24DS(quN2FFT(rYk@hsjy+`tUSYox zmKFX9Wl!#;;%&^H`+IWaL;>qr~epPw<~RqLZhu40;)=I+;v>Q1AbDYVsW$`!Pe?+)+0B~ z)!KbjtkA}q5g`dr7?3{+%ewzju?HL3pFpz~7&(uXq~957-n%j@*(I-E9u`+)TxR@~ zpq$6mk6D(qS*dwlIh>B+i(uJlXm>oY#yGXQ`RI1<`sqq+WJ(3i90kN1j(LEYYARf) z3fJ&7r$jR=G%;(O-h}Or43V?Zf@(0TBVGjZz%TbORU!xz#KRviJ2SYDae|PERw9Q z!%^Eq;EX{9X>QRmT$gN*z^xVtRM!6R%hXt4Bs-m)YA8}R82iowYWBxy8?~_#>?QZ# zpg`3n+5O*^%!Z+>k2Dw)uf#5^z|^*zZxumamLDI+B4KfFAG{-PB;fAx)$wxb{hl30 z1uiL7(iu(9!(9~ZpWXLqGt8HN$`ogg15HL=e|568J2V$k+VJG)y*D@?j|*1Tv8O`3 z->=K(M+RBzJs_;VYyhqepxxthmk!+s>n{eVj!Zc2t^tVc)1wIV_4f4xMQyu|0{Y79 z5!Fq9kK>lpp>+GENTAm)lIqb8Pr?1Fy6-b*A1XKMs|@%^^u9j$NUV+idFf0N8gzCT zVCs26{)g~y(^{suirlU%8e;}gF@q>R^r=AXK8J zl(eQ@jy-x~A-rK>_m+uM)&*F`XkvNu>&hDeMNkXX8*K4H>h+Ow zX5OORr}2Z{Rr7H!o|5Bo0tr0}Gu0n+b`Dkm2DY&DsLH=yLP@`MPt#!<&NV6v=)UIr zC6WT4`{!2@dSi3QrlRfg9BsB?dG$ddP|B=LvqI11Of?49^nh-KZw4261IIxB+@q|% zqDWtTs-bObtI-l^E+g;=b9m^tzpRETSgGZX80Y1$JL0=xQHd|zB z0EGAp41*=T$&wdwJ;4I}=84$Ifc&m9kXW%2W4wW9CA;1nQnqzF7#dt&MHAevI2`4h z5!fs0G?iHPjL$OVuZfGkHDg4ZF*v&4L+28~g$;w&($b**9;dYXh?3l%V?E*?V3LTwDF@?z^)Jj~?tTOG%hx6B zc=K==Fh5qgOMVY)6Zm~xk@>2EzVY={ACb6okQn&J+%te(ROvL6nVaFY>oD}E`I5?Q z-#4g%VXVf$kJ~wo*%|1sS8{+o%yRC{r^l%N{0|!aWB{W`?BX~{QfesACUDvrT(Rva z7ax^$c;wbg)M!fQDcxYwj#$-LU5k-I0mB?gwlPx9TxTNWKlS<#t%Y^}OT3nN9Wnp5 zb+!VGG+heV#MHNswBhwFaXtGnvh|CCTFk={`~Mn=nvaRr?U3p$&96RcplonZ7068h zYMmq?Ovfq}DfD?Y5GuvVJz6e4^WQ?Hw6EJ85qD(!P_ohd*}o2ky|q`3PeCld01BW; z+yANHZ{G@T9*0f-ogd%-mBBMNeB4}ktM7U#O`?LN@*KEbpq>v{UoCe&{oQVV7n}%u zeA`2+Qjn7pF&A`X6Q_79Mv%7G;z}^n^rkK{V(t-$Ko{}XI*`U{1961#53X{x%`mq7 zSmB%6Z}`vvZ!*)vdkq4Hx{?p|{~)u)Xw<~^i>-Oqo;VM;;`+HF$fD=y^n0hsICyc%*riv#Vdv2hc=`2_i2)jwPsBDYY3$rU1SW zL>oQUVe!ny1f*s_{Dc(vwp;zA-QV;6xLD=xh!W}aQ84!et;*VWOyZaP=E`K$MFJ6j z4-5!_Z%owcQo1 zvSdC&vyUU|o9pXS>orAkF3wZ$*Ny+(!>uGsWWNPV#=Y)MHGV_hHCwEsH!0FwdP5O< zv$_n18gg-Z98NvIzY0)1yqS;7dQMba1n%mz=+6!xSr9U>3#4y`BKV@5D1_#}a44(a zrrWq=^qDo!X}%N?sN2M1pjWE#2lO*Pmeq!I&y-vJvF)~NJ>c=UZ$TEhzYlmd=YK#< zfVzAvrdml8jSq#D2e@zC5iISK?dR2JLz)A?_^4j>zq*a`gswYxnt{GQRxDy>dKhTjowE=8~=al0G}Zi2sO z)eJUQ#<+IT=<~c`xJ5IaxRNOd;D*F#9BHFP#V*cQ(J{qu2R#do#nqX}4#U)JD@z8R zK8SS8fv`J~tsID%6+PrN?dbH6e2Bj1Fh{ZV0Th9N2m=nCeQ{t;_-o53ukj-F{;bgP z75c^>@T;?6!q$p~yZ7V)cZc2m-bAves|xF={tw#r&w=e#pibRi`ZVlVu?&~6>DAEB6s+Iqcobq9-2F)Nd$^7;_!|V=vo9-j zEX;0)xUPOysc=>T6~5&8*5(1pQ#An6lDiN{5{&w?rAADIoy*K;HY zwF*$8i<%ls-|d`m$gX@7ujXFmLrU{cdb`NEujZDxpB)^F!iBV}t7$lP)wal+L2ZLD z&HefE)^v#sAaZKW(~EC1%{>8<2Dt|9ulxCB&aODbXMK6*)^m9-Y67_B2`$?L(wtQ1 z^dRKQ3Waqn(J77e45k)(K23e%zzC`M#s<`oRj0dIL`3Hi+R)(<`*J26Y3l)jziRR; zs2j)Lx33H=&M}~U7p~3)d2kt>NB6ZqN)$NpJ*a4-un}#6QsZLjcQSe=Djb2Q5*^U& zLCh5FChEFLG^1V>p@oxQTU0xzACHCvIt_q5PCCZ!(>=OMFlx`0?xSiRz5l%7GteK7 z)!^J^%RU)=@3PrI1FePPnjH5M3ceORLe97b4FURWu& zWumZ)9eMmf<6y_;q)!s}7tfHqDDTy5KE6{!Myg5dTk-ih+1Q!;?&mB8zWI}UD2E__ z*zI0+^oSHL!wC)ID~~E+wW%yb4CWR}k%1aW^6BN!Z>fReBk9eH-*IdE0$?0U3fA2W7Y{Bt%G%)&Oe+a7-Z8T+Ew1Ta*0 zjOyBNE?-F#OqA0)NT{|82j5kI#9z|14^D+2U$zpqKm@b?H4Dfu>qw5PpV%hvd?;oC zmL=<$rRKT+LhmHNGBq+<7|%~jE>{^C>Z0B^w*(!zwHO!4B(oCmDiv}`&(vc%(pJx> z+8ei!^9Yk2-ky72td^azBbu+_zAIMlN97_(pFO5RXVGeRikAHqL1{Bd)QbkX@U_jJ z;QQJu)%z(2HZG=h!LKViCJ)&?#mAF1C6_@R`SFeX+XS0bk6+^38DWFspCkdg_p%;b z@6&yafvbpzq%isArNMR)CC0^fome3eHaIuQti*`XU4+uxVs_{``v`J|52rG%(<@dR z^4)BR{aAlRhyC+CCg*W&YLM5y?J`CVgyFK}Q}dgG6Gcrf(e!@xRs5$iWRJ;fftn)yU3`1yofQVf8c830zTmY|rYLol6UI?2HC zHwDb}tL11<-RIMea#~ivUEJE8a|6k~X4^AvLVVD#9>3ifp$Lu_7wWF-Q`F@x>TkQB z-RzSK|8Vj=ajwxy@r^_5q(ar%Om1e?2L`{3lzocwEnuulEeMZ4>wP*P2xp&{FG$gT zEdj?jG}(5?w@`8KuDTRMb?_$jg_Bzn0jOleQiD>_h{N#Q~+E^SOl^ z1Aco~10_slpaT&vSv+~7Fw7fk$|n!%H(9ILjDaK8d_9ul`OOaACkn|*8kL#YwRG1U zPJ9{P+FZ;aA8Sid59fkH4zx-5D9NeEHjN&@ zi1HpB_K;&~4%@0#qkrIZO$G%UbyOtYVpQGVV=*)8-wD5*m6n+=`E!^I#7~T>ZstzZ zUb}8?Pmk&dR-7372dusN$AcVg*q~~=LgRal6{vfF5rxw7n_>VvFkUGLOFi={>!r8c z1=Y~6XRQSy1A@d{QX0vkN!_?7T_ZIZ3)eLPUe{C7l-`xoS+V3|LPi+KUMbf9#wd?= zwEUl@e4WZ#?G?u37&`y#14Bkj$L*pe{NsxDq{@4O{C>kIk==m{LAvv~qE3Y_2JM!F zzErUeektU81++b``MRCLFv9q@PZR3%sWAkaw9%(|=JQx1Icwa`#IqV7QAPgN4`(rD zyb%7VJ8khZpyRG%TYn(;@xn=~uEBCZJaGb&O5PAm{AU5ZNH$UKHL}0b{O{zzCi6qd zyouvOF3?sAoQqVT{>5^_D!!Y4v`Be%hA;}Pf*}JHsz#kTkP<8*n^`}!sGEbVXn1P(DoaJEr! zx|hur2jmK*^RDEg&TfUF64DHq?^ z_~@wX6cFNa@|tvgPF>2vu$fofEurW( zsNW)@ULp;y`q>llZQt^ibZD+X8b}?QV@?L@jzXCUh5QTvS+8Lv!L^pE;K`pNM>@rO zASwneWJhh3CmdshT39ua-z{tm{>LI;&_3xu{Q*$O{ExYG|G7=)|D0d>uNRyJs#t)Q zC1 z3{TG&!^Fa!{&Go2v~oqm=-6nCXv{XGJ<4S1FoCBsUc@ z$%VNpk0EkBdo?|LUiHUA#VUo){{q~LuYoihbWGvi-z0_fw^|DlZo2S7Pj-FZ@WwOS(#m0!Aq{mD%+rUbF zF$tF{H66B~t4B&!U}g@1pA#({|9)@?9_9cBK&|}m)OM!fbmji*_8$2b%ia}w0DOWz zm08y*5LIQDXba?o&WuSlR61E&-)WTAS9W?EsXhPjMWv#KB;>sQxlMMAarN2A&sE>@ zxbAkTwS20Ho@ocp3@GV{Ba2JT&x*F1v?+BD$icM2MyCF(tX}(sQ7`J`f^pUt2YSsy zB!dC@Q36dj8BNt&AB{rC%nnAl9-~>MvawhIy97UFlf(-m!l1pPs4xW!u^ASB4b8cd zcfuV))U9Wa;GL69RF$B_|Yrg#ZYiLd328QHQdSzQ6JXyqyf54w9i7Y>_Xtw`A z%J|VnGl!?YE{auXXp{BlpjmM=QI>w2xItF_6Pm*RPeJ zkm-+oHTS4DFMfi2{8dojtZ|CJZcM>X&bdU2d#a%1zX{9TJiVBrEauc3e79*f9pY=Y zx!5lbRL;~U-re&5B+K|}Pf7s2cy?{8yPhXkm4c7|#p&GZ%NP*wn$Zb2k|0NqVo8-k zdAkVKU1gYPKep|fPefSbS&^BBhi2;6x4mF~f==U7-a|I^GB}vBIM@cYRUrbpnA|-3(93&|(7%cQmp|nD|K<(C=AM0s|A{!G& zwz(7x+g-6gq;IbJ{q_)#6R+3+ThPl;b}QRDzXca^44v*CrXNgvfb^a%d@W%YgZb?a zhAeL%Lv0k}?3^XJ*+QiQq)j&f>qxZD=KcKWq;FsK6|ZmlHPpI5P)HA2>S5-qIq z<%qn#^^mozlI>n&UYdVe%371~N4owXb@{W`Pl!K^3b~(i2B5Gr<)_Ri7)l0cd^G>*fe0%DKAIFU0 zw0S?O{i9M!WMcf(&e%Brv>!LV>vra3>+u1!@>&)S!46?uhIUEWY! z@KR^^FmksEOx_-7i?xp1Kz4&yKha=Nwy)0x$uK_P_>wpH22Velh-=VkcQ%5YsqRpH zDnn5@R%GZ=7`I&es}UeU`bhFzbz|H6qvWactj9Mg;Snch?*4|YQaUgJx-hC264dDxm9ffrbvHM2XdUvk$O#FL`cB^IFWl41cqXk{B4>k44SMfHo)NY>|ndvB&THlW0vvq`7uJu(tFlEPi0j81cE6gcJ-NBC@yVF4rL^@%O;0C zhj#?OO_^%$9rJ4l0Shdy71LSc4SrfcR?V#P_qWTC;%mwQJ=*%C!ot610d~~VRXY+= zGi4H;HuiDTeL208o(Ihfu>p|x2H0n89Au0tIRL^hJLiv4;9vihoDNJBUQH ziv<)3Y3WwZZ+AAmnHa`Wyr>v~5j^!kz{B2vK~9?gK*p!Mv3+v!1;xmH1Fz{Th}2^R6FHdhY`SR9myvV!P9WNrT-p_uXUN zIEB?*p634){1uV|1dN67gol?o`oQ~8)?MJTahpEmDXviny65O$_MV%}>W>gLrGG&q zbL~c%lzB`o1=pkP9Q-!E%I^pb8Fp~*HyKVAqSm9Ngqi2u6>JA0rAoQ>yct%q0@+fJ z*%lfRbiHxJvx!!b(g;%efw2KQM9&24Ri$68y`9N$RnEGxu90dh(!$Khi@M+x>70+2 zSW2u^?!_zAk;td*jGraCT*Dp!&T6a`T6wPr`9A2k^fJur1tnbd0g^Jt2uUES8PmgED&l%lod zPDK={<~$4;qP+vL|HR{{pGDmLY}HGx4+H~MXkiW zz3K49@!@1LuqYI$yj~FD)iSbgDoSZm6QXr=2dz!K1ieGxttDrn!t`)xgoy0VGu&5H zTaZ2S6fI)PZjEp-#d2}=mJA) zh{AuGGfJE>wu{G?>Hcu>cNAbq)}ftOKb4Ke)!?=Z?|!MX3&f3IyrH%WbW+nM9Mh&Lr}>8+?HZ#KU6nITx(GjbLYS5)e7B+(N%~Y4phjy zbnF$fj1U(jI@g~jL7fVsqfb%f0|?18*4E-B(Oj}4PjkK`CAAGTbQ%RM6=>*S@8!s)!GM-`LWX?wEgEtN+JZtP zHI*1zhN*JgtuMh*arn8rLoE<|3+2L}3=;}#tFKf-j9f0-CdGHBi*2MBQ$=YKbB4fO_BHT{iTtDZ zN_lDhbrnZ)6#tCN-+p>V)3}(StSb^`7ni-MAZID0EEj^j*vb>_wRc}CbUmpN`5=;( z+nIeZLnol@Bfa`Ph97(eL)b+>RHKfVd=uT|=BYRfExX#x-h2&ldH(8Fe>||WrT5tT z^g?(}xXfxEXZYdJ7kp3)^k$!()9SEo)G@ue1^JURt~2F9_tHkM-%J>XU28#uzr7#` z-Lq`x##<}0THt0|jmE{R+u3<(2I0WE-!QdJ+rOm!LjGbZq@>-&Nb4_$vuHZ2s4~s+ zy1mFIof>5mJs?0djv&3V;+yjwchHx9?JvC9^SOW()S|26ju$HXoH9qYY6s5*fS8Kc zjEQ4vDL9nrc>8%rh^Bh77^+1fO->^(oxd3oCmjtpD|GHB?~~k@!sGwx=m0xDGX-5K zfcRnk3c3+VV+l*~K05J0_-Bj|It=A!m_PWnb2SLDI#3x+J)Jir)nE7W+^faI8*r!h<;!zxQ)LFWm~Of-j`#tQ2V{6&=j zn}Q-_g1DCG6Y1=U*Jf9zhE~jJr&CFgn^{rk;=LL@jd&pk!X{~_Sn<_q7 z1Qxxf-HMiAQB@)$#V*7*l$bCx0y&0Ty?oK8cuJeIQIc!OtrdL1HK^KdP*w^tt$)m> zt9$zrvKbEzvf#bgXB6be>-&JgitqoK{Rd|FrW`s71b_m4Q6t<0R~ZK@5NO~lmi{Co zovrQ}K~;qs>>*FIj|WSYTn8uyu60s(?q`}i!xCPB$J#RdQF?9YV>>m+RZH$!jgK4N zrMuS$@Dp@hy+j1tK6rxy{8w+!F_|YPucs3bw9B;14K>`2r|14o+jw8Z7KM@x0 z0i8_HikoYerNI${=2oberVnLWG&haVP1sumn3_tjD`bwx=~-LAWoQ_OIb99+b}!)g zIwbLMh(wCam9b3sM2X+E;j8QCueIni@?NJqsZ1TA()v=1#1g0Y+iNWeCrH~8<%~aT z7QsLIHph|I*lK0SpUoms$9L6>m9Iw&H@d2VVux+0?#wrbs+;>-ym-e<$%>pSG=n94 zD?!C+gOGNzDrC@u6tGT2_^X#XhtEUt+P#mRo3A9mtB3k-RI#(&nx(Oh z?{G{}6(^LBHXB)VcU~Gqe%x}|GUVKmvSg!;Yd({3%A7zy*Ldf#J)>tiq{&}XQ~7%Z zPHq_RcrrFsff`)?{OkrWh9e;rz2 zf{%hSJy|8;n?lw8jMMb$!$z5!L7F!4G83u|WlUP=@%5g)2rxhfj*PxU8cd(kiH%Y{ zu#_xd6X>G85as>*qw*&YKuh``Qh~d0;P_v)>Zga#2Adk z8#+3goz?OimiiD`k9lUEw&s0BdrJzk!5(Pj4gyTC|6mF~ox3#FFk>{9T3HP?j>>xC zgr=~3bSxJdx15H9U13iVzo%3rCQu7ltOoB9d;DjgXC{R?tQ^XaxedGi zBSipZgYEC{bN$y~6J&@FW%qToU=S&Vy4VPH& z&%wm~zVjg6#JM46IaFWk4nmi9wB))1wLj@sW#U7MtaU<5F2_gW^%CDF@Vht}suii% zns+zQqVh1NB%K~Hj#3vszL3Jpf4jXv-B=*CXT7_;IOt#d?aecQ&9F)9f0vQ*z$@u? zu?65)c$4V?)3C5`X|Xi1)RcR%jz!Q1X9>Aq_>FJ z|M@)jUb;mRC1S*F%4T5ql4ME0VV=%LBQN}GQIU-RgWvPo(5ErnN7HR<8vyTm$rO6o z9YVmgmg;r6@uT#2b<<**Gt%8nI0 zm_P=oW7SWs1(WEo=k`~h*novWg{M?a2}u;H<};MmClQ402z(-e>%K_pNj2|@#bPla z0OG44KpxqNfow^3PLi?s1&GJQD9~VPI;edJ)c?^^6W8^CJd#tmWgRBxT{e=)*7PT2 zZ#&O0k$<}kyY$j&a83NyE{eiC>6J-M?9$+!tI;4Yt+jkdY>7Ry9u^Gwg(?z-OoL5h z=}@KkXxi>5`Dar|_fIAwBUa|6o^o3J(xfYF7TMPWE4{sumW=PiInDM2ui1Uj!YwVB z6pba6AvmPnl`aVk@qEAIOJ6ClSjAnP9|8O8s3U&Ew~|iE zjC2^B#zI1tp7Tu`k(KAJ%A5=bBKxRBy!FMRb|4l-gM!v)BOH54Uv5#B**X=Y%g}g= z!V|n^r<}+4*YQkG>o2}M1_RNUHl}cT=O~iFHnmZkDHhX5SNkD#`VPKwI4?_1{?tG` zId=H8tq$J;ou<0~?VbLmAN8@Y)YL{5;No(nn0!0V=&~M2k$j(&QbP*fw-*`Iw z;CqofU;fcuS_s`}X6Z z&iqT;w^FjV9tqX2Sg#dlM==G0CR`-7SR<4zcLMlscAnEW866reo8E|ZsLQa*l(I{e zT%IvUejFOU0T1o>Z^<^|pnOXI_ih{rnv7z#%@IuLsFOkYt_ygqdCk`@Dpx+g>8Aul zizWlDFu}tzZpEUbtC$6(Oq9S^$&3x>kEp|6!J6OQrH3ENHbyQ_)NBL6ASfr`sr6he zlJzr`I&_94 zN-O6-6F1A6o3W7sp>u1yeUMNZj0KY%1ts~PR(-ij%+O8h*p;I2e*L}nP~gqhr4z!F znWWDB(Rb@salmtr^6BHmHWI2q#Mw8@s6WzdM|K+Xdk-7wdb9U=hM8pj`NQvfzrWi6 z5B$DoHdTMu9jUMMWFZ0fTmOQL8f;7fHuw7$HleoecjlD$-OKucuJsO-gakMb?4CyM zg#Wt1kRxv4zL;Q!2Hl3Yd%VefQY}YX{N~TBkZ0R2XYDrg-gFZGk@bbH+1p9N*O!1J0Xv`XGUa6-px zZ-ATg39jQARQzO}Ce4#xiu*e{;Fw;D%DZk?)S-ckWk=BB zUk%bV4ETZht?^+f5L;#0rL_GhEL^6Sxk+$*M>n*-9IMpvYD$MRo97gk| z2On6Ct(^v9n5o=#O!n;sz+*AwCc9Huyl}mB7KeW75E!fziiZ`?_&r4AaEQ~})|d~_ z4=+*L{9>?86&>is)?;(a#eLC*O*3>){ z1uX117rDy?qGmM5FvL<-yZV5WRr5TAw*Y{NurOlC#_xh)G1yZ>yDz{p zYPmtJX2gsp-nL@ff^Gp41|@r&up_3jS-JhjPj=5wCI#2c3|Hbl9p1-Sv3QuV5?Zbw z$J|H>Ov>RlTJ4?W3I4(Ukh?`22Y1i@^S+%lybmOOGx1`|>tKfxxqJLg4UbO~8o_B3 zUilk4&69U{<%J8TVB#xJa&bYe9e{!pW+3&UFzn8=Vuf`Wi66h2-u2|_nCiXOZK#OM zVJRTHPf$}V91zF1A3G{=2z)cOmHEM33;6Im-MFdrDcSeG1B;7c0lHE_&^>x6>F7lJ z4EO$0JK@a3;Bqad^H-dQc#5top{b}8uFtwiYbQOOQ8Gcrh{M!pcDM=5dFYSJUYDJi3k54s%P_V-9_H%K8q|+$GB7k|f&iN9 z<^RFB3FX}2i*dso1$-eWTxcNRS>r~t2XDvz0j0W__fH6A-j($1R1niUQqt3|hHXhm*uG=63ymR zdxDbk{~8`V}8ZUt385 z=cD|9og!s9Veu*1gNk@CVv0=#aSHmK-F2khufhaIG^?*#H&~LKTs;qC)MOebkhG<$CK)nU*V8dKIT6LVo)&D_iH-#% zX@%({r>Up~qvkg*oqnH!p_~I(Nv@mU&E-=SzWo+FOcbH^GpT{g-JC9Hcm7eyq7QX3 z214KtUu_Mb4JUP^{C%D9q--jwX#Xx(czNhtfc;ILf%-^mZ+T{3*BcbMEiua8NU_WOzp&C&_(1C21lOdg?3bI>e< zHl9bq)Ls62(9r#G^J1UCs#ir-?!G%WWxN5aw61;b%y61hLizl!2w>rSYB7Xc;rh2f zKR|FLYA%19_w|`Eb*?oCTh}|`Ja){h_6I+Qj`KA=WNO{h-##$rQjDp#SnqRAV-|=- zi8BVmX0uDx;@eoUH~%Ob+U|D zr=JS67hR zSVx(3(sFS^F#3qdE8TthL>(szw?tayVJF+9U3uKu%oiSr)Y^OJY%dieelJw_ zYRi^rZays~S{vhbABo9EnGZ#Uq!?4NX)g+T05!yoFDbisGtl{ywNuWxdt6{$y|d~; z#Ie97o5mfIEu019kLm^`z4ci(F6(uaUuwZweR!)fsS>kp#o1J+|M{Sv;yMKHlir4e zXBPmVS{2N&Bd0x?<-M$UanFhv9dyLb$@QzE1$qc-4MUaiUIR%;NIO#YH&D9=8;Ja) zn|-&o@z2r2yD}Z9dWKgl~tW^=LK#S+Fv=#bDLH=Ftcxj76m+h0~tg z*k(gtT>&icy9YIo1a?V@FFXWaUXgUWPcK&*kHuxmF6O!PnLSf?(7aDGLXGf`kMytn zIs5{z@_YGK>=)61CwlqM80m`TcPlLpgyT5<#RJMJzHk+;ty#86BS!jbIr)BNQi($S z0jP9LO%9jFJGtLUTX=oCGoyol^daO`<})oavZ-}%)xy$aQpbIUNsEa%q5(JgwlLw) zeW;_iurX36b&KW-p?*yaXnIlo@*;TCTZ|Nt(Kj`C1OuVQQtI;w#NVzxD-Jw@o)Xm0 zpBez+2mF&tY0}2%K#?D-)MeQ3z&)q^iHtd#QjPc-PpwH~h zP-iJqF`X;_1*32|?ZZ6OvF6Wb*BuM7iVBMAhrlH(%n%Kt$pPZl|AxWuyOi{&hIln8 zMksWI{MPF%aGd3UP;z)-59*&Xr6}C2vsdXfaq{wM&bCP|igI2R**ms(O9qSMzrKoL z<|JlXhNXY|V66!XEPuOELB|beEXOcEFjTD37|~7Ty+eEWy`^+N9AKQFs3}KP(Tnr- z%(|zD$;iG9dH$8m;pd6prrKE{%|h%-7DeCXddB0~QyI@$}}?zsy_S9?8^TaF0nVNYf1Z@Wm1 zSzxu{^ETyPh=7wyb)^My_8FPSy`C)YFRkz=OIx=%G;b1?VmPyU0S5&ppLTj$O*_wJ zl>0Z8?eKQ{tcRc+z2Z^JEaA@5Tm;gK`dok3+L+V@HAv}3@>>ucS_{gHP-=kH!`%35 z!ca2y|27`66g9?yX4Y2=#0>cZ1}RtP*`H;i509JMh)y{evyE~uRz0oTA9_Cf6LGkg zrPoWIsb8FB`=|Pw8x#G5U-})C>F@G48MCbOuSDd{Uk;@fa1!D4@s8+5gCdND3P!K1 z#eBJW4cRGTjkU4CbhG`kf)0Nuw|0e45MeCh4?q$E5LwS=4j8@_CImH4TkJuWE=5d6%e zrKub13|=vLgD)vWDfN|8yJ#(v0x0?mcd`MGpo?9Sgu46MRY-z3Teh~Th$cnD#OLAi z^7lwqW5`Umn56zM31FC}7)PW3gU@|8;8{B$RtwKV#|7rszGn%J!h^S4#JyFB&8v(` zG$R4Q7joErFgX}EGt$Q`;C*A|oSxvvVJ*X~oG@y1y+Oq&CS@8kEGqu2y+*rBlB*%y zP;7V-cKkZUT)74if*E73-f36WuC)Fnd3ybw&cD5YT_O}DQ==Tw+FzhoBS6RndLGO7 za@_RxH7Womh1IVOanvewQEdX@NC`49n9f6rU#`M08wDh_tCTg>Z7*DWzqkOhj`GpTPcT#FGh=%S~^2 zF1oFT>gIM$auwm@7dOu7m!_+s&Kf94f5{|!Egyn#5DMUSe}r&ms)gQ1M_cyW=jctZ z2`%{kPRbAL#4Sik_yZC*zxMSwSR?j)>|*4?V;L_&0i?}aw6B!}FCDNW>MSmv$+Sx$ z_12XWgXsQ_Udy&=32`gn*!q#Z-KO~fC4Ju3a?YoZ;JxsZR{l0-BaxNCLa7DKJT2%6 zKReTw*rYK)=>oQwz;O&LQeyTsN#n$Dc;jjE&;oKJL&*R`-w~zp zEBA0IMQ_~rN^jZ)cD3>l(A>^5K4(nog+@7h5BUD-lR=IuFE#dLdSJk;%ZCg7y3J;ME=(AVL28?k%Vv_x^sdr5on~ zNL;)d9)kXBdGyqgV^AhM9P>0m7%1aqf%pIH?DY8TkR;>TpHUNWz+(ec0=PhLjLKjL zFmVoMWc(Hq4nSf|BOG>2fTsPQQuF^344)~wvi|)AhX26L2L3|rfL$%}o9Vw4x^t}i z6Td(H&yt6L2mYUrEB5{t)PNVv?%j|o8PNaudB3!ZADZ@wRPU_fA$cjbql)AN@_X_UbjrAvG$y!jgx0S z`JOKj9$&iK8gH%F_>y>oRPv(cZGO6Ay2{H{SZqv|kwL%h9Jz9JHe0)Ey{T`kVC*T? zm9ob>RsM7!4;A_?fO_q~lUf_eA{5DfA7ABc(*&efRRP!7tB1V*tdVfC*KOAInp&Df zZ)}{aYh%#u4A0BcbkouR>gAJ(N!>haJ9Lb#kG9cQp9CNBetpnH8@e1Autkxj89}z4 zUyy5Uw@%}hXBEjKrf5+mJ3Ti#IwEAX<}edp5T87>G|1f3e8cA&{IuHrn%!4RGg&Js zX%4onp)4lrE6T<6q17w}d~ zXug7QzZci+=(31R&c3a7{2ah6u7rd@0rv9R3jmn~IN2!zB|Ob6)|=ED@&?u8YWODm zEC3Mk(UXHQpESLA02RPt_RQhD+{D%Sqp4pFnmDIm9lG00t1=*kb!V9$pDFQBYA*qI z1x$fy2*NoDRgb6EX}|{N=9XW@0X@LNL)7LxS@CKF$_`bP(qP+_bqRb;<|JZHSG?PI z!mhF822z?eN}nYYFc~tr3ogz2)tovBo~+j@s!}hlSXO0g^x!LYDt+NI8R!}H`yFu+ zc@d~~%6Qpi!uPOdx@=-n8>-`tH@co`xN!hETOUla_*hsb8lLoBKfno|fI-`MEQ`f; z>xInqxMkurT*P1)rfy`s_qr3)f%>C~55J45qHkt}>4>gL&fFaSL-CU}8AwuW6!i3; zxy9O&Vd8U1g8&>LTAoU?QJgI$^`|6vH<`>>F5W-VvINavo_P(={qROplMF>h&sjY$%QhXSPBN{9k&ZsCozmKE zFtNiNWE!)a4nHvE7r(L8_7}Cq+&QY@zJgm=SQxWzd>Z_t#ks*97?~vReq%RIa+3AL zVn(Y4vSmJzf0zS8f4b9-GwK2CUx3}!c%y$f^n>%V^=rVjI=%$@WMLuYo_=MJMxvml zh0e>P_1xW$|Bt}ew?9xT@P=d?nW>vSpH$aW*NqTRH0{Jl8`!;ndk*4Ebz&Bm4rvCi-_2_K*I|k@J z8R<%)1&+@2Du#%jbn=xoK7uAHW%izxEz;?Zzl+(g%{dx>&t2ftGQBRWeBMuepHj-H z2ub%IXNgt=S*+%YsIE2T$$)V+n6Q81T0^pAotSMThv~?3y`{|((dqXsr9Uh+HsOGK zNEFJ~`sE8GrD|oCVdUTiI7~U>b5tQy9uZEs_yHz(N;WJM$9;Obyo*aUeiK`K*2K@& zIR8FCHL8X!h1ltXMqenI;lHt{PMU9rN)&Y$O@OpckrtUg^(yvvKQXqGQq*0q0;Gy} zfG2%u9_nv^p1pMYwA~R0Hm^qEvS;MFs4kABW^>(i*b9a?##);OQ4N7NG4%2!|Lfu3~Jg-JQpMPme5i0t6( z3^vkPyI(9cn&6m&!V_%La7!%VN z#M~8Z>g-89LesJIBU*83mf?GZxg{N9vP{ojX_$7^w(0E53IE&NhaW$e{``T>B|kcw zn3~HZd>Qu4Z>QtI1CTNhtNNpJ@CB4D_XZ&qdsPB27;9Dokl-oQp^$^d0W0)KXnKpE zxIurK^n!}fNuj!@zUITw4yTfyrOw)J_llv=!R5%C)z2-u9Tfad1PM&dC#ECI=lBSl zo`x9?=#}(Z^48Xqci#*snrrErgO-Gb(u5>w#Z;*&a-^7H0{c=aR)jX&S4))(gOYti zWovJYYIlxCE9ipAd_1%-1NshN@&>1Cwb|E9C6bzzEo1V8mq8Jh46hd4E^%Go>+iXF zg|Sw<_EO*kuH}JZ9G=W1@N9TDQ8DlxK2%NAeeXcwQv!Sj5~hZ$2t z!p~YdjIMf-aW|{cy%!8xs>z~nd;7SJq}qBZsN}Ii_C1v=JRqHa2F4u4nPoiy)yp}C zg6SC74f=Ays(O(+i%)M@(EPyrxK+h9FV~AvKpa<)GHKrx1kAUz=+Xz03_!cxE7xmj zk?HDIIK9b=+-msUjb=C+2t|w2R8iq#oxLFznVIOOl@iM6AoWyA8u8IXlHAeUU70Te z#~$KZ1jL+Paw;K=)HUj?R7X9z#8tJ|6}`bUHWlwrV?YyM8kSluFK2L~dCb^8ggUmX zGAq5~7erOo`6QX&u)S(_viHG=G zbM;fw(saWy-%W{VWDays=R!7wNop@$z7T8=EsP0yL2gt-0t0E?X`{El_Nqrd;0%YG z#Mhkx@fq$0&(>OhUOn4s2QHz%QMKw$SvF1Y$=Nd~K>i--%4y6?^|-^_LGF8*MK#&< zFFr;AwL$hZDl@ci&-P9;;o8IC5&TVM{EmuKnMN<(LwA`y2#^ZS9ilf^(=n4U7VbSpe3gp<^7|0STFLL@k`cYbcj%Ef}R5Yz{bVHTRd-iN= zD_Y0CX-gVYwE2Xb8}&G!i6&n4Lpq0lPQ@`8a%BSI+1Fs>xarl#x(?3M8i8%&FBOU! zFL|E}54N#qTZX5GH+SO^$jWA9iP26`okxQl1dg3O`7NGfFK05HmzI`(YjlYF#}4~B zXHJ2fDn5$QumTgF5hlgJyhb-$Od;N2JIt?_@_`~u&p)7@ERiHWt!{It`X!t;9G&NS z`jjTG^CY^Uf=^ISw@6BMAwj_`7R(NEEoF*~KPoA)I!!gcv2%7bn<5BWccz-oBoL05 z>GAVe7xf&H+NVED!^D9-JHZCko5C?nH8=(qk5ZdDrLpvuzPOFtUk=N-6N~6Zi(0=O zbj~756$~72*HgKCI$$Xj8e58&CIL`kmC~Te+?8UU*YT;;`SuNGXIQXYPFu3?dY=%F z_lT0Mw{p&^kW*m|2guj^@}yXTGlmYi!z~+~8k|T>o>hKy3UGWk z^SD)o>+PSl^N8M+sgymQ0#MeM?+3*haf${8ukrP)q+UJ1Z0#eDY;A;d=xSbAWk&fbFNRzc`1jnXhT ze>W4|$b}QUP<{iv7*xqxg4wy3;p!=5;ER=*RBJ$ithoJ>$z6$nMlew_PFQSmy`)Mh zUbg?X*JNXMhk5E0f4}aBM)OqhV15&UG)-=$`bVab+B5gKVX@fkwbt2|`$p!G5UJ8n25O)EWD^5(o1%dchevKhxYXv{rZ4U+Ix z*ZfZN&dV&|$fK(;-lUw4oloU*@cTcrZiqBK5u2Xs0H}t5r{G5C??Bogd}9a)>;4%{=ccr*m+l#n;R<_B0~(fQB9c~0noKu zg88jS+^qC{*zY?`sKixY2Foi!+vUodIf+>?;K3~RTgFg+E$$ZY^+n@AA5d1 zS3nw%1J*4KPr5NuF8Puw>M-__5r7@r;p=e2REMzBcO1Mc6zdqxyQLOD+i=w)wnm-@ zlF5!&MPH^{NCThWX~>_mC@W-S=R8LXykN7_(9oS zR!A*PXt?rAtyHYm_flwbMCEiv`HhY1B)i~XYZsuf<_y!`xM7Y5|-VWv{;e0bBx?bCC?hzA<=JG|6Pt%bG~ zxjdRapLh?|&No_B{Ok+)rxRe#_bM>**Qail}Vss`pM8u6+QJlRS&F0LpsNd^LD@}L>mcy51*n~bPZ zB>h6lLY0+MnKcChLx7aCG}J+LIETs);@Ic&k9! z{t>Yn{YB4XTak%b62gI10DMHCB^ z?)OPz>WG(H@9Vb#@omgdWY)0slHrMO4$^BBcod3f0OR8nnizhcsG}W>jYv6dEZ!o- z?4zl9%8l+lGG31$ATbvx{(N%tdat!{R2^*j?NA4TmO9TZ8il%H zB?;NnvKmEJyS4`Iuz3N0u*Kta5-xGizJ%@#5yo!uxoAPpL;eMsRZ^L7(g{1}JGnr{ z-ceGwoy4HuNKlE&(#<7|%u3hQ<7k}n$!Pe>FtnkOcI}WP-qG$jz*FbgVuZI*_oVmKMV8wm*s)7VR8Pl=Y-t$8f(WkN_l( zy8IRAjmIm9EdC2oF52lqu5n9vuBM%VA{`w?Ep5w;wuiXBzNZZ9tjg}IfiZiQzc%F| zklkA;q4^PWGz)eieM-c9Gl4CqGGr>sU7brswOU0x_r=EZEr%LM_LRBppzF;vHg4pt z7gLdj%NO%FajAEKol9i6{6B_LGX&o5j9!r6Y?>s#wE7UY?&V+op##mMitF67Iq&HaL9-{=CJNKsi$&nP zXm)01W+2BIFQ;1YdRkA84ncEcQ16{(t8X>iedj6sGKP}{o=Y=~%nH%o4g0kIX}ctoKzy{H`tqXD~Oc_ZdenvF*wl>An6K$loPKo*(Bx zt|Q+tqSaq5O-Kmt5Oc!CDJo3OJhD#IL4kzdkoQv%w;H#WR4f_ ze@U;%sg)xsEPGjYbh2*MLIN!?DUi(yr*kKEsT3&tyyJ$V!)xFoz3%Stu`tZGbInsC zkRGe=uxdB7YgSRGz~=QvpLNFqS?04u>1EV)D*uy41>|A8IK4;1GHW=yg))_9mMtn6 z_G`jAXSZ*gM|}p>w<*Y4^{(vFF6t~ceV*xRXZz0h7h=cns!3B*^Xl|?Me3B_#{0uf zL61;oMhZ=wBoT`(4K`o&2l_g)$@IIEqL?v5@Eub|;DzrLJ`0QOM2T9&jem}aXuRfO zLUwfK_gEH^^O>gCm*}r)H|=@PpXm~Uf3fdnn~&;q(Cqd^VI1~k5)}O!W)80D_&kcL z>gMS%r*Ebb>Qyi4tf8peoMbS;d;Sp?$%oSpiIM5oAT;}>;98mQdm`_E4c^kz)7#(J z$kXc~dyT~H_jK4unk00cScKn4#~{Z5rK*9zKry@k=zpC*8ckQ#viFJ59q(&4KULp@ z_jr3=+tRxW9sd!Oo?>ayxjgK?Q~6f!kM!@5Au-dufJVw*pcPK8Uh61TZOb1R6fcl!MZhKEK_Dk!PAtb0T<_n zS&x&Hqw$cB^ahY6rQu7zir9%?T^70i8eg4ud#pxZf#V3@JN?|7ScDPeFKvE<7;MME zB(WF2v2f2BDWq42hIC!`)2QIV5Xh&cB>E4st9f;EWF3Jpk@2=HnGmv8Ntys99idf! z*xI$&+uOQ#Wuk|is}8fT|y37 zT(N9Y^hvFqQ&}of530Z%bF0T^XZTA8m(eU}9>|RC2OE)=&_XX_9adk7oP2qlSnMIo z?apCke@LntMj>`=03{i;D?RPJGyGu97A~61w2~Sf>zb(xRToJ%fO@d7%I!?-!=)kG zAJ(Io$Ky=L^8+a6vhj|7UCOAp7{3!LvkS+dO~+Ppy9d|*ZAAgP6(qxGI+#6b_(mz) zWpTJp&8k0KGHsVn)1Fe2ZN~i**TRd?nrWAJU-~#sj}>wsMWJu6_S(}JGcefD_|1R( z+WG~UGQuA`Pj0UwBtHcHN>jB(`tJ#J5pT^*ADB18PyB?FLd?*$JC~~f*GmHSX_f6S z&-I?TV!{hP4}V)kS99Km%+IPY4Ajd1Vp$bn@4Hd{v5DWWTViU69WZrF+GN=6K4u(c zR&075^Fc+)vsw1;hP^*&U4^covp?LMXTs&ZX{(XJwp#?Jj1AGQY+>}IZ%%&+zWdJ8 zazu5I@as=Q%zTzVjkC;^8R_lvn1(#|>gmjW)CTBiZ6IW=W7l@3)1ihP?E$dsqXqLM zk(;I_w9$lCA--@|q4cE~#awoywv;@Y&FPXnT@%iLH{Ync%#90WI_JI_zwG(31Wl#)qM)Gp zy6K=uSmBzRn?`YMkjCXmT*aN*@%yGJA-ME$@q;8G#bba3z>-mBp zmt|q37?wufacA>*+~^lr;zRsZ`qVG3+S9rFD(>+M`>(_-SD7DZF8aoI2WB>!Z#1ji zTz5#FUk!voo6G*32`mOXx01+O7&VA5_$wAsx96Viv5V3c)?g=LFq0B;*QMKDDHzY? zi^+O+X$s}Q&%u&7JXp_>&!TM0H0f<-?U)5OR#3$}Ev%fXs5V;7+Q)4pqpOJid`#JV zc$Tr#q~)_Pc>}5BgvY~71m@dG zg~!{UZEWTL)0sYk0^R28z@d*O1FKRl&KhaeFIkMO27bEf9b;A7Et6+6Ei+a|(=WeF zOsV0p*De0_+6@NiC`l;WeUON%C<+=&R)h+pkKFTgQl6QgtyG@FGczyXQ%iof)7n`F z-$A@u`AeSX{roNkD^7S?JY1H5V8^P>;qr%}1fk$!qskxFUlL`S_#Tyay1c!C9~hoV z1AhU`7BG>?nr0H){{>ZKHu@?K{%SBUo3zRD2Q*MHlm|U2XMrQdf^~0joAI+u!9$ui zA0tr~P@f>2X)9BG^nNzRf&s^8j!IwQ&ZuXGSS(IWNwZnQ`MwrW$GFAD8XA^Ubw~CF zgfCD&xaH;`gW}(wdFied3MhB$0?8bGNNd)+ z_&I(2$JP4FsuiK+6#*?(z7Ji7XKWROn=yK&RXA4410y`X@V&Y1i4E-0*m<{Mza@$I zo$zV=N3<8Kps`-G^wLp~=tniBM%^T8WDQXcVF}N-xP7^;oxW@v9BlQiXy=yHRwreT zE_SSWM>qpLi8XwUs++B7?IXA7)+Vp>F?dORR== zNI;BeKtZ*jXYd#{Cuh|4eRD6iMFK(5Xw)5n$5r7Gcs5n|zGKgqO7m) z;up-1wfWJClVl#2a$Yg9JIXfd(y@FaASVOoH-qn$`67oshK~CPYDM*_sTm=H*LgSn z=bWJn^;gG#VpvW|W(A8gDx&4MsPH8x&R&0LfqMI2ZuKoDpL@i28-44L=&VPkDs;uZ2a3aNB0q^BdEnLosI$DJ_PBX+O{${75A{Jw453le#+e%DWc2TUkN0a!HdF5i*gSXRw#hk1)~8b|zYL953RY>D|Awh0s^*`(Ylk^w}O0}NJ|E8#9+ zRnO0bzv6CobvdP^EvOt@UMW3dmd@N2PkRw4O(7#W()d4&s!TQYE^STW|4e}T9)g!W z{*HR$KlcT<1XLPdeVnEmDjk@KX5^RiG}{jHq26ZHV3NGokG%Hx2iVQRN*lCHK(O6!op3QZbM0K&3y@M@{cJGWn`Q9q>Ao-@@-*bk<(IS zL$<)*Cd!f-K54!8mVnxP(Qy|xH`g;+4O897?Sefz3p}-gFKVLqJonbfJ zL`g!Y8Qi*T$+ue^+)%HH2j8dvm`s%ZW`A66V!xy`GAi|nv$I-5iKBDvsl6{r ze4d)%L-(Vt>GYd7qF>3ls(?-ZDKP0KP1BtqaCLL5shNv49$RRV`16f3&1p)6U#BG4 z?Eo@uAl3WC?zobf-I3vDUVYH2LBq<%#{T?UPXER-qIb(us<#VPi@f66kRv@MxoP%% zV>696^VeGU&2N2O>|=bN;7o)ugJu$uCH<`J@sl6zvo3Q$1NI0qJ#Q-2n_OIs{v>55 zWWIXW1c+9i9nZm?ASF#J9)iRI7NXAq`&KJ*kJ$$a%@@ z4niKMSiy}+WH|lNzSTOgf2jAIR z413+^P>b&(W{1c7Lnmj!ZGaWz0_))TjO5E#GJ)$8tU3)(|5kzfc`7=}ir~7@Xl~^Gcda>VhjNyyWus3AFYpO)=B)%!*?oNjwE3K)Tdj$Y z?=KG&ZJj}myYE+ge9aCGXAsC##F>+w&>ku2&WjoE*%D^nOzV=OMz0dY$PX_(+IsAc z<}6Qy^<*uv;FQ96v$dVB5>9Pf17`#;Ry3$cUGgVDTh6N~>0H zy7zoIbZ?MVF};;50s<{Lpu5E%`ww=XJphC$TrZ_4PR|M7-o}yj+=e^XC;H9k6elNZ z0YhOa`&BC|xh|v17x}JBdi?)ivWlQ_Kvpqw*0W1|itb=TCerX}%rVHiXeg`Rw>uuQ zquXk3CT0pZlzX;jdwL1x3rBU_IpXeYE@c;dab;s6bVRfzvue5{X)S&{Kj|%wx z^vl|4j$A4Pu!y}}c9n|n^Ii3^+E}5H)?f3<>;99AeNF>u&5GZT~&{83Q@Tzwanw4!8y&>sbKpizM=Z+?!{MHrE86{ zxUJGSfBuF|4`{yZEjAL&mLIHIm5pq$}#KSdUkAU~MeB#pslO%#~wLER>@R zW1imVer<^Yc(KX^(_MpULRxl{Qsum>fPOhx%^t$kOaATI4$YD4Tniv3B`yWrs<<_9 z=Up`>FDBCk<)DI(29tJg=#<{|;;%X)_<)c80H(snRv%rl7|r zTFdlyG(a$|IdnLCeqtpSM}ldag4uW}BhT*`&Cy?PvWp*I;^qB#yls%NbZC($^J_1X zvdj3du0Z2=3$NZ6SCCtuwN|JVAy;B`Z!ixdHimKH!CdKf*6RmtMkCXwzKE`h9 z52*Lq-L%Lpxgd`K4N3C%afbe$ zpQdhE)LCwGsC8>DLHdf)|lW+9|=;aKW`oyb8 z@+GzGm| zb>BBhOb~1&ZLlxYS;%a+qb{NHCfNe_bpPqCIh+Y$`ML%ss`Z6ObXh|S4;xzRo2KRp z?P-)>^zE9?95+{As9_GXFQmCtF`h2m05#4Bgfrq9BTbZtuJ6+-l&Xc(HEOPyk0k*!qly8W9Z|P?8_+RbI2fxpWF*(Dc zc3iN2O*0A6l?e5g4;wOXUtXPj3eE(twv_Gg84@u>g z8KQ7J>)7(KJbRm$VX1YE!9&q0OCMWh6eU1a#4)czmt}e}_(L&ZiL*o!_oMU=JUm3R zC_?mF?8o_Nj)s!?d0tt$bjtd^W)w73@Q=`R(+sh#JB~oeqMTkd%hJu4)RvBsRLTHe zLHaL-jc;8|<@emq=xB@|6%F9qPSZhh_g#9y1AxBZV_|Y#I@@Ay-=5@#mGr$LsllPB zfg>esmCUP20R$gPG5Dfy{6r8RKrAbGx7^SwX^>>Ez-L`MwcuaVmJUdkex=M@OVxy~ zwg-jKnQ6;oK9&i|Im(>4=-GM*fzvW$F-V_eX|+Yh2jZDM+m6s&px>uFPa91==XwJ% zv5S12#$ye2iHp;Fzi--7(;Vp0Oy`NG7tNIZ4)Kznpuc*$NFk1?j53tGB;7vlOgP(b zdrXI=C}1q*Xg1Z2p#s?tqV)N2KcS{*fnW55+$6hv=PCTZSbOWJxVq(Su!$#xV8JaR z!QCB_U_m=*(`ayacM<{#9^4_gG!BhhaCf)HthpRH%t zu6pXJs;ROT`b74vGFXyjO@Dc%agF)H$dvPoYcC;6CIwT+onQFIj{}u}dL>=Iy85H4 z;_Co<1bM^`75uChC#8}J8io8l zUo8&;UOG){kKHLc9F{}y%NsoG3=Nq{!^pL8;&IJ2p#eOg6gtJ<1(mfO^{1R)J^=px z*g-;UCHKZTk7yQ5k=hUSTT>+7VzST$e5axqRSl0;s-S?k!?-HD?@TWAR@PsK8y!li znO?jVWg!xlXj31#>sO+C7*>4S%P%y?gzMlP# zOqGA7-EK2+!ti8G{io)R0WV$;U(UIYVhsNZSI%2B!;R_E_fXQ;0voT1tg7!Af^gtm zh&;Gji+>@JPDUUp-MqX{B}Uf^tTrWzC81{t4pfvi~E=8}boq-n_bl|sJUxfhMtbSk@4zl#TggbJrtfk{I*)7t|%M)1<&25)QAO8l zQ9z71Rmm(oE{fTx)R>3apS_f*I~?!vgmvhJSd=@xUI!61d}9kf16#8rV^sa>8rLPp zAkx^~ODH`|EVT-yZ zRDYmjxuhW9-R4fVWc}JED6BcLQxtBf|9v@iOjBQD(GZ8AOhBK(I0C^apX6BOg_!{> z^y?&fl}ho4$=!HqZGDB)tZaI`d%A4(ru8*f_v&|b&CY>AS7SBuae#`^Arjv_VCIr< zt*@N&A1q)ij21A<-Nsg5#z+aPzTY=blV&KJi=y*hqg~}js9cbjdNes?&5oC>8QZCG z%jWqWCXUtXsudV}p;QpT_|nBhTH!$QgDD7W@>B6-%NWlvTvk1&KQUV7F>|k69RB92 z-+DnbsB->rn<)|x`Vl*Iw%*>fhrf#`P*Ew|V&1tH?Oqo3H=f6!cvqINOojv$n!~VP z4hlpv$=v=xNCDiocW>uR+--)HzxX{m3rSHxu8^Kx6yanKNrYVr?z#{$v&htDL{snD zkDZjIV`4w_$DpA^K?;XZpV3^A!XL&@rp^%4|0FojhtfqD*Dv-e1yeJ=^;*%Reb)#R zPN(oSC`0#bg5pmTJKC-$t7i>=#A`RiH!pQB0MbT9$(v^f5S$izzov+!zPyzhFP~!? zq-Dl4+@=piuKIDo6Z{wcP;EvI-L1Y%d-FdP~jh2yPrH4pdkL)y0jch zk*bRwe{DwYN@4Bh(}?@%j?mN=(WVra zEYvkpoikXTp%vWNlc-Qn21IwPQc>@l#|*7lU*yW?=UkFQN?0Sn1Z~CeUr$8a2!!%s zB|Lu!Lzz8W2&pOcB#qaSb5Ym^6G^A)MVY9#`t@y_5mKU@RaQZW4A~z>P$Ey?aB2*8 z0gmKKT~oml1;qKyRtJTS1O@Q~HO97W>t=m~dl(HfE}-WXq)RZDi)ahOFn)$XzP$OX zwfavar^=aK*T2XeGitn>EKlbyPk@w1n^a^>OyeS{R{Be6x(aLUmGTy|h2F24!`lkd z1ok9i#h?B*`VJ&ayNnPJro9%^O?7zMWcqyZ<-da@&CZzNzqrvrZUn+V_k}7?>L1s! z?Mq@bA2uemBi_yYa1ZtM`Uzx}0Fi#!wlb69;V8iz29Fd_aQSQ=47yi2>Dy8J2)FEM znfac1$^e1`mTx4ir!VD@_ZWCaMF^=F^zxtdMIg}Bch1slgBaeB zI}bn2Z@H%}m*!%VPFjXsV8pml;fL4)i+frJs97AyvXFzbd-r##q-p0gEVB|*b?SBI zJO(AT=BSvnsG7@JEyk}mqwj0?_VDi?043q=S^RyDaS~6ib@ow8hDzbtG-7zx*^qwi zx2xzadsuDW?j~a9c)yk0@?Sle0zJ?;WF3BZK75RZ8DPx#^jt4ytat3FeO~m|mKGh` z-0RjXBTcY3$m)!*_F(%dm9RPHQ(-YnZ*DiQw zrUawDw`BtwnIB+HYwm}a;L{HaFhwH2iVVqxS63pDOlBrtZ{An#&~108RCuyhp*~#x zMkvB{(IMNT8xzq)uZF_f7t+^L!iOylJ(vPzDI&Nq_jT{*XQRHUh%TR%xz|n?Et2Z) ze!0hry(RULxS=bB{FR&7p7HFlHJxR`KCWa?M!ujXrbmsbRgkgcOZ zyAQNaJfv$nQK~0QYQ<@sOuxH|E0YT;(?`tn+(C@e1 ziNw!QpMAz@rJ|;OFNXDnu7JB)9s93Yte%P@`n4ww3FBZ=dz?>&c<5j)34z0SjUzN4hx zBtGMTia(irM%!+=!W^$YGF!axc{iB7l*gdIg~gdMiHf6?DU>%5_q4E+0F@ADe%dTVlk^ zG+NPglYQ%LF2@7kuA6>toy(*SoIf8QoCtpEeY+FBu#WDoc$dcfzWx@veT*(L8qfyg zO=ri&@)POYybuYKK0-KRhVHB@85A+#Rr$3yaG*mSRkLjt^2GX5Fz6NChuU( z3sCdok~1Mt<_e$UQ4-Yy5Ua~M8PJ7qI}*(pdF9=x2w?!eE%jv8PJ946Aeco6?y_((w@Rxua1h_AyrKIL#K#_t?2LC?5#vBP%@ z3-@9-Y=FM8mbRq6i|afXsGP_yVI5!vy_xC?ibWAD+@MHb0b`*Q6p||0RBE1{U=)i5 z`i?Ius+=%73$o`0qT+H74&MJwXFxSK$tIov;qtBu|S08dAbOiaqO^~ifR%+yD$1I2&;P4uy-tcQZ*XS(UC|z)dm>W z8`_h*_a9$`$kk@Ur{7$5ndBBX(3@5ZcAJ>*_G&?ajiwc5<5Q$?Y%I$Zd5VMg6QIC; z@9{}`zp206Dt6a}K1%=_=%Avec_o8QnVFH%P~ISSYt5;R4FZW|jQaWil>8ws)^oSk zyWZj7aY@XEbw5k2p?ZgiA%u^TezoT4m7=p+E@v%={DJsakdv)1a{$r4{AiJ#V7eGp@2Xl335#o1oCHn^%U5i@92Z~uLP+0 z-{`H&<9kdS_y@zk3x{Zb{8zN%|2!-Ihr{t-n+QZh=M`;jd3Q35jRJNDI}H=#UDRXH z*Uxn$)6)wJBMTEF3o|1#GX^_5uO9~5V}b}jXkQMK$EB`Uw;6akX#Ty~6)6PoeoUwhjM@yW?# zC$ag!Y4C{;2F=c>uZp@8#j-MTF(2018)|83rBm>pfk4&=BVm>D$G*&*j7;_xk!cHG zbncf!GtwAcF66`%y5dmVsI$L5_YmZv|G}$5-21`6@83h=L^TA1kcz6R7eMn16;*KU z>qul`=%X~(eFy2q+%ki${?EP6_W|XBMlbi)8y+b@0CvXL} zL;fmjgBGBjmy}@d3d<9!#WAG*CqRsR5c%;#OroP28gsvv1}WDjv)eMwM0sIbn-)MN zYmn#o@Gv~IAu{QDU{iIo(Ysl3Fo zkr3M!5I7$OULQ{ymKaH~&3VSY``($uynx=b=8a8E;)Y$sfewzN1!JE%*4;h-AMLLI ze+Qao_`gK&e|eq!iXRL}I%Um8>biNIg2!bh_=t*fs|DRZ{zR?b<|3GaLL5np+z-K0 zO3O*nlLdk9`^>w0tcClsJoVWa4slWWhvhTwu|(rJm7_b1a~`HA!o!x;<*s~oY-C4s zaIocV{q}PF!U+DjU~SrAR-O7QbX(*)ETxvNul*^HH$QR%Z+_B}XK6O{eJFlM2x;uH>eg$W5YJ0AWkyy5qPq6Q7uDvI3 ztTRjGi{f$oK?;fG?lU?pYmM6M8glJ$lC~`c@4g`Lq?#-|@{8(xh%D`CprVKqj~E4) z25?{HH|aQ>Wo@6hPa=+Tay1?ULhjfBi$G5c30(tEl~}9|7QP#6RTW2?%Ln$n`!%{^ zdZzc#@z0iSXstk5zvL9}4cQsG&M?Bh?c@RnG z&QL5MU(BTZuzYxOwu2k>J)S*A)J#D;EJ^4F1?}YX11lSiO`BjGC|{}XMJut!PU4Ho zSTEG_eH0=zu^+~NW6=}VIv*FCOrE1(kgs&x_6i;EOfobCH^g7w@~~nBs&AUOvL-wE zRNPT_mGR~2&kwF?!8{&#h0)`0#EZRkZ z!>_8=srDNWgotukX1>*>)_VUH0eu~+5&mTkFynO%bML`3+GSo8WI^n)(gfD znCs-T{Pdg8&*o%_spQT-%;BDBKXMu!YZ;zO#6kV!ix015wexEeT3+oB6-uRB39K$D z4YfAKPT+NKD=iBBXN4k4b89~j6gwm+hWmH)Z|INd^JyDQ9+<(5w@aH5IZ!A>@c`mx3!Gv#In-4IVB9T^$x<|iMNMvlL?nc58g ziyZ3K#dvv3>AC?7`5+HT%mYKa-h9~rXdB#hE5Gd33)Nj^rwg!mr0 zlvETnd9k|iZ9QBo8(AJhR~MH-hdZk_b2{UC5?C(!0UhM^_X=%8cUN*~Zel>QYV>0N zd|HH$6jM_*Pet^NtLuo}Zhuspk{(29kd2w%eTr8pC+iXXm-yMT!wErC(UA?y5z2=D zYV4WPkE~at!spTazKSk8tQ*KB_+w`CgW6n0*z-XiN0K4Wgl*EgNdqTqjN|&xLX&-L zU=eN|LPmJDTpvul@PUEZyjd!Oyo6<@UGW5!hsgq~()bGc@W<8@%Q;t(p)a7Vq;#5@ zxIXTO^(J0=^xD8fiZ)&=1J_CRPPD$X{Nz5mJE>7;G#2ac_W{ z8xD&I)+;#8e2ce_!1#CoI`l@%XIO54y+9UC3^_A^9S(;L<1MTj~8KhjEaKYNODAyJD}Iw z-$~9=vKfvoI?4h%CJ6M*>_3Lef7QkQhw1ZQ?%)5jMwtA}qnKQH-e%81bT~0A(C2Wo zQU6u)%%y!hzVsrACpgAC+KbklPwTtA9Pot`5l943|xdD4vA27b$LfC~Pm z-mV#-s3M*AzBRwk=#M>GE-cnrx_)$E4j5zz-m~OOp2KZqpRaaOM4?bXD(md==)vZW zCRYg^gNNp$ce^u*Yj3KMO-&YGZYL&FUf=d!XK|9cI(b~@*4KGEpcov_omJ`p73$XN zFGY|%PhT(2LZ+5zRYU$O77iVFF^h-Y*!j6FX5%IA291x-(MOVjalb74&aP)1?#nQC zf9wf#g%;`;$u98I*`-M|HN>=sK|kzlqk;Z`xZE1aOyqc^WFcV0Kl%>AEKW-KBg`;Q z;SJk5KiO=2D1!5_%MOD~7~(nLLEnDyd~woa*#BtN*^C?fJ_mNuAUPVbb{C5r|7P}@ zo<%h)ht`|f`{LVHRcqseV0cO)e7#U~V5mhotZ8Wu%~Ekf{T5|=F0RXS&%&Qrk9K2p=>Ev|IJk0oT^?n#pJKd}?PV+uo2inrxgO)DnA>VsHXbcy zjDV?Zc&IQy{Q6H+%GS+$M>XKaIj|XrZ`15a+;|`mh0A7t9sJ7>^~~#@#|S>>rX>_- z^ToHmb=tXIH4#YNpQN~|5jT$t2JhyR6T{d}NeInbqnOs4pqbZhN!DQ-Pv%t!gjO@K{3uvpanV>u7N01L<^ciY;DN?C9+Vx~65%&*PYGp~ zRX7iT1vNf_78WD5%@F5{$_*%pY2VGzE^ZV>XF?Cpt&;*#F82!OIIjxKDuG2xTewo# zYs}?hN-Mu!wlC56tS(Pwjw0ImjD-844&R@fY!5gjfSW1u(yW+0`P>*ix*CYV=3?tN zobxRTCC#>7YafQJn~ET_-)2luD2R;3O*drjkT*DbTraSnGmfR zDBo*)*Wqy7X$p8nODX$d-kq zfV(Zd!fO#z`^F_3>Gg?=ZW7GwL~wJ3pHx#*r&A(1^IO2c>$g;JQc-2_juO(Wb5V6e zDcE=N1weFiRLWGIsuvZ-mnDy6&{UZ8E5C#27Xq2V>!ce9sl8LE&4n=IS;o3ydeTBK zMx#Y$x70S4zr%6gjeb)987FW{RGnhPLNN=weNe>A2!F|;!p&Vsn#KG(hRDg7|5c6Q zQC*D6#zMYRP_K&RC8N65yY0~jAdl9$q#R@J95kV14mEXTQsp3}lW}cd{`jc{>jrDx zNy@g1O_gRs)t0Wp@j_&}p##tQ>`~3P_#m*Eux?3q5QX=bym$+Kt`YT@@%9l#gF%gM zgAT(ru}XE{1Vj!UfTQ9Yw%2NUnf3YerB38n+(BK_^Iov_Y1>_vw*U3^4-|vZt?8y; zWN6o_HSAR1ve9NuPqDJ8BxcV>vt+BStKU59VZX;SB3@wZ>-kQSm@su}mqI8ss}bvF z_#vo%Z#~923%Gzqo z_0UkPV)+sJ!!u%1{NgK~lg{Be`eu)kQswVlLeytl0}Sgh^OzU(G1@hjVNbJDS&!Jy zQdJM9)OS~hJvrPgTTP$W^m94MA}2l~AdY8JC)N2n4I+ctcA=v(`2b=^dsN6yIN1W8m=K70f<^i532iI+*RF4)h8ej1CJBq&s zqL(Zi`~Bg2xrU1*n76}~IO}{$O4c$ezsWaHi~LOSF+z~7-i^bCY@?W?C+W`Yoq6%w zFq0EeMu;MupX7*)Uy7%Fc0${1z7n~2Ci`vA!|_6A!2aEE{(Brt{EXw@M-&sc1!hl~ zfywsp{dI$>fP8eILeohZ<)rILq<@&)_>4=6BTWr!nJxCRoKEhHg)z5k+)pLF_08V$ zA#SlQIfcjj`%nv(GcB<0i4_*^ ztnEAT11GpWXD=6P@%$=aXc&4mZ_-+G_lv5&YX8;3M{iZQ5Dx^NclH$kV&%8KX3v&( zyN%C&gFTGrvQY`u3so_5p1-kn5{;4;dbI&!j_tqoDSA(H<@IaFvC%4tBwQjbiMf|CL^U~}heemwPdAL=&G z#~1b-eGT~)Og)E>!T`+AOHWK)RlHluS=w%I7~*AP^|kSDV!09l=v&(jg=J7%l!9=t zO?ol8+fg-KdN8O{PDL{}4uFF|%?Q8e=MAuE?w1UfKjW-8@Baq!3ijbx9D4arlIX90 zFaU^&khEgykq>C3iaY6^o(O#Y{{-ItyRvuS*i3{QONdKCkQer9cq=_!4^V!daTYSk zNo153!fWzM)4IQ~0N$FvIcOU|%Bs-N(9=q8(VMJ^nDrv&3}C$906$7jSYS+SSVqRm zGOmAeF+G4W@vfBnaJ)C3lOq`Lw9G9AoP=+Fcgu7z^@pI|rgl=jjQn{Xkv_Qg6%FJA zpdHU$Y5A|J1_JDqSvW)j$Ow*Kn~vQAh_>VHhz|qI1jMBK47sE3$UcX2vcI{ z0Fva!i4O-gb6R}<|N@puAZ~xJ# z42!Ehr!A^}RiV5h)_?h7ouB%VlU0#vFlwG>V4C)>(PptNN!B;*Ei3?3$tKjjq<>BBnkWUBl=@U=omuEm?^*5W{ zt)9xt!3Vf?gPsg`vDoX^M7Ya8(oVm)hG5xtB(iOy> zHG_e>>*g0nQ|uO+bUzXLc}{hwOjjmKq~5M0A-GPlLDk)12^uaPL3)O7fK1d=s91(@ zV1*t^T6Pe{3T#xa@($Zr#5rkZd=FNFe($lYlLSkAd=|<=Hey5#(`PN@S zEtvlPQxGOC-Iv1WCUdJaU=QZVm1Q+(tWtq!z`P)e{h>e!GAjny^0uzI^b zNhr47rAfr>HshmYdPH{z(fE<@N&2T-Il}^gujl*|^Z!QqK)3Xxdv+F^GX=jPmUOSI z0<0}{TPEDqS3SgOcU4xVbzqNJzTtG6%{TAV;%^n)?#rH~fKlFlp-b!WBhcdOdyxE@ zggS>j(dPu5gt{oBq!z^xr^%5m_0fJM8es^Dy}XX{qMdqOOrxp^)}bqybY5N1c;uTM zHjiNg`*Pkz%>&So@9!}-*I3w~E2q4~K--aup%wlBnMlp~u`M6~z9;8Az4^EMif(Hd zz*n0|=I(|oKg$w{lgI;Ti(J$Y)wV;x+gg`oW_bb}KF~>Y?M$$Q@9@;uom$2s&00!z z0BF9E1mOD*Z-x!GKPi3sAy1fC>@em)$WZ)ifO*(^>22-im$mS;(X5|DEX2hg{aXFN z6XN$z_&g(6@+Ppd*s@?b`*d5H(W{1_qsWG4A>TEedI)+`;4URt=Xz>%oCH8jzq%f5zI0W*em=FV^F3%};^Cq7mI1U#yBsqruM~9^!!x)CPHj-H_xOWaU__o{_zlXr*+^2XQ!WU?-K4)`Wi^r9 zO^4*{Qxw)K+-+SxKk_ro-tN`vDfi26F*3X=+b94s6d(I)Zz?+MuJ!93I4D<27>MiC zys3r&&OoKx)TOAyRntV?FM)TrW->~H1enn?Vu?mUBN4mWonY6!w!|PY@J@!DB%L$q zXu2HT(mGX+#V5@RyTMN<(^Hv`>cY$RScFOx?m_rkm;+_zpd79J-u1qt%&m~5Fv-O} zSm; zy0dxIq`>+{9?N*=eoxfL!JxO=F8L*~+j zfQ=>CM;oRJvwL4q0-D1 z$H(@ea3}Gt4Op~@u^Cc4MzQtO6aKyEA}e0D$_x$gwmuXkC`RV)*&Jreeq~O`^oxq# zZ#)kBxrRu*wV%fvjYf+V@h)a`ck=geT1n5jJ(`aV>=1G^c5AN_Fw0>|c;7g6k%924 zLn%0R<z zr3z@}V8YLxkUnt2NW>=?+`QH@yAFScPdCyEF8>0^B|6%^Wl*xQ+#liWT_L^Bq~lhl zmxc zkw|3MzWE!98?q&GJ*bg9AjK^DnN$Txn@WCk=KE7tFyEWWQHh|B95(J*c%xWwyHmh# zar{z=L7M1f*GqwsG>ckT&hwPFa%1Q3z*Cy3u^G9~jq)xZg1q|k6gp3nfR|Pr5{tzQ zD_h{d%WwpDcP6vv5XD9@DgJDKZo9QSDg}4}# zG%ItM`W4PBk@<-U^au00NZRtWA%|g~O9&$1Gk+B;5Jm20@e^GpYoh9fFX-*8t4zA_N9cDLvCr~Xtz5#oaPptXRO*)6V}ZLCH?CXve30Rq@o(9fD^N5q zK6YM*R-2!^H0PQr^Hc`tNG~7h`{LN}ds}-d`29+(Q0}#%Z@k%vz17Tnb@3UQbZVoJ zmC#TDqt!s|bw*QiGnba`Wa7k&@$plMZ%@m*# z;s^YZF1}YHGxz{w;TljG0DmX@ilM$qtq5s>XmIR9c+kv`w$-@mb3h4+9VR5gV**^M zW~Qbu#{DWQIeEAycr=Uf8b1Nz+=s#(uVcTqW%PtBx=`=;597^{jXJT!XS{FU)>Z`X zT*{0)B0OhD=B9>)O^{fi>yIv(!u0g2+HNv+PJK0j5zJZo{KY`=9Z++z*2SfCTbGTN zX6`WSGd>9|k6dQKiiR@LM=8G*wlW62m1gFq-he=#94g>FKdTuNUY=x(l*8zyf1KHZ znLwaxt*bi+vGulJf8T5{Y%o6<;+kC7%;lE>%4W@T@l5FC(#!OAVK3a@T0RKmYbFXV zBu%?to8Jqa@S6VI{q`!4Dar>WhejTHimh41>2e?&@s1?_%i8lF@0Sek!OurNzqz%L zPYah?-?bJEqwk{+4*ks8)<9Ten4)8&(Nc3a7Qz7+y=G)nB%AGFORq^QaNB)-w)Jw0 zcOtL%SwL4{3?w*24ienoBkJ%{tQhlOmn1eWeeI9K^wI{wH|8T|#|mtK1`Dt@)Md(b z#l}qj-8GKBcxCL`yvjYS!#z+36^|~AvU=&^D={Kh_NDgY*)M*^N{i1qIQ}-(bi6cljO=7MOUM&x zupOsHijB2UT@hH*eaR_t@K6kUr^wE@+s`hREp)`O+oR^M zw$6JJAeUigo-HR|l?Z4Ez;+OO57^-EX{l60Rz)f;gL^5(3AWp8()=wW8`bK?+i1o; zRo?naWKD1AQAtGqU9DYHF>{IMQ9HSv8*FaseUoEm4+trs5N&}Uk$H@Ftg1Gw&JUyqMFy(rkmqPvQ6eW2Wx!XtV zLcyyP^CgnMHck03NMad_z6f7^cTIhr-}?_22#tEkEe~$=#*dCB9xIg^MT23EZ>l5~ zom=g1_h-~ne`KP_Lhan^;eO)CcO&+d zmV=WWg(8JFj)V#UGFAP3YzZyGb9uF&#Pe*3(NJ~q30t^9 zZgh;kKxDaj#+mMVjwgPqlRFLupyDG}M{xgP>OA}K4c`Xe(#ez=+K_ zI%QQ518PyRN{BCOcE|b}F{H2U`{%oR988QB>TO%>+4tm9r)5&B{8D3nnL2MclW5z^ zKmVB1SI0Dem~88+k4q08GQKx=eVSKUhz0`5I;AW7=jtu9X+>^qJ!AO$)a_OB*0WsoA$7Rot9cl{CBIsukPdWgJuD0o z_+F_ysb-dE5KmnqisU!I*sA6xyXDuZ7rLI%34Du;#$@ipb(ffL)CBn$|KB|^HBesX z>(%Aa&c|~`+n|6pYS5b@7q=mb|M+Ielif{Z?D7xZEtTq!@j2^+o~%Kc+9(&_FFyJ{ z{)0}$=FWNc->89?au(nQ_*%la;EZaifsPMq3wT6rmF94+CH#B@dX%dpcs(=@$(ec; z&O#tk@%dc!k0UYXBQ@(NVD~&$qA@4dRRjzUVi5cafE2sT@zy-JE{74^u6(Z%skvKr z9=H3vJx+J!-NeFiG!qlEu2tvF;Nf@Awk2G~zwtWVywtCAFJj5h{?MdKL19tm2{hT) z+SK^vc(&c?-Ocu|wL*Iu@4MeYrLXRKq+C0tpqBg=@#~Y4+Su~K^23wuSNPNNqnD^O z1inTrVtmkHU7An=JtBeJsRN=8Sh&7lHE}6 z$jrV1s(tJD_ln{f1toC1fJA3S%ZtD!=cooUq3G_${n%y1czz`dDU2f7Ie@IlvmWP7nRC$Pux*GoB_Agn zCK%hVPj{9El6l{jyy?ztW+KX)x}YofE3^PY2BZsJE> zGkpr>+RK@R2MCJn$&5aAT~h1uzE%SRrdQlouy%j#vJ8US;du7q!Lbn{q>py zTp+#u%4jXB(K28!=59Um@`tU+&cd(bkW~39`J-|i>{Po3{qWs=ym6Y$U`VQU0%vXG zalzW!Icx>l#5lEZv}`Jk?zLPkKPDe-(Gh`*-FZ8&+2_b#?1pQ%4bq5 zKw3WC$J4XHvM@%t>;F@7VYk`D3ZCJQ*S z1D@`;DXDWTcg5H1Bt(`ySjy+5_og}FOw>W2RLW4I)3rg8V*IH9mwNe+Z4-EQ`PBA=RGBNHk`Dt@i7i3yiFYLKG@G(QbQ9X4shtpFiv?7*V3SKdvtj2ef@;Dv$*gi7g`Kx1BIaa#U_6?`!2*6uRb ze3Fy{UL|;w3>037joO-3U3L_gfmkI7$>-vkL`zqq4AlcwQzshQ?Z4dYRTG3hpN+|q zr+(0k*?pWXYZv(OUUvie*RECNr$u>s=O?~$-Vf{i%W`+5=4)9cl=un}t8~}xogZxx zEfF_;24(1PM1AyfYAr=vE4nWcwc4;U^OR(prNcpK9INg@ z-0Xqh1{MYN!4Ti21^hv(_&9hFUvvrgl`zuSb+bzH^x_iV8+1*2c3(K)ciLEJ`;~l= z(3xYSq1x7LtGmp5t0wRC-}*v#Cw?3K8NnQ#7S`9Ckn76x3uERacL`5Vr@`ESnC)!7 zqsB&7u&3%>H*sMnq!WeFnUcI|z;|aElO@}|P$g5gZ(nM{Zt1QgADH!^@REHtyWKP_ zXd^*WVI?%F&U&{dQpCe)8BE^fS$)3veXX1pcls@;S>p3{Tz&8Oh9EJ`JLBbxe0Co6 zjnGt0kIQP{n)y2bkm-L_6a+>@?nNDM&WUP7DEUzUnqC;S?8UdMrrEta6OH%T!IXgZ z2Ymj&k{h3KGcm~l2o4FwwfZHbneQZE_ac6~{Bo28VwsO6{QGXIvOY*7cAp8S@vX>8 z-^^qxLV?yNO|Pfk5fd!K+CV$qd`Rx;F(xj?a;wzPe~0JP}KqpJ1@2= zrlt3qW-*E;oZ}~%H=xX%tlG_?T+7A$+>Ntt%7MiCLM=Z-t<*e}Jt@K2G@eU)@jO_I z2_h4p+H8AMwQ7yb{?24r1?x{kcP`vgA7lMe*GR}n*L%*3_UGy4X0__RF|T8bhyi0y z7(vV7C;wewI#r)kV!z9!9AkB$br0y9csvmGCQO zO3>C<-Idq=YJGOqfw|8%jti@xV=V;FPyik>R~9sG?*0v)USP_btYbo9>iR z0XA;Rbr@4nh(l>=moioB0u2}3_i(Wv`D-XMK~H6^k)lu{rG`*h>7zk~SxqUG>R*(R z^&Ce<4vQ;=(hrVy22RE@(JAMnUhFbawb%AV=a$Qfl%whC0erFd_ z(KBU117_2PnN+bmJXI(3GY%z!o+FHFrn`q)X2fEl(1isq54$u z`q}hgLz7z1qsm?O!T6}CteAX36N*I@56r!Gu3c=sub*2WdrneJKBX+IkC0*bnbKbJqNfGoh9|l9t_LS#kuq#PqcIrgqkOS;()(Ua4?X~@-@pl}G6(;2{8JE;l z177sOaUsFcs5wF#_0*W4DigSYwT(jl*WI!QS(J$N8tM6Zupj31U;;h-nYMf74n_HN z(sr@X-q6F{C=R{9{VUmX9vWp@kFV0@23Zu!{v=ij?Ra5Uf!>V8mFK6w7iPQ2UtM~a zEbTUn=@6yQP4%L9ECzwGjEs5v>Vd6n|` zY9E)g37^$PUtfN4Cp*HbaJt;R2uJm>RxGSLrJz(J+Dw&Uq? z=+^ONlcP`qtz4O|$h^cr%5Ym5)d*T#^0K}e0R^5#iWdtv=iKo?_0F@s%o=C;c?FYE zOv|MO%zcm3Jpu9g(v3PTCk6TrNH@B~MGL8o>habYS~J#|O^t*wP<@^C9B_0;z4uo? zbS%0oyIy2>-J_kblAW#4n?3a~{2g(l8BaLP#a3qiZF=$xN?;(ER z^ZyLq_zx$_PyRe07E?JUMU~Q~7mW>&qt!QIbx5IF0I++63J>_!dHxkg;Ka$O||m zBrif2+&;b(G6xDRNMAMG>hRjMTqVXBBVt+37|$8*p7T1dffdzV8z^IxQ(PkH;UB)Z z+J(*lj3T+L9LxqrP_tyu8MxN=JF40^B+_|YX{ptE%E3t0zUaeoxEsFLo95!Y@tA#l z-^{d1wF?epNQN)o*(+kvCFz;~D_YK9=k=0;ulj0>*?cSM8(@FS<4xRE&xBry`XW^F z=GnYwcW`BlSY8V_0Sj$-5{!^5s6Q0H5CcM75*;vOf0t*jlfs5izmb>f1nfRf-z+;~`ho~TuRLw%|6P=Qc(1MY(jb|XjN9dL0 zuIw!Go@TVy#mjT4axuo+lvb!nn$SMAiv*X;06JUtcW&TP^@6`&e}yTbll1h88)aWs zc$|gUbLV&WU92CB{NrKk@kAcg)bzmmE>cqy{&BEP#ju4?aVQ|i`D%|_zTw(e*b;|Y z#??Ah^*>1TkLw|PiD7Fyli3s0%VE#KBvS@+M|0dW@0T%2j;j5U9R~GST$`C)t*^yX zRqY~9e9VD~?UbRhVRZ-H!IyGnCY`V>b=2z4a#ImZ_gpxyr;#UX++EXXN;Zx!R%MUt zPi6b)b&6scQyb`p6kCeSxUq^%HgYYMbVRA#ECsjPxpQ+8E-zd1Xz5l_snJ+z`;(pO z^UW($lcxUh)S1W{>EO10h;Gri=CA)Vkf!g;X+bocV?yJs`e~rJn^jU|nE#(ufS~If zKmtkFYjrK2;@SGhkMZDpXS_nWtn;)M-(KG(5%>k@AiS?e9a-IK&8T)5YG=j_Hj5^% z93{BfPRnBmV{m=z8pEjLG)R~1CI?%iU1o3pMnaS8$FY$MM>F)7EX=z?vH1$Rr&N6^ za9!-UF?%fPs%{NlAFO`xCczumKX|nCPBpiJ=&8sG^!jydnGL6E&Ys zVeMAPN3y^+IVelj2#p=sGVbfEbuF)x)1ApF(Rur^_B*|%ts<9B)Y_gil#09P)F+a@ zah?ayFeCa~dfC%F`|$8gIY+4FY+UVearWe6C-=E|YkYwAforAlRemIff@bEW_U(wj zeY?djw5IijqYFYQ%zr`WQ8gGjf&?Neu%w;!0o!sJyu^uM{{$tJ!^N!n zY}Gh^qPiU&-6$L3Q2r$S^Z+iq&ihpAu*)p<_>%J|9QoHCYI6;$OM%bhrKb)~iR%Ig z12JiXN|8QpPALWhveVonSEm{mb?TbtBI2TlZ>fHGtq18j?wR%dIR)!$liR-r9Jr!C zQ`fZCxLTsvlze|exdE2@M_sF~oc@L@Hyd%Ss(XiWYChNJWDdOFf7MEOwv@k{5#2%` z^riqDrCcT&xEzms{EywJNm3SPwwM^hdC$$LzyFK6w+xG;-L^#=VuU~-AwYltfdsbz z!7V|9ySux)lMvhzqzUdG+@0XiNN{%=cX#efzV+?3);?$5yPx~q^W*kEsD8SttE=7` zbIdWuJbALwkn@9C#k{IQzC#(iEE-ZWpTgH|A2^Lux+PPKBylrj4EkCuBpO}$FH;I!!Wo^*e+vO9k9#aN>nBhrc&h7-oD#rroGz%GSRRI%@S zZl@;f?5wsbCH#saU(j$lccQN#-AVSs?k4;DPVjBdD_JAl=;;iDf-(|py6JDG!bvAT ztJ=eNW0@F)t3+XiD#~ed+$(2@9gMC~G>o?Gqvw5%F6J1xY%-7Q$lfaB-s31JCNNgb zWY!;>QPZDIRtt63*3hsF=m^Q`?j6zDW?Z0U-LjrsbGBg<6IQ%WbNBVo(|gQW^)oFF zIVSU;mP6xBgeW#B8lWAA^BOOp#oV65ne1x?8H7;N5u-VmU&AF5ISqNEI`WJ8hAZS< z?Do#1tL*F9z(mkn)+9309dc^4eOjh(!CIjm`pEw2h{5O05rwo$?lRM*DHB&twj3cB z)TuH&n?xCgRNjP~;KB0DIGg0jA4AHjzbqW+*tKrzBwe3Vs$d=OeddYXNzW}`t|MDx z)XJPJbq?ENg&*ZrS~z8`yj6`uP#sg+6`ofY)nv4MoYenvy`)yDoVki4?>dGJwB0c_ z+6`E5Z0N+z@lROueJkRk-=TN@XXXy{?;R2ej)c)EOe4e#Bw_ zpSkVsm;SegkJsnX!NC`~Pt47YElhq|R;f{Ob|@eduHE`hvfOn;UbFgqT^nR5*`$*n zb3Zi~wbd1J&4bjv;gli7#H7+~D>Lng&m&*o*s!tXuaG&DNn#nk*~{}{ye&3ov=!^W zAj_-q#N%<#d1vEsx#(0)hlJuR$ zdFdw95DDV(sXYd&?%FGNc}nR(?f7Og^2AJ8Cy+UdyZE|T84==Q)mzSno!e(afJSI) z@v~7%9t!=wB%xg)gMt;tJnV50?Pa@xAyRgJ70Nrb3BdktVT^-g0|Z^{ulg1~Q2rLO zr}kF|sc(s%d^x8srGb{4C}&m2EaRn`g+=!DDtOFg1>=sot%UhFwB+KNtcJ!=&Z$&> zxDpgK6^k)+<~HqJsa`i>EB8%Q0#x+Ajd}ifMZMnbB2Dv+I^{fq2Prs9KB+$~4$k5a zyzxvAu>#dMj!EOXE8&ku$_#IGr`pvx6FJRG&YU)jhck2~sFkS_#}kt%_*YJPD@WWS z(AA4aVo&0gO>Jk8o6xZ^@H}%a>L3q=RZS1&yISxzTsNY9@?UuOC7_nyUcH^~5fMkn z#`nck&&JsA3!)mx952<|mrfZ?2VB5LczM62`ps5?su9znbh!&PUT#V@bm$(!l=ZDjhq6bef8reYH3 zimLY^!2`} zgn0LwMoqy!~7v zZT4y*paho$>0C7n$d+Nt?h??6gjUP4EUaNO=~^mt8!Js@m5qYt)E=XUEn(kX)!OB0 zHg(c#+soIDW^#_6VK6i3$0F&WG^_|6&a=e)IrF2!xUFK_gsehjg+J$qqTN=olhWq< zwWj?#Oq1*S$pewyiq8+;X(68$bi0_v)s#LdA9|fZY7QMr6>7}xNvd@}G|yrwn3R(S zHCzR#;dD&;fX@9a?mr5Z7OHbpgd#H&DG{15GsvbeL`MlQArE8zUAp8~@iq&Y=Xuk7 z%scoauHC0*8GDcFEwU^AA!mZK;PhDlE~{t#jhBW#bvKNHN6_&jsE#~3J?}|C)R;YJA=9ZQBc|)=Dk^MXh`OIdMg6? z?EA;czb6Tp?A;ArIut_t?LBGBXuUbbI!b-)6r{kdmBEL%@#WbDMFs@VDRRNBMPDE{IgXnOy)jBUB%Sg`+4UB(BYhW79l8x`XE}zxg^ympwg0tM%=F;UaYEwlt?>3l zL9WU1E)1izpP*Zjlvtrop1gfl!r{RllLH?RROzURd^syH@w0Ejlb;JXi`;yG{^6<$ zb+ylSyeL!n-0FGSBGo%BsOF z*(SzG!1x>6O(~u^I|76Aer9B|x}*c4_&Up)buo?m2~fg-+CMjS!^PS@R$MgFZ?FIh zbwm^Swbz+tQ}up3sPG7fDf1mIPc!VW?N+?;L*H~6*#?YrdVHzYUJcES{kpss zYdXP)K&Z=d9}Hc0aFeBZUO-@oZ{;q+>pqY)hYrr`oYx^N)_03T%u!0oPRN4ym@RIv zMAh+QZ1idfM`>>X>2?H}s8IiSsg!fg{%4A2;b7z@*qtRn`7o90LRUiI( z%#mNH&_l3WhA|m}wv1JOtaZA;AZQ=X=4>Nz5rNpGrE~XvE%kbY@m20K-1b_XXtix| z-knj%o+Sd#U&P53;av;me;xsFKMo2dML@~bVBrN2;vS)yA3OL&bTwZ4l!fmu2q@wH zpX#TPTxnYr0zaKC2&)$)kf!*Fk0#5G) zq!!{Ks9e$7RBg$&hJ4#Re;}+GF6~%5>C>Q4adfZ#wpMjaJkO}ReY7hC{(`Uky$_^> zJaS=iSa5*o3oo=T#r;vyrl?Wuv=BDPx#>_z8g51PGOniK?#_BF-CwBD?{T2YzenD-a)2K-E6K6H%dfu;h4`XaZhed;pX7 zUHX@Eqj=c;O>v>S&p;8su_pvo2oPNV{+p2d&kn=?qWF}WoTo%x$HW54>!`1<)zKPF z4o}cV37uSY%+@a%3EcI&@;qzkYE?fY9G-3N&VA3P{&fk)^Es}Ojgd>9q^qpZ-tAJW z^GPR4)|9rM?hFn*4A;#AAz&xB#6)xn;M1{?U zK+_%9TS=D5OhLlyl50-<* z8(l9X9~oS`^szWn3{hMi$A8&*^4csD1!x2eevQ77Txnx^HTBMZ-D3OeSyziCQkZTZ z(8BZ33!I4-O-iZ$ypra7p?zV5r04McM@exn*M8_8=Zf0p=&G&lBMv1dBh@TX)cU%x z`3wvM@=G#L_M-;3E%n=b88a(O43m*5^Z1VWG-g{0CsBU8PK|QT#A)1QnAW-i6O$Y} zvHO>nk^V;`9W>r_FQ%E6LY=AFF7ByZisg%);QMLxsyO!--U`Kpp$P599u5=6)238E z-&JS4f$OEsL;_d9Y5hAoItc?NO(q|`{w*#8bnA%KeDuVaJMwVv3EpnZyLCaDX0>-@ zEE=zodgh1@zcA1nbzg34*d?p^_u#0mKIyNs;wyM52g)zIrLP3E-Q#BUF9Q)9P*=_A z^t z(qyHN7`%r^mzjLVWm4A5*?h@z-i0A#@H5_H=VOczLzIzKxK^3ON9WTf^O;}c6?yDa>Wk&$e=;=^)Z#9V{1u2kjyL*En+Smq+U)-t|ypd>-Bk8A%N)y97< zg|vDbE8CosIj+9u&5zuNFH!cbH<(Sx>9AvBtf3QZ`8gKK&1i<>mJ1bW*{ZGuDuch# zv9oq?S9(VZG>VbNbK9(lUNgpjPT5Zn=NKV4{rPqhXazmHFs$>RO@?5QcD;|_bo4Yd z2c@qffhGEe^6^`EnN#n*1NHN9DWh-uv+kzbnOer}4rvrIZ-f++B*(YERRrd7X~lHD z;V_6f;5pbYVM3iUH!-M%N+<^ANUwcWH6)NWp)iZ)tZf)o->dT(cAU8;z4YhIF6x-kL~KKq8Hr9u@wP@;G=` z;#she95d+xZ`(Xxbexa9V%WyEmL+ieIB}T>9muRHH+6mWMXc#jJfVlJ@J$kzbWUk5 z$=h0rJX1S1m#y*Lxy*Fo#w7DDhe?ULYeO_N{#J! z{HvJEWOGJ_zAcTaifNmW7Aad1|1XxNTt7T|s}T>$t%W5_E=}^eBu6NV;lQn8cG~a- zEeI9y7isd8)y;a7C=XWQ&EmF9N?C#1t)yu?vSA9GPyx#=P2S4A-gO?E!#d=ZwE2UL z^p7h-RI5hfEby)2_V@x^bM`)I^HpP&zAUn*K%C#?$eb8XwzMxY!jF+ZqkF#ZVHchw z7-lj?En<_SC}NcBusx(YC`hUpl`JQ$x=o9nI4JSkmTaq244Sly-n)$Ge_mUf+5Kof z_j5;FL^$P`%)SLv>DJszUA{%Wd?I8^ zlhMUkXD#tzYLcM!bk@V@8a8vHH@hrU**BMQB9nJaRHi7r<)&Jz(F&^zM6V@%8xtGS zC3~AiCMhj>JvKffF8{<-f4JFX)cPj$`;0+$x+%kmOGWKS+47aN2o4jXnst&pA&&{_ zc*q7ZMRn#h-pUj62`n>l2YM!s+HTXb(?;Uqk z>3$Bl>P(QvVv>V;R=ov7zcg(-2c$xeu&DIuHc+e9qYm`fClTN*s6 zX!u@xlrme8;l$w1f|>0aQ*nAO$)f)91F((($%7%VpD^4@JNjw6cqpqpvD=iFp?R?cht+M1oGiJH9U7E-PJVm7vea-4a=} zGRB*4^NroS>-EJq~m=_FDbvkKDdAy;eGG3RzzDj%l>RO@D%liWY_r(kA)S zC4~M0JYW18`B}|rdcR8#=pY3R3sshf|7m5Sb6#bLn5Qk+@TY5_Xn+5HA;<@^NdV2Q zwE(n|Anb~seqWlN??|I?pxZDkit6Lt#t%h%X&NR#SS<(!cs?GOeqXk8Mw!-|o+spX zc&rHE7fRW`aD}X`Q@c%~Dk`x6l!Jo@;MyHVSQOR#=%O*@Bm|gm0m5A!{vk_<&P@r9rllvKr zIaGlEM$)Kun!8Y!%7^aQnQt5IwgxThsz+Ya6Eo?@t0XJ=<-M{3ssmifNF+f3BM(jm zZstIK+C>dN_;ds;21@s%b4!spJiPn!`am6hKtvk^AZqr}RxUEI>;P~L`sh-ZZHAs>&@g2HS zowCk+?&@y5GW~7iBJ@?$(^8jVcih1JxF6$AI~E}y-?B6UP5nO^tA7+E7ui3cD}tb$ zff{)KTREeF#;U3s%gc*o3S5geMC=K`cX+E+r;}bOiIN&xF-n_OyvhKGMY|mU+*gmK zejB~tsEz|i{!2oGl*Q$?wN3oOsE_Mir%QbTsVc?QXSAKm4Ui6)U(P1ezjGh*;oHz= znu@B?w}+6TCGh{8Vj@mX&}i^V#=;_)m{tO=%%X*BuOTTyECPb)cVMQE*K2UHU*O_S zwxSY1ASZ4E3H|4}2McKhBkQ~Xt|GB(YilcpeQLDY0f+3xMR-i8Dswckwn^F^v3ei! zx~g+}rJM~zq~8sgDc4BF&OSv4v-xG|3knK2I+RsbyoU)XMmHYmgGF^3J9TJ1P3Pz$ zyJ)ZT_ir#r65>V0{e%@0JGWbR@p-E5V#HG6U`_`mfc}W$qN2Ld#iAM<78XCVW=J8) zkGN4;eJ1_Bxq-a1yDR$8{x2@)CGr1^4hP`tpUI5>j|SGyQ>OPIF7rcPw)`pvLPA2W zs&OedGNz)oiqX>GoP7Y7_K=VO4AwC)V7>pirB5*mwCLmam78$F8Fwppl30w*1-};xH`*!iU2@kB=6oDsQqQu!(&KC*SQ>*-7^3i=9XDgn|N?Eog3m}BI zTMD|{ZDx--ZirkmNY_Hb2}!{2mq(F=fvv#Hc;~+TJu&dn0t5Vdqf(lV8Kry#N8ra| zt|PQ+Z+EmS0|$dX%+4{Hrn~s(-vm~I8);K2ad$tc3Am>(vW>uxiCTCnlQ*=!{Or@+ z1wx8;O2kfRFNg#|dI2ueV`=(nOR$4vGPF}^X?n0o;BnWY{VDdfjQ&Vee`RK52t&Mc z$3nj4zqo07G(}_%mdp=Dk4Jobg*G0%`vfXpn>Sn4D5?|>6FBfpZts#Zy|jiV2Va4H zg4f5?uu#)&8tc}7FZJI8F&SG_$NYd$+j}PFqkl57f6N!j0ncmr6KLuAu?vBRikJA& z{DHM%+7ArDVRz%?%7s36Y|pDgblM&B+gFm<4rylAsYjW12L2-#tW)fKoOJB~74}yO|pvx9V#_4*Z)Mpl?O&0|ccC z7s*He!MTv6{q!l2YWgm_rn&aWv(WOo=e1j>QPrSLD$&NHeHy~DuXYbjdMF~HHcSUZ z5FS9Fyk23cAMSQ4JhIbYU+1F(*PRyC!7lNnsA{X05tVVcEwFVTJ+2f0Lv#v#3^syk z6!jXUQ692s>P|)dHm&zCv;to0J2`h#*t!p`z}SAT*2$aHvQ;tE@1o#h$wEv+T}_?o zNUUX>y~cwTIcEW+~XB~z1FXyePU zE%nL1weuVpueNE(WKJ4AK=nLV->-7rj`NPi^Uv)*(eGC#0!voH4rKz;z5v~qdZhJ1 zl8s<jX6U==>RMac>#lbqs@les!oRE>4%-s>lwe6Jb_H9KYZ=(Z)BReQ_%d-KI} zi$v3eLUlXb+iO>v;*9f|kqW;5vSV`0$P=|gxfL^es}CE;XwFYxotrH;@*EEfZLSo) z_!kr8?!CU~Rb%Uf9;{45SjR=55?^{(~c|7^mDuE82Q?yNC1a&r2;*E#E@C@a*>4b!C$d z1K&jGi1*)F)HE)B<<4vh%mIgQ=RZxDj3N3-F&6SAoAr#M4RjcZ`@&;E4~!``ic0-@ zn9LmE{ff7f^4i-G8d+8+>D4M*_7o;Hra6NQzp;E#Q-XAX^EjI5*9W9Su(&1L@^#jI?^Hx-XT#(K#V zz%*wXJ`u_|dPjo2OZxUMqH|6BFIOY9?lMiD!SZ~tHj3DNBjJ?d*ue9L1#7W9PSti2 zkISjht^)b@)u%LABZ6$oCg{b=7`qrOA)?qJnr>A$qvwFl*xx{Nh&K|uUGSXUFfowJ zegHZ8-1sP-ihJw}mni=5gVK&%X#>9PXq{t275K;i;|cZq`dY)&pp}>X!z^LCrecmx z?|l+hb4MB<>spTCI$O9A4+~fR%>^`(GMRXcsb!2_{ip|qzTa`Q-qP6H8_>6veYZw4 zvIo{#J;v=M`a#3m*1T#pXAY7WS0_s)Fp-7$VeLhmblyRC6}R~R*2 zST3cRR$gFlq7Yx_4qtvP3Sh(V>q0MSy|~zJgwoV$50+hG=%DHoM*CL^jhf;}m|_h- zw#T`9pc5S4p1cIkOg6igG&x(Q84JC;#>Hv$WL?& zKA^)IoobxQG68THX(@wNJu=Aq_#zeg8H;fabV1JTvY+m{S_c2%`zYJ?LaGRptFfYV z#qvxTm4KO=j_!mo2`yKhYR-4pRaujgVR@Dc8=U2E05v#Y{Cj|O_Y4x{Uo}UYlum*XYj9h2+QdcpSaKK4FqNg8)hB>u(8Ks2j!d1s zzwDSUAAg zZOxgKx|5Nsz8@0#oIPt8bBledR`JyuOVs?8`t*w90_{7 zXEHt1B7v?>Zxl~x1dY~EJ7Fx)aXK-_dD~v~aYL%dgG6^zNS!ar>IbJk4F?dYyZ*<+ z>4`q3FgOj*G(#CkBqDbktosBP_!zp~bply$4)W2q2OqvP z33>qG`2b+#2MCh!P`Sr%+`JY+NadP1ldqn_WTW9p4Mvo;I@>)Ebsc1R)^t`5#^Pd*X#biiXEs zG`Lq2`XJ7r^-tO8XV1T5(%3bR+qI4VG<($W45ONe?@#9G{WgG$t9h@=PSzL-kDVY=# zqyps(s1Nzv)Z%+fa)wx5;w~FDQ0GxzFQNZiC8>SjB8#(7L=YGy zP@*nz8E|h8aS~ub^iRQ<>iC*=8Wb$PWt+_r#A)qqg173tw}dwA3titCk|vZbwpdfd zH1AjaMlXIZ`BosPB`h#3+CTE;zHx@rnPZ|D@8gN~Sp- z555G~eTcK&Q<{#j#J?}XcJ-n9xyu9#sT?5nn#F&VrTm`XD-i3YNXs5bV?viV$Q3sU zRnPl`1MA8beki)Zz?$;~4~Y7p`mV!+SA%6{r$3eVL!Srdq`?^eO6b_KL)eO;D(sHg zp{MzPDn(jB74I=_ht>SR5gGl(-N^YB^{VYVFmyeM=? z+7TB$R%bRD4rG2?4lEE1;XaT1Rj)p!Ck?HWrF=c_yM91rm81M{ZfSrn)N@lPEcars@>c3}&E?F~k-JrTJ^8 zk#he=PkGJ*j(zEvmrf?P?7mB`EP)SVx*T>};e9_crZx2h3v?+9s}$Pn|4_2-Or9O1 z*jri3YD>y$S3pBoFGb?G`r5XHVIPRGw(-i%vS?zaWwGo+!;RJ7k&PMSkRdnZW3JTX z3dWQl>$QniD?)zYfCpkxG{Mx zn>77&FI&OXsElCS73O%_2*3U<`8XkN=fy)IeDC@yicKD#a*g^%e|P;cb3kB|HktTCs5QLseu5ay_G?l75 zCDVhA7tm124eM59MNu6V9iUk6ISW>%FVCaE?Nu^Z67@y+r@N_moHe$d7(j z$!cu8pw~(x+NwLX6HlpIR~uy{8yZ#oX;~~(5nJprHep=3q3Gu!HbF_4@pzS9@xezZ zr7SD^W}mVBqv-s}p`mUHV6$<%OjlmaE^#`KV4#vTlS+lhfV9vlEo5cFIQgoK{$9Xy zA-xiL>wK|Iu=8mBm?MVxb)D6R^}U>{C#m91u88^3DyH00KWxGu?;A5T;EqxcX8Kb~ ztE!R?w!e+?)bIAka+7Cp6pQ_~+xcRycCslA4=XQ66i1l5&e`U$Lp3^YAQR=hecAsg z-hAq?++yDY_>wZOE|WL^DrHmheo+binb_-4eFM? zA{}L=Qk@f-ZIYe9VS8A!Kzo=sx#%t(CS=aa7y>!-5w&%JoV(!)$^&bJC&DUuL(Ly2Q4XF9J9+_o*~XLD-I)%%cBO! z;^c6`uwou5o7BYq?Nfi{XOB1VKIlMXK}2zso zM~*$ep6GmuryxpM+}URgR|2d^DLR1ruD!2D?qozM-vCM4Pm}Nt4=?!|?xgmP=GXQ2 z|7L2($VZ7dZ|b3+?B!*^g2RVdm?k3&fwwM}n_8Rx_F+21o-&ay7hXT8Z~az(RH za+T`Y8pXG`N$*)Y?j zzdK&4fBU0Xv{F)bZZADLVdsqjSEj>@bh+diE33f@za&hZtlyOTl$dIwC#Ly=GqJku zsp3?mLQiaC(h3wMfHJNH+V`SEv+!O1h&o}RtCDhFru@ff08~MTxI@z=2OrtY1<*>b zkCcB>x-^bjEJULs`e%55p#)ZP8%mGZw#MERfh@c%I>_%C11{eK@@LjPXv zd`G8aVlb3WvV3QX=7N%el9YjglA1F$FOTXywHgY7B0C2!FE1d#!0?7imDu}UpYLEE z4%x}UGWTa=)j!b_kqV@Uwt4X~n1?PM0?4ENK-RS%Y^s1`0B6NHeY^^QU_PoSBh zC!<7|<|6G>ig(&pLrZgGiBGtc6xL07ccsmT-vPmat~&Pqp@*-C6nUrVlAu(ry$32~ z&KYUyDCRb(Wy~xjD77k(H9`-6@b;pBt4qSKA+Jc1!}E9x&>cktH+0$ACj*$7Y`E+k z?Dz%SkRaE8eLwND@y!QjRn@%2#{+!%PtE&-+o`@=koh67{!zYt5g)g|AMY@&Mx?#4 zkf6wZzlWWJqq+IbeJ_vXyT}-Hv*rR}?4pGgV{cEg!`%AkV<6k_RP2J5l5h%0J&b~LCE3^h-ce6+k`P^lSMB<`{PI`r#Yy$leko& zThF-d>{=GnHZYtSxYnOI_Sb!ej9nFD5r?V*2`!WClTiYD-B++ao&K>);An(g^k`06 z8T==YDxjsv_aabMBjapaW9C@%^x5wuxhi@0WPRV>X>S+DW8!0mp7ZAiOXuwjBO4tb znayFQ+Vnps`A+<(;K!?c34T1{(i~k{0?9;XWw*LxrHw&)GO>GxE8{)ctI8Y-7g5e} zNkIvd=rG&ku3zCl-Sl@d1B?QCF<7#r{1_`O8^k46n_u}U-}_|()Sl86vQwQjwMz9B z*h*C0Dh?RsSYG9V1vPP0mxVR`E>#iWc4}I^D!WYS`)+GL%|7HNy6^NrXEBIm( zZ5V2dx~1XH7fSmVB_uu~@){}i8R<&V$}&IedsNu&B{GU0X%I1MUy0cZb~jJo>3-!f z_keo0SuI1ML7&C+HIjg&YK?nr(PKn7twW1qcc1Abeb_c~>t6sXo zUW6H{+okk{*Hn{G2|M*Lm?GRS{^H0(z$`me8$mk9HnLOSTu(R}Tz}bDY~N9%dFKJ$ zE$pc#nqyCwY(#_1Cm*6c$-B{xUEeQELgM*-Q8;wnz-0_^M5u z$7TL=k}~1xY$6q;38%4|CNR8JimIVcUK0xN+{YW`T6*)LK=Y{)TQQQ$tRu+qRHVt~ zBDTd;!B;nt|GisuB8nHyuzvNA+?c9-@}OH~pf*iYZlzzI9rdCx{AbccFD{Y}LvEez zp;|_LMlY>F1DoM5MSEMrz-!a(_M#IMxoV+mqCmD4>NVKzJ;-?Yz={uxNDILv%T>pl zuP7Tg^N;XDu8${T-!zwf!ak+s8yvjetXNmrp1V1A^b4}JthXHO9Nw>7!6Kx^a*y!1 zte2JbVP~Q*s$tkr#0xFyEsJq#%C8tKOz%eoNfKf=q@GAuZ#uKj1H`|| z$+Z^t36@LFwk{zY*2k3&=5JKVimg014b>y7D`upXKYM)na-7$Ib+?eNk?Z`H8${p9 zak;t_>WBMfX%I#|qjcSz;WqFe`Notw^F(_ABF0AV?9}Tcg3uK4 zS8nW$OBc{-HNl!~O545;xhXu-R*y|EIUN&&ub?rRQ^(v^Hd&<|laT-?7KvFR+lXZ9K57{@l5JRXTe`_b zgQ9w>40o=J-O5kiRunevj~V7AUVd=J)h}K4e#>&0i$sJ=YcjAxtJCs~Cx z_vyO_9wtS(n8s&Qo>A>o^eJux^arkJ({T=qj)Y2ld~w$0i*U>9QxYcM$Tv6pjIx|L zT$NPQ9?}v*(;M&Lxn-`6j^)lanZ*#NxW+#kg}ve;!d)?iArG2<@w^K^AK##E+w0pK z*6rKwj)t#dIA`^vlorBHJ_wA{49;c z@8omty2?Mu^KYZ;6EagW7Ej!5E`;YIWPdLzu@!0x1fZGREKKwf?!GGM5q)eoWcEf$ z)ufDKNzDAQY9d~%Z-U6{)24n>5>57fC{|t0KxQ!G+(jYATt!e`$xg#Mv^MIs)Wg7A zl1D13;y7FN$D^8!rr7&q*K4^gmQ+3?R!1~bMzYJZ+-;mY13}yM)IscT?vzDuWXNV* zYpvpK_8&FMVlCxYcH@5a?@yhfn8)~qWu>sCB;gJo%JZa5b#lZk+89{5Gbct9u)xqD z;w@;c-qx73y~fpXKLZiYvE*ShErD_PF4R(i{a898B%y6)(o^C#Mdq5x-X%ER={$PH zi;-gmtGwVR^Mm~0DiVVlV~u)~>klyrxJ0VaR^P}!PtW0g#hsz}H6`99vUre7O@b^h z8+38Dr$Dk8)bBQL=s1@iY$KX0^Y*4DiEGabYBtC6}frL6t{)`pP=D z)S@tlvf@Rke@(Y=_4L$kRH=e(Q6FH3jqW1zAbivQRlS#AWq3|teL=2KDnCsgC~D`Z z=G_m8+vH)@`4sVMcAI`KVj-1XEoaLm=;eKn;hm$>TUyC$ua0TPF3YVG!5S{Gpn>eBihy3^%T$%y5j8@27>j`hp+ZJF zaSMS9KV6@roH8;vKrYo4#?3IL1L*p~!R?zu<8rGu%~RZ(ES#__<(M-~&Adtj26Lkr z$^78*%!0M3!5ukL-CI6Wdgs|azmJVkFfsuVcf|}}6Z4>O=ZX>!ew5 z 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 Date: Sat, 8 Aug 2026 16:36:56 -0500 Subject: [PATCH 06/13] fix(test): isolate operator projection rate limits --- .agent/execplans/013_operator_validation_command_center.md | 3 +++ server/execution/operator_projection.py | 2 +- server/tests/test_github_adapter_service.py | 4 +++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.agent/execplans/013_operator_validation_command_center.md b/.agent/execplans/013_operator_validation_command_center.md index df366aa..7a4dc1c 100644 --- a/.agent/execplans/013_operator_validation_command_center.md +++ b/.agent/execplans/013_operator_validation_command_center.md @@ -94,6 +94,9 @@ PUBLIC DEVELOPER PREVIEW — NOT PRODUCTION READY - Observation: the current-main manifest restart regression remains the relevant prior-schema startup proof because this slice changes no table shape. Evidence: `test_main_manifest_schema_survives_repeated_startup` creates the manifest table in its merged-main shape without `updated_at`, runs lifespan twice, resolves/lists the trusted manifest both times, proves one identity, and verifies routing tables and columns remain present. The adapter compatibility regression independently proves legacy default identity recovery without duplication. +- Observation: the first implementation-head Linux matrix ran fast enough for the new hard-bounds ASGI requests to consume the shared default-client rate-limit bucket before a later live-file authentication test. + Evidence: CI workflow `31279411403` returned `429` instead of the later test's expected `401`, while slower Windows runs remained green. Giving the endpoint test a distinct synthetic ASGI client identity isolates its request accounting without changing production limits, bypass rules, or authentication behavior. The same workflow also confirmed that `list_workers` needs the focused `PLR0913` annotation already used for other typed projection boundaries. + ## Decision Log - Decision: deliver backend projections, operator UX, history, avoided-work metrics, documentation, and end-to-end acceptance in one large vertical PR. diff --git a/server/execution/operator_projection.py b/server/execution/operator_projection.py index d3a6bba..c419419 100644 --- a/server/execution/operator_projection.py +++ b/server/execution/operator_projection.py @@ -320,7 +320,7 @@ async def overview( ), ) - async def list_workers( + async def list_workers( # noqa: PLR0913 self, *, limit: int, diff --git a/server/tests/test_github_adapter_service.py b/server/tests/test_github_adapter_service.py index 3c58608..548d0dd 100644 --- a/server/tests/test_github_adapter_service.py +++ b/server/tests/test_github_adapter_service.py @@ -887,7 +887,9 @@ async def test_routed_github_validation_is_fresh_then_reused_and_projected() -> @pytest.mark.asyncio async def test_operator_projection_routes_enforce_hard_query_bounds() -> None: - transport = ASGITransport(app=server_app) + transport = ASGITransport( + app=server_app, client=("operator-projection-test", 12_345) + ) async with AsyncClient(transport=transport, base_url="http://test") as client: overview = await client.get("/api/execution/operator/overview") history = await client.get("/api/execution/operator/history") From 431a118b9dc87ee7f3818784ca231666596a9d59 Mon Sep 17 00:00:00 2001 From: Nobodyworld <127373451+Nobodyworld@users.noreply.github.com> Date: Sun, 9 Aug 2026 01:27:09 -0500 Subject: [PATCH 07/13] fix(github): bound preferred worker validation --- server/api/routers/github_execution.py | 14 ++++ server/tests/test_github_adapter_service.py | 74 +++++++++++++++++++-- 2 files changed, 84 insertions(+), 4 deletions(-) diff --git a/server/api/routers/github_execution.py b/server/api/routers/github_execution.py index 90d0805..910d8c1 100644 --- a/server/api/routers/github_execution.py +++ b/server/api/routers/github_execution.py @@ -19,6 +19,7 @@ RoutingPolicy, WorkOrderStatus, ) +from server.execution.exceptions import ExecutionDomainError, ExecutionNotFoundError from server.execution.operator_projection import ( MAX_OPERATOR_LIMIT, MAX_OPERATOR_OFFSET, @@ -103,6 +104,16 @@ def _raise_adapter_error(error: GitHubAdapterError) -> NoReturn: raise HTTPException(status_code=409, detail="github_adapter_conflict") from error +def _raise_execution_error(error: ExecutionDomainError) -> NoReturn: + """Keep expected execution validation failures bounded at the adapter route.""" + + if isinstance(error, ExecutionNotFoundError): + raise HTTPException(status_code=404, detail=str(error)) from error + raise HTTPException( + status_code=409, detail="execution_lifecycle_conflict" + ) from error + + async def _commit(session: SessionDependency) -> None: try: await session.commit() @@ -139,6 +150,9 @@ async def request_pull_request_validation( except GitHubAdapterError as error: await session.rollback() _raise_adapter_error(error) + except ExecutionDomainError as error: + await session.rollback() + _raise_execution_error(error) await _commit(session) return GitHubValidationRequestOut.from_status(status) diff --git a/server/tests/test_github_adapter_service.py b/server/tests/test_github_adapter_service.py index 548d0dd..fadad62 100644 --- a/server/tests/test_github_adapter_service.py +++ b/server/tests/test_github_adapter_service.py @@ -6,7 +6,7 @@ import asyncio import datetime as dt import json -from collections.abc import Callable +from collections.abc import AsyncGenerator, Callable from dataclasses import asdict, replace from http import HTTPStatus from typing import cast @@ -20,6 +20,7 @@ from server.api.dependencies import ( SessionDependency, get_github_adapter_service, + get_session, ) from server.app import app as server_app from server.application import build_execution_service @@ -674,9 +675,11 @@ async def test_default_policy_finds_exact_legacy_key_without_mutating_it() -> No @pytest.mark.asyncio -async def test_routed_github_validation_is_fresh_then_reused_and_projected() -> ( # noqa: PLR0915 +async def test_direct_completion_projects_fresh_then_reused_github_lifecycle() -> ( # noqa: PLR0915 None ): + """Exercise projection formulas without representing the local-worker trust path.""" + transport = FakeGitHubTransport() cheap_worker = "worker-cheap" expensive_worker = "worker-expensive" @@ -829,6 +832,7 @@ async def test_routed_github_validation_is_fresh_then_reused_and_projected() -> history = await projection.list_history(limit=25, offset=0) first_page = await projection.list_history(limit=1, offset=0) second_page = await projection.list_history(limit=1, offset=1) + filter_now = dt.datetime.now(dt.UTC) reused_history = await projection.list_history( limit=25, offset=0, @@ -839,8 +843,8 @@ async def test_routed_github_validation_is_fresh_then_reused_and_projected() -> reuse_decision=ReuseDecision.REUSED.value, routing_policy=RoutingPolicy.CHEAPEST_CAPABLE.value, publication_state="published_stale", - created_after=dt.datetime(2026, 8, 7, tzinfo=dt.UTC), - created_before=dt.datetime(2026, 8, 9, tzinfo=dt.UTC), + created_after=filter_now - dt.timedelta(days=1), + created_before=filter_now + dt.timedelta(days=1), ) workers = await projection.list_workers( limit=25, @@ -1809,6 +1813,68 @@ def override(session: SessionDependency) -> GitHubAdapterService: assert forbidden_keys.isdisjoint(payload) +@pytest.mark.asyncio +async def test_unknown_preferred_executor_is_bounded_and_rolls_back( + monkeypatch: pytest.MonkeyPatch, +) -> None: + monkeypatch.setenv("SWITCHBOARD_ADMIN_TOKEN", ADMIN_TOKEN) + reload_admin_token() + transport = FakeGitHubTransport() + app = server_app + request_session = AsyncSessionLocal() + + async def isolated_session() -> AsyncGenerator[AsyncSession, None]: + yield request_session + + def override(session: SessionDependency) -> GitHubAdapterService: + return _service(session, transport) + + app.dependency_overrides[get_session] = isolated_session + app.dependency_overrides[get_github_adapter_service] = override + try: + async with AsyncClient( + transport=ASGITransport(app=app, raise_app_exceptions=False), + base_url="http://test", + ) as client: + response = await client.post( + "/api/execution/github/pull-requests/validate", + json={ + "repository_full_name": REPOSITORY, + "pull_request_number": 125, + "manifest": {"name": "validate-switchboard", "version": "1"}, + "preferred_executor": "worker-not-registered", + }, + headers={"Authorization": f"Bearer {ADMIN_TOKEN}"}, + ) + async with AsyncSessionLocal() as verification: + request_count = await verification.scalar( + select(func.count()).select_from(GitHubValidationRequest) + ) + work_order_count = await verification.scalar( + select(func.count()).select_from(ExecutionWorkOrder) + ) + finally: + app.dependency_overrides.clear() + await request_session.close() + monkeypatch.delenv("SWITCHBOARD_ADMIN_TOKEN", raising=False) + reload_admin_token() + + assert response.status_code == HTTPStatus.NOT_FOUND + assert response.json() == {"detail": "preferred_executor_not_found"} + assert int(request_count or 0) == 0 + assert int(work_order_count or 0) == 0 + assert not request_session.in_transaction() + for prohibited in ( + ADMIN_TOKEN, + GITHUB_TOKEN, + "ExecutionNotFoundError", + "Traceback", + "response_body", + r"C:\\", + ): + assert prohibited not in response.text + + @pytest.mark.asyncio async def test_missing_server_token_returns_bounded_api_error( monkeypatch: pytest.MonkeyPatch, From 242ee09902f82a342fcc000c93dfae627d9a419c Mon Sep 17 00:00:00 2001 From: Nobodyworld <127373451+Nobodyworld@users.noreply.github.com> Date: Sun, 9 Aug 2026 01:27:19 -0500 Subject: [PATCH 08/13] test(operator): prove real local validation reuse --- .../test_execution_worker_server_smoke.py | 348 +++++++++++++++++- 1 file changed, 341 insertions(+), 7 deletions(-) diff --git a/client/python/tests/test_execution_worker_server_smoke.py b/client/python/tests/test_execution_worker_server_smoke.py index 8686b00..499aaa7 100644 --- a/client/python/tests/test_execution_worker_server_smoke.py +++ b/client/python/tests/test_execution_worker_server_smoke.py @@ -18,6 +18,7 @@ from sqlalchemy import func, select from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine +from client.python.execution_worker import worker as worker_module from client.python.execution_worker.client import ExecutionClient from client.python.execution_worker.config import WorkerConfig from client.python.execution_worker.evidence import EvidenceStore @@ -331,6 +332,16 @@ def _request( return decoded +def _retained_hashes(directory: Path) -> dict[str, str]: + hashes: dict[str, str] = {} + for path in directory.rglob("*"): + if path.is_file(): + hashes[path.relative_to(directory).as_posix()] = hashlib.sha256( + path.read_bytes() + ).hexdigest() + return hashes + + def test_server_backed_worker_smoke_executes_exact_sha_and_releases_lease( tmp_path: Path, ) -> None: @@ -802,7 +813,7 @@ async def prepare() -> None: published = _request( app, "POST", - ("/api/execution/github/requests/" f"{created['request_id']}/publish"), + (f"/api/execution/github/requests/{created['request_id']}/publish"), {}, ) assert published["publication_state"] == "published_current" @@ -816,7 +827,7 @@ async def prepare() -> None: stale = _request( app, "POST", - ("/api/execution/github/requests/" f"{created['request_id']}/publish"), + (f"/api/execution/github/requests/{created['request_id']}/publish"), {}, ) assert stale["publication_state"] == "published_stale" @@ -843,10 +854,7 @@ async def prepare() -> None: _request( app, "POST", - ( - "/api/execution/work-orders/" - f"{fork_request['work_order_id']}/approve" - ), + (f"/api/execution/work-orders/{fork_request['work_order_id']}/approve"), {}, ) assert worker.poll_once() is True @@ -854,7 +862,7 @@ async def prepare() -> None: fork_runs = _request( app, "GET", - ("/api/execution/runs?work_order_id=" f"{fork_request['work_order_id']}"), + (f"/api/execution/runs?work_order_id={fork_request['work_order_id']}"), ) assert len(fork_runs) == 1 assert fork_runs[0]["status"] == "failed" @@ -899,3 +907,329 @@ async def prepare() -> None: finally: app.dependency_overrides.clear() asyncio.run(engine.dispose()) + + +def test_routed_github_validation_executes_then_reuses_real_local_worker( # noqa: PLR0915 - complete issue #136 worker trust proof + tmp_path: Path, +) -> None: + canonical, tested_shas, status_before = _validation_repository(tmp_path) + tested_sha, moved_sha = tested_shas + engine = create_async_engine( + f"sqlite+aiosqlite:///{tmp_path / 'operator-worker-acceptance.db'}" + ) + sessions = async_sessionmaker(engine, expire_on_commit=False) + app = create_app(AppConfig(include_ui=False)) + github = _MockGitHubAcceptanceTransport(_resolved_pull_request(tested_sha)) + + async def isolated_session() -> AsyncGenerator[AsyncSession, None]: + async with sessions() as session: + yield session + + def github_service(session: SessionDependency) -> GitHubAdapterService: + return GitHubAdapterService( + dependencies=GitHubAdapterDependencies( + repository=GitHubAdapterRepository(session), + execution=build_execution_service(session), + transport=github, + ), + settings=GitHubSettings( + api_url="https://api.github.com", + operator_id="operator-worker-acceptance", + token=_GITHUB_TEST_TOKEN, + ), + clock=utcnow_naive, + ) + + app.dependency_overrides[get_session] = isolated_session + app.dependency_overrides[get_github_adapter_service] = github_service + + async def prepare() -> None: + async with engine.begin() as connection: + await connection.run_sync(Base.metadata.create_all) + + asyncio.run(prepare()) + cheap_config = WorkerConfig( + base_url="http://switchboard.test", + worker_id="operator-worker-cheap", + display_name="Operator worker cheap", + admin_token=_TOKEN, + worker_root=tmp_path / "operator-cheap-worktrees", + evidence_root=tmp_path / "operator-cheap-evidence", + repositories={"Nobodyworld/dev-agent-switchboard": canonical}, + execution_timeout_seconds=3600, + heartbeat_interval_seconds=5, + ) + expensive_config = WorkerConfig( + base_url="http://switchboard.test", + worker_id="operator-worker-expensive", + display_name="Operator worker expensive", + admin_token=_TOKEN, + worker_root=tmp_path / "operator-expensive-worktrees", + evidence_root=tmp_path / "operator-expensive-evidence", + repositories={"Nobodyworld/dev-agent-switchboard": canonical}, + execution_timeout_seconds=3600, + heartbeat_interval_seconds=5, + ) + try: + with ( + ExecutionClient( + cheap_config.base_url, + cheap_config.worker_id, + cheap_config.admin_token, + session=_AsgiSession(app), # type: ignore[arg-type] + ) as cheap_client, + ExecutionClient( + expensive_config.base_url, + expensive_config.worker_id, + expensive_config.admin_token, + session=_AsgiSession(app), # type: ignore[arg-type] + ) as expensive_client, + ): + cheap_worker = LocalWorker(cheap_config, cheap_client) + expensive_worker = LocalWorker(expensive_config, expensive_client) + cheap_worker.start() + expensive_worker.start() + for worker_id, cost in ( + (cheap_config.worker_id, 3), + (expensive_config.worker_id, 9), + ): + _request( + app, + "POST", + "/api/execution/routing-profiles", + { + "schema_version": 1, + "worker_id": worker_id, + "enabled": True, + "estimated_cost_units_per_run": cost, + "quota_capacity_units": 20, + "quota_remaining_units": 20, + "quota_reset_at": None, + "routing_priority": 0, + }, + ) + cheap_client.heartbeat_worker(status="online") + expensive_client.heartbeat_worker(status="online") + assert cheap_worker.poll_once() is False + assert expensive_worker.poll_once() is False + + request_payload = { + "repository_full_name": "Nobodyworld/dev-agent-switchboard", + "pull_request_number": 125, + "manifest": {"name": "validate-switchboard", "version": "1"}, + "routing_policy": "cheapest_capable", + "reuse_policy": "never", + "maximum_cost_units": 10, + "required_quota_units": 2, + } + fresh_request = _request( + app, + "POST", + "/api/execution/github/pull-requests/validate", + request_payload, + ) + _request( + app, + "POST", + f"/api/execution/work-orders/{fresh_request['work_order_id']}/approve", + {"queue": True}, + ) + expensive_client.heartbeat_worker(status="online") + assert expensive_worker.poll_once() is False + + original_runner = worker_module.run_step + original_verifier = worker_module.verify_reuse_candidate + with ( + patch.object( + worker_module, "run_step", wraps=original_runner + ) as runner, + patch.object( + worker_module, + "verify_reuse_candidate", + wraps=original_verifier, + ) as verifier, + ): + cheap_client.heartbeat_worker(status="online") + assert cheap_worker.poll_once() is True + manifest = get_trusted_manifest("validate-switchboard", "1") + assert manifest is not None + fresh_step_count = len(manifest.execution_steps) + assert runner.call_count == fresh_step_count + assert verifier.call_count == 0 + + fresh_runs = _request( + app, + "GET", + f"/api/execution/runs?work_order_id={fresh_request['work_order_id']}", + ) + assert len(fresh_runs) == 1 + fresh_run = fresh_runs[0] + fresh_evidence = ExecutionEvidence.model_validate( + _request( + app, + "GET", + f"/api/execution/runs/{fresh_run['id']}/evidence", + ) + ) + assert fresh_run["status"] == "succeeded" + assert fresh_run["worker_id"] == cheap_config.worker_id + assert fresh_run["route_provenance"]["estimated_cost_units"] == 3 + assert fresh_run["route_provenance"]["required_quota_units"] == 2 + assert fresh_evidence.tested_sha == tested_sha + assert fresh_evidence.reuse_provenance.decision == "fresh" + assert len(fresh_evidence.steps) == fresh_step_count + assert len(fresh_evidence.artifacts) == len( + manifest.artifact_declarations + ) + fresh_directory = cheap_config.evidence_root / f"run-{fresh_run['id']}" + assert (fresh_directory / "ownership.json").is_file() + assert (fresh_directory / "result.json").is_file() + assert list((fresh_directory / "logs").glob("*.log")) + for artifact in fresh_evidence.artifacts: + retained = fresh_directory.joinpath( + *artifact.relative_path.split("/") + ) + assert retained.is_file() + assert ( + hashlib.sha256(retained.read_bytes()).hexdigest() + == artifact.sha256 + ) + source_hashes = _retained_hashes(fresh_directory) + assert source_hashes + + published_current = _request( + app, + "POST", + f"/api/execution/github/requests/{fresh_request['request_id']}/publish", + {}, + ) + assert published_current["publication_state"] == "published_current" + assert published_current["publication_decision"] == "current" + + reused_request = _request( + app, + "POST", + "/api/execution/github/pull-requests/validate", + {**request_payload, "reuse_policy": "allow_exact"}, + ) + assert reused_request["request_id"] != fresh_request["request_id"] + assert reused_request["work_order_id"] != fresh_request["work_order_id"] + _request( + app, + "POST", + f"/api/execution/work-orders/{reused_request['work_order_id']}/approve", + {"queue": True}, + ) + expensive_client.heartbeat_worker(status="online") + assert expensive_worker.poll_once() is False + cheap_client.heartbeat_worker(status="online") + assert cheap_worker.poll_once() is True + assert runner.call_count == fresh_step_count + assert verifier.call_count == 1 + + reused_runs = _request( + app, + "GET", + f"/api/execution/runs?work_order_id={reused_request['work_order_id']}", + ) + assert len(reused_runs) == 1 + reused_run = reused_runs[0] + reused_evidence = ExecutionEvidence.model_validate( + _request( + app, + "GET", + f"/api/execution/runs/{reused_run['id']}/evidence", + ) + ) + assert reused_run["id"] != fresh_run["id"] + assert reused_run["worker_id"] == cheap_config.worker_id + assert reused_run["reuse_decision"] == "reused" + assert reused_run["reused_from_run_id"] == fresh_run["id"] + assert ( + reused_run["source_evidence_fingerprint"] == fresh_evidence.fingerprint + ) + assert reused_evidence.steps == [] + assert reused_evidence.artifacts == [] + assert reused_evidence.reuse_provenance.source_run_id == fresh_run["id"] + assert ( + reused_evidence.reuse_provenance.source_evidence_fingerprint + == fresh_evidence.fingerprint + ) + assert _retained_hashes(fresh_directory) == source_hashes + reused_directory = cheap_config.evidence_root / f"run-{reused_run['id']}" + assert (reused_directory / "ownership.json").is_file() + assert (reused_directory / "result.json").is_file() + + github.resolved = _resolved_pull_request(moved_sha) + published_stale = _request( + app, + "POST", + f"/api/execution/github/requests/{reused_request['request_id']}/publish", + {}, + ) + assert published_stale["publication_state"] == "published_stale" + assert published_stale["publication_decision"] == "stale" + assert published_stale["tested_head_sha"] == tested_sha + assert published_stale["publication_head_sha"] == moved_sha + + overview = _request( + app, + "GET", + "/api/execution/operator/overview?window_days=1", + ) + history = _request( + app, + "GET", + "/api/execution/operator/history?limit=25&offset=0", + ) + assert overview["runs"]["fresh_successful"] == 1 + assert overview["runs"]["reused_successful"] == 1 + assert overview["avoided_work"]["deterministic_executions_avoided"] == 1 + assert overview["avoided_work"]["reference_seconds_avoided"] > 0 + assert overview["avoided_work"]["comparison_units_avoided"] == 3 + assert overview["avoided_work"]["reuse_rate"] == 0.5 + assert overview["publications"] == {"current": 1, "stale": 1} + assert history["total"] == 2 + history_by_request = {item["request_id"]: item for item in history["items"]} + assert ( + history_by_request[fresh_request["request_id"]]["reuse_decision"] + == "fresh" + ) + assert ( + history_by_request[reused_request["request_id"]]["reuse_decision"] + == "reused" + ) + assert ( + history_by_request[reused_request["request_id"]]["reused_from_run_id"] + == fresh_run["id"] + ) + + async def capacity_proof() -> tuple[int, list[int]]: + async with sessions() as database: + leases = await database.scalar( + select(func.count()).select_from(ExecutionLease) + ) + active_counts = ( + ( + await database.execute( + select(ExecutionWorker.active_run_count).order_by( + ExecutionWorker.worker_id + ) + ) + ) + .scalars() + .all() + ) + return int(leases or 0), [int(value) for value in active_counts] + + leases, active_counts = asyncio.run(capacity_proof()) + assert leases == 0 + assert active_counts == [0, 0] + assert list(cheap_config.worker_root.glob("run-*")) == [] + assert list(expensive_config.worker_root.glob("run-*")) == [] + assert _git(canonical, "status", "--porcelain=v1") == status_before + assert _git(canonical, "rev-parse", "HEAD") == moved_sha + assert tested_sha != moved_sha + finally: + app.dependency_overrides.clear() + asyncio.run(engine.dispose()) From 61715e9d7cb0de83a35f764f5d873315d38cf9dc Mon Sep 17 00:00:00 2001 From: Nobodyworld <127373451+Nobodyworld@users.noreply.github.com> Date: Sun, 9 Aug 2026 01:27:26 -0500 Subject: [PATCH 09/13] fix(operator): expose complete validation details --- .../switchboard-validation-command-center.png | Bin 161197 -> 206763 bytes web/static/validation_broker.js | 97 ++++++++++++++++-- web/tests/test_ui.py | 46 +++++++++ web/tests/ui_test_app.py | 6 +- 4 files changed, 138 insertions(+), 11 deletions(-) diff --git a/docs/assets/switchboard-validation-command-center.png b/docs/assets/switchboard-validation-command-center.png index ffcc9eb80bf4971ec16849700479682744a0eae0..6bee916ca077567150ea8efdf541e46d6ef3c023 100644 GIT binary patch literal 206763 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≧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

-
${badge(worker.activity_state, stateTone(worker.activity_state))}
+
${badge(worker.status, stateTone(worker.status))} ${badge(worker.activity_state, stateTone(worker.activity_state))}
+
+
Platform
${escapeHtml(worker.operating_system)} / ${escapeHtml(worker.architecture)}
+
Capacity
${formatInteger(worker.active_run_count)} active / ${formatInteger(worker.max_concurrency)} maximum
+
Last heartbeat
${escapeHtml(formatDate(worker.last_heartbeat_at))}
+
Last checkout poll
${escapeHtml(formatDate(worker.last_checkout_poll_at))}
+
${profileDetails}
@@ -235,6 +245,46 @@ function currentProjectionForRequest(requestId) { return brokerState.history.find((item) => item.request_id === requestId) || null; } +async function optionalDetail(url) { + try { + return await apiFetchJson(url, { + headers: authorizedHeaders({ json: false }), + }); + } catch (error) { + if ([404, 409].includes(error?.response?.status)) return null; + throw error; + } +} + +async function refreshSelectedDetails() { + const request = brokerState.selectedRequest; + brokerState.selectedRoute = null; + brokerState.selectedRun = null; + if (!request) return; + const runId = brokerState.selectedProjection?.run_id || request.terminal_run_id; + if (runId) { + brokerState.selectedRun = await optionalDetail(`/api/execution/runs/${runId}`); + brokerState.selectedRoute = brokerState.selectedRun?.route_provenance || null; + return; + } + if (request.work_order_status === 'queued') { + brokerState.selectedRoute = await optionalDetail( + `/api/execution/work-orders/${request.work_order_id}/route-assessment` + ); + } +} + +function measuredDuration(run, projection) { + if (run?.started_at && run?.finished_at) { + const started = new Date(run.started_at); + const finished = new Date(run.finished_at); + if (!Number.isNaN(started.valueOf()) && !Number.isNaN(finished.valueOf())) { + return Math.max(0, (finished.valueOf() - started.valueOf()) / 1000); + } + } + return projection?.run_duration_seconds ?? null; +} + function renderRequestDetail() { const container = document.getElementById('brokerRequestDetail'); const refresh = document.getElementById('refreshRequest'); @@ -250,28 +300,52 @@ function renderRequestDetail() { refresh.disabled = false; container.className = ''; const projection = brokerState.selectedProjection || {}; + const run = brokerState.selectedRun; + const route = brokerState.selectedRoute || run?.route_provenance || null; + const evidence = run?.evidence_metadata || null; const status = request.work_order_status; const canApprove = status === 'pending_approval'; const canQueue = status === 'approved'; const canCancel = !TERMINAL_WORK_ORDER_STATUSES.has(status); const canExpire = ['approved', 'queued'].includes(status); const canPublish = Boolean(request.evidence_fingerprint); - const selectedWorker = projection.selected_worker_id || 'Not selected'; - const reuseDecision = projection.reuse_decision || 'pending'; + const selectedWorker = route?.selected_worker_id || run?.worker_id || projection.selected_worker_id; + const reuseDecision = run?.reuse_decision || projection.reuse_decision || 'pending'; + const sourceRunId = run?.reused_from_run_id || evidence?.reuse_provenance?.source_run_id; + const sourceFingerprint = + run?.source_evidence_fingerprint || evidence?.reuse_provenance?.source_evidence_fingerprint; + const evidenceFingerprint = evidence?.fingerprint || request.evidence_fingerprint; + const duration = measuredDuration(run, projection); + const executedSteps = Array.isArray(evidence?.steps) ? evidence.steps.length : null; container.innerHTML = `
Request
#${request.request_id}
+
Created
${escapeHtml(formatDate(request.created_at))}
+
Last head resolution
${escapeHtml(formatDate(request.last_resolved_at))}
Exact head
${escapeHtml(request.tested_head_sha)}
Base SHA
${escapeHtml(request.base_sha)}
Manifest
${escapeHtml(`${request.manifest_name}@${request.manifest_version}`)} ${escapeHtml(request.manifest_digest)}
Work order
#${request.work_order_id} ${badge(status, stateTone(status))}
-
Route
${badge(request.routing_policy)} · ${escapeHtml(selectedWorker)}
-
Comparison units
${formatInteger(projection.estimated_cost_units)}
-
Quota requested
${formatInteger(request.required_quota_units)}
+
Route
${badge(request.routing_policy)} · ${escapeHtml(selectedWorker || 'Not available')}
+
Route reason
${escapeHtml(formatLabel(route?.reason))}
+
Comparison units
${formatInteger(route?.estimated_cost_units ?? projection.estimated_cost_units)}
+
Eligible candidates
${formatInteger(route?.eligible_candidate_count)}
+
Explicit pin
${route ? (route.explicit_pin_applied ? 'Applied' : 'Not applied') : 'Not available'}
+
Profile revision
${formatInteger(route?.selected_routing_profile_revision)}
+
Quota
${formatInteger(route?.required_quota_units ?? request.required_quota_units)} required / ${formatInteger(route?.reserved_quota_units)} reserved · ${escapeHtml(formatLabel(route?.quota_reservation_state))}
Reuse
${badge(reuseDecision, stateTone(reuseDecision))}
-
Run
${request.terminal_run_id ? `#${request.terminal_run_id} ${badge(request.terminal_run_status, stateTone(request.terminal_run_status))}` : 'Not started'}
-
Evidence
${escapeHtml(request.evidence_fingerprint || 'Not available')}
-
Publication
${badge(request.publication_state, stateTone(request.publication_state))}
+
Source run
${sourceRunId ? `#${formatInteger(sourceRunId)}` : 'Not available'}
+
Source evidence
${escapeHtml(sourceFingerprint || 'Not available')}
+
Run
${run ? `#${run.id} ${badge(run.status, stateTone(run.status))}` : 'Not available'}
+
Assigned
${escapeHtml(formatDate(run?.assigned_at))}
+
Started
${escapeHtml(formatDate(run?.started_at))}
+
Finished
${escapeHtml(formatDate(run?.finished_at))}
+
Measured duration
${duration === null ? 'Not available' : escapeHtml(formatSeconds(duration))}
+
Executed steps
${executedSteps === null ? 'Not available' : formatInteger(executedSteps)}
+
Cleanup
${escapeHtml(formatLabel(run?.cleanup_status))}
+
Terminal reason
${escapeHtml(formatLabel(run?.terminal_reason))}
+
Evidence
${escapeHtml(evidenceFingerprint || 'Not available')}
+
Publication
${badge(request.publication_state, stateTone(request.publication_state))} · ${escapeHtml(formatLabel(request.publication_decision))}
Updated
${escapeHtml(formatDate(request.updated_at))}
@@ -382,6 +456,7 @@ async function refreshHistory() { brokerState.selectedProjection = currentProjectionForRequest( brokerState.selectedRequest.request_id ); + await refreshSelectedDetails(); renderRequestDetail(); } renderHistory(); @@ -396,6 +471,7 @@ async function refreshSelectedRequest({ silent = false } = {}) { { headers: authorizedHeaders({ json: false }) } ); brokerState.selectedProjection = currentProjectionForRequest(requestId); + await refreshSelectedDetails(); renderRequestDetail(); } catch (error) { console.error('Failed to refresh selected validation request', error); @@ -409,6 +485,7 @@ async function selectRequest(requestId) { `/api/execution/github/requests/${requestId}`, { headers: authorizedHeaders({ json: false }) } ); + await refreshSelectedDetails(); renderRequestDetail(); document.getElementById('brokerRequestDetail')?.scrollIntoView({ behavior: 'smooth', diff --git a/web/tests/test_ui.py b/web/tests/test_ui.py index 8fdb764..abf987f 100644 --- a/web/tests/test_ui.py +++ b/web/tests/test_ui.py @@ -505,6 +505,27 @@ def test_validation_broker_operator_workflow_is_accessible_and_responsive( # no page.wait_for_selector('[data-worker-id="ui-worker-cheap"]') expect(page.locator("#brokerWorkers")).to_contain_text("Local small") expect(page.locator("#brokerWorkers")).to_contain_text("3") + expect(page.locator('[data-worker-id="ui-worker-cheap"]')).to_contain_text( + "online" + ) + expect(page.locator('[data-worker-id="ui-worker-cheap"]')).to_contain_text( + "active" + ) + expect(page.locator('[data-worker-id="ui-worker-cheap"]')).to_contain_text( + "linux / x86_64" + ) + expect(page.locator('[data-worker-id="ui-worker-cheap"]')).to_contain_text( + "0 active / 1 maximum" + ) + expect(page.locator('[data-worker-id="ui-worker-cheap"]')).to_contain_text( + "Last heartbeat" + ) + expect(page.locator('[data-worker-id="ui-worker-cheap"]')).to_contain_text( + "Last checkout poll" + ) + expect(page.locator('[data-worker-id="ui-worker-cheap"]')).to_contain_text( + "enabled" + ) page.select_option("#profileWorker", "ui-worker-new") page.fill("#profileCost", "12") @@ -574,6 +595,12 @@ def test_validation_broker_operator_workflow_is_accessible_and_responsive( # no "() => document.querySelector('#brokerRequestDetail')?.textContent" ".includes('queued')" ) + expect(page.locator("#brokerRequestDetail")).to_contain_text("ui-worker-cheap") + expect(page.locator("#brokerRequestDetail")).to_contain_text("routing selected") + expect(page.locator("#brokerRequestDetail")).to_contain_text( + "Eligible candidates" + ) + expect(page.locator("#brokerRequestDetail")).to_contain_text("Not applied") first_request_id = page.evaluate( "() => Number(document.querySelector('[data-history-request]')" "?.dataset.historyRequest)" @@ -585,6 +612,13 @@ def test_validation_broker_operator_workflow_is_accessible_and_responsive( # no "() => document.querySelector('#brokerRequestDetail')?.textContent" ".includes('succeeded')" ) + fresh_detail = page.locator("#brokerRequestDetail") + expect(fresh_detail).to_contain_text("1 required / 1 reserved") + expect(fresh_detail).to_contain_text("consumed") + expect(fresh_detail).to_contain_text("Measured duration") + expect(fresh_detail).to_contain_text("7 s") + expect(fresh_detail).to_contain_text("Cleanup") + expect(fresh_detail).to_contain_text("succeeded") dialogs: list[str] = [] @@ -598,6 +632,7 @@ def accept_dialog(dialog) -> None: "() => document.querySelector('#brokerRequestDetail')?.textContent" ".includes('published current')" ) + expect(page.locator("#brokerRequestDetail")).to_contain_text("current") page.select_option("#validationReusePolicy", "allow_exact") page.click('#validationRequestForm button[type="submit"]') @@ -617,6 +652,12 @@ def accept_dialog(dialog) -> None: page.wait_for_function( "() => !document.querySelector('[data-request-action=publish]')?.disabled" ) + reused_detail = page.locator("#brokerRequestDetail") + expect(reused_detail).to_contain_text("reused") + expect(reused_detail).to_contain_text(f"#{fresh['run_id']}") + expect(reused_detail).to_contain_text(fresh["evidence_fingerprint"]) + expect(reused_detail).to_contain_text("Executed steps") + expect(reused_detail).to_contain_text("0") page.click('[data-request-action="publish"]') page.wait_for_function( "() => document.querySelector('#brokerRequestDetail')?.textContent" @@ -636,6 +677,9 @@ def accept_dialog(dialog) -> None: expect(page.locator("#brokerMetrics")).to_contain_text( "Deterministic executions avoided" ) + expect(page.locator("#brokerMetrics")).to_contain_text( + "Reference execution time avoided" + ) expect( page.locator("#brokerMetrics .broker-metric").first.locator("dd") ).to_have_text("1") @@ -678,6 +722,8 @@ def accept_dialog(dialog) -> None: })""" ) assert overflow["contained"], overflow["offenders"] + assert "ui-admin-sentinel" not in page.url + assert all("ui-admin-sentinel" not in message for message in console_errors) page.evaluate( "() => document.querySelectorAll('.toast.is-visible')" ".forEach((toast) => toast.click())" diff --git a/web/tests/ui_test_app.py b/web/tests/ui_test_app.py index d412e9d..888e289 100644 --- a/web/tests/ui_test_app.py +++ b/web/tests/ui_test_app.py @@ -1,4 +1,8 @@ -"""Real Switchboard app with an offline GitHub transport for browser acceptance.""" +"""Real Switchboard app with synthetic completion for UI-only browser acceptance. + +Worker-local execution and cryptographic reuse verification are intentionally proved by +the real ``ExecutionClient``/``LocalWorker`` acceptance in the Python client suite. +""" from __future__ import annotations From 4f3613e29cc4aca133b815ec935bbf76f6e89ad9 Mon Sep 17 00:00:00 2001 From: Nobodyworld <127373451+Nobodyworld@users.noreply.github.com> Date: Sun, 9 Aug 2026 01:27:36 -0500 Subject: [PATCH 10/13] docs(operator): reconcile command center evidence --- .../013_operator_validation_command_center.md | 52 +++++++++++++++---- docs/API.md | 13 ++++- docs/architecture/local-execution-broker.md | 15 ++++++ docs/operations/validation-command-center.md | 29 +++++++++-- docs/reports/status.md | 6 +++ 5 files changed, 98 insertions(+), 17 deletions(-) diff --git a/.agent/execplans/013_operator_validation_command_center.md b/.agent/execplans/013_operator_validation_command_center.md index 7a4dc1c..40de9ab 100644 --- a/.agent/execplans/013_operator_validation_command_center.md +++ b/.agent/execplans/013_operator_validation_command_center.md @@ -53,8 +53,14 @@ PUBLIC DEVELOPER PREVIEW — NOT PRODUCTION READY - [x] Add strict browser and accessibility acceptance. - [x] Add public-safe screenshot and operator documentation. - [x] Run the complete protected local matrix and public-hygiene audit. -- [ ] Push focused commits to the existing branch and require the complete hosted matrix. -- [ ] Complete connector review while keeping PR #137 draft and unmerged. +- [x] Push the initial implementation commits and require its complete hosted matrix. +- [x] Record final connector review `4890406546` and isolate its three correction clusters. +- [x] Bound unknown preferred-executor failures with rollback and no created records. +- [x] Add a real `ExecutionClient`/`LocalWorker` fresh-then-reuse worker-trust acceptance. +- [x] Complete queued route, terminal quota/timing/source, and worker-state visibility. +- [x] Run the corrected complete local matrix and repeat public-hygiene validation. +- [ ] Push the ultimate head and require the corrected complete hosted matrix. +- [ ] Complete connector re-review while keeping PR #137 draft and unmerged. ## Surprises & Discoveries @@ -97,6 +103,12 @@ PUBLIC DEVELOPER PREVIEW — NOT PRODUCTION READY - Observation: the first implementation-head Linux matrix ran fast enough for the new hard-bounds ASGI requests to consume the shared default-client rate-limit bucket before a later live-file authentication test. Evidence: CI workflow `31279411403` returned `429` instead of the later test's expected `401`, while slower Windows runs remained green. Giving the endpoint test a distinct synthetic ASGI client identity isolates its request accounting without changing production limits, bypass rules, or authentication behavior. The same workflow also confirmed that `list_workers` needs the focused `PLR0913` annotation already used for other typed projection boundaries. +- Observation: final connector review `4890406546` found that the direct-completion projection fixture and synthetic browser completion exercised lifecycle math and UI states but bypassed the worker trust boundary. + Evidence: neither fixture invoked `LocalWorker.poll_once()`, the trusted step runner, `EvidenceStore`, nor worker-local retained-evidence verification. The correction adds a separate file-backed real-worker acceptance and keeps the direct fixtures explicitly scoped to projection and UI behavior. + +- Observation: `preferred_executor_not_found` crossed from `ExecutionService.create_work_order` through the GitHub adapter route as an `ExecutionDomainError`, while that route caught only adapter errors. + Evidence: the corrected boundary maps expected execution not-found failures to a bounded 404, rolls back, and proves zero `GitHubValidationRequest` and `ExecutionWorkOrder` rows plus no open transaction. + ## Decision Log - Decision: deliver backend projections, operator UX, history, avoided-work metrics, documentation, and end-to-end acceptance in one large vertical PR. @@ -147,6 +159,14 @@ PUBLIC DEVELOPER PREVIEW — NOT PRODUCTION READY Rationale: the final implementation carries the concept's dense scan-friendly metrics and two-column control surface without replacing the existing task, maintenance, configuration, diagnostics, analytics, live-document, or WebSocket UI. Date/Author: 2026-08-08 / implementation +- Decision: use existing bounded route-assessment and run-detail point reads for the selected request instead of widening the history list. + Rationale: queued assessment and exact run responses already contain the required scalar route, quota, timing, cleanup, and reuse-source state without exposing candidate lists, logs, commands, paths, or environments. + Date/Author: 2026-08-09 / connector correction + +- Decision: treat the direct-completion adapter test as a focused projection fixture and the synthetic browser app as UI acceptance only. + Rationale: only the new real `ExecutionClient`/`LocalWorker` test executes the trusted manifest, persists worker-owned evidence, performs local cryptographic verification, and proves the reused run skips the step runner. + Date/Author: 2026-08-09 / connector correction + ## Outcomes & Retrospective The operator can now complete the complete validation workflow in the existing @@ -171,13 +191,16 @@ fallback. Policy is authoritative on the linked work order, so this slice adds no table column, schema-version change, or migration. The existing merged-main manifest-shape regression ran lifespan startup twice and remained green. -The offline server-backed proof created a fresh successful run and a distinct -same-worker reused run whose compact evidence contained no validation steps. It -reported one fresh and one reused success, one avoided execution, 7 historical -reference seconds, 3 operator comparison units, and a 50% reuse rate without -double-counting repeat publication. Missing source timing and route cost were -separately proven to contribute zero rather than a guess. Publication was current -before the mocked head moved and stale afterward while preserving the tested SHA. +The focused direct-completion fixture still proves projection formulas and +lifecycle joins, but is no longer represented as the worker trust proof. The +file-backed real-worker acceptance registers and actively polls two real outbound +workers, rejects the higher-cost claimant twice, runs the trusted manifest on the +lower-cost worker, retains marker/result/log/artifact evidence, publishes current, +then performs same-worker exact retained-evidence verification for a distinct +reused run without a second step-runner call. Moving the mocked head produces a +stale second publication while preserving the tested SHA. Overview/history prove +one fresh success, one reused success, one avoided execution, nonzero source time, +3 comparison units, 50% reuse, and one current plus one stale publication. Strict Playwright passed all three tests with zero skips. The command-center test proved native malformed-input rejection, server-loaded selectors, UI profile @@ -650,20 +673,27 @@ Record during implementation: - final local/remote SHA equality; - final hosted Commitlint and CI IDs in PR #137's external review record. -Current evidence before the complete validation pass: +Current corrected-head local evidence: - preflight: `origin/main` and merge base were `223df7752716dd6ad35e75ba7613eeb03cfb2887`; the local and remote implementation branch began at `e905a3d7020c76d940c0938b2617d55d6d57de7e`; the isolated worktree was clean and exclusively owned the branch; +- correction preflight: local and remote `feat/operator-validation-command-center` both began at `5bb0ec7a696cb512708e3f60e05c2e281b6255b0`; `origin/main` and the merge base remained `223df7752716dd6ad35e75ba7613eeb03cfb2887`; PR #137 remained open, draft, unmerged, and exclusively owned by the clean isolated worktree; - pre-change backend/adapter baseline: 169 passed, 8 warnings; - pre-change worker baseline: 36 passed; - pre-change strict browser baseline: 2 passed, zero skips; - implemented server-backed proof: request/work-order/run IDs are database-local synthetic IDs; request 1 completed fresh on the lower-cost worker, request 2 completed as a distinct reused run on the same worker with an empty step list, reference duration 7 seconds, route comparison units 3, one avoided execution, and a 50% reuse rate; publication was current before the mocked head moved and stale afterward; - focused implementation checks before documentation: the new policy/operator tests passed 4 tests, the adapter/startup target passed 44 tests, and the new strict command-center browser test passed 1 test; -- public screenshot: `docs/assets/switchboard-validation-command-center.png`, captured from the offline file-backed browser application with synthetic public-repository data and inspected against the generated command-center concept; no token, authorization value, path, machine identity, private URL, credential-shaped value, environment value, or financial-savings claim is present; +- corrected public screenshot: `docs/assets/switchboard-validation-command-center.png` is a 1232-by-2276 RGB capture from the offline file-backed UI acceptance application with synthetic public-repository data. It shows queued/terminal route, quota, duration, reuse-source, publication, and bounded worker state and was visually inspected; no token, authorization value, path, machine identity, private URL, credential-shaped value, environment value, or financial-savings claim is present; - final focused backend/adapter/startup matrix: 173 passed with 8 existing SQLAlchemy deprecation warnings; - final focused worker matrix: 36 passed; - final strict browser matrix: 3 passed with zero skips in 21.55 seconds; - complete pytest: 576 passed, 5 documented platform skips, and 344 warnings in 404.09 seconds; - coverage pytest: the same 576 passed and 5 skipped; aggregate configured coverage was 93%; all 16 gates passed at 95.40%, 94.17%, 100%, 100%, 92.59%, 95%, 87.76%, 100%, 100%, 97.73%, 90.16%, 97.59%, 94.83%, 100%, 90.71%, and 91.30% in workflow order; +- correction-focused backend matrix: 95 passed; the unknown preferred executor returned bounded HTTP 404 `preferred_executor_not_found`, created zero adapter requests and zero work orders, left no open transaction, and returned no internal or transport data; +- correction-focused worker matrix: 37 passed. The dedicated real-worker acceptance ran all 7 trusted `validate-switchboard@1` steps for fresh run 1, retained `ownership.json`, `result.json`, step logs, and all 14 declared artifacts with verified hashes, then created reused run 2 from run 1 with local retained-evidence verification, the identical immutable source fingerprint, zero runner calls, zero steps, and zero copied artifacts. The source evidence tree remained byte-for-byte unchanged, the mocked publication decisions were current then stale after the head moved, overview/history totals were 1 fresh, 1 reused, 1 avoided execution, 3 comparison units, 50% reuse, 1 current, 1 stale, and 2 history rows, and both the canonical repository and worker worktree roots were clean; +- corrected strict browser matrix: 3 passed with zero skips in 26.40 seconds. Queued route assessment; fresh route/quota/duration; reused source run/fingerprint/zero steps; current/stale publication; worker status/freshness/capacity/platform; revision-conflict recovery; keyboard order; desktop and 390-pixel containment; exact `Reference execution time avoided` copy; token non-rendering; and zero unexpected console errors all passed; +- corrected complete pytest: 578 passed, 5 documented platform skips, and 344 warnings in 724.68 seconds; +- corrected coverage pytest: the same 578 passed and 5 skipped; aggregate configured coverage was 93%; all 16 gates passed at 95.40%, 94.17%, 100%, 100%, 92.59%, 95%, 87.76%, 100%, 100%, 97.73%, 90.16%, 97.59%, 94.83%, 100%, 90.71%, and 91.30% in workflow order; +- corrected quality/security matrix: clean Python 3.11 `pip check`, pre-commit, TODO policy, repository-pinned Ruff, Black, Mypy over 177 source files, Bandit 1.8.6 on Python 3.11.14, pip-audit, Gitleaks over 255 commits, Lychee, strict Playwright, and `git diff --check` passed. The shared host retains its documented unrelated dependency and newer-Ruff drift, so no repository rule or scanner was weakened; - clean Python 3.11 `pip check`, pre-commit, TODO policy, Ruff, Black, Mypy, compatible-interpreter Bandit, pip-audit, Gitleaks over 250 commits, Lychee, and `git diff --check` passed; - the shared Python 3.14 environment retains the unrelated baseline OpenCV/NumPy and Streamlit/Pillow conflicts. A clean external Python 3.11 environment proved dependency consistency and direct gates. The fixed worker argv `python` resolves the base Astral interpreter ahead of a Windows venv under its intentionally sanitized environment, so the established host interpreter was retained for worker/full pytest while direct Python 3.11 gates used the clean environment; no worker command or trust boundary was weakened; - generated reports, coverage data, databases, caches, bytecode, link output, and temporary environments are removed before commit. The final public-hygiene audit, local/remote equality, and hosted ultimate-head workflow IDs are recorded during delivery; ultimate-head IDs belong in PR #137's external review record rather than a self-referential plan commit. diff --git a/docs/API.md b/docs/API.md index 4d558fc..cef98ea 100644 --- a/docs/API.md +++ b/docs/API.md @@ -119,7 +119,10 @@ operator `routing_priority`, and finally lexical worker ID. An explicit `preferred_executor` is a hard pin to a known worker. It overrides ranking but never approval, liveness, polling, status, capacity, capability, network, read-only, cost, quota, or profile-enabled checks, and it never falls back to a -different worker when unavailable. +different worker when unavailable. An unknown hard pin submitted through the +GitHub validation route returns bounded `404 preferred_executor_not_found`; the +request transaction is rolled back before either an adapter request or work +order exists. Every checkout by a known authenticated worker records only that requester's `last_checkout_poll_at` using server time. Poll freshness and heartbeat @@ -203,6 +206,14 @@ linked successful source run's persisted start/finish interval, and comparison units come from the reused run's persisted route estimate. Missing values are excluded rather than guessed. +The command center combines the exact request status with existing bounded +`GET /api/execution/work-orders/{id}/route-assessment` and +`GET /api/execution/runs/{id}` reads. The former supplies a non-mutating queued +candidate decision; the latter supplies persisted route/quota provenance, +timestamps, cleanup, reuse source run/fingerprint, and compact evidence after a +run exists. The browser never requests full logs, commands, argv, environment +values, local paths, or unbounded candidate data. + Publication requires terminal compact evidence and re-resolves the PR immediately before its managed comment is written. A moved or unavailable head is published as stale without changing the historical tested SHA. Responses diff --git a/docs/architecture/local-execution-broker.md b/docs/architecture/local-execution-broker.md index 592e2c8..e268f33 100644 --- a/docs/architecture/local-execution-broker.md +++ b/docs/architecture/local-execution-broker.md @@ -264,6 +264,21 @@ per adapter request and returns compact scalar provenance. Worker summaries combine the declared worker with its operator-owned profile without exposing capability dumps, local roots, or private connectivity data. +The selected-request surface makes two bounded point reads in addition to its +request/history projection: current route assessment while queued and the exact +run after assignment. This exposes candidate count, reason, hard-pin state, +profile revision, quota reservation state, timestamps, duration, cleanup, and +reuse source provenance without broadening list responses or returning worker +logs. Worker cards render explicit declared status, derived activity, +OS/architecture, capacity, heartbeat/poll freshness, and profile state. + +The browser acceptance uses synthetic completion only to drive visible lifecycle +states. It is not a worker trust proof. A separate file-backed acceptance uses +the real outbound `ExecutionClient` and `LocalWorker`, executes the trusted +manifest on the deterministically selected lower-cost worker, verifies retained +evidence locally on reuse, and proves the step runner is not called a second +time. + Adapter request identity binds every accepted result-affecting execution policy. For compatibility, an all-default request may resolve the exact pre-#136 legacy identity; that row and linked work order are returned unchanged. A non-default diff --git a/docs/operations/validation-command-center.md b/docs/operations/validation-command-center.md index ebfac00..880abc2 100644 --- a/docs/operations/validation-command-center.md +++ b/docs/operations/validation-command-center.md @@ -19,7 +19,8 @@ identity, private URL, or claim of actual financial savings. windows. 2. Open the dashboard and, when configured, enter the existing admin token in the dashboard's settings. The browser keeps it in local storage and attaches - it to protected requests; the server never returns it to the workspace. + it to protected requests using the accepted `Authorization: Bearer` form; + the server never returns it to the workspace. 3. Create or edit an operator-owned worker routing profile. Profile replacement and quota reset require the latest revision. A `409` refreshes visible state and leaves a persistent recovery message instead of overwriting newer data. @@ -33,8 +34,10 @@ identity, private URL, or claim of actual financial savings. is never implied by request creation. 7. Allow the outbound worker to claim the job. The selected request is polled while active; selecting another request replaces the timer. -8. Inspect the persisted route, fresh/reused decision, terminal run, compact - evidence fingerprint, and publication state. +8. Inspect the queued route assessment or persisted terminal route, quota state, + candidate count, profile revision, run timestamps and duration, fresh/reused + decision, reused source provenance, cleanup, compact evidence fingerprint, + and publication decision. 9. Explicitly publish evidence. Switchboard re-resolves the PR head immediately; a moved head is labelled stale without rewriting the tested SHA. 10. Use bounded history and filters to review prior requests. Copy actions expose @@ -58,7 +61,13 @@ SHA remains unchanged. Finally, filter history to reused rows, force one stale profile revision, tab through the request form, and verify both a desktop and a 390-pixel viewport have no page-level horizontal overflow. The automated strict browser regression performs this procedure with a file-backed database and no -network or real GitHub credential. +network or real GitHub credential. Its completion endpoint is deliberately a +synthetic UI fixture; it does not claim to prove worker-local execution or +cryptographic reuse verification. That trust path is separately exercised by +the file-backed `ExecutionClient`/`LocalWorker` acceptance in +`client/python/tests/test_execution_worker_server_smoke.py`, which runs the +trusted manifest once, retains evidence, verifies the exact retained source on +the worker, and skips the step runner only for the reused run. ## Projection and identity contract @@ -76,6 +85,16 @@ publication state. Projection responses exclude commands, argv, full logs, environment dumps, credentials, local paths, candidate lists, and complete worker capabilities. +The selected request uses the existing bounded route-assessment and run-detail +APIs. Before assignment it displays the selected candidate, abstract comparison +units, eligible count, bounded reason, and hard-pin decision. After assignment it +displays persisted worker/profile provenance, required and reserved quota, +reservation state, timestamps, measured duration, reuse source identity, +evidence fingerprint, cleanup, and terminal state. Missing values are displayed +as unavailable rather than inferred. Worker cards separately show declared +status, server-derived activity, safe OS/architecture, active/max capacity, +heartbeat and checkout-poll timestamps, and operator-owned profile state. + The request idempotency identity includes repository, stable PR identity, exact head, trusted manifest, authenticated actor, reuse policy, routing policy, maximum comparison units, required quota, and preferred executor. Requests with @@ -90,7 +109,7 @@ columns or migration. The overview is derived from persisted database records for the selected window: - **Deterministic executions avoided** counts successful reused runs only. -- **Reference time avoided** sums the persisted `finished_at - started_at` +- **Reference execution time avoided** sums the persisted `finished_at - started_at` duration of each linked successful source run when both timestamps are valid. - **Comparison units avoided** sums the reused run's persisted route estimate when present. diff --git a/docs/reports/status.md b/docs/reports/status.md index 027ab6e..05f35b1 100644 --- a/docs/reports/status.md +++ b/docs/reports/status.md @@ -39,6 +39,12 @@ lifecycle controls, routing-profile management, fresh/reused history, and database-derived avoided-work metrics. It remains draft and is not part of the merged baseline until review and the protected matrix complete. +Connector review `4890406546` required final correction evidence before that +review can complete: a real `ExecutionClient`/`LocalWorker` fresh-then-reuse +acceptance, bounded rollback for unknown preferred workers, and complete +route/quota/source/timing plus worker-state visibility. The browser fixture +remains UI-only; it is not cited as cryptographic retained-evidence proof. + Operator setup, repository allowlisting, evidence retention, and trust limitations are documented in the [local worker operations guide](../operations/local-worker.md). From 3db95ca7b8b85c26bfb53b87e5e53bedf6baac4c Mon Sep 17 00:00:00 2001 From: Nobodyworld <127373451+Nobodyworld@users.noreply.github.com> Date: Sun, 9 Aug 2026 05:26:53 -0500 Subject: [PATCH 11/13] fix(operator): bound worker state projection --- server/execution/operator_projection.py | 94 +++++- .../test_execution_operator_projection.py | 309 ++++++++++++++++++ 2 files changed, 394 insertions(+), 9 deletions(-) create mode 100644 server/tests/test_execution_operator_projection.py diff --git a/server/execution/operator_projection.py b/server/execution/operator_projection.py index c419419..98f064b 100644 --- a/server/execution/operator_projection.py +++ b/server/execution/operator_projection.py @@ -3,9 +3,9 @@ from __future__ import annotations import datetime as dt -from typing import Any, Literal +from typing import Annotated, Any, Literal -from pydantic import BaseModel, ConfigDict, Field +from pydantic import BaseModel, ConfigDict, Field, StringConstraints from sqlalchemy import Select, func, select from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.orm import InstrumentedAttribute, aliased @@ -20,12 +20,22 @@ ) from server.time_utils import utcnow_naive -from .enums import ExecutionRunStatus, ReuseDecision, WorkerStatus +from .enums import ExecutionRunStatus, NetworkPolicy, ReuseDecision, WorkerStatus MAX_OPERATOR_LIMIT = 100 MAX_OPERATOR_OFFSET = 10_000 MAX_OPERATOR_WINDOW_DAYS = 365 +MAX_OPERATOR_BROWSER_COUNT = 8 +MAX_OPERATOR_BROWSER_LENGTH = 64 SHA256_HEX_LENGTH = 64 +BrowserName = Annotated[ + str, + StringConstraints( + strip_whitespace=True, + min_length=1, + max_length=MAX_OPERATOR_BROWSER_LENGTH, + ), +] class OperatorProjectionModel(BaseModel): @@ -76,6 +86,7 @@ class OperatorWorkerMetricsOut(OperatorProjectionModel): active: int = Field(ge=0) stale: int = Field(ge=0) capacity_constrained: int = Field(ge=0) + unavailable: int = Field(ge=0) class ExecutionOperatorOverviewOut(OperatorProjectionModel): @@ -104,6 +115,15 @@ class ExecutionWorkerSummaryOut(OperatorProjectionModel): display_name: str = Field(min_length=1, max_length=255) operating_system: str = Field(min_length=1, max_length=64) architecture: str = Field(min_length=1, max_length=64) + python_version: str | None = Field(default=None, max_length=64) + node_version: str | None = Field(default=None, max_length=64) + docker_available: bool + browsers: list[BrowserName] = Field(max_length=MAX_OPERATOR_BROWSER_COUNT) + gpu_available: bool + unity_available: bool + desktop_available: bool + network_policy_capability: Literal["disabled", "worker_restricted"] + repository_write_capability: Literal[False] status: str = Field(min_length=1, max_length=32) activity_state: Literal["active", "stale", "capacity_constrained", "unavailable"] active_run_count: int = Field(ge=0) @@ -317,19 +337,19 @@ async def overview( active=worker_states.count("active"), stale=worker_states.count("stale"), capacity_constrained=worker_states.count("capacity_constrained"), + unavailable=worker_states.count("unavailable"), ), ) - async def list_workers( # noqa: PLR0913 + async def list_workers( self, *, limit: int, offset: int, heartbeat_freshness_seconds: int, active_poll_freshness_seconds: int, - now: dt.datetime | None = None, ) -> ExecutionWorkerPageOut: - now = _utc_naive(now or utcnow_naive()) + now = utcnow_naive() total = int( await self._session.scalar(select(func.count(ExecutionWorker.id))) or 0 ) @@ -369,6 +389,17 @@ async def list_workers( # noqa: PLR0913 display_name=worker.display_name, operating_system=worker.operating_system, architecture=worker.architecture, + python_version=worker.python_version, + node_version=worker.node_version, + docker_available=worker.docker_available, + browsers=_bounded_browsers(worker.browsers), + gpu_available=worker.gpu_available, + unity_available=worker.unity_available, + desktop_available=worker.desktop_available, + network_policy_capability=_network_policy_capability( + worker.network_policy_capability + ), + repository_write_capability=worker.repository_write_capability, status=_enum_value(worker.status), activity_state=_worker_activity_state( status=worker.status, @@ -531,6 +562,23 @@ def _history_filters( # noqa: PLR0913 return statement +def _bounded_browsers(value: object) -> list[str]: + """Return a small safe subset of valid persisted browser identifiers.""" + + if not isinstance(value, list): + return [] + browsers: list[str] = [] + for item in value: + if len(browsers) >= MAX_OPERATOR_BROWSER_COUNT: + break + if not isinstance(item, str): + continue + browser = item.strip() + if 1 <= len(browser) <= MAX_OPERATOR_BROWSER_LENGTH: + browsers.append(browser) + return browsers + + def _worker_activity_state( # noqa: PLR0913 *, status: WorkerStatus, @@ -542,19 +590,47 @@ def _worker_activity_state( # noqa: PLR0913 heartbeat_freshness_seconds: int, active_poll_freshness_seconds: int, ) -> Literal["active", "stale", "capacity_constrained", "unavailable"]: - if status != WorkerStatus.ONLINE: + if status in {WorkerStatus.DRAINING, WorkerStatus.OFFLINE}: + return "unavailable" + if status not in {WorkerStatus.ONLINE, WorkerStatus.BUSY}: + return "unavailable" + if ( + not _is_plain_int(active_run_count) + or not _is_plain_int(max_concurrency) + or not _is_plain_int(heartbeat_freshness_seconds) + or not _is_plain_int(active_poll_freshness_seconds) + or active_run_count < 0 + or max_concurrency < 1 + or active_run_count > max_concurrency + or heartbeat_freshness_seconds < 0 + or active_poll_freshness_seconds < 0 + or not isinstance(last_heartbeat_at, dt.datetime) + or not isinstance(now, dt.datetime) + ): return "unavailable" - if active_run_count >= max_concurrency: - return "capacity_constrained" if not _fresh( last_heartbeat_at, now=now, seconds=heartbeat_freshness_seconds ) or not _fresh( last_checkout_poll_at, now=now, seconds=active_poll_freshness_seconds ): return "stale" + if status == WorkerStatus.BUSY or active_run_count >= max_concurrency: + return "capacity_constrained" return "active" +def _is_plain_int(value: object) -> bool: + return isinstance(value, int) and not isinstance(value, bool) + + +def _network_policy_capability( + policy: NetworkPolicy, +) -> Literal["disabled", "worker_restricted"]: + if policy is NetworkPolicy.DISABLED: + return "disabled" + return "worker_restricted" + + def _history_item( request: GitHubValidationRequest, order: ExecutionWorkOrder, diff --git a/server/tests/test_execution_operator_projection.py b/server/tests/test_execution_operator_projection.py new file mode 100644 index 0000000..28c6653 --- /dev/null +++ b/server/tests/test_execution_operator_projection.py @@ -0,0 +1,309 @@ +# ruff: noqa: PLR0913, PLR0915 +"""Focused activity and redaction coverage for operator worker projections.""" + +from __future__ import annotations + +import datetime as dt +from http import HTTPStatus + +import pytest +from httpx import ASGITransport, AsyncClient +from pydantic import ValidationError +from sqlalchemy import select + +from server.app import app +from server.db import AsyncSessionLocal +from server.execution.entities import WorkerRegistration, WorkOrderDraft +from server.execution.enums import ( + ApprovalPolicy, + NetworkPolicy, + WorkerStatus, +) +from server.execution.operator_projection import ( + MAX_OPERATOR_BROWSER_COUNT, + ExecutionOperatorProjection, + ExecutionWorkerSummaryOut, + _worker_activity_state, +) +from server.execution.repository import ExecutionRepository +from server.execution.service import ExecutionService +from server.models import ExecutionWorker +from server.time_utils import utcnow_naive + + +def _worker( + worker_id: str, + *, + status: WorkerStatus = WorkerStatus.ONLINE, + browsers: tuple[str, ...] = (), + capabilities: dict[str, object] | None = None, +) -> WorkerRegistration: + return WorkerRegistration( + worker_id=worker_id, + display_name=f"Synthetic {worker_id}", + operating_system="linux", + architecture="x86_64", + python_version="3.11.14", + node_version=None, + docker_available=False, + browsers=browsers, + gpu_available=False, + unity_available=False, + desktop_available=False, + capabilities=capabilities or {}, + max_concurrency=1, + network_policy_capability=NetworkPolicy.WORKER_RESTRICTED, + repository_write_capability=False, + status=status, + ) + + +def _draft() -> WorkOrderDraft: + return WorkOrderDraft( + schema_version=1, + repository_full_name="Nobodyworld/dev-agent-switchboard", + commit_sha="d" * 40, + manifest_name="validate-switchboard", + manifest_version="1", + manifest_parameters={}, + required_capabilities={}, + permitted_paths=("server",), + forbidden_scope_notes="read-only operator projection proof", + expected_artifact_kinds=("command-log",), + approval_policy=ApprovalPolicy.EXPLICIT, + timeout_seconds=3600, + resource_metadata={}, + network_policy=NetworkPolicy.WORKER_RESTRICTED, + repository_write_allowed=False, + preferred_executor=None, + cost_ceiling=None, + ) + + +@pytest.mark.parametrize( + ( + "status", + "active_run_count", + "max_concurrency", + "heartbeat_age", + "poll_age", + "expected", + ), + [ + (WorkerStatus.ONLINE, 0, 1, 0, 0, "active"), + (WorkerStatus.BUSY, 1, 1, 0, 0, "capacity_constrained"), + (WorkerStatus.ONLINE, 1, 1, 0, 0, "capacity_constrained"), + (WorkerStatus.BUSY, 1, 1, 301, 61, "stale"), + (WorkerStatus.DRAINING, 0, 1, 0, 0, "unavailable"), + (WorkerStatus.OFFLINE, 0, 1, 0, 0, "unavailable"), + (WorkerStatus.ONLINE, 2, 1, 0, 0, "unavailable"), + ], +) +def test_worker_activity_state_precedence_is_deterministic( + status: WorkerStatus, + active_run_count: int, + max_concurrency: int, + heartbeat_age: int, + poll_age: int, + expected: str, +) -> None: + now = dt.datetime(2026, 8, 9, 12, 0, 0, tzinfo=dt.UTC).replace(tzinfo=None) + + result = _worker_activity_state( + status=status, + active_run_count=active_run_count, + max_concurrency=max_concurrency, + last_heartbeat_at=now - dt.timedelta(seconds=heartbeat_age), + last_checkout_poll_at=now - dt.timedelta(seconds=poll_age), + now=now, + heartbeat_freshness_seconds=300, + active_poll_freshness_seconds=60, + ) + + assert result == expected + + +@pytest.mark.asyncio +@pytest.mark.parametrize( + "insertion_order", + [ + ( + "worker-stale", + "worker-offline", + "worker-active", + "worker-busy", + "worker-draining", + "worker-inconsistent-full", + ), + ( + "worker-inconsistent-full", + "worker-draining", + "worker-busy", + "worker-active", + "worker-offline", + "worker-stale", + ), + ], +) +async def test_busy_capacity_lifecycle_projects_bounded_stable_worker_state( + insertion_order: tuple[str, ...], +) -> None: + now = utcnow_naive() + browser_names = tuple(f"browser-{index:02d}" for index in range(10)) + registrations = { + "worker-active": _worker("worker-active"), + "worker-busy": _worker( + "worker-busy", + browsers=browser_names, + capabilities={ + "unlisted_flag": True, + "nested_metadata": {"count": 7}, + }, + ), + "worker-draining": _worker("worker-draining", status=WorkerStatus.DRAINING), + "worker-inconsistent-full": _worker("worker-inconsistent-full"), + "worker-offline": _worker("worker-offline", status=WorkerStatus.OFFLINE), + "worker-stale": _worker("worker-stale"), + } + expected_states = { + "worker-active": "active", + "worker-busy": "capacity_constrained", + "worker-draining": "unavailable", + "worker-inconsistent-full": "capacity_constrained", + "worker-offline": "unavailable", + "worker-stale": "stale", + } + + async with AsyncSessionLocal() as session: + repository = ExecutionRepository(session) + service = ExecutionService( + repository=repository, + clock=lambda: now, + lease_seconds=lambda: 60, + routing_freshness_seconds=lambda: (300, 60), + ) + for worker_id in insertion_order: + await service.register_worker(registrations[worker_id]) + + for worker_id in ( + "worker-active", + "worker-busy", + "worker-inconsistent-full", + "worker-stale", + ): + checkout = await service.checkout(worker_id) + assert not checkout.assigned + + stale_worker = await repository.get_worker("worker-stale") + inconsistent_worker = await repository.get_worker("worker-inconsistent-full") + assert stale_worker is not None + assert inconsistent_worker is not None + stale_worker.last_heartbeat_at = now - dt.timedelta(seconds=301) + stale_worker.last_checkout_poll_at = now - dt.timedelta(seconds=61) + inconsistent_worker.active_run_count = inconsistent_worker.max_concurrency + inconsistent_worker.status = WorkerStatus.ONLINE + await session.flush() + + order = await service.create_work_order(_draft()) + await service.approve_work_order(order.id) + assignment = await service.checkout("worker-busy") + assert assignment.assigned + session.expire_all() + + persisted_busy = ( + await session.execute( + select(ExecutionWorker) + .where(ExecutionWorker.worker_id == "worker-busy") + .execution_options(populate_existing=True) + ) + ).scalar_one() + assert persisted_busy.status == WorkerStatus.BUSY + assert persisted_busy.active_run_count == persisted_busy.max_concurrency == 1 + + projection = ExecutionOperatorProjection(session) + workers = await projection.list_workers( + limit=100, + offset=0, + heartbeat_freshness_seconds=300, + active_poll_freshness_seconds=60, + ) + overview = await projection.overview( + window_days=1, + heartbeat_freshness_seconds=300, + active_poll_freshness_seconds=60, + now=now, + ) + await session.commit() + + projected_states = {item.worker_id: item.activity_state for item in workers.items} + assert projected_states == expected_states + assert [item.worker_id for item in workers.items] == sorted(expected_states) + assert overview.workers.model_dump() == { + "total": 6, + "active": 1, + "stale": 1, + "capacity_constrained": 2, + "unavailable": 2, + } + assert ( + sum( + ( + overview.workers.active, + overview.workers.stale, + overview.workers.capacity_constrained, + overview.workers.unavailable, + ) + ) + == overview.workers.total + ) + + transport = ASGITransport(app=app, client=("operator-worker-summary", 12_346)) + async with AsyncClient(transport=transport, base_url="http://test") as client: + response = await client.get("/api/execution/workers?limit=100&offset=0") + overview_response = await client.get( + "/api/execution/operator/overview?window_days=1" + ) + assert response.status_code == HTTPStatus.OK + assert overview_response.status_code == HTTPStatus.OK + assert overview_response.json()["workers"] == { + "total": 6, + "active": 1, + "stale": 1, + "capacity_constrained": 2, + "unavailable": 2, + } + payload = response.json() + assert [item["worker_id"] for item in payload["items"]] == sorted(expected_states) + payload_by_id = {item["worker_id"]: item for item in payload["items"]} + busy_payload = payload_by_id["worker-busy"] + assert busy_payload["activity_state"] == "capacity_constrained" + assert busy_payload["python_version"] == "3.11.14" + assert busy_payload["node_version"] is None + assert busy_payload["docker_available"] is False + assert busy_payload["browsers"] == list(browser_names[:MAX_OPERATOR_BROWSER_COUNT]) + assert busy_payload["gpu_available"] is False + assert busy_payload["unity_available"] is False + assert busy_payload["desktop_available"] is False + assert busy_payload["network_policy_capability"] == "worker_restricted" + assert busy_payload["repository_write_capability"] is False + assert "capabilities" not in busy_payload + assert { + "local_root", + "environment", + "command", + "argv", + "hostname", + "username", + "credential", + }.isdisjoint(busy_payload) + + with pytest.raises(ValidationError): + ExecutionWorkerSummaryOut.model_validate( + { + **busy_payload, + "browsers": [ + *busy_payload["browsers"], + "one-browser-too-many", + ], + } + ) From 6f595a748c451511f3e8ba3851f622e80595fab2 Mon Sep 17 00:00:00 2001 From: Nobodyworld <127373451+Nobodyworld@users.noreply.github.com> Date: Sun, 9 Aug 2026 05:27:05 -0500 Subject: [PATCH 12/13] fix(operator): complete command center details --- .../switchboard-validation-command-center.png | Bin 206763 -> 174382 bytes web/static/validation_broker.js | 38 ++++++++- web/tests/test_ui.py | 80 ++++++++++++++++-- 3 files changed, 107 insertions(+), 11 deletions(-) diff --git a/docs/assets/switchboard-validation-command-center.png b/docs/assets/switchboard-validation-command-center.png index 6bee916ca077567150ea8efdf541e46d6ef3c023..2665fcd3e24018b47534d1adfe7ff335c40ee4ea 100644 GIT binary patch literal 174382 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

x~%R`f}#o~fwW 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 diff --git a/web/static/validation_broker.js b/web/static/validation_broker.js index d7d1e7d..74bad4d 100644 --- a/web/static/validation_broker.js +++ b/web/static/validation_broker.js @@ -83,6 +83,19 @@ function formatDate(value) { return Number.isNaN(date.valueOf()) ? '—' : date.toLocaleString(); } +function formatQuotaReset(value) { + if (!value) return 'Not scheduled'; + const formatted = formatDate(value); + return formatted === '—' ? 'Not available' : formatted; +} + +function timezoneAwareIso(value) { + if (!value) return null; + const normalized = /(?:Z|[+-]\d{2}:\d{2})$/i.test(value) ? value : `${value}Z`; + const date = new Date(normalized); + return Number.isNaN(date.valueOf()) ? null : date.toISOString(); +} + function formatLabel(value) { return value ? String(value).replaceAll('_', ' ') : '—'; } @@ -186,6 +199,9 @@ function renderWorkers() { container.innerHTML = brokerState.workers .map((worker) => { const profile = worker.profile; + const browsers = Array.isArray(worker.browsers) && worker.browsers.length + ? worker.browsers.join(', ') + : 'Not reported'; const profileDetails = profile ? `

@@ -193,6 +209,7 @@ function renderWorkers() {
Comparison units
${formatInteger(profile.estimated_cost_units_per_run)}
Revision
${formatInteger(profile.revision)}
Quota
${formatInteger(profile.quota_remaining_units)} / ${formatInteger(profile.quota_capacity_units)}
+
Quota reset
${escapeHtml(formatQuotaReset(profile.quota_reset_at))}
Priority
${formatInteger(profile.routing_priority)}
` @@ -212,6 +229,17 @@ function renderWorkers() {
Last heartbeat
${escapeHtml(formatDate(worker.last_heartbeat_at))}
Last checkout poll
${escapeHtml(formatDate(worker.last_checkout_poll_at))}
+
+
Python
${escapeHtml(worker.python_version || 'Not reported')}
+
Node
${escapeHtml(worker.node_version || 'Not reported')}
+
Docker
${worker.docker_available ? 'Available' : 'Unavailable'}
+
Browsers
${escapeHtml(browsers)}
+
GPU
${worker.gpu_available ? 'Available' : 'Unavailable'}
+
Unity
${worker.unity_available ? 'Available' : 'Unavailable'}
+
Desktop automation
${worker.desktop_available ? 'Available' : 'Unavailable'}
+
Network
${escapeHtml(formatLabel(worker.network_policy_capability))}
+
Repository writes
${worker.repository_write_capability ? 'Enabled' : 'Disabled'}
+
${profileDetails} @@ -320,20 +348,24 @@ function renderRequestDetail() { container.innerHTML = `
Request
#${request.request_id}
+
Repository
${escapeHtml(request.repository_full_name)}
+
Pull request
#${formatInteger(request.pull_request_number)}
Created
${escapeHtml(formatDate(request.created_at))}
Last head resolution
${escapeHtml(formatDate(request.last_resolved_at))}
Exact head
${escapeHtml(request.tested_head_sha)}
Base SHA
${escapeHtml(request.base_sha)}
Manifest
${escapeHtml(`${request.manifest_name}@${request.manifest_version}`)} ${escapeHtml(request.manifest_digest)}
Work order
#${request.work_order_id} ${badge(status, stateTone(status))}
-
Route
${badge(request.routing_policy)} · ${escapeHtml(selectedWorker || 'Not available')}
+
Reuse policy
${badge(request.reuse_policy)}
+
Routing policy
${badge(request.routing_policy)}
+
Selected route
${escapeHtml(selectedWorker || 'Not available')}
Route reason
${escapeHtml(formatLabel(route?.reason))}
Comparison units
${formatInteger(route?.estimated_cost_units ?? projection.estimated_cost_units)}
Eligible candidates
${formatInteger(route?.eligible_candidate_count)}
Explicit pin
${route ? (route.explicit_pin_applied ? 'Applied' : 'Not applied') : 'Not available'}
Profile revision
${formatInteger(route?.selected_routing_profile_revision)}
Quota
${formatInteger(route?.required_quota_units ?? request.required_quota_units)} required / ${formatInteger(route?.reserved_quota_units)} reserved · ${escapeHtml(formatLabel(route?.quota_reservation_state))}
-
Reuse
${badge(reuseDecision, stateTone(reuseDecision))}
+
Reuse decision
${badge(reuseDecision, stateTone(reuseDecision))}
Source run
${sourceRunId ? `#${formatInteger(sourceRunId)}` : 'Not available'}
Source evidence
${escapeHtml(sourceFingerprint || 'Not available')}
Run
${run ? `#${run.id} ${badge(run.status, stateTone(run.status))}` : 'Not available'}
@@ -593,7 +625,7 @@ async function handleProfileSubmit(event) { estimated_cost_units_per_run: Number(data.get('estimated_cost_units_per_run')), quota_capacity_units: Number(data.get('quota_capacity_units')), quota_remaining_units: Number(data.get('quota_remaining_units')), - quota_reset_at: worker.profile?.quota_reset_at || null, + quota_reset_at: timezoneAwareIso(worker.profile?.quota_reset_at), routing_priority: Number(data.get('routing_priority')), }; const existing = worker.profile; diff --git a/web/tests/test_ui.py b/web/tests/test_ui.py index abf987f..88f0d06 100644 --- a/web/tests/test_ui.py +++ b/web/tests/test_ui.py @@ -234,8 +234,7 @@ def test_two_agent_dependency_flow_updates_dashboard( page.goto(f"{app_server}/", wait_until="domcontentloaded") page.wait_for_selector("#tasks") - task_ids = page.evaluate( - """async () => { + task_script = """async () => { const jsonHeaders = { 'Content-Type': 'application/json', }; @@ -276,7 +275,7 @@ def test_two_agent_dependency_flow_updates_dashboard( return { taskAId: taskA.id, taskBId: taskB.id }; }""" - ) + task_ids = page.evaluate(task_script) page.wait_for_selector('tr:has-text("Task A")') page.wait_for_selector('tr:has-text("Task B")') @@ -463,6 +462,10 @@ def test_validation_broker_operator_workflow_is_accessible_and_responsive( # no **worker_base, "worker_id": "ui-worker-cheap", "display_name": "Local small", + "browsers": ["chromium"], + "capabilities": { + "internal_marker": "not-for-operator-ui", + }, }, ) _post_json( @@ -494,7 +497,11 @@ def test_validation_broker_operator_workflow_is_accessible_and_responsive( # no "estimated_cost_units_per_run": cost, "quota_capacity_units": 20, "quota_remaining_units": 20, - "quota_reset_at": None, + "quota_reset_at": ( + "2026-08-10T12:00:00Z" + if worker_id == "ui-worker-cheap" + else None + ), "routing_priority": 0, }, ) @@ -526,6 +533,28 @@ def test_validation_broker_operator_workflow_is_accessible_and_responsive( # no expect(page.locator('[data-worker-id="ui-worker-cheap"]')).to_contain_text( "enabled" ) + cheap_worker_card = page.locator('[data-worker-id="ui-worker-cheap"]') + expect(cheap_worker_card).to_contain_text("Python") + expect(cheap_worker_card).to_contain_text("3.11.14") + expect(cheap_worker_card).to_contain_text("Node") + expect(cheap_worker_card).to_contain_text("Not reported") + expect(cheap_worker_card).to_contain_text("Docker") + expect(cheap_worker_card).to_contain_text("Unavailable") + expect(cheap_worker_card).to_contain_text("Browsers") + expect(cheap_worker_card).to_contain_text("chromium") + expect(cheap_worker_card).to_contain_text("GPU") + expect(cheap_worker_card).to_contain_text("Unity") + expect(cheap_worker_card).to_contain_text("Desktop automation") + expect(cheap_worker_card).to_contain_text("worker restricted") + expect(cheap_worker_card).to_contain_text("Repository writes") + expect(cheap_worker_card).to_contain_text("Disabled") + expect(cheap_worker_card).to_contain_text("Quota reset") + expect(cheap_worker_card).to_contain_text("2026") + expensive_worker_card = page.locator('[data-worker-id="ui-worker-expensive"]') + expect(expensive_worker_card).to_contain_text("Quota reset") + expect(expensive_worker_card).to_contain_text("Not scheduled") + assert "internal_marker" not in page.locator("#brokerWorkers").inner_text() + assert "not-for-operator-ui" not in page.locator("#brokerWorkers").inner_text() page.select_option("#profileWorker", "ui-worker-new") page.fill("#profileCost", "12") @@ -589,7 +618,28 @@ def test_validation_broker_operator_workflow_is_accessible_and_responsive( # no "() => document.querySelector('#brokerRequestDetail')?.textContent" ".includes('7d3a91c')" ) - expect(page.locator("#brokerRequestDetail")).to_contain_text("pending approval") + request_detail = page.locator("#brokerRequestDetail") + expect(request_detail).to_contain_text("pending approval") + expect( + request_detail.locator("dt", has_text="Repository").locator( + "xpath=following-sibling::dd[1]" + ) + ).to_have_text("Nobodyworld/dev-agent-switchboard") + expect( + request_detail.locator("dt", has_text="Pull request").locator( + "xpath=following-sibling::dd[1]" + ) + ).to_have_text("#137") + expect( + request_detail.locator("dt", has_text="Reuse policy").locator( + "xpath=following-sibling::dd[1]" + ) + ).to_contain_text("never") + expect( + request_detail.locator("dt", has_text="Routing policy").locator( + "xpath=following-sibling::dd[1]" + ) + ).to_contain_text("cheapest capable") page.click('[data-request-action="approve-queue"]') page.wait_for_function( "() => document.querySelector('#brokerRequestDetail')?.textContent" @@ -619,6 +669,11 @@ def test_validation_broker_operator_workflow_is_accessible_and_responsive( # no expect(fresh_detail).to_contain_text("7 s") expect(fresh_detail).to_contain_text("Cleanup") expect(fresh_detail).to_contain_text("succeeded") + expect( + fresh_detail.locator("dt", has_text="Reuse decision").locator( + "xpath=following-sibling::dd[1]" + ) + ).to_contain_text("fresh") dialogs: list[str] = [] @@ -658,6 +713,16 @@ def accept_dialog(dialog) -> None: expect(reused_detail).to_contain_text(fresh["evidence_fingerprint"]) expect(reused_detail).to_contain_text("Executed steps") expect(reused_detail).to_contain_text("0") + expect( + reused_detail.locator("dt", has_text="Reuse policy").locator( + "xpath=following-sibling::dd[1]" + ) + ).to_contain_text("allow exact") + expect( + reused_detail.locator("dt", has_text="Reuse decision").locator( + "xpath=following-sibling::dd[1]" + ) + ).to_contain_text("reused") page.click('[data-request-action="publish"]') page.wait_for_function( "() => document.querySelector('#brokerRequestDetail')?.textContent" @@ -704,8 +769,7 @@ def accept_dialog(dialog) -> None: page.set_viewport_size({"width": 390, "height": 844}) expect(page.locator("#validation-broker")).to_be_visible() - overflow = page.evaluate( - """() => ({ + overflow_script = """() => ({ contained: document.documentElement.scrollWidth <= window.innerWidth, offenders: [...document.querySelectorAll('body *')] .filter( @@ -720,7 +784,7 @@ def accept_dialog(dialog) -> None: right: node.getBoundingClientRect().right, })), })""" - ) + overflow = page.evaluate(overflow_script) assert overflow["contained"], overflow["offenders"] assert "ui-admin-sentinel" not in page.url assert all("ui-admin-sentinel" not in message for message in console_errors) From ba9d0a8184448a1ae0c30357a18a7b5962dea94d Mon Sep 17 00:00:00 2001 From: Nobodyworld <127373451+Nobodyworld@users.noreply.github.com> Date: Sun, 9 Aug 2026 05:27:23 -0500 Subject: [PATCH 13/13] docs(operator): record final connector evidence --- .../013_operator_validation_command_center.md | 38 +++++++++++++++++++ docs/API.md | 8 ++++ docs/architecture/local-execution-broker.md | 15 +++++++- docs/operations/validation-command-center.md | 17 +++++++-- docs/reports/status.md | 7 ++++ 5 files changed, 81 insertions(+), 4 deletions(-) diff --git a/.agent/execplans/013_operator_validation_command_center.md b/.agent/execplans/013_operator_validation_command_center.md index 40de9ab..9c6a1f4 100644 --- a/.agent/execplans/013_operator_validation_command_center.md +++ b/.agent/execplans/013_operator_validation_command_center.md @@ -59,6 +59,10 @@ PUBLIC DEVELOPER PREVIEW — NOT PRODUCTION READY - [x] Add a real `ExecutionClient`/`LocalWorker` fresh-then-reuse worker-trust acceptance. - [x] Complete queued route, terminal quota/timing/source, and worker-state visibility. - [x] Run the corrected complete local matrix and repeat public-hygiene validation. +- [x] Record final connector review `4890873592` and its activity, request-identity, capability-summary, and quota-reset corrections. +- [x] Implement deterministic worker-activity precedence and direct plus API projection coverage. +- [x] Complete selected-request identity/policy and bounded worker capability/quota-reset visibility. +- [x] Run the final corrected complete local matrix and repeat public-hygiene validation. - [ ] Push the ultimate head and require the corrected complete hosted matrix. - [ ] Complete connector re-review while keeping PR #137 draft and unmerged. @@ -109,6 +113,15 @@ PUBLIC DEVELOPER PREVIEW — NOT PRODUCTION READY - Observation: `preferred_executor_not_found` crossed from `ExecutionService.create_work_order` through the GitHub adapter route as an `ExecutionDomainError`, while that route caught only adapter errors. Evidence: the corrected boundary maps expected execution not-found failures to a bounded 404, rolls back, and proves zero `GitHubValidationRequest` and `ExecutionWorkOrder` rows plus no open transaction. +- Observation: final connector review `4890873592` found that the worker activity labels did not state or prove precedence when persisted status, freshness, and capacity disagreed. + Evidence: `_worker_activity_state` now classifies draining/offline or malformed records as unavailable, stale heartbeat or checkout polling before considering capacity, busy/full workers as capacity constrained, and only the remaining healthy workers as active. A six-worker persisted matrix proves active, genuinely busy, stale, inconsistent, draining, and offline cases in both insertion orders through direct projection and real HTTP reads, with overview buckets summing exactly to total workers. + +- Observation: the redacted worker projection already had enough declared, allowlisted capability scalars to support safe operator diagnosis, but returning the arbitrary `capabilities` document would have violated the bounded surface. + Evidence: worker cards receive only Python/Node version, Docker, a maximum of eight bounded browser names, GPU, Unity, desktop automation, network posture, and the fixed read-only repository capability. Tests prove arbitrary capability keys and values never enter the projection or rendered page. + +- Observation: a persisted quota-reset timestamp is stored without timezone metadata in SQLite and therefore serialized without an offset by the projection response. + Evidence: preserving that raw string during profile replacement caused the strict API schema to reject the edit. The browser now normalizes an existing reset timestamp to an explicit UTC ISO value before replacement; the strict browser profile-edit and revision-conflict workflow passes without changing quota semantics. + ## Decision Log - Decision: deliver backend projections, operator UX, history, avoided-work metrics, documentation, and end-to-end acceptance in one large vertical PR. @@ -167,6 +180,14 @@ PUBLIC DEVELOPER PREVIEW — NOT PRODUCTION READY Rationale: only the new real `ExecutionClient`/`LocalWorker` test executes the trusted manifest, persists worker-owned evidence, performs local cryptographic verification, and proves the reused run skips the step runner. Date/Author: 2026-08-09 / connector correction +- Decision: worker activity uses one deterministic precedence: unavailable, stale, capacity constrained, then active. + Rationale: lifecycle and malformed-state safety must win first; stale trust signals must never be hidden behind a busy/full label; only fresh, valid workers may be described as capacity constrained or active. + Date/Author: 2026-08-09 / final connector correction + +- Decision: expose only small typed capability fields already accepted by worker registration, never the arbitrary capability document. + Rationale: operators need bounded runtime compatibility context, while internal markers, paths, host identity, commands, environments, and future capability extensions must remain server-redacted by default. + Date/Author: 2026-08-09 / final connector correction + ## Outcomes & Retrospective The operator can now complete the complete validation workflow in the existing @@ -211,6 +232,14 @@ page containment at 1440 and 390 pixels. The approved screenshot was generated from that no-network file-backed application with synthetic public data and was visually inspected against the generated concept. +The final connector pass makes activity classification deterministic under +conflicting persisted signals and verifies the same buckets through direct and +HTTP projection reads. The selected request now keeps repository, pull-request, +reuse-policy, and routing-policy identity adjacent to route/run evidence. Worker +cards add only typed allowlisted runtime capabilities plus the next quota-reset +state; scheduled reset values survive profile replacement as timezone-aware API +inputs. The synthetic screenshot was recaptured from the corrected bounded UI. + The product remains a public developer preview for trusted local networks. MCP, paid-agent/provider execution, billing, browser/desktop/RPA workers, automatic approval/publication, webhooks, repository writes, full-log transfer, and @@ -677,6 +706,7 @@ Current corrected-head local evidence: - preflight: `origin/main` and merge base were `223df7752716dd6ad35e75ba7613eeb03cfb2887`; the local and remote implementation branch began at `e905a3d7020c76d940c0938b2617d55d6d57de7e`; the isolated worktree was clean and exclusively owned the branch; - correction preflight: local and remote `feat/operator-validation-command-center` both began at `5bb0ec7a696cb512708e3f60e05c2e281b6255b0`; `origin/main` and the merge base remained `223df7752716dd6ad35e75ba7613eeb03cfb2887`; PR #137 remained open, draft, unmerged, and exclusively owned by the clean isolated worktree; +- final-correction preflight: local and remote `feat/operator-validation-command-center` both began at `4f3613e29cc4aca133b815ec935bbf76f6e89ad9`; `origin/main` and the merge base remained `223df7752716dd6ad35e75ba7613eeb03cfb2887`; PR #137 remained open, draft, unmerged, and exclusively owned by the clean isolated worktree. Connector review `4890873592` and checkpoint comments `5230659404`/`5230660442` define this pass; - pre-change backend/adapter baseline: 169 passed, 8 warnings; - pre-change worker baseline: 36 passed; - pre-change strict browser baseline: 2 passed, zero skips; @@ -691,6 +721,14 @@ Current corrected-head local evidence: - correction-focused backend matrix: 95 passed; the unknown preferred executor returned bounded HTTP 404 `preferred_executor_not_found`, created zero adapter requests and zero work orders, left no open transaction, and returned no internal or transport data; - correction-focused worker matrix: 37 passed. The dedicated real-worker acceptance ran all 7 trusted `validate-switchboard@1` steps for fresh run 1, retained `ownership.json`, `result.json`, step logs, and all 14 declared artifacts with verified hashes, then created reused run 2 from run 1 with local retained-evidence verification, the identical immutable source fingerprint, zero runner calls, zero steps, and zero copied artifacts. The source evidence tree remained byte-for-byte unchanged, the mocked publication decisions were current then stale after the head moved, overview/history totals were 1 fresh, 1 reused, 1 avoided execution, 3 comparison units, 50% reuse, 1 current, 1 stale, and 2 history rows, and both the canonical repository and worker worktree roots were clean; - corrected strict browser matrix: 3 passed with zero skips in 26.40 seconds. Queued route assessment; fresh route/quota/duration; reused source run/fingerprint/zero steps; current/stale publication; worker status/freshness/capacity/platform; revision-conflict recovery; keyboard order; desktop and 390-pixel containment; exact `Reference execution time avoided` copy; token non-rendering; and zero unexpected console errors all passed; +- final-correction focused activity projection: 9 passed. Both insertion orders produced 6 total workers partitioned into 1 active, 1 stale, 2 capacity constrained, and 2 unavailable; the genuinely checked-out busy worker persisted `busy` with `1/1` capacity, and direct plus HTTP projections agreed; +- final-correction in-app browser QA: the live file-backed synthetic workspace rendered repository/PR and configured reuse/routing policy, the allowlisted capability summary, scheduled and unscheduled quota resets, and no arbitrary capability marker. Strict Playwright then passed 3 tests with zero skips after the timezone-aware reset-preservation correction; +- final-correction public screenshot: `docs/assets/switchboard-validation-command-center.png` was recaptured as a 1232-by-2266 RGB image from the disposable local acceptance app using synthetic public repository, request, worker, routing, and quota data, visually inspected, and contains no token, path, workstation identity, private URL, credential, or financial claim; +- final-correction focused matrices: backend/adapter/startup/routing/reuse/activity passed 104 tests; worker trust/reuse/strict work-order passed 37 tests; the dedicated real `ExecutionClient`/`LocalWorker` fresh-then-reuse test passed separately. The trust proof retained the previously recorded 7 fresh steps, 0 reused steps, distinct source/reused run IDs, immutable source evidence fingerprint, current/stale publication decisions, 1 fresh + 1 reused + 1 avoided totals, 50% reuse, and clean canonical/worker repositories; +- final-correction complete pytest: 587 passed, 5 documented platform skips, and 344 warnings in 516.45 seconds; +- final-correction coverage pytest: the same 587 passed and 5 skipped in 445.40 seconds; aggregate configured coverage was 93%; all 16 gates passed at 95.40%, 94.17%, 100%, 100%, 92.59%, 95%, 87.76%, 100%, 100%, 97.73%, 90.16%, 97.59%, 94.83%, 100%, 90.71%, and 91.30% in workflow order; +- final-correction strict browser: 3 passed with zero skips in 19.14 seconds after the final formatter-neutral test refactor and timezone-preserving profile-edit correction; +- final-correction quality/security matrix: clean Python 3.11 `pip check`, pinned pre-commit, TODO policy, Ruff, Black, Mypy over 178 source files, Bandit 1.8.6 under Python 3.11.14, pip-audit, Gitleaks over 259 commits, Lychee, and `git diff --check` passed. The shared Python 3.14 dependency conflicts remain the documented unrelated baseline and no tool, rule, threshold, or scan was weakened; - corrected complete pytest: 578 passed, 5 documented platform skips, and 344 warnings in 724.68 seconds; - corrected coverage pytest: the same 578 passed and 5 skipped; aggregate configured coverage was 93%; all 16 gates passed at 95.40%, 94.17%, 100%, 100%, 92.59%, 95%, 87.76%, 100%, 100%, 97.73%, 90.16%, 97.59%, 94.83%, 100%, 90.71%, and 91.30% in workflow order; - corrected quality/security matrix: clean Python 3.11 `pip check`, pre-commit, TODO policy, repository-pinned Ruff, Black, Mypy over 177 source files, Bandit 1.8.6 on Python 3.11.14, pip-audit, Gitleaks over 255 commits, Lychee, strict Playwright, and `git diff --check` passed. The shared host retains its documented unrelated dependency and newer-Ruff drift, so no repository rule or scanner was weakened; diff --git a/docs/API.md b/docs/API.md index cef98ea..0ea1420 100644 --- a/docs/API.md +++ b/docs/API.md @@ -206,6 +206,14 @@ linked successful source run's persisted start/finish interval, and comparison units come from the reused run's persisted route estimate. Missing values are excluded rather than guessed. +`GET /api/execution/workers` derives one activity label using safety-first +precedence: unavailable, stale, capacity constrained, then active. Its worker +summary contains only safe typed declarations (OS/architecture, Python/Node, +Docker, up to eight bounded browser names, GPU, Unity, desktop automation, +network posture, and the false repository-write capability) plus bounded profile +and freshness state. It never returns the arbitrary capability document. Profile +summaries distinguish a missing quota reset from a scheduled timestamp. + The command center combines the exact request status with existing bounded `GET /api/execution/work-orders/{id}/route-assessment` and `GET /api/execution/runs/{id}` reads. The former supplies a non-mutating queued diff --git a/docs/architecture/local-execution-broker.md b/docs/architecture/local-execution-broker.md index e268f33..5ef1bd3 100644 --- a/docs/architecture/local-execution-broker.md +++ b/docs/architecture/local-execution-broker.md @@ -270,7 +270,20 @@ run after assignment. This exposes candidate count, reason, hard-pin state, profile revision, quota reservation state, timestamps, duration, cleanup, and reuse source provenance without broadening list responses or returning worker logs. Worker cards render explicit declared status, derived activity, -OS/architecture, capacity, heartbeat/poll freshness, and profile state. +OS/architecture, capacity, heartbeat/poll freshness, and profile state. Derived +activity has deterministic precedence: draining/offline and malformed records +are unavailable; expired heartbeat or poll freshness is stale even when the +worker is busy/full; a remaining busy/full worker is capacity constrained; and +only a fresh valid worker with spare capacity is active. The projection adds +only typed allowlisted Python/Node, Docker, bounded browser, GPU, Unity, desktop, +network, and read-only repository declarations. Arbitrary capability documents +remain redacted. Worker profiles expose the next quota-reset timestamp or an +explicit unscheduled state. + +The selected-request view keeps repository, pull-request number, and configured +reuse/routing policy beside the exact tested SHA and bounded route/run evidence. +These are identity fields from the persisted request/work order, not browser-side +guesses or joins. The browser acceptance uses synthetic completion only to drive visible lifecycle states. It is not a worker trust proof. A separate file-backed acceptance uses diff --git a/docs/operations/validation-command-center.md b/docs/operations/validation-command-center.md index 880abc2..1ef1d8c 100644 --- a/docs/operations/validation-command-center.md +++ b/docs/operations/validation-command-center.md @@ -91,9 +91,20 @@ units, eligible count, bounded reason, and hard-pin decision. After assignment i displays persisted worker/profile provenance, required and reserved quota, reservation state, timestamps, measured duration, reuse source identity, evidence fingerprint, cleanup, and terminal state. Missing values are displayed -as unavailable rather than inferred. Worker cards separately show declared -status, server-derived activity, safe OS/architecture, active/max capacity, -heartbeat and checkout-poll timestamps, and operator-owned profile state. +as unavailable rather than inferred. Repository, pull-request number, and the +configured reuse and routing policies remain visible beside that evidence so the +operator does not have to infer request identity from history. + +Worker cards separately show declared status, server-derived activity, safe +OS/architecture, active/max capacity, heartbeat and checkout-poll timestamps, +and operator-owned profile state including scheduled or unscheduled quota reset. +Activity precedence is unavailable for draining/offline or malformed records, +then stale for expired heartbeat or checkout polling, then capacity constrained +for a fresh busy/full worker, and active otherwise. The capability summary is a +strict allowlist: Python/Node version, Docker, at most eight bounded browser +names, GPU, Unity, desktop automation, network posture, and read-only repository +support. The arbitrary capability document, host identity, paths, commands, +argv, environments, and credentials are never returned to this surface. The request idempotency identity includes repository, stable PR identity, exact head, trusted manifest, authenticated actor, reuse policy, routing policy, diff --git a/docs/reports/status.md b/docs/reports/status.md index 05f35b1..2be3fa9 100644 --- a/docs/reports/status.md +++ b/docs/reports/status.md @@ -45,6 +45,13 @@ acceptance, bounded rollback for unknown preferred workers, and complete route/quota/source/timing plus worker-state visibility. The browser fixture remains UI-only; it is not cited as cryptographic retained-evidence proof. +Connector review `4890873592` required the final presentation and projection +corrections: deterministic safety-first activity precedence with persisted direct +and HTTP proof, visible repository/PR plus configured reuse/routing policy, a +strictly allowlisted worker capability summary, and explicit scheduled versus +unscheduled quota-reset state. The correction preserves routing, reservation, +reuse, evidence, execution, and GitHub adapter behavior. + Operator setup, repository allowlisting, evidence retention, and trust limitations are documented in the [local worker operations guide](../operations/local-worker.md).

Xb9;*;k;yBDmKg2w%te#Vp_^2qa+s;d7 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≧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