From 5d32771dd3e183dfbd52902d43cae53c9ebdaecb Mon Sep 17 00:00:00 2001 From: Susan Yuen <susan_loves_cheese@hotmail.com> Date: Sun, 30 Oct 2016 23:07:36 -0400 Subject: [PATCH] Edited Test Plan --- Doc/TestPlan/TestPlan.pdf | Bin 128677 -> 156647 bytes Doc/TestPlan/TestPlan.tex | 212 ++++++++++++++++++-------------------- 2 files changed, 103 insertions(+), 109 deletions(-) diff --git a/Doc/TestPlan/TestPlan.pdf b/Doc/TestPlan/TestPlan.pdf index 56e6aa6e4f59b5e46d96a410b4178633b4e2560c..0370ec5a925410e12cde3f4ae98048b3c4a0bc18 100644 GIT binary patch delta 57786 zcmb?^2RN2(|38vdHi^WYP1Zf#_MVZw$tGpbl)8wr%PiSj_NdH=kWEOEl@J-3m8ASH zD>R;`=l^?;<9&|%aKHC?Uf=6GKi_elrO)9`HsS-!DpE3BP;Mjv^Ya%CuLz(JUWmQv z1p*-<2#-31N7i1$9>OC9VRN=HbFsF!<A$<BL_`QI?94ZRgxL8po2-SMg_DU5MBdKQ z-pSTv^Ox+qKSKU#M^{sDQ($}7gZrX)_f>Iqa<F%{_^}uNKkl`&6>L9=P}uHX>Sp#1 zdpkkl+usAfzUdZSJA1(o?1kFhOWe%K-p<3;nG+&zYU*U+X1(>w;GZUT<`8ucTT^=* z=O08v`Tl`wV3)7li2aX(@$NoK+0DYq&Dz2pVs8nNvNv<JwXk#fu{G@9#C3odupjbL zu`$^Z5CDo1_Rk{PVg>A=gkV2Jq;7BN;%?$(0g<wBHgmFe*!=Y#eg7&jz>XWneSk{% z4~c15IJ-bJEKF>F><8bG+CK>m#(h9&@I9fqy4ZudX<-iT>Fi={X9W>=Z~&a_P0Y^k zJ>Z{YwIeFnK~W)oh-!CR4g3A#NBmJnn~DZ(n-z>3xnKN<AClVLQ{C*mg}JNEo&qEO zD6}0i4{!moCod0Y7Yo}h7Ho<P_(f)jf0daXH~gSBAP<Pl83H;1h>WY<)~kVDLCwO^ z)!NBoQ*-yM0=X?p;5V)Y<jbB7f{*&?VLt>at116OaL9iW+`-)rXd8g~AwF3XTMLM~ zi<7IFi>uQfqf!4Pzk@p;U^(iC3^nbnT_8&KZd)AqK{0AefSdOBi?98K0S9~o>W3`1 zHWqhrF)_Ocs`K8?|0KbK6eEHCYRC6Oj$1qb$_u`~us`@gbLRUYu1!_m){V3Fc9uKp z0sKin`2JR)KY1qf4|!@jo0wYLSi5-qU<~?KQ35;RZ9iKMh!Oomj4BpRThYzV%;NVd zjsBxa?%(}@EYZLZVX9l0xjKQ={$cMw%5=xv4{Xc-Ly&t+S8=ijLkRdkNqg`O9Cm`p zrvCB&g;Ws-jgbF`RQDSp|3ArWm(GLg0YG{81om4yf%5(;wS$=Cfa`?v{t%d?y{&_Z zleM$G9mK^RB7Mnv+w05QI@oNP;%3kW_JS3Z_mA@1p&hl~SfIQ=M7L!vyPkS4wt}pM z^8Qh7+d2Vkf-2NO=0f*C%ht{=JK+kHowc2dg_9j<GrRV)=TM=$kmk4kWcLjYavur> zehBjCN7=i&IJmk%EUj%U_CMs0BHnod-vJ)&;TSO1f~e8@(hp;VZh;rzw_tP6Uif}u z%^rr?hFR8T5ET<A&~t-)*+=HzKpMVHUfAxTS?C_9`QbVs>aI?179J2)*G(DN+c}Hw zqyG=0)rZ12Ray<gBV+AixDPHv;Srbsc@a|)Cb0F3?N=w@(eQAvfbgi8SXmJ8fX3;v z87CpoEgYmqz@uj2Z13u1X0iFzrX_%1DOs3Xn@HGSg6MBP2nDJOA3w~H0Nla}Tnqkg zQ%GtA`(AAya3TQVJg`Tjj;`M3v$*-du)@cS<mN>|>|AYZ3=gc{H7OyX&DB3IhHouK zp+H&jqkpq{&wdGbWWe`>2uXt3g$#&`q3}(U+vF6KAN*re7u7Zy#sfMlGj$6Wh(5>{ zDH#ZlhQ%cp$N`%8B8)^RvG|Y?r(D<~D6x_-D<Vp;_%ZDw7O)(t`=3qUQ3%m@Ez(P; zm8rMx{V0TKn1XjmXFcNbA;<|)Ib^qWrwcaUOtu@O>`C|yd8|dRmGO}-m6eD`hgc}y z;)%aHCjK}ofw93SoS-q1DyD8CV*U^<W>~~gY-(W9nn77G%>J7yzr7f8#&o3{+cqN8 z(pi7@>FX=s+#{m$GGDh5D04hZsG+~g))<@PixF2@qCW%mT<L8WB#)k+xajW5D?-SU z)=-~@oH09*;M$+&YE~>N6HT10Cu7VfBTJY$ybvptbFvHII{LuSv0O{cl)pZqHbsmm z!_Ei58W0~Hd~H}M_3bXD&8cycitclGQ>qLLC-GjsD)9HrkpGgzrq@$?A=>c?XE-DK zXeq;!Wok^P8cVh3GyPsUtV=M$A|YnXP;SgYjR4Y0>f@2^wKH$VDbt3c2~mtIWMT<Y zUM1I_xEVf*x0%Qqp0sMh?G#;bXD=dOwLL7_1z4+FmP{DVJ@9}K+VkMQNIk9cjzi_X zfb?m+!Z31du}>AgpKg-zxj@@*Jvm2F6T>XWcJnC-t%Ip*OGV0yI~Hm!RQ#C2@nws( zY3%~F=S~}lH4-qI4m>&{YdU58$uTCWhkq_}b<lAwMTav2mZLahj@GBTHE93D($@LH zv#&uy6N4#uoCV(^=_Q3jB(Jx}Rx)DI^FFoxaI*Mip{rm;0PU$j-Y1QVH6(_{LYFG+ z1_~c(Rh+zL*)dZwD-bbo_!Lm{f$^zLeux(-GWec%I-dukD&6eO7boj<-O18^?KiRh z)CA1|vg%7F*pEHvLeq&{^&w0a#m~iH7*V7m5ZCw8YYy%Z`up0<aBX%s&8KPX@q_ua zec#V3)=2tS;gFQkh-LH_U;DcLkdfv_ahON=dU!uHa-4fOjf-3-x=j&?o=c}z(Ig#A z$oxQ8zV?)&TyS{iYi^5Pz;||M?{kqkLsV>(_`w6XxbDM!e8v6K{obL^Q^=~3y21o0 zdBef_2G=hJJq&TKq4OI>llgBHc!?YvCcj1GUBUDgJ)HgJ3FSk+*GyzhB3HyDRq7Z% zQY3xzi<oZjdFH33CxgI&09pQ#fqfEXl@oI-v-Bn7FIzTKb!QhRFw@#i+M#@VvG7k0 zY75yNbWnVoj^f`O6tL%^c*O1O>_KOz4;uewG*tsXH@zzOxs_IJes1|Z@N*N=Z2r9o zRyIGk9tD1Gdk`pM+j&3{TfPtcerLa}bO!uAa@!|Ekx*cJgRP`x^Z(e{5V^A<a%V&2 z&W2l=#pdsJHbm|axRp47-*4pyo1Z%bqIUM%!vCA!@9c-#*$)NmP`HKTH-E6RA>R&# zd^>Nvg~rtmdc7?!9gG`WEF|DjcQtj{iX)2Fb{7eFB<!8cEu6OE1Jsa5jz^wHQh#$_ zUPA%^3@K)yYu)nt;6qSw1UDQE#xNw9I`i>EPzVsh!#CrJIOLbqWGBjRmx1;Nn7v@Q zt1o{d4EQ5uyM!V5xcQ(c2nxo_jezk(V7z?X{2*O$FcU<feoxmPV%SX=_YwCaMc<5H z8o(Bt{zTnh6UU3@Mu7Sb<>%u@gFzDo<>!V$q5n=DY&+%JPu~6jxeW&Xuhb#=QQSx{ zros^jZhkP8LV+xVqxiO{1AY<ee&%f_Kl`cM%_X*&_dnnr2sx2xkUS9A!}ws_C@@(; z@*}ws&_Af$e(JWfoc+}8<u3oGce|1WAU|8guHJ3JAkZL?C<HeW4TnHCsRPX)$p_~~ z@FRXN+8u+~E-LINY(Hi?AXMP*O?8*B9fLq3c|mqTU??~@FPa~u6Rg|9`F~H>9@lmg z<Xz&xlFPQ&{6G4UpNT_&#DUy{LDAeO5ZfUU{Gfrrf29uCEGO?L?^oV!y2}4Cbubh+ z9~uJZg>eHgP{eRPZWIjtD{(*5_NzJUB|v|xa6joA06ulc1MkWeir_|rDGO}V!@)rF zfFVIv{)TlwQ}?Sm?B=BZV64Eu1&E)i19^t#gTN3-Zay&nAfX`MhyDfYw$t)mt=m+( z?HI9D^85ef-5%?9Y!!j#<>m)N`KBj9fDRAA59R&?Z9A3<|Hc1qL4*ITx*<?#Fl6yT z;4rYV3nByrA3rx5f!xx!fAYV(h1GprL;eq=10QIjZ~%fpg4BVL9tMMR!}&q#z|@V8 z@6V28&sg`WvHL0fZxI6cEh^bnx-AkR2+%Tk!CW842VxTtIU$fp&_e#;f<f{QQuvEQ z*(o+}mRbpTfCJw6zdPd{3gMf%GI~q#kYHgE0iq@}>Th@mY%=i|zp@2C|3^x=Lm>?G zCLl<Mfq(LDN*Od6kf(;gZ-Lz}O#H>SYyso{0fiv`*N5(q2n9(5fi(;?7X%s<GYF#i zk$<q?Unu;=!E8bHf29!kXL!7;h&#R+4&pl)sDW@WVt_~m0m42g^v{a8>tuH7Z2PTb zH*kRV|9|#=+w6m*k=$@72%|vVLxT1U2T>ms`ENS7RdNI&{!V3WKZ$=4J^o|xfP>fx z4r&ez4LU$D@WRmufE&j97YzK>LjFF**oAsOMc(b`v88{z(gh*ZrkCO6MuVXZ4h9i0 z5#93A{{WIfG`Lmd+{d{eU8KK|E%2wrY*+JkLK_?o0w^>X+R&h|Hl+)qKREmk8ODy@ z{Yu!c(F6FuCKqrRNEn#jLcv%IMkhEN4O+-{Z2JeU?RF4EfFJV%+d1>U8ti|wS12Et zT7a<)grj_5iU9|K-$AAUdqWL-VFU52!EPn;|0CjdL<-}FbE5#z)x(icZWLImfb)W> z2JasdpB<V0;^uyI7XL!oexqx^Ru$kUWrOiSL39TO3sC7$n>jZc1TN@52z7_B?RLn1 zEBLi&^c!9KZ~hmC<OhK}C`Tyh+rSpbrmcbm{+o^Nwp8|0x06+Dj(q%|9q^9-fPtTA z5V6D1Aff{00t1m1itnGj8?e>!`30k(cH_hUfVy3E1M>)euuTP)<+p_j2a_Nq@P`u0 zj#RfBIQ#kbKaL6jSlWSsNd!NL%3xrs4VD^VFfak){ex@UGt%8=(0=0ndr<gu{=X|! zUML9OK~%C;l>mu^f(a1f4_w<%-7hlTD(U^~LIAMj`CsaFyOz2`9a!N6%X6FMIur;< zz#a;ya=d>4?=B{$HWoj}d4K@ARbu>^uKy!hAU*=63R(jA2{z5af-IQJ{>~Br2-`MY zzq0GUB@+LbN9=M7Gy%{kLAL<~xdf602k{43a{aCU*e2^2;IVHMVY~gcRU8MqR)5nw z1B(uOwT#W)86U7+5Z+n6(>&utf>iycdA4t4;djs8UJV7o6+iShtGDX$yK>%cy$M0g ze`>vfy+|ksFE*>{JTjoO*qWgD+cq3nhT3~QMGHGCm-AqSfDf|SmIE51l<Wt1kKUaB zPASk*)8?Nd;%-oB!*=s(?<?l1Q%Zv`#njvb223`tDW<u)9!opz)+8S(rCvZ6UQE^} z5#WBKWh}Phc!-ZbNxWN1HQ9NrOD~@46367;pEPAq@=#3-d6t%dzCcJyh}(ZT4mH!C zT{ScCp(K~>c)y{oO!zk?AR@RT_$+Eh#5S|v<sKF>w$5SHvk~v)+*~!;<2tVxnW0(F zmrf2kJd#j04tpi$kE$!~d`gpowmmi{DX)jhc|XC>BampTWf${BxM02ApEIdj)=J~v zabi+<_dMAHOp1zA(9aU4tUay|zO$Zf;mve7diD@(L)}&8X6^L(-~^zOq6uA9Zg%6Q zs(_3_a9f#6FY(;5JEd8q9<-%>pHDyggm{@4EqTFa`BW4XJI*H#Gb4T`LhkL1Fn=oE zOVM|;7nh&sFJBQ`5<W7mC5qelBrj<GaB&v4lM?wQs<I9IlqJ&=P8KSKHjiaRwuP=B zdi}n1$jb@G<xz<^Dx+>j0Ht!BvjKhtLDOV<Ej2?p=X09swSkvC9IcWkCmQoR9X{nS z;F@Sh1dJAD6e@?8h(XoAA!aIDi@UuWm<rR*F-tnfF5GfsBc<r`lMH7aTC(d}X&3rp z6A}LUdhohIih-hikMDa{de=8<$7`i8<6rnVxZy+5cQg!-v}xk|%Su3Z<1pm872j{# zOX&Spv7L|q-2dLvtb^?(unGlg>0kH1fqm_zt;r>@*|IgGv-!E*jXBs-{_nNq-zFHF z`R%6r*$i|jBv`=U1@j&-vjy=U3I*Ev?@`sZ^Z5n9?;9%mub>6^(en8zgrLB#z^0Fe zgMkhW@)?B$OA`G5MAk1Dbc=txp5+e(mH%33M1imc%q>7)4W_doI6xtw+`o+=y8+}E z0Ls7FLffTE3IOG>rD%WYs=*q`zSX}h-tp96c^eK+T>LU50cL7Ht=^jL+IjX?5(l;p z!O#P;8u6Ru`{CcNtKRRAd1MYa>V4A_ARPMbzy!&`-XT9<1hKLR5T&E+K7cy<WKw+! z^`%NGLTY-%?)}ABm%FY(m1p`6adn}nbe-7P6F$GkB}p>NY#DZAz{7&zt>dW#`Y4g$ zx@$vk&)?A&y`~rl2@4DLpyBKjXOPkuw+OY8jtu0~LDly0>JBo=$J}tQ=+Sx<bVAj9 zG}CTqAf85PgsYkh09YjDH7xGIDRB9+{9B|71DZ~J5$YG#k$ZaWd72K6rpAPI#|3%n zfMSM66I!V@G#}!%^aQvX-}fPI>B9?y=cxE}kA2UY2}57An6-XbQKA=OBfglDEvugM zi6&DTeYQlB17Dlqv%=Gx87CgqQJ*HZw9>Os{xr(e;Sns>(ZK^KkP3{wk<p_Zt&$<` zVQ{hZJMYLStzcDe@yaX9B<J<9W+B>-UQZc2AJ6jYp&N0&Sw2g()*r@|^cj=CO!JWW zP|jf+fa$V5@?@dDm~mrl5Zqx}sT7kZg4XB8AzF{rFwUo$@?j~|j_7cV4<V`iK7Qo% zRH04`pJ{K#yyd+_2$UF~SUJ{Qlv&i3S|Zr9*zv)j$%tQW$|TOY>H}-gWJDHI0fuKZ z;UvjIjVMDCEy-7{E_q(*Pk!EaF-bzRu~6qO%PUao2_0{X>?!$%!_cCKmvEDBUhaj3 z3F_HbYpJwAv~MWc8!tN-TO5ZzOzFUdYT0?Bj!G-0M^!A%CfPt(<qciE8<J1xl*3yt zybVufvo&}fccYqF@-aUlZVx9}=aq9cA!;wrCz?N;_&~>b%l-x((QTbJvbz$ru6&A9 z1l=U;6>UUOH9E@iXM!&X-+A*+Dsonzj9MoZ1=I)R2I!8RoSF->B>Ggwd}+cVh`gtF z?!_hh7l=;}(70))6+n0H(aerusiNeI*g1H_`s%69`g&=X7#@8XxT7w4;lpdp#Y$?H z1_|P^7tsk*Jeenxq~!8(h9?--{WD9w3VqImT@AL(InpbvdqZhnLS0!<i7Nb6oI}#5 z(6ePuUN^0JjL%uTcOpFF`edN=wWd^b*irGB{+jRgh7p0SC~MVgK$wf4v?-2j_YG_( zjITaCa1#JO{zx(Qy7Mu&stLC079kB8T;dLbmt;~81a)FG@7}=u_^ru0i?{Yj_I+Od zLr2WRQ_mT{5NElZ^MF!S_fGYL^ud0*=>&m+fvX_{uj|g_Dg<ik9dil7H)5t3^e*$u zqX}5f*90!IKy!}?Ax;3jg%z+$Z>^#DLmg)-B|m5_7N=+`d^4&~jls~ob9!7cpU4us z&%Di0?wLkcemO&o)ih;6U%;c(bB<}cPa2hQ$WjE38sx2iaeS9UkMG@_TDmfYK`?Qu zvuD9Adb!t+OkAxQ-pUTioHvlVe;RTqm^eW?fnV5BOItPgEh}aW;ET>a3dwjDhPt#O z^lHf(_Eq@Q5m)&~;^UaXH?GL*07jE3b3|FIT|Fkr1!NU;DfcBp_=<v)Z<uyma`h94 zs7!;r4dTFeYHxV<a&0N5c43r)=7p*i&9U3YL&A+w^KES&?aWwR6LiXQ)K>E^`oboL z&3M-`yjnxC>sqP4VFG=_)5QFcF)9`FqShf?hAh%f3KjPbojB^o@-%0&h8HWtskDSl zZF9aXFW6NkIXP3ie6A=wJJmN9kR~WidC6N@elRrs4Le`&LX*k^$|cTY=c&o#Ri*P+ zC$1m$y!}R6(ex(XLW$TTA}@4mj=#c(a_?Fnnd%jsit5U8JSk>C7~|d730)ns=G%^r zmxF`K-9r866Q-6d0_YXxD%xt$gcmFfS{B<0`uq~7L?HRk-H|7fe0-Y4`y#3^TG}v0 zjEoiWi0P6pC<-3J%lJOZwC)_iQkDKX={@^!VN}Aik1tG1O{F<`zYkz$(7swePQbw< zAy@sy_UlN@?Kkh7^#Ogn6NtpIj#}dC=XTnsa}q<AC<#3b#FBJRy0cZKC>Ood?CSAL zrsuh$!<;G+iFsdE*L5-E!G$m8@0G_N`gg8KQCi%<_Q}Oeq|2>E>Uf15vEqsQQuz3C zg@RYG&-lt!0xI0NQ1PnDwKXmx8XaE>S!qpdT-J&szSv#Zlml;o(P{0q*HsRjn4JXo zaIH0^i{{%WZ;9FTpovB<wlN#HeF$FW7H9Q0*M00JuQl<cQlrB|BSY1IWxVT~Rax%w z)GK*<v$g(Y9DG%aBr)Erb$HJ^EWB?kpGTfhi4R*F9|`tgaT0Y_?mm`iYni%uvz@KF z@8U{pgB4+vr`8l7HgGK=kboT?JWXikZX_aZaz7mQ_`!uI>GOJ06n$K$j1t%`N~4D5 zB*SH&Q++3fy)EBhn6&m@I_do_DVHJaLE~Gb+y*A`gU}nlL6twIlJ`m|Kch<i?dh8X zW0m|{3E5x6%6-)but;z)=5JB(k8oqJ`uQ_nIJkBPZTw-Va({z-GpYRTS`dSRlb}BV z6)^ih0FwT&7|9D_Ffg6}X*Jly{l_=nrW(FEnDASW1BZas#~%Rgr)O_=fxv1N9PCQ+ zgX3MlJbFt`yNmZA(mo{gN4&HLky!s>s1&wu)I35C7X=(|b{asfd?<Ls^+K_p<Vfl8 zbcTHFy|V+a_|y4om^h2yr8pFgUAsDhbzYv?LLmNJy&vwI(Yc_v#^m+2139a0pVvN3 z_r?mbr7%QUJ6xfci;~GA5s#@4Bhz)zKTKaYpqVe>-1oXykDW4mUMtaVr0R0&Tc4n8 z|8T`as_v<Bz_$<szdGS-nyatBlO7r3bB3>wll4QF#^!n_Ph%R>`irqqT3FMi3EU=N z_bIMiTV*HWc;!h|uc~EUOMY?=D}D5SO^~gF^GCrWF7?qE9k6(utQLkSOWgJTBK^E0 z_ZnqAN%b@PRT)~Omym)LO*{`G65q-^m9A~`^z!o#V*toUKj%D(<e0q~)%LVe^KBGc zI#Fv>Tixs6jJUa`$#<{Y9`pBocmey;o|$1w-FL6LpF8g!7XcL>=7o0G!ea~^;lB5x zaZz>_^IT+_Eu_-pg+o~BLbR6$7^#+n0{D*JCqZ95=N-n#P%V;?0Q*R<2d|A{P(rla zcO|{k)S>4K#F`l3Cl$VwSG;vS_DB|XGWE!ncaydc^{j3jHR3bowvcT+YQ(jOFSwZZ z`b`JpcZ1OKwHP7-;r7DewvQ{}(w+<q?~+U9zBALqu1-+!cA7btwz&zgS6`X3l!*$| z@ju?6ZQMuqvBbsAMxh5rFdOfiVW{$6{#|g;33tw`f-695^Bmzia$Vfj+m0-`Zh&T- zpQo6*OSz`!D6raIRFrEalR~*5h&e#+)6s)5{rvnpZ_P8uFTO&0XclK#uy}J7+AMn% z-E~=xK+YLFKmn2hl9Cm*cOw{*qg5cUeCNaI95r?EuIImxy;kRcxu#ONOwLQzi>i~- zl%wZf$V4h|Q+3wNpG^snFzaxgjL$uP2_b##^;Z)YycBQ89?#apuky5J4AR1VyQ!^@ zCsT}-nBvuE@~lb+h_^Cend+<ODs`A)JcuALc`;Txc7>{iyyq|l$6JPZQD@IrCAO#% zp3&NeYy{!89{7@HZ*p2vKc~KBE;bK6(I~>{Hp{ra0TgY}sOgE;3VNuitjjZ>>{FWy zXM3Y}bn)8T!&Vv?ihP_R;%{P74ple46AO-*e0=(g=d=N_dhT+55Z2>T^+W67@8D4! z9j64_C6|`VC1x#Z4vXT|Bp)ryxE_ag=Dl?1%lH#0uq@^(S6`&a{@IL^d`$1s1fzy3 zGWwJmiB~N!HyWTkD-kCL>HnHO!Bt1EjWVuubieui1etZz4foIn{R@~j`X(XX93Q<s zb#o#Oh?T!Yno%3}sC&_8g`P4G9SfujzMaS+JH_>CUfk!AHsoBD2Fl)GNK%U+Dtvi5 ze$<tr>O02kBEH4T1zb8}xNnvO4KD})Een1W?pmsYfIMXK#Eg>Y>@>aA2JT&=E6?s8 znlOGo%RF*PFvhm3uN8ONFf_OmJys>2Nd>d)4`PZ-$n1AJD)=7r!usK<TP!ld$Y|Ry z(H35@j4~m0#aW%L>#r1pCNDl5=sJ6+HN2K((Nuhyc~qERhMP&#q9#4GuKZds^V-Mi zc{y^Mc^ELI&(`EPCqeU}%<Bxhr$cN1A(9@oJ0uGvxO2-Mx)(aTL|h7Z+%C!vD=eiQ z#_r)cBgi*UB0i}~@%WDSRaeb8Jv39)k!Gq7kDc!X#~ps@-oZ+ID?;YZM-SakC&>$O zhM~k`%w};Uha0SV#0GQ<tr1d>;e^ce{$plG-b;PK0pd7)sXS-rmd>W2#jeg@6?65y zm24Kw&og)r0bOZ)r{3Y2*+_A3v@Cg}{e=sH=;@0_A$d9-+FmIs>vzvsNv)sX3YA}- z8B_3%dDi&MbUupN23W0rb`<l1FI{OP98MhKS4YCqETrZ!db613K}q-XJi^G&tNBMr z&pXDA)L{Z&Ee2@pBEz2prz_KC)GGZm6S9z1j0DFVV%?UMqRgm>Do)6kog8&MAGq;w z924%gE<jwMzkF9X>UBY*r5Q(1W154Hcau;71M78kFe1vrca%7-iOXe}Tvxj+fo_32 z8!`u23#AqgxeUB?8&Ak3SCCq<nPpiai?b4V3;hTPe`=y>P^)^$ODl2Ru$98^=!<g2 zWng-pIp0I2##YeV-OgHq1v`t}+vk&LyL|c4D4Z+YzN-Pj$gnULj%UZ?tXE0WXUNwq zT;&2#R@BDd^N#n5#eEvEct<%y=VfxwU9P0UMO{H=*^A;9KWU19%d8=BN1~Ikn4mM3 z%VZBWz%6s0OV%bpS?g-zh>KPkO=R+Q#YQ$7H|wAiCw=?Bs;yMt>lE#+!JCVcG~!~u zf~_8N|K+Ky1l6dkQm0HbRy-Pwn6o(Il9mUXuUsD^@4na+mJyG0lPK<<KyI`E-m5Yn z>ZOEQMs4x>H>d=(2}7*~oq(iU{RB6IW7nI|ywS6y4<~i~YAmr8R_|;CENt95s*_%h z2+nwbs3ab%bL@m6h3LEK8HASSt)yqIKecrsHJn{m>@^|X4A&KCbK%qh5-_v18Q|e} z9O^NWl?YNfa^S~tuRmh6?I?V(@&}Ip{+G(%9z=tIwYU9<1JH+UQSgr#ZLdN7<MiJq zwII+suo%V%wm88090~;<VFo83e*r8%p~KC^ApH69=xwkBw$8!k9P-!ITkrfU+}W$p z|M!Xz#E@y<xgOZQ18)R8JH>mjZ_c|_ysy$Zb9=muu)4G0{y>FSUf{^>L6%pzB*xwt z12uHT{AISTce}YOP5X!5udgjIvJdo*#Y=iMC%2GEtAe>z8U<Yf@#yHJa`Lr}rG@v( zqS6hg6guT&8vXn-B_o+88F+|2wBp8?1ce^@J;7aEq>y$zww{;sbxf4*J4Zx{a};19 z#4Z%~cHBTFpg55+eqm+-aWaDKQk{`-%osa+@f+N+n66<K!TS%FRN`}lIyAL35+aJp zbcv}HIZ|uHH4MVp*2q<*Y;VrYT?z~`o>BtR=CLmyKdKB9X<p$i3#nU-oTwF5O67cs z-@1$uP_PO&v)4-&N!j3@>tj^Pl@$cq1k&va-C3Om2faS0ND|4uRTmR2k9+#5)B_8M z#!dawXCvElO?ilo;HHOOV}^M3Z5Ni;w_FBqxUaq(S#IjO4;6$L7ozWf)jA(So%wo= z`q33tSk}da3k6>+VlP<vpUvUD6jM1;$2NCM^*R0xD#=tNQEcW}-NPM<5;rOqdw~ar zCPA?1!7rDxQ<yHH@5m<=vyQRct7;mgN&4U-{rLln^N@cZwcx-xn=@aT!^SDeJsBum z>!q1!$4|};9#4L;<f#7b74_(~INQv1<vKRRFe95v@xu)9o4KneZ2NgWTV}R?E;K0i z=Zio%U={jPQRPt0(`FiuirbN9N<TjVoEJLVu$m;a<QVKiQy`WSoIw7p@r_H-*~#K} z;+2?<?n`<zG5!3a4NX&zKB*<VOSoG7VV0@sRe#wfqj2o$!l|^-Pu$};IVnXIe9x@) zWmsRHt;P=QAUGBvNjyN9TMoZ-PU85D6c=(~ws1{rg;D<!%BW&4r-`?9aZH14;-`UR zOv~>##O&TEC3}79G?KZ`AV}2=8}<Gedq)~FqV_EYue9sj%%Y*}VX|3nFZu`5&02SP zGpIgE`=jZilh2+1mUg17=iA*;Xh{8I>&UQovctGY`A6M4*N+Q07`~#h)s3O){MZ|s z<6qUBh2PGfywJz|CeJj@_G?D$fMF&}5)cwGm)M+AMBMtKhRom4k;b4Q=*jrKD}wwM zWK?xhl}>6JmEB$u!z^@-VV5*G?<<)GhW1$Vh$$nLFRN<cVaVy0o~X<=r-F^>uB_?a z6i#vKrhj|vJbh7&eNhZ~nNeQlWD{0TrH95%J#5m|dUEKnONn>T<1)in0gucAtC0W} zoS9OKT+W3|kR#99(y7{=`b{W}^zbXkBwW{*v2eBdfV*?}fG}6e4FnCJyUjpVB<%I1 z)g@lzcJ{j%Lr2HtJXUk$MDRJ4Nw1F00%A*@(^c}pLUfZ*>MVQQl@T`;L(0jNHf;^b zk7=P7uSVR|Lvz2JI_xB=Fu8DpNVXMtg{#6acuKCpnD{(IJ&p1m?|s*Af)iDSvu|5X znDV`GwE2?#@Q^RGqf6N01Z0Y{%{f>Rw@B&+A9Yu~m>$c}#`N*DXG~WoDlaI}9HsYp zMHEgV4^ckJ#C>=igGlM>!b45sr;qz7D*_qhsLh{dyOJQSj4_4@Vlb>K^JD2%fi?6g z^|!AVJ6oSW!sB*~vSW}nur&Wdb&J>W-dY3o+zU!$HJ=`V#p%~sMzQ8Y7r2q;D%rPX zgm0X8%8o>(Up$jltdL}V`_skdJMF${uL;k>--iPQC8gS5=^2F=$!JEV;~vb-$#~z$ zskJ}SVANEK=LY{Gb~7oE@-x|KL*ZiJEzxy(X>S$Nc~0S5r=oa(EN=x@UyJ9-EdlCN zCvny8caTxQGrPc4E9x*&RO)*N(NNCQm0wgw#hhIR%1BX6Dk-N+*qEA=@1<g3r}No& ze-7Yg_vv_H#`8icc|3g_6F2xe5B-Z1GStY85)QpNUCy$W?l+BkhVHmww}=~Jfe<Rn z`rZ=%+(1gTY%<TgkLzDcy^(D_3rl^3_qK!hbmFm=ph(k`-GxsU=E_~w1(!qONlAsd zO!0?+HvtX&!KX#XN`v0d7c<*I$8_}5okppWiQW$(I@;^+RwD3qHI1p_ef$XKkf$8< zjuBlddhhAY+Pb02Ef-XOSMTiQzIK38fg6!DobECa+2Tc0$LMjf#{>W3tQmJFS7Lye zG;7OKrw1Wbu|c*|P654H8a-FOR9uc*o5s9BD}vwWCQ-(%kW5tmR_QoN%-O@ecSMu1 z;$@3#?iV+i@Qe8<Q7W1@(<X&&%q5vLGg>Fqm~x$>W;wJ54V%W!2b_rF&QezaC24)m zmcFz_VhM72QX}bFZ@<(x;&zY|om`y`u)gQ^JU2zcZwOo3;zYVpb7iFb@JAMdC$xtv zr;2RW!pYj4hvX+a)(Yt^r#_ME>-nZJbnKCq<f?0n#mVwptqfPF7U#l8jyD)IRlU8P zcw(y6o;0gkI?c)URjnJvyGdTd?lxdDQ(j2nmTb~T5nWZ=ao@DC@Hz}v<`jY!_$P7{ z2-ugr#3Qt2&AN`-Joyy=QlO>R=}^biv`l*3as4%e>8{VFi99F2jfb2W;dkkfP4i|s zcD6XsjD*eUYsNE_&J=?hgb4c)XE#Ggrg0eNaP<}I6l3j+(oIOMasx&)z~?ZqsC7nK z$0?N2<Z8|h%DDzPMAns=d=4{x{5xlub<VeI*qs(vDE|~#)fr!q7kFFQfljvU(CQ@X z!%*u;RMXv}(-juQ=8p%TV5yot!peT5<=>gwdk4sJrq4LFI8>z+rt29#SvM{4{pLo| zi^}uN?om#I`b5OcDc{A9h@HAt)&k`56<{mhW0T7}7Fg|{OFFz-9-1Z;Qm5Hm1srBB zzA<5bRmhJUhEpXHyx}LY1RtZl>$+AA;SV^Xs%&tcYJRbt&6MY@pGRb_cWKbM{N<11 z^BZxc%OCO6GUk{qBk25Zt}a}OzH#e&%Dk`4bZi{Kawp>2=-00|vjl5Sv9F&7+*Dyn z$fP<P=}~$r-1o_aNlXx$m+U^C`jVqT(^sQb+`8Be+MT|SUN3!BgA=da^1|ow`FRoT zF=!>;Ikx1c(?N}JnkBYk52uZe=9*wRlSP?uzjC0Qhr;PR{`m85fyec&Deqid=(3ou zSoclZ8M+a7^sJdjjE7-|o8mJ;fTF;u8Fg3>6X(0{AL3*$Y6hMad>Y^Nw&u)8gK;^< zWqgYd86Rju&_-8qszNkGS42!J1%pL;wdkc+m<}iUE~c%XWbKfm^A32dP%xi)$UdlI zfzX}!v1DY%B;qu2WKxH9K2LK0$<EuviQkVXVD$$7RL_in$YBFN?lSlXu)I^e+&d-? z<J~%e`2SJQgn{SSeg@0iry~Dm)CHXG-M<*b$_Li|b3qfFq5E|)@H18hM<#z$(j?e^ z<6oijA1i}k6%#yE2tE<S;``gGdu76{D&g_ppFM{`BWfkdv0*TN*cMXG+eFGGq##m$ zu1Yw2{$tX)@{mzQ3|tXxxI773q>$N-@4@AV((Gd&3zVzwYjs|@e!M9?mP3m&$XvME zls3)>z1kzW{$ZoC&#$vHfMEJQcQ?Z&;llyhDKL2-2A)(zt4|+lm3`eRF48a22+)}j z5w%*B!IPy{Bw3zG<_4Zx&=B3$jq;V9Q*4#A66k4jqy6qxAtI_hU=e}lSRR~NwTt6{ zL^6*)>hXJc^a))z2O`4kZS0%?ZF=$tOE}?Wln}J8;^_ke;@c27(RzRIw^7m;C<j z=otF0z&Bk5M}6*hSk$?peRRV8mK$CL_;s|Q*`6-eV=Kivc8vn67MiQ|^*DJ|(KvJ8 zp2{rOpEw(Qrf+G|I5_xS*v4)1f>C0@1yP$PQ2lBK8$z4%QlC>_$F9^(2H~96Jm*WZ zp&&&1YN>{vYVJ}umy%hWAeZ6iDE8tC(zEFNi?~M~rPzdeSH9{|kPbQ@5@aF)KTB?~ zm|)^^JL*ZJzc7UT5b#dE3ztrvveyxR<IQE)b|>q|r?$-2x2~m2j4hBUthGp_eziBm zr^-*sB|BVjp4RgQy!9nCSnSq$xAPV0$Xibk9+bS#2~+*=&MDpQ^YhaPJb^V}P4m?~ zIPVJ|EXMBfCx<(Q{rv?W`qHjoTf>DuoYa7GM~Iwo<0$V4&SNbAn2Ig?Bt+d58Dt&X zT49v)xVUyWA+UfeX1zD@&7D4Wn8%f+Oa_lrO>vqwUb1qjmHB-0x?}*4If1lJUz%V7 z_2^2C?Dre|UfM1&#|m;TlTk;DhN*0VGU?NU5nn8d$XnlX*U0F0bze`rJbUTzYZdB_ z&qqefXB&tN!xR=O76J1s8mAn+wQs?X-(3~Gx7__cK$J!#?HDm4B+M`W@B_jxM<xQ4 zd9%odPr!HxjaZv_eBwRoMFJIQnqtqIqu0pX9-OSJ^`5)8WN<7&rj763b&}EtB5pUE zgHnaC8AX`oPQ_KHR6hQ&;Zqz)a9AFi$4GfP@l_7z<1CHvXY(B5fR?OBmM6`|aG7PX zwgK){(TEx~k#jKaW3<s??|6u&!RTKtvc42r!%GwnX)eCcnJw1qfh~XP{F-0lwOc;N zSVnbHin)FGOy_(QF)v=fZn&_tK$Y+6{*1-gHY-p}lUk=L>l|4Q$2w_Mj;Po-wCPg1 zc|w|Fu#Lx*WH=vIFEDl50KMMDeASqb)+X-7{G68S$C0`GPi@?R_vK)T?{Z10lCH$m zSkGceBiOqIJnv<ud#i~RP3gW`S61|pX@P|*&pOPN54FC1$oYjhoaGP&ZOw)|e=}4x zx_QMwvZ;1sFl5=D<czf8jS=9ai~WfN4B-ovF$9TsJZ6!-c^iO<k@DFiW4A9m(B>c4 zv?gH1XL@L2k_v2?(w9lc$U+U?&pS+B!E@J^t9qG>#Yx3l9crm2SBi6|w4x>dsBh+J zCibDEJ|hv%0yV?Lg_dRXixcr4PB~f#*0ndUxD`p)aZ*oAVX~i*JG_i!ZYGOJ>pO38 zs)LsIl2Hk|wa&K_DAai1mVeh-<*l;{#{^5JQym3ISB)u7sp8Z0dx&Vh?;_N~t>zLR zyz7;i#bEQg#8zEhONcST=g5}JG#G9yIrc|=imQ&0-YW6Aeku%OSXnUpD&}E{f+58( zbk7<a+_*Hl7*5w^mOP?$#Q0icUsTP+@eux?TJ^oTzaF{g@i1VCC9o{IJ;(As`{x-+ zO`L`9*_Ui;GJPrKv|@wZ{FxTCpT_jc3DwV^ZtAvw8^Utbu6?NW!DtUvhQz!V%UfSJ zwd+MRd=LDStC+5Z^`iP@mKlbMsZgySxGoi@l?O}oo;~H7bn|Jfk=m0Yak$WxgjIv0 z>dfAXe$x}uX$`WZK>Lt1>GZGx6)f&f0IE7dfDoJPquhxBr&>X|;zR1gKICyTjq<Ck zJ-XZ*a!&-|=Wm)%+S5kHAD_E)>^0@Uz=&4*%q^>dSYjWFVpc=oeUI(C+rBDCR<c#| zD7+#$vm*#)bR(3*i-I5!m-V539$YuP^|e^nT$*P*%iVg@MS#YtwuHIdH<?kmcHi(| z91$}l-Q;33{ly28WHAA<r)e^Z;N4eRa6agFo_J}-gr>%)W+L}A%Cvt24H3R1C02oX zJHmTBoDt`vgR|$8r`F>2uT`{zk2tD()0BS`8yqnDc+IR)&p6pm$n3Bd$Hy!zN(PZq zUnB48rG(LSh`9oQSMo&P=3{?1dE{y`Dcv-8sRV27k%tc?x}!`oaKiB97f)f}hb^4t zgy<xA;tFyvyJ8+mx4LGgU-&4h`g*KUp!2}1oO4%<1P$)qt9ZZu^5j<%rtJ4Cs)dId z=(=B?_4t1L8v2%_j}qRUu~heT*xl<41xGH{ikwWts=Y*WJ17>wo$f1EOLl4Q4t#oI zIoDQObp$?&5*)b9Kp!}!td+Ma0>rb5++#97L`nbU9Ba@yywbQji^n<@eY1DQ%UElq zQohw_dxz625nQfsf?O5LbUpT7KHK`#JnsNPzTREH>7_Rh)fi%VfkQYxisBPg;Xa#q z@{<PqyUp2;uQX@10EE7nZeoW!oPw~`gBg?Fg&a!LAa!4^FZFqC&*dB0)pFMnVjQ{P zFJzPBcs=wR+i_A!o5kZ0{Ig`(+{V(4_04jQQX-zX5^poel-+AGPxN<;4~&`Nxsc78 zvp;m^4Hp-=fvpv$Os{XiX3x;eJdNuuLsu`Uq>>{xiH#?TaTAzY=fFKAK)pVxO`1%g zK+b%81e?jk1|izptPt-OtzAr3+{f_r?bWjSvkaqs*e%M~zAwIIjUBbemKnqmeD`{d z*s~>wl=YspTLu|{pOZ6X3!~(V&y*@Eonu;^F|yH9+V#(<U5JI3KH}dBN-iVff@I&j zdbFA+=hiDhGlLs;fKa=lAAL1pbcQzdx)pXu0l_$%*tkm|qqjNwv7RKcrj*Fy#xYbK zt6s6$>OjNlY|P@aCCil5#B-Or4@a_1K79&2Oq-{yy)JV-_p=JYz1%UtGiu^!qT{KK ztKX8FjjB50Sszp>-s-gbOw1{+_JS0xiJ^(ijzr8ie8s)Jfr0(-t8l}1ZFm1L@NcI& zVO!1T1GQb));(JPKGg|M;co)A{q;-m=-YnKxLMoXnPdKo$?OAHFm07~53JpRtGp<% zCH<Sy?vESReiVlJ_tkb`;PD=Qa9R}!1#htU&9ET+r!M+WbZ<W!EX0Bbt)agZhPN5^ z8?<Zt2UL5oE4~jD{{(mcgm(8s^PMU&c!D4zOrJgC3@ITHKpF7jL8Du&qCmVzvE3Cp zXJe+<rrN}Q;cxo^BQLLq#i=aq7VKD%bL$w-Ph4i@Svfay<MB11?8+C8&w)vD($gnz zouil(KZehvR4mq1FQ_prxWNN|Sy|QQ4CErOvZ;^Cj((P9Q8XLLR@LUb@7Lv$NmY53 zmO#kz%bNxSArQY_I1tp<_t1KUH`J>)MAfkQ?NwP%2S|*CY~JgkuXW19B7r^(w@gB= zGniQE4}FmO@Nlxa<dB~HdQl_tQ)~4Jncn33S3;x(^@e#vOLA#v^17@9QgsvuRPWt7 zFPrxa-|T6K38RI59=9$}=zw#oKH)PMJ-H9JUtb5^mBLeiSpdqx8ltco?0JNqRjFPp zUI2cU(%$fy33AAT#t#D)hrgi$zdJ@J^Ex4qLstFV$%e0Dcf(+6uUz~1zP%4PPnEW! zu5M^O=tTd3qi*~`ZVT_H)8Ft9^(g@?5}7<q!r|^>9KA`n45p@GE?Qd15IdcRtQSV& zFME-b#=jf12Hg4&r`DqfhQH`BM56{Z<0Uhh9(l|TWHDZ6P-*GsdqbFxoOFZ~`@DD& zjAIvhSZT%pSN<%?AoFrZk4i)-n-1J{iuFvP%<&31<%7$CDNmdPm@|!H7p*>G=JR7t zi5|~C3Y`gAzZK>$l`Z3UYA`{gHCWB{q*yk+wctn=xd?DJq!OW#O=oyPP|NRxLP<RF z({}+OoXk%S6JEf8+)Jw#sOx2upm~UWj{xIQkcV3IDpTd1Nft~au{hDrkeHBE1pyof z>VP*ND71zMBZ<;_FT8uH=)~T?a2KwYGa0&gnK|-_e)6!4o?pzxLmot`VnP>&3gaq? zsqUDkc|-bffv1S`Cz1~F7)jrgrNf(j{N{Gkb)n8?deZvmxC~*deuku9&$z*4F`8=l z2Cd+s`L4u`O-o|O(x#N*D&akCfETyv<+bmr&Y0=!Q-|=lalAef;2$HCj;|3RyJvs6 zIzgY$hV7xt)f;7}d_Q|WoxUAWWGBE&u8o{49Uyp0ASDGfy-t0a*ferK`XWWN^M;tI z?br9%+I5`m4vZhNsq^%3csr2ylgM4}ijARFH<U0j)NT1ap_E1in(-G0947LQk<zH+ za+S?n%5g?hC*TCbu77xXv{#7GauryR`+kIuc!DTYb>_l_mA)ErGf9FC|8~r)wfHYq zqH~W}V;jaf03;_aX$cJ7(pLB2<Z5_Cl%)NdM!}%rn9WFWMgNo=BQ8#)Ku+=+sY-9G z+^E{!W`pSuK|IEExV;*%RwZGb$<w2FV;{$5s!jRpCKc?S-@JUs62*Ual|p7j1%VD5 zdkXaA(GEBaO-B?{y48jH`LcD#Vh3Rvu{xZNCK}|tIsn+(Y)q-Nx3wgH><(jrcT$v^ z9a>(HRy$10b+cscdEr&uj*I*p#d+feo()NuPkl3a4Q^5CTL$XW)?%^^K68oI9e+^S zkZq4%N}(iuTCAb`puJr&F^fu<uLIr^*!EIc<<-L$N@$@64ig4;PiT)^Mx!3;$#wX( z0D<r;uG}F&7g0THpO<i(&!Z0~?g!U~EQj)9+0^u1yZGt079nGGve`{nPHfgw$GV4( zcJU@sPecqiH;F7=Jny7L*06vKiIb-Ck<#yr57iWQ%|<e}(p!D8%98|WPj)QaE?#TU zYI%<;e?0CiFLE0%Dd9_i-Qd7rLH@wIZ0~~mt+ckIm;lDuI=wq<;gdP$d!1viT`x^% z<p;DR`8Ub)y?eKuo!wS(Mw^E2Yx|LxUFT`Y!>@_goLP7l-)E2>t@Q4jO3whc$Ocga z$<kueRs3*k!=P{2&Z$_I<AeIwqS|xrT8VS26XPgDq@Qt}sIpYKK0Pity$CZvdgx-y zAM+s+!PIO6=Jno>q-N%`6y-T7F&vt_snZ_P5JFGvPCw7EdbFx3DD7x5;&Yl8ec;p6 z1C{Rck_A|FX?#tAZI$Temp&sz3+iN@$l<!7`4#=;mUg`Lwzn@LRF6rqOHO`w9x>e@ zyv&vK%-*y-s-66j=AbfdmvA)$Z}=P@Mxiyu$W0QeFTh>NrcwsHIx%0NSmGyhbweTz z1NRcOT(qAo>I8i&U5lU&{_1$dCA32gW4U1BRp&|Har1|ohQ^RJmP4c`RxLgzl&?j# znJ#LPV_m$SR|PYmF9MXM_0Kv#%5sF3W?HoJoie^ZGUL?hSwcOde^(LH(5Z;K`Lc+9 zr)Vi%>c>~SRimlp<d3f=9170h;V&kn2^$xuksZ1Ib>ZTMvp237##+^5ym5oW{kDg{ zA0doS<lBNO&|i<L{xm8G15a;k^_=%r*0!eK{vN9Aoj=(;8Mj$&+C6Wwb?xQ$m%D-d zz#)p?UEc*B(*lp1?A{#%=jG?-1ur~+Bf)zKzytR1%{DT4WEl<~FyP<(+0MllJe&7{ z@rVlvZCx|TBffPhGY_E7qp2pp`5)VP7Z(R-0UjPJYZn_6Q*JX8XKq_FTNCh>XeaOw z9uHRwJ7*Y=gpJ8%3oZ#KYbz6T3m)*UI18Tb-|&E!lJiJexLMfPJ8a(YymkF42rTxs z;6cQ(AExQUpvdhz*#4%fc;LpfO_;VNxu1IINbry_3dE5=ci^`!joW4L{>8vHK->XZ z;E_cHc;C~{tD*ZY#@+7z?|(K71;Vq<D}@l?wHm*SSrWhwOiJ!eD{i;%rMF9u`>@zQ z)gk`?%wS*{lHw3})CjCXvIE*@oCi=O)ic`08B_~mIK)^?S1!hv*;;mIn0<_VCl*%d z3#I3v*IJ%`a73(lRxWVHGDG;hm*MP;{w%kY%uC;}#ACB<YhzA}(*ms0YUh)im+s(Y zk=?^jp*+LX*;LFzKLu-H=F$!cFlA@%9g(HKYj0$D#x0F4NXml!I3W#iBf~OI3{#_^ zr7O5h>Ae!Ayf|M*LM@FBztoat`Rc`5lU6)dgBGS9{x0hT3W?BcL(kPFIYK{s{4>Q2 zjDoDM$?jcelWn*;$a(FvKb`cmQx7?NrCK?|1jH)(iAw5JB>YFDp;W<LeGeABtGQXp zFA*v74@(zmv0w4!a(zV`3iMzwDLdsSV95oo!@Slt*0Ctci4&!Z-U_5X(TsRPey*nF zUedguNTBrDulhitQNdb1Oh5D;Onv2U$Jr7av0@b$EZ!1*T&&)p$QZjg+%b;<+*q$j zybQ8u*a7^?1nHhqQ+~@2lX`1O)gD=YwTrvyRD5;vq3-jZbM{opqoV-PjATZrCH;pI z_R5YI0qOzDm&cWzAs$V&f<4K-{js??V^xh3wMtJ;kG>s4m^~EsPp8iG3AiYD9C6bx z8rLA_8rY%vw4_GmqMxsXManK?|1N4$7%kQ^gq@p_8(QfR8DeaI^9m-TqTog#yMW!A zoOvjVY*g8k+Y~QSZ9Qdy6o=l@MRsS~{@$@>+UbIc1!5}vVw78z^&3C&LuaNKGDSrv z90ktin>k#RH8{+b(>$Ci_hufIA(+@&y!`#0kJX7lQv~7om-OBRue7<VYrH8Ae8+_- zrqA6cd3d8GT{uCQGV+F}M!r~u)8X{j25jM7`IP{@XMew&Q6nuu50FTqd(HDYlO<u_ z6~Wh0iN%>?F{RZxm436dVrFDm3wL`vk=4}BJ@sb2S42lYq7`F#^~G&E`9F|}CP}{a zes`_5#6fAiu}9aYhowxgVky~%rju4Qgxs|LZL!H)u~aiYqY4(%=ig~y6RbRqr?Qy8 zCFfU3a~ku;WJt>tpq>G)Ur%P#_}!j4A3QRPLMa}SU3=XaKXZ!JBe~d9A3G`j^ELCX z%t{-hTko^&p+Jt)<v4Wh8&XHVa?uwAudl}7RK~D+&V&sobF3(!Pj-&oZ@)p;)rs#i z!pi&MYle4=`+MUHBjW7AiK*mFv3Or;r#)>=v_0Ob0*qhYCM8A<0ro?TZ-M8GOH8IG zNv^Qfy%{#1ynJ|Grq{T6LBnZncmjBMEzU6yIn-}GRx&NOwq7{2;;f!p8SEyEA{WwL zpgSZnhQHy7LgAehB}laz`c#+ogd@Me=+;$Wz$A`1|AB}}Jie<CD~0y=3pFplYc_BV z3*?U~elc-Gk&4)68v`pZ`5WS$V^Y=Ao~bxTeT!IpxVFUe`g?(4*=bST;>ojjCN0MF zd#gPy=Vmr?KaH#li)*a<v3(^w?HT<%)|!{`vd^~_Fa9IZ%OnWimlhX=X1cvNKKH%+ z%2SGXqtF2q;IWfU)d5SjAA6M*n$593$)Bs4)W+ii*5*D_KP=0{l-Z7}|6T&vx)b_f z2>?91ycKHy<znOClmPbq3mBU&8Y}^Tmw;_K*S{zMY#zk>DKhO_ym|K&KX|R^pT@hu zi|+QV-uCcY7aRX!LhJ9cZ5SfLScEbHro|4l>w@FwXp*X#)0fh+pB>M|4jt2A$x6FW zqQjr=l*IhXl2Dq%;MwAc@*%?4PEtK4^^#|?X~ZJFEj%wc)iutN+&n-T(m8_4F&g2G z=au(uyHs3$Hkw4rilsS{#o)gAgEJ!OrdMl^YrmhkI#B*?P2zl%-Ak>E{JFx<uOAI$ zpaB<Y!#q*@;Z$vzT(#QMO5A0Tn*md|3#S|xx>I6jDr%p_KBBZXvaPCnEH!}pIh}{5 z)V)`4f#QxY6@HA4DLkR!Gq0p?5%GL2AA3yox77|Fop05;S9PJ$^5mb6bM;E8h1q=0 zQBJfj_No1h&-^rIoLg~-RpP0}JE}X)6Vr)+eVmR%N-(p*19nzkL-Ny7E2Ikm8Ae1T zFFUyfb2CL9FGd=tgspkYxjdf82>~ez&Kt6w{x15AFeSq~c7A5s!%nxyhVts3Re#Wz zJv$mogZd_mMU5#5XYkd<IU0|-Vu?|Q>*6JLY5LqL+%~Yrjd$ZXTSxV5%(a1!N^e3* zfcG<BIYy}TXV=5DFV+;%<M3Uq!ExZuj-4#Jcd`!;6;7I!Vd!us7|J7=dbCR>WU>CL z>%eegB9-{-OXuXCsToU;=?e|r!64&%|Agxn#)Ip^1%-)UYd2nUoLNq3D^T#O<NG2~ zkqxEtb#sq(M_<#9Oy7ucP?5Y`!-GbAT*Cr{KCI={RW&Vkm6h;Z6_dztFI`nCMf=V@ zu5jeK#aLy6P4o=AeDb<zF%a5H!Bi$))=mi3VmvyZopKuMgvrKh?)h^ps{>wTw=4X4 zU-)69=M36m-RM6RTq8!QD#LZ?P^z)|p`(7)SD;I`y>q?sy>kUZdp`@$WBGANF%iRH z0Oqq<v9q<IGLlc<1$mvinsnVP8u&Q$If=BR@Qtp}b*zUU2|OH5bY|O^qFHY%f9`db z&LkpZpzTSbE?lU{`i#aTzg~K{S<Gy-bkYMc$>^BfIP9lkHRb4#BEDhmmT><}wD>(k zCf(Mf$2j=!<bLtFKlX_|q#X7T$FTE=^7%x-xvTm%&Uq817h?`5^Hjq5sqU`akJd>b z9P|kHX{DX!nxAkpwYN%zUT4$xjj<@sq=;<d{L0SZ^TjdVlrfi~jk_N8EP!n3arc|~ zjB4wps!k?OSa+%Eg<7J^&Xq=mM_>jfM<`#L*b#lP@;lUk6mj;1+?G6Y=jr2XxiU?} zs=%uymUmz12qi0IvA$}HD8KoFaoZ-`J<1}8MCbTf*gY<`4b35G%Jl>R<7=FZm)MRl z7wO>KR+Nx9<~;2sizh@{75ed_@u_3!bYUs+hni-MWiS?*-@zQ@%DzPF-l$=u9p!xw zA$T5SHR0gmc5UTo`_XxgdsVn+`#qM3((#}QVAXv7`qOU#JoSbw$-^XO_}WL8uDw?% z4S6Oybn;x|*d6iHTIXcwhI&=ULoShg35dUUvYnk_P%UMS!OJ0*Gy@=TOgPz#$E#AM z+d|c4nNK(>k(k-;Eou;`v*gT<djn@6RYEe8F!#vx>2HtNP}g~JucBnvIHeyKUh(6n z$z}x#Xh<hhu&T04M$UJ+4$WqU&w0wpmPk99-pyhuM@Y$4CLOo`no%2`aeDqXPo@*P zPci|eK6%+Kn34C(v<9bdL_x*91jg>@nfjVuGhMnSe$wx=_VfXX7vwrx@5B6B^l13c z+{wh4TCx=Q-am3J`%avt!wbu-i3kAy79%;uG47WO+=tS;7h*#QjYK)U*}mfjx`xBI z!VK)!qxwImZ(ILTz`-!HHKFkL>D#^(X5YUjuoGssDEN_v{Nw%kTUS%>&q5Ba{pZ1m z1D8{7rZAg}e=``dd1dV{8O(u81$P(!GE@OxzO$J*{+#~64h(ecWiVjUBENTW|A9m4 zdy(%igB?2JspJ{pA!gxfTTw*4ZAN^C*$|Askj&OOr9eT$X5%Y2UUxX74vc}$lR*yS z%wxaOOJ|B_QD*(U{;qu+GI9BwW7M+PskRx9a3&2<hQZa>%=&``M6HfK@1LzcS<$4@ zt@44j<H1aqsOVuw5&wtAkN7ElZ=P`QHw+$ONp(*QwYc@}2oSGi2jix8V29`Zzt)}v zE~l>f5=B%}RF--WD(cynEYV7YNJNsNRoWw=t3r|`LKG3Qgp>%OBKw|Qc1hWnD7*ih zyVPCszP|7K`~AA^GxwZ1b7tnunX`^@%Yc37`g~6xslL57@Sg6J{i3vY$@$?Yp54BA zG<}BF?}@9$k52r^nK&jZs$jgiO-RJ;0TWhz-Z#zlLbF-L2~Y1mtF5VgrnFq5dU9`R zl5_l$Z&iX-n^d3e+uq#%*P)($y6t^9yUjbRy9th(aoVaK96aS25BA^1rk}SQKIr1W z{uUSP2WZH#)feLL-2c2GHNK{6;j5}Q7w#KZE)FeI2zHJ<(^hl$f$GCgI$Zs@c4AIq zV9~UfH$V0nW^JqP6MHZ4?7_FMzV_e$%l!1o(e=^yhVFg2FzrIF(0u--cR6(*AEZ_+ z-_bhr(R|-s_K(~`a`HXf9gDqasmMNoiE<MAraXG<;HLg<rp(7>LE>lG#OnP|183Nr zIHzkAlDe<u`bu8AvA5zQ^+SK<@6IS{zu`^kh6h;|2RG{TPS4EH@DY7@aM8&2cA!B~ z(Zn+;uOv_Ha<?ZeX`9_X^x9*doq_7m`u=-nUg~}7Rr#a=rrXjS_ukU^l6u?lINx;D z{xa<GxMq?)yB5^d=g!hl@s!<M9&_N8FwN?B?3cNFeXqDA^-UIDS$^HLbNgPihMtao zeZWdJRWEvar{*p6ds>KtPW9N~^<zR<%r@`py^HUDe%Je*XMN?2n!q1ElL}*J+&bv< zetMWF&1F;<o$eb{m#R3fYc=_PajSbH&a{8BaH#zj)i7*&Ko7w#i-_qf+f^M(YxhKJ z^yb<89$Wf;ci2*2_a>yS?v2`kx;LF>f0sQhK9ZWy_hm+?M$FcQ*v_o9(?7mPcU9}4 ztNDEVF^`!K9+bPxh#fm%cbU!hU!hOGE>TZR%g#Kix8ltwR|})(ZBxeVkMMh#c?_|} zzQ^7JWvf1}96Bot^I2R{(x+CX=yIpIeHXXXnV3?MXd1bde}6?UgP+c0jLQ^-UPfgm zVe8Va`=>a0KCkjOXenOOzuat-*84k$cTWla^&u;`omH{tl&3F3yRGt9Hc2cu4ODS> zFMsm%#i4HZhd8Ep+IGVFMXB5DbxUV<Ts$?@FXcjRc~R}JPP089%4cFeI=-r>2JHH> zv5il0MP^^!YqOF<drO9FNqo}5^3Kn+$M^DYM5btOUfZHa;@1Q7)_bcv<=;5=EVe4u za_)yS&0C%sq!lr!)%McE#zx16US9U>vth;tt*(|MVJBXV)mn!^+E;m@ZO4crPH6`1 z7&vEF2bbR}KP-E%&+#AT^J#6T`)O@HtRIkJ6Zu0can=wg!o1UGjGA6Z#Dlf4%sV+@ z_g{=6=%W^V6ag1&{p~0M4-CLC?~J^Jc^AP2Pw>}-k)^M$kw(^<xhsvne)o5F6$P5n zEwCJtsoK3vIC{tLnOp25jk>jJ-O2iCS(KeaaKzL5BTC+>c>PfG^4J#xEZ4>8OQ}tB zoEwlvgs-9gR~;%VAdNeQt~C2wjuYilEN|?Y{)fJ(xw=R!E6^I*Mh(Mb(oo3%zzXiv zFutVw7p%bNGa0Mcc(fj>JY4yxs5pNygvFyyG-h@eG4qlWoNzC!0B#@R^ze*zXp)aM z|EuyzglGg?AR6n~0$nxPaNN6TRub_&=;!g_3QD92|GIxw#APLWz88bjOn<Facz_N% zE17vIR>H;95QBuvO1cT5RMMI;tNWj~V~Mn2jytA`HN=Db^FClA4hn;hM5vViijQ=o zgsUVOZsl)g?BO<In$#&){4bnn0WnG?mIXh(ZUHOklP-TyDN=uE3pYemnE!?qEdRTQ zyNHY|^G~cu4Rh}><o~1QC^+j1ZJmN@f7ccmeSdY+H78=(Fq8nlKK{RIOzgn}1_5IJ zx-l_szC<GrX5N1u^T76*CN$`OZA?;m!GPe4EwCnT31^QTiI_i3KK|V$Ax#)1mVW?K zlw@e3f6^c-5EJ7DN1Ts%*F)VsN$?ROy}%kE*S@pwp2Q30j2$KDhI8OJ+oZv^r$*!b zr=rolc4!%roms@VEuP*KhBkTIB;!uXzjJbA!h+V3li-j9jm)N-1ref&DbBy_V~A)@ z^wmsukBh-V;9oZj#<h8fr_8*hIN^?Y0i0Xr^0cWw#`}+!^}pdM-SAU;y=1AQg3Yj- z<A*Ir3yj~#)tIOpFe|n*J7}fX%6Y&2eV3GkZWjuj-NSnrT&}x4bD?eDSpNg%xtcE= zE4x}6m&|(Ky^C4~Pt(vh|NE~)>*xONeO)<qMM^8JHLvEi(tdHWdD1m)Ju|o5c&)7U zeEmwZiI-grI!wQPS<hxysE6G6NBIq2Ufv|n%6BK{x_)u-s5+IEflVylGRtk1nNM|6 zLJPeWUMDWK70S<)d4}Zwew|kJdZR%?Y*=aW?!~)?Z0~=zzCg>Ua&n8M@8T8hcD5Q( z_{yqnyCPBNL#-cP`E^vdGG2Ri{0cXX)P=KpDf_18&T_(P3@7e9ev==Utu{fBEj21U z9=S^WL!bTU7cKJ2Yg?H2<&4Vfg^8y+shdOy&%UwR_VAtgq%%G59arjlVx!TnAkXKY zD&_OiU%jvClop}X^8VPd8Qb#>j_oxJn!k8-rslnrKBAAk^Bl*V9ABX~^Hg=WfirwO z1|(n8iU>ZD+q+Ipu8Y~KmmGQRR(0o4R7^`@@1T9hQmwpdD_sj(E;n!4C+K;fAIs85 zR0R*dmbJ5fOe?`>euBhS?yt9b@@Kme;rQLL?wPln4fJ@Y`LWfub9462$hf<1(2x1E zv^zW;dUy5R+#h<WgBP8=*=PUbkI#LjhfbAQ)ZWu+rx&kiKYUI1-ERh|F2(9XN3NQz zn|)4V(7b(z^TO$`&AVDZ^gptDw$)O@vky|byCt_x&UriJ!=kmiT>_?^9d>rdX0x#> zkC!}j(^7<WK9#gyb-kPY=%HGdpWGRctkyXqqvt(O+xT<MR;-;e{H|s*LClAGr6C&0 zx6c_5PLuQ<9qL@M=V$EeV%50pkx`zl?65-%CwSGyck4aP(PNI4v*ESF3vzaUJfYV~ zc2nZoZnl&8x0N3^3kF#=tI(WnX11#0#P-5Hw!=f-TD@8Sq4Z&@&N`)_2_@^-yLBIG zpA_BY_=?h%t8}m1B|TeFzU|#s?GNjoIJ@bGni?w2uD>u2(~+IZ94b9qy*GPBPmS6s z*L6<@U^`BY?d9j)+I(brM(y#`E}BO~SFWDgzyF&36T_Fk4U>P*s~((iQzd%$mifa+ zuQ9H4?pf06nmA@$eQC?brhUs(Lk*RGNXGiwT<-p4ar}C<606bcXS`~j6JfGv+3=(V zvDdFxI_X<XOY1jt`pwGFkidgc*WVa^P_uhoRMv69w{1H-u${YiTuMLPA-!{tVRcVh z&s095oHK3k?V^REFFyVwe+FGqJG|@OiBa>mU-v#*9dnc)HFbWvF@Ju$(&(!B6Q3{a z_^q~8^Y^Rzg{&Pgoj3S(%N+UDtlEQ?txfMgR}JmF)LLuV9gEM#pC>8}u3ES}Yrr_m zGMDF@S9m;Iax-{CsO!>M9kEKE<Axths*hY7on4au(M{vC_sCOkPZ_5tZd~T!r{-_1 zVm(+VVe>An<ZbtZ-o)%Q-<xs1XU96vN1q1Xo$nBym1uFg@=3|eu5#7I<N7Xb9d~%~ zm}R|!4^?Y?9M_@9({SRPz^ir-o#)y<3`$+F_?he7Z;Pu{GrJyG{XA*f>R}c$4`H@e zcgr4_@dF=U9Y4VE)a>|Eadqj>qKq|WsNeXyy3bNut#jL-eC(g(<+VF4JAc}mZEI&P z^v-=2H)v{``4#0$PZyY8-SFH^t!rSP4K8c17HS=Mex%5J{kn12Agt2k-{mQvOEu?= z+~&Q~HYr*EZ2p&?cPhTjeK4hLo_7zOV@tw~_hI2Sg{Rx+OMg@h3d`A}lj|Am9PxE) zq-9awDyMU=@{fhMWVUmTop?0LIkruI)um_loiUnhR(}1YnOJF0yWjnqNevSWJIBor z5D%Xy=AC}s{)gjM-Ng5wM=deylyu^LN-zHp{5_I+4{f^4YPR%U)#=$81F~MP)9LoM z<g(GnHI`l(nBNFl&FyhNPucrwD1s$51D2_rNssLK{6flC^<VMz7CV2gF#WJPV!;P~ zYRaVb)>Vg-ceUEOb?Us}Tir+8^{9AtOxicZqhw+0n6Ww^)7NQC9@z2V?3D?!cKU+& zXA^(!jZVs0RA~~IvDvZvA-8KC#s{XoJ5wtAr6R67;f|j{Og*El0iD{vZ;&D)8Zx?7 zJT$>yc$-ahtMn-!bag91!QaiWGw*%n<o#!Fld}j6Rp(yQf$q$0Vul?qu&22njegFb zcJ}<`7_bd(?Lkg#^HHEsx2Ble@Q_Mb+hfoR59xBED$OoD#C?-#(V$VfuQEH#4h=f3 z-OYVxpS|**pEo>lUZ&Iga*k`<F}G)-igu5V8Vnde^_A1ql8bglza$%v9a$qwUHN^p z^W7h^)Cm#pMY~t6nWnYPwQik3?#JGyuE&4fAL|jDJ^gs>v~csg<9@Wt$h&mF8}s<( z^DC^bc23=GC!0Ad&TS7pQReD%;nM3`y%l>Vf0)wqv8F{oyW7LJX&f4Q-_38MFLt!$ z)2>6j2JokcnJzlJs`~O_-R_3Y$rsCFT~F5<9M2Yxe`2n;a+&<f+;b;1wVt=R{&H@t zYmH4d97xQs@=jK{5L`Mqe^9E&j<S8Ndw(2{1&y0JX~Fdt7c^%oY4K8LU0M)+xBc<q z^^<PhY?puJ%*MQ@)onXYJN!+aXrz?4>VC&4OI72C(|*e4Wmk>fX=ok&?TlKp>H(Qg z9vtX*chv}sv)}v9On-CmLT+GTaz|OfC99}p&6GuzTHkZ;_8(qdqxoWI;j7!_26Oi* zNA7=?E4Y3YyAW-$!RYC@FCEs*?*A=AG5751DIR(<t-PB<%8FF?rbkUbFe!0OPdnM7 z!B#64`o9ZUJ63Y9G`Qs<^=Eh5nx2ZV>Q=7(X+ZnFOEjIoy|zd@8*}bjc!}Ganiw5h zH7D(h8s#1P)PG4>FmJ@AH623k`P!~|Yq9m-8=Kj2-?xaxDITq`aXq#_DgHFE{z2uq zK{<;h3!lB6cREC`^yt94nEY1r9kr&`4jK|X`>MB9_ZyKLU%pHB@cv|aWrgT+XjZQr zm9B>^<}SZcR{Y&6bcst+yuv25jU-MyHcNP|)B50yHLBb9Cz`gOpFDNgwzRMjuQoYF z<xLus^hzjr?tfG7_y^6sy}Yshi&T<K+RSqsv9jfq9&(FOb@g-Wf39n5zp<6Ra*1}q znJ&Y%yB(cztlFYo$H8Z(TuAp=EmGcQtGTAd{FQxViw_lKO$+3i4n5TI<?x@wq%)Q+ z3=h`{NnPBsZ|CM;zukz~)MZ<d`lHcaUW-}>bkg{G_?EE6)_37cE==g9TK>N1cStyP zZr=0wSb@geG3PdfCB!&xeA&ZzVOmi6Ldl_>l|$zBoqs;SzfDrJ?Dx`M<_lsqOwaaw zv$$Yz_@sk}3MP~<v2(bx>-JRF8x!A0e>1se@obJ{M77&A{;VfGXC3zUjDMq6?z-iQ zR7qn<!L?nE{yVIjxAy6^%Jux>vwdA-3cD^ebZ?36d7E^zMrr@a=W5RauXigf)Nj^_ zSG3#R*v$Oq@~Qn|m5$c<<-HIddv@=}@yz1RLtLM{$&?oTcJx|0^4g%y`Q2AvzoB&A z?+rF6PWmlHMG@x^F=KPQlF#n>UH0sKY!H*gcl69!pzs-~=%KT{^u-W|y9Gnr?edR2 zG;P_mfWgM%TiBR`-BoTaU!ZUMsLPlc_R7t&wxu~-^z75C^QektG2PN%p4x|9sW0sQ z=*ZPV-V=+d;gKCLyX@>d@quLY_$_1B#2&SASupbOnC!`kIl1R<nZNxmTPS|%96!A* zt`EPhz02+vkuR^Q87<3*k?!~6B}KkVeRq88vApZ2Pr4jmnmV;o*vo31i+)*=_ma$* zI-|P*s{7j>mGq5xui>^Wp|`eC$s?6BU)0W}EIx!!<KvNSsTsAVhh{|3TV@~fmz#mO zeF!70g&ofu`Vf4WM~#;Mag~;RmnSPP*@r-cMu^MQFf>c`jHXZY{BKr2Ew4)1pfz<5 zlNjIEX@V^^@K}ED(1!sfCkBPN8Qh67e)&EB@UUyTCeFO#;!od75BRTJ+Go0>>5&(E z-_04dW=2$E@!GN{p^Eh(=Rf2=ICbR8J8y%5ogW?hy=v7F<9=JmXU#ZMYvFj^cKnzl za0!#yrI}}Z>#vwR8fct!e#^$hSE(~@Y5n}w)x6ffbM%id-aj$_?`!-#b4PACoF2Qe zXZeo7t#AD9`|I=1?SbQrUfQ&eb~-xS`CQiMRz{&m*Z#C!<60gPw(@gP<+)UqUpb4@ zUr0p0irOz(*MDbsiTZT>?pXQ02Qh|Ht=PyI$({i%mYtcq+Toj|+jB!_AA`9w3ZI-B z{ATIA;F>n-OT&Af%eri@JrdjSFk#TZn%wa#?DrI>m;K5bT06dH>BFh<t<H_vdeZQd zzO=u6m#6!lzep87dLx*1S7%Ji#3c1rBkL2xjw;>O_&VWwzl6TMyC3pOygkY_|4?D| zsS^EBdp_{yZhKjC;q2D2CWD%F)4#uCe4EqD^~_fpt2{Y7VwU#Ld+R5KS*|F{)9-;D zZvDaVoh-ZL1#eI7@Ge`WHQTB`AD5mM4vB3!Y^lN0BNY!@e(P2`t79*}wW_X%+%As2 zmLO7Byw$7CGd0?^JLJyI>r0lb-4-{#$ahBdtPkhjr26}B_~0LlU0Id4z^+;RuIc>E z-s|gB+dD{9rWk&m?2uWPv&5n(WU1f$x#sf+YGB=7-ZH<OVB3qo)-cZgYWrQARH9a` zj<0!k$ZWHpZp7N6h1<t%`Cd9~d7Hbn7az33x+o2tII4vx;`zYTsDh;17Nhd=jz4%@ zQB<N6I#z8&u0!6H4*mD}t<80qcT7F9V~ms98ZDLXJJM?=y>l}eSyvwQX#KruYU%M` z#T8|eM01b5STn7N%5LxV!-QQ76FciGkC<MfGc0qOVgE@w${#)TZ`W%FPjx?kQSa_$ z&2<Gcja2ITM{a1TRhRd8<Kyy9AHTmSFLPKlpuf^S^9`EaYt<h2|Ga<M+k{%VLytaR zHNN+|7&9bYW1)4X!$$09_?0_XzL~x99ISR(O?!4pkL!Dn*^hI<96!m6PRx8dTy4$N zJAGVQZyuQ1dCRuEuc|A0>pEX(TRS9n*V7uk;l(@M%OcKh>}BV)Y5lTmTHDTxa<{rE zC*6+{kL#nG;#1YxsJ*4O{=rT==1*PUKFr!q^<u{CQGtWflZ*EV_I%m;VpdFM-zC0I zKgT@cefidN(PVplq3OuizW2Sbr*C-~veAaiIvZM6B)j~$*gSvzyVgTIDxwDJ%L_KS zT^QfiSk$NFd)$W#QT~gg+QnPm^mXv=cE6AAR#A4aa#HH)=Evq87gP?_uWWzbIH|Z} znU8z+rq;a47q(jqOP?-ovrXsMr0AtOncq*p(t9&bE%jEIk>2ciCa01k{ob6t&BF$3 z#7^ye^2+JCviP2(I!_aX?>?@v_N#%NQF)Z3?EIb~pPd42_qiWX`gEeJ{)ZtNZCup- z7D$)IMO|1Rk(=)JygGl?zNig+zx~nL8g453b7tF~jG2<#CaNyuS^xFNi;dcpe{Nfo zxI#I<rJEo{l(*{Th%Zy>&b)4SWu2Aa(PB4qEPd41%}<{;e>TZ(YT4O>GVg_Lla&Vf zm0vWg?wK&N_^@p9&Y@KiYPS7V4QGEEX4c2w^QpAJ({)?_jat_6mx6~*STXm6we{!z z!>VPO1y=rkZ#`PIIo5l`4&}Hok26niN406I@3dc~`vrB;l50aNQqH%n=1-hA=Z;!u zStq5yz-!~M;XS=~e;T-QRM$rr=icp`qMcyiRVS=4pSWYrv@5B*qDxjpE9=%z4!F_g zi6qJBX;?2&URJ_3zu87#stRJgk88L@?GWd?bY0&2@^7~d%V+x!zxdStbNz_l8$)(T zMsCL329C14JjEp2Ws2IuDy2<I5f++CCwti`%u3I7tA1jEm1C>iJ{p^(_tF`#CM90d ze663~;4+i*pBIVw&m~JUep$MAc;sxoJf>q}@1u9^zPcD)l*Av}6)RsF`|G;Rv6G4& z<5nl;<k%lee6}?HOm?`ft<Trvft~9`cX~L6RLY|^j!BesK2fy%)#@LD_Ft9NKdP9l zn~>7R(SLqfWlWf2xZ`<DA(^B!sQ-S=*&Wtj9Ff$z;`_k2FE>SPz5aOhg^_kaD&MvT z{4l>fMQdQIr)JLwdE6|uOHbrYxN~mGS>N%S&TL<~eWu>i5eX4Ltd2&RU%OnIaixXf z(Xi6oY0Z-gM>pGPvmjHwtJdk)&iv9hOWem>In5m3aqf+XZlxZZB7UB|abeeEY*Mix zZnvMS#iu1|j)JSLorX3WJbz`UU|GVXcAJiNcAYfZ-SKjqPMBu%oe6_WFOG)Ejpz`^ z$O=1|=a~66X7Tzu_i{%&`k00k4*FtWxWU1~@6;N5nMJd(pP8BZru%#87%X~HU}u_P z>^kh!iJ+HX_h>%emBBkNF<%`p`LR>KD6H>#-j>+cYBRG-l~$(Koert%vN3PygA)#` zYpd1gt&h{QzmoU-$#+AG+#{_Hj2_!A?NDBD!Mf%7%Z`VJ*d#m|l91QsyGS(2^kG8t z-7iGClehISyyvNZCn(DNL3oz}-GtS5yY+rN=7;ui_cP5>$6MUDu~809F75R7#KZ8s zjTd^Z!~*)7B<c4u>QXcRNqt1$XBF;Ut1R`Jw>X!vk2jg8KDeuDKcxi)-?Sf1*lPBz z&+6l^%$<|R)OY>lv&-0Ra{rIj?R_^cFy8g0h11NSsaK*6?h6j2?YaMPPF%;+MOhyF zFWvTZXklw*vu%9aW^E&sRlew2EYsVObNI&PT{*gE!av<G#@?!YJ$tqMVAjMe-H7w& zZI&-@H9p7g)sB-v`tt&(6xJv!{puS(AzNeK&c&(gGw%mDk1p)<=I+D_<;}${2OH-4 zM)C}fkNI2>{rQr4>yhe89aFBgyx39Y^qq$lVb>#Iv;NoNNwtxhgKu<<%^o(zv?%YP zX5`Jjo^$S3j$JZ2+~oXY?7;r5$s-s3@ObQ9eWtrbpyA`OYx<pgl|Hxq@BJR*LcDw3 zU6Zf#bz9oA2rGx^*kvE>^4{~Z)GjH_z4^mmr|Zhs4)rhHVzze6Tp8T&Q+%)6&)XNu zlIlOIo!+D#uhsLKvTAG=Z~3>KQ(Sg-d-77NreH-#|NheV3&U!cjXmO<U%6&czsb@e znES?(?`x7vv}74dIf{?v5udv*Haqw2g?;-ezpAIC>7L3mt9@YGYU!*ELYLLM7g-rT z`l;3P@X>d;6N*Rv`4=Y?jp1R|g0^4?*LnWc8gvs*D1G7tUppmZ5B<$@kC1g;sXN5N zp)W4{^Gt@2b$=7e%{XaAWS0nGFA7|^#9m(zvTufOvT!lPb(ca&G<I%u18U=XQNv8g zSO<nv{GaX+WGrD(3lai_7{7RF`q*>J&}2ycxEh({YMp<+$;-7$>l~XowVT|TH)y4b z`(}5iX+pbmhQH?qramyN+4^*fYyOwOtfw{7#aph7%%20Hc<26Dr8{cn>+}6bZYdKE z-4`^@U+2ZqJK5t6yS%Ik$)5SbH^Vp}_t)#6`|tYN=l0a=`KaWhx8nTF%n=19*bkjv z-)}9rRFdd9Fjh3`aPO#`4~rBPJ$=*Gt=wSLQB75K$@e<5Yfn%232r{{<ID+8lcx7t z*+nmI;LWRrx#>Ty4osgk$5Sig#*WtahqO@c<k|IBpTY+LpW>!$4^1-COuKT~C91Ad zc*+ig=J!N>i>}wizbbz)wQ5f3bk8j*J8qX}VviNK)cSo4tq8hqV|_I4fa!!g$GR-k zdoaE5`@ZJIa~^v<8uw;mzkKTltD{TYw7PEX>Efx#`D(Dn=XA05?{#1A7|QbW3$gtj zZr@&dxA&;*$D=-rKP<hrVQ`z)#cDT<qIFsYJ$NSAcxcAlwS$HIm#RFxWg@qlzsvG| z<^5r|u5C6p#7653+ud@A&!&s3t-JQjDVSsVti3#>D(QKb=`HdLrt9ltUKLeszAp^S zt<J92)eLgcnEU=fC(A9<e3TcD-?u$t)P%*ly!zo56Nl&e)+~ryxYp{sm!ZM-qa_DD zK4uzx9(HARVQ$vL{;D6BEE>N*<jp+4y1m7EpY}eAbxU3wk+k6(7L`72`3JoT(zUPb z4vcZl^L@1GhV_)H2|wja1j;+C4EuV1l1K)5&fYn@ba~~~{4v@uaynpkccxD*?NZxq zRLPY}v%|8ZafO#%FO4wi>sD8GvYGELXTLT<{x2${E3LLo{!m=k(k<swVg0ax!>cA) z><u{?ue+$Xaq-zP-BX(<FVez1G_dDc>oR7RKg*VUU1?Qu;6Y+(#>uhAgO0bmSh427 zh-(`+`x{hM923bj&7V0t&Arm`#{BR@Uze#XZ7mpkV*A@iY55)RnmQdjyrJ3F-A<xe z+I0)vE%Kg+=^MDW>@X*Aw@H~&kU`ndtO4(rIc=I#_qJK*>HtTTb{cDaM56fkZrG?J zA_wCRohRv;+(|0x*g^Ns+;4I72A^Bisl`i=Dx17Y*D-3p9=1BUx~*H=xR&=Fbk3i7 zH{y7+Z+YJ`*Ux>Nm7Ti!Ov1uxZOYoag{=KGX8Wh7ZQuDzEn{qJit~;-XK$LCpL*CJ z?oICmzo%iJ2H(+HR1km7)|Gel@Xi&*9<2=v7Gdia4f75#>J-r4E`CXSyM9ZY=UBTY zYY3O!6KN$)ydU~#qO@%P9B^xMI)(0d>hS9D)eo{m#b0)M>DftbBHC_GnZG)vU$N$~ z`VbSFBPH+sE9>>NhaN6Bi;nF(p`Yd5C*xdtyANM~@LovE&Fe1>T0Xk?Xhw3$#B(X{ z&-C8ay7sl)`mFZJ_ByU!`ySrP{h%MQ#_{Xs_nA%;r>v}ba;`4$dHSgn&9)yjI&M-P z<F~kfg>O}?-m3vdE4OJ)7}zEAmzw-w@g>wjqy{e5AVb2lw*lbBht)5TJHP&Ik6{!2 z0)6ooE&bwQC5icM2uX@Uwn6|%xd4Tg=NMNAIZiXKtlW_KpZf*4sG63$!8A8oW+{;I zpN4)EDPWVKPQkRbTFp|8R{e>E_$C4-3yJuW|GpQ8%R)G#+t|Y(Cg9OA|C)vLokOhL z|H?ukV>5gcxiMUPe^@0Da;`U|QQlCt6wV<F;nr_X&x&)5a$%YfACevfoBNL<ccS=z z1T)>G0)Yp$-$c|9Z_r%|amU3xsT9tYlTQWcnV3gBL47UY@H40@d_@<VqX+#@4m+nL zuxKK|p>h%2k<OFjnNTWA0mRhh2?Zz)FbO6w5>J$bD5vp_$V`@t;w?ikdGtgn<Z=v= zLw>}`Y(#_-{LLScgZ?Cnlt5T`5s!Eh5L7og?9veP$a=}d7*HZpKx}G=riiL0S3qQA z9!iL!;RxX>pvIb_>)tIPo;C5EKuP2!(L<bO$boa7EC3Y<f8ZaYdgA57Pni&*#wo_| zDmGS{UJbnRI5tuswD(2{66F#3NGM(y0U@P9Xaiy>@rI`mLm+sFt0cBW(k6vM`%F|p ziYFzWI2kmZqs)`L3}VRxAMvLp1U44)h$kLC6OWn>>IB=U*?$Td2Jtn4$vCUgh9*!S zBn$;k6G|==KsZSVmy9AXN=P_`7C4FPBT*PiO}r7giBuA}dla+)f1(uhZ(;?=AMRd& z%}`C#$EKJ1O%j0T6N5lWawQOtlPATW1Vlj)4Y4PMRK*l<#S|z4YJYNwn1sooO+i>s zctX1)6bP@oB?S4D@MIt&sJsCG4<%8^aD7xDO(WhF5XJz48Q{EEpcJ?U6D12FkR}vI zl7SN=$2mq+0Jw*NS~k|7UN5+ufy7FPhbRFl0z`F(i?Rrg5l}K84wb>(ThPXF-Vov- za{}{;HzI`u!iCCsm;{2D%1HUpKNEUDBqg3W88q#qR-WC((0-v7_)`Kgm4UO+b|G3h z3~j_B8BmJeh%f9X@ShF(GX$Zb{)i$Zz<ddhcoGmfY|fThiUBGYAkCA5<|*JXvJBp3 zuml0#0<u4lN(?m@q4p0yfnN9w%|HRVglB^U1VSP!iClylhZJ`8lE_gi_!A1i`9Lq| zPYPk<=~Zs5JViTEV}wQm+vcHU{1tx_Sz5yH#sqj493}<JhfFmzQMh6S&w=wAy%FCi zIiRW%?~UIGdWm$zQ-aF#z#4lns-Jg9b{4m_5StvDH2#Fxt?({}wguO-;Tr#^rveRh ziH-wKf<r68b1Fdlh#b&)DIfv3W)LckhoKJ?auH%Kbn!%yL~`Q2F_i=-hj<bx8o!Af zaQ%rm4jknFhuV-tk@ZHT;dOwOERYxeM8ApJ%0WV)IYdnXA5t)+1O(TSMS%Waj#`EU z&e@|XD)81KgQ(`vSYZMJwQ3@T0y=*}O%ZnVt`I};TU;V?1yXl~3{D=BC4*fCg}_-( zJZ0bwQ5;1D5!E0nNw1O=0?mVgf!)cttdP7>UklclCSwGpgo8^S8Wwa|cs&Wh;Q4S4 z;&1qO30x~91(PBMo)Cg+{6_Fdil;+QZBQqMA7z<3=!I@UO8VXrP3%xbPMn=j#FX%W z(8!Q*bw2t%!fUz@k8fvVGu+X(x9xBnH=zJN1bO*I@FYYE8=H`5p1V10w>1|bXFv#> zPrwyGvFszJz}-7wFCe9@SLhI*06%~DsgS{GRUeG_Xb#sMsPi2oy@CR!SO@zB`S1Y0 zOQg^Au}Fv2`EFz`=$rwGzgM`6PbANTZ_T&m+wtxBgZV@Fj(jKnaQ+DXNWL?FG~b0k zhVRNB%lG1Y^QZ8qgam~I!*lv{FaA`%4<9Fi@5}cMz~FC&58pS4?;8>o&iCW{^ZjRq z`uha)1NhVULHz0bV195wun#{tYPz>ictn6-Fh7JJ0)S9{s84u6$W(q9KP)N)ZX`n0 z;)nAi_z`g9P%u9tAetY^kMu{^5k<}n;Yaaj@MrR)`Lp;j{1~6`5L29Q29XW{P+Jih zQJl85Cbe8sr(o2J9@eR|)7y}Pz(0#-$f)6VZX*fNi2fiNF%k{j(<DR|`rk!Emkidl zXatu3AQ~G|I1V5lx^PA{h=&pmB^D$QQXVW}_y>@(XoB}X5s?8P-M`{I!E}=6cuZ}^ zaVJYLY8VHT&6G8~QU|{HceXnYvvYQ}0k)6+Q-gqmIz)pI!2O^9%yltp5Ol6PVofy& z8J+23A+tTunU31TQ2sDlyJ%$nSpGP^8-M)2v=7V|M1srYADT(vzc&=GaG&5HAKyrR zD0(AW3bY<%7wD~slqBAqrg{g32TVpy>W{4}BFHPk|1a7YC2oASn!a7$Qi_XvPqMPk z08G?Ggw{W|H+$=$P7}u9g8xHv11AM<Zk7<{{V(MH?}kt&r8PFT-0k_OnbD<9*g&R~ zsfI=~a+LHinq6y3T>sR(m?n*4H*qM1X3;DuXBM3lBj(G&8i^I4!cIO1AD&g-&?#+A zva;sC8oR*`*5gJG2Ijkr|5LLQS@O&+;Q)gWIwBZ>OB?$kkOi|J;xs#ku`@^A5784z zAY(&E#1w#cR8WvlB-6U!Cv9o!CX~}>*@!JiNWmJe!{g!C;0e_+zKvIe5BkLIav6Oy zPlRtSg()nDfbfV&)GzXcppH&(Lmv49evJ#58tESaT?{cj*eDR<q6BL0rja0wLlKQ2 zc1Ob|h+LccD}sp4R5XH!$t27>P`&XmVUsMP5yUdVY<kG$Ga5Ze-I`_)sj-b=kcDDu z^#Awtuq*?c9zqB-fg!D8(xcrVF-nC}e;IY4wTgd|54&x!%O^Lm(f9#orLlbY(NH?U zI!ZiPpt_K89Jq1QTm&?zkSOHisq>wY@rVS?#CNx;^M?gYjeuCn#A$3eUWM}*rUP+0 zcvNs`Ds~|mmxa2D66q#!u~vvTl;0=>G#mc!rBYW{Q};4b_iy3%l)zOZBJw0XdA^%b zD&uZPR8@B#)a|cIC675%=X*uu`Bds~CUxA9JZgtZT^UJ<_b-bek7iN((5d}^)S@U% zi@^jcRFIg;WmJq2y0KA)SOYsnVDKoZk!XnP&3WVjLY|12{-&c9!=y~({5OGiWK?7j zxXyqW*ESx}|KiF9cA3-<LUH8k7^P>RX1G`y>=NAl=>uksR9tI#CE6*aY7MBI!+mDJ zS9Ui~K-lO=yMWN)hx@_kk*eE(Z-h^DBz&eCAvK66zO(V+=j>px12rQuQ0NHGfQ=@| zBSQO7ETO37J7Hjw8VVzuleviAeK4<uCAdP}1B;3!*-O=eDu^f+zmA^n>q5s!7gzv> zbD6xy9#w<5uD+2g6h4A0#BHN=^6>90u29$KBXmrmvAII*1yJXc*h%Fe^oAf6IEc&? zRFuR-XbzJ{cz7u`5sjk8W2hrh5Jrkl1U3Vvy-}l~Xdvs`sFuuzL+~HhddOnU!=0N( z)D$k9`*?78I`bLP;>X~qFx>qlP%$M*p~6{1npGNAOfe!U;`jgKn8;COQ}vwziw5-S zVpL=<g6Aa31j{K~-UP=XkN~aO<24~nJK_nxUem}Esz974_<9+QCzv{81&v?|z79mx zgp>^_IR+}CPa)-o6GX$S&h)wn3L6?LVJDG7V0gDhqH1I>4qz%2zF>(HMeKiRP$vda z)Y*1iYGh?eJBU*R2yk_#eqbbXg|s%s*fUOW1ZF029kqt}6ylBK2vr`=Tp8PD;Q(ee zU_qC{gc=mqC?_T=QW^1j-~`c`i+2PpybaBbI@;V6g)r~l*wzqraP*s2bNn+4Z-daN z6Yx#qC5;14E@zdNaqyd9C~@9hosU_=gkzH&#Zi&;HYx_rBqoK#H3CTSB}~~+ib3#@ zq>yN5I7LVoaQjd4moooS8b@#(%<_oK9`N!=oFqr+c5Mdq+B8;E#)K@LY*nC%SR_o1 z5(!C7l+a5@I9R1O$eFq(g)E&a57$KUzLZA3;Q$sUBw3_?);!$7Y}7<1D!ORN`$K4W z(N`v3+<7O^G9}AIOYi_Ax*jgQT>DC0He?N6F2S*;YEJqMBwB*@MshhW4u&QH32cCu zDNl-CTz`nWh-k9GzcOo1-7g53n0Aw?8Fa<KC?zE{gQ6a{QPgEEq+-z35_jWRg*P-* zwkJd~3wP7l48fXmZ^*$CxDQMLQonFaWDRlVkX~gYpIKfG;Yw0$rb`d>pN^Gm3ItL% zt>`1O&JB`d3XaZTjt7Q5He$j3uZAY|2dUxYP})EUiX@b9jmQc$(SXIc>q8ZXrt@J` zW&-!)o4Z7Mg-4q5Fd<A>fl20>gu*Dt!W8ZNp#2sCfE-j134{Vu7(d|!l39e1M#Rh{ zLJ*unn168!m>v+xDwV_~GKDp=MxlurJ54EKak_+JK#5<aL{Tb~APBB06d_W8z#2qj zZG<ueq1R6+M-W_WL@vxir~nXtgT`n&wGG9Rv?@%Q;~u&gnWS1Ge0c3i!hjt@V#bC7 zASMz<AEQ8si{vPoC{cvCNVo}98pH&`r{GcwrIPu?EJ{)R*&2Y?4$uiP{EQjJRK!zU z2owOZ6yL#10T4$Cl_rZr3?&*o2|(;5%nyf1D3GABk(qeZ3E0~4CmInm3A4yEiSWTA zMVMLOT1g7A0f@LvjC*M*Q5A{4uK|d1<K7ew!O$Xt1!6T0<B*KlN)`dBm?}V@B%)M+ zN(%*3%1MEMxs(=AAgL*Av!fVJ0fEKDu4&*o1p_X_eg{IeBci-1Fl;R`<>76BPB`@y zv742cSpiT|jH4Qi9Eho8i(<eLU&(gGfI}UdAX9|%oNTMK^st8sGldOXoO;13FTn8v z7!{+}97v<r4rO814zY`^_l&}USTXET!|es*186;EYiMxT0AmUZs+{z&)4>$BLNoz~ zN)Ve38I;2Q34oJQ!y4@)tteQDX4VenVb%_r;D4wc><$2R;}QkiaRA;}X^c`9*mQ$* zj9Wd}@qj*XQNgl0d?4Blqk^!<1AXA?Wuy3T@{sr%%14<PHDv7kZ)jeCq7e&71eXbo zHs(j5gEICg8}lPbM+SRT8pO~13IZT5lOU?b{0Is{oD$}K#C4t6rOQ@bCJta8FaTpx zg>o~wK=(r_E<}2H2l?RKr__spAhr|z1J8tjpms`(rYQ*2OGwNV;1CQDL2Zb*GGK6s zY{&!=%0sV1L$M91n4}^LN~t6<lSsH9qoIit7FSHnHo$K}WMTn^drko0Xba6rp|^7+ zab~gfo|r0@=zhh-L=<2r92POD-eRH$Lv_O_?}VltunPrbLveyx7^0h1M{<@_OgO7_ zhS96gG&(%$5QPs`fx%G{6HSfo7va-=R4QVU)z%Bvh(r9)Bm_)OH_p3Lldn)`yeY%< z2=4TWsp&J6es~B3OmdCzfy5*6sahP1lb5$oPy|F}8WA-;!d(C_&L*Z-Rzi4j;oDhR zd4Q+J9~tTsOayF#7Ebt`GzU&7Pm6t~yhs&pLzN0F)7n%iccI?-Rmx&)c)+kRK5pir zQ+?q-p2z}r?Lb1F3GBENSb%S4N~?8rxR0+oY*iI1)CCRyU?-~-=GlFD4KP$M^p6)z z!i2D64XRFuK|CS>3Y>(|f#@C0r?X*bMvnmlglK_^4nqi$KTe0iJAk<`G<8F!!w9M& z85(brKpX~TSh8X89l!6Ko({o~U%`M0C1`IX1BPfu^BRnFP=67pb^?JIO<*t*LMTnt z`spx0C}(p4zDrPprl&(N)ORvqu*`$nH_m@bPJmE`CSe!}Av2mrWWiu_Bnt)zk%vuB z2l%AO8q#6#4x6(YVYvJOC_|$nMnYH;LWYwL1B4PZ9ZHA6J8Y%q!Z@6PArf9=$Uv(w zCP4;?g;0)0_G}oMY-GS-^@vRj5GY2DHY1$?Lc_8+1K$;B9t-C`MU6lN?TA$fAQUyB z!IsEsvI?<8ce^rRu+EISL^=%c;qE~LjO4#1^2i&2_?u9GMvx4cNWtL@AQW(PK_C>M z9*&V0QlVKO1`P0F?1F``oem9D83`dX>L6J#Ja`%d2AvwaDFQwP@(>y61hAGwz+l%M zWu@Sh0jKG}?m)B}K+g;a<!CyS4g)(QCgj<uTnNUloInim=NNVd_zwtW9OVKiSMJEF zunLw4Vc$FxhVY@zokgIO!+wEK3LD~C31Ocsauey90iguBPjncN&9UhShQ`Z`bbt@d zX3}8@9~z&ce;AGZ9OVLpat>Qz*E*VRMgOS0fKZHvEOZ#;Rd8F0kZpp2{}SjIxd`z! zVHQHzI?pM@60IpS(n%m3Gm8sAAinO-NGE_(JWzjTW`PKdKMMv3+4=zp(S53%yl4!= zECga{vnmG$UEa_GVx;zix>=&3Iy*Cm{Q_9JXDgRf2s?zCc>$k-sp$waEcdhY4fqd+ znN2kyM9u-77}OrnaswR(d7*)FVVqV1TfouuK0PnsgYFZqaH9iJSB~bC*)R@Up}uHa z0zDldl%nN1It=hh+366h5g$gnNK%O7%~B*lC}~0@GLBgmh-7Gihfy%#Lt`a64B_M0 z1@J%Q$V;Xt1PbMxE)|+AyB7n5Vy??2Qm`um_!MZ7hFOMKjHUr`{!{H3IX+D&4V+Ek zWCmA-1B1gNOc?CB$M+P_3kDdy%P0Il0K%qdW@d0yASnk%lO5&pO645)N&xlX=mI#_ z9HKE99^aKtAviP;rj=bVI5`|H$dCrJ*eZh~SR5D_8a7N0JvYD*{~Osa=Qc%w9E>X` zvkZ-hm_);&G!D^nOKzv55YQc7qWyt~geC=;2o(};AqsRPik(i*ZL$glyVHS9zXG=L z0T?D^`)~k+^G57KEYZ0cR>77WqXKzh$3G{XC0Ze7R1Qvs5aNXTH?SWa+hb`kcv4&? zgdH3l_ev;0XK`4Cz&tCP7?@6C5JT`ED#uX}u?$V1v8aZ#9UK_P@f1p6Ov9=Ov@m>& z6ce8i^pBMg7$e~f8o=@4SU4CFapW$9nQ?YSz~ANg0kCn2?6ztCA8Z#w*L1Qd6mkp= z>=fekia<1bgbV!|oM&O-gK{a)hY&mBKkOM}_wV5TS+e~)<PvgxLYUJ-i@r>vCFn36 z3ns_!T4$z{SxPznpHK>Z2`94vEsZcTi;xe^f(b3T#z!b`VlZpjpfe5rA1H{F)9jFI zz%B&tB;m*tR!BHw1{goGIS6GaSc4VdKP*sjdMuC=$Fzc8Hn>gHm;q*0*qRRbz$;;K z28J6PKR^U?7-+K<ldV#&g#-OyJCx9)DmYy<=o{U%;)tPlXLAAa%Fyf^UM}VTfdPQ3 zu!w;PE3~l&PuNgnIBH5|reH9qh&C88(t&5d>4;!#%x<2r*$K=tTe-wYcx;5=UvUVO z;2TI;1+$tMd<8F&?Nx&=Si&+tVgDLTFr32X3>KlaquD-YA!rE0hQX+d-HE}uL~cdo zG~a;o|HLw`(m-aGwt}L<%mJrh=-#;n!{ClZAmrs3DGZp!o@Rj~&{B?!B`~;S%UA-& zkxdMofNM}LN<R?y*?J@q!t4aw|AW4cTL>BquxkR=kwXlyi&JCh*jPFPMifST4fx3U zKRC9}@l;^`kK@-#;C66MA#fW9yS>BUhok)xnDXIN1e0@{3D_Bq+@;Xnv1%fKF(t=q zf}^yYu3U=dMjL8OOn6Gg_(pH0{|6IV9QI4$z6iFArA=5pXb&9M9mYQFaiIVTruz`2 z{{fc*uoXlq!S_%znjOHnV?~K2r^AA42RPOdCPg^j5X^tbIGPDZra7#J0W;dk!ypD` zhdBj<#;|8gVd@H+6EiQsWQ1-({VC%E(!^H?=!F1G#_koty@Hc7EQAthi!6%?nvQRD zXW#=xXNVK=A5DI<trWn3+3Z5(9L0omFe%7RrvNc?U?N(xBWKtZ65u~4A<UC=V3us7 z0uB<~(ZEh;iLTv66>j9J1bhuv%YnSWRy<v!{|7+0mxYsA#&$*_9b-Z<GTaN!jfTUK z2p-=hAjSt@9^sD;34v`))TVI9VBZk<1!SOI&5m#}On<SRy-;W?8V`Me*v1x^Z4F+a twY^wwZ7s32v2&1E@u)O^PU69Xm7WN+Z3thQLB5+vs@|iA{YVG({{!<s90&ja delta 29580 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 diff --git a/Doc/TestPlan/TestPlan.tex b/Doc/TestPlan/TestPlan.tex index 347436c..0bc0d90 100644 --- a/Doc/TestPlan/TestPlan.tex +++ b/Doc/TestPlan/TestPlan.tex @@ -3,8 +3,8 @@ \usepackage{float} \usepackage[dvipsnames]{xcolor} \usepackage{booktabs} -\usepackage {graphicx} -\usepackage {tabularx} +\usepackage{graphicx} +\usepackage{tabularx} \usepackage{mdframed} \usepackage{tabto} \usepackage{keyval} @@ -12,6 +12,7 @@ \usepackage{hyperref} % ============= Requirements Table ============= + \makeatletter \define@key{test}{type}{\def\test@type{#1}} @@ -73,10 +74,9 @@ \begin{table}[bp] \caption{\bf Revision History} \begin{tabularx}{\textwidth}{p{3cm}p{2cm}X} -\toprule {\bf Date} & {\bf Version} & {\bf Notes}\\ +\toprule {\bf Date} & {\bf Version} & {\bf Notes} \\ \midrule -Date 1 & 1.0 & Notes\\ -Date 2 & 1.1 & Notes\\ +October 30, 2016 & 1.0 & Completed Test Plan Rev 0 \\ \bottomrule \end{tabularx} \end{table} @@ -86,95 +86,83 @@ Date 2 & 1.1 & Notes\\ \section{General Information} \subsection{Purpose} -The purpose of this project is to recreate a tactical, turn based game much like Fantasy Heroes. The game shall test the macro management skills of the user. The user will have a bunch of information to process in order to determine their course of action for their turn. The game will progress based on user inputs and decisions. However, software like this will involve a wide variety of test cases. The testing for this software will follow the Visual Studio Unit Testing Framework for all automated unit tests. This document will highlight most test cases the software will follow, and provide information on the unit testing framework. + +The purpose of this project is to recreate a tactical, turn based game similar to Tactics Heroes. The game shall test the strategical skills of the user by presenting a large quantity of information to process in order to determine the best course of action for the player's turn. The game will progress based on user inputs and decisions. However, such software will involve a wide variety of test cases to ensure proper functionality. A specific category of testing includes automated unit testing, which will follow the Visual Studio Unit Testing Framework. This document will provide a complete overview of test cases the software will follow, and more specifically, provide information on the unit testing framework. \subsection{Scope} -Software such as what Blaze Brigade aims to recreate has a complex interaction with the user. Giving the user many options for each decision they make. This means that each one of those options much function properly. Actions such as moving, attacking, equipping a different weapon, et cetera. Each one of these actions will need a proper test case in order to ensure their proper functionality. Other test cases based on functional requirements include, unit properties, menu navigation, structural properties of the game, and handling user input. The non-functional requirements of this software project are based on usability, performance and security. Proper test cases will be orchestrated to fulfil these requirements as well. + +Software such as what Blaze Brigade aims to recreate has a complex interaction with the user, giving the user many options for each decision they make. As such, each one of these options, such as moving, attacking, equipping a different weapon, and et cetera, must function properly. Each action requires a proper test case in order to ensure their proper functionality. Other test cases based on functional requirements include unit properties, menu navigation, structural properties of the game, and handling user input. The non-functional requirements of this software project are based on usability, performance and security. Proper test cases will be orchestrated to fulfil these requirements as well. \subsection{Acronyms, Abbreviations, and Symbols} \begin{table}[h] -\caption{\textbf{Table of Abbreviations}} \label{Table1} +\caption{\textbf{Table of Abbreviations}} \begin{tabularx}{\textwidth}{lX} \toprule \textbf{Abbreviation} & \textbf{Definition} \\ \midrule - HP & Health points\\ - - Str & Strength\\ - - Int & Intelligence\\ - - Def & Defense\\ - - Res & Resistance\\ - - GUI & Graphical user interface.\\ + HP & Health points \\ + Str & Strength \\ + Int & Intelligence \\ + Def & Defense \\ + Res & Resistance \\ + GUI & Graphical user interface \\ \bottomrule \end{tabularx} \end{table} \begin{table}[H] -\caption{\textbf{Table of Definitions}} \label{Table2} - +\caption{\textbf{Table of Definitions}} \begin{tabularx}{\textwidth}{lX} \toprule - \textbf{Term} & \textbf{Definition}\\ + \textbf{Term} & \textbf{Definition} \\ \midrule - Unit & A movable character that the user will manipulate to defeat the opponents army.\\ - - Class & A category of unit type. Different classes have different strengths and weaknesses.\\ - - Stat & A numerical value that belongs to a unit. There are a variety of stats that make each class of unit unique.\\ - - Health Points & A stat determining how much damage a unit can take before it dies.\\ - - Strength & A stat used in calculating physical damage dealt to opposing units.\\ - - Intelligence & A stat used in calculating magical damage dealt to opposing units.\\ - - Defense & A stat that lessens the amount of physical damage the unit takes.\\ - - Resistance & A stat that lessens the amount of magic damage the unit takes.\\ - - Skill & A stat that determines how skillful a unit is on the battlefield. Used to determine hit rate, and critical hit rate.\\ - - Speed & A stat that determines how many times a unit will get to attack in combat.\\ - - Graphical User Interface & A system that interacts with the user through visual representation.\\ - - Hit Rate & The percent chance that unit A will successfully hit unit B.\\ - - Critical Hit & Multiplies the damage of a units attack by 3.\\ - - Critical Hit Rate & The percent chance that unit A will perform a critical hit on unit B.\\ + Unit & A movable character that the user will manipulate to defeat the opponent's army. \\ + Class & A category of unit type. Different classes have different strengths, weaknesses, and attributes. \\ + Stat & A numerical value that belongs to a unit. There are a variety of stats that make each class unique. \\ + Health Points & A stat determining how much damage a unit can take before it dies. \\ + Strength & A stat used in calculating physical damage dealt to opposing units. \\ + Intelligence & A stat used in calculating magical damage dealt to opposing units. \\ + Defense & A stat that lessens the amount of physical damage the unit takes. \\ + Resistance & A stat that lessens the amount of magic damage the unit takes. \\ + Skill & A stat that determines how skillful a unit is on the battlefield. Used to determine hit rate and critical hit rate. \\ + Speed & A stat that determines how many times a unit will get to attack in combat. \\ + Graphical User Interface & A system that interacts with the user through visual representation. \\ + Hit Rate & The percent chance that unit A will successfully hit unit B. \\ + Critical Hit & Multiplies the damage of a unit's attack by a numerical factor. \\ + Critical Hit Rate & The percent chance that unit A will perform a critical hit on unit B. \\ \bottomrule \end{tabularx} - \end{table} \subsection{Overview of Document} -This document will explain in depth what the plans for testing this project are, and provide a comparison to the existing implementation. In this document, a description for each test case is provided along with expected input and output for each case. This document will referenced by the team of this project when conducting any tests on developer code. A brief description of what automated testing is, and the groups chosen framework to simulate such automated tests. The document will also contain a comparison of the project to the existing implementation (a game called Fantasy Heroes). The goal of the comparison is to determine how much progress has been made, and if any changes are necessary for the scope of the project. + +This document will explain in depth the plans for testing of the project, Blaze Brigade, and will provide a comparison to the existing implementation, Tactics Heroes. In this document, a description for each test case is provided along with the expected input and output for each case. This document will be referenced by the team of the project when conducting tests on developer code. This document also provides a brief description of what automated testing is, and the group's chosen framework to simulate such automated tests. \newpage \section{Plan} - + \subsection{Software Description} -The software component of the project is governed by various actions such as inputs required, outputs to be shown to the user and certain task computation to fulfill the desired set of requirements. To test the overall system of the project and being able to produce a stable build for the user to interact, a set of software descriptions needs to be covered in this test plan to discuss the main functionality and how they can be tested as outlined below. + +The software component of the project is governed by various actions such as inputs required, outputs to be shown to the user, and certain task computation to fulfill the desired set of requirements. To test the overall system of the project and produce a stable build for the user to interact with, a set of software descriptions need to be covered in this test plan to discuss the main functionality and how they can be tested as outlined below. + \begin{itemize} - \item Mouse input - This is the primary interaction between the user and software to carry out actions within the gameplay. Such action include starting the game, moving the units and giving commands such as to attack the opponent. A test will need to be devised to ensure all mouse clicks are read and their accuracy of the position, to ensure that the resulting trigger is correct. - \item Gameplay window - The map will be created on top of the gameplay window, in which all of the mouse trigger would be happening to interact with the game. The window would need to be tested on all the subtasks it holds such making best use of all the space allocated to it and the ability to close and minimize the window application. - \item Menu option - The menu is the first screen the users will see to select an option to start a new game or learn how to play. Each selection will be tested to ensure that it directs the user to the correct use case. - \item Map creation - When the terrain is constructed, it will display a field which includes moveable position and obstacles such as a tree, which an unit will not be able to move to that position. A further testing will need to be conducted on these obstacle nodes, to ensure that an unit does not accidentally takes an illegal position. - \item Movement of units - After a unit has been selected, there shall be a limited amount of highlighted grids that he can move onto. The constraints within the pathfinding mechanism would need to be simulated as a test case to ensure that the highlight grid show the correct layout and the move onto a position is valid to abstain from any invalid operation. - \item Attack mechanism - During an attack, the following stats and health are taken into consideration to determine who shall be victorious in killing the opponent's unit. The test case will further breakdown the attack mechanism to ensure that the correct drop of health is calculated and presents a fair attack opportunity for both sides. - \item Turn based selection - Both players will alternate turns upon completing their set of actions. A checker would need to be in place to determine that a turn has successfully been completed and shifted to the correct player. + \item \textbf{Mouse input:} This is the primary interaction between the user and software to carry out actions within the gameplay. Such action include starting the game, moving the units, and giving commands such as to attack the opponent. A test will need to be devised to ensure all mouse clicks are read and their accuracy of the position to ensure that the resulting trigger is correct. + \item \textbf{Gameplay window:} The map will be created in the gameplay window, in which all of the mouse trigger events would happen to provide interaction with the game. The window would need to be tested on all the subtasks it holds, such making best use of all the space allocated to it, and the ability to close and minimize the window application. + \item \textbf{Menu option:} The menu is the first screen the users will see to select an option to start a new game, learn how to play or exit the game. Each selection will be tested to ensure that it directs the user to the correct use case. + \item \textbf{Map creation:} When the terrain is constructed, it will display a field which includes moveable positions and obstacles such as a tree, which dictate positions that a unit may step on. Further testing will need to be conducted on these obstacle nodes to ensure that an unit does not accidentally take an illegal position, or that an unit may take a legal position. + \item \textbf{Movement of units:} After a unit has been selected, there shall be a limited amount of highlighted positions that it can move onto. The constraints within the path finding mechanism would need to be simulated as a test case to ensure that the highlighted grid shows the correct layout and the move onto a position is valid to abstain from any invalid operation. + \item \textbf{Attack mechanism:} During an attack, the affected unit(s)' stats and health are taken into consideration to determine who shall be victorious in killing the opponent's unit. The test case will further breakdown the attack mechanism to ensure that the correct drop of health is calculated and presents a fair attack opportunity for both sides. + \item \textbf{Turn based selection:} Both players will alternate turns upon completing their set of actions. A checker would need to be in place to determine that a turn has successfully been completed and shifted to the correct player. \end{itemize} + \subsection{Test Team} -The test team includes all of the members from the development team to encourage that the testing takes places at all stages of the development process to meet the central objectives of the projects. This requires the involvement of all team members to be involved in regular code inspection, the act of producing unit test cases and interacting with the design as how an user would to properly take on the test-driven development style as initially set in the beginning of the project. -\begin{table}[!htbp] -\caption{\textbf{Description of the test team}} \label{Table4} -\begin{tabularx}{\textwidth}{lllX} + +The test team includes all of the members from the development team to encourage that testing takes places at all stages of the development process to meet the central objectives of the project. This requires the involvement of all team members in regular code inspection, producing unit test cases, and the design for suitable user interaction. + +\begin{table}[h] +\caption{\textbf{Description of the Test Team}} +\begin{tabularx}{\textwidth}{lX} \toprule \textbf{Team Member} & \textbf{Testing Type}\\ \midrule @@ -185,21 +173,29 @@ The test team includes all of the members from the development team to encourage \bottomrule \end{tabularx} \end{table} + \subsection{Automated Testing Approach} -An automated testing approach will be introduced in the development process of the project to ensure a new feature or code change does not affect the stability of the master build. Additionally, it would allow a better use of resource allocation to move the manual testers to work other aspects of the code or documentation. As the project tends to grow, the automated testing approach would further educate the team in producing more reliable code as well as able to test the project in a much less time than manual testing.\\ -\noindent -Testing tools like Visual Studio Unit Testing Framework will play a big role in the creation of the unit test cases reflecting on the functions that impact the logic behind the game. With a reference to the functions, we can test for desired output with the anticipated inputs and further elaborate the testing scheme by checking for robustness by providing invalid inputs or extreme test cases. Since the automation can cover a large range of testing over a short period of time, it would be feasible to conduct stress testing of the game and conduct the test cases to be operated for a long period of time. Furthermore, the unit test cases are initially set to test features within each class, but a set of these automated test script would eventually cover the system data flow to better understand how the software is interacting with other pieces of code and whether a more efficient design approach is needed in the next development stage.\\ -\noindent -With the aid of the automated testing approach, there will be a less reliance on the team member to constantly check whether a certain features is correct while consideration a large magnitude of inputs. The best practice of this technology would be to constantly develop new test cases in parallel to ongoing development process and to run all test scripts multiple times before pushing the source code onto GitLab. Since the nature of a game cannot be fully taken over by automated testing approach, manual testing will still play a part to ensure that the game behaves as it should and feels natural to the user. + +An automated testing approach will be introduced in the development process of the project to ensure a new feature or code change does not affect the stability of the master build. Additionally, it would allow better use of resource allocation to move the manual testers to work other aspects of the code or documentation. As the project grows, the automated testing approach would further educate the team in producing more reliable code as well as minimizing the time of manual testing. \\ + +Testing tools like Visual Studio Unit Testing Framework will play a big role in the creation of the unit test cases, reflecting on the functions that impact the logic behind the game. With reference to the functions, we can test for desired output with the anticipated inputs and further elaborate the testing scheme by checking for robustness by providing invalid inputs or extreme test cases. Since automation can cover a large range of testing over a short period of time, it would be feasible to conduct stress testing of the game and to run the automated unit tests repeatedly over a long period of time. Furthermore, the unit test cases are initially set to test features within each class, but a set of these automated test scripts would eventually cover the system data flow to better understand how the software is interacting with other pieces of code and whether a more efficient design approach is needed in the next development stage. \\ + +With the aid of automated testing, there will be less reliance on the team members to constantly check whether a certain feature is correctly implemented for a large magnitude of inputs. The best practice of this technology would be to constantly develop new test cases in parallel to ongoing development process and to run all test scripts multiple times before pushing the source code onto GitLab. Since the nature of a game cannot be fully taken over by automated testing approach, manual testing will still play a part to ensure that the game behaves as it should and feels natural to the user. + \subsection{Testing Tools} + Visual Studio Unit Testing Framework will be the testing tool required to automate the unit test cases throughout each development phase and will cover a wide range of functional and system analysis. + \subsection{Testing Schedule} -The following testing schedule has been derived from the development plan to ensure that the product is functioning correctly as it continues to evolve. In that regards, the schedule can be broken down into the test deliverable and test cases schedule. The test deliverable schedule outlines the required test plans and test reports to be made available for the team members and stakeholders. In contrast, the test case schedule focuses on the internal dynamic of the software outlining the testing period of each of the major development phases. \\ + +The following test schedule has been derived from the development plan to ensure that the product is functioning correctly as it continues to evolve. In that regard, the schedule can be broken down into the test deliverable and test cases schedule. The test deliverable schedule outlines the required test plans and test reports to be made available for the team members and stakeholders. In contrast, the test case schedule focuses on the internal dynamic of the software, outlining the testing period of each of the major development phases. \\ + \noindent -For additional details, consult the \href{https://gitlab.cas.mcmaster.ca/yuens2/Blaze-Brigade/tree/master/Doc/DevelopmentPlan}{Gantt Chart} in the Blaze-Brigade/Doc/DevelopmentPlan/ repository. -\begin{table}[!htbp] -\caption{\textbf{Test deliverable schedule}} \label{Table5} -\begin{tabularx}{\textwidth}{lllX} +For additional detail, please consult the \href{https://gitlab.cas.mcmaster.ca/yuens2/Blaze-Brigade/tree/master/Doc/DevelopmentPlan}{Gantt Chart} (link provided). + +\begin{table}[h] +\caption{\textbf{Test Deliverable Schedule}} +\begin{tabularx}{\textwidth}{llX} \toprule \textbf{Deliverable ID} &\textbf{Test Deliverable} & \textbf{Due Date}\\ \midrule @@ -210,26 +206,27 @@ For additional details, consult the \href{https://gitlab.cas.mcmaster.ca/yuens2/ \bottomrule \end{tabularx} \end{table} -\begin{table}[!htbp] -\caption{\textbf{Test cases schedule}} \label{Table6} + +\begin{table}[H] +\caption{\textbf{Test Cases Schedule}} \begin{tabularx}{\textwidth}{lllX} \toprule - \textbf{Sprint \#} & \textbf{Due Date} & \textbf{Task} & \textbf{Test Case}\\ + \textbf{Sprint \#} & \textbf{Due Date} & \textbf{Task} & \textbf{Test Case} \\ \midrule - 0 & Oct 19 & Proof of Concept & Initial testing to ensure proof of concept demonstration works as planned\\ - 1 & Oct 31 & Menu creation & Main menu re-direct to correct page. Sub menu of each unit to show available commands\\ - 1 & Oct 31 & Unit highlight & Highlight state is active when an unit is selected\\ - 1 & Oct 31 & Unit movement & Unit movement works as designed\\ - 1 & Oct 31 & Unit animation & Unit is being triggered upon each command\\ - 1 & Oct 31 & Full-scope testing & Testing of Sprint 1 to ensure the overall system is correct\\ - 2 & Nov 11 & Add units & Check to see which unit is selected on which team\\ - 2 & Nov 11 & Combat system & Combat attributes work as designed\\ - 2 & Nov 11 & Unit collision & Unit collision logic works as designed\\ - 2 & Nov 11 & Full-scope testing & Testing of Sprint 2 to ensure the overall system is correct\\ - 3 & Nov 16 & Terrain obstacles & Position with obstacles should not be valid moves for units\\ - 3 & Nov 16 & Full army & Check the state of the unit with full army specification on which team\\ - 3 & Nov 16 & Full-scope testing & Testing of Sprint 3 to ensure the overall system is correct\\ - 3 & Nov 16 & Extensive testing & Stress testing of the game as a whole system\\ + 0 & Oct 19 & Proof of Concept & Initial testing to ensure proof of concept demonstration works as planned. \\ + 1 & Oct 31 & Menu creation & Main menu re-direct to correct page. Sub menu of each unit to show available commands. \\ + 1 & Oct 31 & Unit highlight & Highlight state is active when an unit is selected. \\ + 1 & Oct 31 & Unit movement & Unit movement works as designed. \\ + 1 & Oct 31 & Unit animation & Unit animation is visible upon movement. \\ + 1 & Oct 31 & Full-scope testing & Testing of Sprint 1 to ensure the overall system is correct. \\ + 2 & Nov 11 & Add units & Check to see which unit is selected on which team. \\ + 2 & Nov 11 & Combat system & Combat attributes work as designed. \\ + 2 & Nov 11 & Unit collision & Unit collision logic works as designed. \\ + 2 & Nov 11 & Full-scope testing & Testing of Sprint 2 to ensure the overall system is correct. \\ + 3 & Nov 16 & Terrain obstacles & Position with obstacles should not be valid moves for units. \\ + 3 & Nov 16 & Full army & Check the state of the unit with full army specification on which team. \\ + 3 & Nov 16 & Full-scope testing & Testing of Sprint 3 to ensure the overall system is correct. \\ + 3 & Nov 16 & Extensive testing & Stress testing of the game as a whole system. \\ \bottomrule \end{tabularx} \end{table} @@ -254,6 +251,8 @@ For additional details, consult the \href{https://gitlab.cas.mcmaster.ca/yuens2/ output = The game behaves as expected from user mouse input. } +\addvbuffer + \requirements { name = Game will contain a main menu on screen upon launch., type = Structural Dynamic Manual Testing, @@ -280,7 +279,7 @@ For additional details, consult the \href{https://gitlab.cas.mcmaster.ca/yuens2/ name = Select Load Game from the main menu., type = Structural Dynamic Manual Testing, execution = Load game will be selected and checked if the pre-existing game state is loaded., - initialState = Structural Dynamic Manual Testing, + initialState = Game is currently on main menu., input = Load Game is selected., output = Previous saved game state is executed. } @@ -570,7 +569,7 @@ For additional details, consult the \href{https://gitlab.cas.mcmaster.ca/yuens2/ \subsection{GUI} \requirements { - name = Terrain grid with an unit is constructed onto the GUI window, + name = Terrain grid with an unit is constructed onto the GUI window., type = Structural Dynamic Manual Testing, execution = Attempt to launch the game by the user\mbox{,} will prompt a window in which a terrain shall be initialized for the gameplay interactions., initialState = Game is not yet opened., @@ -581,7 +580,7 @@ For additional details, consult the \href{https://gitlab.cas.mcmaster.ca/yuens2/ \addvbuffer \requirements { - name = The game will remain in its current state when the application is minimized, + name = The game will remain in its current state when the application is minimized., type = Structural Dynamic Manual Testing, execution = Attempt to minimize the game during the gameplay and shortly after reopen the game to continue from the same game state., initialState = Game is initialized and showing the terrain grid., @@ -592,7 +591,7 @@ For additional details, consult the \href{https://gitlab.cas.mcmaster.ca/yuens2/ \addvbuffer \requirements { - name = The game and its operation will be closed when the application is closed, + name = The game and its operation will be closed when the application is closed., type = Structural Dynamic Manual Testing, execution = Attempt to close the gameplay window to end the game and its operations., initialState = Game is initialized and showing the terrain grid., @@ -605,7 +604,7 @@ For additional details, consult the \href{https://gitlab.cas.mcmaster.ca/yuens2/ \subsection{Unit Movement} \requirements { - name = Unit can be selected and deselected when clicked, + name = Unit can be selected and deselected when clicked., type = Functional Static Automatic Testing, execution = Attempt to trigger selection and deselection mode on an unit when it is being clicked on from the user., initialState = The game is opened and initialized., @@ -616,18 +615,20 @@ For additional details, consult the \href{https://gitlab.cas.mcmaster.ca/yuens2/ \addvbuffer \requirements { - name = Units are able to move onto any grid position when selected, + name = Units are able to move onto any grid position when selected., type = Functional Static Automatic Testing, execution = Attempt to move units anywhere on the grid only when they are selected by being clicked on from the user., initialState = The game is opened and initialized., - input = The unit is clicked on by user who then select any available grid position placed on the terrain ., + input = The unit is clicked on by the user who then selects any available grid position placed on the terrain., output = The unit will take the new position and the old position will be empty as expected. } + \newpage -\section{Comparison to Existing Implementation} -The final product of Blaze Brigade is supposed to be a turn based, strategy, role playing game. Blaze Brigade is based on a previous implementation of this style of game called Fantasy Heroes. It is important that this project is compared to it's previous implementation in order to determine the future of the project. Depending on the project's progress, there might need to be changes in the scope for the final product. This would mean that if there are some requirements that cant be met within the time constraint, then the scope could be narrowed. Fantasy Heroes helped derive a set of constraints for the project.The subsections of the functional requirements were named, GUI, Game Structure, Unit Movement, Unit Attacking, Combat Damage calculations. The requirements that belong to Unit Movement have been fulfilled, and this section is completed. The GUI section is nearly completed, and everything else still needs to be developed. Seeing that this much work has been made so far, most of requirements of the software will be fulfilled by the end product of this project. If other requirements seem like they are not worth the project's time, then they may be removed from the list of requirements in order to narrow the scope of the project. Comparing Blaze Brigade to Tactics Heroes at this is point shows that the project is becoming much like it was modelled to do by it's requirements. +\section{Comparison to Existing Implementation} + +The final product of Blaze Brigade is a strategical Tactical, Grid based role playing game. Blaze Brigade is based on a previous implementation of this genre called Tactics Heroes. It is important that this project is compared to it's previous implementation in order to determine the future of the project. Depending on the project's progress, there might need to be changes in the scope for the final product. This would mean that if there are some requirements that can't be met within the time constraint, then the scope could be narrowed. Tactics Heroes helped derive a set of constraints for the project.The following subsections of the functional requirements were named, GUI, Game Structure, Unit Movement, Unit Attacking, Combat Damage calculations. The requirements that belong to Unit Movement have been fulfilled, and this section is completed. The GUI section is nearly completed, and everything else still needs to be developed. Seeing that this much work has been made so far, most of requirements of the software will be fulfilled by the end product of this project. If other requirements seem like they are not worth the project's time, then they may be removed from the list of requirements in order to narrow the scope of the project. Comparing Blaze Brigade to Tactics Heroes at this is point shows that the project is becoming much like it was modelled to do by it's requirements. \section{Unit Testing Plan} @@ -635,23 +636,16 @@ The Visual Studio Unit Testing Framework shall be used to write and execute the \subsection{Unit testing of internal functions} -The automated unit tests will test internal functions of the program by passing controlled input(s) into a function in order to ensure correct behaviour or output of that single function. Each testable function in the program shall thus have corresponding unit tests that test each possible type of input to ensure expected behaviour and/or output of that function under possible edge cases, regular cases, or abnormal cases. Functions that return a value will have their output tested for the expected output, and void functions shall be tested for correct behaviour, such as changes to the model and its state variables. As such, the unit tests will provide thorough whitebox testing of the game's code. Test coverage tools, which are integrated in Visual Studio 2015, will be used as a metric to determine the degree of unit testing code coverage. The goal of the team is to achieve a minimum of 80\% code coverage to ensure that the majority of the code has undergone white box testing, resulting in fewer errors regarding incorrect coding implementation of the functional requirements. +The automated unit tests will test internal functions of the program by passing controlled input(s) into a function in order to ensure correct behaviour or output of that single function. Each testable function in the program shall have corresponding unit tests for each possible type of input, to ensure expected behaviour and/or output of that function under possible edge, regular or abnormal cases. Functions that return a value will have their output tested for the expected output, and void functions shall be tested for correct behaviour, such as changes to the model and its state variables. As such, the unit tests will provide thorough whitebox testing of the game's code. Test coverage tools, which are integrated in Visual Studio 2015, will be used as a metric to determine the degree of unit testing code coverage. The goal of the team is to achieve a minimum of 80\% code coverage to ensure that the majority of the code has undergone white box testing, thus resulting in fewer errors regarding incorrect coding implementation of the functional requirements. \subsection{Unit testing of output files} -The only output file of the game is a window which comprises the visual representation and graphical aspects of the game. To completely ensure proper function of the output file, manual testing must also be taken into consideration to test expected behaviour of the game. In addition, the game engine, XNA Game Studio, handles the majority of the rendition from code to output. Our task does not involve testing proper functionality of the game studio, however, unit testing of the team's code still plays a key role in ensuring proper output. Unit tests for functions that call on the view, as well as unit tests written for the view are necessary to ensuring proper output of the game's visual representation. The unit tests will additionally verify that proper method calls to game studio methods are being executed, most likely with the use of mock objects to mock the actual game visuals, and to verify that these mock objects are being called upon. - -\bibliographystyle{plainnat} - -\bibliography{SRS} +The only output file of the game are a collection of windows which comprises the visual representation and graphical aspects of the game. This includes the Main Menu, the How-To-Play, and Game window. To completely ensure proper function of the output file, manual testing must also be taken into consideration to test the expected behaviour of the game. In addition, the game engine XNA Game Studio handles the majority of the rendition from code to output. Our task does not involve testing proper functionality of the game studio, however unit testing of the team's code still plays a key role in ensuring proper output and results. Unit tests for functions that call on the view, as well as unit tests written for the view are necessary to ensuring proper output of the game's visual representation. The unit tests will additionally verify that proper method calls to game studio methods are being executed, most likely with the use of mock objects to simulate the actual game visuals, and to verify that these mock objects are being called upon. \newpage \section{Appendix} - - - \subsection{Symbolic Parameters} The definition of the test cases will call for SYMBOLIC\_CONSTANTS. -- GitLab