From 8c1f4befdabe38641880e690142eb4e996ad0c90 Mon Sep 17 00:00:00 2001 From: Ye Hang Yang Date: Thu, 9 Sep 2021 15:48:56 +0800 Subject: [PATCH] :memo: update architecture image --- README.rst | 4 +- img/architecture_cn.drawio.svg | 420 +++++++++++++++++++++++++++++++++ img/architecture_en.drawio.svg | 420 +++++++++++++++++++++++++++++++++ img/overview.drawio.png | Bin 40962 -> 0 bytes 4 files changed, 842 insertions(+), 2 deletions(-) create mode 100644 img/architecture_cn.drawio.svg create mode 100644 img/architecture_en.drawio.svg delete mode 100644 img/overview.drawio.png diff --git a/README.rst b/README.rst index dbe1127..1834d19 100644 --- a/README.rst +++ b/README.rst @@ -11,8 +11,8 @@ ESP-WHO 提供了例如人脸检测、人脸识别、猫脸检测和手势识别 ESP-WHO 的运行基于 ESP-IDF。`ESP-DL `_ 为 ESP-WHO 提供了丰富的深度学习接口。 配合各种外设可以实现许多有趣的应用。 -.. figure:: ./img/overview.drawio.png - :alt: overview of ESP-WHO +.. figure:: ./img/architecture_cn.drawio.svg + :alt: architecture of ESP-WHO :align: center .. diff --git a/img/architecture_cn.drawio.svg b/img/architecture_cn.drawio.svg new file mode 100644 index 0000000..ee9c23e --- /dev/null +++ b/img/architecture_cn.drawio.svg @@ -0,0 +1,420 @@ + + + + + + + +
+
+
+ + + + ... + + ESP-WHO + + +
+
+
+
+ + ...ESP-WHO + +
+
+ + + + +
+
+
+ + + ESP-IDF + + +
+
+
+
+ + ESP-IDF + +
+
+ + + + +
+
+
+ + + +
+ + 外设 + +
+
+
+
+
+
+ + ... + +
+
+ + + + +
+
+
+ + 摄像头 + +
+
+
+
+ + 摄像头 + +
+
+ + + + +
+
+
+ + LCD + +
+
+
+
+ + LCD + +
+
+ + + + +
+
+
+ + Wi-Fi + +
+
+
+
+ + Wi-Fi + +
+
+ + + + +
+
+
+ + LED + +
+
+
+
+ + LED + +
+
+ + + + +
+
+
+ + 按键 + +
+
+
+
+ + 按键 + +
+
+ + + + +
+
+
+ + ... + +
+
+
+
+ + ... + +
+
+ + + + +
+
+
+ + + +
+ + 深度学习库 + +
+
+
+
+
+
+ + ... + +
+
+ + + + +
+
+
+ + + ESP-DL + + +
+
+
+
+ + ESP-DL + +
+
+ + + + +
+
+
+ + + +
+ + 示例 + +
+
+
+
+
+
+ + ... + +
+
+ + + + +
+
+
+ + 手势识别 + +
+
+
+
+ + 手势识别 + +
+
+ + + + +
+
+
+ + 人脸检测 + +
+
+
+
+ + 人脸检测 + +
+
+ + + + +
+
+
+ + 猫脸检测 + +
+
+
+
+ + 猫脸检测 + +
+
+ + + + +
+
+
+ + 运动检测 + +
+
+
+
+ + 运动检测 + +
+
+ + + + +
+
+
+ + 人脸识别 + +
+
+
+
+ + 人脸识别 + +
+
+ + + + +
+
+
+ + 颜色检测 + +
+
+
+
+ + 颜色检测 + +
+
+ + + + +
+
+
+ + 已发布 + +
+
+
+
+ + 已发布 + +
+
+ + + + +
+
+
+ + 开发中 + +
+
+
+
+ + 开发中 + +
+
+
+ + + + + Viewer does not support full SVG 1.1 + + + +
\ No newline at end of file diff --git a/img/architecture_en.drawio.svg b/img/architecture_en.drawio.svg new file mode 100644 index 0000000..13e6e27 --- /dev/null +++ b/img/architecture_en.drawio.svg @@ -0,0 +1,420 @@ + + + + + + + +
+
+
+ + + + ... + + ESP-WHO + + +
+
+
+
+ + ...ESP-WHO + +
+
+ + + + +
+
+
+ + + ESP-IDF + + +
+
+
+
+ + ESP-IDF + +
+
+ + + + +
+
+
+ + + +
+ + Peripherals + +
+
+
+
+
+
+ + ... + +
+
+ + + + +
+
+
+ + Camera + +
+
+
+
+ + Camera + +
+
+ + + + +
+
+
+ + LCD + +
+
+
+
+ + LCD + +
+
+ + + + +
+
+
+ + Wi-Fi + +
+
+
+
+ + Wi-Fi + +
+
+ + + + +
+
+
+ + LED + +
+
+
+
+ + LED + +
+
+ + + + +
+
+
+ + Button + +
+
+
+
+ + Button + +
+
+ + + + +
+
+
+ + ... + +
+
+
+
+ + ... + +
+
+ + + + +
+
+
+ + + +
+ + Deep Learning Library + +
+
+
+
+
+
+ + ... + +
+
+ + + + +
+
+
+ + + ESP-DL + + +
+
+
+
+ + ESP-DL + +
+
+ + + + +
+
+
+ + + +
+ + Examples + +
+
+
+
+
+
+ + ... + +
+
+ + + + +
+
+
+ + Hand Pose Recognition + +
+
+
+
+ + Hand Pose Recognition + +
+
+ + + + +
+
+
+ + Human Face Detection + +
+
+
+
+ + Human Face Detection + +
+
+ + + + +
+
+
+ + Cat Face Detection + +
+
+
+
+ + Cat Face Detection + +
+
+ + + + +
+
+
+ + Motion Detection + +
+
+
+
+ + Motion Detection + +
+
+ + + + +
+
+
+ + Human Face Recognition + +
+
+
+
+ + Human Face Recognition + +
+
+ + + + +
+
+
+ + Color Detection + +
+
+
+
+ + Color Detection + +
+
+ + + + +
+
+
+ + Released + +
+
+
+
+ + Released + +
+
+ + + + +
+
+
+ + Developing + +
+
+
+
+ + Developing + +
+
+
+ + + + + Viewer does not support full SVG 1.1 + + + +
\ No newline at end of file diff --git a/img/overview.drawio.png b/img/overview.drawio.png deleted file mode 100644 index 80738a0b87a1d3221f7447f4036d0185754362b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40962 zcmeEu1z1(vy0#!Hh=L#;f(sT6(kV!HcStWfC8a?`Iu;TFN_U5JcXu}ksI(xR|3pCd z-e;e4?!71O|Nr;yhv(UAk2&U;V~nrg@B6l|w4~7eyEu1m+_-UHM3`Up#tm4N8#iE5 z;BNyX?c57xH*OF)+XyJzn7!0DGS#~QX5hR01!fQcenX734Xm`y!1T065HJHjn4X@6 zUzmx(h)sl_iCXLhn<;~}ioOLf49qasHq*PDBdu+qM@@Gz`ePBZmqJ$BmWC1*5Is|1 z9^~caELIlQ%NHRImjg^pOqT-&R@Yzqu?Riw#ekfV~^TUlAy|9+ajh3VB9uNJcej`6#fE(YXuwN3wWRLKZpV|Y22 zmFa4G7qf-+j0_B~zf4Da^~6m3dh*qPwV^h|!v6C8A45Ox&C0?8cvavBN%-_kFYfO8 zUM}Ag{3}m??%zt!{OaR>`vu0Ueb{N6+Fl(FOwVizyvwU^0W3jJYi;9jb!_Grwiny_ z@qpU;2T^!{33SYsFM)Ti9s<7%E+$>CqVt;pZ8J;YiMfvT#lL_zfk%HF5|ERoRuY!F zej7|L_}c}3>givc!A{T0#t5J~&(*M*5d?B^7rfRsRu(3Dd={n_ zR={j9Jp%(X0~-VINnSvdOn);j$R@}lzz>XH@~x%zFS=Zj>f#%ES90-V=vr{}EX?$5 ztQ>%|+5ciO=4(bW{0)0CToY0IimeTPz6)H<6{`S0%wGQBr9bB@#>*Z4>-pe;4&inRQw9boBp0 z`d&-wh4Q-4J6H6kzn072(3_6oYR+$E_1Z-IL-hW;qWW(mH#NWbzm3q>%2^jMZF+#- z{Yx#Zt;a~m0Jt8!zqC5tg{c2Q1qiYVvhV}O^&e8oSB&se(EkP_&|fplZyAB^dhj3N z1V(@bFSzi(UGl~G04sRuHvG#?_8+JTxfb}p;E(^f`Tl3B26~piuNtnW{FWj98JdCd z?_2SIk7`gdq82pzUyk_U9Mb<3^=ln*P5$2)3$}letzi7?zJax+w)yWo=l_(gzb5Wa z_nd}?=6dX}sDR54UV9rCdh5UHwg2C)0o{KOT z;7@Z4^NWZEqHS&XGiLftd~~_ipTsSCkl%&Ke=};iR&9TFR4YAGZ5t!Ii|7pa)>TmS zXEyQb3(^)wKf=<#Vt?sauLS9O32O^mD_y;-w}5N-89D!9A*SmWuW0rc3)yH}8R*&k z#X>*gDxvFu>&GU44E?Q8i{(!!^q-8m|J48H*VD747T43ZGB+|e0K`k&NXJV1B82>D zng3?sd_huiZ5;rr`F)6d75)D7yZ)+OwbBDn0d1WhZ~-l_h~)*Xe#E3qykMq_Fxd2B zd0uT@6N4X7`hP4^X1wO;KZeTmv{wMn)i;4_{XzY|WX3CQp{1dtXJ)v({VO_O>BoPN z4XFV?^SAN9)vDJ_XrZrftp|W9zxeOJ!Zuf++3%da|8E8Rk4Ez^hyy;nJ{vhF3^8Qbi zaHeZa@V8*>{}>7XV?g{L74Sb=?mw>c&okUi04*-a@lTg;ftLUdZVF^Ht}ONcKf?W! zrTkGXySseH*_ap10^h(E+-dUOEV&H}i7 z{{S?@#>~Q?{g0yZe+9Mu8H4>M5dTxK?mB?E*7pCE1Pjx(nftAB|7SP{f26;X9uSk$ z%IR4Fe)|9Nz|Sn&UkMnmb7%h+7Wh~Bhks;&-@~zg(<}U+EB*gY%3r7X{^_2>?@_n^ zrSuOJ>5oa7f2E!WqOM=n8kbT1uacK*IOw{V=K8;X7TVCJzBj*dgYbq3Kac!NjkOQA z%Y_r)Aw1KdzbYqj~fS6dXe2@`P~`sR2ePHxNQD|G3@Zo^o=&IPSTL_sn6$WbiZoGa`Y2viTuX3^(j;c&g`BcRQ8L4px?z$LDr@lVWTmR|O*Asp|9_%Vcgg zF7-zGbBnmc319!c5}xZC_y5}O)TUXN6)kB<4h74-Mge)(vg!!OVWBDWB)50|oGe_2 z>%s7aCUMgps_Eu*(hipM7KMaUYHC{#Q}l$h3bfVmUSAA1>|@e=%XVYav5#h}u^%`n z#@lEb4CxZ_r;E+>hC&S5Iexo~*W8DGwrqzfL7whwPCxYM$8Z4rMXDi%Gd_ z_9a5E|0NQJ6T+|6PB>uLggP^1JvW&T5z)5T9km8)zqH}~I;}e#ngf*I0D_4dji!J#g=UAd$q%X&R4wqKWcMn}SN^>763|?$+vK)))M>|^`f4ZS2ONsx z*{bF68L}z-UvfFOmKO{Zdir%qziq5L*{qJhOjp{Srb@&Fj$32SwZBbUacwV^ z&-k=5(dZqVptK27<^ph*kbjWzFopKi*!&#K(Ap8P)^k`im6oN>DS%t3UUN(HM?^+q zcCab%oH;wtnSQ-tvp%Edo0JnX%Izu^!xe+7cJpYzp)>NyynF(?YO(37Ty^%jFH*=& zes9r+GZh;Kz}8#4lPr+7cQ;WVPZpUld}I+03&Jq)K=$k~7qs zX%R4*4cvI5S;HF`eZQ|v#wGVlVMtB8u__IWA5~|udWZ>^=>gU~d}dYkC!TKSuAIYe z-!~WQ&b~dXH5^a$Reg)jWQ_J25wpkJZK)&b=JCFnoSW0PxyN_WD7?mtQsZr7Bw3w~ zXk}By6I`9X?@{Yav-hvfeM+GW zG2w^cKYa;@*@Hhgnxc~u-S(b5sba>7SnPFN5+B#SM?+F>IbutyZE;VKk9Ib4L5API zbaU?-hYxSMot^L;e4A%OQm%hVrdu1ZThr=xc3Qjjj1Y;(wGO8&1SCco+T{%=T$hLd zS3*K58rCKpL6uSCvOp@%Q+vioYu80_GpM_u?wm`EthHv4kMRC$zxEYyDCVmAAMG0Jb}SaG^s<;w@w&EtddFo3yE2;P z1&;!X_cnR<)bV7@yN%uY=z$faHx*L_So^gJ^0~msbme}5-k`C|WK5~y9b{xFbnNes z+B;$gQF7Fn`HuH;U>A3ec5zK-3vks+*PCXl@8nw@^2%o`&wPEZasxq`0bmQ060S)} zSmJon2l7y`f1k;ydBAifbAo)7-&nrut-F{M?qD&cM9uU1m)i#sT)m&b?;kwlse0f~ zrJ`ngx}xIZn$lTDC>8r0i__Q#8LCk1$Vn{v?naTmlvNObGL#Z6e>CZEd~i$cSfctN?}03bNR(38&6p zD&+q;kj{33sw=AU!IvJq=H)?y`R4@{s!3q~aZ;%$4{9}gLfIxCRy&(K*9uxzXf{|( zQESns-f$}Y5fVPTAI0#BPVYuHnS5WrcN;35Vw%RoY>jed38`3i7mQ((A#Xe(C@l{x z8kxK-LbXow-334=q|fHF6&e(c=G`jdwl3%()B!OVr(#>XN%}*g~^s(_!y5VdtdPgMXebO(+mX=-K=$#np z(_Zx`D!s8>LZQjN1va>*j&@CKU-LZDdRLM@_Z(@VCCEL;?4GW!-WjphFtD}ki4)VOfQd2$6C%zEK-$Yy!~wM% zAp-Cm{d$Y)+Zzb4UjWKXd#cVfR^dT>Tj5=XBIv~oL14xJRm)MRyC(2_4gHrv*Mb8E z1l>EReq$>^{w~+H8?aOX7c31g9R>bn)}()Lj8NdEA=oe!MZ_=wy)Xa#sP=yS2P!Qr zz=K5GdJ(_A3m6TqpDqqJtRNvbR1Yq_EA-l)xdX=?yYtIX*1-b<0XLXF8XQiX5^X$x z`34htW}&l{;M>tE`b1XO5tKU}r1h}pc1b}JNMxd{?Hva;YHEO4;ZeVv#GB|_UNW$$ zJDPskv=hFt#v=t1qg#u6YRO&i?;*Tx4@^lA(%7T;6 zPkc+J%ul_K0e(JwXZFFX1vBEgKzH)fNKmI=#Z1qwFAwNsA!BU%$@zt#%A$-GFyYO; zT{-)2or5K;HqYG#0om>7nIqw82N9kHttZBEvWkaeX{P6CLhO zSjM3~%5zw2m(B5aFE{~qboU5ab!&2rU$DZIJSV=`6ol|Dxb8G-!buOb~)JxM8DF`W!=2&yDqQfW6*E zFkG)iQ@IUQJG+IKOg;O?)MM$vkLRjE>nd`cq(Anj;u=Rg28%Rs8)XX?wJ*SZ#FOz< ziD8hI2$fct+XSF1z0cJ4lQ}}OLuLpfmG_V5qgJN9(W+dR``bQ#U5{ZI!tCRN8RD)F z_wiBka&2_f8*HdM53K4jaJ4*(5pFPdj5Ae!*fIR$F z?r@Am@w6|rQmeT?4%_+o$Ma&m$)eNQ7n0!?FePS!dEk)`79Hpn zW#JLhhA(EG1{_7l24|T+c@fF{SUb_d$9W%v!Kip+#3}5Jaem)#y)p5{tlP`rJHZ=77P-!@&Qz=* zlk@p%!|?)gnn#sE%5=KRGPcXpFloIX8rogHIL}e4rND`zQ+jHsAK&(4Dg&*Ke^0}D zW_B+qj@_@+Vix4M^Oa0CAM40wHF&XI_O-yn+gTD96jaRrruMlxK`(?EqZ&As&fGUw zL+MJCOr>0}HYjLes=4SLs|%GMCb_RKQ5sIxSLyK0;J9a6n;{5Fk~91}hW$*KDv`Mw z{L`sSAq-CDA1%gF5FQdYoOFB6+T*2vs1I|QMLGLJ!cg+#}_U*t|D40NJ zdz3_k%VxvsvA+2~E* zhv0hu$lf94`Li9mJu}W%-{u>1p^!7 z!C@gffZ1Ai%H`;chUA-kwEgd^jc6ZDk-t1TLHN`h7#tC(mSp6Ku@dXzy{FaJ24gsw z&8e8HcH3bxORk#B51l6Hg`8lPla*etr_q8wi1)Qm2#oc?SpAs2B{G-mQTprFv4n>q zAO}(B)1zBWB}OL(iW6s48G(AoBE*{@|i+ixUs^qR4_?!|-l}6uFW_kEj@&l&_L?pB^ zr&k({QhrM6P%4g-C!z4Lz@k$dA{;4meq6b4@pv#XoKjxliD5nVEJR$j=tX$6WO#v4 zs87p#uXS3B2_1#tx;0jtkGNbeXUS)zW~^?Dekv}?KXhmon}pm;L#*V$;ep+l(ZonK z`{$gtY63E_q9A6`aa~)5ok<{_V6+H+ zYY>zqIf#?K_8k48phSJ}=B!NF`fk0U6H zhfa56h)gvf>-Ii=P?PVH*_K26l2hLP+q4a`75N)VQZurjEJse3S9oO0xMl8baEPl% zXXWGTOGF2&AKQH$g|vHiXE+*7u{uc+v;$`bt1=m7B|01Q#0d`C-7hd%aD}wL8%EBo z>e+x|Y>PeNG&uxp?90KS;%>_iMou}U&-##w3p zv>T(;(VD#JJBO4TY&KpXQhh)bRSl~`Z_r#%blhKJA_jgSn<5-YVN02g`5whQ2}*5Z zw?yd?P9RJ0mfpss(E0e?#|()tpI4UBEP_1_4wgM}SSE_U#=CiZ*Vw26TMr@jZgCn6 z#eI1a<<*dU~fL+)mIwO`? zo3f+o(;*f=+n82kYEBW;qrg=17g%~s=&83bvbzJ@+}Oy6kWwy(Ng)Hy&`+WulS_P$ z^K>1LUaNiw>{$Q!aPmv9j~7E^rcdM)htUwDylqDA29tcvW=H4b=QbYQa4e&N5)Vh* zu+ruatNT17EoDO#!IY#H+D!)u9)8)JckJftN|KJ&^o(`5dwJ3qpM#Y_VvlYV$H=#q zH%3AUT^k(-LqP1 zOUez8Y?=$Q$UUw6G`gv2-1T-SSBHC&yklwgwXnO&WX`q#nK*@3KEq=6V!V zQ<1S2sMKipv?@c_9035v?hX1K{s%2|62dPA_tdo=Y4 zTO}FFC>=`K85AMA*rtdNF$GSuNK~=aurv0UN0{vuw)-R)-Op2dYYY!zzmBCM8Y^bt zi$iTu0Yb@Hw2GjD5enKuOLkTUFl~*8SbjqzIRj5~CzUBqvmUgkc5dm;;;DfUM=1@( zR|~oWLWmLVX{qZjX)EC-It@PL02oQGg0!w?H=v2CeE4{mZnF~crXOUQ{hT|_rPpJ6 z_%p6A)nO!L&2ai7^~$iRyJ=8Vfy=Z8xNPwjWFzdB4>m&ts!kg6^QO(&T3CD&V}+a~ zens$?4#UyJq#9OV_EO`4mRZB-jl>vx^SPm@hpaD-Sds8K+))KYbv`FMyxjWakl)Hu zU`9GxQf9e^12|bpE!hG^5kzi}?s(dvL2XYzD^Pu??8tT%gQ8P>Q_}}`aSG$Uo%phD_6Vcl1gh)?l|s-$O{)U+20}eP_3>gsE~^K8}Be*-Q<& zvTM(9JUNgDx^xWh9paZAnWvFix_XNtA{}3<=50{X31|E=Z`AE@@=;qc79vgabAe2{ zW50}TBoh#2dP%MICiDBu$a+97rE_HO7Z=&Ief4;`z2mC^xi#F%4++m!hP%JYh$Kzs z(-wMbv7*@R&4mrbMpdZ^wxlI4Ji5Q^HEN-ex&B5#25Qew1ZNV* z>0C}sozJ)MZ@$@+SuZRopfhZp+jxZ}>U6e*1H>QDY`20pUQ@Uc0ufXZHdIk+0)kVH z$XnVd4y$2asfDX%Q;Ra+zU@d4VuW(J9R{2fZOj-yD6wq2a-ViN}O)0Z}Y|Ge?#qxwMfAoQP3)N#a@H$Lc|mf8@iuLSEK_AJ z>Ny3WhS1lQp5G&=O%nFjX1xvvF^LrX5qC--o^3&W zLWrX@-WH=5GN+#RafN)~#thPsv+$h}h2npzslwYr36? zqf}wMa!*}_>vtSu=3KuWqk$}2g~B3HX0*02v!V3t4DwnBU7pKmPFF8+}}WV|LlVg8XYQg-UNy%!9$+D zR1?ImSVjUbM2u!Hu`m5qF1p|`yzl7WhzgsY{h-Qcb;#i!-MBdFlyF4AGq$_>JOfSb zebq^n6iVr-nIun)mNLU-abH3(i+ZGBaZQ?7z@fYI3mjdsRont)dPxCPuFsslhEB{c zbGDneh}yoFu9lS;${K$FgdOq=?F~za`DS1A*JkbHsqesV9FXYYvAw`DCpwxROp{V( zG>PK!v-m+Q2gZ+~C0@2rus)hlY_S%5?o8R;yjnLXvjjV1<{(^g)~KA~*|#lERcmnT zV`9lLtecKViU$2ZcX&xYm<)QRG?H zOUR&Wr17t=cv`j)Geso#=Fo46TYOTPwd(upV4a&qL;{MILU0-cEAX!)c-V(Lw7rA@ zxU4~kxD)=}J21j)(F>4a6yhbyV4_CuM`h+f&w>hn31dW_2EvI8U4j@N*1Hr@?-&&& z7}P5YU!pKxAABU3aW6p((^N+Fdc0(b)@U&F2gDKS;`cxL-GNsgPIE))SU{fPT@Dh} zJGg8Q_fgF!YtOB)y5EEiXO{ygl{7sODtwqb-4A$OE ztR|OpV@l(wbdefLHwDl6@I5dC$b%aJs}X>8vf~HwCvEVVnW0b`HBm}K>KI|z&qS8z znH*JBPo>NJKIn(XpBujk#fEan!v)L(NS0#XvPPv_(^+_=OjQL@+P$2*8Ph}u_%`{* zgxxghOmie+acs3B(LOgOzV-lNLT=cWZ2%ynT(;R}KKZ_?IfmH<0aNQUh}3?!SgUE$T+4rt6tK(pLU~qxib2jm%Ga>C^?*o`@h%PJ>P^#)+J_+?hrb71 z15xX@)#Z*hYbS%)LN4*vyT>uvTV>Ys*cwk?20tNi<7UTu2w>rT2yHLOeu2JGsV4dN zhF_hT_&jhU^{7L5Hvrt@81650`wB=7SNW9|zafBe{4+-mLA-T4djEATKpQ=*yuQeD%v!lFr>7saA(Yi1I&qWvH zkm2rTFIi@fopSXLi+cN5d;6si3MEc*BOUYx0^A4ps&~!+{+<_C<9VE8APgnvx~o)x z=y>~aRp=QmuVqyrTonp!$_0omGdfv5hX)e$yT{QQfTpMjv1cAGgM-x7xUL|%Iyly4 zsAwdi3!XFKsOpM^-W2rG2WQ8pT%-fy>h^Bk>33FU>!#qnR5dW3 zml(Nc8}&H=aYtD2mDE|m8*&N{x>2|8WoIls`~fgi)knk^7dG?8jDr$2-ZkE-4{$Ana7yggw{g(S@_*E}=VFeH|_$&n?s&z@654XoP zpUyXWw|Y`a1-|LA=Qv9t^rNa9IN8@+>vj^Un*!2rU1l(dRI{PCjeK9p=Pta~taVFL zimVZpuXZ@b@mHd0DtIWA?>epzX@?kiD8jpjw@P4p#XWlTb#n#76uP^Z!EttSnsgVR zO&iPg?7*Y`^i7uAe=G?*ij=`-ExgyFP5XFcZQ)*V{EkzJQqQHJ{jS2o1{@pAmiXke0 zQAq{M?KOlcCreBjkWl^53xKDnQhijW3f9vSQ*I<7GY@7{oaA^L-2&__PteqIRmM>#=(aU)}NcrVyafv9VxR4`}d(_!bAvC^gdqy6s5QJIV&hM-M0f9Gav0A>aPmrTRh zKnYeLhYo+I6kl%8Yp}JqrK-8;#rkK3WRY+T29hqGH#XQe*Kwwg?OIAVXPw2%Z;i|( zBux|c^B>N7b$)qq))ua{wZoF)h9x}d6kdg$ zuR|QtS=5?EXbWjU^%W^GP%066s^`qe3}2)g%Nvy*(CP5YXQ;u%)i^g)fMXtz+C3jK zQ+&u`uHM=ZB?e_t;u8PBgut<9-q^EyOehmqs31z#zx3%jHu9qxA;4YltJakoN`H>% z9fZ&C{m5)iwg#2Gc>N9B)~6(sILVjC8#$3-PwuDd5de#&k|~{b-YC9PExGXXA_y3sb*i{?Xi&;0%_}|MwS>09UzTP za{Cd6UlAH~cYjkexf2TeR!B++{Ds0JF_K9X^@A@iX>P>^uw0wM7}A{*e1Qta<#4jL z$W|T%ToDi+62Y@{pq2&*84?_hTgn_ZxKg{KeHvSlbWRJYkLU&R@!1`3WMP^~gR)+% zIs(8eY$&m4V(#J5uK$snucOFBfkBL)smM^PJ!*ZS&N{v6^BVNXJoSb-=uIf`3sm`B zX>>iY2qEBdf$}>=#>~l~__kw`=REZQ?CyGY@|ZI4+s3IHI1z}I#w;1B817=p2GgIJT>ZqNiLoU&IMO-{`xEFk)U8G} ziR3~+g8Yo9hu`nix}Ltmtg>7mGJAH|Hl)?R9R%Qvxqhm?gkj{|hm}5cCtxe>y~RUO zJjYq}ubRXrohu(G8iqpZr$v!UgMIBPksvv`G{GqMl<>AwaE|p~=$S&>x zqQy)#g5`t+zv3hfwfvA+=vpkLY!3?9KZ195If$)j6sZQI4&Y{ajK3xSVQfjIW$Xed>quLZ=eJu~cHqP_Op4>M-e0PKf zMVF5~^UZc&q3$p1f9S2--=)_UP89rURlb_hSUy(*x_geKC32RvRMuQ2T!(j|{&}Vw zIzJ}!sA3d7QRN~yE_nn%4kEjY;Ev(`Vro=U(L^}qdiuk@Tmd1b6yoJJ-$ui+LP;O~ zktuiqCig;I}&{)PDlm!6O z#bg>C?1iggs$$_;A)JnO%brB7$l4o2Uf*15!T@l9njetlXjzDee0SsEP5S#3B3O%0 zVjt#yIF^RUKvWLeI#<*{0RAQRF*<71R0JfJ3Zs`c-6}<(5JncGZs#+HGH<)_iLJPg z(`@CVapn`1fkiA1Q;_*|jc+?ctM2*y={pwN$D(M|DXFEea2%jUEe(43eF?S(j22^} z;iH+>3}KW@$vvNefZ?BP#jH4UavVk+>9mP&S3j+d^Dz4m2j zc`Vx`JXXEsek3vh@ID7)_MmbO5AZs_yyMw+6OhClc8S_f-g<#$Buu38X2L`iNDq}2 zzO@?kGcyjH4(T^9dvVO(5k{7_);sO>{J{M4JcDpE0hg=rhZm$Vdc^H7(JA#!PYdtN zo+HVoR<%)GQ0&!oA!0Ex6r8;D^#+PW<=%P|z}yd>m_J3cqI#9P?no%G9oB(Wh#{It z*cACC{Xly16;&Z|Eno&RnKZ0!q*JBl$ri9b=hzo~{SD>B zhpJp-_Jp)xIg15eHy!DM3bK zwY%^GY29-|K&fCM0lrfS-+|@)&=wMqxn)GTJT?GR-6{U2nQHZrR5SpF^G=p^|CHd4 zP$^RG3aw)7K@Bc?ba?(64_UydYfDvzaak>C`-*qEA#a}0Z2mT6m)h^Lb|bN? zw?mcn6831|;Fr$q__s))&F8yW#RBx2QsJQrp zE~_`lz84i@NM2TNd_zJBTd@v7x(n9egPpjnPchcT{LBl>^Y}-B$}O)7FU>}tiH7@a zD{5#kId_bX@&uyd!iz00eMB#NpLqE=PaA2nEgaOoH$M)kgj-3Ai3)%B$0;evhNw?) zkOnZ!xfN#FG`i1*3VFml{5smR)XHs zf4mCwh>)e1+^vr&}G*VVyPqku&rw(1`$B=TPjDiRzD24Gz@EePdAEA*EJ zQvx<((V{#@)xPNym{PjN8QXNGOw>)nezfKtvsuZ}e*H}j>3nz3qfMZ8{INoG_DU@> z!GxE{+tjQ=T;_C72kW$BvLx%#*mq1OT!6Rer_RB=;&%LPi-<%j)}vdkWT8K)HNT*M zr^3caCdm=q#&GtcV4dNW$gf&QZbL#X8)!Ja-d%p52lY~F9QMZk%sDZ9uZ0sDQeK>& z@iqD5VvZM1&VNtqEwkJztVmPrHdd~H%4Qb|r z^7#$HJ_H0(aZ@9ja@j8(-m|+Xo;vNMKmIyUUVXF)lrSe5?>hS6Fx}Otb@mYqRJ$bx z;dEUKqFDQ#hTR;i9x#pGse8p+gWE(p0@vf z#Fi`((-NGrG3|7t()4g>c5|jCx#M_u74s9RxR>R8!~F3+LAqiws$#BkdM-Az^Sw7n zxPdwXh}yjy)G!g$qd+>ALM0P6D2_FSe<;zbNV>uX;iZFv_Vkg2;bg8qs#-XuLS6K* zSc68Mj{nahPc1trlVcbEJsaFNR4VlIpAHv{MI}PvL)A(*$m)}0V230yk1$jKpGq*B zwVm+1*1Vg(tc>;0WFjo1Xl^)bR8-hEKGaaf;}uw@T2&7{MKqex7u6;-b2vSCebPRI zTq0`XUb^Wy{|L|?AYCSm9o~CX+$mF_<3O+*#bE!K-EJjef+CStB6?`e?UojR8P z020vI1xdVO8IPQSj7_2TK?* zXjDHp;$+CB$@-61+HbxdE6~Z9g+*nr$l#3HbF$pbL=`y$tIW|LPWxj%c{Rq$s@q_{$j;}*As_DTmvJ@L{@DbNP-cB0GKnmQL+IS8J8sI^1@ip`s#M6H&G z9ZXESq~v^WY*<~kLneIF9~(d!4}m@Ldy5ng309!K=!$K ztPY>tYfFB{MWi3p>0skn4?YW zFHbVngXo#QhCF-nCK$^f313zBWDJFiUr{>9@_`4Kmr`mC@_XhEftO4py#Wnsc&cx>x*qh$NiNz^`1w! zDrh>611pTUr)OIN@q>c!C(_*%Ei*h^j*&7Ki1fQ-gB7V`bXLM%7^i7h!DT#n=K2)U z`J;(MXShQkU9}lJ23p+?&uZJ0em-5Qa|m0UKjRe5VS&PKvzD7mq?e{!2oY(N4Av3* zxi2(eTT~xHLX%Jxb5sM$UVKXTYiHEx*I5EwSf|rZ-|8^p?hMBg2?e&s*AvOJZ9a3Z zn_?U6OV?JntqimOyyj4RTRhQ7>d`E3!|U@8t?2K)Hm$1Vyo^~b=kopZ+u1brI>O{v zOPI}OQb%67oF3iZT^(+Cb;#hUYOC?H`$>xj?gzIYm|H{&;Nww1Gw-5jWm#ul#1N@x z5Y7?LJHbQd_2NYo8KP6t0IrOzGF9wIHGnr z`dH?=TgxZP2P%x^bP6h5qNFS!Yv0#ScCh-=6oikv<9|e*-kYEKQwi`~SOIit{HiB+ zYwgx=lSsq{Es#nsH2Y(&V6fE+WzvWgfD1*p;j zie4qNka~-YI#CU~_twUP*>|JoPA5r8jOrtDIQmj042m&AfQogXP`|DUE&x>6HAx&H z342ZyLhXHXW2!vuoG$>Y9}2c6u{C|;+)7U@0?Hwkd@mULwEUi{TPTQ<__YHv!fSQd z&(0_vU!?DKM>FzImQc@~);7|ZeJ>3Fb)GP5-477v=8rIadeJvTu{4<0yYloS!o#%r z#jVq}*y$Ocl$${BKyzmo9}3K2^qcoj(!~l-h!ir>EGaZGayi+FcwoP~q$#v`=u6-x znnWV$lkV+JbL@Un0*v-&Tj+fSpoFkB^*-fkw_1>>XecZ6r~*MC;`702cL=DH@x6*) z6g(Vb+2?j8{&l=zd^pNG!#%N;H-JV(1-apEba&a5v&qLRbIP#A#tO}$DU?v4!>a2& zo5(ZucVsVkiN#`N%(ULIS<}Qmb$Js;9;$m-c({^v3si{1XzX$8yMCfjuWLxLqm_7D zsDSm(?D9Ry@of>ZLsPjtjhlp(%1MI0exl*;>0UG#?jDlQTC`tur8Tt=4v!)(hRo1> zn8+wqCPD3sc9(>h0dC29U&MFBJoQ?Sf(4R=?wC?mXG_w>5F_j4KH|cFaaTT2r_(sl zX7;h^d^`0=mz@p?EX@7f3Wokg!v`w-dHLA-kwS~1O)?E5#cNUi0{JjV_YX2k)T#`g$fWVvAFxL$@y`i zcec#>Kn_dKdoJ%;H`gqSc1f&fqKCo6<5BC(hOFjORkzgC)NGcgkbnjsrCQsKiHC7q zu8MNILct&EDoZ!}bJXtGhS+eohX6p!Q?_2qx;kxTz&%;~wt5eHfUid*?1}fmJ}QZc z1JLK?#grAPwY`Y_a%&r1XJSHU{#8_4G*b~WLAY(DhdL#Ix6Zyn!oQC!h0JI%f;C&? zB4rGW`CIJzFDs@BA26Hiqaij+URjQIZPS`v=({* z?QpgjF*N1!xn3uS+hiJ`LWoDDvw>{rzSkx@bm>%_3HzfT`jgQj2Q)(XWOoM_1 ztQ1P_^;mJKEv9b`)#hY8dsk7ddY?MtQyPpf)jXllD5K#RuS+Tw&|BR0p)~*K-uSl! z^MkVmj%a2R|0ZA5Oz#SK+CxBJBBU!6MMtYXB(TCAyJLm*(YeHQV@g1|+6v|U`;Jc| zIUJT$%CKt8IXwM|UMJ0u-nG%o$G$gVec2|AH&x4b*uR5aL}xyQ_SDtpCa|mR@2Dh$ z$pxQ?1L=c zG8M9tTaahT%RpkL%x)VttgMT2F&{}Jqu(6w=Ymv+3^O%QZ6ov2+f;(KvCHtv?~)}@ z@vaRm7g^>?tNW%`IanoVowAHIlq_2iuxE=nmBRq6BAJj+5X}G0mqM2v6=*nzln) zgQl@K^+6l6ZtyXd%m+uiSN&Bp#(bf6 zxV1p5d+U{Lv4b)QXQLJ~@l|pPRSvtt2s9#ATnYS@Gt~|OFBa0YHfL_G#1vK#f703C zIHh2xLS6xkW%_h=g?xdm1f(Yn#p>HfH*#7ilg?rpcjsHWh1JqLAA-$V%!ev+U@^Gd z=jpM-)vQF}w9;g&m5StGbGX{%soJ;j!>Xdfi$g?e z!|!YdntZW5X(In7)s6v*$LfPKI z=8{Zk6&?@=KI)EP0ZIZRaD>A&BT2;H`!$Oxrni+>%~iXd!z2kJDQe22Ky8<|(M@M7 zB;Bf=74#-{#>?!M0#wCTKFP{Spo_xwsiF!*6e~}NP8u0fztPH2t$qab-^9luh1H5M zit;XQQ+LJtWHGXGY_&*{+DkgDA`NIzJt|p5DpIL-{JZg(~S2 zM;J>01)FFCrH`*(zF5c)3(;kIXL5#a=i9xFy)5l|lM#X1eK2uNBH#W)%XjBo5gH{7f&2-@?3h#xJ4jv;D zaLLB0yrtu@BO?`m-{Rf2eRgq=Goz_MY3K!?%A6=B&Q!=3De@KXa3ey&njHNuR+6NJ ziwt)6S4L$3`&|9GTQdOW<{O>CRE3q}n$Sfrsg{Qy+Crrk9cIVLR*Pg)dNLD3S4S;c zzVybO=9EU9(tcb5%K0X!8jcJ_3CTcWHFD(rBr0VzgXV=J@s5EcG55oCsd+)fbO}$HXL+U}IoFg%^gjk3J>#Q%H~ZobaMt4Y-R& z<$G+Om(E2ck|^N24%r=QO$k1&Oj#I7FSil_N#Z|Q#8EjW7Xcj^4NPda&7A=le0eSq5erAs^!0T<`&T0G5npV&lOg?(W;Czyke;twzIFoi`fSV47#HO zfR?g&r(iBiw{0{hJ2OSO7g2?ayqg-+!;Narg^KGfE9s~zlSCks_E2;zHl6$<`ql(K zAsHYZT^p}vtGiPcaMKFnZ;qcDt0X0eOgA&-4v)xGvD6pwKGjS~T3G$H1KHXJI41RM_Y|I^)9g~i=0 zeF7n9a0~A4?h@SH22XGaBoN#aJi#q^a2srJCm~319o!NK9^4t&KRIu5zHj&J^X$bw zd$C;11=HQtU0q%E>*}hSg!#g@m%AeFHd!?^AZ-m$K7%OPJrLIpjb3i`G?yE4$6-3y zPhJXjtvI0T<5bNS0*-e=Rv?Y`#lB?7k3NmERF!6Vr?nhSzl%HZ9YMPoUfU7oV75NP zHor5HrIw3cz|(kizV90-m*RA+1h`(<(*=702j%BIy_7&zQ7&3QP;b%4Lu8;_7u$;@11qKBT#R2OLv2q934{nZOH+QjWE;7|`{- zAT_DQb40L`m1$=Hp7#k+&-}E?bebOED3h%aiJrb5G!ecReezOzxj6zQ5d#<+>Q+#E|g# z0Kzatf+v^4Z&yx;CXf&rxxyS zV4EXQyu&(L-!|iKeB1|hpx0IeP&nY9Y9m4XK=d0#zPxt$@5u6uK(9An+5RSpcac04 zANjM2-+^-Zc!0xLa9@=v8-CkqQB+l;NObpAMN=Jg8PXOWO>3P0d9>pD5Hr5nmX zu2Rq82ANwtqqD$7h$K4(TAf7T^D^YoE4}?_KS^8ZF95Wn#K}u@W;h+=a)MdVFs zK0oAL^tydK$3rKxWAz%RPk?1T_%pr$N`%GT;RZ5=xNmH^XAZR^i}4g&%FtGHZ9{-H z#|S*}@nn1JtCbo8jf(@Bw#+#kNdtkeBOl?%6B*?SJ~qfVN}^K*kI4d4Bl7dTCZjx9 z>{)nkaQN$(pNQT_lG-(?gehC_QE0Na+Vg}7ITSJx zPa+D*z)#UC4*ALU`>+AsOc?K{&D7DRS}UAvO5q5;X_L5tW-^-jUas_tG;UNwnqYJD zjxYXw6k@a0kCoo1NcD!P>DCS6N74-9C&@e`#?vv3>Hm{yBlF(rQV=FZZ5tgq;A2YkINHvc7PHKzB+0I!zZTOIER|+G#T3TI+k1@8<7p9oi zmQxL>P(vOgm{Td3I&2(47b>k=DA+d zJNXQef_}7NaUiv{d88xCqaN*bnI>&^%ExF`>tRDTGD~CIN$~ZaL4X#?yV}Ymb90Fw zhQ%KJ6D_F4DEzxUL;drp{ZnhhbMH012A;^)O$Ts`JtX>9|KhFsq|;8LKc+3f&4r+& zPu6qUFvtJyYrux2a)t1&a=hFxfwg-Y$K9gzxj14VN)k@chBIU)=amC@8#Ize#W63J zOH$&AOs>|DCVd6v-JSseeq1r3+a2Os4p(BoX!zb8RQFe_tsYdZ%&vTTOcoY9eoMw4 z1+HH5)ZM-0szabf&W*$eJqs%MOmF0t!eW{wf}@4|Rr*?Fn!kj)7C6&~YOBj-XO~yk zco6rUGG?+UHnrDbBSTCO>0(n=Q`UbGjkNk!?0OC@kJMJ#Jp81kBZ@ItOM>8Pv3(a- zp=r}&q$c@UCf@q7X#|!GE0-&Fx?(&5q9Tb&9{=X10_NKGT~@zfQx#IZB_W_};Bka@ z1rWZe2vggSe@}mw*FW*ZdTTg>hV^v5H;I4pdTlhoI$aT3PppH(Zf{ahsy&{x6lxtG zG>zlcWKY^58Hjb`LC)_eDwkrzB;z9Q_cY9G;UmNbA5@fE!M}+I_@~@Xt|JoZ6YWX5 zv=zIQQT>`;KZv@*=hun+v_J(W;(@UY969~1`e&`=G9gR?m5*V^1uZSa{Od@{s7 zynqX#y@A_$xX$lVrG2hS74MsfU=!tW(;1(&!E+FuMLpsO7R9?Z=Wc#S$^X2j{SoWc zHp?t~mQi3m1E_niDudBP&mH80X;gTVas_Flz+;Z2I#AW!aLJowdm12Yr|1+n#d`li zGq)p$e1ZWyf-`#B2Ao4a`RR0CxfJ`oUTsAwpuR^9C1OTbXB1eu&=rW7VZBSq5Dk0= zo_CdnHTW(dv89U=UpTLPovF%+r+W56NUt)IqaBIXVajf{(T#VW|Lh7BXIS%t=Dn%M zn{9r?gw%o=paQ|vYPL{-7iGZxUFZ;~Hs5z;?fT)RDH!Kb>)KACTLeBc4;gx@lnW4J z_fg0`$f?60_EvbZ_r(nK%=@eGYc>u}GeO<6Zy99v2ajEIW2`*?D)59>8- zM@}||?6EPHiPX*;Vy)&k6pL*h#NOoSw9=O-LhiTNFM6Y*AKCt*HfegrWd4=H#jHJO zYI8rsV8^IWx~IkpCK34Z=42CVs?yNVl!)Kxjn!}p-b2382Dbk2)W!STC0)rw@r(W^4==z_HhCVQDRUvcp)SkJs?+h%NNs5w0S zMr+dQM`31Wrfi2nDY?KTF!LY?T0>t|mAZack9qo;;jjuz=Ao3&4d0&I`cdO;z>=}$ z{_)k$XL>9yrGu6BXE_|~aRM?n1ZiV(kf>CT-b`!b)2k*AyAQ*=DdiCc^&-*ZRmQ9Z zN~x%@a5dc-KCnJou?Cqw)+ndBM6SzB3e&zWu}tq!SCx78t2z~gNL|x_OHd^Liv6$C znx~?5SQAB~A9@@;X|)opc5ov@_)Cm%BNL0dVrUKEI5|~G_QNVj^~+j{hvQJiucLKe zsB2I2TqRMNbZk>0o!Y%88eL5Ow8!g3=HuZMRm&JlWjxaMQONhPtfI1r=k-&D4}14H zUGGUS_;>hq_VH_kCMu8#N3uhn|F9|DQkz&Wa)m;Q#^=OPKUJaIY~b ziV?qe(gBL_e!fbY1!6Q+9zl!jk!#Z9@Kn;WG|EQVsKbr{>Ec&J`dRw(%Mf9o_>J}z zGcivzHHVa*Sjv?euYC%9ChcSMxNF}kXeKj+PY{QfE*K5~S2b=A$4}zPI~qt)3@O4@ zj?Cv5Pq|*8@z^w+=!^!*LNo0xxttBn`Cd*E_#;K1yYFGfyRLZ=rqEQ#}_d#M?gtvXrn_&eXR zCTqr1QW1Eb!VPU2qVK&L5fnh6uW#y523ljhj%KI5s9s7^nvjw!LH*#a=2JaKe%W!8 z(zUBWoyZ}TO%2wg`8-psQ!*iz*@laNcTlYRzj<|}K>H>7ytms>{RddR);EHeQLXN^Lx~0*v zl*_r^OK2=2bj$&7W&6`+aICY+zZ5!)+f zU=_e$PlqyQeX!7&+$P-)!?<9UVFsTqeJ1O)?iWqOyhIfY)$CSfxpJ#AUe68$!}>EO zh8U8Fv_yF(;1s<{D`MG*!vTEFJqFltdrK04? zTHVqAOYafj#?!+JRfC6=PqW+3#Wcy_Bf;&W0=fRRBus{N_=FX6Fiu5SyTJpG(la86 z6M$-v0FQ+K@+hGsnoTH$jz$`BG?MlP5R2ED;{K{~WKk(>;ohtbH?4=JGfyLf*v%RZ z)bh6zRM91xJb^ND*}6Co;lai-W7@DW z&(R2o6C$S1yA7sZTm&T~@jGa0)H^HC81fKY-OO-qg%kiUDWYCV6^{~1rmF8ur_=ea za%Ah#W*PP3*>SY8jHY@kU+%*2iMU_TnYi5-6*0(#e9Q9(1y!k>*nH@o-#|aQo_4FZ zQ4J|l&G{t}ApSoI5INiaN7UEfd;7LYIc4Y|9!{Y592Glxijk0yovwY7+-CF-zEIz+k3!$=Zc*IKL`D=lZHt}Ct4i-3s35r=5K)=Jpn8q8S8N(~&6iPDlyo?$ULZ@qKzR!-%HNzk{_ z@1vMa94_b`5RD8JwVXbn8IaA~c+C_7-^~C#Q$DI^!O!cz4)me%b1QtG-$d4Ns42-` z@{U#11f762`e_6AqfCyeicrVdwns=$atgBYVS(y^1kqZD(OK{ye6UJ;;y%mV54LBXyWn_0u7pVtFi(R2VUygdY zQ=AKHvDm(~cR2D()X&nYXnU8Qexkv5Wy`pM&=ZKk+ayX}f3y{^nF`skiP{w7`y#LJk0ck3%0SMMF|m=YS^ zr@>#ys?%!37{yi*$s>u&MGoAtCu=Zy>Fwzux1wL3QAMYfA3n9`Y$zmC;ahOCRq8L;4)lMD)Np9Z;=fr0e`ANyNNwrKSaS z2z~4JX7S`yZW*EL;HovCYz6G5amNd8CV+OVKwp@?$*QK6>@f~mJiWJaoztm>0l`Kh z@7IA=U4_^?+NqjHcadzuMxPXJYu}qJUv11^EP=Zf%epc$4Kr-ph4w2^L) zls12S#r4ErfLkHD?xBsARa!n}ttu`T10aEx6Bzm4C(obCV~`HnXjwhRGeqG87*7kL z=0kL$4aNpS_0Zt?96JFNKkwTWxIgo7Q|eJ96n~HSg#;eB^4VzN)rDip;7K(E(J(<& zE$J$Rc@wNjT5Ireu^%)a@@Js_EP<2N^JApnx4I8jp-KwR^TFwW`$#WC(kgnho6BnP z%e*OYf2b*eW)gqniC!{9L*+{7k-(+_Mxg#e_|tjfUu5+^y5S1+?*Ly~pP5o!!d-Gb zk*KZqLI&;@;4*$&d4RqkP;&O6zHJDQKA;~_9on4nd(qqp1V1xFFd#m_mmq&46bU#0 z|BSM+EkBF5CMkCqPK#%ooQ*DwgQEqMH8l+|Wg4gFzZm{ZS(x$pJ8(AerT)s}w^&{7 z=X!PJdMImO<`C~~mT?#W$Hs0bv15#-)2>r`eK>4@Q`z#B4V_9Y$Kdb6a#3tRu3NAR z0;!h_h9T|BbyEWhT5kL)GRu}4-}Kkx2ds8$Fb-qUsbU@prudj&i5j&r91gkPuC*5z?^&&WhUdt3oJhazeAIgAG0R9AIqj+*Oe#ThdEOa@7)Ycj)brY3ettszQREW z0l)9cFSRoDo~=76anO&}D*QOXLSUNIMIc4mEwV-_mR>~8j9e!nEH}+6@4Jqs?+me6 zFj#)WVD)$`@Dp3l5kd%CUuypqUR`#flA=h-deRROuhRlB9#T#hcD3207E4QYSuehh zQ@yr)&SzJ8eASzQ41m6YXzT$F7o$`^kFAmh3RO_hkH;vW7)~6#Csgp#`fvn^g;YUs z2$hH^pvsU-3V1hwj9bcS2pj^6kXcaN#w9NIXTYy&^;nY|goc1ZwWoKM5SR3 zfB^&F-JlnSE&xkt{ALHN3gxm2j(X5c4*zZdJ^#b6$ z6dWoxWQd4Y)CzXJt2*7y(I zj}KBp4skWNPv^65xfVMHJ9k_m4QGh%w^6ftwsKoCY=0{@(>waEH4m|l7gslfWf0}| zIl)U4`ohB_Vx!Q&OQ&4D*krU~H)&F3cizo&-QcLLV&i`~Ki2WW{pY5iK{_rjwCr_a zt8Sw@2D|CCT8B)EyTxRNh{M(KbUKf9l2M(VazBsx9s0Rq|1pnHH#NZ44ty%Bw3*H^ zUXXs%_8U)8-?3%??D6$)_hLB&1O%l%XAZj!3+ZLHqrSQj*&{KRO`v+RVyxs{f<%Ud z3YLUdRc{;bR7IS%={HEF9ca}5Y?c+G(Pa>X&~Qap*?jH|p$pwP9Uvx0b4`rdHc+ zbiR2N4AYftIQQ<>>Ad6Ifn7*WtbTrUIwoU^0{S_q(SHnK{=J|W0$@R$Y5~qfHn9%k z;nw1$*8UR{>Ln-Qv0FC>f#bVXl2yN!4jN?Q&fspA$QS1O@X@du1HETkFZ|DC&dT+x z4D#jo-3Wo8Dr1M~mN|f)-|fCpt;ahF*s1B#8yzt~6s}M~W&+kih}cqHHGqVk6n@j_ z_u1M03~)J2zD;-wY{32GDVJ>iz38*;2})lHW5Mf5J|>A;3&aOPj9~24x5`E?~`QWZzP{?~O5Rrd913h_9!3 z-R!6CUpO9d|JEHfou7%};K;}yek0)DdgQ0dn_T3Tit+RN1Eia07nFe}1&#M7!LaYz zyTKm2)&(^+_57>b3R5LoPQfdd$uladDoGLg-C<{^LqQ!aYhl;tc_$*jRHNCI(Dyw( z{vq}6;s39xDdIZu{n^yAkb-y0>cW-4je&)i7brWiXzFEW7ojXiq(A-fMO1~pa`J$D z%Ys~RY_ap>BHrb(jGLf1>o&hP5nbMZ(sYV>kNfdRB}!mltSnv6QkS`?4(OWf{$({$ z5}q}V;=gI|-CsrASB`!-3R;ctyH2EZTz);0PC-UfOhw652#V{0GF5jqfkbti6t$Lg zJ6S%Lbw%CJjERhM7^Z;}87HQSP3a$r|6F?Pe)6;;K1RG93k4)UAj^odt`ZcN%*lW` zz;0oRDx6}bIQ+d5sjs?gl(m6{<$Ik%rJa^wch9kfXZAdD2pbk*bR|wdy;T1Tl_quz z@j>3JR@0VFQ!<02gbAdhDZTyOBVjW0UqR;^0Lm#S}WwcWLb89;oi7!*e!+apk~s}3!q z<6Mm0PGogIQD0Jxec=PlUezGt4trIZ(6{Ro9HZmAkBc0qm_?Ma(*4IjzH^^_B3f0} zA9I1ffJXuS${;8Redx@pNZ_~9dn&Q2oO0ke@Z>EZKm=m-0u9>g&|W6a+4%oNz=Qh# z7J+8dEpp{fiqN=?nGMV1XB<-fXvY|uaT|CLw7j1Iq?3#WJ3j+3GRMCBo*-V?0NGnP zV1jJP0!`|HLLl2ri3-O-BCWK*>OBq?D}_7h%69mtUls=62PozQ@@R2y zusYlgtn5h+4h(3wmvfFESt{&X@LS)CvJes!hEtNp74MA^<&3Rk$!}hnjw)o2)pEAy zZcp~IT90ywAHI@IW-;w8Cjj>P%wwr7ilFOV+A?wo7;c%3ZTK}H&V9*Wuken~zln%y zV)))Xa&K!4$CxU6tp-bJo4eZte6`yXg9G+A4RrNwHDTmm!BRhW63HQz62)Ef)7XfS)I3G*(jh|Bshcb)w&iKcdKkwCxh<2 zrLtPZ3qHGal+%V|F*nS2>Xsf)U&9*NNyP7X>zx*!&GotOj~j442^iei|FRc%HuP!c z%wmP{gblF~9p(~w`ygYlTBOh4K+ zJ6sSYpc`(RygJfbIMt!U-^+GllT3}W{G=#95a)WzV?u93UbgHugq3NQLTrXi^VDCG z*zcEZ7_~gFQchvZI*3c2+5f_Ub*g3JhxeL((4h6h>so*bdyf%s4FGi6S${G&+Vv>+Y&OuSn4>J1*<+2k%h4+qIX9SltR{s3{ zQQ6xwI**VrW}39R309iY?nDDxmPy4IJFJE5W|`VWsyo4~nw(gHo0)NEYqRk_uxVRY zFk$6fE>>TMbvRr0x8rNV7gBqj^j{XrGT{${E7MZQF;WICq?ku5h&j2b^Mz$Z~$)&mzg4d3ie~ zdfN0Vrg;Pz7jtX7LxC4-e9;(c{XFtY3MgKtz`nS<-cyblP!G14+ARq@!HOMAU%{L= z;0BLoHTF9ExaL16ovRS6HKvq?Hs1^xxbwFEKm`#o4){ViMq;5TO|-yiR(NmuGFVC& zB-)-?RAr$lSZpA6aP@HB*zOmRhvp>#DYyd(=8U8#)_Y#6<(QOac<$Kv;7>l-;TGxB z@UE)|Il*jvECgy*)Bl9@pu{VrtPj0uCvPk^SVzm3RlM*0vn9;g@T91^5cS)S!*)9P zre@1X1Y2dOUmr!+62fllYt*;q@X(1gk;E z({MNhTa*Gy;W9b@oH6#vB2u^i+V$V`P9+SFbp!Qw=kyB8%q{TYAfBaUES!glABmwcu8ukT{HiKJ7wl{bNMhx4NK-2cUh zy=zA&vK!Sn!M_=hn$#(jM8p=7p;{|^-je6dYP!76V961}W|=gy9|5r6!SZ@td8tiD za5DenGIFtw&Y4VV>$Km_4O(mrkGScz3>>^taSX+z#u5dzf^t+dw_nkc;eXd1dJByW zFqRug(M%p8SJg!iuFtk;lp zbyL;fCY$XlP<~yK`rFnLoNB;sH(=DP+$g&n0R|`pCY&Inz5^#wu~@Hms_M z48}&W3icnwt-ESha^Uj;)8xG;HD{q76e>LtAv-_PuWvgNG1dOE*zGrBT}VJ?4nI8(qnwwyuPR=qnnHbOAdtJ8}tqw6X3 zvYS2h7CwOyS`|7g?~rLw*2pEj+;f~By(%AXTQ#;In_7oS3hM&O@g+6O4;4{=r`*ig z>9|ZrAIPItQzfA=c5Gx#%ru4=^J}&+T$y;>TVlb59cMU?6@QNH(CX&m>8*}=c zak3*-`qA<#1e~Fm1RUDBg40z41niI88!JuN{v(WTug5x02cL1>LYWh-+6g+2P4{(k z-O=1pt)ezbzDq}X~x1Nr}s{pnwA zbhF=J?}qps+NFCGkd0lhmkr+-apw zRhIGqDJ$#KdU{|#VLANR^S3B6RI6mcr?d+0exqjO^XXuiBktKn3kJ&yxS6HS+4ff4 zuu@+Qa3tUdtr(A9)6tRZx(>W17xU4EqQ29(Lj=!QBt>z6%eZ^+jVqGIZL3X&gIbz# zkC!hx7LkdJ3eOAp`3h;8_HvWOh&7K_L_wG#I)pc&K{B#VZeJS?u`jkS`@KCewD zNdC@kwV~l6TTwK{C*S{Ury=E~&9b+`?t<@|PGsUgT!ITmKvT`UE$z7W`6amGFIwDA z4*CAWrA)iz)ol9nDhVP2BICxOrHLnh21PLoCO~!Mdo||Rr=BxZ()wom?Mva&=lo5% zuYH-<2XU&f(4xyV#?Y48zYIKV6hNrUG&m&L@ob&9%1R03$zcw$E1JFohc8upBEZ4n zuGnoS&+}PanOnLOrua)mBv?sDVzN%7Lnz?b>e`<*h2vU;bT!i)->4BYUq!ydodtHv z?pfzzTA=0U)X#5VKzJ~Y)*{~h_8*#5Sn#{zhQ;(260bi$M)gMcDyp}4Ue(=@fPeUjVg~Pdtl1%>f9MKv{lnufe?atZZ0i2S z4S*#kz+KY>_x0Z`U+nwljeq|0wUa| z5s&_oya49(D`Ont&lbI621qJ>h5t+P2AI>uuwC$s3OT| zg^_Wx)ieYiqA*CVAkeO~+Bn3Gx5lT?7gFpuWca%jqgCBrC35wps`l`Poa>k7FZAsc zx4s6y>^&8(wN~%&@I1&%#1V z$2;X4RA2Vw%s75Ov(90?L1=}3g$bL{pXP7~&S-S|YMRF#{7Rz@B>pee`ytLaDXgZ2 z#(T+)@-1_e;k17@?lv$uWF=5>$=6~*cNh9R;w;Wr(Qxf+gS)TXtM_r@Z~rh8-=wR> zUC4L%@)Z0bv0fT!^cQb|^4$C*2h(w(wpG)KziLgY3s-TmeQT=0e|H(BCc7u9YNE&} zZR@Gk-;G4%(6+cA$7f#>U}U!H&s3P0hi>bI7>5!uE4%&KE2#wk!B_j2c+^!RK0@U( zPLi7c?*0VTFP_UNgiYq-n|FVvX9Y;lEczb~1R(<|l0vFb<UJ>_<${}YvUJruD$$kR z2dNlDXs-hUaQX?LBc8mNAVBy`6GsjNcWYPrHH)Q+AH(8XD)rs{PuCPk&Tk#hxo4nl z`t-^vW592{ygBT8M!>9XNI86`IPIV-$_hN~8Ts30j*N9k-s#HA7k%mO=6?y*oi5R# z9X;Z}heXK{=xp;8Ca0tq!2>$Nax3?L=}d&tEuBc& zwhP_%)Jp50Co}EN`Ul6Y@>o84SJ40_f=3*Bc(wpd;2}JtT~+Td^Oqyfl5jVoT_(-d-#7mG6n3_0 zj)sAum!>k9=|;aj6ld)(Z1dGHnw%Tj@%^kPHpg7If57=xb2GedJ+<(Bf8d+B294F@ z;a}FdC|(+Xq7!$Nm!`5nTto$3)U_Dw&VW7`6vk^bD-?8^d zzFk21Aog0SzOt%N2p=3u=+{VakeGvXtN$nwni z#=C=Y`nFDxu`xVu*92#yNMC`+6 zKoU0TEr7SJoFLIg^b@0{7QJ1*)8^cBy-G-G>h!2%K+7sC*$bD5$g4lZ>fg3~dM|kKNeF#Ll1ugsgx1|#4-=Jg9QtczbPMcoDiqBs_ZJ#A>j1i;{0`=} zk_NrVfW_$t9?@7kwaI{+tuVqB1_)Zw5kk)j2yU7Bg{O$htL-m^JJZ`atV)r-&@2L1 z6LCCuM;PIJtF4QAAhi1sTB|o_kmuUT$m-cY0Ql&_jYa0G66_}0B9~!yY*-z&oq&8d z0jm;XCa1x^e4sG*Y~Y$;t^Y!yL~emlK;1^ZNd5^$>9-#Yo8I(;di?_`LY-J0#*G}| zVuG@~#etTdyhra*qa5)S`q6G*4x-^4wgAKJu0M$gx<_yFIb1S&-d9O}x@w8FbA(Je z6YCZTA%ayw?zKxN==VL%$tB**-qjkc_~?5;6XdnA zA01f|@w<$OBI2yv-7zVy#PXj(~OT{g9a6?r|F#w{~*kU9DG@%O6+>3u(6v1@C<`Zp7rR73GP2Bjj*~|+479N3}wS7 z(~4QFZEWz5&ew?ntN1Sz@~TYA&TckRI(JP}-MSz!_rqx^XG2ak{e{Ur