From b99c7a66b395af22b9bcd29825c6dc3f49567f3d Mon Sep 17 00:00:00 2001 From: bao liang <29528966+lenboo@users.noreply.github.com> Date: Tue, 27 Aug 2019 15:29:29 +0800 Subject: [PATCH] update documents (#740) * update english documents * refactor zk client * update documents * update zkclient * update zkclient * update documents * add architecture-design * change i18n * update i18n * update english documents * add architecture-design * update english documents * update en-US documents * add architecture-design * update demo site --- README.md | 4 +- README_zh_CN.md | 2 +- docs/en_US/1.0.1-release.md | 2 +- docs/en_US/1.0.4-release.md | 2 + docs/en_US/1.0.5-release.md | 2 + docs/en_US/EasyScheduler-FAQ.md | 13 ++-- docs/en_US/README.md | 12 ++-- docs/en_US/SUMMARY.md | 50 ++++++++++++++++ ...ment Document.md => backend-deployment.md} | 38 ++++++------ ...ocumentation.md => backend-development.md} | 0 docs/en_US/book.json | 23 +++++++ ...ent Document.md => frontend-deployment.md} | 23 ++++--- ...cumentation.md => frontend-development.md} | 0 docs/en_US/images/auth-project.png | Bin 0 -> 38090 bytes docs/en_US/images/complement.png | Bin 0 -> 367398 bytes docs/en_US/images/depend-b-and-c.png | Bin 0 -> 520980 bytes docs/en_US/images/depend-last-tuesday.png | Bin 0 -> 562068 bytes docs/en_US/images/depend-week.png | Bin 0 -> 515625 bytes docs/en_US/images/save-definition.png | Bin 0 -> 294093 bytes docs/en_US/images/save-global-parameters.png | Bin 0 -> 84667 bytes docs/en_US/images/start-process.png | Bin 0 -> 339575 bytes docs/en_US/images/timing.png | Bin 0 -> 103700 bytes docs/en_US/{Quick Start.md => quick-start.md} | 1 + .../{System manual.md => system-manual.md} | 56 ++++++++---------- .../{Upgrade documentation.md => upgrade.md} | 0 docs/zh_CN/前端部署文档.md | 2 +- docs/zh_CN/后端部署文档.md | 2 +- docs/zh_CN/快速上手.md | 4 +- docs/zh_CN/系统使用手册.md | 42 ++++++------- 29 files changed, 179 insertions(+), 99 deletions(-) create mode 100644 docs/en_US/1.0.4-release.md create mode 100644 docs/en_US/1.0.5-release.md create mode 100644 docs/en_US/SUMMARY.md rename docs/en_US/{Backend Deployment Document.md => backend-deployment.md} (89%) rename docs/en_US/{Backend development documentation.md => backend-development.md} (100%) create mode 100644 docs/en_US/book.json rename docs/en_US/{Frontend Deployment Document.md => frontend-deployment.md} (93%) rename docs/en_US/{Frontend development documentation.md => frontend-development.md} (100%) create mode 100644 docs/en_US/images/auth-project.png create mode 100644 docs/en_US/images/complement.png create mode 100644 docs/en_US/images/depend-b-and-c.png create mode 100644 docs/en_US/images/depend-last-tuesday.png create mode 100644 docs/en_US/images/depend-week.png create mode 100644 docs/en_US/images/save-definition.png create mode 100644 docs/en_US/images/save-global-parameters.png create mode 100644 docs/en_US/images/start-process.png create mode 100644 docs/en_US/images/timing.png rename docs/en_US/{Quick Start.md => quick-start.md} (99%) rename docs/en_US/{System manual.md => system-manual.md} (93%) rename docs/en_US/{Upgrade documentation.md => upgrade.md} (100%) diff --git a/README.md b/README.md index aaa7bf952..18e2df8da 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ Its main objectives are as follows: Stability | Easy to use | Features | Scalability | -- | -- | -- | -- Decentralized multi-master and multi-worker | Visualization process defines key information such as task status, task type, retry times, task running machine, visual variables and so on at a glance. | Support pause, recover operation | support custom task types -HA is supported by itself | All process definition operations are visualized, dragging tasks to draw DAGs, configuring data sources and resources. At the same time, for third-party systems, the api mode operation is provided. | Users on easyscheduler can achieve many-to-one or one-to-one mapping relationship through tenants and Hadoop users, which is very important for scheduling large data jobs. " Supports traditional shell tasks, while supporting large data platform task scheduling: MR, Spark, SQL (mysql, postgresql, hive, sparksql), Python, Procedure, Sub_Process | The scheduler uses distributed scheduling, and the overall scheduling capability will increase linearly with the scale of the cluster. Master and Worker support dynamic online and offline. +HA is supported by itself | All process definition operations are visualized, dragging tasks to draw DAGs, configuring data sources and resources. At the same time, for third-party systems, the api mode operation is provided. | Users on easyscheduler can achieve many-to-one or one-to-one mapping relationship through tenants and Hadoop users, which is very important for scheduling large data jobs. " | The scheduler uses distributed scheduling, and the overall scheduling capability will increase linearly with the scale of the cluster. Master and Worker support dynamic online and offline. Overload processing: Task queue mechanism, the number of schedulable tasks on a single machine can be flexibly configured, when too many tasks will be cached in the task queue, will not cause machine jam. | One-click deployment | Supports traditional shell tasks, and also support big data platform task scheduling: MR, Spark, SQL (mysql, postgresql, hive, sparksql), Python, Procedure, Sub_Process | | @@ -62,7 +62,7 @@ Overload processing: Task queue mechanism, the number of schedulable tasks on a - [**Upgrade document**](https://analysys.github.io/easyscheduler_docs_cn/升级文档.html?_blank "Upgrade document") -- Online Demo +- Online Demo More documentation please refer to [EasyScheduler online documentation] diff --git a/README_zh_CN.md b/README_zh_CN.md index 9835b616c..91cdd0466 100644 --- a/README_zh_CN.md +++ b/README_zh_CN.md @@ -52,7 +52,7 @@ Easy Scheduler - [**升级文档**](https://analysys.github.io/easyscheduler_docs_cn/升级文档.html?_blank "升级文档") -- 我要体验 +- 我要体验 更多文档请参考 easyscheduler中文在线文档 diff --git a/docs/en_US/1.0.1-release.md b/docs/en_US/1.0.1-release.md index 9bebfcca9..8613d9352 100644 --- a/docs/en_US/1.0.1-release.md +++ b/docs/en_US/1.0.1-release.md @@ -1,6 +1,6 @@ Easy Scheduler Release 1.0.1 === -Easy Scheduler 1.0.2 is the second version in the 1.x series. The update is as follows: +Easy Scheduler 1.0.1 is the second version in the 1.x series. The update is as follows: - 1,outlook TSL email support - 2,servlet and protobuf jar conflict resolution diff --git a/docs/en_US/1.0.4-release.md b/docs/en_US/1.0.4-release.md new file mode 100644 index 000000000..f7b1089cc --- /dev/null +++ b/docs/en_US/1.0.4-release.md @@ -0,0 +1,2 @@ +# 1.0.4 release + diff --git a/docs/en_US/1.0.5-release.md b/docs/en_US/1.0.5-release.md new file mode 100644 index 000000000..ce945e28b --- /dev/null +++ b/docs/en_US/1.0.5-release.md @@ -0,0 +1,2 @@ +# 1.0.5 release + diff --git a/docs/en_US/EasyScheduler-FAQ.md b/docs/en_US/EasyScheduler-FAQ.md index bbff613e2..b55b0e241 100644 --- a/docs/en_US/EasyScheduler-FAQ.md +++ b/docs/en_US/EasyScheduler-FAQ.md @@ -28,7 +28,7 @@ A: Support most mailboxes, qq, 163, 126, 139, outlook, aliyun, etc. are supporte ## Q: What are the common system variable time parameters and how do I use them? -A: Please refer to https://analysys.github.io/easyscheduler_docs_cn/%E7%B3%BB%E7%BB%9F%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C.html#%E7%B3%BB%E7%BB%9F%E5%8F%82%E6%95%B0 +A: Please refer to 'System parameter' in the system-manual --- @@ -46,7 +46,7 @@ A: Use **the administrator** to create a Worker group, **specify the Worker grou ## Q: Priority of the task -A: We also support t**he priority of processes and tasks**. Priority We have five levels of **HIGHEST, HIGH, MEDIUM, LOW and LOWEST**. **You can set the priority between different process instances, or you can set the priority of different task instances in the same process instance.** For details, please refer to the task priority design https://analysys.github.io/easyscheduler_docs_cn/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1.html#%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1 +A: We also support **the priority of processes and tasks**. Priority We have five levels of **HIGHEST, HIGH, MEDIUM, LOW and LOWEST**. **You can set the priority between different process instances, or you can set the priority of different task instances in the same process instance.** For details, please refer to the task priority design in the architecture-design. ---- @@ -163,7 +163,7 @@ A: **Note:** **Master monitors Master and Worker services.** 2,If the Worker service is lost, the Master will monitor that the Worker service is gone. If there is a Yarn task, the Kill Yarn task will be retried. -Please see the fault-tolerant design for details:https://analysys.github.io/easyscheduler_docs_cn/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1.html#%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84%E8%AE%BE%E8%AE%A1 +Please see the fault-tolerant design in the architecture for details. --- @@ -189,7 +189,7 @@ A: Yes, **if the timing start and end time is the same time, then this timing wi A: 1, the task dependency between **DAG**, is **from the zero degree** of the DAG segmentation - 2, there are **task dependent nodes**, you can achieve cross-process tasks or process dependencies, please refer to the (DEPENDENT) node:https://analysys.github.io/easyscheduler_docs_cn/%E7%B3%BB%E7%BB%9F%E4%BD%BF%E7%94%A8%E6%89%8B%E5%86%8C.html#%E4%BB%BB%E5%8A%A1%E8%8A%82%E7%82%B9%E7%B1%BB%E5%9E%8B%E5%92%8C%E5%8F%82%E6%95%B0%E8%AE%BE%E7%BD%AE + 2, there are **task dependent nodes**, you can achieve cross-process tasks or process dependencies, please refer to the (DEPENDENT) node design in the system-manual. Note: **Cross-project processes or task dependencies are not supported** @@ -248,7 +248,7 @@ If it is a Spark task --queue mode specifies the queue ## Q : Master or Worker reports the following alarm
-
+
-
+
z4en?RPBt%RCh5!E2_}8s&^)%z_8k|z*~8 a0#$(a@wtzIhG!F}8g#ocrOZ
zwz#pluIHO2?k?}3B#b)F5BD5LLAXNL#R+0M*x7nBKR@4R*JPJxD`QtYr$Py)ti9iS
zzwL9
QV3NH;q?XK|hhAiojU=JE_Y?)oiO=&q`6- zyR|jjMdh9^5JuG~ZdA_@0Dh`e1&c42*RmEYsylFkFJpVQOV#4Lc0KnCClp4rv}JDG zd097EcLpU}1@oNQ2&4B=EAe9$iTM#sboj)h)MBpR+uv3VULQKwZ<;8x-d3xR7$OZ8 zi7Xv73Ec4L`CPPFswZ!mTcq0)!=oI)dFPTG^2S_Qo!)Q&^1oJqQJJb=|e8=n&x z)wZ^L-bQM9L|cTy%d#VLV!LeH__IgaU|S>f)Gl8-%wLeHKV*vA&-Um6P+~1akT8nE z{5x|-&S zp# YZUpF z$usQKr7HFXH8;~p6CWh (2F#jV{H+ zyF+eW0^9uhXjo^56iotAK28>A+Ise~>qi8y$a;VAf~(7lrdMcI31ekiiwYjS-k?dd z)59JIr*FYNk9`j3v-4BKyzO-YjJ;9oq@BQ1G+Z>Y#*(8^#%^6OLeT|qdo^ZnVtn9u zSzGDZ?+Bhr2UepGoYfJ#FVJ8&(8swP<%Tn$UiA>O5klDu8X~o~a0L;r&izwr(t+%y zZk32@9Hc%6T>=MR7kCn-n!ioGgT`RMX=%>L(Ioe(wux&!Zc*p%82pgK *K!! z@LZH>f`M4QB_m3xC{yyD6(eHrSiz&5=)V5C5H7s>iMYp5n 1#9lV1Fd YoPqRGl3cjHDjENfLJcLZq(G!RGEnCUAQdH!vo+g?5Yt z@}) gmHDFG+;DtCB$*r_ajPMPvlq;_UYY8U;kN(0|M%>T%rn50H zvx)-DW+0lB2BZ~3;P3zSQwfAXcQ+?-luOT<8R#YCe4Tg@lU@1Ar0O>|l41!0b f*(!O}-$vuJ_)#seyGvP5Y51*E0CPIvH(|GtjwzdvEsmIEA)l({fykW(m~&0_ zq1N0)cAknN6E$JObHWhzTpJ^SM**?<33mG*okz~F{RT11y#%TW!N=YuZj97=M3-)L zIK|9_`eD_(Xz)6kKQAUoKucA4y@Dfkt3|+az2hI+j2Mgg;!PL5?3ED5cH%8rj@o^P zL}!D`PoEJF)!Jwdn1!`0FlX(tw*PEEmX3b(-ZGV lvZeqvVoQY40-ub-doynDU35(d;_ zfXe;?v%fpI&thJc%cr $yun=(Xhv3ifFBHYO>!KP?q5xOSDf?wAN{`|lz5iZ%+Hdkp9#1>s!z%&&jZ?l%L`Lij2C09o=`d}F9`cRewVHH3?UOHqkDBSEO1{RDB zIZ$UEmj?L2I+D}Ju@{L4rZk3l_pj!VT&9k-^$=B&7}StyEzeT%%GE;Y9G|i4{ypvq zS|xPx8pEfGWt0^m&HxWFsCxR#UF+b+SI(|^Pv14X+ZPp>e_6j^V+On>Q%mc58Z0p9 zJ?hR2+&}uNp(5-xUqa_n^%4?@`fL+12+Q<9j>@E&bv$yNTMciNCcMQDx&Vr#0)TN3 z>4#NX9I11~3Dvty2;FvB+~s{m`3U7ycsGNuB?`K&91tU8_3RE&_#r`UYXf%yBS}^Q zQ2TH?mE#Xymqs*5ts)4siXg*)n8RE5CK{YKzbFn4yAEpxo4(@Y=B#0q3h**yZ4>Xg ziRakDs~%Hy+q1Z)_#tP ___V23;kqK}{=xqEa z5WN+;jF?HdQdHjpmH$lArAn+4G_v5X;9K|n`kfx5+^r)1Wd*aDVJ$Z;AKGeJjL@dn zpi?-cZ*PjfF wGX6Jc z`GU+CNT4C@vwz^eDbR8LCI-J=w@upqnfq|jIvP|BR+0V;b(vz>!Cr4xRX+ #=B^vQfz`%;EW{ zm>- huFDtMF%HkWS}O1H4ybO48chg;vD9k+N2ego)B5^90>u_7Ygf`F+oaV47Lo??hW zH^yA3btM4nO)Ah?s(`gWGmhzUk~HYW3CaGQmJ^a;@yZF8{aq#}3lmEsoyamQA$}tM z|L$KWJLZvA0L18tl7VHLKT$INs)r{^#)*;v%o8Wt|KE+{ _6SNuTN7|$s^kwc&Zk- L`PS+qK$gHnSh4#QHRQWGh$qcYw~Ja{~~8HGF6?pF3c&?x^~0& z6wW!i-ydVCr{IlEChs5r`To0*1R$dnZ(iX)d-N2h^d7V5n0=w s(-J_Fko>22&&iUW)Cdp=9SX6n{d0t*#1so-2ToTbF2!UIzC1MoOQGGX`NH;!N zlcMzv;ILxX(<`pITUBKUJ=?KO3CL=yvs}q$zorJ228S*^h7pV5zFSqjd&7fgGt7Qn zM+mq%Tl@;LdWqpqlEQy~qFg&|;O0MRhJ;i(Muta51m3-`>RghVktTEhez9f4&Lz=P za1_HMb*9H^y6kCbQ>f1yuC~R5wdj;#oH*LkxIe|}8b;CHRZQK{KeuEk6Y|Sb >cbu;RlM1Aj>8D@t{)9JM#9=)i;%tXmMo z(vAM5s;2tt0p#gUKW-c$cy(2*ZX?cBTIQn|6Eky@KWXXymHk883NmfXy1!0%Z+}l@ z($aj2s1-Lstv7L)MD!GR>CXq85ihyMOe~Cd;>>Xw=2tp7AQGZ{7lVGU(LW!{V4)9L zQ(E|87d`=npK*;`v0t}S_pO_-8GOWzU3g9z$PPxjs^2vKBNlwCfJAT|^o#kAM2Nz{ zO}KNqpZae%PvZ`e(XEyb-tE4CUHJJ5-Rg6KZ_ED?9eF^)4VS(*!7e08KLux!6Lpco z8v1EhymLa!r5Aa{u?pdLK;aXdLP2b)SIz=NVVU)ZtJsClfqWz&eLD=M{ 422L@* zY3H}}o=)K%kS-$-%~~o11s7|+Zw ()Lv!M5FT=Z q@rJvzdkX)QrRS+MH zlR^9TdaW?4wx6@?=C7PwK{9xTv(4h)?XmqVPMT_o12S%j%i3Ovk}6(YQcJ%xNx@-V zsUkGw=dzX=Zh~}~K;vJ=G>fSFp=#_ QnP$wMn>1x?UI|*b&9v$47(@(b z64=5sl{g+02rAi*jd$2mA3QTMZk$6fbdO6t@1Mveoe~0}R$c (0xB-c1>^W9dlqlLw7voU9l^>AL&KD! TbgtHm%u$Fs+B1%3*y zU2A7rt}I&O)_)dm%pi?tk-$|iA3W@vLiTHo+{q;3XJ-iND5tPqdhn{b(S zC}}BKN>M#0)Db#UeLS`}f>pbYdzP!d&2LNwnee-xy*vI%?!1bc+V{1oX5*$%hS0b; zR@m-F$Qh!0q5{tISHh580}nB&E_%lSlrD0Af4`R|T^_a9TzI)(SE-A!(PlY`I`s17 zYPHH-L^Lb3Gt@}d{Y?&gR%pZEZDVzLsAE;>b`fsTlr2$PWZ}GkyNA+-2Nw=YTxb-X zYDq{%P2EH(s-zS#a>kVSo7K{FEd(t*qsM9S_cjOii4Jm&Qmg18`$p=!v)#SR5S7~u z3=*v%3t9yL;4$#=@eQbMPVLjeHbSbw%_m%TW1=%SZJsO-VVtW9p;m`uND?l0JEkUX zv5Y7E8d~(ht)t9s2YMkY{#P&j$ec`1aj=eZxV|a`b8x*nC 9LDPlS@}#w=vf>1+FK`RZ&s-wmM#K+@2(cx$r6QY$C5^?>Br} zFFK#Y^+e;Zudi}h5AX~wknT%Y5BA~=blq``@PSL6`9^QJZsdiQ(=_*ROlP|tIwi=G zR-C2aVRW8;ZpVO=6j~n zXj8Ra8n+Fac26 u+jF%l%#ypPFgSWfw~_Z-7RTd$8b_iylcsgLjWJ|y;NBqPh2C6;&jd{0+TV-E z4y%b&gA{F(;HINX@uLoa*H=nlP-y&*ctLfOmKcWEyVih$*X9Px@-JNFdhj)fx(Zpk zi%H09(Uu#CW0uq@f#ZZuPQEdR%ujqx$=Avr*>2VdvGoGkBDj1G_jen}JWz|wOz}>k zR8H+;@=G@eDcHl^*QaH~#Nb9oMtx5_=_OykJwq&1&;--jOR8ff88e+5da_kJw_-UK z-pX8Y_>D?1qaizy-R@4eSIfwwC({+U`CEAYCa)@-A9w~ljrbA%;HsgA##hwCcRbu* ztPUfgYrp2XG?g?;kkeYVXsW&@ze40Y^5(aBnGW-Za}F=(UTEs0c7`^DS_X@oms3*e zoOD}f6U;jsFVyeZct-I1gygX2jVwg%*4vxJo)O6SCN&+mAe)t@mvQAPB11h*dEO>= zowzAWuXtR(C`vR_vH8UwjN=17T#D@0AHhPxjRUfPz0X~kYy!btrqEpZnROo4w6rvb zsR;FfQ^|>G85y#TLDbeCIue8Vr~eU@y2ZjG>r*@hl06m-TK1K%)a*@yJGP4ICwW%Q zI@)Z@$ItRlyyjkP8}Z4?&Yl7xNZ|my-%=A19nEZPZ0u6gQPd{PGSL|P4kQ9-LTS10 z&Fb7-`qbIR8)XjJxCg4sgT7jhvCInrDF=~*Lvt%4Jlo>6xh&cB=?c8-DtT0qY>skv z9TELc$)NmJ?T*=~T{E3prwR+VAZqenm9Yv-74@oiv4XlV (M!D3)CuXbip2liNowd>8bNrbSld?rlBCp?45DHN`MxWt zz@-hPNJ&o*r>QakzJCm|Z8BHv&Sz6Dc>)e?2G<<0*Mbz%3>+M7eiRo4!F6n@Lq6yO z2OxBpO1OqVEZl977H8BdxEtg+H1K>D5Ey8TTI@$r*&;S0p{mxMsWO{0ofBrFop@Jy zE|?RCo~4CGFN0i`As`(z@@$eHLTwY@ZnnW=-M=<*inmMKK@xp|zmrvAbqhVqz;WeD zlVG##R28F#)eTj?u4wwoTfXdXSBtjzzTGAL;B*PzwQKwhX1F#PZ9go3uAeS3hk0}% zoIf2oMJ&=9W+^g!+m?fab3J~3GPP!IZT8pjq*&4D9OJ%Oa7!N&89>y~g-5_hJb$x{ zx=UjDKq(=bqDV48p2Q-{tFTn=>w$6n!S-BOrEGqV(N*;F?(VpEtd|vS?Ft^kY qL-k9K{JDM`HldvmjK?Exz6%a>mC)gq5giyd&y=1nH1Mt1KzZmar~E*npIsoV)~ zn2`{uImH6*9rU9<(DC$VuUh01yrAG|!!zV&+>tDSGNrzq;TVhpH-HR=rL>*vd~Xl# z)QKP70M}@Igb44}gS$aEz%=?nHJ3p=UC9%vQKY-9!2S}Ltw@{U%Kni=Xq5}GduJPz zt>u7ogxtAT_wBmeSUW?8vvhw?dgFAMqi54QQqN{KshRHuHksD;T1|81o;wT7CWo*6 zsM#uC*6GQ;jNTuY ( Y7WjN=!dGIJV6s?{=6?I=+m50k8Ub*PicXCNJZ>-P>riic1O)AtH&$i7iADdoEhO zBkp$M@d?VBuE2fW#IrjOx%;$2QMOK&Lo2CVfw<`^iwy?+Jj z;SNj9tbs5`{zBNE%P+s}eroE2;6$HCp18Xt?UX+(jKvf6j6Z*7bl=*0yeE{ qH78ZdS>4p9jDdLq}m^TtX!=hsbe<^$R7nI{_It4=??S?l} z+yChtF6^Mv5OsH_>(%fQ_Y++R!ar_*y4G_FMATd~VF$6fl$~T<#k2JaX9AmyS|VXy zLyI+eun${LM~!W*Yuj3Pj+K8BT%LQgk6Q<_KYHz~k#p$S&858?FwOvX6G>DJL<=|1 zWM$`FhBEHHqz`%vvI42?ZZ4R5!gzkn+VMj1 YS{+O0;W+9P7h)Q2};9Z86;R5FQmhg4D( zvkzByE|MyA?A&i5TM0fe`(bFFr|a#V4*L9}Zldho%%3w8yZ~2$f9i_+;>Sj#fnsx) z{#h8cT%uvhr>Q=}V6e)|kZJLo2#_OsB+rdJC*xMPZesd;N0qCsAhEQ6%jU|c$gD{s z3>6K9$tO;vtOxFH%o+Oko1e36D)M_u)BT>0SB`b`s&16o+|=ylZo?nkrk$Z(Q`d_~ ze2L60vs7ZQn (E`Uo>Ty5`EaqAz=iA)!ta2oYXv(yS5&d>CZpPx6= z^1gLJ_(AUYuYrj+4~}i<{)+P2-g$o7Kk~4c1^$YZX&@mgn%nd{xQVlCvBX@l6=*T~ zWjjrZ-j8dSp5hTME?{m4n=QB(FFw(N$Q;d#;5bV}Wwv!ery_U!J&pV1rK;2tq&Bx% zJ6#pH1Inw@u4^~ZS#v2RNZ?_*VxlfOA)AA!)w)_kT)Rir@ukAFA}32?ylH}VQ9f6l z(4=y6A$8T6{+Qh-rk~Jv&?TB1NtxbMFm%pgG|KHFI;B}Tm|IqUL5LRi!K|8GWCgD+ zs%}DN^~i!_a9`BlZO+jVvnWA;Ao5wSwx^2IhZuIk+)tA4d{F_dXF7l4(XPM_^7iKJ zO7#)K@WGOeO>n=ik$>7;fSv3+cI)C;)ZGIRrN{-M&Ua}(fYe)$oYL+=$8(dCk~)O1 zJ?B}S>+Btno$~0w*W1;k(SBs+sc$1#83@#Q$ZRGr$=u~0AdBaJ&hMITT(KHNXf*UQ zmb*2}dE(DndN8#@?ztuXDy=}hq~ew`T`5Qvo1IQ^So)>Am-iq>>v^4^q_($S6;u1t zyK!_o7lIw^TM#Dk0TuYuKW9izhCAN-ZhMV~OJ$=r{;3FX*{Q>~>;8TGkb&$J1b2~1 zOK4WsZNYGPTGUkyr`bNRWt-A2X0jBT_qD6`Pq!u7iu(!QQ}NV{S%@GI(sj&t=H-p& zNF^qW7jiF@i@GCLjFeiqYuZW`&1vX2dw0Nag6tyKu2%xMRwCD%7N*u7$)^3Fz7>RY zS AEF}nUT9c1kE%H0_^pp2KiS5eiZ0ua?@T`{a7R(NrnqPOP7#g@b zF2D)Z$gPJN79LtmJ}X+A(kx08USJgAmQlFd*3t3AMIdLzoBIcQ%oMH3r?a`ufnTQr zH_4Ju&x+A5OoDBz7dOFd#6FJluk3?Ro;iErtv`*2G&zT^m8VcKvYutvw+$RpaF &XeVohgJ zzER@G72lllUV--EH4Q&vTAMRZq} ^FT}`MAwHkT!_2O*eEz?ttVmT`?k^y z69xJAPU;AUH22wAPDVRkuRb#w)!f;;ic$F`>HbUwI_q<4+#7O}874dPlv_f#R4A^w znJ9(q+bp~A=fA2;*_-9|p@G!I?oY2;$qW~rEg~}X^pVH}uaUn(J;lrCVEbsz`JJ^5 z(s5x&+sdPO|Gba~@hoD@Rp!p{r#GfLJ5a(_|0A=+bLOPL3#{6uKZt0%?8aOC&6f+N zrlwpP_@I~MJ)Me8({cmV6{*!S;9osy9y!jiv9cB;)8ETI(@{`RaEuk)=_ef}|8A}4 zx3! {z|a}>_aa%(UW+w8eNR?uOM_(0KqH~8ziYc()I3lY@( zH7plb)NRr`EIG7Wd*4tPd+y7AkZVoTa)0bqy70`g-S4MdlA}fP(36B<@mIvBtu3wB z%_3(LATjE#6-PFo)40hu>`=aP6;V4vN*}k@QwP2R`w=^ 5BSIA%E0L S >}y_qpgZn*Elw9XMH7o`fbqDRhnG${p`Vj{ z#4CTJrc|+boev6u^P*$smq;m(mD+O;l*eLQswV4I)7JV296FF!(73?78qtC1G}0Np z(1HA@c24MHuR%A(k!kj&BfK+9OS3rlam}bEkWyL3QW9@~d07S;SM}U;r?ON_%i-yy zlU!&*bd!U=OTdNY&QF;P>DrEOa1(kzd?Y^VD#k {VKCa^4XqV16VC1+Iph?01j(3@A}>jmvbaUmja3sUMLHV=X-=0~{ikDJcK)E%5fR z5|FqVWR`qj!EXOKXo%od;G4gE2|P5Bz;F7oTdSMwXv7#t1c=yNeg384>wkJA3;Zb> z7HsnY*qy%)8oK|}z!1AfFByOdj zr9ne)%lrPp?vVjzl(M-J(EoJ)CTK`n$Lck9kN!U==S?*gmFLB0{xh9`M{c|=H);yi z$Yj}kaBL#~cc!G{_#I881q=Q|SUM6GoL9~7INpJ)2qd$zvJBE%yGgO>Nn#cvT4=)y zGyYx88=(OFi`VuDQur7%3LG(f8Le0osZq`;eO(@mwa1u_xMqrGK@mW)3m4sQP!^ z{_c-{u;~5!_Yp5@N+CkK_n*m+`EP3f!ud~&FE7FC z;c&BaxPGy9>-aUb>cqh|lX!G1C1r;C-w1?!xA;e~r~VY&i~zU!)~;?Lg ;1QM?m}t9w zTIOHTh*`A7YNG4%DKs>YC0s TQy0u5;DaI(~jgToBS-|P1);0sPe zu;Yrz=>635CzS_SZUzzvDwIPo|KwD_6DG(tYL~Jq2*?c7X{8yacp?C20Fo)?$ABW) zq~abb*`)lQWTK2AH`Hz?NUQ~S77ZN8g=vWy2C)7|%mYHG4jEW21PDIUfWH@t9Ebzy zfDsUA`jfE%91&aZ+W0++*(fl6cnqiaR8v_H5o4^dwS(i+jO(L$|9~pkXt`GaZIpN~ zk)^+DV =|&3+C=7YEq>`GH#+1AA!O$4R>t+aMj;MGk^PHLtk=e6Et0QF;Tfb& z!Jon6Blw5DDm0SP3P+I&aD$_a$W}t*2}h*Dr8W%dhA0%K%c4c0YKL~ B`E_roGy6Lh5OoD-VVf~TPz>utlHfrdDsvD7gQLe?141Xx!bd c3$qGu8(^B8>Nqh#mq~C*%nHJ=LVS@1Sn*i5ta^u>BSv6FchF~Emv}2 z&ZMUL$?~{m`IL8t!xc{btuQhVLJ6 #1^@s3L# zOS(%)r>$THalm(I_WA-R<6RmB& AOnHC<>wSm$jt6Zmm|7JI+@ z7I6A)q~8KqDbR)j#NywW^^-;HdB%FI8IWio3v=))AaVIImSLL$HnzoT2!HwaZ$msG zXoKKyQ?-0klS2Z)zVuo#g#Lhr$t8gwz^di9Mll<}zYze7V<5!|6H| Y-=+GQ7_pl`sQamEG%G-@ z{6B9^D&WrgH+O_H{Oj#8TYi(=kY>aj?ZI7R05H06?FQs_l5ac#d>>)_6e*|~Fg_4; z2CzgC4C(TcB|pwd@kld*<&= Owo=|)sWfH9#LY@xWYCDKvBbt zr5(w?#TrU*D}t6LG=w!IJ4ZT)%?o)*EfQ x;n)*gNX`#S6uKJ2qB-TCc%1wiGrORxvgYq%gQA zc$GktKx=Od LOenQd^ti4mMbG;5q|vGxJi}arJ1f#7oiDjIFBT|<#S1} zLb7NlBaRKaHR&%Z=2bK2h2u`fG4^rxVL+5a{0% ;&SYwSiZF0YKNl+Q2mYPyDx_T)$~R-u$)< zxP;Pzg8S_T$!Ew_SHI%9G9{=jWK0Alv}ymwe# 2R29*QW=5Dy_;_Z#yWcXp5KlPNJ~$P@7vCeEl3GKt<6 XUgUx30kpNdpUb;Jf_)AgKadoo6ztlj9P5L7BkfYLh zwejR(E}|$q-GGV2Z7434li8gasQ_(OY4)+ecY6?M=?;#)9+?*D!yD2a_o<9bqfUQ} z0SUbXOK1XVTs7g9ff3tCSFVOmT84Zd#<5Fvb9+8=Ub$lDXz1j60Dn-le>p~SRCt8{ z=UB>-wAeItiYjg4r%O_jWIOO3$hQADmS@a$5bD*|(b@xIyS#>u7;cCD2n!BZ4!1Qa zo8_G&UM;RT&pK=|3FL?g?~m|JiI_T=vdJ{#u)FE-yj{6%rse-`Ok=KN-dSU8FqIc7 z(vGQwc|`N!9d`DoQA(FqMq^dcP_?e4;59we?o_H#%A|0q`~K7QjL9n%pz-P$bC90o zONEw@N$*BmP5D{#yLf!)T1870O-)KwPYbQV^ii|3anP!LNk((2 zC9AQ^`n?>1nJuFnORv_2#3kR*NX^9A X_fSgf zck?f6mNm_;`}fD)D?96m 7+%~=|ylNpm;h8@T zJ|w3FL EFa@U acOc=I1_ZDJD&_3OpkTz?C7@Ivm9C;H5OR0Rmrt) zx(M0t-At^fPkmCp8C@^ttp%=`xH(@bud{S&z0wc+UYr3>IUVWmbl2VkUz^*WH{=LM z2)&Mfx{Ld&-;C@kY#2Qbhj{jTa%D+-&)zD(IM-C)$#wEsWpQx79#n64uf7!DJ#r`W z5PH<^7T%2MR1bAq;)mk4ymDUMZ>QHa581hO-@3aUdjEYD3#jLd O`j+jXclmVpIFiv1>2S63ohd0BeDp8QTTPYfUy_XZ~_7OPWE3PPzgoS zYY-5A5D8%cWdP`TCzKnWSXvdf$~Eb6CmX6nTpnq-V?wgWJkN&HWvAIy)`l-fy_uP7 zQG4-%;+UtD0=fvjhum}zxXLT90yKj{2^j1*bP&`l3XJkta;DwUk@1mGwk~?N>%ruR zUQ;k~{eM{q#IbhrZL*6H(mnsOh(X~Nv{C-e7DqCt_2}{ udMaTZ2PCJ z1HitQ(LPb>gZxX_r`5l#S(2)i*#70kzsdCoHh$Cl2LBH}>w& WJ^Z)9P z{`<#(78q$t +b0vgwTz!9FUOpW3M`dXr6HaPWJlHSM zA8r0iatey%;t DL3 zI1n6GhsgR3=4J(Z;xzMxd{H$TBtB^pkD6S=_Bj*kZ{2{vn#H^8S(nLwIZJvV1iO~k zsW4WTQ?h8E4b?kKkdq`Tf&mpX#Es|f+v I;*PCQmdru@otSpwJT$`ms|f*K=r|H zGx)ofYe^FZET4W+V-qYSNfk7)2X9MDnO&t%=U)IzM4{!m%ZZZe|IuF=5I`a7W{3gH zT#0aoR_6YE4PC*;q@vbG<6w$L)gaJ`qi`e&ouk!%iLx|*F5lYs5U}jS2L(KllfK~l z9Zx#i!~7htaT9Vc>whV44E`1 mzLN{?*AD*@TKzT%pv `+mfez<=3T4}_^dzf*jm8l&N+>DAfU8gLhv4Hyd9EX4PBByt?qbA8$6|C?)Z z_;WbWsfQP6#Mu`~a+e!zVTSg1Dk?b$(`KSrB)N+A9L9NrUP#x?kcjy1A2U)00Py4U zO7nT>ZYRtX?sn4xJ2UI+cxhU97Joc>G;-ykh5Gvq?Dge$G*n{baVKktBF~S_V}=ji zd_VcIu<)j9T`C~)?AliB=6>i}Sy_!7I2oARGr+^c2O11k70ODFDZ8GMfCp7p7W&8d z6mBf7u~iy(-u8>=e|~uHgz>bCGIzR+9onDHr(VA!g@`3Thy1tK{9xv#{2o4DT&((s zqHz1ZJS->`^*h}bW`Rz(4V_M>4b^tDgXO)+uJhZq4>^MvMA}{S+ut#I$gbBHoZILj zuIHEgv)%R^B)*SdVr2IQ|2KH(dqAX7ta|esutA|i-c@y!(~=5>20em6S{7M4OYRxy ztAkZpM8p?)Tw`w%7^o}73-&ZM1TQu%QvR`=bA!`vh-N}WL=>r2*7MC4)(B8&QJn^+ zG68FxPiCiE0dWI*&-SmbYAv2>!?f^07LwhjR1rqA8Wmo2dQHlkQ0ZXct~xq8Wl*R< znRpnrA2dlcC-7qlyhGL=a0|rY-)^QhJ3aHnqd4y`-1tOukL#hbU}AWhgal`H?4Pcu z;C=_dJtLz{^U(ZiRHX;`y}9Fmde%7vVH(G;dy##y))b6Ettt(eZ+E*2W;XMUXZJSm zyXcsOIOGD|^vnVnx-H*7O;R?D9wvujN`E)_1JQlU(MfomnIjX=oKo-w2Xu4rtId1B z+uhw=Fo{@nu+tH}ar})P8lV8?IxD#5_ROveuKV4!%fQ6@D0>s0TCLJr{pJ4yrZW1c zk` =}qR) zeJ6g=&uX &t=&OY(>PWvn`e6E^vZh%EL@8xwf;AXUQZKv}VS z!JKQqasNcbGZCZQ^fk#LK*R%-6)_PlasY4XS!~Xtr1g1GkB^U`tGgfS$U|ttR`P9p z6|R^Yn5*@=OPk#6?ybw?+N9$p7b`R{7OOPSI%{Y(=TUUMZdz+xH`1;zn)$fz;@!$H zH?5@gx&3o ^aBJ4_19#H-IpdN3lw zLDMB%Yvs8Ue{{Um-XrgvG;2bGT|mEJZeYde&s#J!Uut${Dzr~&aZ59Zh*sX0F7ze6 zGpp{4mW=pCF(lLBbhFET%(MW%Zr+XkO$E^Hp-$_e7;hGMFqS+#%{RWRON`{C%|JGz z0vcio8?%beQ^kmd!Bc6$Lx5p>Y`m*t+lGYvgmV3-;bykSov6Z8*MQ}SdP9}b59)cK zAHqGlrbq{yvR<81M_nJU|KS*Ixz 7#)jy3^T|DSFi9eow+Q=-VZ%h>-*~aVI&wg z!FAPv-y%nXo)zXgMG`qLl3oolU*dZ*c$6<5 3e%9vqSIey)+g7?5LQ5^dDjf7=f}em zEu=OYQazKM=2{d1*%;`4J3+#D cF4{B462XKb5mm@PX zxtlIO7$7}|Nw(?`Q+K#stheg)F({7>0?@?#SQ*%{&IC}6cHC`h1HCgdGjl0joZvw@ zou#&%3VzX)kA2KR5U7G_HCe+#WqXrPnm!%pPvwPl0qeH!A?U5_I-fPs8;EpC;5Vez z)7*Q#qiTlYHR> -{#@STL^^+n{?7`y5ViZJ+$_v}Bb?#8<= ob3IqAQj-d(VWHA_e9wyR*X6WzP14vxSgWi($%+|B>aPtZ_gC7J?4K7!mh7Tju&5F560BUC)kZ5Zzou7*O5s& z7<2771sk7LtAf(9Er}axVzxT(JpiACgeI8Jk6=IKXYz5f=Ds(h_qR<7E;l%{!_I3q zNJm%T5Gw{S6OT4|F?!ga&8IlD^DedD?wBI!#5tKc?`OSVc(u5ksov2rq^88<@}2I5 zxL+5vwsKVb!E7{v{R|L~>dnz=ZbzSOC}5X0i2xTzZ9u_s4iXG-9Z5V^4EoS$FXCJ8 zbfbq|JiHu#9wEQBM_X<&@CMuj9SL?r=n;AYH9D%5sZo|FHy1a3&KgU&32_L*e}`GF zEwyn^bmTC;o|x&$wyk|5upYa<0|0ae-ATlMQL6_vE(ww|m xU4SYQ&y z?=F6fI)jDtV_OlOzdaaB8gxq&Ezqgd*0lxG0P8^NxbEw{P8`T?bfz !ZGo zmV>(UeSfx7I;{p=EC_+h d)R-96BJ%;wsKvzbeRql z-GKd%+Ts6Aa{F?leJ6y_*Mm~ZcYlO_=VsU~_!g6nJK@=_h!7b79Hk(5W9+4W$-M4h zRWmTB7)euOiS-i=U;znhj*bK?*Z5tVh#yoVnl-QLB7G=j80^TFCuXJKx|#-yDvr?~ zizmB&GFPEzLKNSL&8crQ%AoZqyOenh8X&vjVRnTo8{a!f9yDYf%u&Wys52enpZ Z1yl#DKw@DV2kQ?qu+RjH!6eZWl@HY^@^9DD!YBG~;1J>S!TaPgCHPHu04? zJ`P~84I}+!v2xAOp2by`0&*W5Nird9Wd&fM)nKlmPBjHzIYFDNW>IXTq`ORUSqw@o z2*~p)I1k<0Mz&fL=a}W)>lRZF|K>hO=^G{l^kMU%Pa X$4|bI7 bVRt_Mrei0xV}vlUuC`n;3hz&2$iiLTdHvQ4;E{IY zx2iMp=!B6@?YY*cM4TFj&(x0ZBiuu&bP7ng=$7T6UcnFdMm4)jL;&ngRA^*vuO^4A z&(h{vj21C?3H+Yu;#$$cz15nUU*Bbs)SCL~J(Va=yHrcO&qgqRLm$}p3!4pce!ci_ z{agE$FT9u!FAmQbu%p71%gq)^tJzxh_%g{N;@Q0@o7dZQJvZ%c{V2$G;#6g41zavf z2AA!W1E^u`6uGtxC(REbNh`ZyqwJRLd8y$p^r{-KOgfzz%;<0O8UIR95Q_-Zmze1O zYvy}+_feyMg$r=hZML;h@AlDIu5&j+2d;N|Rv$W3tX&@n(Fe< e_*^pl*A^U0K|`JD?(^YbO`F)mmr^n>_b%;Y{Ue@-WOPjF?p+py1>NF=ja&2(swa zJ9!6tdHoNdgQBHigGu`x7 I}O$05sI*GA6?we1ndG?27^E=hHvg`-{GS~J( z4u-B>)^u0Ws;bF$GMK>G(<+tEe|&+ !m-VH{+p@Ko@o*X=_B+kEZC zkA3si4|AO)M5IYtG!M$>R+4~~eE5G%ugzhO38ckmT0)jUvxSEQPsUxVC46QHBE+fY z<^WY|mshGgXfL!;H3#Dy>+S5Sqv;u^jfcfRg2in{|Hx*BG^vY12zrU ENYKF9aw7jryImF$1Fi%t0&l*H< M 6H?G9l=UxlcJM$5$gGoS{G*OJNsQMwpBy0(e2};@_O@?P^NU_mjXfZ z-};6L2pj>w*W0f~>TxH9+i_CmXst?z%j$dC#p=B}34=6;Oa}!4pAS }1pcwgNHD zZ%qoj<|y-_M)-7(%htD0zLb|tGfVakhe;m 3ta6ZNT`q(q?uVv+o$bLC@%T6zt2Po*oDh8}$wU>^J>H0*FB xI`lnH4ax5l@TE%Ym;E3;!2XimB-_lpR`GX;8&iw z#4v@mnVOnfM<^_?FA2U^CB$|JK4Vt^Ax0zcQP^2zRiUK73w1U;1P-ihcLbOKxywnX z${C$5n-#tGBh*ksb$)Sk^E*%FjlE_Wl(fW%DyoeGiN0TRb2A%LOC=N%n=??}Hgrza z3ORCR9(or!-JoA6h?0FTcUTB+DRu=H9uwEZ1SINqI$B)jKrDyl@QKZC5Q=cO@%+Z! zk7!Xaau^{b#NtksoCwqXVo@j^7d?XtdyV;NI0~5&$6eTOzv@?lbp@^LEue%BZ$!? zZ_<$$hDa2@ktG;piK7qf(l^`d<)8&pomT8ZvGZkrj=t}#x)V>={h;vJq_TrZO^S2# zYt)dzUoFhdOr}WU1PCCTz(y{UQCAf %W@FSBcN?X)uj&HP zSUMq&n>|^kQm#4xg9n3)rgQDFC{E(5=k@He?0t4~eK#i;T%5Iv$r~rWWeRp11acKC z&9t{V+Lb u%kau9E;iTjeWW|YrUC5wB)ZXq1rLw9YSO> zldPOCvC;0bt<2=>!y4gk;6_VMv@hin^VB(#p3l8a%MV+n#&@|(1Uc?nE-zA1xQ!cV z&3J5Pga$%@hc7&lRN5VNZrl$+s2AMH_ai+oX4BbQ$S|76Q*E!870exp%w!v_X5nHX z;dCK}V4V(U4pCB~zj}2Zk5aE{FXSFO)ZtJ51i>A1%_+bhmb>R8JrNz5LT@V#R=raj zCxbXhj7zH=OcP-R!mz}rFtvK}j|`zXtWaT%!ip0;6FI@g=t2X)^NajAn^L);Y`~^M z!QxUSWsweQ`H5#uGpXv_ODY2uO&&h4a&TDWy+yhgI$NV~E;f~puq^Z-EWC#mm#|_% zs!}V~xWJPzK!yretk(*QI2VD^>i{KSE3{aVg6$QkuP SJE`o5JEUbV;hiAL#tY|ko7zBuLzRB=I4#Q *|4?+UQtJ(~D-43gQ|_Q!!{4arNG1sR69f1O+L zIG!5l7YZWjX_5xQ9IRmMv->*<2M|yI>)8ONAUYy%Ad*-lH_>dL?M4?qWTGf{vSji> zAfur#=lzZ>2TbQ*_w&L2G Cz>lE2C(6;`0}jbE8got3_UxF5H(j1D21MF3Eq%6bJ;_fr2{fReN>xkqU!O zo9vIFZ>agBkj#I_F1oEK{CcjVmh{4oZkT!Wua(uSH|AT(qSVMdJTDfK!J~Rg0jA}T zE%6s2YT}nc^Gc9SH`8J|?at4V6(K9{*jQte>-_Rk;J>Y46s{Jim-^mOW=LHUZ1x&U z-H$iEhf=KaE~R%ckoOuCK%bL6E)+1~kzmsmt`)23i7HzxO*KJ_H)Z;7p^|9wd)M z$e;a@Kkr5hKggP1O%g@2Xk{IEu$*HM$azfaYNrzHOUKD;F>Hp63!w^4Y>eJJN}w}X zzfl)cpG`>)|7n>UoqndRwkmc29cYL@&%9Hmn-fehzC5ac*jVp)F(&!5k?Lx!DZ!^0 zsLB d9%gRPu)umDomv5e=;!fd)V7UDG_ z=#`;<0hw2sc@=Y9d2cfYki|+c)gqY*Y4L#a_-wh^;d;JYWF`vOMi9UEC{DU@9HC+7 z#JR2!83sqg^x^fOX)0Cx*!Bm+jG}QPwRxrx0Z63L>C&5wXafHBMf@~rDH=sN$UT~6 zJT*yt$d0hv pEr^_IFqKbq9RnrkXy*+`il z;d5rPj;Mc<)Qw4H7xeD7-%%{}&e{O%KPs=vtsk`#j4(5UQ)6Gb%%5nn*@>YLuT7_l zubsa=N8I2?KHwZ>HqDnRnHgrvSuiS?=dYS*3rYVuS#TL*0i7D4vPtj4v|NjLIFzF2 ztwyY(r|1|am94+=7K|T5ECI*33R$>({7JZu1elV3EjT#XTEAtLm>$~a-VAYPm8VF7 z5Yy|$qAt%botSFpygFKco%$NnZXFGu7xOipavtI*jw-F&6?shjA#h25iCMDGGTOfl z-=wCJ8A|)>qL8KbY4aZlcqD4jm!)H^ci@;^9)p-pt;6}t^HEmRR;YVj{HT4)?H403 z#CT%Y_0Ic1KO;7<%uGy!XT@O4hoA3zUWl0;@s1w))yUuI#vJNLysSQ4Y@p? 9M1XE(pUjUL>^{8C=xEBwGuG5hj2m;EwpBV_CTQtgWYs_gbWLuhmF zf8@hMG@Htb@UGhTK8n8B8GV24<9ol1x?cMH@Wey=xz(N2eI(UsW7|g07}yafGDV7W zzoRX_gc>Z?g%UB57>C61H$0E_BN0L}6_+ZA%0>{P&|ibM5~pIp&%t1ZDeO`?>$O>u zV3+i7D$HK+-~@XAnYzfFA*YlSSk){DY3950HuH9^U=`TO{>6y`mW=zBAVg3J>{mga zMuyt)sL{)+zbti1vd=689dJ?ju|N)rX0g@j$%k0tK(qcvtFwwdr~}wByp9Eh(f+>s z>=zM?gx^9*$KkVxrJc*%T3E aS6H#HXc2c!vG;TVlnk$H(7*uBWtXoym=q zl7$q0ahW5h{VU7CAqQ{2%M;nVn85ZoY{Yu_!6uHyf{9(khXV=UUNH@Sck~7Yns}t0 z&6%E88O0)Qc-Yl8rb>8}5J{P{-of{86lfd{k`1uuh4h?i$~XVR^g84=ayk;xMZFK1 z2**SizD4|OZSXf|y^gJdLTvme5Jv_ZnJ#I-j%)`1zOv)vR~Zc)qfXU5+a`bvF?{w~ zXq-W3Z|8XsQ*U^PD5?jE_lu(wOJNslvX~3zCrN6P^fsIhZwuE^(e0kK1|LWtogGJj zv|W-Cuk~EoyXguQ8>QTzf8Qbee4^AHw(GjFM4u~KLHi|1xYV;MM(E8-Wh!;Tsu`3O zy?2EJElwGPTn4y8MUpR#*2)Wool#MVXHQ|sgsw2%_ydhCXUo)4ez3%=@wXeo`nmCy zz&Om2EH^DH;5jiSD1&!Z%7nHN#W8c GUm9#UWP#I?=0Me4N>=wUrIHljan?0jscI+7{7bJl{RoY zN$VLf>bWi+jXWW;lkq|R4l`&^^7>@O4LYDPhe8x1=der0eakrTcn} -x39Ox9dKIxhkdqt5wU(v+VzFR9E0t3^KZ{Gg_coIjy z8Av4gobRV<|I~gjqKy*M6+F8+QKmquns7(T$((FGV%w6wJia(n@$8VBGVnf|qm3C? ztKQvcy|cC7#@@&`9W__O<8#ow-#(!f9Cd}ZS; 8EVORQo*8d94%L`_9aWx{d5! t^U9TzvsSy=7CX_i45*f9 zu7;=h+!$n4e;z2kGkRQ2*-Q-@`98kyP`aAx)M-{nG<0_V2R2u~3t2t)2B`MM`!R8S zv2;e8Yb#j}E*S>ef3Rq cUYxS*ga?{w7>#EEr;~$bpl;$jn)cA4 zps<8Xxhf@`?y 2!9}NCnz2f*z9){FH zogy1OOE(!48$YZ2biO)_SMYRxj+XE|i~b(3Co%d_L2)%KmoZzd9Z6T`G#uSVax$Lm zv6hisLLGt`6&Dfz+wz=f{bDSLH44M6DQQf7Ij>e!6*4iTOTfKs)~to!tw PBcbdTilg#F*5F@4Mc zH8$IIoO|s+%7|z!NZ6IfkM}=NVQZ&YU*xB~VGq #Ib@aLJx(0Mjl6a$HPqzKvp}34q!bI)6yAp zb16i(bWWb^R*5M1cgh;F{|#>j59A6I7I98uX+cR#@F(ut3BQg>hY@7#pe1_gXU299 z7i7&0P=S>QRF4Un%52{#Oj!ng^lnw|)=01Ypd`&=3HWK>>x4%jh?ODq)ueGp$I>x2 zqChY$FBEu)uYSY#Erq<_=3W!c2d(y8hv3MDXGac4M?zpA5k`}i?{(s3FP2gf9pKN1 zuW$fA@=}_tqJtq3W3PRi9QmQ*>iL;P4(ed?9poqk%CrfEZ6d)a;G(>`8; ;3g*`)BBqHLHy<+&hl7 zOw{iV;beH69mHgYQg75nMKQiV u%YVj^S>;QZy;-86NSRVYbt$4H%J9mi~ zd!A&{KEbC1y;kOZ)dZXvv e0YsvR#%cTL~X{v0*FwY?KHdxfMiTlQ-|Gty<9XHzO_`SR~J zZpwFfkfM9qC9aY~&!}F6gEez&(|bSu_}Q2U)IwKnX%!Nzzs NN9!0B`+&XNqgfH7zJLLu>@tzp+jaeyBb{LNV{Hlg1S?DSGIOD);mp!8iFIr{KmaC+h$@}&h2~6-;wMj&B<=s zXRg*w qip$1c#BJcMU{y^H~bo4+enD_o%nibU$2QcA}96VKJ+>qLC=l(X 8tDV*cvb;N^eh7>@BASBNREv zg|y4KNx{(6Ta-rk%0L7YhhvjC#S-Tijkq~xp4<;-r~IXte0}S6Vat3#8?G2e_IA{n zHRxv< x>@n;9L047q{Rs;W*L#JY-di6ktZ2xgUCryf+i# zXP^E`7~g)qsA`L*gL$y_V)vi80VIgyb{Vu$^1pIq{@>q+4!r*s_%q`!l1+fNLEnKz z%H)5^H@cq3YWHfZ?Kx$2|4=wb4??T~ea7U_t7=vDZo&U5wa&Pu3tO(ZB%tKtM0*w) zg&uXiUJftIeXLrA^t}>#;k}lW7mlj)yd&QsFe%XATdA&n80gA&QyC%Ot;rdG-h95B z h#)Kp9b;%NH7!-(5YZ6*QB)yLOG~k_H!LTjgSZECAlUddk~z7Z zXbchpt*ZZe*gi3;RLl~6D}27xkImo7O87O8>GJGI{w8eL>~Wi0sZn*VDQN)C63t8< zOk*Mb=`8jC$Wptd=(5#Ga?^lZX=X0$#OnR=ng%yz^43Y> b@kX zmb37l1f+rC#<5WmyDuz3lBaF>-?Ybj!~%om!z04{nFXncHmQQH=l$xLqK1D78 ><}dRGUEOaI!qr3$vZCzhpFB#Nc-{ z@6(|upg-^B4t(U~MKb(IAOpwZ_5+0O5S^^LxNG-B6#-`|5O*#w8&U5QI|>_r^%szY z%gy@9gG~j&1l%6c4{$3X0w;2i7|VacJqrg8vmNLWv5q$#J|*0?b+Bb}xe L<>ZhVdh_l3 zM)vlUu;ehsBQlKG72Ez|oPu@R{!xy5oz?5h(f$WtWUKHMy}i)6Xp7R?IBJeS-~E_N zZ$GjF^${}4zH{WQbmoDNu=iGzjZ{a>AVa#6bjxBYCVrb+BJQJKarU33p9?<)V@(O4 zLSed+)crhy7=DAU8(G$vBE(Ptf~5%jTMn0lYivTDYmt}(M%LBjQ|DR+&~Wpl0$Y}? zOQ!ey-{fo{F7;pr5#4*wldpwT&y&RF2d#`oMjc>&$g4q*?{_wJu{13EazDm;WnsI@3eXbKuTeV9f(y+4)BcKVXZ zKvTJk4=yusm6{k&3iwFb$0U@=F}k=by-AwMU uQUKAh4{l`d(v1J z?L3~YCmf!P!T9AAGJzlmqHD-EZ$_vlL|y{=E;qXeGZVW!&nFZ{9K0X<5sdV`4W3 M_0I5)O>4DihttdaieE_f2@dzj9^X6)e>#noy#UrkJ@gLB#kw&7w4K(j z*Y{ ;1a zpMJ?7#a8{;^0n?}>eNO_4arUa%oGW%gI%pOq5C8?*?--_W c@1n{c?Xm9HAl69iE zpOKfD-N!G|L(F?))m<>YZ%1y1-g!vG_mu@Ubz6 qokj^Y S$tk#G}4@0(YADS@9z(8aw(xSDVsogl66i zq05J({zA`Z`*`kzsORWWer>hTyk9oh%v$OV+Tc|{QsNs;#9SN$nPLlgSq27<*=!9) zmOx8|f<){d;bWnvg2nF$6;|||mM79SGusIDE+@x!Nt6*G{5T*6*qAUiC+s3QP3jho z@y6H0#rM$kExF8C!`~uTIZ6{a$las*I5twA(<5TA$JXC=qcjf;_`~4pevPCmbwTE> zrv8e*H}Clq>lHXUzy-QnMCK9dOs7FZZv-&6iY6Fn2}SvR|6m=86r7G@eZH_wmN^x= z#|{}ln}8O?jD%(?EjCwoj3G0&H<;tKlNi-ov;&)~b+bDJPIiH$mcrB`xw!+y4LQPY z%3F &S;C^&EnW3r#o^ZP}>dps%5D%E6zib5J$VYd@e&SM2G>K2qD zP+*A^wqVooG8h91kT>R_`u7!@AkYe{3;y(`7dgrM{=RvR>cVGmT2woZMflsjdL=VG zRiR933ltfVZlO&y0S|e#WqQ6C3Z#9#XaIZIeBGGcsfSRBC`p4CNM`p+%(Uuyz4@_& zcWm;Ce6HE;$<_i)B#N{Jb4MA*l#jM|h@=(tHxIiC+#|_!nI@WMXDRVqTCwIqr}Dn= zqkR|Y(^f2>di%!TODI8`G}?Tux&=eJW6fuJVS#qp*wl)1v*!Dsi$BA !=na&Ca>qJe>SV{uMR}tL77KC9Y*9C@@@R{Oy2#tEpj@iXIJ=JN9Na zyvL#_Qo!?4?!*L8b}~EptoL~ N<75IdXgCNc0gz2VAGP&Q%Y~4Y=Zr)roRNr#b`H);nKo?e}g^ z;1 $Jp;v z@0q9}U*TqpWR+rq(C3o~41hY86g}#-t=!%)rBan^lMo*s_%qi=SC0>U{c_daiMfTO zly2H~QCylp(M}6iFPRyqjoA^Qh`3ss7-HP)PwxHXchEtf>xIX~9^gU0_54Rna$ zj4^LSrG9@p&_{`e!|vp)eEl |0kl^`WK$(v~icR9<6U}mnB%ep|TievZr zjPWKHYMIVe(jzs#o8cVd3m;nnXeqBdh|(o2EfCOG+{ui7pkmV|N vpTml+kQ z%D}0NZ9Jl@44+aHIq4xRaAAYWFY%5gq73{UT=IXId&}^+c4Tcdv7H!VW~P|gF~%G- zGcz+JW@cu`%*@OTF*9SEnVI=^X7-+QW+wZ5JOA#Ve(dhGq*CcEkW^JF60rntq$eoq zl>SC&y}^C6JHNCANxrbq$WO@F Of-FW|e?JwvjQtLUV# z*(ub}YaK4qwB_|I93r`M1d}oz@7hptLjK&GdW&Lu )a%Xu6CoiH@sfAE01&~s}(fCu<4H81XJgN8vLvst)7=?61(U# zj3*}5*YwRSpi&&H=R1MIHMqrgJMTIhc9BP^%?e>Zt;vrRSS@um2+?nPKB`uk+R^!0 zZ?4D;7;kAi8h0D2`QgGHcwqAJfK)y88i{RGQ0SHx;