From a51b0f7bd69e0f9e60375ca7df4184fc6eab46f0 Mon Sep 17 00:00:00 2001 From: Cedric Hurst Date: Sun, 22 Feb 2026 14:38:09 -0600 Subject: [PATCH 01/25] feat(signal-score): project setup Add CLAUDE.md, basic-memory context, data import script, .env.local.example, and gitignore updates. Refs: #591 --- .env.local.example | 2 + .gitignore | 3 + CLAUDE.md | 113 +++++++++++++++++ context/memory/README.md | 13 ++ .../decisions/signal-score-architecture.md | 33 +++++ .../research/pattern-discovery-findings.md | 37 ++++++ .../research/trust-equation-framework.md | 54 ++++++++ scripts/signal-score/import_data.rb | 119 ++++++++++++++++++ 8 files changed, 374 insertions(+) create mode 100644 .env.local.example create mode 100644 CLAUDE.md create mode 100644 context/memory/README.md create mode 100644 context/memory/decisions/signal-score-architecture.md create mode 100644 context/memory/research/pattern-discovery-findings.md create mode 100644 context/memory/research/trust-equation-framework.md create mode 100644 scripts/signal-score/import_data.rb diff --git a/.env.local.example b/.env.local.example new file mode 100644 index 00000000..e8702016 --- /dev/null +++ b/.env.local.example @@ -0,0 +1,2 @@ +# Copy to .env.local and fill in your keys +ANTHROPIC_API_KEY=sk-ant-... diff --git a/.gitignore b/.gitignore index f60b08fa..39349260 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,10 @@ .ruby-gemset .bundle .env +.env.local .envrc +.scratch/ +context/memory/.basic-memory/ db/*.sqlite3 log/*.log tmp/ diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 00000000..bcefbc0d --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,113 @@ +# CLAUDE.md — Instructions for Claude Code Sessions + +This file is read automatically at the start of every Claude Code session in this workspace. + +## Project + +**Awesomebits** — the web application for the Awesome Foundation, a global micro-granting community that gives $1,000 grants to "awesome" projects. This is a fork (`divideby0/awesomebits`) of the upstream repo (`awesomefoundation/awesomebits`). + +We're building **Signal Score** — an AI-assisted application pre-screening system that helps trustees prioritize grant applications by surfacing quality signals. See GitHub issue #590. + +## Project Structure + +``` +. +├── app/ # Rails application +│ ├── extras/ # SpamChecker, SpamClassifier +│ ├── models/ # ActiveRecord models (Project, Chapter, etc.) +│ └── ... +├── context/ +│ └── memory/ # basic-memory knowledge base for Signal Score +├── scripts/ +│ └── signal-score/ # Signal Score tooling (Ruby) +├── .scratch/ # Local data, never committed +│ └── data/ # Parquet, CSV, DuckDB files +├── CLAUDE.md # This file +└── ... +``` + +## Tech Stack + +- **Ruby on Rails** — existing app (Ruby 3.3.6, Rails 7.2.3) +- **PostgreSQL** — production database +- **Ruby** — Signal Score scripts (same toolchain, future Rails integration) +- **DuckDB** — local analytical queries on historical grant data + +## Secrets & Configuration + +- **`.env.local`** — personal API keys and secrets (gitignored). Never use `.env` for secrets. +- `dotenv-rails` is in the Gemfile and loads `.env.local` automatically. +- Required keys: + ``` + ANTHROPIC_API_KEY=sk-ant-... + ``` + +## Git & Commits + +### Commit Lint +- **Header max 50 characters** — this is strict, plan for it +- **Body lines max 72 characters** +- **Format:** `type(scope): description` +- **Types:** feat, fix, refactor, chore, docs, test, perf, ci +- **Valid scopes:** signal-score, spam, data, scripts, context, infra, docs, deps, repo +- **References required:** Include `Refs: #591` or `Closes: #N` in the body +- **Subject must be lowercase** — no sentence-case, start-case, pascal-case, or upper-case + +### Branch Convention +- Feature branches: `feat/-` (e.g. `feat/0591-signal-score-scripts`) +- Always branch from `master` (upstream default) + +### Git Remotes +- `origin` → `awesomefoundation/awesomebits` (upstream, read-only for us) +- `fork` → `divideby0/awesomebits` (our fork, push here) +- Push to `fork`, PR against `origin` + +## Data + +### Historical Grant Data +Historical application data is exported from the Awesome Foundation production database and stored in a privileged Google Drive folder. Contact @divideby0 for access. + +### Local Data Setup +Data files live in `.scratch/data/` (gitignored). Expected files: +- `projects.csv` → `projects.parquet` → loaded into `awesomebits.duckdb` +- `chapters.csv` → `chapters.parquet` → loaded into `awesomebits.duckdb` +- Additional: `comments.csv`, sample sets, validation scores + +### DuckDB +```bash +duckdb .scratch/data/awesomebits.duckdb +``` + +Use for analytical queries on historical data. Never connect to production. + +## Signal Score Architecture + +### Scoring Pipeline +1. Application text → LLM batch API (Anthropic) +2. Structured JSON output with Trust Equation dimensions +3. Composite score 0.0–1.0 + feature breakdown + flags + +### Trust Equation +`T = (Credibility + Reliability + Intimacy) / (1 + Self-Interest)` + +### Key Files +- `scripts/signal-score/score_grants.rb` — batch scoring via Anthropic API +- `scripts/signal-score/import_data.rb` — CSV → Parquet → DuckDB +- `context/memory/` — research notes, analysis, pattern discovery + +## Context: Existing Spam Detection + +Two existing systems (bot detection only, not content analysis): +- `app/extras/spam_checker.rb` — blocklist + identical fields +- `app/extras/spam_classifier.rb` — behavioral JS metadata analysis + +Signal Score is complementary — it analyzes content, not form behavior. + +## Notifying Evie + +When you finish a task, get stuck, or need feedback: +```bash +openclaw agent --agent main --message "[CC: ] " --timeout 30 +``` + +Keep messages concise — they'll be read on a phone. diff --git a/context/memory/README.md b/context/memory/README.md new file mode 100644 index 00000000..f8933253 --- /dev/null +++ b/context/memory/README.md @@ -0,0 +1,13 @@ +# Signal Score — Knowledge Base + +This directory is a [basic-memory](https://github.com/basicmachines-co/basic-memory) project containing research notes, analysis reports, and pattern discovery for the Signal Score feature. + +## Structure + +``` +context/memory/ +├── README.md # This file +├── research/ # Pattern discovery, validation results +├── decisions/ # Architecture and design decisions +└── reference/ # AF handbook excerpts, scoring rubrics +``` diff --git a/context/memory/decisions/signal-score-architecture.md b/context/memory/decisions/signal-score-architecture.md new file mode 100644 index 00000000..186c82e0 --- /dev/null +++ b/context/memory/decisions/signal-score-architecture.md @@ -0,0 +1,33 @@ +# Signal Score Architecture Decisions + +## LLM-as-Judge over Embeddings +**Decision:** Use LLM direct evaluation, not embedding similarity. +**Rationale:** Embeddings add infrastructure for a problem that doesn't need it. LLMs can read and reason about full application text. Cost: ~$0.02/app with Haiku 4.5. + +## Trust Equation as Framework +**Decision:** Score using `T = (C + R + I) / (1 + S)` mapped to AF's own evaluation criteria. +**Rationale:** The Trusted Advisor framework maps directly to the Awesome Foundation's New Chapter Handbook criteria. Validated empirically with zero false negatives on 181 labeled apps. + +## Content Analysis, Not Bot Detection +**Decision:** Signal Score analyzes *what* was written. Existing SpamChecker/SpamClassifier handle *how* the form was filled out. +**Rationale:** Clean separation of concerns. No overlap. Signal Score runs async after submission. + +## Batch API for Scoring +**Decision:** Use Anthropic Batch API (not real-time). +**Rationale:** 50% cost reduction, no rate limit pressure, results within 24h. Good fit since scoring doesn't need to be instant. + +## Pattern Discovery Before Rubric +**Decision:** Use LLM as qualitative researcher first, then build rubric from discovered patterns. +**Rationale:** Avoids encoding assumptions. Patterns emerged from data, not preconceptions. + +## "Signal Score" Naming +**Decision:** Renamed from "Auto-Awesome Score" to "Signal Score." +**Rationale:** "Auto-Awesome" implies bypassing human review. Signal Score communicates that it surfaces signals for trustees to interpret. + +## Data Location +**Decision:** Historical data in `.scratch/data/` (gitignored). Source CSVs from privileged Google Drive folder. +**Rationale:** Data contains PII (applicant names, emails, project descriptions). Must not be committed to a public fork. + +## Secrets in .env.local +**Decision:** Use `.env.local` for personal API keys, not `.env`. +**Rationale:** `.env` could be checked in by accident. `.env.local` is the Rails/dotenv convention for personal secrets. `dotenv-rails` already in the Gemfile loads it automatically. diff --git a/context/memory/research/pattern-discovery-findings.md b/context/memory/research/pattern-discovery-findings.md new file mode 100644 index 00000000..7b34af89 --- /dev/null +++ b/context/memory/research/pattern-discovery-findings.md @@ -0,0 +1,37 @@ +# Pattern Discovery Findings + +## Method + +3 independent batches of 40 labeled Chicago applications analyzed via Claude Sonnet for qualitative patterns. Cross-batch synthesis to identify stable signals. + +## Stable Signals (consistent across all 3 batches) + +1. **Money destination is #1 discriminator** — Materials/supplies = funded. Self-payment/living expenses = hidden. If >50% budget goes to applicant → almost always hidden. + +2. **Local specificity signals authenticity** — Funded apps mention specific streets, organizations, aldermen. Hidden apps are geographically vague. + +3. **Writing quality barely matters** — Quirky, unpolished but authentic applications outperform polished corporate ones. + +4. **Scale fit is critical** — Projects perfectly sized for $1K succeed. "Drop in the bucket" requests get filtered. + +5. **Community connector density** — Funded apps average 3-5 named local partnerships. Hidden apps have 0-1. + +6. **Professional credentials hurt** — Academic degrees, awards, institutional affiliations correlate with HIDDEN status. + +## Additional Signals from Video Archive Analysis (39 videos, 4 analysis groups) + +### 4/4 Consensus (universal across all groups) +- **Catalytic Potential** — Does $1K unlock something bigger? +- **Creativity/Surprise** — Core AF identity, not a nice-to-have + +### 3/4 Consensus +- **Funding Orphan Score** — Too weird/small for traditional funders = more awesome +- **Agency Framing** — "I will build" vs. "please help us" + +### 2/4 Consensus +- **Boring Detection** — Not spam, just generic and uninspired +- **Validation Hunger** — First-time applicants where AF's belief matters most +- **Community Creation** — Builds new connections, not just serves existing + +## Calibration +Multiple chapters independently report ~28% of applications are review-worthy regardless of volume. diff --git a/context/memory/research/trust-equation-framework.md b/context/memory/research/trust-equation-framework.md new file mode 100644 index 00000000..e8251827 --- /dev/null +++ b/context/memory/research/trust-equation-framework.md @@ -0,0 +1,54 @@ +# Trust Equation Framework + +## Overview + +Signal Score uses Maister's Trust Equation as its scoring backbone: + +``` +T = (Credibility + Reliability + Intimacy) / (1 + Self-Interest) +``` + +Each dimension maps to observable signals in grant applications. + +## Dimension Mapping + +### Credibility (numerator) +- Clear budget with specific line items +- Realistic plan with timeline +- Relevant expertise or demonstrated competence +- Named vendors, partners, suppliers + +### Reliability (numerator) +- Track record: prior events, projects, grants +- Organizational backing or institutional support +- Evidence of follow-through (photos, links to past work) +- Repeat applicants with history + +### Intimacy (numerator) +- Connection to cause/community +- Local specificity: named neighborhoods, streets, aldermen +- Personal anecdotes and authentic voice +- Sub-city precision (ward, zip, not just city name) + +### Self-Interest (denominator — higher = worse) +- Money primarily benefits applicant (living expenses, tuition, salary) +- Business startup where applicant is primary beneficiary +- Self-payment > 50% of budget → almost always hidden +- Professional credential emphasis (awards, degrees) + +## Validation Results (Chicago Chapter, n=181) + +| Metric | Value | +|--------|-------| +| Funded avg score | 0.717 | +| Hidden avg score | 0.277 | +| Funded > 0.7 | 88% | +| Hidden < 0.3 | 65% | +| False negatives (funded < 0.3) | **0** | + +## Key Insight + +The Trust Equation maps directly to AF's own grantee evaluation criteria from the New Chapter Handbook: +1. Likelihood of short-timespan completion → Reliability + Specificity +2. Perceived ability of applicant → Credibility +3. Ability of grant to make a difference → Budget Alignment diff --git a/scripts/signal-score/import_data.rb b/scripts/signal-score/import_data.rb new file mode 100644 index 00000000..012080c3 --- /dev/null +++ b/scripts/signal-score/import_data.rb @@ -0,0 +1,119 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +# Import CSV data into Parquet and DuckDB for Signal Score analysis. +# +# Prerequisites: +# - DuckDB CLI: `brew install duckdb` or `mise install duckdb` +# - CSV files in .scratch/data/ (see DATA SOURCES below) +# +# DATA SOURCES: +# Historical application data is exported from the Awesome Foundation +# production database and stored in a privileged Google Drive folder. +# Contact @divideby0 for access. +# +# Expected CSV files: +# - projects.csv (~64K rows) — all applications across all chapters +# - chapters.csv (~220 rows) — chapter metadata +# - comments.csv — trustee comments on applications +# +# Usage: +# ruby scripts/signal-score/import_data.rb +# ruby scripts/signal-score/import_data.rb --csv-only # Skip DuckDB +# ruby scripts/signal-score/import_data.rb --force # Overwrite existing + +require "fileutils" +require "open3" + +DATA_DIR = File.expand_path("../../.scratch/data", __dir__) +DB_PATH = File.join(DATA_DIR, "awesomebits.duckdb") + +TABLES = { + "projects" => "projects.csv", + "chapters" => "chapters.csv", +}.freeze + +def run(cmd) + puts " $ #{cmd}" + stdout, stderr, status = Open3.capture3(cmd) + unless status.success? + warn "ERROR: #{stderr}" + exit 1 + end + stdout +end + +def csv_to_parquet(csv_file, parquet_file, force: false) + if File.exist?(parquet_file) && !force + puts " ✓ #{File.basename(parquet_file)} exists (skip)" + return + end + + sql = <<~SQL + COPY (SELECT * FROM read_csv_auto('#{csv_file}')) + TO '#{parquet_file}' (FORMAT PARQUET); + SQL + run("duckdb -c \"#{sql}\"") + puts " ✓ #{File.basename(csv_file)} → #{File.basename(parquet_file)}" +end + +def load_to_duckdb(parquet_file, table_name, force: false) + sql = if force + "DROP TABLE IF EXISTS #{table_name}; CREATE TABLE #{table_name} AS SELECT * FROM read_parquet('#{parquet_file}');" + else + "CREATE TABLE IF NOT EXISTS #{table_name} AS SELECT * FROM read_parquet('#{parquet_file}');" + end + run("duckdb #{DB_PATH} -c \"#{sql}\"") + count = run("duckdb #{DB_PATH} -c \"SELECT count(*) FROM #{table_name};\"").strip.split("\n").last.strip + puts " ✓ #{table_name}: #{count} rows" +end + +def main + force = ARGV.include?("--force") + csv_only = ARGV.include?("--csv-only") + + puts "Signal Score Data Import" + puts "========================" + puts "Data dir: #{DATA_DIR}" + puts + + # Check for CSV files + missing = TABLES.values.reject { |f| File.exist?(File.join(DATA_DIR, f)) } + unless missing.empty? + warn "Missing CSV files in #{DATA_DIR}:" + missing.each { |f| warn " - #{f}" } + warn "\nCSV data must be downloaded from the privileged Google Drive folder." + warn "Contact @divideby0 for access." + exit 1 + end + + # CSV → Parquet + puts "Converting CSV → Parquet..." + TABLES.each do |table, csv| + csv_path = File.join(DATA_DIR, csv) + parquet_path = File.join(DATA_DIR, "#{table}.parquet") + csv_to_parquet(csv_path, parquet_path, force: force) + end + puts + + return if csv_only + + # Parquet → DuckDB + puts "Loading into DuckDB (#{DB_PATH})..." + TABLES.each do |table, _| + parquet_path = File.join(DATA_DIR, "#{table}.parquet") + load_to_duckdb(parquet_path, table, force: force) + end + + # Also load any additional parquet files + %w[chicago_validation sample_100].each do |extra| + parquet = File.join(DATA_DIR, "#{extra}.parquet") + next unless File.exist?(parquet) + load_to_duckdb(parquet, extra, force: force) + end + + puts + puts "Done. Query with: duckdb #{DB_PATH}" +end + +main From 5cda7072a7e33b597c2d38f8d7d7ff82c9484569 Mon Sep 17 00:00:00 2001 From: Cedric Hurst Date: Sun, 22 Feb 2026 14:38:45 -0600 Subject: [PATCH 02/25] chore(infra): add .env.example Non-secret configuration defaults for local dev. Personal secrets go in .env.local (see .env.local.example). Refs: #591 --- .env.example | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..c7d6eb9e --- /dev/null +++ b/.env.example @@ -0,0 +1,11 @@ +# Non-secret configuration defaults +# Copy to .env and override as needed + +# Database (defaults work for local dev) +# DB_NAME=awesomefoundation_development +# POSTGRES_HOST=localhost +# POSTGRES_USER= +# POSTGRES_PASSWORD= + +# Spam detection +# SPAM_REGEXP= From b6f21cd032ed6241cc77291d8287598a1c60626c Mon Sep 17 00:00:00 2001 From: Cedric Hurst Date: Sun, 22 Feb 2026 14:40:12 -0600 Subject: [PATCH 03/25] docs(infra): align env examples with README README documents .env as standard location for secrets (AWS keys, etc). Add note that .env.local takes precedence for personal API keys. Refs: #591 --- .env.example | 13 +++++++++++-- .env.local.example | 11 +++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/.env.example b/.env.example index c7d6eb9e..82c7fd1a 100644 --- a/.env.example +++ b/.env.example @@ -1,5 +1,14 @@ -# Non-secret configuration defaults -# Copy to .env and override as needed +# Environment variables for Awesomebits +# Copy to .env for local development (gitignored) +# +# The README documents .env as the standard location. +# For extra safety, dotenv-rails also loads .env.local +# (which takes precedence) — use that for personal API keys. + +# AWS (S3 uploads) +# AWS_ACCESS_KEY_ID=XXX +# AWS_SECRET_ACCESS_KEY=YYY +# AWS_BUCKET=your-bucket-name # Database (defaults work for local dev) # DB_NAME=awesomefoundation_development diff --git a/.env.local.example b/.env.local.example index e8702016..1a368f89 100644 --- a/.env.local.example +++ b/.env.local.example @@ -1,2 +1,9 @@ -# Copy to .env.local and fill in your keys -ANTHROPIC_API_KEY=sk-ant-... +# Personal API keys — takes precedence over .env +# Copy to .env.local and fill in your keys (gitignored) +# +# dotenv-rails loads .env.local after .env, so values here +# override anything in .env. Use this for secrets you don't +# want to accidentally commit. + +# Signal Score (LLM scoring via Anthropic Batch API) +# ANTHROPIC_API_KEY=sk-ant-... From 94e0072009e8e6af30a64535ad74efb210583b41 Mon Sep 17 00:00:00 2001 From: Cedric Hurst Date: Sun, 22 Feb 2026 15:07:36 -0600 Subject: [PATCH 04/25] feat(signal-score): ruby scoring pipeline PreScorer for deterministic text features. ScoreGrants for Anthropic batch API with tool_use structured output. Supports haiku/sonnet/opus. Refs: #591 --- scripts/signal-score/pre_scorer.rb | 89 +++++ scripts/signal-score/score_grants.rb | 480 +++++++++++++++++++++++++++ 2 files changed, 569 insertions(+) create mode 100644 scripts/signal-score/pre_scorer.rb create mode 100644 scripts/signal-score/score_grants.rb diff --git a/scripts/signal-score/pre_scorer.rb b/scripts/signal-score/pre_scorer.rb new file mode 100644 index 00000000..e5b02409 --- /dev/null +++ b/scripts/signal-score/pre_scorer.rb @@ -0,0 +1,89 @@ +# frozen_string_literal: true + +# PreScorer — deterministic text features computed before LLM scoring. +# Zero cost, runs locally on application text fields. + +class PreScorer + FIELDS = %w[about_me about_project use_for_money].freeze + + attr_reader :features + + def initialize(project) + @project = project + @features = {} + end + + def analyze! + @features = {} + + # Word counts per field + FIELDS.each do |field| + text = field_text(field) + @features["word_count_#{field}"] = word_count(text) + end + @features["word_count_total"] = FIELDS.sum { |f| @features["word_count_#{f}"] } + + # Field length variance (low = suspicious uniformity, AI template signal) + counts = FIELDS.map { |f| @features["word_count_#{f}"].to_f } + @features["field_length_variance"] = variance(counts).round(2) + + # Sentence-level stats (AI tends toward uniform sentence length) + all_text = combined_text + sentences = all_text.split(/[.!?]+/).map(&:strip).reject(&:empty?) + lengths = sentences.map { |s| s.split(/\s+/).length } + @features["sentence_count"] = sentences.length + @features["avg_sentence_length"] = lengths.empty? ? 0.0 : (lengths.sum.to_f / lengths.length).round(1) + @features["sentence_length_variance"] = variance(lengths.map(&:to_f)).round(2) + + # Punctuation signals + @features["exclamation_count"] = all_text.count("!") + @features["question_mark_count"] = all_text.count("?") + + # Content signals + @features["url_count"] = all_text.scan(%r{https?://\S+}).length + @features["dollar_sign_count"] = all_text.count("$") + @features["number_count"] = all_text.scan(/\b\d[\d,.]*\b/).length + @features["email_count"] = all_text.scan(/\S+@\S+\.\S+/).length + + # Capitalized words (proxy for proper nouns / named entities) + words = all_text.split(/\s+/) + # Skip first word of each sentence + mid_sentence_caps = words.each_cons(2).count { |prev, word| + !prev.match?(/[.!?]\z/) && word.match?(/\A[A-Z][a-z]/) + } + @features["capitalized_word_count"] = mid_sentence_caps + @features["capitalized_word_density"] = if words.length > 10 + (mid_sentence_caps.to_f / words.length * 100).round(1) + else + 0.0 + end + + # Empty field detection + @features["empty_field_count"] = FIELDS.count { |f| field_text(f).strip.empty? } + + # Has images (title/about fields mention image/photo/picture URLs) + @features["has_image_reference"] = all_text.match?(/\.(jpg|jpeg|png|gif|webp|bmp)/i) ? 1 : 0 + + @features + end + + private + + def field_text(name) + @project[name].to_s + end + + def combined_text + FIELDS.map { |f| field_text(f).strip }.reject(&:empty?).join(" ") + end + + def word_count(text) + text.strip.empty? ? 0 : text.strip.split(/\s+/).length + end + + def variance(values) + return 0.0 if values.length < 2 + mean = values.sum / values.length.to_f + values.sum { |v| (v - mean)**2 } / values.length.to_f + end +end diff --git a/scripts/signal-score/score_grants.rb b/scripts/signal-score/score_grants.rb new file mode 100644 index 00000000..d123912d --- /dev/null +++ b/scripts/signal-score/score_grants.rb @@ -0,0 +1,480 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +# score_grants.rb — Signal Score batch scoring via Anthropic API +# +# Usage: +# ruby scripts/signal-score/score_grants.rb build-sample --count 400 +# ruby scripts/signal-score/score_grants.rb build-batch [--model claude-haiku-4-5-20251001] +# ruby scripts/signal-score/score_grants.rb submit --input .scratch/data/batch-haiku.jsonl +# ruby scripts/signal-score/score_grants.rb results --batch-id +# ruby scripts/signal-score/score_grants.rb pre-score # Run PreScorer on sample +# +# Requires: ANTHROPIC_API_KEY in .env.local + +require "json" +require "net/http" +require "uri" +require "fileutils" +require_relative "pre_scorer" + +DATA_DIR = File.expand_path("../../.scratch/data", __dir__) +DB_PATH = File.join(DATA_DIR, "awesomebits.duckdb") + +MODELS = { + "haiku" => "claude-haiku-4-5-20251001", + "sonnet" => "claude-sonnet-4-20250514", + "opus" => "claude-opus-4-0-20250514", +}.freeze + +# --- DuckDB helper --- + +def duckdb(sql) + result = `duckdb #{DB_PATH} -json -c #{Shellwords.escape(sql)} 2>&1` + raise "DuckDB error: #{result}" unless $?.success? + JSON.parse(result.empty? ? "[]" : result) +end + +# --- Tool schema for structured output --- + +SCORE_TOOL = { + name: "score_application", + description: "Score a grant application and extract structured features", + input_schema: { + type: "object", + required: %w[composite_score reason flags features], + properties: { + composite_score: { + type: "number", + description: "Overall score 0.0-1.0" + }, + reason: { + type: "string", + description: "One-sentence explanation of the score" + }, + flags: { + type: "array", + items: { type: "string" }, + description: "Applicable flags: spam, ai_spam, duplicate, incomplete, wrong_location, business_pitch, personal_fundraising, low_effort" + }, + features: { + type: "object", + required: %w[ + credibility reliability intimacy self_interest + specificity creativity budget_alignment catalytic_potential + community_benefit personal_voice + ai_spam_likelihood ai_writing_likelihood + ], + properties: { + credibility: { type: "number" }, + reliability: { type: "number" }, + intimacy: { type: "number" }, + self_interest: { type: "number" }, + specificity: { type: "number" }, + creativity: { type: "number" }, + budget_alignment: { type: "number" }, + catalytic_potential: { type: "number" }, + community_benefit: { type: "number" }, + personal_voice: { type: "number" }, + ai_spam_likelihood: { type: "number" }, + ai_writing_likelihood: { type: "number" }, + } + } + } + } +}.freeze + +SYSTEM_PROMPT = <<~PROMPT + You are an expert grant application screener for the Awesome Foundation. + + The Awesome Foundation is a global network of volunteer "micro-trustees" who each chip in to award $1,000 grants for awesome projects. No strings attached — the money goes to creative, community-benefiting, unique ideas. + + Score each application using the score_application tool. Extract structured features to help trustees prioritize their review. + + ## Scoring Rubric (composite_score: 0.0 to 1.0) + + - 0.0–0.1: Clear spam, gibberish, test submissions, or AI-generated mass submissions + - 0.1–0.3: Real but very weak — business pitches, personal fundraising, vague ideas, wrong location + - 0.3–0.5: Borderline — decent concept but missing details, unclear community benefit, generic + - 0.5–0.7: Solid — clear project, community benefit, actionable plan, reasonable for $1,000 + - 0.7–0.9: Strong — creative, specific, well-articulated, exactly what AF funds + - 0.9–1.0: Exceptional — innovative, clearly impactful, inspiring, would excite any trustee + + ## Feature Dimensions + + ### Trust Equation: T = (Credibility + Reliability + Intimacy) / (1 + Self-Interest) + + **Numerator (higher = better):** + - credibility: Clear budget, realistic plan, relevant expertise. (0=vague, 1=detailed budget + clear execution) + - reliability: Track record, prior work, organizational backing. (0=no evidence, 1=strong track record) + - intimacy: Connection to community, local ties, authentic voice. Named neighborhoods, specific orgs, personal anecdotes. Sub-city precision (ward/zip) scores higher than city-level. (0=generic, 1=deeply embedded) + + **Denominator (higher = worse):** + - self_interest: Money primarily benefits applicant? Living expenses, tuition, business startup, self-payment >50% of budget. (0=community-benefiting, 1=self-serving) + + ### Additional Signals + + - specificity: Concrete details — costs, addresses, timelines, partner names. (0=vague, 1=highly specific) + - creativity: How original, unique, fun, or surprising? "The opposite of whimsy is boring, not serious." (0=generic, 1=delightfully novel) + - budget_alignment: Can $1K meaningfully complete this? Is it a "drop in the bucket" or perfectly sized? (0=wildly mismatched, 1=perfectly scoped) + - catalytic_potential: Does $1K unlock something bigger — prototype, proof-of-concept, career catalyst? "That money was just a cheap way to start a relationship." (0=standalone purchase, 1=unlocks outsized outcomes) + - community_benefit: Clear benefit beyond the applicant? Creating new connections scores higher than serving existing community. (0=purely personal, 1=broad community impact + new connections) + - personal_voice: Does it sound like a real person? Quirky details, informal language, personal anecdotes = POSITIVE. Over-polished corporate language = NEGATIVE. Brevity is fine — a 3-sentence authentic app beats a 3-paragraph polished one. (0=robotic/templated, 1=authentic and personal) + + ### AI Detection (two separate signals) + + - ai_spam_likelihood: Mass-generated generic proposal — no personal details, no local knowledge, could apply to any grant program unchanged. NOT the same as someone using AI to write about a genuine project. (0=clearly genuine, 1=almost certainly mass-generated) + - ai_writing_likelihood: Does the writing exhibit AI patterns? Uniform sentence structure, significance inflation ("pivotal", "groundbreaking"), superficial -ing analyses ("highlighting...", "showcasing..."), promotional language ("vibrant", "nestled", "in the heart of"). This is INFORMATIONAL ONLY — do not factor into composite_score. A genuine project with AI-polished writing is still fundable. (0=clearly human-written, 1=heavily AI-styled) + + ## Flags (include any that apply) + spam, ai_spam, duplicate, incomplete, wrong_location, business_pitch, personal_fundraising, low_effort + + ## Key Principles + - AF values creativity, community impact, and fun. Weird/quirky is great. + - $1,000 is small. Projects should be scoped appropriately. + - Professional credentials (degrees, awards, institutions) are neutral-to-negative — AF funds people, not organizations. + - Projects "too weird for traditional funders" = MORE awesome, not less. + - ~28% of applications are typically review-worthy. Most are generic but not spam. +PROMPT + +# --- Format helpers --- + +def format_application(project) + parts = ["Title: #{project['title'] || '(empty)'}"] + parts << "Chapter: #{project['chapter_name']}" if project["chapter_name"] + parts << "About Me: #{project['about_me']}" if project["about_me"].to_s.strip != "" + parts << "About Project: #{project['about_project']}" if project["about_project"].to_s.strip != "" + parts << "Use for Money: #{project['use_for_money']}" if project["use_for_money"].to_s.strip != "" + parts.join("\n") +end + +def build_few_shot_examples + labeled = duckdb(<<~SQL) + SELECT cv.*, c.name as chapter_name + FROM chicago_validation cv + LEFT JOIN chapters c ON cv.chapter_id = c.id + ORDER BY actual_label, hidden_reason + SQL + + funded = labeled.select { |p| p["actual_label"] == "funded" }.first(15) + hidden = labeled.select { |p| p["actual_label"] == "hidden" }.first(15) + + text = "## EXAMPLES OF FUNDED (WINNING) APPLICATIONS\n\n" + funded.each { |p| text += "### Project #{p['id']} — FUNDED\n#{format_application(p)}\n\n" } + + text += "## EXAMPLES OF HIDDEN (REJECTED/FILTERED) APPLICATIONS\n\n" + hidden.each do |p| + reason = p["hidden_reason"] ? " (reason: #{p['hidden_reason']})" : "" + text += "### Project #{p['id']} — HIDDEN#{reason}\n#{format_application(p)}\n\n" + end + + text +end + +# --- Commands --- + +def cmd_build_sample(count:) + puts "Building stratified sample of #{count} Chicago apps..." + + labeled = duckdb("SELECT count(*) as n FROM chicago_validation")[0]["n"] + unlabeled_needed = count - labeled + puts " #{labeled} labeled + #{unlabeled_needed} unlabeled needed" + + # Stratified by year + years = duckdb(<<~SQL) + SELECT extract(year from p.created_at::date) as yr, count(*) as n + FROM projects p JOIN chapters c ON p.chapter_id = c.id + WHERE c.name = 'Chicago, IL' + AND p.funded_on IS NULL AND p.hidden_at IS NULL + GROUP BY 1 ORDER BY 1 + SQL + + total_unlabeled = years.sum { |y| y["n"] } + sample_ids = [] + + years.each do |y| + yr_count = [(y["n"].to_f / total_unlabeled * unlabeled_needed).round, y["n"]].min + next if yr_count == 0 + + ids = duckdb(<<~SQL) + SELECT p.id FROM projects p JOIN chapters c ON p.chapter_id = c.id + WHERE c.name = 'Chicago, IL' + AND p.funded_on IS NULL AND p.hidden_at IS NULL + AND extract(year from p.created_at::date) = #{y['yr']} + ORDER BY random() + LIMIT #{yr_count} + SQL + sample_ids += ids.map { |r| r["id"] } + puts " #{y['yr']}: #{yr_count}/#{y['n']} unlabeled" + end + + # Build the full sample: labeled + unlabeled + sql = <<~SQL + CREATE OR REPLACE TABLE sample_400 AS + SELECT p.*, c.name as chapter_name, + CASE + WHEN p.funded_on IS NOT NULL THEN 'funded' + WHEN p.hidden_at IS NOT NULL THEN 'hidden' + ELSE 'unlabeled' + END as actual_label + FROM projects p + LEFT JOIN chapters c ON p.chapter_id = c.id + WHERE p.id IN ( + SELECT id FROM chicago_validation + UNION ALL + SELECT unnest([#{sample_ids.join(",")}]) + ) + SQL + duckdb(sql) + + result = duckdb("SELECT actual_label, count(*) as n FROM sample_400 GROUP BY 1 ORDER BY 1") + result.each { |r| puts " #{r['actual_label']}: #{r['n']}" } + + total = duckdb("SELECT count(*) as n FROM sample_400")[0]["n"] + puts "\nSample: #{total} apps saved to sample_400 table" + + # Export to parquet + duckdb("COPY sample_400 TO '#{DATA_DIR}/sample_400.parquet' (FORMAT PARQUET)") + puts "Exported to #{DATA_DIR}/sample_400.parquet" +end + +def cmd_pre_score + puts "Running PreScorer on sample_400..." + + projects = duckdb("SELECT * FROM sample_400") + results = {} + + projects.each do |p| + scorer = PreScorer.new(p) + scorer.analyze! + results[p["id"]] = scorer.features + end + + output = File.join(DATA_DIR, "pre_scores.json") + File.write(output, JSON.pretty_generate(results)) + puts "Wrote #{results.length} pre-scores to #{output}" + + # Summary stats + totals = results.values.map { |f| f["word_count_total"] } + puts "\nWord count stats:" + puts " Min: #{totals.min}, Max: #{totals.max}, Avg: #{(totals.sum.to_f / totals.length).round(0)}" + puts " Median: #{totals.sort[totals.length / 2]}" + + empty = results.values.count { |f| f["empty_field_count"] > 0 } + puts " Apps with empty fields: #{empty}/#{results.length}" +end + +def cmd_build_batch(model_alias:) + model = MODELS[model_alias] || model_alias + puts "Building batch for model: #{model} (#{model_alias})" + + examples_text = build_few_shot_examples + projects = duckdb("SELECT * FROM sample_400") + puts " #{projects.length} projects to score" + + lines = projects.map do |p| + { + custom_id: "project-#{p['id']}", + params: { + model: model, + max_tokens: 1024, + system: SYSTEM_PROMPT, + tools: [SCORE_TOOL], + tool_choice: { type: "tool", name: "score_application" }, + messages: [ + { + role: "user", + content: "Here are examples of previously funded and hidden applications:\n\n#{examples_text}\n\n---\n\nNow score this application:\n\n#{format_application(p)}" + } + ] + } + }.to_json + end + + output = File.join(DATA_DIR, "batch-#{model_alias}.jsonl") + File.write(output, lines.join("\n") + "\n") + puts "Wrote #{lines.length} requests to #{output}" + + # Cost estimate + total_chars = lines.sum(&:length) + input_tokens = total_chars / 4 + case model_alias + when "haiku" + cost = (input_tokens / 1_000_000.0 * 0.80 + projects.length * 200 / 1_000_000.0 * 4.0) * 0.5 + when "sonnet" + cost = (input_tokens / 1_000_000.0 * 3.0 + projects.length * 200 / 1_000_000.0 * 15.0) * 0.5 + when "opus" + cost = (input_tokens / 1_000_000.0 * 15.0 + projects.length * 200 / 1_000_000.0 * 75.0) * 0.5 + end + puts "Estimated batch cost (50% discount): ~$#{'%.2f' % cost}" if cost +end + +def cmd_submit(input:) + api_key = ENV["ANTHROPIC_API_KEY"] + raise "ANTHROPIC_API_KEY not set — add to .env.local" unless api_key + + requests = File.readlines(input).map { |l| JSON.parse(l) } + puts "Submitting #{requests.length} requests to Anthropic Batch API..." + + uri = URI("https://api.anthropic.com/v1/messages/batches") + http = Net::HTTP.new(uri.host, uri.port) + http.use_ssl = true + + req = Net::HTTP::Post.new(uri) + req["x-api-key"] = api_key + req["anthropic-version"] = "2023-06-01" + req["anthropic-beta"] = "message-batches-2024-09-24" + req["content-type"] = "application/json" + req.body = { requests: requests }.to_json + + resp = http.request(req) + unless resp.is_a?(Net::HTTPSuccess) + warn "Error #{resp.code}: #{resp.body}" + exit 1 + end + + result = JSON.parse(resp.body) + puts "Batch created: #{result['id']}" + puts "Status: #{result['processing_status']}" + + # Save batch ID + id_file = input.sub(".jsonl", "-batch-id.txt") + File.write(id_file, result["id"] + "\n") + puts "Batch ID saved to #{id_file}" + result["id"] +end + +def cmd_results(batch_id:, output: nil) + api_key = ENV["ANTHROPIC_API_KEY"] + raise "ANTHROPIC_API_KEY not set" unless api_key + + headers = { + "x-api-key" => api_key, + "anthropic-version" => "2023-06-01", + "anthropic-beta" => "message-batches-2024-09-24", + } + + # Check status + uri = URI("https://api.anthropic.com/v1/messages/batches/#{batch_id}") + http = Net::HTTP.new(uri.host, uri.port) + http.use_ssl = true + req = Net::HTTP::Get.new(uri, headers) + resp = http.request(req) + status = JSON.parse(resp.body) + + puts "Status: #{status['processing_status']}" + counts = status["request_counts"] || {} + puts "Progress: #{counts['succeeded']}/#{counts['processing']} succeeded" + + unless status["processing_status"] == "ended" + puts "Batch still processing. Try again later." + return + end + + # Fetch results + uri = URI("https://api.anthropic.com/v1/messages/batches/#{batch_id}/results") + req = Net::HTTP::Get.new(uri, headers) + resp = http.request(req) + + scores = {} + resp.body.strip.split("\n").each do |line| + item = JSON.parse(line) + project_id = item["custom_id"].sub("project-", "").to_i + begin + # With tool_use, result is in tool call input + tool_call = item.dig("result", "message", "content")&.find { |c| c["type"] == "tool_use" } + if tool_call + parsed = tool_call["input"] + else + # Fallback: try text content + text = item.dig("result", "message", "content", 0, "text") || "" + json_match = text.match(/\{[\s\S]*\}/) + parsed = json_match ? JSON.parse(json_match[0]) : nil + end + scores[project_id] = parsed.merge("project_id" => project_id) if parsed + rescue => e + warn "Failed to parse result for project-#{project_id}: #{e.message}" + end + end + + output ||= File.join(DATA_DIR, "scores-#{batch_id[0..12]}.json") + File.write(output, JSON.pretty_generate(scores)) + puts "\nWrote #{scores.length} scores to #{output}" + + # Summary + score_values = scores.values.map { |s| s["composite_score"] }.compact + avg = score_values.sum / score_values.length.to_f + low = score_values.count { |s| s <= 0.3 } + mid = score_values.count { |s| s > 0.3 && s <= 0.7 } + high = score_values.count { |s| s > 0.7 } + puts "\nScore distribution:" + puts " Low (≤0.3): #{low} apps" + puts " Mid (0.3-0.7): #{mid} apps" + puts " High (>0.7): #{high} apps" + puts " Average: #{'%.3f' % avg}" +end + +# --- CLI --- + +require "shellwords" + +command = ARGV.shift + +# Load .env.local if present +env_file = File.expand_path("../../.env.local", __dir__) +if File.exist?(env_file) + File.readlines(env_file, encoding: "UTF-8").each do |line| + line = line.strip + next if line.empty? || line.start_with?("#") + key, value = line.split("=", 2) + ENV[key] = value if key && value + end +end + +case command +when "build-sample" + i = ARGV.index("--count") + count = i ? ARGV[i + 1].to_i : 400 + cmd_build_sample(count: count) + +when "pre-score" + cmd_pre_score + +when "build-batch" + i = ARGV.index("--model") + model = i ? ARGV[i + 1] : "haiku" + cmd_build_batch(model_alias: model) + +when "submit" + i = ARGV.index("--input") + input = i ? ARGV[i + 1] : nil + raise "--input required" unless input + cmd_submit(input: input) + +when "results" + i = ARGV.index("--batch-id") + batch_id = i ? ARGV[i + 1] : nil + raise "--batch-id required" unless batch_id + cmd_results(batch_id: batch_id) + +when "submit-all" + %w[haiku sonnet opus].each do |m| + input = File.join(DATA_DIR, "batch-#{m}.jsonl") + next unless File.exist?(input) + puts "\n=== Submitting #{m} ===" + cmd_submit(input: input) + end + +else + puts <<~USAGE + Usage: ruby scripts/signal-score/score_grants.rb + + Commands: + build-sample Build stratified 400-app sample in DuckDB + pre-score Run PreScorer on sample (deterministic features) + build-batch Build batch JSONL [--model haiku|sonnet|opus] + submit Submit batch [--input path.jsonl] + submit-all Submit all built batches (haiku, sonnet, opus) + results Fetch results [--batch-id ] + USAGE +end From b1811b5a8e89203e77a1366ed8abbb124538205b Mon Sep 17 00:00:00 2001 From: Cedric Hurst Date: Sun, 22 Feb 2026 16:05:58 -0600 Subject: [PATCH 05/25] feat(signal-score): add analysis notebooks and pre-scorer features - Add notebooks/01_eda.ipynb: corpus stats, chapter distributions, label rates, text field analysis - Add notebooks/02_feature_engineering.ipynb: pre-scorer features, TF-IDF analysis, money extraction, feature correlations - Add notebooks/03_model_evaluation.ipynb: batch results, model comparison, test-retest reliability, cross-chapter analysis - Add notebooks/helpers.py: shared data source, plotting, money extraction, label helpers - Add international money/currency extraction to pre_scorer.rb (supports symbols, prefixed symbols, ISO codes, written forms) - Add TF-IDF feature support to pre_scorer.rb (static IDF table computed from notebooks, loaded at runtime) - Replace dollar_sign_count with money_mention_count - All notebooks parameterized via AWESOMEBITS_DB env var, no real grant data in git-tracked files Refs: #591 --- notebooks/01_eda.ipynb | 276 +++++++++++++++++ notebooks/02_feature_engineering.ipynb | 328 ++++++++++++++++++++ notebooks/03_model_evaluation.ipynb | 404 +++++++++++++++++++++++++ notebooks/README.md | 38 +++ notebooks/helpers.py | 115 +++++++ notebooks/requirements.txt | 9 + scripts/signal-score/pre_scorer.rb | 64 +++- 7 files changed, 1233 insertions(+), 1 deletion(-) create mode 100644 notebooks/01_eda.ipynb create mode 100644 notebooks/02_feature_engineering.ipynb create mode 100644 notebooks/03_model_evaluation.ipynb create mode 100644 notebooks/README.md create mode 100644 notebooks/helpers.py create mode 100644 notebooks/requirements.txt diff --git a/notebooks/01_eda.ipynb b/notebooks/01_eda.ipynb new file mode 100644 index 00000000..ecb26abd --- /dev/null +++ b/notebooks/01_eda.ipynb @@ -0,0 +1,276 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "39074e61", + "metadata": {}, + "source": [ + "# 01 - Exploratory Data Analysis\n", + "## Awesome Foundation Signal Score\n", + "\n", + "Corpus-level statistics, chapter distributions, label rates, and text field analysis\n", + "across 64,000+ grant applications.\n", + "\n", + "**Data source:** Parameterized via `AWESOMEBITS_DB` env var (defaults to `.scratch/data/awesomebits.duckdb`)." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "76102697", + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.insert(0, '.')\n", + "from helpers import *\n", + "import pandas as pd\n", + "import numpy as np\n", + "\n", + "setup_plotting()\n", + "con = connect()\n", + "print(f'Connected to: {DB_PATH}')\n", + "for t in con.execute('SHOW TABLES').fetchall():\n", + " cnt = con.execute(f'SELECT count(*) FROM {t[0]}').fetchone()[0]\n", + " print(f' {t[0]}: {cnt:,} rows')" + ] + }, + { + "cell_type": "markdown", + "id": "409c3c9f", + "metadata": {}, + "source": [ + "## Corpus Overview" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c2485e15", + "metadata": {}, + "outputs": [], + "source": [ + "df = con.execute('SELECT * FROM projects').df()\n", + "print(f'Total applications: {len(df):,}')\n", + "print(f'Date range: {df.created_at.min()} to {df.created_at.max()}')\n", + "print(f'Funded: {df.funded_on.notna().sum():,} ({df.funded_on.notna().mean():.1%})')\n", + "print(f'Hidden: {df.hidden_at.notna().sum():,} ({df.hidden_at.notna().mean():.1%})')\n", + "print(f'Unlabeled: {(df.funded_on.isna() & df.hidden_at.isna()).sum():,}')" + ] + }, + { + "cell_type": "markdown", + "id": "1d6b69eb", + "metadata": {}, + "source": [ + "## Chapter Distribution" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "9c72c31d", + "metadata": {}, + "outputs": [], + "source": [ + "chapters = con.execute('''\n", + " SELECT c.name, c.country, c.inactive_at IS NOT NULL as inactive,\n", + " COUNT(*) as total,\n", + " COUNT(p.funded_on) as funded,\n", + " COUNT(p.hidden_at) as hidden,\n", + " COUNT(*) - COUNT(p.funded_on) - COUNT(p.hidden_at) as unlabeled\n", + " FROM projects p\n", + " JOIN chapters c ON p.chapter_id = c.id\n", + " GROUP BY c.name, c.country, inactive\n", + " ORDER BY total DESC\n", + "''').df()\n", + "\n", + "print(f'Active chapters: {(~chapters.inactive).sum()}')\n", + "print(f'Inactive chapters: {chapters.inactive.sum()}')\n", + "print(f'Countries: {chapters.country.nunique()}')\n", + "print()\n", + "print('Top 15 chapters by volume:')\n", + "print(chapters.head(15)[['name', 'country', 'total', 'funded', 'hidden']].to_string(index=False))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "008624c8", + "metadata": {}, + "outputs": [], + "source": [ + "# Applications per chapter (top 20)\n", + "top20 = chapters.head(20).copy()\n", + "fig, ax = plt.subplots(figsize=(12, 6))\n", + "ax.barh(top20['name'], top20['total'], color='steelblue')\n", + "ax.set_xlabel('Applications')\n", + "ax.set_title('Top 20 Chapters by Application Volume')\n", + "ax.invert_yaxis()\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "6060cfe5", + "metadata": {}, + "source": [ + "## Label Rates by Chapter\n", + "\n", + "Which chapters actively use the hide feature? This determines which chapters have enough ground truth for model validation." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bc15043f", + "metadata": {}, + "outputs": [], + "source": [ + "# Chapters with enough labeled data for validation\n", + "validatable = chapters[(chapters.funded >= 10) & (chapters.hidden >= 10)].copy()\n", + "validatable['label_rate'] = ((validatable.funded + validatable.hidden) / validatable.total * 100).round(1)\n", + "validatable['fund_rate'] = (validatable.funded / (validatable.funded + validatable.hidden) * 100).round(1)\n", + "\n", + "print(f'Chapters with >= 10 funded AND >= 10 hidden: {len(validatable)}')\n", + "print()\n", + "print(validatable[['name', 'country', 'total', 'funded', 'hidden', 'label_rate', 'fund_rate']].to_string(index=False))" + ] + }, + { + "cell_type": "markdown", + "id": "bdacd01d", + "metadata": {}, + "source": [ + "## Temporal Distribution" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6a655908", + "metadata": {}, + "outputs": [], + "source": [ + "df['year'] = pd.to_datetime(df.created_at).dt.year\n", + "yearly = df.groupby('year').agg(\n", + " total=('id', 'count'),\n", + " funded=('funded_on', lambda x: x.notna().sum()),\n", + " hidden=('hidden_at', lambda x: x.notna().sum()),\n", + ").reset_index()\n", + "yearly['unlabeled'] = yearly.total - yearly.funded - yearly.hidden\n", + "\n", + "fig, ax = plt.subplots(figsize=(12, 5))\n", + "ax.bar(yearly.year, yearly.unlabeled, label='Unlabeled', color='lightgray')\n", + "ax.bar(yearly.year, yearly.hidden, bottom=yearly.unlabeled, label='Hidden', color='salmon')\n", + "ax.bar(yearly.year, yearly.funded, bottom=yearly.unlabeled + yearly.hidden, label='Funded', color='mediumseagreen')\n", + "ax.set_xlabel('Year')\n", + "ax.set_ylabel('Applications')\n", + "ax.set_title('Applications by Year and Label')\n", + "ax.legend()\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "0619e796", + "metadata": {}, + "source": [ + "## Text Field Analysis" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a98c24eb", + "metadata": {}, + "outputs": [], + "source": [ + "# Word counts per field\n", + "for field in TEXT_FIELDS:\n", + " df[f'wc_{field}'] = df[field].fillna('').apply(word_count)\n", + "df['wc_total'] = df['wc_about_me'] + df['wc_about_project'] + df['wc_use_for_money']\n", + "\n", + "print('Word count statistics:')\n", + "print(df[['wc_about_me', 'wc_about_project', 'wc_use_for_money', 'wc_total']].describe().round(1))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "48d91771", + "metadata": {}, + "outputs": [], + "source": [ + "# Word count distributions by label\n", + "df['label'] = df.apply(label_project, axis=1)\n", + "\n", + "fig, axes = plt.subplots(1, 3, figsize=(15, 5), sharey=True)\n", + "for ax, field in zip(axes, TEXT_FIELDS):\n", + " for label, color in [('funded', 'mediumseagreen'), ('hidden', 'salmon')]:\n", + " subset = df[df.label == label][f'wc_{field}']\n", + " ax.hist(subset, bins=50, alpha=0.6, color=color, label=label, range=(0, 1000))\n", + " ax.set_title(field.replace('_', ' ').title())\n", + " ax.set_xlabel('Word Count')\n", + " ax.legend()\n", + "axes[0].set_ylabel('Frequency')\n", + "plt.suptitle('Word Count Distribution: Funded vs Hidden', y=1.02)\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a1352067", + "metadata": {}, + "outputs": [], + "source": [ + "# Empty field rates by label\n", + "for label in ['funded', 'hidden', 'unlabeled']:\n", + " subset = df[df.label == label]\n", + " empties = {f: (subset[f].fillna('').str.strip() == '').mean() for f in TEXT_FIELDS}\n", + " print(f'{label:>10}: ' + ' '.join(f'{f}={v:.1%}' for f, v in empties.items()))" + ] + }, + { + "cell_type": "markdown", + "id": "0585f18f", + "metadata": {}, + "source": [ + "## Geographic Distribution" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bdd7d773", + "metadata": {}, + "outputs": [], + "source": [ + "country_stats = con.execute('''\n", + " SELECT c.country, COUNT(*) as apps, COUNT(DISTINCT c.id) as chapters\n", + " FROM projects p JOIN chapters c ON p.chapter_id = c.id\n", + " GROUP BY c.country ORDER BY apps DESC\n", + "''').df()\n", + "\n", + "fig, ax = plt.subplots(figsize=(12, 6))\n", + "top_countries = country_stats.head(15)\n", + "ax.barh(top_countries.country, top_countries.apps, color='steelblue')\n", + "ax.set_xlabel('Applications')\n", + "ax.set_title('Applications by Country (Top 15)')\n", + "ax.invert_yaxis()\n", + "plt.tight_layout()\n", + "plt.show()\n", + "\n", + "print(f'\\nTotal countries: {len(country_stats)}')\n", + "print(f'English-speaking: {country_stats[country_stats.country.isin(ENGLISH_SPEAKING_COUNTRIES)].apps.sum():,} apps')" + ] + } + ], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/02_feature_engineering.ipynb b/notebooks/02_feature_engineering.ipynb new file mode 100644 index 00000000..2d74e0b4 --- /dev/null +++ b/notebooks/02_feature_engineering.ipynb @@ -0,0 +1,328 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "e1f3c814", + "metadata": {}, + "source": [ + "# 02 - Feature Engineering\n", + "## Pre-Scorer Features, TF-IDF, and Money Extraction\n", + "\n", + "Deterministic features computed before LLM scoring. Zero cost, runs locally.\n", + "\n", + "**Data source:** Parameterized via `AWESOMEBITS_DB` env var." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bb527170", + "metadata": {}, + "outputs": [], + "source": [ + "import sys\n", + "sys.path.insert(0, '.')\n", + "from helpers import *\n", + "import pandas as pd\n", + "import numpy as np\n", + "from collections import Counter\n", + "from sklearn.feature_extraction.text import TfidfVectorizer\n", + "from price_parser import Price\n", + "import re\n", + "\n", + "setup_plotting()\n", + "con = connect()\n", + "df = con.execute('SELECT * FROM projects').df()\n", + "df['label'] = df.apply(label_project, axis=1)\n", + "df['text'] = df.apply(combined_text, axis=1)\n", + "print(f'Loaded {len(df):,} applications')" + ] + }, + { + "cell_type": "markdown", + "id": "4def555a", + "metadata": {}, + "source": [ + "## Pre-Scorer Feature Replication\n", + "\n", + "Replicate the Ruby `PreScorer` features in Python for analysis." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e59deda9", + "metadata": {}, + "outputs": [], + "source": [ + "def compute_features(row):\n", + " \"\"\"Replicate Ruby PreScorer features.\"\"\"\n", + " features = {}\n", + " texts = {f: str(row.get(f, '') or '') for f in TEXT_FIELDS}\n", + " all_text = ' '.join(t.strip() for t in texts.values() if t.strip())\n", + "\n", + " # Word counts\n", + " for f in TEXT_FIELDS:\n", + " features[f'wc_{f}'] = word_count(texts[f])\n", + " features['wc_total'] = sum(features[f'wc_{f}'] for f in TEXT_FIELDS)\n", + "\n", + " # Field length variance\n", + " counts = [features[f'wc_{f}'] for f in TEXT_FIELDS]\n", + " mean = np.mean(counts)\n", + " features['field_length_variance'] = np.var(counts)\n", + "\n", + " # Sentence stats\n", + " sentences = [s.strip() for s in re.split(r'[.!?]+', all_text) if s.strip()]\n", + " sent_lens = [len(s.split()) for s in sentences]\n", + " features['sentence_count'] = len(sentences)\n", + " features['avg_sentence_length'] = np.mean(sent_lens) if sent_lens else 0\n", + " features['sentence_length_variance'] = np.var(sent_lens) if sent_lens else 0\n", + "\n", + " # Punctuation\n", + " features['exclamation_count'] = all_text.count('!')\n", + " features['question_mark_count'] = all_text.count('?')\n", + "\n", + " # Content signals\n", + " features['url_count'] = len(re.findall(r'https?://\\S+', all_text))\n", + " features['money_mention_count'] = money_mention_count(all_text)\n", + " features['number_count'] = len(re.findall(r'\\b\\d[\\d,.]*\\b', all_text))\n", + " features['email_count'] = len(re.findall(r'\\S+@\\S+\\.\\S+', all_text))\n", + "\n", + " # Empty fields\n", + " features['empty_field_count'] = sum(1 for f in TEXT_FIELDS if not texts[f].strip())\n", + "\n", + " return pd.Series(features)\n", + "\n", + "# Compute for all projects\n", + "print('Computing pre-scorer features...')\n", + "feat_df = df.apply(compute_features, axis=1)\n", + "df = pd.concat([df, feat_df], axis=1)\n", + "print(f'Features computed: {list(feat_df.columns)}')" + ] + }, + { + "cell_type": "markdown", + "id": "ac4e513c", + "metadata": {}, + "source": [ + "## Feature Distributions: Funded vs Hidden" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a6797c32", + "metadata": {}, + "outputs": [], + "source": [ + "# Compare feature distributions\n", + "labeled = df[df.label.isin(['funded', 'hidden'])].copy()\n", + "feature_cols = [c for c in feat_df.columns if c != 'empty_field_count']\n", + "\n", + "fig, axes = plt.subplots(3, 4, figsize=(16, 12))\n", + "for ax, col in zip(axes.flat, feature_cols):\n", + " for label, color in [('funded', 'mediumseagreen'), ('hidden', 'salmon')]:\n", + " data = labeled[labeled.label == label][col]\n", + " q99 = data.quantile(0.99)\n", + " ax.hist(data[data <= q99], bins=30, alpha=0.6, color=color, label=label, density=True)\n", + " ax.set_title(col, fontsize=10)\n", + " ax.legend(fontsize=8)\n", + "for ax in axes.flat[len(feature_cols):]:\n", + " ax.set_visible(False)\n", + "plt.suptitle('Feature Distributions: Funded vs Hidden', y=1.01)\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c00bdcf3", + "metadata": {}, + "outputs": [], + "source": [ + "# Feature means by label\n", + "summary = df.groupby('label')[feature_cols].mean().round(2).T\n", + "summary['funded_hidden_ratio'] = (summary['funded'] / summary['hidden'].replace(0, np.nan)).round(2)\n", + "print(summary[['funded', 'hidden', 'unlabeled', 'funded_hidden_ratio']].to_string())" + ] + }, + { + "cell_type": "markdown", + "id": "78117e43", + "metadata": {}, + "source": [ + "## Money Extraction Analysis\n", + "\n", + "Using regex pattern matching to find currency mentions across the full corpus. This feeds the `money_mention_count` pre-scorer feature." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "775f5158", + "metadata": {}, + "outputs": [], + "source": [ + "# Money mention distribution\n", + "print('Money mention counts by label:')\n", + "for label in ['funded', 'hidden', 'unlabeled']:\n", + " subset = df[df.label == label]\n", + " mc = subset.money_mention_count\n", + " print(f' {label:>10}: mean={mc.mean():.2f}, median={mc.median():.0f}, '\n", + " f'zero={((mc == 0).mean()):.1%}, 3+={((mc >= 3).mean()):.1%}')\n", + "\n", + "# Show examples of extracted money mentions\n", + "print('\\nSample money extractions (funded apps):')\n", + "funded_with_money = df[(df.label == 'funded') & (df.money_mention_count > 0)].sample(5, random_state=42)\n", + "for _, row in funded_with_money.iterrows():\n", + " mentions = extract_money_mentions(row.text)\n", + " print(f' [{row.money_mention_count} mentions] {mentions[:5]}')" + ] + }, + { + "cell_type": "markdown", + "id": "582f5869", + "metadata": {}, + "source": [ + "## TF-IDF Analysis\n", + "\n", + "Compute corpus-wide IDF values to identify distinctive vocabulary in funded vs hidden applications. The static IDF table can be exported for use in the Ruby pre-scorer." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "79c73c21", + "metadata": {}, + "outputs": [], + "source": [ + "# Build TF-IDF on full corpus\n", + "tfidf = TfidfVectorizer(\n", + " max_features=10000,\n", + " stop_words='english',\n", + " min_df=10,\n", + " max_df=0.8,\n", + " ngram_range=(1, 2),\n", + ")\n", + "tfidf_matrix = tfidf.fit_transform(df.text.fillna(''))\n", + "feature_names = tfidf.get_feature_names_out()\n", + "idf_values = tfidf.idf_\n", + "\n", + "print(f'Vocabulary size: {len(feature_names):,}')\n", + "print(f'IDF range: {idf_values.min():.2f} to {idf_values.max():.2f}')\n", + "\n", + "# Most and least common terms\n", + "idf_df = pd.DataFrame({'term': feature_names, 'idf': idf_values}).sort_values('idf')\n", + "print('\\nMost common terms (lowest IDF):')\n", + "print(idf_df.head(20).to_string(index=False))\n", + "print('\\nRarest terms (highest IDF):')\n", + "print(idf_df.tail(20).to_string(index=False))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2f88f843", + "metadata": {}, + "outputs": [], + "source": [ + "# Terms most distinctive of funded vs hidden\n", + "funded_mask = (df.label == 'funded').values\n", + "hidden_mask = (df.label == 'hidden').values\n", + "\n", + "funded_mean = np.asarray(tfidf_matrix[funded_mask].mean(axis=0)).flatten()\n", + "hidden_mean = np.asarray(tfidf_matrix[hidden_mask].mean(axis=0)).flatten()\n", + "\n", + "diff = funded_mean - hidden_mean\n", + "diff_df = pd.DataFrame({'term': feature_names, 'funded_mean': funded_mean, 'hidden_mean': hidden_mean, 'diff': diff})\n", + "diff_df = diff_df.sort_values('diff', ascending=False)\n", + "\n", + "print('Terms most associated with FUNDED:')\n", + "print(diff_df.head(25)[['term', 'funded_mean', 'hidden_mean', 'diff']].to_string(index=False))\n", + "print('\\nTerms most associated with HIDDEN:')\n", + "print(diff_df.tail(25)[['term', 'funded_mean', 'hidden_mean', 'diff']].to_string(index=False))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ff6d2ec3", + "metadata": {}, + "outputs": [], + "source": [ + "# Visualize top distinctive terms\n", + "fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(14, 8))\n", + "\n", + "top_funded = diff_df.head(20)\n", + "ax1.barh(top_funded.term, top_funded['diff'], color='mediumseagreen')\n", + "ax1.set_title('Top 20 Terms: Funded')\n", + "ax1.invert_yaxis()\n", + "\n", + "top_hidden = diff_df.tail(20).iloc[::-1]\n", + "ax2.barh(top_hidden.term, top_hidden['diff'].abs(), color='salmon')\n", + "ax2.set_title('Top 20 Terms: Hidden')\n", + "ax2.invert_yaxis()\n", + "\n", + "plt.suptitle('TF-IDF: Most Distinctive Terms by Label')\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "d19ed730", + "metadata": {}, + "source": [ + "## Export Static IDF Table\n", + "\n", + "Export the IDF values as JSON for use in the Ruby pre-scorer. This avoids recomputing TF-IDF at scoring time." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "3d0637f0", + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "from pathlib import Path\n", + "\n", + "idf_export = dict(zip(feature_names.tolist(), idf_values.round(4).tolist()))\n", + "\n", + "out_path = Path(DB_PATH).parent / 'idf_table.json'\n", + "with open(out_path, 'w') as f:\n", + " json.dump(idf_export, f)\n", + "print(f'Exported {len(idf_export):,} IDF values to {out_path}')" + ] + }, + { + "cell_type": "markdown", + "id": "47052ed5", + "metadata": {}, + "source": [ + "## Feature Correlations" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b21de230", + "metadata": {}, + "outputs": [], + "source": [ + "# Correlation matrix of pre-scorer features\n", + "corr = df[feature_cols].corr()\n", + "fig, ax = plt.subplots(figsize=(12, 10))\n", + "sns.heatmap(corr, annot=True, fmt='.2f', cmap='RdBu_r', center=0, ax=ax)\n", + "ax.set_title('Pre-Scorer Feature Correlations')\n", + "plt.tight_layout()\n", + "plt.show()" + ] + } + ], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/03_model_evaluation.ipynb b/notebooks/03_model_evaluation.ipynb new file mode 100644 index 00000000..3c9d3562 --- /dev/null +++ b/notebooks/03_model_evaluation.ipynb @@ -0,0 +1,404 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "0eb0fd4e", + "metadata": {}, + "source": [ + "# 03 - Model Evaluation\n", + "## Batch Results, Model Comparison, and Cross-Chapter Analysis\n", + "\n", + "Analyze LLM scoring results from the Anthropic Batch API. Compare models, measure test-retest reliability, and validate across chapters.\n", + "\n", + "**Data source:** Parameterized via `AWESOMEBITS_DB` env var.\n", + "\n", + "**Score files:** Place batch result JSONs in `.scratch/data/` with names like `scores-haiku-run1.json`, `scores-sonnet-run1.json`, etc." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "661387a4", + "metadata": {}, + "outputs": [], + "source": [ + "import sys, json, glob\n", + "sys.path.insert(0, '.')\n", + "from helpers import *\n", + "import pandas as pd\n", + "import numpy as np\n", + "from pathlib import Path\n", + "from scipy import stats\n", + "\n", + "setup_plotting()\n", + "con = connect()\n", + "data_dir = Path(DB_PATH).parent\n", + "print(f'Data directory: {data_dir}')\n", + "print(f'Score files found:')\n", + "for f in sorted(data_dir.glob('scores-*.json')):\n", + " with open(f) as fh:\n", + " d = json.load(fh)\n", + " print(f' {f.name}: {len(d)} scores')" + ] + }, + { + "cell_type": "markdown", + "id": "2fcc822e", + "metadata": {}, + "source": [ + "## Load Scores\n", + "\n", + "Load all available score files and merge with project metadata." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4607f16c", + "metadata": {}, + "outputs": [], + "source": [ + "def load_scores(pattern='scores-*.json'):\n", + " \"\"\"Load score files into a dict of DataFrames keyed by filename stem.\"\"\"\n", + " results = {}\n", + " for path in sorted(data_dir.glob(pattern)):\n", + " with open(path) as f:\n", + " scores = json.load(f)\n", + " # Handle both list and dict formats\n", + " if isinstance(scores, dict):\n", + " rows = [{'project_id': int(k), **v} for k, v in scores.items()]\n", + " else:\n", + " rows = scores\n", + " sdf = pd.DataFrame(rows)\n", + " results[path.stem] = sdf\n", + " return results\n", + "\n", + "score_sets = load_scores()\n", + "print(f'Loaded {len(score_sets)} score sets: {list(score_sets.keys())}')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "fa9fc8f7", + "metadata": {}, + "outputs": [], + "source": [ + "# Merge scores with labels from DuckDB\n", + "projects = con.execute('''\n", + " SELECT p.id as project_id, p.title, p.funded_on, p.hidden_at,\n", + " c.name as chapter_name, c.country\n", + " FROM projects p\n", + " JOIN chapters c ON p.chapter_id = c.id\n", + "''').df()\n", + "projects['label'] = projects.apply(label_project, axis=1)\n", + "\n", + "# Merge each score set with labels\n", + "for name, sdf in score_sets.items():\n", + " merged = sdf.merge(projects, on='project_id', how='left')\n", + " score_sets[name] = merged\n", + " labeled = merged[merged.label.isin(['funded', 'hidden'])]\n", + " print(f'{name}: {len(merged)} total, {len(labeled)} labeled '\n", + " f'(funded={len(labeled[labeled.label==\"funded\"])}, '\n", + " f'hidden={len(labeled[labeled.label==\"hidden\"])})')" + ] + }, + { + "cell_type": "markdown", + "id": "3ad8aed5", + "metadata": {}, + "source": [ + "## Score Distributions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cfef3ce5", + "metadata": {}, + "outputs": [], + "source": [ + "# Composite score distribution per model\n", + "score_col = 'composite_score' # adjust if your JSON uses a different key\n", + "# Try to find the right column name\n", + "for name, sdf in score_sets.items():\n", + " candidates = [c for c in sdf.columns if 'score' in c.lower() and 'composite' in c.lower()]\n", + " if not candidates:\n", + " candidates = [c for c in sdf.columns if c in ('composite_score', 'score', 'total_score')]\n", + " if candidates:\n", + " score_col = candidates[0]\n", + " break\n", + "print(f'Using score column: {score_col}')\n", + "\n", + "fig, axes = plt.subplots(1, len(score_sets), figsize=(6 * len(score_sets), 5), squeeze=False)\n", + "for ax, (name, sdf) in zip(axes[0], score_sets.items()):\n", + " if score_col not in sdf.columns:\n", + " ax.set_title(f'{name} (no {score_col})')\n", + " continue\n", + " for label, color in [('funded', 'mediumseagreen'), ('hidden', 'salmon'), ('unlabeled', 'lightgray')]:\n", + " subset = sdf[sdf.label == label][score_col].dropna()\n", + " if len(subset):\n", + " ax.hist(subset, bins=20, alpha=0.6, color=color, label=f'{label} (n={len(subset)})', range=(0, 1))\n", + " ax.set_title(name)\n", + " ax.set_xlabel('Composite Score')\n", + " ax.legend()\n", + "plt.suptitle('Score Distributions by Model and Label')\n", + "plt.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "c21b3810", + "metadata": {}, + "source": [ + "## Classification Metrics\n", + "\n", + "Using composite score thresholds, how well does each model separate funded from hidden?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2b4dee0d", + "metadata": {}, + "outputs": [], + "source": [ + "def evaluate_model(sdf, score_col, threshold=0.5):\n", + " \"\"\"Compute classification metrics at a given threshold.\"\"\"\n", + " labeled = sdf[sdf.label.isin(['funded', 'hidden'])].dropna(subset=[score_col]).copy()\n", + " labeled['predicted'] = (labeled[score_col] >= threshold).map({True: 'funded', False: 'hidden'})\n", + "\n", + " tp = ((labeled.label == 'funded') & (labeled.predicted == 'funded')).sum()\n", + " tn = ((labeled.label == 'hidden') & (labeled.predicted == 'hidden')).sum()\n", + " fp = ((labeled.label == 'hidden') & (labeled.predicted == 'funded')).sum()\n", + " fn = ((labeled.label == 'funded') & (labeled.predicted == 'hidden')).sum()\n", + "\n", + " precision = tp / (tp + fp) if (tp + fp) > 0 else 0\n", + " recall = tp / (tp + fn) if (tp + fn) > 0 else 0\n", + " f1 = 2 * precision * recall / (precision + recall) if (precision + recall) > 0 else 0\n", + " accuracy = (tp + tn) / len(labeled) if len(labeled) > 0 else 0\n", + "\n", + " return {\n", + " 'n': len(labeled), 'tp': tp, 'tn': tn, 'fp': fp, 'fn': fn,\n", + " 'precision': round(precision, 3), 'recall': round(recall, 3),\n", + " 'f1': round(f1, 3), 'accuracy': round(accuracy, 3),\n", + " 'funded_avg': round(labeled[labeled.label == 'funded'][score_col].mean(), 3),\n", + " 'hidden_avg': round(labeled[labeled.label == 'hidden'][score_col].mean(), 3),\n", + " }\n", + "\n", + "# Evaluate all models at multiple thresholds\n", + "thresholds = [0.3, 0.4, 0.5, 0.6, 0.7]\n", + "for name, sdf in score_sets.items():\n", + " if score_col not in sdf.columns:\n", + " print(f'{name}: no {score_col} column')\n", + " continue\n", + " print(f'\\n=== {name} ===')\n", + " rows = []\n", + " for t in thresholds:\n", + " m = evaluate_model(sdf, score_col, threshold=t)\n", + " rows.append({'threshold': t, **m})\n", + " print(pd.DataFrame(rows)[['threshold', 'precision', 'recall', 'f1', 'accuracy', 'fn', 'fp']].to_string(index=False))" + ] + }, + { + "cell_type": "markdown", + "id": "c3f10549", + "metadata": {}, + "source": [ + "## Model Comparison\n", + "\n", + "If multiple models scored the same applications, compare them head-to-head." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d6536d1d", + "metadata": {}, + "outputs": [], + "source": [ + "if len(score_sets) >= 2:\n", + " names = list(score_sets.keys())\n", + " # Merge first two score sets on project_id\n", + " a_name, b_name = names[0], names[1]\n", + " a = score_sets[a_name][['project_id', score_col, 'label']].rename(columns={score_col: f'{a_name}'})\n", + " b = score_sets[b_name][['project_id', score_col]].rename(columns={score_col: f'{b_name}'})\n", + " comp = a.merge(b, on='project_id', how='inner')\n", + "\n", + " print(f'Comparing {a_name} vs {b_name}: {len(comp)} shared applications')\n", + "\n", + " # Correlation\n", + " r, p = stats.pearsonr(comp[a_name].dropna(), comp[b_name].dropna())\n", + " rho, _ = stats.spearmanr(comp[a_name].dropna(), comp[b_name].dropna())\n", + " print(f'Pearson r={r:.3f} (p={p:.2e})')\n", + " print(f'Spearman rho={rho:.3f}')\n", + "\n", + " # Score difference stats\n", + " comp['diff'] = comp[a_name] - comp[b_name]\n", + " print(f'Mean diff: {comp[\"diff\"].mean():.3f}')\n", + " print(f'Std diff: {comp[\"diff\"].std():.3f}')\n", + " print(f'Max abs diff: {comp[\"diff\"].abs().max():.3f}')\n", + "\n", + " fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(12, 5))\n", + " colors = comp.label.map({'funded': 'mediumseagreen', 'hidden': 'salmon', 'unlabeled': 'lightgray'})\n", + " ax1.scatter(comp[a_name], comp[b_name], alpha=0.4, c=colors, s=20)\n", + " ax1.plot([0, 1], [0, 1], 'k--', alpha=0.3)\n", + " ax1.set_xlabel(a_name)\n", + " ax1.set_ylabel(b_name)\n", + " ax1.set_title(f'Score Comparison (r={r:.3f})')\n", + "\n", + " ax2.hist(comp['diff'], bins=40, color='steelblue', alpha=0.7)\n", + " ax2.axvline(0, color='black', linestyle='--', alpha=0.3)\n", + " ax2.set_xlabel('Score Difference')\n", + " ax2.set_title(f'Score Difference Distribution')\n", + " plt.tight_layout()\n", + " plt.show()\n", + "else:\n", + " print('Only one score set available. Submit additional batches for comparison.')" + ] + }, + { + "cell_type": "markdown", + "id": "baad6c12", + "metadata": {}, + "source": [ + "## Test-Retest Reliability\n", + "\n", + "If the same model was run twice on the same inputs, measure score stability. Look for score files like `scores-haiku-run1.json` and `scores-haiku-run2.json`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "6627ca51", + "metadata": {}, + "outputs": [], + "source": [ + "# Find run pairs (same model, different runs)\n", + "import re as _re\n", + "run_pairs = {}\n", + "for name in score_sets:\n", + " m = _re.match(r'(scores-\\w+)-run(\\d+)', name)\n", + " if m:\n", + " base, run_num = m.group(1), int(m.group(2))\n", + " run_pairs.setdefault(base, {})[run_num] = name\n", + "\n", + "if run_pairs:\n", + " for base, runs in run_pairs.items():\n", + " if len(runs) < 2:\n", + " continue\n", + " r1_name = runs[min(runs)]\n", + " r2_name = runs[max(runs)]\n", + " r1 = score_sets[r1_name][['project_id', score_col]].rename(columns={score_col: 'run1'})\n", + " r2 = score_sets[r2_name][['project_id', score_col]].rename(columns={score_col: 'run2'})\n", + " paired = r1.merge(r2, on='project_id')\n", + "\n", + " r, _ = stats.pearsonr(paired.run1, paired.run2)\n", + " rho, _ = stats.spearmanr(paired.run1, paired.run2)\n", + " diff = (paired.run1 - paired.run2).abs()\n", + "\n", + " print(f'\\n=== {base} test-retest (n={len(paired)}) ===')\n", + " print(f'Pearson r={r:.4f}, Spearman rho={rho:.4f}')\n", + " print(f'Mean abs diff: {diff.mean():.4f}')\n", + " print(f'Max abs diff: {diff.max():.4f}')\n", + " print(f'Std diff: {(paired.run1 - paired.run2).std():.4f}')\n", + " # Threshold consistency\n", + " for t in [0.3, 0.5, 0.7]:\n", + " agree = ((paired.run1 >= t) == (paired.run2 >= t)).mean()\n", + " print(f' Threshold {t}: {agree:.1%} agreement')\n", + "else:\n", + " print('No test-retest pairs found. Run the same model twice and name files like:')\n", + " print(' scores-haiku-run1.json, scores-haiku-run2.json')" + ] + }, + { + "cell_type": "markdown", + "id": "1ef1db84", + "metadata": {}, + "source": [ + "## Cross-Chapter Analysis\n", + "\n", + "Do scores generalize across chapters, or are patterns locality-specific?\n", + "\n", + "Chapters with enough labeled data for validation:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c0c22898", + "metadata": {}, + "outputs": [], + "source": [ + "# Show which chapters have enough data\n", + "chapter_stats = con.execute('''\n", + " SELECT c.name, c.country, c.inactive_at IS NOT NULL as inactive,\n", + " COUNT(*) as total, COUNT(p.funded_on) as funded, COUNT(p.hidden_at) as hidden\n", + " FROM projects p JOIN chapters c ON p.chapter_id = c.id\n", + " GROUP BY c.name, c.country, inactive\n", + " HAVING COUNT(p.funded_on) >= 10 AND COUNT(p.hidden_at) >= 10\n", + " ORDER BY total DESC\n", + "''').df()\n", + "print(chapter_stats.to_string(index=False))\n", + "print(f'\\n{len(chapter_stats)} chapters have enough labeled data for validation')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "5ca55338", + "metadata": {}, + "outputs": [], + "source": [ + "# Per-chapter score analysis (if scores include chapter info)\n", + "for name, sdf in score_sets.items():\n", + " if score_col not in sdf.columns or 'chapter_name' not in sdf.columns:\n", + " continue\n", + " print(f'\\n=== {name}: per-chapter scores ===')\n", + " ch_scores = sdf.groupby(['chapter_name', 'label'])[score_col].agg(['mean', 'count']).round(3)\n", + " ch_scores = ch_scores[ch_scores['count'] >= 5].reset_index()\n", + " # Pivot for readability\n", + " pivot = ch_scores.pivot_table(index='chapter_name', columns='label', values='mean')\n", + " if 'funded' in pivot.columns and 'hidden' in pivot.columns:\n", + " pivot['separation'] = (pivot['funded'] - pivot['hidden']).round(3)\n", + " print(pivot.sort_values('separation', ascending=False).to_string())\n", + " else:\n", + " print(pivot.to_string())" + ] + }, + { + "cell_type": "markdown", + "id": "65c481fa", + "metadata": {}, + "source": [ + "## Predicted Quality Ratio\n", + "\n", + "Does the ~28% quality ratio (from Chicago labeled data) hold when scoring unlabeled applications?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "70edee5a", + "metadata": {}, + "outputs": [], + "source": [ + "for name, sdf in score_sets.items():\n", + " if score_col not in sdf.columns:\n", + " continue\n", + " print(f'\\n=== {name} ===')\n", + " for t in [0.3, 0.5, 0.7]:\n", + " unlabeled = sdf[sdf.label == 'unlabeled']\n", + " above = (unlabeled[score_col] >= t).mean()\n", + " print(f' Threshold {t}: {above:.1%} of unlabeled apps score above')\n", + " # Overall distribution\n", + " print(f' Unlabeled score stats: mean={sdf[sdf.label==\"unlabeled\"][score_col].mean():.3f}, '\n", + " f'median={sdf[sdf.label==\"unlabeled\"][score_col].median():.3f}')" + ] + } + ], + "metadata": {}, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/README.md b/notebooks/README.md new file mode 100644 index 00000000..529c1d19 --- /dev/null +++ b/notebooks/README.md @@ -0,0 +1,38 @@ +# Signal Score Notebooks + +Jupyter notebooks for analyzing the Awesome Foundation Signal Score pipeline. + +## Setup + +```bash +pip install -r notebooks/requirements.txt +``` + +## Data + +Notebooks read from a DuckDB database. Default path: `.scratch/data/awesomebits.duckdb` + +Override with an environment variable: + +```bash +export AWESOMEBITS_DB=/path/to/your/awesomebits.duckdb +``` + +To build the database from CSV exports, run: + +```bash +ruby scripts/signal-score/import_data.rb +``` + +## Notebooks + +| Notebook | Description | +|----------|-------------| +| `01_eda.ipynb` | Corpus stats, chapter distributions, label rates, text analysis | +| `02_feature_engineering.ipynb` | Pre-scorer features, TF-IDF, money extraction, feature correlations | +| `03_model_evaluation.ipynb` | Batch results, model comparison, test-retest reliability, cross-chapter | + +## No Real Data + +These notebooks are git-tracked. They contain no real grant application text. +All analysis reads from a local DuckDB database that lives in `.scratch/` (gitignored). diff --git a/notebooks/helpers.py b/notebooks/helpers.py new file mode 100644 index 00000000..0dd9fcce --- /dev/null +++ b/notebooks/helpers.py @@ -0,0 +1,115 @@ +"""Shared helpers for Signal Score notebooks.""" + +import os +import re +from pathlib import Path + +import duckdb +import matplotlib.pyplot as plt +import seaborn as sns + +# --- Data source --- +DEFAULT_DB_PATH = os.path.join( + os.path.dirname(__file__), "..", ".scratch", "data", "awesomebits.duckdb" +) +DB_PATH = os.environ.get("AWESOMEBITS_DB", DEFAULT_DB_PATH) + + +def connect(read_only: bool = True) -> duckdb.DuckDBPyConnection: + """Open the DuckDB database.""" + path = str(Path(DB_PATH).resolve()) + return duckdb.connect(path, read_only=read_only) + + +# --- Plotting defaults --- +def setup_plotting(): + """Configure consistent plot styling.""" + sns.set_theme(style="whitegrid", palette="muted", font_scale=1.1) + plt.rcParams.update( + { + "figure.figsize": (10, 6), + "figure.dpi": 100, + "axes.titlesize": 14, + "axes.labelsize": 12, + } + ) + + +# --- Text helpers --- +TEXT_FIELDS = ["about_me", "about_project", "use_for_money"] + + +def combined_text(row) -> str: + """Combine the three text fields into one string.""" + parts = [str(row.get(f, "") or "") for f in TEXT_FIELDS] + return " ".join(p.strip() for p in parts if p.strip()) + + +def word_count(text: str) -> int: + """Count words in text.""" + return len(text.split()) if text.strip() else 0 + + +# --- Money extraction --- +# Currency symbols and written forms +CURRENCY_SYMBOLS = r"[\$\£\€\¥\₹\₩\₫\₱\₺\₽\฿\₿]" +CURRENCY_PREFIXED = r"(?:A|NZ|CA|HK|S|US|C)\$" +CURRENCY_CODES = ( + r"\b(?:USD|GBP|EUR|AUD|NZD|CAD|CHF|JPY|CNY|INR|BRL|MXN|ZAR|SEK|NOK|DKK|" + r"KRW|SGD|HKD|TWD|THB|MYR|PHP|IDR|VND|CZK|PLN|HUF|RON|BGN|HRK|RUB|TRY|" + r"ILS|AED|SAR|QAR|KWD|BHD|OMR|CLP|COP|PEN|ARS|UYU)\b" +) +CURRENCY_WORDS = ( + r"\b(?:dollars?|pounds?|euros?|yen|yuan|rupees?|rand|krona|kronor|" + r"francs?|pesos?|reais?|real|won|baht|ringgit|dong|crowns?|zloty|forints?|" + r"lira|shekels?|dirhams?|riyals?)\b" +) + +# Number patterns (handles 1,000 and 1.000 and 1 000) +NUMBER_PATTERN = r"\d[\d,.\s]*\d|\d+" + +# Combined money pattern +MONEY_PATTERN = re.compile( + rf"(?:" + rf"(?:{CURRENCY_PREFIXED}|{CURRENCY_SYMBOLS})\s*(?:{NUMBER_PATTERN})" # symbol before number + rf"|(?:{NUMBER_PATTERN})\s*(?:{CURRENCY_PREFIXED}|{CURRENCY_SYMBOLS})" # number before symbol + rf"|(?:{NUMBER_PATTERN})\s*(?:{CURRENCY_WORDS})" # number + written currency + rf"|(?:{CURRENCY_CODES})\s*(?:{NUMBER_PATTERN})" # ISO code + number + rf"|(?:{NUMBER_PATTERN})\s*(?:{CURRENCY_CODES})" # number + ISO code + rf")", + re.IGNORECASE, +) + + +def extract_money_mentions(text: str) -> list[str]: + """Extract money/currency mentions from free text.""" + return MONEY_PATTERN.findall(text) + + +def money_mention_count(text: str) -> int: + """Count money mentions in text.""" + return len(extract_money_mentions(text)) + + +# --- Label helpers --- +def label_project(row) -> str: + """Assign a label based on funded_on / hidden_at.""" + import pandas as pd + + if pd.notna(row.get("funded_on")): + return "funded" + if pd.notna(row.get("hidden_at")): + return "hidden" + return "unlabeled" + + +# --- Chapter helpers --- +ENGLISH_SPEAKING_COUNTRIES = { + "United States", + "Canada", + "Australia", + "United Kingdom", + "Ireland", + "New Zealand", + "Worldwide", +} diff --git a/notebooks/requirements.txt b/notebooks/requirements.txt new file mode 100644 index 00000000..14e81819 --- /dev/null +++ b/notebooks/requirements.txt @@ -0,0 +1,9 @@ +duckdb>=1.0 +pandas>=2.0 +numpy>=1.24 +matplotlib>=3.7 +seaborn>=0.13 +scikit-learn>=1.3 +price-parser>=0.3 +scipy>=1.11 +jupyterlab>=4.0 diff --git a/scripts/signal-score/pre_scorer.rb b/scripts/signal-score/pre_scorer.rb index e5b02409..5366965f 100644 --- a/scripts/signal-score/pre_scorer.rb +++ b/scripts/signal-score/pre_scorer.rb @@ -41,10 +41,13 @@ def analyze! # Content signals @features["url_count"] = all_text.scan(%r{https?://\S+}).length - @features["dollar_sign_count"] = all_text.count("$") @features["number_count"] = all_text.scan(/\b\d[\d,.]*\b/).length @features["email_count"] = all_text.scan(/\S+@\S+\.\S+/).length + # Money extraction (international currencies) + money_matches = extract_money_mentions(all_text) + @features["money_mention_count"] = money_matches.length + # Capitalized words (proxy for proper nouns / named entities) words = all_text.split(/\s+/) # Skip first word of each sentence @@ -64,9 +67,27 @@ def analyze! # Has images (title/about fields mention image/photo/picture URLs) @features["has_image_reference"] = all_text.match?(/\.(jpg|jpeg|png|gif|webp|bmp)/i) ? 1 : 0 + # TF-IDF features (requires static IDF table) + if self.class.idf_table + tfidf_scores = compute_tfidf(all_text) + @features["tfidf_mean"] = tfidf_scores.empty? ? 0.0 : (tfidf_scores.values.sum / tfidf_scores.length.to_f).round(4) + @features["tfidf_max"] = tfidf_scores.empty? ? 0.0 : tfidf_scores.values.max.round(4) + @features["tfidf_unique_terms"] = tfidf_scores.count { |_, v| v > 0 } + end + @features end + # Load static IDF table (computed from full corpus via notebook 02) + def self.idf_table + @idf_table + end + + def self.load_idf(path) + require "json" + @idf_table = JSON.parse(File.read(path)) + end + private def field_text(name) @@ -86,4 +107,45 @@ def variance(values) mean = values.sum / values.length.to_f values.sum { |v| (v - mean)**2 } / values.length.to_f end + + # International money/currency extraction + CURRENCY_SYMBOLS = /[\$\£\€\¥\₹\₩\₫\₱\₺\₽\฿]/ + CURRENCY_PREFIXED = /(?:A|NZ|CA|HK|S|US|C)\$/ + CURRENCY_CODES = /\b(?:USD|GBP|EUR|AUD|NZD|CAD|CHF|JPY|CNY|INR|BRL|MXN|ZAR|SEK|NOK|DKK|KRW|SGD|HKD|TWD|THB|MYR|PHP|IDR|VND|CZK|PLN|HUF|RON|RUB|TRY|ILS|AED|SAR|CLP|COP|PEN|ARS)\b/i + CURRENCY_WORDS = /\b(?:dollars?|pounds?|euros?|yen|yuan|rupees?|rand|krona|kronor|francs?|pesos?|reais?|real|won|baht|ringgit|crowns?|zloty|forints?|lira|shekels?|dirhams?|riyals?)\b/i + NUMBER_PAT = /\d[\d,.\s]*\d|\d+/ + + MONEY_PATTERN = Regexp.union( + /(?:#{CURRENCY_PREFIXED}|#{CURRENCY_SYMBOLS})\s*#{NUMBER_PAT}/, + /#{NUMBER_PAT}\s*(?:#{CURRENCY_PREFIXED}|#{CURRENCY_SYMBOLS})/, + /#{NUMBER_PAT}\s*#{CURRENCY_WORDS}/, + /#{CURRENCY_CODES}\s*#{NUMBER_PAT}/, + /#{NUMBER_PAT}\s*#{CURRENCY_CODES}/ + ) + + def extract_money_mentions(text) + text.scan(MONEY_PATTERN) + end + + # TF-IDF: compute term frequencies against static IDF table + def compute_tfidf(text) + idf = self.class.idf_table + return {} unless idf + + # Tokenize: lowercase, split on non-word, reject short + words = text.downcase.split(/\W+/).reject { |w| w.length < 2 } + return {} if words.empty? + + # Term frequency (normalized) + tf = Hash.new(0) + words.each { |w| tf[w] += 1 } + tf.transform_values! { |c| c.to_f / words.length } + + # TF-IDF for terms in our IDF table + scores = {} + tf.each do |term, freq| + scores[term] = freq * idf[term] if idf.key?(term) + end + scores + end end From 6982afc4f6231e96139b7bbcd7383790507fb0d1 Mon Sep 17 00:00:00 2001 From: Cedric Hurst Date: Sun, 22 Feb 2026 17:18:19 -0600 Subject: [PATCH 06/25] feat(signal-score): add config, cache, prompt builder, and specs - Add config/signal_score/categories.json with 20 canonical categories in kebab-case - Add AnthropicCache: file-based passthrough cache for API responses, keyed by SHA256 of request params - Add PromptBuilder: assembles system prompt, tool schemas, few-shot examples with chapter-specific config overrides (deep-merge chapter over global default) - Add pre_scorer_spec.rb with unit tests (money extraction, empty fields, TF-IDF) and seeded data tests (tagged :signal_score_data, opt-in via SIGNAL_SCORE_DATA=1) - Prompt supports configurable grant amount and currency for international chapters Refs: #593, #591 --- config/signal_score/categories.json | 22 ++ scripts/signal-score/anthropic_cache.rb | 92 +++++++++ scripts/signal-score/prompt_builder.rb | 245 +++++++++++++++++++++++ spec/lib/signal_score/pre_scorer_spec.rb | 194 ++++++++++++++++++ 4 files changed, 553 insertions(+) create mode 100644 config/signal_score/categories.json create mode 100644 scripts/signal-score/anthropic_cache.rb create mode 100644 scripts/signal-score/prompt_builder.rb create mode 100644 spec/lib/signal_score/pre_scorer_spec.rb diff --git a/config/signal_score/categories.json b/config/signal_score/categories.json new file mode 100644 index 00000000..9a66a034 --- /dev/null +++ b/config/signal_score/categories.json @@ -0,0 +1,22 @@ +[ + "public-art", + "community-garden", + "youth-education", + "music", + "food-community", + "film-media", + "literary", + "dance", + "theater", + "environment", + "sports-recreation", + "festival-event", + "technology-stem", + "women-girls", + "health-wellness", + "children-families", + "civic-social-justice", + "cultural-heritage", + "immigrant-refugee", + "housing-homelessness" +] diff --git a/scripts/signal-score/anthropic_cache.rb b/scripts/signal-score/anthropic_cache.rb new file mode 100644 index 00000000..c8dbbe3c --- /dev/null +++ b/scripts/signal-score/anthropic_cache.rb @@ -0,0 +1,92 @@ +# frozen_string_literal: true + +require "digest" +require "json" +require "fileutils" + +# File-based passthrough cache for Anthropic API responses. +# Cache key = SHA256(model + system_prompt + tool_schema + user_message) +# +# Usage: +# cache = AnthropicCache.new(".scratch/cache/anthropic") +# response = cache.fetch(request_params) { call_anthropic(request_params) } +# +class AnthropicCache + attr_reader :cache_dir, :stats + + def initialize(cache_dir = nil) + @cache_dir = cache_dir || File.expand_path("../../.scratch/cache/anthropic", __dir__) + FileUtils.mkdir_p(@cache_dir) + @stats = { hits: 0, misses: 0 } + end + + # Fetch a cached response or execute the block and cache the result. + def fetch(request_params) + key = cache_key(request_params) + path = cache_path(key) + + if File.exist?(path) + @stats[:hits] += 1 + JSON.parse(File.read(path)) + else + response = yield + File.write(path, JSON.pretty_generate(response)) + @stats[:misses] += 1 + response + end + end + + # Check if a response is cached without fetching. + def cached?(request_params) + File.exist?(cache_path(cache_key(request_params))) + end + + # Write a result directly (e.g., from batch API result parsing). + def write(request_params, response) + key = cache_key(request_params) + File.write(cache_path(key), JSON.pretty_generate(response)) + end + + # Read a cached result without calling API. + def read(request_params) + key = cache_key(request_params) + path = cache_path(key) + return nil unless File.exist?(path) + + JSON.parse(File.read(path)) + end + + # Number of cached responses. + def size + Dir.glob(File.join(@cache_dir, "*.json")).length + end + + # Clear all cached responses. + def clear! + Dir.glob(File.join(@cache_dir, "*.json")).each { |f| File.delete(f) } + end + + private + + def cache_key(params) + # Extract the parts that determine the response + model = params[:model] || params["model"] || "" + system = params[:system] || params["system"] || "" + tools = params[:tools] || params["tools"] || [] + messages = params[:messages] || params["messages"] || [] + + # Stable serialization for hashing + content = JSON.generate({ + model: model, + system: system, + tools: tools, + messages: messages, + }) + + Digest::SHA256.hexdigest(content) + end + + def cache_path(key) + File.join(@cache_dir, "#{key}.json") + end +end diff --git a/scripts/signal-score/prompt_builder.rb b/scripts/signal-score/prompt_builder.rb new file mode 100644 index 00000000..2434385f --- /dev/null +++ b/scripts/signal-score/prompt_builder.rb @@ -0,0 +1,245 @@ +# frozen_string_literal: true + +require "json" + +# Assembles scoring prompts with chapter-specific config overrides. +# +# Config resolution order: +# 1. Chapter-specific overrides (from DB or .scratch/prompts/{slug}.json) +# 2. Global default (.scratch/prompts/default.json or hardcoded) +# +# Usage: +# builder = PromptBuilder.new(chapter: "Chicago, IL") +# system_prompt = builder.system_prompt +# tool_schema = builder.score_tool +# few_shot = builder.few_shot_text(funded_projects, hidden_projects) +# +class PromptBuilder + CATEGORIES_PATH = File.expand_path("../../config/signal_score/categories.json", __dir__) + PROMPTS_DIR = File.expand_path("../../.scratch/prompts", __dir__) + + attr_reader :config + + def initialize(chapter: nil, config_override: nil) + @config = resolve_config(chapter, config_override) + end + + # --- Prompt assembly --- + + def system_prompt + # Full override takes precedence + return @config["system_prompt"] if @config["system_prompt"] + + base = default_system_prompt + addendum = @config["rubric_addendum"] + addendum ? "#{base}\n\n#{addendum}" : base + end + + def score_tool + SCORE_TOOL + end + + def category_tool + CATEGORY_TOOL + end + + def categories + @categories ||= begin + custom = @config.dig("category_config", "custom") || [] + disabled = @config.dig("category_config", "disabled") || [] + base = canonical_categories.reject { |c| disabled.include?(c) } + base + custom.map { |c| c["slug"] } + end + end + + def model + @config["model"] || "claude-haiku-4-5-20251001" + end + + def grant_amount + @config["grant_amount"] || 1000 + end + + def currency + @config["currency"] || "USD" + end + + def few_shot_count + @config["few_shot_count"] || 15 + end + + # Build the few-shot examples text block. + def few_shot_text(funded_projects, hidden_projects) + n = few_shot_count + + text = "## EXAMPLES OF FUNDED (WINNING) APPLICATIONS\n\n" + funded_projects.first(n).each do |p| + text += "### Project #{p['id']} — FUNDED\n#{format_application(p)}\n\n" + end + + text += "## EXAMPLES OF HIDDEN (REJECTED/FILTERED) APPLICATIONS\n\n" + hidden_projects.first(n).each do |p| + reason = p["hidden_reason"] ? " (reason: #{p['hidden_reason']})" : "" + text += "### Project #{p['id']} — HIDDEN#{reason}\n#{format_application(p)}\n\n" + end + + text + end + + def format_application(project) + parts = ["Title: #{project['title'] || '(empty)'}"] + parts << "Chapter: #{project['chapter_name']}" if project["chapter_name"] + %w[about_me about_project use_for_money].each do |f| + val = project[f].to_s.strip + parts << "#{f.tr('_', ' ').split.map(&:capitalize).join(' ')}: #{val}" unless val.empty? + end + parts.join("\n") + end + + private + + def resolve_config(chapter, override) + base = load_default_config + if chapter + chapter_config = load_chapter_config(chapter) + base = deep_merge(base, chapter_config) if chapter_config + end + base = deep_merge(base, override) if override + base + end + + def load_default_config + path = File.join(PROMPTS_DIR, "default.json") + File.exist?(path) ? JSON.parse(File.read(path)) : {} + end + + def load_chapter_config(chapter) + slug = chapter.downcase.gsub(/[^a-z0-9]+/, "-").gsub(/-+$/, "") + path = File.join(PROMPTS_DIR, "chapters", "#{slug}.json") + File.exist?(path) ? JSON.parse(File.read(path)) : nil + end + + def canonical_categories + @canonical_categories ||= JSON.parse(File.read(CATEGORIES_PATH)) + end + + def deep_merge(base, overlay) + base.merge(overlay) do |_key, old_val, new_val| + if old_val.is_a?(Hash) && new_val.is_a?(Hash) + deep_merge(old_val, new_val) + else + new_val + end + end + end + + # --- Default system prompt (hardcoded fallback) --- + + def default_system_prompt + amount = grant_amount + curr = currency == "USD" ? "$" : currency + + <<~PROMPT + You are an expert grant application screener for the Awesome Foundation. + + The Awesome Foundation is a global network of volunteer "micro-trustees" who each chip in to award #{curr}#{amount} grants for awesome projects. No strings attached — the money goes to creative, community-benefiting, unique ideas. + + Score each application using the score_application tool. Extract structured features to help trustees prioritize their review. + + ## Scoring Rubric (composite_score: 0.0 to 1.0) + + - 0.0–0.1: Clear spam, gibberish, test submissions, or AI-generated mass submissions + - 0.1–0.3: Real but very weak — business pitches, personal fundraising, vague ideas, wrong location + - 0.3–0.5: Borderline — decent concept but missing details, unclear community benefit, generic + - 0.5–0.7: Solid — clear project, community benefit, actionable plan, reasonable for #{curr}#{amount} + - 0.7–0.9: Strong — creative, specific, well-articulated, exactly what AF funds + - 0.9–1.0: Exceptional — innovative, clearly impactful, inspiring, would excite any trustee + + ## Feature Dimensions + + ### Trust Equation: T = (Credibility + Reliability + Intimacy) / (1 + Self-Interest) + + **Numerator (higher = better):** + - credibility: Clear budget, realistic plan, relevant expertise. (0=vague, 1=detailed budget + clear execution) + - reliability: Track record, prior work, organizational backing. (0=no evidence, 1=strong track record) + - intimacy: Connection to community, local ties, authentic voice. Named neighborhoods, specific orgs, personal anecdotes. Sub-city precision (ward/zip) scores higher than city-level. (0=generic, 1=deeply embedded) + + **Denominator (higher = worse):** + - self_interest: Money primarily benefits applicant? Living expenses, tuition, business startup, self-payment >50% of budget. (0=community-benefiting, 1=self-serving) + + ### Additional Signals + + - specificity: Concrete details — costs, addresses, timelines, partner names. (0=vague, 1=highly specific) + - creativity: How original, unique, fun, or surprising? "The opposite of whimsy is boring, not serious." (0=generic, 1=delightfully novel) + - budget_alignment: Can #{curr}#{amount} meaningfully complete this? Is it a "drop in the bucket" or perfectly sized? (0=wildly mismatched, 1=perfectly scoped) + - catalytic_potential: Does #{curr}#{amount} unlock something bigger — prototype, proof-of-concept, career catalyst? (0=standalone purchase, 1=unlocks outsized outcomes) + - community_benefit: Clear benefit beyond the applicant? Creating new connections scores higher than serving existing community. (0=purely personal, 1=broad community impact + new connections) + - personal_voice: Does it sound like a real person? Quirky details, informal language, personal anecdotes = POSITIVE. Over-polished corporate language = NEGATIVE. (0=robotic/templated, 1=authentic and personal) + + ### AI Detection (two separate signals) + + - ai_spam_likelihood: Mass-generated generic proposal — no personal details, no local knowledge. (0=clearly genuine, 1=almost certainly mass-generated) + - ai_writing_likelihood: Exhibits AI writing patterns? Uniform sentences, significance inflation, promotional language. INFORMATIONAL ONLY — do not factor into composite_score. (0=clearly human, 1=heavily AI-styled) + + ## Flags (include any that apply) + spam, ai_spam, duplicate, incomplete, wrong_location, business_pitch, personal_fundraising, low_effort + + ## Key Principles + - AF values creativity, community impact, and fun + - #{curr}#{amount} is small — projects should be scoped appropriately + - Professional credentials are neutral-to-negative + - Projects "too weird for traditional funders" = MORE awesome, not less + - ~28% of applications are typically review-worthy + PROMPT + end + + # --- Tool schemas --- + + SCORE_TOOL = { + "name" => "score_application", + "description" => "Score a grant application and extract structured features", + "input_schema" => { + "type" => "object", + "required" => %w[composite_score reason flags features], + "properties" => { + "composite_score" => { "type" => "number", "description" => "Overall score 0.0-1.0" }, + "reason" => { "type" => "string", "description" => "One-sentence explanation" }, + "flags" => { "type" => "array", "items" => { "type" => "string" } }, + "features" => { + "type" => "object", + "required" => %w[ + credibility reliability intimacy self_interest + specificity creativity budget_alignment catalytic_potential + community_benefit personal_voice + ai_spam_likelihood ai_writing_likelihood + ], + "properties" => %w[ + credibility reliability intimacy self_interest + specificity creativity budget_alignment catalytic_potential + community_benefit personal_voice + ai_spam_likelihood ai_writing_likelihood + ].each_with_object({}) { |k, h| h[k] = { "type" => "number" } }, + }, + }, + }, + }.freeze + + CATEGORY_TOOL = { + "name" => "categorize_application", + "description" => "Categorize a grant application with thematic scores and freeform tags", + "input_schema" => { + "type" => "object", + "required" => %w[categories tags primary_category], + "properties" => { + "primary_category" => { "type" => "string" }, + "categories" => { + "type" => "object", + "properties" => JSON.parse(File.read(CATEGORIES_PATH)).each_with_object({}) { |c, h| + h[c] = { "type" => "number" } + }, + }, + "tags" => { "type" => "array", "items" => { "type" => "string" } }, + }, + }, + }.freeze +end diff --git a/spec/lib/signal_score/pre_scorer_spec.rb b/spec/lib/signal_score/pre_scorer_spec.rb new file mode 100644 index 00000000..eb25d129 --- /dev/null +++ b/spec/lib/signal_score/pre_scorer_spec.rb @@ -0,0 +1,194 @@ +# frozen_string_literal: true + +require_relative "../../../scripts/signal-score/pre_scorer" + +RSpec.describe PreScorer do + describe "#analyze!" do + context "with a typical funded application" do + let(:project) do + { + "about_me" => "I'm a community organizer in Pilsen, Chicago. I've been running after-school programs for 5 years at Benito Juarez High School.", + "about_project" => "We want to build a community garden on the vacant lot at 18th and Ashland. We've already gotten permission from the alderman's office and have 30 volunteers signed up.", + "use_for_money" => "Seeds and soil: $400. Raised beds (lumber): $350. Tools: $150. Water hookup: $100.", + } + end + + subject { described_class.new(project).tap(&:analyze!).features } + + it "counts words per field" do + expect(subject["word_count_about_me"]).to be > 10 + expect(subject["word_count_about_project"]).to be > 10 + expect(subject["word_count_use_for_money"]).to be > 5 + end + + it "detects money mentions" do + expect(subject["money_mention_count"]).to eq(4) # $400, $350, $150, $100 + end + + it "finds URLs" do + expect(subject["url_count"]).to eq(0) + end + + it "detects no empty fields" do + expect(subject["empty_field_count"]).to eq(0) + end + + it "calculates field length variance" do + expect(subject["field_length_variance"]).to be > 0 + end + + it "has reasonable sentence stats" do + expect(subject["sentence_count"]).to be > 3 + expect(subject["avg_sentence_length"]).to be > 5 + end + end + + context "with a spam/low-effort application" do + let(:project) do + { + "about_me" => "me", + "about_project" => "need money", + "use_for_money" => "stuff", + } + end + + subject { described_class.new(project).tap(&:analyze!).features } + + it "has very low word counts" do + expect(subject["word_count_total"]).to be < 10 + end + + it "has zero money mentions" do + expect(subject["money_mention_count"]).to eq(0) + end + + it "has low sentence count" do + expect(subject["sentence_count"]).to be <= 3 + end + end + + context "with international currencies" do + let(:project) do + { + "about_me" => "Artist from Melbourne.", + "about_project" => "Budget: A$800 for paint, 200 euros for brushes, 500 pounds for venue hire, NZ$300 for shipping.", + "use_for_money" => "Materials and transport costs.", + } + end + + subject { described_class.new(project).tap(&:analyze!).features } + + it "detects multiple currency formats" do + expect(subject["money_mention_count"]).to be >= 4 + end + end + + context "with empty fields" do + let(:project) do + { + "about_me" => "I'm a student.", + "about_project" => "", + "use_for_money" => nil, + } + end + + subject { described_class.new(project).tap(&:analyze!).features } + + it "counts empty fields" do + expect(subject["empty_field_count"]).to eq(2) + end + end + + context "with TF-IDF features" do + let(:project) do + { + "about_me" => "community garden volunteer", + "about_project" => "build raised beds for neighborhood", + "use_for_money" => "soil and seeds", + } + end + + before do + # Load a minimal IDF table + PreScorer.instance_variable_set(:@idf_table, { + "community" => 2.5, + "garden" => 4.0, + "volunteer" => 3.5, + "build" => 2.0, + "raised" => 5.0, + "beds" => 5.5, + "neighborhood" => 3.8, + "soil" => 6.0, + "seeds" => 5.5, + }) + end + + after do + PreScorer.instance_variable_set(:@idf_table, nil) + end + + subject { described_class.new(project).tap(&:analyze!).features } + + it "computes TF-IDF mean" do + expect(subject["tfidf_mean"]).to be > 0 + end + + it "computes TF-IDF max" do + expect(subject["tfidf_max"]).to be >= subject["tfidf_mean"] + end + + it "counts unique matching terms" do + expect(subject["tfidf_unique_terms"]).to be > 0 + end + end + end + + describe "seeded data", :signal_score_data do + # These tests run against real data from .scratch/data/ + # Enable with: SIGNAL_SCORE_DATA=1 rspec --tag signal_score_data + + let(:duckdb_path) { File.expand_path("../../../.scratch/data/awesomebits.duckdb", __dir__) } + + before(:all) do + skip "DuckDB not found at .scratch/data/" unless File.exist?( + File.expand_path("../../../.scratch/data/awesomebits.duckdb", __dir__) + ) + require "json" + # Load projects via duckdb CLI + raw = `duckdb #{File.expand_path("../../../.scratch/data/awesomebits.duckdb", __dir__)} -json -c "SELECT * FROM sample_400 LIMIT 50"` + @projects = JSON.parse(raw) + end + + it "processes real funded projects without errors" do + funded = @projects.select { |p| p["actual_label"] == "funded" } + skip "No funded projects in seed data" if funded.empty? + + funded.each do |p| + scorer = PreScorer.new(p) + expect { scorer.analyze! }.not_to raise_error + expect(scorer.features["word_count_total"]).to be >= 0 + end + end + + it "processes real hidden projects without errors" do + hidden = @projects.select { |p| p["actual_label"] == "hidden" } + skip "No hidden projects in seed data" if hidden.empty? + + hidden.each do |p| + scorer = PreScorer.new(p) + expect { scorer.analyze! }.not_to raise_error + end + end + + it "funded projects tend to have higher word counts than hidden" do + funded = @projects.select { |p| p["actual_label"] == "funded" } + hidden = @projects.select { |p| p["actual_label"] == "hidden" } + skip "Not enough labeled data" if funded.length < 5 || hidden.length < 5 + + funded_avg = funded.sum { |p| PreScorer.new(p).tap(&:analyze!).features["word_count_total"] } / funded.length.to_f + hidden_avg = hidden.sum { |p| PreScorer.new(p).tap(&:analyze!).features["word_count_total"] } / hidden.length.to_f + + expect(funded_avg).to be > hidden_avg + end + end +end From 7ca7c46de220ba39819fdf02dbe84b84496ad4b6 Mon Sep 17 00:00:00 2001 From: Cedric Hurst Date: Sun, 22 Feb 2026 17:20:09 -0600 Subject: [PATCH 07/25] feat(signal-score): enrich categories with names and descriptions - categories.json now has slug, name, and description per category - PromptBuilder uses descriptions in tool schema so the LLM knows what each category means - Category tool properties include per-field descriptions Refs: #593 --- config/signal_score/categories.json | 120 ++++++++++++++++++++----- scripts/signal-score/prompt_builder.rb | 48 ++++++---- 2 files changed, 131 insertions(+), 37 deletions(-) diff --git a/config/signal_score/categories.json b/config/signal_score/categories.json index 9a66a034..e8c510b9 100644 --- a/config/signal_score/categories.json +++ b/config/signal_score/categories.json @@ -1,22 +1,102 @@ [ - "public-art", - "community-garden", - "youth-education", - "music", - "food-community", - "film-media", - "literary", - "dance", - "theater", - "environment", - "sports-recreation", - "festival-event", - "technology-stem", - "women-girls", - "health-wellness", - "children-families", - "civic-social-justice", - "cultural-heritage", - "immigrant-refugee", - "housing-homelessness" + { + "slug": "public-art", + "name": "Public Art", + "description": "Murals, installations, sculptures, street art, public creative works" + }, + { + "slug": "community-garden", + "name": "Community Garden", + "description": "Gardens, urban farming, composting, food growing, green spaces" + }, + { + "slug": "youth-education", + "name": "Youth & Education", + "description": "After-school programs, tutoring, mentoring, youth camps, student support" + }, + { + "slug": "music", + "name": "Music", + "description": "Instruments, bands, concerts, recording, music education, community music" + }, + { + "slug": "food-community", + "name": "Food & Community", + "description": "Cooking, community meals, food security, kitchen programs, nutrition" + }, + { + "slug": "film-media", + "name": "Film & Media", + "description": "Film, documentary, podcast, video, animation, media production" + }, + { + "slug": "literary", + "name": "Literary", + "description": "Books, libraries, reading programs, zines, publishing, writing workshops" + }, + { + "slug": "dance", + "name": "Dance", + "description": "Dance, ballet, movement, choreography, dance education" + }, + { + "slug": "theater", + "name": "Theater", + "description": "Theater, improv, puppets, drama, comedy, stage performance" + }, + { + "slug": "environment", + "name": "Environment", + "description": "Conservation, recycling, sustainability, ecology, tree planting, clean energy" + }, + { + "slug": "sports-recreation", + "name": "Sports & Recreation", + "description": "Bikes, skating, sports leagues, outdoor recreation, fitness, play" + }, + { + "slug": "festival-event", + "name": "Festival & Event", + "description": "Festivals, block parties, parades, celebrations, community gatherings" + }, + { + "slug": "technology-stem", + "name": "Technology & STEM", + "description": "Robotics, coding, maker spaces, digital literacy, science education" + }, + { + "slug": "women-girls", + "name": "Women & Girls", + "description": "Women's empowerment, girls in STEM, gender equity, women's health" + }, + { + "slug": "health-wellness", + "name": "Health & Wellness", + "description": "Mental health, disability support, therapy, wellness, medical access" + }, + { + "slug": "children-families", + "name": "Children & Families", + "description": "Childcare, family support, parenting resources, family activities" + }, + { + "slug": "civic-social-justice", + "name": "Civic & Social Justice", + "description": "Activism, voting, rights, advocacy, community organizing" + }, + { + "slug": "cultural-heritage", + "name": "Cultural Heritage", + "description": "Indigenous culture, preservation, history, museums, ancestral arts" + }, + { + "slug": "immigrant-refugee", + "name": "Immigrant & Refugee", + "description": "Immigrant services, ESL, refugee support, newcomer programs" + }, + { + "slug": "housing-homelessness", + "name": "Housing & Homelessness", + "description": "Shelter, housing, homelessness services, housing advocacy" + } ] diff --git a/scripts/signal-score/prompt_builder.rb b/scripts/signal-score/prompt_builder.rb index 2434385f..9a65d979 100644 --- a/scripts/signal-score/prompt_builder.rb +++ b/scripts/signal-score/prompt_builder.rb @@ -47,11 +47,15 @@ def categories @categories ||= begin custom = @config.dig("category_config", "custom") || [] disabled = @config.dig("category_config", "disabled") || [] - base = canonical_categories.reject { |c| disabled.include?(c) } - base + custom.map { |c| c["slug"] } + base = canonical_categories.reject { |c| disabled.include?(c["slug"]) } + base + custom end end + def category_slugs + categories.map { |c| c["slug"] } + end + def model @config["model"] || "claude-haiku-4-5-20251001" end @@ -224,22 +228,32 @@ def default_system_prompt }, }.freeze - CATEGORY_TOOL = { - "name" => "categorize_application", - "description" => "Categorize a grant application with thematic scores and freeform tags", - "input_schema" => { - "type" => "object", - "required" => %w[categories tags primary_category], - "properties" => { - "primary_category" => { "type" => "string" }, - "categories" => { - "type" => "object", - "properties" => JSON.parse(File.read(CATEGORIES_PATH)).each_with_object({}) { |c, h| - h[c] = { "type" => "number" } + def self.build_category_tool + cats = JSON.parse(File.read(CATEGORIES_PATH)) + { + "name" => "categorize_application", + "description" => "Categorize a grant application with thematic scores and freeform tags", + "input_schema" => { + "type" => "object", + "required" => %w[categories tags primary_category], + "properties" => { + "primary_category" => { "type" => "string", "description" => "The single most fitting category slug" }, + "categories" => { + "type" => "object", + "description" => "Confidence score 0-1 for each category (omit below 0.2)", + "properties" => cats.each_with_object({}) { |c, h| + h[c["slug"]] = { "type" => "number", "description" => c["description"] } + }, + }, + "tags" => { + "type" => "array", + "items" => { "type" => "string" }, + "description" => "3-5 freeform keyword tags for themes not in canonical categories", }, }, - "tags" => { "type" => "array", "items" => { "type" => "string" } }, }, - }, - }.freeze + }.freeze + end + + CATEGORY_TOOL = build_category_tool end From e3af86a003813a260902609c5aa9f82b214bc9f6 Mon Sep 17 00:00:00 2001 From: Cedric Hurst Date: Sun, 22 Feb 2026 17:24:08 -0600 Subject: [PATCH 08/25] refactor(signal-score): wire score_grants to PromptBuilder and cache - Replace hardcoded SCORE_TOOL, SYSTEM_PROMPT, format_application with PromptBuilder calls - Integrate AnthropicCache into batch builder (skip cached requests) - Add --chapter and --no-fewshot flags to build-batch command - build_user_message helper supports both few-shot and rubric-only modes - PromptBuilder is now the single source of truth for prompts Refs: #593, #591 --- scripts/signal-score/score_grants.rb | 185 ++++++++------------------- 1 file changed, 50 insertions(+), 135 deletions(-) diff --git a/scripts/signal-score/score_grants.rb b/scripts/signal-score/score_grants.rb index d123912d..516a3cc3 100644 --- a/scripts/signal-score/score_grants.rb +++ b/scripts/signal-score/score_grants.rb @@ -17,6 +17,8 @@ require "uri" require "fileutils" require_relative "pre_scorer" +require_relative "prompt_builder" +require_relative "anthropic_cache" DATA_DIR = File.expand_path("../../.scratch/data", __dir__) DB_PATH = File.join(DATA_DIR, "awesomebits.duckdb") @@ -27,6 +29,8 @@ "opus" => "claude-opus-4-0-20250514", }.freeze +CACHE = AnthropicCache.new + # --- DuckDB helper --- def duckdb(sql) @@ -37,118 +41,22 @@ def duckdb(sql) # --- Tool schema for structured output --- -SCORE_TOOL = { - name: "score_application", - description: "Score a grant application and extract structured features", - input_schema: { - type: "object", - required: %w[composite_score reason flags features], - properties: { - composite_score: { - type: "number", - description: "Overall score 0.0-1.0" - }, - reason: { - type: "string", - description: "One-sentence explanation of the score" - }, - flags: { - type: "array", - items: { type: "string" }, - description: "Applicable flags: spam, ai_spam, duplicate, incomplete, wrong_location, business_pitch, personal_fundraising, low_effort" - }, - features: { - type: "object", - required: %w[ - credibility reliability intimacy self_interest - specificity creativity budget_alignment catalytic_potential - community_benefit personal_voice - ai_spam_likelihood ai_writing_likelihood - ], - properties: { - credibility: { type: "number" }, - reliability: { type: "number" }, - intimacy: { type: "number" }, - self_interest: { type: "number" }, - specificity: { type: "number" }, - creativity: { type: "number" }, - budget_alignment: { type: "number" }, - catalytic_potential: { type: "number" }, - community_benefit: { type: "number" }, - personal_voice: { type: "number" }, - ai_spam_likelihood: { type: "number" }, - ai_writing_likelihood: { type: "number" }, - } - } - } - } -}.freeze - -SYSTEM_PROMPT = <<~PROMPT - You are an expert grant application screener for the Awesome Foundation. - - The Awesome Foundation is a global network of volunteer "micro-trustees" who each chip in to award $1,000 grants for awesome projects. No strings attached — the money goes to creative, community-benefiting, unique ideas. - - Score each application using the score_application tool. Extract structured features to help trustees prioritize their review. - - ## Scoring Rubric (composite_score: 0.0 to 1.0) - - - 0.0–0.1: Clear spam, gibberish, test submissions, or AI-generated mass submissions - - 0.1–0.3: Real but very weak — business pitches, personal fundraising, vague ideas, wrong location - - 0.3–0.5: Borderline — decent concept but missing details, unclear community benefit, generic - - 0.5–0.7: Solid — clear project, community benefit, actionable plan, reasonable for $1,000 - - 0.7–0.9: Strong — creative, specific, well-articulated, exactly what AF funds - - 0.9–1.0: Exceptional — innovative, clearly impactful, inspiring, would excite any trustee - - ## Feature Dimensions - - ### Trust Equation: T = (Credibility + Reliability + Intimacy) / (1 + Self-Interest) - - **Numerator (higher = better):** - - credibility: Clear budget, realistic plan, relevant expertise. (0=vague, 1=detailed budget + clear execution) - - reliability: Track record, prior work, organizational backing. (0=no evidence, 1=strong track record) - - intimacy: Connection to community, local ties, authentic voice. Named neighborhoods, specific orgs, personal anecdotes. Sub-city precision (ward/zip) scores higher than city-level. (0=generic, 1=deeply embedded) - - **Denominator (higher = worse):** - - self_interest: Money primarily benefits applicant? Living expenses, tuition, business startup, self-payment >50% of budget. (0=community-benefiting, 1=self-serving) - - ### Additional Signals +# --- Prompt builder instance --- - - specificity: Concrete details — costs, addresses, timelines, partner names. (0=vague, 1=highly specific) - - creativity: How original, unique, fun, or surprising? "The opposite of whimsy is boring, not serious." (0=generic, 1=delightfully novel) - - budget_alignment: Can $1K meaningfully complete this? Is it a "drop in the bucket" or perfectly sized? (0=wildly mismatched, 1=perfectly scoped) - - catalytic_potential: Does $1K unlock something bigger — prototype, proof-of-concept, career catalyst? "That money was just a cheap way to start a relationship." (0=standalone purchase, 1=unlocks outsized outcomes) - - community_benefit: Clear benefit beyond the applicant? Creating new connections scores higher than serving existing community. (0=purely personal, 1=broad community impact + new connections) - - personal_voice: Does it sound like a real person? Quirky details, informal language, personal anecdotes = POSITIVE. Over-polished corporate language = NEGATIVE. Brevity is fine — a 3-sentence authentic app beats a 3-paragraph polished one. (0=robotic/templated, 1=authentic and personal) - - ### AI Detection (two separate signals) - - - ai_spam_likelihood: Mass-generated generic proposal — no personal details, no local knowledge, could apply to any grant program unchanged. NOT the same as someone using AI to write about a genuine project. (0=clearly genuine, 1=almost certainly mass-generated) - - ai_writing_likelihood: Does the writing exhibit AI patterns? Uniform sentence structure, significance inflation ("pivotal", "groundbreaking"), superficial -ing analyses ("highlighting...", "showcasing..."), promotional language ("vibrant", "nestled", "in the heart of"). This is INFORMATIONAL ONLY — do not factor into composite_score. A genuine project with AI-polished writing is still fundable. (0=clearly human-written, 1=heavily AI-styled) - - ## Flags (include any that apply) - spam, ai_spam, duplicate, incomplete, wrong_location, business_pitch, personal_fundraising, low_effort - - ## Key Principles - - AF values creativity, community impact, and fun. Weird/quirky is great. - - $1,000 is small. Projects should be scoped appropriately. - - Professional credentials (degrees, awards, institutions) are neutral-to-negative — AF funds people, not organizations. - - Projects "too weird for traditional funders" = MORE awesome, not less. - - ~28% of applications are typically review-worthy. Most are generic but not spam. -PROMPT - -# --- Format helpers --- +def prompt_builder(chapter: nil) + PromptBuilder.new(chapter: chapter) +end -def format_application(project) - parts = ["Title: #{project['title'] || '(empty)'}"] - parts << "Chapter: #{project['chapter_name']}" if project["chapter_name"] - parts << "About Me: #{project['about_me']}" if project["about_me"].to_s.strip != "" - parts << "About Project: #{project['about_project']}" if project["about_project"].to_s.strip != "" - parts << "Use for Money: #{project['use_for_money']}" if project["use_for_money"].to_s.strip != "" - parts.join("\n") +def build_user_message(builder, project, examples_text = nil) + app_text = builder.format_application(project) + if examples_text + "Here are examples of previously funded and hidden applications:\n\n#{examples_text}\n\n---\n\nNow score this application:\n\n#{app_text}" + else + "Score this application:\n\n#{app_text}" + end end -def build_few_shot_examples +def build_few_shot_examples(builder) labeled = duckdb(<<~SQL) SELECT cv.*, c.name as chapter_name FROM chicago_validation cv @@ -156,19 +64,10 @@ def build_few_shot_examples ORDER BY actual_label, hidden_reason SQL - funded = labeled.select { |p| p["actual_label"] == "funded" }.first(15) - hidden = labeled.select { |p| p["actual_label"] == "hidden" }.first(15) - - text = "## EXAMPLES OF FUNDED (WINNING) APPLICATIONS\n\n" - funded.each { |p| text += "### Project #{p['id']} — FUNDED\n#{format_application(p)}\n\n" } + funded = labeled.select { |p| p["actual_label"] == "funded" } + hidden = labeled.select { |p| p["actual_label"] == "hidden" } - text += "## EXAMPLES OF HIDDEN (REJECTED/FILTERED) APPLICATIONS\n\n" - hidden.each do |p| - reason = p["hidden_reason"] ? " (reason: #{p['hidden_reason']})" : "" - text += "### Project #{p['id']} — HIDDEN#{reason}\n#{format_application(p)}\n\n" - end - - text + builder.few_shot_text(funded, hidden) end # --- Commands --- @@ -264,32 +163,45 @@ def cmd_pre_score puts " Apps with empty fields: #{empty}/#{results.length}" end -def cmd_build_batch(model_alias:) +def cmd_build_batch(model_alias:, chapter: nil, no_fewshot: false) + builder = prompt_builder(chapter: chapter) model = MODELS[model_alias] || model_alias puts "Building batch for model: #{model} (#{model_alias})" + puts " Chapter: #{chapter || 'default'}, few-shot: #{!no_fewshot}" - examples_text = build_few_shot_examples + examples_text = no_fewshot ? nil : build_few_shot_examples(builder) projects = duckdb("SELECT * FROM sample_400") puts " #{projects.length} projects to score" - lines = projects.map do |p| - { + # Skip cached requests + skipped = 0 + lines = [] + projects.each do |p| + request_params = { + model: model, + system: builder.system_prompt, + tools: [builder.score_tool], + messages: [{ role: "user", content: build_user_message(builder, p, examples_text) }], + } + + if CACHE.cached?(request_params) + skipped += 1 + next + end + + lines << { custom_id: "project-#{p['id']}", params: { model: model, max_tokens: 1024, - system: SYSTEM_PROMPT, - tools: [SCORE_TOOL], + system: builder.system_prompt, + tools: [builder.score_tool], tool_choice: { type: "tool", name: "score_application" }, - messages: [ - { - role: "user", - content: "Here are examples of previously funded and hidden applications:\n\n#{examples_text}\n\n---\n\nNow score this application:\n\n#{format_application(p)}" - } - ] - } + messages: [{ role: "user", content: build_user_message(builder, p, examples_text) }], + }, }.to_json end + puts " Skipped #{skipped} cached requests" if skipped > 0 output = File.join(DATA_DIR, "batch-#{model_alias}.jsonl") File.write(output, lines.join("\n") + "\n") @@ -443,7 +355,10 @@ def cmd_results(batch_id:, output: nil) when "build-batch" i = ARGV.index("--model") model = i ? ARGV[i + 1] : "haiku" - cmd_build_batch(model_alias: model) + i = ARGV.index("--chapter") + chapter = i ? ARGV[i + 1] : nil + no_fewshot = ARGV.include?("--no-fewshot") + cmd_build_batch(model_alias: model, chapter: chapter, no_fewshot: no_fewshot) when "submit" i = ARGV.index("--input") @@ -472,7 +387,7 @@ def cmd_results(batch_id:, output: nil) Commands: build-sample Build stratified 400-app sample in DuckDB pre-score Run PreScorer on sample (deterministic features) - build-batch Build batch JSONL [--model haiku|sonnet|opus] + build-batch Build batch JSONL [--model haiku|sonnet|opus] [--chapter name] [--no-fewshot] submit Submit batch [--input path.jsonl] submit-all Submit all built batches (haiku, sonnet, opus) results Fetch results [--batch-id ] From 61475ecf36f96c76a9cf519a4cd2c1674820d05e Mon Sep 17 00:00:00 2001 From: Cedric Hurst Date: Sun, 22 Feb 2026 17:27:18 -0600 Subject: [PATCH 09/25] feat(signal-score): add config model, migration, and scorer class - Add signal_score_configs migration: chapter-scoped JSONB config with global default (chapter_id = NULL), partial index - Add SignalScoreConfig model: deep-merge resolution, uniqueness validation, global default constraint - Add SignalScorer: Rails-side entry point wrapping PreScorer and future LLM scoring, reads config from DB - Add signal_score_config_spec with resolve/merge tests Refs: #593 --- app/extras/signal_scorer.rb | 75 +++++++++++++++++ app/models/signal_score_config.rb | 68 ++++++++++++++++ .../20260222_create_signal_score_configs.rb | 19 +++++ spec/models/signal_score_config_spec.rb | 80 +++++++++++++++++++ 4 files changed, 242 insertions(+) create mode 100644 app/extras/signal_scorer.rb create mode 100644 app/models/signal_score_config.rb create mode 100644 db/migrate/20260222_create_signal_score_configs.rb create mode 100644 spec/models/signal_score_config_spec.rb diff --git a/app/extras/signal_scorer.rb b/app/extras/signal_scorer.rb new file mode 100644 index 00000000..b51be182 --- /dev/null +++ b/app/extras/signal_scorer.rb @@ -0,0 +1,75 @@ +# frozen_string_literal: true + +# SignalScorer — AI-assisted grant application pre-screening. +# +# Two-layer pipeline: +# 1. PreScorer: deterministic text features (zero cost, local) +# 2. LLM Scorer: Anthropic API with Trust Equation rubric +# +# Usage: +# scorer = SignalScorer.new(project) +# scorer.pre_score! # deterministic features only +# scorer.score! # full LLM scoring (requires API key) +# scorer.categorize! # taxonomy classification +# scorer.composite_score # 0.0-1.0 +# scorer.categories # { "public-art" => 0.8, ... } +# scorer.tags # ["mentorship", "emerging-artists"] +# +# Config resolution: +# SignalScoreConfig.resolve(project.chapter) -> merged JSONB config +# +class SignalScorer + attr_reader :project, :pre_score_features, :score_result, :category_result + + def initialize(project) + @project = project + @config = SignalScoreConfig.resolve(project.chapter) + end + + def pre_score! + # Deterministic features — always available, zero cost + scorer = build_pre_scorer + scorer.analyze! + @pre_score_features = scorer.features + end + + def composite_score + score_result&.dig("composite_score") + end + + def reason + score_result&.dig("reason") + end + + def flags + score_result&.dig("flags") || [] + end + + def features + score_result&.dig("features") || {} + end + + def primary_category + category_result&.dig("primary_category") + end + + def categories + category_result&.dig("categories") || {} + end + + def tags + category_result&.dig("tags") || [] + end + + private + + def build_pre_scorer + # Convert ActiveRecord to hash for PreScorer compatibility + attrs = if project.respond_to?(:attributes) + project.attributes + else + project + end + PreScorer.new(attrs) + end +end diff --git a/app/models/signal_score_config.rb b/app/models/signal_score_config.rb new file mode 100644 index 00000000..305a4799 --- /dev/null +++ b/app/models/signal_score_config.rb @@ -0,0 +1,68 @@ +# frozen_string_literal: true + +# Per-chapter configuration for the Signal Score pipeline. +# +# A row with chapter_id = NULL is the global default. +# Chapter-specific rows override any fields they set (deep merge). +# +# JSONB columns: +# scoring_config: model, temperature, few_shot_count, score_threshold, grant_amount, currency +# prompt_overrides: system_prompt, rubric_addendum, few_shot_project_ids +# category_config: weights, disabled, custom +# +class SignalScoreConfig < ApplicationRecord + belongs_to :chapter, optional: true + + validates :chapter_id, uniqueness: { allow_nil: true } + validate :only_one_global_default + + scope :global_default, -> { where(chapter_id: nil) } + scope :enabled, -> { where(enabled: true) } + + # Resolve config for a chapter: deep-merge chapter overrides onto global default. + def self.resolve(chapter = nil) + global = global_default.first + return {} unless global + + base = { + "scoring_config" => global.scoring_config, + "prompt_overrides" => global.prompt_overrides, + "category_config" => global.category_config, + "enabled" => global.enabled, + } + + if chapter + override = find_by(chapter: chapter) + if override + base = deep_merge(base, { + "scoring_config" => override.scoring_config, + "prompt_overrides" => override.prompt_overrides, + "category_config" => override.category_config, + "enabled" => override.enabled, + }) + end + end + + base + end + + private + + def only_one_global_default + if chapter_id.nil? && self.class.global_default.where.not(id: id).exists? + errors.add(:chapter_id, "global default already exists") + end + end + + def self.deep_merge(base, overlay) + base.merge(overlay) do |_key, old_val, new_val| + if old_val.is_a?(Hash) && new_val.is_a?(Hash) + deep_merge(old_val, new_val) + elsif new_val.nil? || (new_val.is_a?(Hash) && new_val.empty?) + old_val + else + new_val + end + end + end +end diff --git a/db/migrate/20260222_create_signal_score_configs.rb b/db/migrate/20260222_create_signal_score_configs.rb new file mode 100644 index 00000000..24d58562 --- /dev/null +++ b/db/migrate/20260222_create_signal_score_configs.rb @@ -0,0 +1,19 @@ +# frozen_string_literal: true + +class CreateSignalScoreConfigs < ActiveRecord::Migration[7.0] + def change + create_table :signal_score_configs do |t| + t.references :chapter, null: true, foreign_key: true, index: { unique: true } + t.jsonb :scoring_config, null: false, default: {} + t.jsonb :prompt_overrides, null: false, default: {} + t.jsonb :category_config, null: false, default: {} + t.boolean :enabled, default: false, null: false + t.timestamps + end + + # Partial index for quick lookup of the global default (chapter_id IS NULL) + add_index :signal_score_configs, :enabled, + where: "chapter_id IS NULL", + name: "index_signal_score_configs_on_global_default" + end +end diff --git a/spec/models/signal_score_config_spec.rb b/spec/models/signal_score_config_spec.rb new file mode 100644 index 00000000..e6301f80 --- /dev/null +++ b/spec/models/signal_score_config_spec.rb @@ -0,0 +1,80 @@ +# frozen_string_literal: true + +require "spec_helper" + +describe SignalScoreConfig do + it { is_expected.to belong_to(:chapter).optional } + + describe "validations" do + it "allows one global default (chapter_id = nil)" do + config = described_class.create!(scoring_config: { "model" => "haiku" }) + expect(config).to be_persisted + expect(config.chapter_id).to be_nil + end + + it "prevents duplicate global defaults" do + described_class.create!(scoring_config: { "model" => "haiku" }) + duplicate = described_class.new(scoring_config: { "model" => "sonnet" }) + expect(duplicate).not_to be_valid + expect(duplicate.errors[:chapter_id]).to include("global default already exists") + end + + it "allows multiple chapter-specific configs" do + c1 = FactoryBot.create(:chapter) + c2 = FactoryBot.create(:chapter) + config1 = described_class.create!(chapter: c1, scoring_config: {}) + config2 = described_class.create!(chapter: c2, scoring_config: {}) + expect(config1).to be_persisted + expect(config2).to be_persisted + end + + it "prevents duplicate chapter configs" do + chapter = FactoryBot.create(:chapter) + described_class.create!(chapter: chapter, scoring_config: {}) + duplicate = described_class.new(chapter: chapter, scoring_config: {}) + expect(duplicate).not_to be_valid + end + end + + describe ".resolve" do + let!(:global) do + described_class.create!( + scoring_config: { "model" => "haiku", "grant_amount" => 1000 }, + prompt_overrides: { "rubric_addendum" => "Be strict." }, + category_config: { "disabled" => [] }, + enabled: true, + ) + end + + it "returns global config when no chapter specified" do + result = described_class.resolve + expect(result["scoring_config"]["model"]).to eq("haiku") + expect(result["scoring_config"]["grant_amount"]).to eq(1000) + end + + it "deep-merges chapter overrides onto global" do + chapter = FactoryBot.create(:chapter) + described_class.create!( + chapter: chapter, + scoring_config: { "model" => "sonnet", "temperature" => 0.5 }, + prompt_overrides: {}, + category_config: {}, + enabled: true, + ) + + result = described_class.resolve(chapter) + # Chapter override wins + expect(result["scoring_config"]["model"]).to eq("sonnet") + expect(result["scoring_config"]["temperature"]).to eq(0.5) + # Global default preserved where chapter doesn't override + expect(result["scoring_config"]["grant_amount"]).to eq(1000) + # Global prompt preserved (chapter has empty overrides) + expect(result["prompt_overrides"]["rubric_addendum"]).to eq("Be strict.") + end + + it "returns empty hash when no global default exists" do + global.destroy! + expect(described_class.resolve).to eq({}) + end + end +end From f595d74917edaa13265e7947dabb1fcd4bec53aa Mon Sep 17 00:00:00 2001 From: Cedric Hurst Date: Mon, 23 Feb 2026 18:28:29 -0600 Subject: [PATCH 10/25] docs: add Signal Score UI prototype screenshots Refs: #590 --- .../signal-score/01-strong-only.jpg | Bin 0 -> 99444 bytes .../signal-score/03-default-filter.jpg | Bin 0 -> 57196 bytes .../signal-score/04-detail-strong.jpg | Bin 0 -> 186247 bytes .../signal-score/05-detail-spam.jpg | Bin 0 -> 163231 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/screenshots/signal-score/01-strong-only.jpg create mode 100644 docs/screenshots/signal-score/03-default-filter.jpg create mode 100644 docs/screenshots/signal-score/04-detail-strong.jpg create mode 100644 docs/screenshots/signal-score/05-detail-spam.jpg diff --git a/docs/screenshots/signal-score/01-strong-only.jpg b/docs/screenshots/signal-score/01-strong-only.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dabd95f3348617b0d107945b344ad3d404afd65c GIT binary patch literal 99444 zcmd?QbzBu)_cwfKm5`7=fQW=3C>@7xX{0%Xba#W40*bVBcT00<1f?74R^iYkE$K5y z^t!#S>;66QdH;N8A7;;kcWoQRN!ocO_AF!=6+NA$Gxk9gVHd8NdqbalNEM3DYJ6Zr_jyMZx` zjEaJE4}^?|go20kqa8#6LINS9AOQ#H_W=}9(adN(1jX zTXM{jOK~=qs?Jrf@;zTqEpeGp@M3-wq zXf42vvIPl5LGj;D{`Knr`G%KJ!+;O9&w`@V*DL*9iRJIi=fgiwKA1j-R4+a^V|=OI z6+ztnc|!-m6^cAJ75DCDd?D!;Xo5@6O!fFS^UHDmWvK#>y0pZVeNS#~dU3>ye;mm4 zLqZhW`vSf(@U5lV7W$DEeP8w;AftmbUyIP}uVP+BwIl&lZ z*eXW0$A`5Adr$6^|5E6o4EWu|s-ZqMEe%*xHmt$(1&q{*aJR%j$Ynzkfo%h9=*dgV1?T~%V*4L@WF zUjI!T^!)RI;`R=@-4{i(lhR$g=slr{W3%)TNo89#sK^Rujby+HdfE;;N9{Lrtr~{d zI)04I9i#D8cw6QE8AmegXw^u^W=PzVaww4e_`pq8jn^5bRP*@5=I;h@?4&(ry_9*} zj-^sss@Pd$o>HlP}*f|>v*<4LI04n+@@wqQ4L8)IP?tDLR1-|2-K6ttq`nldle06z?&^rB#0OLO-m2D#0Uv7P7;rmmt# zkC;Ww3}!`hJ-G3+V|?doM1H?$f%OIzsO;{7@M4~b+Vj+p6l^XfmO3|H5!86n(`)WF zT?}r9iL8P7DJD@cGMpG8I5-NML$(wesZHB;6_9Y$!KIfDQ$>xKzj?#)6?Wothy>l} zy`RZLX-Mwbp*{Qb(MY3lnRcI?(iD>2Fa ztYE;u^nPuqR&-kh!$t-T)j2cHgJyu5^N80b5#NZ>Cq^e8Hd z$?rTjE^0Ej-|bZiWXqx-i0N!r7xOVQtCWtB+v@eytSs2nA8>1Ha;I!pt_0?dgmnBt zj`zLJi2{{92v})KDYrQbt8#1}W`qs*NE);Be|gX-J@fuuoJAR9j3ljYo>Lebl&5-h z&B8cl3Hd5-0^2r@?Wf8`^tX)<{agzDJaL!~K`Pa_6@|1XNRpJKJ%|)fT8aR-KZuoD zz8-H-l9f92MX~v#Ut?dK;%?h$O>;VrS+-fGL<9_lqGXl{Ds3i???ZJwJD>R-&F zkOHQOBo6E2^J7melZ@Y808v86HXaQMEOamYRz`?N{6l#MJp0a8b6H2lxeD(aU9|6{ zYTR4OS`}ZfhozdaVQBS6jaoc)p5dh6e(XF~m`eYMUcRS%o%bo9i_=M;-(Tc^lKNuS z_bIy&+q3@dJlWV0EZj|DI;GzQgG)eU=#`w)auct*vlNY)yW_hxpyHoG0gyquIpN4Y z4SwU5{bD!V?9nKWAcQ8mqKU0j4CNtK0vqtgzbdpYkFpBruH8A}^{(pc8gDS_pWJwr z;OWpad|3FrR6u*^{!#XT^$C6u2T=PD?FE!T)I5}WT;}nUF6a=j{DJ3lCi(e6+Ab@V zh-#Om*1Am_kIjJ-CJZb6c$yLxiG0Iw6EhXx0ZkX`&g!kvk4?w0|41K#8Y(@?(1xuQ z*=%+HJ~YU4o;&C z-Fc$Hd-zszDV4pNjYP(8DnO2#a+@YmM+$11H7^llcgRJl;8WlsclIEK#jfhZvh^W% znrN9RAov+Q@Tv_{5AOV^<;+bw4_!O`=&oZ33QuL_-`PU5KWJ)OSn9H%5_WIS9xwXf zSdTAuKc+vaDcTV2^_X5jXoa$4A`xScAwIhr>@U@h;7HV-|BCbI$$a5^OIszTG-GA& zs0VKMJ;JU!B*V*8oDbX%Yj0DGZMLphx~(|qg$OSyukSm0yzj)otkBRI_(OvLw172Y zx%AxPv-x;-7RS43vaoVQ3&3%!q@eox>gO4m;N8LKZiCUF#(HPGC~0TT8?AfyU%$O4 z9sFmerl>RXMAAUECsE?!@$y5s` zmm1I9S4cdB3QE26PAW@ZOIL~Lsa4FAU7R=Cu#466<`d$CryIt13ica=kgzodh}WYJ zAgl5Ry^1-jZJuqFxPS2Cc$Q`+=qr_GOt#50FW_3s_7`rE;w3RQhzb%ndRE4cD<>LO z^p{OWRKFHymm^oslg;;pU$k!G$Gx8}dpM_zo$%&eQywW^(741|s()`)7Vr3x6kloi ziq?DHsEu&0on?s(1c6@%SYeKyeyXUzR6q;h3{NDi**1`f-1zJBMQL*97z z$w1B)Z-bdf=SCd=AfM4_)4W;1P$FeAc<}lAu+;}uV@OxK~V*cG6 zA`kfDVH0eTOjmJRcbRKQ@_;KXaJ5K)J+R2rE!}@@!M1IfeEnjd-}K z-Kw$X8SqEu5=)-n<66&=a+BWP**^=+_=5^=3Jx}eh>Tn%W3t6bI97n~R@L}t{_x2h zN?E7j2qv>UO1&~|rk^X}-{Qwg@}*JHiJskYLvGF4P~WsPb9`#GyU{H@$9YZN#l@f> zLNHt&o210OGfF(4tJR1NPLALA*2*FI(KwW+AGlAGS7QWQG6W15lTyl)F&$5em#@@MLihFUh``*b}6kNdM1zxpkwbkt7e<)t2O4J2I zZ`O56J^CUiPt9SO->op#{7o0$+VXRBbkWhFsKp`19}a1mN5ybVvKVliK&Sd8X}oiR8E#xyyJ2zW`F*>Wgtf;Sd#Nd zqaU+wIDKTcCUFYcL|IKyEV~_}aa6I7T~-ulgnqfHxGX!q=6o)W-e$T(}h6xM55jtiwIouI=(2xLiqE++;_|Vf^GJUQf#7 zA0lx40N2RhTD;jh8Idq8fKx`|c6{-uo)>SYHtjy7Es$kuba*>EIDE0rV>_G@k{viQ zD{LkVLN2!ar##P^ytA@yvz{z8Fs*nsdY3EOU{z~XZ^J0 z$}sid3Yffv(+ufIjfCs;JDH}f)WmP+ff;|00Sux5wtN=R<_3lNcpv2K(-`05x$QK= z2p#_F%f|<|75L|xarZ`!mIhq8g@NVp@6JqHP1vb0cGOtm>9I0=$s6!UcFMP(oE$)> zZY;I4*!fbWt}QWLhJK0vZhErw7B}qjiA3CgP(Q#5Aj!uJckq~k92l;@FAtRJ9Pw*SOv5Up#JXz=nAuq*DHF@ z)T{(F^6LI#Q<8_1-6Nk>^%Xjd4Vsl%OfQWO?PjRuk6x?Ps9B*$h>e9|7c>2RayB16 zGx3i@pen?H&IV$vdGYPK@be5Tp224FJpM5O;o)_WFnQD}QAtfwL>=`1WTwRoTz}L7 zQM0xWNjuE@cU2YqM8Z%uOB8q?_xNKNa{c1)VnQx#!?%!Lz(phl&<7WZ?ydWVqsw%v0U@<*Tw0BC)Q8;=|M04xbC^?zo9vJ)acTDuJ~$p(M0g^_r;U`DAB=9M&A z;!VMCRjbvTvt1uc@rtYJ-SUJhcq&zj4#T9YZk?BaFPy7q*a<_vhr*0S>PcVun%clx z{2!!19_jM!L&;VeurN>e3Fmz$)(QX2w16-YXDPn-1;cjX&;pL4^`8~~X-ZPf=qaMQ ziyL@Yj&ba`N8n47v*56Sia+N8F)NmpZ~s1j7=q#6D_6NjX1OcgS}RK%x~wY(8&V0L z_Tb}d#{Qv~0S)h^Vx=^bTWvXC)?kV|%FR?pcU;myH*f|;Uq~e;#~14gBxcb zRyPi_dz+OGSdUP8&YJu{NdE?ndGrKi=bSNGjPj|>J;~%LTNLxQKACef2Q9q!1AiTV_;y`45nXP*$N{M)-mPyw`1-#&y4UO!*r z_|Bz-@5qrWJcy?;Z>z30mGs~UXI{r<)bsgs3W)n*+KXl~oOj>3DMB5dxh1Jl@Y`?m zO?^3${gWGNzA!0at92J~y1!VwRWkW^S>lTj5fVQ= z)ecXLiHd!5DxIP3V!^hEh_!UP=OORBDfR?jZbe`(MO3e@G)Rr7^DL$7Kd)6fJLo>Y z_quJR_;Bttb=vE8@|ZU_Zg0<8BnJP`1b2Z9rVb zm^Cs?RZPDvc`;w&gwu+RRR7a9^Bc+&6EW%gZ(e5+2kq;%z zSK6Vbwu^ZT+}nuqb`wW$a9$$gkB)%_;q?4n;mv%5>NuS|M#E;Y0|Jl`tp!JJ?DFf^ z{$V zYEys3i2%j`i*b;2J|oV}S@T9+Nu>hzPK06!N}h6HxlJ0=`;})9J#Ad;af@cY4wv@n5F6&St@Od(T1uB|6WOo-w*+Wd7Iq{1?efO-RJn3$FlA-eVGX z^O&Td3y|ORAWpU9tLIfegbfJzz!g-zczAZ+%iH=|W+w`kDxeR^ND-It6aS+5GZVFE z@>mertynr7^7-avRxX)!WH`nVc0`P?%+`sn6cu+@vqPd=xIPqL_EKB`X#FPs&eQdzBuEvcN}QH&CNFDP-S*9v&9Vfx9JqOb!m z?_!!2PH*Yw=Myd#B^iGI8F7^UGduPOdNFcBy=oVRV%-K?)$rt4gHMh*&U16AMB&&c z+!*ph8JqQEscwvBPlo(Q&7ZpH6yt=X6XdGb^!&*mAb4}&)7qj9DZMo726tY_NqaI7 zRk}X@6@?jd)P0_k;L2t{-w(dB%LX@iiN!a%Cm~zz%Oi1m(D@}@yWO!WlU#nki2yk@ z4|w}I=20n58Om^)rC{zTr6pyCM}982`L<+yU$f{CU@H2J#%?puF36AoTJGQG$})A~ zNmXH^vWB8M-9`0dmty!KCUse~6@OY!G3?`Ku7hj>qdV{xvJ>+017jN-r+xjZOp%EV z52gsUe_Mwm-PG&>vlfx|*_{or#TgjP=*=<2o-PBJjdl;_2pL`h9l%V5`jK@1(?F-( zrhu&7IppnpuuwNTyb)G9nfmUC(D5)r=0Kg|!lO^|2@ZPjHplm~uI#F=9g5~%`cluH z(-}pDFJE@mhGzN3r~eA%B8CT*9=WKF|K*JAka=1krIG#4<{=tpP)Ym^!w&;h&y|zQ z)$|7CdAE$mE9YXZc8qgfZ*7OmjhmQcAS(Yl03`&mndWt?w1QT!X16F8QuN9^n#svq zpHeYR+bbr8mkQhf_nj0nL?{ZEZs}RfG<}+>sVtLP6}ajCn+A}hskgQT3MOpxsHFuK zwuGryFkkyn|2#X}{2l1(MzT_>D`dZcOn=dKP4hM0Y)UVgu*QePEpimyiWfnxlh)5N%Q+|CkdrXzN9zJt@JVZI_if>XKNtnf^U~fq z!zs!pHx+5i=F%dB%9M&Ke``umtod*&oyz<5^9cPdnq^h*=g)V$yvLsB2cO{WZ3uoM zSV`F}c5fT>5)9lNbC((N)ri?m#r69SX=H)}_V_$UHkTBi+)bl@qQ_fJCwY%<+hy^v zeEYId{|FO^kFLENqB+PnYg7w8r5xEyxl9}#MV#7rBFVpqUI85;~ zD_Mo;tcg)R8$o|Yp1Sq$3!XZNhP|UF_ag;;;RE-ok*0a6LXRHGKzf0W>pii5sy}KT z0z{aPKSojSo8DX<3cB!h$NudWIjnaU%oe?Hn3$%grR%_a-I?4!%J3QvwROR6fRzwi zZO3S&B#*Dzz8#wz=USiMj{ZmQ04;zaWF32PDFzD@w3rRleq}_kL+KNtz*D{xA*7KD zRD8(l0OmnvAIZ{e!yoh$j*3DB~R5 zdl@mmsjK{F>ke^?5UNG$u;{w93U{k&O`PpQac$uCpwe|TNd`eUyk?Tm-zRivV?g=SDo74qDe^&I=y*^(*yqbBAK}g% zY+A@$&>D%LvPWzk00#>2MFJZx2niKPC@5%1AQa%+g`XcV;GyCZ+@WT@$EJjaD@=Ho z=Dx^dc2Q;YXB>bGsWyB zifgoH041SX54mG3j(M+*I`Gqyp$a*}%iG`kjw?JZ9vhq;DNL|gXb*iKC3tC-=l6V+ zkdy4apJl<_1URP-k+%&eiHR|G*2j6Co}lo6K~AWP|A_&Kc$Y zXGUrD4(q9XiDahMiXrykDd=du!{}Un6oZ*{LkxT6Gg-k$8>CxpVX|BbR@?1FN%wd$ zT_W-?wf1-`21kvyd`8-Pv~uU%J$3j!GuvPGE{URiX6aNT@n2Ql%^KAz@x1_?0kui+)eR7YWtC2 ziKaSXpn-PzJEmJ7%S$XVm9$@s5oM&(kdD@Vg?=mfu71JfL)dc5x}t9QVz2vOem*|XFmN>g*E|h!Iz_*S`=5C@q{9p;d!ITX|rZBZ9gr>GPEsetJ!88=fqHg ztJy(+b?6nka3RGZSXSAa3WsIboXY7qc}8ecCYDh(1c|E}ErS`!98*{u84L9CbX2x_ zSc8Sy>g{;1p^vnck>heTem!%;IaT$-*hCnYbA`F(@JR8vtgLz*Gq%Dr?E4%jMTZsU z7El9TKjacSb|)MCwx`46H61z3%*b&;$JG%P=d#=K-nXD34z^53+H*ioJS#2lnhXtb zvCXD^fk#w*muV^Dv$VG82vKBpU=B021?GP#z&d7b2SgHWVLGDfk{p!YF%Eb-Nf-(1 zn70*%wb^3ma0yX)q!klLI0x)8Pfct>lx6PY&}{jFKaj#INcOtI92OOW!wl+r@ z${?0_>0w=#c-f1J)2^*uC)I(}M3wgx7soFoL%XCO-BqNcWPN@yPf%_Ic?|EKrXj`M z#4=+Z5k6&m7FE^9!B;h3GfvF04Vp{&z{O-KzEu91|MmNTOU0vU@EE@#IRpM#xlS%zFpJ|_aPq{?DX+v3FAN~LtNb2X0pW1%& zrE(P<_98HjsJ2&ho5qzX25qlgczDi%t zDl)lPAe0}uvb+&IJWuJHs@iwjpg%BDIC-F?-yd{xuA*7%E))SHn+YRHP#-gDnL)I! zV5K87V>x30wGr{Jh1!VHWh3K`m-vMen+v0r1Xc)7v_kK_ncB9&gjFrycq#n@l-)!% zBxD^FzwMt}BZF94nf~U6vxdW;PFcSBk`7v-)$vfl{PpWDQ+F&~ud3uf=W8yEENk6a zz6_)G72u@U#xClS@*Ia_DmPdiJ?{GfYWdpu;ljf3HntAQhl(@zF}zMxiSvl*1?cyf zLSVW9u_%0+vx{*sG`+BrFJ?#U@M4P0!U2%MF7#cyA0TQSvr>+b&~sR46qW}PtSjot zO`jN6xW#6~J)V7Dhh-ftg1b)On?D)vnoZEPNQ-PBK37B#Gx<0T?s5ba67OU5S1fXT zF4T!gs2N|r8tvlBnY z8Wzj-g!RP}e|OBXxVxXJQ=q}ZDC&N+E=G4RT$S1}Q>QMfJ2)?bg-NGQxhL?whw^w- zJn?x?SPqLSgR!`c#6w5Dcwkmq$UcXhq*pZ$D0Ca?9Y=G>dsx85Pb{Qp!^Q}5BZQ-{ z3c|F~a7n`DgzuQXNKoH_NanWOSZ6Z_ufVVpq|s(Sd4gAma9J>Y9&6ve$ILh8BrMMz zg$x%?iS*@XeVM&8V65;j?E{zCZ2g^;c-Av3R} zv618fHLvag@8j0ek)^<>x;IxfO`!u|1#rKoe*mZ-rA z8U2|ZmFuUCFMO!~Hq4&J^r$wJr@a(Lzs>p`NVN^dENarxvwF(l0WbzyHl721HNoX167mdG1+Z`g!U@U3l zXz&B%_SJ$Z8sB+X#V(q{FZ9!PMO!o>y)22-jND#z9YGXI)9y!pM$wm*x_C}U zqe_DOuxfF~_El##BWBdZsY!kUuxXi?63G4c4CasM)YF1ri0DK}Gr-AqeHz55Kag(9 zEE8;p+lZqakFfjzxuBeLgb!_Ho&%C4bc~jlc-FEN=)vKieoO@{dP&XMdb4{-@Mb@4 ze94t+|NGu0@#-D%Ld`7DV~)IBQg z?ub(Fn->dj)^9Fu+eyeXz$HIJ`YGMAbY4fs(Y6p};Ks2`9D4deKQVtVytxS7Q_H47 z%5K4*52a?}v^WQp&(8%v*fnn-a{9hrqq`tD6aHy}7~EZWCEE&A5Jnz>4shTxWHj(95Z zI7i?uXIgb&JcWO(XXPA3Tln1B9lKXfgw^Avq;Pr@=MrJKRN$Rs-=O!gMsT0wSchBD zc6pa3dx;zonxX}BKA z`jTHPbco7n5Ct|yY%mB>l)CIJewWlt`dC}xJFteL4ew!{)2ZF_w?S|J22Mp4cQpz< zPW`3lL=Z+Ex_oWw3DFQ%-|{c}Z#gpl^Tw>nOvW`LpsGNu|HmHIdpyGnCfacEq?J0& z^Yp4F*l&gXOK<;~rSSe%2*Q3DGXGap^FQMq#1opm_D{#P*@CEhgw2G^Q)id2wsxs)MH;KC z1H^>yCprX;ht+Z`g-g>C4Ny~Hqb96&#EfzT<}jL!EOg*FDQ2|-nCeb=5Zy*pqpi7< ziiIZPdqYbd_oLLgg4FTWhkR%9#X0h<=T8-5=x~ zwEE`AZ92?q_O;>8<9(xWc{kRHvWpdZPh6?L~x$lAL3=KIgQnp z#2FII!PY_Zy`F|r=h@an|96sGI;on=QAY5(Zek**i14zR}mxqJnlw(*BMD7O&06;^4=1V^9Sjft7 zRou5LpR)txDRxl+by{65)>WY{fR$@U!>=H|OHc8fo-U?44PS<&D_ zx7u0F8D&0p8)nzk9}=fawALM(sef0T3Yq=J3&0(l5?JjI(7^jBGbO%^c7S?GKpG5CLpt2TxOi)?tk?B2AngXg*$cOLXxcD2JVlKqY*if76B+3=h8Td;xNH1_%0FkZrr z%jWehe=c$avf+0@5Fzn4F6Em(jI5!!+R`ndI=wX&Wi4GpyI(^qN-6@YVth-_!+FER z0@G0Oz)-C#%35}2CYFttY*Xmqnh9`$c;Kt(+o#=rAdP!uW6ALVj1g<{k!_;#2Tb_| z)Favn7guCa2fKjTuj(&~0otvH}-h5;l<(n0sCPbXja< zS(NC|^N{B4@GLl?Q755ryf6F(soX=Scsj1;0UA1bTu^Vw<+6Apzaqz{SZwWOF{@|_ z&E>XndUqjYK%eD@l{x7)V+#y?e$zYe$Hf*T&V?IKG0%MAd*F#4uXoJHF0#fHbtCH& z3ncD}HzV!BD&Mx%<&J64j8ZarMrhsFj)ErB^#TrxKwv!Ekt>CXBXp(?vADN7l8pC|7AxnE;h2S2K8J}yJ%VCyUU!8 zUYIUv0c<3Eaw!61;nFCj!Uac;{CNr^lLS5J1#mxMg~XOlMcTqq^e4s&1163lSy*45 zlA^vURZ-a|>wQp<<$%QJ#tJ7^q{<;0oN;l4SY8i2pV=!O=2Nsx{?D86s8Z_2ksDLW z-7b-+qncyubCYo;rv!QK4wyb7HRFxcR&PEh%Q%lBe@kX+CT?c@9EJ4?UzA;j=rHCM z!N7Qfg`WYkTdK4?^;qpPbe}TrFa!0}1nooPNR-9f<{?o2&v8}1;OirTTX`~5_ax%B zJe><2u@%P|hepjaPetpKH~Fw%&-iv5+mphQHq)%(Ic{@p`-Dl#OC#_Z`aF*j@5WG6jSmAnKY^k;D-62Av_Mu&up$lJY!3puRDk9A~`c1 zsAnH4FG+SGV@`cCbMPC%?|g1)GjiL4=;e%UEvZ4Vig^s>q&raNp4Ns8VZ?DmH_cRL;I$=%D=OHEmw zf=5HOhie=ln06$uIB=M{pgcM2qWn^t3M8w8gY1KG+e<1+FIa0tua~e;h}{@P$V?Nf z0^ysJb#41rOudIbc@yNG@{8e9JS7GU4j|8^HrD_=&Y4$agq?v{nt`SK!cUh(lQGGx z9Trh>S+gigIUWp)FPTJ2wiP&Ju4B0;iQsevoK8nb-;9(X9b4dF>YDyJZR1r`##`+* zhETcjLhBA;=7hL@pRAhfZ5yd!DN2IXJ>4%CnEwY1@tqie*{5x(qFN2ms*;{Dg~*NZ zQw78jLeKwO{0Rt3UH6mX+mc4qx`L~)Q_(&l{19gBDcTgG-;eTUu4i*^{>#NpqJkpE zH(CGZQ<=Y@C?66M03gIUsB;${6eR_{eW;?wsiF?}^|`gO(y9w_e@0I5uq|uKWcWk? ztFAsijxUI`u=1|SBDi;C@8}U!lk^BPP!KEri*#3lqqaym3H#Dgz_V`GJMvz4yXR`e zC>`SHWiE7HJ}i}@;_aW+W{178dr-O9p7ZMAa^g&P<;d4B@3MJKM`A5GC}2vpjc4moO|Zm)~rCPK>U#;ezmT;0we{4I`I6NlD2j=3;?L( znZ>fcwATt@WuPE(Vn{)x%G`65lbK-M@?m<;@ql~@>CJ(-xnf#&-ya}T+uLqHtl>Mc zhvngMGt)=|B65^FvhECAM2=`6F8>2xqc48i&SB2Ms?K0*c7+($Y|IEME1PUBuu@&7 zgXm%aYr)jg18N-X8%D|%ojSt6&3LLGpb|1+s>ACQ2jOCXJ5lt#PGw$M3WD_|;)I!d zi(<3Tmf;Wy{o?vmlXGKPyf*8oI`}IQZqhwr`JV7#a1CLv`G|_+)MjSFJX6d(Qcr#8 zHiWsv!E(7KSf_@5nX`t#(cg0U{6W3stX+>42i*!+bmi0#&4Y0H9-JJN+DLO1wC=WW13NAs*sJsO1O ziKv@esaSNrJ2rJyJa48Hf4GwfyxH;A^9-WQx4LRQ0?gamkumFc=3ZXa(rb;3Mu~*H zRas%a&+hG$uc;gIMGPUzcu5{2(APj@ja2C>*G9WW+TOq&LxGTg^6lS z?1*eO2Qjp0mkV*?rD!=KKl!|FLvC*h+}Z@saZJe{Z6a02e9KaqdyjUy=+ zzUgXr;zXUZP+x#g+f%w2wLFH<8bIL0RoY|JLt9HD-W$VsgGe`ihMvLQsM6)kzYhe} zjn3UvmuY$*4O~omq%v#qfm>kj?l}gQXj$p0MJDKIbNYU|UPw;&tOEn__i- zL_xG|)giCVZCwRowhG9c(@fcn_k{AUei_=KuDM7aSu}osI$lgS{MWWuOu7bx?UcGK z4+Mf8IL>MvmRNM^;sLikJV}G?KAYD1dsQyc6)6L(Afl#l9p`Wr^w^$=k@`p$)n}!~ zs^O}lFP4Fa3G>^etjRic!MS}QIdcgqUxufbAXb{sT@kt?U!F1_wsep0u;-znKS6oS zbdqkaqt?~FA#}JYC{7lfMCO5~$>iAJ^;#L^ucem8h&WN~|~LFctJtS90l zd#y5N6bbZGqYV4w8*ku`BXLu6XB6)Vw%W=*aHPRTO)0pb8}(z7RYoeg`y2%r+r$rW znpm}hL19C<;74|{*R_#XaR*04B`1L`v`0+%vD8)^T(HCifYac3&%0iVm!W5`Gr+FAH^$owQt*e<>TVCe#YE%Z=ibO zYlq#l?qIuiw9JRPC2I}PPt;NPpM!5^b0kOMVfsKeUHM?$A-T=?ym&|!RgWtMkadM2X}#SF{#3AEa`7wf;CtN<#`&Ksi(pnt+YRkUia?62!pS^!rT*X^whb+ zY9vt*l2ls}O%*{itMghR)l|pyEinz{2WY~K3$uF}YRMW$t@;ilLF=j{1`RmG$@Jxz z`U)qf-4eARxAXwW%YVL;OevaTAHAfYm$g$V>}BVel_h5_i73OxW$I5UP$i0*8JUI2 zO0O%a5~7JHiGRRza{77>bIx#(wL^-l-=Khf47ASwj1J0(la0jI?u zYaGWw(@K0}e%34gBewlttO&xujFv_qFq#$@;D!qUZa80RPA#=X_qs*;a5bD6U**la z(iRF}PNJ;-%g)08-Up|)063#2b!ZP_o3C9+rH0rfxp3Q@Rj*^J-j$ZK4N~6-U88gk zaOTh=!=8vtW`X258z%V~fZmvl{1wjt3^!-dOv&qY^jH{F4d#*)^$q8Q^GU!uZI8!S zW8@A>)XSSxfe#bDJ3wAW-GJDBNVi$9i{7iEaZVt;^M&dqdpb2e2E)z+pLG6+?pt#F z@s`R4y*4ztE#<5)YKQ-?f**jhoRDh=|mVbZ(PI4Z;#*v&ME_fhzbhu>}Pt3wJ zX8#@{S3zF(h2A4VgjnAeu~G0p4Cc>Ad}|jt`mdvx@I4-%X%h7)zv8Uk?E|a~;L$2t z$wr}E@X3q_4bWWV)zy{Bm(YC33mVC@P#u@oWkiA1j?5g6;Kf#2MjP2fHCD~DsRC=4 zZ3wGFO}A~_OR_lCKS5>9^Syj99<@K2!A!wP@YMfU%BbJo@(QLDn;9?zAm?Eq3So^% zdO~QxybTTvpnRdY*17@l#B?9EDREy1)iI~NhGIx#J{whjGc{bdO!6)kM(^AyEzoaZ zw+MLAfY}`yLxHoOi~b)QN(tis5aBmgUfQe43{b# zvUOb1fD1{)GfSRiiph&>JE7Rm+IyU)o}B~k4B{x&9M(hk&F$!S_p<)&E|2tg#Z0H^ zAb(Cus!b!h$Y49gSI$?Yo60xg%^Iuf^9ft8ChU%jN>iGMIW@y^alBt1x?797zG9Vw z;v>;=kCdf`b1t}g#CktYaGF2-E*^iI6^SrJE z`eRlH!C$Zv1?YunMr!Gh;5)`y7bUb9a>NM0l( z0q_ao(4<5z<%ajvY&2C_%$2tCXXd5$9I7bDpJ<8mqQvG-teU)$UqQQUWI7i=UW)d4 zyH#Og*_V4+CZa#P&U#9_kljsIy`UR-8R9t^$EOh&L6@jMTi#MFf6uY8xKDp}n_WGs z@LJ!lz%5;DmOW!l!X6CtFe6#?DcDM>qHAOKRFP z;-L=LV2h6w*7TB6l+_qF9cyN8rGfv&V$D8LXc)Ei!1Tj6rZ0%b)+9JpYUtN*nAR*T zh)$=lhLL+i4X2xWqZXa(O$9-~E(N_*8-~9m!xmMoOipHgurV5p!%MdwB{;nu$ zCw9*IFfrZ<7a?}B!%}qP0)5|R8Qul0_q8OhK;T+aj$oeS{u#SKoX-5JM{2oQKYi&61`z9Z_i)t}{u#*WA zpAog*{{hOgAg7tQC^agM{5Bcg!p6%6t672^;Z7~AasxYgh?NtrDv&Q9IV&=)uIwt!g_+l&y)Ui3-%NXx9`gE0^jCq= zS!ax)0v+4#npZV)(KBpt4oo)qA%T9R_U7&0(i1lIrra{dXfM!D)er3FiCeS1aC$~m zj~iqu-`C|NBF2bK+f()NK>h;Q#6mDMkDkBDFF4V}jSjPFlbABdAZj6P4p$Xx?F|Me z%t(td(wLjHnE-ob_6|M4?>+1fgXElLY{eDsB1IDi_6D%1V#X8Z8@JD(F1I7;BnVqB zi(NI+HrO;305Pbjp0Lupp#^;gkgBH`4+qG~^B3Fp~KkXe(AG z0~Zyk8Nv!Tm!iX_OXXl*OL;9U>F#F%{f3V`-xZ;vl*Ts63r=V`T6n3Di&f(N%fz1o z5qnGL86EA~IhQ=RrTxu%y1>MDtd8oZw3#(GNjN++VBR#~_Xd=H-V@6L&`Xnf& z4mKIHWgRG?qj4wFcwnYE`)qWcs@r0#YIxDg`pySs(XU<-S zvOsnDYG|+B<+9^!HL`+n$s$hWqA*p<|EmIM$lomvnBE>#Tb$4lGM$I)k4Vq?+ze{a zN;xoZ=Jt0KYiG;9rH}Wc4QLS^8yt(4AV8V7-nNybByo`%8K<&R^~ursuWE;jlL+UnNKQ+iV@N-b<3&aJu{LwMoVAxk zOD@G7{liam>&`rtQb~HLhXaaU(N~FOE<)>Vj%G-Q3;s^;lW8x7&NKU@k90@KTylk4(PQ|SNw>&nQ*f_a+b~?kk!n|DP6b9? z<{0%gxDwS`@=ISZe4S~=YOej<3Yq&n=v3GtOc&wg5cJC*_l%9*(98Y5`kgoY1OYJ> zq!3A74oURjG0#KKAD~}>avs4;J`=e~*ANrNv?7_E9Dz5{y@d~pB0ZQRi+pqL-p|cb zdzx`Si%`bTCrR5x+c=+@oiQ$@y8opyPy*5qkaKT!Z_<5KW;P(yh!Veee~&!H4sgen z?`YwPM4{y|=4R1|0N!{Ntg`)?nR#nRWvl0u;gsRD;k22oN%}DYjbJ^RMSd|do?8rj zk5a;{Ed{?;jw#bHe6ndjm!N^nO}QEM#Pxz2+vr(lu4?0Z(>A@81l$E1rWHFE+z1uI ztn2#IFE5>x&7GY6H#}9Oxc19A8ivSd%Ln+BIt`b)X7K#ql`<{@zsxYnE>a}n+illY z0m4Nmy#k5HhK0={3;lL=G}yC{+=;0k5{u>7Ha1AdA0`$~L7VybOB}jr(X0 zuBomA0_GF=?3(oznQ>i2Fvsc5s+d*_C(X=wmz;oW|Jz40o;UmLHmze&$%9ddGRj-H z8I7nlygAb`bq3z}6h8H!@`Rk2da-0$?znDH#1fvY^CIAQGKNj@s_R~|x%}{ZVOmGs zoP5RHc9thq&tGVt&5zyGDUG{iQ8W=>JVyTIR*lGkzo1qDHspyl^Qk(#o%d$`;l^D2 zxS_?`bmG_4UAfvkNi7sD(I@iJjqESuwi=#DTKoXD-EZYeet6ZmkZLz@wIeg!PM2z@ z@XGhw^=LX$-+p*cGi>65PeiUK@GLTp=1INg4y^eGhg+uHTWaGRYa%D5)SZQ7xZVn|);{35?5yOD;RD^rN@ zLI>S&{GCnDsPBg(ZjZa9+(=++EtD^ln?qS(i>XK$MlY6|BXW3ozk8$7b&SfYKMvbR zzEEW|Fq7@Q9*`#w$xBku)9LYH)|C4q5TSx$@@8woS?wlZ5;&ON)!Y^`t&5BE~^ zMr(u3yWXfT(3^{eAM>Du-6E-gwfjeq3!?^# z#4;DL0Gr!DaPHp?YryO9cQDW~FFdqgyc^i@Du>!g7&8KQ40tz;So&+nI-p??U?C&8 zJ-UKex_vO7^3DWj?JomW^nVkC%__*pd5=J|eGE>11W!g5qU>a{yylBFmJyzYv-bZG z3PyaUs33sQAO*Xx2%XL>22*&)bR!Aj&ZWLGcKQSFXvq~)Q|HCgX`sxA+ zn5XOg>%aTf@xYcYvDg5@+4K#F@N=s#rUPe2(JY2gv0#Ley)T4Kt*{Q3&rP{uY71s; z6Q`r@c8B#lU1eXsDJyskUyI|Pte9B6luXXX;mwYn`P$jr6~rCXmu6ywl@cV2S{ksz zx+lu!klO8BVQW^6KRkEhF?l4kB<%epZ`Ajx6LLF2ja=9`Zw8SR^%<8~vxuC<0*i{rHgZfA&ACZ7j4c+|DUn5boyFilHr{UQ!am$m~a-HZK4iim(-5 z&NuS(dlb}IaxZ%Gq&!p$Y-b9U=hWCn`3h}RyMuju6Vdx5RJ(V6fRaqb9#gBX)tD@VUje(ovZFIIX3~;=*GV0hYG5(63nPSFUV%g3+?m>U!0~;(JN2({nC2Y*Tp|f=k9P1KI>A zlsA8XX1~q<++uJ!-rSZgYi2zEPr&!rltp(*{oF_d;uw&5!9FoHgC!FFNZ6V4kbEXx}xfR!z? zS5N-{?Y)@xN6n1kt1+(lU);TCKoi^AHjH8c>7eu;ih`8T1qJCH1Ozmc2musAF;t}l zWzzx)5Rfh+9mJ3g(lJD(OOW21Q~@bUhXB5#?sJ|~-gBP!`}<8+*36nDlVr`TyIl8m zuW23@&Idg^Js-a_%A3;LQB=!oo#Cm2(*xKBJEO+0X#4K;vHbRx`r7;8iR1#J@>IwT z>H?n(miw8dL0{aTO?Iq#wQ~*4jTyM(l_l!v12D_sh@qp&yoANd+Uon`j2RlPx^nrE zbrtiWYYmdIOr2N!lL-=G;S~YF>1Pu~(w;3(4gHB*HcLN=c)L9cea-OZ_ZNQZp!b7! zn6W+ZB$9p$PVQnG0S8YlNy7DF*H_nTvv9O&+&AgE+7#l9=#)*xd1M~s@BR(AU2mC4 zx`n(vbkkq_3FOar0^pIr%)&oc!@tZZjhR zMAM|wT{NyZ0i;!laFj(D2O}>wLxixZ@||&(HUU86{f+pQ{!ozR-YwIDsoSP`lp^^I zWN&sUwnu)Lf9E!Sotd@Dqar0zf==gh$60{z+X8SdV?BU}rdf;{jiyy3u6Q*Wh;5># zrhi(!bDovZOAzG;BmEln#{-fl17}aTes|e7tvwTK8lK5AITO$D2_?D1MT`o(WMtx+WA{r9r->VLNXzVn|pB!rFtD(j^X0IU567RfIuW`8Ln6n+7qQMCb{ z#-PHtfC0!PM^Nm=MHD}*S_ZOO!oGK`r@~KtH%V29V#r@57xm=+gz}zj1{mU#^HIiG z^-AciP>Gz4!?+nZ%}L%-#yw99nR$AcH)tV6A-G=_0ty&#T3Y!OYBIdT;s9G;5`>Pb z-Mkv7S-q>-aN)kiNB@&to8x4TzblpIzzcuJG|T?BrTzErwmj%zO=!4nc}ZLO>u2vH zt$f(znxF^M@a{$D!*lq*&`pyGqW(11I{pjv6ES0W3%{uOm}g__AayH`FiE!#FrXLu zBG>kgWAZ1b_W(jPesMWe5q{7+*+@(?KM7GFW`)Y1p&d$Z_(AbgYyg2xABY|Nfkbuk z%g{`9g$%VTKUInx(VdR20vJby64esbxWbpM|H$sy=zs0C?0wRjd>rGZaxA)G0ViMH zuqm~=NgbE=2O?c<_b=reThsFMDGmQh!j0{x*`{2)M^NENFiAeo04f zTkN}{smL8>@edBn7p@^FA%-e<)$5K;ZB9N-Q~$V(AZO*~jB$s<`S7C~gBZ8Q?_h7}N4 z7sKyI{*iP)dgavURU6D>ADfQ&UYAEr>c%fb>wr%^F?qpS*9C;9{3EqgnKG2&N#25w z@97FME%a+NX_4N&yY2lR^vBI?i!=r?sjX!8`roE$iAa!P*fcW1>No|I@Od^)llWfE zL{s3C1Z6^?(ev6$N%b|ayT(~9-Ub{}RULk!CZDynB`ehNlQ%=&(S0jsX!s=sO9LeW zSqpLP+fgFMG@Ydu7A_GjgC#YFHjF-|e}Q=~NV*2cMzQoVUlieV;}5jMIX|b<)9?-} z#)r?iew!ieuA!M-bx4moB&JXbcj7VoVbdtjwm$doj7%>?!Ym45#!PaCh$pAf-_H{1 z&JvheTAUsOisL_hWXC`~anr82fw9kv(~UBo;Wr6m;4X)_n~)%?V6cXH96f4- zkSK1+J7XtN+>1#CqDesJ1;(T8b~t0K236*RHa=&7Ez^36#zpuIGmtm{un}>!<8v-T zFb5m6h@2-Q^NV?62FHv?rL&!+Y|K;V(>CDbPT7B>}ig{KiE0!Z40ox8ozyxBW z-wmH?LOq<*WK|gZ^-4jrONOn&m?!8gwka-^Sq^+>DwSD!_zakx^II)8qRpiTqe7Qu zO)uOMZy2WJZqkBj?P)=~+3F3`E9Y-`0j$6OHy$gXxl2X`;vQ;VdB%37G^OQYt}!&_ zXYcg7ZA)nYC}pw!533I&x{hIITPvadA@9r<9e-Cr#9B=ViD@zqymw(HYeA>~Xq` zvO-n*=+(9w?~1v}D?cc1W#u><>^5BLsH^i55=c)N1v!3b5B~m^xc=*s^P1922l*2B zz!*#pF4!GgPzL90jjUPSm0y$a0l9n7d2L*E^|8(0eo{noQN;vyh3~ogiMq57vo>U1 za4~cy@UOsr`kyC8m?5UN`f@tPZ1y0WJ1(L6mS-dr;3$F2uj`=Ery{&GGIKt({8zm8 zCx&YRz*;}G(@4LGj7F8l1^0wMZ%t#oq&aQA;}#|Mhqlh*hHmK!q=b_sstBCGD_}33 z@Ku}MWFouG>vM5rWt;C~llSPvAEPS%#O(tF*QF2BaY?qkR{<^Z(?Q$Z_?CL9WM$fL zz$zEl&K8*9b0i*EvvOg2tOjrA=Vf(LHfb;w1(2050QlW6a5-O$FW}c_g-vRtpoT+4 zY^dOgmi%;R0?>i>J%;Wdd)BVJY4y7(;;fV>%k?GX87uj$s8K6L9TRRS7Qky(df*sHvTypD^9E#*`t$9cB=wFiu`+o`Q;tqa<+eEsjVGeb^ zs-p0EmCC`@`Q(q{i5d$RWg0e~xOW<`lK@1~5j`JDEZlB;%sXa0rksBvHGzC0Jd4U0FQyP!dXu)S3c8Pa3p z=FFj?u^j+M9U?~LCLX2`@LrePtGaEist_5^Yq+$vn`NYEtoQT+dIoS4`+2*ZwQozciOtR(%IhGUe;ulzA)1q zdG%&kEq3&>W9y_m`L_vRx`?tXh?4n4T)(ZZ+jUyw&g!J`0K>qkE9+eh+wg8P6~W_B z^l#z*u!8}aF!5q7kKZn3e*D7gsv-&3k5xrNRUNpFv(+}KW3RJMSCApz5k;G!JFgoo zQ!3~CndbXX_otLfPFg1WzmSnvs>%}~!@O;*izJ_Fr#qKXH-Rilb*xLQ?)2~d_Wf?8 zb3V6ub3>#}=@A0#l%O6g%Vl$yy8IIr;cebRxyis%;n1F(uF__Ep_i_gz&TSB!t1z{ zfx`>Eif}Jsk9pkdr(?c8i4U|Bvbb9gpTvdkV2uXf$cI&XU%gb5nCH|LP`dj2-yro} zpHn_Rl=GoLUsF`;lgd1DUb&tFDg}}keqB+CI*H*M1MdPBd01q(!_eK^xG((%Q>g=1 zgqO%|i%{`sJc=SL}o9lVfu`UkPW z1c=q5fp0p+4qjwvQE#h3HHE2E@Oh0)35WM-_$IYS>VgC*xh|=M&FTC#4$&P~%;w6@ zZ|+m>pu?}!+5fF#iN^o*GuyuWM)$KZCCz2mmJvj9iE`5bgoV5+`8Q+uA26}} znO*>%(*S??!d#srmqlyh^BgUWOH;PFb!bHr*9z3LeKb^v^MH(1RRIX);7@Te#wDMQsrcoD=s)2)Hd= zEF#;(ea%ZJW4EC#UInebs;bET^!$4tn=k(Iz-*g0!u!6} z#h7YN>o%fVp(ofK!S?4nfK}_k$W5g}tNQ4B_|P(iXmi`aoK7{zmsP~5>z_K^bP*W- zFv_Rr<2mR4l)MgWVrN%QR3J|9-vii^3api3RP<+fuLlgXO6@9vVzy5hfO!CJGE$sA z4cv?19Oc<_XU|XqQvm>XCSalz05hwb3Epx*U~|sMJZ02KEPv0!f79H;QTkr*%r}s1 z?srY^u!j|Wf6WR&tp>~rAiQem`rrqJ26Y*=JkAZPw$S&3qT+BzC~0oB^+4B0FqPEk ziLhS3{QY(VgJ_qO9lCy^a<t@^>4eiJJmZF4(4nZGQ_96xJ78% zb3c{75%OH^C{UJ>ZrhRV&0W!ox6ra4k;(Y zQRZFf+)V163kOoc;s3|0(D?(Q`Zu$n?P`}lLZqOfQ=`ZtHqYxeejvpLSBb>MEAS@! z>pIut#4~I*K~jfMFo#vjfyluHs7#C{u415ab!+f0$HSK3!6Iz1yr*qSijJA9sJUgH zRBCX7L|yjfji*4dKtcKWv044;RN@8wh~v0+)?X4;^N0`dZ>`xiXxQN%H^z)jFL z;RaP-<#v#KPi&}tOmzK;jo*@{Novu{g|E&y=F)zX)dP#-13|@?HBNE?_>rB~edKeZ zPjR>al?LNKS0|txvAl!3M{WAduhdf1ve*5TM-$(ovo!)9gtjOy1ctJ7yxMd!S4&%I z&kxZuEe>8CalNYXZ_ZcE-nR=A{+~xLD6Pkz}y!2&aW0# zC6pWt6_z~_d2DrPOh~rW#m4oHM``ULMvi&NwiO3Vn*8i5Fh03z8#JOU6-}&L1HV~EA6WJ z(D*2+iIuy~DSlTgIBQm|P8{RR-ujc`dT6aIdav(#`;Gptw_ILfm)D_Vc(fxEJLF?FX zM~TQHHDEeGG*j6+;k_Iq7%g}iN)XXcbV~nkl~9L_QIhb)oq}sh_1+MPYkr%cM6BZKDmN1aUs_TXE zvf%=ITu!PTW zo(NLKOtlMM_(2hRm~hk~<28^ea;*Obv?E+E(s2U?^xz;1R-#u#KMCgaB0t;z2gP;h z%PL1QW4Ppos}$35{1MMR9|E9zSZk|- z0=WG5QlSa^mu3BmaxkhrX^NC6Dsa?lapf7wMJ93Nqw}szdI-9nL#j@OL+yi~FnvyBAQP!rJj8UBXQkG z@-14*psYU4>0Y2a%-hm6k3p7}WU4LYcp+Psx8xh)`Ze~+GCL#FMH}EP0YxC%YNOU= zonF*Inv+8cF7J{USjFv_B$*xM?chDEIWsQ3cE4%GAwRb}%7sRir|_Q3`P}~Ieg9xt zRgN?$>f37D!-AE2u4#N-&~?osDVCYZskWw}6bHnbxO9k-sty~zJfhNJJ}ZqUlufDk zaxyU2!+Fkc(s|7MWxFemIw~7o{rKS>8IhH3VUt_4hFPq&aO>HnkC{%Tq>tEimd5qe zBh4>by@K$)&p7$cAOSqh!e`ilL%$Qu60!ud?lb`7KWIbkSuR?Zg)1fvBef5?5SI^+ zQCqvp1uGscrhRRY;gQy3x_Zop4O>AF=8&z_aG(L0XlF?gct9FBB_1EXOy){ByBP|92GYkNywY>`yS*_=xgY0h8d@l(*+n&XxuXD}!Ni-}PqN?~m_WpcHWJyAFw zPyN8XMa+cIROTk{4~oeF*M}d!#-`inSq9kJUzA5WrK-UMcSI`j-dep_FRh`x#i7ab zO)$zGE5^*$6Xj!p2R(ICno*e`tFf(Iu|!C6 zsJT2O_X?bZDeFWQ*f`rDRZ#FR^I`~($7YaSf=Nu-!HRVqC-LBrM`25R0vFs~_M#vt zc1zqk=hSiAl0|=Z@y=~*9yCW_Fq8q)G1d0r)9dEBBDHTXYw>opHf`NV9hDh-E7;gr zPuvfRG2M~oSNfYv>PY4rs>^grrH<4M!^U-K!#Q*o%j>$y#Z)2FbW+q=cA{w< znv*CqROu+E*G2spOjRnY8KY7<7E|+QxB=MiPQPh}FlS0PE~8N2Rg$l`-~P0?F7Vs6 zP)r_2*Y$EQhY1oxC9Wqo;h(1G&kpdhj#)AnUE2z_a}w1A(UQK{2*XaUzBXyH+`^CxANko18hCE2I_6Ot>%fY##3YtF|*E= z0N;9X;U5$R-wDq6`=J(5e|}$Xo&2`-P0Wv~Oj5Bx%&jg){^}2kO7qzTxQ4Cx8$ZRd zHE6$vtA=Iei;vJHr`6Yqt_VvHqcMvr9I^W9W6NzB=N<0JogWnZe&Wck05-_ZzZg$I zlb!Sc6Tq+|aDc%nXAb2%iiMB?edef5eG9A2EvS8oq?a4B#mp@37z5ZFpr}>7-0)&O zJ+pPG70oS?-b5W8Cl?)Otb%^Jka1FAu6w48UZyBW2vy;pIn^PrHSLEdvPwYkn-}_y z&UUIlrm@kmc07tGCW3M>jBJv-2_vno9dsBB2JH@WifsM4{66>bwS|4b*hHHwadMFS*f`$fa`WeaO!WTDoyc3q0xu8deE!3gC=d_vx& z`BED405ZNX(AvOlQkrfVWUa|rBAEeR+7Wy09hvSQ)HplUDHB z3iZN3dAyl&lDgsqlXMT(ALdSkV1-x_%jN+IXoi|RJ1Z`4IB zy?(dr1*N1^<;kYs1wWRZA=??5h&3dJ;I{`dM5^N1dQ!%x!sk|;AS{@JbkK^i8a}ve zn6(j@ct^wfLx0&b;gQG}R5r_yO-KE{2i7}EHaNfe=%QCzgVSUd;fe~|*BOAp4xFZ> z+@K@~^UzW|ia{?)xIJS4E2lVyM=oI8s#b)%Qw7x&;!SK~ze3HqT$kJvr+eZhGq(il zXCc0V1S)v*+-;#6n+uu!FrJm%;q;4#V$A)<@eTMKh5}!KP~#sI3xGU}cS|BVa%W41 zTg6O8-Jt594Gi4@Z8q{m_~sJY*9zMV7Pb9GQfs^&$FuIn<0Ye`rf_esw&iEJ!-h{l ze1<)GVY$ETW^p@z;5#J%X%hpiam9cwEu}%z6T>W6L(~xOiP`2Ss9?*w%P$WfP=e}o z!*q0Kk4Sy_6J?}+oVbNhX>82K2Q=oO0z#WO)(YOrH5l1tZ;h1EOF_egPz>*an0e>c z^+Uc+r>oVOR&_8u_6{DEe0~xR+}j8&?|T5uY1SS{2+B3r%BK8;q&ZEf`R^zhuVYdF>BrGjr~aL zH$v;fDB;}T?)u7gW9Q;J>ypN}IurtNL$v_DD8Bh!$&xR?!sY0(n-64T{$^Z0(dN-zOeS!x2)X4RR%dE9#I?Gkz*&W*@_68OL6KRK4m z?T|hD50l*8Q|qJ7v!r<{QPWXQSBbLdK zWSrN6Xj0^nR4Acr0AYGHs~^7zHV_Y^9;S89&ss%XE=xY@Y82cwjgjf#P|JL+_m+Jj zae~F>^2zHz3X%;n>uW39Mnf;f1uMHHyCL9VhQ5iZJ;%9YWd^m6{6i;Q9xHq<$b9`M zbl6ecy9;RpxRaBKa)frhnRa&uAFD$fHm}i?T3dnlOlFYCdMbI}Y)*s`e zL&Mt_w%3LC5_c}=#{4d1VD*FIl;CBjvTIer2;x5ro83MQjd zYe#@XseaRGInEC9cF)`v+2~+#(J?+0Sam{1w|7){^<-{qjdnI9^;U&y{h%3of;B@Ahi$AB`(WD4vbPvSp7?FZiFa6gW2gf8ipP5ElrRM2Ns zNWno8&F!7`b1kA{^O~WV@0!F2Ml!vCnV;B4Vg?gnF5(ACc*-***-`cvtM6q29pjkT zSSX5Pw@Y(!^!_g0xh-wma&$e>x#Evz0qggMxll6|O@z{q5lB{J zf!os7Ru0FsY@@_o>2I%svgt{jX?}?6VDPuq{lMNdXcr#)t$Uz#BOO)KJ+SXHvte<5 z3U}P@TcC43*oKdmB>$?~Vc`9k*^Ucu=h zjQHtP1laHeeqEk;RFelwyt1P9I2zF&vJWk-9%Y=B5`Mp@Q=rNDf;);7Vv-QBt4(Ch* zFhgg@pnFHbqA?4E#q@UNcabQF=!%opU4tp^OBL!Uwj;RFu*aBB&wp=AsNNU`m2wpF%p@|-R0TmW016dU%U zZU@NEt`4Vj1{B0J#3@f}@=la4>5fG7h3==V9GKA&D ziJZYSIXhz`<(K97A1iXakkatvmjTyJ#=cqKx2;*qNJnAbwyw_xGWKVw^5aa>(AYVf zw(L<-=`RCWPz%K@q+NqB4R~l>@a^F^x9`V-tw+K&Jst2}RCmpmu+vWKT4#uPPew?| z4ZGlPr8`2;^XJ~a_$Ysn7@MM}YxCv(2WR3T=4fE@m2Dlj1hS9CTGSJr9N;|{pgMSb z8FA|ww|UJ>le2|)F`}x;Rp=zrFxYdF0Bf>&oUY<&@o1+Pku5eTH=asoeU>A`>yl_o zjZ1M0`?nH+l7~N{&oAI*3#4Axju&eTe-oHp88B=Xz_2B}qEGv;z7u=f1au&3QB|w) zwoAg=Zy}$jR+l~TiL_|tGD0G?TCdzk7W%vNa**O3-Jhe;fC1kj=;i3%0TKclBBVs1 zEjfFVuO_416CFDe{gx_Mi0Ps_qXvIN*YW(ZTD$p|p3Fg(iEQ~*r=X;f7p)q$Xi|q0 zo=~b`cKN|G6U|>(7`?DSPEIp|TPKRC8PMWDFVobfPHDB4cv`Fx4w>R+ z8@^t>lfMUgwT$2kdpQ9rfw*_O@Bsm z#!-I{aAEt9KZqATDdZ^YT0zUy!OZ(%Ecq!@lIUxfc66viXs=!Kn7!Ar1WO#M+IVhU z8e=(oFG!ZAPjT_y{iZiePy3|_V?+?89b0-tL0~q+&$GCn_db}!;KP=w%B#b*7Q_yn zcc?lUa)4X#Z3XescSi;2h*a%@Cwz+*9T#$9UJ*#NA4s+~?wV1xb49H2@7_6D zAT9as*;x`q4t<@Z{D!v#L|=JNhlQ%NPO*(w%L(hDxLrE5HczamkvsZ7atl_@(ZYsF8RYljKrcoQdgyq6s$rp3T$l=-@B;{8B z%jp~`$K&%KcR3_BMpFNL-f$fNcQRb>E7pNBOl!Zbk=iPTHQCDJeX~D0j!GK7h`f>4 zybUI^?-1!zG(*=`G#6~#VS}NrvCct$U@t4!7l-^Uc)~9W;qV>XRWbr6&#_uYM$u7yq(b|8BtkwNW-}J{#oETU9*NWR!i}VF2!b z9w5|U4OQR5`EoXfpUfB4T&{;fJoWwU)C`5nl6HhDCsHu^b?f@BwL6H}L*}>!W(ad! z<~}n@9-&VZ(f7~5mxY&nZ{_kyX|Ab1WJXRS*XnP>NWx^moj9ji1HyKs=o#s)7DN?qL- zBi5<)JS@B7?@XhwKlMVyQgXs+nEpudB!6b>yJ%DC5ZO+@b*#0~{?@!RboVnp>VW5v zCGt7LLjC7}QJIH7DEe`YdshJb-jJt}cNk{hxd6iy&^>xw^8K!`P!U`8vi(V3BVRfD z&K8)QQ2G-ll0}U7*Cy}&gS+rg-L9usHUp>v@TTZ19m^%JX(FIo4A6yIr08~Ztc9RV zu8WqF43ItBj*jklBO~ad;nXWGBc&0Hj?{1(&Phm4XG4UV^Q9Bq!SNHY#mC5noe`oYPvc zgGY6~0&nYmzz^n!Kk66|D^1_n&pIy&806y}C97Bjzecuq-uZsPJ}ju0=SmPZ6od@h z9ze&{a}O?Qqf$Ncq0VU5x?!M2bQUd%HtCJn zg@>}xl9+4iA{}w$q;nJ9QTLlB3$|4`bHr2}fwJ{h+uJ-JCk* zl2VrhDdj5>Zj>^=ozkiW#D4r{jm^Mu!``~LclvYq7@oy< zjRx0%J$OZm+i)tDJ(yZtJ^PWrz*gxtXs#RsWuu>@!tnu>FkaoG*J`%W)r`mAAfo#~ zZ_T)V#o?ej)LeB^Z?(31;zRcR=+=mCW4VDA2$81}G+K>cc4957290il%etRpd`E7V zsM*iAy{ZC2K!5br`GGeAmYw)=;-2Lj0M5(CGug%RsPH z>sCSn_M(usn>KX-=ys}GhqfOX2nEzO4&sC61LS6;x<@jH+e#7*3R>z?pwXFS;?r4X z*y*f9tyB%ok;EP0Izhce;T%Cjb3+ZiphO{pKG5Fb4X@-BuCFkxomN2x@jbSmgS6qb zwNi_dj88Q7q!wPWcH?{EYwJb`&D)l>)d6*;DZ*Y;L40*tEy=k>icGVO14(!>6;g8wfohT2RnApo`oR~WgwCvpAU zZv7ej73u(&R~S75qL|N6de0)sF?6jGF7fC_dzM(!5&Ze02eXZm!}l$VBww{)wdcK) z!mP+*HS<@huDGl&7r}MnE_Zxu`ItP+bxi9W65U_sW=#~l#@zTZe~K(fhq$J6uuNP+ z4%yyuN=e4Ers#?uw^=0*WrL}O$=9Tg#*YncZ7(3g)~xLw#|7)d{0yp+4jLm>0Z(K| zji*MbfvE{@!h?jnoNXg>$o-&b{6Qge&6#%$Q_!}#9BLsnxDYey%F6>S0a7By*B-oD z{<>mfKCUkeX*$-QhnTLHHuA8Qw2jRq5*qEH_bsI8>$8xg4#{Wt<7Z^9`1UoRLgoot z|Lm|t=TgP|jL~bX^8rvf&jZ8TRl+RD34OUrd?<<>sH~MXzMEhQX^@Rv) z17Mi*q^-->(Q(_1?7KLu7DERBAp0?BX6h{oxC1piM@$ta#E4VX<@_74n(V2tY}Uc{ z4}Gc}Ydg|}^e{`Ea}Gd$e95=&m3t|rJ^L<>zC*`y>qh=~O{xZ4^6|y(ilPegj{3oiV--x)?NEw+rlAhJFjU=$}%DiRq_NFDN1e z(*k-&@|R6Gl%wteNfD77}XaEQTWTpUYyUU;dJP7Jr%2dfrt;fvPT z4-b9(6+h!XH7YLXd{%keIwK-BctN5k7|6Sg;YPi)r z+*oB2gNDJl*nf&PfaCJB@jnZ|Y*{kUda>(-y~c2t!>AAn180tOuIhEJI^%OPN4h>% z%aA#4pj*8httaD3s@6hFR6_m zOqf=@Zm=l}uj-!|{Y0Gb$XLOa+T?2X*)ZHUt>a(c>1io~fE$Ccu}~0i2@sqMriIE7 zu$V)3f*HMEIYY*QFIX*^P|r??E?hQ*vM>)3I8eJua82IV0E!tD>Uwq*^Oe-P^9|fM zxCvhQx&%Xp-#`Z%dMGpQ>Rj$O9ci6PEvF6)5aDoLhmi+Jl1El!X<6)dBO&5owREo@ z;QnwmKxpylm{IeZ_8Zz7u=3_W6NqME9R@cEoss;K(f9(AsFiGaOubeopnW#)+uqlRjfB}3JH43YV%3IMtQAeBjwB(0(7;MW~| z=5RYyo=}Jpc1HyDYQ-sf+XR(sQz}w5lIktoLb9#-=4@$km~e;^^IH;bYOxP)N8I+B zKK@9=3*apFSWA5}+=w#DlRoo8yL-G?zmpcfiyoOR-@dw3b&d>O!ROe|KYIK)x%86T zaE_>f?Ll(!ntTn`UL|>5BDDfsHXjCV>xmimX5x?53KJ+lqt2)WXk_-Gd_{ghJGb#^ za)(fXfTxrO(9oa?6KqIT?51ZWf@XP(nu(d#!|(PxTywsgqCW07J_|M~AfsXZdv{KT zcfluL`MjNmVv?3B7aTmnnQA7FjdlFOk3v8Ba{?!${!~%>U|?i`VA=tDO8F`;noxK=qRF zs1^A-4?TOC=no3BmZ9NtF0}A9_+D-S?lFjSh;{IWoVT`iO~lfRx2BLyVX@h^QPZSp zO>Q<<(c>4iErHi`U%VC9(zqnL<(&e=dAD@-Eo^Tz^62SSv47l$I$yIQ=s&DmG_buP zkr2=Fd7eyfUdC!-c#2#Zxb8nRxmg~A zctbJ?Z5Ei~TC&@ffeks>%voDCtA_?(F13C53WqOASTm4tl^f>Q;jxPJal;Ht*F%v- zA69Iy++ey=TH3;8GX2Gl_Mz!67NfE{j?)wKNvR+N`Q=y@KqORhuN&?SN`_U6877h~ z3w06~PEHTnsi~DW4y&UxjaiW4FS7OoT6*R5(q&+Psi?ap5J-a{2kZgyxL9AS7iR-Q z&`ynQyK3c$>_6*x_2(z8H*{3z0Yg%jXFrWrgymE?;M&-cM0l9N5AI2`ms-0}Qis12 z`_1)eNCKFKA7AzSJZ}xlK3C_xr2@C5%vlS?jZ z2%T)~cX68?C*0nm!K~%{{UEnsL)nk}Wuy&1oq&?>bSi`Cz)s;E*@nTp*>6lIKCSu4 zP63~hQ588U^bgjhtNu#r&h@_^^uX9lV&@<}I>;<-Kczc5@QrK{=cY{642ueq$21yl zAp7wZdMrTXuA57GiV3MNZa30x zx^Ey;rqjcys(FwjpVU_`GvuG-7Wgy;~v1rygj}n)82XGx~|_uT;{RiRl+5< zS9#Cj0~Om+*3K)X-s`JG^Aosae+4k=J{c3uHG@WjMgt28hElrDE1mtG%LfvDAy=5f zY_HeHNS$QNdLcp921!T}rOR6v?@}o(IkswBHXgW@$p@p_T=awMA1B6*B|cS3Ldp9V zKX=;^W;WF3IYKpe@DR7^BC=xBZh$I6#n z-jfWu#z87=YwvFF(#JJM`pB2coD_Nn=s+4-6hR6xB0h?m*D|ekLN%o(4Oal1m*kRv zU&h+mbw}3wn0DGP?^-r&miDb-ox|pb*~6-OY1xZANrsx|jH`N@)G|t63^`_OZL~u@ zE0=Z7mrAS2o~cW-FNIRl0BFZ6L(>w}nm80224T;#YCK2H?%ZHG@AxX-#6`5=>kyiG z5JVT0_S`pUMhz63zyLkQw1%SU-j_dmIPxfVl@)oi1Ju z|8%gn9~7Hozem$Q4voKX&2{&{y9|yzR}w0e{gh)%E`SkT9z3thl-I0=LdQR29&a(B zpAru$+^|@d_~KT5hSdzA#ty*2gF0cA4iimR6NOMY=nNs0R0Vt>V@D_(G4(=lyx9)^ z;gBmNbw$F&kyu65@O2l8A4L|n9Hu(r%eg9!4X?$#jUB65=z+cu1@bbk{>sas{CRuE zUki|y!9*bdRyT7%JjLEB|CaN z=`F9L9frciAup^2FR7zEe=DP{vmm9tkU~RFQT^N>7fmA1=W{+~FU!l)BHUcRVroO^=dcI{~;-t4`Nlj(otVA|3dCtm({4lRLF?T0$32tMiBH zjZvM^w}hVyc>0X;7A;1Wa+P15|H-}RYtj^X?Kh>*zSanD8i`PlayVUQBFc~9Zk^46 z3X3LJUgluLuzYFk#mmb}DxqXJ$baV9W;t?456~`aqqTRk|k{&M~WU0v(Df|5Ig;(=l z>e1?@6noktxi4u{9_yy1p-<0Pl``)0&9=22K0WgeB<&dYXE`PH{ZmiC^bU7!vQw_C zFkbwFVd4!nZP`Nel*o5Q)LY|OFP2A{|E+QA(yW?*#$o6e#IQ8xqO~HU!)d$P3n35+ zsz@63C&o{DF0*+wvJC)N3y{Z(2zcI~;bZb3-3O>$yRPM8Lbnrd{>g95cRV>c`K^!} z(Z-GV0Hh@K*c68)c#(A%X~oy5Gll**2d1-a`!HgQ~UTzA^oCyAcUJ@Q2^2IMes2^t#?zKhnEqeIfv1Aw15YA%U*8Q?d8ROzYd{1ycvH zh(CE2+gSd-C|Zy0xs`G*zfNAwwXl~ZcUUJZA19I^k0ecN5hiR?RWv zN6qgP&UK&6{Q$18JCRNfWJ}m}l zoHA2Xb=+dh20xA^HJoLVuv!)EP~Do(e!OY=_CRzhIB7#we-HCC@-mZjgfQLfoH`zZ1|2s!LRPduxN$;Qka=b|Y^E8A~ToW6wFqKH|Vd3t~1cb`&6X$ilM zqisQY4;+2|p!zW9nt=d^=_e(wt!Fh~sI6#i#XcmR^ErCA2~0fuk@fvOYElj%hcU;2 zNG~7|2&Tk}D?jC&x>h-a0V^T-8BbF%rbM3V@sg`cwTa*2<6D%BMhPQ!iw921Rtm^L^v1nrhG5}O zm!6A|w3kcITyqT7r4HjK&q&^T9bR%@hP-e5^!ez!Q@5_N{-DSf!_87YJq^O-NbKkG z7T-zVshv7|lk(@W<_d~Vv`(1R!uKzl&ZwSc+c(8(N4?7h{-njW=Kmq>JHVQ1x^;Id z2?Pis^p?;CgwQ*L(0foo5X6KIB7&kKwgdtM=~X(RqaaOCK-2&M5m5mVDT)+D6bp#G zeK-33|2hA8?sM-w=f9bqy=SkzdDxjfGi$AP-dXb=5p0P||DnQe9R1hS5GuI#gXlv0 z3ozxb^v*eJxMEqhC3p8r)-#d60Fyr^e1nDM*m3h(lNq3O;7plL|BBl2>9}29dB49a=_o^90<<1Ha(eFX{qErya_WLpdNOY>uXuVjC zT8F`W(t|92h<~NMI^CG$Z!gGrjTax#5k|O=-5Zb=)E>(H3otSd>-a`=AURRI?f~9y zcDTB2lA^Zpk!+!8MBvF=q zC|=)dxtz!wz}OIbv>Bv7uE$`5WZNHNXY2ss%O19Bzh=;76` zGtok`*%eAP0tI;uZ4POFKHQ_La=v5TRD@pX zpA3)guQ+)j{u(J81Li^WJf8cjcK5ykCo16gV2qvn?1PP*7_nd}@f!*uk#D64Yg-WDQi~sCy-TLbGq6@0Vyj=qNl!cvcPyk zalWwltF2fE>{t=(I?MJ*K;aM&XIDhi1ZddBcP-o?#)!m?uY9*v6QdpWJ06xdHA4~C zA;CJHyzchgV6k?Y*h&(SX5;Y>0a!bbzRH_}o@ZkRY+O!Chdw|6`Vv?a~(bT9Y?g6?c109174L=7u!# zHOFLV%aiMPIB>CgNpp{(g&QeUV)rFe_j+jN9gpx=V9}}|ov(m+2`vxBFGW%)_u_lV zbYnc=n>;yiyH*sCRByr3ivi{lr9d>iHf*}Jo~VICJg5z5FIi0#2ScT52lj85uNhyXm#T?U=p9EvvOj|lg>!LY&;8f}~ zQj&Z}*(2?=IG95CfwUMVs>oq~u@-;f6fXiO2so3I|E%PjYv0GGby}y&q>SmEcM=X- z_Ma6_``E(_(6O;d3}}8bH1(<}-8O$XQdfsPE7=sM;>FXeud01YV3J9JMOIfB({|bj z_04D~_WPVOM8X}S<&#&7{V;hR3`{v{N%|-5byCdGw2Syh$bD@%*SmjMDlcR#&Ul-Z zYo#2QVEK=Bqid#Hl(YNkmt{irsSV`rBuQXrfToZB!+ug>i>`Z>$NhhH?%IF)`rl^4 zj>n%ErxFplE+8XE*=uJ0KE$DoQ?EP^toEB4o+dGYT-#!?cr= zOmF2AMy*VI=MPJ--yNi~LOO$q9KH!f;v<1C?$0K5?iZd`dgf?Un1ojKF_rP;?7O(6 z)M>u*D<|EgE6;M5s1FeHc=B!aeaw52OUu9pE@<~p26P^#S+8$xw<}=sbW@`sGDo|` zu)Enu(!-_5dRq$2ouvPuV3+buB%{gzQebsJgZ-pkIkzNVh;kLl)gSniRX$|q`SZY5 z?qD|yu7{qiZu|B3kC2L*Bh5kM80j@JU6NVClN6|~#y4x%ltb1k09z~>Pf&RytNM(* z4>FE7%U3(hB)(1L&$C$fu}JObjg-j0jvIAQN63g61}(Lqc$M!=b#ob$ebg!A^cWvCx$VEcs&>pgw_6OGYj}kz$A9pRazg3%G-AU1#4%i%T z>zimA9j@CIx2~N@1wPv9l+u+#cl@G>%T`qVZC?Cc1GAI_Ho8_V1RFdMQ{mEoMd70fD*(^doFay3b##dK}9X z6}&vp{~SIx=0Sj%_4fC!D^6I(O&*#M6kbvFS@T5g?YU!5D1mLB4cU@w(kjCnp$BD)TTA|gk;3dgTSf@ zvNrq zBPdp&1i*yQ{YAU$hNAR}R>HFX>PBhOs+QsYPl&TZJIFfS%2mEjP?nhQng$xSvYBjD2g6~}{37HTH9d3I%13)8QIlabOD z4mZE)ztQ{`SI6bl*@CwxNvBfNhPI62eaol)l6nP184o63#CnlV4z#F!PbDuNsUb@pNNGYsO@xf0OL z2C5HI&B0WK&#)xHs_h52NlEs7w|V?Ey?0ye$eQwtao79B*Q&ISTLiv6HT+Mp=8N%t z|CX4dD`&aAX52CjOuSa!iA%Q0vo}WoEWW=0@xR{|ZR4H>g#?JPI{nbSgEDS12^)~o zIB$!^`n=5G{VTR*tU(28BmaQE*b?;Eg-R*xq32EE11~j6%fRboshXOv!uf(_`CatsbC()gnTkPnb$#JP5~;)QcC&8RBJ-J|-3`(Jt2up?0%^0-i<3EN7B_G*Ic zx&%iI2)k+o5cWkAU`fX9TYP0EtiX*s)~dzXDYUyjMHdG zHFzEjuWSEEr%xBPGT#8L?@iuRJ^|5h?_4 zd_(lO#h39wk>2zLv$qfh`;dorL~8iYJ_od9S2-dX;1CW+a76H`1;BoCrDT< zYvtHc@MMw{7b>+i46m8B`*Jm`@=UUG5iO<0-a13?78%7TgGvJh)qUBEO59oK0qtlu zeX9-$P4@JXGl>eA*)?xIwEyd)|IIJrdJumBhm*!Eo-YJl$xY=tv8QikZ_dI;u1%e4 z_;(XVG2L<*5E3NqmbIQ8?-nnd?2VMFYGFfS;vYTgOaU)>kBe!atqbruh-i{c!6?!j zm6ut4kHcZnAtTsz>0E6*$~;mVLVI|z3AL73KE+#+1o9qpxaAv_GR2O~F#7V73IP18 z;}TcTsHs{>mfvc;EAkaLh%t=-tP&N=&&dF!f?7>h z6>j+ z2CY4=@o3x)W}oMf{$K+^Fh2l(d(v9W#9s-BU`1$(HMC`g-%IB`Qnz_CXWCb6zko1n zc*P?%TpvPm)Nh_b^A9s*G}~JVR(2-m!!oX$?-982Yx3|p?i`tCeYuW~j?T^4vQxYK zYx1}R6~(%R)kB##48Hv90r&Paoa?0pPDs?O0Nro5HKK(NkPk$Wy#1TVXf@5?{_rkF zb=2A!gHc~*!HCFW^cB3(FRF6Z?a${P;>0Qq7&MV;xdMZ_CW1gtnVW?!fwBD4`L+an zat4&BFKel)+v@f6ry;ij$@S1}RCV6zW=h-HQ}DXiaTOwk1e+METRUtFYHnNP905tk zZX{IPj|lK47$m)B!FlUkEA9pssTJ+<6554RN~OpYT4ACLSly~m8dBq^FtBnHq!lMS z02Dt}=rUXg+IqtyEk3y)3h3oJcIuTcHO8wP2{-+qP_Xo>zkK8R-mxodv=#kowp!^7 ztirqLt`$Y}@XXFuBOyu|K~%;;XakqSZ{Svl1b>uRcqyiVr^7Fi&;t{^@XF3Lj3jWcScTG9RklLYkz&Y)om@vd zvcOG3Ua0l5IIgOT@)5jCteDSvXZTqk26#4pf0B#>e31XaxH!If)COgeI456OaWxBk zi#RBXk_Aiw=+a$4Cu-R$_}s`n#oHk?Nn8KJ62DFjQVrfWl2wAU3eG*xY_@k{h8s!F zX60nmE`Tv_0fF^FrsKru^FaeU>;oU|NXGKX!9rh1BK=gV!2y#yyaPJ)JKu&Uhrkv& zcK4QzpeOJ6Ou)4Xh&a`QIM{UfkG=#^t|bhihzPYDdED})wC1GvZU5vOMn%Ql;1pg% zzMXtpXi|Z@XiKpefWEu&o6;q`4%qPIi-QZo}^FAl1xMBS9GU5=ZSiz z{X?Y78N=3nrkkHKQIO^{Sfdf1qm?jsrg?9YcNc^b?N0y|hJlyi9?AVHy!s+Z*U$SV zhKJr}6FZR(%CEsPHu^#S#AgGwZv^4zCZ`_7LxspXm&(m+PC%b%B*=1~SCs}h;HHTC ztwHl9(1HNm2n)6V=S`(WOcZ&yE5bu~g9pbagu{0(ifev&tGGRiM~qd(sK!njzvhgP_RX1=Xnl56Bg6 zXL`@eD}G*{fwCGKpwaaXuwtmh zfNf9@mDN;p-A$pzUrEM%RgivH8#ZViVMXT0y$**e$mb|Xu?3akd5@YlRd8wV{Y8!~ zs`!=`9naGEIHgf+lV^Qd=T(f7EPGe;NW04RTlcY%Y_G8?06G&$MDD0(W__i+ zRKntKSMW|xxOb&q66mP>kYK;bj>)hK<_h2TTpza8LSv*P-@pEXSHvIX>;S;u21j=4 zbDC5esfFkjmcz{k3RZnog+z==2CxrMP%oS{d&Xp1V*Z?h;hHrEuY&_*<66kCEQHTwjv>P@6e=G-FEf{S`~q z5)uhDz~Uq0P{?zH4_AM%tpxvU4?P3jJ4hw>oGOiA)KXc|Y9NYUIuL}Yh zsc%WU$CUYtTl#EZ0Gq`NL|nDR9PJCO*qGF^IF)~81;+<<|cw;HTemKbMcdG@+nZxRA@uzawf8Qv^6%ky0#-&ymXi4CQen0w%L zflx>AibozIVCPsj&NO8+=^82;{TY_e2T@X=Q$0K(WSX{sxy0gcEOL(> z-$(;%mj>fNKLF6$yoWB`>^iu0b>ykkssG^tecU36s}cB`yxJ`Z1Rl?xF@~ZZ{`Q%$ zyPi|N>VjweAHF+jcYNfZ>0cq||G=LAk#WchV?F47qf=;}Ga-)pWJRwn`U~)}(}~-d z@qJkK%|*C#{i%<^#G(N_91vVziB3K1^J?ZiOa8xp6v}gDlhXUAr68WaxYTX9BM#nf zGJ01Jj*=DvpXuVE^FZ}_;62ZtA0-k8Dsz82{&Z~G8~fAI(O{H&Kj&YQxLn@huOnZ# z3#z;if4#Tg_|6NR(&#^C&;2k2ZNq&D*GI2HZ4@E+2Ivmw z)FB#}nB%Yah?A&pOpB6cp0MRt)hDo=qp>*F7$w%G;S1&hA6t>Qv?b7ZW@4I_WHM{7 zva?{8&~8zOIX;8SyCvxu20LkfZ_c>P0|fk7z?yj9um#>s>m=ICi%`xfJJ4C%Tryp# zq2c?RQU|4F(FIvhn7gv>-#^?gXRae($&f z=AW}a87BASAIUM4*U(~a!89yt_BxWp0MJ4H#qv`&z1uS(2Z!F>Y70TIK)kX~c9X%k zzNSY6Fyp4;D{8I~Bi>;K+U}(L08@+d;GB^dtqstCF`>F1O1Oka+>qLcMYAtn$RBLj zozHYe=&fDWIE0<@5u|#ydzm-j1umi=&i7P}(D@5JdnQbrZv(yPF?nn`3AR9;Bb?uI z_3{?jk{`Nxmb6=NLJ<`K)$=z);5z_!e(uS>Ms*#SQS2RTI8kZlTMi~ zGfOX-%7)aU*H14l^KQI>1lMFlc47Hh^xFfFR!APGqj*QF-r}-JykBMDK>u*>8rs+h z=sr;jPX3Oz=<(aUYWCm24M1EDyX0~6YW3EcoRMCnpD&h=|eX!+`4gw3-F^{g@r92CkFwVO-?syM=5N3Swpf)zV2_(-Xu zUjSwa(Ok^{OsO#$#~EWYJ_23ILifbHRK=TeL@h?IO(@2o)8*m3xa~zDN%^_DhY zqQED_*KWD6(p66hnJ@1N@9fxvkSqj^jRplJ(UmB&?w8}ex@<2|`qc@ck7+=Bau(yU zSYx=P#FuqQ$`RJ372B)z1nF*_(m!^q>IBi+!RWXSv)msl4nt`*W%*BxurDUBn7_$h zgn+e`joSLH1Z_X}?6Nlt@|f{7y&y3V@JLf(shj{P6&MPRckjie(8I>R>^D3wEDC!C zab3Bl@4@Aixq^{Ex;X`LIf<=$|K4$rU>X#jQFCLH>hJJ=4JOonkl+?D#B=C0o@!CY z3ue!3>shx)l@h_9qoJp@B4=*qo%_^~-q~GzW52_3cX{NzR@GS&x1@>jPX;)~pY9Np zJk6}U&1(5fS|+@e%xFtSmT{^VP^0T=R881{e*V*%_g6rkBx4LrzMk;yE#VEuDkc{iRZt~@=*HWl1vL74LA8tLZ$Uu#C*ru z#bl%3ssP8rtWI(Wj}>^4Dlg{;#VN!m!4U4cXX2r(7z{?WuZA^4dR?hL?x&7Gbf>QH zT*)Ci9{=2=eSjx=(j06Y;PvrOamTZ&RTRc;gSEV$PVyJzwf2tB7_nmnsH8%)hW0%w z8PM8ObZrPWIP>zVkA+gRdUT+KpyvHq`?lksksrWF8?hNaZ;j6Jo(>cA^`-D?oRoqO z|GPNE4jX zd1*;xSOEwqiuQ1VjUeE_<#Ix5P0>+5YmLk9NG5l<^34gAIOK6U;n%T#omV~B>%pW~ z$-W^HhnliHcRRZE1u`j$$6P3#5BPuK?y1~VSfbU$P+R!?2izPBARGxz&+0zkj28oE zD7x5T_1@zVGVI4K4{uzw7(tB2w@f7E&cJVdDoK6D3?g0b(OxqK*=mJPAanRk$ywpw z_)RM(9~Y$)aAA(&h(Ruwp+emnk`f~x=^2$T&eGe#ZdnfZ#x|9{Nr4VfP*S-o)uh*I zP2oMVqxA`giHYLgmNJLQBV36Pk7F+e&>JMw~s8+E^>U!UAU|<08K7D^35c6Jti`Nm9 z@e1EamLU!T`sX~{uz<`;xE16r@Ly-08O>L2lUsJD&8OD1cNxLMsYI zhEGGF@2AEtVA&=t%MD3pF(HuLckM60X}%DC&)w% zI5<(5NfehxVTIVzD+i)ZGu^CtYJ)I9!39M#aKqj9b0!j9LRcS99RI_8>F;AQyCLA* z{XTBW?h}G78lfN;@{d7mXSYexJE#uxg%{w59j?D1qcDk~TXh~4qEK&DM;ZLr8Z8yQX^l=)YWIjsaba6z5vEoF>KQ*e+#ZAFevMH5lTI zmz;utAl|&hOx<#GK`!Wo?6O&UqL+eot+wFhED3ucIpvO=Em?n2@=UA}r@uVJ4KGs5 zS&8RL%iV?3R!r@gDG$6kDnsQ_)5wx-J+@_)F;V)8G58=152i}B`fp3kkHDg)f_ zAHL834f3y2`TJ_=x9eO`FQP|{bIKpOU-I=O-Pz(-;vLTWbiN4x zfWQc%?5XcwX<$x#OoHtAnPk}>_6hZCplVk4JNzu={%eVUPjoNn#RMszDb3Qc51T{T z&^jj?KbNceG~6f&H%>0zdkJp!;)e~8a=iO#M0CCG@h&KN6!bQX7m1WmW}srtfwh=w z;k`+=r3_*o03Ihn0o-PYG}}QMIZ__+k1Y{o%q2RF$#ECnyY=fO&x9uzIIU=k1KIK? zNeyT?D!N64*@%mdpUWVFxWH4H3kC|2ss-*eJLd>BhEFR-F47MBVPkd5W$N5}QiYI; zrE!ezOHQEyu>wQjM2-UqkYUjk!qpPtM=$6Yc?T`%+KE>|H2K}!4M{1P6EY^TJNCh+ z@jSc~&zXDeMU+pdht>ODt?1p$lC*-Rk63=8SP_i79IF;bBwpXea~u#9J0r9rMr2pL zk{F-KPL?rUWxth&)$y;Y#9X1f7edg6oc)7Z%VL}9Uu=KK{}MWjxXJi`2$1i0KdbrY zo$x&mCJG+#f&4b$*4oy4ESp>SI;Gy-ZwrAU6Ijy^AuXV^aCnp^m6iL}Wg#sTD*vLS z#q~WP{jPzOIkhq&RvO7o~-5dF2F0&(;*J85=D3t3hy`ZuI)hKO1;&HL$ zCCwVGifV!l;wWpM1mah_cyyKBwB(I&cE?0Yp1A^d{Q4pYS@SL*Q|H3YT`?{(Nx&3M z$h$_&Ks4ij-9>?3LO>o53UF?ySlCrNCKAvUPiD(*f6XzYjauM&tbYvdG~*JG0I2pW zpB~$HPhUwn6{0_0=V}`W!$62BYLOrHT&=C^^it1k!yUx+L+_9vR@~DY_=@%i5#Ft} zi_)1C4WGJOgb8GBB*)-(z9{uO8FAuFGefE&F0H>gc{2eKw{ zWU*74+k!VW<(Ik_B`+VvFrx>}zA{un9~;m=anDa&$QJW~LkwaAe+-5-oQ-#RUEI^5 z>F1`m`Y#&{w66E|q}}d;HfzkhPxrW_XMYqy(He()7QpA%1yG_L*iqIyS={AH^F!Ru4o1Zzgl){W_*rSA6OFJ3_BL-> zldto<`+BX=E`+oxQ5TAbVV}pxV#3Voj4&Gh;w)MSnHfDGP`^32G-rg4k2B-HrOiyk zSv~O1<;#IFo^H~nK~OtPYUXYZh!98p{!-M(`E85!uKrg)N=r@^z6+UAQ+Xc5!yw2l)l7x3yL>X-WJM_<_arJakAqeLW ztr5TRNXq`eg#kJMh2Qc*e?i}YZX3m@w?<B>QS<&512H%a*_U@-&xkxrP}1jwkuZ zoYMA`>zY~wS9zrWNyjpH>DeVKH~kTVA^F<4$n;ChlBQE(tq#xLQy% z8Ir(u6;`jcjBq<_mR*bpu5|Ya?Ku#T%q`o*wRx%IDV5@nVDi-t8?LeWpNr1Pw_afq zfT*pJ_CXL!vftl4FQ(anDWOr=2MAjpY9L_uS{iL$H_YU#4t;@gecE}3dM@5BN0DuV z-jMX(LITV1#E#1OF?)eTxV_Wek0~8*X5y+xiS)rc8wk5it1a>p{Mkr?RZkncffFGr zzWb=YBsx=`CJyS9x{yin7@A?dlbq-QG%798jr5NZ?YKM4Fy(h2WsHJCig^B*7gyLi z#6Zyq8yBUdniBsYPXngT2$vnTd-3HeM~${OqJ{(SYwuu<$0K+L2uN_`t(>=(!{BBs z@#j@`X*)bFguaY9)THqk!MXl+M|{bTNZxTMtiX{r4;BE?lt6|3m&O~83BfR)lfd1 z2{bvh+9j*4fuw!d*pTER#=g8dkDx1P%5mH&G~6qSFyUm~e_z_Ra~{g`?c9(O_|T@3 zBweifL`>0RoPh?ba0$wvx2LXSI4G_fN@GTz8$T#;;cVJ*47gJTJ%UhuI&Ph6twIEq z^om2?We~0SHL6r8M?~>d>PzJ{3wAly=VS5=w)3(z(qaJotI`` z;qn@;+Oo;VG$-2?Y7Bg7UL)EiH+0FQ7oXOktFjK2cAzwC{>#(Lw{C}ZYv-7YLi@abQgn}B0-?43YkDl zT#c4n!JQH4DAATa;)JMLV;^h@NVoTQN`n%Er-;FWSIES-!cFrCpk9|L6avkV&QyXX z-mCuhdk~8}k)}FOeL5O7EGY1D$6yl04;}z+vbtpR@{p}f&Zk}VXmjc#$2q$|ubtwf zXB=D2qy)&jA5dvFSgMh^Tr;7hy(7=ANob*f$d(d^w(Kw%CVtDHMJX&ZLdti8J|_Bt zm1rOnk>Wkmyh}vaDX%L~{`q5iCF|-+c6L6AHFh~2T6T&)8LJn0HG-`JUeDCiA$DV) zkG_JpxIBAd!SsCG9nv@tKR;2KmJ$fAI09jJPLUZCrZ^ovsa6)VML$dfdEI> zJS2jRM4IH1szr17sTJinjnQ)_do+&`J^4P$7i7iGNLLTlbl%8GtGJl9VzR_h!meo@ zJB`QearAR~BYi1_PwZAWA(oFehm{T{`?_`QchClH6yqgF`W_qwr(Z_zTndIMdv|V% z1{d7klOy{RuMPr5{eud z1O5z1)vs^^F7+jmpG%pV{}6@Wce+tB_J6X0X}^&>)SdNF_WmQO|C(X>Z0fA4m#{Pz>0C)sESI3J#)*2jSuejT(jyrUE<5}Przhb|kpau!>g@afAxs}zf-q|_K9#&k|3@pZ|s>>c*)5qKrE4Zlxdc;De!2^LHEL1Eiz0;J-TZ{$E-`;_EeU_>+KG=|o5WCJi&{->B34^F*934OEgVy5T#`$xti1p)9`@V&QQF2YI#)9vyK21* z)N^YWpL3!lJGWD#;;c`r>^yyr=cE;X(C@l)^R3l$fdfzF%Ir1mS?`8sSGlX4E&U%q z%SY@IFtO`SXfllbin7BIv$jw0q9Q2x^p}sXs}pl1WdhUcxAb%`(hx=lMXY+OefEiT z?XS!S<`*Fh1u4=lmLv>tp}ZSE>QYW(Yx5k{2g*HvVW+;43s8s;jKK^7d1PDms=awV zyFQTRa|FEH(h+l6kBaRA%L9HG3Gen*cVT|@v=|UR)#0wM(LRQ<5I>2rlu@1_>(SgS z+C2rmswiy*;W>`HkqYZVj~vG|K0LtN!3MG>1SYrnYxq>+;a0X;RBIm1RbP4aof$^g z10r$oTgQ#=7kgM+g#wEFM_zuB)Yv;)-d-SqxFbpW5hf6+7*GtMm>=NUvjRdB(YRn( za=PuQ9zf`P(uw#3ZgG~G^#M5FhkShJDxMlLw4f@hW*-U#Osj7pkXPsreC$-8zeu}C zx^&0Iek>F82g>KR1_7&P?Tee91`G*H0_{hRG2m6K@JasZw&=U!)Ys`p#@*+*6u_fZ zx-DNT!p1i&!hE+)?w8D*x_9~iBBYI;`VHSrR6II~Cts~P5roU=Mw=C-G|vlTG}w>A zeOz?S12yqEQ_9?_P1Y6)4xlSX!O9dP^bMC!cWMDa&)+7d&iEu5LRqnZ*IU>$27%O0!vise zniWC#7%LE-?m9ziivG~T17UUEQbSK`M@|OYKBXz&ayTD+fGp!2K54|CiPC!Q)24X3 z<|{a{%Ur4XlYDwobHw1$oG`;Z{?@d~W@FXDg+2{4HpZ9obOl#_oYNrHdJvBugLR&<{fXgVKdYV&c;5i*?=GqQ)sU2%LZq zzzDhElEf=Ckl;+6pVcrUwbmThu9LhUjE8=&%ltqlq^Y}}ra;cr%o>8(;wn$;nozuH zNf-HS2V%WhkJvFD)Zwkd{qeKn;2;e;;=Jy~=qaTvn*wizx}9G46b&TYw`9rA$J8f2 za$jL>I_?AY)veh6Fp5_G!{SQX(|tI@(A0wkXL6QcFzSx{CYl;)DVW{X0%IZh)vZjB zp_l4T>^gth?X6U*L;5>jl`b1x@oQ1IR4A;S;d0qkIU9fkAL12ZnpLg@0I9}Nfj#z8 zVqIUuwt&MXmK?}cVlfhPEZLHO5MwA9&2->3|Ea>Q@ai@kG>ILuNX3#ex-y*vNAlSe=fN-Fg%`Qn%W`9vd$cUCUpvr$qoX!!Te|xVQH6qb$K9$ z)V$XsCrKT}ouHtjSlk3y3U50)^=h{XH^QOkv-=ekg(&qWI7DpHtg?18?n(yU0m)sTJC$A8& zN#i9rKep)Tnwut!t@xZsb+DnuiTbnfs`xn+t9`#6l=icRt~XXEJvMsz{DIIuCqWRDPToISyMAdxfa833kwhF;i$coni`lzD;?CRwYT>e{A|Z^^r)X@JlE6BIth zq75xf&V6ksSeuW~^D8iLXBg=juKT-@;L<=l)4&knmAS#(tG^VOIfZ@v4vbS_T3rbV z+dz7N+p*KQ6jzaZPklH-So$L-FXZNL!I<|{`3(6g_~VpZT^1} z!P4ph7l&T2_X9)4KS_30^M%i>#s39(M_>z6Z?+z~bkgpp&`p~!&_k0_AO2+jz07o_ z`EMTQf%yT}K1a#*acLmS?4ehsnYL250f_C$IgLH=R;+9>*Y&S6Qb zeDG2r88@a}J*sRXh(9b>gP+GO_rgtv_7P&OIyKO(s}495rM9JS)hBYERp<82Ku5%* zD``Al>cNb?oaC*+Jv$Un}HvYuDmV-AgT*+%~ZYv;Qp; z)U93%el)&*qCl~&Wa78j`foA!PP1FxYar;Us^`;H_Tx9_v_3ii%zI;hmPEb~wW{b_ zbO$JZ^VoLQ_-nxRf*nQbpXI(RU8vjNgN_Tg*iyZ_*JXHkS2F>0VyXbM?Hmq-vNoF1 zLi-;-;v;c*7*5s16a4wOLrUa!&f-XQQY0jb)rF;%)*kr{A_LeI~!d( zsfCaClO0WBR9v2r3Kc8Vsx74>X~L)R;7^f2_EhR#-iUQ4%w4Op2X&kE5FvR*;YE{g zBS?pK96zt{e7#Ee`2wZmTCawaShhu+U*rBGS3mlzO375~Y9~S6F>7EZI030E`na+ z<@LorFmTY)rS)aL75M8X-&(m-JBXar)}qnHUv#pGB?DV~0w6DaTO zMx7rb#PFV8O}KT5i+ZqX@FDcv{sS1?HQJ)oJyLIC#)1XRBMV2G%*DffMe>>DJNzks52=+ONcZ9f@5Kl zb}4htpaNX$1v^>T#84{X)%!CBY1pL#w6j;+`=1UgM0OZ}7 z;1adBy30;BnEEW^157)z$t6*pf>Sqgl*}K@`~4-gMOkZb!YGZK5ASl zkm?CKBH%cgW1kijIvpf*XDBO_cGUOGBxV%szWWkBF(%f9$B*Q>Dcr+P)Ydsl<2iA$ zOXS^$R1K!TBOW|@&W&d6d-@LF@qN|9KF~V{x_0acQE=>Z5$D8KYGUQrVw`|TAB2D` zOIDSbx12w^PHnjwz5GUc8U2;-kEJTtb}Jn2jFH*PSfLXFuK&h0%n-_4o`efBkrV=~ zj5Bm~AR;;|VifkbAsGw+9RD>4Zh}q3HPs;aE4Iv>$8nv-t25l%I4S?xVB}0*-3-Wy zZ&R2XZRw?0ydo@obsY04Bimj))T*n)Vxno8c)5;PB$dWvrNV`LZK@q>-EwiI!>G*t zzBDP8%38?O0JP32sSZuRfl$uF`5Jug9EDwn)s{o5LvI{H;`V|MB*;slJg-Q`Y!YAH zy}JKIPpS9xg+?Q(41P~|Ms5G~y(F`$qF4KWh7)#Wi5Zj7l!AtyAN4$7TsP=5H-N-J zdmrQi@d$#G^75*a$caHv+>GS-Y=Xk&W!s#X0Q}NvXuU@Qf2a(2 z*mW7;KL|uY+ADNx$bAW1mvCymF!sf6@f`g;QW1c;+BMYz_8|w?NS$4KU#!Ar9t3d! zU9+m+{vXM!(N~7}O0O8xd>Z-5Sz5xN~TQ zj}Z(gVtCx2NuVhU4+y#von|&Ra)&CGaD0~ggD2eyNf`zo$+N(b{^b*ylWW}hvip4p zw~ZzaQ}jh@$EP9oe0b4))e@otS)LEZaUuMVcMc_gEEuTKtcf+}<9ZPY+VHl`(#l?a za7HkluMF&+sOF;wO;VNc?{|Q8Dd={2oRTzWA+&Mr7KZ5qcF1wLXCzT!yO&NfYzPe0n#{9q0GWSra^Q z{}Wmmg6fw2-ScG9gD3J^By2EH(YW)8-5G;kj)fHzk(bh~zjB(94s-0Lb-+WyWSZpw zxGed6W>iTU9H=w4O3u%$$+25IM&|eQ;jwC2{&^+>PPdkAOci=Me`@;ch3(yIjd$Hk ztMn}*{|Bd9H*0_Eill2awJdlb{s_UZnos9F@pO&;skqXZoxgtd-spZKdtp@fVfoofilRATCUZsl9M9z^6KBZ>VC3{J@eFJ_j{|xy$f)$dA*J z&I6|kun`-GC+$OF)6Szr6;;sl++3+(20g;z`}-SNsiJ~U3XW_;v9Q;-cLqMq=f>rN zspf3r@9BseADj}iFs+$tzY<6_D$aeOTa2NVqMj*?51qj;0oK%L%lEF^n1-z5d0o5?uWp&@LCJlzF_48M&_fU1T|>8YN_Te((kUpz(A|iXG$@F)fS^N*L8l;6(nv~) zJ{Nq?bKdjb@7{CI_nq(l{(E-+X6Cofa{ggDCjNmHtq@=Cr21!mAWr8|uM_zGFiZWJCt zpU6LhY&Ab~TXDqMze>$)<{-rrEwYzjt{IC#??5!tqnV<*M7$upL1{uyQgY!RxlO*t zx{NQEweNgVs0oGl1}Fa`hfQMir|SW% z5l&8iU!__y>FWWukw5ih|5!SI))0Zl?d`e(XM7X656au+WJczBxpWP{*)iV64tD|$ z=oKt}Px46qx9i$?{bRf%(gN-SXtSeIb;y(mac*lD$GcFXt}z2p4-zIN!S>2b*G>xe zchhG3HO5|&WcX!>mN^mAdGe#6SKT8%wBXAp3&D@<s?Y@LJ224tmlNi!&g=rPyJ6U*OL@hpL?jFQR&bn-AIWQS4Ho7PC zMxWsFwkF^T{lqa%$2rzLJ^P+1H6!*C7!a^$*V-S%!!F>-X+ncyPl5I+$6~pocwP*G z8j03gm@ zaG*mIWC7Z*UxwK9)@F1~L{Q^`CMkB`?$CM!&^=wES-HoNZ2=wUMB8VqZw?Wch(Ul- zJx@(EVSf%MP&w&H5nPZa034&NrtV^hQN?c*{XEBNrA3>*R3;M5*C+Pa3@ipx(m&6~ zTQx^QmTAog5Q`W~nJkP)7lnemW)&3DD;cMJLcNKK@{D4dPPLoM2oHS7c#l_g6952^ z$@Sm(?!^EAaE7gQMu}*!vOEC52m+7a;_d@njHfhP&aMi(El@x|vrVlJCv#}5<_w5W z$8MaABsErmshKcDJeCQN^7RjTb-15P)WS`rpn`f^lB+uV7&KcRX~&{pbEhHEHOdD* z+pqqxw@e#W1Jxn`g4GhTh9!BL(89cDIV>xROy^Zble${HAymLSOo(;!q=_i386#f4 zElt4~GdIk%2Jr*5QPrbN`(TzDoUT`7-dX72bTR=QVNOn6XI3yMvAhX} zXo;kxBqT{uv&{yh#>}kM)!}Ri@9I1gALS8dBnNNLHyYZkP%?&)48LSq^DrYIOaYF> zX&Q&~x%HGm1ns$G-@=6-=_M(lQ(WiPM0x~aWuo*7S_!2J#gpt#y&pgbD@AeaDVN_c z9o8QCwkxK2c}8O6$s{yixNr-$1jKre7*4l7Mmh!I@xOD91<=HFGDmM;;{OpuEbZZ& zs)y)}Q?L=J*FL!8e3X}GXUD~e!o$;$Us-p(E4wOhR^Bjy zyb((8cao-7h~}`u*kOoySaKheyp%{5IrxP@`GjLuLCrAyoO>Wbd?tu6Y7K{Q&;_m4 zuOuU{fKSP*C0okqB8q%gt@457K7b-s_>XFuq^=AZD5?P@ZQ7h!TH3DN@`xWWHG@v5 z>(WFGi3uM7u=GfUCjqgLD|-C^z;wWkDqV}z(GPU}UW{`OBR&$>)zk@!h)-QXf7^$N zv7BRn2AU-B+M$4w0LPGxnRT&5zeYC1y~#Br&Q;TAv3n=4p6n~(*v zrT3)ZAa(40T2vzj!mXOASBInjI{$|;|4DY`!DRtJUq%?E5^12=>NEB(9ZxEC98Ua7 z0{--ty;fO+uLpv1%2b{w(z1&8=6!!@^&_{_s9j+SrREYwoDSx6^g(UBF1u_wl>0xR3ff-+}1NlxHUbX-fAhE$p z`(PZ;?h!#Yo*o}Ea#@3oaILR-&cuz=7_7hn47;***rH8gU+{~*OlF;-n6o&1xbFl& zoxgH(Nx)7I(-*iUYIgRL6w5}J=NdRHt{qZkV^y5JtTW3 zYnkw15=#%}XLIXzD@?DzD*VEWZW)Xx77#bs=mtuzvu3yCjz12FCeBl*OlOl- z^r6hGF(a1K5(RXf>O1L&LYSAE0W$SBOPJA zWjHlD1{@{fb)kJCsMIf0V(_OyjPej7-BOo|8b=m84JZua$2jP$|D?LaFF)p8c8lV- z!(S_NIu9vtsH5MtgCK>0h&`klYGBdVpQVE0D7}Q}+;j_W(1^YfnOHVUK-?qHOCU0@ zm4t*0BRM_$ve2ZiF1S)&;gPxeME33mPGMK}ha z5cO#g;dTJiFKM^8vfT(r3mgHRov%m-L=ZFfVG5qu5_j~X2F4wHar!yng^K^x1l=!- zqe~D~qlq2agWQh-SIaxRihP^wW^x%1E+-DqxyOJe7Uj~7z0njp3Q zi1?MYW5ReJ3CIkJy4?6CuYITeGo8{FlN{=IdNipZ(~A-hZCmpILtFJutZ|MOv6zEx zPOUl7n7xr+J@X?5+*7S`4s}MVP;YT(putx+&B&M+Dp}!}V^ZapG72BT5iAw7_yo&? zU}%V-trFr%IS_{ga!KY!@c4iln>`49W6Ki8Yo(IVdn8fJhQszLT!(cn0G841WH$9uke%2v+woa}VAdhg>XXYe*F zvEyp>iU^U4ltfeNhn>Ufzt!WztTP)zjpvbs4ri zf&!GNVoMalCrBpMSoXm*@L#2Q2!ewnfMzpUp?_fDwT{c>P<*%9<`Gr~E{|M1Zdsc6 z#pxHF%^S0dkvABt5`ebf37~L>g!6A1jv>HZjCMF5^jMib1N9e?FXk3k@yHqsm0g+n zQG*hDFm;`79H4)7LL6#F#QpwS8Ai&I#l-WtvF`U0V|2Fl zI>QDf7NEq(SaFbCU7aj@V1^lCgdso&(|h%yh8)Y;c$WZU${r-yo(XT! zixaN#oFjgQ!T@|RA79|GVryZ1@MFqOF`Ks>vvI(I{8*Ush{6;mDvzshouP%fsV_u0 z78V>_m5zNZ@6DSA!xjo+rrsrJt(6(nV9T9&{X{;9((RW^CRY}8mC_@^nvoTpkpj>G z0P(0Xi4PS&DgUx}bx-DV=(Xr8V0E>B;7v@B)Hr*9JCjlvS?4o8@-CGIWM83cN^3&X zMaZN6p%G5w2-k}RS`J&_;s<7z-VyEx_F=!bS$Dd+H4bp&#p{MG7wi#C@xUZZA*vQc zcu1{xxpg_0a;`eo%n5nM9Fq)kYec4a@2m_*!Jta&6c7>!-)df2 z2*h-EHs0Obu1O3<(&*Bem)Bs;nf&7%5QAoJB>_hj#7ahde|Qou=Xu^3->i#z~;jG^{;5yCQp4@8ARS3GHG<^ygT- zfXI6_y?%-L-%FW1mF}NlEsFh8W4uTB`T_gRG|+TB9N33(nh}tU>mEVQaA-`b?RopT zH2vC9f|Ydg-ceC@AbH@UTOFsQHFzLp(PaYIB%|JjPyR8@t|bp;NKY!!#aG zSw4!jAcUB!K034as$7YQRjr4to{Gk4bOMA@$aC}zh#Xuk-${X30!a8u98m5Ym#U$u7Yckoq-A zF#^B8N$B&R1_}V=isWzOuq{e%vE%==75iT)zWptvks&de^4|#biGIY2Ld)Q>qJlV_ z-jbbHHF&mqwjmafJ;IG(~=?_r+IA5A=(mfX+_CDD!WL z=85OO>sL_-A)pNtPe=7%fZBd6EJwCw1bn+Y=!vlvTRXw?RdN7h(MK#+yA6B8B@#fU z9_ba$U6ZDf2DlPQZ4IKj^y3x9>zjixGQNz~&ED9(&RM_FCmoUwxaXkRQL&7~zbJ`XFEh)}vLn}JH$KHPD@?~qJhW;~BMLr#4{GNz}j%M-BSONQ)#d;C3% zEoaO$QpB1fdZ{*a1AnbxVhC{RID=})G4Gv-;Q%J346=A-?a%#ny)+0dOP~qPf<1a|`^T*U5C{MPK@hAz zeiZB`5X@FLkP_RlKS#QJ*KYcLnaBrXZ?&(C^l1}~a46h@Az#gn-P zZhUQ{DotNzE@}C_v-8}2J8M1p!HiO&(a4x)W2{KI+ikBaYi_o>1-BJ>q5VDk9nUvTKKvhH2OYnGk zSP#Wkwm>?et(HZstj@Xu_p%mnPIJ#y@h6MutNmG4bNfAMq6Hp7kZlcpT?=R^UEDSS8)4SYP20H$_ z!q2Yus||NXC%q*rTCh23LiGmm@Y+St+1+5;2u=n?W$YMV`ZlEkO_m;=aprCAJitqr zWo~fBv5#wB!o#`f)dC^%`-&17+%KhuLjlfDmpy$eJO&Z3Ydtgh8@xptMZf9q$S+TS z7;_ftbTKFi+{WHM>$Q|DbJs1-5 zT32Xm(0G}<6~vD`K)5HTr>0a9mDK(KRa!W_vo=e9k#A&kiFm=1^LgC(Fd0-rHLyDgaO}Bler_%O=@~3V2)6t&{ zRc|uA$LMK9Q z?@?lC#CE^Yjecd@T!`*f+vj)#BEk@>!;TgI-sKu>`U13YAHjp_NlUzrmTUgJhcxvR@ePK;0Q;;=q_+k~hQC zc=eFs$`6#2`hfr32LW)~Z`-jC7>kov2rv35XSsLKxOS5A=KEL4q?eY-5_3T;zTag7 zquhWHo&{3HFO{ORn^^Mc`O%Th30>h$_H8LkU8(**%~r+~Iot}2CRx#>&da?|0!83u zm&@_`;|Vd-vzC1cV$C=%ANoe=o7{~6?}@T|X&3%tZILnl35|dI@d-BGXV$Cl(y^GAuQD)jFh&Yk zawunWJAV104BNvJ0vzJMI~dM~51h`Mh;5V-{JS|=2!WjE_~(FpWBLy^uyNG{IRm$v#*s6 z!3pCJP#50Snqfv&ECcMI;nl6y;1LI88toe-6ym8>5T%rIK32uVw`we*jp+4#;>yH z89eOY`$(|u2M}h06cv2S8(KIa^;ZA*Yk!iY>a*?mXAVWj%%4C`i4jOl7{wPaSvo0) zS64OyU!hb0z&c=S&BNY_>!4s#N6YKg>E_Arq3xG7lR58tY<3p_%Wt2a$hGraV4i~) zZIeS8yUPu2wG3vu4z7ozltwPEoQBJmY#x~{C)rs$=hLA_gm2sof211v^hkK|YjRYQ z@x5ZRL=dS9xAOA>UEUbNOz6M-yPwWFc*PttIw6HelB@pxn+c<&g})=_egRQMnVW6G z3sn2bXM-aqn@t++X@}3ST?KFIv;#H#^;x`AuG6C%8H1x2b@?$fS%V4Mko~l zhfP_@PXrE0n|5(7ydHL$4S`<^IbdXXZXCz!=+g$s$xNej0D!aV_%8tG7L>f3n*#+1T*G;B!T0 zj{>QcFzWk*c6=fQ*LiL4EL$Jsye_EG?i`UEBHxrNB;eXQSav0z2K>0bL)GZ%92WXI zu<1OygfFq+*K1>b<&&=n2n>~mufeB18QYXC>|(_eNhhIry+J8d2miYJXT^9bh)M$5 z3$P;61{rM)FZ%JeBM_)JkB`zRCw>d2DP8r%oW4!g*p4vE`6-tyf74^s@WSo^(JrLA z^4czY;rbC$Y2wOp;lhDCOPD#^b%s?=rGUNU?Q}Qw%4-SYkalZG+P@{HAzul<(ioec;c(t=ZWKU zLVFpP$oL0lm>Plv!b7bi%pT1jx;-c2VdxQbTcsG8c!2TE%hfrG*@0l}Wkw>7Z)bf= z$S~?%NAN7YiA-`R;#hFq@!e2H8VhM-8Vgf|h=40)bJG04 z-s+j}Oti9`r}Mz^wKM3bjP1^o2GjgU!e4X;!=7D?2Ff9@Bc<+0Jeqb@`3um)nrZy_ z_Ea|}qP9R~yj}NZ%Sh;}H{J*swwSTVUsD@>OfV86Z$Hb>b>;nrp$(C^$f*7)ug1WL z4>z=sI4|8h);E?G0QRV1IJsRr(>m-3Vc&+sTs26}%5|IVM~L|92#r`)9z(fc+N_ByCK17%oA#Du$^$?0Zqlo?|AQ@85p%1^z^ z^eu8sd1WF&%H;hCmW*lvp62FHPhuSl*PtbCnSTLhZN*3Blk=~{X*8X!mYJ#I~Q?0;&aqMXGI?mMfId9tz@_ZPtOewWOjod_t- z$z>q?P&FTq0mYeXbm@P>EeRH%^Ub|rqJk&oKv8f-HzCadBh>Dyq-Pn3fgUREh63jI z`h8L)A5&ii8gf3Xfy@NXjCem=zh6=Jtr%C4;3aQdn;wt+VII}548bPf=q#NQBgT~) z5#*4T(7wQ1pI~VzXP3e44*%8mr%bk7c%}?jw-dQwXjyXa8O4qku0(*c==kS6Ac+bs z@7I4$&1F3l$KT(0wW zQ@0u|cWg`k$7f6Ob}x?sWqBmAYpwHr?S3O=xj7>5KWGklwn9FnSy=yTKI@_VVY=rs zM#|wmK#aS9;>8f{4l$#;eMuyKskWN~y_92L~$jz7T4(T!fsqQs;HSF)(_(hZq0-Es>iCcJclpv6qH^tI*L;&bTU{Q>PX;5frJdmZ7cBQ&%b9s>We~bTVI(^hcK{?QJH{k#p`ZuVEM2ye`9k6gmDAyec03V z819a&PeL}~+U{d(CZtYGkh*bARA&_2c;V|&^V05DjcLXW%v>vDN#LBxRm86VROROJ zVzx9XQgzW88%s)F?$I!2>qt_f0t#8I?$!~Kn5Ou-dy|x)IK=>i8#}2PU`n#36XRJe za?7Ytc-jYkIzP{NY=@*S=LZv>0EjC~Oy)EFImsJr#@HLLdVB^i*(X>iPMyli-3X){ z%r5y}bdtEdHUHsi{LE6eu#T{BPee+c5VF#ELd!lCAi;{7zz$hhR?Xk8zi^&x;9Bl# z_|+J%sC>89Z}1!Oz63z&_dfs+fTPj@yM!O`#Xp8U;o&PHpDLLYZ=iJOl&;XS42M56 zTw2dr67Hwkwo6!srW1JS=?a5YpgIYj$~;XEuNp5M_XTrN>$y+cNqze=XVE5-ABu04 z2*5t>Dc$tXB@IV6B+n30vGngqy5&IGKLWq~ zI{fvVF!Zaq%t1kM@TXDfjm@GH|B=g%&G5yOH(vh^LVHC(N$%7%XvPZmDLUHquif2! z;fezfEGEWaHZ&c>m3Dg@36 zW(ZQSC2Nq;;~-DpWZI?g{m_Cy-|TKf14+GQZBo+S8XsC4FR z(Y|#o*F6sYp$G5rqDl21z5Vewpun+YJ)xC(GJK;&+xv67D)qp!kFxT3s=>gbhtlku zXHMl3Hl<2dCyTVwxvlnj-&w5`zlm{yGDda}0<|hV(U~tBAN+^Mvx_;fdxT{M4NL?ca4IXA#knv=F2D>a)K9w_iVg z7#+Q5%jYWf0G@b{2oGhj?K$$aP_XGQfMO}Vl)X3*x54Dzn~0;o|2`Ji5U0+{7$x=7 zWv&;GI5Nb85|7gl0E6aG4w( z77oSBZ*!>r3{pr*J?fhmseTG0KV_lu45uEk{_Y673QQwt@W9++kqU4{aCm1%6kuTs z^)sV(>j|-A-*u^oaD=&)j_$rrVKx%cg9m?XS_l&@~ zP(m~}zynt+pO7@2q8q(pLK)=OO-SNJYd-jv7oWurb{`^hJ{VxFagFaWHttTzVE?Ic zf;qBF99iEFaCyg$w6d12qIp$P4HM8P(mC$bX z(=~i9tV-Z4Z37zId8j|oLAJBv7gfemjptQ4g$(R_f#4oV$$qZI8H#=*6|xD z|CrgvO(K!|Ih0SXXJ=~&HQNW=H1wi*b9NOebpSmdlX)K!wDa)}lsm&T%xGx2jYk0C z`)gw`W?s4Eq&$U4-Jce;dy;-nfH$R+czh)lnH||dSKq*3!-8c^cr~JK{-*UBOmU%L zJ;Gbym%`)5>>OGD#M%0+dk<7v68ZFY$vk_|u_O7f&)=&NA<= zeICMQ(aaQ9u}UPFrEK`IAzo^iLR9!q1|6Il0%iQD@MERZ>ww|MRQPkqYJ`viIaX1< z((gZbUrD)v6mFlvj>G18<^5)FVaX{CI`Es1^zRu%Gwb}d4Y<~WSpEXg-V(MqR8g}T z|BR&r!C-TE;yBZZGlR~}WwN!-+!K!UYV+_zsb#U!9`C$GpBEs=tF+lD0%$_{zwMb? zDajqGe|`QQ0K)zwYNZ)sX-8Oxn3G>9*5gHO0j7^d{wlyPj-HaITg${@eG^v1IG&bq zGEg>oI;`*FBb?-1fY2v{S@oZ=2p?0IRPxT)kkfv{Dw0r9^U%^VEIBhcCsKosyY1S{ zZ{}WkMG}8Kia#O?RPiVm?cz_R^_UhSuYdV)YsiraGe)`of%I8AlXSO$7F%hF9Vb6; z@AGIwS8aPPr;DI(>Lf9_;M$&%z6323*K9^=yV7IAdXmdRoaa)UeR|7ehYecXiWb?- zKU;pky_xCr#eW;A#(@Sk$h?^*Vj^3F;FKqs$Q?5fCbh&&uKb)fs;v1LuJqcMPE8I-4yN`Tc#$LcUl!8IQyc8G&*(V?f@-+pHJ*Fz*FM*h3OF{3T+`vdI7%u# ze#?sopU$kb5cTtHt#KxZt?>hX<{<=noeX7@eFY1JTj;b3u{+Rr?Z_LjFNuFkAD>eH zROHjh7xYd!ym5I8?xS!WgN53lE~|-pW7F(!$c*TG;PN*7wYk!3m!>6FsFLz)sNfB( zTSnDAD^RX@@VJ=Y1J9nxZnv7q(`%230HhR0y_y;9=oLm7E=WRYre436QU(iOi`&=l zwKsdf-&3?08LMyqA`f2&tnekP`qv-g=9U&1t}&Jdyz1YL&R2`H#3!$0aiR{8_Lkgb zB<49=Ck1)UZ8ymkSlzo9($n_xZWk>{zGa4*Q9FYA!4TjO(_hocAZ4(A0tU+3TS8gB zJ8)KZ%@T)N@wG_c#1^!Xh?#I}_%mXxNgez6;_1U2bOG)aypnVfJaE{BzcjVSA3IqgCD29dydeK zWOT2Yt?-#8-FAZ(j1G_7U2La7N+p7G1LDUBQzWDwu}=q|EGhJo`rELxY}FW@TLEmK z46WXZ-_HGh&Tn`8^Z9$pbMv&i?IsRP0IRho@-5s4Aq$a`f??B}THjtvPKu_uMu`{F zH-@&8KxHx>lUmGb;jjd^??x9Kx1(QJG)C?wx?`4QiB=+`fpDsaZ`o#v4%;JQFl)UD zRX{^Uq^FOgUskHjQlvDkY4&8~@GRx#dgp;?Y}0ArCa%<~RNyA%x3C%vBe?G$XYXfq zg_$0<(0&fb%H=tX(0)x~$g6}beHdIi=wpBfH~XmEKft$inhe!++RyOwJ7G^{4~ox6 z{Wm*K7B9d5qhhpp^S@Sc2oDL=wUWE9@`_73tlcJtRHZtL;L?jj&5?0fUUfT8SsL;e zAoZ5piNe`7Yf0d=@1@w@@d#;vmnA;mE_rY1F*cfy5GhrklpDmF3Y?96`}z+NTC!Pi z;{WNgWBIMP4CTfq`g-xuwxAgA#Q)=E$DeU$C+~VnVKWj=`7+mV_{Z@m*6z2*tv8=n z|4fVVW-_JF@hIxwbC2d<{HSZ(_AL*2SI`{?UnVRsGc?Rf z=6g7y>HQCy{tpSvDMPZqPy`$_!Ko#hHmqlQKh0T4tp6e1t(3gyl}>xS?&GqvAi=gw zVLl2q&q^&3&+R1-`W#e+ZFDmQaNg_ZSDn8A-lt!~%Rb6^?w1X zOd}?F-fri7J$-+0<$6onDy1a!3iiJhAi3_kdweAD;s3wvvCj3X?m~;hx_cklAbmo; z1+-!Q2)bkw;s#0awAqkhS1`M=Q}XAmkSfeAR$Pwfm(QwQAH|BXjAO)oen{nHO)dX1 zXuSPZ0$-#y13Z=X4Gvil(dE|aC?n(6S zl3V$EladEjOP`bmXc3O?ITZtInMdKiBcTCQsHnhrIsbIMtyGgr!xBkmIS_XhBdc;SJA^-jZ-k& z0%u*TG{uK+j!7gqG>_fGTdR0P)xaS}a73i!&Z19WVgG0V7q9F+|Fn%C{mNTS32_(!tJ>g5?GI^p`w|m#BG*6Hoz+Fv zM_!F_e^KIYb0)^7W)EtG%$G=hLUs}LG<-%@XZj+4J-2##dV^hS{XgTs5x1W^edRxq zkLC0Q#vX@$!}?|abGe4{1}C5eAm&$GQ!a)3ub-?w(mIl34|$p;qdQ#8u|7(A?3(c3 zZ6I%bKIs+Kh_=m1_)3JTi5i2#FvVD2B$#Qij`1egsJCs%ik-Lm88=+eJRY|?~r1QlH#f4%>4%`6?!sa2#ECoRw7lJ~oo40u1qm0eB_FUX| zvyY-LeSGPoIFnUHoUN5_m4c3{K{0eNfLh)LT$=6liH&awgx;-(D>uE?i+jK96>_&C zMwb$c+qoWJOcHcj^){z{L0$j#PJcAS6?%^EH0q?yer30ZMNMn8t3X%+<*VxMJ@R#a zq1Y-JH_EsL38l;0jHSHiH+zEveAs?-5e{4v#?~BN{(w_Zb61HHqgRwgLdBTZ$s6qJ z_8@RSHU8)ECg=l=$LRM*H=INajHA+7j*cXqhJ0mvW_@ztB~x3H<+?+Ohn+bdL0Ueg zBwf1v-m`U?4ovz%>X!)KsqghfvcV#&_r6h`hnFh{^44tHXnFE?^NiYW$8)?OnQ5v2 z(hy4vV%_&JcViEsmeM!(6Fnr0L&t3Y;rJcG;3<2d%`f+U3qG1%6Ii%*{%M zHF+dF{WST1T@dUfZ!EfQxB!42m{5?@E@&8v0-s6kX>T0AtH<`)twm*{S^8Msui@%J z$2cg-cZjKd=qBGvI&~B5mN%@2AOZWOqE=*t=@4JAdkjxJSVwC6^D?}qK)j;N2Y zHAliS98|I+?aCbrm&gm`AiWpCYZn415M1w`D}7FcFs-LdWfm!dUIn~Ae8DHC6DFhy zfd5EG%gdeKl45`xOlyS9Z$Ljh*5NgCMosr5>ZrNJj`*?N;JOYOW@uU{y0YZ^*2ZL} zbz=F?mp5F~LjdHojw?tgs)O|T9j&qO3b^a zP>)nNx@59B-(0mrJ_Kj#gAmtydBKo+COAB?B65k-Pf<0STfsx}c*;UsFJn6^Uu^4{ z@){LI6PPU9Mk@^$GntP1!8&Yb> z-Yo$7So5quxTQ9eK#D`wl#DR`Dw{{@IB$rnd1N}qmz(J>u?6S-fV^|E8$VEMapXoQ zT=J!hb{-Eqkyq(UTpH=tes

Sylb6&$HjdN=-QUV;hoB}xE6fr%dVKzwM(%p3RVoB|}S*u7ol z5mPM`-s@Q+=9*HnoRz~T^ScNWM~N+oC_zP{;t*Pf_y80ODTN$vQfbCVy45%U2NS7; zRv0Y&#)E|)VAPIZ@&(^sN zxqOS;oeS6%OKh$JVit@CRIhT*`<4MWIOR1+GJ3zxunTN4zT^Xv(+7|ds=Ya`y-Po$ zgRB(Ov{H}Dw1=#lcQNGCxIst>MhS@-j43g_)OX98;cCW9%EQkECrDHMzWRv}<$X%y z1gNmyOG=D-@B*^TC%6Ujr{+WjVJr|ZCXr4_=l6aY@RwFR(fKneKg;`vHxqyJTM=XS zr78(IC6Roc)(P|yIv<%nIrR!M_MI^A)^Mp}Eh#VMCdV0S4YsNtJV#KQ(F&L|2E=jO zJLbqRf%x*iTH`f_D+|3j2@?n|XN$C1w93NNG2k$t4i5EFb#nz4bhNrt zM}D_oUgeL*52FZ-OHYb_-<8tumA?S5{{BX3L9~3|F(xe(j63uwO|r79{UP2Q3z6Ap zJ(PLNuwfEh>ROQOSjpnXY4j4&lmfslUl9T4OY;C7`+*X#3Rvaw0d~;$Nn`6yd5&e2 z4?@LagEMl$mdF{$*MohJ)Je#=_hsTrgd+gf*=w84;mphQ(8p6FK}^hu~r8E|Pv}$XC0QS|T3q z38bUNrR9Hz4Z5RhVuwXW9}CjNVKWv7cQ=)nw}`F;sJ!pOpiZy}DQzRfz9Zc+U|c7j zC>QE}Aw3+dK=!1paRCKjIAgWvSGVjRkfn*$!G$mJZ99d6>Gmu|##+#%F}Hl8?R@9w z(SVh~1pI=^_8NSd&r5z*eEn@$t1o=?O^b;mO1o4oST)2~d-f^D0QY6-Fa6E7OYT@V zCS=x>W#~Nl8ysXB`2g^gXHpz~bPtaXNL&+eX~tCJ#I}zMK zcmHTGU2H;viMXLyErj?b?5xnuz!Gi~Fn7R4%l@eZeAOEU#t1Q@fLtGGw(N0GW93B_ zuYmV@74+Br7Q+7m91l*BxzUOYXt&^*7F=&Md^aiTx?@hjDNm=`@q`S;eppJiOBgQu zbs+M+1dQtMcS=pKhj^Hld{k00Q55##H0K_4PKa+OftlWoXYv?~^oTLg^D-wf zj?G)2$N|!*Xu12e?v#Wt600Xl6Vmd|zgT2c>I=ERkJ5l#ZgwG>KKhkWw{tDSpb5GJ zd4V~K)%d$fUc<|YdA>GZ_STL)VATyZzw_!rc&)%kUNA%r?Ah?2Yh29DB5v9*L4!`u zB%Czr^Q4|~3B@<5U>7{jsmJm)7LDdTq@*N!srdSC!3SfWmSlYBmMp&zK`lX!vgrNo zNl^{P6U1KtJ}5)zE_@1|F*j&ia^HG<-ygKj773=GL?i``O_l0p^x-Mgqtn>-@@1@S zx(FYmOsfr<_Umx*o1(GFQOGkD_ie$~l1v#*UK(iEyGPkLZ&FDXbb)<`JcOk=j1S2i zz%B3kZR=XpY6=^)g%|W;>%sUX*)0VGp=xPns%+3e6Dn%6k>xVDp0Y17xYjX45xgtmVjE+2o)H0op&80|IGT17M+27UVFy(JQ%*^cS*@L ztnxT!v5^=4UT*ijdUW;sJ400rsye-#KH=F_y$M-FTFT%bE6RQ(+RShZ9xCaTVkEK| zq{(22TzY@fMRsbTYrHbk_O1f?Rp0078#R`yB|$%6yupo)J@I8g5YfNmD%3rBdKJ4v zxu%8HJ8sp~cK9hRwA;3_uRoESmR7p(*Udg=V#=a6wLW{lOtF)p@|M>+$F&4kcg<`< zfrC#l7DWg?yX8_YgZ`k*Q#bf6$C|9h#i+p};r~m8!7Y=);6LZC`71$|;DOo1HAJfg z#gu>+8rb*C5GU%srqVCRZ#pw01;f9--kvZJE&dz7WwOcFn~hHk&xB8k2Os%=)*T6B zx*TtL4HXJ4( zB;u|813Be~z7OTU(E?Lhz#N*~IJw5;PA{iN?+uhIjAm7B7;1w8zBs&*NtD_ReW<(e z`rGZPt9KXe`iANtHf*K%;=h$iedWz{NHeb>COFn^z}%KAP22t#pz@RHu76<*Cz0r< zth@FTBdPj%^E}BjDDsdjoPdwmmx3a=rJ<6e6ViuPgbch#&G75Rh>1<$jieIs^9XU1_B=IgNOrCGXf$NA%Qq?zB{1HHHYQk|RNjc_S@NsL{ffHbz?qk!%WCS# z4jUV$NoUB)I1SC{hJ{sHa5tbce50;?l$pK~@?sMkZl_wyVP7uBRZ$yfn$@aYD};qo zSNqvK$SSjn$pAD|M0t7c6c=0e~I?( zj{hR={Tql+x@o;Hc602&TqL5fU?M5#FMZ)!7@*! zi*<`eIY!o&*n`7X4#}ZSsxcZZ+d`=(TT=Vf8}A{UedR6Vp$GYtQ%6I1z@dXb0Llo0 zlfid1n3d+}IJ4%a@Wa6IMJ=mOp0#Md*cvRU5947Kvxz7l_jpNX4}j(Z4bcttZHdqC z_!B6^%G;!dAj$Q%$WUFly>?!u1{Zt7GHwNSd#dcyc$?26x3v?1K^-lg$=}|;@D~3T z73+$tEEV!avLc|=Z-<@tGbl(mE?j^g+B*B8P>H_gfmgBtU*0=Je&B1G#nw2C(Th&* zl%CkN{Jyqesp{0D^!f6<*LP&J3J+m>RPjo}`l&umQunK$ojD4^qNb-um^fwT72l3% zw@`uQqVk=titNCH+*Xj61%|9I!l{>FF^ca;LstT< z*1OJs`|#XtorIEjr!g9h+<4jhPwHakBsokFJgQ=hgZ1w>e<76KrBIl_A^7RD(kcx=4i=e_KW`nV zUYYD--0`!k_`V|OX7wDJB(0tI90(H=3HiJ{q$r*44>QEZ)#8!Al(sWXg{*Hq3vdiA zSFp~lDuoY!+m1}VP^ssoAGi1db}Kr3FPBYyeYF4u{SVgO0;;XGTNh4(Lr8-=1b269 zgF6kyDK5n!I276jcPm<~xEF#$k>c)7DPEjXw1wJtY4_Rtobms6objD|FDqk>cg=S# zV8D81KJ%H+WCBHVzXO|BVR6!jHclo_b4X6`KduIZ1uHq=I0`E7Jft&~#*H4$=qlyj zwfcj&aD8vbDcF##5RxwZ0oo=`X}d=)G16VAscYh@Eojp%c!rn%smu?r_>l+!)!<88 zHM1S$eXw#ahR!1dgQ-hksYwX1Dc-ufvz&|cSTtK+*36AYOo%!qimiF*flU+*KBv#> ziLll>It?U6M$6BvigfuImvH7SNl}bJ7V-WSj`onYi^P^eb2Mjjv+uxMxL)OOrLTAY zw&X=52Vtb?Lbg4oLL*{yGlOlWL>i483*ku@9swj#Q{u_3=6S2@8?179w z#Vwn_pbuAW2!4<>D0V*b#USr3ZHcJ36M>3^$y-J8;3t)?!>aNN!^Gp$Zba(=1Ci-+ zTpfh1t-iejP%}Edv-f(7SLa6Wy{!zyX!iAK}u*sTH=d^ zek|R2O%EXmZp<{?$|#2cRv6-0`drlGHnl~Q@y-B&8AZQk6#^79d6mvDVNp2vEvnc1 zfhO~fer)RMPpc0sA&d(|KK}yL{_WMj$bZs%0QOUJxrpDA=_@bp8^d66h&D+7(DumY zT2)jUoPf?U4&{nw!)z$W1aZUUVhVZM?|FJmwhmf}C`47D<6is@QT@S~;*1H5*{`@o zcTDo5a>LkIP$&>H>0u|849p+Cix(Vh>@f;0i>!!V_UE3s%_$&BItwtL?tPqpDAJA- z8?&i8fS|BtSKxU%7>Y!i!w$Vosj6R<=H(q}VufIoZ~-@Jl+yq@C2}96+Ss+jHKulx ztKkl~%56x6P~aL;R+-IkZx|PoYhR&KAsnQT=c%lJY&F-)mJS)o%GXLW4S`=kIJ9_H zaZIhXbVCsD;O_XaW)KAR5b8;{Q2E*4JoD|U-gsxq8hLZ6CxzQiFRrJmP8(>@LBSTWHe85W^qLpQh)a+-$(_qz>_w z71m!hsbgdk_RsMkx2&zDLxzQ6_uPiH77AD{KmN6e5Xh3l_-^&JY)&K3hO3aXKVO|M zl!z%IEg<(|)L3ybN!H*2ro9oh>*s_OmwtW7XEpj|Adz~7LEB+?rkEzri`?l?9c#_1 znD||kDxzv?Ma`3~%d7@y>(%C_m&RQ94hDpTnLWD@lAaDWC5|K&VTCU25LyP;6}XBPW;y{XaN%Wzp9uyUnN_hzv(K!Z zK2RszX`hK#4=27F>>lj--idAeGEI+?xmQ9G5Otygrj-CORBUz=S(o2thA`=T>@L1{ ztKWJAN{syR_sFxM4X$s7eQ;(VY*)9RN?mWH&{FlxMe{{l9zabQVa+8`RpV|Pg$PzU zhCi&;-vD}daheqQ+g^4T>Y@^^xuDNPq#kNSFysOw=A~{-M}{^bN$RH7xs+u`5u5wN z+~K@dQqKF!GVvgdMhiY85ECb2#uObK#iejFdF-24J(68qX8F0rln72*y*&Q<4655| zH+qa>X0p{QS_F#dEJ=!Mc!qROnnZQSW*&N>;C>KMY;QBHotx2Jxn|3DdSk&&2In67 zZ8mBPiLaRo=n@1La+j^~wEMnI2B_3kJ~7F97D~=MgkE=2J@tm&5bu1k)Rsxi6Pt`y z#g)I>H*Ty_AX6bxs4dCg%uk*FZE#25UhY2{-P46w=0%4A-*K>?W5O<;aHqbF$|xpB%!K< za5|%GUh?h4c?+Cp+x+3H9P(mKLUNB*J^-X+HW!%3J`Cw2Gj96bZiY5|4#SAZO#^PVI{rwVHY7o3EYM0qk zS`pEw+X<8rPe;&!xM12JF7h%&X0fD``qEWig9B4DCNm?j@NMMUZ^U(|-EhN4v1-J%OrV3;MCP*TLnZQZC1 zG*{c-n$p2Y!xu9XaFU%0Kkn4lT(8W}>-&}&t)~wtaR*~3g(|=F^?aD`-ZBuR666A; zB8+TtQ-}~iy^DSjJnAmTlJD4ohKZO(v7S(-ELmy1w}dBNv1u}HFHevBuvyQ<$LqE9 zWCqi0{1f=;Pg6Rjbe6B_*u!%QSvp7>C6Dd7(hv3~PhZb`NY zl`PT|h$aR&7tGNI_P#8+C7ZGqK%#Qx^4@nV0sY~l6jNl; zcZCsuui+R@GH3RNhb^($0~6bO=a>F%9j5Di?iAwxVetC*3_}%tRX%^spkEwm_`s_T z<%@hZ9BFBu4uWP~HNvDJOo~$UkNfOY%noV3zx%UTWtv_4H}u%_SbsTx$WH3%5h!uy z-`U~MV`@k?;PJmd5la!iaQU+|p_uNt7}In45`!Ge=rv#DPV*~G%*~i;3^@hGdl+uH z9*EZ=oxzMzJFQ+yw!XddirBf*6G3$sI*iHBftqZnBQD;be|`;MkI8lr02YG#zx!~x zo;?b}Z2Q=FLBXJ_iITDqyZ55ziuI&>zriLH`PsgO%b~CKVHZOW!Jz+xbgwQOEqe1M zx^Qt8+KSvo?+lc5?ZFHs*QS4s>iqBrd4{bA$}Z-3x+Z64n|4?va92;9YeGiF9?~%G zmSo7lU8>EiSFfUJ5JDZ#{9$T{=F4a}+&pJLW1SGr}S=x*?~)(6Ago2@>AtZMRo6j$1*wtQSR!JsB^aQ-Qw=W zekw=G%}&WEu^A215#mh%6{?IDQbU&}#Q8Vhok z*0C2PGzTfm_tgYz8nfQt{){0zDu706j5tR17#hM`JA&=dd+BmUZS8iV z5%?v2flIkkl=*Q{W@c92>cM;NdlOokLDrJwI*w0fP5q}Fm=%B3fxgpY(hB#5%bq6% zikq6Z7^Q9SR7>^9goO4Sr#F)WsdIynM)GTor=PLJnW#ZtGJ;9>xy`*;b$f4LVQtjh z3PzXXJ#M2QfSlno-;G~v2B1!8t$1@iuQQ1-8uPKw-e5*E)4u>e&yq{1o9rtZ|s8w-D}V{Af`@Q zyz0-pG3P;-OH&;2`uy4M6Ipo?_^y^nQ+5}oEcFwI)MJe|`-DiXH*4800YRQMeR@wg zh&fvTI?1-!eIA{LteF#V3LW!I+~y-Cdi8gWexr9$Yy3^t-MulK+`1o|cA})tiAk!Z+=pS$ZrNa-yPq;P!U^Y`XGYnbVC&?DC}9N&nn z7;nF!Az}D{M1c6j4(3b^5bZ7LCPfI2Q6|c!?F(pdM zRY7MHjD&?0p80c%R7{lb=kxHkOyd?y5FjJ}SBd+kfs(onOwKPzk;M&diRuivq-o>v zaeJ=U6*Jm3vVI_?oqXh8NC-Zfa8XE2+!rm$hG80_gOFfCM-{N)9WLZ^X>H};#OFH& zX8^J)xvkctCH{%}p>qli(ObU)Ms4aieG8MP3E~^raFA!-V%TnpGxE{)>YC-+1qVQ* zRSC_P{sgTBT08O95owXN-wAIv3yIf~Uo8}c2@&o4BtOdV?B~x0@%6ezd8Wy*OB5l- zl@?pjx5pl|4cl&l`*i%L= zD<*uBXj1}l4f}7$)*#!(Yz1+Y*Hl-HBQMU&_MlnLyYk7ozJi%g(m|5PO+=bS)J7|CAl}u30W3YE zctt~Y2?Zq0WU}uG#>=HjVO1PUNi)@A*fPNXRmra@8n3_M2dRu_aBV>>x)$YJ1+)Gh zCD(3C&a#6Z4~6MDtU<*_T&LwSh=FnHE-9Ad^y#kUyc-S_hnRm#tLTxQ06fh->n-^_1cRJ7AZ5$(3aSDD=DfzlWC`C=Wnh0)UuoXJJMdyB*@ z&*i^ZH-vt?Q+pG$|J%cNc$N$2&=!5d(Wxj_<~i=?h^-K$>P$3_cFXKOen<&{(&_;% zoxj^O3wudKmk!{ULt~5#NxV`NQ4V0*`qh&~qNP6h%7NBlKA-m$RR8HWE|8{< zocd-(-*dNnd6aan_Z43aW#4@Ab~c$%-o@y~o*W{h-JtgrWw)V?1GE)%MeWw*OqI8$ z)8)f*=e?qcsP;mFCm{ezYIuNDDMhKFnG8nDuisfbf51VWv>AlqUic7)^EQ`e^ZPK67&0sP@CX_~9xpo;dK)G)D4QTfyip@&U zgfjS~9~0O$jmXg_hT1+EB5TZ$NUEMv5KZw6O^kN4ntHyN={C!gyqaZSYme?gAq2i9 zp0zh9^upDD;^c=}hW(kHBJYfO3}=&-dbA6X76i;y5UxdJ+RCUm0*k*Xb%NViJ5IOw zD{4;SUysNk{gK&(`rJ5*qlqBjay{l%paeQM|Gt1h&NyYk5r`>o4!;~9zZK;2KF^5W ziHmhaN@_3R4$&aOFAI&+FQS1##6v9cv`*q-HL-g;Uf6W7r(0ZRG1kwe^=Kj4WiH5n>zqAZsk#Z1 zo*@5OfE6tAW=EsV_G9d11{L@^3sE9_bDU8^jsoU?{P0xnifI0W_h!fpiSlt?>$D|% z+1!fTy(;WYBEQ*IEeWA0EhSYszY?onO|ft3YM>_k4;A(DwA%irR<`TrI3Hb}?f}v# zLU^!Z%&q2KtyFp?(w8*zzpx#XXvxc-?cO6n;l2kuQ4P@wC{NeS;o+#ew`gKQk_}u( zKQ#dLCjmh;wQ`X&&lYJ2ftwydt-FR6|AbA+EEyZL=1H>!zvkivtldCvIn_vkj=h}% zD#jgdjB`Dy$uhyMgYH!AjB|Q$t1LA3X0z=YeF*+qGqxjxti3l6i`j5dJD}6XaR#R0-B!FPI}jvftAi zQxCqWFYPGhv9*o_CUjg}VS%Kzk5oGY?Qv%(VN?bY*TLA~IPlf{Nsk@~JR<*6u&|1d zq`{`fb2}+1vfA5?z@NC$K?=$7jE?i6w0Y)L4>gu^A6a=N7b--F@N$mp#;SRdcJqP1 zv3i)5;NSb2aFq5dsF}Fp*et$6dBB;`R{FR*nsrG}*hulS!n=<>y*el>lY@6=))h~N zLx9scv8je0v}roC9@SW^YmHY=OWARe*2Mc#gcDWp!}mUILQqc8d$s}oLuyq9q({=P zBnNRV)4W|f;u@EnLU$M-;1KQ3pM@{$CCripQLL=wMg zTgeXTuD&E3vG2Yf1^u zD)e=JqM@coQjpNs)^q9SfaBt@i?S5?yq|{+@Sggc&Itl?eD3=fK-R&L-{Oaqg4)x6 z0X{qyXZ;u8_3u0I(X7A5RV*}Q?-*b&{8{z?%a@)yeB<)ZE&;uI!MqBc2h(C&)zKCW zviU!ersE*xS~{#&6YQ+T`^y~%;iX?(+A;+9)BebSKBr*6F%3PFWcvBL5poB2r~Kdx zbk2Lf-`w`8=HG2>MPj1w;;SH>q3=Q^)oZCpl1E}Cy!}i%fV|5qGGr^@!(txs%pEWD;`}h`C-m<&@IH9l zEk7j5dwu0UDSa4SW@TCTLnplDdcDP|iJ$ zaW29Nk|C@*fn~<4LVc9(iHzWJKNFf9!gRwVBAUXw5X3@L=bp(EMT*w{O8nGDsX$2i zCsau?!Jh|kJQPp3N8o>(oX_u7buKQ^^Swgf>0GC4#lifSDJOmx%ObVnV<3&p-U=4F z*IuAsE-~ux(bB8lDt=~;$u(;Vt3<~q)_kx{GGffIJW%P;(xzpfg% z#=-c6#vx1nDcw0s7k3B56vZUf;qhn4ybI!%G5Y0EX(Vd@?52@faZ1P3>I{?^d-8tc zrfut)@#c?7e+z^Ew;yJw#FV_DBu-z$JLsYiVAsrry$>J7i0y7DpxzsfY9>lx+5T~U zV9-v7T!uUd_&pzjisT;2M+ZDN>G`y-J$$CA%Kh|k>0Zp0!ep}zZq;33Q7mU5K-w4M zFq}jk;4z(_o8aZmq*|`k<$oV;8^x#*8`i5MvQ4le+UOeNgqlN04!`ARP9sHM7HyDu zJz8~|KA*_dfa#PY!D>3oagimNUB?zjJ_Ba;K%!D1@I&aq`a^>X4!S-V$?#S(8nws# zxSy7D*6WQ;^um6O-ZXW3e&!j0|8(MOisVlrZpRw8t;6BC4@VC6XYTkl_$X1z98qjR zb&g2*%Joov$;gUEVn6}ffz1H{I-mbBBsvd(KgG^T57YFq$bpj;HHW#$Dwot`0M$bc zmS=ZLlnV=xJy>t<#ar*vTDM~<)_~a(lpe5Q7T@rBSY-FVEYALF(ZzQtFJ8X!v+Fm< zObqo*!7=+oy;i}@Fnoqa(8u_tD&tm6<%X2+WcH1w8^ihcKeOs@8a>WLJ?=e1bLizD z6psmaiD6|h2fso^t+Z&2CM|@yG1wu+y02Q!<+iCwbZaE*Cu&8%1Y+?~lTaF;ZCIyu zFqjl4?ged5t+{Y?@(1?rRKFcqH(87$nzbzex{Z63m`ALSn+@_NQTwhERC`BUq8rKs z9}S1p06D%ODI;^!@rerbxvQ-c&dqV(Jx&d2#aC%S@h@%zj{V&O+QcHCKREUBbeH6p zUCrAY{ujVk<$L{uwd7wXiC=ABv@`!)VL1KotZ3rj$$Nir)cAJlN?ozYbb!=Ru6Ldb znY@}`M3##7_$M}Vw9@oG1{roglLJ8TtFliAN#Z^k77U+O3*n!{!q#$E43XDHHH>i% zOACqvu#FDo_SD471mI?|V@{m-B^o_k`JK@BJ7Q|D8z6g*y$Z7=A~6&p#)Q{G44bar z2eXO^9f#O0zR6KUo|LySR63i{ZXQolrk7c){SEe8hsSiPzkQT7Ii;9f;Xctn@+PXS zYDJSQ!VUy$x3$f&R=1AQJD|~FbMuB{w1l?u396M8S%R`_MEMVe)%%~?JYL~^|A>6o z7Ihjt>TFaa&Xrs!vTYvqL}Hrn;FrL4!XnR)NKMN<@?h?!kgj89@00AqD^*d%kRu zK{0*t8#?@ZdlQG)WW>UfjxwHqp%?Df1DuMv~P{nd0wL9$jrVaY}M=Af2*O!PA694RO#QciB!^GT{EKjB=K@4nQq(6C)b zYJmS;sYu7O7#057BIAIiA~7W*gMI0Q&bamf0J9<%nQmV|(~S$vaJSD`5+jduc)uCZ zuEENWBiF#6^O&p80xt{T&@6g9I7Lh8qz=f(zj$t}YFsd!CP%0x-Aca+$kLfY{zH64 zqonmQX8~_}KwMm5T{s0DREifM7rBD12FjTh;n0tsR*M`Y1#rSq&%`Z{xe%o1D+v!4 zYN(cTP|i^ZhTfGVSZpj!&0xH)gwhiGnziVw)u#<30& zaEQ!eB!XztyYehxX-f2gF3RJZ5FfXO(m2)Qr_;POpSFd8pnhV_33NJ8lA_#oBgHwQ z<#%)BWR6Br7@4McFhODoi1#N`66(o{VKPzJdMgNv2lw^OKX327_GvP%`AA?X!WRFa zf0&TCB1#$zov$z(ToV;2V$EW_mxA(ro5G|pOe|3dkY^pg-7I%6TlT!QzI=>jX6pM_ zgyMI4lAr+EJGg7Ll?{3+FikNfX7x4?1Dg64OW=}n!aJo?qejT5w=(izQDD|UobtY) zW3GNrHO7tL1tnVpx|G#f*Z!in&6hzli2yLTxLwT1Pc)Ggoy~4zl=2P$Ke~amMz|Ii zbw);aOvizgGB}nO9JS5M>*<)##8Kt8J2Sa`u7DYxP4JXG+p58W71Pr-N(5|muyRBcvw3^h&bY$!UIXiWZ-~H z=WqR~u{aWB=Ct-CGaZ#snIVlv=>T>de*G3%_yZV-5-o?3mcqity6Bz_VwIQrIw?a_ z1(K8!!h<_lgyE@r&<}ILW&=vo+}Z_5Gtxude62@l#C}K~l$SF&qe!Y_;nSdzWJ-1= ziCp#CfPD>nl4QqrP;QS;S?b^?oN@>BMmP0=A%JopZO!g^MZFHgZX+WTaSuZGLQQzt zW8M!eRsl#zS9DCplq-0u+$qt*N@MVVM?orNM@r-b+KQe%gQ?CSwPJ(E(RHvCn;MdP zXIrx{ZP;OgP??Dvu(>G#?Vd*R?%8V@ZX5@19Ikbmu?IC;mu zp;KTFn6+Zt-$Os^rze2dL`P8J5P^o2-mzyTI&lED9 z5+9BuQ+9Jd4_Qkdac+}{4*Cv%Mv4@oa!Ws=0B<7=TI(+sr%b^|1B>*T@03733&Neb z9d;~Bx^a)p@Xz+`ndoo|hBZ=D)cuw9J`|6+5{bGrOIlbt(Y*DHiPuV)`zLfckOIY+ zPgIihD2&OYNZDSzx5b6TUV=0jD*2b z9C!ieObdRtP}HZg)g0eRCXa@fZ%bBQ_K@P!AbRTFcf^V97~;L$CR*V)wYS#j;=2WA zZ4DRRug>vGT->5LEQ-ixMwuXR=uFwr{#GPV-@P6&IiLsHCdrqyAy$ym4(4L@g+jbg zK<|*Yt@TAjn};gxrc0kF{+Z`GT4q0*+TGlr#MVEhq?ZiX(dT#D$1fpzibt(Wa#}Dg&Ta@1B!G@DD(lehiIn)+sGB1vgG^BW7r@`IiMo&O zLW1H})JExqF!RQhlOT*?6TF64R3N?Yf>9H;I%vDbQ*bhSzuID35G{likXd1xqu6A@iV9Hcro}v|Xy@>xHhl3_z>{(P{i@@))<*6XrW89n4+#Lf{Dw?A^&`l zO{%0t`Pb*)g9=DQ&_(aQm|D9&`Y5%8Q~kf5Y>AdE$p7S6_K5MS+XM@eVf0oxQ&pWc zEjSx^ANI`?`uyx-pyQ*?;C?vwmDkyb>6ci;2FvC!wO4KF`zXpCN*=@p2Y87!v%}@P zpI9VIy7o5%F{yhJ=urjc^bmsZ{U@sZ`Nc*zMuwD9**-nmE-`PqLCknnW1=#z1hco? z>GagOwkZpA)__lzV;&TFJ*8q@Yi+0FkU9+9g5FWROHbPn5uz7L0Rc#uSU66dmnlW) z%*1D}A)BkrAmE-ZV4}j~+Pzt2@mGDy>^Hk>3zx2{PpRK57A?%aj2(5YJS_S7+gNXW(!p!s~jSrJS zugs)Ubz(a4_&A{h7gW6v)^t~Yl!?tFqv#7EG|-16PAU>r%5CJyT!ET?aLHF6z;=6x&mYyWS6mX6vVhFXg;UlZAJL?!fWE_5QVqs)(IZ1>X! ziz2l!q0wkpK>$=E`Ey_6PD3&sNKNO%k^~msYIhmSu^BkO5x8`|@oX^eC{yByT3lOL ziFIvGYqBcGl{fT(m)K7Q7r3iDIQrT_uvKqwc-k#?y601|*p=!|+Y;d1Z4I9XN( zr`;JPuJzcm-kSF13hMX=y(=4@0`NkK(rYoP`5_`&KP9H(fcY6xx-E?bY*E^%u_$gsJ5M7PI1U$S=-Yfm3JWc7;~?YX3i2D6sT;jNTuBPlvU zBkpQ6B6&Txsg0jrXDSdrL%~|#Q-3TbrdMpYDxlUla3`8@K|nM>dY{v@;^oSghR8u* z`xF{-aGxS7@_94qiz#H}Ok0&+&^|qX2WG_#z4i?=eqo#QYXV2Z6W!65nW58Hp;o7h=kQs) z4zr`x1(pq$_n$1`75N61du-iADi`}X|7uGDs7^Gjt2IWw%xB zHvL@YQk^L$$okOH6xZ(HQHAypyK#1jNsCs~iaD+2eXZn60$_wpGzd(HR80bqduw~H zJ8jyPpLOE`{)rw^j`u&3YD8W}LtvG}G+=C!Hqz-R1f8qLcC~d)n2aH{T@-C(0WE8e zBFw$uqqQ6fZh<^!`wz|-GUvGaq;IIZyRku0GOeaNxY(OeKVyHXzI>v&A(7=L`_<@! z?^YfN_lGcA&eF$I@s7^Z)id!?cqUjH-5+|LcMTx9%3jxab_EJ;0+JuB&F@mDeXIrR z%h$^dF9l_b=cF_I-W#x3^KZ!MgYvs(s2~L)%RiiBl#94ghOu=SO@@4xnYT}q~_?C+cbZhpgv%;A`a#GdcrBT2rWzVNH4^ci0W{o$3p9tTF zRG$;|D;jo4wNvmG0-40%~SA1M;SBQjFgGl_5Mbj(oopwsk zKI?R%KmSmUA!*iwSHPE;6KF{bOs^Z#a5a7z;o)!LCfwxthanEJ(>i-D#BbB7z+^)Nsn2oLSoB4b>>f7AOHa44~Ate?AHk#y4~la=8)>H>-9^tLAdR% zf08Vz*HmYWvsZaNt2n}_=$w+0aJK67F=DPamIEvTE@EH&J zsO<5j-NbEG`AgwI#WR~dH9ffW4$-Js>88i}R&;w2Q@Pb8hWW zoH0@+*PW&f-w2Vh@$8l4@7r2*3OPa`%Y|r>#~9arz7u7Ng%W&PBiAk))2%rU>XpBY z*okKnwf`X1znvW;TNfq_bCyM90?dinuzT{Y(I-sDCGvx{+Q&hlKhq5D4XKuP|6=iv&$K{w6nCxsv`AJbuY5|+zEb#qYOoW__x1Y=Q<;tuJdKIu zSHVZ6qwqgUYL;@GyhuqfWZAKqf^H2hUb*#rfA@PT!`=1j?le9f|N11bL3Snhx$m7$ z+`lag_g|FcLUOJb=>D1`%p7~N4y1eZcr1^x2B2wn+kEKRm;x-&=(v$$5bhGM{*bCB zIibpZY-wYf0@4nj2@K_?9Urq(Ia!ZV*N+cZ|A6;2^$K?}mkb&Hu{?_1DT0gr@LR9m zA8lLDO~ryQ_A9-5gW9(4o1VSq^M9Bj!#Xc>!V1aH$~kB| zE!&a3x>Nst9rsoDJn!f)b^P1k>iASAwf~`$|6f|aZ%_Nv`@1#&*MoECdEcH3Z`{f1 zAKr|CbnNfawC~-9peiTc?MV?{{-8Q|F@F7S@9D-R@$oGGO%UcC-4D!8eY$<-G6XvV z=6BLa*+{$1^LRHb42Xs>>aS4CTQXr;#^;eVY{U@KR!7k*N?&{R`<*SH# ze$(pqTufUG{k&_M^3or4(O41kofx-Z6ML808302W>dgASKcS~)z0R0z6K>)i*+SY(I2DShOHtngA zyr_|tTcJRg+;=JL%>z0JpYS%jR|j#quT$9FKi+i-&rnG}U;{wI70Eq(QW`F7Pky|T ze!=#X`JcD{IetHzY{PCSXo83{;etW%Kb75ksWDIQ-g7P{gshQ}wuq^CWh}lu?>=7( zRBv{YaGPy!r#CISh?)6 zBK{Pc8s|EVSG$#r!v11tYE2Cg@yqVUoCH zt3U;Pt+ryD74>yll#5;UQ@wEzP^9OiX#n2e5~Ca-6F!4$g3m4W)HffDbT^*){}Jg0 z>HziR9X>v!ib+ciH2nD~0flxhGVd~y?be?+6&0bjHFzfUG`^YF_rnLGcYnnFQ6|gb zcxoZaJksRhg8&Y#x0(57hWfz@(c9a{O}T+q0k3ykx|HNA{xkkn$)l)`(cb-I(28ls ziln>1-OvaXjQc4lTRb~N5U6!>7DV^tf+zS>!^Up^R{!8MD`9(v8PQG--u38gk+*iu zYWMqmsf*8--zil+NY_7&HMeG-5RihUzK8~~!Guk*W$?%52ON{yiO?r0Uta&7@i3Ug z>-Ku{+lu4feHj~g_F7!_7=I=?3Ve6y^PXyzWl&|FZ9%Tl@8AYhN zlH`>lNtEg1&$)Jnso0VwJc`p&E)m^)Nf1gbLxh=!l;;4&b+(PG=g@)~YJ(ZpbtVASa=>cNS=j{;Ajm*pI63i|p0gjv z=9r>#{jiQF#|q~8!+%0$_7AoKq$YV727&Dh2;N!)L)My*5tq=7s_5E2%joWd?#=F0 z>23o5JIX4VXD{{|c`lL@eHwr6v0??01D^b zP~P{Ly56@!)mXf6wk(^FYPf#>H^fIJTTZytQ$PDKO_sd}ze_{>Nx6-dgwAH&gVcu^ zxcGdaQ5sM#42LPa#&#Bi<0J0lb*=DVb37v0+U(d_Ji>JofsmFPt<}s`2vNR)(@W*< ziM?XOihaks!?s#oI}&qTuS8ifs^{iCOE-e>GhJeHOeHikSqgZ0((eW`S~jAJV>6iF!Te}=|yy(`w2Iu#s6e5rIz_Vv=+s9DoWs7F9=@d8t7o~mt` zGL}gZDqw&u+U6bNqhdgGHGNcq!D+|(=a$fqFFp)ttkv^hr&O{4SB&rU+r5R=d0ISQrmrEv{y7;=E z<*3Hns>|UGbDJ&*oB^;10UP_lB8idyUE{6G@hP;fEkvS}H!UirLZc~_?}_OHTwT~$ zBW~W?y;l#J9?m5pS5zc}qXlA#L=LnsD?*Q0r48&3=tyIHpYC180-2Y=$bN4OTIGmr z)sY-qtQD+%EU5q~zR0dRIZ)YXr^NK9zK>jyh}ROY9F5>(RP){|xIPxNTvFteWcMg2 zOB5;=G~^amjhOKI{`vnBho&Ub?Cav}ATa%ByjhPtLLkAoB1MDasRL@v!3zE!c7nol z9Q1$}p;84i%+-QwEyiCCWttsEa>;!dv_Wd3y4>3&Kja#!P=z@G6^W7P=N-a4%s zbe&T%mGmTbL1C3GhQ3+d3?i$%Onj$P3nobg4J(&6Zhk`qi(}cFPz*uol*r_?-lUE+ zcHlBV%eQ-mC41wtRel}>L=bsS8`!z^Sl;}7vPp6d-r zvX+8G^baHo(FuOjDi+cq_Gq{6n;@XD}g!IN8TKwS%3qZXUeNtiqi?0 z|KTgBM;=ig8*+|`x8u1}p{16{v}@*97d`k~Ig*32knOFedg&XbReeu@gG?g3ctr)V zQqZ_MNR2tpzgJ(wh_Y>=gTCQBVRaSY_VxOo#DjWUd1Bt;w?%>5>TaF)XGJN0$=;S_ zA#j?h^OMS6v`epTdJORlL|wC$0${HgmAw7-wnOr<48gh>A|FUufzFoa@u6w}I%BWF zW!$X(W^WDdqUREPks2**W}`rj)?YE8)~k636;nFDNq0Qlp#~w-1N_krN>(z2`3X9UrTI zt-rVo?p^xG|7-+_UpWUZEN~*CiuZPI$ve*k*&M}U>kJfdZf#uagQo>y(J7U4HuKAcc#@&r0%qc%1N{b zu=~-JQM_9qQQM;eNj>&57YAlcrUzVJ*y`AbBgMgLU&st3pKv?ZnF$*;F9)?9Qw+B5 zs>g-u7}l8Lzi;73NnN>vACetD3;$e3dRYllbiTKz!iC}NMIBmT4PVOj@%RG<->tR{ z_NQS)Ru_aeU*s_njKc?;mJw@uhTi_)KAIi8k@T5!^xl+DA?#Bqz1r)-LoN7#bDGe+ z>c@e88>G(aZBje6uA3Rb6sjL7iu=PJn$Y#&PaF;qxx=4tvW@NGee$0p&(jb@am}^s&SaXN=@YvrM{~Bb-Ohc&0q+Ce>Q;TisV@1gh?BJHZ$UnjJTH;uSHjyL(gG zmvbFgpJk>0uNsmQRvUlmFZI7OlcQBSlIXF*WVGb>OCj^ls=Y^pOp}v)QB(J(#W3oH z?;kYeeWuxKF~fp@8C2VIU7+W!CZufFu2|ze)#=Lr_*jNAOLR&6MNl+jjl#U|?&7A= zMR%yJX z+4-&fgt7eQa&RQ$!|qqf;}2JE7G4=2_G>+_%W}tl?ft&Evp<{scN?4IW2r5h%!s1K z4hkvy#LK*t+bR7Y`^CRJ_?}tFD7;pgl4ZZltGb<1`>|j7%WL+9M8^Hvyr&QMq5CtJ zcgCHgcR^RLC+`fz`wPDfcaM54ypTM4mvd)kovPaZ=R4j#EP43gw^>+G?C=Kn4z|$w zrS=r9cbXiT_9>D7gRl9xg1}4-QVOeurdcs{M3oTS*4mQdIjUTP??OdFq=S4bLA;z= zmYNM<>9L=Ck3qzZlzTOw{Dkk5*2fE1=30mB8w3lpD^WSHPxV`ekSpZ}qZ@+Zs*dH% z6H5wkQq1&|)@yUD+4nc&&%F7h0!6}6riMb=#!EDgt;XQcMpB>9Y+YoOAu37&n(v_B zHP>AqFFy3>@+IlF1{Ou(I@(A00k;Nc92#KV@zsYR1sYD4Yx-@vrjLY4AYU=L5Pkru ziJPk{Y)J>pbzsk~DUQ!;I^Tykf3gVgNPD#lOsB^hB@a%|_9!_mM0;4JVmwRxk#Wm# z9QXqrOqd;^cqx`fWaz&Dn0rhjn)l-P=#y=X@Zt~C?N6%NO0KfuX*-rOSsoQYzi-rM279ZzcljY?${cgN(uJ&Xzqdg z_OW$CapKM`*!QI^R4(%#?EctfNaYc@0i^^m^W!`-bM{)Z&))OQfJ`$8>lv4dzI?o5a*iO$@~$}H zCIr5H0nH~cr%<35PjW$rXxtT|Kn%O9OCnLd!`7&c}+94pFplM|^6Kmic z*R6WV)t3pQ_I3`I=I&E=%qcgWW7jP&Ki#W(S~>kqZ7PZ%Co zkg7Mx0~m4faCLJ!86IF|?~&(~SGr?dxY~x>S>5WHR~NW~q^Be~vQ%Yglu8rNJ5ArP z(ReW7FVOEeHj7&)Tc`*3c>!W#ONI-)dH0qH7g}G+6Bt@!rY1j70Eir?KRj2_5Otho zWSXWcO37$$o&$@XG|1tq53axT1$M)BN`WDpK)hkJWTl<-1l=KBD?#^V?al@oqY@Ka zm^z8M!0@}h{P!}4coNGS;h0D4?D>LQZGIOZ$cG`qLAlu8v}`Nx@!#e(&zZ~La$oe8 znx+iFkpe;qrH}ZtZHh@M6fSU#ShzxpHbGcd91JjSzibGX@jn|u-Irk8XCB}WbnP&@ z{F?tCCZdrGO4q2FI2G~MiNyT++)X-vAD!CI{C&|2I)5LX+VAAyum_#muX61_dPFRK zTf4LNE84nIKu9wVd%p-cL83FmxiW%Mtc&`B@Jb*Cr|yDWBM1zoKXRc~lHja2<@8ub zN6V*tvJ;p%Lu%BZ&q!f9F8884Xl}Q4%8?72_J-=k9ivvUQ1x0?#(J)am$xBF+Wl#XRVP9-wN&Bc%~l<1IsrFm=hucQ z?m9C6Pl|%OnA$-=dNnBStYWaVqx^=d?IY^OGrsu9$I#UXGcy zbM0Y!+PLN768bNHKNj{lHdh)UJ^A-WR~GSlSoUK<@y!Uv0Au3ugQymUZiu=d-sZLm zQdZuXFIJ%eE`n0&-Mxb*)ac(p7S%48GLUcF&>Bw(bju1f*q2MFN**bDB`aBXqMAo4 zjrWRkyjamI=HQuGnopM&>ZNcvwCtiisqN~+d9${fqqryy{S7|7TX6C~W3gF+gY-A^;z!>l`Yzgvb>Co3P{)tB>&qJ9|t zt56p1kaafx-bzY|o*>V<*`}cdhryKet!&)Ng`mz{aRuB5gwjGldd-|G!rj% z=Wgh!PszA`SQIx{D;>haP-)Cwp$e%pml#g>A}C>k@nx#7I)aKHK!pt(-H{1{R5WzQ zeOFXL`a?YGYc3m{@ybK4_OR`wEaP5~q@>Xs?y^j#MA9_*i z-a!4KK?N2iN@t0__QyGDdqFUm@9z_usH6ITiz>WNI2;hiO%T_8&Mbni+8If5TQl8N zrfGq9E)$amS*pteKB%^3=jTIKXlySdDeE4OdmBi_Rul>ItZ;#U^GXrRhj=Ek`Jg8u z60@N%_Ru4zqaH!o>V_*h?~p?yGglgT0&-ymQtAgmPWp_paXbUH_aOH_eGcY?LiD*+Z62pX{d{`D1jMjqHd2vgH8g%+N({qr12E`quDb{#=aT91U zxKa!=7dAbj7VFBpNQ;#>8U3{>=g&BJ*BU$T(|fl9Y}{9sQ1#=VsYW!|wE5csx7)ze zMDwB`3?UOUaiJwdu7p0z=M+|UKP_ka>hCfp*y*rh$5I8S1R-R3;PKmMH|1{-2Ix3brZ=#ykC_!Gb#q_4uU~!g=bN#4ZE4`?y;#bB z&!1@vyr842uW?q~d#B#6x?&|#GV?V{CIj%*-ZI(ND^jBH0H6JD7QsE0NrYPc(qhK^ zJS%1-i1FbDw(i6zKV&`UbAxhtE3*OkCfjwVSO>IspVc%MxozbONtN>&k{fihm4J>{ z&DAbttH^2ASdM~e0cr|wYpgyGf@x|RI=y$dV9FAf70MZxFp?-yM!&z6k1Np}t!q_vbu5FdwSa~QUCzA$|kdaYvNibr^$O$Tf1&!BPp4Jmnjq z|KPHDtnw&8Cla+KJAk%M104x)gv7{UM-GH=n8_h)5vvQ)s&t!-9_$Bn8}SairZ`Sm zj(pG5|Nc3+fuPX1&*u3m*9dfC|72}PBiHp&c)#y+GTR*XGlzl`snF zUM$hE3_yNi^4XmoqCOK_OXVR5;+up6XeKv5SjE&U&SmAX_yC>YXl8;X%I=aZ0x{y_ zwGy|fe%*>q!E=`v?01acVJPTjkzoMSlY(=VOf`s;n*n#LnAhnOXZhbWp0gRU153l# z9Bw7SWWdTL#qV7(WV)mWT#fgGKn<3s&WW3bUqf3>L`-=Q?m!*b1n}}LftG}eVVK52(nC?f29yWyZBN!$ zr9|f*&D>LeCTAEE)=_do?&J%U9dTaHa+;4{dTRJo9(VFsE4%%7X8n}f5z=x^u&``R z0jHw;&f1gzG%byT7>BtDh_!@a&LSaIY=qzL%wqFXum4NUbe-xNZCYoNNFw z+_86a*!GR)-(FEvj6LQNU%*5`PfM=Q}`x<@_pgx-GKmuUBOAe<(Zu8(n<7kS9bjm{8NeD4Mr#3_GL~78KC-ok2XPd|{l~DMl-|hBNi;$!gVKrU$Uk8*vc4LC({#iV|mAp(+b zU2=_SC!AUxPDqgl@~CSb81)6-_4q+uN>yJuVOF?L<@PVC*F8Xq zOX%6Kx*i;WRyDT*tp^0zoVw5ECQd*8v1D@GwGoP0c`JXD*rtXBLa&T!Q%2owFba zw4CecaSg(cSpW-=0SHtBd~Hs~4fNRtQSE}*xhwUD+%#)+Naphn<`p)*^u?VF;T)4u z&g{;i?~g7O(Z0#XK&LRpMOi0&h8juUY5fz!xE6oRtj$=`#E7l4hgt>o;i}-+at8FV zs2flXQ}<+jiV#|jeD5t|minC*X%`I_E9Z>hmzE25O~0}dJ0 zt<_>eKHqFtw$|0O+hyisqDB)RJk2;O1U0Wsrx%gb*aEyCaY-;^C0Gw*OK$M|062f2 zFkMpH5}i#J*8LXu#ZtKYWI~pvJyh#T{}E&N;6T@4pCct}!|7PS?~@|gub45#lLgAs za^{}Cb_$dPawgk8+p29&nz8kQgsInw2XL9zHYX~>TnfxaDgj)TCSTPftJpcM?{;vTv;Ze_g;-)`)yH|S>*)LdRYPUyT=sZBRKjFUfpFN9Rl#4SRs?|)do z|M$kIU>btxceEAK2|aOe zvk4tdB^}lH(k0v(EN$P)XHP}??B~MlINhy{Pv3V;v2&AjLNIK&mU@_cs>8k0zHtB|o})Xq~=* zI!D0;(@UwnFFj6bS4uu*f_u+>?+gP1ojSxup$_geTo+hrWlwPf!C?HWxg_XSFTho@ z%I%S<2MV{gjaH(*?L^d(nG;~--EIlqDjg68Qb1czh>0K0iWI9Cmtf5j{~rzO`Ptob z3(}Pobp72dL`xTiki`(n?ixIXg9h<$sbz5j=v`_rGO&)HTAOita=z1o-v9M#S?HKNTxQZ} zGTc1e(PCaBzb^wumqLF@pP~j8|C03Zyvy5!V65t++<3 zM&IJ^w6;^vVu0(#?Q#nRAXk@3ZgH!U;L(O0)Gb6e+D}CI9#?k-%l%fjCkwBC07h$8 z-cFI`AMJ?TnQpoIy)6TjeIe;-vxoh`fH&L((2?4lwjp#WSYd(6qAI73#3Xl5uRrfu zhJHtG+Gw@;wbwSI&wGov!H`N>Z>KXf4Zxz$;#!F-836=+6%RJu?E+@?<*K-imsC z`u82ehHwCOxm(IOR~yEsw7r-^xZZ4E)}pZIdLsH|54IM(WMOZkPT1<&G8BNn1z}eq^3{0 zuYcsdR#cVzp=k3%o=lXz=bOFS!G5ilZ?i97-MaG-1=Y1lKT^;BDA<2AONgONhJ4EI zj@RaCYnGChhw!mV9PK&Ur>RWu{Vh}NS2G`7oM)rXJ4ulvk$ItfP$M!yP27)4#@q70 z{xXU)qz>XeAO8R>G;yaNnkdy)7K}htBH%m=CalTH$;9Wd;5wK4?QjnbZJB`tI#7)m zv9(r$TW30Ke~vIuZmsJi7u2%Ib$J}B`u?5WTTU4qn6<>VyXpqZ250mX|KRCBeh}X^S^|#rqd`=4M)u07sQ=x zTc!#^j4%hvHjPgTMeLdPFICC4gqqxED)VVu{)v7zr>CX;6Yl-AIt||A)x88$KV?c_ ze&e6#V}Evx>{Ho$s%{7`9s0931Y?nQ5r!64cH+T34tN{XS!)BHFOWj5W#LG}F(mqoc#n z(UpTt-LI$)6->4m`+|7HV-h&g*G}}VU47R(IM=AemrFevXpc|#Rwydb`m-2_Y!~J^?8q{Yx^km-H-jG;}Q7U@*6YsDzG=C!&)F|GztFLBd9RJoMoC zqX$$-53wIS!hZ0l4e15a1EhzK9smL9-++wr;Nc_G$7oN0W+Ft(f3yKKKqK;>86=EH zz>Qdsuz;GIlWVMt-93@jvfE;tjac%%R5}HF(^k{D=c$)}kV>D2HMR-xrhN;K6sQo8 zsGbPu=DhlGiMN<1Yq5Ic)%ikz=NcRM-F0zpi}WBo`c`E!?&?8W$6^_sc8o(&EMK_c zIA3Zfd@v%>jT%aiCoP5(A({oH5B&!i-AnGWX?L(^dUNqqqO(b6b-YsSJEtx?>3(18 z>W@U9@3QY)%9iny=*i8xN8>k#+~kw%5VxsVSTZs>cjZ-wDefA7s?VB>QKZ>>n{~<; zEO$_*NCTl-F`=T;t=yuv+fM|@J8Xpw(<{ChLQu*(r1)jJ&iMsAOg6uL+#~OWoFS3b zc7D>#bJmlI07!`jo@p7r0tRk2R$OV@ivSB>=`ZVoAaIZ+1cGrjn{nrQLyZ{Hyyp@MzlaerX1 z39}B$BX7l~Smx}0$nSsc&mZoH{1wsJBjRRsOQtBzwZ12(+04JLNG-l~sB;WY4U#7& zpKsQV#yYcdW;cHWD2WChqGpFVO{r*3;_+=9@kp0Uo!Zd*PVl8Uj5L&hCL0C<;I3BT z^0}3q0QEyYA9Ne+>CnK)UFrGV6K10k$=92%`_CnhTZbAp6hx2fQX@8b2zRu=HHgQ6 zrRs!D|LBvlldg!(^5lQS5tnk9u7{54iS~8j(DiqT-xHm;2s)vWHj8f{sUiQYKJ1al z@)1WawlC%$yF8fx;Ua-U)P*2HVr06=P4?fHS#!VgS*3G>u5w@7t*u@Qt+DQ*7{^LP z_#VI~wqD+m7F75qt4YUBthg))JrJaEK5irH$N#;y1`84vaR29y1ljD3yxZZ5!iWMR zdlW^bbelEx&7?DJS$``Cg89gKJ+twML`lrcK3(0@PSQ(-RRJz-dl~k zZjgjhl+DP=*XAv*Q)AYT+ydgslLW-|w^Fqp=eyQy77iwyJbr&iiM~tpI8|yxw&@sq zQ1_^YU#t7TEiP`!?L4-7hg^iN*mY6Z=#KCqQ(n7eie~cFH2A&xdt;wiRCVI_#{Uek z-L;|}abY{fb*)9EPgV%zI$B1OowNPu5%8;EWxu~WXC~ipP&SSEz?VGEVW9n#m)vaI zUUgo4>HtQ(D}YQ{Hk}s{0_CL;EiZcD-H%%ogTh(1xdbK1$n+n7G=K5lhQlkMM5er4RtMc z;f=P>J$q@JHsqVN_l4E0DbW_ z)q9`~@n=MlAk)UTcQnXme1UG=8xCz<&a}e&N?*8R&HD&~ub&9twIU%Y&kDVAl^iPF zS1UD~iHmSAlFx2rSi^Nwda6CXXwXgb~(np{$XOZvO)v8F{tU;VisRqs_Tu;C0 z&Cm3l?tuHT&?0vwzi*u~R~MIYEHBb>8`gFf*CmWr$&*?VRH}+E-F1XtrTtu>u01;G z%BayMEstELB#+!e;T>NZ@Qc08Q_^s`9}jKB^~;O##<@~l?7A1)0cw=vT~78u!Q`HM z(Cg(CUgOR_$89Pn=Z&i(*Wd08cYm;Ix7V3?lD<}R^#_TcCEJkWt}pa@>AmA1PVs8G z57#9+cJNv4W6oJAI*c>2(><=AcjApuT4d`vt|_%$%LdwVJBCbiY;U^$TY{{jANuO1 z429^mLbtY?Fam8yX) zwcQf_m79B!dL*|ULKoJ(N3Pp&PW&q=wMjsMF5eZpQ@-Yj{Tlt@0$)dG;k`&O?7uWk zcGaGl^Rw=4WSv`Yf|7czu*gqwSFoB23igi@e7B({ancj z=LD^hLj1X26_f1zMvq#3;`e`bS5?mg6;k=^u{3bhDBoG`*WLARZYd1zxbEZTTE{+p z)w^QOmUj>R0M*G3H(H2SvMx2#hGpnP zK=83|n!JvDodc=WphN1_+M*7d&5VGI_+Py^V)$j=ajZHB#6Eg?HyHau ze7P&@&heTPzi+1#zph6cc)FpuGtX7Pv}7>!A5UzlQr9ncl-S0~o4EB#t6KF+OSQ^d z+WD2Q$8n`3XHwWZItpc3?}@N-+M|qKSf$K7CaLLXZ?Qaf$?JWV=^UCV)yQ zjY@U+P%cFx-K(JDzDF!mH9YtI+J%mAl-mUtnxpW9txIS>(=S5mBChu-3+2L7cXW^B zR$s&v$p|HyB4I4uTaEksmlp~w5qnMc-mhPMopc%-ZOyO zl=9K`jHh@CtF!M&H#1pxd>Hi#b6Yf&2G?GgW7GDoFEj_P-skdH8iOU06D|oFi50|O z@5ewwLc?ADav?$Z+hajN`lyy)rhmuHG->E$`p7<9^w_g^ZgNZGpF3I=&E{7tvdtx= zT8dOAesWn$Yv1s-rqTCb|LqBrGt_E;*@@ObhJ*QcoATEVabhAP{ribWg3(rts%y*e zjUVW_9J}(9_FKEr#Sfh-aQ2;|eF+Ij?cQ>@Hzg12I!a&Ps1Xo_EPD;BVJwOZ_V;inY|f308GuG@YldPj=y9CK4Al2VW> z5Wl`qvB*p2ybm9=?4oiy0A-;?{qnJf4E3>O7k}B z=Euo`(E)Qe-9{zWodq>IxGQsKu4}mTU&W(kj9jqFl2F2!;HPu7H2K2T!Fj`B(2I7) zsX5ov<*(gAbu{d?+Tl&Lp7>a}@I%$4OSRDN8AnDvtj1?V{eI~lKl>$*$qF~mH<`(B z;o%MoGt7+N+5igw+`T`xu?kZdyHeyJ-t_D7xe!+`=dn^F{RoP%p~<>uGIN1Aiow#mv$|%nq{0~1gDX4>FMpba@0kDG5i%56^yqSLIFFcS zGCCMB+Lzip}(;IOYx>TBcu}FLMZgU5$V~BQ_5Xx zamnr`c~E)a-U=^Q*Z>hVDCn+pBz%Gs;%$YAiB9!nx2qJTUgwjfRFSlbp=0uJJNoD8 z&rq5@4i*9&YThC-h?Qk&{k>GONa8xj=eD=^rSYe4)w{X|q$@tHd|ChRg-&r=@pTO7 z^7HlK#nYdyOJJ`Rn^jc`6}mod&v%2p;8V&Y7XI_)L&C*?9}efkhXM1Q%~jVm7Xp8f zoG4J!&fu6HRDz2ibARZ0(E&e-2c8#RV@OCK4~L_L8}Ff;Tk_w{skM_Ia2rBhZ`;p2 z7CHgTW*m3$sQ#aWCEl86K;cekZs5l@Q+jdWfbBm>FUt5sB zoAuL+JsC&I=?RyUq?>t${*XA)9sGuvl$@`7(8pg<&EKcY2~m|m-F z5n+xDxu`bYPN656_Z`DP;hv6PU}Lk^{IaVLQu+HUV?n#K_AFkAMSDy>MbEq}kEE*6 zlHkjd#tUya8Rn9QL9{ntqqTOBvv#!(k6Po@2Th% z#pkEY6YDdp6C1t+y2CI6>jCRX0$8_F6MWQTWa`rOg5-`bji=#`~Fmc1-_H22H)0o>q`d6QNg}wI^6(B z#R}|jBAEl5pH$=X%%MB|$m{=>)BhuU@g;(YjneErWQvS;OLPL@T98+=tqXv9ez@3; zeOZmle-#bT0Q0V4N}?e6eB!*itLtR7W8lQM^XM$Ir}Ipt+hVuf>WeE+TDn@1FY((u zVl}hpTtz?mizZGI=JK`Ha{Fr#Bc?C`&^0s?L4kyXZLF5;IO-!9y{Cb$dI={v9{O3K z6J!W1@m;__!;)s^-m~g#{G3!~=%pxG_p`RxX~%9pQZVayvi+YsB4GOkrSP+ia`I)b z?v_U2())|wp*Q^9 z5ifb^=JyBp_7yF1H72EBp8s`1Wvm8Zbt66l#`j)_AyM@Ni%+OM5)GqHJ>iG#~eVYL zS8u2~)bBuTwk4u=w>uLzcO+tKzX7}tIJVwkAw7J6{NT}}N62^XFW^?dv4xF;ONsne z2=5Im78M8upWr1Mm|7SrqE7=jywCtQ*aNhOx8Hn|%ox}lqMu7?UZjS7yOPeIJaJ0c z+9^pm8K>{0`)&83J(kr_j;O2y9)=^m!E$}udX;efe8+T85T5q!HpdI`m+-&;w*Q~4 z|1aYI@4qZNt-oT4eGW|q~h9URKVxHPoz8II3 zJa)8445eH@N1a!K2g3`#k1w936zh;+oc!iWm*&!9Hwhh11dD&@C(dLy@%wq;l`F2| zw$lk!(Ebp$ZNpeHQnKade#z(&FAGg0Jh$qWx$zum%1RL{3s=prmQ%=0A3J4}^iu{A zmC)E6G5>5|KWQjwUz4i0BUUNvImTt7`uU0IIH}_glFdZ;#dQ)aXO-S5{8)hHhE#$%R6T7fvddXXEI_ zYcO$;6mNOgy20My(qKr!>?UJDoQc?Ucef$-uVY6YLgBN;<|tgN!%7rV z@TqfCq07L#|Juu zdV17N)5>KaCY8{>zD`Es1mYx&OE3`dY6;UE(1?V1e|v=guEa1f2!;BCiHP2|pyKtt z*MH>uX=`bzjxfzSD;uwsj4`FX^p7 zT^gE8=f+2v{v%hxuRKflpGv(Dq7q}*J-$e1%YITSW4vN3pQ`x$R$oi&;X2eUtjNTs zbKvH#biALx`C@2ZExw5480ZQu3vXz+wmw@u`h%oEBXeXhzVAPutaiKd-mu%p_jM1M z1gZ9q_IP&vX0nV6UC*jL*f);1A&OV73x!wIo=;DAdyLQ(uYoadPE)35gwK< zb+QD=i@sbvU=f&Q6Sup%WJojnP^|1V2rC1pOqZE-Kg;r0bitRpoaO}^wX13`8kO{! z*B8b}y9gg27~&HB_K1>O=t+(!Ho?bqc$3C4DS#sHp{Jw3r3@K+!Htg3Y>{UH?_Yf; zaEeCh3h;*+cDI06s#Lf5{(hEKj(VvJ}r*n2PTvRfJ>uH4IiN z8CnLLr2DTxbv)%tF=$Xv@-6xnq>!(q278vn%;e}6LtnF9Lc`TRymMKetutVfnt5BC zruAj(l+YfUIWAVv6Rx;^wzG3dFJ7oLbxX|P)F`>>oa}MNJ>wv*d%Uhb{B$lnwfzrL z75pq%{l?Oy)6npRxFrYJf}`Am1xz28;F=(->rRk59m}L%R%)a{l+jhj6smTn>rR}_ zxQKRW5&qCm1!fCrlkTgv|AQod7sNJ8^R^2%(iH4}GnB%(J7IYJc>U}{+e+Vo91q4m z-c)xyHEyPRN%gC=tao2Uk9M-TvI$mpsby?vc*!9-%_LVi3$kdMDUi%&{GsbkQalL; zH_b?ASz*ght*!q-N;u>R>|N>>z=*=TFwt9K2|l-2saSxTRrBU3%y)Z5N=&(z7?7)-yo2+WWUr)8Egh@Mz7r0yJe0xSFZfZ)q-r7qPo>Pt&) zKYsjhmUuklnXzZy0B3%PhqPsG;iYKg@6`>B(P)P57NBro_V|c_O3`qkpZ`m zCigfv&s258Np^>LyqZ|099&>%ERV4>Hvo?jW{bH5Rww_Q%nQ?_oSZ1m=k2@8H*Yp! zM)0Zw3&-akm4^$N@hiEsfq_FDE4AVTru&Vhci z2P}1ppDEPT(q-O=e_!6C)VA9=I`u&}L_M_9Q?-T|ykO+M=5dR=>S%F#9x z31W)*pOV>>W)T&Ywo^|scJ@0bEZsvU7tZupBG0)#U5mbk0Wy^5gyu+lXp)+ z#;l!}Tx9+(89!@V*-|;5O2D1)b|$+Ws+IDEz>ZRzPW!sMdX}jt@+BV zlXstHsd;*bmNcqQ86BowQgUAdT)Z<1B8*2>boXnVA3$UK98Q2`y(K-S>SYZp8 zSHZoHwf%(-t=uBkY!bH=E*MSB12;j72izMPsfyk4~OO`+}}qH6P`CQzc)XDsaB3@<35UiY~@Z!uZRzpOJvVkyk6v zvM|i)w`?vfgdbTrix-5&Zj3Ab{FRB7xg6gSuaes6A#-V&%~T+zU_4^enJEO=LI^yWP^zRhsrG_`{^+Wfnbh!ez@GK%1rB`}vxD zPgVdqwlpzmmQ^yb-mvUXD5o_(1f*H50Ic~&oEGbiPcdo@$&x+=AP|7;hAg!QzgBM% zXTu+Ds%ki6lUld{Y0G(lrLx8?5D%-0?jolo9&d+jiZ;VNwl)pS$R02)*?l|2D&Ty} zf)7cI#ABsp)x&^zbuwnk4HsQb^lK;nK|0nd&F^W={(}^jR0ruAYnMK{u0RN?A|M_x zo6q(h98nj_!db48jR1X(dLRATsjf`-AJm%QOM{5mOFsjFlCxS z4N|V~FoTBzHI>O6pBAS5C5!Jk>9?2#D`kZ7{3&t9An5N7U9%l!+Ff(bWN%$N_0i8%xY@ zwf}8g377zZ&JHmdvl1V(lF|+>Q`4O}o@z>McZMwO(2FsrHh8hC9g{#B_r424!$9d{ z0tyORKYQgq_Hc~r8CZy^_h`~;Cipv_z&MR2At(f=8nH;<7X+hxkDi(m-em7! zTi?vp+OPMBWVO-&p({`mwc34o|lB!vU|*@7{sUVGC|yqLALmUOsg4%TzV39>H( zW?N;?8YoqE$w{vOoc#x>dSsuHCEDKMNP2y7&U;1hP{Y=9syv!m><`kXMyQd_hyft> zwrT^+!E1{mQBI^4Hkk({fKE2*tEqJW(-<11(k}YQHR9)AR9agB;}aBWR)(l7Roai& z0G7+;FjuW7MV{pew|Cs*$1`^O2;uYamz}UEh1# zCXy~YD#wT(4LSr~%#71x#q_zS>z*-eK{dk*WWYgnjaIELI0G*R^ww8(#{L^<0xL3aXW;o~Rw z4)Wt&@CBfL?C7Ncqy41Ump-9Ou6iF(0wpdMecwe6D*N(@m2uNhcC^1Mo<1GJO}W>m zW$Dni6S4vt|4pY4b6nti6Be�Zt}XbWrUFiL6Gqtuv{uJ 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

lA@bB=XUEPbh(vw>b%P2(RBnR#?>OHB7>z| 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/signal-score/04-detail-strong.jpg b/docs/screenshots/signal-score/04-detail-strong.jpg new file mode 100644 index 0000000000000000000000000000000000000000..afad4670d9093d462238389afaa2ae627b18a67a GIT binary patch literal 186247 zcmeFZ1y~$e)-c=zf&`bK4FuOfa2gBl8eD_By9a_>Rdbb+*9}5Be%Lf&wXA52m$VXJz!z)!o$PC!z129K)8p9j)V+3 z(ecqR(I9{LI0V@Du?cW!9sq$4Xc(y|s2D*kEFdvqF>P(HFG!&NG?GpLIy~$F+!!2=WYNY015zg7YYgr@aqA42O8!s927hPq!F_J*_P~;VI`L4CiR(S6SO+Kuh-G^wd9<-%RBTip`{M zGGRe|$w@PyeR6YgxK|$NX?TK}yRB*(LkwyQ&LjplqkOpecqKOs!?wV&JBpfJK@4g( zp1QfYWSzS~p1^K6dqdaa$bV%WP)YmF*_R_{xp|f+Yu~ks;QyvJ27G2xu3_$eKs($RiSj zRuw6f-tA-Tvk?Sl8Da!h;!tEGB>i9-Tq(Al2&M+X*l<$nxG53BJJjYr9HQ~H!(?SM zBtEOA1N`4n@K1@T-aMwN!)W}*a^6+jj;et~dUci?p}o^Iqu@p7$EgQ=v4b}YqUN^s zRg?QCPrD6!=c0&EEf+r`oMjq6c+7u>02=ppn!F-4yt&r(B1F3x(eRQucMc&rRmjIZUBQ=Tr2n3P6;J6#?%f3ZZ;kE|=S%;hYAdT9A4`OE1=M}PD zyF{0J$xAhp_1!mXhYGk6W>Ad52nnoeR&`Z!2w1M)QS;9U!%aNZZE_?1a9^K)F8re$ zm>h|r@#cN7aTqVtP_MKD({&yc}V+l!|1%2x9w*2lcS>?Vd0`CiriR< zP2Hgj*%YKtB;XNn4WioN4p-B?{Wyo1jfzOG>)$Ariq#RKZE0r)U0$TUrmS>mJYPu# za%fHNQ7dGfq~JlF6HD(X)+`cwgd`w*^dNN0jq6VfTvkA zWR*G%Y#xvv|IC38+;dzX`lQv@JNL#noi}Y(V43x){MIAX9B=2ELgYe}R6&on=E`8< zw&$Bu?!maLAJV69gotg%hcib%)@!dE!}6{DGP*xQ$M3XdLVnu+OwJS4Br{8En?Kr_ zI1~S*xzToVCRl5CITB2J%ICK|Htp45+0f4M*xTF5%T6=vq;}0@^1$bpIkm?7_-O?P zfq2@>(9>GxP1V@aKI;B)Q|p;UD^@O4X)cuBB!jN}xsXjt3%2!`Q=WRI*Oz#k%UIKb zbH78-e~`t-ZN=2hr+U03`Wb*mw9ro1x9TFJ>T;pOG5(m_!$R;gfWEKymJoL>i?a+`tuX)Od`q=!(XwX!$@t_0S@Zs<0LsnfphydDS3HLO zHY#+NW$fmv&9`HVwoh|Yd5uSvFCzu{q2ajUH~~=W2g?-O(Qbx1>Np7^|HDA0R59J} zGT^sNsJ!I^)MyaucqZtGQ)igNU*-mN4A`9f5usqg_QQ3PXx>Y%<)Qazf)1qo|0Zyv*+`(gdka_ zn^~W9Tco0wTZ%ST;qUzK24BppUk?1nqThv(kUj%Ygy|4&@q%9K12Symz#L zEi+~k7BOP7x1Bexw~c3v6TQNw_1QVIF|#aFgb_i8^E6#7DP`FQa2VWDi15n~R$_zD zhq)1l(cART3>q6g17z7nY2qf2CEI@+CAQ-tp`>*grc?0*=G|F(J5Yy6n|CbZRb zS2j?$JX0S=FX8C9R7dT_*J~5HDPAiZc10HFVz@T;>BUly!yPnuVcmQNRM>f6@-qpx zj^yrl?V4)Euv>iUeb;=#x68 zHP_^~Grx})-*o1tm<%&?x}EIcQfjwM3QnC=L%Ox=z8*CJW_^S5_dsaWM?!5h??@LdAcg3{>z z+qUBmS8Ydt@0i_FNY9#DS>>s3%(2WT(VPg_pD>VSZSk!5cadiw5%%k00|4AlD7`7!BsbR}kA#mNVn#fZ6A_ z_P-CYy@vwc93EIPI6dQKdd1IKTW+%xB;fbn+%8Z@#Qwzy#i{4<3b$NpTjAoC@;=iw z9Au&aepWsf?Cz5c*P|a#2Q{6fW{sXi|IeJh(Gf9!C}j|f((~bq@%jw(P>xTsxc9Bf zMcqr9p?0&rumu-12WkhfH9s`#{1kYzyJwzOB!>5P@hZ-o)iH!*`CG+@7GATQN+HI}ncRrBfndTx`_OiVWF$P{a0BcAMKRejzQ1^KDTs z!6b<&P0FMed#MMkd(t|E1#5Rz$#hKMLs*Mps0RiswE9zqOrFd$`;4qE$Xz%Oiu}|Q zB6d=pV+{=}YXmGCI$NHqPZ7+dnrj)X@~Th7+)bBgF|UyhY}R$3wn9}?4Lh^n=P&;%N0HIR{|l|mZ?dq8pMT;gDGS|v2*D(@c&5G*$A8zHiEHTz`N zc0t}$6q%a6u0)x717)ZKgA7MTVebB@UH4BfNIppmbE}WT=E^`KBwx+`Z@EQR6m)6S zR+2f(3!LS1sURV8^hE=|MIU7t_1B14>5ecjh>r>{@`*ItC5yAV1^BLAX2YI4f(%z( zAJiM?CR^_aC3BfRH*j#Dp00(lCrQ$y7Io*ksV-W^R1=LP_9ffXs|&4in#O)Q9<`9dE~R zz;H5(_5`yhDY|t{IVsT)%ZPeoI?6MP9Iy@dFtCdy8*IkBH0F@^o_g0U)^}iQVtt?q zWz0dV@iQQZr+W`?i*Y__*VT*PbdwNCz;Rhxm}2cm=H$2Y`>R8Uznt)L{h5&G#U-1p z>aa1x-L?`B-vEKeTA~#k=SMQhwN<`>)?4W2!||>Q)lx5J4Pv}rQp&oS^9s=95LdFW zr6MbkEq3Q^iOLYpVD{A>3$WG0t`K|#$Bb7jnZF59P8u1CI;ht=%6MH>Gs<##AETAw zP|eCNM>Ez#pDs#I@{u)$7wiZ?_RQdYmwNq_0S1@TA~b36$4w_CG3q!Ye&ak91;oWv zO%M2+%K6vqqCGt&F!6f5SKZnA5Qp#k12^MlKkoaif1CPh@mn}+Oa^>Jz8D>w20ckB zdn?Kyv4_eOUYL=TY=g?r!wZ*C@kHr~MjHUoJqSUErMw5Z8f*b*l(1BIE&4Wf zfQzx;>FSROf)deRtqoPaXVyS{l`WZVv+$ZWfOQGWLq1=={#ZX=Fva>F?~5ldG#dcA zySlpoz|2u?A>u8;Zf16|ePvps#;S5jeLXr)GVY{7pJ<}*|X#sCFJ+8 zYX8^O|G9*T_hORzpR>Qsx#zXLt6+cAUoY@dOvNGGp^$`&rKpiSDmB|B#2#IpRfvsB zVq#M_{N(AR1Y|(~06IoGMgUNy^M}YuD4Gpa;tV9?TADA3aySk5?_>})&b&N0acH6l zW~Dza0k$8ESk+OQDp%WYX)E=)jf{kDz3+70!XR}I(IG$aP=72!O)<=lKqYXM7g4eR zN1u^uOr-lQb^i$e@nZ+THtUnlO_HFV>yypob!m!D36~8CKk4ohxK8cB8C(f2W9~pm z{R!{S&)xEE;1DoJh#k1e>cifoBk2!58ygf^(? zJHQpOo)ak-#5SA(mLW|IF09VJbLC1F&6h#?sI41>vY_}1bj^QhzkD?HWm^54L*HY! zK>pv9|6|c_oR83G?s0%Ic_jM3@S?2pO7{;GxPlr)0wKZ)5zX_p+=YNw7T6z46=gca z67LdCJ$(PA6e68GUj)~D?`I)UubClugg>0b!>cIo$_pi;n^z>m50|oOSZ@n({V5;_ zVb>F-FTuhVqLxb{qB8C1-Ac&faWVEp>0+#)2<9Kz2}%EF^7s=e4qE92P|_Yn2k>=_ zl9OmO^v`QxkGcKQ=Jy|wapRCm3T<)hlW2bQ_Ybl;uNrlpIfqBliDh`JaoPOPSnb%Z zWR^&ZEDnPg<&~+b116E?urXzwzQv3Fne~MC&_qi`84j)Crs>0y$y ztaEGHt%|S`1XoYO&X8J|V<(9wFub~@@byiyx?ftJZ*r;|j60=#w8oRL+q^liB@130 z1x5s-7WA@Ur!nvA2UPwO3y|bI|HwnW!$P^UEB-oYPqt!JGC z;LTUe-#Xy`wy%FI{1Myf+crPjM8>0PmLD$d2G&-HrKT?uBrY*`8?u*ns>+eP6!bw| zqxp32ZZ*7UfIE<9)O%C<@)rMk=qj?H=QAX|am2-tXnh7i4|I8gF;fYeStBcNZb;vgk;%>PKMlZWD% zkAfz;*@Fuz;qZYZ0e^y}9X%%K^F?7rp{HRl0+(J@T7|h)dHJSV2vspLu3Ln}sXCc1 zIm`>Q?vI-hp$FA;cCc&iv2Jx-i0IDsLVUaefm<;GDkMUMNDoqWN7EA%UcTTB!dQR8 zdyiWuF=fILowX*`bO}+I5*s_Mpz1W`~%6D-9);X9g7&&Vzev90|3I1>lM@n<|fMF;A)v-+MmrYqg ziAsP-KG`TgRG=~Bfd@*r<6E)%%qaoz%b-~GUrS^md$*fkLGa>I+Lf^TkgymizI-7{ zz6JoG?FU04Cj-z@`jcQDq()5`0stg&n7YUcwbXP9>ObIX8f>9bH!#^=bq(uGxmoYc zx>e({JNsdLY=@8qIldRaK2(=k^#1(e{eIR~Azl7;!i`5_iVMh;)pntFjZ+ylF_Ol2 zlt(FC;iwiITP5&!(_4>09Gn`R5?-OK%;b@Ya{yHl>9S?Vi!pdjb5hX2rVuunXu|N$qi}kwy2|c5E|rm~KAeoOQ9IxV1PyEI;k10=z-x#LQ4Db+ z>XijE>98hkpS(~w7F<@o=lR8ck<1pWy+`+3#Hq_a_eU}cI`%V1BS$LcEk zqHeVjg|OzZ^Dg%OT+sdb>+Hd-RS^`$ileSw>yU8~U~C17Q0%m@3f(juOV=TEtm*p~ z8|?3+HaTwJb#J84dCu}4Yz7~+`GrQ8yIn>Wl2^?IrXWtWax%!-0WHe6P}8?s!)=dF zdO$>*IVg8u9+QF}&vlC>c-;YYzp~|QJ1qc9q25wE(11_;qQ&_9fjM}W@*SJYZKU?| z^^(9*g5tip!9_{^d+frQ_9Md6DvG!_xrhAVc-qI+WyNR zhftAhF~^0AJ>SLJrB~LDy;uu`+JGJ|p-44up?Je|re4-UF9-PjB`xpy`G@Do{SQ}c z8_~yV8d#GKM)XkleC&0y6!7M34fcCE#tGv)w+n7%`Y%mf9ID1ymwLT5_lZFt@0pWp z!C5;yN-{ffjJ9HBH1I?nfF<&|OP?SJENJLRyKvS8We^K@U2?J1m_A4nv$#%?2%!s+ zL%~)z|hcgAnbD5dOfd{8nPWUEjUkLBk9Mzqq8c0gRjiBqs$Z8Ea+b6rq^=R4b?3VtA;6&E@$u{ioC zyZLU>$CLhw3S&V$uXupadS!BE;^cyzPr*ugt2Q@1m8TDlhki!) zZ*MLlBEy^O<=gE04buckcwZVA`uvRl8?TkfP5x}}>v_&d zbB_*{7ps_v7n1vP)qj8c0o$LNPI3PL5-L|5y%!f6ck7;~l&5sjnNOO}mr-<|=04Ax zB5{Zp_H#%&l~=EZhu5Ka#2C=p(tR8FTtv&JfixFM-auK$?1wK*vuD{<){D2n^_n7NWid2|#JWVId z)NdHSd6ICX`#bg=6_ml-lb+A#xuAtYCDD)cl>!H)UdY-}i?PB9I=Jbzh&{ycC-bzH z2dP)tGgNDd@{;$7#vM>2MJ=;F+APc>U{)JbCok7zCP!f!?}tWw^tPMJj8wE1<_vcU z?}VF$VsEE=9z?zu)$q&~zEwCmi{KjjfN~vY8gnLB(oFB$rP`=kJBh>9jJ(Nx4}SnR1J&NX$Iq z0arNq86bMpduPsh{9@@SR*P=}>~$;;wB1bHL0T z0x{HOLiN5ALcLx%0|!Qwv`wzbmIpjzCyRV`>f=C3c}G>6`E=xaFJ;qW4IR@TbA!{b zSCk=JJgMR#?8Ll*!~&pb#OM!nzyhQh!P@;k&&99rpcn1uAaJ92 zsPY55On87Z50^eXAR6uESe6QUJoQ#@^upL6$(nM5yEG;EC1d%79ZlZh1P;L=bf$I& zJTTSrK}uW3gL(V)AujEXewWzwUKd_+x1n28zonF)1n>v6)~|y41^9+3qewW|tAs+@ z7uUjEB5jEE+-$(>Bx1>piw_Pi%xf&0`RjB3>DaH*^QcT}hMlMkde$zUtGC^B<;5oD zNolz>dycR=mleVs!fKD$4Ws5A?u_Twc4SviJZ-#5@OFBbNO~Zu_FdoqocLo~0RT_J zEmj@TEEFi2LTL5~vi0!G@r`DIrEt6RI()sngvVfR6qjfhiF2tPR4;*D@0)}LnGFGzpq{sS5hI^&XL(0Q_>&w(py zXHHv9bj#-#MBl|mwfhgyZIi1^S>zGkLE$VB01%COGk&f5OOxNf|K}#U@e|wQmI-=O zCU?rH-FM3x&+jTN)Of%je0Z~y;Et`3Uv2?$%|GIpN;DR#hNA&xBYcEz%M%@?`G22~ z?{j}(;|(jG`Vu0iaslQdk|L74UnF;3-d8hKlWXZ`L`&QR7&JjZ4E+f(9#%;^A1i z5{d|Vm_vBup(r-4&L=fx9PmppM=~aX@+t~N5+sP(1i8SP;2j`T|4tn&EDMj?X_mzyytF=%*g+!X5Wfq2dsm-3|{x(>*UkkYjw1>dODsP z>tOSu1;nbk$JE8)rE5pD1avW*%<)Ino-_&~8N03;e&__%x3(%KEWtSPSPtdkLdzwD zH$Sq`BN)#E66jJe9SR?mk$mkqa?#J0^XXsh6uJ_!wMS+dDF_bqn2G>FTx`g)A_g zHVA*H@Xk{HG|5d%>)6^YiyJe}F%~pJPY4<~;EIj397)^Z3{ua{G)Jj=ik^^umuPoa zPjHh;V_e{kY|oZDm68MfWY&WQ;Zv$q^O5A2H=`x7s&oTfieSeY+ugCvM$ie~WR$7; zqSmIZ)KZ{dWut86AvZjX;ZeCuoa{@_^VrHp%B?;AADEJ$YXLM*Zy(T6q&JA~nFKnr ziQq5%{N)vwFa87^L(id5x?uB6<<5KSkbT4};|D1tX`l}tmElAR^TM!fbG;miCt{@Y zj#Y@|`Xt!9`pEeQ`Ut?ou0&mDs9~1E9K0}I;By5IwAAx6qVZ8Nj*1*G9o3#bR5A;i zHishc0<|#WG1@HwAV~Q!*7-;=Nae)wfkIm+DcVZs!?W@U(A)X7ZEZSwha;T?P=@EF zojOF-p0h2$VDrxOGS^HUC32cLwS%-znjSQ@rGc(n0S@#xZ^n9V(fl+sz#NpBD9^GE zH{jA4fLGk}a5OPPyd>!54WPJdT@qYvH2&IUPJT8oY1@AP^D~6rOt27N6yOK;LVjh{ z7vP(v?M=;7==pR}j^SP5AYzGdr^lQlSw}G_5;G_!WHSyz)qU??zRUpWM4h0J5%NV| zq&PV2-)nel2=?l(_m4EWOQ;f=Y_h9e|C+7$*>%_)cfg~*j+so>OBO5MorT!S21l&} zUMlct2y)xQa2K%MXhGnL(=d~4(do!ySDivph_AL9#LRP_TaRR>U(8${Po2Xz&ewpZ9^Ep76~N9`Kod15#MOr%IfY0( zP-W{2eFR5y(mn%HGDSSvuX_bXeKyif(oY-hW;wKoYMMkF$*eU-#|quwPIK!tC9)g`5~WI@0b5m|+9c|13D zQ;&7%?58ZcW^rWIlX5jAlJ^$=v>LszrVam)z&EeN{*fIA+0zr($>}XZ8cO#~1efdVFIO{hIefzzNoP`RVJH{7hc-iL* zf^T;4bibs3`1lds_ARn+Ecg!Wn6u^hfyq*9&DH^~R`j`NK^4k5c)_y8+wY~TGCW=z zJ;`{wtTi2=LIcX?T31n(=gi>SxM9XF23DGqlds%OQHTu&Wx&pgjg z<#=b8e(K=gT>e--zHj^st#6R7`1m131=-eXJeO{JfV=noaHt{o8Ouq0*pCTZupiv^ z19iV|{7)%Zs)id%@qfzxHUlmr^!Hyk$d|tu2%rt%yQNWrY#e`mXUTePa)WyZ0sNKse^BYq6n|B`e+I)px8=DGA*||ew0o-=w>Pr2 zhT&I|#j^HmwXe(RugSjz0Ls;&K$YL}J8<2K-_+z^`VQan|BCqQV)AS9uL0h?{Sw04 z4S)m&ym+5LLIZB=kibBuoDw9Om*ENt3=~dIv;Ay8|1~}SE|$OJ@d3z$a`>ku`Y-Mgj^wZ_e)H{sECFB2tzFAWkplkM zB}s4Pd(#bO**G?C+pqoo9Z&N6k^CKld!kgY09i*;q(UJfM=7T-lO(U7Sg(ua3fB zG?HJ?fC{D1;b)bAVH{bOC=LyY@GWx1@I*mnD0*c_WSM5SeOrr-Z?l!v-^ll7jd|F#`kq4wR{dvXA9 z&|50)BsLe6wm1J^A+|8*EVhv8{I8-Iw$Kvv(P13&n;lXY!%Z>ScS6^TBq-%tq}awe zOof@jkPZ8a_EjH1lNP2c-d>HGjzyHqOCdYC1Gv=gcnrxJNal-S7OYT1~nV;>@q z*C_pBz!Z#uoM^=o?cFItsy-JGcXPs4tW`Lopi^qqK0Gw^<48ge;*^sRgP0)%m1mDu zFzM9--Ds!wvf-2m!?qwV^k>bVt;$a4?y%UK1Pz#M1&$7D0}tf)U_q;NyIyF&jQvON z=FXjWYvSRtulQLLox3CwE74nMf+N<4U^8t2q}AC)Rjue+W=WyOr~c23AipCN680C_ zauJ2C6J&MYHx1vh_5oNN4x>l(xK8Rx_}|g4`qCVL%uuKHfB?@nY_ExW#_21dS>kgq$!L%#h8g#q{sxP~zm4Q|HGj&H77%sDtnFmFs8Di0X^ zI4c}n-4k|7Sza|Aij7U?qF;6Y=rcg1$?8?f;-@gjtIvQY&Q~j&d)a!-I9)90!}jJA z3Fb9q7j)SUlksDuoTkx=jw+PZ^iF!J31p8O_dWQ+8Ce+bv3A`pL+VApBUlO-3=`WK zCf)z;qa={26;?W1Qf10|o<`5q&6%+E}1vf)M}e(W%s9fe_|J zru&yJr`?<+BF=>TMsbB)ccn)|oZTWU?{AN*!t|iU=6)n7KD?KcQ_^i0E;y#vB1Q!` zH*`VLX_&<_Z?6i-Y#r7R!a=l5bN8aMPOk{185rT6LVmacvQx$6!hTK<-(sa37v9dK zmmN}!W;e)n_Vh6abnBhAdV&&4ny$mfxkleJxlq=yXIi*pj`x8K3a|a_JpB&{_=tSh zDu?#gf&yHPRLtDm?Cg+i6=p6lIk(Q<-l6DJ(3_5)WOBp9L1P*+py|xoAY!<8r-+Io z%9ARqsAgTxzyOJRF~RmIHlV>`a09caE(FaTM_S_c)A$`^6d8W`ai(ZY`DqzD0#3R+ zK^TGcL}fHcWfF#3lT0iuJj{coXdIDuI>Xn1XtCV_8!42nVOmd9E+XpM7nW4T!WBvl z;yI69Q0-bQh`J&+D4$^9cgL%1;ePNw=`*cYvoeeu)luzwEsb4)Ti<)U*S6j0K<=Bl z@JR3V5G@`IQbdVLSRE|qxvf;lBp>`T8AWXL2ZFM!%Jqmm9C_i~`xexZ-n_wy!Dop? zxs?&*7W4}GZqVS&1zKt@^h;0ekjde9wd_nuTH_34vbv;_J(LZRVFuW9UM6UE@?%W9 z(PW%_$PrHk#1eL~yQ&2O#Gm_eMlrv69~xp0FE7n=ut=i6?(8jU+sGo9RUAO~-15wV za^rP|wsfuGnDV`T!$6V5$opPBVt#i3<8}Ha$(RIQRuQ&b_ii;p1xl+C9!P|-5DeP2 zF-x&?#2IXan9wu2irMM}TrSD>o0XD))dgUZ615CFU%y~SN{Gh4<&IdH-t_6}5b3%b z3O`p-;@NZq*{1)iszfY?~cG2f@*WZvTnh__qtZc0G-_NBKuYAxpcZL>24X) zQ6;2EhVTaPDM}Gr{fIHTrt4_TO1aZ{P6|aD1aeG%rJ>yp>W=lQH?_Atv_ z*{5?avb#^$hgtjkZ9ohGWk!!$UFZhmJE<9%K?pE9!v)Yh)uOTF%*^t%9nY-Y{9PpK zm4lvVOQ1}WS4wxs;H9fz70I7Tq^qf$bHB7?Lvvy30D)6D8bb=9bP)BeLdZ!_4Rk8= z9ETDN-Hh6JQ>q#kQr?wntI?3Rl&?qSq~4W&n8GwjbJ6`tM6QtF#hnFB6Cwq)aAeD# z)~5n;`siEo8nLV$f;A&VppdeUP90tgUF67WouS~AmVrY}4GsRztirJa=r%WM|&q zPQVjh3EL6ZNusoz;e3YF!!F-*RvBh|ZU_N2;zXb6C~?2^g(g%)YFXdjWCE-zED3am zfTDC?ucgIHtj zmp~*Z@`?5i+_B!;vx#pC7_T8;ZxR)*iBHtHm9y~iyfr}?$Is@2kn}& zQ~$UC9_B)4q!p2zUGN*)=ObCJ1$3{}8XYWq$%d(5nzM2PL?XsT8`$}d3LoaY*j5JH zYt$Ulx2N_tJJe;qjna2Mtkn~j8z^7H`*dBO=R#<^BSN4-YhGLp=P;GF~O)B3zy~H zcpgsy%bme$;7tFc(p_A|HBbB8{`I73QcXL}pmAWxQk!XK!YD>RP3fwV5tFH=cHhiA zG!^PQd>P)h@dfRe;tsi&R5)uv$iw&DB&=GDYP1CVnVQ0d$eOa5?^g|_(CMu3P&p`e zaT6;|-%Huhc^12FtM}#!49^g46*2SHEVdi+cs;g3o(T4q!{qzNlpnNP zQ1`l>Ci9lLVNzqM`ik6VfE(_s3-rU#w+SX^k7>dsHwr!aLvWKH#pt#mAp&dW>*@l@ zTWgnf?t|Z)Vs_c5Zdg2Jwc>L=rP|y zs01wB0;+a>SOEd94&Ha)+shJcp)S#pN@>hLehFWFSF_8GLP;GC)>Y@#x!NlWoQryu zs|)6X{s>$uHpFQ3o;K3R{*v1vuppvgC0AWbir<5(%E)?uRVQ>R z3Yf&ui#Ku%R}tc8nq*aYuPA#~gojQWQ$>tz$RTNKepp#VE{jBI5*7~_anLtIm#n91 zq-z=-MsI4VU22b%NFyV+zR4_N7~sSz^g8aaGAelPLf_ZjM=4%QcV~{J4rr!H+Zdj( zQg(*aZO4>JgA&+D1+4_na^!!FG4gI$>5T^YGKUym+lyU)4}qtw!F{tC9DH>z2V%7J zs>mM+AiY|B@qAr0AQ}IOH=xNHu=grAoocNJF_OPffKa zuU&CQTcu8Nl*l5^rLP@x=zg4kgbOh0UiX_D<@>Vtl4;gls|PuQ19;s;%Z;TY0%>|( z%*g4PJB9FIv~jba6B&UC;zf)^2f}I%5lZxq`?pQsR*7@_6Jn^1_;ZEIzJSIWS&R3e z3Z1t>NV*fFPKYmsSiWW`4Rwx;+tb%ugy!`K6aL)?LjH9Ul}_zcZ6gvGbvagfS}|2R zGXI$Oq3sAnxO%4fRJKfSMdnfjYL8CDC{-nArCBMm*qH7U>|&`efx%P(Z*>LH$_5G|P!RzlrHH+?(p=QKqL=r2ZW)ow;DdLQLds}iv+2WV z_X|=fYLeat>-*6$m-Pn*vOb>y512h*e_fwMBM#3$JAfdQ(5=;s-e+YKH7;OdLd~|6 zZw%|NofLIP5RKQ%)ajUPU-5aN5f3W1y2*XC`U>jl{g@JxP`j0m{D63NM#_Uwwm@7s z|MYpRnc_-xKzlfgv8=kbg`%Nh&IqSX3R6^UUjEve*L144w?wb1A2?wq#-wV|uK;X)uwPOIpRLkygpm zNNId-TIq03sr=fri@8Lj*{$1lkd9&zYtZUVGu8Z*^PXb1BhOYelRujDsp=qWWQ>@$ z@ofF2V_Y30k%0L)K3(4i-xC!oY$}>Z4>d`_I^88$x@Gw&8#CP^8BTkm@&z2 z@;yuF(lQs|g7^0*nF;^-o*}8}2a;MuM^}}~7~RYWq)8*qK0(K5jZ|64CmBr{5lKycld>ZQKJQ) z0WOI)DvK6$!;CBv?HTKDKpO&ML28Lu4)n|@6Viu@mS`W9s6S9@K2D#!m{c}G3swMv>wv`QVcGV(>njb#nfE_js{*o8j>^v@R8&5|@tkT2-V^$Xfs zR6KLEy9)Xzhl-fq-vV;mm7HW{Fpoedq0ld7n=pGlqgRELgFf#F|OC#fe| zOQQ5K5u6d}EBg$%igvrZVKaE}b_*xu6=TV4ln&*GwhA2q*VOad*8dj$mmB|`8~+uD z|1J*yT@U~N)()Qmp8%8UK^W&w(WBScLx~&-X!jp~kmAjS#E?UIOf&MGVq4j*WvGG+ zb0$P)pN!)qBZl0DU#zdDQE$mvFa#`P7`h%FSu9+NvGu)Z3;4*EcFqqx4OuET=P-J2 z?V*<1*cWmMI@Y(|C8bQIx7JR%)c!SP^HDYDBL*f6Z3y|0c}1@HizbJ;;l{L(wp4nX z)%d+8^$iiF0~Q$%;#YLh&Qq}>m~MH|WpWl2V9^Vvy`A?SNzZP>C*&}SNyS%l8-qRr ziig>T?X9OpWO!bX+OwTkg|_)m7DR;AWK2EP2LV%aPBH}>@k5K7N!?YLNm9MjO1)Ro z>E@<|RY_@Y`2t(PvWE7w9vVBX92U`vPh_wj?!<^z@s>u%umO9?qP?u`+3qVVV2Z!k z5)oNuEvd_;MNobMO4^o_G#AtjQ6Of)FWD1TdYY|_eqUAmicYz2OXd9+Wac@A^&iVp z#>-Vj$-PXdlC|~#y=EpCRn?B5 z5Bm)0JDMkm-)!A{HB&VgM{6H{kB{{;U{{1yv5FXT{P?Nhrz8#c_nh!S}U`a`)!l2)GRTpqB6|S!(!WJpEhG%|*dvt!di1AQL zU-~kS_Pzhjvd$x~(!w!~;s-Itu56-~4?R`L6ETqKwu~Ft5osMpNL7UBD|}cDnHZRY z$9M1&(F~eu$er(b%n&M#8>BJz+Do}#NK#t|>B#8Mi4Fq=5nPE;De^tfJiBS?`baH_~^>#aYXfrq7w;|XUwZwF1-1I?# z^Lq_4wW*^;mF5pUZ(zBwwR;IP{B|js(h!Ztl(*h2hR#h>i1ZslnfF|i?t5B9;92#V zS#ff{R!U0?Y0st&K|8XcsVUFEGf=I-$y2KVV?TSXQiW`N+r&eWUoXs#JVmO&*3sL# zMBb|GUVK4Zj=IW1w0^g?gXdJ&FrK!6(NDup2Z1@f?I;fzqT?G7`lf77M+jls4RokE z;V$*G$G)%1nJUnixiU3&uDSxIoXYEN9iQg%ib5v!Kr%voi~Puu9sZ#NAh&q6Ex{UU zGPFlVB1XfvXZ1}5Pg!?q z895(#T;Wclx_hyHvS49x-g0f%b*n38G)SlT1w~y0{3m%I`u~f$=k7Yke$@ zu(qYVR4Rj10}FcnxiTtvx?^$;_pPfuxnQUVX&}!jz#GWN=B({oANR3a+;+*RSlaJS zVSS#35iVShB0=yO4t`&e2wPoFyO>1l5FTOF2dRw&8g0=}Yxpj2Ll|O1ga{J1=BAT! zXSo_r#EsX1rH_MwvQ>Ef4`N1w`|ZLNF$Ns?NLa|o^2SHqBXjKVL7XnnLJjWr(kYoe z#pGm6pL`u509K1fQ&Fx+;ETQZAk|B^x9G?dn6PcBUw%n;?+75xgI2j*R&-*Jp#@T1w7o zanF>GH%uL}(@3_CNx++UEEh)eNHN&wH?*GK+zjUiC~iR8w^h8?MrScu!?8Gl@5lt9VpiW0 zjM75$9_BKAtW~4u_Mi`TLK3+LQkQMHwwG*mr~HJk>K1G!;0OAeE_ z$CP*zSWGLce^GQ-E&cWi^3bij!Q!{kJ`tc={6McS&gx8dZ(_#Z*zJQfN2i%*>n zjeCh@`oRI~+B&aAwTk#t98HHh8sNQiZ>f|-O;A1~IkI>(GdWp;+!h;*TL(OGWF)W^ zN*UBuLn^o$)t9-S(Z#6=4p(~XYR14Rq+u{n9 zAyX5XL7fcApGE{if&o&cmxIuksQxsrwi4RHseNRIyr{vCf=thP3HX#QKqVmFvzEBq*wWnU@FS;oQ+uA7&ubX zidW!Nh8ToiqH>LjWQZ{(+A7qT#Ox2-h#Rdx){bOYY_&(`TuPpIWKD0+2doRsbt_g9 zkOc`zKgagC7;b_!5Qa~ht*wQT7Yr!ravl{@i1U3nrNtMEn&oM2%*1wao%G2bLXnMT z!*~h&Op1{-ywc7Vkw?Q%Pv%H%ti*1!Wsc#o9xAfqOgDH~Yh23B&FG`3{H+E02c-cM zPUXRqaCx7(l);jF@J%0-cd$q%QE->5g^wz&m{n6Jr}fqoX9!1>s=XgLes!vX*Lrl{ z6NeWy$%&`IoZ7rh_bujiay5-x!f*Vp^_>T;N8lpYB?kJ=eOEsX`Ay-rL>jyNvwZW7 zw4qdfvamPXy%V>YO9&HEKOX$`=NE0rU6HXcI-?*qtBZ}75^ZkfPjU&_Qh-xW7>?sPing{l|Y8pIw+SCu$ zPcOoz{eQ@o{I1WlC-{TH7yj56WPgkB%XZkR`0<&Jh{=m@+a+2p@^$Hkst?0^a?`|I zabf$e58v4@-0$iCpsanmbfPRH(KaqQF{>ku3lv)0sW8FIf*7`2*psuN@?)e!Oz2$I zPQN33EJWWK{Fs{sE)CG9@C6S+E8Uj{s>+oMaj2(aBx$GG-qcQqEa2M>Mu(%Fyg=G;o%ZyaNH)q3N6!dlW) zWohsCdz?E(26iHNk2RL!kf>P9Wh9Ut)ae<6#g3)Suf}rZQcWG4jSU16>)5u+USKC- zx<4l{IhOz(yeeTHw(b0x zRH_qfBq0&Bqy4zOsL>hVG`0>z6gPK>m!Pv`#)4lJIVjs2UyV!janHO!nq<$qx1^!- zPyIhA9=x_bRjb2dsO zq1Er3I=Y3%(Bsb1_*8x@C0PjBi)>ezp)5>IB#@(jM+qRK5N4#0Fi}g^d;Wu=q0;35 z?|pY=g2s`MBU@=#42pFV4R$}^MQd9`HO1-fyY5@%fCB8S)$L7kW8_YcfoVj!eC#vQ z0cPFp)ITUR1b`r(%hz_dT7keF@_Yc~9@)`m(el{yip$pV5D?c9 zQZt}t=}ua5a%MwFc^Yp&anHpa6@he^eHe1%;8fvpe8!wRU&S=6H{3m@>k7atj zNZ$Bbym|U=#a7}M+SqWPCT`4a@ML|0$;z#2jkcu?Ytw3bq-k>C=XR* zD=E=CJ{fO8HH|JJnc9Xx+1)vVM-y802gMx$G`Il4Yd&T!_t!z3Tj6(oURE4YHbYF{9i8{jctI zJ<>pQ@wY&~>7_)D!{oLCt&oS~wS?c8{{cZtNN4cENM*7K8-lw6!Kg6)1kGAyZ-=o27H%UqHf%bxCU-+t7s5 z$!8h=Dnzp7u>RFh-K=_PX-sbYPrpYLOuiHUz3QIb#`*{45+`#TuYxbwVf~SR#TwUX zhzd&&|CM)T_It|l4~i@Ma$ncj$FQS&iFZGmzurvz)a|f_Ns`VCu{5y%GXB9|lI`aD zthK?KbO zOXD~~uIcZH`(~voRe2F8Iic58a};#=jrn$<97;fexPh zLBXYqUeyL)X+3HFVfJ8Fr+lr+{Sf!`R7396;>zUJ;yMqG4cHvUC2pb1AvsOo2FT}lsiOE*r zo-|F9pOTz6TY`3xhtg4I!16tASlh_2teZ5oH@)sVeie_-!P9%<2bnf&v4)2)MaCbd zZ;iJA34-d^16(ZE12nd+y(j5|-kMxYo@_PGS^$4gTEbS^e&)_TtmxEz2uqXygR*$@ zC_cP6NxZ1r-@s&U4PG6g-m{^h zc<^f>m(%E6dCa!1SE=Z@?~@-p6>vkzL!W*8YVrqV3ZWjbNp#yjx)7LFB>o45%suFS zeTH;%y(%e>;Kb+st-o^-dtaLw({uWj1MIWYMRlDIeiiINoE|J|i1_iHdz>ImN5Qel z{Y`_0xc@bvRWU@m;a|=2-v>FV)fik4sSVz68}7GTi#6)F>+ve=|KicaW5%}j&p$Re z#5|HmWVE$N7QkC_pZ~G})FbrGlL6o8J^q#1w48JI8Y&GXN24L{Yz|_r8-Ufy8W}XB z+U3&*oDd7)=rE}_5r6k;e}9_(gHoGyM_>NvZlgWC4^!20PVp3vR<(X>Tq@c-AxtwY zA)0Gr037&i`?Jc8_ zJ!PB9vYNnIceou#sahmCF_>@T$!i@O%(s)VpO^>4u>z7^Q`ACQ@S`=2=%f^?Plz;F z(jZsZnS2f-U-iH#B4_CIIU5SYx6Hc^{RyVTlOpG1xU+s5g%hIzZ8;#_ShtS`(RcIE zg|m0k1MW`h#bdzDG9JaefjF%UfRDqk{vgqJ&6kgg6CwmiPus}GNp|@S*ESI$0$!>k zB%U9U^73{Y+J8~(qrsXw&NI!u5wc54MpSoQgcucU3rwXs+Q5U$-34tenEEk6+RINe ztpEZJ;GtW!WV`yl9aY=WkqM^>TnUpzJEPBH5nz9u*CalcF36UO(hudK(OW9}hd{8= z@6ootstDn<$;zpNRe#7*#8LC%{bXctEmu4G`!uV8kTKC{(zU2Z{{_a*LemN=fdOBV zExSAIG!`~hTgkSK5jarue#7KDaCCL0l*$BSX{a0B2KODs-FJ2m+P;7CjwtEEQX=ja z(=1zz`f1Rzy~ctEa?QLyg-j-J?nQJ4ueEk;lUg)2UGoi#yEUf_(b*w`v>f^5a^z8`-NIzLv zEll;wn=X2xSfL1rKzEJo)W$zFOBQIau4_@lcB;wi@< zV)O)Un0uHdv{gp)qwRyx=XL17tDGG@fBgdr?zfO<2?QnsPr%WWgy#&4Tm-v!kBcak zQ_Tgte@#*PXE}*k7U8SHz9vP-4I1{BB8UXB;?sZ(KQ2!Wj%8Mt+3!s+zVy5`NPStH zKnB+1rtf(GtlGXZuTrrleTE*XE;?YUDw7l=-X=nmmQQyudKC1w_^puZ`?wEcA}-p& zMvJnOstu*(6^}Y2J7lSWb@HsT;ipvHgx8}@%7;__ zJCW+e=Pg&R9j;Ebcv4iRH|jS+@5G0M6h1K0Vz`_8_mG+1e_MQBZWuWAYwI4{+=TYo zq43`il?lbTMBZpta@u+bU$JY4dLL!@PPXouc~`YuPgR9_@0Ylv&puS%^HarFCa=!L zz6z4V&7pJ((52auk)PQ9LD^k>wrkfc z9360~ur;94Eb6AV-|4tc!n4(;v z+$QfmSlHIcv4b>^c>+N7m6q?|c=OX_xxv$h{UP{JNarw>74CScdvmK-i~ zcf>RHL7tc4y*e~6G7L2M%(??lqLmdbR+SYk_j46oo^q0tpr3!ILtb=xN+ratx>A~9mVVJ^eOVo z7hbZ3xxXl>HtlqEu?)l`QQtg(7s;B#wB-me;A}Z&37DgN&Aff(FJEyBE$^`s;!J8M zOGH3+r>Gu2nRnG&Ul?2KC|}li(Pe%JKQq=%b`SOgHw`3g<^DlA{_ZaAbWwu^ALVc+ z*0du}sHXB-i}>|TCLf>i9i zsi^f3s>1qA;Jj;t_Qb|!@o96QMwW`5Yf3-z6*jq*&Iwv{ivfLCZ&hxmyp7bgNw~}ereBlO*2aF?Ro0g1T!q>R@4!`mye`;cYs$p-QRjv&b>>NP=6#iLQKWui+7^9LSvA`RLe6 z>nX#8Fdb5;xz~cD>i#G(ln$YAPT10-SEa7&+gA+AkPntbM^1!-ETe&vb=RLp&! z_wU)t6|-kQsk@*n)xW#>_tmb9&)bjPd73I)2iapEUKOt$Bq)(a8U^hG(3+x7;# z;+9w|$^~O%7SxsNHwE;3LB9(GcT2377t>eS1|d8l!WFF(x9<)70%B2gCjiq`)*;Q5 zH0y7SVCpQpRy>O&w<*W>nF^fF*a;u0nHjeNUZQJmKBkl&94&=pJuZbWbUech!}MPO zMhDgNR(Ox~JQh!*6W@Mt;%{Sqd;_?3)fE)1*vU=5+fPf_)7=p#|8d)YhPOP=sJY0b z&2LM_WHUF@aNb~b80K&zhEmhqnpMaw7~O6?sM*o&kU&75`eIOpCvGs{r!oN_R%$rK z5%E*7Ogk&j)@{3|+Q4VAfP_p3?{b(#V1I^?P?=55Cy5Ue!(kM+CRD+TmeXW5$v=~( zCwc1Ukx_*9c!fhOYFh@n-jMCYnzFJ$Z{PHJpRg6K2;&iHL_pQKjlNL;c`TJFwORhV zR-B)VYj{%qLbL=pV83f>OrI%?Pj=t8_{s98BA!tVa^q&a$Q6ZqAv|x>P>0KMPV`uG zKQRS(&@Gq}3n*kwiEOVRMINSFUcF7V<^vyNZbys7KDFfjXr@*?8;cQ%}oez;Np z=Sb!@fvi>hUe6xXpl0Rn8G1B0+hkJ_1*Z01b!$G?YIq8D=+@l~h8_F-NfKg>fDxQ6 zG$QZllVXeRb7x%rS!9|1D+axhGaGC&sOc)BrwV`{-^iml*q)M|#rrXgsL`F?Gxap< z+Ufdt0i5J3(faEf(nE{Z$23yCUsqkG5U5U!Z_;^-x*YB&E<-rZ`%$b)&lzVu-k)5! z&byf#HzC*ZPz|&le!F=0=26W+$Jbm_wsXYu2j!z<6$%$0mg;C;&{P#hg`w=Y%)!t4 z`-d4Eh*HA$^I7K@u3S}5cc~z5(Z2AM2QodJ0iE0H*L_|1!tXa-E_{ZR&W{#X@R96%RWM;mEVZNytLr z`OybZHO$21zU{C8%4W369QN2z_GO=0E4#peG)NX*C`4-V({Oe_283jB${98kXT?zt zp)VR9{6=MMVX68GC35mcvfl(g^hZkJ{s{mG@tCkP^%f`53# zu;!o5QwM(o!*2^pQ8pQxeNZO=Ob0_xjkLCk)Fy=kZ{V>?F4?DCp}@a6O1gZf(szaT zJZY)pk0w5Edc16|7Ee*M2p{jndHTeq7GI9t)WL2iNH+7NcP;W5b1m@;Wf8x^W9xzw zcy>-3cexFD4>GeOLi&x>l7wLF@{l<<#_rCE4M8ihK8G`UoXXd9x9Ik>krjox$o86! zr`WYRI4E37Lgf=geQ0g65JL%k2x+`j%nS$z{b$l?sXxn`bYNbI8s@1Tp4 zpF0$6lT8!34%AZKpndkradpqMi4@t-3r1PERBdbadj2mHjWdjq4Eku;=zGleg)E6t zzvQ0bR)f@cQ>@U?G8Y#SDDaQ{lKi$V9 zdSwYlOC%Ghdt-FWdFV2qb7J)Vf^FipWBKs{t5iK`Mr1{n#W;R3UU(UxiN_olvR|>o>MJg zW)`LxEELpEc>5%IVq!5Svx*cT+t6E6a$21ouF6Nv$c(iMIjCEr;EXrae*aX#TxPhf zD04MbBied4sc0<0pw(>NKvfXhfUwc6bYf-(=`VnKljtxo)jEH{o3H8RgckLmFt><# zr4W6PKOd#x%=cTHjv;z0zl1@*|2i|wiDvr*bJBJR|%$!V_Y$LQQmBA>8 zstTLW0&3LN=JsOhg&Bzns-nkUT#_|bw>3Nd0^9Iu_1ISRJ<$_yhB{zPG?~ifx?uRFB(RQN%g}EBi?2f+!l86v*Qp6^ zoZaSH0~GZQHT+=AF~-a;WG4fxALKti((d`hg%q_`kS$px5M9;pA&@y7wIY9=tx$mH z@DxJM5+kPC&!{^dp)e95nIGhG+gtVIv3;!k1_Ph1KV!+GW?fPf`Tz91B?!w3hx7_NsQiMN!^;DMD$^(mzR#=1Z9c3hZ-=+ zblR28&HFi%23&uSkp6;*=P{LntAX%iWi!*Lm-wl6y+73WxeBf{ zZb1#x?3;Fr%6XAlW+ZPYTz&rc4$YxbD96P=g|?NuotO*Kny@#OQGC35LoLFI5j;X4 zv!C5IL4PBslM0k!+0w8I`%#!I+`}i(d#7P<#7S3%nmM5H_GJ$nv)vG_?$53xddi6p z^Bvbb^L~PA_UO6iJI*FIg3jeoj^6jNST@l1U*q>fDwkH*Su{)w9_pNU8PQVAZTeRW z{@?m6j97-*bd)4Q`+|N6_^`Pty6)P|B$Z!&*|+j4;%Ixx{lzN$ zml&>}ud>>!y!6#+XBTeuEtT)4?;jL&f_A>H4Xee-#b0<*XRVK&?>?AQTAT?S^&UMu zp;x12wib+2ZIH!&h&hj5S(fckZ+KdGHVsG0|45=?&zk}WE8~|I;iw;HQkDQd+sTlm zil(ob{W`uXeS%>YNP=gH?2)FlAGpU*0V?afI3nC6P=X?qbB7ETtH!1hw#g(SgA$E} zt?Y*D9@S*R2xEq%?z~Gz-PUdH-)Ha}X+UKow=R=2D>HYl{xmt266=UIwb# zdZv$9^du}daBluE&n>#9bO_HpWx9Sb;ZJn`$?o3+|81WCV~b+Gy{5BM*(Ki4m-+HB zjVosBqS69bx5_`nc?jMYD`NtT2D^ngxY_d<+47KqzQ|#5R7P;4!HK716z7zX{e?%(uKdHl@ zD@D1EULP4@hMny6qqVoL?kr*5J)I-1t;kxrx9_wO2%Qba*$QsbTP%^o(f$WCe5rq* z__s;^Z(a=Z-6-AYUx|`x4*(`ogld~JTq?miJRzTDLk_PgCIRbZ)I75>>RoO!pQ{_x zu~L?2m6-XJN|2-3`5u^;@Uc3Ls}>#6+s2St40QEN+izPnA_fD8_TIuWXE zJ&lp6Xiri-k*ezWl9WHAzsUZPqyDo};x#6u>w1~=KU88rUlw-R@Lx#lKij+i`YYl$ zg`W0feSiFCGSl5Z1_wD|uO^bjxmmg(fqAGkU)N{mB)pAD_Y%ZYH&Tb_Mvu5zn$!1j z?JkB2y`%#x5zdYr+k(#b4yK6VkKtD=4BY*EBQS0&P=R}~YDo^M4oAQaSUXd!;}1&d zd@xOE%#MoL%^XIz68YKq2vuz3zR@I1eN`sp{A6-!VDUfmIPw1=%`<)5;wOkPIdlahXq?Ud6#A2 z8y!dp>lTRLwwEbMGH=?5DiyOW^p1`=VvLV{O$~q7kCcEnhSI2q2trt)`|X!mK)C}0gW&gdyXJ#f=vx?ynZ*qTCkYfUb z)OdhssyC8!i-(JpgH_mygasI7P-3Y@a#8#DZ>h~C(eAo7dQp@nB#Cj!9=(4J1~>i$ z5cQV~RkEGHuI(2@-rAfb__UvB^9ot|p0xzVF#uSt4t&#ykTOejW-9n0W^2lna$86L z8CCW!FZeZwGzbouM=?p2F&EVc@VJ43DLtFhM?0X8`fDer_@`*Wz+>iLFMZRMXfG zxVvp0CM(!Jnf2JZ9-O?ZEX`Fh$qBVK5M#iNhI`sjnzBzgc=MKXR_?P8unp(dJ;S;| z-R+3=W&x$=So4y83~vxNr!wG&%)L``$E z=bR^2fS37H!M*~?dv|Zt%xxjBUQb^!DySARzl#Z2f`Ao7kF>z&v?d_iozP>oeiT#e1x@QIaGdMMe7Ur@{aDA6?14QS&NiK5pany-~7J zpWS#x5@;c<%s}fwA*84DL4~-qsHlnj-2m=d2);{gQGB4^{ALRxd#M1pZ1~!24)1~` zv)}JIhIS#(#f!t?Bk_zxCA)Zp?$qh=4Z%3*X%yxuBf~;7B$Z`LS zaf|dxF9y9QsZA!QbJ_uFnS*pzr#nk;ylJiQ@OL0?lU)YFM^#f*gNqQgGZI_^o(kQGDjGRA-%>=e)IxTiG~%$;VUsWc|Ws2c;$EZ z_%r3qT;<1*av6v#etY;dKo@J@jI^++@>Q<4c6eXI=sdg_=U_OT-QM6y!;GrzqfSsb z-Gxs*WAZnyqw#C?5Y_&xcW&hht{@gHD1IaeUH5{U-*Iho%Qk&&RuG&hzigO+S4RLA zLW)aPdl;Z(9?+ud4kMHeS?3#~Q?D4&Kbzk@wkV<)zm4V{oTLe-b3I7j2I|Ib<%Zxx z00$Mj66&A8{LEq<)1CS*{&U|?bW?4(l1`24eUq3A3({|gylTxl$2g& znZ-K|^1ux1NHt+bHMSX3fgMCNt{^kBAyNh6^45`;dQW*7xId}E&$)5h+Q?GZq_3eT zX_G0j8-Eh~m{%|>?heRpO177Sq2VJgZeUo?)!UTv{jP zZ`pgT;^o$0IomqoW#DB%`)hL6S5&(Z{XPP{-$+pw8j7@QRl(X`qGomO2QAEA#=ha|fG8#Ttl-lp-cL?Dk zcR^{7PZ_q^Q!Qr_vwX5+g*iY{?(OPotwaqDgD?L7%^Mp7iwK6j-r~o91o|sYs$)XdZ#KOYJyBxP3 zsqva&4Gf}v>ZG+sSi`OtOV^ePsm~Gji|q}^nV7>}8jT_j;dOkM*Lik45SF#tmoMD~ z4XC--!6V!%A)1iQY-&fYZY6-xT71yUU~OrLOQTZlXBU{*%a{e3fVo?mI#r}9bajCP zn%ZaOqsP^dIKsP5Aa!{}U}Nhut%dh+oo|0zSGdDPBg5yU?E)2V6?H-7pt<80O z>fmAY!vB`_Y8|K}g5GB>{gqpCY02#q!xX1trBxhLkbwN2kslLQYDq#eLLDj7CaEWqTp?<<{G^ zK%L4NlQ`<1P=U9>g+);>3ul1uS0Y_BP6X#h226!TcRXlqz7ZTb)V=5{6-?@A4ycT> z-ijX^+k@R?VzACE1WcS6f4eP z`!Fk`H&d#_+Fr-bx>WF5i18|$WU>Y~B=O*%)Ir<LCFi=?W0tu3t!<+0dG)r(el6< zZjw&A`iu2my{XsELP7$Sb%k0ulAgpzQ5wddwEWzxnWB0q7Jgh-M5o2v7X83j=QO;y@T+Xw}MzOR2UfR=j4puUuk4~NL{eXtAYGsx4dZ+PY0ta-F zid%Wm(Z$*QvS1Wa8Pz+=Iq0F^h;HA4-=5Tf##M^C6_}FBKXq_wf*Z`?_<}|)JZ?=% zxBvW$G>M7LREo&pJFX_`p^6b}Ay4PQD7y`jMlzq>m=LW5L*peP$W7&c(0u>JP2V3$ z2q0_ZkHWTP>KpA@Hj*{dm$-a~SEe23hdZhXg$EjXvVu6xWQ4H!qT<{xdC+DW9rb6@ zlWHvIBD{!Pw%OB@=k)`0sD(`H2N*PLqc{|(-=e7~1PHJxG1myb$gr@*9^fZ36_~AW z`ncWyC6=IN2#iB1K-0_?{3ZWIdV`lXUL|bi;C)V643A`8SvIxM(rD~5W6}`z5)mT8 z?emK})1h6*btNt1ydhA+kRuo>bU7S=ERWTWqck!E1Z?0316=kOpZj>@3%y~?Fr7cu zBSXt<@5^zqx+VkkbDWmV~tYl-Qiu0@V0ctrnh{yXa4< ztQEoovNDurK+sr@s)Wvvx+3EA5^z?=6&^iLWRz;UsFn3Ind9evnM>%N-hED5)<2;B z0%AJ`lb}h?8%lpgLhgK;jIHh@J)h$4!(h>UbllOLfqs{35TKGMYFOox0jysWeW6w3 zG$B$aByoQ+D7#=^zpb+ZG2YMj1a^|RF~|X84RGz(7xJ@s{q+4ErB&-?!~ixh*shoz z2Uv{w&?Zh+&5W_$$OQwF%ilm#;D?T2guypW59JXj<;%iX;5hF45)HiXI5-Yl)%swV zb>Wb}`-Z`4`>qhZgtKjFMqfz3hv8Ui!RMp-wezsGqe6 z&LS^RSKxBfa!?xfjiKH(FMeo?+kyFO~DcvLQvY~NL+hV4k2`w?Ku+5L}xNN5P zd`!x>x4a2trWCP*sW*aJ@G#O+H<;hE^$!mTqtP?v)e%vf!%X@t6{xr3WKMXMsjTX2 z27NmvHmrhCDqvzbdcGQcKSHH47oOHxAY^8;EQ&_Q){i-X(}_KYdO(fEwUB;qxff7Zi`*e02al>h ziPsVB2(;r;?bO(i@a-6nRRCxD9H5E#&K2RAQ<^H%s{-E%l5{9BpWfYR4bof=-4E?4T zaNafirut}Ol#?Dd;dg8%)Vjfd%qNQYxF|_IxRsBaYH>O7 zYVRwVu}Ggv_syGNoszW(ya@jYhZ3A#_*4?_j@XeGV*6aIYKRn46Tf&ygjlv_{Aq|8JFE3>wUB>MWn14Jq78=#){OD)D}jkNA%=LLpO<8Q=)h9(W}5amX?Fu zYec9rA6f%qa*Ov2qh1Eb#UqUr0Tbc^o;V`M5nRRnJb7CGnd8|u`ClsPL5m%~Qn`ui zt~<=1+FH}P0Avn2|fVd!a zA{JCMC0t3P1n;y5za2x-;RJ*7k_^X#&C>VL+iZ>?p6?lkC%ruAoq<$S-$zgF+f-kx zh?a_RflpGDgH-6(dBl3^L6A&|`?z3er9ne!l_3{l!cTt zF%=XY;u>%J8-1n9CNuGGKQcFWHXC!x!t7`RDoP8R`SPE9nCL%9Xa8f{N3r(1Uw@Ng zCs}+fP{RsTXEqqXb2XGb0|QM5i|Tj?XrAaW6Z+Ba!N|eKIZuy}92bX*im)(va;8r-k7ya@2GQOJdrc1oy5k{F6cej z4Nfp}cr+~FWx)-g@?`?CDVQ#}(-y&Lgt4K|d~l6fEaCP^rL8r{S+3}ykFizp8i8OT ztfaU&CgZDMtS@YX2eSs^8-}e8dGle4Vk6H#jW}=e)XWH(D-$)EC%Ye+(}!$N%`3hB zC8Yv2)Z{=avE*(6U>sYi7p?PLOcdk!YgV)>oZ>j4k>h-!Nt=s945w(Hb-9loi)3Xy z9kv1I;-iCE;Q@Qt>@vdQ8Px;sRxZRp-jnUr)G}ehWTL7Ynpwfn_)70g?cyd1N_-4g zm?C>5n~TH=!ZX~~QsKQ6+6ikM$6#l5NGcEXdz8G5^N9Kd5oxoE%K<l;Ru`;)yo20B$Jhn!8xz)C#?`&)x+@}Xy< zVE8eF4Nl5Y1_laUvmPulmwvBkCKx9dPzg>?gvP{;9V|Q8SHX^$aLN?fl$agm{`85Z+NK(5wnh zRGUD9KB&8@b%$+)MSTyQ(S$t&*1vqTsqvl@zKT*E=Z`EOrxN8 zCnvg%1((_zj6`pm$-8$A}#J!`CWce$Q1=aS@9NZ8LTwFNx zQxZAcB9X8+!U~PN4h>2g>Nq{w(kPh*$*R95CYu?XBFb49FuRSfH1k+rRZBM{7x`#r zDC(@F_$>!u*n>*E158YJSY=szFJ+MM%k8(D6`wuUZJ{EY3m@ApYP1gl$P_w3C)6Al zRpV$zyXVh>WjUj+s$eVxtA_q2E>e%qbcw^l2QXytvvKI@LozVI;V7D<*EII&K2`M; z-J$?nLuT1y{g~xcl{F#_yZ7XQ#7OqOfM?lR%nd77=jyUY3$uY=J??zw`=>y~`5!d%_ocB% zrSQ|c&Za*oj9sdRMxl`}1UO(CHh{o;aRquGN&~J>kYgUnJYvS>G)v!hYuQ8wq*X)& z4)cfm1e(4Fik4VG{#4}o{BpfkRS>o1%Nh1t4ZL9|fVyFARTWGk7cQr|v+|3sp9F@la%KsTMVn4yDwXMd$_5SLn4-yH&Lp|#(N&+s8EP`7 zu{o1&Ulk15>upo^nI ziHxcNHxkP5cuNlgy%uzu{^OUd0FJ=%#`Kl~7pA2}Gdvfd@Hp+kCN@-4(i}@!F%d)g z1}Vly_{wz48a|1m5QXp|)!eG!&jTi*ZxV(Kt|Bhgrz?9~hjF87FUtA|SB5cx>6*Pe z#s?OgXGy(J&wkRb@WgEvJno1NEo23&8PWmy6gMi^tOjCd)Kq;o*<^TpbyO#J!pDch zYf_!iRjJh-)Bu-+PP~v2Ef&tjg49}=rpGMJ814QzB0W7;Rs*tw9wZ`Jv%M&#$77eO z07ooKqaebjnsxNz0XkUx=+akL@XmLa| zmYQm|o<*&pSh%;uqjydspddABK`;WkSw_fq$3qzN1@@)abh?s!Jg`6k<+Z_-%w&v4 zS&Et(np*p|5k8FCYV!h0voL_ts_8b!LJwlD#QK@7fpS~~ab-`6(6Hr%E?cMq!2|Ljhzyqm2AhhHr$C{VZWNjA zTStVeu*QZz^A)wR2;66&QXl=LiNKzM>3No{vcdH1ThcNqRy5oK=X2d+w5WPLR2cTh z$l8|psydTq9!3HW_D4#QGuc|+c$~HWc^ikSg$R8P#%sOL1=B9 zjV{88S+vVeq7c$vTZ?czY?CbA(YH`6Ua2apE(H$*=-Gy^p%eFni0T^MpU^Dk-s=#j zg@$-%n!k(5LX(}iwQ?o*{x+i&AjESB&m}=j^l{cow^rS2sSdHri;K(9nmd%DNqp0M>Q7us|w>?rwUy^v)O&4Lc>Ot`0|^A0_g|ae@Re9;FGCD z)@d)z7+wham?3=EjyO~#TX_yJ@e%jSCZ?{)^c8v!z+a*5rCpY=E%Nx_ zAG;vxXP+Yn)=Iy;@rfIpn7J;pY5c{l{7to3$|h){z0IpA>p+WM z-2JsHe55#CsKR9Ks^Yb#1W?s$tV>9(G1H^cT^uN9nDxQ~vG>KSMNjLhI3cU4tZ{T_ zR+Ac7c^CvNE2iTrl(hYt!Lq6)VbGLSo>wvPNy5O}oo}s-?f$iz*6Q4H(d@N$(s7;=|I@ZLc(U~$m>vt`-Y?|r#j;o;nMf@bzpr7&ZO(^Dje|jg~LHxP?k%TmPilW_)Ezr<4mjGa^Y07JD6wgLk?uD0ZbCI1A1wJsDb!c> z$UFOvb&0+hwxne!YuU@=QKW`XnOyR9{sD6JXUe1(ykOtR)+2ZfSpKZ&HpT#4c6Z#i#Ex?(7c zk!z6#O(dS>O1i{PBs(r%c3$*9?U+<}82q~mChZ^UQUVP0Gpy}(N!@&Ghz}o>_w<(y6x1@-W*&=J zxi$q9cErVht~L6qWK|tSWfwUL8@wxm>sm${?eS>tdNFeeQ59-s&>Ckky9^h`6H^T~ zftN*kHshy)nQctJFPLXZ0^1>D#|DMTw#xdmj8T9vfTp{6&WeE`Xt?rGIlGKW&upYe zH6waeTcf;Cs3%qs*gi%}nE{M$A3+{UFhPh}AaTlCP%0Tg$?srI=bZb|I45p6O;+1X zhZwUcF{CaOdo=6PCF`W|56b_aIpoW(d;jjaCH_w~le-ZPV`(sXZ8Y7@$~~yjs@qj| zd-_igdgfoGT-6@oLw%5nin6}h^qbl2cojn~=3wI+*}s($yfUOt5LZ=Fe!k(kXW)G` zzNIR}s*rlFBiI80xG;JAnn@F`2HdCQeZo6JPrge12e+B{JMQc7iQ&Tr47UA!>ql61DHFAUE#9Y=neWEWk#|-c>X-RYI7_ zCOt4Q{3v0^P~0|cvcW@$(>}rYUbA>B89#IKi*AV_EyvbjlN{KV618|Sjg-4Yyc*Qc zX)l&muA&b$nxfAaq1} z?;TV+Nk9aogG%oxO(vq#dD#1$z1CdktTXnf|Nqm;=Xd0N^Nc+2bKlpvuHXHD?zw1+ zVf%2K))&hP*xCLvq5kYB}z4j%6Y=8v{xjJv(YpO=T>%Gu66<{MVc2_xS$`b5q>X z{mG{5Hfzb?mv5hPx~^d?1e!TsFZQs&WX6zp0h9II)^(@axomsG>n`{l(FEgKf-r~` z)!|+XG8r}c%q1tca*fR`YlVREo}NVOMlO5(R>JM$GW0!2LVwEgT!?CTpi0y{<}Q9 z(}`W<+R$qTJYql7jOdo=pRm8=@;xj?51Nf;g=^s_0k^C~MeIFlbjPmEk} zp++q(3AK?6>je^}^dYN>7%?a(pI#ZFU#S8TwmT72rDK`jqk z0c7**?4t<8YJwR?#)W`z9jR52nBGNbhHUOwz`lfR% zdD0rmMU}N#G^#KjWy%Y5Q)dC3B$eP{KfTCA4s@4q+#W4 zf(1UB^|wm{vTtU@?#yj3+NC_LZi)Nk>Q;Yen)0#Q>QuA-m}hQV*6PT z$ZOI`pW3M+dd9+hrxQmz=YrHHU9U+F*FNssOI{Cxk~6;uIIyst5eEQ(Xn6tFF8quy zrd@b=m@>HC1H;s3@?)KyQ8FD3|u+b0-M5S~as0^uRftJjPSRI*VuZ0AnQc*Ifi08QRe)RaM(m`r!3x*T)s??b! zGh;qNIku5m(VclQWP($leeC2?lnxN{%r9~igB=G~^h`~*(iX`#8cQM)e_C|b@qlxf%S+zhy4Em|BRY_qjL>NTH4FQWo&hvBQpuIZmp1;up5%i(ZZVgAvU1UwHp(UrI3)&(V zC^GFK#>wjAdtu`9zNTP6f}jL{OYaw=o9z)*B72yR6_`>w&VyIX$1ASDs+_E5nf$TrF8}3@LIn~zUajSx4z8k;QI4J&)zhKQlQc`J38A*y9=ytrb#>}Kl5_W`sx`VXdYlsR_Pg_1lAI@fd0ev6)!kulDC9-}`>`m-khl)=;=qes08hBMvc05-~uNRsJrIn0U| zXddOA9?Vq6@s>{#3Mq~QTwAbWUQJF-Wg;!v1TKu3LWa4#Bk75(%9^CfJdWV=9r;C` z%-KdMJ!PO3@3k6<7erPCvtY)9&&V5Rb;`RzhLJi}tkw1;#EXd<3(Q*x41=0H^v-@3 zyXj25n(r!3nK)pQfi+66+VVIrhZ3^_FcqV(IM+kHOzN7!CZ~y&Z`3nz6 zHX=Dfl|76f)D-c_tz9qaogwC3?6-dg+W%3W{b#AsK`~oOe0rdBb8*U^)8<`M|DU1v z|LqzvXy6FlS9*cK*J*Zd8Enr?yoSAAkc)*HJRQ<%CTqMA>fDrlN6b7R*u7D<6u0<` z(dMk+OH7Kx|GV`6t-${;D^RaDm_Ynd8|3{Q%sqLRnaK{EJTR`(+Vk|y(og%+_UeWG zwW)yfqils--zu~<9aITydDpVGzhUZ677;u(Sk|mdHN?4o`#5JH_3#BQ^2f6k-JGP~ z#(VaC1=cQF=BEPocir>!mBm;7n!?V9PV{w>O2UQjjKDIOPd|nK*!=(G4KYsL@|M}=9Dh{K8<$+Aket(<&FNOJEU=$O% z|Hf_nFGuAg!3oru$fpnn{eA6_FWLu) z_qsMe_LUziN@3vCCpbPbvq6FnAV^Y=Z2L3b+@RZD=5>i?xm*ZnwzWCpIaE^%YM*7w zEE6~=jY(_Q&#)^0lLEmNrzu_SY{18Pt#iF|*Aec7&o+3979F@IC6yJhvES_6iR7P{ zpbxJ+n3(8Ho*7jnZ!(ir=O19oU?qQmJ@E!dz2o?_kwEh-`(=zN*}8UC14KmY3S)eR zQ0gJtWGHu;AN%k*+K< zRH7cQsZ6<6VA0#`Ww!+Eyz7Vio_76y`J?imCELG$!T*WZdgINvWD6ZOu#6nAh}&h} zwAf+#7V)&7d#p6E>O;287Z+%Yy(VkU5udfvWIx6%!L>1qP{bo69nNYyA~mqZ>r?oI zP?y*O`d)0hVT{)kLgz-VIc^l>st!ZgjOxeJtgcyh5u7}joMd6VuN#kXch^ZH86mzeyDC`I|VHHUZ&eclBM`!se*JO@r zZb;b`Y+Z`b+G3)a2lAYGpv>*|pEh*pDENvuY^7Y6o_w;g+?Fk)!>cSw{Ggz100ZlK zF7HZSD!Q-X`|ozYUUX~i^QbCmYfL0oWXf9LNi~dY;2&~*;;EL$&+IpurCbOFK4Mc; z)$dWt^4vkZ>UJ{iZ3sW-^V%<^!*4b&k9H7Al8p4wck@y9B6_3hH3^CO_K8gH*vzhV zFoxDaAI{NsK&6Q?;Y;ni^8Vq$l2#eqArT}T%iHFy*WXcFlWr?FZWRW@Lj|)RdC$!_ zfmWpiR6J3(7i%?M_{2wTR+D}{f!IFPtAQu7^ue-#g#JeSHqJvPEXTUM@{!6M&7Q|A&g$uVVfZ_LPHM0! zM;azY_w;Ke<|Atu?H>eFm6`URjUzoY3#dk`C>74fB#sOr9+BBGVhsRN!VO)Qm_P2L z5U+&tFnkHl8ZMo!kgT=UUB0wuq#99PjvUZG4BI8mY3(v=cHMHBopnotYeiBRCCglIbr-yU*qQB}7CG!@-LWp-<7A=1m zKVH+M&H2W~8`{01oW1$J39Oj;RYMn?6vPZ4 zCfQ8F>C><3V)Slbi&^r1xb8RiG~zJnB;H}lQ)O9M8R6g0#5=D~$9ft8TgP?WB%xZ2 zgy#@Knxvb3%q!tWu3Dj9Q8!>+6Y8gV-!x<@1!s>#Zkno?W0-lD@mHj!Rpp$_-FCmmByl}X-Nl?+zh zn@N~3!dsF4nXh?tDvVxHTUQh`V+VauuF{{oP%5YCj}uOd&e@UIHD$50hWBh{05(+Z zB0n0k?}YrO&zS@{D5HO~^u3&F{=Zdoolky7J(C< z*F?#uPcSwU?Tn2yM@LCNw9n$gb#ykNCyn*=gpe4UL&0pb`=d%N_H4ObX7urzc3Rzp z_jKEcMKFi^J!EAp3LUYWM~M(nQYqswY$nKfVP%C~I8HX<4ZO%UHN=ek@z}ezW+cq} zsgJB$5Ojt}N~xMh>RUr92(>zOwut)VsT=N?-~F1+C)`1wb<~4DL35iFF={BZt@}g!U8c2@KKU3*EOk+mjxs+c z#aZ|!xHwh&aSLWvwUb6nd2TZV4zU|%qZnfmCuYOT8=J?IatOH_DLV=F2A9MD0HB_# zynFFJmQH~)L*9m|6(+mrUTM80MCy3c4&%!eGTId)$;8QMt3M>Tw==P|0c;c5_nleD z?6$J2h=f>f~0afy^gNVLdH-F`>#o`=`qBg|0}MukG{+?YT=2w9nktKKNH{%DoNA`pkfO7VwLxYyU3;i+hoXFopsB!g{Z&$IqTduwST}^_AU)$4*?k5Wj<$6r7&O@91VyFFRE z&roxNwZHHr|7I8v<_=C#b&1ZE=+nxr?1~?#lOCA~+{$``04L4|NLiF`hubZDf!o?# zuSm5*(kOx`lpN91ZwW`6GJBT6lqg;2g|s9nfYvEaif+SA83l!h{y8KfWN|0E$=c7| zl46C1`G=}oPA2p&<#^02VYSx;%WWS3aD_+_39{LEZ# z7K~{in~gEp>UDjP!6Ud^y zGp)P3AnLb(RT?>1h7igRs*t{qIO=++6{MCWXTkm#-c`tdE1?^E1M#vlA(MFkFb`0} zDcO=WOsl0l!L(prEN8hAs%KJKD{5L}t<3>7e{7~3kPJGBO16LSlu9>ddF2(mQiHdj zj?^n-GKj@~E2flw&QY(gj0TsCrK%34PGu%iwv;9Kw3zE)qg1M)a7PDYuVqiyv*tY} zy2|0AWsTB63kMcE!s0(^fzNG*@!pVY=9ardFaU}PkrdU@m93y8KX-ufBFuP+juGqS zp#*^CGd?*u{Wln0fxIN*swj7E zWbRYLy31cRO}uQ0IASwy4hygzPI|o{MXqw(vAI46-Q?z_+(nxJ3MkU2{R=O+=8u~s zm3Fen8wX0?UEq22H77~Sob6BN9yfZ$qU2qbLmmFYoA-4JN1E@1l0r=e&%I9^6jEf1 z{ZJEh_tPkw|J2q2nQ3ET$mTR`zx~#CPn3vN8kQlfq|J6w!jtd6WeGKAIcSR9Zy~n(%O^n-7Y%QQM>1*AJ8{&l3fyPQQYWm+&onc>d6YtCP^MeZm4Yx2!II z*Q}jt=cNvQH*9CV>j&E2N+3l2vG--m-bQ?!FH8C~X&bflU>Y!y{w_!m+B!N2Y2a1| zrfa1}h@jd=5;%1;hd7juzdUp;-2xY!DZZwcLCvrxWeUstxhS07oWAbNESn)Ozw|G1 za@*X!LeX%1A<>%Y7v;?!>XBi*P*i+uOU}_yqt|jXJK}=pv2HGa5U4U%Xde%O1tm9kQw^Syx!0Ai``B3?xn7#x zKdm0_&b`K@Yx8p_D+J@5MNTqL`@7}-;qg{}bBp7~U0 zu-Eo!be(=N(0JE7wX8yS>6Q80{PzjR#gTY3FgPsi&zA=OcK=@0AP^}B_FBM;6fx5hc%6n!m*zh-*=&2nma zE1fl;(c6pf&Ku&stSZDN&8Vu(sHr#61}+^u#~%k-NtOaRvptQN8o4#nLiIzrpb}g1 zx$@_&eRSumc^b~rg(cvs;4vnZD@yk1E`klO-d+~kaa+TqCxld9MZe3EiXIIY#GE1) zzbg9Be{z<8f0d~^mnu~eU$eaPfPOr=22t=_?K6?@zWZd6@;q5=Z z5cox0=dl8`%pia>uozRObIrNe+7wunG_M6U0dr!2ydK*HY#dWq)tE_E{7U}(d`8KK z`4<*8i>vW;o#Vq+7oteiA2GF&1q>{H$p6sOO*G<(+L5Bp2)Rp@?+;}yfwjSC!h8~w z+3$AlX(AHyc?BBFha4;iKZnfUz9&oR(Y>u_xs}pqG)!>=3Zbp(<^RG{x6L%MVYYg0 zOAaO!yd1fuM{ojmd6VyM-JSofwx_O_j${Nc{>eot}jTA;u& z&Q=v3j@5M7TNG)Ol}kyOHKV>~@3-2nh8~uICRKus{Xlx7kN?i{{4XcThX%#68V6y2 zSwM4il8A*6Hh-7cS!0PgN65H6mvj#M9is!+hKVJIFV}~6_*n;I&y1y%;j>6j>|UB# z($g1oPf_an&FD5~X9?Z*tg`kopc1Fw;OBZ6ZGq@X*$W_i5XWK1NoVmF-r&|)@q##W zSdQmGrOseF??A`VP6fg9gvPOoZ>c82ZSjI%$72R%m@(?x0&J*V9Ty`d3r3LTtj>z6o*p&Z~Y>BZ8Bs zlD&u9G3v38H%mqYznPKA?US?XlD|o(b$wy1{%p~F{(FOn&A8?^eDnJ8-CUpCWkx0B z^nfC%R{bQ?51xge_<$%Zo*C~;#+0t;8}}AM&RDw4m<;QS_QPiSI6D#XgMuF?%b0f4 zG+xEo+Cr+_gkk@3ve77-`qy~?&T1R9T5EDTT+;Scn7P^^alAQF&edvHQ|ecN$P6#< zY?M<*x;GA<#nBM+`tt)2Tkz-&D;8(wSh0q~NGcmjp+y z4Dwx$0_ePF%~I$aztlMHi8Szku2dNjL&7>I_>3zU+1a((#5?oMO(rr{`AS<>?l*K5K@3p zn}+5pd9H-WQV76^j1*=aw-ov5;m}sh>RlXzYeGv&@Ovj# zA#07~@9}RO;Lla=S^ESj?NL&2SibdCMl25Y{q9sIrE?s}OMTlb*yveG-{ia}-@%69 z_BN5t_pH>2(2GhO)}8U^ou{DhzRwyV%OXuhK&x$}{DUk=R`x_F(-9HqvT^Zdo&|BE z_`nV^Yfpy;XpJH=b;mc%`0K=mR;3@kEdezWkIaGHlOwbqf~I^@YB%3kQW~a0AZna- zhUWSfymL}-i8`}&ST$Y!Rm!)8gQ+<74s05ow(a(pf_Rr%Ls(?|so;18DH0N(RCWkL zlWftTa3qODrC&KKA(5g)>)vTjf^dXR((^Ujq2o0b*{}x*9xF(f<}D`xxsn^<;GKn5 z{4!QJ5p%-AgY@zMyYNpUpSZx>dUQKS%14CEDs?s67;wtbIcYS+h}qymmm;;|E3KVv zlRg_(p8LN7F9WnO9-iuz8rGgfm2rjwIgp6sS&DjNZ_m_Iy;#XUtXDgTRPlV)kry>P zi_Kxx8ab%<;>+74h>QJ>*cokh@2 z3}HO>dd=x^KM{u0eRH9u>6UvehS&$Ko01_@j)cP++yiF9{;n?P&h27$Qb8xo$Ks0R zd}UP$$qY zz>F&{?`w=`OMzB;%+!4BnNHVQF!7kGuTG^-^gBCrFCw|L0?C1ISt}JCXcQ(>trgCK z?7A20S|i=WmFM)G7R2_0?GgudfBZmg{ea_O2U#WsYCBXpJ0X@ms&;dd$s_l?oeZJ| z0~y>MN6Wj*Opd7?qlbgPdIxJ-D>O`0WReSH^r0`MfOQ|3X+14Dn7&AB=dw(ab#%R} zY^zoC7FDDPm#?sIpdJ~GV%=p;jU#&gc59H{t+{CofN;h8DTN+MHi)I22#7j#;g{a! z76$fy@U5u_eNdt-kdJGRGkEl{hk-XeD%JW9ZV%@ruHT~lT7{eH!C&|Y+X3UB(-asm zRjE?N+i5gT3Y;vKtM+x4=$4JRSx|*`x~Z1S${m&#K7p_?wXf7XeE~)$rkEmKVGet( zR^yuMH7#PbUgAf2e2rntoDCnoxy6c}`t6`>fM3Y;%lg=Vqnl>5ds|pRfvu`z|6R{; z7@WGa19bb**xGZl9qkugAq8K)b?F)V^tfsoq|+wbI@Bh0aLzz)Aq`0C3@+*wGq~81 zpHsIKzBwV#8^+^c!Hx|{{|b}*a(*8jIBfg8D7!}9v1L23{)j3n)|NQ<&nI+J9CC95 z1;>7aZh@l(N|YJo{Y_2D+%BofXA>~nNT)m9%w!fz7ObbcV`)COoLjg8*G_spwuxL! zctp2bLQ%p7!K>43#6WFHJDICp+u&J?5K7+p9$wAib1#dtt6#2PdpEG6hG{NRvG;q1 zL|e){`{*lR_n-++lUJ6xQmjpNGtr#Qq>1}7=uw?`4I|wPU_%dMFRfnx2}~TD#+-A_ zwA7|%v9)0>naBB^XiEX9dx(>o#gVea8_$qD99ptaa4gIZIG-tRl3N`T!)nKW< z@4vuRy>P~_&4?1mO7u1}2sFQTz3pco>r5#@NBot~(X3UeRT8lq>7)h9?m76Hylc4b z=oz}>#g5!vUTYH-WnOcdR%I-a#nyVatR1d*RZ;04^}B-8>@&aeIlOKCw2J}Z z(UO(pEIBuIQ^%`-b-d4>ISUjQBh1@!*gpo%Jw2>u9V%{;VCa}{Sd8I z(!oUwtLSGB=p@765f*n2TQK2ElL(|we94HL2-HJs+LB2yx310+yV71v(gC&gO<oCJuN_G^|Kccee(dJD<1+=ZS<(|h#_e8@EE*iJQm_AHjuf*pibwtsx ztWHojy20(yNGw3KwS#&`7*xl%o#X9gKciUoQ4lAoQC*)+TPsjh?M2$u-`w&36&xbe zvSOzjdSSff3iDh3XcR~6!xO3*ZOvr%((+Yeh}eVYj8~whLd)eUrw|g_XvN$&5-YBH zQ4N^;Novd}cDh7QxN#+#q@m3a{_g_{Q{hRW)XrjUlD*QVPc z3o8jkXLYV6O(j)+0{3Z}dMSiI7^oJQ#I?)O-^-G#?TcKb3beMUz5$OaClNLDmQVUN z!)o(hi;pt7#gddNX5XEuvuTQ-=fcUh3aTk^;!+j4J((@9@FqMF-2%9?RJ~8_!Xb>7 zZH$DC!lzP2uV}?RvFc3~B^nL`>fZWXY5KjuB+6$Do7QY`vg@=k@ufGmBKV?R)u~4 z<2|!mcS2`w5Oi^94SGGNIzLwy`91O=>`!q$Dy0uhBKMnt5(iQke~0^v2I{>J?{P>J zwAS{vZu)mjLiyz&+EEqE=9Xb94g%Ux&8R^#bvj3_>j&ud_N1s{lh0EDQ#cq+1C~N5 zeyp7h&{%`~pwQ8otKrW8>JTiks!t~s;(e9G^ep7TD05rM;~9?D55+!5Z5mP+RU&AO zLxINRsNtS2yU%RKu;g^z?ZGy-3$LW_&z>zKh;1RD%4w@WkVSC!u0J7N51jIVv~z4w zV~Jv5fG0(Ed`X$~8^VK^Aw3TE#3JkLM&x2b`w!v`Xl`fQo>*&Twx;S%`FI3tTK07i z3mxof1;)xnYPGmzThOIvdyL#_*_)WseYK^b8`s=&;dWDpOuYj%T0XoDr z0kpgs`$_q6Uo&4;eLg`{k0WQey*(!so~Wb6ei9deUSRx5qwgoZDlNn(3^n=iz(5Z` zl6V))t^BXF?%!Hhp2G*N>=9A8i&Xz&<0tcMQ&0J9=ArgThL=~kq?(%A8o%eHI(JDR zK?$DsQ-37M)F7;ktz=yC%#e8p4e)b@$30 z4(?=?mH)s?kC)qgnNvv%w_6fCxclx5n9OpIFLMhtf!O?#k#{^*tzsDKSnyB>=e{SFE$MU85NEbP7Zq*guxsTHseUCt zP-wQ=KpV+&MnBd_kEeN$XO#jTRs1OtmNF`@#;-M{$RN==b=yT_oogMykjV+<0Wu@!3)>fm8PBP~m7bT3seA~;Ss#K0j zhYbpRvs0#E?-3&bMVk^m@V{f8|Ica0Fa9@fZyCpOljv9e%7TX|HfhqnyLzdu$h2&| zbt}f%)VJb^=8E0Uify!!{^erhRBE^L57HGb*6WsJiT7ym%IvLRe^bm3xrd-do*jb` zh0q1WS(>sSYBNsT5&@t!C~tG?IHGonEJRdU2b1zqQ;O3A;p9>dbPqH&+EOzkT$9$U@21%g&RdKi zTnsS>BVBs?$#mXe$EOE@zY@MMR>4~c6P5juL}p{RN@XX6b*i3yU#~E)17EXRS7n-% zXmYW=V&DQj(QIpD{ld58Dp|KLE|&TEOHD|!4S$f^y~DAWvx=C^$vKOPffP)S1;i_~ zS7K3vf{rPq4X@66N#Zk-c_H z=J++B=gy_9K#9yik<&_i%fmKIkpAQwm`IHaPIzZV5O9g-ZgzLZX+Bpm&sAK4d|(1JGivHf)zw;*Cbvz2 zOH0m}Iw#U|c+_)-N&LF336p&qdVFpPdn6~=2caRXS4wJ{hM{rNVng_&w zO8m9x$y0X2R(=Qw3XP$5p~EKx3SX$YPgd0cd7TP+!r1RR>6u?%+^v$7;@JvVgYE(= z=K^5>TJG(`PMbZ;?I2m-w2hBR(&d(-cK;EDGnh4lYt}U&*l(;TsZs^B*t+H!Ev3|c zk|Xtklq!55aF+{d(ITSxqg{iJIchxEpqt#xBGJdp6I`Y3>UnUr3f>cKt+GSm*B&-&VlgBVJJvA+K5--!Q$IsVHWwC4qK28_r%WL~Guso!`JDQrs5*kbpNIemoy~0~v$dsogd!{-!j9W_*oa^fyC!mtwX|dyl9Nj)7i+BuC7BE~63Xyf! zdNXbm<$?jU)8BZjGl)y`)8I9oEWYkqN=);`ns`ZnsCRz*lC*OIBjQw%*Bi>G?z%l` zRw_>9{ewx&zsPEwL)vXuumlH|WfFR(Y&cCMw!{0I!Zd}4oLXiIWG>OG8@k6S0ztwa z^kG5blFIqtt(n4sq@%t4?OmHobQUxGO&E8ac9z1<`@mQ8+wlf`A{!HnV`s0koX*ZS zaBpAKn30|@mR0kokI*U8^*gP#+32Sh8$?CK%AIj zEKx$gfJ4h#She7d#^mIb;3diFgGy$9QF{k`O5#|X^NZA;bP%H-YvV`F16iLVhd1I$Ddp|0=ic_bq> zuHQ_{Bi+l&I@Snh*p1@YGe~vH+k@CU>!YViIzLVe$amRkPuG*@E#Tud7vJk>X%S6O zaKD!;>|vHQN<_TI0rMDD($i`-!*8zTcBP1;$c)xl`JA}|j>});Xot~#AJA@ZR2{q& zt=1V2alocvZ|tsQYPcLVXV6*ckrpNziH|SEL^tci$6&)67|-!;=9SaKXWt^jrIJ7? z@1}_g_}(KI2pbus`cQ|h-uUSO9gxt5;knc@E z{lI3bR21INE2Y6Cy}dX597Ul+^3tktQd)mKT)`zYSdVp+0uFa^qj~@b4t8hhAZvge zPyfPu<9#=ch|H%+HbLfwcxrlopUcT==}|2sK>h`7Mv34fF}kqB*ZMD$pMBS0e{2EC z&;U|F5A0yc7BxKP)TTh zwpsds^n|Y%4Dey?o}z&`~ng(drbV8PEI9@}^Qv zUYl)o)x6{qfNJOM<3yTJ^8tKKcZx1B5+`3LxZ&Oj7UuJ$H$?9U`I|;t1#MTRCxrrD z6Qzd_-hbUa*1G8nGN(+q$%llSjmXC{%PH;Igxj!T^W5~!2gnn!`{-(N-&wkRu?Chp zuS3K@1w0Ut8KLb*Hs-#Ecc{-cIF2-u-MqP080R})ZxE2`1-i7rx_$fVtz!Mm=hEaC zQzy33&)1YGx5N}l1e{=$ok zY0?cIdnKn}`4`?1c^bQY+ULj|bFj@NK|Q71pkifB@UoVwfu}mNyR~~~E$WMj4KRN?aWYLC?E8&;|@oNI7XH8e(}{r>sO?E#P8A z*)#Fg`rCBdyfY>Bva2GWd^i`W+t<%oihjjbCPDHp(fWJAn)M$!%w3LvAQ73q(4Gff767)9KJq=C8wp^r3R0b4|{v+0Y;6yc?DWhVh+f+Kec#k@vBZ- z1*2z41tnv6)=}zh_H%Co(%I>U_`^(&u&{9Z(u899hxg1UvsOaz+H>$jh&3WTI0FVo z5Ftv8A8O==hezV_WU+F@Vky+k$!-J0@&0;wS`wI1siZ@245>mZx1{Nmi8P6!Qw_Nz z(=dMW%s>#55wXdi`}Y~8|A2e^i}kwHTd+m?Ybt3!9U2FQm+)^kl5cyY0hk>avw}@I zl%-mJh~UBm#~djsh;%HVX%-?H^q8GJ%Qq)O^~6%6eV5+R*@s^gp1-1ajmi^2r_9EI z3*|r5jSn`+ObVa^41sc50K?4?X)*s`&tt}>?DWkTo6Q__)*O?tj<%0WfDW0)rXy7_ zESRoKOa?NjQ;HL{J9lA`SI(bLSn&fZX)HRH7&K1eW816cMe@VQpq=#7#ZYyeA&DW zrm8~6jG|aDj4%83d7YmdhBVIHt8w>;6}1`kbqqF^mo;KDI|Fx;CpPheo#A{+=D+I1 zY@gqc^Z5)h0nj_>5oL~IS}M~s-Ha1amM;C8I~vEPxQ?j(6014)K3~5c0Z#dC|9zR{ z`f>}Q)8?^g^08~wG}tXjDFk&wkWzN`7v5+k4ExpIIyh<3W;qeQAY_Zb6$BDVq-&U< z=n!Iq=~8jhpOp5PNc6J z#ro-m(caiAU;q`$F~comUfA}?%u5tq8+Gh^*#vwwUu8K(&FtV7F4`%!3m4X#FeWfm8>>jI5$5{XPo!-ngTHF!ss6xV zpFTU<%c~w-WY=axz6nV#k}Hq$bnld(J18GfxaE1iPrlE3$wx+Qa{ctpl1Bm@LZ)8K zixN$HLV_b2B}Z-NfCQ4Fbr;UYMZh4pwL)4rab^>Zq zOfgow7dEXMFHGUp=wB*!JVv{K*2&-xRMWDMBX+8?24$iADP2sN?o+hpN3}MrUp0vY z12pVp_(hyIT01!N6A@&)&2{8uJ;sFbyzHbXAz1U^!65gqX8-}3fc=4k+EzSIes1kT zM~!<=g{I)d<_{|!#ua4_M^nK9Eh8d`Zs2?XHPJBZID>Ggf#$V&2$`_oq-i11=wNLj z=Lo2(Mw-3?N2Z?YUO{dSLX(vT1&j+ane#6gMeJrVIe(?(-ID#jwEsoT7 z_=oNYdBkp)kgLl9I?u;rpUfqmUABm?^vGkG3E*3GN3tO}wy;#QTIN;;Sre&{RnTt- zOX&FRmAFFrC)RLBD=1@^*824Ej?Bsu_Z1m0j^g{&9``3m#y@Kz76z|D{#_kYmHcH!emH6Jltf14N4t*zIX$ML4|!c#Q44ufkpgm)&*3@*+fmem zz{e6H`jT{g!p;nob&LhQJ4M64WLa7rS>Xm@e^g!ODxI#ip7$rnFj%J9UHEXaw(Ce_ zW`3Q1tD|r~9}pir(x44&SzTS5_1QYmKO}2-NKqwz?Nt%xmnCt+neD(f^EUOl_|{nG z41JsiWu80z7yRd!M*hPzGil%NTCyjL#9+$&ZlT{l@)l(Tr6?XVw!_)dynwF%oe%w_ zeif0_Wbh}VrX)vmPDBJ)_VpE{Xz_PDQne)H>Eu-5Pu0ny#ap}NTk(*vzwq9c_y9XU z2bn*qv`f3H6YO2tGjzGUeWdvx>7hd=&cd>?-|=>fw@`+wqrHc7HLo7`Hm)#XUU^J= zy|l)>Dz)rnfd>HptX63J(+wC|X|DOn(q&G8>%jcUOz-=rm6%s>D8qE04&NK{lv|~L zg8j$4{+)gEmTlBV;6QH~VJz5YvuI_t4;_30R_k0eUFOB<>({)m@vdp`y=^0xr#GNW zn>4!jg>Ta*MTnd^togN7%G5CFFTGoWgmhN{e<`122NI(gN2+4}>{!vUIHymqOf>9Y z+=*RU)ktJ9v9ASJS}hZOg0b6U5d2C$KN5m;46~i6Em|fWV){AoDP+HCD_U)&<@{(#wCB+~ zYM+o0l-(70M(bgSPG-aRX5IqxHOY-AG&e=!+IqG&>nvJU3~<9SABGcXv(g+7G-J;} zN6O_1a61YPLBData*2P?%O|a^lklPtcYIy;{^akRxn4|SQy*&cVXDFbM^=YNVu1Y1 z5%*SJP!;xZkN6Zn!YK_O_E-xoH_3?XwM*Kox3uzTe*JDsjrqC?)k*E4@s0)SJvk9L zC>6Hv6R&wmdsSQ9lcqu(9PPGj%Q^ac_k%`~%q0=gM@nNBb$}lfx_F;S`gH*jsib+7 zs(Yvcqu=Hmp*0-lw2^hRZPKegjh~rXJq`gx>+4S+k|rd3p<%n7Yx?brf-upp7_TPZn;WmRg;f)FSCh8Tu zXmRn0RD#}5HtOtW9|)~Sk93x-c$n-vuuu3?TVf`Z%WHYK1kTwcy2az8GpQjaFZ`F! zgGZ^K`l6J@*;kfeMJkynyVf+Su~f+}<+)nYHs)c4<7y%%Rrh+S%`|yDbj5l0kb~~r zf%oDE9Mv1Xda6+4DCxY9?YJoV#bD0fn1+GN7MJ$O`s*QZWTc;D7((eHjrvMj%j$82>^X5Ui1esg(W)0-NC#XI$* za(D$6nL+DO&p)spupd(l^T}Q@bdOX8$0v}w7z$rP7R>{xnl*z0HM2&G-fvn47_WF& z*>Ku!_DQgIs%MlpNUQJnb`}VIaNn-t%3{(Q_EPS-q)=WIz8iRG{F9xO>=AG4`LH&4 z9nQowNHY86bKX^^vh^@$XMU+$juD|}MuMn(MV^%WIBVecLi~XHqW{-pdN%KX882_r z21hu%`)2LOp;0sUuQg|snSyezioa{mjG%cIubv8khFOVYolNgQvh8}SBipT_T%ut+HAfUWh+*V(yid{;yO_-7a1lB<*8U$46YW3 zE453ttRo{o`F!8pPyp%w(O#8(i$Cg==aun7mHbyz-IznGnPiS6#yA21U3vhm$wvZt zX@7zmC*QpyzCsm<)n#m!G_jXEO?ua`mCyP(b>649()bGJ=WhosDFYy$`IVV07It#& z=}|QTg}ih+^6Nzsh7znXpe>E)3KlMdH^F0$A4M~B7v?uo4>#|I~ zF`*>>BFisNEMYlW+(C61zCgCpKqtyK==k|-2_8!SNok!e0RWjTzdzG*QFs*h@ODzi z)pbaYS+wicFquK18}9H!1XJeH2e`1~xLujw@LXLA1;!|!Q;61uS$CW&mqhrZ#iX74 zev7PRj5OkAKc41)5cbwVZEX!3FU5*G!7T(2lmyq}?jEd=1a~bI+EQEt1PxY-y9C$b z5WG+v+M)#t6lp1ybI#?vGk4zi&YW+)zw*zXy=Lv%*?X^NJ!tGys%hwl~)y6<5`Zfs}R6n?#D82(%X zR~&csGgY#B3}>Dw5FJZmUSQ*{!|zH0Sd`fdUFM0*CWv*|*T=+dz$~YhdGMe#$^EOX zx8H-a2*Z|hB`T=w`g;GosF<-M?Ny@~3r=sG9&PO^DKWuO9LG63P-KZTjRVOdXj6g- zX_?P644Udzmkfe4$Z2{Kf>UGgTWiLyB0pg*iJKqtw;D#x5Vl~&>QpEg?g*U|rHIW_ zP4-!&reby!A&t`kXH1C}%P_O3%LZ698@8DLPoM8G$zkZkKy7=W z$KrhQdCD{X3kS5^vdhJX+P+8}ErnJP>-P=bkNTv7JJ}~Phg(lov_(3l&J8QJjN*f> zz3tw~1fFHi7d{I8Zn$-%lL(i{Uu(i~{<6{4I;+-wE4I~(FXzzO?CHb587xuO2mg@N zmxn|JZ$xy}`F@0IsM8ir420_ZSQ^p0XUG`-4Bc6zojy;CF!zvNepAf21^8yT-3JP) zn%NmJ5B-S-GN&F%eZguE=F*uC1|jcftFhLan4al4_~T#G%t~U%$u)&d4F_-g$M*^* z>UMqN-bO`7XT)VCuT+cEXFsmTrdHf>G^wWqc(&{9?FnwJtrKzT2mhYD{5CA;D~*2{ zNaboO%>O6^N3kTYB9NBqqKeZU@e21m2XPk3;kVPRSYcy8U1N}aBsh-{him4z*kd5> z6se^66RJ|)qGb~|V%H$%DZimq_L)>uQ}1N!{wg=t zv@t2Ro)Npp&*ClRP_Q;>8}?No8O(CmP>5=y870innEV>$GWUK47Q9`uF3?LU?WI1x zJKi(opl2fkG4z~`C9Qf4?5uFvQP$la$WXT#x$@o;Zt0?P0UVp~C8l`Vg~>k6@ARC>Hy{TcSzz*n^tl)l7nmlXW>JGyojm%f-XecZTLMbPsmPpBR%0y;aoi#t-URu%|rldPEx zGx3y2e-I+3dB|+SnzR8L4+tv*oN%N;6fael*hci2DN>}rubyW~-4+Ru7eYZ>;?>!Ds#rBVHF?bZ zHTolledt!nDoM4cbi$>#`T1GDFir404=fVZd7t;Q6hj#@TfSk_KQtv9YK`3HkCo?5 zAj9&qfrGQUBPWwx3?7`ZS1|7DkGL9%5oxigq9JNnovH+ZkiU+%4eEtE-;r+WoW^uV zPJN(t)V7U$wKm@X;V!PABuqnWrX%c=lIi)WLLICFA2c{yOBB%tFY9n`5WRatPw2+A z4W)R@Cc?eTSOv6+i;CE`dk5K`$~;wX>MiZyJa&gsj52Fx-8*`Oo8)HQC6spID@gML zNmE3eeWl12bbaN@C3Yb#UUn$g;65PWt8YhccKwA$mu_AjBm5>La6~Ca7BSk=&;1?R z^o{Ba_9hFoM=a{eKo1?vR|f>Pre@~t77JVDGK^pZvBTj??=}D~7B&EH7O#To{HlP* zrm|*0i;eDrFM6Lbv_d?QmL)c0Qqc>kIs^t*>nS5_22ee6E;bsL*yF|f@aC5aok~Ps zSV6LO9qU;6bgwNB+d4OKzxY5)Q0$ z(349roKW4c_u_H`e5fJZ(o#w_Cyv`PdrJM((}In(@iezY;`d`n^BzMlDNL?~ zRLu0WN0PJ8g6(zj=N|TC^9pi`Q0;xIrGhv-;{AwwX>nn`_d>tOdG!I6`h#-kid>V2 z2bTGv!M}PXEH(mlaR`qeTuI!Uw?E9HEeYa1-nCDDinO5~0WW5qogt}2a0i$oAXlozR(}^3VuVfC;%L)_K)T1e>>u7$ZOszHC{5MbD*Wcv&=PY*2gTJk=J~ZJaW>vP5 zvOj$C?X7aW( z9Pf=bcv)3EZp@}_JPq6_wF<}$;t;3G+!OdkF-mV=qcZk|wR|?xR|Q&UR`o~|drhDr6(QNQO_vDY?({GRxptavWcEY7;0kOPlf!-K^h+sPeF%BPV9=^ck9r8R_@ zFYu_P!5iF>&y(3(eZ-)8XyHnVWK@Ewx~#-_Y%6JU7@wbH;9t-Ks;ewd?mEbg8a@D5 zJT`8iJjv%PZ9DcLmdfVX9=q25YSLQH$vZWjW*U~gV&tWgEu-N9)MYwuy6zG5ZT-Yw zlWTfz=oG;8?TAJHN_hRO*ir~y@lF#uaGE(_^TCbR(zLy&4n~w?%*W$ztff&tFXfO7 zv%>SzDhkac;5%`}m|qDe*xp%GkzIBy_<2%C&G*#1E+yLw8HjpuWSAMFqD%_eMZ?RoOj;|#Yi*-M>sBjNU5v1>W_V~7atg7-2+w8CV= zWgeS zTH_B;WMRuF*tIbXdn!kik~(A(;{Y>s|wY`c>Gj`&bYglEViJ~Ed`XP`cTC8?AjatEIIsQO6kW_i3&n`kGxTb;&PXE1|E?D zAK0x-xD>HylFP;0{E69|Bsir@T$6PKMr9^YWUK~)#}exrE}F}RvK@BYw2=UzipCad zo5vgL?bsV)nE!MR5G|JLiHk<7f9Ao>CP_V9-C7K?FqoQ}uIm*ydBU&GZzV%;Q56R) zs;>smRzeRN`Vxb)9J9+w1nJ^G1*X=$U_;1IhgbD{p5B68Dg<1_bPC#IZp)q~W}N;> zP5PtKTuH#2uS#7hj?!svu6X;JReof`?Y(7uC8Jk(5q09;M7G8E&Os%j0NVO%)tfa0 zc`hS2@pA27?rnv?yd?z9$jrUHu4T;0ES~mIO7+fd*)!=)m-9;-G_J`+au))Xk9>RH zk?D{1wRSWw_(KxfF%R0*ZFDd%^g|5z?IY#rrhPnG6`i5nq>qx;<*^6DzY7Y5SgIXu z&E0kvci6-^>f{{K@T-s%PuK z4MkpcVhrx2(=+`slEYEW{rRRo7VAmLb`8m$M+x*T?UEZ9nA}kzzjYpgy(r9N;Xy8o zh!>s$U)Qw1=bz5u2`zt;q5WFBm<#`9@sop|k`aQlH%-bsT-mmESHKPl0v=RVShhfu zVXhc${E_e5r;dS9iKV{DgV!nM24ZR|LtJJsIxW)h@bC6292)_&3n*p_H9D;zSBIw* zPM$`%YrNlWAnA|dY@B-xDN-33Yp8e&&fkh9H7FJsF4Mr`DKb@P#L8yV1w#y%x1Gn6 z9G4_vNdUOB^Vg!u-{1w>W{i+e`ZP3LwDl6Tx2S3|L-7TuqG!dZ24}&E>jKH$xKcQB zO&aPykCrGVTw^$K3UBD_X5*Q@(iN?Krfo2zLgjk@H5}v25{r>sHkP|jE-5baK~aAa z8>!mrE5g8M;F_t36Jai)cNme_I7cI|&!gD4zbx`Eno)}S~tcc@_GmpzvZxi~#xS})^rEf=VW<6R8sJV(_deLz$+G8TOOr`#fBivE ztftG1B18Jm%CQBeB<%JRe=o6Po7C(XQ;tXqWTG6V?6rZ(UQ31qr+-|fUjKuq9ai`c zUQXA_)19H0TcZt53gcseGh_|%{)tqlr|vuniTnqA&Lg9wL$zPMItf>sD#=T&U0Ie!GpmK@+2b}Vj%lX z3um4w9P{(Iq}^i32Ff^P`RHi=K^BPwVTj^SOXpqKWs})gJ!$I$^@@}1T2q7!eSB~k zJ&Cz7L#5-P6tkE_p_nSf?}UKo(<>KWV;XF)wLQ9&PbH3GOW(_`iDEMg8HhH2RETfr z`uu}X4m?2jsZv_Vi5Y>UmWEaSzX4O_{^u@S!oMeQ-r&> zFDZL6(eli~tGX`EewxMbVy~oC)NVQp_c&m}8KszFMiz@jh8f@jBglUDU5ffHlm;E7 zWycS@Iip?WlnktbVu`@Own%cG)^6f6eSuE(`+kGQT>me+FPWek`sJ`09g58+s`V63 zhyl@`?+cte*ArN`+;K#|_y(VII6dvyOp*=KsOv4waJp?3meeb`ucN(mk65vCdp=uQ z9gsp4YMr_BFv3_ay}3`{S%Hbt#-m?eM~NxTrX5_wuZJmemgmQw6OQ}w}0zf{%-^51xVCcb-B^x@@j~ITwf)2*!A5q?1 z9=g78BZt!QHcdSNRi(XPfy11?#UEs?a^vZPn7&(Du^6y8Dujec?a+-ulRS*I{lVop z7xZj|6THGBe=qA`-wHMJl=z)t?A$fj5QAr_54omvd7?l{b5`ncdb!~5>CwPc1v`+L;$O=qw~P#N*XURdHwAuv^(!^p%n**Z z&*r_VqX===7zq6j-sGw1M+ax_DTw^r5re*l2BMz~XJL~Q5udZ@Asb;E(4A&Q6+xx$ ze#tmbY~7ZEhd%4UB>VTq(l*z*?kO%edfdQBHIu4 zaX2Zc?$ky%9Bp;TfXhTr_ra?~ow1`R$p+gw4E?8$+UPKa^g583?Vn_?xExTE-cLeD z&cLNA@h-C_Mf8hfS8i1nA1hVH-mxgMDW*_t8(wOCRDs-qRrqC;}Tu5%$H+q&!rHfiZ2_* zNlw%GHWfvNP@g6b`ETKY1D7{4L@N3U6G9lp)gtqS!2icSHLJ`za%^-v(*W_`~pv|WaA5^1LF#T?-wAVZ|M zc=ccn6ak2LuZq_d-y;~rcGdJ{5VoE44u##>x0qP2wDAcPV0XavpXLdT;x_+>h)C=%>ys`ear|2gR`^oqB@0R-nkW0qWE)!DuUNAGvSk^l;TANtepj zmWq^Smf-YiGCkPg0Z5%^rOWU5TlOs1l5??EC)akEgsxvzN2K8n;l&}CPdfB|%VHEgz37eO zhnvk1GV+&7XRleZnF+^BoJI-CBF)Y~;3SSYP;D|30O@EjQ>kr0N3^9r8VDZ`1cwLe zauBuB8{SWCqOwHJhgcgVEtRv-9Ng3S7{E1J^i8u5_Nf&On@sLaR=C}_N_c`@v^~%r z@s-p+3n~%Nw#-6FB#OV#S{Qv+b0YYl862foU93y8amCkN-PJth{n}~yjgEb#QyzeJ z@o7&c-HZ_unIz_D0E9pNDj2WzzLBqJ-GMONh&llka--h>phaeju&cyPoAWmHWw0Dl zzRF>fg|EV;WoMdkVX^D&6Egro)!gq^PXRUFIjJvQhg!@>V<1UT8703%w8wV8{9*aH zhR?y(`r_k%@LbnFI$Oznd$_`tWjK#0`!a{dc7b2{Csmh3I8PDlRweVR(*x5ICm=Pe z?SI5awFeuscyhjnR?LC-=Moh~&|*Sh8afg>+GJO$w1iY^S$8DbdPcD#Q*J$VCigiU z|71^>+myr}&siEz;ZZ~&U(nZz;H8F085G!!z1FUFu~!JK*TtoIMc3;}qcTPTD<`>7jVq*MEf}c=IqmgF00{u^#hT z=PXhKm@uA%K91PZmjn+@pz+$dD4i}9(IxYn=EUug&mt!$O_~KP;A>rD9ot&g7X|<4 zn)e^PCGXca=UE&7;0gbicbxBe)*^yeIwHb`AZez}0p->mZweeXekLaY^lddoGW6h~ zF;)?z@p7*TUI%0@o9fz8CY`ZN(!@~yB1T#)edv8f>6auP%%fF3CFI8ipT5D!N2@3B zygm8<+FJknt@lko2QivoX6QkGUq8(<^}<};N@Fw+K6Mxm%C+Li-e2*uir=Ot5dBiViE zuM@7qy_WZ+zF)d&@Eu!63{lP~tCF0Ftr0m9ve|WWp~-VWAF$fnv=}wCx)A?oAbfq5 z^;@5QHAXh0w%pYQXZ65Z(~mXREJziPsRJNjgAYl|h_YlgFdRtX+%wXr{ozviY$;L0 zUp3Qo#(3YkW0+tVF>7ckKx>E;2O+YFd z892!qQXJ!u7HjCx;Ki3opeDy~vzm^!))1ieCh=~NjJJeut2e#vdE2NxF~5EgrTs8> zKR%z?-xhM6{i8kjkM4hM@#tmaVNqg7Hx45s9Qq72YZTkhqP%1qCTjr_1_S3P_GHCr&+s@9z_7XT;y zc@UZ27Y0$7-1-xG@9c&teG#3DhjsNKiJy(p0kC|@pQCJl=q~oZQI?4UnBMY!TS#W2k+$H5K-0T zIVi2B8SGiNL3e+?K4iAIA*2S-rq}{8kDff2#Q;3@s0Ay~*Pc4*JZ~J&K@7 zLf7T4wDFfIOs`MJ47b^YoB8amQ4$jy;3hNa53jYm2<)rkmOK{a0I7>isVqelP^yOP z?{iklAFxyp*Wc?Qy<1tw-_48uRjJr-xLb%G(gv>Ch%j-sSEqya)hZLy+#FdfZQPTF zKd>-vw>lGVzR}NmoC|7tGcU~NVe|$f5OFo^lFF2=&sb3`l2XhoOA|Kme20mG!@!$= zVsBI~yNgLJq^#8bS_B~K1zG#Z_>$9s4qBs0#abF@B$x-7pU;!yXq@2rUSF>a` z`U8S_wQXORQxZ|p+mXmn=fiIBX72L`mGCQt_|sh8@X_{-fEmx}{;U)@r#iFx+524b z6g@-Dcq&St%O0W!boFYS3BamBpOpG!SRe3!>g8D8f0U6}>;)$+;wiCiy2D`EdFHp* z(n={utqzp;wST8>zLTBYEq`cc{pbcN3MN=eyeFnMFeA$wX_vRPK9iqIThuDipC3%& zcIF;FObolR}=feZO8g9{b6fnghgcKm?kwfcpUf0_iNK9?3HaLMa@@aeGHQX zNBN#ApiJ2!l}w+Ca~&g<{$60GWxF zw#<(W%f}ZK?U7JeYBn{B$|*z~zOb;uDp3B@a`VtrCeKf%+{T0>x6&p-uR z_-?w-kN45(U^)PL-kC1YN%kzOrMRbJHD&r}-7t*bXb<)Ug@;}s zKISbQlUqC$GBB1b>a`);3FRsDJv0PqN|{>RkMnd*r?Wgf8UC~UqeD-B-&4rfnUi3m zI)&^ifdV53Fp+N`&0JSt6&hGjQ+Gd3-&0K;m^P=M z6A;VA?{Y|V-Rd#dr8Ts$ydP)h`;utQ2YCLV`;R3mKe3(Ji0fZ)?=(0lU0Y%Gt>(WY zvg)zI=Y!FE4$eL7`OAXmb{=%iwjw1UD^nx^;&9nk_S!Lxk@wl4?1v)}#yL%^=Q5oq z+IDgmcxdNWbwBOm-559WuQ7IxUPOqT;+N&nDg6n-YAjtwip<2_*4B}|Uh7!Qr2Y%Y zywYpkqOLz`@(IvM2(AVZ3AoW(C;ttdnnFaP3ZxEOD*EfrowPv4= zaa5!`0S&MJblf+Y?dz@GzPRtHeDt^8^MI1b7*@T=Xzb|(w@J;X7KT5+#>99KlXo%8 zG+6CdWQQ;0Oh*xcwAcFi`q`cH&;XUB+1($cIG~%p;xgG!g=oYwR<`qmIV$Lg~+xz z7+q&slP{k=LbmdpVsgRtCo+E{@PWl9Iderp7<<{kX+LGNwll!(M;x%dy!_a?4AvI& zldl^_`f2KcUoP{t81F%h{{jJ!u4sll4{VMx5_?AM4Q?6nTfrn~(NhC-mEV%Iw>Gtd zfw49vlLxs!9XOdrXGgXK>BAqd zuSV>#+Z&5a`3B5`EQ|eZv$W9tc7XLmP5*G{nrrTH*hC!!`hgosYCg&xU!dbQkQz=2 z?5tLLp&tywt|z7D%U4j3WA$&T3*j=>4{=!&7A6lwb2!Z@I~k_W#^HFD7V?iqW&ZOT zN%Q#^#$)AuKJa)A$gSUsaK>DEX4^*SS$*8*g9Qea#`vGvcDv_us(a9%!V72)numn61c0(1A_&CF zPdG%MP^eYL+g@JVW!FS(A2tQk$}_1P0Vf*n39lcRlhUYN`5bk9NHoF8F|S5!llxt_ zSXr;9Ho$3V1*uQr`7kKX6-b(~^su^nP$lN{{Zl(?6Q$$8tu@+o%z6{DZf?N8FE zG~slrN4CnwS>wfqDu&*3P3{dT+{1N`nyyOTJQ07BPwTfI>vUqKcKBc#(|8`&AuQs-x z92m1Uydk#jLr1IDG@x258^NcOQTB^cH{|KAmMoOHYLqX{H0#jJ2gMSlm8|na!fl3) z_%KA#Xb`K4m&bhaQ$TJrO8)o@Hq)isR-GuHjgdn)nUntjiI7dJ1%|Af?;S+j!UG!I zU!1adqxIp;>oMt&s*sS@BoJ=5e%f0Svnmnk?;QPX2ErqhQKg?fjN+!SttU7Xx|Ws| zkr4mf(AlnBH&N=(vLLcm6fY@tzqjbly*|UPp6i?$3p$wE0LbPy1*(tr8wGgHc(h3Z zKV-Jd*l$J`yz@i>-BZp>)OlU~RAsYoh&AGrXG1_bfwPwo@rb^H@Yj;9Dh8%aa!N!r z0qbu711n|J57ofaue_-4F8aOarqQYvc8zVsL#f^fm_qaHdB0-rO6dHK7#_8+> zrFA1h=>}0*Dkl~G1ytrX_7llTif;GpUT&W~6wmskQ#{?9h8c=jJ7h;rP%Q6ZWM%#a zyZE+FYwgsXvtNj<1?qggDcYH%rM#~BA3UJ~CdmqL!7)5sgyp990jY#!8JQhG8TOi) z>QLURP}l=%&oA(SQ*mhq^kzIkWk~kb*qeuF3y#bcW!dXL)84+H>B%6V%<7U%nhF=o z(Ods(^mP)4j?-Iv_hOih|9CA$OD2L5<3`8RI5E{;7w;jEJpM{4uS@cfK9L8I$Jms+ zC&^LaCi!5~#!~4}c}NFsoht2xGENiIngN7)`lg7(a&&KJj53Q^&b+ul>~`_e@69;q zW>{!;Ry8J@jIDBW8SUd`OZQLbac#7a5;o;k^y2S0wF7SrF$X*5p=O==9=}L`O5ISR zbzd-Frp-p>tEnFq-a#vjrZx2)p>7!;eKMBE9 z)2zse8OtQ_&9(TIr^M|hGa+gGfqzS0D^0?ozoDC(ot>>^>dJPFYYmiaJGqIR^~CaW zs>!oT-(Tv34?xUIl&+`4d{FDT&tx6E=qbRUd^L~?78+hmB=>!oS$|9DUH#aK;fj{I zHp|d-TfCXhoRcMi@shfR)oE7Qto@XPN5f11juW8VgDV0`r zp<7^YonsH2fPkzO3A!tgEuiZ!jA( zJ~&NSB~U&En_PWZ0DbQ|yW27w-A4On=5rgUDoWbI|16^@x82MmE{DwPte_sByugfA zGg!R4()kOJNLngFMV#e%x!(e}yQoXJE)2c4VY6VL$wcap8sQ>pQX#V6i@#_e&sZDe z`Fmi0V1VLO<2-)7lEHdB+hXu&8p9B$$dirXPD$#{8rCNiFTn{!O3=M<(X@1>^e{Jw z#gJDrR&FgG-d*StLiMl-3^fLf(oO=@-L_kHGb*oT5|pwwkU2TA-2&hnx+#k!=THZ| z==bwNR1oj{69N~}btb1b!*UmC$Xrq5*N96l5BnxD^(e#>@fKI+Z{6GBY~a1i$*$o0 zxKC5~XGW8JgH#tjq9KVSXqeHx$z2YvxSs#TYx5V94$9|P3;mW5&%VVGqAH#I3`#<3 z%CB=nmUG4YaYw@h@kWB2Gf0(RiAtTJVz3uRo0|V;q+nod;z!0IfY``2ZSHD%=`_A* zO{BpY7VY1&svP2DTAIZ}3dgqFVDb_375uxm6sfX&!4kp%@V5P=BUpg!+7pZvrh=-I zi=Uvp4p9EHr0{(3L~6ajDlaZ|KIU^gjYI*#$+;L&MiSwJug=u*>*2yM7xthAv4n=i zc|kZGF>Ouc6e(SW!y>Ghw2R!7Vfl?0!RNS+o({%*riY2w$mEWBXIrvugeM%!lGQ+` zzUo?cmziWsZ;jVU9h{IUxCnwZ;?F{#J~}osOCohUYR_3>M|bCGu+K(e&alaKOKyx8 zC9u+%CJm&^w*YmM7N+gNc^MrFuObr}wn84Y3fsG)TcgXMZIcaSgsAO%3ILbH>TL|K znnxuJ1O8NN5R(u-r{qYRkmed-f8(o=6jZQUUsRKrSXWo1G0CWMm~k)omn^!p?1_n( zS=LnLDVnbh#Tv70%qu>0V8FPjjwfPQ*PxTNXpDgrjIyAEsH9D*vaMh};C%&{7^*wI zd*mZ#>A*V;(E044CG)c5zqA>1rc!M01Pfsgd+RE_P(y}Zujk24Q4NMT>4HqSGl}`N z`7({D*b+6@LEfNxVMhHqow6VMuXKDRclG+*Q9uy|>Q#Eu{D~^+K0wQMpp=mIM$C>w zMU;7?%6&9nHjaV&W>}0|$?|yv!ydGB#RWddX8c|HU-Kx?S2e!pJitrF@`2>3DVkX9 z3?^Yu>PJrQjgd`rNGr2wg~Vq?6^dtGw7fzcS7Z4uMa(7m4jk>q@kmkMJ*YMHI9{K5%7+T-_|Fn> z`_w?5ZsRf5+K5;spSeS3L_#h~!s#D8S}wQua75(yT-icMAKIW^aH5uhc_ZUqi+rLV z#I}U1-k4gaBMqpLrH6R|+j~zw+|V<~%E=avS%tjyBl6Vf*UQ9j-94;0dqxaUS<4c- zR^g0vcz5fTWb9|ctE%`b)r{;H-X#A~lN^=eC$Z+&8C;`^g##8Xs$vPj(kw^nM#0Pv zqI0oB+eK>Zmkm*VOn#0hw`l=a&blHI^xcRewN_)^PjAK7VF^f^m0Ty)n;lxd^C;6K ziby0-8j;f)!U%f45}dj!5c=oY^aAH#F;W*4{{43Urg)gWBH&G~?k8+XI1kPn(q9ni ztK&Q0m@6xgEz)byU%+mp56;9Ijdf+Xa;hJC)5|lzyXIwYa9J!Zln|}cEXjiAHr~i8 zRzn`L08tY4w!d*IMnRA+gtW!REVm;~r*vv$r{^DuKFt z;Z=WDrzv4)WTP#=~Xa6E7_SP-W zQ59@uLv35f#ecRugj|4A?3$v&G-2<6U$p>?`dPE`lx_dZX7q#fEr$ysw|FKu_2r1H?hI_>PBa#(ob7i5 zpqD$8{=u)I9wLj7xkzbPKVuv+q~=Rj4S1Yr0q|kFzV+#7P zf$PSykb?7vX$8el1Qm1%>nE=3x#hs4kJ^{Xc0T%mZOObk@4_)`sCyH~5@ z2pnHMFn|OG_K*TNX^tCw&?V8*>X16q6?Wq8C(aFUDsVM-HENMHuT0_JBc^bWEDrGG zkq=7Q^%y0=Fw%-eT0x#{8r(sD3}z{h2J-UcjQ}YYs|rE!gHI9G-*S8}qo7t?@I$Ku zcKyk-(-nTQx|#`qBg7P8hqm9FXZf3$DA_&%ES_YH{`>|R+NlDa9v)BP`C_d8eE8F@ z2f;(fc;DG}jk@{cCi0@86J$+3k??K4pomI;MfBL_F|^gEp+fray3wRC)jgV@>X$Rj z3MetCuDBgwoB=&mWqpmkwt@DyC7>#ENc2Ye6i1MCitN{WsbP#BSe?DL;;{vi7JbEQ zUSL|?kGK6SVO0K4KAL5JZsi{AY|Kkk6fKVBed82=gLAQTB906R3+NlU9<~$m%eix5&EwfM z5Yea0QdC=$*U`p7$dh2ck|fv8O*!a1p_p*uI`ZFtZIN=M5R@>cJ*&6hNZ@C@+0V zi{qZH(D2*TYF?L{$LvwQFIXK&%~2n$vqxxt?Vl$W>4~&7pA5A>d|hf0dH&n_Kk7pq z>qKkKY6q=S;zW7TfhVxfXJwe;WK%7j3pR*E5293k&d&8(%-ncVqm{I1TJ=HaocvS& z;H^cBGTyW#P}5B>tYj{Zea31->Tdm}j|muDG8fYsJiqVUGb#RcyNcFcj{cQm(e|F+ z3Bth&p}Ojbd0_={!=_r3Zkz0f-2HI{lY_IE z)WL9maxBUab5b1p65ijAUj-d6MjuZLTfi6dp8?1@EIh4}wW;(i*Poxe#6pDR39@GxasD#(>l z7P7?wWaOGOUMQ(K*f}T_&vqt&4de7zH-nyPY6O;@pOltDJ1kQ4dwdLZRsr<)m*D@s z2tF24jfQCfV$U>emWFvNM$&n?VmOs=5J zrp7&W@bFjSWn;8b;{m+PAKU)x+idk;Ia4oHyFxlD*GP21X@}FTW3OH3XN673WpP_H z`x98bUm{0awI{pU3EWGaQpT;44beh;Fa9)m_JpWEqx?(Os>{!)|uauy2;Z2iKvlKva2gh>19?fa~wu4dLvgqqi9)QP0E zs!2*6_^2c6z<=*Mk*%?#Gca{hSGr>Q^wY1F$@cihy^gZKs7sg+l4YhR1~n}ZPhLJ@ zynAn~+t(8l?)@A7WGyG$LvQSLAHJXq2HMbIuSm@4;?YLYjNrQGwx`^J`WmC(+xF-n zbW4Qz5X!~N$AdFbWjWesX|nOu+fxb-^Q(O>hVPjC%2;-JiY}*dY`tAC7j+dO^8EM4 z?Inerq}uA((DKTh%ntiB&Gxs=wa^UUv+aB8&uH_qxRO91<(XL;IM&y?6Y7pEnsal@oJ`YyS$=rnVQuZCST|*ymL7AK`P7y# zL+U1DVqPB^?ERa@70)<`(fw1gf(0fn{Pppp|Es%fP(8pqe+hbz2n@ORvb6|W5wttJtjn-zxRCHXk* zU#UMIDa;n=+fn!_P73v%OgHv1lxPLy0zby)fgXM<(~Z?F6W+T9qtfZ(-z6IiXF9>I zU6?NW9+!o`Rq#h)<6aDwEAFE?OJ%m>T8BtCK>1 zj(fLT$^EsS{syJetwn5)!Au_f8gL&4i!MhOtTLT6d!oIuFCYITk?)vTH|xn>?oXG17HSGlWa%qq zy9hUz(Qr?yDE~l{>dbe}*4F5cuE9*i6LzPrjLsr_y=~N>@j3(_9@#J%EInOlws>^A z8FZCs<%E3H9#W$Df@6VF-c56Jdum-j*1l}1O=v!*O)6{6(tOy3&Xw@MI#O7F-@805 zp@y)V+`iMe5xu|2BpyKOK&z3d9Fa+yZiev$f4{t|1=_4TcS_h=X4rR?*`{6}nv%V1 zu=fnCyYckMHgjq}nvzBNG+I+vc9h~=)5?kPK|j+DD*()fczm+qzB5(^rqa2x69Flf zJO}i4;iQmjxGU^4@X6MUzmvfgFs3OXfkm#zNLVPooMx(;Tg{$Oy5-7RC|CdO1*IOv z(kVr?kPNYiEOQO>ShBfOg96`_5$;M==&Uq~d>S@~@cQ)DAkxN%ibJ%QWFv7mn<-$o z^FTFp70BYV?8@d<^1;mX<8%mek>1Pzon)DBH;HzRqV+Uh(|Xfaw?ENtTvudT>i!+p-A~V9%PNb^g!?5cC(WPvCypBhiaBG$-tC8*oXtb zczS^*%-crKGYgXtdEC>26JdXXKd0LTWLkZmNr%DI{43x0-+}fOiJC+S%A|PHz+aYh z&c*!jdnX_^-sKrvoM)JYvbSw1;@#ukF3yh8>*8oYZkiR35hunR-x|7!H^*O`GUQ^_Qtoe>Snh~zrnj&hM9`D zWJ0RhcMk->*}MVZ$nXQMdR>-rdXIdUeP=nTLXJh@lDSOv$0-NjHabOYL+&3uVRBx} z^J3uR)=}z4#%mn?u6Co5O30j*k&l?G(7qZk2;kM$bj=g<}H4pRl_qIrGn6M&NhK0;nS?>{)nTnVl z3~ z0vA`T9eg=)cQE#~p_P*h$@CRMu4QMVir4uRMg?-^3j9=7X)|6ckkSx0;^ z04N)i9{IZbe>9bGEgA^~8Ts?RFQiK}Y#k4J{mLdS`5mJBLM>;MI613HF5M+WLX$FH z+t$(!o>`ocZ#kz#y1wGD4Y4w4>wH)|`f0ymtgMztU4SFP!9j4nM-#bsV0EMp8Ya6M z;Zm5On09|+CY1^VEo=PbYn`A5PQ?FBubq5Md&p{OAh<@E&-|Mi@Zpw_)eOR#)%uI< zv}`suj*6I?ePh>)Gh&pO8qR$vZO3Owo>Vjvs9%eE^#heDXcb72#WIXB^5x@Q>~Bb~F3i=QW0x@2cV!E%(+KtbamYZIONQF)+^#-W^zb zU)b-kwkzUIksHE4!#L2=IqJQ-4N%T>JaoEf?e4)fd)?sGI?&!|lJ zxy2M%!ENR`m0dLE!#^86TA&Qc7g7jFga`ZW zwp6^^8ghtPT^gCoO;_q3NGm>+8hBT(_p3_p&1e!rdi^JcVH}od5n4SRu|>=h;^^o) z^z}_58&*Jw4s12l*Gujd6I1dmHq*IKatt>`&sn5T@`=9*7eBTbVE5}wf5A$g>Wt`6 z3)TuZ8jA%>Dwdp|S}!*+h3 ztNF#Jfaz4E@l>f6;9afk8Cc8DCGvWy6CVcp_E-zfw%L)xaIB zmn#3J1;DxX#IJ#3-ft5;K7in z$|EvbDfNU8`$LYaX@Trf3y>_b92>c4C&E3VZOHiaf*$t zZK6(&ud}+=tnz9lhQ=cIl8WdJedhEFJOjw5k!2W#VE1;CB<*2-&)Q3?S+WsY>RKi8 zxP>vX{pmHH_+yRyf|@ANwB6Q!@J#8M?YhHb2|l;MU?!vEr2C6l;+}DR=MQAMg9i`+Q?O-+1=^jelc} zvBuiSnsa8ZHP^hZ^E%FnZ|@RN!m|O$Pw&2ncD`>eS9G!RLg(fh>~@olxwzC_ zltq-nC8pqqqZbFWXV>N%M5t8T9cvNK#9o1M5_Hlh=D=*?-Q07twUZhVM+_jR-Kz*7 z%quOH6SR&W?@>Im=D-3UH~u1AQysaUC6PcD-4U3bXK? zeaGMS4LfFPjc5oKOzBBWIZ_7*l3+a7&23CV?M zt6n`5R&HO^AaCG(N}%y_1hdVG+VAuk5Tfc6+*@KNWy17DT6XnN&k2!l+*Zr0-!&1p5jX@CAj z+k2T#Jb7%)2Rm{*FFT*@jsFMB+;dw{@Y!$3$?T`4F$ioUwD0tA)pM$*KeTUZd69G? z=`r9ee~vnVt``K;{%PFoGc|p4AHP&kTb&eF-*ywaJl(jNW%S}EG^@UX5e4`I3|t2- zCbr6aL(@!0BUpBqnr91n@+*9+oKyHb4^j8-2qgdeJ)y)%XW1u1KyY zKV%}I*WgK!b(T}Ww25rfC~5U8})_bH4P6p1CNp^zbVkF`e+^ za7WX8^MkeDDrD|W*e)Y-aJoaJR3yzVQ6~)`k7la5=TFIl8W{TnKB2niSiYGzg>cGV z6Q+ygQ@Jw(A&SBvC0lcE@CE5%fmf!=<}$O98l|1$Qu0wTjYN`HC~@P!R$`D9#dEuo89v>!- zyQbZ(3YSb6f5<46F-eZwH%y!d8p)h>3Vd|)-GcvI(3kV=Ztyuz<*v-`9kFr&CeEPH zm4{NpMlAm1ajoQ}+#6c0DiW-Mv}c$XrzTp=gyoa%IA{w#r6Hn)iIolmj>?42Q4TjC z{s%!?0v%7=kjZh*Hok8Kf~Mn ztQ%td{N$ruE@`9n0tF(=;lVS^gbYTAD1Id3f zEPOXR@$LD_de90jfu#5F0U?No*{9Ql+G*zL-l+4aX|Kh66JyrFDHCg<(yoH=#zzfD zssI+IEbzX)=U4KXt`SjFd^LRan!NAYd4T5Cxfm*K?MMHQ1M zMFFnwiIwCH&&>2WJ4nX%y9dC@e+ZmLMWldj#vYE*Al^ks2~W9_YG%jNaUAX6`qHWD zYGffAY;*w*#$CU%d*REnDwnq%fy%?o)8uMkJ}JR!3uqcg&X^joLY`flgRQJ(Sg8J9R6Gar_)c0fnGFokDGW&+g-{&mm zHQk!ox>mL2a!od&ud`yZW4!s`=}(uNr-g!}Ux=wOJ*@AcEw7eso;?S3bk0}_0#Y@p zEys>}(Ni_2O~#m|7iD4c+u7f$esC+*-0QL}YOy%}7WmImPSu4^ia#)cb_s}A_#7H~ z2(Ukk1^8NA#{FYOZR?4^Z6p<{tX!(i^z&kNJ6Et^LP}oln9`bKH2>KqS;8_ZbVD2*1|sz@Jl5|zBufVf)v6o`{fzy~n5D=re($PDgEl&N;c?tR zuYjhRTy_Xf{y~5HI!i0J(-eO-i#=TjAD{DWx*|Q-C^7kAQ92@%Ez?ezlSGL7l$&~a zMO9}yq08ksK#OK-#){2DLOE0VBI3J7kKBnM4+$r-fqq{DgTb$;^%2ItEvxY~HH}z% z|BTykRG96>IE|qCq()?j4PJB0l^ivFxCzV*+(gl4pKY+Zy4=Iq*KL-@HfeJlxB@~t zIcp)O5^CMB2<-j}OG)<=S8#h_7nQ8dU{vPBm4Yd*YmZ)9rF0NmNaa3BH3r{MwPRIa z$`|3#@@fL&9p+|Dhdi0Aw}>Bhl(PG#v3N9%*XsDfFo$W*ta7rGXEsnWLwijqGd~Cl zQ-4kOFWNkTWcn=YB%Z^@*mJB#6@o*JABZ_QbdHL`~$ajVQ#9yW9@XY%xagYRmbo<`?d)wgPOIy#gJIObo z_UC_vKc7#%I{Z)Wcz*-*%?)B#LXs=KC3)2Yw~6<7nX03|emy|gjywPQ@=1AIHbGUJ zLZd>57g|i5`hg)vyS4f%o@osH6Q))y?6CqGG2&=pchB#lWbV+R-j@mbPIPpIpS9j@ z#t#DsXWnl4y)T>-v{uTy`&O4b=-|h_G2Xb>UtZUqz^FQ`j{G`THMP-GVNT=POd>DW z058o40#jTn-1kv6N6)VG{$ul5HKVLMUY_OwMIdOxOz4i6?pcytxc`inuDgYu}ZH=igq&G-1NLQ_%5>f4d*QD9o(!ej=Fo&#`c&lVPtt}SyR z1dgBgt&X8q3Z6N_`2@ErKmwFZ3e4V0$L%jexj9FNhp)?hyK)4Zj68v;g?@?pf*Of4 zF{M@+syvHdxHw_OtKc2sUw4=e<2?bwfE9*yr$@mvDNo~s?bQl)X?Dl3OncuR!IMOD zTAmP-w}8r7oy;%1p;vc;5 zaZ0XuNgtnMTIOmvcv65D&$;aR=fkusw`vwjo_tP9fU_BbVZFZ!USPlEcztbtBM-Xr z5_q0E>`}Gx5hDArWGO|1`(`9Ge5g^-p{>>Tak7=BlYP!RFcE7pVN|{gcozSk@)7Ef z5EMP8n+l2Ux}*%oF%RD>@NV{lnrU7Y56_salfF2LEr?f7qIR)%LWTxO876 z*`%>^mCmrLAF5?Sce2Vk>bi&T;P=y4e}9wPfdpkd5w;UO(kck2^BH26GXI+i|2cc>!ns(REF z?fXy@E^%>39-Wi`pxpgY<;>;y=NX8P)=Bm06N<^|DQ}F0p8&gFIgi%rY*xd67XAjQ?8sGGu-6Gvog~W*^W0 z>-hihnr6-WfQNr4KEA*HpNh=ObONELxMPXEHkD+i`nDUQ>Kh@Ebqcv5s|D{~$r@$B z%!q!U9>P=zq0q1D1wt^Xh=dV0&Z}xs-VMW1$l*oV56|j2!Se3d%hD=acX_dsRs#%ZilyD74}!YBvQ14+VICZgD?7~H zjUl3ASde$Hz8gdbnQ-o@d)jt5&2R_a-VBo$Ej!9nL}#MVa|g-g2R~>`XT7F1O_>hD zyo=9x%XkxhmS=>xmn4=8_}H46882$vOwnWvk^*^khXD+wKWQF2k|#0rYiLG1;{sI2 zeo9RClKwnlT4?;#DIe#2FaC0Dop<3ExwPfbP>TC=uzpq&(I6Nvyks)P_sBu%k;fz` z8u#S>%r6v3^`eVBVkI>2?~k~CzJ$8M$-F9TZ-T9|_B%Sb&G5bPsvx7N`DptrmSRWQ z>w{}CLsh!cl~|!x7C}ks2^vP$$kOl}XJ0ElRzZ6K8Xcepv!kL$ZPi#@S7R}VeJITd z%5I;m_0;9WlSVUOnhM=C;R*)pH!=^&>5|v%aqd+anRONQwZngM|xBb-l)iy>LhO&-0r!?;C|v8&(Gg>Wba-TmVHty@~k z{%c`{9a~*V@$DHMTt*HHKpTT~Qf*IlU#wrK|M0$>cBS1d3<_%K?U)gjU~>1MBT0zN zq%UC2;b-3mHFgUVGvm?U9;`VrEgLPF7d=iq4U(C!IYQ(4JidDE37RR^{05t(Hk1hlrD-*39j|uPdr%NlwZ;hNwY%&yY=u((_+{P{iwl0ih8eK z#f+V7@FFXWy&QKq^lmTfPvfUH*_D;?32nP!X3bl$Ck$L3)A zR6$`zmXn$DrV_a(*F-&|DWmLey2X)y>t1fkP8hK!7bU)PFhUb``U2-ZruD2Gy??A2 zld2j3YbJ6p9KA90HKa4$BRt2HI+etO zdN{*SOE<@NlkDO42MvXW<_ilnL3t*5Z*E`Nt`JcxuO^>*sJuspp<~y<5ebVh69%PF z6032zcF9d8F4F?pU5;03JXh0Aq@|V^ZOU5efsis~PRK?VulCHWk3?Cn+a-M5c%M(8 zX|EgIglcJlXU@xa_0qLQlqG}8@|7h7tr+Q<#@gqYrLsecMy$EY$5am@f7l3)&Sf|c z?62O>B35{kPLQhXPH}V3ZVu33GSHq@BX&SV~fmmHWqIJIG&rl z8Doaw`d+q7!~vRB8rjUXkNhFEEW7F97o%ULLdz+W!$01nCHCS>Gp^7Sn$ItB?q@ssn{y5E!y29||N5hq*9RMrc$mYXFOmZc(%kJ?#FhVA_vY@2OdNfdR zEL)OcK`FgORw$en=XN2~@Caq@>zZT^x`Bdc{r6BwSqT69n$!W|YaMsR{_M^=U6>gL zn=B|;I&+qzPoM>SU120cc1&C7AD?o{s0xB<26`b9H!>IA_A-Q;LWI$@BI6_(=`5Pt zw`>RESku0(r}3Q(JI)cfzqonbPjfwYDnlFWA2~h}xDtXs==!>NC0QNmAZ8|sz89{Z z<&G8l>Fsehpx9@_n&I2tAaV|W?=GRab*hfonc6K>^!ql*gjtX7(=AQE5 z{c?12S*kD5~k>m*|TRc}p~={14VYSP7(gfWQ!1*>D%u!A~eQZnq9e4%gZ{yx4!l18`5{QAI~f+#RRB~m*T0R2E#aIvbp*8yzz=>Z=5y%@LhgJ zDn1c+_gJR4qh#L;U(BEbn(3wRXL+}w64l1tU8)d*l(xAB{jHTqR;sKH>~c6#u)Gc} zn333>BR*8VsbM<{aWqKN#qiRJN))#qD{=c`5}mN>;Ukgx49wMvGn)X!d^-t zw7%}r380dfUra1kIu(*=zO_u0O}x|c$Adn~o$h2z7WaNK43V!bA9)4V%87@(tO<#B zwvolqISQ@8!$NQII0IdK46rI2R`A2uZjDxT~RQVa>jbrwKjEr^~ z2oXW!Q4l|j+-sRMGBUf|1wD(y@$k)M_@ixQrm1^deZXgF;nOK?vO|3n@6D_o6zB_+ zzdZehyOZ7QQA}Sr=n>Prr|-|^m?Wqo+q^(<<9UMEky>V(F@lqD`_RzGqu<5_cK9D? ze}~o@xl`j;g0%$@`H_eHPn+MVaPHQRfegJ3ctn z9c=w8Lg<@M#32(ul5>59R6BkjSf3Ix@+Lrc5hbNHyy;f2YrtVR7Zn}Zta+sSUftMN zlCZzoHu`yNG46Es1nEoxoAywdc*#%y9KK{z$>ehbTE>8}zg{&bVmGt=?q%&SijdlL zMb~TB_S0ZfOIx0j!zX)b-@?nXEb}qK-@X#hNkpM%Oy=7S0li zCJ`~5m9dG3UU!5j#Tcj5%HU$%3^0A<=3u)hdrk!6NEI+{8}3vY-gS|eKuQcRSUTS$!&JFn}@ z^?fZn$LLMhb<**$n0LOD_{D*F{7cHMVRgM|!mlntYn`qANHy+|$`x_NTqXv%#gK>s z7)_>FOsqL3AzPMg`%7>pMTQZzFc;WgiaS~_~u<_ z&!p|&>L^qDPAmcqEq(;aL)!iA(N+D--#KK4cp_T?Qi6)2PtYIoW#H<8m;&78A9g-u zESUYMt3-#7GcK3BdregKNo#DNhVx4fw{t5PQ>m`CyH4;q8aVbvi4&r>e<)AH$9 zr5};b2}=pGgIP!oZu)jY;Zm-5dVHj^m^hadxUfi$S%%Wdmx7tE941GK+|obx^d_!S zimln%uYKibPXD<@KYse)u%A5=r>?R;sfTkzI8@K?lzb<_Vq7|Cg)ljM`NW)E@Toxk z<_B`W1QH4krqB-YW|c;L#PZF^nwh!g%2@KT`DN8&b8jQJ8hPBcmIzepsx{s}R@av0 z4ftEcj>W`Cam+ZQ?z3l{x{p;aqVHu79Rq?D$=O^vBVWqwQzg$D-1>6~kt!+ny-grK z;dGE>&i%{d3wBnjqwa|Ok$|iVEcx>btBrxLGvOhpFxgZ^PHUf)iRucK7_Fmk7y=mjxv}!_|GfU-(++_La^qsgfHq9F#Lw)#b@ zsmd}n1JNC1(+15_pUw2s=BMratB$YZ9bbEVnw5B>FIyJsJkUlZW-W=da_}R!|GszX zY{$mM?&)oh?x|rH;hZ}ouEg9=Ds?JIxY#a z&OAtv!X2HazP1p2XjBs5PBZc`|9h{Y3ylmUtp((L+798E?V~=A@2FrVe$H|bo#M|J z1RhpaljDs}mt2~Pi;Ih|V8HWJC}$QFmHD0^_kR!Cr^n6ne{nWeU7q}drTR?&A1p}o zr~)i~WW2@15faHex~REO z7O=7Excd8S{!2Nu+sLST)vW#oo@uc9(`tsUSpMO-n zWe(4;b!A1orM&@R)Bsth9v=AV-@_}^3Ej5e;Yye+Lnb}fK{68~P9|yD*f)jXbiOSh z1oH~eBRS4!2T?!=PHu$3AVg*@EhSeV=5I)Mjfj*Z4_%GW-`|;uxl=TT#-A1k$*D(J zH(BKMG@jOQek}+9ZO&Fw1wx>aPf;?iC^cnQb=zAo9 zF?eKLWYcS5*S&j@7u0vwyN^Wsv;X(FVTj6;fk;nxY8mwr{{69*Q9R$4;LkOje|gTQ zddn2@e@_Mmh@)SApDI^A9=nZB_`2kz(8}WY4^{+65p1fzjp*RN|FkST0JTXe`&7OW zp((@yv^iJ7O!sIpKH?|x*PZJ1)b_R#oH3MoSox>=vFfPBqu#<&5p3%;GS>8Nj;VZ{ zJ41$O^U+z=<`m4*{fLXP`Dx0G=bn!er{45Rh&wPfg+leRn53w?S=VxxA?u8sW2u67 z+2^?SXSmo@ckQ_|N&PYpqx-VmLrL86C=F&o@nko_Z#_vaz_4@)2I=pcMVq{*y}V~< z5cOXuYH6^z{Y;75|bf__u}pPhUvQY|^3@Tk@zx0^D0SO}t?~f;rY<_yef{uMA3( z8qwA%A2_%w#_W?{#{3n^U~Zmx=Y_G?jfzJ^r~e%_<+eYmKF;H+s}ypW&e87dLN1%a z-JLGGFyr8sAv^AE;21JGv1A5tx_BLb>_IjA$UI+i>xQQswCC~Da9Fp3J%C1q@AM*O z8fhFD0EbA|-h$MFz-}Jpj`pUPWAEOf+$Hksh3d5}=CfJxbhAVL!BS61D5xr#s;ith z8n=#Wz907`n)NEUxC_=>P>M2rF8>OhC{#cC*Auu{l`5oVXcA^b4Kts~FMVG(A>`0f zFHk`)RJ@|qu=FGQZotSa&mruDsBGlKDa~OVY^2E!34=f;L2ouBh3X0ZVB)grsWtj% z=wB~9xdmFo7H1F^t}}W25G{Tw+9}i|5V8z&l0&T^my=r?!kQu$r)gd#FTMHz?eXqh z>TwmVqq)lT60Wr?6L5L9)Z^U|K2?Vn^>A5>YThaJSRB9mmpC(tgPh!iK4kiBmU=p3 z4#z`>N1;6TU6{!}J0C@uZ$!H0Usw>Ow4U21@7lr?q4>A69hUxi`s*(stQ5MH7EoIo zxo}NQOghU|;a1FkfChZ!9jErhZthXV{WJ7g#_Pqe|GVL+yWiKFZHY`aF20EgEEFKn!Hh4Q5w%Fh ziqu|1Pen^87B_)Mu`t@dRQiw?4mQr+Sj&0IUC9&-#+#V#l5MFD=P+J1p7?_|7ckV} zl}IT5q=!%ztTZA^Quz5EfMS@YWNKer#+JdE8X>i*?B^^tVqLd;SDQOs&s z;0%+D%(_;840MP*^2miOc-=$jS6J!m>sMaJBf|$+Ugol7A2MC0FOSW?rOPE|jMsQZ zSlgQZp1xat!HtWl%Zqcb`jMGpHv)|CXz7)ia31~2=E$nqpvsw`Rp0b|vTh=!p}6CL ze<%J{w0;`>C37@o+TPYAu_m)>j*?n*WaQeP4A1pjy|5ELHqPal`_%DDn$XE%UDSzr z{6*Rc@QB-iUlMP{1ycIrDqb?;am)*q4#L;M)<-BvvT6kly0J+ac)X>@cKiro-p zMKY0?GJDCQ6IJxe}Jq;Jdl8~TUx?AZdspLg47j(q5vXvEl^^3d74R;#c*A$)TE zQe(FBiQ()Ibk`etiHTDu20#u+!?uxZ`kPPT=wlrEZs6{xg#p;@1<&8YTnEJRHX{)G z97gKzkl`k@9#-f#<@Q3xNc_n=^Zg*agoj|*0AiK*eg8Pd+Kk@Ev$9pRE!)BK`luCL z+-8`Pq-E&CRXKC?un?>X3)i3!*0yNdC@c`^Y8vw%tc$S|ra)M;o8&*=_pw^1$=V;| zNdz+YJVNI{q~hbX?!EX7YrsnPv!-huvDVYK?4;mYCyTU3>ieco)~<()cyHf#P(;$* zNhZ-Zz3jHgEfuV%ut!-q#2zUR0I_KdWOv~2+&$mRm{-Dh-^85O*)nYkZ142bCqkblFzzI!*#wXTb`7A~>WZvw@{CKFCSYC*T{uU*2}%9P5IhFYI2?--M3mSyr#AV@B5Kdm$kn%_szx( zD?YB<1^zLBPmyU6j`Rv9tO@#Vf zxXX2l9nb#~xydi*ngPd*csV@!VhBGf0R|o6^oPRRP{V;Ws`SkHQAybjL0i@=Eh;w( zon9I-QUAAIm@w~J!zCd^WJoGsocXoS2y2^Bq`gu4nhq;ER-$RDuEtTj7T^PrBp0@Y zr5ikdN1%LJ*TKCVZcVx&00=;#f--le50FU@FDb@bB32T4H8_|JUn04$;58-o zZmqw$xiE^(5zR+CagU#sM)v9{vK-aw^dH#CZE7>5&ohdbeZ`ILtAbJ{gUyX=n1sM$#U z&g#xq7Tba{4=|CnjE6p_*Q%_a#B@v>W>0Do0v`3#IUPpNImzN|eSz=VqH!NENXyI1=~ErH(X%tU@F%KV?fvN8b4o3d(bT zu;o8W{yuzY7wDBGq1uRDlm8+d#Q(m+!`=5By~&!$J>GknWP}rrGVls4d`8?pMI)GE zS(bp@=g9bMei#z>{emX_qHgV=WyV{uO#F9g*7oO)s;tB}-Ub<;=HXLP=bcQ^L}O0y zPxp;R!OSM*HOcYa6#^N9S;sLZPO-{uC%j6bKIiJl(Dw!!1pK4c34}8hc5wWQ-@zspnlxi< z5uEDXLf&Du4jxojpyT>h3u%xD$EelUGhP}XBY-g9{yr1QB)DloB#!K)hXBBc^#=CVN*RYPiG^g+_0Rt)Z3aW+W!ai! zKljuV@-hrC`gX0h&iWob+B?g+ZJ!-!-Oj%+JGOy7YvoDI0y`C?RvigzV<;+O%;%^Y*PBgp$U{ zfG;F8t70d$e6Dck!&aH${OBq|pZCh|U)>pyODU)FteSf59U6N7UhIV(?A@^D5H z9M$UVn5W5R(Z0&Q-Dp9W&=L7OgO7&A0uwMjl3q4_beR@!3W`gZ%%R8Hb>b=rAtz8} za7R7=2kZPeDFl?t%H^|tB2KVO6JliXHlSmZ>1t9hLVpgWW zH*ANtmfSmV7i_t{rM*XcJkQbtuVH}c_HPlJOgK3wt+~~V9Hrg8x(NeguA!E&<*biU z`nXhAivA{;cY&wASo_5>A!q8qwUa|=mF(gf^2(pMn5IFzu<%ziV6ENr72S#A34!#h z)B^x@0Ol>vt4VT^kgiuMo(cQ&OKbYv(|8!P32Ew=#3Eay!0sGf&piamdAYait16f* zB|8&&<>fy0(C_JsTCm0~F)MaXMSWslH(;R{ zC1=JO3@q#YpcG^1NU|4{BingDrY2p?5r zK~C87$~;u6m1B}>T7${_2|?3p65Us@{nb+E;GYH9 zFRLA(Fs2ZnBK*xpp+w7nFHWQH1=9P{$aj71(CFV&QO zsP7ZG1V)c4-ly92XZpISs=_sXR*G+lI}OMXt`Bp?V&Vn)eXWAR>A2F+t@&96K-6=U zc-MfF#+v%3WvJ{U|iA|Kjr~TsHU+jpw~Z(zlF~uSF9V`c4BbY1Q(H6)8C%{^W`N`FIh= z*KDCaED_g&eyF^Gp*xQl9(VjB5`fc7fL(EaNA4AwU#B=-Sm6upHDQfJAi*ccqe!AC zW+pBN3I5!*eRsmXNzrSaQ>_!a5K1GIP|U;)@nzu#KNd6!XrGBUh_UchTxC-|bF^}p z$){-$yYV9flBmT+Av9d3v1MfM+&$gnENOY9{7vY=O>trF+~Xn=#9xn^^53t$zrD0X zgaQESY#u`@+43RP$cI#h>D{(D4?LwlxQMB9B2N&vnqQZM1WqGPNMvrPiPTsQ|Cq<= zx`I8>OnQITarlTqol=tIz%t99%<6a0<@qpuH}y_QyD%5~)bGa`HigL;Nq_(1FFyxi zI6HnOAEoz|^PKsrVx;X5?`XrieKHcH2x%wiUp`D_AeXy3Ca}z+VMCE_C>YzX*JABb zeYBC+Ny)>jZK@AmULQ@ql!&}Uzooz_pSvm`%Z~Gj6eK!~yP679Mszd5L*b;K&F&as zMCqgygc+^alfJ=oX02;!ChJNTQZn~_OgCtVlQ!sVTS)Y>V|{)phFVh&#-nUUTczOc zn!fUUW3&)<2dD1tLbj4`yxv(P&!;G@p?>u@xg8-QOTSKTNWOW9G z2S{Uuj6;?flZ7@bOC~-St{}YvgH=g#u(@Gt#fJ1UVWeM7Pec>==Fz#SEb=t zMzKtq4qbRhcXf<;;?@6yg~g2rl`%;EY>>YHgP_mT2vd8bKfeCAcc&{7OpG~Igy zQ7;4XP81^zez}#&(KkX&P1lXd+}Q{M3bmE(@*0mk-kt8%H$?4uAh1HFifY!K7c4$1 zntlh@8CG&_2R~9~lHDyosh4@g|4ALHo4>_eUd?a6)6)8zEg1?c^ze*!8I?}#^Cama zSz8f%8x`{NOU8e+Yn#u8{XG>IOA!S^)sx*}rAnzyAgQPMP9-+no#6Xd=I?Ciw9Ss8 zshiucUQXANwW_MoiNymXt&7A5a5NpGD+@zP)#{*A_T7;*n1n>;KPUsg%3K=13a6Bs zCe6)i_-b>?vL0JSD2l6oM)3T*sO#QKW4DvXB^bRg-#`4#J==08t|D(X;KmuC*fk~# z%SEVb@xQy|8uJsF8?Qb0tj2ORV2~(J?W65d>CNq#DyZ;d0!v^RQMAZ6r{W%}7cbv` zWB>9GR$VO7Zf`bTM2Lzx4XoO)8}DVA}*;Ox3sO zJ5KeJ{2M!G=o1vNBIi0wwFr~t?RsNpS7-em0Vl06?GSoLZYf0|vWP}kfLf2HuI!ok z6iu-<$wER5jVBmE&0WWz(1Wsi^_okv`}eKXqI|eV(V)qj9@)(pT!OA`Mm$ zGDhT-F5MKGTw!TWDrA>?RfaMNu-AxU1X7ubm9J*iX_ZD(TBJL~JYA661>zvI?DEpZ zgCV{$SaJ7dxf5IgiLErMV+opNX>n`67@fpSBE@-(5@L|aTaBwUo+33u^OoVfO$bLLE{c~(8T2kIfCmq_Qpbw8#(xiOD0N5MS5&6$0 z`3x}_yz!~QHW)l!Egn@PFn`mrio?YOH+UmJ?@|MH~va)zKa< zS)~>haj`Fvz)V-9Z$<*Bl6)MMf|RW#-t!4LYOu3t+0~f}7ftrs3yxrA^HL$H(21?m zT!W)R_GvY6;6p-zgmC$%!W%UIN*&t+Df=#GFEu6NpC*iaB6}QuhW3)Xb`jq zJ@%sa4$}J;Z0?AR#$bks)I;%7xb?F`%M)ZCY@?HQ=dHxxLWYySRp*a+`?Z% z88+Ij6{xN<&~<60zXENXG>kOl%d|bXwbQAQSg+^`*SO$soNLLL8As`&)W;`!#nGMU z0LhQBDa}KD7^VBgFRIo*RSXh`-Glu<{)o8}c<4M5fLS2Oxk6Xb; zSuv9iLU0yTidlD~n_S&vl(H;AuM8B6xE7Nt4K#eKRPX;N)FEtnt3=ck~HCw{Eq32UyaK$inIOhi9Tlbj5z7Oa&V zN9ndgv3(})Ke$Ywl{0e^0cr9+uMEZ0O}q-bxnHTlvEl{IA|NNC+4Q` zop!8Fc-BKT7zmY`(ZMn`6(Eh)cn)b)ltGh!+j-n0IB5Evc3lnk3Z1B zOv{pd`vw4_JK~J0Khr;fewL=t^Y!;nUp2a;zL#1^m5G|b2o?Gjb}7m8562A2Q9+CpwA^mVp3PSAWDjGm%jw;z}7zy^G}czlE$u6rSwVn*@~nkh^LCtXFToGr}wYk_~k60IN(LiktMZ7QoSwQ=Zbbrc=ml* z3ZlMlpOr4Y9s4@_KQ0D8eu9{e1%ILF&0$nI8X{a@u%G*?>dhE0f8Hy{cTe&qLdOtQ z$gKpmti7i=pYp=C*nrMD{l#zj>*U$bhQc?yr-7p-*m=3Sm{`*7^ZXuq-x4fFh8Cqy z{G1x|a9|ZE0nw2Y2DJ|~?8l!5Wd^8c=+DpbQ+bP*i>}$-_!IBb+Upv&A)f z%;a*=R$q;^V@_M#DIzS%^fsABd5=y`HU*25Lj>mcy zBS_>SZcNC0+TAT3pbocYkYci;%e3^7Ny2S@Pe zFDdNF$9;F=iq4WgDCR1K-LRB1B*ybVzWGyDoGB{AL|)6%>9CM|ydhAZOdB#J&b8*p zdcF^3KQU0TLcA>YC2}?Ep3}rh3Nen{u@Ea2_p1dBzjlWoDOgG!Qki=(68uLs`z znrhJ5)40;%C;!7%xR7pV<`P(Ha0fj_> zojvsM@{%idIJ5ogPZJ^E+OSF!#}opXiOS6P=H*TIemwe=r1Mpszt%8abrZv`-n;b| zQjIdBPfBkcPx%Bt%;hOhXlo#=Y!O7Hd`Kfzlg-;8rMpShp<{@#Bxo4u3e0bIGC-)x z@=#s-l7#KW@;}{GS?+h*&3Kzd;L5HP+CJZwfNcsd7!!x`F_14RkIO6Mk08$Z1vvLQ z6!2hb>T*(i@*&Ql0bOrc2&!J3M#uQj$6aM5K}55-QO z)iyJQbQtkp4v*&IQV{(mDL%>JjVs`m5fKzbgvalJmjUKR1}<0nO2*b{;%a?1gM&9F z%o@k$;(f93L_^vZD3Q>TdH8N2Y2jMB>tRb(@^xyeQEMWDgG>dIM%Tx6TWm0)k7Li! zi!CLbg{6a(UB{L41eX*ij<4)UEgq~*#Q@?^`f$Ds&Y_pGyY-O9+n^61C`k3Gx_;aICYZdp%C{w}w zg(#lHsj7zkvlGO{LEK=L)KsA|!@e9V0sm#Rks?USE75*uGHY;*N#b)EUN@)FBlGt` zzZoyXM^=k<1$IfCR-c<2|NrtS4d^NinXGrYr96rBGGOF1(~lBf4MuzF>Bgl zdcKjQyHY;-HkK8iTNhZ4+gsu#nu1}1n=Nwi592>r{f|?}kWs#1Q@$ze$UR^w+C8+V z_MvaXB-&Z#`eG{GyHYCPbH84PId8t*RD-w4VuPO8E(|a&@_Ukf!*!^=@3ZOOww?k* ztp%Y$hgwe-^X0v^t2Tu)^u!#^I%`kNs&akmk`8lTBU3%4b}hHP>Rva=WbVRe`+EH< z3QqLco_L#hW=&S*O4M6@`cZG9D+^QioBkl7(UI@d;Qa*l%)CI`2Ys|{(`~HxqbjAK zv$kXEU`ZDMYdC!YtF2-cESGcqk_Xzj+bf1D}nN=i&IZbx6~2=%>6}i zmYZuVNzF%i@R8=-l0H4{fBp9RvaAeo_HnP}e_M)C3GovY^hziY#Esw2Y8_Gz7*@Uy zwrC3yO|{4pfSOW*G1nC-9b^0=RWy%|qX{9s0qjcRsyr1d^QNiP*JTya*88UBQ_m7$ z6b{P0qt$yM=N&lfN`;PMLG8^M@FYVMdbzA+P@>`{dNDB`VNXpBGEO8zeW;l=NH#R^ zWm`HWuwnoiRhpZun2Kd%k>OxMw;>a@pk#nkc7-u9*VhAot(I|DVf8dMx0u4Fll>q3}`uvr+*O-eaF>8S!Dj}P4ZPFcTMwxt8e8e-tUcn6OtV^ah3U5S;XOL#ohIzKxR_6jN05GAXadVz$3;&YBRo`V7y-jb43^0)TUtG_BKM+8QB z@byZT#1n`b(s#2!GUJ}Tz38BnKeG01^{f-6!ICV_iHMFF63IG3E_`n=g#z6;SiOm^ z&WI#Po5?7bOZt{*5+RDG>p3iL%$03xn#mkL}sSTfG%YAE^ z61q#7euS+dNg9)B>Bjr?NnterifCq3mJC-it<#y7E57ma#mj0w`f-xhSLh#QeXA`@ zzlO$Z-A=3O7&?d|P#E!HtIE$V(kE(WTtci@>Q`Ugj7#v5b>q}hi|IPwT26KDOCuN2 z{=oRH8MnQVvvYh*pzP4HO&FJTU#-6(ccp zKC8{Sh**ROEbQE;UB%K#VYioQrw_E}_LHkrveO&x)2aV2_TD-wu5U{hE!+w2S`_XY zG-%=O9twB&KyWLx3U_yRO+s)91a}fVc!CC!ki6I;fD5$;I zn^kMpTyxF2)|}t>6y#o0+sqLEN_-8+)(B? zFZD5!c@%+PLLAy0jT_es9Vey3OHd%R8c&Iy$MSv=Xg}m-vi_1LgYivx)lj*YYcMC! zjZ#xkv#{BqLCeDJ=-T=K<3{yAct`nHO^BUOz4}k` z?v>R%)fL4b>+@40=Z-R&)2t%NdX!Pg$VO4Q4^t$Pw5a=e1X8Q%yqP>W9R!KSW&x&q zPAD0St9fkX1mhr42@E~FZOkzNWX>z~*DdL4L?y^E~hSDk# zka^6qZfdlahQ>_F7xY|RtMJd(5w=+T?w+VN#@d}dEx!IOgJ!@YlXY4PDK{YjK8F1W zQ1HZ)vGpxk%!G*_%7pw{QpntU%x|N({34>|&caFN^u$L--Sqe`JXY1jo$DEQDF&_c z*tS;3Hh!2+!47F;_F~0ozDy(!@=cT+vj`w7t*F2SuaW|9hFe%loYcvLQYiO^t^y^& zHf4lRAAfFVCyttESgNUsRb1~=zdpOEalP=0pGh;=rsBG zMF!n{MbMJs_29QF*VnCGw2f?@j5RfCPFKO$y z#0TS!hu@<8jHfobZ(@G9{NF3+{{+|7e}M}6?~9hH{#o_#uI3)?{b_rc;)as2|GM7C z;~z9ft)%9NjJQnK);9$guMGM^!rZkE+m{r3F> zko_MMY~~CF`S__a?Zk*E7IV7Z#OCP@&i?Z-I8WB20(8_#_X#;5n1Nj2%qT-^OxrQznUE;S&vAsXe||9P11kgxqVGC zBs)G$!UBs`V^@W!cJcH~q_*~?r16;x+dd5>#*n>ys})?JdN|tM&5qtrn{kjN zx=|5V_zvLF$oQ1%Ji;KJLB<$0arML5+(RQZ%oZ7Yd$G^~8Q+l|*h@V=QdZXNlQU0ycl0RcHX)tD@ ze#uacb7O&j+N*(^wYEP=_Pjzx8Jdo7s#O=CMeBh9h!9R)BuyPNb_`ZWo&lAOyQRRm z;b!_K3>de%lq>4qm$O~p%p@b)*mspVscmG=Fdg$ML9gjNM_o=y^8lIbY5bY3bi>B; zoB|lOy-Rmp4S4NE5~OXAH;w)hcoxtku>7ZE`%ttwbYqxW0AQY$*EA4PmL<`1Q6**< z7BfbY0N3S_)wFXao;zbAr0*&jF12ST#XWixtoD(Te}5I7+Cq4H2~7@nQj#w{j-8Ye zFCZQmn3?!Ng{zgK0dJxrs7ba_i58U7p`M4#WQMaFA1Tr+CjB3Tv>bMc6ecJA@42!5 zQ$n?WUpxL^9Y-Z{b+=4$)DgT0WL6Z4#1>M0AoIbF4xHB^y%R%m<#r!VhKUn0;azFE z>*D$>j^OU)Zmo}y)Ph<^sVg%tY^b)kcHB4{%$SBmy(vc54V}v9Sf_;=Q$!Fu2WZKm zNgf%3RzMM+solo9DdxTR)?Df1?<5t?4N=#{?}3ABTPsovn=A5c!+j(68sflVN)ZOs zbsCix8CYji@XRY6T)8**k%~iMR(r_=n1Q@a-C z3X1AOnDZ13wCgd(KbqeHi&*adH~T+LN|u_jG5;b)SOcwVT|QWs6241IZM5NK{fh4E zzZ?({n4H_Em@|=dy`$08O zMj&a=uLN>}LS$+)i7co=u}QZ5CXI$$5LtGAe!qFlGLA~RAg#^-SRp}0?QUcR+Q~or z-Zjf>fZkwPxa#O}ULl#}tIc4nNP?RFEXg)m`8XpM)>qegBQ%F%0$G?yzL)2EM5xMkiD^qimrE)KNNIrgsRxG;6jAwX`jQXNZI7TD7Shuc4uFswL$E;h0ij zG`>1EN9%SP7BzbOG51H6vR``tF3Ct$?C_RN4|pT|T%}6!>$=uEo}cVQt@Kkg)7^S% zT=8{<74?X?dHoY~dnA+Czv>)lpvY<`7;tjJl1u&0?!~YE^9t3GFg72aZ4ItAV4Xj_ z2@%3O1ak%u>1%A{wBwc0;uvv71nM z+_X* zc5OdqrcT1T`u30D|K^Xb|F@4`Q`BrNHs1^FM^NP)|0e{gbcqoM*y{W<3%)R^WLVBy zJ!*M(1*wE9Y zCFBmZWTbo8$`^}*1e7unm><*-#@8%mlTEQEUrmoN9oVEh@Rmfrt z<3(}|Gx5-XuOB(R%nMUrZH^Gne_glyS|>&&(-Qjnd098 z-x49owf;d3a(}h9+G#%1n-`iR>_)1_Axh-UM8}K(z^m~s7%Gn>g^TtT%N0>;#FG}r z%kPGKNIWT;AQ*MhBc_Jqm%i3V< zw~lp2M(h7q<6i>#U#Se96mzR@&Lc(MfD%9ci<_>xy$KOqz)9hPWmG4{uBwEJ=($*C z3kdX8aeVQP5mEC>=?0~ObSiTkvP8l5anA_5yoTzLtvyY~m{lJ2{e3S(j1=SrGqb45 zuFg{iB$g+uiF>`LF@1sXt*?UlqpT<85eD?}0PyQyhDA!8R0bLKGifybCJG)tRILv? zYTQxwz*z*4dxx2m%LqWH3U>YZbL!SyU?NSh1(xNsnErVfuP#)Maj=*{8+;eX+>uI(>$69Zd+r)85{&FRJi+TU-H~%_MF5P;zC|Fn z2Bbeezu-xIO8Pu;Vf1^4{Fdo|;7QjlDlyfz#&vhkaL=5X>)1`Oae&ZE>wk(f)7!Zt zVkhW`T0>nByD^F}R$2WH&ex3!@0?#5#k1#-a@|*^u4>p5zxlG%Ya0 zkSIfC$^1cA3-^o&EI_Kx=&)SKD{V}gYi&lAc3$5Q!C3q)Iaax9Ig1C&J6^#yi!p65 zjgd2Uu~D+KZqgs_%Y3u4$AD(r)kXqQ6g7fAMvcfe=lD_lWWho$_!e{LTtAGU6=#)n zVV}qg92}OxpP*(f2m;5^z~lvXmo>s42oHsU>E*}HSR>XC)dR+4Km=Z>SJKIUGBnt z_@;1!Y}*MVh|F|z<>_wQiu#_8oP?aw#gM3)Tgo~?*N*v{- zvp#R3OWB7}JHOjefO5<-etQN%Z#_M;d8G~=v)A=FK{a01pxgS=uwgdmFf&BJd3sWh zvW%y#X?D6dIf&>+SVU5D!g()fq-9iocaSv6bcApWI{N^weq= z>DYark&XYMi2tm04M1>)Jlh-}ZHu&^A?K)$j#bx)YEmN38zXWbiL zx6i4$?35pdP4}foYl)}B75NWxHL!HXEfwVhNJYR zWv4eGvA6i?uD3u%(84WuhCAF=MDK8|2GxkxxY=o85;eC%9cr_#Y1{E_qA?W8!2vA0 zOnk8Zr)e|4p#vtWyllADj zu>}hN^o4HzewfRTLDTyiMw2wM(HAhp2~B6~498mZhZiSHxxWbZ&k4CEkY%DLT=4h? zbalqRIA-Gk{XWR`v1B&XtI*uCU=RX2P~+^MUK zC&4SU*U}8Y_=juB*d}NJlpJ$R6}O63Uf-D2o>=oaklOiV*T+!+$*H9kw}x#HOceOB z8H1qjM{@ycre_rY3M>b6HN$R;TJ5zWFFQ@7I=ew&2?}8NAd1{HrK7>pjOaXKkK_hJ z|EBC4Cbgu3O@P0ZIkl9tqCw$>mn!LnUjsQQ`Q3ZQR0?lY2Kn*!_PmALA72cUND23o zvG=vu)OmKD$X3{{uA&&E>#jd)Np>1<`Jv0&Gk%jbbMbWY98=^`=3_E%*GO71HL_U| zQe4*fjSsYm43^nLE^06y^_-Uh@ps{jqurHL=Xpok%E^U!W`h>f?c&pzV>}rAQwrip z*0OMFciI|tZ6=i>>G_(n2in#b#gOxtRZIzm*B_xX%uu68{yZOROv z!@_X>3EnaNadjk+Aq&emB}Gvz)v+vvU^q$AiH2`%V&7KyJ-$ion1l(x#f$deQF0_# zSOhg@T*PC?2Pp`wI7({jcGD#nz4J;>ZmD}r3GHl|HCoPPRa;U~gXkeq_+p4`61BT@<^}OgUIdw|M zX_T$Q11U-PJE;(<1pmnhT*o-~V2Bg-I_HjwBEXDGdXebHcz5C3rB#X0+9v;>dgd4R zRlS=R8a~|{d0#v_g=arIyZrU%|AWP1cs+8JBVnE>)FznOQl0-To#6IHti|oawm1Fs zj~0*VN_iMflCl($_gTh>!8+q+fLnz;Rc)Vq*TrWI`FFh^)}#n;T+)8OT#kBe!9f#$ zU@d!`o^4(QY?{R1>~{lFENd*#cDw&@rhS^Ve}9~sZytC3yMg-pMEgLAiRhU^LEj-i zslT%S_NEiTSe<*?MSsAe_SZ`vk!K1a8wb+acUGUXRpWqS6luYr!&Ub9`ZoEl%T482 zVLjhCx6QYCabZ5WEx}AjtBk+i)uaFF(-$M07>Sx^<>^%iTfk|%{Wlc&>+&lk+_!I+ zBz_jmM9tHS^gcU$GJbxzP&$#K2%<|6^P95fI7jr{wZNFHzsNbyKi;Dsxe-i!VBq(=zrzA|w})z(OU@pJaC!d>0cpkB5B&AxFB$xI=>fa~@t@<+ zDM$@P^R{otUJL(i*RSMI!}~1VJnvwYrB`^eNyFRa|I~}x#&^_a|B7n;{q$cEQvU$n z8U8I|dHV6U!Cnq54hfRps7|aw6Fxwp@iqNrr%t=H1&EgQKGx^+2=>M$--Xs>0|oFO zfZ4xpTZC=DX2WB#2}|0UlhT2YfnoJA4txnie*olNMt8NqK>O|lF-=H7lsxxaxI@ z^dPJuD{!|VLDa~eH-pBJ4NeohrObjJ0!>d8Q)CbkR}>(j%}YrwD6l>Ztk!xRDeO{G z>Y18NIOgtr!vk6;V>0Hhxatujj-!lA=VO-?c=1~@bs$82tchuFJ4IoadKbRX;&?RL zIt^_&i}#PkPQsss6o86PFMfYzz4rKd_c!r;t`F;<{FVRvtj&k~F2z*x z*XiTatfc_9hL=M5PIl~dHBs$u+g)()ZjEvK%}#QSf=s?K!`=l`;(6f`b+t#@637ah2D28LQC=Wkqko@c+_ka`TI)!j%rBuzX@cjKxQ zHX!hKLs)7}!;_x#P5-i!_N342)zuuM{iWRvUKz6;w3~7 zYYQul{GH4GGJ^W85x(lh(q z5zp21xgOR%&oN}pd*K#s>_S^{aTOkm!TiwaH zt#YQ2B*l@F4KbMkw#i7x3IL_+STw7UfZU5 zT*?t6cfoECPTesickpdCQz@#88CFRr1V)PI8ms5|Bf$mAzOc5gfGGB* z>^OKs8H;W%l9$QZw@w$#{qP&}NLAJ>ge=-4w)Xko#`kv<_;va3hUE3%D4u^drDcu$ zzEXerRoMSx=5VtYq0MR~+&Wv8{E`daCsv$(Yq4(qnL;pmI;t(+sPxzx=mauV}xA?-Vt7ulZ5Q-(U1)#4(&peC4`;tk2@jndnGpCJEB zo6p$`$2j@{?CM%V1%1ZY+y0FC?uQy6u&|CkqMv|O<*xD|sP$v{XN%r}{s8{3(ta+LiTxjn71T)>zuca-&fr|c(y+v%!mb&bIKum!cls*8j@Ml zh@jh6ZAE-l9Y@*>!r?q2Tk_yne<}3p1mk(O`w_y7@QWz65-F7zp1u4VoWTEcjrlhL z`{QI8D*}}nPA4X|j+F4VQFGe8Nq+CViOjmKZ{r)WiEotc#tni2CB?QStU1Vi!<-8d z1^ojT>!rL>;LaY%~)jMH@( z5*LH2nWwvB>lOy=ZF1R2aV{&XI(~QjciY}B$*WfD>24s4)v2bxqMD^89e-jn8{3E% z##38g3+*Tk>_wNn2kEt;I40ec&K1&EezL^($FPY^(M|O?*9p^?ML}Ow#og z0-fx5O!%X>Frh`aKx=Yx&5AJ9(k-YAPv}FQGLvr-Sn*vY{V(YUw?BZmA9*&ERIX!8 zdVUtwn7Z`TM^vo6MgCm-GU{q1-`bQ{7e0NWOI50vE#~C~S>xcc zBK9-m`>)G@Kp<=W6Z3zVhW~LnEh#AS1NvFoH%_rGMlbsNyRT}%Gr({=as4{9SuBPJnF4@b(je(vU!xy;MYICJ^j6B=Lpq!lMc>1)di z1TnYRdXMHF5zQ~J5E`#lXN->vl6?f$R{9cB=yo|hX0e&1>jX+%>dum)y|pXq=ZXBt zO4UPYdMqiF@Wsl+|Ak2_7Si#TsqacSdsB`M;#M}THq~*>OVECvvW`4QG+{$~nf7u{ zK}fUL(VC38tW?Y}NnY#J@u^B+WnQfW1zd$PNEk2BDqXk%H@vI&n}$Z3{#HlPM5fQU zkC{+d)!!ZAS^gL_DYj2MVpDevxgh*H1o_0Tkw=t}&_I{6SWi}#Y7%qvB*#52YbuDi zy*8afmOd^!jWdJ^Yq(a_wYgXBnP%5LzCNjo(Z1C>eZ_tG~_ zhyT5smx{|1}vRfvN%(^_8QEOp>z{TuzH#X}s@B8^+k;M^Govq=q zfvuk>LrHaYElOXEIO;IPIe6uS)=g_Ga1EJsFp|ZBME-x!K|BY`_JCz_Cyi@D%@{wz z)U*DL7%}W0vCPvyamv5W%eUmv6EEw~b|cn*%O;mlj)bO$*FXK1Q$M@+wf?+VHIxqR zJ01VpZDIU$e^yWbcH7V9`{rM_{3VzFy_Eqr6HuxXhBM1|Al#TorkrfCXh~`D4drZ@ z^DQ7W&@N!`Su<|a1Jd1Y=4Zf*0fGJpT$B~Fjw^P?7P++Sx4q8rM*|O@4{Ww(X2V}ClzRmmy62@lT^Ta;DFCp?z5kA)Hka{~laY2=0p6M|! ztu#lpdSAlU3NzcFP}ddv5lKFS7bGPWY5A^2Vr|spZEq2nTkgRSzn;k$e6ukZ7W$sN zbfM8`@v3+xSGBK14&x$b&Te*|SF6`Ti^(*E#bnGv?1Xqz%_LP)O(wngQ%xQWS8`GH zb&O@cBYIZ_S#?!v0(eawwkOCtVx;Zb+D#uq&f9Z(IdRIcL!jZ->U|xy^Vznut`r9L zQd%Ky7ZnQwq*{}+W z+8ajpsu>0DSI9k#!W~%Po}fB(FFHH?^G710pJ-_93j}y_ck7C zO^asYOZ?|JUSKsx_(#^YiK>H1``8~xV@-|2GMS5n{H33FGB4VI#ud@`AAV?0e;6@q zyVRo51!c;SGiAU$YZ>dNRPyX3MJYnNv>-2NJ)2)e_BVoblI^zJ9Z$F~XsOk!cXuuHR_LCCc<@Ow#`4(E2}DK$3bt7V!v1Rr++_+VV__{qV`QSS1TbKxQZOUUZ}d`M&PgCNu(r zKQ0lKIXTt9M8;sbvrLvUi#LW0TNNJBK2=?4vLHTLq0sBcpA})$Ll+50`bJG+F!+f+ z3~#i?6ZJg`0(ftd4SwCYFBC%)e;6O3>=d+>Y;{>#7i+PR$~RR%kAz(y`7hAKs?IHq!6%-bSUr_5f=_TXR=9lOZ=^kWGCT&(BnWcE( zu=r|Y+QwRi8)<1dq#|LCBfDy8$XdXyZ>Xe{k=K?#s8_tlQ{C!O>RXQ-mpC*M;d)U~ zrydBvJvftV_X$m7pCo6R)XHt;Vi`h#EbK;^ecE3CghO)rMNSki4qK9;l7w=Xa@qf* z2vi-~FEtr)ZbPG5p{Tn4iNq~jwp^JS$Ap*)_VnC_SW2e_S9EcbOEb07?5VJ6s?BI) z4HXlIqi$4BACK123JqC-Z(fAW<|mEdxCi@ z&YPUb{RJB~$=D~WVzW8`kf`aLwm7?f#f~+BWOLW1D1T~r#pONVoI3}Gqyd6gfP!hMUc^8(0ff0pO{P`ZTYOFw<@HBNge$)rL>qGZ4{!* zL8jjX5FFUmZA3dN!!gY!4n-?1R9^`SuJ)f*t&>E!*2fp=l!#EWLfI;__#4i!BwK)z z0U4a8?Wy;8Q(k!sbnM-C`7xHw_HBYP}INA$~oYyeuprmn9Mz3+E^&dG$kJs9^VEBt!YRiUabGlo4xe z>;nOY2vYkDnr!;c>{5$BBp>e^-%nOv>6ob;EHK2@#BN8YXGnP*3bxpBN|I{61Ni_L zy@cQ{ctk2iMb>~5v%ad(I#lU+wqT$rZqDP17Mz9kOo_kf~~7%BLWV*AxD zBzqA5#M-sBf_M;-`;XcHXYHgJhdSC1rN`^*jWqe_>{GF~@I@%6AWjfKFbb~yQUVxF zTC>OkO1e#!!hNabDqN|KGMNZVF;dq$MVF=_CKXX59*gmj+Acf4YIMSpsa18IC&Fp7 zjNzSi&@LGzOOYX%#LY-*&#tF6GSB#t)VBpQ+2oVc`;}xy=5!JQrRk5{F^z7@vkW)m z1iltorsvSuIXOJ!9l5xu{6@Be6nz2$$;K>78&}w*gO8Ewb1yq9QP0a{rQ|dnn2B)C zN|`#Yy3YaP8_N<=9xu;1D$m<-J4+J(K!K$MM=6K!hr*HwCUm`2QXDhQ;~$%y6tM7% zmXxDS$Ur&j>GUsvhxq60`;-MY1CqtGZ7@dUTjZ*j3jWVKGVx=wMD{S2!G=x(lA$gu zlRQJ`x|(@#yk(7cke^#gWowZ`kGB#JnWp5`4Dt6v*bx>MN+Kh_K+yadi58zBF=i8s z$VbFix97#w78q-?mae=i25aXSor|G9!wc|EHC`doARs&dm03q(E(S~+dFVMyR5!L! zOyu>8{Q+2;*HhAT$MDF$q~r?Im?QDD!oS90VPmv*KjGwYy2$yyY6>+o`EgmyJ|@q; zOBnVNi_2ShE*rMLtlPy&-4dPo;fo8#)K%ny9W`TfCZqKW3j*aKxyOkj(Nc%P1zIaK zbNqruMl$sCl&r3!q6OCJm(Gmp4rgzPVi^J_V*?K&6`9t#Kj|6h8BiWueRMtF(l49j zbgRp_Wv~aCm9iTJsd&O0?RxA%VI419{2dYuGx;2Bmm^_BWh%JOg;6I^JvXrL1fEZD zs0Yf!8NA6!e9}M8#TQJIVBR)!GBroPwRI^GUwGS~l;xF%El4Oe*kn45o|yp(SPHVwN*A3QhS9~JqE(MW@T$!5pPDj&Yb z1Nxy_%F4WSpFgUUX`Jh6fVRx(@-az~62FANM3gs+qFkZ5kjKF`b6CcRuy$RN3-(TT z-=Zhqid0d8)Ql9}tZX0aa_G{T$oz(`0rnK_rDkKgVch5;YGzD4n+|v`Y^<$cV|9X1F#> zh`h~wq!F#cHjOk~+4ChK5=!Zd*T;gcWoP?%B;w-2(can%X>Q0sC1z}ddiBJ7d4FB} z6U)!T%o^|J>u6od2Bpg$8N}6fEF*=6Hr23{ug~TOaxuiyQX`V@SI~}PmQTIyPs&#l ziEKkf!lv}Bn#5;Sfsr3ZYw`;f$%8bqi6X^F!K&13r|wy(s7mV-ULzd1aNRAx{at1>Z4muri&rc3kaM_In-?2o+M2 zAocErtZJJJ1mE*7mSlG7PNM~qI>m#anE0-T)@Z=`&v*?C0Wpc z=X?5*0&ns%0=Axx3e4OTAz=*+5^j{>POcieGu#)92~nvS)>6GaL&I@TOD zD;vY24Eyq{#IJOA8~25DV@u($XNkFT8r`@P3*KV6Ny7508d~=#63ei#GX;TSN@=SflY-fj*SX?h;CZCz}1_>pm>*35RCs3;=7LdO=%eGB@M1iRs-#7yk!V4 z!|z04K>6mEY!y3dTh)@GbL+Gpux4nJokAK7f(1Zrm{hW8|K)9YoLo=*$pc^ca_RL$ zNdGezb$g{GRo=K^bJZE#DPgpd^o zzVk&IHZo45UOj(lo2lS7lTufRLW%&SV#dKBO4l|`nT}tO*{W~C4XI=g&n@BQ7Kys{ zcMd~?0#*XAGYP{B4>t{0o#YYAvtRN!BUauOg4laaFNYKqzx|FtB#1&aCx5@Uqu9w6 zChSBb7UG8|DJh?$Y2+C6O!K%YMh1S76_Aw57U|4Nvs^QxAh?m4q#Qo5;l}jW^ZY4j zm1Ngmj92%XiHDbJ5`d2;500WDP@8WuR+yF)=5ACZOid6`pgm|;eT>G}DS>__LEqSD znsLY@lBX&CK7NA!FK92Na1{nre_870E5Zv`^e(cAzJ5`NF_rNHrUnj^(~5nb+n_sc z`Gx0Hzc_%y0q$R;9@Wl6L)9hODv+B9O5dQ7FOyA;7XjM@P9B;}6Cv3;tZ|Ytx;1ji zOg12S%_b~@X;CD8yh45k^p+*^dYl+_p-oSKwb~}FDZw!qMbk_97C3lQ>g5hhlw&*z z%IiANxKqD~451XMKa{c>Zmh1`uCU-cPNT1Mpu~lkCyA4@gY~$Yj4LT_4~>hyV;1|t1O6-MGmQ+U=(w7glzk3U}^8Ra*?OD zcJVEoM`~BHdCpmtQo_ZE*r6!UQ!{DmP3>+w)Qoy#2PM!gL5j4*@FHw0Qp z-@?rI-ehY{i7O>EYR9+Hj_t}K*L~ggRFekzO$%gs7tXY%f-Tx*Yn;NkR1ULIvsr;f zufDZQmL21i9cL=dtW$PE*)e<{vy=)=Oqsf7rFtf*yR2tP=p14guu6<#Y3|HYd!kfH zxIfMX?~`+2F_9UOsfQ=e6N`7X9`!g@4HwDhBIRwAr!ScC*}+Bd0^Zg5H)UvK^a zarzQ&-$&Y3q2af}DNSDpk~a0bkPlAVmwf4*T2BF9bt|!gmBD_XJeAj@ub*4Il*?%A zRC!j-T9?t%(s^yF^l4GMlXNrS!qhb&>ZAc0acCuFD!aqKT* z=79-Mmwdu%^(v`pZfp>(>q5VDe5sV$Rpo-B+`_Q0eo`^=1nu)WEwn$bgdIZ`DV|>1 zl$rGiNFf5B`}Bnu(Aesdo^E;-X*&ob4gqtwOGr&R9`EK7L{%~36dtQiB1 z*G6_1aD_U<53`Z=-sO_@tzy)0Q5mDdgV*bHsLeHA&?TsC5>aC-cL_%6jmH8f8 zb*UK{1X%gWENNGX9TL}#*9*Kz=D2i@w;biZo;4LpPKrW^I4NTxq=6Q`dnlmmigvCx zt)%^-z1ty!RH3#(@yUs=e*jKle?|Zr1OQ|t6cl76Obm2XG!$f13?yU}03i{=!Qz+I zAs``T074=c&;)d?ydq#sd~)9Kc|jS^Qfr^6);5s#dz)w>c?G?+lJp_{vX(y^08At# z0I@WJSoaYP!{hGU|N1nouLdu36jRz((J`|s<^7HP-B;x-`rSq=l+BiRG&J za(GE&@3kmpl`>{631RxS^fjrw2=^CKqBWtpw?cJD_Ir%M`I;(txnvYefC?X4@oasD zhs7#%Vv{Z2v*CEK%On-!7uLAer&JN+p$4< zFJ~||z5rDbZaf=_SF%%D2}75Wl~cI1eG)5>5UK;Hb!|l-kNn^)JUK6^7$WSSeAx*7 z{DAqK1WMk}2$qHX1XUyNhXA?ras!LVl-Ta#$2Li>_L*YA!89BaG#>7wW>K0*y#Z(! zy1eHvJxTpq&hccQ>3R&?nL1AO41R*iZ6Bl)nij2oy)J2FYn{Y!->s>!QdP~e!c)3q zEUstm5$1^SiGKO>`JQ7UaYE-w*3oJUl9HkOP&L?M3p^ngy*_|c@0Wy>{&~yT;B8-e z;`1G>n)0NYXRpzfmb;fy%q}|r0QN?fbjr~PMWjc-1YY`kW83Z?R-HA;26jvjvbwJ0 zoyRFTYzY3u;AB|_AUf*HtHzp3krb9+bL20E$Vzzcv^!;~Iy0$>j9Y1cVgpy{MDB!+ zE5KeM#=Ybo1e~~P+nKJiCoAD^!OCRPjix`_&;&?-!*n>>5ojL2fozIp`fv#%3St)m zcg%7ct5*Rn?oKwTI1>?#lW%%!Y!m?sGGBm_&O-eI-kUh=$C~D!BlH*y^>)wU&uX!m zLJjbIV01$9s4@DRL=CQ(!W?LR_LS@ta7^LqWD{%F2Ni3c;WxG5s8W&RV8S_QCPF`J zdPa&nbwLm;JsWSlQ&e3WLvqS&rVXZi>=b4U*o4)Wnp#3KiB{zAsCjT^{a4h~#@k`i zdYaH{kwuO@lr*ua&NMDP3ZpX>V#N>5afUS1hR<&rm6NOa!=8j#I$9gjRd}i%kaDr> z?Vht#N7!UY5>n#2lE5}=Dv^?J=Q;*`_LJ+?a0NJcimB6krh=vlF_mwd5*c9WO$wq& zFP2?yug38!e=1Um*ib(QPeIMcMx%8~G5VDU^;Kz?j`suXv{%SQ4ckbPhfaA2=f*x@ z_Oy~7d8r}ODyZ>-Jr8i}m@>Rafk$x0%LY6IOV;HSNw3xkDN(&3B{lsXun>8Yx~3Nu zS$1bj|ElgFJX|${6&Bo?dZEovqNEJy=cnVGOQmw}x(Msr&Ys+t@6P_+;fH{NsdK~; zLqj_FRANp5;pA2!%(1$D^I)2&`K__waMoZK_w{D+oIW2}tQ6c^Gvf{J+{WD>z_L%8 zFd`-MNEMM|q-9&{`;q@yF0KAbAr%qLD=_>CP}?!aZuLHR@&?;ynuAk8X`u3i(SazC zgagycF~84#O6!)x$C4QYS51B&m?rPgJjxWDt$9PB%|^!IWbK%~uKjkx1302EXlo>W zRKH$L_VIvF1*d0fG;- zEauZ6K&$GTbzZg{#0Z_rW)3p0*S`g#)hP_glSa~<{rFXMkXM2(ODX$a0rHGInf`xQc60t-P z5P6m412($R5-ef1`Qc8v?uYoYOn`z!Z3cdo4DXV=5hyA#Ra;$+i!aM+XV?-+FwY)I z?{}PeJD{R1M_m>xXS(LpL|iFrn$3$JZ!W{Xg}jSlq*VMksf4;k;C#kmK2bn70!<-F zZlVnAsX4;zZ#RL$Y+iB4h>7q|J@PIyY@z5NlaQZ|9l*5`nomnf5EPojR}@S zTlnB+S(ti@=&oE5UL2b93ligXGr|y@0J@6GH^uACOvs$n3Z!nfIJ-J*1_H#s*}Y;& z$(%T)J}?y|CZdiC5_o{?2i5UgjNUTvJnbCr0I##Mjl63-YUTk{4rgRn#uoAiV57Wy z#oEf02<0M`-7n}jSW*$R9L1O3!|}{KSt^QkN}WK{uYVAf7)m`os%tqg)Tjk*vtK z5ch(?y)C3dW`#!7r9C4{^X?XCKfJkD-eJdbw-9~*l5QHkoviYccBP}X14M@(1k#^J zknZ6v><^`{a~!t!Js2i%>{o3m-EuRzmMrH^vBlwV+>Dq zPlc~%-#NT&Z(d(LKfCw)DgKX!s&1C=7k>a(Ot;~WoC_!i&C1W_5IE**Gdxm8e!jaVc1ER|(0*RUfQ`P_Mw)hQE15J%{NoV|Wyuil55Spq0uLqF z8c^ac1-1&iIIu_g{k!rwta7!(=E_+MBHdd{!zdko>MXROwW3<&kp2fi<6^`6D>6vrV8vST6ReadNyN$T7uNi;FGlP_|kL+J)MK5Zd!{y**aqYQD z;tpEU_;w7&I+kRHW*s>Ts@zzwWthME=oUeEJW&HpdLX7wB9mPF&ui(KpqgN%8bb4d z*=H-Y4n$i+Ts0Me>83tVtJtyaOlMtuyH!FxEx(S`gvLLB^-IsYZ&YzQ;Uf&fVnluR z-T{wJAXJ5mjj!IztopnmuMJHj)hQ@;bUA_q*=S%NPtsl}KNF-*lO_x1q7aX|@a?qR z!di%~Uv-`T1Atk~z_>b*Mv)o2U&WZ_MAH5N#KsxK3Od`&F7k8gcrIk@{Ho*R8)p2K zv(#lj!Trgeb_1^CsCM5Ug&2r6j~9KMr08|nyz>L+{vUuE26JjSNpd)=miIxGTeplgpR6mZ2~PEty4@ge{ESh%(&;un%0ye5Uk*?J89iZN`Ret6LEv3;n$Z;m>#RuXmge%?9F_v;?O^ z#6z7`Oqt-3NPRlb+e%t0GRxXcw{;VkBIY8+P|c!rrxtc-wi4esRXLXb&Lek7OSv3R z*PgKUE-!iISE44^o!EMichf5~GczOfk$c1zc2|eNhk$dF>T%9YT1Y+QUVtkmZR5*l zmW{?MkRc!Sd4g*Xom8xm?}8zovZt8Bs24P0i)z#SSN4*vjYs3Sa>lHhk!88NzG4oO zngfqKy2kIn`8BFn*c%tYzj7F)+h`&L*`bA4zpY-M3ydFo6?DyiFTKDtZ2ZLDsj}3m;PCayLu& zcF__9)8Eb=ZawtVnU*p~%HYlO$dstU;p~P7zB}`|>y4uAKOJC7CftJA480TApHGxe zM{beh6zJ`op7A2`ABIN|B*%XMUsKB*1dFZaok?{-RX$B~f+Hk#u`_ymEXE6JybOI5v_q8;g4%a+=9FboBh&ldpwKBBV z>@;=IPiWgDXRBCm_d4W7^GHZB;hpgfOY!+@{?+Kh)Gu?tzwFVUeu;J&TD8x4^1m}H z>1n8W4uYMw9$3_K=y|;=Ho9n5l)r>nexYRl1r8Md7UqSRa88gVqSDt@0@ZCjOB-); zc(jRGoEwW2I~KWy+|*#sMh_%EDM@k|9<76U zknBW+@}gQv_^E~3R1F`lG5#;|-a06bwrd|890na2++lD@aCaNr-Q5Y0K+pttcZLL) z!CeEv9fG@S&>%@536kGD@B4n=epS2s$5w6C*6vnUO;7i9^<8uN^nIUmo$H)~?d`(W zUX)MJPo5g1L#|BDMhs%34_6_%Vf5uC1*A?_VcE$JUW|`VYkIos!(YmWoE{*7BfX6l zRAd&Eapa*DG&Faun$@f6T8wVw#b%h;Ui~&N5N$UX?4Ax(IbL50aDGw-dm(k)cHj=A zdx*l~bVVnaxZLZ&ccn`nXZ&Nw{l{w34ZW?gg145>`b6(gzdlLd_v-#JjDOOjt)(eL z2=TVyiM*4xsBR74zV{z7sMn+dW5*bUm-*&f6B{X2d2qjiuJ_N!07+=l(bETS6p#f? zQKI$XtuNsI5QafoYvfvb4w5SF&M*w#5r18IJ5WDPX)<=)j>EzXY7NCCw~!*543!=s zd4wwmM(Wm>=_exqpn+9w)Lu> z!3i#SFCf_jwE+8a6Y3d#@v{u$Fyyn8wKWxnu2Jz4U25ml0sgdjNOeWz94xmE6Z)a61MIYwT~g~Kz!tcQQq|go`&{EVwQOw`PDNB zH1FV% z=<(}6y`bA5rR8VcfJdF5zmhExs=9N?@f`OXKLlm0=kgWH;Nh=e%b4GijE9m!x7eHJ z(b>-*gCu(quR!my$+Kxi`Ylbxe_wMJBsc!}1?_!9eP6&|009EB04f97qYeQi?c4u< z+&)fj^0W^B0o_~fkk|hOYy}mh+;Z41x3lFR6tE1QJt~dW$FzFrO3IFo-{7-!A$<(2 zfBhHmYBNY~<*|B?_Pr#}z2!6Mo%;Lnqv#*MrRWilvwkS}RgAyH)n(87q35xu(IJWV z6Q4mx=zjq{v~NtDk)(={+sl4e2Ux=Xce~2OF+6UC$Iyu+gToK*uTAG4mwH}I|6kZ8 z^@j@5MX`+EBzOG*+qLm{;OH)JLgDs(} zk`5)1MgdJ-;(O1T2>FXkE*BP~)h#7k?FM`6eau@sS%{V(c}f=drHTndqmPY^_r!i# zO8Gb6Yx_SfxVOX7yD_(BWh00B~1)(I@ z>#8(nT@Ii5&kIV0@F$QP(d@=8sx=<{vgqD>3BgXm{WG5zhEEr+qLO-9E0!&Rro`JQ zja#=Y4vg1I`U@x&U<6x8h3#dwazdB99nH03Xj&47ivbyq zEPdFE5dbqby4Nzgn!$a)_0quGQ%MRR19YdVuCkH)^77^c0l+Bzbjlx}1;kG&-$fOB zp1nuz{rVTcb0!w)2*SxD2w2s-i!<~akw;}&{H2+`OH-uN_TJ}DlIZi*K8`^&Z;$R`_cA~C*Weh5oc56a1&kRUW|V)SPa^n&CM%tU z+wVj6w)j;#3o*fqXM&>;YV&EyD~)0WN2-_nJ*Xck7DaeeK2mh%X^1>`IHeft>wSg> zR<CD5`znr=n9ng{j_dur$*<+lAmydPC>`0rZzE+^#*i2cL)k*ZM~zGn;47XT zNRs-v_p}aj_egHZ!P+O7TALEN;OT#wPGreAqw!pxLNs#`PyBqZTq*42$&-AkYR zO(@c^FBv)r{sJB>NQosYi|iLz*r;G3WFuGyqT#1RKhjU->Up|rs-O~vlfRQ$MkFuZ zqQ2qx$9M>1rKf+f%%J3RY3k56?G9sA(){-n3eM+nTVAVeR>0Ip3U#zy)AM$^wtGD} z7JQt1ttk59U=v}0(exf!V%~bD?{_Q7^{>2K)u5fBDseFjyahFX5PXbHgr?Lm-HHke!wl}g{`mpamm{UB>Jg2qJaAfqHx4iI{rK=@{{ zr7XNqEo863w?!06Sk&KvQ0B7Fr@-F>iSG`90OWdsP-XoZg&?1sxW9l3i+zje2IfSQ zQ;3`2*jwTk%+7IPh`Fc!kE$ib$^gf65AARLYs1HZb0{E9grVzApt<__4J>2zmE+q- zsxoSZk##3VhWpp!kd^Og2svr*cA#Rk4x(7bGx@1hk>mda_Oh>sp&%TiL>f{FA=Zp_ z;j$dd8t>?$(pW0t3*Y`egzMH=Qxi6G7jhnZs6!fxzh0 z72C27iU#}H(kWjN)|h85b4}ckqheZ_>h8eODNqqfZ<>EdM`JmISl2!={#qEkp@w^o z4VKi0b0OKmq(E0UG?xEuDNTf3Oa%g|Vn)qN5evG{=&K`3gd6eCYE7fOZwz=Ybip*> zRq9S=bWUmHFYZHHMbaH<0%&@r?9PS?#@>u9!)F=dzxSB}^T8R(XXxdTkiNhs^riJB z95#@v-!9r?`cRYYlk|FFtnI|MaFUCkj+ytlTYu{bHUJG*6r(rsaybi3C}{4nYql6i zZ4}rK|8Y_yg>vN1>90isz#FJYv_tt*g{hB4bIY!WSH2k^)d5en)qbZQ7Q$vN^Fkby zLwYNWQ&SO!DWM=oID~aW4=5)^r5U0y=S45(#^mp^!@*D8Q%r@P$bkazZ>tpw zq_K7;kd+vWMJXh72uEF*rmD0uW->)oE{$IufbWE5RRoKGT0{34cbd5K7Y# z`(&t;64*@=Eram*|FM$nB*$tZ?KtR-fnx@;2z>1S#RoFc8?ApS8}=5AWiqRVi7XrTz6tqzWt4OP}morG-kL{IpGy*C&5lMivG~K06c* zx&FfYy8S-z2H*0wTu6u8kD+bYJ#K@zjl<1gwYJgJ=KrIIU^o)Z>O&8x{Y;bs(S-3Y zpp}y%cd37zh6uPo zqDdJ3?Y}kjaVBkLJfx%Mm+r@~18IUg>o3GSpI9t{($9jnP}Aym6FF;CZDb(VY`L`V z#cHc!C@v5m3DyR*UZm~V>r$)1pI|Dx_EWEotM?<45C0xTQsE5a^{-Hw*tc2t^ci;* zB%qtgRE2RH(_gw{b!qayxMp4UULnnOxa!5x2wD??ftFQ`I^!Bh(4&`m6Brv8xGuGy zDl)0Ic*Tbrp%GJ_RAGCpNpeJ_hQ$VEnhCw?Se!XRIiC$D(Ho-0J={rn;u5nE0O zzWbMDc^ve~=KiKqOQL>xr7Q*+^P70uK+O=|&^0TFI2nYW@lp1;-^AgRcEN@m#j%`&j}v1j|>UUlm~b&;L6=vPDlKL`@I8 zFo~uMfB2T$D=+gnv~;_cPtwfw7#YL*W>^{!c>9x3eUKmJY;4D_0DtrGpZWjag11mj zKR&_xel3+aEl02P1^=2E)##QBy6pE;ZRli%Gd{hgaS*&RtrW&-HNFtsF$V8!V?H)zpJlwcUL3owdq^i|ID)X7!(~2 z(P1_%2)&dU0m_UFEz3a+PKHp*t$AJQ>@!L4A7JAUfo2qbABQy==9`fe74njurIc-({I1g_V5;ueAJBO4_{@u)Iqq7 zvf>GWcoo;w)8rUUwX-m;e$5uCz56){!y(i5SU94{)-Mu_{=m6oX`0oS5`e<}c_WMQ z1LN13^~v8&TZtC)2Zv@|D$c5~sq@=tIv&MnaLoL5uK{7tsCHM!KHoi49nr z&K82QU=;|&T?&A%^_7UFrR0x5B5z|_f zfxab@X}qsyi^Ng~C*twl5{*j&e3;wOMV<;qVR#bpKPJ+oRcq_Lbc!RD57ovXMk(BE ziooG_&Fr_bOIIo9KJD73VPBL`*{)P}BP9QDl4m_3wMv2-gJitCTyNdj{-b{g>9(7i z*3#qD;Cm{NJd16BHeUGf89gWtUiZ4rr39irRZZEQyKX5!SM+jf7p2ayz%>MxJu=q}@vqb0Sb9lBdSELCk=>Qh-Mt#?vG{Ff8SitD&*2r^N|n}<#94*J z`E`>^?omD?FUsMBlmgcci4?8g6`4(wk-H%EQq8~N%uNjMxE-Udda;%<3|z0}#L)0^ zB-aj$lvEs90^!^*J7QAkaJF;x0anb8-@7P2t}a`Fmz}>Lh27(2P?1pdxUdVet+GJ0 zJ;}~m*eA)bHl;`_#|h4?KA1qwlB)yF1Y88pMR<~mi6guUlKqzSYHEX!WU5JbU5PZ|{wpP(C#T$1sEo(?dTAT%Wc61o7x!{U|wW=4Fu+)R$el);g9IIZ>?9*EE5j6 z83D(~8R7|k&FP{k^u{0=z^+Mk*B8k5A@v@qe)5tFIDobV1CVv#Aw~X zA7=`3NC|ReZrL8Z+>COQloU|G!zHI;TH{%7X%|r544>e;iS;AB<()CwpAQ))5V=F_}bz01x%p)@+ zSRUG!>R}h;caP-JLT{t>ofQvk<}F zXjnD2nfFM79TqVow@Pb`$4FVsu)B0jNcc+;&J`CY995FS9X5N1KbJG$ly5_I=*&V? zn+@W?IL0tnh^Nth;aaYf;uq`C;Ib*M3rkP{)F?VZQQ4}`^qgWfko+1HGO(gME zwkwmK;SrHG(l&wbj?Br9Nh+}(!D%53v$?lI`@>qQGyR}xmx2+(ZxaYP3uWYN>)8JV zvvvTDgrdB>uqe}@Va;Y{c#^Tz9*~BiGP>UNpsJv8a^ElHK@`+$v<+LyKCq?95)N&w z(Hr)VnaCTX;DBmy>)5_KQg{x2d5L>zEd#t#eL+t^X|4wpeG3#o!p*oDZCh%(9|kLs zh#PnNmBwU>CLjZbl~B{v5jT+KB#@+ArSSYFe^DwDYx)5V(`?b@F7w)D3(m z>`#q{+M%~eYz}}t(-cOF;xra(<^qpt!qlG{N+~YFxubcbxYvrL$TL4H_w11h)oRx8 zxG!Z%K2Olan!j7o@heWKAY0zT#AwAd&KKY%SG2;u!&b$XH1YY*>#FOlmNJtAylzSj ziZzJ<5PD}1yYIR{VPe$$zCw6tU)-lT(c~wR{c_7rY=9VmxOJu}?ZRXx>V62!i0X(3 z`DI0XWqTqSRf|{minz%knie`^N}$m-&wGGp&e!)3Ph zs@6i&^BPs#Mbi5rS}R~0x?nzS)$OQlEc+1GsSOuwkcI@;)s*p4PmBDiY1CgUM79&b zP7bGQl1N1nV&oZz@7t0W=(zS>;*ogb?9*?S+N-SaCPQHtD9 zH`0{iKER8aZwhr1kBeoh_VnY3c|+>+uhE@X|8lS2IgX9=A?b3jfuxkaj{dBO4DSx+ zRXB6CAMgkcTi)w9RY!?dt&=`j9x|9b5Qw~y^Dx~~#F$_~Wy2Hmc4p-EoFwqOkwA0n zP@icqx~7azOsh4&^CH;vqc+f43b1jO+kF?gjoQg>V~ z7m+tttfMqNOryFwSfU%Cq$ovla!zArtnpDRJf@7;@sv;^FPDa{X1vi)t=i0`n|Mag&C`+w(K>bOjr?6DIFp`_19S~J$L2kR4 zjR_95!DRmEmGs6s>RilcC|n~_zOfR}w9_tto{v$>~uH>`9u*oCKcD2)eY6AbTpjKV-B zLEm1xU>BHi;d|8FlO?4urZx_ehHIxz2xHT5ifF$cuSBvI8{i(4{F>B*i^|08q_9eV zr9g&}B-lr&d86l*ZM1D!Rj0tdMd&QbD3r)flEflzywPqE#75`K8L`210}jbfxkn1# zdPEfX=yoL0kr>Hl)wy0B?+8rO5Y`>)-{y5sdlA6XU;xT{+4+s#gV8)=Dt!K8E0U$n z0WWklvXib-u#yvxZk6a2g)CT+_AJ_Am*j%=#U)H1!fV=S>Ky<~&8VBS+`#EJGKF~p zm^I-lJ4^-_n$J5o$)9)r1v)*>q_l}uV@I>iBto^+#XUc}MGYk%p)L>;Dnlw5zUHy+ zA{o*iaQeZY%bAt?A~_1)H`Zjx z!*60n9PTOKfg@#b(Z1EDl0`A!!;KZnGYH$J;^AD%yln;AWpc~*4+gu~7R@+JR#pXSr9_{5;m9jB8H(atA~?z&NU+1@%w-`WW#$8coMiiRjWZJre?A;Oj-XGl z*mSb;j8JbZ3*>uZ&$84n>)t_HI!zwZa{?EAtu@;W8S4Tml?^>zz--Fylow5L;JokS z{E!5!HxKdF)H5t-jp*^kHHr{M7u9@`nuASaCev5=E<+a00A=*lFjO4BuQVLG3?Jn` z)&`~&qFluJ6Ns}>1iR^d2x(_9&2aUrp^R$`A&MG9%?Au$6ga%+9}G=gO#@80;RVcoGabPL*VO3K@MV+fS_7%I2g z2|9nQ!%)E^gC~%fjsN*Fy>p{DrVgDbthyTA7NuB|tFe!0$kkQ~5A*gKx)Mbt6lw z{9akFpVVzlV&!TyYzOaAMq}35m78fw*Gt)z-_>l7ixa874CXG;_<+H9 znW{EsT{ zi8BA|(A-{`QpR|)#HB(8^ooA$(`)CE-z?-5Zc>KA)|0qsGySMC1<&3pMC28;+3JoHxMD+@UR)X_D?17Fjn*P9(a2^rkQ z9^T)k`9W*~K#K@m9pB`l0$qsRi(z*@9)Mwmk+!)}TYqk+_wrgeb(qkk&$qMlX+`Kx zvc7Bok(LoV+y%$rpzpwg{iqS8Vd7cNYa%av82>%X%5)x!gwdfUOK-|f$X|ewA3BFIJ%;8mJH*QRn(G6ifHZZEr!Z z%c+vRZei`s%gepV8Q29*kv{?7zJdL(rx1EIt)M_-s6EIu!HMPZo=s zG>}02IJ)>Ba4(Kq6OqBWCds`M8DtYqfc=e<5F^t5GQ9Us2pVUpIts|D0}rTe168Z* zrm!ZTIe+TnwWa**YwIZu0j5sJ(CuRJ+p$rv0XnVcUTBN)(x3fGhpr{x;Bzb=M?}d% z9M5x+SSn2K_{|=W92>O16)nD-^9MJPlAx@<9&e_|QUtCfoslJ1mELGi4G8CkvIw3b zwW}C7#HtcQko{Xvc*qnr$)0k?S`!%^KgZxp3^mU-oF9U`l zAOOi)8fh2}P%u(En!-w2?d39L`$tO)gPMIyfjv}4n&qa|wAQp@`^A4lqVJynOR*zZ zDH(cRx$azj9g#dclz1(@bFZfCrs)l)1kMf2leLTTp(JLNC%Z)hY43ag6T;Y;NeEu_ z^0D{8Wb9iWu+CjA_n2WRZKhqS9$%|`HOeIIY-;NfDWHOR2q1HfUN!@!rD+I_}Xg!Q_ zhg4%LjiL|1(CS$iYuw&{-*0}6o~KR@#EGu%SzjhWUGx@}ev39ZnZp?>4G9hSBlfas z*Ncbuvx4RGehZ>}MQI(8oO* z>0KFq1pLW<8jXXwdw*r3tfn(5Su{~hjzJG*t0cD1k%1>bBOmzc8GhD$I1|(+z0=+N zPVRW;KD!(;3HF3=+w!@T#X|8exVha(>a%3GUTyy*B`hV7w-0U#;4{KruG8gAnJ)KH z()yZ~M5Tjc6&=8AlakyduE{c9oM*=&8`9kr+{U?yGVB~eSfe#%l?GLEa0S9%SFSF$ zWa$~>GcutzQ6z1oN~a>~7+uYcnWC7Ct6ib~(P%q1L^q7B zO}2#qvR)ygVYNhWm9#bSl8!>wkiLAFQTE;V+s<055$sXyocr=O zN4aAVyb!%_I1MBA(vz?dBZDF>$W(m3a1>``hPgNR4(9AbzTtvKJ9rm_rpB0RM}s*h zhVwMi%D~Xn;+l)-C=`A$ohX}{Q;&fkmW6kQj}`()c4%n85FsDaBNePw31!D1HMmp8 zNn8tUPv=XGpNX^5j1t##m}(lmEP7I6$S%$W^U%Kj%yVx@+su~DSxH1fS!ebVHD3=F zu4bJ$IAqIIccBW4R&Epz(`SqLLKYT66XNa6fE-M9tSd3N84Y|4QIIKni9v`>;^6pt zp`m>K{h6Ht2^J*x;8%kwZ1lxn06zPqtC`QpQj{t@^f%^aJlI2T5oSIu?}g%pnf|g& zNm^wSXwKB?suC#uP$t`Qt_5TpD9!lVB?FU`*qxSqw}S7TRP` zvKienF&9}Fl82;RVDmWR{#mY2`pRw}iz+i4Ez4b!YVxY&4w50eFP)o93-X$|`b>ZR ztbd)%FkZ&vY&8~%LmXHV5saT06tCC1{0{yW zzW9tO5s@U)U?PomZ-&*x%!E)o=5`1R^O>8;QbigQ&on#WM!jRw%GiTUM_B*k*Qt(} zo=~TRY}LhK)UI*kL5?nYBP0S;bn(17&nUk&9B;*%O?37Zlf@?TvTPki4|)5rs;X6; zal%tIqU{-B2yYYmT?p0EEVDKs)QBiceL2f0TZ3V-(T8s{N|z)k1osqJ+APD)wJknI z9xd(Wq9`Z0sb=R)i!9AO8mg;ImO2le@*d1#;zOzvX%v9l@u@PGWsDsv8nK6j05=ny z74vOmCtrv}DR^iBC7`jgahoY0@+uo$4f3HGqx^7`VZj5gQ2P#RV>IQ`Mbhm=svm+W z5w<2#$$?tyQ5c?Oh6T!QBKKM+^_ug zJ`BQLjqqF;;^C1k2mEgc3CO6%tfi~ZsBOJvg0Qr1#nzNu&TXONdGZ2LreRa0nUx8g zkj$r;18t(tvBt6!69GW#z1RV5@PD-GspvSf$QkLgBEu@tz3%^ZzPI2%wo~<64ufj_ zswJ0JliL5szrgVnHiH+0e?Y3S}KN{-sKE4&l zAJ~pj|1K;^+^(Ia-Xp3fpHKY$ndaxkQ;qw|_o8IsYp$6a-=buCgWaE3v)ZExS%*I_ zXIGj>9P<&epY5K4*2J#oH#}cy&^n*F7kLiZH)(qQ0EKVTHuHPBDDM2GzVG}BTxq^* zY`6RZTcNGU{x|XJ;rD;rJ-?LFgHbz!^ZXuqr2Cpk$N__`{k_@r`J|&9ewOjSZ9LD@ zsEj?t!Z?GQ9Xk+ZDpZOL`&Rf<*=ZF3MAML1!QdN8iqx;@1Esa+14Q;r! z<735Rs@;3-`X?g93_cb~J%%#o5nM^ekR+Cd7~GbElF#%a%%4B%Y+^GE^9(=D5Hsu% zJ6*0r>Y@I>;^2EU&_y0)mTZV9d?Pa`u^nyL3Xnac{$rl_8mM78;mkh{nHO(}Vwmo; z_(=skv5z7r=)hk+n9m}HDMLj0_hTFX|O*hw=Xu|w3ANh!JB4|0wpOIm=SIY_PS)Th>UOH_XF`6qI zK_>GwA$KLNeSdsePoTT2Nj+!s{dRY9_Tj4RvRWGlk^Ppt)6#skCHaCSD{|;j-oIm2j$61ATl^Dr8JP z;^&EldqJ3>TF`bJ4r|a@6u%F)$4BQkV>dM~#$@lOK1&VDY5j3BF*?}F3RWE*NBLlo zX3PYHM1B~lOzf#1tW^IWi|k;3R1OhXGWxTJys}2gV3pRnR%HZ>44DZx3o@+p46&}sYR)4 zww5(+!nGa=C%1X}%wIM`0A%#dW=O+iBqYj;A3xVoYb~Qt73R)y_lAJQ>B!`zL=X&> zOvy|&(H>zc@Q0r%_oN-yCFRE9xZ+Xb6%JoF7>m~j8gUGq?2Td!&m$GeDN3k9NzqaW zJQMC+W>3)TlowaA!V(6QEZpiotveket3jSEGBM^7tCdS*WgIeV{2&{|6_G|oL<*hc zT&A|zJFnm4H#cAYPhUC0pE;9;_hb$Jb_hCFky5%`h$^V15U5o*%t`ulr1cnX&${-6?1u|4(<9Ld=V zn{VF^o5dQ>rqsu86@DZo(r3{`hCy*+@IBeq=*(^7-Q~z_Z9=2`1p;)Hq6nIW8Fze3 z|Cq`{qP5I~oo3vim692=xBN#ju3S+{+|H6&bDXm?Jdm7e7sUAxf-p>lcmVtRvNw<> z4dj%&)(g@&&9W9`CcsfxBYDizO07l>36Xpuu0g!L6f{SEspsx5?YD!lYE3E^xeJMg&gH zN%lnjQLEoi8D#5Lg!|$~QiiqyLiFpnyBFW9INkV_0{Fe{G^E#m6sS50W}pP2fO3+b zDd+x}Dpsh?g~o=|#;qn)>;EVZQ3(IpHAKV^q^|zsbHtF~Z|OthE!_rNrBik4&?I_- zksglXO%}C%h0bD`Mu|E$CaCfEJN0}`J4%`#l9_W3K~vRC2r4X$R>diSH^Yp0l`^GI z_nhuy%PgJ41WRu|U}=)*+o> zK?K!&%tQ)$(w8Lc;f29{F$7CKbq7Q#rFz+J^?B@4q@SvT3`0^hY&(S)o?aBPBL9%R zn@;f~k~?)LoUZWp1EsFXG@w`fF_bL=oY;b_z>A0!PA7migOvv(ws(;8Kaxy67D+2# zGZLa#X2?6`qP^G;p=1?#3rW}f(H1hqB#H0a~=CpOm>`-gq!cj}=kIs^re?+c8C#Av+C&Ic~!CXbmMp{`&_q>NhgTPm1ElRnA$W-?zq6@(sg#!lK zNxmtPFFf|MPpLT%hx$mAQ|!z{OtPF>=2eD1j*q1_ni-6V!Fn#<-y<-IC2V@~qsTha z(XsZsgQWhr`Mf0IVz*0*Hl~nk^w_&YquN~U-4}=NtK#>a%+26u(wFUhfQpX)!MqE?w4_;Lx%lmjiFU+6278evC zb-wF7gqZQ3-k%7aOJsngOCLowd9<(?T6u=L&+r(aI4Wf-`PE|#`NGgCOt(iCEnIkf z!X__ra3AcCEUvgS5n9(cC}I;?A?|&~zmpy$5jf1ZDpxMD>B&^L076%FIFAy%&qfF% zv7@7rAt4)C1ll3V66cJqK-tN8%p|47Bg7DIW(%N~rvBX6L*Iv?&x(Z7npdWBGB3rH z?*K|Gxu_4+5oBJ$2tUmD>cy8!nJ?DrD!^{wru8wM#|dy=)K%iIdCRp+x?#L+K^99Wi3yjN#2z{Ga@b%} zD=layXFM6pRw{AIC@tlWRylU%iCcVLdoxs|3Pa%gANyjmG)WB_32V0zq%|J z1xq5_v(+%}!+8b!xli^sg;^sdfmkY2UWT=1ipmEHw(fNX{fLM}X+@K=lpd9<9&Z|I zWL&ozZtlxUQ$YnP8_fV#!BEH>leEi5JAA)KEPjRUIhB>DXB@U7fMml>T3{;1PXXRA z?Sv3>*J4Rd;rIQ@a9Q}-o~S_=A3LrHV~iegBipnSmGoRkG9PyHG4ee_OM;4Z!y!jw zo4eYm2anGrZTDXQ*+V(@o3Wkmt>#@vw{u(v7dy$zbz3}l?{{j=yKHA3eiWLHZnXae z5c{5IPs+C^H@}lI`SfOV?JwY6tM6&D)YW|GD_W18NBxaDOD@7~$?0EDE|&|mj!%D< zHp;~jon=(ex`RKxzcKXa3~EvJdk{MKS>3J{TyTGG=#lgN`H7X}<_@u74*%aVJlEyX ze=>XGiA!-0GF3@5-w!QTX3~An%qY`-s0=d$!>UkS5l{3qhLILNm}Y z<(Md3o1O{KwgT(|&>+5VjnQ)We1uBl!RaVoIafO2gzc)lwkjPMFo)^wtx%Rw-8$Fo z#A-Kp^c!qN0u}6?TJd-5NUJX!YYQ25_W>u)j6I}qGSjbIaoBbx*9j-7h6Og- zne@}Kt@sPK#`DC7zkrOl*m>;=raxH*??F)VgX2N^je8BZDsgq`efe==hJ#75m|2=0 zb+!)r$bOoVl&ZqFkVQOdZw<_jZ&G9b1>Pd`9Fq$R#_^ffk)7`n6X!CF50QO3ouIaI zEcOdd2Xi)VxsfC2YMHO{w0lM?fuj(W38rHKnt>FVsq+r;Z#Wx6`xug%PRo@hZWUi1 z_IfD`E)3wn(Zwl`w9n+~K+KvPV|q4mqBqco)M?ZT5U0DnI1L#{RXCxvgS63rnv>N< zh<<56LrB>RmB7zRfqZE}^*CfJ2d~Oq(e;cW%6FJ0jl+ok8&XFJe9DEvx8E3DYDq~C z;>6r3{{cq{6cs5y1~f(>)}Yk`hF1A1Y>J2q`f4AYcSQSAcU6}3{M z92>WGtyd=IDyVODol&R^(*o~n&Gw1suY#e*89clK%5>_T{O#MD>8TO#7}8`oHPX42 zA@2S3Rlyn~`(seO_$ba%nm}OY-GVA1Ql8o}OPCh`J6%UZ@OVKbvN=iByN)eDj&cAh zqi9~-CaW55J2AV6<*=*?7lwX~fCLYn{I(rUr}3@nG3I_G;^% zi+HAGzBH-;l7_gj^@)0kmkVIuoeCg(u@CecTl87&mo8qa<{yuxX0SDpl(`MGdr}PS zx8Diw6SW@M+8_gozH?&JQL-dk*;~B+#EwZB0|F+I77COv{vNW95{&Ihb)c`50V(v` zLZ*<00bl_XjDFNkC9Y5PG4&z_S!@E9S~-13?8d&<(Qh-7c6qp$JUvB{IDEg+CnOwj zcyOyzdslTN@o*goZ?=9i{NVN}HghJg1MtAoS+Tf|$$$VgQ@BV$kn&QQhnEpoIBy?$uA1 zk{UL0#ScjEHYyS7DrX#CmGa@zg-RW2gC9N);3X3Q*Rhwvd+QNvSqoSI9vZZoMdr3* zD1#e~-+pTYb*KnlFMx<@FoyDjMe2X3SNV{M>n*}qOGH08-^mZ znEbNzQ!7-)&oN>xCAFWrzt*j3L{7tq)x05)%egE#91>Kl6!H?s&Ufv zJg0QuHy9)e5M3hu?ukv7#KNaDhH~n-Sf~A&`hu;sEs1VkcpC-fQp!ucs?%5I<1Kcd z^-o-kEky6Um=5GaV6X>go6Z??69G27vh?K@hS^M>IW!0jD@#ZzSBT_f`^-NwA>f^< zmK{n=C1g`JW=bu)Y5AA)!T02A3!~bB-i|c3)*{ACCY^JKp_I|41z`ieG&v3->B?B9 zDlYZCMdyt!s2+g~30)jv$?E7|z!7MFE77@C(u+nqv}F|Ja2&$G>Q*+DE{p;GN6*&P z=jX;f&Mmy_Av!KfjTu(Kayrw^U_}odjz}BxNHZ$DdzGEN0pVoiwyr$b_oB;0-Y8$g zky(*M7mIG=TNPSbt}DSEM?)u@R)ly{b<#i+>urOZ_LCQsY;ePe)X3T)ZY%nR+40dcrm>(y&@!go+lway4ZpE()) zy-*7m~2O@M?mN|rhse%rYGr&|{&syS?czu({n*d_ztG^_f!}j!y|!vrUxbCZ`m)KG zn>M21xCL0WGm5?!TxjS{eVyxwJ&>yO7jP}09MK!kqF)9h3zI8H^Q5e6cS$muSLeSe z$4SG&?4kwfOjC6Qs~_{a6PB(LIA?3vJG|OU=zniJ1S66o01ecXDW2D^9+}P}*Nerz zhXauJ_y!d4QkkDYOs z(fG!m{1%rnai!;jI(Z5_kOmjaW|}@0h>;m@g-zs*v}^d`w9A>uZCC9>R{04|jGjTU z(P6kgbL!`!zSh)X4gTTM+-OjV+#{_stbML!J=*I6vqaI#ZS$+O_6#~jXr=cUm@f=p z;{3~-U)E&>ehonnb1;B*tDx(_$1zpoD%`hu()|HyFy)ZDKI*`HC!401K2tB+q;Z0e z3-m$pr_|uvTpm2CNWUweiUJK|Cg-;v`gV|7RelzAxVl zN?S!I2pL#!IKpE{3cUR)HtsDqsTR{+ze*T%Z#9((Kgf=8wX&7%`1-V~)Qesy@jQSS zCh=v(5aX{+Oz$esHg^BJkiza;1CS{DgR zNLmT9FiAP07&l5SiJHv|+QbGL7c%Xr7$-M=>hqh0(<|~Nh1R~! zyM{Ao$AxtIFs>Tt%o^9C?hMFWDNnBkdHh?Uavn+7s z!)XY1k!&=f-C@tSmUQ`OO$eUyl$bYXpy69la;3cX5x+_#c6huul$fNOcwxB8!y#Om zDM32?r)a3onU?dLhHi6I$IP^+OC{}c9a2rKh)8A)QK(qi-Jq{xC&WX$G)HtAxESc zngOJwOIlh&bZ8iQ=#C+Vly0SAC?y7@M5F{H1O*l2|IB{&y`Ou(-{0@^;hMG9b**)t z=W+aw6-<#(qBUcDhw6zHkw!qS@Umd-;{b2hIG)tVc`vu*kLC2l>$wHav!({kj2j7# zCS&Z%(TVb2%Wrs4u3{cPo%?w1TXZg~@^Q5KoN=@}TMT|OU=)n|n!={|wo6A=S1vD% zfv5%KND17+?|IDU`fRWdjh474Nb7)JY(t%piMfF&72-h`I46-NGxM;o+GWpmaZFZraQ65{QIwQ0H3##f=`(l{L+H}>epR0%`)`vX z)@Dxm{9Re#Ql@L5watW>r{0@TB#Ys{K4!p=J7Am?ojklC>d=E+P05 zRWQx0g73?p^b$rV&podB^)icez3HCYtG@g7t8eI-%yL@*0tkNGGI>+Mjqj9Ri6+0B zQ@}M>hRP#`oOpfGKa6u+sc=|{t03NahbcbUq_eA7?P z>L@^}QXh$%53Jd!KMI^qmc$_IP0xXP$9BzlJIxns4V7df%%Ur#tbBd{ghv15**Y5` zm^oAA_8m_s+3)gy6G-+;xm>Jw+T7&YdIrrk+le`w?~)GX&%Vwi6l-yo#d4N?K-3S@ z*C%KvB@kEk{|u1x*x^weQuArxyb4)i{x}xQx2+*P!U@L)=(o{?Ix7%ZRGBAlKOFBW zv9$v9qR$9?&zr%KdhJtvS$7VQn&66Qcq%fSfCbZB5?4&B{~ZEK;b+}Mb3O=B^!J6v zNSV|H{F)n&Y*CWbsUgnW%nIzeaQQI1L(tc}s+6m^PW)1xEBvZeKm*_5*yx;?QAksJ zyNMRIOE8gQ4e@zpx5%_uK<1ON&RFw3^Z1mq^|p3@!Su(zdO9i0RxiQikw6cLRk*(# zaAv~%!*@4I>&n1%@n_^$6q<=DGHB8-&|Nc2G0iwH?oo)yVjG(+Zer|Z36@UU^eq>&V=#AZlIF@Y*ZX~c~nV2B5K_a5{5TwQo$w>(dV+x%=8Z|zk@HCItT2YTzkPr zMxHVLFw-3H%rMaL4(-y6CVd;^SB>Ye{d+$N)7Q?Av@!FgUbT*nHRQFaeAUH-XwtkC zb{XajfPAv|$q=kLUFzAKs%Sp@{?++ivg`BHinSu#R9QY8v-FEh@@S<-5L&Jq&IL^5 zG5F(Qa1-Nk7YH(ptPO_Hlkr|}x+;d7INEZnn;bWTFfYl2O8Oe`3X-eQI@ z^xI~BmBd%{bS)7sYA6=KN02UKG2MEAhP6`F^!-_23T4jz)fjUnW#awy zC-xzSGZ&aZcK2Ulo4}9izTej*!eWP>n)s^y-o9J4O*hn<6#Gl#=7eG!%ts@4kOb&b znyFI&5!s3>r%+Ezi6dVWMrZnEtf;q-C5A zRv$wBh947G}nA;O7?I@7^GI%DXWAJlTIZ@g_1Q6Ybl!v0iN**n4s!gQp zCv5MjCO3Sr5a>%Kjrz=XSL*n*G`T9bSW^TrBo{`%|9jFDrIY%eE^CI)Q!sFvA;wB4 zi%d?+XwshPs%yia=Bo9Q0GdCcRBeR%?(n*pz4;0X67Q8o%vhx$ zOXut}6HQJjPq(%ow0n5D-|Y-fzRyuNP@^TLIm<^&F02)fOMEW0bRG)CYl(q-4l!%IShKvy30!|JHa zjfeX2R+qb|$0>7F%MzKBbSa8Ld@Cf)%)j;Q0!0-DT#V~;zZBMhJNP?TY#Rgi>4ZxW zA!*6B@m@8GpAEnX*89k_*hSooJ&$aaDsUQWwR}?TczJS{EG@G{@12Paq_?hgy6~ET zU&?72_?%Qdv~oHBImC26Af?z^3xrpNZ!~9@Z}uaL;hJg4!Znm_dQ8Pi$54^+gH}{o`iPgIhD>#UR(Y|G&_f-_;7yE` z>zG2(cY`A@5PeWHFms$ctQk;8W0Vl|RK}NxD$k|>$d6$ji2eO=TVglKK4ZyO=0u}; zH`f=N1H6t8ACGZgdXWxMwEsPIYVxjBzED)15{9l172>;Qo92FqAo5mI%#)B+M$%I_ zlQ<%^B{UrX?iA%i9NX2U2VeJBzU-Qe$3({Jn1OFfDHQEqHQ)z^q%@C<5FtDR#=GE_J1B#ulwdzlRD%+ z(ydIOgEwX3M$XL8%DmK;BihnH>%9G3zj5T(>6c_hv#uBO(DP%AZt&({CEjmPfb6=N zYoVKdyY>qD_FlPGJ#!FGpx>X7DoNrrNOZl>Q>BE$SQ!ODTsl_uyL6^n?aIuHk%DLr zUWImudMNKAbnJm*xS#l^s&qr~^QM!HSNOJ!OfM66Eo{k*5!pCeCaSxCkNs!2lgz7i zwNuZ-aKNLe*zAlQ=zrueFXO`bSAgVsaQ7^;3a_t|mv7cXrX;;+)G|z5?!(voPo9z2 z+fIYh-`lPC;ep?9D)EfpT2@jdp<-}FUEV^YN0>iBeW0>y%(H!PofvB?p$YeBLfg2B zZrLH6aJeYfbaBSigjlTgb_8>hY?>sF5MgEwg+M30p@~8~<(>HHhbYME9g}G)8;mi# zeYQUI#Qk}5M23l_IcAILaZhLS7CX+%-s97a)Ij6YE-#3otW=m|^G&4vO}(J!3r`{2 zz#~zKM>?EdH&_y)Rqr4hPXh@ty()%eyvWV`*{700&CjMxHVs$7 z{sd+p`s(YX)reo>gkKrm9m!I_Nli1FLglwe3t_+6D@)P$1g$^uU(KxtnRro0B&1&J zvik4*0GcYIbh-KmIs)fByh?-5#7kYtl_25k)T!EvJ=}}@>E4DS31J<~j%<sGR$aI)9sQL8^;F|j#iis)m}-lG-FvjgzdwF@(W z=p6#l@ATc8Lk6EMLpu(Xc8wJr z*q02PGRL%{->6NkH=@*Qaq7-y;-HEib03No!LaC2SS~| zH~n6pb~2$UCKbS2oZ%6_SCnmHAg!uK1XU&-V%(VWl-;5BH(J~1iVg}dzwt7of5NS@ z@;e3Ng!W|JDt#Hg|5C%odQKO^3 zFJP+k*_tdLeq!piz7K4rboQGdKhrTc@(G&`yD@?WXjlwarfw^DwWxgwwTFWT);^gY*Ejz1j?&%)4dgOgxmDZO^Xd#wh@i5zBFHMB3k=9 zCm-og(ML4soR&gpBcZSMy8im9YA-0%uZ#MCKm9l4-H(o=@#PaL&u#6fWmHxq^FBtd zj>Xb~nJ0tTCV8&yc#T?3Z42{J-xe9A=JDPv&Q`*ap-W9M@g}PnO+Vy%C8m#&ng!Vf zU33rzC16MvnbpCpn}Jl2xlC-8z$%Xj_H$c2=FR7 z_a(9@>&=(2H~KswZM1c0iz?MC9pHXbD1pRV(8gi0#rOdB3Gd81w(pgVJZQosm#I$m z%Xx+VeyKJ6h!pLDDG>j2R=%e&iw)em5VS2+@zmKvFKtRFg!FSZ1TGne|iEdi*%uJXhX#*W~YSwt4A{K#p zH7$Et`fY_ceR8c&(pWD~RzqGaS%3<_hqm2ESsRJ4)1FS&Xl}+^>o>|YW@-?QFkVK} zRxU6keG(9y;zYdiL|aQ(^sx)+?Q(AF!bkcRRZ#b(6Xy)xfVJ-=CMH~H zcJVgB&c#GK$U9{Sb~@(jp`U8AF!houfpT>lp;=jN9OZbtc)O}(Sl(wdM0)ugp&Xh% z$yJo?<#oGBfWlUgKC6^g{VX*{Npn`WMVA)9Td9sj`w7m}^MN-S960F+V3+jjw29gP3BwHMJL;n3W0E;oX|@B(~wsyS>oU@+&({t9`-Xj_-_vmX%R$?1h(`kSvnPM(r-ydBBH80D0;#zd4g(%yb_AHVT2q+USvDHtK z3p-V5FG31D2B_*CO7GC!bAYu`5GTDnr79ML$P(ShQf8-(h!dU=TjUZK!24{kcwC2V zc@7iV#7wnm%R~an{hnk!ba8hS7t=!?lDqzAp+pCQ71+L1!XC9*hT-}gzhifLiBt0| zY_kDJz=^43t;~zxh#J#37yQl`M2NfKXmy%Yy5f_RJWIaGR*pLuQ%l-DVGtc_3VVuS z**?|E9?z0`b#0lw`J8}gW4;@-NLZsnIvzF}GTUmC%MutCJzmh}OhFdY(~GX|w0ZpY z$<5$usajOEoHW>($>Q*xP&Rz*>GE82v~EtOd8|#6fwiBc*YxuSEiXQDWD^AmM{x}4 zglARXbTp5Yv&3l83iVBhGD%F5&8R?qrMa0{zdcM04%o8Eq9odME#8V8Ze)g*s1o4Q z>+r|UzixvxGl@ftD0$CAZZqVk`Jc_fgn(M$Siw)n;iqQveA&oDAY8Q`{zO*Nhg&*z zW-A3~6FmTx@po;{+lAD3{!mjUc}ptaEB9w=Qsp?u9)Z$1RA{nnu^c*{a2#|E`&&dg zNYqVy1zmi&Puh03@UYcBK>oqXcAI^lJzj#v6myxick3bgg>vl<_N$gK+^S zgW8yv1kH%w8L|(<34L@9!<$%24BuWq{r_<>FMb7R65`3d_x`6DmZA%a@D-;!@iXwM zph&h4JZPNz1f+1y59W0qa_?dfm;GFyY~VvwsCxSYzF@#%#4KGc)uqLNJ-wQIXwF9z zE?AlF5#sMR$%w^(0~ynOZ7_#r)^P55J`K!(%FJpDMRJt(u}frhr}#4hOlLbRJ7&LW z5eoo8JeR_{*cEdUXg~oQ1{BN?k*qGI15M$p27{pKNZN0~GJN74x#JKVP?twH?wE(S zg2rbb9$5eTAwDu|p2b`ij>^=?AWBDCRW8P~^lA|ifXR9Rl?l4CFZ6vmU7lK)<~fbA z#|V|u`-+F@5&{$WCqyNbXJ!2_CikQeJ9>iJ3F*)Hl&XoOKG9OtF1(Rn80H&vp*4EQ z8937T5Cx^0M6>va8h%x2e4Lvgd@aPEW&lP(C%y!%Cq@vbHH*iZRQ&o-L!cL35uoI- z{aeDrU|`|NdY&UM?@Xw-MRUy-u3b{mMRAUllPKa{;e6+n=UOMSIW3u~etDWu1XEhA z%@*yirB)ZE*Em}Igd|1^_T4<-@u4yGW)cV%J>q(|va&7+I$**Ymmno=a+r`1=m@Ws zV&ECe@audY{N;oX#{*zy4|3caX&{Muik0aVQ0B$ZHh0akoL?u#BG3z<-zFz#wme7#GZ{=LzGHC zjhQ>ysS)9Tl-B~NKdB4Wnn0)U&@FRvihc2TJAk$-EWcr#CR%ok;i)x+nZ5VxtBt1BQu?kO~1V5JR(-#Gx7m(-@*h+Ws@<-8}d zjTcXtwH5a5;&5+Uvt((uF;pQyd2Uc|Y9vh%WhSfW8E5IyTpCLmEIiCT@hH=aOT1$Y z8gv8TSq*q^=qsDuq?b%-uQ0}0%(1u86=BUw`BpJcZ~#Fgn69gN!8#@EW@3U4%ZAf` z7TYz#UJmKuuK@TDH<6uOnF+bi4@!z=xiZ~1bOv10!yHx?8HRjZuI*dx^HOZu45##6 zhi?QNR}QnuEuQ8}$xN;=qjYp%4J4y8sr6dx(H^CG7!v7T5_2U_0fvqW z6QnsXV(It*2Lk3seq}FX?9$>;9);+EiwUQR(dLTQ_udi~Ee!rY7wN|_3JU3UyELZfpGo3 zj{~Cv@feQn1mrX4uhm4*H=Gtn@pGSfgq?+&VjJ#Vvfo;29R|$wKa}K2;lSLV7fgqB z-YU2hY-zDm>HZ!QM59ZzUb}A%_dTK&rBQxEZz#R9ppZ&m*N^4U{jvmuzOQJ(ytluU(Q!wei;tPENuQ)9-`Qga$PbE!BR|Y46uDx6* znjRZd6ShRcwEP)HyCFdrZv79FOrN6&3t8T?@YOEOQX19icLht5MJQ2xmC-)2BFu2? zlr`I6Dx<01x=}ccQ$FCAB*wP=L%^nnWon8s>%-6=YS_|LKJjOaIrUYLBdU&p#mXK5 z9aVRj{m#seT!)Ih1n%~vD-zJtDOYiwOrcYm~=jtwlGKSd?H?dp?xvY}ey(W7m>cb_ z#2p2z(F9*8r0L$l*{+-gsiDHTb`8gR5+C6{$6+`fSh$KRbAf2ukHpruDdkoQbNv2I zI*!H!I8=4M5Al1w(6(zE^Wav?HS@l# z3%>JNbUHdrUlf(5&gv_A^p@zw<4iAQNnE=s2r0g?3kkh2=2X?KTMpvv&H1F%&X}W8 zF!QKpM6eThe#)nl%@u`T+LJJ6X-KC;ik` zC)hQL_a+V7H`Lz^1XL|mmK&oJBqq}cSUbw5TAK~vO}~=jrioo?y-lZBvbt$(4-oGtG;M)4_i3TuF|!Alwd9*l#f}T1{{x zroib;;-2a;Nz&Q^FcERWR2oy_twaAB<7sMXu&Y<-kMl&N5|dQKD+2nOF(16FtoYh( zEf@Qp`Yrve7B|>d{eWr{UE>xSb>>A$h`ti*B!`;1C7ixSiKm*@y>o7krt%tcE zJ;r09sw63^TYeR46#kzxKQ?OA5`{kTkDT(yS#YQg#799k*aFcjLQ?O3Ckk|VV7(G zK<646%D-@MiG?O$O~OlS$TcJ#1SGg~=1^r(C17Z-?mv;gX>YzasU99*@=7b+dBgj%fG=izQ&>Q;0Kj+7QsH&0Cf60A8>q-kYMy!R zN?sIiu&W4s=I~0Bg}?e;E6k6T&UfV`fNOkUR9a0751~6}eod&Zut5gavrUdAvVwTH zY?b8sRq zR#~Jn+9{Y!F@f@%G5C`=Jcdv@Q`-WHTbv|PsgXpDAV_^8Vhln4?gOpK;`?>NG#(#m z_oFzj=g7lo1fqCZ)3yzDfvnY&>!RRSCnnL<34)3hCQ_JDR5Lvbrvl&Pig*CIK#GZa zH!EV6=haA~Hai(kk&HM^386Rk(p*2jSzVi&!Kp}>B2^;4%?ut7lC^RC!^z${r$eH) zrL(4-Z8`HqPG(|!axBwpI?iTA)y35J8K?OOV6}ilppEF~b>Epf-3J{drn`G85@&gz zBbJ>(Wl?(P%;F2fnm`VZJw6*$sR&Fh(IsOwtibAf-m(@J@Q>WmkdK}^D^!pbt z{_9NvjIdMEcE%;%@h9ZXPESbB12bmHxD#P`Dgo(f#M&D#Fa6m}hH}3Qk&$O zfX#~WJM|LI#Usj7T}q?nf!wQ%3ls};DTpE|y*+{c8(AmagJL+xIay{Km(>;yPMo?C zij|{=wS7UekKT#gRUj}As74joF&TVmyMODDrA}IO&REwyrzQ`G6A{i)^KVK007uAf z1oOUwKdZ`d*nCt3Ov)^HM@oq(CV=V+4z62Mn`XYDVg~G|)A%&uYXOa5dVb)UkUJoi zLQEHGi1LS#$DShD-G(Qp9 zJ8Ubw^G>U>THnB(5OnYCDRGxLFhAYX>cNk?JllB5TsFaUe_}vdTB4q>G>HeH#H{^K zdT);>J_&E<=icFybN+tbNGLUMXY(zPh`iZNFLkC6CIpZ$O!6fZx>|VVlg;Ik)quQ3 zb*W1_P0?Rw47Ev~kbL=)ApFw=-FuW7_u|rG$mm?w&(#lICWy|cDBqRi1T4fAQ zPL)jVuDRbbYwyXHnZ&8jUgkSyvV_smZE^+e!$9f6$8^5X#_l!heivOz3Lw$P*gDaj zmo)ly56$CZ$kWBv7;cgU6VfPhKiV=#J*u!-(?waEI16Ol!`##^PZ|X7ztMQ9L(-*7 zL>ffS%SQP}_1;psE?XFXX^PaVNu8o~c$gmfoat1gbS~#2!i8E`ylsN%2RtxbUT|

4v~ZdutZQKfcrY`{&@2`=~q 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† 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 GF8&|mP3+zP literal 0 HcmV?d00001 diff --git a/docs/screenshots/signal-score/05-detail-spam.jpg b/docs/screenshots/signal-score/05-detail-spam.jpg new file mode 100644 index 0000000000000000000000000000000000000000..88231d38a32ce3fc3b7065a449fcf0b62a29c210 GIT binary patch literal 163231 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кPvNQ~BZzlVST)4>$xoWb;sF(!9^3IdCj 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 Date: Mon, 23 Feb 2026 18:28:37 -0600 Subject: [PATCH 11/25] feat(signal-score): live scoring pipeline and UI - SignalScorer service: Anthropic Messages API with Trust Equation - ScoreGrantJob: async SuckerPunch job, fires on project create - Score badge: color-coded score, category, tags, reasoning - Trust Equation breakdown: expandable feature grid - Filter controls: sort by score, min score threshold dropdown - SCSS: uses existing app design tokens Refs: #590, #591 --- app/assets/stylesheets/_signal-score.scss | 107 ++++++++ app/assets/stylesheets/application.css.scss | 1 + app/extras/project_filter.rb | 12 + app/extras/signal_scorer.rb | 234 ++++++++++++++++-- app/jobs/score_grant_job.rb | 42 ++++ app/models/project.rb | 5 + app/views/projects/_project_details.html.erb | 5 + .../projects/_signal_score_badge.html.erb | 59 +++++ app/views/projects/index.html.erb | 18 ++ 9 files changed, 456 insertions(+), 27 deletions(-) create mode 100644 app/assets/stylesheets/_signal-score.scss create mode 100644 app/jobs/score_grant_job.rb create mode 100644 app/views/projects/_signal_score_badge.html.erb diff --git a/app/assets/stylesheets/_signal-score.scss b/app/assets/stylesheets/_signal-score.scss new file mode 100644 index 00000000..863c256c --- /dev/null +++ b/app/assets/stylesheets/_signal-score.scss @@ -0,0 +1,107 @@ +// Signal Score badge — AI-assisted grant pre-screening +// Matches existing awesomebits design language + +.signal-score { + margin: 0; + padding: 8px 10px; + border-left: 4px solid rgb(200,200,200); + font: normal 12px/16px $sans-serif; + + &--strong { border-left-color: #2ecc71; } + &--solid { border-left-color: #f39c12; } + &--borderline { border-left-color: #e67e22; } + &--weak { border-left-color: #e74c3c; } + + &__header { + display: flex; + align-items: baseline; + flex-wrap: wrap; + gap: 6px; + } + + &__value { + font: bold 16px/18px $sans-serif; + + .signal-score--strong & { color: #2ecc71; } + .signal-score--solid & { color: #f39c12; } + .signal-score--borderline & { color: #e67e22; } + .signal-score--weak & { color: #e74c3c; } + } + + &__label { + font: 500 13px/18px $sans-serif; + color: $base-font-color; + } + + &__category { + background: rgb(230,230,230); + border: 1px solid rgb(200,200,200); + border-radius: 3px; + padding: 1px 6px; + font: normal 11px/14px $sans-serif; + color: rgb(100,100,100); + } + + &__tag { + background: #e8f0f8; + border: 1px solid #c8d8e8; + border-radius: 3px; + padding: 1px 5px; + font: normal 10px/13px $sans-serif; + color: #4a7aaa; + } + + &__reason { + margin: 4px 0 0 0; + padding: 0; + font: italic 12px/16px $serif; + color: rgb(120,120,120); + } + + &__details { + margin-top: 4px; + + summary { + cursor: pointer; + font: normal 11px/14px $sans-serif; + color: rgb(160,160,160); + + &:hover { color: $pink; } + } + } + + &__features { + margin-top: 4px; + display: grid; + grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); + gap: 3px; + } + + &__feat { + display: flex; + justify-content: space-between; + padding: 2px 4px; + background: rgb(248,248,248); + border-radius: 2px; + } + + &__feat-name { + font: normal 11px/14px $sans-serif; + color: rgb(120,120,120); + text-transform: capitalize; + } + + &__feat-val { + font: 500 11px/14px $sans-serif; + } + + &__feat--good { color: #2ecc71; } + &__feat--bad { color: #e67e22; } + + &__ai-warning { + margin: 4px 0 0 0; + padding: 0; + font: normal 11px/14px $sans-serif; + color: #e74c3c; + } +} diff --git a/app/assets/stylesheets/application.css.scss b/app/assets/stylesheets/application.css.scss index 042988d8..3b33980a 100644 --- a/app/assets/stylesheets/application.css.scss +++ b/app/assets/stylesheets/application.css.scss @@ -37,5 +37,6 @@ @import 'pagination'; @import 'magnific-popup'; +@import 'signal-score'; @import 'owl.carousel.min'; @import 'owl.theme.default.min'; diff --git a/app/extras/project_filter.rb b/app/extras/project_filter.rb index 31aee442..a5eba4a9 100644 --- a/app/extras/project_filter.rb +++ b/app/extras/project_filter.rb @@ -29,6 +29,18 @@ def funded self end + def signal_score_above(threshold) + @projects = @projects.where("(metadata->'signal_score'->>'composite_score')::float >= ?", threshold) + self + end + + def sort_by_signal_score(direction = :desc) + @projects = @projects.reorder( + Arel.sql("COALESCE((metadata->'signal_score'->>'composite_score')::float, -1) #{direction == :asc ? 'ASC' : 'DESC'}") + ) + self + end + def not_pending_moderation @projects = @projects.left_joins(:project_moderation).where(project_moderations: {id: nil}).or(@projects.merge(ProjectModeration.approved)) self diff --git a/app/extras/signal_scorer.rb b/app/extras/signal_scorer.rb index b51be182..f86dd53e 100644 --- a/app/extras/signal_scorer.rb +++ b/app/extras/signal_scorer.rb @@ -1,5 +1,9 @@ # frozen_string_literal: true +require "net/http" +require "json" +require "uri" + # SignalScorer — AI-assisted grant application pre-screening. # # Two-layer pipeline: @@ -8,29 +12,55 @@ # # Usage: # scorer = SignalScorer.new(project) -# scorer.pre_score! # deterministic features only -# scorer.score! # full LLM scoring (requires API key) -# scorer.categorize! # taxonomy classification -# scorer.composite_score # 0.0-1.0 -# scorer.categories # { "public-art" => 0.8, ... } -# scorer.tags # ["mentorship", "emerging-artists"] +# result = scorer.score! # full pipeline: pre-score + LLM +# scorer.composite_score # 0.0-1.0 +# scorer.reason # one-sentence explanation +# scorer.primary_category # "public-art" +# scorer.tags # ["mentorship", "emerging-artists"] # -# Config resolution: -# SignalScoreConfig.resolve(project.chapter) -> merged JSONB config +# The result is persisted to project.metadata["signal_score"]. # class SignalScorer - attr_reader :project, :pre_score_features, :score_result, :category_result + ANTHROPIC_API_URL = "https://api.anthropic.com/v1/messages" + DEFAULT_MODEL = "claude-haiku-4-5-20251001" + MAX_TOKENS = 1024 + + attr_reader :project, :score_result + + class ScoringError < StandardError; end - def initialize(project) + def initialize(project, api_key: nil) @project = project - @config = SignalScoreConfig.resolve(project.chapter) + @api_key = api_key || ENV["ANTHROPIC_API_KEY"] + @config = SignalScoreConfig.resolve(project.chapter) rescue {} end - def pre_score! - # Deterministic features — always available, zero cost - scorer = build_pre_scorer - scorer.analyze! - @pre_score_features = scorer.features + # Full scoring pipeline: LLM score + persist to metadata. + def score! + raise ScoringError, "No Anthropic API key configured" unless @api_key.present? + + # Build the prompt + application_text = format_application + system_prompt = build_system_prompt + + # Call Anthropic Messages API with tool_use for structured output + response = call_anthropic( + system: system_prompt, + messages: [{ "role" => "user", "content" => "Score this grant application:\n\n#{application_text}" }], + tools: [score_tool], + tool_choice: { "type" => "tool", "name" => "score_application" } + ) + + # Extract tool result + tool_block = response.dig("content")&.find { |c| c["type"] == "tool_use" } + raise ScoringError, "No tool_use block in response" unless tool_block + + @score_result = tool_block["input"] + + # Persist to metadata + persist_score! + + @score_result end def composite_score @@ -50,26 +80,176 @@ def features end def primary_category - category_result&.dig("primary_category") + (project.metadata.dig("signal_score", "primary_category") rescue nil) || + score_result&.dig("primary_category") end - def categories - category_result&.dig("categories") || {} + def tags + (project.metadata.dig("signal_score", "tags") rescue nil) || + score_result&.dig("tags") || [] end - def tags - category_result&.dig("tags") || [] + # Score color for UI badge + def score_color + s = composite_score + return "gray" unless s + case s + when 0.7..1.0 then "green" + when 0.5...0.7 then "yellow" + when 0.3...0.5 then "orange" + else "red" + end + end + + # Human-readable score label + def score_label + s = composite_score + return "Unscored" unless s + case s + when 0.7..1.0 then "Strong" + when 0.5...0.7 then "Solid" + when 0.3...0.5 then "Borderline" + when 0.1...0.3 then "Weak" + else "Low Signal" + end end private - def build_pre_scorer - # Convert ActiveRecord to hash for PreScorer compatibility - attrs = if project.respond_to?(:attributes) - project.attributes + def format_application + parts = [] + parts << "Title: #{project.title}" if project.title.present? + parts << "About Me: #{project.about_me}" if project.about_me.present? + parts << "About Project: #{project.about_project}" if project.about_project.present? + parts << "Use for Money: #{project.use_for_money}" if project.use_for_money.present? + parts << "URL: #{project.url}" if project.url.present? + + # Include extra answers if present + (1..3).each do |i| + q = project.send("extra_question_#{i}") rescue nil + a = project.send("extra_answer_#{i}") rescue nil + if q.present? && a.present? + parts << "#{q}: #{a}" + end + end + + parts.join("\n\n") + end + + def build_system_prompt + # Use PromptBuilder if available (scripts), otherwise inline + if defined?(PromptBuilder) + builder = PromptBuilder.new(chapter: project.chapter&.name) + builder.system_prompt + else + default_system_prompt + end + end + + def score_tool + if defined?(PromptBuilder) + PromptBuilder::SCORE_TOOL else - project + { + "name" => "score_application", + "description" => "Score a grant application and extract structured features", + "input_schema" => { + "type" => "object", + "required" => %w[composite_score reason flags features], + "properties" => { + "composite_score" => { "type" => "number", "description" => "Overall score 0.0-1.0" }, + "reason" => { "type" => "string", "description" => "One-sentence explanation" }, + "flags" => { "type" => "array", "items" => { "type" => "string" } }, + "features" => { + "type" => "object", + "required" => %w[credibility reliability intimacy self_interest specificity creativity budget_alignment catalytic_potential community_benefit personal_voice ai_spam_likelihood ai_writing_likelihood], + "properties" => %w[credibility reliability intimacy self_interest specificity creativity budget_alignment catalytic_potential community_benefit personal_voice ai_spam_likelihood ai_writing_likelihood].each_with_object({}) { |k, h| h[k] = { "type" => "number" } }, + }, + }, + }, + } end - PreScorer.new(attrs) + end + + def call_anthropic(system:, messages:, tools:, tool_choice:) + uri = URI(ANTHROPIC_API_URL) + http = Net::HTTP.new(uri.host, uri.port) + http.use_ssl = true + http.read_timeout = 30 + + model = @config.dig("scoring_config", "model") || DEFAULT_MODEL + + body = { + "model" => model, + "max_tokens" => MAX_TOKENS, + "system" => system, + "messages" => messages, + "tools" => tools, + "tool_choice" => tool_choice, + } + + request = Net::HTTP::Post.new(uri.path) + request["Content-Type"] = "application/json" + request["x-api-key"] = @api_key + request["anthropic-version"] = "2023-06-01" + request.body = body.to_json + + response = http.request(request) + + unless response.code.to_i == 200 + raise ScoringError, "Anthropic API error #{response.code}: #{response.body[0..200]}" + end + + JSON.parse(response.body) + end + + def persist_score! + return unless @score_result + + metadata = project.metadata || {} + metadata["signal_score"] = @score_result.merge( + "scored_at" => Time.current.iso8601, + "model" => @config.dig("scoring_config", "model") || DEFAULT_MODEL, + "variant" => "live" + ) + project.update_column(:metadata, metadata) + end + + def default_system_prompt + <<~PROMPT + You are an expert grant application screener for the Awesome Foundation. + + The Awesome Foundation is a global network of volunteer "micro-trustees" who each chip in to award $1,000 grants for awesome projects. No strings attached — the money goes to creative, community-benefiting, unique ideas. + + Score each application using the score_application tool. Extract structured features to help trustees prioritize their review. + + ## Scoring Rubric (composite_score: 0.0 to 1.0) + - 0.0-0.1: Clear spam, gibberish, test submissions + - 0.1-0.3: Real but very weak — business pitches, personal fundraising, vague ideas + - 0.3-0.5: Borderline — decent concept but missing details, unclear community benefit + - 0.5-0.7: Solid — clear project, community benefit, actionable plan + - 0.7-0.9: Strong — creative, specific, well-articulated, exactly what AF funds + - 0.9-1.0: Exceptional — innovative, clearly impactful, inspiring + + ## Feature Dimensions (Trust Equation: T = (C + R + I) / (1 + S)) + Numerator (higher = better): + - credibility: Clear budget, realistic plan, relevant expertise (0-1) + - reliability: Track record, prior work, organizational backing (0-1) + - intimacy: Connection to community, local ties, authentic voice (0-1) + Denominator (higher = worse): + - self_interest: Money primarily benefits applicant? (0-1) + Additional: + - specificity, creativity, budget_alignment, catalytic_potential, community_benefit, personal_voice (all 0-1) + - ai_spam_likelihood: Mass-generated? (0-1) + - ai_writing_likelihood: AI writing patterns? INFORMATIONAL ONLY (0-1) + + ## Flags: spam, ai_spam, duplicate, incomplete, wrong_location, business_pitch, personal_fundraising, low_effort + + ## Key Principles + - AF values creativity, community impact, and fun + - $1,000 is small — projects should be scoped appropriately + - "Too weird for traditional funders" = MORE awesome, not less + - ~28% of applications are typically review-worthy + PROMPT end end diff --git a/app/jobs/score_grant_job.rb b/app/jobs/score_grant_job.rb new file mode 100644 index 00000000..b5dc0f26 --- /dev/null +++ b/app/jobs/score_grant_job.rb @@ -0,0 +1,42 @@ +# frozen_string_literal: true + +require "sucker_punch" + +# Scores a grant application asynchronously via the Signal Score pipeline. +# +# Enqueued after a new project is created. Uses the Anthropic Messages API +# to generate structured scores with the Trust Equation rubric. +# +# Usage: +# ScoreGrantJob.perform_async(project_id) +# ScoreGrantJob.new.perform(project_id) # synchronous, for testing +# +class ScoreGrantJob + include SuckerPunch::Job + + def perform(project_id) + ActiveRecord::Base.connection_pool.with_connection do + project = Project.find_by(id: project_id) + return unless project + + # Skip if already scored + return if project.metadata&.dig("signal_score", "composite_score").present? + + # Skip if scoring is disabled for this chapter + config = SignalScoreConfig.resolve(project.chapter) rescue {} + return unless config["enabled"] + + scorer = SignalScorer.new(project) + scorer.score! + + Rails.logger.info( + "[SignalScore] Project ##{project_id} scored: " \ + "#{scorer.composite_score} (#{scorer.score_label})" + ) + rescue SignalScorer::ScoringError => e + Rails.logger.error("[SignalScore] Failed to score project ##{project_id}: #{e.message}") + rescue => e + Rails.logger.error("[SignalScore] Unexpected error scoring project ##{project_id}: #{e.message}") + end + end +end diff --git a/app/models/project.rb b/app/models/project.rb index 1704e14d..a8298344 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -36,6 +36,7 @@ class Project < ApplicationRecord before_save :delete_photos after_create :analyze_for_spam + after_create :enqueue_signal_score # For dependency injection cattr_accessor :mailer @@ -272,6 +273,10 @@ def analyze_for_spam end end + def enqueue_signal_score + ScoreGrantJob.perform_async(id) if ENV["ANTHROPIC_API_KEY"].present? + end + # before save def ensure_funded_description if winner? diff --git a/app/views/projects/_project_details.html.erb b/app/views/projects/_project_details.html.erb index 3e226dd8..796e3e9e 100644 --- a/app/views/projects/_project_details.html.erb +++ b/app/views/projects/_project_details.html.erb @@ -26,6 +26,11 @@ + <% signal_score = project.metadata&.dig("signal_score") %> + <% if signal_score && signal_score["composite_score"] %> + <%= render "projects/signal_score_badge", signal_score: signal_score %> + <% end %> +