From a595c8922b39ed384caa35f7c75d293fa44bd6de Mon Sep 17 00:00:00 2001 From: Peter Osterlund Date: Sun, 2 Feb 2020 23:22:40 +0100 Subject: [PATCH] Make it possible to enter moves by dragging Add new setting (default true) to allow input of moves by dragging a piece from its source square to the target square. This setting partially overlaps with scroll gestures on the chess board, so when this setting is enabled, scroll gestures will only happen if the starting square is empty or contains a piece of the color not to make the next move. --- .../org/petero/droidfish/ChessBoardPlay.java | 8 +- .../droidfish/ChessBoardPlayListener.java | 49 ++++++++-- .../java/org/petero/droidfish/DroidFish.java | 2 + .../gamelogic/DroidChessController.java | 7 +- .../org/petero/droidfish/view/ChessBoard.java | 84 +++++++++++++++++- DroidFishApp/src/main/res/values/strings.xml | 2 + DroidFishApp/src/main/res/xml/preferences.xml | 6 ++ README.md | 9 +- doc/droidfish_manual.pdf | Bin 90246 -> 90330 bytes 9 files changed, 145 insertions(+), 22 deletions(-) diff --git a/DroidFishApp/src/main/java/org/petero/droidfish/ChessBoardPlay.java b/DroidFishApp/src/main/java/org/petero/droidfish/ChessBoardPlay.java index 9768803..fc140fc 100644 --- a/DroidFishApp/src/main/java/org/petero/droidfish/ChessBoardPlay.java +++ b/DroidFishApp/src/main/java/org/petero/droidfish/ChessBoardPlay.java @@ -57,8 +57,8 @@ public class ChessBoardPlay extends ChessBoard { @Override protected XYCoord pixToSq(int xCrd, int yCrd) { - int x = (xCrd - x0) / sqSize; if (flipped) x = 7 - x; - int y = (yCrd - y0) / sqSize; if (!flipped) y = 7 - y; + int x = (int)Math.floor((xCrd - x0) / (double)sqSize); if (flipped) x = 7 - x; + int y = (int)Math.floor((yCrd - y0) / (double)sqSize); if (!flipped) y = 7 - y; return new XYCoord(x, y); } @@ -94,10 +94,6 @@ public class ChessBoardPlay extends ChessBoard { protected void drawExtraSquares(Canvas canvas) { } - private boolean myColor(int piece) { - return (piece != Piece.EMPTY) && (Piece.isWhite(piece) == pos.whiteMove); - } - public Move mousePressed(int sq) { if (sq < 0) return null; diff --git a/DroidFishApp/src/main/java/org/petero/droidfish/ChessBoardPlayListener.java b/DroidFishApp/src/main/java/org/petero/droidfish/ChessBoardPlayListener.java index b0954c2..e7f09e8 100644 --- a/DroidFishApp/src/main/java/org/petero/droidfish/ChessBoardPlayListener.java +++ b/DroidFishApp/src/main/java/org/petero/droidfish/ChessBoardPlayListener.java @@ -24,6 +24,7 @@ import android.view.View; import android.view.ViewConfiguration; import org.petero.droidfish.gamelogic.Move; +import org.petero.droidfish.gamelogic.Piece; public class ChessBoardPlayListener implements View.OnTouchListener { private DroidFish df; @@ -32,6 +33,8 @@ public class ChessBoardPlayListener implements View.OnTouchListener { private boolean pending = false; private boolean pendingClick = false; private int sq0 = -1; + private boolean isValidDragSquare; // True if dragging starting at "sq0" is valid + private int dragSquare = -1; private float scrollX = 0; private float scrollY = 0; private float prevX = 0; @@ -59,6 +62,8 @@ public class ChessBoardPlayListener implements View.OnTouchListener { pending = true; pendingClick = true; sq0 = cb.eventToSquare(event); + isValidDragSquare = cb.isValidDragSquare(sq0); + dragSquare = -1; scrollX = 0; scrollY = 0; prevX = event.getX(); @@ -73,7 +78,7 @@ public class ChessBoardPlayListener implements View.OnTouchListener { } float currX = event.getX(); float currY = event.getY(); - if (onScroll(currX - prevX, currY - prevY)) { + if (onMove(event)) { handler.removeCallbacks(runnable); pendingClick = false; } @@ -85,29 +90,59 @@ public class ChessBoardPlayListener implements View.OnTouchListener { if (pending) { pending = false; handler.removeCallbacks(runnable); - if (!pendingClick) - break; - int sq = cb.eventToSquare(event); - if (sq == sq0) { - if (df.ctrl.humansTurn()) { + if (df.ctrl.humansTurn()) { + int sq = cb.eventToSquare(event); + if (dragSquare != -1) { + if (sq != -1 && sq != sq0) { + cb.setSelection(cb.highlightLastMove ? sq : -1); + cb.userSelectedSquare = false; + Move m = new Move(sq0, sq, Piece.EMPTY); + df.setAutoMode(DroidFish.AutoMode.OFF); + df.ctrl.makeHumanMove(m, false); + } + } else if (pendingClick && (sq == sq0)) { Move m = cb.mousePressed(sq); if (m != null) { df.setAutoMode(DroidFish.AutoMode.OFF); - df.ctrl.makeHumanMove(m); + df.ctrl.makeHumanMove(m, true); } df.setEgtbHints(cb.getSelectedSquare()); } } + cb.setDragState(-1, 0, 0); } break; case MotionEvent.ACTION_CANCEL: pending = false; + cb.setDragState(-1, 0, 0); handler.removeCallbacks(runnable); break; } return true; } + /** Process an ACTION_MOVE event. Return true if a gesture is detected, + * which means that a click will not happen when ACTION_UP is received. */ + private boolean onMove(MotionEvent event) { + if (df.dragMoveEnabled && isValidDragSquare) { + return onDrag(event); + } else { + return onScroll(event.getX() - prevX, event.getY() - prevY); + } + } + + private boolean onDrag(MotionEvent event) { + if (dragSquare == -1) { + int sq = cb.eventToSquare(event); + if (sq != sq0) + dragSquare = sq0; + } + if (dragSquare != -1) + if (!cb.setDragState(dragSquare, (int)event.getX(), (int)event.getY())) + dragSquare = -1; + return false; + } + private boolean onScroll(float distanceX, float distanceY) { if (df.invertScrollDirection) { distanceX = -distanceX; diff --git a/DroidFishApp/src/main/java/org/petero/droidfish/DroidFish.java b/DroidFishApp/src/main/java/org/petero/droidfish/DroidFish.java index de7c4fb..4e167bc 100644 --- a/DroidFishApp/src/main/java/org/petero/droidfish/DroidFish.java +++ b/DroidFishApp/src/main/java/org/petero/droidfish/DroidFish.java @@ -211,6 +211,7 @@ public class DroidFish extends Activity private SharedPreferences settings; private ObjectCache cache; + boolean dragMoveEnabled; float scrollSensitivity; boolean invertScrollDirection; boolean scrollGames; @@ -1112,6 +1113,7 @@ public class DroidFish extends Activity autoMoveDelay = getIntSetting("autoDelay", 5000); + dragMoveEnabled = settings.getBoolean("dragMoveEnabled", true); scrollSensitivity = Float.parseFloat(settings.getString("scrollSensitivity", "2")); invertScrollDirection = settings.getBoolean("invertScrollDirection", false); scrollGames = settings.getBoolean("scrollGames", false); diff --git a/DroidFishApp/src/main/java/org/petero/droidfish/gamelogic/DroidChessController.java b/DroidFishApp/src/main/java/org/petero/droidfish/gamelogic/DroidChessController.java index 27eae2b..909c93e 100644 --- a/DroidFishApp/src/main/java/org/petero/droidfish/gamelogic/DroidChessController.java +++ b/DroidFishApp/src/main/java/org/petero/droidfish/gamelogic/DroidChessController.java @@ -291,7 +291,7 @@ public class DroidChessController { } /** Make a move for a human player. */ - public final synchronized void makeHumanMove(Move m) { + public final synchronized void makeHumanMove(Move m, boolean animate) { if (!humansTurn()) return; Position oldPos = new Position(game.currPos()); @@ -318,7 +318,8 @@ public class DroidChessController { abortSearch(); updateComputeThreads(); } - setAnimMove(oldPos, m, true); + if (animate) + setAnimMove(oldPos, m, true); updateGUI(); } else { gui.setSelection(-1); @@ -349,7 +350,7 @@ public class DroidChessController { promoteMove.promoteTo = promoteTo; Move m = promoteMove; promoteMove = null; - makeHumanMove(m); + makeHumanMove(m, true); } /** Add a null-move to the game tree. */ diff --git a/DroidFishApp/src/main/java/org/petero/droidfish/view/ChessBoard.java b/DroidFishApp/src/main/java/org/petero/droidfish/view/ChessBoard.java index 4cbb2fe..5bf7c1b 100644 --- a/DroidFishApp/src/main/java/org/petero/droidfish/view/ChessBoard.java +++ b/DroidFishApp/src/main/java/org/petero/droidfish/view/ChessBoard.java @@ -48,7 +48,12 @@ public abstract class ChessBoard extends View { public int selectedSquare; public boolean userSelectedSquare; // True if selectedSquare was set by user tap/click, // false if selectedSquare used to highlight last move - protected int x0, y0; + + private int dragSquare = -1; // Square of currently dragged piece, or -1 when no draggning + private int dragXCrd = -1; // Current drag X pixel coordinate + private int dragYCrd = -1; // Current drag Y pixel coordinate + + protected int x0, y0; // Upper left corner of board in pixel coordinates public int sqSize; public boolean flipped; public boolean drawSquareLabels; @@ -189,6 +194,11 @@ public abstract class ChessBoard extends View { } private AnimInfo anim = new AnimInfo(); + /** Return true if piece has the same color as the side to move. */ + protected boolean myColor(int piece) { + return (piece != Piece.EMPTY) && (Piece.isWhite(piece) == pos.whiteMove); + } + /** * Set up move animation. The animation will start the next time setPosition is called. * @param sourcePos The source position for the animation. @@ -294,10 +304,48 @@ public abstract class ChessBoard extends View { this.pos = new Position(pos); doInvalidate = true; } + if (setDragStateInternal(-1, 0, 0)) + doInvalidate = true; if (doInvalidate) invalidate(); } + /** Set the pixel position (xCrd,yCrd) of the currently dragged piece. + * "sq" is the original square of the piece being dragged, or -1 to + * cancel the current dragging. + * @return true if dragging is active. */ + public final boolean setDragState(int sq, int xCrd, int yCrd) { + if (setDragStateInternal(sq, xCrd, yCrd)) + invalidate(); + return dragSquare != -1; + } + + /** Return true if the piece at "sq" can be dragged. */ + public final boolean isValidDragSquare(int sq) { + return sq != -1 && myColor(pos.getPiece(sq)); + } + + /** Set drag state. Return true if any changes were made. */ + private final boolean setDragStateInternal(int sq, int xCrd, int yCrd) { + boolean modified = false; + if (!isValidDragSquare(sq)) { + if (dragSquare != -1) { + dragSquare = -1; + modified = true; + } + } else { + int newX = xCrd - sqSize / 2; + int newY = yCrd - sqSize / 2; + if (dragSquare != sq || dragXCrd != newX || dragYCrd != newY) { + dragSquare = sq; + dragXCrd = newX; + dragYCrd = newY; + modified = true; + } + } + return modified; + } + /** Set/clear the board flipped status. */ final public void setFlipped(boolean flipped) { if (this.flipped != flipped) { @@ -360,7 +408,9 @@ public abstract class ChessBoard extends View { setMeasuredDimension(width, height); } + /** Compute pixel coordinates (x0,y0) for upper left corner of board. */ protected abstract void computeOrigin(int width, int height); + protected abstract int getXFromSq(int sq); protected abstract int getYFromSq(int sq); @@ -387,7 +437,7 @@ public abstract class ChessBoard extends View { canvas.drawRect(xCrd, yCrd, xCrd+sqSize, yCrd+sqSize, paint); int sq = Position.getSquare(x, y); - if (!animActive || !anim.squareHidden(sq)) { + if (!(animActive && anim.squareHidden(sq) || sq == dragSquare)) { int p = pos.getPiece(sq); drawPiece(canvas, xCrd, yCrd, p); } @@ -417,6 +467,15 @@ public abstract class ChessBoard extends View { } anim.draw(canvas); + + if (dragSquare != -1) { + drawPiece(canvas, dragXCrd, dragYCrd, pos.getPiece(dragSquare)); + float h = (float)(sqSize / 2.0); + float xCrd = dragXCrd + h; + float yCrd = dragYCrd + h; + drawDragMarker(canvas, xCrd, yCrd); + } + // long t1 = System.currentTimeMillis(); // System.out.printf("draw: %d\n", t1-t0); } @@ -514,6 +573,27 @@ public abstract class ChessBoard extends View { canvas.drawText(s, xCrd, yCrd, labelPaint); } + private void drawDragMarker(Canvas canvas, float x0, float y0) { + float L = sqSize * 2.0f; + float d1 = sqSize * 0.03f; + float d2 = sqSize * 0.06f; + Path path = new Path(); + path.moveTo(x0 - L, y0 - d1); + path.lineTo(x0 - d2, y0 - d2); + path.lineTo(x0 - d1, y0 - L ); + path.lineTo(x0 + d1, y0 - L ); + path.lineTo(x0 + d2, y0 - d2); + path.lineTo(x0 + L, y0 - d1); + path.lineTo(x0 + L, y0 + d1); + path.lineTo(x0 + d2, y0 + d2); + path.lineTo(x0 + d1, y0 + L ); + path.lineTo(x0 - d1, y0 + L ); + path.lineTo(x0 - d2, y0 + d2); + path.lineTo(x0 - L, y0 + d1); + path.close(); + canvas.drawPath(path, moveMarkPaint.get(2)); + } + protected static class XYCoord { public int x; public int y; diff --git a/DroidFishApp/src/main/res/values/strings.xml b/DroidFishApp/src/main/res/values/strings.xml index b1b20a9..d50e5dc 100644 --- a/DroidFishApp/src/main/res/values/strings.xml +++ b/DroidFishApp/src/main/res/values/strings.xml @@ -314,6 +314,8 @@ If you are running on battery power, it is recommended that you change settings Disable Screen Timeout Square Labels Display square labels: a–h and 1–8 + Drag Pieces + Drag a piece to make a move Scrolling Speed Scrolling speed for game navigation Invert Scroll Direction diff --git a/DroidFishApp/src/main/res/xml/preferences.xml b/DroidFishApp/src/main/res/xml/preferences.xml index d0e167c..b154930 100644 --- a/DroidFishApp/src/main/res/xml/preferences.xml +++ b/DroidFishApp/src/main/res/xml/preferences.xml @@ -525,6 +525,12 @@ android:entries="@array/squareSelectType_texts" android:defaultValue="@string/squareSelectType_default"> + + FEbK0XR_baG{3Z3=kW?OVH!B)bjG{T2NKU00&sK%)Z# z-oTlG$qWbEJ3E;J|9@hM6eX&ps+!#kIPu`3u~jNPC>`?fp}DvJ-1JT5|MV@uE%>y> zbo=q|+h5;qe|&>m+L8xe3{@3+6b%`=NpHCVvrA8uz5^yThM+GC;uDE^YiXN7qQ~= zUj9XKUPZ(#urav>@|)8|$R~tH6;x-q^UI;KV{V{S7a$M^=lIT!YVeBt{WSf;dL%Z%lB z#?t&OI3h)$on~YhzeHc4qTMaGAY1Sb)Ov_yrj)2AF}{%eQZz=uCAuyVbt1`(2DRIL6psV+>|MCAkd_yX1|F3N1aUKo2fUM zQs<$0sBbo1r;+T-Q_&t1NPCzVm?)6y6+PpcFQWaDsnHy$UzJjvEnm22btZ)<96aP$ z4hy9$xFYMY;xQJ+8V!9Vc`-k%?g%pNf62LejNNaNIKlTEr}DBaD3Kx0NN1(8+B9%V6^(eDfG%6Hp4j^sV6~+X+8pJO zI#~*lhvMQ&50lw^LTbo5Wd5`!y3C7q(nLVPisrD6*{V71J<+q`yF-i z<*xy%7O+^u$>d%>o#{$A)s>*6l|`xFMXXcaLrDz@dRuZia#>MLt!$iAz%a>2(=BuU{{zs1_T5=fNNQ&ID3#X~I znpR6v*5UNRWHjVp!`7rER?&V0e@>)IO{pqpCvQ7cAzt)rWNzJ~uepkgjAj4JrbA<7 zO2AmxRJa{Jk_nE_nCv9ttEFNGXbbW*afL3UU7h44#mPz5ISh1io-1gLU-K!49B7XO zg#5dAE-hy4Hc<3;t_JmJXV&RCKj8B)&{Hcv)dpd>rt9}Sol4tAWaiM-e+9j#O9%Jx z!^IKynvSe&$Hg5hX5MenY@exr8TgVWE}cdFWy~bnsIEY`W&u*9b-b?a^x|P*sMO0z z1!OUXgT;Ovj+C_unL97{SBZ0}F6}gW!gr{6@?wrvES#v=Kr^3ECsDKNmRz>e^>Ln( zSmKDwG0XuGJTCN5>T73we{L;&je(@<{jO~2lX~sr5SxzCi-8TI@9|Q2I=&_)ea&Y@ zI{ne(nzDr;$cK7#B+(XTx(;E>E>{!IZ#fvO>$J&TY@>@##G7X-qYW1LedSRz>)WR0haR}nN8iu|te_KA7%U9}T#bXZY z{hM+FDYrBX4<}N-x;&WC$5y<#TOF_TFQ4P4x=wHe%gGMzJNPU8qcGx1|L%3M5e}(_ z@kkAW5rDMfL$D{Y1bsbK%+{kRCbrmN{&U3)`*4CpJyFa$X3|1z9q^@=0g=wp5Mb8E zRp893*<;g@S&vk+e{<-SY97seqMEBJ3D=2i3^EsragjMv>r_o^$04Hj+I2>eKS{ys z+JoiipFhTdMv!%gbOXkWzRtUdSn7D8LDX^`h*<-Kt$hcX<7in5e0OT&xX;f!PAEWh3(%jgPS zkjIRUOFJSb+Rr)E0H}&Ug<#CN)T75lWI2$d+s?B?7{ zvognDIb;j*fAEmY*L|))E$yBzj>QccGw~jzgG8@@7!1awo^7vk8gSjKv!0Zgb02oj zTp=F!mQDab{>Rq5!txjwv4f2GE&1~m?GB#aUVC~wlvG*?iz1&WZrR&(!}%`DFSQj$ zq$pfDo@GfJO**8FU{B8fKqc9_5O9QL20V!5+6zt}f1DGCif0Yblr6wKX;^SFWngnPUc5O?dgv2*h>;--Im2_D_C%7ZYUO5+uXFAskzQ8S; z33{{|8hiYwMWqK+x~npKBUb$=ywx!#6SM>U)EcR?6Xo4YsPHDk(yK6Zq)Hp^ z3`p-t6DgyJI)f!aqQ=Btw?dsB)UU{q#wu*V)QNQc zvQnw`@KAb(hVGhUXBQggH6@8b*zvMp6@~iPRLzj+#nMqoz~uQ8TGo)NE=FHJAE; znoljD7E+5S2WmOBl3GPMQmd&CDJNp;R~(Nkvi7RIHd1nbw^{&FOzb-kDJ`)LW64=$k&Sea?x8iT8?sG;=q5 zD48Y6ldg~!(|BVD2e->@<+0X`b@`CtLxP6fv$(p@tHbj#emCR#p_nYJxqzOtNnjVsd!q_O4RJZ?gRL|Dk zMw)8gNQZf#f*?LK59xGS?O<&KmC}pYUNV`CYwAEPY}4P6rk2N7AXScIrO+3SNn|)7 zMZc>~7_PUf2Qj#Th&e8_RLLuoP%MAvs70mK3h<|&F1mniov}sgOxLEUx`z77mWt%^ z=mIWJUxO;xYsWlh^E+ug4Nu>J#r9wxasAI98(R1AjEg5y{m8XRD|1m5k2gYJ`Q({V zew*F&C;kFdUDRAtx9l_!tDExpYeDWd@WzO>&Q2%*OGYVt4Qe?IpZo+5=a~CWTOD-j~)WhvU-iHRs7gTs@OuzcfG zcIEW)i_W}vi{BaG6wga;pFGRmx%4vs6nh8yyW%Ace3C8?6|&VxSHpipAYF|z!?*>D zC8wO1*DPf59y|q)#-7*>#uGp^-~cqpz=BxboYE`|X%@ABB`gCAvEWU7QJ8=dV=^-0 zQ@P0GUCZrQY>Qyh@$*_30z-1nYf@2$Mw7v(r^oFMQMewAuB~h-I{5(8+3T^xQf!WC zJnRQM7z*!p@X<_6fnXtlN*o16FG$ANiYCAaow}u`EIrp*1w*-5b5Pa@)L@`%Y!?1fc^aNFUws*?5?*cdOWp<%%As?J^1$#A!xVo0Z9eY!am_ zg>S8m^y*}Egck&wG5*S5cspGYwxiyG#UsW{$4Wf%#d|RH%*hQ3{Skg6%`A9h#?*c2 zlRw=$As$}DVtX*0mp;pPo6j4d!Bx5-(RCu{1f^gvWsbpQ{YsOX-5ec(-l~z3j_4VquQ(clj|d!xDQe z_P}J%e+yM#;^ ze^qlyD@X9U34pTN| zqqfetI}`eGjB)`?>39qSc^QF2+EYVJOr8fKu~27ioB+}e;{;(LU7L{=5~V@A<2l^X zfBlg}1&6T|iwHLLFHkdk@CDM;@q|0J$}y4xf}0ZAkA%6l7zHb%6`?KI4}>9X7@_ML zM9Yn|My*7CEOye7nQTYX;V5Wl2p1ROpXkc29ansNHSd00{RLPmUX|TA-u^FXjKuW+ zipZ|sEonc-`yD)|&SVQwekl(sT86hZf5Eh;cbXu&Dd?b8q~30%5>)Gsp)BPitysd{rih6Dmm;iLB0(+%;1<@Y6iM~;sm<>=n-<*#)Db+0J*pK z8f?QcOA@e+*V&d!7f}fhQt9m*aT|GA2l3-^Bb2|(mwR9%?s{Ntv=usD6W9Zl$cyz- zB3&S_dX3BRJt+UfWfRvDzrG=Ue{Ft)H1)jE7LLO`eEfHp3B4i{(Or8-uS5fgU_0U0 zAA}BTqXU%EKe&C2`;6JVBp{Z{falWRFm3l|J(+cjWY&RR4dMVkG*I{2FCDH_&*yO6 z@9xXGC&7}ZqC#jF!(~_^e~R1fXjwP)u6B$hh6+Qhjo6G70yAQh*I4Arf4YuEIxk*D zQ0u^EWWMH?$iNz2B26=y&zEdpAUppSMp==fjLkclT4=I1t`;WJ%sKplX|Lyds=|$) zy2Hxhsi!JO! zhbN)%BpxSsAHvDPAxUKt`Jcr;B%-cL!!k00(>P63L`D=FO4z#kE0bgI_G~?r-lajA zYCbS4LtCW~&S+_y;1w$-#6uBueLcUq?{zF*fqpNf1&eG5F7MHc04e_x=@C}L|+b~P{Dr>nHu z{aKu@e4nUdUm<47*}UK6?Bdnl3w*d9e7^sm@wxr)vNrx`4OpDf!_UoDCxHQP z7>pTUn72enJdj^SP=sSJH-0W2j`?Q`z|!zZ$;~D%kY0+gBewVV$}J7&>a!~=n-tBv zs{Mj}qjxMlf8+9sOf=@8#f)IT(XOu$rtn7JFeYP-0uyMZT4!P+`EjcjVlnCCB2^XAL+#l`NBQn5 zOsE4kf9NE#SmNK37HIEP)Ns;d`350T4%DQFcsAEPsh8uWzvK84_<)AF-#>iCV_WML zXePGfFc0m(OG%c^US{HZyuk>gNgrekYPRYmk&{ijpn<(z5I5y9W}RFj{C0AuX{O`X zB$E5bs98sc)wYIw&cg6FU&9#E4q4;Ti(OW!e^gZ`{W((`H2Bov_R=HlnGSU?Bg=lY{4pr_aeJ9Y@h!$9`Fi|Xw5`6=s z#1MH)e$2Pg-QCyU%}wurCl&pO-PQ8e^R*VqibvRWv2P35e+uq2pf-r!%@+NC*btN z@I)+}Co=7?tDj&|Er*9UO2$>C-zrwL>Cbm`JlcwfRC3{&D5HX{M48n*IMEd-XLoXX zMq(1D+AOII*>q$Ai$~6%ibcztw-(3pr#Bu*=?r}tR;Z~8H!q5-4{}kc!r#Ycf73DF z0Au!W1c?n;sbjW?&4V5 z5yb6F$+bG?;Q5`DX$L+6>cpv{1m9uAHP$3NEWqIMkA+Ts70po0HhYejea_l8d z#^d+u;`xv)O@Sug+*Rs}k;EV+iu^`dfq8b`*Qk_*6;hJ)wsA53PUcS7e>`dGX2tS0 zlv`U|l#|01m7>B{1xzjmvx|2)m;lQpdHG1ER}cmTtp5}&4)ic6VNcRLfPCjW5_OY< za>AFmU&Jc(-cGKL{vz|jfloO@RojuvY(;Z=NDc3i78A5f;Z+yfv|nG=`uWZ;M&Lns z-aK5q9N`j3yD0 zCi{-i(N{!~PBbafNWoDaLE5*!kCjH?L;@6PIdUJuDE5B$cX*;oe+mIQ2rzYW6NT^Y z(J(4^Chn7G%2mR%v=N*mto{ZfR|E7nFdc#g43xLKZlqTP1p0r3u2yq!5JnmCC~$VA zGsbNhH!j`WmsF|yxKV2RAoSLkt!KY9^=Lkn0&s7^e%HHSN9xQ4RX$H*Zd zAZ?qU8z1ZwtntvqXGCPAY0Oj7QF59hIvefdPD#NGjoh*w*$s>_NOy5PI7NVZ;e>*VSK3m3jY4stls>$T4fM1zwy6 ziqAM<)*pL`f2lOKc})P_2CKgTniM}_@bA@#>5QgFhyS8R)|u4EyAv8Sn$cs2UntOp zp1=LWc?;5N&v1+lJfoTVU*Aon$6gJ5Q}ZRdZ{)Odq|5@M$xFk92}Y4{MHp?e$4i6U z*guiRldh{uO-4wQn#kk6I3LU5pyZ5EstH|+cCmqLe~>PiS6!rGNw<|GGEbLU&6eis z_T}*~8~!dS$;ryS$jTaer|zonojNd%nC=$W({j*xAEP)jds-qt0vBN#S|sPl#9Dq)tI7NDTN=7 z7LT$Mc%8PPutlL)R|fd2!+o~4x_NCg25xihjthY6UU-M2Z``X-QH7(j+S) z@<{p${iL#Zz3@UWY9%@^)}-@_;gh>B8=r#eAL%n)9JThM9k!Om%jG zd(YWam(RPiDgSk80h_slJJ+CSmL%R7FWiqG^UFciFP$0@S#QDp|8;(a+m6T+QX`@R z6j9kR#R(jyvCm7=n*UUC`cTcD^jxmDg?MXJoxTm0qmB1W`h{$isWKg`ItWu}f4neN z!Z@bkQRFcRSmYlqXhsnYoPT1RI#|IB^sG}KJ5~eOM%d)@l`QWY^`F{ak2wI7kAq4>wlX&j4e|j2~ zMQH}jw04ghxUs|~-nhgSHO3WOPzM180a5l{5CjH?sbP>ElzmYY1zALCF-F{?CMGUP z^v1;Nl9)tIh`HX=V{zYmHDJum^4&MzH$C%p)pVV6{!{YGWnf=^V3l^+e zGhyj6_s|`_A#b`m%?sV`XBt@~e+`p{BTHW5DM^q?Tt7)=CfS)|2TQX{mgYSP_|!1@ zqG9Gc=;0J4+hJq6J{SzmmLthGhUt+Fb=w|NH4;6p0jF+@0Q@u*vQ}@m2Zfje`<-dYMHZY zd1x%T8>AW=8lu|lALzS%t15J>YPG+oDmv0XB2pC)5gHv9InG(NIxr|w6&o56tRkNg z{@eY1BmMnU(II~R5vr&_f7PNj9;;OgLqnoeOM|xfheZ0ToSamuNPmA-U{qAtbQhPX z=m6)?hya(ZWKN{Z_P$Axe=erqIW1hVe6`ckcjvn;_i%HLii=Wh4UJIw`A7K%ZI5(* z?Jh-L95sv@NsXe$Qxhm>%7uE9nnX>erc%?Wzfo^f)2SKMJJf7yE;Wx@NG+z`qn1+3 zsO8j3Y8B;9c~GkJSDaj~-3*D0zpDtj1 z&yRGXMw>R9i&4v=zkzN!hqT88kwKGCu`;{pG+5D4DZhjr=!t5%q4@{Y&b2;7+C~B2 zhI9pvlY<-%)7H{CP16n$RvZGSCffthAN)Yhs-@F4it1fxe;2=8kBY065X?MU@DU#8 zj;;4h_HK+jaJZrJ_@TH`Z5E$%ut8tMectFhTL@wnXmM^T9;0MaCcvQhPrnq~j#u&Q zobAZ#7ygvIq6pOp*b5j1dt`#kt_aU9jVFMDNhPNZytVNnartBul!`KNgduPiMw%Hl zuw3zE>NPwtf1d}c{G&^^m5--!pcpltUyt8rHcpke# zDJ+q9m(BDN4&W~p$q3uw(L7!XCte8 z?AS2rDMTvZ4X5w%n0f0%Vk3FzV6a;nt!6IgB0r($f2qjqFE1_IUv9yEl$O`I<`DEUSOHphxK40>P&o<;SOHW~Qg{@2;dzFI!x;h{IXf36I0R*cZqrWWfrc!3G$? zTFTS3N;a*w&0vRMa0v{469%*2NfFRrQIdpq$Llh8W$;VGH^zB#SU}*|aSnk!C>l$( z+G2rS9ltX(CRO=s9^A(kIjeZK5-*yI8Ek>yfB1ePIKx|qz#><$ekn(y^r#opVbTzA zG&5d+Zxj%Q$AbcI;Ctr126Da}*28#W-!=g|>J?a)yf%0fzi8v+oy$4wAUy&H`Nv@*~N@fH-QQc*71@@BET_QcR7nx=0s6~+e$*}GJfg4`Ow5(s3vyD7% zf8=C50uOyW5ypOas;2g^uz_LcfXtjd5Wj2l>e(E&MqqXQ6gpeiA{?(53l4MVTZ2QY z2y|MKrHvvKh_=L|kuX&RM=?=kUm648fI=rV?!Ti2E?%G&P7x9%n0~OPpcDj#qfB(*%584|mco;sL zJ`r&&W~0&?o+EITJ%LGPkZZJ7f3yTN`1k|_`)N>S)^7ex4@F0kWUu7P4OtZi;f&Ou z*7vk3+5;PXd;$Y~d>RAW+Z!9(d29HE!1G*$uqGK{GU^f7m`U$SM#b@fle5NQ$`{kT z!yNVJ`1wLL1GWab`6|*j3E~uZ4vdJcx*6#AMSktxy(lx6PfSURi&OeEf5z1vYN%}E zd!zIr41>{4-@u@TSljcU^aJH17|EWJO2A72%*^lb*pRi_U^NdznT&&lnMXNrcnoxH zZf0S!R)_Ya2+{6qH9p+zwdMKYf+1C>*K$cHWv75oGVy3vRdH5!UM}C!a<-t2dxR#> zn1>v(W#rPm=Y0kCLQ__Ke@&b61D}17iR)6Azjfy=!c|kAeFN4e(}>$LQCc4>gL@!1 zlUhj40NGP*PT-SAvT73E;&LU$IvcOnkE7N#v98CNO{E{Uo3%pv@NY9wIP95ACQhmg<(eq!Ehh zghsDKwKmY3XY0a>f8u>B=W=-T>RE1^D>gSo388_SZ86Hk>uZFA4jj{@5{;KSghRKzh$%vb6amA3 z9P;6O#vy}00fWLt_%kT_i-BHxC2&6@aJN50+Gc?~0$SiR-15f(LaOLDN(GZd@FARf zOTzZzLMUSXf4Qc`af0V6|7czZ-^tmh|5+4I_w6aL)zW0HKLfJ+omY-l#?0n%^{ee> zEiHas4Mv(tj>H!^@kLHd-aHO@abCpa&BSCmF7tNa}+&ECPjdtO_#*vJ$(z+MrF#6YwfL zj+VR_Hvdn-urz>GZ!lPf2=tM9VF;Rj$uFj)01sTEML063P>MLzI|`IVQlBi8GUFy_iP*Ox^BH!IR9O& zi@~3p;=XBVumBXp-o{LK>{C@48-eYZ-P_S*b3we@v*?>UGh|o^ediNGXtJJ&RIw`WOz! zn{xJ&JX)s<)$(kLHZl{1auI4dJIBy`9<^|6`tdWSln^5rc4>TqJ}X`bG3fMFN~wa8 zGJ3wI*{b9My>35u0OeN;(&tQ-UVqTQvx5vZS?D0wo8$ixI8%bx|1QDTx_gH6rZC<9 zfA3-Xi~J@vq7nvoHo=P)*=-n16xVQ5E&WPy4M7p!jYp21j+L1IaSqrtin-UD`DkWd z>dM3*-Y>yt(?TvjAgf}BP-Hk(a#DFT>Y$%rWVrvL_uavasINEgK|YU%|EO3RK4#iP z^!ZQE(3k(ZSiN?4Hea+2tqLNF=$|Rae~t3iUecZmPG-hdc&vc!cnplh5jY+Tcr4zE zw}1+df>=lZ9>#z#kDc}@-1bcJUC7VdBiIW-(1JwH}If`jxYmee?I62 z8y?#gDyASzVHUFps0Sy}`=v+uW97#yJGtY>cLr7ol|g9rMrCgylQiO0Qpb{EAdx+U zAym>WrV15=r(~k^RNnoa(I|$CRaeOOcj?P73OyxQAWU)M1?uEFUm)!X!eIvpzIkoX z*{3?8*%S(YDOmyi#{L6O=X<99e@cq-Kaye|xG^Ar#ZBlhU?=+p=p8(P2y*BIP7dSI z?D-~!#A`(u(FFI2?h9^x)i+?8WReZ(9W1C<&4cUrc=VjL+vB77PQne;>n-dr^yq(= zNy`~_UP@s5iQR1+jQ{yn7lB8(ty_|$MrSwiDaA-%u7p5_9g$M5*O!#=e{HR2a;ms% z=aysJUe+MW=`OgM!R|YM#dRUSW;>xd1lBvjnjI@Gm&_F(tf^n;wq^a&C?05ry@jX$ zDc66~NAsEMwP5`dkKz(Sl$#r3>+2gTTS?Q#5~bkNE-~%0t54z6r)JU(A|$|U`d!y@ z9*;RpZ^`#K`k}J@;N_pbf9wvz!>aknY(#Wi4cc2RzfHCORNp|Qf>@iIBGVYSOMeG_%a>Z8_h)`O_YF_ z5Gj&cmYKGfPDA4P_GO^EiNM{UX$WqTxCYzi8<2d1e~ptSgG$jJ+ZcF| z_p1-inN@7DHFrs&sJ#3gD*wDWWc6M?QLoQ!BLgM9vQ5@&TW%KGSIM*5x>7p0;|!|c z4udlS2b26Rh>;G!f8Yj^^=n|Tnbc(*s=z+-DD1d5J4uMi*5zjwSg7TJIF}aX1z!{w zXJ=XD6y8Op9L$o(N5{p)M_Ww5=JPR!$12^rEoxV9oB`l>`&u&HlSN&N*H`r?D_%CaWtt{93S&CF;;d}ayOH5jaw8I zI}4LyGLn)se|(S4|2Web$tWEuWA~?&RPHU_m%~doFP-VVMJN{$&TAu#aYvLL7a^T! zq%_gYm?qvl;554h#<$#r;ms|!UxMHSf;S9DFr4M*ka#av zbcNg}JB9zW^49tL%GhR$NQE^{{#n}br~3s4!)Hd80$AVcFk)o9G9@O9aTHVQ}bYirw->{;q$ z@L_M?z%b7@pRND}&#EX`bnB;YP3eb7p*jyEnnlvn@HxO6V6+N&wv@Cr5u~Tp#-_fP zly0F(nS*w6*ikOFoM}IK#DaYZ@_SdsAC$n1fBK9VZRND=&6TGTYZ_XsPM`7JpP0?p z)HfG4arZkG%~|Nb$Zdguy|6F6D;Z_RD&rY8U7BlZcVG5T5v8Yn;(-A8kx4tKjQ9Jr z!<<*zVeD_(;qLFWgB3$+nrs8)4m`r@74pgtzf#w6~?vnkg4a`i^;MI8o#o+gTBS{bDZO^sy-qF^c<>C9^ zjU+LuyU{<^-9&df_*sm#(O4W~t4?=t);gRpZrMi%Ktk`-lNUXX$8Eg zXCn@hBI)l%xz>LIvEOeRG6V|h#|+f}e_KY!=VhlI=5%gOLn2Iluz z(h)_)sF*7)FjN)@FdZbiBquxfDhbEU-bdTkLL#0Eb3I_&2-t>T+enzpx*0qAf7XiH zp^M}unAXbg)TL;(8sf`HoR8&jgg!@>l51&S-z@!3L4A>_T#vL!xyLkzpNUt~?BbD7 zNV7hsc{W-s>($n`F3Q2FX8@g$o4vc1tIaMb%@tVP3n+Sli+*<#M#Br5om;#&JMSXb zr|X}KvMTA4ne>&txPZYkVIzUsf1WNW&dL3n$aoj+XwwQMMVaYE!X6FE+_Ptz)6j9i z(5=J(D=qFvhHo&WzgUWgU`IMGApmXU)XZbUb5gCD__)0}2$3QqJOvr_!}heFT26#M zk$%5mb(3^~EDj9mBAM4fMDF+%2qdCpWkxb)NTbU_^&e1J(K8}yBfT*?e|XUXE-6!Q zNE7n2t4kV{Mxor;zWH^UuZ4fGuy5nOeE6e?Xa;4gnWR6BxWe zquWDc$7k|;pEN(Nugut0%_nHW61FJ)>cg9k)z`M2@xF@t;X!z`AMVfprPYg>nj91; z;7@+-yri3u-y}oQ4U^o-S2Xq92w<#DfA$QLI7^4&6h*yd`u9e#O(~RC=EJ7SfomFVCwE92qZ;#NoAq4>@ z0SDDfHm`QrGPh0!0d^k*1GUP3mmviK6qnp30i*#lmw_e$8-I|VgXe@r1eHZl79A7> zWT&i_&C-2Ko0fD*+BExik~jO-J#D%-rKKB`vLlv7P(VN&H_#a!opHYJ8@Knw)0yu- zX>mX=onhwx(yK|XByaM*_j5n@b3aeQK}L>5I2_KT&8yb0cxCfb8#Zpu$xaYGGjI0V z{DiEGr0{c_=zq!dV<3{C34|s&G(LhBaOo){iBHyX6aP1I1T!O&+Y>o*FpfDq8O{75 zgg%BK9OFab>%nm}h@8saoBBrN^zZ}UMm~;=8i8<-amYl3K&ByIBMgW0^ABB~oRgTc zHaSIrRNLg&zra4>G1Uu!GFth1nUx#ggKHtVTK?06cps8i1P$#;+%rqyjgPu+tV}h1d<%F zP{7`bQ?gPL@=}ro1)}5>u^>M^MX-9uw(Wvfazy!p4H-!(qP!Hr?AZcAUP_7}JwHG9 z`MGoR3xCq)keVYFB&Xyj zWMt*d`Nx4b<%qKrvJm!yBa@M-EFe!JPa$)VxyUofeB?P~A+iX09(e(I5qSw&hAc;3 zMqWWyBWsX#$a-W0vJu&gY(cgn+mP+ZJ|rGVKz|aER3shAKr#^_l7(a=A|waNMfM|N zBp)e6q)0I$=X}p)@nR@!#O%Q~;gY;er=UnJF+|Zh8 zewh}?Vkvi{iHHyJ(16)&li@O>PNgTAJA)s^zZ7pwH$|(=<|2Sm7LAW+Xt6a0+o)FD zQ3m`zEznv>y(P^W#5|5tPZe<;jz^)C=YM0KMg zlgvtJ;4>*axCwrMMyUey>;UI4SGaTlPUCyEK&LdD3-rV`xpYGYz8^G|yFjI@nY;oU zPRKif(e#&3?;(y}|k6kOb$?96 z8*n5X4WEQh5X?i&8opQ=ziKBg&a8d6&(qNYd8DfzSSxBGdRn^LyYM64t-^#{W~^vE z8FjQE7@8gAz$ZWDhE9f-@-23Y(~beNS4{vN(5Q$F%h9XxTPk3K%7``1|RQ zfU%GRGmm-Iz@XOwEk!a*cYiYD)-T2vEjSCOUTlERd;mv~f4uU?{`c_j4nFlPx!)k9 zFtryrd^Ss!oftv_cD;Wjz=0#K!Gt?pI{h2IL+jHT&1SWhn7w?yu^8VWJ~D8+>D$I* zyh#>{hTe}4}j`S`yph^S9M zFvMXwu;ycKsFGgChtr<_E5j$4%MTj&^E|i(Zi5-HfLz?g-z;Kc7Cu32-Mup51$_E_ z;e`Z!0`2g)EC=wfcpttW$2>|#-HS28rbOGXrbLCao`lorD-Rg)EsO#UmgF`iJXp4@ zDdcBqH@)x++2XD<=YLd_UYS=U#VE7Uq$i?0Y}T9)eiDR>f}D$?m$;!75b%9UK(WG+ zuOS#>OZqxy0nS9-cl4{U8U2)Z#U;ztnM<@H5}33Urt|`*&t|Q*6R*SEy9X;(0;2*@ zg?eJ8R9f&n{ygsjG@}RHVbI_>9z+_lSLT`&R32$Im^JKs_xV1oyK9ymIWS7WhMxX3@i9Mod9v7bLow%h=Gfn^)- zDl~NcBHPxf-s$f09&t61-MrSfZT@5A`)%N|3+qqqUO$zYHiKF9%&~=k8s=9#bn~Y$ zOF$-3$b*Xye}8TB;yrb_8El6C9enrKLb_4Hfhgo~X{I(j6m0hlT*TyzJk2S zdwFoQa(|;bQC}FHp;g4D;cBU^LPfSZ%Ij;eK#^A_7E99O4i|QQ(+g7%x>)68(2sak zUQo>z#A0$OuMI9lJKet12XS|;NmfQ?8{~Nste{$5+0anaK}3C95QOp|{rFw=^T0B` z+vv~`Ss9ctKF$`8YZdHXeC%G_ys|2@xs0r(+<#^{W@LGuLln$6sj_n-lH<24Q}Cyk zyal5N>fwS9A@`q%-UVnxA3$KA`(_H9`o|mnoh@XZCy?gDT~;=w$YXFDTIaNS`|vU! zTY*_pv#`ST0eWg!Ls_92vw;se^g7gD!Nzr{!YcE%A|ufv&uxy!nUTyWW+pRb;nCIa zo_{>tTUtsME>iB&7v^L{?@dYqCAcCB_;Se_cWG@ER;KaqFUpc9Cv_Ix{`S^exBP?* z#nWD9V6 z0C3wY2#C{NXq(&ZeiN_tfNG!4sv}bpsek08L|ZbhSNvR-H!&uZX@#9rbe?UruA8Kd z%_eDV+qRuAwynl`W7}q9+qN6qNn_jlAA6mwvvvNQ&pGCOUH7w>9r_9w&(1XQPJUJE zX}c*fEJk-|oZarH^dB%#Y@6Z1*z8rAT78}rys>>uub#p^sp^8sl8FAJ(PH23_zPrLI-J1M zolKKpJxZ(hx7HAml`-*wleP$8*;A8A34$a&Nsx?ucpcR-+essOO?$;6O{0h~eJrrc zqFAj^HxSE8Fn-+BDR{B8<%w}IutVbu8*`G#qUX(y*ZbgncA27c#O}%0LTqiLqIstJl#ls}@SG45LS_XVo*f6CwufDdZif+YqIYH;8)`oLZf+5>j zF8rQi$g4!S-IE~4y1b(7H=FjaKZTeYXZ|Y+jXvQmsfAtUA;i0VjU( z324Jcc`C*$PeDl&BCxbB=gM*g_HxjJQ*J})a6t}u$2~-e8c%z zlMr)Xs|b825PYr~R4q!i7-O$tDN}Mu?}m1UZ12C}Fs2LQPm6vfXnUK~s&>T3%`<2X{DVi78f-9SN-Poq>+%uD7>)mQ8o;L6{@BY2?EgUcmUg6R!RCl9}29bv#~7kXKt7 ze>l2NUQRAEkM6feExGf`CFIhP6iG$MeZ!TcZ_8;?m*Qo)+fA=5}vtF>XokDS~ z@;UBy_eOe*hFM@_Q47ta(@MJ0d&e9YWP^VwD$w!*gZgp9qCMQP2CZlR?Daxs)*n%R zt?MKHST;a^IXs!M_m23w^n?%Gq)QT!(>-CMzX%fg%w^a2c^pBsea*xb2tg9zUsn+j zsyzKSf+dSJjJz(!v+ue;R@Qe$fkV`C0q>E2r(wz;O_WJogEgzSi7baMJ40kwb$CPPuUlR zjh-)DrPhVMd>avpHZ70OZ^W~)tnjc&C%x-hT7l9%#vX?T%pimxvwvPJiu?|oNBS%9 z2{+>irlrW43N<3~UgN;pmKV-Im7ZK5D=EJXkVW^U-*nQ{o?P1OqHQ%LzOAxnd$2+0 z;umX7uIsG1xS7@R@Y9Ki!c*=`4}B#FcoNPZ#=+Y&%4Zf8B}~oYkj0(;g2Y-~FtWC@ zMxqd0RTN9T`YvBHzi3fIiqwy7QCC59gFfB-X1puQ8QE#yTPx->Vry*ZmMF1{*|_Ng z+()_KRk>6?Rriqy4rE8zR%)*j-y_&ep)ZCt!vvG ztN#j@HU;_J9d6hBO1%~=edv+d>6PfS%%yu$ea;nQG;F@y1o#Ie{jI9TY)Ni~r%}v2 zggyWQcryGuLuA#Jga_ghOA%At(3AoK3@r3mpf20MpX!EtAgrG0+P6MzgE)cGM!rp2 z7ZVTorLd@oy=J}h!lzG%qltfu6Hl2g!{Gh25?2o-B?faoA7OnqYL;QGw#VyZG<2w0 z(JY}K1Q@vPE`+Jh%3wahH?7`tWvCn=5c+Q78|+-IhfHo-kIibI{pl|`b^=4k0)B+Q zG;)TEk*5FYWQl($Wv>{ybuod8Ww~c*-1SaV6drDdi4}lYc}JE@W4aF3TEv07VytzM*w2 zGZ&)eM)=&+cWNr!m&KO48T4;p6=T^rW+kCe;N>A1_=;&7`pP?Q6#D~>Zaay(jODp( zUSh!lNs^pw_gFffjHG*StoTi83dt5>ece4Zf|?ggp%*E`XRd41yx%vU24IsGAt`zb zVgd-KYIXM`{;pixP-SkzsyA?gkLUt?$A?lHEcp~1EEP)4s@SU>)IZoe@K$Vs7Om>s zaY=TP3a6UlVq5M`{gi+b7E9SzhqJAiVr$mZAFVbT>C*mzydG<=w+q;(CaoSdH)TRF zn*E8UnpC_aX0@pepa?Q{Fs62rN#z!@wNpEA&@+e2ZM2PV1xF$|$Q>er5v;1&3fJp) zMk721v0nowbFPx65NK@e)%ipAh)zbg9&r>9GQJysA?FU>#R8oF7zhl+a?f`7=fk2? z*B*!9%G~fxm$UP*7UJEnCE&zxDqV?u#1&7H`$2#rG(ukJn;w#$$)<||@5a1m7AVwu z8RCcnz2exrHTH^Q%e^e{x!8E;PJ1QWWh9l^*j!dO?Gnqy_0cWsx*|Zjt1qvFmOL}( zo1F(t3ehBr)IIQd`XummTQO}cMq^@S#?lZpdL;K#FoG>l@d6TL!ZIUZ;Mpz7!onUh zIqD(zEA(n@(Q{rDpFPDz%^v_0kU4m|aJda|xMOy+iV_2|Ex^!QVEETN&f`oB!jT_`uj< zVU9&6JzXZP)dki3J^l%)??2L3E|l0C^;;As+OFyvhO}%Fw`rpCg+=!}{RVuYXY4Yl)W1jxZ7@@CP5~uSF#N$9N?U zO+)vjA~Rs4<7u_{T$WlU?Zvv;l3%3ozi`fU%ZAt0>+J|kB9lb$lY?)6`?xI^Co9Y< zI8QK|DZWJ=fT5^O=R=9HAm%TTcpoHZO1x|jY{R0Sb~^C~UQPR4RwA{sF+&mVENMtr zx#O2aJ12iJp@Sugqhym{m|hL+v-&{M|9Y<6g#}KkU6S7F(9-*!xlSf!Ke|#FkL_Mn zTFL%A9+mw*96R^~y`_#A%^-$NXW7}?R#CXB5-hy|%v{m!W6)Y$L_{nxSIsy&TJQGE zIpP)b8Io0F`M>vxuxIvN+p1_c{`LPA#=K1Wi?)G`=b3^e%a0MCDihwoVoR(uW0p7m zU-)lUKc`bOF@R1Tt|Y-23Q5LuqSg4&IHb+LVXP!-g_@iYZ#VHPB0j;^Szd$9h{nU$ z0XbQVE=0O>!LaNx{(9z~htJ;ancH^O4z2_9?FRP;VwPL}JMFIzDEg{mk{7)3JWBnn z+!}|IEbao|9yyJ$!*kQ~$x^&>G$_b5ep{ejo|8Ho11U&jNmy!9&t{8kmg{-l_qj!! z7}nSOX=hAe^5B!v*ykRN^ z#PyL%7nGUI8oN|Zp^{jp>S~H|h8+|VZuoJ@m37a9+Up5pjYU9s%!{(h@`4l&ze04^G z)VEzQ?bkBGKd2c`pL%$%CLVF>GzkPd$tE{FFM@W=R?~+w`(mL}w{HxduZ+k8KiV`x zcnX`%s?^(ev*u|DP*wfMxBFm zUy`Ly3i76Q&~SmJ9;D=yKjFEyBwk!I-K%=cpGi1sL&T{kNLj^!f9|r%+W}Mj~;?VjS8`YW&uxUe5Wzf5V9>$zPUXZp!PfBv{aoDDjOdp6T&9G`cNS|^AjXkFdFO#MP%V|3Fq<(oSj;tFc%@V@H9>LuoG)F7 z+Iq~#)AR1Ag;z*PnFh0l0WOg8l@x`|o0*+GSU)p51zd3XJ#eR6rx4Ny?w)*HZeUuO_71S;&#FH*_902Nt4~m z)WaYX?soQfwn2wOB!!C+$|Xvp=-Xr7E?#y#s5k$DjOUXDU;Es~eR%GDeZ2T^2+YVv*3#$AGGZ1XLfS%cM}TMT=(%>oBByaVYl&7II)KP z!u|Q%)uwlt9sXS3EqN0gdlfXa<)%47hbW+n`+~dnA$g4b`30e(@euO=rG(UWL9iSM zE=I;wZ6Pp90D``ha!pO=6g(gVkC^B@h>TX)&V;4j9xO?Y>Jn6j+Z1xz=xBXWb6Q%o zNUt(tnSFP9_~yF}2PR^^_9BdFw>8yu^f~jD^~Dt)xr-v?EN>2hG6G zrBX>J@Xx)zo1pvMeZT3ctD3IS*nXb&KqbQ!mMT?R_zA0oRt6}~kS_GtAGL{KlCtGlD2nDr7>C8S(z7bvvP_SI^;6#PjOVv{KkmfK;Hse9{}Aj?dC`LmEytLa|Fj` z8Z}V^dfptWHyPB@D5dZ)VbIE@0qEW1(Ge>@i@3#6D%FNAqdYd{c5zX03d7XP1~B$2 zw6OEx!;~%+2gNTG%P}&Li;Py=o4R2cKuO|t)Xp8u)Z%4n>~i^GO4JxcI8)Oe^Ci|s zft#wQJ10VWS!pLI%~DMBRk@k}n#`K68bLGwCWCI5Ygs0_P$9H(83s>MhTq??pDq3n zHELxf5X6)>!%F+5FvR#OrDaLDY}px7Z7L0=s|&wQ6&7@?_?zNh;SPm7lp{-vlCYYh zwB)PuI?Iw5sK-M+Gd)AKWL}hU%brT*7BI(i*TjD)`l}*i2nQ?2tFjgq@0EV1Rzf`n z2!$E8%v2hx`i)m3g(a0~A^wk2n}~x#Im8$wbpP|05G%huhx=$leU6kZOm8M(qqIoF0oY3f|8(vijpugsbl3 z|iyVRW02TCPoqY)r;9UTdz)7Rc7mtwXHMmXYYn#lxq`9dhC}iRj$O#hw!Jwn9IE- zm9U#I#_T16y$sn_(8f(}CFID3q^PW>axKC1fj2l3{$=MjSR$lAGq(H-23#Me9 zO*10_v?F6~lT9~s4Wur6Hs?A(*Hib3=qN}Uvn0O%pT4a#c6GIQ`6qF4Z|rf`3ICq8 z5bUHVhv6mNAqfFqpXo;zxG!UbncXJKOVEwW0b_^d$a({^At5626z7(;=D|qhNNA>6 zTn3qdR^I3y;UB^8a3q^w{JstPMxvD9_L|m@TZ)aN-HT9NV$QrV)&gOGHLgWlra5?nPIG^(;zrO``Yi5{w0q?Z{^R+1I%i?<;C0H32H}U6C-(XHN^4t;5+3- zc{xLEYYwL%vKUeM&M|2KS>F(zbMxw@_=>k>G65Ge?8Ff{K(L=(Z1?;is`HsPDI>df zC^56)`Lv}ZQxH;T)39=11fFdTvO2%I{AF15T!MEg&e0zA=!)E*<{Iit&(tL*k4@%M zBTuW5A7#3M(VAVBh=B-|(@*M${psTHngp`sK%{;kxLIUeT>cdh7hiBy47)~P5$778 z8irY>@$YugByNc~gnRm_;~7A@lVOE9N(e#+24d7YCu{T0&CojkYm zdMc?zcjS?SgUHN8eVALGyRjQD}vFwce%9S!AV2BwJw5 zD#-acG6jiNn|2al5dxAf;uj56ETCf|CG`Ga8tsZ{63SzC*^~>#zSfXI5#JI&&rd3i zYAaCetOTl2gil{KG`dk{8=0111f=NM{=q}`FG(kYiioyd3fz~`*9n+4Q#UKAE!-9e zPj7?Kv@kyB&W^ade!li)MlwHc$Jqe8AMZ(IGI?GYGa&_LoRL$3PFUI~z6UuHEpRjq zWsz;lujhWyrA^B#2FVpTZuM3hHA=#F^=3ZF@A2=V)`1R^qhLDY11#EDr((nUoddy1(FVjel8e~%`Z5m-~#hjk;YJk|VMW#T@C?Di;&qo9r zHG|5-F@-u3tYNo7cH20P5NGlq+A;Bk2kmpHAmD_i z3A#Hkdg1i=%x#$#KBJg;Ww$`*c!oOhUA&~Q$fE%UlU8t|Ri4%Jadpl+&{9?IQ*-w) z8z))|yPCV_Tq(zCJ86lX8!9>`ghqp=DqZNcpnLv8)jtLiW8ftg#wr|2fqRfI7VUMq zd!#W{UVeP1((45D=tOiLta&r_ z-BtrXQnU*gF6%pg$9wprMg-N__z0i1-^;!JtqQ{yPbLjrusJNIyGd)PqOK(NHz!r~ ztfyyJ##gRpFD4>C`=KDvNvq5Mmb%D@BmOn#gT#~*5i^LyaVarW23DNDq0G&KaW#FQ zQt#-2Gb1ahz_6TI+iBqD(WjS`3P{e6@pS@@U7_Y1d|J*^QgWr$jrn<#JBEx>bs-wXbdEr?DIa(Q^3t~P`oS3fh=MBa`kIxJX(7t? zj;COR`5nD5wD)9+X^IIti4#GRav}S2-hKkw94pLThbHeYBAT%0xMK4nGxAY3HcKFR z*gLT9S0COAJsW27MOnNy-~Fl}_Y($MN?oumC=&5D6#bO|HHzGY7Mo$?Av=46BeDVs~ZS}RcU9T7MAQQKVZER$?lH}I#6+TFTHWxPwYJRAy1 z#U_r+^6}hb_vooiVI1MweYHj6C)Kl)#5=OuwIL#bcclW)kqY2{I zGcla(|MxjW-ixQ*O^OETBQ4!N7ADl^vepdC5-5u-dwwNWwK$$buK~p(<{4=n$sBwO z>xyyWmZ<4qLE8z|J@<6xU_BvUdAQwZXF3q@JrRd$AqE)VW)o}5Y-ve;x_mmaL zMT29QjWwX8lOBr=UZSigN)|)WdWAQ1_A9FbZ$ZG~Xf5I?Zz7axio--{8 zC2}1gP`w-7HF0DYU~*U>a~z*9+SSKGnrF$ioYdI$J1}pmu{;Ey)*k)4_fRzQx3SJP z07Yr(Q2Z-==2T*;|6!Y2=?#4O;r)hOovlEqkNs}GM*ckz8fC+1g4krz?>Jo8{AllI zJnVVi4W4#0GQ>aaW^xyW_MZ$A20y}(ET!t$U{BGc6J6Rovnjv1jk=c6uj4T64R&cl zU!oPMs^`>jI3=?cJ@^pLu!$6{J``5l>gv1naoz-%VZn+f?m2LxHr4~|v+KMp>ssgq zP0l;?wv93R^6zs2E=sFP3@0a1D)z#bdhseEAvo4;O+LN1vcE;~>_ob>G~Iv2?4%2y z?JD&gPL?z`6(ZCpRHcU73!UQ2rPnh~P&JgYRwU8TY^!vK&M>q?i4`4X!FSCzxJjD+zpLAkU0SRHq`SIpte7r-}1UoAbr;i$b8pHKF`RvVRDut8Ff> zUiyQ-x`_1)nE{<`+&5BI9}->WWLv>Mst7^d=F8S)@k5`PaQ^-4Ku|k*-PHesxKLz= z7;a=Q<3G42d|fIg(b$Ej4@xclae(Q-)WqjH;oil<*3&tQ=c%~;a)6cp0^Zj_Xe(NP zhAW((-kPp!zz5i>zN^}iX)%ahy#1_yB!Oeq+8@#?jCFdGqV>bu)FUZ`zWcys{2t={ z1<^`eW3)6iGB7`XbSJT`*XDHbYI=q3)891?-{w;vM^T-J!n-1ovyF^RoFPEH=GSzT zEU7`(jJo5zpDAG^)#01Dtjdb-lshNz>q%>-1Gx#iSQ`i~L3%*LRMbeT``VIX6kt0_ zrU7WUP8(r&gm12xk;BL#sLJPS)&x5xGifG8BPf zPRyTcxtb~Nj1}jiE-oE6%__4V?BImM(`s9UWl z4B8YeOO>72nYtZb?cJVMhUmh1aec0(1jqz~8vyw}N0kQdR-CfBy8fbSMgvDln7tJ* z$UDu;iIbO@o1Km*kRtJ)@zcdE9_NGP#8yFIskCePZJ~s@;%`%lJ58?i^^TB_{oADn z{~u}^;IvIf{uAB|3%o|_ga7D70!bbySr{m#f)#S!zF*BQ7B-s6Wj7CozZ}-!vHdH& zeFK0tkr1MKX9sHJ{Y^b0L<00{LB7H2*AFEKSXGJ*qs%jYwq zoYnz>RXN|QNx?{>bMC2oUf!EWGcRU8OH7B_9j{4vBF&%EOT~Cz*8Agwpzhy3)$B350q#y2)x3FkL zqP@J2PSV^R^5 zq8I*W(jT0AJ9P%rw}~{D!`FoCRHoD!^;g3)3HB?GkKl{N0Uzs1y`Q=x_lxo%Pr%28 z)7*B;omnj*CTbMqmwTCdhmhG*_EDazG%d#n;$?b$6_<=rQAo$n#k1bzs$mx*!`D{Q1E3J#5E=Nu z&b2)dg0dew*PYdNJ3flO-OzmOKDADeQTU*J9-dks@rtYJxx(Mrh&5I|pZXB2d&PZ$ zDN3JCznkmF+JUfzKK*JCr4aWlC;K-%Tj-U^jod)Cp%_}x_UXG#c4se~wA%FD?8HEg zX3_{B#;eNHx(Wje9+r767ucB5$!-#=L6u28pU^f)>>e%CE9v8=C&3>vyKd9e9!>d0 zK*6V5S~JES%MJ}|S%^3IqdB1k2G;|^r>jM6d;^xsrne}o4s-eP@Gf#j#HtU40z!Ak zEr%56Hfv$%&4EdM&2Js<2Js(|nkoD*gux7GNd*UC28htb|6H$->dqRg1XC+HcA!r&e#li`G}6X7#LY@AaO)2qX6D+TP1B(3_V6}WHgfLm zyU30e@T(*H!7Gc!E~5>(?3*AD_Y1?af_q%A5pXFaCCAqB2jnevtB87}eHk$+2yaI* z$+a&G>ycb1Mlt57q9d1&$j3zFS|MRbELBjdtKyy}HbXHvX{!lLF*+6#cf^>3IOQ+j zhHW3vZVNQ*Ir$;E+(~LsQ#$|2h0y67BMj`Yxi8+%PvNTTQzXVm5_Z+!-j35G3~XMD zJso?+!Aw;u1DG^-3)9+dklS6p2-|JW^-};EcrM$y5wF|S(luK4aonULLzj~4+b!Aq z66ylqKTA?h`EAsE*f5Eay?~4shk254=gxv)PJZ6SHRs9{q|&o6?jb%Ku#+BltTP4_ z2I#E23I-K)wwc$7e(dFYR6|D?T3RZ~{8>f`{p34E+H>9w-bvX5$W;Ki_iFi%Mli1+8!g(Azp#%+1YbCK0hK`D2EoAClF(MC1wG)%(PV*$v3Il3VFbDB3M5h!dQ%`T2!$Ih=4t;N zibgHeh}C001um-le#PHK_bMtE>%6A|>Enxn|6~(N%;u2+xhsnN+6 zBTmdUh#F7}mUAb>DODYz#p#NylawIX!eNr&(1+^}V9g=``<+3bg%U$&p0gX%HK)P7 z@5-I@TU(n8Lx;y1zW*L<#?}QP6f#y(FT}8aHB}@gUNt|=cfZ!D6BJ*SAU!>uc7XYm zxZd0L_-?2R*c`jS_BG^yY2KbQyLAd2B6}nD^5gESkK-m{wXI{z?p(J6o~3k@KmC{i2j>vkc1xr!{7!WH{u97c#*7pB#2sjZ#iyWhO>uW zab_EPh}e4BbMR%de=k;6TV681$!bzl)xp-lU^u-oxo>^xAmvQm5aDjA^8Bd+_hF(J zn=5H1nxbCg@MQ-06nl z3=+AP%TCnPYMaNSCME*TdM3-f*mM%}|1yY0LzxS@9oSWeQ&47)n<^@YUjmI)$H!lp zJ+r-3uw~I>#5>Ef=pdN=gtB*e-FBUKkH)z~1enpSa4BdtY?I0YXm#sBf5}>Co6*cY z!T(8TBoz+s9&%6mS^0<14myCC>RoS(9yG_aw25MqQlmA%r~xkGJon#kj$>P$oQ3QN zqkA_NN_WTh_S3mv_pg0-ST&h5h3Ru6v6&}nCfgfyDGx`Ht5*mTn-3;+S=)HoF`2Oj z(-kkRISOXW5?IC#Kz(ONtfie@@q;<+4-cn)mE6V1ikAaO-h+h5$A@!1km8V6^;mP_ zb+fo*dn<7zCEz2}b?;r7K)2Ofu3xJ7ozE_3De+7}^Z0(|>?x7S{lC`T$`N#e5zOR; zI&nxfdPOozVUUiWT4Kfg>O&)DJ!fuAwGeMja-v{Q=2Gpk6RS1m14-L!q|@2eA6+6x z&)#5GZ~pWpRlAU^*qw!pxp`_TmWo*?dZvna>Mp5CD_|j9p301ErLW6?ZCbpf%-cDc zrO2_~36VpL&ztO*0xPT$MFh&Rhq@N}f;ib;Q!3FN4qa$HVT4-DV%Xf4s|6Sast{u` znhN#<5{&k;a$7Q~X#w+(;--9&uu=#ZFeu!bq+)Y!+#%=bi?k~(rW_<{6>QJava%~i z>D*6mSK#rk!%pC!rNB9kCkgRYKuK#=NE)|G>O?Y093SL>tF-ohm2~O03t1GnR^ZHt zn}nED8lQkbruT>K4>^sDr$PbE&Q8nybc+?*t|VzPJ_8!7==kUw{$h>L#Ryl-7O4<9 z&TTpTAIW(_;wb+#b@+b{TM4kyJXzsMt{$j5Fo3y3(7AMMo}fFXtvMmYPt=zHdQ|BRkLDngH%!H!CeDHHf~b;DZTHakYGN+3gB?)W%(NG5^SRw>l>D|q zN6^Z$j?tt@uspAmMDe|S%s56?^Aae9JOG)B!!cW ziN^1|S@cI=8rK)yP`WxK8hoQN$3aFcVRs#;lOEY{nJ)Ux2ql;83PT$u%Xio#+@Uuw zsq^Ys=8Z568Jc%;slRo=D8bZIvvk04)f6HL%+#lTb|~81o9ahP)aKdqo=_d6h;T7n@o9v~0PRn-1GD7y~s)j<7z$ZiGi<1YaOBXVFZ)T8KI zn=m8#0OKz&!|#v7lIMX+)O*G`%l^5HIL3^a`;7Q#e?N!M%@qboyQ3{+Rc|IauCk)0 z?m1+IA@bS-=pv73x<-w&_PnS?52c6Vq{gbNkZuA$?&06fdG{qb$VGb zeEy1CQhCCQfQ2@U; zFfB0I9U5t$mN!7ckz#t7s}+vMf#csE@kUtYf4lFl+2n{v>vuQ@s_7A49lw!lJp2(f zcT@#KjGSQ_cd(fqP2SL>8)Ciw35{s=8%(_coX!}IYx1qWb&W`*Yk+=h;O+S*fe{{m zzqv-N!ZlU*(9ttE?ll>^5n6Zu@^i?Styhmv-_vvaWqyY7S3PZW-Oy*_N-t)|vQdqe zjc%lmbsY8%f({ZqdK&0g&%vI+tou)6irW=#w<9Ew$XM zD7`T2&Ynf0oI7Fa7r}nkOvY+H_xQ-<&2-z!WL^0xkeyrYF|F{0^iEu@ma1m}h7Zfi O&In6JCZ-?``~Lu>0W2f{ delta 28227 zcmV(&K;ggI!3BoF1+a++e>6EVK0XR_baG{3Z3=kW?OM5xBR3Gu{T2EF^^(OK5EK~j z2F?sjW;j^QtTG4w|HLGVMHY{4X=ec^78Zl;X7ecWy*jDWKPPz-@t-_7I5`_OA5QOo zpMHHiefbKfumubD^macP*t~$#*{aQ1d3yW!^CE-+Ayl}Yl@amHf6Dk4TWr8T9iR0_ zY`evGxc>F_`{}p0d1mF!CX8K8?YlvW4YF=?I*xH>bJBL=#Q%MIzMc)pB$mIP)BjnV zTM{t}tW<1)_-14h@(S)!1Q(@ke{E@O6xfW5$7OT~<;e)~da6%S;K3wvn1`5pw^=6_ znA#g*YE(i<2>Fi4e>uzPM)+E2m?}=j*rx9L_&T{6<3>SV_&yJ>DhHsS5Cbr;EKQoNYNcp>>ym`WM-!@~m9ySQ^ny7tG%%MEXEQHVXPlx3~DpVtuXeT5e8ICS=?z;f6-)Ylk%d=og#n^Ywb5B z^t9>=>*sLQKY*(;n+_}8jf(#it`;cDdqQ{n)n0i1H@d6cru9m9+J{rrC`{WXDGT%I^6>2eJ;cxN|-Q7^*`hS^Rh}kM$v>#i=~%Ugd!9TP54mO zRT7#h#fdmmfB5@>A#o16N}g6mJw~yY>V@JX6k{%-%t{ya_iArb${97YDxoaybIxc$ zm2OdY=^^&9vvGcyf_Lx+9SwGv#C?JKRmSLKQ`!PAf`AkogqGH%3G!ST)kul1nh?=R z4RA-@gWFQ?zI@dTlJjP)k1M$h3@!xU(~Q?#Y{>%weWPVv1xw5!j_Jaj`tI?70qr2$SPoThJ+?Ss z;ztf&1dUs7o%&PQgN((h60Lwzsxrw zMY?X%*@2kdG@kYi_kMZuEZC#&%B!PY;cT}twJV`O9-}3u`!o~DlUnqpoo*f_Yd^&t zAU1Jhz_!9c%@Zct92En>!;a9&U_hwE0Iv9ag*2{?2STmJy<$55sA^IioFjhSW22Jt zf6_LIZwDf<9yMSewt+pOMxqVUgR#6Vs(0}S6DwU8Y|yRP zgq!R+N;PV_a`hgDmh@%$dsFjrqOcPfd5EsA#WJ7wL~4`X*LetLrDKfe^`OzZusugA z${+Zu#8|DuVKhZOY8;klBm!dpu1|gA*0i*6yNMH#IC!YkvBVVRZKY^9Iz=^Ze~4{kM^S&HQh&b`d)mO8E&i&5z)73P9j52DvV8AdxyuNDS zYFQoYjn7OcJEUk0`&tq$4#xP$DTeZTvzjiS(#=;%G3qdCy(CCuAf2RpM_we1t zQSLPzS=x^AgH?=nzecldruLXfc8SL?=7?hMfMT7Qd4f)?X4Nz~ZKv^Zo)WFZ zo-NN|4zS>H!9&j1X7Q;tf7$CCNQ&0)kq$k{YwNq%w2xjCY~XE+m)zCRH7W8no)vQX z-r}0H1;>mJ_Gn0EU6{?ab6a$|tSB&RS)Wa$q%$ncb(c?S`M_j@7MInSnni2*Na=72 zu5{R9Sr$B4?Tk#YTL@#BCZDUQ^`LlqZlD~tkcKoI9J{WDu5Znje|P4x#dH$!$Og6k zmE3^j=89qAK+0Q_Cuj7&7H`g4`bYeW=eUW+35sAT*~$BM_7VRujCjPqb6Kp1gVWIO z(aVEgsM&1jexJ!+l~)zH|RIzwyK$)v;;q zr<=&UPc1X{nUrc=dfJy>bMY>70AMe11#;l{v==C1clR(56B4HbDQotK6ex5H;817-Q;9+^j1SRl+f zz9rbG{75y2rZ6-kFQ$-Pr{ZF_Hi(0>!Q!H?#n-3O3b~tBmiTT{{M*g4Vq9nE|FM6;7_-?C<8mF+>MCRb=4`AF$B^l=}J5vv~x0E>B+ zuA_kCNAuI?gC8t8y7iKe)o4dlp$kU-^Zzk^(eIppfAP;OLQAE#m^61)>_gVsPM>Xa zr>%mCtz7Ie4r(O<3Rtpdv|~_FRf@J+sK@$b2cRh7WtolHg9CV#w+Z`&_ zx$y)CU(kxKEN2OaPU%i}e`zyL_F98u_kWd=dO$IE*|-KO)#At}?oVkDyU?mvF#`!> zPf6t$T%b+TQeEA)hd)(b=&~^IrR=qqsBvnlp_F3fp2>I{|yi5e4ojsM1y7^7=8qGly}9$q&8e+S%6 z+kgK;8HV@nyZ4^&ob#RU+!0Y`W|T-IvUXUqZt?2P6CGEr4GM4#oH}jt!XSTl)19Tl zFkv{dJpv45uhjzyQ@1`Hl%`(xK{mssE)6npy_i-LAVh4^@RhbpJp z+fScldY!FYI7PX_b*EoYgxb$X=^E&+TrowtYKn4oPz1T^qZ}6$sC4u2cJ+VvR0eq} z*Lk=o!_*!jYNc05P}nZ@_$kVD-acw&L{NyIlKc(v@b_?4d$=pZ0^L1Al%d`p%BAa_ z*C`!>0z;LKK07@E)gH>pla)%fhlkQTG<4S-JG;;@uPH$xUUr^jjM~n>caYl7^xR~J zk5;dn?6`cM8#;mm*&*HH;cTjie?}6R9bb9W|Aj zMop*Qqh?aGsM*vU>V4`%Y92M8T0kwN9H?c~3Th?gNUfq)Q%=+xYAxkVt)tdc8z>h_ zMY&RLlsn}?c~ah#59LewQT|i_wTlX&LaA^nl8U0DsaP>3GOas@n$v%WyfdR>sJ9|7 z(Kmfu`+&JP zhXf6|X%lAib2pM*MMi(HHwxP$L|tvx#z{2J?~+N%lQnzQY=|Z`Dw)UH?l;LXNE4Jk zG(98@g|Sg8sc!%0sGhC6jWpG~kq+}f1wnjf9@6Qu+QHfeDy0{(y<{>O*VKVp*rvZB zO)ZbFK&l+aN}(?tlgMyFihfs}FkEj{4`Ofw5p!H1 zj{E0vFskmrgOh)Xr!(*28C>@q)$8sKTb1A z=WgN;;QMk%pE;Q3up@i|TZpA)nA*#;?)5h?n#Yz}`F6Bc z?a6KN-*3NlrO0t69L}J$MQpjXkj&j3oBY6FYsO_P`2Gk-Z()om$%|NW3f?-adZfR2>K0 z2NHdxQSG9T%_Df$n|?$+cuqHf(lGd8*I2SEI4Z=n)U(Cz8SCWa}8bPfWfu!>>n2Uuu!r$e`ybO!&vDgEX zJ%2AyeTm;XsAygF9dv-LzmGIEym1D+1*sADdqsC%Db*L~GBnxT?!=_%aK+B1sQp#V zC9NF6>n03xJPLD<`s#lK$q0RCgcVRHAP8(2s{}y@+vFgd^#~8&xn+-^ii7bqV@B;c zScghjMoiV5L&vW2jTNVlS1b0S!gvm)qkqIyj=9nvvu$&NGrM+6LD^Pbmz=IkXX8;~ zG>=>9NR+TIU#HE_<%$cNTOYDd(c}*np^$!nsT zTvcx2QQ;h8Mb)^u=ee+$Tle7-|9m%t4<8*FCZ;#VNvzBlqtwuBha&#{~H{I{a;X{U`iT?h`lCn4VH*!--2>#_-fOT8 z$1G03HeP32E?q<=JV>RtZ^UinWgWzi$Bj__E?@3}jkxQ9wb54ScuimrR3b0dONn%W zyy`VB$M>N850_0`OZ@tV_9la6_AcF0LUw;rf ztc?y(O8?;YG43;F^WuP5E(4xRf5WuhpY>$cEs|LWdNqgx_|QPzYrk~3Qaz8ub-%kW z>z)LQpNa~hT@06DvHU4+x1(j<)Vta-k{Busu{L5eQV7h5OD}U=c7U{fr6+x{7 zo00jNUm^o*c!@O4WIkWAeSz%!TNq_UiZV9uWNM+w+PF%XNHgc~ho-%r@2LtmdiHW1 z)v*UInOK0a*(CfVKjzcu;pXS-?sm|>_BPD?oIQj$6ih;51d(Gs57b;SJ&@2= zj5LN`^9gb$$4NSw!*GQ7tc$0a>wk38P4Zmb%^oMf;dgkCJ%1^55;gEP|6OchA38h< zg(vYix%&`K77j@&lgR%p_8}2XhoLv8mPNy6Uj#4@%lJHKEr4-H*?BwABsN_BOe=pcKr)5JJ3up>UK)B75a z7(?{E5xArGcYiR=TzfmZHx8e=pT=fmwl4LH;U2~;Em_G<+_-8>IG+K1q)aQG`%Cq| z@vmZ%xdx*9r!O9^3Y+`KsO*i}|Ng!yAA7aUNg?GVNyV-qCi)AVi-Opo4|@DvP1osA zdJSKnrp*XbbiYS;j}X+7g2W7M1dD_JujuJ%VNdt>l7ILDZAKAWgR-l6;XYlZ)$Y&Y zbmjZBc`I^u!+DuN;$gSqkVhXf3MuqaIQYPva(6hysO$T z*f)B|l7BNUugFAGzJ>x04}LCR5;$(=ICTH{GxP{Vm#Wt$WO0mHet>S3uR?YqzNKqm zbB}Ib0k-0yKfI=J)mVj$Xk>+6WKv{>U`a|R z1j&K5dx59onKMRWYdqxXWS9ywAH4u84qN8SXCWek<=7fQ-v>lRRy1=*tB#i&*>lai zg39=PUTEVM1u4lwrtuP~$gv<13lW6eh7)JjYmgteasd{TJ}y#KAwATdU38T1uEK;m zV1I*7B8w&dEop)FUPTQjO_pyE66HWmdWdIp-IIDbUiv$ZFM$tfc>nu{uXt>0y&TQN zb{yuR9e63pve`>be2+I6VKnK3j6uy-og{LyNf$J*w+rH?JjSe(ON8G}?ljGG{F+2^ z{}?sv=&;(>kk45d{^n~KL)sy0JbIDKN`IBA>ZCtsYJ&!!I^14*guQ&;3EPmBpX2E8 zx3L5X>Zw?;zP+C`>OU z!L&?)9k1i1FoHCre&+aWmg}%`Wn#!%M>Pxg;An!V3Zgl zZ^@7OHoCj}`n$R5{f`{cHy$J9;y-#S5Xr;N&R1Yg8p?SBEpOX+V9N(S4z8x6DV7pG zp7r|#{EZx4K{Mm@IWQgiakF_u)p&9HF3q$6g?;!V0gpj z22sm3h`A;f#se=u6|9da=iCnZWUtRRUs>=`!70V%$EXs-*-JunT%0zS=)s=te%rI# z6b(w+&84L$B&VjEmj-!edw;P3cml%KBVb@yV=A9or%%aZk0u=raaDY1kHTFXOFM$N zeJL5*=yw~XdpD{>rTe)36%y~`pQ3X13=ArSp}Z_FTsQ<4O(bBPP3^Fu%SMj9q{(>v zUR^vNlBFroP2H?m)`oIx zi;Hq{xS~>2*s6fZ#b9>v4hIupsU$BS>GTT1pn&zCg2jOz1|{rCng@{Yd`F^ga!^kA z68DQ(iQe1E)zM#MUO4b6XQ*mBa+$4YP7kT!J0*M^+8Q47k3V)P5X0-Bg=>3r^Lq5$-<6`ybUY-I5w4Xlz0=++$L{n7w+uaeO z3&L`-kk;iXFOSWSi%g4;P2svNf1V*BS(1VjQN@Wx6ecc7}wcST<6~G6<7> zN9gD)qDUv26ltX3D32iR+uz4ZBXA-CinJWL4`CF0zxz8pQGX?c038IFI=P9$clT%* zl{*vn$us3D;aS=U&Jk9B1Cgr%`Wu)I!2$-#+g&%(%L4-aKSEclIXDQTjCd3{yV4os zwu~E>ZthE})P3A2wS5qJ>&w=&Uz&QfBfx>xp>JTY!33-=?gM@Hg6$FLL*CgkIDvq> zRQ_?u57@4b`+u(Piwk!ZcNSg5JT{x{G-uP1nEmyKDo#`<9^9J49Wz`*+3aKF5D<{I z&CiVw_6gQ_XyP*>GSW2WDd{LVO%a`q_Hn1AV1`C+*^X>66}~+4;1=GPSJK#^I2Ks% z#xcqBT>}GM?Ov{j0WkaSUtW@y3@qRh3~e)t&caY|f`7qc(mVReU8U*a$xgcy&6D@c zMY~ySCncQIPXgkvueCi>fQ9lVw!xAKD<^F*?yhcZt~_Dzuk_F2P8@B|s$`$G&R;Zl z!y-2oj{|UoBryqTq7>1>EL!#;-Y5vYZG$l4gt+VKucgY|eU*aSj3cJI#r3otbl%4(j?A8x$dAB9n1&X~IWoE0iA+9< ztbU%(+_N_>E6F@FC10JYNQ<9`*I)`NdPapVC8PYdAYA}Y2Eyd-L6WGPtmG=Tpb+iL z<$qt3t__z;!tx3T@l|DJm*?;>8s19Eax!y1V|%&~cuOq4ZEaja4L}}D=G;Bq)ux18RN%6e~IBAYX_|F8E}&Zd%Tv&m$8!A_~hhStcw0# zC#g3e%>mv>M~3gsK}eUA%fAE?eVCQF5`R%qbCp!5hIZ2svJ<>jFI+Z?s!Znz?;PNh z_74Z3Qz%Z6o}QAC&Jhpn#e<=t#{=r6B;*2}dOUE6hE?68Q{!U;Q{#tj5BGCe!luQe z>;zt?Z76I}=+%`0{_1d_t*x$~Klt>^)_olK2(FUi?5x~N1c_$UEc7F~OqeYeTz_CQ zNgdlgVb0i!wUI35xpK?}QI5S>>j#|gV*0|K~+ zh+Tify{EduB18=Yr;}R>&~(&y%UnPH^uz zo9gm;cQ)m}E-hd)cW~z#6wQ*v8{>uh@ne2DsQRT-BO>c9xc|S-uW;KDc|vMLbbul% zJEk~+!!-7JNm}!tN=_fD*^{2j^|laijjGeP!E&_mo=LxujWSiHgH;D%3V)3kq)Hga zG(3ttCIO55qXo?Vq6}O@E-e<;?ca#$YL)co zJihb$cGUFw*+7A{95bAvs1HmZh=o|i7Ya^!uw!3-p_H>QTNh;67g_c*T7alueWo@u zQ>)YF<`mqqv@~R$DBP>d%M!`d7*Dp9SFfwkklZ(sL zc_E>3;eq}Ek*diqE>k9%u5YW{oK%Z_wg!d7L<9w@e1d&de~X<|OPo|oLt@C?K-IXA zVAU4C0G}P(R3Y0`tNqriq9XjlBUJw3AyJ_b_ zids#rr@Sd2Y76B{`BB@b04k8$P6bgrsGU>@6-tFuf00x)6-UKWiL&8ll+3i^bZUA( z@~uCa0J0sj2mO5eT{9bJR@R^DAKw23J&P`uPm!lEg82aRMDx1?h7Q;|z&LQ+z+;1a z26bA@u&A@>v2?YpuyVFqW_84RmG#eqw+#Myh|`dyAy;fdZGK{t*c-M}Yz>N;iW7ED zc6mcxe}+~MJpo6oj7B7ay(n#tkr_X+6DKe@-$>JS$w?@l3)!0*mnL9+&yRG1Mw>c^ zi&o2FfPro~hqT88kwKGDu`;XZG+5G5DZhm6=}Bt2q4@{Y&b2;7+C~B2hBO6^m4h4( z(^k?sP18;hmK_4eCYu8=0DM8ts-@F4it62He>cBWkBY065X3y1{}CR)5?k$^;?)>? z;BZ6b@k6nt+Dty@V1vGh`@GR-ju6Pq*W%n1JXXmjPlUm7pMEK}9k1fqxjT^OFZ?Na zMG>kIuqQAI_Q*u%-QnxEHl6?qCYPKx@K(l)#O0GsP%6s60fxd^7-eSEz*5DNY1ihzg)0>P&o<;SIDWTd6??=GiLFIiN!ki(hS5s$|{*ayfbWWq9_!5SFBO3Kr;O4hA5 z&0vdQNC^yi6Na$gN#QU+QId%E#OX42r}G|Rn_|~l$(+G2rS9k(kZ zIz{jy_6$Sden>QaA_zwm>Dm?Hwp;F z6F`AC@;z>^ft)9Y4KRV&w_U&vdIgpxtqt1DFWfX`*HRAKOOL=_{_)qb?wvy8`n-is zec0_3B{PDasO~bk0@);W7fa9VL}p1EY7wM=GHm;Q;D*;REgRP5Y$uN!e>DY<#KRs> zf^i?7s;NCJY-HHEAnVT_h}*qo^&AdcA+WrD3Z1QM5suf31&6uwtwF(61UfCr(nb*q zL>uDKD3~UKgP0()FOB|iK%tgnJ}P7~Uc%u?(AXt^QsC_>h;URbcTMr0z^{e^m?UT0 zU|O9Uw%jj>@*SX||1C3xf8c8p0;7$b?Pn#`Xj;MJ2+U}bHGpl+4`A_wnUq41DT_tv z@fqp6H2kLMl|hR+JW>a5ye~kPys7{lIIOv~;k3}SZEe{C4o{sr1`ol?pC-UGnB4xN zRG0)x1x}S`w&;&n9x-pNYb~nhU_d4w8lWfHa5K3boLeMii|o|>e~<2i^L;a^8kQ-5 znl5fU$X{Id-SgSkkX^d>)+(I-aEZzAz#@uNHN`U*UIrL-@kL`gZ9P>9!AWePlO+f-lVjG z=LlS6Phhec zfQ^A}zKXO>f;bhP10!O~ZU*{&kzbpgjWTligyhuNSfzJke{9{MhRQa+H%cGEa2V6{ z4GeCGu{jS)Ur;`RQS2$H1UwbM%=!+G3tp=YQu8p3Nk3Saag+o5$3WNSW)voAb!cz0 z5Vdlx#+#e7wmd&fFr?`8S}qYK?-KAyCJybcD$dNx%jG*-&K9(BkIz?)}6NqS51BP4Op2>BW}w?X+w+*?t$D)Y9TcPWKYEj z(%Z~|jO>tToh~7X$3OSHORJ#`%W!`+V`%=?R1zNamIQzBQeY$p1XpOQm&21qSR+aU z`zUIHiHYw+oI+%@0aKALx55b-)(C1CW6#8*VBbhSe<3VL6U0rMR)2Y;;N7+R#%2b*cm(Et#}iR#m-Q8B;;j5l_OJp#KxEC;m}H+m+hwEu2hOj(e%FDH*@EkYwY-p{DzU`*GY>tgtkg#E&y{gs)8 zdh?9*j1-NM9T*y38dq0WT3*BBph=3&Xwej&f4vYo1zkIN5?y=v5G~p)0NrD$@b_JV z?Xbnhj*d%LPzetM64&!Tv`Z%=`ZmL_xk7?9oXymGWMdJd1PUu`!lY0>LyFv?7F zAil_nFLGk?mhs4w^CTv3AtuX-$#P;@+cVU`br8$i1S>G*csDWY@8Dwd6}Vt4px9a< znZ87FVA%86&1A~OUY@^fTF=Trv%@}>f4cvICL|M0Jnr%mVV%j(7es`tAWy57?%9d) zjJGyx|84=#27j>YrVC5*bFXnCsSn!Fa1_R|D$E$jO6<~VgElo!z$@^0TJmJr{67W5 z!T^@N!C;yC>b#tal5T7>EI(;~j8>UKwmYw8G7mk_XLC(Qbs0zdJS4#}1>T%ke{&2v zNYITO!+!dwCtH(PzFhe#AbmLb^u29|vz;$z_M!EBecKq9bsIdx`0rwz4Sw9zm76_+ z1fUr9E}r{aRlNKs;2v~dK3Wy?&THWQ%Mjh0re31-HMx+Q_`#tM;6AyqgN@xrmQV(( z()z6=q`}(wtm{R$mSIPimFhCee}sCiUKge88PD{Lk^*RUeNnPbAI;%7Q_fzJN9lAS zTAoeTMr5E6E?g~V=Ng*NqZW=$JATHL5@I;Rdc?)+GvkC{gHB(ilqwi0z2|G1tx77; z>-KX8P=2)_ea=+r^#=_+JJ?W@i4JnTIsPAkGbMQa?-G3N%JpHqDNMKje|wnzBELzE zsDvS%P4J>cb{mEe#WliIOTSWFLr{eG;8EjdU?t{%oD0^CV(#^3K8kTmS)LHc`^I~3 zUcklqXIAVKiVVj}PAZQ^9`yB%2=iO`{z@<->g&yWkk8{0KPo)J#!jDvKL6<%`tn~F ztJm(y;)}MU6@f$%{WJNve^K7rOWLmBXl87M#|qei$HFKaj^nU^$Kh>wE2!{jh=F+E zVJ!IY*m0l2eeYzS1-#p4_oy}8a<_wDY!S9!PQ7todDZZb6QA%Owq2{e$X)$3<0%=bW4m&{b&1-|sKGg}$rcn4v zNebvU?jLvt-!tu3e^QkHkrea5odE&NZ^8fpJKD`h@8F37NB_G_TFS6)$pP&r z_Ox*@;pbOf1Rm+WZgHX-o!!hQ7bAVS5&{@@WOBJ)UsA%if3=>;sp77kTZ(OZS%WC2 zyWnC5d+z)d*9HHY?S$qKSnUEUcAT_S>aX}niU&10_D zg4Itvij5CeZfS_AuWzVqB~2Skl!AA=#I(zYvRp*GA@xhZVH=s9>&1&mMS%XBC^ii<#+NC7VTEtiuTOtv=a;=^?#)24zI<_5K+aZfCw4-3=+=tRig=+lpjmS} z(Y#6X`R?V)xy~qRWZ13tB)%j)9VNc9P1b8$ZYJ7S$+OzJQaY&P465J`gA)RKll(4- zmJYy>e+H8EYhZ|()MXr|z~1sm?2w(6C`4!J@-qs|)$#zGON;V?FN%w^GR<=e@1jx; zX3OKEVx!}t%qQah^Du|UDc#SZoc&_<$9xBK%5W-Ipb%v?D*N>Q z6&O6d=@bmEYq2>+m|!Vs09Aykd=#LvzlAM%e|AySDm2GOC}%)k*`B+P7i-QoeaNxz zmmSqcRtx^=aiKevfz=@`Ej4w`mwm2`#KZC1({T2z{F!YF_&MSi5!X2oo_qyL0T0hq z*dtf_b)hZ$Q~6yD=vJ8$hMX0s- zQ)4wv9*s35WI*Q^+=VgR?VdZ>k!S4E|RPEEZO#s(w#3D7+o+E%L@n^t4RCx zzap%Pv3U-1wFm=6_Nin8gB2gB*E0))elhlqaZU?NXt@a^npqBpk`Ft!-1XXQ`7xhrN6PLf60f zbQvgkRz<5V^qMirKGJ1Cq1n;Cgr`vG;>YzT(pbB z4sx;OO#8_r=Il$5-@7XQpaf?0e`myKOUET|EJ z?gGDs?(+rgiGAqZNhl*m8ON|`lB=oReK{aml%Dp92Lj+nChedy-tW^6b6;tPaldJY zyT8*8mJF$BvW=vpnU?`W&+)8_G}R=5O}{jWV7Bcy89a%>ZxER*gRQXge;=ehwC1HD zWa2Azpn9ziG#@~Bm+V(kvUcc7u9c}Gd9=`wGNFt-U8}(z| zO?0P&pUqeqjm6PMPL$Od&zl*)?)41QT6!z-$(Izb{J*25z1no0R=}HkHsL@ig8p8V zYyBn?`+cV)Lx7-u%s~CWe`R!BURLTsZhtYVDHNbwdPW!LWaZ!Dh@LHtmd26=r1#CF z+obamnT+sYT{!1rQmW}9bQz7in-DP zLuG*gGeDwCaWS!=PZ zS6kn@Cz|9VD(RA$ z^p%}BpTV9sn$$fY<3Ppq{s+QK?eP>9qp@@6QNI}-!E9*BwZkj z14Ft<<~0xzJAVZNi6}{#o`f0F=(14#2Nag|jEvkwZ;A?9e>k5@%+MQBh5W4Ql1Al` zh?>BV;8@@F;+9LdFI+x2cDQl3WK^_oJ25+8Mfy%P-{`XnMRC{) zkM_d@1&7ziEY=3F?iD)EVcTCFybKVrbvFady{xjlES)arj|VUKdYeL<5t^_~8J`SwGpNpRXTizrywQ}2le=;*20xpmyGI+j5x0l8a&*b+$ zX?|Q^nZCQ4kJp68Z&mu%hcz9muWdWybrtu+gYg(&Jb?d8s~0gfIVeEDpZwZ+NjD+C zNrt2wCb^TZXzID)&sdrM>=`U^7WN}3ih9fR?~P!STqrHihs~7*g>rsi|J5ND1CYfa zaUjSCA{{Xp^!m&!eQxg2OBNPl&hg@$LPK6wW}(5t^8Wxnevi|)cm)9_0S676?A9$< zIk%+-0d^k*u$szammekpxPLT0J_>Vma%Ev{3V7PBdI@+_W!m-$;e-O6DqxhJgXaWP z1QkS379A7>WDzKP*(}}LG;LbaC27;_+ezN+Tlci--jtSZP|B`Y7C`|4b=+8Hback~ zzHi*#6HjNp|D?qMy>y0||4XkXxstre``*v}+|T_y2?rTH8sTs_lYduk+qQh;h9}pq z+mxG=Bz|Vjtknfc*}{~_bL;6T^ur*Upb3N~IW#_s7I5jQqlueqxXJ$;J&Ktg&FzgI zJ(R#4oPuWk5Jn$H5RU1-$o0?!8bnWH?@fC%`q9V(-$p-%j2VS+kO|0x2!T9;e2p+1 z&d)z|X=-kA+UnFaaeslZpm^@=Idh&}mYY{B5oTl-24Gh3+XaRBX_9?= z5ag$&2{H=`@}7VC>4L(H*}0O8r_3Ru3*4u;t)q9Li_k{& zYhM4D^-(cVbz@7%%^H_B?%Mc0(etAFelz1Y;g~<)SATi`n){pX|9(Q&gdZk$O#%;$ zec*lmTE6MQR~|g^P}<~alV6X`jCElTU}ijN%A-@RK3qb~C6@^v5^NiajkyLwaA%0# zE#;gJ|Arf0Rl_gW0eL*-X)+UuVICT^SnP6KZqlm_By(fvlf;)2O_}CcwZ&2lFv_a+ z6OFC*rhia7)rLFELBOvAIxA_gX4pcQ*IDMRCa%DVD3tO1%=4%;UzMm<0hy`{*om%Q zdw1u4ssneGff|xo4vl;!jR)7mkI)!(ke(If{N*B-4#G$HJ{{1jES5q8u~{KoE5!GL z<_b5ca<`BdVI%6O05&I9SK`!&^g^SBI4BcUiGOg0%Zy{5Vy4d@Sn=Ne{<@>RN2^iCS?dAvAl?~?^4#Aw~$<^%1JRlHi1|<|Qn-nC2 z4}bNdLY+ak5+8oj3#v%?DGyGAW8j!?$ZU9vKmWzY7#_h)=ADCfbidaP_Tg|G@49bg zHo1|x#((04N0?Crb3ZQ|*xfF>&*~yC!wwWK;eFwHZZ8?bqzyv_(+_aqm^WeGJ6w7X z?BRbOcQh_dSR@h>m*GCtYPb0S<~7)Llz+xzp@Qqk3DrJG${h zzD=T}JZ8N3RWjyqVJJK+#DP!T;)aih7xS$StIL4_i%&xUJwjHj*u7jAL~4X`wy9uD}Tuy29O9axnEx2+z{+On%MO!b3emprZLlJoL>EV z_`s+CT}i~;1fej8<-n>>x#22$4Ie)8{9hS9!Cbi4xS!#{jc_v*!a{OkH-CeeiJSj8 zv1#Y>q!;iEj4T@56Bgnzzxj}hO< zDA7=9UUSmDWy`7}eztD?3%`&po_b4e4e68n#4?Psn9K$u#>-~Snb6G;ToB@%3%|q- zFN1*ZR{@F@jsh*g5F0bsF!OLG=B}e(f-UGR-bJ@OPj4yJiAiAAQJBgHTza0O(AmB!dm@`+4B#d|s{9TInYL0CQ2R&CY)Q z2-)(2@CBA_yi3s7{flf{qkgxi+jq#_O!n~F-mwRckRP^#3vO&6y?^J`Y0M+jnHA3* zng6E|ekDQ=e=4&GWD!L?xbWcDb|2nbpC@E9{O{nqzZTI=QVv8RhfDLq)A$a*)#1Ww zOY3r|c*_P2v1Di?YSsb@U>cX%>$h5~T!fXG%C9Z0&&kdb3nhW##*R>Xh=`H1VL2Rv z1CgN2^)%b9XL!K!o6i6P^JZPQp0;0c*-5X=BOm!f=={P z-UV-IUWrL=l9Oh=#WWHFHdO=8kvKZ6PA3-OgVI738;Rw`a>+t`G4DJq`!SAVdEW=K zU&*IrQ~_y`qjzG+Lc$~k10T_{5S;b9x*$h#9iF?+rMHJC@qZ5{*C)@EFb@j#L=iIz zT^&hIDNFiF@*MBwp|PrUnq)&!tWc+n&%iY@d!?Feb5=CeV!>jcTq2QXCLAp4`lb)2 z?{~Ax$)KO`s(qk_Er=!LVqQC(k9K+dC->u?IgR>!e1DJ0sU@<7lqfO5o`~y|>|XrrUOc?=YKx_utfM>@1!iJ-o=X(YHLG)S zqf!&MsM7GK7QGE)2OHqLk0JM;h~8OfLhnIfpZjJioc71716{3TzBicR$K5tIrN|?2 zGg|Mm`TFs4KU;xWQnRqaSA+Dlh=#I4Gj1&(a_BXvqkoc(>u`lt73jn!qE(UCl87^- znK8@^X6pRIE8jbQu&=C)ELx!2VJONK#_mo@0j0Py8~F3cT2EPBHCC<->@Ch#q^5Kg zU;p;~x8DyCav0AR-}Q^P;9Je_`;WB2v2};Z*Bko}_26f`3v?ub z8EE)77X4hyBmD2~v-kA&Q9ZbuwJtwyDMJ1V@*UQZz-HcRruLsMx?9t4oT@o{N7a?U zTxufnba^v3;zgFqibh|Pr-7_J*#}1tVxMdY?tfgBnVFMKT!n}3QH7mDaHb8gwkH!! zY}>Xy@x-=mn@?}r^5gF`Q#&%rp0%g+mR@I#OSo*jg?4URNW(OmF_Q<@4K~tps%PP87fB{Fc z`#69t$96d<+^K|{D?b{pWY{Cbo=C01T0F08AB2rpjzL9Frdnp3f zt+9TNxj|Z(RVD0omOe+l1(s<($hc|aJg!v9U|YBx%cJ3wjWm5=*8l0R*mG~$fP?I7 zz~9Tivr%qd3ig9;ur@9#FWt9{xBR{^4^6;2KiGL}PH6Dzk=?5? z^3z)^YwxyW;>A)gNAW@n^ai|U#xj~30Gq6S3GiMnXI%oXp**QoaPLq%Zm z1Wf>Z4|k31CKDDZvOa#vyu&a_QMf#Yp_Flv zvHL+?B~rAZNu%f+J#%x|zayDAX;*;B=19e3!;MVRs@m&MhdO&|hl${a|DXRGVk z$0Wk0Rk4*>3 z)S!@p^H0s-M2>w=bkRr{&-uXQVt$K1qoAI^7AuBjM)-4AIr(J{9cCjlkaoUV= z$iDP69Iq^%t=nx$oQ`7cw6)N=U{avMT&%SwQWUJ)+$2#=5?Y}YbDRNFyg@h|_q1q| z8ii_5(M>-rDBsE4FINH)zeUX_Oz!8K5B+vMuz4cn6V!te7d0pV$yc;}f8x`W5fcIP zYd(Fa@u}cg);F)BG=U(y$q(NX1-xsTjOMDjGm@T#V#b^dtL$T~OS$j2-o6^S-$AuB zowbSJ7QPZCfB%K)oFD+ct=Dxm>5;Oi$^Dk;%7j??u)@gEhNp6Z@^x;k(NN67AE936o##Sh;)jjRn_MgxNoCdiv}3JI%WrUCq}CNjY4?=@Bg`ZyEa!HyT2- zIwwY+>g{+N7$EX+^EEg5bl3fS%xl?LM5!sE)L_h#fH5NQgfkbZFs_t86U$0vzcs61 zNAKkevuy2~S{gmXQ2+S07SJ_=r_CJLJF6zX?YK4${sq!~zguj4+&DsIOKou&u9mj# z)HT%lj1D-Gt?%$W?cfRFFlN)h*K_B>_oL-Uy0YxM`f`@>X5UD5Z=5UBGDu*E+cJ)! znCr=J=O_$eRGBwjUnJiW8t zVi{t4ojukpfjUfni-Yw$gNO&Nk zaLwviG9hE^m0q+LfOz3@vVc=uOvGm~(2~=`-pdO)e=pu#ipOTa zZ2J9cHKseceUo-*joW4Qi{+-zF4(Im8WxvUP7)(oA;r7&beFoP-yl73O6&c3lS1YZ zPyw!No8Mq6;2vxOh0Wqh_4$*->T}4&ji5@#4w~0}3HuF}7cc4J*Vo;;Qz#b2Mnkc) zM~$_r5xZYdvi)wbEASc=`XU{iPr`TD-gTmFlDfpI=>}YoZAv?ym0Z#&mlPso+xZcS z-Ba0Bxl#%6e_d)##mM=yeh$G!VS>-q@Bl??QIWU$o{f%$cdgmnmk=M{;HW2}VVz}A zmyygn;qs2dSimdS=onw~RmaOfJ^$uKjaas89;{uV%2j3HAO5@19k*^FF>YxTjGxdy zp*a2|`ki0N+4>FB1v|tt>;g9}bVSlzhUcBLHE9Ti+u`kugh*jL69&93P%E+?G!6`Q zE8*1g;rH58*>YAat)N4e5Zado`*sFvAjx`nY1wd!X+I&dt5hsa4jhn;t3qY(-y}co zQR$b&NoGE2_dum2f%v_eWBXk$BqSkqK$^yA$c21l^beXQcDd$?v4BdA=Ez}-Ik=U& zBK7LQDy znU&i!a0Sw0lVc#&GHTVZg!OLrg-j=oyEoo*B3*wuJ7XW#cBDH6?aRft^%xy$Cv}!* zSr3}3U(Zfb%dORy!qZ$iGLtdD=NW8aDUCPMffrf`AnK?)JT^9ezqh($1HgBys{^M^ zz}$YBG2#a5@OMn~x}htw;4Nd?1Mm&b{~Uaul2j|P-5Mh|>(psfN=C;JBw@J6jyM^lXicCav39MPM7f?F<9KhSg^&_U06q(j0 zI_>$;PCD3geO^r4FzkRRJqOxW#{}nrsnS|Or9p$73l6T?b3vJl`Ob|FuOJfdMvm}p z&&kP`#LUP3Y;dVO1S|(OnxEf6nj>n~8dAT~)Zo#5Y2GTi`K_JD_5Iqoimvx{p1+nO zm`$4oVLwlXbW_++7P_EqTt@x#DT11gNXZGC?k7V*95{Y zyEY=D_h~i8p5T*?$2N)C3(W(D>r{!9%+F)TAwRPY?vzb@Cu6Fl5>P%_;ut=@A%|)KbWs2R1 zo#J5ZV7&4_YjWdu>P?$ET|GH02Sn}AUh@58PFep|G1iS~$ZN=H z`9p%Gu_!@Z^OQdJO49^@xU`_t`iBUn*PUvM^NOc!+LS?iBi+$3FWQfZ3lSbuItdHE z)H(ug?Mv>P<=?WWE4qXtSvhlh{aTB?XGfpMqvL-%tkrssw0YfbAj~GtUPYb}!GuoH z6LyvG1Q1+n(arW)Iq*lp`1D3fYsuQ?YB2EP831fK^W6;jb=Zga$$<76^ zUn7+``I=;S$}G!ggmJ61E|B#RZIAP-GIuH&RyikeWhva>?^Xo{rT8w%+wp2KL+g<- zd6OWP+zN}stR3EPsvFCRGlImFQ&PSE82%gWzHGKOR=H4eL;HMiidd>oy0$irY9kMN z0|vi%AvN{V?=b}8cfUd@6)Pql8_tDdq8@0R@IJq8{fQS9_2rqP=l?@$0? zo0CW^v|KRMsh+UVlC#TI2M(VFcks4-KOX=NM4gno&tF>Cc}LlWB`zlzD5{d?G}35w zg`R25C~4z=^=Y(n3!Q&C6(VZJ6m6)i0IT!giGt&01qD3!{g{TK`g@^7%!oP7Xkwi^ zHTP_i64lC+yivN@oqnsHar%r`HnURU+&6N%?=*4n$|cbMJ%Ud4w2D+`NMnP`fK29c zSZh)Zw(9IXuxPm?KBdh>a@!M**H#vluAns|d9PU62}UrTJmgD$LJAs4exj-w0H~@5 zPFC8CWK2K1O9WYHXsGlg&?(N?$R~r9VuD(b7@yR=$_r>WFYHFH$JNW(f0olYSv_7~ zceV+x`g3=?v;EgkcV>_ze&~7xFSy1P|+emv$mJPtTSHi0lmuU%a1QJDCS@2EEFrL0ALFzY)kmt-S!Rk6L(D_ z-Px%L6SCOf|K2>VBlh-n+$_5h=G$Pd1q7B5HC$aiIDEG4Dr$MbUG?rAEN8%XES|rR z5|bZ5X&*nq>cF{qc+%>G!Ki^?Z6&3~s#dxmxb6`lKUe!vF-f@Uan@SCjTfUol`qC> zi@L41Ha%*%EzVn~mF+c7dp+Fx^<0Ji$!ELpC4u9*I^1&kIs&G@vc*Jr_*76MP4B}f zY?fau^E&%iG%%_%1?|Rt#uHjce>PpLD;vdJv$~6aFM!Y|bqt0GO=bp`*N$mPT=a4( ztEaopA|5oBR0{9SqLPY`S_Fg$!T#~ezdN{AoY6INb-U#J9D`CqwT9q`5?S;-&0AD~ zdAQnOSgnRtX56TbSq`y66%Z(v%c}d;M5aW5iCV7YDWCOth}V3y78Obeo7ZcHLThI$ zmQKp--O)cHx^tGVSvC(uU4_x;tBBJDrQ`=D_Q9&v_A9jMqhM92j?juMmbVhr)%Z}q ziwqcJXs7aukaU-)CXV-N9=MC^-n)ae^I_Cze^+WaTKIb+*9VZfXUVk0mO5lwqoN zon9FXe00o%r~AKDS~pcga*8c(Yj_U%K@(JtjN3oO$_q3K)=(VDnc^RjnQ~L0Llq#u zvlMbs#G2(mjv@cI@&q-JHBVE}Eodu$3#6{%zvyiZ-juj53#q76_LDXOwpgT$nKmja ze^He`^(TdNP&OcTJhUNeT|5Odt;+h)lSDptAuJe73oYOt<@mbg73orar*L8tK$+_!lED4&4Jk&aw{Gl9i)AXI^ejP9kmmdUVCCNqak3OQW^Z4}-4; zbo04~JrIdDKF(4=#mk86lKy6Y@=I+lMd3+Le~EI7ZFC-Fwf3e^qey+K6f&*O8YYK4 z%p~>Xj2M7S)6stDu%B9mcHLjvz8@AvsS=KI!HH|*L1N;C!|7y@9qF4z740&1jgWjG z+x|o)7|+)pt)oCXOgHa4?wDZ1x~J|m0@UN;_Xwb{m`Ra*awp#*@H&>>=|js>{~Jmc z?Sy=1xZKtz8EPLJ_az=2&|Pjnxy{CP9rJycZ2{h2$2SIH5uzb4rO9oIlsg2jj?_r+@eq^?Jt(@acuOy0|4_{nO{tOB9{K>xO z+hUe4#6(DBuldtD@!c|%v?4j-dm=sj)BD@1+-GE>(GOqKsx_bfS&kKec1q%AMS{m%TRmN)__P9yvsCh+Wk1 z+8B=4I(WRoOzV8{vBLtM=!=k1u8-|BOXip}Btq3!Lag!mI8*Bt7CiL+@9F^agh`pi_&DJ_`F~yxbUXv!HHkTLX}AIPEuGU%bPM&e-Cb2$7hRR)warCnm(~kL zFWXQS(n+!_*fJ5$H~4ZCM90Uc(|%~jk>F}ebTmzR`NI`q?wEXF1niQT*u;4rckO5~y9obulV=_zO1)m!e1>V}6FFy;9`B9%3gviCj+3(`XLIbzoPc zrBl&Qhw3RI0-`$GE7;FJuvWn}uGiQ67oS!%VewgyD$ze`(0)Z~9#}wjGw|@H=w$uJ zi?=0xT6U;|^(DntH+PtAZ+>9{!JM9HRZYJZ`rv?Q(bXBL8ZbE9!BMEe^m9>0E2p!g zre z(JIS;ah8+Q20%31mb8+Nc+FCB;$|H-`3&jk91lgmdKfU ze^k^l)dMYv42@d1i2qePz63 zdtDQ^cGnAJ^E-ob#KZJVq44n$90Kz0KX^CS>%q^Sx$Jb->WE2-Bw#trwT9R>Dc3J* zt=#hX0e&KZg1ni?;I!j#W^8nFgIC=(AtFyzY}x`&XwIrjZGB}hJrAUZp&Ah3`hR&^FA ztfv{rks?R`cBvC#&jW7ke43HL4|SR;-8|Z{nZk{5B9N@4>KI^8(WH|f+Mv3qzqO2U zmI-cPGVKluX#KcE0jV0~Ixst>a)2KEh-aFAf`&c{tE==3-1@L@Ld&pV#gccOAW&WF z0nWJ%ezpa5^nxYVS$VyfTm$L%1(Ex?wK*o7~tavR-5~^-@7*Y`c%a>AJp7qr^Q1$mRZ3 zj;ShvtA2kdEjmGq;M4Yd{yn%;agq9sfz=O3ksbsHL9#A$>egMfEU7&KV*#>vU&-JX zYW8UukC8Emp>Xv0u@0o&gIxa5JQ8us7vBstjkcgA6I&u5h8#+2gew+Ib_LqFmfVPn zZ>&mgKJISq-?heI?wz!3PV6p$JNGUFNP~79pQ@Cnv?e00{5edfW?a9J5d~wg^Ya^A z9O3ky3%D8vTxawkn0z{~nLFC}7?WVz38cy*c)A ziG@WR#z%1)5_nO-sz+2owCa8x=4;MZ|2-AJi4EPPxxRr6|5I zG_j#OMWdY6cS23djb7l!R!G}@R8-0zobzOrKSZu@GUd++6WtIWq7`Q*93DI0eb{Va zJ>vq7|JHNb(hFmbaf@^N|cyjf77#yb#AtnjFP~4{Kj%WkKhwXKnc?(ED)z#hQ zW$YFT@+jMjp7qbjPtS^Crn0))B2WsHlS8>1`x{QDJHG|Qp%qilO%EiI6bcW=;||%J zSvx#1-bN0p-u&q38=$mphQ6o0=$CqpHb+kBg+WQ;D4Od#Cc)-$zrk!()ks=RW%BAp z!re_6@LAJK?mq#a&ROunrZ>H+#KRqhBKW+-|480t+KVA8);$l)cnC)z$Nd~tx_nUYB1F zBI({|!Ejs_7Y#*AK`)d9LxnV2QP*F}-43YX zYp+>}osx-RE#vo=2Ow9K0poATguOtiQ6f7+taRv&gkJ>Fc(mcHEvW z46{z74F>XggBmy-_;DCyhEFkFl)SQF#0i?o4R(7E)>i~(wD)W)nEI)sD{TBkML;%4XnIKtNp~dZ=sel+A8$!^Jd>QgbknGpb&q zYPDCdtlWUob|6+(pj_ zTlX1Zk?H*d;>dCDbQgzwoLDs012*7ZY(%OWP4na!Jp92*7?Pw{?+I+3QDH-209zS) zc`-2ws^O^WiV+T9s; zgF6sngzE#Q(PXlZ{fszmvb>-hZBhFq{>d1d1mryTSlWX8$r|2_ZLBC2>oDRU?&2Yj>de(LO z&?ZRn>gtRC=6_Ty$FRWBE?Law(5UqHs}A3W;bbW*l$Q6`(0_A z>kyzLKKavp2Y1(PvDzDy%a)P37H-m%EG5NF+FS;<*&5K@U~qofnWU3?cpRRepJ%L* z1Y;E^6f%~Fp_Ka3#~#Mq{+#$lS#pTQK{bp z$I7Uy^M44$A~5YTLmRUr5?`BsE$`+s7nAxQ_j%@{7p20I8kiE`k)@GCcQ-JX})*nX}gg5d1+krltfpf*2I7jC%YSCX34GNp^ij+HRDc zHVfPqd8#pGzP-qGA*UNeX$(CK=;`Uk+MihH&;0I0V83q6V3^ZS=~L?9<$1Bz5xS@# z@_8_N^?!8)YP#`eJ**|SAJ0bo9tOhvsk#Gt1tPE3KNd{k2}EZGuV+fzo62>73MkIB z?_nt9+uDUc%49dy>}n_xycSL_mWtq2v!~6cocsF1IQP~Cb$ghqH~N|wE;)7Av8u`B zB5N;L;92+~4w~~*7Ws-_mXcCUwE|wYXm+<$LUL&Oy&v-OWjn05JjPAeFnzeKNZ(SO z$+tyha9i99tmo8f*p~jV?M+JqOVw;D+k$ilPf+IyOwyn(lvlKvc~O>~1H>S8@E`UL z5FG|dma#K@)f)nHht~upF7ytic2^h077Jm$s^h2Yuk^VM%TZBu;1#>|gbETCQ`;1M zZTo}^ZFWn0>DtF7cixS*hmtdrD-S+5E2b~PzP+}0ULPH;cz@pmrHC*9jXQH+KxHO= zYlWPGi0aiRC6#LG+_$kZe!6E#S*DB~QMF9&U81}O^!}=pdvu^Dz}H2x! zAy&9jU5|T&6sJT(cQ&DN>~<+<#;nARdsFP(3_tn}$}Q|}Gjt&|j}GZ$RI&6wfzPl> zsTj82bxd72ZL@w=KKleFoz6-*4mCXOj2XNf61N_CKy7GreJpL+g2KiQlIVBZo+cPA z07?4C)9-5|sq5uDd!3y)x?!&1a4!0)ddA@Wb?R<7Vyr zDXj3)yC5$xh0VWmXYuH;xBDR_f;CuNcVh&e zqZC*dXD@u^f1*5elkKQ>>|%FaokTU2fY%`JlNU`2oz5^dhcZP7flL2VsurU9*^|7M zD@v2=&5BV?3v{9p%+$p?2`F_&MG7ksHGc3aO0JTI4J!syCl-RgL7w__RDqw&RYr45 zmdo^~RL&1r2g}=19U{B;0dQ8&#;jFkoA5kDePtY=5;bLW^}+*PV|6k$@8t9)pcE}f zdD6Nz*r(4rJ62xh<(Sq&de8I#-#*IwS(-c75`9n}oox25x{WZpM`}>Lh!E zWxL6kpGdWs^rsMl%Rmep{5IH|u2y0I! zo%NM7|G~KV$5l}$1<^csJ`j~dxjug|x-o3g)J*D1$`um-{rA?3x*aKgWYPSdSy0$7 z9IcJQSB}yT?vc4H@=-BS{nS8oD_pS<7Ua9AKKyAN<$R}bw#0cxg&?{e06s23?*s+? z$4tQmyy-VlQiECXUAhO%dTGQGI5EYA21{$Q{7_<5`BP0wVb|d!EgsZot%Z$hb6|h6 zdV|6Uas0fB>^jbp8-LaGdqn=elrrfC9TmsRV=Z!)c<1U_uPVv2|p0THdwpg+*J-9#}+PZ`hH_uJ+Xtry5JStP~?M;?eMbc!U3 z%SfdYFLS}9j6~leU|)L!^v9ngp71g9ol!RO)Dkarei|jrA>4vX5&u1!C!5v5SYkoB zB6JM5|6oD1hA(dx);QgDPL=M z7}z#mbsLBs%*@epmq8i~4Ms3^>9&FqL)$%mKA(3>!;Jd~pQz++oSe8)+@mrQi(a?x~p0UTLeNur|dIX-1AqD zC%SRt4TVJwNN+tNcH6z!vVOKp#1jA-sOW3ybR(ol+EVPX|B89@T{Q z5e2Nn1bSn@mI-Vno)=><_`bjfHet-ujP<}oML4;6OiVerj5t}@xlN7PIoOSvd5l<@ zO_{mPO<2s?Sq1t3uZ*-KJusI4JF}z+0(P)fvc|&obUtB1*LqFMa}TJS{1Jm_cR`YajQSlp#v#KDa5I#xGG^PL2A`U>8wGh1wp=vbgN_HcEh3!T8GhugTJT%1S%#vwCq%(OjH`hKTY42^%Z`0>$B;P!(s z+$dZ-sGG6Lj!2h7&e<_K<4(|X@*kOp(^ZH@dsPn;H&RJc1B^{pz06PX$CiWBGl{w zcAbG-H<()^e4bcWJ7kpu(9g&QJ0`wC532zRH#mYLSkFn@&0X973HiQ~Pf9taUlv-n zCea^Ob%6}-HADJMtL>O?%f=Sk=bADiYJwW=T$5=+_C281kFEV?mdQ?+*710Lw(zod z1{RkT8+&$_kaCaq3==(<(2PPgldQ>K_%)}K>