From e3c60ceb20fad97473281e40f901d876d65f8ba9 Mon Sep 17 00:00:00 2001
From: Maxim Averyanov
-
+
- 38 strokes, 950 touch points — the exact path list adbtouch sends to the device, animated in the order it draws them.
+ An ordinary colour PNG in, 215 strokes and 1,542 touch points out — the exact path list adbtouch sends to the device, in the order it draws them.
Rendered from a real run of the vectoriser by tools/make_demo.py; playback speed here is arbitrary.
-Feed it an ordinary picture. Edges are detected with Canny, contours are traced,
-retraced double lines are collapsed, and what is left is a list of polylines.
+Feed it an ordinary picture — colour, no preparation. Edges are detected with
+Canny, contours are traced, retraced double lines are collapsed, and what is left
+is a list of polylines. The scene above is `examples/castle.png`; nothing about it
+was drawn as line art first.
-Line art works best. A photo gives you its edges, which is usually not what you
-wanted — the *Edge sensitivity* and *Detail* sliders are there to tune that, and
-an optional background remover (`rembg`) helps with portraits and product shots.
+Colour is what gets lost: a finger draws one black line, so the output is always
+a line drawing. Illustrations and line art come out closest to the original,
+photographs come out as their edges — the *Edge sensitivity* and *Detail* sliders
+decide how much detail survives, and an optional background remover (`rembg`)
+helps with portraits and product shots.
---
@@ -284,12 +288,15 @@ autodraw
## Как картинка превращается в касания
-Подаёте обычное изображение. Границы находятся детектором Кэнни, контуры
-трассируются, двойные обводки схлопываются — на выходе список ломаных линий.
+Подаёте обычное цветное изображение, ничего готовить заранее не нужно. Границы
+находятся детектором Кэнни, контуры трассируются, двойные обводки схлопываются —
+на выходе список ломаных линий. Пейзаж выше это `examples/castle.png`, он не был
+контурным рисунком.
-Лучше всего работает контурный рисунок. Из фотографии получатся её границы, что
-обычно не то, чего хотелось: ползунки *Edge sensitivity* и *Detail* как раз для
-настройки, а опциональное удаление фона (`rembg`) помогает с портретами и
+Теряется цвет: палец рисует одну чёрную линию, поэтому результат всегда штриховой.
+Ближе всего к оригиналу выходят иллюстрации и контурные рисунки, из фотографии
+получатся её границы. Ползунки *Edge sensitivity* и *Detail* решают, сколько
+деталей останется, а опциональное удаление фона (`rembg`) помогает с портретами и
предметной съёмкой.
## С чем работает
diff --git a/docs/DEMO.md b/docs/DEMO.md
index 2667f15..9f53456 100644
--- a/docs/DEMO.md
+++ b/docs/DEMO.md
@@ -5,12 +5,14 @@ hand:
```bash
pip install -e ".[draw]"
-python tools/make_sample.py examples/sample.png # the line-art cat
-python tools/make_demo.py # -> docs/demo.gif, docs/pipeline.png
+python tools/make_sample.py examples/castle.png # the colour landscape
+python tools/make_demo.py --sensitivity 3 --detail 8 # -> docs/demo.gif, docs/pipeline.png
```
-`tools/make_demo.py` runs the real `Vectorizer` and animates the paths it
-produces, in the order the device receives them. Point it at any image:
+`tools/make_sample.py` draws the sample scene from scratch, so the repository owns
+its demo art with no licence to track. `tools/make_demo.py` then runs the real
+`Vectorizer` over it and animates the paths it produces, in the order the device
+receives them. Point it at any image:
```bash
python tools/make_demo.py path/to/your.png --out docs
diff --git a/docs/demo.gif b/docs/demo.gif
index 0c8d5335dd78b72f361f7be18dfba8904d5fb85c..5649f4b3f8691844036496b838bb66ec570723f0 100644
GIT binary patch
literal 1258899
zcmV)5K*_&HNk%w1VcrA60fhhn|NsB=>CWQZ&+XF5*xB01y|uNgrI)YChL^3HgPMGd
zq;QeBaFDuikhpM=uxyN}X^CiPh-hetWo3kFjd_}db(eo~lzMKGbZdulW_fdFYI0_3
za%O3AWo&C~ieYG!U}%+KXq0bgj#qJLYi5X?PD^KEiD6)hTw8)xT7^+ogG^F=MpAo5
zP=7~Ict%ioMo@P|P9vd6lHFtKUK zE+@cB0%TI^)D<+$)3NzKJKGz_V+mobk&ZvSn{&}kQnSdF|D^^*P6QGPD_pS44HqoGgP6v*6ZfbC%_RV z%2h3$1-T3m>C_82 *`EqwCu#Rxn>x6vijcwZ7a!}N?&2q_IT%7GpKj{I{m71dcjjV| zcB2jt25RTJnATwBoT;Ix#fk!;(Om@=ILwJSp<1ShUVbV%;PCS$3&&`f%xNkjfpui& zg|Ti-jzl?2YdT)O^?pn$U!u49$d@brz)9XTr|0BqkB|avQ;{{hHXr+GURwS(AbD*V z6`86rFtNdc>DDnS5MY>Vr8IH;#nla3;VL-MiSPCi7LG{>6NG6f*qR8W7Y5?8+bp=c zB6R^cXMpf-S|kAI9bCw!_!uHV2p4->hDo7VU|U kt)a+~rO~rJg&%%nt87+P=Jv|j&|IW`_)AKY>(|#}sxBTHBAeJIW?UvDv#vN- zGMxz?n`%mFrjn6vx_)^3b<@h%6r7~S9~E}&8pS; n zs>%W7x1U}nFb$!S1LiEvml7O1xq>uO-@yxe!&rM0xEUQ)nR_Q=m0H{L*1YCWb3Iz{ zIa>gLxq+lzrVQ@-yFY=Mbh qNdWKli&@M6X;e|E&iKq1690YF=I zArcL)c8wq~ekhVK8yc96B#o_=TmPf8(yyzqdP)j>5M#`(T`{-cN7vv}3UDbVQ(bSk z)&?{szOc?!gbsmOjuvQMm1+5IOOY!|WYKxTk#giVMu;x@$6bnFGaWpcwFI}}`sMqm zX3ZB5 Ty^bfVTUL?xl>^_j-6_nPc}E0voVN zTn>yLa>-3l8y=8`7{6cT%;o_9`gve*y{KMu4w4(lFpcLm*mbQ2G*JmcA`CQfci7}k zC3(n`u!81wj0|&)TD=Z1a9Qh`0%@Q^MO9iz=BC4R#bS{84qWj$)VmU4D?IV2x@idB z{xp0AfTrLyRuVQ5|3VxUBWzohWf4u0FKHqQ-V4@Ff@v&_gA`Mx^8~3|9-#*ld=Gxz zc#k}mLjF)v{fP=5K>3m2)A~gq?hKYuQWQ)>+juGu71+n3(G{zUjUg9An_Is7sp4f< zw-8SU7^ ~h6#O9j$i?^7LNdNu4 zx0#1p&S^lw{E=`>?T5u6A(q3MmO6!2R(P^xwhaFFlU8tyDOo=mn+ZYFEk3^Zt{Au( zE_xyp>~Y>185g?o6CO=rtxZwCn&SAHBRn&&b(^z(W$N75SY+gSqj(C)YigjD#Nf8p zW?URjmMHPHX>r%HWSF}(JF~R3#3lIHgPE3U8j`L )GG&tn}n%TBv!}moB#mWu#T=KZ)w4DRD8KaRCSM LZoz-RL{2JTjAKxWzCI`2~WU6V{w&&CiMcoX2ew 1&7+$_$cFieyre=Mg z)iO7y`@XL17Fj+&t7Oh2pbDY}bPlXQ=9lDNUr!r7R&;00j2R40wGWJ~=G5|7sysQg zXFM6=q{GGdz@zo4;7@-222jrjyaiL;kpLdOsh?M=@@qB>@?Agp16Z*(H2gOmRss22 zi#!1U%6IF96kY_YZ(RT`M$Jrx0!$06(-NxZnIwTGe3Y-VmIqc{<1%)Cdd6W0&&Fgl zU+c~|kapql?|Z!4C)fb0(y!@h9PDPT25U}XWWjMZ<*{_ovjV8I1*x$+s4P=9jq*i4 z_=^NQQN=$|eR-y%^ uK3T8UI@nX6Z%1J1dwRPJeT=~w#;Rr|8pbCc0?BVO8` z)w8L9!P(O@z}jc^o(p S|;-vGuWK)}XgSo@K|)*?pkBJlajB4_Jk=e*SV z0*v5%WA?Fke$WIdsMYIa`B`m!)oO_^gwAlfz5T=76Y%t1=dXkZ5B>Az&R;OTU(j%W z^u3p60zuC00GYdEx34FypU7A0iz$7h5prole6N4Jr`GQL$?<9 hI6=Y9jhB2x=1R{?_k2~aVi!DK)n0ENN4*IgxVAPV~Bt+f}v0|gk7NXj@69&FSd zPeerD7RL5 1+RIApp|K7-dAQNtpdgjZ4+e<~nk4jzL{9AAV( zYPQ-WOL5GI!_TkYdWluNimYO#*>SGHMvn}r-{M7d{zTO1x6vJlL?jr=UA@&8NyO)a z%;RVbn@A_t6v yML;){&ZVF81`3S;4ee2$r2AxM#hW^NNma&LJ+K5UfV!t<9FIA_*-}rES zyxb}zOBV8Ye{~dLU@6r3Ou{Ycyhf<2U4Vk0q|NsdX}Dlu#S+*BL=}YJ3_zey)e6KV ztpb=J=?`uO!QWBogi=IH8;8X!kcn8*SELd`XL*0w(%?O|f8_^77%Ha4RM8KG3i@{Q zE>;v(X2)}D)0t9{ei! I=?_+?p0}N7LJvg@%WHc zWd~temZ%J~308vKGj1jf0pp0Zh|=i}vHPo+G;9@@fiDPq8Cx>Ts*P;rI>(Kz&$717 zdt2fF)WeDq+t$OHJ=?a+2EHQb$~}69d^01dJYY04HQi^V!@jN}*jJJE-w?$#EyIgy zis&POTN!pbY8pXH@Tzefr_H3k*33Xo8TOgM1zd5F0XULU%rwhr1}Xpz175r?hK(5; z5L-VGQ))5$7;|Vds*S|seT4@Ga7ibZbx=`gl@yq(;H`lskSXahpB{B?+4t_v$9?#S zmR-B<1Q }W}^72Sx1xZZJ=_9pF25$@+T>&?LY%ial}x| z4;X@{axrR@KtGsnW>l|pNsO+>a7=Y?4ro-o3AeneLpblNX(b^Xl*Ht6d?<6al7=uO zGJwzBR*aI*{a#Lt&% zGzh+-3O{-nh*p$`V&^UfCmbBi4T*;O9`ppI4g2S*;6)X|2|SXi2vvPcpGW2Hrj>P| zVauR6&Nc62w8Wqz6kpS152b%84`X5Tkz2zT`J4 z)kcRFsdb<5>KAl_5aP5VH@^BsRa2ihy<@nYZo%t%ZIMS03=Ts`G<4)n;;pP9$lm%j z63XXxMbyzKXU2~vm!ZSzCDS6qpDBMfaaL;gTM5>bQMH;I4u+6l# >*C+2vzfV?5cT5L3fjKI}#;gxx(`Sf{@g`{d$IlIwH%1AcT?s~= zOPsQft!egKLc8TjowB`a)A>^nfaVWK>Ies4g ?&s`sox_kt(84DJ>7DbgT3-po z(2eU0US*z^6-m4apOQj-sdewmERrIRm6sz`$~o67lz9_KH(-5GP%2Ny_3=PC#-AmB zIPpjEWZG2bq4QV%q#4Qk`4ZIm*)K`Z#R4I^{H7&u(<6%`)pB?hRLFz#)RPY7_VLy7 zS!2HF&V5wsM4Yb*=dkqZmDk$0m_^o9Ew<=c(^yAbXfmG5Fxw^4I%=WFjCQH?Iyutv z4PR&>)L@X_CDLn_qDs!6wRQUytN)5&p$yhl!Y#`h`s#3D)Y7%K8@lXc7@;~U?u}6h z&f>e0PsQ>Wvu}!QY(&Ug-wye3f|9ZrO?e`gR}MMDv$M+O**=Ua&_g~4si>?`dc??V ze>R2aFgu}8FHg*KR=qT?mb+9&7{p%BH?9cGU1SsGC(*mM**ejE=xFS?;v8&)kEr;l z!!|yJS>Li$Ug>?tS8(F$)~SEb?2aP425_PkJI
^gSJ%=8*hpP0D*q zV &vyireJxsS&vK<#y%5suK^XUpXV)hlmb(9$VU~m~Twb+mB@D2^U6fZ)Tjc zj_XBp`xQ|eDt9F} jtt<6Dv9@bnUPrxc8u31Lu54XBi@t3;@;>uAYh8aqz3W0+J2iXLwuu&V*UR8@ z5oy=9{R-`VP|oKvv9fLVP0anMmCw)2v$lO9w1>$EpR0m5?LU-a9%f5@uFLG&kKUvG zS{(7YsjF;1v5Wb&a^!Q{cGiC8i}tvI6Hn~|nyVx%krW94~o))3R-6G2jP2c)~>gB4){VPJ8nk-~NnLvQdg z;1d&UGQKhb;7tW>WBMT|lfnpNey$~=RKc=z$AFDxW$^=U3{atB1b@&D-t+^P{lviD z2$8ArQyUB&+$Z942!gBjmW~5{O#pMKF@DCv(xxE&G#Hc&55U>v$(3e9-3%d)BT3hO zLB|J#&*X)1_V5^hB3NHjk5u~~!~v_TL&NcTqYff^zlIcOqsKL|u7m))FN2phc@mra z5voWgE_g<2FrsRM<}gW+fFT5v=p)i$Q?%$an~Xl%)TZ268}Ly((irbm{iMvJIuD}1 zaYe)yv91jA)YM`OX-ALZlScid+6%?L(GEWt^ke=>d6gQI>BNY27jj@8yTZ+wB<&|1 zPZDt#jT7dn(S+5T%GWuC4kHX)fE0!fhFP-nHaB5m9mJ7YkW`t+BTmIL(@|gG$ARwS z8wR7Xjl#BR8L{r;aDOB;@5fwnQ&F;n!o`vB)Kd0P1d9_8Nn!eOummr=CvG(E#t)mv zV;W(}-4iRzU~ genj)qBqC#HOC1JCD-ortQDbaY4f4sleVidM!gQ~ zRO9mujfMwPU2yR+n5XdgrEm>}cuV^@H3y_)@wE3y9D~GFfvLSqouVOT}5sLs_dovepr@ zH|essWwLiIviHNXe-vlq;-LShd=T{iz&i{Fr&Rpr9U}hU$UD4Y %|H}>k z- mL4yPq+aTp%J6cip74x zeNhL%fp3HZiX%bvv;{$yJjxZ(m%1Ng5s>Rj(&AMKONF!cEd1gias!}{ADf{hrzMyd zA~&r3mK)Gb0EG>@t^3WI1n4_0BA4|0@W-FR(BY0Nh?r_cT&w8w^kLJ?JMO*^*u$Pz zFjTf&KWx}`l N!cSMs_LjBoIQ?*feRDqJx&j^ zZ~u04)YB;#$S?_u&=`I?u1XLq0t}?!7wsyoVXziKploBVd9IKH^vS9fSErlfwlh}> zLMfQWidj8cw!Z(#TiCosA7wJF!q(36-4yLeY*3`+sUB@aQNj6}rkmW(gox7%6Z)*| zawJ4 vXu|LL6p-d#AvXo~Z zAYZ)K0ap%@8)AJ7?spT>7-LTYw<@>*kYLX3VOGX5LwaHD7*rnJ=kX@tQh(b|W0P z{3D!y$qlg(xxp18H`u)r2hVhtRIs2yWxc-~Y_Vb#yx((ud3u0up6K|sweRa9a{3t} zHx#r2wq(7#OW*xCPl-*q7xp@;ng0oG-1!NH4E*gI!8ItgYSiW|K!Pr{oSn8y5twTj zpOE~ZE-f7O(as;_kUC4uO@oan9>`8co;R5&;1_#l(ZdFh{6gL!3Xp%RB$jCi0+O-f z(FX>9(=!Cv9aIwY+Jv$q<8AZ8e`AIX@`Vz~L9hwsy~2?3re@y|M&zWXRju|i#16&x z<`717uY`l|CIgIdw}UP(KH7d3#t$(67SI$ICX#7P4BTMn=wQ*0zRITz@PA7PO$Jb- zCnp&)M_<#i)i7Y#X~FJm;3Tz6_*%L{#nvpwi@Kw+lc5G_E{Bqy8h1)OBB9;hmsxiy zHynZLYJ~qGyKOTXsF0aY&l1+*q7iMwN%Zjyak587cZOOobBUPC_1g?dAV@_``*E#^ zU5ykgX?J9AMR#b-&qOs7%ZiBmb3;|sn3_c!Xr-m&%L}ItVS=Tz{FlSou#UtNEPas2 ze#@fUSn&5=%Qqj)P})7v10<`oPAI!pT6&As91|kZSHB1`HBJU;JNwZvt#hkcGDp=g z02LT_ga+s)af9njm^l`+`a`%v9-OIz)HJHaTO`9t163-wfN;^&Y9RYuIDtg~koVJg z%qO;@Ib)L{laj76rf_}!E };XraFR4iq7DLUxiAjHmp;Zpa;xv$BXJz1rq1;0 zg(cmQz+6w|J`vbM$sBvao2pQSGGn}v#eUwK>e#3<6B@aH$PLyX4Il$elS;zr|B@Su z6v{2NMwsX1>D@exh>b3KzW*&Z*t(7A4J8NLoaB#uscI;Rn{H_QEjOf$tnBeNhUNe( zwD#i_I zm$kPMi7sZ)li?Dt3ofWj{Vgt5hge}Vu&PR($jwEl;%EA7{Og5v=p@;ej@cr>tJ zhgI6Q+7>EcWdvbxLLTF8Af-+jy65HlQhflEl*h0hr*v%8;tpjazOfm#8VsWZnEpe- z%NW$XLyLRncF-Wf>krYDakr!Uf@TZUHq>C4WDPK-p5 ? zS+#8Ph9l$Txi0GVX_kgdZ9ahdHmB7~QEl$V8q1zre1CODvh4kK9`WgrUZy`k>Rmg2 z%+Xdo>d%v(3~}`99&V@K)ib5i_mq?@=8m3r3hcbs)YdH<8dpymz7FL(*j~g(@b3sI z) -O()EgsCy!jd?ummg}`uu`-Y7{d_kraC(2`M?K;_az8Jm*!I$ZGjVn^ zCNqmO*fr%r^?ZTV`pcP9C@%KuHVR7c^2d9jp-rL8mGutVXBw;sQ{Xn24=kDerx0+t z6g9&K^!PokfG^-UNo#a>YszG^NH`A#NpvD}^u+=1`_I%1jo!Oj{uKLKYcz}-13vxN z-r=rbdNaq!U|w2$-!N+Wj1K_L8^1W%fDbo*n2Yvp-P$iH*y7q)wZT@&ARG9>z*|w* zd@es(TKe0qz%nx)l_ooners5JQ~3eEX*hQhcnaA!@;h zsh=F@{Z0cvSs$1zZ+V)gIuMA3P%iq_-4aP@2TH4if~2)4Z-R;kLLXkt0JaTaS-4LL zcUsIJm;$(cQ>mF*IMK0{9U>)ZJ@$hI=7ZXQg1rYFHYNSxtDJGWJ~U9fAZj^5+dEe; z@+l;{JV-gULrPrn*((qH8sS+GVnwN?y)C4|V=p62FeB?zw1b 8Y5a{IEf!M%^jDbV$P9gNsW&|xP*x* zO&Tr{r+^Wk0t{fAvW1(9L&=M0s1805iKi&We(OOjV`>b);c@fAg~1qxDf7j3( |eD8H1bc%P_D@PCvW(vrC15~XCY&BK0!4Yv2m_5>-8JSqQ0 zZYWNvy~Y$vOBS`zelwLE#*>z)la}m}mio8c;Lx1PJe3;l5gLM%#%Z5kl$Ku7oL;u{ zU*v{bgmfnI^v_|Qu|F`O$udWmGRN;TC;uroG^h6tVM1I7OP%y#kE{)X?5!7`>>ZtK zh}=+@mc>w=wL*t|oQ63PmVL>SbET7W HRp*; Vtf;KOHO!v7*SNb!EA_WR69h^2do!E0G) zNchE=_lwCt<%Yx0+PatqErod=`HUBZR=QtZKYevi|06e87TCyQ+97`ZPWP2T bmgvxzSf`ahoQ68x(!!P!vZ;~^#G)$1+=hqJF2b^JC108zFj`tlv%i;88x{3@ zFB^X-o0Ki+JH!|WFKaF-L*s?|-cr8uy?pJV{J+QzmK8JKG3G4GXT!@WMF7_il>nkD z5MLFv-aq7qwNI7Aag`6>s~!*Y5c#UH^{R0_tMN0c2|X*2TQMM_1K~wA=4K_4UJbQp z4Q)mZeMU72Q4I!CO $#`UM=T~XDxR|EmH;t1yU{UR4uwl4G&+PxL%#4XWd0h zEk3YLkPk!t2wgOyPL;1-U9X JFZ7jPZ8$4}7@6IK|CAe!JFt$?@g7^Kta->Y|CSq& zzr9{Tr_pbu(eHZmx7@%-+=I;0W1;six#8icCxfpG7}+dehQS%xt6J8 U`Zwn;S2Z7{_!38HMD zq4u7}jh)7RJ1Z_Qi(n5F$^vD|&tzuKD56XgptKiz4P*1q;fes1vgUNNCRnRL)b_wW zZGiFWw28rd3*&sdHIO0~M4}8Lsha6-n{)IY|5OU1Ap_+U1;7~2H!{u-X#y!?hhPP! zoD3E(iRS{Y+SR?w!^e_?pB9}UazoXE7esDoAIbk)Zs0>%;wI^!Bl`f68vq98xRYan z5V;|0(a~fsqP;f?B^M$$K<-@sE;rbsEHsS$LvAoJFsDXe=wVu@IBDO+UT))E9)ZXW z U!5ue|3!{k5YhFkvMa>K_zas$uP3ei&)$#1z~jbC7j+7PsqHO*^oyIj83 z#6Q&MKKqb0w8gNt-M&Pqymm!0uw%7AlM6yX2LNp6DbPo@t@^GNrp{58rwxW@pK^%= zx2`im`^XCfYoI7E5aZg`t~T&3={7`eU|ZYbwB6X{n<};0f=6AkgRl)K3mSje2Kv?Y z1^vxro7f@ENQ&5X&ed5;+X)iVtykIgq=FdQ0=xQ(6LjahhR?fuky{s5<3>JvyDNX# z27^92@Irmrj$_AIzUyo!@{U3DloQda*7%~=X`Bb?!JYM%(fFX5&q3%5q#15}@GcWb zxUn?NxHoUJ@*=RG?DHMlaLfOBOyhaqJGxRwuqH$B(7<*JcLNx#crd1L03*Da@_YzX z*u<*>r3)TrJsae7RBE2)g{>WRJRkiJxq +{9gQg4Ed^U ztYB}hILdxkv_yKk6@9QC*}u+zdXRk@F@C&IaXP^~3Nah%+CC&Ho~*Qgpd(qtIyrre zK3L9vyNU_{X7Zojowt*YX)untLCglgJk;|!)L&);`X;>6B5ck@M+NBX+9{#kF`m*9 zBgAZYd-fbPe{K7N_H1DfcbhJ2Xyf?e)l1Il%eyzgS8eMRiEQg<8^mX*l?!yQCfB`Z zDPxCzb^Iilm?r>VZTf6!t(;Oo%!aqu>aS*}VK20EuKVB@)rGEAV?bsVf6RuiJ^A OeeByBUav5_A$TB29KPpUH&P{_Wsx2Gqm>G4varTDnRb- z^WI87J)@7T-gH5|!n9kz8>#?ND}T7L9m(&%OV0VjHk{wHLD+_k`!LiS2>fAEc@6b$ zh+6od({=$Ibyx8I*aFQUZoS3kRb8Xdu_1(QsJd^>1a#&c3y?kz a z` TVz9}wU zPE}7TzbTRj9~y+DT9y0lr_pq 3 mzc||KKyc0$bcK?xLK)2;ioJ0U^=tw`-`ErFsYqU7#kRS8bXg~JD z=V~dsug(r#u&)yjMVS7Q8wyb5py>)~M%Tq@qs2KOasv|-W9YOzkJ )A=@E~$S5kzi? z^BfN>cO>C{ucfw8s(pD$@|WDOVem(8Nct@|#5fNIpe;C`jtz~YVE>UD4E~lIc+`_E z xvx;fmKDM6d=lSq%`@^Yq z`-4DD>1N{;nBDq)Ttej5&~uV}&Jel5fO^vCL&ncA8j7+WB-Z`;=6&b+d)wHYnGA+^ zZ08I=uB{cd&pQBYe$d-7G~^Ybv7=-GE$Rz6gBmKzk=1_kZ^=Idl~k;p?zcSA-sj}q zes_X@%_!h~y@2*~wV+BPwDcf}h@`Omi%B?e^?p`%t1IXhY4y7?MWi+u+Qmrv5!JQ4 zXo(6)$qk%4bnV1+k@H35PrG;C7JRvJnGATfg9)bxC4|geZi#)o1k>_`evO9_>JF6a zhCJDh$ Hgc7L3K`ICfA7N4S$<^+K<8b&RH-s5WedUM9 z4cmhV;>vy}V`DsS39BpTGq3yv?0h?TlUtr|B|3{_^bnf5V8{-nFRw#12#T=_H(W*O zr)_OFutY?krKR95{*oJXwq(EDIY8uw?tJtBfxqO2dAhvca)T2@ZYX?qAL44=!PH?o zhR6+)L-=totm0I6Mo#uL1eYIeKRH1CmK!+!$PLK(z|?EGr*a1mRfyb>P$=@3+&}|= zQv645ScJ$8424DCe#;GoN_nvmxq*Tqg((suHxNSP1~$pptitbSMgNi;j`g5b*r&)* zFk}+`mK$=(19>rN3FxJN%MFs^|BxHl{vkK0|8Kbg{kPmOg`ZRy4lMgOxnZ{!n(&`; z1AYE%6M|V@EJSY5k(l^?_gii#9Xb94ksCA|05}l20Su8FlK!XM;2d#`xba7BXi{bT zBR8}` r85xnb|$ !^4X?Oo z$z}diZWt8@o rS%xuN5a+`#&`+_3l$x#81qxq+1uswB0*^grc>fDgar z2I;Av+4o+#2!G@TM~K|8f(wxw`ef=P!Xa{lG(>J7{9kgz7V5vr4b1&xu_ABu%G<4; zwr1Z|O1ic5P#)>X!E5ZST?2yx(A|j|`TBm=AiS+Am$+ 37mxZL8mC|AU7_|m$}M9=oy zyZrw4Y3?wB6+-N0nSB>?E|<&{j QzWZ9ASHvL)HzI^N4E->u?| z?;Bhyv9)_C8sJ{s!r~kHwexhXr%f#5rJ=8?cJm9bij>aQfc8RH6_u^V1$JIH3*I+n z#ZM=@mD?*Xsq;mca?jVD|B@So0m#4E2B3Hsw0PG68}NN|+kslw^KzqceitG;H9((t z)1n35x^0T6>!dX25yCdWcSGPr9EMIz_0H!JcvR cFhCzg0A z_DU!2jt~p~H`Xg5f=oohy6zW_HU{EZk#v?G?!+GM-)w^)ePB286)GLSD3p5#B4y9B z6C=Q17$&d kR`iL@kNHZp79{qB)ccsx%fl$f?u^J`(xcEz!`0RatnF3C?t}ls zHgIESie8Bf1n>*@{$?9ciP1DDh2``6B(OzhJRxjD5zAGlEO8%cZ||2$aYgq2Y-6rp zPF%{!{ie?SPo+Sdw>`483EJ4AnqK@`kDZ6~KtW<*bJ4EAb72hiP^Q^FgTPA6D{cz@ zM6<_kBa?6l;OL=Gp`_nW;ymCrEA=Xn^L<_)Ua#cm8A*|yeoW=A({o7xC8Y$Tl;kn5 zvk4uPa(4uo=u7y@0AAogVJw9I7(}ZXSpCo+fjt!W*eP G>4E)GUh%3j|OvfK|9JPsu@CI>oqgBe?rR)jE9 zyP&%OC6Uo^tl4F4!w4odomj%=wfz8VsrNfVQoTctC14hPx#wT-h2mXLh_dO1t@(8$ zZM?$>ek1L(QkD-QMU=e7D?(IOBHs#nsd@m_w56b2RA^%HuO{8^tw;6cN9v5b7aT^0 zc1GB)Af40l38f>g*a}(0a*xZSGuRSeoKrRAhcpX>4NW=-=;fFA<*C)=frj$XCd1Xx z!tF*PFFCV9NQ(`1vqKxulJcSo p_8vzGyv7f%l=#yX zz1k*#-rY#Kl7KA*ROnG?d>|^I!PsA+X_G4`RoVBma-_K&pbap0j07wjVwoLX=x!Qj zqzUVlmz^Db%#Z=$L_E$;JW=*PKTZ%x #;?wFjg2Fg007H3=T@@7hIp%te i;5_Sw%7A7VeOdq-eQ~vi;;7S zQA`U^^|UDV3qmMh{V_EU0o4O#4J7GrR3^X82KB5td>-wO9E<+fsxCnjkwkz)Wv%iI z9fT~MXoJOIZ*3b6M2Or_@I)Meqm_>F{cF(oqE!{wYb5b@jX0{M_$;kNgE=9pmV~T~ z6p1;P!UEcp1vL%iY?MVQMsPj*T%g86W8(Kns_*$!GoPQ-3+I;I3Fa2bz|Al#T})bH z^|V$vI_^w5q>H*>1&vA+bwuoCH7fo0)w*g1nrcC4BRJX|uNVF6XI01ayCoK^ch%Vh z8rvldQh(^pVyw=)7^pL8mYg8@cx#kJY4r){^h;q)Dn~Yk{&{(KB z=Y@jTWvJJGbT@FKTE&|iY*Sc0gh`n5&e@+^TSziEE7FW>pXoKw*W5K={JA>FG)H=( zWoNNAp|OCps6S`9ocn~k+Q+=L`c6CQUFh}fO#Rx6H{P*JROi?_2om}%q_1^>EUZd# z;)e{-`^7PL*{3iVq+_eD(JrE~FQL~=FrJJ!u{pQli-Qd{zdp{mDqrvpV7eKu&>umi zft9=&b+U$EtbfVT0_lS#T-5z^qC3d D_lcTiwX|t+$d3dsDoT=Gp%jdv_5WNB1}SeMZd8WU(w}X0R-@ z#mvmiII@_TnVFfv7PDos#mr2WtjRpj`+x7Pn^dY&l`N8~EPC73i(Yh}^E=-UxNHJs zZ=J`@vInEJcevAj7^IFg!Xfr!XY_6ZYla0mLvQB=kNQ#*afaHd^JhmSn(5DNiM-ty zLgOi1Gj^6m2u%+@*p=g -vuJFZ>K&TTJz$7;nt$<7o+~kv_c-(zG)wqB zs8n`n({^Y(a`->xhCYjD{R7c2=9l-HPLVCfu<2@bdyX#_&Kl#IOBP;a0+%=%NKzIW zZJ^6g7SA#Z3w}#m3$sVqBX8PhaXhOd)FY+Gqi-HoPHFOB0oy~%vSZY!Lw4`un5E;` z!{ay>bM<$9r$T@_8I|WFMuLa71;q(3(9&mSWcjy6I>c hFk6$jtd3+^_w2i%|&PK&}EGyFEiDfR^BJnucae zW^MepG#Y|8WX7fVVH*uy+w2^6T{?j*w9|6q7FZ4*-<{qc4_`KmEBdbRju3%l6gcTO zv3L-<0kq6wW!8O8T5pGqZf?|NQO^uYx&Xq5D#79lz 7_5IS-WEehW)Aaa8pL~iIXb;kdE2Q}`PMR>>KXbr9OuiP+uXt;I@ksEq3 zUDf`T8_@8zkvleq7Y~sQui^4@;p-0*9WGBY;{2^IZN2Y%cCLA tgL5C@>5V^tVL7&?G_GBelF5OKYeW_++@i()Z z!6*j}t2S-8)7wD2;qEO&Zm84n2r729Yr{j?aDS366LoyBHbjse&3lgU&{#fHj$h&A zeQ<#XsCgFI{_o@lPj|rFSKm=;pTPUQK23|yWyleU?paRjxQ0f7p2ql~V}n~M%csP{ z8*n%;Ci1eU ^XQ)Z_azt% zVH<+l-t*ca9V5q2rR~oON4I5QFIjlLfe&Z69l%D*H_ut0{1u BJF%&uy%4JYPJ(L-2nZ zMf^PRqo?5Ck-XmWBK*cb>rd2|Zfm|b#Ah!!X=T8Jh|`~BbbZBOX!FX5em!~Xw)>Lf zm96x9G|t@J&{0=^y+XwOZ?oYm_yGTPC(zl2_x)A+y|lsac{wn>9FWQff(9T!0U+oY zABH#rEEKYu)$#StcNi#$++Z~i7>OaoRvS~=r5a116t`h>N`#k7;o~ydN4P14O~#|g zo71{GkVJyDn5h|WqM0d>2v?CYy8rmIM1~&4{vWxaLWLL!#^@ipL8sm2Vr>x~A~y{B zFxx&t q?2ebI!&O+gnh1Mwq5sBGldL^JNVs>j-m=tJM3h3B GsxVBxjfI^L{DvT%6s+4+HppoDg_;}SImi@@dK2)=oP z84AsNCm|n@>b~L8v4#!!wIu~4Pzthb0e(`0ZF(?U_||? v&p;&wxE4f|8`L`Uh<= zN&@{MwAxNWgvu~hRgfK{28Sx{coYJ XEBps-fJG?D#14KZEFiM2i (|PIGDV93{=75hJZ|_)_hs} zUQWAN8(Z3*ZR>%^LTrPuf#q}!Zwx(b--n|btXeQX`(`5SX%LD*)tFZY1v49;+RLb$ zjHy74Cspf$QPaDqzXe}~tCKxe*2zqmDGyG>Y4gE||c5HLv$inw^qQ2pWGqQ{q z4gOeyxmF0g*uM6igqD+%aHMw{z%i;w1?4bWc|L17VW$|($&oG;ov`bfsVZ?ER$<-^ z!Ka?0d8xBr-YtLAbY4%HWnr)Hlw5zgc0=TZ&xbWEv$@msqp5ELja?W$K9T56OWNnw zXRilpT8wS_aiF^eNdQQc*mr8X>&`dmpe}hYTGs=7wVQ3}p3iz&ZTX5K>H54HVr_G< z_IKpSIIIYbK$iz&c|wVYnx1(cjkduygUM;G)&HOk13Tg&c?GMdebraK=bV%=f^RpI zSMA`-)tf$%_dzIDA@Jj(uFzLD51|z5cr!iS%^(YvphdL_ahl}3kgD|Bv&w4o6_aha zmNXCs2mm8305JEv&l?3P@x2J{{9HTA{WD!3%Hmg;tL2sZTBzjzdS(bFpkdn6uLTjE z;6Y)Ufq*V?Jm@5;9W5!H)5;k97~(T)RtdFaS_P(v*8sf6XW%Hwj0n9F0IEX$J3Eg; zsJG7tl!b~B?j@wy&s2MV93sAx(B7Cx=Iq{aqyS)O6DWaW0L=Eqq+M!qADjqs>{<0e zi6jL&P72*NKBG@*N=C|qoLGq>*P?tbKMgGQ<4{&VPADh2uoTvyp&sE;ge54)xq?fm zT>3_Uu@4|PWd^_p`MG?65qW|%^}a$}gv=Q|Rt6q@<|I-BzpTq7C5{(S5zp$lFJ$=c z>~-Jci}r-QOLO)|7gJA_$`*uqyBNIVUB*z)3LAe#0FhWEb?XSR-mP;ws3(iu+f?Bf z`DY0#nUbR@EQQY;)|nbii=3~Yd#oAGphSNb{%NQrwfAW*!o#Kc1f-fNxj9xC;xD?I z$((T`v&qjF*985LnkCoRkMDacl%=Co5Eb~sO`^3*37@49%+pMXs9x?%ur?R|E|XQ8 zY~{h>GhfQV9UwP6DeYdy;EgH;#0OZP-3QMk-o~3i!D6qdWlh2WK8pALC g6}?6aGVJMv5bix_ZkG70;N()AO=mc4YEP>Ch7VXTTabL z?Z626*EFGR4QORDisfQ|VykFyu{k$MuGR~pXlIEx&oHYXYRACwbjp~nv5*{CO>~xT z-85&G=V{=VMylvJ6n2#N@X=)S*%rR^KZwUe8cl-rtX4t}azwOTIpgx|eE;j1`$sVS z==3ZIMqKO!MFoT$Le2rtH#q&LinG=LtNX9+FOTn86u=bR8lzGmvmkhT2Q#^&v~?#E z7H)+ fnFeS!lm?^;7LSA5RnUIE^=h8-LIi{IZ zvwT#nk2CLuaeu?VeKvsSAFg2tqhuQjuOX&6#V-?q_-Hncr%9%AN}VyDPtI_u>5--O zgl!g%*F+_y>!9rgDKl{v|}g!0;hna*Oo;hSMVMtD1Rui7rlR1D?`LUD?#IhuzFsMF@PI ztq+K+wXVH%ucq0sA9U|DWppr #6cl$=J;B8QO3i!0gCSX5-sIyWe}!%A0$g z;v&C3Rz}d*s}KB6s=KHZ*Wo#fO5oYty+<~SG`bAs7?VDwO*QQN<6-)0iedc+^tm`J zm&~;yyNWHG=k%0&v(r_s_rYT)-#A$4#?X zUwA6Sv&xbE|C2mG3QgUyEOMeh7DY(u>_ZSqb+!8O}OC{l4$L z6ZZ5O{qk!scdlmExnXOhYiVKp0cNpfb@q$kCnQ2mXf5!6xQ4lcnH`~{95~JI>z5wI zTfNh+bV8|%B=;qI2Pgi4e*^Uc(*{1|9ajeWR%7NvMkVvU$Bt%AQLw5aMR~dkeY~?3 z_ yV;G;WFZmlytMV{u>ss?(rbvfhV6Upe&kW<9_UZ r4iWaIciM@(2sCR&WZLT!00~!$Nwx6|FJjR97KF(CV!61*Gw?HT-}_g z%*(Gd1kz^r!_Hm3%t<2{0)LTEFXsQHPb&8#yn7*I##KJXC5KJRZkXSIMZ=#PCVpBC zh2|hfb67xifrUxRda2Fdcv<~5TyWj8b>$D%HyGZEn*Z>(Pzrk&@Yh~GENBsNO`TeM z9!#?t&qdUTs5^|g6K}QEzGzhYS063UIPYRx;~vs_!#TatMW!9bz%t&wC##6Te+$*0 z?!*-;g+Y_SIOL~T` e?b~xdd|Nd>{QCBoPxpl1_=U$wxA|&O{1*JrkOD z%C~1q4YOTOdy|hyX)KhmAIbI>R*XS*1By3#SYaCzCDL*Uc;s?(%Zi1SKX$oIj42Ha zIcz8&*{PJ2)7x)~=rbwU+DxAtsTeT9*^N6zlu4T$S;as2ic=$I=x2UUTpNEd*wY1? zz-#E@lI`Aw7W1KH+iXyZ+-m&7$QB@rf$A#$G(sk%0?*DcEF@yaA2lHCL)~(0YWYAl zxJbg&M2QYlL|&FI?n5OMM8z3K@p&d&W;4Tge@$v6l+B>zE1cq2ondK8*x-38WVvm{ zxc!gcRtHM;r*RF%ZU;V~?dziM&bSv-)Gag3m`M?R>Yy-Jk-)ZaD(sXsiF%{fq18}A zld25emmD(EI^0uHF;+dLSer@`J2YpG1&!25*<%zTO3&jslRKJGkg7~+1{mwfDPRb! zeL4LkT~=yVHm`$b4%KmBVnJJ&04}-1Ezw_+hSS?Tum)Mh0jv!+Z6nJDN_XXFLcUdm zDK_SQUdy%^%IN1W)0P`GyR_g{KP<*Iw}-QAaViT7(w|u*fr}ZiHQ#h`0ogK_!+k7w z(J{B3k%k{g p7LuvI7r9J5PU1-8NL7naD~it(6y48Wt* zcPNbxIL2#(kx!`5ji8Id1D_D8?|Wg0rA!&ev(U!qWT|eNhi+QQA0C&U98tMjB|lbx z;H-nHA`-)_FDfd)+{bCVd&zxAAtROs(lmz;H13CV;kU<`P*xE(Aqj1;iBa_VLs^lB zp-DVBnM?GXWtFlTy3^`nt`-AD5=X8AmN};tzCY;;tB&GH^zxd9^B(ETJ+|^CQVZIw zN(~AM<&I^GrUiFEY7U^Px{||+Di^r}IqB2X8SB~Ds$e{IX|q!uJDc)%hEHE8^Ak|C zc26bKPPv9G?YGU<);_9h&>Q&>rlnDj*NDLr+SZL|QQX*c`!h5I*v2GS%i~n@_2IXP zAUD0w#mHG_3!H^YfUCp$Vrt(L)bc>#dA3>x4DDs1_1~)dZ>!taJ{8=;iTuokl=TaC zY`Yw!dTa<|+Za=4Y{E2-N|F>F1_oMptDWA*`iegFzcY^cz-H18^xEv0R}3Kk08LOb z0ZkZVCa`(q2;?Tp<(f) TEFHqToooBqjqxy# z!PdA|PAcU6i!|ujPyCBCBoZ)&6{dTWlB|SXboQubui4cg6*b3RL=~m4w1wDqreVJy z&2N_c%z|AIsNK{kWB*36sKdMj=P&^g8W0dS1U@3v`~x)X@zm{!u DOl6$H)*D^|Fej zUt3W10K?h|2m8rG2EUs9hqNm=y?Qt{Hki+Bw|xuGJWhLZPA>v=_gNRvrfhKKj_4(< z(CKxDbD*=KE8qV@8gLrowO0NHe0o2vCrXrdQ9pzwvRg!BL&tVP=@8qwywnW?&m!Gz zL0L9D_%vXBbwd1bgT>hBN_2xQ+3+lIb6>`a4s&xo#F{WLid4 rAApM%?U-*wNTPdvbYlO|rnw0PpzM;Rvr3 zfLw77>AxWpu)+khQP6Qbpf%y{xxm@RSwp!{er}BQaAHoTMOV9+aJc}+pZb;#41RNF zplilRze!(`q2pYHoFY^AyH(k7x`%aQ2zTAaYd~VUV~4!dnjA|_kg*o9>+=vc``zs= z5hvv&CoXTJAp9-G)h%2)8}jotO*95sa}zxO9pm>VzE?Kdr+8XhSR%u_oECO46oA(- zg;z9(gsw$8o)d%kGJ0r~ET032ekZK!D6-eYw%jaS%nD!6h27o^gM23%-@J%)g$G|A z9Xd-*)huJ%!nJ22DauSId9VKlQvSfLLf5Lo%B{-Vsw:W^Jd)$Nn+uTQ!e^o}hW z3oVLAY?vQf0J9vj&G$?jP4c`>Soz%A@egv@wOG-t$Y2(x^?R{&+XRvt0Y~oZceh;_ zZVe$W< o Q4Hu5vbC7icR z42e01H``k3+vyJ51sXc^^ZGG9ID|K85Ih=#J@jDOUBW>~=hxm~ULf`*!}oOjBW}{~ z18hgG9+IAvXHAyfEv{wUA=xePApv8RQAEVV; z{I{Nz*3kiX?Sa935xhJ>XU=BDw`R?)=5$`}f?n=d&%uG k~NOVQN{wJulYZD5OU6l4@QGVO*27b{;yoaaQa+f$qPkGHJ5wI6a zwPONtlWizlFr6bjSCjW^%Tg66$uyl>^)@rOQ=^=hJDe_{f73pAOUm)3a7zb`zO5jb zpGls7XMTekyIoqa-6H?q-IYgJzCGKsODNhWQ9cow?J@7^rP$Y5CeXX&>;(yfJe5}< zYWa`h!k_L+?2>+;k_E4#0eIK5R^)*e@^tsyv%9SB7dX{tZTSwE@9ueL?n&`4rug^x z@B;P3ycpf1HSK))2K*i2f~v)#9dr+bF5bQ7Zf*5o-=#QbB B;07eO*N=g=ouYmn;Y?jrR57E1L$e)2$m7(e z-5TZIvW|b^le?PQU*y(r8+jW VJP7w)90|d(&R?@emW5Ir1xFUH)O| zJ_YVsq->69ZuaQs&mHw9kM3!D_0rwD>%SXNnB*g<7sD_OvvGZ!73H5kE1NbPok5;j z-eRk34h;Yc1e*FRl?#K8I<#l+%zXuN&V26~{DTEwn_pe)>uUzn+t-?3mx!&F;R7Ol zUQsf8GoOTagZaMU_fj6c#(TE?p6%VZ gyuM5geUa*d~yxxLNuS9G;`?#UCkKw^8$=%mSZ71=) zW8VB%to?k=@3NZjd&I71@j?shkf-3^vp`0b629{cM1Kv)LFjw7Ww?cx9`+Ue^TZ~2 zCk8Jh*x$|H_Z9q8@UPp~fW7|3(DMHGe!%n9_$Z>N7yu$SkPm)<$D|d~N-&lTN2icZ z;Y&366phbr@v9?oPwWFkZg^Wsqz=MoHz-l-{2y{dvV~$ct8qiYU~q64s%Q}0MnMoX zI+0W;t$J5VrE-Zvp>*t8G8jI-T%{4K)<@lXHdnoR*9f?0q1|jbU)CxMGSdyC-1*}q znC`IAC3>#%BRk#Eus;w8KSH2cvK>yl_>bJc{soUc#|5<3{L#E7JzaXF$Ga-5Do4=u z*x0*Lv!Ps>N253EL7^>-5ep45+rxgn-T7##SFqhKp$oGePo&5F3yBbm@8Jpdz4^o> z4R89p>e>A9LXe97%>9dX1J?)^z9`v+?Iw(Wyik9hzkTS{&S<)5V1V!I(^*-1wjiH3 z7;HXaP4}}vrH<}gVgW^b<|A<|<9SQdsX%GU9Saj4U`k0cb;|Us=$jad@()Z|Cieb& z(7MtmRAVQbkElj5VC4$9T3xoPTG|$6h6}WoMscWQj_IK)lL4n;s_-+XUUWsfpR!md z(JB-4m3qgruNgmTMX5X0rup*t5L6Y|IU)MTPZYCDg-S|4Cjqj>bA};`L8|IWL0r|_ z9;W*9g|8b`kQGn{upZW@_iF{WM!ayLSh0GNshg=Ike=$7d4}9NMcLp}2bsomHML)@ zmkW;l63U9Lv*P7y>b$C|B n;OX(xute%&;3 zUxdgFv3T+#_Ujz0w(3}O8Vx>g<1G&U>MUOjLv37Dj68q0eX(2B_h`2$jn&-rJ}E`s zT(2>I(#dVB1tZBA@INRA14n5*p^c&8n3reTVAZ#5H~b$qedy~}OrjNqakrX`5V+an zMd4m%0&roF^z|`$Iu?T3u?ZH8HQ%e06FW;fH&p2Qw2pGUS-AGJtg+^dTa2`V!U`8S z95w`7FFf^#jHNM*QbUK>SCZ+nlV`54-3r;Mz|mSJHoh$D=gsS{gvWpnlg8nt{7d8Z z9n)A&;Uvc*O(*t)u&11 a|ZI{U^$2?W4zHw6bv|0)fGho}^1_%bq_xEV%+{mfcjDa{N^T4e_!y|mrV0HyOy zj()J-%R%Or% NoS z`}U&VRXLSTs`MQZEu33sgb A OJlTd=qqdPhbT4v$i%759f4bOI}&V{RWu)JhLcs;7dp}Y zO0j#9)zyMZx_Boagq9)&s5P}maDs-&4TZcQBg*PkrAUTfnV7l9QjCA5q8(C-NgpaC zWtVszUnY%?nN9|}I> h-`~o`(dEEOg=mXx zVyF!ESQGP~CGNj*HHd#spZL`-oLbB?c1+|bwwUA4T1??TC%3xX srCL3XNEvxtwFT3hEVQvW8g$yi2+v~{*?G< z;>m${Y4s{Tr89GyC|TLeGe1`O6@Gc?AteTs+Kl0IReI#%QJ<7rg~eleU1ZtvFF5ty zpU&-_vvoHv)7pC )*bq4#y{Rg+f0VWgz&{SD0gyx%;388NWV^M3)%23F5?Fc z&rPKAx$Y}UdLfy|h3Q4s8UUW4i0$3cHMLs@`E$GBZ&JP28sscyIjxWroCDs4aN4b# zfhNH^`Y?S#qkV^!MzYxI6nr8R%<_y${m0w%!I<6GhKwRU+WNRjJyST9wq7i5PVemV z{Vch5<*u{1#Q5`7?x0pD+Jl%S$hZ;lb$h?0)SW~j%2BH{UODRGZQ6GdYuT?^KT~-a z00DXT6^XW=a|hS4k{GyR >N^9Vx^`swY;FNonb0nNUJxG`}@6+xVgwcM|(k!6tc-6c{-*1I#0)oQw zB3B^%$m>bTmEx)nH>*W>+qJQwk160^gz 7pCpFRTwk^Z2fZ*LAh+4cL2w^S6RN`0Y$C z%Law}pOFT xKwON5Kh$gY ztS2(lhxd+`=k+gYmNy(M(A;x*857PtO3=Cgq72~ws0`$Hco3C=`~-&qj!kTEszgk# z?jCO6Pr{+*2ZIdH_FfchkBVc{RLyh->-y5zO%clOV}0%E=|R~jAd&&8)CmbXc#7!s zeIT|_X%Y%`8a5I6P+@x9#^|=p;k5t_y5$; =LW$ z?<*rV76ieVEjxuZH&)+<+MBl6b@I!yER;V52}q 6Osr>#we?sYKjYcAY#YLY$OEdI+NEpA+sw_lwe{fTi;~VWAU?>jr VAZ1!v}9PPw;NhS`iYwWMUHvEwz{!Y}dIe7wz%7F5d z{2!H}U}XrS__-GG#E~%HnUbCZiB6e3)c#jZ;xg!Zv*Y@^%l|=TU_d8XZbV&3EQF{G zP5)6DXmP9jji?poq(0bBzj-*F&7q#xNJIabF9rOZ5cxSL4S>SpV4wm(5D2P3X7HmT z@l_RNXA@&@5(PwL`0=mEz~@9|9rdfC_Loz^KO)2RMdpYL%ZUop=(k%igk;eAhh#wc zhh!jUgZ(d(L5%7192ABt+#e3se@F&$j( JX;N_aBdeT(A`z7{Mu64e=Pr1+fbRs+$EN9>dW8>M@W*JO*+O zh}=-4%2x^T7`7R$2KJ2hjRMTk>XEr*(LTf`(Pc2fM5v0A-iuRkNzk}S(BnuzEC!v0 zIT3iCau <5hS2 A$2Y@ZAg4iIw$z))UD&&EL!y(4QFTtP`C@4;m3s<>HH9$wQY-Wo9{x qC+&MBOm_pl6h8BN2M@OeH0O1j^Bqd}U9v@P>j9bXs=!~#Kq4dAW;K~e9HGhu z)y6xaJy(%xH+8Bzxji-E_7-{enZE;Wi$0bgV_nFygFo!VD=Mab3F6iYT~r)z244P> zzH@^QnO6qG ffve1V50&NRY!xgP`g-)e>8Pb*{qn+n=}Y*ws_jVcXP$aW(dE;o|m0O+!8k zB`>;M2fxD!j)Vxbm?*BhX|eN|p5ef#01`8jA8%XqX%OJ0K|v*p2=Q$2Rk*s^ZRUz0 z00I!K&}VXG9z^KYUn?JB#K`sYleIrB>2rb}q}_xX)l?%F4Cgu3;XSO&TL5~kMvJQY zm`fkon(5}h3hrLpAROBGH^Cd1K-YMPvuc=*x7iVj5m<7mEGw)p)hsVH>33e3#ydIS zTbYCPA02KqI*bM^4ej_{?c6I+Zsc&N{>FcH-KIx}NDSKo{{Ko0o2u5C9xjlTIH(2S zM4Ku^VkpB?Fe$Mume8v> tz&8cH`U9=3MwNE{Tn%c>ika?l U-T1$B3(0PvmD!rY*b!>DJ2UU8ki&XBS{b$naC-o0jieqt1D(Y>Wi$ev zc|D=+V20H7UYA>C@C43yydXypn%%u&6OMo5@hjqKuj75aDkDe6Vxw91smJ#PqmqYU zZv%Cf1EQA%J`|)`;JQP%gw8rD5P5tSaP@~)bJt9VGa7*1f6yCOmA_gH2_n!UBzKNn zAvbTI%ULAH_400QB(LP)S7%K0TMnx1h?1AsVQ6)1<`Y1kMd&8@^@|6dTue^b%ZTyG zg^@f&vI79P1HjzH!rq04rb=}Fk~h{;&^okLPWQLv6Eu3h*RnVMB%|QaVfDo*V0=M5 z*ej8f$Ad b0S zocGhgp3WVk68#3LKxDGRdUi#ay p_Tsq? D=qWiE6RJ z>*@7Aamn5-vfV9;uPw@gt@7O&C-)iZudRvRi5FQ-lZ4pr=_+9DvgMd3i zN7*{rKefgYZS0c)gMJ znqD3+|3 S3(dj$&nfBxHw7noQ9Cp5emMRf$gBel z=deJ;1%`NLgaT^zUMMms;C%?-V*v#cV1ZLi7KI#Gkoc1k#H+f&j0KoN%}%kzn-7=i zi_A#&0ytlERy6kn87+|07(q34kI}q+KH{3C_+15#+?Y-E|B<=zJ@s$4r?v&IzM1=L z(y~k1Jlg2|mr-BdpBvu*Yy|)w{okZe&;*op)43E3%M=3}zhH*|Or+2P8-O*FMPM-C zcw=4OWG(QK+rL+GnS`O#Wd`@Q-ZM7|Hee?B?+Wu%OR~l+CTQ+!cB^joEVD?@;_EKA zK~LlzkQ^b|6K9{!ef>Rs`m@{g!xJcVY>|{N1pPY{naKuXk;`BqI*d_QD2o(c+@; zmf+APSmN*@mkMEEdQp2YpL-j3y*$=ndON4-L~n)ay#?Q(dsS Mn4ph7AlBL({YwD`1>`OCk~@$w>FOULnp{FshirejQ3jyi zZ@D?Pf58s{7y!_as)I`IPwzf*6;j}rIU%UPYgm&-;;q}ieblQ(04&3+a05yNu_bTR zol2FHSY2;f(Zhs1s8hd{Pdz}gf>TlARa5Ypv*=TPZqfYWzJI<{CR5-OZ=kxtl4iK1 zsVh{~t~TSuMex&4WU*_119F?Z4e<{|XL;l(Aes+` 6esNIW$wjb@!3e7<`e> z>kj6F!`4&y9M*6%v1t_2S?OwGGC8RSWByxi_yNN~05ia8{52d7i3{ghX&YiOAyO-8 z6$}~8#j{f>81X|(%mNgsYK%HtLqi)dT|7`%o2&rc<{wael _!4=r+v+tiVT5I0_ zzP-M(3I@UWp~{dOVt@x|mO=C<4bW~I&QGLhtc1t-=zMl`1TI7lW5(e`a0NO}%@kY- zk_3Dq#FELlATg(W3Nx{2RN%4>Y*K04nkCFihLR)wEsxGu!A%6S#M)d0Ky0n@Tz2>u z5k&Kp!3#0-R1E`Jn$KDe Jm+K!MRRDr6xgST?{=a4JMY%ktKgU7|nL{1P9)m6ej^Fk$U1v(&K` zfkNLo7muV42ZAN6nK%_s=9i*!K*UfpNfHR~Nr>+_6d lbd*smewrfh? z8L(@f5t%%fn*)E5zi2j=n>#K|$jZdFyFeTUX*yNO8mR8TMLBdq iwV$%Kv0_PznGDEI1AtL43>!AAZVXs3Z3uA^90oPXcUGu|GYN& >66wj_N |FeNn?O*4^*UeEI=+-bY;D!$*yz6)Yu6Kv7J)%H2He(C?oE zB+$ap9du{>AS31}I<_%u@CPD|QZ*3I2qXqzdH?Go9v%JLWw?O?tz$n% z&|rTo0gSr8`rGrnqR$CYsBi&{U^5J`ry^XqtaxGii|<8Sx>RtET=rs1)>m*l0BQ*R ztKZGYhj_o+3D()3o7=yH>UTdsfGrWc1@Iu%HKxiwVOD&?!w^M!Jsl_@3xPLT; z0$5frarl_fZv_9y4ab8Xn5O}5#u~v6yxqqIP6BbKtFv>T`w1qlDR8qXB(u!Elbo_q zK2jOK>okc<{ c_jQzl zi-MeE)P}?}l;FRURyoJ=|DYh=%J@!Z;pi@gQbhU$52RXh4#dh3%SmhMu4TK37t1uk zMVG~6W^hT2@%wuAnABUKZkx1Vf=0u7!bFtAZeSf!Oecysp%kSe=i*07O5r`K7RDSe zBzf@nkBrPMj0>YO%sw_|q il2Xom#Az$J zWQtO$4SMy+X|G0=Ko2#2rse%|m wL)w$^ zDeF_${I_#DlIqTh4_#RKE58rP3=xAI)5;T3O0#l@B=W;}?h6M~wuKOhq I$6405u9`pHB3yicfAktjpH+)?5maZXLo2vI^-a2 ;_EzFJ1O7G!f{kMx6OHo0|A-uE#J6ZD&xJom>Mt(JE?~o&KkLl=)c<5&w zR9j3>XwRK`wD;6zT75?TEm7&v_9wAgH~wtyMZwX>NnO+a&S$;uu&o{ZtG3QP_kMlb zW|`(Y4U2Y6^zZAwBX10MTi1nFkg?5j;9%~h`xf%nGZAg~I;w+bZ?vIXXWKXP!fjSC z^0uK!LDVTKi)zrB!3%@eAPS4R|A!hagnj&`lv*eA;P&4rwqD h;HN7M>ju?VN+%N;HqPfRb(=)E%O={x@7-~oMU>j29X=$SmT1 %DlV4%XsFAsUe1gag;yz~drfTl2mo7dtlc{*Vt0MdUP2EK`=5Z=76Lt=qT+KNa zJ`9=TZUJ`611gptS(!|;v93JJ=Z9j*e`1{;n;AT(QUQ!U^Zn;wR?riQ_22u|xk{M( z0@m0Q0=%rB8!1kDhA0*}2C;RCEUg7|Q`YJ_0t+<`+$TJ_HX*x&zjT|40&W$wRRhg` zHuh~*>7$+-F(NPZN|P43$DW&+hAt0F7dPaiUc6v-uVRK- >+Q=@%iVOkX|wNk*$D5z z=*CqDqmUd}q+=j8_H5jMW*3JyDjdB})P>b=k7Sg1 h*_XL?s%%l&AN4bdB?(h#{}HtzBNg4_^r9rFK-++cV=N8?0+Krp?n z5z019aBg1@6$|SnMKZG;@G=!Y_UfU=+yAoZB$R^rDeNl&l$NN&peWY-P21nYXu~(w z1reZG7zUm?wF~xOfb`02-z9pa 9Gv4<)f zMKj+Lz5w5SU^Nzq$%V2joDFt`IO;oJ5