From 63acefd890ab75ca577d0fcd6895d08a026d4536 Mon Sep 17 00:00:00 2001 From: Jino Jose Date: Tue, 21 Jul 2026 16:18:47 +0530 Subject: [PATCH] docs: add certified capability catalog and product deck --- README.md | 3 + docs/CURRENT_CAPABILITIES.md | 109 ++++++++++++++++++++ docs/Nexus_One_AI_Product_Presentation.pptx | Bin 0 -> 45830 bytes 3 files changed, 112 insertions(+) create mode 100644 docs/CURRENT_CAPABILITIES.md create mode 100644 docs/Nexus_One_AI_Product_Presentation.pptx diff --git a/README.md b/README.md index 4bdd814..5b316dd 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,9 @@ evaluation, partner enablement, and internal technical review. - `docs/Nexus_One_AI_Datasheet.pdf` - `docs/architecture-overview.svg` - `docs/technical-service-flow.svg` +- `docs/CURRENT_CAPABILITIES.md` — current presentation source of truth for + what every user-facing, developer, and platform tool does, its verified + result, limitations, and recommended next phases. ## Why Nexus One AI diff --git a/docs/CURRENT_CAPABILITIES.md b/docs/CURRENT_CAPABILITIES.md new file mode 100644 index 0000000..27bea6d --- /dev/null +++ b/docs/CURRENT_CAPABILITIES.md @@ -0,0 +1,109 @@ +# Nexus One AI — Current Capability Catalog + +Last verified: 21 July 2026 +Reference environment: `172.16.10.144` +Portal: `https://172.16.10.144:9445` +Open WebUI: `https://172.16.10.144:9446` + +This document is the presentation and product-description source of truth for +what each visible Nexus One AI tool does. “Certified” means its core action was +completed against the deployed backend with a real persisted result. It does +not mean every scale, hardware, security, or production-hardening scenario has +been certified. + +## Product in one sentence + +Nexus One AI is a customer-controlled enterprise AI platform that combines +local model inference, governed knowledge and automation workflows, evaluation, +application development, Kubernetes operations, monitoring, and recovery behind +one identity and portal. + +## User-facing AI tools + +| Tool | What it does | Current verified result | +|---|---|---| +| AI Workspace | Provides persistent multi-conversation chat with installed local models, system prompts, temperature controls, and image input where supported. | Certified with real local inference; failed model calls are shown as failures and do not fall back to simulated answers. | +| Nexus Notebook / Knowledge Base | Uploads and indexes documents, searches ChromaDB, and answers questions using retrieved source passages. | Certified with document ingestion, vector retrieval, grounded answers, and citations. | +| Meeting Assistant | Converts a transcript into a summary, topics, decisions, sentiment, action items, and formatted minutes. | Transcript-to-minutes flow certified with real model output. Audio transcription remains dependent on supported audio and speech-model availability. | +| Prompt Library | Stores reusable prompts by business category, tags, and document requirements. | Certified for authenticated listing and administrative create, update, and delete operations. | +| Prompt Studio | Builds prompts with personas, system instructions, parameters, optional document context, history, and hand-off to comparison or evaluation. | Certified with a seeded executive demo prompt and real model execution. | +| Response Comparison | Sends the same system and user prompt to two to four installed models and displays response, latency, and token usage side by side. | Certified with genuine `phi3:mini` and `llama3.1:8b` responses. Browser history is presentation convenience, not a server-side evaluation record. | +| Agent Studio | Defines governed multi-step agents that call models and platform tools. | Certified with a completed real agent pipeline and persisted execution result. | +| Workflow Designer | Executes ordered AI, retrieval, transformation, and integration steps. | Certified with a real backend AI step; backend failure is surfaced and never replaced by simulated completion. | +| Scheduled Jobs | Runs approved agent or workflow actions on a schedule or through a manual “Run now” action and stores the result. | Certified with a real manually triggered scheduled job. | +| AI Evaluation Suite | Runs repeatable test cases through selected models and records model and judge scores for quality, relevance, and safety. | Certified with actual generation and persisted evaluation scores. | +| RAG Quality | Measures retrieval relevance and grounded-answer quality against a selected knowledge collection. | Core page and collection integration are available; quality depends on the indexed source material and evaluation set. | +| Feedback Review | Captures user ratings and comments, supports administrative review, and promotes useful examples into evaluation workflows. | Certified through feedback review and evaluation integration. | +| Chat Rooms | Provides shared rooms for human discussion with `@AI` participation using local models. | Certified with authenticated room messaging and a real `@AI` response. | +| Dataset Creation | Converts PDF, DOCX, TXT, Markdown, or CSV sources into grounded supervised examples, supports review, and publishes approved rows as JSONL. | Certified end to end: five grounded examples generated with `llama3.1:8b`, reviewed, approved, and published. Jobs now fail honestly if the requested valid sample count is not reached. | +| Model Training | Fine-tunes a supported Hugging Face causal language model with a validated dataset and saves a PEFT LoRA adapter, tokenizer, configuration, logs, loss, and output path. | Certified on CUDA with `HuggingFaceTB/SmolLM2-135M-Instruct`, five examples, one epoch, persisted loss `4.3178`, saved adapter, reload, and GPU inference. This proves the pipeline, not production model quality. | +| App Studio | Provides governed application projects, persistent workspaces, proposals, sessions, Git history, and isolated execution sandboxes. | Certified on Kubernetes for project access plus sandbox start, command execution, stop, persistence, and zero residual pods. | + +## Integrated developer and data tools + +| Tool | What it does | Current verified result | +|---|---|---| +| Open WebUI | Full-featured local chat interface for installed Ollama models, files, conversations, and knowledge features. | Kubernetes-hosted, Nexus/Keycloak SSO enforced, legacy login disabled, data migrated, and real inference certified. | +| JupyterLab | Interactive Python notebooks for analysis, prototyping, data preparation, and AI experimentation. | Kubernetes-hosted; notebook creation, execution, saving, persistent notebooks, and portal rendering certified. | +| ChromaDB | Stores document embeddings and supports semantic retrieval for RAG workflows. | Kubernetes-hosted with persistent data; collection ingestion and retrieval certified. | +| Ollama | Runs local language, vision, and embedding models on the GPU host and exposes inference APIs to Nexus services. | Five installed models visible; local generation, chat, embedding-dependent workflows, and Open WebUI integration certified. | +| MLflow | Tracks experiments, parameters, metrics, and artifacts for model-development work. | Reachable through Nexus authentication; broader lifecycle migration and curated demo experiments remain a next phase. | +| LangChain | Developer framework for composing retrieval, model, tool, and application workflows from Python. | Available through the notebook/developer environment; it is a library rather than a separate end-user service. | +| FastAPI | Python API framework used by Nexus backend and custom application services. | Platform backend is deployed and serving authenticated APIs; the tool page is developer guidance. | +| NVIDIA DCGM / nvtop | Exposes GPU health, temperature, memory, utilization, and process information for operators. | GPU, driver, CUDA, and host metrics are visible through the host operations bridge and monitoring stack. | + +## Platform, governance, and operations + +| Capability | What it does | Current verified result | +|---|---|---| +| Nexus identity and access | Central authentication, roles, sessions, and SSO for Nexus and integrated applications. | Nexus login, role enforcement, Keycloak SSO, Open WebUI SSO, Grafana SSO, and unified session use certified. | +| User and team management | Manages users, roles, teams, provisioning status, and access boundaries. | Administrative APIs and visible role enforcement are working; enterprise LDAP/AD federation is prepared but customer-specific. | +| Model catalog and router | Lists installed models and selects a model according to task policy and configured defaults. | Installed-model discovery and multiple real inference paths certified; routing policies require workload-specific tuning. | +| Guardrails, API keys, and audit | Controls programmatic access, records administrative and AI activity, and provides governance review surfaces. | Authentication, API key, audit, and role controls are integrated; formal security certification is a later phase. | +| Platform health | Reports physical host, GPU, storage, model runtime, portal, Kubernetes, Harbor, and integrated-service reachability. | Host-aware health is certified; displayed services use their actual secured or Kubernetes paths. | +| Kubernetes / K3s | Runs the portable Nexus application stack and isolated App Studio sandboxes. | Single-node K3s is healthy; scheduling, DNS, networking, storage, NVIDIA runtime, and sandbox lifecycle certified. | +| Harbor | Stores private application images and Helm charts with TLS and Nexus OIDC. | Image push/pull/delete and private OCI chart workflows certified. | +| Flux and Helm | Reconcile versioned Nexus releases from Harbor into Kubernetes. | Multiple immutable backend and portal upgrades reconciled successfully. | +| Velero and MinIO | Back up Kubernetes objects and persistent data and support recovery. | Namespace restore drill certified; final filesystem-aware backup `nexus-demo-training-certified-20260721` completed 336/336 objects. | +| Prometheus and Grafana | Collect and visualize platform, host, service, and GPU metrics. | Reachable through Nexus authentication with live targets; polished product dashboards and alerts remain a next phase. | + +## Demonstration boundaries + +- The certified LoRA job is a pipeline proof using five examples and one epoch. + It is not evidence of production model quality. +- Larger 7B/8B QLoRA jobs are constrained by the reference RTX 3050’s 8 GB VRAM, + particularly while Ollama is serving models. +- Audio transcription, large-model training, production alerting, enterprise + directory federation, trusted customer certificates, and formal security or + performance certification need environment-specific validation. +- The portal may display staging warnings for licensing, certificate, or its + legacy in-application backup indicator even when Kubernetes/Velero backups + exist. Presentation claims must use the verified evidence above. + +## Recommended next phases + +1. **Presentation and sales-demo hardening** — curated demo data, dashboards, + a scripted presenter journey, screenshots, reset scripts, and a clean demo tenant. +2. **Model lifecycle and quality** — dataset versioning, train/validation splits, + quality gates, adapter publishing/merging, model registry integration, and + repeatable benchmark suites. +3. **Observability and operations** — production Grafana dashboards, alerts, + centralized logs, capacity policies, and backup/restore runbooks. +4. **Security and enterprise identity** — trusted TLS, secret rotation, LDAP/AD, + MFA, vulnerability scans, rate limits, and formal role/access testing. +5. **Packaging and delivery** — converge the Kubernetes application package and + Ubuntu/K3s appliance installer, then validate online and offline upgrade, + rollback, restore, and air-gapped installation paths. +6. **Scale and acceptance testing** — concurrent users, large document sets, + longer agents/workflows, representative models, hardware profiles, and + customer UAT with explicit acceptance criteria. + +## Current deployed evidence + +- Backend: `1.0.7` +- Portal: `1.0.9` +- Stable core checkpoint: `nexus-demo-certification-core-20260721` +- Final object checkpoint: `nexus-demo-certification-final-20260721` +- Dataset/training filesystem checkpoint: + `nexus-demo-training-certified-20260721` + diff --git a/docs/Nexus_One_AI_Product_Presentation.pptx b/docs/Nexus_One_AI_Product_Presentation.pptx new file mode 100644 index 0000000000000000000000000000000000000000..da2e3c4bd7566c669e056efa3ac0fa56464f1ce4 GIT binary patch literal 45830 zcmeFXQ*>qBx-J~M;#6#>V%xTD+cqn-=Y})Aq&R_PN;? z>tc>J`WW-3KjVG-gWeToz#-5yIAc(S zfDyZ_)7f!}=OYd9^G$1>%R0apUfxyx(H-cLj8n9k2%fUUv?woZ+_I zq7(9)@+AozLPGh{u5w2q{n+;*jzzP{k!eEi2KHP7Uu`p{=Wc<|A$aPo?4@Zxo_nk)VxkeJ@^m1s?8g z5Sr5>ddD3>vAIcWSC4*QGPk)Krzr}nx%3h*rYXHCm-`-ftU_|U9|LQx$Ed_?W6#DZ`dP)3V%Dpaj3nSZm-k&kU?*VyYC}+C2-T28XzQS(-})@E zm|W+9*HV))f1P;?@f<(*DZ8H29_Y^FX~BZd9dI{Qt@rz`*3-{4(Url`+04bv-qpy}%EA6GY%Vhv?SVw--wj6h z+^xZ%upH6bF|#S;&Pu8-2|)HmY`*MIl<94h=U-3|Pga#+-s)X39%plexmbk8KU<}&9((rhqn%KJnSQoi&8D<< z4OpjNtjDnc)-4wH+jftyU-`slJ4uh$EVfb(7xY&9pYa<$7I&Qv3n?gTK<*-tRj3A% zNO2H)Ut!IYQx&o`lf%$YZpc4k^VGJs4m#9&*)N29@ZfhX>VK*-_$1BLeQl1fd1f~Z zsQJ@tS<7%=tTIW!mLd`SP0Kx2{9kj8DB6Anmba<4OjXbh9@&C9ye>I^t93T%SWPMh zNnp;`<+jJ3$v^?|lBNzGaCScBy;{X{NiYn$LG^@Hk%8|@WoKrSg+otWPS~(^wrWc) zE5(p5U}v2!Q1y1U>Pw~nX5*Y(npp;?$@a{SW~F=1%w{!7WzDFV=IU(qL)t?8Bq;<# zotP-!Kilm0e$xcapfgP^l+3f~@$aie_s_HpH6bhuuJV+mk)E%j6|%8N#lYWzy2o~; zBHD8x#@b=(0^Pp?s~rjT@%8EM7Cd}_wa0}5Eb&!<0P9ar#oe*QEBo$|)54sh{wKFj z{=(R?gnfNHoo#oi;_mEV#iZpvVZyO8_xL`dI5Lb4Xua)zyNl${le&O!Fe<|t{f)Tx zpgBuS+wFCAeQR^ENW)K0D{hm~?vSwG+A^o~HyYgeVe4gDHVlROSU-lsnAGN#2t^g^ zNy`KxGVYfgbmL~(s@T{FDupPZ0T!;~3%?`iV^7!>=T71ZWJtLqPBdvUIh%O~5lOmj z!*lnna|ScFP~5dlDM@(dQn9}M_-jPcl+1HMR&uQD6qOrup=!zz$g>uu^5-V~x&bYd zcMZ-Zcnid~=lau!F8}f~wCe@_->ZJ=+}V=}90UaOU#i~K(#+0`;U8C~zp8#kbKUt* z)xTrJZsT5NQ_53BZ}FD^w1uRHx>Ra^G#h`Iu2_Vy07!|Q{m_!bCfc86rMO9@yc_+-;yxxA`kyTmS z6F=u#u1U)sh?LX-gxDR?-2?h}U&v_2BYI+X{gJ=>gF7%;MfTf`O7uBE#eeAw!Is8R zLxi~|Ux{ZGV@lyt3lt#NOADQ*0*{Lr`>Zp9GfwmcDaH`nK$~)=_ZmP5Mgn01!ZJeT zK#~x`{SfL6X(>I&LU3a`SVH%8?kR{1Au@ zsh7P{$6Qt`!@efxx0KF{kG#8*LCD&TH}k9PNuR=PN$2tbngz=9ap*3^rO+&)H>MH? z!rlQth^4T&828NaVVT&XsXbxgr6s|#99aYwNn8|s59-(Ei>DdW03!-$HU8a@cM`J1 z)pE>*NxFMHax)%T!*3gT>P+c2dUyq7Q!!~|dks`EG~p5DT+)fLC(ePA9l$n3z{1Q` z!LYF$b^ruzz2l9VPd{oH1#>U_!VhD!ISCVlHRLktnCB76H9zB?ho<}cM$1KN4!osf zUN3;Ur$|7MX`N5dVP;nv(O5Q!C2W!2i)^ZSli@jRCb`LO~@UZXK?Sq;@*){ajT$J1jecIPwnzqgoARWqKzpB7Wc2LU1eC$YHL zTA7;38M(NcIlD0Y%itgVc9{vZ&tXLV!!kE^sfHn3v{5RRwcZIyRMIbC`i!)-OcR_y zx%wAczZQNeGaoHUwB?G}CA*>7x@YV!!@m4q_`N$TAvIlA)M87J2}xi&X0m#c$ipf`JLq!E;oHx_EoIdx~zLxJXOEibG+2N z%i5HVm#}c6T8q5!cZOaRo}{`9T&_hmz09M}AiUxsE*z6E76D=7GJkmgSGbzY0!J<5 zj@Ym*$~4_ZhE!UIP|%)zQisDWGdDHb@M5I| zyQ*`U{xAw2nAokh;_i3l5MIWS{-XVBuI(FLM=$HdsJ0HRM54?@xL!jx$aWMxOrXy%yxs75GGr(zx#56}_8C{R z?G#C{h)ni@Q1U69cY@&d7c{}(0JsTiK{-6cB~yYSh_JXIN$49TJjC^Fj2INrt|hFH zk?q($!ogxtD0qS;1lh=efaY>ONrEK^YJ4EAG44NJjesYZf}kSrkeNf>JP9U&P8dUw zNfmi1eNqY{Kt8TmRG5+yZ^A={}bEEMwBqF{b4!ZKlbw9 z`c2lz%fZd{pKSN{;2&%kt2k@@$8Y*$6u<7dhBFE05O`o0C-enIrY;*!i>o)^T}ouR zn($mwoW3UVw~muTv5{itPYe`R2@!vp^vXieHS_fjGg&(-gLt%eIHi%c$NmzL9$1iu zRl&MGAV$WaoxU5qm_}n(LjIk}sYSVJBzZ0dQmW=jl;7oX;NCc;MS7WbGx|EcaNL!qXJ#W7G1R{DBk4(P2N*=2K27=Eg>VUEpprF9X| z#MzdgS7yNUfU#5ea_rg*xoI9R;coEntB{sGW?lFnb2*Rne^9Y^a5Z!J-x}aw27haS zbRCC3ntQw-j{CZrq0_cmn8ppTA#I1w_73*rXEay_=wy!n3#@IHS#_D&^f1XGIo=1w zF_=J1rk+P|F&&`Hiv0Tl4b+I~;*z*J7JHlTBWT?*OX}n*^Q~lz8ID`9Ofoe>Yb#AO ziORApvdan$1<&BLI=u0$T6MLgm3cx3ILMWYg+TwW?K1DaT5xI}>kMM`C*s6QSP%nUch zNwr@f8_Wzl#Y&|j$mVc>6XF1pO4olLW;hsF#*g#Q3CI7v?u7AMiv zltog#KBKSf*ghvz3EiUzmRACY_oaXvS7R(*7gIsjL{;L7Gb#Leem;ou)Kq!t0}rK? z9)V5Smf0qduUiD;{pz`}Z{gD6==S>GtN6d-(tjyjm%lyZ-&dCZaOr=z^gmqs|HP%6 z6Tbvi{_tqZKlAYa9ZCKp6#uKgT9>AyfQ;yYyBbUz-@3Hp!f zVoGKpzW4cLcF^S_x+=ILU~GOZ+Qc?SxG#X-BSy+a=iM2rMW z|7h`n zy~iA<%}1OFGm5#iQ!&P2tP7WcB9&n>#z2oVpsksCT|PUdN6G&B{pMu8-|Y?Y-&edG z{CCxqKWe7r&kyaN-rd#6*w#$N)yvk*<*#o5IS51yCISIjFfi&Njj%itJ+3X^egTtK zWv551u&oWa>TdfnqofaZVd%B}SHfb!=|>7CzrmfZ8TUSLM0Z{0qW&%tT%?AWj88NQ;Ts|14-Vrx`8}P$f!Z zit-+kRy}&>%waI$Hr+x3+k6B4_ep$-tz52v1Oe%w1p&eM=Oq4-Is8+M{Vh1MF71Kr z=-(Z}7Ot5osFO%yIm7tjk*shyPXpgo$u>}EqQOeZ=Ayv5)ATm#Op)z6pRw8s)EjIQ zzDTBs{pRC7@bZ*BeR?<73)V5q64qdWCM1TgpaFO()tb-Ab%zdl1vu*}WHUo&yJ@ij zypMF-?f7zKvo5r20Y{Q+RU0+arR?V|c5y9Qa@NH-YOPi}C)RrMFv7k~^3hYL8&mXC zJwSunHlT}(bB;W&-d8W>ltXz+zesuerS2kazC_9LSS`J^q#sC{R-S4($$Uhs?WMY!1gVxV{Ry=Tzh6NQAs5*ufmEpZ$5y6tq zM2q?|dwMzgmN|M(!qT-k{XhjckJP7+mc3_JfEl_A+NoK5|7bal;t9CKTYFSh$v?Z0 z0jGH%TyDD#KW*zBN&bD)%MgxBt;gft36Y%{g6HVap4_+JG&@5q$^0EJVQU_bK10w_ z$E0cHx@xt|N`R^tO3&yBE43B6yU2#4_Y!JXy?V`454|HX;sX`(w54Vs_kIo}E46J^ zN5F&QYw7I$D#*9>^YqlqCp!<|(2fN2DXG?0^|#{dZBr^z^hGQaP&6sXl87h8?@kbU z^2QuxoUmbdBF_Vg+fY@p7V;1l3L#l0ky3;!^hJ9+NN0Mo2tOYJ1k}&1x?x@Ycl2CJ zZ(m)&muR|I&5ulLu}y7D0Zmp68?VY=0NQ+^^0!gEYg4P`7-rK1PMSNmw%YuSp9CS z?joO_BLKepwfBRp+9RFI?$Ce(i|AIeA>4({g2@qyO<;s@R4}D4#1guVeoloZQ;Cu` zgoCr2M@(6ae4QahxQw9Vy^0$lhn~>L|qFZ5MGkdKaj|YaV3bG3-$WpBX2?W%%49Nam!Rl z@cXUHlY)S>PPFVdWPpx3si@{C;o)8b6IH z-_q@%yRsFV=`Ih!t+K<}x|~%vEz<{(gERHiF8%5%Kj7icJ$?{*uBJLkV6fu_^2i* z$*j{?K;GsZyS>`hN1uL3O=PUbT5X-zCX+lg1&lzKxP@3=0J<3Ub?1`3@Pep5o?sz9 z#C*90qLJkLdn6Jl9FmvtBFS#hA|M}#51B%k6Zr4;LrG9VdG~fDPj{(i84K^QOWQGC z%C+zwtIJ7CC8YaNOD{=R*7R`k|9p_sFliY@RT(qYRBDiqr%MkI*~k4{c7wFiJ{y9M zjB>k;imx@Qt*;{QzigklZU!s$p9F)%Vx+}VZjKv?#E@Zl_6DH$&DqM z%<<8`G^&`qFf*^d$Y*L}ssRU4_=*5u<92E<1I>1DuC7XF6h0vSeQCF|355&&qY(0- zKtKrpxwQX7k*oX_FuO4PpZmWT`IKq-;lK9JM{n{dtUwDZtjIN0Q;9_31b&VIMur&H z?Ik}5xZ=}-1@%l9A;0nb_B_h#T%}!${aFEJl9>b>XHG0m1TU6Ji{|V2nho8fPv=IP z3LcF!SQ_gV{O#Bk52CF?5Sd2>$CUI*A6qCVms$mCBM|a5!bBR5U}pFiKXRzlMKcCh zxqs`+EQss#dF*26oUBLAYNk*O1?P|?Dk$t26_)(>jt`xe0mD{=J~OIuy2$Kaln_Vf zNJr}l=;Xu9qrwrUYK`smPiilI={c_Az_#F&KxTQk3iNVAMOR~NHtqMCD39op4XiCC z1=1(YqU#g`w=msm;=wdPEfte-iaeB8Emgk2r)tQ;Xq>-I&oi<#u$#M$I9f|i~V_Sst-O&# z4n028!UMFo>E2}@{P4$I2WR0I>)kAhh*pEV&it(?rYm`QSAMlUJvYAmUmtJ+@)kiK z1_T5`|G(zue?*d(IXm`1&adGHVGC}W$>>svLb*XyN?U{Ib_;U_JU$XKEp(!35YqBF z_y`U2P4R6C%n7!gnPtE)V{m7*2k_bIrUX$3&(2T#`D+3f?2sL;b(7W3SGyV$;BB(i zvqH8r4fJ9SzrFr&>&t#hTu zy{*yAW}}COV>E_n!~!=tT|ZsprE#Kbe$@KY|FTX$d%BF~hITS~&v2Y~RQ_m2Prt5@ z(TELN9yxt;NtB5A}F_dt$ENp|AeslV_geaItApY`_S|VsAT|nw67r^ ztZxnzP|c3b_40RrFoeH8>`Y&c%`ISZ)qF4M+@#w&TDIWL;5^z$^>z68CiYb%)8XcB ztgA2hqRtQ4Vxro*)oOTt)A^{AggojhY?MR>phVuLQddq>aUpDuW zXFOiZU~H#?FbroLy@_)ufr2+Qii!{_!dWEin^Gi)*I8AWc3b_DHA{8c zG;ga&rUiu2OTpfYFjBrlHoaFxgUIX`xs_#y>bo*fv-`0Xzx{ZCy#$(pYsP#mm%hg7 zO=X%)L$;4DV^9M0)iHq?=xI`OAuM2PvpDIwqC0DQo^Qy@vBRW|LCVACGV39>mc2k` zhR*`K_qv|9DqxbwxXs-=2O z+iJJ)Tfb6G-SX(yQeA&<1uv6bOU?GNIu}3HIcl=ph`;nR8lS8sD6Zq?%raJ+>n-}s zTR#l9fzAq;rimJYLGODM=BJwb_Q4|e-kPMlrB*VHwG)Is`kyf$>m3}ew z@OJ|(@=$z3Od?SPqV7=+v|e~#2d~rfddI~+B{SN6egDXzk}Y1R@8yjSKpXi3M%tzs z%9h4LsGFUfkx1{4@H#Y8-^xX>4*>DVZVwBy*U6#mYE@NL!V&)NgYg|F?ppEjOoov))~wUz&YxgCwLhNrX}$ zu^NB4Fbf2mad0A$VNgl3PW;I#XxYU#``J!T#8g6rvhoC5xXC=Lip|F%u{D|<#B|LG zE5VNqMK1*0@q~-qEj!!<^=vWy4XBoLe(vV(jjqkKN=Of{?kk3Jwe_wl%Rp)t#g)}e zb_R_C#>Z7qown5#dIwuTxO=@k;_eT@7w2vv3#sP}<4NjhA`M}YDld?*C^ReyO(uD; z$zrQbK9WON_+N}wAF^J9U_(%2uSJCQvN8EspSCfS7teoXp>2Nvn6%E2#&{rfe5=178?@ z+*H&(!e-SU_Fx=3m`b(Q5e^QQGRxe6EnD0`8FC5_N3*jHbE0N3f15473b}53`8CP7 z=rQ{(uO8Y#hgV6~2w* zPy#-0Wxn#Cm)+0~42t(;l;av$_-6CBB~C?76@IhCMP$J#REUsju%bhcA)3_K5CHV$ z4Awl?dD!ve!2R@cpN}55LnFPxu{1mIo2J@SXGRjPto+Wi3}bVH^}_uoq%2=b_|MdcM91T{T6stqSjbr+(%iY!M@Cko}xGkd&i;sE(5=((FArLfu*z) zI)*rgf_fQk)u8}lzfFoiz(|I}s1*7lG!`+HFbgU|5(g*7F~)_JXvz}bRwU$&%tbC) z2%Tb5x_`9jxh5;s+66X;vBml|oB=x64YFF2`PWv_FJHiHtC$_WrKeZJFG%G9Ukcne zTC!KWpy9jcx@Vh8A>9tORbmQ!2t17Gs;l?_Az)^bq?2MG;Dz1T^yEfZDqw!8PfD_= zqt6iUDCtiwXYkKYB?E!U{`H>Tyd*}#AE9p+qW%mke8lGbK~E+bPrgq0Od4GAAjR?OY<##eqa4#1gw30s0wHbBLqh#C&8 zrdkw6UVe8Ux|ix0lY}||4w(0SKBHGfuA$XS9JTtK_J}L!ECB-$EJBe|PF0{aX~?-E zLxbS}5KEd+jIx{|u(#B)DKMl49t|~2elXL$Z*e6%a-`9PTWO&RXMznOVz2MBTW*&I+5S;OpKkjp@}Hb$+I$Pd_ep`YnIODfeKV1|KbS z#1n&Zy<*bFJ#8-gG5YZ3Q|fuo%UAKxirGUd%l=}-z{Em-j6ZJq4o2H63+rommz{W9j)zU%4<{k2Hd zUGY^9?Q9)1$&)7>#}T`UCJS5=L?YjX(3l|c3zq0+3bZN-u5xQp3}(jKO2MEQ<4&Q zidsTkQIL*-FOiMwq0RkyRK_VbyS=_;DjEvIE)lavZiPrURpozri(!eHtaNH|KbN|6 zfNQ|9v32w@x%q5wr_|VGd_io#ToirS`OhfKS2uu}PRs zF8qX&&6EVuh&U%4QE<8fo&(Jpz{08Wmikll@*HWf6BAd5lhA^I%q4$C$`9JyEA3fJ zFX&|{M5~WR*}$iuoJj7gzdMJ_``lX@e*bxiJRfcS(mPp)b10)240;6j1eJ**3yC3C zr=W6qZR4WguMe0wNZ|u`m~lA2fZzb0#doQI_m7HCxN-Ab6AcZ_T8HaW9cbB8#dG8? zL9_|1Jw@>hVUoy3qX7hfyW=^*7WY6*z({Rag3h|Hf+kYpI&!8T>H6lwP;{9ZKOvhF zou=SNhV9kx7(26%-g6UJ_1i{>SZ4h|H*LSvyYHz`&a9BqQFT$|vNN*5%5zoeCenbx z_~{A-KBidK%tq{4_=Aks?({u-ht%2hTNPCEG^Y;5Ix4!AE{B^gACPNof2;H-$=s18 zLp``^!Gt3z@!p8g5niyg43v{0oyi6qde<)Z!j4-YW9UgbI(OpUCs!Z55<2(0>ORjR zmm7}3ldC|lHuR=)4OYpB<%DWMfjVf&@?HW9DM`rs&lMi;R@I!FxoV8#H<5Y@7~-Ms zpK((U{-em7Uk0}x3DMTcJI?=1ts~l>D^k9EF)`LXt}PgGM(R>y#Xp#M2s z!6>|NF->Ts5+f9@8ijD6hctuQ*hcAHidm*)MDQqRCV(XKw4D(7baX6j#v5+?=&-vg z!h#_1^W#+j1n(JG4TpEw+COpYk)2!LQ;)kZT*$Qt76ftC`8XR*RIV%ZFAqM)SqSBZbr>9%MMwaqSS2--S9iOOUNZW_D zot?e{lE|-iPqjDv9$tU6T!KqHH={d2(`(8?wV$f!yU5(=$P*>YirDBv(va3yd^)qx ziCg6pADl(diF`yaJdw6{lo1ztwzeqvV{W?7I6uA&am(e-`@zjkb57z|^=?m?l3wT z1xJX-!?C@3t3h5IKMw#ay_AD~ zey8Osq>^vg1*Fo@JL2MLig_}h%*#w(DMvQx|CZ1y$0X*8T4_bb?Fq=51&3$yuVnUl_|l<$0^L;?_Tll%>B|j@aiqML2^Mu zp~eoL2!&%Ff>qsQmV}6JDa)~8TId<~DGpYuBw*mjV=eS<=hW_AS^~KRJ=$SZN9udu zhxN;N0y!9$P`b4|p`a1)$ITTdX6y&UeP=l{vLA4NP)A{SbXnmE!7Gk~pQs#7&?+v3 ziwP`*&rB2=2*X$J1!AmWRR;PJ{K#2)jMhTzA@JN{sh=*Nvk~ow8^6?fY$nAw+gOH5 z8>14cVO=mhB7#=~X+^{1md9=ux0We}N`o|iG+O_P4lkB+kW^VWjh^9$j}rYhmM)fO z>IN=$7btB*)yH5DUiF}%mz6Aa%<%Dloz?ySpQrvUqyD3Q|A(nxj7pDjjWZB(RS&sIGE+?pTJX=$9 z44AAE2ywody|tL$ugeOm7E|*WpFTb4xlSLKkkIqjr)|2jYNkD_7IRx|iLSZ+v#I!I zx&Bp8=~2so{l18s1SYarOno(3QT?MVE9?>Q{Bp1M`ljW+$)?72Yo=y*Vfxs}V$(d` zlowz~!gICpTv@B_n5YJbB=o2FdGg#`jO(5!z_X!Ei1>Y4x6dw`1aAd%r)`>J`q$c_ z)5p!88vN9{YcOTO+}BZ8W^|4>Gneg`NA4Uf1V6+CaUHo^X|dp=@RtZqW`^V|WG0Vn4~@zn z@@U|k0~&jB%A1Se2OMxKO^|=}K2n*G3@&697A9eGrfH1eegl~57|>oVdnz5-0oW|w z0Xj-e4`#1Yz z1H`-OI|A}P*!sQd;drY63Y=XSVAvmcPm4uih>rp;9~(IKKNXfaEw+7(}n z5>V(1MA?J3O@i=9B79I5c?q)q2w}vmzl1Pdb{MjhX9a0CX*OZZEc#Azw&l~ank~WT zSlnztRrYjM#w@(!ddu~n-H+QM=-W1}m1g4yh?dc+Y58iflVk(`509<8f{QGg^Jr|% zwprtK4ZKeYjOHGGQYM&S*sg936%p)_u&Ryl;098??Bv=VW#ig;)@T4WM~ z0&ew_--REJMo*O8zxDy21o+u@Jnn9Bh)ohUd&q@Z0}x6OnW9iMnQ#*=(qv_a}2NH9ExI8z^t_~Tw|E2O6~goZPr20Yy?0CB48yt#_TyukXV z1}xfKT@`=g44c#8tmu4DOI^LX4dhr0e<|~}+y|hi8xDBx9zN(EM0XlTX<62upcPV7 zi6&CkC!;o=DPv07PQO+*;vbm|x<+?$UHiQ~q4t`fB`WTEC!}L5f!9qYe)*t+~89txaw&T|A zWtH?>-i=7KTxLTXpvqLc5}+^?rGtrAr%Wi6q*a$|AH|xAQhw)}e8)!mJz*Ccg67Uw z5kW3OL(R;^{5%Ne&>9)p4>7IaJ!$}TgGJ%a+je^1PWeIR=A)ve7p?k4lsQxTK(7Wt zu|b(onjvgL9;A*{lCVJCO2zEOn;2z05>EV8sU%7=j%4MNSh<(BP95KK{ch9>&;!h# z!O}Zd4UaTuz&o7Nn&47P&^jz+%@RqoJgmG8uI2;_kj*{Yw~gagGj&<6guN5xSAwVKRoo-*KY6U4f`$UcgEOR zry^1-jb_=&ngE+AJe(Pn#6=7fp;G}66^RQ~(KWh8h{eLf01w^5|BVk>b+RQEbjE>P!Pr}=h)b}*VIzrO_(LU57AO27zEV+XMhX?93g)mvkuOO&%weXO1RC~mL}sXkoKY-7FwGIH zRUB11GJ;)Hi{7M%w@kDYYm0)bSQH}@kG$$tS~Y+^s;}l)(8FliU;XhF@H}Q)HC)0X zpR2${nxHjBWFjgYk{bl&b5=7>A!k=|n?bW8@f%OAD&n|8*^gk}0a$Z&)292-;9%IU zP22SFj>h=yhPkEF@)E7iH0K@73-R+gw+hUVI`PhCtn z6fRPx5SFzx9oZO5P>0ZrXt~ewMN3kKSmK!nnetYim|F%G5r6B{WW&Xu{ZPP$ph-t? z4B8M{(pe}O3V5-xVCbd=dS#IdrdX8(a;3doF}ETGDRpQ&j`bkmm)@5zEMKLMTcvA9 zlE#T&i=$Mf3yFOQ#r}XrrOfwT(#?bbgHM)9WjfJ<`al_eq9aK$%t?>B2#1{BiJP9A zxlD2tHPQ>ck|dds2mWOxQuTrNeDJ(X>!QDnxsxgUjIpt%L`u2-3mKToL`3YBP(~ErUpb_hFk9j+_ONnFd)E7B#`Uluub*2@P%0grX>O#5#K^ z!h88zFrK8HQVyR2N;bH}BJ#VwGgPK3j0@o zrFbDO?77q6n4cBVGW<+^xZ*N@xL@J=bV$^H^VUQ93g_S!9=@D2-r&^hZUNrq+^Bth z0j$00IpJ=YdAUVQVS_2O^HTrHlE884UH!AUsuRzs?92LW3ztn+pCwY#!3?!=$*m$R z1rg~F!DMO3R@M#jEN*-c8f=%71VdGOXedA7qOnPPdU*&hi09$Zd6CsOg3v9ILW1ED zwh=)8`{9?TD>Jw|Sdjj=HvyTgxxZMi6I^V{LgiY<6?$VP&) zG^`26#RW^cf}{;2(Xet_?(Nq-9MaT;dGKr%?_MRJ1Gj_wi5~lYcYRWK20SDO2VfCQ zY+vb&V@pselQiGR!ltazugG{WSZQZ!>Ds^+F6uZ+7c_J(LR^l{E>98 zsgriYOl8$CkfckjlnuSU8dvbXEUT8GEQ{}x@V^_*|E+WXV^98v*^>^3`*lfp5RlZe z|Jt6g{cTVFzi@sn7x2p;_6$)nlBQ{*L}+79zmJ+d8HZFxUrGw_=d?%u1LyKhR}do9U;H99i=HEP=DTgF?+u$g5trMH`_v=6brS_uLNIm}-7r4V5Bj zQ|t~JYMu0mRAV=Wx%E?88moJDjTd?I4DFu^=Nb&R!(}w;)3$2p?d~_@KeSe#$JM-^ z!y?}rDjDXJi^SKwnDWiuO}-=Q_wsg_9Is4=*XwMo05M9=T85<|E|TI=Y1I=5y&Tvt}P(*(--iT{-s#aC~rHwsHIx z3xD3s*mp~<%Q@Qv+nTXZhL8P?;FmSuq1XcC{lT`oXU@Mb&bZmz{luEDM7?rJ01eD? z?Y2KF^TV%VJ7Yg;=BC{kq%8f$(SOyozq&dn{^+k28x(qJ^p*UDGk;g<%txobZ?mq? zYTNh6QrYqJRSSmMP80B96R(Y~h z0~a9POV{CdxJ`&(K9N^)auN<`<`8(f0?^6YS1+_b)s?=EeRAhNdVV0^m^IQ2lY!FV zk8!#o;O*jcD15O@G8GIn6^}rdp&>082X7h6;00kF%rfpHZAnpf)8j$qMtzxtnVld# zjeH&d6gyF}y@0h_EUL(A5EWCiQ}j_w|6*NL?Txa)?I6-S1>Zsggws=BE2JMrT_;W9 zkh9Dlq_yBlYp-sDQ8d5+lys^qbCRMi41N2ll@%z%2c1O5`+Ee}#H!@kla&(HHUyef)zIFZ&v=+v;{Ykn(hyX7`8l-~jAgkPqdcv-n_hD9$ySxY*ZR zZ{G5ONZB5+85qbpX7~+8a8>Eu$ToRR0xe#GXzbk>euR1mi+9e-aHbAI6oi329vi^wj^;s>S-~<~ z&=R!@$_iFTdIyh!{wjmmO2+VxQ!SoEA{Rv`qyF&|*Av&jpSJLi(jl&SHqi_oS-!{e z4FgAv>YmgEiZUaDhqW|nZnKWEJ%Kqktt`J+if|~xZwU0dMbX^ z6Dm}z_{WcMEmy|`u?K2yIUXe(9&0+ZuZ+{Yj=R`c#>w{RwA2)F6ST3c1c_rxQc;|F zU~z=CH*fA^d!EuuYql3oZ&xz}xd;+B{G+8@`4mZE4R|a@1B_Xq=}SSa!XTKusoc$Z z$f$|D6iLM?=!v|LWCH3(*uj6{n&_*oFA;4DfY~~(^4p|7Mb)| ziBC_A;;tZ)MbTN>{2ktUfLb(kM=s5_`*+>Z5$m=`AV%TU!0vNL(*emb@Dw20Z<;00x-4ZKq zwDmNOl8MtGU61E?ekyp-P#S!SFwUr2o`3B6WxCCZflj2zv zv8gGjI;Vl(vcWXugXJM0L#n(A{d#Ly0k(pV%*401&J(*-qhR7F?o>TA-5fJ!(Q?NG~r$k*>hTYC$5xj zWf^jJOi)p3>LDI!sU2DAuKf5B3Rp8?e3lIw#vIO{WUYpNXM>WqvQrf!6lL@XVNE1a zO?qd-DM@*qDWca0q;i1DOh*!#Qn1ugYDYQ$$16oy^vyBZ%RU|EY`0ZWN|9sR(rILvS^GkoWGX1=sH&@qFD)&$CRZ1h9*Dd zAfRRZdR!A2w=E@=MUmQQF~^)7n4k^HK?|A71tx4Fu9b#;wuiqcUh2G@M3P!AcxX{h z-m9nTCK%8?6|MGq%A*=iqI-Nu;v1gzM&jylc!;{P+k`0RQM`x(LGCTUVO0b(Z)#5a zyMPTa5GgrW1tD^zyz3@iN}{BQ6Xh6EdFr5w4OuGri;BumMksQ7UT!Zrl(}#!LKe3` z6ktzR0};apSFy;+76VX?hB+)$G>>^CiVI%47Ecb~$o^MsOC1lxo~%A$cI zQ^9VWlM&jJ9tz3T{#iRME<`P^4Z!*)ARr`#5Z`olKp~errcIfqJRE3Q8u)E&&|Ek8 z9(FZTPLIMQf{h}!xB%UW7ZUH!-%o!4n|I+i7kM(J0HVwap{>e}4P`Qz7?I#|Vc?~q zL{rGqnlrLE7?VnJQIdIJN%^^1u3zgkc1gQnjJ)y~{Lfm8>4hq-!Mm)7M%5boy_R6O zm-v~eb?eg#bwj20aDilIIVFOU8>JM~aA__GX*LRcCO^iie~$OGb`K~wLJOlFNF05G1o2E5uN;sREq%Oce`&CI#~;N!@ZZ0a#%~JuPPII zgCv#S@o&>{>OvGt^%(8p_ls9Q6szD7MJnS59yjW#s^OkVk>opX(78noqL>6($Og-+ z!D%AzmhRI}?$tE0(nK_=G% zF5wBq%LZpl0cjfSl*eg@cEqD;57Q4n-B&bXC=!FR_1@i9+f4lCB)X|eDAHT0ZUz)W z*(qN78kJuS3_7!G+$4}~^u7OYd#Are_F(Z?bV`SGceiv&2uLF-jdTb|OE*e?H+as)gL=-r_xJps=l=28KCofA*UMP% z8gtAs#vE&oxd$L1+-kp$omg&Tr<8e{85UrvJY?GpJTXYSw)8TBs5iEy{0wSd^lam6 z(GQD$#O$O7z1wz%=>P)rbOZkw%6hRR=O>25js>tVQKBh=AZsJ1vcMEUjV9*jP8M^m zSX;zqA^b9c8o3Bu+-t9US zrG5_U?cT!Lw6Rcg^L3PX<(0YwWS?(lsmnPNW3gK3s$c8g&2ek9)FPc z#-gZBGu!)CZLn~KL3;c1VF;lF0kg*L(cW3^cF>no3g_8Tx3%yQ zOBYlE_yqp}T+4jBV};(wlfb895`{j1JKBab@YgMxeQCAh{F<-Fv%w>|yNbV{@ri(b z#%UN&jkUzZyomYBL)$my1)T3>>zt#LE!cL<;92ShZ;R!h0*mFhfyMIQTy~YUE!Qk# z-WK7RJ2%1gE5*1C?wnQfSkGki?9|y}C^|S!d1gx}D>8nSn+Rd3j*8B*SKcWtTN+gg z|EPqA8@*VU;v#&_Q`uV+4{z*|?Mq;)_ey4&1b=#^z|U4YrZ9`or86y3(m;1 z%A(2CPD@&MkTuL*2`lS;?w5|BM=LAIl`_qo^=!KcpR8BrlA8|wrFOgC$ID7W$-Oa) zLU%F=j~WB*h>U3RLvvh{^UW|w5Y(pUjZ^8CIS3qEDpw=+;nih+7DdR>l4Sd|PL}7r zv-h#`tE%vHXt`0|E2LtP@^b%U&g9Y_F3E?V%_=PTlVVydHnU8(V9O?#g-^gp0Z?1x zxsQzawW^&Az0_5Q$X>vf7CoAYVF9mh=uR%wm>I@{bMo+P=+)HKt)vV?JseebZ(;Kf zl7lE9c!;&9B7oB^DwD~iZ`^wEGNB8X=zuc?Sp4MD=fRzGmCS#+?SYtvG-(ID-Mgc`Bh|?pZLs2IW6VJus9Q0+MI7!CmLRygpz22Y%);Jx7xnPUZ`n--x z-R-j79PQD0`}UjUvw^8q$qF{MSv~MrPHwjp4YGv%AyyOy6gp94Bbi4u8Ld=gTzWx; zI*SJZ8gUY3w6>?xX~vKY(1K?gs5DK|Z!x;Chv>tw$|~gXtV?DY;!w{$S$S`g^b%?C8%1JR z!LXb>9Aztgwwf3PvTlS7DdezqHbioQJH<%gvYR1G!5Yj)7uc~;UK*{by7yOy{iUh* zDskasht}SzwxtI7-~sycd_95Qa=uXFzBw?&+qSrpI{2u4(XQ^}2ddm3)|NtyQL#eN z6=hzK5QY*%f>VKgKnv6hgkiJ``a)0QJUl30XpdGfUO6%tKUQM?IkyU)qR=8stWF&F zUH|OEl$q^ZNMM~>qv?)OJ1Z*-xQU_z>W<4|RV6@c^2F*ixwd&4S?~Q|1S}9}*Jqr3iXWfrOeS(q2jUHhr8m@QV>;*1mhmvnIBI zfK~A)=zb67`suPEVDiylN5Eo>VUUPTG8Gy01;pVAk|T3J)`$+cnio1kOm1B%v#*BQ zq^j(I9a5QCJ|Uyj0+}EM)W3+j)E?4&1xRj1c*1&6h|4dqi)pz0)W2?^3LX_wVhRQk+GygH0%%Gu%U)FvTdn{QU(`fb4rM-Torb4Aht z!_VjaSu-D6rZC=$CDIgb=l3`@6B?;1?x;9o1!Jvn1nIVrzG6ZFjR_(Sc$?{m8lvZc zGDtFqureB-o+wYsw(d1=WDGW9nVu!db}hf8!6iG6&v!^Kv8C&7adonU{*H~6FCBC* z-Q)6+XK(P=)sjHIJx8P@kA$|b*lp)yEcP~TDfNTKSxcga7Ef83BMKwE*m#u_yb!5;&wMzU1C_Hqc@nOq~eeh3UHNEvwz*OKh@3>?M>*@nP@; z&85$dM3L!Ad7p3^ zcEY#Mz*2Sh&D9;Xpsl0k|27-`-8J|>kM4iWqci>*wO0fzRX_ImwMWPLM>hP%qXU+z zzkUO+_lY)*0`F6TGs`2FMLWm(c?y{7NttZFY&;jv)OEov)UDUYVh*CJa?|eu)jz_I zc=4)~2`_j;3`jrl*z+80YEnh-w$D#)pvpr%LX(P;87LCg(vl)q-iC~bev{6tPQcnh zT&s!>umzTD#F^Lg@Nk%}_LlV|j4Hdp9NWQ#}s;=U7V=(YV~oJeIAnreKqFp$%FHLbPMXYP!sm8cC1HiZ!LIn# z<~*%PAHP1;nE$f9*_-=hPP453NzHbl;blcqvw2j7v+SGm0fO9l2QqhNos(2{U{%jX z!PBQv$?HDP$%s-&YerxIV2&NH%`pcob5RSiykftBx4QivGpC5Pe#dXAbA0^S*Xs%#Fqq^K>Yn9UJFo{PyPEZ9&h;mC#i|y@BZmN& zsi2D8DM^pg@R>*QG#2%PeT5y{s;LGmuBu}r-3=uVu+^umKfYbtHb?d=Fz0Ts+W4G+ z9=~EIcjQ6a+Ob*5VRFToO8DV3X`+4UaqzAuB9>H&-B(6e^?AcDW*3HsFGL?5=PsVq zdK`B)^SHR#>_m?+UaK{;v%A^P;gy5-XfmE@&7U~%g7CcmLX#Cwq>ko<{S3xLoZ28F z7bHglbfXq3iXW<&s1^GKnh=|SGn?ph=#LK~p2_Hm*2Ju)1Y5im5f>5X#mRwjCgj(> zKJ=&H4hY4|nWq-4cv?}-xo?mb+f7XxT=ukZrtD>uLM7Sggyy=bo2pT8X-sTzHp1Zs z$Efc9q4YIP5zFaSp-Hr`iXvcST=fyg1KTt+_W4zFWIi{=kmw@_z0B+(5Orb@fDdRY z3S4odifyrcjydV2RkjGOzy-`G2_!G?I)P=}RkHi#X)_A`=SjQG$uX3$;n%5e2Xu)* z8F4{3sve+hqN(J=pg|Ko6FT~`z=fkvHTnQQG}7CxVVs?5LDbDXJgj_1o5Mj+qO2=y z7OK2Fc=qa9(yJxv>b8Be6t>Qk?2u$M9U(bBbbG$sY4CR6=jA8^x>(k(gkdl~;%+fr zxKvH@TqNNn;RNYj-@;<|P>T(c~!#j3S1PaC>ahCE|UJ#Y@>3N)S z3_|~7k!Rg#SV4Fhqo_I|LLi%?*tE6evqrB45m$%AGn#N8_hRV^cON*4#?2cX7Z)NT zl#gmv;gUznXF)Egf%~2%T6P(B!tnLkilm^C&gHNdn>x`(y*9;;#8vE-&X2QqPpu;A zR-OVFJEtCurjgG3=*9NMtIo1?*EeXAS!$(O&T(0vSWTh4Z?s^S@{xbT+^IyTVyfi36d-VwBth=ciAG( zpulF3+ISL`L|9Qu3v0;Y$Tc?*^vO1d=!BiEbiH@2P}4lF(d1blLFskU@_8y)4y|gN zXEd%T+gEWqV*q>-jBq%eR-w9&*sa z9P6c(Y5bH|P2EkwJ+12%^OjPyV9Ar=g;!<_xLAsn==mr=9=9`Jcy4|&A`re)MYi!m zb7MtSvqYdCP8oQ~2U!D8D;PMrmZy#C`kp;BHfVf20AfN1##Dtt0mrGJZwWyfx5oyH zFW1?SJ|x>2;uFTO+68mT&^))>enP6MBzaD{?x5Yfrdzo_9b9P{t!TXI%H!i*D{X2D ztdM|3CyrC+D~tBz@bZ#{0#CF_CQdgESh8~xg*Fm`3 z6cFU2+3HRtV;bCuusjW-t$b;cs0X8*XjxykmXXo>=p)XFl4EzHHR9}I@M+*A3s`WV zMAUTm?qlZZT#=wu(YP5T%y6)m?;$Y~haF14MQYG@lk0;%!D-Gk**d zgUPUdr=Dsx>s<~xtXdE#t8kX^oF_xxR(#pN2vxzV&p~<-C7@I0iJw|Hhc*Uch&MvQ zQ$$@oOykCb>$4LscDEH&w!W5;cFxN@k8Mr8rsu`iH6Hdap{slSRE^?E+-$P4 zW~;eTR0iy7jz~QP62J;gdWs!2GT$Y*Qj{VqfO+6fhD2OOqmsNKc|+i0dXck_6ZBx= zorjaW|B(Gz9E00B0NqEktQjSl(HikX{4fDoU`uHfN5EgxVJGj zn|faE+v;d;Z{4B+EHawT`ErtwaSrRf{( zM9mbdxa$(L7th*YtRj3OJ)I1$Pk!*MOXRim7A`?3%XqzjW762D>P%cva!qMn@w9YN z+tJbLCoeOeld=av27oRtWzDbMZPuF;!Y(>5z69gMCF|L|tg$N69Nd53UOhg3Saqsx z%|7|Br&7<4}fYf*~p z+Dn90|ANZd&uoc~JXb#NGRQ()171`3Npzr4VL!pLE@TTXc=+yOYUW$;DQdW~>PAnU z2GawRTAbKm;kfD0K@xAe^XvtVJl4VJIvO6PNx@$8y24U2z*#wz@aeds=Gxa0OLbIj zxP-2OEzA73$1%Z>?;g2md;=pw{1nc;`XHMoj72kHE|i6FdIb2?3fP3mf^4Ykc5gzNNKacr4 z`;Pv7|K@y3wpxhH+Jv-raxzn1&9>$DzNKBP+_UyqyN8Kpd#-?Jr!;g2TG0L_88IJr zG!2^%Z-->|1NhM>#qB~u4Gci+JUlU=7sx$3MUmQBe1Q9uY!Bf>b0eK~Kuhj3t_Rl5 zC?nSapClEKenXuwqX=UtX0D#*T?|!8dTG3-63tC>Mr>liC+S}5I?0DNFs`LQ8Ua@Vq}V_A2Ax@ z%U#6X1QMYu&s~))%kZ!9>T%bGbROqUpRv9AS-cwS_+79+5{04Xd3lQKf+oU2j7rdp zLagxUt9=`VL!Q+ZLZzbHZw@gQ0A`ssAs!)L%!nKjPC~t}R`!NJ_n1~SI#tJAI}g+k z%T@q;^daYS1pVtwAts-YQ+K3=0Qm((wjIPSH2QLE=VmW`zZJtk?$0lQdpCSmfx4;` zU4JqFcA&_#)7FmBxrRx;JKBNx`C^gUnLvu4i~ZcHmND)0wOXf3pb?s!fN_2%f<1_; zC_I|APo~o7HwlJ9IJ~_Ek~GR#Q3M;O&xiQ?r^np@4a?r_y>HuFd5qE8l4Zo z8b&xtRC!ESFNJIf!34{4BTz~R^;P(h8NiXr*@D1I++IPEehpaWXG9d8dqCRE((hW( zw0m^m3q~ckCU0BLm_qN2)@R4N9>TU1C62XE=t=z$9gQta$1~#dGaT)ag=@w7VO3}! z&N&2cr;Nk2q0=cn2Y)z!Ei4mA7NEb~#?ZQ1$qC@1a5gAaiVC$BywQW%)M(4C& zSb)tL;`JvrhO9^EOX)w(Xz%ftID_g@(Z>?)u7Yzz#o}r|3Zti?1eoJGW(CRZ+tK4% z4bw!{+j%S?c4xoZabB>ye!8-aT_}oL+H^4S8hCB76D<7%7YDo7o?r8#qaDdd@T0Ew zSv<^GW}XW%`c@$&TL8FZ@?N?Y2S{9z?-_m0+AHLfJQvmLM#B5wjZLAT6u38SEsAT^Lv;kCj z>a9rMn~^ws9mN521osB1gW_6Vkmz=r5^yhk82BsM0n^W0;S-6KI*J^yP0cd9eCvE* z!xhFFiE9oBrkfTVkGk#6ui?x-swmeMSL<-px`MB&J_^sNe*nu_Q!2RiC}Me>S+(4C zWSdJSPt1Z}e>0bP@&vi8Lvpo84-gDB9xGWX9EZQfvu;+oi~*S1T9?xCL2jiNLDGFq z1nZ6U@G-@x1QhP6A2R(G#Q2hPIwRHcNJ$Hr)Wx<9Z_6wbb0240!=c`xRLz;|)QbwY zgvkMpyj9Cx+V@ihpc@dL+E>TgAOnLu39zW3m*CL-^Zn~PEpw~=irqH6tYP~ksL&|T zSk{z8(Ollci0~m0D4DVYtR-M}eNY>72*#Xr_0-7Wb}0UCwLog!OT1>F-$YEF@IgBTJrr!s5? zbi+XsJ;gaS$#+>|Lm9$fF0tum9`EEWi60|K}S1kGX~g57ftI zfUY5n&97ZU_V1b78H*(r98cgTBinwcX~K|8l%ld*7zt9Z41>5obu;M0Mn0y=k%*>w zxK+9JdOMn$f`DP$fN@G~${MrJSCSJ&>~PQbs#V+ha%?siiXdgTs5)_Q?+FulDdh}c zta!C@W&x*XO4(A&5!0;^!ZEpSown}Oj2mvYkc2(+&9Ts5EHP()yX4A`! zhQm_Fei=B$8M6&r?+CVeG(|>Or<1}<8qnXc#8tM=9(YwWAuDr)ZbP^QTb3}f;t z^=~K(qhU5`(^O2qLKNmspV~Kq8kle3xz0~veKYtqCp>Up-(k1WmT1iN+q9#yCUB=z z*`{-=b^fZ9!96&pj?R7~eTOAWhc0t%)`b?Cp*J=v+tD2zvsLrB=h%+IxHj<2^BC7A zvE7*itcp%c7n6KD7B6QI<(aDLAGMUcS*=Vjew?%x$Nz%H3(f?}en8F`CYD{y>{6W$hL*X&ha*H3))QR)W^*@D$X~W_a@^rZBH~k;`B&z=S15t z0zDi`9D$FGkalr{-&tk6*<=K2XN|EF6(wrz{3-SBDr1~YP;33lrRy^vQ3sI}%NHmJ z+pfH>+tcvSfv0`-Hf(jW0!W3`CSOzV>iRl5(qszuT%r&s*=01~InaVojPuaUS z6XMUhd%)ZLAl^ek`Bd?xM{uO(g1+|d`OB@7!3ZbB)v70P_G9m&g%~3PRCDMg(4`4c z{rD+S!I3eNr6smb7Xo zeVB=3`ry*sEr|=$&w#QE&GZSJ!6%e_hECn6UXAAf$XM0oQ#-CMFrowOj3qQTr?loz ztb5mNF3nuu(&@{m-1QvcIl8e^pGS|N<;aj}@W%n5Orv0oBj~_Zl=2D!8J+8}CFyb& zqp|x@`@S9~K1^{xg~7u#zMg=6yKUvNKszWOW37@w9gY=l&dnyHU0 z0_e5L!T4cIldgS&_Il~FA4%5b4DZw zCAbV)w=wujRZ+HyqfM3uiloOBEf$Bqhb{9g!PSjU_Ds{!4DfmmR)^@iQ4?+2XhMzCWxTRuc4{67L883JNB>}p4$Y3!dBE?LLKcD=4G8SSSQN^Q zz|PE!(-4TW_O*##HHj0#k}lxG&#_h@MDCLHa<%Af86L|hE!A|=9^Wx$$wNd~W|}It zF}DpN9qpv}(2B2K;N$&_96Qo4SJi?fInRzTyn>x0;=}3}KAzWk!I{vd`j~0M>Ato_ zD*=o{j`rv=UGo;fbvQfk3$Z>Kizq4bemiHBp$>k^7O~?Xt9)5!s$`_IkYv+Hc_Hc1 zfb#y!`@o23AvcQpdjOHoE#$!L)1H5bvU>X5hJsW?6p*r)BK%aELI{7&28}qfS2lpF zAE3xdkRr04^d6Hre@5}8qMa}{n&`y1qH66d57O>g=CMWd1A~W4)&W+VIL=AbgOZ(+ zY5b*C-XT=*vBc0QY0)9-&#Z8+_u1AJNhu^>?+1`x4?o$OPu?`@S;=`sM>U*9&^1fpi2yG(iflKXN!Hk8=w%@v}8in{I$jn+S}>+WCQM~ z^vD9FX;w?|2(E#7<3J;kaj!&?2qD+lVO8HO4+jmfeufWMN>FIX>~-}rz|w3|EGyMG z2|L?Xv}`%Tghn^$tuK2;fdQ3tKmb1->IR||<;)wJtg8T>a3HT|uLz`<{3F_rO@x4K@m zb}WGFwKC=>xl?RRpI*Uza(JRm-Sr{9x)f8`$rdW8r%myr8ybx*R8KXfWuv1cwt#-p z<8S

3o5>t$1%{9N0dp2Vy)8=#eD>nE;S*)#$d~Hs+guej1q%qHpF0vCX-QppScoKF7Z6} zBUejB+m^mc7&>~C93=(OIr50^2^XQmcKCp!`52s6;1^7pX@>pGYA^XE?niA#1@V?w z@c(V5^SfX4f9~x6m^)i8H4%>u?2sTz0s?~Zs}2ctxBhI>uElFMq!wWJ-}*;pAzt}* zzNeKzqq9ZTvxDSdQr-`-fXyU6ndZ0!xU{-NMH3wjo>;t@mNU11NYH|mfbGK7ypJR` zznz5h$*O?rqaOxGIZexqK#XENLP?1h|GcxK!*su*rnjbijp>~4__Iw5p5y|(wq%Xe zfUuhSTrHTXWwli3+BEy9CvzJb%30TQz&wxLB5asmL`uiX%$A_ju4Ei7G+ zHn?1{Imrkq6*KBKi~Bxhkavr;&T1Y#Y11RYxC-bfHX?d)8KK#4MaXS z3nK&qV|gfn+g%hXD(-z;#jZwnqO)rJxU{d4xT@QNK*CxlZoiiGPALO@7cjx;fzv!& z@Xez26Q^xmf!=b!*uyP>;ImRoFkJ$*7`Z__Jv}Ska#)(J`m`4o6epR!l*c=-J5}^7 zwzG$KYmGfkeBzdU-S;!FYEMHG!(Nrj`q$0{QAW_&Ra(3^H=c@~bSW!}f3YQLQ-ys~ zVSrm*x6RG@tulEN4|QdZs}gPHO2E5;hDE?nDRYI?_DTALxb}uye_rIcB)t+;m{X&L zVA0Ot^QJR9BCj)&w-M%K3&TF+uW|Q$7Ni!*RZpbh2v*?bjRKN&S#uEBp~sEHaA==m zHoGxlKJde3`Wl9h_v!qiOQn+}E?AA?iYya1Tgnub^A)9orl^%p+Xr$ijy~I{5Bp1f z-C;6m2t6M<3^WQp$zxAB@a>kHxy0apa9ciz?0wS)@Sh&kHypR*?N|}B`(%AuxyWb9 zM)7WRtZ?zM%4*PrVy_nlpM|=NSu6&8e8zGp-M4p_n=|P($%Xj%W|9r|$r{#>Nf$}4 zq9(@R<6Q`yx@=QvUm)1PzbvZVGRR?*5!O14#xw$3lO^-CQE%?Ii-1JdS4H6qF$RG- zL^fa%*F}=qLPmM)1KDLqr^!L+pfkQCJ?s^3&X5a^HrdRB-JrF8_2zknb~GWmo(U=kXmGMt7YdctdFSAm|*-)mMR{dztuj$>)ly8 z*fEct4NN6dJ*oqI4Y&J5vx`B%lif{RC(e(iEh+0>k2o1JPntr4BD-9M#*rvVq>Jwx z5&>NSN79}JT}#Q+>LkE+Ui#Ip7X961wpf8&#uN59Orp{Vb-z&%SE0qbZ;L9r^*z@&>QkaIa z-jiTfHPJ4qC?QI3cL9CT#Zj(cB)e#egVa%kC@j2go`rPHNdm159^(2(lRK{_3cXxN z&m*_qh&vD<4pm))*Yz1$OSnJWlFxs)bOs2QAyne)Et%`%FE2eRM)OVTNauAE=heEz z7r{hUPoXWvSYHv7=YgHS)V&zc^O2k9D2pxkT%0tDAd2FTg1`@9*l6vuhYn06=#Vm< zoF+PmC~@nevoCvvWZi{5PISQK?ywlwE2U7v0$oKwZ^rkfu?p(Nr80Fct-aF;>+fen z!oTlH@ZGHb-*ostGaZ6}JoY};Sl8^XwE*^Y=tPY}W12D6teR}hKx4xN+7r2EM zp#!jUv5BPxH!=NFI$}bAg}$YMiG>k2vAvxk4I42p50@OkOxF(h30q?mD_cU~DHgWe z#Kv}ZRvfgnw)(&pRZ|XXsm32^4Qp!0Bnf~6?AQk0CwEOv<8;?x9zrW zKXT&*5EF_Sa1+Y`fbszh^%(W(+1Z%%44H`uY5z<4EDa4!^Z`Pa`u64k3%g%jI4$6% z9l*i>VDJwT>RMU-ARq&a9s`RZo1Q*1iyjjl1K|Hp0sndlKd|>_$1>oB-QLI_J(qi13<(7Tn7_Agq)^H;;dl7es44pc{aV8at&D=Uy2@V~Sl{H~`z9J+0K za;vwYgWOW!^hkaSMJgjkMu&plS;x7VnHhmLpuL>+FFH zs2qOe*5qNA_gMH)ToKF&b~6`JaOx20z+fSFX#-ix%`x{2lT{o$8vXMiRqDRNl>iF& z+~w>A0Vgr*<)jqxHv87ai!n)`(m%V@^hXgVti5k_`dT)R>nFHb{bJf_w?$`uVRrut_OEOp;}%BE z0$CUYvO)DD8-KKZ`GJhvBX?X>MRH2D)1e91=ryKIo`Mp=@-rsEvkg4gTS&j) zq9_jaeq0Vonjwk=3BTQ_EFx03`^M6LWRcpXQ;6&(41mZpb3&KSJ<6(oN%BG7(n5$5 z0F|qs3`ITVm{fOwea>3S`B`2*H1g%*7FLveVo(GbeyqD3>VbGbTply9>4<|<;5SS? zERomyJYR|g(>*|KD-8K`Fk{L3P+o?dJ~=P#(X+;wY$IIwG*PcsB{?5AW-h;b((Yd7W?O5rap-&DKu?OyA%D&%D8c_2AMK$4#PJ0#uC zNVghO71;>vm4oK1-BHI`jyF6iY+qkyr&DkS7G@i*@=dy0-PcI}bL2}%QXNqwaM(?D zk#wH*hUTX2@XE?%Kg#6KkN1K=`QHdyUQjHk`Ei1FwOxfMp`*H{N%R>wj2pqoQ|@~W z7n9pjDHCO-r{W3N6fRR`M?T9*9}9SESe#?h?a3Uip+$VVf%xqD;4YzyD0rh##2(kS4k^1vjrpYaHc! z>1LR}rU_4~vT`d?j^+LH{3oCx4G&-KzxH|Ykrgi`%%4$}n(P}_V#3r`@gPdB++x~c zF_}$55mNWyz(xdaoQ5ycLBIx#$l@a+2QC`yGQ*1A=h@9jug0H!bdymQX}SPgol5fZ z)T9elAl<|2RX)))FPu`pp9YZQq`nRS{f96*vlyPCv`&!kVx z(bGb`L>AE_Jc;<>sEgNd-OjQPugmEx$Q6t^aUAbGwB5^ zJ;JN8Z)nG3`Wf0S4QwxvCRJCE#lWNkn<{oUnvxp99hgw0LJJgU%w;X>wV-ouNO~Aq z##JPc;4w*)G*+ydu$U2I%<4uWM2>HFZPKG$v&DOlB&t+1#<~B%EZuHY^fO7r*^+8w z+pVoFa>tOkx0`(CDr#wRn(LMG|2~5bK32 zlN4b`>fUTNnO2QoR!_wz1MO1X%F#W$q$rp$_~}1j>GqN2KUn&~cwveo?ls&|ZF>5jyU8#r9lcx<#KpeKRiu3&QKpx@RV9^oK~6C+$Bbd5tm5_zw7~He zH1a&F8EJ`5MG{dqo!j>SR;8lSk1vHTT){blGWN|@y=l=DC(?tFwsLbg%Jw7$mk~Q> zaDl628v|FT3BD-NiOIkIgunSUkeP-?r}t@Edl+X47b~de16uX zs9Y2IKQ)Q^{Kh7^YW`M}=E{xw4D^w1hZ~jYqi3KsdOIgKn)Jn>oPNjvwS20c4=h)1 z*vnQ9)mcnY0?Tk$qE8E>P!HcJYC|mS!%W?dlNN(czrjSjj|b5+{o>a1d<%TRQ^>w< z)zFqwhHw>#y_g=LO*$Ui!Yg|~^SNTg*|@q*=cH~sNfI&S8b}i4x~$y$i#Cgo#fJT@ zcCW2w3N>FSkkngz;gLMuh#R@LlD=w=lJ=hrx7$+7KNZOW*b7eRjer?}Y=yz|hZ6N- z(Zrz(utTGA#H|GH>@relgu`NTettVO zeksGOmR6$#$&;DVar>g`_@*h%GvIJ@?p?t9>-6SH zw>R^j47b~=gI}-&uL?~KWT_R%QgL^VPy%nn3qf}EAY4ji=!onHZ#0wP0XTeoI-s)z z-2OB5o%~Z4Km4RZD1Lrn^R}V3(0;)O{+ByK2veOh&ys@@8ent$BiXsdRYyhfpQEGt zc5|Xuiab^9dnJ)y$`+w9X8+_c1@w6?TQlhyEIp1sI=8U>A=)?0GU@?SFzZe(q_2eX zi@@QwQP|CiG+5^!ZDHCPJY71L#4=5RbTHo_U_d28Eph5UTddlblvuzYx}DQDrj#t1 zHv=4Q?*P~Lh8t{aCC-1s(QPXG501ER{7IiTK!1{LDuHjvxd!N3t8PPTZN;~@dQ>!0 zq=b5tSpVry_I(*4??2z1xq8Ren??yhZScu0^omsGf5a>HE@poNBh3FYkQxK%DM|L3 zSpz*KTgv^g!(zi*7l3vkjEJ4O_Myol@))XAyQBT={#(PAxb6Yk$SVQ3C1bSN2lm#> zy*GyYBg9sSNfxnJm&%RdeuDut+{Q5EUT&dkx)VYCpWaT~x|1>#yn0V#+$T$t`ioT) zt8r$+92&FugZY`#b6stF7r_6jM_in;7#%=YG8OpH+Mn$fzx&x%HUQfngPdDpI>tFI z9?>H~eJ-M&6zT1vu6?B9u+%B+*|HC5_#yM{ho-V@@KZBNn`{jtUvEzog>2+%-S^mV zJf6Hz7ng?pZdzr-Gjv)kwZo)n&06f+%p zHS6>=Xe|Ww2&+>n*4YlJ38BLjJA93ivR$>4S5tU8EnaX)rUoJChpjTFSXZ3VRC*Xy znsU7Z8!tovhwRt_N|EnU$1vP7f6&!3QIRD#SsW$N6!;O0|LAOoy&<-xIp=_eKUuT{ zF4PX9TwcA-Zo!mumpN<13^Zl4+AguRBlG|xgHet_C6`81#v(k7(+Y{-6il)#r-)Kx z4*N|C;1RBOpziZ{8b?Us8MSA$$x!(nG@7MWvH?wpp(Zlb8Lhdsmc6c#`+hM75QsuH z&y|(m;aEm82|ZGW8c$x;>b8*;QhHw~RTqG?;D^^XUJ#1wPE7PESUs6lO4y8yBF{U}@kuOqFh&ugx1jo!+p&K}JuBe5a8tK+@8 zXD&*pA&pjmM9kbLLQ>b(4wxJIk%;ey?uY<}R;IV1mGGy=xMdD|+(mUOr-Hx znnK>}%|$MCe;zsQ%m_PCLc#c_M(qCKhy!2OCLEeycJa_*J`zN%Kxv_albxYEp^J7> zX#+Yj8S)1D6w#8tG;_YgZ9*|DDe<}jZ^Y42{W^eFRav1hK_qQ-uk_h+6_PZUHsj~G z?y$Vu8G6fe&^mz|st$aWDN{s8BvvFF|D||)a3#*X0#RS{tLNimi+E+2vu*ru`o&?# z>{Dezi_w7|Uzkz4vV9QaEMp@RE29&Dia?m8UaF?TJXukHAopT5YxZ7Stul$V@|!?( z4oDXv@ckxtajPVMA?hy_-9(?yZlh1Z5wemEhjqEYf+NTfx73^H^VRV8=o11KMo&kV zCp|3esPQKFjILaUlxKNwoBsp~q7km=TUwjSk>&$n@ae6DhU$tB3_fkfjSvJWtwl`Y zz&Rp|kUmNSqpB2&+J^;svLB2-k~A8b366XMeNJ9GM|{23E0;vRuqK4B zCYETui7A|@(lAd_8rM#=+aJDfR{Pb*VQ*y_?b(c@}A+#z{>Pj#9{PFnt1b$*P?dL@*hm${kzSvZE^_-pLt zoxD>BJ>Szi5b!Wr8JRqPWOwS@7O9=y$4Ksh0UZ`^E#LRwWLq?jBoToQOMueNYz$N# z;A{*E%v+=l--J=XyoGiOFpN^QK_3=n658sYVd&p< zL7Y341e(6g+z0tVEEhQ#1V>*ry1%#pI3sf*fQ7kr?Ypif!S~}SS3LMbbxv&TR-K+Rje2*?e_g}Gj6}W|1(f!{(fBj6p4S=oYYPe-wg*{{#(tdy@|ws zJFb99otts>{4+YZx0e6FH~v_p)%3?9IqfdumG~bEG<*Zx z9jXz#3!;i5pm1WF3PDZ!Ri2LwgT5eVpT8MbXLH7`(9SkrdTI5NO4j$pW?L0JQxtK^ zL^J5)9;^1hWafljE|0cajL+5G_N@`H3td$wJen7Gqew{S<#hLPf3;#<`2mf2rm6}_ zz>GEY%l?z-QY{YGd%?JMG`ibAtIkg$_$@ouD8-~1z&r&NeQcAbzBakiW!~hUTpTgn+G26&Qg}?n)U8v%Jsy*e--&rQ(fp^-n&HF0h?j_=?i z#wy%0buK6)(Cladb%zS5JGkin@^16Gv>mVX;PuV(Jcm4<924m~pKg6aK7$`8sqWbl zo_V1(26!Sq{^gBCos-FZhZogfjs7Nd`g_&+P2|lF17plJBEg6B0iR*97c_oSW?yKlOl zX+2_6FZ4M|Zb}>YT0!~;Jt|ki8kN_sZxiGfmOg-=46>m#qc4VaRe@JaIn+X(1%G^! zD68r19Kp&T+mLVBEe$fxPTRQEqGQMbC0_{0YHd9o=LNxbA-*RzF4D-xX&VYDwu| z2D$d{4RYmj5HME?$)pGm(fBZRztOY&3nv25=J?#$oIj>3P~dd++(ZeSBk|Aa3K#(Z zr>k3oJjVRmi~Axk;}bE8Dl{_2!nHHQ^* z`I-sfxO%yMKj-d(+T8xnM(4*6`;HxJ6oLGrT+OcIyF+&ii&?9>Q%y=L5S1yR;3Ve*tvl#a1!G>$a32x)ZJ} z*Uq$;nsGD)@dzrMQ!6;@w4E7Mk#=x4Hp_>=aaAmPA~B>I*ckdRHWyG z-OA=*f3k2lQI+NZceaTuTZ=^GaAE`Xe__ zU~)P`L}dWDAp(<618I?}YTr0;V<229$q~!s+#Qz7oI|FhVh$1q7HnQ>?)GAq=}zx{q)W;**@2dT1Wv?i zmO7jF&>^+3@;kn+DDs~#EgV1OR6=8Lz8ltw-iK7sE2Xb5MmBq){;0p=&|$WxP^ZG!~dh-c&^OsGycU zUf%n|-SwYcms`(WHzjKefnDs#*Py6Z%X+i~YArlA`x-@dz=g^tRW8{1s0@$d=~)G) zLQSlopr(y>2TgDiL*rzNP)db`py~0P>vJQGEitLQhOeb5l=aqEu|{-xWz@DqGm8ZS z2xOvk*D_JIw*?-PGk?pARui^tB0PWB5W2Ve{0TnurzN?z0YTDX-pwr+^{*o%>9Gq< z{rjg)>FzAU>ip~S-oxZz06v%=Pv{syaT$a_KK3k#l>q1%qQ?}1#4=%&{On|403nzj z;2~6T8L0rib$d$LDYqnMm6wP01_w|w&q2Y^z|nwr7W%f(fZ?^*5ex8s%L5AyfVcc# zuWYZIAAeeUzkj-wh&|s1@Pj!(2&8|V3<8qv1pprT*Xe((i{C#x05E0R4*bLQC?Fs= zBK`Tw_HqLr{ng6#eT1G(o0s(9ARw4OA=mMvOm1)A!+i6o}|gEZ}>#mjc``;C_(qHhj1bClQcMHvv4| z70Bja;o1>@fcrD`aX;yCA5PT*v(z6*?I7^vzrsxe@7~SD{;+g!`{OUaP zKf(QQvA5yCed#`Z*yEE2UTDlux`>4N9quN_cUuc`V~6gao`QF&5OYH{@ax8O{rSrF zio*JSx}C0`89?67$qZooD**V=g3)}S+PnjnHlY7`Ht;>$OBwq+z#sX7+qYjba=&}w zpD5X03;5Jh!35zb_B1%HPTJOR)Q!&E3hf z2i)J{zW&@g@Bh9$1Nwg_&o9C5@2+ttPdMObd2Ze1e_x(;^S_hlmtglF>AaJt(DG+_ zZavh0U!Hd_|4yD?g59slzmvzw`Dc0PZ(* z?pzP$GfK<;oig8muzE-7^%_kPjD9WFx1KjYpdbnfHcuQRyAWeoji+`ClBecbyi z^LMzaVgHPKmqfUadw(_i4%aRGpK^&ueX#qBiFaVHqrQXL z-neRi`qzK6w0Ix+{_5Nva&hzz$bZHaKOp~;#ks$bb%#6ybbo)CMt{J(^)G)pyza03 z+@XDo{Vm$>t;_wTk~=tz_}{_(-lp7NTew4GO!ytz?=8vwT>KrHY~t_Ges4eSC$I0& zERueQ_Is;wKizwW7L@!uwBOr``{~g;wEUFcq5a-M+)pRop>?MI4(<1L;eP(@4s9vz mcWA%22KVz-cW9s)zsz3AJcoq3`4BtsA1E;6v734G+y4XhqXG*6 literal 0 HcmV?d00001