From cd83ddb201c7622afce6e6b71e0e5865f9905cb0 Mon Sep 17 00:00:00 2001 From: snapre Date: Fri, 27 Oct 2023 15:02:50 +0800 Subject: [PATCH] chore: add macos libs --- resource/swift/build.sh | 13 +++ resource/swift/mouse-drag | Bin 88934 -> 90864 bytes resource/swift/ocr | Bin 100278 -> 97848 bytes resource/swift/readme.md | 8 +- .../swift/src/LeftMouseDragged/.gitignore | 8 ++ .../swift/src/LeftMouseDragged/Package.swift | 14 +++ .../src/LeftMouseDragged/Sources/main.swift | 108 ++++++++++++++++++ resource/swift/src/MacosOcr/.gitignore | 8 ++ resource/swift/src/MacosOcr/Package.swift | 17 +++ .../swift/src/MacosOcr/Sources/main.swift | 101 ++++++++++++++++ 10 files changed, 276 insertions(+), 1 deletion(-) create mode 100644 resource/swift/build.sh create mode 100644 resource/swift/src/LeftMouseDragged/.gitignore create mode 100644 resource/swift/src/LeftMouseDragged/Package.swift create mode 100644 resource/swift/src/LeftMouseDragged/Sources/main.swift create mode 100644 resource/swift/src/MacosOcr/.gitignore create mode 100644 resource/swift/src/MacosOcr/Package.swift create mode 100644 resource/swift/src/MacosOcr/Sources/main.swift diff --git a/resource/swift/build.sh b/resource/swift/build.sh new file mode 100644 index 0000000..8015315 --- /dev/null +++ b/resource/swift/build.sh @@ -0,0 +1,13 @@ +# 1. build MacosOcr project +echo "☕️ start build ocr ..." +cd ./src/MacosOcr +swift build -c release +cd ../../ +cp ./src/MacosOcr/.build/release/MacosOcr ./ocr + +# 2. build LeftMouseDragged project +echo "☕️ start build mouse-drag ..." +cd ./src/LeftMouseDragged +swift build -c release +cd ../../ +cp ./src/LeftMouseDragged/.build/release/LeftMouseDragged ./mouse-drag \ No newline at end of file diff --git a/resource/swift/mouse-drag b/resource/swift/mouse-drag index eb12780f155c0c584f0a5183909e8850d3d2efbb..90c232d2316fc9b245ab0a967a1c4cd9e97beef8 100755 GIT binary patch literal 90864 zcmeIbd0^DV`9D6po4^JEIT8qb z8%1q`^rOXA!INy&qD4`w64ADJ)N*)WYim$zgQ!JBOpuu0>zSGNX7bJ<)P6qSKYqJ9 z%=4O==b2}ox##_!cm8tn^Y8jIW?=Xk;gaAQ2Q&5)HkN|e2)KMWyM1xi+`P;43Kmgl z=O1V89MlDooaR`PQ<%4+uyZu$ujw4dBnAs3H$+C;?ICwnNCJ3zdB3_y6lO}gNJE&) z75T+zl0}H!9t>3$2P4sXd3!2^yn`l@gs>{lEakz5{3qnu%iP`ycK{)Jd0U`6mG`KW zM_84|y6EQ&h5{a6sSw{qUR{-t_cJMkaEwe#UMJbWcDvK>3w9V#ub*YTkoT~ZL0FY1 zgCicwyVg?@O0&Ctp+I%l^6ruH%#wq!PNzW;VIU&%Le(&!yF{z<|^m95YLX`oxUO)4-LY^juuwI5LU)D#d zFk`5Tem6^bDqD6aH)Lmr=AzxSm)>gV($d|L8Q7hbePy}X#~M0p1Yag1

i0nQ-s&+-3HX0Cf%i)9ZKl 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 literal 88934 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 diff --git a/resource/swift/ocr b/resource/swift/ocr index bfdb4a8b6acf3c422bc09d3a3147720958ae252f..e0549382fbf49c0eb2ab2276e99ea7194a71b264 100755 GIT binary patch literal 97848 zcmeHwdwf*I+5hZrfDIx&&ph+Y<;={UGv}qFAAC8AF%!dOhMNVqdn{u&u_+Y9PJ=6j)3l0$#U+=Q zRF+d{?8TX5g9ady(>;vjRF$l*ijC&{q1Z4cF<2P6Q)RTK1wE}n3E&y!-F=}b%p=(% z4Ph!*^h(hsix5o<1Y2qX(P*Q*>LwxYZHq`kSe0j$@?b-L33*z*r=i*7M~G2gF#@T) z$D};MsysG8KUW~=_cqlD@dM=9*9v)OOCf|)WLolKWCLrO%hwd>H=t3!=2jtZq+}$l z%2Pyh66Iaztqso8JWWA=+raXEXT6YTm5hW9I;E*Hqw<1nFrcT_sNaoJ-hA2Ubgary zX-)IhT;l^G7%nJp46|V#oG|{HW~HXF6E_5d4z`~4|UOimS~iBuaq}U$|F43 z6}4Zj*VEu`bQ|UEm+~e`A%usdpED5fxq@v*dGAYkayVdwha|7r?+f|{w&#i0iu%oz z`Vk(IJZjGvW{mpfN_l$!AUwFdmZo*yCb#Bos)c$3CcyM{1dac$^U4vgn z{kCir<<;9CVL5d1^d~WL@DV(M)T~c;wN%0cV`w?OiX+t3SB{a#$_(T^WRkx`aA+lu* zjkTE+i^iEb!UUSJZ1~lfbZr@H;`vc?rf_?@iG=_%FE+7V=QD=!iB-VS^)5t^BmLip zzm12+|6{+v#C{zoYBa)Za5UeW-4gK6Zt&L3cDFUSf$2IOj`Zk0W7^ecy?gP-&5u{z zmhtPVx91?t28V2MkyfKQ&22g2bIVMGs5Z_*`AN>+OYldzDBpZIilZ_Ep^KUNb%8#P zwm{I+IID0L^zzp5L|ot1Ap7|qOl9mmHd`c~z0_Odclz6AFQQw)I-h?{V0J-s^QGS4 zEPivKkl8Ce{(u*=$Js?P4)RE!dPQyu`w&B~eK5I2KEG$N-`QO6bp_%{FPN>SfNZ)b zpK3T=|2`ALkaw)`wzx7VqQp!%~5IkJBOB<3%6`Z1f+nFU`=`OR$Vp#0uI zvoq+bk4i9>pYk3g|0U(r#g%cw$Ztwp0RaiizswVKHVnouR*wn!%Nx$#K>=EXAEYK)fKuSkcuwi&lkQdPa38J3G?^qx*PKq zJ1`0P0^UZqQtCM45%L@)-vMI*<^L7OljuFA-+GK;9T~DAXX=;H`!yfS5P(aKw>S8l zZjWC>kE$23BEA)X^W%=#;C1m^N?`VCm(T5)p(t~aq(K8c{v4t5P~XDIeBxe8cdL<2RVXpIK5OJr+x(*J6%*Y%xVX zx3I|REOan~g(|H!`)?Px@K!COWkyV$+~IVQ;+v# zF?0BxX{=+%aQl%?#;Qt3umh8av5%e`&Z-__EN=>9>0Oqwkvq(6+n+3Kez(Qmd+~pn zI`Uksqk42nhs#_#-^D8C*Y^as;&IgU`cHyeUEgI3-n3XFhoDb=p(*?}^m_+-vTLT7 z?q-(fZ)WWIER!{|53jj&p$usk*v4dk{-FOuY2EQQ~G<=DXeN9?C=Tnpt2S8 z_Eo*u*EgPcmqGSJ7M4f)7eW7e*75+#kZ0{}`C7UU`%>tB2VN~Aoqr+Aa0~Jwo9qCd zfO_eIuE#elLLHW%E{jp8MX1}tj$^)p4%BtH)1tllsHOOUzNgrMPhVoFXLHAAV_5I; z8(8>L*bnyXrF#AZcD(^I--K^vY>(As4qIQbbWq-hEE%w;z4vX)IM_Tr;_K_XeR2x> z2#;Y`O}4U+IxVc~_=ducPhYZkJo-h^R^-L=t)H5>y?D*3n^0ey%){)xOF~-D%z}ai zR@2B$RwoOaOfzrEO11ZPAundS_|-1tZIsX0DPF6rp0V;y<0^?3CCURIiiwi2c~`YqaMFZ$OVedY6e zpcmdL+}k>u^-{SQ^4f3`+eY>t$5?NMjd(I5c(bnZdDwqljR|cmBSJLEs4isTDVB8) z92#TqXh%QqK|k-MettZ^G|OUnKGkC8{k$D{kUqU%l+S+~eX#o+d&d$}%LDI@V7<4X z-_1b3>pq)x+=6kV{j6afcD&xlIwyqpAfMn=q4xuz>&^CFE5@cL_!y8Lxd&m?<}ZcL zcv~pF-pqP+-k&4x_=XbLrxBH^VJ93~Ms}MJs9X~054DHW^_Q%5d*i?%8v#u!W z#eL-dDHwMMo0k{$-esckJ{@ECSd4=OsGBEu+tH>A5I-d}A#6i?Lp^RO+;eL99q4j| z#%uVoc`&p`j3u3?g>5Xf^$o;VquzCSRJT3aBdBu|3oL)CKZ|wToKlK=QAQ*U;oEWVq43tJtfSjpn)jNS?HyOd z4p=Q(587hbYMID5@&SQO56xYM=72_gzLjV6o zIrVmXd_xiRE`EkMH$2{P9DRB__`61hDxV$6(p5WA*b|7OzDzXw z@WD<>tJt38s63RGogAus5b0Po3#;{X5%lA7X6d*elvc0mf;LJw?6kd_IuD$J!8Mxgn%|8~oI_ ziLM^UdUw{a1v{^23ux^8q`UxjdTKY7gSR2u>HTep*}_%eeHXT+`>C#T_cRtRMR@l; z_KwLp>?7Q}j@mj3j&|R(bHWnnon<oqj+WgiBi_x(BG)z568up-GqB_ z!m=an&-Ai`wxX@Kqx|(#?F;rnHqM_3PfleYy@mF45z@Vba#BCY!dP8D74t9Pcs3b> zv~MBKSns?~rJ)ZZpH!qV_9#kK8qhH_ss#Bz5j<*t|!z76>#wC&A?JZ>6d9=3`7{VZ)} zczuFAxUJHm586}^X@+E5syC#sKS6qG82gwcKK68L>ZX3V!zFcuHPSTh`B&IpWu zR*b!7KK^Av4{Hwkr^(*iJ(=}>YGvEft@hrl!Mk%L`^b3)tEwMq@1?%#%3)P&%ZfTk zcXmfX??p&M<0j>~hUYns-y0u=3|h-kI+L@2&#e#Po-q$;KIQ4hNAf|p*w|j4W;vzF zh@3|RD>aTeGIM@$_gI~=#15t#*_=lwl9(ie#IEke%eh^v~) z_S#6#u9UFJ5~@4|yUj)TXUIR@%J>-0eq7LdGQvn#E3HGO%nWz`kGUg@Y%&A(!2Ay3 zhnchZc-KknI8XD@obU|9&nOrc?!E`}N$B?{l(z>mdQTVYh!mMmm*up`QqZMj2QTS1 z9`pUo$j3-8?3NjM4m8D^PbuL#nXVD``lk#x-6SyDN98+u+6cMt10lJ&xWAE_VRbtJXx*g@-bbI0x%5dO2s zk@}IHM^blDn5AP1^qPXUa24cG`AGjvy*zCqZz|8@i0^{`6!*tPo`z3$=JwCE_g+6- z@KZV2PYZhYAfEJMsL$Uct`{`dzj`#?dk;_9pB4Vy2#oUx&jOG2Ona|+3blhww6D`5 zQ^8L>B+uj_J;<)(ux>mpa;KEt1-uh9@jS-;(<1*5{@uvWnr;7WYQ4S9dIsh{E!S){ zLH5*C`vbo~JeAW*b$+I>S9%)jEg(CDMu!XG7ursyHQ>Q2=tnwGKWhh{UZ14jBw!Jj z8F>M8AKDSuwXvZ0E#96<-_s&j%lxRF1VK|d{O~`=+GO=umP?q@Q2)A>`{N>17nEl` z_cJ23@S#uTbr>(W4cX}M-53i@siF<6MLdlUyi8|^G982Nq;D447VEtFNv!uC@KjG_ zz3u4hrKhsJ?dHOcdb7EsMdsHCpJZ4ICWfuou>&Sk!2@=4=pbW9j~s%2FF_{dL-UK@ zfEN9HEb1#gazMtB-rs_p>g#E4mJvCV%N`r4fbLdy>|o!2v5rq*9~;(juY#xRBztc; z(v%_}EAp|P$HJ-5Va5{^!!w}64Cv5(kKm#Drup6@;3FAb#n)Au?8gp1O!&|Cj;-*i zO_C0j_q`O(aYiH$dElHQ=rk^Z(>b`kbKs+&$LO_dc&Ks@_-O7$`RaPHYtW7u+ixv6 zBWfGc;SS1!*SFB^hdP$Jg$e(Uy<-i0>JLJ`I+EJh zYmlS&??TW*mrP!#l;4LupK*~t%KV<=en#XE@IM8A7T0HdqexuH--n=37$Lc3-o9I4BWBtFtNB7&$AxocgpuHYu&lL1lV~(cJM;L{r z*?al8fwAgs@KHMJl+j^!eCIwr-FxRe-1zP^Q{yq88RfUY4k@t5FxUlqksEMN#Qs%Z z(TD?R!{N{69u;rz^4_@Hl8Gfx=-}y)Z^a&xb&9?BUF>nBA+NMq_FiVb_|sdl-$h zpGunA3Ed0d!5FW%-R~ic>p9QfyVJ}*I?c3gM^@jpFSpNN4`sb|%~r9Gb6VsEq)VU4 z_U;_cK00SUt7;vNx%NqgTkB`BUK{dewlU!!VehFLdnp{-$Aq^M#=a!&$zng{@T++= zk7xVYj3+OwJ~eb9r_TdDI&|T?b>=Z6)0!p)Yt0?&W@4TXn`H6z^66sCrtmLB7>qGilvSnum;!+zZUu)Ss|a8*WKw zO-eodtICT_SyzS5WL10~+4XzB$#nK4W}7nUJcKdZj7h`br?UK?w4i<#Q%{%BOqQtq0pT|MH0SXZm$eO!&Sp`)>aY+I0QfC{WKS;fxkx2vujLv3-YXn%ykP{@7g((W?WnXY5u>L*R%ZzC_#Wg+;et>(j@jNe0^c%!chXRoDG z-=_OA9|zH|`8ZKMCVUXTL5#yaU>|fcVZVy*FElp11s%#UhR{8o_MhlCpRU_?P7pFg z{9+mZI^wBZ7a-5p;r8BBkstCrykI`YD2$c+UhUgUW97vb_EGvz@7O_U=W{*NBfrD= zLgPf$t9=hq_&EsI$3kio?7o6tGs47JGA=R$G`BV8tTeCuf8ZBm(zwV(#BGEPd0V=& zpw|t%kWJ_}54z`lfV4Dzd=6jSgEJx@g05a@@BJ72-=xz1 zA1p0=Ch96W|3^5AD@=XPL2YK0ac?yv%GncCZNR(iHeNaXI57V^J=$&D$K0iyTtqx1rv5TUPfN=Ot6n zP9DeagU2^4#yxlu?#0;i*NSm(F2e6gg&prsD`FHEu&3=6eclm5+uMvVvYEb?qYXTPL4`A46Lk%^s@9y(j~=<~GNDo7S0+Tr!&uc8=rRuN1;+#)&WFpKmd49K^Iv@)@fPaU0{+*Bv-|%( zl2!5h$ZraISAkc|Eha>61ifnn+e`PhPoTr?=*LH8KgJ$#)eiLG_R-@vopuWAeHGz5 zEgA1Uf&IGk(0}y)M*7lknbarmlls!WH?^_TNXHTE{^29AhcNoIO_{jQQ`=_`74*)F z>X8|#0nJj_UaBL~{5{g=cCOFFP2-@?0>p2GKBnV+7{^(< zHbV4&q0e}(&&`THWWNg_3x}em6TJX5jl0e8={HUa%jIF|5e+{5Rz~%GqTf69Hc555 z5p|gU)7vn9jE$TvWkt~bMgJcgnTW6(V4L{+`)0m&%B(6xU&HU=;1g{&BXW_H^&!Ig z*9l{h9(&Ce`pq&UGKZ%@-$NSetHwR|*Hc*f3|nDGs*U=xH8KNj7c0iz>F~{{lS0hN zF|MV5X<_MSAgyuV_+#)?KsK%KO5lq!rAPh&x&`xe<6beBnZoDgG5h)-qiiAk4tAlG zRgHNw^$oK1D+nXosp|sc+JSgyAsziTPr6Y0HzD&7_!n}1sx$H1Oef0GXE7fz&hsfh zk~5L(AjZ*dv}2OxAQ`+(i*fl(N&`$~7kXwys7{5R{bLvM;p-`*-Ds_o3x{m2m4)>GbA6iQSm&$SYGCvxen=(@4???W~UnM zZ`6b8&st&Ubx&*ZSCGG6hif4tULD5T-pXzE68Nfz({KCI#u%Rm=0!HO(*Dn3CiZmp z)1FR=ydR73Q)sVe{}kIJ@zi{o_}_RIh&}pSQp9kz8(5vOl$<*fle)mnWbO;RRkqWFVi|HuP=eakTFDxEGpmPc-A+h~NJ<;5TxM zDSU_76mGxXz91F*%L}LM+cB3dyrurjqL;02Ub8i8O?{8`%$Ijqtt^l1&^`fc(zZa4 z3;EHy;WOUuG9nr<)}`-tqTO}j85z<=U!Tza$6K%swYyD{kM#TyG>s|m!+&@fn}5`@ zFj9~E!C2FTf%&JfJU#DXq^I#p&)W{%hc-`nGu;0v?;frfJr6^9XY#xoBp>BX?TzjO z|4m^gHa}6m^~XkF3CYsOLwB4Ynohh0pq~WaeE4sokBB~744W3gwuP`U?ss+1?4~(J zyfOK9#oqa_w}a(J%iDdGuy;MmOXcHj4>oTjQ4D8<npA_B%Is_SfPY=&#p?`(#BY7Qc>pmNMXLwcubDurdg30~+Wk^$P z75j;^VHe7KC+?@?f4U9#)AWdg=R;#X_N#DT7h`dHgy#6VJ|UhaJu(TtuFIvMLwp}% zY@~(9)BPp34Zt>h?AGt)s@}Vx_k+k!*Sj7%(q1GxneX}Sv0i73DZ`yei}@SYGBnPJ zXHBSHoG>qKhgI0ZPR!Q}k#-o|4M;=f95`lM zNVmxKXmehyIkS!zygb=tdT%D~O(R+N!O5nPzrcP*RaWoDtrTv3;<_EU$ESCrOf8rL zPc~(|H|~ia?pTTE3oyR#$0?6t^A~-$@B8P5muU@n2zkGZylIS#z_*6jfz%W{t7pP* z*!Q>N*}jt7ti2mw{?k-b2i@y17uiqyO`X`6b;9LBudMWpO<0?}$4vI4_2^f3K{k}w zwh{9}{Qi}WHnrc1b(aO}F0%cjh@Z zw+$0(0N#GOMu+`J`);Q;Np<*!-1DS+YX<7~G-e9FigM0JSw1(92`_{_-b5VbPxtqu zux$_4PIT}1_;}y#7!T%`PV3x}daUT>8Sh-Pb>9Dfe-G9jng?^>KyU zvlIP->~9+${s&~Jb1e0@;N2+iT%-%!H9B04w$FL-8x*fQo2a`7p(EB)`>jum4&%4s zj{@d)zV^`PW>b&$jb|zL`)n!fzAp4rYV(Qm+pOnTlh&V~p{?A0g8YUfzeIBvs$Z;W z_R@Wl*YB>h@X_A>`mL4qJ0A7=@RKaO0QH&it&JTM@QfeT>C1?xdZBT3C+hR3sLw2= zKL2@@sL$@JM15LMVVg28V;xkd6R2)wT@IIZnduUB`DWa@jJ-eTa|FE}X%2eKXTjVd z{_pBk)|b_`97+p6u9Wp0S=Md~+HwKIyi#e)g=50!Q(H!y-j)|rTdt$IyZHT6L;0tq zU@oMT{}S1rOJ#ee@@INP`Smt^4fd6FJD{J7HVs=-o4zit9b)Ie^t;h9Us3e8Bi$Zq zo1%LW%^|QqaCHb{G@cu{`U&{Apv={u*|+L#^SdT`F06kIp~|pfz0}FrLnO-%8uy@W z9^(IU=RVx?4kqH0_d$#o=7q(ju;Q9T7Yxx`z^FnINJl(j+ z@8OGeX8-*G`SQ6}qWLM=S=RykPJFHQDfE~JJwD@lWJF$&@@YSF5@@<_k{+~2wvOwO z!S#5YryC!k=iJwtS#OB1n`8UBJ{Qc!xS9rDW}f^ir?GDwr7@O7Y0Q8T2RmO{@|X#9>AO^?0zD2=&Ml*TG=#>h6 zxk7(ip=%VnR-vy_=q82sEA(20Ua!#CD)jXV{auB=B}(r}`@TYNRp=in^bUpoi9+9{ z&_7q`h(iBTp&wA_Un}(Q6#6lReo~>IRp{px`bC94sL-z}^j{VF4TV0W(0^Cxe=78c z3VlSOKU3(V3jL)*n+x=IwI^-3LXTAF(F%R4LXT7E2?{+)p{FYJSqeQkwO{SVMTkTktJK;Q2nne=??#TcZBrspLv-{z`e-QK~l70y^*4sS%1<>D>^mCxG_rb%T1)Yh-4e>q&8vD1L?gZ_X z^rN7EE$QEZep}MN0X-TUD#W`NbeW{@2i+m*UxNN$N&f)pCjqpK*P*De2YTg3L4L@@bFtee@oKe1Klp^ z8$tg_($|6hrKGO~jpv3q?*`D%NxBvEpC#P_`aMbeL4P4>yq`3F92TCWX9MVSB<%%V zAn97rD<$m$jc2%c`fAWWl=PLLcT4(m(0GQ9r&$I1kff_Xe<|tZpeNvm56ZU;bgrZ? z1zj%bQqVq0mw={+rzm|P=!YbIG3Zw%eF5krl3oBhW28u*2Rd8Qct2_UC6dkt?UVF* zptnkTCg@*E`fSjDmGpGbJ(8XRdfZ7u{v^<)l0F^uwT+XH@U(gn;_xsi{{^<=Z=nSmUJOP)p!5PFiIWNyyu-4b&s>ioCnmisizQE@8 zH3uuAf%Mt5V8Gd=IbBz`c>VMhPY(T_29Gn~i4lrVarmq1{T`=#sSon`w>esaF-cmz z!8j?XH!#)`z{i9Z+Rn_GZnyD|`@zoYRYHYZXsdO48&KMy&qm)25h-nFBjJE}d~S8E z#~-wnIrw*qh^1(;Ao1lG&ZEj-J15tEakhQx%Cbt&)h(VtaB9ANYMFzJotl%!meD6d z%3XeZD+J#SQa)rNg%tbNHJ#^j;saoATY=y2Y_q{ejrcl=qH-gBF$neHu?3y}IuEJ_ zpRXBN(%Otq>41$b!WZ=#L^ZN9$BCsl=nHo;w-T9~L1eUu7`FL^;W);}Fv%}H9z!m_ zbRWYRzw~tIzWPcnRI6`)DSpVIj8_r5-X@ST=rjL{f`y?uUB+H9mHcoV|Mqrl|v!3!GXzYkyMomj?L z8^tNS*soz^BQL`7oLbb^dFsJ)CE~uL@N|ME-IgJ|6E{gc?ITFb$518hHqf}$Fg%~h z8o@-q{jI(}@{6Uf;|qXwS%)DD&zrIoMOGCCOTSZ*aW1|gP3-ym zNiNFyAT((+KZL(p^J3)m2P(Pw#}w*tEM{hGXo2!Ah<1u1q%vPap>3-hi1rd~@`107 zOYnfw+M0vR;m{mj)H-~E%)D4gB?QU%`I_>eG>e&|7^K4sd7R>s%;R}35NgKb52VGM z`J{%+SJ&iS?{Qb*Yt-d60grzz|11y`Gye^?fFNQw9}qMNH65V3arpAf91i|P=OWUI zvFQQFWsLQWnD7xzb&G zL#v?Ppcnc46@Fi{FW_-g@Inkj^x^D<^5i4?V7e8bA+ zVf0DORo-CzC64kkp~6Cp$MosHg?w;d$h=M7U|}0N3%=3ZEE}BEY6D&{*wvZu2+MW29I-BZRFjk{5h6wry zlMGzTKhej*ihw7e^Wb}5e)?>fuL)7&>)J3#5j66m=p+)b(py&_%DggL?!nRxcVKMzQ&QCnjVH5VR%|wxrZe;Abe7sVk(u9~ z$V~4~WWzHjvy?59ndy7I)0RM!@qYn zvz(jFQlO5-4u{{8$zJ@MUgVqBS29!UBvaa`$t(*v6Yl-TVRT&Glz^_%(b*NF&Pe-- z>Br{VQhtcx38M*IG29+3O6bD7tKy22R>mZ~I2LGqO7!J6>ANo%IGU8#R)2lju8ED$ zmI-sO6ye3v-?AD#5hRQju>@0NbE^uHthcIj`E{x0d?EB%M1 z|Frb?OaFE0cT3-B?@>52hK^9kl>T(-XG{MA>6c2sO8V8(Z;(EYpyG0Fl>Qd!-zojw z(%&onPU*iO{nw=bw)786|CscxEkb^}^lj2VSNi$VFP46V^skV9z4U|94@rNs^tVg@ zZt3rl{v*=gC;eBX-zEL`rQaj{l(n+{r9V;nS<=sy{(%i5-BZ%i0};Q&zF9g z^y{R5z4U)C`RwIYl$61Sgl#cv~@O$7-lD-Z8=fHY; z-9HuKe?j;h_@BbhlfEARpYnGXi2B`rvGCjN!v9a@mz0~dK+*z93nVR&v_R4VNed(` zkhDP30!a%bEs(T8(gH~fBrTA%K+*z93nVR&v_R4VNed(`khDP30!a%bEs(T8(gH~f zBrTA%K+*z93nVR&v_R4VNed(`khDP30!a%bEs(T8(gH~fBrTA%K+*z93nVR&v_R4V zNed(`khH-6B@3J~b-US7)SL!qTRx3dPc5u2%^{S{jfr@89a1cGZcx6{AQ+r)TKfKpL}R@dV6yAkMaYjA6UU`vfw<85+#{4A8V zR$g#p-SYZ^QiRSnF)Cj}}@59C)m*R6Cmw0InsAvCn7UmC?0makgLLR+GN zdpVDzG-s~ncdjdS2I@I)ZouPlJLY(`;G(LlS!f@bbb7#1np=+)x!$IruPu;AsXhLc z>t&+DQK2&N0!l1Y@vf~SIRla`Yi6NtBcEe=RSh*UWVn2e$K&(1Ici$9*5IPcNyfv5 zhpW!tCYih2pPSgg*TVS{-%K zG+NMATNJN+m&GezZ5a!79*a>YkdvQJ5NJB7PSO|zQ%&4HmXxLw_c1L%O}C`6IoPHafQ4unRw9-5?`^7U z@B}gVZ?R3_!+;|vdy%iD$;}&MNlw2J`v*pcFTc#;2>QWW)V7F)+6}{mBcQ9Q%39_k zJs5)~m%AG(*0SY+EoRc|@}_l-Yzqr8p@GUXXAU*FwH|-4%u(X^`}|ct?zIK7OR}|Q zhcCM*y9lj;*sTNEbBmop=gPT*G_C$ZwG|XOe0gOKVj+>2lgzY9WRtvNek;xk1aYJF zJDS@ZzWFfcq9sd9RxVy!M+q~f^@>&P6Im~34zh_3L1aQmuzhX&gE=cMGy0Ta80ar< zbTm*aQ*$`Pa6k%W$CWuZ;UF+jwxcGY@cj6~hgMV2QfYyDUD@M`%tb?X=6f)-xY1mx zd<6xfS=6Jn1qCJfB{FU$-C3yMrEvx2!IX{8pyrt4sMn$mTx)jgY!z|Y`o-tA1Z(pP ziq_WgmbLl>sh2rPm1;gKaX4~vh`C7gIm}WF1J%m5K<<*JV7}fO>m^&FDFlgbmTB_n z2G`_nYjZewJ8YGTIfv4c=a)J7KqK35$P|}(h#k=3Y-?SNuBFS=E4JOlRSjSo=4))k z6m+S#$y2_->91>P#9cE0K8FMSklS@jG_fYEwYVi1SeaYr_pL(_y}XFq^)&M}X8@B` zx}hy{dK+5&9!;B9+u*DV1m=}_Fzl2Ea^_%$9`w3|u$5>tfxH#4_1rltgIw4yU06PD zA1cFgwtiF4&)NO668ysGjm#5s*pR#|f(5EZ;&IT+QoIy{% z%h~L7c`@D>wzXcZEq2f}k{jY-$sd10Q-KL)<$6b{GJ~ybUhi)xLGqw)z!W8rUB5)! zji?Zvy68NtK->-98qFIhcdYdI12AMkaH+=`2(}e^bF{*B_+PkA7;2x+H6L93-r;L( zcKSW5yuo@$qpzW;-h(xcw!qWcOcQW))*4i~T8mmiG0n#p=j5RwfYlrDHC6ICO}WTo zzszD@Gvo)g1pyCIIWfh{$qst_jov1r+uEAl)QbhnYm!BuVb9ZOI$lsnhLqz$mm$dl ztrn87YVtU|V(jjgDHdonXDo9zdb9;sw;)Na7gKvjTl4B>%~2yVJZu_k*NPVNWz}L& zu+-zNs}GV@dtxJ2dELQ!3J;lS#mJY4xEVILQCPbY=Jzzf;2sLz#e-p9eYIGNR!tGR z&FDg60-#r!57SySY?!$%5cD+4+M~pKNQ$$@=jUoYOvvpGG&_T?dJU^qk5)^mI(c|Q zppDoc)RASxyq&Sbkrm+ z_cigT!_lb5K%E2qiTHb>fxhM-YOH~)6td`26q~dwfk7uNs99i(A*`SU?LwH*UFiw7 z_?!5`gpzKzoKm3q0-7RmmkerYf_eQKt=;(_O1?WzTuT#Q-XnI81*T{Y*84q9w^ru~ z2GG*cMqI@Cuo@SLjq9|a`uN;V*hk!IiEEz{LsQmbtkV5H-bVHtqLwsygJjqu*@j;0 zj~DY~A+@rmZV#{Be(igdxV9!|qt{i0p#$+nMGY94seqxB zXwfnE^7$3@+6P4Gd2Z>Cft44bZoPF)w47h&2|8&)K$5q|B#LILCfQ|7f`N&|5c}?! zI0`LnTjr$Mw3`NiB~5gXrtJ!(-4l}*mC)n~1gdE5N3jq0$9hpmd`GC?Mx9D*U`3M` zI~NUYm7ZFUACnr7TWj()m9;c9Xc*hDX+iS#^>a{nrJ()&K}th@O%2s;*VP}0R#+^m zj1LqfsJlP5rAds`9ygzoQ|w_ic1@FSU6Uw>QfWO2ljsVBhDB?>J#O!$z?Na?t!sTPE^L-)PB#VzgzA?`W2X_F!uI~q#LQ8OS(Z6nzCgLlk6{V} zM5@+UkFm_-Y6*I@dURFnc#YvPV~PFl4WC%LP1Y^uw6uNZeP(y|+on<0+;bl`UGSPI z+wIQIwx*<~lOMeCWP9=6wCUD+Q(Dukqf%1rqb{&Fx0{Ny8bT)bC+05GmXvn$#Qo-w zIlVfq`fbw|b8&ugdhvAo^ywiJYd)2+NjM<$?hC~^eeZJ|V*2@gk3*Z$h!5FC{4wB3 zrV!K5_4{YKh~F;H{hN^?;`MU?$Bq;7AC~bKNz96byfqS+77P3^Fy(iz#AlBe_;ra} zfJxuZ5|RFHiC>U-pTw_7{4a^Ei$wZ~nSwu8;!A-kzxO5f@%RwSS}fB4M8>mHf!~+> z*%FUIWs^SJB%T9I@_Hn0l{jmO;D1b}UoCNu#MKh#P7w0k5;scRD)DZPLu|9ef0y{M z#M4d}`Bz;c^1DIe8znvjO!{VBD&j{@BphP*E*E&A#P3VI8kowHT`A&sO5A?Az}+(a z7KxXgA>=)Bg^2$iF!ASJDew-7izVIzO!+UB*gQ$#)e^6f_zH>tCULdIC6h(^T@qgn zO!?g_@iQ{MTjDPy&ib~{XRb}~Zw5&sA|#HF4%GiuiJg^CjLZ@pg$nl=wSWiS$`#3I5G%1a<(E{`)1am)P1M;=d=;FO~RC8DA~& zuO+@);&&z9Cvoc8LcX<8$a6}3uEZOGsr^()oS7x?eu;lacvy(p+64bmiI++|Zia|& zmw2(nk4Ws2xLe{MN}Ri1$h%+SR*C`-z@Q$5Os12e#`z0PH@mmtxBp!RN$bY89 zPKhfe{=UTDmiYG)UnTJy5;sfysl?YxY(7uOzh2@~ByN{@mBd>lenR5y68}Tuy%J~6 zg1nI-mVJ#V-xP^2ka&T_S4dnY@n(syAbb+;hY|+~pB!TQCEiSUbcnq#@otGzt`+(H zm2i59g+c-kpDl2^#CZ~Lk+@dk?GkU5c$dV_O1xX*PbA(W@fq1d{=*WNO57>2U*dfd z-!1WeiC>oZHHp8JxJ%;ma)kVDi7%7*u*BC%+#~U$60_?>`MV{yN<4m!ke4R$Vu>>) zzDZ)6#J>X`oz7T=#4pJBR*B!1c$dVzl>Rivnx7K+TjwIb(?YCO;`1eLlh`A1NaEWh zZkPCeiML4ns>ItR{zT$k5|79g`R$f?zQlVZzEa|cCH{fLof7{-;(ZeTM&kVvKPB;N z62BpFm&7CHiTt}I&X)MF#1~22Bk@v++0(*aS4(V__-2XIB>t7enGzq7*d}p$p2$B- z;yj77B`%XVUt*WUc8RZ(xK!e&B(9M7O^H`aoIW4+20#e-OWpDLv(%0!J5N;#cE|Utgcl zdWHCPOzGqCtMSCIuV-j|L;O0{`R$NH7h%d@jVFG6{X^>^;@2^yr~HlOSL2CaUoX-6 ziTHJ_^IrfNbP=Zf)p+99*H^UOB7PlHddlApM;Bq@SL2CaUysrHjQDj->50D?jxNH) zuf`L--G{el?!>_4OyMN6CIV*7-vQel?!>TdPIcX#Gn3I@bB!27Wc3_+OX& zwB99t9qar-B5;vcW{4+#eLYO;W8&8_rKkGuf}@Kt@vHH~pY0NHw4Nq@9aDPZPcw{v zYCQ4l>+KQK1iy}Tek&2U$fNw#c;eUB=d@m@{B=y}DSr&h{31;JYCQ4l>v>w=6Tglr zJ@Ho%fr~uiSL2CaU;op70P*XX(i1;tlpgV`@tnV2B%%ES&M&dfpH4Dx5$60#Jn`%M z3$))r{5sb8tBDzx&acK3zrG(q`xC^kW1Zi4|4`$JU*Er={S4yQvCd!3bMMbzjVFG6 zzk~Kah+oG#|Jw$BHJ;$l8{*e7rH_}t8c+QC{toT;5WkLfeq;Ml zuk9gZ%- z#IME^zrH_3`&GoRV@gl_#{AWI;@9`HXn%|Nb)1M_jVFG6|BLp+h+oG#e+W9zMVRzg z@wC6DV%jfLG3}SBnD)z5O#5Xjru{M%(|(zXX}?Uxv|pxT+AmWv z?U$*T_RCaE`(-Mo{W2BPewm7Czf8rnU#4Q(FH`%gT6pBVdT|B1&-O#4qf{y7m( z`%gSxV%mRF^P~MI6`L65vh+t@G)*4^tnVkC!f_gprDT|1QM_4?$MDGzK7l8|A1ni6 z@E(D!di-An9H{f#&c#Z*IC~&kqmmA{O8t`@l z-eutblL1c~7OUS(1FkUOMgxA(fd6X1#|=1dcx--^2JAE79~kh<27LC2Sa~G|e7gZ3 zG2kN99NJ5?{;oCPod*1(0nbd0b5lULi0{EUp>@_8aic0;8726*l1Q zhV&f<{Cfj_QQ&C({=3E62<8@poaHfuL6!|e}@e?1vL%kX#5!loNvG@ z4A^JDHyZFR1Kw-Ee=y*84A_L0r|LJ(fX_GJN(1&9@HPY9Wx&5O;71Mk6$5_HfJdNb zsQOMd;EN5og5&=B)ALetKinaHNZ8( zHNpAdn&Ga7^TP$;f^aQxYvIcxC`Mn!X@kC-&Yqlro}#QtHpWVRy>J|ckk4n3y#`3a zhW1+c5MC8T66KW}yflsg{+>8|$Jcy$kXQ$Qshp=s^fDM;rsnanuW{?4c-fT4@)yO4 z8u*$x50&Y@`rD(#9n19%URxX}?BDUeVjQVo`$ffpvcBpYiUTDK{%YdD^l{%w94y%~ zCvOB_=`}1%O`Q=Aqj%E5LFFlep99;l!2roT~RO)+j%G-`S@*BVA$fcb4{l_4#}-mwpyb+D5jc!Ht7*vgathu&x<*+V)uLN;S00ip|dRpzA&qVh&N?pk0H{JJ~D<5 zJoG3wMf~%QjA_*Kg^Y30lZe#gjS?mjCmIbNJ$P>7B%_!Ygms|5>X+cWDg7J{c>>3P zlcx}1c#}9LM4UvW9xD=a=7<`h4EK29Se!SazmB}9yt1f7TUuUFj1#N)JFZ1|U$daa z?e($2)AS!xa)N}5afna7*A+NHGI3be;CU`vdIBNKJZ>*$OY&{qfrS%Ci42xNzG^*4 zk|7m*N%^IC8#}Qg^qwo09|;vLcP#bQ4Hh3gCu@*I%W+y+a6MJ%Ac^o&E1j)Duh1@W z<3I;`Yu-OtWv%qmK?8$GTwPH#NUU!#*#U2(JIX6hH%RcRynIJ~z{~NPo4*w=UWb?O z!N{Q41QNZ^uD-}l^nf?mje+vj z^|M+4QD)#JRSt_P{Fr>kKx@1@I#crT0>^aU+FY#C!9x@1D!#?szYq%ea`g z&11t06f8ZdmlJ_Tyd52sE8($vRgNN|exJ=4l7ngLjkqP_h ztxO=}o8gkj_)2&*IOa8Oaa=|GIMuZA-~N_-{jYr+-uE7GFd}YmW%Ib&3km{lO|B|u zU`~c zMX&ff=4vHyTt-fLvlF*uettv=1`<8*x%r%NULH=o@Z(rAk1R(J+Gw?05sh>z87L*5 zZcw+sG+#s2IAwF>XbFqwn5Q}BYgA4u($cv(Mzt{t1#lV<-nn-+o%|6?^2) zADTThoR;CkIhb|-dBd#8nJX$+R%^vtUaMcjRQZaj=5kX})kcf*)s2-sh_P^tC=LQb zTf}K9O(l)Iwd7GFFK?!Ujc7jVcb8OLN-aFM3a2J{g8CU3OQ;zwX{zx1TsV-Tq~t3! zq&SVTq+)Gj#R}0ucz2;3`&(&2lUwgvjc99*Jk3#{ISRE#wVU)O&&j8QmG8ePFpl`*PaNqXlM@B>V#4G0d^!gItxL}wkkTKsf~ zNSjuRBT*XoDIO(PRb1*?uVg+)Eh(B#5$6fU)C6`16zjS$zWd`P%gN&>a*$dp#StAw z?Uj6U@-d>&sXQl0zI4ufSPf@V@&lQq+(5B6K&Pv?amrx-5S)`Mqj5|N&iwSFr8=9d ze5hou$6O*P`Q?|x;-WzMQ6fz^6DlAM6scIC2L@1wD;iL72`X`pT8TJFQQ9crY|@;r zt6RKu>xt1XCW*ZN$|TX2mq?CiPuaRExTVE3sBErF0xA7j2`M>)OVP*n14MrJq$IUfipN4W+{$fYmj4F>{x=m=xAwkWm^(M501zh5_7bwzDDMTwqO`rM6>Ld z|CQAY4z`!Xv3cUSJ{(gA8_7Q5ZNf$a7Je9$X;`9jv1t}e z2iGb`D)IgOIq?q{UB!P%8%nM?ymP_IGI{QFkrtT8$32`ST8H!AR-l^|sYyprEKCyMGV1h#$RMq@Op8<7`(6rKz}ILE^w8jUhRDh$&75 zjAju%()jCTlz6LK$&jCN{BO%~kR5R3$#=k`dC{SmiA?Aybrd;DV}C7e0IbYnOE52 zTH^_>%&Xx(PMVxoOD8x7Tj`8XeP~hpnkI*ie{(*LAmz|ht8sPVBJyS4AzSuJZVtRGmhXzWF*mpaJX!YDEx-$ z@-@*qn$}8uS%+ijb8>5VPD|uIPR=|WWa@2fX)KaQzvj%P(`|9eVF5qMmrjCR?5Kgo z=*ZEw=4ho1JT@4Es#rZD8&RCEni)P9ATv7A-72aE+BVIZlylalCI1t}AF5V(_GZ32 zdL;K!FXnj821hYJQ@2&SS_``QI5F@>sI@gyeb(mI;V8!V!=iY4A~0tGEuUgbF3Pi-LJqVC zgGGkSX|$#Ke1~|53r}LjelDSWRk>%tENGcC(Jczq6+F$2ws5(|s}yhvgWYBMBFU#9szwGDJMx35XVCbswu4(C7D z_!_(}8&YXn8~>{{FSZTxISpI%DS!(6ZWF_AgMHO5X^f|X-UkysFugi_el=Dc#{Sh9 zgaxSVaX&FbWixbkqq;OY4W10&b;3+Y;X?qJlmMZH2>xpN3)w^E!Oan0Q}8ZUvgSc; z&1#U)24P>Z)&{>beMMHyp||#Kb44D&-p$N;VFM0_dScMjs*YxoGpl zZNvPJHq)Fqw>ggVgyX@#N6OHKvKaLfEhEvhhg>RgYZ5o{WviDZm_+H5D|L7f&;I3! z=K&J47A6ph9jJJF8+=6O`!@r7Y@+gFpah59&KmgChtLoYxaiwrgQV?$x?^bR#Sz=| z!Lp&H7f+xJEiFB{@m2M~-n;l#z>rFdM>U3~3V)tuXi4cAj-jQb^65_p4V{BO<1@76 z{3)BEB_&<>V^2d*zHI5x(qc1yNR<))Nt~ha^5=zymXu1$w zybbu>4hyd6&s;;YK@9i2yqGM-mMQi}U4Cyfc4Xp@AIoZGc+60RK#f0}fNzuF>xfvi zBpfYbR8R^qRF-*pq`)9Eu(s$73{$mb#a!J)8|!%BZE#tbl1UK*<~MS&!$rg_Wa%-w z6G)AjxQPq~D-q4sWU9C~dhFL5XJ42VBvPE_R5FfFxT17_c)YEhAry;G*K|!2e{v3U zE1Kx(3d*^bRD)1d`9X~mTSE261EK1Pwnv6gpcDK^p%*nlr6}b{lmhdyMAf7hB4*7H z4Kz%)(HODRS|uB!u`v`B4sG@`m;_pV4I)4OD++?eK_Bj$hwmCiN2_xAoDd#Xl#zH6 zBIs@OC=v8qwfr^qn?K+ne%2FDB+Rd>_bhd;Z^MYAXRvfmw)*%1e*0WQj{jo5bk1D) zqqzLxoqx-zoIXAR0ZVi8WNh?zc?$k|KeMZvMGHTaAH|2j82@+hxQyTMSK0V7ztJzT z{UYPdX@}alm${Z*%5Mh)MoY0zktjCd%486Me6J$0z{I;1iFm|*g^2C{DR^0VaS6t` z{%ut8U_Sp&-c`qp0SU`PHi=BaJB6z*wyr?ch%z5CCNtB2L(9$DL4xc;MsPo7r;cI0pGTsph?UwfBHq*VP-cvXC&CQ+9%^vZyT}$^YwH>Lw@X*CY-sKmE&;M85wIAH@+eK%*|MKc* z4&HU?t~VAuZo22Pqo@7jXMcR^{vWTp@0Dl5b2ndm*4?jZPu=m-t!o~iSZ^-$e){6! z%`e_QbyMr|(Y>iBD&IGa|HX4Z`Jn!#d$;|u;?xcKAN>8o#)DITba&8S~L_~Y+Ccthrd3!fRE za@T^%^Z&eAyI{&0neWs;y)W2E*Zv9N6Gb;p~(mzig2ee3k` zV=vzJ(1UXix9=@!z3W@gt$ypBAHTS7(jSIRNZr4`s3NoAhV#$(%HWib6uCu_-^{tx0?U*`Y8v_JL^#4j1||XzPjngz2i7&+gfiY>2hr^L*d) zKj&eX_ct@|JMX-6J##X%e>wcgu|Yyu1Rg8gnM4d1;=3Y;C@~VQ7|!J?&7VJa`P{O_ z6q@`<=H#Gmh~#YSM{>&NR+J}4Oa5qbm|zSRL2ejFyIc`ZV}t=bqrB}4Rbf6JuhI~v za>buCO|lAcxx$f#s&G8oC~r$p$(vwPNeJuZ*;yWJC?6%yRp;>qJt2e`Z;qMLrz0e?7AV52;-M#)>M2?0)1s`U6j^jqUy5t-rg_#>gF?)p_AjP%oF5Y|NZ zB+%um4o5;>e=SEE^{ZrgwcJPuYqE*OC_AoSqzMM}tT4*kxmM{nh2?3uC*3H_!=^RPU^`X{A+)$U-VA>=XYclp&y-cS}o*eF9UKVIId2CpyT z^&92+SY8G*5$=;b*v^NVG0KawJnkNXaBojszZG7Oucp4nDDNJYcM1z3+$a6q;c%cj z(qxp^#`1Dm9^pR83x)!bK=<~%pXFtjFN9_-N)2N^Q8dbk`mPfdEc@6$GUVn|t z>t6x&y2%^L@-n#n5$;`{r_Qw^L`_*fM*SvUtMq$?^&`wf4TmIqBLQb2ZlF69N~~i#79lWBvW(L)?KdJKw^|iEf2$|dZNjC^+#wSN0End#W3zA>lchF z{r0fk2=`V_9tXVj?phC3g|WQF*C*F2;oj^2bzlpFx*XQXAg{(9adTpLMtS>L-XyM9!UlN>X31Y2sIL$B zwLqi1oM%*d^-AdFaW)z|^r;HNZ1Kk^FPG)%mD0~=MtRgu)cR@Rf|85p7A;V{3!xUZ z=xWolQk;)|UtvOeS>wWf~z`hFiou0LN^L z*mIFgB1)wkA)W>cIkLyI@S_~wled4SMQrFHVlcvT;As6br6C-e;`3HbscG`n0Mm0a z9O=9D*MFG2c4F>BzZK(3n_n)UJ`G_xaL5)96c;B+TGovv&vphv^mR57>X95;&*>k^ zcNQGQQJIB!56+U%1^UnmU~>LsXyvVvN$_8HzSGh4llh!Y;fSYxa)F+c_$uHM`E_C{ zI9p6niKi^|R)yT5rYZAih+Y#2tqM=c4+byxMkdQan?j~6^@PG+jBZm3Iga(IOOm?@ zwd?3jZebwgnICco>%7(Bo}}kb(WiiHdPx6DxVZk7yD)^DW$8u#d4UE$IxRHrDVM@2 ziFlT;w@r)%UWuEl3<%Bs+`KL=eG=? zw~CbfWI27clf9Djw@}ONl|R3s#v9Ot5I>Cral6+v9*;j^S51iGPu4?PqgOo^(441< zFqR{2;^yRbpKM36!=i;6a}W7jPTGOa+iU)dJT+doCc;<`5Q!%xe~~+c)sx1Ilt%s4 zn_+5xZ#d|VRM*8Nbm#B29v3X8uA68^-SSVfPJ@7y`7iQB+`iuUh1Nf`u`}8Ji>p?8 zsw3Xjo(+-T|F78(<6~^X3PRw0Cz=C2s6EH$Jy~}Mz@v|M_yX=4 zPsoLqNJG4QD83Pt<$JoeETDKO%G2g@~rmw0(c*uQXUBS zs_WcdOdc{_k!OXw!55j_SRK(~lC?Q|#^f1O>fP0WFy$u1X>c^JI016cmQ;;w;r`w*Aw4Bq{*;5 zIk=yB4(>NA8E8aDnPf}M#T0azg>2* z;Va0Zbouw%Dk$%LwyYTG{DsshD|Qa(hS6d>r5XDRN|PBoi)0M2)bAT&t(W0<+bZ_K zHWX)rJ#eMi?(s--)OKp@Z1^(o0r^N@pwhFPQHU$g5!>7EunZ+R7F)DzAM8ZDUn2hu zyXd6woO^5)gAhi#cB~RIZO3IcSw4G#Lw4){(kr`V$NmbM;;p~3RV317#7L$d zqdkENr#3+8$*t@n-v3ZCm8M1sEG`oyI+{oCkI4_d(0BGX-t@KC6V(_m+{`OqQZwA&m zn(U{F_4bCVZ?QoBxPgv`h?nYt&5!L=#zO;c6tow@6n}>?Cu(GX*~%0 zDzeM2@XU3)@kEqmXL~ID_G#Nhb1W3|rOaExuE8y!mJ-?Om)$|fq zqaB@_Y#Y+yca(>$Z#Ay{M#HSzBZM!@Z~ZZR>RU>;5wTVZmv}^MP+YgHSO>zXEew!4 zX2!mhI3sp8a1PqQ(RIZbkLP1to`>;yZtLONqE?L8>)ULu*Qg%^;`wC9{=vL|mp=NA z^fP07;eUa)cZSR(EA}rLo*w%UKDD!dbaiFrh@4l*Y4Z=&J8n|wjEX~#9bK0X9iG}s zdG5U-`au0rudKU_SRvA?evlEn5j4$1uVZ}G+8xQHJUXthRNQG5 zpN+C?*i_tg&C6RSibsmyz514nfixeCimgYwyh&pFo&CjUH_i~{jr~RENR+4e#DZJu zPE&KtYnLmVwGFpyt{faapX9a^eM0p7fkXYHBP%Vfb*DKx?N-cd7-RNA?m@rOdmsA5 zB@sox3mxCGsd0&HMtz0i&qld$K~6^TkdZfvVUEt_(22$_%4hFNveBs6IJA$85l(ix z1iohXyRKBS?_Q<+Q92tP22C~^V=p+c_Y_gSb>G#u*ir7CXNm1whC4bPkn=CL=N!;v z!};(X0VT`T)pdt^pKX0L!j2$a<>0pSY25Dk^yaeSAKe$qjvm==cN&D#q~EfvKN+*DR~(*vO&{35M&;}p@E<5PJR$-FG&=dIc1P7{8p}UH9zu-!xfqx;+AdBT-C>(}#+XwFhAO`$ z%H@#_?NL`Qem<0OP7mHSkshyDJWc2E4|z617~|9qfz zT>n;k8}yiyDEkA*V0NxjrJ{M6=#1Vfen;~Fg}2*IiG78<)Oc}9>|umCDpX!~A+Ji< zAcFd!^vyE;h}eI@-(nLp_l(PL%^ZL+Y(Vixh)y_ho2f!S#z&{x+xbU$Tk~*%;4vV%=cr zC)U#(LF2%?Sbr_TI6`yoUlBj1pZKi(jyp%uc%sG6<@h%cPvgfD|Ht|`;U7I#h+J#crjM$g`lzsAE?|Ov79SA4hrFm*RbQIevCLv7O za763^j^8=WQbFs!*TJvG=n=80h`W~CcYeODq6Ri1`|N|xG=F6vp2m&Q@M*rTob2e# z2CZag#)gA_%ueHLR_qSe>kG_3gil1=mW!0lrlIaEcC|hm%(6)5_IHI`b9P{^z8n0M zw;F%5W4JR~wUaaPUV-)6g+hGRVT*1WD30u&WVvor$7y(%Kt2|%ovb-Wb{FDZFAaX1 zl#>;kfPBb4ha?^$?WW1U7wzB=H&}KZT{jPN=v>UDMVM0yF}D`99tq^PelY$yAI<05 zy#IB5%BK|hYU{6^pua%-7zUm452`ts)^FEa@s5SIa}U;8$B>5dp>@Jh%*9c(ug9hC z88PjBjMf5w>L)U;L)?+0U0GdETXyxfCZKhS{m3;h*9{Sm)M1{<#5_ZG?-&Q04iKGp z9ed=52gj>6Y=s_gqir7?;OM+2TJPVWy` zFLmCIe*9*CvHoxUi$AhjMENH4;pV|3ZX7vGbY`PZ-)YPI=*c5p<&&w;a37;G(ELvQ z>{ncd1G0~$$F6~VT05LeIt;+O`QVW^W@A1lJ5)}#Ra_C*B|FvxTBM2XRBxoqW{e4U zAWtgSa>U&^V7b)k4yn^AH;#Z#G|pTLoh(PYFo%c?*8tV;l}=ewr|%hbazYj^&&!~- zEwvMBr(_dcyCuUemSGsD;AcR0YEP-!D%yZt?`mz7>iJr%tupSq72`&F>;jh6f%;PY zK0P)aVb{Puhg?sf?c;r7u@&n`TkFxM1@<(o@|`BTya4^n8aoAPRXfg%m9eZW_=)v< zI?`vxgzZACxie$)WSSAN6Q!R8y$d0~0Quyjk3F-sAKLGvoPySYIn;mcvGajNhNE*9 ze5#Xz6D<`ZV23l)M8-vMUoQI{__61+4m#dI`q^VYLRsj&>xOulGGfO-H(;%ObX@_` z=Oe$T|A@*NwK_W2v8+n0iK)Mktv^B-*-pQ&s>Rpc~ff>#&D}dZYYEhviZS5u>rQV?4FD^w@fm z0h-!{Vh=*ycvJGdsWcQmv_f&_;wzo^0orJWQw_(e~`&ak8$fovKWx5)R_O_|9H_Y>JWwr`` z@^KYjk8mnKwZo^s5)~b=JC$)S#%g`JMpJzjT6gulCy4id$k;H#(fJHT&T>Y(TLM0s0c)L)~>pYrU2{6v14 zv0a=W-W_CF)jmQd@=0z(S0InWwZBE5wV+*D(Y`P~tV_e(WLf_ct7U!j^^VyCMf8?A zV|Q+vF6R8O?pWc=_Ptl%GI3SiA^W#p-ek9nnPi9NQI1a06h3qp@}vEpFJ-&SjQtE4 z@0=gCq20A(o*}!Fozxscds|tu-968Iq-Q^A7tAg2ck~nI9JbAg)nTqkw~XqZf0~%7 z<$XP5(0HZgeGPCI+C1frOOR#Whh*Mavaa97cu#E}iy$87M#SC+O}bH?eq|Boq{_GM z$bfTjv2I2d`04$T^v(zU2Kdf_zZZQ(_1PlWv=Fu}fQ|F9_V}Y5uX-Aj@6g$M7VPa5 zv*P9LSgGt?hw@VSWZQ$yn}?_0DEc{C$B4|2a>UZZZGy^~3A>JvWurb&iM{f%&?yso z9bq9{Xuc)m3Ogzvn( zyPA7we4B`M%fvMC$io8;J=TmlZ6MYz7h2LkT7)^=ep334>6pW}W9+1S$i9yue;Pwp z!ru#i3jZ$XC}gO;Hqnaywcc?;v<&SIds+_cX^Gb2R@L{lJw8fPX;=GvQ(za$oAxTQ z?%II)RLLjVd(l2eK#m%VGh$bO*7R8qn$pgPujx_+I%=V{a(e80GM?s_*Co8IZSD%#_U;2$zf8JO`@4$mbQ0`DJnlUzZPo4s z&l2#wEBmeDAsf=Vnfl9v(x5>2p}eA06(xgW4F$#&0>u_T2Fcu|5-ZH&R&EzXlz%URJuzLA%+DIBE~{UNZxF z9?Eib?j28InHYOW$Ltv1$L>I1KgWIq^WfjFzGcDqwoPYXE?i(47@M?e;vt%gvYT=a zHIK%=L8iE|9sIZpe*=Agu=f)Wo@N#0&1g%n-7VH*f8sMY-f^_HxBU@;eLO1v0+g*7 zWt@+)&cmF6_1+C?y+?K+cil@$@27sN#sswOq;;?Ud+9$>mh=}?`byNN`@a=k^+)AX zU48@|CvrHxpMDm$Hp}-4ZQXV5;jXOY^_c~AuGUcFel04BzvDP$$5>6a78ZI(NWHGs z>$VfRO@BV2+mp{K`l+^rZqGosV%D`M-7*ZiVGrS>jBVF#LfvntaeFWJH@kfsJ1OHv z`Zo3+@~1Xpd0ORX{aqs8U&=bqhz&;D*#=sUBQ^SQr0~{BXg32puYLH|(`YQohzX?C z>hs_)wfan~T~n>KWc$TCDb4GZPbwYW=}ffWM%FV6?RLjgV*PC7n|ax_t)pyY^AWM% zBVP625wS4Z=v}%tItgv`L#!XDjef9FwNd*pabxDCqLtd|C~B|VKKpa~%&u1LbFaRA zZqdqZ{ZHtG*ijjVkLebY(rC z%i3`R`f9$wI#~79H9J(=bE&T)PV1`|p>7UgPY3N$_SL1RZ?(Q08Owz&#-=6us~5Jo zi2LgT?yqEvY>%>q?6Z(F7cw-P%+vZT>`r}ltj;DG8#S9;gfcEbS&LET`6&B5>@lI= zKAqfejeUsLKiJ>6GKzT*e@k%Xlkfv5f902sTeQBn3VmCnX-?5(%B*4K6Zfq z7WghE-eY&7TSa&4d2s!A()hr0IL1b6tO&NJb-Db8B)`qjx(98!hkk6iU)6#2Cu-c$ zzi)Ry2I++L=61@T*2n7o(++vo*jVU>ar6<=Pp_M{7giZlvhTWB$woigpnVt9%1r%P zAP->?kI47&G10Q$Vc(I)BIR6Mn>CpB|mBzw4?9-*` zvRUwMZ`?<*#Ja8(vh7_CeQ94U59_}#WWUUa?LnC8ml-kqjt|ykB1Y?(OxS0&ocA;2 zy7mQ`Zba-c`0Cv_F$W@Fxn4}QrY0L}I$QvL8qdCf9+<)<`{Qj*FJH%5+(=+u*OZV&7iA>nHbjZT&jbs_cmG+>ekfVIA|@h5a0#eTe?^ zG}`e+{T#bo7RT&K@F~2xtE>DX%fJ^XjN0)Rc!wB+HP`;N)(YY!`XwE`O-Hxr=%9`+ z)zP^+dZ>=x-=veTqqphk79Abb(WN>%S4R)k(fb>9@^$n!9o?d%gF3oYN9XG3p*nj1 z8l8L{y-i2A=;)x1F4fVwI(n#%-oIKWUq^4#(JeYUsH01Dbgqsbs-yQe=;Z6@Z92L| zM+bFusgBOo(L;6g{)kS#j^3uDTXb|#N0;j8Tpc}BNAC~o2dI=V$i2X%C*j?UH5 zLv{52kWRji-p2HmO=?WqKVSWA!L}OwL=pN6`dxM>`p|V4Xo>z3^k$|%2mK(^`$0d) z^e3S4w<9wBhoJW}O@IH8#q@ii&tw{Fr>p{|-vPat>9;_Co9R8EuVngF(C_0#iS*eG zx{K+*fEIWt{6)}Mqe=RC&`&V^Ea+oQKMnd^OfHnZ4fKzh{vGI#nSLDfg&24!&10aO zncfZ>dz~`;LC~Kt{QzjZlgsd5fqshVt)TG^D8ugseG$`lgZ49hCur>5$uyfm&t>{2 zpuJ4r4*F51Zw37x(=DI}W0Q#Vycu)}(?0~=%Jla^|BdPIfG%LWT?e{>Y1+%*$n-kU zk2Bo}`eeK)lKckHGnfv6zJ%!jX#8!JOydLnQ>MM3pI~|g=siqVgZ>xOm7qu9qX)_V zHfa3)rKFdG#@|CqdKu`oOqYZHCDThlKf`nh=zUCI4BB#n;w=U}ooTGQvKBC10Qw51 zF9dxR)8~Q4-(bpoXM=u{>6xJa&h&K9x1uefsmKRSKt38qwaQ2HVM_U+%H)HhYfphj zkneI8#^J%PuCApe^5>Tp2kG~-gfl{s!|*}vZN#A;byeU4RStwxzM2kk0U!$JOMX$p zM44xWlrj`DHiEw$?k03>Jx@<`{D-tS5`DhwXRvhyJ_WU51C;b3J#I$$6CD(;tTAYz z5Z56L^$<_H12oy@N`$WgLH;S=A-_V$TMAwe!UpMhuL4bFy#(R-79RJt{5FGU0pj)? zOXNp+lQ!6F7H45F($elnTKr9`xKEe%6r@F05vL;jPsoV;`~Ke5MgBJSHM|vAlQm%x z>IP{lb+TRpO?7TT_#YvQ{O#Z&{~-Hky`PX#2^nOU%U@QyH-z!yTXS;0HFbg`NB;OE z+MoWJ8wv$Nb8=R=y*^J(P9%^+zZIlX=A4d%-Qw}Hn5#XZNKT1UHVk6nrjfHE5RyE4 z`KzbpIWEj~j9Xe#=DD)L6ON3Vimt6es;+G3Pdyb2Eyx22kTo)+_P9D>xtZ^tU6Z0PCd`>U7Q**2R(v z%#ItP5UH%QDYU7=NA$Odwp4?!NlLgBl&dKi5!Q4ig#aYs(Hx-c^=x|9O3qPYyDK4P&T5CJ@W#g(oi562zzQMcn(@1 z{Ra1(Ixl{kYK{ndBKdl@If8^Q^G50l1NA|lhX%f4x4*{c3CYB42MS(DziTA}FA00X z3*G+O2J{yET3LvG^eo`#^sD6$1a@QQfIgIz>G<{qP*wr00l` zCyXD>3X4b}SP0F$_;o`Ml|=oJH9{A9RzxVa%v)O*5mkXmBv3EIQ1%tx8ko!@z~rV< zUgTU{qHG<{m$Ol$r)uuOqg`EdFqY7~VaK>iK8C4lT_N|HrEXt?N0e!VuI9?oanKTY zJfdF<~0`i0EHBOxSkfhu#kk6V^QZF_dGtusktb zSP!KOOAg*1Z^{t1L7BoD%oJ(wjS#k1Mhfdoql7K{6p=OoKU_BJRAG60v`A|kBl^Fc z1D>(sgz~YNkH!kiX87C2ih=vbihdd6guQf}=(lm4ux5`Jwyoopa`$2A{tg`8(`{oc zBJDi*8E_~<{I^IgYs-YCakORVpfO?s!n5J_W2~nK>D5y_IOpeRbCgcP&1biL3BoocM2IzrD#IhdWGUjUk-*Z5+QNMZA{Z|0Uls zK>n!e|0R`8T}=y^7BDSfTEMh`X#vv$rUgt3m=-WCU|PVmfN25K0;UB_3z!x#Enr%} zw18;=(*mXiObeJ6FfCwOz_fsA0n-Ae1xyQ=7BDSfTEMh`X#vv$rUgt3m=-WCU|PVm zfN25K0;UB_3z!x#Enr%}w18;=(*mXiObeJ6FfH)E#sc5Lg$#6#y@maQs}7Y2MfUfw{~r7M*+0U5PJ@zn7W=c|f4)9s3dXqwL?r{zmriVSgL@ zPq4p}{a4ucv0jbrPhdZn{qxu_X1|>MO7`CltMYWPe~^8_@q^gUX1|^D{h0kj?5DAv zhq8YP`xDvEW8cC4LiQ`zuVFvP{#EQZv%i7;E$rXN{tot^VgDue-)6sq{Zp<|hW zpZGSx|Eh=dHz6FC`N(wSZv;NX>B--0;JY384TL`mANOW}>Trk4RpKlR_^U&nh{qXm zSFbAY1*%txC85$5M@^Hj#ubhYO< zE)mrw%67OWgs0AMEv{PWsg8J8dkV{&f}U{hR9F7gsf7h0Z%wVoUFGwXmit8LkPW&_ z2+t~WuUYE$HF%ttA~d>9pXG#b!Qy30MRa34@L|d0ES@^u6>_gBc8BXEZ(i8rsc}y8 zx+3$+uY^U&wiCk6;=DSf$n*Lmfu`_GO6>_PUCW7ddaJ~S=H!jjLch3GIkh}FCiI5!OrBoMRdy%X5*4LOE?FovpBr0 zl)6ae18+wDYd9FPcY;Od;AgEc@k2l>e^zW{gEm|WsQZW^_-$Kcj`>n zia@B^qqydUkloZm*G%Nn;EOa-lb#`4_mZ_P*mf<~_VJ`n%X3u+{54)_I-jqpN9oS0 z6ylGg^0b+*27hYtO^tf7&RW?%k0Wxnt4j9T@&HP&XK#`ntv$JMho?<#&rOsNZtCDa|;Zk=fKU7On zHy%yuV@*NX$6R4*x^wG;ktTfsMAQxmx=3C7_xfvno(N`vmYgg(lsKp6&I>g7Yh+`b zJ2hd%#K7nb%qnp@BO&k>HqFxyaZ*vIGpwnqm$j&xhHw!UDkFW=v}x3`R(nE`66f4d zC=e_onz^5pU}6n9gH6uBIk4Ki1qJUI=I76yHJ9U-(gZ>UFYZy$OqjCX9dS9QIqO{U zcI*n)Xl$iDvL(dlHAGg-$}e19D_d5@aZ)dGlPZ;R@!@n%ol4Aws%v2}Vi=E>Hih#R z_#?Bl)>y}Esa6UkI>>2e(mdv`X=-vhWjkzS#oT>q$>)?f<#@tvIBMyUxsM&t>27MA zkFKT3)GD^wB2^7zwH2tZ$C7iQ*Y8<8+a0QHsK?|O2A|W3ekkqQ5>M<>)|%fC2`|m7 z4F%Sqh+bL5jar&>T<$Oyr!;TPb9;RaA&<*7V};LM8xGGX@nG0l9G*H2EA5E4S_xZ< zHWQwC32Z%m+R}&=wnY;*3$sLZz%A{;tAnLzcr^>K9B*`D@kLhO+FRjh1XSGwjqX|*T~v4i=0UbmED9a*;4S*%;A zmIc>_d~=aJ66m%P3Fp==P?HW7qD>P$6K@O>IsEm$o$Ack2@S`D)3Hq z6|BL(f;GxeJ2kFzz$K@MKz-01@+|X4>YVifUtyi6dX>vH+tV1Nbv8O{6{=ici>~}4 zT6WK$Iui{6tln_IUnZ9>i&YjcaTYUzkRNf)4ttQwjg{Qg+=wSs@AVVi)D*0tUaVO5 zFpIX3p5dZZcYXmGlE;H~Lz3C96_A9tB#+ap#_kSIG22B;!xDGB$2I%P1|(VG#R}fp z6s!okoK-5r{gw=et8l)2jhgR?6nnh2brG`aq2!2V-kL}qg-5OQ<|kkEFc}7$D6Cl* z7V`LDa1RByP_U=bE9Gq@up)@&Pf=S4)yrn%3PW`Y+bY96_4R?(5^u8(bGQOkE2~{H z9aYTofL})Kh)30jYn^D-#NQSV3`(G}!|70mzS(+0GYCO_<2^Cv(aZP@Ay|=m$9R%@(g+7cwREmv>Bv@etLOS)fB%*3P zk$JF?x7JT@po=^aH%)HDzcndQT(myPHe(WWG7>}VJCfokw4iB`n-+jI)R-6eX}+OX zZKQ2WN()o_J>hUUy{=H~&P1#iH6eE?5|((WTP#M_MD!kAbodg#7w_V}rZUe8PYCn3 zr^e+E_)8jmJ{P(%Uc)K7_5_Env32M}wHn%=2yF1HF~(CP7n3CDkUn;mKd{EH)Y4T% zG%el+8vIE~v@Du?O`%#+OCrr0ug_OrhlvRa&|`6lf%39DtE;{a-Plvz5b?O`JZ{>~ z=~wR-lhVZYpWtdpYjq&(3RH*CpV5=X!=2ADBnC+$Hw`+^(J^F#y)CVAsC`gcngcl4 zY$=-Pi&|<9TH7rxX-6!Ve{8wQno)UPR7^&jh8OIpESf}C-GT!4=c+e=7{$s{hFkZM)#n&=!X8a=K z4#pRqtoU12sr27r9Pugqdo8|R;SYeRJg+c5#@Oyx@gq-B@q-x80;cv?%6JjS*D$VS zd=KMIjCV4AoN-z}$sc~Il0T7gE-=Yo$oP52FEU;=n&O4HJgE4uVjN_AE91?K?82cH2kMU0#-@^Dl#+w+w!T6Vqk1)QEar$^A|8d4S zjDOE~3gc%OH!yyY@!uG~!nofAC2v3DnS@V>3g6YrUL}MFMa4agR}elaD%u!d&v*~x z?S#{#A{bTtdl@$}9{w#AA7xy~xS4T~aSP*n8E<6#3gaz|k1^iL_>9w({B4XcVZ4KJ zGvhYKI~ea|{2t?%7-yWW9d8{|CCC9Ipaf&n<;&ER5+ei@sBbtX8a1{QpTN(D;Q@@Qv8*S&tP1~ zcsb)B<0#`s#t$)$GX68;X2u5@w=f=ZhRSav<5`TiFm^NE$~eGy8{?}P?_hj4<2J^R zGv3MgDC3tHk2zE2zlZUejN2J6V%)*l!+1aAwTurj-pE)yqwN1CV>{zRjE6El^DLEr zHsdP@V-Cz=d>iA5jJE*~9wkIB;{%MhF&=t0$Ny2~U&weHW49Lntct%)i)U;RLe$WI z{5*{K8V$g=PEN)r0k6Qy>$}-Mt)^teIvM|MU#RG2#81#+ik|=%fuo0Ti6Nf&we{Ub z=GU;sKd8TCkMrx}iC~Vg5Jn?Jm$IqBw!y3QCz^{)der>%uWQr=k zhBf|<0m=I7%L;m`B;@8%*cQL<)HGYRRIe&dT@oVef{<%tj4Qu?E zzU4!>M32k0*X@{r+3#*RaN)X5iPy6Ti0JpDW0>93C`e(n8o$PAUghABOjza5Sqjb9&6{M!3y z1M_QG;~#1m|Mc<1uf4yvF~5d2{v#^;c>el$;@94HC(l&+YgpsI+`zAoCw}ey_z~vU zu*UzffnOg_{M!5U#pkH}HLURuA_5P2CA##4iC=sFzK!`cOz~v@3^;lS6Td#5__g=- z`}er-R%K1-Ef!y133%sr96KA!ls{eybu z*RaOF)xfWhCw^_e;UnhPu*UzMfnOg_{M!D+w`ME-HLUTULIfW2N_6Q7%lzwAoQwHe z7*jmeUlANV8oxfC__h6yA2Pp&HGXt!`Dpz5c;eUgOYUTT4Qu>q27Y}!@oW1lk2Al9 zHGZT1`gr2k_G8{)ehq8<#`dd^Cw^`J=2Pa^u*UB&=&z3_er>#S^cw{p;h2U)xW*jQKUJ@f-8k#}mJ{|MW2PYd96ZKA!ls{i;I#()eFMJTfZsOYdHKot`waMJ2K?>6B520U#+a{i?Te1ic$Zosbs zpEfG7f0cES!rK1T492;CRAYOc7SH&5TKuyr{&6jyu|*{BUs-{NScc+%l^&n7fD`*u zry1~BDqR*l`PATlB#+|<6}GEbA>LAWu!fHr;wdlui>J?0I4-Zu5Kr$#`t%zNIA*{P z8SoPZyxV}^R5+eLy$2yEj=ycd4;yfo0q5J2`L8tKjRyRf!f|_a7;yize~4S2f&zh%J34EUV>$@w`AIB38v z2KHUM5t$h0WUM)6$TtJ;Oh+dUWMcJxx;{W z8SuvjJP?-F_s{VLJj;N~4Y8k;P(}dw})q;+;ecx!@UUi3f!x3ufe?zw+HSGIGRV_f_oe8uW;|cy$|;f zxDVhyg!>5YW4KS?K85=n?l9cH;Eus{!BI=J!ll9WgBuJt1a1P{x8P2LI~{H!+$6X& z;Le0Q3+`;V$#7HPa^a@JO@o^bmj^ckZYJD0aI@fM!_9#^7w$Z`^WiRlyAaL+mk(C} zR|r=GM`iyTTsz!exP5RPaQ}qsgtH)x4UX0j!{CO)&4n{+Df`*f#T`h48P!1vA0nUJu)9WU&|SrjDE{Y^IxA0j}WH-zu}H&3S!Yww2>Wr|d% z4R9z=#wQ;K)IxD+Nyf?pheUNhZYV=J-Pb>bMBK?--{4$KcVYjD12H{F{kKoTbeHvY zkHB=7(EHh!?&*6x^wL|hMQ+&$zScPxDKAxJmTN`DYTcbrB> ze&cgAQp)iU(4fzW$M!l#Dn5OmRJ*qfynFB2pdwP0d`|=Yzk!$@q5<@<^FI z9~9O~)pP8>d5pN1{7Q4b*%9L2MfWn4;{0!q2Z(zWm^k^`)A3=++S`d?nV|0{r)2W~ zp(9fyyHCfDxk274HjCA)CS-KE) z6szaEG>oC$Z_!9j(eniw#x(j1D~xgR+b{I@Wu#1`uE^*;y7%1FjTlKM&@`Z(xk+&` ziT-4H(y?=Wgl?pcA35iE*Sy7Lg>zjC7v~q@_7ZvgD?b>#7{}XECn&@Lsr-f-Z{Rp- z5=YsOlW;yRdZ_bOhmVs?-K^5PUW*nUN5~>ijTb8+KIzuI^y(aXZwb8NpgU4s*GrN< z6@0aW{A^QN)J(qx=b7y z>~`N1CbHS_J&rs&8JLF?@|bhgVRdy#9*4uxm9+Bv!x1;`HNi1*obQykN|EX5Rv6vk zPx;a_t>>FNmdWjfK4ptLGiEO>;p?3WUEvw>=q0Z3sKqhsOI(!8e?m@qzFMqLb-Ae@ zp+309y(^0o4+fl#i?H_sWEI(=!0ZU!uLIRn$qAyxTWD&q}Oh2^y~q*3$* z(v@d{r?$4%g%jj-lYuNHt`k|{X)0)Ha+Q|}R~22_B~NnWY^M)*2x&nzxKS$;rznV+{DtfP~L1)s9ooS+hUd}rKz}ILt^(EgCIG6c?eG9 z$Fqpv81(ODl==-om!Z5w=s%WYFE0kjQ@$9)^P@0K^CvPpJO8ZSJu)MzK zDpdKW+6qafiQ?+z&ao8r=v;!*8aL@urM(nsyYGq=;Z84gUsvDwCA$L>Q$b| z(wSA##|;lNR?r1Wkw$tY*M=5-Uvu%$@gL5|*+;pqL=)|6NnB1G;{Rr)`DVE$$~JYH zOTI)DG_1gl084QJ6_y@zeIB|4#_0>JDRoEc)IJam>NAZacp(`{^&nj8k|YXSJJkVy z7`Msf`)dkA9!!Y1ebz;(XoAa2p?IbiCOrt_IpRUE`p;#*8ibKT-U?YK2b{ z=hVcn!dmFXH7#zRvq;`$)9AX=6{(TqME8l%)fA-qT#;9cdm(xr7S*P5c-m~V6GO@Q z9vxclOvk-WbgK;At%fmwetl!TD?*)Dzg$sSaZXLaWs9pQ%YR#R@9PWMP*>z}ZZuXH zwC8$54`}eynpa-g>8UBi;1lWAN>#J;Qb)#pHhrlV7}f9BtlG!=aYDYKKKjgQtV#W* zyZW+*&tu7VAue9F7%z>qK+@IHA~$t!UflAE4jBP{i_KnJ=zExAj>Hk$s!-N>k-4r~f4?Hr4($ zT6oV}!0}Iv>e8ql?v*UktrD?)gAP{2YtiM}Lb1Co(DJXOJ{@m<-&nEKt4f`M&Z>V` zLzk<%ZdEw4%2gw82&8wbqySei6sV%@4MVtUyNfCor5L%i5iO}T%D|awLnI|@-&%#U zkiTYiYuiq&*iyx%sEyPNv{XzjtmmecnuA&_Nz=M`$g{#nH-!cKE?m{7wu!<`^;H3% zw>pPR?rM_%yMps`dbz|iC%$J~iY=2Q{v0$>eH9qv>E5~CM0ZcGAFsY1EAEE-dJM_} zRQ4V(wxzNeh8m-~G&c4j8LU7lzn*sB!Hm>b9;^s(b)$E_PD2^g6x0W)5+m$u)=BTv z@z<1w+up#@qsjH!OOxpWlD$Paq<*UD2_3o5rBd@?igCCgML2fRdYb;_;3;>Yx_7Qrx?)TN z2d`SXZ~3d?9-lwrdwabkPVDXXks+~9-$w@Z1)`6MX>0#$t5n3FF#4DWw*UK>Qhw9u zV_N!b(8r`yNbMWZ*I<#Kdit1Ner@Sv+W7acuaSPy!agQeU*Gzem^6`_AAL-p_#D(n z26+i+#9QU{;r>&+B2_np=%T=;WOlXPioMn9kT;0koSu8`q7@vjpYAEpB{$k}pD2F8 zK)!PHX_vZuwcOF}W!2FXUv*%4vZzSro@$pJpAG3{Gvyx@&@zNYbeq%p^+JkBep@=e z)TG6V%AhwbXobS5dYu073Bb7Gz+9P1aavMnalKE_^jTGo#@+XPR8((D^V;S3rQ-z) ztHkRO9f}vFx7^~1lqvL|9r~c^alT6&$N01`VSVM|gNvM^s%W*vsk_x$+~7%_MXLqF zq7n@duN2Et#`bO6?@a=|W%MGy=Re$1EGehmRAURZG~EcWXmQb8Y^fwRA=KYw$S+6q zVzLmINc)zqmVe@!V4GDocj*G>0{q;HS4DO27=5+MqUuE#bL%(QUA@SqicPte>qVe^ znM*A&_3K@$ZY~2U^`vDe-5z-hTSU{6L%Xi@y1R*8D&# z|5!x->93d1+U5t^Zoj8uexTLbj`@Ms)9nwy%n!7QT|M&yZOT`vzP-blA87H_LHi?3 z{ci{UM?TQfzEH|^#i_-)%B&I*!U%+IXG6O{iuKeHx%RY`q#$^5R` z!%vi(-&OIGo=G1o&F`xD1$}$_?Cs0xH~6la)Sb0hGwL_|{C#)sg`*aKe%8HLzV+liHA{kD&dL1tuG@a*iQKcisMIw&h#iIPbyJVimVIeia__%Y{V~hJ5$c|1NJScslPVf3n;>Y}?GXyypj> zvqzL%S^M6Q8NYsW<70oWS$pbNf#9-F?<)Vr&2t|8!%Gw9uiLk7d?@=z4_x`m`%^!B z{>x{6-oE3_o3~FG>bbq}+Q@=aZ!FzWan$wXb3Zwr{@*nIytQ|)x%iitTvzg9$!noY zmruNQ+jBpd+VN)Adt;7H`0?hE6TYeZ<8vo`@XO(U@sBTm_N-HO-0aA;WT(9iE{96kD~OA4Mnb#ddO&36`jINACqr!8aOl6&S9Uh`1@ zyPkROi68&ywNax-m9}sBYQnHLo4$JZ<=6)Ye%e~`+N|+EdGEhO{|8M6 Bd))v4 diff --git a/resource/swift/readme.md b/resource/swift/readme.md index 4ca591d..da159f5 100644 --- a/resource/swift/readme.md +++ b/resource/swift/readme.md @@ -1,4 +1,9 @@ -## executable binary create by swift +## Build swift project +```bash +bash ./build.sh +``` + +## Executable binary create by swift - OCR - ocr ability powered by macOS. - usage: ocr /path/to/img @@ -6,3 +11,4 @@ - mouse-drag - mouse drag to (+x,+y) relate to current point - mouse-drag delay x y + diff --git a/resource/swift/src/LeftMouseDragged/.gitignore b/resource/swift/src/LeftMouseDragged/.gitignore new file mode 100644 index 0000000..0023a53 --- /dev/null +++ b/resource/swift/src/LeftMouseDragged/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc diff --git a/resource/swift/src/LeftMouseDragged/Package.swift b/resource/swift/src/LeftMouseDragged/Package.swift new file mode 100644 index 0000000..3605d81 --- /dev/null +++ b/resource/swift/src/LeftMouseDragged/Package.swift @@ -0,0 +1,14 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "LeftMouseDragged", + targets: [ + // Targets are the basic building blocks of a package, defining a module or a test suite. + // Targets can depend on other targets in this package and products from dependencies. + .executableTarget( + name: "LeftMouseDragged"), + ] +) diff --git a/resource/swift/src/LeftMouseDragged/Sources/main.swift b/resource/swift/src/LeftMouseDragged/Sources/main.swift new file mode 100644 index 0000000..5728530 --- /dev/null +++ b/resource/swift/src/LeftMouseDragged/Sources/main.swift @@ -0,0 +1,108 @@ +// The Swift Programming Language +// https://docs.swift.org/swift-book + +import AppKit +import Cocoa + +func taskDelay(_ millSeconds: Int, _ task: @escaping () -> Void) { + DispatchQueue.main.asyncAfter(deadline: .now() + Double(millSeconds) / 1000.0, execute: task) +} + +func postMouseEvent(button:CGMouseButton, type:CGEventType, point: CGPoint,clickCount:Int64 = 1) +{ + let event = createMouseEvent(button: button, type: type, point: point,clickCount:clickCount) + event.post(tap: CGEventTapLocation.cghidEventTap) +} + +func createMouseEvent(button:CGMouseButton, type:CGEventType, point: CGPoint,clickCount:Int64 = 1) -> CGEvent +{ + let event : CGEvent = CGEvent(mouseEventSource: CGEventSource.init(stateID: CGEventSourceStateID.privateState), mouseType: type, mouseCursorPosition: point, mouseButton: button)! + event.setIntegerValueField(CGEventField.mouseEventClickState, value: clickCount) + return event +} + +func mouseDragged(point:CGPoint,toPoint:CGPoint,button:CGMouseButton,postDelay:Int){ + let toMaxX:Bool = toPoint.x - point.x > 0 + let toMaxY:Bool = toPoint.y - point.y > 0 + + var tempPointY = point.y + var tempPointX = point.x + + postMouseEvent(button: button, type: button == .left ? .leftMouseDown : .rightMouseDown, point: point,clickCount: 1); + + let blockOperation = BlockOperation() + + blockOperation.addExecutionBlock { + while toMaxY ? (toPoint.y > tempPointY) : (toPoint.y < tempPointY){ + Thread.sleep(forTimeInterval: 0.0001 * Double(postDelay)) + toMaxY ? (tempPointY += 1) : (tempPointY -= 1) + postMouseEvent(button: button, type: button == .left ? .leftMouseDragged : .rightMouseDragged, point: CGPoint(x: tempPointX, y: tempPointY),clickCount: 1); + } + } + blockOperation.addExecutionBlock { + while toMaxX ? (toPoint.x > tempPointX) : (toPoint.x < tempPointX) { + Thread.sleep(forTimeInterval: 0.0001 * Double(postDelay)) + toMaxX ? (tempPointX += 1) : (tempPointX -= 1) + postMouseEvent(button: button, type: button == .left ? .leftMouseDragged : .rightMouseDragged, point: CGPoint(x: tempPointX, y: tempPointY),clickCount: 1); + } + + } + blockOperation.completionBlock = { + postMouseEvent(button: button, type: button == .left ? .leftMouseUp : .rightMouseUp, point: toPoint,clickCount: 1); + } + blockOperation.start() +} + +func printJson(_ data: Any) { + let jsonData = try! JSONSerialization.data(withJSONObject: data) + print(String(data: jsonData, encoding: String.Encoding.utf8) ?? "") +} + +func main(args: [String]) -> Int32 { + guard CommandLine.arguments.count == 6 || CommandLine.arguments.count == 4 else { + fputs(String(format: "usage1: %1$@ postDelay x1 y1 x2 y2, dragged from (x1, y1) to (x1, y2), when move a px, sleep(postDelay)\n", CommandLine.arguments[0]), stderr) + fputs(String(format: "usage2: %1$@ postDelay x y, dragged from mouseLocation to (mouseLocation.x + x, mouseLocation.y + y), when move a px, sleep(postDelay)\n", CommandLine.arguments[0]), stderr) + return 1 + } + let postDelay = Int(args[1]) ?? 0 + var mouseLoc = NSEvent.mouseLocation + + if (CommandLine.arguments.count == 4) { + mouseLoc.y = NSHeight(NSScreen.screens[0].frame) - mouseLoc.y; + let newLoc = CGPoint(x: mouseLoc.x+CGFloat(Int(args[2]) ?? 0), y: mouseLoc.y+CGFloat(Int(args[3]) ?? 0)) + mouseDragged( + point: CGPoint(x: mouseLoc.x, y: mouseLoc.y), + toPoint: newLoc, + button: .left, + postDelay: postDelay + ) + printJson([ + "success": true, + "from": [ "x1": Int(mouseLoc.x), "y1": Int(mouseLoc.y) ], + "to": [ "x2": Int(newLoc.x), "y2": Int(newLoc.y) ], + ]) + return 0 + } + + let x1 = Int(args[2]) ?? Int(mouseLoc.x) + let y1 = Int(args[3]) ?? Int(mouseLoc.y) + let x2 = Int(args[4]) ?? Int(mouseLoc.x) + let y2 = Int(args[5]) ?? Int(mouseLoc.y) + + if (x1 != x2 || y1 != y2) { + mouseDragged( + point: CGPoint(x: x1, y: y1), + toPoint: CGPoint(x: x2, y: y2), + button: .left, + postDelay: postDelay + ) + } + printJson([ + "success": true, + "from": [ "x1": x1, "y1": y1 ], + "to": [ "x2": x2, "y2": y2 ], + ]) + return 0 +} + +exit(main(args: CommandLine.arguments)) diff --git a/resource/swift/src/MacosOcr/.gitignore b/resource/swift/src/MacosOcr/.gitignore new file mode 100644 index 0000000..0023a53 --- /dev/null +++ b/resource/swift/src/MacosOcr/.gitignore @@ -0,0 +1,8 @@ +.DS_Store +/.build +/Packages +xcuserdata/ +DerivedData/ +.swiftpm/configuration/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc diff --git a/resource/swift/src/MacosOcr/Package.swift b/resource/swift/src/MacosOcr/Package.swift new file mode 100644 index 0000000..edef1b6 --- /dev/null +++ b/resource/swift/src/MacosOcr/Package.swift @@ -0,0 +1,17 @@ +// swift-tools-version: 5.9 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "MacosOcr", + platforms: [ + .macOS(.v10_15) + ], + targets: [ + // Targets are the basic building blocks of a package, defining a module or a test suite. + // Targets can depend on other targets in this package and products from dependencies. + .executableTarget( + name: "MacosOcr"), + ] +) diff --git a/resource/swift/src/MacosOcr/Sources/main.swift b/resource/swift/src/MacosOcr/Sources/main.swift new file mode 100644 index 0000000..49b1b95 --- /dev/null +++ b/resource/swift/src/MacosOcr/Sources/main.swift @@ -0,0 +1,101 @@ +// The Swift Programming Language +// https://docs.swift.org/swift-book + +import Cocoa +import Vision +// import ArgumentParser + +// https://developer.apple.com/documentation/vision/vnrecognizetextrequest + +let MODE: VNRequestTextRecognitionLevel = VNRequestTextRecognitionLevel.accurate // or .fast +let USE_LANG_CORRECTION = false +var REVISION:Int +if #available(macOS 13, *) { + REVISION = VNRecognizeTextRequestRevision3 +} else if #available(macOS 11, *) { + REVISION = VNRecognizeTextRequestRevision2 +} else { + REVISION = VNRecognizeAnimalsRequestRevision1 +} + +func main(args: [String]) -> Int32 { + guard CommandLine.arguments.count == 2 else { + fputs(String(format: "usage: %1$@ image\n", CommandLine.arguments[0]), stderr) + return 1 + } + + let src = args[1] + + guard let img = NSImage(byReferencingFile: src) else { + fputs("Error: failed to load image '\(src)'\n", stderr) + return 1 + } + + guard let imgRef = img.cgImage(forProposedRect: &img.alignmentRect, context: nil, hints: nil) else { + fputs("Error: failed to convert NSImage to CGImage for '\(src)'\n", stderr) + return 1 + } + + let request: VNRecognizeTextRequest = VNRecognizeTextRequest { (request, error) in + let observations: [VNRecognizedTextObservation] = request.results as? [VNRecognizedTextObservation] ?? [] + var results: [Any] = [] + for observation: VNRecognizedTextObservation in observations { + let candidate: VNRecognizedText = observation.topCandidates(1)[0] + let value = [ + "word": candidate.string, + "rect": [ + "left": Int(Float(observation.topLeft.x) * Float(imgRef.width)), + "top": Int(Float(1 - observation.topLeft.y) * Float(imgRef.height)), + "width": Int(Float(observation.topRight.x - observation.topLeft.x) * Float(imgRef.width)), + "height": Int(Float(observation.topLeft.y - observation.bottomLeft.y) * Float(imgRef.height)), + ], + "confidence": candidate.confidence, + ] + results.append(value) + } + let data = try! JSONSerialization.data(withJSONObject: results) + print(String(data: data, encoding: String.Encoding.utf8) ?? "") + } + request.recognitionLevel = MODE + request.usesLanguageCorrection = USE_LANG_CORRECTION + request.revision = REVISION + request.recognitionLanguages = ["zh-Hans", "en-US"] + //request.minimumTextHeight = 0 + //request.customWords = [String] + + try? VNImageRequestHandler(cgImage: imgRef, options: [:]).perform([request]) + return 0 +} + +exit(main(args: CommandLine.arguments)) + +// struct Banner: ParsableCommand { +// static let configuration = CommandConfiguration( +// abstract: "A Swift command-line tool to manage blog post banners", +// subcommands: [Generate.self]) + +// init() { } +// } + +// // Banner.main() + +// struct Generate: ParsableCommand { + +// public static let configuration = CommandConfiguration(abstract: "Generate a blog post banner from the given input") + +// @Argument(help: "The title of the blog post") +// private var title: String + +// @Option(name: .shortAndLong, default: nil, help: "The week of the blog post as used in the file name") +// private var week: Int? + +// @Flag(name: .long, help: "Show extra logging for debugging purposes") +// private var verbose: Bool + +// func run() throws { +// if verbose { +// let weekDescription = week.map { "and week \($0)" } +// print("Creating a banner for title \"\(title)\" \(weekDescription ?? "")") +// } +// } +// }