From 626001f8d0ec649507f0f45502f4eb61da009373 Mon Sep 17 00:00:00 2001 From: jfa Date: Wed, 22 Apr 2009 06:15:22 +0000 Subject: [PATCH] Bug 0020228: [CEA 331] the geompy.RemoveExtraEdges crash with the attached brep shape file. Update help and examples. --- .../gui/GEOM/images/remove_extra_edges.png | Bin 22294 -> 23777 bytes .../input/remove_extra_edges_operation.doc | 11 ++- src/GEOM_SWIG/GEOM_TestOthers.py | 66 +++++++++++++++--- 3 files changed, 63 insertions(+), 14 deletions(-) diff --git a/doc/salome/gui/GEOM/images/remove_extra_edges.png b/doc/salome/gui/GEOM/images/remove_extra_edges.png index 64cc0f0b38a2ec195167531df6c4991313ccb7b5..f5a620b65da3f079785c59a51332eecc176b439a 100644 GIT binary patch literal 23777 zcmbrm1yqz>+b<5H7?emOp@1lYG}2%oNGnJ;QUcPQB2pqEAYBRq(%s!4F(T5PLpKaH zaISgZ_k8EP|L^2QQD4Kt!Xl7-y zE&K91%M9xpnqPw1MwD8JbndXM8^z~6WRUw5{^YjocPayugb~x;os&7mFOz`(%g zj}1v0)cc-ce(dYU3W_Du@rR#D+wi}v|6JmhkdXMnxl!Px>OcjbSE3Bbc_ty@ksvt; zuf!A>Er^MU=`+Gg1GS5&BMoenU5xJv>=Vl}ENrBNm3BsAvs17)EO5W;3Zh?*vAMo? zqV+@d%~RDh|6v_w8g_B*5$TI2^sV}ex2t7HXngope`j?>rkLD1-QE1Mi}YH)FsrQJ z&m|C{8y0yKHNL+0hhIN`TD-zOI(hwtdY2v|=AgAawix~AgyUyuO8Npf6&|IAUi_Aj zq$#uH+N&LV;%OwqUxzp>d$O#*55rbYqxysNcINUQerBSyO_-3XRvijcvKELc9uriP zHh2)tj6|SqCkdUesQ1{M5L}Jbt#sabS}^Xby3oVV$#T$Dwe3ki(t!xZECfoWdNLLXjPgbK2K{M5~BS-;L; zfKv4m^&q#n+3q6l^=vpyZGH@Jk4H|ajUniXt#|Mp5=mL(?iCd2~%V7rG5SiE>aqW z;gicAZo{-L<=S|;=8dz~h@tB%M4@Fq(aw+TO#1l9e*8R8VdE?+bw3hMuq)pjyYeJw zYf=pLlX`ml;l>Ffw4sv}<(7X&B{b-mk1ENZa4gRyc&zFiLnrS~5O9mHde70Py38wN zx=R1~uXomSi1Y3Qc9h*Q-+Q6Q$P84?)pSc+MUK34C&%$}Eb)$#r)##uUMYv3Qa^Ie ziYo)(ghe~O9rAuyeS+ou2WxsiCZj;^1wLfpTsTerT+ld za;nN0IZBT0Um#rhYw7$}mE?5lQh)G@_+R>}p@5;ffM)3pM%M3VRb`Sj*%jzjB~-mB zf8$>7M!T!;@reAL_$hq-uKQ-;SJ_IxwF)Tk*Cc7Qi!jOrsbGZhlCKtFp8q@Md4xpVzv)t~e$gfZjxb6f!ij~JcB%h(QQh|E-R2ooGb zuV{U!#A%CC@sOvuFMYCkV;q?t@X$WgBznUsG-=l=<7>{Ycfx#K*|DiWBJ%XCcM2h1 zW?U&XK;%zx>Rn$^b!}83na<}#D`AR||3kyq{F$}ne(^4z+Hk!-^i7+~Ze+nHRhP5| zkDM4Lx6p|80^T^{YFj(8mnqLv7=Ve+^qVO=;L80B$8(f=||bN>uEHfFjb%E zjjMTlDW8g9+SGww7gr$K)$6!Y?x&&Xxd&1jbqMa?^A9T=|b7SAMtV zPDoBF_qUHlW>5@yn?I~6yeyUe`R9c_!1KFW_y>*@I%?8Mnc{-|x77L%yi5TE?L{1r*xK8ORWxFtUz3)IKZshKgAQsa9G{F`@N{>sCBW>saR(N+hOl#cJ({9+4c+zh*F=0W>)5cjD^?g(P z&#et-=X2NcXVR+|P=40FaSdOe3&hWe-SzU^Iy##i+pG(GD{~jMS0SE(qsG`z-Q}MBFfxC2fBBLL14G)2+Hm)aXsNi9aYv+E!6p$pkC=tkuQc#$^)IjA z^;{Q^D>*t&j_^HPU)5Vk{K}G0^9>IC+SW-LQ$II5v|lax!&1h^Cl&zBD<)c83S#1I zTOoXQ077%TMdX-QChuz7Z``jU1RTTiX!oXtVIX?@XSPY{^(Pn5ozLa7mf`>bUA%Gy z|BfJE#0Q?vB_W%CK%RnseEQly@z4M1g^4xCEq3o!)nL}FB8%< zm=qI}lFsKo3k(ek4p!C=4s`KRYdRh-d_8RWFiS0eBV?mhN+n-c$L9gV>?Pf+tNj^@ zb4X-+F0IukTbP=0D#a<5;u($w*5}+ipCex7qYW=^hv-3pswQzC6{_ zCV!KoYiH$eW@-aDF^lN}-Jq?l?caR8WaSKnmzj2VRC9GNH3ZOmb>zeryV$qJFVsFy zj!sDEF5-{kGMo>*kReQ~@QHa-d)2g5lZz5xJy$h%acma`hVE;E-#%iiKOoS{!#7ne;tIy=8>mYR2a+OiL1tC{vS zJ!86am&@zarGYlC+_^UKfu8m4TerS-P-9j&V?ZdU>KCf3SJ>Rf+yk%Kbz$cXqlS0bMn)zD254MvZtg7<%5*U&){oBb zUfu@%!D&Mb*Xy6!mE3Q~O7~CYu$(q0dnyX&u3Wp8qI2R@gW7O!S^voTvR*ctZNZmF ztiil=)<$4ys$RUAo>EsoB;+Q)Dm>M%B>DJAyJjI&;efgETw4h5n?EhP9(xg~R9m6g z9tTIJmg6O1Ue5b-l|cyCMR{rI@2sQ=unNuuy-A*`|uZLI@+z?7f#3(HMiac5?MyS_&)taI;%gj6ByDCw2?o`}H zS62CRkX<2qJ6nuIJa0!!xCabMHC>OFGhA0PGXjs8{AI8sMHnsM+j$To&Bb%c#%TZj zi@3Op@v5)tH8eE3vXbqgtl&I3CG}=`m4KQW9aD*C;l@p0=yn>9Hu)4Ep@JO`r33mI^CA zF3yCz!{u8wjsop>Y1-imux7&;rIrS&DI`WLiSa&pUfYx>2E%kQ+0_mC?ez>A3e#98?&)ioRlK#-6lLITJva{@O^&DyYJ5YjCD@0}mb=wLx&8c8XGfV{Tlj%=kl2&MzEw zhZm|RdW#VvUE_lGvGw|5?9q6seb43OKAB$h`aW)-`_9xTq05MS#z6>f{@Y_;mvc0# za^raQIjk7@_=i|`vTo;xmmoSjXBvEPE?&NDf4sNMaDsQ`%GO0k6BFiC$q>VyQ9j69Xj=Ri-B&`=(tyg)BWm!#Bd7OW41Q|k=U)ty zqGRbp+;cY48AVG<%**`!X~5_uwq>8Wxcy7eBB0r)d8T2(&Xw-u`vFU!uBO6cm9pQI^TwdhTy?+UPnZ%a6l$PF-;0Z_rvrDa@FD> zVMH!TB$jT%-DYu*3ejrVx^GcDLg{sGBlOIPAxoANZpUPw z_nrJT`7Fo;pL`4sPL+;eUeHMWn)>MzK1@B9%X)o&;cFye6uZt!r1AP#x#Hso40b-@ zpL1|7Je5}HVVaREa%Si3>h9i?ELS2ddpp)vLxBv7jC`iAe~Y8rqmflSzd3-2^(Qop zAZT%0GtJNw+HdM~-T4?8sJ|e5ga|SnO;|+uSRysPC598l!O0?kB9FWCU`aDo0x>On%=xePI>hOBuQBt|ZRNkvyZ`jytA~yct2h59hsy-WyCC&>Z2qbLu zIjVjpQ8pp0r*S8gKWRdw{@HqW3vnCciz5 z?@4NJwG~Q?dAiz{H%0KOC@HN~OQDYHRpdl~wc%!AyiFzW>B94fOY=tQ21P$+OH6$g zRDuIL$QrV(Cw>WM^%5)!Ij+3OR?YSJUi+q>`FLue{R7T10m} zQ+0xgQqY_%iFl_Y$Xn+{uP}79%pOf*Gh-)YBWPzM=y0edA(4l#OSD=OP=^<9@{q!l zcXGilEHUwE=pdKJp(D}fjf&56-hY31&Z%p&UuMt1$q>C9-S5LFjN@)Xtsqrat_o{( zzG&xIaJ9xKAtvVeK$Z$N6gsw-FMLlpUECy@H{Wh3nv^B3?K#v9Z2MB?xdTdGvz$ z*84mxj?O@#=n1QK6Je>2%6@?&oDTI-gHiPkU zbk}m7;2Mn1j$28f`rO{Ca)I2cVg{Fikug)Rz7D0T08_H-Y1{p?!9|~ zCi_ng*V~CYyYHWBJAAvk!e`M&z(4*dLm}}B5z*ay&jXsCNzCW37kS;2k#0VE!e=pP z)DlPxHxgvuiTr4Jlaxln$cSlXX6A#xzab~(uM#=v&U)L?hl3A_N93CQ39jPfGYMxe zl^dyKX$Jx7B_SpK0Tn8YwMma5N1mCa)M6;zX?>JT2P#>Iv9pF)qa3F0C>T7zPz}<5 zilzS-FY@G)2_}CUr0(QBh3j2=xl-_1F%XHw5qD1o{z1(0ju7Zh;GqBzqQJmVW%d8` zqJq2DF`IXGcDANAu)YR<=_C7N&~IagnvMY<0L6fwTT>dyDyglVZ~<2GwS~w6F{d@k zhw&jR1KIAWC#(wlD+6T1ApPFU|F925czbtuZji9tu3w(t0BYZrEBdqcByWCy^Wi7& z%v8>xJPh@*oGgk3lqBYIj&tpCPlZIGXKBA8)l1#T zu;{%GZx@^N&i0U5N1+(73p8`}ZKm$ty<5B%V*H6xu!*&6C+c5hW1c~mN<%AGm5m$^ z7k}gWB_W5Uh7`YG5ky3Icnr7ewffT?Jg4eJs0f^nqpzBpny}QXj9BPBwy=Sr1T;TB zKSM7AIt1{4WQB6ZVq#+YU9Dz4>(siSHM#euUs_St6xe_|8@br=QmV)P9VVvh6FhP5 z{u9knJzCG@WQ+h%l~_;Fy&KZ=P9#|6{}LAFQ(rI6W7_lMu`h1Yk^hA7rw8%nUx57l zeWM&SLDzM#J|-CN5=Eiw;sZ@F%8VB8PlfI4OJ#w9^K%0Qy`K05wsVqkyl-Y*#g04s z#>G#)svMRtG{F43TFu(m6rK`TKD@cR*z+2Ns=i7{h&v4n|3^j!a<$*EP@j{MU2}4e zs(+b!AQB;VlGAVu6T`y7@}c}1GBYE|5Ewv>0P2~L^9Fvym)lQWwi+*EAI?W8#yosW zy;-yS*|cu4C!WV@T)@!KkW$c)DVY4h?8r8v2&m9vZ*147qeZYzdrFDrh!PM`20GoV z04P3&77D;#xMoRAjQ#8S zV5#}wecQ2yhDUXWvv_Mx!U(ZlHegJ~XYY@oaetCzYsA0O0FxHd!MG zG}8F2YnMvY1T&t51R6qG5s5kG5NTQ2W|QK+91Wg0J`2gY_?x>OjG-^~ZGE}`&EMkTA*r6wO?hdlJ2EmdyzYc>U5K>KXB#-JgdP1+yFI*vRwLTU z9SXvx`QL(&N@yXE4=2vYkxKyl#SqQ|K`7_|^Z#&BrsM&4Ih z>dzo5pK!bR{rmSEt@@3W!M&=3Mh!^YC{eDR8I0Jp* z6@I?IqlbscOl}hux5E|t#qRBzLB1^3lY`CO#S~e#&7Y%Y+;)rIR8>yvzo2u(3feQ9 z6vv969s1_!RPXdFij$3~VLm@IGw!k5lQi_+*H@#|TqSHb?Z=O;wwu;lu$aGAo&90s z5fe*d*Qp|{rdxQx${KvKS)U9P+K@Z;r)KGW_}&>%wW@L)0|QT0Ts@6wLEMVg^XLRl zU$NbGv$nQE$$sVn4&^7@Ps}KT&3Esx>W)`fy@bzh65M>)f|w0}+G1ErIuf1S8j7g_ zlgEyk<{d)ut?w`4QHq*4`1HdTV2)T0kJk9Jf6tm-TV!wRsl(bZv2SBTk#U#H+IIWl z=`Mo9f|h~7TSb@1LR?&&&TZ+oZp`)tSv?)MzP&rLQ3Z>0d`3n_)0>+JS&n)Mzz0F0 zp&9lWz4-KE3843cL+xK1DL!&r9rCDMu;@(^?F!!2{Q-mDcN~AhWt8+Kj%fVQ>2l_=|CC6yWlf{lb+?Cqo96^uzf>K2xY(44NbK+y zZ1}%FU-}w%MG=#e`?n&(^L2DD6Vd%p%h&bTZl%!nM(@idizVV*CM@tcvP+^yk!EIQ zN;rLLF)uB$TaeK#x9agkO|%c@YE>eW+@C8dBAbcCnM6esVK#x>{p#VL(w^tW20YUW z91R0~Korv(qZM}A+Vnn;pPtr-=Gp?YCE#@`fMtqEGTvM2I|X40%FxPSZWn8QO;hQR zE?z@0M_tFxLRXu?dA{F|Z&LgCrJ-kI<8fVK+Do*#5ka(3paTY26*h7eo%HedQ8`29zx(_bK_zNjYk^E_j|C7z2Dd zN=L8iozE7w)1|_cW94X9hD*_Vf;KW32AbD=X9TRlyS%)AmGw4iT4Tk%#c*)(@7cN& zhh@+rbcpwJz` z4_GL{skd6?wy^z8x?`~4buHg_Omv+}G5)6x7%Sq+onL!E4RkZ8r9}ePcE>wx98T&G zd@Ak_(DYz$L+f~zspJPj5$W(bJhtJIHzdvzjud*{=+e7Oc0{(wTGa0D>)+oVC*h4@ zl!H%HJkRCjTNmtX57tHuqcvXS22*ex3h_Mbc*VShr}UoZd#=-4~x!WUnucuZ`zrXSax?sPpNT8BF76}@i0 z<$XFwe_H?SJoN2YnX4`c7)G$aax|*_)8*ssmVVzpK3HCjwJOyVoq59@yA#p^kl^kk z&;UVUjESLSi`o&U7k1gwCudV{P}B2NVMiOAnigA6i9LDpM8I+7RoGirm8|)zE1;wJ z<5M-kzIy}YTpYbeQa<6NRoKP4I@SYh6|M$bj8x#5j}qTq_OX*N05*!^yS&AwJqI;WfUzd5?y|Ar zzr$bx<*CPyAD6rxiaO#zv@h6&{1#r06}Z2_2& z)FIm1pEq8mb$fE?*2K)UhxW4+k-U8Q(jjE!*W!a`m!C`TZA^^qwoBxZv8ryt7xb6B zQ7*HZ__a2IJjVk0_WQG7@*^w40N+sYvlys4AER~Mf?)G=zWKwnQFmem*ij{0)p%>V zk=Oih;KR40+OMA4*l?2ERrmq#mjIHVo}TvT$J1hNSk15RRaO)Q&FLZ)71hzA`+DgR zC65U{z|sUUPik*(Z$ydnlxH;T{=Og5Bys%K3V^dk)T}dp{NU7Yz>0hLRt9Q@>t3If zMv2+W?_->|Z~NR$_P7z>BMBAkfo91)8@T!peg9$l&?<9PyxUB_lRy3aVQBhOrI>vC z>UQ*Z-p$|%I$3ypz|WdjtXmNXBJb?_lgTMh>(VN{`WuM+^o$I5LMcR|aCA>Re=$_| zYk4xjiZh_T+&Niz3Y=4{FdT6rHq|9^HtOE{i`Nw#SgT~wxG60goQnZ(ZjP* zeHP8cz;Nk>x?Zc>-qK^x>wl%?V}JlCt~z_ipmDa^BSh8MyRH*gYO>^{X=9qzX8n0x z3g#V#xDkXszDEqd6X`*PI{fZy^wuz2XGe8 z=@~}gxIstvdBFS<&c+Ge-z=5j@=34NaC2z|1(T7RU6fpQ60zyg{{1s8W>s!^L#$R~ zuJ-QG)$nnj`kaK6gJY-%JdmsnBf{#XK!2D6^?M=Cd2+w)X~+VGAA=c) zjRRfM5cxR~*fcr1{@DjVzpyV~9yuV)>c-Htm^~;LE8?f;b#$qE0tVz5BlPyZfq?DkGq2>-SqAa|eSWP0ct^I%Qh`VaH&a49u(XF$+%bT2r4bE-bsG|9^!DiPHDws8t1 zxr=~!c^z=^La3g&_>_-AlSHrOa+RYC+ye^1{|N`30KN!h&5=4!VN(*sP7@x-@3OaA z@1Crxm)HBL{! zrLZ~NGSGE9N((NVX!6737^S0%rLt77_kmh}iblr@S}+q(^WJl$#S&jT^5J^j_M+0x z7<`g=YwnR}_$V}AR?#p8&uIEPN!w$|3ZB4b$?R-hSeBS(ODCqH_rFLhk>(5h}^ zn_zo;yQDIWAUK+hSx6{Ouo$^DW?j$a-RJ>oHbyk?JV9Y|I&{3)p!X8jsdB)^pp%>< z7XoWGZ=82to+o|TY8;qd{kF*-&BWq*m>KjBvv6=t`=Mq)2(8$ZZDL#b3bZz_NjsVH)G5o#VomIdj}L2Lca@H;s=~i#oOxl zW$l&r$SW8*BtlVa22k33qVpt+GVM#96iQLI5>xja^}_d};%nI7?2)}9`+t=Ir20nd zdBqOtxli!q{`7kL@aBWKa(xh0L>(7%D>vp7B=qqz&X1=A(dO-Dab8JeMkWDST=$>NnW7Vh@WoZWQ*&r zYfSPDX+L#xa`NGu&*j~1lU@( zS(0F+$Q5s*%6YDtNX%&GYv-L&1x)D5#}~KA^Tf%2N<1NS$V2Y=^XEQe8%^uj1^*u{ zMJaaWxq`wXERdtJ_K#$&BK=;X2dsU4eZUttYIYTLz1R0|ybT@i=OPl{p>5#>Nwl63jHr-7_ecT<0Dn2k99yv1O#i0+L-805R4dg zH0QCNtT8<4C0G-7pVCMlm6%^4Prj~~bzn@b5$$lB=(F3Gt0c@@Z9Dv6=Fb8g=}zQ{ zuH@+5FDV>b_W*}`Z*3%^)MC)>{oVX;-){YP{w9dQ60o$@%PgsgM7FS|#S*BlUw;H< zt5bDt1M!4k|I;T=e(KeG)w$UrZc}7bP|K!P2&JT^#_o+XMX~8NfoU&lpgKwoPV}#@ zET`yAZ)94up5f9LjEeFZk`H9nZ;OkI;hvK0n^~uHH5T7e(9m>;@J}v{(5(*Ub(QC0 zXcscsQvpS{(T{g$ogb7l=s{3@%?5L*LaeR28AC;sQj%Y8bX1j`&qzpMdg4lc+`%sc zn}BBQhWfL8jx|9iH`GQ*@(58xXA5wx%7rK`8*r~^2mxm{mF14b@VFC_2m77Z9q1uS zYCIokSA1cK$N*dylspnj<4)*%nIPRD)qi6-n4H^cO+dA#@>KZRhk_GeQp`%dL4VzBnMfS-uG(cF6I?Bv^wl+b#I;xxEP$wZUkpF8y5b~b?2Y- z-t;VMx8krRxWtl$&Nx5$x;|D`Y=sueQDs#W*}ljq^?4qRnyNP&d*JE#rfxqQA{(Ki z2b4fH+klR)3Yu#FE@P9PuwU$*DU_n0TZq<8Z_cIN+2?cbwM_Dul?EYHNHOI1 zc=@j6XG)D}_kw3TzdAZ@-MWSKZs_cUTG(krfB8?EuEt=U=LzXw20LlcunvwdnZ(A% zM)RHnBRE3*INxf(A=0+fvs(ZLbaPiXK}uDX9Ex2H=kBHaHU0o1deEz$`)&Q|px*L$ zAKMW*4NvKsIWY@`7*|nmt;|DK*6f;U^33c1RJNY`?ff#>`iE26sh8Me0@@kilTkIJ zMclFuz1a7f5*|K7P1JkAV5$5N(H7Msxx>J)Ly`7>$};_%sP)em$N@#ph>sX;>q+!f zo@eznow~q|$VUdAWboJ({n$`tV^(viD)cHHMb9Min69m6zw2MlS-JsU&W(FH`4gbscDDc~1Yh{L5qeK`F_UsMEYuYoq}D!*v~&<8Qvi(a%W`x>h9vRk@2SnBq)Pk6@VK~- z@ZAe`Tuy7lhN$SnLlr7+Zg2dL0EL=(5Idbo__)OOC3JX%53oD9kx1`bEIOoYB zki?OUAkOIOY$g)zj<>Fp&fZczJUR+XN>VU1WFXH@>&QE0+t6fF#Ty!|i&8v8Nq=7l z)Eb7Sl9$8;rLu;8DmWmP45J}O_g0r+b#KoB+RYU_yxkgdDBv$%d_lUxg#gQ7#ssE) zUiF5M2_jY=hR?B*Ur}~fF=;;2R?+tK&=v{;Jf$Agl((X}`F)*gr&jaAqT41<3(;$n zweeDPULQbvw5r`7WEirYVa3xp>XkXoJ%dt;OGy13dtv-d5x26S{R+jO@K77~SHdYm&bJ@%h5U+S)%zp3Fy1^} z8PLGP&5el+ft{j$$_DfJvQpF7{8j!;EQm{@7#YgQ)KocDk^r`Zq`EpKxw!K;%?GN0 z)}&Vlb3tmltUr{egV8%-q_AE@*RQ=URbL*=y$RFAR+bysu`oSQKuAbv($YcfP?O7; z+oaW3BCT8{;rJa0XVOCmBF*|-rn`0j{5%dP zYX6CrKMHy`x972gp;!>MKJfTYlw23yfnvj~kkA2qXmhz31Rs&})7|bk!C+*vcak3- zMU~bAuCtj?59MQiM0k_jP)i*IIA9zzGmdOz6J2qN5l8JL~(8 zw2ZLuxLG<|-KOPvJPyw4#W)K}F2jq7!p_VL4DX?-^aFwhiE%#G^l)oNE{-<{a*aG7 zGJvwv01G*&)vyt&SgGc&C@#jHixqOrGEJ)K|7d3*4uXE`Dl(@%lpX<6>`0~kT_DwF7K#Wa=7LFX@={|GiNFZ=v;%Rq_bR@*l5^;4r!Zb{Js~E}e2&Q~6clj6=9J%@ ztc9GQ$sxKKGfn?9Mu$%>+lRa)+kc>R%+eFt{$HAakk0Jlr{;;3OJXhJ;o+eI9oAwn z@B5qnbQ&Rtz&g*5^-af0gY^~7)3+OM3#>0E2*!WtGM?7{W1DsH*uFPP{>1`~&?I>f zxWXV|@tXa92N>>UrIIl|<*z-ujai_SIMP%imYls|wea$h)YE zZV3YR2z)Pa!U|P$0NT6_Xn!~xyF>qS4s9#PQ*(gt9&CVOeiTUyXqg}VEQdw4YMsjQJ9ccih`5s zavIc*scN+wOV1*|-KUU;D+zS;It_Tchq{@-C*c8EDhQOo@GLqaNS8|1$``WqdB81E!!Eq4+8c9;OQI3|!-K&g*fnUJE5ltS@i3>fa;WCu?PH#zHEgD5_zz2Eg_F2vMDi~wtDk&GoxiM=O>d8vpwGkzHP5p5fSXEBnzK z$x6N^^WVi%6m@5A!cy8M;9pD2%cj}s8+R|VnmT8`OvRl7*7+>@HiHs_TCcSp%PaVd zNkr`Gini3NXa!yo+xO7gv=t~cVl^mF352}a7?iL{2i1K3B#9poZDm;1R{hOY-aWv^qlUzI{H2+nnxBpD?k*8_w%fsw}HS9qtRA%Q@f(> zUc=3y?%qb5b+v0_^`U6-bxiPxVpI`q-Vo}CRZFGJA@QVI&9OYDOJfAcr$ zt=4T=iSWI@ji0b*zb{jM<7(j^(1%`0If7cNfFytvr)uEGX3PZlVdOS6)cW))6gW0sHIgu z8E37T2XfP&^#d!+{`EPh?4b8PeQ8PWnwFmaC*NAUsHkXZvQ`)f`UQ;YB!T*r4o>af zT3-Yhq%Mnst~*TUG{=ez!jd=0$XaDNYA-$l7>My%F=oQYwU%@A?m5UQTixYbk$w(K zzkPnPZ!A}K-Op??*DNt3hI~m*#smbTj@*muK_w5fb|)*BubbF^Kr7^MtICuYC=kca z^Y%0=)NGltEgBIk8UU%@5{t3Vxq8;d;B;Yb352s@kRUV1qL4yld-ioU^*!!PEY735 z%1Idz?{!!o-7i`TWl*wZw@|0xZ>l4O{ZIZtbF1@Q%;5BJ8~ond2B%Pw(<`B32lwLZ zMkN5H#d5pKWFB9^#|LF>>h?d=h@SEpKheae&$no`&#CnE|T`3-Pnqi;_1gR`cY^;St; z{;5B{0l1+*($cWE2DPj)9S%~%GNn4nF0)rLCRX=du1me~Log58es8;GkF7^@Sh$i~ zI1Oemf{7~$H!Ok12FIy;7Fh&cGSv~}#r1xA5O%DY!Xb2WUrh4=Or;GIaQ8TvF zP5-9%BActK*^y(_6NHa|4bX^tou(Xgc6QQ;dBiL&nPD9ttad^CUv@yspe_jQ4{qTX z2!VGkFtD&(wK-Qp8z6{sbZbZZ9|{P>eEmvV_I9ETMh2%naIx4ky86>0hy5WS0CW06 zNYZIODp2c+HLdQf+s7;xCZ-SIc5KfC&~rO1y#NLMtr$S&3n%w1wOlo|WrzhN zQVL{~Yl*s(C#iw2a_URt&L>q+g9@y+PhSP|+PmHJQl zelqv4sIG-3GhTRFzO9CpW>t;)`U5K}7}Fc(8z-MqGzAyQ^xTT_dlJ+LxTFUPDL*2OA6HXEf8est|bP#pcY|7fxESNAV| zy+@B8efOSrd+kjc_HjR2z?2p^6~G#dR4FK6IpAtcCeCe7uysh>`RDvm3P6>d&fH_rKq3Rj+bj0U*EBUyitg!W=|`sABt5BJo%0 zM?fn@D54&KBRf2-9>oEL!x0?nPK@3-ZyG#*?SJLAL`@Sfx}5?8e-y zCKg;GIytZzVI=JK;!_^G1OSE@c^D%=e$~}D{B>stI28q^9q6oNm`fjB%cg2e&wr?6 zCk}Kg9fbac7hw?KYF#zRZ63vh;U)FLSpMH4xc^m#_t##o*6}Y{$b@xe{57CWzK%d# z_BxP+{1t-|*1wJ!{ueq~#y_<+W4Be+H!ZELuI|K2lK-?6JI<{)dz(|TP~z|EFJG3t zL99&270rELy7d(|7yreuXQVcb3!}CC{Zh8g63RUL$I99^joRUK<@e-U$zI5GtVg|z zGq^ulbWZcWfdAWD^WM5=ggxmDUt8NN`NB_(Yb8PUjM{`r|*x2EI0yo3=B6U$)z*)i+2YuBb%R_?cMbjoP!=x7uK1zNsi zYCWE;bvGL;dw@0FmnwCIlI9&Tqm({mu~WvzYuzbcw|{EQ?9cddrPKUJU~xqS<>ebh z02|L}v4DT$fWA%vT4;ghO+z@~*9Bk3WUtCG2x$I8b#?XG=3a@z-s%w1@|)!t$N{Xa zuM=2hC}n8_qqTCJ9L?F*=ECNsm1{Ar^uWi$*KG_S>qfKd{Mkf; z0MuTR*?(P#jg(R9Q_JUdVYty3N=omKb{AjI2Zmk2BWQ+9@psj1`L;JpVe#?7fiH=# z5aG4|2#R{km1{i_;<%J9;mt;Q5a)SKv=_bEIeO~1W>8f>;>D4P#H{KIB zOWk7Q#n_k^K?Zm z)1`M?5G_0y*hehjwI)E#XMQnK#_#XnSNL=ylHNOFeu1J zCJpj?IM?v-W(Jz^+Lc4+fQ7akJFf1p_jq|f^ziVoIqrS~%7;OdI|&T=x~MQUqg055 zrW>_FqL|;-%#3=CSz)IDfhc5%gQ2I+&Syp}jTGMKF$M-?NXZ`W;o+hFdRzv_ zbJZMe9|&Gx^1g6z!PnRKX{0T0sp3<#=jkCAWY@pgv0Yl8`Z4!+S();@*QKvQzYj34X}(VJdU_Grs|2{{gf02i2HC{p`yM3uVxti zSIa#iCfC=O%6R5_ko@9)q=3uxt+r3JsZ*OMih3z^Gs@G;N3SPF9S>0<-mB4>ukK&O zz4RpWRSHOB74}HNuQGRJWMpg>ev#GiZ;PUeZvyBdx&{`v_LjkM~zqPT!g*8=~I=4XmlD;q)AJ zupBER5Z65;hRbqNIxk3J4$Q&cGisYfiEVl*EEOKzp&cR`>)py2_edqn=|S&+hToUxDNIUEo&vEztan94+>k3H18;i?gj}o1nxKN;oM@*=aapUs zKZ#2;bNieeglN~+)*$GXhYzB2k}v>xzwyO~drNMgfq}{fX%FyzAf~UEs%$P5S4Jls7~!DkvzZ zl=Uw=sEp>+Sa#jjvN`_yW^Z$d-uD#O05ny_gGww-Rkr^b z{OgOi-h-a#l&_JI(uG>_2Z!6Qm%c@;56>?y7QG-L?)=KsD#XvPc1~cj_cb^e4^pwg zAT07b+~Wg`7vL8c_`EGgH-~kDDeCphl(>zF>h>p?{t#YMoOf^dwDo~2>%DvW-$%9@NSH0*?8-t^WQ1GV>)r8^LJ}q zBNeA}#-}a|QrfjnWJ7j&w~=mydFQJ_URB!>eV#fMHrNme_CsLN9}@0i{(|!pF=SE( z2Dcwtk7^^&cu8ev^XoRyCn#caYGxI)hmC_f$*Y)0ht_4iEu_TnAqwuHrZR)!T&-YVxKb8vmjj9*2v#>mdy9W&?&AWGGgo>kfFZ^s1qRF?o zxo<$&0T!RHb6dUd>8S@+0|c^PKxG6;%Ha9d7wVII7m7l&J_fKNZVTK~uYcQGWPDzZ z-}tx@TJrxW4pO9plt>E*Bp9R_LJ30N%>DDcS|A;XbB1l8y1#@jaB;8Zj0xD5#8ALyaqp8*yy~oxc5-G zi|;UF?g@C*ACfnsG&`>;>^)^X8o^o1{IsOHQ{9cYbC=o0>4GaoQt(YvGsC;7m^E3O z0*A+=FP#^|@X`S5ZKr>xKZ|YlioAb5*|M`0IV=I*2{P0Sn$2VOm(jHYyAh9j-0#Sn#?nq zdOh@@WKnz|o^t|j{%g7s^kJKbcsIYbB`?T{eeqmNj!Vg<Q3#o1|tqSbe;X%r&HR)K08@xR=BCslA*v^u9vwE;p&ut-%kxd!Ofd_)wu%1J+LOpKa(sc`wZ9bDb z*vr${&GKsc(6a&1c!wDb!l2GhHrp{rh5};t1!OSV-@J+bgbnBU(3PvxW9-pXTUd}; zNp4f=2?}bUPN+MSi-RHbBM3*nEQa;j^dlnUjo8x=RRZkfH(MD{9>GDua{3L?c|B07 zKF8_+4ExxG5ZoeG=hU!nT-!P_BDd${NyGffGx@xOgYXNB=x8zX+D=P+Z&O>Fv9Iqta=2Z04RPV1 zl>H>}a7lq_mZ82r0x=3^k-LVk?$&ZXuK;pNfJi8x#*1f+*2}g28Lm27AFU#U;|l>> z6YR_KCid;wLmu6zcLi-pVn$s7r|!0P=!kqA>ta4(Ku(vIlc63!Bk3@k#RKT2a86%6k>N|TF2WsnFY9YDg;8YuRP$}&qyi@T6z`HeH2 zb3xIw#4c(&DJjVXjPYkoEervU`!Z?f_#vaK-fIodV+cPkrPs86pK`hqrkmngZY_J>yODJryf zJOi0J*g#SF9!G0VgH=(}>+wA|obvHn9}HRncemu>UGWI$W`?(^qu z5n%COAPdMV{BfvdBB;R%%lY(df2ZeRcE^0}5HoA4B8gO9{$Y5y+ElN)y4t+d=Mg1j zXDs2ES)W!z_fPw@EyN5vydDVFb)b~w%XcKYFK{Lmq*|D&xM&-EeTN=L7@_5TK(Zx; zgeiKP>FNdlDlt)u9_o=i(O+M`8OBfS?f%@&bG+K!k!)4a>d_VuQ__HYd(kI_+(wf0 zZUvDv0gGY_CdA8LaCA%%RS(u5dZ_2fs&8x@mp9ws$>c$uANb>yO22a}MRTf$v<=Xh zID}L-*4b~s-_5Uw^#??E>J)!p!IdpZQ9`=GGm`Q3m+Xy=jh`R(+X|4(rN2pZ$@F%< zLrFK>fgLdseQQNrzOp#e=n{@BDaD78$luwu1?hn*RhY^pksn#ge|hV_$vf((^e|vt43>%Sty`Psi*v4C zy&5wTs~@5EzLK2(^$#NgD^*M4DWR#k*$@np&897*P+5|Kmlx^#zUiXxI%%648Cj)% zAGyqjtO3h(V0~s27_a}-kwOF7NOdCu74rZ8K(bqBB%eMlhHeB^$!IT9tuJ&n^y<3k zelCy_P>=fGAyh_va8y|kTGdzvPL9|Gr%Dl=@SJO2*A?Lpi-~aISk9Ki|LQXTGe&bD z)R0>ppyXN3;__cE4_1qyI)*M=+(hPX_>R~m&=J#5f5<3YC-UC~D`IZ?OFI}dA}=b7 zQmV)x9m>olzGc^iqER@${L_qpyA$mPV^S^TI#ZeQ%sm)>lVN6#J%EB(;(nO>muU zlJXm|6Kk|Yh3w4u^_;5R|MXFW-Oh%1BFrbzo-eCi7lGo653mmn4V_lR%3nY$&_V3T;j~^D#b+Xn&ukH_h5;ii>t?6LP zT4*2W^h39kdMHaBulcLV-@(2z&tgGtcB@o)vG~%`QlPh4_Gc}Mxy1IFn3Bxr&mVyR z{C$YD4W=CMB7V--i8a-xV?{dxJv%8PPmd*EQ{^a$S<F3nM~lPxK3z{{<$@r9c1P2z}iPAcGX76b#H5m?q_WMtlX4IU{ck#=6O=}NZg z+>1iV1P+*$Hon=TNyOj3mNBNYtD<0&J%* zd-3}5ka+~UFW&%=5(1H;?$iJ-+fIm3tOvMa9Ls`aOMR%K{mBLFz>4ZFb1J=gkTx;l z3?Uh1b@kJ5lZh}6qP(Jl7r~`&V1qWuvNRCi1mh}%F8*~E%wb~hLKa+yszSHziszph zD5(SPdz41IYS6Huz-rs)->i2+_iaX5X^?QgHD<`!X0?3#?RHAJm193;mE32taZ)bQ zMq{PipCuGy7SjbD#rtAnjbQOxY$>)=1q9H=B;d}hAK1RmUOovUd@i>f7?1&q0^Cr_ zNaX#O+uy;g9iXWHHkfqQzyXgo>e+oEW{ZJ;|Wil^` zJp-;$&1>y4O4&*$uNO+rFz3X=8$taVU8smAPbRrZ7xO}=t>HCrn0pmD#}n^vemN*; z$0OD&CQln6yA}y%eq?0b?G2t zE-pde_vTV`}+r7i@*eKc@D%T(!2V?d9Q22Rh=+gq(6K^9NV1`aG-ce7;YjZ9SG zXNHkmZaXRW5RkA>15^b7ZdFVjO)a8=f-?>l!*c&gp+3TuXmDyclOs0+1;n*Y!&`Wk z_Cdz-3hy)fjc;G}S|@ld>?rs{$AP~;5gnHhOQH+d_ba53KX-qgZ^jpnwthLZLYvU$ z{!oYk0;00V78}DN?}AGX)=y)Cd{jzG3asC-*|_HU_Gb>LNGnxtMM$<|qR*sCR8}z25BV=JslPu`*KGsHasqF){H&d%GxX(w9I> zE{>E!_vahmyooe?cwax)%J5B>GkC^AW_tTuO{_&Mt9K>+<6(N>yk>S3;Mqs73d@%D zW*$1Cmej8m6#gzSrWId1HDp)up*~mBG*&Kc=w*pLdSa5ETEc9NJ6pwO;H3lt!Cwlp zrlO)^-D{7BNQh!{cRtu}kqP6MwILDMMRg*0&E}J(m_FP(dw8O%#Mu9YKu>ZOT>$-l zLT0q9i%)NO<Ok+BT}?MMlQi*<}z49%XF(4J@)i z)X}n_Ln8f*w##V2s1hK-Y3i>YyPE5UfPN5qu%*C1vH%e&8NtSrt$79 zv%nFbSh~G}rY6zC@8=g2t*f*N+k6ac_uK(-%yX}I`H!H`%zPBvt<6ts`KNQN`)YgI z#JyjN`=l=VPk~WWedtN6fykqsc$W)S}-nw90! fVt8_2J%=x28`ADKXR$9Zx*TC*Y++Pj=p6YUFp5Hz9-1ENgAN!-iT4T;R<`~cOt+C(9$w*woCc;KTL%SyVR8#>C4Sfavv%Z1} zKS>HV%7?(%xC~)=>2AOKQ?$3Vp0h^L8A)<93pre(VG-80ACs zr={OiOx3K-%o#su#Hc?rQ!o8~Z$JH;8Mc{IC#$_wCl&MU8-#?q5mV%Nlr5~@@82J~ zAfuY;7u>3*x_M+O4ioH+<(50t8WxcTSyw20Z`94vPZX=lPX-~>HI(T#6nt+8Uy=V% za!D@S`KB;@;9(5ry{wfAYv z@=q)pwJaK6cwBRSF7`;}MVRs7Ym0X}J3AY+aZ+-6Ra-b&F@p~Zk#Y`P`lV`5>eR=h zSF0yOajuUDKhAlbO8)js*=BF=c2;Nj@6}X#scF3|l^S<~IyPs9TZ1zjY4jnFLv5}h zaK~NG2E!UxrnHo6I(WrSZv=jN$9qiu7Ds0*_m)JwH_?HTb#PM--d*vFv;?6aUhbk* zpF3TwG*RwS-WOSLx#qlYZg-|Jp0}!rU=M3_@_Im~Z5p>mUTth#twwE3JW*1aNTz|8<~pK zIBMt^EceU1Yr~bsoNNTJ*33tW+y;w_$~06iGgUH3chl5|uziS7-Y%m&Ze z`pf@7?k#wgWUpw+$fe8S7wIrEZ&`Na4ruVe2gi~(k!

CJwqcccDTSHsnV1DdhQ)ayq>{$!4No!wM9IF{AyhEckM=wqHo z&MAN9j3KQr-?DINU^8bdf?%LJhu9(OVuq*h)F(>`759nXqeRo1A(J}JM`vypOdXzW zNN#7j>cZkzD;8)9tT^glG2?~UUE(d!nLchFYr7*E=5g&wcV+35mVI77EWr!bhR4CEAp(|m1`cl!_2eLWZ>!Z!L`U!fpt1nC`n$K+p(UL(sITG zC+f3wGsi?W_u6@+E+3ab+D9wS^6fM$WSpDOH{;2pxd#h{Sv1q?**nMn=OugGRDGNo zWOr3J&yPcvADIfR@n2@*C@mx>L%zN{RTo?xvC&po@uq0;?6&1=ZF!S&YYM6z6+Vi% z>E&V<%X5u;+g^I6YdFXSa;=BjiOS>W*cOE|UyS@N_YAE_X1x#BY&940^B;@I zSE3+MJa-f_%CTxX_`r1)*S83_)~jnYLfH;+Dwo)^Jm`w;r4^7=HXtF6%-S!W%XutS zy~YuKK|OqJleOmgY}OoCu$;Wt%HcF!k=hJWv1lZt{Ep{YU(vYy^TDyMxjV%k<3@`| z0c!y@Ht&kfTSvqTFGP%KOLcY}pF0`|E$%Wa{m>oL7DLY(Et)7!G;mUS@#L76W_O@1 zYp&Fy#H^xlT>jilZF7sobpOUKcCMBtp(AD&^?lzy?zSiXJZe`(%(Yr}+~HY8&$P=` zSIldWLN@aFzx3w3PExj?SA|Rj6-qLjJ5POj@ko^AVOy4)*lQ`;8y-Y&$PpMXp3P_3 zXW8RU#!!t7RcGObe=43D-`F3|`F83Uu!!zlax^5J{fY0Z(WLr<^!=#JqWY=e^t#?l zW2IK%3MVmk_^Fl2!`E+~+g&q19`2eYEBoXnG*J~?s+cXP;2r&t4V{A|5Ag21HQ>#WbIFYU`t{iZ%%lx9c0pYZ3mDI^XB z;~#5rwQ_~de(PHu?@$ynZnid#ULSh#dX4LCowd4jfBxBHwt+~cboFrTh>QoG#kcH# zZkPtD%39l%hmEamw3E+R5xjKFv~o*Gu)@jJMlY)WX5Pq|lCl4I+JoDbL7<(}4JRGP znrL%yEL-@T;!H&Y<6s(hEHlSenR~lA%c$`O?S2;bTDhP;U%}}iQ|`LSBAzZEQ@#3vTo`=rnh@DAwbabM{lzjgH?thDJ>`$En({(s*wA=o&W0G!|9t-f~R1)LhS1SCj1Pqxk~PgJ=w!# zEDB#d4kSX$G4Yt~yKunF5A~!Hf+#EsQ7qUtu}{v;a^uTA(>YJJQ%^E)CKo&a;9=Ay zf>XO!t7uVvZ{xS)!BNGZ-vl~xl-v;h+z_s$>i+P2Wg8(L@RPO)!}t%lk+mb#1Z4Bl z_8))#1IS?hI`H$|&K5zz9t_iyryQS461z1rl##W~eZlVwzHVnrqJHIFp32l}CVnfM zhH~gN4*Y;orcV9OfVT!w7YGW={R($&4^%H`T%m}oq1CH&=`-eaTyF@oO8DI?LEdP{I=#N$_4$WlnnrOp+gk@S zOrO`m#GKo89|+cuhF|1p8~yTry*g69ko}&3_n{JMm^RgDe@D?*mqfHl>IO1i{P-pR znn9x&E!V7%dcHHhIi}E}&Gl(yWL%u|@8*wJ$yq9D=I$Uc!bf?Aj+XXZ@x`9x4Do$C ze{TsH5sZ|yJntmKsL_jh+{m_6xeh>NaTk^V*WHukV+>CDk$q+9wk}i&ND?{-~NW9tR(B}GjpNK5=(evkMA!Gt=D|p(??d?G- zSsGi73p$&pA2)&qHrj5}jg;6@x>k}QMx6=YVq;>S%{B$Uo4nciwKa^8 z#r+b4dci$c3HC6W=hXN4>n4YMx9|x0oal8n4rAs!W7)hW-FICDPLK8tBzCX&n{&8U zCPYOMmN_iF2@MUcC&DhfJ#dzH6v|>dBdYB&r+l51SJc6QeW%{avBT4ulZ=dPb+j;O zanbY`DKNQfo9ryQ154-1wQE#xP1H3an=3jp)ez5={k3yUW*XjAY&8)#oY1_*UcbG{ zW>Kl#9cxq7su4DMA3mRukl+$=d%(unm>TB}{k=!LffG7w#@&+w{O36fI9c*JLu~8e zw%cZCz&tL>M5|e_6R{IrgB5E%QD!^abdB{V+ish{(hz7t1gojE@-L@gZwMY zd#-QZyphBA`~EyO`60Gexg*BCT(x_V)H=c`y&vM@I!f&q7JCtwAB6{2)q32;=e-gv zE|R5QcqNUX23Fb9&qAD7PHX+6_e+iG(@u?MQ#oEj`UVDfkABKkjU%Z91qG3Ffyu*T zX6!@->I{{xd&1xHPpce$A5+q+bk|b`B|g&%FPSruBrR?`QJ23-7zRsm;a&E(9ke!@~gO=X9#=Pq=^UK z>z$x)svNr;Q;FAzIpubeV!nR={xew&$6J5kgNE&>iHV8*azAZFWo4<;n)=7n((>{# zpHWkGR`dRcMOIVd^>457*w0_BblYQ8CgnNK{2JJ|5s{_A?Rmm25lUvXK3=MnBOi}} zbBBACk0!UizFtZ>_J;7uL<3DjWSYkh<3TDi(G$j1s7WFtjIFL(~A$3|Gm)u{U7^$){ zm8otrV{L71s`Mo8HIt60TA}kp**lEtEnj+`h>A%}Z)}8?m-C6I+ze|~`en&OM~4&E zYAD22;W=?6Ts$OCIypJXzuiKKJiS>c@Tj{gT{+`Ux%1k0i{fmUIQ()QpW4UIo?!j_st^D*GHn!1S}q!;RN*RWwy5{$M`V23vE;l5=5cAGv@-z+hPGhO^jH zb`1p?s!zSM?O_eu4vd|bfy%ZSXA&9ygENbwlptC6I(j4 zEN#y}p#Hh=QeD;OWE0hf+uqop^@l+Nrf7Tr9~-iy>VN9xQvQy=W?##c62L&~RL{n{ z7qSK(9sinL5*JthRDb&<;}9?L#>Q^l1#;Zq{wYG-9wYz^W~~2SPrQ~3>q}C0F&}+b zTDwlIH~Hk1#omhYJ5o0#vu)B!HH;wvKY;-sxWgj!PB6%EN(d1MjiF^{seN{3r0?$xi z_I;`B%#k^(KfBFuGf<|SWQBu0NbYs=u|74MEzOQ&aL7_3qE)zP1=n4C3rliM^(|@P$ znO{@<`!;_hBDw@Jy0GQ}t^C^9NTex%>LvAZ>KFgY{B@O}M&Y+CVZ(T#wsUVUkD4%T zRU;g^ks74=&sC(2af}gnGvG~G)>*dInX}AgNC=w1>Yveecu|E<Gy2#U8zX@gZmU)t>WWWu)Z~PoQpx+c1{<_t)M!&0V z2%s5Y((#};&n{l)doJXFo5!ZwE526tiA2SO?^M6`@h;}8lFS;4Va@)Y}!r zegC+%^<|!w@g%L`_q-D8x*XBcU%!qwyxbvDTcT|!eNk&D-DoIXZzxU4SMP*~LgYo| zKjp0q^(W8t)!`6&^hzmrpYo3!xqm;E91|A*?QZ^^t7vZf>z!OFnA@G{6kfSRx6bb! z{+mb){6v!dOQ$pO!1thB zE(Xfw*1jUs7cv^zc!%MxiN46+?37qTVOq|p`w_lE{5OgD&o%SkmfI2q53X00-mXSk z{-~miEkBbRA{)RoIP?|R-;HF;7QL77XIro=(XCjY1KX0AU`g zOfH*I>C~?HSNWY`s8$>$O+7v_5zXp|?YJ`N*z`fO(ly+(d(U9%%!BYMCa3jq3yz5P z%Qn@n8-J50(bsMKnUr;ugxfPWvb8IpVT58^j+9||Kab^Pv03LI%+yjG6uIzaXyr-X z1Pu)h-l6S-dWoyfFaqoEMhXw9(lu!R{v?74_kR$R?aZMPTLa)NY-ZaJ z#IKS+3A)1&0PN|vWZ1hap$`W+?>G|gw{e#SYD1rlS2P|Z3dRf;_o>zWqET!;USjL> ze)p==`sh3H6bcTG0YSWYE*mm5m7syD?3^5?*RNk!@E;kC7TPr9bta-Hhnkw&!@xJ< zDS5@60@_{q|MgZ zNP373%S22bzszX``>`(KG2`O|@qjKwLh?i89`;IeFXtTz8C`#W|44HW*g)B|f)rJv zYf>Bt#;toq*ZL+C#8*_Zc$`)VgNeDm8)Zb$YZpZ2Zs|P?6n1jrG?7V6^7J`^&7z>7 zVA`K{69u}@4EFA_8D9-2OY?2ipI#k7pthQO>00}RW_xGnW>a>3*62WvpiYLrfqf1N z*x$-ZtZ#46XtAOXiHmlW+%JZWKBUa_Mf=@(e}Uq4pV&_04r4ZzjN6EjtKR>F=?AMj z-6%%S_PzUy$1&2BLp}fb$kjz5Z*N!huV241?|w^yn*#zxl=W5(VUncqBMNr=X~Igg z53XQ~qO5@OuUEI}RK9{#Qs9x#P*qh01Y|CQ$=RxOLx7*3kjt7xD`CA3KKvAT56%R& z#J-qS3MCE!{b!M1u$$53{!MkQZi&_gg@sZgn7*B8gO8m4_%RA&oP7`ELpbg4Qt@;? zt=ltP=*SEfPhl&oWD?B|`HZU7AN>{Uc4!(_wG%N9yzX1rNP4ZtvIh2Z;xSb zY`m1yUqx;;S)hg*PxN&hD|9H!!yt`DJkr|?DA1fNCv%J!&GVXpBn&m8JbtPl$I~mQ zl512;J9Ui_Y=Lpe@RsTu>{Bc_v*gTZ^LZwXq#s{r}YMgs(uGb2v63=F>fY1 zS=tF&U^3d5htCq4i>s;O3iuCJ3z<1>Mpg^XHjZ<Kp>9!?}CFPE`1DTTu451IBoR2MGgJ^Lp7O#$E{aAH&T82)Z56rTA^fVEP6 zruaiCP1&5?T;r()$0&bNmO`uF4!n>yf5m!ULBWKY@2`EYV^i_-kDsY8$iyGcH86FN zlnvW;rz@M^9?H>4wO{DkT^R}m=^(k+^kAo3XlcBZt@`Z9;-g1nb2AA4Jo_o&i><9K{())Q zx7SJA5(M0yf)EG7hP&G@jjD-r1}^LIUzHdeC^Zl579L(SyVF>jw|kai@hn)LNxB0P)dY6prZ={ihk?v z-FJzJxj9!#tc=#I+1T|wswAbm1PQ`W`9mXI$%hJzpI4`m_Y4cTJCt;M+Eo5GQ86(V5Gb7*R?&3()8wxbbH0~}=S9yoYQIDMKCxz0c8E7qR^Ae^9QOtD z)zY^})k5>z&7tI}01==UY1`mLCyDs8T8**;Hi+i5A_}9CHHJA`bm0B@^QY;+^5Es! zSPqM(ws1N#D9{MwPW{bawbF@#@h}tH6V6jfFwIaw;a~Ic4$(BL+@s;X)eB6Yh>Bi9 z10*0F#f8z0<9V;qnD;zT(Y{HO!5+DM>d z2(8s&W0KT+Z)J$hX;n2jIr*uKjPcR#QbTj|?8=Ho4wK15-J(MozX9~+hY97k2Gz47 zhU&Cu;f9QA-(a{zco6K9!m_W`W!5cJ2cbBhsc&V^VQuubH-Mp(huE@0r|f7bo=U)^ zeaUjc9hZ!|1+M0@Kj92yJCiD#ZC|1QUL_ulj3Hb%Q@s!y+TnA3{rj+#LH4~A{!Gl& z^x;IgvqY9kib}>0)x7&q;^}hFLC`=rZ)k&r(_TE~X@Of7Co*2TQK-&vdc0q(Gwiha z>&c|Yz81_bG`spZ)fim|)yJM#~0k;T24=|&DEDq(6!|gxGQVIL?scy2;4U{?5 ztHG>+7HyHC^y3x?l=?kip75XU_5lc_?qgrAPYu`aMf+>+Xx* z=oeM<4Y8)&cb-S@Mna8Zsy+c(7#DgSL%x+C_U+Xt@gF}vfl0W0o#fY6Gx-8+if>k9 zMc13@)|xwkc7vcQ;(z@%H;xLvA9PpS-9`E9H#3AzsIFlcj>~#izAh8T$JMPe{IjTdox4@i&IjE{ixZ?&(82d7UHxFu%gLXIBZCy}`Ta zO%@As=XmAj#%9!pAH!+&tUZEZ3yJJPROGUttK?{R65CWf*_rQbZE0yiOhR!b6!PTn zjOAJwEwlhQKN9J2cDSGkGzc!x1Nbii7BT1zbYWFzCp)s>aeUg?gTYyWwX@y@H*fvLt-)kzr7ZPu=+k)>?I?Ugb-02L z-~S(G-TJZpAhEiz-bA`%hQ1f045}V6{lhZ+e{uT$1x9^4!bG^D@3oa( zhn69XpWL8Fns}odo;hAV=no^l=U)q({eKvS|6`a%6-iNF32rxV0IC1sAa?zWe|STN z;3gT0l|6L+SO0J(8|yk&M9m%H&wQ!Ad-Km@u}JZ;YmW9-4((PV(+14Jy`U5i`2rgc z?f*xA509QoOB>c5U}dUTruRGklMO!{u#+#@9(VqC-lBZ=KiM(bphsDV4brn71ftE% z#a4JFwLOtZEc#_>BM?5wPxP(AqaBO$b!dR(E7VOxX4-?Or& z6J;FWM`HNF%CZ5LF13+3oGI75;-`RYMkADt8 z;%#)__nBkrHoN zd`NrwpeodKb_SR3%qtXIPuv_v4b_7w$6jU=E_cM$s z^1~|C(`?PWPk;oHhgMi(J1B$9WbwB8Cs z7J#1)>;2I>GA9>m!1bwM-=*SpTD?*OOB+W_rocU=TP;w!U7DYWqlm$2R4 zU4D=8btDTKuk&(;MNXx74_lEdfVzg{#vp9X;zm3M)iO(30XL+Bs)5WguF%m3=puk$ z>oamH+CaTn>@URwr#Dx>5xYpjiYY&Y?nU;dWw!~B!@&)39RVSF@|@vJ-<)n7l`XdK z_iUeMaNlmF@eRf`fb}4{5zy4v$2L_(XX*vFgJ)x7gLbx)c%EzANhEl@iclEn{b4{; zS68?C#~vg(ULr)371+bKso27VvSk28JyW}Iv??bMEw0D|q=4 z=C^KX{GSF3n+50;;wew$@!4Z4L`?f*_^rS#6>!~s{7s>ktAxo%`0|{F5K6Q-j{94* zn3M(EOXzeLPosL=oP6W;WwLv8bQv{7c0B*BPKh$k8OKgz7#~Nih>%Rn1cQ^y$+x zWeL>ZYoT#{EKH%E(N1e)TcSHOS1j+S z{&J%#2EBo`{*Lgt^55R6`NGOd5cGQ*Po5{In0sqE=NpUXraie&-Zd5c69YL=sSibi zzPDDZ6h~y=Rd^w7V3~hGbKoyGbr$)rZfcPJ(7!WN=O)Sj9sF|svD`9ZLZuw%S!_8` zw>8_$G|*92;`5$_<5O!G&CV7L z`Rv?WV>sQ5fGeT*W-2vwK7%kaTxw4PnAGIBXbt(RwG*-i5n1Z_uX^?Cn*2dQLLny} zkGDtHmf^c%Vbsq9-oG~-&eii?d-?sJp6UB_enNw?GvyZVB`2qB?(aL7*dX%rnWLqV_Vp+T zw^y};M9u?)&D#h~Ta$M|Dg%5SuC(CNDj$(y!Y}@hp6hu%WP3mhraDvXli|5)%^8dS zYO9fe#VB@h1VN)7e5X*o^E0jDD^TLWb_JCae9@NLijU0B8#j$qP2KUP_b;PqpLZ#0AeM*HSvYryp7>F@Zlji`Y*y|zh2!oV4tku0`;=Dmj zps`AX3RA_OPe`uT0*^`QS=sxCg9~2#?=fdOAjJ=i`hgjb;*v#VeG%eW=^TVo0+ zPj4WII()IiWXE~)CRuHZJmp47u8!Af_|19={DZre6n5=U?luP;^ztXTm#b!zr_S6vM}G#{wGp|SA{#1Z03 z?c=tq-u-3XJ|uvQ#zmwJGax?Q)3QDAH3C?tZ-FP9VTiJC%Pc6`8UatBB&xYKTK`)6 z3mRuL5hX)n5@IM4n@P%Yu`POFHqa&Sgps3tVY0NEPW4hmlw^g!F}|g zMukZ#)O9bS{)HIPoTU1#IO)IOcOyBIXQv<$zFTvHry`{u|dwlKT?J4yVkIU zo{Yd64S-N)4NbO8dto(se5FU>YkAL}d`sJ|0I_SI4{PPvyHRu7e(+9^ANoa1-IiQt z$L&io92RfYvl#ozGF9biA1S3*aG_+b0ptRRHPvCcRk)v#%m=ffLNW?5xE~YUU&DIO zYbF!P7>H2Q!uIO?dX8-rEFQLDt9Jedl4JY#;VO?MvoX8d+GY;6W=VMLd~I+^zF4Iu zL1HqdOJ^n*`4lBF*&N9lj1L2KtKg# zacSe*y~~}Dy39#Q)hTKh__2M9_5oFsK?nPca;f0hxqTGfme=NJM$Y6R#a4Blx;$-K z|D%2)4p=`1r$>9D;^GP^;@6=23Y~0Td?)#Cakq?*xLeHBQ5|25*3M1I{5GgS-<}OT z0pdF&*zTG>B3^k7-!yOJ#}e=+9IOJDlG6 z0o}FgjHIyAZVua~;tVsAQA;>wpa)?h>v^&z0V=~H2$Qby38XB1BuIOp;7t|$n6k36 z34l%R7uzl!OR1fYxB>x#!U<(vB2mx-Eee!4H{>b>3(LoVfGY`>7AqEwfwwJ>?TG&} zd;l~GU$}5#m2G?BNI=5Uk{-q%_?WTg7;dODH@|oR0rLxXrG!7DkIQCKbEzFiywF)m zo1cC2(@K|MX#=96oP@>??jfmsg~@%2q%2?WZfB(4CsP~Cp+CPo3)pNIK9ya3;9mfdM(boNK%7Z{>Hx%S+~( z1pvCYp@cH!MQf%+!=K+?Bl?-AD4||#ZDqp-IVvcb;-FEY4d)x-;5EtWuBBS+>@B3N z1>B^3g&Z-t%V|l7#$_}40GRK_Ox0{gPSqnPp`5DiM|e|lPXWe8aXD)zjYWbOG+t_d zczDna1b5*s8x@rwtO(}mJuJ(qqWBSn3Eoa3A=>{G6Kf|;Km>4Eh&_IB`2n_nQv8UNym$kwd1{(Vx~=kE2(-ueNF#Dey11Z}*f!G%Kd^bi{=ovTZj z3VjMzh)O>0c=uxrV>2@|&2p#UW^yl*co~0{46)R{IUW-MhebJv+KEGy5dfjV_U~4R z0Aj|=NC3P9WpOs%c~TEJBqk=LK{?v%eZN+)O~4@CKV+%<;kG_$c!>u+MZ@V*w&u0^f-We~E&Vi0Wh|$KlPLH->@lmc z;$Bday5e|5Hnc->a;w7DoE-?qo5wB((Z;WEeacn8ZB4C}oSaI`rI^3D-SS;)3<=WI z^z5t%kRc%c%_(m#V?X;LSg&PDDkz9jZ9tFdgN1f0CueA7?c9@RI+}97`ia?`=Dp~8 zQ}%h{>MvWr&7CM3;_a5XWDE@rb4|L*q^ZMB3llw$-uaWcUdfHGwjN2R3L;==GB51R z&qpA5w%Xshd+?aA{1;d*$g$sZq>9QN>abQ%GA{r_E)lWP)W^eP#a5|eL3gMoUlg-x zbcjt>R8*$TFEkF&HRq`_m^$9>F?WP!9DB3=JhaC6HM{Asw`=G?%Df227II5GOWq() zJ#e*{y{VEl1PhNE%zRz1HSiEn@}N?>(mQW&v?8l9%o+k6_b25}YtJ}BS`FL!WT7pg z2a=>b3xA|ae@7;vKx^*&a3PVvf?h{Q=WHv~YxuZ>XAWRivcmD zlbuaUT!ilQg=0`sBX^Jm#Y>P~B+9~6EP982@v>a?lT*}Wl>=LE@(=!lr+0Z1)(+_n znuEVNZ%h_gj9rIofK%~uxZ4e9(x4-X1!V_w$`-Z0kO(O#V1Ij!^lh!~<8LZS1Ewy{ zUFBlyxX|~sUG{E+TqnGDIioL6vDv-dz`y_t7q?hPS0%qirarV!bznqDiO63-c0;PFrxCIq7adLpm$x-`_X zwN$!50|?NZtmvHULpH);b+~s6`!Q%du!~q}X=%Zc@qx9m1M+yJDX8;axc^Hi(2L+% z`8oIO&Ip*JjYsbJBbLT^3M8d8DlF&dlcXtcCUN}ouo!K93PWyT0 zd1zXaD4(X!%+J4-$$&C34SxYAFtt!%aLM72k(mxBl1b;gUj180A4i&13kMv(03|f& z)SrJDqn~cD+r?Q{=TqPN2b!`@>v}JziAYE>ximVy)Zj2({jS1+=XG)>Fkr!DvQZ`S z_3L-t#=vBSTzv)=9p^t9r>N(xLB@uusVUkiS7R29Ku5(NN|*LMA|6ftAiVZMQf46E zVo3YbtuW@;j>dJGh52+4%BF82mW9qwfPBXMF7J$DNvV*+6D}b^0QJy zqUw}0!d~SXrUkl$FE>a12t=<$ zN5;ocV?!{R?vD~Yjt*E*WZVeJJYTkp0)UOY^CJsz(PyfzA{rOcamld^x+(Q&#`DziF zeaZh4n_iu-@KCAi-XoCi3?a1N_3%drcZ!TpZB5fPVi&y@9JB}2)U0|ZmsGN}m5mMX z;rnT*OO=$c;;uma>TLyg!fZ1Y(wGfk z!^N76{0K{397&PnTW4nAE*~vHeM!ouYn&fjTX`Yl=rDjB<8YacI`KH6&MTp@au+(M*()F zwydiwFWywt)2A=5Kwy4;u9qn+E^alq>y35wDUukXBNB;|9)z3@gisw^%ws`&qo}3u zy?(VY6lLT7bdNCX%8K;|l0EwqM z42a}$5M2Z9^%^nPre^g*k10DOrM7?%+npXc0^ss8run=KrU;J3mh7mQ1V#6od| z$NA|#a_F{LYaio6DLm(xHgrVrC|z83+ub2XN^-nKh|9nE__gCg73|coKWkcX#(wZ@ z;3Q~(5wZ~B1VP+rXm=V>|6c&6V$XLl9{?!OQ0*CvPiE_JZWOCLg$9SvtH(4KR0@OR zFkr`{d-s|eLOZe?t3u6}-F(Mgcwj3Xru|aGLiONAeOfz`jDbKvkkr&of+?My^6_(7 zxogV!esI3)<;j69>iiOLk0078yl_6}<*>=0*cV@xHB`jJ#=nkwK)dO>cYeCzg>~hM zZu=kua>$c=`=UWph#o*olqJ_f8JcUqAOiqcrXQKczj7G^gT-o@U4>rf2`IsFk%tt|)g49f+7m}wN>3Rn-Vp+}MQh{{`;Ro86K4&ae=oOQBKDMR7LgJ;nOGrof zEN^@WqgFZUL>y!QEW9S*2pI6m-nk`4e!ShQsAEop2=y$NrjAO>rSoFv4SD%+H}ab5 zdjyh?rPY$Z)3AkgNIjbrzIj*fiFEJoB9DpspP}n_c}r8Gg=Sb(=r+X}nUu8ZD5^#cwdxt&WK3m_#H_?VKc3dLi~L zO^Pg=-p$h7V10OLy6olZcqwB0urn4#c(0Q26P7WPg54#Pz;EUmpT*5UzQUE+TvoVp zgO?j04C=-cjGfMQcX#)f^SgH!>l{!AT9`KycRIR5i8!!*Fs}9juFD*RmZ!Ncc)dtIb_om0Bv;Q;Ag!V#zOa_5{pksot? zvVy3wZbdCOmMzQZ-we7n;G}zwe#iX&{aQ0SV=d)eNX6+Nv#v>@enj(SMAmS-oui={ zhW$;#PB(}agnskpMPk|)c5b- zA_?MvkN;B5d>0UKsagNIsOSUk|Me?Wb+im-D}HDv&o$hU;?ac~>Lu z3(wrrEbtceez$zQLP`>tOQDDQ0|2*}E&lD>dWtjOUH4P-xNlX@m0@6D5DJ(Vs3h@V zn6!IoYm+4`9lcKD)hV`vK&a5(zf)*qI{ap>gr^^8+QW{>Qn1A27uMbw=ST(SX`J9HH;}nTfut($V%8 z1v;9U(FO(v_LMnV?ASx{^3};!bEnr-l?QQNULHi4QI8l&UFmyr;*M5R;j$yAsri0$ z^X2;hB6*8rWs{q5Ox9N>RYb|~^I@TKd&F6{f~c7IG-Sx~M(&_lP8Qs)t*!0xQ)ZmX zHwu~{%otS*&&B>&PuZJeBNTTwWHxdz1<5b?ir&-38=}`k8^DRl%(ifO>u|VjbTybT zkRnNh*>n8W$=UIS)0neig=M3$75!RPx$A&A>RXS`(Ya4^`c$jjd6Ms^^q@xNvH#w6 z_~KL0vTfU3|EJ2cmS7tQ$zo#SHf-wEZ`C4kGp)-53svcNEZ0^w8Fh+|s0nf^J=+SE zhdffB+1j$`i#Pv*s1PBirD|~1i|)uumuv@ZH9JG=#B(G+#Jg_ZzUv2Er#lW;qg26u zlFwCIp11jjZHb}wQ7e8=8?NW%b9og_(|ru93#0d#gk*c0*w|QEpo423oV}S4UYnVD z(J(==8wa=V#B~mOuOKnf*-j%J<^4l3RXDW|9ql?9e?T{`XGo~C z$NP#3{;OD|_uYO7Ffrjisr1Q(BodrqyMRT9x0y(MUJLEBvmH#n&AK##)gs6JbuHAe zj9OK`@SBTh&_jLTFJr+hY0fu3g@xT@VZZQ$_6MX6g^#8kGPYh=;h}-{vNi2bt`G0O zaIo;i4PHt^XP^k2R=uS{{R=W*!v!v3ok-HVOm2BS$;omaeuUV4ZpFPuLP_H7L+v*>$V)2(;$I*t`d<76G*jlNB$T@vl28OKg{g+zY zc6Rob^X-F3%SMZwL_7PG?BkHR6U1u9Ttz-tcX$__#Eyo*+Ye7DqV~I8z;kPWSVOMI zn3KKW>fEy|mz>?GnHG}NBiLo8`zbnTo7>jt9=1H&IJ?*Exk^3>uPvJ&Kk$NtWfZFs zHqc3b5byLLl@OHl;zJtBJ2q>gzx(*$tC#N=E zTuhLjme_4EMavzFfEX7T>db3}W>@Z#ys7dyy1!U@PmIOY)%Cu<=_Rx;@M2H4+nMsW zjE#&z1-?l|MFkT2L;8YqajBf4S;z?m1P11h%1VqDb7&XoX9z|h2ls$@=Z**f1drS8a2F4>0KYAFuZZ~*!Qgxh&10E&4qd14;&_LFoIsVi*A zKUHC9pKaw4$XHD+A1PVvem{j|q+XlQ_j`va_?F%F04e-G6z@&BY~pN_yC$ zy|EGFvXD>!%o-&hA2Im(qUFt_daa+RoD3i?znm-n3$SZa;if<_v1UP z3|<3+NO_K$_1oH*K2y=MftigKDC#>Era!;Fvvd!c*J(W(nEl+o1aFySxm@$)*}UiN zQq}pcXbno8{kDw(3pa#GcSLY;_D&9Jp>S&`3g{po#=nRli5@E|DJvQ62#?v(Hk(>T zJz3lg+e&^uD~XUN38qi&$v8wHdXq#hqlG8x?34G96LVSmwkjQV6A~f^hq$?&sro(W#guex?dvO+dGF5w zF@oDZ-@Pex`de|tF=J&zY5NQM;$vQo%toP|wP-?KhlituR{qRd zQLANRLTN5b47Q5*CtZ$7A7n~XgQ~p zb(X1BdD^;@( z3+GFXs!3WmMjb66A$~Per<%;;2+5K-H`*Rf+0XlZb+}ZdFptKHz2%xQv~*<$+6s~5 z>%rUK9wMzDr^Ik;Kk&Doef|Hna-Bg=zadX*v|5Sl1b1n;V#NEMW_ z2_PjP^%9f|N=<0eE>XnLLlFo?>cvo`qb?o6P?aXVmwmJT@H(?|cXnoH^5>k%d^tJi zJ>U0yPkEtAynTEavLthol9GznMY~eMU6m4zaF4UhQcRC>D2Ib^0tQ-ARjwecmpR0b zA5s!B&^?G+=cgedSt_)STn26{QPG!Mqt|UY{|`v!2k}y02`P(pn6J7@Hl*&NdpI?gUH^2d zuJx06_-iqAy$|^~Asywdg!fVColJ&KBGSyTht8Ok2p*)YNjf3H|Ca zquwI)431Qa|SDgMU0uO?FJU#wPnWZ=qc z_($6Y2K>q6CJr;JNRm!<-F=uVzyyC8^qfhVM5LG3x^J1CToV6WMo5n5#K1_Ii!iLx zAiJ{Bvtoz^FlCGEm-#*LOS2(0I^%l^)$VVelEoxFL=OhfkVUqvooY+GBumz}f(=N+ zcT2%MEoolL8X6k9F}+~SD{Fo5QHz&8jYgxpKBD8|4nfTQ{$S}51_lPj1fvqWrxAbz z-hkvAX4e|efH-{kFcd{VLeO# zWiBI)V1Z>96l6t|yV4GTwiF61NK#7d%rfjnUg5SqH_Dcj3YNj?)sD;G8z2$|+kRL0 ziHnO1)1AWw{xE1bfJA_3bQTC;Mpy@~#00^1>fQjwz8tr$$Sq|S1XkxachAuiMqnd3 z1j?!4+df9K5ereny)U%Xi7JoMf8S=N;_2d9A{#(tbENcE|LR32b|H9gQe*vk(*ujeCMq~` zgU&~roIg1@rQy6E0AV+gg)bM$t>h+YJ_(@h89{GqiYDoHsb(p~OW!%%d^+`pRY;K0 z-!^u_JFy#ND#~~EbmP8#9OHt{N6C6HyOH*Vg?;?@;z4yVU+F zE(%5Yy;yXfYSw8k70J-ul$Vxv5PD9?YXC)ji-a>DGsF!!2?%{Ri#++%J;rTW zu!PSJR|^P#-7-;p4)fvtj}=_$66t_$z?n1YL`OgmuACOv(*(_RVMeA_Ge#UZE>H@E zXdFoE{?$ckvePZ~Q@#GHebBZBZtrcIN+X=#c(iU;r7?K*8U=WH)z~j}9!dp_Q0_j( zCMPeqs9Ps&0=tJl0+TOKZ@rFpWZn7F*bk&Au>CuZ4UA>A;cNhr;&R_8Cs6jR?=M!uc{B(t!eJSQVSJzbw}EE40`xkeUdi%^lZA$FpNMwvr1L zSCy>B0)>P>fu9K36DuyL>d6Ylnh;#0bpv|w*mV!iuGpU1*xVF>jmFV^MT4~^?ak_? zmd>~x^GkC2eU&aQ_&Jj`(zJ_Cv^Eiofi8f^t-itc~g1uHuikML+<*G>5Vf^LaM|K-mcT=9%iJV7Em8} zJN1fn;MwZ?bBjNBr83f)lC@b=V7}i_sf@rDpRctkDQPQehq=)jtRXCX$3(a1bNa>F z*#!i`Wo2#HA;uLI#lGw*S!TbvUXJ$#y+J6qrhjE>KlC+bjIsSRUVLDXGU~@>x(V3*jrg5@NRt z%&Wv4V7W zZ;6MWtEY5Qg1_7$%2Hs8*UhI~JOj8($&VD@wszj6EW#4{V1B5d_QHRAP6@iH06j`g zwdmOj*CcFgL0fAWg{Ej;91_FKMV712#w{>R28wkQM0{Q(|pgiYNuv$lohSk@( zQa_3WI6I6BP{RA+PTIw3`NV2Rv96i3LxU9cqsQ$xvQ%ne84;T>e zu=o{tVI!T>egv`7Fo73h27uS>>NwR~Ke2y!C8Loo2!6xi+cCp6!{W)|rw=Nj-z`E< M`TUI Command: geompy.RemoveExtraEdges(theShape), -there theShape is a compound or a single solid to remove irregular edges from. -\n Arguments: Name + one shape. +\n TUI Command: geompy.RemoveExtraEdges(theShape,theOptimumNbFaces), +there theShape is a compound or a single solid to remove irregular edges from +and theOptimumNbFaces is an integer parameter, that regulates, +whether the faces, sharing common surface, should be united, or not. +\n Arguments: Name + one shape + a flag. \n Advanced option: \ref restore_presentation_parameters_page "Set presentation parameters and subshapes from arguments". @@ -23,4 +25,7 @@ there theShape is a compound or a single solid to remove irregular edge \image html remove_extra_edges2.png

Improved shape
+Our TUI Scripts provide you with useful examples of the +\ref swig_RemoveExtraEdges "Remove Extra Edges" functionality usage. + */ diff --git a/src/GEOM_SWIG/GEOM_TestOthers.py b/src/GEOM_SWIG/GEOM_TestOthers.py index 76d4e2811..f1da60701 100644 --- a/src/GEOM_SWIG/GEOM_TestOthers.py +++ b/src/GEOM_SWIG/GEOM_TestOthers.py @@ -104,6 +104,8 @@ def TestOtherOperations (geompy, math): vy = geompy.MakeVectorDXDYDZ( 0, 1, 0) vz = geompy.MakeVectorDXDYDZ( 0, 0, 1) + v_y = geompy.MakeVectorDXDYDZ( 0, -1, 0) + p11 = geompy.MakeVertex( 0, 0, 0) p12 = geompy.MakeVertex(30, 0, 0) p13 = geompy.MakeVertex(30, 30, 0) @@ -320,18 +322,17 @@ def TestOtherOperations (geompy, math): v_0pp = geompy.MakeVectorDXDYDZ( 0, 1, 1) #v_0np = geompy.MakeVectorDXDYDZ( 0, -1, 1) - #v_p0p = geompy.MakeVectorDXDYDZ( 1, 0, 1) - #v_n0p = geompy.MakeVectorDXDYDZ(-1, 0, 1) - #v_pp0 = geompy.MakeVectorDXDYDZ( 1, 1, 0) - #v_np0 = geompy.MakeVectorDXDYDZ(-1, 1, 0) - v_0n0 = geompy.MakeVectorDXDYDZ( 0, -1, 0) + v_p0p = geompy.MakeVectorDXDYDZ( 1, 0, 1) + v_p0n = geompy.MakeVectorDXDYDZ(1, 0, -1) + v_pp0 = geompy.MakeVectorDXDYDZ( 1, 1, 0) + v_pn0 = geompy.MakeVectorDXDYDZ(1, -1, 0) #pln_0pp = geompy.MakePlane(p0, v_0pp, 300) #pln_0np = geompy.MakePlane(p0, v_0np, 300) - #pln_p0p = geompy.MakePlane(p0, v_p0p, 300) - #pln_n0p = geompy.MakePlane(p0, v_n0p, 300) - #pln_pp0 = geompy.MakePlane(p0, v_pp0, 300) - #pln_np0 = geompy.MakePlane(p0, v_np0, 300) + pln_p0p = geompy.MakePlane(p0, v_p0p, 300) + pln_p0n = geompy.MakePlane(p0, v_p0n, 300) + pln_pp0 = geompy.MakePlane(p0, v_pp0, 300) + pln_pn0 = geompy.MakePlane(p0, v_pn0, 300) # #part_objs = [b0, pln_0pp, pln_0np, pln_p0p, pln_n0p, pln_pp0, pln_np0] #part_tool_1 = geompy.MakePartition(part_objs, [], [], [b0]) @@ -410,6 +411,49 @@ def TestOtherOperations (geompy, math): geompy.addToStudy(freeFaces, "freeFaces") + # RemoveExtraEdges with union of all faces, sharing common surfaces + tools = [pln_pp0, pln_pn0, pln_p0p, pln_p0n] + + Partition_1 = geompy.MakePartition([Sphere], tools, [], [], geompy.ShapeType["SOLID"], 0, []) + geompy.addToStudy(Partition_1, "Partition_1") + + faces = geompy.SubShapeAllSorted(Partition_1, geompy.ShapeType["FACE"]) + + Face_1 = faces[0] + Face_2 = faces[39] + Face_3 = faces[40] + + geompy.addToStudyInFather(Partition_1, Face_1, "Face_1") + geompy.addToStudyInFather(Partition_1, Face_2, "Face_2") + geompy.addToStudyInFather(Partition_1, Face_3, "Face_3") + + Vector_5 = geompy.MakeVectorDXDYDZ(0, 20, 0) + geompy.addToStudy(Vector_5, "Vector_5") + + Rotation_1 = geompy.MakeRotation(Face_1, Vector_5, 90*math.pi/180.0) + Rotation_2 = geompy.MakeRotation(Face_1, Vector_5, 180*math.pi/180.0) + Rotation_3 = geompy.MakeRotation(Face_1, Vector_5, 270*math.pi/180.0) + + geompy.addToStudy(Rotation_1, "Rotation_1") + geompy.addToStudy(Rotation_2, "Rotation_2") + geompy.addToStudy(Rotation_3, "Rotation_3") + + Vector_6 = geompy.MakeVectorDXDYDZ(0, 0, 20) + geompy.addToStudy(Vector_6, "Vector_6") + + Rotation_4 = geompy.MakeRotation(Face_1, Vector_6, 90*math.pi/180.0) + Rotation_5 = geompy.MakeRotation(Face_1, Vector_6, -90*math.pi/180.0) + geompy.addToStudy(Rotation_4, "Rotation_4") + geompy.addToStudy(Rotation_5, "Rotation_5") + + Shell_1 = geompy.MakeShell([Face_1, Rotation_1, Rotation_2, Rotation_3, Rotation_4, Rotation_5]) + Solid_1 = geompy.MakeSolid([Shell_1]) + NoExtraEdges_1 = geompy.RemoveExtraEdges(Solid_1, 0) + + geompy.addToStudy(Shell_1, "Shell_1") + geompy.addToStudy(Solid_1, "Solid_1") + geompy.addToStudy(NoExtraEdges_1, "NoExtraEdges_1") + # RemoveExtraEdges freeFacesWithoutExtra = geompy.RemoveExtraEdges(freeFaces) @@ -474,13 +518,13 @@ def TestOtherOperations (geompy, math): # GetShapesOnPlaneWithLocation Loc = geompy.MakeVertex(0, -50, 0) edges_on_pln = geompy.GetShapesOnPlaneWithLocation(blocksComp, geompy.ShapeType["EDGE"], - v_0n0, Loc, geompy.GEOM.ST_ON) + v_y, Loc, geompy.GEOM.ST_ON) for edge_i in edges_on_pln: geompy.addToStudy(edge_i, "Edge on Plane (N = (0, -1, 0) & Location = (0, -50, 0)") # GetShapesOnPlaneWithLocationIDs edges_on_pln_ids = geompy.GetShapesOnPlaneWithLocationIDs( - blocksComp, geompy.ShapeType["EDGE"], v_0n0, Loc, geompy.GEOM.ST_ON) + blocksComp, geompy.ShapeType["EDGE"], v_y, Loc, geompy.GEOM.ST_ON) group_edges_on_pln = geompy.CreateGroup(blocksComp, geompy.ShapeType["EDGE"]) geompy.UnionIDs(group_edges_on_pln, edges_on_pln_ids) grname = "Group of edges on Plane (N = (0, -1, 0) & Location = (0, -50, 0))" -- 2.39.2