From 75946d9d73807454a1b85b1705c1b954fb720416 Mon Sep 17 00:00:00 2001 From: Gahow Wang Date: Mon, 20 Jul 2026 17:36:02 +0800 Subject: [PATCH] experiment: add workload regime taxonomy --- ...ntier-workload-regime-taxonomy-20260720.md | 160 ++++++++ .research/ongoing.md | 20 +- AGENTS.md | 14 +- .../materialize_workload_regimes.py | 376 ++++++++++++++++++ .../mock_workload_regime_boundary.png | Bin 0 -> 197027 bytes .../plot_mock_boundary.py | 73 ++++ tests/test_materialize_workload_regimes.py | 84 ++++ 7 files changed, 713 insertions(+), 14 deletions(-) create mode 100644 .research/experiments/frontier-workload-regime-taxonomy-20260720.md create mode 100644 runs/frontier-workload-regime-taxonomy-v0/materialize_workload_regimes.py create mode 100644 runs/frontier-workload-regime-taxonomy-v0/mock_workload_regime_boundary.png create mode 100644 runs/frontier-workload-regime-taxonomy-v0/plot_mock_boundary.py create mode 100644 tests/test_materialize_workload_regimes.py diff --git a/.research/experiments/frontier-workload-regime-taxonomy-20260720.md b/.research/experiments/frontier-workload-regime-taxonomy-20260720.md new file mode 100644 index 0000000..6bb6eeb --- /dev/null +++ b/.research/experiments/frontier-workload-regime-taxonomy-20260720.md @@ -0,0 +1,160 @@ +# Frontier workload-regime taxonomy + +- Date: 2026-07-20 +- Status: proposed; awaiting review before workload generation or GPU runs +- Scope: explain when Frontier preserves the real-system config ranking, rather than merely comparing Fixed with Trace + +## Claim under test + +Frontier reliability is controlled by three quantities: + +1. the latency-model residual between simulator and real execution; +2. the closed-loop gain from timing to scheduler state (batch, MoE routing, CUDA-graph bucket, MNS occupancy, admission/KV pressure); +3. the real decision margin between configurations. + +For a config pair `a,b`, define + +```text +D_real(a,b) = log L_real(a) - log L_real(b) +delta(a,b) = [log L_sim(a)-log L_real(a)] + - [log L_sim(b)-log L_real(b)] +slack(a,b) = sign(D_real) * [D_real + delta] +``` + +`slack < 0` means the simulator reverses the real pairwise ordering. The primary hypothesis is that reversals occur when simulator and real execution land on different sides of a scheduler-state knee, or when the real decision margin is too small to absorb the differential residual. `Fixed` and `Trace` are not themselves the causal classes. + +## Existing evidence motivating the experiment + +- Q30 Trace-PD preserves all six objective winners, but many pairwise residuals oppose the real winner. Its success is therefore often margin protection, not zero residual. +- Q235 Trace-PD preserves TTFT/TPOT winners but misses E2E p90 by 6.2%; Trace is not universally safe. +- Q30/Q235 Fixed-PD decode objectives show negative minimum signed slack and 13--37% regret. +- In Q30 low-load Fixed-PD, Frontier's batch-1 TP ordering is correct, while the closed-loop simulator increases TP4's effective batch and changes the MoE cost enough to reverse the ordering. This identifies a concrete state knee, but does not yet establish a general rule. + +## Workload families + +All comparisons use the same request multiset where applicable, the same total observation window, and the same normalized offered decode load + +```text +rho = request_rate * E[output_tokens] / measured_reference_decode_capacity. +``` + +This avoids equating equal request rates with equal load. + +| ID | Shape / request lengths | Arrival process | Prefix/session state | Isolated effect | +|---|---|---|---|---| +| W0 | short fixed `2048 -> 128` | uniform | off | known low-residence failure anchor | +| W1 | trace-mean fixed ISL/OSL | uniform | off | homogeneous baseline | +| W2 | trace-mean fixed ISL/OSL | trace timestamps | off | arrival burst only | +| W3 | exact trace ISL/OSL multiset | uniform | off | length heterogeneity only | +| W4 | exact trace ISL/OSL multiset | trace timestamps | off | length + burst | +| W5 | exact trace prompts/ISL/OSL | uniform | exact prefix/session identity | prefix state without burst | +| W6 | exact trace prompts/ISL/OSL | trace timestamps | exact prefix/session identity | full production trace | + +Prefix is intentionally a nested factor: enabling a synthetic prefix graph on fixed identical requests would introduce a different workload rather than isolate production prefix reuse. Therefore this is not presented as a full `2^3` factorial. + +## Load sweep and expected patterns + +Simulator discovery sweep: `rho in {0.05, 0.25, 0.50, 0.90, 1.20}`. The points mean deep low load, light batching, moderate batching, capacity knee, and overload; their request rates are derived independently for every workload family. + +| Pattern | Observable state | Prediction for Frontier | +|---|---|---| +| P1 singleton-linear | real and sim stay below the first batch/graph knee | works if the batch-1 operator ordering is correct | +| P2 knee-straddling | real and sim occupy opposite sides of a batch/MoE/graph/MNS knee | fails systematically; Fixed-PD is the current example | +| P3 same-side batched | both systems cross the same knee and remain below admission pressure | works if batch-conditioned operator ordering is correct | +| P4 capacity/admission aligned | both systems are governed by the same capacity bottleneck | TTFT/config winner may work despite large absolute error; E2E/MNS can remain fragile | +| P5 heterogeneity-smoothed | broad lengths reduce coherent threshold occupancy at matched `rho` | may work; this is a hypothesis, not an established explanation | +| P6 burst-sensitive | same request multiset, but transient queue/MNS occupancy differs | mean ranking may work while TTFT/E2E tail ranking fails | +| P7 prefix-state-sensitive | hit/eviction and reused-token distributions differ | TTFT ranking fails unless prefix-state transitions are modeled; decode TPOT may remain stable | +| P8 decision-boundary | real config margin is comparable to run variance/residual | fragile; an exact winner match is not reliable evidence | + +## Hypotheses and distinguishing tests + +### H1: state-regime hypothesis (primary) + +I believe config-ranking failures occur when the latency residual moves a workload across a scheduler-state knee, because the residual is then amplified into a different batch/resource trajectory. I will verify this by checking whether signed-slack zero crossings co-locate with measured real/simulator state-knee crossings. + +### H2: heterogeneity-smoothing hypothesis + +I believe length heterogeneity can reduce coherent threshold amplification, because requests reach scheduler boundaries at dispersed times. I will verify it with W1 vs W3 and W2 vs W4 at matched `rho`, requiring a smaller real/sim state-distribution gap rather than merely a correct winner. + +### H3: bottleneck/margin-protection alternative + +Trace success may instead be explained entirely by a large real decision margin or a shared capacity bottleneck. This hypothesis wins over H2 if W3/W4 do not reduce state-distribution error after matching load and margin, while ranking correctness remains predicted by margin alone. + +### H4: burst and prefix are independent failure channels + +I believe arrival bursts primarily affect waiting/admission and tail TTFT/E2E, whereas prefix mismatch primarily affects prefill/TTFT state. I will verify this with W1/W2, W3/W4, and W3/W5 paired comparisons. + +## Configuration and model scope + +Discovery uses Qwen30B because its 12-cell `TP x MNS` surface already has simulator and real anchors: + +- TP: `{1, 2, 4}` +- MNS: `{8, 32, 64, 128}` +- objectives: mean/p90 TTFT, TPOT, E2E + +Qwen235B is a held-out confirmation, not pooled into discovery: + +- existing four feasible TP/MNS configurations; +- only the workload/load patterns that discriminate H1--H4 after Q30 converges. + +## Measurements + +End-to-end: + +- completed/failed requests and achieved request/token rate; +- TTFT, TPOT, E2E mean/p50/p90/p95; +- config regret, pairwise agreement, signed decision slack; +- run-to-run winner stability. + +Closed-loop state: + +- prefill/decode batch-size histograms and time-weighted batch; +- Running/Waiting distributions and admission delay; +- MNS active-token occupancy and KV/context pressure; +- CUDA-graph bucket residency and fallback frequency; +- prefix hit/reused-token/eviction distributions for W5/W6. + +## Decision rules + +A workload/load region is: + +- **reliable** if regret is at most 5%, pairwise agreement is at least 0.8 at two adjacent load points, and the winner is stable across confirmation trials; +- **fragile** if regret is at most 5% but the real margin overlaps run uncertainty, or a small rate/timing perturbation changes the winner; +- **failed** if regret exceeds 5% or a decision-critical pair has negative signed slack; +- **mechanistically explained by H1** only if the ranking transition co-locates with an observed state-regime transition. Correlation with the Fixed/Trace label is insufficient. + +H2 is supported only if the heterogeneous member of a matched pair reduces state-distribution error and shifts the failure boundary in repeated trials. A correct winner alone does not support smoothing. + +## Execution plan after review + +1. Materialize W0--W6 with one manifest recording request multiset, arrival timestamps, prefix identity, rate contract, and hashes. +2. Run the simulator sweep across `rho` and the Q30 surface; emit a per-stage state ledger. +3. Select real-machine pilot points only around the predicted knees plus one safe-side control. Use guard configs `TP1/MNS64`, `TP4/MNS8`, and `TP4/MNS64`; add `TP2/MNS32` only if the transition is not bracketed. +4. Use only `dash1`, `dash2`, `dash3`, and `dash4`, each verified as an 8×H20 host. `dash0` is excluded from probing, synchronization, and execution. Pin one independent experiment group to each host so at most four groups run in parallel; do not split one trial across hosts. +5. Run one pilot trial per selected point. Confirm only hypothesis-discriminating points with three fresh-server trials and rotated order. +6. Apply the resulting classifier unchanged to the Q235 held-out cases. + +Provisional four-way allocation after the simulator identifies the discriminating points: + +| Host | Experiment group | Primary contrast | +|---|---|---| +| dash1 | homogeneous controls | W0/W1 across safe side and first knee | +| dash2 | arrival effect | W1 vs W2 and W3 vs W4 | +| dash3 | length heterogeneity | W1 vs W3 and W2 vs W4 | +| dash4 | prefix/full trace | W3 vs W5 and W4 vs W6 | + +The groups are logical queues, not permanent ownership: if a host probe fails, that host is excluded and its group waits or moves to another permitted idle host. Cross-host latency values are not pooled until a common canary config verifies that host effects are within run uncertainty. + +No GPU run is authorized by this card yet. The review decision is whether the workload decomposition and decision rules are sufficient to implement the materializer and launch Phase 1. + +## Expected figure + +The accompanying mock figure is schematic, not data. Panel A shows the state knee that real and simulator trajectories may cross at different loads. Panel B shows the corresponding minimum signed decision slack; a negative value denotes a ranking reversal. The claim is supported only if measured zero crossings and state knees align across workload families. + +## Risks and controls + +- Equal `rho` does not guarantee equal prefill pressure; report both prefill and decode offered work and stratify if necessary. +- Full-trace overload can collapse all configs to similarly poor latency. Such points identify a capacity-limited region but cannot validate fine-grained ranking. +- MNS ties and censored/failed requests can create false winners; exclude invalid cells before calculating regret and report the exclusion. +- One trace cannot establish generality. The initial result is a mechanism boundary for this trace/model/hardware, followed by held-out Q235 validation. diff --git a/.research/ongoing.md b/.research/ongoing.md index dcc6521..46c89b4 100644 --- a/.research/ongoing.md +++ b/.research/ongoing.md @@ -5,14 +5,18 @@ > **2026-07-19 update:** Qwen235 Fixed-PD 的错误排序在 exact real state composition 下已经翻正,主因是 simulator closed-loop batch state,而不是 collective。Qwen30 Fixed-PD 的 56--58% TTFT regret 也已定位:Frontier 将 decode service time 高估 4--8×,使 TP4 的 modeled concurrency 越过 MNS admission cap并产生虚假排队;去掉该等待后 Frontier 与真机都判定 TP4 topology 更快。详见 [`experiments/qwen30-fixed-pd-ttft-admission-diagnosis-20260719.md`](experiments/qwen30-fixed-pd-ttft-admission-diagnosis-20260719.md)。 > > **2026-07-20 update:** 对全部 14 个 frozen case surface(70 个 case×objective)做了统一的 margin-vs-residual 分解与方向化机制普查([`experiments/frontier-split-rootcause-s0-20260720.md`](experiments/frontier-split-rootcause-s0-20260720.md))。三个要点:(1) 「residual 超过 margin」是失败的必要条件但远非充分——good/bad 分裂不能用无方向误差量解释;(2) 23 个 material failure 的 winner-deciding pair 中 21 个落在 TP 轴或 mixed(其余 2 个是 6.2% regret 的边缘 mns-axis case),trace 面的 TP 反序为零;A1 measured collective 把 Qwen235 两个 prefill-only 面的 TP 反序清零(trace-PO p90 regret 21.2%→0.3%)却对 Fixed-PD 完全无效——prefill 路径的 TP 差异化误差源是 collective profile(可修),decode 耦合的 TP 差异化误差是当前所有 material failure 的载体;(3) 「Fixed-PD 失败因为高压」被否证:失败 Fixed-PD 的真机 in-flight(14.05)低于全对的 Trace-PD(38.69),且低压 Fixed-PD 同样失败、失败 objective 随负载切换。另有次要缺陷:14 个 winner 错位来自 simulator 对 MNS 逐位不敏感的精确 tie。 +> +> **2026-07-20 root-cause update:** Q30 低压 Fixed-PD 的 exact stage ledger 关闭了最后一个未解释的 material failure。相同 batch=1 state 下 Frontier full predictor 给 TP4 `18.3515 ms/step`、TP1 `19.3506 ms/step`,方向正确;但 per-GPU 固定到达率使 cluster arrival 随 TP 增长,叠加 decode residence 高估后,TP4 在 simulator 内自激到 time-weighted batch `3.0437`(96.13% decode 时间 batch≥3),own-state step 变为 `28.1712 ms`。其中相对 batch=1 的 `+9.8197 ms` 有 `+8.9297 ms` 来自 batch-conditioned MoE,collective 仅 `+0.0121 ms`。因此 Fixed-PD 的根因不是“固定 workload”或“高压力”本身,而是 **execution-time residual 进入离散事件时钟后改变 future scheduler state;该 state 再通过 MoE/profile/graph 或 MNS admission 非线性放大,形成 action-dependent signed residual 并穿过 decision margin**。Q30 低压是平滑 state-feedback,Q30 高压是跨 MNS cap 的 threshold amplification,Q235 是 composition drift;三者为同一闭环机制族。 +> +> **2026-07-20 load-audit update:** Trace-PD overload 不是 Fixed/Trace good-bad 分裂的统一解释。旧 Q30 Trace-PD decode offered/observed-peak throughput≈`1.00×`、peak Running/Waiting=`47/0`;降到 `0.10 req/s/GPU` 后 TTFT `245.95/685.51 → 228.14/835.38 ms`(mean/p90,不出现 tail collapse),TPOT `13.18/15.39 → 7.91/8.90 ms`。旧 Q235 则是 `3.44×` 明确过载、peak=`116/3`;降到 `0.035 req/s/GPU` 后 TTFT `1141.54/2616.69 → 478.14/1347.75 ms`,TPOT `61.89/78.62 → 24.00/28.49 ms`。旧 surface 仍有 `417×/32.6×` mean-TTFT spread,否定“所有配置一样差”。八 case baseline 与 claim boundary 见 [`experiments/frontier-eightcase-load-audit-20260720.md`](experiments/frontier-eightcase-load-audit-20260720.md)。 ## 一眼看懂 - **Topic / problem:** LLM serving 的自动、低成本配置调优(AITuner)。当前主线问题:用 simulator 给部署配置(并行度、批量上限等)排序,什么时候可信?需要补多少真机证据?算上这些成本还划算吗? - **Central claim:** simulator 要能帮助配置调优,必须先满足 scheduler transition 的 liveness/coverage,再满足「配置相关残差小于真机 decision margin」;前者决定 capacity 是否有定义,后者决定排序是否正确。(ID: C0) - **当前结论:** 早先 35 个 trace stall 不是 Frontier scheduler liveness failure:adapter 为不满 16-token 的 prefix block 错误生成了 cache identity,Frontier 又没有 fail-fast。修正为完整 block、使用真实 graph buckets/KV blocks 和 `piecewise`/`KERNEL_ONLY` profile 后,Qwen30 Trace-PD 的全部 12 个 cell 完成 129/129 request,Frontier 对 TTFT/TPOT/E2E 的 6 个 argmin 均与三次 fresh-server 真机一致;但绝对 latency 仍高估 4--511×。这只证明一个 MoE Trace-PD surface 的 selection fidelity,不能外推到 prefill-only、fixed workload 或 235B。 -- **最大 uncertainty / risk:** trace 面成功的原因未判——是 decode 耦合的 TP 差异化误差在 trace 状态分布下真的变小,还是只是被宽 TP margin 掩盖。这决定「sim 剪枝可信域」的边界怎么画,也决定加压 trace 是否会失败。 -- **下一项 critical action:** 判别两个失败机制假设(离散阈值转换 vs 闭环 state 漂移):先做零 GPU 的 sim-only jitter 反事实与 Q30 低压 Fixed-PD TPOT 反转分量定位,再按结果决定 dash1–4 上的加压 Trace-PD / jittered Fixed-PD 真机判别面。 +- **最大 uncertainty / risk:** 根因已收敛,且 overload 已被排除为统一解释,但可信域边界仍未画清:trace 面的 heterogeneity 是否让 closed-loop state residual 变小,还是当前 success 主要由 capacity/MNS margin 保护?两个降载点只建立 reference-config latency baseline,不能证明新负载下全 surface 仍选对。 +- **下一项 critical action:** 不再做无锚点的 jitter 猜测;保持 request shape 不变,在预测的 MoE/MNS knee 两侧做小规模 rate sweep,并用少量真机 state/batch anchor 验证 `λR(B)` fixed point。成功标准是同时预测 state-regime、排名与 knee,而不只是某个点的 regret。 - **停止条件:** T1 出 verdict 且成本账本建立后:pass 且摊销论证成立 → 转向「sim 剪枝 + 真机终选」的 hybrid 机制设计;fail → 转入失败机制归因;两条路都无 insight 增量 → 收敛写作。 ## 核心概念 @@ -39,7 +43,7 @@ - **Hypothesis(机制,active):** 误差机制是 action-conditioned residual——执行状态的转移(并行拓扑、kernel family、graph mode、batch 组成)使按算子 profile 的组合预测跨配置不可复合;残差大于 margin 时排序失败。(ID: H2;supported,已细化) - **Supporting:** 三个 TP 档的端到端校准系数为 0.72/0.47/0.35,残差确实随配置剧烈变化;235B 的批量上限交互预测错误但被 2× margin 容忍;30B prefill-only 在低负载近似对齐、饱和后按 TP 反向放大,最终 τ-b=−1。 - **细化(2026-07-20 统一普查):** 决策相关的残差分量集中在 TP 轴且由 decode 状态耦合产生——prefill-only 面的绝对 scale 仅 0.96–1.37× 且 measured collective 即可清除其 TP 反序,而含 decode 的面 scale 4.3–130×、全部 material failure 都由 TP/mixed pair 决定。「residual>margin」只是必要条件;失败还需要残差对准 winner-deciding pair。 - - **下一步:** 判别两个 competing 机制假设——离散阈值转换(admission cap/profile cliff 把均匀高估转成差异化误差;打破 fixed workload 的同步性应恢复排序)vs 闭环 state 漂移(打破同步性也救不了)。最便宜路径:sim-only jitter 反事实 + Q30 低压 Fixed-PD TPOT 反转的分量定位(唯一无机制解释的 material failure)。 + - **机制 verdict(2026-07-20):** closed-loop state drift 是根因,离散阈值是其放大器而非 competing explanation。Q30 低压 exact ledger 显示同 state 的 TP 方向正确,但 TP4 被模拟 residence 反馈推到 batch 3--4,MoE step 增长后反序;Q30 高压进一步跨过 MNS admission cap;Q235 换成 exact real composition 后排序翻正。下一步从“找根因”转为测量 state-regime/knee 的可信边界。 - **Subclaim:** 成本论证只有在摊销前提下成立。(ID: C3) - **Hypothesis(active):** 每个 model×硬件×runtime 的一次性对齐成本,摊销到大配置面、频繁重调(引擎版本 churn 的频率证据见 claim map)或禁止在线实验的场景后,低于重复真机调优。(ID: H3;untested——分母已实测,分子未入账) - **下一步:** 建 cost ledger(见「下一步」)。 @@ -48,7 +52,7 @@ - **Question:** 生产 trace 忠实回放(prefix 打开、原始到达时间与会话结构)下,best-effort Frontier 能否满足 low-regret gate? - **为什么现在做:** 这是 H1 的判决实验;所有已完成的机制分解都在人工 workload 上,不能替代这个 verdict。 -- **当前状态:** Trace-PD 的 graph-aligned surface 已通过 selection gate,但绝对 latency 不通过 calibration。现在以不共享结果的 Fixed-PD、Trace-P、Fixed-P surface 检验它的泛化边界。 +- **当前状态:** Trace-PD 的 graph-aligned surface 已通过原负载 selection gate,但绝对 latency 不通过 calibration;Fixed-PD 的 failure 已定位为 closed-loop state drift。两个降载 Trace-PD anchor 已通过完成率/admission/backlog gate,下一步需要 full surface rate sweep 才能检验 ranking 是否跨 load regime 保持。 - **Result → decision:** 若其它 surface 排序失败,保留 Trace-PD success 为条件化 envelope,并按 fixed/trace/prefill/decode 的差异定位 state composition;若都通过,才扩大到 Q235 或寻找 simulator 已解决范围之外的新问题。 - **Experiment card:** [`../runs/frontier-fidelity-envelope-v1/experiment-card.md`](../runs/frontier-fidelity-envelope-v1/experiment-card.md) @@ -56,19 +60,19 @@ - **E1(否证「prefill-only 是充分 easy condition」,支持 H2):** 30B BF16、去掉 decode/prefix/混合 batch 后,真机最优是 TP4(8 vs 7 req/s/GPU),simulator 却把 TP4 排最差(6 vs 8):top set 无交集,regret 12.5%,τ-b=−1。产物:`../runs/frontier-phase-factorial-v0/results/final/`(dash0,12.07 H20-GPUh)。 - **E2(统一机制普查:material failure 全部由 decode 耦合的 TP 差异化误差决定,支持 H2 细化):** 对 14 个 frozen surface、70 个 case×objective 的方向化分解显示:23 个 material failure 中 21 个由 TP/mixed pair 决定(仅 2 个 6.2% 边缘 mns-axis case)、trace 面 TP 反序为零;measured collective(A1)把 Qwen235 两个 prefill-only 面的 TP 反序清零(trace-PO p90 regret 21.2%→0.3%)但对 Fixed-PD 的 33% 无效;「residual>margin」仅为失败的必要条件。产物:[`../runs/frontier-split-rootcause-v0/results/`](../runs/frontier-split-rootcause-v0/results/decomposition.md)(实验 card:[`experiments/frontier-split-rootcause-s0-20260720.md`](experiments/frontier-split-rootcause-s0-20260720.md))。 -- **E3(selection 与 calibration 分开):** 用完整 block projection、`piecewise` 和 graph-compatible KERNEL_ONLY profile 后,Qwen30 Trace-PD 的 12/12 sim cells 完成,6 个 mean/p90 latency objective 的 argmin 都与真机一致;但 sim/real latency ratio 仍为 4--511×。产物:[`../runs/frontier-fidelity-envelope-v1/graph-piecewise-experiment-card.md`](../runs/frontier-fidelity-envelope-v1/graph-piecewise-experiment-card.md)。 +- **E3(closed-loop state 是 Fixed-PD 根因,而非同 state predictor 反序):** Q30 低压相同 batch=1 state 下 TP4 比 TP1 快约 1.00 ms/step,但 TP4 own state 的 time-weighted batch=3.0437,使 step 增加 9.8197 ms(其中 MoE +8.9297 ms)并反序;Q235 用 exact real composition 重放也把 TP8−TP4 从错向 −20.07 ms 翻为正确 +10.90 ms。Q30 高压再由 MNS cap 将同族 state/residence 误差放大成约 27 s 排队。产物:[`experiments/frontier-split-rootcause-s1-20260720.md`](experiments/frontier-split-rootcause-s1-20260720.md)。 ## 下一步(最多 3 项) -- [ ] **完成 Qwen30 remaining matrix(direct progress):** Fixed-PD、Trace-P、Fixed-P 分别冻结 Frontier/真机 12-cell surface;P-only 的 TPOT 一律为 N/A。 +- [ ] **画可信域边界:** 固定 request shape,在预测的 MoE/MNS knee 两侧做最小 rate sweep;只在判别点补真机 batch/state anchor,验证 `B≈min(MNS, λR(B))` 是否同时解释 state 与 ranking。 - [ ] **Q235 portability gate:** 先验证 vLLM0.20 TP4/TP8 FP8 runtime 和 deadc4a profile provenance,再决定是否允许其 Fixed-P sweep。 - [ ] **建 cost ledger:** parent H3;完成标准 = 每 case 一行(profiling GPU-h、补丁工时、校准探测、sim CPU-h),与已实测的真机调优成本同表,随每个 case 更新。 ## Blocker 或 anomaly -- **下一启动已准备:** dash0 8×H20 当前空闲;graph-compatible attention/linear/MoE/router kernel-only profile 会先在一 GPU smoke,成功后以 3 张 GPU 并行完成 attention shards。完整 replay 仍为 CPU-only。 +- **当前运行状态:** 八 case load audit 的新增真机 run 已完成;未启动 full-surface rate sweep,避免把两个 single-config anchor 外推成 ranking claim。自 2026-07-20 起,本任务只允许使用 `dash1`--`dash4`(每台 8×H20、最多四组并行);`dash0` 保留给其他同事,不做 probe、同步或运行。 - **Anomaly(保留):** 235B pilot 中 simulator 把 10/34 个 anchor 误判为不可行——false-infeasible 是 H1 的主要威胁模式,T1 分析时须单独报告。 -- **勘误(已固定):** 统一平台为 dash0-only,早期 dash1 出处是文档错误;fixed-shape pilot 的主 SLO(TPOT 40ms)无判别力,150ms 是事后明示的敏感性分析,不得写成盲选的 primary。 +- **平台边界(已更新):** 历史结果仍来自其各自 card 记录的平台,不改写 provenance;后续实验平台切换为 `dash1`--`dash4`。跨主机比较前必须跑相同 canary 并量化 host effect。fixed-shape pilot 的主 SLO(TPOT 40ms)无判别力,150ms 是事后明示的敏感性分析,不得写成盲选的 primary。 ## Related work diff --git a/AGENTS.md b/AGENTS.md index ce6749e..7560246 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,10 +1,11 @@ # Project Operating Notes -## Remote experiment host +## Remote experiment hosts -- Default experiment machine: `dash0`. -- Hardware expectation: 8 NVIDIA H20 GPUs. -- SSH check: use `ssh dash0` before scheduling or debugging remote runs. +- Experiment machines: `dash1`, `dash2`, `dash3`, and `dash4`. +- Do not use or probe `dash0`; it is reserved for other users. +- Hardware expectation: 8 NVIDIA H20 GPUs per host. +- Before scheduling, probe only `dash1`--`dash4` and confirm all eight GPUs are idle and healthy. - Remote project path: `/home/admin/cpfs/wjh/aituner/aituner`. - If remote downloads are slow or fail, start the proxy from the remote `wjh` home directory with `./auto_proxy.sh`, then run downloads in a shell where @@ -13,7 +14,8 @@ ## Local/remote sync workflow -- Treat this local repository and the `dash0` repository as the same project checkout. +- Treat this local repository and the `dash1`--`dash4` repositories as the same project checkout. - Synchronize code through Git using `commit`, `push`, and `pull`. -- For remote experiments, commit local changes, push to `origin`, then pull on `dash0` in `/home/admin/cpfs/wjh/aituner/aituner` before running. +- For remote experiments, commit local changes, push to `origin`, then pull on each assigned host in `/home/admin/cpfs/wjh/aituner/aituner` before running. +- Up to four independent 8-GPU experiment groups may run in parallel, one group per host; pin every job explicitly to one of `dash1`--`dash4`. - Do not ask for the remote host or project path again unless the user explicitly changes them. diff --git a/runs/frontier-workload-regime-taxonomy-v0/materialize_workload_regimes.py b/runs/frontier-workload-regime-taxonomy-v0/materialize_workload_regimes.py new file mode 100644 index 0000000..13fcb11 --- /dev/null +++ b/runs/frontier-workload-regime-taxonomy-v0/materialize_workload_regimes.py @@ -0,0 +1,376 @@ +#!/usr/bin/env python3 +"""Materialize controlled Qwen30 workload families from one exact trace cohort.""" + +from __future__ import annotations + +import argparse +import copy +import csv +import hashlib +import json +import math +from dataclasses import dataclass +from pathlib import Path +from typing import Any, Iterable + + +FIELDS = ( + "arrived_at", + "num_prefill_tokens", + "num_decode_tokens", + "session_id", + "block_hash_ids", +) + + +@dataclass(frozen=True) +class Family: + name: str + shape: str + arrival: str + prefix: bool + + +FAMILIES = ( + Family("w0-short-fixed-uniform-none", "short-fixed", "uniform", False), + Family("w1-mean-fixed-uniform-none", "mean-fixed", "uniform", False), + Family("w2-mean-fixed-trace-none", "mean-fixed", "trace", False), + Family("w3-heterogeneous-uniform-none", "heterogeneous", "uniform", False), + Family("w4-heterogeneous-trace-none", "heterogeneous", "trace", False), + Family("w5-heterogeneous-uniform-prefix", "heterogeneous", "uniform", True), + Family("w6-heterogeneous-trace-prefix", "heterogeneous", "trace", True), +) + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser() + parser.add_argument("--source-public", type=Path, required=True) + parser.add_argument("--source-private", type=Path, required=True) + parser.add_argument("--model", type=Path, required=True) + parser.add_argument("--output-root", type=Path, required=True) + parser.add_argument( + "--reference-decode-tokens-per-second", type=float, default=3064.0 + ) + parser.add_argument( + "--rho", type=float, action="append", default=None, + help="Normalized decode offered load; repeat for multiple levels.", + ) + parser.add_argument("--requests", type=int) + return parser.parse_args() + + +def sha256(path: Path) -> str: + digest = hashlib.sha256() + with path.open("rb") as source: + for chunk in iter(lambda: source.read(1 << 20), b""): + digest.update(chunk) + return digest.hexdigest() + + +def vector_sha256(rows: Iterable[dict[str, Any]]) -> str: + digest = hashlib.sha256() + for row in rows: + digest.update( + json.dumps( + [ + row["source_index"], + row["arrived_at"], + row["input_length"], + row["output_length"], + row["session_id"], + row["runtime_block_ids"], + ], + separators=(",", ":"), + ).encode() + ) + digest.update(b"\n") + return digest.hexdigest() + + +def load_source(public_path: Path, private_path: Path) -> list[dict[str, Any]]: + with public_path.open(newline="") as source: + public_rows = list(csv.DictReader(source)) + private_rows = [json.loads(line) for line in private_path.open() if line.strip()] + if not public_rows or len(public_rows) != len(private_rows): + raise ValueError("source public/private request count mismatch") + + rows = [] + for index, (public, private) in enumerate( + zip(public_rows, private_rows, strict=True) + ): + input_length = int(public["num_prefill_tokens"]) + output_length = int(public["num_decode_tokens"]) + if input_length != int(private["input_length"]): + raise ValueError(f"source input-length drift at row {index}") + if output_length != int(private["output_length"]): + raise ValueError(f"source output-length drift at row {index}") + runtime_ids = [ + int(value) for value in public["block_hash_ids"].split("|") if value + ] + if len(runtime_ids) != input_length // 16: + raise ValueError(f"incomplete prefix-block projection at row {index}") + rows.append( + { + "source_index": int(private["source_index"]), + "source_arrived_at": float(public["arrived_at"]), + "input_length": input_length, + "output_length": output_length, + "session_id": int(private["session_id"]), + "runtime_block_ids": runtime_ids, + "body": copy.deepcopy(private["body"]), + } + ) + if any( + right["source_arrived_at"] < left["source_arrived_at"] + for left, right in zip(rows, rows[1:]) + ): + raise ValueError("source arrival order drift") + return rows + + +def arrivals_for( + source_rows: list[dict[str, Any]], arrival: str, target_rate: float +) -> list[float]: + if target_rate <= 0 or not math.isfinite(target_rate): + raise ValueError("target request rate must be finite and positive") + if arrival == "uniform": + return [index / target_rate for index in range(len(source_rows))] + if arrival != "trace": + raise ValueError(f"unknown arrival family: {arrival}") + if len(source_rows) < 2: + raise ValueError("trace arrivals require at least two requests") + first = source_rows[0]["source_arrived_at"] + relative = [row["source_arrived_at"] - first for row in source_rows] + if relative[-1] <= 0: + raise ValueError("trace arrival window must be positive") + source_rate = (len(relative) - 1) / relative[-1] + scale = source_rate / target_rate + return [value * scale for value in relative] + + +def non_special_token_ids(model: Path, requests: int) -> list[int]: + from transformers import AutoTokenizer + + tokenizer = AutoTokenizer.from_pretrained(model, trust_remote_code=True) + special = set(tokenizer.all_special_ids) + candidates = [token for token in range(tokenizer.vocab_size) if token not in special] + if len(candidates) < requests + 1: + raise ValueError("tokenizer lacks enough non-special token IDs") + return candidates[: requests + 1] + + +def build_family_rows( + source_rows: list[dict[str, Any]], + family: Family, + *, + target_rate: float, + fixed_token_ids: list[int], +) -> list[dict[str, Any]]: + arrivals = arrivals_for(source_rows, family.arrival, target_rate) + mean_input = round(sum(row["input_length"] for row in source_rows) / len(source_rows)) + mean_output = round(sum(row["output_length"] for row in source_rows) / len(source_rows)) + if family.shape == "short-fixed": + fixed_shape = (2048, 128) + elif family.shape == "mean-fixed": + fixed_shape = (mean_input, mean_output) + elif family.shape == "heterogeneous": + fixed_shape = None + else: + raise ValueError(f"unknown shape family: {family.shape}") + + rows = [] + for index, (source, arrived_at) in enumerate( + zip(source_rows, arrivals, strict=True) + ): + if fixed_shape is None: + input_length = source["input_length"] + output_length = source["output_length"] + body = copy.deepcopy(source["body"]) + body.update( + { + "min_tokens": output_length, + "max_tokens": output_length, + "ignore_eos": True, + } + ) + else: + input_length, output_length = fixed_shape + body = copy.deepcopy(source["body"]) + body.update( + { + "prompt": [ + fixed_token_ids[index + 1], + *([fixed_token_ids[0]] * (input_length - 1)), + ], + "min_tokens": output_length, + "max_tokens": output_length, + "ignore_eos": True, + } + ) + if input_length + output_length > 40960: + raise ValueError(f"shape exceeds model limit at row {index}") + rows.append( + { + "source_index": source["source_index"], + "arrived_at": arrived_at, + "input_length": input_length, + "output_length": output_length, + "session_id": source["session_id"] if family.prefix else index, + "runtime_block_ids": ( + list(source["runtime_block_ids"]) if family.prefix else [] + ), + "body": body, + } + ) + return rows + + +def write_case( + root: Path, + rows: list[dict[str, Any]], + *, + family: Family, + rho: float, + target_rate: float, + reference_capacity: float, + source_public: Path, + source_private: Path, +) -> dict[str, Any]: + public_root = root / "public" + private_root = root / "private" + public_root.mkdir(parents=True, exist_ok=True) + private_root.mkdir(parents=True, exist_ok=True) + public_path = public_root / "frontier.csv" + private_path = private_root / "real_requests.jsonl" + + with public_path.open("w", newline="") as output: + writer = csv.DictWriter(output, fieldnames=FIELDS, lineterminator="\n") + writer.writeheader() + for row in rows: + writer.writerow( + { + "arrived_at": f"{row['arrived_at']:.12f}", + "num_prefill_tokens": row["input_length"], + "num_decode_tokens": row["output_length"], + "session_id": row["session_id"], + "block_hash_ids": "|".join( + str(value) for value in row["runtime_block_ids"] + ), + } + ) + with private_path.open("w") as output: + for row in rows: + output.write(json.dumps(row, separators=(",", ":")) + "\n") + + input_lengths = [row["input_length"] for row in rows] + output_lengths = [row["output_length"] for row in rows] + arrivals = [row["arrived_at"] for row in rows] + empirical_rate = (len(rows) - 1) / (arrivals[-1] - arrivals[0]) + manifest = { + "schema": "frontier-workload-regime-v1", + "family": family.name, + "shape_contract": family.shape, + "arrival_contract": family.arrival, + "prefix_caching": family.prefix, + "requests": len(rows), + "rho": rho, + "reference_decode_tokens_per_second": reference_capacity, + "global_offered_request_rate": target_rate, + "empirical_interarrival_rate": empirical_rate, + "decode_offered_tokens_per_second": target_rate + * sum(output_lengths) + / len(output_lengths), + "input_tokens": { + "mean": sum(input_lengths) / len(input_lengths), + "min": min(input_lengths), + "max": max(input_lengths), + }, + "output_tokens": { + "mean": sum(output_lengths) / len(output_lengths), + "min": min(output_lengths), + "max": max(output_lengths), + }, + "first_arrival_s": arrivals[0], + "last_arrival_s": arrivals[-1], + "source_public": str(source_public.resolve()), + "source_public_sha256": sha256(source_public), + "source_private": str(source_private.resolve()), + "source_private_sha256": sha256(source_private), + "public_csv": str(public_path.resolve()), + "public_csv_sha256": sha256(public_path), + "private_jsonl": str(private_path.resolve()), + "private_jsonl_sha256": sha256(private_path), + "row_vector_sha256": vector_sha256(rows), + } + manifest_path = public_root / "manifest.json" + manifest_path.write_text(json.dumps(manifest, indent=2, sort_keys=True) + "\n") + return manifest + + +def main() -> None: + args = parse_args() + rhos = args.rho or [0.05, 0.25, 0.50, 0.90, 1.20] + if any(not math.isfinite(rho) or rho <= 0 for rho in rhos): + raise ValueError("rho values must be finite and positive") + if args.reference_decode_tokens_per_second <= 0: + raise ValueError("reference decode capacity must be positive") + + source_rows = load_source(args.source_public, args.source_private) + if args.requests is not None: + if args.requests < 2 or args.requests > len(source_rows): + raise ValueError("requests must be between 2 and the source cohort size") + source_rows = source_rows[: args.requests] + fixed_token_ids = non_special_token_ids(args.model, len(source_rows)) + + cases = [] + for family in FAMILIES: + if family.shape == "short-fixed": + mean_output = 128.0 + elif family.shape == "mean-fixed": + mean_output = round( + sum(row["output_length"] for row in source_rows) / len(source_rows) + ) + else: + mean_output = sum(row["output_length"] for row in source_rows) / len( + source_rows + ) + for rho in rhos: + target_rate = ( + rho * args.reference_decode_tokens_per_second / mean_output + ) + rows = build_family_rows( + source_rows, + family, + target_rate=target_rate, + fixed_token_ids=fixed_token_ids, + ) + rho_label = f"rho{rho:.2f}".replace(".", "p") + root = args.output_root / family.name / rho_label + cases.append( + write_case( + root, + rows, + family=family, + rho=rho, + target_rate=target_rate, + reference_capacity=args.reference_decode_tokens_per_second, + source_public=args.source_public, + source_private=args.source_private, + ) + ) + + experiment_manifest = { + "schema": "frontier-workload-regime-suite-v1", + "reference_decode_tokens_per_second": args.reference_decode_tokens_per_second, + "rhos": rhos, + "families": [family.__dict__ for family in FAMILIES], + "cases": cases, + } + args.output_root.mkdir(parents=True, exist_ok=True) + output = args.output_root / "manifest.json" + output.write_text(json.dumps(experiment_manifest, indent=2, sort_keys=True) + "\n") + print(output) + + +if __name__ == "__main__": + main() diff --git a/runs/frontier-workload-regime-taxonomy-v0/mock_workload_regime_boundary.png b/runs/frontier-workload-regime-taxonomy-v0/mock_workload_regime_boundary.png new file mode 100644 index 0000000000000000000000000000000000000000..a624e7c7c198c20535fbcffac6b2ba93beb9d171 GIT binary patch literal 197027 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 p+=i~fQt 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 <6P?Zq#khc}#ADxBUnQF)DaWJ|0Rk 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 I*CKtH>JIYP(c%Q|t4YxGV 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

ksWMmZzzCvf)igCx8uYzsmUC+* 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ℜ00cSakJ4+14`S*M~VjR#-Z zgyg_}FRqQ-KI@|=fbb)YkB@&9^ArFDL2O){Kd|>O24W5cMMWu45Q$%J5CL?%kS0Eq zaxT%8SXm+8WP((MgwzFZFtVC;^t6t@}uq^6eWq6eM<>8?B_F)Fe&OFbnlxKP*3Gg4Tfgl}&&yS>O!0{ZK52n_ue2gP{m} zXkMltXdn*0b8=CtPkQ_H8fyxYKnzO35f89G5F|XcqoYo&uB$uPGz2c9a+)U+)uYtc zS`W1#CV0x+O|bHzpt>?srQn5buzPV#C}-RP&xpqbJ$>WMovu2uNfJds=4pg)*(ZE> zy8wZVCu-JMcWkF<7}wg*B0*~`apVG*E(;HIPm{{kT$$8YVYxq+FWws;%}iEVd+DOA zou`PL>EcaehcqC3qgz56H%%(RM0*ZXy(JNT!~ome_;e8%%L1_)03m@QCdw*$sntv5 z87W*j_dhpYt93pc>@>=Iv)wmc3pqDwmi;w%4#IRnJZI;EXi{EzP00#Y{(p#maOS*G zn6xi>kKdWZC^oPIT_nqo`luize^T=)y}Fi_m3c7^wqzRC5W z*r&s?R80_4_0$>?cHIlND)D_Ik`hb`dI)Y}q^eu}4PPGb@CUy+V?* zM<_FUXJ)+D-S_vt@9`eT>-heGe4ppJ@B8z)KG$_#=XqXJwx-uo{|YNP6}hIB+&@T}LYDm3L(FoNyKEV%{MH+9Yg_WMc?|=HoNbQ71_bINfXcmq>^%Rb9(|q%4mfwX~E}=Q`i*D3X$o_pd%+DCnpD! zr6R+Y^Jw*By_72xyM`1m_l1058wd)gWUef;eEEe{Rd3*7&kX(gH~tG!+GN_s1nTnK z!f#$6kX^RWR+PoeHel52{;=p4b`zkh8&uW3%4#o|Q0q<(dtQX)o$1|oh{yJ)c+X^b zOSg{nj(k~5up)OR*YqM28MAofL#N}@c1PLedrSeE(SMV~DK!Ldl<2q(Q-`D}pf{38cKPbqE&e`_&*NY}kpGs570dj_LdZG7TvNs78lp{nC zOW|m?{JoHKQWUkZ6RH~W=(3QUF($Hg+V%rC9^MJw{`={J%>z65bFDX-^;LPUJpaq# zs5#tA;c%1+*h==NPsH2t^>uaZf~>5Ptr?V%Qam}9J0X&DTDeY9)}5$_Vx zF&M2zA%-rWHvS3R@Ufq@oRG>UUwSIXCCXYKHA8)iR_|5gmJeOjxb<1oOz=`Ij*bnzZI%vKD>q;C+J*s z<%;;UQRKz;EcqQ$`-t`xPl-KqVdMp2DF@PsVAdOPR*9QvWTA3#XmImN#A~%zpWU1 ze^gHj(zt;U6&15^N!3%9eDB29zRRKtwwyOJ<(nve5J}(qCbgz^8vSnWWFHqG+5rBS z;ZnuvO_puOzt;R(xfxWb86JHin5mI%oiNE`#Aaf*jU))i4k(dW(BQ97{tZcO0yXB_ zK`>-qf$Sg{EvsYX3K<%XP!Q#Eq#`}>bc<(?*k@vZC3&)0E0VwRH|Jk^uCV!jH)Fg^ z>uJtklXhm*#+roA6gw$cKZb72=(9VPM95}bJ4EStsX+(>lR={NUbD&h`CKO|R*mL# zq2>kJ#n9QW)5<%o^C6|1E@bC_1pIqIGy+@PRO=5(mPh^KmcDI0G4bBUV`Vy)&N0z4 z!l-|0^j4KIjdqyLG31?mRqNjL{Z0uI9RijmJ-Ji7~0~xq5Dh4~iPKe7GY{OS8BzjG5>Lx~u zS~^!@$TX}wUg>E_|E1c7fz!iDzsO$4yPA(7k+#-8kL$Y`=Yjn`R4rnbFr)A zrNGHCLrvrZe}Hoj5%B_9r3I|F3&nSnY#N#sm^}T*$Hzqi*x*62RIQ3P5qGYcJC^8H({+pmBo4Eu2Gv+9)DMa!6hQ^oF%wE+(}IHNBa7dC7# zZDCjRb~8IBuUu8XjUG&RHJalxw`Ve15zWwQXLNf1>6z%R7qPR`Q3XlRUb9S?N=WcirMjJLmAvHv9Am`bNHz2#v|^N(+J(-fZ_hbZV=&=uAje0c z;0g=1j9|bn_Dg!6KGQ>h)!Y`c>H9T*T9nqtY)ZWNzxbb{WDa5V`m6Gr|0XM|Mw?H0 zz-=ST=m7->lKCX!TOR^zb#E$Xa^}br+lvo$6@KL-brBTnPWIu<1RYT-DMonaI)IHoXW;-ez(qjoNzt$mJ$tyvy4VH zV8MYaHF(L?Mh{1#aN2!kz<+3=pY>aTu1w4wCd2;<1haep( zE-vmPp`^G7B~19I6wgGKraOnJPh2%F_icA+L2<5q?&2x>W@=yWYwFw+souBMkbwMv z`fB5AB*7$Aj>Sac!OUicRV=w2f2ZN=fOp^5&teusRhWkGAHQmFsHT5{%`1a=v441& z`TjixHFY1K#c6(KCNA{#Hnz43kP@fBh+Eh+`Ab~tB*Tydi5{usG?q7h!)w|dZ!qK z=?*gp0dm_jk2I*Xym*OBA-w%E1zNpT|7!WFI4W%669huDiN^=Stv$OLM4TC256ab= z-FDNnt(QdTe06e>p8ec6k{9}R5X1@&cWMPV9e;m)1Kx(8K_~)N{LrR?p~vcrBTyi= zJ}HHv5i;Ry7Ws zH*S=FnL#2F{2)bvhsdCHUqwSks}%Vf6}CJ`()=^D4F&3S(L`t>k#LQooO1mLdryMEchmNrS?F%;0PTGQq+61URFR)vL2M1-nRcu zqW8hf2TV3H`bt5ae-;HEudb5ezj^ zWdN6G<%21V7A3V10a934>$*K06QP~?E2JwyRh_*>IR?Qpa3yiQVz1d|^7sorE9)Rq zbtAJfA>u*|?k&>4b@c1>m`OGHHcsIn(SMWGCZUvyn!pV6o=; z&X&wS8;Xce_P+}pZ7F)+RWS>2KNJeeHFTpnS6wNoHlLNDHE1rUlAc(?U(vK5|I6PwI8giO+p1i(+;B zd3Nam;Jw+uSb#LOF6anjET=%b z(F8C(0wKW|73r*ek4E1?^R`%SO##;}lZW2NJ3Jg5neD7XBmNn7kMHkA?lCPM%-wh2 z7n64)(&fI0?mX9UOd7j(OdSz3uIy+bf1PN^1KZTww~We;ki97P8cF(p{Gk_N{*qR! z-Zw}ohn}AoCv-PVG*RhsWuA_1>v7pQWQrEe--$Te6tGGHPdXGK)&uy0fI#3#gs6oe z0SU66s2Q|3fmK^Wm&v89x`HE>oyIAG*@uNVYepjP;#`X}McF8|pM7;OLUUbt@036P zd6<_#B}1MJ9fUV-pq&4#ch7<)AM+L$1%~m+3j-xb0@gk+QxujiC3v{~%h0@4T-rHR z%u=r#0n2_w6%=V+Dd+T49fpN9QYWT9*-LVEt{q)}uOeW*&cPrnt3@M6FChyM{?lQZ zH7{~tmvGU8la1~&12KO{L_|Aa9~)4q8N+pb{_@2adWYoX3MGd1k8YN+0oIatO~k8# z3T|o4VbAX4@yn4^kFS3ApZjC2G%?_chnHfAAnuUV-#e@zk@-t#bV*qEVg8ANxdd4% zpUk|OB+@Rq^b2P%!))6_D|ti*SO{H6TNdlF@+>ZWc4m|Jh?Q(T>eGKD=5gDxQ-_)&!@%0ilgknx-OGC%68;4>NiZ8cMT784$x-pg#+ z!ue93_W|$3Hm~wtS7RF6(_}ubR)S^K&&A?5G8q!jx<(5y;v$U(Xr zuxK*+``B@<6z41V`k@<4!Ne2^<})aoM0&tk5IYq>U}um-8HP-tDehH`PQg$;@wa#1 z_)bp~8+b#$0t*B5z_NOJbUG!5;XzDZug63H4S2;qeE-pPGdq92VDoIbaf&mKJ85mp@SP+eXU$o!t6T$p4xez-k&=Y zedo);+Qs|d8RGcOK44w;>CIFeYj@!derXF{SQ)D#|K;_U54psZ6-$(qnHd){k+*iO zh8QlnBq1uHd~6jN@d61VoYX!L%AUZyS2*7Gf!B8pHaqeXP^olm%~hxbN2Ko z+Kz{VEwcb`;`SMi+J>Nd<}8hgczZgeF|<)sk{A2cvq;>-aMu)_BHyGBGp%%5f7LH6 z#jWXwWPbYoblBI%^=!M)F*RhO;YulV#L#8Atd<&vc>1H5L#A^o05JGBgc(+@Eey_@ z4!zp&veTp>?E?y-{`(P-@dX&c_v^yn~ISae)ey zKbp)QW!+FW&b)TWJiB(xQv#LCU9BAKf^ft>N>N%rUm)4JLYsair^<8Ls#?p zG5^c-UTNb$>Y~biH`Y%LDy^5C{16gW9uKTQBLt?YK(DO&B-O}G2TeTV9VG6u+<$6> zzqU5^FvkSS=yk)YrowH)ScZoN`TReMKA#+3!-$tB&L>b^w`f%|p#s)lv{$N&hZ#Nf z`RGD4B$C~psEC+{or&#K*o{sj=^isJAajK)6*UqgWjv@TU#jM|BDM6NKMq&)J`f_E z7Gxj|@;!`?*x#Rt%;;Z)zBWGmCeN@XJ}wR!#ff^Uo;CYygUI(KxFF#+Ilq|^UP;5O7(Q|pbG9|FT zb1x49C>%2kr)a#CAd{jiuHwqhr|)EV_UuK5!>aXFJByE6VBj0~uvWA-CCg_HUu% z>}T}t6q?FA%LDnEaUBK^yTGH%%gZaA@h>#tK*o-T`m-`h32l^56VAWFVL+9OiwiRN z5Nhw*fe|Up09EqU;wGPRxfr)v+qL_X5tS)lO zVE^|@nIFr34~ua=!^o(J7WSzsOsEN2M~siVT@za8V5^PUR3kS1l>VS^N9ezV!Z|I`}i7 zJr35ytper%DA#MT2VUR4%psu!QZampekFH=fPKUNJ^yqW-^LXh7!dh_-StA~25I>MMup{hp4H7uh8Zr>+m#{oTUi&L|d+06#AOa z;OX7mKx377rit0!=h-bvbg6Sa=1M9XL@y;OtB9UMFcG@Ir{@o6BqCUOEAb=`#W0YtTxw#ng2@VR7N+7R+(8=v#f#X6C4%l$WCJ9+Z#l;1{a+!|Tx6a?3 z(XEQxZ2KkyJPy6foH5hOSXBD>Qd6j%^)A57Ich^MTbK z849K<4n~$#!zSN^Nt?(CFt}zdg;`U`LffkS`t4%e)~oCor1{C&`|VWlV=HZCd5rEf zywqLbP1M;u$f+@_V*Q)+9P4H-yq;R}Y`ZF@eevO9Ua+F1+L47VFA{>UG3kZ2RFs>* zneBBpl@CefuynP0>-T#~j3fbe24lkNAI7KPAs|B~M?x!*&OgcyGgA4FtKYqQhitjp zBYX415!oQJq5&=2=&Gt)U|>yz0yo|km@HxOX9R;WA91@*bD>sKgJ~$We0aR~kgd;Z z8}*3x*=GKi=S5NvwnUUBModv3ehSu({M334)dFyT4UfZDv1zlZzy@kUJ0P1+~ zU34nHWFWMOcT>9`^(d*`@!C@mSs`2ed!N<(lFXVLlkYcKjjN&`>3)0O(N>(T*;3}) zcWG4`t)MAcM`cMDBD6a)dz^3H&~EDO;EG`ZTmpOQtE#E7 zC$^%lTkPO<8;ShVm-%50t#<`Xw7GgL%*K}WKUZJO&cn0Rmj-%Tqd7YU5r>a|=D~Yw zV4*Y^JMez(y~j2sJ@NRfaj^!}Rlsk_@3D{?XnEa4XKMer@_fmu9^f0D#gnIfnL6Yp zs%)|3vT(%eJbXx!Qv5rKamk@ZnT-IlG@3`(Cj-BsW88G?&JJn!QmJ5;ZunPXns&Z- z7C-g=OO-tIB7m~Gn0zQjD!7e5->CmOMV9ET6Nb$E&90L}yAk5-;nAChCxmHR)Oe&x zx>&`6q42Yto0~4v!JL3~A|nnzz`#djxS_x!6g~;H_mvE-B{(edzN8q9^3BSnxGDF5BK{6?$2@{ho!n-916wq z85HO&3(X@_V6qAD&A_OS9$M~#PbZQNvSj^BvKw|xidXL1!7jLo&nC0(W#m-!=wR%< zX`06E=w(;?Huc-dnb}?nC8lOqw>@9w39SUo+j?aj@z4D9v<_1HC5q(gDoC!5n(S3z zY8x$owmD|g_!tgImxYWVgbadwzYm~45Eu<@*eLkHi*gSKb)J$Ez$yODL*z)+%;i7Y zy8gJuUr&7Z47nHzb-&R|e0Obv_rX;@zP8*nFCrA^&aZ-Np!v=|f>JNZTt{fQq}TO> zmu}+XSCZ<$?l4hN^A$G|asM%}QdB4+k{hi z55%wbE8KR(-2^yx*G#|CLjQV5w_O=QE|3{h&^R8_w`qfV76%0tiR8&X8{{e^C|W^t zD#UMi(H=$vKPB`Rt2~ex8$Uja|d@ zR3t{o6Y2)zUVm4SdWeUI#}*RF88EH>lq_uj-n5$z2Dswe|NhzxYu&Du^j12+&@ia$ zlY#R@4#LTrwO+Y!&W1cC`(!4yJny|Qf~N`s_A0Y}K;iq1`N55K{lLC6yjqHbe}q$5 zf8OVAOxkMo(`OmTeOz1}^_T1C5yw~UqtlB31$_7^jdaZ4${!}Vv*kj*?y#uA&d$yZ z{KeKlQon=*8o-R<6QWQEFAKQnn#&zSW;c=bCg8Ae?-I}&`iz%%+#m+vp#HdtBfK2& zvCTG2qd}{CcJfs)FIr|~OXOJ*I{YYH;>@~irl8EoW2vg-sd%a5NuG)|iEsM?vGEwt z2cF-K9}u^ty0cz6X$=%Xl~86vWE7}%-KM?{ z*#Hxj;ey#Km%ebt543uUUvqtQ2M%4{Qqwe<-D$v|kES_WYnRP{PNc3mz+NKI29_>B zw!2~aRVr6Cg_#f+F4b*!B^dS^4ftDNq@<)$7)8N`&3$jJt#-Wui43wO!&!B8mmqY5 zHw-K6HuvYccmPY90TT+_cg<4KtYedJ&Fr{$yKIMLb@YDvW%piJt>hC~jXe+`LI-ptqh7zprZfLsg{7c5 zc-vp@QjpZZ0zztY@ae;69y@r2=t_u!6Zt`ku{U(-m4Uk{MwFIRFMu+d7Y&q_w7;lN zAsU^DKr@h8^Uw{@g2F?v8X&r@&CO8;QOl?oZMFMzbi_B`O1V@n6(TXT zMh^_dfhE_Ht@LUV%)Am32%z0hOG{W3&si6oxBDaTAYCm~3K%|(8pl#@EM!lqGBjh; zlsmC`B6Q@G@JYcJwq6rB&?}DnyNv{g>A!i{E!@0D6MSMXm1qAH`brNbpBgOa>KI?` z(;#T2=Mek8+~78no>?sN;9@n8Nt}&<)yDpP&Gt$EwZ-@ugUn;}O84sgcz5YG$7il9 z2?Igk-a&zfT*V7$1Dicsx~_a6K>FD*IXtA_TY2g2w^kN2m(5^oUVguM1t<<+fD~a8 z5q6;fAx905SG>&Y-Cpyg2iz)dK+ZxKSZP@@nQuFuI8XXHa+(aMGX5mfBmF*gZvx2d ztTvqvqZOc{X#pt((C+fMjX|FkO+1=lh@B>?&6db!sH%5XppQ^ax{G>b_7K3rg%_$x zXMf9Da5#P+I!@m?r-QWLML+5}J;VR6?W6#Y1N>Q_C^uJNVWkl$GrsLxpTpMdHI^1U zO_T(>ro6X!(o&!I$#IGt>}UHXBwLf~R0FhBx~2`Dm)#05g~`$6w>=}t^R{2 z3?ME@zwGLhl$Pd%2;$eigNhM77^q<4j`#4EiWA@b^7Aqp!A0Neg$zubsj&us_pnam zb}_}uKTArQV!Whk(g)d|e8DyQGd>lMH4h4hhtAKwc|Rii!itqtuHv_Bhg)Y&d3WDZ zD=wWG^KVL@iS!oiG_)jmwDemq{A^|`*>;9tOwF@UiJpV9QRKlu69^4QN)W;;&B@7u z%{VRT^!6Mfp%gTDp)KYIwUbItHf$qAhC5rFcKlw{;6MPQWg&e_HE2juMx!cKG{m=} zTuX7_=GR~GA>$g)XXH+Gq-lG8R5%H;KaEQ}Jaf?XE8c*(!Syn<%Cv#gP>pN&06K|) zN<9HM*w!^BtwM=D>>SIV%{%Qh@MaRNL|m zY!h?3`Q8>Ito#8g1_=+^SDb2r-KMP|5{rNU&vyI%iOC+Ic|c_-eUamFg8?0#ynwn& zV##JDr6Qv5&o&=|5TPr8io$F%eu^Of?q_##*Ce*og9g0Z8^b&la;2YEBM5=1LzlDoCmcdr`eg+D%X} z@+O0ro)~y0nZPJ!(kY|{H?=mfsDBA1qg3JG7e<)za}U)70DNqiB8LCb!>fz8@lg9G zYHNB@162DD?P1)+;pTlW;Dz~GLb|8&FqJACw;n)yTz{L z6Ej}+S34l`l|R{YVa;698oQ6EM-avpI1wtq_D4z+ChsFOtPAB?;F*Z@JQsw9I>qqWS;2}}8(1c3H{J@d34zew_%^eh<8*=+c2EP59H=v_(~ z|3;$s>z>P}KTxKCUZCjHCk)`{^QrE|KaAPf*dE`ci%$JU?1Rw~Z58onZMt(c|FlN( z%mq;!7gqBX*xU=Sx!;7wbBNMptt?!o)(})3<)D7u$fvCV8q>uoD`++IXH5^JeKz86 zbXWYmYST>dLm6P6S>*z&D9h(1 zk}_SW_%ot=SNbvMAfK-I=qmBSRb%jUKL`+|L^i#5zBny~$&%RZ^=eK^VBD#XjjDlBx5 z_8L#y;B2-74j_WaDk>_zY@KQ<&@M!Z%$qhpFM0mmZG+}V@a(J!#|uyZsZ$GmUeQ6l zFMS!S8UH~UfY&bw^IRn^D2MY6kT{arnW z%HO5$e`l1LI#knE9QbHLqx)a|1Ni)_VY@2ag4&~B1&lrvkc!#tGG`X*6t1%ZoX`rC zr4VS9uyAq`{PNf)wXR(i0-D7UZGg#X)xSOgw4zhkkbu(4|MrFae);Ul5r?gTNy`l`+52|v{(ik)wK!g~X$ zXL0)UAM4qYk9~yx@sLZh>T1pJvO_2zhk{@q*q6~sNul6;kMu}jg&@HZXp7>XIy%^{ zTp>Y>q+o{C7b}WjSUvaMye_JmBq%S*{s@rCLc@!%$$!vSkFQhJxK+7EUc@aGfLte& zd?X_&bpF9h|KaAxn3(g(WE}uvfgY=U`4YN1dCXnOnU6wlGFSW=LN;}r5`BaVnpWT% z%(Zahd!k6HgnDBkY6z(|COc-;$|p$Yv2TD-V!KX^77^0w0c#KlIoc)cv?Kq>ny--WQOS;f@4$fLkxpM|_Et zR)lV|hT=i6m90*!;?i6Ge{nZfeDf0}LM8|QCm(1KWW9g?zR%6oRXG0217DEVPcHOk zK?k%08q5Rd?qF1Yj#x);4BS!EKl%9gO0w!&gz^9tAswkqhc_N!U(%(JDn86X@G4KX z#;>}fTy^VLhDY^9&u(D$FCx2v83e`eQ^ncyiSe)ct4tH(u@*>@ZcSu^13AL9wA+}J zMn-!fO&S0fP_UB!IDC_3V=Yj7w)K^Zr#zp*k1qHVL@HcA9Y2dPyuzr!@#uq>Uup4B zZ;Suw8ov1Y`EA1a(E??*P2DCw42_9ON+L#K!@~SQ&S%|t?1T(M{`vFgK1`%~blr~E zh_!&;NKG7UKcfb25OtOEap=Nh)uKr)6`xGlhyqsJaHMQ(b?uKh>bSA@kK7Bgiw6n! zhbMKu5U?iPi>{%8Loo&p#bXs(nS&od_wApwQs&dI{PapqA{a5!;^jrWMs;Pql~`G; zwzm3A{*r!kDWi zncWJGPE0e!#DjpF@Zr*c#Tf{5CRoAyNGOREhJ-^>1@Gfj%K+cNFF~gy)#%k%6d8;) zpNaU{XGe(IXtj=zWj0rat{XMoItM1zc?ZEVOX1udX-ofBgQj-sQ5pfQ3vRtgB#`dOyxx`7; z60P;Zd7sGjwG1aQjgfDfuJ1=u5D{(O`q6kWmt+O8Awyuxz*DNb2J+HOv_($u+@5tQ z1qg1x2UgE@BHypO2>|B*LCR$Czw7`s^}W@Y5ST`_OxYs7(jZ}zS{_O!1wCSxO{ml- zd{-91l6M-OjxR0{b-mlzyPgL$U~}1J1}v~H6?S#|F0NNgHiGi63SsfdTz~q8&&i{D z=R-C>VH4Zt(Q)w7Wt&lYSdv_@B-vUnch4bf(z(tv8k=`+Oua2&7P`4{jOjIGUFtiAkyFUjm>p?w@@#C^(Y`hytw|stJ}>y?aU5Sw0LmGC@CrZ z03xd}ridn{#KWoDGY@puVJg(B`jN8l2n{i&9vP%C)c5kcoN3no@V@GLv6gc@HS1pP zDYM7)rMMXG`7wj%Tu~RFiqvT0=>@rg3?i{6iT}}QX$i~-r zS3}K=riE`o+f?Esa(G?WKuE=a?v6&20;*Rl-9zh%zz6W9V(>AIb9zjPejc=@@-IwF zk;0%jjPGxg^CSiiUAai<*f;2P9m*e_AcMo|FANQ)zc^{Y}}?LKMrY6iJoQIUREq?NB3U&4Se zz7IBU@i`3bsuzo3CIppFenJN;>z*SZVn!{{0VBId9(@+8I#z z^Hec6dW3fu!zmP4NiLV(`O>4jLc?>>=kC!nhf5B6KjV}Jw9Gtx(H_f%pAESt-iq&a z&`k9&>zLIWEQ__5{JkFaK#L_G9G$|}y3ZgR|BYGI6l~QpHVUyZl9#8BkqFgk{M^56 zmaAHH03N0|Y@!vBxU2b~M8#992U)*^dK}GIZOzX%r|S6v^5;077*Xmz3eeBMgyjay z`t)>EN!=C^bWwVtU4RT00x=cpWmp)A<;Z&+fW#G~q)?F3;dpy{pVg#{F6^@qr0wUx zC3Z^A*ZR&^@u;iwA^YbrW#-KGuB%=|Awr(#y54xkEvec|01ffn*0l8$k_WPb7;}G*Cvpk#IKzfbH@jiQqG{KP* z5Aeu%E1r*LKp{b7Y=Aq5!BoII&Hk9#FEyCI8BeiF8b+^@17iM_;0xxo`g?xs6@BvZ zSk^Kcak5_Sde=V@_V(j)gM);9aNK;@odA;7E_UFfqF(M-T3)fe1s+xrZNNpBxf}K86FqnC6<5AV z2gRjgm(q#k4>B5*e^NI>LUkoTIV^}x^Ey0-?}q~)*rK8XSV~3U#?*w2n$k7$)b??} z%q{_%%Qum=v6eU!w{)SFl9&AHRD@x-7PPt?sXaRMxqy|FJSP{oM4juD;j*l|L4Q*{ z$7E*)Fq{*`xQHT4n%{o=m33%;b579jv(Lz)q=4+^(U)+^M+y^?uW8&21ayI?U#OCW z*(QA7@gTWI0TT^B`cm^oze?#Fg@hZcdls1&20a!IU;U>7asNqzWS%BF#%nqU6GWFuEt_G@>s(nRh~7)`D7Wq@DruqU zRYju9H-wfCX5NTZ`pZG{vnWv3<3>kE_be8hZ=ZqKm67#;_i0-Hc5t_N ztQsS9fi}_6M?ydkyv1@?Ht?}dg~;)&hvXgu_wHV%ghy*P{plPe{l7yx7$vSMSt#!6AEs@rhJWqwf%=p1Zce&uO^q=xsDg&c{G@85E27lug z%UVi~Mp@x25cEk{UR6iTGLjHMJVcjW&x3fh9-79PGaoAGtNl>AyEA*Vt z)Ipo$yiT5!v4Cx7iuN6C}+9Sob2w`Ep#5qHys)Q+C zi)U1aeXWk?HId+xf38SdSq|gK0fbs$ZhULFc=ZAAkBy5*_$t27?%ry%Hz)$vuhuCl zj-9`UZB4Qre9QU2w{#nbyWZ5t)TD1qjbvBCueIsmFR2A8t5-CmjMmp#@`+ z5nW)`8XO$FFjPd3IAsBu4#u;=e;~*G~HUCjYa232WbaZ_g-U_wbRvUBKn5EHw-lP1}p?l5^1T=t7|?L zb|-Xg{1$6KT=Vp@80#1>w1xA?!p}Z^`V?5|GD!Q0l^g&9Y4tax?tMh;JCL)tGTXlh zcsN%1%Jsc)w#|D2z)_ZF`713D=I2tbOk$vMw-||gs)JW$q2N6VG#W8anM9ahI)!Z@ z!rYkjBhQ4s+Qy$h{;+NID$E0r*?$TVmwez4peX8v4r_%mWpwD~&Vcd#Ac23*1_0DT z<^)}m&mXHYHvdEq@TyuXbneRWuou*>pDHTkBiZlJ4LY35;4_xTeV)PTe?nWA1R?Ea zHiS0pQqO$~O3E|2{i75Q;410#ReyiB&WQ)Pj`ee6AoEU-1^x@fT%B@qUsNFw_d8NJ zxIt}qX&VQjjlJMRs>^RFqSs&sFm!j+sdzmBGy&cbVjuom%(d)?UGQf)NWzpW8%%yZ z2zW)I?%8{wz`XD~0mQ=%-i#4ttWVDjMt4trIk@z zUoHjl3vh8+3w{!}V*=f}5&o(hev^-VOILwCNr8?&kIWXK=G8%FGa#8c2$)L2i5UUS zfP;$A?VNA3XW|RKS0VH@SvxdvVx|-#umO9af}x>L_BoH7x)Zr1tK`l_FA%}}b(a4!6T z9Ui@+2dK%TF0psEnLoh$%)Uy|nHTl4^Gr45c3}(e*(}!BAx@ffXUW+>k4G7B9*lSG zv=_Jbs`3Un)gn_u7C`iXFjqlg-O`~Ta%S-bbb<@qm04MRC%C6Omw&Ksnvo%Vs_JeW zl;UK7NmcB9@S%ukyO*%wkiG)+mOu+GjeTweVOvDnT_pZj5Z6Z8-w`wvE3t`M+^Ru8o)7hD8r{j%SM`X^@q_@D_EB0dU| z#If&F)=D17!O~PdajcjiLLFQqL_J#i+KvlA1*`e}luVCakpX(n@;khP!;BJ<5OzGo zfz-~HSxD_MFUlqU{?Zen zr0c}D@bMlS9o<*J5CEJ~ZSUJD$u{y(L5n%)kyujtF5YsGN-*=Tn2Bluzl{<5 zw^ABRJtDOD21U7-)W!Q;Tv*J$5}Tb&n|?@iWJI4HUT8S87T_FNYOYYI`_F}wHd9oV zY2Yq`1R?o692eby6gq}Z1PgY~Bk1&w91}%AdTIaDVP)?m90k|Xmf(VfRHMKhg`8jR z;2%ocM(>-4j|pO!Z+!OzPsUOWFU(CISv?xMb%((GTwe79plYdOh_c%Dww#hU($b)# zEOKV{IE;|ppDmdj%}n@Vw-m==C3#8iK}=0P@qZLM)~Dm_{XkoQnO=ya<&u8WM#p0; z7Eq_Q2cJ(@wW-e=j1Jd+lZs7!+kEEClZ^f?e2N0Y<|T5(Y-`b1Cvt;e-VP5JEl78i zFAwMbCrdF9E=StXWZIs8q5J!cc9`_Sm;WA`hJ0)z+S5e7*-G?HXq`qVQmQo&iky*Y z_vWhAdB4kc{~M#mZS_Ggw>a8(R+GK9Mfo7sqY8=Cu>L$0lvpl^1ArDO*SMYV5K?N7f)8!-c2kv4Lhm1lX_ zW58%I%+gb)kv8DfJxwhz*cr9ILL<-Y(YbvEGq8Y&Z2qn{A{rV5RMc``0fk8f;!6VD zh=MypuuTqwzMKb$+ z-c?f~jB5+VYZGXfV|xUCDli0<74V1fQdENgn1tH`iCKF8qV2|HGa{d5o!o5u+jAUO zK`ZG@^V?cDAU0V8o0;cyMMD~l2mT`IhmVzC#_-Ugg2*77zM%*vX!#Z@Se4)_fiAd= zmWpR=lj|bq1N60O(J3vDqg*9FTnV0`z&`Xz?`Lyp;ViRg)Bg?jQaS;Y22r}^&Fe~i z_;2qqk%ujO-s^C9dbaSSBm_+;;xBnS5&<26O{k3pp)njT(z*TG?(Ymsf&hd3mSP+v z0E`P0YVAo_PWKs9Eydr2g8fc&&z{g!#hk)GggnoP2P=*0o79+nr;IN_8OqlsXhUN= zTJ6^QYwy)rv8=RhvGD>9r0L!AAdxfQ9`V$%=rym{*;0SCjgP_Tb`5Jry1ePNh39K4 zGW<>k?w*a|Dt=4(x_FtzJdGG`uQh0rH;&gF?yvS;^KssJ{w+yzA>_)%py(>leChSP zrV+;V!O~Ueo%-LPCE?=c&hIVFLx$0GFj0>M zhF3gT{!1yfNmF7fUT!st!~5vvJ7Mz4fe(taC)YJs&33*ef6%D>hD42F){rOlo;Rt1 zc=u9CXu;^gKCo6+8aZZ#G=a5GK!tkgRMcrM{+! zRw*6dVm1HT?i3nZbn5jII6T!vX{A?XH)0}uKA5s+J?bV1F}1rb=TUw`MPv9m-uOgS zb>@S-=V*pqVm6AE3!RAycb)NmZula(oq6$46**EIDJdx-j4o)TI=2~D+592{2pT35 z3=1;@q;*FukuCo@-lKc;03h5_&Bdy8>xcet;^1(22@k%K|^TB-z_ec znqk2E9$$}O{uok@YuD5(y$=687uy-o6iDj+xLP?TVDgy)qo8mG1zJIbntlWX27xzs zT|g9xrl&7_v{WMs@;(^A8=aU)go2FPx9v$Y#DP-xJ!_Bc?pp|N3Kut<=0*Wj_l#k* z*Kl23X`GHWcX#ELl+J-YMhNgjry*#xAUZSw+NEu7bae{I!Zxm(shc`#6xICa9X4=g0B$Tyh$648UwY62a5U1IfHQGpsyl`?;yt za5lE5ufAFP{YW0Y^|h~d?mXC~IF>nYT71}8a!J{GOczxzKnxTdIMB8U3F(U9OaYAs z38UEktzMXti`X**VYwN)XPe!(em&~TR-(Q31P}C{J}^II8UkiJ{L|FTj9-GG+d1G{ z-us)c)n#2}{Pp!UMHLk}2uMT42E^r~VP$34JwUa9ycpzV0$xY^dXi4SX}112g+Dtt z#{zOf?~?;gWo2d1`)-2D2ADL+h;oDzxpW$guD%GSzo3;+TH-9bW4Geb?PLi0yYJ=S zCj=_%bu?&-o_;UHIC~*7|h53 z1w^n41HO1)zqkH>6>cjC2dgnfv7TS7PH=4g1r?mn6OF8dA?kkJ0tZd0lGhI|eGyEDv5deg>rk&WFD6*WG{P z5oq#Cg!YGX-zt3=ixPBZoqVq}B=*Feb>q;x5CF-%T{x*J z7#KVk!*~A2P6hmzGQ3Yu7JfBKLdDZl>uh5=T6Pv1`A|DbZU0W@g*&WIAE^XJ9WFsN zwaT%s;^0}i00Hbkz(MI?vxtIMnZpsOd}?p_F*gmk`fowHq-ci#0=c=*!kyTGUUnN| z5WL@8sj|Xym{Eh0l9BOU`Pd=4UPsBN_W^|hG0Jb0wz(t<2y}bcT zbU;W1ecYN}$+EE%YiRi}KK7hC6_Ov4HnY`G;>wG0*Tx_3+`RqtXV!3TiSygeA zximcBB}R7_5|a$#n4e$GzN;w!Kj!Aha1kiw`%@j1COTw;Kt&`tGMw|aJH`p++E~w1 zdjVS68`uK3TLQped;87m9vHQW%ST)a1{wmw&4UFA?boTPDP%2x_&2?G;|T#AxY_dw zQ<%yRts+1zu1%Zh`AsPtRoi^Ife+eKDiE$|D9*}$u;^~%RU5^5<{F*779x5BN?$QR zr4eNnpcxCJ<@3~$6XnmyAskR#xD4||UIUL84|tiV9$57}k+mN|Srl+|a z;z|&Wwvo8k_KgIACtuKmN~{^`bVMrn&Y<>!wDgwf5ctv=Z_ReX{egc42h&v((-U!L zah`&uT9T`XFy@`Qv9uLa?Z=O_z!urq-7Ve)hWfv+fqTpCzMw*EF}pdv3leP z!q^+>Wg4=`-xL3s>;(un7wIc< zxgbhM(vM6!#On@Py&CHb^n^@mP!uSt{Ou=Jzi;|#fWUr_XzJcfaF5nl~+m z?ykNTJb&?`>*Du|7cc&gB1$tYa&>uGKMP1WTH?|aCRhK=y|x-jdQfh688hHOs3-1g z<4zuR@vK&S9no*Uu98EGccKqo9=!nSWThuXn42N<+b=w->oUFVY9`=rRF9H1vjCbe zdN2(ih)$4+g0&KV_d|A|b#+c;Ffu&C6jG#`Iotxe)a}>m?D^#8lq5xg<@SRnss+>h zC&k5%G>!eH(qO3?Q&ZYq(c^aTFLu+t0x8x1qUx)|qTHgrN2HMy1?dn$KrBK!r9o*# zN=fOIZUjVW5T#Q}q`O60Lb?QzZUO1~*2}r~xzERcM>*rn?04_I*7{Y7^>jVLs|TiF z>gxn8b3~)z6|&0aPTW#Z{l=}lj8fz_KXb<>}oWJk+OgDC1 zG;hMyD+HQg-28P#{p(%{c>+ zL27n3Hj>>0-^Se`6%~~tn3AI!>-MMKjgF4Wnajm;w7}&8=2L-ybZGCbUZLQ`25E4; zs<6#(6a>EEqMX-?+Q2Wt>y_oqw>OAk2EzDz@y%au7kE;T&xnV*2Nur`>*Krq4Mc~8_2hBE(fCed+OuYk9ExK2Uk2g2&UXF9 zP)od!-*%|{Jo9Mf>Y?*1=_{NMoVc$l4P1Y;jR68)9JiSYZCJ%Fykzc#Lo4`%e6O^SlAJ{XMrm z3&00Vl0B~T>6B$rt0MLvFMu-#g75DDHTOY#D!YoPM*#f7K*dl<9fan3Y92%hA|p!AVL&$c!~0ZR;NW z!SFf#YF7=DIn0a$oWh>Juo!9>4m%#8Uk;M>uDKQ-&FgYa_Ur&8$fj#-eOPU*V4#tG zN%fdOSV*Y8zo9pQ_bL#qkn1+@gepYxvYwtE;w=S2vOcr1H)<;90!ofb;OGb>HHJ@% zOY`%N%l0tdXU%^sDVYZM|KFV`D>e5m`!g5i>p%{y5!&g3{|(uc|C3lP&Ka$tBw# zQuC3~CilvWEs|1G<0mRED))9=J5S1WRpeL3Q<}4#33;nvj*fC(;#?YeK<<^GvB6sg z@s(2-YkzwyVU2*9JGtGbpoi=+O=_$zA=oi7HX53e^e+EdZ67*IT01nE`J{39N2&1X z`|@rvV)7x9^Fh+20Z8THfE4sQ0in_? zTS}*@#kpXwC+>=6UW&3>HLve%RL&BRl97p@n7e7r&^n!BqND$Y!nFlRzI9~ld;8Y8mfFOzhy5I-Rx?e@oebY$dcug9F|CBiK^yF5KXB~t#4%`DX&ITPVw;*2zU^zhz59&k@ zr<9cWBDigBya;v_FeoIatR^q6zI1i zW@fD3cnZu=&|kZD4do5P76a&X!Pz+bpUV&zd}pv+_g;R-hRMJs6ewJuDk<5%3Va8A z5QF9ZOrRxXS1j6d72rrI5d$brv`%2^;W9Jy>sov_3ZC!wQ#R z|GxfCv=vogO8Dn9DEHDo7cfc55cE&qz&3g2W7zGr#EBky^dzKV;V2qS;9r-m%xSqI zy|a17zg9G}6N*1>ku1TF&WBFHyOZhJz(-%A(|?jn?p4ii*k*dU|NAb^SB-<&>S6~~ ztCZh>7!H_`XW4EbnT?z$^&yjNd+~IFh}^-;%T3X=O;6yL(w`!WF+M%Q6+5jTEW*_? zFhU4(%0bL`m}RDkE_>&!vcU8f`cK5`Gc_Xv-D%Pm3kgx5wClP9J}kv;p)iC(A@Lrp zH;Q^*8W

bl`s=apG{p19erjM~^%Y8XM$@$)|~Hn@Z$50M0oU|NcZYXuz_`-Y~-Zf4OhQ8luf{&%*$ z`%*V|-wHNwCHs?q>Pw%)T}Cr1D=YO59LNLa-j!SFv7nJM9Yz z8>UAQVUO3zBTGt)@7u?Ga;>6D15c-?qbyuZZ1zskgRYktcGrv~V%P07yB_ilR{k}i z9Exq-(=rRE2IwVw#^r_s`7r&Jg6YX;Tc6RC_0*N#WaOYwm=*Yz4-_!I$|C&A=f(^R z^TK`Gepmbzjz~Zs>Qq&8koe(2H0>Bm4&?;Ca%~P|eNhBLX+a*+DyM)k1arxNF?PWw zS+Ic9RT9G9>z7-}3tik)1}372N-M7}yL>W&|5T^X0qF*4N})@{1onhtR*7WW z`1)%&t(!+iDtuIc!SG3)QQw(znI-B630q|G=n1f<{)rZ0lke89X*E@!`!PMN>g;s{ zJ4k_#j5(C0XjUsk+SWI6Ua^gHQeMk)k|jgGMDOH@9>VP81+#CJtX5w{pMi|Jp@)16 zU=uQ0PlKF!1ne_2p1r>uuMvW}V$t1-rX28pT$QxAcW>YNw7eA6($Xqxvzn^C0gn5v zHI(4Kn4z?eX0!_5CmW!B(F;!NhERTg;CQr7w!!H%YAC$fTf!uLw^(|GaRT$(bbCAt zPNCr~Mz5iXVslTwGYo^gGX#87mIROmTH7~pTQ<$u{Em>KX$ro^hC=!H_-IyGQ6p)u zlV0biu-OrRGbk9};Zt%Cx`9lZLBp_&zX$}z8B^&ls1w8Tzc+KO!T-`-|4qhMkS%+V z-v!LBDi7>PFQJ5v*GkxEpi27-u0Eh=dr#34zzIVBO;bJePHk*$m-h(nl9=+7VJ?)A zZb^X2eE5er%j7+|y&X@P4@t3?yeIf~0tnG0YA|@;WuXxO@J{rT#z$=}T2x{Vk?H@1 z)&WeF!5kXD#JKxgdj#Vp6i~>JnFwNR0!eW%fOY|A5}b+1l67HlaaoW^HMx-^b*L@*N z2Dw+>sE`oLEOVksmd0#o*_4m^&g~che96FcL+m-DzM&c;@l@=436>JR!fnl@xltCq z%SYU^ADPj%KQ!R3Rx$QtS(~}tQfX5%Pj;`sVVWKZ>WWeE`6&}d>b_ROkV!VLQf)IV6zWw5js#g zfQbjn8!<43rWbhvVNM7zS|Rw}pkvu%-Y4cFU^D`Sw|h%x z_v{a_hDd07Fwh#utJp1dQ;Vg%D5;xZ<1Z!vXsrD!MyNXtO$0R}6VLbp1daq@FB

zdi(b9Sd^0j0(_)H>kb#d3_Bw8Zf86IT!OJ@O z53%F4_6@mj_iU3uaus`yTiFwDFv!24ad9I+3Yd)sfPBCJRvv75{F`S)oSh#b?Htfm zOv|*&3`mI8(gv_AzdE8kA8A%a@aOmWHjf!CksB+6%irz!Khpju(p@I_svccVz7_e4!H3c%MK5PtEC1i!Z{i zFDOsQBwJ=uoAL+WOR{F0T@e$2fs(8PU&Nl7mx#l+L6@8II#Nw}vo@v*XF#TKG722I z9BX;WB_gNG^uNVs!bZa+q%tf6(jv@lK64E1 ziMWaNoR0tagpYztlmL+J@o*(mronqW6EKE+7*OV-8V8MlfOIiAT^Zr(b_eU;x_F1( zx9;%iA}D|pOz-4Q$4}Dq`iz`2{){=tZ3$g_n&atP=RxUb{rikw^OVKrLLM6dP8y*o zMuvSQ7-d402|J|ZE3yR+p9 z*D@cScQ<4YZ;>FWKfuoeB~GoXIb=;BZXyEUT;1N=3q~6J zC=^`1h=gndqPLFZ0W)x|(yVp94?!j2$;pKA3VdRV3}CAe8JVWf z2a#KpQ@2nJR6Q|+BMI$o(Lxaql10IW&AP9dg}?avwc8U+=DnmIL4kh4VsBfqP&W2b z8w|@mc3!81YgJj9cv_c1^@JIMCACZx;RaU9J`D}RXJCONy8_Mx50PgVA6-hxD*dBt&u{IOl z{M-LSuO6+cg=f1kQ}n0zZ@~0J?4A4iBJY!BZ_8LR)p&_4Z)}36dVv=)jS|%*MTw0p z-Tl8fSFU^q^Rv|*dU&Jif0PdKI{d~of4>G?7xUAIxO_O77G}xLGX+2t=|?Wj1(Qw8 zx6)xJO(9_C1wVKcnW*7iXGdKai2(@o*wFB%1D_RWb`%1Y3R+UGdurOJr6_xxS1Bjl zEo1mGkpk3UV>Nrf6GK9w5O#l7(pjCM|7!@klyrB z>xZDp0Wf;h%vVRyml~%{$=7>t`0t2|i~of52W`-V-6MBqhzpYLIr}F@8ZEQ<^Oj8o z8pMBYT%&rI%JFl#ve2MO*tv8GKQY-n(S}`47w-{uWHs9c!uE5tKRK{PH9ohl%d{h5 zNXvVep@xD`pw}kzi54Qe```_(QqaWppI}8TW6gJfy)LTb+THSaLg_X-ly@wikOn-cl;Eod zO%4Mcoya;1FjQK4RRZg~-3!;{Z8ML){v#n(8=YC~z}I~{*-`vZ@ylL(Kn0$$^f0S( zdAdz=AU644G;W79K2y#0REKGjF|P9$Pnz=9^^sXQ7l-3`!922fz(+?c8)e>q`n$6c$C zl40x=JQ~hm$$pDr1f)eDZZ7I4OYyL8Q82p6H?255O)3_jG0eb(Zfx%KC~_^Xs9OYG zd%yHzhLQ}$5&{_^d4DXy#vAW1d(un|{AVf89n@2Kwo*_y;BYUlg- zLL_((To$-c8$v;xL;VJ9BJj=cG#q!1Mz%FVj33cDuxW;QuFyMqbw-d&NMwr}G$AfNKrtUR2zvpuDAQlnWpf`v zI5U%1Q2)&!Ob`?FvY@{lmeYi`A>5f$syqoHQs?B3h`T@UF;|I#0Gbb_rwFPkjUC5l zc`#^t;X&)v5&+}1jIkpaCW#;p8Hp1Kv*7erzHV0B%t^} z(^2!!B=5Hm&uNkm24;tC=pS~d^BzHna))yU5p02-=BUEOOj$AvI5ZEb_-KAH! zwFvR$WM#qq_v3wWKKrF)wTs(L$4|?NI8G0pjL$|b}@pe)bWT5T+Ouy zL4^acD0IPOl8*p12GCz&Z}eRoV#7gEGGmFh)zG~hc@%dQ19_w_dnMfwRe!6dyuaka zBR}@)-sZUi_@!*)gCy#5@931Q#7%$|NdG^H)snANkZw2@O;w;_Y zuk7q5S8=6A8{lWyhCtH{LWxY%Wt*ACY4x0Q_daZy3mZ6khhNFvCbBS2z~ zUZx7$C7SW9RX{v$9CR$ba4jv02V-e;(Wm^F#7cE<@&8K1(=jT}#c1SOOW*eHp7GaR z)ne=eLw+NvZNpUqK6FOIKDWXQ+Hk9o%~HnW)j;CiL08kd6G{O_F81eEti=tU*hHC( z9HnPU*mdR~xedl2Uxq(4M%NFYXiyB2l|zNAo!a#((nmYCb%rsBQ(+{D1g zO;+FoW6q)TQXkuJ8HX+p*L+)r*cX1n&i3OyE_5Dixlmaro{tUxSg4D^HpN zo#LF4YVNh?R0p#bIGEoLa-xHSDB^}@zIV=oxq~$AWmm~V5k_q6nteROAJsHAqpZ{h zcLm-hKpOn0$Ih6;m_P3wV?z%|T98WhKhD4OV!y{{`1>z&NTkXcUROuZUW6|XDscmF z6k)j&ljMAtjjfrjpw<`uY_^Ag^Sd~qpz7ThZ-e3foTH6h?5TG;pYu5=52&R zDm(5_P4xI$KlS6bQbON_0%M>Hf5onzX(&$Cdu_@TOk%=iDrxozj=tLwg4Ks1*?ghN#?Lw#HHNVo z$fUj@h73Rjr{VK=rSBZ^e*dS_es~0`2(Q3a-ReeA!6Q-61`}8sM^4k`v=T0z+|ksL zQ{LgQ2gn)to7k+R{R}e#RO*emJ0m}Id_COrLe+b0s6+RnG+^7(>RV8MgzHNuLdvFh zSXrwMu@ulHc6oZfcrlaNhNy0<_=VFi-F+Y247|NjkI$&khOey5HdlO~%L=gmf@1T3 zgeoT8LKv&Oui7q%Bj%_`^AsqNDpvo8uA4z1N@SxGFXCRtoTq&1o`a9o6O-na5hmLK zEWBvVHO*v(U!ui2g~aP(wX8#kUk^1c9pfy~8pd*ruqbK7X?Jr_Tsh{^?@>&7`P~jz z0b(P{sVJQt3tN2O)_No~A?@=#grQ%(C2vy|wFJc#z(bAVe$SDX@hQY~EX?wbf_uzJ z=@n&uirYW_x5&HQNtRjow9T);O@9&MvFaPwOf;nQ z2G(J4vTPbWuHUAoX(6}oJIsP?2NZZj^M<&eLKjdC-HS*+9FeOkxMP|kbH2k# zEZ&e#C1&?S_%&Ol^y++ApIbv?)e~!9(+X8B`wwLFt9i#nyQ8?K0`mBgu`6M_C$`Zi zC+Kvt=VxV}5!i|MuzY(`zt_nK=thK#xD5)7l}c&B>SWXAjZqtTc(6Vio> z|7D+$``@=!n?9HwtHlB%07_nA0s3bpM%0gCutVg!NmZY0^?i+LtUb<+=X)?oM;z$X z4o-JccV=98fr6lo9O=*$PPYR4+=g8;J&iEb=R7=cMtJT;S^8iNYa5*dbw1(|Z^nvf z&j4Pp-R@)qqv=Ml<^_k?Fvx>IiAYLfa$8LX0me)R_VeIk<~^|d9ig=vc8~za4#^4o zjzIdGn*|$D^b9bXWz?6J^EydLc%I|=pnxg|<602@@2_?eUm4mgTJ|1-6>$Lzt;C^= z_LjZJ(IiIK*kzU}A-!T_MXi9e?_u!nid?&7ciUdwX+Cthnla0MM&dqE1N3$Uh+CCV zAiaB&<+neTXS~k9=lGNc5twA)S0ZVF_82gkY)+oGfn`9E{C! zTTi{8u&Tj_vaK0<*uUSeKKTvZ6Zr!}?4BgScSvqFWV)pl&%6!Fz5nHZI*Ke(edPjd zgqAO^Y0FNl_(>tQwY*^LV}D9fL8I%&Js^Zcewi>KNRwI2~>Dn>4h1a zQ9Ao|d*FIpEe-*n5(=@B>nM20H*VHcq6Iz(X4-AC6i*ql=@Kw=2DKPWKNw)JM2i;E zlnsqL_?KR&fdySj5!4G3)KT|L`{>+(7l0VCf{`OW$`l9zh#?BhM8Np!cJxP3_`prl zB+l$1Tz+Qg1IE1BsqBL6mUR8E(BGSpX{Ps*IbixLe#Fa9mT!(=VSwvUU(oBs%s^SN zQ|}D7lR(z`D+*;Wc@I70Q_jVm2NSAej4?g+LPH z^CuTZC6HF+-OO=8ZYS310JSf=Uz2ydRdvp|0XTa|f-f~<(p;%Z2_E^dCZV*89j_V8 z+-t9B{j=U+&e`l>5f!acfHOdKS{aYkhOUb}hw%NbxVMttY}?O6e}=Vs7b1uLpEy0+ z42IoxlzT4^i9cq1NweHhDt%SH7Dr!v^;@eKfoPXP9b%#ZZyGd)P2e;b3b__DCA~u8 z(AFo`w?p{I*8gY{5n*+LqDdl6Ab==2assR#_Bq7fqLyM%`)#ztumV(RyRH`qno8t{ z513%I9P;@ngs@EO4)98WkZYf_Fh7q0e8Z33{a26RdT;6*z7!cJj?SILstQDzs5C2W=#dJ0 zbW{@@81<)WT>x2W0V~MA@XIw#Nys?1geM=R&QF<(T{xaN%3fk1y1#JgKQHtRNkmAj zbvuU=5fW#Ax@ekmfZNW($|?rj$+EU2@Oc5-)_WA^G)3T$its7PHB0irv^Sc&G^WAA z!$USTjTek9-lhd*N^ReCyjzDUu5~oB3}y2q#`M`$qY?0Lrh~_gu5<0WG=9OKA2bQ) zuDEovy=}OdSKT)cN%*R4ufyu+vu*5wLj}5IS~lAINzQ5#O5DM|U;2v;HwCM`%b&`|hh|s~AD%W5W+bVk zFm=C*>OJ25v-?MA@#ZP1J-=Pjj=+WOXJ|hwTMN;mJ<&IbsuoQ>UxPlZ->GB~wVA1?<;iIfq zLU#LYU(Fqs8|iwFt%L(V5#RUE7n87N=2{GN(Q1vMC{@D^?{wAiNs@LhC_WtUd44%u zRsW)ibnI7vF#;L)C++$*zd`}j5hX&0rsLS|6xaiWV-`X0=i)1YTgpYym!@Kf+M8Fa z>vA^uj1%*k*&)vSi3NSy(XvfF#)Vq5?|ReUkzDiB+7K(ZYvtcm03lYl`(bB@4|c8$ z6u%BXw>6ABO;%l?`8Ia0;BQ(cO_)2_H+_o3No+Yu`#z{$TzllncThZj>x^MT!hvAc zLIVeZk8CE~+l3SBNFaftA_0upC6xRjKL^s3VUmw9oDuph_{t(MZh`%)HIHYR)NBL^ zEf3%ArMIn`N4$PtGhD0GNql&|A!9kJnQ~L=8GW&?Y1ogfm$p`W%`6kg{0T7+8oXUm zUqOhQHtxFc$pnSU(>G|0(iROzQ)Rm-!Y_Pc18g^Nb zW_fsu)B1f)UU$dr@f0NJv5Q*U>YF&nvwR2P%?u3NoEnLmf1Q9RiufOG0sTH5a6rVv z6H%6iq)gUS0El*P+nI> z|ue{sV4z(8qt?XgMt{*dO_?GW(#KEU=pnhYZ;dA0}Du1+!q*L7_fP+LI4 z&DS4d5_3wd>jV};&**ZT-r)o^LGR1%@-^zv=#dWOwlSCC%t{Nq`Lut=k@I%gZYi#F z+P3fM*gHF=Pj%0g3777n`R4AW(}MYe8-fY`s&;Hf%tL{H7L=wrUkTK82((7Jd=P=C z^Kyfay^|yp%vZ06oDdld&P3-F%L+2pVLuG`zU9P|hPl-E>|sx|s_aU$7J9SPdfYYU zxD*=+fqz%+gzGSRaF_j~PLi`k=S}>*@+4y21#&xeQ1`<_0kp6<|A9Y}9^1?ehVg zvD`qe8IO7luV<#8kQQ{UEyJ8h?1Xb^=wIsy-ASU}PCYi|KJm7ftAw3=X$<3LyiCy1 z$jhZT2fM?zJ;|P6<%H8|bj=-tE}DIFF67!mozrg7@^y_trcQ6?>A{f=dR^p?V?&Pe%h*eto!v4k9|qKMx@Jgaeib~{ z%f9SvavPzP|77}=wtMeL_O4iFhMZRxW7?6WwbhMn+5E_(pbzwY*(=6nGWsL;v1tx{ z*X~1fyGu!H>Vy5KiS8EGe;{afO2a_OMYejI809`|Ep~7^E!MX*nE*#)2~t^S6Bv?y zjPPh;$RV_%ZcTiz%d+k)l#o^`l%Y_0-2C*Kk(*cS;9x7u(#sl_@Xs63w9g5P`q^{r z@zIdCrldv@X-|V`d{exFC z>xRImW@U$>oZtUw#%9NtLW4eTUsl!f;$dcF*mh62Bo2BcXrMUaFBZw3+eu zyMcH&cO91>R~DH2qrC->S6E|V!(lp3g1@5srXGo&7T~mN*VSdC{vpj_m9XF91H+t$ zBN@Ya6?XN~o?~3gz$4jS#?95O!i7#A;{*Q+u{q%d(fP$AH8Kf_@2x=T=c9L`9~+T+ zGu6FP&KS2s8{hnPx2;!hB{7bi=<~iB9kGt`ddprctAv~f+FZ%zeXlf`WwVpoX{!w#Qf z{XNxyuJaqbX9hC1oWd7UA4(aktxMn`%)TZKgN_KbpnfpdP5RD-9n3btY{^dK?mjbZ zT!{8+CG^fFxy52;g9DaB^(QiS&?gOp1PcoZM~kE&j^M!_%>7yOiijJ+t8=V{Re~dN z`F-6FKd>r!WDQdIv*ECEQG}hNBlfXpMv=2Uc2~FSDc=3XGHz~|7pa&x3xf4!upWN& zNVcbwW*^7gr`_vLz^$Oo3Sgu&osj}2_mVPZ*e#Z=}m0?BYVWem zhj_!VW8^t#xGtK$=w=C^h(e|Vih)uGrL%!zTV-Xo`mB znC@ZC!DT+T;a`^sN^s_xxn)+))+1B;k2(clTn|6q@0_?R@M0AoPJ};W=g$lWjP|Gy zb7m9y+O7&o>4$A?GY2tnobXX&G}L1MT(+^Ubd@H3Oq%aWxaj3dYNKh?yQQ$?mmL@@ zM%{k<0i49jv#q|+yfT1TtGdULFA?$d1Ziq`oF}|x%vUC_iG#Z=Bagz%CpYIqlyjf? zg@0eZ7F=C9@t06Whin2vsOcx}&0PM4%U=2a7Om6QWs3(Dls-W@!s7FJ zP6iJEak4cKg(3&qW##|7@`S7K-zE14pUF1VM$)Dzc}Q=7N00AYNX7h zim9h@_fTD$NJt!%&6S?U&3eY?(=qTFsGu&r*2TNtib)mQ(5S8q1H|hm>W4W4U30#2 z1thgWwl=5@f?+fbyfH+nF9sf1U(^q4x`3n>+=L@J=4ux3FO7+Ki14{$OiH%4F}_${ zxa)mE<)=AB4_q;Q1JAR@?b!o07#C+F3KxH6kPlW|Qo^)|pqap~L})#~S6ANwr2c~mCbBCJl}L*g zg8qrwIfoOhr~AR7C(BwsTF5AOWUMl6ocecHi7h;cw{>>D_@(gN~5Bv4|f9yfOf zuS6X;6a932W-IR*v(t_HRrG)#PE3J+xBWvsXrFd8NEvns`y_-(!TdKfe&BYN#k6(% zp$!~zp=xf5?b*xNb*nnqW+9YO$mI(=3LNExjJxA7z|z&?SM{|-KF4ohH;+PHe}|#+ zS-$D}+p9|2+V5c&2FNotA|#vN{tbt_!qMRaL%l+2@N)GZc^7JGSFp3 zk(x}gt-ESaGNim){VWn!ZNOW833xeBxOC;?B1D3Kjk%6@PCq~?n=0$k!HX8;P>=pI>9n8zdnA@_TyWn!bU;0H=Up;##xy;n_n^Iu zLJuK$vH!!@w$H#lIVMP26ut?RHf0N!!jC zrVoD!L!JD*hgXS**G3+Z>{B`vl!`8uk6omqp{A%r*)4d635#U*v8-5Sx z?+c<4dLk}zlcp(K^!E%P~d2p!#7wvu0=iLI zoSUy!&wFfRb5B-wZu1c%gPHVE>y6*(k-FjX3OrT9SBQ0nI%kKzh?=T3OvevMmOuU% zmG^t%i*?zerab}O;_1zg-0nC(Z(AmrngSg4hHYA`r;Smc->r0f$Nj2ndPh`Vs`>bs z2jJ`3T09Qsx}e}!OcKDkz}4CWkB^SN>EEloNd-qH2^odA6iK{62ct*P=^J`yH+d;} z%1N|(q3xRfc6-ZSb_tm`I?9U_=<|ma)c(IC&ask%KE#^)N@AUt%iw;t6I@+BE!2C& zl!NuUu54;5Qxx{cb4^WhXuM%)=~h+#dR+@8k}TwLb1^nHcBk$V!#1{$7MCmcklf01 z#n?s*%LB6gAb~f(ZogcYS-u%jsjpXxyQ@N{)SZ18p*i(lz6WikY?S|tMq%Q^-ZxKIDQoUiL%*j0y%31<-@#q<67)(>^M()! z2{Blx0uzA_0xy8789UkiTNXe@;EYQK5>O-A3@{Z0TlL?d2=f~({$SL#~4tj;Qwlt8geH z1NteCeI3XFeNQV)aZ3cBqJ>MtG{$9Dv&Ms5yp20(5OATzENH^SHl@MB3R|6v|l z1c5gnyNxy3uOrwB2o~TanjkdDzL~b`WsyG6?)pqQ!9=eHum37>L>7O7hA)*$6(nIO zX!$1~Py2Cz0kjAq+zpbDl{-`Y6oO8bC`)d7|DF1_5 z?=|<6zNPXJqQe5FKJxU*kCDJMPiqZ9{5rkCm!|%3ff8{b!N!f8^56vndW3occ$oy8 zL>qPcy0QKk-jIPsgGE3EMhC!E0WS3=RJJNB;(v-v}C2C(xV+5Yi2#D`ex z$KbfS)yY<%KbWnA%ftj+u?rxpx>LPR)n+z~@+aF5N5NoEalfsXhq(IN+ zf`Qz((-(kz%z}%9K78Zkd=4yEF#YB#!Oak)?#QR7WAF`$k(lGn)eHO`=lDfJ)h!Q- z@O!nHrS#eK{g0hQ{>`!x3;f~57V^{(9Py;5B=bxRT^r$>JxMcp8d27KCrVAijR{3XO5}RvoXw0$|OEdwYF=bZH@@4n{xcTaCI*Vpy zTJB&;a*wsNz29mHD`mjOHRr2CU8KkxrkO!$lwt9aS8gWrxMFGV&2D4pcA{^;d_k98lG*1O>xIJ@PzWn%D{G};>Nwr*s7f0xDb^g zThSxBJj~n287wYRL;Tk|3Vr$@p3d~^=21`CqaSZrgsX5C{Mht)i}&I}&|`B3v8$Jb z(8HVw%)HX&ieZA`HdtBo+ch5d>s;!BCRZ@+btIDQRj3g@?!eV&a2@ zFU0hLQ1BlSk{*2AC^5ICNTwBTz$&#rs&DE%GrF3e{~BMcGCnH2;sLET{!goz!OPW? zxgroT1V6nq>FO^;YKa?Y^ZEMS&S8)kpKnU_I}XoLLiM4WeV5HwFe?i)B}P-btn2rb zTEXV3|MWgr=Kyp1-!Pu1pUP(A!ix0T#kK8Mzm42Po90Ut0}1+N>CU(IO-k1-X2QvD$&1LZt5?D zBZBLv25df%iC-Q1D!Qp&OVctz)-~K> ze3|l}d0~C+hwK-#tH5q9V1ix6#UeTm;Qgx`x8AQ4eHLM0(0bNQ;ZJ-=(2XfmuS6)w z^&d|(t=!|EofS`Aj5i$x6-#5%8D^iT8lF7Md|@`AshBzYp;jCSi%H413hJ4H1IuX=YMri6!M^OnsQ-=;BI^r(PO1;$vW7o{y0}{ zAjJcT#8?{28^I5}bLZ4NI<%p|t87unWv#PK`yD8^Aw)sHVgfM{YBuE@W@RRJ3EO49 zTc7$=`9<5d_+rsXp9?3!;LC0UL4h;0TWV_X$2}_jcol*M`1tidGg3<|j;?=*4g;TP zAM3z~KF7)%fF03i3$8Z2TPjT74tKzhzLiTo81nLBq6PQzGtBRlDI}=H>EW0xaBP!? zq@GUh>&VP)#I*MrJY1qgzo%XAooL~UJw7sqJD21Gqq*6xHf*Q0k($omt~;;XiAOE3 zT)9l^!~La7E;$~IV3cN^2D^*tIb3S}~LTXWb8qwA<3CB!0Rl!w4o^>X<9 zC}z+H1{uNZW9r~@9-C`V4h5v2xl>2v{Vjv)CzWRNx}4*_)N_aQuX2qK-WDkHF(?)AVuC=~Wu^ z*Hu^H++er?)w(Qs9K!oP+WX9&w(aPY}+twG^} zjMLd+`O>TsfcE-Rb@Jsjqei9ipv6Sa&9BJV*SLtcX!gDN=0B!1^XD$#_($lpL&|L* za#CDvghwk^Vyq*(~2u5hj+ zu|=0IUD6P&fD;f3afl;!&cCdC8!}9{r|s?RK(Q<}wqs{^Hg4-NZ}4>i5d1eoW-ae; zJOoWX`&j&|3cX4Co56qP4ImN@2##DwR6*_bU-%rClf~^`*;%qrF`r6U_|p>hk$(%}WHzvp6U6`8J-E?LjNmq;dS3W%>1F z?aY8DvkQMiHZdCfcIRDMix*B!3z3mNo6yE%7Mef8l(&|*V5DUbwaVP?Jjjw^%nx3Ov6 z|6WRR-|nDr$CQ}6%@M8k(&WRx*x0jfapLTqFLmn(q0 zrl&L0Rzb+Hmuvr?#o=!TDAAl5Nz_ zpp`tv#XFCTa--q3umdDp&S`aJh|rhP#zo17Htf3LPVnlcb0QB<(c6x>C*shJPG~m0*Hf0n^w=k6(E>*I>h> zwI!dIJyG`(N_=8_H|3_=7O!ds?D*3O!Z)(3St4oGD&_V$P#Esqu>#T`@_ENV(30Y> ze^Obo!dE-c5+i;0i^z^-(ryi=l1G`WvDT&Ezs!lu#Hh(}9ranmfkCjypS7xTUJCNcId2}aJjFAbTYlNF0k;`qE%>>FD_%vyR#K+ko z_>GcI4$LbXJWo-moyFdUg(~ZY)4djsDN#SOq%Rb(9fcv_2Rx$@x(2BJP$&q(1Sv=m zm`|eyT#0V}&Wvv&@3sGb@cWG?tO-Zv=0QOoIQM}*tK@}!p z69M++n4ReC zfs)h*P-@V61L|kgTcnlm3}$i&`Yu9*jyMPLQ2iqbk@N%F5#qTAZchk{3fzT=h={!5 z&Y%P_|5AS@9%va?i^F6j95PD{7GFSw!!GeUfTooByzYwSLZy~ab@jz0#29N5#hN8`rGN2`d@fK`qGK_eyn% z(jjQ4GEN-AXS5+!K|(dl%>5V{ks!%&u)&!tmp{iNz5vlNF_%!f z&NCPYWdR9DXJJ91YX9}iAu~8R@wS$h7toeF@BeZ_*ltL$4cwOSd(BWlAg=|=zF1Fr zhBP^Kn#iw^mGEL6yzE2NJ8Eg(p9w9|P<|1isQ&J5!zB^_Z{tnl*NWTWpRGV-%9?{C zR1dv`*hM#{Jod!(;QZO68Z+}_pM(2k_HfF z>cuY7V0wq)dKhHl3nROZugn$eH>{1s)2BoTX$(T$(NQo`f$)VpD6%$2GfoQmWFcyp z$T;bYvn}nqg0JFbn2A2UQOM`dGbZ`pET(k`aGw`|#!JDdhO?vf_Ie90h@vXX}At^OV`J0u0-# zuvYl9|o^pec#vdg#`h2Msm~) zeCV*9AsK562`Gklg)}i>^#sgoxIhuaABh74`v)6GT?U57r=N6DB|{L3fbZ+12F#7Z_}nmZzr>FwtmSm*_Lo5$kPe zTA*d0?cXjMnl(D?K*I| z3##!tnkU{|Q~-7bSYG)Qr_cRa!vi>qs1$ulY9*9MoElVoI34rkjq%Y`&Cp-dte-)M z&)iQKU?{1oelPO_g$;Q$5&J9ldupRa%oU`9apNmI$4Qhk6AdMGwsf-S7J6%=JTokqCl^wiN49V28gP>^8Q;>97_j& z43Z)0ovG(eK8DXEroQ1mxE^)G6F}wB| z_8FLlxjyRRkX||3a1tXDFmHP`wxMUZ>Z4<2Z%qVGBkukC_YvF6jrwCNht*+x802tP zJ8crwovlRGfXCEiba+tvsp_|utyMXKYpOZ4yw*))%4`h(v}wiXWLF<#4&bVyg%7?* z(rF|%Y=&BW=jP@pJ+JDLKF0QK1bEo24^V};=Ea-4(tdaOxMv7>tRbiat)>`En=jp= zWb{toCsnJ4`|{VoFx?}zZs0yMSJtE~j|0!7 zars&&NuuId%>h@)%hY%4D`z5(K#061k@wG>1epOT>D&hP*UOg-p;WwRzhBO-mudI% zf;py6!=uZCXul68Vg(S@@9=_(QDMiLDEYAO04`jslk>SD7!V~}yo->@kYEBhN5c~m z-huYXHb(8NNvlaP|XuNV#Pd> z&)=mg;gI*=()QtWka>Kh{zx7YgY@_L1-@R&w$R{;x>5aWV~P&;8W%E7g`>3@Smnsd zgP~UF-@i7doC(7c5>ws3^Pt5Nga9MHG!J|A`(Fr{OU+_{b|cVL{exuesBnS)qQIG} zGdm$@1eeAwuvDBy+!kP|SltwXP>fuSjr#X~gA{)x@1vQ{P2WvJ-h(8xs3?y_wx>M!NPK> z-VZsspQ$InS-aD?`i0m1I>D!(Zj8KjVz$1r_~+`EiMW@=zc<9c{XB3k(QY{~Gx4RO z|EG4R-OXz~+b?Ajk!8;2m|t8J&l`FPizzEb4*_i?vmwR1yEpoiC*Ec+lqazIj4ebD z^5z3Oy}i!N{jmkyv4}$jK7QRo6<|f+PYX`EdimeroeuGMwSN(Piu3;%d+VsG+OJ)B zlOjl`bf+K&f^=+J8W9l$#Gt!d5CJ6w!Jt!0KuV=WBm|KzDWyX?CC^-&_xHZv`Qtn1 z?D358lw<6**Sgnz&w0%&zI1&w4%SX3;HN%J*p{DX`c9^w(vQ+VqJJVW3Jw}!HLCjh zRN(Lffsrs9Q^I{n|YdMu3`9VyJ19fmaNLFI%AZ{Bv35^5_Z;s#O~z|A-F`a zJ2-(<`m60V3xFU`e=d~3vTyV7crM0qM&eD{u_7EYN);sa` zro4ABCsDo);(Ep4Q1h54#Ss+#)p^t#I)Y0Yo%7f9Pf2#>v*3Ybbrm&kSH;tnO> zOziHxtnp^(ZNX-kwN1s3a%>dc0Q&=G)~{v4Ay6$Jf+wFkrHRlaPpZrPuj;VFAUSbG#;7{8fgu^DA zii|6aB9&SEs2pmyY4rJzf8Rh8Yc>D7?EC3DQKq<3hO#k1AAi)X&4*SkKcUEq>r*a= zxs`MDh6Tg@LDqSnh?zZQm|{IwuU{SP|A%a;_kwhK47Ke&?j5|P*owZwPx&ktOTu|P zXjHc#OS;^PK>twc4J@Z+xG)q70?`5Vmrn7TJ%7Qd95ZhAKW-AOYW(^Yxu4MS>(CztV!3TRt4X`zaPz zx<+FRW}M;B(N*#j!SuJ(H(-3GKJ{YZw&AXZi` zuI!I2&tQqXVtH{_g{03)IPHN2UeAkIH33@{saJsLgk575x+;qxItw51O5OZAtH+YE z?8Ds|+S~=>`~1Ep$kC46d<=JXI`ZMqq}v58wct}H1TDXQ{kAoEFQ$~iTsL*uuw zlEVM3As{!*bdt_F9kzWSqP$EK`RcEY(@%EXVN^N9d4(~}0 z)L`^}6Oix|#0qW-VKq@eBuLTN8cIT5=WW-spe){7_ruGu;V&$=7|Ekht@VkM*{U*{ z5Kx7mBbwVh5d!=6b1*$apVIOAWkWdtCl}$i0dxy#Ku#n5EgaUU=HUSDWr6Yy1M?Vuj7e(tF?_G9OeR7zR+o z1BEaxH!tuO;u4&=2*AdmRad=YE&|Cl(J)*~5`zc$oLK3lSpXhIHW${#B!kVkIoN%{Xv*|@?7$rT)zSaa=8%{L?YxC_IgRFX)zgQTAC2Tf0A(9u&LqKD3Sq!dP*TQ6 zDWa#{of_)GE-gB?>EF(-lkRo(x_OTLd)f6Qm3Cp(#X@;M^1Qii0(ft^@~rnE6b<1q z<>uyAwJM;qcq^^&P_TjuCU)l3tbb_XhcyLjG_ zqk^oWNL%9n)DBhBk@O-#-Im{g3xJd@S#Qwbbc`zXxJTJ-s@tPcy8YNmZiN_u)+k_H z?m3?xYF0M0Jc!1@4z;AC}!-;6P)?n-O3RICO$c&~%~8a9<_|Yp<8OMb++V z)-S&-lG850jj-(;432G!b_iEesRC7-cn1jeu`1m@snRTGAOnyPvC)0f5rh%Ws6{Emah2;C#&a_#IR*uYP5>Nk&A&c5 z>j~9n+Qx^~P7t3^TWl%Hhh4l(D3IURd-(>LV$5m@g~=adNc#Diz_ks%Ej04_YNDL* zhQ%a8Wy~rlSV(e@jGV8<+T-3otc9OD&{TUjh4KOk*R`rENGj(>?0(>@Nb|K#rvTQf z_pXT^@8ulhsK3@YfPdZdWkNfB8%(Q%rJ19*0Jsft&lgXQ%Y>Z9oHB3%LybeQy2a&qLiZ)nID!9pD#9qHV@9S&4fOu!+y)9UK# zk}(>WNpOK~B@*1b`3pGU4}panp!6>wHUTl^10e2=hz(7jb%lV8Abb9!D&?g=tC>Mf z25uYbM(@t*`6vO7mFs`$4%6PIehF9&s**+c*F1rZMBmi$9-JSwf0o%l?BqS(^D~l> z?7PTp?#*QM^h}0E*4+im>4(tjJ8~AIby-Hm&tZulvlnnaQsnDXT1d1{aW5HjmnMRN z(JABllCw2FES-X(Wp_j|3850;T=gwM#0FwupgWRiuZoa>mjv(dAr4etAzGk!(D)_5)RC?B z@%X|W(nYCmOvf~xEa^q@pF&Sx9|F&+>gFggPFa)9u7j)alUhKMjY2)Ay@T?*U5sC^m+463!1-j{n5J+#js|Lo!$I^6t{5Kw> zw>*N>A_LtO$hzzalBiP~+}TDl=>y@ISV)yoTMQZ?eQdI-%?e+la}xIF{m)VRR+`wwZ|2Y=+Z+K7!MaJQfCxoy= zK-ie~k4FwotmGy!Iru06JiP99{-KIVFpurK^K_rBxwTmW@Ynrm0I*;hzydn0`}ec5 zlwcE8J-%`AOJ%H@s-J5MucgQ+qy9v$FHZV%`yAJEuk(M59$O2Y99UQBk?YOhZ|$x349t>Z(YU44D^G_k!&AfmANH3TY~=<){1z zoRXXWl1B?0;e8(AkLjaOz;}6l!pvmiN4XH+Qsnz1vJFh=5i%$W$q@|-3NqdqMe7G_ zKR+8+=+GwQ=0cIN5AeeKPX3rag(DG5hS^GDQFyC~Z#E|0hNg1*UI9t6Vx@+7&`y+4 zH>0Ymz4`STlBj!DF3;=c#0cnFFo(@eYB>IYk4$$CKRa{uLr+h=(B!{^gIhl1rxyWC zofZ(u!iGdfPw(wji`IZnsDJ9UzkgvzfWR4{qKDu?or?o@(ViPOzBFbwwygk+ON5Ue6ojoPeGEG!8-aY`$$R5U-I&o^ zr6bFT4Gvh$;z3FZ1i8@ye4qyPh3L9YLDxltUu$Ks=$fc|jyBNaX3O8%hrM;LWWvxC z`2TL^U~l5Z1XIxUrNa5$0r8rDEjo-+0!)=k<5RXyc-L~&CsX(QgT^-nY?xpm%+ z^XZV-kbGR$6Vzj(&gGW6HoK-VpNHUG?0Jt;yzrs#fS%=+cpGu=()Q~U`x3)^gxhpW z`rS1~k~4sDKQZcmA{fAo6E!xuSF+!uXEAPnCKI2S7HPG-Uh3@@mybS)u#AL(3YDhv%1-+@W2;GZ zU6~E#ZfJTtkiu_YbPM7ZBb4)738~w~-NW^n#SJf&YG*ZwQ(fFoeW$AUm^!mzB0$#XlY!YROvV&QrJlfG?>BI#TEG!M^2Li61>@f@ z5@7fA_L^*zK-`q8c(Qs*fkxsr?L2+hL&QASSYhVP=Q9qYWGocy+XQFN=JmH!UClFt zi0jvhgdl>wwe%O=_aWqrbvO497UhisP4(dy4}$cl((hSZ@`~w;U~lcTuoB2Yv%E^L$5 zbK=(1(DHMX;%HphM_Z2oFR^Xof7Ms5xI{kL$sh%Hd$Hi@KN1wVj-cR++reNCQVo-r zPbCsbdv3*B9Z4@xg7_b;-$Rp|<$B=z#r$Po@cwuK$Z`;yh->~lQfULgWU}8q18-W@ zGbo0Tw-{MFHpR8?T$32w;ku{5)$S`4ETHJ7^M!v0f0H06Rgg3+AU31Ez*z*&^qgM4 z&d!%%j)R2)i(Ry_@#u^NNhl7~bEIHjLkeUB$OJkIHMLv&oFaPLbS_sGccG6r@BJ^c z8tF2+-u<=Ovl}DTd$$Gew! zyu1Yf(0W8XAe%)AWcV4b;(CD3}?5A0ljT}>t?%!KOSjXccR!1&Fu52c=u~NVdu05g z3kf7?#C)l%8xH=tFR;%doACU+W%ktPh`YrtfR_sui+sKdjQ~(#UP--r^M*i&%H%~< zm}GyTXQr)`U?Yf`H#~hd+Z-G2z3u}AHk2aA1?%r0C3ZZ8%$rFlIS`{+rAT@_Q&TIR zbogg(t(0>)z2S<_X(~A{kn7mleg7QD_;O1#El~n3zq*tu%dXqgBX#{l+ux1qGWDzA zbjM1L6$p$`&na6~lQm+r+2F`nN{&$ciXrYJ#k?&0d8kLXiHYOj4a=uQ=IpNGOeual zw-Hu@h-W&Mv?YsBGOFxS0UZes!^_sPY)1@-DflL!637dA=aapnygW9XJx_to(_r?Z zzS;$5cc?({iXSyp1Cn_;oFK#dLo0w(BgaS0a?fC}8fs;6Kp%G4aIXnxv1i#YIfJ|- zL)GSr5sHN#`CJV9IzOC#f?^lyW$2xJ*BZ`%J!sWp<*5tFSFjPZVR{iZuSETNWUWPR zp{Z?1>3E)+B?GyE=hr)#Wg41vHM-pIvg?KW5b zK6^d3s_ji*qmitQb)ImxqqZO z&`jjqJ{F|sXq%rqmd(nY*qOmNY*F`IjuIu2V@|?VMG>chF4# zdoJ^p7cSDNii*@d>j95n)EBS-D)w68N%h4>fj&1t17w0R>K8`&WZ;>JY6`3=ZMy51 z;im&xm-oA~r{G`OQm$>dJ82{Y25>ce!+XiLQn@k+K>|KriN{X(tsRfRi|0pb$nVkrtCk@%F-Y2x8LnbmXA|YgyR$Rt!VAh^ zz?$vP{AUOX-^eAhu`Ac2vM^m5d7FD^rsxZWh?$L++8`?d3ZDlVpMYCf?mGVyolGTj z*Z>eOZeYknfemj)O%2$}LWThl<)(n&*aD>-AVFX`+B%j4eO6Wk zWX@nRddSY7znyKMcj?mM?dM_h)_}&BT+=CX?OH4Nmo;sF#A;5? zGg60jp-#Im9Xrs3piusMf6naf@85$1Xb-Huga%ps_smg&ym$ZRCc}{eSr%7lzj3nX zR|1Aux?M7sSS3opR|IbBv15-ox6J}r&e^oU=!qXd7|5|*e2PWt-Ph!Hb z%9bN!8dtR2g+?Y~dNjxAeg3{Y>=4joW9LxY?0!v!zEXT{vpW@GSW@O3lzuQR$AIO|PTZCNk zEUNJ|{q(ro)tyJ?i`q@!Wz0LI*g;0hOst`8aoVqHQ8l#(Oj{2gv@FEkm4%%q|Ccf@ z>o=|aV=Ewo0Y!AN6@YA@0DvioD?+1UuVNE*?XNej_n#juPAvc>PNngtu+&}VF`CXO z%aECaO|t2^DIE{F-tB*0)ra%rumo!5t#nR~iD#4tGd&wcc}Gg; z=z-C0wyl)q7b*-dqv|6h6`*Kuu^rX|x>A%)fqO1Ybn~?$ANYQi<{Q16<#?+WGMt3OU`8HU^xcL*<;Y883A{|fR4>4<0YkB|FKMtO|5*~N zMv04cY)A2Df}1=_l_mXtyVhFdQikh=*UoV?X|^rwswR{@xLC`f7>>sLB4i>J7a-RW z^M=(9G~C2*n?4ud@FeLpy05)IKi8HeK=v{LZ*!IfN__lx%>`uo{L~qlnZ*Z(pf4*@ zfQew!j|nfMkJ3@Sgo{jWW&}Z@()jf>e(_P0x=o37p_ZT27N0)WW6S+_1>xn8$9!6% zwFy+4-M2P+_Z@m2W5MhMuscXN1E4(o@3CB%zMyhTAC(CG2**GgT$c?Grxd+l5)H@LrE!+PCVuepy?0BJSq7#73m49#mBoRka4^ zrz$0vXUGAjpf~sF`|U!5T>XkgQ@HdhHUX09^sWoFdWQo)b=C$qG@bH&UN!Q4n8{H` zhSR~#t+OnZ%?Z(_YeK_Cm+zTSFc4^P=YkN=f_q(7% z=Q}yVZ1$>4IU3Yr-s2!LQxlfw5PgTl=qy%<*XG~5{1&YLqko%4iNIRhO)TTO^HDnQ zRs^EW;@3RV{b*0OrFFVaoZzTMYUU51T3r%1CBr@CCt|HD)zqtsJ6#m)h0@IW!@z?# z_m@;LP)8rDNm+>*kd1~QZaUt`%j-IV3NBlKf7$o@U%?OHx2t$JV4s+RS&;hL8Cw#b ztvYEn<#g}gW}26Fk}j(*j@=9H7Ha!_EIaLHt9YGvWHT{qg>oGG*bX1;7~nqdAXOC1 z-w|W53|Hr)*(8S#$6Ig~-u6)R>J=*}V8HhtO-Tbbo1Kb?X#k?HrR49AI1%J8WpO`q|dbryK z9eB57D2jPhc$Kl_zcp}N)j$Spx10^)jgX5YKY5Z+;$x~1 zhcle2{AQsgX43phD0 zQdLLmgV({ON9r^`49@ruB}B4(e3 zV1`Kex;|twa-u=lkv}3_4-Cn4#dVV%jRdrlb}F)jEM0}S>P;~_fG9TBwpymAzm#6 z5DAVeSIRVlp+5LF5FyVfbITz6Bi9tR?^XV5G@j`p)tVUgPRp(>Ve(Uxbv377{5mzq z0giFgnQMb@c@K|>aouZ~8WeIGiXX^iPgUvl5#3#)q;SR!J4mu<*UX2KZDQ~LMx7ZrSG;%|Y9-jEhx5No@i zuPzMlAJqb%egxv1{fGEXg3~Ah!)y1vwRMN16yah{ZaM-T%7R?qUyixoko6h+vjKl@ zpC4k=mqc@*oOF(CZB;>1fB1_wfv9&yu8!U{a=@bHZ4du;$L*#M;z?ck|3u!<<3qyl z_FKpZ4P8T_=PNLCQTAK8>spzJH**Rw39DLx3?kswG-K$umy|Vr^&4q;;ZXOg-2hXE z@($i}IQqC5F+_6mwUdhq<;cOU)?=B_;+= z8syI*3X#@K;s{YS>xYSy)y`_!Je2)bl?(Hr(&)5cWTPnVEE zfu$uc2!K?9w!sesn@A#C+UTfkyPrnyK+EsT%Q zI^O1_NFxvOITsEf+^D<)dYaaVrs|@2B%z0gLq5`&#MDq6zV(;Wb)YU%o|qlADbC91 zXZb!594fVfG$!_K3JXz+u~pn+^#7T1#MnR(({IpJG$Jv&kR>{Ka=d!d^&hgG5H~ki zxP^yFDimnTJUO%f+xTsvnv`JglR1iiBJqndV45E*WOu<540;N*HDdu&w{ErWH*}o* zb{3HvK+;8#E-k{JX&pe4OWe%YR~V^Yk8o~FR4X;kcP877Kirvxbv9k+6uYW5E&Y)w zNBg5qURKdrt4Sx?5e+_56v@IMXJcA`eAga~XJPy)GC4H`geiyyOb=zQnzcYmBm3fZ zX!w|w$#Bm_h~8^>ym@mGLy-JT(T$%BOxvQ)m`$4Lcq6XutXZWxQ3ddV{?hMB{S_k2 zg+15I{{E^UGB-Cz@*!cnE-t;idreBChT$?Ricr?Z#QKjVKHtoa zkKJ!2i3z*92c;ZJ)>Yh0^<}EjeMa$)4y(mi&})B4mV%b#69YB|X@zP7*+p#4YUFeU zK1q~J-N*wnR#9h_>r2~Y%qbzM0J3Y_YYYI2rFS2S{QUw<^6cy$7VE~wMss1h4{*9M zKtS4-sHww?R0Cn)Q0wzIbO1?9GbgNA^nNSz)E41`n=2M7w?IM{EL2s9aB{5N zM0yFIo{V5dyYTioRnWaXF4JHk30zxgtJ}#VYnf0VAe|yl6(OFqwus4PFf15Ra zMH)9bk$#LN3`lRhUu#w<;aPE{y1OJ)-HfR{10`N;)wO)VLy2=BErCf+_GjMgbAx~Ls;tW%&ojfR0gag z`i~7Wi(xOCwgXO{#_Um5)ILCRlpuV>I8L@-IvfY?Pv^`Fi3YOYSEFvx*{7vT%MD8ynb1U$~M!9N#B zY(_fZO7lm5Osi^oi7s#}@Ixw0kyn1A!JNV>k zNL`B|Fp-io;#YApwlcz<=C9_K`(t*ZDkq5Ig}=a$A*RoIAB?rFi#=|T`S$fp*ooe! z0ZK})_q9+;tINa}?Yk#|mW9ARlHf*#f0bZg1P4MOB~t+ZXQX4<)T_ z=dDXwpxy3aIDgrq*u*d}g`FW9aot;lhl?l>!BwWn8(>j>eml)`R+LeS)tZg7dp3_o zT6f69h={d?&-49hFL!NyztV`~ckj>rc)^4xD?$5g{G=|4@(w9e3g8k+cN!^D}B z+A^GLk`e@@Tj9Z)F6-(;GH0&piJh;!Q}a`1sLnWR0*xA`O_^Kroz!6D{Qp?G$_VM9+RXJ%o6Kh7piLXIu+2-F<0|3zKd9+vPVX?;7w@cE@W{ z#i`#-MZM_zK_EwlsU^{F*#-q{ZN>+v1}xdhdHKwRS*ZFgdr}BUZrXdi8 znXc8muybrABI5;>m2Q70o^IEU_>roxe^01D(OQ#k9o!&Rt#H_(H&7yfU(br=C{4mBt?)OBy2{n8lT0Xuh1 z6wv-0n?_1oajqo=(Fn59EcF8qq_4WY@-)Rxj7D-XIOp_uMvn1&tR zIzr{Jhrjc+H?}IEnr+QyKpoR?x(NU^4N_SdqnM?hflK)$=z$P3DaiT?fvZO%W}*BO z1GAJu$R=TrzBLx|tNh%{J1%4Q$ex1JJqe8NzTq9P7vyHBNr^PNdRbqHk+5sM+AvGT<%S{aZx|0Ift~yRw}o{b zUTl2i#JRe6dno~hg+i&K<@E0jmW}bjHj(pUPm{k+Mg5i-?C%Vk0=cglXW79sk2s|M zCwlgTE6r@-oY)WUY>WQz$-di;Z=AW@>aPX=p2!CY3q0JoKR_k`AjhKdDKS`P;ez#q z7wDU&U|g}cTYnM>glhGLFgTV3KqP=6slHDeJu+`y`d$diayH`*Ie5EDkQQw_s+Vsv zScHeuEl~me(oFNh+BMoX{`F<9DYNpn9-M}kNrnA`|EO`<``jwlGdYUD1%$mB%=TfpPjxkW>an!_TD zcJv1vztUVVyRb9SYe9)pqe8<2B#62VhR}3}Mq8LIE~XTQ zSTq+5F)U0BB@SGwz_$`8i>iNs`JPgsOeux!s}IipHy863xFtsgjMDX|Bi)nu6jigg zYJm(7N5+ONyz9Jzf=xZy>R2d*|ES5cEC%%jPjke1#HCO_Zx=c?WSEUcKY2b$5t9Q_ z15bzTOT!jgBvxnRpGn}59=M28gK7*btpEg-v>e0FRRBIm-w z0th7l(gUZ!rs?l5om!YYkU??`1F;&xtE)6(ie?JnQQ*Lkug$-~jd3o5)&PifaH_(` znYO<|bLg`Z2g(dwPfJ@Sz?y)HiVB5VsXy_zg=lneu4=45IdXveWm4^q92G(lH_$2h zql;gZ`FQR}OG#u<=TLjTjo5r(_<1QJtLSFI+8!DFn4S>RhbWRnn1jpU{aTv^)(nGt z?`^6=U(+4KObIXqfvRQ%`f*|BX_ary&G#UhLd2{`VdEWIDy36wa%8@J}W z_u%me4NgEB58&XF2n84TD^8FNT`43&?v=HA{Nvld9yQfkWn*Fd3WPDjw@@q6^2hO6 z?7oy}6Z^0E99c**Y#ZeO_HS^O(B2;V^vBl-yBsz`>WrJ>a$Fzg4ELJdp_qi*DM}Ba zlYpxLpP)I4={f8xnb4nL&|7bq_|Mak2Od2tD0(;Y!YT+d@uK$=c4NrL$WGsjyYOB> z#%8cmrW~vut`;Oi0+tn&w=FCI#?FV~JSkt`Y>fu=?K8I^xz~l4P0ud&^gM_@dW5!d zm-Kl%mhTU=G%DEQiMS>GoeINYoGn1`w<3 z4;xI`oka$5Ia!$0!NTTfYFw;^g$18xYb zN{&)Aw>P*=!+1mj5d7cp217VvkQ&#r`xrb5lq{g^umQzRLAF*XD?w{Vhnt)}7?`KN zmk39!*}?6RuBs&jkq)pwV;?v4NAC;;A5C`iYR}CAePKq0{|DmLf74%%;QTgV8jG3@ zlM5KI9A9%g*9~bGZULJK3HX4+XK-=dmV_H3QiBulrZQz*IJbd5#Xyv+IYV`8Ql-wd z)bw6ZOz&mb@oT<_Fc1MT5z=z*M}un!5vuE*2E%aeGhir!u{N)eP+h|t^z`>q!XIzS zxYTuNaetpY{p1|Ls@s>ZF!$lgonJ@eyt2>pa46sgqga7SC$oAU)2Tle{}7W%*`K`e z@{aaLXcvX%vAgCCI*pL12K{7+$5uon5Bibr=Enp?YjSnN2HAB&wFD>U=`!Kv#78t@ zrz?R5RsxdT0)c=?#>>Nw{HWCN(gzSrEgQ`&mG9>Z#w%dzVlT-@?)6^uM2s*|0ow6- zipT--zva8!2Gx`f$80i%zrV8yrtNM!xgadCc4PgA>bDrIf-=b^4^?;1>06D`P|`Ix)wzzZPX>W#$z|-B1EBM5v-utnW1A zy_WIsPe+%J#MgSNa$n74mRGT;Aqhw*fGf7MclMI5xe4Bd1 zBL`3oY<6OQdrffqzI;9FmcK{8{MyK#*fjsD1e4__6`CbM2AELFa))^tf=uCZDain$>DMX zPY^nM=`75hg4^kZ1rEg`@z-P=Buuc&`qO3EH(a5EL76#TImI!aFI63F0==|J@Y5)^ z4%NjIER28l#rnh2zZOWeE?8J$qwMScJ)~{oV%O5qHE&D|V2qdA+3I>l&}9WnEY6j) z7}w>~gLY=0_1SA=xCcjq)W1^1%)Bnu2`&(Pd8Aei2yqmUI;Bq&A`at>kUm*ohsq^Gn z?@6m7l40}YbTPKM70R=+J6Fgi<99~e2FGiWd;vKZ7V4901UmI$Iw22-2Y*5NRK-l_ zgJ`LgK1OqIQ&FA_0Y&LUN^GB~LS4NxA#Bqh7YMnWrMm4EkE5g8nXhn5E$R?cVV>W# z*YwWFT%w(r@6QZb`VF+E4q6R4Oa^ilHkD4nD)wxI@F(vUj43?DZ3x7QJ*bXPVfIb|Ki~tQnc*`3HoqJ8F$-9c0o+Y zqS}!jOk??c-micDB$ZxBOxjok;#`k?WJvXP5?RUHND=~awWn%$w-toT>l z|3Q~#(E0ZNrb~Mcx-|CHY1e0-3$Jk;#T37n{8|2bDHm|eym@Pgw2%|k2u!p7AS131 za+$8_qvq0y=*%nkmbFdRr1eIv@<}^*k2IM@o0CvJY@#T5kL3iXX9m(+U>S zd3>tO=dy|;(PjX5Q^Dk+S-K%WN4IARKo=EtV6$<$a+IXC~~i|58IEkZ=M1py3+$A0wS6c%nb2wP=08hC;!V z8>k6L#5XqTyT#XZ3aR4V9J6jB$2X7%sF6wcWc<1w z28Do|TR{twT&U_)k2>|5pgDxiOsnJ?PzQe(=%hQ?o(kbrtcXitaF0(+|75(@M?ESU zEW+2<*HMAjU1p7UH|fveyFyj^A%FF2m?2u4vX@c47zHIJuG)S_`~xKb;|;d(e;1=fdB* z&a{o0C>6|&wf2lnP+evHB#yTIDP+J(>=i`xkimTpWFAM8=him=B$&Y;bLdMe`VBth zNGpRvT8&{BT)EGZx6QT}`-P77>gwuVpR7237OK!Ch$!!jTwAL>R zHJ*=4|97wC`O@gr{}FX%x2L>r)$=Rk!|~Bd%*oCdVttp-os_LB=2mAHZA*`*9@6>4c8=X=dN(N#n+QZ z^7v!SYml2d7S+Gz2s;m}oS0e}~3iL0h|HN9AmgqsbgKt&8OO{=2u|x=Oy) zEfq3c8(*9%Z8`4##D|S1@a%adO?sX4wvE+x4EAA_=q*S-Z>0R4E1dcHYc@-4Q80jf zYtMaHe-#`DbSL=GJ(`ma`ORZsyt{kx`u2iN?DjYAH@eaf_2?mzWtQ8jqDZKFOqFQh6839|uf4j%-n$x^f1CX$bbe$QGmG`+)i z*x20ZRgrSPyE8Q6;r1j(1MiumL4uR}z!7wc*Jl&Eh}beyZnEAS;~guZ<6?N!&TJ#O zfU}3|5=4j$PRPCR<5{7)T?m=j`bv18+UbPVB$Y6c65MHGy&*UWjkf?uD0~(p@qwH% zlNFehl!RIEcJGK#w26cW-{FGc2b6UMz0C0*$4b>wk&zT_%qLzbk|s8H8~CoIW$Nj1 zFf;Xy9;K^X;@MQcw7IKL+QPl_tRc<79QKFT)1616wsV>)h=i8>N})0wRbgvgHSQGH?i(a*m^xHl-EBWlV%LxGZkL z`>_h5X+XQRkXe=s(b#`(Y0D8%SNerj@g+b=2d%cl<%jpz!14ha;^}4jzMIm3 zJ8UhF(4sy#&!`Q%z+%k5S%6A2ut6GhZq1}HXn9QS`RQc*eU}v|y~0BzI)4w=R+hHh zW$ed48;LUp4aHXTGY&EDkNU_|z{f&@O?K|Q$2ZZdA2;8^9W*U%IUFH=%(h@I%9Ae< zQh!1VWAxINuPlcwSD!lm_ZjWuFKxXQeo19fqBHKRzCFy>ML4g8>bX}bK3DP&BVETR ziOBnTi1Xp(L!dE~thF^iv}xSe>p(~Vqkj0$)x{4vqAqIi8-6gu0tZX*SZ#lYow4MI z9C~-TWfbpg7c{@=6KL*$fjP)lo4{kKv<0Ad?6D~^ajml%V^3=?ayQ(*%YOacKq&iU z`l{qCiGO>{Rb#`13qC)D_e=@?`abtLwfQHn)X{ZWNS+}fH%zs14xqEv{+PcYx3GdUIpBVZ)I13ba7P;la)!Ac;$h5LW(Zr}5_z->pC zG&1J>FTv&@3pma=+iY{JHg1X6T>1F2#rS=ejf7i6(8-<8T04f(pUottKUXGFc5}_q zN{2o>XQjZ5dLpwYc(p;tUQ=K6Z`0h1-5E~VIDd^ErH@KePOH2xo*}PPSgRjC4-mPW zJu)aw@<5otSUSoX%mtQX=EtP?<2x%%Gwop;YFQaMz$7ys*CZ`7j-}8Lw zu)^#8M?-oD7c3QnQ%R*6C-CUqf)74Uk%RL{pjCfpX-h<7D%xyLXN6c_8J&ak=+PLF z^7`%Xml|4VW1$koizZFVb znkTYh)<9tSLcIujJY)`617)0H>HV`XIr{^fHz;`#Z;m(D?C8sl>>^Wo7Y>&~twF2= zu8StyhZ`FkMh|#4I9)#8w^&GF9Jc7i|0J6_n~s1I-v0)J#gcfK%1BWTkqcp#93Ja@ z5SK~t(_iA|&KseR0`jZgjUA`x*#}0o7%3X}PGtx?`0taZO~sly0_KG`tsfRpO8kt= zaCk45uCJfE+##S)hjd0ZRjq)9Q0^b8|<}@WW=r-xBEA%+UuBUBZrXeD#`rwYP*!ppCNy zSdg@Hc9Pv6`+XE~R9e zDT#EB03`IO~JR4?w7H5&OaoEHYxu27(KphD0f}+EkDJ-TsrUpRODB1ySww+)r)~Bf*Oc#68dgBaM~LDdnQf> zk}l}768ArH?%?)Lrms!FNBm%N|Fnv`5lTlgShQJ0^D%|A3L;ZH(Z2(lI-Unb|BJ4- zjH+_o-iHxI5m7)wLO_&~5DDoJB&4LfLAs z%X`LfoU=V^vsll%W6o<{@n&3aQ$$DT0svhdC~9zrbWyKqfbx0AI=vMnSOI z#JOl<`g_CoDQO#3;H5Jb6-h$`-y(=Mg<5M@kvgs&$a=Q`zyo4ZhCLpfY}v*j(Gu@U zbBYII)AYQrE!urKkFQFKAHer*sBzjz)MTL69qvY9uNj$}fOb8ZvTAPvCc@iLhXCf; z1D?^6wzNbXMLM6!FidDMLH;QWjtg>y(*nhQ}bY*c0U}s^l@-H0(%v-ez zGnDWH70H!2+7s8Xm&3n-Ar|4J_u3mckurfb4TJ>;4VULw1<0=Lx;qv;B9QZDN-A!f$y75s1$_~D4`b9Ro45m}aLr!B`6Dl?>0I2$zMK(BYp=Z49*kXIOE?!_pfSGB<0 z;v>lHo33f&19z^qOI__ZrDH&IqTl>m@MrSlxJ(NSllGHGZ^`u$ydoLwy!e&bVs!3^ z?q?^Nf9CGjcn?K3=i6CtnWZAOHqpf9rz9Ha_>q}9(lbK~T53H-271xTg-8v`C1qvh z|G;1vSpdF%4}`&pInrpUX(b%XR6QiXo`FdbIWTBiy)O62!R7w9Sy_tH)}%AYpnK~* z+z@g$@U-bbxt!3*6a3Ir$r)@#nx#K(tZQKR>*dl+4*B1keJ~fAoNp$LW6jeBF^pz0Az_ z7P&h%m~5geW;aaUXxO!rdh@1!(@P8mQJ(L>9|O=(Waj3AZ5JA!M7zTki~;EHV9!2z#}Ofu`n6TB|=7LNIKj0 z!9ouLlS=fNDuQQW6S-Fn{l!l%h#8^7!Kb`X^RI1vs(=P*+^<)mIX&KK!FinheQ3~d z?p?jw3gL@?>r23RT`N!` zGl0CCgLtlEn_s98xg0Sa{jM{{y=a^lkJ#S+`c!FZt7_KH{baVJ2^}V~>#fEofO;X^0Ah-I zXdFc1{yd5ilh*=MYsejc`_lfg{;CB!agQZR@gnJ~Za0osxwH{{WXucZ#}%tvi;9XG zu-gk6`_4oQjEs#_je8QoZvH1izyJMP2q{@BCLBp%ziTYa)2M*0~-C#j#r=#HvT|j}ZGVqObqB++xHVg1H{i(xM|s zhMpb;AclU3cKmo}4wQgZ=e%IihuDbBH2ML+h{by{9|1uHh+6%*#qe{)An15W;L7F1 z9dtF|punJ0{}4hjer=M zAI_9Uppp9mgn1We87)t^06&Q<*Y zv2B|C4^WV-1LT58vW! zt`WoRDVyn%llsbS#6J>g7+*MXP6cfkOMDCY?yq3no!qlM;~yH_oK|EYr>f}V+i)4k z1N`3{0;YQR4^w7kvx_xbEuRFggx3fdkzG=#%AmS?wiV6kKzB&W>p!IJD!zL@k|C42 z<&R@Bk%G2KB0x5h@n$9ppZ+<_D2i;FF~(UudG|kjAapz1pk<3G)LoHB{^p+bL|`-! zr3FH>DhaQP1^=EgX#HC!`GEHlv{cE3*q=Qw@Sn7XG-tq|(FOVewsZ)?b|%vjqhHCWZN1>aX{fJWjLUIHsDagGq{PdsFDPjyg{--FOc> zS<$zTTB9|rMN~~_2d_?OCQs&Z8FcE1*P@vGdS%Z{`Eumt->o$Tp#NL5>3}C05+wY+ z%_p@rbgpBo-T-k3%70vff8=Rbl!b!Ag3(#I_qpr%@B`WMa8srQr)>@Ri|+h%8q+J{ zejD0gV|)wKWMsH23nH@TdpuCnHN0-3aJGNOIan6Tv`-vDdCQX&z-o=0&gzYbq8+ROaB#@CopA>C2@=K$7gYk?gC>Npk*m`{23=|sO!1ywJ>G{5zhvW{ ztJX=6RuLPAyAQ7z8S0!E9vx1auh%&Ri%RQDyBLTw6H5jWOI!2~>)($MW9}tP)qhZ< z+c>FTp!zc1Nl(pjO5pw7wPzTC?_KLpu&28ds*H`qbd9^?HA3O;`&(saOw4YP$sr2n zfN+x;!|w#j|GpoHdxva;CoJKW#&9Z0`!7FzB7PAF&D~1kpbk*8fYy-;NneQHo!#EPa0a;9MFNga$VUbW8B$0g ze%s`a0|%Lo({*k}#$YUg^Dkii&5^Hpju zM8doT6#O7k1i%yE71iX; zF>&w7ZJJ04T=lQEomaX(*t7Tq&d1NEf=F|m_9}G>wCz{NqN+YWShEVes(gF;He z9y!Vus#Wq%b;kdqnb|CcLe%aM{4KK7ARf%gsJOT;7P7r@yc2Xadq-=`$!>|oa8Zi5 z%vxs4YC@IQt$fo}X3eOJkk_5_j^~MQRbR&1Ako!Eg=V$uH@&Tfo^W!{zjaCEthSVQ z;mh2+jcYQNg2qpTm6WSq6A9a{uTt>3W4=y7%_OVgI45z1we`Mg=kbo1eBL*W-YBO*vP)D{vrZWikub>-?M*YRziHn1LIS=UZMu z?as7|-F0s6{CcS6?CcLm%06QlcC4O;67odqL@^nU_h+56SSR*+v0e%+wPXbLX8 zaeCz#6ixXged$AwMpUW{X@Pr)1W*Yd4+c>=Zh6Hdh%Y%|vs7F+4PZulFf93n*dghx zWGp%49&`10Q5S7Iw|h*F-0dBAiLbQ3hGgC*RDcM;+S)pVTp)j_9xT@JFc2uQuOr{l z$;lYLc9e7Q_q%Cue0&VpB4=Is2cnoom|HvK&5!NU8 z7`)p0VFONeM6h7#z6An$`f8{iED%wC$Ry>vMckfVUe5f?K_4vI2om7!{r&&;nOpWm zfB#p2x>ICnRm;r2{i?3w3IR&u%PhrW_{HitV!n9pjWsumSO>ucmm;49XNr%u{IxV1 zq2ZB{9Z&{_hllH9t61?7VZG1EF%KDPaM~iHkxA@SDnmuV!oo^b!hu96^fVfNUbQg2 zzsZ7dM>b9$&?;qr6_mgB6Mn$GG?|=7|E+Li`zjPJhOQ_Ufmks1r#Y+ing1-(X`?u(q{`C)(Xpt zW@-u=1{)?7s@a}ERNzJIUxBOT(JRf8oA0e#Lx&nB=ca%9^rqgO?KfdN-#^=OuC8Hq zI<^0}#%EW5LEtO&Yt>;5bFgcL`G#t#{Zonb@F@a@=auy=Hv1-;@d;{mo^|;f1!d-P zS&Hr~_L=Y$f0o|HEi5TB92hNQ+Hwv3+;PXcqVP)~nh<)zaBEiWRf9o%1G%}q%fW2O z*Q3&orA%SL+aXf=!>gZ#DG9F(xhuo4Qq{k;EoJ&B=TOZi*$8hv?@V-e-@wL-+)qD_ z9-0#k;pYAdOYsY_=h(7sjVpv2aSSa>Gg4rr62CAbWW2MruplBU`(^VCbo>Bg3xa1R zrj^xoNZq{uo>itctKBLHRtu_Zz9!fD`o32vBqq1#l=o;C1k_-Q-bU(2TImE#XH2_~o zFeYyt82ARrbVPhS=6lG|&JXqV^_?WlU|sC$;B8TZzD};hNc!GG&Y!RdF|+T^_rJe( zeS2>&)$`&M(C#QGLlHi7pz%}bXk2KtZrF0%MMciy;BHnz@Xn5jAu=DzH-stb%?|MX zoSB({Y_-|&oll(1%wcGE2q4$sCh}WCqo=;%B_s67hfoFsR|uU#_|jZsFy{KN(;>Hi zrG;BYn048&@qcrK6`7%-kajfia|rlgKWg1`Kg)fyWh;eb(jie8;7 zClC1PUY)t@?Y9U(&m0{cy*-GFkB34$P+mns*ik7E+y$Wqom~p?=p#blBnL2 zWNlOR#2pWC?JR6~hMkzqQeA7Dr!TdtC~md9$eO1t*;E}Me0HU4Ulou}nr}_gU3Ez( z5nS7PF_H(ip^eM7ajT>|=kL%kaG%!i(`766Z<}Uih)XJ5*ELgr=T*JPZe)ut zpCz2yyIda{EPbV=nf4kd^@4TGKwlp-l8Z3r&NJ5Qlf%WG3t3rLd|8LQbFD2cv+L`* zQI<(7nXo2#S1@=^_C@H6B zXN90Ghmw3Ax);SPd0(*4n_XP|1S<^%9A3I2q`WBLOq&lLG>nffJ!2oG8FkVM4Tnqn zYeQHQ>Ya4&MV7nX*t1+pwiQp8v27U(^c@R1JSS+^$^wTgIZ=3nHEFKVhW93pFwwj5 zG~VKO7;;Nwam-fFJL9*j5h*4TV9k#nR;_c0PlylF*|K3hKcirwyKw3_(5Q%JHxB8w zd2}J@OS3Rfh$`IL@*guKnFWciPu8ktL@jEL~ zH`K`bnXNAwh^g~g$kfWdiuRn^DJwqbGRCXl*va7BA)+b?i=3aW`W)PMTrV&hj}H$I zA+6xMa?agJ3x3yq+A(ItXF4fKC$TAEg7Ag;;5>v$N|*SSSZxj1G#LJWfq>YT1^s$&-bUdq zPfx!WO{Jh~KaMb$0U!$(!nBRy`hu=g(|QB~>uuvZk#E@le8$W`G*7=g9-~)goY$Tv zl2R%5YrR+Fc&PNu`K!h_?k-7g{U=MvckMAzEG+0Jn`t=7>4isNWPkE8XpN>N9DUdJ z+;1f4>bb#rF30i4#=3uC2)kz;4KME)_!6x)sq0MDqK~}`3Yt?$HB)-CJ{FbZK<4W! zH}cv+cA}`KcuS^kGC~?vsI}a3Ww@LX`J4hCv6eNCJ2?eR6E`uZo9aCj>2&zTb_k4i zqm!_$E5&Tu_O*z=TFMKWa*$jSs$+?nSA965=5%8E-_YO zjJh;&Xr$Ly5BU%Oyi<~_nyU5p&hM^M$?{dU*AaD;w50CY^fT!NI|J9;fc*U>k$EpNO|oDiV{(=SIwM2NSciq!PYX^f0HMqf%9p5@MX`9EuoxDWmoJ_-e-^b4A|YuI9mob3 zO79SIj%BaoVdjtJP@T>$PyZ|eqm#{pL=5~&`vW?;-d-;C40tKZ4KjXmkO ztRaaJ-qHzqw-KfnqxV{dPW3|X`uN8D&B?e&%SM#fJq1Li!gq9z8QW`$<|ovn=@(SQ zJpW}Y@tz;>&E7ljS>D}G^S(Q**rv9!{+og881JawI*@xezjq5FPj z|Dm=o6tBR*2>{MdrKN0IZZOLNHAvrq3sGlR7i5E=0DlRP4RPxcz$Vlx-%%JD8P$R> zeDxua!N}i(l31N7j)$FH`GK`E)JgFD?@s@^4wXdnTx;mvQ(ouo_W&E!{jEn(pG-x% zPnbmdY~qi(xnrS?T&wp2Z)#>%Rs#@ERFf>l05}UanGX@5gn)pc`VegGkh3Cj^yuJV zp)iai7c6vMCZyx({pf7J2g|Q#yZ|i!pdNnxnSe2Igd>Ch>f8>6|9JYkP)X;n=%-K= zz-n5pKib*3h8gi3fY)ZoL;hxLa~pR2IgbIv4|G#S4~lMI(CPwtL(N*fa2pzv`X zxp}Y^s+?m8T?Z5lkDr`)PV#CcMg1BdkN2!|#Yy_|bDoHGKXRhhBd)pO0=X-$PkL$$ zU0Nmaqqwsge7ZbHtmLdu;u+G#OqXxl)@yX$UdBn1j@CVQ?P>IbKI_2uaG@_$Kr~%` z2NKzcrNjM00%rEB?5elU8ZOx386#Ecc%_46!4|xe|L4#QudPYfA-C1RY+v=f7N-NV zx=VWHf<^x@;m;q%LI@isBjhN4x3|+d@uwqDilo>FYf@~+Xs`0>fas48vxLv2q9$-sqQvlZgiZ+YY7zLzF1(+XH* zmv=1v+137+?%~6*{(*hOIVD1=ss-=Not|2mDFZJW+qVl0BLhIx0XSg_d|hCj7?zes z2~eY?swyGy$kPE;WU@SuVKuhho)#ov((VLzHj~~IWQquQ8WJK<0-?|nk)TfkLyWCG zSXU(mt@pAOvk;4SacOD8i_?StJdG$Yh$a5Ip2TK~)R}Yewt6rJhx#^Lzc~kYKOwC;(6dp~rWle0 zy!at&F9Se%xPNYOaBx84%WVvd6gb4dxk1u82o`oRl)B(!av56Zb~L-N&w@)9UJ zEGDXz3a$Xd1HkV)ID0_5r)y=^4bp3fg(Ihu_&N>Q^)9RYP;V5v9a+I+@{NfZu_KS8 zDKi@ggh#^yg7@}FMo9>WeyUbXdHeQln7{b_{P~iY!>SWhYbZ!Etzr9Dy~$dabEqZz zbJZfi2c_6yO_|$awP~WJC87yA>*U_mk}_sZ8+Co#rmQ=>sL+>9H+>$p>SOKmWf-rU zDCXvOHE}VE|E=+?dP4qqQn#bxk*TE7uDHH>2Xp8ERT~WN=*`TybJ8SZTnq&kcgkc=5LTSJI|C+EexCC3@F+jy6(7BdG1I zrV{)671=E&Bobm@RJqQ5`gM>PkSb<(IV%!*dRlC`^d^?WRESwd=J(^rl{RYxVj<+l zqdvEp*cg9KU%SrfvH1|@0&h;L9ZUgw(1!09ANSSvM9o7?41L`OPlhaQQWSD)>%})o z-I)dTDcU*8`-t_2gX2QIT-CZ*9D|m^tDn~bAJDf{ z-Fd+2x=WcbT5dR&ujP6n5cmAUUq38U)dDiA+S=zF980hd*9Dxv+}GCL?`q7BKoh@z z$H)0Pn&w@DtPb|H zM@tSu4qLUo3mA7u0zIm)tx4qVLh1Ct=~#yB*%`{eAeD|nx~U-jBCwU!E;B>JVuMC3*Y<6v}18{P2 z7!`DN1p|J^0ujOBm9hQ%Y!}F7y+D$I4J-BXB?|2B-yuw;GBKzKA_Y%yA&pkUln%<=sBg{#cYY!FyaihAthyphqAaaDR+I=XH} z6>y#=ON;U)>Q$}(a8NkYJ(+Wq&eg3srq-ER#w_l};YH_>8XImCY2 zD%UYOnVGgY+s{=C8mY_q{xySOSE+r%&Zl$h6ZdLj?*g^*Jv@@SyE!b@3wCd-_HvWN z)$=0%1W(;BTN$&c(9_D}6Y;zH7~tC_86a0nY`c3Vji(I<;13{r2a#}u5XpQU?T{(x zaOrRG@`8w^*Dx9l`5}$%Qc##6xvMSDyCTvZP&%yoPv4+7yYG2fl!Tmhb!F2&P3(r{ zy!Fmd+d`pm^|{TjQ*ZSy_!Yc##7I5}bn&ciBvU zs096v+gUj{hWHqnkh^Y&7r@qy4z9hifLpE`y`cjS8y<)?-uF#?9O}&FsM%pe>|={` z=0Y%~l!|RS`TW3Cw&I!9vuER8+wY;)zK>7Zb?f>q`2vW?x+gdPM4SP8_O7meO0wY7 zC=1*>{3i0@JEU~&((@cYHzh-lXOl{rXmWy|alDXwUSg~?8d=6sty#;vBc_5|WF=JI z!6-S9x@;ULH(Ik`py;x-Q})W|+2$+t@l=bm%EN?Ug)=65Lw8^7f=|$%>@N2{fhnqx zloTe?_~dKG08N6$e)+HWJsCKmu!Y_(>rxh>{Jc{CN=Z<=cpgki5FJBjqBhEW^$`a? zxx_Lc=%K$GN6O6~Fc%f6s;kOo38CFQ+Uoh@G{v~QEzBR$gi0}qP0m5zJm6&=LJ1_$J4!KKc zq@Uo4!zueIJCPl)qGH-pGf?|1#9U6wYT=_i8LtZ?pTEqERHoiRJ2n5kVYNS&sPKVX z>L%)VtResTub#h<(CVE#uyJVdI@gtgSDX7-do~!pGLWdMgkwyiU>QUZZJ+gKP~$uE zXq4zVzlx1=>S_HWtc-!H5a?cuk^Z?tyG9|SfR_8;*0(owuO)-1?e(w#-iPh?vw!mA ztj@-_G~_LX=5qik1+DW{UmaO4O$;dg;&MpC0qHpzvByHfCW+lWeLMX5= z$n|%D8vZX?@H&``>{-+TxLX2)E8ek0Y@u5J5YhX0P|9_>E>Ax=ms!@`H~nj5l%4EA zl!59mimbYV6qTblzSu&cqN!9br1v^K6YoXlo-8v~1)Rr9%4fxt?x4O>iKpa#`eMxU z6-m_Fg~C(Lk?17@`&m;4$$@5r<*V)3cPM9~Tln^zJ<>VKI1LLLDG!`PNFA8QJRR>& zHJiJm7@o2zjmeH>;)L3Q*d%dKNbl@>SD-L6qk^g1$UB`?(Pu4p0};Yx`<-G zer*DN&wKf-G?*H?6idV6!cpS=m+{K^U-z0^=8I8O|JSurzk1s=oxhs=ovcku{ja+h z@_&fz0`2Qgk8xd$SL8hTzFu_k>@0E;JrwanyLGa+oM3UL8WU4os3T47knaK|247`Z12acaC$I%@_~tZQTc>8 z30dz=P>38u=WSc8aquJ=ZmuxNYBBV#KoHJcjd(JeSC$Ahb*i=g~*smz0~9vkRl8V z&!KJk{e7q5az&d@j%LmbWQ{wZm7iCo$o+W)%G)Sjf!!-O#l4 z9P9Oe3yJ|bQ}G=RwJ|3=xtqQ+MmfjF-h3HLP(SIKfajooO^jwY0=n$6lUt>UB>r1r zx{1m~g*trJ?4c%7Tv#y}PXsdOemfW1KRPllqdu5Xf{%a|bx$a#+tW2rMG2Zx_=p5@ zarM4z4&@gX=10j*{SgKBA~*kAU!%~?AQUka$h3PtD)wFWFR;^402n?PH%L!QLzvU0 z>WlzRH2?dzTU9~jgY6>ycwV~HkmwX6z;g>KWw74AAO!xrlLGtYdUxd5a(mW)vsZzxU;h5T^%*dIVvxB*B4eY z&%f9nJq*1he6t&zY;h)Rd2(-zIH8b1jfVV5hlYAt;Ih^o|8cgvmJ+iHXX=qw@0a}O zpC8di$n+xUi_lvpHa5j02bfb8Z$vq$fs<)>cZ=jF<0Tl5BK93Has;>Ih_ja^VSQO? z;A?GHXDKa&Y8p!Zk^3&Lf(yZdbky;&jiBG7T|otF^T@>K7E|^+I7(VN=l_c0#n2>E z2Z|SLeFSS#)1NA7eQToPzqoMMd%P6>=Z-B|K<%TYus`$#vsIJD81aQ$XU2-@LxRt}wyoVHHMLSwpDLThIg1UF5lV$mCAaXje7w)pYCurvU z9EXG&m%J3CRECMjRH>fmhojXAp4#L;vogxWBbwPQ=1ek87gu9eNedq7wAVugveAEf zD3J$%cMq_&>Vmwyyb|OA3_92fGJLR(C?&? z3U!-XEoFz_ZE<+S>74HZu8*4ki4{I@KCkb67uPf$kUp|u&W$y7P&w~Bc*+Wx#y}y_)@LcOHf6Lp6?5<2y{bt^;xAwI`GQU`bl2w$tl~o7;{f zHs(@=)A4L%uiBMMW5=?Bu9S8w5i6{2gzag7@Rs`P{lgIxGJ&(H#8-P*?=~*@ew0_y zf7c+SoZ=U6IxP^dE5MWIJP?5+TjpD=7I-y46zHWoTyl zKN&l*GdC9M!evCS5o3suX%lU22Ms0(!QMgH58 zyl`WsVEao;819eStyi7Xid}TL4722E;IBs6y0nD_od4)G8F5&_5x6xuKVBF8Ft0By zmww7VUsw&Rjom9oKJ}IV2v<_{`*f2C+{BTorcs=wXSgVzxz8VZ0K-*P=cR=l zngj8{C{r-C_Z?(@aoaEJmQI1+Fba@Bnnt*mlrpTQ>hJ!9K_(H%!pbi;C+l)@d=R_R z-4WxY1!qjS;Uxhhy0?ItLm(`mY`3l*ugK^uVp;dlw6xAnq$-gXIY5@4z?q1L>KG}p zDNM~@qJwiwlHXh_QoAfLmF-2F-ydO5@i)>2dn2-*T<;<@W_p0jm`z}(tLcZqMmKjF zo{Ect<>eCEs&YMPMCNSziH_wzlNkzQ?D$u?-sknq^YDm>tciMww*CeAf@N747*qky z(+a&5@LZAm5P+!WWra%M)|?;Dh33NT19eu4B3%|dOrXlKMHfJBXfy(Gy_S} z12iMC^I3|uU`B;ZnCO(UvB}7~A;$uy$ai{sdlmE4zrmr@mm+fKxlIe2zdViz3NlbyiOt+Zdc4wtKfl(nH+7dybj4;F2((9x6OGlHFAOm_m$9^@P10x=^X;5N+A-$Fc|vx|$(+8`sf zRP;{}!2`CK40+eU+)IK7w$`j~5hMj9UQ9CHXrSw{n*2@9*i^8vU_k1ysi`C&cL0?C z>Ep-i)^!I2FhW|&tGGPlh_BLm4`_JZlos?jgFGQu=X+QX6}t#u1)Kq(rGEt<`DFGp z6Q=$j-dphWdcY+PXeCc5DScqvuy|aCbJ8(78VhqN8+ay;>%+g`tHV46<`-Bq+<%Z=jvB&*dwOHvUW+q0qfup;4LdZxBlZb@6RGG}@$9|754N?pzqC#&MwRMc zz4<_wqV`J1xI~&UjC!}IfW99^M?bIKzmJ=x`5hJ5dy+IywrDO7_vVh^yI*g(3XcyL z61TQKJy>mC#(82t^b{e)70RWeaK4*IH?p#-KA;IEYUD6zU9A^zT*ccXU|QTRG7xTV znx0t{1^6$9%?MM3kME$xY9NmUSb!AFls+SO9u&JyaC>h}q*{lPF=*5hzE@c4W?pM0 z=dxcXEV8iyZd2cPX%cGB9W;@|VX~iPaU3VEqil!d+&*+KzL|ZaXT2=xK@SajJDe$Z zUjL5b`q@FB#*(KAZOH=$-PXxEA71D8dBJz@t_>LcUheJBQ&T9|swgpLwd{U)XaPvu zTS@^2?apR;mBP}(Wa+)d&dWoMK>VjbB~!F#vwOf~RMH^u>u6KY%1CsB_yr-b3N3>) z??{S^>-}PC*d97P7{|CL3SeYe`!^zf3qn8v@`pIKxAoMWwyd_*-_j}M5TJ0pNg6E6 zQl#^QF<@xJ74`9^7AQ2|IoN!MVJjv%dysNhERjV<;eVCSHQb1OmP3QV1di(Q-q9c& z#`bNikM~t$#beHf+VZwc*Mu1I!IKi?ir5l+GnfZzU;Yz_}1({4;G_m+9wZ&?*R8jZ2Z?k(~Wacbt#jOK{;;x#;P&Ohs0Q}>DkQwzgLDW z8$W9?rFiMLv!2D*kaukO$5YuXqyuqPwm_Q?4yb03I*9>!%6u^QJLH!E(N%0~v0frQ z1-#>K+`K9OT?p+H7Wo@sQLPQ;r9wPB&;lc&6`s@$g2Qfgs6YnJej+v#Y%sil2>TDf zxrcox45my)6%`rqdf-*;KnL0fpgl04ejI&u1$Zf#_{A(7I>`8}hyN@Hl$Mt#OXLul z+yUB>PKfwSTPqkaTY)5c1UIx8DGnlJ_J+xgyN5@WbMLW;FZ}On`<36Y)1Sh`9{`2c zfB(YazgWRA0tQnpU=DvG)QY1E4jn+Kh=);JZ<)Eu_{0Pkusb5CrS(Bjus&HwlD^we zA<}SpN`H0ab>$Zvd>2|4_D#@L-?)LKGyxj+8`J_e_V%4SYnN%HJdS^}6lm5rHdaQ< z=;4Ed(PtnuIB+(GYf=#$pPXC+*P>A4LjVw-k^?{urt1K7psA>+{Qmu$)9aEKUOXhp z;2aA!0LagWuBZh-gr5ypm!H8t6k;ZIVa&~DH69IA;B6Q?!W54bhAJj~KkkC#;qSpg z_SUmVg(xN+BcM97S&n`M>|qAT2@^F=BegE9mzS6DuzbPB^SW%R=v_$2>jdraQ@Io$ z?SDdpO$b{7WT2RuT3Rbp4FXW89iN@CLVhZoHf^J2=F9+NetwlM-wV0{KsZgt${B$f zd2CbPo4fT_|W#&V+aHjs37OZJGrkWzB47>+;*!W**wGngmoRhcG%PYq{QDVH5WH2VbUoJydvQvhFYw; z)Ld*wzZseHbtvb*9qUebI9halYqt5W{wAyQbDEy`?^-#^_8Y@EPDA^*9LhIFMUsAf z>?=61U-3pbq5NKn2nG0agTOV73i)E;+Y^rYnhkIILP!Hb0=^r>u`A{&28=mv{&oBN zh?~&mIodQ#@a)(7{4$qKM$1hEkKQEs`v<*+bEu2Q$taMQuw%H`jz(*= zEY-B}(?bD=Ko}j&1LGrpyg_GcCXDB3v$xvK$$M)u-R9%XQp=I>rZmd(tx=JTdJi=g zr)Q0mZZbnU@Ff<>kl%aACFEOdcmh)x#3;vlP5IPo``QvLv(q7+rFr{5gMY)GoQ(B^ zw&T<90!tt|I(GLtLlADpn<6{t4;Y|O)vO?Hj;>iF#+tiy^ZqwF{#7qnk|o#l={n=W z;>6nH7t)OYL#w*%-xISUW|A}x%E?0m%IHi&^<;Dh$*H@sLLKX(2>o}Ay0?|NMh`UI zy!=Fp+R?DpHcbbzC=OD{fA^=W(G2v z-WnS~-n~XEtb5|Q?Dnnv!7nlju3n^SfFs9&qaG;1QXmY1`}1Z3kJAsm#!s#WaDcIZ z*amC~GROsyqVfM2Qx?m=n#%cs3i6$hyt22 zk~}feXc$3>fT5wGffQE082I*Mr%;$7%0VK??tr@FMYRmq4ha6f_nLqs-gDg+jeo5E5g# ze||P~b(z7_?UDr>*yq!y+0|^Fta+$Kkx?!j%bH9@$?y!M61ef9TuU9e0ZG@$(}rYH z&@Mde38DefRJ0)29S#HQ5$44D&^EfR@d4Ea?in0HLjT}k>BOy!KW^7=-FpjJ%m`xu zl0H7;(<>u7DllMJ8!A`=%RiK4P-m8!4YccCbS6=J;Xe>u?0E%Uh|*I$3}~-sq6|)N zFYP=vy)hp6U8_nZ<8jjaJe43F>($47j{x(O#QC2{p(Bl9;4c(4$i|4NaV~mRq}#kY zfQ;QY6S#L;djt#&4b#_>P82W0uP#F6$UTIEvz4;s%Ceso{Tx=<8M2yudmPPt?CetH zv}aV8addqYVmUbu3Ck@@2_g7&8emJUmq*0&yQ*-C@4NqJQ0O>>5&?nC&49( z*WydwQNZkKE`q6{$!kMh>kKFXkGZKoiIf=c*@%97`JUA6@b5wZ9oiS|y5g%sJxWUI zV&le}u}0$I=pM&kDnR4V*uy{9veI``iP~v%ObjAo;Y1N1I-C?E->FC@C=wHPsB{7vhhij^ZT_v$3eYz zcdX1{&>PL(Vl490!79$EmxAGdWQr zn^L!T?oR|u>F?C9*{j+6H{l&9oW;^h6OM9TWKp|GQZ;IPrG6)Mr`|+EI~+s%I-sv5 zNBYs#3y-b4hFfWJ-Yjuu{p=VCG@ZzKx12*zdleZ9oP?s%G*x{ph9?U|hShk~z!4;l zD7#j3>ammP8VH;}cdBpHdG8^5T9jQJt8vKWJ}Q(E zV!+%#TvtPw`}zPY508$rz_nRN6ANsZ4n!1}rHEk9)ra^**0OM%fWG<{? zSo**F`XZq3l8aJA(KRz`hkihg77x0=cHN2bhaep#NLHj%E4PT5jB|Jozt7C!E!O0=Sl!fvSmjdvWV_+hQi@P`)1{u4sko}xqJnkE>aSDZQV=+@*kUCvHASPyJ z>RT021x#CA#nHB>xE7%-dv|Hbzmjn9utO4nD$zM6?OIOg(iY(j#_QZTTE~E>NQ9!} zby4;V-Y9eeem&^kdwGsZVtJhMDe-HCzDiI*pW4#e>IW1{^$M$CsEpXz*@1-QS6Rtv zHkfO=zw`y}?fhy(yFQn_g>fo@KyUn{6r-y=!jFgTWP@LA+0RK7VKaWFN2C-qKf2Aw zim4`>KikcA5^0U4q)URr!!L&qK){)sUGH2yShM5ZEa-@eh>dNp-KuAe#z;2o z`(bZ7m6*rlbU*2fZsBG>d|NOhX5ShXgeu;n+G$9V4(0efLS}pC&`9PbiqqEAt!eGo z=x4yPkZKEekG8RVqyQaCF#m@Jk0UFqo3~iqho9G_p}tQ^Ohi}+etLTAJnw$$PT-Kc zC&Rb(oGo?r<=~t<$TpC>v!^@Z0N(E*>BH#r0ToIbnz;&xocxKSf(B#`7{e}or5+y_ zw^^oDZksMB#g#5g3*$)D=(shlxQ_YRb2CaCiDp!aT~$?07L6VO-MuPVfO31wtoa{E zG`LQV6rk5C^xVP4Me|s5)ibBK;?=oT@f&y8p8adrl8~L2V~uwP>D5pzTS7L0pebG3 z4HxlL3F@75$JvjUk9Wo$OIPt8js-P&{5;RdH&$sN57RKx)ha@RtIA+go7)T3^ICSH z2Ia#mze)ph*$Gzu2?n&kqQRlo?C5rqL< zWe^4x3cy@ng|!Zhhy+tbgK4eO7-sr_O@#Ajgbh7r4qWVj1G5>>CxMLEAM~+`bl)a-VGq=0@h2{tF1@U>U7&^C z!QgasQQID@xFi^ z|HY||-IF0(*wnzCdjw5t_vINAvKL{MqpS|)neQ99q@Es(kYozfZTI5Rpj5hTkxg|c zS{8O61U+4WqSop;sStF@n5PeVDyeZuardSOiCU@H`6rhNXNbO$u!cIg3!!pYP5n>} zd#p&SF_`QH9AXqsIAw2k*tSo0hjed@7C9`vF{>~Uggup|R>xgtKG<}L@A_Ksk{ItX zmQM?>(bj_4dgbw#s%qvIZgPoclDTcxlwmv0B>;mdM<&JNDJL~oP{#sFFwiJ}l zhQ=~={>6mGef#0!!Vz=y49k?PHNshs=5_{0gtH@kY-^Eg$6RRMuZ;w9*=VCH@Iz#4 zG(L5~YyYh!B8=}C(bN|gAaIG*RuLlL=1Zd*Y3XC<*E`(5?EU)>xeoxer&LJ^!Euq1 z+6S%sPp|k{tAFHD;iv14#DKON4<|YJ{_JSs;o zU8OBFPcMQVi$)q+hPFA&#E(opiSr{E4=xoG6}w(&wYQkj692{IIQhq%LOu`pp|6ax zgmxspM>)K4gV!#o^WwRq)O5o|_xe%o<>>~;B7=I<)Y=fM!yp3+10%!oNEv-ehE%U~ zhio)5M(qIr+m?bYk}ry^Xvvl^ij4QnukGZlNE1CEU4nV;!9jD5WWtXbn0VJP@#!C> zi;ahR#;;iptI@6~)o@;{xhZrvZjR9VKa>;m3x8+CdfS+N?|9d<)J&<|qi^>2>*`vp zI6BLu>aO3>ipkOnd&ey}_j|0K?5ry*V&%`fl3>6vZtbw8XrWd0o6Fh=J$jhfp!@#% z9^>9kZAXq4JM&APPedcW;)|aA?#F+ZcY#Z|d_a#mH#Rngi;oWkZ1&gBoI%)7ZUB|{ zbpe3}-TPPn+ZA8F=U4Wr&8fCi9tg#o(-ny&$% zJm% zC*pL#SJIr4hH2ymd>KNRkxx1qz&Lax_{8teg4+7qPYm%!zTjg+c6ic2Cn--7u~Kw(kvlK>Xz=r`yhh) zD2xukdOZj zGE%z&Gfp;=Pe2V}F0*MLd*qAV(+o@%0NCsRoypf}cr!vHQMdtC5AVU1rta$wpirS@ zWiOyleF7;^$wKdob^!ltgP|vLD3|&f)Ne0JNn6Ngt#w@X8i|o|Xr4hU_f2 zTsXPXuez&10Zb*isr0!wPl=R>u*mshQ=3qEG&Cg6 zj^C|yljcv=ijUCb-@5TuQztXV5TmJc4fRM!2(#R2Zje!bZZ=3+_0POgE`mkBDahAy z$x)(*_Ywt;g(rTvVxkocvJT3tj>L>hifpYK4~otm7Z0h zT9HX2YPCf&JMg!3&VVfqOV~li=H9}n9b0@==-?h|Ozp{IINsVFbzBVWWNDuH2;6y z%w*pgD6^`aOXTUk1wG^nhx75dSwAhA0DJD?9>{+H*Vz|3+XY4^NVXtZ%D*>b8oD+v zkJHl4Gw^A7z{>jnID7AKuKWLOTsyQSJ1rwAkuswsvNMthq3l&gwn|xrWN)$)l9gR{ zD9H-hGb7oX`+Rj>pU?6AjpIJ<06FKr`cs$FtoAP z>2h39XJ=n8h}HmJ4h94P;EqiKya6n{yHe1+=TU?4{Qtk|rxDnR*Sa@(ZFOb+=MT0R z`Pq@IBG1Nd!hYfRJr#9)fW8#WBzCSOf!LZHd^Vy7#?R8JB2gw#> z$bgq9IxJ6BVGt#>IIGxcx%t-Bs&ez?pL|6ZsPy!H>)FnW`flfH1vfd|F?!+3$>fBA!?z}50x?ldB(V!;*MrzQKv>y$h?k`VD zyS0bEJ8LzL-`HAUJ#xu_k*>MsjOl`NKgYsANmc&pb*B0G_k>q&KY5*=p(*)5ODPRo_yOyR37w zgoEG*vgT98-bj4)V3OX)jGk#pcOU+^%CLV`q(doKO-n77JZEm@j$-x}=Al4ainsgv z;uoiDIi?mC^nmCqrE5fBEb$7QLBQ;!GJKgWgq0Q>s48HV zrKp+uZSR?g`2;)r3xH}Ci+{9=VU(sPRJ6f;#dTLNh5`UUp8|*@kT=PoGcp(f<(hR5 zL6bquKyj;WyH+A`(Rtm0nEs@yW{)%`?gjlBi0T1UKH!nT0h~KD68`u4BgfY-I)Rq_ zAIpydQY80Yw4411Q6@}Q2#;jtltFYJ;k@^s;Jh`02up8vii0>pSeFx%4E$tq$T=Xa zrp4?7ZI27i%CNow=0AJ@U^t<#Xkze#hROm~FT}(M=Vn)n0Yq2M5X@st69a8ka7ai) zmVsjE1rtg1G6cMe6uJa#7-xTX(%~P-J@Sweg|eUva|v5VUV@Dv67R^T$2>_Y7LX9- z|6%FD3C5OFs+Z(F^!RLrBkeO>ThrTvEGjEk+nNjT@IiZ>pXZ-6stnMCgoOp_LrEjRO^cg)f70{|_l znq~ui5!S394Er7>76?c=EnYT@c$TT#@K%vU%$uPW-eO6r$p>;Le}2M*Am4iAqpq`a zk&y_Y_v;^%N)&P&X)h5rYfhD#W4l4fPo1vqWT}rFR5m}maOSp6jN6fQ6o~fukxy<> zj+K4gPO%yj?Y#WF=EB_m&K&A}eS@|1vkO%hbyTZ4T=(i>cxybrkZ3(Klx5Z#N~rS8 z+C)@rcs0H0B_REno!1#~W1I#m)r8rGDTBakSt%W}J4dbx3bKy=N~V&lcG*GvAGQEC z`D_KILeE1?$M{3lSLUZMxd4pwC?a*jV$#gXS0JL#E4D#Dk0Hd}FPrb{g*Ls75ACWw z{n|3-cfV%7u9K#0;`k+!Xn1wxdIg2}SZS2{Y=V?bqxqbcAVi8wJSPIdRlDs(?IW3L z+iTKsi`78mQv|eB`ZqppIb}-`bV}8VjqKh$k2Lt#(4R{PhOOATu@}D4QOqOi^bVoguH&I$wWEhrgyf|pnTNWQ-2du$gy?@KwMrKh-$Y3n4+Q1{U~5#s<5A0QPB zKp5oDpFde4^h3qc0l|Z#kVANFmI6f8JJ3g?n|f!^$Q&LKF*QFAq@S~JMbw~#_&~0E zH4s|~zk_uf$gO{-r?v5ak>K+wdaKj_z1FHxX8%hDNG;%2`wMiJH19GnFx!w?0lZZg z^JNuPRfX50q`F^1D>l};H;Vj!u|`$`-^Emj5QCv<+_`HP!ObR4Ch(YH-i#ik3}X;W zOlC5{D27jn{`WXiEa`gCa*9y^_EC8x5_1Q$VZwS5x^WOvtQu_~wS10A?R)4!*BATu zDkv(RRL|!o{H9QF;^GQbN|Uj9k^j+#TjW-|2Se-Y+4l6OEced~dQ6)xslh+>h319E zBeO3FUjFOrx47*uOsM7RCZ}`Q@1;M&eBqFuxOkx_mEP>1-dX1rlcM#R;*~vcdntC= zG1Z;91IG~uLJukc3FN$CphnE}zhZ)vyYBZR663e2Cr5ut)SpowX)Ll&>l}h8zPq7XvO})O# zm-7(!$UL2sS}sBN_|8o$*x8w^l17j2DAq90fbz?iFKrp73^UH_Ath_8i@z4S}czFq9D30Pepjv{CwiQ;>UA^bL!6WlidbDaUqO+dWZyqDqF zF*Y)m9Xo3L*(xBTjG45MeHhYxu)S1uW@$Iz4iYjG(%(04D82SH^69f;yvbN;agy6x z^agEX{>|Q^?M#vR>r@-z6_Z)LtE{*9RKprx7Yd}ZRPe=p5~$%{bt*TE~QNwJ9C-^v=n10S^`wH zw6*;7I=-G>3OOy9x zWUBDf7zn@i+>7b-g+r9_>A1@2 z46B%D(MM{6PAY!uJ;+ap&T5mo{$wq@QpmVeIQ>eo@dI6esJZB|Pre>o#hLF52>Om` zO^KdJdapjI?cTe3Uha*0>E|OEmtr2(T%9mbsti!36igbNV7)g%?u!O*;q|Kz6d~oQ z?pxJ2e}Ze)E5(^JkB|7}C6ih?gzMww5RNC^Zqj&oRBlx~MdAvBEmdem|2otwQgRO9M>DJm;RvF1Hhr>WE|C8oXD(b{cdURS7bn&at zM}sQ8Uc9)Ajprr1lTK6G{~!5V&>I5@ae8(c4;k4;qwWWMuQE+a@1wr__HdndZNX{;1)*`b2rVn9t$5E$U@Cl0yati)M3<63!u)~~KJ zN%YC_S3A9>2QC{=W3Mct{}sX-$-MS&?_Q95Nft~i8&HMxMUx~q(U$i4k$O1QMI@d0 zeU<4x&&+WykLvPqKZ)rlBAX~LP8cY(1c=?cojlghu1J6Po1nM&+z4&5??ZX}#A7#Kthn;e_u7q0CtnA1G=374kgV$BR^)LnGiW1gqqz4@^@Wm@KJ_Iu}fNuWWm z9AVA?D-Un5PvL!2iNPHDX%=v9;122zxjLn#d%7Sbv7L?6f0YOve$T!?-7|Q5am686 zW5vaW5#X>J|+6fLECEw$VDH+)2IAI`~lyWPY$sTPt9^YcV;Z9opduDZd*isiB&L)RDDzY zwt(SsznVh%C${=Z%F1|yEK!zZcS)uFhk{DWKHNQADfD$QJba4pnfue#h{l%hbx&zE zyqiw;N}DjU7}^T--nn7ksD5y(jN~x`Qs3Y_!J;Ou)sw=9*Mv^gS2n*n9BXI3?Rnpg z_Y*qWrXIspDQ6eh-E12qIcDREm1B>dKKd%_gE&s42*b)wE6bguNh@(;ol+b8(;CGm z_S}uXu6jrQ{T}6bx;wWLHnj|fX&bW4949+U7WIE3_#04Y^>p>vMiRy$eog!G(F3$W zrM?39w@+k0Z|m#7dy8a0K@Rpq|2)>f_k1k1-J-AYxx z?8Z9%5_hX$40y)Zz8p)hLJQPaXs0?K3wvr&UsFs8=}l{ zEW1US-?&R(Yj9);m~yP^S0b}hRiU_Q$0ZSR431$vM4rK_4Ez z#U@1xa+2}US#JGCLvH=URq>OW+RN*|<^?#n%ZQv9{c!esU)i_)UvIrbOHY6%s!%T%D*R^=eJO zG~#^T(@b^w&Xm8KmFRk#&B@I=K}~V0kMX)yVy^rob&|)4=Oz`!8%`6cRI5pMX>Z90vA|Y-{B|uEXGxWp2 zY~177`s8w^6p#8vexa-CJrbMiwe@1+-nyN>*Ex}-)D+29L7${lUVL5FD7rZ==Eg-a zKYAZ#zQZPlT!%E|>Zhgl2wg2-me7Aiff{qg&p(nk`o=}4G-{xl`bwXJgY`BhuP?pu z+|CzoIaOI#v`g1iDEe7Bc>!Ks|6^lo)=AP|n!?`VeoIyl9PCOjDR3K*%Im+s?cO`BGK@ggv@ci z{;`3ktQUKCe;(yl;A&TB`W4kI_G;4ug^NdE^cYgWX`8cm|5QEVrR%h`AIFD~GKHJ4 z{xZD6Cnr#2`$M6tY!BnjFp;T&Jmr+DsSU4X8(+8Ra|sDgS%r#~$OWb=HgYF5(JH)m zic7$Na9_~Nr))Ch%(_Y6ziXP^2puY^AKhp_Ja%CF_iNJfey`8`W;`0 zz9YBaS(_o@g6zw{P$%}LTR!4!sy7sVU(h#nEiFHIknEfOH-JBXS7WOI^~0L3AGXv^ zTQZV8DJ|V@vA`8fmEvyOP@{4%<*99kWN==9h!$IkD+Hf^uhKz{PPTm76NgBQKTsd_ z*!JvW+YZv7-m(|;%@iwX1jzG-{_4pKnVi)NUmw1>v)7?VIZHp!dV;Op?NjiUArjT= z)TbW>ING<|(+x`fQP_9lr4xnV*zk)lu}=F+|NM}m8H;xwX&eo_x3*rA5vl+DSxI2{ zRW0o&hpy{q>swv?z7aLg`?y|5jzsk!>$~frcXY{g6PSa;LbY|@e5_M?oV+=!;nG2K zndf5UL62+m9VNOMPyeYdKEOsH#jSc;|FVm+S>6R17rCFmX4A82eDAKx`7O!lY8FlS z70YDlbN{M6-#%;7t!zhOq+NJSbjawsgcXfNDx1`b-`XypT)v*r!Iig;R{|mhx#m7D zpX@jpX2)PJQ}{buUjLltmDDq7Z=Cu1Jj2N(%1o9m>rPN>-*xbfzqY|9X2vi*1C%Ueph*S1|Izpr{YieIEO zzUb#S!^WKhga?pD4mFr=WJ*>p(_37LR%01e49L?`(@C4&5aZc(W6|PlvH$?n?0pT#8N0pW|PJZv($-~ z_FcWE{pr-`diIR}k10|TA={#)y$BqP~s8mfg&H4u#U81H9S`XKX*mQY&=wMNH}xCm+-eWQ{1g&QDcU zm&Yra*vA_2T+d~+EIL?VzU+?``!}ovLj*sH%-*V z>-;v_+GEEkcl_sc6lUb#w7mEAvHf<%H)$pNzV@_7PDkcF8ZX{2b6Ya>vVE>+T5xE! z(O*$+A&bYhbk-$%^_^2wfgJKBtaS$^Ee`4`v(}|v55A?XZ5qGQRbF@CS;)QRR+?I?T6W{_6x-QN z&Iyg5&B%fwdsw9C%cY`_c)|Vu)L;D80Y8l!w|ApYZBgF|$KlQ9EX*O%1?VuEFPgB9 z8LI#7F!uGy93g&TUKDeA?d$65pYnHCuhcG9C7hMm(1@x25EGGcTkDk*#l?Q3qWKr= zs_SEB+S+eAWbHbf*SM;#vr2zDv34b9- zCJNjq;`Mf&vRt^-Xr`L55%lbLf_~t@)(Yn}KuN)D^8B`I4~5V73mLT}x@5l*0prFoiRzxIoBuIl`kgj@gSo1y zh2~juNW&Bfma@>N?#4NZHhr1CCU=WCBWNDS?yIbq%pM5_TwyAN&KvD7AYZ>PVX)d#uVXF`OJMLsB-pv&}Kf~nQs(4po zXSH4b#%F8WW%Z~F2pdw{;kMaZ^zRc*{A=5nx~8Y5l?yyLHC-@YNRG0sq{wun^qysPlsv8Yw?N=!>aXlY-_sj z@_z0*gcp)|f#wEtuFn9hr{?BPkC;DYZE|pMcr@$GL)_A=x9x7;hkFdk;&As_3HEC7 zO}W}T<)qJpa^A3w&La89Ny2DtH@K6+t#5mmlNA?j?5W@naL{4l%sr#lA=u&E%CX5v zTf5QWlgMddK~S;BJF`w|Rt3=B_~)4^+>VO{_c@M{v!X}29Tv?IjR9o;)X4R}mz?a> zu&&H`IXaj5vWI;isQhk|>@Nyw39pC$$D6u(SSqkhGY$Z!$sOt5y?TFoJ`oxc$i;r8T5PO45~5%bsiE!s zgh2%;(ZnZ=wxp)CK7`~8{OAB|R4MlF|Ab#m%njhBlBM791RRWh+_caiDILV|Yayg! z>y8~drlvRst3|>_sv{@$@`k_vL8sLzaf~G@aC3nrNz9HgX8DedLQyfyDe+mQJ=xU* zgm5{EE(G90$?7yYFx;QTj$wE=I6GE4h|p-iBhc0c6qp1Uk+W|1+bRg#{Xso7pX$2` z0f^NUyg4%NeA?Xd_Es5&CLpL1!a~@@HKc0_7fnFc1o!zG{Lnm`sbjE9MKG`{=mT&@ z)d%bTW&av+Uy1hKLC3GSjjBaRKIRBJXTT#h&a9JTw=ek?tt&Kgzg=oIH#`M1TGN2r zm zdqq5LY`!I%X?8geGpy(8`+g!+pZ-b8yB`S**N>&$zsEA$dnGXS_UAOml@FBk(ir`u zef`R9)Z{*;>2NuIdN3;ADS>6-IAJ}}@I8KYy^8T?zQqnI7M6Ug@#-uOisT5+i4m{H zM5{I8lt7=ih%c42vE_v1O*TrvO(cexu-1k02Y3$F&|K_#9(ZOj%8M=!R?%e9+Dp^K zG`O%aGx4%>fMiAZ)#r=-lO=hKw3702a)k7+ydl;itAxXau;j&K?d}jj*eIlLAF?ZI z3fd>-ly5P-2Se*vxR()5n|SszbidGIBv%O}0nUlfG&V56e+M^0Pbv;sq>q?eS`Lgf z#1d9#U?0DSlL}y#^M*}#rUyO~Pssr$$&t=rv&gBT9d{sYby)0mQ&Ca*2AviR+deq0 z@k13Q0IG5?KEy`PRxuzMZcD@{a1R6jw<7z8>U?XkH2I!#lLIRpz9B)><3KpSl_zF@ zA>gpw2ZM#MZ|wLAOF6>53DQ~1(IyZ0(-1;X82l22!|QM+fP4Z&B?M2cX$I zv)vi9K(SVJME-$rkN^cJw^7RrkWzYwhpQlN=G`c#Yk`jL8x*KdTwD;QKswQp%K~dp z;-KK^L5MF1%TINjZbCRhOe5gixQkIJoS1o~s)?i0@WEsjW16)_IafVusOV4-iNPbG zNm03VYdM#kM2N%&r)0J{YQ_!LO?z zyi@hL$A9Mefq?*P+pB~@e}^pU4q_)x!ig^qr{_an-V`_y1n~x^VF?Nr>I=py-u(yu zKGlC@&p&i2-~8zOa2ZoZ4^zA2@z6h_We=}L)E4yIIT^I{Y~Qv?L*s)i$9GdiYv`3A zujF{;i%)R+KQqxTpP+OS{)xO+^Xza-Op{`#=Co!9Xqkw+6GMa}T>PPsKAau#llx%Z zzg@A)hbMo{sm%5MbRCVI^{*#zEmd1xTe6-vmW{Yr>l$!s?(mrqUK3g{iJM@O@H;ZH zyt0bI{Lc|h>F{b;Ki(P}HtD~(CvnDWP;~YY`c8zv30v9yhwj)z}&d|>C_gjeW z6d(YDMIG^Q5srDLx6;1ASpC`PjW^fZtK6)@c+Mdq!u(xst6De4pvPig6U6e!5G4|G zjAx-|{az@493S-}HT5))X{YvD;A!Kw440249Z4GTHRp2uB7C9U27g_#snJhsvdAqj zk5BF4cu#rAIm~Ev)q3x&q^TQsWw^|zs!sJrU%p*zN4as)p4WDseRwZJX>-NZRvw5q zE?l%TpYL`~zLiSrvOIVER=oDc<1K{?4dS=+A3QT-k^VNzRGsb0UB zE5I^|L<_1jnohqR9p$H~-2Peemyo~t2y5n9+v&UNYLFrubQfR5($gTt{%3CP9=O-U zz#N<{j1S}00+*DQ{#74ILZ6Ab{dRCZE5HXIffy!Dy&rmgLJ@%Z8pz=ZYB})5A{3iY zE4{JLznFq&fl&Y7R^PBEV}lw71Gv}9DWqV9LE(^pFH`r6Ho5?Z*#`0P_H3zEP#Dc& z2Xzb27oojOG+J0#;0dLNfCdZYUM#LejtPc)zXG4Rx+;L@;JSxF(%k&rr?78ehne@4 zlfF?-ePe{EpWIuyrVNmGeNSOK3l%-cvSrY8BbMf&ED&rI5KVXg;a7yW$nv*cBYv$Uv>|l);>?ObE zY#uWsFnQL#S44=O+g)3XO;{t(+RMUiPw&9UP9hpYzcY46hxLRud>{+M2A3-nO4hlk zuf#T-wH&ynygsuxY8Qj#T6?xtt(fB+B_6GTvdbe|OpZ+mYf>u4e%ot7U&!4zn$;`3RFx&#$kvdHddYUg<@eXGsdy zThTmRsK0@Oz$_b9*}{H<;z2)#+9hW+W%Itr^A%dKc+&)&Nt6q}R-jQtD579|D%RRL zFj+tEydDE(NPZ5K?VR{^4jaqQImEr2vYk2aA43pA5KXs3tdWnD^a)&mPq@44!iA$E z)$^|(?^kWI(nL@&?4%)zp!sPT0n6VrXU;&@!&apO>3=;Q^Y>_|2zd$GH{ymPs;h%T z;ir5|)EgmH`2nAIxELT(;wCgcgs%!*+z5{`SYnWW#2Q8z^TKnX7lZ2WW8Kh9$IA7X zb>w(q3F3mZ`LA;2>T|-V>#&eRHH-{)w=kSH^e3V|R%pzWGY^kJF$}HUHLSmcQih&^ z0XYS12>pT=s>c7!f?=X0`A|@B4y`MR)5h9Em*5AIG1o!A%Yf=ZHQ^hRRL)A~U1m=l z;_;iD#M-=FVw(mF9&Kax!H5r%c>1NJd6e1XNm z1IjR>7Li4wIgvZh<6?dKPrYrKU$pdf1xohzqe|t zE+qZnjB>jHHThbvf(tppzp7 zi+A6n&Xt9+_OjBlCB1$zG-YS)YYw`M?S7E*pBz_-t{~NV3m$QpU2v-;D6tu|XPv~x2OF#HFvtBG zd6E1hVVwq{2eutxQ}{FlPyWo)$s!|K|4m3sd4IXWh2Lt|uy|eJCk6%vle1#R#%~)q zOUufvbVy)^{jVlSY};|F-CRCZAcyY?9P}?Lx(E)H7F={ejB)|Nkx;uFbv%FMB7>+nH148g(({@>0$cNCc=+2~!4oG= z+{_@nxL%u&C^rP$dc1H=c})1rhoSDXLbfTaLkZJ@Y8tAJUu_Jg*3Z8PN&+4*HO(Mk zMfM0Q>&47TT>cPfFQEY&Fuk_Zhf%mi?eKEXHpT|Hit^LaBUd&5&op3>m?OtM6{BpZWD=UXWriAx`FG-BEYMj@5tEc+8>prx+ zyp`GmiiwpYk4g7eSU1nMq-(@`b{!<|csQXAPGmU0eV}_1Ym;HN#)f(3p99QlD%L%D%|VESBy( zWVu<6t0j_V28GXpAu~fKBBaSTFi`hwCDyVw)Tnb+)e}y_>7dpT76$9fV;r4LG}z>V zEf>b!2Xiq!Bd&nd=CHvbWJ@D@Ye_Ocwc?!tRkMr4--0P=0^=yWF$! zne=)`MUP@5nHPPfI-AOaZ-(}9#>rjp^Rd4wvz~x^eGH+IH|?U|VQ)|1Gq6L!o~@zt zj?*i*Fs)}tprB02Jg2pPW6cz;;b3ZxNuJ~I9xJ2fzRqID`_`7C$w~((=xU)?oa=I~ zDzDgdeU>JpB+18Zm)4;0#-9#PO76EeeX#3ZM~D-O2jVp1#&Qi-tk)g1*<4`g)y#B= z9ppGM=e6^)-riZJExTZkoRRZhB@aVl@-0?14tYSxhyQV@I;E;AGT^l9q~;E+!BnC z6SF4z7pocT{53!8!CD$++cMC60X9Jy_4iH+Tor4{%9yxF$Vd41a=q_4N5~>Ze5Y)+ zyt4Ju3c&Bmx1I=13ASLfcmb>c^ywt}h5BDkTk^?v%jtgC^YrlGy!Q0n`}f)e)Dgn< z3{>X(Fs+9%2f-vm$wAD?pO6e)S(k4hQR>Y*es9!(h;<_zxXhrw0QOo0p_l0GAln~1 z9R>k8TDKZ2V*;dN72MwR=PXb=72A2=6Nd(3WP*-eyB<%IweY6TH6TRmDmPxks*^&k zyw@S(Ua{OBBxE4)Lbt^e4r~?I817|yxA(QY3_No;6?u;t6;c-oRS$L zJdbnnFNb_SUjK?OwLFp0xo&S`!msvzt^=gwUP@lrXt2QB0!Ah-1CXIso}wAtkt_kb zM`HhVRNKgiD4PWIf_{NdqrSXcl!J~x1+-X_fe}|r*(L;=JVIco%RR$vRUU$&`)JnS z$PvfU$8VcyxIo#fjy|2PbAdTm2Qg~$`IZJEA|jTGoOiQ@b&5;t*0!71R2!E(oQ%A@ z0jki*0loMAhz>v_`U3pOnEw! zU5WDrwksD%E*4mFs#y0_`zEFt880DR6DKVe);ak(bTrT~{cMZgxO}`LNi9Wr*?u+p z$bn2jrYO4nnwMf}Gk52(dxao(W;pab0hJ(_&9!L5$-BzK{e^UT_4VAe%L|h_%dE@iw@^`0#qy+Y5_>`Y7+Y0>Xx#d~t~F31USV+5^*)IE_pPmU zv7exK?2~Cg5Obd6$^}3Il^q>)Bv^|>dCa~7)?I`_)!g#rj|>+84%9CiQq_1s!~Q~S zzyP^{I*(0-!uJ`?tTe^MJu;!(pFs2^+D;JXOEwM!GEq3d+6FikHZ8G1)d;Qll=b56 z3>vSI_EQk;U|}Y9L>*s&XnHA2z-DV$^SGHOWM6Q;LiQe9{nwk;$ne+5+_jwS>eQcm zJly;H_gCBkyijYQ8lMX-e=sv7W2$$%j^xkO)KSoGAk7_{BWxn7z`LF~aprHSe*4gf zI_kB-;I00EH=@7k^C@b-B;9qH7h@Vf`OEmm-vLhbY(vi{5cUy05`=9FEqe(gE!icH z7e>eBx^{JCn=!(F#bK1XyFNn7GH^@;-KuoB5W}VP<;OljK@FT(0PEjwBj1%XHZ&?3 zbr_BkBl~p{r8#YOp1?ly$BUDj-}evnfVtVzwYDNR(VBjfgMNGhmJggTql&T0)b*d9 zvK{5Wl~<6bWn%K>*Ua!-f+kjj!5I${{fgoUA0h{JVgv-I^Ko ze0lEom*h;nCDY%x`&*SvyNBi@1o9`(X?9C=JIg(oc6KHgy()h0xLd#p&Fvv%m;Wxy z?jpLlHUts{qqOUI^#0vJ;6WxJT9EF~0@fxnM?3lP+!DsZ3Gnl1dUJyu0u+LUj*}P9QSaV-um~;O7p3 z;g4-LxtyGw%ho4=eTWpjDI|*$roRX-uEZTlcml(WLk`?2s@ zj_gC9ql=Sc`;U+Ev}PjNnYx{YQnNa1iAxvMJ?|JRrf>Efoy+L+pW5p6DO>Y*_zx8B z$W(=;Y4*^IVZEA85}kpkf3+81yeAoO43L)}G7HW0sv^DUmT>h6hc$sKZr?Mds66fL z9!yQ&v;N&t)dAykA&Tmxq$5`C-wh?dfnnKe}8~PNcsoug&b;eJ)M-qQk6vSgx4`FhJ!q>XM%i zFp=0K>dCd3{;Up!=%pc!RGr_Fh`KL1t(K&i$&AyX$(t|?MhMY205}o(m#N-E1n|JN zv%I{#XMFqxHtxW6dOII>H;5Zb_wc+sinFZG#@}7tBKXe*OB4AmO?=3BO&Y!8hM1c|=DaA>0L_ zq9k_lxK(w4Am1)_Ai!v?D9+*A2?X@~`zIedpDH{}w~8J30BRmQsqhqi8W%j%F_wwy zA6ZWXIz*HY477+ibYKaD{0m-UO86Fxf)vh6*IIwTuN1((W?(QGk z+Ctz+bPjqXBGXy#cOzIRP1^^G0h!zzVi2Y$`FNg7KiMU5>@V8?`UZ`H-70)s|tS>9s-1Ct0$>G7M z$bBc@KNJ|{+?0!nrWF6J?^$tI)_0tEy07%(yM?Y;=rC6o8|Ahh<|}1(cD@}Ekqo`c z6|S@n0?6&8yKvSP*)tC(#Zr|OK`n2AG<~G!PgD7m=8}!C|6?kI!6-pr*Ae&no^o9U zFzuRJ&e{9z+)zWr zZ>%e^-~1i2GP%+y=fG!hpkRJN$192vByMfgE2cvvfS;ofz$LbS@80|@v#3m$u!^Rs z{`-*UFM;JgU&YA#qm76TFJ=&qOwQCDw6m96Huy?k6Lh+E@|5yB%L=mF;o&1K8OIw- z)@h>*n^_0@rb~5xbhKrdH8MM`^zVgvqYe?Lk{H*6B@xiY67t$qd5jXq(yy~Ft~hV# z%$Gh}1#h2yse6O9ulLhOr?ti9T8@m<8mrHA><*KqDyN)&>H93Qj*(>gfjgBipLn{9 zOJUwV#EUTbQVj?mu)X>uQQ@S(Aq8_TpcCTtgk%xfv&Wu8C?r9L3+| zedz6^+IB^XXW`=YTBBWe)&+G`GJ3)SnQTe|6MfHXm`$IPAhJwEHL87Pl5XUh((^ue z+Vtm7&;>CkRp2RQVqV&%RGMe4Ru`Y_VW}ddv+>(^k95TDIE6N9W`ZgwN&>U>kB!|@ z#WoXvt=CZ~Y_PE}!?Llv9Sck?p1LHZG|GS7E6VUJum>(I+7fbC9zWwRGQVzBq>>yXh9!|cSg#PX14|!^i@QafY!^rN zL#CO28qu{4n$Ei~<$5!aAA2hzksw0!_QXSA$reBczZJr*1WLN=YypIt8e>`vgTG=e zRQh(b_z)~k!^R9w|J@I0G)1>Zj+apCd@CMx*!o4Poi6Q2;>~IJ{rlvk!)~b%cXEsIk4t#0PvVX!dv|u8QLuXL z+x7Nb!>dT(CgU#`x$<8M0!IXzTS7sHQrV9I6qfDY(a{=o8DC(Tlyoao7p&gD2N$V$ z#mv5@K=uClz6_0(rMH^RJgX@7cisAddNQfu{4d6?8xhzjmzY{4%uaYcymsTmCJS3P+k&!=CUe%!1nUj z$V3EJKYDh3g3_%vzyb; zQgsrT`Z)4_?l=D+`VdB`7W#E>_PKWu5`XW zyW7VO<;IHb??8&g-!BpVr-1(V&3(^yC;fh$m)t8@p7Paof7ENZz-pXsQ$CfXcH%F` z{pi!Pgo*rr-+=$p2!8HG)5(@co5hm!UB&9cTO6oWIH}h#_G~WmTxXPV#|QrBN`YzRr41X;RBilO=v4{{6bP%_dQ$MRl9tYab`5U99)2oy%9U{Jin#@2g+D{C~fB zsDJsYSI&l0-zGz^3sJErR}V4n=EPT;?q~OZK&nZ60j|}J|I!GFzc^N}G?x`GPipTn zZ=Z3}xZnVY>XaHcOZ|RW9B+^AtWf`p7&j*XL;g?rl z#U8ax>v@vw@tWi{n}ZV>mqzLx{fJ{KAt6H++<+bXxFsa?n+>)xRGvHOpAf8~MrBDY zQm7F3AJPqnJnZM;Yz^)RXfq-M9;J4&JGO3(zRns9srO~KzlYs(+RUDRFPrCAnB)ERfG#2bk*w&9|x4!2|0z6m;=f5rGfyV`w!a9-Yi zhXqsb<*>ZGhBs=tLG%GOA!O6%{{sslX#@v=mIH_OdLONj18+h?!qaEZa6IW-L5e{~ z1nvmox{lu?smOY8SIVHSW!vlMeND6`LgGq`?7R+)I^tU9CUVAK;=w)dYmUE>(vT1r zEhBZxf$`)?{pQgpLZTvtukNyK{r8&N$iT{<$h!jAeE(s67@r+X{wlG8+&4F`_M0HE z-M+czrYdhw)4Ur>UrU@kR_*$fdEq+Lw3L7x9YkrdF_M66pQ8jU=^`U9OXcVWQSdg4-fJ!6r=O$8) z{(h|cW(za1T0JMx)1x9yug~y}hS}V&KUd}OXUv|jy`_le^o)bEi;D{}afAgAayy6# z$vdmD7ULC+VM1XkfGALR`0Zf5ybH2FaL$qCyMZQzKv6X2`iM|uxY0UlEFm|>h7Gdz zsp;uHjDUzNtvlnmc0}S2Lfx^q^XJe!4DV9lKyhOhh>?T}=2=030Qgd{Tzw)3H6}KP z)SZN5bpx0Y;o;%$5LOG17UPbbiRAd<$?lSR_x;CNZ@f8(_rOk@;9JOs^J;w~$V)&` z;O?)2c`5*mvi5dbpgcr0s-^HI&?BgYodod{%4=%KcI?;zE>Hz5y$501P^X&p#zx6U#`7G_Lb)B80f)0Oevk5oHCc`fJh4=T+!G(Ly zjdBi!nE~DA{4wO&oI<=8&X&;Mh^Cl!nom!C%DXF(KR;GA2!CGsZj2{b<+ItoGD%@^ zz0_(tG$e+X%`Q6$*k3@4L zH?@uY&>e`kN;RF&^DB>(xvALMDU?_l6 z&n^!QWS3CV*HwWU^(@~iV`jRv$oQ5aw@D2PcGh>5{7u#F-@lLHO)&TpJ&LKcEmxl_ z#EERPD_l8qSuD+wl3T*@Z*{DOBq>{m;oEO>VecOfc#{x|6G_H+A~B@(s(4PN1CwoDU>2gFW##8+7 zSooF^*|y-EdIKox0T4Ifv0=iozG;DnLZ3cOy9DC?*7*y_J;6ErCe*ouD1l%ZeY8k`z}OZNW#d*T#h;C2W54PK{JUR1|TcQx%I38hV`9Dr~}ugeZ26LTWgQ`^pN#%+M2HSqug$)Pgo=VT+?>U|{gdf*I;) zS*+$lMnfK-!Z^nKzX&*xcfQFhZSR{~S`XW|IdgB2Nj++KurZ5=XcH5Gj5t1Gb_;ooTT3tN7|la?D6(3dpN(vcDUwOcDe7Q?<%YQcQAD1RQ%a1ELt~M`=iK=Q8rS@E7NVyr)wQ7#6^}4a%GkRV< z(IKCxD--+mp2W4C*5jSe)9}5R`Yj6Z)6%UkZqeho{qb`WYpPAnCtRImIYuN>%#Q!0 zF|QOztyu_Na!PyM>^6iS$WYwV6b)1Q}S zD!m$tW$5A(;fZ$e`?G1*n%#yrt+ z{3IVuM0@s?`ZV>a@wRj2ogW^5^P=O_uHNTweSZ@P!SA{(y!z;nOlUNY^b?X%dCa;i zVYcy(<=AHD)pY^>EEBcpF$35k!SV%HZ!4e@aWss`0Xbm;+ZINC>v4BX+6|cwfp&4= zl=9n4K(;^%BnzXjFUB%h34ekNSRpygx9KHePB7Y(>;n9nwyav`RdgZaJEF^6^NUkAap9tgYuHoU&ao1di7A_OJk~mVr?t@dzMR$v0;&J?}o)AXVW(Zs4hk<2rg2 zJm*c+7wxz~FWt_QJI>^Q5wRDL^Jq}geiSV@igVop1 z)EJc$4Gapq8%mUvpS~CD%V;`Vz}Yk(tf2(+^n86jtU9ZRDiABaH{$-wfPiP1uf_V% z;bFzpQnH_&mzO$#?FK<1*D^ACJ~E;Y7B<7B`O&>_nSq_nC!F~Ba!NkOwYgT659Tpn zvsW?C;Y7|EyK2@>O|Yd%u6gjGtX_c~_H0`4K6?5WsBK!P+A8nwdSpE)Mb67Jpyq^A z9}1m|ESI>73NpL&LgVbyNA&*h$q52qxK@7-cwY*(5t z^yybYe*MB3Ju?rd>^b2JPu$%-)61%S`csfmywL5GqB!5I7u7q==-d?ImsIj}cUJ-zekUA5$D{p2FDgdi8QBjw zH#ig)z7Ps3^7ZAVJ>(kdNbt2~{K| zY;%uCh;!pqzn74%>_+&-=M=uaNj?3s*^Yk_qx$fmF0KV>?hEdh_koX-en*i&rPIuA z*v^pTzQ5NipGHrVoIh(T_l20ZpO36!Pp-Yfs-LvA&?@+G?@B zApC1iA*Fc{KFJvmzR=E&wo`WUTYWdI{bp2hr;SU{X?kmB$%Y0?-cdluy1E-t*Kffx z<|pq%S(aM^EfE6xz~?KsZKF&nf6~fA>Fo{(;07F zO|;x9NQl&!au9DKnt#Ft3{A2dp5zEe+}WwbcQQKs*+inRJ_gH11f6YxTV4=e|8i|& z7UiHHe4ihMwwYNMPn_6F_G~j4puV7n5zy^UGP2Di5I5XTl&e%=J-AQgBaG;cUMI`* z`CD?1nQj~9ce{&nQeMIPvm+7hF$G6a3Fn$yf!9bY1&GEXzlbU!2u(*E2 z6Kge}iZbR$h9@8!X3BqTE!OHSG#;$(IUG-uDRk>|P+CoC)*8=jpqJt3rc+F1bE2Y5 zUTPs+JGuV2Su%2P6wNeTURx>q)OA>kgS|h!0V4#QdJ^ho!L<8*O($I(LpaS2Z}+12 zaJ3ri`-l+jQ^_PGLJSwAi9cNhHA#EQg*UEsc(1PUq*YcPi?+4+`}X-yJCYPKw2Qq{ zrYaJnMo&=xanu?&(vfQXJOyD>tsAuA7V0&$JyDv?0k>B?gBh><_z9J0q48BjvO^ zvJ7Gs!5SlSKhT)ts`E@6NGhcZl>_bR0*%On;L*{%BN zypPbtuOk{PWF9?6hZ>D$6-&-GSTk=`Q|oX5e{4({gHIZ>;w9ZktF_hD>xf`@t6p#j z>x4L(sRq#Qn;=x_uALhzSO>JQgQUnu@!N@`Ke-x2`LL7|tt9SHLhXX%F}%n)g&C?? zuGP}?J%WRV9?#tN@YCvK3}+S*v@++t$#IhD*s<5G5)@|QTb0a9*MDqHok*s+rD8dL z;Ys`AA&C;QMzf8dRbR?2BPJ-rQ>VU$-SdnV7Zsg-Z&-SBVqqLt`zqf=nEPWJO8som7;$nay?MB?%Jb1;{V ztL#$Qq7BJM)Z93ei(O81-h1|_6c|uA?Ie5EcfTZ6Z3l^}&*cx(-Oe_v1Eg#vQ`?<_ z&xxCr7#kb!n@Rtzb7ObWyt;t3=(mk^w+5_Af2yw)HYe;3yW(jztwH*N9De;8~@Y3ygsI*n0+JCO39FtGh-PSTuJebu^3XK)C@C9YqPfuq3a>RnxZ4IHLzU`o6? zy!#HgXn0Pv+p`SbHO~ALcLaCVD#t+iVRb6|xkm18rCqyrm1B@KRY_+SjUl4>!-ql4 z>zEl{waYg(?|xZW`M^}?Qnx)uX(LuM_oO&hDT5xd#}r+ho!wG6Ik`u3cy(icT%3)6 zsK++(ITmiGwimr?!9OiY_dY62Ug4i4+yvDf%Hce@r4*cOuc ziEbaql?A$=JWS_rEO%B`ZlAQC^wxA<+1)EIKk_4ufs2dlozs}I|9z{gRrEfGY-S7p zS8-ngjrF>|{i6(_B8f_wN+l5uhRmUolp!RUrIbWTktstIA}J9vMlw}MnT3iHDP=6f zMhKY+-}Pwkv-kge=dAU8Ykg~d)>)msBJcbDp69ur`@Zh$y6zdb^kb!UhHb}_r5ftD zjxVg8~ z`Gms2EqR#>(J?mU#GzYZ`U)6&udGtu+xtqU_rz?_gMpeT{iuu%4#+u1TQ!~felqY9RCoEKqc-(@FKiljo`-tJ*k$MK zKe%uym!6QVhI?k~=V5x@)c5f99QhFv6m&m?(bU}B6LLF9?AmcNlP*?BcL`z9}dcYgO;HLJO#pN6F&BQISj!Rz#(#-P91F7RcyJN)Njx@@CdX?lNzG z6Drzl8~`1R$=jcuz!@daeWT@H%3V~_SvfTM(vMVc#S7>u3MSnPK$z!dUb+WHfKMAH zI;mCJl_x3^p#K4AFltm2zDJADuniyw``plX4;rd!ZXpTa_U z%A_z#-7ZvZ{TevWuJ8LUW2`m+R;WSBwiDda=l5DgG`W1*P*{PU^B#Cu+5z6{(PWWQ zk#*Z?*37+sTxypUgP(0nUb6NaQUiq;-EoTcl~Ku@3essX8^rF>ee9lWU$K;D*X{HfFn_(?*yefkJCEU3S%d{$%Dd|u z?*kaMmARU^luy*e4Ncc3Q11ON9QSu()E@Ln*EF;gk$ePp=N700 z_|g4ds;aJNw?Kb?mU)1aM-)*x_DQ%Rpw`h@wiT4z%!oGhcqVWvb(-UiK-5o{|2ht1 zacCa&UtHJ{n7=hMVwa-`Mj+Ru9oq%WX#tg&pU=k1>JAl~S_mi0%_blj0;pUfJ@8s(>~les*>+7%_Avh@MjlmOSkZ!4*-6|Wz5ni%9; z!XxJoyoPH{d>|yhm{@i`TOKuRPfri9BC&^Sa)B_%0m~*cxkZffHrnW+o`9GmU`Y`K z$h7YdT)8y(l}0s?JJ~TBj@k<-r0X%-$4{R0Lq;ngCACsfQPIG1Zf2b4kLu{9faddT zOKg2u+1NtQ{}{W?rDZ%Pa3xW>obOmdgs;I(%S9gd2PGpbHT9fu z?kkDnG?T8>O)n3fn+@sLAMLGE1oDwNS}mW+zg@>R5^&A;W3u07iWEp*is~=JxmB(X zM{}b7VZvdIxH0Q^AM?z4POkj&a6rq&(q`xJvmheHO>?{a!Llq`UW9+cTeT(GQf9(N zQBlvF`d9tv&|jm?=&@XJ2I`}+fM3kkpx zfH1`XXL*5cwRifdP2&onal0WW(}bi8+lvesA!fDUr1@aZ2DTy>Qa(X~e1N9Hi$o6h zeG$U7W}^B^!{_H;C(WV?;X@?@hL&oIZt8m|tFZS3q@`DxnwsKLuHVOtlAI6CeIGUf zRTI2a(&3a9=v4R+!51#>&)GH+Pk+f$WOHNB5u8!l@rOSO5`wp8WMvWIwH*Xz1ow0t zXz@->wed(F#V>rHcwjZlO7Vq&O!i>R$k&bzFGP%QKpNq3E<=F1$JNmhc*Bxpwje40 z`x~-`VEHV7%p5%1m!1qu2RrW=#{#=E=o-TCTT?(bz$W(q*NM?e#+=tcP;lbVUND#; zyiri+2q}(G0}TMXe91F#J(D+?YV$&k?4A>Rh}(hj)eQg#gnnUQZpc}pM_ zl4xV}8qW*RYrtu8NRy|wpR8R7HBA@}KTg&{$MHV-%Vby?AaX{4QZ;dVh^`z;U0PtF zs_5nHJpI`n`hH>k42nZYCuqhA$0J`&&RTzMgy_q5qsL?0JZ;y-n}6|pG4a%I58J4^ zYwtUmqMjFiF;uyS~Agyivb>K$g;?-uo(QdJ2 zjka+|;#8l_eWe*wRgHy4eB(fx{Occ

_^s1xVX2M9WRs*RCUH!Psp!_fZ9yb)~hr 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%0D1WFHw4$k@de<`e7D-4DP&Vc%~G)4K(C}I zqKyYIN)ot((Q;+T^9YKFR@t}fq6G?&(KkI%Re|1cCEi{c5J@5k1`JbKD}pB{ij~8Y zlll)&ZXIVi=U$QYWBxIRK5!YCg7JDsTse?iDptDy<#+OB80t-0PXkEdpuDi+@W%<) zn8dr{r5Hi9Aj763ObBV+9iAk} zS~?yy>QsgO9NtKz*QOXCMdrs9%#1bC=Ik!Jv#FvMO|2n7Ruj|HWF(zv>k*-Bb*VsN zM@7*WzU_c+0XGWuYIZI_Z6}^#NY>lw{`#xQ6DSvI%Wfb?w~&5-k+vxt|q^+BRG%6bl2r@5RCc-rnPl7A$zeOGs4VGXGb&xwfmt zR@+qQq4OER6$sIS^ys@$?%R>3b4ec;hSnvC9C#eCbA-i;X)~K1=?Eo@i+9ey20qg zJ7d5sS%`7@w{ATYF0A$1@_ThWWE%?=#^y{hC;TO#KpIMk5&B;yLTXe~V+!AXlD~4B zanHw>(>6lFI2z_8V*XoD(PKS$7gr#TYqI!#ZAE%t0~e# zBV0vf413kpz0flt@dQ4SgajQX?O;vgbg;}jSv~|^GCvF;T!w0e2$E%FWnu8M6rvDv zp8)JE^IF7?tI)L8@<)dw96Z*xBviT8QCh3XC40#V-Mpx~XX8Av=@r)$71zAmma$K0X|{ z1wk{0ng0GPR1qkmL1AIOb#-;WE<_p$U`4d?VLBPwnb*yqWq+}M9gDIx13AfCmygOy zATKa7hwc-T#&%=SH^3!U)V}EUa6059aYe|vNP}(_0P^>JgiMv@H9|4lD?ibEseEnI zlDCrNYIl!}+4x0A^MEl$gS?k20tfYae6-FlSTx2VkWOF*8?oO)3mt9LMbF?90sFZt z7|uqfx1Fd<3V!Ov$EIo8HnWp0Uu5Fa9=c+#1^L1_8XEp$teSRu+&{?EUf}HP+%pbd z-#?#r28Ik61VASaLh!6RpgGbEgV3E89ePhheuxN2dlmuEv?f-CZeU#~qxY!WQFOpa zn=eutcP5vV{W{p6eR=ZCZLUDmMtjKY`&=Xa5^i7Q$8q4xlk1Bl=zI3;A&5LWT11in z#Lce1VFwVm7?TZ(=`z?a$%EMFS8$as!1LxT=lbhp-){@VQCBPLjEeB16MuDg@y(-& z2Jghpx9$Dem<@T>Q}v~x!Z-k;xEZ;&nowv;5nDOJ2q6Xl%yla`MDcB$L1k4{dO?kQ zj1WH|hd(g`J80_5%C>MD-1u}d>_XOw-20`X#dOhQ^Bl$G#jZbvAm0#Q~73P*XVl>gMz1UVdn%Im;TlfMxxm3xd=2y^#5hAzg~W= zk?eH~6VRrS#?lbpcU(>&D?v!;+%IoApqZe?fqrdQ!v$b17B`9 zSk#3YMHu{wPw`-DIa~f(b*bCn$PsoT*5RAa2|))CCP8ag%{f?hbyG#KU>Mag8xV4@ z(omfF-pIF^ov;1I8|Txke@`yw1B?CU!0{$^;UHojPeXyT4rRtOjY)7+$X=s@ZdZ!= zD8&SQPd}Qo1S%tGhZQ1*zPL{@h&aw|ZkDcFmV*=bdC{EJ4x(8D?II>7MrD>pInnf? z-EvM&20pK1p0{?m{o`%mK5=Q19ptz-)$wS|(oo3u&qB8s`4hjeM=An^s}jck{`@G% zL2?AC=ty`zndLhWQH;~5HKmYhkaY-j(7472^$fUkMaT;Lr}%#l%hI89dLWnXH9rz{ z_(N$^K+o5jAt{2o6;5=>&OH(ESt(@zDCfsuUwM<_rF=hs){p#&dTzkSug>eV{!dyypK=rd7D$vW3?2`n$~Im9N`*`;{~r+FjA zhC|2APcpN41UHcL(-`Ldw zic7wXxsz?6^`IlM-@?Me7m4R}+&%j-G&og!G+B!exqs%xiNTl=7*?&Pd|@Vb%I2Vk z#;1lGSiE8@3oUIW#e39y#Nm`}(iK zLZ=$%1}uTSbGYyFFOK!y^{WnI^4wHj10Wz?9GUO8KmNGgTMe2iQ_tzwI_i^`EEqS; zqzmGzK?cEuXPKG}GsP^qbkb;KkLKf`NA3w9k!wf^_Bm{~*&M2tY6F#msMnMD63n}e z8*NxMwNmoz{ZFol4);*c;U2U%|KEee@1SRt!?l3Nn^ypj_nxftidKxVCnmGrN;G(H zw0lcY`N0Nw{qRan&8=mU zZ{EDQ=~`V?^%Bwf+{~q^k>sWaD&AG78%LbPI`!=x9V;N7BsD#ed7%2ZI5n~fCU7KE zBdH6VPeLaBlQxD~bLT#P-Ue~2e!*oa_{LKb5)!}>uy@*!v0Ys(*OGN|8<2v&t?3_>(Yz; zvmNsP5jyzKZ|qtsoRWT{N2sJ%9@90XV_?`Fa|piBMeF+A(6$FYL-K|LwXSwgK##=F zg7mb)LGNcj4i*vM2H7d!w5Z=izung+o1OS zqNrc=vH7QyPFv3P^FjQ(T&8PcJ~wZO`8eY74 zRtGpm$VI`Zq;Wxg1EmWQlA;LF92$-*03yxI%z}b~+{t&5tf@3P&u=avA%C&3CFU$T zT4LpR_TGL32@+hfY}plX>z6x77)c@YK0DvD3<=%BrAu$%;|JHE7+|0X83`V6QKur| zS#=+^qxUC?-@mej%Y5tNa;~I!Gk>)0nb--Er2ew9k{Oh@D{2WP60MiD>zesu&G><> zP$pJZ<5~{$TdsQ)nH*bBDgI#N5F}{RU0-m6yG9`962EYrx3cpky0T% z5d28(GzBS(4rZE{LLKn1(N8sxZ<#z!9#=##sh@tXW#jzxVCl~SYImW z?PQ?v#~e17WA<{p#6?6jQq-TwrbnY<4D-P8YJW^~k1krgSOu{Ul^_u!Yl)L1e z2^>A~M9di`>zrLImf<$%N;LXd zT4-;tpy+`AIh+l26;gG(oT^Y^$Dlz33jptcfW>epzXpuvk4fnhgrC^zI=uyKu5aDl zjQBKpAdz#4TQG_kJ~Po-?E^@K_-Q5`%@N_|<|cq0>csYtgL1`$ulSuD)LQ3d6x6Wy zcdSJ!n=sywAE2S|K5HMweMt+3fDPtmd8q5po;&9WL=L~r6MBcPsg^gB1rX>LJGQ!9 zMS5L=8*RY(p=99(d+ngi4HZ_OkZ29n?BOZKJ|lZ#WaQ<2MbERN-w$iwODvWnnp*sw z7k(u&FpvV~weTS62@gz%%yD%*?jJxmk8_%vdR})YMei z0o?iy70D4i;O`>>LPBZ}7br+dN;0CxNwoq0ZH0A~bbT-T>eZ*t-;IbknkFCKD*+4n z)ET5ph<;CXTl@O@ymE7MM+OLq1JN|U-f+0#lq-3&TFJ{PWn7(QaKzd|`J(dgX_l7& zj9~WuzM@tma({vrp@yVUAco&Sk`4`AI!WBJv|L=$O>^x#i2=dL52y~eVB$smbEHEh zWo0T5QtfMWo$A>TIRk(#<)anU!l}Jqz&#AUbt`^6tZ;TJMb`~^MZ&BuBsHK;?di=Q ziya(1`>ms6UB9iVDIWmY^)rpg++a@rCaf~O9s9oI!v}5aN+6r3438c;;s@Q!$^LB^ z=7JnXaI_eN@Kc6xV%8q%`=X7Qy9m29x%r+0pr{R5VEqb^>^oJgtGhdC6lOus{YFO4 zN6wyV8OJfhI60l*w5xwOoovxAo0JW%zbM-M+4*j@FyG_W&A|J$j$w&Rt*ka=Wx38c zc}5?zmpc2^9feGdb2AO&pP5$(_k4q>qm0XQXE_(}BY(ctWLE)OQdaRG;Z@w(uGVd& zTeC;?6bMuX4#VLi$jIiH4MpBTIt*A(Q`%>`wQE-< z#(e`-6@)pAoSYFb)V+*Da}sk19wiXV!VYB-a#bCnP)25EcG#b?QOePBF3QMaR6w7@ zWRyL~TS+>K9xF2f$8T)#0S|hBoJ5rkFrl7_iTv8C2#JGahf!uNd6%T8SDdenj(}^L z+H@-X*HilDu}NiAgk`9~5>DL;4(3BY$qSe^#Y;vAohvPb!Xb50F-`$YB%oCC1MF&j zAc;x5_%3dZx>-mRgrJ<+==Ev|3vToMA**(W+y@T7zx|ur+;lX`{xmqbfLxD(Nt>W$ z5uh01DS`{`QPu$Yr70;X6fd^hOJuF_nPH)!>k))_5&FyEnvs^(3a?(_(Mu4j){1Fs zX}u)9o&!o4!Q?PS_Gu{GYkZ;l;!_?wMNnI^<08`w_RZnaNGSRU?fy$Vd2f_NSd5t| z2QheV&{!~(z+oi#hMtlyCZBAY==}DLZx+(VlQQ?@Tnym7s2@Io$8BKc_SQ=IOgnG- zqEvXQHessF!-8&6jHP=Bhy#`zcB@0Aq zw;F`r4fr*s)l~ZD-_bCC(hlHDE~GRw%~U)q#4OO~qaP1-uH{*=La@0HUMsy%tq>v6%o)+B^LkYf zQ*RMu+x+}+N>z3B!SKB9N^v8oitAc`X`GFca}lznM--fP>IG_|Xgyc9?~s<(&FwYw zjn5f`BNcSx7T%vu#pO!RNX0_OTDy>66bvn`=vELU^BsViiH=SJUNW%6?q5bJLkb;l za#+K8tS@-%qeM^rLa~C`sZ*XVbr!Dyz%?hGs|}NLc}_hpTznSxhLJz9%HPmaqI{9@ z^xmoz>oLxE%EGq~2Sb{Z^A7z0Z>1PkWRPuul<c z-5mwmq~_6p*82BbkeciDM$jjQjTBD*c#&)5cz|McCpryFc{$QqdwpHZ=a;EJpDl?P zgZyNvwt9)t^E)KOnW#3r@7vjtQs-2^@4tBQSqr&MkZf&yzi@+JO^x_zsUpl8c_FD*tska^a*_jPg` z-y;iBpI10)`Ls(1wiz@Er!MX0o1Jq>7u`5yCV#!%S&6Z{yadp+`Qrg*o2^Oz_koUpJk!)hDkR8G|gwi$tcV{l(iFIh{)b`1bTVttt+N0F+Rv=Dehd(D&7 z&lTXmVW+$8VgWj03n`2SX~Qj|8mR|tk&I)Y;13d6>|~oidb{o_Obu3k%+9Q{-T?y_ zdJ0tJccVM;p> zF)~L_&H=~#0Vv|~6e;Io@)7fC5-TslN}SYQ;lKbc8YeoiAm$JqOoqklWuQ$9)lY%> zNl_=YY<(X**Z`zs%SSg&+)x4Eqx19gTl&=!#El({SWbW;MF*Jq<8!I(tSs-4kdWn7 z$nfRd`(EE^Le#ki0HGZZmN0^5C)$@Hi|MI*ajq+{j=_A2T)i`CxnqclPK}?CP*&NF zXEjJ17w(Re$^q2-4cEt|wW3|QME5t@E`*PV~UqaE-aD8XQG#qBqZX_N@s;)`6p=Ou!O3G zc4Z#0d$%gQUO2rsttYz4JcLwEOiO=f823r=F!$$k{GDzz5P`KOAM8zo1g9{aOIAxu zi>dP&IGEn{+`EaG1+k&HzMhjvIzVp^0uKzdk*}y8pMlDvqsPeCo9WFu@zrxFVTz!1 zF@uxNM(srZmgnJqO|X8T3!X{3Z|F8Q&?&Az+p3*&inFOUYB8VYs2$#mUVL6Dw>Bqt0>VGuM7@>$P0TUPt(uv3m2F z_;QZl8C3B_RKztYnBb0MdIF6}kk88j)XDMdRIRhg_H8w-RJ<4SdOn@$1Co(QNa zj}HZn4L7tNnykDRalG}{k2&%A^@}`b)U}$2M|4_3$I#F)-p~F_*X<|jKgP-E#{}EK z{J&=Re4uHSw z)Z5pXQ@yTY3H&?&1<+7L)`OzdJ~jQ)k|sc$KO=)vE~TQ41eiK0M+4=N$CK0@{jGVI z*rE4|ZjnYb^bHLBL_!3(i%t2?60H^4PoFNN0I>-ePt$y1Pa#tKR8o3#aL_3@|3W&g zXRt&=JMAE-7%lzb!-rEol0~g?+3ABC3z3qJ!p7XHe{fqG%G=D!|oaL^G zn6Jz>t|qr3(-#b!`3f}!8f&ma`Dl_)S~;)YO~I@#}FelX5SU8Lj~P4 zj;pBq77CGeT)B5H&7C-<|7Sfzo4K`e_<_}QmIFc_0nWkKL;^hv0q zIhb|iD~1D0k$Doa_)>3b4p2!JioT)>`5fUDjW?~_^ z7Q00%{5y6WM!t%$ScW7d!3D|6qbIhg`%whLX3ucC7xgve3k-tmQOHpqZ&rTbF%MDD zZYDa$lE%iP6sv8)WFkEM<8?0Je3O1083*CnzuHKVo{nP0*D|H}B z=7=>JTE>Z}74inlQ3gCt07@KTQa1oD%NlEbYeG1@_74CNN8INPQc|J|%kSpghOXw%}9MXb+)z{bO z>+5aDYt!Lz1Gw?$y%B=t27nwkvfzXOm7rtl%}Tmj65z5zY+(+(P5gPb#4fFF*GIpSRy zq}jTvtM*WByHix(Qvc%M(-Nfd^-@;&xsl1jgdCJ~U~_n1r~ai;D? zIyd>ohA=QRYNR<)prHb#iNfXSui}Z*XXmcu}PpX zFe{(z;MW^wK!`IdzCu^q`$u2jqfxo^V=uCoOJedUe{5TTn2&y{`0p$Hulf^~#C}9@ zD@04AAkf?Wd;}~8R|VrQJTXQ_Ml$jPdCJ!xKLQa!Fs*}$R1aQjISucK92-Qj8H1z| zm@bfHf?Sd;26q;~_D>cSu0J~#{b((;9qcOW>;>AJsDAefNDgK%ec6)WjfsmtI4q2` z!-+8<+Ev6lE8eQKa|BC7#wXxpECz51olqchd2_^Rys@At0e#ZpBeNE8J_E3OO5s8Q z3IwQagn^QQ{;*6VxkkXuvIKp532q#p&`=J9e4yJ`kxZI{>qM{>gX{xw0G(hgL~iPu zXLc|{ZzSStU^R*WuVFvxiR-?nPr~XQH%?S6$Rt0@7ywC;0FTrVg z7e-HV%U$Nex%Gyl9|%T3DLvESwT{X>=jr)4KG;B(f;dm^5;Cg_Fwx$8rQ>nF9d5`^0?U<9S%IKv!lDLKPU0Uth(q&y{)2&9l81VA@{EK$9uV<_B20Z` zd%z=9ot&h>kox-Vn+Kp;b6_=2cPh7$OsFH_zWIQq{1XD0lXU=?j{4CZD+ihv;Y^@l z*jJslU3plY97@h#9W?&jQp?bzP(cA{di*#&%6!=EECw;D7-dI70ykm8CUwkbPQTD! z5cA;_D-YU5_84#MX(m4VON_r|6&%+{Zi^xa+w2*p4*}A@nLeWj_@DHBDk>Pz5Krt` zN74*@aX2Hv4Bqr-<1N;V7g{L_LpX~rADsA$d%GPk!LMy%MzcvFg@K}|-hIl7I^-W~ zim@Uo!i|9m!O2N4h^B#jt>;2kXYnsnJbK+n`W`3|&~tk6-+pMmfAaeePe}GO>mvWw zH_iWbY@6Ta|3eb)f9|B=>HYonf5;B*o}&UCJ&a#Xd_9JbP3=?BP)<`ax$?gN+^Kv3 literal 0 HcmV?d00001 diff --git a/runs/frontier-workload-regime-taxonomy-v0/plot_mock_boundary.py b/runs/frontier-workload-regime-taxonomy-v0/plot_mock_boundary.py new file mode 100644 index 0000000..c5bf021 --- /dev/null +++ b/runs/frontier-workload-regime-taxonomy-v0/plot_mock_boundary.py @@ -0,0 +1,73 @@ +#!/usr/bin/env python3 +"""Render the review-only schematic for the workload-regime experiment card.""" + +from pathlib import Path + +import matplotlib.pyplot as plt +import numpy as np + + +def logistic(x: np.ndarray, center: float, width: float) -> np.ndarray: + return 1.0 / (1.0 + np.exp(-(x - center) / width)) + + +rho = np.linspace(0.02, 1.25, 300) +families = { + "homogeneous / real": (0.54, "#1f77b4", "-"), + "homogeneous / simulator": (0.36, "#1f77b4", "--"), + "heterogeneous / real": (0.76, "#d95f02", "-"), + "heterogeneous / simulator": (0.68, "#d95f02", "--"), +} + +fig, axes = plt.subplots(1, 2, figsize=(11.5, 4.6), constrained_layout=True) + +for label, (center, color, style) in families.items(): + state = 0.1 + 0.82 * logistic(rho, center, 0.055) + axes[0].plot(rho, state, color=color, linestyle=style, linewidth=2.2, label=label) + +axes[0].axhline(0.5, color="0.35", linewidth=1, linestyle=":") +axes[0].set( + title="A. Closed-loop scheduler-state knee", + xlabel="Normalized decode offered load, ρ", + ylabel="State index (batch / occupancy)", + xlim=(0, 1.25), + ylim=(0, 1.02), +) +axes[0].legend(frameon=False, fontsize=8, loc="lower right") + +homogeneous_slack = 0.32 - 0.82 * np.exp(-((rho - 0.45) / 0.18) ** 2) - 0.12 * rho +heterogeneous_slack = 0.38 - 0.43 * np.exp(-((rho - 0.72) / 0.20) ** 2) - 0.10 * rho +capacity_aligned = 0.18 + 0.18 * logistic(rho, 0.83, 0.07) + +axes[1].plot(rho, homogeneous_slack, color="#1f77b4", linewidth=2.2, label="homogeneous") +axes[1].plot(rho, heterogeneous_slack, color="#d95f02", linewidth=2.2, label="heterogeneous") +axes[1].plot(rho, capacity_aligned, color="#2a9d8f", linewidth=2.2, label="capacity-aligned") +axes[1].axhline(0, color="black", linewidth=1.2) +axes[1].fill_between(rho, -0.55, 0, color="#d62728", alpha=0.09, label="ranking reversal") +axes[1].set( + title="B. Config-ranking decision boundary", + xlabel="Normalized decode offered load, ρ", + ylabel="Minimum signed decision slack", + xlim=(0, 1.25), + ylim=(-0.55, 0.55), +) +axes[1].legend(frameon=False, fontsize=8, loc="lower right") + +for ax in axes: + ax.grid(alpha=0.18) + ax.text( + 0.5, + 0.94, + "MOCK / SCHEMATIC — NOT DATA", + transform=ax.transAxes, + ha="center", + va="top", + fontsize=10, + fontweight="bold", + color="#9d0208", + bbox={"facecolor": "white", "edgecolor": "#9d0208", "alpha": 0.86}, + ) + +out = Path(__file__).with_name("mock_workload_regime_boundary.png") +fig.savefig(out, dpi=180) +print(out) diff --git a/tests/test_materialize_workload_regimes.py b/tests/test_materialize_workload_regimes.py new file mode 100644 index 0000000..3545db3 --- /dev/null +++ b/tests/test_materialize_workload_regimes.py @@ -0,0 +1,84 @@ +import importlib.util +import sys +from pathlib import Path + + +SCRIPT = ( + Path(__file__).resolve().parents[1] + / "runs/frontier-workload-regime-taxonomy-v0/materialize_workload_regimes.py" +) +SPEC = importlib.util.spec_from_file_location("workload_regimes", SCRIPT) +MODULE = importlib.util.module_from_spec(SPEC) +assert SPEC.loader is not None +sys.modules[SPEC.name] = MODULE +SPEC.loader.exec_module(MODULE) + + +def source_rows(): + return [ + { + "source_index": index, + "source_arrived_at": arrival, + "input_length": input_length, + "output_length": output_length, + "session_id": 100 + index, + "runtime_block_ids": list(range(input_length // 16)), + "body": {"prompt": f"prompt-{index}", "model": "fixture"}, + } + for index, (arrival, input_length, output_length) in enumerate( + [(10.0, 16, 4), (10.5, 32, 8), (14.0, 48, 12)] + ) + ] + + +def test_arrival_contracts_preserve_rate_and_burst_pattern(): + rows = source_rows() + uniform = MODULE.arrivals_for(rows, "uniform", 2.0) + traced = MODULE.arrivals_for(rows, "trace", 2.0) + + assert uniform == [0.0, 0.5, 1.0] + assert (len(traced) - 1) / (traced[-1] - traced[0]) == 2.0 + assert traced[1] - traced[0] < traced[2] - traced[1] + + +def test_family_axes_change_only_the_declared_contract(): + rows = source_rows() + token_ids = [10, 11, 12, 13] + families = {family.name: family for family in MODULE.FAMILIES} + + w1 = MODULE.build_family_rows( + rows, + families["w1-mean-fixed-uniform-none"], + target_rate=1.0, + fixed_token_ids=token_ids, + ) + w3 = MODULE.build_family_rows( + rows, + families["w3-heterogeneous-uniform-none"], + target_rate=1.0, + fixed_token_ids=token_ids, + ) + w5 = MODULE.build_family_rows( + rows, + families["w5-heterogeneous-uniform-prefix"], + target_rate=1.0, + fixed_token_ids=token_ids, + ) + + assert {(row["input_length"], row["output_length"]) for row in w1} == {(32, 8)} + assert [(row["input_length"], row["output_length"]) for row in w3] == [ + (16, 4), + (32, 8), + (48, 12), + ] + assert all(row["runtime_block_ids"] == [] for row in w1 + w3) + assert [row["runtime_block_ids"] for row in w5] == [ + [0], + [0, 1], + [0, 1, 2], + ] + assert [row["body"]["prompt"] for row in w3] == [ + "prompt-0", + "prompt-1", + "prompt-2", + ]