From 5ac95690821ff877f1dcd17641a3c0afeb88f4ca Mon Sep 17 00:00:00 2001 From: Matt Date: Fri, 21 Feb 2020 16:55:34 -0800 Subject: [PATCH] fixed reversed box drawing in solvePNP --- .../vision/pipeline/pipes/DrawSolvePNPPipe.java | 2 +- .../vision/pipeline/pipes/SolvePNPPipe.java | 4 ---- chameleon-server/testimages/2020/image.png | Bin 0 -> 19136 bytes 3 files changed, 1 insertion(+), 5 deletions(-) create mode 100644 chameleon-server/testimages/2020/image.png diff --git a/chameleon-server/src/main/java/com/chameleonvision/vision/pipeline/pipes/DrawSolvePNPPipe.java b/chameleon-server/src/main/java/com/chameleonvision/vision/pipeline/pipes/DrawSolvePNPPipe.java index 8a8fed749..92abe3a8a 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/vision/pipeline/pipes/DrawSolvePNPPipe.java +++ b/chameleon-server/src/main/java/com/chameleonvision/vision/pipeline/pipes/DrawSolvePNPPipe.java @@ -34,7 +34,7 @@ public class DrawSolvePNPPipe implements Pipe new Point3(it.x, it.y, it.z - 6)).collect(Collectors.toList()); + var auxList = list.stream().map(it -> new Point3(it.x, it.y, it.z + 6)).collect(Collectors.toList()); var finalList = new ArrayList<>(list); finalList.addAll(auxList); boxCornerMat.fromList(finalList); diff --git a/chameleon-server/src/main/java/com/chameleonvision/vision/pipeline/pipes/SolvePNPPipe.java b/chameleon-server/src/main/java/com/chameleonvision/vision/pipeline/pipes/SolvePNPPipe.java index 821cc7bff..88e969184 100644 --- a/chameleon-server/src/main/java/com/chameleonvision/vision/pipeline/pipes/SolvePNPPipe.java +++ b/chameleon-server/src/main/java/com/chameleonvision/vision/pipeline/pipes/SolvePNPPipe.java @@ -170,10 +170,6 @@ public class SolvePNPPipe implements Pipez)t z=TXivgczqW&Vz|@9y4QR-h0OWet+-#_xsO#UGMI?YNpI{KkHuWvp(yy*8NOTzgwRF zNpi0w1VKMt_|5bx1Z@UyMZawk2QTetiZuisfG(Jxy&jzUgJPTDLQ7U!r5!7S!^xeo zX*Yh`0d3tWW*~YtyzXVEuW7TSfzH(B(+aZ%J7TSpI_2P z+T=;TrS}_pF0EX(hsSAJrsw7PK$Psy5d=x@r8>=zM~#yBYUACobS7Fwc_**{T5CP3 zD0qeTSS<)&Yl5Fh2;VeZGZwy{NFNmuya`|USz7oHG1l~ zaq(}C06zGaFCge&?u7oWBmdS^fjanC96Z z*-UM;;3q?3(AwoAK>dYVU64Jzd6@emoV5Sva0sGV3e;rS#Xon4(-XoEw;#vuhoJ3O zh1dU80L6Goya>NLV=z&;2?{?e5S+u;I_1LYIhhrB{*~K~EII@^KHIQzW>l0{UIys7$KU$(C~7TiQ`b1Ts+(uF-X!a!`4oq;2|B)mWJ%*i8Fl;ToT=$6q<$ zR-$S^JVCm*)0Pkq_g_p+xcwQm8|y8&ye;!TAL}qRueh$sNJzG?fM6n%*kYC*MF`WXYPR zqC24BRDn1Tw{kKlBQq!{+L%nB&7!wyLwyr}1hyV0uX)~vM^ed%%{%*-(>=rC zMfitXy9W!7Z!+0L{t2q#3KuwAu2z|&IXYumbnJ)n=$m!V{+OKEuhnkK{80(MGI5~= zISyOzU}`DOrfb`3aO@K!16{6D>Ja;8Z+^a^F4$JKU|W0Ms6)6r71X4|?4Vtt-Ztai z9kM8I+!YJ05|yz_@krkI%3y`xNyIuONh^KkVpWK#Wrn(l%8ZYJuf5x@gapy|b36-? zEs(Eo8}NuY0`9lxjiAL4zXFLuCw>zkY5QvcfDJ_KF$GK1 z91w)##AD#34g5In0B(gM1TD({KMS{|&8P(M9W;wCaTzFLW5nS3z($6J%lCNiPX@Ew zYN|isKFM38eUOt!JPjK=j2s_Iq^x%$5nqEpfZ)zAIlU&t2p*K%e<%CXus%1*dQNIsGU9#Z`O~J}q)q7d}?L$qM$QqMLn5Fud!zy%-l#_kU zce3T>l$~Ydi<<7JE|@PY}LvtiZQgbUy7JH%;_o2)LaEbY432!?JsXr%l@Y6Fjl4Z{Amc%cN5T$zFy8- z|Gh=24a&LIgSkm9Ucz*K>$el$_WJ7u(;jYT|8%Ec^IXK+nI>IjHyH!O5c$gOeF=k4 zR0%46$h~D9rfmbN*?|dgSxNvkIv&eIQCrqtH6OKc3+>os<@=R?xc9ls$&`{8CpU`};v>M_1XOJ<{tw@(|>&u#U$HYfD~j||-P zAD6!WANH1St+}Af-AVO`?>MHFVr#D5{I;TMwtq@>s{e*vbw8t!89reP`-Oar8d_4x zkfyynpSG{1@vw|Rlq&9RMN|!`Y3*g8C-b=fTO8Dao3?MNB8c4F_-4c8Z4wYF#j} z^~(J9H<0}TwjW;CKgI0{+U!_d{3-d0#Yc~sJX}+j&H0`{Tww9Bq8T&u)1hag^KwXe z&e}MS6!>Y<9Xa_~*Pd==oCo*&kgYDsvhDDIyixqZt#Lcp8fK15Nnnvs)yWH&U5t#> z)CoBk9A5gk$qv}o`?QUn^Qm*SbT&Htq3J@m{Uta-I+a-9TK3pX!|6pr&fKbesu_Vf z+^~po`)C~S#@>ArM|nQs;v~5Pax4|*NStB$L{8BS4VHJ2(Uh}xMtZ<5ujr{4gFfeN zD!tA0?(5n0-{5h2HVqb5ybt47Wu{HInN+W%jkGk5!x-^R!KW6LxIgeTo1u_j5F8xR zCG4b@hIvCq3k~)$j5?dS&6DlfXB+zC>>?8zIlajEBr9LxNq%3ko=0k0{SbnJF6`?& zrYa>O0tNdD=rL6ZBzV7hK>c-7%cR4ijfcu#)BWQY&bfr0(yHDquc?W}>T0D&$H=LS zwMb7*6mtsA8`R?$Rx%4IBNG#2n#UM?i*aWxE11{J(WLpqf{%?UX;87;WDSg>wY*p@!9A zs#jL>IHr66iBx%!J?&%OkPy$G!}3wAIP6;cVllod5y6?DvtsdBBkI}$YN?&q#as&I zPjgs^^=>;>ni4Uc%39c0%fK$rhAo|^lJv04*{sPpY7>&XjAN}JD&vIwcE zQZb_PIg&>!q~Ty_Z7Mq#Mndwb$VpfTE!2SD-W8^-)O?<5H=aagg<a}lt;v@Bl%;*uP_dF=xY*&8#d=aX=|R<#nm=V&o<3+ zFU;9jJ*%)$Y^Jot(dH%&OHdi;`LeKON;_?gVT`k?Q8MpdDp_ zMQv4{MPV~ll=a0zJO~xrgI6z2#PccqRit+H4*7w2Ql7f4Qgm#Xj;{aA4p7hk7P`SE zC(G_n!)R5vD>PRklUm;te0)(8vxb-?U|BaYEGDAK%_P_uU+$*{L$R)!FnMFFb))vl zZAh#EVvU>28f7@_594UQhUdt1wIx?Jn-`@S&zq7eT* z-eQ;iLT^x^s?V;gjvDjno7X2%|#8T3GXj50I#a{Vr+HA9MVRae<9f3iilKh-R4Uq_-x z(Uf$-)DxgpuFjp+k)en=Rb|D_Js+GP>J>G;H1CNnAISA}>$K>p+QX9OEyku&2V2?^ zp(n?d;%9aIGEydw?e1$hrsCR{m||xTO-ik|w!W*TQd0C}b=PfVh9;y!yF$}>ahTon z;pp*Ud}JPk9{oIEl)Cb)@o^f zl$Pq_<7SHUzU-%%Fc@<|!|AW0J0D{`;Jw{&n?Eg_*3ebDBZN+Cd5Z*Z9fK%+wapwS z@12yLLxrZ*D|A@PC_gO*l-0}ryO&by9>oM7%eZ$a z_htIgCB;MhL&~%(6UI3S^lAT|czCzVu7p7krr(v>$=CgDs;;&+T`_O9`?Jmb$(#>V(kSN`1umJUfB(^fUelt zo*8W=edb~@{5yqHkc4d!J@LAYH2o;G;ZXL;=JUEJ8?piAarbjamOw?8300&)*YUIY zuLmNK&MF^s%16Bn?Or^9+k7=^EypvCLi9PbIJI%6$mY_64AN0ogE%vvxY{?pl zRwYmJg3N^bzJ$~U9p$&Eq~UVQPycC1QM%2BKAyKY2;s%2c;w@=#XaGG`|L zc%!{+4A;4(o$EYKq$5$}hmI)ksyLp}CdgMwK(da{3a)#-p2Z-IyubIEhvxkJL$c;V zLr}oxVJnCBDs{P~dMa9N>|KEu?!4YC!SL;ysF?CLRn@)%O@xC6HfW0k@SyON=-;Ld z1n&Q?e|=_{dt0RRC}*ai#xrA1k$$P7r0vcOpjx0@VH_eaqCy|wqcy}MpijJr!~ zQhMw=}$Eu zKi2Q%^g^b{XWBRLDrEVqp!K&Dw*C#uuH}E#K*@u4STR z&tf_SbYZ>6dk*<2##fN6OHMXFzF-6OwER-jp?T68kYMVsLW7zb<-$pRTjv9Yjxj}I z5+-Uw<3H?@*EF-?Stx7z=#|OD%h4~i*+fQvvS*Q(Lq*e%X$!A5+PM1TE4y^@TloPK zgJCAKS*tlyUy0RXw|3u8XiNb!i(O@>;s#@yqGiem#xkW*O>bXBMlR>v6zl@CF~A7K z+!E=96?!PsOSHjgsjtT+&}rW3%7p8_vTJ4zkDDl<7{|V~wA}48_EhwJpyUZ4e}#je zi0?`x;|5*sIBz@rWzmAZR15#Tlyt0>M#F{{!l+dj1aYOA=s-a`$a-5kzv$Aw3Tf<)j(O~r zqN<`yTM98Z?Fmd{mYbPc!xM}8j;VkF8|iUVv&&y_xGYf@3YXcKxztM5Og=YMQI$Vw zH$CdF`+CDi6x zWNc#6rfyR(h}zmq#C*8nVoxrssIXfvhamHfJh*;^di!^g8^!huyl~wlPgbO`^Rh>E(uC9s-3WGKaD9-9ET%=cXlLOcLxQIApf)nuMu*u4!TZ}Qu z8fkUW3egjm-#sS~_L|b`Q>kHX%{xaiws)tAzt%M`Q%6QdzH$eB2210~g$RVjy0?#y z>p+PCj^t;UwwtK&A7`O+lt0>Ajuz81htQgv9gOBPh=nQ9!L|^z@hreh_XVPix9-Vi z-TusCa_UJO4rdGR_IO>W$(%#681IOl@O()#Fy0gna!akyBKlQ@qVLt0b23%?y;S_l zKbdrpPrLnPaoG>dBkEnsXb2m~+?1db>>c8(<~=YuIq7Pin#vC4vR91t^_#}V#yCg$ z>{?h*P>^*t1SWpr?e7IzuGC6eOJq+=gi-mwD2hb&Fb(2SBcC$&jKzn>Az{7(GVrNdesKvLnWl#o5YA*39L z7<-U?#;t;wgmZdyEaqls^PdnSA|l|^1P30a^sY+bt+J17E(Jv;Wn^TGvP2+BLC!$p zbSBrx(C}+*ZEg3?VVoW^Jw;Nmb1s)V*w@!Q9dOfF4>}_v$d4K{&N92Ks3?KM;e`15 z`g%}_)oT@KPLQIa;$%lh$Bgf@&N8sB@VSY(fsT$V)ttGC+)>8YMD=Vb_6>y8pxi?} zRaLh;5rU+X1zs4gULo)t<9M&)q>aSh;J1WvW(kQ{sHQegfcjD-odB|M1P(KHF@$Sc85^>6Fq@-aRGy7clkVd^nM>DxZ@ioe33;e*zKNpfCZ5_*Yc ztfHKobCYYl+(Sh0(=!XDp;zI8dpq8Cc6MIzhr?~*aFE;G&dhTA>M#RsZ6=dxa|w$N znM@ufZ-##VUEp@#uK|W2!GZNc4glE>;PH7^I5*S>iIfw7_?*!HiRA@W$Gc~-)l@qy z)HE{khmV(+OP5aWxw~isKy<$fN4Pg^HK%p;^t6@zJU!L<^N}!+sB1%^jEP6vU zAV~3?(C79&R2XEEhaQp(DaY^e4VN+LnvwjQXHM7>yJ*T9iY! zffpOzs8g!}H_8#ZC^IJ~mE}9&3oL45atuKtEcl>z(2)x?COt z!5@4_K;MwkJ55Mi8%Zfov?+A3=T;Mmc#yTQmDH7AYT)qvp=?bsN%_aVi^OpPq6C-B z%0+Nz3LY>PCt9*GL;#8*fH`St>7^>>P|KwxjkNyr@7?$QasZltFT{t*clL-9{Sh^G zpPu!l2js(|oJ?XxMMW;NmqGz8(#`do&_77BW~15tB_ukzkOq7?R350V?O*(z$zGwO zWFsUbBtU+UDu&$9^1j5v17O!#!d*{{)<=h|%yf6(S43H|_irHdUG13y`-&II$$|E? z`e-@r(Pj59^p^WzGg=$Yo;$`H!t%Klt0F&;N@4S#J@%d$ee=T(zlLk4)faAsUI|+a z$IJqHjJ_Ha7Z>M`#lnC&Kd<%V+vVcP*^r8*C1-XUF(=3J_$F~Ec#E(e{+i{Ul4_Zq zZ8riDVQkA~S=!<}R?$oJ2U&yCk+Ev&AtYK^)y``D9{lS3xHCUyrP z5TdIb(N!YTY{coq5sWtkxm_0k(%2;@=WBU^zX_fOh|8W|jrod1%u^~uw80&)po(-q z9Om(O@3x+UAWPwKLS$29S_7wUmz9g@H~@2ND|09md1{(qvN@PG+s5UmE^mY8g=2={ zgIy)wps*!0A3_BMS)RrK#9ZTW^EEkD816lXGQVHI?rp9;KySSPPXy2z7OL}_UtK^k zvnOY-iVhAAw#LTB#yl3VNo%XL$=U$`2O9~@GLuWpx8ijNqG!&?{MWG7G>QAmM5^ul zN&@!$`SXIH8XFqkwBS*y(ME*`V)_y*Y{jH&`qNsm2$XtO5U%+h(^l*>%WQ+>%hsD6 zTnn=JJ<-*GD=@b6Y-brI%*PWDq%QcN+hs)7Wz~dk=NC4Mjo^+az0{6K zL%{Y=EhC`tPysCUBiL&Bj}sE$10|>7l3yZTl3a7om1#0ui~45f<2Yr2%{@ugEVUx!5ar4nr+GBmI6ZTm?`Em zyAJ`Bo)_NDnH@!}zTrNgOCS)ml`r2|h|0H$U!{Hke&eL`1hhOrK)RXctxEr3?)qW1 zQydz84rnV}JIC8DQvJjeR##Ol^o zkgfQXxe6N=nRp({E{r$>K_=F~nlmEkKR#AtZ%#JzJP1CNudO~8T!hbLNe>Hqu?mI8`gg(ML; zs_-j~7uqWqfh2NE1c>}B&|g2#-`(tps2K!FApq>9@R7Jbw35feOc05fB+#u{Fe$d; za|{LzB#MXD$|MO_zqIKe6}@@TbL;#>OA_O#%j8nouV>ck*w;ci&D8*+pgt@KQhw(> zw5TuOfVihmpMa{QA1SB+lBG5xr4CJbnw$TGy#QlvxiFL>)R`1cKvEqNAEHD4b4s^) zFc$(KH!ME3G}E2iSCW6tnw1f}+;M)XA$DIbgS@b?U>_>FT0gu(Coiq71qXTnL`MkV z_OmZgHTY6?trG7&8|~@Ya_~TyQ*tt+n&aa-X&=g8p;lBY+=4w*RrWK%%e6~GzEZ-= zfHQ^x4DB!7=S1aomKpHbok(;Di`~u@o4KbJyfOpd1zas%04Q`grp#Z<6D_H(ZIk&2 zEEWz=Y(8VnzCCKum1?Nt3IwI;Ap96Lgq{sC)`!dzp z{`8*wn8)xB+BlMRVUcmdV`{LtOu=!K-d z8^W;9a#=0m_|+=m}*%tz?(F=_pOJpHOq%WUEM+D%42CkQl7KC_j6T4P|4DD5xKaIn*@Mpdj&FDAjm;lP)}_ICHN(yis|4`9x(m=BQ?w2 zGVN$Z8e%HvR zS;GToUj5nGXJC|)#rihg5lSfl{A_1umn}(L0sYFxxpUjg>N-38YD??2UAKT!0v>UQ7gD0DzrQxw~A2q!-5Y?4O-FuS! z%>%B5@7uR;)!jK$bHRsNjix4G1-hY7vaTA6nYwt!46yj74Zx>l*(PEG?cH1pF4kaX zkX2$o5PCS$6SwS2OrHUEC0UDrH>~*NbYs0V;o4!LF4fc1gDuV{@j^ST;xOO0)^Nux z6U3oC78^DzjlKth@91r|T8*IjPz75Ol9&3yFMkw+}b=X~&XfXRyVta1qGxS|zYSWUo{ts~oKG+40$?)aU)RXDqX? zNr{1B$3p+~&>fwN868KkdZP=jYjU6GrvtwJfmk2((q$PwfL;5aHP|<6cHOsph#@)p z7WKW!@xX816JeT@(>bwXT89Qi9&4VlPSK}MhLWEQ>x+KLVf$q{R_+EHxGvnlq=}s| z&a;A2QeHV~fO=%0x*3KUTUfJxWuzEqcXpo86K2v*MsTWuvwr>b$c;G;KuI2d=4WjgwI1)7tjr7gDM6o%;G?Og~b&N5s9`5I}bsI zSA-jXay%Ih&jgAfE2rE*&evFx@FkUt!3#Y2-Q9#{{LQ^uBd&|ZdUhAVr~pp6Sx9#O zaN`Y%F*LzwcF|Jf4M9-)+fncx2I+4Bh8BVL*&zNbxvLiipK8a$sFEnB8M7UbZ*y(iNR24-8Q*TyKG$iT(R#2jB3eeJ|BoQMs1EZ z*0?L}oV!LY;hG;&xPMm+3qkAGh3WY>7^rPZ+rpEI{I%ap*S+l4rKigm{UE= zhxD{ie_$3A)OycJ4!Hkya^S`3mOdcS(sb{&9 zmX?+n*V+v5+{TRburJll9Lkz?WsL5 zm$GFaxpw3PUa7HGS21oW(4K5i8GD>cy?NKf(LWJm1-{mELjb4qN6yvcus?1NHo+4_ z@c^>mjzc?dmAlSm%dghIpg0sJ6%vb|Hahpu29@m#0M6|8xD9QA&KL-{mb~S$vY0V! ziBZW>H-vI?E&^eA!~upN59SQeR~En1f`1g|ftf}Gj0O{heirhYOv+_dgDqjqIs2Q( zb^`|x+PHRwWP^22@w3KZGILjpsu!?!L(!Q7ceTEcKntXoHjXr2ZAs;LgantFc|`0 zxDy77{|x`ZpHHU4etM`3eHU2^{vMcC7+N)ikmO%2?~_!p$KEY) z^bg+tUz3kKAc85u+k~qgfg*}hkv-whwrsgXZX=wEEUvt_a+FG)w3B<3%GWg!Y;i+5oqn*6FD%R&^o!6F%3lJyBweLdQhk?s%1(mnT(%#D=$^=ue`o%=jmg2 zvCeDf{r_4**un$54))Vm25q45kHV|Z0d82~aIKk$RA$eu=z3+a_yQN7l;*i{|X#Jf~L215lkz z$l`z8y34K3tZCOwxnYuJ)N`ivNdc9?s2t$6Z!+H&&$Oe^$%< zbTfak3=3ZSycVs8gB?IcUxL&QXYq9_^v2Tb(d*XG9{Y!P5n~+X;my#I*8($k$);gC zw(i;QLUa2H@3wGzDRKbT4!Ad?ltdQshwO1rXAO;MANM)$Nzn zCW`ne%=v-~HQ8P7);OZju$7RuAAkhP9n&nY+dy8N608K!#f)lL=h;>NWl%l^VEtdv0M4pA>UdSf-fgDo5~#qQ|Rjgc@X8EE)s0hc;n&ylRqCimjTA2 zvV~lO(%hCsG6HJ>57aJI5$!L9ku+*1(b0}4FxH6&m4Ffu3Yx=N1$1LG-7my$k3@l* zN&xnxw9}@2^*^N#C@7v~GVkaslsq7VPHUVx`7><`_qF!>zMuBwQW-Q6WspWkHe54# z=J5>>|NMdvTarN>0i%^SV*cv&psZJdg3$?zDI7i#MFbxKOONLdE)<2p#vBYcfl0_& zbqAo9>U7%g3&LA`bK=z<@W=5Qz~+$_B==7N3}dfYYI|+})H)DZ?m)ExRt5yjV?M7= z9ns$#8vxEMj4uoAc)RrbbY(&A2A^@#Of}dNlyF z@lR`UFy3!!XoK1gNDc_oTp>Po-T&Q7Ew+v5Iz?7ECPQ(72QtGYdF8#61KY0?PyNjd zyU{}K0m_o8m9E6x2QCw$d)N2vI46)Q){nm%Z~G?i2eS@9n7_Ig5|RvpOs{TrEz-e} zIswkWxDwEWoqaMYe-e5IJf79%KJ;Zj<>7z*__9}W?;qE+r;HS&@}H@-ZAt~904bv8 zz`3>~Avn9seTK;)lpkgEyPj5%;$M{jC7IYQvIgebqYS`}MjO~tO}HQ>O05b_+8u2M zq#&rinSfK;Q!Y)nl=)|RV!jSlh9rR6IJZ6KnXgvz8$j?tk*hzevRbo&BfboQ&H}^` za~$*^&jn?|>hi-&@Ri%@GhVu$kA9P3+uPe`0)-_G$^jv(Ympgao}sg6d#A6ySKws* zZi<|y!+4|9N91;9sTI__-OIuk%$nzgw0VU=CAO1+{-pSjQ#5c_zwW)bfJY>p?ts?M4#OK_f}~B&PG7n zB17sJOj{DI-nu8Jd}~z-k)Ov#RNYJD^Czj>#Upx>QJ@}yo!|!smBCr)03dsNKQ0Dl zp_;IMkJMH+_105r?rqLdPztTdF8+><3&E`;gJ_A6_3rL4N+%VBn)h)d)B$a$e*FY` zG=%_)8@xN|X(?Wookol-1uY6{*51J(3!tO6DmV^QUg!2w zggwU~^3$(+AZZj(B>~EFb90|xy$DDqBzlhJ5wr!<{zO~Ext`CQ?#d2B0JVHw81<8+ z{KAn9ZuHj}Mhh~!@Kl=RQcxd0M9R^g%;I~BKkJy58yOZBha;fS2Y?1;Q`JV##p4RO zgJL3a@=KNLJaeQrvWNcWc_*zMzeGI02ZctX3)`0%c`NtQYKiqu;OJ2d8or_?U^y|M z%)@#pA-)0B?jP0LXq$A)PXKO+meX8h$jsFT!r{}P?{?!c%L}?je18KwF&G3pWucGl zj_!H?)b*PjmLQb!7SZ*i))K?^`>`aVL7HVqu1|m!rrnTnD25M?cY0`|P)&wVVnmgB z;^x5Q<|^o{^HEgjXh~ngp%J_c?^JzX1WBzyrqWDe2%kUU*O!vDFIRr>cv6d?v@$+` zSxF^mQ>cV`6TFaxxBjR8P*^KICnAehvDg6aK%bi6`ln4%X}?y0`e zuD|I-rsi1+fZ2U8&Te0!tT1F=oFc55*T~)fLo9?;qap6|CSce6sb2|`;c*phYo6kd zVOnBdLHiq40BqFoFdz_xGXpnO)$y$FLq|iaS57HLFY%o?-eOTQ8Vz+LTe4H)8u{{e zHj%X>(%YIZ=7R!(|2D9`UhP&-H!ba5zs!)l4W6prpq^`_xsoN{+%j)nUUi?vo`gr> zs{Au2>UIwaYjsu;BMfSEwg=OXSth54_PjIc-4}#ERhD_!1lXdOFUXGeRv9P$yS!}evT#bG;tzd3s_V;S@C zF?)KZuq<{hlpIt+8iy-)htVUY=Qt-f`lK z4cK#{aL?BRW`Rcn0IJm=KAFuYy;rx^o&ueyfdb(F{P{uydFFY`=Hq2^GkI`_7AUV;GVK=^FYoRj*c#@v3|DJZi;DNCgJp8 z%R`_t_lOMxX+so&=HCh%nJlM0O@Iz4UJFa1)?$xjM9m`y(d~`V8ns*ub#F>XYRteb zQbGOFO7Y+OB5VJKcLA@SVgywP=4Xv*A`0N!bCLgeEh+E=s7(F9M+Kjs`;Tmmpd}EJ|?`Z=i!@3`Gf^{P{%j@t-0O8Y&dtRh+3W&mAiSea-%i zXe1CnfX&xKz-Ena6TsI@ikLhu2h{7uzOYQjJ}`a|_6=@R;4BHitfVCCJL%!j)R*XQ zKE*eIZdfL%m62$-?CmM{NLzTLNDQCLR9L2*I^+!MGJR71-a_zp(|2@sF71bW4G`H> zp(ag^8dk?hiAR7j1Zb3DUcaCBkDd)PA)Kn5qOT`8Srwv(Ci&kBJmc{KrsO`!W*26CfkOlB3R4chl=ld%L}ORf|;dh!8ykV{|m@g8jJt{ literal 0 HcmV?d00001