From a128d423b9d69de99dfd162f1e7ffac489bec71d Mon Sep 17 00:00:00 2001 From: iamboss Date: Mon, 26 Jan 2026 03:40:40 +0800 Subject: [PATCH] tune --- App/Hi.WpfPlus.dll | Bin 68096 -> 68096 bytes App/HiCbtr.dll | Bin 113152 -> 113152 bytes App/HiDisp.dll | Bin 11440128 -> 11440128 bytes App/HiGeom.dll | Bin 419840 -> 419840 bytes App/HiLicense.dll | Bin 81408 -> 81408 bytes App/HiMech.dll | Bin 784896 -> 784896 bytes App/HiNC-2025-win-desktop.deps.json | 150 +++++++++--------- App/HiNC-2025-win-desktop.dll | Bin 867840 -> 867840 bytes App/HiNC-2025-win-desktop.pdb | Bin 328204 -> 328204 bytes App/HiNc-Resource.dll | Bin 56320 -> 56320 bytes App/HiNc.dll | Bin 358400 -> 358400 bytes App/HiUniNc.dll | Bin 190976 -> 190976 bytes App/en/HiGeom.resources.dll | Bin 4608 -> 4608 bytes App/en/HiMech.resources.dll | Bin 4608 -> 4608 bytes .../Hi.Common.Collections.LinkedListUtil.html | 19 ++- .../api/Hi.Common.Collections.html | 3 +- .../api/Hi.Common.IToPresentDto.html | 5 +- .../HiAPI-docsite/api/Hi.Common.JsonUtil.html | 26 ++- .../api/Hi.Common.StringUtil.html | 9 +- App/wwwroot/HiAPI-docsite/api/Hi.Common.html | 3 +- .../HiAPI-docsite/api/Hi.Geom.Mat4d.html | 34 ++-- .../HiAPI-docsite/api/Hi.Geom.Vec3d.html | 13 +- .../dev-doc/release-note/index.html | 4 +- App/wwwroot/HiAPI-docsite/index.json | 18 +-- App/wwwroot/HiAPI-docsite/manifest.json | 4 +- App/zh-Hans/HiMech.resources.dll | Bin 13312 -> 13312 bytes App/zh-Hans/HiNc.resources.dll | Bin 4608 -> 4608 bytes App/zh-Hant/HiGeom.resources.dll | Bin 4608 -> 4608 bytes App/zh-Hant/HiMech.resources.dll | Bin 13312 -> 13312 bytes App/zh-Hant/HiNc.resources.dll | Bin 6656 -> 6656 bytes 30 files changed, 163 insertions(+), 125 deletions(-) diff --git a/App/Hi.WpfPlus.dll b/App/Hi.WpfPlus.dll index 41ea16b71b36ee05cc05791fd50295caef3d6b3f..3c0161745c25659e55c76743826fec523d3e14d6 100644 GIT binary patch delta 312 zcmZpe!qPB>WkLr_XmkC?jXe^QjLDOiN?J0ePQEXh%ow}bS;|&efVEa!Gw`P-&oI3&(c!cGBw2_$uz~xATc@F$UNED+%(BB*)q|< z#Kh9r($d^4(by~{$;8rp@;M_jmVZHV6DD&Q2MDa5+aYWyf8KvGr(eU~nZA=IXBc}Z zKn3eBLj^&qJs7-pu6oRO@YRZ-Ka&Mr>^Ae6Tsg;?%)rRN%)r2qy!|y3<8nqu%k7g{ z81or}Eg7^KEE!T6QWz{4k{C>Zv>Af|Ln1>m5E?O<14&~bX$q7x1hOrGG6oDLKxhdR gw**3Sp!!50+YG2P2`p|tJ(P{n6lg&=8)GRm01y~h9{>OV delta 312 zcmZpe!qPB>WkLtbfoisO8+#-q8IvY2m9%6`nS5U|nK5Rwvy`o{KwIU4L+1=Ef^Ig(Qf2^DFkAcp diff --git a/App/HiCbtr.dll b/App/HiCbtr.dll index e091c0c1cf3a59500d600980143b06eb4a580d9b..a8a0eab068fd40f96dbf0a2926507a5ed0ed3e2a 100644 GIT binary patch delta 432 zcma)yze~eF9L2xa+Jb{xsG~nnE25Hkm%Ai)E^0y}P9hzgiZ*HE(9y|7bWjvJ6eB8v zlZ&Dh$_d5E(Mb>;+zMI;!A+dh!Sg?Gc%S#)_xmP}mI^zN))X)d8HSzdlb zXkAYE-)&vTU=AnX1jb@%1W=W8D>B}(2hGkj>_bcOK(?3X`p}Wg?dAtj5Y;b+Q9gRQ zm`5c!a(RoQbgd`jxvs~AFf?jep2l44XfvE+&BN5lx||D&xzuY5nT%oCoO#sI1i^;J zaMsbd!Cfs&xap7?hjYh{P9FyTH+*}TPF4FS*RmhovzzbRFJElvP4dS|iVGbBFa#4+ zC%O>h0mU}A3wDVJW)Z(s4DBHF3!zWU&=f_23ByznL;kdC_w4~7hyy^-kXPs?hD2kv zffi9tz&Hdz0fP-(si0H>0sBTC&*kN^WEOESlUF&S1b5`DLBh+9E z_V?h(E|A$MoWT4*0s-8y!WN4Rh0qyJz&&(1A6UFxNTNqpJXoJXc5vOCMQg!pa~Zj8 z?&29uQ=QUmPFDq4wlo1}RU#NUGcQm>(KDKo!=@E{T_#!jYGr07o2L@*^MYxq29IT3 zFjONi5TaN(YZ43VYS3s+{xAG!EskC+?HyGK0TYhakmT+$m1spWi?cGhO~CwEC)xWk%=FnNrBn|hV5OqsCS>b|%}iW6hbJB@CiZ@grW$=5Q-y|Kq!e&3gJ_P(gp)*1kgsuqP5V|AuKMvK!XSjf2tyEtB6txJ5r!cQM;L)H5@8fV62fSNF$iN3#vzPH zn1Jvd!bF5g2$K<}AWTJ=hA@_`-)?q-u8X^qK-wC zMQo7zHOQh|FDV!IW2Hu0DaEBnzE7L}P^!sCq`QMpPMz~?e46XkA6sVh6+AMp?^D|+ zrjRhzGr*!Uq8b5e9I~E^6k%$|S*7;ss*dMsg{eUol=}8hh1l$Wn@<5MH*zs4#+>u% zzT{lc%!giIOY%hf3NGtsK82~3=Y2`?NsGHg`BMBEY*BMxP>ZAB0pqv(Xo%6R%iyd2 zQ~1(UKRf(Eb~)9Ki>MZ*^{V;)7G=#xt@~NL5C~UMtpn6>sn*KBEwJ1k!bc;HV zLi(SfDjdx3OHl}2Vk&b@D&75Ki>eq&ek+eA8NY2p$9tQi{Q>F)it{$5Pdl`dT-XAi z$S_Q8faB;>PW2qwnASDV;VYz0W?$M$a6J_qrjogkF!dGZ5}^LaRSi?aIlllkA%pUA z{ZC3=J4l<3Ns?OVSySugXuB!oH;jr(@JRvn_IIUz2`6ve;4u@RS|KgjMX3H(84k&eC>QK&aBIY1Ss1L zlS_aa%vH#yx+3=D7|O2-KAFz>#C-Ci4!^;$5qc*;?L-xr4HW~8=c}4`N`+le@)h1fy=ke%LGw%3m zSc>Z!rUuFctS*W7qu+bSk%Kd!>ShqOL<;&8rrhG0lt7=inj#l7q9W0xBdC6u%I!rB z>Elt$FAsG?R9;o;E>XI^y#?KGdNV;<0_0QDFipn?NbAE`_zhMt)(8PHBzULINg z!2iZGy`am6krJR%k%E>hj1=hTlQ%%E7Ug?Z2B>-RX@`88CUzA?ca+vJG$BA0=E_i! zw?lNv_|L4Z;i?r@UJ6#Nv7lyEF-?o*vv^f8<);Fn4p;p!M4(co)UTw0Q7wnj6jLWv zuu8OqE6ZtLM(3a*n<`itDOE9b4r@K-^Nr+lg*31!i8aR9TvM6UFyzw)ok1F}Ro#Y) zl9iWaw=vgAQ%^K^RUWNrhIO5iS=D_NsWKv?`KTf-y0z64Ra^x@Gdlt$;$LmV*VLLG zq6uQnNT0^5f}uj*sy!CgR&Y@}6#@;_x;1A_n!4Ji83vcnrlGQ-u#=psHf);c3f+|o zc`O69Cc^2fVlmci6dP{|%TR5!L{z1q$&9QUO0vq(P=yktLe)7{Ua_fe8Llgo_M53< zZB@&Xq_6TXU&vsW*xAqiIyu~-PYl}G+5PS z%R{Y+PpA1qXVeNA)xZisHh*fHZLl$#X_mZ}3@HAoKmNnNc50f%gZhN46*qmUrdi^& z=H)$~X1b-2#Y@TN@zT>yEwRkC_@VD!qlG3_ zMXAsV%Swx1elzb)s#TT^I@Mn6H z&8LfBo5@#vm^E74Ocz&Yhh_wFZiVH|G%T03v@UCwR|?Aw71cV09cxv&t(CN<8?r8m z_F7dwYi+G*2{M}e)&^Shwb&G}Hqn~8V&kwj*P13`TxQL!eQr2ij^hpI9gU$7kiNi?q!!v8iBPqVu^Lj{VOh zt7KiN9dZEvFq+EN4O&wd8ah5(RaIzcx^9x`TGhHScoBTo7L)2C7AtJ4)~!10Z&^dB ze%2i{8jCmCv{N;$hqO&!*my~0h3Z%^?PhUU8c9=I)wW&;rVV!q4;ic0&>*s)<TaSB;(*g zlDGWP|MX!aCLzf=H%!EP>{-OmSvF$*Bjy^+J-H$^;YzY^%rczirduYTmspx8eqWfe zTa9&qxSJOzIr=c3YgQerJaJzvCM0LMP5diPxRv<`+h4~hC%Z{8M#f-&BtC{MmgE`M zm*on1a9|_-_m~SLlM_-_eC%BZzY|5+jC5u+@{=GVPqX|UYX;dZ!2ypXbv#MxT#|Ge zAxSGbNm_46(jX$ax}uRyD;e3UwwB(+PUb^msX8X&DArp_(6c^ET%8fmVEI{d!!=pf z{>E_2Zbn{RY~)>*jrJR^a=^%T$Bg{pBuRVY#CQ5bae4(u}CYE7XYPdmh$~hsORqFA(*xa8Lms`5C#H`!OT)-4IiO zL3SgXYx|hSi6dCCpXcRDPI!qEVF ztvGE`{TlN)`I76klpWIjl1Wcjt7O+67Xl;)vp;&7_IVSJbAoo<;K4lL;&~-pz>X`x z99Pq1xQy3}3cP}PIpg)L&(DthgBQNcETdTe4X!U!lou;zs;OB_oXL1hZ6ixEU*;Cn z)d?CWrrtI7n>oX4xOk_Qg>wZ5>6Yi$mq#fozoJW^eE$F53d;L8P7K8mEAPbz2gV*L zHegJWT!tPjpDqEds4bvBe_LruD=KjmTu$;3dbovuetl&{k}hb{7f9**aC(xIo+PFB z(g(_*4-(QMI31FXrTHLfG2Dq3(1|M_<~c2j(;;a;Ef2XGi(?pv7aVFVA7v!gCkuDBiMU{r6#dt=c5N#o*b5h@M!rw?Q7qpdv}DILRd#jN4Fw+?ZTN{-5+yw90EcEDucr{1mPB z#7CHE)hF(cyKxlX(u?K489sdFu&A#gX&a!L-@@P{N!tO*N6fS>==f@;VzfO_%d2Bn zPy=Y2AX%rjiKp#?;(x&zg$kx!gX9TjZ>?~n2*dQFhz3zcR)ec4;W04DRv5(;{|aM- zJW#eIt`RV(qBUnwOlRn)%3U-C zTQKOTz-JAN-8+`UFdJx$w4s(mc0`Lw-h*dIev3g#vJ1!eF&#))?>QH605V0oTp1D0i2uDNXNKEGmQeMm1QyoZ*AphfSo=98?A zC7Alk$E`yD&Hr_&&#o`KcA#;!9DdimQ|c3S8OJB|bimOv#cX&3{(qU0?;rZ1?EMTJ`Q?SI3gS-Wvj(KOBPRrRo< z%|^tMc#E2k2qy~M?q6J8hvB8n+0<dr%JCLgp~#?VmTYP}BEH5o zUA@{CwHR_SGFqFZK2G@5a$IrsG=t|L%d0Hkl`{H#rH$Ot)yU>;jSPT?Y0zD1X5{uZ zMjj#dBBD3?k_`H{GO~InBb#9?kp6R)K^$L~xirgia5>qHMPHNbgr%8ecxxl`upAL; zcrwe3VVM79m<=CDE@i`wEFGU3eQVC}dUwN}v1F6|TIPn#zxOu!#M(yw%<-)`zB}tr zasJKgWByY{$y|^FYddkm2_q+>4~a*!TwKoZ=}(MY$#$8rG?U$iibm!sV&ol;cd&h4 zwyRLs#J?`=H6MnsqA(}C*T?9`aE;G#1(Wn{h%+O{KVtm~*5|8Z()F!tWM!6$yL2k{ z7^>)I&UcWPGfMs1M2u!m;S4twGWw$2f&y&!qJ`0KJZhx1uaOye5FX(I2C`khrY62^ zZzB^}dcWmSnw2vc{+TiOxSNriI~aMVmywg$-oy6EY#+<^N7??B&%TUFcb)Yo*b}Es z1HFlvJ;oq~`!2eN;Z{6IcJTDN!k(GVauU0KD9hfgZ^iNox9}LtLtMeyJRR3)&*JF5}s7ksH*6@}c=( zkw@hW9xUJLm8x-KJlA|9uZozVHK^nV0)eN4*B0P46aK`J{GpEa%e10rrWEAV07BPH-)93Rv zF$zC_BYzDvGEYV$rw1EpQAT$1Gjch{KVja_>Bhm3TGl(c^=VvO&u6n-R-+z-Loh{G z$zWvh5F>FzQR~M<8@Z&7ky(2fIf?ll525yK*Oz6XO2)1P57Dxw-QGmU5)(0yD>8_= zJj)g=x3m0{duAE;SX`J%Ux6#&X1Vkequ<42`y|U3y#9sg4#Qolt!y~zHIeYSypUJNk&%QQ1`s%WLLKUS2?k3mx z1=l!)UDZ9xWKfN#b<+lh6PU-bJj4~b#Bx%MvAe?s|K^jtURC1-bSRDsdV!nC1>WG6 zcVO3+?PW5mz@xG-FMJhQ{#C)m+bSA)#K)Z8&a&sHCO#MEUyVIpu@x_H{q`G!Azbq> zIbnO&cV~S?);DH-OV$@={SnUC&Yt)mci9b}NBDrWi z;On|3-of$)kK*;oQ_io*Ug|ink7sx?73WFRh=)XDo3&CkT~eK`Icr@PAf-&tRU(*?Or#j1O_g3(64FGLb^a5{JB3YIUs8iO+| zGx89=!`$>U6W_U`ky%+jWBpwok?q==_?4`$*xT@Bo(jjQK{N-qvf>nPA$wU4a4$=T=)`(&QF|AR?gSWBd!>aw6iP+^3Ifj*N`kMi?ibnvZEI93>wT1%+u4>6#ju{@r@*T^F<3>M&IhHw)%X_+n z;xTlpaEs4s1s<^Ra(tM({PRytMpt!G9s+f_>wl|d3~#UuscraUmc?0CWZAruiSNL2ILq%?E@$}@%Q5Wf&5(Ne zPG-eGmS3?vz_Js|4eZKl$4!BM@?;A-VEBK`(L9SM^4NOHW4Vai*!AXFd@!1q@7Tg7 z;w~33gbVnX6ExujtD}uwCbr+t_RZP;a1Rr|jpZno^H{FuuIt8KJGHylBq(3r$P+wS zl6fqY;!)m^M{^b5#S)JZKkoa}yz_p^`Y1ji&t>WAW%3V;HF6`f+she@tZO3jhZy-Y zSEM~>Fpp0`f3V!Zax}{WEW5;+^!_}Sa$jN--C!g40d5N^P|uxtAA~Mzu|Q7Ba^%f6M&5mX7x({>+M+Y>>=sXYR%P$RtQC%@uyv%@lB! z7n;pH*b4I=ahEwW^FihuEGw3y^jPyNuwo^*pe-Lzr?VW$vJv-8z51r$N-T@9bg|6A zGMHsrJ!Ag|%i(d%y&-AMAAi6otXz>8mOrvw&-2y6o6L9RjQzk4M$Tl}lw|>y7kGr! z;*rz0i?L5(>4em4elXPp75Rjh!it>16`uEdID=dq--auk$gaIy*rZ>~@-(jtC)lGy zcr3r;u1n?oRU2OO|7mVADAB^mt;`Kj(3|{?6D#xBZN+lWuf}c~%T+7~u>6TV)TFbq z`zqGRWu1(4a5;_pdX1t7uXIT)AF+$RYGdN-bu}`9WkHs+Scb8@%7gY{Gh;u6_l)x_ zcd=Z`9*p&JjY{(^zRX;Ku57rEGyZ}5awfaD0WY~f#h8MAVR?+@pje}y%lw|@MCjKP zXq@c$JOO}O0jeas0c!gW;_N^1OOnd=u&@|SUjUqkf ze~EBopg5x)oWU#Z!!W)7v43fyLOsq1(=M9-zt3Ymwe6)%#^rpn-{%|jIIkNHl|t7cqN zs$MZX)d9DFoOpqr#^SqB@CZFds*-AW(lyL~iWme#idd!l#-b{~;3YC#2K_5!;D^V; z6yFDu^tCIQf=0bE{B>>W3X59v7T*ggZo%_ubSdl$;1M9nl690C5B&fzHQ)$NShoV} zCqAJ!{C4`+PwY{j5@c4R@Hn_)iOi};Q>EqMjHoSmI+*0yP-56%fg(8w&n$QP7gjaE z#WQABYw%EwDp(7HjUKE$L09Z5kxd;!7q`I^yiYSz{)JVGZj^t3TI5B6RKo~7(xV4o z5jsO$c)X?xHBS8JFVm7M=n{Gow+D~*NZtWcOCIVjsh`*oU3e=nzxtt|MKvs0#IhEi z+yyxR9@+zW1RgtBGK-~Zpi;+5W>LS`@Gd2!_j~N?XG_+LRQNaI<3o7kEElr>Qu8z$ zy~6hicqB8uxmf}{K3#kn@HA$6)vr2uEi=83Qy+X-bCRt*Mv5KHJ;mI_i{5ubanUHG z0yoof9O7SUo~hsYY>0O*>gQMZmt@O=4rvYkin)o-&rh{Btn+J+_yL+{s_Ib|HQ3*( zl9;{aFC!a&o0`mu!r+PiL24GWMaKuLADEwBqWDm?lDUPB4^x|%>*)01YA5po*e79R z9bo=Wr_Z8(HSAUUw82N}A{+dq4YH|Qnv-npFs^6$XIBrIO$)QDXNGkP=ONx!zC(%|FZe$3(MzBB%L)evR}_yRbI*o!`FcU!4z{`u5IHs}Ms1x{wZ ziWbfCk5mhoAA|3KmoxX)9?GxQGmiq_^Utrg8&)fyD)rdEfI7o`5M$<_jJe@IW|n zVUs~IW?u%yC7vo!KHvjW`s(S}q&M-tG0`TVxGrDDK)-;}Izykq;Q#RG|M2v5Odk7h z`g!T%X^bpM$J8Zj1H2y!qzu-kGoS?NnFdk%0%#DWXBtE4nZ{6hrZJSBY0UKVrYn#J zO?m^WQ2G{9jkl(=Cr(MnWS>5s8jzl;0qL3Iz3B^}79B~KAr){s9a9GB?J53Rx_I(H z`T}T_-%l4$_J97Hz3T6D3YrD!JwOTGq>Crc5cuyddlOJb#tgM6J(EW=1e*8{v&P3X z=rR7Bfw)@2Ki{Y?9EiEbOry49U=_{2L0LPn`oFlzfB5TkOciLKj;R6N(lfqcrFx}P zP=fyHm|8R_9a9&iXX-NIDR!z;lFf>jJrlvR4f9f5U9C2(UgJPF67ea_-U+v9^Qo@R zvEm%|Z{o+yS#hEx#(sf+`z#?3X>+Qs9EMdS25l}?Lp9QTSH~06KcB~X1%6;^;Ghre zjWjK+q1xySl5FL43u>q?hII?3BEc}j%2c?Pn#F7?TuZIfJWLo7SvYZPO7u71+`T^%_hUefwfgsI$i-TqUbmhv}ETbEs^e?GgWSn zMg107S4C(}vc=*Id?&D;%E??5`~Xa6PK8BV!V>Yv^iC$#cp@$hNkRV-)f9bT zn2?Ui#p#(`IxSs1%?e@<^pxLi9AM^v3o(ED2A81VGMcC8Q}lV;7wU&7Dql^}@6Y$K zHBm=7!CGA3&IkK4@M7A`w|%M3ar`*&G}~9|8gpnIaZ`1l`AGm?m(AEr6>^&j{R8e} zYo;b^He)Id@w)xK7MCIg{`t69;0GoTRQON)=l|ha|KUdIn9`?b8l=q;uiH-rl1smV zVwSF<858rtWjs_R-ym$RzBkOXriD7D**7R#sLPs@Y+3Knsk()_&m0Bb3w~)>HNeH& znT##H>ViHOCfPiH(Yd{)iq*%yBwInf4zyH7HQ%)?t&MjxGq%)M{d8z;h+k;9p7CpS zo8u>)$0;{sE2^z{Fg0WAe{rwC4@@3O%jo@}AeVgpp9HnQ^nl$rODsXH)osl_kF-%C z`V{6{N7||~ntdK=t7>UZ;ug16_YIo{d;Qz07pyQXZmZsL2ByVrRY*Kl;I75Au$?NY zd8R7%QYlAJd)1t|f#wb>kvXh7?gRvN#Mc-o{Y*vq^$+T#V$-pAdQcZNO)JdR?}nfr zYLjMP3wx-OhPlssDpkl-i1vb9s;A1NImy--E=>vQsfsh#0UrDSb_j-+^n#l_>B_ z=BKz;ByPvt%SzXheN=DelHMD%-S$xZD?PFe` zUEWWnrQ-uZ{Z-^A)I~|EJf>Mn&_ETRjt>NVtI9EZ3!sJvf`+I%tRPMaN>pu`S4R;K zQwP%VfuP~)9CL>3RH0GocjjOJqA@W_{gsZ-2aQti((zvZBxNh2E9g}Zb%N0-UG+xJ#QRSHX-XQxiswVSr<}aCBGI!K`K=r~`tL_AjQCEs0 zJLR3JKEt%=7Cc7z>x-M2il*6s;Bl%D^Pkl$YD@5UsxNcWbEVD&PgH$NQU){C8y!DI zZDFQq_DAqk^$YWfdkQ>VsZz%NS6m1D5j;~>Aoe1IH84mEo~7!u!7>=614GAWVnY93eld&N@GnJ~m{D8VJVv?^{}zs+ror zx6mxp8TdA%9@}5> z;Fb*RPian47jDs*S*5Ohs`tN{w%9jHT?|>J?r;Vb!B@eLO$Ii(80CM%W&Y+tw<2XpRhQ zRl##?>r^Y|1~`U$Lf5J3%xyKVR|h%6f#5#24U|~#esrDYYkm9}1 zSup_$GI*;w$@bk%Ec2m1DXYF(O0vxb7YBzi@5VxOJZPh;#(Wl>0-nQM9(R0G{5PpJ z%wK@_f_F1J=~i^mX0JNKiXu>y4c)BnGS}1wThvSDuXOwt6hjd)t3&mig;A^#A>WXGF zPm71{Qs0-?E!Od~LjR`@8&-~3JczNSs0+-+AJM4Zt?pvE%O=X z80H(yi>l*0nUrDSiVFXHcS4VJ9Tioxv#;_L<4B zrmnzgm4|tZwm+?64J*3UdL;C;`jnaOv>pjPqpC4)rf(7-3H?nqW(D19Jra6WwPjAT z(f6y)sea6K>vgs5q8iB@aTzD1(93EnbEb?IbtUwQ`hl5l&91gxR~wk^i2oz>rrND} zn9WOfq5cm2UC|p}N)5BoO(^2uIKe7ZaDeT16mws1h~%&X5n)a>IOve55WIdoSNGc%<%W#RxrZj)gr^FEuAA`i+JMfsd4{ z3KeMLFNOV~N@_Oo55XNZn`^rqnNUmo`>+^;-3;N^B}nKH&BLi(mMk_+K^qR?^q%9J5(TU#siHbp3BuvN!4;8<>^s z&3_6=Q-7Iwy$%!)O;hjFal1@!Rn}@$!I`$bbu4OBruQm0^KopqQ^0oSyWn}?STM%_ zO!fOc+I*CyxiL`vaU0GWZm~RKrtPwi&Cl|W<|%wV?`QF=P6dA8e|yZ&l1axKkChDf zvt-q5JQ{BGv*fL=_kW{ki033w;Gf}Hp;k*&I_?}EU@4^8cVG#$3}!Z0MmEbK&F1p@ z$MB4nlgxA=SpmMlOb3!p;2YJ^ej4?3BH01OeKw$T{V(9Z3~QH%TQgc3*7#7tT=?~} zR+@+DufY>1)};7-DtA7MDwjFP@*VRioCm6de`0QYA5Vxg2U|9KwIWG>9X^)|wd^wn z7Jb0*54Gg1MH%`oCPOVA%}IKee4Y8<+!0(YUHk-ag63)ZYxaF?p_ZMReO(r6@&3Ed zLM?~1f$6hn$l$;6SJK62jrjlZ^kSxOmQebOnoXA^28LR0rsJ51P_N~oR`{k_sO7EZ zed2-KbtpsM<#ni~mgWy0p;+G`wGn;_h`z~4gPM-vRZzk7@wGB$vUExpUnjzw$uhwx zY=v-$Y!(q=nZ{fb+yOjSv$@OFHzJE=F=vn!vt|YOu8HSak@a5%9*p=mpZE`-_5Me3 z9sKM+8NSw>WLuUASFecAP?y@2WE+V^ZKZ!!OAzyPaJV(ABYwL6ccRy``v*9CbkgEjlQAg^VDX5;dzS@K#=Y4#1W z0{ z|4euq7OLKMEbwffVHg!qPq_PLyj)|iFI)sixb^l%!hNPtd=p`BBN&{vH5J7~7@W2> z6V8bhaJ#*^aL{2Y@EhT)xfMLpM)(K3;W5PCPIy3&1@;|;Bk}dkY{Q6?ge#!Hz4o!fHz(uW75fC?(VK`T3s1s!ebGK$cm)ReMf+^w zQmcsPYxdHprys;SV*gPL{=ld|VqYpe2rj&3Um@HXU6f#7BV0TSb-`NUtMJ$m`+DIq ziAp`R|0Ene0Z-5E+llG<|IEl|<4N(e7%W7Bz4l$gR}ufl{);eP-#`Jog~#hLv{%@Q z?KQ!^UwE*t-~r)C%?e0h*kc^nUfzng~kIsU-)7gylVVM;|i9*e=2nfUby$6vw^ zN8-&V$5Y`dbCoLRNEQBKqEeL|&xJexs8mhIOW|tY;Y}#VE8(ix%)WG_eV7)Ta08*O z!!LucLY0tVTSuVqD-6;Ed$6!wdniPB{yTDUsPK-Di8Beei6_o1y!sKbH;X7fA4ZC- z!r{npuRXi)_sDRsJ*RMaWVqL!M|d}u<{|b-;h)}8d;#H}I=xdkkkWhYZc(&Hjk-Ew zgkw>mu8xAjuaIG&qloZuWEkiuDVz@(20F?LuWv=^KND__S5hE+b}vx38m~ zDC(|KYPh4R@a|JejdQdV4vHZDM)(W7&N0=|UU($zXFECxU(HP1O?X2rbzv`Iryb*O zk)yXLCfY4(xr2U8+te^WR=VYm{=)Aj;q6_=0O98tGehhHg)io$E*K>?i{f@Ei~8A-B)qyj?pis<3K#qwKSu4CARLOj-)$X}gr|(c0}RJB z;qS1wbaf;PfBA;)E6x?}?p;BO??tgIRjJF4dBO#1S-|s!vj@<2y+HVDEKCXZg~I+> zi5Ce+>ZSSz;n*n@|D&+?2u`^-9E(LU=pNqfax4>$z@<~TV}Z!f(H)1FvHyo*-iA64i-8Nrw~w61 zgtOpxb@tki3wNo6U%Pjn6t0aytDL8V-=Kg%=WoJA;K4}eSz&+VpWSiMFzx@JT)@xR zI4_Ao^CINJYr;7&CfYi#3+I8y3ORole)%PqV&`MwVkODNe+e&u2dg=s3QyJ^e6CsV z|A|;w&NyC(!M3vG!q>u=;KF*&H^S?*3*QSDh6lfN;%*C1+y2^vc|cn%9c|D=_&%;94>-RP{u@55X8h*ps(+|RUU^EOKI{S;k6U01p4iNR`92T=@KM{BWRarSRgNRKeB4E%aWnPWTwkkO_A0dQrrEgkLFk zZ4f@+57W%GS@_`qrOLQ=38xLj8;-66!f*THH`-h$g~MUr#&tos4D5TkZV8Wf&2BOoP_uZE`NWYeZCmH7wifV-i`QKuB^gUQNR*cUg228 zFL61AlaRl6y(?A}9bmBDRZRGDG+v^2l@tB}@w;5rg-2@-H4>hqJ=9$Ifc8*3;liQb1f9k@*K0mwM@9< z2;!B(13$(2Gu6396vt-Mpjj`Rig`ZOu~9fUiFk`}Yy}$i+l3wTY1Ho&UUdqO_gyK% zy?)2;>e?rK){AL&&vjT7%VF@B>sR3nm5I*?{{xTw<+>m|3m*B)ML!i_#!xMIp?Fe*&A4*K}hsI0=@qK~Ua zkG|pK7T$;ow~UGtjz)Pcql)_28~F^Quv1iNpCYm>D$psal5js{&@ZZ{aCcOw zUsQeJO*D$5ng|a=1-(&U3unYE86VX_cnvB%KB^}(_WxbTFk93>F*u0~3PcSPzJXC& zFlwCe-)O<7QB#ETX%Ea1{yPxQeghT@XUs!yy?)>xScu-(nQ8xbz~GI2i6j^{2J<*- zsqji1I_F0%7cK|;rBSPdH(#TbY_0H{8FYkOC)^K%I>NO1cp-wDx4MP zg&eLIU`#*S|6gari^A@gVvtl2zscx+ExZ{OO0d5bZm%owPS_tFdK0Are6z-CqYIA= z!qxLoh5Uqb>IPZ^sC-?4mpViI_964|+>{`r@QqwlK(O#vx`m;_iMoZEgy-pa{DdLr zm#BBYEW$tjM(+cB6hP(c3QW*7%=*D#A{Cfj_+(zHP!8c;y281HU&EzuqVfoz&|Q{K z_~}^kApO#|DKBvat}EOH@E3MiF&PDhyB)$Gp@s=|mvE{dy%Q28-0l|HyMW85``Em0QriMx()zl#|ECEfKzF*FPQ7?8V>@SefMUkc~I4TJ=H zb77kvWb}gq#zUR;sQy~`el;3Ht%XmNpbE7S{$DMO{~WINqIggM-+gp<6yA)h-)ioz z!uMSkRo~r9xEWed&D~eHH5yROJy5tl(tqh5D!c>@s^%UkoV5wYe@XXPQOv;Z^^N;G z;VGzb7xz@*MYWXb>rNKlg$fUL&lT>60+ZZ}gg0VZ4t6gWc483YPO0!`-u2YS>qRjW zo5x-|{Sb|DX|WgdCevo&&`q>w+ont-`r+U6AbFE?lpkQVZNWg~yi0w@Te9 z!rqCPr=Pfg5k(F3*(dHj!oTA{l3?E_{PYp=e&G#zlphd2sYm%C;Upb@MEDy$$dCEh z8~LLi<;Q)B$lZFBpAbIbq5|ososCDTUZvadr-TD>dp$j0hDXzLee4bCc}Z+~d+h%K z`~Pk5CD#4~`-cMV>3g-OrNFQ#ia#T~_6l|3Z^C16@3)WbobZ;>l>Y~wy)GTo{=WxH zV|s(jxDA(J|B#^AS-MAbUNSt1%WH?@g7C|ybkFFb@cp86{eMaLB+`ewFAFy+MCq?; zcGB)Q@EI+Q*TkSnG0NbEaM|R#_Lcc8Q?DKTM(fo==63 zpo2ELQ-x>zhIQ2akMM%cbdT(n@V-~%j<>=m4=A>i*qj)59;7R|LSiuU2o1s_!ljU4s-w7YSB!x)C;dQ}X;IIERKYUBu}B}`DkuCH z@i|--gfk$0KG$bp3!iP~nnzOd>>~YkhdcuXV zQyg_P5O(PJFNCLH@9pYn5=iCi3Je%e)25ji40u3W)7QcW+<0i`ZX?{fKXFH4`nv5c zcQ@g_xbC{;?k!w3MyW^c0m2>dgz1rcNFbH3E08ZM6*xi+&L?&T)aR>R!ksWi-gu)@L{S7MzP|%@3(v;ZWpnQl9-#}^ zFPyg!9moy}x7COK!@`Ahi;oJ2VjX!CbzFElu1dUbqE3k7xxOqpCEQEb_>Ayes&Uj= z;q^NHyl^1mZJvw5TXco43ZKCkcoTJ9_;Fr5F?thqQxsQp3+bm8&7jQepv#au!jH7e z?+NFi3fUhBZ#s>=(eqF^cLecM;l_8BiuAk`u23F#jN&}+M6p&I_}P3Fcz`Rva8E|z z4ml{paN(O+*-Ch_3wx2if+v^oDb10>wJYM+G(1jWhZnDqgnObzaj^z1JcWh-sYwe> zQQ;xz(rir9@>d+66Fjm!7q z_CzO7b>TnbEUKrcrf|CobdRi#@HIPCu)c7}cFZCV{rH*5?>+LX?`|R->cn2-Zt7!i z^-{w(N1_Kjg5F4w<{T>gxDpjOOnBNZ*m*_?7u=&Trp5_xM*KL> zB;opqFX5SHnD+m@JE=y=Vz3uW>om_C;VU<3d!8@c;UnTj!sE65V&UA_-%r_>3lGKi ze#*XDc)Iq`dd+(Oe>j^euu%-E>OS5g{Mmf+z;gB>oE3ii3sv9)cZEw+ofjnD z2A8HeFAFE5z*Ofo;Ylbk)p=8RKJG3=xNd`a|F4f47k1ngga6f}X>?CGQctS~!Zz#$ zv!WgeuRTHqJQf~_14f$jFX1p9|F`gMaGLXlP4@p^;qnrmS7MNN0S%J3!XtGTSTg!N zl#F%YpvPZ$AI8KR`v-1=h3lxtD)DQ^;6UOD5^kZ#K&Fhc|4-0kAVLhn^%%%1d|S_o zkA>SeqZa29UI9*X<`tfWG4Y!xzwq9}bl=n|TnAm$)8q7tq7)R@J@g~3W(a@dZ8&Kd}bToto0Q6z*uZ(Iw&Evd2R`J*A>1i>`l@&ekcn2NZKr(2rtn! zekNQR^Ez+zbKwN+|IyK}h1X&sDiZxpxH`B@v|o^K%rwkN@qs?}MmETSSIweBe2U2C z`S8PZ(GkLj^W(%5olW>S3TzdfQ+Sb!(&rW42>YKM4&hM_x)h5NZUg&H(b3G<|Iea^ zy`tm9pd@OT5M5AsB;rR#mk_Rs3QmkJD?APbCP!BkUW^JZjQ(7>2P&{4y1Han#gg)cd6N5BlnChgza%rYnJnn#$@X!yX8-9%f(wt3&|JY01LU;$*=58f?H%_Ua zqT2}P!S;R1-chsO|L;PvE4r%~+=!=BY%k#zh(8?NUpNKvzj+1<@5i)_a19a8jioom z=@s^3yFDE}On7;FIv>#AhvfY~LkGGZA0-C;FpBHDM+;}ILif7I377qmZfi~u&Vgh0 zN6v}Dv+CeC*rF#1PePZac%};%DnK4i278T5C;UP#oFfJ~vU_>%78^+B@#ch(iyCZ|5_zbplZ;lxHJGjP$?QqJ?5mQol zBw8F9Q(Aad4Vt$Vgtyexx6y>V=@V0BVXqzoRfWGr1yh|hgr^k6^?!<|wkVeB{lA{D zS9_$P@Qa)9U`%7-&(K9hW10y+hke&=|5H6(86GMd;=<~z~;Xl0kgfd1H_4NKcLAb*r zI#5g&9??ViNSy5|5@#8T3 z7HG^m;XXKIW^->49)m9W*+IXfZ7Q%JKW(>Lg+JP=RIQjD!aZ|YRHK+(!mZIodmX!d z?2X)xrE{-ipHC5)gh4nf>Y(sXI3LW4IxM_tGF~}}IVyY&U3S!QTzJJcyk8k}Quwuw zKO>wEU3%1Ujv4#^Q;h0V=S4BdREu16MYs%X@5?_Wv_ADTBYn;8T6B|64d-Zyqm%2V$*H@w^gF!yBTh&NSg(=#o_D zd*P3Kg!sDbc3E1Qt(x`zp9_O7&1n;ZI%Z`PE`&j7bB76c*V8Do@Ym?VH0MXc z$A2NtE^OBg$|;;Sof?pb*j)d=+Cpo8q!_e9A0~M0!oOo7sqc0PKfzjF-|Z0&*hd^I z9JZS(P*8Y^-W@*?t_qKg^U&YW!u+TE|1Kmb;rUbyJQ&42J>`U(=nN|gr|1e+7H*Dd zXmeK;4sD3r`7t$wn}M%})D*7Rm>%)e3X%Q485E~&wZ-5dxK|AQNp(}f3do>;OkLrL zh{rd@gkOVyb=Maj6GM-t8wj7ML{C5(34ek61A}53hoJqYfbVgGU{Fj`G01d~j#w>) z@pD&rLefgO3OLo-MmP$LZx0BM1!H9uZZrtrm5b>rT=W`wq=#1&+c8KSj-JBHpOcGv z34gPRTF_g#5;E*pLb3=RHjKfTjt*!K2zY_UXdeb5i^a;U=3g z{@>VVisH;gGDsHQ{g%GSHA}er5aKz)Rf>`Q_rf2qB%UW+15df$*yjtUj-&Vm!k1#{ z{=a>pC^q22;<P-$PrORluP$Yu*o7;hH}>tq8A_7< z4qqL1y4@MhR2*gtT2tZWX) zU5Vca4;FUZ6RwVn)dc%}!?gboL?6zJc_0RLbq0@xS7)INp9t^O8U87}GMoN#pK$rf z^h(E5;niW}p}&RiV7_P4Jk!!tFNVX?9Ej z;V4w#&zKnDhfkGy5fd-G2k~!X=x-^Q3UxsR0%J=ESHwc}v%4&q_y38Imtx9`!Q-lQ z=~PMBxr@d~W#N_jJWy4bets--Yz^Uj#qm9=*!sf%Al?)ErSPYSFBRJ+RQCVlsWd9P zi$P<3CDco}FJ{S9M_=K$`Uo~a`1}}reIfQ+;e}Z14>*SjzsN&3xkd>ezzOP2)aX#O z+qh^vZi_XF9V-UIu#ntyj29j{oUZ-86JEEN2GJzpjMy9QIVKBl(e_h?181 z$$o}c6h}u;0m;Hno#AZZ(>lYs!nMazi{}Y%04LZN3%40byhQjbmKcK*Vv73Y|B7<(R+k~I!_?^Osu=Xd|e-Zu;S5`w}cMG?N$A-l2 z6JGlQ3z^q(P!zYa(aJ`DveH!GJofjIv4@4*VP21nJuck15N<@qo)TVXNAw; zb;g;o7lmiwb;gCU*MyHv!uX#Vds`I6km2gs2g2Qu;pW&U!td+i-L2SE;alM2v9E-; zU|Mx`ychl))9_-fUzo2!t?@YiVysp8W~+u`lLdyY8a2HHafg~!4}&teM;e+Lgei!CbLu^4%%gmCsq@=z&Z?^?L%RcvWd zwAC&uC;aXWz2#d$_%u8eBb5#)@r#)0ncrQGp;%W$2hlf;LZ6A9hdutcf z^C=>`Y8N#So_vm`T_fRN;h}D^Ukd+Nm^{>6c!u^+OW}Nf(==`+d<`Dz7u%K@`~MVt zhc&|0Q4B_E7j+hX1rG(rbrn9MJ=9ZpR2sc?+*>&GW8(h8bF_!P6+WarG}tih|E`=C zl__qh7>tFBGQ|xSzN|fzB)m?0XpHd1^R%*!6Ar_9p;_!C;fNySq3OaGw1;MD_R{`; z1}nr7RDx57h_aX$+mhKC~Kei0s5m8RK#;b+=I2ZhJJrz@$$ z!pCq(wYiUhG5^T}@3p}RF{t(#8Jrd#spv)Sv%e|~V(`Ogdj0N+aFrkE2E{YsprQEMQrrvSWi#mh|7+n~ zx`21Wqh?Y588X4;y1`3EQT_p$(0-%HHIE7i5`&lhl=>_#OgK0}sk(95h4XxizlIc- zU-)}nV61R?-Jn9k?j$O(sPN41sl1Y2QLI};cRI@mw_8946@*t~d);fVESw(|>>5{9 zxaa_Ezj1YiTMfjoD#d*zJnR~sqT2~Se@>@nZ+lU6)CL`d4`CWP936$P=medF4`7xQ zc61iL0FR7wbP*l_p6%!%yaRmA)knA?8r0S6NDxJZ{`Ah~VBv;v`7QS_;VQ`BkvmCv zTOzr1f^cDs3A~aitR~VcmotQ0;D9qTZjNyO=@|bnJ&Q!qbU40d9JfSxbTSQ^)xwQ1 zXjaFq7v4OVx@fC#84TKy&Yy)hEu=2pBfJ{9~4M%H14EuMx5b_ zM4uHdgyDKN?vn6ZwD@Y=HQ}uA$i2AR!dbH8`;>7HgzwRigo{)|hOgrO5{30N zZkId$7G8;mOxYbTgtuce%H#M)_z*T9hvT*IXIM$29dCrU=-)?pC*1A}`gw%+!k>A+ z!n}1@!xjF~LKL|cADn^0fB%o(-3}67j?JcoBUm^En@c%Im~eHhl$9NsgcVlCnvMwJ z0-NZ7lSSCO3M(6aCq)!*v9hH&vkRZYQ>^-q9KuDuqq|_ag}c<#?}`hLtwZ+>9l`}Z zM}y*B!X2yQPHB9!kG+v?VbCo$)~ASE1A}{xLc%$#(0=`iaAXZS!4wzXi1?E3lEUR` z(%w-H8VMhHM=ozHd_Du+Klsux?f*~K(W}s`06SLUZnonCZ^5K6AAu7UNMA_|2zVE<=TX z!#$q7?qR~s(dWJGBZQxWbGSwcSJD+4Ej$fNb#MDv;ZdkiZ~J&K=08ol%xGb6`*&jS zyY9nD!u03HB3x61>G!)MT+@V)Abo^uhOpy3RVZ2bb98YI*KFYz73jb-H=N4X6?lpp z3i({~#NgUrG^iE`-#$QJn^`D4?J&OP9KT3-*$ujd^Mi0DH+gKa@UhACrJ$w40e9(* ziRIx`zOKM|tbF*@Z!viNAAX06$Mo@UkwJQHxn8N<@gLGRUV&qN{1(ZtFw!U3cMD(G zM_0>xyrLMhnKIlfya0E@%fx@+?byxA#2=9OB;48jJpQoogk0R{V`~o#NQDvou5YSBjNX0s$aRD2#27+G-s;tAoTfI z`#-`n_Ruq;x59s8H*DgKR+)WWP!k!nipF2p!#^67=a8UvyiM4tYaAl{S6-@cgm4pG z;jF^BbcJ&X-_RA#EBr?a#($dAA&O?Y#!qGd<^MR zovnqhVIi98Xe)dY7amg`^urj&!>31K{7-ds7DY=GP$#;Z@LOcqB)XSyeHn!OoG(^H@9?oV^6~(Y2owmU`qTs;qSEvFEL~PFQZ*} zO$-X+h*i>kOL#0?crgC1a6|3Fhr&O@gC*Thgv;YdwlJE$#$Y^}buM}Eg>Yq@xK6~s zHcb2f9Jug&{5vt&s9l&L!k581xbQ@LfbbOULi+hOQ$YTO@NDhD3dCmrPlF5Zxhjjn745?6!e40@))syX7ru_KFMI)M42g$LpU)h}wX@DI47vM_q3aE9+`5Uv&8h#MBs1%HY_`;7-&SgVT`+$IK}Z=-qq zKjFTkab;6*kFW>th^&Y{B%Ey#4Z>r>EiuT-6+9{27-Otl!L!1xF@~xYyyO){G6qq# zg4czcd_o!A7QU@Bcp&^aZc0@v_(V7q9;{aIZ{aEEqH+aa3eQCsl`HsGxHGz-T0#6` zvd;q%vnYc=;p6{D+?BvvHSPbk&)NIlb8oXUB)e`pw{CSC?!BchGE0<%6qRHs%JAa(|9~r=xr*m$_yFOayyN2KTt>0R| z-oyrt98HWsDCr%Py3x?=`pi?{bIKoPx zlj3={1YH!*v<&R7c#T$RwaFk-- z*5R>=yN<&W;Ij-=f-+l&rz-xtEx?(IZ?FgQt{2UQC_Y1?&&zJzFzTrc940a;@hU+AoC{0^WR5&v*MNSL;Jt5)fn}tHx}_& z#oyae?=6bYTZQ2v?y&>Tp2ul;=S8r7P;sl`$Dj=)lM@s#`2mOFw<&%yfJRW2yhA;D zf$4mtVxr{!pIGKD} zarp*VTTVVBI4Ii>T47c4dGRQ_0W9Cb8&XxeUW&O|VLB|Np_~cqpXUdSGw( z(2=+Rkx<;`Fg&?bM{)b3aPnAJ@!dxlb9JYBibuhs)-9cyDE{_vWA5yv!k4jYr5_ELNjWcXPp zyoy4NxGRKz(`f);5FM7dj^*emjj#?F`nA(w#dCq7TRNSn_)}mAHjxy+1PsMHpRTz4 z7z0mQo}qX-F!)ZznTmTtcyakzO|<`S@f7aI57P+e+fyy)D4u-{mhfD~_rvBgJie>= zDr@P^Q{1Kj&Zb8we!(s}h4?*~>R~vPpCoYaQf&2MgaZ-ZZT zI*(GkPaj+r3ly(|@j{)>|5SVgOvOgE!n-t-Uk{ktjcPSIOwi|4OmK}x=zcAh_&UWS zApF8s*DLM-YPh)d4T_)K15d%;thhd?;VsEq6mJ4M@>}_>ichtNTmvizada1~$^2G6 zQStmGXiD!^{ErQ2Iwvc>V@LSrWpaw**{}>ZC;6b_iJ#!0cADbj!H%?O{kY=h&>1xh zl259Ka|td!KdtyxyZHQ^;-@nU)sLp9mP#x zklHP|K=B`YLI2+)`GIW`b6v&F z+rekZIyX{0=0e0x6(7|V)v~4H*3j9EYPGB4K7DazG#O$TVZl*u!9m$z>(N#`%5LtA zYdDpP5A@K|byEBYtoya;+*$GP^RY_0D*h+nvy$Bvj{{ts+)MG{%kW{?eHlal9|K{v zZrxiWymAWOXy~i>2I!8@Yju#~zHeZO1}H9>kAu)d6t{R2mvRqP{4oqb;B&}|f4Bm) zs54{i|9AZWmq?D(2$!w}HR(J^@$dKwul@f&4#Y+^Nh93Z4;#^B#e+V?`0C_-h`AcYL9^4+vPZD@?6SjeeG{S5c)%HkERXiCc9>d#D zQ#`;HL6D1Tlf%sm`z zdFK}u-vvXo!JS`MeB)v8L8s1dEB+e{(a!I@Nb%{AzGvqpihDx(9_7mwkFpX9zEqE9 zkl-JkS1Miy1b<0>t#~eo@aoRrD89ss@H@rZL2vg+#rKNK?9^?&;>C9A_JiW9QG!8o zgL+J{{rN`4&)Lo8Uli9sf88$mtK$1@_xzjU29H8rmjAAJxn0 zkEE*}d)V&QQ@qaBaYFI8i*bxtqPUHn+tpLN8W=n|Szqygk1*!O&f6*e9IAM5=a!01 zcj*7ClI7~r=18ow){0AEnEXq!qvD&Oga?#&R{Re;;OL@wfSo&bReXh=JMOOdO*?no zL-C|O(Es;K_E3*sp2F_7r{YO}plRJt@fR?cn^oRR@%FYm{y)XX!_w@m@&gp#VZ#qp zyw-*vr10Ry)rhpNYUu(|wO`B{ojhTia~cIPNQ@>A%nI*(9%C5&okwZ*+M zvLkCZV1^edz8yBNH#6g!}&ir@Bdr*KgFYLN(HR>biPXQ7j5CA9-VJg zJZYsdFLxfVco>-CH#*;`xO;n;4R^j*ahHn`KcaXBr2nGxvy7qtp8*8E>->^N=m;hL zPv?1xkFp|MptzA0;RlMlLmRmzxma;Wdo=rF#S8AleZfx^PqY({&k1Ay{|zjiCMv$r z2uWyUzm>02yxSAl2-hec0um~zTB~@_NW?!V{x?XhN!724&$<9{Y)7f0pW7MJvZ{{7 zw*SBFBJ|inBkTkc=v>uO@j<}Ah(t%l=Uj&ah!7tGQ?p0Qt2O)qU}(P%yD5JD0z5m` zQ*m#Q_`X$r5mWy^aT@INRpI6uHKJ9(&~Y7(Ry-CG99=a;@e2@t->S0||2hV{>+=;i zz6K>WQgKhf@DVV@onQ!7-QhyO(Enlo|Nd=w(&Se{NZUXvMa~0q9Bz&EqYW|K;ev-hymg3~` zEsbzH=yAK`yNXZ$5F}KEr++Da5%lk4syXW?D+stt;d8I1{kR=g3^@{Our70;gphNtQ`#qmXW zDdi8v*I5b0b`ps_3=;aOy{8xlZ$Aa?6Y6oJ6;U0z3AI&x z7f5JHRi)y~p?7ZAB+kkG>9fr_683H@9(K=EiRp+glXcY^l6FnNS}ylq7^Nb%>k z5gn`eJCM*HRmUrS8zfX*Jw)+WRzjyK{v0IqN7WgMdqMa9M%CGh4-c$}hO0+|kKpiG z_4$gs!4PXq)kTVb0txL@eW_v`dhAqvx#EVfntpfHXvHNhu?=0T_&69LwXD8Daqv5c zs9p6~^?1vQXuM)9Ys>1}6_0}<)%2>n6?bigYBpK%6c|s`R8LXd_(3?fQ~i+Qs^_o` zJt{aTJLzgT<5~TLc$77T?(vPPXB5Z5)V@(QL-CxS(3H+pd?j>7_jH`4xG#*Fdsn}r z_#kLA1FGjKJ_6dzfa*6GL;t@IER*%Fen%s8gdLFq)$c357^Rv23hHoEt1?aC9)SIIOT`QOz#z1G zSH1`Tr?)r-1EmcYxwu?0WuzidVjD;OUkSKRX>BG^jpU!{2)d zzZfyFDU_ci(D+H%}c5)k>qaIxr;|S@OB6Q+)7ve1sp4)pISrDb1SZ(&_hlO4FuS^ah2kqd!s+*wioXOqkW5~q zxGN0VPEKB{_(iY_RmmF_KLQLMP=1r*XMn+=xcnCNxDz;p?;R>$WT(#)6#rzW&$lUl z+cJ2k;&XPxmC(BsFX)Qvh?5jw3B&fW6_XX;GzQxL4b}ImN0Sfng5Xre{kB8=u;R&J zc$QQ?s(2=>f~`(IuDEVU~T1liXQ?ACM(`od?83MS@EIbXF!6< zijNcr`#^8BI=NIm_Ov4WRPo(2P=w1A9}Q~yL*;VC7r+qhhsrM%p8*p5p>nn2{h@Q) zuJzZ7O&Ln;8^J-@-d2R)iAUM(Ai`fO*C`$Vdj5Vpydh2!cpOA%I&4&20}?bHeo;II zBxpKpQv5e7!T%~g!b;FU7libn{~u^Y7-Ns|Wy8Tz4XeaHiZXl-L^!N6q4-S@;jqfO zif;x>wmR8R@jt8tw^RJ)43uCK#YJF8Mpo`X82kVEAi|NAJ8OghL^!gtx#Ce^3Aby# ztKwm0D8i)TGpqz#EB+EBSlppP@pLP}O2zPvc(@VK(c%DmzY!q91|6z3!hImZ1|4=& z{F)Wv9*S?XBHT;yKdc0MC|(B}mx+%1C?4r!Z@Hi1d0=S=SN1|o{r@i@;=z@DHNxj0 z;=z>z6#o}Y@#-W#9Z6L(+lu%I#lKh)AEo$Z5b?>CgA_O20rB4y{|h91a^(=fp#La= z#bC?f4yZ=>*oycJ#S^TE&r&=DOzDmt&Q?4SOzHdWMkqc8EN6?>BNZ3HD7i)J3luj3 z!_iAER%i%2b6k5b&n5(pG81=G8>@^ZzctATaQL zyW15{fksx=VWQ%vppBJvxJU8x(8kI-+!vPU@3ur!HNsNc$R1Wa%{H<}6<-f+WJ2}h zichp9dRp;xTcBqZ?+0yUX!Q)mt}S5jf_n6@C45owZnlK86j$34&Q`qX0GN1G&ry8w zj<}TjhT^sGYgDVZ6uah?Q=w7i&@l`N} zYti}-#T_Ri0}eDLV&E8)`> zprvZ0xb^Q~yIVI_y!TazcT(Kj>bbA@u8GKC3&kheM%_~JgLatTN^!ryw%T&_xEdH3 zTHQwRZZMrLPPSE?gxPX&vZLZLcE7;(fd&oPL|ekH8eV1_aW}4rq>7{Do!U zM8(Gg1M{ngFoyoW%`?crsT$#IVBp>A(-mK388}n%advz#O!3@Ha6B+v@x^vLFjDcz zaVUWc6#p9-SX6xxVeJ2hSq4UFgz3P*XVo||q*nfpW#9_MPulMDD#aZy#oqEd#cOPD zd9&i)|3U`FDqaZ;tg0Soae$5HDa*iZ8sR^{!1vX6DBcm~_p91YQvA4WGm{k$wQc4; z#n0F_Gga~VU?+a5eoXN*V3h6rTfn{!8^N#V^_LIg0y% zmi$uvn&SIGD@@IsivI}=mejnf_*}3kB{d%c4oJi<}Wz!%~fKHFOp`RN!YCDZKRy zcqZfv#ob^?HMHF-#e2*(rg6<0#nWy2ZxkQ)0;d07@r^e956!gyKg|-@s1cT10>3D} z%o5n7xZNyd;J=FhWz##b4nhp~c^(VkDqdyNbY9=LX-0>h7vIUj@ zryc_!gJi`4ipN_9`YCoHgC8pUD=s+@88}4oT@c>B;!wqHECWX<{yQ*WIvl0AH!u*a ztvp6OE(QjMRUWH&u4Ui^#hoF8k(DPY?q(S{Rq^W(-o4^<#Yb2M&QknuV4y*VvlWlP zFGjAdJWoBw00V<7&sV(EGH{XN|AP!puDnF?0L#E-ikCt7>el~Me3oV4YQ@h117#hq zReaq+(Eis}-lQJSTw%`vDZcOyJn=YI@mnzNf2ZOW#fw3Wip$3-9s`YTUirTiub*a2 ztD4&szXxjhOWTQxR|Ye2<8hLDjGm1fiT5hLz7h|aKA?CZ^ye=mrz!4-Yd)2aD&7vZ z+qY}|l;RgZFs8ERX~k1uR9sW@oZ{fI7VwZr&GYJU2<&()t(d8}V-gr_|B~YC!F0|m ze_8Ratzj#+X0GCukiqbF^AtY~={L2RulQn!e|Y5^f`hVspgV0?@s@a$-M1a$cNF8> zMGY(7Q~WaY@5$u*iqB{cT9aI;c<%;?KTy2p2V7VDQ1R0++iqU5m@)MKBOrt36-zY2 z99XfaN-kBrZyC0MPZZ+=9aYIs6(9Z^Ev}76^c)_3zJ_G#{Pdg zh`dK~rAEL9GXbzT($x6*O0j4|McPw(zz8KOP8Fl$U7)e1;~O#BYfcgA*bAh1pDqalX z3zO{>ue1f|sJJoUL&`fT#s@n3C2M>rKV=ZR2G4kQu@OMSz5C(At;YF`W+ucYg8x&N9zJzFe9Xq(Gw=rtL>5LTW^^!Ss=K#8*y1a8n!l4{ z4y)PQKg;5|rVJ7^Gkg1YQhal38zi{5{}AEChIWowQM$K3o$+|EoQOZ*_@@-Z+wk@F z_P=2K@vlfP=;5zpkLMd8!5;qajQ6z}^ziE*Y8f;YOAHX`;df*_)DrCJ@5i_tBr?a{ z$3Hd&&nw;6|C#Y`Ent9B+RHCKjOZbr6_obz%h+R=Z=fpb9pLYgf}gE-pnn+S#lZ1J zHT`^iOd3vaBu;=j{HnB{KZL@q!~zH(W$`Mf?$=ntgZ%3#JaJn&O5`B_7RL7g4)(5h zkUuenKr_?df0PMO8|d$U%=l)o6W^8$@DC}oC9oMbGY9+MrNuwk@7W5&S2+~_5N>qi z%8=pdH3R)kHvTvRIDn19fqvp}OfWw23hdj>fCvpO9?cmH^p7Q+c-gj*f&M5MCtwED z2nYIS+3?GeAUvKkkQtcgyjl+qGypwfXr8kHPDU@OIZW}SdNBWAQFDZPd;k$v)EuRF z512Tttr?_v*!M7As2QwyHsB34$0>f&bIk8G$NL8yfeg;IRj|T6(Z7-~H{z50=@vs3 z1-6b(^5!EDNdi5)oaBFH@p$v^U!aWu9&;pSAn}Jps$__NrwzZt zO62Y?L;UA09-S!q35I|rL;P152lc_@hekvEH_3xVezL#N;(3Ndc(NZm3NxH%NQ9^Q zRg5Qrh*#8{?w`PzBzT5@Gh>qAS^krZNrGql9}$N4pR5Sa^$$6kG9VG2$BkyJZ8VQ{ zIX?{#FHXnPQ^KA1@kQk@{M0st=Ue)t6EA_9f99U=zh`kUI`JNOtN@QC9HH)i&=8IE zS22FE!m;>A!d60Sibwi*2@M+|Y02OHN{dGu#Phmb;2+B2qy-oICs-_P;u8Nk#DNjZ zcB%grCm_AO)c@Jy@s{9cT`u)IAA=c=Hg~7$bvwcfH163mEMGcyl+{_C8&&^MB(Aw|$2AdcWSWL=YQYpRPCf+gm(3 zapQ70A6V~3-)B4#@NR%xGyV!1^%-4n@;fsA4e*74yD>ft@YP*!_In;{`@hkNVc>Bq zc%&PaG5!IRz>0iI*D?Mn7K_No`L{795&z47lQZZKRk*P9R)3+zmnZ%PcroBlDBRMU zyNZp3NR(`uS`iWt8|J#E(Omkz0bdw zaAJUE=s|xP<0CCY5Bk$BmNxNFMC4QbS2#X3+G+k9jH%HE)BJ_(K^Z*kFJ(*_JRE71 zkN96wxGiD*-5&9Ovsf5-%MCD{7=F*!`*j#%D=~A$?$2v$qA_$KI30w@%Y3c`@@1p-DmxAjN8wH zWxb+j{Rxb_0S++2Q`Td2Vj%2b%yOUgUtl~K@EpK%8UF-*#Vq$Z|1HL`pK-+Voc|%? zNejW6>^8&yl<_pc{|3B@F?K#Hi=X$uV+?&yVAg=g&+M_hEo_e$zu^DD_-nvx04Gi~ z@JDL+*lsiZ?iQ0}tkZ3_Kjvf%7m2(UX#?~9XKeWB#A!I>a$omfVmzt^^#60fW4`r} z?(_}6)hS4DtQ}&V*zFC!lCZ(fWkli)-<*o!#K4&l-korw>ndaJNWA6uv{(i(Z~22$ z@S5Vc{4)qAf}j*j{I)-eJ;nfD1Ncsh$0s(xAoS%f@A&sJjzMQMqT4(E!xl@4-;H!O z@A;DyQW#II7+4eSd|;bDaP?n-%Vde(_L>K%LJbzoEq1)nJ`oz#2cah)A;_-pG2YRDFx-IrUvmR2SCH^;z zNsT^^wCbh)Z$!ZMj%RjT>c2J2W{{vZ^r`;=V`@X6`kz`X^grV^5{PYH=C7p$R?V83 z&wV6!nV|tlMfcDB|Jv~J<_~Dqh%r3QB`Pjj&Ul{F80GgV)Y=lwk%Hps6&K$u&25SKC&bZPtxYpm7aTmaAir4xF61EcS z-u)Z@pBArjr~u#k*D)rBzx8inOa=bdzvFD%|F3eWgx|7=sF4&G2_}*D?Ebxq5JlRj z`#QxW(jP6p%+N$*Q1=aKct`}FWigar5?q)P0rfnJF~PrW325qd8Q`fF6T>|L&rB=f zM*kbeB$18&uZ*d{8~sFZ4%Xo+heWiIIi^N;WA_jvLx{WE_;%`KCIdb>1wRUSObUJ) z@O+EMn$e{&aRI!};_-G~a7SXJ9~7O742-vy4Lx>YjKgNcHH-&Ct4Dkw~; zK;aiK{=GBdn;75t8R7dFdp#`<{F&^ra6Lu%knw#K!C%MNfzAUNs5_h(et2KP6^uth zqr~uDjE~u$@Cl4ZZz6mt;}iNL4mSF?vBw(NU_b)X84tA)Hu~=}J|{-uUo+l)01@=g zBZj8A6kf*o&4Vd?PsV4$dI8culJU6%Av^$&;p}m72}QU;A{;{m9$@@7Otp}}D~xaD z@Xr|E2a{I}|CRB6Fxo}D{Rm?4zJ?TD#ke1Y2Nq>W!I&W~2Wh3^H6LK6F;ipx_HZt&b6ILr%c`eZhnqrcQ0X z??7Mrkk>eOyQl+060kX+25reoLH3f8-j zTy}q#$$Cnb(#1Gk96mct?7RfSP^5D(o(u%~dwgkeU?iYD45~0f6pLU-fa$<+!Q!@A z1CyqPF$@GZZe5I51OA(HPXtZ3O-nKqf~T-R#T9{4f|yAxBf^p{8ZW(RI;L(bDws53 ziEmwOS`-jB(_xJRYv^fiQj&o%7Ipi;x)+KPH6Ba)==;PN;g~^Vi&ZGPF~F7>-ZQiG zW9FMWu(XH~8o~%339Nu|ED}5n#;@pqmUZEq_w3HL;qVZX#X!K~xS7NLu5B}p5%)fr za3kF$*LewReF}#BAtMp-^AS;zf83x^L_*PU5oJ`g*|AuQ(EX@2m=-LtD3Ng1w?Ac= zjx&{r;>EO;-(>BVV}vm*KnxhCKWe-Up)kW&qK{)944^- zPakMWq6RU_SQJxNlHFh;;{z;%G4t}lSdh3mlqH+)5A}aITiT+xkkgpi|2;A!*RZHl z{gJTrVaGGU=RTrzL^#eFI%f0!Z0G_Y_+PecKU{-E`{aJ3K_ zfFHI*9X`Pzc+H;;hNzJ+L^y63ZO7=Df7mK2GG}n-Ch>#95)_;3J#f7mK<%?HacW6!+X7~>bgB^gR*;N?F|za30HkfD~=g(oX)mB!3V zjVN3gZ)yt`qk^FRr+Fxbksd4&AmN+1Tc&uqao>Y5ew^vS2=8-%kUr}E(4OcbgV6rL zkZ?k2Out)+WcmvuB!Q5TC>DAJ_@n-X8Erm+t0EUh(laVF+%r_QSOBR1Oa_EdYQ)0g zNuBrGk*Y!@n$thvMzWu6Byp|^SM@qt=V#l-7m8jmNg~E}B5oGgp_Xe7{21GSXRe2X zci3plc15??yucPTps^oVA~r;1a8j@x8^*X1#?=r>e5nd5VaS*;P6jRXe<{5HF#czc zpE#ojSe*p#YAs+~8I%mg5=OD4i!vw-NqoXk|D^AsD-lUeVrF(R)#XAvL6NrMm|WqM zfv1w1!6Tl%tX+wl`3ECC7;PT_F6#egBmBwXpntHk%bgBcxVY(J8;fH~?Z6^tVzz4H z=6YD&!Li&}>w2ciI>be0XX_T5L#*kBp_grRG4oLgN$zypwxBWEDQa3c>VMosBZ#RK zcRXyCqM8DC(G{pRY0f`s}6z0Fkn&_B$hfTGlr-4T}vB~KlaLJ+x z{@@bOmnxu2Y)M?xhD($$Tr#9DW5i8qBP@_>n%MN7*_Y`IEi_`G@p3XY;mjAN_NjBP z9qE;tn(dtl!(N!$J4o>W2I0<|9ngeb!fw`Jxu%>4xuU+(JHKNK;+msYU;#rrlP{d| zi3euBRqrq%b?b5NBV0onTk_skC zrD+e8I8%A36OEZStznIu^R47u)4GW4PFi>X1jJIN1r*?43pLNmD5eMf%WWr!bB9ad z7+jvlI>u#eba5#YUFizMC5!DCk=U2AstE7xpv0PVpmevb#{7YSlDg!Py+mxPA)~Dg z&s>?Y_Q&PPs>gH3BJ(cy5meF`^%dKIfs6vk{KIxee?|s8tjI+_h?@Rf5w|p6rpTej z!4TqJ4GfF|)5xw96q$=`_grk=w4zUNm6ULmlx9>3>3LkMX3H1{{m<1)ZW+P+^wK1P z`cLbFDiSVvkuGFJ8(|uOyy=TGB$ryS&FX(@#Ld|WiAOd+#^aed&)6IzlUadxN{Gw(yM3;Gu~GvK5E z+T=dAU-rzNcCV<&bmcK!Y66Vk-^O#zksSYc>lT@#ES+NG+NGd`X<-*mN=&77OHB_u z9|^~pF!V$H4?RRQG62X^qGP`ewbyjTlv@@-QdEAbQ9rGhknyF3XPERwqVy2T|Iwj`uU<(P+&@90OOPFA3 zUdAq~z=DJY3#gSBUNRwYjU`mX5-R37YJ%0WV20po3v(m{$5>p`#<{JmNDN8lb{$p$^bB}yd z6J(1|b?dPti+D%|83%bzgX&x_t~y+8N=TTckP)y$#XQFi15tNGTAn>VfN znnl)y{f%IKy5W#fD{W@GJO`B48k*`t<4Ie{MK2Ih=8O0z#S66YW#_Pn`~R@yn`bnP z-*Xj8HfH*>=x6bcOhbFjz%%{d!*J05_4Y@xDYh%033IkhP-5oW1f}LUo1l)l!^W#? zezI;o9$3_81{>%qS-vqL6_ls<0Sqe1fXG-b|DZCBKuUU2!xA3p{YD}fy8NyOPojEsl*1tOwC6GY=vTks-_ zR??Pa_#S2$NgtT4B%tYK1eC8)iXkILf;e}-ZmkJr?a!e*r^c3BBGT4udK~`~N12mH zDoIp5MWmsg=VCeaJ+h*eg% zXe}si_Olxcj`_qcM8wQxb`dIWYS>>^#ju-)?NnWYX|URsKlGq=Img_(4AmrD$-Kob zO1r#};F<1rg`>zUv!`_()7XZ`48;ozDeiIx9&g7L zX?$tbee40;xcSN+7jn%UTM*CeW9>wdInag|o3(tLD0tIGC^3C(gi_PrMyO-Hvk~f= zg*LpN8DPWf>uK68%`lQ*P;iE_nMB8ZVD*Xzm$Kh?T}xV4%Z2Af&LSGkc9h2 z2nnVQ#xUb5dmbS?0=CNT_r=Uvc9kn`I=}%aG_`UbN$69Xpo3B|)c@Z(Lpj1B5ie!} zg7Ksk63m5D31j1p;wvKsLmXIwR$btv6i1L{G}^ZdGsGiZsSHGMG{Y!v#ruU)0Kkwx zlt`-J6&C4qdt}2gQ7p%M_pt{cAe}w66En^Eh*vS|zt{!YnE0NL`+aTQut3gFm_INe z>+!@{+~7SL^p`Vb>m4e&oFftmi55sYIcqK_GSknt$gXKmkxeqUfxtvO z6lZ5FWQa0~;y6z}T{DjLUFb-gpuR)G1JA7BDv*d2A#OxO;-8&>mm#TI#l!u-bdH2z zQ3hj$5>9Umviz2LoCsILp#8hdfM@2gfsqnRogT}b6cP5g7Ys!ojYo{;3%5HfsDDKn zb(Ni9xD`WnTbv=G!qSC|HKp^%sUD>FA^}pvIG;gtj2Ip|spaqvXH0jy$Uoe0kWDP{ zCk#6-%P60H0yZ=8$&DGjp@yO5- z;ENRErpFJ@HKzEZ{$~wH@pn~Ss27asnK2niNVhBDQk8;p?IZs98Ricnk;W#caVa63 z6)mR567`o1qW<~fXD}4-aXTTH5g`&T`}|P`qy9oK>Msn6e;|Y;0Ue7AB_dcxIMQ8< zzer9R>jmvlVsUe!9bmY6yf{aAc>XvVfhLtM?~aMS#*AceJ!e4iye*6e`oC=n=A$Qz zU0fg>|8JgwNP?93`6N_GIJAEev1h1JWQsbSP~q|D(EDcTq5jF~_{~O4i?^DO`-%yc zMtGOqJC2zh?Cw|Ge4fC@=$dZUxf~$W%;?Qy7e{kje>2 zSxE`$rA|7Lo?xB42KDfkOw7n66V)sgOT^U4C3ZeCxs>>+Q!Pv{b4m$Mol9c4%q0Vf zARdCF1fw{0GKmBg!@L2p%q17`+4g1Djq|h}4!hB@+`!IeF+u8NG8>LE5XGsJOH40V zBq&oi8tBB$@O5bT16q2CK_kR&GzNoF?44lZq*p+qw{e=;ZZv;7$?#V$Ic4mcS8YDD zgahNBBF!jQ0yNRcU>lw~<%*X^I1AnMl2ZY|{{49+ckEy^ZVx!cKnYvm_ zDAI{`?`8X=nDpDGFL|7)8; zlwm26oQlJ9eW+D(tdHo2T96tK+J9jYF&+^L^*EK#=E9=|OxYJC{civh5UiUCJR6p} z!#x^ooca7|fFj*5Fq(s2RC2EL|B_*51dt@mkR&`>lCAa+WKGvvt{8U?aWfgNcB4cd zwk~ZrVCQrb^a0p89W1Ngk#t{z<->GW!Xy?=JNA;8j_4F~`h%D~?DI&i{UaoMa}*m0>RbR7P-`Ed>%&E0!}I2Vo~85mM)L zsg^O9zf7efCF9X_?tP6DvB~91t`ED^}qJ&Mcru3&`^w4IdS;CdkzYbNS1rRkSL^KcoN8$!QLTa>Y-r zf^2;QhX=g%l3NR~4v_#Y8ihNWw2=sw4Ypv>B8t9C#`R!J79}U^i`o4_|FZ{#{!!6M z{HXsH*#YeT3st{D<3$o`sEVrK4oV_G9;0PM>eQr;Sj6fcy#_ZzXT-1 zEFw%RKyAYVxpYbi!+F4#`sW&+OQ#j-)WY$<^vk(Q8V#q$7Pgfw3y1l?%zSD~KtwHv zQs^Ot%>F+8oIp6)-5oZ&VgBzKArOry83=t z^e;56LMY?hZkB-rF56N3B3+me2GR5)U74ppb%nXC&xzqtm>U;sK;#9k+4+TvpK8rC(u-ZR&p z4GH^}1%W+enm$HLEs4~bG|q{2(nTw6V@tz>LJ8E?9>@?aYFDQ6dLWIq;r@TLmFG$* z1C1!bT>i9?N$QAgsoGWrtta3pcz=7=1nmE0J{;2DzPb^1GO`YU;W)PY3Qoshn^lYTEDC$RfPg#$U5oxWI&@~tHsW)u3$Vh4{ z-W(=Lg`?dlMs>CAU;1q+aWrBo#uCU;ENOI6hHnSMf+C)2uXKm4UGkAO2MkdEpC!Qd zYK8jeVnpTx5>5pPJ2@TyM+0&-DzR{dGL|$<#|2lz3Ev&~OzRE+r?1 zQ|ABa0b!&3Q~k5)e{?lF-=s8Gd}2JDlxB+u?LTvyEE-Vh4u9GC z+|I81!}>p;e$|X3=_H>ZS4LuxB%#_^&3%VF{@EWy?>g!=zK$(ZxC`k%WBe3>fL#7^^lD38>8AO}R@nc`87_%H zcRRy(Jidx!$--_qS2&g&WhxRCdgLD-=_G#`|4Kk%2{Pk9%_|y9?JIZTr89XYFY3}p zMvTsm|nqmJ`(C(qgl`@#q+N8&XcuiRpf~ zG1z}(AbsgIWP~~mvH77Z{_?u6U~%P9U2)}6UAZ?TH>>UlBJYX|fpj;fPrRpJC`vco zSP*IbGFwjF7sQcP)Ia0=Z@vUkZHZMsmL{e=V+i0`1vlCM(%j(Y&Z)8 zsQ+6}Fe;HKmQ5)f=3{PxAW1{d4$}1aJx667u+-ZV}(pbxd|bx#LIMir}au0uhBYGN~g`FHxgh{xUM6 zODJ)c01RlX1U$YWRm6=k+@|Mr0l)iK>x4PeQPmakjpt&PWP&AGVyH?>xhjJ?T8H^c zQai#SUFohxqGEuozs&z_8)!iWXR`@-w455B#sM)yr{Ce?qCNc%i(1wod3^f4h)=&4 z>*;r_GTZ;tKtbN?3^Qu-1@Wl=FCZdlNm{~M;oOq3`kyHp zVn{L+H)eKUN$N^ZDumDT$a}$3kV4}P2>N54%SUTmeXCUnQAXQ7{1)D{%6R`LI?R^m zcEq1fK!u-v5k{kzPSfxIMlT}k{o#PGUcsFW-ejhP(kX?a&zC`=w`0@e!TvwB?ybLe zD_TSakrIjp3=5KWNfqD!O21ZHlyRXrd&xcX=rU}KA>s6rWfn~0ryfoL{R^j9(LO-l z_ZHh9#nFBJD2~RDVu(-rFB#+`kS{z-23A73>GSwsBGjG$sV{!CF&x6h_+@lBd=~MK z7GOniKw$}qu>uGdNKY71{m+#_E`K2)l8fS8=_3B&{69({iqjLi`qe#QAYXWt9$~2e zLJ4eH26^b)`Mk|C@A)JnINNb{5!_W$q`s;n)j|50@jM$#hMc-iZ)RvAX} zv-45By}ogk$yBBH@M%FS3b1HrO4B)#FGJa)|C51+QR z^ZM|qr926?aeSEnM>&=5QD!t0E(4PAWpjx~>PnkbC@~%1+hKV6(M}AP8I?_s69nbXe}swLYWp46I^8_d5`5r>Cmfr^4uRj zR&Djagb9{zF~R6#w8UsB)2)+}u3i7nR%ap+nlwfl%{FK=LZ8?F@@J6RXt2(OfUIyv zwLz*<-jb85B*_%BWD-G6(L@QzBXUG2^SND8)BIH^3=ute|5IM2Bf{bHdQ_+3gX5Gz zU1eBixrMs21S59Ep0>mBzkE7LBFGvIMGS91o^03iVrHgwvpgotZ^=fFT1TH^NDa6B zf3Bw#QX}F#Ve8_Fq-9y&K74@sFCVp&hX~RlWC;%+Ac!(ZeTmQs-xZKeYiYE!)Pt{M zTK$iH_otXY?JA4VVQZI!q7AtTWA9l2-GFDk+njKLbou?C%!fj0MPutFL6g$(5K2U1 za{niMS}~t!^AObAZnP{Pp01bU`Lduv>JIaN>J;GY7r)>4p8fJNJRV`)@I6nlVA1&B za(p5z&uw{1m+VH2_n7ENCz^ab{}1bLA&0V4A&XD4+(!F(akUfl#iSU2F$wH|J#HU< zC95{!R{sklkgJV^Z@bADuoeuE{ujnTSV9r0JVYc|#*Vpg`bHo@6W~rFh}aXw+ZmqCd3%@I*r{LXzM!{@Ug$ zetst(Lj{DR{-vK*&4z^mAy`{11(Wn4X8q4a5KS=Nc)&N?&@HhSis1bpd$lTjB}+E3 zpXM!F!Sp4h@WzCks;S^(y!SP-AFqdv1nc4phZ7#|IIZ=53+(n;9W%wcbxreP5R|EB z8e7*f8H6(FH0d;Lw~Xig@Od9B61}z)H_zJ6D>UIzf9bCAN(YYA=t>8jv`k&_q_J!G z{bcT?!{dF@2y;Z#S#fRS(ZDIr?~g}!WMFvTw;vfKAuI``%A@|-w|2IW4i4{Mw%s#) zx7@m0NN5Y`SoM|?OXrrWh1F0vg_j9Br+Lqv`1kN{r8- zgkwvp3eN=8_~e78;cz}zLK(v43Kzl!(hc}=tIR8&VI84*7G6cdU}0*z8T}VRV&SN7 z2*1W#TmL9SwyIG7C8MknvV_wLNqDYEt_MqcY6Ib!RbdnlPNRv2ZVLWr?rQa40;ul7 zNv-%xqmmI*lwiK_)C^Jmgf94_{{M9uW){#+@8wl&SHH9zEn%(__5yJ3%8ElaRaCu)C$d^Gr2J?kyqn}0pYh8z1QvlTePy)3pfv1PxqUxGn z6*98Q)+nw1<<|Rc#ZbEFQy35I5v;-`u&o#p3330wIT4{n$t|IrB`d68TdMylB8+4t zB}*SwXRCWG7%cDQ>eaTgWU3XLtunmclRcv%)0(Gpg|+T*6djGfIR-%gYHRyN^tl(3)g=US(C4!08oNlYFoQ_p#R&JU@ht4^8U6dNi8$xd_n(mH@?3>GTHn8 zzaV31L)hy^#{Yj^#;As1`0#mO>|X!!j5*)nf0Z%k8~jgOKlK0q)7FpMdzoXuzp_fw z`u}Z}aXy14;jmyq`u~AF2_*-WLsxEEMP0dRC5uqB^5O6ruYCS9+zzDPFPp#B|7-!M zmiheQ6EBgS)%1)C2oJWFfKBh}BDSn0WoINaUQlSnLgUF^6n%v+S|#Bpq-m4f3wS#| z{3bL#)sWCpUf5!5JH+D6uOcp(Gk|MaCp z#}t-e8^_1>zjThm3`%&XRMz#<4%1i42D#JaGdKrFo~{+tD=}Cmte`2u;fZva&=g8by;%tqLK^DCcYI< zB7|c;b^{W=y2lq4axp|D_c+5M&ajv>3_lSam89fH`M~%;Uq)0l(W6?95ypgIln$lK zyqP8GY<%3_7tu#u;xPOai}Z52T)I;hV+mwtoGl#Me|V>i`sJAEW#5R9D_kL#lNS5i z2Y&9PqTCROFGs6ToH5m z3juL+#mnW->B7(Z<%wu=h3E1Y#>CAY55|Al1H!@M<_T zl7UF}5m5RV(ZCpyUf)f?JA-!opKl1YIRYdxc~?X}Zb6@Xbc|R`neoVkMXF%$pb-(s z2w;CXkVN_(H}ayo45?_fD`pmy(a7d${*(h9!;#N`JEpspT+GmmEI`M8EED!$vj@25 zdV8)YS3(K*OnqLYmWL6EAviZ=-=q!C0VV8LHNy{|a(EE=2qi?YeL-Ar-HQaI4-hPe zR0QV=pKMQD!S!MJbPSIz$8Eqi1zc-?5x}PB3YRGs9b}H_GvV^;&Rl*X_N2G4q^_Ct9=e{{ zWZfdO|2$lO0DbS@9~)21%(9b7_*PV8Qu-%`qyFb-Aj`zTrV|m%TT`MH>FSvK!>RYv z^`7uktx-clhtV?agZSrae9{@893lCo=Yc_5g}_hTm|hwb|XDq=udP6$9X2@ z@=VI(;XADV(+DPW;z6U@n30)H_Kb29rWsW+&kGVfOo!JsY}+d3L28|VCkAzOVi3)k z>_Iq8FSKOB02MHEK0x`v{6Aj_X`%todE3XTJuX2Jmms&~#E^;P#7!#z?*9>ovh6N= zGY-#;!fU^22|;VJ60D^^=%3VKE`on*IO>0)8Mt~cID5&3P8cs;VsUdHk00nxs|Q+P z`~MED-Phr|ugg_dj~j1&ZoCb287^NV)&h|Jhk6?2klIEOXH?7? zB{DKng4SMy^l0HBlt?sQK!zk!bkT_U;$*IqalrTdVkSp~tq#x5m<(Q_ z{&Pj3kxY1Uu{V`5o{W;EZ=pVe=bWk6`z1g|HdzyZen79cG8$o=Lw7R%~{Rq*I0i9q=Z^a71e3B3bw^Sm0Av(w{nmi>bvKJZ>hT2F8?;~X1sFnhWc1a^9 zf9U@uKw9zU6XcJdi%wSm)aQMp8AlVyO=^iJbxs$S!!;t(mT*T!c0{tJ1O3~wgqV(Q zNN2WoVj%MteijB$|F;RDG&*!+yNJ~=yb4Z@F14*-{wBPBpM}FMBwQffpaS*U<2&X> z=0b~$ne)uM=G5xzaBHv2olHHoi1Jtl6(sZJrs!HzKnsO%bZP-|9Q{yv_yIFA&0$@W z+7&Y+nROjygc@tcWm(w&wtK(%EnSo#nO=Cr&R$UR44K}{Iv3L$O-}|6*8lU_>}bLq zCDDSgWy@=rEZx-SJqj(6wBpT|EO)_#K}-+rU+x!XURsmsbW{RlF~f&Ua)pZl%M}i$ z81*l+(MbmR2oxGFYE933hF3iASY!1+yuL3cHp;Qoxx5V_{d=x~Nxt;@Rz+YR91SfL z5zOr83nf_Fw<>~Y=OABHD79-sFif@^3UL3=9vF(5diJ@VxLN)=*^8+E0RH&Zr!B~^ zNjy1UDC>i#+b^xTffC9QA!m3uXua5XNCq@hk|P`8(TiOEbm|`Ze~RGndEIb@Qr2uK zBCMBUe(+B&EG3Jk%jIwB;rL$&ZYd+VGRWnhS`cXeTP}fI8RYV(0?NjuEja35K9R@u z(uqilN|5QFE8|@L#@Zj4@yM+f$sh}-Tf}ItjMZPx|4PQWO7>?l#P@%4S3!El;a;&Y ztR>+MNAXWDh^wb;BH;mxJ~Kit!nyqOWthDnF#i*dwv=$Lbh-S~7{&8HasWvf$HB&T%2ZS#M8wmVK`U%w32E;J-yff=}G?!h`3qx+j0i%{9i1fSSD%Z+q9(F3xJ>Z zDck}|TS*h4O~0j8rTV|Et3bMQ=O8R#+$`bkH}R*o1E2Slt(0hEqQj`+4TwJ{Jmvn+ zpOZnJ0-*lq8Zi775&-@CpE7{@|G#7a^RER1@-ZthIP&nhw4Gd4DgHDOktJOCj7VVL zlnTEmLfQ~B(I?(yk+}@M35$bJQX|L6$1mion+Ne*QxY!A?SjRXbV2$DO2SoZI-?1e z&@$*TL*Yj+_l_J~s4eEz@qk}ea!qXs9Udu%96@PD`MAp_DgD;567w!hU7yEA2U6q5A$z{5Irg#ZpV>rmzmAB z^@sK!%{ZJo$sSNT1KTtl^>0fV$UM!Sozcz3v;Du6Xmb&%7o&53TON-ZW%!;^InMv_ zOGvUwL@N{_ZV{vL0jXj5d=70!;d4M}4~kfeid9YJd>~0A{0vYO^ZtJrLF!xxXU}hEakM0y=${^wIcHoSq)^Kiwk}69E|;hLWnSf7X0Z|Aq5tgxY41D}I!2 zDhB;4yu_&qF`kzT4nqfX%c!sFXDf!{&y)#9b z5`n|>F%S*U$B@M5_rIcbnaMytg89NF!$@P7=RLPo8wjUtl2LZXBp%d%VG+Z4IZC2* zqT!omAXWc28!^RB6dEteNH%Qy|36y-*)qm%AM)KY{f`nXR3e%2to}=5*z!7#GL#Q1 zBXs{y)Gd<{jmY=>XaKV1@uH0B`G08x(Flby5KUJg-g5n?5m5L=wnd+SA%&e(nz+D& zW_IF|IU*Xvhuo>a(Eq1<#PqviG_-O}I^nR5kYsY>d=jwfGxa|tSP%hNTA`Ot!gT3X z7W!wSw;BBp6V`?x>vch$8qh`kmlB8;gc)b!xRx2@p>OrS@C>62rAtN%Pz&`8`eFaS z#22iw}9ZLB=dVhLRc1`qm3}9Ki{az z79aF4^YUp6@f|?8jf7?WP@S`7bqG}@{!L8ki~@Y zpLodmf59B#PY#Fse=>ZQjI%THC&fekFDzr}oVIOz&_5~JpOZl*{jhU`f2F+inuU(F#gY#VY;ZIn^c)tN*r}JO9%Bo8X-zRa5P>%Ea{?dYC6!rOa@XT zV0e^(;PiO1ix#D~S%1|3KQ)6q^jZI@57;cHmQbz|i$tPsuK4Ot>woz(juIBEg!t-q zZ8s?O{m*ShP~H<2dU-CR!}~uex6!dJoboA18eB3=U?kbpzGUwM!B@B+?;BYvN?7Kmd{5XSTWwMwv=_%GQf z7aa2oA7~K9H^+$8|IJ0fs@U3aVPqNGevu@&)c@nH*M<#YV$py^E+Ul@QG%F30vM0t z!<}%BzlJ**N+SfNL97m_Tr@_#&xC?Ym->t|3TQFx>}^@r7sT|LI9JdFv^Y zW64NdENR1rF(nvfSmKFG>KZdm`8z_9_~HAXk|39Rie0ylnfg|A@W6NPyzQyMO!;3B~s~ei6rq`j2p=Q!pV!88~J#e@`sRU^Kn7ohoaR;nOQCsZIRN zz8?@)$z*)m3HyH}fFiXXjIohO8xTgMgu*~H<5H^y;cFMyvLzj1U(a(4xiQnv8n(Fk z2rQ}9|90(2?SybHS4xHnv9(JEL+rD9jv+Ta11yNp$MEK6q-g>Fm%;y)X5@s8w@q6c z%!luVH8U+u97NRu+<_pf)~1m`|MuX%0~zjT_O*Dh8ED;e%pmJFGbge;oZXAqz1$q_ zI%a?OTE=7TNNc7$)=v4*y%4JC4|i-}I@X0ZxxBG9;HVM-=P4`QW(a!OSE-fSz*lHiIz@1IIh<&QRQ3-3m9i4 zn%Z>D%CVV)t zuj9jR*OTCW03}>gysxtnbbMuTUuO<5a7SXGQw0*6m1trb1KoLvK~67V=`a9;g06h9YhD9YqjSnWXMagjIVklvolFOY9&^9`NI}}XsXYLv<=~ynw z?baP$@{ltg(p^}RG}l0@zMF zHluG#mRLqkt5X%51ERjAPSW}}^p-e}K$T1ZjG}+M&hD1cW@d>q2&x9@T+t8R;Z6`h zgxBjFWE;zn(rXZ5fBIvrcUVnp4cv0kkl zGq3LO*tt*@Z`Pg6jdp0P0Wk1>UB|&j*vw3}jO|^oWo%X4m|pcr3;Kc^>;*?5XSpq7 zFT!I|$JQf}URLjLo1mE)YZ}7ja+Z5-tOVlSUvI3TIvs1MPRH7kUB>C21$P(}=%soC zt^dP`!_8P|lwSSAxs42r*}69aV>s-eX$}v}k#Kuu_xb~4DDwU4SH=DSbr}He%u0Ba zu>P^!CQddzf$)&hlg&X8|F-&MFYW@usOL{Xdqx(z*Y4`@j4@!*nH{EM|>Ik$y1)?E>}>)B%gyLU37<+0D8RlnPiEZBz)r?CH> z1|`&>(G*t4JI!x^cLYrOKE-C(ywSs);ey!T!BAB-YU>PvHq{;c$(~HH1qhm%HL?f!)(GkIm0!vO0Z-YzXQA-(acmig2`gu$%bl8jBu5c zgsMEc(R5n?kf_y~%NsR{gZc&#P!)R=N^n=BnGzwk3{2>gjhbQvGq0qjb&DG`itpOj zF^TP};yZxFEC+WiJVY?n-90`7Oz+!?s`&T@XkzDbRla4b@{aB1nqClpGPp<&)sVF8 z1HhpF#YLak0Iz=E_(Tv@tHuLuhUYZ?#MB3Mxf$HY;7PV|jlZ-6i%Py>w`pv5kkIip zq&0I~a!+AA3k(z*qS1hV0d+;a?+=~Mn3@gThE9yv3!wGZ?XrP6`^~z=MXv1wnm4Lz z`+y;(!{cXK!?E5Ov(cCfy9|%-4TRnBwi5U)dVP)|}adN2>y06Q6XMBC=CA&1S zA}=m_!g&J<_;%?N&a-8X`Ju}bPJl0!{L*C?o8cj)NzSm+8V;|17k2lu1P*Ap7cvbyNwOvyMv|b z*X?$y}0(9ljBv;$S&^oP<${nzRSBk5l6jWS?t7`Lw|o=xAhLXH-kUc>0RvJ z*X>x#D4JmO|EAj#rxG$6Q**4PTU2taL%rm&wpV<-POx4~t|ipa8x%hi>TIfevgNd> zWJY{i9b-Q2J|lh`l<14@vpL@D)@^1MShxA^%dNYncn!Pj+5MGW$3=$L6qm5uh}>O@ zo3ckscH3GP)XJUz?9h9secP&0?*5DRHlS6zuFxn2>dCQII2<{RX6(B={phaN1Zg3(T88{Bz0DfE# z_6R*DKt||J2d(S^36Exf5!wDQ5JHA7g8>k_`!F8G_+Z92Fct=c{%cUR4I3KsHB7vA z0ry~-ZUj$kXUsG(c!xJO=ArM2uvrV{q=_-ZL3BHUyPQSY5XL9S;2mIz(e1#ZoCj0G ziY~^?<#@ZojBXm>4}dP#HMR+47~2H8!WiTem?d2)qt)P^1QD^WCbBzw9pV3giwTEu z-AWw`A;B+m71jraF5AtR!}q7E=>!iYw&-Tep5S6t9S>7ctcs$aq5kp5V<3`N5CJ*I z#`YbU4RkLDi;LmAucA8r7Z_0V?*Juv7UD|=68~h-PGqzmyY-7GJ~iTmc>0SDT&br*o~@ zmw#Pv0#G@Oc%wO)f8A_ue~{Od9EI~VB*b1)a_Df0=mBTVtM zY0FfeHSM5HK{slg8D<}7e)#JJ(`_~VdeKZ}GPBHK{A;#3hkwm654R(NubR&6_nLW` zf4y$%@vk?{HT>&svl4U*^LW>Eg+Vm_T43(PyeQ1t?wK()!Z03XI#$QX! z3K+}bucf93hkj~aW4~o)F=!EnE;qwqB!s`dFukE&;jfkEdk$S~HZZ+4=6g_h3=P(r zclqbHrZboq^!(l&#lO~@FJOd&em|OtFl4}A8_l;Lkl)W{4OmL_`_-%i#lv5lOb0MZ z_{(#eaXE{fZ(!<)ekINbu97-V5$20)3H6-oSqcrD3;0(fXXjEP*w~r)B_-b8S;eK> z(P;@?3KDGZ6mz@|&NCdZlN00YhC9)39+sc8pq}Sp@n6KC4kM^g;Z^rMk5glh!ymtxu zInM9#L$5)$9OsXCd4l{L_uPMwU)=3yo1^1+?zdpTVe;e@yY(NT&=Pk{FZxx-eVKpN zbJz8ac$^}(ckk{)zdE?Pyh^`1 zxo35vUsdi8(5GRF8h4jAE^D3E*3*~ci+33Licn_nDX9k$#vw{(~Uih zzr4WN*WIlSCh?s8-BC>`xVQTVv(?94#(sU>f3tx5xlLF`{oNjxjN=^aE*nE>2f9~H zr(cJ;H(KR&oFm)^P|<*`qug%O@R#Qday`fw+P~)vcE7eY>p91{7ja3BcTZ<2oalCe zW6_v+h`W^eKgAt=84*0qt+;`H4RzODPruG|@8-~9?o#$U$Bl78hP&6YJVv5=ZmoXG`lb53%Rdo2tgG4v9*9%nMj-IJvdxFa}|%iaAr^a^(pi~lP3$;XKD)ow$s zuxs7b-N^5Hck#9KE4a~Z^aTC9+1;6iIoAF5V)7g3y0_4;Tiqp>(60&Z_2cN*?e4c+ z5fk0%b+3E+z4Yro_y2B$U!Z@^18#3?JRRpD_emJJ zVTq@?`*M;;+@EdxaGb~7mdy1N?w$W7GEceB?L@zxc2Dd`zn*ocuBBfy-2Ius7u@=s z;zjokPBF{fyCXM?+3qY>z&Y;Yzf!$nDpE3&z$02_cBhg z!1X!BLif=Vh~9_pF}B$En>s4 z(LI=L-Op}Y7T2%tirtCyCUwa`3kS^J%~w$-aqoK8e9t>_6ZsW; zXFWu}O1u{~(62gP8Qx_9LQXwzdlh;Xf^pY^BTfn6{+~%GaZRu3vcxz@@wh+T19@XymNmfzj7~Fy&HM9@#Y>uo^8D; zgXmX#ufwDC3l>af(XUS4qTlFOmA7s$N?YR{zBB#m>ecN-zq)yKxkc^nB|DMdo?at| ze(miI-QWHSoSt4kuCaZ+UpevqUKN+5w-@8YeZ0;eQO13}V`_*@KW|4CW`D04vwyJn z)6o=fpjXqK;vMGQ#RWOSyNL^Ol=ly4w%GqWgS=<RkGLeqd55618)+ zcNH^pt@j1{1=oA4V09fM-sl~N772dc?EUi)`Zd;@G=P4M^NzEleaE@gdx@>a1n(;L zyWRVS{U&-FSYPh)c3}1=c{5paCVPjm-@V?F{ed#tzx%vrxTk->dxL*HSS?ssK z>&F*dKoEaa5XP--b+JeXjR^65EGZ6?PM1 z)!2IwtHFMXoGkXKcgVHFD$w(1Z^CE*8-r>EvNKSvAof{QE12C9OrZ{E>oHph>$(MQ zLfK!jCZpI`I2_GpLvalI1YC!)yPy}&x-dxu%VFIk*;-5&#qNhiG(c7#{v$0V|@H8h&UzJrTsI(s`TX0i>ZX*8L= zT1sd(n~g?EZ$~4vd-4#v;LN;y~$riD1O(e9KjoU?N3A-BCSr$9QHJnVAvNLf>oqOWI6j{IH47616=2@3*a!99pnv~VO*>)9ww{UME4)H;R!mAy#W^a?C-EB zU|;Y)+1wU|?CC&qy^c*oFh%V12&R~=fNTT%JQkvat^S%UO4+rTq>QazPqK3MsP{p~ zFcs{6OjpVN0miRlkDwma?8QR2g@^xY*yp#C@m6*{+-ze_OtPK*&6hH%Wi!yv*Rk*7 z-q^|B3fp@2iOb}rfz9}y&>prGxi_-K2!AiTA(KY;v;2=Zl})VQ&m?SSkL40-VZR$7 zbbu{~>>&FBy1rJnX#$NNVo!QsjSSPq{*29agzZ7b$Jpo4hPAWT+#l~eOLCme?j+j| z7rW9Tc!K?8C818%AC2NkmPPqbv5zB@Gwe@ylU^5lB$`k+`_T+SXW4V!cfPwPWE*DC zbUo}(nD{(92NPdl=X>XM^WQ}_8H$(K8idfxT5064k1YXhTw#kb-Bq><)Ah6aG2H;0 z4KLT&dh8yC3&GO)a#PsaB2;yTv2S@+VY!44LbUSk7SXMaYJ8u1Bz*AzU@qGn8w_dXD0b zU_D2338%>67|st*(=e_RIfZk{IMESY4O;R@ZZO`?QQQMKywTiQJjG%-d6d_mi;3lS zd{3??b1&ibHig?=K(aWlY$u_3?i0^}ac`dlt`l#DL@u&}WJ%mnv}V(}-!GADCil|> zs#Y?06ne9{`^J$hgko8(JqKGz9ZI#+=z zWN>e8pwUe33)E;KSMoK<7IBq(2rcG5y-H{achm)H&EmqNNVt?6{4SwvZV)!yGOn_X zWXriTFkZnu1vbdxUV&{cw+IK?#qp@oDsKECvd!b(hh9GS7)D(M+;kj?Lhe=U{&n0e z6t0M~OUbyHd-yV;4P5bRLM2=ms#VI}jIOVYTlyM}mUH{wBUHhC)=a39dkx#Wiu>|q zx6H$T)!Yr(-!O#xqHxn)N&nn(1O)*kKiKO$?a>UN$Rmc?jLVP5{Mb?taKxxJxME0j?dggIp^nY30h+(sYNo zaGd-$ZUkgUxMGmmF>cv9(rf3I^$*YQ{JJH8IdHr?FrK28Kx%0U5`?&`|&;#6fjTYw`ms3by7=8ngFaI!* zAHQ!R_>bf7$5kot|GJw@Bt8t>ukZ^|R*jFqwPNsPAQg*W1zU$7HjZrl`A2av2k>JN zRv<57vj*|6;`R^bUA?&dhx1vOE`%?~bfNrvkd5N~AREo^hU+nWJ1*-m{ygsdaQ-_4 z6TxdEsS1&N52!kd_xF17W1{(8UwJ}xfB%c&hnil<#Paw5MDb7N@9;jD{Fo{H4zJ9Q ziQ~_CdmHz6LOwHq^b+_p-gDsY3He;;CGp4LWja4S&J%(kGm{@tM;6KaiF*jm=KH3D z|5ErI6e*S8=Uq=fCXJto&ysWaGE6s@Uy9EP^Y|&?h5397TF`X)(|2`-uhmXYbGME1bPfizqS0#B_#XpJBJpOz<$z1vTh9-gqeAuUi3i$@e*73=Z z74a<}(P%N>f`hez|E`N`@Lv_5 zfO1vyQ{V6?`Y|;;;2AObdS_cEtgn#W_C6 z?>J18wDPOLoricCvNrw)pd*g2CC3KeG=0$$YIersr*~7OS@{GFq?>s*P z#k{~r16}0vfG+WKP?=u-7VO|YzWqaTeT8qwUcSn&+d{H_{W(9LwF9nW(if;0gljtJJVk% z!Z`>KCSeBz3Qe#L5?mQj3>HKv4i`3gSDRr%gr^WfsPH?AK1vwAnX(%#2*_lNkcjmR z6QbZRTo{W`BZOVBh!o}^ktkswRn^5r3$Nky#t37vcCkV?4$)-cUaavHp&6rb!h>)a zFTDRc1(P5gt|pWyJda?Kgmmn!>B2cI*i0d)hV+t!is!(8vxT3bm?HRKl2qXrmzE>dZCaAv`Cok8cN2C zg?j@CEfF3HCX^+#4kxr!XoH(z+s_~f$L(Ou*!X1cn({U@Fy&ah1<}eZV>)}ZHe&T1Eg0f zd+-uomRm zB=~zXaWkRN_Xmx(2w^xc2ZZ$@Bs(bF*+QsQSPXxMgl|!;HsNvjJ0e{El=P0dgt~nM z+l5s)Fvo@8AnOn~@0s;uP6#J3ai{PRdf$`6+d!v;1>m(a!j&E5uS<9Wa11Y)3&KBfwl4}c_QEA07<#=z5A^zkhv4vvuo-$+g_R)V ze&I0A)qv0n{2!;`Jr+Mx__m=V%cfrI@^u?vgiH~|OO+Q8urK^;aByL906>+8a zP4CBOV#XQIs2^j9HukqAp1@7%h#Rkvt-l!i7wH9v?YPbYMOTLRK6C%bL|l!yg2heP z^TWm6*z+OcV(@pUn2U@@iO*t^(PA-(cZ~QJHfxxei%`SG%Uu*ggg6ydh!lHi)Wt-J zBj7q(oQe=)#GgPkvEqBvXa`Rg2Z21Nh*4OaIPo4Fz1R3Tlg#O}`!%|_D86#p4WDJ>M|yHKP>Vx#vE`7w*d7rjg3$1D-w2PbBU zyIvvVrQ-LfN4B`_Ly|2M|A1_{7=#+F5HDg8b3|nZ>E((`G3pZSw@Bt%CALDCC(f$z z2>qCR@e{o13&aMvDRgfdGFc~1LY_t9Z8+t{;&L3>4dS2pp;L*Nh1^TUAvoG);t!K4 z_i{17vk;#CuR@%G_$$S+?ltk8h$`_3?1gG^p0_gY?}TC-2xO}`93gBI|J+Cx+r=v% z5ULd)MrG>6E^OAF;?Fpq_2S^qNUuSZTU-S9h{cG%QA|Lrd&QA0G`e3Lg|%xEQz2^> zn=na>_>gzcFw6l_N+FAb;vAq>amoWEJ0#8lY7-9v9dU_wK=GLPGKB5oA3(>&m&Q=J zI>aOKJ|%t&WiWtc>KBf@0>XPG`a2( z8&THt;@f>ByC6QYo6tou&THcSiHVqlBik$fo1p;v#G>m=C_X-zWLL#o5MaM(;0Zn; zb`+7nYvTTU(f={hPP}VqvNU!S$)-rP2qsS2xQ=A;Qn^if2~s`2c_&Kme@&xF(#t)B zrb`!J0RPRDBwsQ~mTtzxv!#nGNijtlIg3W!zsoy`WNDI)%FK~wq5N~DrF}FyPm0I> zm@nOTjb!Ok9!NVw>by*{Olg@5M7dCU!FxNopU2WLaN=U=@>x<`BIW)`C`)ost)r5zpH-Tg=QqV*~2c$m8 z4oZ_CYn9qA)94}Tek^;NOL_|HenjdA;~$ec){tVm^ajrCap`gp$vULZz~m>SLUj9` zk_(&lq_lE1>7A15aL1jII2`CMX*Wi@CBH6@o}2&9O2eKflXKFcJVHHE2u#jPU&7>q zG`)~UFG@RsE=lPxlB`!sgGHY-7+$VOClS_F=}ma)m!?2(K>B$#`0twZIZiJluR~+u zD=$F&e)5jrX%bHU_YgvY+ySnWN zG5mBSMRsl?hpF-o1f3>7ilFDn|3lDoT8ya0K{|iwsk*gyp<1D!ZK`)hqdPy%^{vJUulZ)|-P0Qug2zrHl z1wrS?Um$2#uAKKjGIq(*4TM(7uOaF@`Ex{_FOM8b6Boz@2)a=2M9}NxIs{!LpEyBY zie(w>xIxw<$+krP20@p~?Vg}L{8uK2VON*SJ<+6CAzwt)mGU$1k;5uEvzbt}JZXSX zjeHk^-YP$V)^eL17(%1lW~8}37wFCUq+}?7M>+^QVx8M&?$K{ zyqu9IBZMyb=9fI9ZvN|*H@;4aXXUzTLg(a+DndQ-yP&4?axf;jAdg>8qZj3eR}i`+ zyG|48m3#XL^~sMxc18Xid*Q159Y*`*&xU~i2IOxL>os{55Tkqutn7M|WW$wrVG*KqLN8S5#ONr6!_6>Sx&B+GW0Zb`6{c9;P~AWO2v-b$ zau}g>U;p8;5^*=lq7>h+2t_OJjHS&LqcnmSVwKOq29uSk;D9O0Zk+r$B_ow=t;xr{Hmp(@Sm!!N64w$Yq;pER$5^;2rmA`PxXDc`DCO0X{cASG$r61=YP5Bz1 zF6Jl^DEeGw(Y<6bPbrv1Xufh&0-GnHD%7AiN~MWc(98}A{sSgD6> ziE{gNl4U7tQLUxQLwM_ED?L#(x=a}~k#Fw%U4F!5-L!3qmL<6M7)01DNFExDN+j1?-VQNKvx@-OPOR_q7*#l zMjrkvRYrNBhY6J~pmL=OZE1z_7u-}Tdk|KYau-f?wX(gOY-^OBd_r3l<_$vIl&{b& zZ&w~d-D;IypgJY45B#@N*#HWzSMuPxLD3M*9;FMFX;g;bKG>@Wn`x5$$`{aUQbvF= zo0WJ}t3|myl`42ZxrmPOpz{5%WZUXee)yc=A!WlMLT$>{e-k>Q#N9&1$CSgbkgQ!9 z{1c($N(atHhw=x|3FUw2aypfM=$%yl{ytfpQtsbQ=!_EX)pPS-m-5YLB{%y5!j zRR-Pz|Me>(+zcoyP`GPK$)}{qsFy%AzG@Qm{M4^8%BdlkPEdcjkt`%N71Jqd0H)K_ z(>VEt`rl^KvsBj{Oy{Ui!J)tUC8i5dZ^3kd>Mo21slD%zaj+`yBQ#vywu4ZJTDzZ6 zsA{0pqtr3b8?7FM-Wc^T>A9FN^?U5SM5L)rI0tjo`?itAT=nrrLi5yryhLce>gxh|rmLM* zB+O8?ZwO_o?;?|hY8f(Fq+UfPi`5U2$r820or#A(veeB;WU2Z$B$BO$f!vp=1xRGM zIva_&R;YWCNsc-h+@Gsj739#R-U*&xrM`wt^3-}{lCRbwlLECEi4>~AZ<6gg^(!P& zq@G72#cDS$tPScLC2l+KyYSTx~@r6>1AIsZ~cG ze`nPBD0P=wic)v0spE<3&Z<9n72V$n)p#`LJ*tFE&a1_!!UeS)Rk)}=j*Ks<`fD_C zui6HGed?enh)g=^hF5t@YWoRQiE z+-y^CHf)#^~e$=V4p#1!p)R4`7v6K5!1OL3nP@B24F`w=hF zM6DFPUXsS2AcxbnVaRxWcZ66#i(o#*zeX+Izox>8%Zy5Q@(jE+^ z(WTlgr%9Hr?Z94GrY-CvnQOT=3H-f6yBn;Xqh;U?n5+GB1i5i(zhL53+Q?Qi&eO8+ zsWo2<`hjEx+AMHNq1JwuWb3q(?-DA~?s$PvvG&!!-N?g#8?Bzn^54+QA12RcUpwt=3$ytwq>4Y;aAx_8g5e`T@KKeRcm=N#>{bf&)0+cO}ULoyFmm^u`jBDf-G@LYnUK$311} zm%(+G{_jmR?C7y*8U1y=nPdU_4><3Ex`}HlNFTt38>~Nx3wOBw2##!so{0`RR1d%z z8l~sdc>TGU(R#pfay>@B1#Lo@J{}(w!}Z0;E<(Q%_gj%PVlG*yOTM4D;>z^f*s;5Q~O4CPz1Lo)nNhF)AC%C}w^Yl4D^Yx-}G@P#A z?MIVj=(TuyWa?Q@)96C|1)xRx2B5|IeP?KNiSA<)%F;i{B(zjt3*ySw6AzQjwM^%} zAh=u)Y9q8l{}zOrqyL&mvRwV9uVJD;cb?EH{lf%8dAbjN=9jO(iqQi713b42_0J$% zryqw!k-ptChll@)^^T+DW`n)}^jM;QgRn|%8U0tb%V=Gtb zSFwSs^;@w;YxF{F%&mGZw&ON^V-5IkyWWg7uGRN_PQldaw_{~@>bYY{R;kAUC^p*DzYSuSTC)DE7(>e$q&@W@pAJm8bMzU62 z#=U(=f2odSZFJ{EO-28V^ z&q*aWr}Q~s@-zCU_miwkufQ$Pt*=WV*;)PXxCPGXk3p|TpA5b8dJclVpa)>|qW%jk zF6o~lkzRep$9Vtt={iW|ihd)gKR~<27!kb`map*^D9q1L z-Xj@joI$k&qYQIMMjhr*4A&&ElxF;bNetus2{N{fP;@GeaTb&K8~;PK0*uqBR-o}0 zx}hK=^Z~LBHhA27!;O~_Oo*`(EE;OepeDz~j51c?;uvilLNH^DN)Tn3@p}U~3^yvT z5sEOn(4IsZ7Kkg#n1=^gwDB5bF-8w$vBuNj&dEkQ2yTk8!%cAB{x8n(#qN(cBEfJ8 z#*$eyU81qMk5H2FFt*ur<7+saX*`K9U&+R!Ae!06{inzx#aN9?EY;|_OtLhiEQV-p zj`51idkZtnT;s_pB%Eh#xrG$x8(pIbr5lxJ31t|IaqKdUiDO8%&=`+fagosoy~Rc& z^p+U6A*?JT6^Sf0G$i86HYTF1%Z%Ib1IXpZvDeA<3Zoo%d5-a4Jfd=q5h%aQm{3o8 ztBiC6ooA#iBU!%jCc-Z;{;`~7g+|}4gw`3GR=AOe|B8$uh_KkW2M#wFOV*NNiSZyB zkWynST$dRi!eO})k31`k@>;T}G=B8Bc6+WeiZNPk?8Rt}ape^n-D((Xz<=9}$!kcs z-3SBY*BW2GMzT7iF`v**BNCOVHod$UB+*pk+8)$g4_=nKLZ^!?zxe6MXT}SdeS>&RO}+uX1scm&=I2yo9meISO>}4 zjltl$EX(d9?7VS*BcTh%gD(-fX!K(DTrxhd0{`_I40x^2Sc9mq81EwL ztHu^Y-EXV|wGJ3zH<80@Mlg7dF_$4|U-OO+Xw=U52qdC}uvQ z*33#oZI~5^+A^B&=F=Ef{rwQLeNp>X#^c@-U+UYG4Dgr zv8M7Zd7f-Wxyjwje^boMh&s-kHiU-bO%)H)1d|(1vP5$(o~B7=KZ2fa9!AhJ&3Onq z+1vn1pKV5lkZp>&1&o<$8t;%S%?x*aNN|q%NCBa_ravfWp2^^d%{N)oNKB10Ti>%x1hMp`~+^6o5!#n zSD0U6>*bhraFc7kblr{lD`cz8Ly+Z}X{cMiIT)c9m>fbaG_yVPdiZahnU0Bz%&E9c zip@Jvqz&eCs8NZT4CX2|drabmGIJ0bt#UIJm8mcX-A&c1G}{viRhdUQvZyvM4kKBO z89mIi{_YUAnhU{y+sso?+-^Dnq*!YP{)bSVIVOqFPV=Ex3DukWCPEG7%bN-9F<-AD z)M#$U-MZKO7*CJ=<{PkWa+%||kYckr2;YHP%%OPU9x%HpmS(9Z-L%%vmT=z=B#f#wr>7AVa8x}I?XG;k;9Yb?O3N%=5h3E zXUr{VrMk>VK{?&#G91sd=3q20=gdZQQa$GQ6Xfr_`3`p31+yM!?V`Eq`uD#}=6z_9 zdd(@#WYTB) ztlgMHuw0uliDZ3^Nfhhy^`6jb!z6~aWFk4VtYcAx9BVbMRDbJbY|H@5?4Z#=E6F4j zWL04+2V48l;t#jP8@;10CdA6xONyaZ$0b6etZ0zuXe;IVk4&tu&`O0_O~IrWZmIhT zMObsOOp(^_O(cu5o<#>8Z4C}2S&X#;cWbN_;$9{%|4p_=hSKm9YXq+2IBOd+iMO6X zCJEMVWRhsz0bWS5Vki@4y7f8|nQ1+MeUxl1Ln5=S$B{^i6$d6swf=G;lQb(9nar`u zkjY$Y1~%M0>pf&L--DGE=l41QF8!ppIK_UySWF)f4%JS}XhFNTVfJBy9hmeRX z%PPX|UuvyHCfU{@WU|Z}jNQ82`W%_8uyT<}j+KK`l4~snW4f%zk;p3R2PBeb?Ls2? zmVv!hU@i3|;^DtSs|J~@vkoGYB5M;eDYjN3lMU7{_~uh$We3rMm0F+Sh?QBtBfE0z zG_tF({)b~%X*DCcD(iP7S8aXV>moNbmj4h!Tdh}--8QQOw7lK=7TMKWrO2+%O2={9 zX(i)0)msnZ3^iDTaqsQ1H0=3CYb}D_Yo(#n-tV#!px9(};;=Pa{LK_hi*@^PLIel)9pyh|6{4(XtoaC`%i4tyx~-`w>sf0Mf;ng1j$nGM2?*xAH4edCu&&;X z{_mpotUp~um#iM#XT8=J;O{&{eAxEoi@W7?;j~HSZdYUbCjYM2NB9 zK)dN{*Hw|s&;9}aINP-a4h8!%97=XS94hv4IMnPsI5g~`cvM<;FC02{7VZOoyB+=l z>^$5If%a_`G;xsqAR4z|`*ZT=Vussq!(oUW^Cl^V+MU?xqwG6hCD~|uDc5FVO zFgqR_F5IrbBoX#}EMlbnHZI&KI|&OGZRf*Zj6K2Kka_tp)*gZ8YqGum`t#T>M=){r zjaa*Qy9W*v?2TBQM0=J)OP6H7_A-Sv-Tv!qLNo0JIfRn!tq5VZ{XRlSv4^_err}ik z%pO8%_RZ*N=h%NkPdnEx0U6J;OW<(6JsK38Zg;_9hCL7dGVRb0$lpTy3HV!N=fU4% zdoDQ9wZ#4u4zuiMuQQ>YT|&m$_M33H%w7zK%k5ooxWfJy9Ol^XgNAbL+g6gT%RUG4 zS!Ks>Bw3!_4S)G|y~m%2{|f9s;IPnk(Ce+U-$Q|m?1dJq|mn++KnWS7CnyS*4wXM!d>?D<1t{wfzDnsj>fw1Gv?m4_?@2=i_W|w@2=$ zOls{YaC)6R=`)h;w0A+T-kuG;274X!_Sl)wYqZZmZ?DUK9*X|bo9%>s zBx|vMgx&$W5_$*iX6UurX>fSRF0;s@&Hm?IgpSx;BB5jUQ|Kbw-TzjbXWP2@@3@_X z(sbCTP_7g9c$|Yyy9DJrY5xYqSM5Qt?YFsmNN>Qd zfb5zb3V)3AH2nEG@$l#8xSoYW&iND$1!pXbB_|3F6{i(4%}Ien!+8@9EoUhlI?j6d z^LIMoFTj}w+dyXq`~^9uNakXKoqxdLaOVR!3~|=LVW_h^k8&F2JOf%D?HtC{JI3k2 zUI=s6Vm;FZp6uxON;k#X z4>pT)w&1plcj|)4VS+OY&+uJbmUIhV6Kltx!Mf50}+xxvGj9{$UBx{+~#lLX^JCk*7d&Z$MlMb5o2 zE_SMWJr3PJJ9Y*SA=f2NK5R>!Ks0V;&JJW;?i9ne!r^d_RyvV4xX8H5X@POIGZI&7 zjq@uq-s&8M@ir$P4b*n$4P;#F48XR|nTo4-r*jY)*E@<%b2K>fym~CN$I0~iW0^*m zQx4%?=Pd~LI~|ZUIo*&oI|fjTGs5f8{j1fE&l-_|9Y{^7`wyqefXSD+0wB)tYM;0 zuk4Q7`!o-zjjoslt=!P-g|La@vyVuegbmmsCV9+Nz4Xi&) z1J-%>Bl!RQ<#B$x%n08xUpn;`iA#JRY0L@V5#To>E;=IO&iDy;hDAkAiwc_%89gy9 zCO$qUY{H$9lg3BgIU#033Gvg$ zg~dh1MTL!zA2%T~X41q-2?=p!Ke_6LPy7GT%=JXX#rcf&iSx$RzJBwFad`)3?!CXU z$$znSt#QT+bw9<#M2sEh31RZsz{;l*M^2fz!WwgNr7E0q z!?LL2v>}#!mfF*%SiZ7M9~quyOn4Rx0?7b`Km;p75JE754IwK+2tp`A7(zHgHiYa5 z5ePXDaw6nH$c>N(AumEcg!~8v5DFp`LMV(-1feKGF@#8j;s_-W> zB19oXBg7!YBE%uYBa}oag-{xy3_@9icM!@Ult-w5@Gio82=60QMEC%q5<+E!DhO2( zsv%TIsDbbyLQRBP2(=OFAk;;uhfp7(0YXEBMhJ}&njkbqXok=n;Uk0=2rUs>A+$zl zgYYrJCkSm3+99+@=z!1>;ZuZ82%Ql=L+FCg6`>nKcZ41YpCj}{=!NhFLT`jV2z?Ry zA@oNWfG`kY5W--D1cV_7Um|>kFccvXVHkoBAqinP!U%+s2%`{2BP1h?K^TiL4q-gP z1cZqQUn5LH_y%Dz!W4w52-6UzBYcZ610e-rCc-R)*$8tGzC)OcFb`oq!UBYa2;U?8 zfUpQ*F~W}sKOrpH6rN@2ww19p8e5dT*?@lCzv$Xu;or;?0V)jA{!ufv2%jV9bFGi+ z)PP){@_hBug}yw&7G(h{6{OC%ENZUJf=?H7S=5O_^y#;7i^>y5pVr-19GiOE|EX0& zi>iXy5Op%dqP#Dtl<3Dwjki*cE06r2HvO(to7|+kk53+5@^|<&&!<0j%<8XrOi}-* zu1`!Q*;M}^iwZ+Cg4EY2dLD9QQ#;NobwD?D5;rTG8g@ac#6J{b3;tz31*u{v#pIZ9 z&aeBJOF=gu`ushKjPh4pCBS^jrdFQ!XDJ~){=)6gaWd4R=KW1Qj)Db@-5#MMMz=bP zzxk=KrD=Xa*n`p)R68!BS(MkO76w|Btr+$0e`19Yn2K5*q()1#=KbR@@I{P8xeHrV zPIVrY3^`3rI9%MHqYQ?`H0Fjhx^I4qsu4+ctA;KayKTb2k7$Gb2dS5+ZbTdUv_mV& zgdOmS5@u8DVL19!P`yAgrg!ZN_$z6W!=JY%OivYOQ?t2}Z0Zv(1)bxjW>cfNydX6( zi}G>%PfJ_7N}rBOmPQy^)9Uur;;!vX7a8RCmhKY2Psb@zi$-~pFhkq0#h+SDIc{aN;%jcU25hX ze+%<*TeGR5G6CyL=3g-G17pd+Ry5r>VMXMiPuWzoSY~dp-&$=^it#8rx^xW9&!&p` z&_eon#IpCH?uaU?D&AFU9mcb$I);9lPxUbm=u?n-3JXxhL28gRCIYT!=8F~mq~+z2 z02hHuy{mpD4H7kS7|lEC zgbGzjmIxJi%3shqXedn`tc;ZF9d!{{ zPiy*#CWJL({2HGMg$iY>?pRpKM4zcJXsFelxoFZf(rMbkx%_FGDH|#~&AA#NO-tRN z2ht#~Wr)_~ar&G14r?|_8ee(KFr8?LsNRJp2a0YX*=j&T4f;wNREKjFmo#-OBXon_ zo-s{qpz2$awax0n+sQ&!)tEIf3TvABEZ^!xCA@xBbIU?KLSJKqOtw~*6}tK(*y%{~ zj%sCDsT=)`RNsj;Uy9~4)>IcwSJre9O%IE2r7pVY1Eo%2#d}BfLLwUb0oaI1^R603 z8uWf9syAtTmbGXih8RLRyk;G+s!5j1KHb;R zyfj$VWXnUXDV0g{yDq2`3Tl8AfYSV-(`-W;qnTzYYRQ7?Qv<10z)R0(YO!UGB>-bj(~SOEp_#8WRbn~-%zfaYNcg8<{#RqN*R~wZdqyB`k!p;El2;; zppBN}|7p-B%Sm)1LQTGE%CV}=meaaHyQD!|Ef-O}Qa|B{W*WWSauap=GPiNJy1l|lG%|C2d(%jOT{kKdm(%jaXju?9?hctIE z3nF}K1ddy#=of(xLb9NsIPB;2&#GPqrc)x7)#Xp~D)6n=jqNLPN)AtEvSJP1j8_U29p_g)W56x?)mY#zLf!W|J;D zku{WSn;xL?SiC9CXR4m{7oBD>()dVah3aT1?PevhG?J!)YGAz(N*nGHb{VVIkP`)> z=VmW&V7(HW2O9slHc*XO<6l2AH2(F&XcW#(L2$ryI{#o}KsH<@sHZqUoq?u-YGw@$ z%b^R-rE=)yD4z-n3OK3McGV*33oNrcAxl~fzXIUWQ5s0{fEs+%pNL{BC3lyZx^`9eQwsTC&W-1-T!Z^p|*nXvV{vJHY6tu|2XfKL|4o z7-l!Jy-pw9A}N^_zwo>q%Neh5hJV;XcT#ffg@1g-cAZ$llrxy^`{jL8Z%4NCR~&C) zd)si@Bm=Z&KWWA7TFM6Ld&%Udt5r(Z9Tx&5eQb{brhmSq6P%$Nci6`cSBh7{@7Zup z=92YHfy;QksLm_s2rhUX>m6*!KX~EG%`%GhpW*s)r}DK(dXZ{c78h#@p3uO^_nEJ9 z51Q%>Et3AZYtnD#0<^iMA>0BU@;*Xj*Q!JX>P@}70CrwNEB4` zhS9IZSjQvX?aPMSJW{HRH9*m-yd78NzvEaL4W`AJWItU|fTBgZ9C#HPw*rzD>ot&H z1Y8Y zeas5#0BsW_n=~--v|UjAUYt>=V%jxGo?`Yj!iGqS931fxHbmljFg0a74kpRWg_ z^=y%@C_vT3dJq;Ipq9hCb3pcox95dy0PijYIT{5=1_!B)Xkbh9s5_<`^DWvs>3U^wMwIQC&U;T9jJ*%NprDSE>RX&Q~TS=3Cd3B6&F?;sDs zDHlLa2XD!=F1#C!b9Qixr2Chs!8i%9yu|V&mX%qq`OT!Oec8z7kUq-z5IqS)kFq>4 zvN4um8Y@3{3ja6%*QEY*gW0r0jj84E`|}&6uArWdnARj4u-xv()if!3z%(TLa>N9d z>sg+|(n|3~a3&;Kh4tnBF!|;&=f~|lihmqpWHC(FE3n*Ibl_%i#uB^}o9~}UcfgDJ zPaoc(=OhD>_-1epRTWNXv*l1<;m{dj%g9LSN@Z=4bQTqoJi_vdmKL=PW4{?={29i+ zTvm&Eg0ZI|{Q^uwJOE>lAynP4e*A<+*7c#H75K0c3&a-qLRVO#L|8^c)*$niz#QuL z#_(pyK4@T7TxX1iuiQj~JKrIhL-|lyC+zS8+bGoy@)Ua93-S%PUs!-z21^VE*Ft?m zA(x@PBuL+MC`N@9SI40k3waMK)L29W!j#m~Xe=-=ohng>EMrmi5l)hv&skiJLAg61?_oXIgPWI4^-5`14Uvw9V(_n2kFT7HKml!XfEhsIL4zs+@((<0smw4aE9X*X~-`U8lurTGj_OX%M zI~jS5*oTOL7)wepq=S+5yBpaKzCilgEW8Obs^ z-0(D(Vc9VMDPaM8Ai0ziZe;1^o^|E|Z+>CY^}>=(>DMy1V7}YW=tnj%@_!uPndAGi z{tTDjz6s_(6*QYGa$}7r{_41qQ!s|a<5~Vx$?)0IMy}*^Ik7ZTy7g6!j4Wg1eU5i? z`r@3fdMOkCx|Gj+NMc1<&iJsu(NEwOU*rak)4L(gj2!=j^($CkqM^w*xRH^ySO)Nr zev3VZ8oHUw9p>YL{%LO_#xw8X0ymX3`tsZZC#QSa*624LG14}`NGm(xF|J@Jr%PyK z;=A@U@++3UME27BT)^mRCPATIMsDtE|%Qx?!->A<6Xno*fJ?Br?TmXvmD6!PAso+50A4v!VPT9({YWq zEYANSTtG8+7JICzFfS*}j}?!`tQgB<+_2m~8hvZ7umG1+jq{gbxrB#s8PA5x+@Us9 z4$c1>?3FXwSrYY1)gq}Bw|rxasc38yBMb5vFAF!kHNwb3%&R!xhdgb6;Bqaz08L_N zpN|ge`Jci)J;Do&h2<-*FuI$mU?KOkHK*Utyn^Ldtnb7!KbI57vR*G!&S5O&WYIyr zc>WjV48wYuh)vvs2Hb|N#cTkX3L!Yz?Ac2MI)nF-?oh5Tb#dy zx1~`81RA*_*vK@TR;h(4xY{LYQATzTFfuu-kx!U^;C$nekkSuK>39kk*F!nkOD?`O z7h5xnN%n4-kykl>LX_bpos7)i+sLWR7Uu4pZZOL-)lIth*hQguc^avg3xQ;EUxet z_q+!?WRpQZ(EbEVP!7jGMZXU8*ev9y#X;&#z-@tXOZk)#)4B%`P z*mKr$_I2EiGwd<5V@Y zmAOB|S$~`Ld${}AIlc+Uujlw}tl!Og2X`dgV;WZ9%MFY&GK(Gu%)t~M&=oAxdYT01 zScb6+-)C-H&BXWWW@LVr&sqO~J+fP86Tg!6HF)x0ZDRB%s6#Xdx3c04A50Fg9L^3B z%!~QF1}5W_c1C{5at6EpV3xsbktDXjajQu`nfV%XKBRkxR-LcdRVT4)e8yuxjJX@f z*Ju5`lv0=AI+NMbe{p?5>~Xo+)7G&Z%A1vy*O0s{-(|xcWY>>hviJx$1{g;eW{Bn z9bCu3J-(n7c;?3Eo1;ABwRv&7&XeF3_cW0AoAx~ALt{|5nLCfz`u#fPJK`Ht7qxJA+f zt{{mkD8w1saE8@UrU2ZT&^zrfoW4D$Kib>qx3L_{askVAJam0{Xuti!XEIc)Y~(4P zEVJ1cDzcZiU~jI&3*R;Nksu!Xv%K?u%=#!kGtXn`?Q6=<5o6>==4c-mFs6}-aD*B8 zKW<2OE?@zlg8pE+p5=I!hgg0QYw`!PFBN6^9?OY*CRxq0`y=joaW;*edsvVQJjv@; zV>bDS4yJ++cuQ`~JsHUIEj#mRuAmt=XhzD~tJvrcv1=S>*C=f>#Z}`;Sc8|F+bmzR z9S)~ht}QK=Vmq@me}UDUb}*-@$Z2|~G(nnD?{m?8*z4|a6|XqkY|hr6vrSD|cny~q z-*X2}v0T6%*vs-XyFg|3r8&J!%L`{QvKCj9lSl9pS9gG2;?V~t-8OcWDy+|L^i7k7 zbAsM{0B+19GLjeWZCv3cZopVxSp!+lVws&g@GxcE^`&m#WN!B|p2Yufx0i7HHZdfmu9?M=VOR+q_t4PZRrawP0mt;<4eoa+p=`B{Ea=N z5qr+y&rSM0EIp8VfzL)QK||i*b*}~&aE&MVelDOW$9Lfdk7UzcEoJim#PTdJ0;kxb zN$krO&i@aWAJB;x_*b8p0^VzDxO7k(O#CvSq_Ua`gzP*n5RIl zEYTtmQgH& z%uxA~n(>&qSia-}4zYZfdw#v6Dey5nR~pN*;YL4=E4;=%jrOk-4NSa~J2Zp!RotY< z{C_XPBnaSwc5ngdJcc>+W{=0hCzNVfrnuUV$GP+vsVVaH3d?w2^#StDD$^n=?t7U)^%M`nmY1=pR;YMQ8O}%Z{}&Wku562>NHlA>9a>~fh zk+EFaAl2bCp1MGOgRw1Fww!8+_(^5+s#A!cRu=Eap`qonW;BeRWADj{M}aK=SY)`@ z63l;!Xv`6Pp&)+333_S{P+d^rW~)ox#N#1)F7>vgd3ajmBFVg}GM?HzM8(0F@ASNC z=2fK{zk{bb;I@!cF3{6hd>0B9p~pydQVmbNiuq3w!;p|7R_U>^sOm`Y0tGIE{v`?s z!ee2I9|TGI#??(lV_zEn6k|+J;MTlWDt|c(o=;;)k=}_%fF$2t-)c&JvP zjAbn>xdZY`SZELAF<9(ig=3japtKY};T3ZeK` zny1-1MJQDoJc>CGu2vpAAya%s@HA$6)vpeC6*Ik$(*%4-bF!@(JjIUgo@8$0!{~dU zxM&p8fE$@O7V$4M&(QCDHluegiYxp}w&lfubOg6%ZllY?%N~Yxd0h}cSn~{3-)&Jt z1Fb5V*;nm16ccDulUY#~JSi|l&14SL@uBK_=G03RAFh@$chK?p9vE{Ioj*ctXZ{}P zli^thm?!J}xzw+Qed?f2kXv2k1RHdMyy~XrWSgE)f%()!X4Aub>QBSEhjS5cD`6~h z4y(tqzyd0Q*`zO^@*CFaS0O%5voG0}{T1G+3M{1F=L`kFd%<;>cX{xRR$yV(g82w| zFSs*vtiz&y2`r*|GFJj00}o`*h2c9LSX3o4yTKR0$;3X4VYk~#T@5UzCUJs6;G5tS z=IiLu%)m%BpZO{H9(W1!Kw5GFi>o!v^ho_4c#C1R@|jYP152pW%!lDKe+4?!O|TE6 zqh4ksg;PD_1e=lIWuOb+2Gu524-o${(5juzkZkaPs z4>M<2T{R;q`Y=t}&C>Rt>JH+3%DMg6sT?TmFaJXJTqVmrP6@=#`oA4J*|* zlY%k~%EZ*8uQD+WL1v~QBc5WXHYM9^c-b=vJj*aI#dXvQ!|F8-bfXZzliBypZQ6Y5 zsB^5ii2a-RF>`*L=!mgj;NLz=_J_1N)lm+^$_}S3r0S~Xn(yj(V*2N|Sl{3brVf6U z!M;e-!@8=IE+E-fRrjE-`rNSY!Bk`zZdjQH*H<%{O@r&J)tZOvBiq%$`f5`qz6su? z+24Ws>bhp%KJGyS72%{d`+Lwp71L}ATol|uxij%na7oQ0ZPcUH;0nw%#_PdVIX!i7 z6u3^N{9D0IiD~~gJ#L`d>jY+L{RIiW)9i0?L-km*zk!WZy5`~frSC$jkqW_%t<(%v z%xh6+f*Yxvnv-quI0N4aZmbG2mj^!p)0q?gZz?Q=bE@4W&?bKn+(eZ%1=^x><4|pD zs=6^()!an|)3=cjivsl`)pX-EqCm!ziX z1H;5jOeW6EWYTGw;%Qb8d!eWD?%@D48(fk(F%6fX;EI~3=u`B0+ehkqH`TAE==bOQ z+ghq4oMA1lZ|8yi1&qM7nP+RI&T;(L;Aytj>MC)$Di5w(2*{$+rA==v3WS-Di#h?*+dwtUkiU z+v%+BeCmQe7be?cp3=F!or=-NzGPczy$-ZfWi{WmENy^yGqbi+6HUBofnR92mbJaQ z&GA#uKhoS)B{AoyV^Q5gy5VaKlz)bz@&<);S23B`H$CKYHBBqb)$iJn z-fF#Oe-C@B6NY)r`zTe?G>G%f7CouFElqp`m4>%G={{7naPQXFEi7+uoDj= zA81at4Z%8dAMwwaJ@gG%$`GIry2-X{PQ!VapEA3dPcy%(d8CcDU&>#P<9FcNaTzLX z#hi+3MdHtx2UzJ^vcKxb{J!rxZMXf^C|1PXGA*8NSp5`=YkyR*iTU@ubc14`+QWhDr#?#SFt^8qygU#+?mJXT#UOAYYN zP#rT0`HPCoBP|Aa{RPNnwGtSGnl4jW~OO5D{QG+_paW5X4w7-w`j#K z(_>p6+;G^81o7`tnbY*Q&HCGxsq&go{YlNq>bINZGt1T0_w@cZ!xo>W)Wxvn>JArB1AGPi*c4z3x=0l)S8q6;D!2(Y z*CtbJbglOQ9R5Bv7(Rr1Jb!>AGx6)N6{-xg4GUZL@Rh2jx&EACYl-dgm~EA6WfIux zf@j-Ss}9T`;TY}>U#+Gych$T`9pnOsg8SRnQtf*8ql?X6!5K^q?hAgx>4(FD6z_Y^ zif^Ex1g|wG+a}+@G9Ui4vg)g)WZOJ&IdC@SeOQQ&g{)JxnJ<8Mf@d>V!yVt9f$P;u z=2qan;N8p~x)mL=!KY5Mq8t<-gl|xHnH%Z^8`TTuPjvi775V}7G1>MNX2s2rO{xg< zc<=||n^Z~W@>ptbhHO^Vn5%+62;ZzeVxD(Jsixt+EvgSI)*bDBOi7We{7-|%Jt+qp5 z)@*4TI>OE$<(|S1kw5rX#nZBZYIQ)!i!3w(7dN};7 z>dgGsW>Lq(gTbnA76?V=jRoaZ;3kivgcQ<-yS#ZOd(Usm5U)2-PRwrgrFvkURR zhu=`UH4nG>=q}V>;kVQwR?tl-;xn9K6&g6$c1uN8*F9Dz(15|VyDIEM!#B|22i@+r_)q+=n*A&3D|L?9tfa5hHDbE{H!E41y2lC3 zN|yGY3ewe66R+2Sa^dOfZ6^LK`)ie_HZ^dD?Lb3(uQU5wRhan%w%aLSJM#nZTyP8+ z{y#(Ay+@mmvV39^s3EuwXN|B}9x>B)+20mm`A72*)R8D4InCk^=t>&kVO(+?lvXM3AMVX8(aD*fNyaTp8Iczi2j> z*FQvLwVYt41IbeG1!g*stOsAOgZ?Wu+(svotx(+O1az+71%7H+n>@mr)zYkPMgt4s zhq^jw9AEaP3U-6Tu0Zr|GZR_qT;xwrlneS-8db z?=cIv{Gt<>G5Zq*{5Sq`ruaNL|9^b`2Grn;{1-KwAxR1jx7^6Y(K*9?mWNv5pJw5f z*P8c<1qwH$0{xfQ;gtl^fAb-cOSt%(L^j<26JyQO=k_=Y)s*)0=| z!d3=j_;JphmTAll!Ck>~G@H9z19IlFEaC$4W7aGM-!<_(EAsrS!h<>g&By=4XMO)s zTm%34p8{WLPPQ$}j;mM1XK6%zO16!`qP8qBk0pdT1sq|`W65n;JMD{{c`cJQ`)5r7 z%Vra=?+5s@lUMp8o%Sp|C zCoAzEA1YzFqT{uX_*6=+5|*c0k!*W}WAWx(cFPOqx8S{COB2)M7U1K#9G0xieZZH% z|8`QRC8vqk7PyTz(amkB+Noq!9U2Kp2>|WuPW0gvpeYpJQrOoL2~OGCh++y7oU(l^ zTm&oN7W*f{;fJWgPlc}+#?KDgI|(nw8y<=F&xF4W!Ebihy9(R!_2@)V{Tgo|V8PPF$C-hUZBWbY^ZJPS2wAhT~q zM);2=qm4Gl`L56Rs%oPInhGpI4WEPLzHMgE}Vb{CfZL5*U~*Y zExZU$mS{gKylFM1KQEjIPMcuANWbuC8t{90YVjpWaCsc@Z^C)k(imSBE(V_nc3cj$OkIbI0Y`xrP> z+-uJ#JRb$_wHFkwh64B6iwN(-(wu0I6yETf;!6nk*ZG~oA(Y=|_lTl9TGZ1KEgX*q z^>oAwr=!4NM;YPKC@|PjLAV4840e1VysiV~uO>`CI5EIM-v>567lv8j8{lXxil)o) z8?BBu!uw9*7up@|gu`(LO}@azPq`uY^Of870^gg_~z39~&kd z_XhsI&M`t1_ujRrZH{E&)s=DA$}vv3^oRH{YR5$3hVfXNEm*XelJh*gww!eS+zw}jJLVJUV#7Oqf%O#D>%dswix^O^88ZNcZ7_5ME+3(IN8 z-;!Y42V}xm!dGCz#?Cb1pS20!3YUciTRCyJg?l_iTM%!ZGAA@ss)G|hOT}EfrBXed zp~PnY{|yQHIm0EvDxH9Sj?kF!D2AY?Bd>7v8Z-n2h5KU&YC8)FH>^!VP)xW2PDqK) zNa2+@RgZGo!I=NF|6hUP8)uXx2*=H*xz4h}jd18%WXR`p=|Hq?;iS~~q!F`>erSKzMM;>st7XB35>95YV!ebiaKA`hc zVY*0N=;$i^=`BoiXAj}M==gPKp8yDBf$>Q2&^bsFJVVSw=TPC7SQ%5DBZLdVVyVv2 z!n?6jraQ+9w?cfnbAs^I>Qvq&;cd838E2pF6UA{T0$sC(Z{dW~&%Q|bqaFBJT-T4n z@iQJh=vpTH({^g$3gHfVFIX*n9B0S`yKjvsO6FF|$I;}Ad56&UDGUm_as1-rt8_aT0!E01tpRIu1pR5%{-i(O9PaVX!n z#uX!q9!Rjp^^Wk>D7-}PswBJ^@jF~~gvVLo2MNYFu_#e#ksg8BR*>IKgEyC`3Fys*3beZL~I3L4PeU0pZ<1q^i86Yh%!4RkjV z-b7yPZYewp4fMI&3x{ErOmKGQjN)0 z;?OzIy+pVw(*NjQF1-0Ftz@f&-+W6)xYfc5aO#|{wZa=+bc<)5X1)Lao*&0*_j*Y% z8y6Cr-CKndO5#g2?w!Kz(10WEeZnsf;5#(#!@^Y#;=Nz@1>tXhp$6U+u6Kx*?t8>$ z|Gyduleiy9f|`Y45%(kErR9hp3)lRa_z&SR`jq=jxKME_kAAVoSg`3gls;8BKh6sU zTz`Wx{b>Jxofj_(dtOL_aq;*~M$aqZ&1g`9{k3p+-GDd3!LU%88@~X`720fc;gLnS zei3RA{SJw#uZZp-erc5UUur;_E)c(c$UM3*WymUgs}NNXD*TD=VYu)}-NWp{3v@hw z!jQ`wsdv9z!ats&_W^PTQT@6B-{=my7J@LZbF5?b}$5%=eM=>Uec6_gp3z!a*CECjg&-e`AVsTUu z4!=zeq_5MP3PXM;t|)vak;?l(_}XjY%EI#~-e<2WiqW{suO<8hLlEt$E$qY9aG@%ryQA=_^3!cjoA72_{nqx- z?_?MgKXO@A6Hi~^cIZKE&j8`h=s<1H5aH&?-^w#gcnLaG+cQcye@pm(11grio~go%>MJ$ClOnte4Ib*5BbuHXwEyqN(wI5H zRosS4uxDhbaF*^7otFYnXq#;cN`%{x@Ub>S*0jqJ;cS^A{(hVX5{uD8+zGYp`^5g}aQTe?}F!!UVFr&Jp8oRVPr2;yAA zch`{xatlY};=Pn3ukfImbaS768_TS#J6GXuf+xT5p`CP(t$^@ctTIg;1vTpv zJ&xF%7ZE+r9<5x$4b__=3-aLZxDlZ6N1=KbfM zZ-sZ@=KbfM*}`rd2tW7C7yk2CnnjCzq8N!WK4n`Z{J&bX4lEYludj=K6ds7X|8G1$ z33tJe{S~xQ_^G}MStb0jKF+KWE}xx_Kfa$uku;7fTqisOoM>M!+)49B;hp+Syji%l zK0|L6K3N;*CHr>a()xV0L%1h=B+cjEDT;D9@%G<=) zA&9qmFA8tb4Z0$H4nC0Pz9#&%D4rOlxo?Q#n(pB(;oJ_o47nrxM4SAcaA9hY{ekeN zQ`j554~2{6Bz`8``mR!u-WS5vE8~t)toMy5*6IWSHorxF$CY1%H>+@u0#smx@NKMY z<-PfYM<9O{Zz16`nj?i9SH z!pmEF-xsF85I56ZS@=6Nc&59m@E|FBL4?5ly@sH3;0C=THEM0al;;Xh+7s*ksx zaJMRSkF25a4LdckiE#EUm_^>^!dYt4A-|r;VR|k+X19ZI+|0UlI8{2XRN? ziTCLK$7jN`aD+W+?36h}R zT&xd8K(XJz;Y(D8o>-vg&R|F+5ge-b7y?|mr=iq9t}c`ZCf4}m4CzsIw&4jl9b3Lk_|q}emL z3l^>;UaQ2f8H)pnH$=FD_JQnKW&i(1`#?@fkW2eO9^rd>R?x3&8O< zg`4X!uOqxdS6E-Tp02QwaF!oXpU>G;6y2~6jQ4&d{5ib7ytlQm5Bv9HZ(HF-m^C}S zorN#yhk9Lwr|N~Rhwuk_*7OqIgYtdp&OV~(rVHpVoLv_%NO%rr#S!li;lb$95$`bJ zH0@L)ggZ zgg1Og1?~_&zEG(=QM-jl>S?@RxQm{~hlGFk!D|z|M@3NrPSM13TzJ8kv>Toheue_d zd(R15b&oCypVt<+DjbFmjrZOZ?yDPoSJ*dBxA>tbT%%~Scp|(+xA;%tN|@J0qn-q)CUV->SQG2jU7sfF=w{w#4oQC)fwy1A}r((!< zdZ!DQDM1!a0sG86|7I7NkbW%JaA9r2xx%krP>&Y~m)0xeBH?Lv%Kwvat=+`Sg!||Q ztQ5YYhZuiq7WFH-0ntl0fPR16@XI|kh8u-{-m28?s4c?DSQ(#0?GXM4@h`l)g~PDc zkN55uzN|ZNNO(6cT+*G#La2V-faUs1=7c2Zj(Oh1LqEZ9;?q~4f~fPteYJ%y34g2e zUlE=MA4qrJ5Wa?4knX%K9Ip5Odl^o01~(e}cpplF{(7@`EL=br@Ko4=0usD`2|q#p z1n=L%?a=_6=cVv`yLXU6(EKFy-F~XPi zvAd-3tbZ^oqDu=`c|*5q%Lt#tcJ3<>{f;Q;uYwndroW48#(WHV92xz-@SM6dZ>tDz zsi$wF3HQ+_rW(Q{v=7u0PDBG!oppt$m&Nt}PHzKIEY)Ld{tsB%y_(MH}U4$Qf2meoZb{EAuJ*GW{gK@yHd3p=Kr=7B& za3d_uO*{jIR}Z7}M1pV`eV(AdN?;oFy*^Kj6#m1fPbgzW(M<2p6NP&$qyxod;n8}( zpDug>)3CgErtn(K^9b*E!qrC+{~%lm_ZzS<3Hu(y31+%iisHxN_$|=r)xv{t$js|m zD?9;1w9P?(a+!NnoVHu~U2VhpHYrs)7X4 zM2>?K&U7CX-hlJLO!pz-O_TA;N%Rrn8yK=9j$^_rHsk%u=o7-Pb^K}J5*X4Wj&sb| z|5M@Bsm_a%AZL9t(PiO5$k5SyO}M}!N`F)MDB{zdcZ8e$Kt6F_ct4(~;9605v##&4 zVcP%C)uRHQN`epcx&ANVQpITZ`dfG?*7}{^m%?xHhG?oYU3dV7B-Qy=xDfV=RA-hj z{}A2#fR<*fX1)Ixh0~=wZIYmgS=ofkzzJ=hY{Gr@G|D0TDTXlJnOpe8F5-N`F5RJm z!f&Tj2Z|7z{Xcypt^JXbpcBS0!D|=3i-n|#$0hs>Yk3ooS2*iF;uzr^yQu;3!qfHc zSX#I)EHd6(4vhIv+piZH%6s3F1Tpa9KHf^gZFGTEh4<(N)(~!wX=wA*5{_tw+xgLT zh1-Fzgw+$S(SjcF)DM&Wza12(Yz-vAVQ}B*hQifRz@X?x!c!2BZ;A=O2LI}zKf!J~ zG$EQEO*a)jRh^!IG#74#`vYG^w+KW3O@{fnLGV>{8%dD!ARV#V35VkP{=BP$a2;@} zvy*TX7~dWco(RUuD%|obd{-{Ir*QeJWRc!JQEZ2kI2?V1mp>;H^%eeXJ@ufUa7`50 z&ptpn32S{R#~|T57J9dSu<%s)P$fr#aIZjp|9^-mVqt+q`YJdCdx zmC@i``YG8+iC>S~_kE+s2!D%HZ#~CY;TET92*(M}#e?76KIeE*IB>hXzioo>4xDKA z+B5jCU*NUTlO%p0Ds1AIEL{8$-2<8?{05I|)9llQ3l^mKZ-v`zfd8l2XNcn5MM{t& zyze!Ak!z-K-$dfs!gb!E^xp{=T1GrqxB;GWrP=2R|1+NA=L=tnq5J>#1)^Aw3ybIW zg~Cp>FwOphus0tb#YQg@j;u}bKMKFUpZF)?YVh(j`x4^<-r)@%X*?{1}7`v z+95pXInDc>!nO60YL9Tsw>0nf3y;+&q+f)urqVP$BK)PkRy^isU*u?c1L(K(kIw6xEfYAhvTlqZ-fO)IqnJ9$Hi)b z{k~z^|A%4>=SDw}1Wk1TkA+v~q5_`?AJ7HIPc*o=bwmI>A4}!8-nh@T9YNWi|ShaFaikS{tpx{dB`3{@s{P;j;gqNF}fQLK3vrS3-S-2V<5@bqo+z z`pRgq@TIZ%`a;Z?!arcGKj0iL{IUq$+wA|7a9gZ-%s5Ff3Jb|S z#{}WwBk0=iYvG?4krRC*9EQE&o@27`7M*^oaL5fxKV7)^FiQWePZYn7qzY1mJ-WbI z!e@1XbA%g@qaM!{UJp*NFB0xDig>Z`Cn)dZm>-3+qQ1^CzU890jvn`lStGm{6%LG9 zFI)o!^orRm{7lDh7e0cuKf%6Bcrvc65@U7?cZbCiWA+KJ{TmCJ&v8%`ck3Az#8`JP&Oh7ijk9Ef5 z_=_=C;oI@p|L-}1Md2z+PLWkO6!W&9Jyf`99^!D}betJ;y0QyjEJi+*LwMjyrLM)~ z63+2IoU)_x2ro>7{}*uO6U9m#FbcQ|2(QL&SIkvNxKjzb<55I-asi9F6H`pMSRwoz zVN7x1inww4D8?>a#fjH$Vw}Rad@zy2;}*pfn8@LY67Gh#`|deng+J03iWi;;3;h{W zN_a9X^k+<2;m_Y83zZix7)cg-SJ<}}CVCn3z9_nC6IBwnq|;lzRfNyNLeZY;!r3a4 zg=z|atu0hr_y8=VV(SXmhlNyZ13&vB2Wk^F_A4TLYZEmUo_3C=U31}+uu!jD7) zA`5*YJX2e!op6c2Xc~7Az5xpjjOomb{eL>X!px!OWs3LnuH8fuvKe{VsH${ssR5=?}Nvd4}PzN#&hEc~;!&{*Ni z=V@gdFPsDCg^y#t5zbSFEHqvCH*KLAntinYpM!}y$IO%jrLhooj+ra`q&!*Zd*M`V zp+&-9t-{X}#QrGUV<%0s<-#Al#KH z{WprDbE$$5Nsu;BscNy=gtH|m)hITfaO9WxYe=!hh3D%EV}z^e4wV#+PNoXW3eWnE z>Z{-r#m@`rPG?2oZu2QY72(y`UiaE-2s_Zgp0Txr%MZr(8{0^@(-8csQfzDCQCH~{ z{h9EK=X7fJbrHqqIzdpYXIzxBiLzpF{96f}8gGI(WJ{L{~&vNt@-T}Vq z>Mz^^9qQ?GB#5H=AbMwWsBjCI{HABPa2*uz$dfF*Es0DzQMfF80{V32(vPQp)j0xZ6kc^9XN+KlHW6ymeS36#mgdWM733&S2rc|3~j` zhX^mnW>ek~D!d1qOC?7(;rdu9YdEqC2ViBa=g2ASTu%p_T*AIpSlRG9DWXtVxpq49 z317rhtR{{E!sWiEyI_Tdzi6!A6&I%8Un}i#2s=MShvHnqpVz^i(zqx;`y#s{L9dt? zzanxC65Ml?6fRPe_UqEZ_PTU}DJQ%U@fAE3gsax0y`!S=H??Uutt8yOJ{`fTF=PLK z@(vQj)sO_i<%nwukHqEk8&6%~rD*V8dt>1_FX`CcOt>T-O67Dl7e4leOx{BHQWm;@ z(8@6F|Ib#_tI(_fyO-l`wj+bL;978-<6|ixJMLs2akLZehZ~LEqdE#t#I<#B#1BF-3qO0iyVzd808BJHW^hdqTEC`xMw_Jt^pT|9(qMqTx?J?&4>?4I= zfD5=r3)j>Q8Y4UdOLaf{IN`BqP(S+wFy=p5AUAs0&;GR}xU0wT8{tAYv*mP65zaQ7 zc$)ArcHB0zq6*}KL3i?qv>s@+dVo3zmuN!a)D<6LKTN1qf z4_g|L*Ji}4d;d<~ag9=i<1*q~FU2uGZljb}78joh_T9q2?W3#ZJw8!P*gysD75*M~ z!z;#R@OJEG72^&_{5ag%{4nm2@NYY4b2%owdKWAfdrJ6&y|lNS7p{fvy+NGsvM6#D zqo-0gg@?dtTE^WGu2h`7_K|QFjOk0)6XEQrFx{CdJPh&U?EeVQ+(XZZUJL(?-LR!E zO6BkmK|>VKAu3S#A~JN0vk7~2i^GKfDoPE`DcnXkIFE2q-QYsPx3IUobQKl;V<-GS z-RTfTJKbWp@L=8ISmCqO;;53svAV%!g*WL2R}g-&1iuUuS5Y{}R(gr0y6}n>@c%(^ zwM4OI8@<&+zno#5GB2E{L0nVek|pkY)mVf=MU^ti8Za~vq9c?Sy5B&Tu=5gu|Dzqu7RR5wGbw0fw_dmZPGWR*m(4&lHN#9rZZIMt>^#R(tP7A!4%02aLGDkpp#7JL@>zVLV2f>nsk{{I#xyyvPR z39e}q))D?ho3Mef!sYg>xF*84V8MX+7Q%0}1wR&k4hz1DYcJdqhuo!6bUPCBpDfTr zo3NWCh`gXwSbR_6+Cz!^3D?0bl}S+v!X0oaH7RPSa4?QwdE=9WKZFJI#wQDxz$+Um zQ4@2@{@*u+=J8}n@CD9n1KrbwbE1cl@w0_*Y7;IH9*PsxK=&fy#kixgAZnSg^*eIH zRl*x#!KnD3bE5yo0$!}uW#czXg4&yD9{*2x@EBa##P1P~!8;;Lqka)Cu#lYasBlL( zS*7?B!mZ(BmEz9|cZLtuj=$s+#cViH?f7fLZAw!Cw}tQN0v-t0#!ac(@lS*!V8Pn) ze+f^=5LJqQAv_O5R4M+oa4!r&?RflRvfl!EW>NwFN8FXb+f;r3eeONy-TMYplu9S` z?&IO%4W=eiM3ZP9G-^`%m7>}I(4@IgRGO52g(giBB@smU<+H0*no_%71Kh+Er32vbY;Nlud>}}1!9)ge43^WqF4jfhI zwoL>#9EA*&2>uxyQBSXJO9?ndOQ5ab4|EOM37(-D*kACIx(1yEchD6$OmG3Lj(2X` zQ}A~>|1pBUhx}g8w#P}p$(q2)f}7|z>?^p_D6GLbf{S$W5fx!|~F zV6fmJ9bx^yXWQ!}phAn#6MP~l&PXg+WKs-Y5Z$R+M_(;KnS7E%5yY7Lr=TQ=0wFuS^N*@sXGUz}e zF-Gv$zu_?aLBX$ipad0(hb5o~xX$NG#|l10&+i`|t z1&VQkn?e&L65|Dr-iQknPYd?yfEHIIo|S;@z(B{u1i^cPBk7!YPVjYlf#G?XR7d+p>#5BS0YX)WrUJDHL zE_p}r49&o7!Kdwp6OH!-|KA6AvTBatf_>n6!?tq`hW`JI#&GLr+fO7x>t$GjMS>@T z8C}-)E5QR`a(Q0jYrzM@i0O~ScY=@k8!NCv@I|oLe0AGZg0I{UE3k$z_Wv892436s zlAy(0TzLFh@E|xua%KD%!TYViRWKhP4@&$+>x~k>XeF+KZ4vz4L|i4?F8Hva7$0eX zj!gIei@(D|Au%0*z2S2w;Q~ZlaLeQIc2fC|BlbOD_NUjq!oY8-by%ZBG|G7Z@7Z_8h_A0Yk8f zBzPt;6fM6VVP}mR~P;Ec_}gA0qg$9=Iyz3El|fg~IY11)l;_u_47b3+@V2yCKE5`WcSA05jYs z2@bp+YkY^`t04ZG;yVSGgBdPvc9-DSV991v$-RQ>ffGA_>t`;4+!qB54m~| zO28AaCbPW+>qQcozXVda-(*;N54SR(~XT zweCwk7Tgd9sT~ua362~L{eS1g=Mpd&#`&ESUkE;5cQ%UzUkqzN-4aU#@2h?P*Mf&W zh1ZmSBY5A1cp30A!L32UwMv!??%3AD+kt@mj$* zz(iv2lJ$abegf_OC&6bFTdWII z;Q26l98$bhaAUn(zfJJ=-SKAGKLuX}%k^_gtle3uAMXuTQ{o8r3hToG!R7@L@P1o3 z$y8n>xM@rH7EXCR!K1E0yqDn9+M`)E72EVOs;&}3veuHlpkKE^>$*H-XLuXXAK%$f2(ST!#g9M-aEnW=U z)nMrV9S~NtX5A&hd*|aD4MzyRcP_3CA1(Okd03-ff{WhAL1=Hm`_0FtTs*2m68HuN zAn-Y4!JBUaD=Ie_`~Q;9af#$4N#LymGbuk+@LSyxpCQ=MCzsC=JO_2ToAuZ5`6VB-gtDm;Qm8#CG!fwOQFW_4GqEj zXvgK__S#WhFY!&ZW4b}`7upedh^hZ?ryb8wN${6;G&c!us~yM9g749OVz}TNwO_bR z@I%@U+$nfASV5n}U4m!KL8ZMHF!X;Yfv%wSOA~l_hVYGTFu@4H1KQ&VX{6vzpyhDX zTCm#@Pto2lxD{B{tm4svTkefY`jFsH?m+y=?$ZAcI}(-ZaY^v_QK&@Y1o!;{kIO$L zcq<$phjG2&#=l_&o)%nB&nx~d_|E5X0P>9B(znsiJi9y8pKAQtHq?O$l3+HBYC9(; z3LXy=kAbZw3GSmO9?uEh@&(R(o)ino=v4lZ;B#PzHmH1&;7cHXm+~co4~6`lOO^{B zswL$8AOZVAhW{&HDR?6g{3G$B;JF~e;pOWE|DP7&&w_V{-tPI*Uj!HHsoMs@U+Jma zZ-VbY33`c567Y=f&o>L6rZ<=W5ZnR!>z0YFf+y(idAs14=6I=_1$$uo;2p$17>{(JSc$gk=v=iJ%&mG$fzE#g1 z_ZR%Jo;w~O_{kp7{~wj;ECJhI!S1$;;3xk^*LtYnRWO&EQPNHDp1M0eT=2QDG&`fD zr{G6*{E>ox*6~LRzSe^Q#*pG(60k`3=e-3_*8TZ$g5%)HJ}x;)a3|fLpDy@{UU*ad z*@7S6jHBd!g8PA4Zz{P!u(t#l7@6oV0fS+4d3(tK!52brcyi0j1fTj1bXMh83LXxl z+8Hgb68!TfED-n3$geyCo7bC4ZV>zc%mYRyJjQVTuL~AdNJp3+Z;{NI;PF&O&)=|JG; z^0y^H1=RRI<#Pm|rbYOf;09WRp9?+^bYx^=vET~*cHCEjKYs-G1-}ven4WliM;QD6 zUtsApUi!TxXbwuYy=0Z({U@Umt`&R%NGQKzo#4KM5&tImX^>chimie#yBcw%Axq#t zEtP6oQK+%*|Hod70eD!3MAQf*P+rkg@Ug(amGL%$uebvT5I#Nwre-gcR7(6rVCc}+ z9R$C1HJ%;oBDg0=ylce~h^ha7Y!dAARrHYrYk{FNTAw2Le#mf2ML)rBL;9{20|als z54-C@g7>%$B{o>_p@88dV1g@Q2v*tp8o<#1VgLWdgLu;E21zje7Cc%tRB$I~!;UR( z7TgP(Z1^1aAO*X~i_b$L^zZjod@i^R^zRQ=EEe29k_gcjz;65#)Lcx_yP(-x_Cv^W^Pw;ghp#>EU z1RwS~N~odW^}tHU#NL9dpuc~$!WH~9NXUD&qKO1_g5GLLMX}&JKt$hFG!y*f6qHa4 z!B2pMmQ<7pz8QMAc@=F1*LwmbR4MoakkIOi_JWsGK>vSV#r_g-91I|SsW?b5j(vWq zI7IMV81Xz-(M|Bt9vC4je*J%k|DENDj(BBmo3+@5k`@D*O2|n4=A{rR~&&nGFAF&7GVS?+!YWiapw+b$5iaK<=;ImdszZmSkSLM%=;ALIlZ-VdC1^zC0vyT6d;E#3u zUxNEWoA;`W?4{rjJGXo-kvzdgS|SA+>;C^5U4z<^-~wHP-2`{n2M+fTd>FLp^oqR% z<0V$_Rx}cP0(8e$#`hKc^KSSOs*htZ8{Ssj7~`q`KMmS&TX7S~5bKHkbyLBMdcYvG zazDWfW4I>NT=1rSFny`ugZ9DccMHJ-p#O&ty$W8T^S1#E_Kzak8-BtflO$-e264II z@+07ARwce#O6kuUiKkdQ2;O}(c(z0*!6P2V>HGnL$3b5Khf)Q<0K@ptiaYNm{r@aj zv4B&llHe&QpnoO4uS^AYd=gHvlpHQNHXeL`%btQ8>-GF21+RHW!PPB3e)Cnh(4g{I ziC;JYzZlVHFQ`8iu*b`=$5VNnBv=CphE$#)c(lf+2tF2OO1D<_72I0qKU47Qx`49< zAHN9K2hI`PSx;{Jc@nVwH(Ve%PjFW~yS+g0mwNhrq2Ooq?6$w)3&Hn4UwX0N>%f(F zP7Dy74|Bic+FmMnx}My6mq|d!#W(`GT=4T?6^X=^f?o&M+cGgo@K~^tip14|Plm~< zD!E2*w;8y^a=qYv!1Z=a+#vV>oSb?IUjh&7>Gx1caFSl#zDe+{U*h!pX2Gk$45xiATpC1(b zsb=sI!B=#^mC#28f8HL~5g!*k9ER;9O2-KvaUbaaU6oHsK*KNa1;L4ed+mn!Il<$> z@hmBOLGTP%1zVkXNpPKg(F|V}JZLK7R|S8y0he-L7km(|e_c`hh6J1f2MVt!epB#b znBDHyY`Wlg8>3ynEx7(P#P0|`8rC{jF@d;Ok(B_FLHxf-eOL{#LeH@Zr$8?bhr^!O%YQ9sv<P_^DB_#7?4 zzXZdl4MAcGx*&9X(Ep#HMHn#wqniu@PjzXTEqEG;@Y1rl;EzFsmzEU?9toaob)v4| zVOoN_3I2F0O0a?8eDEWK%l06Q{r`Lr;ovg7or7HQjUd9oW%~*q3Z8JcX8Q@gya|dh zA^1`)!DfP2g9Kx(O9fBS5-bzE2bgi4)@?NQu=l$PL|CVFr6hP3L|CVF2f_2S2oDfE zR*Uc;!Nar!I}6?j8<+7mhX}sL#oqEz!5@I9J-w_OV(S05frw8pJ3kpN`h~+ zh%XlWuom$E!54rlZP@x>f=>Wfx}fEig3kcY*|^zY!TB&sZrto@!41H1#oJuFxAgz_ zY7t#83Hrh!QsZVr1Rtphc!HOK>s?niOmMAcsMR+K?z#}p6IR|L7!PBPsk}q*aA2T+ z<-L1D{Ye6!00aFiM@WMCFbtnjGD`5N2^@etAh<7VTrOxiM({Dfz=Df(45iCEp5u`EhK*<$_lO1754r?b$@tN2&JjrD5xM!|n*1~v;Gv>o)nQ|T57SOg4oD%~ddHWmq z_>fx=?f`GX_Z8em4`|L3yh<~0j^J~Ff%hx>84Ue@ z%h!>C3nalnVBnL=iv-`M8Ms97*?N3%so=TS<9J}8;30ZEFj(+4qfi1@3w|0HSX6l} zVeJ1e*9;7i1XF;4WtE=b&ol!!34Tp?pSK9ExB+|1I|Q$XiOcH5y@Gq*j|_|uyapIp zRXIvy4|~7YH3JVyf?ZoQ?<@a6nr)Ki9ae| z6g(9ild5_JG4=mH=>$_GL3^-URW(iU6=3IoRL&4QQ^(H|+zYJakIK1%CxBI`s`-L% z0S5D{J`s!^b$-OXAy;Kt10iDGjrQZo|F%8dzd@uL_7*h3bxk~WCvz4k} zwN~&HoqxUHlcr(*Uj*N$^Z(XJ`u~eHfz6WO2TcG!$U+R>qzP;j+dH?ab?;I%q`Oz@LBf5ARbf66dh6R0H#`T_%us_F`Uq&_%~czwZF9*#4m27-%v zVCS`m;HzQ5VMxiIf?Gfn4k>OVc#w9@t|tL2bb`i$J8I9?RPck)#zTsW1#i*uC4!sp zfhV7u3;y|T+$n7(_)EQ0S}u56FWf2h+DpKJ-O-bE5`5zkXf_83-T?9NktxBOAs#+5 zCHM}I2z+EpaQ&mOFE~_iKNv5pEbAt?;%FGMd1d%@RBD1gP(Y%zr{IS)14jvtK>@#& z9V58tNMxY5;3puyRq1hpTWSVQ6nrf(pjw|SxF;~+tt&fC0)_wsmzMPvJXbStw%{r# zU~t*Ff)CIPTp;*Ei0@Q-k>FD_0|Nv<4Gh$2{V%~+;TI#EeQ*yuHO_P)=u6j`LLNLoeT8tIE#+!~CkB>{h z?K5#B@hQRgz>Nh96VC`<1pWE6#3aGJaLuRe1;M++cKdG4UJ?Ax=Sr1Ty(ah>7!_Al zy&>3pxiMTMQuU?;91lAlOG~EX$D)dRkH=JfdU4$oFn)R z$iJ=m`+|o+`V-3LG4`4q2Hk1hQv6&iS;4crA^uqK0ksi-DtH$3?}@|$!I#2ZFp*d& z7;g+oBt93s{x@7#{6g>>Fx%d@bg{wE|Km+P`<5<|1an};q9U-F-$F*H2c#>Y({7LZe5^ulI6z+nFuU zSX$CV65zEmi9|y1V-SB{qD1fnErAw-zk>LMiI#%b=nAwEya(XkC2a*a*9=s-P=Atu za~q!VY^M`|g*y}AegALs4-ovvY6z`;px`;*!(wukkL$FuR3qi%XaN7&BsKo|4e&7= z`#{g_)dyL)H9ozyQWNci-P1L`Y0vq4TI%?!gWUld&sN2dp^-Y+eT34(mD)(~V0QxH z_?DKIT2XMY`>MeYf#*d0xk-Of4DN=nb+G%r!QX5}dR}MuR}=779VFP<{nOxXx`57Z z(Q%qV)oO_X0-fD91`p5#ySRrMTnZAIWgp`9O~P{uy1H8o{<|>@Pzt)avEzvz;u&5+ z54VX4XuKYpqE=7$fFwMn){*Y<27d({Ut4vQd%DKM;{Biv*AyJ(_M><$F%RO0XuQg* z^CQ;qX!j0^kB==ui5%^YH25jN-odqwcE=_WXrzvDUoZqn2aa*SGI%8TiJ$U&xxJg{ z8t4KWsbk%rQ_>&nb}7dARTic1ZIo_Q6J+?+sy^;Eoqm)8?7>E1A2)siW*8lR5BBY* zLV~&)-)aiz|4se&*61;z_irwg79cvICGf?sni^=H*t zZqE~u!P&YAR@mpbHxo8We6IVd#?VBbZliPESvp|Eo*O{xuZ*ATexfl+pi8@R-8CAI zR!{!{Is*8G9t8YWub(@g z0*uJda~EnnN0A86b0a5XfpZjz@B+8O;3q-EE2=JX&o-DOc(Hr0!6d-}?#l*~1pnoJ zN!U{)!pq&>r%(YT!Yho@jL=H+V!J^pcwj6QznT{rLXP3BRxD-x{9@X1>fG zKWu5!yXzEvTf z)9z~bI1^7+aGiU$#;g<9yKf+d`WvOV!ChlAklo(kZqazOCb+EK4Q}~qSm0>oZHC)z z+YNOeG5GL5lxo}lCRd$K@we;vo88L|?x*92yPq433?AJ6Hg_Fh@c*OLIPmQ~+TY=B zHwnfrLwu)Ot1l5mrR&lDE_Zj0Z;ju#9L@*Uy4!UPehhF2z|9O^2TFZ$`+M9r2LBEC z8o(V5J_+#f_V>D7`s)7g*7)TR@Bjp)I+pv~o|Hk0e0=-+-19YNk&kj8G?+wuzdPR) z&>Na?VZj6LLXC&T&jGv`@YfWt>CLhqa0|}R{U5iV8i+J__hfv>$WV89WYfUFR`(lgUpEKJI#{zWNC_ zawbaP*7!MKMjsW7a|<*c79Rk32H^SzqpSU^{W!N#68<)SoSUHhx&n5Gac*yoxdKnQ zgEi&~jQ8A|lQPUG81Ifs!gC6qcAp{~@1q%d)}3VVshXi@-B&ecotO|1`9$|!lb)1z zk~_~}Qd)14yU+ws0nfQh4W3u_co13$B#b@7Bq^cxT6eiGY6LS@}{_B3_bv`hY4QM0k_6afE|n(_7r!T!Dj-V z1$ef>TcNL*VZY&iXt1*dM?7!1Ul{!4LhvRXrn=u4`~u)70k1L`JD-)YH{G8NhQ7yB zYaw8Z3HYG}Y>&sLxqln{6X3Ogy$J`x3oxD- zxCG)m5sr6SrPRam58W;r^8n^U_w*#ZHuj-=G2!@)UIEtlBX@`i7zKDO;72qb9p3_j z(0AH>>^^0%1D(;89Y1!T)0k`gNuaa&)cxZ^WRMsb-SIQ`qKgo(vJ&6IQSFWk+!Y$n zwmj@?R@h&-vHp~RI-f;uU5!~Hivm`#$lXWB(*Wb$j*Hwx5^kgxxu*p3S6zbiiJ@8c zBDb5yqdoN$^hSSoT0bHXc?s|jCjJ^tJ^-^~`5zxKkB^{T#A6}{ph?5R|<9=>1 z>CiXsHyShjWkyFl_RZhA>nMXZvqtJW7s(A(Gyo~>^qu>cjvuWepTkrQFvdqsjbeGr z4W47|0rP;hvF`=f1KhUL4}xQWi}O}%4EjIE>9Q5g0vAs3Z;n$7#()!TAD4DuCvB%Xz)*9#uM$eZexT01YFly>y`rckiZ`>YF!!o(JeO# zqENtE!228ARx`NH?P_pGz-wdc+#?BViFN9<-n~)dRTfp?C-)A6iQ%8zkp@$Re{vuG zm+t>pSyaQHjEG1{VtI^7q+L4wA|gbQ_UQDhU=ry@jfX0lXq?(> z110#v;Abg;`>Vk=bRJkh(LiGO#jb=)4Za4H663oWe8ypf&o=n>ZG>+yxZg2|z0K}} zCSW~mFd%_f4IZEqY<52}_=*U{|7h?*y@;T51u^u3P4P_({`gpmKhWTR!FmDGKgr-L z`#`)00Rv6IkbFvT7biH42s~r(r?n{lU4tJq@yiT;7ACJ)z*d91!)O=r?pG3n&(@{* z3WIw=yoU*nF##W$1Q!|H`&=S$v%%NGLL{bt!r*hjBO;z|aNh*Qe`)Y{<0*cV!7E!+ zeBD9B(Ax1}|45+B1pI6g^f373_lUr`2CszGZ%jW_WA2>LO5jSBUKUV|sQ%#05SN0q zlJWY_vCs%iR4_cMS}sKl{Xa*bhGRy;{EVo7DtuxQFybX~tQH^xehtq5g&3;o^XQ|f z=BV+$WLQFQ?ng_2p0zQ-SmXqrYQdPhCQjV9>(XXK;I40oz|ha|8BtHdk{YH<#ZlEO zis81Rd@yJovu@(Vj$V+=>r03XS~|8sGg$9Ja+$+zL)HW zzhd}h`e~^H%yYJmx739i0|AYrYK{qyX`O+yFy{FzOt_J5bJONU#_E$Wln({5h~El` zio&A`ogxwn#3_(z-`{^fKQ=XdNlbQq_Vvw;QrmiHj!$ijW zXa*x{*0ETTs5;R|HZ>gD|77E7^FKsRBkJ%^$&uV?M4cRtgt-qp*ASfcCFLW+QBxr7 z09PAsJfa5#En_D1j2MweMdU#j{c2;ZQACl%qKdna%;D)Snq4wV6ztDeCT@FrM$|(` zkPfiuQ$-$8s3WM&720w6X2rTgW|(RXn4bPX`)v#DU;ofGD*qaz;I!pO@E*eL3$r9v(>#rlacfiCQ z^B1Zy`n%<0`6dzIbS5rI_WRH1^?!;{MqwW|T zHB2{Ap1Ra@Zk*oBEkg`OY*X3H^k(1$C1~)XaJm&y4S*D;A-Op#7%=2!>3iUmu~n zS1>o0NC-aqXe=ly=~{mW5a$ROxHI1-bQl}VYJ1jCsTl7OYcFy{-V%MgzC z=QB`!23thV1*a0sHQrIwv{(UX|8xeJP;$cD(s7&jg4G*r3YKVSxM!54yH=8@X$o61 z2HSj~Rz6?!j7bs^<0qo(b3N3u)iGZIAE31Nz`;9I+T#828B=c?59-m_4?K}^MC5Ri zupS#mOj}3A5pjBM3aX*c7&A@|%@3cMS^*gUn}DsRpozwu7?)@d7!?M&K=y<|%=v;0 zGDDo6Ftk6}yZ_{bWF`?cJ4S7}NKa5$H!KwvPX#z4sp)3K(?$E0sG5H)(u2`o{b#CW)<>Zp~)QnmElG@=~cG*NXAtnT1g?tcArRKs5p=P6e|W9oSA zx?$+0l`f)|=9A8GVQKMg$miA`uYZWAMcV1`IN3a2kqK$Ga2*s7(eQMPz4 zaE+EkRMpb-Y}HWbcT_h+r+=;qb4?e@*qBSEP3%$lZ#~Z`P#t!+##}mWVs|eo0BQ{9 zBK3gA?-KUc4$D@hW}Sr1mwV^WbVY1++6oky?`N{bQ#nyj&DZAbXQXaDYWfIUQ32WG ze>3YYJpLe~imI+=PD_k49k{1W`#q06D@R1scw&bv8%Csu)d-q3dmd|kXY@}LV1^Z8^u3_#4@C#0`634w77#Mk~fnF!b zQ#a`DIi^0=qK}&<$u~_>kk%w*=TT{z9b+8qKTP{~j9_+pDH1{Zr}aTw?=In3k(4n{ z7BYfLm_i_H{#csik}FoN{U;|xGtDL`^7#=no{5_AjHP(8%X8Fzx)ZV$Op?+595YMK zGqdDa+AKLk#%l7#&15;>OqL5mC(He8J^#?0>;S<+Gifd|ljd47X->2AzzB?|3)gyj zju|y;#kSD}$LNA(<|Dku9G;G+4Lm~QAtgAh%w!E})LT>4y{keb%dP)XEHPc_y6wNPy z*Bd$gBLk_F9pTbe$BC_`Kqmc7O1XzKH`rtVd#hU z?+37Gco52CL&hA>3MJz%zRKrCsg2J}B-TxIykCpkl=^whSFkz}43 zlEFA2si2U2Xn)x=2K#xo`<)Lr{r}Dr!frKvD0iA3`M_$ven!>D`e~~r`U(3R-iB1i z!J}511KMT|$lB_=>Ri*YE`-tZSd`fk{zK_JQNGL^=9&KAuX**1`soi{g_4b^-bVEA znjM+?`j~;EdVh-XVE>!+kC-aZE1z*SP-ns2obgWqBXeF_4R`<{caN$U( zJ}zXdIl3Z_I!ybCJawdwkEsvLaU$^5X?V+6vQ6{&L}i79T;QaXNx;i!v~TB&6pwTzGZ4hV0)x1j*)QY@0fzEHMBD`L8IexW zM>Z@K#C*K>Fns_5@|pF$rsjxOfw6z~3%r5xn>p_HlYaUYvVX_&fdO8RC(fb@-=o2B zK2x^IqMGwLB9;(a0q5hh=6oVE^=u38s{6g+(caNSm(gG(llT{U>?0h@zUa zJC!_>X#UkSH%mkb?N!2JF?*FB7#02xw7|WG#sxI*I zTl#S#Tnz*Lw+#c1nqwRc*O=S%EYnF5VaN1>zUYJLh|z5EdS?agFE6dFG86Q-VyJCn zX%fmUpU>DnbpALwfb5r0shq<+ z<7jw9!x@4&XNOWlf8w#j;b-chSN2r=^gS3KV#T-7&{J0b^iNQvri1>EeKbd~C!{9u zo90jGC~@=Y20btd3%4-|{5c9N8~*%b#dN$lqVNqx45xBn|DW5KH@X|~=?!*@|Sn@-3@9l-O4`UgDuJp(?p%97v{ zQNbfv98No@{=p&+PfZUm`@zO0j(%Ck@MI_0pQY%CXZ9y6C2M~$Un}#97(Y|f`{x>y z!qNUSMkIyXVlLDRM&!&G4WTB!dcN6DN8V%3kZg1 zOP|J&XO7!3!L$T{c;4p^G8hbJdckmJki$JD#2M&VoG%f^Ji_7bn!{OgtgP3yM2SV! z_092V%kkoncrP>oO)71(JI3}JQCz@1rT|Lk>|i>u|6NNk8$Dj^G8Mw{fAtImG9;zX zCZSy7LH}9Ajv}Q<7j-J3+|$va_iE{({qgDeY7?fU`_UZtWf#m!_=Mg&j;Ou#?pIWO zA15U|K)YN=(L5ke@jT#*725vITnt2;JZVH%$(Xd484RwF@(D;@N%83=PdbqvW0|~q zweT&Oh~h~mnpraDgvpaj?0k4~$?21)T9}{blpLQtm&ACUJ9?ae0~iMh266Ia5(x^1 zc>`jeOD-`lRISj@sF}9IVK+LK>*@D}FhlZWG7}Cm5X8xoOU%!hCCF1Z8t6pTpkLAP zd$jZdXYBO>qzDW~v3H8VnlN|6!MAbt)!k_Jd|cpmQ*$cVR`0`>50|i6#)PD&(+-4gVCry;1mHr!+i`_0OHa9xGj8{8za4 zFodYh{B-LA>0Z~9)~Fh;=YF;+*hwqcmjslLoYBxIToU|F8Z|{!2!@68y1^`M4Kyvs za(FF>B{0j&l7MxCm5?!ar&ts82Pub2AS4)0jQb0noL~31g zxjwWiKGsL{eJe;#2l}5|LQF@5d^=7iR9$?qf=T;=WdFOtOa$BJVKW=%w!=LdRL*SS zG(h3*7Z?qp7nEF#`+qJlJpo7(W=I?#tjSJ?d%UKrJy*nZ4pB88UhPJSyr`eF;eegf z2t!uj9tk(2ZcVFiYTCo_W6Y_1TyTK1f&*z-FXPLMpOOZJRm;XIWJ z)Xa>g!z-qT{kZ-|8GW=H4 z<6uFw#zb%RCYNLO|1w0Fm(;Pq7v=@U;Fvl+zG~!qO)e#w2=s&4Ypv>BeK17!F6Fv7A42)ico`p^(&Nx>_ zvU?D0cEkRMqnJQ2As4_5l4MdREVz6}vtlPOvjIl*>$-k{!BI4h3&8$-*UE%qW^l;` zW^z2ZY)9$yWMP8Sqw7VwJYCP^f=xX7KRct3u8u&i44qVm%$pd2>kQ2biXX21U#1B3 z3Vt{dh^Wh9c`kXtl009)rs%I1l^k{CQJ5}Iovv|A&BL~a+k58fvmt)p^0}uEnWm1> zl10mH#>)9vVXA0ZH+D4M%auS){Q(crf_~+BvmQvJZFv7bsO4c9d7u#_7#2<&nPiTr zOYL=2(0T%nf)CecO~C(;H-|%d>svQ`7t8Aa7>{GSb#OWcbz+G=C1a}_Oj~a;r)Gk5 zSo?Wx>2^50h7*(Lnvhc7hWT;)|GEzF8DVXujJ6tLPQ9VlA|uIKTpcD!`J>$+MswBr z&;2&nIG8XQV-5Hy7Aswl;YYx+ponMaSGs*|=W?5#FEt$OpGBS; z@m~thwEkC9hBDX8mte4Bbi)%#9M(U5is|D?0ao){tLrF!gL;(&vK?OJa9bL99=R`MrBPY zY376#7Hjd$<`5^8h(I`Bp@KC^9vN}x!e&M__D@IzF*glMM*9C?M9^&D!XPcON6cYW znv(fu%js(v?#c9nAX;l3RQH!RcQVc4GRQJLOjULb<^`H(=y3?bpX^SQfT_lNa= zbNW>Z3gqK*ys(1UA#p;+$pq1pu}cl3lO;TT{vXUx)83HN2UkurhbQ&_xn=O%oFzg^ znC=O43diw3yUv_4?BevG|9qHy2Wzl%459u1PYO2WYWojw0zN7kY?^H0d^csV@8EE{ zAq^ZGp8rc8-=`(0VSK!dCYQm2!@|9=h_G-zdbOiZ?xu$>hZayU{tE;MrguC2dpy=f zv1Wd^92So?N13u!F?|a6k91NvjDI;Iw+!j&-!Lm0%k(XG{!3?kOJ4Aqbo!Of{|0YZ z4rXA?({A2qFd{TNBk9+NrW6EbO2_j3E1WQ1>pz|6{;DOX&eRf@jM#1 zq%#Pwa-se6$z}gZZR1~T&TU9$=<5JuK0(b-T5RS!9xeDFJn0UfqGQ*+pg#D2WFU3v z)n|k{4fgr|lf(ITUB>+6OLh6lm+JC+L;Pmdqn^I{l@Ac|q%-)8$QAFYFBGM^ZmbAv zKhKtv_XTmJ6%0>1|C=pC&{~28GG=RH%mp(x@tz__;xDa|UHhV@0SLScW+cTsmqf^~ zQ81ht2!=Bw6rREU+05`uLnu;yveK|JQd>tAE!Ds^|N5}0pPustpD8b?;raiD%b^^2 zvet6}bXT;mjJyQP;hZk`&L^3(qmDE0eDY*8Q+lvJ|7P`EGGO{_FO>$~@s!zc1_sdn zcb;HSB0W!oyJm^91JdC<|3@8QQCFM6jFywr(>Nfa==3|hxTsIR!=jdUNRFb@?|J6*drVHh zW0UFrp9TtiU#CAnpf-h1KbXm6Hq4B$$IFcUSGOP?_5V2}1S?6&SR))R8EyaRq9KO3 zKz>HlK`Y5z=}HCvdLF(nm@ATNx<1}9*varmYizlzl?hQnyFUH_vuTxf|4(q3&DZU4 zIGupsqd7@}GIFQni#}TcxxO8nnhy5=NxOIc zwOh6#stDJRJ)mEal$TWT{x7N-zgC-<_Cj&ynmcOpx2TLh;nbR?SB%pqpBVxB^QTzB zK7jA{X5Syg!F~N84yF%cNKf|91!N7z)G)YZW)QO90=w}j~NmB4=W%noC&bxf;cQ+Al#q-2MGjmYDQbWy2lJ;ix1Kx z4DFvQfgLL#3w<2_GXp^mvlW;vK1eT!F~7Ed($ZZeQoll(8FUnWLe*Fc+JDeon30r( zI$f{^L7YQ@f%3Hd|MLZgGU{mu5zauaH3}9G#9?&2q_zl%2HPl{v0wp=d2fh&!xPQe zF(lkGACG|LB0ax{?*vw#VHc-|`G2rr?jCtYL-9Ny@ozTgbY#A?Nre)V@x2~~rylLZ zcp2tnJdXc&iU8zKJ{_BhfnaCo)=Lw^fSX{vgR(? z;8E+~RSe1Ty8jQmN+CHR&J%Vn9ZQ;*<@Ln}X#f0CJHCh@B|(OG{{n&_gVf0|9sgbd z-n3?=rKKLc9aGzX@Vh@T^J!OJg!Z+aGqN>=6UN>%2fCh__3m=QInp)v|D<0ON-G*W zFA18I`iD>g665!O{HqnSi8c#CdE1Sa<^9w3d_12QG|1dx{!g6(oc%KQ_bt?4UWUsf z^wYo3lRa24{jVlH5$5Z*9HC2oBVzWL_?wir!t?*o|N9*BP6aKg_!kb*W^+{h1bs0n zV!oIJen20$_rH==lXz|axe*A{5&v#C9s|~Z0kZ$x81QSzBIS#S81vXM45w~%!U>zT zSU&V-96`$EuYfWkj;E&ZcSt#&&jZlDe#Cs#3NEYCC!lRL?QeokND_Xp)ceK#ApZq~;xw-S9jXAPOBP9P+JY!y{B%dEKN4$8G z+fwun2#o(f)!nB5t_Qyyl502@$m9N8v37Jg{}0Q+o{;@PSUN74Yf9<-ozY-8)5UPm zfB!^77$MHE+-BlWP6pr3fQbIfyXCN(?sMZJAi zsBYBHBDFma1f^=J4f<)RG(zcg8nm6%A?Xy6nzAI%Hy$iVRa=%dIXF=5WYO&$!- zytT7~bZ~e-OLx!k-E#fhK|(u7N1Hd-m^-(yn(u6U2Fam${da4O%FPuv!~6eX6VUM9 z=V)g|9L!H=P$K3Gia)lbrhrQ@N%{DLrv7j~EF%x$!s3~5j&wb9xmEfro_-sldFI|k z%wTS2TaEoQA@*?8H~3%Ut!a3WA>CAH|6EYU1R3IKg~UHs#IFZ)e$oN|xBxSX2dB|R zLpKF~G3sQOC42bYJ030EbmqC^V#8q7nrR{s*T6jdoqhKPuVeG5F&$0nYo7k zC_0$FItIZ0YU=x065$Niph9T>*%_#=2L6a9*i_*R`VutD`@yMKO+>gO3`m7M{oU{M zHkJe-@ih>!mat!A)Ot4eJmvB1_rF%-)C%Qp|16P)KSBkd24QAfvvgqpyOv-L>EZJJ zuBk~43pV9~{e>&ve?c;t`~Uw!!JtFf>juXE|Gk3I48ievt*CqbuNQ2}_5N1{n{vJX zsrEzv|3B4!I^M(M|C)KO9kchKxu^91yGj?bIW&%k1q-tO#rh-^A5`|A{H9g#$!}Wm zA{4EBSZ0lvKmX}(2U72sDO}rsrU*34Y~k>Um%z?yYC$=~dpk=&=eK1Mo7a*uGm@Up z%Qa!H>3A=SzQPx568{s@v`OxGW;@>hCNy2u5SMGcg9XzrJMYS;ei|CD`Q+nIQUuQtWS0;z8dV-U3~mDEIP5$yi7wAHMa)Pp zZX}m)Bv)W0S7;5yCMay#Wbd-7_yLgfT=lcT9nKrofmf(Emhq zP?B68l>_7dYz0x%1dnQ2iWy^qK{}K#{mm@Sr_}QBl_wo%%7}i054G(?JldZlpYNm7H2%FH zd`0Wl?~y_H=!JGXa28$PwCbo&jHBX#Nahhx>KIYM7?Ez@jl(^Idick{I7B z!XLMwPd-|TJtlcPzO}<|fVPc-iP*X(JAtsy;B$2&G72l}NLn@jxM%3p`$nM`T zpK_pMIQ$uKOC6{s7g2O0OH}=+Kb8smubCs@qGB^lu0GyT>&+rvKqn6YuF`cc^sShScjt<*j>`0QUim`H%|Zu=w%%#1*_g%%6@iW6RN-P^aK} z1)f~;kuADyC#oocE%A4mj5nD9OE5l2hw(;zgEMsF<|b#?908Np``4R@mHKI`J(3fE zPY;XdDHa`Mj>t9PeCy6!b4Bd=A7V{y_2j4cbktw^nWqk)W9+~8F{nHd^{$>w!ndLV zlhS`M9_=5dURfAm2bDB&(D_)zeAg6PMXEW5e>imlz24)0s+E3GQ)O>z8(P11lGb!85q#QGRhxLCN!K6<-XjB_f zJhRDMP&i?lQN_%>AZ~`~aJz=qtpYPhE%eO9phzYL!Gg&j_`~#EYsL&v1=HsPR1VDl zv(=C$8gQMrKC11Q8swQ8giDSc8B30zDHXu|KjM(L-Fa`uGBYFp%g8Ai!D=!RtYJ9V zAGcu`!GAO!?LXH7YK>HNjLILK`~QMJgp!hsQracj}{($i3HPm zMKbGVd8rYQ^4Ci0W;4>t_PRD0vj0dmK{$UAdB;&u%8`i$n$D?HKTd2=4bI#<~`#FL~HW@P{jg-RD<4w$HRqQ!4-N=mb*hzu?@n^mLWB$xQ z@>R{8VOOSy3ZnhP=+%sXsC)I_kUGd*P!@P6RMvP|LSgx7k-56pg9GFL>Q^%JRNE%h z?Q+4vmD0=g@Y_+TuY$$Y-hq6=uxG~Wsq_0hMemj-zle+lr@x2Hj0nLR((_15{kLM7 zU^YoGgF7k_^Fp*2E}ASg$=5G5#1-jCzS&1ef1{c!#MZ(?GYW_PpCef7tIv=(EfJ` zp%gmw#&(`DL;qE9Qo3Ya!Sa>=`h5ltcaU(7biGovYsb7}o~N$YIA%Ccf7hI}zR+lU zk?CY=iAUsHG^ir!H#Y^>nmk%4wAC@6A;)~rsQ*GUDOvhUu4HyG!$^8t2N?;W1Lt4# z-fwnK7bHlo7cQ~WFDN;RTyJ`tv+E7!CkF@X|Ji(YFk?tfq$0+%WpzxNZu0dWxz>oa zxcZufSBx3N{Gk8*eqs7cYdoC}N`O43f00R8JUg(kcyPsNf9Xoc1!NjSp!To#Kz$9CKxvRp{7moTKiU_9n^SKhN>0K3Guyf!qD%8?T zGB8Zm8w&9LpFS`YQFZn0J5lw+cjPaE;eE`=>gk{~qx z0MK6SJGcOvDe;jF|L8?nIGwtI{+|+9<`lcXLdk2kln~ZSu{`)E40Fwb`NG0AJskft z!5w8JtbnlaL2cDB-YtVc{u^;`tvwfW(Ys=JcOoRNH?TriGNwlOa@ zKz_3S91>P*eml;9p8vB4WY5G}zDsMGxdQlkpWHnl>q?3Ub^aY~DzX1v-2~j7+ec#s zqv~t3{l?*>J5f)*0TEOtI*jVSp7YPdC%ymk&lHfQ0%-qX1BU;G1i=3OrwpL||1TN9 z@@v2Vf6R&<4qtrEx)auv98U8L-cN)tH+cF^sq{}c1h07GMdo7oCM*s@$&A3X^tL+e zpqg*Y9Bb~H;&@(NXUtE|=cRt2#9y_htyb`ann6bqL;eW{KA^w{7ix;l>bPfaRI*fn6Gp_P3)9 zq@QNb%xHD#bpOvasxBe*Vs!3r$J3Eg`u7=?;`|?sPL5L13WbmN)Ar3LqWtS~XfujF z^@sF**Ow zIuJ~dD+9rNIpQ6+e;NV#Uu0YIH8@h(Nu`kxTxg~zF6kqpQRa|4RT%pJ)PRV5H;iT| zwn`=J>j+6E9A}e&&Yy1oKEa#_z|socbmHerZ8ASR6TNEe-_KYRg2t|M>ePTP+CSHT zt-voh6UQ|yAPaqM|G5_!WGGcKT!9*xr*{e@rOAVcPs4l|cHyCAWB^^y&7`*1#O57Z7AHwN1nG zWl9J3mtH_>Le^@ZaJKj$gF&2>AMHQAfNC=AMEXo-sqLRd&Wxld3^EkNNi|AhFgu-) z&--Q1m|5HXCdwS2ZZ%%63C(()=?(oQTeg}VjQ9Kh9V8&b?j6gYH2%*3D-;x~Whw9hbwO6CjTX<3A4I^Z$%Zf`2$3-v8s_GZ&nhk$)&1+J9~Z zbLX^c(}VqS&HkAJ(&_u18&n+1hXF|SB4@@@GVY>$#{RSQ-@zs-G8YzwJ%id$gI0d& z#8R8Vlj5@f1s)u)i$D{cpzr&q2$TpF=zlYgPdZ}8or$N4@?H|$|3N1i{mW$NTeALn zpkSvFloZ_`=&0NEK}O$|bH3H)t=SIxykAr`Y)um$BOy=m+bJxvnquy@gCfq29*qCP z3QQGMaFZ$>bB%+~YU!Z;2NMJdFb<~6hB;sGnVb*oFP(wp1Q;JAz&JG>@1h0iRU3}> z|Bn`sg}$+W>I16fR1*rTF-s))3`;NJwEma9;2>efLdd+jUDFLpx&L!l5#;+snO>Hc z(c%7|q_@#g7cTk+Bn?k;OcD7?)=d3A5PXFz@T7Mb;uGbxSn|v z;?5{}Dn7fxjM1GAKBJ5m>EU}sHCs<~a>982zeX9VNk3CxxnQYn=0F28UL7Oa{;NxX zO|i4_%*YDk`&p9kr2Ze@daYX*CKh!_;m(-@~$g}^!cu-=~RL^=QfC(}K zEPGTQ?#Ev!y3< zji`OhcZ34z{rf+;fUxI9dfh&v>S@uz1ta<{I9pwz4;DIVs~M891Soyfq_<6a$E43Q z>7o4t90ep1F&Qj1-h59i$Y3x(>rOlElHt=UD@iBL(f0@VO)?%YF30{K37|-IfWfFF ztOHylt|2oJEV!1o0{^y)yNoBjO5dJmDSAd!FYVZ(YAJY9ZU3!XlG!oguqW3HGorS0 z0T<|N^(;lt)B>;~OdsR-RfAPy_`eDKU#13++5F(7b>4jVURWd5RONxF8pHDh5LGi( zPhof~czy;29;&)(e7fqRpO>jq^|O&W$2M;9ugGcC*)^vM>p7P=I zdT64*?Gc`;D6&+{8KD#YWKY)51Du&AW4VUmN1*~N-jBgolVZFCPse|K9t-5eruVuW#8V>6V7svO~`5LMH_48`Lqo9fYFYfJS z{Q@@}-2wqKp=}z$wMSnu+s4#!}lo2sjc7 z%**eunt;n}oIlVS0yS)&Kg`+!y3rb*1Hknzv)7uMjxaTONIwVWPp}?>eAnbB)SaN! zcjZsEjt6TQ3HUjfuuQZ^ScTA}59Lp_y1~oo6Z2tC#F5i1R+=hjf>s)QV!A44gJx(> z!Cn#6g|7>mMxKDF+|LD5b-o!;@Nh^MDI`3nphe_raLGl5^xPeu_2E^|eG4~O#}$DS z!XM*7nI-~9XTlv06@XDGF+2u0Bp~PYK>0o@SYkB<&d(`at_%7pe~D(~!orHk91!)$ z!h{a5>nyQef+iUc7)Ae5;r^P@Mrw)G7n%m?+@HF~P()JPS$;1`PeSQU-In-%qs^eDE}oT7n|E1@ao7mYJY+dr}! zFtDJ=vQP;dsd1XIgKIU7tcohttrl6q5%Bc7z){EThr`4FQwA zkJkn6Tkknj;AfF*!BJJzYhhggI@Jln$)AkZ74RCVwUMKnV@;Mv-dc*D?-3)BwUGyP zcnj-to$(P<;Mz!A@MM_29PW;2q$(`N1IYDFvxX_pD?S%={ocyNx8LLw-T5<$@U2(UH=w9G4OW=7wTtqO@ z-ak4WT<=Hmis(ai(8bO+P5Gg2%7=HGt$INEaqvWXXoh5Ep92Q_kL7)>Bb?etL>~iD z71!^h3%soU*Qz#{%f0Zt8?Iyt?PmI7PZ@CINPqDu{>M%0sGb~(tSX`f`QS0X~(g_8ns!e zYuXKr9s-0uDkw62L%tdWeqm+o+9*A#6MDMc2J4~P&`Y*!phX_bn{0gq75u1Rvh`*Y zOa0bvvgP6O`ycK0(FOJ{NSFf4wBvAUw=>U!G=ZLV4>F8(GwHe+2FMd$)?ta&3OwZ1 z9jpj4vbqB?vL2o@!4IsA9j)m-yxXv7F$~wYcNpPC4+2khRL6&?jq^^hu#<6WkBhbg zCA+TUgy@-|e8W0Uj-uVKj9HPU(BI$Daf5}=dm$X#^ilJCx?^9>D7s(_U*Bd{cNN@)6aePU#_2PV{6TGgL!T>Ps>Jz*2eP9vmQP7iS1-B5^x0b@F?_V&`7zWQKV=kOKX{=XVOR19p*8WVXi{W`R_^0-^QfGoy9stk1 zp=JM-gvWt{eL4yM2lBm^gy+J1Xm`-_zo2u(XP*Szj|MldD2*#H8K=;u-@H}*@Qa?j@o0UYk2s%+Lu!Bh##Lq)7eG~}$yVjKMNNC|cfQP`q z>_m8$fmb*kp5K??6Nb;5^be)Bn&(WY0T%EF)BvB?fF!UcUA`mEE5UIh-V2OkzdB0w zgubmAJPSbO5MKg}wuI*g%YkWlehs4nWT-D_1m-&cPJ|-^XXDd@ANPPi!hnaNAbd^% zt851uPdDK#vcq8@gbdvT10Z}JX7Eshk2CmQgP8%QKM$I=Ze193!NhAHcpeAS4R7*p zFcbiXcS3!op8JIeN7sQnX`s{~5M4uf{$NB|AI2xh;G^J)@mX#}`2kD~OWP?m*Q6_f z8Qmnni-9h-HR=R1j5>i&W(>;l)ROj8&}w*|4+*iY9y8C`zY_ivo|y4+)3)5kOo;I; z(}eYap`jg=I{7eano77Rv2jPGI>Qs2>RgzLVpHUAf%eBAFM~*mApvrZ%C-UA20m{F zkBjjKt)ey^0}d3!%b_MyAUzkr=`RH9L`LhHXT3a1Pf8qDlVQ?TSG^4X;(t*UpK|^D zNtfDI(U`TLOghW^{YVRDTgtjjb%${W{u-zTL+^yYu2konUxU?&=GWEga8O2!y;iyA z*Y#>@AyFBkj#*Bzp6X|Q4O4B*ubb3GptzX#7F7lEfM1?9T)Fhqx?OcMzwT5wg2`dR zyVZr}*S+dN^J|1!1C52Tqtr*{*8}P=^Xo;hMPg>MI?hz-74s-J)$sL&It|w1Fl@1!51t!;Em13BEQi0As;(yX z8#T{_eXG6#E5g|2>T(zf;jiyiPtYs;wNm|NVpppzhTdBB8yGysdh65z^YbTFRhtU_ zMV)4TZBVOVgo6n;s>fi+fWJ1YUq7d?Eowb@N(|eoHiF^duWhOvoD%+WtbI*AW7aP) z^~A7z>nhVEg;qY6i)#tBtb2?U>R8vAU-c}vfC$#N9{YhZ?{2L%wQFc4pi4o5t*io* zuC+DQq-$$ArnrID6cc-;m2c!W*t*9sc(v8IHMBpHxz~EesNM)`p7}M(deA7%1J;w! z*JHXd)=i6vnTM?3U>J>IW37w8_VL%F)*Vgg*W=cu=GRnfwb6iSR+XvyTh?)=v1fSJ z8;0~utB)ofvCfGMSxJTTi#%-Vd4A*`^XtOMdoW?Z;`&DxnO~PgCYxVlB6FeB!Pti) zUz%U9M87kvPKjP@*ncltPd5&%CC!aqVEFnVI{6sNJU{w`PH0)%qCN95%(DKBo_HIw zWm$hmOXCz~*;oD_g+=XNS{*IRv3~^z4wEM2+wp^?!sc2`ZtvW~S^+(&u)*tfk(zmB)>)5dFA zC)yLy(15Lz?E@y^FULC7jzhVi|BiLK{gZB4$2!Bl!PMj|`w}CCbL@_AEE+TSvzHnE z&$n+MN(3*oTir#!`r8}tq+gfV<4o+O_A(Q8neCX047Beu^0?B@^WYs+Bt6(3VhXw1 zZfdezYu^O}NQ}MSu4@VzVs|!D@a(HhA;awMCiW)#NhAJS?AM?pz`Vol`li8dw}0$N zVRzbJ-A=!}yX^*(>F2$+YlJz%{`EQv8)e5v(ys^XudkUrj@dwWo}x zut)86H`A}j?H*(4*Esv6d+66w_9aizucz%J?uK7rf7Ua0PwhM{Yl8h6jNFjxNp?4r z<$3!*T0bo7MLS`*o@_t<7m<0zp0+3bdd)ts4gH#8KfjKCO|=g<3{JD_nH+D~kD44a z>_gfZwU}wYYYcFf{mP$|`8|7}NjTSz8`2-x7aG#@?be3$NA`bAj!*2HOped&CML&1 zd-B;t?+g13)5MGI0@K7xJiGTKie75J`x*WE#xC5Aetm171Vbv6$8!4?6Z^frtR97} zv|olE9Aj78&0skRf33CeHNV!``x%S)$^QFZ%JGZ+yOHk(`>VY%%(JYGcD`{8o9*L_ zuiIjm8F6j3SME=wx7p8kp`n>mJ57x#?(Vc6L17J@`MMLfti7BY zR#R9br~U%^iOJN5(4J`U~uruH= z{mZkuIK51Zb#=Cz%!fJcOij8wj>+7^srr%%KEgSpipU)0>}`a3jI*y{|5#`1DU_~{ z)1eckJKlN1ROCcwgsI5M&M;70?EkG(ov8;?!qc6lrY2`NFBxXeaw<(t&T+0b%=B}v zI-UwS-#Pqb`gNhR#Dw*Co-<*WIP*-6FLkFbdL6VQs9+N2jjH|JCjTY zd9}0D{JPdD>`sMT?;HcOTKLZz;#^=<)N?itq1a*0D<<|PXBwu0bhkLQNz~SG=QhL4 z?anF_=H2P6h1GRTc(-#ldL;ODuX9Up`ZdCNvKRdt<(#cY`>=kD z6E@b_V(jHnXD`G4*__v6K z=bhHZr@!cYIg`RBJ5NuiU#~c48Z&;)`N(uNQ=B#pD0ZszTps(yzJB(Z>0F;LLA9Ve_5gChQ}pNh=Eb#Cg|*edhEu zc^5jZP1qOCaFchj=Uik0mpEUyq|8g5r%c#4&TWS4Z=JD*t>w;K!`AoC(}wAl&Kp-z z-qp?z*U+!E&UdEZbli8>wlzYR`<&6H)M)Bh&=wb{Au0Md#r&PV^> z*tf@3S!M6@M(4fXFOnh=5s@(nsEA}{h=^oHW<+LYgh=L?nV}ik(F{?EOw9-pk%){G z(GW?A%v*$x87ZlwW@PA?nxlvgk@-F6tjEvq-(P)Z=9zWdYpuQZ+H1d%6%(z?)ro@Z zcF7BgcEc6hP!)|CHM`qjxiJ2hnfgwuq(bJ zl*y(v6Ut&w+(qtZv%`B6Z3???Afc)3@Gl5WWAkvGO=o+$Lr7%?`#A3CnQRYVdvq~5 zYbsjuhR?IKxpK#UC_v97xhos4Sy_3U!Ezm5GMi?|J}^czlPBg*b9jGAUhXhSPOewI0bTuopp?KTivYNB6x(| z{U)JfY%dIo$5{dCKgmu-B&XPOBT24}{UMIfX?Dk>gxcBPeeZnFOvrA1l$JZkp7VS) z^!&}7XP?Ew7ugql>w5a%CH4sjUS>aq3mt5abTZh7E}+z-HWaB=Mp!OJr`GmL(Xvnui^bGaOxIfOWbZ;#|jsO>saH)JWgDLTQZm; zvACruB!?S?d<1a6p|$qpuAC>0K<*1{T@crT?F{DfK?~vBnb^-z?i1{17`F@i8P5HH z{p`byJV^#4I37>aNbUq;isGKYiH_ku#Yo)spf!?$T|9#&a*b2uwmhlw_YTU$qHDz~?b&@`^ajn+Dy>laJJ865XHp_!Zu1((CE-A}aH z+^&ZJD2+>4z!z-kfZrrY%}RD;A$b4$4vp(ozFdnBe9rUiRv%l#vpNp zT);|FUdm-$CA5rN{x+c%+;7O%O0Ey4z9R0mkBD2$HEtwS!Zqz6RLYg0yvw*l?|Nw7 z{#VWgqP{D*IxJGj4MUe&$Bl;RDsD6ekoDZrhiJp9xlCL{HC$s8EwY&_+DE9CdjQ-z zZW=OJ&&`0`HZF1>($&EI0b(QP55XN=I%qq&t4QH)?l5S3xqVoqiCeXVmTTtv;pFe< z!azH~Ek`pu$h}@baxL8J=Lj8gb4~XVY~@~~Y24sqHQJn;+*^x@#_%5i`STe-F1~Rf z`X9%q&XU3*}d1xiEe+XyH5$S|7e1rX%>nxU3`jKXB(q@h9O-3~$~; zS?JGSK&y`Bd-<%mm^i-fN3W}%?|<=pkm-ZWU_Si}`9FkD@I9DZ%uv3@M{_X={O`Wm z#`B$!f3YXYCGo%d&VgqpM&EwAm~{See3l%?uflTU`PcASVFEu4ePJTM2P0?(|6kunXwP>-e)7Wyvk0a_uy=PTka z<@exVE#ptN5p4zkqD^Qe|1P*id=PqFG4J;FI!~)B;a9@xQvQ6ghvw~nW&B8_tDH|< z;}vu<75weK`gSpuygPuD*YTgDCsy&9*ogIfA8bT5|1Fw!4gWGeN^R!<{)TjG`DqBL zju#M8J^xW(H|@kW{(YEf;L9*tHu6vSmUA&X_#LCXaxTv=Lxi9zcJl(x@m{`WA1%_v z=b?8t^BQRT`F5ZK{6U0ykPj{+jTSeb=ZlzO4)GtM2wVBRNahiK66X11{KiG3a-4q- zDLly+dQ<4h;3?jK={CL{yM3C^9#7nM{&OF4F=zQ=*k|AA#{WP4YZs56ByhWVY%;6GK|0Q z=05a4m+%A<#|fW9MG#V8MiTrg$e2SB{;qDLJan9uy6*4XoxTtdpuOw1#W^c9tIPI z+STMtl5n7$P_i%|&ZG#FP+Oyf-?3q%g}ac;RAJ2<=zn8`OAs6@_+ybYp%wd{E{Jep zoG=~BjTiE<+yvpCcWB{>!lynfE+#{G&{t+ICR3ObO57}=21T7MJOVUDc+%aA*i(hE zJqb+{CIl0jF6;{-G(-3vW@ZW>-%GR{VGFpkg@yMJZH_Pr++5)&EHYP!#~N-S548Eh zNUY&rAQZq%o=}NJ@`YDmaIr8M*F}Nwj_11Y9=1Z^1~irmQ5aB{3Ej|LAza)|aw~-f zpd#UHB+-h6JAG}<(+P#MUgY_Ac`&6yTVGfwiMCfr+DWKMcp3JZh2zN9eqk!?9T2YXBDsTZVbgYk zEy6oEFo%Rr&{_r2cV=D85#irh_?WN*v+r@C3h1PejlOnD_;UleQH{?2m3y|v+Ccxlzp%ijmf*Z}a zTR4Dobwk*P{&7>V;S3|r8}7aTJSF8X)tYPi`ZuCqYVJ=u4kF`i#H$b(4h>G@75p2rdS;wAtca$k80}3N|rU)E_0ex#DZ!y2XG`h~}Oz?gMdw zIHtl&bTN72ZoKL9#jP;2*i$s5QXmdSoP}Z(PWe*t4IJ5J;tl-JX@&SIVqYot#L+Gi z+lNr>#bR&oMtJAH5-}D2mx?i-J@KZdOq`BdC>NjiWybTJQ2ZVZq*A;GF02!8d_Wpi z;-6aytrs(pnQHMj6l;xm3CDA@$n7DyT2b5SCRisfhyV5BNcg%<4BtuI2JwFEU8DFk zXgkDju*gnvg0E&6X1A!0C5^q}vp`Mau&0RDEItdgU;GZ}fLly};6ZUIh%I6_&>?Yg z1f{E0{2`Id91)+oH4}=Zw`M|7$FuyTC}8S4B_;#4iT44W7MB3Ei)p!Dd!GJxR*e0b zOrI0CBdzDfs!pO^6f?IFx+D(wsd#>3BEE$q+aaE2$iYtW{ac+-oO(Oay2J=L*e%+4 zg5MC27LvW2;@6L3{$r#s@UHcjR^VoHNlzXkK~5^cw=F@s8;?&(YCsECq|4utoF?tM z^*WY9Fg$Iyalyv7vLNQYOULSHZ{iTPopRv*~ zocB1X76&k1df-2#GFZAjmC`yyiU}v$P-!EaNsx*Ph?Xd=wn;8Y+JbN1$x`iM;-*MT z&k-6WU73geH(FBtNhMY4gN4UPSKcJSu~PVB#7&d@2N5k@vXGf^(io(Fy!2WpaVJP4 zP#+Vew3|fBkQSn8XG$lo5-m%5-Hk?>EiLffP7E_e3Pw+yDqU|U!D-UGKM75j?m)I? zNKwevOzBI+lp}qLb1++)w2w6ANTF~rS9)MS(dJ4UkxRE*+6wl3>0z9M1=1Eok|#Za zVJTmF1DRPYJr217soElgh0-2qES1*xAlfqN;r9uxkg8S6;7aKnPE(OIw9doz_P=83 zI}l4GmzU_Fl}hin5-O8YuMjGi!ha%EA^iYarSvoEd!2L@`KXdU`IY3>OOtB}RZI85 zUX67AGSN0myIax!YNda|V4XA!Rb4MF1$UeDM>452NcT1pYLwRB>V(qC0Yuv=-8GQV zZs~uZ?Ue?D)+Bv@mAK7PI<|ekTgt({ACUe=$3G|?T||N{QaR4-A?bP$(ORV@bn+w8 zyO{QmNpGWAk4x^iN$#Yy33uEnNyLF}lj^}eE%9w$IZyvvqeVFRbPqy;d=$M-k|(3g6gfSbxSG5fbCDq*#t&#L`9u7G#*q&! zCAk3EJrF8A<(HunDEmE5>>&AcDxqMx9#s({k3b=X$}jjn+%Zg;{3{xCxO~r@q|rwf zP*D-`;||dx$$lzpQ;tg0XU0H=#IrJ(_2{T#cqOSkAbc zxI^UkdeXrfDhCA;EkS+&Z=OW?p)jH)$!%~tSzZdKQ{>5>pMxd2XQ$a~;)ru>NK zALH_!_bhoPyv~-V!RsmVvY&`MRXzx>r^%nhkTcWe58?C-`K}Id~T{9@B= zIS)?Hk^h9#x$=HE?Vc+y{EL*`vU&%h`Em)oULZHa>pVHU7cHDGFM-pGZ1pGI74k7Sy;45xb=uqiisWcib+LRQjs#2OEAYBhp0kk*mdP*f zAXF|7zCox$PJz>v@^p-r>*PB_iCZOq38&Y~``~o7T#!s_)W{uS=y03mB{xZ>Rz84x zs!sM%JPy{&DZ@x*o1Ev}E)T6iZUwDT&cF<`LvBnY?oRo4-{Z|Q6UwL14fe`wSJ4_x zaz#F&X1ARDF~R+^^cJB5@@Fdv9h7@RxkX<15z!9GpXL#2m3x;GIwE)F5IQEyuM;{h z-}wfilX5AnoRS}g3vF_rguLITGM&?ZY*+9j-5^1 zOLE2>LYL*YexcTAA_$q<#&J>r2)uac@i$T zl!RGinp2)coPv@JIZ4^(nP|M5qbU85OU?7k^+Yq2=g^ETW%dU|a}@XZw+RL)i;4*K zRML>(KxJzQ(SnpA*s)-xZY|M5lxk>%DkmTprknsbToG|I^ig6^Wf98Xa4S;j;d9mV z^N%RS4j_Xu%9&d~JXQvbBwDP({zxcJS&z>T@yd4eg~3WQy1@`7(R-Xcu@6=1aq<(C z$!SDOR1(J#N>V~_nv#{PUt|7DQL4}bMk(Lm55pB9sh-}SJCg80*Q@IdJ+#JO;m!~`q#VWBXjQs_jwm-Vj&k;6MC(%gYS90>6$NH)C~qQhHI-M^e@iRuGa2qmfC%t!xAR{LVYOHuFn zkl3TtAG!&RR+B#^l&Y#*35`(;(cQci;$bJZRtWYDc9c@29^&sR$j$pUo?BFR%XA(DJ` zIRaU%-o2J|3)EHwQmFocK$fa!aA7S|%U5{hy!~&5`W)`AmFjJ8lX8)I7`Irlx(|_* zsCy7esd@mBl&Px_Nx6ChfmEm`5lE%_3<6oF{*6GY)HVdNUcFK8rsb;D4n$I;reTKL ztiFgyYSlZBl3blS0z*W-nv9utoBABai3Zh$j^C&zB9I;GUHBflQ=N`;wOjos?t{H< zRfjiC>Mw|-S$zZ5zhAAuOnX4}UrjC?RJUNgz;J#}RT0T~bvd$d zQC*EJTvDeZ;>)V_5iQ)Ieh+({YB=Pst6#-=_uo?iUFzd7*sY#JrQc8;EPPYFfU0J+ zr{JK!)`W#!S|bc{+FC3uXalgY=?J zkA$MMGe9w#=TA)W<*2{*U)*f5+RQUVi_?bopy=YYn4gF?SlfgQ4$=ON4lz`#MFtbJ zB%Gl{?J3VG@x6bOw6l1TCTkzzMVF#UN66qPEf^7x);{PUTB@cX;xXEvFgRB0fnrV5 zUdQa1uJyz0I8GaSlyt{yFJbE@X!p9W5^B3UN3xwQpfCOFIjL*;*qEPSKt= zDfX$_o0uG?X`Vlo$(OC^+W27N&d?%$CfZD`2DOl*y@Z*{JzE=${yj$W6)C;Ylqv3R-pa-IiW%=VIHBSTI(+! z(FkM ze5Y0tfc|$~+l5C%m$v!@33hAGqgroh!RQ7zwcBu!GWxf84f^Z7mXn4{zlI*b>Fk?C z6LbNGSJJnyAey4PI|ymIyBF>$L%)t*XX&RuB(|eJgpn~ow{{S%r{0e99;iFGrh;@o z#2&2A#DyE8XX40)>Mvq~4%2(%42A1&Rru_=nLc{&Lu5Kak3e*hdMrLDM(Hmjx)?nK z_g;Tp#xBO{Z{V_y)8EEr9j}kam(jucnWbcTh%O?(L-ikNVJ1NzxdroIqTcMSM$b`9 z(t}_yS^v`^T8jP}UbCb0QoLqI>w-nxRQ=m1T4anKd_SSF`m)yvrRh({5=z&@(F4Zm zBU6YrULWa3cb}j?3p7!GKbqJX`Y0DIlBsXR(<4iN^)=#V>kELU=pO)0)zeN9cbe{R z6Pm8?<8JFKi+-Q-5S1A$N{0en)V&e%F3NbM)hAsJVK_0;0{;Lk~kmpL?Fre7zxw z&;s2bKl97eSAv_bZ^LtYvEBq)f&LRT3iS=%HN5?Asebf(GP6w2MtfYLAA?&f^}Rb$5c^rD2gVV%Uhjjd*rwmti)an{fhB|*b@wBLcIc&} z2<>$1&$JTUtzSpY@705@5UokqaBny3i>ryYU%&TjLI?EPZbAq3UAV+r^pA0sAJS8C zmAC4hSmTJEi`n3qzQ(tPr~e(--%2AhC-rC1$xrEfpCnqFz6Q6zY5l#iL~GY4;ubio zPl4Py{b9(R*WZHE7xmuYUeYf^f11`F~$INGk;?pTA0hwH`WNgA3is2rNE~Oclv4~;(afFmD z<33C(j`1HX5@6g!wt5d8`EYJZL#sc`w0~o#dAE! z+y4rUp73y~F&YM!8LuoM!4<}M3?M6w&tSU9Xn?_DV+7(XF;=f9jZ)*R*R;oSnXw$) za^ov-D~vziCvK%-FGBxYXFR-!h*d^3I{td&&__h8Hn!&xsxby4GnW%mULfee*UL(|C9G^v~(cs|V4!6;{hlo3k9}xR);}XzbWAvR=6-~z3_eieU zSn~y;{l?1Ugbo<1P+SL%DXm0nF*x+PL&iVQPg{*_hqyZ8^j&h0~$tR&v_SgqaQSI^4{M*L}>eJIMbC^Luz5X|}=ZDDx7WjxoQ7 z)BVkJa5~m(gVS+l5_(;{nFgl^oBC0*Jj5L2Y3{!MH`KfiuM^DV9>h*G4fOORQw$+m zviTgIrYYv%aC($^08WoKpNG?_<_Bo$W6Xh}q&wEEM8`}s?azpoZuWD3NpPH*nNMiE z*$XXaf_XcR*hF*BHR5KNdFTt7<|9aYmN^;;&NiPyf~S}XnER)iQFy9PGjnmBO*fxJ zaPArAHVDo%*FiAH+zm6c%^y*YbIewhUaq+bX6BlUZ<#SWK$~y=3$z91Gss(>$-&ip zQ-rIF%~{@cz5TDioP>o7%|u)#OU(o%X_+|}Ia*;pfzGwkykJsaC^B6bw2IBAk(m^MT&p{r9*~X}*O1x6b?pf>q`nJxOrAdFOu!RhxZN z2-TPqmJ`}+S|1XsHJ7d;RA-iz5vn&g;BMV!?yMkMgINyUMz zi1{FP=a~8D6*73-9EyE9Y5s(H?UY%GQL4?%Ld!XAzK-MBZgLo2&YIgXNu4uekC46d z=6Y1wMRNEFs6r z!<8CfEk$AWw47Gr23n7rgo3P(QOdzqBS!oXOS#j>bu*#XtJ_F0%sP6RP`LE~nr9#D zsaroXv05=oMOxnklU$T#G!Tlhp2Ifvx4IgM7Hj2Vf{wGeK%&K4Z{ltpY~AbGCSU&> zVugnhd#DwL>o~#s9FZhia}Y_ARgXxLtpxOi6zf5Xgc)U(A&}A5IMh+9^*RC>V@*XM zW3A!nBxx4oMx#l$9zrDJtW}6)yp@WAn_z85BonOxh$O>WhDb84i72=%>nQ}1Z9RcN zrdY4~DxG1bTH6rFH0xgo#68`5AJsp@awC$N*1r%*j>Vx`XIssPWR5itk>px$;grm^ zUPd5pYbpYnZ?z+k1y&sb$+K+KR=)L`HxO_CTWo!bND8d)5J{m`j7XMRZbY)ox{Pl= zE38>Tv|%f)CLFOMs|(Q;TWyH0#JY)NS8DA-aAj5(f-ARncDTt*h1IJEp-O8dqFZMj zMO&`2jw8DD)<=l0+M0ypRAW7XV*kNC-As zCvezySkk@Z%uZ|QAws*Y0f=s|l?Q`O)&Ur7wwiHg?zhtKA&mppGx+9n&>97MEmkGc zf5_V6t0PbUYqc7X{v+0GxNyumf%G4@HX!{ct#^^uQ`QS`q0Op;3#Y9_q_y30!I`tx zP&jkWii0!ft^RQ4qV?BE%zu}x+yJ_WE?XCHpLJOK(Z4&bf^LfGx;5(^LS5EJ7(u(O z1Gscv?RihBFCv2=*?~z5s(sb`drw*&gH2)}`1b?~+@iYzDn^w4I$xv{d^u zxG=`9g$rZtAor)lPP2clBb09U!Av{O9)g*6y!{~zPOv|O!HM=i(1J7U-(WD)ejfI+ z?EAKoy=;3r>`k#3!roN-IrK#LG<~{|dQn zZhJli8|;W3WTw$x3Beuq$n8YiX`hAMZhI}{_S(B3*JM8fgU$9Ti!}DzGe!_PV2jCw z4%#`GB3tZmUuHc0?~wf}QqyYxf^;3RV{s0S*&iZZ$L&tgPTFBTD21o&3x#C5&Hm|e zLZ|I*j}dCOZ?WTPn>@m)4*zQvrjP^BN2~&NA2wa8AHpPbV3=fleyy1v$SE&CLWm(_k>f*#?85P5}&tIrR%D zrf_Et+HxP~0IuE$=O}6+(piR$h;pv1Cyf}V1=Z8vIrA0KVx9b*UgXEbIq&`h{V(1* zj1D*0c@%^55XZt-x}nb3heK>w{IPc;NjdDWoCE94` z40KbSt&khzm;Bfr8%FPUKN%}cLu4XJkHsPUN_#E>YHO&W`gsOM%;=Q_sHIZj3(>E=2YpgY&8!Z7D{^1_Ha-|2?#0w>VhF}?jS&pCsL^PNYb zyx56G^DJ;SBH}`4ER>fzpLBQ)dVY57a6QQM3TF{?S2}lMa4T|Z5OJ}y9J(crhz%B_s_rg zZfC9Yyl)MbsdHZRX|PPa+gT0bHfJ4(4bD-}8l5ws?Qm?Molcm~pyyYs9sfmM(|(NB zqqpX5NVhX-J+}KMDL*E?$4Q`ZJ>K{IflhwR_#UBulE#D{Ki%imNV|>644CDs@7tK- zfakl2T@tYV4lnyQrZiv#Xk`JteKbF&JfHyFih#=Nq_H_*-j9T81C|xFMQ#X_Ci&g^ zE5FF-yTS3#IO|t5qwfZ*x9E3G_W14l%ipuiv$q8OzUPZx>ARr^GrVYe-wgq`1xEP( zum75BK27JgU+?!3ZriOBV_7>ftUo-D;Q#lR*LYiz5w&5W^vfqiUg4ivpBuHIr>lPJ zfDO;F_ly`6GcYzbIx#YKKuluffB}gKk;8`dkB;n@6cZiYe|U8C!018w*5D2G*5K+5 z!|xdu6Wg!<@Zp0Zlal&HM-CV?FgkM3fcOEC{Rj0+9566?*r250BZ^MDt3#6heB9s42KWu~o9x%mLyPvy^2_i@W_ftt|Bdl`!LPqZGRwoy@{9GL0p9;E>MqXV8dP4c@Lr=O0kEa zP)U-S=XxoU^+oDx4;uX-N z5_S4!PZu9jIS>pWdqG5Nb?T56d2ouZHj^K+@s9RxBX8xYMe4QeUgX_3ld#HPo=L(Q zm*X3>$4)Qs!%8!2-voS*V1cWN7S{PM`-)mCbN*+tNn`#My1`}77`t?cv_c|P-8)fm zbjLN^tWojBD=S`3FlYC+9PBnYMLrPPQib<6ExCWC1J!T_R&-Jdw`fbh{R2E7bv4d6pm#ZLN@O6+2y7({wBleWjWoaCMgl}V^!@XX9c7o2PSw38)^_j7AjDM z0dPT}5@J2X+y(>d9>N7Dh5;7(`;koyfmJJZiRf}owYh){WaYk4y+9-h)j#Af8~3rs delta 715 zcma)2O=wd=5T4zA`)q6c4YqwJEfzt;i|_yKYw?i3q9CQxYDI#Wyd-A@QAAs+5D<)5 zD){KZgLtr5(t}mEUKB*zi$V_GR6G=+r%3FjBK{0P@7<66c4oerVRoh(+EhcEzNzG= zo_@bxtJcV~8vXr<kId8egeqzj ztJBvz#`vVlfgphFgwxUII`zp9xo3fX>?V6<>kS>>Le}K5cQokP-r@sS;{fXO6LFxb zoL;5FZlcK#DBW!T2H?2|O|Hgz*r9*kFVuRO|KF3H8p~Xy9jY9@&Cc#4*{EJ;J=#$Y z&)z<>!4k#9Q(;WOyEKfUQw2{{>+f)3OD2Go^Lw3lMRM+;ip{P4us*R za;cPU*imyvX~@;P%F<-NDY8yrW`&-ya%tW1QkE{fw5R7hFK7FX=cc?|^lCTn6PwAL zz@Ogu7GJJDoJ-HVoQ>5+*JfpJoIkiGtfT?p5IAfn&17IDOuJC2*rppA!u3mmSq#FW zDT2TX9Jf#?m5YWYLcds+tvmchqce}&WY|3~7tg72N-VijRL9Av1qm?0h5}R&Hrg(P zV1U5ahY|!BDI$l+CPo8 D%6_xI diff --git a/App/HiLicense.dll b/App/HiLicense.dll index 13c89cd7a30d99c51ed0e518d9819745f432bf70..19a31a19c8fc57caedebc61f6f946194309c37f4 100644 GIT binary patch delta 315 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
Assembly
HiGeom.dll
-
+

Utility methods for working with linked lists.

+
@@ -159,7 +160,8 @@ Class LinkedListUtil -
+

Enumerates linked list nodes from the beginning node to the end node (exclusive).

+
@@ -169,22 +171,25 @@ Class LinkedListUtil

Parameters

beginNode LinkedListNode<T>
-
+

The starting node (inclusive).

+
endNode LinkedListNode<T>
-

exclusive end node. It can be null.

+

Exclusive end node. It can be null.

Returns

IEnumerable<LinkedListNode<T>>
-
+

An enumerable sequence of linked list nodes.

+

Type Parameters

T
-
+

The type of elements in the linked list.

+
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.html index 9355f01..d68ae48 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.html @@ -111,7 +111,8 @@ Classes
LinkedListUtil
-
+

Utility methods for working with linked lists.

+
ListIndexBasedEnumerable<T>
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.IToPresentDto.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.IToPresentDto.html index a9f0573..bcc1d7f 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.IToPresentDto.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.IToPresentDto.html @@ -6,7 +6,7 @@ - + @@ -97,7 +97,8 @@ Interface IToPresentDto
Assembly
HiGeom.dll
-
+

Interface for converting objects to presentation DTOs (Data Transfer Objects) for JSON serialization.

+
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.JsonUtil.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.JsonUtil.html index 3da847e..1fcd9e6 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.JsonUtil.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.JsonUtil.html @@ -160,7 +160,9 @@ Class JsonUtil -
+

Navigates or creates a JSON array path in the source JSON object. +Creates missing intermediate objects and the final array as needed.

+
@@ -170,15 +172,18 @@ Class JsonUtil

Parameters

srcdst JsonObject
-
+

The source JSON object to navigate.

+
jsonObjectPath IEnumerable<string>
-
+

The path segments to navigate through. The last segment will be treated as an array.

+

Returns

JsonArray
-
+

The JSON array at the specified path, creating it if it doesn't exist. Returns null if the path is empty.

+
@@ -198,7 +203,9 @@ Class JsonUtil -
+

Navigates or creates a JSON object path in the source JSON object. +Creates missing intermediate objects as needed.

+
@@ -208,15 +215,18 @@ Class JsonUtil

Parameters

srcdst JsonObject
-
+

The source JSON object to navigate.

+
jsonObjectPath IEnumerable<string>
-
+

The path segments to navigate through.

+

Returns

JsonObject
-
+

The JSON object at the specified path, creating it if it doesn't exist.

+
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.StringUtil.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.StringUtil.html index 7b10e3c..f57814c 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.StringUtil.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.StringUtil.html @@ -295,7 +295,8 @@ Class StringUtil -
+

Removes lines that contain only whitespace characters from the input string.

+
@@ -305,13 +306,15 @@ Class StringUtil

Parameters

text string
-
+

The input string to process.

+

Returns

string
-
+

A new string with whitespace-only lines removed.

+
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.html index ec4bee8..8b46f52 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.html @@ -345,7 +345,8 @@ Generally used to suggest a name when generating or saving files.

IToPresentDto
-
+

Interface for converting objects to presentation DTOs (Data Transfer Objects) for JSON serialization.

+
IUpdateByContent
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Mat4d.html b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Mat4d.html index f60f496..ed98c4f 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Mat4d.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Mat4d.html @@ -503,7 +503,9 @@ The matrix is rotate along axis with given radian.

-
+

Initializes a new instance of the Mat4d class from an enumerable of double values. +Takes the first 16 values from the enumerable.

+
@@ -513,7 +515,8 @@ The matrix is rotate along axis with given radian.

Parameters

src IEnumerable<double>
-
+

The enumerable collection of double values.

+
@@ -1513,7 +1516,8 @@ The value is Vec3d(m[12], m[13], m[14]).

-
+

Fixes floating-point values that are close to zero by setting them to exactly zero.

+
@@ -1523,13 +1527,15 @@ The value is Vec3d(m[12], m[13], m[14]).

Parameters

floatingZeroTolerance double
-
+

The tolerance below which values are considered zero. Default is 1e-12.

+

Returns

Mat4d
-
+

This matrix instance for method chaining.

+
@@ -1654,7 +1660,8 @@ The value is Vec3d(m[12], m[13], m[14]).

-
+

Creates a new matrix with all elements transformed by the specified function.

+
@@ -1664,13 +1671,15 @@ The value is Vec3d(m[12], m[13], m[14]).

Parameters

transformingFunc Func<double, double>
-
+

The function to apply to each matrix element.

+

Returns

Mat4d
-
+

A new matrix with transformed elements.

+
@@ -2403,7 +2412,8 @@ The format is {0,1,2,3,...,15}

-
+

Transforms all matrix elements in-place using the specified transformation function.

+
@@ -2413,13 +2423,15 @@ The format is {0,1,2,3,...,15}

Parameters

transformingFunc Func<double, double>
-
+

The function to apply to each matrix element.

+

Returns

Mat4d
-
+

This matrix instance for method chaining.

+
diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Vec3d.html b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Vec3d.html index 10bdf81..5666f8e 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Vec3d.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Geom.Vec3d.html @@ -4052,7 +4052,9 @@ The returned object includes type metadata for web API presentation.

-
+

Attempts to parse a string into a Vec3d using a loose format. +Accepts various delimiters (comma, semicolon, space) and removes brackets/parentheses.

+
@@ -4062,15 +4064,18 @@ The returned object includes type metadata for web API presentation.

Parameters

text string
-
+

The string to parse. Can contain brackets, parentheses, or other delimiters.

+
dst Vec3d
-
+

When this method returns, contains the parsed Vec3d if successful, or Vec3d.NaN if parsing failed.

+

Returns

bool
-
+

True if parsing was successful; otherwise, false.

+
diff --git a/App/wwwroot/HiAPI-docsite/dev-doc/release-note/index.html b/App/wwwroot/HiAPI-docsite/dev-doc/release-note/index.html index b03273e..514b696 100644 --- a/App/wwwroot/HiAPI-docsite/dev-doc/release-note/index.html +++ b/App/wwwroot/HiAPI-docsite/dev-doc/release-note/index.html @@ -160,8 +160,8 @@

HiNc Packages Version 3.1.74

diff --git a/App/wwwroot/HiAPI-docsite/index.json b/App/wwwroot/HiAPI-docsite/index.json index dc5785f..4e3ab78 100644 --- a/App/wwwroot/HiAPI-docsite/index.json +++ b/App/wwwroot/HiAPI-docsite/index.json @@ -342,7 +342,7 @@ "api/Hi.Common.Collections.LinkedListUtil.html": { "href": "api/Hi.Common.Collections.LinkedListUtil.html", "title": "Class LinkedListUtil | HiAPI-C# 2025", - "summary": "Class LinkedListUtil Namespace Hi.Common.Collections Assembly HiGeom.dll public static class LinkedListUtil Inheritance object LinkedListUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods Enumerate(LinkedListNode, LinkedListNode) public static IEnumerable> Enumerate(this LinkedListNode beginNode, LinkedListNode endNode) Parameters beginNode LinkedListNode endNode LinkedListNode exclusive end node. It can be null. Returns IEnumerable> Type Parameters T" + "summary": "Class LinkedListUtil Namespace Hi.Common.Collections Assembly HiGeom.dll Utility methods for working with linked lists. public static class LinkedListUtil Inheritance object LinkedListUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods Enumerate(LinkedListNode, LinkedListNode) Enumerates linked list nodes from the beginning node to the end node (exclusive). public static IEnumerable> Enumerate(this LinkedListNode beginNode, LinkedListNode endNode) Parameters beginNode LinkedListNode The starting node (inclusive). endNode LinkedListNode Exclusive end node. It can be null. Returns IEnumerable> An enumerable sequence of linked list nodes. Type Parameters T The type of elements in the linked list." }, "api/Hi.Common.Collections.ListIndexBasedEnumerable-1.html": { "href": "api/Hi.Common.Collections.ListIndexBasedEnumerable-1.html", @@ -392,7 +392,7 @@ "api/Hi.Common.Collections.html": { "href": "api/Hi.Common.Collections.html", "title": "Namespace Hi.Common.Collections | HiAPI-C# 2025", - "summary": "Namespace Hi.Common.Collections Classes DictionaryUtil Utility class providing extension methods for dictionary operations. EnumerableUtil Utility class providing extension methods for enumerable collections. FixedSizeConcurrentLinkedListUtil Utility of Fixed Size Concurrent LinkedList. LinkedListUtil ListIndexBasedEnumerable Provides an enumerable wrapper for a list that iterates over a specified range of indices. ListIndexBasedIEnumerator Provides an enumerator that iterates over a specified range of indices in a list. ListUtil Provides utility methods for working with lists and collections. SortedListUtil Utility class providing extension methods for SortedList operations. SubList Represents a sub-list view of a source list within a specified index range. SynList Thread-safe List. Enums ListUtil.OuterPolationMode Defines the mode for handling values outside the range of a collection during interpolation. SearchTargetMode Specifies the search method to use when looking for values in a sorted list. SeekDirection Specifies the seek direction for sorted list operations." + "summary": "Namespace Hi.Common.Collections Classes DictionaryUtil Utility class providing extension methods for dictionary operations. EnumerableUtil Utility class providing extension methods for enumerable collections. FixedSizeConcurrentLinkedListUtil Utility of Fixed Size Concurrent LinkedList. LinkedListUtil Utility methods for working with linked lists. ListIndexBasedEnumerable Provides an enumerable wrapper for a list that iterates over a specified range of indices. ListIndexBasedIEnumerator Provides an enumerator that iterates over a specified range of indices in a list. ListUtil Provides utility methods for working with lists and collections. SortedListUtil Utility class providing extension methods for SortedList operations. SubList Represents a sub-list view of a source list within a specified index range. SynList Thread-safe List. Enums ListUtil.OuterPolationMode Defines the mode for handling values outside the range of a collection during interpolation. SearchTargetMode Specifies the search method to use when looking for values in a sorted list. SeekDirection Specifies the seek direction for sorted list operations." }, "api/Hi.Common.ConcurrentTimeCounter.html": { "href": "api/Hi.Common.ConcurrentTimeCounter.html", @@ -612,7 +612,7 @@ "api/Hi.Common.IToPresentDto.html": { "href": "api/Hi.Common.IToPresentDto.html", "title": "Interface IToPresentDto | HiAPI-C# 2025", - "summary": "Interface IToPresentDto Namespace Hi.Common Assembly HiGeom.dll public interface IToPresentDto Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Methods ToPresentDto() Convert to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. object ToPresentDto() Returns object DTO object with type and object properties" + "summary": "Interface IToPresentDto Namespace Hi.Common Assembly HiGeom.dll Interface for converting objects to presentation DTOs (Data Transfer Objects) for JSON serialization. public interface IToPresentDto Extension Methods DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Methods ToPresentDto() Convert to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. object ToPresentDto() Returns object DTO object with type and object properties" }, "api/Hi.Common.IUpdateByContent.html": { "href": "api/Hi.Common.IUpdateByContent.html", @@ -657,7 +657,7 @@ "api/Hi.Common.JsonUtil.html": { "href": "api/Hi.Common.JsonUtil.html", "title": "Class JsonUtil | HiAPI-C# 2025", - "summary": "Class JsonUtil Namespace Hi.Common Assembly HiGeom.dll Helper utilities for reading and writing JSON files. public static class JsonUtil Inheritance object JsonUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods CallJsonArrayByPath(JsonObject, IEnumerable) public static JsonArray CallJsonArrayByPath(this JsonObject srcdst, IEnumerable jsonObjectPath) Parameters srcdst JsonObject jsonObjectPath IEnumerable Returns JsonArray CallJsonObjectByPath(JsonObject, IEnumerable) public static JsonObject CallJsonObjectByPath(this JsonObject srcdst, IEnumerable jsonObjectPath) Parameters srcdst JsonObject jsonObjectPath IEnumerable Returns JsonObject WritePartialJson(string, string, TConfig) Writes a config object into a named section of a JSON file; merges when file exists and overwrites the same section name. public static void WritePartialJson(string filePath, string configName, TConfig config) Parameters filePath string JSON file path configName string Section name to write config TConfig Section object to write Type Parameters TConfig Type of the config object" + "summary": "Class JsonUtil Namespace Hi.Common Assembly HiGeom.dll Helper utilities for reading and writing JSON files. public static class JsonUtil Inheritance object JsonUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods CallJsonArrayByPath(JsonObject, IEnumerable) Navigates or creates a JSON array path in the source JSON object. Creates missing intermediate objects and the final array as needed. public static JsonArray CallJsonArrayByPath(this JsonObject srcdst, IEnumerable jsonObjectPath) Parameters srcdst JsonObject The source JSON object to navigate. jsonObjectPath IEnumerable The path segments to navigate through. The last segment will be treated as an array. Returns JsonArray The JSON array at the specified path, creating it if it doesn't exist. Returns null if the path is empty. CallJsonObjectByPath(JsonObject, IEnumerable) Navigates or creates a JSON object path in the source JSON object. Creates missing intermediate objects as needed. public static JsonObject CallJsonObjectByPath(this JsonObject srcdst, IEnumerable jsonObjectPath) Parameters srcdst JsonObject The source JSON object to navigate. jsonObjectPath IEnumerable The path segments to navigate through. Returns JsonObject The JSON object at the specified path, creating it if it doesn't exist. WritePartialJson(string, string, TConfig) Writes a config object into a named section of a JSON file; merges when file exists and overwrites the same section name. public static void WritePartialJson(string filePath, string configName, TConfig config) Parameters filePath string JSON file path configName string Section name to write config TConfig Section object to write Type Parameters TConfig Type of the config object" }, "api/Hi.Common.LooseRunner.MergedCancellationTokenRun.html": { "href": "api/Hi.Common.LooseRunner.MergedCancellationTokenRun.html", @@ -912,7 +912,7 @@ "api/Hi.Common.StringUtil.html": { "href": "api/Hi.Common.StringUtil.html", "title": "Class StringUtil | HiAPI-C# 2025", - "summary": "Class StringUtil Namespace Hi.Common Assembly HiGeom.dll Utility for managing text. public static class StringUtil Inheritance object StringUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ExtractFullFunctionCall(string, string, out string, int) Extracts a complete function call from a string, including the function name and all parameters. public static int ExtractFullFunctionCall(string input, string functionName, out string funcCall, int beginSearchIndex = 0) Parameters input string The input string to search in. functionName string The name of the function to find. funcCall string When this method returns, contains the extracted function call if found; otherwise, null. beginSearchIndex int The index in the input string to begin the search. Returns int The starting index of the function call if found; otherwise, -1. ExtractFunctionArguments(string, string) Extracts the arguments of a function call from a string. public static string ExtractFunctionArguments(string input, string functionName) Parameters input string The input string containing the function call. functionName string The name of the function whose arguments to extract. Returns string The arguments string if the function call is found; otherwise, null. GetPropertyStringIfToStringNotOverloaded(object, bool, bool) Create string by properties. public static string GetPropertyStringIfToStringNotOverloaded(this object src, bool changeLine = false, bool includeNonPublic = false) Parameters src object src changeLine bool change line includeNonPublic bool include non-public properties Returns string string RemoveWhiteSpaceLines(string) public static string RemoveWhiteSpaceLines(this string text) Parameters text string Returns string ToDotSplitedString(IEnumerable) Converts a collection of objects to a comma-separated string. public static string ToDotSplitedString(this IEnumerable objects) Parameters objects IEnumerable The collection of objects to convert. Returns string A comma-separated string representation of the objects. Type Parameters T ToUtf8NullTerminatedBytes(string) Converts a string to a null-terminated UTF-8 byte array for P/Invoke. public static byte[] ToUtf8NullTerminatedBytes(this string str) Parameters str string Returns byte[]" + "summary": "Class StringUtil Namespace Hi.Common Assembly HiGeom.dll Utility for managing text. public static class StringUtil Inheritance object StringUtil Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString() Methods ExtractFullFunctionCall(string, string, out string, int) Extracts a complete function call from a string, including the function name and all parameters. public static int ExtractFullFunctionCall(string input, string functionName, out string funcCall, int beginSearchIndex = 0) Parameters input string The input string to search in. functionName string The name of the function to find. funcCall string When this method returns, contains the extracted function call if found; otherwise, null. beginSearchIndex int The index in the input string to begin the search. Returns int The starting index of the function call if found; otherwise, -1. ExtractFunctionArguments(string, string) Extracts the arguments of a function call from a string. public static string ExtractFunctionArguments(string input, string functionName) Parameters input string The input string containing the function call. functionName string The name of the function whose arguments to extract. Returns string The arguments string if the function call is found; otherwise, null. GetPropertyStringIfToStringNotOverloaded(object, bool, bool) Create string by properties. public static string GetPropertyStringIfToStringNotOverloaded(this object src, bool changeLine = false, bool includeNonPublic = false) Parameters src object src changeLine bool change line includeNonPublic bool include non-public properties Returns string string RemoveWhiteSpaceLines(string) Removes lines that contain only whitespace characters from the input string. public static string RemoveWhiteSpaceLines(this string text) Parameters text string The input string to process. Returns string A new string with whitespace-only lines removed. ToDotSplitedString(IEnumerable) Converts a collection of objects to a comma-separated string. public static string ToDotSplitedString(this IEnumerable objects) Parameters objects IEnumerable The collection of objects to convert. Returns string A comma-separated string representation of the objects. Type Parameters T ToUtf8NullTerminatedBytes(string) Converts a string to a null-terminated UTF-8 byte array for P/Invoke. public static byte[] ToUtf8NullTerminatedBytes(this string str) Parameters str string Returns byte[]" }, "api/Hi.Common.TaskUtil.html": { "href": "api/Hi.Common.TaskUtil.html", @@ -977,7 +977,7 @@ "api/Hi.Common.html": { "href": "api/Hi.Common.html", "title": "Namespace Hi.Common | HiAPI-C# 2025", - "summary": "Namespace Hi.Common Classes BinIoUtil Utility class for binary I/O operations. BitUtil Utility for bit control for integer. BlockingTimer Timer use one task and delay each event call. The delay time is Period, counted from the previous trigger to the nest trigger. The first function call does no intending delay. If the execution time is over the Period, no delay between the triggers. BytesUtil Utility class for byte array operations and memory size conversions. ConcurrentTimeCounter Thread-safe utility for measuring and tracking execution time across multiple tasks. ConsoleUtil Utility class for console window operations. CppLogUtil Internal Use Only. CultureUtil Utility class for managing culture and localization settings. DebugUtil Debug utility provides functions: pause process, count execution time and show the count. DuplicateUtil Utility methods for duplication operations. EnumUtil Utility class for enum operations. EnumerablePlayer Run enumerable with Pause(), Resume() and etc. functions. ExceptionUtil Provides utility methods for handling exceptions. IndexSegment Represents a segment of indices with a beginning (inclusive) and ending (exclusive> point. Used for defining segment of data in collections or arrays. IntegerKeyDictionaryConverter Converts dictionaries with string keys to dictionaries with integer keys for more efficient storage and lookup. IntegerKeyDictionaryConverter Generic version of IntegerKeyDictionaryConverter that works with a specific value type. InternalException Exception that represents an internal error that should never occur during normal operation. Used to indicate programming errors or unexpected states that require developer attention. InvokeUtil Utility class for method invocation operations. JsonUtil Helper utilities for reading and writing JSON files. LooseRunner Provides a mechanism for running actions asynchronously in a loose manner. Only the most recent action is executed and previous pending actions are discarded. ManualUtil Utility class for handling manual and documentation files with culture support. MaskUtil Utility for bits masking. NameUtil Utility class for handling object names and display names. PacePlayee Represents an entity that can be controlled by the pace player. PacePlayer Controls the pace execution of a task. Pair Editable pair values. Range Range from Min to Max. ResourceUtil Utility class for working with resource managers and localized strings. RoutineBlocker Block the thread to the given delay from the previous block. RoutineBlocker0 Block the thread to the given delay from the previous block. SeqPairUtil Utility class for SeqPair operations. SeqPair Represents a sequence pair containing previous and current values. Used to track sequential state changes of a value. ServerFileExplorerConfig Configuration for server file explorer functionality. Slice Designed for mongo large bytes splision. StringLocalizer Provides localization functionality for strings using resource managers. StringUtil Utility for managing text. TaskUtil Utility class for Task-related operations. TimeCounter A utility counts the average/total time consume between the Bound(object) areas. The count of time consume for the given key starts at the first time (and the odd time) calling Bound(object); stops and accumulates at the second time (and the even time). Interfaces IAbstractNote Interface for objects that provide an abstract description or note. IBinaryIo Interface for binary input/output operations. Extends IWriteBin to provide both read and write capabilities. IClearCache Interface for objects that can clear their internal cache. IDuplicate Interface for objects that support deep cloning/duplication. IGetQuantityByKey Interface for retrieving a quantity value using a string key. IGetSelectionName Interface for objects that can provide a name for selection purposes. INameNote Interface for objects that have a name and note property. IPreferredFileName Interface for objects that can specify a preferred file name. Generally used to suggest a name when generating or saving files. ISourceFile Interface for objects that have a source file. IToPresentDto IUpdateByContent Interface for objects that can update themselves based on their content. IUriGetter Interface for retrieving a URI string. IWriteBin Interface for writing binary data. Enums SearchResult Represents the result of a search operation. Delegates CppLogUtil.LogDelegate Internal Use Only. LooseRunner.MergedCancellationTokenRun Delegate for actions that accept a merged cancellation token. The merged token combines the runner's disposal token with an optional external cancellation token." + "summary": "Namespace Hi.Common Classes BinIoUtil Utility class for binary I/O operations. BitUtil Utility for bit control for integer. BlockingTimer Timer use one task and delay each event call. The delay time is Period, counted from the previous trigger to the nest trigger. The first function call does no intending delay. If the execution time is over the Period, no delay between the triggers. BytesUtil Utility class for byte array operations and memory size conversions. ConcurrentTimeCounter Thread-safe utility for measuring and tracking execution time across multiple tasks. ConsoleUtil Utility class for console window operations. CppLogUtil Internal Use Only. CultureUtil Utility class for managing culture and localization settings. DebugUtil Debug utility provides functions: pause process, count execution time and show the count. DuplicateUtil Utility methods for duplication operations. EnumUtil Utility class for enum operations. EnumerablePlayer Run enumerable with Pause(), Resume() and etc. functions. ExceptionUtil Provides utility methods for handling exceptions. IndexSegment Represents a segment of indices with a beginning (inclusive) and ending (exclusive> point. Used for defining segment of data in collections or arrays. IntegerKeyDictionaryConverter Converts dictionaries with string keys to dictionaries with integer keys for more efficient storage and lookup. IntegerKeyDictionaryConverter Generic version of IntegerKeyDictionaryConverter that works with a specific value type. InternalException Exception that represents an internal error that should never occur during normal operation. Used to indicate programming errors or unexpected states that require developer attention. InvokeUtil Utility class for method invocation operations. JsonUtil Helper utilities for reading and writing JSON files. LooseRunner Provides a mechanism for running actions asynchronously in a loose manner. Only the most recent action is executed and previous pending actions are discarded. ManualUtil Utility class for handling manual and documentation files with culture support. MaskUtil Utility for bits masking. NameUtil Utility class for handling object names and display names. PacePlayee Represents an entity that can be controlled by the pace player. PacePlayer Controls the pace execution of a task. Pair Editable pair values. Range Range from Min to Max. ResourceUtil Utility class for working with resource managers and localized strings. RoutineBlocker Block the thread to the given delay from the previous block. RoutineBlocker0 Block the thread to the given delay from the previous block. SeqPairUtil Utility class for SeqPair operations. SeqPair Represents a sequence pair containing previous and current values. Used to track sequential state changes of a value. ServerFileExplorerConfig Configuration for server file explorer functionality. Slice Designed for mongo large bytes splision. StringLocalizer Provides localization functionality for strings using resource managers. StringUtil Utility for managing text. TaskUtil Utility class for Task-related operations. TimeCounter A utility counts the average/total time consume between the Bound(object) areas. The count of time consume for the given key starts at the first time (and the odd time) calling Bound(object); stops and accumulates at the second time (and the even time). Interfaces IAbstractNote Interface for objects that provide an abstract description or note. IBinaryIo Interface for binary input/output operations. Extends IWriteBin to provide both read and write capabilities. IClearCache Interface for objects that can clear their internal cache. IDuplicate Interface for objects that support deep cloning/duplication. IGetQuantityByKey Interface for retrieving a quantity value using a string key. IGetSelectionName Interface for objects that can provide a name for selection purposes. INameNote Interface for objects that have a name and note property. IPreferredFileName Interface for objects that can specify a preferred file name. Generally used to suggest a name when generating or saving files. ISourceFile Interface for objects that have a source file. IToPresentDto Interface for converting objects to presentation DTOs (Data Transfer Objects) for JSON serialization. IUpdateByContent Interface for objects that can update themselves based on their content. IUriGetter Interface for retrieving a URI string. IWriteBin Interface for writing binary data. Enums SearchResult Represents the result of a search operation. Delegates CppLogUtil.LogDelegate Internal Use Only. LooseRunner.MergedCancellationTokenRun Delegate for actions that accept a merged cancellation token. The merged token combines the runner's disposal token with an optional external cancellation token." }, "api/Hi.CutterLocations.ClPath.ClCircleArc.html": { "href": "api/Hi.CutterLocations.ClPath.ClCircleArc.html", @@ -1407,7 +1407,7 @@ "api/Hi.Geom.Mat4d.html": { "href": "api/Hi.Geom.Mat4d.html", "title": "Class Mat4d | HiAPI-C# 2025", - "summary": "Class Mat4d Namespace Hi.Geom Assembly HiGeom.dll 4x4 Matrix. public class Mat4d : IEquatable, IBinaryIo, IWriteBin Inheritance object Mat4d Implements IEquatable IBinaryIo IWriteBin Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods BinIoUtil.ToBytes(IWriteBin) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors Mat4d() Initializes a new instance of the Mat4d class. public Mat4d() Mat4d(AxisAngle4d) Set this matrix to rotation matrix. The matrix is rotate along axis with given radian. public Mat4d(AxisAngle4d src) Parameters src AxisAngle4d src Mat4d(AxisAngle4d, Vec3d) Set this matrix to rotation matrix. The matrix is rotate along axis with given radian. public Mat4d(AxisAngle4d src, Vec3d pivot) Parameters src AxisAngle4d src pivot Vec3d rotation pivot Mat4d(Mat4d) copy constructor public Mat4d(Mat4d src) Parameters src Mat4d src Mat4d(Vec3d) Set this matrix to translation matrix. m(3,0)=trans.x; m(3,1)=trans.y; m(3,2)=trans.z. public Mat4d(Vec3d trans) Parameters trans Vec3d translation Mat4d(Vec3d, Vec3d, Vec3d, IndexFlag) Initializes a new instance of the Mat4d class from three vectors. public Mat4d(Vec3d v0, Vec3d v1, Vec3d v2, Mat4d.IndexFlag indexFlag = IndexFlag.ByColumn) Parameters v0 Vec3d The first vector. v1 Vec3d The second vector. v2 Vec3d The third vector. indexFlag Mat4d.IndexFlag Determines whether vectors are used as columns or rows in the matrix. Mat4d(Vec3d, double) Set this matrix to rotation matrix. The matrix is rotate along axis with given radian. public Mat4d(Vec3d axis, double rad) Parameters axis Vec3d rotation axis rad double radian Mat4d(Vec3d, double, Vec3d) A matrix rotate at pivot along axis by angle rad. public Mat4d(Vec3d axis, double rad, Vec3d pivot) Parameters axis Vec3d rotate axis rad double angle pivot Vec3d rotate pivot Mat4d(mat4d) Ctor by Set(mat4d). public Mat4d(mat4d src) Parameters src mat4d src Mat4d(IEnumerable) public Mat4d(IEnumerable src) Parameters src IEnumerable Mat4d(double) a scale matrix which is I*scale. Where I is an identity matrix. public Mat4d(double scale) Parameters scale double scale Mat4d(double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double) constructor public Mat4d(double m00, double m01, double m02, double m03, double m10, double m11, double m12, double m13, double m20, double m21, double m22, double m23, double m30, double m31, double m32, double m33) Parameters m00 double value at (0,0) m01 double value at (0,1) m02 double value at (0,2) m03 double value at (0,3) m10 double value at (1,0) m11 double value at (1,1) m12 double value at (1,2) m13 double value at (1,3) m20 double value at (2,0) m21 double value at (2,1) m22 double value at (2,2) m23 double value at (2,3) m30 double value at (3,0) m31 double value at (3,1) m32 double value at (3,2) m33 double value at (3,3) Mat4d(double[]) constructor public Mat4d(double[] src) Parameters src double[] src Mat4d(BinaryReader) Ctor. public Mat4d(BinaryReader reader) Parameters reader BinaryReader reader Mat4d(string) Ctor by Set(string). public Mat4d(string str) Parameters str string src Fields m Column-major matrix in form of array. public double[] m Field Value double[] Properties AxialNormal Vec3d on 2th row. It usually is tool normal. public Vec3d AxialNormal { get; } Property Value Vec3d AxisAngle Gets the axis-angle representation of the rotation component of this matrix. public AxisAngle4d AxisAngle { get; } Property Value AxisAngle4d Determinant Gets the determinant of this matrix. public double Determinant { get; } Property Value double The determinant value. Idt Generate identity matrix. public static Mat4d Idt { get; } Property Value Mat4d IsAllNaN Gets a value indicating whether all elements of this matrix are NaN. public bool IsAllNaN { get; } Property Value bool IsFinite Gets a value indicating whether all elements of this matrix are finite numbers. public bool IsFinite { get; } Property Value bool IsRotate Gets a value indicating whether this matrix represents a pure rotation. public bool IsRotate { get; } Property Value bool MatScale Gets the scale factor of the matrix, calculated as the cube root of the determinant without translation. public double MatScale { get; } Property Value double NaN Generate matrix that all elements are nan. public static Mat4d NaN { get; } Property Value Mat4d NativeByteSize public static int NativeByteSize { get; } Property Value int Byte size: sizeof(double) * 3. NoTransMat Generate new matrix that the translation part is zero. i.e. (m[12],m[13],m[14])=(0,0,0). public Mat4d NoTransMat { get; } Property Value Mat4d Pn Pn: the abbr. of Point and Normal. The value is new DVec3d(m[12], m[13], m[14], m[8], m[9], m[10]) public DVec3d Pn { get; } Property Value DVec3d Trans Translation. The value is Vec3d(m[12], m[13], m[14]). public Vec3d Trans { get; set; } Property Value Vec3d TransposeMat Gets a new matrix that is the transpose of this matrix. public Mat4d TransposeMat { get; } Property Value Mat4d Zero Generate zero matrix. public static Mat4d Zero { get; } Property Value Mat4d Methods AdjustSingularValueByTolerance(double) Adjusts matrix values that are close to 0, 1, or -1 (within the specified tolerance) to exactly those values. public Mat4d AdjustSingularValueByTolerance(double tolerance) Parameters tolerance double The tolerance threshold for considering values close to 0, 1, or -1. Returns Mat4d This matrix after adjustment. At(int, int) Gets a reference to the matrix element at the specified row and column. public ref double At(int i, int j) Parameters i int The row index (0-based). j int The column index (0-based). Returns double A reference to the matrix element. Equals(Mat4d) Indicates whether the current object is equal to another object of the same type. public bool Equals(Mat4d other) Parameters other Mat4d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. EqualsByTolerance(Mat4d, double) Determines whether this matrix is equal to another matrix within a specified tolerance. public bool EqualsByTolerance(Mat4d other, double tolerance) Parameters other Mat4d The matrix to compare with this matrix. tolerance double The maximum absolute difference between matrix elements for them to be considered equal. Returns bool true if the matrices are equal within the specified tolerance; otherwise, false. FilledMat(double) Creates a matrix with all elements set to the specified value. public static Mat4d FilledMat(double v) Parameters v double The value to fill all elements with. Returns Mat4d A new matrix with all elements set to the specified value. FixFloatingZero(double) public Mat4d FixFloatingZero(double floatingZeroTolerance = 1E-12) Parameters floatingZeroTolerance double Returns Mat4d GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. GetInverse() Gets the inverse. public Mat4d GetInverse() Returns Mat4d Inverse matrix GetScaleMat(double) Creates a new matrix by scaling this matrix by the specified factor. public Mat4d GetScaleMat(double scale) Parameters scale double The scale factor to apply. Returns Mat4d A new scaled matrix. GetTransform(Func) public Mat4d GetTransform(Func transformingFunc) Parameters transformingFunc Func Returns Mat4d Inverse() Inverses this instance. public Mat4d Inverse() Returns Mat4d this ReadBin(BinaryReader) Reads binary data to initialize the object. public void ReadBin(BinaryReader reader) Parameters reader BinaryReader The binary reader to read from Scale(double) Scales the specified s. public Mat4d Scale(double s) Parameters s double The s. Returns Mat4d this Set(AxisAngle4d) Set this matrix to rotation matrix. The matrix is rotate along axis with given radian. public Mat4d Set(AxisAngle4d src) Parameters src AxisAngle4d src Returns Mat4d this Set(Mat4d) copy the data from src to this. public Mat4d Set(Mat4d src) Parameters src Mat4d src Returns Mat4d this Set(Vec3d) Set this matrix to translation matrix. m(3,0)=trans.x; m(3,1)=trans.y; m(3,2)=trans.z. public Mat4d Set(Vec3d trans) Parameters trans Vec3d translation Returns Mat4d this Set(Vec3d, double) Set this matrix to rotation matrix. The matrix is rotate along axis with given radian. public Mat4d Set(Vec3d axis, double rad) Parameters axis Vec3d rotation axis rad double radian Returns Mat4d this Set(Vec3d, double, Vec3d) Set the matrix rotation at pivot along axis by angle rad. public Mat4d Set(Vec3d axis, double rad, Vec3d pivot) Parameters axis Vec3d rotation axis rad double angle pivot Vec3d rotation pivot Returns Mat4d this Set(mat4d) Set the data by src. public Mat4d Set(mat4d src) Parameters src mat4d src Returns Mat4d this Set(double) The matrix will be reset to a scale matrix which is I*scale. Where I is an identity matrix. public Mat4d Set(double scale) Parameters scale double scale Returns Mat4d this Set(double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double) constructor public Mat4d Set(double m00, double m01, double m02, double m03, double m10, double m11, double m12, double m13, double m20, double m21, double m22, double m23, double m30, double m31, double m32, double m33) Parameters m00 double value at (0,0) m01 double value at (0,1) m02 double value at (0,2) m03 double value at (0,3) m10 double value at (1,0) m11 double value at (1,1) m12 double value at (1,2) m13 double value at (1,3) m20 double value at (2,0) m21 double value at (2,1) m22 double value at (2,2) m23 double value at (2,3) m30 double value at (3,0) m31 double value at (3,1) m32 double value at (3,2) m33 double value at (3,3) Returns Mat4d this Set(int, int, double) Sets the value of the matrix element at the specified row and column. public void Set(int i, int j, double v) Parameters i int The row index (0-based). j int The column index (0-based). v double The value to set. Set(string) Set data by str. The format is {0,1,2,3,...,15} public Mat4d Set(string str) Parameters str string src Returns Mat4d this SetIdt() Set this instance to identity matrix. public void SetIdt() SetNoTrans() Sets the translation components of this matrix to zero. public Mat4d SetNoTrans() Returns Mat4d This matrix with translation components set to zero. ToBriefString() To brief string. public string ToBriefString() Returns string brief string. ToLinesString() Converts the matrix to a multi-line string representation with aligned columns. public string ToLinesString() Returns string A formatted multi-line string representation of the matrix. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. Transform(Func) public Mat4d Transform(Func transformingFunc) Parameters transformingFunc Func Returns Mat4d Transpose() Transposes this matrix in place. public Mat4d Transpose() Returns Mat4d This matrix after transposition. WriteBin(BinaryWriter) Writes the object's data to a binary stream. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter The binary writer to write to Operators operator +(Mat4d, Mat4d) Adds two matrices element-wise. public static Mat4d operator +(Mat4d a, Mat4d b) Parameters a Mat4d The first matrix. b Mat4d The second matrix. Returns Mat4d A new matrix that is the sum of the two matrices. operator /(Mat4d, double) Divides a matrix by a scalar value. public static Mat4d operator /(Mat4d a, double b) Parameters a Mat4d The matrix to divide. b double The scalar divisor. Returns Mat4d A new matrix with all elements divided by the scalar. operator ==(Mat4d, Mat4d) Determines whether two matrices are equal. public static bool operator ==(Mat4d a, Mat4d b) Parameters a Mat4d The first matrix. b Mat4d The second matrix. Returns bool true if the matrices are equal; otherwise, false. operator !=(Mat4d, Mat4d) Determines whether two matrices are not equal. public static bool operator !=(Mat4d a, Mat4d b) Parameters a Mat4d The first matrix. b Mat4d The second matrix. Returns bool true if the matrices are not equal; otherwise, false. operator *(Mat4d, DVec3d) Multiple matrxi to cutter location (Point and Normal). public static DVec3d operator *(Mat4d m, DVec3d v) Parameters m Mat4d matrix v DVec3d point and normal Returns DVec3d transformed point and normal operator *(Mat4d, Mat4d) Multiplies two matrices. public static Mat4d operator *(Mat4d a, Mat4d b) Parameters a Mat4d The first matrix. b Mat4d The second matrix. Returns Mat4d A new matrix that is the product of the two matrices. operator *(Mat4d, Vec3d) Multiplies a matrix by a vector, transforming the vector. public static Vec3d operator *(Mat4d a, Vec3d b) Parameters a Mat4d The transformation matrix. b Vec3d The vector to transform. Returns Vec3d The transformed vector. operator *(Mat4d, double) Multiplies a matrix by a scalar value. public static Mat4d operator *(Mat4d a, double s) Parameters a Mat4d The matrix to multiply. s double The scalar value. Returns Mat4d A new matrix with all elements multiplied by the scalar. operator -(Mat4d, Mat4d) Subtracts the second matrix from the first matrix element-wise. public static Mat4d operator -(Mat4d a, Mat4d b) Parameters a Mat4d The matrix to subtract from. b Mat4d The matrix to subtract. Returns Mat4d A new matrix that is the difference of the two matrices. operator -(Mat4d) Returns the negation of the specified matrix. public static Mat4d operator -(Mat4d src) Parameters src Mat4d The source matrix. Returns Mat4d A new matrix with all elements negated." + "summary": "Class Mat4d Namespace Hi.Geom Assembly HiGeom.dll 4x4 Matrix. public class Mat4d : IEquatable, IBinaryIo, IWriteBin Inheritance object Mat4d Implements IEquatable IBinaryIo IWriteBin Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods BinIoUtil.ToBytes(IWriteBin) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors Mat4d() Initializes a new instance of the Mat4d class. public Mat4d() Mat4d(AxisAngle4d) Set this matrix to rotation matrix. The matrix is rotate along axis with given radian. public Mat4d(AxisAngle4d src) Parameters src AxisAngle4d src Mat4d(AxisAngle4d, Vec3d) Set this matrix to rotation matrix. The matrix is rotate along axis with given radian. public Mat4d(AxisAngle4d src, Vec3d pivot) Parameters src AxisAngle4d src pivot Vec3d rotation pivot Mat4d(Mat4d) copy constructor public Mat4d(Mat4d src) Parameters src Mat4d src Mat4d(Vec3d) Set this matrix to translation matrix. m(3,0)=trans.x; m(3,1)=trans.y; m(3,2)=trans.z. public Mat4d(Vec3d trans) Parameters trans Vec3d translation Mat4d(Vec3d, Vec3d, Vec3d, IndexFlag) Initializes a new instance of the Mat4d class from three vectors. public Mat4d(Vec3d v0, Vec3d v1, Vec3d v2, Mat4d.IndexFlag indexFlag = IndexFlag.ByColumn) Parameters v0 Vec3d The first vector. v1 Vec3d The second vector. v2 Vec3d The third vector. indexFlag Mat4d.IndexFlag Determines whether vectors are used as columns or rows in the matrix. Mat4d(Vec3d, double) Set this matrix to rotation matrix. The matrix is rotate along axis with given radian. public Mat4d(Vec3d axis, double rad) Parameters axis Vec3d rotation axis rad double radian Mat4d(Vec3d, double, Vec3d) A matrix rotate at pivot along axis by angle rad. public Mat4d(Vec3d axis, double rad, Vec3d pivot) Parameters axis Vec3d rotate axis rad double angle pivot Vec3d rotate pivot Mat4d(mat4d) Ctor by Set(mat4d). public Mat4d(mat4d src) Parameters src mat4d src Mat4d(IEnumerable) Initializes a new instance of the Mat4d class from an enumerable of double values. Takes the first 16 values from the enumerable. public Mat4d(IEnumerable src) Parameters src IEnumerable The enumerable collection of double values. Mat4d(double) a scale matrix which is I*scale. Where I is an identity matrix. public Mat4d(double scale) Parameters scale double scale Mat4d(double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double) constructor public Mat4d(double m00, double m01, double m02, double m03, double m10, double m11, double m12, double m13, double m20, double m21, double m22, double m23, double m30, double m31, double m32, double m33) Parameters m00 double value at (0,0) m01 double value at (0,1) m02 double value at (0,2) m03 double value at (0,3) m10 double value at (1,0) m11 double value at (1,1) m12 double value at (1,2) m13 double value at (1,3) m20 double value at (2,0) m21 double value at (2,1) m22 double value at (2,2) m23 double value at (2,3) m30 double value at (3,0) m31 double value at (3,1) m32 double value at (3,2) m33 double value at (3,3) Mat4d(double[]) constructor public Mat4d(double[] src) Parameters src double[] src Mat4d(BinaryReader) Ctor. public Mat4d(BinaryReader reader) Parameters reader BinaryReader reader Mat4d(string) Ctor by Set(string). public Mat4d(string str) Parameters str string src Fields m Column-major matrix in form of array. public double[] m Field Value double[] Properties AxialNormal Vec3d on 2th row. It usually is tool normal. public Vec3d AxialNormal { get; } Property Value Vec3d AxisAngle Gets the axis-angle representation of the rotation component of this matrix. public AxisAngle4d AxisAngle { get; } Property Value AxisAngle4d Determinant Gets the determinant of this matrix. public double Determinant { get; } Property Value double The determinant value. Idt Generate identity matrix. public static Mat4d Idt { get; } Property Value Mat4d IsAllNaN Gets a value indicating whether all elements of this matrix are NaN. public bool IsAllNaN { get; } Property Value bool IsFinite Gets a value indicating whether all elements of this matrix are finite numbers. public bool IsFinite { get; } Property Value bool IsRotate Gets a value indicating whether this matrix represents a pure rotation. public bool IsRotate { get; } Property Value bool MatScale Gets the scale factor of the matrix, calculated as the cube root of the determinant without translation. public double MatScale { get; } Property Value double NaN Generate matrix that all elements are nan. public static Mat4d NaN { get; } Property Value Mat4d NativeByteSize public static int NativeByteSize { get; } Property Value int Byte size: sizeof(double) * 3. NoTransMat Generate new matrix that the translation part is zero. i.e. (m[12],m[13],m[14])=(0,0,0). public Mat4d NoTransMat { get; } Property Value Mat4d Pn Pn: the abbr. of Point and Normal. The value is new DVec3d(m[12], m[13], m[14], m[8], m[9], m[10]) public DVec3d Pn { get; } Property Value DVec3d Trans Translation. The value is Vec3d(m[12], m[13], m[14]). public Vec3d Trans { get; set; } Property Value Vec3d TransposeMat Gets a new matrix that is the transpose of this matrix. public Mat4d TransposeMat { get; } Property Value Mat4d Zero Generate zero matrix. public static Mat4d Zero { get; } Property Value Mat4d Methods AdjustSingularValueByTolerance(double) Adjusts matrix values that are close to 0, 1, or -1 (within the specified tolerance) to exactly those values. public Mat4d AdjustSingularValueByTolerance(double tolerance) Parameters tolerance double The tolerance threshold for considering values close to 0, 1, or -1. Returns Mat4d This matrix after adjustment. At(int, int) Gets a reference to the matrix element at the specified row and column. public ref double At(int i, int j) Parameters i int The row index (0-based). j int The column index (0-based). Returns double A reference to the matrix element. Equals(Mat4d) Indicates whether the current object is equal to another object of the same type. public bool Equals(Mat4d other) Parameters other Mat4d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. EqualsByTolerance(Mat4d, double) Determines whether this matrix is equal to another matrix within a specified tolerance. public bool EqualsByTolerance(Mat4d other, double tolerance) Parameters other Mat4d The matrix to compare with this matrix. tolerance double The maximum absolute difference between matrix elements for them to be considered equal. Returns bool true if the matrices are equal within the specified tolerance; otherwise, false. FilledMat(double) Creates a matrix with all elements set to the specified value. public static Mat4d FilledMat(double v) Parameters v double The value to fill all elements with. Returns Mat4d A new matrix with all elements set to the specified value. FixFloatingZero(double) Fixes floating-point values that are close to zero by setting them to exactly zero. public Mat4d FixFloatingZero(double floatingZeroTolerance = 1E-12) Parameters floatingZeroTolerance double The tolerance below which values are considered zero. Default is 1e-12. Returns Mat4d This matrix instance for method chaining. GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. GetInverse() Gets the inverse. public Mat4d GetInverse() Returns Mat4d Inverse matrix GetScaleMat(double) Creates a new matrix by scaling this matrix by the specified factor. public Mat4d GetScaleMat(double scale) Parameters scale double The scale factor to apply. Returns Mat4d A new scaled matrix. GetTransform(Func) Creates a new matrix with all elements transformed by the specified function. public Mat4d GetTransform(Func transformingFunc) Parameters transformingFunc Func The function to apply to each matrix element. Returns Mat4d A new matrix with transformed elements. Inverse() Inverses this instance. public Mat4d Inverse() Returns Mat4d this ReadBin(BinaryReader) Reads binary data to initialize the object. public void ReadBin(BinaryReader reader) Parameters reader BinaryReader The binary reader to read from Scale(double) Scales the specified s. public Mat4d Scale(double s) Parameters s double The s. Returns Mat4d this Set(AxisAngle4d) Set this matrix to rotation matrix. The matrix is rotate along axis with given radian. public Mat4d Set(AxisAngle4d src) Parameters src AxisAngle4d src Returns Mat4d this Set(Mat4d) copy the data from src to this. public Mat4d Set(Mat4d src) Parameters src Mat4d src Returns Mat4d this Set(Vec3d) Set this matrix to translation matrix. m(3,0)=trans.x; m(3,1)=trans.y; m(3,2)=trans.z. public Mat4d Set(Vec3d trans) Parameters trans Vec3d translation Returns Mat4d this Set(Vec3d, double) Set this matrix to rotation matrix. The matrix is rotate along axis with given radian. public Mat4d Set(Vec3d axis, double rad) Parameters axis Vec3d rotation axis rad double radian Returns Mat4d this Set(Vec3d, double, Vec3d) Set the matrix rotation at pivot along axis by angle rad. public Mat4d Set(Vec3d axis, double rad, Vec3d pivot) Parameters axis Vec3d rotation axis rad double angle pivot Vec3d rotation pivot Returns Mat4d this Set(mat4d) Set the data by src. public Mat4d Set(mat4d src) Parameters src mat4d src Returns Mat4d this Set(double) The matrix will be reset to a scale matrix which is I*scale. Where I is an identity matrix. public Mat4d Set(double scale) Parameters scale double scale Returns Mat4d this Set(double, double, double, double, double, double, double, double, double, double, double, double, double, double, double, double) constructor public Mat4d Set(double m00, double m01, double m02, double m03, double m10, double m11, double m12, double m13, double m20, double m21, double m22, double m23, double m30, double m31, double m32, double m33) Parameters m00 double value at (0,0) m01 double value at (0,1) m02 double value at (0,2) m03 double value at (0,3) m10 double value at (1,0) m11 double value at (1,1) m12 double value at (1,2) m13 double value at (1,3) m20 double value at (2,0) m21 double value at (2,1) m22 double value at (2,2) m23 double value at (2,3) m30 double value at (3,0) m31 double value at (3,1) m32 double value at (3,2) m33 double value at (3,3) Returns Mat4d this Set(int, int, double) Sets the value of the matrix element at the specified row and column. public void Set(int i, int j, double v) Parameters i int The row index (0-based). j int The column index (0-based). v double The value to set. Set(string) Set data by str. The format is {0,1,2,3,...,15} public Mat4d Set(string str) Parameters str string src Returns Mat4d this SetIdt() Set this instance to identity matrix. public void SetIdt() SetNoTrans() Sets the translation components of this matrix to zero. public Mat4d SetNoTrans() Returns Mat4d This matrix with translation components set to zero. ToBriefString() To brief string. public string ToBriefString() Returns string brief string. ToLinesString() Converts the matrix to a multi-line string representation with aligned columns. public string ToLinesString() Returns string A formatted multi-line string representation of the matrix. ToString() Returns a string that represents the current object. public override string ToString() Returns string A string that represents the current object. Transform(Func) Transforms all matrix elements in-place using the specified transformation function. public Mat4d Transform(Func transformingFunc) Parameters transformingFunc Func The function to apply to each matrix element. Returns Mat4d This matrix instance for method chaining. Transpose() Transposes this matrix in place. public Mat4d Transpose() Returns Mat4d This matrix after transposition. WriteBin(BinaryWriter) Writes the object's data to a binary stream. public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter The binary writer to write to Operators operator +(Mat4d, Mat4d) Adds two matrices element-wise. public static Mat4d operator +(Mat4d a, Mat4d b) Parameters a Mat4d The first matrix. b Mat4d The second matrix. Returns Mat4d A new matrix that is the sum of the two matrices. operator /(Mat4d, double) Divides a matrix by a scalar value. public static Mat4d operator /(Mat4d a, double b) Parameters a Mat4d The matrix to divide. b double The scalar divisor. Returns Mat4d A new matrix with all elements divided by the scalar. operator ==(Mat4d, Mat4d) Determines whether two matrices are equal. public static bool operator ==(Mat4d a, Mat4d b) Parameters a Mat4d The first matrix. b Mat4d The second matrix. Returns bool true if the matrices are equal; otherwise, false. operator !=(Mat4d, Mat4d) Determines whether two matrices are not equal. public static bool operator !=(Mat4d a, Mat4d b) Parameters a Mat4d The first matrix. b Mat4d The second matrix. Returns bool true if the matrices are not equal; otherwise, false. operator *(Mat4d, DVec3d) Multiple matrxi to cutter location (Point and Normal). public static DVec3d operator *(Mat4d m, DVec3d v) Parameters m Mat4d matrix v DVec3d point and normal Returns DVec3d transformed point and normal operator *(Mat4d, Mat4d) Multiplies two matrices. public static Mat4d operator *(Mat4d a, Mat4d b) Parameters a Mat4d The first matrix. b Mat4d The second matrix. Returns Mat4d A new matrix that is the product of the two matrices. operator *(Mat4d, Vec3d) Multiplies a matrix by a vector, transforming the vector. public static Vec3d operator *(Mat4d a, Vec3d b) Parameters a Mat4d The transformation matrix. b Vec3d The vector to transform. Returns Vec3d The transformed vector. operator *(Mat4d, double) Multiplies a matrix by a scalar value. public static Mat4d operator *(Mat4d a, double s) Parameters a Mat4d The matrix to multiply. s double The scalar value. Returns Mat4d A new matrix with all elements multiplied by the scalar. operator -(Mat4d, Mat4d) Subtracts the second matrix from the first matrix element-wise. public static Mat4d operator -(Mat4d a, Mat4d b) Parameters a Mat4d The matrix to subtract from. b Mat4d The matrix to subtract. Returns Mat4d A new matrix that is the difference of the two matrices. operator -(Mat4d) Returns the negation of the specified matrix. public static Mat4d operator -(Mat4d src) Parameters src Mat4d The source matrix. Returns Mat4d A new matrix with all elements negated." }, "api/Hi.Geom.MathNetUtil.html": { "href": "api/Hi.Geom.MathNetUtil.html", @@ -1607,7 +1607,7 @@ "api/Hi.Geom.Vec3d.html": { "href": "api/Hi.Geom.Vec3d.html", "title": "Class Vec3d | HiAPI-C# 2025", - "summary": "Class Vec3d Namespace Hi.Geom Assembly HiGeom.dll Basic 3D point (or vector). [BsonIgnoreExtraElements] public class Vec3d : IEquatable, IExpandToBox3d, IBinaryIo, IWriteBin, ICsvRowIo, IEqualityOperators, IAdditionOperators, ISubtractionOperators, IMultiplyOperators, IMultiplyOperators, IDivisionOperators, IVec, IFormattable, IToPresentDto Inheritance object Vec3d Implements IEquatable IExpandToBox3d IBinaryIo IWriteBin ICsvRowIo IEqualityOperators IAdditionOperators ISubtractionOperators IMultiplyOperators IMultiplyOperators IDivisionOperators IVec IFormattable IToPresentDto Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods BinIoUtil.ToBytes(IWriteBin) GeomUtil.ExpandToBox3d(IExpandToBox3d, Mat4d, Box3d) GeomUtil.GetBox3d(IExpandToBox3d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors Vec3d() Ctor. public Vec3d() Vec3d(Polar3d) Ctor. public Vec3d(Polar3d src) Parameters src Polar3d src Vec3d(Vec2d, double) Initializes a new instance of the Vec3d class from a 2D vector and z coordinate. public Vec3d(Vec2d xy, double z) Parameters xy Vec2d The 2D vector providing x and y coordinates. z double The z coordinate. Vec3d(Vec3d) Copy ctor. public Vec3d(Vec3d src) Parameters src Vec3d src Vec3d(vec3d) ctor. public Vec3d(vec3d src) Parameters src vec3d src Vec3d(vec3f) ctor. public Vec3d(vec3f src) Parameters src vec3f src Vec3d(IEnumerable) Creates a vector from an enumerable collection of three double values. public Vec3d(IEnumerable src) Parameters src IEnumerable Source collection containing three double values Vec3d(double, double, double) Ctor. public Vec3d(double x, double y, double z) Parameters x double x y double y z double z Vec3d(Func) Creates a vector using a function that maps direction index to value. public Vec3d(Func dirToValueFunc) Parameters dirToValueFunc Func Function that takes direction index (0=X, 1=Y, 2=Z) and returns the corresponding value Vec3d(BinaryReader) Ctor by bytes: x = reader.ReadDouble(); y = reader.ReadDouble(); z = reader.ReadDouble(); public Vec3d(BinaryReader reader) Parameters reader BinaryReader reader Vec3d(int, double, double, double) Ctor by direction offset. Direction 0,1,2 indicate x,y,z respectively. public Vec3d(int dir, double a, double b, double c) Parameters dir int direction offset a double value at direction (0+dir)%3 b double value at direction (1+dir)%3 c double value at direction (2+dir)%3 Vec3d(string) Ctor by string. The format is (x,y,z). public Vec3d(string src) Parameters src string src Vec3d((double, double, double)) Ctor. public Vec3d((double, double, double) src) Parameters src (double, double, double) src Fields x Value at x direction. public double x Field Value double y Value at y direction. public double y Field Value double z Value at z direction. public double z Field Value double Properties AbsSum [BsonIgnore] public double AbsSum { get; } Property Value double Sum of the abs {x,y,z}. Which is Math.Abs(x) + Math.Abs(y) + Math.Abs(z). AllOne public static Vec3d AllOne { get; } Property Value Vec3d Generate Vec3d(1, 1, 1). CsvText Csv text. [BsonIgnore] public string CsvText { get; set; } Property Value string CsvTitleText Csv titles text. [BsonIgnore] public string CsvTitleText { get; } Property Value string ElementNum Element number: 3 for (x,y,z). public static int ElementNum { get; } Property Value int IsAllFinite [BsonIgnore] public bool IsAllFinite { get; } Property Value bool Is x,y,z all finite. IsAllNaN [BsonIgnore] public bool IsAllNaN { get; } Property Value bool is x,y,z all NaN. IsAllNegativeInfinity [BsonIgnore] public bool IsAllNegativeInfinity { get; } Property Value bool is x,y,z all NegativeInfinity. IsAllPositiveInfinity [BsonIgnore] public bool IsAllPositiveInfinity { get; } Property Value bool is x,y,z all PositiveInfinity. IsAnyFinite [BsonIgnore] public bool IsAnyFinite { get; } Property Value bool Is at least one of x,y,z finite. IsAnyNaN [BsonIgnore] public bool IsAnyNaN { get; } Property Value bool Is any of {x,y,z} NaN. IsZero [BsonIgnore] public bool IsZero { get; } Property Value bool Is zero vector. Which is x == 0 && y == 0 && z == 0. this[int] Gets or sets the element at the specified index. public double this[int dir] { get; set; } Parameters dir int Property Value double The element at the specified index. Length [BsonIgnore] public double Length { get; } Property Value double Geometry length of this. LengthSquare [BsonIgnore] public double LengthSquare { get; } Property Value double Geometry length ^ 2. Which is x * x + y * y + z * z. MaxAbsDir [BsonIgnore] public int MaxAbsDir { get; } Property Value int Get the direction index with maximum absolute value. If the absolute of {x,y,z} is the biggest, return {0,1,2}. MaxDir [BsonIgnore] public int MaxDir { get; } Property Value int Get the direction index with maximum value. If {x,y,z} is the biggest, return {0,1,2}. MaxValue [BsonIgnore] public double MaxValue { get; } Property Value double The max value selected from {x,y,z}. Which is Math.Max(Math.Max(x, y), z). MinDir [BsonIgnore] public int MinDir { get; } Property Value int Get the direction index with maximum value. If {x,y,z} is the biggest, return {0,1,2}. MinValue [BsonIgnore] public double MinValue { get; } Property Value double The min value selected from {x,y,z}. Which is Math.Min(Math.Min(x, y), z). NaN public static Vec3d NaN { get; } Property Value Vec3d Generate Vec3d(double.NaN, double.NaN, double.NaN). NativeByteSize public static int NativeByteSize { get; } Property Value int Byte size: sizeof(double) * 3. NegativeInfinity public static Vec3d NegativeInfinity { get; } Property Value Vec3d Generate Vec3d(double.NegativeInfinity, double.NegativeInfinity, double.NegativeInfinity) PositiveInfinity public static Vec3d PositiveInfinity { get; } Property Value Vec3d Generate Vec3d(double.PositiveInfinity, double.PositiveInfinity, double.PositiveInfinity) Rank Dimension (i.e. Size) of the Vector. public int Rank { get; } Property Value int Text Gets or sets the vector as a string representation. [BsonIgnore] public string Text { get; set; } Property Value string UnitX public static Vec3d UnitX { get; } Property Value Vec3d Generate Vec3d(1, 0, 0). UnitY public static Vec3d UnitY { get; } Property Value Vec3d Generate Vec3d(0, 1, 0). UnitZ public static Vec3d UnitZ { get; } Property Value Vec3d Generate Vec3d(0, 0, 1). X Value at x direction. [BsonElement] public double X { get; set; } Property Value double XY Vec2d of X and Y. The getter gets a copied object. [BsonIgnore] public Vec2d XY { get; set; } Property Value Vec2d Y Value at y direction. [BsonElement] public double Y { get; set; } Property Value double Z Value at z direction. [BsonElement] public double Z { get; set; } Property Value double Zero public static Vec3d Zero { get; } Property Value Vec3d Generate Vec3d(0, 0, 0). Methods All(double) Creates a vector with all components set to the specified value. public static Vec3d All(double v) Parameters v double Value to set for all components Returns Vec3d A new vector with all components set to the specified value At(int) Get the value at the dirction. Direction 0,1,2 are x,y,z. If direction index is larger than 2, the return value is at z direction. public ref double At(int dir) Parameters dir int direction index Returns double value at the direction BilinearInterpolate(Vec3d, Vec3d, Vec3d, Vec3d, double, double) Performs bilinear interpolation between four points. public static Vec3d BilinearInterpolate(Vec3d p00, Vec3d p01, Vec3d p10, Vec3d p11, double u, double v) Parameters p00 Vec3d Point at (0,0) p01 Vec3d Point at (0,1) p10 Vec3d Point at (1,0) p11 Vec3d Point at (1,1) u double Interpolation parameter in first dimension (0.0 to 1.0) v double Interpolation parameter in second dimension (0.0 to 1.0) Returns Vec3d The interpolated point Cross(Vec3d, Vec3d) Get a cross b. public static Vec3d Cross(Vec3d a, Vec3d b) Parameters a Vec3d a b Vec3d b Returns Vec3d a x b Dot(Vec3d) this dot src. public double Dot(Vec3d src) Parameters src Vec3d src Returns double dotted value Enumerate() Enumerates the components of the vector. public IEnumerable Enumerate() Returns IEnumerable An enumerable sequence of the vector's components (X, Y, Z) Equals(Vec3d) Indicates whether the current object is equal to another object of the same type. public bool Equals(Vec3d other) Parameters other Vec3d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(Vec3d, double) check equals for each component with tolerance. public bool Equals(Vec3d other, double toleranceForEachComponent) Parameters other Vec3d other vec toleranceForEachComponent double tolerance for each component Returns bool check equals for each component with tolerance. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. ExpandMax(Vec3d) Find and expand maximum values from src. public void ExpandMax(Vec3d src) Parameters src Vec3d src ExpandMin(Vec3d) Find and expand minimum values from src. public void ExpandMin(Vec3d src) Parameters src Vec3d src ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GetCosSquareWith(Vec3d) Get Cos(theta)^2. theta is the angle between this and src. This function is faster than GetCosWith(Vec3d) since it lacks one square root operation. public double GetCosSquareWith(Vec3d src) Parameters src Vec3d one of edge vector Returns double Cos(theta)^2 GetCosWith(Vec3d) Get Cos(theta). theta is the angle between this and v. public double GetCosWith(Vec3d v) Parameters v Vec3d a vector Returns double Cos(theta) GetCross(Vec3d) Get this cross src. public Vec3d GetCross(Vec3d src) Parameters src Vec3d src Returns Vec3d GetCsvText(string) Gets the CSV text representation of this vector with the specified format. public string GetCsvText(string format) Parameters format string Format string for the double values Returns string CSV formatted string GetEachValueAbs() Creates a new vector with the absolute value of each component. public Vec3d GetEachValueAbs() Returns Vec3d A new vector with absolute values of each component GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. GetMulEach(Vec3d) Creates a new vector by multiplying each component of this vector with the corresponding component of another vector. public Vec3d GetMulEach(Vec3d vec) Parameters vec Vec3d The vector to multiply with Returns Vec3d A new vector with component-wise multiplication results GetMulWithoutTrans(Mat4d) Get a new object by this*mat without translation part. public Vec3d GetMulWithoutTrans(Mat4d mat) Parameters mat Mat4d transform matrix Returns Vec3d new Vec3d(x * mat.At(0, 0) + y * mat.At(1, 0) + z * mat.At(2, 0) , x* mat.At(0, 1) + y* mat.At(1, 1) + z* mat.At(2, 1) , x* mat.At(0, 2) + y* mat.At(1, 2) + z* mat.At(2, 2)) GetNormalized() Generate normalized vec. public Vec3d GetNormalized() Returns Vec3d Normalized vec GetRadian(Vec3d) Get angle between this and v. The angle has no sign. This vector is not required to be an unit vector. public double GetRadian(Vec3d v) Parameters v Vec3d one of the edge vector. Not required to be an unit vector. Returns double Angle in radian GetRadian(Vec3d, Vec3d) Get angle between this and v. This function applies normal vector to determine the sign of angle. This vector is not required to be an unit vector. public double GetRadian(Vec3d v, Vec3d n) Parameters v Vec3d vector of ending edge. Not required to be an unit vector. n Vec3d normal vector. Not required to be an unit vector. Returns double angle in radian GetRadianByUnitVector(Vec3d) Get angle between this and v. The angle has no sign. This vector is not required to be an unit vector. Both this and v should be unit vector. Much efficient than GetRadian(Vec3d). public double GetRadianByUnitVector(Vec3d v) Parameters v Vec3d one of the edge vector. Not required to be an unit vector. Returns double Angle in radian GetTransform(Func) Get the new Vec3d by transforming each element by the function. public Vec3d GetTransform(Func transformingFunc) Parameters transformingFunc Func Returns Vec3d GetVec2dByPlaneDir(int) Gets a 2D vector by projecting the 3D vector onto a plane. public Vec2d GetVec2dByPlaneDir(int dir) Parameters dir int Direction index: 0 for YZ plane, 1 for ZX plane, 2 for XY plane Returns Vec2d A 2D vector representing the projection GetXRotation(double) Get rotated Vec3d along x direction. CCW. Much efficient than using Mat4d multiplication. public Vec3d GetXRotation(double rad) Parameters rad double rotation radian Returns Vec3d rotated Vec3d GetYRotation(double) Get rotated Vec3d along y direction. CCW. Much efficient than using Mat4d multiplication. public Vec3d GetYRotation(double rad) Parameters rad double rotation radian Returns Vec3d rotated Vec3d GetZRotation(double) Get rotated Vec3d along z direction. CCW. Much efficient than using Mat4d multiplication. public Vec3d GetZRotation(double rad) Parameters rad double rotation radian Returns Vec3d rotated Vec3d Interpolate(Vec3d, Vec3d, double) Interpolate from a to b with ratio alpha:(1-alpha). public static Vec3d Interpolate(Vec3d a, Vec3d b, double alpha) Parameters a Vec3d a b Vec3d b alpha double ratio Returns Vec3d a * (1 - alpha) + b * alpha IsNormalized(double) Checks if the vector is normalized (has a length of approximately 1). public bool IsNormalized(double toleranceSquare = 1E-07) Parameters toleranceSquare double Square of the tolerance value for comparing with 1 (default: 1e-7) Returns bool True if the vector is normalized within the specified tolerance MulEach(Vec3d) Multiplies each component of this vector with the corresponding component of another vector. public Vec3d MulEach(Vec3d vec) Parameters vec Vec3d The vector to multiply with Returns Vec3d This vector after multiplication MulWithoutTrans(Mat4d) this*=mat without translation part. public Vec3d MulWithoutTrans(Mat4d mat) Parameters mat Mat4d transformation matrix Returns Vec3d this See Also GetMulWithoutTrans(Mat4d) Normalize() Normalize this. public Vec3d Normalize() Returns Vec3d this Parse(string) If src is not null and not empty string, return Vec3d(string); otherwise return null. public static Vec3d Parse(string src) Parameters src string src Returns Vec3d parsed Vec3d ParseByCsv(string) Parses a vector from a CSV text string. public static Vec3d ParseByCsv(string csvText) Parameters csvText string CSV formatted string containing vector components Returns Vec3d A new vector parsed from the CSV text ReadBin(BinaryReader) Reads binary data to initialize the object. public void ReadBin(BinaryReader reader) Parameters reader BinaryReader The binary reader to read from Set(Vec3d) Set values by copy. public Vec3d Set(Vec3d src) Parameters src Vec3d src Returns Vec3d this Set(vec3d) Set values by copy. public Vec3d Set(vec3d src) Parameters src vec3d src Returns Vec3d this Set(double, double, double) Set values. public Vec3d Set(double x, double y, double z) Parameters x double x y double y z double z Returns Vec3d this Set(double[]) Set values by array. public Vec3d Set(double[] xyz) Parameters xyz double[] double[]{x,y,z} Returns Vec3d this Set(Func) Sets vector components using a function that maps direction index and current value to new value. public Vec3d Set(Func dirToValueFunc) Parameters dirToValueFunc Func Function that takes direction index (0=X, 1=Y, 2=Z) and current value, and returns the new value Returns Vec3d This vector after modification Set(Func) Sets vector components using a function that maps direction index to value. public Vec3d Set(Func dirToValueFunc) Parameters dirToValueFunc Func Function that takes direction index (0=X, 1=Y, 2=Z) and returns the corresponding value Returns Vec3d This vector after modification Set(int, double, double, double) Set values by direction offset. Direction 0,1,2 indicate x,y,z respectively. public Vec3d Set(int dir, double a, double b, double c) Parameters dir int direction offset a double value at direction (0+dir)%3 b double value at direction (1+dir)%3 c double value at direction (2+dir)%3 Returns Vec3d this SetEachNanToZero() Set NaN to 0 for each value. public Vec3d SetEachNanToZero() Returns Vec3d this SetEachValueAbs() Set each value to absolute. public Vec3d SetEachValueAbs() Returns Vec3d this ToArray() return new double[] { x, y, z } public double[] ToArray() Returns double[] { x, y, z } ToBuf(double[]) Set x,y,z to the dst array. public void ToBuf(double[] dst) Parameters dst double[] dst ToBuf(double[], ref int) Set x,y,z to the dst array from postion p and increase p by the pushed number. public int ToBuf(double[] dst, ref int p) Parameters dst double[] dst p int position from dst Returns int Which is pushed number of double ToPresentDto() Convert Vec3d to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. public object ToPresentDto() Returns object DTO object with type, x, y, z properties ToString() To representative string with format:(x,y,z). public override string ToString() Returns string Representative string ToString(string) To string with format: (x,y,z) public string ToString(string format) Parameters format string format of ToString(string) Returns string Representative string ToString(string, IFormatProvider) Returns a string representation of the vector formatted according to the specified format. public string ToString(string format, IFormatProvider formatProvider) Parameters format string The format to use for each component formatProvider IFormatProvider The format provider to use Returns string A formatted string representation of the vector ToString(string, int) Converts the vector to a string with the specified format and left padding. public string ToString(string format, int leftPadding) Parameters format string Format string for the double values leftPadding int Number of characters to pad on the left of each value Returns string Formatted string representation of the vector Transform(Func) Transform each element by the function. public Vec3d Transform(Func transformingFunc) Parameters transformingFunc Func Returns Vec3d TryParse(string, out Vec3d) Attempts to parse a string into a Vec3d. public static bool TryParse(string src, out Vec3d dst) Parameters src string The string to parse in format “(x,y,z)” dst Vec3d When this method returns, contains the Vec3d value if parsing succeeded, or null if parsing failed Returns bool true if parsing succeeded; otherwise, false TryParseLoose(string, out Vec3d) public static bool TryParseLoose(string text, out Vec3d dst) Parameters text string dst Vec3d Returns bool WriteBin(BinaryWriter) Output to bytes: writer.Write(x); writer.Write(y); writer.Write(z); public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter writer Operators operator +(Vec3d, Vec3d) Plus. public static Vec3d operator +(Vec3d left, Vec3d right) Parameters left Vec3d a right Vec3d b Returns Vec3d new Vec3d(a.x + b.x, a.y + b.y, a.z + b.z) operator /(Vec3d, double) Get a new object from a scaled by 1/d. public static Vec3d operator /(Vec3d a, double d) Parameters a Vec3d d double Returns Vec3d operator ==(Vec3d, Vec3d) Equality operator for comparing two Vec3d objects. public static bool operator ==(Vec3d left, Vec3d right) Parameters left Vec3d Left operand right Vec3d Right operand Returns bool True if the vectors are equal, false otherwise operator !=(Vec3d, Vec3d) Inequality operator for comparing two Vec3d objects. public static bool operator !=(Vec3d left, Vec3d right) Parameters left Vec3d Left operand right Vec3d Right operand Returns bool True if the vectors are not equal, false otherwise operator *(Vec3d, Mat4d) Get p*src. public static Vec3d operator *(Vec3d p, Mat4d src) Parameters p Vec3d point src Mat4d transmform matrix Returns Vec3d new Vec3d(p.x * src.At(0, 0) + p.y * src.At(1, 0) + p.z * src.At(2, 0) + src.At(3, 0) , p.x* src.At(0, 1) + p.y* src.At(1, 1) + p.z* src.At(2, 1) + src.At(3, 1) , p.x* src.At(0, 2) + p.y* src.At(1, 2) + p.z* src.At(2, 2) + src.At(3, 2)) operator *(Vec3d, double) Scale a by s. public static Vec3d operator *(Vec3d a, double s) Parameters a Vec3d vector s double scale Returns Vec3d new Vec3d(a.x * s, a.y * s, a.z * s) operator -(Vec3d, Vec3d) Minus. public static Vec3d operator -(Vec3d a, Vec3d b) Parameters a Vec3d a b Vec3d b Returns Vec3d new Vec3d(a.x - b.x, a.y - b.y, a.z - b.z) operator -(Vec3d) Get negate vector. public static Vec3d operator -(Vec3d src) Parameters src Vec3d src Returns Vec3d new Vec3d(-src.x, -src.y, -src.z)" + "summary": "Class Vec3d Namespace Hi.Geom Assembly HiGeom.dll Basic 3D point (or vector). [BsonIgnoreExtraElements] public class Vec3d : IEquatable, IExpandToBox3d, IBinaryIo, IWriteBin, ICsvRowIo, IEqualityOperators, IAdditionOperators, ISubtractionOperators, IMultiplyOperators, IMultiplyOperators, IDivisionOperators, IVec, IFormattable, IToPresentDto Inheritance object Vec3d Implements IEquatable IExpandToBox3d IBinaryIo IWriteBin ICsvRowIo IEqualityOperators IAdditionOperators ISubtractionOperators IMultiplyOperators IMultiplyOperators IDivisionOperators IVec IFormattable IToPresentDto Inherited Members object.Equals(object, object) object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) Extension Methods BinIoUtil.ToBytes(IWriteBin) GeomUtil.ExpandToBox3d(IExpandToBox3d, Mat4d, Box3d) GeomUtil.GetBox3d(IExpandToBox3d) DuplicateUtil.TryDuplicate(TSelf, params object[]) InvokeUtil.SelfInvoke(TSrc, Action) InvokeUtil.SelfInvoke(TSrc, Func) ColorUtil.GetGloomyColor(object, double, double) NameUtil.GetSelectionName(object) StringUtil.GetPropertyStringIfToStringNotOverloaded(object, bool, bool) LockUtil.Lock(object) Constructors Vec3d() Ctor. public Vec3d() Vec3d(Polar3d) Ctor. public Vec3d(Polar3d src) Parameters src Polar3d src Vec3d(Vec2d, double) Initializes a new instance of the Vec3d class from a 2D vector and z coordinate. public Vec3d(Vec2d xy, double z) Parameters xy Vec2d The 2D vector providing x and y coordinates. z double The z coordinate. Vec3d(Vec3d) Copy ctor. public Vec3d(Vec3d src) Parameters src Vec3d src Vec3d(vec3d) ctor. public Vec3d(vec3d src) Parameters src vec3d src Vec3d(vec3f) ctor. public Vec3d(vec3f src) Parameters src vec3f src Vec3d(IEnumerable) Creates a vector from an enumerable collection of three double values. public Vec3d(IEnumerable src) Parameters src IEnumerable Source collection containing three double values Vec3d(double, double, double) Ctor. public Vec3d(double x, double y, double z) Parameters x double x y double y z double z Vec3d(Func) Creates a vector using a function that maps direction index to value. public Vec3d(Func dirToValueFunc) Parameters dirToValueFunc Func Function that takes direction index (0=X, 1=Y, 2=Z) and returns the corresponding value Vec3d(BinaryReader) Ctor by bytes: x = reader.ReadDouble(); y = reader.ReadDouble(); z = reader.ReadDouble(); public Vec3d(BinaryReader reader) Parameters reader BinaryReader reader Vec3d(int, double, double, double) Ctor by direction offset. Direction 0,1,2 indicate x,y,z respectively. public Vec3d(int dir, double a, double b, double c) Parameters dir int direction offset a double value at direction (0+dir)%3 b double value at direction (1+dir)%3 c double value at direction (2+dir)%3 Vec3d(string) Ctor by string. The format is (x,y,z). public Vec3d(string src) Parameters src string src Vec3d((double, double, double)) Ctor. public Vec3d((double, double, double) src) Parameters src (double, double, double) src Fields x Value at x direction. public double x Field Value double y Value at y direction. public double y Field Value double z Value at z direction. public double z Field Value double Properties AbsSum [BsonIgnore] public double AbsSum { get; } Property Value double Sum of the abs {x,y,z}. Which is Math.Abs(x) + Math.Abs(y) + Math.Abs(z). AllOne public static Vec3d AllOne { get; } Property Value Vec3d Generate Vec3d(1, 1, 1). CsvText Csv text. [BsonIgnore] public string CsvText { get; set; } Property Value string CsvTitleText Csv titles text. [BsonIgnore] public string CsvTitleText { get; } Property Value string ElementNum Element number: 3 for (x,y,z). public static int ElementNum { get; } Property Value int IsAllFinite [BsonIgnore] public bool IsAllFinite { get; } Property Value bool Is x,y,z all finite. IsAllNaN [BsonIgnore] public bool IsAllNaN { get; } Property Value bool is x,y,z all NaN. IsAllNegativeInfinity [BsonIgnore] public bool IsAllNegativeInfinity { get; } Property Value bool is x,y,z all NegativeInfinity. IsAllPositiveInfinity [BsonIgnore] public bool IsAllPositiveInfinity { get; } Property Value bool is x,y,z all PositiveInfinity. IsAnyFinite [BsonIgnore] public bool IsAnyFinite { get; } Property Value bool Is at least one of x,y,z finite. IsAnyNaN [BsonIgnore] public bool IsAnyNaN { get; } Property Value bool Is any of {x,y,z} NaN. IsZero [BsonIgnore] public bool IsZero { get; } Property Value bool Is zero vector. Which is x == 0 && y == 0 && z == 0. this[int] Gets or sets the element at the specified index. public double this[int dir] { get; set; } Parameters dir int Property Value double The element at the specified index. Length [BsonIgnore] public double Length { get; } Property Value double Geometry length of this. LengthSquare [BsonIgnore] public double LengthSquare { get; } Property Value double Geometry length ^ 2. Which is x * x + y * y + z * z. MaxAbsDir [BsonIgnore] public int MaxAbsDir { get; } Property Value int Get the direction index with maximum absolute value. If the absolute of {x,y,z} is the biggest, return {0,1,2}. MaxDir [BsonIgnore] public int MaxDir { get; } Property Value int Get the direction index with maximum value. If {x,y,z} is the biggest, return {0,1,2}. MaxValue [BsonIgnore] public double MaxValue { get; } Property Value double The max value selected from {x,y,z}. Which is Math.Max(Math.Max(x, y), z). MinDir [BsonIgnore] public int MinDir { get; } Property Value int Get the direction index with maximum value. If {x,y,z} is the biggest, return {0,1,2}. MinValue [BsonIgnore] public double MinValue { get; } Property Value double The min value selected from {x,y,z}. Which is Math.Min(Math.Min(x, y), z). NaN public static Vec3d NaN { get; } Property Value Vec3d Generate Vec3d(double.NaN, double.NaN, double.NaN). NativeByteSize public static int NativeByteSize { get; } Property Value int Byte size: sizeof(double) * 3. NegativeInfinity public static Vec3d NegativeInfinity { get; } Property Value Vec3d Generate Vec3d(double.NegativeInfinity, double.NegativeInfinity, double.NegativeInfinity) PositiveInfinity public static Vec3d PositiveInfinity { get; } Property Value Vec3d Generate Vec3d(double.PositiveInfinity, double.PositiveInfinity, double.PositiveInfinity) Rank Dimension (i.e. Size) of the Vector. public int Rank { get; } Property Value int Text Gets or sets the vector as a string representation. [BsonIgnore] public string Text { get; set; } Property Value string UnitX public static Vec3d UnitX { get; } Property Value Vec3d Generate Vec3d(1, 0, 0). UnitY public static Vec3d UnitY { get; } Property Value Vec3d Generate Vec3d(0, 1, 0). UnitZ public static Vec3d UnitZ { get; } Property Value Vec3d Generate Vec3d(0, 0, 1). X Value at x direction. [BsonElement] public double X { get; set; } Property Value double XY Vec2d of X and Y. The getter gets a copied object. [BsonIgnore] public Vec2d XY { get; set; } Property Value Vec2d Y Value at y direction. [BsonElement] public double Y { get; set; } Property Value double Z Value at z direction. [BsonElement] public double Z { get; set; } Property Value double Zero public static Vec3d Zero { get; } Property Value Vec3d Generate Vec3d(0, 0, 0). Methods All(double) Creates a vector with all components set to the specified value. public static Vec3d All(double v) Parameters v double Value to set for all components Returns Vec3d A new vector with all components set to the specified value At(int) Get the value at the dirction. Direction 0,1,2 are x,y,z. If direction index is larger than 2, the return value is at z direction. public ref double At(int dir) Parameters dir int direction index Returns double value at the direction BilinearInterpolate(Vec3d, Vec3d, Vec3d, Vec3d, double, double) Performs bilinear interpolation between four points. public static Vec3d BilinearInterpolate(Vec3d p00, Vec3d p01, Vec3d p10, Vec3d p11, double u, double v) Parameters p00 Vec3d Point at (0,0) p01 Vec3d Point at (0,1) p10 Vec3d Point at (1,0) p11 Vec3d Point at (1,1) u double Interpolation parameter in first dimension (0.0 to 1.0) v double Interpolation parameter in second dimension (0.0 to 1.0) Returns Vec3d The interpolated point Cross(Vec3d, Vec3d) Get a cross b. public static Vec3d Cross(Vec3d a, Vec3d b) Parameters a Vec3d a b Vec3d b Returns Vec3d a x b Dot(Vec3d) this dot src. public double Dot(Vec3d src) Parameters src Vec3d src Returns double dotted value Enumerate() Enumerates the components of the vector. public IEnumerable Enumerate() Returns IEnumerable An enumerable sequence of the vector's components (X, Y, Z) Equals(Vec3d) Indicates whether the current object is equal to another object of the same type. public bool Equals(Vec3d other) Parameters other Vec3d An object to compare with this object. Returns bool true if the current object is equal to the other parameter; otherwise, false. Equals(Vec3d, double) check equals for each component with tolerance. public bool Equals(Vec3d other, double toleranceForEachComponent) Parameters other Vec3d other vec toleranceForEachComponent double tolerance for each component Returns bool check equals for each component with tolerance. Equals(object) Determines whether the specified object is equal to the current object. public override bool Equals(object obj) Parameters obj object The object to compare with the current object. Returns bool true if the specified object is equal to the current object; otherwise, false. ExpandMax(Vec3d) Find and expand maximum values from src. public void ExpandMax(Vec3d src) Parameters src Vec3d src ExpandMin(Vec3d) Find and expand minimum values from src. public void ExpandMin(Vec3d src) Parameters src Vec3d src ExpandToBox3d(Box3d) Expands the destination box. This function is usually used to compute the bounding box of elements. public void ExpandToBox3d(Box3d dst) Parameters dst Box3d Destination box GetCosSquareWith(Vec3d) Get Cos(theta)^2. theta is the angle between this and src. This function is faster than GetCosWith(Vec3d) since it lacks one square root operation. public double GetCosSquareWith(Vec3d src) Parameters src Vec3d one of edge vector Returns double Cos(theta)^2 GetCosWith(Vec3d) Get Cos(theta). theta is the angle between this and v. public double GetCosWith(Vec3d v) Parameters v Vec3d a vector Returns double Cos(theta) GetCross(Vec3d) Get this cross src. public Vec3d GetCross(Vec3d src) Parameters src Vec3d src Returns Vec3d GetCsvText(string) Gets the CSV text representation of this vector with the specified format. public string GetCsvText(string format) Parameters format string Format string for the double values Returns string CSV formatted string GetEachValueAbs() Creates a new vector with the absolute value of each component. public Vec3d GetEachValueAbs() Returns Vec3d A new vector with absolute values of each component GetHashCode() Serves as the default hash function. public override int GetHashCode() Returns int A hash code for the current object. GetMulEach(Vec3d) Creates a new vector by multiplying each component of this vector with the corresponding component of another vector. public Vec3d GetMulEach(Vec3d vec) Parameters vec Vec3d The vector to multiply with Returns Vec3d A new vector with component-wise multiplication results GetMulWithoutTrans(Mat4d) Get a new object by this*mat without translation part. public Vec3d GetMulWithoutTrans(Mat4d mat) Parameters mat Mat4d transform matrix Returns Vec3d new Vec3d(x * mat.At(0, 0) + y * mat.At(1, 0) + z * mat.At(2, 0) , x* mat.At(0, 1) + y* mat.At(1, 1) + z* mat.At(2, 1) , x* mat.At(0, 2) + y* mat.At(1, 2) + z* mat.At(2, 2)) GetNormalized() Generate normalized vec. public Vec3d GetNormalized() Returns Vec3d Normalized vec GetRadian(Vec3d) Get angle between this and v. The angle has no sign. This vector is not required to be an unit vector. public double GetRadian(Vec3d v) Parameters v Vec3d one of the edge vector. Not required to be an unit vector. Returns double Angle in radian GetRadian(Vec3d, Vec3d) Get angle between this and v. This function applies normal vector to determine the sign of angle. This vector is not required to be an unit vector. public double GetRadian(Vec3d v, Vec3d n) Parameters v Vec3d vector of ending edge. Not required to be an unit vector. n Vec3d normal vector. Not required to be an unit vector. Returns double angle in radian GetRadianByUnitVector(Vec3d) Get angle between this and v. The angle has no sign. This vector is not required to be an unit vector. Both this and v should be unit vector. Much efficient than GetRadian(Vec3d). public double GetRadianByUnitVector(Vec3d v) Parameters v Vec3d one of the edge vector. Not required to be an unit vector. Returns double Angle in radian GetTransform(Func) Get the new Vec3d by transforming each element by the function. public Vec3d GetTransform(Func transformingFunc) Parameters transformingFunc Func Returns Vec3d GetVec2dByPlaneDir(int) Gets a 2D vector by projecting the 3D vector onto a plane. public Vec2d GetVec2dByPlaneDir(int dir) Parameters dir int Direction index: 0 for YZ plane, 1 for ZX plane, 2 for XY plane Returns Vec2d A 2D vector representing the projection GetXRotation(double) Get rotated Vec3d along x direction. CCW. Much efficient than using Mat4d multiplication. public Vec3d GetXRotation(double rad) Parameters rad double rotation radian Returns Vec3d rotated Vec3d GetYRotation(double) Get rotated Vec3d along y direction. CCW. Much efficient than using Mat4d multiplication. public Vec3d GetYRotation(double rad) Parameters rad double rotation radian Returns Vec3d rotated Vec3d GetZRotation(double) Get rotated Vec3d along z direction. CCW. Much efficient than using Mat4d multiplication. public Vec3d GetZRotation(double rad) Parameters rad double rotation radian Returns Vec3d rotated Vec3d Interpolate(Vec3d, Vec3d, double) Interpolate from a to b with ratio alpha:(1-alpha). public static Vec3d Interpolate(Vec3d a, Vec3d b, double alpha) Parameters a Vec3d a b Vec3d b alpha double ratio Returns Vec3d a * (1 - alpha) + b * alpha IsNormalized(double) Checks if the vector is normalized (has a length of approximately 1). public bool IsNormalized(double toleranceSquare = 1E-07) Parameters toleranceSquare double Square of the tolerance value for comparing with 1 (default: 1e-7) Returns bool True if the vector is normalized within the specified tolerance MulEach(Vec3d) Multiplies each component of this vector with the corresponding component of another vector. public Vec3d MulEach(Vec3d vec) Parameters vec Vec3d The vector to multiply with Returns Vec3d This vector after multiplication MulWithoutTrans(Mat4d) this*=mat without translation part. public Vec3d MulWithoutTrans(Mat4d mat) Parameters mat Mat4d transformation matrix Returns Vec3d this See Also GetMulWithoutTrans(Mat4d) Normalize() Normalize this. public Vec3d Normalize() Returns Vec3d this Parse(string) If src is not null and not empty string, return Vec3d(string); otherwise return null. public static Vec3d Parse(string src) Parameters src string src Returns Vec3d parsed Vec3d ParseByCsv(string) Parses a vector from a CSV text string. public static Vec3d ParseByCsv(string csvText) Parameters csvText string CSV formatted string containing vector components Returns Vec3d A new vector parsed from the CSV text ReadBin(BinaryReader) Reads binary data to initialize the object. public void ReadBin(BinaryReader reader) Parameters reader BinaryReader The binary reader to read from Set(Vec3d) Set values by copy. public Vec3d Set(Vec3d src) Parameters src Vec3d src Returns Vec3d this Set(vec3d) Set values by copy. public Vec3d Set(vec3d src) Parameters src vec3d src Returns Vec3d this Set(double, double, double) Set values. public Vec3d Set(double x, double y, double z) Parameters x double x y double y z double z Returns Vec3d this Set(double[]) Set values by array. public Vec3d Set(double[] xyz) Parameters xyz double[] double[]{x,y,z} Returns Vec3d this Set(Func) Sets vector components using a function that maps direction index and current value to new value. public Vec3d Set(Func dirToValueFunc) Parameters dirToValueFunc Func Function that takes direction index (0=X, 1=Y, 2=Z) and current value, and returns the new value Returns Vec3d This vector after modification Set(Func) Sets vector components using a function that maps direction index to value. public Vec3d Set(Func dirToValueFunc) Parameters dirToValueFunc Func Function that takes direction index (0=X, 1=Y, 2=Z) and returns the corresponding value Returns Vec3d This vector after modification Set(int, double, double, double) Set values by direction offset. Direction 0,1,2 indicate x,y,z respectively. public Vec3d Set(int dir, double a, double b, double c) Parameters dir int direction offset a double value at direction (0+dir)%3 b double value at direction (1+dir)%3 c double value at direction (2+dir)%3 Returns Vec3d this SetEachNanToZero() Set NaN to 0 for each value. public Vec3d SetEachNanToZero() Returns Vec3d this SetEachValueAbs() Set each value to absolute. public Vec3d SetEachValueAbs() Returns Vec3d this ToArray() return new double[] { x, y, z } public double[] ToArray() Returns double[] { x, y, z } ToBuf(double[]) Set x,y,z to the dst array. public void ToBuf(double[] dst) Parameters dst double[] dst ToBuf(double[], ref int) Set x,y,z to the dst array from postion p and increase p by the pushed number. public int ToBuf(double[] dst, ref int p) Parameters dst double[] dst p int position from dst Returns int Which is pushed number of double ToPresentDto() Convert Vec3d to presentation DTO (Data Transfer Object) for JSON serialization. The returned object includes type metadata for web API presentation. public object ToPresentDto() Returns object DTO object with type, x, y, z properties ToString() To representative string with format:(x,y,z). public override string ToString() Returns string Representative string ToString(string) To string with format: (x,y,z) public string ToString(string format) Parameters format string format of ToString(string) Returns string Representative string ToString(string, IFormatProvider) Returns a string representation of the vector formatted according to the specified format. public string ToString(string format, IFormatProvider formatProvider) Parameters format string The format to use for each component formatProvider IFormatProvider The format provider to use Returns string A formatted string representation of the vector ToString(string, int) Converts the vector to a string with the specified format and left padding. public string ToString(string format, int leftPadding) Parameters format string Format string for the double values leftPadding int Number of characters to pad on the left of each value Returns string Formatted string representation of the vector Transform(Func) Transform each element by the function. public Vec3d Transform(Func transformingFunc) Parameters transformingFunc Func Returns Vec3d TryParse(string, out Vec3d) Attempts to parse a string into a Vec3d. public static bool TryParse(string src, out Vec3d dst) Parameters src string The string to parse in format “(x,y,z)” dst Vec3d When this method returns, contains the Vec3d value if parsing succeeded, or null if parsing failed Returns bool true if parsing succeeded; otherwise, false TryParseLoose(string, out Vec3d) Attempts to parse a string into a Vec3d using a loose format. Accepts various delimiters (comma, semicolon, space) and removes brackets/parentheses. public static bool TryParseLoose(string text, out Vec3d dst) Parameters text string The string to parse. Can contain brackets, parentheses, or other delimiters. dst Vec3d When this method returns, contains the parsed Vec3d if successful, or Vec3d.NaN if parsing failed. Returns bool True if parsing was successful; otherwise, false. WriteBin(BinaryWriter) Output to bytes: writer.Write(x); writer.Write(y); writer.Write(z); public void WriteBin(BinaryWriter writer) Parameters writer BinaryWriter writer Operators operator +(Vec3d, Vec3d) Plus. public static Vec3d operator +(Vec3d left, Vec3d right) Parameters left Vec3d a right Vec3d b Returns Vec3d new Vec3d(a.x + b.x, a.y + b.y, a.z + b.z) operator /(Vec3d, double) Get a new object from a scaled by 1/d. public static Vec3d operator /(Vec3d a, double d) Parameters a Vec3d d double Returns Vec3d operator ==(Vec3d, Vec3d) Equality operator for comparing two Vec3d objects. public static bool operator ==(Vec3d left, Vec3d right) Parameters left Vec3d Left operand right Vec3d Right operand Returns bool True if the vectors are equal, false otherwise operator !=(Vec3d, Vec3d) Inequality operator for comparing two Vec3d objects. public static bool operator !=(Vec3d left, Vec3d right) Parameters left Vec3d Left operand right Vec3d Right operand Returns bool True if the vectors are not equal, false otherwise operator *(Vec3d, Mat4d) Get p*src. public static Vec3d operator *(Vec3d p, Mat4d src) Parameters p Vec3d point src Mat4d transmform matrix Returns Vec3d new Vec3d(p.x * src.At(0, 0) + p.y * src.At(1, 0) + p.z * src.At(2, 0) + src.At(3, 0) , p.x* src.At(0, 1) + p.y* src.At(1, 1) + p.z* src.At(2, 1) + src.At(3, 1) , p.x* src.At(0, 2) + p.y* src.At(1, 2) + p.z* src.At(2, 2) + src.At(3, 2)) operator *(Vec3d, double) Scale a by s. public static Vec3d operator *(Vec3d a, double s) Parameters a Vec3d vector s double scale Returns Vec3d new Vec3d(a.x * s, a.y * s, a.z * s) operator -(Vec3d, Vec3d) Minus. public static Vec3d operator -(Vec3d a, Vec3d b) Parameters a Vec3d a b Vec3d b Returns Vec3d new Vec3d(a.x - b.x, a.y - b.y, a.z - b.z) operator -(Vec3d) Get negate vector. public static Vec3d operator -(Vec3d src) Parameters src Vec3d src Returns Vec3d new Vec3d(-src.x, -src.y, -src.z)" }, "api/Hi.Geom.Vec3dUtil.html": { "href": "api/Hi.Geom.Vec3dUtil.html", @@ -5387,7 +5387,7 @@ "dev-doc/release-note/index.html": { "href": "dev-doc/release-note/index.html", "title": "Release Note | HiAPI-C# 2025", - "summary": "Release Note HiNc Packages Version 3.1.106 Rename mapping API for clearer naming: ReadCsvByTimeInterpolation → MapSingleByCsvFile (one-to-one mapping) MapByActualTime → MapSeriesByCsvFile (one-to-many mapping) Rename CSV column prefix Spindle to Holder for sensor data mapping Unify CSV column tags to MappingUtil for consistent data mapping Fix ChartRange manipulation to be time-based instead of step-based for more accurate time chart display Tune thread priority for machining parallel processing to improve UI responsiveness during simulation Various code cleanup and improvements HiNc Packages Version 3.1.102 Separate resource files (Resource, wwwroot, Doc) to HiNc-Resource nuget package for smaller package size Add ScaledFeedPerCycle function for scaled feed-per-cycle machining motion resolution Upgrade target framework to .NET 10.0 Various code cleanup and improvements HiNc Packages Version 3.1.100 Refactor project architecture: split runtime functions from MachiningProject to LocalProjectService for better separation of concerns Improve MillingTraining module with separate lead and result parameter templates for more accurate cutting parameter training Separate C++ library for code protection Add UTF-8 file path support for runtime geometry IO operations Improve CsvRunner with enhanced time mapping pattern Various architecture improvements and bug fixes HiNc Packages Version 3.1.91 Add NcOptimizationEmbeddedLogMode to control embedded log detail level (None/SimpleLog/FullLog) (see 嵌入式日誌註解). Fix bug of NcOptProc duplicated feedrate assignment HiNc Packages Version 3.1.90 Rename optimization log API EnableIndividualStepAdjustmentLog Fix crash from workpiece displaying with specific mechanical topology setting Improve .flatproc.log output to maintain step order during parallel computation Various stability improvements and bug fixes HiNc Packages Version 3.1.86 Re-build NcOptProc with stricter optimization logics Add optimization logging features (see 優化日誌): .flatproc.log file output for optimization process analysis Embedded log comments in optimized NC file marking source lines with (src) suffix Fix cutting depth and width accuracy by bounding-box method with workpiece surface Fix collision check error during concurrent changing collidable object Various stability improvements and bug fixes HiNc Packages Version 3.1.84 Optimize memory usage by shrinking map-size of clStripPos Fix design pattern of cutting parameter training module (MillingTraining) Add LoadCuttingParaByFile function to load cutting parameters from file Improve CsvRunner actual time parsing: automatically calculate step duration from actual time when duration is not provided Enhance message handling in RuntimeApi by unifying SessionMessageHost usage Improve optimization performance with better task scheduling Various performance improvements and bug fixes HiNc Packages Version 3.1.75 Add actual time tracking functionality (ActualTime) Various stability improvements and bug fixes HiNc Packages Version 3.1.74 Rename class MillingCutterOptLimit to MillingCutterOptOption Add physics simulation function for relief face collision depth detection () and optimization (EnableLimitByReliefAngle) Add UpdateNcOptOption function to step processing Fix step ordering bug from concurrent processing Fix ClStrip shrinking to zero issue" + "summary": "Release Note HiNc Packages Version 3.1.106 Rename mapping API for clearer naming: ReadCsvByTimeInterpolation → MapSingleByCsvFile (one-to-one mapping) MapByActualTime → MapSeriesByCsvFile (one-to-many mapping) Rename CSV column prefix Spindle to Holder for sensor data mapping Unify CSV column tags to MappingUtil for consistent data mapping Fix ChartRange manipulation to be time-based instead of step-based for more accurate time chart display Tune thread priority for machining parallel processing to improve UI responsiveness during simulation Various code cleanup and improvements HiNc Packages Version 3.1.102 Separate resource files (Resource, wwwroot, Doc) to HiNc-Resource nuget package for smaller package size Add ScaledFeedPerCycle function for scaled feed-per-cycle machining motion resolution Upgrade target framework to .NET 10.0 Various code cleanup and improvements HiNc Packages Version 3.1.100 Refactor project architecture: split runtime functions from MachiningProject to LocalProjectService for better separation of concerns Improve MillingTraining module with separate lead and result parameter templates for more accurate cutting parameter training Separate C++ library for code protection Add UTF-8 file path support for runtime geometry IO operations Improve CsvRunner with enhanced time mapping pattern Various architecture improvements and bug fixes HiNc Packages Version 3.1.91 Add NcOptimizationEmbeddedLogMode to control embedded log detail level (None/SimpleLog/FullLog) (see 嵌入式日誌註解). Fix bug of NcOptProc duplicated feedrate assignment HiNc Packages Version 3.1.90 Rename optimization log API EnableIndividualStepAdjustmentLog Fix crash from workpiece displaying with specific mechanical topology setting Improve .flatproc.log output to maintain step order during parallel computation Various stability improvements and bug fixes HiNc Packages Version 3.1.86 Re-build NcOptProc with stricter optimization logics Add optimization logging features (see 優化日誌): .flatproc.log file output for optimization process analysis Embedded log comments in optimized NC file marking source lines with (src) suffix Fix cutting depth and width accuracy by bounding-box method with workpiece surface Fix collision check error during concurrent changing collidable object Various stability improvements and bug fixes HiNc Packages Version 3.1.84 Optimize memory usage by shrinking map-size of clStripPos Fix design pattern of cutting parameter training module (MillingTraining) Add LoadCuttingParaByFile function to load cutting parameters from file Improve CsvRunner actual time parsing: automatically calculate step duration from actual time when duration is not provided Enhance message handling in RuntimeApi by unifying SessionMessageHost usage Improve optimization performance with better task scheduling Various performance improvements and bug fixes HiNc Packages Version 3.1.75 Add actual time tracking functionality (ActualTime) Various stability improvements and bug fixes HiNc Packages Version 3.1.74 Rename class MillingCutterOptLimit to MillingCutterOptOption Add physics simulation function for relief face collision detection (ReliefFaceCollidingSpeed_mmds, IsReliefFaceCollided) and optimization (EnableLimitByReliefAngle) Add function to step processing Fix step ordering bug from concurrent processing Fix ClStrip shrinking to zero issue" }, "dev-doc/system-requirements.html": { "href": "dev-doc/system-requirements.html", diff --git a/App/wwwroot/HiAPI-docsite/manifest.json b/App/wwwroot/HiAPI-docsite/manifest.json index 3884ac4..ffc9ef8 100644 --- a/App/wwwroot/HiAPI-docsite/manifest.json +++ b/App/wwwroot/HiAPI-docsite/manifest.json @@ -974,7 +974,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.Common.Collections.LinkedListUtil", - "Summary": null + "Summary": "

Utility methods for working with linked lists.

\n" }, { "type": "ManagedReference", @@ -1730,7 +1730,7 @@ "Uid": null, "IsMRef": true, "Title": "Hi.Common.IToPresentDto", - "Summary": null + "Summary": "

Interface for converting objects to presentation DTOs (Data Transfer Objects) for JSON serialization.

\n" }, { "type": "ManagedReference", diff --git a/App/zh-Hans/HiMech.resources.dll b/App/zh-Hans/HiMech.resources.dll index af5b2b8638e499b3bff79753fd1c77b05c348d76..a7081129692395c5dfe9ae92680f0ab66313000b 100644 GIT binary patch delta 223 zcmZq3Xvmn*!7^b}-Mx)HPRxv1o6j>VG6`tjnYk^Q>9^bL5U$j9bv1Kt@n&}xZ zFqkqj7#Qmr>KPiCX`33QCZ`xATAEv!B$=cnrkR+VC0d#$nHZayBw3o6n4~6KnxrKe zSZ-d-{#u1Ii-D1WnSp^JYx8uSmrRUin;Z4(8H3Fjv>8kpj2KcGk{MDM3>Xp_EE&uh zEEr4}l7Kh`$WH^(<_uuD0s!nG BHfaC= delta 223 zcmZq3Xvmn*!D9Zca^l7wCuYXX&F7gFnFNCF`iESw_~^9w<=^Aa)!I!qv1Kt@n(7%a zFqkqj7#Qmr>KPiCYFnBZr=?g}8l{?;B^sC-C8ro9TAG+xnxv%~Bpam}rdpU=q$Z~% z8f{+8{#u1IlYx7ZJOc;zA(il=0EP!kyhEyQm zj3JT1fWZ{VO9qM?0C^x)CSWoRsKNj!ZUoe02xMC@m;-StSY;xE(d1x5OQ7++hQ&+( D)QdO& diff --git a/App/zh-Hans/HiNc.resources.dll b/App/zh-Hans/HiNc.resources.dll index e947d4e3527eb0bb98e7ea1ce1229b09ad774fe2..64e3eed57476b390bb80172b92b1d680d91a098d 100644 GIT binary patch delta 223 zcmZorX;7Ka!SYI+Z^_0UCuYXt&F7f~nFJOT7%8pa9O<-*S%^P(d0pV-53D;aP4x^I z7)%)%42<;*^$ZP7wNp|J(ozh}3{6r~5);i#Ez&GaQZ0>)Ees8eEs{)A(^8X@%ndC~ z4K_bwTf@v*%)rRN%)r1lTD+QDo{3+AsNUv2Z~z)MGPiC=CuSF&-a)a E03r@F6951J delta 223 zcmWlRy-EW?6h^;sqL7e?Vx2BsVA=WKX|3#ig8i9=w3{Yf(gXrYKv+T^z}80A#==Js z%kACL#z)9qZgalF;cjM|*~@P5T7Gozheyt;=7-;3-N^+`>tpit)$aek+lN*CfBoro z6a$7KR*{H=(DUG(DTB_XwL-_r$q>)3y(h1@iihOSrQmO(9T74VH70Af;MMBP!$%tLuO??0Uw&NG> ClQts& diff --git a/App/zh-Hant/HiGeom.resources.dll b/App/zh-Hant/HiGeom.resources.dll index 481f3b3e2dca046add08b616833f7ae85eef9842..56055676228f87c66871d1d91096b6fc0d69d261 100644 GIT binary patch delta 231 zcmW-Xu}T9$6h-f34Ix2vC55Cq9TBHzCScr89+Q`(V z4p{g*X@Wk&3jd@eDJ-Uyk(a+_jkMXYTrFr z$_qdXTvIM{M_H+yGHob)Gq+R*6&fSG^R}{;)a^_wMU^&^;#JQl{Tc!ZfI7Yoh8;oi z>MGpYap delta 231 zcmWNHze)o^7{q6@28{$c(Z)VSFy!1nx9l!h2|`E{NZM<5_wL?8OlJxUA%zcMX%!ZH z4M|~R>r2=K{rK_CH_Xg>v>v@|j`k<~d-r_DS)D)mRj*j#`sx1bcJ^W4eiq})<@UFK zaH2F7}ZdWHsO+NMUS$tebjmgW{FNhT?YX(r}oiI%2GCdOtaNtPxiCaKAmCTU3q zmYWx|zgFSQVqj!oW?*2*+B{w7B@?6B=0^Q`#$YoBZ3a^YBZgFlWQG(51BOHfO9pcW z3kDO0Bp^-!^3#B{IfEHk#uO}S4CI02ErBEmg7kveX+SXp2FuC8hL%9%dku@30B$lh A;s5{u delta 223 zcmZq3Xvmn*!IH7Juw`S96EkDx=JU*oOajT%V!P+(`Zz9lmt7xlzBKG1!zro57O7gu$30jUk1>0?0OENCooE z7!nx_7)*h@WT3bKkOxv_0w&XdDhz<)MnFA=K(+;gIS{9URVFeRO%67+1RCFKSj+?f DNQyP^ diff --git a/App/zh-Hant/HiNc.resources.dll b/App/zh-Hant/HiNc.resources.dll index 268f688abe5dc19913b62917ed905ec01d124fa5..816eeaf72ce40be5142fd3f8c4746f96fd382eb0 100644 GIT binary patch delta 223 zcmZoLX)u}4!IJZo^YO+WCuYXt&F7i7G6{&xX|%k4I?#R7-hEGk>;s!8Phs0>X{u+y zz+lSAU|_6gsAp(ss-2Q*kd|U#W@wU{l9*^_YLRAXl4@yWY+-0%Y>{M|nwFZJWNv6_ zYOuMDor9aRn1PXjnSp_!c=L3jRz^nC&9WlJjKQW1+6*ZSsSE}TX+YY5!HmI>!34-p zVMqi*GX_%z3!sc8Sj>{ah`|`hHw3B!(MdqrRG@4sLo$$U4ivWpiWp3OENTfdUhFY5 E00?q6Hvj+t delta 223 zcmZoLX)u}4!Lr@)J-s2A^Phs0>X`*Mq zz+lSAU|_6gsAp(sqMd4KZkm>Al5AvVW@utyY?^FjoM@Svl5B38YLt?cXl!a>Zf2BZ zYQDLRor9aRh=GxTnSp_!X!CTTRz^mX&9WlJjKL-h+6<`-mJH?$rVMF7mI*^LgAs!n z5E=s61`NhPagc~HLn2UBDnkm82U42~6iZ=90*ZoESOCS$fFemiw)y18qLv`z#U3*Q E0L7CuJpcdz

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 Kp7EC*=6?Vz%xM1r diff --git a/App/HiNC-2025-win-desktop.deps.json b/App/HiNC-2025-win-desktop.deps.json index be38a3d..2925d8d 100644 --- a/App/HiNC-2025-win-desktop.deps.json +++ b/App/HiNC-2025-win-desktop.deps.json @@ -11,9 +11,9 @@ "dependencies": { "AvalonEdit": "6.3.0.90", "FontAwesome.Sharp": "6.3.0", - "Hi.WpfPlus": "3.1.98", - "HiNc": "3.1.114", - "HiNc-Resource": "3.1.14", + "Hi.WpfPlus": "3.1.99", + "HiNc": "3.1.115", + "HiNc-Resource": "3.1.15", "runtimepack.Microsoft.NETCore.App.Runtime.win-x64": "10.0.2", "runtimepack.Microsoft.WindowsDesktop.App.Runtime.win-x64": "10.0.2", "runtimepack.Microsoft.AspNetCore.App.Runtime.win-x64": "10.0.2" @@ -1673,36 +1673,36 @@ } } }, - "Hi.WpfPlus/3.1.98": { + "Hi.WpfPlus/3.1.99": { "dependencies": { - "HiDisp": "3.1.100" + "HiDisp": "3.1.101" }, "runtime": { "lib/net10.0-windows7.0/Hi.WpfPlus.dll": { - "assemblyVersion": "3.1.98.0", - "fileVersion": "3.1.98.0" + "assemblyVersion": "3.1.99.0", + "fileVersion": "3.1.99.0" } } }, - "HiCbtr/3.1.98": { + "HiCbtr/3.1.99": { "dependencies": { - "HiDisp": "3.1.100" + "HiDisp": "3.1.101" }, "runtime": { "lib/net10.0/HiCbtr.dll": { - "assemblyVersion": "3.1.98.0", - "fileVersion": "3.1.98.0" + "assemblyVersion": "3.1.99.0", + "fileVersion": "3.1.99.0" } } }, - "HiDisp/3.1.100": { + "HiDisp/3.1.101": { "dependencies": { - "HiGeom": "3.1.92" + "HiGeom": "3.1.93" }, "runtime": { "lib/net10.0/HiDisp.dll": { - "assemblyVersion": "3.1.100.0", - "fileVersion": "3.1.100.0" + "assemblyVersion": "3.1.101.0", + "fileVersion": "3.1.101.0" } }, "native": { @@ -1720,7 +1720,7 @@ } } }, - "HiGeom/3.1.92": { + "HiGeom/3.1.93": { "dependencies": { "Google.Protobuf": "3.28.3", "Grpc.AspNetCore": "2.66.0", @@ -1731,8 +1731,8 @@ }, "runtime": { "lib/net10.0/HiGeom.dll": { - "assemblyVersion": "3.1.92.0", - "fileVersion": "3.1.92.0" + "assemblyVersion": "3.1.93.0", + "fileVersion": "3.1.93.0" } }, "resources": { @@ -1744,27 +1744,27 @@ } } }, - "HiLicense/3.1.92": { + "HiLicense/3.1.93": { "dependencies": { - "HiGeom": "3.1.92" + "HiGeom": "3.1.93" }, "runtime": { "lib/net10.0/HiLicense.dll": { - "assemblyVersion": "3.1.92.0", - "fileVersion": "3.1.92.0" + "assemblyVersion": "3.1.93.0", + "fileVersion": "3.1.93.0" } } }, - "HiMech/3.1.105": { + "HiMech/3.1.106": { "dependencies": { "CommandLineParser": "2.9.1", - "HiCbtr": "3.1.98", + "HiCbtr": "3.1.99", "Microsoft.CodeAnalysis.CSharp.Scripting": "5.0.0" }, "runtime": { "lib/net10.0/HiMech.dll": { - "assemblyVersion": "3.1.105.0", - "fileVersion": "3.1.105.0" + "assemblyVersion": "3.1.106.0", + "fileVersion": "3.1.106.0" } }, "resources": { @@ -1779,19 +1779,19 @@ } } }, - "HiNc/3.1.114": { + "HiNc/3.1.115": { "dependencies": { "Google.Protobuf": "3.28.3", "Grpc.AspNetCore": "2.66.0", "Grpc.Net.Client": "2.66.0", - "HiLicense": "3.1.92", - "HiMech": "3.1.105", - "HiUniNc": "3.1.102" + "HiLicense": "3.1.93", + "HiMech": "3.1.106", + "HiUniNc": "3.1.103" }, "runtime": { "lib/net10.0/HiNc.dll": { - "assemblyVersion": "3.1.114.0", - "fileVersion": "3.1.114.0" + "assemblyVersion": "3.1.115.0", + "fileVersion": "3.1.115.0" } }, "resources": { @@ -1803,22 +1803,22 @@ } } }, - "HiNc-Resource/3.1.14": { + "HiNc-Resource/3.1.15": { "runtime": { "lib/net10.0/HiNc-Resource.dll": { - "assemblyVersion": "3.1.14.0", - "fileVersion": "3.1.14.0" + "assemblyVersion": "3.1.15.0", + "fileVersion": "3.1.15.0" } } }, - "HiUniNc/3.1.102": { + "HiUniNc/3.1.103": { "dependencies": { - "HiMech": "3.1.105" + "HiMech": "3.1.106" }, "runtime": { "lib/net10.0/HiUniNc.dll": { - "assemblyVersion": "3.1.102.0", - "fileVersion": "3.1.102.0" + "assemblyVersion": "3.1.103.0", + "fileVersion": "3.1.103.0" } } }, @@ -2191,68 +2191,68 @@ "path": "grpc.net.common/2.66.0", "hashPath": "grpc.net.common.2.66.0.nupkg.sha512" }, - "Hi.WpfPlus/3.1.98": { + "Hi.WpfPlus/3.1.99": { "type": "package", "serviceable": true, - "sha512": "sha512-AOfS7cgC841FBMBdtJib8wrKLcbg+gIcqtbLYazD2SRcimX54xPtU7zLE1an+hMx03NnXi91jIJE+Rul+gx+FQ==", - "path": "hi.wpfplus/3.1.98", - "hashPath": "hi.wpfplus.3.1.98.nupkg.sha512" + "sha512": "sha512-ldhlK6dh1c2S6/ex6ED5o/PNxCUoxtYmtGObs9b6btky5MAUWXsAw0H1yTquGPNOTSHdewv/Ii3tSld5ttCuPA==", + "path": "hi.wpfplus/3.1.99", + "hashPath": "hi.wpfplus.3.1.99.nupkg.sha512" }, - "HiCbtr/3.1.98": { + "HiCbtr/3.1.99": { "type": "package", "serviceable": true, - "sha512": "sha512-GHwoTAgXm0OW+gfuEbfULUpO3MK/1hJyTSDp1yIrL9JDJEuTMVa40a1S4zoIMJAqDcmmTkLbtW6fnVNe2X1MNQ==", - "path": "hicbtr/3.1.98", - "hashPath": "hicbtr.3.1.98.nupkg.sha512" + "sha512": "sha512-tWksLbBls8IuFpayAlJrfZI2MaX+RHNBkpm9mFI8luqJ0EtQzF57CJG2Z0U50YBnfX9wbyDPqWTFMqUAdqJJUQ==", + "path": "hicbtr/3.1.99", + "hashPath": "hicbtr.3.1.99.nupkg.sha512" }, - "HiDisp/3.1.100": { + "HiDisp/3.1.101": { "type": "package", "serviceable": true, - "sha512": "sha512-gU1+S5zJOlyJ6Irr+6GD2A3I4oDl25o0I2gR5IhsmOxEFAHtuuWw/SpE8PKBJUpKs97swr1l+zO0QqbUVmIOAg==", - "path": "hidisp/3.1.100", - "hashPath": "hidisp.3.1.100.nupkg.sha512" + "sha512": "sha512-BYqyXWyzb2WquK04MydZnKs8LabNePD/tKGB7h3w8pxtMoL4cRW0vASsdPfZgGj9q16/sDUzHMrB3Oo6mIBl4g==", + "path": "hidisp/3.1.101", + "hashPath": "hidisp.3.1.101.nupkg.sha512" }, - "HiGeom/3.1.92": { + "HiGeom/3.1.93": { "type": "package", "serviceable": true, - "sha512": "sha512-i4KM5HWZhu96/YdoXUwPIMQwwzPtdgWrjnVb0g4ZIsZLCMzbmGGACJb3ukXWaoZchM36mV0+4OOJ+YxrmF8RdA==", - "path": "higeom/3.1.92", - "hashPath": "higeom.3.1.92.nupkg.sha512" + "sha512": "sha512-q+wryq3i4RLXhdQigCtqjg5WbNP50zqomY1Z0MK6eS2wkh8Zo8RorskUPDpdwm833Ba6CN3EhFV+yJJrDNFyOg==", + "path": "higeom/3.1.93", + "hashPath": "higeom.3.1.93.nupkg.sha512" }, - "HiLicense/3.1.92": { + "HiLicense/3.1.93": { "type": "package", "serviceable": true, - "sha512": "sha512-8xvJ3z76PnhKQf+1yuPtoY8KHAbn2/SUiIvqgSZ4Wi8z5DxdYzvnwyfdbPbVmeQP0II6dPnw75h9OihoeVBrkg==", - "path": "hilicense/3.1.92", - "hashPath": "hilicense.3.1.92.nupkg.sha512" + "sha512": "sha512-bYh0j4Lbrjs2U3tc3YEtpNXqBM5eCdavH2odO7ETrxRKZmL3Mb1tZeYGiPWsfLrWgzu9G5BJZS1kw7siI+ling==", + "path": "hilicense/3.1.93", + "hashPath": "hilicense.3.1.93.nupkg.sha512" }, - "HiMech/3.1.105": { + "HiMech/3.1.106": { "type": "package", "serviceable": true, - "sha512": "sha512-tIPHzSFmWBBnbTf9IjkWHoyG8fOeWZh57hjirf5pd6aRoVezuAeHNafUOh0Ic/5J6fxRTqNCeN3smNLgNcjP/Q==", - "path": "himech/3.1.105", - "hashPath": "himech.3.1.105.nupkg.sha512" + "sha512": "sha512-odGxnK6tG93AdLMHb1/1t5G37+dGYQLai0Au+W/JAWBnYij+1GLJRzROOPM/9xMTJy20haxvCKmKRC+rYx+LsA==", + "path": "himech/3.1.106", + "hashPath": "himech.3.1.106.nupkg.sha512" }, - "HiNc/3.1.114": { + "HiNc/3.1.115": { "type": "package", "serviceable": true, - "sha512": "sha512-DlLTMcBiN+AMoNcNXx+cy54GeskeUzHoMhqsUztmWrMG1UcrFK0lJGgkzwrZ1p9FVAXcpHX38yA1JJYCxt78VQ==", - "path": "hinc/3.1.114", - "hashPath": "hinc.3.1.114.nupkg.sha512" + "sha512": "sha512-pj+gRvMlHfu4wh3t502JFVJ0aX5bo+fpdnPxjXuf+tWcjHzW2rLCBPevpXApn3TnW+lAN5Lwwfj99OOl44v5cQ==", + "path": "hinc/3.1.115", + "hashPath": "hinc.3.1.115.nupkg.sha512" }, - "HiNc-Resource/3.1.14": { + "HiNc-Resource/3.1.15": { "type": "package", "serviceable": true, - "sha512": "sha512-flpFKGX/9Sio3qAh/kC2F43qy6FqnZBHIbILRCnFP01QU7KIDm1VSPTd2CHe7wJzN2Y0GhfOWdWE5LQ68bL1dA==", - "path": "hinc-resource/3.1.14", - "hashPath": "hinc-resource.3.1.14.nupkg.sha512" + "sha512": "sha512-vUyRtnwk2bCB3pA7wQNQe59dWFs1bbSaiqcz/78PNSJ55U9lwgbckuIVF35zlBCYgCR/Orf7PZksaD3YO7L2dQ==", + "path": "hinc-resource/3.1.15", + "hashPath": "hinc-resource.3.1.15.nupkg.sha512" }, - "HiUniNc/3.1.102": { + "HiUniNc/3.1.103": { "type": "package", "serviceable": true, - "sha512": "sha512-tF6I0V42i9bc9/TBQm7Kq0p0a6eDXpPWXTcwbRZ1YVPFcOKCzjpQO8HhLBCEFZ2+NMaCR/kjJtKoBzIym80wYA==", - "path": "hiuninc/3.1.102", - "hashPath": "hiuninc.3.1.102.nupkg.sha512" + "sha512": "sha512-ILQierTzPiWqpMPmMybjcbECF1VYPeTQNyvPh1IGMpaG1yltw9y/r3GFwvnXtyQIfL9OBg/M8GagFLMCfWHHYw==", + "path": "hiuninc/3.1.103", + "hashPath": "hiuninc.3.1.103.nupkg.sha512" }, "MathNet.Numerics/5.0.0": { "type": "package", diff --git a/App/HiNC-2025-win-desktop.dll b/App/HiNC-2025-win-desktop.dll index 91b044ff61f060c8e0f8e89d04c2c7a36771d40c..39ab043e629e25f7d51b2316e1287ca317060406 100644 GIT binary patch delta 323 zcmZqpW76=)WI_i^Muqn3#-7$5#?~ID)*j}qJuD95j9JsqinE9_#!i1K&Z5s)JY7_R z2=M46gw4#r$dEo=R+1&2F}b}~l4X0XBx`i4z^3o|drr!Hby#@v z^Rwlp(;v6LsAJv!qK=K}8l&ZOMQwJ?>Ab9*uG0(BIXt&73T0oj5mT6rgX4D`vha4G zY7HeuQ?UN+hdMbFtD(}{frjnzLsIM3ZW+P}#9Tnkz1=c|M_Y(x%JWr!r)Q+`1PEjv zi%?!sJI%Yz(tn2is?^fyC(?Mz6wpOM>Ya8qq^9(3tyyqbwtTvy4ey5Sd>K5St^xqL CvTkbt delta 323 zcmZqpW76=)WI_ka=7lK@jXkYBjIBLPtv$?JdsrOA88fG!6=xA=jG6vaoJF6pXu7Bb z%XP+->2D=i#3hp$5a7{C2%DLKks)omtRzc3V^VvqB+K?%N!I98ffbL^nu^o(-KLk+ z&vXfCwQGM-$GZJR9UId%MvLi++U%Osd09DKrx&Dicy3=5%D!eJrZ5`^$L}~~;q5@x z8cK{NVEx+9&3cW3EC{m_#ySUobGlS+#8QgU(_7#KHdo?XGfz{D^?-m22|lZboc>$XR~ zOq5@EWV&P)7eEyy2RPqhIIxc4V&5z!gXY7&J43eb70>4X?~&=Anx6|*bWuOHo8bT( z!_-bK>q%#?c+~IL+ovc0$a0@YrcY*aYF=?FRN?N;$8Rt+Ffvrs)<3gzIpEw`f2Q7= z{ava@rf+I;22|0%*||Fy9C#RbZ+^FZ{^X}~|B?H}4UbdAJTm=~b%Roi^Gl18VFt4I ze_h9*z{s#pU31pW6@7jyEWcc{`t6;^0a6S#uSeq3LWTpZ4C`EP8fGkvbDed)MgC04 z3r>&B&^&}HVYA|e3<}H)Q>Qu@3!sYZFV!|P99YM&ZsC^=UWJETdh6G@8$@eu@yK*f&Ci7@ifP#LiQxbn zL(_ZVW37uSC6_llX`C zJp%>?6GjGoV?9GXLsM;&G-D%^G^4~c3ri!@v_zvsGc!wrWHTdE3-eUd#N_0Zq(oCQ z<21ub>@qC-eP?W&tiT>1U^a_y%B^|L-jlZnek)%0vTkw%yPpD7&>AKPQvLLPmqXRv z&pO(tsskoFGAeB5`%b>X`o+RT z&wzo!gpontSkF+;&_p{a$-*eb%pl3gA}!I#&?q@I&C=MwIL#u(GR@M$*u*3))xaV- z&CFmDy9~?De*e#t71#p=BIC!t_%?68_L-5kT-fG`cH!T>0q3}gXKm|S|x Tl+}bmkHKK`##{c3ObiSF;A~uF diff --git a/App/HiNc.dll b/App/HiNc.dll index 3c9d5bef953692331e420becdf20eda814b4d0b3..e2f61da18b4dcf81e58b39948e8af196d038a2eb 100644 GIT binary patch delta 861 zcma))OGs2v7{|}+>X>iD$1FrAXM9c9xp(ek?j?#wXWU3g4@irGapqbUS~iws8osHV zg&K51h%gtHWgsdCLfQr?6m6uPMo`g0ZDT@VXKbQv_bmSB_y2$2IedrPyP4a&nLB!$ z#0tJo_Qi%`a508POW}T6ScV#57warT4usY)ov1+Fuz==Qq8{`Mv-_1uf^eC>cB2wF zMZdXGCw#@i2hb3NGwiE~WSGpzm1q)JVGa*E1JMR%w!IC>6w}^MFlX6ZMGZ;z$82BM>%;=VWCsVI__>E z%cKjX4e$sI+lI+oPDKey6_&|OBqyktZ9PQ;DSI8esE7XR*hM1=igy6~AVJ0K(LB0$ z8fsL@z#GuRN;0t>ay^uVTjTmH8*dTlp%3$LBggGLoPyjQQt5autdq4P3qlhf&Rr1V z&cdFvB-FKbfu%ivN$^m&9hdO_dOOay#j85VI$>>gJd>JH&qoQ1-sy1qMS6=a0xf$!zi8W=h0cZ+K)%zMH(K!W$-*58NegCVg5vazEACO z#Q*|}xd-u+H1=Z@zl2W7P-`{0S`k%K_ls&E;1`X6&lDvkP#e_MpsZ*rn;XZ@ac8v| z^!rr5E=rmb6jiUcMy&P)YDLx1YZP6rk-UaMcbvrWf0c(_M9+E={2*VLJQti;9V}Wo z`6Y!7x=2U2sZ~h;Xb?zBm0Tsunmb}i%@IkLRVxw->6+1Os+Q?h3|Uf)Ce3QL!c9Ke z)FdW9CO6)tMERVU&l_d)R|WomYRv2q>fi|txIqM1KmyHNC7=TtsGK7p#Fq{emsQHuDeD_L?z^4t*z zq$xaJ+y*|Cj2Fj&O}bx2?R=X_6%8k)bmF^I0F&5eONRiwWJjGSJrmY3?yh9$g_7L?YY*%cdZu+lc3q^J)Rsry>9rCczX>_9j zHc&MgufSTCmx8k)kCmyoH5Mn*@EU=&^iC$O=eVAU6Of~pl-eH)al*%gGlCBfX3PjN zWoBEM6KYyJ!Q8e!C)83$HqPVq$FgyjE#?Z7IDxfg<43!a!@QMYl*lhMjP?kuumI1y zELm-i!<2U!t6JR@Z{-vS5f#_41|Dbh#HtU^Dgi;Ud^XBYilM;p0#AXMAao zMGPPaFh@UrkeI7$n&qr=iXNrH6g5e*sSsv2x5il0OFbOh&(!lM(Vx!A8)-sTaHAYy=a_` zj{Rc&1ti>MX=M@sIs}qhCYQ;w<_KD*-W1gQiebo_r0RY}^;*Gz-_(Ojz~@!<3e!-0 zy2<1*a&ajk#Jj}2+Yp-$3H*0z%nA!N@T3MDAP6jA0v$B*Oap$P0E17N=Mqr49#d4{ m<*pzIaEf_@TnhjnS7VL}t{GhM@!X`#=LL%&kaj^>fxiJvvgelo diff --git a/App/HiUniNc.dll b/App/HiUniNc.dll index e8a3232462932204e513e605c956bd4506c93416..2c5c787b8e624098a888b3a7557884237812d789 100644 GIT binary patch delta 433 zcma)1JxClu6n<}2Bxn)vr?Lr{DA7G;c4l^F5>fW{_N*){Bt@{e<>n4T-~z!S)m=J4 z3q`_0AmCL&#U??fvam9Z1i>Qd54py4DMA{bg!H}--g|uC_a1zmtC7yt$j;{ASp2s8 ze*0t_e@x@PcaQPq5FYrmr}%dWKl)RK7w@oHY#pMVaPYr^`MYfZ5Y~&Ihd6_;JRaev zVX@5F8w(37t@_4mw+KR&O_s58n8rE^rHW-}mCnMHr7Go>YFbSafB6OXo=rzl#grKr zAva8fGGUc4$+!)5nq?JbHIv#Fn>YCAe$I;v&FYG=s zqQn3c0uv=(;!MmLDUFiK)^l#9b2X!DPBnOJxoJdN=XsrY;r#FM;N<&*CdD40_)Y({ z7yLmK{`fk0fvW=Mzx|_x^r}?(-g{-e8b{<+}I2Qi{c3drXRf3{Q%( zl7#e|B!j{5l6ncVWMPwJ@uTccopU~&^ZlMW#Y%m#Qop`Z-J3r;T3S0>!~1r;GD!zc z*5J0e?8dJeyfEhk%Zpejt?r|4j^Qtyo*$|LgsIZQK6c@Z!2{f>Y-K<}!?f)&D2TwbJ7zbb;9<1bF1J-_kd%;7g8 C4RApK diff --git a/App/en/HiGeom.resources.dll b/App/en/HiGeom.resources.dll index e9987747552d06d4a393e7d66ab2c122f28c1df4..e4c1a6afc57dc3c242f00d90e37c13c897c02624 100644 GIT binary patch delta 231 zcmW-Xu}T9$6h-f34Wh)bVwX-x7ntnKo7tTy0wDwhTkB2O&1Ogw{eoahksv|}KS9At z=0oiL27f`~BV5jfci!FhxBb_rlb!56f9)oTDC2i>(Mo6cFF)^7Og~l+H}lcB-v74$ z9LWqY0z;BYdK%=~YukjZs+W%PphIm{hPaxH6Lf delta 231 zcmZorX;7Ka!7^cTSjguTxQM~21W*E1_p+h&C|JrnHY^WujZ*|3^roWW-w$hW=Ld6143gU+ms=h!GOU6 zNSiaHFjxXbl7M6~kTe8}S^}XF5Sswy6M-;=Ar&ZN02H$Tsxb$$QzzH*nX(!&=rI^< O78LMe+{`HOpAi6r5;qqB diff --git a/App/en/HiMech.resources.dll b/App/en/HiMech.resources.dll index f50fcbb86760e121c0ae7003f2d2d1ce86a62517..ac2d8d4635b8b0d7c1eebdd1fdf0f8d129057997 100644 GIT binary patch delta 224 zcmZorX;7Ka!P0i(=fjOXPRxv1o6j?gG6~!{p?>u5`W)X`OP5aGyLH)#&0kov7%k28 z3>X+p85su|hI@e1kMzhV0y!DL1W(?X4rVK_5sSL>sDGUY-i42wu z<_s1LCJaeHoC4&h0cmpvGq8*)SkxHE1Ib$gNe~3-1+mkBVg?MBlY{v!fyVdp7c&6> Dn2$Ms delta 224 zcmZorX;7Ka!QvKgb#-Hp6EkDx=JU*=OaelN8q=JsGMqLfNzLoI9&>T?7uGCBOH(}q z1_o0`1_NU~Lp?(SQ*BEV4`Ff%YPWNx0$^^%FvbaNwbJ!7ybgEoUDg9(E%LmER0g9VUn#E=T) zn=vFZ7%-RudC5R=10WBi$^=ZN0aX|P#f^Y^41sJ526G@z1*=SCFq$09ZwWNMm%o?^ E0HfJ7&j0`b diff --git a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.LinkedListUtil.html b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.LinkedListUtil.html index 289f9d4..21382f2 100644 --- a/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.LinkedListUtil.html +++ b/App/wwwroot/HiAPI-docsite/api/Hi.Common.Collections.LinkedListUtil.html @@ -6,7 +6,7 @@ - + @@ -97,7 +97,8 @@ Class LinkedListUtil