| + | + | + | + | + | + | + | ||
|---|---|---|---|---|---|---|---|---|
| + | 税源地 | 审核状态 | 审核时间 | 司机姓名 | 身份证号 | 身份证有效期 | 手机号 | 操作 | +
| + | + | + | + | + | + | + | + | + | |
|---|---|---|---|---|---|---|---|---|---|
| + | 税源地 | 审核状态 | 审核时间 | 车牌号 | 车辆所有人 | 车辆分类 | 车牌颜色 | 车辆能源类型 | 操作 | +
| + | + | + | + | + | |||
|---|---|---|---|---|---|---|---|
| + | 收款人姓名 | 身份证号 | 收款银行卡号 | 收款银行 | 收款手机号 | 收款人类型 | 第三方ID / 操作 | +
From 5e4e978cd590efe17792ff9f612262a0a5f4c151 Mon Sep 17 00:00:00 2001 From: xst <2318492244@qq.com> Date: Tue, 29 Sep 2026 10:03:43 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E5=85=A5=E5=BA=93=209=20=E6=9C=88?= =?UTF-8?q?=E7=A7=AF=E5=8E=8B=E6=88=90=E6=9E=9C=EF=BC=88=E6=BB=87=E4=B8=AD?= =?UTF-8?q?=E5=A5=BD=E8=BF=90=E5=8E=9F=E5=9E=8B=E8=AF=84=E4=BC=B0=E3=80=81?= =?UTF-8?q?=E5=B0=8F=E8=B1=A1=E5=BC=80=E7=A5=A8=E9=9C=80=E6=B1=82=E4=B8=8E?= =?UTF-8?q?=E5=8E=9F=E5=9E=8B=E3=80=81=E5=B7=A5=E5=85=B7=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 原型评估_滇中好运物流云_20260917/:物流云原型评估产物(含核对表与字段对比表) - requirements/小象开票收款方创建需求.md + prototypes/小象开票原型.html:小象开票建司机/车辆/收款信息需求 - requirements.txt:Execute 战区依赖调整(移除 pytest/allure-pytest/requests,改用 pytest-html,Appium 默认注释) - .claude/launch.json:新增物流公司管理原型预览服务(wuliu-proto:8138) - .agents/skills:agent 技能定义 --- .agents/skills/case_generate/SKILL.md | 7 + .agents/skills/qe_fleet/SKILL.md | 221 ++++++ .claude/launch.json | 12 +- requirements.txt | 9 +- requirements/prototypes/小象开票原型.html | 628 ++++++++++++++++++ requirements/小象开票收款方创建需求.md | 272 ++++++++ .../01_原型盘点.md | 76 +++ .../02_网络货运合规对照.md | 51 ++ .../03_与运八契合度对比.md | 53 ++ .../04_司机车辆字段核对.md | 590 ++++++++++++++++ 原型评估_滇中好运物流云_20260917/05_核对表.md | 525 +++++++++++++++ .../05_核对表_字段名对比_v2.xlsx | Bin 0 -> 41718 bytes .../06_原型不存在字段清单.xlsx | Bin 0 -> 18154 bytes 原型评估_滇中好运物流云_20260917/README.md | 28 + 14 files changed, 2463 insertions(+), 9 deletions(-) create mode 100644 .agents/skills/case_generate/SKILL.md create mode 100644 .agents/skills/qe_fleet/SKILL.md create mode 100644 requirements/prototypes/小象开票原型.html create mode 100644 requirements/小象开票收款方创建需求.md create mode 100644 原型评估_滇中好运物流云_20260917/01_原型盘点.md create mode 100644 原型评估_滇中好运物流云_20260917/02_网络货运合规对照.md create mode 100644 原型评估_滇中好运物流云_20260917/03_与运八契合度对比.md create mode 100644 原型评估_滇中好运物流云_20260917/04_司机车辆字段核对.md create mode 100644 原型评估_滇中好运物流云_20260917/05_核对表.md create mode 100644 原型评估_滇中好运物流云_20260917/05_核对表_字段名对比_v2.xlsx create mode 100644 原型评估_滇中好运物流云_20260917/06_原型不存在字段清单.xlsx create mode 100644 原型评估_滇中好运物流云_20260917/README.md diff --git a/.agents/skills/case_generate/SKILL.md b/.agents/skills/case_generate/SKILL.md new file mode 100644 index 0000000..dd1605c --- /dev/null +++ b/.agents/skills/case_generate/SKILL.md @@ -0,0 +1,7 @@ +# case_generate (向后兼容别名) + +本 skill 是 `/qe-fleet run` 的向后兼容别名,行为完全一致。 + +调用 `python3 scripts/fleet_runner.py run --requirement <需求文档路径>`,按战区顺序执行完整流水线,产出至 `output/manifests/{BASE_NAME}.json`。 + +详情请参见 `.Codex/skills/qe_fleet/SKILL.md`。 diff --git a/.agents/skills/qe_fleet/SKILL.md b/.agents/skills/qe_fleet/SKILL.md new file mode 100644 index 0000000..6554369 --- /dev/null +++ b/.agents/skills/qe_fleet/SKILL.md @@ -0,0 +1,221 @@ +--- +name: qe-fleet +description: Agentic QE Fleet — 混合流水线:Python 脚手架 + AI Agent 内容生成 +metadata: + short-description: 多 Agent QE Fleet:从需求到测试用例的全流程自动化 + 质量门禁 + 知识沉淀 +--- + +# Agentic QE Fleet(混合流水线 v3.0) + +当用户输入以下任一意图时使用本 skill: + +- `/qe-fleet run <需求文档>` +- `/qe-fleet prepare <需求文档>` +- `/qe-fleet analyze <需求文档>` +- `/qe-fleet design <需求文档>` +- `/qe-fleet review <需求文档>` +- `/qe-fleet export <需求文档>` +- `/qe-fleet monitor <需求文档> --results <测试结果>` +- `/qe-fleet status <需求文档>` +- `/case_generate <需求文档>`(向后兼容别名) + +## 架构概述 + +本流水线采用**混合架构**: + +- **Python 脚本(fleet_runner.py)**: 处理确定性工作——文档解析、知识激活、需求分析、冲突检测、风险矩阵、测试策略模板、测试数据模板、Playwright/Appium 脚本骨架、清单管理 +- **Codex Agent(本 Skill)**: 处理生成式 AI 工作——测试点设计、测试用例编写、用例评审、覆盖率审计、质量裁决 + +## `/qe-fleet run` — 全流程自动执行 + +收到此命令后,按以下 6 个阶段自动执行,不要停在说明阶段: + +### Phase 1: SCAFFOLD(脚手架生成) + +```bash +python scripts/fleet_runner.py run --scaffold-only --requirement <需求文档路径> +``` + +产出: +- 标准化需求文档(含附加文件检测 + 多源注册表) +- 知识激活 + 缺口检测 +- 需求分析 + 冲突检测 + 风险矩阵 +- 测试策略模板 + 测试数据模板 +- Playwright/Appium 脚本骨架 +- 所有战区 manifest(含 `pending_ai` 标记) + +### Phase 2: GATE-CHECK(门禁检查) + +读取 `output/manifests/{BASE_NAME}_analyze.json`: +- 若 `confirmation_gate.required=true` 且 `decision_status` 不是 `confirmed` 或 `not_required`: + - 🛑 阻断并告知用户:确认单路径、阻断原因 + - 不得继续执行后续阶段 +- 若门禁通过或无门禁要求,继续 Phase 3 + +### Phase 3: AI-DESIGN(AI 生成设计产物) + +按依赖顺序调用 AI Agent 填充设计产物。**重要**:若目标文件已存在且内容非空(>500 字符),跳过该 Agent 并告知用户可手动重新生成。 + +#### 3a: data-builder + testpoint-designer(可并行) + +**Agent: data-builder** +- 输入文件:`output/analysis/{BASE_NAME}_分析.md`、`{PROJECT_PROFILE}`、来自 prepare manifest 的 `sources_registry` 中所有 `role=api_spec` 的附加文件 +- Agent prompt:`agents/design/data_builder.md` +- 输出:`output/analysis/{BASE_NAME}_测试数据.md`(覆盖模板) +- 验证:文件存在且 >300 字符 +- 调用方式:使用 Agent 工具,subagent_type=general-purpose,在 prompt 中指明输入文件和输出文件 + +**Agent: testpoint-designer** +- 输入文件:`output/analysis/{BASE_NAME}_分析.md`、`output/analysis/{BASE_NAME}_风险评估.md`、`output/analysis/{BASE_NAME}_测试策略.md`、`output/analysis/{BASE_NAME}_关联与冲突.md`、`{PROJECT_PROFILE}`、`knowledge_base/02_history/common_missed_scenes.md`、`knowledge_base/02_history/historical_defects.md`、`knowledge_base/01_standards/definition_of_done.md`、prepare manifest 中 `sources_registry` 的所有附加文件 +- Agent prompt:`agents/design/testpoint_designer.md` +- 输出:`output/test_points/{BASE_NAME}_测试点.md` +- 验证:文件存在且 >500 字符,含有 `TP-` 标识符 +- 调用方式:使用 Agent 工具,subagent_type=general-purpose + +#### 3b: case-designer(依赖 3a 完成) + +- 输入文件:`output/test_points/{BASE_NAME}_测试点.md`(3a 产出)、`output/analysis/{BASE_NAME}_测试数据.md`、`knowledge_base/01_standards/test_case_template.md`、`knowledge_base/01_standards/review_checklist.md`、`knowledge_base/03_best_practices/` +- Agent prompt:`agents/design/case_designer.md` +- 输出:`output/test_cases/{BASE_NAME}_测试用例.md` +- 验证:文件存在且 >500 字符,含 Markdown 表格,表头与 `test_case_template.md` 一致 +- 调用方式:使用 Agent 工具 + +### Phase 4: AI-REVIEW(AI 评审) + +#### 4a: case-reviewer + coverage-auditor(可并行) + +**Agent: case-reviewer** +- 输入文件:`output/test_cases/{BASE_NAME}_测试用例.md`、`knowledge_base/01_standards/review_checklist.md`、`knowledge_base/01_standards/test_case_template.md`、`knowledge_base/01_standards/definition_of_done.md`、`output/analysis/{BASE_NAME}_风险评估.md` +- Agent prompt:`agents/review/case_reviewer.md` +- 输出:`output/analysis/{BASE_NAME}_评审报告.md` +- 验证:文件存在且 >500 字符,含阻断项/建议项计数 + +**Agent: coverage-auditor** +- 输入文件:`output/analysis/{BASE_NAME}_分析.md`、`output/test_points/{BASE_NAME}_测试点.md`、`output/test_cases/{BASE_NAME}_测试用例.md`、`output/analysis/{BASE_NAME}_风险评估.md` +- Agent prompt:`agents/review/coverage_auditor.md` +- 输出:`output/analysis/{BASE_NAME}_覆盖率审计.md` +- 验证:文件存在且 >500 字符 + +#### 4b: quality-gatekeeper(依赖 4a 完成) + +- 输入文件:`output/analysis/{BASE_NAME}_评审报告.md`、`output/analysis/{BASE_NAME}_覆盖率审计.md`、`output/analysis/{BASE_NAME}_风险评估.md`、`fleet_config.yml` +- Agent prompt:`agents/review/quality_gatekeeper.md` +- 输出:`output/analysis/{BASE_NAME}_质量裁决.md` +- 验证:文件含 `PASS`、`PASS_WITH_FIX` 或 `BLOCKED` + +### Phase 5: VERDICT(裁决 + 导出) + +读取 `output/analysis/{BASE_NAME}_质量裁决.md` 中的裁决结果: + +- **PASS** 或 **PASS_WITH_FIX**: 执行导出 + ```bash + python scripts/fleet_runner.py export --requirement <需求文档路径> + ``` + (若已有 review 战区的阻断项或覆盖缺口,在导出前先修复用例文件,参考 Phase 4 的评审报告) +- **BLOCKED**: 🛑 告知用户阻断原因,提供修复方向,不导出 Excel + +### Phase 6: REPORT(汇总反馈) + +输出最终状态汇总: + +``` +🏁 QE Fleet 运行完成 + ✅ prepare: 完成 (置信度 0.95, 附加文件 N 个) + ✅ analyze: 完成 (风险 P0=N, P1=N) + ✅ design: 完成 (测试点 N, 用例 N) + ✅ execute: 完成 (Playwright + Appium 脚本) + ✅ review: 完成 (裁决: PASS/PASS_WITH_FIX/BLOCKED) + ✅ export: 完成/N/A + +产物: + 📊 Excel: output/excel_reports/{BASE_NAME}_测试用例.xlsx + 🧠 XMind: output/xmind_reports/{BASE_NAME}.xmind + 📋 测试点: output/test_points/{BASE_NAME}_测试点.md (N个) + 📝 测试用例: output/test_cases/{BASE_NAME}_测试用例.md (N条) + ✅ 质量裁决: output/analysis/{BASE_NAME}_质量裁决.md +``` + +--- + +## 其他命令 + +### `/qe-fleet prepare <需求文档>` +```bash +python scripts/fleet_runner.py prepare --requirement <需求文档路径> +``` + +### `/qe-fleet analyze <需求文档>` +```bash +python scripts/fleet_runner.py analyze --requirement <需求文档路径> +``` + +### `/qe-fleet design <需求文档>` +仅执行 Phase 3(AI-DESIGN),前提是 prepare 和 analyze 已完成。 +若 manifest 未就绪,先执行对应的脚手架命令。 + +### `/qe-fleet review <需求文档>` +仅执行 Phase 4(AI-REVIEW),前提是设计产物已存在。 + +### `/qe-fleet export <需求文档>` +```bash +python scripts/fleet_runner.py export --requirement <需求文档路径> +``` + +### `/qe-fleet monitor <需求文档> --results <测试结果>` +```bash +python scripts/fleet_runner.py monitor --requirement <需求文档路径> --results <测试结果文件> +``` + +### `/qe-fleet status <需求文档>` +```bash +python scripts/fleet_runner.py status --requirement <需求文档路径> +``` + +--- + +## AI Agent 调用模板 + +每次调用 AI Agent 时,使用以下模板构造 prompt: + +``` +你是 {agent_name}。{从 agent prompt 文件读取的 role 描述}。 + +# 任务 +{从 agent prompt 文件读取的 task 描述} + +# 关键输入文件(必须读取) +{列出所有输入文件路径} + +# 输出文件 +写入: {output_file_path} + +# 输出格式 +{从 agent prompt 文件读取的 output format} + +# 约束 +{从 agent prompt 文件读取的 constraints} + +# 附加上下文 +- 项目画像: {PROJECT_PROFILE} +- 附加源文件(如有,来自 prepare manifest sources_registry) +``` + +--- + +## 约束 + +- 除非脚本执行失败,不要要求用户手动执行中间命令 +- 确认门禁未解除时,必须阻断并告知原因和解决路径 +- 质量裁决 BLOCKED 时,不得导出 Excel +- 若主输入是 .docx/.doc/.pdf,必须基于 prepare 产出的标准化 Markdown +- 若 manifest 中有附加源文件(`sources_registry`),必须纳入 AI Agent 的输入文件列表 +- 需求有歧义时必须显式标注 `> ⚠️ 待确认:问题、影响范围、建议确认方向` +- 基于项目画像差异化,避免通用化输出 +- 历史缺陷和易漏场景必须显式体现在测试点或用例中 +- 预期结果必须同时覆盖 UI 反馈和数据状态变化 +- 所有 bash 命令使用 `python`(非 `python3`) +- 若改动涉及 scripts/、.Codex/、agents/、AGENTS.md、README.md,必须执行 `python scripts/governance_audit.py auto` + +## 兼容性 + +`/case_generate` 保留为 `/qe-fleet run` 的别名,行为完全一致。 diff --git a/.claude/launch.json b/.claude/launch.json index f84cd88..8828cc8 100644 --- a/.claude/launch.json +++ b/.claude/launch.json @@ -2,10 +2,16 @@ "version": "0.0.1", "configurations": [ { - "name": "prototypes", + "name": "proto-mirror", "runtimeExecutable": "python", - "runtimeArgs": ["-m", "http.server", "8791", "--directory", "resources/prototypes"], - "port": 8791 + "runtimeArgs": ["-m", "http.server", "8137", "--directory", "C:/Users/23184/AppData/Local/Temp/proto_mirror"], + "port": 8137 + }, + { + "name": "wuliu-proto", + "runtimeExecutable": "python", + "runtimeArgs": ["-m", "http.server", "8138", "--directory", "requirements/prototypes"], + "port": 8138 } ] } diff --git a/requirements.txt b/requirements.txt index 20ce8ba..a326921 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,12 +1,9 @@ openpyxl>=3.1,<4 python-docx>=0.8.11,<2 pyantiword -# ── Execute 战区 / 测试框架依赖 ── -pytest>=8.0 +# ── Execute 战区依赖 ── playwright>=1.40 Pillow>=10.0 # 截图像素对比 (result-reporter Agent) -Appium-Python-Client>=3.0 # 移动端自动化(仅 Web 端测试可不装) +# Appium-Python-Client>=3.0 # 取消注释以启用移动端自动化 pymysql>=1.0 # 数据库操作(测试中更新风控状态等) -PyYAML>=6.0 # tests/config/test_config.yaml 配置加载 -allure-pytest>=2.13 # Allure 测试报告 -requests>=2.28 # tests/apis/yun8 HTTP 客户端 +pytest-html>=4.0 # pytest HTML 报告 diff --git a/requirements/prototypes/小象开票原型.html b/requirements/prototypes/小象开票原型.html new file mode 100644 index 0000000..4475b41 --- /dev/null +++ b/requirements/prototypes/小象开票原型.html @@ -0,0 +1,628 @@ + + +
+ + +| + | + | + | + | + | + | + | ||
|---|---|---|---|---|---|---|---|---|
| + | 税源地 | 审核状态 | 审核时间 | 司机姓名 | 身份证号 | 身份证有效期 | 手机号 | 操作 | +
| + | + | + | + | + | + | + | + | + | |
|---|---|---|---|---|---|---|---|---|---|
| + | 税源地 | 审核状态 | 审核时间 | 车牌号 | 车辆所有人 | 车辆分类 | 车牌颜色 | 车辆能源类型 | 操作 | +
| + | + | + | + | + | |||
|---|---|---|---|---|---|---|---|
| + | 收款人姓名 | 身份证号 | 收款银行卡号 | 收款银行 | 收款手机号 | 收款人类型 | 第三方ID / 操作 | +
}mUs*#ydQ-Y{VRw9-{?z{lVdPn2LP+G=SkT4+uXPE5zPw1$x=tBMOc`8abgF)znJ zoMBq|bL@2v!kJs~)MVo?OM2g!tsLjl`FG+kG~d!`0cX`u<*c`E&$&L9S>c~S<_*_k z!vwul1S@iJbyqk&YzR;B9*2lMo)Sy~LVWdwwZ;~67&`YsIA*N6vC+J-*fDL-y1D9(GjpjlrXmrc; W-=I0O!5{=Z;vL1htm@8XV*zrSpt?6Tem%o9yH-n3!w-A;*%WF3|FxZd-o|NW>~^ zq+Zr-CG~u?TlU0OmWsh6m!if5bF{X}6$wuJh*cVZt$8~)DWn)zLSDOB9}{pW%2Mft z$w9gi34q_Qc%^CVR`hf_T3$!4X@4xDP2u%urKqU`e3SgwH#fjHSHL$~?7~OY Tl{X1_&hwFKLUXQMaz$B37M}JerFyl-;>oMMOXASN%o^tol9ziPH}YV@Hh6& z?3{vC{yj1BnjIix%Y@%j-Ylw$kNgr+QNx|vIRw(4g-AQ(5O8c3QKgb_!^V+HmSU#2 z*piS;w;yyNmGK{s)O&YU{CNjA5CCRUPTzoU=b<)~e9yDK=guBJCav?|n~i%SU#Ixu zbI(pUYN%4m^5gTaHY<}-EAQ_?IkFxun?hob 9Stvs!)fj<$yN0ljus$B4(_!;$B2`wr?o+zeOgF9Dxb zf9uf_)it?Oj}VfllFj`RSXz_zj7mXKoH)#TpwKEaY{~v~vn+nL3pH#GLnOu$OOZ#+ zj`#bog;As??YhT{{;{uMcNBAm{EG=CwD<{EHvL(^+`U!pfhipzZT(y}IycRdI`-Cg z6j|!92BTkxwEHKV$Zsd}F#k5{RxduVIWd#3xN3GCNCWfEY+QzQ`qz`AI_}~*5)s(1 zN=zIPof{huZ;vb5-y$y2Pvt0|G#9q?tXRo=eqD1TE}pA>0M%}L*jD@vYgQ?_y4o|V zW9fhbCju>c0+1Q&=ilG4oEH%mO~|`TNMneoIS(Gl$S)|R#6^2sFcK6(|9^(22dd zL2J$JQ4z^`U tZ%0c6>-`)_Lc>9h0Dv2U6Io}CmbTV#sng6gf9`*uFGDNgbAwCa|di?#%HvX zV=Ae!4O(pQ56`>C)qZJET$Iv)(0{5-{CK3>A8BcrFdKmhN@q!=30XOG4XfneU&H5> z-Oj8qWmtruWR8h-z5I4ZmwfM&?1LT>x)H0jB+KoT4@3O?4Y_tH5Je-M9677F_*ZWI z&8Spga&pshqB+c%Yl1O|>iB%bMo@C~E)-Hu!DlNNSxn5`JBhxSFCjNTC3UMpZgH6$ zJMS}TOPF%GUd7lTkHkA#7h4L*VoTnz%IXoVy@ZV40ewrq^!S{4QI9~dVx^YJvzWOy z)SPfuAp){;l8{R`mH5khwCrp2FA{|mZ9Ln XkG#s{UZvSARZ^HbT!#P=_(H zGu{pNTTDDsQB8ETH5ZGeIP#Ya53zaw9Y5$=({8dsRyAstFN7n^aXdgq{@((`9z~!8 zL3?>UY0ABNAq`B-!)JR;E WU;M6nJx+vrvZ(*7r3cRq@Lfx8_xISR{)1Xucj|m8elC^LN4M)9`COV@;yK?O zD4J2}T63xp6fhvye8D8DD?v1BUNKSOBQA6)Yd$H(=dLy9!p|IW0RfH9oy!A`tX=^E z{3O9N;dY`)o^OUFrP$l0*oaE^bQ;jQgx`yi G_^>e)BF8oxt23 z5Zs3VLT0JnIM2X3pIT|s3`yiqd@8nKRD5n&v(_-ujH}s(P?5XjKYhSN$S?Hs`*M95 zwN5DDo>Rg|4m0NNg#@Pb{gykmW?QR103twsK&@?VdMqv7&)!1>7vr_+D-*^@zb@jp zyHmgDxU6{Z1Z*h?=M%BY2 cLw1`+KPc%$VC3uP~)E6m>>Tm}{~DikjS!Mz|^D2NOWf*AH8T-pWZs zw%iQqBM>dB)fb9EbbgGQWhPD2*LE=ySiEI1N@R02*-&rI=jb$pxOU@nb*;(XtlF6Y zuB$1JO{Ul<#O7@t&+rA^j|hwf $h`CWxnM%hj)R06nu-(@kF2$BU%h7n$q?b8B z25#z^feVX`!6&4P&PPV7KSEG0x;eG{dp3<+Y3{8h<0F26=3upQhnJ|K&euObCrt-h zVqIIvr7hKr4c`SZmHF1Mu ez6U9(B3IoY)7w6-{&ke6Mrh=Qfybu7U*t%?ybX;l(J>~{uU@=PG4KJuR#D@2 zEZQYc3nZ|7M=;@(>M3*Fr-DUyq-|_UQ$10fAE9GG%(qrR84O_3%$3OvrH-#O7eB0O zM9FEzPMZ6F$J_XIu-4@%mtxF&Q{(R ojP)SM-Y++yZ~e&__Iv54=4f1>G~Xfy zI$=Dj%p1EV7lCk^@BOc j*T-TL_5&PSaJK3w zx?_G3XRGS3R`sw3D&wIEs4?1#g=IMk-WPifQmS~0Czj=@<5wfEzgD0tDhOO<;o;-X z4^^4OQrfIgRf&k(r-hK_wOVbB^QS*zP^-MST^pnEAkH35kkk)n4P80K>#&=L#5B*l z?DWXsi*t#geV-7%B@-)}6axSu61YJwL}OM9uEYdVQ|S$SZUTl3F=D7Ou#8#hS4ETW z08EU;eRLW85Mn~psf62WpLskjEc#(2`huE;^m>^Al$=rchoX;~)3Fjr=rS>h#DqbU z=?wz^vD1)rzfj+VA$D?94m-F5Dd)g!(i&ZrkhncIAzuA_@Hj>$J0`9Oy5afb9Sc|% zs;wnkLlf{zj@$qufh}sC 3;wodvTK#2 z_Q#+$df}E$ieL#lw2_1+Xby`N3k3!d=!0tRLdNC;62wsO!~ibYx%qb0OOX*6hlOuJ zjXR^adZR?yb-#Ut3vE0&zXj9bJ *L{T26<|a#(HJ~0rTK3CjJ7nww3lgB$q)@$i&Vw*crk4c(%K8R z21+vU*n3V%A5Z$H%UcLTHomYw!K#6gWazQ>1%V(I-7pdz^yzho`ZPA#Y0FZgx@JCE zVuZvmG- Y=j{8MuD3G2<*Kj IqNhwVvAyuNtSFpM>@_E)RTYu7ql_lN9 zi?H} `( I{KUVwj-oE16znOLnmI zg~k1z>evSL80y8&au?&PSm}vtx#FxtTx8EdzNkBF73;7w3=F9bZ25W;tLre+mN3(P zsDwHL2p^h2yrz3Q99+Wsk59_;?v3fBtZ~S!aqJb?u?bq8OsS>lW>OxS89ZRUfTVI1 zg0i-_nORvNy6OQINljy7I@@&OHGPjMQx`1#KENSt`L}jY$zZh8fG@_O8n`tsp!j!o zk1=N7|5%fpm=%|VeqQYo-81&WH@!GrXPVW`h_g*DZR0$o0j+G6cqd4n&v)q=3-diw zw^xz~lN4j={T+}hzqw71s>-CJtFgrC9jop>4_B`Le%8*&g1JjuS%$)C24s}j%uIH3 zyU>(_4)oJCY!srAOi_+qDgc&Jd6^Y?b+V!%viU5+?>SdYh?bG88}W{oTnqsaW@&MZ z&KI3dI-KzHI)dr4bbL>Nq +&^3x?%o!zxTRCqfKYI z`hHD`Nlw953)#CrC&;abXTrYB782C&kkYcTmyy~Yo^KMqziNoh{ Ck`3Rf55eGHO1nm=-(Vv p|9e8(Uoz_iHKM4%z zz?Oqtje!xkFw=0Vn5YdJLe`!!NbW2 bJY z&FRuE9zuT&5#cf|oHmxw-wklaOZ2RR_Eq}ga#{kITzUB_vy3!|9u>r-6Y*fhD72%G zaUvr3Ag7bNtu(jhDL9>&h#sT@DtFWzi9*LDD?^!P^dcE3VP%!OW_eODrKPzPd_9|9 zHLLIH=ovrVl1L{K8bX|K^uURX72qUBLn{bhev9S9thev(ulbT?*@(6J-$PMktox2) zJ82&H1jS4hvV(I16q}m8>`4Tyjyn39G Y6^t(Sz=S=dFi z2J@981Bh#6Vv@LXA@YQEUll}63(^|ZlbU@`o$Z2N-uDEz7pQkh9Sf;4H##uylM}6@ zmuBebq5sKs>Nb}^%~y#(cEBpz3Hf87gYj;RyA vRudW)bkXwWz)+h+aRv!nsDmauuH=AB|2y(O*gF2eAq zq9jwR#ofg@eXna`pH`ZK(^Ibt{cgqPvY<@N53Jw}PGk;rHJwv@PmW})2a3+Vph64! zf-4V(l%{D>d8T9NX|=ReJ$)VfUrWP!Y{@_}m1sE2d@WfbY1h>iXL&+TSio#*LFmL- zB#H5PnR3;Jfby_~S0)%>!@{~HNDk2~i6Yhx=y}yFM_3mt(D3Bt`juDg#OZ3xENNy( zvBQ%EsDxUwOrcbmU20Epeq-aX5VElqzMwL#d@K&C6a8Q>4>SI0+mdCuovgiw!V`o} z8z9B77MfdUYHb!f`@65)dA44>3u*3$G#B_biY-H7TFdlJY^{py?QlFgPRs}`D%dO* zJZkF@ZdBVENn7EY{QQZ|^bZW;P>T3D-OVOK(+)h-)a^pHM?Dhbxo|Q%dsGtiHCDHk zayXWG{c~|i7;JTu?$a5vGt2Z$+G=&}^X@}NWROsB`F+;H-!!&Y* ddUy0Rx(GpwG8uMVv;Z*|C>~0+*;Ih zTGX?q8{vXlp!jMdp{&t?^=Qv)_#PxdeXU0il}qbO$mK;;8wx>dSb2HQrDcbqe}thw z+hr$vltxcYC5+kzl~t~La &uY!BO!Kw#OQ zemyvn3qYr#FjQgr=CGJwo`4QuB++o>>p84oV$v`%kUw!7TWc7NfB`O2covM3ph6DQ z?5`oV&6%856tY$nuo=Y%G=SA|_y#77>2{$OV$F&(KtvL9k0jCAcJwYhXnDCr0D~5O zJ~GLgfsYN_lh0tknpd;|K@7^w+!$x86ZI5vv&-}LB5Q<(onxHg=giO?plU}py5iUj z^2*C)&|q;;roy4fSX>ZEZ=&Xe`vOC2dFVMQ7A&iXvX1x6y}(>t-$+~vu$bGLA9vn! zkED*hl+7vImQ=ZeZ5 B zH5()!YRO4J_aHY^LHg!0UtO^%SkkX< Xo^EppT7I%exlS=*HfK?mVpV{ zY&P#L@=}NJa_?&<0ek`hw#~T@b*AAIwYC+QC6qNW=2o$t@u@=(NXSf=Y)?o*xQ7QK zg8_}H3%*i_@T+|MBW51;ur$5Q0S6GPK~PCdmv(Zk39HLn6#g7*Yk;Vz;udTxfYkWe zcj#buFOQjPD>MIOL=m;ceKnckM+116KKVV4JI{~%A6)SRna)?j6tnn<9^4$JxGND2 zLvV`i@dc?n#T+$>-LakDGIItV1ZXiM*+*v)6g?pnJ&A6ng60*i>=_+k1&vu>)it-Q z5=zo4x$-O8TH^B81ora!X0nqa!PD$X$O5jy$DNK&ALs;i<`hPiE)Up-mUV__w`oeI z#^a!acr1i9O#S{g*X`O}c!<{QN9IrKonAJN%ltv2u|}`d#Or{{qi07=3(*?w6kEaI zUdAZLu8HwpGRGg >6uZ3&Xr&G09<| z&v;@+ B;@V^naEj!eh+ps^~XB|xO<`|Hx>k!(DzH?f9By=p{{ zD cR=w6?1$^G$Tc4xN{X4OPY0$W82pD=y)~3+sc&m&Ion9)e@(%1jOoB9 zpT5`9;!*S|O%EGY>`t|r$BEHrzHiW~p2;d`sdj1Vg!w-*LQQT!tDY&y@$0fTO!mX= zgT?Bcm?pQIKhvI480{jFV&I=N!=-R1;E!SEXTh41S*Lo>ZNns7q8AKbp9W0wS2MAc z)k#@RwS>d`70Og(Tco-D4C9SnO)oQ6J)?x#y6$y#Yi=guAC~Jy)y;0r2Dl@=ot`_Y z%ck##hfs{GLsU#3W?)vML+B5qpOOj0vpZIZP}W8o=uum8ac%(Dl8VNFSd_SS?kg21 zo&XF!V)6tuOZvkHm!!P$=_wJj*@?m3og}_tpF11Vh8}*F(!f$2!~8_R8^g@Yf;B8t zE$jkyrjVL0>=d*l`Ow`(a>6GbZd8ZNUL Ru-=TTK+5Nd)B+T(9fR-27#&iR2n`(+|vOErrU;rzG{}g^LMY@<=sBhyB$HC zD1x4U@SBu1CN#AS1ss&1XJbmNZ&x0c6_=1x>P&C#qbDw&oDM7*93WsA{0o9V1P4u~ z0`8fv&7>Uv*;ejA`H-}~2SVFeR<(caaP5(wos(=(YuQE977K<~U&P47tpR%pb{}wd z!g#Qx3?rlqSf?&ELMl2~y5_un`&h!TK^GA+LS+1>s-QP-%q@WF`^5Fn(Pnx<_vE3* zmGF&x#Ob+Bj}hayscRQv%fU>p1zZI7r2Jg|g|i$~jpC`ef(}O8m%Waht j%8**3Hetd;`*KKvX &4p%Z>i>zN(kBi`AZ?8qh-Mtv5nK dQKv^u-kc0o=kSh~;YMm>O^nn3UN^!)S~5JwIv?C7` D%KjeHbK1+=Hw%B7##m8XkX@btfhzM-$!vH*ieYrNt^ zXOYc-wQ2m9zHYvW-r@OqlVEtCzc5&!-;uNVD*)sH;kUWn^kyKNEt^A!cX+FpA8s7G z8?%)Kob6E0DT>;Jml`rePYjd`u`)3s(BIsO#}=oRUpztlK}$*bSBXyypcr7ire8`I zQL0eNADsaIE$iL)_&S<@b5x9P9!gAaZH6xEUgH=!aYF5$K5<@42(S#a9^2;2>t~>U zve_`z!_v60y`!SOD?Vu%`JZ-j)*R9DM|5Zp3)Ch90Wu|)Vqi@w{%;IoR|GsmER%$6 zJK`Z@yT8D8!DkJJ(U+vaQdLp$;vVf?Kh4aF1O0KgRkjiqf3mTS9UPGbi(k$6s!44* zv)KNp)pvIO2_i-}R70Wi{3@QfV?pl(Y3yjEUFb1Esu%O0 tT4H! z)$4~3L9(U|zWUz6&kL;5fgXU-#twYVZ0d`Hn4 zw!gZX>AL za_+KzDJqcF09L=RJ0s$e-t|xvnI6&o;x`ND-P1rNA}#=Ed51(s(9Wkpcfi+Yjfct& zF4n(QK_jf3h>p=xoe=>POv_&
D(VePU@@k4!U`UtAvw&r> zan>CUna^OO0=%=uXcz_w0vpkQZ3~c}{` <5@~<{2j(U=6lj752&enw>;lxg}M7o#r73qI@TteL^Iyl z^*kSo()_*0fompNBAh_@Q7 rP6+Ba72+f+rYx(YP>#s1iVq)DK4O8$`+r!#WVikrA zRb)LZNdftTwUnT+cIXD6CsP=T%Y4{l$gMDOLTvbbN4O-wBOaF7D73%fPov?3+~*lI z-w|s_UDmrUrtC~?*3JmA6)=tQ0M8#5UdAcR;gZy97*2~2fZUt#Sc~Meb~)@|Eee_> zA$Mu&yL=7YAgw4h*id|XD~hfkz&fi1#*bdICfID5no|IFz2uD6thgIV;n@#>5WGh( zM n4V4t&q7=QsL@4F$Ornn?MEHH@{1}(0$^+QxG{Ajn| zpN@sn2~$&<|9Gda`lLb{5r)0a2fmB}Y}jaM$@vu#NOgKJbMg7^>hmp^xHWT>a7pea z-xC)3dau5_HiDwC{@LJOiXv9D4L?+6K)5>YmgPVB>AnRxM}!1M2Zg}USfznyU`RM9 z`;Zm#kk-2=A$I`@>|)r!09G(?Oo_FC2Y_rnV*u*e6`qL@BmdLVKjEmz`hl|kmJv{F z_kdyp1{q8kHPRkr^@WR2GQWVD)*BU|GGRH5`HXkr6t|RPQA77VdE)a94f-L)v-pT5 z9Y{87UtioH97F `;XS(fV87v?mVmM`@8JQ$i-9x80%L2Nc= mlN5M2cL10Oc+G*rpalvef~-E>)9ySW#6HG40jyAeE|LHy0 fOK-9PICxXmYb5?e_O&Ok68ywW>D!JSo%33o9Oj?1kl)i z-^4YB(p4kpKf{4J&7=gKe0S6Op%cyqBwcc?MGuo7#3j6ec*6a68k!Wsj7N;8HQ21- zRo{<^P3&GOn~_MZq3P1`oB#O7+0iN`6AVCg%&Ci?RXFRIk&M};gNYIb{s;7Xyky0| z3NdGs)oOeSijnu?{;((nd|&{sGqZ%Y$b Q zsf5UiCAH26l0n-Naruq &9KYPcGE1`wOo0S`>>^sKk4 zL1p$|sRr+se0_Fr1=dFW!ocjo0=?xw2~Z!sO~H8oCm0|DKY$FpclaiVMBcH%`n<|D zJt_tcCn8smw<70dV^(>O5M4ka+35{t61fOA0C9;)EnTggIVS$Z%!c0!Xk? as@?115(!qxft z^g8c#H1Ve!8&U(@V_%WxE0di4gJ$IaebGLTFj}hW5fakZPe}iNuW57tc};uXaaJZV za8JN^QM~ms7VReBe*Z&u{1%Aho^j4gL^ z{;yZx#p5tShy1Qrj@N#juDg4_Y@COeZ_Q3?9G=*_d;4B`3S4&Is{8d?XyzZ@>^R&y zx?As>`|;;b8#G^CHv8NNQu+z|Sf?B&Ja0_jHD4UuI8_!9$Pc!IZ{0ZixZ5pkC+D{x zxcF5!KWSb_TZo3=l=+No^~0}DTzwAf{d`kh?q^1cE<3n;diq+r1_$qz!e{Gvp7V2F zRz%(&?VMkaH(Vc_z4DFjz7B?0Q4Lv!H0&ma8&u~UG`$q1e30Khc7Cz6?>UASX;IfS zjdAGhLrsUg<>Gg>b9rena5m3)x^>upcs}G>fBi1y@W ^{Fi1Ser30c%yMNH{vnGKh2rzYjrA4Yi`!zq zC-+PJ{HB_xB&KHM>aLEP=T&?+pE%>JOtvoxoG#ybH>S>Ocb;DBI2~^+F4_`S_n2#L zv|kRv$LcKgx1~hk7MhpAhlhJ`PR54RYfr&ht@*>9QQ_HF%H8dvsWq;;aCwuN_EZX! z+gr^+QEwxQpEz2bW4D)NLLXE6x4Ui^hbrGDZF6=PcduLBUa#p=>fh|0A6&un1h%Ly zXO~t)Q#MK$=bT9JRYU7oL v~H+hsjnuAY#9d2Lh)ZJ;;EFFS)!N2OC`c?Y* zI!C2We}Cm==^ZrCTr@`U31sKzdEHi^+-SID0BdZdu9#G6Y>{37!9;z6);xcspV(ZY zTvkxU5vLXy^4J&{`kipbIMr@yRlV*i8RN{14vuD>ZO4EcWpI`X@b`Uu{MMR(IzN)V z81wW>dH3f6+=eJmXga&uukPCWu;KAEW@)WOrzh6~zMxSy33wFWXC`o&KHICLFuvk9 zDiy{)Ds!ZXI26LQk14RaGWech?4X!Cm069 *?kkFF8($&QZIhwJhebWB>h&7dyIul8tEcwF1fsK3e6QsXiP3m10r6e zQjalrncDk5vO#H|XCP)s0&^PaXhOj)SwN72{dcfbcDmF`Ys+G+o1U5}N?sxUjf> zXwsW}V>rr%Iy{c_QL0M6nZpY=&gB#90JIb(F6j#W`^6RW*XRw@sX1BdE{4m*)+8|K z+r*Bkspq!F@Tm%{XX$Of@OIp=EW!iy@D)^5iiC#OStkaJnE2$44Yw8FqgH5jl0 }N zy_cRiw+NLZVHj#JjHQUHXx?id5a}g^+%4bboH&evZG?I_lgp4>P^sTqUI4u3Ls3eS zGF9EjMyhnM>6l%$DKAPkVfg4Q?L7_UA-ELw$ZKRO7|DS-Ccd1AGF&c%#84eaktl|t zgXGPT&Dz3)+zI^dfn#h>BN}hRxrWM|qqu$h7L>xkdk>PEtn*jM%}l{utp)NQS5}m_ zLQpq6(S0g GYI*3MD;LnDloiejX YEc%Frjpyb?Qg;&d< lhaylWuJpCDrv(l98FYNnQrSn}w#&P_Swgw}IRJ0oSRx zM_p)Bt0VSLK~~c7rb#rqMX~p6fdpsUqj9Q<0lOe90zb4VxV6ao)UV`*h`!={AHnTT z1?i4exIJ5aG=Pki?Ka)x&KUMYoiB-_{V89CFEw)X9K4bCJlIsaBh;y>b%8G89>FAv z?53WC =W z$;8Y&JLE=Vu?Bm|!knc >5MW29g zR`V=FJM_aVii~}BWu+4OsOrW^NqYDfaS|tfT1nYE&xg-gXxh|l*m*~q%(-gxUhm!u zt9Y4j$k^fFi6h?tE2gvOBK(|_bHqVIy w _-( zIYsNZtCj2~gHfT8+nFB^XvIHK11F!9*3F}{gVs?wUnq7maHUIwJ_27wTeVMh*c3SR z69`A~X#Q6l?G6#GQe$OUT96SgfjB06W6vP{NVL!$Q+b+LBP91 z)DMz8+m#?~g}EUPTpDRHXP0^dCCU0J?KJYK;b<9CwQ4e=yP+ 7%K(+#la@q>m)PAWrlPTK*|;vM97DCS(pQ)HE>jjVqJomCDUBU z2wsoF*^jC3l2!L6*N{_F6|DgVB!E_!_P)v`M9PNOOUQ$9i+AZu(D@@Aew5xju9*^A zGrs2Bb2VX?RFUN9!RAe~^Eh@+v2TQJgridsq#)91#5~oXK-9_sMffD8<^SO$d-f*p zlDknUV273$K~9@0ESQxc%cs*MD$XHPEoNz;-&7C^;r@x*84wwwpsMPb6oWfZA4kgs z!coD6mp>R9DfUgH{qE9eE^ bjeP*C+^B%!BtFJ+feLYeJ`Y-#bWZ?Qd z7!|EsG1x|urnMw8K- $tJM$m z0m0^Q X;t+6LS z_Xuu@ApTt`VHPC`LPWUv*ZDD}OGC6B1I%P-+m>A_f}RER?u^Eb$_K2Jy^GhxQgOw> zECFSG2}P$Wt> wyazgU?mT@0WefOo3yMg|O$)9fnC;@wOo-dP#1 zQ)|@31Zd>+d7gNFc*I8Bc8?jz7*o|!X}+_`{ccp`FC +;`kp%`e^enm1pE_g`M6Zd~3zbdDH2E z|NS7FrB(Jo!73>+UY{^AU_nQA1m;#h_6fgp 6K+I(Ou eK0+0{ny}5E78ngk_H~d%#DCt9P1`0xiYV|3=WK zI`tv -D%Qd=kyxOL%mtj@+hj!YT z`6(rL1aR9!^neR&>`v4S-!Fz223jg*@&otqyp6Lbgh~l^kYe95 68Ex z4=+k!p}2ne2G+^%lNOczD`11SNa^9{zI_8-Y|VbpnJFy6Kb@yd(KwJl%3>K+rP`@d z=iJL|ITkc{0Ci^u@;pFxJrQY7`%)JdG1I)Yb$p|tDy8Ydq>-kaS+F8sh%+!&Afzbh zeKFJbA>Hr;VzeMEklK-r3c2|B2C&A +eL3|r#r#TTAS1)n3o%Mo{*y^twk zKD7@6F4t^-SFlasLoPz{R+$Nk6FCa1;&1wbES6?fs#0WYB)IuW@oG8t$0_!P!!N@1 z`Kof_KR6s0!Je=k$rXQ2Mi^UDeO6OA_X1Zw%+rGt8xwCU_ov3k7|G|zy~P2ZM~{=f z=@$gdgIP5w<2)48&K$jj@cP5sjKqbR;)#*wnIqpZY_)zU^(?hlhbda;hP9VJ+cxa< zi=;lS^J=6uEL=QA98DIc&*w^uh-6K}=*85&hJhV)IqkFh`A=(>R_13lfkIW)-tQg{ z#b|lJ-PNDp@T)FiFR?IyB bQh &_bXMa gCB6Ke)nRa#ws1z^TWjHoj;I%_LfR17Y-B#JdUGnS7XHqnOl|Ie7v~p z*s*a#HdlSFHG!o*rkdXsz4t|0;HuQp=U_Fdn%Nm_Ln#C|vJ>yGwC>UplcQ-`V+)rT zcYM%3U|CaD$~WRJ7|wUHqi>d7@2z@=?!7ZRB>jDoq8N>SlP?XmZD(DAy(XtbrUO?N zeYw* Nad%;ao)6l($m( zznTbR0w;}~gOu;}(*ATdo(cOo(5N2QX;(wk7v>)77?1=FW^OD^`oYljVS@a3xnRl< z23qbz!a~ JJ&(;X1EK2c&vdV!fcO4VgAQ_YA6HViE3oa#{KTvJBW&(?4} z;wqw+w=T89yqX;jtA{f+5%H g>fjUaZ6J39~Aqtis9ti z*r`LEu7Vu!jKMD_{qV=S#l9-+uPwH|)nV~;D)xLzWnr#mCd*ieOpRH~zT|6ltk~bG zt!mzAsiSK+UJ^ux7o%9ZudwLYv?+)` s`hH-$N0vxv19@a;lcd!T_3~YPdCtbOR>M;+0A%b{@1zHPpb7FDE84()tm38 zysF}v?Pf0kM>jgV2|itL %-m5tK`q_1%v1Vp>Lw~C*9(k#FaIx<3y%gjXHeryL7~%y >#UTa sOS=o+*hoh#`rm#y)nc+Zv8oGm^!+>HZtK2yWn*Q;Vb$5kPl?I6 zF*X+#{qbK4P35=a(|%;;{dPea ClYk6ryZ0 zCKNLLR>M!l@d;VXs101K?(dQ#ba(S089iOaI-Qt!Sn$`370hhN+9}vVDkPbun_wFf z_l{$D4s#|gz(0*? su3PM$E3F*!sroHxTj1yRyNV9D4nKW&I!$vbdZxt>xUhY@p3@`L# z_#PM=a?XEr`OvIkKkbzZE|rdB7`^3IANx; Jsuc8w( zArU`5hUyr6>#8*B&q!Dba{y27)dpkmBfoh3NQGUdp5vc52jOtYWS!Hfk>%#|%M%|u z5S7L4A>>+r>i+nt`* (nI2?|%UhSIOtfq#Z=U;Emd@MAc`V|za zuRnKff2)V5r45V-%1`cZKRFm=b*x@qj2|EUzMn3;pG=$P9AN79@!R&d`?B%>c>8c` z_p-{ZI^ELmsC^;K>uDF+_&oISXlWU2tTfPhe)8{Oe;+wI0i*Ea!Lya$G^qOZth*?1 za^{N{*VBa7{Q>*GZ}qz}ovc2B0RaVI{9m{FS^vA$uc`ODk^{-NcHuj~qX#(Y6RMI- zV`!-&Mf +dPk>;0LP+2LQy*h1ye4Zy71w}H zcza&W+|Bc`{r3BZB{Kf+Ig_K>&B} (>8d_`Ch{wd`?h!C_M9d 4{hCroL(t?=TfbZbCqj*W70p8i2fU5s`<`4UPOgQJVNuHY1V4lC;hXE z%j|`ANu8Z-ygL(CkN57ZLkEpA%9Zn83sEK4)J8!^&RvZoEjye>2h0rW;J7uHG)E-f zce=(%QVLBo?Vc{eo`8K)+beR$yQlEYt6!2Wd4BR`^Ls9~7+Q;sSm2U;5bY_~ayHT_ z&E-9M>!>g4kn4{O;Z%FG-c4H$9|nU-Q3SqBnxlek0_;WK1i7!#%np_>b}hFeE~T(J zMh{(R1ccgWg})TyIldp|XN>?)Twj77{>@r<)lY6-dEJ=RKb(ly8h+c46~f^!wlV|P zFE2}CxwL5SZPshM1dTWM&jQ%=y4$o?MRS-Nm>&HM6Y+Qb48N9Xm1AbFo34qlA_L)v z`F3a}LEzlake9a*v!9!L_11IB-o`wl{Ik;JAbVO4fQQq%tDQW7Df q;IewIss3-6>G>)JulF4RQQxNVMs}t&+&jE5e|#4hkOi~n`0}% zuA*;LBShpnp(MPBEcG^V2A4^avGDX1ODbg1Fk1+*2fy?ZT7tTZSJ SG$cc>SE=mr*8T&vH8OzNreePXWZ~ZHYbrj;as5;M5gy!NZ zPdMq**XeDPJW9T=ue6LT3=wy5d=U{ijUFv@J&%qAtZs!tAbsBM3N`RY99JTZH%vX<}qhC~EPLP?xG8TZNozXD(xZ3od+(G+r0;`NvO_jo5b5g#zYx@Df1MNm>z#W%NwzM-K9WHqkI^orzZ|F~w z(hXSSGIJ2PON-&6B>q0%+xw)hk88mZ1tKJ5hmPx&dNp1Vg93!}T$bMMVV^R%1c@*s zCKDdAYg^fp*K14f*Lp))G-Sv^bpokbt(T$F 2|J zz?%_jOBIXe u9(+y+QOYu+%J{yLvZe=K>pUL&{atiDf>1iB~7h(gj@Xvs~IYDOGp8fP6lZXXxa} zm(5C>)r-Q93M{4F;4Yf`dQbM@#t(6(-aJmZwXD0`K$zZ6lKXs1S8BQ6LZGqWD5TA- z6@2 erMMM8ytk8_U@nv`en)wxm9-EL!X&U4kvBwZ6 z9%MWT LVjZxC?WO|FD_cBa{z^Z1LeXR=15LS>e!7wfTUspju7YueVPk{zf;X^Zq|z6 z80)U_>y`>sKX23B6hFkc)Drp_*XRJ~nacv7K^h()a!;fAv(gQAIxi_TauUIj`i=BbS)_}Y zVAG_BrunC<-LuZO{xq>DMeZ(yg+tL<++KQ~Qf7s2*cWTzd;&P(AiR_;WaMuvZ|g6^ zMhNH{fkGO*5UxOijw36QKv^kB6ms4E)hW2Nxh0R2`4oO^j)#oCCD6!40>brOSN?2# zcqbO~ap;LxR+GOq(Ag=gZz;)Ce?EC8thN8JI#*)P%9cB~9?}FOrl|$@ZDh`b5}oMv z{*&V>v{?dh^u@$9ZC*lTw+(shlIW3%@KKci{<}3UP=QTpR&UGzO5`T(Q#|cirdi!v zT{6}U+|tNZK3dZqq<7TCd8>@k2g`Wc$)6BM$3Q_DJ*%{C!@h(=aOXJpL; J9`>46N8Huh>b(fYTPop6R1AIcnZ7C3#S`ET! zPFPD(>?vi%W*7k}rPX$&8++Lldbc3sI~QE$QW5h`l`3rGrm&oz+2e*=FnfXaB@MWT zQ?*f2udvD`Si|3}Y7c%O%i!lGm%xPfPT=A^2I~ZvGzW^IiSci~z_G#Q_(=2seAsy; zRY0EY7p&8t@Ad3PHd*a~as~VuAZVEP1el*pb;VTKhaBOm)GNJIG8yQM2$~35RNAKq zJQR)v_PX+CH^fk+v(n6Bv)&!~;k@@;^BJlcIeF&oY@EdFE)K}A)2R^(R;t4#qxl)r zr)e>|Rkcg6M!t3L=%|xOu`IRe29R|0<{ 7VXk4HMH)Yk zy`uM>6a3b_JZ5rwJJ7Ya|6{^W(B)_o!UhDieFy~f9{}yo@5$NH$jQu9#l^|W-op96 z6iwevXI-&|<9G3k@0s0*j1#Tih8XyCV0!>RYsUr1z=qM00Eb=qkM-wj)2@RxodlOk zzPc1%ANxV<4@GCnlxiDqr$s-8-1rUsz`gl7_yzr5`LBXU&Gl@7yZY7_xJ^OLT>U?n zx%v|B_tWW# &pm!9KhdQH*5 zw@RG`VJTduWcWmKyAKpn{}h)#mG<2Ubn#Ytf6^Dy!258fd&8sT Fsp1FYUSO zQM~J82{*Q74Kb_lp^Nhk$DwO>#IL|0_&s`et!V1)b7?-qpt)>d9I=13>1J5EwdrR3 zscEV))bMT#wr`_)=csMxbpPs+wNJN^mp!`l^2q0XZWHh(J64t2iCJL8-EW(s? +QMS^WsbA|`1|e?65->F6Dtbh?l@A#>s|PCUfh}xml!#XlCI~~ z(|EURs9fE-VezBg_g%Hl4W8uoelS$C_8fP2L)zoe?PlliC;d* SFpRkt!B+-i4%J6si478f^+LuLN(>Q@iMy~175 zqRC;xocGY%NJ*dVhc)}LcGfb_Z~5?+mcClJY#ya*-;3lD+59STf+Mg>%mVRF6gBF& zAWjK{`_OaSADVOiUGU-CisbFV`$ `Sg6Pi&0G_COMIWI27hO&`a z-3pDdq;v};r aHhO+EGsV3o%#bjm6Zup>5$N^P1_>t^AVrER{a7^zjs9X-af!TvxS zwhb0K_*zY|>_~E_TqC={mBYw4;!b#7fAGES`BzX%q?fbE^p6mv7uw1+M;OJ8M%5Wj z0{zY|avf{^3euHh)y#IJ<(e^J(=NfHTL$j)0t=TBcc#1jJ`O0WbQ$3=&qKwlp`5{S zOPIPF17VJq*I9oDU5 4k{QiM4jVTJAD`y|$viBIiSZXGDAI0j zgFvd%Z9;vMwdWpp@|E^n_zlSDrMBJutaS{!lcni(z1F*(9s-o}v26tSdPm^KO%Z@m zGE#jTbdGpqbK)*N-?0k9la~BbG|?<0-U{B4#MwIJ-@+Xt_J4A+vB0PaHvF_Y;)Y#v z`#{T~Lc{^%<_RGBpn-l lu^;kcP4bk#vYl`I|4n*ibt4iU34h!(2Shk zx77EB-8!*@D1|>xc?eVbZbs}xt+(HMf3iK!oZoaG^SVW$&Wr2*i7JRt_OBOEua0MV zqe4hIyR7$}Dslb18&qM&m$W9$nPR8xXxvTy?ox7jLU^GIXKp@p#lxgu*~d=ewt~1a zHQebV$MnMK>$o|}r&}(M!_0j~$JB_B^B0q!OA`mzA)77+J$%s3J%snxE1(w5q&M=0 zT3pP&Vl} vv}`d=Fc%k6IU2?C@ENdDyfuIjd&eNReC! zWgudu1)Vq~*QI5Cg8r#l#PC}{B2?*guZ8@V`Zr4|Y$)OJqGxRY7U+G#O+tBS63B`+ zrsX6FDCe}) 4P z0>b{cDSI_~$%?^pjjNkm0}^llg{B{tb@m69e>z-rO#F)Y6f&`8Vy%!6d^fD6KMrGm zQP!dqa%8Lu*5)y{v#aE5y}DH7`_SO&Cz88Sg2zLEWE!Ofryc5*S$&AJK}ee0z`Dwf z>}zN_8_Y4{eT+&>H3t;uTtQkv)=t8Izf9!ug7;i{^hMEYPNyBGWP$^J !N$%NWsLf$d|FnQbV_VgX}s|^b_P%i)yHqnH}Xx# z*WQprIofX7QM>_OAr(|+CWF|l8!PCy)JHgs91vmtg31Imq+z{Fv2v(xi&rT+H)Aat zge%){?qiZ|caBDXp=>Vm`3T7#S*c(wD1yQ{q2<0_pp5G_)ExGM#QTKZB|az6$5Nt( zxC|VEGoM;?VBpEzs~i)p&?6Z7Lm9T}=z&Mv `C+6( ATLMKy~OPS-%^6^^R3+oEbDbR=aqx={7{L z2v$)puX|q2-hC?Dg5oU!ZW&L(OGl|D?!|n8$v|ew%)b((Nk@8TIr%zJ{rGn^!8S{v zafA(+zFq6QGpV9)Q;!)GjUzu}$uut#`ECOTmxv |kHfhW1iXiFJzS4*k`c^vz zlQ#m>g31IT?h%3hbTv;n@h}YHNz-{WHE)F18zYX-_nH_h-1HBPY!1P12apJG{^KK= zh;{91VW+r@i5}iyS;AfaGuR?gwvjw@ywqrBd*ZgtwJvc!+RatCTO5ZGI2+;dzN~M8 zTaK7uwi(eGZc|nX+VrhgtM23CsGGVwcu!c-6xhE#^IF7*i1Zw>_gmtdwDy9kkW!#; zBTA_{-5F&S$Gdb*0f6K36SRt*Ag6~iy0nOSzhptF^IMsO<9x@-d?jXFeILw8?Sn2B zv3 vLvIAMOtki45vCFMA6$o;3Tj `QNc`p6udH~HReflaKtjj+-+VaO!`1s zXK>^3AO#JC3O!u0U@BYAVtz11qKvuaS5{|ovXk!<%{Hx1P6z5Tp#MalKh{>$JCQ0d zV=gBsx(uLsbsrdol@ltT)hNn1EkeB18Yn8cU`wMlxtEh-`3j??zozlJJDr(`*1C|X z-e`UHuuej%Bn2k;U>diu$K*g8^&b7imT~WJMoAhA@-#@qr 8_lfkWG11ERphimMAU)GP 5OEE_V002AcL0d+3%FvH+ZB2-5P ztM@8}tlnq6VEkH=Uw%Tu8MGsAsUj_W^3ICNm +Qfa zr>(c?zLy8;7zPJk(w2CUx&X(N(^APc4Zbj-6gn$n*7>s;kw+tc#HM6UQ2GbYAcdCu zwVU#2xQpAr6Wm1z{TobMsm5JxDf7tj{<$t8p{KFyliVJCbsG*N4&6pFJwLq}E5EjO zM&4(A97yjB2$}WRO-dc9p|(M_@l`goYhvKs`$h!E90)Uz?D!;CF9#wDO{(s=W^==m zUuPWUydq^d>M+wchu+y=z=az;8(e)u_GZ;{IS!*vK>+OFGgjGgA-Q|Pw`oiYaJM!A zYKfsZo(;4o`!O@W?~`xYGZH#E)gSe5r-_ z?g0YbD+)4SL&1!*gb$6As3yXL-IieaUZ9kwzQIHO$R@CaIU*N`vy>YZ!%7q3+2{CG z__}a})G;X)CZq|kv$zX@BkVcQ0L%ixY+uLl#c=l?HZwd7aDm(CHhvsGz z^>~$a)A*#;FBa2M$hy8YStiex##`6Q)eHSk4$v#FTQ1`ny4ObCa#GKw-fZaXt1>J8 z4&c8B5)H>>=^wd$I{r8{26uLY{iVZ0cXzi*;BHo0t6rx>Cm8Ntye4Xve LDd5OvAvT;RXi-Tt* z8ZlKPP40kEi?%vr)soHZ< Q}@$qTZNk+T3mTDmRqiH|% z(GG?DklQpq#oxhmXftZOn}PV_B5-+KJZ^z?s&y-%-&J&Rk0D2Gd#S=D3rx#NvMdG~ zY5Sf;y$>10*X_3o* Ru+?L|&J z5``%wi_eB0*|8-HvsdBTb+1TQtX9#Ta%p6u!-AOjMSkm$QMnX~oXXVCugjGAlwmUq znKaQ{CByC9L6$@~V>%jZ`1S-s(sVx1arL0f`uCx &~RcbOynF+?Aa>{ Z;AxAN<{|K}XJWsm`)eYP%k#H2TKS+bE;OEN z9FN2>-hxaXiM6nizJ-nQzI0c7R@1XJ2cJXGlm#1y##9Jy6)Pf`fQR?r;Z|d6iapy= zpD!)oGvkyt#3{IFzx&eubKX%~dW-j)k#X71>?Y+HqqyX-7ss;U`yNXie&18F cDv;5ec&XT1awBlcdN$8gz*B?{7(IXlA9TR(A$(kc^rc(G?`3DzzF?CI@kQ6#L z=ei!AiBmLv9BeNpJp4OY*!mgw#%4zgFOpqR{Be2OQMUKJ49fiS>zjQV^~^U|n>_){ ztv+GsaQg^KjO;}vIQI1FI3$6uM7vL}*O92*u?Fp+(V(Dww~8j=SJs{gFG#sYApm>R zHZY1wqNph>%1{@@c;q9%K?_hkNHl7sH^{+_C)a1v*(jHccFM3f4V*eVTuYkgXX^$q znr^TzL=x^F!uWIl_h7`e=Ot&z?_)@Rdq)4?7hoHmJs^Do@!}DGywz&smLW)tb73nC zol3f#1NB(EQc*%{lX03s*O#^GypPtGrqqnR-nZIROB*Mfb&b><`7W-}DLT3!6zn&G z&>Jgo^JwO2Hh-lCp|ljmh?LByJJkyMo;$iVf`hMvzfACLZ Ze($;;zIV_+oF8=Ry4 E(?Pj8Q|&gv{-6nmyOF=V0`ijCvMtxp&2PH9Z_W~udJhcuCU++p|x+Y za*`Vs{jEC#^&eW^PiW%9%Uhzh@>lr@nBZfMfqiRk@IU0k6zQc$&i)NhmmKEE%{_Z? z{?=oG@yv~S(va}hT*+{d+i)4;mp5Q}7W?bFJv;w|(YS1(P&Mqn7VzYyQb))>=N{P7mP -DMEEhId0hvmE8mgBD1LcpLPNaw-ty=oUx29{zi~mlIW+bKx4L zw8i&?L{|L@Odtt;&rzc^F%#)(V5QAU*yQHG7MP$@v1}WId>Ck`x&jcGN^P(2I9}Ga zu6i8#s`yX@#xQ=%bJl;s`6#00EPy+z#2Y0D1`ez_gw_chAJ=>Cgg=l7D{`5yuoHSX zj8HiXQ&qJ$2x?J&Iw@{(@NI3#xn27LV8r99zT>Rd+C{2H-Ivcum~uwoWXFE)j^W4U zTPIbyr&T0GZ=L2!2VTU&{=2pYtzY0MJ)<();cX6idJfk<65nBUJBVIuy~w_cyF?l~ z;e%gR{r!xpbIIUt4zdM4V8YU^OIKpQUL`&%N+&%MvP9WuRabtgdN$x@IdRC@Ksf{+ zymVkHbJ9|^?R
H#MzU3kbQ18nn8_eP3Us036v{ z0hlQVVxS&Aytvz~GV~`mcP0R}q9=z__qt|BPB=9sk{3@ddTDqxc ;XqqC+9H z>1e;@nd5quT?Ek#$XS737#glO{8dLr>e+g|OH!n8J+*Asl-$77tU|`}WKW@Zm-ne| zCl cOo8oxwow zdOVS9NhK|#i0Y6?SQTt%6385Q)Iy^slb(HaG}a3et5TPXI)L3boTE1Xv+4bjuP|wW z>pC3UvWJ?7SCP`*RSn$462l 5zSwA#=FskgT9U~X&4TcP{tgw)3q%TTwWBn2rMy9gOPSw6tA`J>j-btK zL6H?H)NPQA?o>AdR3*a!Y4ScA06e=>X;g@;VL!jhNbvcnB043>z6ap^88aIjhLzW5 z=SQpe5k|xxw4b0Zw|?R)DHK ?0 z%_w6fI4)-%-fhw(%vTreBVEdQ6rMsBe0>{diu9qr4?n<{o4Jt#T-vJLsn@HD&Qe1V zY?jIjH}k)VJNPCNhXWmvNiZ4qwQ~@QmqW2gG7ztT*cQ>CO-j1H&o}#4wrF1la@IyJ zZ9LGCf|EgK2W+4d$+bx<(_S;7IRL2?NIvQ5#l|I{cP6ydWGp#!kbMM{$OXbgH~Ofj zw5ODPE`Ya8wX(j {6<_ne6Y=JI8|3SCRFLzP=GIfaAS)jO~B#S+M|JC zWlG%dG)237b+g*HK2Lha3J;)o#K@R0!!MYcD${&@tk2MbS#hJkJP{fWnx04%@{?WK zr#F7zyGm~JcAjfp;$}BM^5W|e>imn2(hz?%@sSN61uOg)l|~ho`mc7M; Oi?mExv&oqv4Djmzdbk;1*ggaFe7gLAk*Rnvy8U)0 zMJZ#WO-STOjd2y&ziNBY?9h=}?EW>j7CZ>e1KLo-JDhD(6Pn}4i6)UFdCUJzXQG#y zn`=@ww=V7p*wMoNcH*=2xGFsYq<7I;sO$*{L#xhh$w5lh8Zx!S9M5GA_N#&NclK?t z?%mk9?!4nqS z8ZLvi8S%`%yJ2E_839x7Pk|_+K3a0|xzaG4UDc=GRraAikOPhX(rv(}F=Q!g^G^+R zRySbL67Rd XhC95+zr( (7_CygKd|YNE}KvpO5eQSNJD%pwk4iybc@ 2Y~_2AP?&D&acU)Q{1+5hu6~O*GE=kc<_+SGV3R6=cdqNNIjR*P^cAU<{8IRj zz#7qDwFTKNL{`?51gZdvbb=A^tg
oJJ@_nhsL#{I%4iKY+84b!A(Emh3VUR zY4A!0#Y |Y*T8$lkg(;nPs^41HqzUp%UySH{au8E;+2E&uV*GyF8ctRI}g8 zxOQ1V=~S7i+255MP>#&5;YtW{5~BNKD&_jFja~07yjJ2bY~YJ)F)<=&;NSFxaC#Nh zLvv%d;us2C_=Nn!`u@eyY6MWGn=VTUJ~66yR(cx5*9LkN9)XG2!DYWYmZ!m-t5ATo z_qBfgLoJqgI?)XG2HVU5&)ve3fm6Nl*xGRce8ZsBy!&vHJP^#GWQh|z`Mp6d9o=;q zI-!gKUz9(-@207=b^skbfhiB+wD5l_xv2E387f@=6NR%Xy)zcmcFuxf@%!WR9u284 z@u}~JxbM@msYq&tlyYPfYAnp}4oMe1ocq517isp7Nhs{CC(EfoKuc4Ihra`&^LcjT zc^q}L@FK#zOk6#&nC|aqa>1y^N`4$r1m&=z<#Dr5vfY@N{7J!jP3tb8lT%BRG8}!6 z1LlGnRW`|@;*P~hl96S$1fcf1;LepPFFqSC5|NEbOg<%-lP-E|mWR4X>0DH;h8WDB z32Qu`^*rmizVJaw1-){WCrbeSk%TxRU6v#jEt-K))7jMmnoC|y`bjs;;-KpZ0W5R} z10{5G0-1Brrk_d{=K_IXI5ouy)2D1aAbWqgZ>3nP_3kWDp6*u9;CK(}gr++PAea~Y zrv^WTcSoafg@}auLHKk;4@xvC+wel@4~v%e`3gD^ %ZV!wrrlERh)WfVYs_M17rG$)fRwSM=hzF%s)v$XE) zB5g>>s}vu2*ju)sfHDpH)*;Z#=g%oF$ZktLR-Ds{f!f|rE_&+LXyc@S>H79#NuQuY z5txZ(1Aje`Fq1l7sh-Z2Z=RH4zuS_pWh04sLEROx8Ki0M#(s>6XFM~XX9&G3M&nO@ z$_OMi%3cktyrXN^q}Q$Ym-X#JrgenJsmGoW$?|9s6kjWs7_$Z(Jn8TN3@$We1YIYH z2zRB^tLXrisTwhckH1`t*7C}7DC)E~r!o8VPliVLR Rl4-Pv*qDN1&)+ u3xpa8^8NU&!2CoHZlhj9Cn=XYL3 z9QysG<|f1cN=HU?9R#dY$9(6TPnxbc)UexE7Ea!go(SgLuLm0kS0Kn Lo~ zGryL4p{Z|xcccuk%j+}A1<0&h=C>A_UVAU;f(0UisR&C1`6uA8Tm>F_-D6iEXW4x| z7p&$h(U*5XW 4yxq44z1$n_7n8~rqD_P;6HAmr2pPDZ2t z-7VkdACGkj3$~j}MdiNuAD9? t5#Wg&VL<*b$D3RQ#_&c}}q7p}Bp3fsL~h zp(gSZ`En-v6#7Cc+35)x9;|edEap4FX7H}9xaR+zi(@ISVtQX*Av?8;(^tpWiz!=H zM)_B0{U$UQD~!^~6{Lm5fsZk2vG{DxSk%c%kLq?$cwKACxy)`?W1VM}n}Jr42*c1U z4R?70VLPTuLUq-N>9qta^=l;$Dsp{BU$WT;>rGRl`-6(G=4#MK0KvXAqK9D^q2Ef2 zyUhwj{nnj2GecIdow`pcrESc!q$ufH}2M| zN`PbEYd0ADyEkJd(zoq{?k9i!9)Ufc6+h6~9c3q^)Hm(f%YiLRn)9UPU)^bH8y_XL zwxQo@qs&q C{(kTCz%;7SX^beIIj8%VxR sc>V7IKE~NLD0BZf%uuyn@HSNeLaV?r3cEjr z(9+hjQYlb$U1@X&@dQeJTPc&(8bJzz^7h4k^*tO{h0m^8#d9T tnrCe N84h5ZMj9j_ z+SJZa^OiY(-S51G@!J C^r4#E
zn|UNKA^o6NicWr527f<2sZ2cm4>fLhFO}4#UD~Ys{&7ARy>>3B=yH{0_vjD>g-DGu zBr^8jS}LY7_ss+91l_pQ=nW;$92wt5%|xU}F5%~KWBiK(V|FTotj}1I5$I|6voQS7 zoWt{+y;*XCg~=JM+yv8|aW2){LB=cwqoJCDrF$Nk>rtH0#Pnhv2gR;zVG2t`058Rz z;n%t0GaHI!f`qwBmJ<&Xo!@ K5?gz&W0l64DDP8WY7 z9c7!SyU9MJYdhY#Kn+&%DLgWrgxP)49aFBn%15!8bDtrb;9evqZ1MIGl5}q5!IT+G zMBKg{*KP@7pgA)!LItD$m{VI#jB^fRln^&gg=7TA-%*Mt;XTtJq32;c#tz39EFo@r zw`D2+M)^a|{2uZx?cW+rfcUL}=-Jbjd~Axf)$t(2tSbw pZ1$+Wv?RleZ5o*>T>ZlJrD$b7i8c;H$r z24HD57tPnUO7eOZ`_y1F3jV%W4)c2p6F%TdGaR&Z@q}C2R*X3&P@K6(O8IG?*5BGS zX$jf`zIdxrm=-)WZ +I9Z#bh&FC(;Wp zs*0x`yf-4^@I;y!=AKRm6(Pwq6$?T1OW$e7%K8a1ZB$P~aKM9~et~45Uh#>gph_u2 z{T4WTRLQM2AbPpqznO@MD$16{QA*qmoM20E3oy%!Sp2<7%9bUsH0oo{*&2t*T|>?D zP)|(Stu)R2DTL{SXLa)jGq6Ke^?{OmNG_XItD2})P7`Cx<8Q-0QB{J)r8y#UdD7^G z1!t~@nvVLP`+Iy-BP8Jpo&IY&J;*HQzJY1Q+D_ls3V4bYJrU%foj#xUt2RR$f;3Z_ z>p?xoHQAh<`UvsBrUgC93?S;l)p>en+R@Jty7?}uET+qlN!GyC`?ZMFXbZa_O4{li z@~F~v{vQOkd3N(I*kIF(;TP_PNJ~})C&Q4riv@b {tU8azVw *Dq-BOnZZgWGAS VFa<=fK8ulc7(-u+SBy!>$@k*AN$r#@;<8bi zgHM%;_eY-?M^SOh{y>5y_ )L$2 z_LXqHtX2zGLxN|rr##z8A>Cp4JL(nf-as{TK$D75W3Wz)T77>aRp&M3+c>tp=0gfM zO_2im9e{&WzkpP)6?r@f2z`^Ub7fAqzzj@DgRwokJZv;*Jl6NGL{;b+#hpKPeC!ov zg3kgz$JZ!z>^IMP+W;Lo&>U=L-0W{u&BrVO%m}Us$CgrfGhclfw?6%`s6fq2MqQk1 zxoXPf^?Q#zgt~XvIjx|)va@7ZLSveh()2it<#TrWr@}VO!ZM$^t}XNOjJl_rX+;54 z36#MV_x^rvpmHsKilvJTCSQaL!y)*5tEhP)(scHcKIOO7XPncKFj;p;bns8@k|LAE zF4N2gHl-*uR$`^RlOXm}E(-&%>`#rDX?9|8i2L7JFWhy_8xkfro>u8izU7EsZyTuc z8%Psm^H{1eI76S9u@*^Fq(n0f>N$A|t4R~mU2y49vy&85;1vufnt#OaI qyOe~De0 3rT9%zrD2k~DJpHL&v~?ly&{7hS^2u> zTsT^xxd2!SDJ bT8%#1wyvMml>ykQ}1wO z%X=V3);_1d{`?+0JG6}WTzAUfmE2|&5H_3x630%A2O;=v5Bxs|S2Hq#=S`n4OB$V5 zY}Fq2-?NHpxf>UBd@NAW|GftXA>ue%Is$7A-=Io9{uM#C^08qrBo_5`O_E^bua?4> zh|?>6eIan^*A0q_qc%>g>P+h*Gz?+ZEZQ_mHyOe CuG+ z>o6wOizVtTk@epQvy&VWb;U?eF*{u^E!p=Ur 6SNT@CxOFL?b6Hgj zX;GtXVROUW8M6q0<%AMCRj}wL+Im$8Kr*SMf#q3KQ`s>!Tej#WvzDpRa0+MTgOakl zm=nY%ZJSP+`*oAzByuA0 ^4N@k{+% z6-hNlANf~XenlVwn8mL;`DP51;Ny$Oc`4J&9M0t^XXFn)W*Zrh3NaX=Q~ybF>KFO1 zt*54W>!x3Y`D%j+Scr#Pe2` Dq&o#crMtVO5eaDo8HOCXySr1m zK|n$phme*WN?KaFBt%eJ;0}1s@f`kh|9jW-%-(C(Uhn&@{GPqnv)8+c8tdt1nOw~Y z(Q4VNqi2+{dNm!B*9aqt+K|;uXK!DH_Rh+}EPl3j2$JjplZEYpE|YB*e;^Vm8EjvC zGZR24@b=wM zqMsfs7w5WHL+XO{@#TVr2oN(? r?zu@XO>T zIf#1JVzIuJw9WQ7RB>NDWlg<|dmn-67c6FCQeBtU%baO?boL&;1AXKC7!VBrRU _yHOxEOoL`%n=kzqODS&tgrnaJ;V+HdiKjI=D=)cmb1@^V)_??3I z9b=O8(|r%&tI^&OF)KjKrDS(@_cAp&qvq=b3c5!*rWYv9-*xZ5z6>1lcs;p^Bp;`z zvH9SUcVqu9ey%UbrZTo7kn51PD3`CxL6mDC= sF1RI$!c?eQFzhrA*}M*wAzGkR=wQ^T2X_Z+y|1m=$CKE8{epUK7t#?Iw5ho)pZz zSC@gZI-6D1R 5xZ3iN88LMxoLnONq`#l`J$+#q_gPQe z^jq%tHF$4RCCMQWl7a8lc$0uzy5l`4nlBmKr{`bEgwibGy3a8~ot!55I+z@Jqt(5N zYCZ3vUSmx7OCnaMjZ4{s;wf5uop8{R>o~dWSVeX-TSMA%nLEtYTQUnZx Ny8 zQt`Bw=+ {v{TM;3IM4W7QDm8E&3r^@(haff+xVlTNAr<1-Rr |adB6go&mpU5!^G+36lC+03E6Ab<}jBUo9pJP^Kys77u}Pjo=>e<6DtO z0>H-LER|kP%z=I>iwPv^uDLW7l89Aj0)}MeDG6$0C>`E~a|?nzZxy?C5M {Yx6u^`?Nd&h3@Z@d7X_2 z&HB21`|^2trxLoDedYFJV{5e~aCq2b>05wy?foVJ{1NTY>kgzfhA$Yen3xzmuQVEE z6fwJb+a>MuATKQ>CA@i?WxO6tI5(+s7)-ot0V}w`qmG--tvkrYcgoHYSB*8vs7>XL zbt2ogwe>pr!D(>S!XxP{)k!Y-SDq$I^qVSnpDE^L$t&nk=eRk!UPG_GKg4vJNi0l! z%#RtWcJ3xdf2`q{4T@G;APwebJO<_oRzy>8Q~7HQd(by?zJ(7$4cj+55+5Tiifmz@ z%7kP#$U7cO6qu}SJ-5HcBsEJm5~3PQ9C_zUGdM0;s~k|@&f_fKQv9+|S7UoA4oJw^ zB3YEs=+mT8Q8TFeiFL3kStqr=#3c9A%T%_+Ih(i5X0<7T;FF;mN5YjQvNm!;s*gRg zwCvs%-^Ob5E55q9HVX9e_H1XRW12$B x$Hhn#c TC!lTYoa_VN*e=&9U^{x3jUn``zJ6xxV?{v%mXm5^5JK@G?NCK9 zK3j~M3pNFz2Y6XIPT9ZX3w4Z8(qRCr9eIUdMGM>b8<>CznlP7 IZ8>N-*wOj?@Be_3I~$ zJc~h#=Z7i0q3zX{i^5fVVsQ5Z4dg{o0y?8r&8G#bE+*|h3)LXo6>Oe)Gx@3cws8yp zur3v%mh!HDlQK}Ny6Aw!xLP&3|Hfdf{wG-!)|4RVdIT*~1nL}M)Gx1bo)yh^f}Cx; z*YJ8fZZV3#a~Wf&b^M?ucM5&dU!!m5C^JSRKUb6K?D$crThUt^Yb+UW2pL9F3?B&s z%crmm0+;oVtlSnQ9Z@!(y2`6{hdk@EQ j z=HN>u=!viFzF^f)3MV`nEe=`IJ<8=QZ)AWxiM#^Rg>URU;j_|L1DPk7i`BrfiMXog z8>*mW`7-F(Lj+5Dq75Nm-^zmY<+jL@sb>1X-F(3g6=`C$OXU#XLWcA>0QGiPH~UNS zDmZvjHI pZJf&UZR0%~KFCn00nJB2!XCrK4-^S*>qj1t87s3|nfy_1#@X%l7vesU zF|$c0<@`(@b<@2{zf+Ie* #3DBcB@g6WF0Z#>mM`PmyjR z5c;5Rm}XGcht;6M6!^V^eaaE*cP=_@$o|KwjZ{l(nL|g^+w>RQ2!87`z|N?(O*|9o z>i~no1b%kwn$0s^t$`OEN9N@iYP@CEmgBXaa0+IpLsxKTq;8?c9-Zj$T9*s6yMmLg zd{sbxW@&;^JqgqdfPPC`0TOZ*h>WEs2qHEIKBOXiEoFlVe)Hz_xw5k=p5IE`0s}*8 z98rzRV#uQ9OfQ4#Y%l8AY%jyuEQ)wM1^J=z;#a|ZpNC7Q+WzeU`rvBP6aw5$_(0*9 z2hRCGz7mh blv&YX kuO}O z{kt-JlHsGrjZj* tB^S`Hxd% z1PO{6T+|poJSx;En9HmPDq)ummr!vk8iVOSbi76SJm5;BF0G53{bbXn#5Vfev(9!5 zGpG3?we%}c*2wKuqajKD6Qq3C;7uVhjE@?q&+i{ >Cj)q^u$8j(o-_!6#q7f+nL)Z)#qJh38Iq ze3sXYMzpb&$??#>E_9(2A_DAHVp8Aa5ibRL2U`ey>6w4=+Qz3 ^zmh>Kp<$#Taaszn2rotYvBmV7 z#%UWCr+ltDMmVBMOh-@>O9hNCQ&-kAWC@PYrPnhA-mgE_XNlDDwCjQ$s*=0QMfg`> z2d#mX$;Si-a`u+klkeWwB1<=`&d&zcGTZF6<03~#>Oq-a+l$wB;j+OJUfyv0MWoyn zJ#VRmTG ?q}7|3*RXWig#z+|voO5agG^1b8Zt8TvX-?E3Kr z2JUM)P(Tgrg@Gipv&m(a3zX!enYyqvY1cQH>3s}-yk ?1>~NAU2hIO}pkih&1+s z@Q|V*S w$490}OwFzwuYWE__EnNSb&yTp OPUR-uzBK$Z> 0?fZ z%YA20eZ%Ot9!p74I$zHu#ELiceWuIfZX6C7*DN^IUrBs#IgUw}iK1CWQx`1dM|&(K zaS}*QX+AAM>8B=3-65IK!$KXPBT0!%whKOcFxBS9-%6Gr$lBq!uD_>dIQrmKrq_LW zT-;pwd(JNBn=guD4e@aCs~G9yIL}VMt|`Srv3>YjeQghyH#y3~&~-`Zk >v$tF}E@O*uNJffv&`B {(~*b#XjkM}mZ)=?^b6AhmkLDh=^N~S-e0r{s^c}PB?js9RF%W=!o zRYuWmb!(#`grMOD_d#@;p22|z1Q!+zg40a(CxHAS)+|U>{DEdlMOn`%ZSxDE5dnOn zhb?*G=QWktDohl+XJA-uc~TZfIv>GSr|$Dp@%#y!pFs1D^=1r_@_m*hvNq`jR8vWo zR54#mluEl!J@A?k%Mr9`?r3AE;%y~Q|6DXrzTu0h^iO+PwI!nq3o{%U;FkF-RH+az z1fNw|uH=gmj|Odvcd_lAXh9}c7`mqqo5)B=8GRG#Yt@}PCg? Z5h&$uNM!BnK?CqDTa6LkcAFsXF+9IyPJkf|8n|8L5vFK&oMEaQ= z#8DX29N?@HAZFX^(yH>!%T4QZfNWXIr+e<|b{z;!+lPi1L4g~>iL 6=U(}Vwa)fxKiv&cCr~-LgY?N*K4`q6C9xE#fcP}u8c{U;0^9MJd+1i%u3@wSI z N-Zo+~o4Gd0Ii ucua&sP(*E2JVkLyWR{#0aw;NzvtmUK_TtY~*3J zEY3U3jKr_>bIKpP>`z-@rSx)(gfAIB^Edcfuc~TLHBQj**m_HS$TdCiNA0e&{RB@x zcMRW{k_dUzAwj6Bzi1*U&e=%l+I5Sr1`lFu<4URI03Rjw!AJ;l81RBbyFDico~n25 zU^udebg%lSK3SnqL2B}*es*%uauro`lwqQSaDqU{Q9Op|5LqAjVel%DQov=>k^M`S z!I(hm+7SCDPhV+U>gAm$K3jK0N=G;V;1O(y;=`IuN7B~D32ft}r|xbCcGSI9g-IN+ z>0rl^K1n*qj;kl+P<~s&2p{<*nML&r^84c;sV;1HjNrEYE-@M$#IX@YYG}6SSD+|T zenCY%q8oF0pBCHRJA|m367KORZv~Lx33EGn6kZa~t7<}WQq0Oqq=ck<3dOVfJrOwb z_crO#N8r_VK8z^XwA}X(@#)Wc#l?ZRu SkpD`AUX2rhC&q8Vja!bf-%(Xp?E&RWMKK7Tmi2P72VIN{7`*o z#|=;?XMZNDp5{aJW$_kdB|1Ev@lkgiG<3h$rA|*hJ=L+gK^G{cXskBm5!vL(jp`p( z>!$?$=pErt!I!(^v)Y!^KC_7)CDP_YOHdYxS??0_#iNS2#y0x-k*C)k{y#rK_k1sw z4(!Q%V2faI@C3IqJt()n Acq~_X8voR{UZ3^ozV>e0DuGg-An(|?c6nb z*E!uFei^0v3v)Y}{+qEI!MtDL#@J0Twlz|Au(i8!h5xMNU?d{<%}~sSIm16Q|6%X% zFatZgn^Acet;Q0TtqDV$z|gq2hW;#VFD&&hqeiw4;D3Xge2J%(f@KVX!EfflP55P8 z5#~&O!<`*r!hOF9{=J1^h(E$jJvv}At1wUW|8FIwjK8_AyY;;5<8BQ7DyYlfVgKRr z?(*E#gZj-AuleulPNRY{zYPC@y*=IPMcys`-S6}LW~t-+SC-qa_1$H;EB*VMC0FiWS#E`ZmE{p{ T?qXn*10Rq8tFL1A&A RXT`v{ZY7JNVd&wzgWU}A5q=xFcY#Hjd2hW2&=>Ni>I zkH}I-U?89*5Fj9=|0DxAI54=|+T X@CEW(+Fv6U#Db8U1 z5HBU{$lY|N3)L~#jf)w$tqrE+jm@}rgFfyosKXK1>2&paKb0m@*ep~l2|OuNWZa=> zuLz=@u6m>|d&jfVtR~ItnB!>5Hs}nMTT6cJq_lz!i$Ly h+JsPyg!7zySf-u z9h8Wj<^)%B%$#JZ{J9kQ8ISFgSy4m3p?|)Lr1dRNym~|p$SZCpj?&eA(Bw44CYg4t zx>O%?7t2ygKejy!nGPs$q)qxNL`juD( ;Pg!b$Dwc?Ad$grL+?9^p7bIrQa znW!REW-+FML&(8e{js9pzKqsRVSd00STw6J=080zeLV$y`R6Qxu>|rIihM= UZzD%B#v&uCKVe; zLIF*Srduf-$U=eeaa3cbE7_X4E=HmK zvP`kz$f`?gow|!Vy*^e6_QR!XI-E`n;9*C% RY<^j!c|Jl&JOFhS+HrAR37O z^`iIu()Y}5$}{3d{UU{@g@=6`;Uze`%m0M^mE)f-*g><)7kP6*@S6)z|KS1`Cue)x zcPBI_j>!izy*(uqJ)nmKo&hwn{?KW}%nWSYlM8Gm )$VO93uF(%* z#mj #JxA`5n{yPD}Uj%OUj@C{Vrl!t+#yCN%vA867 zAfP}sARw&&hxRvw`FE_#*0W#X#0fda{Qhcq;A=FtfshDir98wit%o+3lVQE6gi_R! z(wtJ7W6;Ye_62#v$pYJJj_fDt5njT%1YR0P@5^^vuZ^*Rk1D73jZaqbH>1xT9UCWv z_Kh2_*OzG?3p@)|&(Bsmr(-K8<{sm|-H(qOcKTHVtvf1O3w#*>zpjbgqlf#B4T0Lc z(X}IYHNG@2kG%r!6ZPgNclQ&*JjA`Do_34YQ$)xhOTX6T6IOwNo2^8y%CNABj;8qs zQ;jogfv*LtwN^8J-pjm%8)lCm{bs!H!se^oedgv8EuLx1?yr~+R%{o-jx_ncX&hTE z-px+$750XEpDi#UduVpfZ>@}7GqPMZrayKp*&XG@tZ@jLKJ!l eL=z>EB8(JXTe@8Z1=RoJ57#WY5LDx<>Wf1li?z*HqfueexSM1x3E-T2AZE zGsqp9vt=Lkbh&w|@Gh5YPl@7>Zd|w0v+qgE1Mi&ZQE!%XtK;BlNG%8xxzT91cV>4S z^q+gW^_iL=G&rFA$x+XmanKtBxL0R5$y;sd^>cb@SnA6|?0&og+ +rN}L*)6J)TBy=LIyE!!rRh!6Y2ReW?ZmCAsu`zwy>-RKwAHe2eVFm~ zfoIj92z9*a(5i7r ^|q{kremWI?7Kf3uiZoAR{BH z?4!1>$us9}L0K @EQNs URB)6zROF?2Jwcl`B}~L~1xMG8 zF0IZIN)y`b+#6mBIFzXLddXd@DKvrvKZVw>8;fi#{ca_=eD;H=wxsRaEFwtFW~oHW zkrE6IBtoJKgE6_S+Yuv?%Uq#ER>zuw7PM64%`}N$^p>$YTn4kZ5}!O|a>MDm?M?E; zpbFWoRb=fNEii1MON!~*&0uTVX0FwFkt3#wMUe1W!DiGIrAH&tB#efBb8Sf}KmkBq z5wuP8Yl#v)DM^n?Gk_<#TZS65ilDELeHL|9^~U{D{{2%hu!yL_Yyw&@g{!zm?S|pL zw}(v`8rzSIk?ctKBvf&+405 j~y0&D {0 zB5v14E9Fk1T!j+x6}ku|g8Z+UTC^m+Fm#+nDA;Go61F!jOc7 E;wM^|6hC #Ce?`k7!#^l1c(7a<(kb1VCH5;dPfwKuCu~5 zh*$aRLy)l)qk
cf?`Xs7Zm=eE-)EUqa=^>IH5y>`&g>ETkSUl?b zf{^>`LmhT(5fmI?fGL281P%-t@NI!UJbM?WU0POs1l|qnO44ggPSrcTv?k7vF{j+t z5}GxXKFl#ORF{|{w4Q$e20+WC6pf7{9?=}Fq|*vDE~Ya%4={onYeeb9GfD{~NMTY5 zC(bs9VGedoq}?55Vh*0ih65zz3Bw^n7(rpLI#Ru ^;nL3}=02aD=Dw74&9vS?lJmA|JHQ1Y-K-QVWhu-cU9APdg zky?3UWvu(FwOC (tR5JRxrYB5K1jrm$lFf3br|q7N(4;(OkMqJ6?k1OX6HBZ&_gA)mR-z_jDY z!T~HHL^QVwZm@}2-!ZjFqf)g<=V;< =lju;e% zySF5HGbhuLK6pYB8ySaj=&FN+@`a?14ZlB;5t1mfFl_xUHuJ`P&(wD{z$bCd>^I;< z%B2p`1q27+Dgfq#4AHNW4@{U`jwP9#SLj`Qpq%|Ad5EghS ;D-On3(E5%yf2!1%fh+VghLcc?Dby3DUQ+DylS^ z^mst1Rr+>k_(DnUR=8lke#C}3v?z=pWdm3G)}iyXMYql&Td!CJ-v}ppA{B-j;>@W8 z#amEVOu5c2+o2QYKbWg(hznDZ-iW3gS5Fj~nCpJWba+Mpg5ouMDN2m5fEMT?EGDIp zh^xihz7^|!CAkaDf4~NauWdzB7SaHd+&`vkL!B9Xn?z6`h~N|AWro_05Ze4Ig6Xj> zH(1;m0VR0?z5R6xRRl=^O2~sGFi}Tg^yxm%L9PQg(togDE&5IRMI&6Gv=|!sX}fR? z{1Di2YhvfSy5t}OM9=IYrtvR9u0m+!d{Q6IHCb#Je!{1r&Z0)EDl?%e1Djw6TZbkp zzm#@$T7>S51DArJ(l1MvA;27d>my g5wSfJzz zii@ciVGQ}R9}o)kK>wNs1V D7cN;8RU*8t#mxcEvx4V1wO+&hUmij2EJTL>E<>O|qsL;UClo<@2D>2TeH~PZpx7 z(S+C%eiyiIBipbfsFE8YR{>| Z|`@Zfy7 K%(w)&~7>>UUm$8Ea-xwtcHsbSvYH)_(3uVeeNQZ2L=BN(qvU zz&k9GON-iIXKyQeeYG!z#OJf>9uTW>JPhyuusvd94%x$%OE44idl?(YD#qyhmlxKR z#u*N%Ku~RaGb*b>h2yCt?E_2S9G6VHZ&KnNBhdRSNyro=+D9ab1}3aRMQv&|$rEYT zMydoxp--JdMO94GR1zOK87L{8xs5;c6c|hLW{MP0xS&l|b-2uc_caaiMBanriy4xr zTrktZRD6DWL;^IB-fYxWlx}< pZ81k|6p>u1_H26@-_Zuq zf{03?f`6-IVN|;6piy`sYa=Zdn87Lup8Mv%Y87On2G=9V#8TZH3fi|tYDBWZ!m4RZ zWD6mwz|H!lz_RL@NFV*YZ%x_P{5nH;h>JlpE0<2Cy%Z8DG)A- uScNd?tVrYH?lz^aSDQEO4N)F|}nW^u$nS8!%2lA7? znF(J7ZI)S#82_C (DQzSh7I$rbSL;$1qr*WlyXy+#qSNH+l zkZx$yp-DACZ4hLY7gx*-$CB*yewa8d