From d19410d6cb4f4a65bf62e641ee15328019a3e9d4 Mon Sep 17 00:00:00 2001 From: mmdrez4 <59529379+mmdrez4@users.noreply.github.com> Date: Fri, 29 Oct 2021 17:17:06 +0330 Subject: [PATCH 001/114] add Advanced Heuristics Folder --- notebooks/Advanced Heuristics/index.md | 148 ++++++++++++++++++ .../Advanced Heuristics/pic/admissible.png | Bin 0 -> 74668 bytes notebooks/Advanced Heuristics/pic/c.png | Bin 0 -> 36239 bytes .../Advanced Heuristics/pic/consistency.png | Bin 0 -> 110197 bytes .../Advanced Heuristics/pic/distance.png | Bin 0 -> 77803 bytes notebooks/Advanced Heuristics/pic/example.png | Bin 0 -> 29868 bytes .../Advanced Heuristics/pic/hamilton path.png | Bin 0 -> 174794 bytes .../pic/heuristic proof.png | Bin 0 -> 77762 bytes .../Advanced Heuristics/pic/monotonic.png | Bin 0 -> 97434 bytes notebooks/Advanced Heuristics/pic/proof.png | Bin 0 -> 107414 bytes 10 files changed, 148 insertions(+) create mode 100644 notebooks/Advanced Heuristics/index.md create mode 100644 notebooks/Advanced Heuristics/pic/admissible.png create mode 100644 notebooks/Advanced Heuristics/pic/c.png create mode 100644 notebooks/Advanced Heuristics/pic/consistency.png create mode 100644 notebooks/Advanced Heuristics/pic/distance.png create mode 100644 notebooks/Advanced Heuristics/pic/example.png create mode 100644 notebooks/Advanced Heuristics/pic/hamilton path.png create mode 100644 notebooks/Advanced Heuristics/pic/heuristic proof.png create mode 100644 notebooks/Advanced Heuristics/pic/monotonic.png create mode 100644 notebooks/Advanced Heuristics/pic/proof.png diff --git a/notebooks/Advanced Heuristics/index.md b/notebooks/Advanced Heuristics/index.md new file mode 100644 index 00000000..2c3588fc --- /dev/null +++ b/notebooks/Advanced Heuristics/index.md @@ -0,0 +1,148 @@ +# Advanced Heuristic +#### Kahbod Aeini, Mohammadreza Daviran and Sepehr Kianian + +First we review some basic definitions + +Distance is a numerical measurement of how far apart objects or points are: +* [Euclidean Distance](https://en.wikipedia.org/wiki/Euclidean_distance) calculates the distance between two real-valued vectors. +* [Manhattan Distance](https://en.wikipedia.org/wiki/Taxicab_geometry) is sum of the absolute differences of their Cartesian coordinates. +
+ +
+* Heuristic guidance means how far is the goal state from a given state approximately. + +***Admissiblity of a heuristic function means value of the function is always a Lower Bound of the remaining cost.*** + +So an **Admissible Heuristic** is a *non-negative* function h of nodes, where **h(n)** is *never greater than the actual cost of the shortest path from node n to a goal.* thus it means that the cost to reach the goal is never overestimated. + +Effect of **Admissibility** on a Heuristic is shown in the below schema: ++ +
+ +Now we define **f(n)** function as **f(n) = h(n) + g(n)** where g(n) is sum of costs from root to n node. + +***Monotonicity or Consistency is that the heuristic function holds in triangle inequality.*** Namely **f(n) is never Decreasing.** ++ +
+ + +Effect of **Monotonicity** on a Heuristic is shown in the below schema: ++ +
+ +We will prove that **Consistency** implies **Admissibility** whereas the opposite is not necessarily true. ++ +
+ +Now we want to show an **inconsistent, admissible example!** +So consider this figure: + ++ +
+ +If our heuristic is admissible, we have that **h(n) $\le$ h*(n)** for every node n where **h*** is the real cost to the goal. So we deduct that **h(A) $\le$ 4**, **h(C) $\le$ 3** and **h(G) $\le$ 0**. + +If we want our heuristic to be *Consistent* we should have **h(G) = 0** and **h(n) $\le$ cost(n, c) + h(c)** so in our case we have **h(A) $\le$ 1 + h(C)** and **h(C) $\le$ 3 + h(G) = 3** + +Because of the *Admissibility* **h(C) should be less than 3**, but if **h(A) > 1 + h(C)** then our heuristic is *Inconsistent!*. Hence if we assume that **h(C) = 1**, **h(G) = 0** and **h(A) = 4** our heuristic is *Admissible but Inconsistent!* + + +We also can make a non-monotonic heuristic, monotonic with some changes! +For this we only need to define a new and more appropriate heuristic like the below schema. ++ +
+ + + +**$\overline{h}$(n’) = max(h(n’), ℏ(n’) - c(n, a, n’))** + +Above Heuristic is defined Recursively. ++ +
+ +**$\overline{h}$(n’) $\ge$ $\overline{h}$(n) - c(n, a, n')** + +So obviously we have **$\overline{h}$(n’) + c(n, a, n') $\ge$ $\overline{h}$(n)** + +***Heuristic Dominance*** + +For one heuristic to dominate another, all of its values must be greater than or equal to the corresponding values of the other heuristic. +So if $h_{2}$ dominates $h_{1}$(both are admissible) it means that A* algorithm expands less nodes with $h_{2}$ in the target path than $h_{1}$. +On another hand it means if a node is expanded by $h_{2}$ it will be expanded by $h_{1}$(consider that it’s not a biconditional proposition!) + +*Proof:* + +If $h_{2}$ dominate $h_{1}$, A* with $h_{2}$ expands at most the same number of nodes as when using $h_{1}$. + +A* opens all node with **f(n) < C** and some with **f(n) = C**. + + +Note that +**$h_{2}(n)$ +$\ge$ +$h_{1}(n)$** + +If node n is expanded by A* with $h_{2}$ then **$h_{2}(n)$ < C - g(n)** + +So ***$h_{1}(n)$ $\le$ $h_{2}(n)$ < C - g(n)*** and it would be expanded by A* with $h_{1}$ as well. + +We also can improve our heuristic by some methods. + +We are always trying to lower the difference between h* and h, expanded nodes and algorithm time complexity by making change in our heuristic. + +One of the main ways for improving heuristics is **Relaxing** the problem. + +In this procedure we try to enlarge the feasible answers set by simplifying the problem. + ++ +
+ +Hamilton path is a tree which every its inner node have exactly one leaf. Hence, the problem is converting above graph to a 1-array tree, which covers all nodes of the graph with existing edges and minimum sum of edges' weight. Now we ignore being 1-array tree constraint to convert original problem to a more general one. Accordingly our problem is now a Minimum Spaning Tree problem which is soluable in $n^{2}$ time complexity. + +***Pattern DB*** + +In previous sectionwe introduced relaxing method which improves heuristic function by lowering constraints. Pattern DB is yet another way to improve heuristic function which is actually a subset of Relaxing method. + +In this method we choose a subset of constraints by a specific pattern and ignore the other constraints. Since we ignored some constraints we did relaxing method and hence answer of the converted problem is a heuristic gfunction. + +***Combining Pattern DB*** + +We can act further and use couple of patterns and choose couple of constraints' subsets. Therefore we have couple of heuristic functions. This helps dominancy of our heuristic function. First thing to do finding the dominant heuristic function is to choose the maximum function of the obtained heuristic functions. Since every heuristic is always less than the real answer, maximum of these functions is a lower bound of the real answer and for every set of obtained heuristic functions we can implement this method to find a dominant heuristic function. + +***Disjoint Pattern DB*** + +One of the main flaws of choosing maximum of the obtained heuristic functions is that in many cases, there is an upper bound for these functions. Therefore even by expanding subset of chosen constraints, we will not cross the upper bound. + +One solution for solving this drawback is Disjoint Pattern DB. In this method we apport set of constraints and define independent actions for the general problem. Now we can sum the obtained heuristic function to achieve a greater heuristic function, which improves the time complexity. It is proven that the sum of obtained heuristic functions is still a lower bound of real answer of the probelm. + +**Example** + +First practical problem of the first mini project of the course is an example of this method. In this problm we have an undirected graph, which each of its nodes is a florist shop and has some flower breeds. Two brothers should march from start_node towards goal_node in a way that has the least cost and they met every existing flower breeds. In this case we choose a subset of flower breeds S that reach goal_node by a specific pattern and set goal_state as satisfying path with the least cost and meeting every existing flower breeds of set S. Hitherto we used pure Pattern DB. + +Now we can have souple of flower breeds subset and combine obtained answers by them. For example if we have K flower breeds, we can solve the problem for each flower breed and calculate its heuristic function and then choose maximum of the functions. So we used Combining Pattern DB to achieve a better heuristic function. diff --git a/notebooks/Advanced Heuristics/pic/admissible.png b/notebooks/Advanced Heuristics/pic/admissible.png new file mode 100644 index 0000000000000000000000000000000000000000..6b4dac099bdd1c2829f90b8162dd60b7550dca1f GIT binary patch literal 74668 zcmeFZWmH>D8!n6$Xwd-0ogy{dy(LJ|0;RYY_Y&MaSSZCU6ev(CxVyU)DGtF(aEB1| zghyWezMp5U^W$Z$tZa7n%pSSrntSeRB44Y@6Fi`PfQE)f@Ja!wfrf@TiiU{Jcr( zbV5`2JFix{^~v;`wGJ3_c6)dk+~}Nkov04|x}|B3*Lk zNvBUcL8dZ?h?g^P*unKZsQL68s93dsqQyt)8QfB$)-v;+F>PbNB%IaKfEPPctxcgp zk7YqKdLT0&DsIyPLM7Ab6ilg3dk)_bPlU{#3%=aCgpgUFyU|o*rS)Mhf1#hMa75%l z+795T2f`tKS@Eqd0xIFddDbobal6YY>0*h9t%0Z;Sk2oI>8%-XBgS#oLm4*?^fKr} zT=O&>uJw^3TV(q`(LWpb`rC*lglAx9Fm1dpyWJ@ahEvkrT|j9qmgaRJ;Zt{T{qCZn zk|*S<%L!bqTkEV|8HZl@6zMk@>iTe$FXv%l4&nSsv;u{YnBx;aKR=4lK7KM&ay~Fx z3q`?uzSA^ad_?zz6_8^eu``pf7;t;t= _081>6H+L?qrWp8bAh7V_L&RAs+A*{}R zd!m%?I0kwMWJkQm)`kY$AfGilMM|(u-{v~V>iZwHCFwgKKDZ)ne-O}do$z85av(&y z;K60&bx4PqcX_rO?I(AWx#+Xsv=bNQ_oBCC%-EpOmSn#@i}&DqOo_{)rOADFc5w4z zyQC!j%Wh BOSV~G*8CjHn$2DRhdvC$tX;9fl zE!+3#)y1~)ZTdbbk@$i1Y_s3xXCQw|j$fHaKVI2dOj}07UcDHRZ%s94DtX4xXK^gD z(cd=TzUuX>+$cJpXbE%=ZbQ*tMsu7L8#a`mck=KOAP2Zw1~X!ouNb^Ha>U0Z7QY-z zgPai&xK_JdGzm=D$m{2Z<@^rwl|0cvQF-%#gv86ehJDMPMoGaQy((L+Mf>O@u-t2M zvzuZar9o^1VKIn0VMbCsn3r#XHlpt|M% mhkFkjfAWWZ_FnDk8E9NZ==YZ{9d}v!q=3G-?X(vM zj>;V{0MfL>c^dW*^8rop;g2@6?a3cAkZ*gfTI5?k_a{=(T8@<>)@GW zW-@YDBnS|6tJJsaNXZu$VYzo&(sJWHd)>8nb>1nq*XTO`V(uwVDvT1L3Z$ZucDx^O zpkQAv!j7%S?#jj4Z}ytZ1u^eBlCN###d@jji-S1^6sPiRn(bs1l8lU%rV^j7cF;eM zb<-jpo%p?7(lRUwMUPd<5X`4B>loB4Xs;Q^5vKAB{q^mw)h%RX0Ws8kfGqi(0EiFg z@@Kfca@Z9hbMWJzP0zP`W}0WXhYzDUHni0h82E~baxkLSq29d9bB^?<@4i(V&|rXG zQrgJ(GI0WYgcd!`p<}VrX6zdyl9$hRFWzaprMmk>6Nz zFX2cj3?x4v$W5ug5)q{^P l83xp}`gUhz?`xh1ay7$Ikk7_U&;1B(`-A zqB@=l5)Iw+*>6tqM>@3((gZVgMq6`EeK0vY8CQcZ43?qmFJHV*>}th0gMn66@__tV zA4jCF#jn?eTKWJ)%&U*EX?t%IOjM!v;@uOK0|l=iN&uQ*Wv=p&mB#axXfN)N`Zi+8 zk}k3yqL5z+YT{}1o(Dmhg$VF~#_1=lN3Uft&RO=N2S1B|Hcar#3D;lrZwnb@uMcIX z?2niaE&IoCEvHwwNYO|6Am5PQEVbTXMqYB<+%tAJ#t$~?yCz|9X5QP(_P=;V|DnJU z|NTk=WvS%| 03u) zDZW5+3A0`(Gq)oDDD0lwt}I~wIj!oa&)ME9vDNbsB5`5wcS2YA0CTwjKzmHB6PTcq z61}^PSts(*L2gW0oQoNS11){Lrd(}FG(oHL80>n_ ?EygF(^5Nc#E P+@CKI)-f$?EsMvI9{k zTGNN~$0HW#BfWymG;L}kz%&@dj*?3Lyx6Ge;w2oTI*b5V-sAqB66^frSZ#diz+{h% zSfx<23VucAU9dH({v=casg}rLhk!0@B3f?!{4*&n)N6(^1mT2B&6t;CkT~~u&{CaJ zZn-%YGnqxUJDhk5L@S&4`7`w%Gh$7}g+agUy==1@^LlrIxG)WkqJM_<3UnwsvBXCD zrD1w%lWW1H@)<){lUR0F{;Ki&S8VfEh_0B&R}2=sn)d@Dj5}|+h5J99c#cnS^*w8D zr64Oxl?BorUAk<&NJ|obQo>NOmpLLLqIN`+z}_5eE##ldo5m`*$B2gP{3fk6tv4+> zYTOT(r5=%NwhDyKm<1p_0#b0oH?x0Iw8G$tL-aO`N2$tC777Rw!RwHD41AZ(75!eB zFQhf!BRNf-%Z>^C{+l4QVYHw~8CZjd2YG_He^k+HVPzoyc;t*u445Ym4(@q5cuI6q z$R&BpEO8uRb>z}{e0$DtyBaK xe6wvrK41Bez7Ld*m zB-;~wq<|~a$u(+_$!^!LgBRO-g9x}qJX;cJ_CY}Hoh;bDIXh1z5#qbCmbY39sxS61 z1c-aQb8g>Jy_tjE2&&D Rni1#JHHpag-7YiSFgY~X=o?85QP;zvK9bk^z-GW0w^cfQ2)?Y}6Ol1} z(=5U9d$;F3QkKw(-5#kM7d@YaS>K_uRh}ww$n8-|%b?~=Uvv H6oaP|s+<2#%k#-~{`ubd?xhG(`;b8TgnernJW{ts!B(t)9_sB=~ zYqU;@DHq8e$`9e{ZRz{bY1a78Ab0mz-1Fn#t3*Y7qX^BmbSm^+7YVlr9xtZg9=3kC z=+0^psr`Iptbx4OM9zWw73X@lRVUwX7utpg WBNA&wYJk`N;KrK^k< ;}PcmbH#2;~OfP#cEp_)t=uM(*XfuX6^0-E0ygts6fbepYhm?C NS(UJRfFw%9YBpK6IJjOCWG zzP@mqVPO2umQdTWN<)cj*-fJ4No@BBi!vl(C#Y@KsFT=?Jic>>8C#A@C*Sw1eMz#f zDG8UC#!F?*>On&-B*-NBl>3^p<^4(Ts6Ea=2JvWOlZk)g9H=O})!1|(!c^#t+Z+!T z0&5!~1{64kmE;&KvP@7lcGtKD^r-rZ2h*4JpPp-NwYdy;c$hr3C$6_!y==%WJ`b>r z7^TN`J|88rwzVDhaWD12T{+*WtFUpxH*2BsN&Y}2*a|iGdf=HTZ*)*hwvPWM01yKU zxNQDc*g=)fzS?r0!ssT2Zb9-3ex~D$aE|+u4xP=Fs+o(^FJnLisb~FN02D2_N{HNuI zz+rl`^vCPd3?I~w(*O?P4wW?UgS6quyI_iR6Y-M&(9&Zi)!IUd<3YZeTW2YQ26sa} z2Ih@9?AuxdU6jv!M%h}#rQi)-wl*%^(Ql(6gqrvvaMAZYDrBRZSr%GI9AePXl)X*7 zh+F2=(2^iD^#Mnc5EeERP4RrVIW)-TiWB}_*VPc;Aa2nl#;z9LLOzh@Pf?LqS_Xc` zVogQdO1`%W?qfEk!1#Ct7&|xgW%s9fp-O+wRV+(fv46jrE vlt4s^8*0 zE$sNPIBvE6794bt(jk>K7*hu+uZ8&E3mFtI{&;hb+1rVG6(Q|+p2htskn6WZ FsTmUHPX;ZKC|n1`Q`-r zI0;?H#>4OlayP!Dgh1x{%-w=tBws|(Gci>Y0M?oPeF=r-9adWc?MbV`?|^Jva*eut zgJ8j2BK8 @o8Fq=#_?(=a#UHG<_KzDsL^D-Gt$BWfB zF7>h#HNwNN?$o#4cD#|>R8=>Nh~^Z!=chTYK_OOt6vLGALn5HWs3K?Ixbb{fG_HaV zx2IeI1j|yqL-k av!~Zh%t`<1mSzXhcT0=08=md5QF{fbTI;G zw_%jNm%AQEB;;7E!9|`1 gPmrj zN!#p-i9=1P=(a!#e~0mP6|X?@hR9-;;K=v;v!}0yeZGU`YF&q&%qmoKe@2_z3Sd6K zKR8327OF{I@-r01DC%=$T#7e8h*!me+8x+k{T4ozO=JPiXky(quGb4t2<`*VJEG0c zWwE`fzO3tYJ_oq#JY30od=%h=blOCM=f~NXUQtc}0+bpaUM63O6qNBP5J+JcM2fPw z&ostvSHo%~7D`XUcWP=O)orTD9EV~{qF2mjlr)~B-Or+*kla87S808P0cP0nOEb$U zc`?cU)7(X{v9Eyo-T)~@dReT2~Q zL&aUEw0*2&v9^-Yf@6AFgYm4oRTv@~q$d3yveZ+?$;f?JmIfFLTV|4}K8%oshqU0D zib|}qGIuK*7T_N-&H6EQ>G!Yd(Yjj9WOgj^!s2grf}kU^uErA!6y YTN1}(0a0z>7O5`R#c2|=`zT4wpu8kgb20qSuAh#O1a)jt0k{Zl {eVBYrtUv4 zJ}yB8m4obL1ARCVll$FAWI!%1!E~U`YDl+=%l;ZYxW)UlO8dB#9sVB1PSP(4nD;?2 zOlOC&hUCuo06ga@($Ye$*`gv9Ru-exmS$s_IP}d;T)%UDtu#0JBz5_=lcPD|a(6wJ zB~H1M6N}9s3wC+fBX(RjA04?zem^@#s((ca`}@r5N?8y6z!?EPes|zm@iW2bqON%u z*ZJ^4QHTp6bDVft)-}%;ir*{>fC%u!%}uj!W}!OwLZ =*2_aQR+fyYY!G!X_Cz-qeC0b&_hkz#b+!~OXbEUA2=pzvS6Ip!= zx(J+z3eBGQhhA^#;SyfTpzlZXeVLkGH`9n%+)c{ImLcUndv#)4mF!Me!4;u6ZsrI_ zAP3|q2ZuqC&Q+{@$#*SY{=IxCgf^qA6+&UK=(!sEtQ*h?q;Xz>B`*cBaC&M(NA?P2 ztwPS)Muh}p8Lk8Ab^|vo7bs{-0RpDg(iV$}+Lh=bxXL`8GipgT`3uc=SccmWt5%4I z1;?ekDY*xoq^VPz$umus-^ffF5Y#7;b; v~A9cYl|7Ph}H!dLF0V6oU(=-|2Bad2&*eU&fule>^ v3be!xV7lnA1choJ#6b$lVbe1h9Pg zGbLwextlK^&(tUlfaFGNWyIcXeTIEz&SdQG+T|2DV>KvhvJ?cP$-P(yJ04#$5oy+; zcB}?|8R Efbmm}!6ajk6!`je-ajrrPU%ibzu)>pa_vSwIDw z;)dJTX @L>U@4CPp7mljdds{3hL)iZ>@p!@qA3 z|9+r$KtzYbi~&k~qG|dR$#(%^wCXo>U6n0Pf{%~pNrHGE0E|J{n~y#+3@)p&2iI3u zSFS?{rqb^=G$)>-W7| lkHysLcYR+n!{rxl%)|1&&(OK+ymhL;n|KHwM%gekV(%xE3)z`5q$ z@ C6aSd%O5d)_ay@>W7}uKD z+?e`y$OOoAVRD~E(j4z5W1$~UiuY^g@jTpZNNGBFL(aMUQH;A;Y5EbM6Rfghg%)yE z7IIN+B*0tSiiYiWy*94)KFc~K43E4ZgIRPK={gHvo3VEuJpIPMc6Hf4(v}RvZlRhj z(_!x3M>Cr4M8la^g$k!7KWnZXd7%5yVF;}qda!@K{BS^f4L!_olxvy>_8Vp}5!7 `REN2j?WiHlw*A;u+V>(YqpoQn?D z1{y4XdjCS;qL72ss^<+SGZiQkEXVS3lly0y$qAi2B+&8=6}z6W2EAXG7iuvcknJIm zZ{7+%38!STqGp8i{f<6f))GD$&;k@Hfx_ZlgvnWU4dRa3Gy;EiZ+4{G98$~{Fq?~t zP0JLbFORrQS4fHqPAi)&g % s;FXia&TbJy7-z&!WpY1Kqoa)*@_ETCagWu`~R^=N8 i(B8I6?@7AbWuk!IfJ3)Z=>rl8HpOB1 rK2Ao+raA>5h3uJ*1h>~$WdO9z2ae!iF09)Pq* z^qpMrl>7vFgxu$c@!eoPRS1Rp$o1u!RgnAjDUG@4VaQB8z|=yNj4)|~eRx-oJ(I0k z(_^QtY~@W6UlwO>pYTgjt#4*uY3NGLexd{Vtupz c2y&=8T00Jdmxu& z_6rO_9P^)a*}zH~sk8IdI4h~J-u&X4d2d&vf=;(gZ3B5S21k5pZo15>p+Qk=$NI*> z9L~JjP(SrHyk9nuAnVz5pxALPp*bn+P=6zqLcT9y|01oxD4t=e?L)pgzT$xp7ey`q zK$+}$9pQb0n<=dbY`c#rK(3D=&gEi^YeYM-+#&xS=rvcJ!3liPQ-RH1W{)i2;n=KX z ym2p XH>vQi;sxdrB>xyu jPsisxiUqj_@ahRxq~Uj=Xyij z48M2j5m(2l$S#~i-9qN_T KbI9k(ahN@}qj zQ;x_aY%beNgNu?v{jluxQGmagy?ytEYwqS<;)1KO>GzR$$T?}S%f+if#nrCwJetTm ze?MiZ_be!##N^#Wd9_M6FQ5w5Z$pOMuf!lys*W!_5G 2oYN zcs$2khK#JR|I1+`^0=HbKTpQ$Q$<46Tb5BZT7uD~eAAv_@Zw78lPnh1$W3?9%icI` zixpwj59$s_>jup%M9uR2q*QEQ2N4rNqc^uF**BUuF`gD%R4`Y9@$xUIJw7S!Bk=*6 z>UD8I&5mQgh;qbwSnqFx{(RC9SNN!|?m_q`)@6G@&9oYbx_eFCSFIWJAdOtLCkOnt z^`q!$kteTvqQ#a7odSthDR!*4i>m%pOi~sL2Yi}o2{OVRljvA{v)A-qAHPV2&=bi% zN`GJ0^9Ys9^a&qpy(f?4@Wpo}izt4Cawr96b=d3Q&~RzJQs) -&x)U9D zEE!WIgloeew;_#S;^jT}5H7v~mnop0*1g;uS&A(%W2bw;BUdK|K$odP7n+-?Ri>!p zN_r97k+91VkUpk6fW)O)Aa_g%=BosS42wEn?J(RP^mvA!M9;97sZ(Evcc-2WwxUlh zkAN*#vp0+xGt+pw!<~S6o7&vt56TQ@{LOcJC=kHrdnx^^_yyd~ZPCXELv e$L_?P&=QLHC6t6fN+&tYztuII711uaE8 zo%|cHsaƿgDX&?IY5PWZ7!n5E!D0!6TZ*x~~?um>x{llGx%#q >c}8)(F@ z0(r9VwvHF}{e|#$PI+Fxz=4>rDTSt$gM+zH+a#j+s3nMO;_5tAX&`}HK@77gCL}Y~ z> g xEj4n@+=7qzVirbUL0~yX`OcaRm zm$*!|wGqtio>Gf`3Gd^&!p#yxY71$xma7kp&vA}uG7jQ!tpp3+k@8G>Q@o6i{Z8q* zF3e@AtWE)BxSy>Bv;$;mCv;cXlq1P}zX+XPqxzX*g;QF@7MGkGyFR?z>kup@>bv3W zy&r-&`ouTt7RnbwF_`|6dv*LEl4WXWD8NR|l9u~*u<@Gcxmsdr XQgeutk@v%vqW;7H85hY6uVVcc&Y`%rR6lk3qt083f!5maAbf1lG+&tD z)uK5}36H|?DpqTK`|^VQ6S(+RaO~xM15FH|H9$xALwMd&JRNx2NlBO~lgTViz{Z!2 zD|e`?>@wF}rf~VBXq+eCmRqfGfRH`+3$ChB;xBR<=m+9LVYN^Ox&(lg$7qgA=H`^p zqO KK;V~if+zy)kiQW1W)h?_d`E0gLv68UBW@u>RV}oT@jA>1F@$i zr%iV;3vZ@YiL|NdPQUCXdSXLdVQlLL8Ac|9SK{;^d}tdqV2!)$cr@{4E)OGvwD$tQ zLW1opUW4}SVNy$rx?uaGB`74oM2{!rV`7u%AvpE9yC0j{UfDC8**f#JvN!l|c*P=p z_JD}l;o{*+uYq-6db@}|hPIe D1~Qmp6Cao5H9Kr&i4(83~<#> zcYDcIKhEOcT!PCz#09_@8@yCgv1aVs26o`OwsAlbj3wr9itcc_2=f}}DDcwGg)XGY zAR_L!=#@xr61vx-E1iLLLat*MOpyi&L3hMvI|u@90tTiJUknZgQwgs0P<@gICUmdM zrcJkf!uBeoVxKZ&@gw)QGmsJE{?IWlaxiuBl+AWuQOwUc8;kRdb9-F!2MTu=^PoE( z;669fPNz)kQ9q#0=%v63kzNxJbg{RuH}KC?f`V8273?kOX?u!}s58=KYLBV89!~Kn z4xwU~cBsg=j+Y9XKt!*@9<9V_^fqxfXyS>cot+Z-Y7#6KaWj|dLI5XoP(Eq@!@?_L z5p$S_spMaS8L$ZB6`3L862Wf_IwXk8+;1@v@P+J|c@jV@#~d+Vps;Fa`ZW(YiaDm4 z1~X&ZyqmZ=%9oP%_e~_4%o=kqC5Qh>LtM9IroKFq75k~w?aHzE^NdR|4C*!?5ve(n zI4a=AaVYMNiK38Zc3N2IF2bROYl;AUh~#l6$C)Wj?!$Opd=l;QzJ2p&H727!xtl-8 zagf8w0-}9&^bJv1^CpgBKbiurp$&ZE6J)}mZthtQf3RcHJ@~xYDpoYJh{2yCeqh20 z`nqk5g>n&<27vUM1VRB{4j3 DB%Ck-&SSt_8__ TDiQ{$c2F$6$<`I_agbj)Gi vpau6nQP=A ZYT#q-> 9YO%pV`dOU2J?l`gOv-s`J8`}gmh0INZY@Zdz3|merYDX_Ii-e z8saYh$d&GFyc-saPPoH5nyegO=-Vk=v0O?Z79E7QBiG6o5-13lxQ`yk!6sDzfmcId zg!tzYJZRF;E5cV3h&E6BDd~ybIHrEU8OreD(iHKXE(x6gcZ}PW!y~b;UBhoQr?A*= zN~(&7CWZec>2pRI&86F)OzL`5t%Ca{2Xk$=l7kCpZWw%l)Np;KQGZ1*lwt);5ex 1QR9bOfd>t{lXFL2--}qCCRYSQTP^DmKWgTwmE70g9Y!!d(u)RnIwrp} zC1p-;3rTwVwi~UzSI;^5$UaikkinO@RQDNF2u*SV4;?ZsCr+Llf83j0G#tjA|7=T^ zE^_caCl}V^;CR8OXM3OMh%Y9>g6 sGS}w@^!4!`mh)0U ziq59+PRV1@zXiWtlzKQt{G%Ithm|Y$_KI9MLewQwfj{Kgqt3nLRLPd-1?L@gl=eBC zJAJ{eRxomZ*F@Rip0AWYk^aD9?Ve8 ))iOQdjgia2;fi3Pf7lq4e6o#YePOSrHSt`E6V4Z z8!4v=9BCf273l?mOe3**C1}t?Qgi&C%9>a#12ILiVYvI7+XpXCv ;wtCQ{tGRX_nPMW%=6)Xh47)HTaz9+5-BMvzGooeBF7_;!mA9wWo*oo& z@h;sOsD=wdU~>wWMlr(_zmN2nWF=@;0_fC*>^mn9x8!aLF4&1%;;y!}fl~qcS_>~_ zLB9a{sIcu_fDVin9LSN$TrbyZ<;jD~Jcjgl^|Gb0Bt7MfUSP?Tv4v8=6VMGShd?z% zNLBWl_TkMzS6*N7LQ$+-y5kbi$xnT^eqQZ=DhvAkM2NIam>TFf(m$EikO2Oz&XQNW zKn%7y?8NJKkhw)#D~$MbVWAuR&;0d2o1*Y(0+lM5? =z ;R+R?nYhX$}lHcf`ndyHLIBZ{` zkhaonGV6a 6;!i>3eL^0g8wkxp-{`q_V0#UX&IswhKkmGxh{cekEOMvY?C zX9wN?s>&8sm4;Aux6)sXmA?y0KSzzC-K)9se;cX0s{S`2|C^A%r396;^FIywpN9Oy z*8R_9{m+N|(~bS#^dYS^B-Yjnktu(X$+!uy(hHf0D*nm8bW{0cYRyeRfd6^9pnzZ8 zV5-1qvNk-NTM`?KnmS#>7G$ziUMkLU=g|~V&QS})uKI81XyAj 33-#_*M7*h9j@-FglpT zN9ct=5H{Z^iuySR*zRl-koL2GlCLEw>^>8*SyT}!d u&DcZdHB>kgK4|-SC zjIuO9B10cm|Cdv?6b;JBneey(iq;+HfzHP1igH>?2B}2_sw(rBQ XH5TVm{` zjudVDDbx@4Ib`IPC+ot~D!szeLC<$e!e(*uM^Tyi-j0o;-4j$3mZ(u^%~{e)NEDbe`Ao33mQ;f*3& 40sPUe@3hV40ApmC!Q>~wM{T==cc7E z2CR5ei~B%`Ph%Wqp0eM~ITRIe-!2lUl>N(g1=+CvB;F3yU*}RVEXzBc&sWmabh3Z; zwwxcdXRyP4qax~K9YDQ7&_-Lt Q9V^ot&*ib_> z()qSZ^=~ PyQf*Z)X)Abcc6>QSElvj zAM8&SEFHB$^B)QX77t#;rTQMi0CNLPE$3ac=c=ggN~fWq-N3x}EazWy(Yl7q_<7)K zPQ`+SfdBiU)jv>TKM>WWg2}PBe|O39F}nHBipu35)hO|bxD&5wj`X`w&c7kY(>pwn zy_>7`cPIY-`F} 6?*6XVKJ4nP-O5e{Gk{BaHc4B%og0PV?hJ8H>QhP zJxF}Zfc5{4(_dR+bj+N`2MibxIoxUGYc>>+=dDVvR{VQ9f*xQHY*-0^?g3zT_r6G? z)&{3k`v0}W8YD)Qq#FD1R^}gX{%g*@s-fo6uRHmlXzwqm!xxHbYdHVsUw^CNKi;{8 zvJ~3cWvqYC`rk!c@tIJJb|wNFf&W5F7bsEsWo3W=KLv(c2Bo4_3Nm^Ge~XwUZ;+D@ z FWCFnd5HA`Mz%# z!pS@KuKPKxYZAv&{!M1w;Ex5?CtWNON~OTzZWOzEYi~~#hlpPJ$B!R2p6BhJi0Sd| z8@^K;M@LmUI=Z5!riGxOdM6%&MATey`(YiRUteEuuJt9%P*he{CUzH^iWMOaazK?0 z>{$=A=jVPVrmr+4%K=ZFZNY7OLD0PkpA% JAHyH|ro}h?v1yZ-jk-B5`$x)w9scJ6W@<$G^W{Cw< zu9vRD6u?&H&u%{ DYxJa7u`pkJRXTWiCy3)HrI5H*=IR5)$8boXIQ3BG zA^uGf*Y(d@Pqp)tDP1h0sKy8C>+6r+R4DP*VjKV5Y#nBihkVYHk2Au=D=1OG=2#!e z&W12ZK~=LQvvh?bLLBe&3{ms_X}$*yFwRX1TvtOP6;^Q+)5;rc6&98oAXWVN6*k-i zf}L+Rh{w7Z{T^?Jjdp#Jn}|P*4L>jZ-5JS0?J77`Qh7S&jB+L2D810Gv$?#u7|RKX z7>i)=OO-^fB~%97-t4prIm{+P{Vz5f7tg~eZfG@Q=EinwV9?1D<7}3EEkQetnUuxH z+7lnqgXqNE-|?U}KUP2svsE^$r&I8@n5c2zr+*s#FKQTH20o;Q0P1$*n!BX+&8ee| z49uCNx5u~obhUUsN$^%?J
x09!>>I~p7$9yB=3I2xz#-B-fp4 ^_Js8Gz6nkgwG*ARP?V>cWV9V{I&t{rc_I-3e@#}*K zwa*a@{=)Kkw+K{r;0)DD@6-?d6#t9y>~7J8^^=uou5QO^uFt4U96r1zJF3|A_}4qu zO%?;mmA=TM`ArTio1_maO4VK14&OH|7v|zwBF1Mb;Jo{7ZSlqTLMUjtWc&*5MWx-1 zXlfVM0p5;Gx%cVTgljeXzPbiEZJ3(5icrYm&MptFX5C0Qkr)}w@7G*vy; WP;F|T>R{5*^b z4W~tm@V1v8VYBN*-x%SWiC^wi*o;6W@~~VXiitK~nh8^F@7!NdIf*q`VHb6xgZbl; zv6E>8J HUqn( zPQ7u#Ph@_S@<3s9G~eh0wqrp%S)RbDBGMV>ym1Q~soliZ9aMy{_~j)L0YTv^!0%>j zyX4q$4%JSz@2-m^FY6>y-U6kgTW~iW=Bo2EoEDR1Pl7OUNaF3?x0}iDH_Xn>jk`@5 zrZC*^!u2=Zt}2Bq4gi7K5 _i zfi&1jmYkl;P~DwPyLbsqX*;^G`WA+Al+RIS`rAvdH5Y22jK02pMXH^xE!6n|55~jg zp1P|aIBklBm_Ecuz`lXx)CW>lsy++$Ki>-a&)%5{6E=WJBnf6ae({k)UpcE~#B%g8 zZ^^+3c*xTh^m%!LW<-nLG1466Aw`TV6sPAVCaFil1#b)r+{aPClMx!j7`n+G$k(d7 zdIIJ+Hc-4_{*d +Q@N)gB z(xNPZTp5Qq`0D)we bWB}MpT2}UIg5X+`ftvKXSgy4A|P+ zRCV=U|Gd!P!A@UsazRr9Cn#-3N&d;SdE9ThvH{_+dPR<*xBm{$q!<3M29Jr`z#HsP zPiFe6liR|U=JTmaS2)CgI^K%D<)k9}`kC6{I <@N?h zHuwKsU6-IK#ZZ;qQ~^8Gm-k2H>F9p*rQ@PFKKcSp9Eee`Ntj-~%w@IvN_-t<)Yr3Q zzFB|N{Ttf;12dAL=A{tLi8rOZkMboFb=1qic-2UzNJ8QJiX2Mjba@4U*SZrGLjw;L zHuUdx?%i7aPVNf+7#-G`dzGGpB(h{;?jvzU3tc?T=CdBZRTp9p8+*D7JhK9>w2}t- z{^cx}KRsLR1C*co7ATme1m |f=h+^JX|y7~X^ zzs%imR&SsHAy@OcnfDD6PP*SCmmDccQ3M7ad;IQC+Pq_qE}DE-0T?nK-O(%leC?ky zRL^*4IQWRw*+{NYivAgOyp2>Dq4#(2dgh8ay@zaNde!Kiz1!N{?9*)fW|FS^56J&l zHLZUQT&_|ihX)AsS!}PCg`nq^Um2-~#ah}n@lQ-l%+1b7(oK}heAVE-+b`w{dq42} z4qPEewMl>PBmNVMqjU(RBAtGYJ@b`*muH~kA)&%$Pfn1 =GyB5Q4CftF>K(h zs;u^%%cuXZ{T^x(>+hzz (kV1+XFlwpAUD#f>v1z`(f;qlF3NbPsR9@@5d?&U>uw{B*&Hr03$;?$ zJL8Rl=>nsMhK5CTGX-hjG}wO#YVBLBH?~^LFdDJ<`wI<1e%Gf{UKD$W?r=G21d0OP zfkRZ7V(cYyXNhe#$MS6!>fMT1CKWRN?fs~!`_z0l$fNX3kQukj{1hX_5%FVX)ViYi zU5x`4e+kNGuCk9cUtek{?eq_smsLA1q|eUIeKSq-`u`Vzw8o(~j!<-!M;9lX<0;^c z6+PyO*w|Pb6rPT>0!kfrk|IS$%~__pkT?G|B7Yo_bMFjy2?Bx8YO!6q!iOz##EsPL z*}Ch#z5UTI2I5O M)gMCXUQJc#-r zpuUkj4g4-KDa}%V{3GA{-^Bj{wMhpJcQ 8W{f&lP)-7W^b <`O?{kg+TDop!qH#XIqP~4<9`)m` zJO*LjVB9QOHdo_g^W92a6cUO=En7A1wU~e65Yj5N+? a5Cud8M5Ma} zq@)|AL`p@vLAtv^K)OV_rKP(Y1eDHAx3Gatck|s_&w1bT9{>E!Z|0l%m_5uM9_D%O z=dN|FYpr$N%4OrjJj@(bRnMkaSE+=+;OoQt%p|{K!PryFb1u;J#_K9KCkL9>!7OVf zJ7Y8%V758Bo13tHgo}C~9le9{yKK&FWQ^?2>{V^za^zQFL8=YU)DoXLw(tB(zZ6C+ z_rDbZ^|}sr|1{S$M-;(?<^?Fik)bs%`!1S%XoBinkyB_kdlbR)nCFHl@9{Z9?#Wuj z=qM`}#aOHwp;8Wq1>OUM*@!w$OUdA!$rN72LRs`TO2ET;?E$t{x+)z#c|FxKJ4u(# z(yrkt7$m#tx+y j zdN7 9dpNuHzK{d?*(eoT~;f~IO5&G+8G&L#TD&|)6eCuDK{L*-rn9G#pRMqnwxmX z-BvDb8iX~z(i01vtyNQ1?M&H#N%|uI_nHgMokMey57hy9&S}emhsnX7`l`+ z(BR71o94A$m7c0JRe}o_$tx)-UC$P1)N>X`6cLJW{MJRx7X8qrU!+#e#5|uCZUrRo z4&f$NuPe;&OVc4%qCEX3fd>Bs-V56&8xL;?N22S*AIr# }nDO#ak7k z;b!sdA;naQ1xs)eB&O*00uuQve8a=>qD(p2o=lu`y=goI!cC!JZk;b#!w^~h1H>n= z@b&ddb3iVQ9F~%(miuyx1*pDSPrY7GwaGjNVn@<&hUUOkc_0cdHg>pKK9CKZ99oDY zvvj!7wbOZh^F{ro+dkTDKDMkf2%M~Ic}m?vMkm#YN2Py$T))$l=y5SUzv?yW<&_fu zT;C{DNHq1yT=rta2)E93M28j9L=Q#L!TS#Zf)ZTJ6oc;Tz1ssLO3kM#CTK#lwZ^up z*Nt5x>GeB-@pq7 9aLh zEAb+_D%6@_p=-8##1ZmyPzi;QA0y$Bw6}yfXLTESZ{yTExF=;)S~2rYQv~&EQ4H}p zZub_81wYP0C*=H@I~z&668~!}f4zeQ=G>5xL6!B5=h2vwt&nc#X@$|plr`+Foh`Wo z-MWLzfF|aIW-> w2TgOIH9%YX ThWllGoJ_P;l%jzx4`Ax z9d%1yqSop0{v@f?B$ynmNG*<}5qfRc-Z(wtjX8`?o*v(-G+>-b?5B5rylD5+k~w>M zrzzrGFLp2D ;vEb!t zO&uf|57$ed6AKo$@O{$fO=|d@-1=rfK$xZk5$WXXg0zT}@=bqJduo<;I7k}&QUK+# zUJ{-A7R1pX&VTvRW&a25NCO@ZjrS=iL821>92jH~RLNQ}E5>~TYrZy3iMco$*MiEF z=4nqA^nMPz^Ts132b8y0cRjIks(Z-Gd{;3*@W2e_IOk5gb!D?tU?#@^4^?S%Vr$b) z bWD3|SVdK{Ln4 zEp+k(8L&os;Ymj?>TPc8(^^0{%Vq7a{Ep7Blnc5vu;hdIczK7pE}A6G?)iQ&$dN%J zA@pqk^v5q?K5a1-1Mpp*_UvZwX9=I(OLI+qS<#{Ty44kqBmEHGsQAVzI1>Gej5u@Q zJgTs#-0o7cZere&vlzQK6ip{3M^QhNTE}w5v!N06%}*Cga-fQ9)PA$!5jV$M#G_X& z (yiE@6^MThV$GA1e(9p zjDAIs9$kk_y6TPe?%GgeUFj`ez#-8i1hK 2E;3)z92^|M0&Q8PWyVm*KG*?aDF;HsEWrYLoB z@M91E>EMaAygX#DK!!O37;B?}L2(+RW+5qb+KMp@P|5HG={G-}dWV%^3m{(F5P>IO z<#~`epLuiCe64goIp7iVfS5Nb6{`^tKMiLS>~RK<|8DMI$digC6e&bh4vVHO9!j(g zJPNs1gL_=z`MTrMB+vIm`KN$_X8jA{183O)SP{o~7Tl%?6~__R%B2cM=Xf4$8l_y+ zI3F0KVheOQ?AiPsJ^9Ps7z6HQ3Wb6wJE8y8admSaEWxs7(N8qf8PK~DNG`@xB|0MK z7tJ>p4TM~LR*p%YQMbM02LJ(U940)lm6XV7F%y^b;XqpN&)y~l M!-ZslU6O_iv;If& z6^*&!Qx4FOI_TqhB~#%7fV^P8Nzi2@91i`%+xeB|kmJRPrJp_o7u8j(w&;6f%t;{f z(i61SS-uo_%=&MxfU+WVeNHq7YqTKVfbChfO*y^_>#Qq5?=!T24bj6mI8Sbj*v-2N zenuxJ v9qnw|e#F{PJL6M9s1>S_{65s#TduR?mC5*3m)a z%1iM^8Z~eQWI}a0|EIAZkh0@J@GimYGqHDFWg!QniCUE7f@Zaa#^Y`+&nx?sjjMjX z9Z|dU mOE2EOTm@-n6N$% (%{2d} zw%j2>Le1XZUjI#BMzLbCW^#@fDUS`6JJ{}>p%x^u94y>%suCJo$bU2k0?Z+YiPz%d z;^_2rB48OJ!LA(>H`RA; !Yn=K5-OREmg* jIvE*hGA)rHH&a9X?n zFr3|SoHD38?oa01r!1(euh%Ot;W2JMM_=y@;DmEW&UKvOjj9b!)^oM4K{QUa|Jzo0 zN->ypL0|m+{jm8=h2U`?0FTl48rYHr-RU_x*-~(s)T2@{;G5#*CR8So3+|m~11nOy z>Krul?-kcl`D+ui&$cGzaiMCwK8LM?uKN+O0+=o~2)Csa*GvgVv8^T`X;sVKOPW|( z4lKC@iMjmIEOkoos=40b)V(06h?;f@;E BlU|$jw#avLSn!loZoigsb{&ZZsC2RgkE$G){-}wt? z2{A; IDH@u9h6;F~*UK^VgvqyzJ zJf3%$HaCXF6y_E-7Vekq{4(p>e%JwH*6S0c%j>|;k_IvF-2D7}A`bB@|Ghriu&n-Y zL1_(We^yM1TY(=*)6YbkcXAA%kAlJC#Z>{>Dp_PLQ?5wQJQ+r6tspy%Cz@0Bj+VKk zX?_7sVAKybA6!>;!21KtUX}xtg|2(4iYk0fl!#X#>SfTZSe0dicK3Xw@yc*yRz}45 znwzbTkbr>lg+Ra8D-^g&$p$>fx+qa%nTmzgt5kmaE;6#-&ue9{B2T~Jj-6rg%9=sC zV1P8t3e6tpG3bi~4|=VH)OpSpqUSKS*zP|PK`F7(4Y6dqYuvz&w7=R9VXyhZhF;CC zQS;HI%z*bga0k3f%c(dbH2{K4IvK|Mo764m7a;tWwKZK0Mc=|qfQLV)nms)WNC|r> z&ryb+(Qa6;_Qt~v+#wKZUCEsVx}|ca#cGj2WSh8=*>>5a9!w38-~sg8;dJ7<7c$Aq ze5K<4+pVYUA8l3K35IL9zU@aewc364B(wiGZ(&L_c^a8Jce}K|9ttZSt`$L+m)g`C zesmx7o$%kq$Na&lELrCN^-3KEwguK>Z;pFr_SV+d<5}Ma2wnntE(y3m`~Crh)Z=vV zFf#R$%3jnzV~Ea*Ejzg|0E~kxDrU5PA)8Md%K9>E %&m=`p^W_Lpro%BXvX-xW za)macXf6Ef3`9!3$^~*y2E9gIe_9c2z#93uE z;ysh3>3C5eF=i99T6*L+abvTP&O ^ldF$C 7 zXT&WxL=o72R7DUd_vnHc90S8MkWy8Z%@%U2KOuJ(L-0_$4z^t{jymv6A=(Ag+G! zuW?OyXjE3%DUu{o9``BTThG1m=zWe@2@j=mSocJ>us<{kLzi0ZON`YTi8Jpje<8}O zUc(|pShwn{_T~2w+ajX8hP*tWcijlHA0Xai4_s8%9V3lcYl>@{#pJW2OrIo*+##gc zmrceQ)VDO>N-YF?O?l-?VKvf5z%A3%$tR(eLx1}@DyToN_;qCtYbSb^6EOz_W*d!L zYp
VKi;7gZ#u?xS2McVa{r?%=hkDN2$?J6VYhtqLj*hd#N`(g*NZR8*w!S&F~BY`^N? znU?UaaT*2lqhRX(bns1-%|S&v({*%<8GKP~HQ$2$qfCZn3#pUoHNhDXJ+I{mv8P5G z`&Mt?Ys5+l(Em8bzf+@r+rc;vBotm~%fT4|lvbQFNzbQrqG&p~*07JcHK<<{k*PB- zu+Sv=A6BynA0hqS)}AU}0uOSM$n)wBXwgJ%eQrG;dNN<4-|~+~{2Sfy=7)oM?Pi|+ z&+0~d>01bmOeyG%l^GoNomwe^Lqy)r9qY@v2P5I~^Rd-gUcPAZJ?ai?Maw}(3E*v+ zfVrwszI^-Nz5`i85??qz?oDNPR+QSxs?JR%iLpo4tGNzj77YkVUb!A;w)Uxshz^7z zz8g}Kn9QfL+5$X7F|n&u4CueVjDMULQe6Km))3T}QN~!(RQ~% _kL*8;n=_Ej1I-vb!0>>tei6j*&qz8?e(G1UlQmFpa^v9zRIPKPUnNN(4Jw&jy#JJ}YS`4SHwl zT<0qL=u`qhT(|inUfVrV)ToFLgu&6JWAG@=-yX%6BGjbR4uPr81Ml-okqima19&Kc z0CfE@d$iv_!e>#5Ej7b+GYZ2lsJ$-`WuYm)p%&5qczmA3tz7BMJe!*>$mt9}e-y!8 zWO)LDJk7;bkc#^bq;S@41Tg-M6Two^=EO1z^H*iOM?E_<9ECZs$po1i{iK+>C2Nj+ zlH&yqRvBz_8daG7J~a8Qv+k8P4Sa9?s95pfKTQY5M&y>Un>&b?KqgZjb8z`)h8c=+ zab}*)(hfHylV&wBTgcr8sb|@WTzL73;v<-->Ih%~;It&z=X4fDpl=iLz!I)h6`kJS z44WEz>HihI%$EI9sl&}^Y9`HPSCJh}9z~cT)WI~1?&EI!AYu(9jlJHf&Bc8W8q&f6 zCPEX O`b?~{NB7N&d?6Q{QQq5HKiwY_6 zL*5G>h$sd|=RpP_!i0_CWqH$fV;pWy+GIzmywP>dXY}aRmC-kn_i^vuev!S>CDn`R ztoTl^;JjdaK+nZCeCWJ<)^KEZvE5ixYv)FPN1%C`yQtxYFYfsRBvck!7UVbSHnLUk zf5ezOJ2o~OYHd!=^VDBBZZ)Z-mTO*=K9$l`YptT9M}F(|NbGGUIL8T-N4mvUh~tSi ziWk{SL?oA8Mq_TD_3e#3xue6zd9^f=pMr_Z%Bl4PB9w-@qN2XRW}2@k$PnS5Pe_Py ztKK*Aczb-}G92l=$xKrfZ*HhiIo{%n2_sP;1g^b&v6F%1hFQIGaZzY{GwyJ{d{Wqb z$DTZ>a;Wj)Ap$~7ZpAzOtQBOpwMRqqRD^{_zKsuZgDRwCo>mke#xJn5v%hcelA9nV zjxCsjhTE_1J7_;K?Ye4QV2FF*R9{(LJq-fiZI5pIeWPa8e})f$botbjs!a4t-P?J+ z@FrUMAX%l-&lCq)JleT)l3&MHzuD%CrWn}WNh=wrLHSi TA#ysPeWIlXY_CyXE}S(Q}{fW9(LxoJsYc3d?Rl@nL P!}g3ZpTj1~3zrJIqvuGX!bqZD3Q#aN`s&=bkA$tl!;9`w zVDoJ?y>pfDCq6%=gf$Nvx1*y69!QoLN6)dAI*-uQL+4y)IhpOrLxs|*5D)x6h#p=V z!wB=%OHRyI>*@>Uaht!cIWER)4+SoEzZ+Ms%kK1ZaV_}NH-{O_Q(r#L5WPyfDIR~O z@LY6Ya#%K3TV`9GUD3d-h4O$ya3*w8uaPPJgq42jkS;$j?^Qv7?8RUsNNDj3xB|Hc z)af~PVn(!BmxSQ8JRBjEAvmty-bUbauAOGuoYNBtd2+DR zd7cOLaNpxHnaOe4u7#Sd ka3_EC-Xs>%C@34-ZQh3yp?pF7|s6MK5 z>8CwB*4h%O#a9?xfk9bTf<7iMXQj;|_+Qi6B0e0_pKGaB6xcppiGFC3-<^*|lPlA( zwC1b19*#7*{pQkx^j=p~sq77u{~%*oHu5K%64%ku(IoJXwysX*t2+vV&END;sFfRp za&U0`SdYsO&9({rfD+Jxjwvh*85^70h-NU?Q%g)H+(eWAVIz32Xu-5BWX%Y7&}bvw zz20jR+FRs|VU;T6IR}oaS{8uKR#`2+P-}Ftk8|*CQGDoSLraFGvCZhlaD>)aJ$KUO zHa2)WP8yZKk4GLESG&P2EALyMP(lg54>gG~cCl7TFY0zKx{iyZ;NW+3!Naqna{@Ju z -kTO(Bf7r0oj-DWj%k`Pb?lRfU{Bb=iN_|D=R7{z#CaIH|%$DO^mFR%bPFnuc|cma-rv9=6sx ztfVQCH6L|sLh)Bc#~ 8)WU`}b<^2AEU~|rdgcEjr z-x9f4 uq6B k;LnN%|ma*G6bX6EuMSDY}4=Kd7!3Y6>}ndV9vMeZ&)qV69a&-p1Ok zB5xVGKC^($oJ1dy@GWg|JbwJrwM09)*sO6ag7#^(nR6*4RFknuiGnB? 8U%&SPPS)t zB6^?1Ren;Q)M&~Zd;~gL4q>=qrb7( w(%Z(WPZk3-(6nVJT3FssGHeZ2x%mCB`2Vv5RU;=gw&VWek*jRm>Z zUW|K{h9 4Xi=xNivE-W^Hn(ey P0VUHO@;FFcWC0Y5`cKK^T|Mg#F#z<7@kq}+_V)#`0pHE8xc-It;L*CN={X6(K z;bCw?+QN=^n!h>`tfv2byi_R3umnuk>~;U~$KO}IGQkaHRfBUI{=yu;k;kv!8WgZYXKW8m;v2*AmtKziz--Fi`KiCd-fVT}D#f3S_YQypUJ$3pSb| z=6;+E$c*NiRPui%)CH{kz~0@rdtji%QEH04u4Jjd2gJri3%7`(;?nC_jEas8I{qGG zt`}s1T-WJXDJ3y<)$b=7-qv$1hMm7f>i#I4ExnOu0w!Y=kJk%M!^v$D!i~*}cfPKq z<8QNUeSL6Q`B;qF-5V9-dsGTz(Na-KsiY?T(KrFZoD~po=zv8@8Wy~M(i=T2*GQz9 zYR7A?prEj*@Fs0yb9B*I4lG?~$(Eg?vulqY2Ya=;Y>0WnJeNPT>Wx&Ee9X@Aew{|X z^@YL?dhE%Cr$y$(ncLj?`FX*}mI{c}l&U}-qG=iqcbVxK7#bgN#QeylosrNAx&_AB zo*1;b*Bx olP^{pr2o;)jVfnBA%3Ex>c|PpW@mn*xyf%l~25i zw;F=`@>W-M?d*#r{4`h`)f PX9CtLU5jY?} zImrV9g*g!x$4ns;F@1@Jm6aSwfsx9%(ax*zVdK|J22fQy4+%5k`i1lZ|1=$ 4hWBX8Qc)^o74 zKY|Io&Hwn0IVvX26>zx6JzCcpg{qZrDR{AzvhUFWD6fWs @p>Sunyc7F9aYHPjh zcs5meJk3Y(&3cj33ybrR6jis{SrWMwv#+&tcQx!t@bSvRU6Hp&v!ssui!`bn=LL6K zi6e1Qb5)IEy-%{o>jgYEa&roX=5ZNSsj!H@ucZc}glMc_n~(jPZ&rM$nGD_{5wc1I z7RZ_sn4{YP@7 )`QEqQcOj?sgjIa1Id?Pbf}w$JzIF;^4t?5dw4Q=CQrMylsnSla_%vT z=lXaf`9qLy1|cD#`B9#N!{ioQRbf>XCyH@4{f}(wFIbj(Sk&p3lxE4VkVF@zkm9fv zYqh;NEM_h4II`GSG~8uMDQ^wy;oKb3>9rcdr0pQ;sw 7cl64!;PDxM{*eN{ z>5 Qx#pDJ6$UXp%f zrErn4&*CWKo_e{2eUXIUJ((l;)PhXSD#yoi)uRo6b9e4gLofs$vMrB^dF%>e*IVEu zRh0J8t|{~FaWU#gU|;uIr}(tD*n+lG+hwBehF<$&`*a_zz6Qn! >4l6!T^ST&$BWS{kt?6$6=BZac-dFl+)!9F5wG2M5OkR> zYSaUPhibzV=S~SVfoEmfss$^(wh;VPPGCA}X9ek#QF=)cnV3|7j8j;B!9u>u2@#*k ztbe%jM$hcFRm~5k+x5}=CYc&U)lNS>B=sxDN+@72(}RxIpYv@V^bG5qZP(~;H=i6I z-_4;6GFo+l=RVsuFVLsKjdw4mS4Hu*db3O6SfTQY?HAXlLQ&{1rec>I5?3=mv7kuG zrk%Dc!m3=ekp1$n8q27-XBH_7&l_mZceVTJXSS)uMeA>@k2h87?bdabvo6|vgR6{z zj|!?DKF_GqU);w8NCDw%_ggR}S5a6p`Bw6ypWSB~88jMedS+nXqnmH#i%){^`91m8 z1Bp3U#7Ua&St~-m9c>;Bq^p{hv@Wfz`?0Isc6ZbOhpqqnA{v*}z+twKL`OfngZ^NN z#QQE+PBW+%xwI}tRq5T-h!iZ5NHr%}mv1DCzO^-$*yxmxo!Z5!RvX`Gmhk(&JJZ;w zMH)I?_`G>Q$wlLt;GO)=ofG_xW#+jJH#>01OCw{xX<5Sn>VSq&m&&A%LwBte4PGzN zTEU6v0atNrYuYYxD)t#lw+cD0rz|~|fajDd2acC0)>ku=3NgV)MQ#2;duFc~0 =miE~$VLw1dJew%h zJHEcynI6iJ@bSSzqa7lWT+@I9fFPt2y`v`CZ=Xp8O+yo_Cal8ziD~$TumlFjEt6@( z)WU^|@~zez!rz{dIB+`U9ciD&RGOOaRS`pWT74Gpd9IeBZPmt X~9LnL+z zm#5S 7g2!>%J^mrdyzZFuf zX48R-z(|%Zpi^gJVq)F{VT7C?q^k9;GLm3A{%G~%iJ^CM8H;B#Y{RAo#iT$xEm zgUQqMo^Wgl44@yO>nOksw6geD1V(IGaa dbMJsJNDY9Td|PHR7)1kL z;dm7`Guxn!_u?J4bPAq>(VnD7U;REsmkk-h5%H7Ti24R2MiF?T)KRK=LTB}-^nz`r zx?$tVW%Pk9p_q7T1jpiG!%e?25}Rm?j5A_^^P64TFJIV3Uv(?Or^+gy7fkH~maD@R zF_iDsn2;C19@rB`^kshl^_ETe$|TYZ=bN!t{PPmh zLxAD6GjhNGZs0$Emx}-l?@$B#1q}ZQg2@n3sQ`v=5tonn6Q~=&sjW?`ag{$WJ$wl; zyjN&8#h*aE_W{^9Cl`y#|AhBcp8$qOB$N^R6R5`#!!dljhT)&^9`Ia&Ye<|4L4N{u z7CtzJ_pk4#{}aOlE_?{pj2%biPYmw>ce)-pCM*1LiR}NE0mE^MEdN^z;Q!;`y`DpQ zOUL#fZWxT^YXhWb`ii6q67ZMl{?Jk~S<<|!OMugf@-wRA?cLfCiwF9$Dna|Wmn&&g zH3RAe{YTwV1cf_C$D_x!(qEi3`d1$2nNfU_MvT0v>NHO_bud4?7Tl~dEhyN--Wl@P z6XYN7_VkGj*_=d2tnc4`I5dus+4pNd(Lf67tTD=C?Wa?U8xq#b^GD<9IXa$L07{VG zam8i%s=Dl=mm&MPC25;q&`<1C>;(-&HMgVCRw~A+xA3_x^7D$v&-;_h8FFM*@}B9P z-7C&%F4~B9Fr-p=qRgA>SV|1zef!LxO+BK@ty5<7Yvl5DkY HWU7$JZRtlT*)+_iPlMYTs_thGdYKnYWr7mef+7kzeN;%E%OsjY5>~PUqS6Ac^k9 zV8vM8z0-{KzFeip`Zm6!{F8ard; v5I!+{am?DL-=gd6n`>z;2M!u1c+_YM6dT>g)av+jX84#&lU^*JihtW;G@9 ziJGN;w8r;$DzSV-&hxV7xk^(APp!IiBrU#gU=F8H1QzfS5pRE0?|nD*ffP4 1CKtRr~-a7-|C#EiL3=g>-{dOR|`437_`a&NzOvP~duI_1A78T9nfrde7)^ zyzP_>F@_pqn2>WDllyMU5s8oiU2{%2Uel2KYMXx)+UoJ~gM1;k!EL;aYU(lkYGeF- zJCQf*y3W>G)nhdpg3yz22FBom_N_^M+_Wo?@DL7zp9+oBN7NRH3H*3r?s{t7H_t^K zvlzA-rsFk5_g-c>51b11ofR-TgjHG$EKM-YA!~GMS=Em&cCCn;$@5o1wkF>S8F)>z z#rAaAI(wMy9DiVODDmG9ow+z|nmSOewn#Rgt?EliOl-fJZBF5$+q!=4TMf0FyP-~p z_N}m02KgC9-|S-c2>=gxvF%QNQBh1l3W4AjHR3qULUVo;;Scf~8GA>^dXdz66RnV$ zg=mNR!)qqkrA;^=k%ieT=0JyN>Al8A2c>cS>5>w1?t8{ukcI$ EWT^io_dL<%SNansPFI$j2 hHUYvr3P_QtYqZ#v$$rplMwe$4SJtz2M;%~Zuu4wkyO x}Jvs%f>wLn#%p3_)e;iMO_T}RWz z9ZjO0Z`Q;fy~rNBO8u3FR6=3oj1F2$Kf3QtuR`;gcyKj495t&Puk70#A87ie-cC(% zh3D*&+}{Gl6+tKV^EppiMXK~KFitM(>QvQAzBsG8E>frW9DlCe3tD6!K4{@<9N600 z;$&gLY)ZrkTMoq@!J@FbjdTeLYI)~9ev}EaKb2$N2yhA+I`byne?Bib;gw{|K+wC1 zp0v!lN$|>d@d%^PqbX)1&q}e0*7rn*Yj#%Y>G(=#v*&kNhokB1)`Fu8>qV#e;(nn~ zmv1-yckE+|b8VpHoeKhS3nHUT$A{D8LfcV%m>FTdq}8L1!5rvgoNHZUzQVT+8H3hR zyvX^6hV-;BR)YIQtRu&)-s1W?a*V5_H5rV0>DWSCahdE-rmJTG8Xtg(-PixA`CY&Y zXjCkA7;gI t{xxx?$$?D<7><=N&>m>VA%W!je9J5;d!~D>0 z%a@h@q{^h5COi+KQCi10H>8W4KjmG^NUT=2!}{WSav^9+%X^iJLEX9>;`a!H1lSke zEFcgbE^KFQ3-ZmdY13-_6n`$QY%yrwyP8cvXhSH^qdT2j4pV_`ZdLE_UUD0@&0l-I zJZf^+k;yvZ7*{Kz#};*E5x%}!c-`M`e>nBL+Ehuska9vY$}nrXl@E7RwW<{IED3Ec zsmFGEgSbLZ>3lOWDZBxdmVT=6{QRz|u`y~!{_a-$r|s7<$_by`Rjz%|K}0cdx;z0> zI*y4D1b<>;d(aiTE!_Z DLvSYRUSlg(Ix|ti6ic#zK zH_LG&QS{{_pd&pOZ(C$mov1aQ5SLmZWm#>Yd8Ie+`e??NUc^|6kKRh~-W&tbZIt)# zTzX6R2=5a*&Jqye^m}11dIX<1y?4{PYjXh|@@c!vP_x`p`&}s8ib+-hiI9kDA01U^ z6H0%&ThlOqquYj%dGZ;H=Z$c=xn_V-vn+m7SbOxh^M|)`3$w;`o bzeQi2ML~^1*BdR=6#hUU*M7@rBIuwo84#75Y?)CA5ZE3)P7Y|nfn=CWt;XXXQ^*rEvUN=il5w)!(YYrDrMzJnHwY%TMnh`NwNVU9=U zmcnZAJM@cltfJnTnB={qXKoc^zU6{S+1zy|vaz0@+wOR&q`#b%M!N8tB}nx?vu5xP zZB1dVAdpeV3Zt8 u>>y^7R7g=l!B5jje7$75!|f%@HyV~Yle!!lNf0Y!FuG@7V1=B~rgWGg;nER= zvnavo+g=e2R&O6>OWk??Lce=42J?oX^(YkKVsIss_Y6h87&$nLb;q^W>4HMfzDd_u zWDasJTEb0Bkn^RpmT~WnvPr&shqM;i9pn$Vxx?<>*>whLl}|_oyLOx{?V-9}JE@D@ z&6W{M#|cy3jD>1O=0!isb)@!EP3Cptchr=&pt*-xx|f!j _wJ-6?VIM)E8uJhi!f@IIZ@fXh4f{2 z2Lf+%A$#NG`ngtP-Nh0Q?4VL$zv(sZh zp1-mT5 zfb1y)wc78btShMp6MUYASY weAO`M!+;%It3%pJ?8uYx`%XjH?Ei6v9d-OQ%e3&4Cm>n zG_%X&;K$u-;oBxg72vq#i=?$sNR>ljs-=gd@Z)YO7XD 4UImlO9tvfUOQjVsYa~{Dy8BdlHA9#78J<_u7f_?e^mVE7u2I;@GSwb-Oi@3vWV_ zc%W^SLn0e}P3qn477J2_l(o&6ig+5ZA-mLC0;1bO+zkg`>9nw?ltzn6NCrrAyuP_6 z@053ktE{{K*vrju3-=uQ={kDBicv4h^g!`|Ss=@u=!C+NYU+|Zbw%yc=I8u#PiS1F zNAKFbuT9MPAzaL6RY1jRLfnxzPDDI`nS!@yP+&IV;?^GLmB`NR_S*G`Y+O|UhP3@q zPOm<@dO~(0XFXE4G#Vi`0<#^2whdkbgSj~ZYFt=%Qel0Rb$;&O gdA#o?0UrxuHpTf?DF zGrf>R^p0=Fn*=9BcEpBv1-R80Yz0`e9!&iz3E$^ai8i4OG0~UHB!_L!p4Jq3ocnu4 z$2?Dka}!^PP 9MDZFLy jJAIuB+CP)4KLEoHB9twgSa`MQv_}R+1wW7uKdYt==Y2$Q7|+vQ4?F)& zRxHq4ZuScu)2V3F)UD7~GA;j*gIcZbIS<4(1Lr_WDnI3)G|lht)zV}jJMhh|>ZIIf z{|RLN_luVe4FDbeh52>xJeL3cNHYMc#JD537d|Hc`{|Ac+zU^2(FRyG|H}Zuc|of5 z9GskI*nh-NpBMrbWo4!=FY(`x3TUYSd{c^IQn&QKA0_%F2@qJZwy->le?N*0apV=C zqExNv+5RN3{@;EvvNI$ 3hE3v-F8-0v-wZS)1^Y{Bnu 9`an9<@T2 ur_M5Ji4&ZtbF*-S3Ij zQi*C+OiVyfc75#u+uA~}3T>>N2hm)-lf5MY{*{v@Q>c8An#=41dk0O_7j?P0bQ7mR zL4-SUKGueYIY7@wRZlOnys-LggEk6QneL*I3Mj=Rd}9o(CsK&D>T^@m%y4NkLy(YC z1}fB4B_t#;hqwuVI|+e63_x9BsY1RY{#{%IZb9-oYh@>BO qoR z 8f&2tumwAFE5l-XMHWybZ(*z&gXrQ-=KoE(`&^9 zGN;Vo3R!ED*-G!XrYhx`KOMuvZ3tMWBnaV-b!%JIw~-%AfJ%MZi*L76fw0Xz1Z7dy zzzgP#d{7l>j>MXJwuoU~jvPR^LHJbR4ZF!ib1*LR6gZ(y&u}26lEW18ae)r;QV~1- z;Clomx#cF|F%qkg#&ZyX!+2mQfEUt7`~5> Ts1;!S+Y zB#%{2P;qGfTs@NE#mPde&v7?HF%sb!Wi?+2UP9QnLBs7UFe|Izk>10P^ZjJ>(t uJh^snvXTD`YIN%$+Q26 VbJm5&C<%9dnF#l|?ioqx-y7k*0s?fw9v6?D~s$+7ctx45C7n@9@e;M!|$?o@v^ zf&B^ z=N&BbN>rN(9(O@2{PHZI#hj{zWd(b#{uMLZL3+x*CIn7q_2LHWKFA<-eHEyU9p6>T zZFBl^t+XhwpiG_9(0%)T$!pa1c5C79i32} 9W#8%nQzNdeEH>$| z`}M&`3(4niu9XMkgaocii?S|W8ziCmb+OHSBKNtNSy$$HHqTE|47_xBG&~n;!6R6> zBL(Y`=Hh{^=dKUw$90J;-J(y-AF-4skdf>wyg+K)J%RQK)J tF+emiNv94(O9u%)%+}aC5kic7ZVquQ`zV~9si^TF! znJR=wO^$z0G>*3O8qfOv#;2Pus~r}@N&g{`)9cS;BwF_)QOD%zjJICv24u4*cyazx zfSvo%>T9+~W}p~RM;XtXByDnf8aw^y;$#OyWOw3buvMfZMUCrvQ?7Q;0CUQ)KLu6f zEUt%>n*~o%$NXr~1{5!rDKIGEWNcB|&b@jqeTqeUSHi#J?OLVwVl0pdJS(Y=A-l{a zY(zZ_V>>|;yx$kRX|=|r(eQKS2EyyEHL;}4ezuY2B*J2Tpfl3|FIs1b-IOKGmUY+F z)^77&m-; l!?&JG*EX7Qw6=*cru}Yt`uG(p?SEMwhXu}8y3EKHhHc1hivg A zVQBt_M@0->8%$VReaLKNpcVFoW)}zS@pAE>TuEfqC3Hv|@**^i^IGZ`xIT6OTb5Pk zSt5yWTCw;{t#GbU$#>%{-8gE;ka9zosn%?1FRv^QhvhW(cbH}fD1eE(w59uAxR;~n z-CqSSl5j>}JO=+8=&+R0cd}7bHgvE&Dot$WF$%@^_Ef@mK`O< 3l*2 z6lP=;qTR?Y#kI3G*v#4%tjevf gxj4U3D~${Fd#auGS5IgP|OH{$~qUi#20H zcP!~)i^i@If3x5Tf~hO(fUF8~rSPYVGA|6L0DA+{axa*iC4q02Gg3ABheEZafQkMz zf1QGPEWvw4^=1nlQtp9+9=vbo-gEO^)`_|`z;O^Go^B$72b8|G1D$*df+ghf(8c15yKIbG53Zmq@IBODzmCu70Z zo0-pcA2o1~BY>2Txsc16E%r?>wP^R+XIo6jo4_Q2HG%hoy=JHMl~K}?inOD8t~>d* znCZ0L%q~~w=Yi6~6P^H$$bR^#%*SjzaHPo;zc+s~PU_=;Shz8?_H}J^l)MJn`FkT@ zleX;9$>{M4J7IH05y$b3>l5^H)}rjCR50~2n55=?O v@&VbnoCm917e#o|x z?Crl7lSVP7^w`Z_94Kq}qCU$WtG8g>FI?KRB %g)N F1h^Y&ff2yOtr zR@BAg&xuF5pvN0!VK>8?7AUBCkw3BR<2i1ry91D30f4JlC*K2|&ZZ+(gigb1l$Xak z^Q!|aXD>9R=HlQtC*RK7pQmB%7&z_a6|38DM?^vheODQgP+*7d0Zmelt`$Xz>4u!H zOcINu!2%ij*LUeaP1o-`uY0dglZ)LBTcD2zOOJ2YBhI`hJhw8O#kwih?ykI^u2zV` z+512TPiI+rXMaBH)nd7ub0MYPsGL&>98B2eE`piQ6RVi7!-TyiW^B|cyTKqERfCOY zvNQNza3F=lU;tHqP*Ojyk_TL_rh5YK-)i=6D`le~NO{}i7! VD}=q4^pm-gR7OL?PY2!<^Bk*4QTWFOs00 zhHzyr$!VbM`E<8LN}I9`>M1aA`(AVM^^8Ip9(5-Tk(F}uj-YCXTQv*Yp9m6J0tNen z{}Aearv{||-I^K`!r%^4QW$PB6$EwDh$SBpC0qzUoe8hBMkY%ZpE15cnx-RIy@&a= zg+mNE#-u1byH$&|L4p28Z(IZj4b$CSe$dqhe32;}OUJCmqYmqrJfC!nAP?cb(fr1$ z-AE+qV=%X^vzZM3oMwcIz%`3b3J{ibJRxEUH0s(O;d#R8e(z-zv=d^jGtW0WB&&$< z To1N{ 0?(L72{OJp#kY1>7KN=+ zEq`}k@5)N4>S@?%=~Xw{wsW^7NcIc#6E72!u?RzZ!o2Hrt0$HZGB2PIzS|kIEGonM z$i|K2k-*Ol7CpCLgRu*wRmyWK40-$*ck38;f^eDycOlZw!qy`Ex{kk590VBo;Y#T& zUQ%zT$nv4D^$v7~kRGkKXFaS08A(RLcRSsygZ`tiOv8-|yLHQHc(RCNM;=n{gpb^% z5b*eYy w Z(-64OB3W& V970`541XPI*cGqWEX2C3ouN*&P`SuoK01)n9Yx^nWkd z3Z?^-LDsV_DGX_j7TNeUDboEX2}!X-fzq4kT=A(ua9G}WlK>cu-Ob#am}5$oc9pXV zehXYmCK8f2?0 z)&F$mCp#WC15%;+eKRW=6B$i6f6EM5WcVe+WK?wTgnlFsChXd%2y2OhC8K$zyBRzf zh%4E|_^;L^n}Hw}p{p>nzf9p(78Tm*c>-qAoi8NDk;}e36YN1?aY$@XsG>*7O%doV zPSr}oX_EXPCUTwG 5Hc&+cgO(-DSv> z>vd+kRgFTLn0K7BEP9hE>79OFg_pQz IpQNI;n;**b+Ngnh$zJY#^qnXm3^U2-ivGe_U_3uu6tlN6_@e+Q6-DTf1dtT^ zZ3}c&Cl5iUNyI~QOoi~|fnp?x;b+IndhgJUK6GYBIpbVY1o^xFrOf-7SzNwgmv8j> z9gXS$B?^P&Z_x0MPeDfKHmz4r*uTzSDN>x85|N1_2s4sJyy>RV-)donbgy}$pJlSx zjUtZ4-Gizjk1lfYyL+T!Y=BX$QFOrtFb>PF!1~^lw0?~cm;9Ex)Mh(NM#{2&j>EkF z*7vx;)fvC$^Kl$~iQr5@hZ*?{A$-^T3LaTKzD*w$|JRpc`b@Mx!Q8VM6I_wNFOQNx z%CsvuhZ%ZHkH2@aFZ93YP~$5DG&vpaH?W_lfK=3fPoB3lOL60rzor}%XHUpxxn#H$ zbI_I;%+g$$3Q!-$H5lPmogHnIcDm4XP5muIyYAM^lKw)=Z(;PugI%mz09t5JdBlWn zc%>njyJdn*0fBtU+bW%Bc6So@g!~bJzVlG UH<4Gv?&=^PfJt;=-zUF#7T7G4tM5dq~9p?rx-Ne(6 zjya?AV9lYa*|04njqS@A3nzwfo~AN#(2<)4o16w=$bTdYl>h8m`I%$&+xQC+8$>oT zzSsZLQzedh#1%^DPhqDGpKN&Q?d2wAYFQGrbO(Rl2VMFG^nEv5 DoAbw3@WYu;MIIov3zb3>j1QtF{y z7%Z*+L369W34=~=6m&q0Rsm1r5hqvoj`$)G&TSOK(JkPK*fQM{qb$KMIB~;>wUsTH z?AudSodC(6N0r^DPIN0#5e6j}0 nkr^7^QDI zj1s_emQU=`^FVR}pXhY{=AwA`O$0Nc!##`97>^AY!Y%-ON}(MNW<8~^A10waU%f3V zOfTn}e*zW5FbmKo&IA|fk9our_$=qE?ItJW(*4kITpyH@%a1L9!^dPv6o5+0~# rS|Om8?^l}sE-__FMdIP+6ZG5S_sbMR&P;HC6U? zCzq0AI+rePzK}Cx>v5k;`6p(1Wbwt|SuQ}P{tE$(Z=0Ipjc5VxjFf%0qZYgjxEWeY z|2~PYbrz4dcnPb3hN`uZE$zXYzSV2E+ eX;w5 zK -2N%K#T+zNWES)f=jRZUlpiN*Zk3K^L@U{T%kTK5#3JY$p z$EFvYm{;zbV_vPEFRTy*4$d}e>WRAg2%i=;evhJTfcD)9R)uXVZ3xL7r@*x;6W>mj z>VaHipyZ%;zX=DIC5}r_`*A%J1bBLa${)C0NSOLwsGJ`r>o0UcW8eo@6YxeA$O+$m zwQHIH8)Rp{dm0>M&Z_)_w@ r6#nuqzT) z@hkZh8D;cWSl?Sv0qk<&SN#>=^gIZB>}lY0BKeY{#^82GAT~L@y?k{Vufg4=hgF-~ zj`Pfx!{D}DeqZ9Y6W$oQV^?smOW!b}DWirg(FX_(CLj{Er84*<0lsK|EEaN-!0!k0 zF1TQmzKYJSm+Ei~V>xX *}(y3o^c%r-{ybLG2I;$7szB1j%X4^-ctFVA^ zok}KiZiJ|mR9FP7SZXXvkr^CG1I
UH(mavG+>) %a3fks-qfqseNQ|4ln?tZ}eaMro!CdeFiF*{c zYnvukLzL8K5a~6TjD_>^@8OuQk%%rjd0~+E8Nm}P=3H+_J9P(dj&?j^UoaKID*oEz z%$$t|YgSbdr7KL6u+CMerL}YCal-ZFe(3#gXgD8W1pvK9DGcWPWSvg4={xZoTjE=x zu&xE%qw8{$)CO4y>${6Bcy@Ny*FhqRA1RaC>k01Sxp%{I)fXs0u}h)w;i0VlMF0_l zo@@UXT)10>^wB?e*L$RS@dh*Do9Q^G!+YL2xO;Z}m0{EN`;A9U4HaTb*Z?j=R~%XS z2bn|`%)KxA3Pe7TRSMZ7M=Pt0uz6YoA}%i@8|)rHN`>P&nCtZ`rBI!`tCXX1<>4yH zXd@o%!(eMka|11sg-pA9XQB19B9VRZGHxH$ed5c&MQh1-F=NltGXjYgWIVB_6}tka zW{HgCR@r@CNU(%85mw)}+_Dq@{*@cxorT-}ovU7X5+Gm0JVHvRBcPEw+~xMAcq1yN z5vf7vO_2;o)M^|ja&s%YVU}hxAIkqBp2&(ItPI)K5$d^f1cL+VxT4SsUzqs SoAsOk_z04D_6ul09NW?E{L3 bwyU zP$$Mb=L9HsJzD(p{HAKG7aA3@033qIV2pEHE;UPNQ`3HX#|!G^W7?>hsW%isbrWd{ z83rPX2GCOH;*p`oj*OgYXi_&<$(SDa=%zLZp?fyw#s&H&t@b~?wj4soM{oR`un{q! zQP|}zw((&HP}EXo|HCH57~FZUFtf7Iqn{H=0Qtk;z~%WytKV=k;vEdnH4Ky)C3I_^ zOwc`V4td?u36N>Ha?rH|ZL~{LoV^5BIAmn> 7(S{dB>@ zsU)z~rH4c3ju|DVeVPtqz^<}_kcq;zLs}B`b{TE%K$`B#_}n5)pHR?N<_6Rct8PZg zQph@?IL8ut6*bdIAbcpQr*3#<@Bxb#DXaa(g&`gRO=e>!0j19}XV*dzm%!S$H>1y| z7`%*aOxIF##PvZ1E`Ouq-uYvaiQ5@vrff)OM`X(lLlKRbknHDlNAHj+ Fh=33uB zbUUoob9&$;k_T*6ZVVOwy)pt-fcvgx^!(AJycbO)|CZZ{_hWHHoxJXhoG|qY=j TCfxLppH&3B*uXK4Vk{1qu!AE`Q6@Nf)<>{|wubp3?tO%v_%Zo1LY%DU #yHkg6Yd|S{h(tnWx?nw{QjFp2AaLJ*;Iloh(R>ih8l3txUb5 z8K$)tS78+8gx3`g=`1}K+-g5$j}39&r}nY3e94WX^icy;7yQi^A>N1?wW7)TflsT( zFd;+0krVJ8^_8N{spLIReS2>&m&EP>Lnb=nK9PF%RvH2lIx2;tP-NaBtcn`zRbSyJ zMXbS@+0~Zy(N7-$gBc=&UVt7{(hXf@c*h4>W=6U{=LjeIjLye~E-d!$l`&adz7U&5 zj_~6PJCclu$#CotG8qLfOr%bNE&UK-8Z>dYmDK<$N#fhUlb)Yz-}J+8hB?m3q!7c7 zA?#IbbGH7;L%q>fgW?LJag q1TC_Egu*qm(n`k#BR?}FTUU_i$z-+COW1+C$3_9QTt6NC m_9*N1#f5G72k|_%hAoIT8#?# mZ+2c-a2V@Hh{OT?e)UY z`nV?d;7-kL9vRVfVo_JZPea0UmnCyu=H>Ec0T1Ng_(xZB- ?_9#G5R>BqRCy`*DP}t z(ibOuqj))KA2q)RcK;Y6Ab(qauynu4a~U|MmDl&E_jIAxWyn?`U<@HPB$wg3WOmKy zCHP>J^?5KWZKqB<9h>6r;`vQED8BB*%)) Y31r$GhwNJw2Luh#O@_ zIV#Tl_Re?%lV9N&OB8XFi}uIB)6>1z6N5l*Si(TwL-^K;_S#qnM}>C&-3ht)lovel zFCg=&(Bu0(o7c_IxRF9eJS1Bi_1cE+{^$F}Ty6OH1;>X8XIU3pVha!JX3?5x*n)Uu zpf(01nFfV?VKxct>uZ?B-Eg2?QqpxrK6E&_ufZBJGN 3_&~kX|h8xu~ 7s?+t}GuWX(ljA%+Mh~5*&@6)w zzEbB-#a^++NBOms?|D4j{vJ48U%tUXTbw?4?6mol+B>9q$H!eLAUKO;bc;#j2% zv @Xf0iwBpxAc!jSu^{4Xj7M%>4? za44ro$pTFR!fZ@GDh;EMe(+9)j;!Yef_&(3jx7X-yW)c74fl%vvG)3BJn~Pyh6Y%@ zrNSAlLeMKrcSKTxSb(pJc>-Sj&l~=EF+fFik{<5#iODR{n}8rqqjm6~725v;M#~O| z(;P`kM!%T<^Tq$yM{vo&@i5aH=6_|d|IMTMa6b1lk`YC}{(sOL{Lf()c=?>N@q7ON z-c%e6hI4Pk?+bp>{NLPL6 fh zp3Y1y7{Qa_RCQELM$iZ~6WYcCAX*YJ16$fcgtH~lZ0e4V5r3vXk7;x$xC8|TTI%b! z5C2wD)-qD@9Kkzv**iSMY=#@qTTbLkBn}L};95lwM9j(V_#s@P&3XitZQH2ig`+Cf znr+a}pXX=2>$F)3OT|xzKbsWS7R=N~G5rTVZMVcpMp+!QT>aA^q3?=1j`scb{L5U6 zTU`dPLoYUezF=8?Rv3--{yqMpc$4t}&a-)*6`a*Dq4sQSYCNbK6RLWq@8DrtrtrAI zr~OcKsD}7o>b<=^G^;5Xj0iksO*pDo{tSebYBw0p)!ATeNEi?IyaR*HpKZ|&mfD21 z_26+uh0m5O65l%HGX;oC+Zr4B;C3KVmhd$tH61^P3LzdHdYdszR*ROFmK?z^WnZ!A z;~z(@`HndGqb-{A@)lZeci-^4U0T-n?ZYa%2;j~YQ|~t@W+o;Kp0f$+m)`2t&L1}J zv1(0MN?X}ZeRj z3UVeU8!D0Xf`RaihKiRXBekX%soi1bt{*@yUhuqJv7>Fcx3F1@ykLu<)A6z>zwNRJ zP+j19*-sQQ&T1x~Rq>qB ?o*I$?ydjcreeOnK`IiLa?dy*|Q7Ze1n7NG!-+kwM=J+gnF6N ziR{sK1Uh1tACXwQ_hKm={)EC~NsNR4z%37uD|oavUI!!I!6~_g=h$c}8n|C0uO^u* z8>;bf?%Pd!8+xB)`L@jGVTdmWe4nz%qW|RuJbS|uZY52veq4)2@0$DU4qi!WIAnv2 z7{urfA6kd&s+4j-swcYvtMBCzY#K}L4qZ}WvX`5a`Pex$J^r >&D_ zNZ@#jnc|A9r~9qTZd?U_msI?sP%7pf^81A&Pr}XLoadKEkB3M5k^G0iIcxy99%vrf zHy~$k`2B5*PL}8Gm+cXcWgisZ`ZPI%S8zaKlxlaUr5PGDLRAf&Jnv8Xtl+7cGn=$;#o7-E264~auP3AgZ0mbfuWcBSk!`58$p5<(Uk7hsZxcbx zFF^Gk0PKk{_mg6J!mgKuyruTdYP|UAcL9$NZbvPIu117xx|Zj@oKndb(SgdWxevmT zg+V~O?r5Dw(Dz`$&5qN^c2hgnS`Kt#sl+zk(sva$i-b6aql`C|SVwEPhW^b1VT8F^ z5 5EC5hpHloQEtaBky*GRd(PWmgmUkx%ZKiMXe<_ zLj%Hq^2clMCmew<2nr2H`TBZp9WYc~((K)LZeT$x^A&;y$PS)7)qRky;2swAyXjZL zgl$-*)TbkuH}6-rHg5|(|ELJn&CbP*)Zk73*9!n|aP!7tRGs@Y2=OAva!q;1vCHXl zt1-uYI^u|t!KFOnX5W^AjD(E51E-X9N$9bTd<=g~G-dU@xK4kXk&K2zq-hp&r-#|u z=G)%%o7>yKXcfz{72hSB`&)x0MFKV(OO(NZ-_ 6tlnr>1&LH zChMt1(rW%~T{eH(*2v gW1vCZ-+WLrdjdTyXKiA}E-9y$*wY=WCu1;5 Ygi{>fHoC%1wW_EWjl_tk#MBWYGBpBw zX~b;hQ^bdw_upGU{dwc!oqwUm*p9oQTpi32lDQDzy%Dq-4sxxGedm~Moy4l^)FF(g znrdzJrRLcyl{XDNYU@6yS@-G4eTj>8lxdB|ivyD88cS%Rw@U`czzG96xD*Js(p@QT zFBP#9(7A$W#rKGjoBwD`a&7VP$NL#vkwx{hN6Bb6+jfk(uz=6rsIp**E%(P9-8Y+c znE{;PafC!4WydJ2q!w+1%sj+fN_1=ZEX`KHrGAqD6xV)K@G(681Iv&SvGYRouFIDY zX~We@)Po5{Jgq^M5k+tkeQ)z#S? HP{h_HfcI{3PdbB%bl502;^)~* zGpG3|eurL-JG*;yhwdlbE16KSWnH`0run;drDr8hh}C)U_SinKLhDM-T6{hdVq$ zYUMWHqi73-(j9v?bqU2JEg0Wq|6r#EPL%(J)4auBd{AULRh(AWLyk%H?KmYv+37NC zCD42K;vL3Y<0Djl60&KK?TX)!)XzwIGNk+Q*^*NstO;0onia}tp07E~Y>Q$@W{k_H zZ=L3^+B}}8Oyyu!3*K1IHV?RcSCj2eSz>LY+!ZB8K|%J*_P?0@<2h2SMGCeZ30R79 zSgq@Pj1R$wQ~S5 uyO8# zMT+$in?&8?Pcf8bY%TxFl*7XC3hS(FL}iVWPK3?jOXp3qYOWM&;du>I7mWs)Ar9Xb zgbvO^M>MMk%b(5Jw2}MwJc}^1lO{4!RdimL3sq)O4{#o@=5<&SfZ=_pMy+#$?cCD{ zkAV^uL^X)N$%POFNRjRe>4tN5 63HwqOHbC=W#R}ULaMd;8lEr zk-8$9DsYE_(0n@PrYiUyto$Pf(pK{rVd 5*gRw_lO+oK+p!3cmVuF! z7ER1W8$6L%{+zhf^@hcFt0igr_2}IbJlaNV4yT;xo20+~SDkw*|DrB<5`!_2^K`X7 z@(p=TU;3p%z8TT@B9I1xyX6MYW$m<^4m$A}&J#F{p&ZOx@T5D|)_T|_G8`OtW=f plXjP -eY1{MFFbwx@?9@hF s}XFmKAsnd;&mMCkn|F_eWnfE)26J za&UL|$3j|L?ht3?`|9hR+Z>Of^thR3gUsON2fb?MqV;ke(zhM%Ilnt qb|u*u#E9sFxdOi{ z9}VDKm_DiLx%52V*0sIt2u#-EpA3^rA^N4apTA%A3;_lUmXZP%D4(wTsE`{Tv74t+ zPP*)X_Pa=X H7 Wt z+TuVkQ6+{!U)U0=V>5g`r_%-q>bHsAL#5Z|pAK@;sIgZesvL3bvI$=zf#S5?ARf7F zXa?$3xKjo!@k4QxA=e)EI@sXvaHaLYW>F~J`5?818Y@uQcF{=am3Q-wU8%##pkrTf zBt=^waGJe4%e6hT5~n&FO2!fXJyNi-Buq=Z-J25!fr>qPXhX0}^2w?UExdtsAkGb6 z8~b`5 ~l(krwwVk+LW7uPK z2Hy2;3>{E}gDH|7?;cijP$*w16M)P9tFnoR&}c$CigDVRh)Ebnr;HvoCY8SxyOfol zx zX&*ty!ORfWu;P>Nxvs*<92IU?6mA=T)O=q=9;-JP=3BKHx%DGYh+rdBcwdWzcLbhM zFM|jKRQKSTtPJ>Sb*4vX+T+9a`v4U9qs_!s{0Sbg%XE%I%g$P_jK#3o)5& Y*bgHhLaEqFheOu)VYsYbj!&Np+z5 zxae`TKvj*M7S3M(^oXMUt^Ow|=+n9BX)aGnrikkmQ{P4DT=~c5BoIeLf6mBVvp`&k z`EF=?KJ? CDdK|V;S$%uKLA~d817w~y_9ksFG^cS)@G4#KfR-3rxSH5E zl$+WHKxLRzsWc|II3;64YZzt$3JhkRB|f>F-7EXMqg;5f=b<+@+T`RK<&{>UPL7Uh zk6zDMzz}z7oM7EOV=Ndu9mi?MLW6#C7f1O7Q{`jZT&XLuK 8Y$F^pI%5#fEdM@E$0=x} zU5(QgtU#heEbx6kvawms{`rgV+6yX7_sjemsa5Nq(ns`Z#rb6M?&z gvZxEXqr5PNAZ^gKU&9|y z{`yERS6FyZN+99SN6>%7L &5;5Be;^|bGATHpqWZUw;y~pZg2B%#beWC@> zSiY6$x_ZX7l+m`^KV`nlk8m_z6!u-p7(2>V^qBTXrpM;rW9bU2TAgww6n`|Dmn%2$ zbxDAaXgPvUC+`=p$6mWALHl@+Dho@`@mha`GdSjmk1|ot#h~{F1PyixO#ftaYLd*g z3NrXW<-gW8dzat=?@$f0z@K@8u?V@y{EpYa5agE7o$4sCt!jM4{Yno%O^`s57YpS^ zCL{IdZ6A1`DLNcT-!5-a^%cCEScLZx_8nej53rus;$97x($!2i)TZWIM7DBvCD?Q# z{u8X|WhOx0)rdx%Z~9)lB1bGOe+__T4v=~WvWpGZATHk+CF~KjRKM-qs~Rhaam6*h z``@HJ^c4vO2I#it6RSstzJjH)%?#B%YUlkuVcYSZr$jQT0&l|=$9~G9F%f5aW^G}( zwnea{>(}R9eUGEomdj;lEZ3CK3-p6Eqy(p6C @&~rEKlwiXP1e|7vr)ocKq7W(HDZW;kJ|NIfV1rS&{4ES z%>uY{oZS~DF3&3MIaUE3A=$ZCF_&$b!IIy{&-_J1h?dXoN4n!3?7aQLsX7fL zmud8ELyZ=&$-yunN8lulG11q-8tJ ;cUnBuK!M_LJrym7%^+?iGg7sN;O?V9wc>h{76% z!bsS_)URy(tDZxfZ>gjDgKlYpx8IN6I#!Nu6=1rKF{Kk<%8+A^of}H7$m!f >#5r zl%-chKXPUFySR}E-08;{i#4Ldm(bg^M!Vkky`NZ|I7G9nV0PDIbeQSkRsd!XpTN|Q zLKYk7*N%d8ZAM4l%j6ycSXOOM)ibZ%(iz*X$=g7Y8?KBaag}F+7jy_c58iv3r }~2{G4sQ6-6hf?5&CB_2f)IT``}S*3cs zmrfKEwutRN^ErKJ&zJ|k;2Z($@R6uq(O&x6xzneSzlFjv!n=)OWX>EFN$eQfa=_NG zojU^RwtE^Fr7R ?mOthAaJX;diREpr%>ic}D2_c|!DFy)d9%Pk&M{9`f5uf4y<&D27o>=fF08?KQ z{iz7>WyP*xGM~LphjmjJH^I{F`jkRvxq;+|Vhb%oBxx%O7L9|Jrh8LR&N<(d3*TVp zo;b ZOg0^oKBpx&opwu;3u>%pisTU-0emd|*h(p=5zL%^!Ps3oYc@~0 zjsazywoSHk;dnVZS{xVE7WO8k7YhaO=z)sYqe&!3|>4hxQxqpzo{N>uLH+6U)H0g!GP#9zp z{Xt5=UI6;4Pp;di+1w^`O|BflU~H@DX!c8s7ZjJE!?!DBtw*Yg<0y5}d~<5jZ)6+b zYKdx$on8M2Ld>*xefkN@lcA@*%R6i*tS6xAUP)mMH;=79$Rfoe`@FTYMl^#s#ui_y zZ;V@)Y{)L06$qWI$L&5c=f*i0Ji2^Cc{q%R=sMIOd0kQ&L1;p9zJ$h<$#BmxAY8#x z?H2Jgy6PfM;rTFmM%fm&l|t7vA-5B{dPE<(F@f>uv&Z#nSy7OUAIb=we6l!_&)WZ0 zdbdJ3BK9IRCCIv4-_*dAy%wFj*U2yqTkUni{U^_aj~kAU-di_ZvA;fly14&D92~-c zj*4jf!ju!)l08|83Q