From 2edaafa959025fa78d86037a9f1d41d14ba5b1b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl=20Sch=C3=B6nfelder?= <carsc272@student.liu.se> Date: Mon, 12 Apr 2021 14:39:47 +0000 Subject: [PATCH] Resolve "Edit Users" --- .vs/ProjectSettings.json | 3 + .vs/VSWorkspaceState.json | 6 + .vs/slnx.sqlite | Bin 0 -> 118784 bytes .vs/teknikattan-scoring-system/v16/.suo | Bin 0 -> 15360 bytes client/public/favicon.ico | Bin 411372 -> 35317 bytes client/src/interfaces/FormModels.ts | 1 + client/src/pages/admin/AdminPage.tsx | 65 ++-- .../AddCompetition.test.tsx | 0 .../AddCompetition.tsx | 9 +- .../CompetitionManager.test.tsx | 0 .../CompetitionManager.tsx | 2 +- .../{components => regions}/AddRegion.tsx | 18 +- .../admin/{components => regions}/Regions.tsx | 6 +- .../{components/styled.tsx => styledComp.tsx} | 4 +- .../admin/{components => users}/AddUser.tsx | 16 +- client/src/pages/admin/users/EditUser.tsx | 300 ++++++++++++++++++ .../{components => users}/UserManager.tsx | 62 ++-- client/src/reducers/userReducer.ts | 4 +- 18 files changed, 419 insertions(+), 77 deletions(-) create mode 100644 .vs/ProjectSettings.json create mode 100644 .vs/VSWorkspaceState.json create mode 100644 .vs/slnx.sqlite create mode 100644 .vs/teknikattan-scoring-system/v16/.suo rename client/src/pages/admin/{components => competitions}/AddCompetition.test.tsx (100%) rename client/src/pages/admin/{components => competitions}/AddCompetition.tsx (96%) rename client/src/pages/admin/{components => competitions}/CompetitionManager.test.tsx (100%) rename client/src/pages/admin/{components => competitions}/CompetitionManager.tsx (99%) rename client/src/pages/admin/{components => regions}/AddRegion.tsx (86%) rename client/src/pages/admin/{components => regions}/Regions.tsx (96%) rename client/src/pages/admin/{components/styled.tsx => styledComp.tsx} (91%) rename client/src/pages/admin/{components => users}/AddUser.tsx (94%) create mode 100644 client/src/pages/admin/users/EditUser.tsx rename client/src/pages/admin/{components => users}/UserManager.tsx (84%) diff --git a/.vs/ProjectSettings.json b/.vs/ProjectSettings.json new file mode 100644 index 00000000..f8b48885 --- /dev/null +++ b/.vs/ProjectSettings.json @@ -0,0 +1,3 @@ +{ + "CurrentProjectSetting": null +} \ No newline at end of file diff --git a/.vs/VSWorkspaceState.json b/.vs/VSWorkspaceState.json new file mode 100644 index 00000000..6b611411 --- /dev/null +++ b/.vs/VSWorkspaceState.json @@ -0,0 +1,6 @@ +{ + "ExpandedNodes": [ + "" + ], + "PreviewInSolutionExplorer": false +} \ No newline at end of file diff --git a/.vs/slnx.sqlite b/.vs/slnx.sqlite new file mode 100644 index 0000000000000000000000000000000000000000..afaa4ec76648db5061c471a079f8186519d4591d GIT binary patch literal 118784 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 RCjl;-YXYwobY&NG{udD#wpRcE literal 0 HcmV?d00001 diff --git a/.vs/teknikattan-scoring-system/v16/.suo b/.vs/teknikattan-scoring-system/v16/.suo new file mode 100644 index 0000000000000000000000000000000000000000..3c47ae39e5f87ee58879d61a5190ed0c9e454669 GIT binary patch literal 15360 zcmeI3&vO(-6vsOtBKQkLQ4uvFDkupFh95!1Kmvji5?BZxQdTXy8(6dXQ9B!c+&o|v z<;km6Ui=gM3#{^}mT;i-z(r5q{0}64zCF{M*~#u^cGi;Yx-a#1dV0G1_3M89`n}hk zyLUGK{_S_${xA_ZYSx+uiyO?Nq5Q5;+H5lBG2WH;U~zF#pOhxqffgEp^Jb2}lIb=l z%q-8Mxv8m)4O`8+@|>?*p;q7SFNSh^f9raja-Toz7aoV=ocYY0hWZq#6XwPWtyF&A zYSxtLYuGElR)0H3HsWi+(HGr$Q=kV$lLJ$XMH<Wn<!U{4nl)YF>8@2SoIk?LUqQy0 zS%6Bx<l$d<B}93IoMO0Qm9*$TLjD>sF8`yHb?f>$(tn2;ApJtnma?_B9Xvt)li*X} z)1bz1Gx!X+1$+^F9+VuY-d3J3f!jf~p(ziy=i2Q&AKnQ3m+ODi{afYrKlBjS|2T5k zS^o?I;3RJYY3Tv2Pw9sBpr%OQ-Fl9@{#8e?F{r<dXJ_5}W3t+QH7~VL_MN_I9<^t$ zH2;zp?I+Uv+6T0cXiw1myM5qg(yxH8g5BV2;12M0a3}Z%_$K%kxC`73z74(u?g4wi zUT`ni2lj*ez<0p`a6fneJO~~F2f@SOd*Bi9eK5@LG2V}d@=lOG34R#L3zx5!UTt&Q zNPkAKcrw@^GgvyZ|1Mc8BunmfbJ2L#78<dZP?`~04!sHNAB~}FDFvm1wSn@aX3enu zouU_4$SqpR{ufuH^0^24(&e&8#CPS_>TjpXmh1?|%w??4QK%II+OqjH5}ui`66BYw z^}7T5S{GU$ap|9;tn4+xFx;o1C2DynUtiV>zg(?f?7y-Ok4ry1{v*)5%t&A1Pj>Gm zJK`C0l{c>z(NKPO0{X+$54L|3rGK10<mkgR*7%&2Ma@KQ*v0re8#FHeLp1kQ&}5Xp z{D2HSm`4J9xvNKAx~g&e{{v`Cw+gD!_a!h(FS6Djs@I<bjKB73>D{>eAEj(9`X}v} zXYoSj?D`Y!dLaJg56CZwOJBCe4pji6{4deJiB7sqFA9Fa8o$v0SLJ^cerKR6KRB!l zYe@n6r(yb<uL}V`QU0sTf4C==12Mq(hyAt6uhrjV-?{m(wx78?l~KC0|JSyW+*nEW zTM>>U>vL$^8FX%uXWY1lldSE?Ul%XV)_3{!o@e;DD=2Wm?tate40^{y=cd?swE9Zc zDygsg)r8_7Yk5kiX#AD85`0VnC;!s-(ziwS{4}~o`lrCVXIx|`M^8#Mcjdzg*1u%N z^|7A)HO@$Q^rzlV)Cd3KWeXUW|Bomun@Ny@yG+3AHE3zqDPmzq?Xq5GNOnpIYgty= zEVZsue<%U}W7G@Ozq-&gh;Ii?H<q9QM_bPX)tj!;41L+ITE9u5+4_>hX6Va~RQ;tk z=7)HV4bApHHlZ2?m-=0!K#XkXON5IylNW9$Zd&vB12~MgJsIc|`BZ6kmhO;N?MCz8 zz^^)hXFrMGl}C^01i%BQ&@SE95Av`*rH#AoezbsAk}W=or{9OiKS)Y`;tYQaXd-FI zo8(Q9JBekb9j!o%YCjd^_7ffGrT#(tJ4h@2v^7axX)<}B(tML}@M9Zrkuld86LIrP z8*nqjTxyPrZ8JX}@+$dk%{8MHE9vrhW?FVmqFmfSCk?a>H?rnuEH`&sPy<BgCWA(o zp7!O=n4jB#r#vxh?Ss++_u7CT{|tMYnNsY`*KV!2mpUnP+D$%Bp>1aA8mmaFsR&Pb z;%kz=U)w<X#8=T;gYuSjnjy|wQTOTANdXR~;Am-&b?@!Olh0{;%+qo|0`ZFhT_Mjk zM)74uboZwjkpFoL^!+w>;wSB`b1~_OS<=xcmA<El7Rt{`lfFO+{SDgvO!2g7>z7UQ zwZxy|MLpJvSBw5VC%wxGR%zc-Ny3Nv-wf#7P#8oIz6=s-_DB*wdO5-K*a4ev;9}5| zQ+@cU;lG~pTm4kHj?&d3dj8;_G-y^dQ#o@CUgq(mWq--fR&E$Lf3o-Abmkv7{-ygQ zPHt1skgcj{qNs@SdGd7bq*K^)=yXLSbvEjiqr^)+I0SvgfOO9wF8y%)HGHx%YUMN? zoP_og#gL@VLODwW!;fV|Pepb9)@b}qyesY`s7HUoa$aI}rCE(GLarKFM&>HxVdJk| z+j+V^sLho?@p6rspcDV^#Qz^={C||ye$gn-S9uR495eJKwfb+8^WSlra_g^ptBvKl zwHH_aG}ijcrJJE&Pybv($4Cp0u><HSJs5?33G|<0)0={Z>d_xY_xn514EM1VC0?K> zXVHeT@BI_`qtMs=GTk?eJO0|6-TcR;@1n}`F6IN;VuAC&E}f_Aep_7ns^{o8a{e|4 z=UE&1R@A$sW{mi6bpFp$&z*lR-~VN?wbcEe@*VWJ<39xdUx9)s|Npo9KmI5r|JB{A zQPyPvsma^Z8d-BCyHec=x^7*r<<Gx`SxHNJKxfz1{?@{55I(uHvB4UZ#dj{VfIN1i z32S5bb5^ADrh1T|%T=2@{O32{e|>wut`Rl_1A{%8;zG7(!OIoB1odx!nmcm;-uj=C z(r>7<ox-bb1fu$H>Hb~I-2b!wr|y-<)&F7tFUo&{`+p7p|JQ1||0g@dzdLPA68+QB MAFFOjH`Jkj0EQ%p7XSbN literal 0 HcmV?d00001 diff --git a/client/public/favicon.ico b/client/public/favicon.ico index 47e3c3fa2717eb81cf538764dce8bc4776ed61c1..f3dde5b1d1464d1c26312a8f28bd829a2604b731 100644 GIT binary patch literal 35317 zcmV)WK(4<400962000000096X0N;rK02TlM0EtjeM-2)Z3IG5A4M|8uQUCw}00001 z00;&E003NasAd2F00D1uPE-NUqIa4A0Du5VL_t(|+U@-Xd{x)BHV*fk_xk<b|Gn=y zr|qdjgvgHI-j=qs)R5SYU<HcRptRK8+f!GHwB@w46pfJtf&_Oc?ixH0w=HWu-<Yy& zXD1|R0&Dg+y2;jQ<C$ZOIpmsa?A9n7fV0v6M|2xeG|`<zPNHXt-X{8#=zF4Hh-MMZ zC0a(bk!Uy35uzd@ucRXR+%EZ^W%4t#<ac~8zw>SR8&3I~?6+@~eW|m*cC(w^&W+Lk zov0a6C!%<wCyCx8`iW>B(H5dJL<*7WLl>&~elPp2)AG0H%D%iO`xYnrdYkOK4Gea( zTRoWm&qV)CbgevHpCg(~w2){6(LTv^9yH$Ok$v1J`@B$&VJy)da%^mjf3m^AZZ^{c z|39J@MBRv<BAP<9lc<=;g)67I<d}BKF+L^794zO+1_QfYHK#li=O2=%A`_k05S8HS zYbA2*KgzjyP^u08#|8wuT}h13^x&JM;p`_V8XuQ>wB1Bg<eY4fbHwKAMt?R0yV<QN zFg??8n-ldU`kZJ7QH9Ot^={>I&OVcK*xaApz;1SHOyWJGze@4`J$aQ@Zu9a50fS|7 zP9KtUY~Lu@tx+&O)9L@0s3XyvL`$S7YqyKjj>|b_bKRcke{9LXZkL1k|AnX}(I}$% zM1_s~dhSYV9_jm#L-d4Pi+`~}z-|}&#Q!&<4n!YG9o07EH4X#fcA^jE+Wea>5!mfQ zGyZ=Ob(Su%`)r<Tv~8bUBL)QjX#;`X&X@U_j(IQ9B%*=~>|SfPi__Q|og^AB*Y1C8 z5U^WAPkd(Bi<N;eCvBc;vhAc?!xu))A?wK0AYQKmfc?RI6f0=cG%a*b^uu$kYo z3I2nq2T{6xcYnqE6tFeEU#__g0#`ZXvpeJn>2Y?<=8vnU9g}Mw;p<0Wx2s3oXQ8Pq zDs7W(+`DRxg`1==$F;UvaP<HHi${MLBAG_D%?DR~V|yS+?uq}l0pQ9O_gfQvYg_j1 zR?Ce6+Z(NHwcyHQeimBFa@p;$_qpB9(zeUJa-$6bO`rMy6(Z5ZA|kiFx9wKX=9YWr zLAi%)5NLv@{@)-n&E(tr*>309^5q`-t1S&QE#?m+nhHA!huzM<Rmi;*W`jWEXMUDK zin)Dmu=lOqE^yl*_twALAkaAP^_iIV8f=FiyIs6?OzyE7S&8g+c>#bWgqTiLW$#hD zUF630*fb)C4FHWp<WC{mZ0}3ET?UmP(N+mA->H8C(Yr*a?7e8W%hcH3dxz*cTN=2u z%+D&y{02J@pWQBhV?G1FLR5INLEsWFe>Bk?d*9iuk+p21C>sPWF7tPVNDFN@yEVqP z7$SG14FVT|`B@T&P4*tMTO)7lA#xGgAaH@0pB0OYhn<brZcV4{B}#y)(5c<djrm!Q z_W?wQ?LB3;Cf3-V9SHlH@SK^S<#ito`<l;gO}DWe15dzIqrh(UV}6#o^%bHrdk@*I ziMJA>mtjgvZnwIbpG_2VuCOEd>~^IzmW}u=8wBbn_P+u<HMiZaOb~e0RtM@f_&rWk zYVQ@hU7@W^+64a11_3Mc{~5yCZzt=t+tpwg94Pnv)e8c!I{C0Vd<X5lVYjQKvArIH ztJzt|H2CfijuUpX+tt+e5Z!at0f5iR&-|v>+k3%oS7}>E)aj~{1WbcvkyCm09<bY0 z-WCx>UKIdfV*Wsga!hu!o83g|^1v$^1YphAKiOV$yV*@|tWfDcC2w4LAOLG*-%CU; zd(G`;H%oI#-njB22u%Rc6LzH@yV<R_mM?ka$^ifq^Rt|3EA2J5o89Vcj7LJQ2oQiZ zz{l46?Pj<7waIAefkUwR_&*0by3cNQt8c52JkxYz2223JN-WzMee7nphBd}BJ(?r{ zn3z9+XtlkTcC*_#HI@Opd6NPGAH9D(kz%i--RyQwO_4m*H0%Me-uK(F{dTk4`8O?x zK;!ohFaf~bL<j7(vzy&6NZT)Ys!0F<E0j3bUNgJd?SeKIFK}(61OU^?|0gN>SKI4l zH@jWXRwa4sPmN9zKy}46P(0VDP$Cqln|XItQ`c4PZ}|_^cv|s!t8Y`yANTi_HQvR( zUlM)0s{Mjm%MYpkzD2ck*Z7>GlWM%H?g2E=;-h`D7=z!zn)>Un52~r3#?b4UXZ5^$ zt=3#)(_HfR=u2<B-}+AL{KIz+>f2xI7SqRG`{ymcc=qqEdr7R%oy)}5{iU1fpAkgY zcpD1<a5VC`uYs%jzf{%pg&Q7~^OV=%L-9A;1YSXkm~i?RudS@q!r7`1NcfUs-eB}? z3X#gbRUz_vpei2v%Ps!)sNx4@e-!q}{>NTZ6${&V=>Pl~MRrorn2o-Z_t?#UOQ``A zD(bhB{EyYke?j5j&F4#@Ur-g%S^01NAA3$!`TM-QPm0lb{vMa;ry|C{9$XS!YA}^A z?>2b1(l^sQ^Fr-z`Y{jnhtIttM?!O@y2N<cRP(-hdB41JdU?-Oy}NP_JYsDW11#8^ zRQ_pgUKHa)3Lm=Yhnx<!5xsmSRLjs53s#8_n~n<qYp7bWPO<Di<Jhq53B})css1;) zzu(q3x~h$x_4ae3|5O@_6u<$%%O!vZpt?_b*n*oDh2VflZf06gRc>C(iDx<O%&1{L zkIm01KBv2Q-YZG$Cb3C8a<iyjxz^e@C=vh|!>C?;Gm3Bb8ce17N*YSdQ%?@bTZg2g z)(K+f15b{Z&zCB}Q|15m$W5)i*Tcu_728*0s{jTXwd&CUjJ?;bZC2ITw&uR8=Xhc% zkW61#2G5p#s9L%K?v2}_oH;|!R||k*9rLP^>5aKnO^mHAfGXF8uZgOygtq=-%{7oz z_}Z!R{o*IYza=B8ioPdQ9|qO{TQy`Zzssxtz7Inie5+`kmf)*sXNEp3#Yb9I1&qu6 zt1X=QImPG46!{tc>QQ>82aW#n0|4s)ZOChAq}Ng>v$QjeGaM%`UvQEN_@h@YnDxZe zCQmitv)4q{2^M62&6r)qhrIGY;D^6F4HU^R+5#DqD<u(CJL&mxrGHP21Hp<#{GaYx z#Lcq-fa2$bF~7*b$|JvD`(4EX03Hqu`gE$22^8P&6d%^1Q#I{W%cg4p0MKXMM~`9C zm*X&Pz~h*jJQ7p;KZYgm{sR@ecJotQobIYV?}{J&Pb{k(7(KG}s`i~zxlOdwT?bvc zwk~?b%^}CDgSeud$-eU|`=I!$Q6}w4k<y0ZbI=(7HqDuFN?Vv-10cmmHC5!dYXG2{ zBv{q*DMjD49{CRXn|RH0Eq(Cvfq>cYN1N~o8c;PuWR;8COyr~GQ>tmaRa^vgOYGNW ze+33JtHyC)#$?r3r}syGI8BoT4d$nbQ<-EU`=ofp#<GBr0ZMGD1!M_v)MI8C{q&XM ztIzM&kL_!bF;zn!HLD+t89dZy#Y?^RN)?JT0L>^LQzemjP1VGHMM&M2xsu|v#{_D| zDJa#a1_1zl(p`yzQ>P&>VE}ean1YI}`*39L609EnJa&FE4&I^?306X3G4NkC7?Oh( zQytj8adVY|t(i-n+#1tckligFy=*Q#Oak)q`Ek=;V{1+7sF)wK+M}9<4a*L*e6?49 z#cK0WboTb@vVjJswTtd<u7oJsj?`6PE9fYu{iK=>FU4f*5egsMnXYPryC*KIK@e5A z#;ba-p$<inptp%@c5Gl()hJo97KeVCibFsAiqf^~p_Z3&H9+w>F%5)OYv`l?PD-!8 zbIQb!ifOIAnn=i=sIEfQjvY8MWf~4l`W2@au7J0!N<W!YRWa=XRYzk@V$gI}UmeiU zNKG4|0hUbF*HC8OY^s!}*oLXBfcM~Gc-L=+ci$nXrR5wDP+gAF4eN3Er(bYr(i9Zs zt$<oq#<z%vgRx1wRSi3V6+2a*)1`r?>C<Ph^1Y9+_xV?WLq~+(UR92=pQmHh3vZ%$ z_kO+(3`8}RMz;WI;O};!eAi9_k{LKKaSF~XUd6|#t1R-g*Tj6oenY#j;1mkd=i|`0 zUvOet8mf;R<@O)le&FZSw=%i;P*=_Jk=3qTgXL92W33hU75#MgnxzOs<I$x(llj8R z{HnEoy5yjGH_|3>5M4vqcZr$bL#U%L-5>u!9s070nVsZXRUSExRij@;TKMfq5ABRa z!^fa(=N@A)a?Ldmcj<;8|A(XMUn#KaajMF{$74CwjPI$=KY}%{zk{@>+mRa56>A=Q ziJm(qMMudbCJ|cuhav@Lf!gLiX>atJqy^O?kf4q+`7>}r|4v1Rm1_Fts_IglOv}Q& zgu$5AsRuG+2jalgS@2Yppd$YOR=)f?GQv9{GpG}m40r;CTQ(E(3yF&{fasyu*k#sz zsGl}oAAzdAHb7TF8CHMv6}FFk73!XYg89k|acbf}vE;?KP_!?f_NbJ$JlgLnV&#R= zf|$4fo8JEfGg^0}_34OZkG}xd{-ctCJd(tExFNxWjm%Yw!}D{Hd!G{-&D$ZT>qFQ* zH4RFI%W51{4Tgf^V?g#*N39F(V-K)cq^xS1&vUxOpsA5Q+Jnoi-k5Ai9@8GLq1UQb zvjEX&^w)pT-<MVj-~hmle|U&GenJ<g=^s^l4`Oxy$1(SY2xQ+7in+a0P_lNDJZa@Y z#5SgCIyEKyDZW=js_Evy*PNn@Sc<e6OJkxUHjOGR%j_eSyZ2$qh*3ztH3D<~9)UH~ zzly^L^+kfTrE4I<r2xgO%V{FFs$1bzDcUji=clb@gIkf?x_GLu{ZQ|xs;Va8Q{lZT zIdKrH28~AgO|7W!4$Qoz6&4P93Z=XEpmNtPtQ_$a=H3{F1=l&S<bfm<u2{uIX;lJ% zxCarIK+SOOH8GN6-g%w|YXE#FpG;eT`SF9W=FQKrFC!P5C;o&b$s@7%+bIN89%-D@ z#CD;&C`=`jV|CN1z3s8F$i6iS8GjGOlKvy%+I>*Yl~4(|>Z7W<)W}8as$v|NHWl;Q zbVts0p~!M{!j><7B(<Yb?gfLnT#!ao#jF*nCW%flSq`i!zG2K0;)fy+4zpOQPoES& z6-D8<4{lYeq2?PU2>|BzYod*6KD^9Qt|r9Ex4H$WouG$@+{&c}0EJ5c|3j3jTbNaG z4dmIg7wh{C#{yc&g?|si!d_04t=*tArG7OePXNWN@JJ(}Vz#uYmfLYZ`%}>cI&qyO zSXtrvvH0$)T?esp_|uqolLPZ<qimr5vD4Go4SJ6RQp;6iK&2?!Ern)`VGQpUqMa%% z(O$`18i;vu_6R7|7u<De#$+C$e^nG5!}>9=Vs?x6NWU!tvjf}G3HdxK4&|eI*Iuj{ zIU2b)hhgFM;aL1&63(nxEw16@QKR)yl{NvdZa`Exd?}iAqe<iq1po$mCkt?B#tdXW z^&);AI2^w{H457a1l)TMaUgYRbLRCLSDK1pE%zQdg58fji@D7r3FtzwwBIne_8ycM zuM9vu@+L$ulLtclS1U_!Xxi_{Yke;k{WTo9VI8skvkCAPmkOO*J3MqFn^-GhAT`+q zOlpvJYMXB*gfO892vG%0xa9Zov3SM)acj3w93;eVc`a(DV(O1#QXN%8{qni}Qgs`d zkW$%qx>a%DdBuS-8!}kv(i;D~h^3yFYUl_TO-?}}s^|pTknjj{{~kgB5QwEc`k*v( zE<B_ky7Q01m46u3NB6^Xob<)gGI`o+r@1r&xrk^H-G`5nZnz(%TX&&k>rRwx--Y7s zyCv;G@m8WOyHL7qH!AlWhFWlj<oyczo+=JFa<8Fk&k?K~_6%}w49B8tTi}m=Lj?dR z2DfPoCge=E%QRh!>8SL`uDOn$fcNxi>K}c-N8V+7P1l&!^jt|9yho3teD8khBlVa1 zT|`v8b(f%RjOaO{;vKTz$LKrDtHkekRRi(ag1ai=TCoNP#=ML_Xf6*88;$CDi=kG# z3D^!006c?v1OT~zClGiz8K+jR6DN=cLOR!L!&T*3D2<23h4AK|pt&m+zu!;*;KxxV zs*fGOsrf6BKYJcdEy_dnjxBUP9S6#2J-ij-_qcJ68SBKgB|kZeE8$+Z33~=Tft+Sh zNF@MR75@mTmac`1=CSJdQBv2A!hP^KJo%?+&r}FCgT7ZebQnj+O~kUudyw~+P%I{p zJn+UR@X-En9X(9@=MdcV9yfs{PS9toD&-Zaq8m#!3!cG_CNW++*2^kUao`Y2wrofF zmYuYp_QQSbD4#o2SMuvlNC?ocWu?TZa$g0nlwxRqSCm0Hc><ODXkTxqeXxB8igvKa zoqTVUY+<y6{!K*BmG9n5<7U5AER5^YT4TC7E5W78BWSYx|6iKLRNZJsOk1*gJ+{5^ z5tb)Dg87kM`G%ZF5<pH!8?1RK8EcY8U{%Tptmr!w%leVH_~=tO{?8duip#{;Fe`Rx z0ZP}c#(`g_V*6X~V<o*e_s*Uq;@yLJ(cO>}eJAF$>V^!WwAObawe{V|Y<Ul|+dP0J z_x8gdPrZU&6Mn?W6-%I;KFN`ptzRVpz_Q`bVD8NhEV?e313-EHA(ISlIv%|m)6i!1 zRB@m>o--diU;hLv9vy=f&%cRNbjqSiIJYoSj~U*IHf_efX*03!?GLeqPQm&2_C$Ke zyOG-V4(jV2NGHl*k8S90M(yrIW~c60dS5cO40{1PKK~wv({fO?V-Iz>nt(-|kjy|< zNfOkCAx~n7qYF01^+QqCJlabhk^l~4&G2WDds7&fxbkS83s$V>jAgNQOR+>8Bwo&t z?t;TOwlEjl-~I?|29LqI7v7_Bt)&g^YM=x_r{BSRta|f9q;>9z+_v{&X}5>4Hjc*i z_-O3-=yUA;Wh#y=SjZVtC9q&8x|cpzwq+l-z5fl?I)`F;R5vWR(Se*B2+SOvvA*{s zSdsD=sRP5Xoc6(L+CQrwc^bREn}o7$n{ndzRIGpeIV`!mH}Y<6iM(rrv4DVZd4~tE zA$|yb_EElnR`wf#<^3MR)-i9QXz5DY6BUB9`Mx#X;+X(IHH+s}9+WLvi-jp8k=5#c z<hAdK75ArL%_C1>%d78T=eS8YFf$cJYYBLZ3h0Zfr0;_&#eH@HRnuDS$KlLe?D%p# z);%#6iylfucBdY+C+?!XaTl^$-i7SwyD*0y=d_}I&GvS??wH>_25Se7#P)YS!QS6z zp=kXdP>V|hSSvbO&)__Hu|a^}`wQwtzkX73F5K0n*!syAm=@jvvq>MFOS<Z!>xpPn z&b=`d8MLTrH$)=s#t4q^vu_H*Okzg1Fctd_@=a8|b1(LM_$B5&7>^kd9WeD)2Z@6Y z%)23+^xIIP5X`?mgg}M9lV~2NFhSQ7T^E5_^!}+WS|R=J`>}~OWYy-~{NSnFosZ=s zpGEd9;iLitlL{~lW%>DrSD<tj;>^sY8A9_D1vrzn0IMH=1{v+|#>`uzG2`ZF{1Dn6 z8$bOTYH0~SiM&ToV&Auuk<%*~(<9np#x0>V)(~XUxU+5uMGi?qxz~qM-@}N+V=f!R z^<o@z=y3+UZ%RNUX12P6bm!qXJ#!wE(sChAx~g$}Rt8eLK0wS7fy|&b*z)@Oa1n4; z?mmoFBmv~!9D=;-TVVMEi6~k|8_^{O=Fvr7%|=7tc;XDoa~5Ik(=QOi-pj`|>&9qI z3TcnkAAQ0dc+`d<0L?)KNgZ=z24Ln*k+dG+L?M`SLkrpqp_q0{Bz_O3ebM1wEFbbX zPG`@j6SW-fk`nCsd=h?(yaTB>in&?H=0~pW99q{@0)*+egdpuEn#=1PNWCE%zju2O zJHGe=d42lh_Zy>Vek1r{vw(gt_eMH!XznwJ(ryf)y%tJ)BAogag_+ITb3>!6qClvl ziu99E{X1m2C3vzE{_wO}_`P*EWc@vo){NGG_9Xk>skEPdZx)T&1X#J<6A0|SM)mGJ zbl6w(y~GX(wXzHaISa93z-VMf-%IariQjJxNBYe)&KsDT9Lo1c?se=joW>K*_wxew z9KDuFV_<t~>Mah;2<wcw52j%EH$T$8J4T&$X}vx{^zcOm0R8k=@&Bp3h=CzKdtBw% z^TTAMb$b}INDs@sxh0ld%TC)cWYOs~C%6qVLONq+Xa^cZTg(b=joIOyv1-IvRP8^A zN)mlmkA4MN!5xWtB51)Jn06a2T2O0b(D!B21gA%JL2An`NFz!o%Amh9BRV6^(T?=v zmY7W&E#n3UvS~A95i_LGhTc5(Ex7lS7`fvBmJfd#b7|sp{~nBW0~i1twg3P>4m`y8 zr%ux*U4WHOynu`j_tOGIB8R{yofa#V#*x!22`4jh2<S-!EiS^rasR{|I`uLM^ccfW z4~WKeM<=93-;VTXI`yOOz#K-AjBe+YC7;VAN{{GB^U?-WN&jUVEAxgZEW5uiib$2> z1~3AEQ!~<#*|`Vi(tPIK(h_@LcpDy4kt#^XUjEn^QUO|E$#pHT>V79mmad^qD*(-{ zxj{3=KUIXn1uL-r>DQ6l?tWUAXynj_V}`}F79BB{)V33Ib4h!uu*4Dg^VBzVRAJe3 z@7#q|Pd$g(?Yd!3bZ2A{Wk%8(g?2_pU?&2C)_i_4>4aYJfD@<K{1p}A_|G$uMkm~? z@b;KX8+-u)$9$rBbU0)Y(9LH1CA=+C!`dN}_C{)GSETn&!r>o&#QI^+Vs`Z1NDpX- zxy-gh05I>y7W8)nt$izcZyThBv?FRy^Gly?*&SQH{Eqm!P_VXQxPNFSD6`Lrb_EP? z6^<>=!;H8T4$!mPbiwS_osb$u-x<~(=_Gw*(czPIZ3Oj|_Vn|w(YovvDk2>ur<N_o z+}OUfk6I!3FU-afh3UitsnH#2t~wz*isq<gSERMN9kc0?QATuE+9O?%LzGT)Ii2QU zW;3>4v=^_BLR#B<u<ys8=ny(>xVHj7T~sN6f3c!4ufO|fZcZ4ta4I+MxJh5j&s~hI zU;coVcgA4J-z2iNyBoV-ejj_k`wd$s{)(+X{EF=pe#7n`XP{{LdeWtiVduLaBQvZ6 zAs<N#&03N89E+7NyoNu%_zru1{0;e2QgLWzCJv@$lbD=^!>My{aApP$OiiWl`3;-D zoPag2e~e{L64OGva7lqN`rIzvag0vS>P@skhdqrPCIS4t1=bH3in1g7g;B~a?xDRW zPU2{0Hr74;66Uofk?bbMjD)~+I;94-#3I^wJ3spx73(*WzD~L%F;?XtTd+EQ5K?Jl zXVLreT6f3Vv2SAQq~CCOW)_a7&Bc*Ah`pXaH67c&{1JJNk}e<8f!iqN2DHYS_dY;1 zsWEW5P%v{gvO9N2?zN#<LQ=>+0svQOG0I7LT0s)Zd;-}#Izg5bb1^ZOiLJ~K=wVJz zXHMf3oj{w%yn&qd1Zed6xdf8gB$cHHw#Jg!0bDGt*tDIPpZP|(<h7e>c;2Z}b>PlM z!cN1Sskquk41)4f0`VO<K4%_|&P*ptqj9BT|D<Wy{=s;x>Hie6X?^G35R5s*+-pb# zt|Z-DJxP6Awidg_{fssDCtyC49<L9^;yWJ3?svbUeL|`r?HT4^w0%51{xBUU7A%E& z{5UGN?#6)`nIy@)ibXVUd4CPU!e&ue*LN6pe>H(V_X~D^|0{M8ZJ#&=`$=VB`ZRYq z(rw3@ZA9EkF_&g`2(Xh?Wv43}AN}nqD#EE%8<0Pn)@@cg5smHFX(aytj7=|nfaUkZ zVcxAYpEm{)2zJHpi9bRuDJL1Z06X4!pC3?6Qk_pAwsy$V*gEbf9HRL-MtkH~Y7P#k z&&44E#X}j{v@f!epPqvwL?>p^<BT~p{$H^2sh0>4?jXs44pfpJ=Jy?hl1-b;R$IoC z_gq8(V7|xdf6?P4?VerH0YH_A=Y_K4Ahwgfw)ol*zR?!<bfRiG>6R5<VJKu&Mena- zx{({jBr+{e8O}w=g~Ygv@9Kr3sj~sL`70~=X6EnJ?o-^__qfG^RnucdH8&=CHtoc& z=iWpfiCGIt)K81-KpW==RBzah)x$<3`!=QmgkeM95hMW|;Eb;vFF<itF4jNuGKs|9 z327Z%Y@bV~ae8oD<PziWAoZqV;|3C4OT_QGg@NbH{3Te{<zaen3sNt_uzT=mVB20{ z4AjQT`s?<{&E>60>^<eABd*$n&As~4yb%BpbLI>liBhH>Rl0DRM9{2GcafT-0RTxh zCB>-Pa}aAsJc~T)>tfm%OCN|w;j(4iaY!Xerj+`(>800^dHa2sc^jP|e~%)SBa+`J z<kG3M=gV(Vy?G13)ESRks6i$RxwzV7HjWB-NY(Ld-38C;_3*4%1JCl+@GK)*z6!2o ztKeR`8r~&Di&qdW7mo{9LYcb)o^iioTaN^BN)rGtitCRv>;4dP$@b2{<JdQX0FWfK zIRp}`l83;vZ6A$;*1cM;F`LtBMa(7hGIhJT;q=6>v#_LPHv)iQETZ+wCp8kM&WP`> zmivUHC{9delO|9Pzr|teL*ja2F+BT@z_V@}jb}X{n_C+nk()r(o41O_L*rY-#>gIN zY`LqUW-LbGOYdPhoznCE9!OGRORRqJO?Xb6g6rTxY<^-4<}|01n+}t;4<ym&mUEkc z*hgMT5`5U0m<@)3kXMeIjkk&ps6G3!jSewp$YygmyK4`er1kZ=Zu*YsKQA}{2vp&I z#~s<FkFW0<w5U4jtb6AHY)%=$Pb9`f^ZF!lZ$PGSdAViYZCFQX(1n|}VMXj<EWDP) za{_>si9?8Cw}_L)BcsU7_vl==648F*-c2$WyFI8PeQW9rED7mCI#n0}Ko{)z_D58& z-+`4wpGMX#>>4l}TN8)Va~n}ei?Q;V*O1!&E@a#iLFz*&p*ZP{5hRWDBvJE=A5giS z7`n8Sp9bP;QCz^X$HKXJSlQtL>URswq0PH{^h?4UPL-Bl>A#?=Rv&M}JSSW`*`xcw zA#9=3YXOP!3^*6`AAxe3OH{aVh5#VD)7{9X`B`{tB=*q;Q;LdFz3ULx4<E|`Adfz` zx<@QZ)3Z>zghc(9-a%%k2QcS0rdqThDJ2|fq(jbsxGxTV_Y*4VG*rt=XiZ#VO{A4j zw-+$|^>iUhiP^Wj|0yyEoMv{uAE_PgqxtHN^mg5m+3sHYyF1tK+4JmicKf^O-*;k0 zr#mpKV>e{9zX$VL--TR~Y8G-4pH455R8B8lE7pxE5r>ar7XbiM(b8@R!jgVN;M%!I z-iwR*(>(h`fR9_uF#*7l-)1AP)m>Ob0I-lGfxVx8LkxX}2Sa&eTmT!RDz9!8dEKWH z<Gc6o$8kE%^PYSb)9&emSsi*HmBy7W$CyfePwj9IjpHt)(H_Yp$uNz^Jex%DG?HvH z+xOt}kQLPx3)xjHtpSr@*Nl0c1E%}n0c>Rl53L!KxYou!0uM=z40yce=v7tKBUm}9 zBAUUidSx&htxsto_PzWL=HDE}Z6q1(@57lni+us$gy7K&C<T}-|Nlz#t*X1Lz!E^i zH#>E{YR>^|pc8!&6aQ~?U@o1YCF?d?f@nROb(-E^Orqzi*hgvd9Q6J$tcV+gDmpoE z<S0~9E7apBIpNrGfEhj*9npwAcbvbb9%p|a#*y(qVPT7|n0IX?GQ#h`zAq-DYTa(E z7&aC;H!~wn5LR@)8|(UwKu*U8k$PKeWDu%m-AE`M(ux26&L1YDV%IL(U@l$q&?3$} zx{I-b!t4cD-JSs8#t@{D<gk6r%Rv5dpJ;v6a@VVvVjb9HmGp|JI(QhHsZR@-4TBjz z`wmCN4g!EmHwu5Bi5voeEM_31(`5HcZ*Typ+;a%4Mvf&Fz=4G~kn|LNJ684{fcc#s zMryM*Vq7<n?oB8D;`jmBJMkw}@7PYDQYubE#VZ47eEiu7Oe+uU!tVDzLT;CPk-;3O zn0<oj@i#C)i9iNDrW2*!L^?OkUHbLW+(<W@{yqDqQ2c&d2&R)*Je&HEdSe8gfDV#U z!f9WSRM^9blDxIF&ppB?kk)iJNiy>Zgy+y)F6loM)q4*Zw;0A{Jio&8Xu(e;Ipq@o zEN*iT^8OZr1tA@=<MZ#}EiM+9ahmI~2FUW@P^-#uDmM?S`aX{A5Ypp`d1n#$%pjUY zDheOdO_7*MkJG46({FWP`pwLkNbe(J2E6neTW}*IdoGRsUUVG+7xf|g);3r(>NS34 z?Af~)J4q^BKvLU0n!9!Jg9!k(Nk0ND#>900uZ1_OA{?zk2A^{ufQl0AefeE1x-p6l z9NHu8dZ3u358=3CxtIA?^6G^F0TTdpAlmB_rUN5}&&zefa$2}`bb2k|7W*&~p;HI| zHVLN>RXBjCnoda@po9QmS<E2PZwWz3v{~Tjij_V4V@3brST<ldmNM%1D3<qs6f5au zSVgpq{=KZ<P!bh~V<myj3SyR({f6^vpS-(!W8N)Mbkc;A-q{&PKmCCKU<U!fXnqa2 z@b3Y%83Vb6Ip>B*eq)hMI{uo(!8k^`mV3)iVi0lHtmtl+R+mn3LV8e|Js)f66qw7b z&4E$a{LHIRH30B&SXBIkg{v}3k%`^a2aaG1jfGi%=TP4kqzpsF_I+IZE1EtVbD0Fd zEXD)?yIy_+-Vy@<77&vyye^1ep{3FW$s$po-JawIMqpXOU>qF(3#ztkBS0$?Iy{fi zQ;paOuPN-2`4AjCiOt0PGo#ue^TuG3<Otwyi^6m|VQ06y51IGIA>%<O(n#e<yFV5g z_r)XYz9eMyNJ3^0`ge~Q%zl_o)Q4h_PVY%4$s{ML8x~&|jXYZCB?JJ)OV$xTifdXA z0r|e+&vGEkpgpjRBq7(H1BS1>BK$JMVJW;DdA~{ZJN(-$EFcME{@;QzFSG-;aR4Ya zoOyKLTImMqa-o#em<5SLxp(Cv>Q4?a@wA{QOlj2-GrK*&$1sQbn0|i(QXdeMPS0iD zPh+{Cjj0z=Z~pJJ2kGzI@5N#Qi=}@f73S8qSU37LZl!nc+l_5QM$vwZ<~KNN<4LvI zxLtEF*Y||k5zHK1Sfx3pF<+C4GVFWheFAz~U)m$-B&`(ASz_{|*V|sntLF~@Cg%Sa zqK{z7)?)otA!>P0w(kJe5HqqXodtyW^SLYVABG#O=8NhT08m5#u#`^S`2-eu*9OrE z5yIU%Gf7-bBhfm8D4Qtrx&X|%t~tFHNGA{J_axS4T^k~a#AZU@xql7imh!nbhHyuu zIbj`;|HTAUt=~e7LJPr>I*?8xIxVh?5d9;mV{7-`DE{Z~LZVQNL=#2;ifROcNRKRL zC@RgKhc&bi?CNQDU^KQp`vw8P37-HHKfX17BAwj(k6?SsNPgv+NerFWcLcw^V0vKD z@3WBG@gB^je$T%xf=d7%4giO-X2f$?$liZ_FsV0e+)*_5k(f_^Z@IlY3MWn_wd53^ zYbF-+F_>cl^yq5ouSz0L(cGoT>lVvT#yK~W+R@=|Y<m7R6wD^|V#7|9?b?sB{RfEX zk#y7YJqHQ+52JivK0O{p#qNEy5BBrDz+NjO@Y(z9TQu)&NL3-Qy5EU2%hr<W>lN2+ z1e$w?F$o}w-?l6x@MEsPx{b-?)+_w+ykhDqt8s|tW&w%jxz`a;g|)}_&&QE;RO%BC zE`gT)cltCAe>4smp<QS`N$PCg7AyLYTJ-gIC|R}~rQ3I-eD@(idk%^I?_uLOK;sgR zY+Pmg*_i2d`gh^%3~XulAQu0{f%MzjVBOQNz;o;<f%<N288!-81fFb7S1|w}2>|AB zbePj$7;)`vU3AY>Htx!D>>&V{e`7RBV<cI1x(}zb^US^g=Jt`~+4BPd69BX(+EF9t zl8Ly;#Q=aNhDiX6Xd^EqW?axK8Kn#WOhGof&45nPGn)wj;t2q5VD7Aeq~kDaX&YoY zIv_Km6S5*`p~AaxKX3NjTw>}>M|)(Do}T6Ch&l8;qnxl#^ja5W(|g(9bHh7h-o3Fn zHX{v{TS>}b0C0<g-@DGEg=eQ^Hi@P42rL%dLcnnQ{n+u&CpfceJy29E40JLs-J^SV zdG#a{OmHrmm&*ZQK5g1L&7!b-)ax7o>J$9y3kI%(N3oRvVBxhw1z3_a9M#(oaAOez zfO#G7=C>rw2C(-<O$9iN)gzyylao}2>x1a^5N_yOa9t$LKaGn{??r9z$F7(Dfx@M$ z_|+Q|`xVVGNCwI9$N}yg<L1s&hkuxkg#pZ&i%ztlmN@p_r%+Cin&olpUXmi>&ZEy0 z^duZ!!{t|kic)q4d*1y7i~in{i?6xN20#GdQKSSwbGCc<ST4Dx-WZCdeFXscgy-`n zGW^JFOjRTS(A+F+(+vyg@W>5q$5jBOq|_3yqw0ZY3Mxo1-!bGlWRqAvhkk421AS4w zU@0B9B{VNC!_i)IBlU`T0k<P~^qT|KlxwVf-3DyBJr;}pLh3-XmRLoqp!>v8`Yi?k zPa>PyVF&<LI)}i$d7BLDHH}L(Cn&K73~ASs-l|gUdhI=0>nLudPVaCp&SWj}RROfd zc(vt)0)Rggjj;%|s#+sDNdo|OHMPE<Fak0FSkyBaWotI-E|(mKRpEWju9D8sge;GF zgugeJ^z)@%dXU)uEso8}!qKc;dR&NO>3KMok%yz1i-_jq$eejNl0BDR&%x0->~S8B zWzHqa<*y&5$Kx6EaC*rKcut-|C7oD{M~uOoTOzr`$;$TKvDi5fGg{q_)Y~G3;|eX% ztbjI{cTYTay!9z6)@%aKl!-fZs5PVl1_VWO7hp9r0up#-G5{daPnQ7dnfpzf!m2|@ zv6)VNCIN5&NFGKKz<v$@%m~PA06820q6h%q<Pre$16V^Uz+wiTe<x;->V(Dj#UY!- zZMMM|a!09fWHfJuoNhhw$E)w6oB>>6DYuYoo|4rpdO}*oS<ZwbqzWy&xgAMlBwdBK z!>J#qz*Ai*eDGCR7+#Cu@<Q9Ns!v`QdS7J;_J8^%7Tpxhou6_^v@Tq{j(%T8_>ly# zn^b^#w?uLWo+bSR0GP8z83{b34S@Yo!Hj@2vAFe}Sp3&OEDULf-Jg96rMRR<UPmoq zNa=xn*fwA^ourY-qTgDRJOXYyl~tum8r;k&#kBBnErvz4=CP68D&4RFYrFNq!oQL9 zc3U)7699OQAA@WEUhI7IN#rsEGp*6;gh6m`+Ny_|*Gwm84MSE;5r_%{09wBVH${@P z(*kp74;K<|)B*tP$<dN`&l>>#AJP08i7U)Un&wJL8>oUrzzq@r77$Y}?3qLWu)!zj zLU^e$04UzF1FK?((ECa6B~gE2*9TBKGm~~@87vBp{5_9pQtA%55r#?TkyT0J=`uPg zvq%?X47S}l2$d^Wpdc*^YaV|N>8-nAHZfNA-y<;ZZzRSM5M<pKLwfM1)b~w14nUlA zhA~RJ1z6GXAs&sF(L4$}pB6TN`lbLe2Ypo@I)Xp?4(B%^bC^#-@=#Rn+z-|5#_1U| zF{d-T1t3Y~76t%s!ChL+=X%YEXR(y2Pb31bzON5Trq4!kYBn}L`2sTA+=bLz!%5m9 zb&1BE7SIY=_w>T1H{L_VvX#K;GyJASL=4IR7Gi|M6Mn){(vO*U;hgZcI63JT?jzvU zlc<=Yi&b+jMJ+>*0RSpHP0LG=|JgTKbZaZ_0lDyjBor@R&##TS`bcxOXSgr|W{_$p z0N{YWXUuy}3&?^5fTO?7!je`D0D=er+GEeB0sxGplty+RHpWtt05%Z-Fli&}rVy-4 z90o5F%av+jmp3I1QBC<w74x}gj`*S{i&w0`@;e?P>5Ulyqp|jB0)V5(;oZ9zyN5i1 z1vfkRHQ<`~N8s7C#T2||J_r;emyr2@)eOp&rPwV2U_JprW`}!70;m-LAbIxxoihNK z#Q)ogiu|QrwTfASp(_~x^c4WW-Clbqp>*9wOS%jF7J!(uY9EQQ{hy@MErLE1hMZel zV{PJ4oS8e181J;W3gq|wUY_}d`N(@zahqVau9?$Zsj3mF&rr2;?*S|u&hAhnu;|)Q zZftWMIKc1VmE)&zlo)2s<1Zk)ZFgkc=s@<3Es$|@3rr7;!rXh~u=SnKQMh`oyf61c zMB1t-n3soT1OW30-7}g+Vh8Dd3;+~A>B(v%Z4#>v<zr*N;anPF&PNOT4n@VTef(~? zfCIoi+`h4xPWJsT2moN?V!=R*==Yibz={XrQM_~+zYbMSognEc2kS;Zj~v=8sW+1t z$}HT>noZ-%yQe31zxe@5mMr5zEecQODO7>{pQj?P1*uiUjOom_@#M>>-n^6FUn|;G zl}FrPGbuvlJ`D<AAFdv7{{}_(*<dQzs=-gv*rNEJ$m`V)MJqSy!AD+_e)bH1h66w* z2Y{gj0Q>!BmiDy)9G=QlfV)Tq2qqPvJ$8QfodEz+KlYl;0hReju;uZWkw#Kc#?7I~ z>+%qeP5c?^sbe%Y7mrckefM~+_w+7RrZ5m0h{V|Fv53I!=U=gaKxhF;09m)S#`@>p zg!kA<c=qnY4w3-o-5NpCMkrP#FaX$E<6yI9mhhKgl1WizBmumKT&V)2cDfe@Ig4tu z0YLI>*K<|_OaSnqzoWQjs%eGmgv>dGNdODEuRDpL+y=1GlH9;-^zfFH;lLN;kxdhr zbG?WoV0Wpx-5$n<(Jx^4r(f|C>GYJDD4dpw;_N(rXRf+jmV_W${JSxKTHHA4efthz z1*rfFZ;0Sh$%g(TP<`m2bYKEEv?=+=aAI~QR*oEvthRTMy1?9ILoxg2Fia0_iFx<O zVedy@p^_v5wM2LVo|(G{t2#WyeYP`5mDoO}eiDG{CsR5Hfc_)_&}q%`DCDI)N)o_6 zt^%B%J`>p;??LXh;ldU8#kaW%P)(=gS{m2<n?kwtwD>_1t?6WEk%D3a(<5!flcXN4 z9Q6V+I(A3eZL}GQ$+&L-Ni7Sy$C7^jIjUA}gi5Lb1K6_F>#>~HE%oMLE+*#$ccRTZ z9D6_b3der=4QFP~Mj_4BnOWJ~0LCP?^6A+qroYe3&LYY{(Tp?{l6cP6cEx~^+|zSD zHw=ei-J_#WM&QM~^0?%1NcsWX#;z2DvAF-EaP8UeH|3j_HCO<EivS>%0N`!{fEN4~ zV8`d<Xit^s`$6;T*Q0;SDslA3-;vq+F3w1EXnnIgbi=x*#$x}slSti4N8!vlD4a!O zn4ONIS&V4k&CDXop|NM9h`l~76-Nmuw~}7I@a|s7C172^t^vckU<*khUIL-&1N*UU z=u^m{ab?~VhLz62+y(%1)S)R|x{z%Yi{zorfTyaQ0N{NrxG|dBf|#$u>8!lEBmlOv z-#K3Z_&d?c+OpAmO{W-tjsw6xe#g!%>^xAXR|-nj{9!PsIRZ-+x~F^h9&C92HB57K zrVZfW9&aolg1O_)35Y^wNNeN}x@U%U#?1CTu=4GXP{n=u%{QrDYwkBw*47HzY)gla zAqjv@UL@A`ABl>?2jso5bOq)5g&Uq@Cs3H4jnzY*L|U7BFugee(oHRRutr93JET6~ z#Qte%P%Da2G;bbOQ-7FqOXh7+BmtPN0qdPrSFCpRp#ua=L;39m8~Y+I0Whz^YVHX* zw?lW@U}0E5C(N#w-yr}f;$f+4Mm&v0H)_#<i6~^T098Ud(n4RE1m!6>jpBI=dH#U3 zwzp#@jf>ema;_ynXx;(o-Fjp1gvoHTSbAch!xMi*R=4{wn*kxIXUqpZn|?bpv@PaD zwns)(XQW4WCF+Q*NRk#DB0eKEn$|G71Lj1uBW7retiV>>rjf(c36iYlw!I4n$Nxkp zS_P^#b&%Abt&fexoMzETBk)^H^WdU=1fPt(H2{<(fP=r!#)3BYV&PxIFh8UdwtoIS z0YIrP0ceI!Lr)<#qy6y5b8jFutRqQ9tY5*%WWEl;ZIKz?33H-pEHtk4=ysekXgnEF zosdc6%ZltuW21jZcEBtL&Bbj|T&-l1+pJq0$RqW#WZedCPpKdP*#77f8~|8g+p<Ik z09*B(Ml~}HD^>tdjW`Tu1l;-R2Lu4EX&+EunIll$DgbLMh;C>w0GLkyc%sujX(09N zcY0z>May5u97y(J1&MnZH$`)Yk(`9VDBiGDx?u`kQ@e&@7Iv;#x~ovJb2m19G7j_a zj-?IR8fhdBveS3=O)MIWMVE#0K%rlnwMO=!$56I?n=C-2nCuIxCC!tTf39*r0l?@N zF{^ny%)X&5mJb|-(j&xNYPC%4VY0X~5zj^X;PK-mLeIxa`dntayD*0qa2BEbkHM|6 zYRqd;>GP-aaxnkS9^4^hMnFq!9s35<qbKTp`YU=`C=UU^F033p9I3ZNBAtLLheStq z%?4K`PSFXJ-sJ&gkaUzD*dAM6{}Ar7B9zkxTk*tLQb8iP!_WNQ{ZY7zBowzuj6wph zo=8IYT~t9iNs>;^T&#KKWn?g~x0_qj=8Wc1Z7T<jKnaUxV<=rvz=L*{4<C(L%tk^| zS^AC45h#qSC>b|0hZqN~Q#kcGj3}JIf<1<E$C!*8SpZcCkMx^GYdI^Z6_z}dfI~n3 z2Jfi?4!$mV?s<+L!NzA_!;HXon0Z4K77chD)yxgr>^7yEGw8_te69){NJ~dnr-zVv zZ6vZCw`0q=$pir9!q-7FIO}l@@|J?6NB91G>>B?wmXL}%E2I@>+!nzj{L<Liq_Ynj z%j{ce47ZB$vGKB-qjY-DOnQzv4l%}N@fB$V3@k9~3{$~KTxY*sec&LrjCcyE0W`n2 zwL~tnZEV}Zi~OjXH>09j?CD;goCM+zdbY9%Ti*Hzsm(ed^SV|@yZvDl%&$`gfaKly z21x-vcmJQFmJB>lRU?zBB0BD(|J-G#ad^rMEFba=^7=o{gLT{|3;0!vSEkQ08`AjA zv?BerPZyzd*;*X=>38h>@Jp<F@lC85^CDK##4aNJI6Gkoavm9l-IHg)d*U?ls@Ie< z)<^<v7EibZwYUiRX_;6wbQG2l^B?%(S5%ZRQN3DRWy$nk`kkvP8Hhw^<<K#lnw^c! zFTRC^10KWNA)|3%Y9`d;ViMc;Vf&ZgVBRAmF?ZN#<frC{1Q-nnr*~_~QHxJw@8l_% zKV%g0hK#|!>FHdIWWZUuZ8tW4@FnJvWVP&x7f>*FF?G$wPwRbj0<siZd4rz7-ig1$ zb)rbRT8P9Sik_85q+(Nf0F;YVp5r)~HWz=q`XO=#J&r75{{53Cqx$q2F`Z0>sHleL zKt7HU5bXJK9M+MPwt&W(O}cDO+yKmt8;H5F1Cc|NO@C)e%8nhtU!R{c6iZ38-}J_Z zI5_DSRIFNO*ilRgLRr$-lUehyl+=`58q2ote}cE5P%tixustt~;vd2e<U;Abo!Iuy zr=&6s#cJ9s1*_L_1{W#mHJ=StFGizC<1p_70Y&BdKX7QuG;DqE6D)u7IpmV$#m2(= zuZ@X4vT^3dJc0#%2J&%dB@M!Snzway80`J<TO6A<2kw1`g^#~1G~+!}jN`w~#G*%^ zM$Ukzcu*5dD5Kv2Xx@#ch)dNRiD{M$yk$6<n~UX7y?_OMAHyI2Ahm7(UUM{HZSB(r z`2?5%AcSb0pG44lRTiyMjaH?`ql(l|YH0=BM+)FNe3EB(75>di4W|wb1bD#^=A!A5 z)ohr7rJQ7g!V;RWGaNvwj~qwkq2u&;nso4Lepl;JtvR(+b5<9{Na@7=+RMw}I&u_l zmJGD0kUm}|%#qSDNed6vOx>z#azSPJ0hsUo;Zvy2Ck82XNe2^!i_29<PonzxX(-Hf zSV6;70LAE|Li1Klz~-XwV!A2=AbxVwhGyxtt4N=B)9Z{e-P$!Z%`eM@TYZeiRaP#v z8dWRAr0NBcj5${gKMeX_rHE9C6DLtg5|2_+%&+FWT53hFV%QQY=(`IGX`Cl`;@8T< z$7nr>4$@~25FI?h*GH#=#|R)#P=5<~(GV8+1^(UQW=0bq1waY+T=&TnJb|l+0Gqi9 ztL7}Ssx@7@xW1%4=dFZ7>W%Bj5x5Ho)Lm8LHbdIfEwvkDp&HG-SR_YLL_k&v?b(xs zs5*Rt_uV=cq5~&TMdPeGL}O({d%ODRDGpQ|^tE6wuK+84Ys_58X&qh1=zH@E=^&!M zc~v8Yo+(4NQ2@kKL*Mc8ql(t5s)WXPg0HogWg}uiQD@KIz<9XDxd1?tyxOgyvvQ{Q zDn?X*=B_9$^orTdRCAqG43|?qcc)@q9IvV+t2Dc)no=q$A}B<2C$5n;*__>8@l7Kv z^T>GxQweuc)dCde#IUNK=utWXsj|G7+nTr8tF5+2zTVKxx?X8HmpSi5j(o4okM9x= zC=h{2nq;ENGelfjc||HUwOR(581pUqV_F2g#F!Y52(pn5J&H)a$sL_k=|?YtSu3BW zdr6xAZO+xLn0)R%T9lh=tgj*hT)c`zDUWc2c4<LT?C?-TUVjld=CxGrF#`bmIp)7m zE#1o%)vI4;y0tyvn^M|jV0W8SZ)<y#hlWcFzt^kpH)ufN)$`EGJs{>!j6en)DT-8Y zHR(>ezk7{BCSKo~BBpHCiq<QiEW)C)fL3Eb3nfzOv)x<`QUl~0SxDgze)p?M?DtVq zWZeUmqr6tWNmUJ<-w*(#B|(OsswO7%n(knQbRZU2ubLt^FZ%^I+bEV~ii)1eUs3&~ zR2JD<70nl3QA~w2R8uVhBM-YCQ6`fxYFCi_1ktWE_0z=D@Z8#bgBbwe)w1>S$#m%+ zX#8wYHT6W%tN#c!NHDRe$EU4_^w^V8iGs1cdh$z;USm+vBjmKKb{=j0bg9kctfHts zPE4v#u{Ig@q>W24l38lC0dz2uDb>8P!jQh+nk=V!^;BJoxkQ+vCEgTvBvl4!xit1r z)f!oS6?2UME%l?meny614a8KV7kYIe&6hxrfc0wgCjd;*vM=i(qwPkITtky9xsSh; zqALJ30YJBBu|3LiZ)oZ4>%Z3~)jLdB0ss>k4%Y<$s!7%M`gne+s#YP*qZgzQ8&=UL z#JH$ajOs0lYCx>2S|aM8XGrzJ$ae2GmFP6;0cqIi)zV)3D?_Fl3#^*5w0iXC43SLQ zX62$XTZdb+i&q|kTGm&W$rM??|DdHKQ+?-Dn?qAdZ%f6QnrX!ah$xntd7AX3>S?cy zdVAVN)Mm~tr5&$j+t(~)penW1Z!oi}d0tILI<@rbrqkWBk@Nztim8m7V)Df^r|Xp< zqt{E6S$tHF349dOj<A-OQ)D`Luesi{s?=b9^OzJ<?MCxD=*7Iu2b^~8C8ah!tXWko zz-b65rov*XpSTg<>NxdRHxCg7pA`U1;{W5)#9m7YYipl$#~#(F)8;h?JNPZRq?&5$ z_^A+FTe;;r>n|JMt!+5BxdKa#!qC0~ro|u2^e$fzRIO>VRO5Ny@{VUC)mrJw@48z? z>!)anzlwf}?ni!Mn%dC%?S9gqdwt4pDZc*Ds=w0RzWygQ*UbL}8SCkSRvp>j>viyx ziW;Tq6t(sml*S%6^hnj5RY{L5RgL-sT5UtkwOX~5im|TmxtDNcfrUfPss@;R|9`FD zmQeKSc_twU<)laLJA4L9mu|st)8=EsPZ{`bQYyZiI1A$@%))p^99?x-6nz(+rMnxX zQyS?;T1rYlI;55kX;?zKk#3Mq5s+qSk?xZ2?yhgY_wRY0otgdJJonr)n^x;S-WFqi zLpJ=+KK$+c@c8{|CATAayOu6^xtSyTBDCj5=l7_qQ&#;Y7h`pE3%9EAt0Ur%*FVzl zLih9)k6d?7O*)^i=_jyfIdAl4<yXee-|hQYj)SijP|NOK9(lcE#RY7TI&u|wO&R+q z9M$r67aRlbdoW)7Hg$~;q<xh?Q|U@rovmixJu7pEp8rzW%;|ePfA*AuJ>XX7*dv!z zW{=*5(CjX$*+1Wxt-I~cn6Ze?1v+xpN5h*1=c@&0{ODDZf!&Z5*45YJUech_&Q+T+ zeIw$yMGw~u>$YOQoNMQ9Pwth|eSwaAp?mMdG<<uC)v5W;5+Tb=anm+#<JIvDKaoL_ zTfyd%ew)YlC&8y%54K>@u6l`j@qn?}moP2mjI6)_)xrLnDHm=rckanwI;JZH618qK z9F@<TIQ*xAv4+TFYiH*gSuB<BWo7xwD-;Q@A6U>!%0nZqM{^irW(-C(+JuEmi|5g1 zn6&1><^K71v+<PynLlRmM9G1FM`I7h_}8-TL^RA=Lp=D<h<9H|UNy-c=%eL!tKrA% z{EP(`>3b&LMlj>Xrl_8mK4)sucJH5Zz4(gKe(s~GbQgWUM2{nMe`$JkA3v*TJrODv zc`Gl=U2tlj9!*r0w102$VmNW-Yr*^Yg5aI|WA@5W#<Z%>gL|WMVKHK@Q8lC<*UyG< zU&gIINt~1UtuP4p%Gdgkz`LFESw!)MJBLzlRRafi#K_!FX>E0IMKj>T*0cF0Cisog zDydQ@soK_7O@uSk<f+KEPp{zn#okMQnMV48+pyn}sWnl%3#<88r%vLQH~vybt9C}i zrxW5m9ZEjpZOL~6R2BQrrd6AQ-x?!|PNSweQ`N1(F<HJw3r!SNy{EDYX08-niccf` zgFBfc`sj@vG6@rkF3)@SDQ13jf(+-^nBeWLPF&iES0mP&Hyf)*>iQBlZ%nHYeg=TY ze%;oJ*YQRFSdIN56l*6vo#NkW$Wvgw+ITQcW#57&vm}C?|GXSmFxB4UGypH{d@9|8 zi+_ng`Q{04#rIPG>2i)@i+wfHUIc4xJP@B*P%r4h<u{v|S-E~0voIhz=JG=~@<)a} z*phFoqQZLTZ!cyLuruyqUj>-pz53w15fcGQ>s*4=lTU}!U3{;XwcOh15WCj>!n07^ z=&7N&ad{|ACBQ?gP$7zUPI!B@ri`dq|K+Y@6v1?K=fEHfHElwU>!eloQ)`d34SYz% zX>)qo%j_SS2meI{(})L0<cZq`l(@nHL2qNxSHnxkUjzDucuq>+J#+kwnbo75&KKfq zJzoq*-Y8xz52B!1t+E@TJJoj3Puzy@_MP%Y*NY>_^iFv6O`5a4I^6iaBV!_;s!~@K zCmtz#JxaK~{j^}r-J$Cp!1nxxX_aYZDEyYsV7Tz+bG-CnfM|y7q=#I@03h`GIk(rl z7d0|GsiyC;8Dk@Ec6DQO?eLhOcUE7#q{`W;NjI11iiAEwY+zPPe`);VO%DBmE8gqU zT?fMR<NPUq(k5;vOMj`@z#Q#AtAO;JDRIXWeaQarAl}JayEY0d47hG@I(lBD^?HHN zA$>GyI~>ti@v$CQGP!r$B<J%Yp4%~w=a`CIu9vfGdl7j4N#&WWS4R?&eJLiNR<C53 z%lqbLv=TnsGXq>><sxA1|3iJePuryD+P?@c8#2dV1u9o#NOm=O)3GnV*-|FF$KRb! z7mg=MQ+JZ#35v)MqS$ccKM%As$3y(J8=fJLW>)i?8VLi{s%FB2=VRUo6;3*o^cUjN z_h{~LMc8Fa3@o+cQ{}{5kBhN)W}Q=_8aVJtCe8P7Zxo+?jclDFipT`apCVlNi|jYh zzmOfiTO#PnikL4}A)tmD<L9E6GTE3D<+>h74s=9ax042v9paNK#b?z(P|gL&nGSyg zp9b@ue73=DYO3P7N3KUcy&j~SI}oyD=7D(TP6@@tv{uPx{(=BAdl}=z`%?rN;ceY4 zGlwmo-j>Ky%rlx50sh^K-}85w`1pKLwDFe11S!yf&6HA$`*ySH`9<VEtK0#`wNLGq z#bTRF#Hv_Rmy5gG{w9)B2BY>kbVBl74^~-E?IU+SWfHy;k?!k<ed1%1v<868<#^b> zk9Ypmo9BsuHCE5(80R}v7sgrp#i;H&TTf+<w(`MIlMsoD7ThWHil|mTt)`Wjhy%JY zB;Zw+_h-jJXLGg1m*gPhl2Q4`B~5EQbCehxDHH&XbW<jBa0&!rtdec=k`}=XjmNLH zr)caVy+jAXQ^^^OsQu{8^E_3}Tv047dr3Ym&D-Gyzv&M`hvJU?^sh%D&TMW*zyuMv znaM@0;^ZY*n}s5v0vEjz1krf(#^!4T)B<44Nafm(wMf9Cr8`P-Em!4{6&GFD)ZG$I zS{64Zywr`@lh`^E)HbudISc)UT=+~j+-n0$O4E@GUt%!~4e!kW@`BaSN`N;|OrVx4 z4V!N&UBO)U{COneK2tscfk3fb)>HI#6y~7Y`6h@E$uLsoN&p8Z!8$_;ECKi2*3Uq4 z)2wj#7(~(EfjSFFQX-5LVhqZ_+jUscW+6e(y$S;G(-1>@$N%+H2TlKo^|&4wXIkwa z>m2I|Wk(hy@l;_{-E4f{KvCB*7Zi!BJ|2J5kiuEpI3@8B2`7tT)TqidM*M3z$yoan z;{NBK8ucnEOzH&@pvok>C&NqkL!UmRsg=2ZA&U)upOUC;{c}M;zfC_8o1VmTeGJvw z<#T_;-qpTlL4=;~<97=o?W)yull$0~2P*4(%%thOh=Z(3WfCoP{OKFtJR3te@Kf=r zt0LcEg4U+r%T8xA0)Y7)fy*{Aoj)u>m;`zD=V*#h#b(1|*-i&WB_bOf_-N?YNamO@ z*IHt^gJ-79zvpq3wyPb%;UWDv{2$`2gd{r2k+yG@ZQc9EdrryU!UO0L4plUWcfBvf z`~-mRlIt2tB62K4?+JUa21m}UKb`>xPny6vn}zWG=)+2=|7bk@Xk!`pv@@U_6CguJ z<ZXF&avlV1X@n4KgF}~+(w_6NgXpN_QhgrGw@Pp0g*^BoBP*13!pe>6W$gbfgO87! zR_oU<A|w>w<ogRiiXmTbYQOB7_R@=e+c6bWLARfICP&s&OU#J2u`Ip>K|+L~{kLMo zE<J{}Kq+Q4UM98Bp%kVe_7oWype|CWZj|jGzZ6p>q^I8F2gW+j7*aS^L+j9fUma_x zPzKlri$R{8PUspy(15`Qvuk8v`4wHa^NWNxqiCR|X?u~NoH9|7UJO1trp-q2t0r_f z4V4%G@D30G%>4jqskM!FD(~5~Bp@ySv^sxg`59cp0o6#1hx|mQHRDH;&M04dX?t;l zeW*x69S6pG1E1ikiAaFFv>t;oDPS#T2J;R(0DzvL{N^8~Q+ECQ1*pZw?t`%~WTKQ4 zbOg_1PIzng^87(-8j8TK&*z7UF3xZ?b0vUp-xq*#5g>iY{OF1W7b=Xy?5KTrO!C-% zCT_jVjaxY2A06XX+amhbcI40US!2o`=L?Yci|=+-4=aEKSMumoWeGc9r<+*=H1Dn@ z!MjUjX7wiX_F_M8#1BKRp<{JjR33;Y+KA%E>N+#Kq|d~tR!ju}WaCyg1P&R{c&FI6 zk}7nxsQ_&eJx)4pAhq5KV55_biV_tq?ee<&)9Kt>tF?`9lV=nY7{zIr1VMLSI$K@< z6K56ZOHT=x=Ut{o*1l5kepp_(g$=2Ls72#n@EGER85i2xr$zebw-b9l(&<wsaw9*t zx?=+QliLol*2GZ<H*Pt|0qe`}cC-?gC-IQJmsmTQ$F6^zo!={KHk&~ZcdB%3>P?&v ziC;lqlS$>v-}yKi`)89A;fCG)DB<>ad8_3^Aof*q;(a~&imn0FX&K7|4sv=}^YR$V z1S%rrh|Wxl<$v=?#~h8rCMt`yvO37X?`U58Uf*aFBiVvWTjoLtfb_>J5-Xy`7nIUT zb(W){sI{~KlAD-j;#7P)tb=halk=(`o1-gjOfh1Au}~EGB-<%hPZe&ODcv6gL(;2@ z?zOG6ny}otUiRZm9z>H6@E&9P5(zWcE+X|oL`0S42hC(~o#%)^3J-IIe=dI!J5S&G zFRPb%7aSIN<M-(DR44g!K_dGoj=v=hb7w`@vaah}jFjuh4ufbLd=_0-Ysnxe`|_?h zE;)U*TCXo?15EpotO2KW9{{X?+wEd;kx{F*RFmg7jB(1Et3kAV{wS0Eg+gFGEDWn2 zD6}SF{sU;TDnn5bq@0L#s`foP{*Nw(&l9`dVk4D9pF)#stbObW4m}9+1<O!V0{G~A zky7T3L*Lqxmi?0edq6a{wloJNVowoeHtezNQf26$cF}6f8B<*Ql}snqaQN#;wTW5u z%UJ~R9}0qW3%qBtZk+D0EK=8?A`j|UBl*fFc2+)LjH~o;k_QJ&g9g^(A470})Z}<k zA3w=vY?A9==2>d_%>t8!8YoIL<<Y7OC&Hl6j)2}U9e3T1L5^R*oqq5lb|Llt{7lwB zHNCSB89dxqF4+c;jcbqo^}TbmERoa8#*97hcR)SO;tVxVYf*T%x3I`s-mcr>&4eAg zH|qx!EHP3SxYNQ8lTwe~r1uNMY$}4_=U>cHOzN~uMDFtiMM=mzXV5g)`iHt0JY`9| zzqHSvnIcxLH@6bJI(m1Da-Mf^zq18ZsU+@!ziY03=hH5aLIrpv8Ke1ab=i>J``PS< z*$b@yO{kLjz+H0(j#UK9es09QT#i3CvNQ9Wm<yD3X~cb$lEG%YaIO!J-tFxt#-SV- z@YQD)3uT%PzRxD&R53o)4372;Ci*wCR3;L^w@H~mzsz0W=e64&XZC4Pqv_v=o;QKd z(^%8M8qGd~7AIlej&{gb^0gTy>(uY9wYQR>ixda>hpdL_{p7Ud10_}tp^+b}+3Ee( zLKA4J@4}0xTqRWXLVg4~h9^aGf7%iv@uzrygh{tUC3t1{F#0Vmp(F7XspM)qv3K<y z`LxFY(?or}_T5&6P}AXydOgb~Sj-g8joTn9fh#B^I<H73iuG4ts$tHVs77pBo0l#p zFS=JeNjveP`*9d$dyb^pEAiRhpWj^GM@*jk*Up~1J%e{!L#yW_cf8TBHdrwd#G1vN z-KW1&Kdz<@og3ve+zRBH8K#(jKHzy0ro&DO80zZ{u-t5oAiaCaB=vmV%spS!$LG4~ z<2;`)y`AtF2YU+Mkh--$s{4o6=H*(_U{C$KN=Xdno&)_m9}q2>h0wE?eu&q^4xMU4 zmZgZ?!OI@D7o$Otla}v@$@YoMZWW1NyAB%$xU}dKI?sg6*&49P@%Kriqb-J+#<bS^ zbO!PfiS?642MxdLyY(!vq(=W<$qvyhQL5U!9sDvi?*HyfMR(C!ZYR6!u0u~zcGvBX zIg0GWZ@Q!WI!#UK>)hB0Y@TmJ!?4Le?a6>pc!U$>ThB2`qh{YcOcqm(2&@d%1jN*I zWCjUcrkKsG&@r>Po=^QbR`(3alrxg$OYGr4@LMY}3eKtf7~OM7*xRqIU9`6M6OYaK zCt^~7>cG;e3bd5_RZ`<M)mjXRj`yumD8;*46<m-do73BZnl}5qIoeH&Qa<>|4%*sC z2`aEUstiOOFRuJcIe;y~6u<8#F9A1$Sn8I0s6xGaoo@+v66zTKV&pe}m2fW(0@n2L zdN!JHYwm^MBrly9%@`+kNaBK~7{u@9*ML|uz4Y5Rq7ef*Psnkx7>P_R+KBO8ynH}j zji93LkwmLQB!L%Jh-W&pDwpuS^j^cK<D@gm(}8m&`?F^BIrF7zX+i&T5^aZ>j7DWw zWF2q`YtcP9_E76*U5#&kVQQxLi*F2E6iDxQ7QZSo&g2V>I7SZ(<tb{TitYw~MCSz* zh#b29QLb0g<U8k*eeR_8wrI?)-CH5K?A{ghtl#ss1J&39XQz{5<46D|Ks!ndWD#Qm zx<-#jUKLKaem#N!Lg=G6((HF2Btf<R)HRz&s!941pIP?b=W!225${63T^WpkC-z}w z<4`eVwfy?ORZL+Yuj|u_A7b6P29oEr5|(vlTrRB@l`xZZljZw<25G?B-jLMQC%k2E zj2%hp=nh&`r94VH^U=e2YRnQ<v6>KEw*KB%0)KMq*<ZwE0daU-j%yJSW6l!XIj<ha zNYo=pkYW(9oy?(pN0Y3&XTf2MG}8qB4F_?u`8w<LjVMA|Bcv0_Pfgd2EfKjReAQ~S z=RB#8wy=p|qD7vG?pK|6@-eCFvTK}Cp_G!gBNF@wR-^Skqo~l1bp6R5fdE#5W&i9y z2>vyjN(MLAAGa@m=Mtk{StfsRAyo-8ZXTX$s(=3EULBl1;s8eigv{Kcjei1hNB~<@ ztWZ}@KP>tBVTGP$g>1%C*$On14qTM@!4DyYiaZkPaMJkW<%VcEe(S7uiz(QtI*eGU z+f7$V%kLwVk(pfPGu2*L4e`b`z02gTnZ>@f8HM4dJisGk=k|wDy+&jG#$Fp{t@|RR za!)D~%93Ew4<J;mhA^_wJLjQ*_j@mEVtdMh%p_jAt}h5Jh2W$~0Jrz-d_eVARLLQ{ zsWiZ(r&w$cUjnU*ZRh<COFg6Dc{0FDJdI%U^p1z=XAJRzFsixn9oZvxZi1NRm8OyQ zw6JXkxnfy0)_JF@{%_wAtx27+OD4N(CiK7OgTzx4Et<xpjE-;ssn=h7z6LnSf)iPC zW`+<cx)te{grwP}W-`THuzlqxNqHnd><}N`X$AzKPg+|5&<pt;j>T}17VP3A5u<}E zMY$F}e1OEEl;uJUb#g=t9-v7q#_%Kr&z=&SmRz&)xoiK<@YEd|tRTD2{nCtgw5S8g zj|&Jl@kd{)7eq&0mY6^QKJh^TAYCotMpt<QeZI~;jw5+b8-Ln65U4PFq=tvcj~y!1 zfz}d1kfGzg(_ch|n{VRc?@qRc*)_m@hquo#q+0i-FWaRpry^eOY02$FS8wi4UgacR z<kvckF+O^EcDnZ8)rk~3xWL^@N!kbByCw4iG#ZaY*Rr&yB{;VO{@(CyE-&=iVQmvM zl{j8IF&H2f=N_=f!e-EfXH;WWW~`x!S4ub($_04#|7XO>FeA>&`u5e36rewc;5w9q z3yS~<)<B*Ja$kW?Hwl~ZFQr)ui&^{B>c>Z9pr-699TS+vb8I+ID_W%cdc-dIO5;cy zUQ(`Bnea~2mEksbaFC@?>f77#`)YY^`$Y=RWy*>*^#Heje>5Ab3F%r&JuDXX*D zNCjSL0L1cNITh<6h4p&LCql^(DJI=(RXB)zXuB-=MHAa*aikfczpVU>RkapaIedB4 z?A=F;1?{!oeI8M<8`luIekDMmj-L0L@V-jQXfllzK7P^tO*oZ*8rJWjW6iE%V&Lfm z^HD@9DbVH!FF6H3>Mq{;3OVq9<_1uR2kB)(E%tRcuz{<QBoh)OubXtiN%_^jlV_%? z?earIh-!OFdP^wfmVTdRD;iGC&x`e8Jg2%^49>O-LfQg+3vSY?&~KjxXuITtlx|MD zRo==haXfRIcAq+Fw~o<*m`jUlcOEf-js{R(8BEpz7H9IbcLV<|#m`}{c^#X35flOt zi>da2L<ZSZ1>uD57=__NyS>d*)3Gjmq}93k;jbbdK>W48_NL`GkYpeNAn(>jaGj)V z)1Bz6QLaZP>VB;<t6>6g<-iox0LiKb&ITj&I*E=i0N3_`L0@qhoD;Ce3wf1;@B(On z(_g$V9TB?G_0!S!eKUC|>i$<hJy3yI(wSKMoX&U`iRe1Yj4_0dPQ?_QZBKj@?6MJj zm&x{$GCX97F4Zc#AUMFlp;VCR>?Iu}32QS|kb$%sp;Vyzhr-z3AF_Sfhyb3&s)pOC z<k#J&J@eB{K(Ya}RuCAd?qmc&1rPvdJOHn9d*z^Y%-Ro(4DnvFEanE%!2g{K+78l_ zCjX+FSBN~t1%(UlIU^xtrd}!Kq(D_dRw4SY{BV@h-XHARU8u7ryRiO6r(iea03OId zpmuN^9o)R?1|+fIA<6$4SZTS-W(mvX7GK^B5>6fna&>m;&ij+T$iy9Z!-4=%nbsfy z8LQ>X9Hab6U?ZpEXn0A_Ap||%Ih(Q?&llihX5eg%ZEYe5`js5WKmux~$2(PxLt;HJ zQh<0`bp3wCUCID}8dE93nGyXRE5hO&0uYG_5W8olGXO|{F>U3Sw&~ZA<TQK^9AKI; za$0xo7z2o%2gZ2;2*Yw(^3NcvLR1Xbix7O!(*v_nO$PXyPL22K13T(BQJbJ1O|GM# z0VbTCh~sD)i*KQQ@BntM!B_ONCssJ%DjbS5Q+b65DHDdZ-N+Dl3_x`W7?&{v?U@T* z&fx=TW*`bh##^HR*rPrYISz^s*#U8}ckxSrmY&_i0s3jX3_oyUvb}NXyWz%?<F}6< z@&T}RP$Zn?0<4$50F25{%h*8aH6kPl11PrxtjPfAVj`iw)105Q0$g~~2~@FeHeUiz z;Mp$n$T$Ky(}U<~%T~ejwO*YR?K%!xFkMzrIBSk+XoqwOxAmQVJ<?Cuv9k}p9~-@s z!<&Zzo84oY8tWIH(NP1R>E1p6MVWye8aDv@0RiuRaYYOY&b~(r()C?l!d2z?2+1TB zp~nU=Bh#1|v5eo5+knZ_UzefgHqn6G@<lla`rn7Pptx>yuUZ%&R?YbIJ>up!HZ@Z0 zRMIaJX9`8DFTR(nx1x6lE<5bOOBH)oKF6jD{-C_SpFkNTz|mr6oRqXNzN`)}5Ux-= zZHh7Z4#YIHK}_oszni-W;LvG&oDxLF@WMRgKPge6*TQHuTr(_2LyRgK%KdFZXNH$U zc>9XQE`qOwM8;VN8iTR1)C29}t`)seGk+foWciU-cV{=oKvZDIpUu|K>KHAps})oY z$9s!<HBm9oHIRqG4sVY(hBjQ2Mf(`eV?90g=hL~T?N!)({XO+R%1l$vP`Hm;8sDa) z`@&-a$V@SszR;KK43;gAXH{jj7UAK7x@wsuq+cf9G3uKKgAply)_^iefLgNXRbL7G z341&*Re%V8{GZmvzd!Go6p;aT-ZYRTTL6`hSeh!G{E#mFwI9~6sniV%DQ;}63rtiE zzrH^e{04cJwcm4bs9$uoGy-SHZ#HHG2J$c8_~GJBglP#djU6+!@!)%<Fw%hNNy;;t zk$$u_&cFxh#vsXKP}pmp&4y_@wbcHb4nwlC+?a!aVOAszd_4Zd<=*e>cCZ-7pXBsn z3XCfcT@%yD`0e0YbMTn5&+gZ!@N8ysV!b(`h)z&z4`!KiaXQnbQLz1{&qtwm?MD4F zAw^Zv>6`C9Fk);ZW_YL*<6kk$9r2SaQ2etvY+*mOyABRMESAvxVECTo@@b&yF_6i# zk6xX(_s>6q($!b}O}-FTj{-JLrgzAS`!TytTi;A5<-%GY%;k1mG?qufs?Buccrcg8 z0&0zFKK}~t9kiMV`hti?><^3-n90uOqWskB-KScGv~JV$qDM(fDmd1kjAJW48~0?M zJ}a2~A_=e?8Hfnt`L5IK*=W*0Y4yWaD3w4{F2CPBrGh85#y0=gYU#U<3KuV@;wB1Y ztla*|WD(D=Ma0I>Sm!L97nLKR{PuBCw$VR3_+B@W6H>y~nP}lo=MvxGK~d`{5hpPT z=Hk#3>5@?oG$JnGPdzAa9{|jMY$V$Ho~_q}+s>q}?jkz@;kXHbJO^r5Ox04O3{nY$ zZ4i`8Jd0R4c3R!ZaT&M0Nn&S3wasLK&Mr00y7+`&i6yN@4Gv8Fj!R+7K9|mS3ZOFV zBKn(8g_Ye=ABYuM-N@<;g4s6X=V%pqDK9c29`-JH`YpdXkh<z@>_xmkS`NU_Z#*7Y zycS9LZAZQ{tRIydkQwD6o)-QRYz)m_M#izOYYB7awfbSiU5u@^Rn*S6Y{<&J692bL z4n(Xj6H<c6gqnA_9L&XTkNQ?@mtFJA;yP3X4UjQK`&4baaFM--FOZ^hVcN%7|J``R zT^l<0`g)Y|g$_N&IWv#262<K*A9Eg=CczJ9p+DlQAyS^w@2;lXK-2IDs+gBxqpq`o z)t*u-@g7)lEbV=Y&~`tH-AkWzz9KKN865Bwge_h?5ce8!E0LpoH7567V)HqG>jCl9 z|4yy#{sbE~fI0WYP!oSfMZ)yMM;#p7cnJ&JjBTZoY8{QEE>}V01ogi)M!rNF<E|@L z%SyO4HtIu4-?=|Rl+AAGNlEB7tYi;}Nt38+z=y%pgjjFbdlAnT)4Bl@xT6qi6?wS$ z54JSfs>XhgB8y)Wz4LSQ7;~&%30DFYug!d2V;+GVA;C{SaOS3TL{$8d6lt*nE2vZx zmN?i#dzZznRS)3l&K>arq`k?e3z#w*JkwsDaWcaA@yz_VuVZfGUfw`+4`l;xH{PmK z$Hc`X1hZ59CYTYD{L3cxB&@d5FT+SCC0^W&d3E{wRcveePyi)@L(kjs=DqI)37dX{ zVX4{fK*P}#J_+D!1IyGPU<9X6D-b>`Zgc<Vt0c3?aZlQLX^p7RhRiuCD%!O>$3##l zY$t(}f-F7Hrvh<LXg|pf{uAWH!s5arsTsxh-9IGRv_BJ`3M5huZ~v%1qwy)QcH^49 zZQ6*(IMRe_#xvh^UHcB!r?g;Tl~CCX8N1t<`|FL!`5XRmbb44@38U(Zu1939amn0_ z8nt5b8wA$uVLpokFp~jVN&d%u2kx!ouL%M;lzna<>~BbZQ8Qhb<U^5eIxV>)Wt2Xb zOL_^TKJ#|0Z%@%x?pJei^0lpgY8PGM)e(;nEt;ra?@XY7D+rF&f8wU}_$NXl@st?& zj)9P8tkjzZb}J-+a}gLP073ikRo+Q2MQZzSIgKx&(DhqzbaxX9u2TrKOlke-K6;;J zQO;wbjUGLBApJ>tZkxdh{;^uy?87X&+g(s0^WHkI_Psqd^vvB{awX0fwGOV<<C-M& zT%u^*&H0=2{h#vQtlUG!$1`2nIvDJR^;$qOQLc9BcJmV{0S-##swYlizi&{AeVWlq znAJ0;!x}rJc$3_M=+IBV$4~XL_$_Gq++W^!YB0;}??14?`uY1@T-3U{xL>AgLqj1V z&8du<$CR;NXj7V(AGJQSJ8-z=B7AB&Zo9#ITvI>-xN)|XU}5_`kSFWMZS4BhudjL$ zYbUo~VAHbT5ng(tdm>6TPPga&N6tn`sbnVYFLb8#lcH?#lHXGn4b?HWLe6huLTr;2 z4#?uD2BB~nisCbVWXyifYq7Exhn}K5SA71<f8G5Xl?aomp1MsH=L1L0Ik|J<U}@po zUK*^n?8Q~!j+8(FKK`hP2}fbAxiDK#RPlUR7@No+ibv{8d+bb#O?^S=5U#2D`_cG= zorTtG$0Kt6<xiIBA4CbN|5p5%S6;Vr=R0mukiTlHEfi}rq~M0`dSF65JJ8`FP6h6; zsv{XJS%^}l-jV6G(A=y7kqu4Nu7JUj5=dD0Y5ZD~UR)hJv1C?e{v+dG_+8S|B(Y^K z)G*<rqSV~4`Nq|awF~$qt*M#E9YY(B!mNyQ!mE5#yNZ}>Z~jKB82Q6lOG)gO{eG8& zZ3Q?@&Fo{&%V-0C9xmlDn8!qFE+#e6M!$bD^<L!ZEozIdO<~#fdU)hiuL>gqcgbdK zMzXy9$!{zA5D>(|WL%e%Ird?c%)COcYGBnjyHyJZCnvo0>+{*xJ7be$s>k&UYd&(( z#5Ug%*|c*nDPZ#+Rs=i|Pk6!{BNAbau%ts2M@u$Y+e(W<L_27#;{ns~lvLR-;+(E} z?v$Xs?C~)u(DeS6Q;sR)gP{Q82mS@oL|Yx~1Lup(Az$R2U`$C*oPN5tBK&9M_Ru~h zfpdWCTTN^CT&6L=yvq*HmGjDp1VpdY!qQPMTx|?B#{2RdrwtQ-(2BPQ+~U`QDIw8M z!ezbsc;BW^iJ&^CRga6Y?M(Aj+{T_%w!ROYBsHBK59CP-4Lf68d%U!);9+BFh8j;l zBYm9k0YQ1#X1~zi3Q;+Kb;1_*HBqw7doV9RBBf;yFR2Ltq=xcLL8-W69(UF>D_*bi z^~dwXU8bl{yyiyUY&v;PD7FCbr_S{0t<q(*NQL(}7n(J_#k}z74(nQ_4f#2fp<Xp; zbDPhk2ShEYwx1&D^Ap><FXsJhTSKV}{u6labvHFGKhe6B6!6B+hGkqE5>UEeDUOkk z;uR-bRe$R0@cTzq_=x*#TDTD!cio*2-ql1l&n=bw**aW73oNDL^yQ=ilp8sIM5#va z7!GE>M?XEIehMxXm$2-F{J3mFRoM8l5^}{j+5EF~*vNUz>?G*A^rn<iKF@VUZXkk^ z2VPRYzz}Awh;(^GJtyzK4Sn1HMO?5X))R4`<S7a{+nv);Ey?1eF137(QE^<E2QBX0 zxT806Dbx+-r5s&mnB?um#6FR7jBF}$tJksk(<+YD(U<0~Q}<r-GV<#_<E<{}R2phw z)ZG8s5Q6J@oXAm@d+lNi*yQjeIK3xwS&*8Z!~g`=%7-wf-L!$@(SW7V9+IoQLlo4w z-EZQaGSs))aS2TN7kVH`Y>kP3zV~INWmp{=5M}9VS$G#h8lzk9clbWy@l2i3+XOPt zHn_61_7)UDbmsd%opBD8a4M?)Y}|b@hX0~l!%exr!dipbH{WNk@KMHC^>e7@2?qsB z;k^Y<TuV<47#UFg_v{H<vO}Q#%&>N!D$&!`!(>6fCUjajBQuu?S~CvcS%CFJ(U2=D zCEok{)T!}ec%_vDD5-8pLZr2LyMb=I%P^RxyzZ)=ml`R9M2NZ#JLB7p%w=s(Td8a- z2mHiy*FgMy07j_T%iI2rEAEwNC)$n&e_{WO#28W=rTFw;NS8zoz1<A@@xOgVQYz!? zef10T`eeL@e!G0Gw`1MmT#2sy*N~RpL68(M(xtOmyncMkw3far(H+0eNyD+v@^8i* z;j;%BB;Hy$TiOTzS_(i9!;0f;e&sofNpjt*WV&QJc>C>RvW#vc--y1b@bU^aen3{t z#a~;!@$Ib7L=&AEAjkwg%(vfv;KGi8yq$FvMX;Jw;<;l|-;3s<37>&(SHA19!(^d0 zP$K$}DU{U*y_L~g5_D^I#CZ_R?LA{!?cH5{3H?&xv3^(P^8LGZL0bV@@(hPot7w~V zdg`hw?+Ae3L9Tm4`#{y|Us3tBu;A}E7;=)c_3qVEhzLL2@8-IO<bHa|>Ba}?_Ld@| zF?)f}Of92xMHGqd53Zwg&+JaC127KEm+c~qSBT5fyFRK$oeA~|<@W#OTXK%w2Np^? zrtVfS05t<c0gwtI&{ogge&_6hCH$4N_t!AmgqYM0!ZZ&&m@w!d)i%RX`Rg*_4t;WW z1oOe`GqyxTsu6kEs^ym1{lUn*#~I1khoj_^vVyd58#4A3n;!dQW1X@{mP5-;hQiL5 z)q>K<>Y$%NZ`r=gKd7`OB>ck2^%WxYqw*qr(}E!>SS5?jAvR<2u!tWdh&evHNth+N ziLbAQ1lYCfHz;-Qt}08LrXLzK;;<s{Y9Ir%TU5i$PB8RL4hy)NC>)47yLv}O*Gn_0 z9JL5UFz%=k=>_&A9VCOrnKgb?m~DV}MIOwj)8e@NZZzzcoe>ze9SRRHcy%oNWysb` zU#fptR0g3K@az&g7_ikCSCz`4nY6d1IEI>-!#x#?Tjnny$7QYCj>0nUnU<OQ@#ECL zzZLD?i0}-5DthUaB#Fk}%S_V--LqUt*-c*RJ`M!BF1(K((BB_+goAYARKc*Pb1Oun zpWY%5y<+UH6AY0Ec#IW3c_#}g%<hvRWX?|@(M^@ee|CQ3<>owcqSv@}yH)Q^otrV< zON|sH`3sfqXcv{wZc&bSR81sc(}4pry$m*eh8opJHZ|C<K?Vr%_XFtMU;523NFIm^ zmKegXUH$}d;10I5{#;l1zO|{6b|hVQCE}-+$pL>pR_0Y|*1SYMJNv<?1_ZoHT~)!p z3<Ki`*6;5O8^$;+Qx(R1H~BF3C30@=v|#g#DbBH9hS4CufpLyi$2U4G!xQDMfn1e- z8sYY%3lrkm9B3WJsfZ_BuCI9d>=ACpscufQqV8joMYmeIq!#P80}l$BILY8easOaU z9q#etdhl3rVQEuazLC`Ge@_ri*`=LC@gsr=DL?7U;*qFZi(i_;=%7G?T3(F5agFRn z1RSkg-5^4ORqU1Dj@aFTPUptfzD6s@nJfU*ye+s<`de|nRFBwnnPd8|N>}$0U)EmI z%TSjXKuEhJ9=Ce0U$WLGz&P>p*5Qx821A^&COP01a)wt2%1eNgELsW<c;Qba@rY+* z96WhR@})iI1>zkluu6<bbvri-@tNp@7_vRlGk@<MmKEFKG{plZ^me9~`X6<_{a($D z{=={6{azgeG)yB^(p_-<_`;LpeZop1u|WN6*?DlY0S;OvgKiI4w*eoGj=OtvCnw5} zf&B~C55b7KzOy61T73#qY97=MUfn+F?D+>qj*N^<TB~zMI^%ID*$o0FitgJ}Lhwx< z3<yRD83<SIPLT7J8qv?B2Xn|hFY@OofuwVvkYg!Xtra|oK2X9YAgBmwuFyGHw%XXp zOV+;o`lKw=a5BUINJqn%p!9lhpXV(P$K9zdi#ZaIBxX4UOojkrBkZ;OHrfo%S5NLx z@fR$RQ*@4tp>fhL0vGOT>~91DCi5bHBqsB4a%%F0fP4NV0vL0n0`^u}z(<2mUG6vG zDU3jPDLR0s?7Xk~EC<=o&pssysUQAgpf+=QU=K8*0C@^d+D=be+;XD#Se>{y;8X*7 z;hWD-{MLq<VFNTaYlniKr7L7Ue7>izU=Tzk0t;4i3xe|UN)b+<H{}HjG=EGmFEGE+ zh6jA5KjXVaK$cltfj_!mX}Xn;KdAwN&UGYoxxT5X1o)u~1bULaHXj;Y8pTo|mcw*h z+YCpGuDa!9ayfrKe+Z%a-gZm{C{sJJPoR+lWK2Mopkau>%01<}`rs4USks4cbimgj zxVi9SA_4@a+dhBrDhmf_SBnS&qBmPUPr~CE0I1{3(%1&qG@B@8d-j<5Wy<m=AL--j zbXEpOV@+@paK=<X_22*FbhKsDcC|Q%5~qv{tSNkdd9^|YaLsd=;gu36A^>VW*N8tH zVEF%Ij3j{5lLaaW`bYsAC`stezJlk)&2uub`^2O8z`xV7lC^T5?Qaaseu^LD!hqN4 zP^mi%81ncBpnmlP<@oHQV*yg4s;_o<kY*UxMRI_nDw%!ai|}igEwl;#qaDyx>Z8I9 ztVLim0D>_ZVE?4>*&KuKAn0>@ZhvHQKzLicts#(y!&xD1eQK!51f)q)r|reVf&(^y zMI{npWqgNWip%1C5wQq@+Hk+{#qq*R;t8(^K>!n6Q3|-WM$9#sHbgnbQZnEa1cJ&V z0Nj%YH8Z+bRzT%4*B>BHeoS4r#ZHW%#`Y(OWFt#8Y`@tA39z!q19Xems9?=b2;g)@ zpX2p{A0o@>B4)Ig&=J}pQ`lX(pP|?b;wsCh>LlHpuIfYpNLP!aD){jXxUQ*agOgHv zGZg{4W`yxffO=NTl}3FLE=wGG{K#CYrz?8mcgMnJ)RqDdF-0Dy2cZM;cQsE;>g^!d zfHz?X3DS=UgvDlUF?975;<*7PLR&%g(H$)vxz=?Y14Fxsf|tmG53Z-sSPwkFf`i}N zVnNV$x%I&o5$)P;*nxo^X>zFI9*}QFI0L;$0c7?Y1xYVhA?a557n*L#kAMuCfJtKt z8L-7}H1JDW|M82S{DvuChtWnSHW0EFSxqwi9kfQ52y9rxGYnQp;sb)iCGAwe8lI%_ zivbfHWO}%$K)$Z~WA^YV73z^IWrx{sokUtyi}d~&u^w0?f@#QsJSPd4<)w!ttcB10 z3?Xzy>|wL%Wx%btD4LfSSk|+VL0FHkhHi76sPyomh6pgR=@y5jqy!L91{9(K@98!z z&Lb>%=Xf6W6ea7Ge-EZ?5R7~&P)cwSCaMx)+!!#fQ`f8dgCU;t`N2{IZ5kVacgN~- zk0`FZ>jllYlNN*W1xwM<8LkcdT}MQ}i19qfvVK4iU~7bfAPF)8cQO|)&j1t|LBS1b z19P`2cBoCX-#u({)OV;ToC#iser{_z0a;@*@ttJid*ThRg&UFF?UB#7u^Z>;7)eaF zH+5^cYt+~Z3LegD&%8xcpaMSq&2Bc})NjWZ+w4CRjipU;l1Q4f%*sKBqM>P2xzeA3 zjT=)&y0bj<Zr|xP+a>|P^DcV_P_h@`N7nl!P7SR?tbz3r=KyrDTchoHf<EN8a(tI0 z57~GYHk1kwtS4AUty{BV^N_cnp+Thb6-69C|7*LSPOHWnM>A_Q1LVz8_#CIpS=>-_ zsxf>rIO!fRR+iFgl|fy34w3p4>VPcU`|zExrbwJF>7g4BH}eXu@l?=cEfx{*G{^Fr z6G*%F`vJku_u`%hoEAWNKPJC9G7d{>>Hk#cMWwFg2g13Eu4j#-wiQ|RYZv`Z&-WJX zxjJ5HvWbZZ$^WrdR}Y_qQhfa*IdBc^x$@qZp~7`EYNAJ6nX&~hE@JwuA3aiVdsBf{ zVms=;`njW0Gt-W0<&N*C-h1^irRVrU3s2XbUdqS-YI5l#kJ0_BTUfvikAyiO1@LkE zW+Qdgb-dcuxa<@>=l23o4>HwH6JQM|Du>?6MxFVi6y2`4uYOd1V1T!ZR1!45H2WT@ zG1bxMy5qIyo{B-$u?Rq~a)msoUHjFw#GZ6~w&JBO8_jo}MIWD1!|mv%IW3PJN2QyS zuBKN0AX<Og-tbE^ZWEvv#x2ZwBx6#Y{hM+0jbj%BV8po#khz3KQ3_x!KPEZ574H_O zhetZ`4~ju1TD+DL-x7j&2Q{8VaQEZop$t*h<n;;Y?(UKbHl<=QCD8gp_*r&BR<AU} zT|Wt{y1LkUA^w`J8zCh!jB?pvOs7eokZ#>r(KAMZpQ?AyN?b~doUx(r;@W0Zvq=Q= zZ1xb1aZrZS@>FGiZhhPqy_cq3tjr<zDYRfCa<L_Y)$2CH)d3H9QNF5&MMwsg(xBs3 zEYr2MIR)R-9@jCjqByKmTBS{^1HMTUWtr?3d-41wsXtlk-7FNBTuH3rQAd%fgg7ko zCl|H+y)#y#F3;HZr#$4`cy2E@@r~1pRV7N<{Jq}{n~lkOy0LK{<wx8UK$L>Y5cCtV zfQ_C0vN<+_nLy=}<@NT7mmB{(zgfH{g9Z*brOVe6bPy2z8UGk&;?7z~Z&_>lCB*Lu z)vJ;OH_3*L$bnw{KE>w;mW6>S<yj=B-t`q^ssZ`j=OFihBPqQic_Vxt=TCuVA1(v< zjNq*cIxM#|RfrucJ$LiXWz&+I(`2sV#;d`2V=ZiTpePqxkpCR*guJ~{{B|F2STzAE z-g*6w*!t0}D8EA)pKb2B?a(FO>+>CguLZoMIWyJ=t7x6Rpl?fOl4B({ntd0-UmKPH znAMM#6xb*Fzae2B3P+T=B1Dv30K0wuCO@!Q{TRB|Akf*fQIwgG8-PTZ>|ii6GIlNh z<s11x9I<In|MQ*YKQ`g>T=^wcwv9SiFWFZhlnYju;0hPH>>W%5E6O>mW0tA_)M)MW z`$b(cEw_U8cEoXG9XYYx8fy004=9-Jk2T0BFm*vIc<43)a3f^uDUxLzG%@BMQJZp} z*qo%?Cz&l5I7;>qP{3xJ&W2_rXA2|WAMs{UXslY45S5X_fba2qB_6!QfwgRGMjCc7 zDZkxv*i#Y%bJ-cRiiGaM3P*?RyusA|r1hm*c%iex<{|2XsGu)w-R*Tgs{U%*^R$O5 zVe-|>t=*NH_A{ds>W6=q`V|=Hp=xVVlJEZsBon4W+5a_XyNKzQdf*x3pL?YYmSIyK z@Zm)fy>>YgJpoYh#7W`!5SN$XQ+R+ab^eZZ;AqJW1Stb?{ElqC6o94Q0UPtHgpLir zZ<(ADEO;_8!cn;6T9ED^;Mwf(_nO=!3ccg=-dz*?xVP7o-vWD9`}TGv`VLS1<2VPN z<%DfGE>ax3ce3vV6);>blo=w2{=q=t!l1c%*TTf<h<+KunZ$BYgBcc%+cmccba~b9 zCbuv6y1!r_K5)@l3p2Ldq%wYjv3{~3Oas1w{=uv7Z;^8#!6f3;l>(`~aNE~eX*&Bo zHFLIZ2OdwKzyXQX9o!x#MD-5rv?1kCAdeIz`Afk|UlKfCo{dlCe+Q2?_WgdUOKY(3 z)mut6K!SQay%dTB87hT4TXcWFE2@~emL2C0DQvKCbC_4!DG{05{$g{OaXUD=IHZ}& zKu9=ethfDH9wP&n1c6JM{y9^Two2qic2@*>ee^`yc{Mn0J%2@QZCzZgKqr?8p^wWO zt=&wX4=a-NTMoC{h4}UC%gMXQhi3wB(JO?LW=8~vPB7P^$H^G`UA{VZ8(=Lt-y>6r zV~t_;mwKecc&x)N=N;?aXGtiwATn47V({cqK-&3MIUzaAEPnb_sM5Go{=y#<o_Yvp zaX*Ns6C348U_y-_FpvY{e>+zW3^!cG*&}mV-yNbvrI4%hIO9mDKNTTXV4~PM7`@Jf ze32n5!y3NHORn13uI}CwQ@;AraMqnhLJ>u+*p<)ylpwY$%GNRQ(S$jMjyG0<OvW6A z0SObIW{%BA!-T}gB9Cn7jTgx~q`|9$mdENIW1hIr2e0WEzd#S}xnDDr{=f$ycwQB) z9t{L+j{1a|ELOrc-mmTyf$k-l@Q*KG4$pUrpxbvwKS663FkKb14Gpbf{iayedM4TE z=1K)}Xr!XtkGpG@nsjU0!P9+hA6fk*NAISuva$r}M>>%>!|T(sn-ID8i%ss%25LVN zEh6&Q=xf$JKl6P}<xKJ<dAV=+a-n#kKTkLQ9YaP7>=OBLO<{d5pA;*2o{v4yR*CT; zfG1taZ*is)8%D=Ca#mLjpaSlU3yfjyhw>ccfiNotEXS}s6O&#R<rFZsjsWLp0a9eY z;9PK#C80h|1zTiHNJky&s2XHxL?>D}C(5J;Q!Cy&fluPre@rPA(qIA&&Rok&`P>B* zN%yP&1a~vLS<7ye#bXyikl+Xl|Ed<(OXeNw@58SA2qH)>Hb1mmW!fHg<^(-|NPZ&K zcqU}Zq4m1l0HDdl44y>5niM~#xj#IBCj_*)t5<`xsX85{7`C<3#C>Q^0zBzE{n1<$ zoF{4OkTV1G<g`Dx7n}I?TYu2Vf7hNag;C)FsaHh!vxInKy$6j6u78O-_(1jxJ>HIk zMY1zVfV=!tq+wFd6P#oa6@=?YFmNnTREP~fY&k3)AHWpxY&z(6!L*(%(9x9xKd=?6 z{ey|tSM61tIQiZWfHafr7}x+GC4sX^@G2>gm+gXy05IaY0G=MAs=3YMfXRpX{M8rc z7W#O8E5wb&0b1V3ew@+jABoLa<OB|A=wC^O^<8^}$FP7D%@Ms;u`UFFjIVrZHDS+{ zXHF$UC&%Bg+_?1t8InhasQ(nma*4SIHb9p9dpLI{=yoIwocf=^-%tq`z3c2dv$8A1 zD0pq&1J>Z-{38C=umPpLN;Lsi$-pQopnzzdJ**9hf{Cw%P_nVK%u6Se>;C*oEGK#n zDk#I2%I8MekzC_to5Ag9@qQlzO%fhVut;RKAYl!N7Qir1aob{~OVzWrM$me<9@^E` zK`#j_|L7l(0r?;*8%Zwzj}~<w-xVDY(u4VGBS)lSjrLyFaH2C|8gi37_*;*dy_TYT zZS?;SxB)a7K7Al4I23JMbc4bU;4yfYm=>o95KAN0HdXwQNEe3E-gyFO?QYDSD8>Pq zk(AicGP*L3^(dz!@alKPZg-*BB30j{ZTYN)zy_p9Hl~%rmjgp!?f{JVk3Diu%`D@m zs5#8Ru1{qc9sRwFeoU2{9uNN->6N6bnyN7^*B6d*I_-HvC2sg(J2hj6k_TP#w(J^t zYh9fNJir+!Fs=BIc#R4$vH;e`0qDN@bF~B@qW}nMfAkFm<rP1bEWm4NTjYLecuDK@ z*Gor^B693c`<a_($h2s&j(sWexF#H<3A^@{3eFkPvREc5DQc|!caKdSF0X1Gqq-u$ zs?~AJuTSn>R1m@Ecb!=tT~BNZrNrF@k86QBaqCN`mK)G~xF#DfJzDjg56arM3O+8c zIgF8r<(zLW9|7PJ{jS<Z#GM>~5f>&c;1z^-^#LR}WjN2>XH;S-#E;;6CUfsaHX~W2 z%J4%tOFm1pt)u8KB<EW`drps%2qAspB2H1v#xRIu+S$+A?rTr$c>UlTMSr!vj6CQ2 zaG!(pve1>2??%3=5{kl45w{J7sEipqvU~TSbw5v&F)?h6p2Jh+-V971b!~P$XI4>y zrMO?Yw&KvXRYl6SdSH!7!%2S%0eF`I*H^^RrdaY-;m4<@pEXp{sZ&}d%UbROH10BC zIL8GF-_36uts?(EvHe5b^N9J*>n*21N0_WEGnnK(p^1p#RF=+qezzBAJ%w4K8I~>1 zt-&6jU>n;~(*QTzJEcXQsJ4t@A_(O&{w61tfv<`QD4gX=OHs8h6q`2M3;I>-ZMW@h zeeYaGj{WrWsefmCuCp(auk~sioD+}`M%=?RRa3Ln`9XA-X64eLXD?9zAE@;Ojpap5 z<CLb4jf|HVQX;OZWW|<#b%x7-^IT+=qS?uBu1rOcu2pd@2+>>W$+n)MK}}+`a(TTV z!-!N$w$f>c)z5j0X!ZA}<uO(?xdi^`cdLmObDsBwo6Y)QNl!RruEXqhqW-smam)H5 zcvqdlyz$>5Bm{byX<6eagPp%~kS^@1`n<t-IZo54(bK-j$}iYhCC>JL-h`&{8JA10 zJBuc{y0v=t3d*lnoEDou_lq%exH_{`1wKL<yiUeax36yD;pU_)sBP*1sGD^o4)}FG z`0l%v^@O+U?X092kLs_SA#dNK1{6|FN3?3wsO6xm7D_RBlk>U}GiPlttO~}$HyoxR zSsa9=b(}853A#>eP9WHzASA9c18x_x3*$<fx(O$2;meuekSWET6FukHTN`d+t4$7Y z7N95fwf$*E;~9(DQP&w`{jDT_?dr=zk(YQ?p{25nI$6k?^zDFT)SzJVo+5PI$a;z! z5&Om;j<e&2Z?Z1slDZHrbuL3>x)bbZ&#rUvZ`<4-R;xtq$t1x6xo-uIUfEm^=T^rg zAFJ6^J~>iq3`IHAj^J?c`#V|iFkxY>cL&O~4Gi}1={LmnSQ)FynkqIZS8en0SR269 zpp<Eg6E-sS7|PqwREf0B&i}r-`}+Q^k>@e_75Np9L#Ge5{YDM~5;mP68xnh(gs(2G zI@%b^pBVFu38g5Bvj{izx_M->69aeWG9nYMGFef(&zv3Ia9{E68*I^uoCqn^Tyevw zGcuvIMsAa^83s8M<q;oRoY*yX+wDYLT5=1?BX%}Tu};(5ViqgP9Q}!Ta<+vJVv-Oc zs`?@TK#ft9k<vnZy0RnquPjAb&tyaeGTz0!g|quV4Wq>PIr0P>L(X%EgaZ>{e1jkR zn1L4B{dmUQBzfXYJfz9{b1s<9yKw5wpyzc=%}<|IXRn6}Z%VPtQ^U7FElfNuA%xbC zP_WsH8z<*)q%lq81>w;`oh>mIrP#NkiWexSrt2Ap{T8lTTU=AfuJdhsT)ur+V7Og+ zbnPAjY{6vPn>{lOdS>Jz?tN(hXBW$B=Gu=DuUuzM(EETlJAj@3Kvi7jj?pQFYMKz2 zz>N|YDK*rH3hT$IDNmjSAH*(b`#a89I_@mrS{8BkQ|aGsx~UT?>J=x_h>FxED1R4m z8EW`Q`1^kWn+Rn0tju)Q?fZom@Y5&&zy}0a8ltUDO9imXVO|LWB^54O#6$RU+;j|h z^d;QiYZ&f*a0u?Xe=zRuF$i}N-F-hj-uDPSKEhugJ@y}%pSJ;LiYkQ9wnTN`)BjQe zfFg@hXeYi&-sA=WRh~K`)t6V62~|v{Q6V9eS9?%UREqp#r|C31f$h8Uv2e*oOq@Ii zuf9DFkB)o;amk}e^%;up4-V#zEce_$M4u}`Lx_eF4QnJcl=}CmU%Kc1p*k^jE;ext z1`T@+&%OK!>F>WGBWnfLZrn#ee+-9@oWk*wMJOt%gxhPiyO@GE1k;<fL784mPq=#a zvTU1)A{rI*`v3q-LijjQb&~`DX$w$HIWJwbpygE_6qUJfqM(8ppcn`9&kz$7VBf)0 zoDLj5jgzM<P*LsG4LS-;C7S#I04|aEFV1w2UY*v@4XEFI_FB$?x-#alM>kDYwMXGe zHA*Ypr1sD}otE=-q!9aQZrB{{Wpto`9#3OWBcZ*V3Tn_kdj4R35sscH$H_C*I8*FK zNx7SkvD)M1d%{yM!<_-N7PGzt1HRAdZvd>4y!EF>2LL`ma9v~e5cGTMTAV8sn5_b} z7JaG3qrk8x_>^ci1HdJ9chUrVwRZLAY*go1>;DyMBc-!>iPZnIJ`z@qH)|FbL8?!c zrL$~}OrmQWCFA>%1nwc)-(&y)@N*pcI~wcS1%8;`LYF6#nqt)X@msj2M!y@vC3Uh( zedek$vi|w(EXBg$HGMve;-RW8m8t&Ajal0PqPrXI$?pdM{trZ6^3tXS0QE=@dDabG zYmKPOHs0EM<Xh3!Q`10kPRy@1?j!%aFrzMzS8CZqHD9y-S7)iUQYrfXpGFS=J|OTv zM3c~{lZdKkIib&man(A$>+(tiHT!7ZoSImw`sv{XJVl#|4p3_|gQdrG(yKLATD6?| zN*z~GiWPvZBExuGs!-pH00O~8s~a!-Yv`+K$hFx9)bn8cIsibul+0d_9k14YmR;CB zG{ys<K4fyWJ_|&iwQy4Xz-TE^^Crdoen8+MqQi|B0960Xe_m2RV`74O0)Se#%5dTP z&{(K}0093Jb0JM9vN4|N(IlDQ2LS$!=sBVa*v)Qst52(tJo9f&76AO%118(+YB#&p zt4(fldVf7YAcSb8y|#9<Tb+&ZNQ*0i`Tc-EZ=$328r#ioejC&KdtOn@@29@t%Mfmj zcC(w^ta|@gG?n}Q^GqrJImD%>-Rx#J!3&Hh{`ZPxem@{^J<%_?Vk!;W&2H!1RLKk1 zU(w88i<8hCd;RTpmA7=Fz^j7!eE@(_G|@7957_N0ZOqdz(##WAO*0MpcB1X}Ua;F$ z);1A!z3Ldh4tL=__MWiYRnpjA?{QT#zn@G(Nkqr(y<xX2yd9N${ZCgt0Qm6{U~$jI z_8zg@724R|9xC^`&HR2q;6I37K$EUIY&X04ZER0JPxS9L^PfF%=v~;+gLb=e8r#e7 z;7SSbxkTQAuM(Bmd&h1~ys?yC%>Dg;ZRT$n2>d5RUcr<09<o~#ZKvcO{tuh^&kY2a zzBCXbE2`b>)|A>oq5){?Nj(|?2(aj=KCt}+?ACPJUb$!gY%~9ba~r;wXuZ9+?AFNJ zI=NS`v6=tEgFt7Z#r7VvTO)03Z+5Vm|Kfr`6j2uJP-43^p2qefi)@Xyng7y&01Kb| znaFMLJ-c1z<|6u$D8Od?OA7)lfx;WGuL<pT`5KE|d5!3=_Q`*FfPh`GIBnyg-7Z7h zK$HO6ufI`90}({iU?&^3+r@8ekNrmEuuuKQ0|3`ZF^stnAG7zU-7ZqgCwhhGFE;Zx zUeCc;TP3jDMX>U-`~8Pud-gR6i6D&VSJ)ASc02#Z_7J;q3bjxDrUe2_C18aX>`Fv- zJJ)uE=vj#9RGaymAP_JMEi1Le>aE#619q!#V|!&4(St<)Vl#fzmj-T@NWRnF+jcuk z+bQ?T&GxB(Wq|-o!q|>z0#Sjz&+X>ZPRqT~4yJ^iHuGP3VDNv5Vu%*nYJuG#TzMDD zJ@J2SroVdp2L29_fOLn=16OU^M)V9!b@^-nxVnIVC2VL*^t}`T?RNEu`)tkI*y6qo z1dRS0B7;jVQKiivS8S`4Yurb!xy|@C2w3P^qCrISiHdA~xnf$8TvN8Tf3wAXyPXXP z*d|FPnod+`^G}m)Z0%+crPz#bw{rmk=1s`_zkji91Wl%?a;=#A?nCg2)wdbnZs!67 zOkZSW%qJ1;w|T75w!PB0*Tq-Iw;A7V7Xk=av|&f059RftV)I<1IPrJLHDL)k|J7!E zyIpKBVE*APiJp>HWu|L-Y+k%%%_HYLSFS-zn0)qarnlRrk_ea|!T(CBfE9mS4%^N6 zVzyIqj@evyl5_uO`^2}~<pu(cu7gNO@+r|;qH3FG&%0I2x%^n(-(OqX{M*fLjRg>x z9@+vTY2-wRI&pTs!uq!=IcJmP90vP}_%_4at*L+kt8&b8#t$Q!Nwn3zQuN!H>a>Mu z7SV7yXa8w4z1^-P6@lfGW9iD`A(Bf@A=*e(eibr&xg0x7-S)CnokC#Bxo0!K-L7;{ z_#X)f-HFB!{Z6!-s01QR^-5_jIi}rmjL*n1hsimxncZ$zJsA91I<GJzS2v>Ph$chC zs;`$$E=){zH*!WlCHuNw_I<J(OE)>T|Mq9Ox0&8<HW>IP=6rOUylP}(^5aBrOXK1k z$!NzVFsQZA`8e75BlcS-Agbfck$riK=rM@I8q6W*R@wJD$7eUY+3nnbft{o`K~$*e zDq|K>qycTLWXR7Xb270zn`jx)Ch5*xAg|b}<-hmK*Otlm{w_cJnf$J?^1D;yZ?WHu ikbU@Xo6(zQ`~L$VjiCmID6;_o0000<MNUMnLSTaKs`(QD literal 411372 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 diff --git a/client/src/interfaces/FormModels.ts b/client/src/interfaces/FormModels.ts index 29488713..dd51f32b 100644 --- a/client/src/interfaces/FormModels.ts +++ b/client/src/interfaces/FormModels.ts @@ -44,4 +44,5 @@ export interface EditUserModel { role: string city: string name?: string + password?: string } diff --git a/client/src/pages/admin/AdminPage.tsx b/client/src/pages/admin/AdminPage.tsx index 793da84f..921f721d 100644 --- a/client/src/pages/admin/AdminPage.tsx +++ b/client/src/pages/admin/AdminPage.tsx @@ -21,18 +21,12 @@ import { Link, Route, Switch, useRouteMatch } from 'react-router-dom' import { getCities } from '../../actions/cities' import { getRoles } from '../../actions/roles' import { logoutUser } from '../../actions/user' -import { useAppDispatch } from '../../hooks' -import CompetitionManager from './components/CompetitionManager' -import Regions from './components/Regions' -import UserManager from './components/UserManager' +import { useAppDispatch, useAppSelector } from '../../hooks' +import CompetitionManager from './competitions/CompetitionManager' +import RegionManager from './regions/Regions' import { LeftDrawer } from './styled' +import UserManager from './users/UserManager' const drawerWidth = 250 -const menuItems = [ - { text: 'Startsida', icon: DashboardIcon }, - { text: 'Regioner', icon: LocationCityIcon }, - { text: 'Användare', icon: PeopleIcon }, - { text: 'Tävlingshanterare', icon: SettingsOverscanIcon }, -] const useStyles = makeStyles((theme: Theme) => createStyles({ @@ -64,6 +58,37 @@ const AdminView: React.FC = () => { dispatch(logoutUser()) } const dispatch = useAppDispatch() + const currentUser = useAppSelector((state) => state.user.userInfo) + const isAdmin = () => currentUser && currentUser.role.name === 'Admin' + + const menuAdminItems = [ + { text: 'Startsida', icon: DashboardIcon }, + { text: 'Regioner', icon: LocationCityIcon }, + { text: 'Användare', icon: PeopleIcon }, + { text: 'Tävlingshanterare', icon: SettingsOverscanIcon }, + ] + + const menuEditorItems = [ + { text: 'Startsida', icon: DashboardIcon }, + { text: 'Tävlingshanterare', icon: SettingsOverscanIcon }, + ] + + const renderItems = () => { + const menuItems = isAdmin() ? menuAdminItems : menuEditorItems + return menuItems.map((value, index) => ( + <ListItem + button + component={Link} + key={value.text} + to={`${url}/${value.text.toLowerCase()}`} + selected={index === openIndex} + onClick={() => setOpenIndex(index)} + > + <ListItemIcon>{React.createElement(value.icon)}</ListItemIcon> + <ListItemText primary={value.text} /> + </ListItem> + )) + } useEffect(() => { dispatch(getCities()) @@ -76,7 +101,7 @@ const AdminView: React.FC = () => { <AppBar position="fixed" className={classes.appBar}> <Toolbar> <Typography variant="h5" noWrap> - {menuItems[openIndex].text} + {isAdmin() ? menuAdminItems[openIndex].text : menuEditorItems[openIndex].text} </Typography> </Toolbar> </AppBar> @@ -91,21 +116,7 @@ const AdminView: React.FC = () => { <div> <div className={classes.toolbar} /> <Divider /> - <List> - {menuItems.map((value, index) => ( - <ListItem - button - component={Link} - key={value.text} - to={`${url}/${value.text.toLowerCase()}`} - selected={index === openIndex} - onClick={() => setOpenIndex(index)} - > - <ListItemIcon>{React.createElement(value.icon)}</ListItemIcon> - <ListItemText primary={value.text} /> - </ListItem> - ))} - </List> + <List>{renderItems()}</List> <Divider /> <List> <ListItem> @@ -132,7 +143,7 @@ const AdminView: React.FC = () => { </Typography> </Route> <Route path={`${path}/regioner`}> - <Regions /> + <RegionManager /> </Route> <Route path={`${path}/användare`}> <UserManager /> diff --git a/client/src/pages/admin/components/AddCompetition.test.tsx b/client/src/pages/admin/competitions/AddCompetition.test.tsx similarity index 100% rename from client/src/pages/admin/components/AddCompetition.test.tsx rename to client/src/pages/admin/competitions/AddCompetition.test.tsx diff --git a/client/src/pages/admin/components/AddCompetition.tsx b/client/src/pages/admin/competitions/AddCompetition.tsx similarity index 96% rename from client/src/pages/admin/components/AddCompetition.tsx rename to client/src/pages/admin/competitions/AddCompetition.tsx index 65cb7c26..3d45e629 100644 --- a/client/src/pages/admin/components/AddCompetition.tsx +++ b/client/src/pages/admin/competitions/AddCompetition.tsx @@ -8,7 +8,7 @@ import { getCompetitions } from '../../../actions/competitions' import { useAppDispatch, useAppSelector } from '../../../hooks' import { City } from '../../../interfaces/ApiModels' import { AddCompetitionModel, FormModel } from '../../../interfaces/FormModels' -import { AddButton, AddContent, AddForm } from './styled' +import { AddButton, AddContent, AddForm } from '../styledComp' type formType = FormModel<AddCompetitionModel> @@ -74,7 +74,12 @@ const AddCompetition: React.FC = (props: any) => { } return ( <div> - <AddButton color="default" variant="contained" onClick={handleClick}> + <AddButton + style={{ backgroundColor: '#4caf50', color: '#fcfcfc' }} + color="default" + variant="contained" + onClick={handleClick} + > Ny Tävling </AddButton> <Popover diff --git a/client/src/pages/admin/components/CompetitionManager.test.tsx b/client/src/pages/admin/competitions/CompetitionManager.test.tsx similarity index 100% rename from client/src/pages/admin/components/CompetitionManager.test.tsx rename to client/src/pages/admin/competitions/CompetitionManager.test.tsx diff --git a/client/src/pages/admin/components/CompetitionManager.tsx b/client/src/pages/admin/competitions/CompetitionManager.tsx similarity index 99% rename from client/src/pages/admin/components/CompetitionManager.tsx rename to client/src/pages/admin/competitions/CompetitionManager.tsx index c271641f..08a18581 100644 --- a/client/src/pages/admin/components/CompetitionManager.tsx +++ b/client/src/pages/admin/competitions/CompetitionManager.tsx @@ -18,8 +18,8 @@ import { Link, useHistory } from 'react-router-dom' import { getCompetitions, setFilterParams } from '../../../actions/competitions' import { useAppDispatch, useAppSelector } from '../../../hooks' import { CompetitionFilterParams } from '../../../interfaces/FilterParams' +import { FilterContainer, RemoveMenuItem, TopBar, YearFilterTextField } from '../styledComp' import AddCompetition from './AddCompetition' -import { FilterContainer, RemoveMenuItem, TopBar, YearFilterTextField } from './styled' const useStyles = makeStyles((theme: Theme) => createStyles({ diff --git a/client/src/pages/admin/components/AddRegion.tsx b/client/src/pages/admin/regions/AddRegion.tsx similarity index 86% rename from client/src/pages/admin/components/AddRegion.tsx rename to client/src/pages/admin/regions/AddRegion.tsx index 7f0ccf4e..c8ae412e 100644 --- a/client/src/pages/admin/components/AddRegion.tsx +++ b/client/src/pages/admin/regions/AddRegion.tsx @@ -1,4 +1,4 @@ -import { Button, Grid, TextField } from '@material-ui/core' +import { Grid, TextField } from '@material-ui/core' import FormControl from '@material-ui/core/FormControl' import { createStyles, makeStyles, Theme } from '@material-ui/core/styles' import AddIcon from '@material-ui/icons/Add' @@ -10,7 +10,7 @@ import * as Yup from 'yup' import { getCities } from '../../../actions/cities' import { useAppDispatch } from '../../../hooks' import { AddCityModel, FormModel } from '../../../interfaces/FormModels' -import { AddForm } from './styled' +import { AddButton, AddForm } from '../styledComp' const useStyles = makeStyles((theme: Theme) => createStyles({ @@ -33,7 +33,7 @@ type formType = FormModel<AddCityModel> const schema: Yup.SchemaOf<formType> = Yup.object({ model: Yup.object() .shape({ - city: Yup.string() + name: Yup.string() .required('Minst två bokstäver krävs') .min(2) .matches(/[a-zA-Z]/, 'Namnet får enbart innehålla a-z, A-Z.'), @@ -83,12 +83,18 @@ const AddRegion: React.FC = (props: any) => { error={Boolean(formik.touched.model?.name && formik.errors.model?.name)} onChange={formik.handleChange} onBlur={formik.handleBlur} - name="model.city" + name="model.name" label="Region" ></TextField> - <Button className={classes.button} color="default" variant="contained" type="submit"> + <AddButton + style={{ backgroundColor: '#4caf50', color: '#fcfcfc' }} + className={classes.button} + color="default" + variant="contained" + type="submit" + > <AddIcon></AddIcon> - </Button> + </AddButton> </Grid> </FormControl> {formik.errors.error && ( diff --git a/client/src/pages/admin/components/Regions.tsx b/client/src/pages/admin/regions/Regions.tsx similarity index 96% rename from client/src/pages/admin/components/Regions.tsx rename to client/src/pages/admin/regions/Regions.tsx index 7f4ece95..eb79575e 100644 --- a/client/src/pages/admin/components/Regions.tsx +++ b/client/src/pages/admin/regions/Regions.tsx @@ -12,8 +12,8 @@ import axios from 'axios' import React, { useEffect } from 'react' import { getCities } from '../../../actions/cities' import { useAppDispatch, useAppSelector } from '../../../hooks' +import { RemoveMenuItem, TopBar } from '../styledComp' import AddRegion from './AddRegion' -import { RemoveMenuItem, TopBar } from './styled' const useStyles = makeStyles((theme: Theme) => createStyles({ table: { @@ -25,7 +25,7 @@ const useStyles = makeStyles((theme: Theme) => }) ) -const UserManager: React.FC = (props: any) => { +const RegionManager: React.FC = (props: any) => { const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null) const [activeId, setActiveId] = React.useState<number | undefined>(undefined) const citiesTotal = useAppSelector((state) => state.cities.total) @@ -113,4 +113,4 @@ const UserManager: React.FC = (props: any) => { ) } -export default UserManager +export default RegionManager diff --git a/client/src/pages/admin/components/styled.tsx b/client/src/pages/admin/styledComp.tsx similarity index 91% rename from client/src/pages/admin/components/styled.tsx rename to client/src/pages/admin/styledComp.tsx index 985ed510..228b712e 100644 --- a/client/src/pages/admin/components/styled.tsx +++ b/client/src/pages/admin/styledComp.tsx @@ -17,7 +17,9 @@ export const AddForm = styled.form` ` export const AddContent = styled.div` - padding: 15px; + padding: 25px; + padding-bottom: 40px; + width: 300px; ` export const RemoveMenuItem = styled(MenuItem)` diff --git a/client/src/pages/admin/components/AddUser.tsx b/client/src/pages/admin/users/AddUser.tsx similarity index 94% rename from client/src/pages/admin/components/AddUser.tsx rename to client/src/pages/admin/users/AddUser.tsx index 8880f400..d58a5d5d 100644 --- a/client/src/pages/admin/components/AddUser.tsx +++ b/client/src/pages/admin/users/AddUser.tsx @@ -9,7 +9,7 @@ import { getSearchUsers } from '../../../actions/searchUser' import { useAppDispatch, useAppSelector } from '../../../hooks' import { City, Role } from '../../../interfaces/ApiModels' import { AddUserModel, FormModel } from '../../../interfaces/FormModels' -import { AddButton, AddContent, AddForm } from './styled' +import { AddButton, AddContent, AddForm } from '../styledComp' type formType = FormModel<AddUserModel> @@ -19,7 +19,7 @@ const noCitySelected = 'Välj stad' const userSchema: Yup.SchemaOf<formType> = Yup.object({ model: Yup.object() .shape({ - name: Yup.string(), //.required('Namn krävs'), + name: Yup.string(), email: Yup.string().email().required('Email krävs'), password: Yup.string() .required('Lösenord krävs.') @@ -50,7 +50,7 @@ const AddUser: React.FC = (props: any) => { const open = Boolean(anchorEl) const dispatch = useAppDispatch() const id = open ? 'simple-popover' : undefined - const handleCompetitionSubmit = async (values: formType, actions: FormikHelpers<formType>) => { + const handleSubmit = async (values: formType, actions: FormikHelpers<formType>) => { const params = { email: values.model.email, password: values.model.password, @@ -83,7 +83,13 @@ const AddUser: React.FC = (props: any) => { } return ( <div> - <AddButton color="default" variant="contained" onClick={handleClick} endIcon={<PersonAddIcon></PersonAddIcon>}> + <AddButton + style={{ backgroundColor: '#4caf50', color: '#fcfcfc' }} + color="default" + variant="contained" + onClick={handleClick} + endIcon={<PersonAddIcon></PersonAddIcon>} + > Ny Användare </AddButton> <Popover @@ -101,7 +107,7 @@ const AddUser: React.FC = (props: any) => { }} > <AddContent> - <Formik initialValues={userInitialValues} validationSchema={userSchema} onSubmit={handleCompetitionSubmit}> + <Formik initialValues={userInitialValues} validationSchema={userSchema} onSubmit={handleSubmit}> {(formik) => ( <AddForm onSubmit={formik.handleSubmit}> <TextField diff --git a/client/src/pages/admin/users/EditUser.tsx b/client/src/pages/admin/users/EditUser.tsx new file mode 100644 index 00000000..a1be7c87 --- /dev/null +++ b/client/src/pages/admin/users/EditUser.tsx @@ -0,0 +1,300 @@ +import { + Button, + createStyles, + FormControl, + InputLabel, + makeStyles, + MenuItem, + Popover, + TextField, + Theme, +} from '@material-ui/core' +import MoreHorizIcon from '@material-ui/icons/MoreHoriz' +import { Alert, AlertTitle } from '@material-ui/lab' +import axios from 'axios' +import { Formik, FormikHelpers } from 'formik' +import React, { useEffect } from 'react' +import * as Yup from 'yup' +import { getSearchUsers } from '../../../actions/searchUser' +import { useAppDispatch, useAppSelector } from '../../../hooks' +import { City, Role, User } from '../../../interfaces/ApiModels' +import { EditUserModel, FormModel } from '../../../interfaces/FormModels' +import { AddContent, AddForm } from '../styledComp' + +const useStyles = makeStyles((theme: Theme) => + createStyles({ + textField: { + marginBottom: '10px', + }, + editButton: { + marginTop: '20px', + paddingTop: '10px', + paddingBottom: '10px', + }, + deleteButton: { + marginTop: '40px', + }, + }) +) + +type formType = FormModel<EditUserModel> + +const noRoleSelected = 'Admin' +const noCitySelected = 'Linköping' + +const userSchema: Yup.SchemaOf<formType> = Yup.object({ + model: Yup.object() + .shape({ + name: Yup.string(), + email: Yup.string().email().required('Email krävs'), + password: Yup.string() + .min(6, 'Lösenord måste vara minst 6 tecken.') + .matches(/[a-zA-Z]/, 'Lösenord får enbart innehålla a-z, A-Z.'), + role: Yup.string().required('Roll krävs').notOneOf([noCitySelected], 'Välj en roll'), + city: Yup.string().required('Stad krävs').notOneOf([noRoleSelected], 'Välj en stad'), + }) + .required(), + error: Yup.string().optional(), +}) + +type UserIdProps = { + user: User +} + +const EditUser = ({ user }: UserIdProps) => { + const dispatch = useAppDispatch() + const classes = useStyles() + + const [anchorEl, setAnchorEl] = React.useState<HTMLButtonElement | null>(null) + const [selectedRole, setSelectedRole] = React.useState<Role | undefined>() + const roles = useAppSelector((state) => state.roles.roles) + + const [selectedCity, setSelectedCity] = React.useState<City | undefined>() + const cities = useAppSelector((state) => state.cities.cities) + + const startRole = roles.find((x) => x.id == user.role_id) + const startCity = cities.find((x) => x.id == user.city_id) + + const open = Boolean(anchorEl) + const id = open ? 'simple-popover' : undefined + + useEffect(() => { + setSelectedCity(startCity) + setSelectedRole(startRole) + }, []) + + const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => { + setAnchorEl(event.currentTarget) + } + const handleClose = () => { + setAnchorEl(null) + } + + const handleDeleteUsers = async () => { + if (confirm('Are u sure?')) { + await axios + .delete(`/auth/delete/${user.id}`) + .then(() => { + setAnchorEl(null) + dispatch(getSearchUsers()) + }) + .catch(({ response }) => { + console.warn(response.data) + }) + } + } + + const handleSubmit = async (values: formType, actions: FormikHelpers<formType>) => { + const params = { + email: values.model.email, + name: values.model.name, + city_id: selectedCity?.id as number, + role_id: selectedRole?.id as number, + } + const req: any = {} + if (params.email !== user.email) { + req['email'] = params.email + } + if (params.name !== user.name) { + req['name'] = params.name + } + if (params.city_id !== user.city_id) { + req['city_id'] = params.city_id + } + if (params.role_id !== user.role_id) { + req['role_id'] = params.role_id + } + await axios + .put('/users/' + user.id, req) + .then((res) => { + setAnchorEl(null) + dispatch(getSearchUsers()) + }) + .catch(({ response }) => { + console.warn(response.data) + if (response.data && response.data.message) + actions.setFieldError('error', response.data && response.data.message) + else actions.setFieldError('error', 'Something went wrong, please try again') + }) + .finally(() => { + actions.setSubmitting(false) + }) + } + + const userInitialValues: formType = { + model: { + email: user.email as string, + name: user.name as string, + city: startCity?.name as string, + role: startRole?.name as string, + }, + } + return ( + <div> + <Button onClick={handleClick}> + <MoreHorizIcon /> + </Button> + <Popover + id={id} + open={open} + anchorEl={anchorEl} + onClose={handleClose} + anchorOrigin={{ + vertical: 'bottom', + horizontal: 'center', + }} + transformOrigin={{ + vertical: 'top', + horizontal: 'center', + }} + > + <AddContent> + <Formik initialValues={userInitialValues} validationSchema={userSchema} onSubmit={handleSubmit}> + {(formik) => ( + <AddForm onSubmit={formik.handleSubmit}> + <TextField + className={classes.textField} + label="Email" + name="model.email" + helperText={formik.touched.model?.email ? formik.errors.model?.email : ''} + error={Boolean(formik.touched.model?.email && formik.errors.model?.email)} + onChange={formik.handleChange} + onBlur={formik.handleBlur} + defaultValue={user.email} + margin="normal" + /> + <TextField + className={classes.textField} + label="Namn" + name="model.name" + helperText={formik.touched.model?.name ? formik.errors.model?.name : ''} + error={Boolean(formik.touched.model?.name && formik.errors.model?.name)} + onChange={formik.handleChange} + onBlur={formik.handleBlur} + defaultValue={user.name} + margin="normal" + /> + <FormControl> + <InputLabel shrink id="demo-customized-select-native"> + Region + </InputLabel> + <TextField + className={classes.textField} + select + name="model.city" + id="standard-select-currency" + value={selectedCity ? selectedCity.name : noCitySelected} + onChange={formik.handleChange} + onBlur={formik.handleBlur} + error={Boolean(formik.errors.model?.city && formik.touched.model?.city)} + helperText={formik.touched.model?.city && formik.errors.model?.city} + margin="normal" + > + {cities && + cities.map((city) => ( + <MenuItem key={city.name} value={city.name} onClick={() => setSelectedCity(city)}> + {city.name} + </MenuItem> + ))} + </TextField> + </FormControl> + + <FormControl> + <InputLabel shrink id="demo-customized-select-native"> + Roll + </InputLabel> + <TextField + className={classes.textField} + select + name="model.role" + id="standard-select-currency" + value={selectedRole ? selectedRole.name : noRoleSelected} + onChange={formik.handleChange} + onBlur={formik.handleBlur} + error={Boolean(formik.errors.model?.role && formik.touched.model?.role)} + helperText={formik.touched.model?.role && formik.errors.model?.role} + margin="normal" + > + {roles && + roles.map((role) => ( + <MenuItem key={role.name} value={role.name} onClick={() => setSelectedRole(role)}> + {role.name} + </MenuItem> + ))} + </TextField> + </FormControl> + + <FormControl> + <InputLabel shrink id="demo-customized-select-native"> + Password + </InputLabel> + <TextField + className={classes.textField} + label="Lösenord" + name="model.password" + helperText={formik.touched.model?.password ? formik.errors.model?.password : ''} + error={Boolean(formik.touched.model?.password && formik.errors.model?.password)} + onChange={formik.handleChange} + onBlur={formik.handleBlur} + defaultValue="" + margin="normal" + type="password" + /> + </FormControl> + + <Button + className={classes.editButton} + type="submit" + fullWidth + variant="contained" + color="primary" + disabled={!formik.isValid || !formik.values.model?.role || !formik.values.model?.city} + > + Ändra + </Button> + <Button + onClick={handleDeleteUsers} + className={classes.deleteButton} + fullWidth + variant="contained" + color="secondary" + > + Ta bort + </Button> + + {formik.errors.error && ( + <Alert severity="error"> + <AlertTitle>Error</AlertTitle> + {formik.errors.error} + </Alert> + )} + </AddForm> + )} + </Formik> + </AddContent> + </Popover> + </div> + ) +} + +export default EditUser diff --git a/client/src/pages/admin/components/UserManager.tsx b/client/src/pages/admin/users/UserManager.tsx similarity index 84% rename from client/src/pages/admin/components/UserManager.tsx rename to client/src/pages/admin/users/UserManager.tsx index e2f2412f..11a34128 100644 --- a/client/src/pages/admin/components/UserManager.tsx +++ b/client/src/pages/admin/users/UserManager.tsx @@ -1,4 +1,4 @@ -import { Button, Menu, TablePagination, TextField, Typography } from '@material-ui/core' +import { TablePagination, TextField, Typography } from '@material-ui/core' import FormControl from '@material-ui/core/FormControl' import InputLabel from '@material-ui/core/InputLabel' import MenuItem from '@material-ui/core/MenuItem' @@ -11,14 +11,14 @@ import TableCell from '@material-ui/core/TableCell' import TableContainer from '@material-ui/core/TableContainer' import TableHead from '@material-ui/core/TableHead' import TableRow from '@material-ui/core/TableRow' -import MoreHorizIcon from '@material-ui/icons/MoreHoriz' -import axios from 'axios' import React, { useEffect } from 'react' import { getSearchUsers, setFilterParams } from '../../../actions/searchUser' import { useAppDispatch, useAppSelector } from '../../../hooks' +import { User } from '../../../interfaces/ApiModels' import { UserFilterParams } from '../../../interfaces/FilterParams' +import { FilterContainer, TopBar } from '../styledComp' import AddUser from './AddUser' -import { FilterContainer, RemoveMenuItem, TopBar } from './styled' +import EditUser from './EditUser' const useStyles = makeStyles((theme: Theme) => createStyles({ @@ -32,8 +32,10 @@ const useStyles = makeStyles((theme: Theme) => ) const UserManager: React.FC = (props: any) => { + const [editAnchorEl, setEditAnchorEl] = React.useState<null | HTMLElement>(null) const [anchorEl, setAnchorEl] = React.useState<null | HTMLElement>(null) - const [activeId, setActiveId] = React.useState<number | undefined>(undefined) + + const [selectedUser, setSelectedUser] = React.useState<User | undefined>(undefined) const [timerHandle, setTimerHandle] = React.useState<number | undefined>(undefined) const users = useAppSelector((state) => state.searchUsers.users) const filterParams = useAppSelector((state) => state.searchUsers.filterParams) @@ -43,20 +45,36 @@ const UserManager: React.FC = (props: any) => { const classes = useStyles() const noFilterText = 'Alla' const dispatch = useAppDispatch() - const handleClick = (event: React.MouseEvent<HTMLButtonElement>, id: number) => { + + const open = Boolean(anchorEl) + const id = open ? 'simple-popover' : undefined + + const handleClick = (event: React.MouseEvent<HTMLButtonElement>, user: User) => { setAnchorEl(event.currentTarget) - setActiveId(id) + setSelectedUser(user) } const handleClose = () => { setAnchorEl(null) - setActiveId(undefined) + setSelectedUser(undefined) + console.log('close') + } + + const handleEditClose = () => { + setEditAnchorEl(null) + console.log('edit close') } useEffect(() => { dispatch(getSearchUsers()) }, []) + useEffect(() => { + console.log('asd') + setEditAnchorEl(null) + setAnchorEl(null) + }, [users]) + const onSearchChange = (event: React.ChangeEvent<HTMLTextAreaElement | HTMLInputElement>) => { if (timerHandle) { clearTimeout(timerHandle) @@ -67,25 +85,16 @@ const UserManager: React.FC = (props: any) => { dispatch(setFilterParams({ ...filterParams, email: event.target.value })) } - const handleDeleteUsers = async () => { - if (activeId) { - await axios - .delete(`/auth/delete/${activeId}`) - .then(() => { - setAnchorEl(null) - dispatch(getSearchUsers()) - }) - .catch(({ response }) => { - console.warn(response.data) - }) - } - } - const handleFilterChange = (newParams: UserFilterParams) => { dispatch(setFilterParams(newParams)) dispatch(getSearchUsers()) } + const handleStateClick = () => { + setEditAnchorEl(anchorEl) + setAnchorEl(null) + } + return ( <div> <TopBar> @@ -167,9 +176,7 @@ const UserManager: React.FC = (props: any) => { <TableCell>{cities.find((city) => city.id === row.city_id)?.name || ''}</TableCell> <TableCell>{roles.find((role) => role.id === row.role_id)?.name || ''}</TableCell> <TableCell align="right"> - <Button onClick={(event) => handleClick(event, row.id)}> - <MoreHorizIcon /> - </Button> + <EditUser user={row}></EditUser> </TableCell> </TableRow> ))} @@ -185,11 +192,6 @@ const UserManager: React.FC = (props: any) => { page={filterParams.page} onChangePage={(event, newPage) => handleFilterChange({ ...filterParams, page: newPage })} /> - <Menu id="simple-menu" anchorEl={anchorEl} keepMounted open={Boolean(anchorEl)} onClose={handleClose}> - <MenuItem>Redigera</MenuItem> - <MenuItem>Byt lösenord</MenuItem> - <RemoveMenuItem onClick={handleDeleteUsers}>Ta bort</RemoveMenuItem> - </Menu> </div> ) } diff --git a/client/src/reducers/userReducer.ts b/client/src/reducers/userReducer.ts index 2b340ae6..6064292a 100644 --- a/client/src/reducers/userReducer.ts +++ b/client/src/reducers/userReducer.ts @@ -1,11 +1,11 @@ import { AnyAction } from 'redux' import Types from '../actions/types' -import { City, Competition } from '../interfaces/ApiModels' +import { City, Role } from '../interfaces/ApiModels' interface UserInfo { name: string email: string - role: Competition + role: Role city: City id: number } -- GitLab