From b405b826398715d5d2c3bd82a2d1ba9789f667cb Mon Sep 17 00:00:00 2001 From: dianjixz <18637716021@163.com> Date: Mon, 10 Mar 2025 10:54:30 +0800 Subject: [PATCH] [update] README camera --- .vscode/launch.json | 26 + README_zh.md | 159 +- doc/assets/StackFlow_unit.dot | 36 + doc/assets/network.png | Bin 0 -> 118173 bytes doc/projects_llm_framework_doc/llm_sys_en.md | 69 + doc/projects_llm_framework_doc/llm_sys_zh.md | 69 + ext_components/ax_msp/Kconfig | 24 +- ext_components/ax_msp/SConstruct | 13 +- projects/llm_framework/config_defaults.mk | 1 + projects/llm_framework/main_camera/SConstruct | 10 + .../main_camera/src/axera_camera.c | 1373 +++++++++++++++++ .../main_camera/src/axera_camera.h | 35 + .../llm_framework/main_camera/src/camera.h | 4 +- .../llm_framework/main_camera/src/main.cpp | 21 +- .../src/{camera.c => v4l2_camera.c} | 0 15 files changed, 1748 insertions(+), 92 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 doc/assets/StackFlow_unit.dot create mode 100644 doc/assets/network.png create mode 100644 projects/llm_framework/main_camera/src/axera_camera.c create mode 100644 projects/llm_framework/main_camera/src/axera_camera.h rename projects/llm_framework/main_camera/src/{camera.c => v4l2_camera.c} (100%) diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..e1b8c1b --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,26 @@ +{ + // 使用 IntelliSense 了解相关属性。 + // 悬停以查看现有属性的描述。 + // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + "name": "gdb 启动", + "type": "cppdbg", + "request": "launch", + "program": "/home/nihao/w2T/axera/StackFlow/projects/test_kit_demo3/dist/test_kit_demo3", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "miDebuggerPath": "/opt/gcc-arm-10.3-2021.07-x86_64-aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu-gdb", + "miDebuggerServerAddress": "localhost:1234", + "environment": [], + "externalConsole": true, + "MIMode": "gdb", + "setupCommands":[{ + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + }] + + ] +} \ No newline at end of file diff --git a/README_zh.md b/README_zh.md index c7cd7ef..2b62fa2 100644 --- a/README_zh.md +++ b/README_zh.md @@ -1,100 +1,93 @@ -# Module-LLM +# StackFlow -
++ StackFlow 是一个简单、疾速、优雅的面向嵌入式开发者一站式 AI 服务基础设施项目,目的是让 Maker 和 Haker 们能够快速的在当前的嵌入式设备中获取到强大的 AI 加速能力。StackFlow 能够为各类人机交互设备注入智慧的灵魂。 +
+ + +## Table of Contents -## 产品特性 - -- 离线推理,3.2T@INT8精度算力 - -- 集成KWS(唤醒词),ASR(语音识别),LLM(大语言模型),TTS(文本生成语音) - -- 多模型并行 - -- 板载32GB eMMC存储和4GB LPDDR4内存 - -- 板载麦克风及扬声器 - -- 串口通信 - -- SD卡固件升级 - -- 支持ADB调试 - -- RGB提示灯 - -- 内置ubuntu系统 - -- 支持OTG功能 - -- 支持Arduino/UIFlow - - +* [特性](#特性) +* [Demo](#demo) +* [环境要求](#环境要求) +* [安装](#安装) +* [升级](#升级) +* [运行](#运行) +* [配置](#配置) +* [API接口](#api-接口) +* [贡献](#贡献) -## 应用 +## 特性 + +* 分布式通信架构。每个单元都能够单独工作或者和其他单元配合工作。 +* 多模型支持。包括但不限于语音识别、语音合成、图像识别、自然语言处理、LLM 大模型助手推理等。 +* 数据内部流转。可根据需求配置不同单元协同工作,避免复杂的数据处理流程。 +* 简单易用。通过标准 json 交换数据,快速实现 AI 服务。 +* 离线化运行。无需联网即可实现本地 AI 服务。 +* 多平台支持。包括但不限于 Module LLM、LLM630 Compute Kit 等。 +* 灵活配置。所有单元均可完全配置运行参数,在相同的数据流处理情况下,随意更换模型和修改模型运行参数。 +* 简单易用。开发者只需关注模型和硬件平台,无需关注底层通信和数据处理细节,即可快速实现 AI 服务。 +* 高效稳定。通过 ZMQ 信道传输,数据传输效率高,延迟低,稳定性强。 +* 开源免费。StackFlow 采用 MIT 许可证,开发者可以自由使用和修改。 +* 多语言支持。单元主体由 C++ 实现,性能极致优化,可扩展至多变成语言支持。(需要支持 ZMQ 编程) -- 离线语音助手 -- 文本语音转换 -- 智能家居控制 -- 互动机器人 +StackFlow 还在不断优化和迭代,在框架更加完善的同时,会持续增加更多功能,敬请期待。 -## 规格参数 - -| 规格 | 参数 | -| ------------ | --------------------------------------------------------------------------- | -| 处理器SoC | AX630C@Dual Cortex A53 1.2 GHz
-
-> 以`CoreS3`为例子,第一列(左绿色框)是串口通讯的TX引脚,用户根据需要四选一,(从上到下分别代表引脚G18 G7 G14 G10),默认是IO18引脚,如需要切换其他引脚,切断焊盘连接线(红线处)(建议使用刀片切割),然后连接下面三个引脚之间的一个即可;第二列(右绿色框)是RX引脚切换,如上所述,也是四选一操作。
+StackFlow 语音助手的主要工作模式:
+开机后,KWS、ASR、LLM、TTS、AUDIO 被配置成协同工作状态。当 KWS 从 AUDIO 单元获取的音频中检测出关键词后,发出唤醒信号。此时,ASR 开始工作,识别 AUDIO 的音频数据,并将结果发布到自己的输出信道中。LLM 接收到 ASR 转换后的文本数据后,开始进行推理,并将结果发布到自己的输出信道中。TTS 接收到 LLM 的结果后,开始进行语音合成,合成完成后根据配置来播放合成好的音频数据。
-## 视频
-- Module LLM 产品介绍以及例子展示 [Module_LLM_Video.mp4](https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/docs/products/module/Module%20LLM/Module_LLM_Video.mp4)
+## Demo
+- [StackFlow 连续语音识别]()
+- [StackFlow LLM 大模型唤醒对话]()
+- [StackFlow TTS 语音合成播放]()
+- [StackFlow yolo 视觉检测]()
+- [StackFlow VLM 图片描述]()
-## AI Benchmark 对比
+## 环境要求 ##
+当前 StackFlow 的 AI 单元是建立在 AXERA 加速平台之上的,主要的芯片平台为 ax630c、ax650n。系统要求为 ubuntu。
-
+## 安装 ##
+StackFlow 的程序和模型数据是分开的,程序安装完成后,需要单独下载模型数据,并配置到程序中。安装是先安装程序包,然后再安装模型包。
+裸机环境安装见[StackFlow 安装教程]() 。
+
+## 升级
+升级时可单独升级 AI 单元,或者升级整个 StackFlow 框架。
+升级单个单元时可通过 SD 卡升级或者手动 `dpkg` 命令进行安装。
+## 运行 ##
+相关 AI 服务会在开机时自动运行,也可以通过手动命令启动。
+sys 单元运行状态查询:
+```bash
+systemctl status llm-sys
+```
+相关命令可参考 systemd 服务命令。
+
+## 配置 ##
+StackFlow 的配置分为两类,一类是单元工作参数配置,一类是模型工作参数配置。
+两类配置文件均采用 json 格式,配置文件位于多个目录下,目录如下:
+```
+/opt/m5stack/data/models/
+/opt/m5stack/share/
+```
+## API 接口 ##
+StackFlow 可通过 UART 和 TCP 端口进行访问。
+## 贡献
+
+* 喜欢本项目请先打一颗星;
+* 提 bug 请到 [issue 页面](https://github.com/m5stack/StackFlow/issues);
+* 要贡献代码,欢迎 fork 之后再提 pull request;
+
+## Star 历史
+
+[](https://star-history.com/#m5stack/StackFlow&Date)
diff --git a/doc/assets/StackFlow_unit.dot b/doc/assets/StackFlow_unit.dot
new file mode 100644
index 0000000..4ade435
--- /dev/null
+++ b/doc/assets/StackFlow_unit.dot
@@ -0,0 +1,36 @@
+digraph G {
+ SYS -> KWS [color="purple"];
+ SYS -> ASR [color="purple"];
+ SYS -> LLM [color="purple"];
+ SYS -> TTS [color="purple"];
+ SYS -> AUDIO [color="purple"];
+ SYS -> CAMERA [color="purple"];
+ SYS -> VAD [color="purple"];
+ SYS -> VLM [color="purple"];
+ SYS -> YOLO [color="purple"];
+ SYS -> DEPTH [color="purple"];
+ KWS -> SYS [color="green"];
+ ASR -> SYS [color="green"];
+ LLM -> SYS [color="green"];
+ TTS -> SYS [color="green"];
+ AUDIO -> SYS [color="green"];
+ CAMERA -> SYS [color="green"];
+ VAD -> SYS [color="green"];
+ VLM -> SYS [color="green"];
+ YOLO -> SYS [color="green"];
+ DEPTH -> SYS [color="green"];
+ AUDIO -> KWS [color="blue"];
+ AUDIO -> ASR [color="blue"];
+ AUDIO -> VAD [color="blue"];
+ CAMERA -> YOLO [color="blue"];
+ CAMERA -> DEPTH [color="blue"];
+ CAMERA -> VLM [color="blue"];
+ ASR -> VLM [color="blue"];
+ VLM -> TTS [color="blue"];
+ KWS -> ASR [color="blue"];
+ KWS -> LLM [color="blue"];
+ KWS -> AUDIO [color="blue"];
+ ASR -> LLM [color="blue"];
+ LLM -> TTS [color="blue"];
+ TTS -> AUDIO [color="blue"];
+}
\ No newline at end of file
diff --git a/doc/assets/network.png b/doc/assets/network.png
new file mode 100644
index 0000000000000000000000000000000000000000..248b9b68abb8d94da6cd40b8d9299707cd9a8629
GIT binary patch
literal 118173
zcmeAS@N?(olHy`uVBq!ia0y~yU|zw%z$DGV#=yYvEMv1f0|NtFlDE4H!+#K5uy^@n
z1_lKNPZ!6KiaBrYmRE$N{`&v%`<9eTzn3_#P+TZ&wXj*CqoGTwiS_rY*IKWxZ(9Ak
zxLkMlu63oNvD{r9yaECNO-e2I6gdSvoT}c>oatlv{QL2fJe)IGm>L7-UEf)BHs#bz
zV_~6Z#@|2R>GztJD(NV|0!1$(c3+XLWoc62fFcG3rd4oGfu{gtC|vChl?>}&3?Q8g
zZAHb!gJWWRLPJH>CUed{>*njr%dl_Xz6=v78(Z6tU%wtrFi0?vu=>%#3bLpGV$6;=
zPo6*DT>U+-PsZ}l#l`NHMNc>)BO|9wnUb(I>h>1>xqj{*9vp^-hDVMb6_l3tULUtt
z!X!iB;lqdGFC@VZe9+}p@==t{1y~$+{3rvpUJj)m&zojA^@K!s>Y1fN#})-IUlzm}ys>9v#Gx29<@sh- zm+r>5+6A;$FW}<&dgX{nfOM#jYlPiY$D>nNp9DV(cA4ldcXXH1r>m7Afmc)H=T#&f zaF9r35%%FwY!Pf@WIo7Zy}p>mpWjCB(dxw;LQY;u@xJoJBSdy{aGlE{EAK-gDuMB; zhhNtJ3|;U!=%L(#L)tNCdsH1GwtUt5UaMBy{d?2B4f6^Po&Vn%^KjqKXVTBk%{_f` zvU+DvkIMWSyDhaRtY4L{2nk;_?dpxtb?rY^sq)^B5ARzUFmra!#o30xLW7=%d(O>Q zefGfX)nP3|=~XNE*B+9&R4~_Hb!(hx$ZPGDW$Tw*S}W7N>gV~W{(F)!()ofe0)9JA zzvhv+&~-4fNrB_gPEh&X;@zIZ9K6yccV5rNfI|@)f#C|tdXo*r=5fuR_G(%Ewl9rZ zUk+y3IEPlWtoX*}0sQ&XB}O%|H^vTT*V$CTwaH2pURhbttn&;PePb}3`+1g`fQ zrvL6 KwH%QLA{PD{Y^@siKi*K!ebUnU4cm488 zS83BM5w_;W_xu0vJNZ;hXHAOg`_Fd!KT2DbL}W&Vem&TpwTf}W%qfa5zlv@uPH9*g zbnML@pP+T+HSv1dvU8-bR7*__kPhoq-8JXe2QMGNrxMND25g}L(gA*J{aHijJq>xS zy`n^Wc}(oJH#4rRi0u lfkXX!pvsaA11)!nBl_`;wYfUcXM6K`CT Z(_DBZM9ETno|Y*n#CXCV3a&YJc)=lMm)7Nuy=rHiDl6nt7gmb=d^%~ZrKjG` zClj2@4u>6Hso4MThp?~7+?RKf7 {b@xvZL`D;4f599fNw)GZD=@)gZEEb~a<_YHTo znI0Z10v9`7%_^REtcf#CuzSW)9kZMp2bOqF1~o)GJ3GbSx$b1jxwWNpWAgD$g^%5i z^-5oV^!D4v{_hq2`agxL534B)JF-+hnfv+iX|tumCAFMA z-gazu*VGHy=H|7h6S!9%zP41z`+3oshf`-9I%O!SWxy5|^f=mYZ9ePNc}qifOb=Y7 zyJ$+#s} i!WH~ja@{fQ7|EztlFN>12f5aIh|avl6O$X6VmbXz!ST5sN^>1I zYsb!>^WJUy=~a eqBIf{lWdy+Zy7e zY??xSzs>ZwtCq@*zUgK8wBge)#w)@7T%vPdo-t@MY+$rGY`j)(wfek0XHMH3Qubv! zye0GUiF4=D?(eJheOAe}{6>x$8?Tg0M1;iaYiqMVmWk<{bC~X}cRJ!&dX1Z0 *6Bsv0rur=HtGs>6pvt{s?fMA@Q!QroXdc{lQlNUO(Je>W!2Ye-me0;Tz2Z78 zfk$__*@~W94MtiuUMoK6ERBiwdi=J;kwx&*hE~%Y#TEfSi-j#hP8@=R>r#&z5eQ`XO@m>N(d;SORwjvYxk&T3h3~>O)t+W64#=w4E&9Ck7;6 zxmMI9oHEIiP4Zl@J3}dt{?*0Hy$@g8n)upDe37&na~ofc>$$l)num)|2fsaa;ZDfY z(; +d_U`Fz}tb^E5TZk9<&yXLbgYtsw4+jFh9TdAnLk~Wi+6kaCwe!b)2 z>ovYonSWaM#~e}4w{}n7^oxr#c;y{|gsBUE^(p>dCiJxCvBBz#t3PmrJ(OH^NY~}q zrL8i-E|$wa7-c!1TFIre?AZDquJb`$S6M{@T{u;rOunD;g+;^rV~cPfBlE%*tLNSA zg3n~Oz2C7<`B^u2lLCitM}ro}AJ}g&@6GTK*%%2;_!Kich(m>Ws2t9UmZ{= zz5OFwzJOcA>hHC$*KUv4QJ|Q8eO>CMC7#d!?264?wc^pUJ+p5vxYwZN)4C?>cl|+5 zl?}7+ia&T^HGyZ@rr^(K&o1=}&vaj4DmHi5xv276GG7!#e=TUUe8FaVE5rEM3ZpD5 z(V%RNrCJ+i1ie@C3OOng &@|0oUL{~Ah90nI5Pyeb*&2nFIZtS`|SFdE}qqYY(&l;t+Pc?YO zvGkY{=TtY&Z&v!E*Rp2ra!P%%uD;x~jYan$vkA-Bs{$8-n@=4*aYLr)#u2q`raA2v zExghTTZ9~0%HE_*_EnwAB5)wX&A2O&C*6Wm#iIT5ytSM@3Chxp5{D)19xzv3e7)v< z{qMKiH`o2Gs{8%c{MVP4mzN#i7bI&_F`+Q{nBcel2A9@(7uR`Q7JL8Mj{joK%Q>rC zIWO+%rq6^s||mcJXar)l+k#*r&S940|BD@J#Y|p5TX)tK4K04~oP(wJw}+YeJCM z-6;>EoH$!Wf-Y=$I{E&RRcqbf&+)oYku8&?+$qAlfW=YZmLE%q v=KD-d~sXXV;34Z&!u9zQa6g+G`b+O(&F|Zh5QWZkWV! zfZsm-M~~_@PlZxbkuP3>li#lByQOh6eYw)vzLe}2Go;tLtqxDr3X7|b40_hv)_)~Q zVu@l+i`aRC>!Ob)&q)!U{iFB(jU#GCCl2tM|GL<((6nN4U$V^N8A&xC5=|CMUf;l* zaG)}LUi?E*yXVDr515Y`Z9DtjT&fo|46|j6iCNwqkN5ZXo_}4TSKiJin{=p!^UKT2 z?WWn+Hk?hCE}rSlsd~=xYP$0LnvE^zBR5=MT*6%5axG~o)9W2)A{MYjtqfF7GMArf zyr-%~tN5`k@2Q$fZx_+fhpkgsH5Quo+dR)yY<)7xTd~!*?P&EQPm#bDK{t`W79lT_ zi!DO8o)r1tDzA+NjU&$BSkY9lb8^n94KeP?b61r-tqDE0(lS<#P4u6w$&ZqtRSW8D zul)Fa;eqT@x2H;nQzp7 {lTD`VuYL_5C-&|T eURZ zQZ4sBnZ%!;p7ux>E|Ts4@M&Y}X)$o)o9|~&;q~4{uTA(5xo52`UHwQ=E=kk-e3t!0 zmrZk?@}zxWwR^O>eW};6h$SW!Mq-+xH)rLne3`1c{2E`_>jT;`FLmB!20Xs|q5SH{ zz3Z}Vm&UcGOmMXOd5$aR@nxB!SvnUNyT8wQQ&zQjd%>ZXPU3<|td2XPKxO1~?wjjE zUTO7dobCyc+iK3aC` WUQ!Oit+*#5us;`sV NCO zC68h=$xf9^k}lHo<8lvQ>v0uoz5PZcZ*$;|yKcVQTHMwjD(Jnm!DH#9l{SjOJI=P9 z)p&e8*7r$-tYD|t)R5;-tsYzrJZ`paV i7P)%Y|1zF5@x{f-o@$;dfqs^T zM+#yOo6Y+;{Y=%G^q}bI*D~*Z|NH%ZbHc$U(BSH;#r<}VJ});jSa@95XP#MS*WWBJ z{#zF-S9Zv(Uiw)?_O`m-bGz@=21z+vXRUH CxsQ>-a)OF$?Z^q1hlLjhg zBG>F L zTlf8|mnl_Q74P&pX(xSj_gfK_+Zxt6?n~PaRPa7LytSfj c1^mi{b%FbH`-c`n8qC58grU~Ex?I0JMwhZHDzVvDGPnl zt%PTKFma0ioSI=jN#)}qZv79RPU{=z-?O<_^;(ySiOK5M2E7>~K^*Hi(jG46{`qS4 z`ijzf(@W0J^E>O=dEsExu5(uwUUK?YrTugN?I{y^u0Q?!{`tFy4T QZ>f#{U z(wC+)NyGY1$zAW`LCSe`T7RlnaK2g`$dt)%+W1jw%RJqBue`&@0{hH37u~-3F2>tn zPJxhAZnI>~vA#9oR*_Acn#+nNt$Fe f}zjZ!n7DUtM}_x_JY`5R~RYCa@N zU7m4NXWipn+IjEZy}G)(^2a}S&fw#p{`{_g&?cSt;)U}rg@4<==KnE$xBf-_rO!^^ z#VfL21g}UnWsT02`F+ai+xf69^R#x|U9tH0*}M>$t&?Y`C_gXfex3Jo!qW5h{Y$o) z-(1ef>?*?O^|h8+`bUfZjRS1YZ9aG?%{=Mz@67!5zwW>G?oDAWt~@O8NT%~v&dQSk zk6!t3X1`szJtePBD>cgP%gV$fy}Oq!4zgN0J-~^P)wfN=+G_dp$@f)`%(I)a z(z#FmrX7t@dn~(Bt!U4*6&tOXey`BHm8bq%UAuC2jz`$c4}wuvzSjgT!@A2;PV;v3 z70;Q Gn-q3{W@2MFCh@K^ezRO_ar@gT%QaqiSUu}v`x-b+g!9$vGs#z~=2X55uzL9> zXUp4U`L9 C(yTeXeNCEa^$lkRMxPX=>&3Rl zGdnqjPe&XRnzmu`+!o<;Icdh-kv&NwQYPXbr|$UiCT-^5{Hv2c1= sA0jCp1>>*9`!PAB7c zEQwq-h0U*5d&4<}*~*sf0^7rCZTDKvlQjPM#Cr9*-t8rqX0H*gHeC~`%i+`x8kxD} z?7Pk7q@DFr-qSr(mTR5v$*>J&IkuYf)!LQ|2kxB;i2WM* ^F67yYCyJ ~fEUC{6ybX5PHwJ97?t zO-luham7_W73Gt$IB=v>xbn@$<1>s>xuV`K{rf9oZP>MSv8Qk6@AnM~68ii5`}3X8 z=Our8b8|(=Dd9hJ&hMPPd-mG$R~)PFzC8E#&bgXr$rd+TljEZ;{;g&8-s-d5)9TUt z()8O0Olx%O&sw+dS5QCcbxlh Kc*MD)bn!gf zDm8;f=^c$PeZ;-5#VD@XS~Pi8wr^k2KC|dWX5mHa3fC5fPuumW^P-84?y_U%Zjni6 zl$ZRxzgx&_R%onjwAsybsij|D%)J_R{8N&x)Hc5oq5tljO$FOPmBqGAlBr(&x1_J_ z-4eX(e%s2Bl|5|Vt_c_gIDcT!b*we{QC7IO=k&`p5jW4~m2Eg2DQkO>lcDNDvtsYI zMxH&3+8gHSM>b8`YqsfH#K~VLyH-XVTRu5z t5jQQWERZ)Bpg6qA>JU8B8J zNGSToq3bng%WK>@Re6#GjAx$Yz2gx7i|K>){?CT;pPB6w4jxKTE4JQl+$>q~pwKYB zkMHV|EGw_m9pN@nF`q-HrPlp?D*o^5`ud4ernnUJC$Rn7-*{(Af$;b5JN_%lSDsFZ zOglf%w&v&4={m8yrc9b7q~<&8$Yg)JlS@1&$J|SodF-LK^W-KaKCO_9i%Cbl?0;=+ zU_G<#Uf0v<3PEC5gR2hs1;q0fmhZgymCZbacjn$tGv?muH7lC5M&$j*$In(PB`uk@ zg3~Mf!R6;GZ*Tmpz5kP1{-(at7Z(x_xAmNHV6$5NS6Nci>R?=B3a8J}UafUEg+gZv znMMkQN(z}R{uCDQeC?s_-BSD4W!3D?kZKLzdOGikkWl3lQ_i*O7LHYipRIVX`>|j7 zE_3d6wl6j96a-lwmMAUYIy6(FTczv!4b6K?OLBB=6WljxWp`V(y=>#VmgI3^!NvJ^ zrFUDsx^dhtz4S|Y-SSyke?BbcubngXVj_=n%LMK}JnMO;9-s1ak>u&MS5mxxd=I!> zxvEd^^4&SHrM^o~?b-kMe#8nZML~(>3xDh8mCU_Zv{b~8_kQe|B%_lm^D5GeXYV|- zRNaoixF2i$j8J#xtyUPLAF=HK9rWRCa-;=Dl3?pP9 u=Vz>-ZaT~w%NwC zvr=`xUaEik^y$UL#q6J-pHKhy=jV|lN48Y`FS+#6H-9?gRzuS)6_u)s-GAR4mo4uq zzwPn+%Au2A!)%(aewndY`JG<*oxlEntJj{LdgA9%FTY8fcqT Gn<<6%$GjTqt+em@BSUdEqmCoWQS4gOR4zV z0gY>ImX-9k2On QZxV3-(Z)dPU8-{choM>ANp{->W&d zRbP&733uFK1sd1yz3F45TK!h!eXhj1-S_=!TYHYlHvP)rkXxaevLHzHE0_K6hh9fT zHn-~Lq!~xwI8^s7`LJ90uE`!sizR)PI=?J9&RSCzE|;zmo4EAZl9uu*vtD#Y?YjHI zEg(MCZ@G@+!)?KHgH5YMW0$>tQMQ=x@PcXW6Xc#Kct@Txnl{l>&GzNVwRcX*JTu9( z*xYWblO!1bNma_^&aqsZ1I#gpO~wEGjPIHgdfD}>OW#GKKToHvUbcWIHU6a6zGvBW z55-ebR8&G%cubpo@$FSm+=Q) &|mt1fc$N|kNoKCtu5#gb*+ zZr kmmY*-rJtG(=yYQ-D z(q)h0vZZCF&rRo5{JQvlRdj!}z&a(R1zh3gvptvD9QFH{XZ y5%c<~*JJeodd+ nJ1CENIMxfJhJQIC{$TZ+DTb8oE_a;!D|vd4Gjv~62_{6#}`k|nz%eT+`J z2%ptSGn{?Xx6Ljr@aXcIQ%YhJ-K3f&j{LoIKKD-9QC;rKVn=u9s@SI e>dCC zstDhR&g8oGl+FClu6b2*mQOy||2wW; ueO=R($g&{oCt<9%t&0I5ojZAdb!Z#CS z&l{M|U2gI|Maz4_@6}Vc`0I+~gjy{s+wJMze>3k#N!efHsS`YuI{kl6d8*^y+%|jX zOjex)k;Svl96znpy}hFQ|3`a guv+?ueD^Y57uUwx zz5d}3+cQ4>o5|O(f4{xfRId2=_&s~~a&mJge?E2gi_M+M>}9qNIXOBTH*PF>b!Fwr z 8+n_FvM`kX37*N}D>me_>hs`TL2!xut6!JKLr3 zW_Kucu~$x5$n&(kF5PtX&C_u<9};XH&pcPM%xJ2{qFaBeIKuUUSNfE;&0QtDeAT+C z?r!NniW%E%f32V9wS5HcI{3y_)mIQb+kKzf2^##f(lq(QvmsW_Zctu|d11a<5bt zgX#{eLs^d>yz2kYT7R!eVGFllK&$rbvl_vh*8gSBWEK5$YJE<|jZ2=#nfZl0Q+Sdk z&StO~OW6M6{&Hqr%_iO=^GM5&bEnQx(Uvk7HN5`%MP2ddr>1MR8Xe!ib;7rut+R4E zJ6v=N%XbP}y1o8%)@shI_U#?6DH9x-IM3wY@RR4;HGS`&_Wv8EENu}u^!LvBWE(ZR zmCw(FUiLBiDO{hVo4qmFz4cYk;h5{2=XsjsTWtARsQh%Lkny$3?Gd$w6DCNUjxgIi zQ$6UveEyOB4}Sg7RGSiTWyQ_&|I(bZrH!YbUNb+qJEd9k^q$x<8{5h36%GDBmUxPW zw)4r?%s88K@9|zUeanz}NzXsDe@*$Da@5+(cRu@_mt~WqCvP>7p8PgolYgd4S _N2ZEy}U3gL)v?*&soo {OYg!IWve z;_SpZ-nlcpQV+FdzO37PE;aqquA0s%{Zp5@Z{oR|cSW!~{c~j{U)UO*bW8b oT z7@0rMIL;&{;2tyiwwK46MBe<*X3{qfFtB~F=r5MuzVPtTD!K5PYN3}mMz#Gv{52++ zvs2S2ky$z>j8FRV!eqVTpFQVi#ir{_`B4|bs~q=v!R_Akyd7Wk{~a~9VV=~*dR*@D z;<)@Bd+x6PbE@LlV#mW4$3AlJ-?A${c%@L#)hN-))2p`Lia9+sYt>6felJZ|C#P;P zX12Jep>j_gg*=~F?>o#s-|VgUl>2k9_`kCJwpDbl_>ptP%Kzlb@6<%uyB&{tx5hMV zRiF0`_7xpc)mcBK7O$J8|D&nAqTS?@#BmF`=Y`7*d#he~s?7{tlf X&?20BT%?}yR>ay zY4)|XR~F7lvU{Zb?{vN9k_nkU$&B1HPF+b$yxcYQ{LeY{pZxs_nlgPJbIwc9N!C9S zykAE&XY0nV|9v7}r?maE=ilX%Z@VEpz|sC!phsf&XZ@=yI29U7F2#l|EB|}f=bDtZ z`QLYsi}s#B7UYqrz`QZZHTil`@Uyu(um5d4eS6>O-8Kh>&++Yk9eI9h% qzV^{A)i__PSMz%Fe@=_u!5UySBQM>WS>k|SnbF*rCCiLgN4RP%%)Pa~d8f~_ z6XIW&)Gn$ixcoOww)X!5`_)<@zS~^#CT(&F{wQZ1#V?w8cuL=aK;f-_-pxKz|ARj} z(pzVv%|YQa>H9t(-pOMWaa1d8^DN&SC#NI^<{k51&pcNm BGrT>LLsUa!tsld^uU z^Z&K#>L SZ6c3v*k3)T@Z5~Ub>EDqER5K&rDFE`AAPfT zti1X3TGY( e~$Qn zSrk6|+wB?2FMcole=T`!v)uL 4%NJi9bv zS<1)46V)|G+$$cRmH)xq|G{Ij>eN%3>9(&U4@+I!*k^R=g_HO)!`_!Z={m`UkI!5! zaLjNDn-*3S60O~LL(_k2@Ki;`+m5eSDjE3sIxM~*bz$? Ab&mSmVD8A(x*2;zzRY;*c7CU> zxsle*^yd$Drxlss;&`)Gv93`%Hhss=Iq_Ks4|#=c>Tu0TVBY)UXtT|Uy?46B DHnkLLo@c$g)Yre9|N95d`6jz# z+WS0xl6bRY?!CWI|Jw3PovnHPSIfr*SM5Kl-+Ovj?Q;yfcu!jT54Gvr< 37DtAK#B0?7C`ca%1D$bo-}Mm@l;I zox5Pwz^F1oL8_e-yryY~$<=U;)5;<_8z=r=9i)1deI R5aO_FnGef_$(e&kp**S;Tuby?IGVjZb$8FaRe?7mcWdGd1{|zT^ zKiQTzp^dTrlCa&Suj+zJr+kuo|B+EXz)RD3=E=o2r!w4j@7b$7 dC!a4dt`X>n%W#-)=8FJEa7T&(zoqb)x)EK zeL|ion}2(mfvUOK{0kF5 H%t__^0zuw)>tF?2+5cDO^1B^!Yz$zSo==SvKdpovQYn9|sRT 6K2Z-D=|<%S=jy!!*4guzU|@$_}vSZQN`6 zV$ZpM_hTRbTw5)*O 5zPV)#ceOZqfNw@dwhiIl_4a16sXX)`VOwGK)C*`>fl| zL~AWm2{z4Q4`sJ(&YsJ2HWn|}UOMHI_Wn&>p?^;FhXlHY@3Okj(b+dyeA?ow$-g>V zchz*R;Iw-5u1LAY<@EZ>%2jh~*Uvur_iCG>qw|0Jmz^FZwZCmXRWzGN98t3Q@WAff zV?{ZoSsBx}PoEfh%;?{tc#D&s&y45We@@?ZVQK8V_fwacg(sbM5?=Z{m!~4e|NZYf z(Qmr$ObQ8_c{Zm@GtIDD^0-Bt(G-(Q8 -q^|>Rx`+sk-GTA!G z>rv -%htfW8hYVjJ2tn|ORr7T~s8T?CL zZ?<;k9VzRwchBqg<=jX!-W~f*+q>YCx;Fd0mCIl4n5$?0;>GtB`%dm!k^3-X)0Ev8 z-7>qT{xx5hbo9{llbpWKt$v5ZUD RYqqIA zu&qauTXoN&t1f-PPMJSEa%bC}%z0zb9(mF$Z1b$SZ;tSqA2XWv(kET&@(Z8mWp!qU zUcS;!?bF#d;ajBbx2n{C(RX6stqr^Xic96&-Z=kbT-=VeraU!H{zo#dA2jLKx%b3Z zY$J#LpNa|Wl}+j&j&48t_k99;|7Q#98wYEieP+_XFm>JYzcK4w)ay2E_^Y3`XYrMu zs>{s>ewe8RCm42DcC+=F^isl9YsF-<@aX_bWJ*+EBXm&4ju0pI;TUia33P z-zIST<@7isBksr(xA&ZFuQ_3R=dzvkvnwmw{{COL{87i;bHOD%5f$$oMW^^3vXowv zlD}nx)dTi0+b?W4_wpHAm2>G=*`439;99%3x5u00`I|3ZdYQe>Fa1~Ke;<~Gx_ %KsC>Wf4HDvSjy}nM_RxeMSXc0UX&<0u(m2S~2 zQQ{Z7hxH+s64R=J!pK!AMfIU#UFUD79F9^KmRPS?1)hg(s+u1?Rb LY%>& dgJS+38pn+NU-1oD0Gn8M>vs(85 z$=aR;83%=?8T41`#;u=bdL!gon&OY#d(S-Ql}KilzSz-h{X^pV-TGL~o9WM||15Rs zy>9f%eqL@BbG6#~k5cD9>HL2bualDa`>llPinMi`iaz8TUsYG#b+%~n|M_=r@3H#= zN`qY6ZvA+9MD3pZC-b1Te||Bi48)f0J#yy8N0zU)pWEfqrMPr #9r<@UL}RD`Xq zDvLOjH?8n N={ESNbkRD)a2M`MEiF=U8o# zGx&IU+ViGole}#{UJ1JW%4+r15cAbuHV2q%PA%7C*3#ge{B866eP415_b=DJla_q= zZfVK>o4twk`Fmg84txJeul`BD&DqO)POW~sD?gx4-nec{(F0xMV@#d%w(q|DUhw 60haWH+-u |~ydIWGXU*Nj f62z4Ns@cw*k&|ERY$R@qu6fQCg-xS`vIq)tlz^S{myEqheuDU&Pf$z z#jU&c=WLpN)?4mWK-s3vM}KErG@7>Y&msL>t8a67!|G};c-(KlBe`S4*JFOUUk&9y zEAW3Z@&9b3zy0+-S(VvF-@hM-{u+^$Qg!#C+kN{T|Nh#D&t9r)lUy}#ZQTCL_3tgx z{(f~$DrOh5i^*)dp1J8=&t>ZvUe<3%CKvW3TV3ASD9xd~CblnJASyUsF?iE`zn6B> zs=udx$XXk^YE7HtsR<7*9F%JMm3iAn>S$Z ;Nr}QB7MV >yp|uNBISd zzSrh`*>m@A&ws|*U8pWIZ~ D`LhJ3H_5ZnQEPVdUWPOEd_1m1fLmgY)(tc>mmF)V)Ghb&%fUoKI zV*C3ac>O<{{C^<-+*T&{^ZcHWxf6EOO)c-<{`3Evx#bnXPk*<+-{M<-Q#z}$DQC*k z6LP8glC10s8s32-t_}e#2j@3vXlO0!&=FjrFeUJtPIcYQ*-nj2sU@lNpZxqQsIjO= z#kQ5{`MIN|nX_!3*G`^XeD8VfvF8@YD`#)Nc| {q2swCp@nD|B+vD_my7p%+s&;oNKQ+5pir)*6;ZmY7bwO zEbm)&PWsgMPm6uZ?XS*q&`s5x|JkzohV$Yb(_j9$oc=;w E*XPt=~I5e>>&)>F}eo zYp&L4{Fu~#JM-WJorO2fl_hniem>jIDg5)Kzv-&L?x-tE)bu|zO$%J`amOOd6;hIi zXT9o~GOu&n#0{ EpOWR5dF{X~C7BsdN__qn zy;yPMdjF)kax#XZ>@ssRQ{P`t`&0CC#kZCJW9Kf+j(MED@0sobh=~W*EQ*ur)M6w(JQvJ{rY>_oU?9bL9=hY ze82O=(J#w<<0>BZmRGIHS7@BF%p`QB7pqpl^jNf8Kj^qD0%;ZN`d^p$w|lD|ZLX zIahM;i7%T$gJDnL)o=SZs&KNa-@n(h%H+X4(?{==I4-(;mYiSMqFl1IWcl$~3nQjK zd-|t}b$8^6&~vkuc;}qU>YK!G=l*^gS4>Zm$)btVxYm61@UVUU;FMnLY3nyJH k@bKj&G&+b&6rknH7>N=;|jOi7fyRIy? z`&!v3ZgP~V_c-fW$EyYMyIJ*)-Llwy<=9P8u0 =%!#*JRH$xz97s zm2BJ4+9a}sS=MB^33tNwLmMT ;y(W;A8t|IAa1 z3uiBRTxM3Aq4ac1^C|h?fy-vkcRzPb|IeZ7J?_3)pV;eHT#GHe&tmMJ9?^Mc*4ecg za}{h38<#9#KL1JQbi^^O+gUnQ#ur^KcZI!NAA3|Q>SEWVDNBr|YPwtU6;1HXdBl?* zGL!wlyuviTe>n^Poo{S$TT$)z@7((@3)l}!Jlmw==VlOBv>|;?>*f0Bld%_PXU%7u zu)fQxH#+a75PzD%^c_d4_Z&a|%u&Ley|}K|=}(sQG8e@slKNdH9~4cT{2Rq P z#DV2Cr_yVd-Eum<@W7v2D_gc-53X#e{yO{iO~2AroBL~Rju$iJNX$BO?t$)>UrT<- zK5yd`-uL64;X92*6;s0v69TrzRlW`oUM_Yc UH;K?J|IBigu}h(wSV6Hi?Pp9uj}pI zp=vhC-}1xhm5V)W<-1&7Xa=3%YBZ^S8Poa{)v`BHS{sfjA5Rll_il5sVVGj#=Um+% zF{yhsBQCEz9<^ZC^GnssE$7Y?l5ytwctqI8;Oa`hBWK-JwK5$Ude<~PTaa~U{uB%L z< ( =xnQ6Faw5uurusa(h|wKWg^+RNeQV z^p;z=n(s24H1Ub@eD81J8@uj(QR`GWX4v S6o(z-{qQp~bI`h_8EHeElBpx}px}HM@V_IKZ~9us7z(B1PWJqR)XXN?PYU zoDb`ou!lb09}(R8Bh<`Kx8T}TwkKBux9prJG;!Y(t=Svz{#Tha LPpM6o1X3hQ)@YcA#Xj;+R-Qw0Vb8-^zvl#ze^&_A- zhvDGDa=jDh3;XzgH0=L5+e7JRTmHYxiC^O)HX5}k)|}qHWx1{J%oU}tYZ#t~-MC?N zqoqDiwsar2O1S0s`r}O>bnk!SoPS|L+nEHm%9E>qMI>7-5u9+oyULz**WY_ZQx+Tc zN}m7m<@vWB 8UckpeuGBoZ z?veVvr?GX9)PG%Y554`}S;WHZ_NjfGX?yl8ymb8Elot L1PQi sue$ z@&o4oit_RlJGAh?#+hQ@>XIGh7cKsDysl+?v2D|YvU`qi+|`7>YlOUbeZ2Vn&-;b% zZfy7{Z2wVneozCGPs*d(QltOAGKG7NWxq+5kN+t8{_{TT%hj(o%x=A#d`4zwn(Cgl z^Ik1xvRRe6>rCpd%X355B&jG%9$Dbi85VD!l3sY)WY!-^m&RA`mVTT6L`7Beq}8>+ z{;HSf<$qi})TyEU_L{v#s>}in*UH)3C66d|aWRP5RKLZ<#NeOHJkqPgz*?clSrt zc%z=gGihdXUo2VmmOar|@LR8Wamli&F{yhi3o9B{y*#t~rf>Z(VQ-zeFV93AyH}d* zWyr}HEpl#spvCq}Z9i|l-F0=5?w2R4A3YA*`&IJXhOW?ZU)FaX?x%vnw(iW#*wJh; z=lZFZvs~iIqI&t^0z2pO#jKdt@BQ`W_d`81Ba$L(KW}We{qfk}H*48)=I~{krfpm@ zab^bJtIK^aR~2OKn<`wqX2}uD6QB2(t6EzIR~XM)HPwO1c*a2$wZdteLl$!FeQ|X4 zo>xJ&3y&Rs`p2qOR@rBUP%Bsd@4$7-tBZux7q59Ek*H>IrTdmJ(?8+D*yC3Bp2nUl zXlvwoB5YT<`rLc{e~Z*@HT??zJ@MCl^p9au-|d?>&bK^V)ck5Olg71Mo7rqvNBV~E zdep7Id4{WQ)=Ha8w{!m8ICAxG*)1LZvfY`NEslK@jlX;Gp!kCm@5T83 n_i;;#j#dNi!M_~@w4GWowADiaxb5)7K(OWqVby7Qyd{!?y$vRb!r^D%K(2ueLX zY~1_h$@+J*^q%ewYRtd7_S(WeP#fz+K#$X*u; <7RNcM4_{#qJ zM+Xjag&E8|sguaL^Q3S2uFI3>&FUx-J6aNY<7aE9ad)mr?!x7-0_vN%cFA20^EtHb z{FymX2}^7I?dSbJ@xRaYzN? *-0BNtSR{ z MvXIv|)2nRLY76P! XvT4PvM^zKGEJMlKbql z{7L?DPnC(9J`cm|RQoJm1@_ )fYnx(=+|KexL)KVDX!=ezovmDRf!Xr{}o zsXyNFaZ_{DeU_jl|K1i%khK<`ao~B4pCi{N+xwS$((-QFA5pZr*m*kUS$W-ZRo%N) z|1Y=woVB5H!9;Fp5v_f{?~7!ITb>Gxdu-}gG^wy>vH0FA@^AKAe3;zYJXzNzkGIhJ z>sPLD4Hv~l9gB2x-~YJ1cA0mq|E_Hrzb48{9y3^1cy_Jf4(~r&(y#BC1$`B+Kecb^ zyS8p#>D |Nn09E_bsyU-|3u{QW<=J(MKR z|0v15&7QbVE#}6D{#~K1C3~-4Xsap;FUXyvZaMSan!FTchSC+2 t@a0x(GhCx@WzF=HnzzVug+Fun_uH0McfIZiY2RbC z@^bn0>CNhWt4b!_IUT2FG|~R&WCy0oX7d-m`M$4|yC>J&I(SX-T;ICXT|Wa~I@@ob z+f=Nblk@L}i$|dTtG^ZLQ{EZ0S57v+dEBneprw(gWcR^CA OH23-C zQ@b~EZIqY%c (ca!N0J8^+6<1Y?Y&rkZSAr38xwaav9wnOu9#-*x~V|cHcs!&UDb(4ilzzsniw9L z;36ctV!}MG$lk1|yYr4II~#IxZshuCUfO#0dP~mHJsP*1{5OXE;wfci+i{RLsUuOa zJK`YMB+q3+Q#({9`IRiPI2t;u^H^}hvjui5EpiI-ruIJGyjCSA?1bDq*Ok|6HE*6Y zKiq36V-ayGXy5bdu+6iAraa2Mw~XEP-)4&|Cz3d1<|n5<_b^sWjJqNs>oD*6o!y$9 zvSqcY&pzafohtdf^worhFGpuL9Wt*u{Jh3b@|3~Ul_85JMSsh^@xs5p?vXm1@r;Q* zSB@Nc-+Y(r_p#ZQU%Fd2EUSw9rFB3#_EE~D%Gujz9+tWH*mmEu*X`5(7L@Jm{rX-a zbGKSc&e1#fEwX*H85VW^JAYruOnc3noCj0)-u!U- &luYVes%Cmuu6uWm zWR6l^XYVuaCZjzLf6UEyIQnJ@IWS1y{E@N#{Qq+|e%zVAA??-GwKENkXI<<` N zYWilnYR|gZlOT5|GRj%mSfG9Ll?QK%q|>M0GElKN5qPP4k#4Q#t)Tf28QMg(rEeTy z5;K_pQ)QAz=&DN}pDFhkOif$#u?3V5q?Wlne8Izg{Qs6DU$J?atCp99$A1bx{o~yq z-n )-hTJ_z3 i+jrs; Un$&G z?6Zh_;<_rZ*Hx$L$!yza*@w;rs`=?}`RF5Tdv!mDg2Mc&V!LyNzb;MRx@IYVt;E?E zJf=^*yUPm C*CYCH+Ef#rohxDxG zUrQ#G+&Q;UGwhtsrbn}Vk8fW8JLr|EeQ4gF!Xt)_oPUnxS3Eu&z31reJ*%%?vvHdf zm5}<|z}T^M?+R1B1B-V}zOtF`+BcH~Pcf-KLQ~`_MO);5G&=GuQWBkckf;BZUtd9s z*p>s_`v0EgYXuz4mG&22E*5d~+sv6Vs(V&^u2oP>e5bD@BI0(pX3G-Q{U4=wo}A0M zc(1vqx{OZNB(KGpjv}ib|8u)_|Bo-bRY4 7HR6cGNts_^A+Blxxz(N>hcW3 zp2BLIc?mleb!shp5B!NU`KNqhX-QD|jWcOdmnM9#{J-$*OGlNQup3raT2wtN9)4yx zbbFQc%bRDOG21CLFw{L1pFT^&wj=s((0RSBg8SVL&MJyNq-Nsue$y6rrOqP)hlQqX z=t-Sn5ZLK8tEKmtvb#({WxLZIA?ftwoEhu6cWPG%-#a(`QEp7ON|}Amjfk^Z&y1$K z>L|5}WCb)|ubdlR(JJ#KAX81M-*Q&-uN}py(+@Rzik({@d_wG*>&tcLeqHJ@vt_z* z+-~2~=zmZAKTVn*_vI0@-32{`e!*of>6hnp&lWlL^~>X*|NiM+efW2__id4D`;%36 zbcplTajI-+C|+1U^YoVm?588oxz`-=aI3nKS7$uCa^`eRM^3Sg9W_si>nHegUK2@t z9UxrjojaxS@i~#~a*N}ZanDQ3Hg;d^StkEi&a?K;wS{VWxq%gxz8qHkX0LW%> >Z*#?#)J;T5dLX=0l${AH{>@m0Aj$x1@wT9ALQ;j6N5tTRr> z#61mFGwi(gCG74#^&4jo?R&2y^XsV7LMyu~KeQD7-de n6M%A;h7}q z^yxP@M7LhxuvNAC5wxT4xz+0J8xjwP&7=5!=AvnBg70>tZj5(g&x#*^S4N+n+74 z>$4EC*nHyD!uYj!EYg-I_{yK!_tbr2)jG}z_8k&QKW43uJZ?4bc_o`cLtn|2l67*% zLT1`IzYcWxPw0!f&oXI!SNh7@!qYiNzL^V2EnNO=2SW|h9QB(*(=PPpJy8-jo_Vr+ z&x?tFCC@BSx6Sm9US@dqZJL+A@bqn3IlnHn__1$2&OYJ4>-jK_`j6s!U${DQeNwLv zn%Je)f5mjoN~e&oAzJ(&7W YcBv0UHe8Jn# zzvi5udEBP2;K*CU)RtoHIa_z=*9khTync24|G!iGB~M2rbu3im4c-1;Gra8f%|9Cj zKZh wX0`1&rhG83@rSAT?^!v4948hp&fvCHwfZ$_wa>BB zY(XB0irh0#`dr)4)+DloJGP>GyPVfzyI!5+elCwUIvQF&IZ@K>a@Av^r0S%U$Lwr7 z%K`$AZi{_m6#vXSb)}BgMNi>OrPV1@wYHhc>G8Ryyswz-!|y+-w3a8yv#cWL^$VYF zAN_eMx7#F-CYIZ!i>|Iwk?-^?xfHw0d)AW5occLE!gF7wOyCh}udq9(F5CY0TlubS z+a1qbxBa~)NX50vQ{Qod-X&L_q=3pL?+R0Pxu#9?6Z4*w{y9?rHLGLa$&J x@M}=Hm)}X2nF@kJilDWCkMsqF6opfoVkU6U zG^^w7{XMbhnqKvO)06S0!6_iUx6DHO{w4}$&$8Nob8%4!+vx;NomN+MtChN2Q&;)a zKKZWQ+kT2qx9OL}0*O}P; q{l&93*B7r=eqYeGdHUWh3s?_J zxS6h6X;9SL-urP YBm3{?ee<&=)rlhvVOzhef{#GY?g~>eLV76YyGBn z+nVF$UzRLC{_VIyoBxlNjXitQzj!lWI%j?3!@7w}9`mi@{rvo9xJ|d-+a&SzAEnH9 z91K}@sVhvY|4Oacb|2;N$o#CnuR2S=*4|6!&9*pkuzJ5of?H?GD<7UE8O7H(Ih1Ye z&I);Kaa{h_yS)|(XJ@lb^0Ua;>hgD)r<%`|WoBGl(Ko#qUM&|+Z~2n(%5>qc6%1Wl zgUpN5El X}SH-OjCh-asDsY)k)^9 zVLA8pWz;pJX2~<@c6L8LaIL>E|KF5lTeyrboH&%Bxi3;OdR9Tsw5iRLb#JT<*tB@w zr`kUpXXbyD-^VL$Jo99RTk)*RC5wceC7dizfdbt9;L%<#X?uf5^S#~g$}^vgJau@B zbYt%P*%o%Uy}nLleEG8MbcCDuu7DYb&ZO$4YCN7;$ 5pr;EVdsy z_N-B@iK{B`d%MG?=>`9{zdvx$;@C&c`9afnok?J0)tte(xU@g|ZfW!%S)X~&@7jmU zT2!>9zi`!WGkmje{oGi^)~xxzf;UahK36N``9wwC@QBTqzGDp2R1!T`n-op?vgqIx zh5oGK_s1>I1-5FLEacogW9hm=QS|X3Bc1+l{*yeH>DSIYn^SdZ^2Z+a2@Y4^-0xrV zxa{2e(pPKaZss1p?e7j5wA8$G;P}$tyE%nt-#n8fChRK0sS?nWv}M=N72dIHRoovh zO!5{!r?ai_hdKAj<+37c9v n>0%x}5IDGy=_J92&=(J=N>^Ni{F`Yf1FQd9Y;_nsxQON19o*qY^w z?=G4C?veh#O#xz6cIVV(+I>^5XH53do~APUm-LaeFK?`SCtIx4E FP5}SnQ+l4 zYTfD5&^OsBl3PUXuW2z2wfHl;_3-}4kC&W(-m9DP?$PQ~=Qc94f1Yu?pslzoxMZpJ z{Ew2ZnzKGOX4@FO5xeoLbK>QTW?K9ome b)krF7~?W zB#A7RII@6ehWNc_xpmLW|2 Fl zJhQ}TDkyv-f?HRJ2d}g`GCydpt#@RZ=HBmW-BQbiuEm`HEWhJk!)mLmm7UWi&R6sw zTh8WQw|ztLl$jl%7UkMH_3P(<^sN6mD FrQk=-Dw{N&&cJ$p_ns+zd z!rA1aP9mrDjRy03R~CusW_niN3T{!FX)npkJICs-`?6?@y$9M(oYgsSuWnW8E4w3# zbr0Cn47p{ksxCA$@+=T&4cWN qpQ-S^FC2E1uC2 zXS3LhCj9?sf9vwRz@ASY%Y&4&6FmwxtlK_u%V)k -g3ueUfLIVfS6R z`Ll9fy)QWzrOO!>+Qd3XdivSSbAo*vX5W3H*uU!ARVSH(jIP$bkIy`*KiGatn2Gbm z;<%{!vet_w&vLkdM(|UfDgV_u!g!tkW@miz<3CZY+3atBu)NR+xI251?w1y`E01UY zJ@|S5xzcMJ+K%e@U7w@l9T|18Yuc72YNlJic=Y-lpQbiv#`BPQ2JyuKi< z_xu}M++N%~z;^3mU%{cs15G^dcik`Y`~NI|) 3dgrN>yrC1}ASx=dDWWTxzz}@`U5`SI@%tCMv90Fg^OX^tpm( zM&B2DpZy~}`(R|hRLF&HH{+}8-F;Oio(g$pIZt`k3!SyL6>k^J<$W);arVM<-x>8z zv+X=pw(WAKpGAQ|yXBPyZL7Z7s=nRR+&z0v?=-! 5u%q=bTe?^@XsZ9pX1+tSURCbfzu$eY z=({#i?cy1SHQWT }!b(V`)s%0mMEdDaNZjta@7q66M zUKuG *<2{-dz#mG!kH(^s?4`MRRL z?(CeZE4rIpzbu;m(a0|N&FW6mtBSAh8=m;`LFK0Py(xP2OT|1Vsk~h>_eV#6&$Nq? ze*aFT6`a_4HSFf6&cJ73rCvAAte>oOyIuNe(i&eGy;YjBQ<`6vuC}`9If2E~J5%#= z>aIHzq-R=l_AZxd_kHq&Y4so3iAtBd)ldE^=P7!-q3U|%>>DYwd?p74dF?skZRM$c zQ~!79=Jg)~ZY;E1!9TNmqgiL(G_A{rC#RfNcQcF&eE+Q6Ca_=+Y%M_CIdA=!s`no0 zK3y_LXQJw=o7YZA$;``|mU(ni%I|{3THKo#Z`J{o>N4}Q1=}s26#tAVSv0xslK<2; ztNW+FFA|>XGf`7g{*Ca7n@_`L#u`R0ieBR7H79-kcfOm7OP5SZnf}HoIBk`U)7P6< z?kik8Ym?viM4-LJYX#5bM7{m#pA{CbdGlyq-21efIvhgkh41(bgMZw2*?gwP%yXUm zNtyP_mL387kJUC}MSRb<7PxUPPg}LzYS(wO_Y*jc9KS4@e(jRgX|sgF8!kfIZlxU8 zn0#ja>nls<1Y1TXu}i4t&Agf#d&;=TP3?3_rl#)E@S3C1dzLP{GUcLCRNv{3KJ!|S zUG6%pSCqFkblMibshLOT^krr3sj~Jf+vvT;WqJM~7q2CACK|80dHqDl7Bx@)?rioq zZ{%{-61$xa&aw;nedd0#%*MQ{K(`7_z2VJ9ka}agV2r|E9cr?5tm9*evOjqE!20a^i2}nJ1<99Nb=Wn!RR1 zVzs|e8TT8xTI;3Xm;UEIaQpt=DRHc=`9Incc^31P{+N4za}Bddc9%e??bNLKKbM~t z-+4OCEVw&L<^jV~&G(n8%jz=K3b#9bW<97U|C}rQgn!+&4Q*^DA2QZtDe*;oT*c@; z>4K4!#Cx7E&by_#xVEnBW#zto<6Fd%>bRRrH$1czzPB&n`*DY&>ERozg*G(u?m4xZ zMaV-WFl5oBRo||v{hZSL c%9Y$ywh_H?f&D zJBO8ePmWBT{Pd32`5=e?zK6tSgVN5neuK`)Gnc|{c}-yP>^ZU`slGW!!2aXpMxy}H z>VDxa*ObH6-~IOc+2u}u@oeQM_n#@2n{RA>|9Q)tX;DGme~!kxoqnOCDqn2R_cv`? zWa{LjvtCsmd0kt1f9;nz!HKoPXEtpJ?7DsYl-|wFQ+T{jMehC+s25q*dv4C_Kc1GF z2ZeN;Q!|#`IL~wDy6mP+-m^eX@;kSEMc)5OF_YLXIWVaPJUbzC^=-P?Gig4{%~!N$ z|B_DmR{Y B-KYGZci6sA +KACrqF%M9&S=({fX_+rB{ zuGPCGJ*?g>xOhf^Yu}WQ@6EriX`VWlS0r=6@;BjPvtG{HIC<_70q5FR={Npm`dyxJ z%thc}ikf}t?zg}98yA->6FtnDF5FRHWOnS>t?fNOo?g0G5jMfyH!jVfIc$qk14B~B zLfg0Uv(HzYPB3 (Y``egXS<7SizaQ%RJj30u=u(H< zJ3iCk52x21)?ePYH-7fX|BL*O&02i7HRg$ux~1eHfmgxv4Gx8Doi7Qh_3zyhKgt4{ z2Q!V-2yyTCTRPvx;9$uz e}A8h>fXv_o%24~{^jVs@c1n| zXY?DHKQ}egr|)ogG;~T}T)*3G^`4Jva|)s^H1YpvxVA-Yf $^U3 O$0QRv?G=4W>?itk-zl<_bP&0we}p1j(KkN|M>rp z;`M=(CbbB!JH%rW@?_DpN3%IWYd1b~8!vNN7^5Grwdd{nD623gPM&m&;2BQ2S)XO^ zf0Q}DGC4-sJJDAxtkgJR$AbkQ*C_O>xc}=ttDuvee&DwFyne5xJL`ofc_guFYdFv3 zxxN2fY1|{#q6y8VYfcw^Qk!|UcX656b`NKn1(y$Y$Fl^i+WcNtbMN_muTFO>GsRpo z`J+C4r;mTtrk+%u1cvwzN0YZI?Aa5XSn1BJySVve?7_{&mE6%QJbk}yp3fCh@UvF^ zS>(;1tuwFlr4_%fkbT)9YyElV`*#7xQ@7gofCk4(eKxoo*?xBxh`QLNER!hzn?unh z^!Ln@FI~;H@fZbdXyY&4#~<={^UOmczb;L8Gf6Vre6p?jd2pDb?!ALYBhtekv_!DB zGwnQ88N8&Ce TglSkm9GXjNLgvU7%!an_`wV+Z^6ePSZk z2P|pizv|8=5aKacHjlOS{m*$1dDO*s{+PACQzc0Bwp1kl< Ux%Th3hPVCM_lJS)J-IOl$2v)Gmg0_`^r@^J+y95$0zKf>o7y}a=8 z4%zlcHGa=oOZRc7{O1?rnJ#lhM*4tp@7;bmy#&U+FMSOT`lMTxu2}r(h4Fmfzr8B+ zi!K=5`n+rYzc1;Mr!9^dZogM
eCYQ1Gh=S%rq{|d|J%7Y!$7rJD5gA-J37PN z`qRXISDi%?M?<#$-w^2IbV#iAbGFF2^`QoFWdbobx}8dEG$Ky7D}Al`z`19Ca6vC< zSAlng6OW;UVNj>nmL;m|KWQ!1_&OnN@kf=Sy19q0DXO^$#{E$`@R(;#^~RpmFU!o$ za{ip?-?Dt~s&A$?Nz1Rfy0eNb26diXdxH&Cxy~+X%J>mIA?w`BvTeb=Sv-jx@}Csl zEf!fW_cv%`VLz>Wxger7t$yX>IZSV)^Pe4JlUA+Y>$bUuSD>YIP4H1mR*7Q<*EaV3 zJX8N_PH= UA5U$zxblWh!*$2A}4A znA6i6w7y#Iqi74O&H`oGyLIdBT-YC-Q7C9HIAnQLvt`ZJe(4GB?pOW)Sel(ab+xwa z>Ra(83c@oEod0u%uWUu0z46KLqqCoJH(#tgcxn3O9h)<5Z?a zgub=UsbMN b@i9G+XrGlvi)OFL5q^_GXUOO3*~xiT7eX(`CxHPMm$GWU2P& z8OKG}ZJ5v+vXE=?43|u=;JzZBG=q&t(stgT +q C_ zch9@}XZRKK6-_YPqBzOJ>e56Pq0r6iA4*2Cm^On-l-e1RM>RtJ-IzaV{f|{@OXm3) z9hNxO|Hnf&%dpdP)sn=llvo~4zG>w~3;3^G%m@=;ti0lxZn^!^v0Zj *=r|&rqmN2|B-6tmKMojQ*`?=ra} zeCtB{o~gC(cHi5WoUR?+sno@)^T6ggr*e;)$wF1#Ot0WCD}L|Iu(=s?<3Z0dEwzQe zPB3(B3;6yg@?25XMQ-D?x+m_s5?@|iP+BoB$x9^3-el9Z_KADWSAYKWN?=~CukG^^ z!){Ig$~437`9C^K*Ib@+SzQKHZlp8YF mPf&c)Crw)Y}a4fo2uNzk)$jg z8eK5|Ay4c}uku~?Q_pEK&1Ro9p_(O2hAZY?YWjVa&EC&~JeTsz|;^tr|9>LnSFe#`neQd&X}8A zA7T7dVDgM3hJA*eo->o|jX!c;3H<-u!K?gh^5NZXeP=_y8*?dj{5-Q MO;1V(4;u=BKNGv zPnRY$ONUr57ZG_CG(9Bf=0UzcAH$Endwk@hW!N@8!;c5fn97>W5ptQx_I+PmPLgo` zC$;N4j%B!A?v8uK_f4=Mb^6>HC${jIx(l@|5?N|I_va-2yLJ0NZfaifYNbgxms))2 z_2UX0jw~OA?JxG`<;j0f+>pLzbM}|htD8B`tp7Lfb3ofCX8VE}heeicc=b&lJZhA@ zWag*6e^(e?_}|FeaObJ@zQy)`B~Li)d$d~T{=;zIp!1d%`;WQ(k!n4CThv7%Up3!J z`W0vIg~@x5{5^lvc#h(%j71$u+R+~m_qUlW5nWp`bNWg5eeEW~y~n3+KAoE*nW1EH zrMt?WbyXN&Y4^`F&voxDvN+nQ THrc|M7~JVyi; zzp^x)1e){SJmYJK)$(Jf`O5lC?%%fjd;Rn5U($xE|Gpn}>)}Z=_`1S9)2nzwvwur5 zSHUNJZA Nj(mHXEL`JXaY~&-LJSB1>p{U%?^Elb-#3zYQwZ&6oeTv*gXM{bz1I z{XfP3q_Z5GfkN;bd!ADz-xpuo!NBLgQQ-H+m*=bsMJwiipLxt=-_z(_mu02RO8F Nvk1L#mY=qvMefUk=zXdk3RmA`r^Jd( z-mq)-#3>fmXP>dI-o;#zI^C({`|3Y?tR}VmS$^|~T32w4>F?P$Txwr^mc4&*`o2{+ z&vJyXk9+#+>gpxSmQ9*7ho|9S!hx*PW#6Bkd6}aqFCgIH;lWY)>4{?gy*)3!&bzvC z&D+c;f2yR5`hPE)-fw)=JlasdYwNY(J-zxjyYBv!Juc*3zRNx^@N%?1RA^ iob_hme1k1*6QUFj{+OVyNp>ESG8 z)NbiN_l%gu?wRWELObFYPuLLo@D`)BU85CO$agi9Lz1z)C#v6{zuPg tlVH3`Ze@Kq?Rz(I(fsg-E*f*5t%f3vZuHA;iQcdrcG-*TXuW5xm0h2 z&i2odd-v=)G0*n5Y+2E>Go60RmEHSfT3T8JgoK**|DU|KGRK^IBeTz(=)}iICo `Z}liEVHl5yD*L0hx@(ce?DG%>2JJ1 z-P3TpXUSZF9V>mFs>TH!-{CgRU1r0-T;=KIS|)QB_nmvGD>8Y*3RkYj`(GZq=oNkA zgxjg0Fw@^^J|PR3QZ<}SF7oRxJ)2^*vHpKupN!?9latji|Bu~K(6~B${UVKdZx=i} zGjlQ%D_6jtibAhxI-Z?Esv41-RHkZ$D&^nXQ(o(TM@U-wm*jt8)vuq}+GRJ1eq9tX zd$;w{2YX)D9u%)Rd);KQ gJSPQ@2NS!o|A4Jee>1Fjq+@-e@S>+<}NSw@mOZ!ljUyRS2X4C zoBB6WYJVpm*;{sPPpU$CX1 pvlY)Zlm7VeOE?(#k_PU2jFo6)3)Jn0gLL$ u z-G<-V#`DE~c5I!yd_&CkIlr!iU;U@R_R-kBxWidwVaKX%|4+^|PLJ4Krh9u^Zu0eY zu`)Il0 cU(HXx<=<~@&1Pt6Z4KO-6}l>PwcFmRuPdUqYI${u*PDAB zous3%;B%Q9U(u8g%POL6U87&Tm*(wPon~G+*+oe5@C Bj7PY`yQ1wqD`M$I13QLFX+aBqoBU2B*AP zlE=b0$Fw-uGm%44%TG8-kc?v #=5;wZtx)+c9s zYNE2cMd2fs!otFr|Mg;aG~9jnX3q1sZ|A;ad3JvO{69ZGFaKZv?afV2K0Y-Iiy3cj zZl0_gZPwJ>{PFwu wj)m>szG=5|%r0HZGoQXowDoVg$+ZN73Dc&z zWo2o3dV1d3QP_NXy8h%DGfqs^4)^fzP%tzU-2Ahw(_x-XrAE{i4cBflRUMt44<8D= zrtA6M+?0B9zWsmaA1Suaf8=Q2wlfY~H(frIZKb^BymKX07n<*Vc~-seIQQBhqsbR! zuI!#zcJJV`e&3jzO9LLt+H37w9(P3~K~?*un|aO0R5jz3zPVp}vTej<=I5rqUapo^ zFYWPh`qkXYb$>hNGH$L rYa4=VKH3Jz2?o&P_f`uZrL`z4I37eofJ?`ak>XWdYN@u3mGR_e(Dk`dBT{`nsx) z@vT?5UxCtL!81#9FQ14%+rG;APV^QRVPEN66WpSv>F>Q^cE;t8SL?Ry=Fol~rkWG& zXOhI!Ej`UPtpq2GQwL97=VfVs)$zlYqjtkDzbt1dAwP@L5pEoct8Ufb5oC|CPf<_Y z?DR)UI=t-m$8VP>uJ1Bm$Xm;iy-a<>fw!+SAIVvtzIDIs*gCQ9 E>`IvuZhU5_iHKU1qB?(58PkQ=YeUoh?Hz$7e zhHcXuPci?|yzl xj(0<}zI hQ eb)g zDC+9+*4NjcnyT$S( a z)y8`w_LsaAy1d*!{n8T8Ikwf)Hl?1vv^6{2s{EbL!$Xnb=MK%%`H^-#(QJ0))-2J$ zz(Adt9RjPbdcD537IgouprGK(_2!95EXqG-t $pwa)6hqq=L?opKK||YMr_6Z&DAfDfzO5Tj&S0R`eR@HTsA!Q=f98NEoF`+ zYVpOe>`3o?#I*hCiN ZeCwwTzK&F2All&=b<0&e1E=k-r>#be(!tt`qU)en+H$6)SNSS`XTFj%fxVx zpVODg|D3q~=Pd4+2c~hsG4{JFpDej0e*HpCXY-?n`^0y81kZZZsUCfE*7Njvo0)?* z75tvi*>RUmsZ82)N3L6Zg!3ialLpDV!r1v#FMIW7XxXQzTi-n4c5P!Hi_nK-v(2_F z 93qb@Hgd2(Ov?;AUd)j -(RbWqR3uYu436*UYL9cNAN1&%3Ln zqN4J*_{WFDcXxNUFJ7!%`udu$e8#tL-_Dh_e?6whT+i#Xq^3MNt3S~0PPy>x7as1v zE=|Ax!?*BnxJ-95mq78!Bk|3XJoe-+yZ61yCR$s%Xy=ThH7D9bmRos8EXq&|<*sc1 z!C@SIuk-lUO`>O?SuY5zIACh>immi)sb;R$>4TH3H#pvmJYH~UrB7;`Vb8{%vs*yT zfyc-D(~owEif9Bh@Z0@pU}R={@bu}@1zT@=*VNc}PuEMmwkC3pP35FpTeFSR&PZ@= z(Q}ahwZ~}lvi^=6xhdiMS?=9@JZ0&bE3z*fm^gFNtEc61NlkXiSus=WbiAF&S`Jr< z(-C$LC+pl^Xm-pc(f6^%o?Ev9US~gzKNaM;lq>YZ;eJ=0pcs4g3W+qe4c<0-scR~V z7cz%&{Z{C|wq)9Jn?{yJ?mrKn{B!25v)i`s9u;Y8Gkd49^}2odcc@S6Z|=p6%WUl1 zH_t6yldLSg^SG^6uw?zm<(UD&+t%MbcdS=>XTd`zGc&U*>tbiC`OdnqqcHi^)z#l` z{PO44Z@ZcE?9I*1Z*FdGx2^uRA^*PJyZih7A0BGWyts(<-@kuba&8*gy0_fAb0aa~ zynE*ri8S}CjHmeZ)+Ec$eR;;i&8V-i>-GLa5i(b_vx7LL=K3tWzBc2>=6@Sa`6E^5 zRj?T}Jk?3JI6U(J%bFAQFE8ra$UE=Zur-)T=|a|2=c-t@r5(zBQrrJ{_?Z?gI+DnB zQzRfneu4O2izABXip+w~z2BOBUBWz1#(TQn(wv){YQA0#FL`-M^?t91yj4lZ$;s-Q z3m?19>9Y!ax>ak9=B~CRk<*!%H}&q7SDhrJJhO;R{^Nx99S@J?|8bN5m2z|0V|z8> zji)_s>*~+nu#B&Cg@0|`ljAzKC(6deOgeQje{#lt1mBJ@g=XLCwuiKYsuId@VZv;q&L;Bbb!9PbHYm zwk&-m0%|inKGrK^QNS?Q&wa9*?}zW-mnR?Z^FKRfy@>eqB|;`@oclGaPL&1K?Ytl~ z?ZV`FKIvA?5=(ac(>}HO^#Z9!t<3Q%g~`(!&F!{6{@R}_>U*}nk-KD>arq8s2F5K* zmKHq{`y`UoBD+_(V{g*3uTku-?2Zb$qV=C!wp-3Cn00nJ|D)SJKP7)%p0mvAYUH`1 zdr$99e>Ho~oHJ82gJ+mz3cY*xuIBI8>m{$R@oKOBV;dnXBy{M-$;F(1{1yKF`{y&? zPL`j)e~y`VX^ 3Llp8M#RrRx_?;oG~^KSUMF zey!gUUUT FoQ?)_2&)(XW>wR{X=~dG^hlKC!ueZM&8M{4CwzIR-B=b_szrVj9zkk0z zYG3DslPBlQp6|4om2XPMia!r7l-C?LuQ^ G2kk6MUFJ8}t4>~c&n7F;wY_ZpVUf{V8|OUTvTUo;In9RN?zSs8 z&eVR7t0?Tv?z%BiHlyT$?UBCK(mZ#p|2E}+)nDA-_OU13_H}V>?TzUR3re+To!k2S zml(7AzQBEYskvF3r)~Xna(+)j%cEaE1vd-ky*0MGYI!xoF`GBcEK`21p00C2)|w5Q z^KB+e=cZo1rOP8_(((HG`r>bIB0)C}bQjNZ-mz=frJcp;V)}7s-rn9GxuZalA$E7! z(v*{vYQEh}kJ(!l`tk2InY{M!= 9efoanV$U-1y%qi6Esk3r{TlBYw^Q p>G^HDZx=h<-lV9X&G_b2dnV0TSj{Kl&W^$@d3R^U z*Z-XwwDijA>9cNo`uaX?m#=$pJAeOD&&g^!aeHPga_xS$C34k
E BxoSsU-J^4f%D3-% zA2=1(?8k3a&3nyHDu+8`L*ccA#~fDfyw~`og0_B?vDh_T_BXSq!I1~om+-B%+S3_7 z`&CzZ# it8-mTh~KX7nl@oIELIVt9|tFRehIm8V|0drmQ# f&>i{8(>7C4H*SZ& zk5A8@uh*iJva_`>FZUPUd~;1#ZskN}_r8wl)2C0-2z2U`vz>MMnZ~)h!fugIB$dni zr8h4z_FdLF*}`*?M)})2b~zJV=NV2adH?kM@wb~|1)j{i6MSagn+NAEZb{y^^ZbIY ze|0zYIW{?$tynaFa!kxDrS3gRPfkU(#*6(sZ8B3$>f#Bd$R%BMbq8lCC7IdoK0DXC z{K?{eJE7?4=)&US$sZpd_bw?Z`6iL!7|6rcye49!Q%y|`%LKPxsgn;6w~Jo(-;+Jf z{ xxo~UtSg~JTInkzLC=R);hZC(*{dT^`qW< zj>O(kb#W58zJ0=Xk6!cBySB@ndd64S#oyM^al~^@$h1>I%FFuB=*z2q*H1aCSRs|2 z(wpI`U4Qz%{*`~<-rf${TUDwVxTuANoqcsuaNP5Q&Fq&}g=!a;luUVhd;9Y(mR&^| zDT~(Rels|2wRP#XFO%XT&0omhv7Y|S=6GD~x!ZYcEnX`WJT^SpTU_;={o|&Uv2(J1 ztz9zpM~DBu8cFVXGgP`yA3L#@`IW^F<&>6)?yYa8?p^ibdAX3VaO$BJ&PPw4s4VrG zI?1y5nMY7ikl*Z7N5yY%ZYuXmn~U|jDaY +9dVnWDcoMKL|&&JM%sZ*LOc-r73HqOi$ps+M8dn~0ucYwn)z zy0T%>u>$LV^Cq2H%Y5p-`0L>L7kkn)oGlM>9{n0G`e|!()$aup*UlBbAb#<~w=DM< zZOz|8_VYe&SuFehv)%5SzJZ^f&obiHKmIaOvnAjBLdG&H&xy+nd#|oZd$!cxAYa?< zD*si@%bVu^WfA=1l)dE9 q32A$dEa&RJ |ULj_wPjim1So8e%NiE+i_uUb-9v~(v3~2-LFi~e&UwuZHwHTc5y|Z@~y4e z$9tvCi*7B^DNHTZdUtlsMe&oj_Liw?zjP8m`hMj#KB+Cc&YWG~bno<&-~RW0T &r*eE+=CHOliUc3ogqe)XsK z6Z3Ta_+!V9x2t+j+mLh9Xqrx>)5fIrezh;dC9|`$+4$vrJUlqmCUfTJ=TFm*pI7O~ z`@`>2Gh3)pS@y+EGmg3lofK%(SodFR!he~NMqzvP;uot`w7zd%dXcAk&6_F3evdns z+rEuF>2+<>G)A5PpW9CN)HJ XRK;| z{CqmAjaT|x#QgXBe)FC9G4tmZ|AK;oUH3Nsx_R^F$6v44e}27wzuk6|Tc7*FJ+;Et zoOpP+{pJ1r_O?}D5{~sq&b+p%@Y;j#&GS~j=8d_Z6>#B{iC18k<(Wji;?JRbU*sq+ z4?n2YX?Rj+_iuF%ho2HVH~IZMW3v6pv?~*&f_%E3o=lMx3pt{*X|w;HHF;kGf*w!x z7fTYFY%) kX-`)7pC)ad=MfY%DP~_yq+6eirc|#Rm#Ef~ z2N%0!tV%rAtXcEq`~CXx5cAy@rpA%e!uv&&y{?tCoe=ma;(t}>-I~l#0e yPbBP= z*ToLEXD4JrzkJqW=a&-^7Z $cYR}KlpZ?@Y z%Fg2FeL45{#onv=?90gFQUCAH?DhM8Y3)6Gb94IqUF+S?TRKE-&HC!Id(q;>M=xFs zWO#XR@9*HPMpbEchmIa~?US|scBf8LQ?uyLkHU|iKMOm6l7i3exGxn`(@ss%Ty!zx z$?g38XD6LIs4twlvwV%pz0l`7FGp8-dunQK6k6R?XQ%o<<)d$9# {gtS%ZXzDSEL{AJ269SKpXtUms^ A;A?c}M3TFho!`zI$08 EGV9I(U+o%aW~IrtJy}H~o9(z)8u>@4s%hUoHG{{Dj0t(P&F0_mGR{v+wMw48C*c z&XN1~<0nnNdUDq zqwwPEua6!+R6HPj?y }-91d&N>mlV!lJ-B&+9lxHG>H?>pIln^Zwm-lBY5R?iUZ07YN=ikA zkzFhy9TTTWl)C*+JHb;Z;@&wqy+6d=&8;hL{q&og)3x)Q-T2Qkv-5deT;!U1Zcb0S zxSZ{t_3``v-FSbzM^f3jjYrVk-CZ+c!vcxk{`< GWTKK zw|93}cQs213M!hJnN{YAneP4evUAPd>g^}Q94B-a1uCANm*T#@!qUQ~xbMs2S@Q*j z7H$Z=d3 wcQrIKC zcSYgvwARg^ZXnfrX-%ZDX85`}M~ wwWj+jr#l_XHd|rQieEjIagN|uuXMOc~{^?*d`=eK{w7SJ~Pfcq6Wg iU$E zlbBAtySv-?&Of8$tHqkxc!k{E-7V|?)hsj3lQlS@v|fVq{yM+Ak1LJ**Bp7(>isS9 z1bb@Qqx@N%HRkiKv^%Y~m(`32yxC&NZsA}&D{%I$oMh>BJG55iE9NJAHP+5o3;a L% Pkt*S^qjU&Qv8Qq(s-pCd~?gs*fx9W-r`vwQfiq(e*I@O={4|K}5TJD+UQ*H>39 ztgTn?+rP8;d6L=emv?r4HokpzbvVDE dH#>ZT~-=*5C8@+wCcu!Ox!Zz1V+cef)gaZn4x=>;IJh zeR=uR_mpQ9Q`25uSsAh}W@g>rU#U@xcg*j*^mdKqCtssuDo?Lp{JvEG>&o*CYzb~Z zCx!l;X!CZ#v6fjkZ)q~F-P#uRzwp3G=bMLb9+r!`*yU!D#G8F#ad^mmr+d$D{7@0f zo4wNBx8JQbW!GUzKZ}Pf0u7>JM`DZwYcIL%EZ-b<>T%|rr#c5&E_Xk-p4-^ixFzpy z)Yo0b#_8u$9vo=Qxw)y;Eccep*4S<_U4|Rma-)B}e|LZX`BrZ64`08YE%-gtIDNzR z?e#i4gPYlSHNw_N+}@VEICOQ`o4dQkH(OTAX~ &5tXQ!k=VpAEq4dLBZp^9H zX>V(4PB>rNJnwsDyy9u2W7`%?o5DWxcl5LcEY~80-DYfZOEq3!pLF`{{vMb4A;&-d zoTPvAbR6I3KTGs0Md$8qTUPwGliR#Fq?Km@tL6!>u%ZTLpM<7IzbYH2OcB}l|6etz zv9~qr>Za8BzrVd@e(?2r{P~dozrVlVT=@9d7suOnwZ9lL{qAhuuyt$djSYz%9Kvcg z|GxM2_opB0k?fJNGzvCLZT;|}An*RZ-p!khLsx}VCRL~PhiB&G r?XD5Dt)!&`%J6SRW+YZs{3cWy}v*H&fUA0h3!Rjqe6C-zt=lG zO?Pq&OX; MQg7RJi|gw($XHI=`E|c>+L;MzzO$D6ulfEi zcH_2fVsrh}Cr+H`zolN}k+#yL88bBU^70m4&3bxgXYtEiHQ!k(@Av&)*RjNQdWB!d z`^$FR;(BK;JnM0)2@VdvJXz)DjT ub8+Qp?lTy&YUj4}EvN zbZ;Y<*THbRn*XdPW-IQyxZLN>i mR zag+9;Lx((keV_K4-wU`mp*~?t@$%Broh2_PY5nplE?wLB=xd3^v{Sbht28j&y4dF=5_Doy z&&JbE9r{aJf5tuE)g< =Jxls7gOFb?k;$E=u4za!=YC0 z%gcPFd)$;685z&NS$+Mrq)`e-+UA*^!s<*DX3RLTCG)a`Y1S3)+YjEq@9(hr_VM%Q z>b(75UteE7ea6O(8xP*TJ$sRBchS2$miOxIAD@`EMrOU#kKeyHSATz}lNs{wfY|X# zQhmMw%T=yN982moojh|*S6!XbdCL{w&(FMZQ@iod)wLOaW;ZV~^<%uYp-t{ff ugI NfUi7G z I>ovZzY3tUd>F4LIiQe7^DtEH4>+LFgdung>chIet$NS~OpDFxr zojp7H*Z0}8Jv#-J%A_^!DrP@_T)J-a{J*Q(zcby~wd|_nRG(j|KaV= TvQRoR;#H{Q!z7I2H})vP;qppjWKWQD-#>H5z 95>L6LG#xzXwBnhdM!jM}Zmmso^O zRPS+@|MfxHeo &Sm02p z9dl|$@y&IKyjxeeMxL_Up6leqG{NlgaeEs2_z$1Y+uLt_tDIhP zdt2@tyILu0>)pqNy#Ex-zKXB^+uGmH&&S7ieyij1%NMs~22azEKQ}$TuJdF{($!U= zkv5xp3X6)A^z{5hb5%KSXE-D;J^87@lYvoWiGprrky>=-8?Gz?<0VJZ>;i-83IZ-V zJl$v3l4~@fAi8q7dvlxqk0w=}li!W&qhw9yB>G>9HFiIyW&iq71G9GINx?pYR?V*0 z&%=a-h2vk`Tcgq|Wy*BIAn@YnAAi5!@9geAeDI)Rty<9Hix<|#S~HxRXZzcwX 2a^#54%PA|?FLtSwRh&HeGSd>#XUcYqI9z9(aCv(4vtZ>h$G!Fc z_MgiX1x;au-?6-VuFUE} t-oY{)WKVHwjv1{4QSw;Uv%L5uO z{WH6 X6udJFM{R&-qs=Vg-^_sJS zeH!cLOBa@wK7Dt0_sw1B8JXD@Tz)yv`iDi$kAf{xy5f2<3 W3dNfqxs=c}A=WsfM_DR>;culCLNi_3jf z?ihWJ@-978-Cx*aeWx;!{p&>L(%08?L*Jb2VB?kAQ29CS&D*y>zg+hJ`Sp6danAKc zuG}sy@pV6+c79#j*Vp&s=g-2|*L1~nqoyou)>3kDbzQnX`LB7u+vL4__inCmku3iG zE%&PP^3A6X8yJ`S&(QencWuroWtoRe;+s_Wh#y#&aBHuv<>Z+)wjUH4S>6@;du}db zS!)_nbAOum=^#TjEqmXDW?p8=6E@E#Iy61{wUhUI+O?2ZsfQ;TdLFqSP#0Fk;at(Z z{e>g{qZ5Ax#UhX1zWsaU_k^t)@%wC&kN2rsSo~NyGebXa&xtvf#TDQ0mamN1sKg*` zp0}jn;h`VDex==5o_~KI18BX`k|pWswPl5ci6 Ia~e@#tIoL0Tl^K)}Q ze*2boeO+w-)Y#xp6;o9-G&;IOwHIAa-}}gIVOChhmMzcTYif3IP5dhVfpMwk-y^%{ zwf>*@+IHg)4rA*o)qo9)tj=W$IR1F-&u+D$fmQ7Jl|#XuH*!^Sx*My6zedh8J=GDq zCdu~o&))m 9 e-+*;_qz z42)Bj+iYF2bVBO+W7k5NXKnH5IP+nJSXSLk*R>Z8vuzf1`oH*(4&wm^wh3NZj4Abp zrp#IJEWAp_JM*T!is9wgbLO|P@qV6po>|Ud%ED7!&z){<%RPN{b+~1XMfGXXUOC%Y zg34|m9=6LHB^}|=i{0gtm8E5#e=p@=6RSz)rIzdQ^>bOd#g=>r&0@;ed^i|vx;ktv zXjZMWw>S0dEYtH_6VJ>rJaXiS%~i%TdL~l5_iMk)GAO(Cc&zVS_2r{h cd-W?0)zwVh|tG~aS`><^CNfmZJnF$M>+r8#ml`e7V6k2ro<&l#oJ!@)e zQXU=YTs3vpOzZM>78VvBMMaymesv{?MP7Zdkfnb96xEp`o)ZrRMW~%}Y2~RloEF+W z)muBr=&HGEkc)Oyr0#0bZCcMQY^(yqOe-|f7F+$QUAlhC^iN4)tIfjn9v^gF%o5Tw zRrvDNoo&}oMLABef9fClrC4}t_VsDgbfcf0*w-&-tMz{W|9v}l@9y5Zb*qJ?rRUvU zrK!KZyqq*?QrZ6 KdZBhEgd$Nr4@7ZkJwr!er_&SYM)d>-c*5oZY_xGZT z+DetF^M2j?-c@XJ-D*Xf%jTRqb-yt48ja4tQ}#C&sd%08id?C>RVD6`==JRr_FMc& zU9@J6sP;+zE0rgu6quK65IMKOEbJ5W=0AZ}Zilw74$jv1ImF^vcA{_ktL-&Ei$Hd6 z*kBO)rb={W^!9ZnudZk=KU<-;onJa-VtUV={S&sTe~XILj`|rAGzYd8;G)-#7VVUq z-5Ym3bhi8&{cLW#P>@sIr1>ISG}1fwrcJW brhF{Fj%YrqaYof48b_p1imEdso=%sg}jho@~(+D>9s}A3u$Wl?zmTFWd3$ z@N2c7i+ifRzI%Q`W}|5IPTlRH7tbGla?WZ+n(~{!8WVRI80YI1ImEl%EI4KHD8rGP zB~f^GfkL(M(a00gcPw*MzMKzv)pI#H+TrJgdkRgE6U7gSoGbXBabWE>E6zz}8<^Q; zGCU4Xe|3Fju)5b2jgNOO>5Ikn?5+MTBqDNTf}(TLttsh6slAO(p=&iF6tf>bV`RB7 z n5b?x8*weE_1F?tXK77D)@FKXw^#7=VB`+>#WoY&GbpGdng|IrC51t)y;rK zjeURTt0#E`)YZN(S@yU^c>agZN4Iu%y7fvKW?j)> Gg4~&db?RHc^qqX<=PjlC{;BCNqg7m~Eaae*W Aj3syz3KL_rT;RtR(@Hke>T%Ed{^3yXMPg| zub&FLv17&L$SV8aE1l;~KeuSr<(CphDIA}lomDn52@$;=CweB$SlPXAN#WyTS5}AX zFF#wUwJb%^#^Ci<|M$i7&*q%l_Qd1=k#kocE%-P4RBdhtmzhwl)5F%u|DOiirE*8_ zIN=)lrC3(#!|#J~&NWfj%9j=%XskSwe6{}n)AVC~vfcCN%je$O^6<<|W6RvW))<$h zB&GLzKJ$gIi%C2?%d|_y{ZvO5bMDUigGbi>J$2o6>*2nCU!I%SDR;i{)|e`OqLlAd z=lsc>w{sSpl&R(l4YgA|(_V8Tkx$q|;i<;*9s64U9DR9HQ{}$!tDa!>?DsBeLT(cK zCl$IydCYb^n`JaBedGMUCJP*w{o<3cm;hR@v%5V1%(L+29eXbQ`SbaFOH0d#)A~EB zr)k#g7Ia?p;HqBs&Fb(COxkN+cpQIj9wu?SDQeRD^nWpD`}wjq?y} 8p$D|Frmb zDEBSZ33at!KWVkhmDi1Ie&;+Ep0lt$`gcmb;{0PKVjDY_>MUh51uY2J@3ABG*_%5d z_at(<_s;$_{gkVo(ae)R2~0~*{&+S^ME6LHS@4>9R(!8~^NM=2XO;z&TFHKXe*XE5 zjmbW zzhBvI{c^rrv-GFAS}xzQ%WkR=Z^;Yp^jtIh1_rAOjOuel zHoZBzaqF1{X&y`OZ3E3GEp_P<)0O{h*d5`bvk}yezjJ@nvDLk%?QSX)rB>I}Jn;Y1 zB4<1Q^Ug=Nc5=GAyPM_QaA;=Z&A7M6^7FH^r$K?Cpzb&4!1e3XH*7HAld*8PyQ?(x ze)?7Z+?~ZYJid57UF_2pG-X{$s#dU|>7$O%8aqL4^K(ZU^(U>ka=Pu)-6{Gv_D!D4 zlWrkA( b=N=l8kf*jMjej+xx%%FI^39DvsVSjrP=?! zxNtFFsnOcNy;Y^ld}kkfadC0{s$;WSw`?-Xy|raw-QQoJg@Km2=ZrmjMf2X8r&WIY zq9o3#)M57}@WiI+hu1Z H4?l{Eic@-!_Gd z{@vrTt{@;-j-%SnXGzC)(XDQp^3HX=*(HmmWnUa9XwwD<$m@oQ($+jz{<-x}{q$IM zO_FH!&C@2!5|3V 46O!rj%zt8d|R$mY8n5vMonXy+au39_0>|DCtyoyUL>e*M)*uBmy zU}_OwH^p-&(^|e$`_r9Y)CU=^{J{6D$JqA8!IEXkPII@e+bMXvNvcNuW^rn%)^+Bo z>zDs9%fCE%Ud@@~KkLe(mS6t(_xt_L)!*|#v#DFNuFkNpw^O^ky4Y^-DjCb7mS10A ze+ISN>;6=fy}i}CyZW2jjnzN)@g~mZRdLm}KmC&}|3Nc<{fG8Pw<@Q~ln0!3yYV?t ziJ>>`#^S&qvbud1w=PY)UeW8S e;Tul?CchI?QAczpnI7fimmH^bbYU! z|LaP9+U@FepB<| &p21;V}P~7Z;nqy}b=u^WbXoSzBB$=D_*${My>u z+j4F;ZQfk$H~UM>x;%pi|CW_bWApBjh&&`zby+%>&$bRUBHt@~X66@Bn~y9CJqAZ} zPU%j0pVh4Bw_{&ur90Q9G|oeu>D ^#