From 70d87220aaa9df1f01839e1b0f50c481ee2b014c Mon Sep 17 00:00:00 2001 From: arkon Date: Wed, 21 Jan 2026 03:13:56 +0100 Subject: [PATCH] docs: comprehensive README rewrite for GitHub publishing - Add badges (MIT license, Node.js, TypeScript, tests) - Add table of contents with all sections - Document Ralph Loop with use cases and examples - Document Respawn Controller state machine - Document Inner Loop Tracking patterns - Document Token Management (auto-compact, auto-clear) - Add practical use case examples - Add troubleshooting section - Add FAQ section - Add screenshots of main interface and running session - Remove ASCII art diagrams for cleaner look - Improve code examples and API reference Co-Authored-By: Claude Opus 4.5 --- README.md | 956 +++++++++++++++------------ docs/screenshots/main-interface.png | Bin 0 -> 28023 bytes docs/screenshots/session-running.png | Bin 0 -> 75325 bytes 3 files changed, 539 insertions(+), 417 deletions(-) create mode 100644 docs/screenshots/main-interface.png create mode 100644 docs/screenshots/session-running.png diff --git a/README.md b/README.md index 54cde81c..be96c65f 100644 --- a/README.md +++ b/README.md @@ -1,318 +1,171 @@ # Claudeman -A Claude Code session manager with an autonomous Ralph Loop for task assignment and monitoring. +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) +[![Node.js Version](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen)](https://nodejs.org/) +[![TypeScript](https://img.shields.io/badge/TypeScript-5.5-blue)](https://www.typescriptlang.org/) +[![Tests](https://img.shields.io/badge/tests-195%20passing-success)](./test) -## Features +**A powerful Claude Code session manager with autonomous Ralph Loop for long-running AI tasks** -- **Web Interface**: Beautiful, responsive web UI with interactive terminal powered by xterm.js and modern gradient styling -- **Session Management**: Spawn and manage multiple Claude CLI sessions as PTY subprocesses with one-click kill -- **Interactive Terminal**: Full terminal access with resize support, buffer persistence, and 60fps batched rendering -- **Respawn Controller**: Autonomous state machine that cycles sessions (update docs → /clear → /init) with configurable prompts -- **Enable Respawn on Existing Sessions**: Start respawn on already-running sessions without restarting -- **Timed Respawn**: Set duration limits for respawn loops with countdown timer display -- **Auto-Clear Context**: Automatically send /clear when token count exceeds threshold (default 100k) -- **Token Tracking**: Real-time input/output token tracking per session -- **Background Task Tracking**: Detect and display Claude's background tasks in a tree view -- **Inner Loop Tracking**: Detect Ralph Wiggum loops and todo lists running inside Claude Code sessions -- **Timed Runs**: Schedule Claude to work for a specific duration with animated live countdown -- **Real-time Output**: Stream Claude's responses in real-time via Server-Sent Events (30 event types) -- **Task Queue**: Priority-based task queue with dependency support -- **Ralph Loop**: Autonomous control loop that assigns tasks to idle sessions and monitors completion -- **Time-Aware Loops**: Extended work sessions with auto-generated follow-up tasks when minimum duration not reached -- **Case Management**: Create project workspaces with auto-generated CLAUDE.md templates -- **Cost Tracking**: Track total API costs across all sessions -- **State Persistence**: All state persisted to `~/.claudeman/state.json` -- **Long-Running Support**: Optimized for 12-24+ hour sessions with automatic buffer trimming -- **Resource Monitoring**: Real-time memory/message usage display for each session -- **Multi-Tab Sessions**: Open 1-10 Claude sessions at once for the same project -- **Session Restoration**: Automatically restore screen sessions when server restarts -- **Monitor Panel**: Combined view of screen sessions and background tasks +Claudeman transforms Claude Code into an autonomous development powerhouse. Spawn multiple Claude CLI sessions, run them for hours with automatic context management, and let the Ralph Loop keep your AI assistant productive around the clock. -## Installation +--- -```bash -npm install -npm run build -npm link # Optional: make 'claudeman' available globally -``` +## Table of Contents + +- [Highlights](#highlights) +- [Quick Start](#quick-start) +- [Screenshots](#screenshots) +- [Features](#features) +- [Ralph Loop](#ralph-loop) +- [Respawn Controller](#respawn-controller) +- [Inner Loop Tracking](#inner-loop-tracking) +- [Token Management](#token-management) +- [Web Interface](#web-interface) +- [CLI Commands](#cli-commands) +- [API Reference](#api-reference) +- [Long-Running Sessions](#long-running-sessions) +- [Troubleshooting](#troubleshooting) +- [FAQ](#faq) +- [Development](#development) +- [Contributing](#contributing) +- [License](#license) + +--- + +## Highlights + +| Feature | Description | +|---------|-------------| +| **Web Interface** | Beautiful terminal UI with xterm.js, 60fps rendering, multi-tab sessions | +| **Ralph Loop** | Autonomous control loop that keeps Claude working continuously | +| **Time-Aware Sessions** | Run Claude for specific durations ("work for 8 hours") | +| **Auto Context** | Automatic `/clear` and `/compact` when tokens get high | +| **Real-time Monitoring** | Track tokens, costs, memory, background tasks | +| **Session Persistence** | Screen sessions survive server restarts | +| **Inner Loop Tracking** | Detect Ralph loops running inside Claude Code | + +--- ## Quick Start -### Web Interface (Recommended) +### Installation + +```bash +git clone https://github.com/yourusername/claudeman.git +cd claudeman +npm install +npm run build +npm link # Optional: make 'claudeman' globally available +``` + +### Start the Web Interface ```bash -# Start the web interface claudeman web - -# Open http://localhost:3000 in your browser +# Open http://localhost:3000 ``` -The web interface provides: -- **Quick Start Button**: One-click to create a case and start an interactive Claude session -- **Interactive Terminal**: Full xterm.js terminal with resize support and 60fps rendering -- **Prompt Input**: Enter prompts and optionally set a working directory -- **Duration Timer**: Set duration in minutes for timed runs (0 = single run) -- **Live Output**: See Claude's response in real-time as it streams -- **Countdown**: Animated timer display with shimmer progress bar -- **Session Monitoring**: View all active sessions with status, resource usage, and cost -- **Kill All Button**: One-click to terminate all running sessions and their child processes -- **Resource Display**: Real-time memory usage and message count per session -- **Respawn Controls**: Start/stop respawn controller with configurable settings -- **Case Management**: Create new project workspaces with CLAUDE.md templates -- **Keyboard Shortcuts**: Quick access to common actions (Ctrl+Enter, Ctrl+K, Ctrl+L) -- **Toast Notifications**: Non-intrusive status updates and alerts -- **Mobile Support**: Responsive design optimized for tablets and phones -- **Modern UI**: Gradient backgrounds, smooth animations, and polished styling +### Your First Session -#### Quick Start Button +1. Click **"Run Claude"** or press `Ctrl+Enter` +2. A case folder is created in `~/claudeman-cases/` +3. An interactive Claude terminal opens +4. Start working! -The Quick Start feature reduces the typical 5-step workflow to just 1-2 steps: +--- -**Before (5 steps):** -1. Go to Cases tab -2. Create a case -3. Click the case -4. Switch to Run tab -5. Click Interactive +## Screenshots -**After (1-2 steps):** -1. (Optional) Select a case from dropdown -2. Click "Quick Start" +### Main Interface -The Quick Start button will: -- Create a case folder in `~/claudeman-cases/` if it doesn't exist -- Generate a CLAUDE.md file for the case -- Create a new session pointed to that case directory -- Start an interactive Claude terminal -- Focus the terminal so you can start working immediately +![Main Interface](docs/screenshots/main-interface.png) -#### Keyboard Shortcuts +*The Claudeman web interface with session tabs, terminal, and control panels* -| Shortcut | Action | -|----------|--------| -| `Ctrl+Enter` | Run Claude (create case + interactive session) | -| `Ctrl+W` | Close current session | -| `Ctrl+Tab` | Switch to next session | -| `Ctrl+K` | Kill all sessions | -| `Ctrl+L` | Clear terminal | -| `Ctrl++/-` | Increase/decrease font size | -| `Ctrl+?` | Show keyboard shortcuts help | -| `Escape` | Close panels and modals | +### Session Running -#### Additional Features +![Session Running](docs/screenshots/session-running.png) -- **Multi-Tab Sessions**: Number input (1-10) next to "Run Claude" opens multiple sessions at once, named `1-projectname`, `2-projectname`, etc. -- **Monitor Panel**: Combined view of Screen Sessions and Background Tasks in one panel -- **Session Restoration**: Screen sessions are automatically restored when the server restarts -- **Terminal Font Controls**: Adjust font size with A+/A- buttons in header or Ctrl++/- -- **Copy Terminal Output**: Copy all terminal content to clipboard -- **Session Duration**: View how long each session has been running -- **Working Directory Display**: See the project folder for each session -- **Session Count**: Header displays total active sessions -- **Toast Notifications**: Non-intrusive status updates and alerts -- **Mobile Support**: Responsive design optimized for tablets and phones -- **Help Modal**: Press ? button or Ctrl+? for keyboard shortcuts reference -- **Reconnect Button**: Manually reconnect if connection is lost -- **Confirmation Dialogs**: Warns before starting long timed runs (30+ minutes) +*An active Claude session with real-time terminal output* -### CLI Usage +--- -```bash -# Start a Claude session -claudeman start --dir /path/to/project - -# Add tasks to the queue -claudeman task add "Fix the bug in auth.ts" -claudeman task add "Add tests for the API" --priority 5 - -# Start the Ralph loop to process tasks -claudeman ralph start - -# Check status -claudeman status -``` - -## Commands - -### Web Interface - -```bash -# Start web interface on default port (3000) -claudeman web - -# Use a different port -claudeman web --port 8080 -``` +## Features ### Session Management +- Spawn multiple Claude CLI sessions as PTY subprocesses +- Full terminal access with resize support and buffer persistence +- One-click kill for individual sessions or all at once +- Session restoration after server restarts via GNU screen + +### Autonomous Operation +- **Respawn Controller**: State machine that cycles sessions (update → /clear → /init) +- **Ralph Loop**: Assigns tasks to idle sessions and monitors completion +- **Time-Aware Loops**: Auto-generate follow-up tasks when minimum duration not reached +- **Completion Detection**: Detect `PHRASE` patterns + +### Context Management +- **Token Tracking**: Real-time input/output token counts per session +- **Auto-Compact**: Send `/compact` when tokens exceed 110k (configurable) +- **Auto-Clear**: Send `/clear` when tokens exceed 140k (configurable) +- **Buffer Trimming**: Automatic memory management for 12-24+ hour sessions + +### Monitoring +- **Inner Loop Tracking**: Detect Ralph loops and todos inside Claude Code +- **Background Task Tracking**: Tree view of Claude's spawned tasks +- **Cost Tracking**: Total API costs across all sessions +- **Resource Monitoring**: Memory usage with color-coded warnings + +--- + +## Ralph Loop + +The **Ralph Loop** is Claudeman's signature feature - an autonomous control loop that keeps Claude working on tasks continuously. + +### How It Works + +1. **Assign task** to idle session +2. **Monitor output** for completion signals +3. **Detect completion** via `COMPLETE` or indicators +4. **Mark complete**, assign next task +5. **Auto-generate tasks** if min-time not reached and queue empty +6. **Repeat** until all done + +### Starting a Ralph Loop ```bash -# Start a new session -claudeman session start [--dir ] -claudeman start [--dir ] # shorthand - -# Stop a session -claudeman session stop - -# List sessions -claudeman session list -claudeman list # shorthand - -# View session output -claudeman session logs -claudeman session logs --errors # stderr -``` - -### Task Management - -```bash -# Add a task -claudeman task add "" [options] - --dir Working directory - --priority Priority (higher = processed first) - --completion Custom completion phrase to detect - --timeout Task timeout in milliseconds - -# List tasks -claudeman task list -claudeman task list --status pending - -# View task details -claudeman task status - -# Remove a task -claudeman task remove - -# Clear tasks -claudeman task clear # completed tasks -claudeman task clear --failed # failed tasks -claudeman task clear --all # all tasks -``` - -### Ralph Loop - -```bash -# Start the autonomous loop +# Basic Ralph loop claudeman ralph start -claudeman ralph start --min-hours 4 # run for at least 4 hours -claudeman ralph start --no-auto-generate # disable auto task generation -# Stop the loop -claudeman ralph stop +# Run for at least 4 hours +claudeman ralph start --min-hours 4 -# Check loop status -claudeman ralph status +# Run for 8 hours without auto-generation +claudeman ralph start --min-hours 8 --no-auto-generate ``` -### Respawn Controller (Web Interface) +### Completion Detection -The respawn controller keeps interactive sessions productive by automatically cycling through update prompts: +The Ralph Loop detects task completion through several patterns: -1. Detects when session goes idle (prompt character visible, no activity) -2. Sends configured update prompt (default: "update all the docs and CLAUDE.md") -3. Optionally sends `/clear` command to reset context -4. Optionally sends `/init` to reinitialize -5. Repeats +| Pattern | Example | +|---------|---------| +| Promise tags | `COMPLETE` | +| Custom phrases | `AUTH_REFACTOR_DONE` | +| Common indicators | "Task completed successfully", "All done" | +| Checkmarks | "✓ Complete", "✔ Finished" | -**New Features:** -- **Enable on Existing Sessions**: Start respawn on already-running sessions -- **Timed Duration**: Set a duration limit (e.g., 30 minutes) after which respawn automatically stops -- **Auto-Clear**: Automatically send /clear when token count exceeds threshold (default 100k) -- **Configurable Steps**: Toggle /clear and /init steps independently - -**Configuration via API:** -```bash -# Start respawn with custom config -curl -X POST localhost:3000/api/sessions/:id/respawn/start \ - -H "Content-Type: application/json" \ - -d '{"config": {"idleTimeoutMs": 10000, "updatePrompt": "run tests and fix issues"}}' - -# Enable respawn on an existing running session with duration -curl -X POST localhost:3000/api/sessions/:id/respawn/enable \ - -H "Content-Type: application/json" \ - -d '{"config": {"updatePrompt": "continue working"}, "durationMinutes": 60}' - -# Enable auto-clear at 100k tokens -curl -X POST localhost:3000/api/sessions/:id/auto-clear \ - -H "Content-Type: application/json" \ - -d '{"enabled": true, "threshold": 100000}' - -# Update config on running respawn -curl -X PUT localhost:3000/api/sessions/:id/respawn/config \ - -H "Content-Type: application/json" \ - -d '{"updatePrompt": "refactor the API layer", "sendClear": true, "sendInit": false}' -``` - -**State Machine:** -``` -WATCHING → SENDING_UPDATE → WAITING_UPDATE → SENDING_CLEAR → WAITING_CLEAR → SENDING_INIT → WAITING_INIT → WATCHING -``` - -**Respawn Config Options:** -| Option | Default | Description | -|--------|---------|-------------| -| `idleTimeoutMs` | 5000 | Time to wait after idle before sending update | -| `updatePrompt` | "update all docs..." | Prompt to send when idle | -| `sendClear` | true | Send /clear after update prompt | -| `sendInit` | true | Send /init after /clear | - -### Utility +**Custom completion phrase:** ```bash -# Overall status -claudeman status - -# Reset all state (stops sessions, clears tasks) -claudeman reset --force +claudeman task add "Refactor the auth module" --completion "AUTH_DONE" +# Claude outputs: AUTH_DONE when finished ``` -## Architecture +### Time-Aware Loops -``` -┌─────────────────────────────────────────────────────────┐ -│ Claudeman CLI │ -├─────────────────────────────────────────────────────────┤ -│ Ralph Loop Controller │ -│ - Monitors all sessions │ -│ - Assigns tasks from queue │ -│ - Detects completion/failure │ -│ - Self-generates follow-up tasks │ -├─────────────────────────────────────────────────────────┤ -│ Session Manager │ Task Queue │ -│ - Spawn claude processes │ - Priority queue │ -│ - Track stdin/stdout/stderr │ - Task definitions │ -│ - Health monitoring │ - Dependencies │ -│ - Graceful shutdown │ - Status tracking │ -├─────────────────────────────────────────────────────────┤ -│ State Store (JSON file persistence) │ -│ - Sessions, tasks, logs │ -└─────────────────────────────────────────────────────────┘ -``` - -## Completion Detection - -The Ralph Loop detects task completion by looking for: - -1. **Promise tags**: `COMPLETE` or custom phrases -2. **Common indicators**: "Task completed successfully", "All tasks done", "✓ Complete" - -When creating tasks, you can specify a custom completion phrase: - -```bash -claudeman task add "Refactor the auth module" --completion "AUTH_REFACTOR_DONE" -``` - -The session output will be scanned for `AUTH_REFACTOR_DONE`. - -## Time-Aware Loops - -For extended autonomous work sessions: - -```bash -claudeman ralph start --min-hours 8 -``` - -When the minimum duration hasn't been reached and all tasks are complete, the Ralph Loop will auto-generate follow-up tasks like: +When the minimum duration hasn't been reached and all tasks complete, the Ralph Loop auto-generates follow-up tasks: - Review and optimize recently changed code - Add tests for uncovered code paths @@ -320,201 +173,470 @@ When the minimum duration hasn't been reached and all tasks are complete, the Ra - Check for security vulnerabilities - Run linting and fix issues +### Use Cases + +**Overnight Code Review** +```bash +claudeman ralph start --min-hours 8 +claudeman task add "Review all code in src/ for bugs and improvements" +claudeman task add "Add missing tests for edge cases" +# Let it run overnight +``` + +**Feature Implementation Sprint** +```bash +claudeman task add "Implement user authentication with JWT" --completion "AUTH_DONE" +claudeman task add "Add login/logout endpoints" --completion "ENDPOINTS_DONE" +claudeman task add "Write integration tests" --completion "TESTS_DONE" +claudeman ralph start --min-hours 4 +``` + +**Continuous Documentation** +```bash +# Start a session and enable respawn +claudeman web +# In web UI: Start session, enable respawn with prompt: +# "Update documentation for any changed files, then update CLAUDE.md" +``` + +**Parallel Development** +```bash +claudeman web +# Create 3 sessions working on different modules +# Session 1: Frontend components +# Session 2: Backend API +# Session 3: Database migrations +``` + +--- + +## Respawn Controller + +The **Respawn Controller** keeps interactive sessions productive by automatically cycling through update prompts. + +### State Flow + +**WATCHING** → **SENDING_UPDATE** → **WAITING_UPDATE** → **SENDING_CLEAR** → **WAITING_CLEAR** → **SENDING_INIT** → **WAITING_INIT** → **MONITORING_INIT** → back to **WATCHING** + +Optional: **SENDING_KICKSTART** → **WAITING_KICKSTART** if /init doesn't trigger work + +### States Explained + +| State | Description | +|-------|-------------| +| `WATCHING` | Monitoring session for idle state | +| `SENDING_UPDATE` | Sending the update prompt | +| `WAITING_UPDATE` | Waiting for Claude to process | +| `SENDING_CLEAR` | Sending `/clear` command | +| `WAITING_CLEAR` | Waiting for context to clear | +| `SENDING_INIT` | Sending `/init` command | +| `WAITING_INIT` | Waiting for initialization | +| `MONITORING_INIT` | Checking if work started | + +### Configuration + +```bash +# Start respawn with config +curl -X POST localhost:3000/api/sessions/:id/respawn/start \ + -H "Content-Type: application/json" \ + -d '{ + "config": { + "idleTimeoutMs": 5000, + "updatePrompt": "continue working on the current task", + "sendClear": true, + "sendInit": true + } + }' + +# Enable with timed duration (120 minutes) +curl -X POST localhost:3000/api/sessions/:id/respawn/enable \ + -H "Content-Type: application/json" \ + -d '{ + "config": {"updatePrompt": "keep improving the code"}, + "durationMinutes": 120 + }' +``` + +### Options + +| Option | Default | Description | +|--------|---------|-------------| +| `idleTimeoutMs` | 5000 | Time to wait after idle before cycling | +| `updatePrompt` | "update all docs..." | Prompt sent when session goes idle | +| `sendClear` | true | Whether to send `/clear` after update | +| `sendInit` | true | Whether to send `/init` after clear | +| `kickstartPrompt` | null | Optional prompt if /init doesn't trigger work | + +--- + ## Inner Loop Tracking -When Claude Code runs inside a claudeman session, it may run its own Ralph Wiggum loops or use the TodoWrite tool. Claudeman automatically detects and displays this internal state. +Claudeman detects when Claude Code runs its own Ralph Wiggum loops or uses TodoWrite internally. -### What's Detected +### Detected Patterns -- **Completion Phrases**: `COMPLETE`, `TIME_COMPLETE`, etc. -- **Todo Items**: Checkbox format (`- [ ]`/`- [x]`), indicator icons (`☐`/`◐`/`✓`), status parentheses -- **Loop Status**: Cycle counts, elapsed time, loop start/completion +| Pattern | Example | +|---------|---------| +| Completion phrases | `COMPLETE` | +| Todo checkboxes | `- [ ] Task`, `- [x] Done` | +| Todo indicators | `☐ Pending`, `◐ In Progress`, `✓ Complete` | +| Iteration patterns | `Iteration 5/50`, `[5/50]` | +| Loop commands | `/ralph-loop:ralph-loop` | +| Completion messages | "All tasks completed" | + +### Session-Scoped + +Each session has its **own independent tracker**: +- **New session** → Fresh tracker +- **Close tab** → Tracker state cleared +- **Switch tabs** → Panel shows tracker for active session ### UI Display -A collapsible panel appears below session tabs when inner state is detected: -- **Collapsed**: Shows loop status and task summary (e.g., "🔄 Loop: TIME_COMPLETE (2.3h) | Tasks: 3/5") -- **Expanded**: Shows full todo list with status indicators +A collapsible panel shows: +- **Collapsed**: Summary like "Loop: TIME_COMPLETE (2.3h) | Tasks: 3/5" +- **Expanded**: Full todo list with progress ring ### API ```bash -# Get inner state for a session +# Get inner state curl localhost:3000/api/sessions/:id/inner-state + +# Reset tracker +curl -X POST localhost:3000/api/sessions/:id/inner-config \ + -H "Content-Type: application/json" \ + -d '{"reset": true}' ``` -Returns: -```json -{ - "success": true, - "data": { - "loop": { "active": true, "completionPhrase": "COMPLETE", "cycleCount": 5, "elapsedHours": 2.3 }, - "todos": [ - { "id": "todo-abc", "content": "Research existing code", "status": "completed" }, - { "id": "todo-def", "content": "Implement feature", "status": "in_progress" } - ], - "todoStats": { "total": 5, "pending": 2, "inProgress": 1, "completed": 2 } - } -} +--- + +## Token Management + +### Token Tracking + +- **Interactive mode**: Parses tokens from Claude's status line +- **One-shot mode**: Uses `--output-format stream-json` +- **Estimation**: 60/40 input/output split for interactive + +### Auto-Compact + +Automatically sends `/compact` when tokens exceed threshold: + +```bash +curl -X POST localhost:3000/api/sessions/:id/auto-compact \ + -H "Content-Type: application/json" \ + -d '{"enabled": true, "threshold": 110000}' ``` +### Auto-Clear + +Automatically sends `/clear` when tokens exceed threshold: + +```bash +curl -X POST localhost:3000/api/sessions/:id/auto-clear \ + -H "Content-Type: application/json" \ + -d '{"enabled": true, "threshold": 140000}' +``` + +| Feature | Default Threshold | Action | +|---------|------------------|--------| +| Auto-Compact | 110k tokens | `/compact` | +| Auto-Clear | 140k tokens | `/clear` | + +--- + +## Web Interface + +### Keyboard Shortcuts + +| Shortcut | Action | +|----------|--------| +| `Ctrl+Enter` | Create case and start session | +| `Ctrl+W` | Close current session | +| `Ctrl+Tab` | Switch to next session | +| `Ctrl+K` | Kill all sessions | +| `Ctrl+L` | Clear terminal | +| `Ctrl++/-` | Adjust font size | +| `Escape` | Close panels | + +### Multi-Tab Sessions + +1. Set the number (1-10) in the tab count stepper +2. Click "Run Claude" +3. Sessions named `1-projectname`, `2-projectname`, etc. + +### Monitor Panel + +Combined view of: +- **Screen Sessions**: All GNU screen sessions with status +- **Background Tasks**: Tree view of Claude's spawned tasks + +### UI Features + +- 60fps rendering with batching +- Auto-focus for single sessions +- Scroll preservation when expanding panels +- Toast notifications +- Mobile-responsive design + +--- + +## CLI Commands + +### Sessions + +```bash +claudeman start [--dir ] # Start session +claudeman list # List sessions +claudeman session stop # Stop session +claudeman session logs # View output +``` + +### Tasks + +```bash +claudeman task add "" [options] + --dir # Working directory + --priority # Priority (higher = first) + --completion # Completion phrase + --timeout # Timeout + +claudeman task list [--status pending] +claudeman task remove +claudeman task clear [--all|--failed] +``` + +### Ralph Loop + +```bash +claudeman ralph start [--min-hours 4] +claudeman ralph stop +claudeman ralph status +``` + +### Server + +```bash +claudeman web [-p 8080] +claudeman status +claudeman reset --force +``` + +--- + +## API Reference + +### Sessions + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | `/api/sessions` | List sessions | +| `POST` | `/api/sessions` | Create session | +| `GET` | `/api/sessions/:id` | Get details | +| `DELETE` | `/api/sessions/:id` | Delete | +| `POST` | `/api/sessions/:id/input` | Send input | +| `POST` | `/api/sessions/:id/resize` | Resize terminal | +| `POST` | `/api/sessions/:id/interactive` | Start interactive | + +### Respawn + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `POST` | `/api/sessions/:id/respawn/start` | Start | +| `POST` | `/api/sessions/:id/respawn/stop` | Stop | +| `POST` | `/api/sessions/:id/respawn/enable` | Enable with timer | +| `PUT` | `/api/sessions/:id/respawn/config` | Update config | + +### Inner Loop + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | `/api/sessions/:id/inner-state` | Get state | +| `POST` | `/api/sessions/:id/inner-config` | Configure | + +### Auto Context + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `POST` | `/api/sessions/:id/auto-compact` | Configure | +| `POST` | `/api/sessions/:id/auto-clear` | Configure | + +### Monitoring + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | `/api/events` | SSE stream | +| `GET` | `/api/status` | Full state | +| `GET` | `/api/screens` | Screen list | + +### Cases + +| Method | Endpoint | Description | +|--------|----------|-------------| +| `GET` | `/api/cases` | List cases | +| `POST` | `/api/cases` | Create case | +| `POST` | `/api/quick-start` | Quick start | + +--- + ## Long-Running Sessions -Claudeman is optimized for extended autonomous sessions (12-24+ hours): +Optimized for 12-24+ hour autonomous sessions. -### Buffer Management +### Buffer Limits -To prevent memory issues during long runs, buffers are automatically managed: -- **Terminal buffer**: Max 5MB, trims to 4MB when exceeded -- **Text output**: Max 2MB, trims to 1.5MB when exceeded -- **Messages**: Max 1000, keeps most recent 800 when exceeded +| Buffer | Max Size | Trim To | +|--------|----------|---------| +| Terminal | 5MB | 4MB | +| Text output | 2MB | 1.5MB | +| Messages | 1000 | 800 | +| Line buffer | 64KB | flush 100ms | -### Performance Optimizations +### Performance -- **Server-side batching**: Terminal data batched at 60fps (16ms intervals) -- **Client-side batching**: requestAnimationFrame for smooth rendering -- **Aggressive process cleanup**: SIGKILL with process group termination +- Server batching at 60fps (16ms) +- Client requestAnimationFrame batching +- Debounced state saves (500ms) +- Aggressive process cleanup -### Resource Monitoring +### Best Practices -Each session displays real-time resource usage: -- Memory usage (terminal + text buffers) -- Message count -- Color-coded warnings (green/yellow/red based on usage) +1. Enable auto-compact (threshold below auto-clear) +2. Use screen sessions for persistence +3. Monitor resource usage indicators +4. Commit frequently in Ralph loops +5. Plan for periodic breaks -### Kill Sessions +--- -- Click `✕` on individual session cards to terminate -- Click `Kill All` button in sessions panel to terminate all at once -- Sessions are forcefully killed with SIGKILL after SIGTERM timeout +## Troubleshooting -## State Files +### Session Won't Start -State is persisted to `~/.claudeman/`: -- `state.json` - Sessions, tasks, config -- `state-inner.json` - Inner loop/todo state (separate file to reduce write frequency) -- `screens.json` - Screen session metadata - -Main state file structure: - -```json -{ - "sessions": { ... }, - "tasks": { ... }, - "ralphLoop": { - "status": "running", - "startedAt": 1234567890, - "minDurationMs": 14400000, - "tasksCompleted": 5, - "tasksGenerated": 2 - }, - "config": { - "pollIntervalMs": 1000, - "defaultTimeoutMs": 300000, - "maxConcurrentSessions": 5 - } -} +```bash +which claude # Check CLI available +claude --version # Check version +screen -ls # Check screen sessions +pkill -f "SCREEN.*claudeman" # Kill stuck screens ``` +### High Memory Usage + +```bash +curl localhost:3000/api/sessions/:id # Check buffer sizes + +# Lower auto-clear threshold +curl -X POST localhost:3000/api/sessions/:id/auto-clear \ + -d '{"enabled": true, "threshold": 100000}' +``` + +### Respawn Not Working + +1. Check for `↵ send` idle indicator +2. Verify respawn enabled via API +3. Check respawn state is `watching` +4. Increase `idleTimeoutMs` if needed + +### Screen Issues + +```bash +screen -ls | grep claudeman # List screens +screen -X -S claudeman- quit # Kill specific +pkill -f "SCREEN.*claudeman" # Kill all +``` + +--- + +## FAQ + +**Q: How long can sessions run?** +A: 24+ hours. Buffer management keeps memory stable. + +**Q: Does it work with Claude Code hooks?** +A: Yes! Claudeman spawns real Claude CLI processes. + +**Q: Can I run multiple sessions?** +A: Yes, up to 50 concurrent sessions. + +**Q: What if the server restarts?** +A: Screen sessions persist and auto-restore. + +**Q: How does token counting work?** +A: Parses Claude's status line (e.g., "123.4k tokens"). + +**Q: Custom completion phrases?** +A: Yes! Use `--completion` flag or `PHRASE`. + +--- + ## Development -```bash -# Run in development mode -npm run dev -- start - -# Build -npm run build - -# Clean build artifacts -npm run clean -``` - -## Testing - -### Unit Tests +### Setup ```bash -npm run test # Run all tests once -npm run test:watch # Watch mode -npm run test:coverage # With coverage report -npx vitest run test/session.test.ts # Single file -npx vitest run -t "should create session" # By pattern +npm install +npx tsx src/index.ts web # Dev mode +npm run build # Production +npx tsc --noEmit # Type check ``` -### E2E Testing with agent-browser - -The project uses [agent-browser](https://github.com/vercel-labs/agent-browser) for end-to-end testing of the web interface. This tool provides browser automation via accessibility tree snapshots and element references. - -#### Installation +### Testing ```bash -npm install -g agent-browser +npm run test # All tests (195) +npm run test:watch # Watch mode +npm run test:coverage # Coverage +npx vitest run -t "name" # By pattern ``` -#### Running E2E Tests +### Test Ports -1. Start the web server: -```bash -npm run dev -# or -claudeman web -``` +| Port | Test File | +|------|-----------| +| 3099 | quick-start.test.ts | +| 3102 | session.test.ts | +| 3105 | scheduled-runs.test.ts | +| 3107 | sse-events.test.ts | +| 3110 | edge-cases.test.ts | +| 3115 | integration-flows.test.ts | +| 3120 | session-cleanup.test.ts | -2. Kill any existing screen sessions (clean slate): -```bash -screen -ls | grep -oP '\d+\.\S+' | xargs -I{} screen -X -S {} quit 2>/dev/null || true -``` +--- -3. Run tests with agent-browser: -```bash -# Open the app and take initial snapshot -npx agent-browser open http://localhost:3000 -npx agent-browser wait --load networkidle -npx agent-browser snapshot -npx agent-browser screenshot /tmp/claudeman-test-initial.png +## Contributing -# Test font controls -npx agent-browser find text "A-" click -npx agent-browser find text "A+" click +1. Fork the repository +2. Create feature branch (`git checkout -b feature/amazing`) +3. Write tests for new functionality +4. Ensure tests pass (`npm test`) +5. Commit with conventional commits (`feat:`, `fix:`, `docs:`) +6. Open Pull Request -# Test tab count stepper -npx agent-browser find text "+" click # Increment -npx agent-browser find text "−" click # Decrement +### Code Style -# Test session creation -npx agent-browser find text "Run Claude" click -npx agent-browser wait 2000 -npx agent-browser snapshot +- TypeScript strict mode +- ES2022 target, NodeNext modules +- Pre-compile regex patterns -# Test Monitor panel -npx agent-browser find text "Monitor" click -npx agent-browser wait 500 -npx agent-browser snapshot +--- -# Cleanup -npx agent-browser close -``` +## License -#### E2E Test Skill +MIT License - see [LICENSE](LICENSE) for details. -A skill is available at `.claude/skills/e2e-test.md` that documents the complete test plan with all test cases and expected results. Run it with Claude Code: +--- -```bash -/e2e-test -``` +## Acknowledgments -#### Key Test Areas +- [Claude Code](https://claude.ai/code) by Anthropic +- [xterm.js](https://xtermjs.org/) for terminal rendering +- [Fastify](https://fastify.io/) for the web server +- [node-pty](https://github.com/microsoft/node-pty) for PTY +- [GNU Screen](https://www.gnu.org/software/screen/) for persistence -| Area | What to Test | -|------|--------------| -| Initial Load | Header, tabs, font controls, connection status | -| Font Controls | A-/A+ buttons positioned left of connection | -| Tab Count | Stepper with −/number/+ buttons | -| Session Creation | Tab appears, terminal shows Claude starting | -| Session Options | Modal with respawn settings | -| Monitor Panel | Screen sessions and background tasks display | +--- -## Requirements - -- Node.js 18+ -- Claude CLI (`claude`) installed and available in PATH +

+ Made with care for autonomous AI development +

diff --git a/docs/screenshots/main-interface.png b/docs/screenshots/main-interface.png new file mode 100644 index 0000000000000000000000000000000000000000..4a3498a5f667fbfb281c54d5b1632ca3e920369a GIT binary patch literal 28023 zcmeFZcT`hP_cw|K5dl$As(@b=kPgzjiilFBcY^d5daoh^(p9QdsR2SjdM9+G3jqQN z5PE>nI|&Il`23!A?|a{M?_ckF%UaK0=d781_SrMDXYZNM-ZPQ!)fB02G2S8}A)$Kr z_O&Jn2`TaQ>YtleiH{eoN>@lo?vT8D{ZiW}V{?`wK-)X>;$mlpBf-)Q%JKB+m3ueu z{0tM-zx9A?V$RW_2?(D>cus7W1e+Y8%S?_y;3Kqi3j|YE>*W9phA8p27;yn}9#y~p zY23m4G~}y4JN%tByZc3U!_yx#9CVL%17%o&sTmUPPVUxjbLaznR-US=>I0%ABqYY` z)t4fXkdPN$N*J!Ju1-htk^A-ov&+Jd_iwgcK1n$5d?boos9vCHC(NkxwSMt5wAr+L zUyGz|C7y(mghW79X>DTNW3m6itz-Kd#Fke=$Q9!&^*3orNZN!sYXJX{`A*(%ONzZE za9LpTZ78ev=}6ku`pUb1`9>0Xq|l|k7`cB!ex3L`mv0P}q5&IV0Dc4IJScSY_1~Y6 zkfdBwb=%vZ;yzFbiLiDr-B)*vn*K@NwXnieW|a7bHfx+mI7Am6Y_TO5DEsnIShjUN z)Pl;KmY$M3OaG$nMrM)pS@2GYUG?R-7~dU(!H@{V^^csedwuUeH#ib?fsgP`RH}XBz7~-8dOiYY<<3UKmh@u4m#Ab>x&BSe4Nkf6+#N_yay0coJp#PlhKlJMhS|Tu`PZHsOWSMt?R9*z%+tkS$|U`AVcL~`zR8-feaXhO67`8% z|HWGaw-mNU4Z$O+2DMW&9@QnVCwF85Hx|LP>4vvi%eG)P{6@u&gV#U-6y;p1JG-+tH4!s^cGbI!py2R>5@P-prf0i zuBq1}3jYmiX1gYmbv>g**IxdVGCrY3Fb3eWHbq#XQPAD`ewOY3cFIc>J_*EPn;3^Z zj%WwtnML)j-uAuIYcft?Hdm{pOv|rCZkt*J=Um0k50ICbzeu05D9}{zJ2TRKmslX| ze+~FS55m(oCc1@kwdG=y%kIq+O^-EHH?EvpTG#V>l&xOuxFt7Ai?}xK+R*>3XIVV3 zj$`_nbZf&8b9QU4`t3rh0W|1KRk`%h`MR0Ars{sKYC8A6dCl-DzT8>PoWVbVVP6;3 z?CM)NX#ttr>o0Tna{dL}E2QF1IuKCvKloPX9dpu8p=u$(Ag$*7%I}k|k0e(ev~lV5 z&-Z8CbqlNM{V-KK>(D|)`f9Z%_enKR26NqD?{}_8#TNm;)6UOU>dv#zdvGJB!>S&6 z6m5cVS`@Pq6fc7d3fRa@X_TZ2&(K*f=sq?DeTjc4BDS?8XVh5RabG%exmMRmoseUX zTw>1bxAiVR1;`BuMrVob%pCMLwWc0LLysLlME%-18!zK^_W3N~)$QHCQ_tJSvxzp9 zG?FPjYZOIqht&nh3PGnV@0mK(SY5=&LkZtIpNyZO3~=hf*^m4Xa{&mG{k}otQE!id zV!9wl)r<2*BiSDb+r6xU)_;ZO^(6>{c6> z&iU$0;?NIr-x~=i;J&{_Vs;13(n;$1UAd%xTIWaF#Ip!2&MU5aV7U#+QmrQ2xDoUL z4sW_MC|U)o+K&&O^5T2!!1>K_2Xn;6q#G6_LRZdrS8;AGJ*YE{?Wml!^0l0lIv~3@ zBXupBCNQu}5I%(7sB)l5(um;$o4i&nP%{V$-iU&VSn-S%g}uqsBn!I1@=UJf_&5tO zJ5heoHX$X|J4NGUQw|~gj$6fwz^%f_YzNukI$c?QN0Cp4zo$C^>hcNQ@|k%6yWfU^ zChtb#Y)l>1itF9w6-<%o=+}FNLtqhHcJQJPNT7feQ=0PGj!+0~X?dzE!JS`|>9=yW z1%iBw-r17Iud=ovaL)WtjL^y}WbpA3C`(ROnL)=WqqcOa0-aOX$Ou?k@^r}h&COZn zAT2!Ud)Ixjw=UQ=&~$#`(-v!s;+ILl4tBi`ayv&2+O$k?UZ%^(8G36wpZTeJTGkna z<}6F;&9+oJ41{v1i991+jxi#Pe6Ink)WH5qoa`-@8!_6BHd>t-`t$EDhoOS_rF~;V)4G7{=%okVOW=p zrRd4EU!t?dzh2uwwh!pX_k7viUHj7_^lZMET$}-FBUkU}Z-H6sIrw(#0V(by-#_J` z$Jet>&(3xV$(FpK6L!LMHcsbO=4yznURKsqrMGWUr)Rr)R>9E1Q_(t36FS1t!2mOv zw+t?vqfory(Gb#bOM5jb1C&_q{#>`)&VMd&VRl#8!|Dt(&^#$x_f~Ax$<)m|5YFE^ zt9sx>RAiIFjPA3F4g)>kc^7;8(Wug~uy?%(8;(FmP4}czBiKsc@ZA)92J37?hcUlR zyoE^Z1mlpayvlC3{}Ei%VPx$>y@E zzoVqH+T$?89(%F?NG}wYs*!xiWs?>XabSo6L&BREf7^xM?pJV;WenBKjVakcALus) z7B{SC4U6izxw%BfGAK`4^Nj5M z#e|L6&RU_vo>s@~$2(LvT8sp}91JI~tAe?eH46Ejm9$?8KRhEpu4`i2=fF6HZs zmKn2SK9h`<;8#c1)=h7F`hhVr>8l`mNmb>_=81A$GFauTrd-&;l`5r#uSpNZNee&M z)rR6qGqM3`Lk3je(&BHsBYH2S3S5;V zbm-lZ(iU?n*qye5J`91&W9+XoyKkN2px?%@OEOTId?Rd9!AT%|FFGPkva?+9esID0 zc2ujLtf$gD=wsfMH~`-e(aM8^w_N~6ZWrDuwYsbb*0%#`%hKpcDQX=K%V2EecTAmU z^DnJp5G|_m<)*JKF3WpXPr^ajE9>aUkHtc|r^!Kgm@;YcYGpEx+)UNu&p{(H2= z*ukJfYlWj#7Q2nR(*9CyWQU~_0y`9P=z#J+q@&K-G1fe6uu-CT#i74AC&s$nHcgN2M#V zs{dzTC#+%Rk9U^t#-JcWcj5Bl<`AlHM1=jmvw$6nc})n0syHeO+|lk0JdJm7=7m|7 z3imQKGN&j|yAjp(#CGvOe!8k8XJAYR+3;8b@=JKDZJXBF{*2kXeBjo@&k`8Z;Nt?J z7V{{NzJ~SOEtNVXo!F3-3)K(wzLG!Pt@`wH=d_|{~FrByX)9}uP&9AEoF>uLDVNir%l!$BSDOLLqg&C#+ev zNEalp6{4{A{kaHl+qQ|yl*Sgg}y3;Vq zv}F(Z7?)#~jW}$yaKCJuhVu)cQ-2RDUxVz-bx9SQKkJkof`oDN{qJKmiNUj;{03L4 z`l)LkO1AzoOJd(OF5%?h-7PQ9JzuC=kuQHIls@!0;{YdhEHgW*3l!JeF-ZX3o#2%M zRMs+hKy-8RZ8Hr(G#jZ72RlJNKgkd01ForuK__M=cqfQ{yUPHiFpXuj`e8w-rSD4I zXWV3T53;kKrcNR03n=CCF+Envxs5|bC}k|4 z-oW<7$-%5UnEKa<#YwTMU(J`d?K!e-s>i!`YWV+L7f$_k^+FLTBa-2dU--ox&eir< zSXx}E{`n>~l^$s?1J4IjZBtCKUXY31iEY9`vh&n0UmY~-alF&wX3fLtJwKzqv4nFZkVo(+Ez~DhwxxcN090H7I-41kaBag zLKrDyRp>GYr>7arak~4){ipcD-wG@s_>!w=jpwj^`1+nNrTs~})`h8`QhvcKM}QO9 znTt+Ai~EPNzD!O^Jwz@3pT3Nrw7`A?7TBkx{!dJ__c6z0n9@cMc{fw+HJm#Oy^m{W z)5eQ)T3N+(vHQqPwVL5Or>7^|r3fr$F&1EeYst1N^;ahx=cH{E8NwB5K4xy$wjnbf z#kdx5Q~BSP=rQ@w@?pJGSxom?0g~X(Ke-vuX|NkV08g>|EGVAcF80``Ljjz>s6pc* zB@eKW_3mn-HPrF;Tq3l{%g;`3t6|y}rDj`XLg@Ui8YwPqSCDblg}Z=nLY_BO=cl(C zHS+NPi8%WM6N!lHHNMCkBPH)d13e=!EjigKr6F=8B=zTERW|4fbls+{2dRBUff%Ze z6To0=FCBc^a3RZ6I5KN+M93;>d!l1Zs3Z-?_E(f&m05UhT#}qYvp3y@3~V4J?F+2Q zWNCS~QxPw@cIb;W+0ahV1s*XhRrm9cJ~cx}+gMzb`3S6rbG77DI*WrN-+$9&3uwJt)j+{b3^2Z%6&`o1YX0Jc3BEJrv;CFKBD)~)t41eT zORBpx%1z222UIH`eUy=z>E%A}r#oEnI2VN4xZB5AUITOb9W~(t^h(j1>N@|dUvRZ) zshC6387iS{%*d!Ux6dS6HUNtvSi1jGLT^dbT$s&mH0#^IT9<(BC$nF_vVbRg%9_rs zx8j(|Mht8~yb+ya=sQ0ed^e~W0}zMxmZ41*K&7q60k^?MDb_b1(0SUq3Mzf4uo81X zWjVJraX6o$0i0w0=_KXLHo95J5*;R z;B1r3f2*U2Az&D`MDD~T@AlIgGBllG$>P(mftr}4NevqIb8mjh`Gg~hmb&>@OF3^f z0Y4cSpE0#R(tgouQe|VL=y1r~G!(u(KggIRyFXZ$uBMCgn0dlT1ONom@;kXWD>HSPI%A!T)Xt)G?_R( z{5 zGb2qjzn9*H-QBp>{7+Ht({~(&przdeUgzM>X$`h;EJ<|xn?FuQiU&Cm5a6sVl}!sd zJX~8P6Mp7P&KN7<9Q5hPv4!_gQhu_ZiYYliOf&;-2-tbYKm6Q|a=qIZQCP*S=74vN z&dKND|HWi043lPh&J<(E*3B7m#&n>Yl+W-<*{Egd%qH7!<4jCmby>uY4ICAU|Exuu zxZE8zy(lqPS&n$$JpIt(J$fejhcW8c#h=&NQtD9HKa>p(p}245?uyDbe#iYuhHS5B zQJJ|ibJ}#RHM@Fn8lruN_Qh%*3h&ZsY_~c@j)lD}T8AnzerMK^Z7d^mH zI|RE|&Zda5#T*XiBj#9{GfwiJB)Jy83#P|x{EIP~p;o9Sd_j6FXC2@utogR0pI^I~ zL$oPom=#`rYGtZqur9YX;9PTBZRg5K-qE^*S7eF7-g8TC6*`(5yRN!DtGpw2(yeVt z_kNy;oYBS9;pcaPf?T@3q6xU4sgh90-tVj)*DMTJYCj}(^tn$HSDmaO=W5gofxRvY=Hn-PqzbKq0^LaDKR(CO^dT=e4%YT>!Rf9MC ziLYYEG~#vuG}5nIF9rtEYvqn2o`g&-)nv*{xOWyJm9fa%JKGu3l#K{=W+!U7V|@o| zG88T^m|;!;YO#CT3N3h!oxBwU=v@FMU33-L7>v(QH+#R_X)Pw5~_KJaMwXM07 zy0cm`Ju>G|j{q|*hVOJdoD~y0QY<_b-0EAho(DZRR?4{>>qql!lJnEV*h*S^>5TiF8xZs%u4-Z*yT0Ww}Oi;jF|d3}{>|21-+$czAX5{zy%u^K#NE!%%pfeDE(?R00d%RjEwY0Q^S- zp4obde=KyAFmqUWnQ88U4)iZSfaEcE=m8NxNTE%Ce(x%LQL+wVh0@Y$c$GAP9Zrc) zg=$sSKDJu{Hs-}=OZuIBw;DaMCBkJSe6*N7bg*kcmw@xZHYljt|FGT^*Dzb2MMK{c zge?GMun3kO9M;+>-qsR5Vhsn{+u#Z4;Hu!$>NM&W?D#*f#nb8WtoF2vD(c7QO-f2m zegfdlT|#K@i0Cxs`oVxM#8g)9CATB!cw5HfpT=iKrT!NmM&_O=dij+=ThL%s+{0xD zq}w9MNR5&Sl5)SUJ><;_n zimW__I|m=fD@xjwWBu70KT}N;k)KD*WBdXprl6XtDwIW05dLfnO*!BUy$F|v*dk8` zS&xq`f%TZ<=cA)Ab!_JKEA)SR?%FVRc7)&t?ZIf9m$i?5pz$TIt;G@-Q$gE9HbD(W z;+e~+K3kPS2|tFmfv_QK8WNKE{(DSJOhef|HHLxjb{zcnPVoeWIXGF{=B~dyeDWC4 zD1~ceRA-ihZ|vTP@W)?G$i4a(`3^B!eM|F^^rJ*K(s%nUsO`RjC#xAziWt!<{}xlV zWdkh|JyEVUVhJpNTw&I!?oFNsX(V@?+}n3h?T=TC8UAAIFwj%^_}(X%8242oNKT9r z+`4Xd`TV~z_##a$txJ%eghWpg=;zn?_jO(g6cry&_xIg+eeD`iBodOZpL)y$ZVswq zGY*@e^=mzvquLYjrF)lE9~n}IZvFC`=oFK|ev~*=#(|}FF8thkH@ieVr}dlz_N(4i zNe&IXwC^9H<}tJ!ZE31$DAQAkkR>>0H>^{vq|Nh}wV-B>Cs4>QW0wr`g||o^vijrc z%CQ~2&u@(ht107#A&NnJ2gikhplp$+*8C#?s6Kz0O6M!WBXneFHukm7gt1C8o-AAL z*fG|3y|JUf?r#v{sb~vHX?)9GL^{j#{XA(8L*}yT@p#8U1lAVWE(Q+XFVuvnwzysU zwFX?1)Ln|DYb?zbm!H>jh=3to$3$DMZgm+es?9;?^Ha%Fn)XjPxa)f6aIaz{A2#f%77F00fHq_GH;VFL9gn$z<7K~S{ zkoUKQBRqOC_$g#(zKl>RQan9eCKg1PqYgsOif#LymIO7OXh9!57QrC-%b{#T*nT+R zqAv(=+V?^yV1-UL`9WEfobMWky4Pn$NA$%O)d;~MT-ZWIb7RwU-Jl;TG7%4?vR2Rw zUP)&jq7fyTL|e|fx%)NO1fq`{Luv83sw)?`g_%~#5lJR$F zmbwySSU^1(o^kk%pN}sI#<5I zrL}hU%KC3nc;jb7dV}=vn+cxiL^nG--4NfIy(0w!v1I$tRro#}K;M50bKyHBwHxEK z&U`@2@EUeGX}YAcTRf2$b1V1k47^S0z!cILnd4=g+%#h4exTIF0lqg8G}v?hAm4q* ze+AE_7FBu)SL+6YV>g&1SNMEs)$MJ$wJaoNKf$oo$cQn^iQs+ab{oeQ}deu z?rVG#UejW~*;eezsr1`v&8KdX*AJ2u0nC*auQkn1Vp{Xh2t2@wImM+0ebWdQKcC`E ztS+TdbKVWdP5^o~$qfH66CLn4J768|xeIxJo-eG$D9!+*Y)#ZP%#HF`uW zI&|wAg)TCn^q(2_=?STEao@wM6oRg>6+v2`8BfQ*2I=EEshM+m4T^Jd(Ot7@D0XOR z1^gRH(F;1?>I6^HakBk6&MeQIHApyZgYrESD6$!otvhkq%2vPKqrKB$f-kFBs(zC# zzCP1Z0Ab%*7OVEgI@ib%5@DWv{d#yG?tCcXkLHlZ5&SZdUr# z*fX1}X28aFmroew-N(^g zHWI*X&m|t`Qm5vIk;i%#dR3KeH}obZJE1pCXqC$c_$R!LGp=r)8j1f#+URigU=wH7 ztG90u74jo@M|IkZ6XvoYN8GuhXg5!z_w0eUI3iPUFPR1~LwBpKH4d?D{Y~T7>c&OD zWBe?F04vX$@~bbe9L0UBP7Py1&#rCq`;0t`}Y4eXPszE3#~8uV!dfSWt&<8{bm8E<_7y zV28oX*AKoJNrEprai+fp#A9es$*;hOLqMW;mCr4fyH4~@x>nijZ)dbWuGc3pP6QJ-&)z~>p2B7 z{;hB}>ugDO-ynmRx|MxD_ogHz86Ad2YMV^9YzX@xAtim2mYHXKxxo_0GDx(UNdxl_wTj`wW z-lhiww;s=(2^_Vj>6aEUm2`b<&i7OVH4&y8u9)pYR~{RBI(eBA8>s?6y!uO$-KKl& zyJgDCc|)37lhN9eg{NUnsx%zy7#k5Et=#TVmmx8|aR)m!9&=tfM!)kdFSaTmpgis! zuZh-o_Qo`IF^|KB&;RgE{&WP~`s6-VeX_7V$R)@vKkL~FlXYB_HInz#>1Z!wb1MZbH zhp|BX##FP2vU_7Zt2jeysi-TVAG~CQk}4d>9~MWK8Qz5v;|C*O;&uG}(nc~RM@2ta zsHqyaHw&AL{Al4|?DTBjKJKGcV#>|}Bz{XS{LH^ldtx}Oo$W;F_@iwm#bIPyW^VI+ z&vQ$YmVnkKY}-Pct_Fq%&CfshPN+CDFq7G|#?RK?&q^qHwUCX$)5*X0454MyhyyX9 z6E(d?D?3W>=M5uKumD-N*;onXa>Mx&iRpCxubJP>$Hk?%PHw32#t7w1oktb;ZfD8L z2bgEf!QrmQww{6BK6M(sXj4yBKlPO}Ld;C_rg-R@^HlJ%N0X63Z*w=PFN15yE5Cs= ztt8di1^mktV}1S9^!s$6G{%jQ2^Q!?2t=Jo8UN@*nAaIRSc62C_mQsZ<1o}L_Lme@bL9b z>s%Dbe}-AqQbT4)xT;M{P)RrtA(YQ^o89n0;oW%1>hBO(dwi(dhSkdtu1>E?Uy4JL zs}${-$R-2rDN5B%-DVdD-)DcR1dAndUL1;TUCdiH>8aE!$3Rybs}%-TK|d_U%d)}| zG#toI5J``TnX0kchj;G`KefY=V+e=-w`-EV^FHy4w%=1AhToWMyB3@zj^=W_;7`*j zh?+(ZBQAn^QfbS*PinnY3u@OfGF2FUn`-iCE+q>^o>%6Cei4a{Nkm@o`r5%djnH=w z$s`vl-Oh0(U4vS#PVd#_(LQQmAWQnt#=&X8T&q*MU+KN_xs1g7U|KI!{`7lDwDNm+ z)|Amoss7BUkjAJ!P(?`?TdHcJRlHQ}X|L|R6e-k#m$gu8KhN#%HkeI{rKt|p zVS1jNvP{nd@@B=17VsMD+P**eoTVYUR0$ReKs!*gZtry!E~oGq7s>{%S*n{w`6hebHT*=fB{Uz(#F2cqc zNCi61+N7yqpt#kqTTBf_{p{ie?l*@i2%04I#u;KKT;JJ6riGlcCTM7WWoP8_X2u*a z4k>*cQ)zy?wB4CCoYoRt@}r3SaE&wz*jVo)FF%o^1adWXo&I!Yz}&mxpBalg7LA*| zj`*t4YWb}gwECNjSrpjO?5hA)>cVk^ALp*oO-=ZoL!b{?tH=*6o4QgH)!&<|;3Hc& zwgjiyxM`DpGa{}=2F{S`&Y>zRpTd98?1+l1Dn!%T*vpvYaQaHcZwF&+fAY&mN~R4d z@G=v1!6HqKL>EJ4xUijF@FY0a*EFqf+ONK{KrKhRxsAp5>wOfjeej97 zziJlRewck58r9TFsP@xnY$)WolVm(=bK8@wr*h&U@Ik^DM`1zNp%@Ert=cyX($L6$ zR6@$|PH<~T-fE6839E_C44FqxucbQr$$IymRShZqrW>+hd_J~n1zJO-lO=#gf?8_} zr)j4gA;7@?nX1aGVTTD+TOs697B`c+A5(E_wq~jkg)@El9F1U`Pjs)~p!l&p-2utnf*~=jX`meh){4 zCt5KSyNa~vcKT3kK1Ua>0U;c(FsAOUPnw?o6J?b?wo2SEf1Kev1AZOHPSHbp5f-dM zvm1j4wCUHj1enVhL>(xPu6WrmjkzUAqf0iL^6KMCd$(?xlp;XmiAiqBZ)8TNV3Mpq z<43sCQc^PSINwx7!t=D$1?Xzpf6|p@xgfQm1FJ4)pXg3BF&2x5jfou&Vv5E=gGdpB ze>_yUAbmwg;@FJ2U1RJ+7SGamU`>_?MOVqvz)`>#IC{f9d}CM^)VZqL+iN>vzN`7B zZ0-YZjSiMRwEd1=?Sj0O{56x|w&T6VMqZQL{7rdocODs;Ss94xR$vZ{zBNc$E7-Je zY$DRcWVU6NR@ng;*7Onfg_K2azEU47WPT&aq*ai2H@*qe1&9+PV~Jh6HX}EcJB5B& zuaYscq^k+_%EhYzzldzayaSgH#nIbFkAlN2GI*t_G&b*9?44xk8_hm8l28?F zzlx*00U2?^Py@;0t46k?=@S0k!G$y*W$?FC-U>4E^|%&-z=f0djNWVOPT9%KO4>nO zb2-DXB-|_VL;X4w?wd&#wFwynNm4%ZWs1aS6CDq%5bt}Jc>tADH6?w^XL3eHa zB>%_;WV}-mw#u$5u)lbJ@|)r}`e<-jvw7q9&_nSC0XIV@fA#iyhA%j;Do|Ljxw#a$=aSZ=L9eOZ-ce#|ss-KAXNC z+2sM{s*rp|_u&rGjmduOZ4f|$$xQFod3#W;#nF}9!yigGw3>;Vc$Q*@@>%C`ihvLW zp3W%>=^>`dvo2$ODWZWerY)p7J;y5pcwZXev`-#n+u6Z9y4B_fK|%&$erg z7O_7ifM9t3nm96fUQLE{H=HxZyXBX&`eTWDJ z)$%Grp)5qm5!6JS|A-y;CO^r>rX)ZUabhitIM3H~S}(dIuz@|FpDt}?#_!|a3|pl& zeKrJsq1YK?%$vSr?=DNY>Yu1thPdxQ3G{~iGn}8*l5~l2bqRB4Wo;K?)jSQSJ910A zx|TmLm(Gl_trxbx^UVlUtC0}vE{(S~pW9Aj2lM6S^9Tv*=1unG^Ktb@veE_xlntl# z>#7@mc&9ta^Y9MtVe)~@M$Al1o3XSgSTQ>zxro}MP-Q?h)%q@1o3pdiulj_jrTl3Y2`MBQ3!NApm%2Gp~gm5-uGdfZqg5&kS*=^rrwCMRXGp?V>DN-i@pF$z#&_B$G(=7b9 zp5vRn=GO_b>@~KgQ6cBVHPpvxk(N(6BcrG7f~eeFQttj+SFI4T4hIc6(Q;>wu}L+B zm7l<3w72J8^`urErmc`K;Hj8(psxu8~Z6rZ7L5mpNHgC$!8FX38JrsXv?%0Kqf*+Ie0PbAW~!Le4P++z1{aKWg6 zwEj-@14Vgx$J(#n^+jQnKj#(9jcqAWsCQ5MEhpOfF63e+*P4%SM^F5CE)ZxmFnSW8 z5RFa>EP4+boc*xl;G%X=R-3ggw3EG`^dQ+Jo30tHdbB{ZCA6lnQBmWy9+g~XQs#By zIsULTGe4;obh6pLRMvfVP~PfSF^sN8Zq4#ubJy#oOT5pcOIA4jLBf4^=1=~jCf&1< zXPo`hHWL0Ns~N!WE15p5UY?m!m}k^mMR)67rn&g#p->?YHcEY+(QA4|7VdOqznRZ# zpbIV3YU*xsf>3-wC|jOocMp%C2h&q;bl;L9b69tD%7{_UF&7eC4hmwI`I#hAY&T?} zQ|VPj-$*r9?M1#q8DB7B>=u~Sj@hs)Dv_pXjKbAZY_3ZK42pRVfc?Lg&aPt^OOU7@}LGO?!s5;zt-dn z_Rw(;(~9`Th;#yM)q>Xr6tAaM+Soj0tbS#sGN3YgC~Aa#2fgGXlX5QlmgG+EWRDdc zF{PO&LAdANSilV1Y z$tC;8L!8Wi6zM;T^dCjKbcO%Xga7owfArx0oj3Kr_iFue z-|_r^{-)9=Y~kw%A>Pn7^vIUo-8f5m%mXRbV_bIY~S8 zn=!Qg(WU<)sUJ@~bf`n(aK!BO$bl8jTixX36aLif&K=!nwE|}w1 z!@vARTR~!C;`r<=ueHjLw{C9x*Pqy4rj)s?pW=hAyf8O}=oXViI2}mMJ#+mL)_tHk zRB>qgg?sXKwO#FMZuj-NzNrIo1E9YW>Y8{zwu1hr;ZtUrSJPGvn$;DP)^c zZgaaDr@5r!=Lxd$xT@O)WX%I9(*I_a_Oz4hftl5(C0XuEChL#!S5yC~Lo%z<*skE% zcTtuA2^uo9v=^5Q(k>Y&xVcr%I%S{fMSTy7ePf}h*z5D;&-Kf6E7(gcsen;qQxgph z4PGPFN7A~gp{mOL(_P^kp)ZN`BwCjQ(XSRn+1af>QHaOCE6}8pjf;)-6n{ul9ZXA1 z&c38d$r!SR*$PW$Iw_SimQp&@7}glh!r@|jr+*0qMCi)Sl|L|i{W0qlA0K~0s=6Mg zg*KY4@{u(AU)AGdd&U3pYB2h zT%}LYB%8Dqwyv69af{_6RV*~Ns_yD~%_ekmc=$RYh_vn{aUK$hrR(nnUQtnk=yDgB z6;xyPe40(2*FZPt*53BDARZMc%}h*)oF?5fz-KV zzc}^BX))6;1scL1*MA)D>n&N$|6V{eH%ng%sPZgrUUDwy!P>FRpJcN*;pPpFVvSzvb10+@d8BVDga6 z?6cHl@$mMh?wNo24Ql^t>GA_QwW3{cqA3=K^Y{1XJinT%(61M@Kbxx^I%Hkdxj;Wk zE4g1`NF*eoGhJ)bzKc&Xx$;P!_2mzo%J6}#@9!~heO zPcObAM`0)pn>uaWOo+2fjUmL*IJEs|#^`-L+W1}=>-~+~JkcUm33iJ@4LT5w9-nu1 z6SM#|XL}+M>JYfn3e}TN8JHkiJU)TrJ7%Bn21|W>%NYA+TK+n5$out%u3zz)0l(m0 z7i+LgP%m(oFbRUHe{Q^s3$vdWRa%Ja?jM;KSV8~!`lm{RiY~-1Jc5kwnZOKPR*Dj3 zjGQp4s8G(FyqBIOV`t6kCN*n@-tzP7L4G3kfYSDYBYibzI#ZihuRg&sI=5?VPE%wB z1zo+UCv9Y3uKYGFhjRym{rvnst38FN?2AkDfd`PR^+job&nP;jpdfG48b&r$vilB0$H{gu12D#Orbw|SZEaq1P$&=TFt$BCXupfPFKjo>P z3ke~Sm;LUe^c!ercQb`{P;mcLcZ!_jjIT6$B!rrpyy{Ti-fhHovQ>kuQM#hn^=rpyIjQZDUbi#?Z4&ajs zyAAPwe97**CcmW2dij2cAl?}07LDQ}-pujmMVwI*9- zQfuy9rO)!{`u^E1j{YGF!SFW!z8RIvJkIauG53vCaRF%o{+d}Um0`Wx!HU|S%cPy^ zj3nX&tr?RLJ8R=ykJSo3*G`niK6%`;r!E|K=W)O5E8L4^@r9OGlx)j??!?bp3<~t` z5*{n{leI6n#MIk8B(^5&59;<6lC~KkCsKX7gn1V)YPN~_w)W2g`Zy{ZL{8c+eGTgO zb?$I`XnSwaT@BoWyCMq_2UtVoH|hh0r*eE;mzga!Jyct~dF61;o8*^qzhMBuH&Pu9^N zuesaBNQia~%6yfC?^eN28%=PH`}~|C3lufn-ku@0fa19L9R$_dL@@ZBC*O~8nLh72ez%d34BoqV_=T-rb4Z9W!L#uMi^ZY`ovgKsX_;dCKV_o1 z{&Da8y>uSAb8VCLOMXd6)U+i&sN0NxCM0>x;uuGz=dEA~1zf1$@VA0rJC9KO+3}vo z`2UQru*}_pVNTTFJH!S_(!d?NQ}IDMTBZ0XjT+R;^8%tnOFeL-3};Mn*vxjrf=c(aQoX&YIQn z$mTP03wV%D9(c%n{Q1)^AYrb9Nw4S$W-zn{wcE^Ih7Z42Z>+7gW5Xm1clig4=~)e4 zRt^rt2gnPv75weeEd{NPqjeQe;)t2#YwYP$&+cMoF=g;k~tSYMFqr@Yd%-ddr}!$zz3^ zZ!xEJC2pT^-MurGKUlqx|cGhL7kNxre=wLGdyO}l@Kd>QGyRlaHGlKOd$SzyB$y^cW%+~N1L7#^C|ht zf%K+^SBwc<+}zN^0{)gW;#Dv%kw8Q>r-+Ei;nadl^ZEXO5Hwy>S9cPBf|B#|F)~7G zsdF|_>--xFkYTe{$s6@)8NL2R!hYKEycv0T(`FPZZqz|mSE`&_?7VMJSX_g}a1Jyy z{yy90FF}>xx}gK!(r(#GRHE;fue#gwz0@C?{Nvtf_pECv@MH%GHacJRJlHXC@LvGY zM$4ZrEjeQW23aV$WBK7(7`wm4uxcG!;o1xY+XrRab!2!Y?rpAvoCJjR^8XMzS{k%>4n4>Ef$Ewp= zjYoG6-ErxO{g8@znv=4V=A$OM4U;`mF#hvXG2s8{j|7e6?e^Va#*7YeCbT`n`h5zj&_(am@n`F7U+;UvX3 z$9k8$6XyZkuzJ0)yYGf88l8OW!}P&sa_H7$yY|Ld2j!~44n%<4NP5$-2UTF0?V_?` zJgc1Z5EUkQm4hiGQwKK}fOCmfPN@EAK1<9k95Zjp6e084EP0L+*w;zfgO5G<{k7Hu z){=ezqf}F#Xx(b!LWVvN8CsM1=e>JV`^=oxZ}Qd#9e=NkKgs1rT8X641H%4UzevCRW z53Qz|Im9$*-tEyZ76ged9@IY(01V}`BAIi#(|1kM9Z+1?l(|1fukH1+0_vPH-Np$m zJAuwF^UC}!+J=VMJXZW#MK22t%x!b3A}fn!r5$^O2|gPDaB0ze9nAUuJqiZG;R)?z zblW;Kwm_hco3oeKakKA1A|UonUf?{fl3&Z*N}BaRYn9E2?8W)PH+gdli=E~JH9-po z1_laRp3?yU;jwjTetv#Y(OM1MH2Ps`c6RX5gdTLagMyCFLfwmX{x_qur3rC;w99=} z{_x;lr3#-iq}Sn|yi5ogh#|o7ZLG4a$-({!b9jL-YpdtnA_5j+|GMk2W}VxdYKV8D zCT~^hk8Z<-_QC(v)^$cTu|`|HC|nC5DuUE2s0av%5Q;RfpeVifCY?kKJ+y$x1w<(# z9fSx-jY&kL2nnGGNbiIsgd)9!P!k{|y!h67|K9(ZHEZTO^PPRp-e-U5u$NT&c=fF% zIOP|~FB`sZJ>jRvEtklTUJBfJ+n4`Rp$=ognDQ}PbzXFWeL6GS;^$^d=n_?gFjtRJ z++kO&%AyZizcj;?3SWqL2`3<$-Wyvmg4?wiRXKZ8Vb#+5mFd<*bcO}B#-tb^bui-BtN3Dftp+p)J3!_+G zYtOK4sB$H7f@B84Y6{dGj6^-Q@CrW31QuBEL5V(pgyN>DJM>(KV1< zTA7err?0W|$u#?s``66`r=xsmVf0BgFS<&vXy3~@RjKuWUBe3nU3FkQ;kTiTMaVN~ z1by~M_auxbMx{AqmoP?kw08my-L-h__eEK;NFLWH|F$2nG=-T*j=h(+?g4a;t$m1( z7D+cq7TL{vrd8MD9YViJA>`z*j6mTRWn}K<;(evdGZ0GP>0<^ZT1ye{(VHci@Cyos zy0UL#XihQGq{6rhqF>-@keO6G!Q8QeLz5+;R0RRgYFi#?^`>AzQfHV^* zAqp(0?4>royVG`rk_U8F%Wgh7G-mWy zO*L!A*wQ}S7R`@iDAYp zoppV^Zo!ST&OlSM6zJ6P2kH0whn>oFVL$FU6Tf;Hd+39~`iq4coP>{Yxkrheax#kF zH;91;k=9`A`D&;{LFMDzvRQK@ILU(oR1e$oE4eCTlBsn{kA1qq-)+Tuu{CHQN%q&M zR{gNb!A$!PspmtHVWgq=%gAxriMO_k{&pZ5Sq)!|j+NjVQ#GvI&fBK_H}uPk5J6n$ zg1x8?p4e0~Ax;y`f)74hre6gML}!}>q<1^vTtv_Ni&KqLl~oqATIDZx>noG$WGjIY z_ZUWXPsOvGb^1(gKZ}|7PLt_CBAJTZ&EznyOWm*2*$o>mm+c!?+8~zpA?mlckg+|g z--ovRC&EYi0h<&2UZwF_?roU@7}+#f*NRqMdNXLa!FxukB>P&!-x*kf-XjyPG-Y4H zRe^vmVaUeR4}~4NbK-gIVLzBl_`%+06NR}Tq4mtb;3DTtWAHkbxsKI5S}75Y+-fC) zv5ZyY=~_@n{u$xqCA_vB7?TgM1>{Y_;VdG;;YYTo7d=+6W6oGYlG4wnvaadRuNf?EQM zTxCsruyJv5?6GrIaO7o$kfpv{KIcf&!=I!mI=ScH(3KcgGc-m4%%K^>g7L-#3d9CB z`A~FrRN_nH$Nmmcr-HO5+%>ezxC_>q$DiA2F1V>+bJnlkShZ1p#X_vOc@09};DX(L z>~*Q_n(CCOX{&ysW0>{C&f{vybFG)al#%tejv14;R-8^@`tamrQyL`nV_{1WI;6Z` zyK7K-4EII%c|ieR>|O1RaQ{Z#n=))+O!7-x-6|qR+uCOR{8W z&Cw2m;fnZg$t$#VQIs(X5w)I$;2YfK!k;zx#uvT-Z6R}fnn9KJyl8b{sg*4>*^iU{`rz8s)0p`3SGB( zr}m6bW(?W%$(5-4z>i{MO3y2n4_$P((rA7HCE%?|1Jy-dP|uD+x?61#!s`vSY1rkS zPr<~r-`S37P%tokzNSZOyE@o5=9vvuol)g6c~HG%6Ua1#9sM5C1Hepcg(mF-+w<}% z7(M(hoQtCBK$QOc>FVi>_D?44njsskX#;qJx{B|BNy;vJh;^)07z*IFaju&Exu5`E zIwP&X%1gyJ6w@R6sOWk`_C0Td%0tfxmR)atQcZL?JD>PdP><Jt>3;J302c^(AVL z1&5As*rdi-3Z`6Vrd1NA;{RI#c4**!WhJpZWKe^4{F@JZu#=4yI*4ywZ24@ZWoq(u=H-d4 zz5U9=t=JDNJK~mliQ7?4mEE7sNc^HF<Bp5&CSgfiaSv4a}{uSZ%@zVz(g}9 zr?3>trrOo&ZHw1nA#}AgJ7aJaLz~Xe&9!xOWb{a*99DW|3@154H=0rNB#Lqih3sDt zeKSG?wKDJ(p9oKarI@oPLB$tNBv^ZoEtxnCV zVx#l%kxbsZSF8yG{Wac~#`ex`)DRnuz|qIadDCxj0?V8?*WO51C(ppbR$Oi8N4>I8 z(#kk;xNpR}j?Hcd2(7H8e*n`a{(Vl{D*1-hIj$lZ!3Uip6|$-YMyahr;7hGT&)+Hw zs@F{~wGT3AvmPFMyYb238vFxz9hhXLh87vErI*?j$=_PM`^5$l7`J-}ZC?sFYkq$# zOiv{Yb$$$*w82kc+}T&;@bPXZre0>&PZTEL1L|0e&@@g+EY2HqzMU-2t^8 zP$mbKK?aM4&c^KQ?EE^VPWWkV-qVIX8b_Ux6+KawSO&oNz09>dZCn-CEUQWw3_04~ zo#jWe-lwbv%I`$fUWR1W$fUJrqG$&P`XT$U;YW)zL-Qs)p;qC4;U*?FiS@>b6MEMj zRL6sPWR=ucp|5nyX0};@F|;yC@v|U*6R>jkpchP!E%3q(<)1(|JNu?gDwT>K@0slI zxc+2BMM&FoDG5qz+6R#=Z`VAlm`{Ez+V2?cd!X_#ELZ9M3rAAFlW&w+2jZDzE3mLJ`9v9P4s`NPX`88=S(5BVM?noDoi@g!Gan3I&CAC6q}F2Z_>#5kg^o_0 zy14M?906bf0X0%4(7V}vN6vy1J41O0RYR9CTQ8hI%SE;idkCF=$yVeLn@lR!zKIj@2r;8)HJFegZRoiK(0$D8(V((^$jmU+f?3I zXl%k-U*1%yXtS?}Y1zNH3+9Fbr5Wah zR|GXN3$;XyU5%0~l^}BjvBRtsJnpu`=xsX%V@U-lWs+8Q9YA>r7cIG+mBVEfGS=nVzlv)aUmOI9s z##g!>YmgSU@gH}B;Q<`+skIZPWU?tZnWxjKvbyY=*4i%rVwaNV2*g*G72M6N;QoBx zOz&H{Q9GnRVJj;up|d?~dQU8)WNp6wvj=jwFG3=b3kwU0Udr2J z86KA!zI+V+q14%N%aDOYLvG$~7D5{k>@k>k$(?-{Yzo49|j0@}R~XW^UlnnW=`DAXkw_k37?JDrUf;B)Mby z{g0Ya%mgrYxonGfBoNuWS_m(oz@Utd5@9}sH!lejnGo*G5g$~b7JfuXMLdgGTx4`Z zzML$y=hO461_8v8j)z*rR%AmOG**1AdOE9d4aov5 z-!#4qeK0TqHO6i>tR6)$53_6vy26(xk;;u4Vj(tIXZf!SZV1z#cdq!?3TX}nEF03G zo9uI|U*NSiZfx2ZGDnDz0paUrvoScp4!Cx=Zp@F~gG}$bTdEwnBMSc8@mZ}u1q22u zBQf*l%75GMcGo)-0mX}lzqakEnD70~FG(aAM%8M)dP1033x^Xc$#&?u=HPnih;KEA zu{dr;DL~a6>bKNTU?J#>M(fr73%Zocb)R<>jrBe5DK?3v1j9 zeE|p}GuOBoQ}!JYj}1u56bJ-j$jRbbsj}d!qW1c2mLQ2R+|p2ePaq{%eA<83%tTLH z?|I#)PqS&dBDpS#ut7fCe+7oq{i?bq#LLPo7S6~@YXN;3@Xw#UmIkpW8+c?zQ>N7E z)sl1PJd>B+t*#c`fZV>t$nFr6y;#Z&V__4P6ho)*x#=2Q?~umoe)0usyB{jMv*5+< z@}Ttqus{v6*}><0S4ygJG0XlXmJzbJeHOt6X9ueT9!;##eT5xa{6)c6tt}fGeLppj zMPh6*F;e3T?d3sO=ja7=8H+O6K2oPGm4^=cQZ_fQ)!bn5k9D_s$!AJl{)I5mGe@pI zzyqj^7_o?v^WzQkf6E_C8>$q6*9%}9<|CpYe zr+3BMBQGs;d2es;$G3!)Kx7l5t%+WWk>OkaIN1T4&s^Ri#G5-4cwl@Er*CVBBnv(7 z>%!ylqm$BqAYFFvKKIEM_aCuK5p}pkS6f*HO2N#*kD^6tO^bfcyOXB?&j#=aEFbXdb)5n{)uRE>WRBv4`z8FE($|% z55FnlHJaN}dsu?z9635T&@wI!gMJ)PF%BEK`j5*fHCkf|iz+u4~`Eeairn zb67KbROl-$=60&|>ENFa7c+)X(TsH;+8I_i$LccJ(6HYHJ7Xe(M4_xTUn=yq^!VqQ zS#oKlB=M#@o(=yPg)MSw;9=2w%oc6aHaRhr4sWin*d|SIn1Z8-R;XSW--^P<;vz-R zWqS{k`8|ysviNEzZ?b}T$&kb$8hNQvWXBOgD*ZXu*VpF- zgNB5!(jM_UGC6bS7C*66G{M39y>eLf&<14Wgj48T+`}gY;qZOQK1i_ygSoQFrXI?9 z^CSp}oi~gQGMrQ{_7oiWE}s1yO#oZ0U+(w2UK!8Y`qv6uvIkY#jfofc(a$p}H{5OwYO7uy@;x;&HSMb)+ zfIBe9eB#NOUoiW-THJNdo#co5LKiDIVl|=6<2N_*tKbsQ@rwmo(ab+x+`y4H)7Ui6 z0M!-qf5q7+&L&>)`3-;guKS2_Bo0I~D}Y#63o?YYQfK~9nu4~8ygaqG^1uTYUB_Qe zRqJL%>Gnf*WQ(moZPOV~MwKT~0>R`Jyr|dM2OWiiB7jf`*W)$_KZ^vsv$KRrV+Y56 zuBfaGn~mXkk{ZbBBqY&5wzl}$`Do6(wXsvrlB`)DwWIf6XT|iZ*$D)8y12cL?)O_F zjn}^aeIn!?BP1l0#?MHjT@rYqFO;Ta$!4oq{FhLnwGL)LGzI56o7bn!h~hX3;rbpf zT)}u7qk1Gx(N^2~eGYZF!I!qn+rBKFF27zO_DzDk;(t6m;TCtPYM6G-%CH(KU7VM4 zshvu^(M}Bb#Ml4RdQW6G3R}W@MN`(kHAAuP`#yu>NAFBn&>2P+ zbY8c8dUD^^&UGho%+p{Ji%5P$m+0>a>U5C%U!hLn(je?)92FJ(vt`vWe=Cm9>5_Gp zKigO0aETfGKVuyd#X4-mJb5Ef5YGqcTQ!)VKo++2|6sFbC&UxHCf`>ORcL-Q5WWwD z^(v=F)ztt7T-f&Tc>^qZ=6;G^iJ29CdAo8P=safK*ToC|IWW5&I;s6iUQ(2EkxlH> z>|cSQ81~E_)h+=qsdu06<}?K5<>yDUiq~^VZc~?VGp6N$mGTh^PHPAYIbuN(;8*ST zWee=gR-{Jt5p$q%Xb#m-9LME)WPh~p$(WrG-0+pYjphn$kl8*ftlQ`P@p{p_XBqpMGZhH4T{&6{e2Ke^y2}B3mb!&-2dXqL%wuAvT7|B!K^6ti>^2)Ha!olv&Q{F6MKJjS1s*_a{1PEDL%qM+eRQ*-! z?3-kTup|m@w8>n)eEA}KERkH+BcZw&d+Ev*w^}=Kjt4?qEXB>4#qX6nVZ*>$4Iap) z)2}WpB$1jsU!<7Ao6t@)p$azX{onJ@jH zOA8@;cWRv@>}v!10q##0qPhLK|7hu0=>v3YOxfIgmn7j0*oVBz(8Ql7_ z-z(c&ZHuH+qrV05sJ7*#*3{IL7JhI?&_!Nsfm33N}1vg(;Wf=0t!`?mpTLl zH?B^JhHepE9iFqR5fTvGB~X3&LeDd62TNtbJdw@o8&8N_0CMW6hv`LqqLofv`enKN zwWd;K;(d}`Ni1g_p}S+?U#63}?jb*-J+rTyH^eJF#R(C{3OV%)myL9Df_cq!uO_NS z)%=%IeC<|h5_V`4BoeKZC*#HfxVzuC*>nZWi*gz3wLI6j zOEAx^4iQuwc6@NR?Rn7G%Ug>_FSECDU*Ed!&R(cu^!?nK*=UJLh4q`Hf8Q(NqX`Mx zf~j%{;p(XX5ao;M>;N^o8*SJ9bpm|->T$T#sj8|SB(%5oDpqZcHR#Qtu7=82xle_ym?hdkX9Tz3b-TNc2z`7(so@! za7;odL_i>8V15g=8+1l;J%m@XC$hBNID_xTpR?n4JKr2c{b>v!_*ZRgBt3lNvXJHv ze{@c@*y6KqyE8(SxvCeP-tLhlrrae%J|R^2nlz4id6*AY>A2~O@Z8ML0aTDYh_Icm z^96bcpB@&+Uab2Hd5K)Vt4-mdtZXX+!A?xjZ+O&e`vw43PYY5lqz@l?TUeZj)OlMH z9hJlO;O*^EA%0PA6yFT=!w%trLDxK@Sx(OiA8%zfY5FXjKq7MXXtECMi|KJw_x#W^ zdEhk91M!|lvOP2FXp>d4=k;73V0ZAdF_k*)L6Y5>LvNfqFy6I`23zn-p5+IL%SCu7 z#(%;#F1n%1g4kIbLpmMVZeOdCiWW0We}@ce7-)gII0K)|6_4?X*+!=p0O9T_4+Nfl zSg6)zKN}r|dmU}^q*C~zi$x)@`C*w^SylDXi87=~LPny9`)bTKYPE1=y$T+Ou2F*d ztpc}kGD20D!(#SsIS)TJCUrm5CWQ=QyML9M{1+9y{qMO7R38w#dHlkJcP8Y{=q8&n z6w3wve14f5T`bdKCvGERo5g+>|Kp1daG-fd%5CjV@{ykfs_L@fOmdN?q%Wj2G1wo5 zKf0S;W#8EggWapDJow$I`xoo+0Ig}5dH8oc7Ac$Ujos$T-~j9#iuI(it7-6AO3kJs(dvT?c`ey{^{I z)tn>qT}`sncLG!A@k|^H`eOdbE#Js=+= z-SgPeHTS+yA3VIPVD;xodI`1|h@!GAQU5Hq#>7nNjYAzmtm5CPv4c(SN{Pk@ko2_t zz>GlNh62Wd!8_*@%UC|M^JWD8CKyAiuosMY3c4@XtcpIN#fR7Fx@;aXGc&3#9qQ;R zrNY{jmBO@dFfl908nfr@QB4FCtj6a;3(5`RK#Yb7QL!<9q1qbu>Y||6>o$=WX=eur z`1Yc=QKG(zna(G(TK-VnaroLNlT zt@38IVFt;Q;`lPmc2R89fO=!5%7lWg0u+aiS*369+prBq>WN2sPPPr}?}h^zjH|2_ z{=nGQt@L+iz>YE^L5Hcb$7>*8{o`kB?zIyuveKWXpMoQ|j!v zV;-B)T5A3e1DR3m*!rjTU-9oR-9Gf>$6Evo=3fGFlF2wK=DL&!wvL-7yT!41mY3-! zRo1&_?y#h?<)cn_5UG#h|I}>ds-qYW2!Gy!C7bIK04-Z}fLNq$e;npO)os^4 z86;=K0F!bsC#xI#!$2w#_LF%Ac;ipp&ZKb6E{NjO5EEtVg@NrMAB>$$R(EbH(Qf4a zwiZ-++>3Hqw)%0`;%}d#g%ftH`S!6^p%uLrE4tIzkx{PUCCqnqJ=~wxyLI8j>bOiecKd>hEs@$^<-@cPBto$#Ex8Db#rU{DzEdSuc%U ztq-`|5E8WseDdoxJE|_I{?&2a`+3i0QsdW9R3{b6aR)P%0C+za7Bm6EFOIKIR0cm2 zWa_KOdwa`o-$7j)&jTSt^hQ$raYX_UDv7YiPAfxAj%&3Lcls~#P&ZkdGyq2OF&3jl z=0ONGA#@>-%c%N%aD7ow)d(H&fE%S~{w1~{3`VJCRuV@MK2#hJ=%ydwBQUFp(33rV z_Ge=BEp>^wQmT3W4n7R;ScGWAv#!c9Hi`*NAKxDLCZGyi%9gUVx8LcCWzNs9*YD?q z0Obzs)c1dN{w-X-#3Q<=fQkC=R$E)PM8UmHj;fUo+mWuT;yF$4<=h_QR+Mg%DtpGu zh}5w#v%IsJ{Vr^C@UfS3gQrAek$c7TcsXv40SrpKmq>Cp)h4Rl{Hn+WJ^ER%vfCD&AQ)qNi?aJDcrhe zB}MBolvB>DzRZUg+t@NYP>SUjY5cYlEO&^j$KUKg|~aPi1jjQU2lK3dB7vZt?KR@8|7QsT$>?0@zOQUD?#sn8Lyy z+>H2le?(ynmZu9x^S5yFC(fxy%73kQSWe7p0#^NZB9GpK15h>eZvPx865$wy<@nthL zBB-8Cz*6&V#e#eE@feNflT7?-_%1fn|GbMz{LlusxS$N=!&mMu@gR674<@a6d9gwD zCnu@mIs5nvD%=qOd~l3gpMURVwcYzceP|se4Sp}>GyctQt+JbK20gAkDLS1BO}VQ) z$NM}QlLy{r_K6lhcq@kwX8+V41DtNM*qx>TU*r#JVZd2Acdvnwj7e&g*bl?7VR(Et zSjvM@{Q{k|jYy5*zRBT99*O|@KC{E`v-T@2aToGyGB!%djGE6R>&+c;*?egX9OxK< zh_boPp>11{gzQ<@FZh(bo{|a5cqjcxt zg8eqB|1s~E5UsBK6W`Gp&_hCP8)e0r%V!nTJ)$eG|C5gQ@#AO9j}-;CjlqY!GZfE6 ze62l8UjMc#C+`BDrsL^n*axuqf;(J`^6&am`8pI6@aEBw+iZVPrag61{M44IqJAZ3 zJDq)~cWaTZpQqnA?yn9H4=L^wXtjKtBJV5YSLfLPUXm&aqmQ7$kAJ%H-J1Je443mh z?Wne|k?}qm>Fhh(IGkRofx*lj19KM&@hj}eu>ARzLJ&lT+pv?&vG>h>IJ+6k;vQ4s z5j-cgVyfakFtv_|8Qx`lF(JS#R#u?E5G9{C>rQ5R5%1V?77y?{n(D-X5UA!mi$3^Y zN{DZwZ%j}${`0_@dEcH7#rl4Z^-i7d_9EQy4JA&;3yUJ+QT~-FnEg5j6OY4wI0Sc$ zznGs8-q_OY znLkV?N0!OToNqpsI(;E@)N|oCFX2JK`Syo#B0TCW7W!MPOznQjIiJ5U?Y7}!_ge?; zO4hIXS`9dGA-y25)?K+fDSeTdpKG5P41p(Ox3qks;Tzo%wnm_H_>+?!1Wi;7O+HN7 z2mfbkI0t2!iD53SDBMJqWKi|f>))@$~#YDSNchNV(9AO<(Vbz=JQ<4V4Fkptp$MPkryZ79zr%54y(`XXyC_B3Qf8;mM=jrLC;F5fkGVUei|Is8*E8rDvsHhU7I``S zgzd%GN1L;x_GS?&|LkHFYL6zID%USWLB4LArAPp<+H!SStK5|h@2qz~KQDk8pO}gk zLbqJ#7a@7=#M4NeEWh3X&xVgPbU#FGT;IpY6}c&}66dY+7!L;BVvK>}*XX(YqiD?^AgJWqSH_ zTDiF8stuQz$zr8E6|CX~TA7$$Eq!bgQ1~hw)9B58o4(*2CbG#8*ST(&iIdiUXF|{X zq@JtJUi%DSoTHiqB`at&So&o+*i+IMu|jR1f<|B|J|B_9de7TLQ7MO^KUlu;HaaTI zr2}cLQ|DSsB-GizTi6+rg}(WSLUx1yjzdeQPFgsce-kz1dw|utC;nQRTY&opE93*n7}5vw<&p^EKJ-+5oG=48R541p7Z@EvS3?s_c=gJ<^+h|&!6rCvK)#%+L;oLDFT4x3!yPbEg@+gVe=O2ufX@7c=?YOq1+~U5E9Ox zSGSSCld;0$h-yRx6aF5u#sAxJxK^bHwcN!8*lV>6Fn+%Uho-8t_x|{X=?u$L9MP~x zM%|LaCyb6(=P2iWy@6JY@U$;nIMkn$7|OE%1q;V#hkF=i^NR;wJd z3;|ize-M6ba9EoXFL(BSWnRl>*;dPMM0q{}NF^6`an!Jwy?izy+GfS6-<_Dcq&k_* zD}f=ez<*pxDiC(R#Va0`fW>>VYf+pXIadlsd3FyW8nq@7JU#&(t;x&tuP%LtAMTVh zQ8ZHF_v2x41wRZ@QZh@uPmf?ga;nddLPoBz+%nka608hxo9V}nILe&OuGLf*_aop8 zQPOj4&C}p6H?NR(ePwLV@07WCQwGtxhpf@`6QBJ#?-7UljM0bgbMiM`9Q#;>z~B3w zO+4mo888&Zo1;c}#&tKh_ILG)Nm}U@I5`s-9N%$CUTn{!oAYchb~+~Zv$H!Y4oLDy z1+f=fzem+M5B;4#G666KFQ3Hkve*O%QG2_-3pqXGse^i(+lQz$`H!@&tBTh-ubx#@ zZs%4uYDA@mSPJsfKJMS<@D4d=0tnpRR`&2pm8-mMo#koycZuo>5O!|$A4F0hDl6@<`HL01PqJ&$%&EXzlj-xAeK!CuKM(#`(sgMRl$tHgJTZj!Br->P z1Di8PE5=r}93Jizmn;4?&zd|3io+WiZ1Ddx%&ZpuIPms}6aszpKU;n9Hn6LUkfP3K6^^2R!P~4EL8fEKLy?_`I37 zTeigRnvu!Jw$H<(FWpDKEQ(T|?EtJG%kda8sq;8rMgrn9Xk?|dB*1IIR9~WGFhMq&6y@c(Lv6-Xl zTWtqnl&sCIjrkj;J8#A|R-rbO8HAwCP!8YJ`+?C9>-~`)$NpY&ubsvTnh zBFnNmdxwJChQGU3J$Rx*ncX-AHB4{yc(YIc?t~xKg^60&UBK1vQ0?JtV}s}F5jSrl zS+_&(i_3DVozkire1pYk&mI*rcL)z^rIhk%1d@Pz+lRk6s#!}aTR&6>~O;0c=jhwrngesx%Z$u>Ipwzrvs zJukx*z?kCEE_N6E*{F-VdIbPS+U)h~j$kEVx>?$P3y<2FT)Ny~9q#XeCm><74Prq! zDr_K5vLjwF8@uojpkK@3x|O7!Tg{%eDho4G2Oka7yEL{Qcb4d~`?~JkJ4{wO)@ayK zpa(Yok~N8upIs;OuW(~M6J~B7Y3XJoL#Rl*Zv7@j75$VyOo zb8Eo(8T=Q|qfz>8|MUDHrzgLxkoI2w0_`&u)_pfo#OUa1Xx1)Ou1$DR5jV-Thai)P zI6Y4SX|;zDtt0N7mByL1qB>WpW9n@>^3~VtzAN^jU^94{>N-;K2IJl3-1kE|9K z3G`|(?z)M!m1AEiL*i@(Z44hd7JYR&KcWvT=zcea#C9&LlOi?{Oj;|lUYg+ zl<`J&R4Z)iEEZDD*}yTq80~OH1_ZIZc}AM1s(!?k(f64F^X%SBH6ni%df&m6>B<+s~~ zGAF;AieD$hgbs$G*M*k#eSJQ!jCIaqmb6cwsg!(}KZnkrci~y^OFP9tQNL#w(qX55 z&J;fG7fZGibbFflZ_8#I9FF?z=!4;b&oDJ(nm!#kzqhU9#ZW!gi!!oLqV; z#$d7Q;oL&vz|VdkvEZ392lDt4c8pgl`!GaK65DxjOd`EWrN|Kw8uBz6_;i9YdVJd8oh(BzH_s#@+tl zE81saQJ6{M!f`*VWix3oHEDA8FT;`BjGs1~S!Nzf?QZPFfZbZ2$H3w%FKW|Eryw9*&MU<{Kpd(b3Gu=3zXIs^^(Eq|7yu`Lz9R4a;_URY66}W$Dd?NT$ZZgYlNp!wYtr-%;4I^ zW^NF6X&vIPdm7oa2yn+DSJkID+UR4gL5e=lkXO{$8{I(~6IbdQza#b0+Vh(>fP1${ z415!R3&elA>~_n{p#aWHGs$e?zhQT@mupc_UVjwThsl6_dVt@U!m${lQ9IV#Ll*}A zd=Mk;Co2sVjYSl^y@*aaKa(FBvWt+bJRfn~JB$s|ciRF`TL4yqHSMf9ZsZdUL55>L;k4l^XQ7 zPdS;L#pPB&d&~m@`1%8at6w5C9r?}5FdP8KmlFSl&`exj z3N?ijPhAs71Z_dY!vKQgXKLYsAT~CR!Hju71mt%wpH8`2I~qTExJ^S0LJlB(n8+x} z6;RS-w*vmDcD1YspMzv@rQ=jd${%Rg?m>bSCcoF@;-ZOB8-M2VSP`Fx;y?EX4GH%CHX9QXjK(SjnM{MXuxEf`iWA($$CYCr(H9fJH?O*VB>`SR zS7e?OGRACg7akKR8MQ6jws0y;Uj22gr@`)Z$)k_2D6bwfFL&5Cg;6E`mqR3J^XOSv zco5&+@jNeAhn0!x=XFy)geTEv2!Fq;xU$9W1I3xpD_W8hbw#(bQ3{cu1slCjwxa0x zhS;w-Pj7x2q7!W1hR0NuH3ZNxNp)5Kj68~5SxM=Nf+V0Ky5?4ghlkCDBJygx*?eLi z+#;V9%P7*G2RwP>YRmLr3O8WtIf3ulSBcmq^Q&6_$ez^yG)KUHE1HCe@E^MK`ku^= z&dBJf@PD4WQmjRN1efYRY}Iv<=VZHR+rRhjll-5p-2ESAY;gCVf&b^RiU-dL{;h5P z;{WDE+kyzLdDMR-;0ED;^n86qM)Y5z_3HfpgD+6|xu>f-rS<(1zqc>Hfrnql?(=uu zBQ3i?m<(~bXS;lP^**)iRYmqm9 z%Ccu4%HB5>WY7HjBl>{OEqro+i?;gF_58RNk3X&KM4AP6GV9<5At0$CYDsJ48s&Jk+|y4FfiwhAQj7a6$a+dG4GRY7&X_ch)kbK<-s<>fOl?ceM=c(sbln`k)c+`fAfFBn8G z$Xl-t@*~XlC*DT=yEqzxK!0P#9cfER2Qj#refXtmIAC|vaTkQ- zTuWJeI)}yr9Hu3Puzx*bdx5@sL!3MthK)yw z&z(~B^U4l3_3dQ|OF>!46wgeeEQ)N!H8#go#s;4qVkfX5n!A9sW| zqN(@T`w!e?+`1wY)2Yd!A68KB@wF=`Zczc@jSE;f{(L5VdGt5Aex;9-V`7~~gNyEX zXPS+9luZ^#ELMB1|>9BIs+oWwh>f?a!2^sX#l$)-LPvkCpoYC}^ zmb2Q8gM>jj77t6Z@LNoejB;{f3YYps6VpY5CmQ00E8&5G@L{K;^R1fI_#cx8&G;sZ zUT;BIS5igpw;oc{aVHXcCok?^7Fv8p@fkkxo~EW>W!qFm$3~+uYnz0cE}!$W7Ml}M z0~wbOW%ql)g?9&PM)N1~wmB!47?pRZZYV)++k7Wb2=1?1J=citZ>6N75-#aG2a@XA&LskL~Fg z%_eHkc9qqTp*Jf?GBqG7el?gLI?C>ScW)y4J(UXCBw<=ck;x-#mo!DM&s{TsHMrE4 z-}V{U^Q;ecGZlD|=?G-J_~?q>QKxC<7?&BzxAl(0{80|{RCi}%jI&1dLgMyWur)k5 zBKG)z!uwgf_+1g7BG==@s->xcIvR(&W-&tkxO4f`QW3voeG zmoeEx(CkYj%H`iYp;`XNCyJ4l`=eTj4e7%@p;Ut;j|aLC+aKM6t=p~9!+_|`Ln`v( zNHdMhiynP%S6cN~ud7B?)zi}z)2({G#VtWk z9Dickti%I=2vG3^!tm3HP5^N+@7?}|_vl`_()9yg*BbKp)6jB@^QaR~u9RmW1=gRz z*!)Q$(Mj_Ac&86DR5ll@gtAt3S;lZX!7A{P{Jt z%F@GHqonoJ1{$8w^mKVSHn2QH53;|1rTb8dv)B5Y_a~FGIqIK8raq+~PdprNiT%gk zEN}>m`Of+jk*X&Fv@pqUlI*x%XGQ+So=wDLHy#{1l8*KwP6o0|L*}XPfJ~u(PhFMJ z=ki;J`s&FabwQI2H`DHoT);dwaq8UlZHf654bkDY7Ep=}8812L>&s${ zT@#1;pV*arP%V+PLmbWsXs!3xL4pONgHu2DzLCej!$jMD++wy{NuDyNh@@-e57m%h z+*{K5bR5``eUj1tm_tY~IT!kbOFrnqOGC*~`gYMbK2ntI?*+eTQe@bggxvPds{3sE zmoTgd!`56)zx1!&#&98pY==HIpY0PCg=15c<0yG)Ve94Ut85Q`q5pH#rBmFaje*ojO3kHC{UlSO`&B4yHe=wZ{_ayHN(h!3l6<_aL^@0Z!L)y*?_ z%l!)?ful>{-T7IRBh2Avxv4k4uN`$r-A|8++n)-Xo8-a|ggF+*nMnhM7S2&jvM_S0 zkU@K32If?}+W&YOQ%!A{|K&OidUlQ521f+vn z1(DO2yPEM_qJG4|w!XNjbz-t6fw<>pIlt|4cJSPtQzFz#=3dWyjvlgyvNT7#yLK_$ zjwPc@iEUny*<&aA)QXAY|8Hg7bD|R#uW@{b`yY#Z4d>Zkr zbe~Gu{nWJk-qzgN|8OjU2jTyLMMHWB(ro0*`#Om8|6Q;IPOzc;i9r+iY&VyjRJQNU z|K0G6(DYfQOgNw5|F45WK;WXl#Z7Inq#4$-$vAcT3DA;po%h(__e;cL6a7Z3EmrY* zDFjGb+6K;@?$(Rmw~D+8vAHVRYki7Ka%?$YnqdyzJQPg8{8~P01vor5Zryn`%Xa-G zZ3?&l0nle=M(D7S^&GyxT)irBE|JM6+pE*-Vs`9W!MW)^{^ z6T@?M&W`oVLHud3m1Fj8N^=k777u6_ZKwKuABzx?@ZKBSCWzSoR)eqGOc3S4t-|6i z_Q%G#ixF5Xd$KJ#+xZ#(4O%kxpO4fayhil1JW6Py;7QK-AJnS7#}~g480TUzVW%U# zoS(-@v5Qd5} zzsN6+!=v)yCxDOOv#bX#2k3!$L<3{zB^-*4UW~;JqaHId-cl!ncf<>`W5o{^J-{EDAM)Y;sz2Omxq#uYoHa)(QTng2 z`mL+=L;rYU{9Fg**P4zGYi!$zjNFS_K&ns=lDbl4g7jr|whjmLf)$Fm6RfO@>vAb(0ChgQB1y1YQH zstBWaK}MoPigfioUkr57Z_xAG&qlw-FOstQbqEu8jGZvA0HPBCSwL(~xA;K>FTM~m z@0pbu^F*>$27jrUIsQXclaY<>k;pi_>4T=y(MG6fTq>1TD?5V)&F1k}+7tF1DXCvd zO`{@0k$aNM`yCa3>|T~84SyUpyDJ-Hp&tikV`(cY`!urgmDn0L_F+Qk5_Y`)Y7>a5 z=sdi*NEpsRn#yt-eC!I#QXXo$b%FlFJ0}NTt0B(2wuI(^fo$eiiwnpP!n+TH!LrsD zXl0!WzGCB7q@;TadK~C zzdI4CvTha3P^qC;!{!!y(})~_sf5O%(B+U;C(LpFqMp(q9yNiV6RX1MPb2&{6JmID zlHw_|yp}i8|7aDpHk>AmEo|1$#ji6ig9VVvEREx+&_*!VaIBdXN`h)3y)8I*2kD_cFZ0h-Tz5q*{sw7ba+2_1gXL#?jdkB^ae(`( z-YUY_Umf7{=Bd|{O{%>9AAVd`9i@!rZ0`5%EUmn^LUDwG$DF8J%tV>EfeCj%Eh}I2O7{3g>Us3HC#~)WTL8`b`Favhg)C&!$5F$`#SEkASZHH z1}h4|%!^qk%OT*)3&qMnsnL4(VE(hqL5lVG%dimKQdv0Eq1n^Xuapj$3FdoKk}#>xCH zZ#}c_&@`Bsa-sxuqD&!n8SF=2QM(O^Hk+%Eqw~R>Q1tOkjIK}myc(~0i^|`}gJ3tq zHj~Ftxm0jboWmj<9%!Lap>(Qa7X@={*f&+yni#60hbDl-p&4CBbN2OBM^9{F4SX@M zJpNUyw2&I8@xW|8!ldSH+|OMXTb5uGrkCEEkEXh;AD1=`&y`Nd;oW=N4!*#aJG8QQ z7WNi%79ONlVpi!v4p?9F2j`7*ov(so<;}Y{MQz1o>vLGG{Lve98~E!#Kkh$FyTNod zQTb5X;mhYjrx7cm&eVrf=^gXfc&d0(B@vPFHOJ`(#$vu}m~|*c)#se!vB3Rw({ese zMxypDy`7-_pEv5ZlW=9b6Ej+#gX91Z!d+oF?9V3Wi*7IckJfD7gSqWH3!v(viA;HWA~Gjn+U!me@i$4}5Ff1I@M9&TqNW!V>Bkf5WWy4Rz{vsl0WhviR-cbHz0l0@??$S*V}0{ zS0nw8w6!YzKLJ3M0Is>x?FmE!`QCpZYd?iF8LG|^kzL84{xpq*?BD7^1g11(DMIzb zUgu#}d~ z1Z&j2s*#$B?a!Abl208)0YB>s#F$yGj2A&$2XWYQAo;fd@#j`LgwpvQLPv}*5=oR? zK>aN--6KWSU$^bO;tWCpjqet`d{bZgI_5?b)5px67vurbnqPVKZk1)X9*8x~bb3ma zs!Q*q9$tTwC&3G<1BJjN(#N!wktCMo#55Aa{SGF`FCBxF5WFZ-hx?$wz}dwJ@|J^!K$4w*@GDwgr- zuinnUa2r9&42h|Xt_SIwr(nNHPIsWakr)TKr~Xm~6>ji^_KO5PgVoR3CcpjnDLNuU zyBm~WmRNSBFSnd8Dh2;I<$ljGRtk_xP)K{AUZNe<$kG123G1Wg{7WXNNH|9&r@pin zE+NvJz;plgiwvH(Yt}S40*<$-U&$S3f}I4rQ7&g1)A*V@DVT0gZ~{5u1pM85L#a_W<6z*ws|ekxYQp_coUBRq*~O?5QuWo&j2=@%+bX}7y{i4Zytb?4_b=$Ub6NMCVxZ>Z+yi9s{Qw^78|Cy<1SD-#H>4J*hIr*^)H{7Mif-q= zjCp9zPkUf$EQsu*wn(dQ&HL6+)9}?5mf7{1tNW(i@Yh!lV~GT4D)t8Fv&vq-bDVpd z>!H1f)YjONKA#>Rm@=;09{%p>9BWh+WBO!eNPMRj{aPnA>}GK0K%9B!#Ci_8A)wZM zW^G{RV;LbiP0t?@LZ!wTkCv*76xL?rnb=(=G9x;U)aVP(G4goMU!l!gM=xudTbuH% z$2TC{y}g#fj!}FQ5noHKefHLZSes9}g1g*HA*~olw5q#MV{N7qb%l=L1MQuGPJ~Uh zj~b@0oVYx;-JZb_G91eH)VX~{df(}DolcY_$|rVk&J5C6+o^WjC3&PFN0mzA#K)Ll z5HWAH{dCfs5w4L>>phd1A+?)h1{tWR|EuX7en0H?>PBfmqlHK2z%tdTl%{5E_QqZL zR+!h)*TUSMfYgIY3QYk@jiQ8j;9X{C<`X4U?C86i%g?zQ5=f7e8`)u9MXxeTC*t20 zP8bKvd&Q;2>Zw-haCWnnH9bnI7LTYS#tw=hBxn@dD8)XeR49gfH+LL55@b@Hrkx$r zJrN{&#I1JY*FW25FmVo{Kd(?S;JJlJAjwG=de@!b_#ray7A@jNS`9ykj~}1ll*f;E z&V(FWe6=r|%{WPP>ewY0gl0Ng)AV4Yp*V#*zh>7H9B8y49k7(B8$anh&z~f|n8c4f zRS>nW=WEOYWVmcmb9m_2vzNh|`v_)bxUG*X- zO-L|o>~#Cjp0M7bmPybt=C2m7%9h(mG%PA9d8{8*Y_hz}H8VW7EoMC1X=unxlxltz z^{<$0rMWGv_a$4Ohc<5!&CvgFL1?N(iZ+_58_02CNq8US*|B^#Ent4PgLal6eu4ia z^7cj3UtKCulYqVG!zy?8tVziWj$QMKP_hvDtW&Ah(QttU--I+I4gDVQt;DKs{jD1t z{(_MY=nMno-LkkMz2XRM;y-;dtTYm2rNXvy)jzpcOJ^{&b;@Hdabtq?M~`-tDi7xh z8cY$_CKIpP`$^2}DQ|~-v*|azTfuRU=rw4rEvgK|0|I{up%-IsR3i#?GMruAs6`a( zVz}Oeg(Up{Mg(;T?!QDS`>-bD3`A}tq|qp&nz41uLvKy%LL;@Woy{7gWey2NMM7kq zb%*@wmn;tQIfeYAPgteYSy-RRS-nxzAI$N%Q<&i#`ysr&<4e_2Mz)$TbGos>d%IuU z&%7)j`qsut?Pq z`d2|3q)o0fd>Z0f)t#(3QN7phzE0nK96x->Twmk<={JNbD@_+Q`8M~*1iC9)_x4Yo zk3r0jaw{l{x=bBaT5JIKO{F5*-17;#tTW-rIIn8sQbi7F?!Lft`YUyKerdbA5l+l% zS?u$Ogy`q~k!O=1gI3$}T7V6a18@eYe%Y_t6j9`!)WN!kHvehC$dNYfp+Gtdzq@6U zQo5S(!6`%}{ciXBvEW{R!2t_W^TZ{V^e?8Bmq)K_?1kIYO1gh0<;^`{p;uY8WRt!x z8Bkn_ef6#5d&zhC37f<72t!es!`8l`uXa^8g|y8Y-?DWtXlESVz@EDM>EE(~=Ih+FYfmzFIEdy!7^Fr;(Cy_R+(OiHm=Rrp;(9z26@;yW$7FS!}za_!x(zk3vX$sy6yo8 z^Oh0ainpvSXYD?I6q%HHaq~oq>|#0h>8eM58AL5q6v^8?G>mf2%e-&0lJH)}BvbwS|9QSXpWoiorM2Kh(VSE6!A69L`I*(c-|~ zG`Xgl{G|5#*A^Y_9JCcJVdm~)-~wUs2Xsfk0h_rHJ#Uprqfkj2J)Ec0GyARhqlrEK z{=xp_lD^)Qf_VowWGO;;W9Mm;irYZ>h{ zUh6SwA;r~lwG<7N#GgBsrp9*GEXsFRm1Dm=fd5WEZEhh4J+guhc7{eJT1q-%CW~6` z2d5;a_Wq3p(BA2Y@wi$5ZNbDu3*jVm2bCRB3TBY_JYPY_2xf2Q zudjK2lx^02KfSu-N##3Eo+9enc5akUpdRwKQ&(v2V1D>Za;xPhQEbTe`#aOjW|%Gjp*WfQ9Dk&jcw z#O&)<`c5K|PuLu(6kZ`WbjEweoagy=prpB#&RZWWtONPsWHzT;(Cl&b?~nDPTeE9x z-z%uB4x(jK?mT43famfOxmQTuslbP}51Qj9Z%yuHpYyDW=;_ychD`f~Q+eq15qC{b ztYM8l)|7vbdPIt-z_nG<)WtQ)aO@sy)AZ;)ZF~sY9aR(B8+I$2&@;}hwv=@Hr2Hyt zV^){H6Ei1~V{ShAJ4JhpT~6}S?h6CrY7gZ}sbBvx;9gKhQg7VKVY4J1U7k1ovWM@C zRcUjg3&$gPBNqueODPt`bEIQbZKN)@h?DIzesdt^tv*1o$ zQhMq*uyxsyknJ~784{#gLC_%kuIT&MmmHANRg&Ghw5+>WqJyE1i>c7nPLVEcG8pjM zwPxeL%Fl7~ajML#5Yh^<$aU~jkk)X!(bf@nl?X8l;>~LvzZuN>-_D9il4KavZMl6u z@+tPo7BaX>EV*ZXsPtm`;Q2x|N&M`!<9n3~#C@nH{)6ox$6tInK2h^#+jZ%+v?65I*y5Znpw?%KF}upo`Q1$PN9jk`;5cW>M+nI_+R-+TAXZ`Q0e zQ~yBsg4R=YPVLX$yOPzPIbU5)jh0y2b>KHAB)OrlHzB7)WWtIx*~6cH|}o8|=I`XH{NhkrT2cB$@dtPZ+?z zl!N!NEmnX2kJ7=b*70}y|LC>y_oAcmS&XYoZEtee?#~sAFw-JMA|Ws~(=q|SNvg8| z9BXB;x%${J%4FO96myb=W8q7t$Ti3NDs9xi*TDD}+Do!Vss)dEXNzTC(i?GDX4KGUh2SZ2=5QYye%sn1a zlJZ)7931Z3dlT`>h>E{%-i~TKmrxavUx`a}v;+u+oVkYJ7VtHYKm1Zni{gb?22AcZ z$If%HWsty2=eqOZ48(4S@7kTg&Mb^!j3+h{Dz1 z&u7nHQn%jET5X*q3JeBCQDDh_dsRALHv=KbZpe?7s;q^3&KJQ4sXyyB-lX{dys^f= z;Ib+CyXmpt&C*xlKQDb5Lpjew1iNA{f+fEv%^!dKZuW1PP^INenW5Ax|M8_^`FRndjH{T}z-8=rAbi*(y>$F^|wuoy_rn|&YGo;r}DjD{>BIMKTV z?BLN)7H!b8@AIR>Yvp!sA68>2zGLe5&D+hA1?9QZr_Haoh8pXKuzoJ*qrn;;8n;`l z%~gUBJc$T0S%1JZMTjB-G9QzET6wx#pGOWM+JF2dW<8e=wv z7Q6js;BhpFJ%5PqYx8t~@~7_)y)W9+xxQo6BSOFWMP_pSpN4?niyhA+1TX(k=uTZ| zNIead{Z}BGJ|14LlG1!We+@HgUt4tfevxT5+Qxe!pwmQSqGoI5)P#gV!n2Cw8g zyT(#wt=y(Rk1-)BJ&pfxLS;-In&}ww`(0w~Q=H7pz`)?cGB$H#Ia0l8F!AoMGz-<_ zm5uNUaw=lmKOWiWHl#6)N)qAsE2%}?A14(=8>l>pZx`COB%M^?h@bKs4HH1? zM*xs(?N9O<&m%%NQD3gP-sa2c=*Qb`GU~I1bTPk|%kRe>znAI-7);$e-H7#C5g;Sg zAA|^FV4r;LK_n=^*{ORRg?z8+m8BU)(O>`P4!z^g>;~!WSH5kD^%d$L>*YdFE3A32 z>XkZO_hn-E)FwV>D>b;RbLH~#T?bw57aQ;3!z(wZHaCT^Mg`(p!LeA8lGxa75bRCB zqC_b2oywY?rQLC8C%9(6EBo{8K6GI1o-Jz@wQr)P-g zXVVWRRTp9ZH{a9eF+xT&CY@={tRW_PB=hF}(ZPdF(DbeqiU=~&AXGI1V()bu>f9*E z`~9Vf=_rf>sdbMCcwJPk8*R9+sKFOrFxDz+)lW7u=~wAKy3Tul z2rt}p_i(r#9T_At%_U;=?c>45zE^baAMINr)u|3!jMk>CAFf@3`v=Y@o$Q~L$R+Wc z?2mxxk3A7ZMHka=s*HTP=xD5+h)IZV{p=Im+YcNJKX8B%(Z<_4{*nNL->>Fqe=l42 z??fl9gvZBk_3-fcS-)54N1>whBBF&(WT2zjY5bN9*_pk`gDu;wLN4@?Lr2eO{?_(U z1EhRY!^gGawwc#v{%tC6(d6N(uVXO*eE-}Xyg36Tm~0V$L^ych%i!g)zs_UzvF03f z>^NJo|J`Iq&9Hred*Air_vN}D`#bOe`7wOS0MUMQ;jnK)dI0d=^UYsZ`RiacgS21y zdqonrcef+s5%5iOe&!=|{%N>rzn+Nq>A)iTxUB{=i?xJcZFItK`(oyISNhz6_0z_+ z2a0yBn%eb>lNiChW%VzTldB(R_`W;AsOjMxwlM`!5VwFYkdCXPeQ{!(@b{^ow>#hG zxY%kAk_ub=@L9n>Hulc$oqkzkJJ@wV+{ecSsZxYM^EaD0f2Wca)dC3XCKC%Au|DNY2@ZNN;#`k);tmeT&TvDOgdwl-{>xo@XzzwBNV<({ZCsG0gN2E zA=|a8Ki4~{lCorSiQmk_I(Y5Bq1r~T3PJX5CjBL@C~P+_#5I_ zylcz{5;#_*tBL<+cO;V0HQZkF?p^Qu> zdAx3L;U+f!!i5>vm5}e2uJ~$0-d{8O?=$S}j*r2hp8YF)z#N-e`fJ!I_+3X{1Y~ua z`PUr8_wju6n_7B>s?*3WIU^nW0z-?A08V2Q&L-Uv{q4B4W?c!XeNJKOn8KcqpHGB2 zPU9j2uoUD@ArPH;3Dpx^Dz1$_U@Q^fA;JrSe{RAJYJr}*|iiR2;P83PSL)Hr{ec~DP--m z%!=~epM7OqPWyq{`m9fT*X3$PWxYCdf*9@8-LS_9w3O^*C+t< z%=QD*8ymeu@H9S4YMPo)pk%n+xUOZwy?)^SPcSs&v9W8F02Vrl;l{jWJEFOWIOj8igkCQK& z$GV^}@pF1kF%L_2&1=^jm(#UIe}TbPtJ&bFlsv7aLBti1I=;6B4y#N)i0J)-$nLTk zj8?BE&o?%p&c58^7IeZ1q|x+{N@==K9d*%6s&KkFlG#9p3l)c|t7A_&CB{tM(iXm%boi_b zk&a@nib|~P_A~e!4@U=h%$B1kK97CT(dNXY!(j=%{;&|TSNz0?O5@>78l5A=m+4;v zqPv+?2YOFMN1rH0xNGvF+rwL0t6U63w70mBY8NPzwDks4o5woShwPo}g*6~9HFJOp zFnw$q>*fxZ=;ezlDwMh?yU{Y8wU)F{H;oQ$GHNcE8%W#(To00X2r+4<8pK_FoGi&bbc(5GgRMoIq-E7qGpeX<*$9#6E64YaN)qvG ztu~1P+6$L)ePCcOg~iupG?yANfJM1ASoCQ_Vf+4#LjeZOz}m!LFUtG;<}rYl@(9KTkD?N z>K5hTqn=s7l0lFNs3nl5LU(edwz=Pk%l>WTWp1r)?k?D%TE=3|zmsS71p*^c=39t) z-E78cB(GlC+PZ_C)>ZEhDx2uqdu0tAi^xvM)AMlqAYg6{=rk-M$a38%cLYmuGC z?QK>(3|dv~tTQy0WnJ(l=q+j&6)Pm_+iIJm_&2#3#=vU1E5yR7+`Yb&g=N-e%j6=u zjOwPjrd<7>qR~Q!)hbga4RuL@#!r(us*4La+}~^<5gVr>wxNcG{<*NW#B}cU+ApKx zE`={6iHov8D|e)8G52Lfq{cZpZ_HX?3-;`B-Ll4C5AI78YoULq z_$MfuQMGWGO2*_KNNoY~g*#zPMMagG(cIFrtr#kr66G!sAv=6nH_>reC9$KTe3mXD z!aWu{$2zRvXV&p3yV7~Nfk=)~31t5DlUpXHOKgg}QLyj^2m1-T=U~Rxu&^bUxsXh- z(RQu2bwxlrW9$R6tz5vuvQ|=usdY)^G!ZGHGyk|dO2Hz*kJSbc-MfR*)km=S4t8ez z7E5`FU1co7g7@xmc}i(zGvJ6-6z-Ff_1nS9kQ41j+bWg?*krFUGbS4Kk)YUO(aJa@ zMyGk3y8@&v74Zc(TwA(d-0o>%`xr=Z`5<1G0`0~SrauGv1P6{ucL8!1X_5jrSpfnYaM zb(Fu8c(Xak#iOLQvZ6(E^PzMKt#Z<A5pof`q!Z4&LB73s*kF{Py3WW;=Z6KTlP z%X_NNMIEcv^#d9d&*Bs3=Yy&$9O5JvZ|cEorN2P%!^4iIsN?LB@wUoGg?bqR)%z${&=ca=?|!23$5I=I)55%AXb>0jX2{24~T6|L8iMyk23 zi+5?Z2d(F3(?-c{<3p+=M_Y}53Ya~#QN+}cxk`Cgeluc5d9dS!TDtK$6*)p@+3-dV z;4)P#((DntA7#s{1lL~R!Um3r&@|JLM3!H+R;E{dfV@7YFI^`Im4L`wt+WrknQg!I zoMjewQ1ouK)i<8JWT^TutiH|!9b+bU_lw|MCTa(H zu3uyi-Wfumo)ZaeqhlMZS_kzQB!gswu8uVc!MUMt0Z~hp*om74Y5~PI#rM1 zXeF|LPjkO0S9K4W*|ww*CKeHi53?qfdlPT1H_Tb)QQn8@z-*c3FpB) zost@d#_GNUlXMVHU|?3;H)Td;<@f-(-ZNoyDzcUv9!*;4P$4^UV9=_OGn`~~itXDy zx2((p#Ws&W{T3=nDqMKGF3k&tYo^R>K*4^JT3}lG0=8rS71#$c3;NB~=eg~NwqKz| zj(;?S={Kz$27fxy2dM??nP+scGb1846$ng*3iLw9 z9ZoP>T0KQI!kXUAMP7(6pB9TJg_c5C`F$Q1e(CX?LwI@z6ALBr2gRPs-Z^*!HHbWx zJq(^taW2dFh(EsU?qW)Aqd1~Bgi#4rrRn(NyKMU|`fAwivxb%wT@VjiaptOC)wB&8 zuW?9W&=-1A>PFsQBtj39`e_#$5hGAI_HJG!hhbdwjO9ucxM_iKUN>jI(LR2^LFU|Ad8lXCFW3Sq7@ zzL}+UHU0XIa1>&Dx{%m&QxsgTTBV|~$NN=y()9GQ%y9;zZDgds!*^symnZEqx)DQ& zgx1jcMtWPsxKkAZKn@$K}^>mrILZAv|g8o-AF96_> zJ7<2BkrsnXQlb?WUhYUbvB&d!b0y7gV->j*%5y+0Om9leOz! zLe+&0ts04$>}&A^=knyj2r$m~#l{L&7QBdHj`7+lg4y&tyK?cwOD)iIFvSzvAR$`v z{H!U5qk5*e(*NU6R3ojNa52eR4ey=C= zFW*n#6A?u(-J*)geoThjRIly!?*-pBoKagj%L_JdUStHDa}?3hL0Ek0AX)MdmK9Jd zUA=g?l6F=Tuz!RS3^OAak%zbd&bFT6R$_{386Zbhd6AQCv9NiK+NAt+b^>O-ugaM=5(yJMkY7qviHt{kyNC0;LIqdB$ zDDAk`r+=|Vl}g}vA(5C`s!HL^4)z?Dm5SHM z@REYLT{(vpz^p1}n!Kh>h8zzD!VvH97)O<)nHwG4X00=pToD*l%-%YLT*6Zee*|8K z#*v17en$D+;zeXIDcIAf@8Ei_x^v4G?3r%Su0q@DF{5}bh7olES_osNMZR>yYlCUl z;q&NvcdDA^DU#B5B^NJT^8LFF*<%FqW65INm-nA3=CG1?AZ8Qr`PT>9h2yY;%-<+v z+P?AH6M7=7cr*z}%x+#H%2X{xAR6g%|%iZwUQU+F*7iSO4hV44OPlX(3VtJ5- z7ZM{UzOgcBYcwgFcpj;Al8}pTFA8U>2@BvDaK1MkJu{bdxE&*#GNQ-8T<*Xe$NLnM z-G+TGx00RRe7aSV%vX$-r$?-q#5SC=k6$V}gV7G@1J}ShZTjM(EXh(Vo_iUKNG)-^ zh7%vZY!e@u_-`#h+h}UWryGvnRmNP|#X+cK4JhN(8%Dekaf?Gc7zP_mGzU49L(d$C zher@jFn+>%J9PdPuOZMjuk|Ch0dXTR9mOW{MqRs>IZ)hI7hBG*}h2;cf_v5W9sNLhno|VA~5@3k}4tH z`drPC_qaKPZ^{`^ZEBf`8%`{Eg_ZRViM<`*v02M{$pmA+mmx6}}5K#)31j`zH zdNzku5;FI+$F1+*n*J5-CaAuSrgcD#Mw2Cuty$h;U|6Cfv%JTsnsa6$gSr$81+8tW z5|$?A0gKB+@R6f!CAo4T<1}smgh}LlZlh97P0R2%uq?*@2%C$otqa)ea~@;d0`UD_ zl3KD=O)$A2t9oAS6-~6YQ3JN~+N~m23+a!`ASPtf3VG>L8spa$pfsL+if+K-c&ddH zA=Z=k)Xp<|?MK9mgo=SxvxfE1OVD$QB%?9Y?76I|LzeTiN|d=3ZJCTJi@;Da^;>q9 zm9x`Z#jw}4UTxlhcazGHfStH>0;D;A-U>{?O_|~fE!sS$tEW`LFg?h^TKm?`YFE@9 zlX=vRvkoNnFaL^3k>PA&%{0S+2DuqGGFG3dm1ZHix_0H>?Og8*g6lN_rJ6NXJSM*) zW8PXoHD*t-iEtd28Se3t7TtikS5~#OD8nWwbYrMqOO9iyAErW_(4Np4?oFVc9h7Mz zowHIQjiUV8;-)#Sx>GX+Ypp6g@~3SV_ie9!0f20$sViJiX$?yQvx3ElbT7(d@5E<4 zP+wr}Vq*0VYj(^;>Q|=?<(*eyZe4Q)cUGf&uC|666J^rar>!1ENYsay$@RI1NUB=6 zADyQ>i}!BH3@hsA9n{WNIvx7<2@7Z_gOB@^nYU2xhlJ#;)+yqgMg4&`77^=JaZKI% zuIW8XYS0A#du=89{XT5o@fgoYHBt_q9i-3RCG?d9A8SohZb2`R3YALITN(t@*6b0U^zzM#G#$+shKYZvz_TQvl%`6lk0yd=4mu!M8R zsA&{OKd?@m@e!0MW(q}$CnjL4sN>cmv?>%bDn>A?$m_tRHF40o24`IG5uozId%fEB z<8@ce%=azTix-ea&xXrDhKOtsPO7{@Coz~^Kf>voX7HTF$dn`Y{^!)j%sj{CG3_xr z7RD#Ll$jBY`Dd~a##F+35i_KFN)W-@OTch{tjxE<2B90*XbFc*ENFu+OKb~?dLEiZF% zlDed9#i=PKd(}%OVo3+(vAh9>u4-nkKJonfJ6fiMNztN-NL9$Wjs#|#u+bGJWVHdm z^b#rt)@P_kT@hs&SJTDR)Lk?zGhC4IC?m_y(tyG(qrJ0stDZhpMCI7yTSf@`!|jz zXn8(b&m#>Ok>6}16cj(WfO?)B#zx9Q@PsZ;lvu{#|xFBNN~ ztT6^QXEQ&exEEWyDT_v&4xa2H=f#lJ}oWhwa@i^ z<^slYSRw0|8M!7|r=!nj8?PN#Hz;Ua^JIjLE%HgH=;o{Gs4F-8u}8%@I6Xp(sl6G` zJt?-WC@B#%F-92WqQ_|z<$fY{5}bg{`Q|GL2S8dNlH>3iO^Km({Bo4M^Wz17VlhYf zzqK=*Sd$$y`TyZu2<8sx^v=<`{-MoT9`<}(>T6KKVOzM4`dSTP*7B8a$&Z2CXGk_e zholQsF)k9dyy`fGk&e1YN1zYjm!`=GdQt?K0M&n3SS;W%8KL{yLShrdKBzr3bG zb+?kCv=%t$$U?>Vqmuf`dfMz=C>iflr7;q`$Sd;T zvzH8ODc1?`GV^<3f-*S$h9+X|#n}%MK{vuA-{Uy7tzJt%z{RDlOH8{b`2qQR6NA@d zf(g)e4K#!2+i?!Cd=6g{2fFLmb5$V1Z87|(J0V>VEX2lz zlRxxnvbRRHDk6TJcl9`^%hRC!yJ`33P5103^pNrOR96D72WzCf9t(#w6;V3JF{+$}_ zAbnya*BBDcg5anagOcd>mlNEpWQpG{h5K%PH;Vpmo#Q#A9sQ{EQ$PIv*8FpOqgsC~ zXO6;lCB}NSj^(n-dhH~XEHOzEo85NA$HN=La=xTz{o%fhJ9rL?9Aor#xe0M+F}VS7 zEdC>VRV4%i`5NF}Q&zS0RzaK{q6Eo_AHa|jCO@>}v?o$G0!9^fZLn=01|cZ)zL_Ut zRlzfvHK3twYOcpY{wra!sw+>=`l#InCh9(I=Z*F3mUiz?oJcYZLAzf8*nRKb!n|Qr5vFKBn@}}sj7`9{ zViyi&^t_m)GgZ@d2oUGyB;iT%i4f-;X8rx5d)hB*;fE&As zK|rVaXB7{xltD(;rn_pQ7L{OE+w(+ohMrJXk&6ZEHqOtuncY@B8Wq3`PX!MXciFPC zmJW+nIG;;b3&E$1v9IqDD)663cgz;pMzIr6=kAcI#AB+G{hu6Za_>Jm(!!_EQ1A*% z=2+jNxA&Y_Zr8tXQR6Evax+@Mdy+f;+vJ$fUo7m}*+C)ih(Xz3gy}?oJu&z$^t68#Keto=LpQYeT zA)VUKWeGEN;-f?E#cI|FDu}rnud#nz312|QVT_1TB_YJ^b9x1j>fU|JxvVOCA)prtddbDxW`3<%uqejDsK#MDEc%Bu&kJ_*UXUD);1*vap^<& z7#k)>V5I>>&DJGVqAo_B51z)G(5iFgN-L&{qBalEphBzTz*mp%-Y=R9D|aA^Kd~)H zGjiQtWd9(&coMlJJ*snJoCR-0cxh3^<`!i)v@>p$&JN1qUJ z*uEtfBy6Mk#IJ#IOGjvDt1G$j|4$jQK~t{AmS*{2ZI_4TOFCI-4>>2FE_!BNcfP%( zd9+6Wk(&gfiBU%mt)QPoggQi}C*2Q?5c}V-hXZMN@p`!b{Ikw_*L=gz#bHJZC+1q* z`HbwB+3JJp->h5P~oCjiT< z*oe-vfZfu0Iv#T)1SRpRo`iXu+c?L1o9C=p9g04kJx04GVx*ehg!d;8Clz`Q4n9C0 zjApSC48{297T^`vw-h~qskZfE;>lWnB|QsV+98Db4%r=`^>G%mTa<10ixaecvU|E6 zvuVIG&1{n;TpoV@B>>XjK-R8nSsCJC>|jPL-VNjp>p zRs|`JDMY^)=h%&j#C^8-hAXQ~qaSG7w6n|U)y0wH{!%XV)V!ff$UAE_Qq3W>MW&$x z04fqZQD7;9h+EL$`-xg&HxNT1O50pL)uO zeu_%1baDA6lH|s-E)`5H2>MdCCLiXsqs)Y7QB_blx@n*MppIG1QFx7 znly8$FB6Ei4tS7HGnz^miv5~WRJoOppE?}~W-;XBeAo4Y27woDqvy$Xg#0T>gb(wb z^#K>^mr*wvFE5Q9y*+2p#1KxAzFbx`;K|pa{z!?_!BNe{4}Lm~?O|ZeN9^=L%T!7H zANXR2+vwL}u2iglJ}kiRekbS zx~&T{$kl~Vffv-KSF~v1TBGh0^o0}yu@^Got*}3Ae^KxU>?)^x*3M&KQXKA$^%Y+N ze$``|)aYF0e=+=`^AT&SZvHUyVmRT}3w8z98S2G<<2_tUXR6nr2yzhliIc?RyJG)& znfFQ@p;stBEO_2!H;Y-mxuMBnuhtEUT(`Wja63JW!O6Am0D$^TT;PqV{0HbOxjW&F za{QC)YqxvHX%?NceT0!GTWFG*GB8!LeZ!-SXK3Ue_qACsAXVj|yLB#^9H1^9$d0MWRV6wU#b<&MoH*_#eJRn^sBwtAXz(|A} zRDBa%=-n=f6iV0lU1CGDj+QxEgnCLs;hSjH?e?-HgaB}Z`O_+L;%&((H*3Gfz^$6a zODIQ@`u;n#I1di(9(73}BG%EVWKj9}^!-V9ka-PBdfEmJ&o!6w)+x>QLb6?QbU*Cv z9SL1V4WN-)98#!O{XKgH(<@@t?gK|s*5G2ri9MU*SHkLXn5n3b8BAE0mg`*>UO|vN z=6+Knpyc+dWW~E0>aAz%W?>N0{i=ZMCzKx(3+Ufe@{6g%`z7Q2i8n$abzU3e_@H-> zN8Pgelk=e&`lyCi*ghB46T`+*zKlWNA(_fEuNbj`WEo;t?;+vUU(Kwo#OF5~07#nXDcJbc_iE z-HhvA=ws(}&X#Fx>voS3Hx-5X3Ca%eOx}>W=ee&kHWc zX3W8SHSvjQ`U>viOa%JX0NKeO^0qcXY1DQ__vS-U!>Z8R#6{tZ9B=6Gcamg{r&6(^ zc)q@INZC(o2R}CTL^6nUa6K3!g!v2E^l7ozAV>E{(rRX3T;2#NF`?gRdFmgNBai^a zSlal3x z$(<6lNsp#&Yd2n;5(#NE{fYl*_V~Paz1IPp`pNEG0~AHI%GaK>Yy1g284-c)?U%fW zt$uchV&ASonoU^YwHVL?W@f?}b7adUL%gvKugSlNJ{3bKi>3_zyThnV3Rdw+@H>bK zz70xFKSVV8rsro5SjL!^ofWvm<_|5Ef>+cR)Tc({jBSESBwV_HKB|P9-yr^{K8Zoc ze@lPGj#HDKBWls&*1)JhCsLWXc2sdH2e%BPF?pm>u&yD>g@gU5DztqZGZe zH88fdt12!X%L5mUqH1Hq;ew?mb;n3_*bd8WF5-j=&c2j+bp31OGF@dJOgol%F6COP zse5=bS~0Q)+X**aS)JlP0!BnsH8r&nqOCKfFzUyi5b<^j{69$Om>%cV$w!XNepYJ6 zxVXH8n3!ek;pyhBo0U)Sj`d1B%zbW?iHGYJR|dkTgLnV%+eS-uJo4?DSNWYf==Dqc1#ADw&m z(r+G^4ckYG=BhlMms0*(VsxKL&U8~-^L&BhgFBu_m>O)35ynn=v=M#TObPa6##ozi!Vct zaWTIbGBK#{BPvky{W0%WL_9#vuGw{EpqWmf?yDt=N*F12GXTq~(5A+a2QT)uG|UZa z$dR`w8o4Mb$>D=Ofx|>7P`E}bJ6mtn>M$j)YrjO2eRr&HbXry#x0NX@t*Q2$3v13x zuU>M>B^F{eY?Ut~h_`mDDHC4Ss3d=JEhEqqyH^PO+rUMm^HF(tFuTl}Mdi|~rB##* z#`VaWpdzK_cjqRo3wOc@L3qY`;BDcm9GcSAct8(PqSB8M+%%1aISobY+@0Mgv>#j^ z`OUIX2rD{N;t=1B0oHA3Pc(Wi0JzIfKF%qZd_79XLn;kU7Xv@B2o_jYYOTg(}~)4&w# zX2naLl&Nz=TFl%q!KL_PIy;PnvZ^iEA*U&Sp|c%xdx6&jvuZl!C6R%RhHi1%0o+>+ z>muE~rZLN9>ip5IgpqpD&*qX{vKAY6+S3NEK^SpDEFRe3Ts- zZ9gQrDv^)JdvqC87hR?tInbnSjxuP?Gucpv*vMO1;&$kt7oi9iN-Pj3{(R(0P!!pb z@yR99v61soH@60s%G1Wn5eDtd{l@6{=eR80vBKpIOUEiv_%#z{YfxVLr=I-s$9K}q zmq}Unw%jU2Xmq)%UH~VEpih-_hjtg09n|rL#;A~oa1kTAc|>j+P-eOGaV4f|Bmnn} z*W2AMb-}vW7SWswvbgL+S?0PUqi#8u0eZ?47Y}WP&8$Rp6}E4NTxj2MWIt+!mj0^4 zF!KbVm{pmW4}{TF38kHJh>p!KLv-24$G0 z3-%RB56MmM`xAQqKFG=0nmj;T1>CT}LyH~sBh8POX@SL!BWxbI+XQT7o|v_gd1 ztRip;v^1Xve)mUU1)?bDTS`p~{$AxwZgttY2RWt3LMo9uW#indD!rUL-EI#iA?^TJ zxa5R}dhACRvF$2!DLfWXO9l6UsxG8(8v&C}(Eq>1V!RHrfZ@74?g2%`gabF0080h> zhAKH3c0g5&@`Oqtx4%`#$9MlLr~9g1K@>V>cgUVp!=>Io;E*F6Pj>E>x(c~!C{w@_2GS^-o%<<*LsS@2N=X&T zn87>4us&6-EDhIkd)gq3yR#~4Ht%xEgf*pS9oU6-!32dK@V|9n$Q2o&A~=zMg&@HE zpm5)Ly>J1foQW|^y~Xgx|Lz(T=9^%{0*R>nYa=$A&Vr`g2s8Ni9d{pM6R_6PpZ3iD zU*o9%PeoQfn0N0O%fKe0abd7^L4y07JFQ5|b@5|?lG1j`u*8(uw^;grK6uQazpeRlI zfSDY(&j)q*&L4*OX>c)S9TMP|%j+|2$w~Jw2l3nF9VEtyxC9|5;L~RN!@COBx&bH@ zJxyuIHJk$4b&b41tAeESoVR)j~qqJoOkTQqDI(5b>!+NZQzPkw-)ShQc~J;Q7>0Vlv`44hZ(6~gbb$U}03 ziJZ#nrv({5|7ZcaV{>>-ZrI5lV(0ng3T5wkoFCFT0V*mQ&kMSJlh8kwPf#g#h?*J+ zi`@D$xonw*ss^@E*M?9x%RZ3QK@MEMfqJ2b{sX%X%5K*T{8LBgKHA+#!=JNKwU;b5 zO`cHAwEx$8_2iQ`h5Dke~A2j&RyqbX%=T&eG$hM*M{g8$ZygNQnj zZ0Am8oOtF}AfN8r+%=u(-L;HB49aSeY()u0U1K1|F$;$VtdWb9;VLoh&$cOFxApsh z3C1$U_kC>=2MUeVif0>Ev?3n5ZX0-e=IW=*>ZI3Na$XgTOmg2%jRXR$7JZ&sxYJ@v zc7$t(z7EeiLi_0N-w^i%52x*Y2%eZ}T0NkcH3bb59H;&wdV{WR;+#D)X@a6pmpj5| z*W?)+_wCV)!P3@tq4LVe$i+kMChKU@H4_y?@;Ph#=$AaoifulZgt#ZDWvHBxX5BS; zc`O(jqGV&RUjfeAnl;`o5sZK}jQIElX#OT9I-RF(?XG!7ueF>_almLYCPeLY7_o** zYI^$mola@jAl)^ne#{Y5Qs{u2ao5bD{bvAw{;MXn{wJad&vS7S`6;Q@5ceBxEV ze%0NdHId^AVHqX9Km?KQNs97T~Fqrz;AM7z&s}#?^0gWl(ulcI9m1t`TYqyaFL9Ek@Hw=_T1E$l*W4^-lxL*?lcio&9NoPl9WrC-vi)lUqXR(2l=2e0V z)|_l?DF@|z%}~+hipsca@u3jE11k4r$07ReRn$gPSjSb1KVGS^LlMF*PO{J4;z;W6p{%IfWVUmHk z1l-PCXJ#SnY1ImQ!upRKOg%192aib8F1T0`nUd3EtBP^bt#&HuvcyY3HY6eVR z3cFn6#v#^I{O}}%z|k|F6%SGAVT8sjd#H-gNK6S<_9QRC7oRo5%%u6n6C&l_jkOv85HI26Yz%h8rS-)3GrCfpwN0`w{NQ5S zu-MXWk92hT)2*RFjxDHk5v}4tmDKYnJ`cV~Q0ILakr|!aJ$R6vt}i^r7LJz>^W}Ph zxc+-`{S_2weX+~%dB{cV&DjDE!CRBsyK_+~{*^0p3se%9X)QpdClEcdwr;kBr6{A( zMCWl6w%(<6OTs!dZ+?>|aM7j_B_Qe-ngr*fG@;cjyZmW?>ajf-BMJ>S*92votSF6Y z=@fs$8T=-<1&B<{PBZ3W6L?U^R+|h}El-Fv@|i}BHb1hhAg82a+Q^t`%b6$8>DE4p zNp)DNs?X&1ZB1>Ta=#x1xDNZpM&L){>Jpk0YF972x#+!c9h&MGH>dT=roy7X{7m|@m9$?acpet<#NKc z#K5$~N3xZR&XbkF(_h)O(%L138UyT`{KXeZvDKB>d1m+RAT1dSDA{lmBbe2c>(KOI zsK*G(J|!XdN2?5~q}ZsCTwAevHDOJ4eU6bEcKw_Rns;8>BbSXf46`mRB5=&dd<)=M z)jUKzE#Sra`heIlKbTR1*Q9lLpcZl&(F7CZA+FNgFKJ|Z4}@y-ggnmnaiPMcOTQ|# zugb0g0W~!`+%l@0bhK`&!!*jOzZ+`QsuUQvfK{}$*$(>k89c?1qB>iN_=uU)MP;t# zViF#M#wW31!c<`fRBrIvg+=B^sTPp(z+PGIkP!7S?b`)a_)O2tH72^{lJQ=t)IxDO z=Xy50?UrS!OGR$8%WWRC+QXAN6+jL5|PBEYq&Y^wo#-nhSSj3w!}-j?w!rL>1!FzW-V8U4K`~6xMfSO)zJS#4Z|(uz)<`pd z*NjgN-oh4Aw6{zG>QQa|&vrh}Q|O7A8P54ZSR2)`c}-?jT_@e0G;Xbs0hu)9H!#x( z&SOQ1P5QAAPK7v2RFUGf%>#Lq(C zO-SoT8=gz$rS&xRxqTnlt~5W2C*tX6YH5FQWw()#a82wYZt|`U9IY%%9p$05b3dh6Ng@H5f0B-E5ZCW)>J|SFYrD6OP-om458b zStYRQPAcUX#5cYHj8T3ir&vAkAFW~u{=ZoJ%BVQDu1!LKU?BwFPyTua!$`e`D&Cp1uHYPY(`9L(d-~lGvEsBA{M}?S-Qt%s%x$F_2o;cy<7K zpOzs`C8~-&W&9c^^nW$IL=UlSM`ut(6O-8iTlUb^eH=U(J!piK#N|n;5pSsj8VU)I zZ{5j|i544{OVc|@z+dXpYuM7-BjL;nZ~B-!ZwT&XxTEgK7I0A)m4XGVOBCZV`>v!nHL>H&Z7jfu>>((s z#+cH)!ApmWM%(cGl6|a6rzdbf_0FjHRbBn9rj%~>mrY7+*WceMLvF{srutz&(xSj* zN$zOI+Fk7HBrY20j-$>)fT@U`VX2Vdv7 z_t~9|3U|W0)&Y*=@6mB+uVRWT-Bt8!+Pk)18jxGotL3lG(v!>c(649odra)+#jR5O?%H&QMK8Y!PR#wd&c6r(D+) z#`9gqI_&S6kmVjVuOOkNeO@iVO=;E1PfQhL+f?VDG`%cF9YH;fUfJv0j`6;oI?5en z1$7iB#E)1zZHav@Ov(lZ1tpg5RD-zKfpiX>GpT~7HZ0A?sx=>@QrYcTzKwYbaCz=; zb|8D8zf=Scw-xA@+c^%9bZG&2@U~PkG&L2Kjv1xpX8DYUb)i;H+3c4mvkd%JGjfiF zBYkBw>#TcYN;5#+@W^h@nYqoYy_TpasF?h|TbpxU^vLIywt9bS)y1jHg2WY1mcZ_3 zfpVZ~^Q)aMe;;G*mmx8@`x`g@qF`!N!|hfe*Br-R~Xy#Jp6)7KXUrz_?j7i7I=2Q z7AEe;!^DIu-OG$+jAKDqJuv<&5nWrnc6MyGq77SB+Cni;@phj!u|-1@6;S8G(^RQW zj*QC_=uAoxIKgpAd&D}lyBWT=?Q}o&-X-B(Pu= zfA>PWc$zFYJFrBu3pW>{I3g@LBR|9`m)+1-S{%2MPuin@N%4a&nHEy% zb8XZvwIBxq$grcsp4X)FV*3B6tKXaT0v`+Hz|2dTGNdT9*eH;T>o)_yXY*wCHywEr zA>)_er1$HtjkJo93N{Ye#(dd@O!S84&Mru)#U%Y7cYb~gWpuef?A^ZX%afg7e?8n= zBzcBpW*KT`F=vr22D5UxEJG52F73axGTknH9+Pvt24iU9TSj{+dbTkZstWt$d3-I& z?|NNsm;t17#M42blk9>>ZQ)1xHmPEI7-5g`5G=?`DBEK(A1ve>zFJRCu;>>T?#G;B zR|pQCAhagx*+hNF*pTyQPU3Wezoe;ixIMJB#58NzE;jWn6j~xcJnE+nb3kM*41>x( zEA+L`%hu{}U`G0Bw^^U7Dj&Z)0|= zr?$P`dE*6}O$rgm6TaCbvmjoXr=OSEEC1|uq#r}Btl3!7zgZ?0{C?V+qc-qkFQ7tX zKsbV0+Iu;WS+*EX^2>QOqW{a-#{Bm zCWtf}FYA4T#fN`quaVP8sZqZB(do{XW4!!!c*FPowYcyd`P5iVfGWwAYE1CDki`o$ zi6UHe)p7W$5`-2E#`WWN<5x$q-fWO!Qu`Zrzo&j;cw1$E)lV8{MW0A>er6PUe1eK@ z73?vRvrPsxwHT@?JbYQq8qy*c18=$5*L|!-AHRSkI_+{8szYkm!hG594L-y()lzK? zV_sz6yUVc+VeohDd`bVXuexN|e^TpND{$>1gEp0qjVh%8&~oq{5VX>iUE)zaf!D8% zP;(sZq%+&++&)K4raKTTv`>GHhS*w~K|%voT4aB*)W^$gLUj50SYXLW61LVzRc2sw zYZRgFwX8Vb*`&Wqi99kl!smZ@@A8F-1Bs$PDwr>mcZY1xhGAtXg>EddWM;p5=M%fR zwQE^dUjpV42M<@E`4>u+2HhskR%Dn=1RAY$Qj!s^TT&W;e%mN_poj9RHleb{BOc7l zWpRS>dJnfCT8t=KT&)`1A)=tRs>5)sFh=MP!RvQ#YnQPOi^S)Tq;bqS{O~u8?CjLP zAlYp{pNXWoF36E6HJ3?r4SesjIlw%Q7ji4;xbe$4P~CSAcMObY3S08bh4W3Z6VrJG zUnh=Gg~+^neZueUG`|(>|4uJ{DswKp3YmL84C<&bI8X9H0EeOHdTmyh{JDXKkT|E} zPxsAp0Y@BRZ{*Ph+&&D{l+|$vc@&UZy@<=oRzI7*1)_nsdCWuaUL`}h>S|EE-scrb zJEMu{sB|fNyFeGZ^}rj%6>Q#Z)BU|mMHt%+WmDG{;eTkGLM_KE?e8OV`uU_Tizu@5 zWhr0cuf(%r!fnQO-@$Cr1{Ty#Q~Nds5-v$xzlR_?7$%B+N@dqAh(|vB)o8`d(^i>J z7$$u<)5I7I&oSyFWt?qiT%umYRK8q%T+ZI-sO8T5f{Ixqu_!>_$5N6AdTCSJoO(Tv zvnyMsI4xjq*)b5@{3(#K%QgEe2Tvr{p$FLmQy?>7H_4w@5*5ijYpT?)TuXfp7nIw# zpOcqgRz|h($m8J7-orLpm(XZm<+erzAM=nwu|G&tORiVy)>P$@avD9b>r6sa5`d*T z>bOFfM-bHPc7IW?zFY5@$R+XU=^4iD^$@lad$STh*~WQ3yg*PB3S89rMw}p3!%?BK zqF+Vf&tW^RreBjMY@GPxiI3JdW=<-IrMJGLud_!t!U_b@nBBbGRT2aZs7k7>g22wQtm&UwH$IE2PmsKp`yL$Jaq0c^4D(uEg@@i8!bl7>A9e{i6UUT5?I5x zdF@_=S*$Sp#ZpU4hIS%0T5QQW+&q=UtY6vAdVGE8G3uCo)J`lJA#ZEq z&d0kRS!_umvfISZw>8w(j&TgEum)#MWNxHHB*pix=B2EL+nD7 z_`n1+5N-4b9K>6JaD9IubEGR!opkeU-M;SKD)UKaN&I>r1ZxVD8DsaX5E1^ijsGsj^9>%I zE*6>m!xz=JDwMAEuRgIPpzaFhzJUs@nk4h<;r&BmE6f;4QsKR2#LFyR)G7YDH03`= zYfYcfEijpnFLaqa2@;7bhDnP@($QOU9va)gMEqZ%Ou1)&g~vOq@_Sz{^wF7#+`UL| zry%?_rH8yDmRJa~>-Oz)jltk%*Fefm*G9G!DLN`gwZy`hzWwnGt{!v}xATB76`@z! zdW1`ihp#o$S#bJ1+VcpQV^Vxcm=lWAL~d7}*#w0ST)q5Oq(>f0ODFbGRrL2m%k|ET z+;YX_3PnD)Gm)ECAW`K%RKVk31Z4OuQZC_WJri&fo6%A2GBzAZtUX}G?=jDx9sRbH zrhr-mb{L%?OA~rA4(k}KYJO^o^MSUcp?az+;)M3Vs&J`lZ|HkETa8y!CS0zu_cKJ& zXd`XN$*^6&mdjG=kQ62`QCa1!oLQH^86(4G;cTz>pd7)=&V zhyzBht31k~{k9Y;@yUY+DL{p~zpa4UC1oEaXN646l`7LX1fy{j*Ld3QvzB&aNqXAx zvkdb^>DipO;i}_Y93*F0A6C`6r#Oh2y{drTBioq!Ja3loJVwjX&dFmAgYFIND!5Xq zF7FSmn6jV2NF-^8&$1!ats)5}^vn!evA!ikY;QzE;&sd9V(HWqk{A$InK|xdun9u~PIWH;asYsqPIQLs_vO4eTi0{1G1}&_ z9|ICj1TgG|0@eNw@dO?nT`Aqfl`D6x?x^BRTqMcVnlYs4&Y4XSj<%g3BnGC6Qo8uB zP+~jhq$CZi5zgw-(ZlWxUA_%&y-oZbcWWlGmxTf%COCc8SVKyD5 zj5}8zIqysX6q66QU>Z-oeFV=T z=eo>Ofzm&8#S+L9x&!4oMvb*T&9p}?<~7X|7=*Yk3s=7J83)lAsX}RdnB(y0D~{sH z#FFm5d~C_YlmW80t}*z0VSw(#1(~ko1WdEE-1*VbsEvu2)Wen1{ zfgC+L2JM>gAV>|D4s)iKHFpzX#q@sv)>1~`Vv0>w}j4(+7XcN+neV%-r<+0-(@2q9drBHpUowU2r$ufY;9AM~%@nPI4UO;Ul{L0C3-*AeErWB>8Zc9bs~s3rOTUxU(B~6%QPVsa?wfgqx{fwZS^AKw@KqAR@6E7_FER~&aD09#l9gH*L+?)KO zZfk>j#fWY3ac^%B^LtH3{S8dAOgSoFiS7P}cVZ16&!>!d$oUqJJ>`+xJwY}wKRw;y zy_G;X23XoJo&iDBt6}7Lo6ad9-Yb*hS~cFlk^LK{Mg`>_?-cIH&U-*c#>e=L5fe;d zo(u)qs&t-US4Z`R=G)ZNGa#84E8*pGm-Y}z_+Q%P+r2jGQ?Lh}^lY=KB|jk7Jo!f* zp@MH!K|!;2%#gHKwRWL#p}S<(!I*xPnbwW7o$xhx2KC%C!6?b@5mn(CuFuD^D0aKU zLQ?x2T3+BpNAswfGVN?b>&NWo<>h_x<@E1v7ySm>Mp@6Ec;|Ir+pC=BGsVEzt6f2m zf{-pzg(B!i(kuz>#+1KZjnX_JX%?Q#-gRm(mus-{T=244+%(ObNS1fexQR)JrP3hx zb~|fp&A29>sfK3+;Vko3@(V=iE`tZv8nfIwf+0!)Lf=xshscLZn)<&Z6Wg8#sZ}cl z2^1l?AQ>v^3{(*^8k7%L)FWiT+%Kw|t9t-Fl{A)5#J-2q(LS92%C3y^?z*v!z^T(P z^|)>C1|c+yZ(lbp?YfC4oF;=0dRyqPb%v*=zSrv>wZqp78GJZUr#}BNaZq$3z|yl{1%?*xjb@TrufqAM`m>@yq09ze5l6|CTBD}rt_pX+`S zs&&PQIAl%cd!>q8=(MXBBJc`tFrJ;=;wZH--s}&B)ijHMgZHv7;-Pu??s=fZAawgI zh+H{&4EC;WmO-DAOMU{m^tB9Qq!(qk?MW5#P^M`k)fHeg6jg6l!ikS*s57|{8Yr7{ zWFaQgY8r6^ZKhz1NVY5gavcT}jrb82P{gc;)ip`E=uqx+ceevu^x_OhA{cByT6*Y) zg6Oj7v7Z$N*oUe8j_%=H@^VRkbeT0?F2jOx92Y+(i+G{+`3&>+cTYW&#>+KuLyeG= zY=H9S^JQ(+;?&7WC}#NlmXcNkY>_*_oRkC>n+WwsD(d^Zk0av~4(SZv7E8{Ke$$@C zp4bx!dWmqp-$V6wh}G@u6A|?1xRYKQgwV`Kf?8^y>_gIXmL02@h7lF$Yhg8&O9;eZ zvQ6a}R>!=3TpjcuzW~nxSho{QU2Szqb(an}wNnh>eT<~9DdLh!`q zxCl9if+{xI5Q93ZY7~{#s+cyi`aiXR<*P(UqSB1qy6U*zVLAq8cSY8ozi0z_GqB5O z#*6+&S!;9}S1Fb<(khAP^+4Nlk@>kyPWe?3wM#Or1QY?pm%tQD689nsZ=pYc4dFoR zhK@{bLyvC*jZByi$nInG{yv7q;NXb<&QxhtT+m$TfmQ82#$lch$SgPtd-ObhZ0tRK zIkah41!dp%60B3IpY4J%qF$~9vR2YFRn$q6Hb3B+1sH56EH&3-lD-i$SJb$szV1Zd zCA`{9d37suY{#^LPaq|5R!47U-c+9g(&>beR2}N#owzkM5UskiYQ}=+ogEU%B+s=e zfyDpDajv2%h?tU+R3yo|)fM}+A`nL1Z&mQ`{&S2Q3p}!}8b(Y|^DGVmzu>pcc!0%5 zdD)cIix(t^;e7CzXb2~lBC^p2FeBd>+S{AOu&f9}v=?4%`Yhau39HzV%mFo>&#NMA z78VOG4?-cvFq)g)XhR*2(|fsv&AQXVU+ZKwB?76=#5j(vh7qc(d zpSi(`U=7mo4cn5#DD{5?%|2h9KEa^kjtwU#%+iZ+oBMh^eZ@Z5N6W%SDU~jd5E=uB=$`}q zCqL$YcO)R~Z%0uBtXRI+$ncSVYu8WJht!hK=0<97{sPWVfX2Yrc0_7Ck)EN|mf8-M z%pYBqrKvUv>CGG~-Z(Hk9eVjKCMjGT%qm_ft){SWz>;H+GuDf>4_DEvjkF=F`3MbP zu;%Nmne{BPxu+-t$VH&)Q@B>Qp!wM3Kd7J=UMu^ zu+sa-SFcJS>_^?+FeB_PQEGQCTE3L2rKfxK+zm|;kyas|;*EIrliuyChJY)$O|d{J zvY)9|)cKlSzVx;+1nqr1Lo$4AfwvSz)KQQ@m| zm21(fICCE17QWwgZJ>5uskYHpo9_`NQIvUKr#ea_HBbUv3-N>lbcqZ{h<< z3zWqFRKwyzQS*&}8NQGD>~V5g826-Ri>?GXlyOxAEByqCH69iwUN<#N4Hizzg+ zZBC|s5}X_5RKn!jkx!mPG@DW3HeHiP%GIM9W@7)VKVlIvLaC#qnAdCnwMG1w_E6BQ zlm>lWe=+Fnnf1|JSp`Aa3nK7V&ArJ8hVg~rbawd)w0_HeVy&5A+x291{*1?d^-A~t zW`Ch-9!oDLD|Ib8*ASX`{$>kJ1H!wSHjxvXaAX$1yNIgH9A^r(Q zHc65Sp6bH*WyhFwb16`7%V2egi*xKzsMZygVF(Kn)LX2n58u1R7B4bo3g(xVjuR73 z1WW{G0L9ptv^L+gG-~fm1@vAmVsPT2rZ?~7N*{_&PvIHTDioD2Pg^#SSTN!?U%tE> zgot5WG-&CzpL|)FQ`MrS+LNil+qYU$HSN`KwZ$Fr_k3vvDYJ5$zzt>-b>k_6tt<8> zNvVu2twJQ4g-c-8GW4{T^$Qp?yM_f25=D@W2*WVcja)EUugGf0F71kVQZ6L9SbEGs z16J34FFU3N*>s3cwHfZ)cH@(b?|eQf}as< ztg=!QhMIqmg0XwT% zD4k=ZH@OY^Q=e>Q`hb(*$QMW(c5cWcsIFckAE8G?s6fgbCt8?YRXn|8#9{L7piDGd zP+G9!SO=J17N5hkXzg-!)jV1T(_&1{jX$$z>4EbL47k#b0PE@(wQdt=0E-waM&rT| z;H!XTI;A=RAO&osr3jvpoRf}Km+Kq#miMAX$2lc=N!)RPhzECxh_Up)n95y9hQ z>u3vD6XQxvU6>5f=vi~m(MzWd+N0|`I(|%!@7*>L^{okHQ$d2PkW z0)z+LjbGchlU}h0x4XVON$BcLhcE zlib1{c_i85Y-4jko`23Z zFDE1ywCj(02csj9ys}0VtIhem3KtQvmi|u05&Up1kCJYCi9-AsY!EE|20h~Vb*>_c z0X(+2v@d0BC~M1mUQ@87SUi_0K292oixWyS5HYlVXu?6q?~~yZB3lHANdT8S?eV1m zg)~ZNtY+6f9qsogby(0MpdR;#bNrVM+}QV@e{|qZXWlBjUmSR&bcU1Qsv9ExVUClH z4v$&m#HxJaia@W#Y7G2}qU2zKX5cuQ&m14FveKdE!;o3#BPvbdT3Sz&&WkjGE85M- zlN@GDCr(X`WMoCxN0>WK@&%Ebjs4r-N?%J4cs16K!MY0lNaFHdj_1EpiS0bdYYaXN zFyEqkQ1wEDg13NrQDUpbQ+nT}+9ec)JcF<>0;{)x4PUUchA1%X;Y)GVc~sglK!+(Rq!r*0lMa0m7L~@N)cdWxCK;3H5D6O zS)H7*Jjurwdxwo`xBCrcLSuHu5@Ebx1!>;o6(?DIh+{=@@sPne0zohO6i-92X5=70a%(o9=b2I(1Z|DJ<|##BX@KyA_K?X&gwxxLGNx05Hk`(I?0k zL{*+O@SGvD968@lE=IjQ$P>>gx9C4OQ~9$7-68wC(0S;p;o(oOr3nPUxG;dYp0^Z8 zCavHwv^eV#uEi8gNq+!E1Q4X+oAefI$n+47Lr`5Oou(~f1Ou2;T&&8zv+}ZFwKygF zk(s3@X^7I>4s|!y=(g6HE9mT&7MRY2+xrHdL%(n~qTa+DMiMGe7_)6%*>7*L_k)KM zEP`jw9b#xRy(+PAukOaw>71Fgka)wS_@X(Yu40xnJ^WH8TSBC1bndvbH0<>rX`bI% zbK@ZIR(-7=4Rpw_r-(;)%62q*!cg)^;6rL(-!8nQV|FjJ+?s#kNc`Z;^+ySqbJUrd z+8>x9-h9DC9n7+Rv~R=ZaT`k4ww|ZL_*HdT*mRpsEh=%NiK5r4j@QD{R?_<1^{vgU z9zhB}P1iKfYq2INDd=U{3z*O=bZN;7C3JQ;`NW7kkG>4P=6I#-cskr7eBg->0!TuHgjq>5t$Kb^#q0vacSR&!E ze-oT~?fN7*_3S-(|DW=PQ}pqB)$VZ|T|EuMoPfj6y-ynDTavy90yny<8BBXTJcqdR zN6XGd2*wunNqze`a)qTaPAN+n!=R16zeTVnW?ft3Xi$H@JIFA$s?A>U3X_8h!bnA2 z0QKS(x5glmdHw#Sl``;`kIMMQxu8RNxGuCNh7b~M}+ZmpC3kWhhU^q^3s4VhB_ zCt|88D%Le**KukM{4Lz0inlQ|vd@r4XoVJz?!{24l5kWl1^B$F0h1bx!>Akf4iN*@ z6f&~=rVi4tPAhQN?TzRc=OP;xXeZ~VoNQgeo4PvtSc}UC%1NJdY^MsH#48ijDtyuG zlXJGUEPwVWuC}=YY~azW}nNuHm2qW>h~=~l172w$I;K8q6Dc}m<&66 zu=Ky_Hj(rn<6K>~*y?ta7cG4sfMsx^QjA!*A+b?eZ8wVxj2(wnL|2KLya{8rON`0y zNJl67BZ$~w$67ZO%`0E}H=B+9<8gQ)EMT%8knu{75zNChZPDAs+=jMlfefcDViEMF zgg(LQi|^CKfjchsdJ9)mp*C|kO1C(K0e{HN1K?VEV0FZXGk8XZaMl_t!2Mk4X-_zO z9s;;m=vQrS%(oAqC?QyDm|ctzNG?4Li|G2I`zBKe!NU({>Q(=%gi*RHxtieX{H z4?zazpXK`)HiCKA?E18`AEI9dq9?RrZCpE?YRQKc1^2IGzwf|eY(GYrv)`Jnx8w@heYO?i`+oa>5i4FJ9Sf=fEGzX0HM^mW zOd@8^_grKR3^$N~mHbW)G+o?bJ5dVT#%d#_DPb&w+gw>WYUSIUHe`L^u!Q2TJZ)nQ z%AYpyF$zs{4A)D~v2p(O<$c|v%~*`@dqH*06|<`A3trm{R}V2GBhx1l7mmucuNCOc z@C5TdLoj=X!^ClMaN)`~-9qac-i-Qsx$+UhU30t{F6qQdJ@kma4atQW7`vq%1ykHO$4J;Q60M$?`2pD9>H&a zZJk(g-j^>{W*+2{vr1|%{v}pp@S+^5hsI8UMkhCLeVjeFuZP)z!aT#7TP;*C⋙$ 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�HRo@D-85r=e}>`(N5O-^nfojI)~@=9ky=X`Iy z-TV!OzQxff>l<+E_V7$4@bUR6A=lCFEIKxp*7nR9M2~nvt3dvi{t`tO+}WET5W&dF z7wkqesqR=_{2Tg~);HIF3&~EaVK`)?-cP&4$T9L1Z?BT6JBg{JXW}vh04DdjihkSB zxBlNRnM{>%q#4ih^0ItZd2#-TFZ|m;SD{`uF3{^g%V2TYM?Q0Ze?QY<(UZb)itdKccvvRh(;CbB;735QvTr)zo*}+uL~-b|c@OM&|Y$&OXI&T>JM$BK*%p z-+GE)=%y_s9>uAZec$ube;82D!x`fU+46pZX@^3MOgCu4Bfd8r2*TN)T(YB2UNU|$ z*VWY(9!^iqZetI=-(n?7O*Dw%RS{9q&ecY}|84GXMK*&x@1OnoFGZSoyk{=|V=+7Y!RdzSB~DrCzQL1*`;voTZL`~)2Q*0UNuhjn z-KrIx{uPLYZ${@#|Ie!3@*&g^8)`h5;$BA`4EoAJ6R`H1=-Fcy$RECXg{F^e=wsaL znqw=_3pu=!>4cC7>Ae8Y*BfsnuZPkMgKz7fg&UAR4lTM(%iQT>n1BQ7>}TywJfk+% z4tIYH@j^m#CIddFKZ|{aek1-{f|sCtV6ON#ozd=6=4z8tU}xmoaN^6+hEB8EbbMM` z$U_-JE+UVZr3vH2#WlVQ7wFz<8HyIX3jgcE#}_FgKX2NzMcq~ku7$ZV=K%v{ZDFL#ydvZSVWZclYO4YlCQQ=8L49Y{9UlVUt0jW zYtd_8xz6v&!6?mCuTo%LmXjn`dt154p}N!1&qW|r{k2c+_{%N^=rtKU)L;r-c|O|k z@XOoYpR`_GW2`z)+!gdnA0DWOwmzo0N1DRvd4q-o>Ap3sHaJ%)2e(ju6&rXoG#Rl) zDbhC@(XNvG&cN((r1R<1r=DY0QSf>3b3w%{Gu5!cK-=GV@u9* zrPGzm%3-UkcB#4$>qsScG8%o+*%c}Qs}`1i^Fa-uN?RLxMvga+Ic#igFCz67d4_4;OO1Dh_0QU| ztp#Qa&0y%KwZ=x87m=q8Seqh|_~pw82ITi*d~eaO(l-}A?DJV0l_!9i{;uaaDbx3J zr!zRLU?wqss=ZP4J{=d62Z>(B8ED5Zt(3>L37Yb{_=n__$+O7H%3 zjXJ7r*f}*O{53Oiv)*mHzHU5x-ie1ka zjFKt-^a?h$CHDcvwfK{)*kM5qlOwlcT~?P*GzEu2umyBoVQEgCkn!TN%n%W|qsv~Z zfFv{)u~S?PY2LdtOkm;9+>{}*&1KWlx*$$VT zlgrFby34~H7ir7me;;p#oX-n7Wy(EmM@~BS&(sS7%ij#CgP*(#)Bg(#h<*=%UrBt| z5_?0m>GcHkxgX$qtg$NSL}Bi++A3$f%zxuPl+>%d~R6BYKsmkeX92*USLitBC zqSf|TOUI>tNp%4E$8{6~oZe=K+|5t|*Bb%3Xu|}bQ~m#T(!PWRqQ3rAlKSJ@a2@&Q zWypgtDxV?mk@90kE`MaP8pPXNUmqPB&q!8CSC@p%@|hWaYA+d~q<9)UPnffZuN*Es|EQP) zGHP0+Ey8XpD1sIfP(LxLJqIpEUHBEpR?c9@nsv{MQ$nccVK~N(F;-wG}6(OvXn> zc*P5~SDvpd7j$&POw5H6emp_lvVCGLI{Kd{qivLKPr9jf zc%cv?6HvAE8PMMg(|^#7Xr(;}%Ne#v`r!=Yp>H(3Op$&bkapA`dh}ccu%DqJ_#U2WM*y#F-dDZ>ise3!T zTwRr`a<(@(jqfur8)8jz)?exNAT6YMOVL4Z$4X0nguam0kk5)2in8qZ~t z?qpu$?qP1Q!8L>!nOV&aT`p9%8ESknnH%BrqwhAR{t254JnPMD?Tg7Hulm*$?OMNi zkpYRl$keDcjDwhJ4UgDj+DGoP3-nh%IxB7$ zPlH_?M|)SE)p8Jp&S~kS@N}oJEGL4?VePgXp+$jppw1A*-2IV^6&%?WjSw*IuGeV ze`Dw`(k~Y{+=)19jd_e~&`|w~@ey~PQ>v@Fhx#s$5GXGt5bYjXm>m{;l9LEeW>frXLljW4K<@M6arX0}Sny%@>Wf(;ZOVCtx-GtB<6>FdGV8LRRF{!f@3KxKb#%h{9GZH3Iy&m(vz+KLlv zab#|xP_1V5Qv%EV&dQu&0qdy%$`8C-1D>c5xYIycGQWEjwuh@k$%cqn)4E*mByBC} z=}Lz~%*XxRJU?(%?@i{mqc}g&CPR(aZ82S4#rKdk+%{WQ)Pk*L&%F6Cq$bAtTiu^0 zYox<*J$7NU!$OsPcV>}lP6>yv+Wgd&8pmM|Of!64#`Kny%P%rb(dnLm=LGcsLTz@_?baBmhBS1HkmTgC9JMV>|@s- z_{g~8E(U$U(0RY z(-TU8>+({zouw$9*PUuN?90(Ih3g$zvC13?!2x|mPup#4))r3C;W{wCo<8@GgA8z? z)cNUEnBuB_0*G1&y3eERz>%)Vhan$1@-`d%AZ^zOZ?*5Yi}3P*8_#$3j^(h`btH^R zGwL**xqa_&7C+o#6WC0eT35hKA8c0nVC-$_W8v7L*)jl=M23=;>48UYg!+7I)@hEs zr)1rRZcG?P@)ScF3lHMWl0#An#0Bc!w^IEUL4oz~%E)uz!w0s=Oa-)MJgUWi?(>do zIA@2_Rh?_gCYwU13Yj(=Mh2)%ucIPWeeelkOr?d|`DrcoT1&9s>?vAI#!)xZv-5E% z=>&6?YIxpzJr=rQlu%d@t;ePOWB-J55KkoXJJef63SB)G2w!4xm`nHT^b93UVXiJf zs0M|VxdkAS=HA4dI7_AgqXtqS0OZ{3SS6#~5;XT1vipwqRDffhDF5ax@?Nt6i@KGy z?EZ8d;$x*AHBB$$@n>x=5o8D092MB6^ z$c${PH^z70!22I%BHgvl2es{tpS<;RG*8_gCzU>E z+x0n4rK`Jp5`7WLVsx`}Wz%6;xoMt4a|vO3oU)#aO2oOl!8_IcB28N*rS_X|M zyM&B0t+0TGZ+ljMU!y{Tty)C9UgN&hZ0qijW}4Woi7d>e(z4RqlA&uksU zA9r8Ga+<84Y<*UQxhqLep?IzJ?gq7z|C|Q1jiqH4IQ)rcPnp; zi`)fw9gc%;?h@CnEDfA)1>RiwqAAIjsLtpLEBS_1}+eW^-LIivPf}q75Jd+JuT~%=StW;Iw*$xG?HTI69GJ^`fO+nfR zSGbfP&io*%?(7M5G3&XVe@DMg$)zPqPebW5Wxe<$?KehpXhmh4$0#Ot?Xo*wt0Na^ zm721-yfS`Wg9eqwA}6b=dGV6)U7=Rauc!0xmsvi^XlKU->5T!f_bXcrWzN??dRf8G z{V2zGqx*W&XPfUuB0YQE#6@!a@z)!i%A)qp+z!j-_J1~kT1eP9`Bb{@v$TSk!A9GX z&C=!fs9R-G=gYqJ<4~YKgPT6C|Mv9CeAB`pjQldsxhzCOP}k9kng>Ju4Z1bl)Av|z zVOaD;la?Ycy^E%>s?BY0JzxfOl*`mN84U8_5(V03m>Jzqp|{dr&3_5>DFm6znOj;4 z44ZX4_uW@EN;7A$FsXJ+N=iDyQz>`~%i~hCpkAC_wz6>WA_k0SZTyu)Lx-q8-)T0? zej6`uIX_4X55JE_^IAfVzHhvDwb33Rt#qSk*l6Tk$Vq4RpaZvJ;GT}m{5@1$+|_5} zmCXlzAjr1)_GD!xUT?B7nO`qUG5B!f;NZY#edtqG-1Pt&Oe`iQ211?|Q0LvNOmNMF zq0mcLkDX^+l$4v$-+G)XN^fOUlr)_0A>jQ2=g%>Jle^K_ChqsvFDEl9L&*``dX37b zHT^*y1}y~DBWLoDcL=s4bmP~PKM;iVt@&10<%nn!Q<=oCY&fo8f|pu6B;ot>TOiEV ztagw+*tfkRb`lnJP^q9;7@I-z^(kK|L+O=yoG@KryyQwfV;_F#*q(FM0&M98_&gfL z+(i!G!muO$n&aKzvs8f})una*?8j%JHa68Mr|U$W7*df_REsYAvAi?VGnM$av}DE% zb^SJ&Ia9t0UxUK=UA>jWA!KGzdV1a~ia8_C0+})oGrOU+8w;?LMHSs!N)LWyb%oE6 zJ9(irpmY^E+=ucM_{>$tuG5DF#73zcEH!1{@^@tO}j@1sG{|;h6e>*LOXAv{VEj z4N*`&q@rRbE{8(*f2}=C=kK&)5eha6Z949!{rCCD5PB6Ml||jh#b?LB%al}Ix8QLdhTZv%?EyPi{q&T;4_9v-8j_QrI)H^!ey|bmr!CSbqA_iMjp9WeM*B z=6OBTDDNAyHM;qT{3%Z*#)E2VqSz$}; zo_#6ok#HE;(}R<6O${FNT$EGMyf!V-mcvnXUdUeSCF(veRg4CGQ4fCyP5a%v)Ljsa zMEhiCXNM7+7MO$&HVd=+VCog{H7?WV6Wd2%2oHFtDrU0YZCaf3B@G=rr3GdTA;VB5UPVaC=$1=RNr0`ITB7|didTHqGDS#1tSUv1VW#nPEgj1)52FyW+XajPfbOoY zKC_|?J-gF@ovAAN&^yAyI)_v2z>xheZctCaoMpiLeZ4mFRlBn!7BJ?jA|F-Vz%Bh! zre)H9VFAU~oU*d@(vc)`pNd7rZ7Rf*%1O3wu!8n~uug%j%HC=72Kl@{u0U1gjE*mw zo38|cx+`QYeQ2E23Kba6&0t_eR!v~*nUZ0;Pa`Pl`AX#=SF-%XW7VUulbXV$sW(s$ zT-3H}x>fe$C+l*U4d=s(oPCSunU#if-(xj6N&wxQc#;~yEEYG~*|W$RG*>Aidu-%; zSg#*nun;i(q2nb=zJ?ghq;^TvrmjS1_Qe7*l#!Y@G&A8c2QmQL1`po~R-ztd`hBu3 zU!ag&D|s8%dzRKJjoK;;cOiy&WuFP)q`Q-w)3yDoGilo63aGi`1(KFu)#bb0^YK2j zy8#HR`Pv5Kq4C8Eg~>(pSc`i7j%`~%dGfc8ch3`Qs6p2LKhR7O$6ed=d?TcPe6gNX zV0kw=yelDU=>EO=$ER!C6&!MIZ_20}oVjE-Nsb#f^K}(ZF6IvzZO7a$h(TBnE$H0F zT6R{AF@bno#i&0!-hBetshq5=Wy+t2;a;8|lT&3Dyg+G13RT2}F+Jq3p3F77>rb-i zPbKzn^G&flN`gqvImbE5t;r1toXZC5Qy#mg$>DU(G0oBA5c(S7I{&VAbm{^1&dswP z(aWLAt-fkD^As1LwDbDW^fi}oJ-27^pCy3ECgRJ*XwXKjhV?G7NAl*JP210Rxwwmmmr-^XD7$0%S|B)>+Np z5HSkgt39+6H}~o4{7QvcdQ8i8nHxuq3v2I9$AbXvOUvzGQPlDoigORMRM6GP(IQIj z;;^~Yv8^i;mUO}VUT?DNc%}+`ay~FZ-obbGA-I%8K4Wtqi)|eA-5se>pm^?lU1{b} z*a0~PRendm66LbBwF!|jC)1JN{vn@YQLrB}Kh1w%zjDJ*+^@T%o1gK^x(9Nz;>Bd4 z0OjNWUc;1ox&@4@Je><+-7bi!{ByThZkSE-t@n;cGN=d73Sl>o?> zccIB=JEAuLMk$S-CHbzmxm#%tt_O2~vXT&y z2r9C!EQNRbJ=P-4EGk+ZZcU-`u zj&O0deoS`@*M=VdjXwZV z=e-3|IsJVPY|RE>YXhk(;00R1)}MUzl?C?jz|SWC z-T2|ekbe+MQO~pFBGO>ZchGy4?ZYZmYw|GzdC>4Xpe@x2k^BOxaqn|WP!Z`#kh?9o za=4yLH^l1TQ=_%ZgdNcwdBbxu?H(%eiif_m#yv)Eml585)f3sxF;eGbc#cb1B~$Qo zo7|@v8*eJRKMtvaC7Zc2t?{b%10(ec=pkey((M#F=lu_&VOO`kF($hXdQ^Pl`11vJ zD<~BC=qEFe;t6dLB(2Zgzdz_`CgC`AOF86(W_g*&Dt2*PUv5RGO`O2QK{pWt))Nup zJtxAb#0ysyJ!u^tK3rO?m$yoP#DLmsWB7C7mQX@Grli~wedH7Fy0XHWIYiqm)(i?) z1MWb$-eQRl4~&FYD$eWghak=a0q7|IqwM-~ERbpoyWR+R@h7bqB!w4xlJj|@no$I` zg`j(`a~G2w9 zwqLCNxW~wLn25jA&WY(KK!KrESbxyPuNhssLbHe~{*6cf- zYf-9i@dQzXBW|larUVV~)=V=qy@YRGA?}C2TM_TN3OKs(NCqS6|4rGKv3;F^Kfa0)ZXo=&7(395Wb=8l`Cew5C0&~OeyoUeX;k3n@w!osVQl{uoFv-#ldK+(Z)X$7K>Y8wd5VG+<} z_Z%hGl6K$OM8)g@Tu z4`@&8+!j(gJv#5FP`vJJDMcIyTkK;taTf~f z-J@HCXBCM!f>e^Dt3@OTls1HuJHj-b%{o~4FJ$Tn5VIAwB9DkGegFhThI+obvvf5? zo!5N9v#7cL(CGsWf8Mcr^)B-!dt$B`(r+@L`U2pkp5`z`7tu6ebrN2__MWvow<)Fa z@7uiiL>8m^J`Gp^VNW=nD!+qsCQzidGi-tAC5gMLo*C{N-2YnujSF)0mhiE`VfEO? zBM0`K$e8qhZky%%@~h!kW%0Y8*VYSNd?2ZY>bimTxQ~9gq3~?>ZQuFHtbuV2wO{Oh z|Lv0vVqlALzarT3NP84EOGi9MJ}EzPPxgHeWr~L52fjR3JJ36|(OF)ybLjM`_kDMU z``G>i$Ih4n{VPv=zWdnKne%>->A#X{_4c=lW51no_k)?@%;C?A-+I4Q&-2#vANjDL zsBY@i-0$BpFt(xg!0z|oKXK9>d*Yhu_f5S^)`;APKQ1hm5>n4 zf^A(X#l42UyyhZQ6yjj?oId#Uo zG(*Gjz3&(8_g>98)ZVVVU+NB)7L{gZP0f8!uIa#m!)J!JyVr8#ogc3*9gUVtM%bx{ zYjZiPTfZMYjZwU9j}1=C=;T@JN1rO2b|i*9zB*2Mwi3Agn!CCLx=w7 zv16id$ol7ZzVn^b)YR~ASY&-wmVe92%0&MVUjFs#l_IdkVv*l!RaI5J@x~kD#*Ldb zYt~(N-6bFQX&qQ+8a~4NS)lWNFQU`M=wkHVzhYvpy!9VzPo8UU+;8w2RKZcQ9pCTQ zf3>Q}_xlxX)*qTb)CW7#Qlg#fQHQlHY}|6owsqxxzv1J4!R{G_pWpA=k3(Y~j;(gj+sGraOVV#J94@(NLsZq1q8_?Lq1M=sQNVi$gk zm!5CdG3({UU-S2*P=bd-{;upWT?Y7(eW!q`frpbvjXU??S?XSQ7dTD9tbI(2JUzPmvz4zW* zy?V6>yASZBNt1s6``@Rer1 z^6YfH&)aXmy?5_k(RHInjgr;ch_^xN_I-f={_p=@2Gmv)4~_fv=ix(#4#~G$4>PblPm@(;|KspjAs>hO12ly{XbSXX?Rea;zw{Oy&*|?6 z8yu+{_){0^+Z>)Z!mjEZb`9R}`f9Mdad2(AP>${Bdelu3M(PIJ7B-SOlzYS0*8cr| zBebpQ0vCY$M5F7|*Vk=|x=t9Xl=^=RzgBar>qteOM?^c1(1|GL5pAzQ-RV3{ZQ9e+ zq88n{S2pmC;Hm!0rcD<#M_u?WUV6S+$B<_n{lKYHrzT98;7`BdWJox6?3hfg^6XsJ zqaJkl|Jkps zu1=m%-ZC)iK15yj@y8$guZKK)_G}qbM~)o%$}6vQFa7p~w&h>H9$pSQHa2$OzI~fF zZw{TV%lFzJ|M*9puN*7-Or-AY-bfI3wcZw$(&oBr6t&+7b=Q{l)mC-gR?GUPpO0Mo z^m(=^7Hfm@BjV3^6^VAy(FV=Pu7NhB_k|A{_5DV zU-|kl-x%y>d{dhTA>TcCu+@|q`}TFZR1Y0Ic<^_>`<>{QT8;h<*OSXZSNOD=c)&;W zrC5J0))y3nug>Ssi@sk*yx(u6+HZ5EG*tT)!J)FD3TlM`}aTazyodPx%=+B+xzjl>s4J>761SR8c9S!RIUp> ze%z<4YXdZ*z4EVLFJ2D%g7FuZ1NGjfVCAbxG*^H{F!u(hh?Yq*P+#@`+Mi2<*BKIR zE4`vQMf)pqq55iA;uXQGE{jkm2{bpX-*U^f1#@y!uq$@>^gzq~Z3`~d6n0PAKpVo^ z7Hnx!t>Bf@*UhiloFTL1t60Gii9 z`PZ+vE(d+V#D=;x`>uo46zKmP7y~TY8TTvNt*=Hq?pL%swzf(1Y}{|C4Z=T5yW@U! z?bW3_YMW^98ctf!vPOD=>bh-fwqf^A>Xr3G+%EwD004Y5SuB=+`ImobHL-iwCj8?c z|0pgk;bVYx%FzMGMi_<9?gh(-<2gkB`ud`qT9>O3ZoB`F=HCx3|{Qs`e}A(dl(^m(MqxkBNyn zAN3XUamj1-VrXb+;1vQyB;OkH4I%)b@5MBE&)`LW5_7TpiXJ|E_}OQl6=+A``dZ$n zsVUeC+V?~4(S31>_wM(t$JT}=%#O$XHbt(lc0BG^bUf}?v{(BTy)o`L(*1tJYrmoP zHw;v2kM3`1Z0yqul=TPxlbCZy&MAqCziO%ryPJ_{?)@H?Ji{vgeLj!q(L60G$zk*8 z2k6foJ?D126-5z%Ph4DFs}p)&AwYZN`-R)30=NKN4Gn5+tmtQClU#fW*pI~o2HN`n z4@5n04nF1hLI_V>yk4ghy)^DOII_3JxL?uzale7BbY@82 zHBal>ug+WhjZ@=dVq@yQsylo3tX{7-7z~&E*Bt1Sd?O4PFrcokE_@=d5TGsjc93t1 z*w|S41`zRP!ZZKNc&38Nq)))L_ryrpAVI2h0CB*gQV* zvT=q%!$hCaMS9%S=Ffh@efoIq(LFN#%H!j15bB@-@?ZM;`ua<+8>BpmkthA~B<9qq zQ*!T)?>wF`I$^+N1L6k7iAz`g>3UiFmFf4q+xvvdeV4H(At52Q|9!cLj(I$uAw!0U z-XLH9vi4hBTPxSuYC5kFpcVOMkzbqo|KSh-(8ms*I~N}lGilJEGmVY){oo?CicXiH z*H@iAd$3!#1;T})Gn!0c-9>dGaB(0h#`mYLxu2-eiSS;fn$Q&NCGGz&cr9#yPw}Sn zF**?+Z!jqG+itzMwD?bA4*AwNy(MAQP^_Phx= z7;ZyjB}1cp{a3~fW#izm*}$TgSkPmpyI@{N%gtkqBPP*?;}zfPT>5zR!f$ew(k+6*x-G@i)}Dhw?7~0002= zSHTOn1mkb;kKk>8LU$PQ_bUkHx+blR0S^A{@Aj>0E(nKuNrx_7O#v7H0002`vHuSM o0RR72JrOtn000I_L_t&o0P|={<5%EZ@&Et;07*qoM6N<$g3dq{>;M1& literal 0 HcmV?d00001