From 650a23c8db4ba3bc2b78c1d23a65cfe3a3ec7c49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Lucas?= Date: Thu, 3 Oct 2013 15:22:21 +0200 Subject: [PATCH] Add real test with a database. re #96 --- test/baseTest.php | 2 +- test/bookTest.php | 43 +++++++++++++++++++++++++++++++++++++++++++ test/config_test.php | 4 ++-- test/metadata.db | Bin 0 -> 139264 bytes 4 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 test/bookTest.php create mode 100644 test/metadata.db diff --git a/test/baseTest.php b/test/baseTest.php index fc50712..2e60c99 100644 --- a/test/baseTest.php +++ b/test/baseTest.php @@ -3,7 +3,7 @@ require_once (dirname(__FILE__) . "/config_test.php"); require_once (dirname(__FILE__) . "/../base.php"); -class StackTest extends PHPUnit_Framework_TestCase +class BaseTest extends PHPUnit_Framework_TestCase { public function testAddURLParameter () { diff --git a/test/bookTest.php b/test/bookTest.php new file mode 100644 index 0000000..747e593 --- /dev/null +++ b/test/bookTest.php @@ -0,0 +1,43 @@ +assertEquals (14, Book::getBookCount ()); + } + + public function testGetCount () + { + $entryArray = Book::getCount (); + $this->assertEquals (2, count($entryArray)); + + $entryAllBooks = $entryArray [0]; + $this->assertEquals ("Alphabetical index of the 14 books", $entryAllBooks->content); + + $entryRecentBooks = $entryArray [1]; + $this->assertEquals ("50 most recent books", $entryRecentBooks->content); + + } + + public function testGetCountRecent () + { + global $config; + $config['cops_recentbooks_limit'] = 0; + $entryArray = Book::getCount (); + + $this->assertEquals (1, count($entryArray)); + + $config['cops_recentbooks_limit'] = 2; + $entryArray = Book::getCount (); + + $entryRecentBooks = $entryArray [1]; + $this->assertEquals ("2 most recent books", $entryRecentBooks->content); + + $config['cops_recentbooks_limit'] = 50; + } + +} \ No newline at end of file diff --git a/test/config_test.php b/test/config_test.php index 824e18b..847889b 100644 --- a/test/config_test.php +++ b/test/config_test.php @@ -1,4 +1,4 @@ A`jCSKV zd%W4i@n$_v)@Q$aUsZMW9~vM*i6W~(*3YZ=d*8kH-Fx4C@6A7ZGFLJ6#bRm2sOV9p zOHozjNnKYI^&v(6K8%}+|37BkWvC3>W4~;6@5aY~h*Ff2_($;%;_t+F#b1fH#Gi|A zivJ+KF8;mvs`wwpZ;D?NUl6}6J}v$m@$=$eh@TPvxp+goCVoP!i;5_U7lkQ4C|(fn z6VHm1;?EY&@g-$M)`3udGyzblx5&Fbf7 z4xgOWtw4Q3&t-L8KXK~Z?D5&N`kAvQ=4Q@5uRk;U{A3@(H~AHe6;nSq``kJG)M@-b zfAXY$Wm1lP^rOY~yvY|- z!}XyLZR{4msEA(_e=UAP{Hgdo@p~gHmq5($Mu!B80g^ib#^|J%>k zjeEO>mD8u^o=~HMgRiRR)j2A2CVR;&RH`MjOeN1Ro27ga{PC$`e#Iq?J`oM5@$hsq8Zu%*Bb>+tV~Io}IBhJZgQmF{n+`|P;czyHfK@}YiQE|C&Y?IQVK(_T}w*Tf%+f5MCR z^C0l{L4frCccTq}j0oGa9prO`iw(wyqqE0m&YwJ|kB@gUJe)su;@R`F6J)>$Y;NQT z1U28-%wAQ=6|&~b<(KlX?k&J{Qsj4fA_L1p*m@8||EdC0!?Z%Sg{}U&J~}J>V`F3L zPv_WhLjy~hFI{y;8xFEfHZaY!u-fP|=g*x!aSF-iW>1~#0EtSjk~i7JQ*XzyLAmdI z;bNhgP_(&CZ{jnLDG~)j4wh>{&Ew!THjmd8^fQ z)_^%y-+{c!W+`Wu7r5Vb7}8GGtX_8Y!c(CR6_RMOAPryJM*3ViU643$mpDGYy^hIe zGS`{Is!>_KR=Qiv8%t#eXC0%V-I#C(;8m-zR1%(ch_`H%7c#|5W=TJM`t(T$c{=q? z-Y8cVR*Ko&V$MW44)QhCbG)q}Jsx2C7yplff8Ni7fCquw0Rp|M7*ly@9wGYgQdTjW zq5O_^uV$#fBYvp?1h3ue_m9Qn>eUx&L;XVDC@fWtB@8em*l=DAVg1d50Aif!@{R4^ zuRhONS>j3Ae5q;{GG@c8zb=D@k1PvKB4uFXLbrb`99FN$JY`jEIj2@RcSvtt&dn*L zz|uli>A=WYg0L@?ZPVDXoeX4+uPX~nZltPAS`%m;OXp{Ljb3q zH5>>GiZ_%Y@exJ*1?J*^AM@{@5}y&@5q~RwAigAiTYOx6QhbE|8hC>D>OsJRzz#sb zcQ<+5j0o|j(xa-ogzpY|AMW<;q5Dv`Z-DNDs&A0)1FEl&?)|E7gzkN+Z#Uh0RiB^k zJzc00^6?8_H@*9WuZ!;8ns12iU8--G?n3qLqPwQ{+4TPd(EN8SF7Vr+{V#wId9pQVg zx|{DkU1ZenA@b*UpXla$x7Nk?E_I0SLLKJ2rtTUPU&Z+Uq5`kH@4_SRoAAc_P0;?Q z;eq!v@V@&Ac;3B;&)(02fCqu=fE z@uaCr9~jRNWB|zf?Z*E%@Y(x$5bz*y10lfU@rX4p4_o8(kTu@d#{YhfR~!F(`Mp=| z;X6itR1sHF2SDFG)f)d*d;Aw1E>w;08Z--P6KM_J&x3#mf!huO2i#&8aW6adcJRcWtJ_X4 zF5uTD5|MT?!&AFlX)q}uwL%??@&Bu+X z*8HDp&Ht&}oc|+ZAkF`&*8HDp&Ht(G=l{M1``@P(@k8-_@i&+Od`tYXcvE~0EAqdB zS->xf&tfj%)7RZRF9Qz(9t5r#0^I_<;ZC{^-$B=*J#-x$pzFXOUHkj!+BZVi-raPS ztNi^wdiHhGwY!V1T|;yg!*tblk^J8)zT~$5zX?Ae_5ir%>Us%12zU^HnMX{rL_k|4sJ& zBl`c+jcS0GuLl7S0@ni?|F;BV`{L%V%r&+gyc7E!@6DqbgGTOpi)yEaY^OT*o9m!Zg7 zx>j@EcLnTeVIXpSzJBA-#)ZM=^#pFqrL-lwLw2{Qll%MiR|>YE>$X_Q8ts(1YEqZ^ zZNqG}GiKwP4q4`7-~)dHOW+S-|NGk8)+nza4+0(pt{DPk$s5{5*I~Bm^|FOeW9y*kr|>Rm9h8|%V*88lAW$d#%Eka_K=n)e_7k60}L7F3c)AAI4N<1l^6KAx) z(7vg?sr|lCv>#}Ht9?iNjP@z*lkUH3ZkCtuHim%jIE`bN4?D(ppKq4$-Qs2CF0y|C zG`n#3;ZF9jZeNnV539Ze-}`)VzIXXzeDC!=N_W`F4)VRvm*RVuZ<_DDz6a<&D17(x zUG-I372I;*|_$K+T`VPvU{nz~eZTtUcz!N^sYXFzUDmcO!&^u8*aR$j1 zz#l;IKLG9jt@iui1AhTd@JZ$Xp8^-K{%&I=_L_dp5McY&h`Hyfr{Jve> z4u7{?m*=zm|9w8W-p|)9*Z*~^(*M7^OWOas#KW9lm-ZfcS0CcL5EJsQ?UQ%)5x#3; zzr1Vjm3Ni*|LIa6R@8^pW$jnB@2Njhei?r^0G~HRLaEy`f}MUo9NLzBA3j?yqT%+F2LDbIhW5@i9oSi z*;=ub&)ORVhf|SIS}v+AT1l!0+q95 z7N`cqgeY3cG_a>jdFtv2ExY{KLmKS`+(9v&)DveNge$HFK6txysq0m zsZ?j|vyACw<6w#EhgRvC+^cUJ%vyHj%o zq(R!%Qm#H?p+7yx(?jo8#{7e+YBsoD49;BVRY|nV|&;g@~Yfkx!I)J9CB}+ z`Lg-@H5=31D`Kq^YwM4J*w(=f?%e9UE4QCr^`fxDcl6L&&b{%KVsrED%uNpdE=Yk60(3*S|ebFGJVG)F)b=0f#M% zqA~V>j#1B(g|rkP!<13$o^5x`fJ*6Y9G>$Yj>!Brv59{P#;kKTA>}m zE>Q&M_xOlUQTK?Ik-5`{PwXlln91id=Du=mUX-UaFW_KuoWV;|=s~^iaAE~69Ev(B zR(72^daV1=-`Z~a$Pkx*et7oG`NKoMRXn!_AD(sndDAGN5{sDrM~MwbCdURj&GSQ) z=J21sLNl`GmP@9o&s8xMTQM<1-<;~n0Z#SOAf@Un+_U*SE(&!Wtu7~LXZksZ@&M=X z{(qtz=FF8MrrT*QxZ#*$szFm0@jlMtg?`Fn@Y`RR(dR4G>^e;w&u5Gh2&HARWG^RM z=%ZvqKl(V8JfB;Vo(p(BR>bM>t;!4caKiasO4u8UQNoi&cn4fyuZ@;T;K2%vnD3z^ z{eS;CN^-#{*|Xi8kihFYv-)u#Ct2}xtNK5@T_iY$32hYls*lpEuTP^hdCt7TwJlzx zdGq5qBd@Ga%#eQyd1+7?s6`zzhPpVPXS=zzNB@AT-gta9(zwpjJ}NlHdKaY_82JlI z;kX2BxmOQsoJ&=3F5munS#H}inp^hNlPc%&lE!(Qyh?ercPwe>IFR$}yZglZm0jX7 zoc|~OPw~HrKNA05{3=fV_yz3#|55RZcu6dZ$HcSZIQ=>F?>%@B@F1Y{b*X#Q5hA@i zdb`w7bp)f?s0^fmaYTFt`|{Hex0?gyXvL2_2o3Thk1PZH$U{UwKQgQD<40!Sz5K`w zxrZN_(UMzFzsd|0>-|s}=7rt-$n30(ADK@Heq?5&@gwsL-v7HxJ*%i^wJ&OaCcdHd zEB`D0Zh>F?e&5)MhuTTz@a`*A=;Ty74B7QEad~YoA8h>E97~dmrkO4C<>5MsoP(qx zyWv#hjSt-IAKSA>y?P&KK+-S$AFoSJA$ID9^k<*fpP7BWwb(7?duuO%TDnuGx8he? zZ!y0HztU;}vjVFnvs^Z_3uQ>JE)U?XRA9SXo4Pi~oYZCQ1AT!lYh2gelUwNtU6)5v zZ$W3WJ5SfknNn`m@$lW+-lG;UxU^;^pq4kD0)cydV~57tp+2MTLYQxlc=rEWfYo_T z@E~xF5b*5(*9bT-nFoPe00J)i-%rB+cMul9Z)m@um9&G}u=*$JXVr>&0;?3it$a?o zqMY2k!HH2UZy8Wa0!T6DW-tq4>#mQ9(NU_2SYni_6|VKfv$hq{f<^>i#E z8cz&z5r|qVA{mZk64AIBjGM`6tB6!=vAz{_M%?I}zhe=RNP-TL8(l)wS`q1t5sAjK zC}J_1u>ciKX6uWfBj-lve4UGkCg@DM(IrH!6=9?oGt=SFbTFO`CF~-i;rb%z1iR6> z?v6#IA_+R;ZgdGzYefJ~vFS({2o;Uk-ECy*5o*7W(mmVNv50Ui5>C*Wd812+Tq`8D z7&D^bY=UqqWwoOTr|5*e(K*qvkVGOuNAQgEXf?5DyQKMf%4PW!2_ho3Og<)rD4#=KDuqfuOey6mTd;3r}xn*CH@`(L+`SCqW^9qj?(hXn9HDbdaQ?4bw!8|(M^#~yk}y_#Yp zm&<_WdfZoM^2%keDUoBQ)33u`W}8QNwd;26W_Dtp!**uJE&G`>TbwJW3**~drY&=( zgM0A1p7q``qdI#T)wX6Q3S6r-)O^4{_P_(`Yj<-$=Z(TrmDWx>5AUt(V<(s@G@&~l z367y~+h-|Jj&NwkO5q)YkCUYfJYn58Hv2$3i<#4`g|PFu|MHOs{bLV4sBSzfL6b|D zjMDl-E}M6rChLLYgxjEL;i$2>-Bp;M#3T4zRERp@sqyJl{U%i%i5ZDR?{9;rE`Lq15ia$~C&--~0@E~w&Kwuw+ z_w#0AF>FTCkzh7u7{ORLnhd7Wuwo~pNh6)jgcI3NRF3~1{ofkh?zO^$07GCxoL9F( z{yhHE`d>c(^NTp|)BX2Zoc@VF52hXjJP5q=5Wq1VIJOT5cHe~!zTZ@KV>@pO8NjoT z2|2{a`Mnq0lYa{#y{Pg1>X7&jo`=QvaqZ?S?E^T#I}iKR5!?TV>Hlju^OyeKs{ecE zTkh4sgMbGCqV}#KqJJ?+^sfz2$Ur~Q{~!@^sE=s=z5P8z|Gl(2;Qk>W(Las_0sVJ( z(bXpqJ}{!;>KkFU;a8qg@b6W1M%~Z~+JA=`z^9d$@O>M<=(um}_=9aHP@Jg`%%C{W z!OJrb`Nx7mbtBGGC@ZFPm0!r_N)>Fl+W0bpn$j+n-S389_VQ=F2eUoSz8~p1Ru{$p9IqZ52*EQYs;o4eFO}U6& zmh0x!wlMWXQPWQJb}MFwy-Gh)!%qf;CV9 zwhnk=H2>$ZXjPk78`f4*YkCxY~*rbnO-a zwVn}(QL$fb-~!s6BCIyE0Bip5?-cQOw*>gTMtBhLAg~z(1|bYQpd7Oo*U0(5?kL$s( zK6C1*ZoNOIhr@x6lW1~6N4GNRG^Z1MuWxK-Z@bw=tAPt)>mji*u-`v+_ucAi04BD< zl?M>Z>vSDxWY~2;=DH`wu60t(hTm3Z#P(16#-6yl9rPp&7Q*tLx@L^rGCo}=%(m0= zeN&rlOHFjO5T@&+H2){Wh9bTtK8Kt4^B~|s;BAG#doh(4jUL^HeV>h`f>F@V7I9=U z+&@|bO=5yC9>+Pui`ay*SkjLy@=%!7ajfoq4rn24$^c!Z#t!dC1+qiMkg@@M(KPdulH@5AT!YuNkyUyGj;uZyx+ zLZJ8aAmBm34S_$3&*yPyN45yXG#J#6FOo3kjtBW z-AI4TC{&E{`kpSKglD*5WZ@h z!Sc7)sydDTO#ejr-xtq;`o9L+e;wSQ>~6UC>_NbTfbvJJ$e-M0zg$oL{vq+8>LUMs zu~)Uozn2_#>dC){N9KC+_Ya8sRGa*Ll-?r$Zt~=5CjTxH2U?K77!mt0>buBaDtRt*`YsSb{JXVVwE z>2ovBO*HM1AJDnByy3qDU4654+DN}`mN+~Yo}3eG?2;L=O;lz?j|~k*kQ?q4W3#5x z_qJtM%$F;&O#3k4mi?yNU)yF>LnF)VD621D8X925V3;v#!10yF)6H5TV>A_SCCuRz zs+XHTf*_g#jcNsivOuQErf+s9TRmbON6^%{)X!55JuKrk1DdvsYbs~es4O=H<};ZV zF{Mj!Q{=^bt6rsjzt~NgT$O9!CHtSI{Hdb+srqk}Z-|H09}!1*_y4;7voi<$dvFZL z&vsveD>tpWq5q0y1%Ka(*$X-a=ri*UR4lHS%TCHe9hx9(;{YLug$HRP4-B4UR%wyC zL|chV7T(Ux>xig7efq>H-TI)PJ~bg9^+R?TatgR;3?Dcz4z`k^XCAw9BIMr_jjC@v zN=*X|J6_~gq!vMS4R7%saL{G@9dHn$*grI}WjK*`>n}E}j+{P!>Ks-nwFi#m2D0jh ztQK&SGsSA5nGm^3cJ4FpJ8sRSl&2)$ZZo4&!}tZO2+2{<>`H#p8m8(72kJ9?vBFxm z-s-DLeyXYVJTa8cOICmg)R7d{Iv=YLw3_-nZ#Bg=xn#Faf9!ER6wr-JOA9hhYvAiV zyMh+by{Slsg#`uP|4+SNQSVppdG}NO4!5A|>O$DRXLeTo*pWs`Tg>I5Xkqn*1xGhY zHGXSLdyNrqFcCI0CML6Xq``FAggiD!XoK-2&4IGYl?BgL~$K0x9176 zx9UJC*$AMy!}PEGe+vHnryZuAn?Ad)*OiEW&oj@cA6sur-ZjmoC56{McP8>$+_#0! zYsK+M*GTFOpXE^2mfD@zhny!?J;?o`1)|3s%Hy|D!AFC#@lx801Di7d*Z3P1P2PO<>$>`Q+`s3E zC)AG(w&fDw59HeH*ytRkpFVWv5ESce;SW?$OR>QD(1AA~-XV(nPO*hrJ$HyHG&Sg5 z#Sc1b0R%8f|NmT3|GD}zHy?f7rZwuivXt=eNu|^`E;h22n&yVyb9hQEv@JuaMY+M; zq`}l*D_3gk7wV^v>y_;rW+!Z{#SU=@C)@gFNM-28aEmP%|2k8?Q*Vp@zo4jJP`!PA zZ+>>ub!9Fo=l+^zBrJu_%@(YnwmiZ5evJ%4rfxj}Rd0G|U

SZhjzxT=s+;#tG^Q z-yt^8RQq?B0m%AnF8*6^kmLX76!mlJ4PWzj^OM(2Uc;^{r>FgU!eRA|CYz+x=G??D zL)y~5{Cth1zg5da1L4au-E=QQYW9R1M)vNacZlj6>;4WC{k7}=UCL!exvYI&3}ElS z&u>lxSN5m;d$48i8~u%vDQOdK{G<1_*he2F?(KMnS3fIn5t2N~K~RK6xk2wOn~bTvkTwgLcvGn@6iFMtM@7$(t`5 zg>1mItQ1AHCi zD^>_1WQ4D~>Doo-fB1xto<%oZwJ!cT#8(^%g7~`}`u`y)|8JP;{}|N&HSmM4fFpbn z^#3XPYgIQd%!7ajfg1|}qS6tj|6NS~!%Y7}O#g#S{{u|_{Y?LTO#i)1|2<6qex`pP z(|bH zT#;Y+L+{-psh(RdnWjEhEnmdibDX`yUxsM8>bW(XhOw?ck25S__F2TriD9u<=^7U& z)Uzg*%@=f()vz@Mr`8@4&!}_eN->9oZQ=}2Hcw%#P?lm)jSm~BLg`Wtd*jGT3{v&x zabSlX<5;m;;sW~U%Mt9NV}H4j%VRkg+S)BX(HU0$gJPZ9U92uGbI~WERAWOr{dnFe zWAC~dRO-UAQGq&=qow^^OJrU$13rah^7%?NyRPR7`h3PH<;@Dzk$&I;RiL)CzoF@m zh-X!2*?+^gVjgFZaQ(XoA&wYjll1&{u)}tL--7)AX?gx<>+%27`0V{W2zU^9#~|R6 z*roI?Wqv9D_w!dN|M&894_|rwS9$zbdHh$U{4e;c##i3|$FKai3jY1Q`XTinwbyAD zK-u5W)b+#uvFcI(Sn7a!*=?hAO{=)9qpr}iEi9Dw=gVD>`^TP$tCt^iSv~VcVX0~? zSu4Jg>FGnhu?NP~HCG(l7W#CH%-sf0eS+6P)}Oi-*jllcNqM2ZKF_o$u|5Wap=NTe z|EN#U`$DFeH3L8Sglznnt6}xA7ivb|`VVuRYf*3btxvAYMR}Kdp7f8+B-P6gyJ}GL z3}M^0t5X}koN7^rhA0i7X!xp6I01pnVn$YF?aBizfAvcVebELK>6Qd4>um{;D_r-+q|n zwfNl#0iygNrvG84|6Znljp<+T>_C_F4wRmPa{OodAMBy^zkcN}73DA0_p5)X9nyYD z`+>Ns{D$(<&O_pI-wFTN(K+APLwnQ(p6Io9MyDlOv~l|T>!veZA89_FchH}(_FaGM zq;KrLJ?eSRg}&HXyik{g^<~FB7wpAgwRwKqr-4p4n2;}l@~m{2=yy$OyW+X#bX}qI zbq$cK$y}c~QJZ3ULD!4N{A2O`>SfhcsIzR)HG}Phoo`W~^RZ#>+6mVu@EEvwT$UwT zmQ|atcaptt)3WL(tDQvFO!dj9d}9yarXL5G z@A<9NCEczra{V7pAKa&XPl31pXT?v87sW~OG`h;eaHd`bI}_#(K*C&U|AH~6HuSH#?ZJI_bF96bnJI|OL7RFBiu zcZ{yxv*PEJ-Re=~IN&>itFQYo$4Sz)FG1I?I9+>V9R4VWALQ^9hfmX0JV00VetsUO ztM(v==p1qnKi|#IL4Ka(>jAoUP0_VS&h3rTvwt^gvRfVDTJ7Rm@z}2N*zV(zyxS$= z%Mo5YOlh_E&{chiu3~~i_HoD~9I~H7-pe6@KAZk)>wg^kzq1196W|PQfZAUHPgn(y z$bv^a2TpJj{NPD&fS8y9<&T5%@6>*Tb;I9t|Do>Q&x62C0|CPO5vKnUrvDM9|6NS~ zyO{oWG5rrS{SPz!4>SD_GyM-S{SPty4>A1@G5rrR{SPwz4>0`?F#QiO{r5Bd_cQ(X zG5z;3{r58c_qyo6hv~nE>EF-v?`Qh=GyVHq^zUQ(?`8?Vn zKlIuUJ@x~w_UomRe0E5;{m^AU2>U^^AK3p_6+ck$&--~0@E~xTK!DhhSy+<$|EQl< z)K6=J+B4dJ0Y9D}7r&}D?*DU}KxNZrKJzU59G2Nhi@np}B1U(k&JD}{LT*>|tn+D% zjV@pFXMAH1-mQL^Gqe2rkez(`U|og?GoSH|g#+qOO8>BGxl&xgCPMk@iu6;<)P?+5 zUF!O8jyGIg3fh(^ZRP{p^Qz>H<)v39yOQmUXQz3}Keq1y^|JJZt8H8a;5aWIsB57U zY&XscaBa8L2>`8m}zF&wVdUDA-=4LFGKVH?k&+kuMr*uZU+eP zkskYSdWo@wlS}lo#TBEFG0WmE5m(QYii>6$yI<-@ma(}pBz?1_(Z0C;!Z?m$A3{I>L`)3wFf0WQq~7 z4^&?)RrGmTH;prsRcHNQReo2YfA7-Y>j%&J_Xfw*pGs9qxg{_MC zez%VzJa_iQ@#C{+<#BMXNOeaB&Kx_3C`V^c&YqhkJ&$v!i*b1N_=!_>Av%6mieqO_ z&shby&yUmP+1HfWq0=XiPUW(XZXt)7j_E#aaGROb?fiO8)v#<7bPnFNwS(;<*Ph%_ z>aPh3Y^K;|yPXw-+fLWGCh*z-wwkXl2S=qCvj?(&HA=m%@ ziuR>5?m)I5j_e_FOYpXyyp#&m5fr|6t~! z&(EIIX*cpim0Trn^7)e!r)Doq@oQkRTFqq-(Iqw!u(}KZ6v53U&|w>0=eRAe&DFJ~ zx(Yn$#O-R4>iCXqmsQ&>a=UG`t*$KMlFm;OmeWo?fs_~{!$g1Vaoqt>J)u(X&spH|a|X`GjYXeCpeQqD-rAXusWw zkZRvI=H4gaKi>-e647kXZ3=%G)v2Qee;XN($p!%_?aW*;Z>4_Nh+pvU-M>e@5_Q3o zSignK^wLZH!i1t%8 z>h_-MA+V8o-oH1wSH1G8n>wX}fh{8}A>X>SB-6&YE^=gIt?3$8F0KgIOs_{ypFeeO zB9{&5n`VLC6pZvzPH{kyt5f@EXgz+#k0lE=k$#jP!sQ3CJ>ZoivDMvC~EqTPL&xZwDLO$)8)Vn3I)VJEzDx(r*+(H(q|ffA66O)vJ43;zG>= zQhVCG_iOQ7ec8ZgTgIvHZyj3O7DfA(thQE!oBEy59io0Gzw))xzj|6xPivpQ!4!Wx zWWVu&5BT@S?^dr=TVk>_qRH##7%bzo$KIyzJBzt8dpFj~kR3u&B@c_wNlu zO@h^iZM~$+Tb5o3Vq{~a|C_^>Vzh^B!`GdKD`oD6D&BVpq?GeD0F=gmRf7(2J5Z}SvF588(H!^V{LOtD@tpdypiY{#V~hKuDJCi*nUWEDfDoa z>n*Ajbp5gpfv z-tQKMz?D58^zWTZsvkYjj?Qahq>I!W0y|QBLwpwzH<%=uViwv*zolrt*35cF8 zmiy)Q^gGqlQaSl*r)<=!hGxxSdd=b<|r5 zGh`F%5krPuKVn#UTNA_bZBx8>&CK}s&g@rTUuxI$jw&nr-FfZU>rTv0ecmeKE!E@H z!2141$n|$NGO<|zm9S|)OZ)$i6y- zk$Ayq4r_(&n`F?4^38q@%|*D<)MNiP%+oia=gDirWY}LF-4g86&4Ae+?9(ndvNBSG zy`?tWu21%SE_b>s)pbMPLZ*6>mx1l5Ue~ui`(ic2V)9mDb=0rxt@M9Q`Hzb7A2suq zr1sa;MgQK@arLUd9hy0FRCPpNAKDSs>Z32X-EA6>jqup<9&DJ?+(~3(dZ|Y>3fc)o z<0fpw$?UbemSi8qx7Y_3vDX82yM3?;!BfUO0snS%gwu-p&T#6m6FuT&W)J*MpkvTq3Ph;t3`w@&yC32#-(zdtAY;ZQru zZ-B#sMfwfF+wO-=h~LS&M*L2YoSfUq&ZuQwPySB$PLRKonN9vqK)v+eZv4M}<^LBu z$p4lNrH)6q!#X0SJMz}KgFDquV&lyu6o`u* z#*;Cf&yCCRENhR9Ra=cmE6fVUidoN-8`s>e6fh04U%gUp#~jGcTE`lkfW`)q!&;pp z;>6rKTX2%JZSA|;G`O)`l<>}VhPS0JI3U>uyf~iO(jjCgm;hDX z;s8{}R>ptrbwzt!(Aj6+&x61_0D*V)=y3VqOD%^si_2pJicN>MS~Q2fG%m=#fkPYn z|0&qoJE#33cf9yJMg7=A+PP&@KWk!3lY(Ac)EjmUB0pmTD{`^1klcp^QNq!tSk_)B zlRCCUS^DT5UEPZM(}8Zv`3UwTqI@fOzL3jjWrl^~B{Q$5*Y%kdvy{tVPouR`4*Qwt zPaBzw`pIG;TP#fJlzugj70x&hIb)UzRF&0|i8avGa(*3qv#gj{cb36w_^fUevbu>a zRIu`X#avr9D*CFivWnGcyoZZU1AkUOT+LjZ)Yq1aWn^5+trSbyoRP-@YGhN$RLWSu z#&9qesV;_Yi4dqhWsUEP*p{=bFXvY1)1_QtNjIocWoxS#T8d2#t&~h7vuu`7&q=HU z&n;n6?)mD)VnNSVOO%QtWsUW+4ViGNvaDxNL={`QJd;QJa~DnhcoFbATP-h}<*B|i z)pS0GM?kQkhf|^GB*Ui_e2WE>GL~T6SJqdGAb1qly^O|48*{?!AU(`MW&o@)+k+Ma8hNcb5XyF zfu7O}Rp1ODtCs;V6or;%N>wvoS?74PLY|f&PW8$5qlA3ExQ2>Q?Rh>!0x+SktF`4^W*N0uBSKj#<`)5f)QI4jyM!HtK7>|) zXbhw-P&Vev!0?LPXm}l_^R8ONxSjH}Ln-JG+Vc zgT8ai=q0q8z256-`fOWE3S<7Vs*Q3SkQn^?NOuF$L>|zOQ zieQN@lNo~Q3c!C8|EBa4jDS?_viTAaORp4VMNz)92@_Ue6!Z%qRI`K$m@L&h5f4lu zqSe_z;}zo~YEvlI*2Pj*l(EH5kOjY?+StH_k#mwm5XvZpjLT*P%n1@C0MQntToh4` zp##pK;Kh0b!+Wi+2f2vFTnQA+^pG~O`wR-GRu7z z9slHq-lN6!Jg^qqFfLcI+hP%0F}k0@ZSeg-$13U*v4EO3Qz;`HiUg-4$#^i9G(y2t zIvo!tGtpQ$n=q2utfAIdHJ&^ejZDQ7(@s@4#>BAl%$$VJx(%NrM%iStZidb#pIXBv zHa(R{#hd~Gn?w-civTuJH*9*g4x3Htpie{tY8(SVG-SkrMmUiP#uAA{aN1Z*2TgM^ zHXV+n!{KzeC1j$Jgj3Ot5p7sGenLW~YD1>2l-u@08>l3wVyL5y7;T~A+d5R*)*8N4#v_EBbr{!B#iiCOPGXXVW*md>c7U?zkjPJ|5p1S z@c6F!U0&`UR^mzY=fi`8=k5M%6tx=PTlZc(JQa!7h)B|VI2Z~y;It~`$4S;nTzUyp zcwxq&i7m$C$#5_lOD>|DB8$Ovcrg)-M6!|TL^vH!MlvnBDKwP`qZSsM!6MDw z${Z1OU~upyYAOp!o5&uWzSpx6;&{=iXbb#>URO`mswG)XNx3DClUcQ6%R#HMrbjZiARb4r?bH{xBxE6 zX(JoUnu%DvC1S-AH84v5-z$pxPs)`WO8lGX{~Og|Cq1%-hoO1)~B1pCu;JPYn|Pu?r1ZD_CaC z=E~TZrdmeskoTcbK(WHO2vG{7e3W=WwY;8LF6N6%Fka+gEkJk{@+*|$ z3{-F_7(>dV;!r}P{YAF2Li*FP0U#|K)dH0xb$J3L7eWd@c7>dJ?7-^dSJWZE{SDEz z3EVdoouoomZwG4VBj{uExl)~YBt;^aKul8ENMa?M!lJQ4>U-ASx0WSn?j=CN0@!>m zTR?xD0c0vukEKh58R%ewEcKmKUaXF65CQcvZ-HB9lFAj>#$o%)u;z!;U6x>gu;LM* zDQ9eQN9x?1v1EKG2h#)Z;`ekFibQxi6(;@d=_-Qp5|IWf7PZ!(N!BvAu!8b|dU85b zDUzxYj!kkh(%_Gq#S-+>Q|203Fiuva{fhhg{JcJ!%~3DbC5}_Frw9j2vRqgISml6y zAdQM<$)E+T3o3w4wLxj|PzY$aiam-M2U!1Ck1P0hBY(HL{(m*G3#9b16>SqzYA?+J z{Ts=-lR32scY!8k{|n**lmc2bYauqtNd2DhK~hW&M}b~*MhVuYB(O3SV)T+&3B8xm z5~IEwFOPs<6-dW5E$l?WkdT(3p+a$uh9)7wSm-9%=nB}6%{^^ob#PSTFmTI z9vf><>Sti@$>&zf`XeymJ_=21N;k4uptynAE?9~5$TXK`8B>7rR(k*#nE_R4YM1mowx3LJ)Lx8fLeg^msPVYplwp8`3u3AhGS zO7#>Qvn)^)00D=oUyP(10p(m+_#ouw6i^eKw-c`mtBO7s$g{=A?Rw^tim|EzEW?+ zWb9R%a&Q-Zpx(8CnWvm;j*YxxyubgeWS5T25mdGB#kh zgtWnfB-jaAu-JHN%^*-asUQqNFilbtJOm{qvgWERl!X-(!FkmeWWdxSrJ-ezb*`|O zhh-7F3re#X^8zw)f$GsTy2B2)#ul(LEUcK<0Ncy2AWF%|=88IOjVlJ;Fl6R3k~JDx zW3|E?>QY9ip`io#pd@arHUE=_MTLiQY7h5_WMAP_blS=~T`C&c3`wp$Q-aZ$rfV`} zQ_Y|QAx+RE6LTiCyIf=`4>L0~vjFiC)Jz+A<7BoRDo#@s5bg*jnMxI{0BAARyLy4R z9M}}*VwQ*lpz7#4IiUi(=gKPN8gvvIi^(cJC?IFB{jWf_})eVPfSfG8}+A9Fp_FeKeer!PZ|pb@`qqbiY;arGe$fZ z51V0Vp9z@T(&20{6N;x3vBgv>VZ2RNZ713CZ|%<5Xow0#@41Zb!)AjX{rR;jDrIgqed(qjhVr0G7a-tIBo=| zr>B#_v=K>1ro*93YC6=i&CyWJqIEgjJFEou%Qj!Id;27&5iyMb=2ClV)5Gzpq|2ny z)V^`jSi8+bSCzfzViLC#{q3gc)v6^^vlWXX_5zCUC< zf&@e!50?H3m4_x+VKFkQJQhRNTDBdENVkJp1pNs55FLh;L267dL#&>_)M>G7R3UG% zg$6=h3Hh=I5IjlPRArU})|S@Lu1Kwt0-vK$ko-jodMvHW;bautE+m0#f)8|U>vQ&I7;w@Cjz^j zzyRfF@Z>{eTkZ&KIrIyF>bOtTn&^}S(qs=C*bSC~WYwiUB+V5ft5gS!)m78TOW2Yf z4U-)5KoID-0J^1EV19qqG-0Y(LKx1vfIcG)z-S_AyEUJkqea--O3;PKC`{%v0!l%; zi=f9SGWnFSgM$PtzSr~|ip{`7JyxnEsc54bmE01m2*hb9kMXiC|COcuH-3;U1|{>Y zkNitZZ<8NT0rtBhVO(ZtPtoIp;~fL@1cYap2%x}RG|{h!p3f~>hG2Yx+Zeo?P%>Iv zEtFvN&9k2XcSM;^1Tmd=PzbrVk^Vy>D!_)^a+RrZY5#}VpH%;^ZH!8pV=h3OXIZ9+VX#WI{J`x{)l2<^wPbLog@TPx#mY zuEZ~hg6u&9ew0LRINnEEFL>(78C!}47*&dyOm&sK^vW1-^7<-{g0d_pk{y+3y&erI zb5&3$oKV4`$&m;Zf~!!GGUu@kJ?tQ@G}kOwVKC5_VZJEjVBsO8F>oYMh8$vnvbi*~ zYh%?6=E;B58O)^pPyMViqMTI3?~7j$rZ^}x?Hk%JXeI5SHmp|E6Y7ZaZRK;A8$8K> zo3e<+D6ngEsULG;`1cB(X7x%Y33Es`H62XEV(?TTl{=L+rh}nSIFkt(iAW}to*=9o zeWnkSLCclO>MI8htgWq0E!t-kPl3)3P^TP-B#7&bE+J;EgjhP2iG-pim0-vcrbCON zx)K6pogba+?N~x0nV`AI(IrH!6@jY8vMDnY#9Tcr?A!Tzhe=R2%=7-6^L3ZBAqcJQA`U51Y&g6t3P5^l%Z~9g9ds z5@gC8T|(4a5r9){IuZs#MI&~18<~29+V7)u&vtbzA{>i^6XcmXx`fEJLSl~as}R_KFQMPF!yPd-8lO%i z_A;&_at&8g(Nugf6E#5AQJZsslhkpJ_ufP4P7if1BsHD5o6A7lS{cbqCS#=IAuzzj zMVqR_nYuD2?xJ+h40bFdoEYO05VKZ7IF-U0k2G4b3E#Mr(#;KYECG<(!$lx!t%${B z0@mEPdq8a>>cAab1P0;`18O`;^e-^PE8o_>r(zqBTl2TEXJA-4@r*QGJ3g^<=1LKI z3JG!z3Pk%aZLGYhsZg}$t>;*I8$DvXw`RsCIlO%pVA6;8r?D8$rV^oaFd0t3`zr}s zw-L?)EsW@N27jsOVz!0#H$0V!)#e*6zcge`-~N3-mUzjQL%8XVjKN~N|L!BiOBEgMNiqh{I+N7JqR|H5$I zuFZBx{eQord|kn1)8A#CO|X`=Nte$>Gu7E%S8~B%OAnXnRD0(Zcr(0y zU;tJ8sfEE!stBte{PKW#n0bfxOvVT3guFz^<(NTw7i4vZz()u%0oYX`p zUC;?(4uHu9?iW1sO{&}ymJmXJ!#6}ciaA<(X5$il%^)(YHuMQv9oz|@Vg(Nl9Z)XK z6*lIu|6ZD`64taa&8h3l(Dq;ws8q0wL#~OV{GjJSO@!HiCebnFj+yuDq<$3cU@%dT z0!c-a38VnK2ThW*wSZF6UItJH$%vS(vabkq(<(g43S=6Cl4~o9WC$dfu}7h_S8(%S z)8TxUp;}Ud$Pf#Vup8ep!NjukrSs%8hjnS|>@|?pU&P`bQn0ZulUCEK zph?SS4z;Hadde)6XerNf5y4~!Vj~XpVd;%6T@8*H1x(!6Hy*~hi_&1yz~T2H_xvjK zbodBR8ewCpPqq*m`re)3@sByLR3P62kY-(JAzpUS~oWz z0Hba}H!|cXGU?_Q$&HB;q7UHon1gKq76CGA0%hcCPk2T!!oYdQ#A+$W;Ion|V^$A3 zJ}OC8SO!gXspzgFLkWgLau|TS0F}aa1SC04p}=+=K}@a@j{lFQ{Ia6_vU+w?>aYKJ zF4;le7%V4?Ol4IaRLn3;j(L0~<3O#u9Cga*oz z0VubGZ#E^<$D{jZN?6Z|wLFA#)REEx1Y03d?>a~kAtiGK4jcq$z}u|CUBf6;rmpTM zsqJGIhBo0rO*Nc2iRzy#6+xRmUCJ@iEx8C+WtvKo?oD6_ zRC5=4oh_nMU4PW>Q5cT>Y0t+kzw2*`C$=FnIykX&VHS~OMjjibV)rNIf#Fu zlw1}FFFQ!T_|W9%aeb?2!dO0&O~w|@3^c${f}DBMu%@P`)3IPAW~9Q<49&!%?f2o- zEP5~&pNhG>T+q?#J+z`|?gj!Q2~o4=YSIj>`tR4duqccrG17NHcqzzRYWUufnO^{!pe zhiE-jxVF#+3PB2vNWpNd(etOHKGak?LP+4C#l0MjZf;l1Iaio%%;gpD;R;V@~3e~@70yU0(~zd!iQya znz$$|;e8tOdolgLpGD)QDFxrd=0TH-q+vR|TaYk5>Xor!kf-!n!6;YFr^<{oM zkRT+SirYc<++v9$I-$4-Rpmq3&?u6CA6tOd~fE262sEl!Z0pmNlCL{3+Tyc5TF*h!o zWF^-bcpT#cR*)03h5%0FMF{3*>)6}Lm!RzANxgTyS=w;fLZ+Ly3KfxX7?%^x*qWRO zjSxw~WxT$_tO5~QSgJx8DUa83sEgT%uYIq!8sJGJal|7^Pa^PYakYw_O>z)-rKp^( z<{?}{g0bDI?F~3s`jn!Sy;lsBBARt+%2DEM_RvAZ*0OgP8NlB50CdTp}l&&gVqDj8AH7;8bg>q#%h|{vDNl3ssnvAssrbWo>MtPmq z$U%sv|G^Eu2hvmjl7WLsP8 zURTM63~Q$q=6Mf zg0qI6P)Ehet}{oEbwB!B+f5%C;_}ZA&z?Ddc<8r^&C(b&{RUMzHppq7AEGpe|MV3? z;3i$GDb-d2h zb;ua%;(VU%=GGql1FCw{Mh-#u9&|?qr&#Zz6ayoFK`ESNfjpcw7#j&2n-Jr$#<^4l z=ko2Jm*uwIrKM#aPpX{9OB&~K@+#%gewk^jTCn|JTvo)t!^Qh~5bz-I_CnzCJD7x5 zMu>z5x6cL-jUqjU(vfQ$N{Rke6?=aE-P_x2ue5gv0zcJ7{wJU89ceQ?(Qz2|^dFbC M{#~sC0Ryl8|7j_g$N&HU literal 0 HcmV?d00001