From ffea85e470cb1b1fa243c759920438044be12eff Mon Sep 17 00:00:00 2001 From: MediaPipe Team Date: Mon, 13 Mar 2023 05:09:52 -0700 Subject: [PATCH] Internal change PiperOrigin-RevId: 516179167 --- .../quality/padding_effect_generator_test.cc | 18 +++++++++++++++++- .../autoflip/quality/testdata/result_0.3.jpg | Bin 3290 -> 3295 bytes .../autoflip/quality/testdata/result_0.6.jpg | Bin 6203 -> 6211 bytes .../autoflip/quality/testdata/result_1.jpg | Bin 8386 -> 8420 bytes .../autoflip/quality/testdata/result_3.4.jpg | Bin 7803 -> 7797 bytes 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/mediapipe/examples/desktop/autoflip/quality/padding_effect_generator_test.cc b/mediapipe/examples/desktop/autoflip/quality/padding_effect_generator_test.cc index 787baa370..84b229d80 100644 --- a/mediapipe/examples/desktop/autoflip/quality/padding_effect_generator_test.cc +++ b/mediapipe/examples/desktop/autoflip/quality/padding_effect_generator_test.cc @@ -138,7 +138,23 @@ void TestWithAspectRatio(const double aspect_ratio, std::string result_image; MP_ASSERT_OK( mediapipe::file::GetContents(result_string_path, &result_image)); - EXPECT_EQ(result_image, output_string); + if (result_image != output_string) { + // There may be slight differences due to the way the JPEG was encoded or + // the OpenCV version used to generate the reference files. Compare + // pixel-by-pixel using the Peak Signal-to-Noise Ratio instead. + cv::Mat result_mat = + cv::imdecode(cv::Mat(1, result_image.size(), CV_8UC1, + const_cast(result_image.data())), + cv::IMREAD_UNCHANGED); + cv::Mat output_mat = + cv::imdecode(cv::Mat(1, output_string.size(), CV_8UC1, + const_cast(output_string.data())), + cv::IMREAD_UNCHANGED); + ASSERT_EQ(result_mat.rows, output_mat.rows); + ASSERT_EQ(result_mat.cols, output_mat.cols); + ASSERT_EQ(result_mat.type(), output_mat.type()); + EXPECT_GT(cv::PSNR(result_mat, output_mat), 45.0); + } } else { std::string output_string_path = mediapipe::file::JoinPath( absl::GetFlag(FLAGS_output_folder), diff --git a/mediapipe/examples/desktop/autoflip/quality/testdata/result_0.3.jpg b/mediapipe/examples/desktop/autoflip/quality/testdata/result_0.3.jpg index 53ebcf770e4257196d7baeb0791b2dc68af6934a..3602046e6c145b175f4c28563044b046d58455ab 100644 GIT binary patch delta 1324 zcmV+{1=IT48Q&SO%L0Fx&x!_+{L*d}3rZ?8H@z#Apvyaj8--Kz{pm#h^tp=mY`M5n z=Bf#*Rg*OCOM^u8Qv+t5nq*j7D58K0X*i`Op^@=Q<4WN2Vyj6tGFfV)$(n~FrWDDZ zZ+eKzeQFX(r3y_&&D2sK=9&bio3PQa($scDt0}3HYNxc+iJX7aOqoR*amkvnr!__# z@mCVHOyrueEfj*5sK||v6;fxb40x(@Rx+K9sjW(~K21Z6nw6I(l_SZhPUl)_Ard^) z=?zU3Rb^uWv{5mgQmBL4g9o);+9?PXe5PL2ndT2_Rfn3mR8SOBm&_s!}-yw}ftGDOj>)qs|pT$Z0&oT6;2i%?~=1P48LWVW%vnk7gX^ zn#r1!HD|>6t4iEfQjLpD8lY~qVTTo2&MV5P6QxL1Jk)>jnx(%6rjAOgO2kTKD>HDX13>J1kNhrA4}Z^|ss8|eqyGTn=>GtP z$>Hz$^VL7^)PMY4czqNIljaE{2Kr3Va6QM9cnKc~J9Q@No@6^7<&$0tAP5_}mo)Ax z9^;c<3L*nAJ;RfD2_JtxiU6P{=A}t9I+Bd%1iCAQVbgBXzqlrNfXtjeky;092&BRiiay9P9&wN z2Q-c?58NF;<}?vSjotMrA9_7%L;|XXHpg_EMPp-w{cOLLU^S`>J!*( zuT@%3Y4WvJCz|!CtqwUoO?Nz1DNi*s$;DQ4lUxm+l{nZ$>sC;4P{z46X;+HQOF_+v zQl&78RXDD7qceYcmR6rot5f$^WMr&j(5+CtJ({6on$Dz=Q9}(h^rz!ArFg99txBH7 zDMeO2YV4_1S$VH!o6zExtvhWvB^GQhkcxk`Cf+GkY51<1aIu`7%CbjQ z%v{!kEksaPWMyL)5yBx)RK-6OwT+Ejn1E8zMKVOiAzF15nhTMXq}fu@ijG8AF&@fL zwER&`K_Of~C^WQ&tsxP!VxligA*$q@*0Dr3XwgL#kzqv?Pyt00Pyt00Pyt00PytA3 iXrKsPb5IeO`Kx4Ro3^b=#I!z&D5xkXlW_u10{_{;FlRvk delta 1424 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 diff --git a/mediapipe/examples/desktop/autoflip/quality/testdata/result_1.jpg b/mediapipe/examples/desktop/autoflip/quality/testdata/result_1.jpg index c03cd46108d10d57416381874e712adb46f2f71f..741e078e9b1c97c8df6d49f53e2c6d4257514ef8 100644 GIT binary patch literal 8420 zcmeHrcT|(x()WWPAc_bkbO=pa0HrBCD$=DSKqyi~P@2-aKomqYQUn1h(h0pBs&u3m zL8MFX(jlRPki796?>+Z@zqQW2?|1K7-#_1zHCf4?*|Ya=X7-+$hwzOs16)#9R#OH@ zNC1F@_yGvxfFeLiPEJ97mXd;k;@mk(stX|M3+K;YV4}NB17c%_u(L6{&80 zqO>2850KHGrQ;O6MSdA>LBZt=5_=wzO38h@xDkx#!}5qfa0xg^MbE&<#C(O9k6%Dg zLh||zDQOwSJ4(tbs%q-GdiqEMLnC8LtA~%QZEWpa-P}Dqy}W$_Uj)4je)Sq1`7SCt z=6!5jd|G-2CNnELC%2@uti0l5WmR=kb4zPmdq-zi|G?nT@W{8(vDvx#g~jhn%PXt6 z?Va7d{e#1!T&H zU*-~fP6@glky_k%j$0go1wU}|0`sF2lgkfG2j9z3DJ3^ zv;Yj4TTVj*{QsZ+_cqAjjqOE~zdh-90H0SE6u(gijY|0}8^jW%yK}m72ftf|-hW(G ziTIv-E?57Z#HL2zon2khM~U%PhQ|D9-gvX#Q{rbgh@LZN}3=mMU>&WE|-ymqW% zvAVq8b*tP0d)aEdQ38?-H{hzMcpJKShi2tw4frTserBdxZqfjP*Hu&OA;`9!*RJWq z5Tk3WiTaRuq+LrHg336ZBMr?D`~{J&$^5(9|4+;p5LW_(K@)xPfIBEIT>>bBD*>SY z5HV%&qV0cE5^4d+)#S4Q4@ykzGYXz}&!CY*^_;dI7cI(>bx~Gy!FHth1Jozx1z*#- zmGak9UwXQ1mz~?mEm!^OD2`Y$-h0Ji`&kFc+Rr-X=5inSZ|%q$`SY%Zw0D-4D(yOT zqvX($({t|Izx~ikcH}zPj(dx*D)b*{lG$7Lx010M_p^esqqfon>r+$g#t`r8ev9W} zGiQlHeR`>6v0;zt$ypX+zsI-UANs@G{L50FP5rh0@(Nld&X)@W;4_ocxnuU=mEmeC zY$%IL?Ql6+MX7EjYgurH%3tQ=bC5)`$~&~WHS?GV3MtKPoR zch!O&C5CFMtzDuOWRzBCmS>o9zn|V?reK_8fXeF4`dp!ZL^J99btKbEw&~hRMX~u* z3;Xd+CjH>!h-KK=9xQmcAhgWD6RRj;xBTTCl8J(q0H|*UIWM@I2`1!7=6>DVF=@-l z$%SfcEuFewJjfLJJNzheTCpLCepCqAFLRBJQGjD4iU2fO%+Va5>m&gF z11Hcmr%I~W*pKAVHObI>U}j+f?xEdNkweiAMheWe2|C!l#G&S` z=)uhgK<5P&M~pqyb{56CN`-i~i1!kD@8QiD(3=A#VYORIARUr_hcqn%8jRf~+w|s( zi~(pIPU4P9+S_cZ)0FuP~&%qRT1>d3l9IX_pUjPI{BqxBUFANjAiI;us_J1=t(l?7Mcf#2v^u;4F>REN--Q~&Trpwj#Q@x%JtNG+Zd_3>M z#9)x7s`{Zmue_F?q6s0Vyel76_zQ-@4??Y0WZbGNa?VB>ks}-LE36*Co)u*^=_fS* zFz)d@VwcyaKnzyMTQ@ny$_Zzsl06b800(`1$HOCaV*JC5kvt@Dkl^!gRIaBJsHf;7 z!FNju$)2v$FT5Y5e{(tQ+r^}z0|LfQc5hUCP0$nUg<0KjA-r8%S1qM4;Zvk`5S3UhV%Y&#i| zgxtcbkLRPFKWl#pxh-Aj69r0~^RE0*FA0%gOP=v^R2N-_4lW$Jr`6Dvm?_gdjBq~A z$!f$N+zD!ys)|KCVsy`G*ZA1&9rgCjlx2DCl!GDzY|+ch zw?B%hBQ-{E?l8K+Py6ulYj&TtN(a)m^Ec9;%f2wNURy)jSBK>4X0Ghm9J|T0ikyQV zWNbFYC(F`rd_`FI%=$06uI=XBY*)WH^B1}5uksj?m!566&x~-as}8&5Lk<%?Ch5## ztddnSeO(qk>VuwNItzJyh4kzbyGfTW5s@Cd$MJT{#A-{C%ATvT z`2yMKI$vZAOMESuxc59g>qpKKoS=9xAdoPzj1p&^M$6jj3U#M)DJV( z1H0Km<#jg@ajB)XXj`x+Sh0gm{1|OuP%PrC9bKnMEJ))1sk#ZzQ5&Dc(YRa<3YT0?Eq^KB!N14V^oc!sTq9I$T#` zRu{h*z3!b;o1rNXn>t@$t#23=C*okW7@o86ZewtyWO+=!Ff1Jq(2e09OM2Q!-${ad~Jm4_|U(_f2*J5r9yS=(ZD;kG2xB-cfX19~=~(1&ANb z?-X{|Pa6gO_;8r_gUPV*(Ah3>?fvE7I$uKGe=BZ7aiC=OE=DgVU)&s?Hj5;O;c(~9 zZ+==jdQ^AU1?oFS0E|4>L$KHPWvD$ULzdD);ujibEp4WEx_0oV#Owz)waTgIyXj=4 zS|kObcD&iX{{nLG8R^Au@vvtv*r9dqiqXAMXhJf!xXkfrk?1u45dwft$J1XAB>-|o zur1;WIQ<|3Ks9!V>b^aVKeC(O+`xA}l`oF4+Rm_=s=Ihm+$@omp1jm9!J!>|SBp2P z1Swzbr!_XMArn&axPtce4cc#EFy`$<&$i>FJn@3sB3t`NF!y6o$OdiiY=610v*(ri z;56HN#Xo|)RSJgy|C;PW&s0T^9lMXB!Ivsk72Rk;V%oDiT76&gA`-2YX%siMS0$Xj zX%~)!j*t37Mj}4*2IcoKj4^1|x^r`$WJ({fm)oo1kVR=)xuu;v>Q2Kubjq^NlZZE< zeS4kLG_8cxl>rum&@&S^yLdSK_V^qXW+Hks?WJc;`F9#uL$OD-qV8a--62exOz36f ziV?SknhGhh4L5msO(0^`IMNpDAZ6`XS>JGKx1$|=WBcCPmUZ&vM4Jn2%TbN?Tx)`eBzn2ta`MUdf^cMR-}g&5#epsrgUwxPx%)=?L5?JE&f7t%Q(nI)Xbgrr5D<++$TJ7ZK}<+ zUHL;5CmU^-?eY3oRl3EH;>!o&Q|7qB999`}1SK~|*j$yoN2{>N&>V~9TWiu3c>;hj z>)+#ik}}bAwYvh{8}{R7@8O6t{B?_Ns|JbbWI^)Yq@A)zqBKH(Hf{CM;m0;Ubyo|^ z;zC>;>o(VkZ2ZoN-PmH|eUYMvY}(yFRCYn1y|RWSz2>dEM|6QNeumrjV`Zl@;~J$J z_Y9lv1mgGxkK<37GgcPM<{8^|{7^+5N3Ytvs;*C_g>wX~-NO!beK0Y8*ZW@ZZTKNO zwTkncys_!z-k1^Elma;m&59Pah9^ex&dH ztjMjbokIcXuf8UQHmsOPiHb<#jauf3DwBuKF`T@)gc@l=5zqEPGwRQ?9Zck)v47|I z%PG1N0J8!Dkc#oOA^>4;3h+N55d((}t03@-NU994;GmU0U!H3L%cqX%`jp_3Gi)enp%TOKGexoO9%u~c!m z^)`UJ$BTFuHbDNtjO`-nlmo$%MkwutaIx*ZhKt=L(KW@ceZT45_?UWZkl_VuZ8m*f z;1Gb>wSN~Dc{TfB53=Br#EqM`r!N`3XQaZG|A9W?yX!QEn{ILe0$cy4P$9=2Wo@&< z>cG++wT?8KmsjQHe&*AkrJx>@xfv>|N6$yKghsy@{z3poCUe$_&6`hfdk_eI^Xy*{ zVyNtJPg7*B%e+Q#2BJ6!`7|>$CeWrOtmg2d->w@QbFYpC+1PD>ELlowL5ZF;7MWoQ zz$;<*ad0H>d71F3<|G{g5L^exX$NtQaPQ1Q!K)XbNn!FVC-&Xe6@zZjnG&Jl_muuf z3J1SNHkJPRpdUhA@xue=Ba=t$h@~dY6|d4s{vy8e!@z>^_7d&V3CLF03&@GvbET0M zHitR+h=ivuC^Ua3>=4IQi7Li1R3v*3>>VTPvpnYX<4u6qW0%)GMPO5TE4nB7aY zEwMMApwFN;@as?Brx0>I_R|y_8-R}#b+wdCOxzGzS8K1b{A!TvW!>zwO#gz8r}}-I z)dqffA5!3E%=SRPTyzILhU>Dm-#bI-x)KV ze9ocCTJIpV8Lb)sy4EWjYx)T;|I%o1U_=en6tR*mfay z={_67(GmeDFp%sKE{rm{DJ~cy7Cr}=H$&P#%P}CUGN?^l*W!j~WlDC!Jcg@K8gbSG zDGxbj&wTI+qc-6KH;>ve$hao+pJbeLGzS`BaKfK?>39@R=Ug?;wJ<)sB{+i6sK6&< zwWunoK5V^vq&8C^c2jVF=ALmXOY(PVRqh6|uS|F_Z$x+3 zs<3vM%%}A7*0ma5>yV~M1urIvVQZ`1C*p(hpXOtpd;y_yEl0Qq2*A*aewiclsBhU8xmw>ZI3z6~ksjMkKi;9B|dqZdZ&{8_C?k6-EI` z?Atjt%gW-k%oXra_Cy>FUg;HVZ5FmmUx=D*I0<2Z?JZ9qGaD%4&i~1I`jc}5vbXw^ z)7E>~kvqLre8d{GKxb$tJ|3yq4CPhHmg-$Gz5aRzdWz&P+T~-} zS%@L};FW2^0(4Vuta4R#Qgp_ltV;ixT8}30X9VCL?2GFv#jQiCakLGFda)x6jIJ1_ zAakdfsx5^dhUS{xleqr1-L~?6$BWYNR5_ZibgXbvk#pXg1U1adK0}t*G*G@Da(jHc zU;OLfEw|Ke$IBUynsMo2%)y8rPfvVpzRw~EZkqMtUwID&KHHO6zQ7BO<&GCW5#zTw z9^BQ{%yOePcTK3oUJn$vGL}%m$8|OD^2SVm8oNNj+lPVe_AA3WMpTp>_iB|2zTkJR zTBsi^nmbdMW9mL|L2bBSiuS>s1nv0qS)NSBW1a-$ny+}sd{EHe$al?pG9R%kuQH2V z&asteoabZksu7QN44#76dcN`2M^*AZMuk3Jsiu$1$oWD2!Ks*0NZRr+$zB;9+yBC} z|3=Q6B7|INg8krKINDh7iwovUf~}jU#+evAb_O49Bys-imHy@A~@Mk%C=8UQ( z%^S<1+{PLDQE{v~N@vK>l1gk*4>FedQ+5lZ!C!&Hk z*vZTSZ(7xNv9#?X+BnOv9tYp6ZI!)bTnk=BFYFJ0*L7~ul30QAcz%p`&rEmVsD1wE z)ur1Xv$u{1kuvOYnce-PqwN<$YBWS#R80J%Q@YiH^UXg~agnXlcT@<0`O_;EiPOGF$Ca$+r@QYQOQ~chHkv6Zf7!5CT|G3azeMbj8t@vL1fT^0c|An~*LR0*LLDI01+(Md3iGrXj4sDS5*- z(h<)UX7EiUtP4HgFl%>s6(0yYg5DqiwCV~1ht~+e-!<`Z>_%2N>cG_z6Hz!VED0Dj z+nBii+Y?>v{k41|JD`%`_Ze_%#T@mivMUz^$T_=mcUBgK=XmDjtQK zI34E9loET}(ukJU|5AfGzcf5EY?LVty)0 zQMsq&V*cO9h;I^tl4oX#YQz5!!njeGD!D+gWpZr9nZL9X+p+LK)UxO=LsX?tcvzeN zA;t2i6wv@gU0cT&P`^W0csL>Sr5a6a2d%wec%nm&gnyb^g=jGfV(a_UWSKvm_G-_<)eUtz?*=ohfOo?QsT z)4wO8{xgjFvDT;LsNcirttnd&xPu1Ge(|RZemC#`fKMv33VjO$`7+C_LH-CbO&C~? z9`^lj`b<2mEtQ-bemVP>SBaMXZ?Rh#7`-nm2n~aPP8d;tpW1*W)fpm3L4K7hp3v=eF-f{Sr%@m}dt8e;BG9OMIiM910)e(y3kIc!`Y~??z z$N}b7(~*6YEATpEKE9l8kg`hBa`QCIZ=5c1(aZCU=Ro%u%|uYgSod35GF_zGwfO1lo4DO=^QG`x%GQ{w!Ot?`fR{XhB* HA&mYP^T;NJ delta 6490 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 B_GAD6 diff --git a/mediapipe/examples/desktop/autoflip/quality/testdata/result_3.4.jpg b/mediapipe/examples/desktop/autoflip/quality/testdata/result_3.4.jpg index 5ec4ea6ec9b8ee55343a54a70fef50923f352479..4efbe7da295db120484f94cfb8c1aae92f8c1af0 100644 GIT binary patch delta 3915 zcmbW4c{tQv|Hr?KsELy7+sG18xg}ec;TD=o?y*fMJ;?HMP{-!_92F` zHA%9Bv5OSO9*=c~nPFyr`d!cSd!E04f4tARuFoImy3RSD_v^gRo&n9EN}gW?(f%l| zH4V%6g9D81aeyV_5@f)uMu%U78?E#Bda?LB)FSu1{tl9P zl3`=O^;U6l&v{vg$F=TPTVis>dUDJp%%^R$riR`~*D?FXH{=SA6@@zU#I#BJnE$~K zUHmnr!9w7Jn?K;A|907_XZ+#-o!e*BedE)M`p4RZQOcAQF{`&eNXK?x>AV@C`yL7s zif&ZAY|@cYtfD9`&$`gNBil*F0ibbbHczodZ%?rxc^rWBG==UE0#c8~vDuQV?Cy3@ zostYz4y=WPW)~3Fis}kHCS4x7+*Q=|6CD9FG37ssV+HlxZ7_dF^EJ$FYRxn2>Ptfl ztZ$NEwN42-c68%$GUO5?)}b)nY%D5EF{|a<&ihrK>atvY6SSdAGcr#R<1peE^61Lp zeWrc7*k8BJ73;J0+zchP`QaMQHn6s&z$$fTEA46dn+G(!5({*~ELvRc+SsWVZ7EWk^R0ewePug0 z@lwiM)YIaX@a8A>g!;g|&|tndOlW9Nt(;GYEQ$TI z4W0p>MP&|c3U@B{>u7a3ERBU!GZI7uwvWnI5$7{H1VHyE*$tt@n@(aF|JH}fR!mJ5` zpZW@ODXdJ)-kEypVR+6D6Dhw`uYnecXsy^;a|Z*Nh)xr0!6$m;KEm7>N=NL%8L;u? z&nv^`N4Jb+NKmTZH8#Q#9IJ&hg~raiL^BDpo@$eK9C!M&3AG+#ZT<}LO8CkEiFy%l ztt>K665s%Hu0#%iH|GHTgZR+(_O#Z(33IHPxos5NR@Z<795!s>0P2pLE=ZfAp1z)x zBL=p1x?%gtee2GH_oO?}#h}yY*-{DK89KV8oOVsX1X0uUGy;8ss2FJ$CYmzcd&jYU z@4BzBV7(>IIlcoU*v0tOsC_nlj;lXmV+r`Y@%MEWH8s+RML+4jr zoTk{M3i7@D1}rcA#mYp0L#J4ki#sIgBh`h*Mh~Ixp2mqNhN6qL`jRYe_}U61&5$pU zX2QU4p_Dc?*@(3g4see|^+7q^%KA)ZC^zC*?>WFgi80JzAnh$wDh&_i|1a@^ywT!| z+$G&KSJQT6MwyRS-}U%p%Sf(`i*Btt*qsv~OH3w$U2ytC3|(Ghx{0)R_%~uo@t;)g zhuaAwZ!P4R3IE0QFY#qWn7sD|PekHiNBBqyH9Cu@@Eik`ln;*{Q5D@G{tJ7 z79s-4CMkT)35~GOAIE%mki_x8&i)nXlZN?phF*nP*#o# zXgZ39hl^ZJl;8@S(&$?MXTlm`O4^(G&{8I`Bm|uZ#HrwhF&w~ziNY+0qZi`|Ek)xP z^KIo<2aU59_2EfNIq7@ZC|38^nuLD(97pU!uuW+dWN9xB;I;AA$!l{*{=KUDE}&{LeGG)oMhH+2KfHbQ z=6$R?p&w{iO4NK3*`Tn6Piwbb_|lj<{wwkWG$+$a)%JrDX@)6FN|=pO_|~o+T_0D4(GnYj%lVDNZ|6#4-8=GZQdXGu8Ksf$*osjRUA*fN7$5bg z+4thT!-}sE5!J$B;++zcQLp8qc;98}4ABG%Bl5xst{}iE-}{Je4=CQ)9TD*SHv!zoh{+P*iTk8P^vMEBWvXoyiOSt)sp_B|M(fbl< zqP$T#@#xh#7jImKe7w2C$MD>)Otal^@>etyI5R&dQ9QBnubZ+id-a8BX?c}0O+Rx)eNV`AmjXDYAt zd^{O@t`FF$#LbZQ6LnxTaA}GuiPEE3YSoeiot;D`FfO62{x>Nb`)YG#cgEYP4YXU5 zv#X0@O>FEEdLrxd-|+@Xl0AozguAc)0qD+H(BQEy7H$+!{L1@Ik5r*R#aFBGksp^C z+`g3?!6`F2&s8cb@|~W)DCiO6(Knx3qe@eCE8`r;?mbjf#!$?_ZH+ym38T;`8gw2Z z)nr`Rw#&p=1hw0=+3x6GHDZrFdMzum;l07?YD(QK%6(BF&wu(j+-3+bGHQSNG3Aj! zlsYwJ{8D1`@!hP+@Dy;~2|a=^v6%d}rICie)JrjvI|x0d=_>gNz;CIg(sMf6dTrR_ z;L>nq9g!msBv|;jCD|TCEEr2VUEqGij=(t-LeoagBjd}g%P`XHLfU|gA^3t?RA{Ke z-Hc1fJGFqfv{hWWE!XqSp9Ss+{x2%`#2lGNr*Z$Os1`h4KH&5}ybcE7 z-;(h?>byZnZfu&f5$P0n=ntYNQ|i6SaMlm!d-*)B&q$OZyu!}yMiZJ48a#*)2{K5Q zdi;1zN}8qV@O8$|Z|>X0rf91`A`E+Vr|~+fM0%mo-di(%p89>D=IcdrTw_Jg>y|U# zqG4b8f~dgkw$@U%d6H*=V6pK$k<&%;~ zJLo>CVw(*3Gu?`olQSc<&t>P!&1!*dp(;=RuhH;3J~V0T(G#shH`Z+i%CN4UvNwxh z7ft>B1d5u2H_R0hw4kLeKxsH8L-uW6&3n5gI!nMCnJ`L#qL&-dB0~nD;BdNo9|k9J zI;q%rQ82S(QvrfqxppiL)K40?$5(a$^3zSy)??3z{zrSGyqySR3>oZ%mf!mZiyK3( zLzGj2gE~Khe!gpYUq5_Kv92)@Asoa1t{kO5D{#$ru$Is;l%c)$xe^s%94>eXJ&Sc@ zO3O-^d`W_ZR4 zFLbWA+C?(pU$saxpmdl?1^RVvy~bUlf-ZUEO)#}Gf4#j?sgU(QwC|N7vA`wNHN&NgseX^lEn^}24nHqT1vJMkWi z?ByhBjAK9Wd}Ac-r4b%Y28b6HN+WE7m%!2v9k zg3;~!4hPV5F9*N>b}**hlw#2v@D-&HG3tu(nLFpuo~tGA%$tkMqZC%$us^UMcUu2Z zJu}m5W&kQZz*b3mG(ASX6FhuX zo&zw?UqS~9>lmI-P^k?1EA0f23iu8obTu(m<)OQ3cbiMLIk@Wi@2}@d>pPKk823SR{;!&M z)5mA~7C5AtNT1KY(f0qFt^UKt-wTLzMjUiqYEUT$_RHvlw`VFj s$>`MOEkyNNPX^hTj~vOldP$56XX`y!Sf=4}5Ju(F1|U)p2xt6%071O5)c^nh delta 3808 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