From fb77b80603e90d873ed62e00703f801571d3ba53 Mon Sep 17 00:00:00 2001 From: Martin Kamerbeek Date: Mon, 24 Mar 2008 16:39:42 +0000 Subject: [PATCH] adding cash paydriver, paydriver management --- .../shopping-cart-collateral-items-1.wgpkg | Bin 58412 -> 65517 bytes lib/WebGUI/Shop/Cart.pm | 10 +- lib/WebGUI/Shop/CartItem.pm | 4 +- lib/WebGUI/Shop/Pay.pm | 135 +++++++++++-- lib/WebGUI/Shop/PayDriver.pm | 143 ++++++++++++-- lib/WebGUI/Shop/PayDriver/Cash.pm | 181 +++++++++++++++++- lib/WebGUI/Shop/Transaction.pm | 5 +- t/Shop/Pay.t | 2 + t/Shop/PayDriver.t | 38 ++-- 9 files changed, 461 insertions(+), 57 deletions(-) diff --git a/docs/upgrades/packages-7.5.3/shopping-cart-collateral-items-1.wgpkg b/docs/upgrades/packages-7.5.3/shopping-cart-collateral-items-1.wgpkg index 7a3a59c81b323c678231a8d9c75fa361722fdae1..f19fdad663594459aa9861a4c945b5d71bfadddd 100644 GIT binary patch literal 65517 zcmV(vK?!@`onJei4{_BZ>fq|Ws6##&Nfsvh+5deUh{XdA{zY_xhBLh48 zKQ1#169WJNBLgEFD*(a2CI9v0;^b`L_|G&O14m~I+yC+X{yF)N{tqYr3`}< zb~jf~T6K0dJ0&p%BNh)14g(umNkKX%XFEp&Gn4-uQ~m{njfLg^EB{Qa3@q&bcm5gK z|K*>RnT-vA;9oTV>*>EL|8)QLrvGQ`fFB9*A8LTFb-=ZiR$qH>P2%fH^U44 zYe10LJpaCbZ@dz`=6KDvUwX}UzV^7tqqskVM-Cr2wFA_tTl1ybyrh=|g09i<#bQsM z4vp9YCQhH!t^I{e?D`O{T@GihvrIOOmaDPu zUZhvIHiJJ(zN}1@rot4hTBAq?(om@GFO#lVkT8*K0_iUrj2R!$S0p0lEudLbX0NZy zrBoefWu9&eTf7Hr_;j9s}s$Hg>Sp^*GH@&4L*R5D8gKTA-hBo+xw}Nu+@z z9>${7I2#kbSN)+XOhH@`*wT4#q^hQJ9s-4bkx$lkQg4j?K6UU zT5aQGzDi}79S+(xrbXdmqKqe5RgGYNY}sCdefQG*73SxY*w#ySsHwS~NXnr|s3ed* zr>bJ*C+~T{2VTjR_Lj1F`|U;A+)h0z-1weY<4TB)pH3A6eXz0Pd!DZB8a|RZ6BaK@H%=Q&$=#7W`=g+Y-SK=WRX;2;3dpyHb_KzLBG$Owxd zRwOI#F`*%m zPZSXtovK|Gt-4-uAV6KteE>fg1&~x8 zu;ZH&0OnGjgnl1(V(lLRcq^J_kzzHe=62FS5{9KL zI=zBGdSXm{iXeI}3T3IqN&58$#cUG}mC_1pxWnZ!dTREE`U-_+sCJPOT2*7K`mgGV z{5>9wYd}91p15Swc=l?U!iCD}g0efGK&E!Zk|nhP7P)g!^_x3M>Zm{ivwGdq3sR*C z7W=FrIl(^=;60`WA%Yl@{Tv#}CNgK;7cYrVSfU0We}&YQncFblRv0-qn9@~XRI27s zBPOd3v`LuKc;WgAtA}x=Cq$@%rHlY;IthQ5bjiSEfIcdcFjkzirLrqmElk9Q z``lqbm5a~~v!#@|%Kp#~aSzbZ*-^&i`WvX5_Cfx{6^UiBMVX{MU@EWKmlz@e;6mZT zuti0dTk!xSK{N2dz5xwAMB}^Lvh>~qXDJp{Agv=Pz$LZ8YTqHm#RQkfmpta7ad2{Q z%;9F8Ig`7IhZJ_URwgD^w$_%Gww9LGb|U+-c!dZ^qdT}dJG(l#IypEzIyyMq58$BF z3nRICF_~|GZtVvFbxBAN2y7!Ja4$F`=5(7c@{vHUBmnK|4d@y$;gI~zGloh&5isKz zuo%w>2S_qD?f?vmiu=PPm9KzHK~jn_=1d+B%(Ir1GYdM0gzod+lw3nY9#<|Q0FN})ldZ7!V^)B zoa?%BaEld!WsT4x=bp&Gq%*kWp6&v<^f-49)-^M0+Rpc#QtwFB1Fyz*X3P$KRx;`q zueqwK?V^S@Ik0_EBm->!A2(1+dk!^!B#tU(K|G4kCb*v_j^Yrc95#|P0T8H+Qs6F- zK^P(6wJ+dF^9~WLbX{V4Py%xBpg|6B0b!my7wDb`0WKgYGDtsC336m!7)YxW|BINq zdq}{{W)=wW()vc@5fM&4M12djfn9~SNe}=%+&w;DK89(#;czI9DV%zco>QRR1mHC< z2?rWEoX|;Qr$hBCju-^FfZM@l#3}IF&CfDQzuH$xGOS#gJQ!3$*2w|3%uRo1##Ug+ zdTa0qj7NcjKT131SX0p4`q>UR_PHE~glI#UzpXQGC6jW%4I%}E9`Eg#8tdn8l($Lg zv}zT9+KwueFIe8Y71M#i;0zbw1{)*b)counNK?$0IYBXl)1*v`Bhxe~g65~ec{cH~ z2A)y8@zc{sjj=FYKW>nk#lTT{;U`8VOf=itge?iH%T~(k-^3)ml9lyYq(;nPs|bpG z7(1o}#P^uMxG)Qglcgw=`Y)lcE|%qxkWvR^b5B_ua7>mH!0~p+yduGJ^K#l8{4bX<@~?W{MVK z^RBXkC35@R_X&B!VH!Ns!F0AYFJUK){Lg5Fr_ zDT68y0`rmLu44|hM)g|&eGWEge>KQ^4w)p-c@Fz1K!^dM3y{Q~Pyv!94=W1nun&X* zbPB+!U#JdcX3eS}tPau|Q19>d9`zkKy`>w; zdmNBNJPDwr$OI`YQE~!HQL99vq)X9p5p2?TW3pE-DVs#CHnyePH=SM`joVJ!)Z3*U zwNCtJzT1H(hzIdEgwJKq>ihMphY{rCjhUrmN(b*Pr&6=uIcnWyy7{^qx`SOM?mkB@ zYnAhxgWM~fYn>xr@vo^nuzV!B2)Q))!L!b}vV5i9InHNWgvEhXgGF%ITsXIPbFGPX z4YgBl4Yy*ui9PaPX};&asJ_hKEpIwk5;qt-^?IWhG16Q&x9*jRYNa{ZB-vzc8%yU| z{1^B)xwrfie!;(lzn|Hi&Ns^%+a7|a-Pv|7_vZ;)ChDo2IkLjOj(SSdI>3|=9O#nlIbHGBt&_HA0w=mr6u?sWvv@BXVw_lvCU@owd zkXg9QedgNrJ?jYCc-(dG{P#i$^9jF&$wI6l+wm^2Gf=shoPExM8BXhp>h=vL2j!eg zUD2Iu&wg}Y3-`@A*t>YV72e|U%;9z6Jz`%yaU%0XAc&I?CyC|6xkO7uR7GoIyHJji zlW|%3ETxyO&+^U$=a~!PMflAeG@w?bRyytqHzKoQb>&@D7ws3AlZt!mKdHCc9H~TvK;Sb=C=}&Ue+#w%8ltA^MDF>AIG4|01 zMjg61bhb*`c0I*js?OSLPM_cA+%>)?-l!q{ArFE~AYsF&hVsL2$=OIiNx~CT$aUmy zQfOp#lf7w+y(a3C{v8-f8x&c~GnMco4n*uCT#MruJd0)JxU+8Jb(4A+zC)w>q8g%} zF{8WNy2YM1k|oEl5;>V4omEe1Bv&@7Ms~h->|S80lH;+;>jD%f25zXfIx!__+O?fBb=F0|-Gcq3}>j(B$ZO z^iWib=r@$EGAF8gSS36l%!Mn4x#oA?o-;epzIVL;PN+&4CXGglH_kaK zVbS0c_Y_Vc$RzDl&G^Gr`Q)h~w0_lqeJpwGa@=}E^e*(CZIC{g0_UY3uT|esAUUsB zU%!y=XnxFA9NHk%F25|QQpi}(k-UpWG?a+CP`cqJ%#b!Pw_x8UdCGpEEbFHb3UEKp4uJUrShbvshW%ugm@m~bE_{Ml6LBTfHtLmXKnC4kQk|m zZlitG>%MRhdMmlh-9zFr9#Wj0DyQ*r1k#q0{P`dfn4tHkR|~1%Aa_U%T5g`1yJD`%xKH z`+_IIS@(DuRNKpe;byw+7OjpO z?ehq_CvIYY4BA^_m@>A9I~UZq%eRX;mL!b~^y%cJ&S@E6rJcj6NKB2f-uj2BL5L{n zU^i`fXj!>}+JuV{**CFdX=IrMA_> zbzsF#y~og57?Qa<(U`Rf|ZYiv!JjY)z;^6pxdtyvsR=*F#;RWeWHL z&YM!jT8%EHp*D}%(Q)H8W@6%OS85FPWnbjh%_yKsM$_-;ZRNUx8M)rz%*9pNM^ ztBoaDB-X-IRkJ{sK6RwnY0aXXlCsO$)|w_Wn+)l0Eei(k>mqYH61BvT9=A7c21`55 zECs0t4Y1Z%^Ju&^xm2_R{Xr(NKXii0B1B9j+^S8pYJQ>)j0^-z%e=fz9oQl4;E0wg zkqW^ZS$6If5etR{+6%L01qYI=nzn^Oz9>_jX>?l#qB=klo7<_vnIKh#1R z;IMv;BT^o?o*h;)(p{s{74?TX+X)+avvI2oSKW6}%2kTwG-YIx zqYly67HX|bU2=JjkpEufi4fn{@V`Q`XGy79(S6Vr z3ZHx$9`@uuw8;5+xi(-f`lOl3oruLWYHNjtQ?uU28-1YLt`--{FztaVz5p zKnq6>Mg7{)zIkrG4wVqlG1DJ`$RO>>Ahf6y$oo+z(6wtUnftpgngUHJEkd+GVZM2(#ogkJg>9c{I z(@}x#K5Ytk9l{f+JQC;n2E)7(eL7Vsm?eU#V2k|7(%=u|$(Ug6so>_|8p4p+MW89v z0Z$?HR76L@=~MlC?=q{oU@Xi@v;iJQbZKf7eT!fq88M1J;~*hzv9S>g8g{~*%s*kt z6hn_FhOGWxE_XzED`En&v3sI-#2|MCh(d#=;&q&eS7{Kg)*wrU6hkNC0?DTW8tz1W zj{rGD+U_j^CZVUG%C9+J%5q$h$^B-fP8S)E(j91udEC4(ay4fXSvH-bRpcA0fm$Q^PKZbPUGfjCZm)Mh*@qXR1p5owxR0 zfr{-yDQ^SSx|7y4M;pN-3>1ATbX$;w8%^phW%czZwSDaDcc{j;QwbD9VL>{4fT=nR zn86TjQ4(v%$oA`?i3(wVC;wMvv_hi~e!Z8=K=yK0hv26Uz|M=LwToneZ>>W6|3X;u zOrdNvL312@rW1y7n{R+~^;I+1T^G>6E%^gtX4lhB{Gmn*NPyzup2~88vE4rY+egcu z(3gICOPl3IIe7H+Zmzktp2(dQlFRj_P-v{#t*g=r?QFwk70)ZyqdA!yGO)+4eZBsB zRL24KS!?>4%gBSq0vu_R{Wt+X@KZYeL%yXnRfoOzd&*}OWoC5mvy$=c+KWi`qG8ou zNrXn`s`>?fT_v%$Lu!3HpflqDtrtW)n5sWHcR=lY==(sHDRzC`^uw>;-kw}yUku22=Q$<|E9?$TO#e=V}(kTtG zZ;N@JL^#Ajc(CB{wVZBdGy|_y20g?Uw|$nCm8ehhQtg2kI#;R|Td@k*uuUz$FCXF( zlLi>?Mt<|rX=}C&hS}0cPlxt5{=&}bk+C1xl6OsJdTWP}e;T6I2<%~vNnjf@EI9QY zK&{#(%&(;;j8EYzQi`t^nA*|{K{9kl7W%eiFDG2dLsQs=H?YutCuLGw%&4Wq@P z*m1xzYTY3>JAOjFm5bCQ;JTwtf*4y|lzEehmWcw5FTVj{b>^q<H z#c7^I`uE}Pn2>ssJLr1b^s^Dnt0&Ec?w=7)AJ+uAee z@h$>WE&i_EQdiL^y6s6d0;8UlHCuWi4dR)#Q(o_}U z50Iijln*J+qIy}zE-Dj4S^#5m8eQ_lBw?(^&ch%#*eRPylNWaDZK>leWB9K>KRY zyq_>pFK-4P%GL8Fhxz&C{b!EmSrZz(OE8Ak_n#9T^nf8Wiyr0N% znv1{jVBH}>rxT}rRuU-o+y|f%y?8*z^5OzmT_BDKO1&nFk$|oz&$ph_d9QIH-doL% zbLR|Umd7SCG@40zV@YSMDj2Y{kW={pVD_N8eelkJ+X5J2AUJ*Cyn;*;;N60B6d=I; z*aAQkf~0eQEg7()fRX!97=Wihq5BoSK2w?Lxz z0NtUkL*^08hLG=tJBa!v;DZ7o;zUSr$HgAv{m1?k!6*=U8nZmGF@dHB(}<)HTE)x9 z*^Jp95jetdMrsS$67&+w|3SJ4^32bkM_|E1&7(BOZ$j|Fr4B%arF#^S=)iSZ3v zDeRoLn@=>0_Dt}L!8w;`}0$0hKQvn0?V z>M2u_z&kGENYYNunW!z25*M1dOC(Q9Pf|;`n)n*uORh)6o{+1QMfsD2m&753W&%(g zr6`*&P+nM7U|n)mnpLD-%#){B&bRc3DmOzCR{~cIS2SD7C$=NLBhoXE^xu1OE`OwD-;)Q6t{+xr?_)I z@Z8}^yCaD&fG@izp(oon$T#^XX@3U7goFVKa}eVY;}H`Z;}a7d!wnY~7Z^7<<{RfY z#t8S6+xP0N`H*yUR1QyWUyi7>U(U1CLas8~l{4F=sTlj}9`W|h|*j}Y%1Pcc?A78TEnx5hnzr_&>Xhcw5|tLACz z)?+#H0`(&Kn03l3VpUu>v>U6Nx67zIvfHW)-NWyEdr$ZQ@_zh5;Z5ds{m5zJR5El1 zSCMOsOXi|3fAAg--iQ00>~q4K{L}V{_xy7x_B{1QZJ&M7E^>D`<|t+#_tT~7rmg7k zC#IFl!{uUKa>2r}R5p9&z3^xM=l!SfOYIH+p?9}k`cyZ2IUC)1XY*YZJ(q4=C&VRv z(L_8ITZgxk%r)69d(p*gRWEI43Z*1~Gq*i<9b*qa4l@s49nGF&&qCi^Ut#a9FWMiy zld%J`BiS``(MG;?B(Fx0Q?M{_1w0$N1ROeGGVl}>AHo*{32TAh*l;W*?lQk8Un8Gb zcr{cP!U;|q3LCG5=SsxQ(oOI+;^x+cA1fxrX>f87JsAJo|7Gtv?$y0^v>rk#h(QRm zp69^1NXb~rSmo$rOj?0YVO`;{utj7$1}*{*g_rq5;K>OswOGH}INQvt&Z}{>v9;0f zG{}i0OEe3aafT6-(a5l6WGnm{kvdWb$t&b?e0pE*=w|D`XSJE}Y(&nbr*15Kbn0+zRBr-88iAa8%3R!- z3{J+Iuc5G_Kmvz_$HMWE?fAlx%J`~cM=6Z-JHxRn6}3uY2j_D>h1^q#xf&K_wc5r} z)8IMYx#&6cqTd+A6vd=^?)+Nhrj>H7PI}T5Uph0hyqU{Pf^qe<<<<1r8M@zfZDH>ruc~)z*4D`lHZe$f?gx>;`@9Zhotf z0W1|>ljYp^>VjV8=f-mXRzEUWt|#x)bH*xs&-^{?Ft#3?11=HX!}*_yxgX(GSRb+( zRC@GX`f(}^?F9-%$rDLisl;NZB6efQ28{-*V#wk~soGT1q-nZNg&bvFHD77E1p1_1 z%oI-R^SV&fcGODh43uwFY-(JpP*qzcPYUX!Ph}lt)(WEwybH*SkbQ^2Q#iY&r}?S{ zqK(yNEf-yTMi&YE5$FNEuV@|S7{(gIEw@9BL$m1KSJ&Ux)>YRUTrIET zY~9fL^K&sJ`Jw-Ov)-s7o{B8WSQ?1{;S`qU-`wR z1&h$q#}fK-o^}eC`H|tDNOD@=x16W$L+ON6YxNC}^Q2<=ozz}GQ;k}a=Sks| z)#|*OGR^zPiGyTtJ_PSNSCvr}CDreG&Grrh*`Ev_t9Pr_nnyi$AKnh#-k*`sKz^PN zg$;2nb`e|kmU*+oq}cw^k66EV<1_M7w&(SxQ>Fe=Y(D58>wDAL>BP(U55(tat%+6^ zYuvWywU(XD7wg-0pT|>$+}aFuHM<7+TMvb%Uk~>VD4VIw~xp`2k=%O;y2UD)-JnCcn5f!pP0|>lfkaR zXYn`j7CcnEZC{$7wU|T6Q8&Nbmv1%l203r9hTCzY(g?Y1PTn`?LCo{?OEXln+pJ2i z*Qc*F=p^Vw`VO6{&;H-gV}93P2P5Fx{YhzyR5%^FHt(N^qlxL_@#apG@k8K?v z`j?%YPmfnW_doA@=Y!+1UwG9XH16JelE37uIja1HyqUk^ulz0iw~t>!N+wE5i#B@! z*i;}3#%*W<5@MrFNX^nP?cT5Mgbt%pm!dV3di{&=e4(?v~AUBIGSnH)bD zs4TM*i}f%Y9CRj<&8BOy+x-LtQ}e4gdroh-pvnQNs%Q|7&E0y6)O)=btVGyP*_tzJjtAkABJ^@a2Lf~ zvMqA^X@twed?)5@kBVfBz@?6ig3VIhB^PaL^iT#}s*OpfhA=hR&CbjjJkuteN4_`T z?xFT0h@5n%VKd#a{B7uZ@jEuiE^cY|+c-5vq}|@s@Fq<6=2= zGn~Mu-e&yuyHOgqLl?KfX}r3cp-#;BdoW#!{oK2KIqt{CbG~}c{oLxthWma0-jb^U1G$q`|j{L$d0%3 z^YD}!x9!{|`c|a?4Dq|`FQDv_u1*whvCsQg&9%wy7rirZ7}Odq*R17ta{tji=zCXf zg%AyMl;JH3Ba%T72?F8&yuP>*-uO*W_w4{){xg84|69lZFC$>COsk}*EX}ImPz}AxJ0}CtLOC(ZMDS`mv`;$b(CV&794`^ZN zAt)jck1i4saKg{LDU76^`}X;MBkOvz#cZ~b?qoJImCZ>W-u9WQPNOW>OAiVHpvHAW5QFAA}&7)akcg&6W%rVfshIn#<_(eVY!43KG2{>u|?c z%C8(jt9$!Tra5yu^0RU_twoo{=O{Wn1d+V#b5my|JkE4&oFpmK)=vUTIt?m@2#I9! zQl>STRrffJlq3?e zg$JogRS!pR+)8@^!-*Tj#$oc5U^G~_Ig&~Jh0I75hGYVVmWg;M~hDEqK+Q~6VJ5-T(2zA%f~ zQ_JC|^95uQt)xx9GF##>YG|%Sv*5$V$~xd!9+ObY-}51aJ8l_uvqG45v`EVaatlr1hz8n4M2~u}mkPEm3)XbY2axfQh9wCyJi$gc|DsZs+Zaru zIO5ldllg0J(ltpF+0Y(+O0LEz^{PyPTkeEs?HZ(SB0cdUSyD^xM&5Q~>_T72Ck|-c z@%MLBU#`R5l1VLiug#1vT>nLlXz^g*MwfY{%cAd0Fq~8fXq4w{=LgS+PGs>%M zayQk)+pUoqb$fw!Q`aiXgq=VoqpFp>QNS#mdZTf9b_e@&>$MeA5!SY>flvsQB4|^0 zccj!5!(FYl!n;-8tgB?%`+$2or_h>~K%q(!LAs12DrV^^7O`daUMO7Px<$Lgiwp7Z&$XWrw;tpTQ!2v#0B5%m^d=#Z;{-KINrq%~SuhMwJBB$0xWRB-kzFJr5f8Qo z8r(*kFkA#4q|^g92XX*rcXhKX?evd*rXcOFEXD+OJOmw>ztyOajU)okRX`x)&|5fY zCIAjc*;AQVnP@u3pnvQcD1%tc;c3)1avq3(V}F~@JnRb|+rJzG0aQs`-Z-EbJm3{qY)XhGMKp8G`K=*kAw3h}H1-6<5Kxqi=A!nU zo6lw&w4UVq*+ZhThtQObmO9agefwokEtbhE;M5Ybf;<)Ts)n>Rbkxpr$CQM|!N4$#?N}9ZCaar$ler*z^&0}>)NdG9k$8V9RWhE)BGDa$ zanDat+kpw77?+Ginob6LN*z0=rP?uogCXa{%CzzZG!tPlF3{WoSR8z)oxi|_3Y#DZ zzs3Zo*KXZsiR$pXDYc_Q86d z0S<`}gK{CJmBS=kyyd0{f_U&^XOSP?2j&0-1{$Sv&bMo*o@pL(rA?VFy9_BYo zgMop7fPsd9fCh_zfP#t=kW&mGl0L~HnXgL*J>+rmkYNfl2uYe!tUr);bs10MIU*z_ zL~~)UIUlv9fsE_db86%1Apih}+Yv}Iq}B8x1Q^H5fJOG7IJ#SxFn|IHr&paZKytgK zQSq1_uuzg4?nJ0PdcKBNZK-4?Sf=|*j9+v2R=h8fHmjgDJ3bQEzssvxLAlm8jC14G zyk~seH)G!VSn~U{GuZZDi0k>8&c@sMdOA$*6q?n*)Mm0c?PpZq;(xwW6qpCK?AME0 zwO(`kzGzbP>kC+Dw8?10X@x{0&_WssLXwRHH5M~TfU|3(_}h?sLsKwxsn$sZy(fO@U|7BnzI{+!a= zc}NeOEMSziLZB!307GtPP|pn0Jku2w0abwa#r~>VGXsmd+td$(AXO0M2;mxP?WY$Y z32>X&XDUQTl?H$SLPzI}qn=pvXzvcYb@)An^5=#VIm8R7*Uovlfq*nv;LiYKf&a35 z0Js3oLWh=2#CvBd(=?e^Y@tfq9rUFnSr;V|Dc(`MCf~clW88pByJh8%}W;^N%%^{Vdk;x^FEtMGbXGd2|Gx)wEd8+V8u^qdi_P zGDql2ZSTNDilEpwn;BD``a3H?b$7B%ABIbo2(a)rPvBk7I%+gS@`AYw=Jnt%+M0G& zsE|9MNNPJ}6Sa$CDRw(xv#BEp?G~6u(yJHozQ17ri^_XW= zx)@kTn@P%&jywf5a33ekd3?ir2s+G@B+>j9V>NXp`?1t!WA;`*9?aVz|11f}8Te{F zbqUIsLd=b=QRg>NAr|3cZirsPfWAu6w-_@mqFG8vlVoM(5=CKjuu?LJCVF0Bn(4R+ z5hM?=w_*ZLX1%}7|2kH+3Eh46rL$iC=l8-K9ULT!;m|HGOMzGC<=~i?I`ClUQh_pt zZHpoAg@*x5MqCHnytyEnbC2WPner{(v^W|C$}!btH1sr-w0)0~1`g#j=7xRJmH_Sf z4HWV$j!WiOr7T5WY=SNck>r$P6)q zxq)9;feOGJWmBfnf`MONeZOxc+?owWDFJ>bB)FhD?2iy{pJ&%#XEkZ&8telC<$0Z^ zkceAi<(K{RV7+sSI^`gKWKXg})v3KJlXijg81|6G<2;zPWZ?(P-y#W5Pb>aE*jG;$~ zQBx!`=s&6d0W@s`l8z;!9zV0D3;jD|u4^Ko3$7PP?)_{hGPFiQbd(4Y@IL4pfQl!; zFvK^*(3-8%`kh#C5snbtlZ>>Vq?a<8G|(qKODZOM2a#bKom+r0ET=l!pa!Y7W-$ADjARungszKVKFRy$l8$Z9;QA? z9ZvX>%aFJ}eNC)O^onSQoG--xgW{fZUL=dKhdd*^atKyk|0u!Vm}5QoO7w*kJWi1* zdWsBsOtB#WM>K}GxhTFV5k4+9u5tYRNYN3rJ;poPJ8($w6iZIG@q#K6Th{y=a2<(t@#BfAvWHPEcN+&87Qyfz^>K0Q?9|m4u zjIl61e2S$cL1PAIy2?m14W7}A5uHhmiJi%f;gyl!gpHA&!Ozq|eV+!AI-WI7WvarU zTmxAHzCOp8)}(uAV`5|QBgrLVdFmq?ckE^cuWv>_wNAXD`3mes=0)fQ>jmva_eJ3a z^F;+N6nQxOkb+}4OCjq%>yuO7G3U_w;OgjKoAE?@-?3e%4Y*BX%dsZH>Tu?WZog;B zC)F#>E5s`sz3*~3@d3)C&_is;c}Hl+bBDWYu&eQ3LkhuH&ljvWt9D=hWOl#y%`5go8GdI-zzn*=L^M!!A*V9s24BYQ`ANJqLcS5DDUpMM~|9&?Uina zF0^O&<|Vg65rtY2IxX5YBCEJtEL}{Ccx@OTf)6nnT?v_~=Tu1=y%)4+>2u9xci!vG z&a{u`Gv(!@KrXD0+{^K+?4{POo5HS-Pwnu?a7>sFjjPsGd)tfyse{r1+mH_;J_bL9 zui-!FKJhol_rizl*{gPM;5X*C$@k?a{pIgCzzD!Q!1mu$FdQj;@*;8!WK}X8c@(k} zGC8TOICm;as&W|jkYS8mo)3vE46kZ+jzUAT(u{KC?%dsjvTaj)%X|V z4e;};r>>{a#a*diPT?Gb$+fKeT>o%jau{v?J8e^KvgCHIe{%scDO6UXs!A;sUfM6v z>#~6b;N@V|I8QEew>Yvh8Ci|(-;SfFJy~9i@>yo%n+a~R>G|G&+L?3H^^*9he+2~9 z1!eme0&1a*pqhiRp)w_)^+%E3EzO3!lSJc-=8^vNX+J3iXRyZz8 zEhldzY?xVPE=xTVJ-=q)Oao1OP(^0QXID>FWa_!eWfuErdiD7J`5yRy<|?)=zgc)Y zxSt%=%lyMWsIkvV_}<-#(19|KAl3C!m7I9 zS?khC3lvoT{o?*v_@b29Ku(+K+-=}KXce6wJu>p0_$lve_^?hHtfbqO>(cx2v;A)< zh2h#?3I2qy?SSwhechOn{bgXCJy)6keV(7>SN$tC zrSu|)i$R?4^u0Z+eWZQ#1UBP!;cM<)=_J>;?d?75l%4Lj-uvZ2Pj{}{-cWQt zqMF)BjZS-5gVkcWwKBAJ=hbi{@^ZylhuLeo)+*X6Q@6s~VwP*T!{xHGHn-8gzQ1Sx zYtl%U?``(W&vrMh&0)BtOtw*vP`AGKVY~8Bm$$`Z>}0#PxVz>4xu=%Dlhk{%s`_YU zTr0D6+0JT%&+;>$9jv$BYqSqnYe&Y@=~`>vj@FC&;hOUnVkiAxZn9Hpr@LXX>v4eY zx@NI+^ycTQJN_1To!NTUzgzgl_s)0!^Y(gj`}GD~1HbFpU?kMeJLzS9OQLQM@;%}zVhrF-%@03|@$ztvan(_@#O*q76*aG&h; z7`P`_CcS5g%iJVyIH{=`{Kms~WA^Ni79WF2R z3BO$rHt~W*gQ3{i#E^+8sY)$%j$wX92~4%Be0rYTs{S!hG-fndBcQ6HXkJvG`Ly{| zM1Q#1Uwr>WBN2>YHbQDLQpp4oNf006JW>G?Boj>*7tG}M;F+|$q~mIvJVMg(|Hj@| zz(t`gjayih0+J%#&C*@coq~i5EU?5b?9w4hh=8cHv~;I*r_u=0B?uzY0s>0?mlBNY zyZ3wdec${3-_zgq?w*)4XJ*dKoSAd>7&<-nS7uUaq#4a z_fy!|jmjz%0nVUsZBm9H_mCUjeC+(_gcxNM(M)p0Z5U+c2A)#BbZtRy`EILhCAeL! zi_~)2_O5I$=A}FxPP28H)aTY21m=96fX=nD~V$J@tIB?mT@gf+AS0 z_S_iHqmGG!{U(nhiM$kpZ1AK{@F|(##`@)9?P-n`Snw$Y1qMs(;bg;h{as)bHj-JL zMHMCWq`H96>qnP$$P$UdvfbCuSs1lFATzV5tuUFpMAReC$7DZizfq@lO$#Vw?iILv zrr_mTtcDMtTy*$TTKQ1lTx5%cr;>zOSfbY{=2PWg6RJj%G!2)1 zq+=qpBr4;EY>_Q_x?PBI%st}qFkAIGocFwk9ZyI$h_t@6 z7T?`vW%}_W^(*U0BOcmI)7Jv2PIXY8ilJ)6#JU7#?l|2gNqz|f>_$!@91wnr4@DB= z<{9R4EX#5Bdqt;oui%x_RnIJ`pL&5V>o4840!I#h4Q$3Lft9ERP=+L2YgB=$V0Ag? zwhlZKU|5rY7Y`&Rrdn{=U3l9(yYL*P)q;6OX@Dk&sXzERPQUL3{+b+el;)7vUL$k2 zdxH62)DR9S@G6vdBx%i_3mE4ItO??7&I5MsBJY|+pY7--p55Fz>Zwn_#KWF z7}hzt?0e=e$(!Mufh|mzH#}wGIC6|t)MGfTZ8~fvTXFaF8rkgrT^hl>hAEaJpCvr9 zl+8QcF6u^mi-L9Dc?g*;JYY$IRXg<6t5b4Wr*8$)Nj<<|a1t^QHM2lJb8qcTTZSy9 za>-;VF1d*$svk*h97W0V7eNvt`NCp#!JlJpG?p{N;!R={i#Ow!8*ieIypnv3?}(Hi z+SL~$bHB{&%ZL&V*R?+XZMzb3_Qc@rbu7)apu*i9V@tOujLf0i>w+rT;bT*(85(U4 zi%TiYnHre|k0GnFvmbY=Qj*KwU-%S$xev^%BpuKnTU^F;_oJv*)mO=Fk`>-_^PeuG zET6Bq$QBg0lB&t_oR&oVoN4@+N10N@H5C<|XU`sdCKme;N|!F7hV?Kf7hUP5oG#c~ z87uHvWTY9#EKP=ND;lkQVBkvn%FSzu6ly)B33enUcT65N-k!gIIo6;D<(`S$1GwuQ zkp_+uEVlcUA|B*^a%VrJ0tok$U-D)t7WnL+Zqc58BX;ME(1mb*3s;%I9t(A}0rJ`; zZE$>#>%C6X?6X^pb;68Ov#(8`mIlu^+qTYBw;=Io3HLpCV$sMkFbKZ-Q9V6a_q@x< zO|w@C{vGL^;yqUuiCvm3!mUhOW^!IA7Tro;O)s6t>J3}Vw545ab%aWYnYW0Cm%YoB zO(=Ex7 z&JcZ~;aY9~p42jZ{S7~J{s6GV@l(~#iS!gCz1faOUvs{or{5A7fQQF=J^gIrt^uL8 zm9g@Zj;EoUAD$UPZrjc%(w3>&zjKmOa9+Rd_OQRV-^RE{ELSJs%*Oa7bnkrjsj4J) zqs%ux7hAFUBaxvsI&3eu`hX+7pUu7OhFFS+(Vi97Z5a;%v#9H^P5eh>G`!|}A_@jV z3jot)^RtBLdcb>{h-)Lc7UfGROw-EA9dN_oYbJbJ#dj zc2SpS-W^u6t3X@DF1<7rJQ$@>IdL5lRW9;^%SJwl+~=CNzEpvjzkhhNKPeIF1jprC zm1MM*k>1q;cki;>*O$U;9FZ?sC^cHV#+_cUNYIrTX@GoUGK#NM(;51R{}H&I&7I-& z6&1Q;!9VICR*A;zqYfam%Z7j07L#b&^^Y=?2)6KYAHr)GI{n6dGlsu7qAi?5qN)mS zu~0)U8(5Mgt$I1c%vqyF$^Nz|E`Q@&$WuFI>Y})Fy=t%R1dFIA1Jdf>k<(;&@q*}| z%JRhJ55z^BJ0nZ;%wv^YHM#3HjbiV3_QXMy;HDvX?Vqw=W{@>0>z%7!n5jAP~js=Yff zG8>nh0p~U&EB7Pmq!7Z6a__c|5)lRFcb^#Pa`=(#C@~`*I~5~s2{>iXIEdlE80B?5 zMmPwy9}rn8USu`&Qn4D%1y|gtkXOdROMMQU{?$#KGeklzj4BdpB~00r~Vj4UXX4r z>@?XH2QF!Unhp}>(v=9(O4Pfj%g-&w)p*cr@}Sm|URh#?5o-kHuE3nGzMa_VxOT?w z`oov}=L|~t=0~n#)F!yHp_<&-csqHz`vMnJ$PK>lvL_!{43qdUNN7KYm=Z}Tk6pQ- zTHr_y2Rh(dYEQjX!pdsbdYz(N=GTb{;)v+tMD^N!1hl<2)A>|PX7b}r#xSgPqnp_A z9q`1LoaKZ1_2TnNIJnQdOqwGL!?Z<$PBr-j2ffTnx^fY8HSK&$c8IAeET_iw#c}e) zN^#r6@tKke{`EN>h1ddJ4P&}{LDmp3?t4s>DVJO1qFz3m&DAT^;!2s)2$JcrF$b`<%22UX59peAz%~3w7x7ge; z^F?$VlqR!C>@=)-Nx<(z!V0GIBhDM~YZ09&^DhO+@nBXxlnL~u4AsM0LJpf^4A;J^ zRLx`;>e}_gR()T$s+3tRypSgU~qal$e-urYi8>*#c z`Ei0Ka%9rIo$hsKg7WP)kea7tHm1^khUQYtvNe|__U9RvS555-n7(vkq}e&VpB|*O zVRO02sGoxQJjhF{5j?x~^*lkBgb0VbV4UrlWx(r8y%&+Ou53wW%X{>WD^zo#xuPwb zp@^f7J!g$zKaaY+czSmta8A+~^99xxfa)VPS6K_+nH>SgveWJ9tp2*$7tbcT1s2hh zxD8R;@NYDX;b^7N1&?)jkYyibX(syb$xzEpHQkDOO07GhKrW@AfO$;?b$ZJ|-&2}j z7}R;E?iTHYp<?8fFz=wsT#Ch5QjG|hH?LD-!e=TDp?0rS}(X>r(&H9*^<=j`UN8C$|IWsxp z01-`12IV1!!0XiX)&}lV6?bw520f>xRw>_kiz%`s5TD237CX)IjG8LVTdCf~1HT&! zPl!qT?59&Ke$S*@DW@g^13EQL#8|??t4K2U_%Z~p^$*!Nov^jR0_X@DCc|59+7hGRG|TMjW(0% zlLV8D%c9FyzThFQIw|Z(?$q94^>}nq99^8AEX@C9BM1ek3RnP{;9=sa-~w=cCC^&u&IKOVS&dk(d#B>$axTt(ZLd+;GjR+_M8C184j3 z<}lVI3qwY#qnmUab?ZiJM_UA%1?noB$1UTytga&^KLhvxqTzxcq}t(;a*9iS(knK)!`rd9=v$7Zt8>SczEm?%2!#gaqSI*d1*emOjK-oGPBia#HN;;gp?4H?$ z*trwcF1B=xg|4t~HEnTk^=uJtDQp;TaGr~G;}Q;euEng&ESGaDM=3{R$#V=QBqSs& z3^bIw;RX~&F#&vL31X|9vyBgbH5U0cAqOIdy$7Z;b{873FcYwQix zvC``GGgX(%Z(!XB!cxUZxa7!XqWQY_d7Uth`@~beuNof=N6!Lt&?kisnr@y{N7wz!0s?)E#T+0Ro)T(<{;Mnp+;*IiZ z<7J__k~`aMj4lDLMm{Wl81V4Z)fZ$tcvi%5+^qDh>@a&ngUP(cBC?3MXG*zB6iQ!H zxRoN}AK%>WN|i_+mRC)t;<1>sE`C$cKEm_CI*F%araX0}v%SjtstwIFYivt7<4~#d zKyXiiYadXDpj6e(_#PP>XO)qpdbgoTb z>%0&Lt*>wBu9tl>fVBdG3NPl5+En1Ij*gU-C}azOTy9Lii0x>q+^Ph-%x*Hylw~g# z^cVME&3)1U@#V+q^6Tx7g2s&ibG!(^4uIKe z%;Wy-h3J+?EeWg|#?kFQP0FCmM$=|&(36(CBxPX5RpOrK!S0pqAEV-%Gy~xrMS2Sx z!=Z4dDeo0}huh0pG=LyvayAhqCmKR#`I2HRKwgm zl7k=FU(9bqhaEPz+n%QzQC zUpfhvXV1EP-5k9^z^Bf>R$w(}MfNh2$WBEqODnZh`L^<=xy1{uRNaIf-N1Ow=iCY) zrIpkdHkvjov+dv)`3hzoeduX=w_JsjyBT_P@b&oae%Ua?Y^KVHdL2g;`_^y_?(P7p59N@Ck+j`ncBn%Y|2T z!-;rYo44L5gz{I|+&8JoKoaB!tc9WDBr$4NO6D|Hrhu(JzMGf%N*`7>Io0(wQ6ls` z!_cbvx^ayC+8{jq1DasW%GS&G{2?8>J1xkiIPw|PTDdl$xn|FFu5`-GueP6;dNy@s zovcQ}v&@XLzu072S-g=6W}4SbzEuQqS^o^@VCLxOjC6HqZMm=;w%ajJfXSKFk5vF( zqpPP|)2MW^8BTx2fj&^aS&-kyQ8~K)*|^998deZI%;R9TQux(EZb-sHaP{RFr|lwc zu|Z3O6g10)?rSCpDpAS*fv|=b5m$GxYcA8U4Y$+nPaLsvT<;%=sp4F&Aai;!&z)n} zIEp^X&gV$c2~E_C?o^~cvh!l4cK4FUnhc>fApBDFX>o~(c$6#IO*4se79yt zzc-Xbk8vw)Q-f}IWbti8_@o>(rdhCHcQ!3sP%u+qdz-Tt3W*N;WHDBR+_A<}wh*~G zeES1(2hr9-^kTa+bZ6(KXPBVJ&eB}NhHv&R)d#`N2nmiD#Es_e<%z)1GHu;Wl^KPy zY*p9er7MS>`HdJI>3U9o1l6oV<_A3rgPFgVT{wKrkF`wg<#rO>L*$45x*&T&f`ksJ3ic42@uF~!#1GC z&@-=&t8;h>*Nw`%F?j9qBzlXl@@J`!s@zsu9|j#pmbWHyv}Uo%r+~zCJ?$53i8ix(`#0G*ZRZ9ycPh~Zwx%094PGfY+b%}{ z-bVA=?Uco2X;;{8f6#mWl{~OUpJjj^+qVu#@Vqe=aTK%AL$u!G1KNbN+Eq*khc}KL zz8Ts|1i`hg1sz$U(lYR5l{YGz?b$OK?N#|Oct(ayLAeknRgS>2bu4Od(Stm6jaGXs zoDEo27P5L(<%dR2LH?C@Ar;T90F@?UI)e#e$bIH6yZuEP1*lILw8|{retOa8Bhkw# zP`QyfPZY^z$6sL>1X;$E>8j=olT2(!Q4_8V;yi~TNU-M zd{RRuxm}uX_}Q1KU9R<6*Tm8&J7&@r&(w>DGHG;ujFm3s?*SU3o$FP^NCEiywCpJ+ z;`o^hy%gBK?^9C`?tVPuEL(_9yoyJ1m2PtXqQ(_5j8qXuDlrp?YabKuv*}zRe-v8g z_uk!-MeuLeKcc(kd0bg6eS}CPzxW1wGos0z4nM<&WO8}f|NaYr4e+1$Kfa^kzv_$A zWyB*qq=(PFkP`C{-`*?OEBp1$K+?Tx9s2!VmN2L#2=QtT2)@^GAJSe&0~iQs4KfsQ z*efLkknT6$t1t(`t#8^}LScwn;r%`k8*}q-)rg09tU>#IEN%47!Eh6h;c;IG$W8+c zF@)OfH()-lfIC2-mT>UT;GlL85KIjYf=Lt6!%os_ z-1??)S!Jk(DW`=5YGrP7(mU<5p#h7%^ASf zAPYE?HPn*99Asq8Xli+)GZ-!jHZ%l5_93tw0|mnsVNh$RwS(mWIZn*h7zVYmlrp?& z2)6!lQkFm%&;o=Qb$><(mO7Y&__ay(p)f-bjA8#P4+IJU@oJM21I?`wRVT61COsa1 zpAn)aK#1`#xd?`U5KjZ`5C2VXAf9$YeEz0Aj$s)fm=2dmAhzFL1EepZCdI=eyhmal z9&xZah=)hYVh`LmF|anVvCxMA!R9Jp$Aez%CkS8-wl+T~J&FBs??VEqgFy$9!g*YE zDCCEn{R8p-h6daWY$*@51{;A5fYxB>0h3N3VgZ8KsQv?F_6TWnzz(1#VztEJuWx0S(N)vGRCugveU%$?qYh6h*8N-}hPl?H?|#wQS zvpk~FNks#OAE+6i{-La#z-V7P{Ug#CAp{e0B(%R4G{kZPL5|b}P~O5A!fas3VQp?` zA<80dslg_rFTAfST`s%)t919@0rwA9FvowN{b%9e0I>gL|Nry;*Wbb2e+=Vi`~QE( zxC5muMJ-_5l3+bOTVq2lh?uG)i>ckQemOGkh9D!Ljkz_$_eTCmOCGoXd+qr*_Ud`M)(H?Aaip|prIkcqd8Fmw*(p-mw*isRYxQdMYuiMq=)bh;A&g* zSsM}~Tp>g^2%;$mqW%~O8%slkg%Po_wuVAZ6dOPxh*ubGKq`m+)OQUK(>DRaRZPJ9 zu9mQ&Aq)hEpX_V`GB86Jq3=3@%;BK#+CZUj1o#6OM=ifmi;v0L@L(29)<@*|&2)a% znt0#kK}^_WpT>t&*{6oUH}D6&>UU&v@6-VFr&?Os01>3NcKB0`5%_^1h9E=YKZJiMp1RdJ zA$AYMds8EZAM)cD$b4hXz7QXCWp6-pDAaNv0Q^Yuz7ZcGT|nY*t42>xK}<|fPXOWf zBItL3tH4Rl9QOm6BYf!ZL=^_IKzMG)qH-W0|A>RfqK=ShBe1az3}m?PFa96|CuDP< zxWBGOh&~vu1_4{yoD}9G9v;H@LDY|G#lawR!#%Kv^Zr4CjuAcLvf`c)eUHbVV(&L1 z9#PwVWnZLjjU!JabP>#qtuqPRYcnCUkS_qJU}y5LCG_L#Fb z+CD{&3$?9(5I_jjni%1kn5r`c(L5YB zJ5=!hKxOdlIUvMGtT#e<7z}VkXn}{@(*D~T`&s||O0DoQ?SVR4&PT@o7i;U=XeTWD zzM%2i?gh*Y5P_isbB|cCCvZ3+gNHL#u-uD19GEx6I6n;eUs;I=M-Sn1S;!)yINwJ8 z#~S937Nr3q90i5^HObu9%zHdL=={w*om|C7-1?Dz2$YYBbkJW63`cx`SR+LD4>ZDm ziA;N{^zWh3zf@}-P5B#9_eVQYT}QQlgWUWDVfki`4n^&swMYkG{&}Nxv~YiKhmTvG zP)`3#H!p{t$v0Q)cztyE?7eA@Tl^-%i-`Ln0^@tL-47L>2&wCcSe|iea%R`mm5I1gL~?c$p8-jwmA3f7}?29IkD4` z>$+F9Z~Tma7GQG+9v}=1H0S-PcHcCzuv*%msB+nFwHHX(chtWhz#7JQu+t?*IHEs~ zW(V4Huz2*L=7uLAYFq!P*}tnij6LuGEbWQe{}L+u`@SC$`B#huhFIEI(-VJB3r6^X z?@kOyY$FYP>?D9^C(t?+y=28Z%!}2|r+SUvf zP)CNtlo$+X2)2PU9PXL^RNG^N_H*+?s0eWTV>29p|HF0%pnli%PY~c}qy1|V9Psc@ z(qP}b{*3J}2zJ68|J?or750b!lVtc^+uzaQ&`bMCz7QK|V=!cox4%R2aJj+3<_Nd^ zhXwb$QIA&nk9y`OsU{{f0_^=gA=cW~N6HPM*ogO-v!~(qKb&awhogVfFpT?KvhNxH z^Z1B7Hw3X~*-KTOfR0cmKWBx%srNrI_TifOqtSVe=KYrx)zQj1QdEfV`}&C(0%bT* zS|_IP=aAeN>c1b$eQ7<3=6=C{70+X(^7mqTLc<*4dQkLFQT4>?|CgZq9c>Ts{b$Jg zD@%N2Blh9){AeRi*y$h4;~xqg!UsA)b#Ke~lQKG7YzHlPh!1Q$!n_k7D4stf)rbN1 z*4%HPBdSk=CNnZJ`W4{4O)}zOh`_Oj`7b$Yz`@SKb>is7A09P8_%3!*5OKt2VoW-+%wd+53OK#n1Wwqw{~(mbQ|@Qg#lkHp=>%a$ImrSz#mfgEKAv zca8|?8M14rn#q_#>JzIPX;O{*%fY2>} z@eJUPnEkEi09lXc`P(qiKXnf9#~B=t`I|`5_h$kBK-B+>X952hp}!D60&LF3C!Z!a& zy`K#@$mZ-Hf;z+jbeJjLJCI@sw*8ifJFMPMBpl`nj#EK4@Nb8kz8$sU(?5}CH3#a0 z%n|8TMA>nJZwbdk*uShh2+$rK_ogL7{qp9Lu(TrVixYBSPrqtLE4F! zg>$dypp}t16ll$Jobw<)j1nJ&fsRA4N96~G9s%|U>VEv^dj$6KsPsP<5hFyEaj#Ak zaohwEe1#vx$`HkH#QJsMAqGRt5y71O2+iSeJj4gt58|Wv@ZtCULH~QgHk=#)R<09i z%fBgXb0}|n5`VlH|CdB>ek95NLKpA19>UN5-{0x^9Sn^ag9CBJ^AzHO7$-Z+sZ#*X zgFlEnfqQ=t8=VvPKM&$R%*?F+@&A6yxWB3Lulj$73T*!*^N)ut{(rjo`3E<;zU@K( zoNsun?*0pI;NBHJYbZ?g$Ln)zjTB1d$51O1!6sU7xG__OyK}HkNu7&zjVx3IaT31aK8f8N#n;5PUPN&EY5Zz7Be zD+l*6PT$#RMUnlBw)=MO+dn4)lZZr7ARFOB7 z(KlB&zr|oCYX`9gSgG6n_rCwj%EIzP{D+qbuQh(RQnneHVk$o z8h(mxg3M+SzyVes?Ap8+5^_U3?kVLPj;FrY^T%pP;_lHUH^!1aBp!2%i<~`u@m-A@ zaj3ny|IO;N=@(O;Z@WSRnv@0u7JO!1?ULGBBNkm2zqWBMx~xpKtyAdRxduunrd~#R zAeES>>e&j%D&wS~3{0X$Je;~5WQar=(ln`zNBMx<&K2H2hfk;4mXbU8IcW{?E(RYP z21hs7hurPR9aWY!N3UFQea_qD>MlAJ{8n*^3wGH=r{ZL#K55%&p+$xYs*z|=r_M6T zs8cHo3DvWDvfcFdKHXMUHIg|SW51rh;}rB7mXvr28Ba@5``$R$<7+iUy~`F|`OA(k zM$FSWZ`U_@E6WC}Xg4n?1mkp-s$#wRdRfV-B2pls)8vW*NhU|dK+sh(nV^>sr2>01 z-bBo>>Zhe&CQo}t5>~r9U7k0b#`6A)zOOL!g>OqbT-pcTz!H#I6}q*g{6@?Z-(2jnux+f&vau3kHI-E)w=CuIa6<$1 z4oMjl_N0Z)G-o6399C!> zS=5=)@}^&EvDL;hnkH0Q4I@>XR71511itK`CEeV=N=`fT__OETxANGyY&N4MwTV>Y zw1(1e0;h?QOfdXR95GMEz53GK06|-wj$V6s3Q;mn7(T*UJVX)46Vv zlF8=6RI-lY%w%fJNHdJIiy1dm8a3aTC6=^&l{ZwfNK{_V;IL-=6Io>) z3qf?;#2Z8E4|{^Hdy5YJ2}4KK#Ezw-kP((WO!K*d(ozwS}?=#I?-v0ho{_q zcl$^RrrA$I9Mrww1NO(w` zyo~x+Sy$_ermsfcS)ecMW|^o(u(`HA+@X4!i#9kY-`9vTYa#b`n_zj97j-uJZrx`1 zna_-mXI)uOLq_^-$%~_u$_ZHk#dR(BA3Ke`)pTRP9@(uu^;Q>9asJDUwACd*V|>x| zsuto!<Vr}uOzZa*@aZ3 z4&Z-7of#on#LVyQND@wyFgl`}G&;?pPtT>i=*seFBeK!7qzmTRKtX%UCepr_;n9*0 zzi7PySLE!NmjOMtw6_BEK66}Yk)uE_s-9$&&q)2y8CAl{#72_oc|fr5tYn4V(7qxjj#GzTPl=qH{JgD8#+U;;38 zZtRvz^SGjw5SlyD6CRrOmF5TyV|HG80dhwAt0`|HBm?U%g2lcBQ`^~dUuNS%@8+7D z66q4tiZv6pLsds|3HH^THWbIgQZdiKtQ&_E#k|kK*RC$Bz8U&5RM|8=p6PL*S2|07 zI-8Avwy+jPm%rbd{%s{Su$13`xlpTf_*@-*3g_))5W%Vqn{rM2%eu?RRCvnE)`poc zfjOdz%t)j91vQV2mT2;roP^|bvIg!HI^HLkX%$RrmePDQii5acjwXQvD#dyk1uDwy0t{orrPfib5jv$oxDUXP=EhwLr%P+ zJ6S+)*3uBN^(7C>MRp#`+0x$WJ8|YwB@eF0+`fEWBZqhfuw``sY`$HcBj#5$5eQ@%jQY> z+T?xA-K|fa^A{9!i#hUanOhjsh@yh zsa}f%0nJltCZAb8cAkp6sOs)=?NxZ-W>4gccCE6=0$ElK_=$aDU&Dmni86+gKPgS@1a^-Wv2D7bhVZ-Wp&WM9m|(M8Gs6{Hya zQcGfxZv4xQUKx@$MhuoI{0ub#{OH%IXeOp8lIYJ@fn%`+!a*L%MejLH^KBD4p2IV` zAswIF47f6;BSaosnkYVb;3!1@ia5zeIgOJpKis*U&bsoGntGt0`m-}^JUTSszG`Fz zR5?u2id?sD?tF5cCyES-7 z*5MVo3bDXtr?{0|)EC%mE=p)pxaJryqlwzSLP6F$ZbTr$@;WRoGT#(f5HF)6{`#WX z=ktB~T3YWJELDi3)h?z#xsS?#pO4R`r7Xc2V!%9Pu2R7U^>5NnyN|=B3NQ&e_uQIy z=>25E`5iNX2ZX69ePo?=j&+nZ5d`0;)wQ#^EiBNg4fY}wEXZ07Kpjxi3@|*X)V89TJHe+l> zB?^WyNI(4KR~U4j3nOS}F%mGQq$N0Q%JAXV;Fh=x!zyQDzfis3rzPglyGYydYK^DS@JhMvOJGK-=NPHwuUAI2(2DHE7F-s^%kBqOIh=)7Im}f{HCDD>SN;r>2U3jr`KB4eNt@1_R47F<|SLD4arBpv$ z%ldSA2+PqB@J@YO6Id9v`972hTK}^rdhS?Vs{Hbzc_ezU+S&O-c(CvdmA2!1csM_K3 zDc)C8v=oU5)mf&QwUp_>4E4J(k!(|k9NO3vRI&LNp zi{idZt>}1s>r}FboF0|<}X zXE*9LoSj)JG4$M_^?EgS6PruxO9mUSHn_J~ch2r0*N}>do$K^{ND*-Hn!g+hS=vJ< zZytSC#Lvsi@d?vY^u|8QSW2X7uSHAP|3j z_$#fKS}lXMgLORhUmy0=e|_*75Yd8W>^p$5cE|Q=S$HN$!AP+FZe&HkHmTEv%~P9X zYuvVgO-^~@WGdq;RDLS0cx|Z@Y?f1&Ay&QcLO2>s9>!>y1uq$;*ra-Ei4}-97C} z|F%A+LGR_;de=bLNLPPXl`EvvOp=&Em#p1V-H_aD-1yz%-H_cPY88Qz%%Zm_BB>*3 zv>As<`KY&4?b#8LB}ySeW>O&{X0kgD)h(wN&qpF}Xkt;~Q#W7p!{ioIc*yZ^%|`%R z2Neb75o+t@>jWm~&ZL$GV?+02F6>|-e$pLR^?Cww_>Fv86N%TKp3~L1jqTJ7)T|>Z zAnRgpnJ#sXK}F7y?X#r?vrSo5 z)|hrJiyWy#aS+}zm)@ummpkiMM+iyrl=$2}!=Jm}H40s;9HuH)Fd}k^Npu;VSqbJ+j%46? z80w4uFe2Vb9Oou)T%Q<`cO@PsjtU`w&d99Q*u~RD&Bbh!alWhy3a=8_mfqxljrj0l z8);h&@tm$;&#vMwL9SJ9ygrfN2%Zy7mKow*y8PlctC*J;UZQ))T(9ETsXw)Fs^^~6 z*=W3_aUuQZ`ggXg)y_UaBRx-Z;o}85y3^(Wkv@(Q>cNSko}BhN>wJmvw#0s4U(1L({5VVTasTVk*~FyZCZNu8#* z$tcn!D$#P>@fS6MXm6;^X>6s*s%Zt^4hmJ-Oq7>&;rX0TE25U=sQo!BJic8?L8B^b zhg&YpNMR^sZRAeVn3OvwYGu%kQ2C^68NryVfw4`u0y~3f+9RKS(KdSXbebfb#LUat zzlT#Mv_N21f9>9!_W%<}ugQPv7QFDoaHCv{3$q>c23U{U)Su@5)$O1enUf`WD81GOx7%sf&U5Qnepzvk7)3C@B|&Fnr?P; zs+QtsDI4d4c*otwG5-m1$aMz;)zOrO_;7J5zq^*J7Ys_DbUqni58@DK`-61Taa6_Iu3lgGQ zffD5tS6`LTgsG^@eMtox)}yEM?3P{duA;{>CVvtZxqQMTemBM&lH> zFgyb;FUYge+4Cfq=#8MQA!K>@8r(G^Ibwas`QsL71}8D#5x5vExl#3EA10+@N}UJ0#Eivr299bp>_?Ce2E- zn^o74HHNh`tClCzBGqokEPPoVPKNTuJ56o8(CmO{j+lMk>Z#&Oc3o%9=C<+;jedj zxwdW2W-$aXm=%g!MD4P!IJy(na(R)^pOhJjxqkB-H?qU)NF~W${D{#PV90TXZTtK160mwc2Ktkp-6h>d8=Hv zb`(Z$Y_EBrB}2Q;%{4bxwun`}vKBih3ayCvv@pAvSW&d;(zD4csCYMLBIn)GS{2<+ z<@Uqn#>erg5_T>rJC+@}s|L^;L@?*K5)MQa@VJfo3shb)e70#{yTjg0$a6+@MwP7Q zj!!Ih$a6cb1meZO1fte88;x587QcKMbVb>C)k_I_L-1j_op2{^*;k?6tiyF%VMq|F z^K2V57TUtNR#N;aV5@636q(U=qlaHlXJc^ra~pKZnc(aE8;y6_Tuh-~4g%tC^*G$r$GxF-n$lFn$ ztFtzEEb&;0UCJ_yn%PX@Mig|(sM%fe5eaIuDdV@P#Fw?s)l@3W1O$cMlSJUjqfK%~D~rGBfNK}@ZxJac#~EGfk6QyFpc zvy89KEQY5lTMv>y1G$%om7$J3r6>V-<$vU{&|>)9;F2_Yk!YJ-F8}FLL%P=t?O6em zdu|o9A_W+r*FJZXFW0hL_2snrzE|NLlW(zMglD_ajJKju$#ey3y>L1uZ71RHkXdOF z`$3Id85EACE?e-Ycap&nX1ODY5Ri-B>H z_=zBnd}88Dl^&i{L=4Vy>a+f)do&j)g^61@l_{6EIa2PK6E6Ooci{ zc!sdP1nB)u)3$kcjXdQ^p+p8Ubs z2~;;j&g7b)7kE|#21t9VnPfk3tc`xBL`NJ+E3vBjl&#;LFR8KnDb-+nzUejTbaj#& z1(!di^k6;F68BVsn9_0<;0LE9Evv?d-y2{7ooO^b)9B#FO2RIT^yJYgKiLrCK&r+7 z#Cyq?i0i7!W#mrX4?W8?eBKhL8a3{o6OtI=!sRP#HBGQE9;Py4oChd3O$(K2E_?|| zT@G#fQ`DB4jX&sAC3rCiv&oj7rBtb9BYZ-1leyOF`M7e#1WRb*e(^OtuS71UUF-Y)jO zUuxpid`2s~7RyYvD|7K4lJzCfb2_WI1`Fw3yYtT{HU-saLX+}KcgHbH3}qi>_>Fu< zjeKO9@l4gU`(BlyVR}{6y!@x>30<1*X9ARkfgLfA<_tKm+6{#4l36HThPFL7S1f%@ z7_N55T(PjQ^GQ1%@AfXy{A!VN1Y2h0PNaHdB()9x!lJ@wbdpS`ONO)|pRdKOIpXEp z#|xui`*dEI#$&moPAQH;xmJz;FqM%ksWeR}F3$X=*oWZv>V7mGI4bRT>)-cqQ#6#k z!zrm6EqW44M63epIsVq~Jp%D^BaV3+z*XHY*%sn7N>iq+ukqeAkH92{-x zf#i^T6n74iW_OrLMl>HORNR|celVP*LiQw?)Kcy|qtNP|fxaERk9n1CFG*qygXoN3 zg0~mP@<&@lF3fX1!mdQCcmTfrCClPfCibwlxZkBYj4vAxEL1XdZgfJ{wPxSH9?~hW z)eiqMjBmk)+Ju%DI+{dKR9ODFjMgTiXi%QLD5|-1xpG7y({;3r_e?GWk@v!bBACBq z8K=7zWoOo#k$ev1Pr@b2=`7W1J5bDM^){Ft&mDP>8Ry98cs&0v8e-=&%H8L7HGWEJ zDXdq&HuAc;{?2vhL~;v~J+t%p7Ken~wfDtroo?5|9{0JwdGbjA^^=33#avOPBTme)6C=>zQ2WAq=fZ(x*J$A}fAd(%4+CGmbXC*I_<;pBqN)*=;8 z^UnGlIj^ZXFUD{?^(a~x-tg{p&4_+y0r%JK&?bme+bVuYI$Z>e!c zTT$m7a6|^)H!x?rjc%5xk!Ym{NdG_f-a4$RZ)^V+5l|XQX{5Wmq@_D0q`SMN8>G9t zySq!eL6DGckgj)wdBXEM-&61NT+g}u!@XH^&NcR&i#6tA?E7=WuTo*{jh4Qm-F&JK z5%V4lBy&OkU1&Q&}3lW6X%<-kRUl-U>3oU42ykw08app++*i zBDuU$QArIiNPaNlGQ7YguBD>ac(O+cAWrx0W3rak60MjbJ@ zKRh$Ab!M7@2OF|`G0#E3{90F?XWCq#!G-NIk(R`ynW9QfD;xtyr4L3Y(6+~0&GgQy z@!GLS;^;OnVabH+jT_Fl0$R+jMdLlG`Tf1OkzapeAbIYmx63#IOvN z#s^VgRm%*Jw&0gcF;D3Xw=a)|dOxpdLO3J#;pqfohIC=u>ewub=|g#KEmz*Y%(L9~ z9LOwg#iD|&ub8*Cy1vikRQp>i9u!zvy)#V8fs`h>J;DKQ$jtIhj>$`wek zDWGy?qGYA-M4Va0a=FZ8UxVt=C?vh!j+lXugTXXGR)r`V88w_#d_gzkqbOloCDzZd zv8|Wko*3lA_f(ALQOg*!GdK62SFJF#;TIr2O6cA)d+j}a{n(_HID6``f`-CciAS|o zHLcbLI3)J#YDqqN9oDDg#$O&8c%@Os)&Va|GNT+x_`~RDwGCd8xr5_ATa$G11;+JP z_rc~5^LJ5Msz%;;{&a~0Vo9P{=E+S*b&Rjldj^hb1g4_5T;ngY;(>_G6<9dY;14gH zfYk6{eYt@>fl@gnr9dO#iC!_xa7#fF2c;# zN#&_ikKq2Kw;KiosQmOv2K}4_SX^NvW`YoNpl`yuFn>Y&0E4GS3N0V=v)~<(3VyE? zxR<)DAQ5-G->WbR%I~I!)41}1t_3$Yx-1}d;*Im7EeL30h3TnmdFVa(1s};;R`vG^ zLJ_IUJwdaun5=uIj*!AZEx{u9Y!7P*_L(p0hZNf=10#t<3#b!r-y#W^dRfiKV5>dm z=i_n`R=%*ArZ&d7m2jAr4XxlN*oGt{_=lZv6I72TvBOz(b2*SzsF3(lkd<4!ycOK4 zR5fWrLDzBp4T+%ef}$LPL^*?aXIbXcU>U9Pax3EtBiPbLnJPicXSTeYpUASUp5_eZ zQ3t;~Ip96P%JF%hC-5vRkh9K8=vdKXxD}7z&gflw_P%<3l5yzyp|YjA$$3tMp(J;p zX+T{!73$Vc8KXx4N`d;UIT%verInYK+HBMfj2&6LIa~F&kHP`NbIvR^zQVB>uw_ zCsaev{XSA~%Z~K!K*ZzV7N3pBRDK`?33N*FnH6P^Vx8Okk1abH-g2u?fhG^Da<0-r z9))J)D3fL3UbEeoi_V#lDZy^FF!aZ`?HD|vplq~?o|t-@@ebf25DcGNDekEFqhj;{P*M|w zLcx6-06Q;cu#H3JRnns*8w#;xbxxx2tz@)hXuQ~IF%Xp-QHf*TVDnBPOD?~IPYd{x zO+~6`L~K;SI^q)UIo^pQ&IGGz=d z6#A z=ccCONQxW4!=>!)21A+*o&u|`;-?*boc23T=*sPQDnlNlVW!ae7Uq?(KYpRtxtiF9 zEP1g5p3M77yfW5T57i@kh?pR`Tgc=H8{cW?*u zzb!C@(cC$B6iC0P=-WC!Rme;A+z3*AI)?)}(E>)@H~W->RRbvDIRm@)0c3w+&T~VI zNn$Z11{SjxDmAKeqdo7Fu1k%>m?vbgnHnCYWMo)q{*mgk(SQC6FaO1PL8M1 zDG3An#B(ebl;KTU>Dz zJbit!9pFlNpQpYo^Hb+VG^dml5FyBdEB7PxUF}d>#@7HV4LN_uBuEFR20x{MLi!G| z(_cqWfkciXKaf63w!f?lQ)57rT(eNySbbL=L&F(hXYAa589SiuQ{HLx%#o_zS7l(b zjIbO_gL6=|*Cn*k!};9}+!cC#>>`>}9Z-|#NtwZOG;b5tfvrhcYv<~e3CWG?uXdV5Fk%x3_tftVWAp7_W zZyHt_AR3a-fv!26n48~mMwu=TEmN+TE;sjb4mS5R6F-Iff}HWJ?+Ht*OzY!TmR8JG z$ySh7QS}@uu^60!=VAzh2o%UBaF_@#Bn_yru(0qc&?s;zFfni?Y>TV!Y=H+suF1gR zp#Yw?U4H0kguH0Hj(k`FMWCRdU7$K3!B7=o9B?(%2fHmpz^>rnFhY74^2IhQ5|@C443kKUosimp|uvSMCX<)6Y- zDX$AtS+|~_J<*y{tMjX0wT&M)maI;k=hz-gPOtVq|~m0J)dCOI_Su zg{kZKoE_}6V8h;ZXx$NW&%RK8U)8ITtWoZZL;VzEW4eRxNz$~V{yw9l+8+D@VR=Z? z&?txL$%PO)@gNdl={mtW21eM^1JW=?4AVk*KLz>)9b&1Pjo|^y|oJWMm7muVDR%CABDPmOk1)@ykaDrv{ z(s=Rs>(A4l3qRMz-xFyF8>iGa8coaK5o{Jjl=84j`~t5SW0YeQWfZalcJZoKu1Uz{ zB{Nkmw!Onq(dT_>(9HM5Lsp9u^YVvmpSt8}x#==)7C0Yj=t?{60LLtJ0V^f*QL%zMkS_Qp&eF(Z@Jx&zm z`mevh4!p1AY3kXE&+J!9wx)J`b=t8LT~_@0wPgYGoTbUC%IGzI&s42eluK z)nezebZW1+dA-+>B2YRoo_24%(fo{I;cCHoexLT^S=agEVccP{*rEsuz51Bvn>d;Q zrGd)0<+yCaxXRku>!;sLmJ|<3bcc71tEv2(m?8EG){cW2_sY zs^<;ov_l?gZRkk$IHOw!)vXl#)J(%cVuGCtAyr=uAxY6|v zcm(Ey)8a>u8JHsbr>;3`sW)R+V#(|`ZGmksCee}xm%0_}x{Ia|}+&PAntR_{b)h%^6YA@{SWN{t7PcE!jbxFJ= z9h@B(6;1Z3GVPPU7pX~MfttOA>|kD@_?eT#-WX%j2)pI=Oo487!Cs}q?Uq{77^kg{ z=u#Ypq2?5YW75@i#Co$bqs4qGvJ9n>@+aq;>yu^^Dq}r|(&bKIG-*bYkK>kO?gJe< z-D~}nL5`d4&1*N-Q%Jp0^l#Fu23=n`&Kw@e7mL`fj#sJAoi^t=Soa&=s5v?~o}b#Y z9$-k@((M;~nyE1SP^4M!v$xQ!dyus2DttZXJ(aGecEbM|4PpVIiTP?EsyeID+PGMI zpYdwzH1QLs%N?OGd2kt~Kilm!*s$Fw9N+=?x(Z%#u#a9^vicn5?qSTOT&f zv*QOh29+i1&c>ul}Ibk$tXpAy4NkHA4k1!DSd=(sVKog#mwldarl&j zqQw&k2gR*?nkm4`fY%HJI^k_853~A5Jyko%u4q23{wscP{?C9?2fl4?3|qP3K-z7s zp{jncXeoI8E^C%At9)+4$<1=5y=>LB`#86;(@BryeDyBpZ6{2f&#tge_)zoZslYl| zjzKXCXx^B=zmI#FoP2RIQ)a69R)xSC+vW5}d*Ni|)A1uj(y7K0m-YZO#>Oh=?m?CM zGjyi&!BpE%j&~is(%C~!PN&JpO$~ONNAjGi^)4&f$*yi|D`f5iI_A?x4AK46+>typ zBkJfckOQ6#VYY@Fz9cxd)Hzi_P%O&5391z+Bd^t0pVgIUfP6Kg1 zFXEz(DRp-VAH+uHlffu8jrA$6j8`%AMw8XNA(+_paW|pbv;z2)V2IRJ|_6O$G&KdNPY`XV?6`v(v@8n?6ssSOSCT zY8Lx`^37IsRC&x(3K+OP@J{cy$<=RxNagdAUDe0J9KpbjnrWk&KRTYAheHfCjk!m% ze>u?|d&7}MiD;<>`}X1A`3meg=f@11{&OOpf1>w;B<@d?nh!sr{a32M0VDoR z{r8{v|99 zG{&-0v<5s9!uHz6wp`lkbQ&~&91-*@gZ-yY^&ilL{|&V_K=t|u*?+%A^)KcA{bDlv zH`U(%6!-7f=zq@X-_nBv#Pk4x`Zsm-Z!Yg2g7ZJ-81dJG`2#9)fbBX1{m+l_Z_ttd z*Z=n(HuBY-{15s6{`Ix}6Os9EXc7MlbmG6s|J47{{LkOvB&j ze*=081zLJ0eR?5gdkHx@UQ@o;wsyJ?p4R_&5P>x2^g4FxR?_?;x`KKN>aq&trqVWl zJpX?~hTh}k|3~6~zX$d&-39zYCi(a60)9KQfA>b_0AT;5uz@GZI&}69Tn5k%gnSLFB&CX0|Gj;Gpa1_l8R-95{x>ldH!?Ah6wtPNt;?iI zry(FGYs&n`^Z&iI(GO#rUvFlw^|iFLP5vCD2OxY|m;#JE0VaQcexLi7{sG`m!upry z{$Czt|9!dtPs0B>tABUq|IHQt4`%+~MDxe;J}uqP&+*^9|34@1|7LOjw`TpH+2OD6 ze*d%lH){Gn=fBd^G5~CVsD6g|?|Wqp_yx59plJatXe)h_fBZZT8!14<-~Xrh$A|h) z_WXta<_z{0q4Vr+PqkUuA+;U<)pP9L$j?ID&qpEf@G^#Zmn^CUp^MDDo{%BHfm{p0 zg{Ix}-;fb9eW74G+_7K7_cQuFRiN^J2Of79-#AB#b5_$m3*{AV5APYwFX_N>P? zHa4oyZLVN)W%8tms6Vnp(!NTg(rB0eLCkcIbVN{K*9n%pgw%+Sjb z#Yt*bZj0`&p9w5U2r@~mCaj-IU%v60-p1&P>p(4^H(?+^?NM?Z zxhJj){kCEHt0y}3GjgU?zTx2+F)Z0N5%bA?lo{4VM1d#t0O<;j^Xv2x>?Cd_V~28L zT>dD$Ah>XXLd9&x3GEIUc|^QCO>ZsmvGn6Ui~O#L^#F3v#sLb7;z45KLBwu6A-ox+ z05^p7xF95-#0nuids+MCqp;;Z5^6kx(9bX-aNXl`yHRw08GtVd3VKY3SLonsR0#GJ z>OkmMij%v^z~gX-4HgBsT_?<(M?mDTG)^WFBV>rb%+}$4UerM**VvmRQ}sEC*LJ*Mr#U%GuQ zMYU`$!-BJjD3}rk&B*2JW*l}$^7y?Pfr=%uuk$JJ-=wizWkjF$yZ&&KQg1{;V$kDM$+aD(xz2&+YssTgu-9ZpFjq?zLLYwuIMb3 zAa?G-OnhQtTt8gFKdaQck5`0|?NS~Gqj#CUZmY0Xh2R|GJu5VJ7UoFVdX{FBCAdU! zo(wxbd154B1Fvm>Rch&H#i|vVXFMZ%f=^o}%wEERWjpU|ldXjuSB!FL5VJuffN^FP zG;*A=yE!n6;8geKpuAeN3?;m8fWa|yGOzko^j_@t#sT#0zT?N>Jl~87S=eyUwO6}T zho7Y@f>{gW*VsSiRwhXsG#_EC4@*|ZBoN8s3u(*J$SMgLD3y)sUZ(R%u=mYA}sFd&RVJ!ez4!@e`UW_YrVJ4efM2OGXisE!v2~>G|Yp}F`_Y8M$qnt0R;0x z=)Qoo=~1DJ3AoK%P+~2odpUA*ndJNW3fRPsrR?)Dx44*q7&LC8KoDAmZ0RN^%}3A3m8Y6=MMzY-MXRlhP#*1L@QC0 zewWd>!KtQZ``SVJ7-C$T1$J^%A8wK_3do#E4t3WpLF5XT#@mJakhI$(Fh6N@&XO`u z%sm?{l~H(4xcvS_%yEzvKtSU$_uAaXQtd2Ds!>D*f(RM?;|t-}Dm;R4;t9vjRl_P4 z3I6t8%fxMXm6fm>kD|Bz0q8f?rZxcjO)vx`dW{Q0-i&O7Cw27tMbTIE8=C^MgjqZn z`JE_A9{~LZR)J&fHT%3Ba1(&$3zw2NQh4$Tr-eULfS#MYFOwAlWT6$^dhI%=Ps}-WMWr@KD@6Z^;>-V}rGwP!= zeFg*uOMUqAh)S#lSQcy2AcpXeI^m9`LeI!l51R(v5Xp-S^FAY5pI9-~t^Gv5eQ`co zl2Cs@zts^99t-^?`px_v{bqfSeyf509r{h`9{sjyGxY=gCb}X_TsbikwDNh$0P>VX zG!aJreUzu2R(j*KoQ$lJlqLfjENwEu6&1wRz@+{Rs53^8OiB4sNn4wscMKbbV!k=b z&LX0STeX65N%{*X|DAqJ3F&Af$8= zBs6Fnev9pmQyVRX+e+yker48cs1{Bp#AeEE?m46)jKCTIPTSjZYPjSfa`!4?F0sX{Mh3$kGnhfOLuqom+#>bmI49bx5wo5 z0Pvg4pM&3a+I?OTe*?dH{0aCC_#XV`_GjQXx4#6xodkRZzvVuF-@?9v-#)uK)6Z<*Uw z&CbjD`FU-U)=)4UO)lMT;p@d-8c%>SwWYO}&6&aTo{p4JF+{wz5MdJFu#|j4(wgLt zJJ5S$FsPtQK3EtyJ}c$2F~kS5*hzAV>BY@9#uu$tSP`yP6EN)ZY?+Nuk2%OsK_)46 z8g>VK-^(M!Ge~@=+D^8=TZ}j$i>i>n?A-xWSDAVVgC_lOqkpMI0p_*M`3zAq2vghL zJD$K*jmQ|w93Bg_YdYSx^XNbwh&oAPs7I2Ei#T8wd@t&utC4%zC+weqP({h&unZnUxT@uQ$`K#clL>2rm1xF5#z6p+qehQ9Mz6y>|+tv9# zAy|0wcsS6F18XpYQWu6xH7ce~e700cJ%%bSi!-WdLr59f6cVflRkbtFi-X+^Ld+OU z#ox5>G$4ioi)2HN%1{~rP3HD;AXx+V)=0hdgFN6B-O72p@8EBAa;fCVk&$6**q%eu z%F@`FRH1{m^{Tvb3QeWYz$}UKMJY7n9IU_FAj)cnEJQwr$`*|~zd}A^4bs>siK$!s z91plV62f0)P~0nwCvx{xNdT?`Tfi@C|^2jiO2(;|Uw+wF@OF~l0DBUwB)>!hpnEW&7)b`iQ zo3qfl^U(2M)7%;$5DnWDbB8s6|QVrrpl$Zh5T$7FML#7&6pPj9pn9Y_5y&X)o>r2f2Wj9BR zXh~Z(2ZHKli@uN~79@_GY){}wQ}SyLPc=AiNm}gjSO<4lN4eW|xxUU!RPv8e2l$V? zCzY}VSM@Et6tYBwL$fkl=)ku1WA5Cna$=LSpV?ksXDecIdZv2>lq)w#=!&x+EF?KB zmM)xNo3TK#`I%)y4e<^F_lax&P*atZlTZ#5XUFyP z7y3d#3shYW*VX3VhJLs~t=ZYYV|MlQEh=PI;#V$}xl7SBsEC+ghH_0|QBum2 z=T}6f05Q)g_;EK{UZp}RPiwy$v!cLk#bPp)3y%i|yT;PMVn|M`=k=4V72E=eR|o02 z?!GM9oB%D)W%+wGUAoP8V39Lvv|I08vCgsLmS2rY6g)o|icKR-W!1m{cIEVF&jI6% z%L}9mLzPIGe#u)MKI?EG+)7y{C;Qo*6XTLVGBLWjtKZZI4%Dtxxm=rsp66xo6f|tV zl=Q^%%Q7IST)$P+UA!P!0q5;>YEiFs?z}-FBqZ+=MBpAF#XPB4B603=moFpg*aKg{ zbjPd2qWW=j7~0dJ9rTiVFymgZn4TcE=%o6{m7}-YustfL&t|W15%<`mLu;?XI?WSD z2tzI&iu#hl@C;~+ug*H z#QuErXNX$lepdKWY|k?wWi0ee;5YnIqWl0{$mp0BLMr2ZOPEJ8^C^3$MFHM z-)zCYvEL9p7x!#P;Q~GF;ULi_)*GbvT49zVwpU;w7Q;$5w>x|j-bmt4vJ^FphxI6(!cRbWOTsvIx zze{&KJtg30I;hh8Yr=DI3E;*-8_qc^bsg3FCZCeMzaj!AjB;MhbYN z;v)M=G=sD!$_fgu6pj^y6%7^Q73&qi6tGI;6h4)?s9Vk~8Bw!_vd5@&6zLewgwLFn zV(ApWaQF zR(PRDaMMoG=F>v>qJe>dHG#_?cZ1FXV?Fx_doH)Q?#2n`1%?lT2)5~-1y%?-i)lr- zAytB1<7#Gepwc?#9u3-z;KX!32g~)^=(UM2!RMy;kvPSk36QnVe@J)G>!`oX4@3MS z-O+7Z0B1$}F5PM7bTU4_J+S;$x`Sa(^ow+-uV)JPSLx21bTQtW*&os!23zLYRi&TO zozWA!DYg0^(jAOHk?w3YHD6W#lUS)#9q#f2lkr~bLIp4O=d^-I!lJQuy3F*AkQW5SstMb;RM{4#Yy{?trT-EbMBb5 zn(z(&1N$xR^k%W6H5}9w-3f=CB2h#w-h}~|fG50^C7oD0ff?s`^FtQS2oD|4B;>`* zeA6fjLzT&k9iSQb^5mhW2;70vHKYF8sQ4&H)4e@5IaT$Ah6bJs^^1uM(j!hvU*a6n zX_;Z=9HNGLGh4W9J%y39wD8VG|H@7@|9GD~?*&$?PhZ(@-rv}7`S`oQ?|ml&J6@k z7D8KbyMsPb9nI!6NCpVd2So)o*?zhD%6?;hV82;w7Jm$N?bftSKzm@n`LV9-88sZw z*Vld0uGv2M%6^M`V83-eV+63@=;KK5*>B_b?6(lZ<`DqsSeUH1-!qNMj`h(m=D!(g)B z8$TWc&ti9EyfWFHcii`D(p_WM-5Y4KJ#jvFra#+FT(G^|*<9B_7_>9VGF!`t#rhC7 zsKmCNeI+p8Y-m$FL#vbQoO0kMYU#eFu%6&#cHohZsll1yx-tCmb8Y|nEr&Sce&faH zh4A_(JB6zQ$Gfl_!k zU~rtLn!i?jd7^(amMw=|w9rIgGcc-KGbCcamS2fGg=r^uv*T?&KQ*9sHs>&QnYB)m zG*``4sovg|gobSNl7X2)#mVL4G1e{X{wG#OLKD?Se1raLJ zcq^Kr`QzOxVU?F@d^N@=4r|Bb;7bfq*6tm)qrPGJ(>>G%!?}FH;v!e_%gV@Nfu^QK zs3o-WPkQ#2v+?paZ){xavrUF(8duI-jwUy%gLlzN_lIxQuRht=FYZ=DYhl?PCkEQ8 zIx_Cg%P&YbSFbp)Ud_RfK$~2>I&7`t>EoG$$%o#*raEa?5f}|=Ft_R%VaHl^{&HHn zthtYc<#OHQw*{Xq7R)+hC1ktR*6khQ%EZ3<3^{lKXX=Auer<+6I5-<3aAJaAPzH#BsU zcDveAobJNz+PDO|-&OVr^tx*MOugClf&E6S|3>+q{g&~a{f6}H@*Rc;#tH#q%HR zH^Gm7JRhwR849B=mpPmS9~5eLYx;l`U-S)Ycr5gDSpco=A9`f393Y;V2RP_LoZO z8^QK~a%cL6S5~q=jFE`WU}bJ1?q|^*zgEBz*a9!m!Np&qdSQ$!2|}x}f$9K3k%tW; z8P_DM9(Fu&k!!%mfk05a3%-CbB#k0oRwq}p+OKWTJTn9G-bhHG*P-(mZyR(%TJUVw zIsZEW4(A5}ZrAc%l;{HQao%G@2Gq(20^BqYu<f{bjq`Z3GH06E#>LbaqzLTH~b*m&y2k?qXdiW+i!|*+? zQbH#Y*29L4!WGH=N|F&RsOPLC#FSEoCRhz&kp|jA-2Qa3#F@%^xRD}zRsaCpCIPSt zj^$AXUWx)qpVz5p)no9QSAvqH84(c1&s_8b%~E$|d$C{ifVh}RhvtKdnMtblViWf8 z)dKKu*vQN7!kr+Sf}xqOh%8bo7Fmc%`il8YNFv~s{Rw4(Tq4m&WU=)Z-2wEs6s&Y* z1V-7Q<*Yn7@jTSSj4Ua(T$;WRDd9{hVNpKjEGhl0w6LB`njiQ#uE-Q`0seRV1j6ro z;kA07l|?*xul_bH_xY>E)fR|qppPJC9z=_(K$1T7k3F5u%9NwxqE+5Q@OX1a7RvN# z8{~>47K;pu$@Ly*fXi!MR!kR0nL#xA-Q(Y&n-nMKxqijJaXsMQ+yVHvQw{EYXIj&^ zz7w&ofZ_qGoa&&-+>$S7py+gK70geWa#L2?vc#TO=ZSQicQvRKWlvX=g1wIJ{ojv& zv+*C`i%Pybcn2kJe%}4;^5FdG^alOA*$u>Qp3*4ik_*1=AX?8?yHIG=Wz*vv_Jg|s z{#%u&wq=_}iQbDHy}oXoN!Ws=*(@%s2Ad*>;g}GlDY2){bf$Z!d^ZkI0cb`W2^$4kxo#D-=7LHt3F(ca0 zXmi+!RMw%ZW#68r7&QuT*6EyX-Zj^VyFOIQzN}X)f5ywTT)Dj+cSaq(G~s*GS=Piq zu1fh1$&}7l-ACgKkOM!Y5h*;bH~HyXMp$VTei3U~uC%yWS^}10GJpYqeNzn0Dej*Y z$ubyJty++}p9`wWCe<`#)RYMYp5{E%$Q(`K(z$lV85mmh!drYA-*WeIR6enJEav%C zkfk1)LFBcq&WbceN?id?wf=aIX6{pwaJOf$>^nP#cLH$*rsWnr1TVDvVyTr}Ap$2I zcZa#qpwqpIdGgg~<*E$lsPjP>qa`)no&B7Q+N+2sDFXBu-xQwEZ0u4fu@Ve8nFKN9 zd24~~0w`}Us;dfu>%pzVD`&-Is}tMmMw@2D3SB23C~s(fd;Zllp|9f^J*0&6#x_lq z;$zQKlyfIgQX=oZ*RHDIQ(3UGSM~U{ZUcK-DE6_h?t0+zgYs(md|nirwA%3jf84sY zf`K%)QLv)CJ;VB0#agP$+uQfm23QzLdJBh>^}OG-V@J6`*^dARl(CX=D6fjCdl#zq z##7~N%8&34Mw6cG)jx5Yo}6A)qn9*Nl77UgEXngyGw5btKd5m~o9}575_=egZL2X| z*DZj({ZNORqpkt)&`R5H<>%BXDKp6=aOwYCgrMP;vg9 zede0$D(m3Vnvc95($sAOz;8=7O-2r1Ix{mP3!k*RttQAlM<5%ze|~bs5DaF|#JXks z+2k8RJqVm?F3Xn2uO+FByE~dmE|s}W)L8YKede##C}Z{odzmI^R)0Bh{yo+1JD0Td z&!*ahGm_eKp^G;Bhc-PQ7H{QY_K*UK21fR=2Dr75oO zrKxX#xA4#30dF~IE21Qo=&D^WdyJQHnLgAIHV*VxUKXDauU=UD`QmZm!E zYvXn&%F<?#%O#Q7OU;xb1sVPKtK22lPi;!)ekoIV zK?-g2(OYa6|O zW}_}kNL5l^+$Y_zXduO>GZPmIU(cC%FC4}P9M}To+HTxyOqp6a&Euy%(W7)`3ZDM7 zYoQ3126PZq-lx1>We|e!`d&p)^YkcX{#fd@iLpJrvwV4igE7srS(%@%4&l&s19x>;fi0S>sx> zdzyBD=&i?-4t^<3Q9+2kX#855!YIIZd=?B#&eY&XVo}83;D`At7WM>R+V&M&9~cjk z&>_x1#HV{tA{V??Hh&oNx4hI$Pc`sjH>MC>>fMr_a(vXqLEnn>Pf0$9hL?mG?OKm| z+>KA>Ti0eqi%kG6ysoSHk|UXNG2qE#NxgSe*mN`sc;LZ1sF;{9Fc;{@YnA$~4GcGt z%I&t#YwrRAsuQG;prqb$xq_Fy>mWht@3M+{k?*!A3)#iH-D>KS9CW1k4)+>{spEj0 zA3p|yPs9H+!@2%}# zt(8)AkC;ip+=YT+gQMD_;R|nhMNtMNb@1U0t4s=38#+%(DI%-of4@#mDh zgrHCJcIC=jvn5iK{A=A)jdEOG0<%emvye>JC%t^r*fg00L%caZOI4!T`WC$YN1??- zlGq0>^w_D_*ScoLTLRLmi-@rGeWKrF4lEtFmQnV*vgFtK4In1qp5@>H5U^-Ubb9pf z*oiSz6oXrh%0*A426+iAb3s*yB_>iNpT8POII*yh0v3uvZ1oOIs4U_}0m%`6`Z-wE z{X&3=?{OL^?M7lIDjGtzGEXCH8pL?J$wW-cD`pyWjz3UnX$ARz7FxoT>hB$P`hGg> z%t-5mY!#rc5J|y^%iLl0;binly5p@B4Ca+@Zz#Dw9Jg1m8c9=y}q_9s-aauvhDz?iTwC-EHt!x|_}~bT`^x=x&L>(%nA% zLU+^smF`CS3*GJi|5H5B-3tGl?lx=6DZ?eM80z! zL|}iGd|DRl)|}j`KJI~Ke1)ivM_=*+=#A%wjno?$7vgii$vl7MgY0(s)-)DM*P!T6 z&}xRjlu?FNBAGU5&$|u5e6@3P4b0(Y-f@VFlYR9B>NAPzqC-4YNZkt5_|A9BB#HDp z!mIE=a<)QwO?%V&qOvf2_2_Bdz(I}&W*lLekB&D?>O@H=s^O2q5Gz*V>F^~x6dLr0 zu997!#w~y=Q0BdJryw2_6qKNYRJ`XSYb@8E#WkZ(E0Jo?`-XxNnTBeaBT?M)yb4j! z<*0YSQt&(d0Dw1ffiEOc^32akdX%2;eg(X>o+1r@B$&1Ys$zl#eD|&LAUSYN7WA`q zAH7}M)NL>T@Yco+E%3HrA6nxp;Ee%TKc~R>Y3uy%y+4rS1K@2P0C;nGnyrlGqwpx& zQ&im8&U;l(#;+238-Wl4Es?2&T8(P@JK(J(GYMT<{Z9aI6e1AyC@<9KYCv}|jR+XP z;zP(gFx%zc=9g4XgBsCRAb&DKLpnWFT3vot%Bhj8&RFic{=~w; z0@QqzsWV|Dfkg~h7h0EC7eg0KmvfzI9etf7x<6>S%Ut&3%RQ7m-o5#cKDFW&)n>Mq zA!b7s#Rql`CJkH-kg6}l+slvF4x)~e)*E|S`&hfLVzFBG+oO*m&NVLxZpm(?ZuxJ~ zuG6oNueaS{xm>y8QbbbVMG(ng3lMjnqa!82D^n7H^)$CMq)Y9%D#UbP=^7QuU7UN`>(;fplj4!i_>n#z4j?g3Q3W6I)WmKqlVVRd9D0}@g+qXlZHmewXdrHy1!m9WPpet`imKqTAHJio-86c86z3< z2pj{h@yQ%`$!43)3H*A98Eup30hM5z+Q~|Rse&S{DSMS_EB1wxDU)TBi+KX;H{-?v z)kAgV^)NdeX^uQ+*>(H-x5gp9m>!OLjvuy5E4w$7c!%8BNgWpEk7JX-991_b>gClb zg^O1k7q(7}_j48$8wpQUN3Vhwkgq(?dUw(Rq^qHL=O!cp|ME^ih3}BV+|p`jBTY}> z%hm?Z$du-?MxLflr;*=9L2*fOovHCBeCM-M7FZz+&28T`dBVtTbwe1YgJ}ibLr; z;Vt5x@D>vF%_3;xE8#8pJdaz>T)flmf$)Y#S}gYq;m!6d;VrO%;Tz!%KYbtL<~C+e z^NXfU@M;hSv(5Z8sqN=ahtnAAUBq1jFKm|wYgp0toz9B(Y+vj-I6EEK4V*_4m=OfV zm6*3d0jg<1YeJ&t1Mu_%v&y?Gv!+&xb@+7wTA;NtY-;h6^);v5D*W^5*2wpSx57I) z0O2k5P8~palZ7u91rXj`9tdv%_k=g6&U=fXS=|SVpwb@}LDLTwK`a1^ps}j4dy610 zfJG2cckI1Ikk~~nz#>Ta!6L}xt3}W?z#?d9VW8=a^f08co=$r+uiGnx71LBnuFPot$fX~dqPaB9rSmY7nY5a1nU*@?-}o5M zUxi&}4p5%CUicX=&8-=CSBuXtG^D!-j15w=hBVN8iEOL~-Jd-*7|q{S3ve-B-3~3L zwBtGN+F?{$NH|@KoR6CSw3j<)X|sRcnA|{rS*Ur%zr$MLI(=)qKw)=P2s{I};6%8R zIJF?^coum!zQ1dyc5!>^;qNiWA>mZA`~GP7v^}q#l~d%#Y%25%t|>Z(h1Jl#MUZpB z`Sew{4;H6I+GR&>_=*@q;%H*s0l*>%OH7>E`R1oZkT55}A}H<-@_Z-?U=g&fdo+lC z{a_JfFywNax!aGnuH%Y$J~4XiJZM^j-Fz_H=^lXP;@my8-c;&jc{9iS$;;)eBlBFC z(lzhJn0u6TRN;ouX=}%XGZp@M;YlejL0Cc zy8@eg2n3b-tEc>nWDJ8Esn6k*-GB)db|l157~_yJJr1?uW{#Rd-Qk!e<6L@GNC<{@ zl*)5l_qLGZHKhyMOdNxWmIq}>bZ<)RL{%fnn_tQ11Qla4=Uq)U3N)Wf+BV;e%zUP$ zY&;p60ot1F4|dDd=j-I*Qq0ev5>FT%X0o0Iw#0PO+iSoNA$N9~IYKl{R;j+Ng+fzX zxM#e{+w9KWox0gBIPXs%!V`)+J6-l$swFm?9d0KVDL0-TQ#Ny-m?O37lrtGI#P_eF zr1qrlY)}OU26TGrhAj5d!-Zck(_T^d7bvK}N0QljqD;u{(yJ`JpV4-oG()Xk9h|tG8r%U z2h}gI-kcPZXH&z`{Y1R^gUMwS&7beMvx0%et)cd-Z8T;coVSgsU1#q!nR3K098u3p zeTe0H_wa9#l6UbA2+E&r>%WM%|D>wt??2aX^xsVXLH#!X|3?28`ftFG{;U7``jbMs+n^HBA{CAvr}0x!0O@G@`aY1-RB0Mi269OFdIFGkp_Xa!r6n zkX+N$$VlBv+d|!lTps|Uu%uMi(z4LDv?SNk)={@MvijNoU(0s`oXhO~#1A2{SpnXt z>FZ!?TUeM{a41_SnfADUppM_9~$mq3BFxqn)+7uzn!f6gMa@_-M9XS-Uk|AN>0Rxo`bX#9?h>W$`yw$MoU&ABpCn!#^C5nVzYMwwSfC zhPK6TFPVon*d`B+{{F~*8Tk)I_xs;7OLZG9zAsvU2QFH`-i;o3)jd<-$WaL!+iMh?{(E?Zvm-VU@7MH5{Bz8|0qW4Vt|@{mX_L9()tcxKLa%b(=R|10QA99+v1_4ytambtRM>u*L`yqmhbbx z!tz>1ROI`+pQGvlk}9{6sixt5XA^59qaXA2?_hl}GEh@9{RvM*LS57F$CCdH3$VYj z6*S=oTuNW3ZF>Y88Y;XZd$ew)&t-L*|LE$q##B>u|CR_eOnaH|Yb(#-bs zJX~D7W|ktlx=g}ix^j&FQohG8QEOUgKWsX9zi*eQX{hM_d^-O3vpfFbP5&<)fAgEq z{2zS&qXn$ZUq1i+m;d?8D*gLj{$GCn6OiH)GO}XkSEp0>|Ju9jpg8_5QQ!##NN{%z z?(Xgm!QFMR!QBZE+#xtYgS)#0cXtaxg1hqua_`>X?*8%KzO8p_U)3%Cp=NrzySjR+ z&zbW*pJQt2$e?Lt=WHwdU(f%H3>?g9Z4KOLjqL%>Cib-UCPpRz+kZ|Tr~z~$GzSF^ zgrL;W$i$e?(cAkM1>*1O*Ywp#8jNw}ft>BfRbhw08r06Ry8+@#phaK%njGhI%jm{acRslAOL| zl6Fo8HlR?zjnDNj$9vhY9O${iM=0P5pXs98};b1ExXsRms&-UM#{t^GZ`tPhS^J4z> z`~N@TCi;v2rUUZdRPHj94^w679p~RkfEiblE{u?o5DnxD2?;^VqOvu|85`heNpuJy zDfpp?h=hg``ujqKD*mMLB}9jZ0L;SJzgKUd0HZR0T1#D7K#r|A?Kt;gk2^?ZU%S`6 zZw0R2{~AfXCN-*mjvg=uNRb8&7@x7^EqkDQz+;gmcna3~|gD|5~@ZpA+-6GcK66sjs(+Hug3g^YY!TbIbNDs8V7 zeJ7w?Sh(t3u-!590FVk)6s>LN5iOK~c#AZYAe9G;0-jR;+@N!q>3JXKO>J+^JF^%b z2uDvt*<*{_7rKF9`6$Pglij&lF^@x|YA00%tF)64UkRmn8(2Gn7FY@DY~iCfg|}qF z>Yb8EUD0PW>m7(Qu``@3sosVAbyw1mvM&_EWusolz|7XJt;AcFEnvlpeE@GKDys_! z5yK^qk#Z?N7`hFe%_94_3%EYYUH1somA2~Ex!bpzRBb6gT@J(srWrO^Y^$jL(4pH!)TVo8aLS?u4)P@*|b zoe8xc6T(C+y00mJ+mkd8w9?3rzf$y-0*El@u?$DcXPqh82#=fN*(!}EyQO^B*}H!x z<~>w~8~6a1u}lDJV|&*w?OWuiNqm9yY~3}LubCkSl^e9@!1FkCjFLRT0FNzT^#mhc z;#~9#3D2~p31SNk&NlV_yxnAYKg%5-%dm;y9YpEsyXD9E^x7G^(zzlCTF>lGZL{Rv zNnXQ2{p?Tua+-hWt6stPZV%$@MHp;CK$u){!d~;Mpf41-C zhz8GyRC*}}Qd>yGlLlDqA7p>S9II?TvM_%vNf)^9W0-M);gdCSL-W_H3tBzzW0hhGgksnqptVF;DPlQ!i== zjqJxbwV^2{#VKY*W$!71bpJ)Sde`oN`*vzgR?|ZQ=IrMW#wBr0&f~01-R>S!F3&*^ ztJwxCOTe2t%1^+ph9`2A^}2*Z0e^1HUT#9>0PYst-4>{}USzA<{bvlwo5-R)=KeY5 z5b0z={MPLT(ts8%h~ZKSKR2|C)hO@z>s>)6jViF*h2jIJe5tPA^?;LpHH!(^Q!?cO z)@ag_Tca+W3}b<8|)r3CxqV1 zw7NtVbP2T}1&?%T19Jl?v2m8kLaT#!n&=buN%u8D>!a4o)P?r3r9xeiwU4UnJ|1&5 z@k5bYYK@)%9u4y6`Z>HEx$|VN?6!n_b9$?g7ax+_H$`%AW!igOhRu0)Fe4 zP8m>s9La@iVso6+pBYzcOb(aJtYy?M1??2qiy_UU@Fc@ zvtZ(_ZYK+<%Le|n%jW4ou=Wx=Y{KyTE&FnUw{8sin{0hzTGP+99R`(&+<4Bh=&-0{ zEdGQm0%(ni5-S1-*|RdYafRH3NO^%F>%joe#@FXGk=SmY)g1cseUz+4%L#*bdCiM?V2nd=gmb zD0s9Gp`2!MF)?v5X9Ns|;QOCV=D#;P1qC~aIt_@33>1inh!pxigxHIIKp^p(p!w_b^~UB2ut$h$01g++ra>9 z1{yLcYwN1b7fdSU*I|p!%_cNDfR`5$p30@w8R70YBJK7FC8BmzDl1t#!kN7Rr>!_+ zf9H{|gH`Rk^muw3rSco*iud;?CvMGi(%bGKhqb$Yw_l0|U6W1-EoV1RM$ZqYjfYT? znXNocHj6DLzg=2D0vt6!)My`vz|*jMG=O|e2d?iunAA}IV9%C)yfTvEHj))Z=X8Ta zq~TSL!uNL`)KN9Lu-|#DQ>#Uk&`PTdy!oTUpgY3Uj<}%%UF%ZYvc$Ft+b>YRZ6TAm zhK=8SATv~O3o`1i7}8$&RzOT91xcf^a#txmXhsW4B0%rN9 z9o*Y_&TJ72UBH2LiUgAwSf2<|P!YO>6bA^kFi@15^^D2Iw$SNuSn{Xj&WEM552S*v;r>xv>bcN_{X(Jzzi&Gjft z@1i){^aI&qYgN8WKG=zn!uqrJ=dLCc>*c`w$a!-CkI*oVNIlMKK4Ln#>n>u4kk^?z zu$WbgV;U`?RbYww>sw@y3OYItX%q#!T>6Az<*hz}sEHn|bTREETPXlGqz(NBAzoM_ zAqQ3R2SGY_-ffBCu0Ar#OJmZ~b;ZhSW71J00|KZqsrIEYX+a5R!l_k8a}SJG9*J>(4vJNu$bP*Jn56TOl_14Rdy!PJKCM_Bdr(54(j% zrvZ>s9G`AyJCB8L(2Ouy!G+Qb$=_GHY`5o25z$TUuh)I1f6Gua%O#xO|B0g4UPTPL z#Y!en>l*8C`kUE%`MU=*b=^Pu+cHRh1M;4Axd zY6R_sIhm?*B1U37`lm68>`ldh1)+{ZEC0%hDhhcX=Ve#MV}@luu&K?<)3W1glu3|VY)E2O>N*B30P*08P>}*`) z#OSMFPu~|Q`{lFv_y!>%-tnhUeJOIejibO%;)lAuB&)`E{ghnl9*2K>9q{}OAjbmN zO9k=V0)RwrBA#VDL15sLg#?LlgA^!*5D=lXLXJ>{pzkZ}!$&QrJjjRSarTgXuZLPb zZ>VsFjxYet?A|nN2!{f@1dY7BT3FbC7)!1cRZSD6W@^UWthi+c{8*rJx&jRim;p6p zw91)df>gGI*bDv!ARKXwW46%37|K&nPTgP(Zeal$(~p3q*JI}gYJ|1cETUo7oxlBB zdfOw7a{{|7=fG&y2gP?8B6zlWz7Xp-O-d}l+b4^~lZNNvc_uA(>sEoX(@Zwq^IjS6 zdz4%%rXwaEWnvB5<{I8afjZx|L=nkviCpTK%?U!2tXN@(R6+T7wK7%=F4JA@%qj9% z(Q~A8>ml0LIOwd5STOg5&_-S^?~TME4N5-93%@@C)GKzHf5qsmV0;{H{E7d7DA(u> zU-_QyL-RM?@cxuRi^@?zYS07S3`~$Q(Qv(p0dGZ{x(^MKE;vO6ixov;0GfU`$iBqJ z30?`@)Bn}`PH81#o_F5L3cv1+Ryc2DX^(36cni{!zje2>VYz`vWqswfK^9-6S17BI zStYOn{Q%k-j%>u$l>tBGy5oKW{FJBxOl@ny^{sBG+UC}Yq${t@kMx_DwjMCg4{gYL z0l*%;F1_CC%|C5DQ#TL~P!AX{Z9Np(2uSi0A6R3g!wHK*xI^3xsTc#kO7jTOkk2C1 zBXWOfeQoPW2DSCT8o44;2cZqcR!q~t6{oRgsPt7;9vO{*mSL5eSQ{Lg;u(AOSeSYZ z-6fBhh*$Mmeej@Y{;JbGTUk(bY(#HdZp=Tn+POLg!rxL>x}G9XhWAFWx(3$cZGYJB zb4H}OrJ1B%rX8k%gYdWNG-?q37L?i{yM^x1XGiXE{EO}D`N;e39>uw$1I(0t@ zI;nEq=Aj+yOzqR^^zeJd-)N4>y%F09^g8K(M(w2DI@}E1q~5&ZZ>QxSy5509VENno z=`!e4NL0vGXr1`2m#n8SXn!RfMplI(hcSamf~kLx@SYz<7aAHm6h;aG8_oEA3R(@% zZf};0zZ}#fO(-H9IzR+PL=J?%!DaKl;BWo`0b2nM{(Vr~{sbRZF&|VXXgQ?R#AjPZ7b-e1evR109(UvM zWE=3Jb)3FR&zWDiJ@0Y#;JTJWGmV-pG%4&lOv})t5514eXs!o8vK2iEQ4IxTM_DfK zJO)0_JpR6;KWs1e8S?c8AB0?H)<5@^hlGYKf?|X9G+giWQ`?CasjY-fJ*6uSN# z`x)y)Dhi)8tQ>A42dka+W~Jb=;J%;|Brof3cW00O_IglfF{BT}XUuGDL(H@3Xky8< z+zS$i$;I3_kaFZPn3xWh#UCpL=f)Pw7i1`kQ4Pf-P+e2{sN@w|710*K0Kg~7 z@_3V-74h=QKG7?;$BjykNoOWMY2J-t6~T)Cs0;UjOMp#ha-14JPyUc>{Htl0S;J0a zv4mA)WMT6_a$(Gv9U%-aAFs}NK8f?u;ezwG!{|2rV0zlU&`~dsMg}d=V^u{q=$GzD zhNr5x!qdY;Hv|#{D+D!68$~#E3H`G6ykag*Q?t1|V}Yy4X-+S>^j-X}6kB2qtUQkQ z@yR2x2yu~E3GS)M-nydJ-Vsx_mFt3$NoE8t$0U!v8KZX^A<@!Pi!-fe$&Ly=ofwl$kdKVF?Vr`ysgmxoRNo_=#i zGMdX6$0plUMmtwFqgzH>=v7rGS}?);?OrT1N3W<|z%)j>-@!@4NqT>D&TNKX)#sam zdUsV25DvRrs{1-FjJ!O<(@E+!9!^O!!YEuz)^mzvs`%IYbJTNhX+7z*!O^pU1~ReZrSQ4lbx)0r zP^6tMuN*Wxxg0l>Uu7&@r?s(Pud-fmT+gi515KZk9n3P)Rak!CE_8u9u%Epmtwv)x z`B(XWJ*_z052v$U4}*&$SY==^jjJ|LotsUB)zt!_zC$y1O&FRJxsphzIlDJ;a`nGAE|Fl^j&!N%uN{clYf@y$TZj0ZStH8eM^mA-q2QMuzjlHR$Rxoa6b^7*>V^ERG1^b!_#Ww zlsN;V`g|6?k*s7HI(wjw)9$=by=+#%dq2}O@f)76z}sf)F5@>w$+J^{oACL0!r1ZJ z*E+kc{MA%+Yce)&c0E^vE*OF**5~r(I*GcH1?+04&anBgQH*wPz@#*JUBrCdvB~9- zmM+%KVB8XM{n(n{@z=H-6SMBoUpiaPcy3NN#rMt#E3J>f0iUH4%>&C~-6(Ib37jtW zUu_e2zrxw+k1LOEoq><5%=ctR_ZOv=K)fY>i{}k+V)&MG=Zz&G-Z1aYFK&(FmMfbd z&E;(c-oTyvqH7miMf}Alm+iHB0#&@#Q^7^3W}TjfAZBpt-P7nk6Wv!9fM5z`|N8B%V)-20ZFU5-Kd zV4V*&T1L#d%_Ti^?ar;VN8B7%tD?x%q>aw+&z=uo8PmE8ihHH6=GID0KpkLu5+S5u zcw*C)k#4NmsxG%bU74oMXN`s8s@mNAB$m;wBGNh< z7lro9zd0$s@^8U->(SD@ApT9Jl`ba|#J?@+`$u`_#+APCZ+T6iM*xU_%lyN?eOoK> z9Vg2`u3J*~&I3P!jj&AiV3qk`=E9{BOKClH1VJ%{BJ!*Lwk|M3Ev8=?i%FevCa78# z+XTJ!n~ggm;KsI2wwreY_Y+lHOZ_*-!9gw{e4ONBM%n`2N%Vx947VmCVIaN1#(+4K zUfhgZ9`*oShqh{B3~+)o#yIh(8FxCQmzYhcX3n7e0R5+Y^#1Kz>{_WZ3gu38HhUEd zcl~q`3O&JxC;o~NpkyRL|Bg?*( zuV+ImBAQ?>qLSqa=tP&PW_SIp*XzXDbc5NFRb7Lu2Mgrkr)RH6jFmm4(a3aNHRjE7 zr`~I91&8psAO>Lm(#^h27)OeQfV)3|t zgoJKXfJbD_=^7Wo?)!z4RUlxgQ@s&Z=e);<>CxTigg6$w%7%ZbTMR8bOIVo`dqz~d zebr4Znx~pamNz)5!ZaAjCKX4mUFM(Nu#B2Ty-k-fO@c}tVgHTyTd6M?-6zEvDXeWF zEq?+{WNq{N8q{dmpJ4nAd;KclAb(=~A@3 zc-vp)@{%K^z?LElV+Bm(1V-bOB>|EauEy`of1Z&vew56JC6Si}!-6Dp(?ovX0_M8G z=G*+n29b1`nsDD%&9?$UR-u3D+yRD_!I)yoUWF=9n>MZ(Mwzma5)kT{Jh}4Ko7TCQ zbXf|xIoxGL)H+KbdV#XS>Z{y%@Bwkas{U7<;MT9>9%~0U`SxCMryG{+ zc>C5l)?74?L2scVI1k~$=%{uZDhlJKbEu~5v>Aa(ziF=y2j5PbFzq2Xz-q&4>j-5@ z4~IK4+B$vkqhn;A?CqE#eb>}8EP(;8mV~&A%uKBFKV_rkLdOrS1evj>H=8v`e6)e- zhOGT(=duX%C#bt6{;3jOgpZ9D?E@vRr_RPSA*K@)kOA^s;*S zOef#Gd2!E@Q->Kaecng>tklZrStll6k@0E`sOE8#pZZY-CI1Hb6@M$U9wD8^*BOW_ z%~-hrlDN%ayh1b7C#cCY~c%A44Cvfa@2w_ zMHsB}xX7_I&3t-}y1%IRCQnxo^pT^MlT2)6J0g%+`3_oKq*kLs^V?G7@cg6sDOnDt zGldvImRWCS9h05mydi=!IOCjI?~F2r)bw-)W9993%Dx>MgyGFqDK*BYmD%VeR*Rpt%J1?AI^KPG>wM+(pa!zv>i?bnc7O0U`%S6Xpoy){lAGbh zev`Be@(OtX*>BXdHX!>=v-Fa2_mEN(ifrV;Cc^n|_FEZN{T0Z5gK-L|U8GZ~59n%| zYMYR=)(6>d;FY{MAsM0djDNG=08@MTn$5{K-?a0lu)ifdFMTeMt>sCFw;~sE;-edy z2=9NukMYx46})<;{!eAADQ1S6C4-69n@pd7l&=E&irlk^6IV2}WU=UE>plwSqrmB3 z7-dUSz0|LQT9)~Lka*lTDHUigL=47th2NkOTvTq-3Md3oiS+DpD zSg+jc(TH3%FQn*}A?hbE?=!{!6rc_}*4?3uf56`pSO>RehgS(i9IQ^_)yV^AZS-b4 zvyLmvS7zVT{H@gV9fa+`YP*c9G{rq%duT_0G7c!xVLq48TtROf(fnYdG;}P89aujX zHRZ&Pt#7G{pwCwbp?f>(&~UnemeSkG4-6GaB#Rj+-UeV5>R(H+;{UKl72)M_(mcAt z*W-4xz5Wi)CtuMfCFJqm4K@Y*=uahz{CUUZ@1>}_Ob7MrE1Wj#Mdz0DBF}VZRO^gz zo>sZ_M-j7uwL!V6>Op71PQ36eQdO_!oHd{117~H~OoPUJDQ#%gwgJYOy>SIt7sSEcr696bE@6eOmVdATB>9kjko6;Hh3^Baih_7U9bL|zoa@)$VoFN z{l$Na+V@TW)oQoAP-`E_zW4^4}s} z{I?}gQR>Bi`^=uZAhf@72m$inP(c10=Bxjvhsarqp+#TSAVON45!c@&_s4$=`K$j{ zjrQOjMvZf$j^N3d@Z!HY{qf%v{^GyAl%`^WN5KC0Z!$0bo5CC~&zu*?e^dD5zxDpr zf6Ms0|JM7prVL&v{Ez>}{-;1S^y0r=e2PaUXM)_16itBCpnInktdG&W65xanQI9iy zcl=qQKP&f}#!5pc7Chg!zp!2ZcWO3GD`}l(nPhuP?FQ7|-l)}QaA%Ro-#d{JuuV-7 z!wN0D6Qp(!xTr&TP!r2R<}p1dmbK2vyjH3h;i9U9oa%66qShOf_2x`KvL&ts2&LN1C2cR`Gj$ zvgWNNZ$W6-D7!ch<#~$;G3>7-Rt^ClR=d3S#&Q7PsDB&{Q!v^lD^$A}377??Fog0r zFpU@e<*YM0P|;HzX4_@OOd*~?k|AnS7#C9k4Bj78lIqSWcnv>Gx+D0W_Oo!SBI5)o#6YMI0bM!5qS@oSM=>!IF)=IM zI>oii1y_kSjA8YWnUBv6u0y0Im4pzO7X^ec5+y>F+A>iZ6`H%cz4|gWZy(@q7AP~( zI6eZqh=PEOMIG7{$VxAz7GI1lJr<4V8NK>bD-p0pG5DXMOwI)O^sydA&pE>DG7#Bz z2ov))1v$)yLTSTMoxU-C&$3toUcUGGIGtNF^uk58b?%c25M$RT?yvyoi7yI9H7fT2 zSD_@XtWwsG>0y(>e!;Vl3aA;Ky5qSsoY8y%WtB|9!dsa^Ljt1|1?ZRN5;?tR;f9*z zdG6I8Qx}e#6psmXt(lhqfs_)(b4iVd^AjvYlQ`6ptxDpP+wbT660EdXsW|70o#$!9 z+Jyo=sDHt~&e;innX^-z<@QE?f_3iwP6*=PlK;-XMZfZIf%qW)EmR5`>4kq|_UEPK1@UhahV}B-3Zo*X z(#hz*Y`$BJQ+&uWFLQ6?D11xW6{IgLHoB-v4k z(ziU__Y)BN+ZBKj{VZH8_{>$vP&uURi;<(l9=1-SNP6{e5ysYN7RWxh3LgUW;g||t zw)f|D{ZA?0w625EvGhPY!f93~vozr=EDHk|099<}he22*le2r+fo|V(B-6VMbABRi z|0rbEq+ugC$oYOiSuOrrWC8e+7d;Dbepcp`iZOneXjDoW!~P6U#@Gp(vC|5gvGe#k zV1D=Fv+4WS89UfUd1!5o#w9g(nCgL}_(6mOVFuv|vsYH7 zis|{`a@mQQ79BwG3WX_iow6S|CotBwckn~a#3#xriuh8Il;aD&-h=EI`n(8ln}o#v5#5I;A#R46Ed*c|1%EpB))DjC-pliyOI=pq$hOntSfdB%%UAh z!LG2=ifDaG9mP{kS0kPrpWCM8s|zNd2u4SudPQKIs#$%a3R<>xW<@Mm#5}xA|1sY> z$|5znHco&i31t~#*q-m3v6qSvNPnaDPI{_%&-fy@RX#mtc?cCY&m7aq!%967&=4)>id9ZU~>*{@fv2|y_ zRP_4I>mPj&^f6<}WFjn=F6%^TJYuJ@Fl0i%5=8xRcZB#O61GbnB_jxNdCDfwf1;uf zF(_isWt8-KJ=k{e(&3A!t>ir1bdcHC{3^{7hsFFx_4(Z%zld9*PE!Yj68c#J=^l~_ za0P5O)S*u3iVby6)rg4hqb|pau$T{Z5tcniou)?T6%g}=2X9PTsUm&e za$fhq`oQZz_<-YzayC4@x2;pNf_k2H{x~uiYAePSp@o1Ck-(qYmNg>+V?EE6ln*}h z^W2u{a>&b!Ao`A^b?Q^r8?gt{2Nh5Hzs(4W(ChH&@F9Ac5%lp6@$_^2CzQsX_t`0+ z8A0Uv$jo0FK{JBv4QWroDg)-FUuOh`0KW{;groI@8uV6?(6CB(Q<+7W%~V>w%m~sL zQn%F5Qg7CP(g4i}(g4i}GIdypv0~Kf!XKnFovUyIGX zK3ne`+#P~!nK($(D%0HMh|TcLu*`VPxOd)w@Hd(rXb}FkL1sJE(7SB6Jh0r{2-7HU zS8so93&P)Q>CatT@LPylXmmN{ha66RovMNm*H`>)=stv?=eSSp1m# z6@PPhu=Ho>6c7x`($2z=!Jt7dK{-J8B;=rOAcMsqdtd!|rfZ;Up=-N~whO##>~j)m z4B)2!WPli`u4D>9i{Q? z%o@|we@{FoivNWNr#C|C3sp!8ZY|+{xk7M`W;SuQQjWMdyJ&f+H*XVX5E=@B60%Xa z25L3!FOgyTl{?3wLosKMhNVOs@n)UF)nX4hm#X`RBdunF<0okZyC{ErC3l`hBeSS6 zk17xNBhDf-qp<=H{M}pY^6$FB9((R1$F-$%bsViouxKLFNZt1qvo1p954Edu!E$Pv2h@vo&Da6HWGa&G-7jm^KmnAezmfFYr^ZSV}MM%`*o*G;Y)2dC);S@N!SLzF9#88neQOg>U2}$w% zs!wjBLcPO;r_?rd%m)?fytg z?MfY%4bDf%csjXoV1_p1aRJQ;T3NY23TZXF;w?BHX>}O^%?PT!K1^Nk`L&#EW`;K6 z?p!h0?-0iL=OI9xr#eY-vmrN-am-G4H^5v+u- zdwK#qzdT>lBGjs|>bwkW3Os%keM;K)0eIye#dL=$hh^vv>saY}ZcZ3P@wJn94uq4M z;Zu89^(mf$#tQj(dTwqV(@E>p-F?_V86{6iN}^k;*J8Eq`BW!(=eos*AO+2_6G zdMOu^A=boohaMV_XNhW%ZD&8P`VY@t*17YK%@-Cbs@>)qbi{S>p7z^Tgk6BoT4!r) zE$H`)MRPfNdKW<_5sko_HqNb)A&(M|wiT`R>*2PLdp zT2KxMZMSl>+~uvQr$@!dg=on;79{L5Y>=lwY1 z!FVh83Qyud0&32yr_-3esI>2#cKbg+$Bh(R6pZ>1;O=X=>7PHAM?@ufby&F>7g z?LPJ{`oP}x&6=v5|1LO}C%CKHACe#29rZkyzvnN{Outt-Q5zb){)p5}vRfwg3R<*{^K%1_fWy)_v`pyadc(ztnsp(dkN zrj!1x6qT9rtnql>srTc-{z!AnY4viu9sbVg8c6JYUo!J972S=!cKEGMM{ObLVkTQh zzzKeZC}=5Nh%_RH;P{2_SgA*aE#JW`X!YX8-&ZdhOp&%Y@xxot{vcK7OM#CX+pd71 zA@Va46!=v|=%a6shuE`;uJMkSSNKkn`5 zW!-Uv=~rvuvZan}+sl0VY3pqDPJFa?^P_|KDeB_)!iScHM}mklZ6%zzkFJ1@Rbp%{ z>G~-LMJT$${j#BF@54G*lPC)nKR!Y8_UB3=C@LV_9&S3@^^5-od8yrWlZPDX;Cclbr2<$MtM^X0sAb7J=5sdyczc^f_LaX_Vn{ z0}V&d>v{`@A7K=e&-*O=mYV(0`#7%L2k`g~MerPPqr}z<^GcK&{i0(q){Na+lVaej zUGA~prIM+!i8rp(fcNcw@0@&{w+uU~gDIl^>)#DA(hYxtDE<3?>2LppR-S(y;$K(b WUsvE?SKz;N1^yRzGuzMregOb<1>4*J literal 58412 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 diff --git a/lib/WebGUI/Shop/Cart.pm b/lib/WebGUI/Shop/Cart.pm index 8bd49398a..837fee2e5 100644 --- a/lib/WebGUI/Shop/Cart.pm +++ b/lib/WebGUI/Shop/Cart.pm @@ -345,7 +345,7 @@ Calls onCompletePurchase() on all the items in the cart. Then deletes all the it sub onCompletePurchase { my $self = shift; foreach my $item (@{$self->getItems}) { - $item->getSku->completePurchase($item); + $item->getSku->onCompletePurchase($item); $item->delete; } $self->delete; @@ -459,6 +459,12 @@ sub www_update { } } } + + my $cartProperties; + $cartProperties->{ shipperId } = $form->process( 'shipperId' ) if $form->process( 'shipperId' ); + $cartProperties->{ couponId } = $form->process( 'couponId' ) if $form->process( 'couponId' ); + $self->update( $cartProperties ); + return $self->www_view; } @@ -520,7 +526,7 @@ sub www_view { formFooter => WebGUI::Form::formFooter($session), updateButton => WebGUI::Form::submit($session, {value=>$i18n->get("update cart button")}), checkoutButton => WebGUI::Form::submit($session, {value=>$i18n->get("checkout button"), - extras=>q|onclick="this.form.shop.value='pay';this.form.methodvalue='viewOptions';this.form.submit;"|}), + extras=>q|onclick="this.form.shop.value='pay';this.form.method.value='selectPaymentGateway';this.form.submit;"|}), continueShoppingButton => WebGUI::Form::submit($session, {value=>$i18n->get("continue shopping button"), extras=>q|onclick="this.form.method.value='continueShopping';this.form.submit;"|}), chooseShippingButton => WebGUI::Form::submit($session, {value=>$i18n->get("choose shipping button"), diff --git a/lib/WebGUI/Shop/CartItem.pm b/lib/WebGUI/Shop/CartItem.pm index 31ce96f2b..bd17139e7 100644 --- a/lib/WebGUI/Shop/CartItem.pm +++ b/lib/WebGUI/Shop/CartItem.pm @@ -159,7 +159,9 @@ Returns the WebGUI::Shop::Address object that is attached to this item for shipp sub getShippingAddress { my $self = shift; - return $self->cart->getAddressBook->getAddress($self->get("shippingAddressId")); + + my $addressId = $self->get("shippingAddressId") || $self->cart->get("shippingAddressId"); + return $self->cart->getAddressBook->getAddress($addressId); } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Shop/Pay.pm b/lib/WebGUI/Shop/Pay.pm index 302933ee6..88ec7811b 100644 --- a/lib/WebGUI/Shop/Pay.pm +++ b/lib/WebGUI/Shop/Pay.pm @@ -66,6 +66,7 @@ sub addPaymentGateway { WebGUI::Error::InvalidParam->throw(error => q{You must pass a hashref of options to create a new PayDriver object}) unless defined($options) and ref $options eq 'HASH' and scalar keys %{ $options }; my $driver = eval { WebGUI::Pluggable::instanciate($requestedClass, 'create', [ $self->session, $label, $options ]) }; + return $driver; } @@ -103,13 +104,15 @@ A WebGUI::Shop::Cart object. A WebGUI::Error::InvalidParam exception will be th sub getOptions { my ($self, $cart) = @_; WebGUI::Error::InvalidParam->throw(error => q{Need a cart.}) unless defined $cart and $cart->isa("WebGUI::Shop::Cart"); + my $session = $cart->session; my %options = (); - foreach my $gateway (@{$self->getPaymentGateways()}) { + + foreach my $gateway (@{ $self->getPaymentGateways() }) { $options{$gateway->getId} = { - label => $gateway->get("label"), - button => $gateway->getButton($cart), - }; + label => $gateway->get("label"), + button => $gateway->getButton($cart), + }; } return \%options; } @@ -192,6 +195,39 @@ Returns a reference to the current session. =cut +#------------------------------------------------------------------- +sub www_addPaymentGateway { + my $self = shift; + my $session = $self->session; + + my $className = $session->form->process('className') + || WebGUI::Error::InvalidParam->throw(error => 'No class name passed'); + + my $payDriver = $self->addPaymentGateway( $className, $className->getName( $session ), { enabled => 0 } ); + return $payDriver->www_edit; +} + +#------------------------------------------------------------------- + +=head2 www_deletePaymentGateway () + +Deletes a payment gateway from the shop. + +=cut + +sub www_deletePaymentGateway { + my $self = shift; + my $session = $self->session; + + my $paymentGatewayId = $session->form->process('paymentGatewayId') + || WebGUI::Error::InvalidParam->throw(error => q{www_deletePaymentGateway requires a paymentGatewayId to be passed}); + + my $payDriver = $self->getPaymentGateway( $paymentGatewayId ); + $payDriver->delete; + + return $self->www_manage; +} + #------------------------------------------------------------------- =head2 www_do ( ) @@ -203,13 +239,18 @@ Let's payment gateway drivers do method calls. Requires a driver param in the po sub www_do { my ($self) = @_; my $form = $self->session->form; - WebGUI::Error::InvalidParam->throw(error => q{must have a form var called driver with a driver id }) if ($form->get("driver") eq ""); - WebGUI::Error::InvalidParam->throw(error => q{must have a form var called do with a www_ method to call }) if ($form->get("do") eq ""); - my $driver = $self->getPaymentGateway($form->get("driver")); + my $paymentGatewayId = $form->get("paymentGatewayId") + || WebGUI::Error::InvalidParam->throw(error => q{must have a form var called driver with a payment gateway id}); + + my $do = $form->get("do") + || WebGUI::Error::InvalidParam->throw(error => q{must have a form var called do with a www_ method to call}); + + my $payDriver = $self->getPaymentGateway( $paymentGatewayId ); + my $output = undef; - my $method = "www_". ( $form->get("do")); - if ($driver->can($method)) { - $output = $driver->$method(); + my $method = "www_$do"; + if ($payDriver->can($method)) { + $output = $payDriver->$method(); } return $output; } @@ -223,22 +264,76 @@ The main management screen for payment gateways. =cut sub www_manage { - my ($self) = @_; + my $self = shift; my $session = $self->session; + my $admin = WebGUI::Shop::Admin->new($session); + my $i18n = WebGUI::International->new($session, "Pay"); + return $session->privilege->adminOnly() unless ($session->user->isInGroup("3")); - my $admin = WebGUI::Shop::Admin->new($session); - my $i18n = WebGUI::International->new($session, "Shop"); + + # Button for adding a payment gateway my $output = WebGUI::Form::formHeader($session) - .WebGUI::Form::hidden($session, {name=>"shop", value=>"pay"}) - .WebGUI::Form::hidden($session, {name=>"method", value=>"addDriver"}) - .WebGUI::Form::selectBox($session, {name=>"className", options=>$self->getDrivers}) - .WebGUI::Form::submit($session, {value=>$i18n->get("add payment method")}) + .WebGUI::Form::hidden($session, { name => "shop", value => "pay" }) + .WebGUI::Form::hidden($session, { name => "method", value => "addPaymentGateway" }) + .WebGUI::Form::selectBox($session, { name => "className", options => $self->getDrivers }) + .WebGUI::Form::submit($session, { value => $i18n->echo("add payment method") }) .WebGUI::Form::formFooter($session); - foreach my $payer (@{$self->getPaymentGateways}) { - + + # Add a row with edit/delete buttons for each payment gateway. + foreach my $paymentGateway (@{$self->getPaymentGateways}) { + $output .= '
' + # Delete button for the current payment gateway. + .WebGUI::Form::formHeader($session, {extras=>'style="float: left;"' }) + .WebGUI::Form::hidden($session, { name => "shop", value => "pay" }) + .WebGUI::Form::hidden($session, { name => "method", value => "deletePaymentGateway" }) + .WebGUI::Form::hidden($session, { name => "paymentGatewayId", value => $paymentGateway->getId }) + .WebGUI::Form::submit($session, { value => $i18n->echo("delete"), extras => 'class="backwardButton"' }) + .WebGUI::Form::formFooter($session) + + # Edit button for current payment gateway + .WebGUI::Form::formHeader($session, {extras=>'style="float: left;"' }) + .WebGUI::Form::hidden($session, { name => "shop", value => "pay" }) + .WebGUI::Form::hidden($session, { name => "method", value => "do" }) + .WebGUI::Form::hidden($session, { name => "do", value => "edit" }) + .WebGUI::Form::hidden($session, { name => "paymentGatewayId", value => $paymentGateway->getId }) + .WebGUI::Form::submit($session, { value => $i18n->echo("edit"), extras => 'class="normalButton"' }) + .WebGUI::Form::formFooter($session) + + # Append payment gateway label + .' '. $paymentGateway->get("label") + .'
'; } + + # Wrap in admin console my $console = $admin->getAdminConsole; - return $console->render($output, $i18n->get("payment methods")); + return $console->render($output, $i18n->echo("payment methods")); +} + +#------------------------------------------------------------------- + +=head2 www_selectPaymentGateway ( ) + +The screen in which a customer chooses a payment gateway. + +TODO: Template this screen. +=cut + +sub www_selectPaymentGateway { + my $self = shift; + my $session = $self->session; + + my $cart = WebGUI::Shop::Cart->getCartBySession( $session ); + my $i18n = WebGUI::International->new( $session, 'Shop' ); + + # All the output stuff is just a placeholder until it's templated. + my $output .= $i18n->echo('Choose one of the following payment gateways to check out:'); + $output .= ''; + foreach my $payOption ( values %{$self->getOptions( $cart )} ) { + $output .= ''; + } + $output .= '
' . $payOption->{label} . '' . $payOption->{button} . '
'; + + return $session->style->userStyle( $output ); } 1; diff --git a/lib/WebGUI/Shop/PayDriver.pm b/lib/WebGUI/Shop/PayDriver.pm index 76e2aba4d..b5e88fda4 100644 --- a/lib/WebGUI/Shop/PayDriver.pm +++ b/lib/WebGUI/Shop/PayDriver.pm @@ -118,8 +118,8 @@ sub create { $class, ]); - # Set the options via the set method because set() will automatically serialize the options hash - $self->set($options); + # Set the options via the update method because update() will automatically serialize the options hash + $self->update($options); return $self; } @@ -172,8 +172,8 @@ sub definition { ); my %properties = ( - name => 'Payment Driver', - fields => \%fields, + name => 'Payment Driver', + properties => \%fields, ); push @{ $definition }, \%properties; @@ -254,6 +254,41 @@ sub getCart { return $cart; } +#------------------------------------------------------------------- + +=head2 getDoFormTags ( $method, $htmlForm ) + +Returns a string containing the required form fields for doing a www_do method call. If an HTMLForm object is +passed the fields are automatically added to it. In that case no form tags a returned by this method. + +=head3 $htmlForm + +The HTMLForm object you want to add the fields to. This is optional. + +=cut + +sub getDoFormTags { + my $self = shift; + my $doMethod = shift; + my $htmlForm = shift; + my $session = $self->session; + + if ($htmlForm) { + $htmlForm->hidden(name => 'shop', value => 'pay'); + $htmlForm->hidden(name => 'method', value => 'do'); + $htmlForm->hidden(name => 'do', value => $doMethod); + $htmlForm->hidden(name => 'paymentGatewayId', value => $self->getId); + + return undef; + } + else { + return WebGUI::Form::hidden($session, { name => 'shop', value => 'pay' }) + . WebGUI::Form::hidden($session, { name => 'method', value => 'do' }) + . WebGUI::Form::hidden($session, { name => 'do', value => $doMethod }) + . WebGUI::Form::hidden($session, { name => 'paymentGatewayId', value => $self->getId }) + } +} + #------------------------------------------------------------------- @@ -269,15 +304,30 @@ sub getEditForm { my $definition = $self->definition($self->session); my $form = WebGUI::HTMLForm->new($self->session); $form->submit; - $form->hidden( - name => 'paymentGatewayId', - value => $self->getId, - ); +# $form->hidden( +# -name => 'shop', +# -value => 'pay', +# ); +# $form->hidden( +# -name => 'method', +# -value => 'do', +# ); +# $form->hidden( +# -name => 'do', +# -value => 'editSave', +# ); +# +# $form->hidden( +# name => 'paymentGatewayId', +# value => $self->getId, +# ); + + $self->getDoFormTags('editSave', $form); $form->hidden( name => 'className', value => $self->className, ); - $form->dynamicForm($definition, 'fields', $self); + $form->dynamicForm($definition, 'properties', $self); return $form; } @@ -362,6 +412,33 @@ the C method. =cut +#------------------------------------------------------------------- + +=head2 processPropertiesFromFormPost ( ) + +Updates ship driver with data from Form. + +=cut + +sub processPropertiesFromFormPost { + my $self = shift; + my %properties; + my $fullDefinition = $self->definition($self->session); + + foreach my $definition (@{$fullDefinition}) { + foreach my $property (keys %{$definition->{properties}}) { + $properties{$property} = $self->session->form->process( + $property, + $definition->{properties}{$property}{fieldType}, + $definition->{properties}{$property}{defaultValue} + ); + } + } + $properties{title} = $fullDefinition->[0]{name} if ($properties{title} eq "" || lc($properties{title}) eq "untitled"); + $self->update(\%properties); +} + + #------------------------------------------------------------------- =head2 session ( ) @@ -372,7 +449,7 @@ Accessor for the session object. Returns the session object. #------------------------------------------------------------------- -=head2 set ( $options ) +=head2 update ( $options ) Setter for user configurable options in the payment objects. @@ -383,10 +460,10 @@ flattened into JSON and stored in the database as text. There is no content che =cut -sub set { +sub update { my $self = shift; my $properties = shift; - WebGUI::Error::InvalidParam->throw(error => 'set was not sent a hashref of options to store in the database') + WebGUI::Error::InvalidParam->throw(error => 'update was not sent a hashref of options to store in the database') unless ref $properties eq 'HASH' and scalar keys %{ $properties }; my $jsonOptions = to_json($properties); @@ -407,4 +484,46 @@ a GUID. =cut +#------------------------------------------------------------------- + +=head2 www_edit ( ) + +Generates an edit form. + +=cut + +sub www_edit { + my $self = shift; + my $session = $self->session; + my $admin = WebGUI::Shop::Admin->new($session); + my $i18n = WebGUI::International->new($session, "Pay"); + + return $session->privilege->insufficient() unless $session->user->isInGroup(3); + + my $form = $self->getEditForm; + $form->submit; + + return $admin->getAdminConsole->render($form->print, $i18n->echo("payment methods")); +} + +#------------------------------------------------------------------- + +=head2 www_editSave ( ) + +Saves the data from the post. + +=cut + +sub www_editSave { + my $self = shift; + my $session = $self->session; + return $session->privilege->insufficient() unless $session->user->isInGroup(3); + + $self->processPropertiesFromFormPost; + $session->http->setRedirect("/?shop=pay;method=manage"); + + return undef; +} + + 1; diff --git a/lib/WebGUI/Shop/PayDriver/Cash.pm b/lib/WebGUI/Shop/PayDriver/Cash.pm index 1fe9067a3..fd24194a4 100644 --- a/lib/WebGUI/Shop/PayDriver/Cash.pm +++ b/lib/WebGUI/Shop/PayDriver/Cash.pm @@ -20,30 +20,96 @@ sub definition { %fields = ( sendReceipt => { fieldType => 'yesNo', - label => $i18n->echo('sendReceipt'), - hoverHelp => $i18n->echo('sendReceipt help'), + label => $i18n->echo('send receipt'), + hoverHelp => $i18n->echo('send receipt help'), defaultValue => 0, }, + receiptSubject => { + fieldType => 'text', + label => $i18n->echo('receipt subject'), + hoverHelp => $i18n->echo('receipt subject help'), + }, + receiptTemplate => { + fieldType => 'template', + label => $i18n->echo('receipt template'), + hoverHelp => $i18n->echo('receipt template help'), + namespace => 'PayDriver/Cash/Receipt', + defaultValue => undef, + }, ); push @{ $definition }, { - name => $i18n->echo('Cash'), - fields => \%fields, + name => $i18n->echo('Cash'), + properties => \%fields, }; return $class->SUPER::definition($session, $definition); } #------------------------------------------------------------------- +sub getBillingAddress { + my $self = shift; + my $session = $self->session; -sub getButton { - + my $addressId = $session->scratch->get('ShopPayDriverCash_billingAddress'); + if ($addressId) { + return $self->getCart->getAddressBook->getAddress( $addressId ); + } + + # No billing address selected yet so return undef. + return undef; } #------------------------------------------------------------------- -sub www_collectPaymentInfo { +sub getButton { + my $self = shift; + my $session = $self->session; + my $i18n = WebGUI::International->new($session, 'PayDriver_Cash'); + my $payForm = WebGUI::Form::formHeader($session) + . $self->getDoFormTags('getCredentials') + . WebGUI::Form::submit($session, {value => $i18n->echo('Cash') }) + . WebGUI::Form::formFooter($session); + + return $payForm; +} + +#------------------------------------------------------------------- +sub getCartTemplateVariables { + my $self = shift; + my $cart = $self->getCart; + my @itemLoop; + + # Process items in cart + foreach my $item (@{ $cart->getItems }) { + my $sku = $item->getSku; + $sku->applyOptions( $item->get('options') ); + + my $itemProperties = $item->get; + $itemProperties->{ itemName } = $sku->get('title'); + $itemProperties->{ itemUrl } = $sku->getUrl; + $itemProperties->{ itemPrice } = $cart->formatCurrency( $sku->getPrice ); + $itemProperties->{ totalItemPrice } = $cart->formatCurrency( $sku->getPrice * $item->get('quantity') ); + + my $address = eval { $item->getShippingAddress }; + $itemProperties->{ itemShippingAddres } = $address->getHtmlFormatted unless (WebGUI::Error->caught); + + push @itemLoop, $itemProperties; + } + + my $cartProperties = $cart->get; + $cartProperties->{ totalPrice } = $cart->calculateSubtotal; + $cartProperties->{ tax } = $cart->getTaxes; + + # Include shipping address + my $address = eval { $cart->getShippingAddress }; + $cartProperties->{ shippingAddress } = $address->getHtmlFormatted unless (WebGUI::Error->caught); +# $cartProperties->{ shippingPrice } = + + $cartProperties->{ item_loop } = \@itemLoop; + + return $cartProperties; } #------------------------------------------------------------------- @@ -52,5 +118,106 @@ sub www_displayStatus { } +#------------------------------------------------------------------- +sub www_getCredentials { + my $self = shift; + my $session = $self->session; + + # Generate the json string that defines where the address book posts the selected address + my $callbackParams = { + url => $session->url->page, + params => [ + { name => 'shop', value => 'pay' }, + { name => 'method', value => 'do' }, + { name => 'do', value => 'setBillingAddress' }, + { name => 'paymentGatewayId', value => $self->getId }, + ], + }; + my $callbackJson = JSON::to_json( $callbackParams ); + + # Generate 'Choose billing address' button + my $addressButton = WebGUI::Form::formHeader( $session ) + . WebGUI::Form::hidden( $session, { name => 'shop', value => 'address' } ) + . WebGUI::Form::hidden( $session, { name => 'method', value => 'view' } ) + . WebGUI::Form::hidden( $session, { name => 'callback', value => $callbackJson } ) + . WebGUI::Form::submit( $session, { value => 'Choose billing address' } ) + . WebGUI::Form::formFooter( $session); + + # Get billing address + my $billingAddress = eval { $self->getBillingAddress }; + if ( WebGUI::Error->caught('WebGUI::Error::ObjectNotFound') ) { + # The stored address id is invalid, so remove it + $session->scratch->delete('ShopPayDriverCash_billingAddress'); + } + + my $billingAddressHtml; + if ($billingAddress) { + $billingAddressHtml = $billingAddress->getHtmlFormatted; + } + + # Generate 'Proceed' button + my $proceedButton = WebGUI::Form::formHeader( $session ) + . $self->getDoFormTags('pay') + . WebGUI::Form::submit( $session, { value => 'Pay' } ) + . WebGUI::Form::formFooter( $session); + + return $session->style->userStyle($addressButton.'
'.$billingAddressHtml.'
'.$proceedButton); +} + +#------------------------------------------------------------------- + +sub www_pay { + my $self = shift; + my $session = $self->session; + my $cart = $self->getCart; + my $i18n = WebGUI::International->new($session, 'PayDriver_Cash'); + my $var; + + my $billingAddress = $self->getBillingAddress( $session->scratch->get( 'ShopPayDriverCash_billingAddressId' ) ); + + # Create a transaction and complete the purchase + my $transaction = WebGUI::Shop::Transaction->create( $session, { + cart => $cart, + paymentAddress => $billingAddress, + paymentMethod => $self, + }); + $transaction->completePurchase( $cart, 'CASH', 'OK', 'Cash payment' ); + + # Generate a receipt and send it if enabled. + if ( $self->get('sendReceipt') ) { + # Setup receipt tmpl_vars + my $var = $self->getCartTemplateVariables; + + # Instanciate receipt template + my $template = WebGUI::Asset::Template->new( $session, $self->get('receiptTemplate') ); + WebGUI::Error::ObjectNotFound->throw( id => $self->get('receiptTemplate') ) + unless $template; + + # Send receipt + my $receipt = WebGUI::Mail::Send->create( $session, { + to => $session->user->profileField('email'), + from => 'martin@oqapi.nl', + subject => $self->get('receiptSubject'), + }); + $receipt->addText( $template->process( $var ) ); +# $receipt->addText( 'Thank you for ordering' ); + $receipt->queue; + + } + + return $session->style->userStyle('Thank you for ordering'); +} + +#------------------------------------------------------------------- + +sub www_setBillingAddress { + my $self = shift; + my $session = $self->session; + + $session->scratch->set( 'ShopPayDriverCash_billingAddress', $session->form->process('addressId') ); + + return $self->www_getCredentials; +} + 1; diff --git a/lib/WebGUI/Shop/Transaction.pm b/lib/WebGUI/Shop/Transaction.pm index eb7eefca9..62b3ee045 100644 --- a/lib/WebGUI/Shop/Transaction.pm +++ b/lib/WebGUI/Shop/Transaction.pm @@ -91,7 +91,8 @@ The extended status message that came back from the payment gateway when trying sub completePurchase { my ($self, $cart, $transactionCode, $statusCode, $statusMessage) = @_; - $cart->completePurchase; + $cart->onCompletePurchase; + #$cart->completePurchase; $self->update({ transactionCode => $transactionCode, isSuccessful => 1, @@ -372,7 +373,7 @@ sub update { $newProperties->{couponId} = $cart->get('couponId'); $newProperties->{couponTitle} = ''; $newProperties->{couponDiscount} = ''; - $newProperties->{amount} = $cart->getSubtotal + $newProperties->{couponDiscount} + $newProperties->{shippingPrice} + $newProperties->{taxes}; + $newProperties->{amount} = $cart->calculateSubtotal + $newProperties->{couponDiscount} + $newProperties->{shippingPrice} + $newProperties->{taxes}; foreach my $item (@{$cart->getItems}) { $self->addItem({item=>$item}); } diff --git a/t/Shop/Pay.t b/t/Shop/Pay.t index fbc8a03ed..cff4ee13e 100644 --- a/t/Shop/Pay.t +++ b/t/Shop/Pay.t @@ -169,6 +169,8 @@ throws_deeply( sub { $drivers = $pay->getOptions(); }, 'getOptions takes exception to not giving it a cart', ); +#TODO: Check th crap getOptions returns + ####################################################################### # # getPaymentGateway diff --git a/t/Shop/PayDriver.t b/t/Shop/PayDriver.t index 70ffab7ed..e2393e168 100644 --- a/t/Shop/PayDriver.t +++ b/t/Shop/PayDriver.t @@ -71,8 +71,8 @@ $definition = WebGUI::Shop::PayDriver->definition($session); cmp_deeply ( $definition, [ { - name => 'Payment Driver', - fields => { + name => 'Payment Driver', + properties => { label => { fieldType => 'text', label => ignore(), @@ -109,11 +109,11 @@ cmp_deeply ( $definition, [ { - name => 'Red', + name => 'Red', }, { - name => 'Payment Driver', - fields => ignore(), + name => 'Payment Driver', + properties => ignore(), } ], , @@ -299,7 +299,7 @@ my @forms = HTML::Form->parse($html, 'http://www.webgui.org'); is (scalar @forms, 1, 'getEditForm generates just 1 form'); my @inputs = $forms[0]->inputs; -is (scalar @inputs, 7, 'getEditForm: the form has 7 controls'); +is (scalar @inputs, 10, 'getEditForm: the form has 10 controls'); my @interestingFeatures; foreach my $input (@inputs) { @@ -315,6 +315,18 @@ cmp_deeply( name => undef, type => 'submit', }, + { + name => 'shop', + type => 'hidden', + }, + { + name => 'method', + type => 'hidden', + }, + { + name => 'do', + type => 'hidden', + }, { name => 'paymentGatewayId', type => 'hidden', @@ -400,19 +412,19 @@ TODO: { ####################################################################### # -# set +# update # ####################################################################### -eval { $driver->set(); }; +eval { $driver->update(); }; $e = Exception::Class->caught(); -isa_ok ($e, 'WebGUI::Error::InvalidParam', 'set takes exception to not giving it a hashref of options'); +isa_ok ($e, 'WebGUI::Error::InvalidParam', 'update takes exception to not giving it a hashref of options'); cmp_deeply ( $e, methods( - error => 'set was not sent a hashref of options to store in the database', + error => 'update was not sent a hashref of options to store in the database', ), - 'set takes exception to not giving it a hashref of options', + 'update takes exception to not giving it a hashref of options', ); my $newOptions = { @@ -422,7 +434,7 @@ my $newOptions = { receiptMessage => 'Dropjes!', }; -$driver->set($newOptions); +$driver->update($newOptions); my $storedOptions = $session->db->quickScalar('select options from paymentGateway where paymentGatewayId=?', [ $driver->getId, ]); @@ -430,7 +442,7 @@ cmp_deeply( $newOptions, from_json($storedOptions), , - 'set() actually stores data', + 'update() actually stores data', );