From 654a7c411da0aee5cd9c66b7d852ab1484667d44 Mon Sep 17 00:00:00 2001 From: bdm-oslandia Date: Mon, 26 Aug 2024 15:41:17 +0200 Subject: [PATCH] testqgs3drendering: fix debugmap to work with QT6 by forcing sync between QT3D backend/frontend. Also disable shadow debug map as broken with QT6 (see https://github.com/qgis/QGIS/issues/58184). --- tests/src/3d/testqgs3drendering.cpp | 16 ++++++++++++++++ .../expected_debug_map_1_mask.png | Bin 0 -> 6930 bytes .../expected_debug_map_2.png | Bin 16397 -> 16594 bytes 3 files changed, 16 insertions(+) create mode 100644 tests/testdata/control_images/3d/expected_debug_map_1/expected_debug_map_1_mask.png diff --git a/tests/src/3d/testqgs3drendering.cpp b/tests/src/3d/testqgs3drendering.cpp index 818bbee810730..106da1decacc8 100644 --- a/tests/src/3d/testqgs3drendering.cpp +++ b/tests/src/3d/testqgs3drendering.cpp @@ -1780,14 +1780,30 @@ void TestQgs3DRendering::testDebugMap() // =========== activate debug depth map mapSettings.setDebugDepthMapSettings( true, Qt::Corner::BottomRightCorner, 0.5 ); + // force QT3D backend/frontend synchronization + { + scene->cameraController()->setLookingAtPoint( QVector3D( 0, 0, 0 ), 2005, 40.0, -10.0 ); + Qgs3DUtils::captureSceneImage( engine, scene ); + scene->cameraController()->setLookingAtPoint( QVector3D( 0, 0, 0 ), 2000, 40.0, -10.0 ); + } + QImage img = Qgs3DUtils::captureSceneImage( engine, scene ); QGSVERIFYIMAGECHECK( "debug_map_1", "debug_map_1", img, QString(), 100, QSize( 0, 0 ), 15 ); +#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0)) // shadows do not work for QT6 see: https://github.com/qgis/QGIS/issues/58184 // =========== activate debug shadow map mapSettings.setDebugShadowMapSettings( true, Qt::Corner::TopLeftCorner, 0.5 ); + // force QT3D backend/frontend synchronization + { + scene->cameraController()->setLookingAtPoint( QVector3D( 0, 0, 0 ), 2005, 40.0, -10.0 ); + Qgs3DUtils::captureSceneImage( engine, scene ); + scene->cameraController()->setLookingAtPoint( QVector3D( 0, 0, 0 ), 2000, 40.0, -10.0 ); + } + img = Qgs3DUtils::captureSceneImage( engine, scene ); QGSVERIFYIMAGECHECK( "debug_map_2", "debug_map_2", img, QString(), 100, QSize( 0, 0 ), 15 ); +#endif delete scene; mapSettings.setLayers( {} ); diff --git a/tests/testdata/control_images/3d/expected_debug_map_1/expected_debug_map_1_mask.png b/tests/testdata/control_images/3d/expected_debug_map_1/expected_debug_map_1_mask.png new file mode 100644 index 0000000000000000000000000000000000000000..840bb3781f7ff5c09cd3f8f6c0520c3c1183f136 GIT binary patch literal 6930 zcmeHLc{tQ)vM-Y* z#Z+QM8ry^<>lkH?jPvUIuJiqI{yP7ibFMSjHSf&z&hIzx`+MH|x$paV{xmW;yP0nn z9{^yp&biaZ03b;KAO_JJ;EeKz{;%+3lg~Lze*m^#T7M(*wes8n*!5cH^a<18bT&&b zzVDOBhQY_LZBGl12kq@CrZ)tbDXp#%4|woAI$FGO>|{rk+`TilDAS{g2kr|Vu&WzI z#E$7^<}`npgzc*BB1@vAGu}hnr#5|$MNB8@-?^& z3p|LzgGga?I1qSyhaw72m0QSm5Z6`)%B+fvb&05Yavx|{Z3ZXxTuLpM7y7(SGDpXU zhH@sqfrb-ETp7M;D{1dGfB+GPH=zIyi@^ME9I&w?evgcGr5Ljbqu1y~2&^0egH0a@ zTPd2900O=Lge_3WtRca8d2ZY!`q1B(JZZXofA^j}G_MT}xJ@wcUt)RC022%TR}5Hu z=BTYI0*u|)(RJ?&-0xPbS4&q~MoQA6@EEwO zo>kcv<0NPC@+dtKo;OW};^%fwb2yzViyXpY3u2}vSw2iM$GPcrqijn@NbPiun$0=z zbsxRa{=%j?Z2_>l50v;9PA*v7Ug55AOmwAIf3(QEYi8xa%Uw!!`q&F!9~>bN2ryWi z{sdEFmNlA)dsY)%XW96T&nEUQ!J7y}GkxCm`Y?~yg7$u}4<>adwKy;T7}0xIBD?x) zmSL;v`VobXQ&&yMnBcaS$m&ZxbY+N|BNfE%H0=xJ{!%**U)O&zw;JJF1dO z--N^!y_?mjz423V6(-_%vVGXkiE7P@OR;9CqlU#w?_s9X59LT9?tL1$mg!R3Ln%;g zDWNtF-q18mYkf)>DxmHaqP*lByLvDwx`&GD@J8Y!6D6a|zB^x##b+4z-d(%Cx*WJX z&$O4<49d|V_$4`)OB6PA?;sk+j2s_?TRX|?Lqg#pFGQ8>LnZQC| z(-{a|%)q_riQOnBjKGk@*KQ9BMr{{}t|cM5w{fdp2dJ~mko*hL97!QO$X3>;Cy;jq zodPJJehFzzK;Z$&Ar^rG=reHYKZmNrEti4qk>7L#ZzDON@FdYktuE_;OyF9q31rL2 zL$$>3fSZ62D`RpuAT zhZJD9^9sN$=ff#ruVoe>ld5(%RGWfuyXz|pS9PV>E-e)1q+D93o@LT;8fOK0>lP~YMZC6E{@;bLa0m8x`(f8zGzo;-%@n&?W0?3!>9no0rp%Q_W&@+OI7$=VoTwT}pw&3<@9eb{_-y97p16lSZq> zH-l_vB<^Oi^CJ=(Y)(NnItV$UZfOCxGrad+8jbUig7QJfb%+suA`H=Zl{QfDlqLy0 zxPk-ehP?Mq2y*jZc`1M{6y70$J5MF%c3nAuLYiVg_=S*=5Z!B;eS(}Ci z=@A27r+L?{hY%iH?H4G|n5B}#=wxD`%uOJ0hYuHf?zgsyhw3LeLzORsgcU^7pPUb2 zmecI01Zq#ceg6iBB@`a}=jy$SyQz{d5JnQ95uM+TXpdY+N$h_?$-kh%pS#oa7c>e1 zkcLh!!^DN&YYduz@I(UtpWnvEpRNDae6sy_v`^yh%YAN=j?SVwbNN1j5IW2XdE_7vT)N7ZUYMTCfxKz@VL-ycz zNR!%gtnb$MWu5M*)DaFXvO>lt^5K+x$h(+MRF($AgSWWp@`aU@=tAbCE3w9udo52%1C$CEB~^~yRy%<UUx=G>E?q#a#_2%c6@rqwASe`@Dn>xnDwb@d?)pxnqL$ zf4nxceF!(saYABl@!`r_M`z1=Jmcz~c3++v8X7uNq|RpdRl3*OWfe9i78us}d($;* zL8T<uM2u@?u3hElmRwuEh`I7TmsYnr)#JmER?W~XndWg6{xdj43$U&G!F_pOBA|@j zj=KM)dX<^DM{7=#D{#G!9kdvIi9EY<{B=D~GeFL~FD4J9$n3-X3D6jejCb1AGNo0v zkqvstoaqnK<6pF{7BbHP6ne^nbWEtdcj>a}g{ii%rA0MU(Mc`S-!9}l67jDA`S%+s zycnn^mk5agf!n$MZa4XGpltA>klIkZ3e=kR2+fU0SWQ#g0V11MpFYC6B9=A7j4QT1 zdn_C@+{W$?7I*C1Zt>gO>{I~ehb!btJ+2H}S?-FGfU8=Wqqc=VvHDq47I-&?qQgvA zhm&m=O*64u=P}c9QQcea@3-*QN`#YJ zo*ymCR^I`m*Pgm6?_vM>6|>8Aj4)bL$b-hqkn5g@hA$d+YS;8F3&a?jU+)@$J4j8z81f-=$UwURn~ERXX3|p#P-_c zQEV<1E_++kwF2r}{e9J-F`c>dl+8b%lsOe*K0H%qE}ybmiPHa*=d1> z!_g7#+~L4i1I3|%hUJb#n=jlS%4T%$lBKy~aAiDs0Zlsoe7)wEg7!h#ieu=5!q%IF zk9OCDM>l@TsU=ND6_|vVkoB7!1BscA)a^+5JpN#Z9~uL^&EysEI*_cl^y%T@IDG;4 zSuv?ixAdQZE$K5G@s?_6Ay)awG|SIyy0@jo=12mYU}=5%sfbVmLb@gl8lu!)oeyLk zmo2^Y*OC5Bo4FZ~JY>vcdMzZWGJ$lOt+9y5V{%YiiF|T;=h235kWd`Tw%iSsVJH<@ zH9z4@$TI!LeHlH{)BP+Rxlr~!O`XPiHh0&EmzH(8Nek_PK!Brd8(V4&c#uTXO%3~ zgkLrp$^tFa<9V$k&h`tZ?96z-cME*=ZwqZp!M90*3b%5rTn&avlCx{AJqcBnNq*N= z9O}1de|;il)J^a&IZM;(w)dZFST%GBdmDBCpWQ2_qJ0N|UA9;^bO3*sySeirp$p$- zImq_&YOj?oUsR!W^IVcLtsnJzn{<6ot8!|6v8s}|XMk8Zu10R`%kejD#ZivvJz5aq z2@Z#K2=rXP+W^qhGg}epX9iuw)>-m^CL+>Ci)3-Q!SI-opzyHuslsh;Z|t&8jSvO{QGRGaiLE5fEN&deC~ z)XBEA?Os&dAH7h1+Ptaiw78N+qg{?FzaQ+X6^FB_c&iPg+k-Y{@ z9(pc!EEJCy@>hwa#`J~qldfeFO4wFebL=AsiicL=laF@6N0qiv+5Y|NOG0ui_s4D6 zh7$Fau}`7wA~9=|=f9S?lZ#ojF0G5r@3HtTQ1HgTfA=L2Rnoe4?>q{t4Ap@f`!yQz z&t81=ztX6k!JCn0icX8H`Efe2E-Z;Io!7LQfU5PtfM@LaNhWjwu<4TbZq$tbk{HF3 zx6r>$J$~znjEb{XvlN|!lodOO1-~T6(n#JD*_6E-Uzo(1m6FN+j&;Jf9EY_S;-YE` z9zlnMBfiO+4N+4L+1N?vz4KH#wq%D(ak;n9_xB);U$)%@OTnC_2IZg%ml0YFA6{;{Ekwq{WqU zOsN9nkRK_&{0`e7=*XlD!zUPL+7ruZXfPKE-srz~DP6Bo?droaU>5aysvuQCz-jPg zJ6r>ncdRiNo z6C0Ia6JDU(Nl~Y-C{8RJHfS9h$coq{}f!Yuy>%e{W}NN2nr{+)wgFqd+Q_^ zwCR9t1K_!EqlSdQ;jEW!z1}d5pi~^~G?K}OegUrlT?l?-%y&X;i;<=|?3Abn7&u^0Hegdd zY&tcG2Jk+x%T0Zn8b6FO1Bh(LKpE{3W`>EaH2H2Q<@~(mLl5Snhb;V)=v36LI6;W1F(n+4(iBq@6{3wt?)tUOxZP%*wad?=bE5PZhwDJ15=xf{gh_s%?1f z!gpRgz$N%qkte2)@2HERPX-KSsuQ|W8dp~WX?GZx1knI**nh<@9@E3KseZiT@}D`0IsUCr}W7OX~D9E#WE4Hzl~Y^V)b z>Am!E9q#-+XAB_*&`%3y2rXWdChOJ^)5~XcRespm{GoOR^>a}=bT2^6bXu`4XtDTK pHUccz&>}9**ZJW@Te@Ga@i-~Ct5>+*G6V3Xqit}Sa?&B=_Qqyi${AbkV{1L;mBrIGFuX+gS6P&%ZW zyN>_&d7t;gbMKcs#=U!p4A0r|ixqRtHMj2`D$5XEpt^t{2$7uZeN_a(LL&%j`aBkV zQdy)>1i$cYWwjj;o1>_X9QO6U7dnfK}JCxmKojgyNca*mb&QRg15;p_J*aB=&DSq%vOjZ)?%JE zq0v~m96pjH$;Jl39I2|L^_mSwN3#}*wdxvd8WCA;OPVzX-Y=~+CMx$buMf_9CCyjt zRdRHwBJpj%?PIL5&=h*cl_&%;zK%tKAlT;(5rmKdjY4?P2rg2O{Qvi%a~8S&%Ld0Q z2=es?W<2#K+L4O_48q*i8;u(?-|9|QZQ`uYcREz)rpF-+(&u=l4dF-E@h&!Eh@c1& zH0oS|?@5dIaf^-jkxpMOf;9Q?8k&l@tc?d>lTs|hYUaTu6eK4txZ$}wV%jZnR;~Je z8wc@E#&Ry8Kih9P+g3RytTq=H)iFW$fG=;@r&Lep}$DRjghxupbm7Hi*`3haG zJ|*PR4J<+7&<6R;bz7u_$bBRemxmHtS=CuMwD(ZNI+zYDsop<&qz@HP6H) zG|Zg`OHe97$l>{L!P9h|R}I(EsQF|9VRLxQ!FHd@&bRqQ_qB@oM84s~VM1yF%YiJ7 zbR85D^WlP^Fq{)&V>#3KMxOPZzBX=X(7&aeURaoo7&7qIV=b|rX>1E)5&4RRi$p)b zq4@wiK68AqbqJRbEH5qTd!OvQAs|0I@d|1&DzIw3sa}tExLp5L#A&JD`(((QQ@6Yz zH#fJS;34bIN>Mjk8lC$JZ=aG>IvDW$b@Z&?_JhsK|1LrMVt(`Dvwzjh*XNAjMG$AW zm+vDKcGm-(c*bn4eEk}?l0{7fQN@9+HN-p!zWm>o^gr(G#wS~IZiGP~9#8aUlE-G- z(R!VP%bIRlKYM<4Z*T8r(-oCy>#MiU&tsl~w6ypUQHQJUO?lTX`gtt=jxz9C`0NjM zh%bX+ckwqlV)r(Y8+h3LYQpc!-A{?(Gi6KD%+t*buRL7JK3mE^ZFl^DAmpF0aA^WC z>&X1{`&x`?VrFJ$$nW%Y=Aw@%M38`V<5P}a)$WWxy{5d_Rwti)rjL(L-BDE?-^5Mh zOKgVq73ZgiPxf0R))p5-OqeCUod+Y}f*&5t@8qF-$&wa$74jAbwPIOPQet1o zjnr$OH^e(yRPi>i#7EE+y!ZsRJj_o~uzvr1&6Y~oeoi)8%X=r=AXl$Spizlar<8+^ z6AL+a9o_d(PEIabOX6@LMJ+@5L3w6lr4(nK$H(`5SF4N#ib4o+c(Hhk4BiI`uPFmtd0D;iCI`jY|h-S+w=}Ul_yYVw(;q zdj5k7WBU(LB7K{`JEFMssK(qSj#i4!_RdZXJjSrqzWg&K+RU=Dz4}+!WfRUiojQ+8 zEn`fyfB*jd*WxNBSc0u3m>+EZmd}h{HcZ9)x1^6*(-PsC-ly~4bmAW6i+)JYH8}Gb zNu;X0*uh-bdhJo(q9&u9ZJC3stB_|85^Q{~Kvn)^tnNfdMy4f8BU|wfBc)H#ZeG<| zdq)RfPvioJe)Y@0zrJJK>+fB1$6GnN6}^QyU}^2`?Z1BgDz{XdO8rt$ut9(JmwvWT zN${fHPmH_B?QC{%-??*#J#DRKZ!$Z-)@_4Yx72dPb8mvYI&-6@z3ymYJzXV9+--ZI z;SNJg>apiiW(GX{%_VRV?YEun;_1|zX`7pyXq>9V#6+HTPImSp4vWR!v<7ZYy~^8j zTg|!PK0V0~mWT51Oa%8oJKV#TTq&nkP2FBF($E;d1mKQB>)L}q*mxI3!3bui_NUHH zro4Aey~*}=!y_Wzxbm~Jvv+2noY+Q1L=aKlN-ZvSe8{OlnADvS?l%1jZ$;&FK}N!D zqX93b_F{dAB7K9%@Ox5rj*g{;g#rmthd-ULec;8k)n3=LOc%`qZGXqcQe}F=w5)d2 zP#HNa7!PGhx;^ne-00u%D6j*2+9TMbIJBP`h`Vmik!tB)E*OP-hO1&WE%B54wzNBL zNNS1dQkTej_37dAl^#aMD@G6*($36e@r5g7GxGHZ7u`4KC6Hc*`&+v`t^X}GG2 z=->N<>k$ij#V;PkkKGQ2g`yF5lx1b|&8(@ZNlQz!sXch^;IP%;ix;6vK*kZxXR55b z%k(?ve*W01*LIK0l>53^T7M*`j?cHpNfmQ1DD5i+(8W=SdOszOXNcY1-Rrgz){RX~ zzsm$*p7NA^_ARB zaeA-)r}ZQEH;;E$$AYB8IZEFwz23jRrxRHMetFlLCpGD0#q`~5sJZCnHC!&K!#~| zqUX_SS)6t2Cl5dxkZVc}_MgE_wG2FWzzH+x zozny&D3;rZ&n&-Y%N*s-JgV~yB zbH6x@@jl!09+Ik1h~&Vh8zd6?siUPuz7cS>NtU^KUR>QF2)ZXNN=SahDp`CaU7%;y63lmQxHa2wrA4PAaOUD5*XKRH8604l!Kf zpiKqt&&jC=3%M_FJjWu@GuGo!e*N#LMgD`@Tfe%t*YVJIc}}oH)!lbj4i-{^6w9tZ zbakz`IN>ngHDWYO*F4&%B9R+5Tx&?b#>vS^L=i%C)2E}o9b@be70%h5?F<$pDf6vQ{O5;n?EirO;4BhUt7+vI|ZoH9u{KBW1MeqWo2dS z@8HqR;ReA8fAJi~a11Xgo}npz4iE1iZ*|96Kj3IobdSu^!nmD<|I_t|65 zZ#DDXNo5=su(l07>?-Z;k3y)=x91XvFr<4+AcQ`P^p}k0c56DKxFIIL+KH+HYbN6Q z&Gc;5b!G3U%x21ZN27lC*`0D`$SZbEP9-NXSy^mH-=ZzF*Z#zv$K0f;E0g@!+YhAd zn#0^aGlFn~gxhAlWwkrGvYL?!=1srbLq3pmdqKLut)nHRBmafOv!`GS8kLlm2GR)i zo+{Qy)xTFvD(e(5`f6;_9ZRENby6Zt7T?Y>rEjs)qovyNeTF0sBz+?E8DL zHDYRkmE;dxg&Yd)nX3>xrfNM~gRjYFLfZQNfgFQ8Dk>^A^Kx~{Chb~ina7Bz|Dhp6 z4cNaj|-^`3eb2Bqaesgsa9e>;NfSdfHt&xD9iYoix@<&^@ z+Jp?V9PZwI#SvVKTq0Mmk7*U3A1UN`r}KS34;zCjzcc0#GHK+SXrFCzpC!N5M`VSu z1RdlC#wI4LDz72I?-qQTqb5DJez;7!`l}9WFZcimLYi^NIG@bfSG;|ifq@mt1XSdY zOUy}IjFI4T|BYAw;jRA>k=ovhm++p%)J&Og5an{fnrFX0a6>KxkO0T)QamL1f*`RV zWh9qgrN_bMm&s(C$Klar*OYAOpr9Ei7X01c-+wci9OI!92 z`12#~j?H9sYRLsC`?8KXHhlD&wiW z54XAnOLSeZCr2K=Xm?MSVp%+3o&Pt1*C$ z7%=aLNaB7bppt(ii<0cUTp#EHIqR@Tym+ebdGI?*EB6Ug$E`lL$7W_`_nzP)3-s_fmG-IATl=5==?W!0;8I@} z9Z!q{n^Pm749IAfVM6EY8fSwfPWNYnIyQ}h#L|t;MbroJGZb#+Z62Acu>b|`}L@VLt@vG_GNsSw1PO#)`f*abb zJHtjnc48bYGsnF36<^S_e=rYpZT|`AWt%2D>2y1zp(u8T4>C{9j30IR%D?g|{<1g> zhyHjPkMDV>;LDBav?%>b%aOuqCn%e~0yy5QT+UPQ+PcJt@r*C%zCoA(m);NgOw2Wq zwrT-y1H_t`il5iW);u{Js#AW3jbcc-TyJKvvorumg1}4M@YCJ^BsQ3AxT=&N;n%w2 z0+r-3d?e-_*FwN0FP{NO%wBCwQLTkycJv+_4Q74mOx1Q2=PEyey<>Hq?-oC@G&5VQ zbXpEqg-yr|ua;-k{<)YP?gmxncH`mBa@fQ}q?JOwz8sy0W>JdWCO+FBeopO+!noZ7 zM2a;HGU4%vY0~1R3)GQrl$ikt#1sGhr(qvknXnG86N@JjVmOtf8Sn50MS>GbSyQl97?r z|7|prMf>tz#Z%+x_|oEQMv*35XG6hIx5;aM9TM zp2KG*nT3@VOH0dQiP^m)qLS|;FjII6wV*7_=Lz2U|*6x+UOed`l4 z^q#5z>Q|*Z=RzdR0>e_iqfe-{R3{P zs-r{A>`BRTQ5qLj3OsK|9dzjSD@Mw&+(uMhAj-N9kCfN zq6nw4fXf($m28>K{PJbvr6}+W={o09S*&HwPh%w{B!F+7)SVsG1qNQMo8l(l$GPO9 z`xe`_ph@qo5qLt`q+53P{OkoENgqrVWyi!(UxBfQdIXAWQ-w^CT-+ovMPh-U^iVC9 zPEJnt$FPu&lXMiS&P^k-{J>;c0`3QRkgoGL&Ckzoa#BAne4Jsh7JZvpj6SpP%IsCe zMl71n{dK*1ZW~X}nv;RQvn_FEWTCQWMEfUR4+v#^FHlIXu(7cL=P>RNB+6*V2a^Fz z`D6I2k^eoc^nHMsX7`eO6}Yeh>nV7GnY$9j;yNd4wtE#|TlU+jk?Z#n z0HO5vdQGwECA>uOtLTIs7t)pD)W2jKpx&N?I;v=K@;PO=hJ1p!r?5~|-A!(8dRX(a zx)Uqm8oVF{KNAKBL=DGYbu?1Tx3-(!U6C7ecXf5u*H3Jj74kmy=yi_uf+UA;<38Crdo-yJX1H>D71(zf_Ho`Pz!*7GP_6>5tp!t{$>G?;wq zd3H3l_fnKD$Q0NuKvO}fBp=s}<8s@X+_Fi`#s#(XjgAVN_uuT}y!Y&%x1GLx>flf`w%XO!_RiQOFR#RI zwwcegOLY6ERLn7x@x{}RD7;yO>VK0w7*p)RmOkHLnq|D-N`o}fq5^(ykK7oypaotA zk*?capUMwk0!+WQRtp@T;vGDs_kvM9rA%JY4dn!3(rO; z%VLn=KNJHUf*(JA{Ez)Yt@^^!lID)J?uPKu?rIg3fvZC(LGROJI6uDW`St7Ze&;a2 z@EsL3_3z2A-@kuvD9WCDc3$^w%ViAkIzQb>$}^ztzvfTxwcuRkPek3UWT{GzL6a~V zwmD9_?VmPq*vDZbl>Qe49cZC$=1vl{`?YLvRynnvvE)RCNoayZtPT|u)-{k#@qIZ_ zXu|tA0o)~JWd?4GY3lV|_b?~}Zi?=nCvdd{+XV>6!7u;?l)GqRu$B^PTK61J@DdCX z4wFD(ChlMX3}|a8%z<>L!PU+=q#UA<9&Jqy+!z6sZGh*|t{(80SxJ56C?Mu|rWv7t zNRj>+iliUo(0l~uOKuKpV(RR4&r=+-NyOqG;IXV{68bz|I0IFy?^{WfOXP^mO${S-$hzCKvGbA_Yt8^U%Xw!MI@8s#oRSd#|8%Y z&3YO8exSG{aR?c#DaGY<&TdIp78*#~J?wnK5vbuTYO8f7_=moUsO= zTGES(9Kd%?yW-n`B*UD*W@vmHpC_psYFAO#4p?*PQNJeml3LjD<|09nATfm**C($M z)7%8F$@M+F97uduhC~s{4~TT-U$+_|A)!cRv$eNXvg*%=wS(pQbtWno=U|?YI>MIA* ze+Lo0__(8#A)@!wHekca)VroZJV}M5wu>W(+3UHI?Z z+1uT%oLJ*EY6diH(%^%$S-p}Byn0!g7Api`t>1tCNcUQrC7Ngh;`>_78`>>sNPY)H zt`hN1APlONn_=RQ-$@<-6129oBs|Cik~A`sOndjh14_v^srjl|<>ilA0i`wNPJS3$ zjkID*i;ay1+DS`Wd(pWH$hqzWkvqn%!7zlT-OJ*K3pZ-^(APy`jM@-Y)LHj8-lgSb zr*XEl)O!Q@Fw$uYYuUE3@$r>^nC)5{Olp;U>V>s6otT@Wnp#-kz;w35Z2^HmS`mS) z!S*~oE-hErgBwAj$w@=n)VI)14`7X#w+_awU7VerqiY`i$0QTv#Bs=@glRRZx&26Q zX-YYBNC0w}I-1-IR|O>ERaaL~z{AdtLC6@81%?ip^XhWt-)q^%|1s7~S-eyeZQsSX z+`PO)SY)fVukR_;l@%AIrJ3}9dE|BiIK$b| zaoqdt$i~P>i_+Z3xeBLluKGbr~5MQ`32%^!lftKg5>hSFe}Nnzp3{kO3V)pP|1m zMS;=qoC}dTjC($Auvh5Czt1EV)sAt=H53a^3rBhP$ogK#JsBDQmf4Dx!j5~jX?2yl z#Ef`3l5`j^&M3a?T%Z0Hy=5D&3N!3=h|aHE%DQ|*dUz)unceHmx6`V5-QI!x)V-8A2$p6GdF|YDQ2=*NyL8`G;H+Dm}!L zrq=1_O2SC4%|(2^r{8gX`aKyu&AvicCWvle{&>Nxb2qm_H!m_Wvb3}`K0co3!P3;} z>Xe%(-3gbw%@$B`7Ut%^_THuJZhRvi8W_N2NcqXi%1R zj;QLHp@)*i4$RN%jZl}Uv{XIOQkJs_I{93qvAd*3mYSg@?5<(({3`b7kH#i3Mfb(&CeuKbeB`%!@UK>Mgadc+I$#S1>xHO4tGHeJP@Rp*X0 z&N+K!{rn;QNIh^*)uFYiI&bI(6`nFh>Dohff0qiIEG;d)fBzoSu|U6) z%+1bbAN~3Ml`gwHE5GG%0l=z-`QPoN_V{d`+Jt3ew1u6tJnmS^l)w;9FpWz`gH_&PcCfd87`@sHy5Qc|C)+c_Mc4}N0^=x8dVmHbszc@a& zh3GlaON$vmlU=iaS0<|VfIQXm%0tf-rnn%^{i ze?U#eR40bM3;2-DXZ;E9bla0a0z)Vmf9MlICKEC=*9V$F_bcO~5}%aYpWha&92}kT z#EIu2sG`V26_fxHWF{vkKZBZs(!S4tmPeHc?@Y7ZDuVBt|D0r#mtf;|Wi*hQD%@A< zCI4(5csx?lovL=-qIDVn?ESV++`Z95QqCYPytc*9OU|vJZ?PlfN)?MrBFEXbJ&se8 z^x4yMPzE!~7o&14jcVjGWxKYNeV>d>lIK?GuQ~;&nu7;{!5yAHk!E?^Yv@fOs4OYr zpHqP9XmhR&#h(2_y2Yek(C{i{>`6xwpK0Job5qpR`Vb#J+#){K8^P#9%r4dQaFt6d z62souznuB|a+`lPD?3|^PUXFaK5z&ODQU7)-xE%CD~}@{1@s?O{}<=_ef9kRQpB`u z9i0I6gK}sM`32;Gt*G1-kmh|vcdtgj#zET1_SjzsQ1Q!K|3TqBB_W$ORBW`rSi>GOqq9q0a>hBorE`3VBBpy}cyNXp@8nmhE-#Gk5KqTwKaO6jY6wL39)P0~R!` z@mtGN!l)}{fStVR4CeP3%KqFJPs-2AYM=cJk72`+5C^3Tu400)Q@sZ*4#sEci&u8c41Q-nUNzcyn8;3Yhio&%|*Ttwo!eTgUHypI83MW zKtEI}kOf$XNUt-Wng0N33dYO;6CuI4FlJ7fzj#fq^+@k4<&a{IH&^brKf6&SZa??7 zd%mNqtE;`83h>qQ)3D2M%3Z)&908Pk%zWNIjHb5^8vUn2ZpehIGBGi|8!q8!edzKW zvn1VldR5`7M$G{|d=Yb>XP&2(0$mUh9zHxP;IS{~Ni&7+*ZTq2*iDtsf^;Z8BQ-S@ zpy$`GJ>nMs_~PT-5#@&dvghA`C|h<=d3| z9^w;D^ecd%c~`yE6|N2!ATDV;?E`(lat-e$}O>-meQc6C}d7;xt21Js zzGy15I^J!0)jhxUQgqY%BGRPTtAJa|q(!1dpbwMrC#DCqP2vxR>-zVEVR!fHb3?%++PgFQ$aE!Yx=N`(L{+N75qPc?A8?{L;=>ymv zx&cLBzy9?l7C&E?F7~l8_*1W(5N7<2E;1rwSs58Dqu5yPUMvf0j2B65S7Z$kxlamW zdPU9b&$o-`1pf>I3uuDqJTRDOpLt+pG+Q#HFEZ_ZL$qJkZ+)i!4D5iD$_U=o0mfe^1SU!-ad zr9dh-`o0CQ(=T2uEG||6q)DqP&&ZeuIvjsgPn|kSuC?;H)0zoyXb=(@nE29UiE9wK z75qAHXjwxZHgd{&%xc%3kBuacB&_hwbSsT*ksCp87Me4-;qo&=!3)BULW}1mLnkn& z`I9uG7$4T?uR|`KivgC^&ky(HpHO72?TajVgHRZZq)VKIe`N7?kOx3{(758soLlBz$< z;`S{9s>0r0-C$QCcz$lKH5&j+XIGbVh3@XEOy1|u*RYM^5IVGp_O148kt9?-JhmA) z0!wIQj+fi@(sH)3JSccQ0=}`*_l_ylgr7Cs>Ca*rz}j=2l93VAR8(`WZH7m&P@RPl zMxM2w!pb*m#FY?#(Wdx=bdniATCyiRrZ@{g+)bawf)%NRD~62 zwP6L({9%_rf+%P1>AN~2$kh{s3VBxkD zj_BiCqT{2ZY&{BxShAN#Mn=}_&T7L;QDU9Yg$6(@&)QK4H9Zrn$&U?6T?5QvW6-j^ zQ+sxLB%cY36GSgjTU)Dt>+vpy2CjlkS?6jfZJNtvMT9uA<2N8c-C&Yd$;!>X*%bZ! zJ5INx>>r(GAC9u}vUV>&SLk2tB-pyl=$UpL@pgbZ#ASp}&<~}zm=Y0LYKY1SdEn~MynX9*ZW39M0_`4eN~*XEUP!WbW!Ih^J|-& zfxFCCI#;kQs1QNMBFw;4-yB3gWzbTn-*>v?G^AH%H73we2#lGpnp)k1T|tmaY4aKK zpFFe|n{%ovo_<*xHH+;<4aGKbWa8_z=vO$Yta`djZ~3VSQK;jAd@qft0u)hLa%okS zJ2bC${R=}x*2=%t-gUR97qtCURdobiO)w$QQ$>S{RkBHba#`S9@dk+bU_7ec9h1IO zdBn7pRhYxX(^WxFFQMsdx-MH?8X?xy)FhigOOEm-mdmrsvAP?TT2HWDW9!k-(gJ7n zO6igvh;k(vfE!`N1t2%VOMP8J-b6C&HndAPXqG!ftnB%2H9npuv(>i`qaT!Ktsytd zD%Ks1$FIviw}JDF{ppEU-PC%}ktj!IZp9KAy0TIj|DJpK`;DzgAT?Q;(w7JxE#6*R zTPxj5!=u+Lx=JTNu$bz*sYcma)G}Lde2l>C`e4SkJ`?P?#j^u>b}3$L_u}O1we3KWwczjz!zqp;9fhf}HC80? z?Sq@p>rgO+UX5Cd{-Z~aycgMTG=#nZCpp?%=VoJz6>>PxS^Y7xPN3-|-1oo8Ahg2D6hfA6P7?sN`}_A7A38X z0_DvsRiAc#kg7i%^n0goU5rTfsl^=X+)ZZx^E$E+p<+lm*%CM zSLM44mf~u1uywcNq|?t8yv_^Q zlxHb2(FTsKwA8urHGYWAJf!w=NPkxb6%p3eA9tqWd7j?0vdR@L#!Gb^Xjg#7O7Jv( z-Y#%VP(}fk4@?ebWQGj$r#p%MxLPmzS`pe89jx~QJdb3clDWqrcXgFm*1$cf)Z>!2 zns7}Tc13CFF5I~PN2J@R_<%Oq^RD<9{BJea(!7!7p95t(I|m+6>p+P$*BWvtT^C~6 zGQVY4bc11aarhF@J?FJs|NQyW9&Em$0K0W9Xocw&W24j1@@xDn+jQg{k3WU?e$Eb) z)4bUAq|M!3SiW-k(HNNbNcvJ-8WTb9T}~P7UOyEg2IgF}#d z9MKGkZ6RCb!$u1|<@F!fg8Nh&FcC1Qq+2HMRhN=K;L>3ME24&Jy$8~X9fFeZ?Hs3X z(|{;agjJ|E|Is)uhat+lm!*Hyl&#IDCM!%4O1-elBOouMl#W;$sZ9_3hGt%jkWyAE zoOj$femc>e(fw;+wZABq$>m1QeW+z%4wrtmap)ANghehyxQ%*A@<8uBfYTK_)f5?X z&@vzAuHF9yqFQz?E-oOO*d{L!5R8qEGF}Y}u9eS(Le_riaA^yBt$-6T%!D*||&73=c%YP(_={Upcc}35V#NF(*V)s_TpLkTSY|=0b=p+#! z9Mld+7od^%$f^Jc+!&@spk4CAL)SUYL~vB^l6c)rU3XES7mEdLQf|}^-@VB~nx z^1@55ug}FZq#l}&W0Z)|Ja_RltgKdHd$20acgPq8eUpa7Izv{p*2QWM$gBAedL27E zT(Tv!>a`NSlBlAVdo+6{CRXh$x-jIn?5zvdBTlfWDk|N84%5mGK$)cJSw!mQ?jH6t zpdrl8g8!#yBu9riZ~_?JRUB?p(%eI9YirxT(jiZ9#)trL)?gK%cPDao z4 zO+mfe93VL$^ee@G8)UogXWez%8PFoQa3M9@V}D}?Zd`PXnsS{_K&`i5 zdbe~%`Ny_K$PW*JHFyD}rvnJ>Cv{$)p!2UkXgN%+39ftCpq446|MHwHD?|s#Lp57n zB21jmC`i`0U3|Ou?~vB_;#*FYbg?J}N*M13c;Ex+wz8g89O5{-JSyBNeC@*~g|64Z zZw#?+mlt%I1w>t_5m7C64Q*mS_q53X&Jl6U+PHDsEkbwnupcK@d-c@Q+k& z91f>pkPOW3OVO-;cMe_O|2qpWG91c2F~7U0Ge~{{0_rZ1Ge@X`UD#!+U6Bb)4p)Vs z1_<`B{AvA?=ChaUlQl7Fco`~)Y5!u;X3_HAk;%3eOZF)V5X+dwNwWM$UooQMy?Qy& ze0{KffFYc6FzhAVwHNhsYMeb65C}wwBT!2vhDS=v-+FBC2shreyY4ZYsg`kFSBNN8 z>e(W`yomEkH1Pk6e;B_}+f?&H2Q951w9+~{IzY8BTC{5S0o%{X#dUhJ?(N;DbSK7~ zhvYS)jE#Ycz>&ii(YZbxnX(|Z5&STVJuEI(o}T_3xUqDda8cMCRrxn7QDo2#g$6tB z6F=i?XxjU3L%vB-Y?`e6@X|>q>*=Rn26USD!2Fg{g0P0kF5?YKMp&Ue7=+1SakFQ9 zFDZ2Xw1kgu^3`dL6`FK_X+U`ni901cbSnz0`CW)IreR1z@+3sJ4*y-LNk=5eDe>q% z9CU`1NKR2d#c3N#T*#{*1qyD|iBiD+WaYt2YW+P#M3Fvb1Dg<8ipX z2$%=js%s&5j8`#zx*k4!K?-<86t*?dIYbiR!~gt(8)NXvbriA!#NNB!fdLIQH7Q)| zYryu9Bxh$^bSH|*XLfMcjXUa~)vv-Ru+W1818HaOuo)jIcpDu*pw&Sa$FnjdLi4V81Pb3PmRpZn+ha@9`aO(f@$_HoE+)i?~Yc?KVdTbU4VI-h#TG zN;?{QKwhew(X}ra5Em&d8jkPlevBE{;AWZG*&lo;&V%3veGZgq>W(tlpFv)v2CdaT zrMGX5d4d`A^z`BctU^OBn!+R*Bk3q`f91j8fmfH$1nLP?wVjR*$uJ^{t0x2$mQ8P= zTNO|a4El|cE~x1b$1eU%0tOe_^xA_M&=D17S}D}?lh;v^_uPgT7!v(=>>($B>LBG$1po?uu41uwo*PfL>Y<_r32UJRS zwt@=_Rt(4l;+G)mygR-}lV7tNtAE;jr}pv~9j5ySiUXkPPH`=a5^?z8AJEBxqqGBQ~^j6j~u6@m6=vt8f|kFxZ`tgWst<;)@sYd$t)@^vyLXS)0#PnP*W zs@LC+6(b+yz>i7}a38$*rLxkkJ)AYa_ApD8jhlNtQpdWd0oI8{V>6spEp&uY@Wb)n zFST{_MIZ5f0mnHd5t;O4s2pSfsvlMJ7ATdfp}8AM_?(3h_rEgIJy{IIdES`~18 z4Dyzwq@>A{3#`=NFudR)!P{XF&J7Il>uG2(5%-09R6-9wLBu6}w1p9kVkkOCcmmzv z)Rmiy(-4gKB_s@32YPxw<29t41hTy?H@H$?fN-+k~T~R8j9cdZ?Nn9!@ zU?(jqIiXWve9o2%xNSI&m+MX~`iSK2KzMEi-6j_o$jIF7?7k}Y-16ai0TSbi)zY!| zA3lKKLqu2@1inP2uMu2ye~IUjbJ4Ysywn?&DJez(0n`0na|;w|A$E`S^{p%MWj|rs zh?G(@?(%RQFb#ye>9M5WTIhk5ss0OT_?sWm^1_1bX;}*ev@QZr8D+3UFkgkpt*tGL zJ#A#e>nNTfmRmrQgBnsHqZsIXQMc_c9RA12bArs!+?-bH*xH-~V}Z8-r=3Xrw_t4_ z{GOkmf(vbGb~N|JRZo^MFVyh}aRP|W!af314RRlLbaX5(D^m#l?$UvBU$i;eU6&Wn z@nYWZ2q}*c=!l)EtJw!~n;}i^-fMi^n0EH3S5_nOCMpRQUU1*M`F1^W6>j!KTU%RK zSJZ0swre^@{y=)^80C<&xwW-(hyr?ug)^w&c!0id(vJdo@8DkG zep3~o!$=+dtvo=Xr4t#kunCNmb|k57@l$P0I6>?#lN~e)rhprT6axp3L5icmO&#)@ zr8DG#c)F^5J|#6M8zqHr!houeZihY$$|ZWle?tJ$AD7kwz9LGiBDDRncdzV45g6>~ z75roh<3=fTzTIsav zowE@Vz`S(a8JwxYR`{Yg3}q8j#?dXSG}Y5{xtdk4K%U-dpL2eG-g{YRDpcQMK;`3@ z!LAHM6oi67tfr903L(FGwY6Xk-WpX^RZX6vyJhgZ?Mv546@-k{J@asEoVFt^eb?`` z=^n2^E&cr`tr7@g2@6;v6%7NAYhdd|phdw!FJy0Af1D^_^#njHqlNh{#}M8H)W`4` zgKGxw&w+RFq@<=cO@5?Vb$7z`?_7tM)LK({2DF|M58H4&IDof+<>lq?t+Br(@ZP%P zeMM>(M+*d|0qjq&eWMj~Q(qcIw}#(@x1Uar)`z+m0+-PdC9qrxqOPiu>*ce7(+`LG z3g^6QLPJAO1xWGP3=y=ePMI|)EWbeaTx@KEoc6FRAKRsx@vMGUX8#pA*3I4(!!g;8HH^IBbUGE@ik*u?jDn!iweI&7b!!1Y~(7fqub0a~!f6?dS!7*A6#vc;KqSBQlA#rT(Cc~ z_VxSCZ)VM!nKl2+%vsA%zkBaF=ZziDe)jXed7vsse1Y}?f*`~S^0Mj(f{j8Dtl9I} z@JUUXQW^Y3@JwFM89_+CVg6vnaFWm=2os_pE2HU=v_7R5O*izRb&C@l=hMx-$L_*a zc9U)s%{Fr%x(JM$EZe_6dmqnryCo_qDu`Dg-W;2{PS6-J3nmcdVoOpGF}-tL=#ixp zwX#{=<0j70dYZ|jfT?#wHwhBSa0E%umJ{!&=d+e)=0`T9;HxTdXc@JK`0X_wXvcJx za^W?_8*;}jUq@aK;AO**ZVO#QVIjOIBwm*B7Xt z@p70pRpC-BhGV=H?f`gbMW=*I-zH>w(R1_s;lBa*?LPA0kh3xpJ$dKE% z=S^FW<`~c9X>gIyyHvMkP3gU{y6@o;At)?dUIaNu)`TF`xBoo`>;L5s`6fPFM`4Cd zABKd6Sm-I{sU!-WY{xa;nxaHdfz>Pz$)ea&e727dcNFvd&kp>Brzp(@<2o&B2#{a0 zc=V(SCimQLAxy@aOz&E*VUPcGwR6tcD=Z`_fNxgju*<=3 zZqIAa-J?hHz;?3Au`T@Sh_Uy2G`q&>Z->(s+nw+&YMgUPt9J&7pH(oP{t4O->gwuJ z%&XmO@SbZ45wQHhJ9q;@;XJ@%o1TM>-AOr{bm0uAfX!aKhSHdKZ#BD7>A0 z6+U}RuKm_$>pK<3nB5*U`K#3UFpRm7NIukML9pj!q~?D&89xX zwjC{b^z{{S>2W(-%6mH^r0JpvsYt}>YUAnZS5oP^&4wdoVcfBR9e8azwrXbM$wZ^z z)C=C>Vv|Pq&FQ_>kwp9R$ZT;gN?-=Px0<6IADN7gPtAg{)$^uJ&G4ssDL@qko2pJ} z?D6xZ9E0aKTQdX+y^XLn<)rv=RExVT^;&esF4OcO$Zin#(l?L!2)Wps29`AxZDKAm zINkRU9FqG8{7rT1pS8xDp1`Yy3k9YwAh(Im&nh>GU?ULpV4zc&}R5XmLWIQKmo!OlZz@FNf5NrF4VWEp`gC}pD&kDwHhO)WZ<*)r|4DT z8K1Ic?I!B~zWcEL=jYcz&m-^6`qo|^gjxn~%_C_uvFkshID0x#VaKMHTz7VQq#}&_ zni30qAB)}=%;{j#Ic!;*`hl@=(HUV5L_M&fuO3J1m5W`8aeumsOd9 z?divU=c&rr>cPjnII&0S$aZtOUU=GLZdRBTFG)7FXyx(H*qENKF78@_3JbrCEN*?GQX0LKv2W$&?R~RTzt(NN#&vZ!ivM=LL?VLsS$cT<4?FQ0JepiM`(H25kRn?d*s7?OmX=Rut>+{U zQ_c=kW)8dE%{^xte7*PAB8tUmsJg=Q_3r7Np4$^;+pNoo;nd+ata{cQfY(0y7w&?{ zA#H9oWFv=1Bob$a{TE#Jc*Or?L}a?kb#=I=Ml4J7ZE;DOTIAufn*WMh?MRVPt;=%1 zfK~S~d=R;KDe>DrQK-ZLheh`X@q<5KNsEnYhh6US(}3~3|H<%~#m3IgcPTAMx$;^a z81LG2y?0lFVBpN)Vv4`9vGMfeB>kfgXMe-asE1CA zo2J4UJi+T3Jk6VilD#)X>+2qUJ$Ix;D!JPWMws+BmbHyG@ir5g+Xt&;&-;`K2?^#u zd(-Zgl6i?|WGTgIYilbq{&nt=bpK9)F$(FuL5(!d);^7TOl+eQD$pxyIc43PX_Ovb zmodw8UaHNesySc{6C@umb@_V>0r+1of}cPiAPX_-U>)-;=$Ouib9O^#xuwzkgdb;v9XLQ_Jzkj*46o( z9v_0aYAd!kZU*2H{_aUBj@GaD+T-!tB0PH27;6D*au>(=p)B@M03mnDNN-zW4PiDE$QInylk6_1Xaiok=^kM@mu-K32&c`<{n6=mC(nYX==!KC zwg^|dzQWATV$bI2r@O^#2S?05JV|UI5T*E^dMZ1}Ok$Rg8h1dNNl%5U_Sy}L^)*ND zF5$vwS7t93 z=$F5>w_^UE!?3J7-tM%f`|1Wk@DD_-6pvp7C&46hQEX}}7T&|>KJ3w5{+h$z^?f*y-xmLjpY# z%s5Rll?f$WtCfu>c0Lvx4t_gydZU#NCiD(+xR?ig>)Fb=O56|eCYDQ&->RE_fSBg; zQ6Z^LvGL7CJe6dL>g?>6QZC<{?_mFyqdu%rRe69NsC^IT0UL=XG+ zp%0)S-AOB&T!!)cZghxnlTdV8qM&(aqd>gdP(S{kiIl}ml zdWEmNKRrRn8f}YF0&3pg-j0rrlMW`}_i$UK?btThIR|$^#QuLdsVt)5(l7Xi)iKbR zme)P2b)u9D9n}S3e9@_?i<*q{NRaDm|KWIlKY284Wf8I0{V?tc2lr3*Q#G7LRbS?| zSW>Hz@EGn}QwWRkEq5{qw{`{w6S)sFG)*dZAjoXg?R3An#J1uJ*~;elHD{GcWD%EaKHxnAsK2XDbbXI!me5d=|VNF;f-3}4a-X)zhSU>|(J(53Gl zPvdc^#BpDkpSi!*$LUnwhPBd8zugSRhz5jLJ{ZfY7{XfJb_b_Mw(`S@=yG?#VuMQV z&zDcZsTPa{aH(*RG^#NKxwj3gUn}Z%00BRM1sss_bf8UdNewEbk4~|8x856=3^}oZOIdLaP z2c5)TSV(-x1!|L@dtN&`J1Ujfeg7c)K=>b>gBkxb0Nwl!({+HeVydUUBoKjXtU9TeGjr_knhmu!K&*TJWl$iLB(3b(Z)cJa*_z2wH+?v zgNKzwfPQEEbISvYQDeEdMyZsZ(gH|6OM-FSMo)XpklWj2O{x_7eHV`Y78zHtefBFY zE$vTkprs)~*qdTXN;^vd2J@ISfIC1sHv$7q&V&Tbfbj4K?q6vUzcu7Ck zoRe*AY+}^yE4^XI0hWx{c{(ql>4a=^b93dbFJUop0vwe(y1WF@{6~Ty=h{@e;#%7`1p;v00CrKQ_|`36Z9W!$`c!iNa_OZf>FRq#r*^xjJ3wkZ*6&MBYEvqxAO+{05_B()W@W z-8^X3Z>--Rx54Z**9B=AD52BU0Vq9un8w(W& zHCC3CJm3o(f5nF}c9!tR3kwT(gGf%c!u$(Tetw>DL-eprIKFZHoXrG4Goh*FAbha3!S1mBeC@Fvz z+1c67i{0&a!&;pI`If2NF{cx@mjJv80nFwoYQLLE_6_%wre^*Ob)WU}kyj*F#)pOk z?I)`unB_RKxNFz=2SUCe)Ih+3=`7~t* zk|W{eox|6Q51?$5C!G1)A}nuWCF;FjV8~umR<;9UmGs(u@?zH_N#rtArLS9CLg)xD zTv%CInWycGx~_7eR{!3;mou9^?d=M7tMn+$z?KH?CQMX0&ds++In?iI4-hNJ;quO! z!XHC;%m1;w{bK5NKHL@qfw&Z+N_H*qsy(p7B{Z9mhA(~(XLL8KNSM5Ec~Qk4dqX;q z!G3LdO#2<#g|!Y04_nsUyKM={%IEu7nH3=+VWr)K+fwhwUxUzTjJ)8M3( zl$5d2(T2WzL)nRQ)IS2wku`RAcLxMu4-}&Kfb8)3x6pCBT8beIlH)EJ^nw2tdo|Fp z7)-jba{6fvMW`%P-j=+mft6jhrZ+%g@XM}jUcC`zk9-T_GiAD)B;m;)Q|k>&sa3`4 zfV?Kh)Dgbt^C~K|*%!7vLg_^#1B`?P1?{HmM01Iebj%{!)>P`9vxrg0B&msY)#f4y zj$;0&#}oFoAwxw$t47m9O>inLAY|Caq;jVf&s(bUn2Bg(};(YQ8;@u?H^NaMbT z1VfnBQg0e?FflPPI1Q|yq_@BUB_$=PjH!L3Ui$J}c8mBR>0ObZpP!Z{6KW>%w4EUs z3x{N1?QB;KI37a-0|O?q_Y$6^>KwNS*M;mSJ;3oGU-zU)OXm^ifBcBX6jxQh-m+_C z-{7X^4~GJ(0iKqbX%5^F&=MMk4@JenI0CB;i{LiSEbf}6^re}Y03|9dEv+kJE^TvL zU>L3IZi@>Gtgi0yKl5^uIk>nC!PQ&mtZi)O5<+Rh!1}mO-etzd#xCK!&$m%HcQ!S1 zVkG2GFc#=<*3>M50%lA>_kWUm!e+Or)2w9758LPw7J95;znAqj*a#EEy%&pH9&Q_x z>?4}siZu(d2FjJ^5&jEUNv><|A$wl+UxP?V^<~rwTx+Kw+h{0W5p~MU%3_TP!9@kj zAy!vJd3L_Nxug`!Mc{qcHLlb3&unuicdadOo9K3)hQHTd+To&pv~n#K2-uC^(#!q$ zv7@JlR5D_4ai=R@fNiP0*mvC~?+HC(PW-#vvN$!b8@=KlM9Rn@>NF39N42;$dhQPW zKY}Iie5HY7?bP$zOfmoX9K59ZY5z0dA*xD7|KqKjm6N{?j`F-dyac|Ko5M6$bGq>g z!jy~JI)jN_xNspC_1{lb@FdyP~0Z=+kiC$_eKg zF2EQCbD`Kwo&}!SCy?Nx zbC}8B3mm2hjnajgi_G^8{SFuQ7g^t9l^McMnfzic;_U;Np=KnZ;Wz*Bo(~XP!F>o? zt7P@^_z;KJ;91p0MMVJt0l$A+4%o?PGo!G~ue6&U7B5#Yc>|+O)Ktn9$Ek9r_J~MC z%E-tF(xjyKzO9VRbIcF2mU}LQ(@LfAu(7o=eDWGw-0_rPi0d307>J6Cv-%u=f+;?J zNtl{frJ{!xcg9TiJR}s^8)u4BDtT})c&zP~dWnAQ!og9@%?DXYFfDS+HNUv1qou{3HEHkuuRi*u z&Ovs*YRdk|f3LRx*oUGf6+^#8Jg23jb0x^f5hObwOfTy6?e#_Ud=#Hq%V?ZRxf?Hr zBt36xp4!rK|L805JPA(~N+DV~V2M(~r$CZmaS7)NjP(8S%{^eh{ zj}7CtHK`vqfH}E$?_Qj-SKjigCWOP(T%@zqM=Aw3rdaKk1Cei>s`yyI%w|{~D`Xh` zU2jqw0P=B$P6~JL-kmhKT|*;es|yHmc_0S}O=wEAJ$q!5w;5-hLIAd)MQR=>Cn;O~`#Be@V-ikXRsSBgrQD~OoRvgRr;APABB{%K2F z9>;$E{wM9R7Rx%UhX91@fBkyw=>)+TLR*}Lo=L2MzJ9d&`uaMCxCaA>vzk5mPo%49$MA=^4=#At%oeV5rXHPTC)| zGWxH%)yjp^)9gpjeEi6f6+N-eAYiGir1b9cH}XoSb0rpf;Arr=@87?(sV2P_ceiIE zE8$WSDvEw;V-vLpWKQcG4X zd`}=mWgH^%)ZvNS+;N?(oRBk?UA?@#fR}^`v! zyQGrl{_JdQaxcvbCGs$~`PWCPaYovrBl^5IrYHr&ZD&cj^G^OlD2L%B$^Bi|bqzJi zy{MF9S$1%ltW!YnV^FIM>6n}V7wI99JUu-P3p@3+9)=s+nXB zRy!|>iHn=~?rCL3&up?eJ`Z+GTRz8B`{LCqDY?0;%g76_dGG8n+JOG;iM;7o2-jWPPvR*Q}&zQOV1%1Fgw4G zQHNrSp6{`2FIq7VmICbc7jSe-4#QhE#r42}*QFAulu{j$6<-9rk*`y%t?26J21xB= zLs_EcnND|Pn3;oHZ_fF|-pk)m&Z4KSl7TO$(brX82ywYYK3rPhkzi2M&=>$mqobpX zQLiC~gv@+D`1}PrQIp)NDv|Bo8RY%89NrxHeQa1?b#>MWy7+$QH>Fwn;YYBc&YpJIVuQN7IR%Wqx za7Yn%FDlha%64&axlBQ^jMrJZvbwq#-;su|m4;_;V31hqs<9f1btFT8F&DEY>!)X@ zCnHAgM)&T02e8``#^_MNS3_D|Q!~EqrlX_NSzyHe$lJ^7COA*BEY0ffV~pZfaxw5#{m zgzcZ&*~J(?mn|nl>1j4C+dvCrZ*LF67^WFhZ=im#0hqJ#c!38)?v)y(7gGpA?F5CF zd`^I2b$VVN`;(KBkpk)xmcqQe2n6Bl>3W+fffb2=MHiXrcb zCTh9MZ6Q%8$9ZM{>sz{!dpCZb*K>DwA6@0SJ{&J#^@@}ch;|4cX7yyu(dt*OTv22X zYu(u^_BRqEnCE!!2JC13?*yAQtDACx81#a;MPj^pCBIn8@s}(U8Ng0XK)5}Non2jm zQ$@UMJHdAr=`C8;HkK5SRn_HF*#;%Y(fro{KQWmFzgH)z3ZB<+ysdP2jao{BH%8CCIVlG%OsjqQ2`{HFQ zb2{#CSeb;?PhI>qzGaz5KlJx)WwGiCi1ixTJis@KxyMbUiZD++z`|Mn;zz6A`!e-t zt^ld9ad4>A`3hxismZ<)JH>h2(v=RAegPg6CE!u_eg2p~ad3#U*@?GrLvm5iT|NQ( z1N|)xd$i55{&0IX&i#)+duKYv$Muh%(kPS2t_3m2pQxp1I)$Q`P|w#Eb`BpWR2ge% znCWRVk>wT^cD>^3JJ0x_Ux$5Ydb-HUmSDNLJCjF_+g8}RpQYW@SJL^L%-N%*PP_y= zHFGGP+xv%yDOXw8C2JMg7u;&`C3+^Rjd~O6dGy`u$5*Md1_9owK?`8BI4e5R+xVs8 z*^FW4Z9BWd<2(%MwYw>EI{&31`mtuy?b2_2_w;&-IvDyFisCGq{Y-%cGxyO1>iZo8 z>MMdzqqzgu+}mZf``m>IPDbK3vRwY=110j_ys;pAW|Oq0Bip=imvt%bTG;xScTN`P z1Vej?__JA*y5et6(bedRw(BYhER0>yRB)4BR;rDFyedLf$&CA-n1sG(^8f-7e%DpG z1i-3ITP(g%*a2eUGbN`)GWEX{lko$`Q5}y@|3X0*L>UB~Y4ZsgQYj9*OMQAChXUsT zEz6fDB_$0HYiDT!iT47Dbv>8T3z0RHOBu*}NgjoW55Psq3x>5ayLY^$58|6r;f(HC zgvp3C;#Ui@0ih4c4~kfLr1jq|0#k(7v?H1wr%0gfDNvM3FMWZ@A+Z$iW;Hr*EiRgb zVVS6L?)#goYSYI0=3QQutkwvI7J!HWASErWq05ZL3ATA-WaW@`suN|{t z>J&`PqDKw5&h0dzwRv&p9!cX|YZzx%M@L8GCmX%+w2d`jP@X0G9__PdwFJ{-SaG!9 z{o1AIaJ0V;vo343oBtDq7WssgSDVn;(Lvte*b1;qL`_dm4_*cE-S@IYr+*jzWx1<~ ze-zFE?CICJ=yD_cg9tGJYG-L?-EssxH}S25-iB?8j_Db4auAk6&BV>{?Xn} z15bSYAjeY_1q?@ymYB^c|cm9I8_yT@oQkal*o3Gy>U~nX<7l z>f5|m?OwBA#!pH0BHY%a*Cf`!B7H0At5S)Fq>EkWWM}U)YOc8}@(?=PYaf0LSYo03IOy|weG;L`Tl9fj~Mx!^AML@ zQ;c0nQ8BV_>dNYFERVs>r-HPw9*L7Jte+u@=71~`(Vmcl*t z9Smr*@ysvMjcTC9g1ody?}N8q@E|kFEQ8HBzUG}Eii;&}VqhR6x}&ShsKoSn{bcZ) z7x~{ZZLi+q$Db^i4*1ORgwXt1G&N4>a}py}G3@Zigp^z*($Tym*Pf3L43s_ldB-#R z6Xtp-t!dKLnVifZnO-oWW3qlb)(TpS`6-@fCkGarAlM3D=bUJ-0_>x69~bwTE#Puj z*S)2_jCc>crmEE3)n&{T!Ny9vv%PKEokX)sc~VqYSC@M8mXOf7!eTVP2$&lWkJ_F^ zBd#Z)1I5b(`_qg;|&JRuIf$>Bh2V)Ya_7uc~14+Jno1tWVs1gI?UNz(r1J zTj3(tBO&MC%117b-%G7SfbX#?pAj_uk4oTnnpRhrhL3%+pYHDGjx0V^D zAfv%QI~O9!wIg-qO#Qth%Dh?KTSKpKI%p~??5_@)d+2&)-p%-2S*i1p_DBi6Jwi-O zoVMqFjv0kN>r_48lLdu4G%%`{vlFjn@>sEA$rDcvO!W4W?W%)80G1olX?@cgLYEWA z8tHnr15LNaXFtF6uH&vNIoSRF5f5cyS7&EbeQpDXp1SAHFE4?v-R@7n_bxz))tf+4 z!5V&3qb82#XoTjJ z3hC&ONsqaZed6(`Bhb}B**aXH2b%>fbF!qj+ks$(l?qx)T7|2)tIz=yqJS5h4o@#!Ztnyf^P0WZ9E^lQnyV@Zs{U zeXsic2GB_n)~mcx^JXk%$?xtyzezk%fkt~B)!FEk93-t~yf~H8Y+*v3DT+nSwVC>s z7ksN&3%BBTrbO&yXDx31Ma#gu2()_LZh=Hxxb#X3}D34=?e>{AR=m$)$lTqUYv&Y6># zZG?8LU*in)OZ)aBg2ndGtHnBsAE0^k)8HIgQ199&_dnNNbD+(gk*V3skTszf%R01X z7d5L{5z8p%B99Ff_n6o|5PL^TCNu=GT)STN!1;09yoqVj)US$gdHDSJ{GUVsz6^xe$T@Bg&NC1!5unl ze|AC(Gpf%nR6$oBg^<+;w_*40YG$8mhcCSqPh;JI@!nOM?hTT;RJ^OS{V}=_eOO{t z+b>Xnw&YoD8t&}B#PHb0BO()2hz z9n|C$+$EnHn3(WPX!@3YHkT30U3hYPoEOUb8%l0R8}mxxHDv8_W3+la1b?BZ zb?y*e4D3k}^i(mN)MW=Ce1VoAf6Fd!lBMbDDwxB7#qRcJR_01kjj+~B^GKq1_A?De z!-EQWI;%YTnP>@*KdBO6@X*8`+DUY|j@cNeNa&h42UajO-igRi`e^QL1{j0ZS1 z0%p>=BH8t?Umqz=1mcr+>;TP@1RUI&Y6I>GZzroT>SpKm(Fs&zIXP?=CY2`}=N0pS zp!U3>RjmFL$gdgnaAo?8DG(HQ=tNL?8aZemsl&_PcuN&W1>`O%ebl}3LQFPGzC12j zOmla(h~%E$O?0+mVV+#*9wkeDg~JT@NhR=quu*;06rW$FavPrbj5gRG)!s=7`xE>3 z#l}7KsOwM8nPmIMlg=NO3IwJ{w_mo-ZF$x6m!u>R#ZKB;W3GpaA+&-Wb6Y;^HYNka z&b3qQPwwAo8?>Qt^r}b}i>R^0QebM1N=cD!OR;PhJ=}!la2+0B=56cg0X6Lr{OE`nFnyC(uoJ^^#66TICvqeKph2 zBd=&2Eu9S?(@s<)^+3&woJd!VV4u zO5@p#28FOMR#l=ygJ|}__$A@ptdg=Ub>$28-dctEx>KrGOgkutN}oXjNZpi`(|M7B zd#K2!{JwYQf^qQyOcl7ap;_tK)#ApY=$e&}`7RsDqR#h?X{CIsPTxm%ZR7iZmJ+|7 zQ;EffNJMf#=brG+SQW?`6TLh^2wYsZtq42Yd)SKp!n7Y#-kUeLtI2%gSwD?~PcjL& zMp8N&GUYW+4hcLDOlH({p1by;Y2Rqor+@zMT}!j}INnEJUYr&w(y8S5-U=Lk^ln>( zh*9boy5wTrdwjqCZq311Q*{QW`Z#_)(y*Lc9OVOZY%p&pSLjWBW104embQ}rYUmx& zujaaVT&|-p2riNTy-QD9zx*5K1~yw$6r=wD9lLi=x(H?mgSwHmy|Z&kJ?DBD{XMAP z!x%T6s&^f~qJ|2;{Q;SGX%0zu64L!~z-qxt$MSur!1mZ)T#5hLDR_^#v zUBoH}6r*1C##i!-8&AC;AiE&D!Uu|wTS28U4IS&q$k_Wz{JKuNP0w+*9n*d0fCNrA z6vZ*W^LUv+5nw}iWPW}d-!_P_;6xDH*RPQU==>7KcXdFe>Ofxu_LIg%Mcf?07Qq2U z#x~3bz(kl-?%HN~kZ{uXEiBsFGfP_%Avkf0G_5T@BL#>d{- z7*B*bn-N1G-SJ~{2s&pv>gv}7m_T*y2Azi7h7GK9C;^NxL`VG&=bAi=x-Hm(V%~&9 zqtTvGULevffl>0jA(cN$wKXuHGYhwD*P7cqRBGe>_xa&Nk`JfMBev?AM$1?8yZbsg z{(W4{6)iLpbZZ6S&TX?Ih<8uy2AQfJsL@clK`t{#_m(D(4FC(y2f+`&x% zY4raE#44LAi!VkVgpjYTSI$&$t-@zIhK?_nE0AT-BOnB3n?A|VwOIa*Scf3z!g(=G zj+a1REwizPEx$V#@JyJcsk#5yUfzkeAMUNKt!01xoC#Da^65oI+;B*Wj06@vre{%L z>P4>nIUI%lsi_m_5p>80mBDKxl}L$j2u7x+>K$gJvIZeeK;KbCm`wdR z)O?S>y~en2pKVS>MMdK}a*|hASkBd1T7dZ!4-YRp@e-Y-3=VYxbnrJeHcEDqGL)gg z0(2|APIFV0Le%y4fJ-@J0wBBPNa+EMiF%y|P4AGxVWERB=aZK}!NQHbi&(g6@QaUU zr<-T0TMP&L%kZp?4U+Y({KCSJVzNi+l%-@wy|*iRuY7kTiUIm*Bsl`p^)i@KM7KOV z9UdNbgXP|kWun7~Pjz>xet9g!=r$D@Ne^X6jK;GZc9& z{_<#EZaYkOK5JGznxJPKYiMv#IavY|<`nZl%K#zL7~fe&2HvCs!aeXvjWHIHcgI_~ z4ULRtA#Z@BM9}4++5)m@5ZGs@9P%Qu#~^11pqn9=s$e2(nNkq`+n)o3Y-Dfp{OaJ` zQD`1hSs2F z0p>A?W8LOkb8cQBDteC!9mqQb#%s%Mw)%b&?W1Oy5L&a8n< z#%*)@CXWS3WK0^&OO`8MfN(3keXaF0eoG^#ZbP55@SyIXZ=L=e8YNh%QOQv;$kAh~iTT3Jw7OtrYgCvI+T+3Po! zXI0|)vp_}34rh$=@V^Y;mZie?@`#erd*Tdg&{WOTd%M%BiUCi{LEUM&|Btz15IR;S4(R0zENh2h@ly6O;Eu*a91WjZE=9G?d z zGyIpR0@Q-2-ExqKmtBp>%VY*cB!IdP*{@zSTACLlp2GmBvd}*V`K4Xhp_)>{cc<6e1kGFmWzs#l3V}tjqRs1N7D!C zW0n>c3n0_wXD@`eb8vE6h^|qww(`Av`BElDKRFJg5TvA_cv%!Bk%Ui#Sbr=j`Qr_D z8aUKbREKFcVx&oOZPpL<^zv}L`_k_bkS4-jgoctRlzy`peZq5MH*;##9yHYR!cUaE zvfolqV7oF-7j#RRf(ozCH#2E?vf4hL+D_x3G$twk+h5$N1PepF2qQb~@7 zFj!9N9YeR6~ggQyC#!Euxxm9T&JKZ78~ah z$;7vnrKJ)s&as8!&V^Dg&ZQ?`OAFu!-T{igFamFoFTxMtdi_UG(JHXiwJ-ma^ufFt zN7in_)+5SWh1=7~Hg06r#5W278 zZor9|$@xoOKp)CbqG5vO0p>(YEl-;+F3IXuJxjZMlE$+>`ic3oRw-E*Uy$zyxaGyv zy`|VWIBbhF5yhi3)8E|}r}-1>*|{A&xC`5rme`M%zxz;b+Ue1wpO}-K%jMc9gHwo|ND5U(}(b-S}q^3_lqjT+=Hey&OQx zF3|X;;W9C#Jk$HYzSq-<4j-%#ktEKvhB3w|Jo;Gtg`s3d_w6>cNnjaXPU$RBZdA>M ziqP^@kyFl^8WIrd6_u8%uZ*X*Mc*jrTJ09!9PC*NT}_QChv_Ft`Rd0y)NQr&J{TD& zo%gQ?rTeK61u?X~P@X`OSV9$E;CX#ykVvH?J^fmH8x)C3Tl(7C`@a(%R&U64c-y1)DwizVvVyS7dFnYUxa*rC4=I1`CxzB^m4Kd=KA6wcJQ!O2 z8jtxq_ST&XzJS?)fc}Bv6r8B#tLMu;m)o!{9NKIOIxgfo#uoaOctZS$wAk|1p8`>E zu_pDal(eZjgS6lA?()DpDxT1~glW}DJyp!sQ`2Nig4_Ch&GqVc(j^Z8O6y&oWdHlq zagB!$w|>3jY5ClR!2pO^=oN7gPR!F2t7~eqELcB$*q0S&O#7${&Sz=9vQAfXANyy!}qEF0qKy%TSuw7D6 zpp5+&7BAd)Ic^P3;NoQs!f}m2EQ54b^Wo7mELT%3&WtGRRs=4Ed#bWUcT5BR7mrZ8 AnE(I)