From 2cc86c0bfc103643166becdeb4e93e1bbee2829e Mon Sep 17 00:00:00 2001 From: willemc Date: Wed, 2 Jan 2008 22:39:30 +0100 Subject: [PATCH] [svn r311] updated x4o for null value bug, and made sure exception come more to the front --- lib/idcanet-x4o-bin.jar | Bin 76629 -> 81305 bytes .../vasc/core/column/VascColumnValue.java | 7 +++++-- .../core/ui/VascColumnValueModelListener.java | 4 +++- .../idcanet/vasc/core/ui/VascValueModel.java | 16 +++++++--------- .../vasc/core/ui/VascValueModelListener.java | 5 ++++- .../column/BeanPropertyVascColumnValue.java | 6 ++++-- .../vasc/impl/column/NullVascColumnValue.java | 6 ++++-- .../impl/swing/SwingVascViewRenderer.java | 1 + .../vasc/impl/swing/ui/SwingColorChooser.java | 14 ++++++++++---- .../idcanet/vasc/impl/swing/ui/SwingDate.java | 12 +++++++++--- .../idcanet/vasc/impl/swing/ui/SwingList.java | 8 ++++++-- .../vasc/impl/swing/ui/SwingTextField.java | 14 +++++++++----- .../vasc/impl/swing/ui/SwingToggle.java | 12 +++++++++--- 13 files changed, 71 insertions(+), 34 deletions(-) diff --git a/lib/idcanet-x4o-bin.jar b/lib/idcanet-x4o-bin.jar index a3f65090202c66638674989997c42aa02efb929c..1a5c7aa3834bd4672e18a0517a21312195282662 100644 GIT binary patch delta 30266 zcmZU*1C-~^wg%d^ZQHhOcTd~4-TiC#v~5q@)3$9++qTU&|8wqn=ic|SvXY&uq*juz z_Rik5zsjE_u#9&w1SMHeFc_eJmcAwut^@>1sNTPOKeX`71b%fGb8m=S2#I!Sh?0bC zN>FYf2~K-+u*RV4}1eL|{nR|J+PEmRk}62>ZV-mH^@SPa{eBAPArr=x%=-Wc;5p zk_K>4A#e~d;v`9^cX$pgH%_^_HIxQmARxRXMQ9wrgnd5~65qfN&F-W|bwu>Nf}ltm zwWhLS!W}XlDCY|*4z|2)H@sqE#uHIII`OU5jLlUyi3PU31E2_)Vyp$5<46>wZa9%T z?1kq?V@Ju-q%SB>AtdTWq@H2dN;f{&%?Ax0qa9Y@wOg|TAb3*-GA$eahCF8>)* z69O>+(F3h-K&`SZ1`O%ls8}yCF|#Za&#_!Nvv^I=vZa*6ah32XrbGBxC7et|54@M7 z#_$Fab%c-uxyDRTK8_1z50%RZ0-f6;<#5iSu0$PLQ~w%Mv3B%Jop-7%+W_*3_WFFP z9nlP35bI_I#|l-#`-5nxIV3FztKr@?N!vGoLU?F0+!$4KwxT(5wOC6uak-J>PnjQF z1bLU-+!6Ak*o7v+c>SJWM|;^`4Eubw%u*g;Z0C?f_!UAiE;kyyi9LiFeoPnUBiQPl z?=r>g?m!?Aar7)?Xg0&Rm+Dh)A(ukLhhpaHA@h ztEDtz&ls~KjRSl3OG~r@lbEeLnzX`Uhr0b8Y=zqvyJo$TQ!pWW-N_X-H6GiH<9!VC zKivchh!xw7^A+f|=LZN75F>b!5;PjX)6UjUO~+x43C&-@f2i-wh9M-1N34uuNoKvh zSew<#&lRP%mBk$mS4QV{+antmG!>nCZ)3(ofY8UkNe6bNUdDyogylgLMDD0!=Z={| zZ~^x^QI~$>)xL^vpb;1@&D(q^y(*g8Lf8;J50g7(@}*51QVuN!8GMfip-~H<1t3zu-z z_b#Owab@js4l;^>z;lA!`^NxKrI@pY`urDSm}CpsWMwpzRU7z8ejjF9aIC1|N+8`! zhZiS?NxOv8Y5h2EXfK1$IZQQ|3ozncXgq|729bD#{iQ5Z)G23Es@}Lu9$Sv|)2lq< zO=nbM)A68(zWJTPn?yh(TBK&soZjh!I###bBKhK`YA0-oRIigA?;Rdc%&gK*X}1|X zGv5<_u5&F}|KTkd9L4F=_}+ZV$CcH}`Y@-;IF^}_LX-a*HI@pakN338)wV_32+xN| zv|k^PsG$i@70J$Z)0s=&Zu4u6-rD(BVUmx-=C1~~D1>tk9K~OAjq9yO2jPUV#Ca_S zc=_w#qHk|?xkSI=o%V46gHK@E7w-sa-hO%gr+s)gq4PF`FssTrOTR{x^+&Q5e+M8Qfo=>{GL zuprT-SDdAKJ#jKh`e)Kji@l{(pJ65(;3+tbpx}>-aB9c|^>|iSZGR2t$ItV|F*xF} zr;HU%Rc7PNi{DhCdMS}o2x@9tQN^>M!D#~uL6e!dl=G{iK%sWM%~{dDqQsKWs$kvh zc)`!?N~+~brxu=GdFodtCPr`RFZD(hz-2v)L`tLeV+lXu+w}Hg7agV-~%d&)+*>90lr;o zG1Ts*?mt22R;;YFu>NR>Z}MkdD^zg;Ch8c6H$k~~gT%ZUYJ;MYmm2804v?cPeJ^W} zz@^2EGDoB1Tr$jq{6As9NCf?yb%dSeFOKO?)D!*C{tzYvE?#!nz<$$a#;?=DShIAaWQg}% zqn4=_4QfpF+9VA9Tsx{5F};Wi#%Xj3WE8@9&-3$>Pt)Da%%VnpT;}{7jpBSJ1&t`V zKZxN(yxL0ML&lgs@{~ z4A^=_R%G6mef6>gEVqU;@w6L%R0R(BZ`r|6TT zRB-V)Z7y=Cw9A`NspiWVOFX-_&!^V?H+&5eJUt*bAps5r8;GE!w#hy`)JB-hJ%-Yw zZ)d7eE<@n&(W-m>VUCh9fFwwptB`fr!11@kE%3)pY!ty#qV|L42LY^BE|0#JmO(8{ zh34kxXS}I~^2IJ(pytn`$95O|m?nG*%QU+OWpc}TAZ3D{u*Ygxq+J1<(Ji~ z5}EKe&9vtI)8T0qwgZ?#m|5}T5-DVtJOMN@r!Jvj zui+$CbWN!%tuz|J&1(IK$Q2F{h4qL|BfVT)HH?Zq@Zu+#DaVB@HTT`jY$}I z^9=ujXslpuQli%%8-K?Fj>==%?h8ik3w}6qVCUQl_cZs(xF)t{-`YC54YoF4Z}ec= zG2S@6D?Da))AG5Yd{W5!1pTjth=2v-e01YPn{RkR7J^35MRMb0d03xp2L%E;hDbuZ z!$|8!1;z!$sQIX({y_WIlUr%kqYX(Dw<)L34EU{W1s;U>v)~u>ELq9?NMqWRnbyk1 z)kWbv;^OJ{Q{2vChCh&?TIsR92mzKwJL_}Z@rKLvHQ)B<`?Da>)t+V_(m>TNhij$1 zqh!e2SYqXmsxXTv8qPfDQhV4Qnjj{nc*9m_G;R$*8R1JOv3}cE9fOt^0aVy7dz2<3 zHiKzBdzjc(H7q)&qp~Q<09;yBDrs}!u)yj5JBM^pR88L{&NKb%HU&k$D6L_u`iDWj zGu)U^2qPavlcO;dW20_(ek@Bg{_S?Fz01fVFCMx{x)Reg)BNGp1tB!)B2xr)STc2g z=M*R)h$(dpqodZ?m?2aVtLC&=#Ldsh#z(b9Z=n&-W$s>2@uh$q1pUWtd63P)4Yv{e z@-22bIjk9SYl6ei$9$BxAWp3M3<4c7vf{R8uZce`c#JSQiY_z)BbYGuNU`bop{agh zqKxh45xg5{-C>N(6OIv8ZV_;-77BhsbQ%DFtSE$5m@kW}^PowhI%8MXc7sYED{akK$X1HWd!1QK2x_gj27vS+^CMQjWKUES+}pXzFC zYQ=qOC(Y?J)}G}%@3|LGTqQ<|5I=4KWMl4R2ZZb&Xf0jK-or8b6*KS&VjtojY9En) z;GK+#e?+yMao`rsEY?MoEGSuK4#coyQHg9`x>jfNyvE5kuye-RREzW%%%Es42bi4@2cnK;T}C)wFHBstylgRZym=0{nr(l#}foboLBPs(FAR9A*U5G{?&tBLmON~env zv;~{^hIRtO!smQD#RR=opf8ocG++50(UM>ESC_>-0z;pBzR`Xuzd7rkD9vR7yK_2d zPxITk#^>&+Gnp&)zcvP8-(H0^Yn(nlAbL6}ifKxiN05&qVvOsLkt9;kpI>A3}iP>x|PcyN)#ZVv?O9e zM!@2qobNC5#1G0Oz%Mc=I1+4dVvhqVsb5mPM0H6*&>+Ip2xEDshAgNS6nNIR&5va* zOD5${v!08fP0-BMmetyJE#Y>5Hmy6FF5Row+bjRrS1)~bKY!0;M9gj?60$gKy>CAI z-0yAYd7||4c})k%GBxn7ZDXCCB1lw;?E|ht=Z3E=C#^SH9Un6d>FkH#(4b;xLRU8l z?QK_a6bFMgBVsOran+R2VxOKWh8}vKcBT#Y4N1`K)qD!19884r*kQ-3e*bY0N1^?d z5Yog;Tn2M6??Hs4(?Aq)j{j2}vPzT0bO>CPrL{`>61C!_NQo?2lZLBe90D4WS_oi4 zBEg+mxtt_-er0b%gd8cc2N8>;R#c!u85D#*M=$})IWC`^FS1ipp>F_}$gcd8q$$(7 zKR~kDmm+eP-H}Z`vt)@G3!ye5jLM%*d?nZfY+>=%@b~iFGvxCN>0Ah)@-Pl*E$XyP z?L&?+c8Csi1Ugm0j?}UFB^8(NZ)`Q(V532Xk)c@?y)P|xDQXr*PLXLiU$`!UJOSvHZq)3a zz5RuKsLykchB}cvFy+X$;!@E>&xNHh_@~bql@^WI56KZNKNzHFoq46_Ph>T$J-kaP zAJQd4*fOLE@#E$yozz1pR?C;uZElWBw4oxGc!zH%INu9fFq05+vX*r3_WtNfexn`d zTtNt(%GxlhepR0~XdW_NMhT#?CQkp9c`m{&X#T2CGuq4C;V3MrYrSf;in9(FcPtBd zpR5=`iaZjAzyQN|7`cvfmk!jz9JX02GiGh8y{5Rk+N7ApvJ2n*k-Fixp_fs?axaHW-VZTUKd1ywt6D(Q-dvw%%O8}| zzG}mseD6IjIC0!{63}31+(xaTSp-xgq)IXIv2o4DJoZE_%@oW6?=DQ`Y!gEwt?+ta zxj{854EOLtr?B8k-pP=x-f=zzaW%^WlY>5cZ%g?}8Hm{Nkx8=bC>QzcQj$_7afHh^ z?xnC~J^t2!1bsrIp$GsXSVwiTIwOk{GlP+eX?m=F6~7p{RSevdPF+4t#1wfeTpp*R z*F1L{5Jh(Yt>r8f>9iG0n~^mnD(t*^vY12V1&@hcZ!lv;wo7tsT??5Aua>Q<_eX6DlsOtTY)mn`-4<_)nE53{-$Ye|4jU0n^s>g-3Ga zIYq-*@Vay*^T5M5S$cvB@wj^eX}3_7nr<{JqatJmN1$8-TO~xMdeIXc8SI~p4_Ae8 zir>j(GJ6{R)cHO?(?$-xHLd97Z+pPretTI9VoW)nj zeT*KR!C3N&iqCbCI?tfPS0lCg5nej&3D$TP-B(X5%k?d}^=WP~TG!cRt2`#=AkcA& zZI)X*KIt&B6j2gI-BK<^5>K1yWQ_q!feY@bq{WS33ow8rYI9%tkPcop{U*onvx=Ea zPlTC-a?imRawkJ7CHxJdJVW(rdVn$>N*-Es@R6CCNz&t0U-1MJ`duFJ$ zJL)pXGqeD4vpjRXTJ(eaKLR9h>KzuR=U;KH7V7e#l_n1OTtZ=M&m3wx<53OBb zc8f_tSGuDer3OK0^JCb-K(d2W0eI`39xjM)lLJ7?&ULycCZJ^JHUiwhakN9BW@B9Q zniY-3m>W_|M}hqPJN<=LU?+X-3}psuc(@4^{G*@(nGnCds)zw~>LooXkTp_Mm`1gg z6^p>MrR;OiK0!-MZG>vEA%i%StsWomjKd1i_Ey3N#9Yo6_7P#tRi$_tDOgpFZK;xZ zZxC={yPEE#oy{#&t$^=YEG7fb+~6~k>)C(CSuE%InU$Ok5dGBfp~6F0wR>@mlQXU| zYrNW+&<^gY=$JX%>N_K7#xa?`P@T%8K&Qx+5U;}{SB1|=>?AcaD5%QOSV^|p+t;%f zomh))j$Jru_D!P)U%f!qXTWS3HtyuRJOhwQ0zB@l4>y$Oho+eciRr;>L5k#JnaxVt zalJCMFX=F|-?<(mwv$alm*qHDp*7Uxsd_1&)b&w+bu7N*i)fg`YJBIBRo{=$PxR1Y zMNwI5++X3JW%OC!_!I-BgiXqOYr(FdM1enpi8!f;7Of@Y?D{pcZE`(|_7zphSppCd z*wUoB*l^~BR;oZ%72>@*xtW7`)JGTHxVe9SVXn$p+v|n;%k>>49>0y*_z#f1q z7sh2%$%oPHa;1hT!KBaAb*6iZK+9&4>J{3hb6DinGp3k@W$&TwU#O~Tt1;3k1=mYz zDD_Nc(HzIU7yU_2=@+^mRu7JKfC7-eQFv0X7WJ;naq9_G6L?ff)qHD zr(n0h&2Hdrl%M|PR^_M|EGbYaqt!UFcV`>B?Byd$*Umaf+#}XZQ|o3i1Pd7GD=fJ> zEys*C4RrsV9L*+^;C*FzhueRCxFMSIjW!^#Y9ym6$T4{7k*mOdRT=z~T6x#aNyYag zUBhRk)`|w>Jp>u`hqzyTY?v-}x>|6_MY0}Tv!SBmbY1?{?B`_QA9dlFI9-_ z+KtLiCubdEz~qZ)?ef6PovUkoup+vhY!S6&I%jRzmj)u7Ns)x=WyIw8$@z+U7UpI` z8@G6E_I5dk`)YOdJ<)P_WbCEZGO5)|oA=uE0Ai@?opzz$LRH(C`;0^cX-79HFh=(-60I839{EM{ciK-434jnSwd*`k?(EI&;OBr3?i9M`OXAj}Rue zp#1$%N4#P_;?kPj&J@IzrOX_Yh@{~b3igEQaSeBnvb|{~2Qol9R&;{npIu!A#R{#p zs@#!Wa{HFG-`i(h?vqt;<>9IIi-onhp+gpiSpOqr6>F?D>1#oZK)tj9IlKn1?XpXG?*-n_%qJdW#9xN2px`c)>q(YfR|` z{jdT-HTk1iK^9Aj%(3(aR#3|5w|Sy--Gk&RafhFXlidJ|{E)%tQlEVX)`C{kBB0;o z?3zVhTFL&nUXR8sZ%m-;(C8Fuf;h;1AYye`$A-|$lrEb==}Y~!_>CKLds5n@u^~rF z5yBT_kZEr*L_Y{$18jKIB2_rHQ>^a!o88}be2?>e9qu0bpNOk!aEFS6N*&E4BM1M4 zR1prd<4^&5|2)crk7IR%*u~tHh#2&_+?3TK8|?NyV9vK|Ilhk|n*Hv&{Jpw$`)%Hl z_r#sGgs>n{yTkcW8l?Y9A)yF#%#t}>m^WSeDJbc4HAJB+6dm=`iJ9LSy4s)GecxF` zF9^1+JNozX4h-K<+FPiae$-YR!9GmsPi>VRgq{Jw;|r*L?|Lirwc{sdjo@I4%1@m} zgCERuCpo6B&SsLwBp+DsH)fZA4qH(@l&2e9|hy7X#M6erD>)v~ry6cRj%&rIY4&NnjR{C6V z6qX+Wy9$whn6V^T*rqDs9b->l(L#FJGA%=%y0k?a+k?L`Y(lKeqnd;v85|qwH8L=4 z&efCIY|vK~#Y#3{}0c zL;^7Q;>@h8sXxfF`V}Q_T`*PHzJ>}4=A5BENwQ{Z>!Clr(R#*+9^TOk45CRN%sC1K z%~8F5(7tnoPrA?wI2)klafb~+M7f%mq&MFa(eE5+!b=zboI6&!CEl{*?q9#Fa<`@e z(2+d@zx)!69{kvL!(B(?W(R(DgE2A}`j7LyWBUiB-O`YL`*qSt?y_@3)J75ZB;$O@ zVC=wajbE4Uw#@fks7_bcZJP6@&EDVsFi%DDuaCvRtdj`=Wjl1N9}Po6uOhKuGUvtO zbCeB4i;x5to1=y+V1WVL1bFJK5RR(>S}Nm7-8yhn?}#TCz^(5Jf6@OSUa;cPAj>dH z<7ukGO9IKA#7Wpkj2+8nu+u6>iI%~Sp}LneHBt?%HB`fZ&5R8Dz5IiXhSKJ}eg|D+ z^v;O;k>i19LVW^DU1#HTG8SJI2(&3lpuNMn6Mi(Wn^)}g;kZ&)NrlS;~%EQdK&cJ^xOYM~xU zE-E3(TOJcVwPEoqsWnw=?$}|qLw^6`tTv5o*{n;UtK`o(b@zV7=5_fz-?%N?@R19g ze)?=Y!X&N`Lv-wt;`Bsge(xM4C+U?tS`i<0N!6pq>nFzGaEBMq$c7#V7-QEXb;g%h zzqpSbe_SlreBG0^W~T6P{S!Odt=y){Y-34d)J{LmwE1JqKJv6B?C>0&CAnE=tZx8x zW2W7pZ&)yA%oo&t2%pNu&Ry@gJt5DbO~81D+9mJw%Hx?5HpO$*KTxo~>LY@D*Uq>{ z^ul8m_ItA6lE3)|@i#gEu+Mc%3>gw9^=Puu2hk8Geguw@!s+!?gY^<0dSF7GigG)S zMxCOym*CAUf-z2}MUqsk8k>mEw@R(*)t5JXp0C(F(v@af(n*|h7x3lV9u;vNrp*2?UW=VNJXy%{?s+pOt2hn48b;4@^OpYGG(Ndro>J^ zZA8leF1DvYXdtCEbw?jN6*;{o3%|SAK8>_|WOMSDyO2bib{Omd zG`4762Rv`YExqR^G#>4CiG7KWfpc+|q`b@sW!t>=?0#sh+MuF}u}*vNVzcHa&{(?6 z6!u+mrow?0f3quhLjvPAe8}e^@2PT$u16~ny1fPEIS{Phu zy`KR8EA8|*UEZL~Yz*>Gdb^>S)fNT11r>f#utke}HvNYy2;K};;F~yg8R4&6EVUZ-+D-X`X=t-h=U}>WU zx8)eVNR1#gQd_kkz}pp#X~w4CV&3;>?R)7^G1&*Mb6;s$8>mYh_*M2h^4tTHDbweO zb1qKGT#a$-8*`;vI%Nh0vhh=|gD>Opv5ygrGSy5{$K2$f&JQTh$FjlKOv!8HIg4N6i}Tafx1=uT|o1 za*$ut1J2s!j!s*KkfN2d=N%J`4!*_DxMCDVF|1Q{S2pjj|13`F6n{aWeOtI@4`DrS zQy>?l7%BcTnxvXOeZhO!co@fMgtNfaz2hx#U=vXoNP~-@Kwr$%8UPQ=y@WKlq3@vT zq+(!sDCVDejK03sX=Z{dBI{6w+s;RZgCEet0z?^sq%GcmTk8Zb9fjPzXpfl5EyV90 z);mVR4aDf4tEqGCE1P2f3R4Ogj>htK5+70b6}?Wynu(MNO&fHtsVuE{Xy7?Y_E2jt z;0U`PrC#J*1ofiqVIL0SE>M3p<(hBQI{AcPvuhOT{93}o+P$(*kB!W7^Q$Fd(6VNG z0u){DNv!)^C5m@OmoZ_nnd_WFmV|y;ok(t=rT4Q1LQn9C83t0436f8+ z!tHa`f5pOm1q|j1mrDmJ2G|t8wMKaHSf&4R*yYGc76$Qf7Go z0{TZgiDaNa|D~Of)sk}&NzC#FfNJ`~1w>QykW`w=pgeFCwP?g992+KzH>S;;#i2|4 z90lo5>MxKyuY~-Fy`%`iaZis9B_w!6j?>BMHjium=gHN)9svNjBYY)}G2AmyGRLx>&n7zjZh5KhU6_)Hz+Ubpj23bZ0mh-_Pu5BNT2zQBK$Ettw0${M zhLPdwEnd_3Y#O62)8O@cv(zudV4gST-gs)>+_FYocH+GIOj;~wv+cbrh%^Pq*xpv} z{YET;~#|x95bB59ld?~Mr9Uc0vXgYbC7bFt6mv< zagnMGt#D`9U8wVmj1G4V;5D677CKs0+oi`Nv>8odzbcG1gmCPS6G9Rh(jU|GsWhLi zyhV=CVwuqW_%P})Tf`a^%-Wh=5YaCK57Zc6CMA#sxFks`9Qd!T8(*`QT7{HJ z?ifV(yi&H|yJXd%0AfwaNR6&6A)icl7Cv#4(OH*lh1K7a9O#HJJ-Oc@y7so1sLU6; zzHKj{r;JScM+{enN4Vg}Pl0;^zoTg3w(DMiQ6We8=`cK;NWRq&?FE6+J!?XyZL0LVv8loW{9Dh(EBF?J&sfE>0MA;iqi>H(Bw|cOz+osig2P zfq@qm2#D@4K?^fUNC^j^qq;7E_O+yB8iFH)#9);vB%)#qg#b1Ww$Qi%LVT1M&vP(O zVdKO6s~)^w?v&rb?@H%=>6FpZLR)2A4j=?jE43gO4`56`wUk)n=XuY$)_uD8y1zC6 zfMN~Pf)j^TTG3*%vRLI}D%g4~MnbcqX0fw2l#E7nHW=&hN=N`!V9v0O58G>0Y+2MD zZFAjaFqqlWH8^M?k5RIG!$%@xjfRURM=eaCpAE7bDWW@fH;l^8HNffNrWi8Epv~3}LW3ai?ciiIxMcY#vDV&6BSdr5M<{}w&@JZ5 z^Mea2ad6@FPRs$8WceYAeq}v))Xs^#Q_!T0sgZ5TzX@-XrEMQVQjW|M*Tb^k`@Jm& zsF)ro71Dq~>>0T>7!d1uIWYC3qSR|NN}&W74Qg zwgDO;A3_AM`-Vs}F0dNsV9HYpb?Ndh+%lD5vpJDr(3mrq?l6eTQd7d;w@NzK=^dEw z>T@`(8fRjPrKtGQKyNL__mYT8VhbYj!3+%Hyx|ZSr+8unof#@Wic)MADmQ37fUNg_&^a#>uX3gJGX z$lJ8gU~*Nbe$=Vg5D*C_jWUk@P%Z}=*n!JY_k|~wx06YBC}A=+k%Lx%r=4)zwd?~U zYBZEwu}_8zqb;6{*+@MF_m6Z0X~#{h@%s6yRF!10h!c0O5pU6|j_>j`_=m>XS(ed6 zCm0@3(Y_?&Wr4>f4{*XYA)~H~#Bsmj&Y_k3-I*D?DB&!t%@NEKZgD8B)(kjVL33z! zc9@Eh^Wxo7_odnYE^YF>I04gXigefBU_WSE(ei(Sm$rPEk5HBTff*Lx2|rtwJM1c& z??F0+LT2%B`LjC=#|$78b!Llb@g>F^11JOt5@#2-D4YiYG>+)**GiVohytk5nVcTy9Zh zJGqj^LQ%x7#6Y-H-UyfLElIi;U-wA8_|58BDd*v=3`{D{Lh`SI3<#u(%o2Ltm4E`s zB8Jv}eUTyYk@itWy_Kru_atBc@E(6R?VM?UcS_-u@^VrBp48c7@eII|rd$5$;6jVl zwuGPgh4a!OL=YSckDg>XfW}}10lN6;U>NJ0UAhXw|9l(3(h?@#*^2^KWtg>gmZmxM zyx8gAYw{rnFw6GtgnDsGEY$NAMpog!B|QZknt$8)s-`yZ+7AU-@4+vK#=_fQpuv!-nE)2t z*RpU~z_5D7v93B;raWgE-P3EZ)4+&ArtHgd+wy`N-LOuNS#GsqI%8%&J;}K}`SJ02 zNE=|ZaW^o+RHVhNK4ZCorm~6Epk`#c$W7|P*+s#|O{?KG7eBE<70E4n5JLS~W_AML zeH&M=7;_a~(@n}{7X2);KXcA3puo{FFUzT8A^C~J7NQ*P9afTT9~o-QK!4%GX9pD~ zH9p^3H)*%o=F_kJs>H|?UG#-%AGE7Ee8(W0xE?~y)lv}Axk%rzBMB>dj$?3K(Kl7q zUJ4y_VANQUQ@~7Xsv@JKh*?a8Mn4D89QRX6ZZFu{eH8=3H%&d}n1QCg0ACZ~idgW^ zCV3@ZXPVAWIw8t~>zZ5izfeJlSW!+O)PtLP-y`ogHvi-rLHhhb-kJQ20+XLraE~NL zK0-)aLY~s7H2KR2tY9ZdHBCS4DR@-o7NyQCJjD`=`GJ*92_kC4y>df7S`8Q=f(MV{ zR&?zGx`qLs%7-hIU0}aStpy~Cw!;4fPalFD{mMK(t4^+fmFAeSLgJcRBt{~t(@4_v z1IxSOC7anZQ2UT(z_R$Oa@L(SwXMP;iX$x*e-MlUU%S-Ok!Dsq;sj~fi9Y&VipBLt zt|Umuda%HfeF;&3s0Da(HeeIbLeE-xu(?K^nS`s}dkJUp7MouXs8t`?OmXC9fyQgO z!FL_i+*D%`g72}Vbg!f{@ap@p;JUD>NSWe(B=y#U^m0%U+_==y4_ud|64Hvu-WHkRRCxlVfP>}|p|oi> zce840RG6LH!Lj;|yg*XJWS$-Upq`M3>uHRTOJ5kur6&6ipZvAXVY zd*6UK*&4&t#t+(T4CC_k>hSgRb`JV*8Wbl-q&c9%qz~bl@rc`G`xE9IZ&Go71O4}# z{@3l~Y#(cBAk>WfcZ67_jRp0uP;taq2<%@1j71ypzl32+;(wQ%*_QshB-vgL2Hxo} z^SXjf`f~LzMVd0{(o+hcXM-w?#_!QEw#FXAy!Q5qEJ_|RRGc4F0#>YMAc9Wgm1i5~ zI&R)#OHnK++oy6O3J4IC>1^n*XJbb5OK)=#oX%i%xqc=*#sq4fbu>iQf1g`X6*UM^ z@u6fSQG{@&6TR%hm2;)@?aF$~6Qdhenee29i8GsogybmjriulGV*YeI@WaECG2o>_ zZca^LASbON_=LHtBVP1oJ@dn_bX+7(ZdNaIO;fULegpHN#F4=SuS%^0@c<98G2?3O zZ!Q&SH7YH&``%8(;`s^G_1a5eVv&WI9Io6 zT5f6JO042@2iyP(+SDv5elKKQOO-ZZk+gPDcJs~Cz)&Jwp>BP+OgMuCC8499rJa$g z-6=eaGv(Mk%I)~G#rVDIXK?U$HNwxphw2?eQ{B+q)lU-L6s`Ln?e2Wi_^jhmHrv0$ z9dhLSx=Z1QRo|kG2FHnBF%$z`UZpMlQ??7CV^6olLJR(efLN>1E4a@a9O z&>yLW+c>nIP;1HiB<_>{#fW`RW2C8A$pYcR632qMJ&ZrSIYr>fXylj0m)FK|{OF3> zJYvOR(QpHVnA906naysXs@O>>_sWl*gfcXEiSxp@57_CfA8W?;~ zK;b90w zBJ2J1d-u$}Z{E9~!RyR@8t}tj9u5e|`}~vK{CH7J_9?~j)0#A^&2&0|o73w&c^@OX zkyq_Y&>k%sdx0HRa>{m#&Jqf`iq~cmXRInAOJR%KZAq>JM;pvrWA9`}I-lG|QE{R# zHQ89xwc1u?TFW$B#pZLvZFXGiDnN*7i<<$7$JAnyDyUUr1V?OHC|^E2ObYGXsX7en z+vWzr41Q$pFK+_8(P{yJPYx0Ye><&aHmij+44RF%I`dx)m@wHNX>C!yFfXyC~;#sEJF1m+b8Z)R$ z5@4R#q<+NbWU<3O?&-{h+Qa*R)fj|E#DaN`V?3FUPO%^B1~P;#(JXFleQ9(Oa9W?B zuWaIl#%BHgk>5q(t|hbC+Wu0UFdxbEblM934qj82U7+R`+&lNJ+9@YR?8o!wq_m?Q zA=t#m7WWd-9w`J!PK0pnL=LW^O;)>gIZ{6g8o4@iCQep$qiEI*5<0I+Huy4AzI%bb z&{R(r@@$UgKPvUWlyKdM<<&Gf17RHkp+a&Xp))Hd%Q9(I9VqLqF@HMeisgj1y@wvN z4pR1|(>Fj>O(ngJ-JQa@!q8lA{bhnj2}Xh;4Zm!TW^WD1C%8Qt+eN#YV-kLv_~9nE zr+*5Sk`e>H-H;yE(iusku3n1%+&9Zit~1{LhC}Nki-w)OWXSO_T3_oXw-2|T;ni(v zYLygodl=6{$(D`2(wY3!{3~TDJrt^*P9fZG+Vz0en0FrC6uDMKoz+tEqIdy*aNMa}J-X{WGyMvU(; zw0=?)eYyI(rkCmbN0c`q?W_1Vb*JbE?=3^gBK82by8UrP;2bi`!fRu%ygcS`MWuR# ze_rhKK4>&C_P)z&&?%QK#(-^?yOF+O2d1`*X__vexrWPEY9#y?8CVa!+q!aPQAjJJ z)QYfggv~ek(8jErhhWI$!J*v{r>2}n+b*tGb0h8^{alax^BjrZNJclWx0KCyo|o|T za_-j3Hw;*qzl#L-8GKKNHB^fm>Mb&E#|0!%4{;3cJt&rOPnOS_t47%|2Q}5lJXA9; z{_z4Z!P8Arx%i}=!eh&Qmz`36E*e`UrFiy|IXMrNG|pa?joK&fzES6*A;8#RPeqP8 zlOW2t%CVot(@iegEgtsw>Ca-d2=^gV9M_ml7cLvV76Mqi~{)%uUE?2D5okAx@t*Ub_ zky-lodi%Rbgt#lr8z=Se(kwyF@Eb0U<*D&8P+_(!+cba!)NVO>`jhfBz2%7iuXEM( zr&MyU^n()(0g)JlTj;VmBe(>X(SdWO*!ZOQ5lw>&MyICGZD|lLn%$yPyCxk zo82GQlx|tanRm7=7H7}%A6tN%;6`sc&HjPHi1u<60ew(h^}Q>S-^}1O6R=4ztzg6{ zedK6GKpxct7N-u_shtpBMlVH>Cck;z3qocLgt%JcJ+XIZMTU+PktRvHafnWrDvWyc z9abE`FhyY1O*zX9^9+A)i9$dBiYYC8Y|XRAWgA3;SXs0F30e7fJp$mVt$baEBJpL z!v=^j@qaso3O|qj?eK9%Li}40it7Hi02~7ijQsYOsSYgrzWw;u8F>0TwS_L}))O}k z2_G0HNhlTukfWiax*&um5G8d;F^fUvfgXw$@2I+nfktx@eao_dP3WtWS&T{{&m%p) z*mD#t*h_fm>5iIdx}Iogpzxgi+3m90U~zwZUAqnR8#Vkx&7yJcn!s;$ z^LmH|zQ@Tl^z}Q<^@(1hz%g2HdG#c1x5x7#^hz%OJ^R~5<2~c$|K%D zMH(Bn8jZiCE`OxXc_6JjD0FlvCfwnDb_l=1&p2xk$Ur^q)pLP-PFy zDXP4OfXDQ>#bBPsKE5O0qE!34Y=p#f5+gA`43cswcR6a@C>>VaEg%cM@dGx~WxgDd z^yzY=Q%|TI(BzCGqEVb~hdz>I*#7^SAd1lXwBxr;LdeaK+CTUhn*DiK>sWOC|EUt51!%eFOnyP*P24REbB@pRc)pxHtZ1X@OT|_|xY6$YZT*zt&+Aok zfL(^lWAed^Jq@e#QcWF2o}WDgf>UzX(23@a{OO&TA^WQIn1dwsux5BAwMa~J9)QVd z_=b2@&WUNap$?hll~aNs3cX{lNI3t_#@R$TSJ6-In=?$Z!hNE=&ShY5ga`BcVCBd@ z3<{|g@`E$Zfauu>>LpDIf&hvej?|J6Abt)Mz3Yuf0P_hZ2g41%8p|Jk&L;=^2{-Bf z0IoaJ*E!25_7K&oA7oZw5GW}k5Jo9d)2~XL*OwW8j+`BIPGSr7Nns29iq{;fW+XYP zw}R?Sh=BAA;uK6}@aqV@GnLIDpUi69k<2P~m;NtZDoAQ;_Z#*0`hoCY`ULgYHU9Si zzi`3}FtYt$$2c-q|6%`carfVtiSr+2NivLtOtMYF0;DL(%MJ)3`7JD!EY*^DKW6Ld z!sJdWYcm$0!)&#z6aP)#)a%ItvLOG7nX)ad3WNs(58+uI%(pw^W?DReMBzvpp+xs- z)ajy|@fMG!sTtagaTiY@^BR}YA)gSZYgT1Z3PiE!9(WYxivXQU8 zFNf^|>9X2>IC$zNJI_wlqP8@}G6c>_;M>*RL+LFxOPu)aGr!FXCfG~fsBN_!(ChmC zuPEZ5S-UGGj;jiP-$TY<<016F-USLk+|$I&(bdYqp25V{$i*cmzE1&!87b_WI>nN_}d3%i-H{sd|SBw=qjOLM5uFEX+xrW`Aa?hHV8 zx1a#<#@?iO*p5J=bT1?_Ivu>Z2a6%IY`RqN)1H4xBn6#W1^G}i^<|?4vX4BV4UM55 ztQeE0SXgd|Nz)IB3!cGqjf~15^gKkNq7`eY)(31g6^{v#cl59hHas86xi6POI`|lf-tcL5|7w z=9kZ!_tT%{4D}0}+WJuu0?5?89VGB6rm8~nb7c=Ee%&5#){$EWO?gak4EJs+oxTn7 zNl!|ub!6J+w}<~V4Pogo45}T?CQ^T4@c#?LKl89n9Fm?qG5)7tLjQlUNQs~Niv?P! zBC>_4m@<;9nQJL)Sl9`|z_6h)%U>*>%q;WG{pF~~ZQ4kjc0pg1hMSS3&`d6Vb+vRo zcN{N6@(?P?qrl z>MbNpQV~w?0(;vq%9ZGY&a_%-PN=BojqW=o<9o&+HU=PI#BKYDsX|E(pOcDa%+elB z6qFDeeh%?dgpOgRd9kCI1Wnv*TW5jU_m7xxG+q!^Kz*=l53oNq0vC4LCja=dJ&!eg zG9J{~2Je0=I@9I~Tppuf*=y;?68QRKuC(d8k0xfrOj}C&nd0r?wlwdhkQYlh`TNm& zo4?EFX=ynHxYqo&)d|9X8QHkbQOIty1rIhK|HH5m8zrXP{mgN`w6^_hg(>nq( zPJq;D>&!b4d;afOOoLOhJut%PKU(2|^ydB-j#{v!JbQxwz>ubh3k(M+R+U%m7edPx zFAg9f@(=R91H!~XL8KXu0*>j63keZ(uvujzFD9Qzy;o|-t_-xy@X{!gwaO6O`5Z^ z%&fFW+Qq7OQCy)1WU0WSz#^ZW@Li2PB$nzvv~xlb`~n2j*jOV)phaBLy&R6Zw%@;x z&)@e^d+DcjO`)zxGr)Y2l>5|}I+B2+wE9C}GNbM@O4y7di|xt*+Rii(Q(A+=k+Qoa zvP#|swQN7ju^=iTL5>4qYjD60D;@P_m8mfY-rVAd-l_hdwypv!%4h4d2uOE#cQ+{A zjdZ7UiiCu$ARt`}ECQmGG}4XI-QC?Fp_G8|z2M(_FZX^t56|w-`JFTKo;efm%$Yfl z``ggny!U~I6J%6+#=BEdsdU9f!x+My`6A}?{CZzs5%DpSgvfQxu5dtVX-^RP_eil_ z#A~#aHZ=Y!thGS5Up|(1z6FkHM!CD-aNd;R!Lh6}Rfeiq|kZvSRdREPF zrTpeDOpiSonXHmrlu_`efu^#6R5w|cezm$-J96c%t@BI+tjmwr}K5r)Jkbw=Sh@8x*ej4%wjXRl~=1ka8IwJUJ!?2Z~Ove6v7GG%S#^dCH9dH4kf0Jm2GYJ1;YO zUe$Ulw1|YHR&7|??O9L82(dCI+azCmt-KRyr_n|uBkRg=v?>h_hU8d+|}WK?nTcZo>z@hlvs z;>s_}NNq+>XhXuRd6K;UEcp+7s$R)we^bA*7cDYBA^zO@NNoYp99I#qz&7oVv{-QK;)Zo6re|yKMxCZi=}KY2 z_u=FEAUw(h<)-g=l=_NDG3iQg4I)%6C$=WA>QfuH6jaS1DLOPRiCNVm z-21gW`*l2xKl@8fb?CtVasJo=xT)niY90ef1K8cyBY=Ss{M$6pp}tfgJaCRK$}8Ln zyqm-R(kBf>CaG}x!}Xucu(4tDH5Onbf#py*6ej)*9f8yy>lZvYUe;Je)CR2fRTi(0 z@;Ln7R81gH&?&<2J(6bAs1&vDkXyni9xW&~*s0^GsA%Y6r}%xj(YOEM$yVC!{L9;y zgH1!PkEhvTAo{~70U7KC=i}hcCs|l3d=9#41yh~AJ~&ks6D9J@=7S1(A_dmzWD2rA zTAC_@nmA4NqbOnKieQn6q~Z@V=E*(sm7(l!88W&o{5T7|^`CoZ^ILV|RQa)&bl9gB zyPVSU@s)H8?4Vl6Y+xhUB`xM(Qe{d95R_w}zQscg?25@CJm}yI$w&fMNe316D@vnE zNx`f8Svp53~21vFn9Nq#2=pKM6by*7Kvd4C}7bFuX@>+T>0` zQmJbxv+=t->X72NXgF^i+sUlB_IP>j!KDuhJ^RrlsJZ;NhpCd3;ThI8M1$QPZsuLw zeD;$V?!KQ;V`{*I;d!%Qhfa@yBMa8Hb&H0DB_iFS2uM$`rMAP!fUHQ4NBypUq+BpT zE+^{V;io`FEw1iLib+|Xgw5|oeENqnd~Gj&L+4_{8H6XYBg0VJ3?VFb%#}~$HCoa(y(BbNzh8`|2q8m{=$ zb6>gQ;%L@|E!uH2O6dhh5}j!Fpz$*%ci3^H))%)SiONaPn2vp7x1eJ4C%41Vy-tp? z<{0daC@an}1J!6)><(PY*t_Ypt9yTD({knis(A8gnnQiSxe1a9mXz5TCDn!4>jut$ zsrsfF$hL_zo1#z(hUK1*p+g>QnPSS@4bGQu-6ptImY%Jv@`P79Mw|VnhrVE_dsYyV zxTf@2J;3)y1%7MA&%kaz*^clyxf7>^EC1Z}1Bf{BJGXGCEpP(& z8x3u5m*EC0dBB1N4t*2ZM7v?O(&>qfp0VF2#w{3CGdh~=dC3)m+#Q_WyF*{VTOqys zp1qJ->;&i%9)HB7Z+Ug`uD!@nG{E`AyL@VxsLK`{BN?vqgz=3x&D zVZ|wKPJATW_!~!M-_DqZ7as#DR{aZT@C!st;k@{vw_IJX-zfDDc2waZ{bKNT`pT6d z$2d?O_nKrHoN}}#ajn(T_9`gQY{g(q#*C!y0v&y>i$%hcy(mX6FJ?og);vd{@b`NX z^P7XNtmzyxf%IJ^imLCJR zj-J9VbykVt1~_jae_I~D63UwW`N?U(ha!wr{YZ%voc&YYVQ%JSHxvY~(b-qRK~|j^ zW9uv4S%?er6)kx$x{5vUdlpS6kZ?UKN_07^bPOtWu;_7YcE!ledlk*HWDb8-gPK@z zqLs;$z4JNs`)B9G@PM2PTIKlT$L0MMOA20!#!qg4^*D$(WmVPU@3&c)nVswx52TfZ z)LL#~g1K3TU?nsQ<~H67d>)ari>ox?Ug6a`H!{*29b1#G4Z+SyCRv>%Nq#@ z^(HBQ-{s-%c)`v!E>YhTnRI{U+-_JA=}w#V4QUgR+pJ|2lgq{z#hS)tr4gHm@3>^o zF+Rqv5`@$m$EF~Yk8JUTDPfcsm{DQ9_g0vbZwC*kyJ+N&mDa_NsbRcRje8&SMh!_O zROLiNQgmdSCaQ^ z_>i!dSn{}0&IOs$$=W>M8pDszE)qpa8$)U)49O`Vg)FaFHH)1ym>g$RP()qrEwN~_ z?AuT6ayFxkQSa^gtKBzeg;mZRUt#7)DP@7__RY;*)Mp>DZQG$h_fu90axbbg+4M9H z3Q_tbgra1!@kkRor}$TuZx-nd5VxG$X{WLf^}W8n*k{bpvN@XgM0)1jvCJo`bHH-$ zB3e$jy$~_^w2=p8E$Stxp6rc`OtEN7akM91k`PyUaLvSi2kg0FAjwbspOa4{d`Q>8 zbL}Y|cD7rNGWvRpVO&n6B18#Z%b5#vq#ML6A-JJMI}x|0WAhrz*hC1yKqACpcy6bDCD&i^9UU)6Z6H}x*H zoSVe$Ie#5@&DqLeQU8Jv_jx_H;nh(VxTycF5I060_uN(NVDHlunu@VR??w!<8&9790ubnMUg=2?#`$3@&^X-%M>b;^7jOp3l8^1a=(eMn@!+Cte3KG6I289uWW(Ovk*ypDLeYyK}pJ;T0Fv&kL@<$>1}j=7)G znFQx{q?XDxKKAW+d{lJ7n2vM4;(bhMf{9`N?LyQ9SF8o3&@PdW%c0P?u{VR;oOXCmxuYqwb9{-!#EAyYahByA-1(#h+gbDbu`P+}p?M@M63P0FQ1j^oOoO ziRgk2{G@ zw>VXfm8RLh<`y1@Ax+5tgdiUQ#KH3W*ETHZtRBT8L<{eq<=CPc7b2tPY4NID48#npFb(xUYJ?))% zO~^}Ig6-av>V9pdC#ZeXWsFbLJ&;2Z1&lPmzilh6anXVMd@IKa_OB)!t_we@?u9K2 zhQjNgDR)_;U%~reL~eyR6L~&!(X$|IHiP@9ZZlS2|B@0VJw)yJy?7;KQ>2v^V}U?i zKY!D8n>#KP9^o`Gc%W`%V?NVas3X&kpsTk;N+F$zh0Cbp6tRR0K9}90HXt>KuC2aE zP`ie5i5!V;vJmI9CI55x-V6_Vw+vz6n2jWw1+Bpg-?n!jkp}M z7>&`GA`#u=i@h0L>&VBSl>9ofBzB+2-lke{?kqd+x0vA5f}KeTODc%}MM%#{)bibD zQ%%_R0`?hxp_x!YgfHx7mFyxMdlj6u!c)82pMxmzUOucoC1CrqsG@?%HOHW+EIVlfm4hn z*fo8lM4WV7^`_H@rzF@$yUoH@imlYJOeQWzHkEWYxYtgvgSe%8&elKROZ3}`OhUOd}2U)SWke?o10Evys6@G_hRDFtzF&eV*{bsuFD&=K_$J|a!B)xO z;=00DZ*t5UL|#I0eZ>^S70!OsRX1kuH5?HkdPcVzJlwU#=|%CY+dDnzVoAU+G-mB1 z#j4^NqEtRuD)NWGVtdTb=*v$9J)>`dG5SR4(!S;q`b37QMfkQKpFwF(AfXIS?Sfdc zFufixoLbGBi{PPfw;i?vP86OQEx$9&^VN#+RH4?ki~S>tZN&}>GK&qwB{-57p(-=|poP~O-j z>UTr>@E5s@fO30`mK{5ls!9$lFQVVC+TpBY>nF1>S7wfuvCd4eEZ%(Vh3m&rFxaS(}uP6j*I5hKGTX{JW&^7?NJk z2sTs$Tm^4bIam{94j8GK!%Lf*dsTvqRZth@Q!D~kKv6xFkyfcq%jJC6c)uTgJz7Qi zEJ~RE8;$-3=XAf?&2D5md7%Hjkj+<~C4raL-)=6h;hRa_kg0|I5a zIL|gD-Kc-X*X{#b)XA8O;G~!4a5Uw%&VZ}4Yj$TF_J0_wNkk6oVz~r6Bjpx-Az&$A zXW6Di4PGp8F}UpUk(8TsR~C~CweL}pbevd7LXsXSmXu(~5O5JLSFef~^<@uFqD5U_ zh%e<2wn6wA!n1jp>>Ffs1D+;<%fTHK%o;avQ&5^6JwBE5m`m%nC5biK>!b|9Lj_}< z@V79_y2cHgCizPod<^=9i%|LeX1(&~X1a^JC9WkhI}UqVR9I>K z*J&%n^teV_C&kb31Y995E#~xo6W@5!3P4gV#XLD>E54sK(NEM0hhx_%m4uR>nT@68 zqjO;=OB=`_@ED2yP|?;a^44=$;I0GX#ZGF^caoZZkDg`;x~?6sM#SnFtgAj`g&D+I zl^B?o;Hy5OQT`~kN$TT(gqfs$lJPNi+O^O`L6rZk+u*fj#~^|Nk}-+(43FYECDehqEOpYku{*4Utvs*+Ijr&lPml$KwpNqCY5M6R)C&^E2N0R(*v56Abqy z!Oox^37C*&7iBvTQjWWZm11ALIUdnN(?ya?X6=7&pG-|keTshEErI!-uJQJl$WH?0 zOI&(SWE>GeYr%<6Vx8KV$EKVeYce;JWkJx|x4KUkTio)@$_C3bC5^Hojw>w=Y6@_)J-mf|Xv@!< zzQCg2Im-%-7L%ji4aSJTzRW*k@iHw4K8XfITp{0#|Hnhtyqy3Js};{f0NFzA`7mJi z^{6l~qJZg>gB`7$teo97tgNjp@3uB2?VO+6IorsaJ3n`{a{D`s&%MOaCcOQyS#GCi zuVBbYi3!KsgvFjCX~3NG#z;{jJQyFhrib5HzMQH7p4kL*`0;DE5CT%NuHyjn_Gi|- zZz7LE*Rpd~BFMAvk4ewX_zP_+_e+asF2D9MHBpvn z4>Of!j?ShtRlhSqrJ^eJYfkI^Z0S7~-GgbtWcQQ^CF_ylb4y1&+kCtsc|zlDozf3r zHf}FN&!SbdeKQ8^5}JA|JEA6R#-UjE1g(*`CZ2gZjN9c0ABH5%B#5KKMDbh{-%-uE zbF|q?eN#4z5jRA8`BRXAK4Oz@=BuiXZ<%R}s7`(PXXeFLkdK+7Nk+=*gcZ^nCITMm zX1kVAzF;8LEMJj-A2+x6&I|BJzk*o-xW6*`1$v__uHN}PIo&JxFF7<53yheq>2R`Q zS3a(tg=xJbFHO-wErC_2lX}vpQ}ArZ*H2f#Ll_+32j}9N zv*~sjstrYa%~N|GX4Kkbqg}DgS*F9mL7&x{fR;DB9hQGoZR#C?h4k|aS9}mL5}>|NIOZpb&ixRrg|O|57%GQMAr9zFsw0jc_67tt)mL-(a%9lT*{XW-rWy2&YRPgO@^{G7WP=}t$vjKmyrzM=RPe_INb6i zZ}o9w)EZnP(vn$nLX4-}_8M8Me@GgZ258pgEkv+GBU(5(|7Uh*uZCp;w%~v!*l1^+1QZ9 zWnH4%P?oSqg}=ked&47iR;v>Gjk4bqdomSn2OZ=qF8C3!n+k)Q^xg*myDyX`+OItP7E;08a$POMe+`qcXb!N!ca&3=YIS@4ne-%;jrk> zfIG=KiI>L8fqPyR9z$ZF|1qq9Rjk}?U7pMQ88!Y44^di%y1@OfH>%D!?=oz8@fyb! zisM~LKH;Kd7(`BM;FNYqK5F{#9Nm2XIsFG^J<*f0!rP3P*Si%Q=K4BSE+rdkM_rW* zFOgC(IlKjJ1{bgVmTt~wW`=Hl?{U2$BE+Uf&C+ftA@WHyY@Gm;_s^s}b4gC=DNfPB zK1eVAlAOuTsw-KfR*IN5>z1=4+_)Rk0$l#y#y!7>I^yUIq0%Y!prQ%KL0*;TM8!i> zDyrJWTbWt~vWCgxog zA=wH4ym9v1Q0(B>_No=(5beG#{w8d{Ps_+9+^8BMeeB-MU^ZR#-)bJC4s{{1~YjM}hq*Wx(->OmvMa;|(Dq%)X^Mx_(^S0JUtI^Gy z5&COK23pNO2gf41M@`8bUWM>MGgguU@#g7`SGVv5QVaR|Jf#B!I#|-}<}7cGTA06n zx+IzW`Wq*h{eK7-S0{Hg-PEF8bWdk zCEn##Pwez!8dSZ$ky^ z$~R{cvv%P4c!5Bw%jl7v?8j|S!SSr$qN?J2g1m^r*VMRPg`#YX`#x6x82j7J{shYn z>-teK?_#Gi$3r7pu$xa3*T>q|NdB>-h0@iaEj(aO# zUL-~5;()KuuQ9!P-!Ud??mfP6%Z&P>ky?qlDd4oPPr7`?ASe9U4}R=KM9O=}g776_ z&d4Woa(JUQVYD|+tY+^9VU_$(NbRWTGE9iREkC}N$Ck6(%EK%VVbjXclt2k$EZx)1 z+^jhGjqz|wiP$#h>O#?GP}5Zz+l_^muHJxb65K= zA7A@lT|o(8e2(?Railo2Hd@{IY4Yb0IZhqSg`m2v;n{;B3?6Jl9&0zDtuKxE;HHTN z$5Vfnb3aXECj{3ga4~nH4*o1>CLthn3^0ptAs;KBMpCu`ok%Fu7NFI+|o~pQe0FG*1tC5HM&Hg2t>EI zSl^O`oHf&%B1u6fW^6g_J}(<%<+`S11XGjp%R|_S(+CCC(Z1MrE50)7l`}@f6e~zr z8$irZ5@!H^pS7UQBoWa9!F9L_m;Qc*rglx9lPfAna7joS5wEds9s8Slu?q&iDy}p6 zGqGRTb&%&)p@mW<8a1_9XyDu&I@Yr^nAxgXoz3JPpivQm*^z}fIi zY+px9rng#&n5$4REz?VNfoDRKJJ}Ed!~s9RQ?KfHErHfrHj7SPC;rM>&zL=~{AS~e z1UPuG^EwM!AMdqMJ3(xo@s9=>1*Y+Ze*0bL)D|o0=Mt(P%IovkhM(sJ?DVH&yXedp zg$i|}T9|8|@**shB@~!2dZC~O7&8}4R>G|lqE9_CW$#r?+GDpxZ6Yepd;Yq>`hro~ zl+Qs_rMS8VxmvA4GW23zeOcgfJrR6zOl-ms_$6Q8@Iu~_6OMMHoJyz+*10l*afpsi zJr~BeUy4qTsC9}5wM?A(@}IwRb<;t5UwpESuHD@niX*Grs=wIm`kcYROOj=mNR&A> z#>#L(bK255=p*rGw9P4L9v?qDTwA=)Vp-p4Dq*L}b3DhkD}$(b#~72)wwENqK6(ms zLEzuKHDd)6LFPjWo76q2>PYF@q!t%=Yz~4+KN_20mz3huPtx>dN|C-`MjQ4m?z%NP z1j5drJEw#)H`AM9SyPd~oN;N*y6rPMW*2ia#q^n36Gwt*!ngZ)|c8=^d zR_>I(WM)vp76e<=7x~+ieudZ5F1_B#_wwMGh8}8>CQ>Z&CwdKS4&dW9vArrY`?Jqo zPdr)WNF9>ZiX{}h$MM#mDAgKDzJOQaV4@m2!hs(R_qYxa+c8yrj{TiCJ!k!N4Rdg$ zLRh|n3U&GEX;Z|w61#bTaIIw12}t%BQTHf_cgQvBs07D?R1D%rhSd6jdOh_5rG{0& zqLUS2Nh?$+cnPcd^-pu!Jr27`X%mwy3{$M181g^(qCEW~2*0*SQJ*0B*q(lnIXlNc zjk$rZ*crh@x_7_2o^|}=b>%Rh4R;^iM|&v^D<5zzJp}%lAy}&n5V@7Q`?u=h=cYFB zfcMra=>Dzx6FrEwLVgwF55K`0>7Os&>&}19BkXQMVbOvB7rf*QjPC)!%F;9>dWReA zq&B9G>yKW^(of}x>JcuuZbb$QFP(tK1>DAiLd-?muD0OGqgb6(>GgJLjboU@j5gr# zhH=gA$>&lc$5Gz{Z{NX}2O{TNUnsU5iE&$hoQglg<1<%U^B94Y=*RDYGj3Yk2U3=cbcCtOEoPF8=-l^aj04Lz6J&4~ zwxc9uf`&~?9m|Zr;00gxuKGj$=xt8?)V3Tp+s4)Vy(*cGs;2G#f& zo>|chAp8h^RAEl6Jyt?^81Xoh_UDWz4pqIs5%#-LH%B$8z}N;*&2KXUm}j&vz;bPv z=F2{Sx5_GchMe$|(W-r9s{C6OhRRJ}*N@_Lj3Hc^D=T=PIB7%VEV zmUh9_OrAUn!n}pl+bKQ6az^Dz25)TEB{NK)#lWVD4jV<<_yi2^ArTG2N{k8oLXjPG zXL%VkLc;M;EzewMuLaSw*4^I7gO{najTY5YQ0(kzoDSvt!WB*B+W12Jbm{eus!8gy zz8HMgvhJhXy;ZVr_$GXls7dV_AB1IwYMRM5_^=5*=2!Xf5lZ(h6>6jWqrt?>O|1q` z-_$KfBK8&U;GjAW(P}Wfiq+KU^8wicGiIUqyxZ<_^EKS5#rzZS{JtsYr{v zkfHAP0+uGn-zkpBj$50n3wP7In_&73m56nPEd4R9Zrcx)_?rVJ{70*Xq;>7`%>069 z@E;{9Albig5@;zVi1sc*78GD6f&RGrb(bd*7HAZRkp=yZ1(JIhBnv8m z4dOO=7-tCv1`BBNfB&)rhynjHAoPs{n}Vt=hdZ!;#SR2vQda`O;y${I9fk<=|HaDr zH~S~(2sVh0;%~GJ;I-*DZ~~d+F97(=4!FdE++vYI8L@!?Orkg-a#(nLs0j{;o#J6s z4Hy`f2W(Q%LL87V<%4_q8DL;&AAn>jAZA>YP%i=y_PsKMaX}=oU$}roPS*c?3P4c; ztA;Texo9vj5)?2nj1Q#X@&XLRkR={W=n@T3N>>UH9P~Rbh!_?m2~Y^2lz1S*e_z%H zmB0hx!M>G+94F#J9q~Xsly~Ci*|@(}12%OFtTFy)^t9{%u;LvOGGqV`6~PBRhA!cO z=qT?ly|}+z3SgN6rkwH*N))d0pDZHx=m!`6JV1M^|0fy|+JFxtx@Wn+RRhSN6ett_ z0~TxTzbx_E6i{b;5bC}Do)7@~E7JQ*gT5dD5#AFb?+7A>{}8C4iv%EM*j1Ce-%xTw z5b+;wLI9*^2_zCjjx6w?;`Z{WlmgcJsb_dyLeh7`v^G7t&n{~V-xfJ9CJkjzjoVgUI+$BZ5zB@^$ENK!7&o>p$|R&LOH>HpuE zn7?e<0S8I<((jRXbv637E0G*1F(qJYe1BoUXLdkDGJs@(s^WtXASS*DPeh;wlLu2pM@$jI*f16Ev>RmAq{~kHGFZsRg{L394C=c6%^0-1*C_p&SQc@5G z1hEnwdI;ol*Y}Xa&Zh&yh@k}(Aj11vxVn84zXb3q1JA|uK!#Bk;SUPzbtnfo%B#s>VLWtXKFwoZVx~uh4?jL-M6xPRsDNs>A&rvv+oWK z>@d;aH((|jKmzUXy@bei!aoxJXS3-+X++2G(3t-$BmQgi>EEq6>`tcr?7hs--DJ=s zLcsPOE=>NnA)U|Pp%MNpP(sat-v7RI2X~TAmH`?t`qF}EDgS4Q<3Y&=R{i^JbD#5NZ6{}9+qP|E!ijAs6WdPSeBb}Rckg|BopriSSNA?^ z?XK$n{iODZDF!bM;Yz%qZbHO6q@XC` zvnau5tAyf*iT-VlDN+9Z;{12we|;e*`h%h&{P+F->JtS)nf@7`SPw>=h^+rV|LvdI zi6x*c|EdK+i4*IJApgI~h+yphYQ@1g{@+dVz!3jSX8f;~q!AKa5E875C{Y6D4M7)9 zk|Tv@)V&Q91Vk!P0TvgyDc{e8-V;));iXVI3~!7r9yW+vD1HMv<_5;9+gSza=`(E! zJ;BUbFdS5G_vYv2=M}=aE(?W6C0n67IQ4=9FF3>_wa8**e|NGIu^II$5-0Uj(zM1A zqdvL$#TDC*kzFBCgQ|{iNi%Hw7*{es1s}_1;p)L#R2wOUHA_sraylNHB&_|DQ8Qg-+Y4&So z#F^Ko%m`>Ib`c0f6lHA>Gu%$6{#Lk^aY^26s(5K5@6B?C56AeLt1VG#OsikkS<(JF zzVf+v(_hM3r9CI`+Wq>Yy2y*8IDIB=)4d)=+fLwm*VVRT2IR*`(ke<-ZY4-kOwEt^KFd+Xd>Svq) zhy)l22tpz=JT7q5Zk-94Uq+vq!fDaSQ^-mK5snjTtweREOwhTAjKfSYF+h@69_-6I zRBK~Jl~l0r{O-{4_sgOmslf=%WOCH#3=%9;dS$?PXxh81`WAV+R@>c&hG&Q+I5xw> zLD@N>yw7ue7Pa(9R+8qGdRsA-pC%@9!|Y?n+7D#b}h zk<01Iyf7YdWRWII0l@|oV#baBn8l{$(H&*1glqh!tgUHqHqMkKcSE#CMC>1e=kM7& z3|oXPp9eJPJyA<5R?HwLuPiHHB}7?qoMgqbsh}qfdnp=Fk{T##7fY$CywlWO2$^yc zVWsG+>$Y5T0v87@e8riiB3IHYX`ZK9yG9*Rff?jm7X6?%DOAIMv5&my4bKUS#VCxU zt>2Wy2S$*ppTd&!^3k^CKS*NLB8>QnSVkogN&>Z?jvMcZc3y|y;^}&~CU^E02`}<( zd61?kE&=@aS#77)LhF5ZAS?{mSb#tdarBL%|mmIgr z7T%EI%60nUiu*n1YtH1ge(b?))*vO!$38&#+lIX@d~11cSwSKwyMJW}R$hyJ?nl(p z7%+6=-J8g;rb3^;=9j|5g${J@yT4h8THv)!op15>o}9LS+*($6CVQDYS(7O4HhCKL zHCp`AW4_PUV_B{@$e`|XJra6qq5lN=ZzD4T$>Nv;C&0#o00H?0lh}s91)p=#cWW!M zFD!4Vl=y~#3!D{i)m>dE-AbK}m*~jh6w}S0XAk}s#Vh>S`j)loa-HMKo^HPEG#E_xQSdd*B3QzNZ&V@D*= zX;wwm83~ll{61)%J& zWjDumHx$B2VjASuF?i9unSQr3@KI? zmVmGiEO;_QswLREMV4gV7NdjYNa^p1dn!DsETcXSWqk?S$k;))RU_$trf71gC`37w z`Q!xV$+`n@0{TJ9<9SEe>YX;D4a(bE>Xu;5I~CN?LXP@zPu}6GP*8hV90D z6b0!Hz6X#KpH(W*Phq5xmMS9gOBSB&Kvo_z)z79}*_PbW@^oAHm)PN*?T-?oeHI<6FK(a$ zQTfj^e4}$O>?&N+B2^7}bL`IP#6)VCDnPQ`?W7IBmWSQk8vFi;HqKR)*Uezpb{M$W zRuS1~gyOrnwd<%BGx*3H9lrc>2rI7@3V0IPBrtY8-Nb3+5#aNAUWyts%2{5EI-I;k z_I?Cv96VgWz+VBxS9DA)D=kx6xy@?rD5-kEo~)j}{aP+BrQPw2OIS{{N5KbbuDh>r z7%+KIK0}qy9WRc%gnmVQYtk@r>Y|`;;lu_!x_g=0vqr}cyn2LwLN(O{=^bO%nq2rs z{TxzAzuNf~z9Zyy*P4TOCBoO(J@JIxjIgzJcoS%4w%)`ag64fP^$GglP9F{q!TI3I zi9QDo0`dU`0)hw9h>6Mx`!BW`sFqt71MfYo3QkGotY&;@IzKTU~AJEWdBPhrVz0gW-S3`uzDx6+3Ms ztjCly&u{K-c9ed!_0~1<{`8m&1l|)Rx+X*h0<&8mVWFn3rI1S17t z!N*X#;XZ)(??W?q7QxN!*(F2AyxKD&N=#?R?V9ZZ!^c?2gi-i!aPHsZ$=`p+6G{;n zV}JkC>pXvuW9vr8Gt8X7i#lMj+~Ms&RrR}%tOPruCCmxPfF#xL!J~Y98G+R(rDND; zhIyAfIdqXtKcC!k;qjP2B&iP(Pby5HeiI*JjebpS4$k_VW)PlFCcFwmSC5lYD0s~y zLa{j@773AIJI_0}@%S#ju$HmtNRVsMCd6apOzO0OMqnniCU)tl4FM%Egg@YEbjH9k zkpuAn+KLVQEb(V!0T_#Fj7wdm8*_ryph^|9N&e` zSk-lxp9ClA$O?5Z@iax%lb&Ev_n_Tyr$<`6U%d`!eglHUZu97>_!7&6if)7$TlQf} zdWv8c%OxK$TQ|hys?|3TvcHtHGXfAN*RP>FlquevTdRuUQ*({l(*}n`FCQt-5JL%3 zp$?Jp{aB3=Yd^smUH?DVP>FD zu6_qxOgN(+{f_%gE%4}Pjn}HD0%lhpNg`i#I`lN<0fa24kaba71tyG^r0%me9h6xc zd+j{b74enlm(wUtGff_|6x50XDWao>2j7_!YAskGvU^Bx_V}h|mo04bZup`BSigCK zB5liNu}h?BMcCx0IOC;t?Tk9EInA&#o}++UFAR1OK7u2HlzYrRF|Zv!F-AA&0G}yP_hq(1W9Qz-7p}%~L`-}ntf|#gF#0XSbZ2tnf zCv1%Vp|A?*14;PNavm=hCmR0~)QA!k7EFj5F;NCPZDKGTHWHpeMf+*9BdNlcox$}N zIdMtEl3L}(nUVHGx7Az4#aUy|(o<7&t=idJuJ=_{I*jkfjq%|G_x8)|^}K)rho({qdWx4;NH+-FH?(|*!Zmm?FWiqM&BnY5KxVfYSv?!BR9Yu$01c4A z54xb99X`RG-?!c(7e^*&qRqeuDp|GMR~RE3Jt7D-5<)_K_1i88&M{DS@VA8XgI0m% zCI;IZYQ6pW~i zg2eJUww9Pr2M<*?(MMzIK|6fXw6d5taQ>27&boE1a0;JHIsKp+LRsPB0&@=sx{?zv zc?VJ4-8qMEgq%zStPnu2*z{wV`-}ib)x|={2LsFsSC#k`jU^_CWiQM znP!&F#XBG$jGb9CbQ*=3xBI|~@!d(Rh-ld9*k&LCF*i{o(s+RK1;e-PG0>A#Pcvzy z*cw#;yP!h!8pITAjS6H)M+}{da1Rvd*lPej0hfMBcAF~GEx;T*G z%eSY@gp91i{Lb(Wu2z{PklaF*+r}lV`=Y03VLwcS%9CMyHW6bHq}SZQ2_i;G$Zh#{ zf6-JeId<&)W-9@*Yg;DUfoE%wQXxE!7)7yqvo2?!Z<+<0Rr|YYD6F|)Q&Q1~s#H-O z-I(c4aP3_naLJ6MYsyw_bWH*%05*e1)D8XRc1-vZg_dfw4lVvaN%T`7n&UfBij>y1 zmzx$^UFnqJs#`a!1d1^!=#XUZk5_~*?;0!&XoZX9HY$OW9!=jd*|hgm+Hj6BRAMhe z^DT_Ei)z0c26E66t=WA8Y|;GCYoNotFpV)mS3Brd>|P3_nwp(Woe)_CfifDyfDhcY z$hypf900U2H%;s-infaj2-}?(1gi~A6z!LJOaS^dxt9Ap$DHAkj}&XMm^h2>Plto= z?_Xh9<-354$ZX15-79_ME8}^;6$z>}yu)PYa8It-jX{%9Gi4m8d&>43iX5Fl0Y0#) z%K0c>S<2{6n+t9f6h*Y7;my?rXHkoOoHc69M=%7&wo*ZEOsge-uEkncxR14x{c6TX zc@Vdz$9U9tpujozC@?Wg5+vs=DO3*JQOM8fp?ZK(+U3*L{vN!A+bA@480iRh8}d5Q zI2B(J2GY_&RO4cZZ(z*Ie$3L{d>7^`&#a4cRd5z+32U3FvMP_HYBPr8zh=j;(yEcnjHhigvl4B1;Ixa>RE+#~hgpV?mE|j4{90X7PXhY=;vyw@w za8unryGGppfUuuDnX@{c4BaekPfX~%=`sMa7~*B=bd9z*Qd@vmR=nzhGwz5T;wCd@ z<1+0d@0C>c%RuS5B@9fpNb;eCLCA6X^;sOVq4n4-`Gi{}DwH3GLiq&|v4&DfxyP@2 zWDV;M`*GkFHk9(@cSe$M#PFEY_y#j+Dis@W*w*|1W&6?BE0X9~wYVM#wTY1)dJI6C zN`c7m(`LJOJSh#O!<-Tb-+{i&=i=-v?GI|}m}yj|c7L#Wl(^Y)fkr&0(vB5^Djkn*}Jt=O>?=Lw*WKPIE-;(|M}enZhBHrHaXWO$xA^)K}O+Ry??lqmHF=dp8ue>C3Yhsiw@r?^XO6 zUJgdp9`Sfv$?H?co&!>pmLK7=&J_yc;Mkt_*-Li1)FF<%E$$=QQ?c24&iQMr)q|LI zh^$!3&w~eRt0_MhwRV_JVspOZa4t1yUPoUrN&h%QI8n-OoSJGMn1c-+17qFT+)0V1 z;TG$ZW8kbeoXWf~o+Th|xgbYXR9nwFV03|QbpXjp@@kYU(E%Q%?8T#*#C!Ew+@1&@ zO!BA*E1;am+lJV*<{<4oj?0x=?JR=csfiZcPdy(GS3cHlk0dcZ{^kzRK-=dU$8%~o zP@H9cGlkBkpV`cIrYqxh33f85uIh_-GTW+Rl6H)^Z4b$!Jc5rgE+x*` z5K|u&PY1PM{jdhaKitK%ZqX&$L|xWL_tF82wgktNuIkm4$AuDcL7w%MYrk|X zPcOD#8A3w0Pp3i1nVvh7df}cc0TNE^6V1a{H5tVCs-y}=S+Cf&0u)O=@p@Efj1wew`Zaj5sLU z1EPR*9{2|J&J*g8@rz~PHBsM~P}XiK8##O6G43D*(Dvm}$fXs{#Ax$d3qoF1;U(m; zj>IVvh5B2#GcN8kBlRzz$P}r|);Kk!VM8Eoi2+`If6%EIDM?x+73K~;-Je&J8g1mp zqH9ektvyLcvSt*C{sP5tzw>X9a{SvzW28ima)Hu6q>p%6U3=D3rg*rvxv91j`MS$| zL1@oHel>m4)f`Law?)J~1hx%>-8#GaD*G#iwD!%3dn)I*?m)IJPKUK#8@xh0GW!Cz zK2HX4Oze4W8rPMwiBc7(Uu z(l{CN#U7Q;^!pfe#LK$d!p>x1y%88jMB2b&_oVrPE3eUX%qnD(-DAj>2?o%VN^+@{7RUHuSdknXp9A+9V4BwLfY+09g zcY1D0ZocE%M|f%eDZM=#hpptZ0L9?=gdC>nwJJ~b*1_((?>KV!vMo~_t17+{;0m*^ z!Bd=llT?5CBUUQd0mL&HTl# zhGvb;Q%*Vt4U=l=LrY8{?0ivDi(T!@3=#TFRi0{jcs2bJ*;6@{E^ zH>iT`V&o4a^aA(4eZ+XP-UH9M08yYku@@!Y?4Z#5(D$Fl*4Z=N-_wb|N{l>wbh{7i zn&p{#47Z=X*P7K>Nx>Lrdl=`Vdtxcx!&sj6Ga$}Q$%Z1HTl9gZv;1y;Dx{<*`9n=D#K zx$3YfL0>iG&Wzjx^*N@OuitMmanZ(3W3q?7xU(A03ApjtB(tvP+oPjTktrIL6juy} zz|bd@*)Cy`l>$~k-+E=0CFW2JSbNBXkQe>3UZD$FbkbPa&@yR{vQ~6soNRcTV)Gim zEVk@SHCyEeXPUnpiZP1FiV_^_Om<>W95g%PN{(Ia zBT;up7;RQjtzTxPTmDgEWE!cxU?ggHRY8zY3m8|&s0W6WpoXjm02Vjpoc0lNxvBJP zh<(DfP$L zabKA_1r>Pn+k-mUaxcY;TljGFM}y+9R4G3Fx@Ut3g@a%Ym3yRm&q%krNktcV@@@Qc z6DqeFZKCCxN_x5KIGt^eiY0up);d-58b|s3o>J{aJk*7f<$_((esiX2%VXBWtRH>y zT4%%0mkZHU3V7Z5qS3`~kvfx35!Ur|Zp~7W*3CdV$874-4zJ=xjAYZAAUgL=I$E7p zr|#G@^CG!o4CNluksFVuRxl`7=WG$yLzNBha<)cBHR8|g5jIm+$_>tE3S z9Sr^(GivN&HUj%6vD`?^W`p`~7})uc<*w*&82Anv1cdu<7#J({nH-cnaZQ{N$hpwt zqdd|wZ~rkN8!TkLcJ&GU6*2GZE+Uw~ykxlIed*bL#68Xb^k*>>>kEX-|B9`NDT}Tx zvP6~6K|<2`CCM7D(?Sm&exubiX1zyp-RK9G)0``2Rl=3yi5D&j0ywyYGl_mYA>(f- ze*o|J#(tzQT*7`jv`=^@hr9G4ufJ5}msS9q49vs^VHtafGPr@12B_iVt`&5Z-V)fE@5Onrk=A zh?ZQx9ok0Yc@PH-R#Z`)gi-Z9_2Fo&-Hn*Y=2BB^%{)E32y%DQLJI%9r3gt7z2dCF z*O0a!sFVyL0XDT652Zi-sgNJF;Z%i3z9l66M73if9cnOXM4NV#t>Oj%B>K)M~D;~H>8sZ6F30DP=55a*aB5O z343tU95bF)LOd{Tx{Hnzg4e!OUg0oY_?tx(As-|fhxvXlBBt^=WQ(3T2O}AdG5kVD zT|xE4+;xKbs?0^i7H|}=TxMSeeJk&09R=wuTzNa{P-NLS^M+utW)bZ1QO(TMzq!do zfWdk8swbq=uwZd61zaDBZh6`ukMzL#VaQ}L(K3f53;!{@fIwE=p){&!%q89#+NAE+ zJ<8rhx$5jvreN+QDMg*277)kf`vkrFoj8Dq`W=PmnziE^{&81bONcr!unu}t@LTyH zU7U(lvInD=#im3D%!L;?Ozo(G*sI7Hm*B)#bc`#$uK#0p7JH`9% zpZ)e<;Qx3n>_2rYFd+YUYm_t$IP5<$Umi1T?uf)}Ienm5p3mzKO~`ymQ`PH6L9mFM zd^J)i;{v4l&3ZaJ_so-|9fcdL=ZVOo3@U;2=fWuWRvCD;dFV_Rv!jj9ryTFY^J)Fu zUa&TQb_C`Sgz?(67+XgLDrev-XRviOvxveu%tY*6vcfpaOrp(h}PYd-cG3!=+uF zLpz=fW|=vHImEv~@l0B(R7E|&1Hs%m_&T}6Ne6fbTYHF>me+LZctv7Moi*f%a0K%` zxpE(jg$#MoByAFNtvffxEx7o$U0!kkeLxX!i-bW>bAUYLy!VmN5dIv}tHO`};F8=@l~)86Dz59>w?v8|V331Gek$K@+R@QBp8*+b{-3 zsNU@2HcL1o{j|1G!&$`Z0s(H!f$lEL7*+iP&MG&!EJfe9$S`M#L{XmNkxKPo&+w{0 zq5jv=!g)a|n&kYqxS$0tF&Ga{t2J`gT`%`XeZXmXZq3&wjFtRbmEfRe(SDl+MEAv zx)=C?V1QbSE{a`qRISuc^~Y1QE&PL;mUu$gXp3$lvw&>uvcmQP2hxxhXkjk7aONc) zo}RV8#&@-ZZ*7D{={L z*x6~y1t>h3H~snZ4L^1LK}hZB>CR|`y{e(mASnMS%oj15Gh`32_W_NF#a;kd#aPe7>B^G*7b| ze_4*E?UzHL6gDoaDsxN?!^R*zWFkUkTRb@ekx|4h7$Z8S9PP*?)NcSMUU3m7!$PSd z)pMBP?H@KTQy%LiQ!v6?r(fuQ2AZx02oT(bUI@ta{9hgALbU0*3BJcCMZ1`d)W!=2 z8g>{`w}Qw^Ms>^bUcF*z5k5VZCGRh)?BRuJ7Gz^Z*4~lk)QzRMO zXg6F^B233IsV~DQil1dseX59~0U|&Gp=sQQRqE3pRtcT79t8%;yGroB2)TyQ9z2E* zwSQW~dRk0MKoh)~nVMl6+77&G=h=whW|j2LLYT6HTIEEWN<_HzvXnR4EYk%lWxrA*BGKx%!?7JVgGrJ-hYVX*?q zZtjkeqHj~b1eDaP9%Zm~_WYrT;uFRbsg)Z{5*xvMSZdHj2~zwqKh+yh=2)$HUu~{(V;B zZ2LGDW@=u!)Hx4jQ(m7kJFTG80{1Fj^iE+PZ0o5?2T1k@h5^zogddMF+UOo8sMT2&crLvS zOt}uti%p9X;C1`iuAdkC)*t~0)rb+)e>%{$k0Zy#!}+kJ@{kXxWqDmz%Ii&yGsTeji3E#JHY0I##Nmw73b7gEI3t_1`bl5; ze;L~-=IDI`52W!mrV1&|P{BkDx>M-ct^m6N({U$38<{H7=Ov*9yk z7o`=Eu>+6LueTOsuM$*Xz&+>l>Fd9eqzM0YbaE(2 zqS9DmhLS{GfIv#1KDRV`JiSchQIYk;3|k>iM%T~`a=00GmlP`_n1!G-OtgiOg`9PW zMiqKvzt>=6hXG9KB>pn%#@u-)?fqD(R=OeIN3X*^p!BxHTQg;YMAm;nTt2DD4A+!s z4TopxnMd8#4t)V!4ulLTA59lP4@r!sq@~qD0-0|SD>@IHN{m==arIB#^K(hm4A<_W zDyqY@gx{l^dUJ^RGh!ps_LHz6(1!&eIu}}B$vs#|DJF2w(nJuE3LE+3dKXpXkAAX) zvVi38Sb>lnW8`F#Z54nrjb=VJhAxueFN{tGaDc8vyz2f?Ax>tpB+L&0Gn+D$%!X6N zhD6i?s4zY-8rijo$OTM`0y3p*MDP=lr98~CL-q=Z zOHGk9iHLa-MKdS%>)EsHX_suZQ=(yk+Sj5*XOU%mu_Yu^G*0G{CTzu!o; z=y3n)jS4wem;M$hgZxDV-~X?kFi|lH37D;`{yAlq*ldk!Y<2d5DncG!ERzqH zfSRP_3#)1|`ewpfr2IG0!%F?335WR$8u;^jg@>8@riBsJGn4b7PS4fG;nCs~5s2H2 zg8|Cc^X!VUh<=cgH&$mnB{+9V{^J$`1rKJAfaHS$38rzmX%|uO5zApHc%~vh2JomK zUX<%r08zfUmLLg+cU&?x0Yz=v4-ZKb*{U1oAwEWx>l9hqn?|KWhKfzwH=vscp*Rvu zZCt~@6Rf|Q1%Ja}RXLw8D+ZcH05k9#ag-0ry;xOL4vwvF0Y#AfRqsfjs;Y$3p=4$6 zyv;}D=cx&?Q+GSIg;ym)A)N%`H=vIN13epU-F)V@WNEVnNgFg)58pfu93>(l%90s# zd+3hIdC+TfIBc>{urG@2ksH^z54xPOevi7@Cu2?aRZD)|S=Sm^E(y`NOk%g`nICoJUNZNMx)|EXTL_?uP`}rHiyh+C){YOT$89a@#^7rNb1hm(G#iaE6XSf6ln>I=>eDytYs3Cm z4$Iv3mcz3X3Y%#q`zf(r-J(YP1I&;D*6e30P01on)owN^gI6TpD|YQiHi?7_Mih z^vB>fx00skFk>4ius@oMFiUh4@5S3G?{?dIe1Z*1)E$8&fzFbmjbXBj(+Gc-hG~+) z4jZb6;>4A7&<}L~X6}_Us8xl=R6+*~f&oG-QFO92vljNq_=7vz2!{G+LfB~mq6fvh zgbc`WOu>%3N6qAQmz7HSjgPA1_wIuZ1T5tLgi*vhHke(uovc|AA(MXMtfQ?YwhM6n zn87WmQi{!NCuz^I@^67Og_S^D(5}S?Nx~w^nAC#YcDv2-zX0Q0no`+rGK5ZmvIC;E zdBWnL>K-%Dq9`JAd2VMsKz5vTliNX?L$A#Q>VZ@H6O4Bf#}DH{@>m&V7Cb%{4>7uk z;}x{&?jfF|w*7hxVOazRllW9%z)==ZVSo7^qTP4-+E1UbT%Ki-@(nn{QTQjdb>i)3Zr>8Q7_6xI*a}+p{gyv*xCqw- zTMhgKz&c9M3CFO!0%aAjF97}oXQMym84ienv#~=-z!>O6&y`$C&5pXD?t0p%hl+u% zvhpFl0TG8Z;;7B&8KBbHcJSuPOB@j4GW==EIs2}*MSuHk;QgKyV-3&tTCIzyK8ps7BkQG3r`Kg-t-ho-fp7)9XBDP^CLYoo9G?_WA^t#;OdHrD(@AtS z(0(B{vWtzi(mryk<@C)ot}~AdRIHlI zp?s?GISJ1pV{_PvV?fS}F06sp6-SBb)!=}!j{GQTJ_Y(fll7nWGCmT)?{FBmgaoww zl>)<8cJasKmi$(EHnrxi3v_jKjAL@k-*aZM)MM6^J?9xanohfA^j16Z`QCnWg%CMj zav!2caL=o&rPWRNv>);n(u_62!%0O(+0v0QzbByy9TmD5mI6=i7DZ=UyKFzQZ9NFp z0ZCj*Y=X%ipm(xX(|!|kI098cy+uJ^vIfdd9*&w32dd%vJElBmS+0f)1&vE=Y*+~% z=NOCWev9AI85eYbdNp#Ip-Bn-NzdMq8|r?zv@w{kF<&$8e8%_F9>yEY?T z@qIWGNyc02Avy2#^U$*nNRzyrbaHne;ia=tux?$hghCe)5)rq@t2l=~jC``X2 zS`^{SXFBxuKfry)DnAQB9)x*C!Q4wQ8tY5A5F){KMb&@8fKD0fUy*;1%vw~nqjpqeV)Tcy%XXJX!!knln;`5o{_AGQR%0& zQry>C0S{uY$ajVQ^}|1fB#)&j2?~9$eDN7ypcWVypUWyWeJ2Lp?`m|G;`4RgrxK+-kL8aH~4p?3!c1p%Ls zN}_8RbmiaAF#f`dh*xnm4oZdaweDmP*!I9vxlHsec(j4M^#cz{S1*+dB(TSPLLs{ReTv*U{X+YXbs`Oahk{f&? z4wYi(-SPgPR(L{@wGo(QN+xA24$8`moIxUNI^o*SujGHIakgn__Ceu>NNN2UMtWDMai)0Ff~K5cFTT2OSCZ9|1Y4=Rd-1H0*zn;#|-~ z+UeipJrDM8xCc8S78jVTrmZ|Lh%OK*c|bAaWZhm)6%-jHgV78b4EKu6$eMlgtF>5@ z$8e4;u}JpATHqP{{YQ*BXR%a^f6$c6)H(NC_IRuL^x;+SHW0)BN#2=B(4g9|RYk;J zG4jQ#)TVO6gx>7sRP&p4%RysIZlDlYqWXPC1x0hlX=^0y(lrn^%4_25at+b>Lmy%Z zgMLHlNq4|XjSWX-_1VA8481kw=lU@;DmIcK)E$g0^`@=uHq#>G!Y}>-*Fwu5y%#KC zp$**`3QRp~ob84_@k0^kTgnqx6t-hjgL@jc4b-a|X>1Y()kmuHAMO=PxnbN3g2h}cf- zJVzw8p9wIv$yWND`s8JkiPdSzk|}grfDt;BOIn1*3)4sWl>|jY4oL}i?Z+7N(ympA zO5p_-zU+qabDWJSSK9UJ3V7r%b;3y<~+M4(?zHWe7 z1OkQ+=INRvpD3FNo3|FK~`vKlqklA6Q=DiaOdq zgy-;{Af|)e!W-YlmdiZB?a3#3%Oo>s@TD@0J%|=}z5;(A{Q3SrokxhXCcTj;;Q{nt zT-&S8Ikoc_@unscCkX(9;}m2D1d)ffo0`iX^y?o^x!c>&yAG%pW$J7s3$qFSJQxSQpYmH}|?m$kePrvA-<^ zKX&Z(eNL?scvF+y!xTnuS*luPR=!vbP)O1qh4`Tp%kGg`_n88(gC~`VTj_6U>;gy8 zcAYN#5Q#8hkQ^Ul&)D8B80FUJ`yE<1-|^whTT!N9_CvU3gS0xZ?4Nt6hE5)Ge{C#` z`-0_1zPgf^lHUI~!Z5rp9>E@a7cJqRRem{Aa(B3a{ofB_E^s87@GtTE_IGb!|N9Uc z%hPoKLmAVuG`JN1YQX+d!hb1aVqP|4;?HE5M8#SJV4}VZm=OBVbXv1zM#e|;GU5FY z@o_$r7pzP_6>^YQ=F&Jz!_*iTtzQe_D~NBIMU$d-OVe6v`}^Y*_Yva8a_bQm$Osj; zB$LW!-iYZ4Mg)K;8zRf+G@hmF({T%)-pfRi^Y>MvTb#*n_aQ|GeX7`Pe%DcUfF^et zXK6P8813Y|w7{Z8Q;R8rnYK(53lNK)$a2$uCT7+d!J$jC7EfHpo_mOw@g)Ukcc?S` zFyo*94j|9mV^I{D3*nh%Li(=oX8F+S0crg%(+lL6Fk?CzaZroFF$p)MwWU4qjpxyo zrr}Vr6IiG|X2tiV#l$^vUS|!DvyxJPMYDR-v*LuW&0=I-9TMf*gcH7)OTMqZHGFSS z8F636##Uqc#P8&-)EMvx#jn!NX<)OQZX(AqAvHm3hZ!wICf24B|IOhRmxgk_M&r+~ zeWg$l=>ET!rO`M01oGc4-LjDMKRbDB5&eIJ-ePR1e>uAXPDSO^-(^es%gLA$iEAkm z5v!1Z+RAH!=p$d17U=a$GTKdgXY_gG&1;z}k$cU>i#WXU+iB!g*py_l8dXG?a2#qNyKDh z#juI`=X(#-0bU~Vm7}wmAW+@JA!fsSkkRj%0AvUViF`>sF{2QFI!{tzIjvawHu7X~?QRa(1QWO9iz~&M3H|@8^ zNy183HkuJIaNj;-$~VVXyaPILv36hY0-(hk#K%ORV3qysbReb^Ha%vy&5=s$5)7YM zhOXJc1xuaW6B4bjG6+9C(S+M2HUjtpQ=WYcFvwb6Dh|U=D?d;MR3hhQVmKEUR4ZB- zY{YDkmaxTrY2xQ(&fs!bCYnWz(kw8IwM)fYjvXv{0a|z&r}&a6t za9!VsTwy{H?YO8kQp*Ri3vuG-tLs;%rVl&RUf-qkMSd1ytRcs-=9Sur{|EafD!uNm3p^m zjGmjR?|^CTIDL;%M@G;2)OXZctvG$}(M-MD9!75e3(P+RjGogn0{7%ZN!44QkpJx% zBLHE}Ecr}S|G$}59gIZ6S^;3Ux~C7mDUM%Hx}2LE@BK>L9DTrec99%73XP4I;95vY zktK0_272&lj+4iJJ4}v8O4kdX9W~+INX>E&1W|?gu z$M((aYw=}mxhWf1lv3-BZg{98$-U0B&g~HvGB9KYtGL0eR3Fm8ay-picS9o_dAeqN zkhugUaK=8;eoE=dqNf23ydx!!P4)N^(ok$W z3&%E-q+oLO93)}|3*9&Uh=a>g$@-H};~Z7C$i#Co%Y$nF6|ne!>i7~_kBG6_rc@7?|D66 zI02pO7DanBZrW0@kOSAhuTVT=Rp2Vd)n^} zHC>7H5qH#Gr?cbxT9Y$kwlGn1CO;{o&DGcF;EdXwu17}6ba$}=Ff&WaeM+aL^flxa zRH)VNYQZP?4P^tn)MF9jKA7<|BD?PSna}kZSJ^JU3b%seE&(H3viJ_#i;@iLWZ39j?i_1U--zg3%z zu^~zfsCUHY)!d?Ks^!Nc4uNW5wO2-E&aVY|-FY}iQsV0{4#U=w8 zEEEzF=$j5XMdD3;?Y9!7s+E#F2FQ6w{F5h#uKhT9oQ|Y;d2qi1o}$p7P-37}=G2bg zyq|0Any>3=YDKPRVt??W+4_D$?}l6i1)jsSZb?#oPMVNvNdfky3y(G`A3n;l@F=b{ zyvp9S_GReVd{vht4QF^kLor#h+8S(1U#w$6tdd>FW%l{a9}V|D6XnF;^g9g0B)6if zGat^%)6e>hv?y9v4paLY1fRJ6q((NVj)ta=AlgIx5?|4kgCk=JAK4y5{Wk+@O*R8m zO?QRqM7;KUXs@?f@*wpFtZe#lz1>=iV};DbX^Qgvhb8=p@h#IDv*YcEuf8MqB~RN6 zw@LQiY+_z^E@~{&*`i&g(c1MM+Fwpj_A>G{^yrUUMlv-CY=A-DLDlP<81-NVG!Vm`%ak2%K2siW^dgfCgvUid;Z!1QhHxm>rgjQR`p z#}6`L7dVjJ$$hXAI`~O2Z8g1~C_|;;3>tNcnAnt^e!*hj-@3j4b6gX;sGInt+vBMADN9>Ee~SBr8bakpYF>#r zPHX!LGR1lcoch}8@cxIIU&D)qJ}?Uvo4*xz?SoCwie}(&c@F%dXL}Ec=cVvUEbI7W zwH{er&zPO=y{+$!o&`%5h4U8e#TtVr73;|0{Mk~`15ajudTaleQ~SzcnqD_ii}e`^ zoWUNCbO)TwxpG88_UjKhl1F?tY4!H)R^&M;kucsL#`=O`Y1};T9^)$#N;!784JvQS zoWvtvRv94O_T4+Z`bYCPRvP*#1a-z;U5$;3xH%`}!a6Rj(uufCW;le5kQu%akAP=7 z*)e^8ziv&q5jpl!{LcPN+)=>{wkq{{tPkse^$)c!(-Yj4Rd0S|*#rW2OgKO)n|$$U zKeEgxj%mX%>>f2NMLtYcx1TFC+4m>WaV=ixwV}^KlN&}b2i}@$& z!Lp+EXMvLXejT@rZhmt0ZLkuo+by-aEWY{RZ3wAG;G<_=mY@0N@0nCS^H*@Ym7d#s z$rt_vQ|suC7nzhu;`B|i)}_f1d(jZND_U~xqs3T1rJHm@%TB<$rWM@ahJ>1|i@xa( zko%OfpE>I9TB$U7;$7w6w6QJre^TMUNc!At-116s-O{TcOQhk3ACZ3G z+gva!_D`*-3&8tEb0a3;DG&9OHsi*x(Vgq_N@U0Go90FR_Tq4c?en%AMz0j^t=!(fNqI$7N8+Wbnxk z`Bk9WZNq}IZIjZZ#%8$7(ouNN^2sLoP;k%I<HFqIxTR{Yne=sU@OuQ+EJDt;X zFYHri}A7Xvqjr>JEq?pz{RjJw<8zp5%H_iH*q>L ziF1mUSIs0Gr4Qv@cuWH>+7&&x@L-$%IO6IMsTuz<8Paj_=Jcn1w>JIHPQ9N6gYO_2 zRPTNJDarjQ-fIx{owwaR$u6d2b?@_mdDRcu@Lvv%p@^&S+>YP}P8|z$s_#E{&Re$0 zPMK^qQgt68 z=UF*56A3PlkUWj9P}$gC>BhUhu-y->!akd;q;2GQN*g*j7$EW$Za*eyvrmu9c{M%Ir<{ ztMSJ-g{8Xx(tD-iL-UvzH)gw#u}lOCq!)aOMN)%$gAYFm9dJko+QgqQ%D#4VNnwJ| zH0@Y`ZWq?|Nh#Q6gJW{I+_*V!VgDPlLhsG$k~{AGp0Mq$NmSm3CTw%ij9M9*u(5y$ zF@O_UVya_6VMKX?$k|eojWktyPiUBtr7>WxT0l(r5zsQx6XKgqoBwJRGhC!!hP^I0 zp|}#0%%EpW`}zd;C+~K%Xy$WWF<;?#_d`d2K9{b}sa8}#0%>ZORiX+EeZ6`r&70t1 z>%o2Ex~&Mh)LxyX`s1=J>$k7{p@atCyXV)C`me~BO0Unn+-S|ijb1&5DXzuzJ-GL= zGK`Doc??&N>WbH4smqNIqN;?YPKOLcDvv)4+^O9%S0hr1dp|BTEMzXmWOQxLWwm|9 zMMsD|0TFH8x*)pIylZ-lRo7KxbezBQiO7mWiflcseD1$7 z{Wo|Ih$fTjTcFMN7cW~}q9eY~eINcfmPRN+cyih&Db`*>xl#O}-BM1iuwK>C))Ikq zh%AWKA$mXYEn7?7x@puWp*cYOF=r+LYv+tCj_+!o)d_NEPi?8%5* zEHctM(szOlQ?>mQ;jtkLeLUv-w|8QjQg79IR(5e5i4$D*uy#1yoh;6TQxaBE)w1;l zMuqmOC|;PxZzhP&9*Do5?07VtG+tOqenuNOqEteGOOIhrNekKdjiAJ_Coy}`pmw|sK4A$>bsj(WVCboknj zn)^fAJd)iycdRT%X)ZtvJu-rI;*kra&Rq1EM3>W?}BF z*J}E>k@HD22wTzr5_*5mx>l}8kNqGTk-Wt3ceTrJsj)ALVPHkF=oht$n?34Dalz2Gr&zX# z%6>zfiPXrrIx`7FJ&K#|KCP6Yf3@=q?O+=oRa-n##qx}IPw)yflq8W4<_g&gX>Mfz z*nK`SH9v3ac^{KRmrY31;LLZnYM%JHQN*@-#6BYQbqFkr`fre@) zjvvDNlB%k2dRMDMR&5lfy^s7T)u3`r#NvqLeVC-cYQpUyqFcZAisKw?o~RZ)M~OJ~ zrXiGlC|)As7o%8FJJ;Ee>O$JX)Y_CEKj~#JQp_NFeN{SVsk?bY*$`}9D}@z(l#ey> zgMEgMYND`(BD8?UNB6}%MTtje+`dTL za-yTrE2iK~igzQjaPhlq#pM8ak}R96?kjT@9rtg|%&3Hg=u|C38IDLxuD z1xd>9BN2A$WUdr<36MBdZ)tDlzH0R1chsH?^dAFVLp!6z}R^CR;Ng*LTDt(Rl^;p%H{gJUeOeJ%(!-uh0(+2WY=qz_4AR)pP#+U%v$k#^3sRZ z?#>j5$W=)7?(@#Q_Tk$N@yB^i!!ExiU6)`_XvcQHChO<3jo>kC{L!j4#%JI2#(9?N zoC;Gu5fqedmJ42Gn_g^9$R?f|3UHvC8KO;{^-@V;A^S2X%Y;Q%He;z?n^ga(gK03U>3wQ<*j&b4ZgJB^6JXlJE4e z>Bp=xtg`J8bcfV?&FyaWy2L6ceh2|_f?F1q-PE`8o=3QBUludi zUP68HD^=04l_gbs-K{2}5LlJ)afL@M0{$~1{V)BFW_lq@!H4joA=%KER13FLw)ToD; z*kH8`Ku}k3sQA01Tt5ae(Yv+!VXPw25Of*)6iS22|3#17Gni7M4JVlkn1%_($fz-5 zR;fI^%~}gfz|LrTNT#BEeB-@9k@Iz}P=;gq6P!bwB=-G9#li0lOe(avxu2Ipk&54z z{5!&b$>9jyp(17?f@fKa?$-7(!A5$dC6AYz0?Kx(Tl7_ejf3eaWBMv03VE(|r@z&H z2{Jdnu_{I)-!NC>4_+$~?alHW$QmMgppMABY#A`5tZ}J@+>p#^lY1^@wsJmvT6W7ZKY%7oCit`VLfp0}}+ zc{R?k8HD5b3<>{JL9dyQ;_P&Xf{s?qOxz0-LY?EG$Y;u!LB6RlfkpnU|Ma6_F2{?P zYN^+n#ySsVaD|IkS4)(QG%-`t91MT{Ea#`IRS!*H00VPl28jBJ>)e^xQ;cG|S_DN( zd`5GytUtKE6*+o``Vv62uH}<&858kd$n*M(iIOOiaMlq6G3_b6k=5IWv9^chT#^o5= ztS;sRk1W>pyJ%2gN=uQg-t$1kz5sa|@)hhSv#h`IJw;q#H?V~rn5HS$l?>cjdH;|} zp597)Qul6Bu}pZ<_iy7*rsxTiaS;>u;xIJ>QO?MwWafnJl6GaQs}^sQL>$?d4HyfM z{vtUF-FMpVn(I4Vowyab`ryqA;r>y5`yECnx$4qa^@XD+om2JXiK=ew8A^-}oKM29 zN6=kkGZWS$b=}k&zU#$oDK{X?7sUz|ebr0rLgcmaE%2}4m>EA!QG4S-ut;g!N!~T) zNGYfVH{m`oo89}ua&E{f2|Aah3qz6m5E`ipqdsC%BE`G~Rop#1os~Th&K?Li;{Z<= zO$UUtr;DF}lc$5ff2PSiVoHfrK37UukCf1~BVJ>CgjEm^o7&V?oQWQhB!O?o>JM$W< zJ=8&Q2JDwbi%4*H+N)$+T$iajHNbM%;{|N2W*k*Do0oLhy}Wu$Lx?goukV5FhasPQ z>`Z%u6uPkA9!H{Emv8`C5DS>8u>Bn_1?2zss;(U$iuN(TJ zoR8&2TXP-;3^k9l`MxYpdCb>OE13$K{-tF<;@$W|xZQPe z_D>dU+K<0aL{R^>=wU>N)ibGx9kp5_uqKTX$y$+S>&@(tzKVB+&Q1bew(4W_;;7c%guKGoNn^p?lrNZ&(2G_uEM? znWBn9C_))+ z+l@Hh*iJ-j__!3yuJiaAH|F&kZH{pizF#~hZrjAdWl4H|Sd`?}Qu0s-Q%}b2?dSV@ zN257Y%gE=yFoY60pw5<}^vb&i7lJFe$M#D|!sRPNcI~Uplf-%RRW7a8^mmB}f5mER zyylKktPsb#n%$-So^hj%vT8#!AJ*>P8n~YgGvY#su!HhC+nNuDln6Xx^33KlueW}= z_jx(t9-L03B9HsN-s=1|qcp0kVbM9;rafbg=Z-pTyI080T}Nhu*`tbjIcS}}mR^Ji z38%qk*i=zenaLu09c@4o6IKumi)L#=tl;9(-Q<=$=y<%ViDEs(bJWLWGyK)n0*O7<%uf90Rv4H2!`Mf&0yL%#7vKBYGkjOvURrqg>OBSM=DtfJI5 zz(T2~Ec;Cxuhv5JGmpnR;o`$Bg5RQ?tl1u>zmjaTUCt2n6z{N z=?jJf#HR6{>2aWDKLz>8=Ok5Toi|T=!}xrqvMh*wX?|gz>w+6YZ~!y(*rRa*ADBju zBpM$P0TmZc$023rlmG$tX^L#niW!jnna-7jRSF60p&jc2GEri;6VRMVFlFC7q3|X^?!UaFo6BfFU3C> z4B&GZ&z3Gx1ZiX&J+MmWIAaz6Pj1_sq%2nI%R zL?&nr2RHyMFai!R0_$KN9MHu4K!t))vw;Nc01@kHZO*03Jjc$*fV#@S&u6FuU{YfJ zJ+t{QJ>Mk^4EA#j1T5exJHQH7vjgNTr?S0|c`E6kzJ~~UItrYFs)8%*fIQk8tQ-IX z=3~)QR(h1S7%6zn2M~e&8~`(B*5%Vu8nB!LphXKjcc}ZEKw5B>1JFbZ4s5@%IKA2Nl^nSspFJjczfcZMbcM>zorv}69A`@_KCJBKDQ{EMa*1L)Cc z^l=-f7eaIU4ISvwV^%5Y07JEDK4X!D4 zZowW814Hy2DBtRjSWuS>P{&lYJN*ql;yN=(#?aE?JH*LJh=IX>j!<5!A!@~q674TEA^w!m><$rlz;SMX8eO<`TDa&574o5m)GvZeoB$D;V8{az zVi6EQ0wfkVbNRXB66dUV9SoB30X(SvP-ve_#zl~n_e>58FC+&)^beH^G=MyYcE;a* z_2d{Ba_59eg#Ur#g9f4i4H~ZM*5mvIdQ65x4nEzn^XF3>@gw>au7XCTk72$ng-~)3 zisKIi`Yw*R90%2f9wn4`0i_?03+{@Y8CcE-8OW1xMr8QsFG7BZAe#7>ODTyEoZ~(- zKI9i_w;htp4(Sp;r{{ChUyc{*_O$ zFl3O^1Ms6LzyZD!1IW?tc_!4(_6E{!56L~>xy0xFhH{CVMFNjB_RI^YVU7{~ZzMG5 zqoJsCjz70w=v@7#OMb&iDv5u``1zd{7#LFL;QNnG;hd=b781~2=*;fS;eASd=P0XfzLieTPzP}O!+#10K8Bo5$! z3t|8h+MCB>kT<_}{Gsro3+=?ALet(qg%?nEivjo6}rfi>5 zjt2iwa8P`!bm*4ycfk`hlmw_TUk(3*;I31lAz+Cl)W>g4{G-rs5`nvtPy~3sh6>@Q z*T4G~9Vtl7-W(cviM@|+Ttol_Jw>Hp3$!9BjSzJOO2Qrq(Z z4Lh9}u%jhv2ntHdLv2MI3Ki(l{r6KG5wQOo%7_gm%RYVjqVeY@4u8?79pkr;Xguft zXBP240|s#J)SR`?r#uv3E)GBsx^tcBU@R?eiGb|EhZ^VkrX%y?H-3-^xCr{moeiOK z#uXiC5&;b_60+b+=JfMuJfDbyz13V;GFs@)AnJ_RqiJ{74{2ye; B*3SR{ diff --git a/src/com/idcanet/vasc/core/column/VascColumnValue.java b/src/com/idcanet/vasc/core/column/VascColumnValue.java index e2ebf55..c943733 100644 --- a/src/com/idcanet/vasc/core/column/VascColumnValue.java +++ b/src/com/idcanet/vasc/core/column/VascColumnValue.java @@ -26,6 +26,9 @@ package com.idcanet.vasc.core.column; +import com.idcanet.x4o.element.ElementParameterException; +import com.idcanet.x4o.element.ElementParameterNotFoundException; + /** * * @author Willem Cazander @@ -33,7 +36,7 @@ package com.idcanet.vasc.core.column; */ public interface VascColumnValue { - public Object getValue(VascTableColumn column,Object record) throws Exception; + public Object getValue(VascTableColumn column,Object record) throws ElementParameterException,ElementParameterNotFoundException; - public void setValue(VascTableColumn column,Object record,Object value) throws Exception; + public void setValue(VascTableColumn column,Object record,Object value) throws ElementParameterException,ElementParameterNotFoundException; } \ No newline at end of file diff --git a/src/com/idcanet/vasc/core/ui/VascColumnValueModelListener.java b/src/com/idcanet/vasc/core/ui/VascColumnValueModelListener.java index a0de417..db0cdd0 100644 --- a/src/com/idcanet/vasc/core/ui/VascColumnValueModelListener.java +++ b/src/com/idcanet/vasc/core/ui/VascColumnValueModelListener.java @@ -27,6 +27,8 @@ package com.idcanet.vasc.core.ui; import com.idcanet.vasc.core.column.VascTableColumn; +import com.idcanet.x4o.element.ElementParameterException; +import com.idcanet.x4o.element.ElementParameterNotFoundException; /** @@ -46,7 +48,7 @@ public class VascColumnValueModelListener implements VascValueModelListener { setBean(bean); } - public void valueUpdate(VascValueModel model) throws Exception { + public void valueUpdate(VascValueModel model) throws ElementParameterException,ElementParameterNotFoundException { vascTableColumn.getVascColumnValue().setValue(vascTableColumn, bean, model.getValue()); } diff --git a/src/com/idcanet/vasc/core/ui/VascValueModel.java b/src/com/idcanet/vasc/core/ui/VascValueModel.java index ff52121..5d13e9a 100644 --- a/src/com/idcanet/vasc/core/ui/VascValueModel.java +++ b/src/com/idcanet/vasc/core/ui/VascValueModel.java @@ -30,6 +30,8 @@ import java.util.ArrayList; import java.util.List; import com.idcanet.vasc.core.VascTable; +import com.idcanet.x4o.element.ElementParameterException; +import com.idcanet.x4o.element.ElementParameterNotFoundException; /** @@ -41,24 +43,20 @@ public class VascValueModel { private Object value = null; private List listeners = null; - private VascTable table = null; + //private VascTable table = null; public VascValueModel(VascTable table) { listeners = new ArrayList(2); - this.table=table; + //this.table=table; } public Object getValue() { return value; } - public void setValue(Object value) { + public void setValue(Object value) throws ElementParameterException,ElementParameterNotFoundException { this.value = value; - try { - fireListeners(); - } catch (Exception e) { - table.getVascTableController().handleException(e, table); - } + fireListeners(); } public void addListener(VascValueModelListener l) { @@ -67,7 +65,7 @@ public class VascValueModel { public void removeListener(VascValueModelListener l) { listeners.remove(l); } - private void fireListeners() throws Exception { + private void fireListeners() throws ElementParameterException,ElementParameterNotFoundException { for (VascValueModelListener l:listeners) { l.valueUpdate(this); } diff --git a/src/com/idcanet/vasc/core/ui/VascValueModelListener.java b/src/com/idcanet/vasc/core/ui/VascValueModelListener.java index 9daa6ca..ac81210 100644 --- a/src/com/idcanet/vasc/core/ui/VascValueModelListener.java +++ b/src/com/idcanet/vasc/core/ui/VascValueModelListener.java @@ -28,6 +28,9 @@ package com.idcanet.vasc.core.ui; import java.util.EventListener; +import com.idcanet.x4o.element.ElementParameterException; +import com.idcanet.x4o.element.ElementParameterNotFoundException; + /** * @@ -36,5 +39,5 @@ import java.util.EventListener; */ public interface VascValueModelListener extends EventListener { - public void valueUpdate(VascValueModel model) throws Exception; + public void valueUpdate(VascValueModel model) throws ElementParameterException,ElementParameterNotFoundException; } \ No newline at end of file diff --git a/src/com/idcanet/vasc/impl/column/BeanPropertyVascColumnValue.java b/src/com/idcanet/vasc/impl/column/BeanPropertyVascColumnValue.java index 13223b7..e3aeaa8 100644 --- a/src/com/idcanet/vasc/impl/column/BeanPropertyVascColumnValue.java +++ b/src/com/idcanet/vasc/impl/column/BeanPropertyVascColumnValue.java @@ -28,6 +28,8 @@ package com.idcanet.vasc.impl.column; import com.idcanet.vasc.core.column.VascColumnValue; import com.idcanet.vasc.core.column.VascTableColumn; +import com.idcanet.x4o.element.ElementParameterException; +import com.idcanet.x4o.element.ElementParameterNotFoundException; import com.idcanet.x4o.impl.DefaultElementParameterHelper; /** @@ -52,7 +54,7 @@ public class BeanPropertyVascColumnValue implements VascColumnValue { /** * @see com.idcanet.vasc.core.column.VascColumnValue#getValue(com.idcanet.vasc.core.column.VascTableColumn, java.lang.Object) */ - public Object getValue(VascTableColumn column,Object record) throws Exception { + public Object getValue(VascTableColumn column,Object record) throws ElementParameterException,ElementParameterNotFoundException { if(getProperty()==null) { return null; } @@ -65,7 +67,7 @@ public class BeanPropertyVascColumnValue implements VascColumnValue { /** * @see com.idcanet.vasc.core.column.VascColumnValue#setValue(com.idcanet.vasc.core.column.VascTableColumn, java.lang.Object, java.lang.Object) */ - public void setValue(VascTableColumn column, Object record,Object value) throws Exception { + public void setValue(VascTableColumn column, Object record,Object value) throws ElementParameterException,ElementParameterNotFoundException { if(getProperty()==null) { return; } diff --git a/src/com/idcanet/vasc/impl/column/NullVascColumnValue.java b/src/com/idcanet/vasc/impl/column/NullVascColumnValue.java index 40d9964..7e90569 100644 --- a/src/com/idcanet/vasc/impl/column/NullVascColumnValue.java +++ b/src/com/idcanet/vasc/impl/column/NullVascColumnValue.java @@ -28,6 +28,8 @@ package com.idcanet.vasc.impl.column; import com.idcanet.vasc.core.column.VascColumnValue; import com.idcanet.vasc.core.column.VascTableColumn; +import com.idcanet.x4o.element.ElementParameterException; +import com.idcanet.x4o.element.ElementParameterNotFoundException; /** * @@ -39,14 +41,14 @@ public class NullVascColumnValue implements VascColumnValue { /** * @see com.idcanet.vasc.core.column.VascColumnValue#getValue(com.idcanet.vasc.core.column.VascTableColumn, java.lang.Object) */ - public Object getValue(VascTableColumn column, Object record) throws Exception { + public Object getValue(VascTableColumn column, Object record) throws ElementParameterException,ElementParameterNotFoundException { return null; } /** * @see com.idcanet.vasc.core.column.VascColumnValue#setValue(com.idcanet.vasc.core.column.VascTableColumn, java.lang.Object, java.lang.Object) */ - public void setValue(VascTableColumn column, Object record, Object value) throws Exception { + public void setValue(VascTableColumn column, Object record, Object value) throws ElementParameterException,ElementParameterNotFoundException { } diff --git a/src/com/idcanet/vasc/impl/swing/SwingVascViewRenderer.java b/src/com/idcanet/vasc/impl/swing/SwingVascViewRenderer.java index 5aa51b2..452b8e7 100644 --- a/src/com/idcanet/vasc/impl/swing/SwingVascViewRenderer.java +++ b/src/com/idcanet/vasc/impl/swing/SwingVascViewRenderer.java @@ -494,6 +494,7 @@ public class SwingVascViewRenderer implements VascViewRenderer { return; } try { + // TODO: fix this table.getVascViewRenderer().renderEdit(o); } catch (Exception ee) { table.getVascTableController().handleException(ee, table); diff --git a/src/com/idcanet/vasc/impl/swing/ui/SwingColorChooser.java b/src/com/idcanet/vasc/impl/swing/ui/SwingColorChooser.java index 39722b9..a107594 100644 --- a/src/com/idcanet/vasc/impl/swing/ui/SwingColorChooser.java +++ b/src/com/idcanet/vasc/impl/swing/ui/SwingColorChooser.java @@ -58,7 +58,7 @@ public class SwingColorChooser extends AbstractVascUIComponent { JButton colorButton = new JButton("Color"); orgBackgroundColor = colorButton.getBackground(); ((JComponent)gui).add(colorButton); - colorButton.addActionListener(new SelectActionListener3(model,org.getHexSwingEncoding())); + colorButton.addActionListener(new SelectActionListener3(model,org.getHexSwingEncoding(),table)); return colorButton; } @@ -91,9 +91,11 @@ class SelectActionListener3 implements ActionListener { private VascValueModel model; private boolean hexEncoding = false; - public SelectActionListener3(VascValueModel model,boolean hexEncoding) { + private VascTable table = null; + public SelectActionListener3(VascValueModel model,boolean hexEncoding,VascTable table) { this.model=model; this.hexEncoding=hexEncoding; + this.table=table; } /** @@ -106,7 +108,11 @@ class SelectActionListener3 implements ActionListener { cur = Color.YELLOW; } Color newColor = JColorChooser.showDialog(null,"Choose a color...",cur); - model.setValue(newColor); + try { + model.setValue(newColor); + } catch (Exception ee) { + table.getVascTableController().handleException(ee, table); + } } else { String cur = (String)model.getValue(); Color c = Color.YELLOW; @@ -118,7 +124,7 @@ class SelectActionListener3 implements ActionListener { String newColorString = "#"+Integer.toHexString( newColor.getRGB() & 0x00ffffff ); model.setValue(newColorString); } catch (Exception ee) { - + table.getVascTableController().handleException(ee, table); } } } diff --git a/src/com/idcanet/vasc/impl/swing/ui/SwingDate.java b/src/com/idcanet/vasc/impl/swing/ui/SwingDate.java index 43ab3fc..d9cc6df 100644 --- a/src/com/idcanet/vasc/impl/swing/ui/SwingDate.java +++ b/src/com/idcanet/vasc/impl/swing/ui/SwingDate.java @@ -55,7 +55,7 @@ public class SwingDate extends AbstractVascUIComponent { orgBackgroundColor = datePicker.getBackground(); datePicker.setDate((Date)model.getValue()); ((JComponent)gui).add(datePicker); - datePicker.addActionListener(new SelectActionListener2(model)); + datePicker.addActionListener(new SelectActionListener2(model,table)); return datePicker; } @@ -87,8 +87,10 @@ public class SwingDate extends AbstractVascUIComponent { class SelectActionListener2 implements ActionListener { private VascValueModel model; - public SelectActionListener2(VascValueModel model) { + private VascTable table = null; + public SelectActionListener2(VascValueModel model,VascTable table) { this.model=model; + this.table=table; } /** @@ -96,6 +98,10 @@ class SelectActionListener2 implements ActionListener { */ public void actionPerformed(ActionEvent e) { Date value = ((DatePicker)e.getSource()).getDate(); - model.setValue(value); + try { + model.setValue(value); + } catch (Exception ee) { + table.getVascTableController().handleException(ee, table); + } } } \ No newline at end of file diff --git a/src/com/idcanet/vasc/impl/swing/ui/SwingList.java b/src/com/idcanet/vasc/impl/swing/ui/SwingList.java index 2a09a5e..ca5d095 100644 --- a/src/com/idcanet/vasc/impl/swing/ui/SwingList.java +++ b/src/com/idcanet/vasc/impl/swing/ui/SwingList.java @@ -54,7 +54,7 @@ public class SwingList extends AbstractVascUIComponent { private JComboBox comboBox = null; private Color orgBackgroundColor = null; - public Object createComponent(VascTable table,final VascValueModel model,Object gui) throws Exception { + public Object createComponent(final VascTable table,final VascValueModel model,Object gui) throws Exception { VascList l = (VascList)getWrapper(); if (l.getVascSelectItemModel()==null) { comboBox = new JComboBox(); @@ -67,7 +67,11 @@ public class SwingList extends AbstractVascUIComponent { comboBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { VascSelectItem i = (VascSelectItem)((JComboBox)e.getSource()).getSelectedItem(); - model.setValue(i.getValue()); + try { + model.setValue(i.getValue()); + } catch (Exception ee) { + table.getVascTableController().handleException(ee, table); + } } }); diff --git a/src/com/idcanet/vasc/impl/swing/ui/SwingTextField.java b/src/com/idcanet/vasc/impl/swing/ui/SwingTextField.java index 57a6d8b..b76f03c 100644 --- a/src/com/idcanet/vasc/impl/swing/ui/SwingTextField.java +++ b/src/com/idcanet/vasc/impl/swing/ui/SwingTextField.java @@ -53,7 +53,7 @@ public class SwingTextField extends AbstractVascUIComponent { orgBackgroundColor = textField.getBackground(); textField.setText(""+model.getValue()); ((JComponent)gui).add(textField); - textField.getDocument().addDocumentListener(new TextListener(model,table)); + textField.getDocument().addDocumentListener(new TextListener(model,table,this)); return textField; } @@ -86,11 +86,13 @@ public class SwingTextField extends AbstractVascUIComponent { class TextListener implements DocumentListener { private VascValueModel model = null; - private VascTable table = null; + //private VascTable table = null; + private SwingTextField textField = null; - public TextListener(VascValueModel model,VascTable table) { + public TextListener(VascValueModel model,VascTable table,SwingTextField textField) { this.model=model; - this.table=table; + //this.table=table; + this.textField=textField; } /** @@ -118,8 +120,10 @@ class TextListener implements DocumentListener { try { String value = event.getDocument().getText(0, event.getDocument().getLength()); model.setValue(value); + textField.setErrorText(null); } catch (Exception ee) { - table.getVascTableController().handleException(ee, table); + textField.setErrorText(ee.getLocalizedMessage()); + //table.getVascTableController().handleException(ee, table); } } } \ No newline at end of file diff --git a/src/com/idcanet/vasc/impl/swing/ui/SwingToggle.java b/src/com/idcanet/vasc/impl/swing/ui/SwingToggle.java index cf46f0d..3c27653 100644 --- a/src/com/idcanet/vasc/impl/swing/ui/SwingToggle.java +++ b/src/com/idcanet/vasc/impl/swing/ui/SwingToggle.java @@ -54,7 +54,7 @@ public class SwingToggle extends AbstractVascUIComponent { orgBackgroundColor = checkBox.getBackground(); checkBox.setSelected((Boolean)model.getValue()); ((JComponent)gui).add(checkBox); - checkBox.addActionListener(new SelectActionListener(model)); + checkBox.addActionListener(new SelectActionListener(model,table)); return checkBox; } @@ -86,8 +86,10 @@ public class SwingToggle extends AbstractVascUIComponent { class SelectActionListener implements ActionListener { private VascValueModel model; - public SelectActionListener(VascValueModel model) { + private VascTable table = null; + public SelectActionListener(VascValueModel model,VascTable table) { this.model=model; + this.table=table; } /** @@ -95,6 +97,10 @@ class SelectActionListener implements ActionListener { */ public void actionPerformed(ActionEvent e) { boolean value = ((JCheckBox)e.getSource()).isSelected(); - model.setValue(value); + try { + model.setValue(value); + } catch (Exception ee) { + table.getVascTableController().handleException(ee, table); + } } } \ No newline at end of file