From 3be81b01d7463a63d59dd575b7f5d7c267e3c086 Mon Sep 17 00:00:00 2001 From: raysan5 Date: Wed, 2 Nov 2016 13:39:58 +0100 Subject: [PATCH] Brand new gamepad example --- examples/core_input_gamepad.c | 165 +++++++++++++++++++++++++++++----- examples/resources/ps3.png | Bin 0 -> 19345 bytes examples/resources/xbox.png | Bin 0 -> 16177 bytes 3 files changed, 142 insertions(+), 23 deletions(-) create mode 100644 examples/resources/ps3.png create mode 100644 examples/resources/xbox.png diff --git a/examples/core_input_gamepad.c b/examples/core_input_gamepad.c index 6c3568297..77d11f386 100644 --- a/examples/core_input_gamepad.c +++ b/examples/core_input_gamepad.c @@ -3,17 +3,29 @@ * raylib [core] example - Gamepad input * * NOTE: This example requires a Gamepad connected to the system -* raylib is configured to work with Xbox 360 gamepad, check raylib.h for buttons configuration +* raylib is configured to work with the following gamepads: +* Xbox 360 Controller (Xbox 360, Xbox One) +* PLAYSTATION(R)3 Controller +* Check raylib.h for buttons configuration * -* This example has been created using raylib 1.0 (www.raylib.com) +* This example has been created using raylib 1.6 (www.raylib.com) * raylib is licensed under an unmodified zlib/libpng license (View raylib.h for details) * -* Copyright (c) 2014 Ramon Santamaria (@raysan5) +* Copyright (c) 2013-2016 Ramon Santamaria (@raysan5) * ********************************************************************************************/ #include "raylib.h" +// NOTE: Gamepad name ID depends on drivers and OS +#if defined(PLATFORM_RPI) + #define XBOX360_NAME_ID "Microsoft X-Box 360 pad" + #define PS3_NAME_ID "PLAYSTATION(R)3 Controller" +#else + #define XBOX360_NAME_ID "Xbox 360 Controller" + #define PS3_NAME_ID "PLAYSTATION(R)3 Controller" +#endif + int main() { // Initialization @@ -21,12 +33,14 @@ int main() int screenWidth = 800; int screenHeight = 450; + SetConfigFlags(FLAG_MSAA_4X_HINT); // Set MSAA 4X hint before windows creation + InitWindow(screenWidth, screenHeight, "raylib [core] example - gamepad input"); + + Texture2D texPs3Pad = LoadTexture("resources/ps3.png"); + Texture2D texXboxPad = LoadTexture("resources/xbox.png"); - Vector2 ballPosition = { (float)screenWidth/2, (float)screenHeight/2 }; - Vector2 gamepadMovement = { 0.0f, 0.0f }; - - SetTargetFPS(60); // Set target frames-per-second + SetTargetFPS(60); //-------------------------------------------------------------------------------------- // Main game loop @@ -34,20 +48,7 @@ int main() { // Update //---------------------------------------------------------------------------------- - if (IsGamepadAvailable(GAMEPAD_PLAYER1)) - { - gamepadMovement.x = GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LEFT_X); - gamepadMovement.y = GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LEFT_Y); - - ballPosition.x += gamepadMovement.x; - ballPosition.y -= gamepadMovement.y; - - if (IsGamepadButtonPressed(GAMEPAD_PLAYER1, GAMEPAD_BUTTON_A)) - { - ballPosition.x = (float)screenWidth/2; - ballPosition.y = (float)screenHeight/2; - } - } + // ... //---------------------------------------------------------------------------------- // Draw @@ -55,10 +56,125 @@ int main() BeginDrawing(); ClearBackground(RAYWHITE); + + if (IsGamepadAvailable(GAMEPAD_PLAYER1)) + { + DrawText(FormatText("GP1: %s", GetGamepadName(GAMEPAD_PLAYER1)), 10, 10, 10, BLACK); - DrawText("move the ball with gamepad", 10, 10, 20, DARKGRAY); + if (IsGamepadName(GAMEPAD_PLAYER1, XBOX360_NAME_ID)) + { + DrawTexture(texXboxPad, 0, 0, DARKGRAY); + + // Draw buttons: xbox home + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_HOME)) DrawCircle(396, 222, 13, RED); - DrawCircleV(ballPosition, 50, MAROON); + // Draw buttons: basic + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_START)) DrawCircle(436, 150, 9, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_SELECT)) DrawCircle(352, 150, 9, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_X)) DrawCircle(501, 151, 15, BLUE); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_A)) DrawCircle(536, 187, 15, LIME); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_B)) DrawCircle(572, 151, 15, MAROON); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_Y)) DrawCircle(536, 115, 15, GOLD); + + // Draw buttons: d-pad + DrawRectangle(317, 202, 19, 71, BLACK); + DrawRectangle(293, 228, 69, 19, BLACK); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_UP)) DrawRectangle(317, 202, 19, 26, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_DOWN)) DrawRectangle(317, 202 + 45, 19, 26, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_LEFT)) DrawRectangle(292, 228, 25, 19, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_RIGHT)) DrawRectangle(292 + 44, 228, 26, 19, RED); + + // Draw buttons: left-right back + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_LB)) DrawCircle(259, 61, 20, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_XBOX_BUTTON_RB)) DrawCircle(536, 61, 20, RED); + + // Draw axis: left joystick + DrawCircle(259, 152, 39, BLACK); + DrawCircle(259, 152, 34, LIGHTGRAY); + DrawCircle(259 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LEFT_X)*20), + 152 - (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LEFT_Y)*20), 25, BLACK); + + // Draw axis: right joystick + DrawCircle(461, 237, 38, BLACK); + DrawCircle(461, 237, 33, LIGHTGRAY); + DrawCircle(461 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RIGHT_X)*20), + 237 - (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RIGHT_Y)*20), 25, BLACK); + + // Draw axis: left-right triggers + DrawRectangle(170, 30, 15, 70, GRAY); + DrawRectangle(604, 30, 15, 70, GRAY); + DrawRectangle(170, 30, 15, (((1.0f + GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LT))/2.0f)*70), RED); + DrawRectangle(604, 30, 15, (((1.0f + GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RT))/2.0f)*70), RED); + + //DrawText(FormatText("Xbox axis LT: %02.02f", GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_LT)), 10, 40, 10, BLACK); + //DrawText(FormatText("Xbox axis RT: %02.02f", GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_XBOX_AXIS_RT)), 10, 60, 10, BLACK); + } + else if (IsGamepadName(GAMEPAD_PLAYER1, PS3_NAME_ID)) + { + DrawTexture(texPs3Pad, 0, 0, DARKGRAY); + + // Draw buttons: ps + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_PS)) DrawCircle(396, 222, 13, RED); + + // Draw buttons: basic + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_SELECT)) DrawRectangle(328, 170, 32, 13, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_START)) DrawTriangle((Vector2){ 436, 168 }, (Vector2){ 436, 185 }, (Vector2){ 464, 177 }, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_TRIANGLE)) DrawCircle(557, 144, 13, LIME); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_CIRCLE)) DrawCircle(586, 173, 13, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_CROSS)) DrawCircle(557, 203, 13, VIOLET); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_SQUARE)) DrawCircle(527, 173, 13, PINK); + + // Draw buttons: d-pad + DrawRectangle(225, 132, 24, 84, BLACK); + DrawRectangle(195, 161, 84, 25, BLACK); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_UP)) DrawRectangle(225, 132, 24, 29, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_DOWN)) DrawRectangle(225, 132 + 54, 24, 30, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_LEFT)) DrawRectangle(195, 161, 30, 25, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_RIGHT)) DrawRectangle(195 + 54, 161, 30, 25, RED); + + // Draw buttons: left-right back buttons + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_L1)) DrawCircle(239, 82, 20, RED); + if (IsGamepadButtonDown(GAMEPAD_PLAYER1, GAMEPAD_PS3_BUTTON_R1)) DrawCircle(557, 82, 20, RED); + + // Draw axis: left joystick + DrawCircle(319, 255, 35, BLACK); + DrawCircle(319, 255, 31, LIGHTGRAY); + DrawCircle(319 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_LEFT_X)*20), + 255 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_LEFT_Y)*20), 25, BLACK); + + // Draw axis: right joystick + DrawCircle(475, 255, 35, BLACK); + DrawCircle(475, 255, 31, LIGHTGRAY); + DrawCircle(475 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_RIGHT_X)*20), + 255 + (GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_RIGHT_Y)*20), 25, BLACK); + + // Draw axis: left-right triggers + DrawRectangle(169, 48, 15, 70, GRAY); + DrawRectangle(611, 48, 15, 70, GRAY); + DrawRectangle(169, 48, 15, (((1.0f - GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_L2))/2.0f)*70), RED); + DrawRectangle(611, 48, 15, (((1.0f - GetGamepadAxisMovement(GAMEPAD_PLAYER1, GAMEPAD_PS3_AXIS_R2))/2.0f)*70), RED); + } + else + { + // TODO: Draw generic gamepad + } + + DrawText(FormatText("DETECTED AXIS [%i]:", GetGamepadAxisCount(GAMEPAD_PLAYER1)), 10, 50, 10, MAROON); + + for (int i = 0; i < GetGamepadAxisCount(GAMEPAD_PLAYER1); i++) + { + DrawText(FormatText("AXIS %i: %.02f", i, GetGamepadAxisMovement(GAMEPAD_PLAYER1, i)), 20, 70 + 20*i, 10, DARKGRAY); + } + + if (GetGamepadButtonPressed() != -1) DrawText(FormatText("DETECTED BUTTON: %i", GetGamepadButtonPressed()), 10, 430, 10, RED); + else DrawText("DETECTED BUTTON: NONE", 10, 430, 10, GRAY); + } + else + { + DrawText("GP1: NOT DETECTED", 10, 10, 10, GRAY); + + DrawTexture(texXboxPad, 0, 0, LIGHTGRAY); + } EndDrawing(); //---------------------------------------------------------------------------------- @@ -66,6 +182,9 @@ int main() // De-Initialization //-------------------------------------------------------------------------------------- + UnloadTexture(texPs3Pad); + UnloadTexture(texXboxPad); + CloseWindow(); // Close window and OpenGL context //-------------------------------------------------------------------------------------- diff --git a/examples/resources/ps3.png b/examples/resources/ps3.png new file mode 100644 index 0000000000000000000000000000000000000000..98befacc43a657aa442d7998c2142bb64325876d GIT binary patch literal 19345 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

ALNFiLx;7dA<6e4xP#;+5W1ex%Jz{m&izct^2|# zzsV)Y`=0yXlP^+Vv+nF#sJr#{s(5DqX)j9WyZcO8|Mc*a>pzSx_P6sW1ntu@#)AFsS;{VDPErtY6H?{J^71^YI2x6cobe$W>5Ohcl~Rdk`80vXWbVw9+0A?*5*9G<$stL*RL>B->AcynZkCv+jF*J7C9q=KYx; z{yx^7IHl8VuR{F7&wCI2Wwno6{`?=W!0tWQvul2G{QOoYQVE)#(OSD`SCfBU!6945 z8IPj_XY5@0?CT!c8yAf{XU8Ur}^QzSHeF$F5UI?zx08#rTe}oJz%yCVn4~S zXdZ{cYGL7d*_Av$R^+=T`l*<)txn~Az~ilw`fBn4w$gp&(gkJwG0f9uUpRQ(iu*@J z^ZWUphI{2f(UiiV`C%g;Yh38_YH^{%O;gruHx^6R{4YtUJ*|?OB~oxsp_ggyttI)s zU9x;zJlo@*Cp}Pj^?loW<~>`xo9Cx61g;dZ<@+j=)VegPkLlfK-IHf^Ugh_(Z4fQk zk~*oVP~od|g4oj8_bp|s@_vi{h^Q`oVLFfDPTccq<;*(<$)FUr>W626_pAQ)Iz^qSY(G1j=3lRS+4ke(9Qo%T z_^$jp-)!^lnr6e7LtDdFos<*!>ctRgdN-hV<>$ZojPt*(J$WWQ!)8xHwp71=c={i? z8=@7(zxJGweDYkLX&+yXpHB7PeD4S^dG%+~S3Y|t`Nd596=ZPgvXzUo$HX+o-{wEw ztYM5{TayL~46U%`yBgIQ#Z7gH=9eFPoa34aCL!KI0yjHv z6!<xtJ~b#c(~1M!;6e^oAS{`^AW`SG(>B{C8YDGY)Bub+5+;61=D zUGv}K0sB5z-Q6-3^}>v)#@?Y)-HpvF?OoC}{_(xJ)F>TkT7GZulwZ#4#RYBSw~PLm z6Q=k~xcBVCe1FzH%@148u*Y%#DV=cO>oz_)X5qgQD|8?$y+q$?TJ4tmne({CRdl z7;Bx=-)jq8UnYIZy}xc*tvc&Aw};7EA40uDwbGvp*eQffuNMB`?;T^MerZSg1I`5V z2h&;YmOtfnl1}}wolikbM)Q^1f6s*Xj)#tWcd*U! zKUh`raMg2`q_~b`(d^$MA0CR_cy)80#HDSko@!0K+;Q@8aP+Q;;S$AVT%RS~l6%*#qX1Oz|@NU#b zg}V#RsJ5}6^=-^B*ZFg zhTGLPGF@50XLtVRkqam9^L#1}?p#=vUG|{(w|3HxON)oT+Qo}7NB1#%;6>fSGRzMpzwn6LB0^xedZ z_jmS2oP7Ge`Oh8ipc{8KJh=W-#qj3mau@BVwlCXuOTJz@`;hMC-+QX3w@q3vG&^4` zQO7W3Y4q`V`u6vh33?0McYd525pFh7qV7vq$(gqiA9%mkEZY9?mSbJs;wuj}`0~f^ z7Zb33)SMe-Z512*P3K{D1^Y!~O-Y9&q8@9;wLp*O?n#IO#e@=dRR?}A8 zk(k-d_H$?KW!4|9thVdxmvp}hJ@TP9Rr2p$!2_o|#2#$F{Bz!%HE(9-&FC&N-DvN$ zy+TDcKRl&okK>x4E&3NDK1U_3ytPMHE$YjD;}hq5eV#WguKIAN+`d4eAY8atB0Ttw zR+95a!3R3|u2(Y8F$P{#oAP7lTc$e>kI(L!#<*Ny?bPkxZyYU;PvW0?@X&F)BS!No z+xuIOygR#FaP4Mw=F7(WBx9Vu{HU3dvGU$@iOaF2+eQ9VT;9DPjrl--!}TS}50for z@&!&$`9C3pC({0|!MEpsZiTVxvGvJ6c`nB2E^OOuT=nG6_6alexB3b{e5`t;<;z>I zKUH&>m6$uKf^PcPMK4R(7%FUDuv=(1`~ThD_t&!?arvApQPaV8AkjtNW!~dk;!Mv4 zizV(kulXL|qPmi8J$sqjGrrJ^Z$b_$*~Wc5f6(+u%j4}!3ihr!uxqX>PqNLz28ANF zi-!$w>^=DYlI6q0M{1_$mDcVOtLZxC-Q)bGvRL^jzoqP|xS7w@m^(sNGB90yRiV9+ zCtvw=!+PPz+xK(oyxsKu)h>|}e%X&6SquFzDiHkH7r)==>hHftTCVu*l)W*32Fvf~ zTx=5-eGUI&T%c~KpIrZdU$#c>bBF3dbCtFY&mk&+eZ^oz0iyJ1R5OC)}5FeJy0GxZI?2eZbSt_wOEv?z}grJ0q|1)ybC;mElL% zWoB1OgW@|-G&ea=JcC2}FzL@E#erNR5dFQ!1pRST$bKWsZu+10VwyC$nQj}e=c!yQ0;zsj}pHz3Z z-#WZiyFl-0+|yMvrS=?%7L;_j;(aXe@7027_t*Tu?si`vb?A9n+^&auPB+b!VtjJW zeLLJGpYQtCzRUTbZ^NszrzbJGWZg_z zW$3mq^6!C_FV!|*o&2*PA$w7Kit&S`FZWAtuXy}RrQkkSe7!=OgHFcd(mr*yCv{62 zX21L$e4uiNci%+j26=|nQ{Pnnoh+fWV@bpDD*op8GIupUcUt;i-u0wH`t;^*k0)={ zk9=5DCe3xt`}y9d&-b0}*eNl&?Sna6L*#+@aI61!uRYtDU&1A;9(ZTjD%T3bxv{PR zMhzDf}UaZv%h z>lL0&{HxfWoL-vHTkwxp3R@%X5p>;@s90sYyCq5ndMb zk8{`C7ygb>^7H-$I}(lkg;xLiv(>x5ck$)Iz-^C956|hp`uOtMOi5Yp znyudb+j%<{y1TBkE91SWTvOfp+Klao!p0>(X6Wq;d+Yt$`Na~S9bD78OxCf--IqM_ zVOn>G@2gcwEE{K?6Fp+E;=8DX-Lz%L|7DBIOUJ9Ly`T2B!q)ouetXUzE}r-Mxp!IA zIPfIinf|R!p7(0qkqOIpchnYMTkWy7O?dC;`%M4j4cDxheV9EYJ2FSoVac}M_Y<%0 zwEE!pp!~?CHR{62d8c12J<=7%FQ_|%J?Kx$L;WSv)AP!;4ECm+f9dgQX3su1t9hp? zl*`pG9=iMXonqC3u5GFtqklUe=?czI|8O?OI&pDH-aJnpUc07OZ-bw1jhOmWKu7dt z%%ar2;=BUR!t2!4_H45@+!MOEbKcCo9kG4Zd*?ivd!*uts%?=>&eTI;Gu4*r`zfld z{;81M=-s&2JL3P&1AIqVp2iv2upX?n`eXA;ewR(aySz+}e%ZeOOQ)GGgrKf>}r^W~x4%1pb zuL~8ofc?%qrP$I>^u1$}`;$uBU%$%P^K?Fb{%!j~`N45bk?Wh4H})SBoKl_inqh-< zL2w)>#v6Y5p061&*k{#^R-4^^!sw`Rs7s- zCbIeb5nSyDxjGVa^*8XmQkniRG%)6y|LM7DKNyliw`A)$zguTm^Jo6~NT!c(<~W{Y zShVi>Nk4(loO&C1&T}SjI_BE8app9~8yXtS9aTpxycdYrz4=>lP4~;Wc_MQQ#4lc6 zvY}-LzjCGTG)9+sZ>|{EC2+3sY}}X4xu$cE+G&PG_nr#q_^N+1zgQfb!ddjVVE^;k ztanl*c@(BOunBx^+N$GtzW7k-Uumc5?q~1$9=UX|YTs#H$MeN}pw2nxwrv@+R9C!? z@}98swQl3qiPuvk9iE)@+ncRu_%N!?IQv%RcZR>y7B08ci2_%XU-NtwUAEp$s^!_k zW&(E8scDaW_udSAEdA`}G(}@$o)X`y9(zxNYjok9+?ToQ>QZ~VzD!V+n6mrucQa|$ zR8W^J_Wa%HYbS2i5wCXGqvp*fP`cIb&AYdy+ulVlRSXrj6o$a1H_mGFt~)Oj;r&_#G%^unHs{5&-}?D%w$E&yh3J{_ zonlzDE={}J-15`1o5g*{=lq%D!6r~SX|lN`n`ysgzjo)Qzyh`gczA85DfK=q^pqn>@Dss267&WYzee;x3^pdrK6V;-c9B(o! ztv_qjaANYDUAOe6Em&xmv-SKXF^l61XG(!xI8oiAbgkyJ1q);MCZ4mo@HR{Gk5ATx z^PSvgCm0s3dm<66%fE>4=ZCZlv!)$R$&s0KJwwvr%2V@slgwML9h(&;UD*qA-;-rd zZ__!mq`He!K7H`Yxx4nc?=*+F#iG!+BR%#)^*I|+s<;nIOCU&7f4&+^-ZO&+Ex9k6@9)NOs)K_nPx|}J-0X_ zl)<_VG-$}9@T%%I6omyWedEP8; z?W}*+bJEq#`Xe6xUVY`~O+oG2dXoDIhqV*of$7N1*a9<_8iQ@-|t z!hJyxrRIhoNPfdM=N9wv+bUJ-+XLfPr!q{mS-DbEpJm;m-Oro%Fzr~;aQvlu)Q{D# zvJ%o5`#%@%s&@ad@qp=_0I}Qu4bHG8p&~!V~1SC?uO&D_+xIcn(mgU z*wk=5QuK%BhT7?^{qq^DtF0~y+=u}Awo5xZW5qp&nCW>-R^?ScNK0^X>@S!5;39q{ zSMI~kCb{g~2jvG=?^=+T+&ORC^$Mwr0yjbWY*wy({+96$%bM_q*9}xzSC(>D?WudP zIktpnj zJo9qV_jRaABzB|oN%$dOybulsgZssD@35+gxkL1Osre^KZ zwAq&OeC^hb-v9p?_N-y<|F8VulV08Z_eyQkMc=v}P(8x(^`z>m;~o!^Uv4f~u$;AW zZCEH|z0Ik^vknALbF|#S|087A&$w#~pBqS3$Q!0C4;Fu4&wQJKzx?NKTPxOye!Rv} zvksm3&rtvVLa_v+4A&f%oHv>dmKBT}E*P!Q_|~AIpB>5cG{rc{<63;j-8H|tYTlSO zd}sczpr%v4>FI}NTLC+TX-{o;HTUo5`rwzqR-m^bw6TA$l%dF*xCgh}_@ADzoUJv* zR^im?ZwKUco4E|sStq?0`fRZ2ov5T^&ZG*74{lvIFV+}@FMEE;`y7*9$fW0=#2;86 zvFTwiwzwDP`K7|==*|+YW2YOVb((n;R_&_o*!p#;k}c;Su^Db}REzkX=P$4oy3usw zLax^?NuA5S59Yp1ON{H^yZvxu_NARmect&WzukL4_T_(lsYCC-GwS;uza^4Tp49BJ z(j%XtE=@9pA@HiK*A@@&xn|uGcE$3B`AL4iqC_P&AG)rRP@Eu~bi-HjENhv^`laH% z%HP^&20VJcL!?4Mwzz*?!5-bXhY``UZ`gcTdcf^~f&H>q8@@A$N3n^fwx|a9$(SwJ zG-JxXZ>xX2mhdp={QmVr^-caa{yd_Rp_iWT;4<{jG`6o=CGfmqMS!2vbamsEQhm&I z8In6D&ye1DBgkWBA!uUs$w{9}#dBC{t{VNBpWUFW(>z7eUH1fN;fhv%pX!M-mIu;x z4}Y!^w`i1@wd~v3<8i9%Z%$%#nRg~6@N!3L_WUg(xz>|!ym$Wk`m^Eb3)||Mb~D;< z6|sfX%A#|aFYP|37N&KJwc<$8meS(drqqm8e(w*@n-KPw`G#_B+WE~gahsPa?ciDe z>668`rZ0JIu3VC^D=L%tpqo^gYWh4cA^yQb(SL8{lH_H+POEe7 z=t|-5_>}bHg>U*=0Xq+KvuXkBDcJ?xo!4p(AHPtmE}Q*rm+AAcg!5Am9sl%U^}WXe zI-;lK1fGi8$!+JcT`qrP!Y%8PewK3#eMfz-zxt{ELF_@A_r+&`++1o*>z~av;^ZcAyGY?c*ZqPOS7GwD2RY=l{ z3x}sE8-H%t&YaIYZ<~yRkJYlX<(F^! zm`}eh;QAW9`070G&V>=zzZURL6Vkq%%YMhSh2eRO!1}wO=s6M+^*MS+WF$k4(2cGL z)z#B=e7@dd+j01?dO1JiZw7b9|L-e2f;;cCY{W!`K8p&gGss!s=0 z*@u$S-K!9{Ta~#( z>qyv?dl$XlyX)TfGH+kbRJ?10U%Bw^!~18>P+5C!hO_tQIS%l9$r zWPg4?*ZIv`WtfAd;+1x*PJb@&S<#HeZ;5qVy$^ewJCEt_-gfWIJM4Q*_v(uae^yzw z#=bVqjK%NV2jiU_7H1D1&E7u6^gCmqT%Bjn&am?AE$`jM+?d@3yxa2PHs1O(Z$?V} z)^<Ud(hM* zmwjEtZCTJg+3Np{F_ZTFd-gEUQ@K-abvfgD)-cV7#dG*$7;B_wgk4B}$N%Tf;l;0g znZIq}F=|+`3fzW>eOs4g^mS5`e0d3%B0J-Hmaz8)vS|W)W$c;rK5clR^*C7Krg`f` zKe_DBoxWQ2GY%aOmaX91@3A%D`z%JEZD51uE!wm8%Bf?oU;O#7XyTC#6Eu&w)vaf6 zd-`X_e?Rl4>&q_~o_1cS-osL+9@SpXT6XSdM6{emo=Vix<(Gf%O)6u``yB8h>+cSs zX*>$6R@gnTpSE!IU#=UwmzZ}-GtXYSe)_Wic^91&-uXXF68n&_i}8;!-`XGv#+

    ;%0%pBr{+mYn&#Hmv)a=kXg^+BIvP-kdd@AMrNV z&y)FBLYx!N<;bJkcV@4h+83%BuB_8&^vtO4?pte79{D8>hWr&bwg*`L4*&JatzP-t zU(1WzcV_pRH>}`z$Gm8b<@d$aXTKkFepR`gu|J}1U8?dT9)(X&mInRQxtUv_wsO`p z#^aG}>mN>HbV*I(_bA^bZ*kkmLune*zJo>*4l2wYr;>ENFHG%IR?GGlIuLkdk;p4O zy~Enf9a<-^O@8-TIZ4>aGwNOb0dbw?>jftn78wvTa==e+Q4kDi!q&rR_@(R5z+l zbGoF^r&v}V{&nYs9*|75|E|N~4c0o%OVn&QY7QBdwAy(uP~rhEX+3qR-lj41o=$>y zQq6W1(`1Ve*$MvMftlQm;t_13g@-0=GP?NTqG+E%jfd2t)Fby4-ie3g*1n7aIZiS< zqUqFbmLI*T6RtGvXH<`DJ2g9jGlgNIx~}L`!z81XDqBzeOuo8(Bd9eHnzTK4>&{8N zOUiT^?|H6SvOKHEP*T!CMfB09FRGqzcL`gZH42$F`9dng#3{SkJ8kV%G_{ut&z`xe z3cMaJXdPS7j~U6DDybQQ8yC%6ofO)?I`R~Ql4f{3!@8|JlZpz&*L8)ua)Y`qt0pbi zbzFLf^G|>3gei;lnav~Em^)G!0^|NAb800UZVc)@tgP}hQ}RPz!oH;|dY0=n@+hpD zROcNax%_d|-$`AD+!hCoLfRICYSpDTa-(_mCTgzCh(EqCBJQ**b4QWEWuYneJ}nIQ z)@fbBq$}TLdOWB?cRG*4sY}e$7JTtLurPd*RkBz?PpZb=YKYmb2XamaMA<8cEt$B) zZzs!-eW@C2Z(6W`ioyx8+n-+H-*eu`L#uId!*3mD&6~d!nLBJMHHDcESU0rmwk{E> zV5`v9V~%q(2Aj4hbJ~KEJ8xrxZrWR%-0!y zM|1^6aIN9D$+p86pAz5-^?>f>%sB^meUqKUbl@!tE<>y%5?X}Qe9{F zJDhuDW~6JXgdXuo;<(T^ZIN;sqjVIT=utU=r%!iJTcAAc{BMIAk5!XgU*0i29#nEf z71WupGzwll=ey#{RcVa*3Sr4X8|y%+C(wL{aQI=ZTdWrEorAXi6|=Z$B=Sn{j!Oia zKucX9p6 zyJ30i2_O3nvL7}qop9ypHHKx(vm?9C#IV0f1|^~Gx4C{8Z|GW@aXTrY{z3ROr=b2D zQaeN=&IY9v@!n*rI1scVSf**|qC2cLH;qyru^et+B3G>b!SD2h&hyfCS2Djftng57 zoZTR+>v~#`+nVm^9bocSWbUXssgk5|O~TtSWj}Kqug)fsNmW-0 z9t1sDJ1yzN9b>PhzZAS(XR+=%ZNzg^`N*svZTy~lb0jZv{|WatOnE1%%G^xjJ+xS>9j<70cPP4=M|JHIV`i7MQ(3vJz0+-tx~^;Nb>?;{yAZQ) z4J$5R^H5B&_Wro%!^g0s9kWzc?t9x9&zv3I_56qN2d#v@r2#i@Ffa0}Zi~42^8B<% z|Ie`BOZqWk$+AD1vF>j;E3e5O$mW&T(yn$05nJ52y1|xL{tds+=Lr**C{}V7FrVYx zX&CGNtkPq}nm3Grk!P5{v95dbQ0kBHjoTj-J#~LdZxAjh=fD17Q;Do$%?So2(@a6b z_Yb`t)|Z~W>y;x=y1BhkW$T;71pWupZGYT4f8_6?6o!dWe2Vg_&m8{jc8~kq`m*Vz zo&2OL`_wxWJ?1Yrm)bl}C5+jcF?@HBs|CAD>NdfRg_rbVfBh0;IL;{kBg{KUFOIiH zdd7vN>)(eZ?fk}GyE;_$Tf>So|NOr2%$bvSZTHF21Jm00Jx^U-e|hJ()g|HiCu$x{ zekqmtBjD)`=0&S!aLi%fv+mLQWV4IDbu05%s)%MqKZtqoRJ2~!Ua{)D{3qSe(3{MQ zR#kLJJl>^$HRfRoUxC&}pCu2SCv}yxZ;&pKFxcF5{(t{VsUK;F+gE{h{g_(Fd+?mS zwTbEAW1FPXNtXLcCxvh+H#j%;hdi({nwxQ8*RAcoYyvB79G_$)a2c#|IiD+5U}pI9 zqvU-pPp!4J4auEz51%fQjpX_xX2JbqXZ}PUg&@mZ1{t3@ zSI|@+CO-CMOwlDTEdNOEXpva;dqsXHk3vvsj@y=$x2|7$*35gHe3mIsC2GaGqxbkc zU$ISY{Cmmt$&PV97P84TK zZYX@Ye{o~$%h&M^_8%gC6)i9Fyi_F3pwAXJWu4|~#@YjuO5V=ceCT>|$^E)8$k{tV zKX>wXfKDtzKFJ7jjt_)HKFtThhMr!8d61A1_z)$Cxlj^vjt?@4e5Mb|K|&A*KrDrj z5bKahoK{1vgPdLjA#qs>aR7?d5bKahoR(txngpv+EXD8NmAn7`XJoi~StR)WLyrUo P1_lOCS3j3^P6EaktaqG?9@;Nc7cmMwn=jv3P5+KBRG(Url!=&)>{FtG0XQO-tkAQ?Gwkyira$ z?Duod%$uL>u9w!X%hT1>^_ZmM8KhjYon?}W=Oi8l1ewAxQN?o-gj8YfQ1P6ELP|P- zL?Glz1|`o)D#)ZKn}Fve6)0)c0I~#`oW$q?vIs&VTMA)AEQOFLmO`8Xu@pk$v=rh1 zoR(r*4Y3ZHgjl`g&Z|sL71Mz71lxq#1m6UO4Q2)$5)3-rYi9l7{2=&25a>MpU@!I(wr*?rtI?OTX)-NV$CTYgzM&Aa1b;rf! z;`zmXLQdzH=50Qr)u`K;&lJy674orobHmC5`x~ZD3NX^FyuT+mQdQDH<>_6i0|g1e z2^pWZ=FNRy%=Cfz!TV|Pte0hf7=4I8S*@8X&v>3mUu9uR(5LVGI(t=^JC>|z>-B9s z&vbawgN;>_<-EBIlnb~%%xZUIHQ=&PuB5V z>HjBLGiP(-<;KmE|4;jrru(2K;d_tmy7GqhhW)DX{*3=W7I+#pczB&wNQh1fNw(M^ zc|qO1zuu@o#o(gz$~iAwdmhZ4H2M3jnxt3Pln=yD{(ft=oEylBsZq@mcW-pQ*kHUu z;rwf(2Nns-+9M>l=@uAXT%mY=8AH7v)5-XPiMv70Hw$AaQ+YPCUhc+%1LsSP3JeOD zhMk&Zcfh~labq59P2G86W##Xx_4}SHPETQ&cq&z51GmAfi1Qa0yPU7p+i3QrzJYb0 z$P`BBj<8G8)1Um@CJ?*rAJZMaJN#!prz)IeP!jcyPqMlicVOLttZ6OmjeiTXI%d88 zp(5~Ivyj(LX<7DN*DaU6*=mBq{)*Ir8BelRHuR`Qo-s-Cx;9^@RVpX-f!C(%54E`G zF}-8>=dk79)D(t^QxfMheN!&;kn=NqK56+|$E1UQZ4xT2=JlCvZ+?GXdD)aL+ZmQm z6>(h8x9@)Q4Vevl-_70AwoH9}_q>yy-;PZyU#Z4i&$7<6$AeA4^Cq`!a-%MNDJ(ygQlU*9~Ky`}n7{@Gn? z-FgJ#IArGj`JVA0?9|qOTD{+2|9EoRKuOX;#Wcb`X-cxphPh8)OxoV@E`Ghh<*Raw zD|c^SZL^Q{kJ8Wgi#vPSu6{KrGTq4D35o}+7k(w{ta@gc-@84j;21}+6VtL zK4aJ%x#LD9Yl3frZ327Jt4OKt*Z#`O_AtnB|G71N_N)w{4ZH@EfBCS^@#)#*!YUaz$EO`US({P-y~V&EkHMMZ4te5bnT;(y&4y1#fn*nAM$XkpSD z|LZlQy5M5*SYD-YW_H#8x$H`*M_H1%9@s3BJha&J$GWGr6?vbk=HEJc`-QX5_ZW7G zIW=mz962s^=00;+W7y_|I>)L=IxIQF(qDMsdqZjQmmTWN{sQ3z^V#P4_|?41^?tyV zuvu@;lefNG7Tj&wap}(a>GO>q$vimnWWTxMEywjCPjk<(pHmjw@_%<yVUxb?Nd~21E9EUE@4Cg<&FBD#J#OUDHZ= zzJAInDyri*{JU6g@0V&JW&Y-lo$vm3WUASA{(S#lAY4hE`Fv=_Z0C-5j@kMT@7t-Y zQ`z6}wrurRHpB3L-%I|!`mnt5amTk!WreGKet+AeuBLuW)>71BuIl@Q`~NnlFIN%a z%MiYmuKs>9f5*BQd4~5wi(~%BpK45De^BhHa8qOP`k#{2*aTK;922^%y~)To zm921TDbok_q!tC;wc&@%efF^lzmC4P`18fCZ;daQ9!O2AOD$I@VDDbXJ(Igf=~@-T zpD7U!)}O0&S);h4VTShnwyhm2+t?%Sb@?PdTp_EoGxST$qJ@XP&b{MTp5Pn6 z8~5f(+>HLr{}UcYtv7MwWMi1mzHfrfwos#x|GOIx7cShD!Z5LDjeddQ#_8^xeVOyv z|2g!OEGcZdIeSK&q0LXJX)Jwtns(1FYg;JB&6ME0*>)rI*J+(SlPWC?uSd_7=9h8) z`|R-h2{Mzf>V6Hfb?j+5llJlAZvMu<4f{(zeO}yP>`^aurzXkeW8s7R1Ij0lHnE!C zNh?o^dLpst?zc3_75~3HDNf#_?|PC!>FHUk1G*;L*S>pvMB{kuNzTJfQu+D3V&~r8 z)8drry?q<+`eGV!d_l{SE!Jcj6I_^G5q*tWBoR&?A%(9KmOVg*qm;~`AA$yd0nrO^3R+~fr^e>*L&7FmaMsL&Y5^NXKJmPp>B4gzB|bF zgBzZ>WN&4=pU+(w`icKQ@5#<;-KgbWZ>G#S!=F_Yd!F^*>{H7cYpg5{Up+s)(Rp*n z>X-Fd4{E=uu6wcj_4iA2C+@iyeb`n0!CAh4_t!SQZtyq#X}G=Y?CcpWlh`}As>c5P zbJMu8_uZ8x+??AP*(aTKlbOWma_PV1l$Hj!*8XWvT&ioh7ACtUwIr)2NgYo&inzbL zvzNs>diy1NOSad)irxhLUgzDL;=bvWEMv^BDgU1rJgC`ZdFi^@gg=&?DzTC7m-=Tc zGo7|W8;W%PN@Py}l^o(}6|}9+6+VpBz~i7pG!%|IfU2?;q{fGVHJ6Pm=Q4Kj&IiSW%K$A?N>Z z;+uA#_Y%9q^k!<~aYGZ%OSLvCva|e6!YkI?{a(#zKH>khOZkl3)#8O$)|I3%Y8?oWJ)oh8EnYnWem!6s*KW~QCSJ9;N z6Svqu|L3_yqTIG4g<+!6V{;ej%O+w~KJcw%GMmg4z4NX(Za-^E!0G_hf6Umv~FL`nLs=?rWqY7alwQ(Z=A& z^yMiG6E`JrY*Y*n-@_5Z8{_xYdeZi9XYP0Jcyxd9k>d$s8)y9cSEioRo5eMOJyQB_ z#?{F;DyvNSFaDQgkGcHL<(Jf*z@)1^0i*M!1 zV?x|c+NQm&-6!Q&e%fc}T2lWrsVM30*-!uH^Ec*p-klZA%QWxMUxzfoYR@w#Up%(v z|IwzO$Z(F)FX#K-`Ao|rW~sJKyf$%S^~#zj6$%9rpDd%^rfs}k@~}915~E9&7sE_{ zoeg_hX55ZFYck{71;c3>`q?jD+?eu&W#QY5OK}I}z2l~TbP=DwMyfHpj6qJ}TK?9* zH5RjOJa?Wu+c!t1Lb*Ww!+fs#yx^p@C#J7><8)L!<>P~K8%6YN&8wo=@u^K(^N z*Hx(_CEb5{WJ9Z&Zp?Fyu8MQ@$<|!GUN}2x(<*ht^ZV;N`!Dh&-94V2yU%>qj)aSc zx0hbs`bYS~Zk3*pqJzu%3pYM8uzJ7fDF-CUh>E@2bGJ(MUHM7G0ukl**Qo`Lw z_0y8YuW!YFjF+pJ^C_=pyJ76@FKZ{}DL#8KJ@j{}{A_{jS-*aktvk8p$>twk4`y=J zr|~9*Jeg6pu!3&`*S1Gfc@%=&a=2>xC1&ks{88R&e|?uhk<7-9TNftIlV`Ng`TTuT zUX3|>#Kbr2{%3@~@3qJZH?d`6_R1WWUFsVTK2$t%bm8U3 z{~LQIF}j>uy|#1VKa(iutdmg<%$=g2#cr~Cvb6L?=YgB5HFN!#wk18Ba`4@e zw3^*N#MaG@x;@W(Rr9-P4y(Eu57Z0B&XV(E>Ug-gZkOO}%WZSZN*SL+@|^cuz37w0=_^g;LIp9i_kUM)d-dyQ*x44j z1M`mDGtpHeodmR3nJ`uNm+d^7itQqVu0OxqKM zsuge3ZYm@!Zjx_SzqR+=wDgO7xu@oz?FieqUbvd)>o%21j4ocMw|Rcp(O(nedF|5H zc>W^J55Jl0?_ZRxuSw?qS2f!$#x&phQkmcG>kB?*`zAGC4(~YYuPW)VL@%0qhgijh z2Z0uEzq2>anEl_$asGRSgluMy;4K2#z4vlH@7>$c>k+y~;Zya4zz4o z(p1lBaiB;f?Dx;_{}tW1?6h8d{u}2ee_c#uH}e($$St>TDcpI#_{BDscdFNZugS1n za;hXdGjk)C)@sEAr3a2pTV!%<srox|GOt# zG2_#=JAcJ5wpBoRLKL+bZ$v~oi0+G z`0H;8tk9t)4w zhx9Y64#?Q&sWNw5xmW2D9Xs{B%7e{1dxGxTS{B|~+Hn5s>jU{lA1tP^|6^PedqC>E z>aEiMYtMc!WBBLv(Oh#b^Bn&-yoy8ymBkU?oBV69xilopS|eq)eky_t^XFQ-TmKr;3jLW zY%H71y=U)T<$SYEr{7?IJV_+Kc&^F?kyP7z)(0Hy)0XyGGA%Na%I5T1FI^zI!EN?? z(bCC>dK+hVTK?!Q6Zr7CXMy_HwiecR7!{Rd@9ikTOEnD@=H*CRL(jq;)=TB5u&j|^R`O_%XOYmq^n|}m`~B*? z)-2C_?bEgQ<^vtE_}4-Cj~lK3)+&om58e=>c3XIMil?_xX9S1!?z7+Bgv0B*?*x^y zT@?Dte;~fGKKw^9b4Tp_<3h^vce(!klJM{8(are0ccbSAtxezN?vqNL&eSsD<;mYi zd^uH_JG{=EWf#9XX--bvls}fz5sf>P?)4YF6WYII@|pa=JAQs|&-yprFh214!2U_s zUCWblk7pfdJ0kl3tM`{(6-_%DE}G5B^X~caMe|4TeTj;7p5On<{Jg)S;J(TOZ=;44 zEmcgxlZ96pvGsbol+S$L@$OOb}eQp$eg{uTs`Vrl~SOdJk$K-i`O=s77n&F*FE_8zu-o{ z6_H&VGT+D~h%P$2L4~=)>zPv5#mJ?`mnThrvbtfv`3t+<%+>R@- z;nwg^-(_p8ryh!Vbm-_`RlY^>4DYf&CI5(DP=4<9kEKsal}|D(5_-wG$90RV&Z6{2 zKDetLDdz`A4ne{!U5CH@k6fdB@7t zXTPK{-pj9N`SvkaRX0UCZtB5~rnY|dhP$0&E3RMo!@E9>DV_1P;A_>m^Od!~nT01^ zxcG`WAw6k5_f+i~nUGB%9N7-BFR`xO66q!!9Ih(q5TfMz`sly)Pb_o!?o2#*+?@Rf z??v60zjba|YUE#I&r7`M=l*_U!C_lbZ|;H*LWhofERtP2>vQF#^1YJ9f^#>mCVy%$N7l>W%r&1p*w2Y}*AbeW-(=Gq1nZ&pMK9e)I zuXKC<<~y@pb$0CAdH4Hu1-Ap!bTebGojQ=Laq7y_i#k?wgN+(ISj!3+=N-O#MCnX> z(Lb9y_cxjou5X*wF0{7tc3s{%mNL~_Q_p>UJI&i)`1kEUOYeTa&iIZwOusPq+E>FR z%RCl;3_AO!X{pj{?mhnd+CQ9E65FSzaief&n?&e|>gJlC{8(T0i+}?gE_xN5_8O z@+6ao7v|Xg+s_owb}#1CfAfwVlk6-wRhTEQ_g9NQ{nO0%Z|!HsjoCk?PkyYNopJcD z&+}yK-#%d}DOO{(WKYWA|eS+aS|z*`85% zF(aCxUOT~7-hbX~(7?zGfd|_ytIy~j2yfK(DqFKlINOQu#Lv$aVmmq_f$WaE|Hv z=if)GXR=FSDcOyPAHR<7xPY(47Q=e4# zAlIYwO;5(_npQ!m5UC8#)7$?s3a8@$N4CIQ=IX3VY0?WxvSr{25mc|;HEKu z&EwiHO#gV^1Tj3lyxcayWiw-Tra^h!mr431`9j)CorEqDi%P?KJPdb4YrU9MhR)In8ysh!>lH z=J8KgJYN<*aN@ryB-^~$DM)NB%b&&SgE7Hgh*F zwoRG)irdEd%bDp@VmCMbZrI)MdvbzNG3Wc|508ZY-`j9L!fY8cbH}-IP!D0{=Z5?z z4+_n)lh@l=wfxD|(B!=5<+owFV%d!M`JU4<${+BZR$%U!5}!Z0f8n3cjmfq#qAxl3 zc;u+4d%6~@7A|xJWdoC@8B7yOKR5C=gxjQuTC=!2F8Q{MLAas4)2}Kx!s5{enGJjw zjmlLFW)LvIc203hD_le_v zkHVAxf6w}=@@xwKCJ`awhRq$Uccw||jh80{ zT;lo7{J1uAwGXH)dEr}UCco#*;n1y>|B9wnbV{7PvG&vl#=@`v)sNiT+}*e+wsOwY zmeq;}mWH!r~R1sO@DmczH!FvI`t26yX#-`)tGT! zj$a(Z-L^LU_`}Bq4?bDlJ1%u#@qt;Eyz;-7%bdBjzik~OU&e*cJEu#`1a+_Y-Z;Nm zGQ0G02k-JLrOGGVmv8 zN7y>PUg55oFoP*7|8r+%#5?|_K?PjXKD}$0V{@)kZq+PXr+-nQ_jq#xkDfF-5c25M zyGXfDm#%#-e8A3YGxPlA6OZmZDXuSLe)l>#No1|y_p8h|&TrqrqY(7%E9 zFK6UQfA&0?ykh%7lVz``r7%p~l@QY>_j9FM4Yfrn~&0oG>n0m_2a;NX>nYORf9vJ4NrZP@T=1eR<(mshaxa0;y>{3PG2jZZ+Sv-{I7ApQIytyz0W2 z4cDZ9e7)0q^85Ofws_{~i+8#$YbPJS-~lON4tUnYF`t+vw=d*rqR5-g2X<<et=!mMJ$leUg23=?N%h-?V*lm9KiAD_iGVSZ-CafbV= z9~PIH6!2a+dpK@Z)wczey=K>xe^>j<#2xxA$Ghgu?RYkUm6pez{@7^EG-+OG@wW

    MwZD`G)-uvxT&~-KnVaS0^pF>M@(a{mBx${Y<}1 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 h)_bG>{QA$%uwI{|^30}F>