From cdecb2447035a3bd2b25e52a50731827ff9a2df8 Mon Sep 17 00:00:00 2001
From: Thomas Dehaeze
-
-
-The control architecture is shown in Figure 1. +The control architecture is shown in Figure 1.
@@ -367,16 +367,16 @@ Then, a diagonal (decentralized) controller \(\bm{K}_\mathcal{L}\) is used such
-+
Figure 1: Decentralized control for reference tracking
% Stewart Platform
@@ -407,8 +407,8 @@ references = initializeReferences(stewart);
Let’s identify the transfer function from \(\bm{\tau}\) to \(\bm{\mathcal{L}}\). @@ -431,43 +431,29 @@ G.OutputName = {'L1', '
-The diagonal terms of the plant is shown in Figure 2. +The diagonal and off-diagonal terms of the plant are shown in Figure 2.
All the diagonal terms are equal. -
- - - - --The off-diagonal terms are shown in Figure 3. -
- -We see that the plant is decoupled at low frequency which indicate that decentralized control may be a good idea.
-Let’s define some reference path to follow. @@ -516,7 +502,7 @@ references = initializeReferences(stewart, 't',
-The reference path is shown in Figure 5. +The reference path is shown in Figure 4.
-
Figure 5: Reference path used for Tracking control (png, pdf)
+Figure 4: Reference path used for Tracking control (png, pdf)
-The reference path and the position of the mobile platform are shown in Figure 6. +The reference path and the position of the mobile platform are shown in Figure 5.
Such control architecture is easy to implement and give good results. @@ -618,11 +604,11 @@ However, as \(\mathcal{X}\) is not directly measured, it is possible that import
-The centralized controller takes the position error \(\bm{\epsilon}_\mathcal{X}\) as an inputs and generate actuator forces \(\bm{\tau}\) (see Figure 9). +The centralized controller takes the position error \(\bm{\epsilon}_\mathcal{X}\) as an inputs and generate actuator forces \(\bm{\tau}\) (see Figure 8). The signals are:
-
Figure 9: Centralized Controller
+Figure 8: Centralized Controller
@@ -649,7 +635,7 @@ We can think of two ways to make the plant more diagonal that are described in s
-Note here that the subtraction shown in Figure 9 is not a real subtraction. +Note here that the subtraction shown in Figure 8 is not a real subtraction. It is indeed a more complex computation explained in section 5.
@@ -657,8 +643,8 @@ It is indeed a more complex computation explained in section -% Stewart Platform
@@ -689,8 +675,8 @@ references = initializeReferences(stewart);
Let’s identify the transfer function from \(\bm{\tau}\) to \(\bm{\mathcal{X}}\). @@ -720,13 +706,13 @@ G.OutputName = {'Dx', '
The pose error \(\bm{\epsilon}_\mathcal{X}\) is first converted in the frame of the leg by using the Jacobian matrix. Then a diagonal controller \(\bm{K}_\mathcal{L}\) is designed. -The final implemented controller is \(\bm{K} = \bm{K}_\mathcal{L} \cdot \bm{J}\) as shown in Figure 10 +The final implemented controller is \(\bm{K} = \bm{K}_\mathcal{L} \cdot \bm{J}\) as shown in Figure 9
@@ -737,16 +723,16 @@ Note here that the transformation from the pose error \(\bm{\epsilon}_\mathcal{X
-
Figure 10: Controller in the frame of the legs
+Figure 9: Controller in the frame of the legs
-We now multiply the plant by the Jacobian matrix as shown in Figure 10 to obtain a more diagonal plant. +We now multiply the plant by the Jacobian matrix as shown in Figure 9 to obtain a more diagonal plant.
-All the diagonal elements are identical. +The bode plot of the plant is shown in Figure 10. +We can see that the diagonal elements are identical. This will simplify the design of the controller as all the elements of the diagonal controller can be made identical.
--The off-diagonal terms of the controller are shown in Figure 12. -
- -The controller consists of: @@ -805,7 +781,7 @@ The controller consists of:
-The obtained loop gains corresponding to the diagonal elements are shown in Figure 13. +The obtained loop gains corresponding to the diagonal elements are shown in Figure 11.
- +
@@ -831,8 +807,8 @@ The controller \(\bm{K} = \bm{K}_\mathcal{L} \bm{J}\) is computed.
We specify the reference path to follow. @@ -876,11 +852,11 @@ save('./mat/control_tracking.mat',
-A diagonal controller \(\bm{K}_\mathcal{X}\) take the pose error \(\bm{\epsilon}_\mathcal{X}\) and generate cartesian forces \(\bm{\mathcal{F}}\) that are then converted to actuators forces using the Jacobian as shown in Figure e 14. +A diagonal controller \(\bm{K}_\mathcal{X}\) take the pose error \(\bm{\epsilon}_\mathcal{X}\) and generate cartesian forces \(\bm{\mathcal{F}}\) that are then converted to actuators forces using the Jacobian as shown in Figure e 12.
@@ -891,16 +867,16 @@ The final implemented controller is \(\bm{K} = \bm{J}^{-T} \cdot \bm{K}_\mathcal
-
Figure 14: Controller in the cartesian frame
+Figure 12: Controller in the cartesian frame
-We now multiply the plant by the Jacobian matrix as shown in Figure 14 to obtain a more diagonal plant. +We now multiply the plant by the Jacobian matrix as shown in Figure 12 to obtain a more diagonal plant.
+
-
Figure 15: Diagonal Elements of the plant \(\bm{G} \bm{J}^{-T}\) (png, pdf)
+Figure 13: Diagonal and off-diagonal elements of the plant \(\bm{G} \bm{J}^{-T}\) (png, pdf)
@@ -922,13 +898,6 @@ The resonances of the system are “decoupled”. For instance, the vertical resonance of the system is only present on the diagonal term corresponding to \(D_z/\mathcal{F}_z\).
- - -Here the system is almost decoupled at all frequencies except for the transfer functions \(\frac{R_y}{\mathcal{F}_x}\) and \(\frac{R_x}{\mathcal{F}_y}\).
@@ -1019,8 +988,8 @@ This control architecture can also give a dynamically decoupled plant if the CenThe controller consists of: @@ -1031,7 +1000,7 @@ The controller consists of:
-The obtained loop gains corresponding to the diagonal elements are shown in Figure 17. +The obtained loop gains corresponding to the diagonal elements are shown in Figure 14.
- +
@@ -1057,8 +1026,8 @@ The controller \(\bm{K} = \bm{J}^{-T} \bm{K}_\mathcal{X}\) is computed.
We specify the reference path to follow. @@ -1102,8 +1071,8 @@ save('./mat/control_tracking.mat',
The plant \(\bm{G}\) is pre-multiply by \(\bm{G}^{-1}(\omega = 0)\) such that the “shaped plant” \(\bm{G}_0 = \bm{G} \bm{G}^{-1}(\omega = 0)\) is diagonal at low frequency. @@ -1114,24 +1083,24 @@ Then a diagonal controller \(\bm{K}_0\) is designed.
-The control architecture is shown in Figure 18. +The control architecture is shown in Figure 15.
-
Figure 18: Static Decoupling of the Plant
+Figure 15: Static Decoupling of the Plant
The plant is pre-multiplied by \(\bm{G}^{-1}(\omega = 0)\). -The diagonal elements of the shaped plant are shown in Figure 19. +The diagonal and off-diagonal elements of the shaped plant are shown in Figure 16.
+
- - -We have that: @@ -1188,7 +1150,7 @@ We have that \(\bm{K}_0(s)\) commutes with \(\bm{G}^{-1}(\omega = 0)\) and thus
-The position error \(\bm{\epsilon}_\mathcal{X}\) for both centralized architecture are shown in Figure 22. +The position error \(\bm{\epsilon}_\mathcal{X}\) for both centralized architecture are shown in Figure 18.
-Based on Figure 22, we can see that: +Based on Figure 18, we can see that:
Both control architecture gives similar results even tough the control in the Leg’s frame gives slightly better results. @@ -1306,11 +1268,11 @@ Thus, this method should be quite robust against parameter variation (e.g. the p
% Stewart Platform @@ -1384,8 +1346,8 @@ references = initializeReferences(stewart);3.3 First Control Loop - \(\bm{K}_\mathcal{L}\)
--3.3.1 Identification
++-3.3.1 Identification
Let’s identify the transfer function from \(\bm{\tau}\) to \(\bm{L}\). @@ -1408,31 +1370,24 @@ Gl.OutputName = {'L1',
-3.3.2 Obtained Plant
++3.3.2 Obtained Plant
--The diagonal elements of the plant are shown in Figure 24 while the off diagonal terms are shown in Figure 25. +The obtained plant is shown in Figure 20.
--+
- - --3.3.3 Controller Design
++3.3.3 Controller Design
@@ -1464,8 +1419,8 @@ The obtain loop gain is shown in Figure 26.We apply a decentralized (diagonal) direct velocity feedback. @@ -1442,7 +1397,7 @@ The gain of the controller is chosen such that the resonances are critically dam
-The obtain loop gain is shown in Figure 26. +The obtain loop gain is shown in Figure 21.
3.4 Second Control Loop - \(\bm{K}_\mathcal{X}\)
--3.4.1 Identification
++@@ -1767,7 +1722,7 @@ Erz = atan2(-T(1, 2)/3.4.1 Identification
-Kx = tf(zeros(6)); @@ -1492,8 +1447,8 @@ G.OutputName = {'Dx', '--3.4.2 Obtained Plant
+-3.4.3 Controller Design
++-3.4.3 Controller Design
The controller consists of: @@ -1545,7 +1500,7 @@ Kx = Kx.*diag(1./dia
-
Figure 28: Obtained Loop Gain for the controller \(\bm{K}_\mathcal{X}\) (png, pdf)
+Figure 23: Obtained Loop Gain for the controller \(\bm{K}_\mathcal{X}\) (png, pdf)
@@ -1590,20 +1545,20 @@ save('./mat/control_tracking.mat', 29. +The obtained position error is shown in Figure 24.
-@@ -1615,7 +1570,7 @@ The obtained position error is shown in Figure 29.3.6 Conclusion
++3.6 Conclusion
-Let’s load the simulation results and compare them in Figure 30. +Let’s load the simulation results and compare them in Figure 25.
load('./mat/control_tracking.mat', 'simout_D', 'simout_L', 'simout_X', 'simout_H'); @@ -1626,7 +1581,7 @@ Let’s load the simulation results and compare them in Figure-
Figure 30: Comparison of the position errors for all the Control architecture used (png, pdf)
+Figure 25: Comparison of the position errors for all the Control architecture used (png, pdf)
diff --git a/docs/figs/control_measure_rotating_2dof.pdf b/docs/figs/decentralized_reference_tracking_L.pdf similarity index 100% rename from docs/figs/control_measure_rotating_2dof.pdf rename to docs/figs/decentralized_reference_tracking_L.pdf diff --git a/docs/figs/control_measure_rotating_2dof.png b/docs/figs/decentralized_reference_tracking_L.png similarity index 100% rename from docs/figs/control_measure_rotating_2dof.png rename to docs/figs/decentralized_reference_tracking_L.png diff --git a/docs/figs/hybrid_control_Kl_plant.pdf b/docs/figs/hybrid_control_Kl_plant.pdf new file mode 100644 index 0000000000000000000000000000000000000000..07087c426b779c32e4e972bc90aad6de99bf0efc GIT binary patch literal 276119 zcmZ6yV~}V)ur@ljZQHi(J+^I|du-dbZQC~Y*fzg;&-rmr-KtfU?x(w-bW&MasU(Y3 zUPO$Rk&YdTbo4T|0E(1U($>|^$iUgc&X$Y7%!z>3fq>Rn?vK2nijwHBBqXRTEI~l) zBqFLRDJ;rsZ*1!3XyI(~Yx(6-5>-}~loMCtrMGu9`F)&z!=3)PINQ58i& -Created: 2020-03-13 ven. 13:23
+Created: 2020-03-16 lun. 11:22
9I+}}utn_Oxv26%%xIxWcqVSB z#Ye|^YrwX>`4y%BG2+Hc51zE7wM6;oF@drD`urH*U({XuYJETJy?) V9-*w&ue4tV@$v`dMzm*zZ+@QN$zS!f-xIb7N x`UjC&ukcs9Sr{ju6n6wZ4M=JKXh zs+}v2M+0Fil!I!*Kt3yq+TB)gRGZVmkPY|ZH|w!Hc `w>F zwMaB_KSuIj%0G% !lic-Y zf9!$vfxp*_-}2P0^QAGwxA8v_J<&(dD(+~JlM7a74jlGtXa;YN9QI4*8vRjF_y-WT zSnV6!WA%omG#2YU`}nu3dl$3#tWMc87R6z| %FB?sL3j=)C=5{Of|MNq=91Qu^1^uYY?^WynkBMq66!z;``6DlX z_tfz}51s4Z z_G@tt_Ui!l%NWl`=*L}{KV3Zcw>jOJzr}Ade~#zLf7^5Oe~RDOM2|;EpSd|ZlS_E4 z_wkwcAU^Zc>A80SKJ(-4|1^u!>Hh`)ulD~3-7+@FVY{)d|EIeDQ~ZLM{|jnZ R?%0JB@ zPifXHPIH}UE_!qimWPF=F%h|- zF_lg$qD)+Op1(#$ZC@69pYZ$yOqdaMgWYdkEU(9$!kZp>uiGA_qbrLOM1B9Yh~@M1 zx{6=^C~9WT1{3z=_a)(Bv$(^afR-A~`cDnAP?EE2e=qgK>Pg>+@~L^1vC9Q#mbL5Y z&&g%g7v^ 7{hwy2$vRCkHTt9jGno|h4u-N`nRF1$-xAZFJw1`Q5ce?5j}QT z#S4s!{ufaz=`5l}ZBI` 6%w(weO1cE$QwjS+xVO7;Yj zU;QzGMXI4v6{lon<(2#-Ht*NlfuAl*%V|vjdl9Kgw0&GtnzE7ytcm@xbmV!ct30Ua z9=F9jon;iOzYa@iy7mzx#x7c3{vP_GufLMvlXbGyv9*kKo(|30&oeM#rCYskHkd%t z+xyVF@FCrHw)#T~IV1_W%xcElun}iex(IwWN}&IW=@eMDCbB|=Ih5830_o%hx|M@c z4;9Ts#!U4JR_(TCWqg+UXu(Hw-wNcCI@3MP%J_hzwdkPwQj8wTX0!@(^TZYh8@%oo za Pzf5Bi#_hyzKiWc|0@gAKvvCN^kf^xTM zUzr7LP^aaSk@1228u|so3Pg0r&gspc+ipHq;=so?Hg9NfK@H`eiO8Qk90@EdadO|r zj~&f1MM3$MftvfS$fx9rFMVQ+5eopGf8QdF)vjFgW4?0a*rnCEKi?1HF^gqNV=u8? z$MoUr2!ib?U7Nz~v)(?8wcV)aXUG#5y>7YqCNbwi440LFGZRmcnXQ$`S?iUFS#MSt zG(T_Zlv(N?jLedtRvPFYUoOPRUdFJvW*BbKaoYCo8!OjtjNw6W4aP|+>qARDTKhth zdYps0fLK_# OsuQc<(}#T7LaF&mJxSjU%gQ z(^~(ny!%>wx1UBkV`6~d2@>)i3D 4in+JbjAc( ziefw0xkiwGjf}4PM`vjr7v|hW-!lRRj-~B5Uq=tqaN~av>N5w(&}Y0px?%kVgl-L4 z5~$@EUSVZ$|2{|K1vp#h;~y#__wk?})wq_sN|`C%xadx%9w(1qQq XgUu- zz?O=(GtqOaf519FKe%K}rBB%TqGu7FK5wraxc`Y2NF)Ihq<$=-3>fo?Q=Ka1VJ4Xd z7-B2>5ooRaWmhv;N(PHr2Y S7g$Xsc!li)u$LaqP*jYMFH#Vm91e zbVFoSkytOGRoht;bV3HMKGC;ti}W(gKsBcT`#e^u@JJ;`u^@r%0nC;OW7WA5`%f~C zSaMP;hM~UV!kPLuu%Uz@VryNKGw211U}rAPg#y!O=mx#wfOO!a#Y?RH{gY&*b7Sy4 zUVjLv&eA6>MW9q15 hNDBCrd$CGKMdq`_#3>;>uY(L`6HUI zOrmyml~qhJp&*o&=jg+}3Zl4iD53$<0hDeY4vpr$WpW8=rQ1T}c6__)!26%sy80^2 zXCRKs1K~)lQG^);)FT|3V}^53fR(y(1=LMlW>O|f(fd5C`tg`wO?4em {?Id;cc05&jhakbMq3?eVM?V{y(j^$ z_&vcAy=XX35UE(1ZdiuYjgH7>a~lv%MM@rV+n?mX;;+*8moB88s$vt`pP;Ge@5XQ< zrIa9IR3{7}>zY8-$e8OCtu8L*vJ{acwK|xzc@HKjcqAok`9i6->=6fqY#7A_MZaNL zun?g>ZK}vvuz>$bLZi~OD}EEYxA2G-Uaf(8tv&-;=2`UDb#PP+8Y)a>_;NMoX$gSp z%yX0OE1X^wjB%(F-IUIEqNeN|dlguch*3zqQ#Cz|9 aXAxiP%0l61$jQlCHPvB8z #INlUqfh*Zy?k7_Jrv_h)dIAmJpjs!<8CZ=l&{3CN$0hbE_eM_u)&6dmxS3cMl5P zCD*^8CO^FMkt2r5hL9?*$%Qhr*!{j1J-*|p`Q^BvYRGN`GARu2MI`kdX+pT2fQ<=1 z)xf%r%#iw)(3%?1wjIfqFgL6jD1Z`TD(EbB+r=M-mBb^89$2)Dr4nqT;}&cf2~6-^ zl9jN<9yxq(bc2+}u6V-wbNM=@aey&>Ht-5k*1g<|+2`yS?9U`qxOChJ^=b(iYv1-# zCtEI3e0m%hNTT|6aTkaB3S90asdc?(Uo44M!N#F-(Jjcp!2)H^;m174dr+JfR%9c! zPgJHq2UL4;`Cst9h_L7t!*pbgSvG$MSg*oSG@!-}QMq}6IY@^ b z@wUQ7b0)Ba!Vi{C`FH~bW1G6BO6*YBt-`$Lp%*%j0eq(1*1;VRvWrUn-CJ)q$GHKp zzPY}%L=XD0{3k{Nh5eS|2tplCa9|*@mGsP+!XYWD2(lFxraGO0!&wJ17<%@{IK~mK zIywN!{*Apv%Rlb}!fIVpu!PYl=0G0jDlj?owVk7pYb G0zdTo*2?CyWbU8Zm|^e<%4 __AP$^`xj#7azZbgv}$TwgcmA|73kl#Pu&%ErC^~2 zV!EZ{ a8apOn8A1QUW~G7{N}i za=fHGeGH9ln$~t2%=@b9^8}vZk75JiF8>D7`Pn^-u| 9SMM|#hpKuTqBotmI>fSztTNK*1dD89HgvTdSacg0-;&5l_pgY^xP>C<>l$} ziO|O UrsrBORhF{7(p0f-YLT6Y1P=_Q7PCjsUue<;IyKC2ctuQF z;6K1PMU4YlpP;#@xZlY27+I$j%#TCfGxQ>)eQ&(~{KNF5M}w}LBckylEahs}`|4 zxl#|Q)G)*7f{?o>qObGAZL)jw8Z9?g0SCX?U+d@bvlL*zD4mySx>0hvz=WZ}0e%3V z#R4sN6@U{Y-Zhhyj6`yejsl{l0Xs6U5H_0x>V#v2;M(QnCJ4=6OYnH?Be1Vv>nj36 zbMBQ{=5|yT4T0GK;vIR|mg(c*AkVy;7lk}Knr9aI@II{L_-6W6{G;_Q^DDbd;o+jW z*zcpW)lU7Gji+xGysM{2P$eD-W#0f+GpdEt@NgcDnw!JH0{-+ysBG;4WZ9&_oz-MU zGdTvH<#e{AhL=`Kr`KFTLc4zkC=M|Y%HJ81OXJXVXWw^^2wk(HIhH_W-gBLp8ih@D zk3}08n{n1*p6jq(dDfQywTd^;^KzWgBUs9tRa-q{yzyNopuK;@DHU%=^GLpn WFQ^h*LW}#=w!D^na8*~0Dz_+@7A(|NUjc~=mClFxaiOecD$PyLn zn)Rk}EI~b?aSQ?c(lq{$!;!urj#)*&?JQ%;+H)%1_K{d85(@dGJCRw~yjFAuP3gl` zf503q5vH6_*&FR8kqkE?#(P&{6ht&f1oQ}!E9?TNz>8F5QQ+^~2uccDBpq!vx?m*D z1G=;;lu7E(XTLlchyd0Aa2Z^18d5*kB16FahK9?z{E=GdjA)D>Ad2oMj`nuZ^a0hX zkLjH@kMNT)L9h#k8idAL06}fwTr0d0q~aLub|Dd3aU)D48C=Bt`cT|xJrP5)Q BaN2IDp0RG@s7>5@9&l@lg8$*~Hgg4Go!2G~F`iO8vlVCh! zk!Mcar6_{zqFsnC5e^9m=09K}( Dpg!aYzZO}48%RVJ}Hz5 z+eA}|DqPS#VRs>cEx8OKxHBPFYIKKEqPL5 t$q`)9Vl zUWyFobA1u(Gl%r7a>PP0I7qDc?NSB3aY5#+S>hW}>Bq!Dn?$!c)Z%s{ z`!0f+cJWIaLYFFa&3Z`z6e3s9 +URNPxw_a_Z=a=fxm2tCPl{`pSUYVy1kV_!rft21UcSRGGCe zT;aO+;gjBXh6pS-$PeE+!JwOH45P6`OBc>09H>`bR7434b@lg)(@N1H;qNXzZA#*d zeuxfR>Ts~k$nJ**qLF@^@n63%qe!&NGKgbPd1t+B{UwwL2pwtq% }x;{{F9T6+6RB$ z!cK6ulg_{vGP_E!i;KKLXeTka(IQm2PN5!pV~12hO&hW9UV#;oNjAZ+;A$F1-2D9L zrYL(1Iq v_FDc-qNZEocT^9(?Rqr+ $9~0ODl7j?A@l(+z)&7c6Tj3z_jf`^!k2Y__wcf(W(Upz3R?=gkiP{(wBWb| zW (>77M% QC~mKVqh;gTtgv0K~?L!?C&gWvtd;_CE#i(TY`%@I&T{s|w~SeaYR% zLNqyYxzrN+Td8Gr$q>1(DmsN7X3C$L1AY? z8r=*6p@R8Ws>d+xNu0thOrdddTXK#ja3-B^rdR+y3$b*eS{;S>Ix(%zC)JaLRoMGc z7q)GxQIS}sI9C&`7mgv?9a%Nld~JPVZ0HD%Z2&^E@57)d5MEAzZ((rg>W6eE5f1(a zijV(*!ko`mYw+QJETjgniEQZz_V$6&_R4tmDvw9w>r;EIlm;nsY`{z~j0ET;2)VH9 zis9$RXLByt)#`Y|>uk1cD#YsM*a@vo7OYHg`U_~U0Cc&A`yx_|!)rfDjB)T1+H8F_ zO6^(OnmV;zLUbVl{q%PW-oh(Ck7_IuL?aRmtOc>#@qd?M!(E5~?Xe2wY&JaGB<45a zhpe}lPm#k?noRYf$Xa#6Vx*N8vO9VhPD2L&Q1j5|&is6Ev3*plWfo-4@jRBMTCZZ} z2rg7EkGr-7TAoQc1GwpMamB4qaM*NQYBUEc%oEC9R?xNVPg3$c;>IZKzBS&gPx_ zN&X?^i|OE?rMPURF1pe%H4!7oVrTT( Atif03j~Z?Gl9dl#*q)} z3 zkys6qp4N(@qJc4{wH zPIU@#)MC)5HR6JgzWB^D6Q*&)=1JFA 4Gn z(^u6^+;C>^r*_U%Axr6u)F8SQ3^1u4`hs}ZWE;51%TOnR&{U%bvWD#f(OeVR^kutZ zP*mgHAPr%Q7Re+Rax!tz~TX)bcz=yTF|IvRgENfKq91E9&$_C(^FNIND?kcgs zm2! SMU!58r=BRZ8kBql2Qm!#L(E>SlDB8)l#qzCZ8U}qoag-NT0*M> z)XX=5^AK#@UQG{D$+~508_CJm|6yr|i!8fGGZY;i7d=2#5 ?=PjDjqy#tz~?t%9GQimm3O)yTxjq)edTxxbBg`iTX; zlByXKgG$36tbOa<0Bj1lXPU|pUY&8S)6(tzw|PkaU2brxP%|ObJGqi4WJ;?K6|O4| zHbmqj8SI-4{;=MH${r1|xk;GJEF#1kzbJ_2ii)w<><2Y~LSqDWR2en?ow>oUx%Zp7 zq1U%+i*zsH)8>fnu)#4^BEQe3g;Z+NvC=kNWv9*Ng_a=E=zuOh;GGRe>utdww%u7@ zxCJhX34*A?1roCc7+CV{wC{3$i_1Q|2C@w)im<5g!SL@Bl_eM*s{8Et3Jerl>D6gX zWz}g7D9d6cX=}>RCJNq8^UMjwVpOObEl9 El|B z3S0A1U}uUl=xExgYqg>85$;BFgy^>${FNrezKW~)DiyQxvQTH2JCP7hI}S<+j?l8r zgYd*4odu3zZht|IHNDIZQ_qCxb5?gg2oAXDzvA9e-*?QjaUAt$mEwEOuK?!f_F>P~ zG$U-x*b}SRa_<3O9L{>37 XNHl zsbN)p`_14#3g%>tT(4uMb=q_0&G6Rl+NW@sNxmZ@^ivH*=uls7O4Rk`^k6f}h{qeE zMW@ATXW>(SDODVrdlZ56dlw;hY?f}#0-;PqkYET0q9*rE0~P2SC^C4Uis1*^wkKGK zgI1Z6vITzpBh^P}@rZq6ng|dRZCsAsDteR8Mq*TeYDd?@0vXvg7IkXk)BsFHSpQeR zCrlS0AS;-BR0R4EB9eK~BrJ>)m*i>EdjW)utde_@rM^0urm@a7ip6;FAa*;3qd0RV zwSdTOq2Du6I-epa?r~uXro)XHm9yv1g;6T2#tj`H`b7!y0ro>|RSwGKX3CQUt?ly- zwziPA$@g=U;LR_NFhxW@1TZM06$^X8^x-LQ6bhy+V-%ZzA!D>+i3FhvlkEH7PQtFU zSX-m1Uv;3JqwQV>W6QN*y{#d3{O^zecTu$$l~dOqPga^xGXkSuVm;vuA(IG69&gwt zV%DPR7YaMB9dmD}L-{^$`-N-!h3YlXG|;CJqZ|T(7C~32ncWriinf9pHJ^syHdk1$ zglOPwtcV;#E0i$V_hDS%?88v6zU2RIv~VrbS6zO%qyh<3vF7*CV_NU;pojdL*T?A* zf)G-*-d;iXd*4^_0dF9MlazH+hVjzyHUPJ_#L=M!n-0XF VthXoJU zKYI`@g-fSN^HXXc6wrRUJQ*=?J2mI7_OR1j!BrqMpu!MeQV0M+-+R`Iwm=z~%GCzC zaopANvxqDPPnY(nuSWyS_9oDRP3=t)z^;P{S!}ORbfj!pAXTdH8}|f8=jk(05VtNg z2CKt;m68z2os%7Q7I8cgN)!#C5t_u0No{?BJrv#lg$W5vxVB@0rO-PknC{ivW9$ aF1(MMF|hfJkTIUUnc9H&AK58$s-u6 z9zi2Xe!38Ya^spbU_Sy8(zbQ3H%=s>5Mr2p0g*|LP3x%jhz189o6^_3FQ&~CZfVRG z8-0SfU3lcOOND?vgh{%kqywgcXTM-m!+Zo?CmZbtI5NWyQ8?bkT?T~9)yb-X_8!Xg z%rYev5mG0o2)X4j?^2Yd;d12Gy{ca-x!$iym{jC00^wSpAiGSM*}u T^ OO=lh`s@7k3RP2^EQO=F*@m)N^ppkK1oD1aYDK3RDq9>5tkKHbGX&Z#TBj~t5 zp}F13)#%5d_6%^s8S(sGR5O8F?LeFelk<<8g*Kva0ngF&O5TiMf$#2lqxD++a9hVX z6NG{_+GS@#(N;;vO$Pz;lcH?laM^@v&~6oYjU2lSr3t(;Il6pcqPf8?ccfL-wII%B z)zF69S8^r9lBMl2VAUL=ANH07?;bI0IhV`LTep^ScXNFejGFJNM&y8B`Fkc**9L3a z2YuE7(aHvPb2tebfjQ|a7j-?U>`^DebY)mCLJ>H4pD;jqfUd+T*#$-iQyv6yfo1ZF zJ9sUjk~NWp2A-`ub~STL`UtoKWsJVEZn7@Gkj{0P=9`kJ)dZS`{7j|hbch?og}Px} z2lLEX(n@w*e`KNN;zNS9d9y;@IU}GOU+d6%riSNZ+7&XJ)m&G)!tZeGdxN2c?Q(DP zl!veUt|I}C!t~P-H&n^eEIw(LV%%kfg`JZw=+KSOOYRkb;A%cIF4t7$ F;WFh zfkqJF QeoHAzxQsOSx_8sMM zTGIP3GwP#k44&W{$%WeaC*THBS>Y2aL|P+^4u_3lgRe0`dM}2p)H5|R+X4I^C07>M z>k?`&LAlj*)wU;0%XZQztWQxWhDjPfrmdPAW}&%MPNS7_A% !V?fX zqcclmV(Dq&nndxQ3a=l02^)#)1X;~mb(z6CN*a|byzMNrnbhz6q}xMx0D~7VZFsaT z84wPoU@DML%EU4P+YrSDqn#B{%uWpkD6*tb(}CAyH`Y2=y&FuqritOYCPWtQw(dxW z4>Eo%`G#%oEC@QO9GnQ~%820-GVXhRqzpt`_Z~tWAs7Oh1UwOs$=MA9+!;mNDfDj> zzSQ4vAir46TH3ZDNKnNgWBHhnE%@!q(M;q5P%$1ChO1n0>ND!K4}Q)a5bK%&$&$g %Vj)_;@J{R0sy0EcND~pPdz3Lft`)LRDwZ$z@GXh;sf8#}z z*f)qs5-Rtw6F+%$W;$cLXoYPs?Wv5f6pzPF3iyD?L8sdmUli}_g;?5UGh C_i+60+BV27aIBX)BWDg{Dkmn`x+mO4^^;{U6cG8-$V|0@ZO=B{sXb8(5yhL0 z6=6M2y%kl_^IF9dfmR*0O){5&`(7f62E!c==>=i&8TyBW3km*6x8?Ik^G>M7gn?z6 zRw`f`VT>qsiM2j@t_T(Cy}yGvxi&9`AMZE6yGO8v0N;v;YnUk>@ydA%n4t}VTjR2w z3E2Ka=3tW^Q&~t}wvy*Qkot3=p8NuR2Mqbwn;v@j-@Vr&dO`6top(ifvoXKKc>((G zo?=~Cnm-5K_Z=a6LW%{BBoV~*1;ez{aW)%5sp2ImAN*2<8Tyde5<)=vUN|N`ws-m^ z;gymZKMAkVoW3j8$&EzUTvUDlDp6L}s4Ld~yuQske>fp?OZz#xK6h!>5n=~Ih;Cl6 zPt5bUojR64?|jwLHjjHKmrAT`5#d#;dilBp!`P-J5Wh9c)4H!xC97chD^1ft?rFp- zB5cjdIpaP{d;@MsKi8OqLn3PcTig;|kk!sG!Ea7+2k=jWspKqV+f31nyP>9T5oU0( zUH98jPQ=~#?);)Z`QBwIg``@1N)obGBbIZ|#trQvRQf`^sEkI#NL%Z>Zcrv)cox`c z?9P6G;v#3I@D`ey))&NZn6Pu=@e!q8OB`QG&6MukA%wDbV-vB79-4-`HI036@Wx^| zT&9Igz*=O$@-Yia(vV}G!NKJPh$BHf05X=PL*Z#*#^F1mzpJEgR>u+!F6I-=*oh_? z|93ChdyLnc%5}t9bOZ*S8os7IPL1W!7AM7b0*o)-S%&yP&lP4^UA{vX1Q49SyYOD{ z5$D9%`3c;Pf^clP1WU9}Miv-_%fqYK?n32}srMS>fV6tk%>my)>U7$29Hy72TRV~y z++k44Z=#HX@I&YDi^(ZejF1?`Aowypm~ws;A>kwJ{ zOb-X 7DibZO#(Hg~@kEI+o*myA9Lyq$Pt?t6nb!(`xBBB{AQ-ua zJ6H+9gGa*5&AAWv3BIssW6jfcj$@^PZVY4BJ `4 z7IF|aGN$2B(({X>$Jia*TfzeN7}8wvSnGBSBz=-A_LH0xWAdT>q5WBnd0Wdbb7ERW zFimb%!hc$Dg#Z1h( EhGEA7prr Mj1I?3Nnk{+3D^38WdNy^c zK+ksf&O>2Bg~=X0VIixeR-it%9{KuAbMAoqnU~Qnn4ZQ3?6Hull|*mIlIaxaV4j1u z_Jm|bJ(w@BU6P~z-a7JPSjd&!Mu>48MEE4sLXa5-kEJ!1Whjxdh9I9|v!MSdVrV?A zn81tSHD?X$T?%DF3GE$lOt(3KOEOO#-XN0@&Q5X%o0y#l)VNM*8KV%=Vu49v?r4pZ zGJv?(fZH-_qIQ7HwRSx3q#f&JsY0e?^3%fnT?=hbPpTU xwtYJkq|Ep* z>4HPtvx-)I=ab`$ sJ zrWrg9EHLekEDR)OLMF>|bb|ly$?%BD-#*-Yi-3e>0oD7%Y;EkS3t6H|I4-PL$AKnX zJ_Q3V>AWV-WD@|Mztj@w1*pMFrNxc=V+I-%qDXba#jfUH=`|bqOngBO$#>A=Q>>G# zUz#7Nb(E-5JqrhwDu-#V!Yn--$1Uep`YHI+ozW<3so?Ka-1)Xc-OlJhfj{VtG3XDq z=t+U&e9Jo~SDWwt=X1Lq9xf?BQ!k7 K{v+xy8Tx})|as_P`ALXi0D00 zAQ32`qBKrj6YbR42ZGN)_#(^-f%9e4C=Y5YR#g9fs8@m1q&=^t0XLO<2W{Z?FW!tr z!}9gvydceg|JVrAZk4xm&Kh%p*3ivd(`k+S8je2fC|=l(xj@5JybbNNeTx7Tjy&uD z6;GLt>Dh3A$#&ev>kHo(a=)C%TWGmK6V *55<=8%M zvE?=?KDnhfi8UXkxg*3N^l0Z?9KF`Pmr3<|@tM4~AbOwRejBdW&bCL(d7{+Uyr2Wy z<*cLlh7@P@s@a;UPakTB4MiG(D^bEgXgAfG<-(sU~>b1-f6@n0A#G2&kC8^8#%k zVn(9fwqAHDSsM9Ng>Cgpa4OIP(0MziD|b8Z0xeU9&%$ZjaTPU@46A3p$a0Jkx_UfY z!FemjTB`F4R}FjN?o%;4Y$UBIGyWq2(dvH7a(TKf^+6}) LWP<2Qor;BZA+Y6+*d=UXl#qOHHp`( z$I=}qo~M-{EL|4wa^itS7q2WbvZ-8)BL=6Hg1T=Rw^iTS5r5Jl60!j~HAV}|CbGSy zAin;sC&>|f5j7TS_6)K$BUq10V%YL8X&cU8g}Du<;6%gTMF7(rtxHp6@w1L2FNwie zvYhk9Lhi%P?ik#6+uc~gQ{PaX_jzZ+jrgf*SMS!xpSN^O_6O!&pKxQK=MH$@#>eaC zmdUh8Tp%;nkQ=ghTg=7_!depF!wrXc@Ru~D7B!dCj$y}f+~XQ89N7f2qYhs3bnRBP zb?w$w2lE=OPswY1!ltDMYRBya);3LSmwhs5p`;5}*qh1imXjohURp9$FsV12*`Z0h zj~ GY6aqAKn{NTHuc-P)B#&~+--%}Zj5K? zr_A9O^w9|+HJ#~*=sYLV!FWFniM>%#X~%4JPiKx3(WVb!z``D2VaCa#ShFcR-%FDK z$~&D_X&fYS>4r60I@;m&$6=8*JVzO?{*CM~Q^ %EJc&>V*RC#Q_4c Y$pZ9u20{P$d`!B{3o=Z2)@}B@%kPRiPs#R-6a3O)=m1)h(R^(y~Q( z#pG)MO| LYNF;TC=nY~>`Fkk 8ThrF%MKc5tT7Z>JA|D1{kiGFJ&glLNB @swJJJ*}0+XguG#D2MN-9Bs<*GqeZ+&oF45vtGg1-W7U6l%_w^6)14hbyEb={w0< zy(a*_8acC=&gePVr!wzfF 3=P|RDQgEEtbWa3s;oTL* zaj`v6?f~`%IZ?7xH `l=EVVBgGd`|@2ipKUM^-wD32gVv<7Z)H-@Glt?{KYl1bE?Fl*>tSC0I?16b1F2i zoQ_IB-YAclr7)Vuj%!2K1YYnNVi(lRkSlS^Lu61}LVdQ)*N$IvDdQ(x%t<~C{q8{e zxbN*uNX!z(VF-tr qR-V=aZ zfjtj68F^Y`J{;?gA>3+z-4=$qFfq4`MBvUjC)H|WVA3e|%hJZzqbb^wV0D#Gfp`Z4 zLVWm$Uf|9*PmD)Oev(hV9qHPI@?B)+!)Iw|oQ^&_l}AD2*kg~J3K5=$R+RO4joh*c zoM$FniX_&jpn=BEqh(3%iS-)!sVWq|+^hfjk2SAL!EcTV>qF)rBB 9(HDj7p=rCYth1-^JlkDfiUOAD?#W*3<)vrBIp^F+Xk zyLh|}91U@9A6V{_V**9GF8-lm_q+n-#wam=D9~={iH}m9q;3|!22IgzdUztd4C_Gn zIM9F_@oK}n6Vd5uA69Z-8w~8B)?D;(JbS)RlkjR2t5tpMbIiD3qvWL9>um+6(bI*X z>Be%0fIH}I2_>uvGA;!44quCa%F7*4+aE_py3-mlTPojp-)-{OPfV}1cpMPzbe~>T zFixE)|EtzK!c0ENX8~2B9V&wFS_^ m5 ;pDEfBk(zZi0nv&|BTTK z^c)kJ1J vSXO%eo=i-HB@B=H8opv=?QS>N9FH^d*k2_+p2GH%&lPqt8}aKGD z(5J)k T^+A`aQ!m&42-=>XIFDRrh5=L=P>2Sva4aRKG41GFl9?|jO%xOpsNsLxdk1S z>UZ8o)kL^*0v#oA =|0vhjxL5o+e zO1(e<;wdG}jmXwW|4@s>b(=o%ttnNjdQ!)=`$&i)z9HDy-yh-a7Sbt7icAEbrvy%s zco+F?!%|x0b;JfLN+GH7DMbSKZgoZKb!}u`@fAmVVdWO9IwMQCo0N?^Qrjln#+E2( z1Ia7t)xZ*ZC)?hscnPgb1#vbyN5wXybs*R6qp*@zphR5SFiw6R^OmgnC`reLGi(Vh zX^;`LVVI?duA3AsvAA{L5n)xE&9DNREECzNLOO`YprBDXl|s_Ak}j{$fe3hYNp${H zRfh=Qr^^ZhoNYO{(awvMJ@ 0|zb)y4%qGTdYh-*iwodq3WkOeiSlf52SNw{rq^wG>JE2jDO_Y>9lg{`Heq$9Vk zg5DHAjSsyXZ0s84pOtRQX<5`U#5OZOyWTSW4`+W|xUAzZ6c2+)1$2(=8T|GUK>|bJ zE;Q>AsFkWL6I3TT9!Wns`tL??N%vnk6rap28SmI=G9k-REcYwRRo%K9uO6#4O6v{i zF!oG&nycVL8!iE3SnM_ndOKvnE7F(>QHLuNVDS{JFIG6DyVuFCHh#S2wtxtt9Z$#y z9Q=5|ofCJ?BU&lWhUC;h2@k>b;j1FHo|t1K2f$$v>WGO&cm)eO_uLY7jST4}m6+;w z{ix{)dCX@T>**tcn)ciJltQtsu@!Aa2`xNeoqwQ-(hmL5OlX(>c10L$rD7&M#4V_Q zQ8Mdo)DV#rv3FP%SrZHp{!zh8&ftk+D8bPy0j8DFlP^MIinu4s?(O!Wp}`d_i+JEH z-cY5k;u^L5eTG7BFXE{Jj7Q! QsX17Xhk@lQgzRFF;{8{dJ756olf1o017mkwaU*7fCrp>Oen6ptU&|Sj*TeIy zicNDFR|7I#yHnQ_Z~1=K7m_LpJz?#Di(F5Zm_@LWbZ#bDbn_F7U}6>HJ9HSBGcwes zpCE9f7@4|6a{=}u6y>g%r^CLJi_Us+Cf7EZM8ZkbO?Eo`5P~b!x6IHZ?!5R=<0s@= zwgaI%p-1B#Kv#w88lLC94fR A W z`GQu#g)~)?6BQmuQ)69XJo-JZHkJG1r^6@{A6tksTPSO9t` TuP75mKOx<=F*0NAE$WTD62r-Cgj#gANDu+?ly#cXuJ;89DxNVia* z$#c@1etv5E|LA(l@HUpFTQp{7W|{4nnVA`5jG394nK4dm#|*J!W@ct)W@cvRDBkb> z-tW2hoF9_9t7@&TsxHkl(#&)_MK<0l?MK8c^EH+QvR26%sVAxQvQW@}W w7oXXLXugKLSY_`e{+w2sTkpo-UX&9Xx#$5DuK=)4z5?Lcy{fy#ZkQ)93F7; zES992&m&!ud}A^TLx7g?W0xmp`)WSoJQU)a+9NJ3sp#XePp=pCwCP|h$-0UX*9kMz zLAl00{5k4qc^HdReHblO6VFVq%--(WH);i+p&Y~SB^v0qE}wXoB$CI_?uT=b#APmb zE&SwIEAiV|Y;H(Y4Wf%uxuzHV24NMSDy@5I*p3{tY(N(yEltrMz64zeS4v?-HH}1` zG4RSK%6=O|ud>a*=2)YD^!m2ed;T`X89nD35`cOXXWOXMzmiU|=%TW89lKHxkhW*Y z{p?M{68!-1q&<8Q&xNLuXR(x#TzgY}B5aGdQ{pJ{_)~C(3%p7tHFU?2zeL!=`c&|S z{FQZ{zHf~i4VRL`zsSYALU81Gh_m|=f$5;A>mWk5oLVH`DCv8z&!stRTClr_vJAz9 z$kN8%^caOB@}IyWZ1R=RZyGv@ 0v|d{EH}hgljQhZ<~;K{+zWR3lFRDaOUu} z-;)#4!Vu!uo&>o Zv%sg{q77M?cPG6ahQez;U=`$E?qM%+Y8u;;1jnCiB{ zzMOMK9hvYNMIyFLwbQdyIC7+so0PL5ozK>cjKU2~AEg_ST+Eo%tU7rC|GX=}^NP9R zZb&tPk=kBiPyaDFdP+TGdDRKNW*Y16NwElg@`<}m?wfNO*Yz1L+>c_nDd5AS6x8Sn z5``zD&;I0GQ{S}6qqW<#_ADRL>YlMhrIDWP#rM!z=^*>4Po;ub?QKRGSQ&N`w{FsH zXL_;nnpS{Z+ef*!sanh}s`cq%swXX{ZiWoOc;S1N^);zqVqI6{_l @jOfrywXob zPgPk2$SUsX$x^apBtZKo`9fxqnbIfydDpH|d&RqyPDzlSek mH5aL{HpBUvsS;bcD#aq?L7Ba#zX)zPqpW4lv z^)dayH)sB!vv{Vs!)UO}_Cm $_y?Vusy_(J5Iq#PqY57o=-dpfxQ$E!6-K)LOG+IC5@K!feal5&2d}~CZ zPLgbkmC8P?T*r(M{uMgBnBC=4kshm*O_1gNXQYhRpot+d-UyLnyn8|QUMrR)cX156 z&jq#cFhuU{1sTk~N J z8BFz?4RoO5x+SN(Z7ILQDiT9mu4aFV ^&ah8a0N`4hSUgS76SCMI{hr-i|F z`K1gB0pb;aM|^I~D4xsmVuq1R4#$gw%JfJ@ aW#7)VEx%p6_me5 z(2)=_aY8}(`bT*`Y`E;FQCDx<#;qxRHz=U^rZvXho6K7pwCK{(DwhD|&|@SgmVSpd zm 74ycV$6VB5*1H4qZd*1%+_MVgF3 zk+xuiPFpC+mQK#;_M`y=HJaRS{79}oo1c7r03=nuRWr c54yw>$8owU`#VS>2bZ;VOu8FmXyNKf}G=~c=_h<7C*bIjZ9RKxEb)bOgc zAK|;!yA@O{F<&zcbtJxs@U1s}qWEq-z3 aIg*!&VW=-Ek?Ip_CNrJcU?AkEa}gau2L#V@eM-p zryr~9R&2^Y_OlO}cD=?a7OB1ApE6o}(3N47IT2e9A#FmbiSoFq1K_E-gF=cszxIv> zH%o;Hdp)7SO>?E1Oy{1X@Q02DOOF>`R;k=yRs~UcN7JR3 (fh$#U+f6Gx@EP#($bYFL#mRq$7u`zryVUokr*FAL2-* jfr13jhMoe@RRx#2t{N9A!cFFw+k;rN( zMx6cH8c9`?N@Jv*gV%dh-B=>-j2!s0oxJW4=-weyLB;Fxwe$_|`;hrGix!n5{F3FH zU`p=wNb<|Lh`Bl#$k$}?F7@eEOiYMa0#OitDzA9S?dRy^5V){4q*Nbtj(+lU!zX+W z`V4Bbc$L9QFb~$LNf`Ua`kIxZ%B_<;@p$U4?ta0#O!v>&BaEc+Au(qL+KY=Ttcu8@ z&m(Bx{wzS8-e5FcJ)2Zn45Ox>zIB$I4(y4)zIDQFy#y4>N$I@g(Yx5_%jodoLh(WO z-qj|2slTl6YQyGnR99K3r+uk ZjEh q2>>}p;4IFO|#D& zgIyj4(ufPh$=!M%r1yPTRGU{1_cq>rQ-Rk0)&m}0$+S??B?HM9ZXY}8N30eWSA|Ec z)W_9clUC+6o!jr`C }Qxi0xis!rhsd7eJ?*7Y3nUj9zY!IA}dRp6KpTB z6=uWguS1x)!AcOF3Q9My Q SsFG-nKi8zZBRs30Fr?Gkp^!Z_LZ5#vwyqw?zX);mj{nZGayo! zf~rFK^<` ^0dzNXClZYDcTbc>m#D@zI>P#7dQjZjEgCu0dbW1W-Oo`o4AX zDRY8hdMec~;#A4bALm^|K9dy@ZcqK5uSYK*aVS99Wz$SYg61`3iH5IF4;*a;=bck& zhD1VnW^})Hq&~4~gRMGU4E7f>9lT5jWgLbx+eC7Tly3c1(staQb16oCMLQ`1B+l10 zhMa`<+(MB`9`qh(b(2TZh&UMm!|rwoQ3Q6eRztl(cx&8l TuS2^nuYWn zN+eAdhUssh-uAfiG)O};I!H_jkbR+qdx>t?Jw _-IySgI(X|mxlyb3mqYa}5R0a_IF w9XC<+kJ z3{#d%*(4vi#xeC^4r44@+poZ29S`1zUPhLMP{B?LdyE?L50@r90_Jfm7B9B&CL z9x)eAvbEC)R^1S9U+;lO@>Al`Rb}Z;Sf8xRs$!q* NxxsCLLymom>39>?w~V zl*7c@Z&z7rdig$|7wF~4>48B`rg+URURchjORYv(2 B#TdXOxbXS~? z!?!Itf3KH&3PEQdPqcn>B)e{Gpor6Cg9_0)^#M@-vqwbPx^C>KxyYbDjKg5`^^zib zX}uK&&mmz!m-!vSJ{+AvPIn#rH>&zDt^9Ydvbi#TqIGb%h{jNizh+#*r{cSEn *D^E=vLyb&&}ywF-3+h7pW z`&>FHa$ |a^+wtSpK z`n=&KR1k?ZfPZl $!efZFXG+N$!oJd1C4T3@$-5~ zK&VY&hwq`7-toW^dTVJtTZVGjcn@AXu#4xzi5*;tEA@W6zMnW%m~U(#l5A{!JN!Mu z#mUWx-sZQv?z?+b;z~^KRQcrFM?sQf?%Ato)P1qJhjTMjKI~XYI=S|i&B+okfto#4 zt2wdpTi3uthDC$m&xSzvf}hSG?QOdw13B{3T#$*z_YuFRs|&r#o-y)W-!fc1KUyXF z;NRU@es6*RWv#RK1a}Y!J11i9!U|lxXI Q<ra7`%vIf zquO*SY|CiEhhiSWipn!+!at@Ov?`hSt+vXC@d6JR`q2W9{wzVQ8c^HS;j*j>WOucG zLo#QMx lPuftBYSdT7p^KpqY^G zobXKnY-| ^HV-b94?Ez@? JsGMuq=xqd`1%%9(xY9*Lzrkfv$Qg!%Vc~ zvt%=F`h5knr5XJctp9wj0L>K9f=P6?cXRv(Lp+?v4 - ^g4Ys!j(-nH9 z7KKGZH2BwfSS{^0Mj_!w?S;%bfaX1L`g+focu(tZmY_tFctLu@F1Uk`-y}E;6$<&Y zdk1_76%8yep@Ow7?dtSds1=|e6f^ZiOZN=|1LFg&82ZR+@1K?g0_Vk%ZeX_hBHn}T ze--c(Ltg;%gOOxLcbIhtOsSg9guH4S=aoP5&4U^oJ8H$3h|RNdUsCrmn;U21@X>K3 za3Q7%Zb|R!(jb}7M*)fk?4OD;*Hg>WUT}Kx1dzyXroy3ApEkR}EWObVKoAP9eFZCb z_^c3iX}#ugZ#%FP!#k
M09`BI$V?Z8?!R~r)(503KqE;GK=mfY zPiRSo+0W}C8zQ>V@oR+B!lz~6)v`a~!~?(u`K`$FN0&1;ox<$}(?MVY1uS`qo52YO zr<2!-A5oUkx@W$%VCt3Up=M+vJ92-g3>JLRiBjOYe#@t Zx$CLL8r>FudtZgT#XGNeD>Zt1^L4NW{7-5#E~>%4}K)qgx5_2Y9<(n zyxC-xQ0)M90xyZ&dIp?U#@jtBvYqi0OC)f&`K<4dbUC5+KRv*#c!|FPR!+o*@!UU^ z@#gdoU=qcz7czy5hO`oDv!Jn(63Ms=Ub>&j$46c=znc0%(tWXLpVQ*;KDjsr(~XG5 z>Qq0wH@~$+<>h*c=mdLGix3(NB_oMJir@q6dLAp7U)#tARgSVA*$_`;_dX~iZ1+fC zs@jg5Av?yMPF<#c#% j=MFQb2-!S zd32c57mG_jKukq03~D!mC)mw4hDw|s@vnG>p50ae&vAiq(5Av-9VbIn*)O^Xrf2l= z!1mOQT{7DGAM7_Q(Ceo ib zaJ|VwO}rYM!P~LTk)gtQ(ffxz3O`LQZ?peID5J9_c~ZpYeRbkG)4~TxnQ``lka*>0 zc*4hPAy-4;T;%;BLJq`86v0QB=60><8z=oTeJQPk%p#A|y|sDWcS|pNPq1as)snps zF1(xO3i(Ai;vy1v78;|S(inNeMo2BR`lYi$2XqV~^s)>?WB$Q>l4fx+Y9cc;JRq*X z3n}q)7h{K&i7;cS*N*2a &Zn>3c zjbO-aXdyFV3)yag`(=Ft3yBw6U*~@%*Yn-g(rxn9YWVyrD!$Gr-=~o?L9%1*JCBm= zGbPb?cc&Y^aX+FS*NMsy xz)oPoqTr0z@o%X>-9ocq8w@MSVI*aP$_?yY47lyouo8j)0=So}}9&ES|C{GkAk~ zLB2PJ?|!-^_bZ|G2Qnv{cZLW2R!)JEcScyIYqyn2dmt~jX_&gvg0eP%siJSnne6O= zKHh03;#cbu(GqK>CT`lB9A7VZLw|W+{iSOY^{I+C8WKH*(Y^}4!!^$g@i>p;z)vy5 z$f~gjXvT`Zg80c|Px9+hE;u3?4oSJL5+!^?1xooK<9J`F!ccV*q^=hk-FYu;=$4K6 z%qi$Tm*^q6i3aInBu>2E*9AyTm7Onb$*?T_EmB=Mxup*YOa+ifby$2U`tjF;61o&@ zk{0V2u9Uxv(Jnc;bD;#1V8#G%^fqDrNm?}kiU(%N427i_RF%Y9UBv706&?^6LWHo{ zr{0-PfD3 OhR#?@BI={ ~Dv5Jv&9E4VoHS?EHQ!7BMhaD`H+P_^Bik#dQgzl8s0Ir0fEER&f< I?`aJkn@*WxxUCfTu+ zDUOVA`S>xW_rskUE^*F!B=LY?_v3=+1M585M;82Q4iWQO6xK42YX!lVKJ+~Rqa@dh z2y-mcHx!Qb;VI34K^x*Z&VJd%m|K5&W=RzcmpM7bDkS+C7E@--5DAT5rcEl_z(fmN zmZeqEJ~`;>*29F02b}!cy(+wc6e%bIqAd%4!Zpht5#D19cIIsw?kNCU=H{rqXbdH! zF>JLErJL!fH9Wz^k)(0jl7@@y%##>91^&}!sgRt{;LwxUJqk&}7NexkptnUQ@|YgG zS^wydK7gros(+-sEPoUee)Sf*E)r%Ey!1H3>o}b5Z9I$ CB0SR(QU zWR=b)il)1!NF@BYDe;tQjAjPe)pIqmxbGm0jU;n0NMNA#vXz^w(ivy83peTS{>4k) zF6Y7hM)Da}(>gC#Z<=hJ{7(5+3P6AxdzSJZ19DO+-EdQ&HPU7oQdp@Tv@WZtgq5nL zvCum}*dca`m(tIS#7%JRsD1`OH%J(Kd_LuGGfapKO~E&M?t^_kowCLg03XnkU9J>& zjNilh0Ks;E-9s5zoR6$?5s8Wm4uisgsXPa9Y7^E>;mbU(6d!xdS;7*1w2`(J4E2aS zJH?f5(CD2cY#+*G6GmLu%mk0c6knOqErKYtC(H*1BTdKPWR8me$;8V&J4*XgG2|7f zKR||wFlaI4m)V;dw+Az5{&C&@cO*^4D%IyNKOq4p9@d6fnoC<9-|e#kMG(iE6DHaf zg2-e58$Rr!=}=r(Z)RG1`QWhrrQ+WYSfDy8l9At%5kAi|*TD&Kr(QM+&1>A!tOc4Z zVSe7DO$CW}p-RIey|D?kYtx8li#-+@(TN6)=R5Pq+X!X#sbEA`j34JE%V)rqVKLyx zD1bvX*6F;{3kwypH$pz1Cd6dzrT&D0P$(M#|3m9V+u}M3P?O1c@Q4q&gp}~p4L4s% zeQfr&Vve2wES`A3f6!AFK@n~nRq}_G%v>T_XlV+Wu;y112^5VIRIGTpdEePyV*lSf zHsL~mvvQM;1w7io(mg_QTH`(~Uu}L*k>T+=1p| )7fCLgH0e}3aGZz-;=AtY zcraWce9(Bg$8cqaYFjmw;caA1tS`_QMOc!k-ih@C2JvOjjFgb5ccwBbJbFXORf5Cy zq6KmG6gw!?kF2A#d!X?Nh2so@Q&=*uy79Xhj!KA>O~K%+NG1r9`)S55N$M*j^vt#MV zx#U5PDP~O~VKo00WZXi&ep>d4j%sDRPc>3ym&Aw!jXCNIpeJN*n1NXCel)yFxn(da zO5;G~TVs695*BGFF-5#i(Ewxb=i5Opz#WcaZ4kT zm~-9+C>uGx2`5Qmo-i3x*y2tx6el67f=dTEm_|5d%Mtz;iduq!MtF$j#;C_#DF)>t z+rsBdR(1Nkc`y6}4Sg(0VBZyg1a`GfSeB%cf;}1hG9-Ot#)#(qS}X`@It+&+9T0Cp zYvhV{P6u;CR3u4GlGMvQ%nv$g29G-wZsXxzsDKK;5*#+XDF#dy=G+$QKMHWIl} zxC;UPMH|++ExR%MM;jDrgb|=#Jy4ra3_l3x6Pr(7q!Hs+B`3D#S-Aa|Dd~~QM$56^ z@!F +T2!#TH2Ia3+;)Rh>c5ps-`!%7(F_WO5KI{Cr#e1>1obkR}kCCoQnxETpy%y ze~BfWItb@Y-NkIZrXiRkufoW8&1fT5tY_GAObMPZxoiTmJ%@d#{F0G02w+N#qK-*{ zAbaYqxDoch^n(w}4h&(%$0$Mp1n2iV(iUJkc2C3_+C3WL@&(htTR<@2?Xk7hb$AEd z3kdi}%ZF1hm<2Z5L2<;F0(Gh7w!xq(Vt>$IfvBS{kNe}+dA*(?zoQ^ei%T!kO5X(f zB#ib3y}%k{Lx Y!>iiC_ef(KZe5z+lP%G(GP-_ZG zoB0Pwh_EEnm4T{Wx0+m^BBqzH4lS6snlM5+jbtBHpIL1h3s_-wb9Ui76?0Mg8tzs% z1wD<%t7=jLIJ#U&tro9n?-z)3!N&%0Sr|lb7NxUjfG*0nCK;@xQA`xx7cBbEgLL2! zI$$_+cTwjvJU@%DO&$Y>zd*{L!