From 29c67fb3ae026594b860c8a381dcca3127c8da24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Thu, 28 Apr 2022 12:24:39 +0200 Subject: [PATCH] mf/tests: Add tests changing the H264 decoder output video format. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The h264data.bin source has been re-generated with a static pattern to avoid differences between the nv12 and i420 frames. The output format changes apparently drops some decoded frames in a way that's not really relevant and may make the GStreamer implementation harder: gst-launch-1.0 videotestsrc num-buffers=60 pattern=smpte100 ! \ video/x-raw,format=I420,width=82,height=84,framerate=30000/1001 ! \ videoconvert ! x264enc ! filesink location=dlls/mf/tests/h264data.bin Signed-off-by: Rémi Bernon Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- dlls/mf/tests/h264data.bin | Bin 52276 -> 2330 bytes dlls/mf/tests/i420frame.bin | 1 + dlls/mf/tests/mf.c | 77 +++++++++++++++++++++++++++++++++--- dlls/mf/tests/nv12frame.bin | Bin 13824 -> 13824 bytes dlls/mf/tests/resource.rc | 3 ++ 5 files changed, 76 insertions(+), 5 deletions(-) create mode 100644 dlls/mf/tests/i420frame.bin diff --git a/dlls/mf/tests/h264data.bin b/dlls/mf/tests/h264data.bin index d06aa5fb5f2053c60cd2a48a35fbcd2e6918b815..f6ba82c0036edc18d92143504bedb37d52b08ece 100644 GIT binary patch literal 2330 zcmd^W!mM*S6^oC z{O`HH^FQaF48t(4!to3|8^X*39hrGE*Q8yIW5*Uf%`gQg7+3d^lF}t*bU)gE=_6RU z?i-cOUhA#t>$;d(uzyq8DU^Bq@|A=yP>$S4(hP#QfFButHo&48VKIPl05%qQAi!I@ zxMse)9EF~*hR86HV53^olM0Dg$j7pNw~zI4AVw`q4|=_=t*xFGIZQMKs~*j0@X{=v zs1;KnM$;`>Q_Ucfu!tp|Lk5ZPeiSC6qDf6W7i5Dh!YWphCgItHKgcFH&W~b*kCFs3 zn?+d7M7o)Tqwo}rFwc2dI0O$AlM^H?P$CB>1OuxLgy#ZCiW*uB3viS}mO&InHepqf zs0d3IETnjhXTbsvw`nTjeOwvGp$IlDK{uOZokrvUab3_N5tCTF+lQ>E0Vhl_uV`8m zj>3m>QFD!xr@+s}?a73_+laO0$8Jf~3WCY{9n#EwT(OtAKz& z1Jjs@fn$W`69qj9YdOsOV2#6Ar&Wl8C}Wc*kqu(k)k@@ss3pRlrV~|Y&~(_%i8>r@ zB1vHLzRJp5OCct!@QF-`s6=YE_;QxoG%#(cLCh!|HzZ-GT)J;ayd)YZCPH6nS)vT_ zP@s=3uRwHVX$rj|6sN`UtOw>RuG2*J8z=ZcB?zWPbiN$5h%G`4C+-laAT~!#xeeex zUj>565TbDDD%=!`$cjQ}Uu7LG8wLw9fhQb?Iigd+tboBMYhGg}XD?kpHeuPi#N>VE z=hwTJDb@Q9o~U26^2JAH-K^exWa_2mYpow|WYVk7H}%avUVNo=m2u|UlwIq76Hj)3 zxS^+F%rne~O@xc9N`pN(4e$Jwrj z-zmNKe5`-Wiq*5W)t#At;3@jUC}iOg+A>uM z?HN41bLq5mwz!yzsj9@vEK`&jQd}u)g*0Z;Rfi%qQsq}$$)TbPcZH&xpS^!Z)&`y* z3J#@K*A$mMGy=K9M&AJfh<0D2R5<%6CcUa>R|pT!P{#d<&gR#}GMPuD%Nr=5h#NcbCrPP?Fpb{qN_}pB?Pkv3Q!J jm+AjHm!ICc9xou*?X5k`(4P}+d?=mCzn=6!?lS%b`mWF4 literal 52276 zcmY(qV_>8~vnV{VZQFJ>wry@~+qRu-jE!yE#>Td@vH4}+bMJf4_ot_x>SA}*bX7ky z000083K8%I(O(f5R~oxO*(iK#OoGb1Al9Wx^{(>K!G+1Z|pfx*qqjo#J5*u>7- zz?R<5(Tw4r7J74M8|!ZxJ9}pfJ6k6%LL&o110!B0LPrx*UKT=Q6GLk|BP(7eE=Dd! zLIYa^YY!(AUPgBoE=G4ICKf^)6JB!@cS0u@!*7U#(B8@8oArCtb2R2^;6=3u9j9Z`i=t!2X{X zhI)n;22TH!SU8&e$1gV%3o~f3sSdczny|W&ZKw|A2Zn z7PjAygib~#wkAd{&b+LQ|IBnW__w5vCQjzx?2bly|8@7@yrU7Xk)b1@jp6sY{&UOF z;+y{4L1so)PQrhXvz_(79U^r2=NvC1{dash*#A@XpHBmKUiKf~2q$L~dtO#TS3_4l z8w2UI ze8m>z&4=ZUWdo%6YeG1hC2zY{PvRHm}f775^q3pk3=LA!Yn`78k@vZ`DdJ! zyZnwvyRTL!3nyez2pr3C1hS_!NtgbHlv&+k4&@(q=vwzL$5vYgea z1Wt+CHOf4#xgU@8oL*l(cfS@X=G?S&SytApGNjzhbIhbXh};OaL2<=~pPJ4eF_c^9 zw$G>{Ra_p+($@UBzIugyH!18*o3Etg2kF4!dVc2o+#!C4$#SYQhFaXyd6c12yk(x& z3?C`HMG$G)PD<@J2nU8qRr_1`d*4JHTRcaLj6pNN8TMpsJ-qwsH_ zsbmx#8e(8RsiM)VW0s+|%~;+qB+vXahv$I{yU0ZAom#Ax9Uf*3rMJfgBAu11n<~N#~AVm;FLey;x&xJD>>9T zw}U$a6xw3tj}S1hMSXoDqUU@fTbMNEn(5Gn_)A=;6JgwQL?2s|^ita5q>lgesa&5DnPIwG zl=6Xp>g}`jmZN-}FIHv9{awKLY3A1ME!eBT6)jdP{30kd()I^heGdJI?Etw4t$HI* z+qvCk!r6&1JFVelPem%9xU$)YYF3@__v9jZ&MvWp5C``4m+TG{JExB0RZ1M>SE5N9 z`o@qmm9fM!rLuTg1#_Tgz3i31rnsunTJOMIFQ||tb2XVEeyT@yeB&=C?4Dz8x!uVq zM@n=%y8uSrW3{+a@dXodl`?SRN7S~wY{o@Ha)nFWa7x`s^Wk1e{#Sx|gbA9{#Y~hpA&??1QdrcU z3i178G2Xq$XY@X771*4F$|~^5X*JxA>b|ffOB&#g20XVwpi>?E)C5_Xbp&BYU+QH+ zrkYem%xuQ!bVwii`j+ItNhOp6@OX3Jcju2;_p1ylx*OI-k;Tn-dI-}d2iQhYthZpw z6SCy7z6P&9%W#Q#I~PlN$EA%z4a+VzTeQY(xH3w&>|Ta}@?^0kDi3_~4}?f2GSKB` z3`wMBG?O)v%_E+x+?oOOx^ue$wIZ_-@H!LnC)^!TuAc#xu*}j~&XG9%uD5Hv&^fxX z<;Q{%{+M`l95N`G*02zv%V3B>%+z+P`juT$I=`~sOhv7plyih8eExbwujfjt8DyOM zREUgD!Pm(sc$&8kE_$$u#2;Y^d84C~mjYE5dPm@#KAi^?(yYC6aw+{GySV7s;t~$e zbx{(*^FJ;ayzl?8YY{EW8v6kU4wF5N&#>Uc=g}^g{q@r1B_m%H8FGnM4NyQ?st!KA zBYPy3OO`@N^I@A+S8nY#%GghLL1$X_J}s82i+-wbo^uIo-M~X*?i=TR z<8bqreS|6uxye)w64Sz6<3r=PuAg5~NN*7> zJQw0n$ufD=b&{3a8FyC{j-bvZWqHv+oR|c(Xu^hulapj>&t?q@-9oP7?X^^n-Tln( z$q;0^RmvzMTp{?E+$Z6z{k7Uo4+dRwkKgu(1lOLh9BQ;0LkmXek;q|Q z$HsdVe_w8=CB_w77YH`n?3S@3xkXJ~GAYS;2dO-j&hyM*_A6N{eWvlsX$O5PO>k}f zQqi!(7jMkPWLB6<kP$Uk|-Xt{?>(XY#tN-P6qstb#@rA8<45Tc7d-0JsoSY)xW6&!Lgw8EqS00`g=j1LB6zc~|d>mz&l z<%h+|nxfB}3)zx#cjA;L64}fJk--= z<#NHCp_}qRV%C%(KYZq-hPIy$K*f0eHh%7ENPrcRjiCQ6s%G-~IXBa10`C_SksDS- zo^?EDV=2%>O>F64g^%<$n-8J&XQAF^L9x5*U|ODnq9OfgXD`j|oY`;C2orq*DMOdA=5MhFZ6Xy7u@D6H{9Wn|=!W_Srw=o#$? zW~z91q;hq$P=%7jD<#yV)AqTW2Xb9{usMCe40|VU+}e7~x{fV0K6`(t+3s-+XzSg? zL07s-3kZHQyUu?yMd4qjHkQdk`1L zf!*Hzc)8r`=tTr0s4lDz74eeq7PW*bEHI1AlH8N;JFVJz@A+qM4mC&aEcC$BL+Xcx z&5i8ya{>IBp4Yq*V{T97U7K_E&x*!w$dU58eDf$*()N?3oo zAU0r8*&ItL2M6?^`nH)Dxi%)-$e&s-VE4cWa-7kfVi2trxukZ5RX^Yif`pFLb>loC z3gx?oZ+M1Vow_te!unF#ym8{DJp0{qsW-i-(@4*17D*o&vC zJ;!H5=2iDyYA>1EZmF&A5E6yy+5`Nsutd`!O=2dk@_Z;|th9!8`gMQImb787?kz)d zqW1E&6-n6*%~e}FwNpGm4q#Ma>Ruya;ve4e|8ST*mU5hprngikW^BYdy{S^62W2YQ ztB)vU*zG(b4?*hHV>6q+V4~{hw`x9!J9P^uP=8|dg|4sqC35{?PMD+VWJlS=`r`1p zs}|77&W&8q!_W(o7H>{m;;NZy5^A%-jKl0w9GuZkR&qu94jeoZj-&9|Ox_EnPvG?G zJw$QPBOx$|4ws7C0}JPBpS{f`||LC>`1J&PrZU08nsI1nY`pS8Xr3#i`f zMoCWFx`o@XajpfAH{jFOLgq|DLomA+MjISbP30rEDMIVR>k7vlxjtNpAE5F4yYA6T zf%}De|4js-90O-Tejwra7SV$;y-&S9UHFJ<(fGyC=IpNe<)|)s0PDG$=x2Mj3GpRl zU{{-MOMSX*5A8+UYbWRLFZ5WXi9#tap)C1qx}JbRZMI4uixToJN88NHW;Q&azn@9{ z#%bxJ3mE(7%S0X3xyQBQK{|t9qW<^Zj)%;4B1y(P5f4>c59Dv+t*S||*FgnUENU~& z=FXM`!C~A-V_7`6Ltiia{*^hQ7snh9tO6=P@|*q*Ir~S!t_Q$b?Rjhp=i-+Rx=;;U zFCa(wxIS-ZL+#m0@;MXgGkZJifau$)QZfI9)Xrwx!h43BiadS7ly}+q-|wTt<-t;F zj6ttQLUt2)D}ot27rwHSzY3_9{)P<(*Y7)(3q7T$P8x^lw#PH>vIAB?+j-It>q^To zyYsz z9XH^*EpmD9V@RRaleu@Lti`$R{LP#(b@<4|v3B#RNv)VZWX`1aI05m6Z|%iWA3KLO zZlLvdS&O0a0sg6t0+JIAy<}m>6L2NT;}}>Jt)^scC2gHaDk{zMtkX)^^f#Q@Ag<3l zBo&oUMd;w@(-Y;EU&BW1sxwqa!qADfiV{i+lmwkT&gPhOKPL$uRYil3;0JHrj$8I1 z`^D%wk#~IfbpWUhYPUAt$Uq%wE$V3IYe@NijBZuC8uVhJUzyJvl8st93DzfAW$!{2F1F^7U2V=Wx_K1n{xhHXD7oT z9d%g+p%%fm>h5Qh@-B=(yEejj1bT^Gen&VujAU6Q&--Bdrl{Al^<;dqW_%1_n`8cdvKEj29GyM&U0vVSm zuLFT_;&>bB9>sLsB#GorUM^YrI56Jq_c!q=rT*a-LRjR3mUPoXt@z3{I!|4!W{6$; zFR<=gq?%Hx-U1S+B{;BMw;J)|Q3!#lMF*5A4xFa=15~|?L3N1-dM*94d8q%#j()(& ziGx7pABbRp=IDqz^ppxD#~`iNUOYme$!)0q19(lsE)PmEEJ9*69Dj>72%)Sn&jo`W zfRfW_23{Q?V3fEpajCaCeP?zB@ac6_vpE-0N61RZn>HSk&0vr0?IzVExVW94eT)&O z&x>UOqQ)Vu#|-|7j2+&_@q6$5zyzTjp{p{@4?)s*B^U`rniV_bOF7*yGX-c{jN z*C79(G{KHI+<{uZeZhF0{rc2C{mg@R8 zwhCLzB@7@BDJ6j3UfJu_A1Mj(Gt``O(#FVAf@9tfRvD6n&xkNkG>_pW79(ck5c<77 zuYVwk`al$pyvgpUbuq;Rbe}5GWnS}gv-aTgbE8?0Gq|?4Zh_Y_$4S|zeZ}uyr2986 z`ZyOWZA!khLhCI`SiWxjr4U_mAdMOh37FFD{%=15F!k84aw%2X4Ab+)Gvwg~zc~{W zgQ9LUR)%o&iu5w3-ynh8cEfyPWmg&) zDoUY$1)QZvi%-OGxuo`Ct$bxMMxVN?wM@onAU1Zm@G|e&>X$BeAPE1~DoB=YA3(>( zpnDyo>@sFO>$hUAkP>7v53o1-MWx%_dR4*W zoBx+Gc(?mi7I!IS?@qqvB^|gMS;x5h^N=3DH7W|Cpa61`xS2ch%CA>Oe3|6|DE|U) z`<4vVX~XkfTq}7mgnM_gVm{HkS_tSOr+GwBR7w~;C@Prz!%vu`w*|ph5me;~q3Z!L0du!MF}Uu2R86mr*}{7z5(*!{5lOUDZP4~o zJEw}6cP~3V5OhX_x$drjG`|)6Wt+=D;mOsPbwua5YkN4|czpY;0iF{WG%b_^`ZILq z#W5A4uDkvKgCs+K}p3dZ)RDdD_ z^oqdUto1E~-Ar$66u2%BWuvc#(ybK6rIkzn2cITU=t3-EwD)pEs)%l4D}L=9~$y?*(_Sykt#jqHAGRcTKdT{_-H&9X>V@i;azn{qJMetl{(F1~=7fqO(V~9=ywoCwA84l? z%R5LTrq0M#K`B+m-IAlNa?rVs?RRY_`==3u2<#X-U$Z6NCLJRn?%_!H-T<*Ye5S*&mCiPJbr8{tTvI86wHg_V_~G z%DS0O^Bco7Vi0Ifi+GU~(~qr=P=f%j<4ZA5V~`_7KoQ)5!#pVx;3JBIm?p>#;3Pjx z+=HwW%3S(*9-y|U=f#V}Md`Jn$Po~^8{_YL(g^A`5PsNTtS2PE8)l^F8C3wF+X9Z- zhkN7)>R@sxh58O74u={bMd0214w{ZCRJOY#1X@odjjH5?`$yAORf`$?E!T((NfH_b-cV9miu!7)eYWrTysQH7VOi5?Z{g%3VXC1XJr?I#5D2u`PM)a7Gqxr0 zEdD$oPaZ;Cx1bW5GLa`lMKRI84G1~;XIg6@&Uo{CkYf<-Ms8FLBgR0(2lJ>%yZ&pJ z{jHEW3S~x(qx&^MVuQnT&8+*-Ew_}NkW~HTN&a>Wg6cC0I)JZ#A&~Osk})g6c16Cq+m({nADD0KKjgq1~&88 zRd(n4j~LBWEW(Ab+PnWU9}_qR(RaST;mr;^{+hAG*vgMMU6YdPEz=gARRx<8B7M9Np%oA!hso19)It z*{Whb`Q^WH50q2nEGQ2c*eFx1)Y16@R)G&L9DT4odN98Z?G*J$9BiKxMOo1%M^}4# z+FY65O;`p{6S?o#QWGYy{OpdB3+Bi+gis|TO)NiNB+K#GjUr;8IU-{@*CxPWZ=mB4 zH$Ke;KZkYS8xOu&*R1l~DyvP%(S@_9 zxn51TrAlEL9m{6RP3@M{jj{7KNNJB*h%6x-#?))foAoR0 zMs;>3c~!r<>0qY{(qI&u*^D*V)PEaAF=w^wK>(Js5}@ld7Q2+IcSb*HABM`Bv`$zk zG<$gPHvrQ)R^JG`a;6}i8))UJB}YaB47NRAPAyKg3*{PasN1Q%FC-cfgtR0sl`A7c#=>#>VU2 zyMvpkJY)J`Z@Q(PlQ4q&i!qYTiARJlC3Hd{YIWQn?i@ISUWY_1#4D2$GWR}k#~n|k zC7n9q`!9G&=-sG{H}vw_=c67S)9ZbGcxI~Fz0T0gOsX|zsrrcZJaUA#nKjn2z}H8kZKO5Tz_JI0Gxp`z>#j`D;)Y-cI#YNW*=#^Qw<;-p*Q$!(I-8OUdw z5YH&^`8jZ_@y2-P|C-(;rH@5iJL5znMysK0YkpA7^^P7M5-iuL*b7q=!_7PnjpdHF zA$!!sv_JG&6}f-%wek|g5AtO;wCLnNixIfdcL|q~%C>?3RP#FPjAe=$&kKNT)4o=+ zmE4Gl*j0ko8_e!)zwUbA9XhH+kxNlVBH-s{NX~!*Zb0x31`iFZ-BSWUGRao zGTvI$EELT=9`=AnViWhuNH+<|bMy+ap8V;qisOo z+6@0B#aq>vPEzwfmDs;aBcPlTOF=t;mk5=hdglc%cfC@F{k)Tz@cw8qCj(4U%U1I* zdYuy3Tmc7Kv%VADT%kQfI&O{n8J|LDVl{ibyJ@aVZ%J#!sJ1xG-iw|4xoo1e2#R@y zQ&Cyn!XF=SRTj&Mp?f<`#vA%43l2SPyTo5wJ!=X%7Vsz)XlYlohEc1yXZf;i3Be{ zPZk2impeb&-l>;r@p3J{NH&LVUGFtX>u3^z=|%mMg;;%z7eW6ru@nzS3b1K?k$aG} zQB3l|LZ#(Vf++$oFJofj19ND{0h8N0?y$n23wHD}UjoRi+fs8mMF@Q4bb zK~_dw&fk5Cm@Sble!%*(Og_uBGus_Q`(jMdGtfLe z7)x9Q6g_bbwSW0c(l_K$siP*XB|>sYEfdOb4&o+*lDaW7pCZ-b1h=8$WIkL{DF@V3 zl0UmBX9$Fd5lmK(ToxJA;67BL61(%!bgQW=D6?o~pZBt8}<_{)XnjWbIM)Z)&r&6+Hnr!HvdK?Lph` zm(UdJ3*#da1M39+)jJ}kr}CM({ImzpFGY@{YlgSG0|3U(C)3j`m9}_?BAHjg-dU-x4ZIod9>=@e3ohATc(RpT4%+UDbszd zb9x?}b&?drf`27Kc-#{|zoTbchsDamZr&Bh;Cirl;2ZS{&H~QdZAnq`0370+_YW6} z7VP{vKLL1JB;ub8U6p`^gMik&4|CegcaVO!QQ{Vb5Y6OTrwTA;VQW3O{7roRb^#$W@Dod<#7R6q`a zTY8QrxS;WH+y}!XxuBN^5PIy0_)0Jh)nsUvcmB5u6U-SGMWe<10#IRPlC1Y_+kSy& zT}r(t2*CeNde%gCc_(-xr(NO{F2EQlYYi5u4_oFG+JTb(#6saOLphbFU5NTA@Q6Ij z{4A8Vu7y#}wJox>IFZlg&}igt8Lk;Rr|+&O=nIi*M#se*QrnB73x|R|VJ77~L(gha zCck{U9U0WNoU2M_I$Ty^g(qHg=^?2SZx|)m^%vS;A5ZvI&_Ts0`Rx>H_YLS6=;vk@IUZ5tlv*VhqOak(o_;il9!qHs&1f4bXP4neGnxS=b&spo=C z$$y@n$oasU#7 z#N^NT)As7dHFQL(-FneTwDNcGd%v82WNFzBM!7o1KOp3YyauEf8MNk&wi08i+rlZ0 z6p`dOw}DP+xzzq2fHyM6fbkXJN0A$<^)4G>ue;%#Zu=_^~69|L#^Ciu!Qal@Irx=cUzt|vfU_XLsy&!e}g@f*(Hr}J+!>#n6 zn`)b_gS=yU#>pk%HUqn9T0LL73I=JcrYHh851*`U|IH(yoKt5(KY)y-&prO-%(d7G zYUHSx<$O2dnUc@UV5*zG$%~4S> z9s-TC;!3$=Q!y68$XfCt3`|BIGgS!F)jj1Fs$gC(l~8Es?}qcJjwge!eSDE>S@DU- zn=zk+_<8L4bKNtz=9;_E=f;n)PBdZU;+L=0vq}nr99PR4Q z9XP3^?zR_|A1yUIXE)`6ybF%cdFHE56nnjZkUz#qb{*YA#qCkc789Ze$0a?=%RH?T zJfPjGE}# z~1tSSH6iqXO@!CTUA!klzG`6 zw=Z=$*$a8Iv1fYHihwvd3MKsXXC{w=>P@J9dQV;V-(gaRLlzKh&JJdDXw=Y8f~ZEZ zG&@C~J`d2FExpT%#|xL{m9=8Pv$0G65&`bz&vtE+koaF|bZ+^bM$$EwaqBf%jDEnk z&?jENv9#KjSSV2|9WUJwXFo2mi1ZgLXyakpR~+o}M5??LANMG_8uK;>Ov4ujeHNPz zqJhSvy(m8v$e`Xs$nm*5f-2&WXotl3E@k8sb+%R?%ezfs?(dnLdA4$~oP}FTH8;8` zvqTK4>wl4-3W>=0+Axk;7ev}%b*A`;ABUXcU5{ArB_5Sh2+%42f|1|m)RbsMHVK}5 zN^3Yrp)m&oZ>VV8nA&Lz5y0T#GCt7HAmk=}v6j4pef52(;}Nl$G`o0g;9sW&_l?U- zCGKAlQyfV}g3I{1YqK_b)gh+cD;nhlY2%Z+yM z*^Z62z4OZ(RO$iWl>VIygjypdZO_%k@#m6(68o%5;g~3lNqFJjG+kkVIL0t~vO`CT z*zmMhTm+e{nJ$zce9q~w5#wK{>*Z5#E7+XT%Db^ZS2D-5Ac8T7Bg;olCnSg?`09uB z@R22;X9-!F`(LCxP_c!Kd^P3YBveQf42eQJx^q8SMYx z>zN*bv0J6l-$M^*J*1k4Li?$5LXF_HyA$Q``obJ$sr8NNM`eQ9Vf#I5Q)+>6cw28B zgAlZRKfHbjLpNzoVK`(tKlaNRq7YmwFM&Uoe7Xk<*ERiJmRSx~plabkz5Mw>>Rv>5 z6q@_O%K}imh@G81Wdd##V^Y`-|G@GwAH01awMFJA z+>2bf7S^uvscvM}i(}_9Yy@F^C55#1Je!?&*~ben;%pmwHHQ;?Zb_^3JltOJxloaX z`$4-lLv2&tVxl^w4H?`veuh3v`ptyx_OW_2pJ{xpH>X0sC$!m0{%H=*!v*RM1>Lu{ z6yeKa;`jMIi|BlAS;9No0Is}wyjPAtY>GOA{eYF!jbo7wUjZdYdQpPe0LIAQYfMS> z^)Pu}l_ijJ02y(GSR~89{YWWxSAfCHVQg`^NWi$}LVLo2Y&o*Mdq3&Nx$M*e4cr=; zpGfXjI0qkx9pWQ6lco;VIT%3>Sw)^jvl3uicJ87 z1)Q>m+7${jzm@UPFw^JT^CW(j(#+92RMy^}L^7}ba@~xy=Kxfh8%}oQc_O!A3w;gn zp6@AEF>08kGAnM-)x$fB4HGO^gYlVU!lF)_g#JopViC>RCeK*kYJ-ZMI6OW|K<1zg z%xxU;vvjR%V>lvus;Xw*+%6A}$c<%Lkf(&)9CItpZUSofML(Bf9v?1NTvJ&)i)B)8 z4>KD#F0;h5aqRD}iucyfOx^w?VEEXpcA`n}=;6a{Jc;Ur;r@k)h9mbVg1H*8+^-Mh z;{vA}vHSyT>t~`0S@|0-KY=uEP(r@E3c3W|=xjF$CkRH48WB}7Cwdp){ap5WkYyU` z2i!8zVDx!>;yFC2C|ht%e4{FD<+5VxwZMv=V_uRtQ^&==oBS9h3?+i@UM~`hqFmv! z)f)p@^uxS#_pZ-mlua9anwS{cs+Uy}g1v$~#Zr_C)LZk*X$d-bKKeA~%sd55cK+wm*ubjcQ)n1{pW0Q5DI(n zg`?JciVV^fye0G&`^0Vg5lc8|-(Z&yltjFs)4V-PK5wP&BBJm1RW_tq6Maku1lIe( zND+y68<0;B#;U~qzR%kDpsQCWkkrZC{r!*7jcBXJg zGL2eb^OP9jEPvRC(ID8$Ny|}#^<0m%W4kJ$*;GPlP2B?Rc`91(z?8BA6CTCMT@ooXj8xt3EgRY0b{i&kSc(s31gkxe)qEb)vudzp)9Q6ogdu#AoIfJt^>%V+ z5~abyqD+p>V+~2vb0?)aZlq)Gf^xexX4sru@|cNf9n5RcMD(Sg7589Z#*oe^-5IV% zFF_0O~$IK0O7F|a8T5TtjPK*L5@*o<|Gu#}I6;ozS)oR|==2Y=mz z?%^t4qzGoDE1F|B2ib#Wcs7Vomqe_ep*R~ymHN1QEQbDyq_N)Zx>aY1DMp(iayUzj zat|NUAYeikG_$2$9=EAIE9=RiN$q>ZpKZuVL9;^gh2c_Pvdnb`ouB7^4xN&vw5jHN zKH!pH2wo$-0tZ?eErDRo4bZ7nV2VMkD8Uty8_tytFeNX?Y1mcZd7-q5sifHq?6?dQ z%~`}>bi&f15Ob5lg~J7aFsc+?Zr8gwjltgRy@D)1=;ZtF8%ZI?_sp4DwfLl_hp-wS zC63k4+ae&MtNz74U4yB9E65i@s$G?Q`>1B&k;W3;FFB#Mj;oe*QDaH1uaOR>VeUD> z=ZOvnN0-s*iJsiXxzBsHSWNx5u=S>Cw*od|Yc9cz`3yawKVnZM+mj@Lf09(;wCFr8 z!C@i@&Sj@X&d->7k&O3&?*dT!Ez>E`^-_|l&$;U}B!~dOfNBZ14Y{&nXX^CFIqFcD zl+EfhhLabgQHkW(MXDlFZ?a*e?i8w|kWnQ=%5d301R}puZua9KBjf!O zo-gSy_H1}auvH%Xgt$@(i|)(6yI*2g?b&)B3HaL9K0W{M@XJJ&+=W&$VI*As&)J9K zmXb9?#}Kdy%Up^`myyfAaTEi}!dC^HZ&&jUv=075aiZQf@Z_9n@D3XUF{0ysjVF7o z<{=Lg*Acf0xh6%aMtJuDP8QTvC}G*@my-E45LAugt4MDzs@jE?j0`XE;?q5CcJ{x2 zHBtcu4hI?xC5&nuun1pmIwV%yZ`X+xnl`5k?7U^c4ZWj7*+)0q_lq5pY+38&+|ZlY ze10~^KeNf>W@x4CWL-Rz4!f*zgrs!xEL%!x2qiWeq^uiZ?M^5%z+Ve{J^M?_2N^#v zZiXpk)v!5-`LzJ1f{%{Whh2ZrD&*$3k#;K!u$PkVT_s*BYR}#h!7cFJ^$4Ypj6^ZX z0QJh2d@$RZWf)IJW*E~!-Mt37#vfE?bp2dxCUt{6=U)qFP0MU5N~n3}-izZ8+gc|6 z1pJF6X=yaCfys|3p5n015A?bU1TMbNNe?IWY~jyY{l6)}-Bu1jd9Xqgk2Do48W@b| z9f8HI=}S#|r_tF@BEfad&HR;-+CU_81zPKZVtUP9uj>JJ%fu2=<_edcF7M9ve3+f1 zrTdkfLVZ7;1Qjw-RtOnZvN{gg zejBw(Q%F2XFxHy|wb0;_4nPtTqPM)fGVdb^b&k3g1>hJKuuZfrx}(jUg$%{TYlp7F zo5oAE5iHJOaHrfY=6Y7`BeqV^H3+U~?0umK?}@{RNm%9x_*kyveP-R@y%4+0ZQkpi ziv@^2bo3=pH)k%5qbN+GMIx|QdCKp|7ZeY>>l*q}j%tqir`U^9w5+Q#2A{ zZ?WKFNKpKQ!w;w2(?QmQR{!qgIeTV=QCp}agG%^Roz{aYRN-KnfvqXDnmNjWK~~DTeW^!@v!qfaVwLp09D<7Au7$^=Ip?muvv6DIz|I;o@q#5TJ zeI3xEBimyas>q1xH;oYBY8RYYeSNY|n%I%_X{!^~vr_6zsNYk}OmJfY(r}&{dMs8o zK>ChWgji3lGDF0uVu$5nICPjk9^%Q`q98(`R}AfDg9+~8;MTvL#{F~qRGR^o7{AA0 z$N%1gn8?ykger)MV%L&*l#Zhjx}>x9pUTZG91oxIXECj9uSbQ| z;1EsSyJy|rR&G3=#|2R9Otqu3fo$E5G^%JfQgdFIO4wU#LJrw6?UE7+v}ZMcjR{7u znNCzNF#HLfnM_Fkuyu6WK;-b0W@Q<}A8_sdBB|i$qDU!QGFQ>$|2ci#3mS&7$%v;& z55hY?#L0}~*SiJU(l~3gaWH8TE7@Ek{pU-6_8zEKd938;m4KtAEydc7z5+rBu;qHA z!G#fLJ|AsP-X%XU(66k14_=>qx|vkHE|jQI0Mp(m!x&<%^Om0vkX!1nkCuf#BMXFC zw70ol?w+WV<`WUO$)|KM<#Auze1+M@bGc-lQO*P zft%TFNLJWfuTMcSGtM@L#c)%67=si9_)+9sUEx{*DHFr5Sw>Ph=w*EfMIeH)U7iAe z#eog+ckt2A`?xj4FaTd2YsMHi8ugawV&|HgQR0vTw1$$kQ*PJh?6G*Fc zIiPJb<)VFIF9vkw@WcYnB&6pr3#T6yMoiN?rz+cE{Gw61-3#Zl8rgHWvhk9=68wyU zqszA&G~-*i)9Y~Cew9h9BrcZ;j87svh*G*?@oRr^ZSnD$H3d5P)4PNCq!wCO-O&SH zIAYT#_HA5}qEc!Cb7MZl{+{tS1SO>iK1iB=eEXXxn# z-e-~;0bxVbjc8paXHDGi3bF&0ARW|$Bz+_MbUy+WT3=1%N-%l3x+u2jDT6Uwmzc9l zRAIkll(OUDPc57k6S9J{zka=8c?Q!1`sA91qP{U;jiEEm-L?aA-OxNkWbmICIA1wl z@ih5lFc!MH!mza|&PW@SWxaBSlrz_aagklWNzi8rl4{P9QkUG!P87w|6 z`UT)k{F=?hOOC@j)gjuW<2}|@YN)1zB_i4E{VMHQMaEA&Rc0xaiGzdqnI#)bCcvQQ zfsAMXRrZ3T!ou#0`eqwaet)=2$&1vVeo9=Lxs~)Ep{Z&U<4=faXF>B3aBc<~y0t5; zn~@>-pfvkJae)O8jxNmeSpykUHbt}FWQCEx?wb@OdtASY0C(9_iA~`Z5WM*RR^n0^ zy?MGErY|+EodFNLDFlF;iW2#k@B)V~7>X-kjrL`TgdiOy2K9IDi0!TC32m5IKh8{$ z6RxN#4mK8oD)!aR-iGFCwC%+Qy)&^fu4V754&(B-PZhsq>1&YKZM;H75tfiYV*Ayb zUYQ#tUHpG+odcI(Yqn*>wr$(CZQHhO+s?2vY-iZEZQJOqs@K)G$9O+tkA3F1=URua zFJDQO4^anX{~S$@1oKfA9|h-_`UyRQCe?9^(3i6l{YdZG^ygUWqdESwZrO-4;*MJ1?&+^X7cREz-=3-5aJPuJn`Dk;*rTwX zlMeqLveo{@e!XMyj4hK(pk+Bw{4x==@zA#=^x6uL$d{5U!x*YRi>=>ha8 zGm&@uqAQvSs{{o?&P)%;OC18*9XXCnFNF(*yDn2TYiV$Ep<~*KvFgX_9Ye#EWWD6K zQ-`1}7~iX~?r=N-`Yenpaa-C2DE$ykgeO0kuH5NYpu#&+%#npuGqgd+dL}P6=|~i< zL~mD3f&%!vtM?m@6)kNDi)JL)sho*0rzZ*#_}{}~EY-4&&+;w(7M75smD_bC-Z<7a zwSr6^;nj0#W9Z@&6OCW=ppD15mQ1mx1AdRfgfbf)8~q9n1L?1`58fLL#@JnR&vjBs zW=nRd2}Vt4yEccE;QXZWCsY@3UPfF5_7sS$IgGNWBfnFjSHAw%G&qfX`Y62p#oDBT+qoERDe555ksfE=@CF5bzydO z4AqP<^r`pwK<{U5vkq~mRGVdDK@W{worZR>Wy~65Zi+p~GXb;r0s}mGBX~qIVlhA^ z#A&lM8FwP-WKVuJJISS|nhq`LoL})M*~@v_DoLtY1kBNh);%?P8)9l(L{j`A*_@;j z(Sq-*pKp?rcF`v(&^Y<5cmks>?^)zr1MZKUjCJy5NQQNT`%4i?uCjjuXwYGUeC&6OuJ#s`5xMY=4_Bcc$0FV$Ykv$OTs!w1cSlC8vFyp zc#-N-C2^{O4=SMX9XoX%uJMHi63dalO9CP$1@JUs)Kw$G0p>PFUH}G7PEUYr zrq4TuZB$)Xk%-oZlyHFWisP?HdLT?G2RkIVZwWuoj(?N$ELmKYBbuD0=&*7Nh{D@-Q%GJ3=nGbQk z3X$T`Wp?CU-(SboD(g3)b`;E z>QVudF7rmI#uoCyb0o3Hkt zlIJjujS3%T6y_fOSnJ;?PiRmw)+wXeCeSs#@356vsValr?S4K zHY}})fa+*?#}PZQ9jna;S^42-^qA5?d?T%wT-qb&NssosId&al%SYL5_h)C=$8@p* zqK2On2w|~a)x@_E@JiDd-F-l&2{$Krp-caQ3z$|l%L;*qv6(`O0jbG%cm-FL-Ndiy zWs~%?HP7P&7qdbjxW{fn_-U06PWl%L>9fD{?cS>bsp5>2GKq6fR zfR)t+4$4;xlHQMA0#VToXxk%mQdSH85gW_ z$cNQSA2InK9a$BLR3s~F6<)Us5_&hcg@wy&Eupa`1|%Zl$sQr+wXi-rK#iaSwIH|^ z$QNVmNrO@p#+X_T_$3g0FBDb@meunYL)dok)7v{{Q;E@dLFE#tf@VprL>c=cp>G#z z6&Sx1NA_nZudNL$S-Xiu;2PJKnKIMZf+tTg>?!zM&g6OK(m_Fp8u+zX6{!!0x z=_8TzwJs1`B`;TV{_w6Vg_wxcE$+`sYXV=HwC1XUpZNSYJRl3Eh9>!`lH6c54gA4s z+P!j9!%q=XjrZ5#_YvrccO7^?pSYXM(?C3isAv-8M{KAUZZnFioG0EZb@~s)pg8SW zs}@jW$~Au-?^VycXa=uzCrt3Va~VRxQlZB)4Q+P_FH4j^TIe~>?WE`rlw$jksatH= z4j-6&>EEjy@{TgVrz1>_nGHT1Dpb0c~m`=`D6V`42_$EyL7dc61a!&n4r`Jz3 z>Rl88F>S?q400pd3S9a+D`~)8*%OOOooLu;DC7^D=88=S>*YMMnL-D(Ji`dWZiAi? zj66lPmXU?u-<2d{(ZUJL$4_E?3}l1}FjKo++XQu&1(+4AWvYiruZI&4gcNbGcBpgE ziUjj?@?ewIrh5hR=%9`fOgmJ>Ff`&YjZ-=gP6f|S2EM1gN>kL8V*zj9N3AU50{zlw zlm&o57jstxdm<-i1u`?G`b^GjY(W*xrUIaHU~wL^r3>-NGxV@ zrI6XFJGK>hmUx#`;zPmg7nYCx7ozDNQ&$hQ=P9Fcpy*+hcL;*@Zl$RL+Q~!w-+JX$ z+rIbQKm+ZJzVp4ZZWv0D!~7oo9NgFZyev$QIXYW;h{L?S8jO8*4XCIbDCCJC?CRnA zAlabgKojW8Z=eP|$m+pQ^4(46ZIQ%cW7R)ob@Gb;TH15CM^Mg?IgQ~I!Yjn{f{-u` z{(~%`M*(60Yi*u)1$}~6L3Nx-vcV7mlj5>%Q#7Hpc(roS>pt#5qRv%Ob5FVfv1g_$ z!Tm^^{8|snV)Uq_yrcS4Xjumvv)Ouhr&`C$>q-4+K7Q*7tUod-i>@$j+%6%pZ5u@_ z6oR#AkY(~t%_}-5WXD+eNcfWPt^2veC-$wzq+~d~d7!bmPQ0tvna_h(XT5an$&z4` zu3H%8!&H$!PpyH!kge=cA17TlBZhbCQT9go_*`T)2T=PskYqm_`rb||46-K_<7ZE_ zg;ZKkMO$AS@{Y?xPUA=$hB;SGxWBsj>vQC$1B!z_YU_cQ^wfVl(Q7M2QD_C2rh?@i zo>c(_**dcHViI?SG#qBh9KAF$2Mnhu>{V3MIFnK#P8Q}0@g(FPm*Jr$zs;2nF;flu zscqrLIm&AJv2jY}JgRrWqaBuPqZ%KQlIe<&fD0WCMS%RyZRP15dZe_AI){u_F&}_k z`2r>5nX$AX;$gLC#pFj}#SEuzaX0G((CU%qeFoJ%Sk{?lnf(17%uc5ccuk`eHdh~TjS~%qDUqxy@coGV{ z(Uxe+uS0+(g4v$BUacs+QLa9Z^H1{*CsOLvg*2)WagqwV_qp+{QIDE3j6BKygfIfd_+M5HR}8?kMx9Mg+9W zJ2$9y9qX-YXx}HGDF6Wo^^Qe6g*8K|#=^;HI!e%$93oL&{-Yu0a1kx4(E*i4Gl9p-5UR{gzub|>9gcjw3@YCs5* zbSB#ivBo-uS?mYwEzr^Q3nh&ej$?e8PICSN2vDO5w)imOvCybm%@Ss{3UUl2oJY+8 zcOTGN6SR2J`~r9fRZ- z0=wfX&}YJ1k8!bWraEh{E0E}R_po(4{(&g|<67*sF?4VmZ}fo!?F6Khoqys4P4wVo zgFJN!1)52THk*UmwS!glckx8O^+tjf@w%jTN1FxyZc5w_|~{? zlmtOh>nHhu?5}x}>9Cz!{DT0F4<;-?zAIu{m7J7{C(gO>4zUwuDQ9sfOU3?>Uqu1D zPqfNYHFn8lC`tm&T!9Sw2cnA|iiob4oe(M-aS+C1HvBlQ-`~%$;>g4-$w1VW&8J1eh`;7W{+NF>Bqcvp()JN@ zZH!zew~z=JK#wB@LOXn!2UAlJ3!^ujcJWAHYksSyNGnSOmgKD=@gISFQr1{5=bZ~BmA&g`fTyld6HZH*%K*NS#0i&%s?Z9} zo^qim=EAI!{SWq_zDnuLU6$k5@kZeb3VHxD#rKQ$vGO)wt>cML^ea*1N=>*NJnfl~ zy{;WUJ*;e%fExj16vg(t<>kfk9b)1@jb}<&T_Se29CwFzIcaX&+X4-56{fl|5uHZw z;K7SweDGM~ryZlf=|r6)ZaT{6D${I|j$s)(&=TYuvrO|W*aYC9`>qf?X7|gS1|$jU z?$5ZLCYua-_Rpz5ms3tW)N8A}?@2Uq7vWbxgNCHt_QHSbBl3cgX4$P9M)iftWWUZU zWh*};=E-ohl)O?+%a|JnHJwzeQkR^Dg372ImpFSdLY02|IC9L}(Y{rRn1Ur`fK_($ zz1$oE#fRi8az{s=3Bw23Qk#Jm@Q`sda@hy&mUQq$kRU7ByXpL{zPsQ%^jdCrj;Ci2z7_SpoA0BLA1aH12 z^7UYY;!H#st{+JPhK8udZI&i^D55O+P%Iza3hxsk)C4Oajuu)Uen>aS?KM3=dY85a z&N>tMp5E#FEgDiJZ^ppK_^rNQNygUIm>~a)HH@64xpR6_?M#S!@!@Hg2SW`Z;eiJD zjHB*k2!2dE;L3yTL+bFgg>6q$1y2%=~k$)5qvbR5rL%-Tjtf2#^Kn1WOU^5RZRUy`n`ef#gjOFC9R!1&AYI z*_P{X6@no)qXsUumX7b-(_Wq*%-5WaWU5YK1%{q0l*FX`EoP2G!r z^KCYo#%l2e=2P6Zjpvg(iPU3af$?fIPU14pBXwBjHv`W@Y-VkpMrQaZBOa@tUwa>S z8{_0+MLc$>h>_{NY`slF4FqiYzvQ_-Ag3?aJJulDypvE`^eA3``txRK7AC>T`c_}C8j>-8>q3|*6C;;`)xzj zwKn#7lLn93)z(DT2@*p*GNx|4QR|PzboQ()atW?&XD28z{Am$F?$ondyI3(l6=g6A_R6b zB7EL1=pa<4Ia#=DcsTP$s1L4E@HveDZL||n^m4}#U>M5Gk$W~wIw#OZ zE=#j--{^v1lp9Pq}Zcb@RFFpM2ubda(fW z8k-shXE$SY0=L{L#yxBZhczNpWO-n24#Y=rSl&`a9-e_T_V)5!gvHJ^b0Th(S2)N0 zx`PSs7Yz#fZmVZ(O>0NETA>QYKlq~^*;To&{);(#YDQ`W)Y31+-S+Fz**QK-?!*4k z+rpgV!oPZgT(DwX;>|5$MtVf~xuaX3R5f0_6}rN4Q1hq8`G-bqY79UfiG7yN~ zC~>LzrG?jgOWx(SRWUYdylBrv-u1qJJoHU@X8mA@AVh4x%Oq}I*Qpk@MpAvb2x>3` zM^}uFAEc`_K>8mfweoM0YP#jO>v8D&M78)dLgLAe_Cne=HxyKEq-05h{|VE1hB33m z7UVQ!c_ni*oIkmco<>0pI`NRTnK)-_0?ip{+(n~-uoZX3*YqEKspPspzUpjMn%AA= zJ4~N>FLp|x#3UKvCnh)O9a2+dW8a7+YoVw8@X`iHF?O?6-8kACV4{Lg;Ou3i_=eRAtoGwl@F(G!*6v6o2mK zJ2Xd4#MNP9-K4qI@xUCg2QN-aj4Y->Gz%X&37E!P zfjVJ_X&89jRbr9)LFmV)(!|-oR85v$|FhQis{4YBf5HguqCUN=)I;>mH{FO)-b&B2 zGuAC{-Io@<6~duzr@SjmC@p zd@O1$)AAxh3?`Zktl{hjky_G~&Q%QVSuFu!w5SJ#nzQs@y#_6`eXMH>1@DV04~2y# zxgtiF0gIoYr5Esynb7R8WUxPlqB&ek4^l>ty$OOP47p^r+fE)r(UhI*5U<}$(BblY zNea$&S!^LV`z&wlx=3KrcLE_Ez(gaYLr)*Ta*jNi`rZ->l<(f7zuh#QWiB!_k?`k> z&1*1npB3DI6hzMC0q<%~zE0pDBenM5gVn$A3X+BEn%2Ee+-TV}IYw++Md!uY&xHW% zCm^8L*q)F~Nf-DvuzP^(J+^a|xP{lF5CV|14dSaV^e3zkddr5BX$mmHjK&eoj|;b^=kdK`on;(|#NTxGX&r zVSGFoF!o*65NQ0kfxw1nHuRvoOO>1YP!sWTM(;7~XHWoqsU6Y~b6Nz&=aj1h=RI^l z$s*NH!4$teNK3LUqlkat{V*S06YAb_%Fjrh}KnIU_x;5X4|TEqYvRjhJFqz$fFq%3T$*4rIyDp?@MOWL1r0 zbSfeJ+g-#Kj$o`n(`-i!HN=VqQf#sP-dqzv<5VgMSCmDoz&Okn7^Y#l1;%@zwOwrh z^sUv`=vLsrgXH-#(aJU=&Yvwv_oE% z9Cz2xb{L1diYDnGnOz6o zn(|QHN-qPne>OdBFrcKCKRd0as5MlxA^0Rl-9o&azrXNlc-3@hWJT1fCc8rN9o46L zlJW1T@TnY&BHNt32hW$C+X>i~Z*E{>r;k^?_7|0o?=wnP=P=s6Km&fW@y4|LLF=CI zcetVO;iVCi83&2d134)rfngvCVH8az!81?Cv=$ zRAWi{4AwZdp*yiorp{&HXl|DoN=g%u?iyLK0{QBt8Y<}zP{xk~y7lxsJ0nEt()+05 znyT%+jeM&|_4Bt(szwJ!JMBOZ<*xCz1iY*LEOd>2|L%RfxB(gprV~`6Dd~ODOLw!^ zeu+2G-*O`Hk|0aB3H*hW=wOL`3G%n|8KMvc$_2?e%r<|AuG~f z|5|RkQgO0x1qB7lkoZ#frrg+hFhJ}&3z{ulxOu_ejz3yy(WW2t#w^zJoWW%<%uf(k3>9Zd9u<$ zK0>&yBQ@CtU&RG23A69$g`o^ZbdcFP6G+F{pc8-SXSD9gZBGjr!%NZ}zn-`^5a^Y( zivSV=f3;WfH7us!g!3TvIpy*d!(zoix3nCB5{24OhKhLUF z&4zy0Y%w{qK)m6152I#gIemwnM~ zuF9sh;R^r?h1?Ro6-LC2V0K1vJ!Xxf*iBs=!gpe`UN>)LfuJSSh3Ona`IxsAzFi1v z-pqQO8EXhg<7}3ezc$`ZSZ8Q-XpFXK)C zHzV0T3a9Lm+3_;%J(Pg}xvwVOXK<(_Ew&ahD|!>$P!COH%CeDH!Ly0LVQ`=GX-r!rR($!=A%wW!Qdi&{8J#z5&sZOpR3*bPmL8kw8xO zK?Y4T$s(mwupM=70JI_aHjS?h#q6Swej6c(e}u)Z)tIt`_SnX0n9ymt4+mmHov)O> zwXH_HL#r8 z1giNdE_zelMaY4I4gu%F`7m^weI@#trLuoUZAiHL#c3`Nyztzbx)1=(peX$6Z{pBBi^ zqx{zY?3b=cPwi{1KMRqxu3P@dknNOTilzicB9#pB^r(p`Cfn4UJo z`f$Xa!8rv0S~%H_R*JgMh>FF!mj~&t^pE;-! zy2&rz5%iihHgp7dg5f1JysUncDIPK4hJ%6h8P^6~gAMfx#3XYoGi=vQv(&*8p$ByA zPt>W;M7+PV5wWnAKpG(}P@%hl8$G=Ls*nnjyCQV^=Ha;i-7`M1p2({`{N0$EPz__< zRcl+hFJ=G$qMbgwzNx>VEKk!kZ-`t zWmZdxP#?{R>;-;TEawy!-QL;|@6furmZs#f8~iAzU}HR$o8Z@F>~WO6Zc^c(NsBPemj#HjV->5duZgUYx$NtFfZtH~D}h8G0!aKN zHn2qZ&u(p|w*wDNSMJsCfc(&6FjwE7LC>u{PUt~Zr8S8vy2{<(46w5Rm_)YKDz&e) z!J#LrJjfI9By6MT^s3`?>MgeZ1PZquW7nqgqf2iVU-yOIPm5 zg)L2=R{keL5`o3COg~S8!0fA|b0{cz-dHvLx)UB9QQB`RbIIGp}geL;AV{bzO*V(X>3xWR~8NgiZe@K1b3}M`ggky5a z<1B?`OC!>qgKLqvTrGU=B{VC%!D!;Y@kFpKj|=g9T#RMGe4$l*NBW@bBd_>Fe`JAP zE(H(TQst=@cxJHAegatMgp4)LS+=qUWJ3_evt+ibvDl&#HJ9xSj=xKnCuk+LK=e1- zxN>Y^P2qZw+!9b00h2;ERP)kKnyO)Ci6*` z)nHv8vMhx@bO0*LMy)vaA!{V|T-rm6L{Opm1PbE^>Oa=>M|Zmirdj%vA1`T{cPdQ4 z9!b4s=ZD?&NRNj;6ym=NuKVr2YDFo&h+_`QPJuw^p9Fx_`MN%H3~Z^D7-Zvn0K(ir zY98@XQlznlQGNm60PTkw;U`o*7zEDN@e>@(FMcm@Jpk}5Dz%Ws978}FHYTD=#dG;g zav&q)bRyxoY{5_tu!g`pOX!fr(hS~toflU`g5zDFGve)ZApWX^7F4d_Fg2nl2|;k`T1h{&0NY`q0OaMPV+Ru?nv7fgvBA7G$4f`qUpK;^gMB}f(DNbvkNSy9q0g8nt zh0k%`f05N@SE!cW5zh|@L3Q#%om&u3<1BOAEZpchz@rL&HFM-1A6lASGA7hc`^%6r zNVuOkt&k9WUTR{U*)d-oJHr@ib%?kbiF5oA6HG2Zi94RlDSN;`r%|SVV(%k5Fxrg* zJ9nQzp7R{`L3n_@0m+#LZoIbCN54eg+iuuPi%*G;30z2f|7mR|ibpxV_pkTeo)ij} z#>jkr6t~C&&ta6J<9&C#S{q(SEkW|h(F9$JF*2CRp8mG{-joemzxF_}Ds7hyP?*2n zmesF47Epa4pMAZJ38Yv{|H{KH&@}^5sY2!95_F?eqgS6<#wu}a zU5C86W{qPne;!>X%|_hU{uT0_*zT7}8=?92`k20AmY9&|#MU6+7_Z-nkd_FpJZgQq z)Q=s1auT+0h)AiHgO6t~1ti)e%QGSGN3&FFWB8BZ!~HjU{ofceNboxU{g_3~$yMg` zaqP!uIIBeR$a~<7!QTQ-qR+m3H%fcXGs{`I{xikbY1hMT21y()AKhU)GRMMN5nC`7 z@~_qcy5WuhV|$j9R?io;uG|NLom2Icn2*`x-?yK-W_zJ$M%X6sbhzX(_k>RFlT_gw ztb8U)s|njqtiI?dMSi}V@3ZJdcm+E|FM|fCY4mr8$orIHs7M z`BYy>Y0IT~0hdriG0{O>Dj2yaJzO!l2?89YS1O>oj0G1H@DbXTv1hB5lps*rMhAE# zFx;h#^jhMY9W3H30A_gId=7ZR0>8{fn*THbgbL}$NhXMK_9j1bPp6Op`nSiJgPJGE zaON-qnMkZYRDnld8D@sx$bTjdJx{!TK(7R}kbT~Yhu9B>0tS1TSo|iyh(&|5LkY}e zGf5U;X|Z6J$ahb+tpE+kIKONrhpb)+BMq7`I=;k>LW^E$m?|?9T0V+B2}tM zQs@9la%oTKU(m#`H0|?l_i#Hi66Se^1Vhekfi68k$Y)~O8z9w1Rz31s@Otewx-Lhv zg1VB;$ZJrhcCflXAC#P<>fma1y4Hr6<-2g&=VxOYL>K*$V!oP6E+IBTGBd^b!%536 z>nVj!&BJRJJYW$R*XMPZF`#lSDACgTFeIE!J&a38e;)vN(Lc}yg{Owut~ce2c8w-t zKM{428Rn!@3ZWx(C0rtBhCT{#s% zT{U6YB*oB5Sw)VN9{jWfw(KPSWTNLStdC~gDSBGim9g@G9P^C3z_!7Le9HXhm`Md6 z3HbNG{3oFd^uI9Jw=hs*e#SuNm3=R~HHJxZ^g&@w^{8W+pSYdrU;a|e=|VxF%K-`z zYez!FbU?*t!!!Cq#;E@JIj}EI>`z8R7%pt(UkJ~KbFJt6vXYQ#*) zfy}pEn5ots`zZQotY8baE!MT^n92LzD9Z^-{Gmg<8_UywK>o!+0H|b*;)Nx+C2@r$ zs+Oy+V&a8pO|?xHPnOz7`Qh!2?-!G!*n)gyW?H1dQTINF#etVx^{QuE-+j~BBy~ig zxzM2KKBoJ4r)3pO2v%RZy;@+Yu=qDjPKUvtNXxR(ZR+yN@FfV)w48MKQvx*04i$yQ>M z#FVP6Jz09lM=%Q>k!L0gnLQOHNLtqUJ;n^Di{2+d|D5)+ow@q?SQlR_^ggn9(;!%U z)mB{m@uK?M{@SZ?99pBF7Vi)xXuRi&0yyC(fXy$74Ty?$4W#Z-tw(waC!h3^DU2kE z;rFz0``_Iqm`m^<)}lo99{6{o6UjHSm*zhG3(wFLCDmfhh$e_!owJ78`RHkW!v#GIr!N$PSPv0wU*9^kY4 zrWkaheIYR?QFr!+`_cO=F!)Vq#HP(rB(Ue8JfOfp+B)xwdtX_zwu&I8zl3}o)pYht zB4MJS0WE#3zTZPKj)-Z#QLp&Z*nJV!^Nz~KIYlL`-ukw#ldad|Qt@e;4YKtlNJ)pq zBQcY?5}T&x7)5clFsNUe-+J6)qN=d&@82wB%5&FCFauu<*KzYqw+!o3I8p!Rp1Wd**0cbR8N4P%Kqb!{^26g@QutK0Apb|8!P*4vGnM!)~IDL!T%A_Dvq9 z^P1-%jmpUb0z)`K%axR!W+vqyskVO`$bej`S4h(%)#_dhMb5d`5%K&(g0Z$MCBsBE zty~GIW)tLLaRK?kA~CZutmqkX2(&R#pRS)Ld0ukmiNQ_<1BxzeerGBt6r#fE{K zPr>ED(1#wfPupA}Z>_95V1;^iQM`|wN~EIPd72}wezskY3NWEl!Xf+@uYYfU`%7@; zx*1-kHQtoaI;X^2ybB<>xQ#0(xxH<_YFgfmQ(!n0eR_43t_XqvEgmgev6 zPN;xfkE8|KJF73zCtFVG9vg#?D-Tx--cz`a_20HIOCC^?81prQ$nL$GVgP00b@E$j zHq%%BIvt~G85=QRqUSIo36haMIYor)4fm7^h`lt=x2nkz*)iV=Dh|4jF^+QUwuIf| z9h>PfGNjz#YLH(oLO3T~27syb*I>ZG!Kf`?fxOWp zJ)@a)?F)PW(f|>I=t_m}^jrJq*7RaMkssy>eOo+G`6ZU}GICg#ZWRU_jImxJj``)j zsVWk~SbW^IGNCUa+9j&E0hTnuw#I6 zyo6G@oa&Nt8<(tNd(=biD-ape@D;$E#QjghoC{*_1IHn_eC*qbAzZ|AS15H)?Hn-G zW!UTiL2z`ulz}^B2WJQ=jj2A8dd^^b}(zlLQbwXfKiz`D0@W%fjss29T-NJd7WRY2uVo1Mku$Z z&?@7J6*Tf=pzV2f@&YMNU1fQ}El-zQ+!RI4Z^nP&-|8xAU1_WtWHStzQjm!_ z`mWH1Hh@kElOeq91JP4#ABp9HW^+jS>xn=z{P9MT1rY4a9*zd!dc6-fC)E;aM?n;w%jex#P*yH_ zh~%6URV)>(6zxg?j!Wi2#M5gyK=e{d0mftfC?B6)erwZ}X&ud7%-!_yGme-%mm&&P zD^SK=OPd2#aqZ@f!=Soh>6c)%8*m!3AOmRv&R`5uFXk4!K$Vz7NubZN+OnGj_JYeK zTBt8RAY$Wi?;z__Bixnzc58?R-IN6MqNQrMO7VqHcL=aBWm=~8@7r5~;hfxj#|<1u zj$JCzdo`!W#Wbz*sLB=vEbgKsLmE(5bVkta0r0skr+$qPK^*3Ue82^<V%*<=iT*lbdy=J?aF@F1Fz(bWo*HEg^l29VW#q>1Dm zPf=jtkH_dLeI*RGbrWl!QpUXIHBpGqa%~?Gr4&Bb&VFct1|C_e+o&bhW!J_Q_40+S zsT*lL9Obx%xBG%wEZit2Lk{BT&+l^A$(o+op_fg$r0B$k#Y+TgWw$G%+7?Wv@bUO% zFTm~J|3DzI{{?}bhf+tK4Ev={%nvPZdDzNyv*nXFVu?u!_AS{N{_Zv?@id^&pEOnl zK~v*h_e1k*z@wF&U2+SPL~T{WCrLL+JH(NLX;IrkZ&OVeMe!Tu5bcBk%2&;3;b_Ij z9FD&QTWXSLUfo&L#|9(X&|2fPuI{t@D`pxF!tY+Vu&#${2u}j)Zo?eYDD60%%&hIA zGSPYPO<0gxn4#~~DK;!;&az-6cu zSie&?bel%IfR=$}4%jZGjsem^yJ|xsi7nr_g=Fxltv@{KIL=?ba4X@A_pzT}agm@h zy&Bs&0dCC7Z6K2Jf~zpd?PunSz`t#PrY3k1L{7J zhy_E44POpYZzp@nQav4TA93eV9O`vOCz++tMzWM+u4czc;!OtTS>vnO+Hg0KRU416-t46FPF(u&ZbZuz$a%n=a5EeJoc>I5w>{jKYCgolm=bK&BcKfY#;@pv zV~8gjh&|uRa6S}xII8cfgT%a>hYzsjm_Y)TpIV;!+5v(aM*hyxA#M{WAKT(H| zBtyG(NG_IX}k*N9%+~%<`>j+*YJto0kG#f=NE|8bX$}JKrcKCgq?EAP+Btch_ zJ@zO@NWw*?dGSjG;8K;C2PpdGq^iHoDR6Of3Jl*X-AD_-5#Uq170LMW3bF;3=|p6O zE&U-Kb}QsyzdIixKX-RD{;DH15cTZVT-Krtk)oY>oR0PpQe~t?*8j?wM9jjcDC)$J zlp>k*Jgc*RndNA~G0KWhzACEH4~}{4RKN{cL&Y^4<}q@K#KA$^1*nk7mR6j zoRn13+TK^BY?ULsJZfw+ zCEW2q-@KaJJ<&>Bc+3v`V>{3yAEEz3P1mbCEfeX^g+}9o&4G^YO0@(nkUBa7N%qlD zc@d5_A$yQ6TY{XiWXP?*i+J=FH|W$+|NOQt38uh(^GjN5R1)#E^RDd|oDPBG!srwQ z@wi)_{dI==GEEaDxv}xW^Gr232WRRdUo8thXLlkYeQ4tifzFF;{*Z~lNySQ>p!(w-w3molq9_F|1 zGLH%mAj9!yLU`ZG`X;ZE-a`n-z!T<#K60qP2om$u2dc`fZ7egk!bG(neqvq?UC>Ni zx%SW580tuQrUZ1ob8ti^0-{6twj3s9fKu5=?J%DS>&jT=-nhdB)OGEYZthyxA{rkM2| zVlk?aq~}kT@I;8j>q-oA&}l2bQ`vNs_(;#Q>GZW}sQw_syM~*OHf0!1LxV?uX`zcP zfr)wopid-PB$durOEMn)PR)pF7$Ql3>76zIr=(G1m!6 z@f2gh9BHxO8wgA=pkbeE2bEoi7Sdtu4jbAJfczU|5abyfO-wY}486jsHZOGzmCDG7 z$fJwoKD>2Zwg|soI-4`UbelabSUfr3RMSH`Qh` zOQZ?<7oQ+=)y*sti{Bf&8_5?hj6wd_AGv%L7~Qa>amZ}TEXCb00B%%oQV*@|^$9a?oOicxt1;s#;a8)U@Y3~QBBO&K9}Ju#h44dgEYPW950E3?QMcJiGK%jad}a*tKgcjt>w zKdPl@Cgg*eLD19dJ{95J7HHWAsg6q~UkcDerVu?;?pK0VZ$E8$qI{YLWL{0FLqQ<) zd>wEiES0Nnc+Di_i);ie9+s;I(zC_PP8=;>N;Fs@bpg-6?ZT%_doteTMiQ2ZFJaAF zbT~t(A@iJEFjTAbu6O_lH|zW73bf!|oHA!L)bw5`2i!bZEri!!ioPKeFbqG(&;>U4 zQpCDi4ZzTFBs8DH#TqUA8Vkd&O{rxE!F6VOO|yAqRS0#i0nB8`2kF2jFZQO}fIu{Q zy3NQpRKfZnm4*XA>X1!Qj4#42Xg$$dw4YT%+OCxWelE{JA~|)qcdSBO6PIFHQ}8lN zb^U7oHZQ|)@CbW!x{g8Fu2i~ilr1d0>MB?oD}n3o>3;yiNUWyaZ*YUH9ze#j@VDaQ zG8r!4y_f{t)|D&A21_;?;8fHP1tg-`9tw#8l;Lk2$C{`#qx{W3e;-J>>6MIT8tFad zowJK+7xfzrwyp^bitZh!c5<)(m@9MLI}gOOW3$^n^|XF(U0!E6erc+|eVw4^k~9K! z%G6r@%+2cVqmZ-qX1i<-rW^iqGD80ug93k`Zd9T$%sU|dlF;f|&F3729+O`GS;ajW zb>YziapBYb=$YlT+Y=q%#PSy@2+Gxp6@QI)tP+d7&LW+iNyo*djr(<6)Qk(3C7($7 zp0&qr?=>z@S}cn?yQBO(2pYMJ?R>R0<hYDn8G3Ij~=2@ND)=&^>XcVG{%nmyY}Yu=Ng1f^AE*ZrQeN zTV1wo+qP}nwr#u1wrzKrug~7^o_pfO`v)slM9!RJ=E(8I8luDMoFLJww?Zj;`P6=* zmg$b~U$ELYLjixVn`>r-jm1k4#%v;=VJEP}$4hnJJCY?5)b5_xqnD9iPYEAW>jVOA z^;R+wjgWk*N9z~<`jSClq38rfy})AJH8Et^zWF1as!nak z)BN(912)9ji(H$#nSV$|2MIv+x5vtpNjU>Z@uyT3MA^_$@b{Xh^M2cVVgy^(G^Ql!+_Ykoq|qG^LL*yIP$%>z}z&Jv`owQwl2w;|EbTNe3DgW5vt`|Fz3pafAu= zOu}^5B_DfH%)*IlW$HNsR?O4HX~8o(2qSNtm{i#b*uZlRqsz_;PX>o4aPzUe5P_&7 ze}EMs4t-4l7jotxaUG1pPpe$4ZWb%|(MTaOByGRS&{?(3_Zd2V?nkCoQcWb`b193u zJe4FCT^NaSx?J~anBc*o=`Xy#Y@`#J+fkBDY;wNQI48WWueFzExB__IeOUcKrc`%= zS-}$>8#VpK3t!e5>O`EAh#Q3&cQq?lCgS2K8lRMm=<^VOcZcLceq2p0P38A~fyu9? z#Jl^*nZr7gf2R%A%H-clY5ghq7i#nGcqsD!M;rYF9Go##3(}73iQID=C_9iu*yzM& zpenI!n?T}iT>K4-@FQ}JFjiR*Gbat+q0RLB(owkYf%kQd+uTP;Z7=Yk{Ilp2aLjuW zb6zjQe_Iil2RmOxSnIo$Xhjf2x>qoh7?x>p{iy>KHJuP#-WNt6$nWow&dBC*E(2Mw z4*vMag;g>7ojYi-34VsZlnY8^Dq`u3=DRW9;TuOo@M=tOy1#j~@x|xh)w^|(E#(^| zqH+R^Sh}T^xJJh%Bo<1>-k*!cF{``4jkjXio$ z#{~OJ{ATJihk=f3V}Q`A`uy{DFlCJablJq%-h)Q`M_e-dmNeWHtnR*MT5ApfDO?&T zFW{)o!B%^C-y zk~rr#Uq7e9Y==G0*{vWjFmnJY_3}dfCjiiuSjfAV5_N3ko>eLbcKeny2Y0I(7DMTl z&RT4zr@s#Iib?HPoWu&$4ZHsc7v4DTt#AZcqCR^C5QU(cdWDc8LFm?cezj50Z}UTj z2T7lWoLAJqo-vkv&0<NJ9nb?UOd-AHlvd-v-tzLTyI!h~*#44Wft@I!x!S?Ki)K@{G{1E)TzSf4xm1gjT z3)iDigq>C;C{EAR-IPFCZ%I8PiVTQbWj$`iMhOyGWy`+Kb&I7-w6>MHVYKa zj)WIaQ1EiGPnpg_nVo;ySJy>aOE9_dPNP@OTW4a--p*DiTBZ0>9!Yb7fE&Yfk zT3Fy^CLSN#+MB>s{Q&I~v$-!BU|)-_(W5qnliZ2Y2N<}wIqtsvosz&zjdqEE!re3} zvbl0Y-jDzH$xa}*{Qolzg47;og5p1XyX1v$;B*%6o(-!WRg!v-L36&!8?hLfONFS;b8iDE|NvppM-lJogCQZp;r@WuEl~C9MUQI=%YV=+bS$kr+ z?RN0H>XKvUBuk#Oox{?;Bj+Lxo36GJ*MqTrytRzLw3+7*Hsb6H^CkYM8UQQKCs`ba ztCyF0J8AuZKopHp<95JNksCA#C+}Bg&MxB<%C^I`wX_A0sJ)nr2SA=y0$cL~J{;nU zOFjrYz@=1VK@gz{FV<2~7%>SY)aC;JIW7wVmqn1*XPV3Uc~`K~tW5 zTh7m9SH5gjTFF-Eict=9h}FV4=_8iuHpe)e_RAOmoB@nmKw_2Go9FzXUO9%|L78ER zY<7kXC8UR&C5WZQwUNb%Rl!CkI;^M24zNrCU6g0RVpz;*h3!TE5qC3l?~iKRtbYVb zPw+2Dv&>(sE}u`yVY+t!0|;NbHJrIr{y?pbKbxrdB^Sqy@fp`hIl6YXMLki%pv+!R ztW0FpqYE%~u@y@p=i&7^`V4AIw&)KANPqP^7w9yCiO^Ug9z2;+%M6w#1Ofn}nHzuU zbcZFmUe@hnym;6hXtR6&8A;v&M4BMQ26Nw#3U1@UCcO8J=WMiToMNX*{0uXwW?r|P zaVUNN)y}z0A>>58{Atn8^ogCBp-zl3p&t#$yqMKcY#fA{#`!R!n8xq8frSm1DS&}H ze-f(a-c``$ulsB=c}*)>Nn^mFgA`~nQQ=fWaA18~LbL3AG-3KU98L0V2<^v~SGOHM zWUFaQmQ-{qH24Da2!Y7N?pC<~Go)o~vZoH3;*d_nnc{iFzr?cRu?h+qpkDcv7Xgl+Qd203n`EE&}j zK17Ym-;sd6Jd19awp(|SMF1#LKFrZ27*fcND~J=V39r@4TOE{PY^+w1oqq@f!GHkz z2oL^SOMtn*|JRZSWs}JWW+r{imbva9lu4zwN`!e^@|VgD0r(gGlBN9+KomN%DQTkc z{4IiI6md#y)x)V4SY5|+C})jROc>!*yK+>8F&R-9-{Zb0lAs8|J{2BE)*n1gkiLm(HVrYENWEE18t#?AUcK@gdgxlpMlyoyk z2Wtg~`OcrOe1yfmS1f~ zhoorj;{dnswgUWowQVUZZH;_B(l-B@+6`oS>X_2hc#xbl0qVd}gg;9>&qt-pPm^-Gvv&#W-yH`epqhpgeZ_W`8NX&^ta016%nGa_9}%9Jy)UMi7f_P zj^Qdx9)^f_9fjsM_MQlxzv&yJ&8?y!&30mb^9M;63&j7SS1!f%kXy*B*~Zu!18Dk+ ztZW^PZM!17f6}t-+q7q;~i@!lO2v12dkq`CQ%lFb^ zrT_F7uGUpt=1&R)mQ4uKW0!7MK_wy!cMLEtk^YIU2f+o~SNB53Nx2d9@rux({>h&Y zxr62H_7OVd5^F#c5RQ3A3($tw4YNn>0$>Dw=xL7XQ#b#O9aX5v%l)K=#5qmiQ=S+Z zYb=@L!H9HeMwl5g{Z-@8Ye*04HRGHCj9#~CD)}hko(DG^{t2E#NJPp6m~y72VAlB< z=P*9M>dm&~@T8#rpHS-8k*Z@j${}wK{q`!aCWUBj453-R|0$jE|0|J*O!G4~wI_NP zsmcEq%oF7L$y5Jb=#;mu;|B{^`4`__Dxy?uR>NI{wQG$^(SX9#Q;N^W<}+SD?#&s$ zs_d05Un@Ubx9W&WcP!-2jzZQ1Uy-EyX0|^*CLT`5TY0}zI~JC!j_{!HqGoMmKFYKa zxcuZcZzS?>eQ>fEs&%$ftCUl9fm59&DpUr z9p5q9LGCaEB4RedLi)K*8JORQWzQ@OJwzKJhBk3Xyf>^hK^4B#aX#klT6b0U$9+zM zx|Cj-i0QROmJwN*CF~EHlH4f8xi=#w@BH|N<33;!XAY&AHJ&pl}_?c|lol)H`T?7Iv*+BdR(C$P5^oCapmGM-e5Fl>zk;#eV{%<-q z(mcW07G^t|XZsW=K)zXPV!d)iHG^hak4T!%UH~cFftEwVAQ|hnJk$*zxiZvvhHA^9D(glR)?^{!FIlKyh7RHb|aWa zeYgmg6XJZbV(t*5Gw9^8_t`=WqM9dZQ<$aJE9ZRUIqs`5Xw9zG6}e-n+xV!=cY5i~ zw@jgtk4`lqAGXA-1d6rzTGqf4rxgba^uAu7wf78SmuWf5AFqSPZ!l5Fr~ZUt(2NLw z|N2ew$WlULfj5lhmfzS^h~wRj3KbQaaVGSkgf=ccl;1gY=%kHstDmgD^am%$9Rz@d zv)zx_U4k0EE_a9Z%{av%V#U^ji|cH|-X`LotZ~CMVLH97n;4H2Kj=y6QjfZ#Cfj16 zLxn$RAfHpYaoUlhLZ6XyE7iIe^Pwm#;c$BVmT|4hlYf_*tZ5_-#mjqx zV{!ssKf%12J2tQhq#;OK7QeLDFAk$58m6=n-Zk@<4n>P5E62N^d$3fM zi=9tY@XClk!|G^yY{U1x_TZ3kiWYZPuLTz{r2nC#iP13qhF}{tuXcgVJ!oYAee-@~ zw;t^_8_88RD>;LH4RNdOWllK$=h59_BS7{hm7PbBewT=MsTqg`iyRDr)FuTVlo%Cl zkI@Oc#gu+|F0%C#ij4XLj4{0iO4(%a>Kjl9U1M2-#k);^j~YJch9mwhObBI-=}1o# z6IU*8;M>bt*!cI7$4V)U>>r8|#Drt0K*M|HCy0FgLe=!w0OoG4BXZ<}mZ+PCk6>DD zWQpII4FUH<*!cV=8t-)8edt9UWy1F9s2K1e=kMA6P-Zt;Ky}msZACaEgZ<8XUGG$G z$^Ly-ErQ+Y5apcfPAl_fOt0h{eDIdjG>IvqR8k*$am|2)nUY-wsQqlq%e}NbS|Kg( zP`-0b`x>Kb9RV>n$nizf&|vWFw-gcmyI>zz-JJCyjH>u1bQcM&)?R z4+E_txf2PQ(gY2`zd$8iB7hFNZn=l50mif4Qr)my94wp%ODHNzxM)4-1sUYbc?6!r z+~tBycG{Gz+UPKp38X5Rk^R%w3Q0kTB)rmOG?gTx_{oy{?$gyppqVM1!iyKjXJi~` zh#Ydh%!c+2{1B{wR&#JuW&lMpMQh)@#NM2%#$4IcPP6GpHLNSLULi6}l^b$?y~H+> z-b&maqYVab*1=Xf zX{QzPR00X?Nk(plt(y2&-Ye{E!CCQrXy=3C87oDf3VaV6^ba2gh6dQS^LjuRno39! z0ZifEn#&4Uo&Byy)azdvC5ZdOAdD_$eJ(A<_g5++77}P?`8!1j@Qr>w?C7&RtxW8G{ZX#J$KZ-SIuPGcsI`!a5 znC0eI`RS1VAP2Awd%Zo*OBwv!tS3zB^)eLuR%oX&YBe`aH@-OV80|fs1SWjP%+gX3 z(-Xpe9X#RH+6I~~`5E*fpmMKEQS~ww{Z6~+0WF0%{Dt;9_^XfMC8P0Oa!v|QvJ*3X z8(h7_+&n|GCJ$Fysx{cCxyzha6p-glbSgWd{Pwaz9{J;@*i5LnRX#UKT)Q28BX^jy zN(G&DO7k@jP2g0(aQi6PA2KO%6yfyr_0^o~?>-h99c;MuXRpp|j9EL#ZqJfO-9Vb3 zJ5bbX>jSs2=Uz|-BX1q{+jfL0?pv-11*aoi>P1$7N-PY}%O~W5zf!25K57}luwM`7 zK*-Ph*fTlQcyF1-^5x4f0>xYVjObm?iq;*29^m~bROi}hOc`EL1*yP=0V6VB&FT3~ldHC|z&RQG=k#1s!m-(az2BtPFzn2;iDQCXrARz- zIcc)%Jt$zH*pT^pNNpU}V{H>Mb+!vfhM6mBL0=lAo|=fHX%8 zJzy)%WQXDR>XuLe>s5g^xXsJNhmh=&SF-E$Lhg@RY&~gY`4~4mc3<_sLOw;w++gJo z7W`N!XP$mp5o~cK4h+9?%GpgQ1D|MyDCY47T$~sNB%#=mN!}nkUrz8C>m&m0kDr;G zr$lu?N=S~ec)Lu|RwbWExweTMdROfmRAq&K%4)9Oj*XRg{*h8`*c!n5H>W3o(JU-MBG zGxZL0*}I&%zLQ1<6-T61rp8QqP5p};fA%??9Nn8K5+by)UFJdwW^~f{rQFYM*GFRc z)KlBw(a<$Fb5XIN^*t%#nCHr;*GhS!g0S#XgmHQ12iAqnu-H%C(d0Z{)!wh!43U6( z9lhkqA6aBma75|m&DCXGjL+sK4S^_RedxD8TiQRZGz4_re^F7CJ(+VkfemfMWCmAG zjH=)6!#pHR99!xMe6Sp4$Qr3DmI!*)@5{x-RShyju*yrcH6CPG*L{7WP&`2-B$*6V z`gMn4vu-3~%)FR=j$M<|uPY58t)4f4(6JB&YCzRZ;-`CQptWl%>cDVGD7~!fm~u6&En5&mP z?H&%xcfcxqgbPqIqMkm-_+pKU+34cuvNh>wl=k#OIGU9VD8XpMB)m*2aT37Yz_yI+ z>f<4v*yXzh{A;^)sJIziA=XF*JSXobo{*N(@^wCyb>0$=QtYG?WA;yHJvrz(m1bGQ@n8%e)!T1 zioE&9MI+EUISWRF-LOC%W|@D$IU&ZOu)LVJ}&d z>}+0S0ZJX-qv91)5X20w1V^&QWz|=n6#Y>aenlF{IBl24pqjcXjhW3({eU*xTdJFp z5pNCoT|Sx4bhFjI%A^y!Do0y`dYf_{I7ppm=3`w2Z+=D?6w$^$V3wnF6EN^sZ?ME% zvVj~N97D~;_l^N_R}@Hq8Ws6^M>cucqa=}c1PHS{9vS(54h8#C#RJH3`JbZs2RZdOVDB;$?7%d|73U0K#0d7I z_;AVM{C6;b!$1W_v35YWPW%YpAtMBb`%{{iOKUJtY^qVL8AodFb*_lLQp6F zLq%^`wRpkknC4u3U)y62& zA5O5*TXa-kY%k<^owROIJA z=J7`a`WS&5qMAqW*A;Mntr#iu8*%cD3sG<4>my4VUX>b5Uats=`N^Nx6(`S6O<#FsObnDx#ux1yD(o7-H1qOD z0UK~Yn>j7Zy1^gv(a`;4=0y3LJ7r1+7w@hMLI(?*vR&`%-2M#OT#;=}zUEg@hvWz_ zIM|R;?nk7f`QAYm_weNr8_}9eOl&*5j-~t<<%(H!y6ns?&2yd2C4hjU(5V8U^6m#0 zta}E0hPrrA$^tKWOYI;%k!}KmE3~M0E^sS?6xPW1$pK+_&g%Pte~Rj#VbousRQdn# z=aJn~DN3OI`Y#us%YUTk!-RWy)hW_33I&#^o5?)ap&x5r&=dsbbXG$PU1szGd*1b^ z_?L%NkkIp{UMwmsALT=^Aql>L6-rP(5tDn~$2OwD{cp=_b^d15Fh*UAHHg->t1k z9p}mN3BXr7yJq1ozZurv(#Cp9x-oU4EsjrxILy)upBbpTvp->xC$2Tll_^YiSk8{D9jDzK9? z@RxNhLv#-hua>1RnzDerN}e}dmh#4rvZ#1p2ubow{cUqr$WV-}4Z&gh7!N0jatf^u z2ZkKcvQ3jQs+lJg8rr{dhttaMq}PPiUoQt7>`!EE*4F#=93Q%b}8afDPuL zgZoUsN+DXSUd?`%Jsrw`gQX7<6=eG^Sx~_{Av?L@#;)~DQs;L7Kix^+vr>^GnGT)X zOav^$O^rA)bVun8Y)n$38n3kYH3|Zl`vGNmzgXSqvneJ)%y*w)XQ@ zfG)yC%1gV5m@xmwI9^_<>;1pJi2tyk{$b1ipQJt1bb{D$m3IgCz!whAWfmiic9cX9 zQqD#A^{T(KCr3bXtfhvk8JjKJ@Woy2_Qy0e2+9Mr3sE1qAC9m*Otfd`KjvnrMj}hl zzh;r26_<#xJbx-er_p|wk8Z9(F{FhU3`HOaAXoTJy$ia-84m7Un}ud>XDrt4w|0H( zVTe%6;(Q$1IJ@$CrQ!}D%-q_zPQ)Zcu;Vn+fR#FS#(Wxdq-9leJvevqdqB{DYzgu_ zWw3!+b77b@uZ{3(*`xd#0`!;*yIjX_l$zcu0v;&k-xlXhU1LjU2Ml+M9Y&iMN>iKw zoNM7N*l;1R!CSiA@Cl&X-nq_?NGX{5efXdWfHJ;-n>NyS8e#-i^ZMl`)~JdNy0{0V zFE*9KXo@gS#CnBm>S>H93c)W!aFpO_#y{gcy_!`Wf_1^WmRN0p$_uztTcl`N=whzz z4TV9J%eBC6XIm}cxLnhZbXZsg7d`Mqi{Ga0hmc@|D%hQ zY|_!LG%bp5AepOv4GxY&CDYo&Dx|1S68*AtxNayVY=Pgcl8ZO`H@Q)a)CH0<*v~`& z7z~5|i-1;UmhvpBHc4V?qC5WrbdgiWXN-E_xI5PKw*l8=m#YXQB7{CXg@We>k$4a( z&{Dc(m(o)M++vmq|IT7eTt6Jjo~>)OBe|@q{EiHi95JJlHq(hGg#V@szL z=yP&#7bW9*_a8LkJPG>g|h>KaW0myRHG~x7r-|=ZWI)O_ks2vV`Zs?SChuTJLL$TP?!{BcUQXE!EV}~TX-%n&dBk4=%MFuB zIVNYHyw9gM#U*V|t5jZx*@Tn>)w({!ejcv+AKqKR$!I8F1!^Msps|HtiuW14yFLS_ zyh!!+dKRZ#Rl~jib8Y+w2qpEeRgb~@r^oVi({kb!gQ1m?Yj~ZQ4)xc$$}vAq6%c3G zt@mMKP4uOwk(L{nEDASj1f29pOFJL?q@$gV)gt!t&b&B3X?+zgwZ^i%?Z&-tWc8y- zkG02)90QD+j|WB$y?;Eu`24*+sa{^fD{Ml9ca=#pct<*FOd9{aNPO!6DGkh28z(4T z1{81PZ42vN7%d^MSG2z0_9!NxEg3=Ou!m*E3~KXKuIA*p^}Kt7wYh1_vPGCBtDJ;c zT6qx?b^v8$c{pY=gBX4Yf`xpY^~?_y0HB~wa|+_O^#OuH$QT9B_Lh;LHFc$vu_W}a zjN7y5)SBl^7(>IvO%sJABYFI|kaOKh1{@QrS>T-9?WxrkkWRVJ*21|d+@J;fP_<6@ zZ`fR;=U4RK00#d3kTa6w$P8OV1PhfubRK5jS21BD&+#u$aFgs#Q8AMF6biCv}&dB*-V zD?tjH7c)WFjT^dKt75p)I6TR~e5S*`#KuDOtcik;x_I8bmBOOTA87k_6))wZsFh&g z2jXzCe1I1;{Tx6`-cuQ1DU0a1`lWu2Ec^ga(QG!#&hl18P$kX*=KJ1bqqw<@>|{5G zyUlvCP{jVYX$B8#$hIsHTucNBP)WP#Z8SwnpxxfbE)-43cM4N4$PT#1pJ%rZxWjk> zxJ)?*Y<+L$roNyWdOx+=$w^!Ky0fm1P+9yO`hd0{rR(B(z8+Vfj!}wwC*YJty#3_j zug>K7Mf*}Py!7)bhful5D&BVi5w=RWW4iE{!v`&k_y zYy+b^UBP|Z*BXfFi!hc^C7R_+Ta3i(QM5E>U2tM$*Ly?Q=U}t~#c`HJ7rni@1@GNO z@h|Kjdx&66&oX)koD{YeqEs=^)kM1X#t_30M57@U#hW4!wo4KB4lZn6--IB}z^(!sRT8tWa(OUm{jjkJ~9 z)-RKGap{Son?qS8$R48$*FO5raol0itL!l3D1%_EVXH*e=)8ocdC|xd*34R-cj9>6 zNet`XhJ-cnLyp|`JxSXzXVoi4slS#iO-e??X>9f3nsSZ!v!pG?*EqPkUtsS2S}@nr z1=FF_tV5cv9YwcV%|>-IsiELAW$A+5TpxbA0y&%2l@3`0QkW;B{KMfCYJh5j^w7|w ziI@*Xg>OTo1k`V)yv0OI^Nc75M_}m`ICc;_Yg7;vL0v-RJqnIj!D%Q_ehAX?jQhx1hK3u*}ijY~;W)LGo>uAY64ZY-2Xd3NG=F;l}bdNpq&6>LXS- z3}(j*Ra{o(b$G((p7Dv0{D?q}eHn*dMtTQQ+*gip&aCIC1WL{9fI%5-j%*=_4Rr z5(uH)YF5Qxym&L|xKZ67&Z`~Eut~zR!Cpv`bc=EsTv(_;<2cHozA@m6fEoXe;(W8% zmqwSQJRpx;q@v)4QnC$i_9R5{DM{~~Fx2=Xnoz*kS@-C}Ox(^UYw&JN7|KUMVD&;> z&=l;(iN#(RoV^-47wOV`?_7PFCW*Z$bngE}{zbhb0uM_JpU9_-@J6-pUc`WYUUtN^*~0{LmNSmkP+)bJ+c@gA}a$6uCB z?jJ|&PQM2s{g(@MT;Q~GrF&&lanz=hV@-6ONP;*LY&OntFUAw+x|*?`glN_m*%(uC z=cF&KXuILL=tg8L=@NruV{OD?+Ohz{COy2EOHhTMEEj)gzC(*-L1~ zbVt?`jPH80t$ENx3rm+k3f3X3p3hZyM5!*;vgx%hP>3jhVCk`=_Am}=g-CTc30UdG zBtyNF(a>_8V|hu5fVRRu2%^PbDT26cmedUI5z7BKg)-AI7l42aK=4U&a^~$#uP_zy zc)>3ut<7vp;TSs>r&!aYYALqks+v4aNLmc#Ca?z(WEIY3lid#1_$CW^E`8;tyvAD9 zvj)0%p~Z$2dz8~f0ogVW%36|}mE*4@V4-SXN->ldmNBIHb6+Cm&Q4X@9@gvr8oDe; zUf#j6h51pbmaY)!?{AWLjeK>Gi*?^^Ag9WET}fYD?&wE$SY0TZOiB$8-cvYgaxl?0 zNPyl|p7jaE(HfKk;pLlsMD*Au9|*kMM(cgt4Om>abld3%rj(-2C!$CG>vlf_L0#7| z9?G-7_N?_$cdAhYv^8)}x!leQLAKx;8H9=ib(krSqkwXwQU*9wS!OW}9(K!Wn3)Y+ zOXQ8rlAM8qd<#@TbZ-wN?SWR)A1&7^%h+mVp*GJj8`mOUn?--iO^oHTLfPTZ!1sIF z*J6Bb1G=?TG!&iaswR4~IzF7}1MYDg*=lBEMohUP$N*LfG~_WF0&-=f{k!|la9N}1 zR*Ynx#t@0YJZAb!E__*?Xg{aQmvI~>~4JneLjU1W-nTH z)uIFNxRNN{1U}?V1N<+C&buXx5LzsTxx*9o1hwOAjEu?e#3{IS8mPb8W*WrTJ_9r#@`^>I$UUGp`1r_ z%8UE90R$#(vm}kCXmCvAFWal)4uZikO{!ifT>yfd`~=bWBz zp&q)XZM)#IB<-X>J$_s=;LMr=jj~Z6ov#R$t4Ofqe6LiohJe$AouP~bNnYzb94-2J zz%=uyx51#idnRYQ1IelV;)@18hwE+Z3QK1tqT~5TGyPFpI?YIVcAwR0%EeDUE@H6( z5_h5sM(GZvSP2Y_0Xo>e%?pf4dAdkPL=%~U>z>-83&FBG1QgEd;{7c47^VXJ+j0zw zk-3`m3MW*=@l0iQdUc6VR!*JATo{me(%A#!D_j%-U)H{mV>(euAM*VH8_x7~;`Yir zLZ%&~)!{7M!$1_8>N=KF;TMF3Q4iq;`0#_~YlZ6n+>9aZXB!}XK}Ag!DirXX8|oi9 z`1f`fsR?{xCQ{hyKZbixuM9~ILf!wu5klyLRRCw^o9ngu8?VM=yc`}kJrQ&W*K*C zwx5VHeS%Y2Bqs%1_@<31cQ?N4M7z~2(F;frKHi|i`pE-ixdQ-FND}Ol+#|byY&U^; zQJY+r6@Ljg*cf5&{Gq*Ck^K@KySkdrr%sh>UGn#cBcZ+@ zDou1SyR5>1%F}5Sa5-$lY5O1m74C!gqKrhX(x6p^9^|eW$CiIBmKFq;H;4p^nish{ zD6FRp&;Jxb{A)hrEwg{%KVazJ=S_k|xO9<9UM0p2v6ZEVVz` zs^t~?ZA%KAio{d~!?d5UrKwhUA7%uF;1WMQ_QK^8`Z`}E^vWK^h$z$Q912KL#}BFk zM{Nsv?1y$%>>`(=vSJfTPR;rIcA;lbx;MTYXG+o`L;Q+!arkMym5SLRs|D(13MAYt zN()Rw)%!{%zl52smX~qug>G+nYuRRcEmuBd0h*5w0;((g`|@oO(6M0 z1ZM_wT{Qq)b|xF?42w z1OXn)dJdL1f%Y?d+F@-QR?CFtzgC6E7N=w=AqMgnEIftLBkbmgW9wr5uS2SBl%+f} zQcMFgJu2OoK?zN^NrwYyk*gHR#Y~r*RWvFB1L5{u=dyT~@{FFTuOJ=&6bF~_z-uuo z!VccPx8P69l4BKMh4^esSbxAM1eC;)`2FA;PT;=iBfJu6yve2d4$8Or2QB0_yT_wA)Y@hxPy>TIF5HCL>G3uAn zGI9o4ohAl){})IInD-A6O6ot5-M=jAZ)k3{XrUSrAp0SVTe2vL z2l?mK{4&9jfymQ(qqaFBKGYG*MSCHBUtG+wzed^J=v4d*G}p|&D&^w}9|}TEhug1u zaF3O>d97hAK^d2j%==n@Eu=t&AbRVSPIH8R)516d8nsX_mA`y?`cQs#Vo8&It^*$YM8s2lRN?VD`=t^qB;e^#e%R%{u76(`ogarcYyH;1ju?D>a!riONJtLkIIIvVHX7?>`7NbWVzC1hIDYPA6}7#m zC&TX~wjtbAAdNZ-8s)*QELmBmnl-FlX}rYyKgkkzm6Qx-IDkOl<#vObVsP# z>vbkZ3QHg$elz`9>1b`w+=>&c8HNbRP;Al`=`?Z;Eif;zwkK>g%8Lbvg0W~DQ`n+k z^44JKAxijcGz+S5jXiGYVP{V2oNF?Ad*4MWzqdua5!+qKfrE$!uNIH$k5{#I>HHFf?y^4&EoObb$Q%$q@74sTC-sfyW)tm!clE}86AA&;_tWm>cfZLQMZLIfhS zf*(d){wS@7pIVPrJ^pSSGAO+s!sOvd;wI~tM9$6eZPt-9#W|<^y$HNtGGW|W*JIA9!i7|=GqFD9~HXKL6S*QRMRcH4CpR{)ZSdi>XR8nLEl zb^5EZT*=w4Mn?D`)_A6{`=q3oQ4-TA)RB`;Btt!~B}Uq`OAyT24k-Ve#GU`U$o{WR z`ah^B#-Hz%5;e@Jf1ot+{tr+B16zP}0YY$T%^?R8Ve5QJdwElZ1Z=ssB7B8> zAMLNRh2k|82rdAkiDM#^;XrA1)l#8Q+hraxDW!-Z^;s;fDIml76<3jd z%*7GymOEK#Jqa)nG$m2@u9#tg+T8aq-c1%z&+bp;lsA95 zK7DUOxqzuy=VRlC80~x3B(!Z{tPym+X<&eSTE|q(Ir%d67Mop9o{!lI1h#@lUy+yA=MQUsc33I>0cZi(VY=`F@I05Zci^2r zoyPE?>ju}1HmdbwF#NsF50#!OPShy_g2PD!D5fXA@XcXutUT)~6T=@xQ}}6qpCQj> zdrbhX6$Mc5913Vxrv4}F92N#$>A_ds9)L~RtOxk-aphPL4(HebdXyffBufYOt2Mb^ z46w?XT|ccFCdvsiq{UQ%MbNJbp?DVX1^Thp*Dz1{=lH6uBT-To)k|^@fc3+wIyr{T z2I=*THPGhDTXZa9o1q$(sgAn=>Qm39!~!g3;}E01iI0PWI#|=e%q@7~UeLwy{@!sj zkMI0J4~VxG06vl?38y(OtgoTN32b@OYkxg5^yBgKUS&sv%KahP^CA~2-L!Ih#9{fnHQ3AS7}#WTzD0m>n-}ve4II!FznV1L^)b_Ll1}= z0x?^M9gsL#ge6S9Bf64N=E$CE{WvVvZhA27R&h8R(Hsu*ov1e46Ae=gL64AgnPzyf z#JHFjO&pHGWbkNL6WASaF@B+~8vxX2aYU$Ixp`nFxa(so z#;fMk9Crke7EzJET>#jgGY<-$RllA<>Z>bpI4Fqpu2I(sYzfJfY!2w1R4jEIM`0Jp z^sXuG&i)4<$cuw?x117%Dp%n8<*?fZINZcfMR_Jq)kS#|FTb~k^J@5@0nnr= zl)1ioxHPyF(jkxjYL7C=o@({mntmDJ$$}T=s z*1FQ*TV-5U18l$srlMMLTvsu_AKLOXXi|z&d6vqdlHI3&Lv_hrBt@KPKfgFSj3`6Q z*osXPntO>S2`1#_Lb`oKrU66~Rz=)L7|Epu?%ZFhqocAtCAn9T0&CP_atmH}GX_jN zs^I$kP8XAq?wANWhe0lE35aJ>b5``oRsl(42&*d+>cbS&5Cr5_jU-?wyl0Rpl-0RI z-W5osxn4+C&k(3N6DKndcN-B#fYBQ=WTaq?(g!Ui;Mi2;YVRP4zZUkACLzm9hBoha zjbaDo*9J-Kdr#795&8-IgmzPhdkUFhXEn+Mz~beak>Pu#YSi6J*_y)d2F{J@2^nQ& z%(8Ho3LqPN9;B5X%4h&Op6<+%hgL|A;$i_LQWfR2!8)0(wuQAXn^S5D6wDrgDCm%? zWIJ<6tn{p?^Iz3i=fyLH@Haiwp%d6$%8|EV=Zbutf`D)h;y=H`h*`BPl%4_@Rc%F; z{ju}~7#jIVZQ(LDmIf;+H}9p1uMGvEmu{H7Qi@8^A4a45Q;XRjlVs(L@23=SL-6!R zt?lkqN!Ya3%S~!RPT)a7<D0gm*mrHRRbfB}C#@g7qBr9l&i}qVJwEOV^gO!%A(Q ziBMgp2)rS&?wCZZEh`NZVa@lUe2R)O4P|AEhdCgmMWI`nhG*&`7 z=lk#CJlOr&O`nAnA;0NsVh0?#Pf%}q(fb@q^o`6?5R8>PPigsO|F(AfJSmj3P6zDd z_s82A-P+S{vS(ruGfIWlaSSzc&2o;x;}`ZeByh6GJBbW^%W!7hGF5~*VJ)>_I$_E4 zh2Lthpy**jI&FnztJdXok=Njcml@rnyh_t7akv>IH-+UXm+_)dpMAcAjt8&G9MybG zRoFcW42MGhBdq=bNc}6U^gq8rp4sk_k%}XAmRfTY6{w`fJ&=jCwYMA0H8B$>Xs$#S z5b?xn8FiTZDMRKAjKu=b<_#LjhcwO`8rYg9?jf`dkN(JmLaeO`1MkHBhRT|=PW={k zxzIjO=Z!+DEvpvp^QT)++qYo$8ZX6J7qHjcJP+{(J4!sV-`@M=gPeo=wpd>#$2j5^D>`?ZL7f@J~ScTHrfsq7Ef1_Gha91aMB& z*Q$yi(SKzLNW)ioEY${4*b}Hu@;RdfsM>@+7-Ux}lbeB-E|j_!WTrYRnT#@(T8H_Y znGXN@$ebUY)gQJ0gs0*y(|Jin6jE8wcd{E<(~ewK%M0=f+ z@@p?8{pB7BE73G6R{t5@TJ()Ex9YKZ<+SJ556^4?LJO1lod6Y}DjIQxJ7Ajs@=j={ z4|wtvXbQhY>Bar}*E5Z(yAvM>s=R5alS=2RD$)QwlhT>=3t5VwXkGkUU&7j&Z(&_fIBy1g{>UADaXHsA_@j5D zFvW%jMR=DRl8)}1p_osS*-6TF-7imxJrRG?_L5XgQ;xZ)lz@N@vIh;Op`=ZO?|uXO zC0TZ-%+sH<=V!j+`A8(!U;gYWvP4Dbft5ZBR*1n@v2G>+u3TJV!Fcom!#vL;w-jrn3%qIQFxOVjGDT@BoH13z(`JpRUUEMdbi^Z2N{{)?ePT%)9^q009Y5 z00032pV?|be*jEsefM8D75`s=U(_dFmJ2G$L7&Rl|Ml~2-%772gVVhGB!m|>Y5>#| z8Qe8*Ym%MfFx0!Wcm<#df&r|V#HAttMhyJ)UW#_-;esP(3GpH&gin*RjGxoGgoKkaMox0H-e@#DF#bq5}v% z`L@nGL7Q03IAg*PG2v+~6x;UF{0Cpw%%tG1Yjo>$QBg}<@)x8^qKr3gKMccQyj1xBE(1*N*BJRtKvwj2t01TXUpRo zR?hx4CS0Sz!Gg3*^I%X15UQ%vIri_sHnX0JT*``q=?z*=#z}B60 zS!Tu9tb;hlyFdxQUZlr0AOHX_uT(VPVarBqAMTW&QZmN-L$2H<`XImI5#c@K+^VDzOBnG&N257HWcWmOVuL zKRWxi?HsIL5~Yv%q0E{Xw%QhthMqAikL77!!&Z^7odOpRsT3+gIA9o>ouwTz+3;oW z6r@2y1e?M;6`zW|c4HmJkI8?<3VR>P5;2*Dv68emgLkv9YWsbxc)HW#w`OQHK?qy~ zXa&?qfz1Rfc4;5u`q3P0jv*X$?GQXH&uq+&&)Nz`wYplEEQo~%^R!YbPf}5O;@G4# zEMQ+3?A`)$cXX&kqJe^<4)*{SRP3obe>l|9s>*E_VYdJ{45l&MD7yttZ36n3u(zq= z#X9x%>CoiwO3AVA2pK8w6GL@lNAj;yrKIx*ov~!9>s!xMhN>rS-XYP6SMC=VhP8hr?}Tx$F=uOEGiK*wT)< zX9TQJ7-~NIV3?LtT{}I&r}G9YH~1!CtnvHf`XB%5TL(Xc!RXX54R2p7DpUJ`2n zXr}h`TP=+RKk>x|JM}DU|4k%l=$O;eiLL9*O}uqSWG$(~66N{!(s2h+#_NCJL;0Zh4 z!=%?*o7YtB(47_wT^hz9_sZw|O7+lIL#pUKZxXXN&nztnBl9;l_}iLC@NZ8>ft{mv zfY)Xqk+%~JJBWn|ikgsnXO25`w~llq^Q6a|0l`o(Nuih&A(R#w{!Nimg}k=A#USK$ zzm{c8QqjQRZ7w6IOL~t;3_D?sejyCr&kNEnem(Pk|3<-_Mq}(*6^}gY(POaNX3?~6 zRf5L680YVkhyqf;|&a^@pyy%jC**<3B4UYchJu@H9Epa4PoV~X>%OzwufSjkU}OvP(; z140yb(3e(LE3u)jB=jf(fthXT@WEoP*xhYJHP%Yft$rA~0l#Lh+>Z?<-t4Et+;x&! z*Q{Z1xx#4RRr$Kx3wZIFbtcY5U&dXu|5Z4f`s-UfYtV*1LA^6%KT|t&fkY8{G~<$d v57+n!5Vp0c^ETtiy^CRUNa5y6M3tO=bmMv8;J5{X&j30yAjtLi3nyRTP^O=y diff --git a/dlls/mf/tests/i420frame.bin b/dlls/mf/tests/i420frame.bin new file mode 100644 index 00000000000..738f01b1154 --- /dev/null +++ b/dlls/mf/tests/i420frame.bin @@ -0,0 +1 @@ +ëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍëëëëëëëëëëëÒÒÒÒÒÒÒÒÒÒÒÒªªªªªªªªªªªª‘‘‘‘‘‘‘‘‘‘‘jjjjjjjjjjjjQQQQQQQQQQQQ))))))))))))ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍ€€€€€H[¦¦¦¦¦n66666ÊÊÊÊÊÊZZZZZZððððððÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍ€€€€€‰’’’’’Q"""""ÞÞÞÞÞÞððððððnnnnnnÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ \ No newline at end of file diff --git a/dlls/mf/tests/mf.c b/dlls/mf/tests/mf.c index 0dcb51d0f21..b0632496743 100644 --- a/dlls/mf/tests/mf.c +++ b/dlls/mf/tests/mf.c @@ -6641,7 +6641,7 @@ static void test_h264_decoder(void) static const struct attribute_desc new_output_type_desc[] = { ATTR_GUID(MF_MT_MAJOR_TYPE, MFMediaType_Video), - ATTR_GUID(MF_MT_SUBTYPE, MFVideoFormat_NV12), + ATTR_GUID(MF_MT_SUBTYPE, MFVideoFormat_I420), ATTR_RATIO(MF_MT_FRAME_SIZE, 96, 96), ATTR_RATIO(MF_MT_FRAME_RATE, 1, 1), ATTR_RATIO(MF_MT_PIXEL_ASPECT_RATIO, 1, 2), @@ -6650,7 +6650,7 @@ static void test_h264_decoder(void) static const struct attribute_desc new_output_type_desc_win7[] = { ATTR_GUID(MF_MT_MAJOR_TYPE, MFMediaType_Video), - ATTR_GUID(MF_MT_SUBTYPE, MFVideoFormat_NV12), + ATTR_GUID(MF_MT_SUBTYPE, MFVideoFormat_I420), ATTR_RATIO(MF_MT_FRAME_SIZE, 96, 96), ATTR_RATIO(MF_MT_FRAME_RATE, 1, 1), ATTR_RATIO(MF_MT_PIXEL_ASPECT_RATIO, 1, 2), @@ -6734,9 +6734,9 @@ static void test_h264_decoder(void) MFT_REGISTER_TYPE_INFO input_type = {MFMediaType_Video, MFVideoFormat_H264}; MFT_REGISTER_TYPE_INFO output_type = {MFMediaType_Video, MFVideoFormat_NV12}; + const BYTE *h264_encoded_data, *nv12_frame_data, *i420_frame_data; + ULONG h264_encoded_data_len, nv12_frame_len, i420_frame_len; DWORD input_id, output_id, input_count, output_count; - const BYTE *h264_encoded_data, *nv12_frame_data; - ULONG h264_encoded_data_len, nv12_frame_len; MFT_OUTPUT_STREAM_INFO output_info; MFT_INPUT_STREAM_INFO input_info; MFT_OUTPUT_DATA_BUFFER output; @@ -7009,7 +7009,7 @@ static void test_h264_decoder(void) todo_wine ok(i == 2, "got %lu iterations\n", i); todo_wine - ok(h264_encoded_data_len == 48194, "got h264_encoded_data_len %lu\n", h264_encoded_data_len); + ok(h264_encoded_data_len == 1180, "got h264_encoded_data_len %lu\n", h264_encoded_data_len); todo_wine ok(hr == MF_E_TRANSFORM_STREAM_CHANGE, "ProcessOutput returned %#lx\n", hr); ok(output.dwStreamID == 0, "got dwStreamID %lu\n", output.dwStreamID); @@ -7168,6 +7168,19 @@ skip_nv12_tests: hr = IMFTransform_ProcessOutput(transform, 0, 1, &output, &status); todo_wine ok(hr == MF_E_TRANSFORM_STREAM_CHANGE, "ProcessOutput returned %#lx\n", hr); + + if (hr == MF_E_TRANSFORM_NEED_MORE_INPUT) + { + hr = IMFTransform_ProcessInput(transform, 0, sample, 0); + ok(hr == S_OK, "ProcessInput returned %#lx\n", hr); + ret = IMFSample_Release(sample); + ok(ret <= 1, "Release returned %lu\n", ret); + sample = next_h264_sample(&h264_encoded_data, &h264_encoded_data_len); + hr = IMFTransform_ProcessOutput(transform, 0, 1, &output, &status); + todo_wine + ok(hr == MF_E_TRANSFORM_STREAM_CHANGE, "ProcessOutput returned %#lx\n", hr); + } + ok(output.dwStreamID == 0, "got dwStreamID %lu\n", output.dwStreamID); ok(!!output.pSample, "got pSample %p\n", output.pSample); todo_wine @@ -7181,6 +7194,17 @@ skip_nv12_tests: ret = IMFSample_Release(output.pSample); ok(ret == 0, "Release returned %lu\n", ret); + GetTempPathW(ARRAY_SIZE(output_path), output_path); + lstrcatW(output_path, L"i420frame.bin"); + output_file = CreateFileW(output_path, GENERIC_READ|GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, 0); + ok(output_file != INVALID_HANDLE_VALUE, "CreateFileW failed, error %lu\n", GetLastError()); + + resource = FindResourceW(NULL, L"i420frame.bin", (const WCHAR *)RT_RCDATA); + ok(resource != 0, "FindResourceW failed, error %lu\n", GetLastError()); + i420_frame_data = LockResource(LoadResource(GetModuleHandleW(NULL), resource)); + i420_frame_len = SizeofResource(GetModuleHandleW(NULL), resource); + ok(i420_frame_len == actual_width * actual_height * 3 / 2, "got frame length %lu\n", i420_frame_len); + status = 0; memset(&output, 0, sizeof(output)); output.pSample = create_sample(NULL, actual_width * actual_height * 2); @@ -7192,9 +7216,52 @@ skip_nv12_tests: ok(output.dwStatus == 0, "got dwStatus %#lx\n", output.dwStatus); ok(!output.pEvents, "got pEvents %p\n", output.pEvents); ok(status == 0, "got status %#lx\n", status); + if (hr != S_OK) goto skip_i420_tests; + + hr = IMFSample_GetSampleTime(output.pSample, &time); + ok(hr == S_OK, "GetSampleTime returned %#lx\n", hr); + ok(time - 333666 <= 2, "got time %I64d\n", time); + + duration = 0xdeadbeef; + hr = IMFSample_GetSampleDuration(output.pSample, &duration); + ok(hr == S_OK, "GetSampleDuration returned %#lx\n", hr); + ok(duration - 333666 <= 2, "got duration %I64d\n", duration); + + /* Win8 and before pad the data with garbage instead of original + * buffer data, make sure it's consistent. */ + hr = IMFSample_ConvertToContiguousBuffer(output.pSample, &media_buffer); + ok(hr == S_OK, "ConvertToContiguousBuffer returned %#lx\n", hr); + hr = IMFMediaBuffer_Lock(media_buffer, &data, NULL, &length); + ok(hr == S_OK, "Lock returned %#lx\n", hr); + ok(length == i420_frame_len, "got length %lu\n", length); + + for (i = 0; i < actual_aperture.Area.cy; ++i) + { + memset(data + actual_width * i + actual_aperture.Area.cx, 0xcd, actual_width - actual_aperture.Area.cx); + memset(data + actual_width * actual_height + actual_width / 2 * i + actual_aperture.Area.cx / 2, 0xcd, + actual_width / 2 - actual_aperture.Area.cx / 2); + memset(data + actual_width * actual_height + actual_width / 2 * (actual_height / 2 + i) + actual_aperture.Area.cx / 2, 0xcd, + actual_width / 2 - actual_aperture.Area.cx / 2); + } + memset(data + actual_width * actual_aperture.Area.cy, 0xcd, (actual_height - actual_aperture.Area.cy) * actual_width); + memset(data + actual_width * actual_height + actual_width / 2 * actual_aperture.Area.cy / 2, 0xcd, + (actual_height - actual_aperture.Area.cy) / 2 * actual_width / 2); + memset(data + actual_width * actual_height + actual_width / 2 * (actual_height / 2 + actual_aperture.Area.cy / 2), 0xcd, + (actual_height - actual_aperture.Area.cy) / 2 * actual_width / 2); + + hr = IMFMediaBuffer_Unlock(media_buffer); + ok(hr == S_OK, "Unlock returned %#lx\n", hr); + IMFMediaBuffer_Release(media_buffer); + + check_sample(output.pSample, i420_frame_data, output_file); + +skip_i420_tests: ret = IMFSample_Release(output.pSample); ok(ret == 0, "Release returned %lu\n", ret); + trace("created %s\n", debugstr_w(output_path)); + CloseHandle(output_file); + status = 0; memset(&output, 0, sizeof(output)); output.pSample = create_sample(NULL, actual_width * actual_height * 2); diff --git a/dlls/mf/tests/nv12frame.bin b/dlls/mf/tests/nv12frame.bin index 4267981efd4d4f398bd109a548abcce3f22f22c4..76a716b77dd262edebb519a303dc5c0c7a90b553 100644 GIT binary patch delta 33 mcmZq3X~w)KLT zsHL=M8!ey#6eyQAV8N!f0V0ZsB7!atd<0Xs%Q?$~(RdPrnVE;(J!kXl?tkaZ%qdMT znhP@nW=do-%*2?9Ftc-PkxtVX-i6@}2(QHOG7K-q@FEW04t%#xpbry75I>$p2J6d{ zCLljRen15V@&n`t=pUF>0R5GxNTT!r{U_U_L;nE%1C}6Qe*yao*uOKY0Qv{$AK?Eh zb`>o5{WVtEc$ncEMQj*vi?CrHrUK0>!yJL{*6FwPS?N*r&-I`8{KohHOMg7dI5N^S zXNtGtr+LN%jPdL~c?}zNqKx6u#toraf`ZbMa{*j^I1v0Z{SKcF)=NXZ8;v6GZ7HQi zyQZ93jZgRl`RSI4c*?wAY3#WeLD8#>IoqAPz7pi`{C40*SeNgaq{m)TrPTQDq;@ds zEJ40Prgx52iSPJ~Sz|LJv&`eurPJpL^6!qmq`D-;}z~ zy$1goi$m5rBc0tkWt|Ns`TTQ7&o>+6qwn7e*}eA6my%cIF2xK*@cFMrlwZGLre3D@ zWqce63bw6l^^sH%O)?Y7dk7$%@;yO-u>Y`)4Hu;d_Q@bP8>*vM;9sM$sv#iA? zQit61t0TyNraES=ozpw&t5us*vd0~(bMxmj$ngai<^9v$6MIB&NBmBVIBIL+Z(&~PZ^P_;ZJVyxiJk>X~1vVt66nB1b_ zuY2`;x{RM)Xp8Ko3ME@A+R5<+uHi?Iz3M_MPRHHMzq-b;BlFZJ{sD4)p)uW}eA|Ah zNny29$vM&f!Uy_9g85nK@32w*f+};`-TkAIR!fp$=ir4U_5E+^7iHz`o2qIGIG0_N zX9`aVI_$h~PdG$QAHnl|AD&P~hi^q!N%M#%Y(KEw)Zkm z#d?}p&tqNT7a7R<&?NHI1>_3~H>sN-&9?vGxhepce&lx*`{sN-cz~f)O(S$_bxqh^%+=&T$_yF+oq)lkhf{^ fxnG?F|5xf%R)RjDk6QsU>x&yra0LqdnF2omljWqd diff --git a/dlls/mf/tests/resource.rc b/dlls/mf/tests/resource.rc index 483ff53ca94..49f9b0dc39c 100644 --- a/dlls/mf/tests/resource.rc +++ b/dlls/mf/tests/resource.rc @@ -34,3 +34,6 @@ h264data.bin RCDATA h264data.bin /* @makedep: nv12frame.bin */ nv12frame.bin RCDATA nv12frame.bin + +/* @makedep: i420frame.bin */ +i420frame.bin RCDATA i420frame.bin