From cbb73b9ebe0c28ca9ac368e26d9b8eb5c5f38bfa Mon Sep 17 00:00:00 2001 From: Clement Foo Date: Mon, 7 Nov 2022 23:29:00 +0800 Subject: [PATCH 1/2] update dg --- docs/DeveloperGuide.md | 18 ++---------------- docs/SettingUp.md | 2 +- docs/diagrams/ModelClassDiagram.puml | 12 ++++++------ docs/images/ModelClassDiagram.png | Bin 25255 -> 0 bytes 4 files changed, 9 insertions(+), 23 deletions(-) delete mode 100644 docs/images/ModelClassDiagram.png diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 0a3d4cc73b4..bb01ccb361b 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -10,7 +10,7 @@ title: Developer Guide ## **Acknowledgements** * [Apache PDFBox®](https://pdfbox.apache.org/) -* {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} +* * [Apache Commons](https://commons.apache.org/) -------------------------------------------------------------------------------------------------------------------- @@ -319,7 +319,6 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli | `*` | fast user | add custom shortcuts for commands | | -*{More to be added}* ### Use cases @@ -408,7 +407,6 @@ Use case ends. Use case ends. -*{More to be added}* ### Non-Functional Requirements @@ -418,7 +416,6 @@ Use case ends. 4. The GUI should be intuitive and easy to understand. 5. The system should respond in at most 1 second. -*{More to be added}* ### Glossary @@ -447,10 +444,9 @@ testers are expected to do more *exploratory* testing. 1. Resize the window to an optimum size. Move the window to a different location. Close the window. - 1. Re-launch the app by double-clicking the jar file.
+ 2. Re-launch the app by double-clicking the jar file.
Expected: The most recent window size and location is retained. -1. _{ more test cases …​ }_ ### Deleting an itinerary @@ -464,13 +460,3 @@ testers are expected to do more *exploratory* testing. 1. Other incorrect delete commands to try: `delete`, `delete x`, `...` (where x is larger than the list size)
Expected: Similar to previous. - -1. _{ more test cases …​ }_ - -### Saving data - -1. Dealing with missing/corrupted data files - - 1. _{explain how to simulate a missing/corrupted file, and the expected behavior}_ - -1. _{ more test cases …​ }_ diff --git a/docs/SettingUp.md b/docs/SettingUp.md index 275445bd551..c9fd8663d3d 100644 --- a/docs/SettingUp.md +++ b/docs/SettingUp.md @@ -45,7 +45,7 @@ If you plan to use Intellij IDEA (highly recommended): 1. **Learn the design** - When you are ready to start coding, we recommend that you get some sense of the overall design by reading about [AddressBook’s architecture](DeveloperGuide.md#architecture). + When you are ready to start coding, we recommend that you get some sense of the overall design by reading about [Waddle’s architecture](DeveloperGuide.md#architecture). 1. **Do the tutorials** These tutorials will help you get acquainted with the codebase. diff --git a/docs/diagrams/ModelClassDiagram.puml b/docs/diagrams/ModelClassDiagram.puml index 47b11e77210..7235fd68923 100644 --- a/docs/diagrams/ModelClassDiagram.puml +++ b/docs/diagrams/ModelClassDiagram.puml @@ -15,8 +15,8 @@ Class UserPrefs Class UniqueItineraryList Class Itinerary Class People -Class duration -Class Name +Class Duration +Class Description Class Country Class Tag @@ -36,14 +36,14 @@ UserPrefs .up.|> ReadOnlyUserPrefs Waddle *--> "1" UniqueItineraryList UniqueItineraryList --> "~* all" Itinerary -Itinerary *--> Name +Itinerary *--> Description Itinerary *--> Country -Itinerary *--> duration +Itinerary *--> Duration Itinerary *--> People -Name -[hidden]right-> Country +Description -[hidden]right-> Country Country -[hidden]right-> People -People -[hidden]right-> duration +People -[hidden]right-> Duration ModelManager -->"~* filtered" Itinerary @enduml diff --git a/docs/images/ModelClassDiagram.png b/docs/images/ModelClassDiagram.png deleted file mode 100644 index 6ca868c4dd2cef3f606ecf232dac12a855d36144..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25255 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 Date: Mon, 7 Nov 2022 23:29:31 +0800 Subject: [PATCH 2/2] update dg --- docs/images/ModelClassDiagram.png | Bin 0 -> 29275 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/ModelClassDiagram.png diff --git a/docs/images/ModelClassDiagram.png b/docs/images/ModelClassDiagram.png new file mode 100644 index 0000000000000000000000000000000000000000..1c689bd8930d969c835ef0682cc5722b7783bc57 GIT binary patch literal 29275 zcmd43WmJ{X_Xda{NGl;JV9;>sMnaVC#!E?aNoh$DMFl~+ySux)`_ip+cZbZm`uolQ zzt*gowPvmPFrQfP-uK*d_St8jy`SgV_$et!;$V_tA|WB+NK3s@K|(^NL_)fEf{qOS zavND@41O>;ifcI<*}iwRGBI^Tk~Fa~u{UruF@9?3`qbRf@x1^m>w7B$8%HN=D;6VL zYdkjoCrC&rFJWq0j{p5T(mgQDhxlFfx3)8)kG!hdKSqZ}QR7EGlYjU{3114Hsq`p# zC8Z!YP^g))udq&!E(LZyTPHm6Kr-#D#Q&Ay?Eo*Q-~&#{PtR3+u{28bl=e!8U!#wO zrtEgTdoNp~Nc|QmL}gBKZLDFHTR;xrH1U0)78qO51x@2*|N%iayEgn+jx6YoA zjFF5jl<|Qy`H4(C8qGZRd?w{0yM~|QSB*2$A6H+tlha!;BRRj1+CFR43{RuBpHBP4 zk&4aL{Kz*+aN}zzJ>!S7pP!g=^uGuQ%rj0V1;1UnFx$JOIDNVDSqW85^W!?R7o!Gg z6kA3n@_|$ z7^8h>vRrjKS!wZHd8xlSePs{7DeOBY&!?@M`010Vl6gnF5%F9^Y_9{QL!g&#@QRL# zI4|tEbzd2WMRd5)mCI?tgyX_&nPDjwAGAnWquJn6AJe&(fGo9(4}lH2JxIT zWb+XTMQtrf|B`W6cB9Z$2qz07uje}qL+24yoT5mx5!*{;pPy{mNPWU7u>8xAt2$ul zTlZMBmt;1T>6B8HTew74`_=Wu*V@Xl4B_7vmTRiAohEH>%ivirSr)iY$DZIOKqv!z zYmd7UyTx_mLxXcLgtPfLu@a)01^EXQCx-cEJ_qk6Z}=aZ6Ds&B@h&~{)c&=EW)j?3 zqgIQ32eaL)-xW}3I9wU*|1flYc-*@M!j~kQd7wQ*dl9sG9_d}+a8ZRv1wgh$v^Ad+QcK=LXY#F zOE1W=HN8cv;(ZVp(An06gk+N;{pOY02fdwy2Rek3*If`l+KKiBSv9T>B5i*^n)&t> zc}_p+6Dn2aqMV{ky4YwN{L!?LG-5o$S8tS+MT?(eVrJ8;sJVqazumhKaY>6aiS$LW zF^IbM6nW@jniMk|lQ5mI*gv764o;}II;=ww@w4+D44l|^CQl*Yw|wk$RPeWmPvzj3 zVvb-U@IwO)4gy4TuP7A!qD3l&1%5E0{Qvl++%_dWFRRt_lcXRd(HCIaN)(TM#cMU@ zH$;#scjVpyUECAN4_8=YAoB}K|7X^-7jtk5&{wXf# z)5QM^i)7=@d0_wNRY}^vul|4Zg=5T+kdTn`c^CaAuiGoI4@gIIPLsNM8U>6H$m1VU z18}k0rS0uLcd(=0Tk%5f&OM$s#2VLrsev_nZ#BON6Lk=UddoZfYW|d9iiw4VN+-V_bG$QMmRjx<785f)A}1k% zMn$*uQ*bYtYj1DQ;|n&hBmYxKb0#ULsT>ohu?bDnIxH4g==30TfC` zMdxF(wX)JK*^LCd7Yn}4itH6MQ!$B!kIL)909ZZn9^!8keO0!Ljq-6kIXOA%Yhlny z9S0mb2n`JlmB&F#cgTyPraxEOHZ>-zy%DRLthwu}t3u~<4)e868R!J5GyxmsL#t|x=rFR!F1iYTj>eAyI#D*gyU0E4&FDq`*T~qvA*6#w7j&GnwIwV z!)&EBp*Urw6dWHPU+hz*^{lCxnd+GLJrwhhc(Ke#Su7i2w0{Pg=p!a1EUxJ;)UAWY zWU(5;F1L%C=;u;ifAjapgr>J!&y+t4s;jGuiz6Qm>WgC4RBxI%y54V6{S|9j7-Nv> zus-M$Kc)#q8h#Q?^lr3RFA-Vs<>7r)x6`c-mfG(bzTsb6dFS4L9x+evI669V-kk~Q z8X2*>y*ib1nu=j5DZjbeE+RCauRVQ^=YGETn8UZ+n+U{-DK4M#;!DZAyefac43qW2 z1ZGASmY+l~o_z)bK3q%~G3gDNB?e^Yc3y(7U zLiva&11?rlZGfGP2)Gv1N6YFAUV>WDb(hgMgx9tzNMne%xK+aKTXL3>Ug_Rf@j&TT zEQzN=Qb&Ac#>L`k@#{KaLnrAooZ_a;$;Nekf(&HQKt#-AuxlzDt=OW?{voY7b3&~+ z@jJ~!1xXDJF%3g50jG`qk$s}|!Ozb{Zd!lOEDTaSxLCYJPr^nzMGW2Wh4rn%XgI~W zh;*&ky{bfK={R|P88p#V#L%n}Q9pKPV-@SZs&6&i1JI{$8xbc~0T{TN|_ z^`$~j+}-P6?9$24oV+ zpQJZ!`h_9X^;LsN6Ar9IIAfY0qcE;sQrLr5r?js zOzM-24sY&^k!QiRbYE=aYQ4*~s9uX_sDAqcC-UK5*qJ@EDrIM$QMQnOd#9dBoBe37 z;VXAq&B6zQMINVnFy;HO+2(u`4_zidE*BDgNz4}zr2Mx5w$Wf9dY^KGcM}|qg%NLJ z1p|s+_=XT6O)z)z%IS(i317{yv00MpPs%(Wpy-?oX$5PxBw8lVWC4qPYE2Sd5m01F z6S9W8ye(yrj_S?*;}A!cIG9L0m?z-zK#DF^Qpq{=7PHJVj&*?z$?HXLRb<*L!cS1ojY4-(>T8MvR zErwlLmMkycisf;uX`nS#E0N_4H8mtJmJ1 z^Wht%oikY3=$Y>b8KXaoYP0)_u?9Z$F%64?{E#rd(@GnwQ$bx{!J=8e5USara_@%i z#0Q+Dr&d4W7w!L9EbXtkSk601W(wI6drtoxqOLLj4EPEj@CSE@1V{aL32~@r<>+7( zxs#8xN!M9sgXAEq+!TyQ;+`jrba%6>dyb^v^(l zpH?ivvtdQ^q`{wj5?!xX==8-uo)X-8?3WdF7c3eV)Tv&M`iO1v$vwoya&-+^KE1U# z);1ltgueYEw>l#>xac#R?S{kfbND_EPYqA#aTUU~)NLbcKLKawI)_>febh@$BBZ4q zO|eU}IuyprDY9E3(Xdc4%T~Efb-P1uP~p2Cn%eZ| ztr_J7weqO?u6fv8PQu6i!HqNHX;zyBCpeR$5%VJ*p=TGuL|af|euJd^B}&<$Ai1if@}gg`~Bxh%-q9 zTmNDqrvf*eJFuQ5sYz<^v#qDp3%+MUoHeKV(!;gxzuJcMu;*kIVzWkDRKG1E*Qs>K z`vm7$X?I_0+mP$##Af=;MxsSqk@tY#XSq8I%fEFX;y|o>Lgnp3m-%E0ztv#}7a9G? zAl>@9v*%q-nU)OMb7>b(XMLF+R!bwVD^<3uXS1ii&q5W-x7~3mWy8*UmqN#co{cQ# z^Y2r2JA3lD5=YfUo{sJa@0_}@bR=YIkqM0a>T8sLnBY30pSEaEpkB80{;lln->sBV z6OzAI1;OEgA?EZR%;}A_A>IH3B+jOG-fX8q#bHz6O>FgHC$aM15D;hE_`>V+kH-9f zxHkXW$i1sRO{J$hfi4X4%_mH%UW9ye*q%U~?F+kG zE;Ot-X%G&g1FLk6sJZ9RBE1Z~h;TQDP(&W~RV)lEW{ zUhvYkY3M7+(slKEHIX7UBUrT{EOa*()Bjo0yiupGu<2t<9AU-w$h!10Y)0YRtG70k zm%4R0OikfQM1)(stDl-B*T7AIt6wi?bDQ|O6XU$$yZoSSje60h#qb8}Q5x&$>(U`hGk5rai<_ME#M`f?YQ?+ z>VJ$n@@M{3Qh^7x5LeNhOD#UKr4`)PY1wldB$yBSJyPizGI~8!`371xKRl(orF*#B z-fDqGfS=ZM<%j%p^1SX*aU2dKYeGQK<>5oj;yjR`e>^(!RfDD*J@slR0~vw+w&vg$ z86pQS?WemU3KUma7rVcf$v$zpU=^TNg(&d{ek1Dx8O2QVs3pZkb)FQ~f9?wmh~YEf z2|g5m7R^ow_Hg-Yw415|5@YK-nz#hNja^Uq?{l<0l-1NqI}}&LhwaJR4(g(nY5$5D z`JS&AD=!k|ZV|Ayv%@1_GVXGV!(%5zetNaMc(*oTbpMi~aMxN_H%FzBqGC$IgMu5^ zf@9*7fD74&gWaH$j0_!Q*gZ8vs8wAj$s~(YstPQm?lf*D?U$9I^3mn%eJ^{1YnChZ zw+l3zn3i0P-w_w6Da43dCsF@V?Js#}tI>}%jv1J{T49GyW9HGd)p6Hvzf}sk40xq< zzqB{|d(RS7M2lyuL04>UaTBl6GUlAuU-u^wJK)0&EhE9r(i}kdez)_qeG7X?>TWleO0qhoc-~xN0dFYDOM$9 zr2pm{v-vD)j1c=OFDj2?l-J_E?n%o1Nlq8pR~aUK8#%2n1PL<(ODF0Cb119HaVTcb z=iRPPlC#z@T)HN0xKNT+dKwJPj|W`7H$i^S!Jg8bZMc{HN{OLyW%h{4D=&|4I%`Gm zw5U$qum=H*7l#65ni}T|FJODAUuvZsZ1XGj_BhulM@==F6t?GFAMyKAEZ~RbDYh`@ z4_%SzO9p;*6rap|Fz&6bSSSCwQ@KoK8M8#JaYpE;<63LnnMz1k#r69u>E$Fd<2nM) zePvZ08xlr&)w;JA&q$Sjy!|4RkrAog#Dt0IkY*&d&T63Rca_nh^tPuX(%9I#ZrcEc zv2Do(W8$-{z29NA?@*)yiQ!-)+tmNFSyo4t#B>`mW$uz5-WawQCJ|!tmCBUW!o+za zA&B9yqq)K78)h;q!{bFd)gN{l5m%P10q>S#xwcNFPI$-JMX{%QRZK1U7% z=dO%<-~G2!Nm7E6p{+>y@XD4d8`gGNBW+<)XV?z;J6pf(0w<|H_awMtyO0{B%1iZn z#MsxZJl?2_)oPJu4yKo7N25k)*EnX%E^;gVf`fyMcvxveWp1-HUdLIihMiWJT1@|~ z%w^)mZ(g!)L7mw++_CV2dydIp`?Z;GQ{Gij;VbLkh{`{e`qQC%4eq>bR;IK~tYc%! zm-cpM!6)CiV|6sANMLx~Klv(M29fjhhoaUNqzKY|p^`hSd=7=ZXX(B|lVUiM16^IZ z;@z5cT_FkvFu&_vsN_g%}kwq$9uv7RcY z{3f@?b$`f&f$a;^Qd)%fUUqb4=~Qf3Sa)T5kTn@}f;F|I59^|F(w(A@xvnM&ypY0D z|8;3CC|l-We!T3ZOXne1)#*0cqo$c~tJ@Y(l=f9+G3yYqlNOBiTF~brm;PHRFPpqI znCeGLJ0VNLC~2I$56@wW?LJ|-=suRV_`t6R{DgfF}@eS`pT-F9hO4* z?F`f4sodwoAD`TF@=OB7t})bcPthIYlm2x1@z8;UHB3KqVI@~~6>ez2iE(Lh&S&Tw z6-IQ%;we+Pe>n;N+-9DT{@z}@eSzwQ2bu(32vHNm!{GJ&GP)=g8{egeJ!4w<1_Sy0 z%#ucMF^N>M8SVJUSKpRes)WO7gEEmSA{=D5AB0am5#$=-2$V# zZ@7lveS3580}CdUUbp1YW8SK4BCIy`?Ah(nm-kZD=cM9qN1we>0Et#^|NeZ+f$whJ zR7ZsB$Jw&xl8D7JUIvOgXB_h0@v3rruM{@>@m8X{0?Abae&|Sa`Im-67IoV3g29*c znHJcdCOJUF$LDO7*X6Sd$T;iFqNHlW&H#B(bvhM0f zL?6j0zOd>^6li%dBsnV)IjQ|I!sZs9c(*i4(g|dHZc+B3eKzO(6mn5W(=ccw6HZ zmRA@_2LZ7;yDlpw`a{CEh1)M)V#jn_?XU$U6Ac-%s*#Y4u*K)JBulF5^Hm;u-}qS?4W2QMx;Jw3;qA zh5SGBC+!>KH8F@rdbw|G@Oj{U1ROC<0S!2~Z{!*Mvywz$k zbTpb1qqXiZQ=Wo)W;)Fed$(fEHb=v+HYP?L!^AyhnbwIhUuZ(C4lO8nQJE!~VxK|; z9JuwS8h_+Qd5Vh#6Y(TIrv6k*2R#9owoXHjx+Yd6QNqN}7b@JbE#GZT`>;jg9d@b* zU#bgST~_r=kD?3YXLqbtX1BnfSBWJ^K`og5id&g>4cPsqWbG_!tLCX~RO2Si=USpv zq}$)hDwbvLVxrx31R8SM6M@1yVLgOn`cqH(9M>`!Smbs^eN$5?@%Q|eD* z6ZbBMWV!B{46XRG>Sfls5$*kgpXbcS=jj2Zw!KB+s$FaoIGnfU> zZz>ZiUdGLYuYJ&6><-c(WxA9sAr#j^dM%EM^QfJ2KO_uib#)rA%aMc1D0{Uead*^| zIGS}L#wHUR6T;`9ptT!0qAHEF5uKuSm9(-;haJ1p__Aft1*5I1`R&li^Ez|}5<%fM zy^oRy#rhcMgS^S*+*cjGIVI3&b?#?knG>Zt&Cw*J9e zNhAJ{+gjNufADc{#1{nOqXM-efql-IGtZ>D zJYy85gF_*C$_+3mWOyn%{Ht=!rF>%(wa{_>$K-?W z)fR#O8#_}fgKhBT7X6?28FoLkbFv~-%Hi9gQ#umU!{hMqEIrLWgn zLwFwMAFf&R=9E@P7ulJJ3d$5PY$wq-MrT&ityqoz^g4t5gAb9?N>Y>AKzSVCT3`t( zI?e{vA3(hH4@u402cfzDpXRh~?jm56z&ko5M&9gTge$fjquH=m^2 zR-&dd$jeTlkcD&RC z&(IAQhY|_`8;;S}?vX@NZ`H$$s$>laDyDe~NhSlZ7QYKwwacInD2BQEeqeit10<#z zAQcE&ZA^0SP%G;v3P>)Lc4C_@`LvP2z#$-BfC>VzZwoKzcn<}IUIh{+%G%c#+A1Hp zUMU&~lVu0Ym#qW*?p2pUcYTLPJOn_@5v)vB~iFTNWG>qwu4Kbj9$A=3o=;~NnvGo`g+d`FK3n%We1dUJ&x2q@${RzG6L-x0RUM-XBgq zDO*W~bqi5$&zTfArkDGBPG|JJJ3|#s7Gv4Nw%<0?(30$|!~) z-UUX-a$CD=PXtw5A@4%?PMPk`efdu#8~h)3d@0=TKk)7OEO@Ra6&h8vp3J_)`Hl;n zuh_VT-p?9guJ3=Y%+7XI*wdNPS*nF{{Cdy2fk^k+BfiS&e|xMG>5)+XQFR! zY4E9VYyT&jzE!f44#1_1qk|k|&w^SKCN(2~gD&Q;s|skb0|72#V^M z-`_63=NVJ^*>A(T{>|{~P&JGg+4*>3YZz~p-&}6a_U-_$S!V3AmhE?kVKS+oR-@th zPEEb$7hoH}sB{pIUZ9gBfdlfJ+e1uZ*O}oS_stol*y06ng9Tv>zc|+tk7u2a^!|;qV5T-$vK(K=B}muO!FiD(ZX+ZS ztn5wH(?f%z@jIX)jwZ=8g)2Pt+$Zz7$H<+}dSi<_4Y**f;;6E`%e^i50M=r{V(;W5 zrW@_Kz1K)!rV{;sbsGDaK zNs^I%a>FPZCdw!V74tWAYhSke{E#xe`ECsI-g+# zY$@LFAAejf8WjKY@EyR#+yC4U?^mb;4)gh-?d+zIJ;y$(JaW1?!9_sLdh3~P{iFua z3j7$33OA(??sb0^h6GaqO z1?LehU3~S)?M__rehg{u7=igq8oe(>LC(r#;iG#Bw3Utxr!!Bb5S4139dX_B3vLM$@r89GWl z^Xk3tJ`zH5DVLDn_ueN?2Wm%&8C?-A1hH^ZSGlJ@|x z9u6oKvlhc2d|)l+slL>zpmx0m`5c(u8*UJ2DZ^J+1axNWsD;9UkTg((gs6&o@2 zPec~5sB^(gPTTGhC6{@t5A@!F9nPiM*t{&U{Ik{|no5Q+xx&rC>>i!oN<(ulSZ!bA z>|SHB(ZhXI{BdxKt^fxW(1-IHCnCb*elcY*k(1%rHbv34c64;VB$A&6*oKBzQCVEz zfyxIKzw{1swgbGs10zHy;t4uajeUSVswa;AYozzbB^C@l-AlU7|2LW(uA$A*tjR*% z>sBmQYPw~f;Yf^FEuh;FRsTzWrV8w*FgHeP=qYu(i>Ifjms^bI0@=uk2q5W$3h68g zF)NhKMzwxi@z@QHY!DsfW9)v(c*|d}DG12(&9fUoj&4AmR8w4oVnYEF%3AW>-{1e_ z0CmStd2`u+SHlQ1GJ2Z=gE02_E=aU+8Zm6VYY@TK8< z(~Rts_W*Q|({^Vh#apuNWFoB-~M4@0Z~_R(Lp@NdeC97sn)xh{KME zcdkvUbRdxL~g&@e;~Qhm!qLA}YSiM0=&A~3SSizR3G41&$HHlmB7V%V|0Yj&uoRXSVw6&8?Okxxl59gsJQJm8a;j)I(fvvRCYOP2kZlDlK|YYLpJf;^%H+@8r<>pva}4F1Ok zKD%AuwgTiOdfjP?i*RN(KxI&e4s9nlWMy)g!YNTy(%MnY2rLgr*`>G76C9JcaLhdH z#N!1%RI5Ar{~&j2qU{^WdHu1ndf#`lgNDEI$lady+A4}jWpHKd6Is&SS zf2Q*zI{%`~<2l~a5-B57TB8o+?1|2ma0bj9|9z*43@MG<)q5kKncWMQrednUOmbg9 zpZM#4CYJO({G3v+6D^@LSFwL|`QxgTBes!EajoSAfGDINdXvc)%2q^{Q`^jmeHI2u zrpk@;fnA{YD*ee3;B(t)7y!1Io7hkfY)Bgs*=aUo?3^(X`^dtk3-=Zppmc!~jEJYqP+r~KqSqg!b$XV06GUfxhBzc3a zQfW135#cD@K_SJ)e9k1Qw1eO0!Wjqu$lwT5Q%yqMOz-!tW_{K!s#RK%VR0pQ@8E0J zVo}gEeP#%yr)_3iKJ|+{dIp-a^`>gSkm_uS2H~SoTb%*j&w!4Z7>~%^f`?L&TB}U3 ze2xiod(;bvDbkdvEF6(0YcrTL?qk8dNvBqV$J{nWbEfui6|+okjYhz1yOv}D2sE>1_A`GUssJeRHQ-}V_U*D>@EDudf@`C6&czGbpUu7^@>KFi- zh#Jq#>nT?sGTB!95qfaQfP>*qo)y;X^y5Z@JU({NvtmCE&zW9tT_!Q%p^&P{AChXo zIFCsyD-v?pvQvmXM)f6j-WiEu#TdS*rC&wvc}T8Y%A!8V>X^gzJ`GRD&f+TMVI$vV z7uuHA@}wY^WYl}_h_#hH_dn`g&Ys=NaMxh`S`~F&fS>A#cZpcjI&|KgtON9Y^V#qG zsH}w~9)Gt-Tf_=?%WnvTW2MGR8|>qHq-7~$des_127ICoXmkdh_M^w;M>C_UzjM?8 z+V!yEx(6VA8&%X&6@;NP4ZSz3(f5fJ?aUy#HMG7tKR#bxYGmP};4iAFK)5J-4+J`{;XMg_4R}hUAI3GxbfEMK2FaUM2-;UJ zUllRU++11NDe`?48l{AdeqvqN@oW9Jj3-C`P)YwjFEL#d2wdltjr%H3SXkr?XGER{ zEksiICiF7rj!{mokj4`*s`NtRjK}L8@y77yno<)+lz^UJBi^y7;6^D&Q3~YO`)HDB zzF2AYE1%yg4>eC5de(Ht!#xVvu%1nj2)CCG&ASJcdmO{q?@p!(7b%R#8r4m8vu4(S zb%I;}(fl#U+>vj(#nTY6;J0_mCuea3JcpFEEDuRf9UCpZ54o0M#-d!U=EwdqS+ZwOQxES*dE=sDn6NwGiBsL zB7TWUdaYKhKn=Op_v}+rel;umT6RWdEA)$=@ZR|;S2H1t{BHG~^p!NA?t87laYOJ$ za!wo(L+K`;NpDBe7=E;Q}9^y4Jf`g ztGNYP@9)q)9GISWo7wC~VNYv$`qK23t{#v{VBT*k|E{qrXh(ZI%KXhK2O#va8H0e( z*+mgJ_TA2A^?JW;())vy$yj{EMBoifZhgTl-16L@cEUd!t511j)oE>@so0ZPT^4w~ zW2#6zH+2gF%v ziFwStK{tT%dG<;M3$wwVHB)b>R*k=DI3v_>M3e)-Kop;}ZIco|Zecrh`4rndAh~@B zJLb8oqk7hK%iVzA;L%YM_-&PbZxz-lVc;pvP=}$tu_|=6C{y+cL^Ve2fn)Rf{wwC1 z-H6$KvJ7z+;0S=MsX5_dPaUzdal|%x~^MjlCkJK0cm{+Bm9c+II;6s%5gVnb$g>#jpnB zjYM)rhBW#l&hK$1(aXr>a5PN_J1KTYYVYF{Z!Y@y16oo-GC6gqqF5$bVcPM0GP8iW zcdXC$(Cjw?ZlzA%vM8C(S3m?r)$9kdh^+>B9YZsrrdeWs@wSltCWC)_04-CxUix>g z*Z74G$F-!c6e$5gRm|lRvz;%^uG_HB=N+5qj3hjWttqDB^1JWdCOPY?FUb74&IJO|;>M<>Z~vavNNq@jewy^?s2YRe z^m^;)^7>1jb%}&Wbj8KN9;Xc0++5te+yYe3#Gq0ffOWUbXa9$|ZoKo7$%MM~@hsZs zIrwr%ep%$%1^R5-bivx(0M^3$Jd9PC@Hy@D%YZly6E50nS5zUPq_s3c;gdZ&xUmzN zz9*)U^y~kfHg5_SFfRYd0|2ddZb&w@>m^Z^$*|h5U)oeM1X_k3r#VRf*K8gkiu{}G zqe}g+1pI$S`kS9KibAD!$(pQZfJ{`b=#(h2S0e?$lHE~S?1-|WEYpe%i(NwldNK0g zlzi7;;`66Pu|TjE^^TlP0Ij6ESIRJ3j0bu6J$}8ap2B0|$4A zU~V&p;Wb+hU__k`^A#Z+8X&}@nEDGAT^Tk!9}imVtr9S)aXqtk*B~T3!m|*iP^bPD z;-9sLU-<##1ib(eNDw%wvK?(J=sH*$a}*}ilJj50J)3xhgir`;#em$tjI_Za>lM%+ zl&z5RD!stlFT&QZ4>(6oMg=3p8dC`~dKIJtjLM*>VSo-fvSfGg8{kboup&VLgp&U? zCABr}u3&ClYW*jQLV?q-FrQigQwWrAt6uk&A}K*YM#l{ROYy*mzI=L4w+|)y zZAsc}j|g>}PCx63kq}!jK|S52@1fA2)8-v~dACaNsg_Mm1EKQSG=BM?z6>UZ3D>mS z@woOUvj)BJN2M=*)|{5Nz5Xa#2a~=aGi<5pP^99-F6T0j!`R zlq%`hSV~h$st;&S`8(QuVGcU4&sg9Ye$#?$m*?GYU~U{KEG2&s8v!mFdF}(n@Pa7= zEvGBkOCS>uH@wTU6)(670Z*p+-aERzCjnElM10W`xAo=k=bA@)PZfXHP>)tw%k*8K zBb5VnH+{#*P-9Eh{B{TFgL4o%kHMVL5r6ih^1=ct$bHnKFN6B_Rvj+DsyHA5%h+w% zUIX-JwLz2;WFDhud+T6gj}Q~P&s*e88g#7p^tG~zztMFgAlihH|Gk9p0>JStU>O5_ zMG4>sfd9=PtodAsuivu$4S0Zl+jK{Hd!r3@hzB@MMmN9n9H^qflV)F{;ZU$?8T4{e zj$6Y?=RUFYa&nynkYpMF&&VjpMif|%4*rGosECmA@YS_L zJW;Xkz8@g1P6P+zEok(4_2eH2w*Xf`37YU8;ENzz^>MLHu z>wx$W>@6AS2gvXF-?&cP9{*3RvrABPt`gkCt4sR8zLq8O-%m<_J_OMGb9K5cc?TLx zx(UEll2XLHI{GP(i66=8-UJ?x(xYKYhH?*GkUF z+4fLSZ?TB_#r9%*rOZX^`SZx4U*L-g!53exbR^nuv3ck8rMQR~6yY%eR%27Z_`1C7 zVvMIJGi8}|Z>G!ro;d^f^5;*qO8XnFhm5K2s`V#Pg}8^5^!9`-{0r52<8fYK4#qod z4eRSeJ0+2ZRS*#i5tUsiaxF)f4@!psf{`%R0Wcp9@L7dFCC?6in*j%apd-#9wXH~O z<_6TorMj}pbCz;2;lYxpA%auuM8MRj$*ADeV3s<~afQ`JTQ4`yzUK*GQ&Zz}p>$-} zbU5`nHR<`k?2YFz+4y#(rOk9c|f z%fsATtc4X|24--$-U4n(HR}_&)|RYDz_|}-57b6j6R<=|@uSGrV=RaAPMIWqjzm{)I0^YF%fOY_?NOHG_6Sb8Ne)Dw7j6aOyiK zC->SsI~SPhwZ$!PcdwL?w->OAVN>^qo-Olb;ggQfLS4>D9UhKjtQXl%U+|beI^0h1 zq?<=LN{T3y>uYr%rmXV%pNPB zSzC!4vs7u*u3{acTGYM*0ebi4HgjC@}ir7bh)dW7v|bjkPk53cOxaUj0lM|~-D+BMq$@ZFz}ZT1#Xtw2^o5&@sIrys zw}n4a!8oAbg3k34NG%`JWB?W=YT3y%Mn5QY? zcaR@OVzF8jmocqaH$qYp`fGycmLWty7Mk1t*<_3AMPw1UG-$4^CjACcm8-Phuj#Z* zw*!Eoq^g(@v>PCUmKv2Q7r3XDZ&#CU+YRpINv$JCBOmuIknG0a7@-uffh14%g;d|( zw8JS)h97xVFbO(oPsAG=Uu~d6gp>F75$L>xZ6k1A@g8iECjbM(kQRUS8*sYmJ-7|W z>`rr##u(-cN_FMYa7}fa;5%O;zR4m~^S3w6p{s;vNdiAoD}N^G zWtH!I+_lcVFC(om^vWoEMJ_(yOUw#17lGmeWDro6e};uIit08^Ic&@;(&Gf4y#3aA z+>#ZO)Ok&_8MCCvz4e1ihO^9fQQ-FZ@8ph`3Gj7Zb|iwXobYwxXg5WNZwkvUYgr>g zbPzhPi-IG2b|+U&uZwX-L)c;55z=v2;bq)q(8qJEOQVl($&W{qd`gH-pwA)j(C&g@ zSZAdmrSYcFgP@FsrqXI^Cq;DYdDlD9l5+H(ZXh%><{|;y95ggU+~H{gD%=oym&{Jh zSkq4hg{c8Jx-j1=G^hlK`APRo3>ju?(=r^}Jp*vR?0KkBVGpE<1V`|L3*KtFvXv=L` ze(Y1`gKx@Rk_km1pOyX&9QNzc5!S4Wb>phS#5HG=wxVF{LlX*rYW69h6u(h5<9J9p zQn6Q<#{vnL4Xs)P#d)qO6nG>I?RsLrP%#G5Dpms zcDdc+aS?_DBTXa`CW2fTa6-tH5%|IPDxZR^T)bhzUT{s$2nZv46X75h;I2~odf$WD zgOpiB_*3Ua|2|-AU2pcizCc2o_#ka7#0glK(T98kNaiJ}#q_*e_ro5I3M~GS($|pq zvovDuYeE9neS01qoQTVC8}AuR(TDI`p{pUz?LWw#pZI0k5?s>VlfzJx!CU||gX zgO4z^TPE5HQuNxlb>8A2y#r+dxC`hW_cxq(Ln)E+2f(%QgsT&12U=I%Ou@wxoTO;Q zb1s~g-4}UTzOaN$R2XJ9aJt`#mnU7dwwYk|6s4 zp30t1k)+P-aaan39Xa|;YrL0#LQnbu0Le8Q+{pvK;3=k#I3k!+;z2@b8Vw zyasTdX=`+(DZrlwKHI%`Cqur7MzqXttmD6r3$jNXa1G;k_V&8zKKu5sxpIoMpq{`E zDC9MXq7LworjUY(Aj*+p!~!4v%CA2&n1L$(geJp7R!j7R*Am=u&-YQAdB7zc(3{!^ z@G;*S+0kgg!Xol|>vyEHdv1Js>%H#xigBJoX4=fT;8gqLPr(&6<^oXdl^5lT(h`y2 z^9lb;!u)n+!|K{uo8V4`Y|Gnu2JhgVcC(5r! zV`6|Yy?X7B=iH`gY!BC8l>31uvmpU%kXudRgVYNXWJK;KO%|_@EG=<^jq_1}#U#{568onw@O_McW-zydZS)kLC%U@V`?v&$m?r`|))_J#S zK>dOMZ1oVNffS%PB>R&D-ENl5jvLmDqy)lsu=VnYMS$S>9qbnO$yroyUk6BES1E&5 zUmz7rgF!RC{8{{ncmi&F(9?>r80Z96VwiEemTf+n2Ko?C$V~y6MzY?ZtJT?t%a1Gl z*jBwgF=)3W(z`rhiCm2MQ=N;{yFqLaE)cc=)b9zXV1>mf z0Psw|bQ=L`W`rVwOLW1H59CfqhKh%H1M+We5<%1C(J}$T804TA3@s$dqXOVE=4fq_ zTueY*fC~Z;nA94Wlyx#I({W{7dZn2p&!WeJ#zACn00s|ZZ?+h)=zh}?{umNuPRk+o zu==!obZ^oGNeS^!EAS19n#$bIbQWgiqFH{i>bC$v2ttnlmgvQ>n6^IvPg`3ZI2c*O+Ygb;9Xn6 zpr&Bu?u7bspb3x~c)M_FPW90%X`SW=qTp-{Q`6ne{o*!EZ7dH6GRODP*ZEF&a4#Fw zRKv6qX?OEMPc9E+7m8kHyq(U(x-cUE2csD%EJX8k`~`P`4+1cmDuu19=^8<_fV9FJ zR5!zHT^b(if}4$*9^1tu@20pMJxYh1fvY|RMGIFzO1;N1#0633P^FLn%w-1PAgcbP zNKk+^l*>y@Jp(Q5{)i&fWa@MZOIg1Vl9m0d~m+ z@{xhBE$`5AadEM*n7}{OxE@Lrii?b-JsVRHf0ZJ6r%j;4dx*!evbx&Q*?FXgHC1si z?>)_0{N57_!y6%}!^FqK`@OZ*>poy?Y>Z99mJ9?J26R;x}`%xx}=-C@caAy-hJb}amRJ|4+GCR`<%V^+H1`<=T!VHb8D17 zJyu9{n!yVQKLvNgBJ&wTd zp|5HF%~=r%VF3d02LEo&Za1@!QdsxC#?DJgS?`^ud$6SIg5v%iAg6b!SXp<#)#2I< zA=UHLG%=A$ry*IU$e@E@4e^xj`IOnL%Q9kbxv!AW!c}Xq-6deY3_Fg@FMI2@Q7~7w z9;@lsdS_(_fUd>ciXfni1qe=Bq%;%4w5l`yb^I0Fv_6?P&bqFov~I^pBr-lN)1)8SOl-Q5f7G*Ug!I_OgC zcABt8E3K}6rcDyaBVx0qq@=2^F3+UoEgMdjj8k0vdNdY;Boy_sWfMfJ!@zvxXloiW zEd)PKvUOKJye<>GZnS=D&^=D(R@f+S}#PK?dMd?q)`@77{PxQ43CU*b3xoy(PsFjvPlS(RAOidKuFAVKAu=3?@` z%zUaUf@UroG`t6loW;KfOF2CzbiCG?D{q>{x83J=49UXZ!h0LcwL7Zgg>#>`$Z2~f zdOC025|p?Rj3@tnqarPhH=ZYkghr*Y2kWDyFOY3qV~wO5^*~C-K*MV@kM@+uYNng; z>Ube+BI^+^@9X$Kd2i}Z*SUF0{EZedZz25#iqz5%QB#-ItT^!yVw=^-RlC-hn3#pO z(9+UUENpD1$B%xR_35#1`sa-B_ScfmuLtM^dyQq5>Izm!O91k4#AJc zjcYYoYD=aBFynMOue$+}JTj4Gyk(o}?gKR113FhzoGcA!X}%C`m=l1La{n}FHAqrJ z@k@bfrHa?;@m&H*4SK`lrYjO0bO0TcE6{fszR7Yh%%CFSU0*|z=w4+{4pN&dKz$$n zxaoR$PskUImKj_=l4l#tpm*7#bHUir&UaAh0UAw)&=n#iB=9paQCgAd0&{|#ty>Iz zjkXSpi>YLF;lzL@FW`+z9u^4L-}>jJVv+zD+%5%MAkBxxmg;rgY(gl}yMZ7~m;dPjb0+r4tim`Dybs8I)-XugD|H;(vY7wn|1rO>2OO zz{;U{Xf}z!9k1j@3{zuyno^~H=F>N|+2qEi`+;NvNvZCg+mMMDqxgp z-5l#_k`OwkcAs;*yHk-QW_rHu@^WH;r~d!Bv;CC5DZ_u-YXlQzLO~g zc37~=P?-BpYlkp*xG(@dCzVr$hC?%rvp+9Qk#e|h)ro3Ubv z#EpJ_N-`XDfCS}UyqmrNY>G|z680bWwet_|*RmBcx)$Dl01gxKs)U|C`;Ct&i4vEv zp}Wr^Lo^&-zvlHM+U%EF#b29>fQr}!C-pm_siSgy_?KEnW>I#i{#KSj!I@KZHLQNO z9LW2GS>9zxn$Scp^Y6FOq-N%)bWePgmLMVJN_*pz=PB2TDWP0I`^o9{VLyhBe`6@JjO4TW6Wa}0tRg=S)mwz?KjM`=!zxRx(aTL-CW zh7yEWD%wq0ouR0qc^JI(?4u5bDRKpHJxpLFEM*y3hAe+gR(g4X^UY*wc#vi`tNq(P*&LL4Ry3Q%xZjx8N){x|m zth=a~a#ceN&W{Wg2sAzbKE&6qk;$CpRK6&eoqz%dCwY!T7Uw8JC&AM?KrY}LJWOEd z>KXb)!)$QN^37s5wlI_98esjeAUWTpvY#4`(E+*Kb>%OiR6W3UCEeBDk^Ox-tO$)0 zi$T6icMgihyN|M7Cg=>L0%sO2FnK>!z*B`n*YtkjwnU8~Jqz7(R@7fu3L?mbb9br? zx>1Y;CFC91bj(E)kc$|u2X8%Hse5gmK=+b~6Q&rj!^qQC@%6IB)vn*wRuF`>YH=3M z|7XWax*ZyELa73TI0ul+x$*jOG^`+vpY8AR13gMijXFE4jgkwmlkQ`JN%*E5g3kuqu)9Z7=^p2XH!V%G;` z_-pQ~S^-5V99#8q2)FGBh_Aqs%>|>TS!^T?pgyO`g@~^enh9}?)VP6PPih0L{DsAK ze}NO?!V`F3`9pR)W6fPckEQw+GkO*&!W>LSbJ}*pzi)UQFkfOIm6=@E3>!K-+0eEf zEO1{xHgz9N3^;o$c+2nkWD3<@?2gSZHmR=0_3f=|1CSRYq6BeFP|nu*X}h2b8-Ln7 z8)nc&Dx-nhL@6rBU6hyIaa!xYf>w}FxzCu+NMwQ5>d|^))yue8ul#f62Hu49&-&}f zt8aKz-2@+9Ba`}8G^p38Ka!m29{L=jMZeT)vb4AKUm~;;)Vp8NiC>;t6d4setbJA$ z4XXtDiltV2+nqOZRlXycNWrH(OcR<2blov?wVAGjQC~UYBA5=EyuDUI1U^KG`2H(#7W zzlhI?Bog2Cy@G2DRQ}mXVg4c0obDf=*LrP}kMZhqrtUKW4|v8Qrfy6{M4`uSi*pC0 z8FoA)^e{4&0Y_3I8&@`(e^8;JgUA4aB8PF5v42D=1Pzhy>>VXsKvJx@4BHf^=>5 z_UxAddC(N6ISS5BFz^nl{Pg+gMjRmI906Jh=z-9LK6LVa9JJ{HKgeB7u)64N*tQP| z8OEniI@{)7@)k3Y`vHwgQx0+UfUZB3Gnx2;J@<}R#1*ZV?#uDsZalh0spJK+!O+p2 zTL5Rdi(P;($fSE00styt=x~YeASt549mL_R1jN$-_{qzNfQ1E8Igr6hTunM#HM5c) z)$i26;qmGz;zf|{$hh5*T;-5ojycY6csxMUX?z4)Jk|E(wmbQ__gu+6rV7^&&zB#~ zOe#vgl)T{$Dk2HayU$;=er?`^dttTn&Vhf;k3_7*t>Y0NOdhM457v@9aw)gf+UdXv~4A73t8?##( zp+R`9r;?VQdq^rb(ZD+4vmb6P^mzc70^|Tm08(?~q5DM>NH!;j8?;s+)|34dDevkZ%ea%D-%RD1ykX6AYpzx15W1vgb9KyKyZ8Lo$5YXpsYjR=7*>FKdJgsPpKq#=g7VqXps| z)FP#U!t_!q&Br)TQoP&D!AkD4RS$BSIBaYN#$Xxf#n}Pl3+OzQqq63}(Hm+E>oQ^8 z0Cg((AB^uCqk!%kG@TDkk5c($0!Pu19za1#FAANVnT%|h7!Lr5g$ferdpawuhBDL} z2xS@9`Sq@ar#tv^C>FMWY-?H7nJzyE#z5daSS2DsYQxScDg3wDN}e3!{?!(ds>k4( z{_i)+{4G_3wtN9rJZ zfGK_mtD`N_<$*pdzYk&EN_)Z1VBNDhxv$ufbRYNJsT#Oe5VTJMmL9NxMu6^3X7x3* zmbs4w;+F~DwK@ztCT5uO`coWD3cDwFO5)x+x-SrW#C-=u7=Qpe^`+#dOx`cKO*w6I z6;&|pPYGWZc(CwrLD*F2kZZ31pP$rYxiw{eVHjL&%#H+3*tajP4tsA1`Q>geguN4- zz;Gb)2{4n^(y*AS&(9hDqpETtl>D#{F;D|-kn0W!U2sJ^VmamUb z6%9W1Q7{cngk*^nchXU#8}UMSZ)a!kR`;owu$NHjvh33N6$q{y?Z6hc8zb+t`{vJ^ zXU<;D9k{`Vl!D{aolji)L_~Bj-@g{1XKo(~XH;pQ9BawfV2MGdx4l#z67aA3`_jOu z)`=v1H|`EX&$0ydbYDOt+Kjit>BQR>XQ8C|xQnN$CfDZuTKP>@y0XNj~}ov2Bwuga8=4J+?>jF z@f~g39J~yIl^`;t1PF(7wgJNEmc`9n;tQ&J# z>{pKc{H670*epSzIeRp|+rNv)FGcLXwSRfiurPgAE|cW>nWN=r21Z1W4?6E!D2 zbAToLg?yF622s69wWKHK<#50WzkAT&;>#DcGpi{L_I~u$sR*)*4orBj*t~DukJCyc zjLD)2ebCEjPK9;o`SyEw=M|Qv!kglG!?wIvUKU5XF>1}!|Ew)!Quwb_%Gin=B}D|5d58sY+-I3{5rohwOa^F zC2lIKy~&OUg|6FreQdk4uU7TfeElR28#27A->xRfWyZ{3GWLSSckBo{8(nC2NxD)O-BY{IBz zKdtPw(6?`E=hozX%k4OPn*$cQ@e87+f_SpRPd`v?BwSXrGz4lFFDX?FSCKos8t9F6 zyqsqyeuZwkLlPD=141RxkZ!^TmUaHQoaeJoT?*xZ@G>tqC zk?5p6!%Vem$iO4t_eL=`@o;SBGo5Pod;Dqv!64!_q zPd<5>=adqn>(GP?A#V@Cy@C}zF)u}2Fhv+t8p+>HLV$>kt zGts4aWM5f=sx%`78{UBpK%M z2hS6v88Y(i%gxvoH5A-dMrl*9GadM2ojSTx%od5B)vAB%WZR2haCD%{aqN!;zuwD_ zw`B{yycS?xqHrzdSGwCnf3APDgDW&wd!f-CJ=+=Zrflluq?cmE`y(BHTfWBfsV$2O z8QD!t0_N49`PD!4`o+Sq@82K`)b#RRaX;lp3qddj>g+t=6EQ88wN>zae&xf~ULG21 zrl}dfsnJGL8G#m(B5Qwxac*VjRwPCGGu@B0z0q9j-vb^I%aTT3@k(wp8V)nwW75(+ znHRPlOpnW>5?3VZ!7``erF%xo`whO_tuNocP1gui;bkUNT-E0mUc|5Xrsgo*F15N> zs!K3p<=~l))v`5H-Ds$#HgK~$Q@v!Fk3HvLF;jhCo&dv0xKhBQ-WA8A-%``@V1wmbbjvhde~ichoT<OU!%EOPQ5;tiHcvC({u{ZG%tSP^>oCTK>T_j8u{q%JW0iex)( z-@Ki`7N%AAhr_szT>WEO8F3rJM=WC2KvhNKaQGBiyS`?n*f{8>+^@|hH`7&7cid=7 zLOD9Ydok4~T(s`UQVWmK(6Ya!h0Aksf5y?lj<2%KydfQo{E`UV8lBI^LVwHWF|{=< zF@3Amk&<{q%qk=rsKwLr*1AUSWJA7KwVi{a!IQ)0k0cyys9y^6`S%AiYBiV#lM|iT z|0EYfu#sM@p<+}igwXGOUDfDy9Ac2)I5AhVp!6_de&sI ze@Mtnzgv^zr4Pts-Kw-NCENTQZY@JpJ%Ic`Ls0|Ud$NeBZzcYQ-}?KTp^h4oRar^X zCPcnInlYtqy^E#fv7Oqc6SXX)4cW9xcv}m+307Hi#ptwJD{)9%r`V z(0(DUBVmH+V+m218^07~}06ZZYqgCd5u;Yg9gs;;IcH4_hQ?V32sv!82noV)BvZ>`Rw zl3tMf2~69$_ipOaFt3+-;W!ZQ`rY3tOEqo_?{-SYzqz51fI8WKqH@S*N2W6*H`7M@ zZf@BUab{OatP&fYa}sov-0QBncEgcib=M(IX_`G<~I{CF-J4^Vx&4 zAWFePmYKw$Y)G`}Ni-*G(c40WfQ#AkwbRpms}4>(aBgb!h4D*W)K zPhHXBqSJf_g@yUPLHbijdmC)T?uX=@i7a^WwxSOVFp9?Rnc1Q|-$!dNc=XNBs>(T& zp)TR`!l)&!KlSyp-4OkXj!uWD`yOBDu$uR%fx9`DumP1lB_7)`-TfkXyG~{KuCo03 z=>GW*hjp9T`&;jr#62;bvC>+3cCO-e~lcwdK7l)AepIdxkrF&R@Cd3|e95JOek za1HtC2Hx>VZBg?tokJh59Vw9(5=keIY9jlE`8}fabni79%aePKH|?}m%!IQ=&ZNI^ zsujx2UUf4~dTfZBoGa!Qp4XAp;Mo)Jicf~G+NrAkf&{KVE*_yL{wg8{bsGDVyT=t3 zFX=|ws_2CGmv1rsUb-#FJdppz=jMisrVr|#?RTGSoEn6%;JusiIQdCl)H!hHL2c|8 zQd%>VqbI1G{_jSR{d9TdLQunMnV2?2$8k1}0|LWsRkm73YmVOq7WS}~|8#n$VnB`>b7?Sc*2t71tu%i{_g5I6_pVi+EG>*&nqaxrI zojnW4eEwE7_hrzb$7f-6WWn>5+(d>*wLYpM8vo*umC&npDTC!`VMA8_hX@+Ii&v47 zQZl=g7*eM(o3+2+@4gZ=$m0?!wHy9uScJddYhJ<;60?K9q_y}U@lOOdd0WKpzHA9I zhl?7Ouef^^T16O+SFnw@h5Lsc95z=JgLi@7^qd~^^GX;CYvN2Izs(UPd@9%S`V#YY zZGXu+Pw6KFTCEdDy$JvJ6C9GC|NA?a`uB}C9{2J)$fp;ue>$ez;!k$>@nsm7Gpg&Q z=CJr9c{7@@IW6(-ul+FoI-I~F>JRo~?->a43V#H#XnhO|$FfBkq8@8Vaz2=E+guzR zhqUekmAA+J@n-oZEw+qI--Kxl1xIsddYP%2$g(pe*^+q8_wo%FDNFHD|c(ZUCm+nV6*K+Wa>=*B?3o0bV(^Jm1g$MPAP4j?Ew$P zUz^nN)f}trLnF6p6~BGJUog{lFK-z&ibqb|ey@*}x~k*8jNr?8!~I;3R!vPkhKMww z%0a^MS&@+GfR0g|(d2uc-Y*M$cHm%q{YEJ>UA6)Wsk{qa%k@SbQb1P));>jJRvp z8qNj+%F2olT-DwszcVC8)%K5KG13z;v$f)xyvep+h0TOX`PH%h^mYGm-^Gx|{5x7y zrZKtjIKAn>2!Wc$V!rF}bfK)^%EZpj8|=1!t5gv&*!17aaHDit3CIFR3FzfWZ~thM`F zvSi}w)|Fu*hoVx@hvX0GKmV<`3_>O>_jT=_qmEylpR3T8317K?_Ect`C&XIBF)6lzC~`_)6GM6A_N;=D94;4(?Qb9>!pNxTC} zjVPkw+-T`B+U-&AlhKRhI`qx$CS}}qJyzcfvez=6(i&;Y&xMt8U&3)?(DC`{Zh;5R zgp~~(Ol;0;XNwX6EjYwtoDyWe)5i6>@9z4uda5qX8VPt2M+NG3-auXTRSK)?l-rEdIyeKRyiF$!lQ?)QwfZLO2aW9D;Y_HwabtSXo^kt}=TZM$mLW4>$Agd|?; zgX%Kw7HwATypsN0K`H+ZC4{f-SzPaR7=}DW#0~}jV+$1ayFCIYuV!B(e0T5YT_4zv zQSU;a^6t<)$|TS;^{Sd(-w}@4GPSsBnbqL1qbDY>3KNZ}EKc`~c!q6c;D4#tBR6XL zFPB4F9I5TIMyRH9;3?`CraZ6W-y_js{_vvv;%=<;6s74PBx$3Mg@(p!43aelXN|_% zoSsd*fYh$nI8IzeD01nTjelh> zCT1z>M?Lngo-70*B$IMw*_9;!#sIuf)MsUosi9Zusi*ws5`5ClGRP-+Y6qTRLV6iN zMvnCPMpi3p6;9V~$R~B(s@nnm|AtXB9{T?p1A1CP?$Akn>Z1geJ^8g$S3cVxUkY~QZWgUCbgs~OQ~MTHZKcKTaF0>i)4=2vNLbu0Z$=yZIZJw^_Q zphHboF;%KQ=i}3!{g{W$5W>XsUo{K!-804foUdT_)TqFgq5F?tbtl(NDPB_{K-ADg z@E!uf^5Eu2Vv=Y=_^G8GppTm$ABdx8-4MY;V}tqyehP>XF@>K*La?Q=;2-N7{2wpP zRvOf|u*g@QLlweD6A7owc*$sCZa&6Plhyj;$J|K1raj~J6Rmf4cM~~`Z}Y#XEHfW3 zF@(Rrer3BozYD*leyUqPzqx5)WtAEk*(5*8%v^L7`AEhbZhJju9}F@wG6@L@X*JU0 l%%pq5B~}`hyvS@qx*H@^?yGm^+H~(KvehR{{p{|+I;{3 literal 0 HcmV?d00001