From 950a9b71cf27da34fb858868df5ab5fdcaadf9db Mon Sep 17 00:00:00 2001 From: Andrew Ward Date: Fri, 21 Mar 2025 13:20:32 +0000 Subject: [PATCH] further improve ui and cta --- assets/ss-banner-500.png | Bin 0 -> 8975 bytes assets/ss-banner-540.png | Bin 0 -> 9902 bytes assets/ss-banner-550.png | Bin 0 -> 10151 bytes assets/ss-banner-824.png | Bin 0 -> 15670 bytes assets/ss-banner.png | Bin 0 -> 15670 bytes utils/__pycache__/text_to_mic.cpython-312.pyc | Bin 77773 -> 79970 bytes utils/text_to_mic.py | 138 +++++++++++------- 7 files changed, 86 insertions(+), 52 deletions(-) create mode 100644 assets/ss-banner-500.png create mode 100644 assets/ss-banner-540.png create mode 100644 assets/ss-banner-550.png create mode 100644 assets/ss-banner-824.png create mode 100644 assets/ss-banner.png diff --git a/assets/ss-banner-500.png b/assets/ss-banner-500.png new file mode 100644 index 0000000000000000000000000000000000000000..aa54f26ab53d9d9918fe8f0ef15872e9e080609d GIT binary patch literal 8975 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 NqjRQu6*?|q{|~H-IjjHx literal 0 HcmV?d00001 diff --git a/assets/ss-banner-540.png b/assets/ss-banner-540.png new file mode 100644 index 0000000000000000000000000000000000000000..f021b7c0430c540d2a5715b12263a2ffaf1a87af GIT binary patch literal 9902 zcmbt)1z3~q+c$!Ul!7oqYK$H+x+J7adX#{;jR7Mz*hUNxP|_hFU;ruzA~GonB?ajg zMM`OrkWK*w{DzNDeDCr6-}gPfk7I1tuKT>s_?>lM*S(t-W(JIO=jkXYC>V_lb*(5U zD7ndF$J3PL_sT2XL*x%yUqc5R1qD6J@&5^mjE5W)6sPG>P)+q;;?v6cOx& zP;mumY5>)ORLKl{ka!p{$j2LvQw>rF{o<=i9v@FbK)_!lcrSI3*0DgKy{QFI2ZKcd zRitDj5z^AKKqVC^m<+;IM%GONC@U>150Q}}za(W;RHcFuB5?>T z$`_Bqpn=C6VQ`E;UL8bM^$#0-eE(vL#{I^Lj2I*c<_nRLl0LTS7ojWSFFId;toJYB zt_TRy8|i~Y<8fqKnZIa#Jur9-&I9uwSpRkT{}MpP*3|Sb8ULz_kI!EsaCp4{vKhYt z`B!Qjl;DemSRrv3e=Gv27eH21;Mf{pRUIr6hR0x`7>xIyp0fB;WuUC0lsr(>4uy8b z1meX0u>h$H!z0x}WUnbmO3O*g%0Ol0RHda=vARYv(wDsrT_ z!tk*Fj?NXK>W0Dkz{nP&d|>WKh%ee51pEs(RUM2s21^!4R!8oaY*SNJBQy>VLnDwz zy6PaZky0p>t11Gi0D~#XDoeV$!Br#`6y)KO$_fe!lFBf7Ib~S|IhcYH^3V0U7=-_^ zE05Rz5!S941ewR*QW0*-Zn82mijpu{G9yS)q`ab}3LGgX19Nj#ltCho!}o8= zP-GDP5{!Vv;(q6aHq8C^$Q$(!Tz=7*!F2z5IZDUHI%n25a#QPlK^TN0m%VD&NvBR00xCXLU6uFB*NqORT$b82!#3L zF=&hrhHN7q^B)ZP|Ky7CCiC`y;emk|tQRm4h4%nru)jXZ)dlF`?*l^vQD{683qu@N zo?k{nj?2#pguMhMhgJ@7x4j(>RezvzuY2OzQk(A*b>B?m1TE}S~Z z4U6$P_NF%q0XxPH5`cF7U6=nt?Kq77E)4%s4h|OZ-=p)ts}FxD|8MC0S=atw(D@BI zf}D=-NOJ3i{2e5JxE%6dqv2No{iC0e!{XNzxk(-m|7y?VFMl<7B$~_`OK#r}_@3%e zQ1BWX>1siPKCL*@ra=eq+WN64{9sGqD(hsr&#~()_x=`rm5`^fl;6#?9uHYdxhzN7 zPLcC+XwHGhH_j)Rm5yBekZ>`O%9M&uQntTLUf$!wvX_#Hjx{bLvc0+5WPJDe^MV@X zokN#vHfyhIvqFw)U*iJAG^VSxLROEa8)?9-bkW+(To;8diq^gc7ny=`9@-eB#d=4_r%=>l<+}L@t|$Ik`COf5r7ZWihg> zeCsbHgwxmqRw@8WByR8b{n(|+Ul0eK5M*r0`%-2icW(4fJFlbSHPwz6w%+{HskN(4 zO73Q|=@KgwFAtOHPAh>8wBxFp5f)c(&*96Ir>|>t`efZ=zmgwvsY8!qql>c7U2H3d z2n<<&l&pGv%nI7EU_lr0%%G$@j1I?kuRsd3Yb)C!L1;;?7i zqfa6XwMf%iw9A(^!--DQE*;Xj9#|2l#_Ag;Vi)gO&`it8N49vB0^QE=vksoi!egx( z>8?+4aJ_iq-h~uW>;cG&>%xmftF&zrwj{e4Y?H+$hId54ZiBGYjR^anPJ?ivHi@kb@L}A&BpcY7zoZ+<7gp;;5oc7JVGGcnZWAGaZXjgztygsArH)g#y z5z*cP+nXoG+K}C+R^Dg(8d8@$smVS|`}#EXaBJ#AMZ<8*i~Z*hDmC>iSPt0ER1^uA z@^bUVLD>do-tBMf-_Z$LMsd*LqAhPSY#CF$!GzIg%0Dx1NmS!sn8;7lAsJVU52D53KH!mZ3>%?lxL~MH@ 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 M&rG*i`|6GV1JcHs8~^|S literal 0 HcmV?d00001 diff --git a/assets/ss-banner-550.png b/assets/ss-banner-550.png new file mode 100644 index 0000000000000000000000000000000000000000..69a0275ab76c0a2abad87a7d75a872f3e6b7faa8 GIT binary patch literal 10151 zcmbt)2UwHKwl+-=q)10V2mysi4Ly<2LvPaS#t;IbC6LfTdIxEOAOg}6X`+aTN^eGy z-c@Q4MWrf5gd5bo&;HM|&%O8gFApU1&8%;gcda!uYlcJ;g5_)cP%q z^aKNddN=u8AD8%tW7+*x7I0i5HCkIUw9*J}F z_I1Nz04E#~PFO!*7?7muFB`nP|6+^5|Hg@gm}DTrTM{fGbz;*`LTBV(bl!eA&!57b zk&-A+lotx)izm^7|DyFqV|}rBH1pZWw25 z03P(W7f_lAUla^T@|v8ul#IAE*c>bam6C$WfNg(K8DgE?T!Q|I3M>zmk^Ym46e-RK zU&Mb$=Zu89U~ygul7((w2v?M(H^vnR_zO3v2G$dcBZ(uaBlACG8@uAg&-ShZILR$%4h5oSYEi($WYNSP_Mkl|m}~`MxF=>38DF zllOmxwKEn;;_)x3QciLZd3i-yaama~LR?NxR!ZDS2H{NNrYI{dCoK;~$SD5F%^2rK z$}EKE-?^S>xl~gXRgj99ROxXEDnjrV_keD zNQnlN{2vUlLXlK+^K=FvyuI;a05x3zDIiE0CkF7xx*<`LcyAO6iT*u`z&HZ{2tQve z2J3|-+31V?4~G07xney@ywM0>KmZo!0SIvOMFX(7pWmd}1%USRLSO)H7+(|)fjpUc zei|uxGX4B=oaBFS?aw&?s^f+yWoOWDT+C2D|3c_z+CzUag#nQ#d5m%f0)BP7{X+)) zuVU@@`vGVaX)XBY{Qf23#AyKt97^rP1OMaH@i))@o8DNAKMMCZ&AkygQqYp%!oz?r zIIP!+H$B~uh!gB2{V~qJ=jFdpI|-wIO$`504j$qE-=p)tn;(8D|4-=rIj{Zypz|Aa zBq<$TQKY3;@?Syn%jJ^)9t}SO=x^&8DJ*_=krv65=3mP*>EW*h9)%&X#*vn9$Z}Q- z85zHZuBMuK;LK--fLx35N7``BAmuyH5gMN0OHRp>+=WgxAi9HAA?p%J`Hg9(7vH;{ z<)EGROV%%Nh@m|by;f1wTxY4M&vC_NqyeAH%u8vw(s|Eu->egxlnA(kUw?vs{~9{C zetZ2jD5U=Rw|8rgUqU<{@%W9E??!dh&dU} zq#n9%ntIa8!m-hj#-*JP&ij)A@q_@_b|pA$m+<|7;nPqn!iZ2AVa4Up!=<15|QuexrUnkJoZ_QHM7HQbZPrlj^3+yh+k)S zriMA|&wr}8NcKW~F&)l0MsbeZwha1UHl~PeD6<$=?I59(0{swkp}y^=UirlJ^P{$| zkfApa7ua!Vzu8bt@l>Qjh^LBq+p3I3~V$?;9=O*DS;qJGzz>TGTn4oeudGW#lr=f~CV)M;#*cIV!{;{B< zo>C$_!-Q{5gzI4uCAR3s1{y7^ERvaSiu&5sGE!JD=OqI7AG}8+z zfz5SA)n{Vy0*)? z^an8g!BS0FF`#%@(HCUcp?j80G9&EOFWcCY8r{WPtEbJrCPsx^EU3F@F7yD8U);Ry zGH5iN+VjH^lpZVhaeS)tuI@ron-s^C@epummdaUo)6sLHu{q^)VN10x#F?#sXyY|y z+LFbCClj%plbw01NsEpxcW!g>@&$j&>ZfqjP?d8^)NwIon-sVeICg)0@wUD}K1RT2 z?9z4os3lD$Zy+5Z0n~0*I1c9|Hs4FBE0Nb>8BRL%qR;v;r?_Lrcu`%(A)mE5NlQ?` z*-@EOm|T@_vWefuyFcL`wIPHqV*O?FOxv-GjE}N>Nsp{3vH7T{4_;N9b))GLyG`G! z%pkg^S|5_?rJuubk!Z5i^qO*SwNODB{6}wL^sId6yIULtzij%m4sg+Pi8%Y{YaSm| zJ-Lv<-&kt0kVME{l+KeDPg%X?9PB?xJR|rBef;*d#F!mgc7HZ92D#-D_5+$=kE7dyehcl zkTqlepz;#?bWi`%Wd*P4%q_m9wg3dVL`_dA?=WxG^Sr00u7KiqB?iCY;<7YePKc0Q z_g}igSohJ}o4}k?b4^j4I6uTg+_8$!uA^{_Pu7MM+Maep7G8LCme4^F<&xfFKdSf; zy+}X623wDQB0|GSP(&{~7qHo4jZ$&yHELtKK5VzHUj62fMSdp|FGe7U@wR~cH7^?|zhLg;#XUdG)sBf>Vu ztwO|lMza^*8uR+mS3oq$#+HRbiJA~uLmyfY^?WX<-e$6?#74H^ao^*K^rjx(3*yAH z@GFMJN;{HPImatPBHHFO1D&;!gzwd+8St9J zTT>i8uOeIwjb z`S_5#{F5v4e-N=X8K+|SSL9PFp#~S01_bVOXqEFyyNd`PrRqVvv*pKY3B`ttLo9Oi zEVM7Uz77UFvzLrkrQ0cHnWU9d$>EZ)Y|rcT(+|Gzwp?OxK-YxPD`Cs@=^y+XR^>pu zT;K8Rs`=95CjWkwW3%cqUT8@k<&h=$0>yPxU;VtSgzbf_X!*PuXe-~xeN6OnL*3DS z$i-H1y^Fna_ZW(KLqYkOELH-jMWexw98;I|Gy@HaTp^&~dtK%ap6K3$6BhEy>cgEH z!9a)VC&F@zh1YYJX)X3>{>VyoGZ+?mYP#`^L1#{>*ylZ5%Hm@SgqE;SdwTXsJnqn< zDxo3RrSemkZ;}x!`j4pkjt=%+Ji&cN-X_=0$GIpBfUOD`hNDGsY8#Lbk zU~D>^_NY{gLzx)puc)-^s?MZiyBLea&y<-6kvC{qa<%XCGf)kj7lX4{OV2Y5;e940 zR>~Rfgcm0HHSSeY(V8+Ihl-5|-cmpv+#Il{HWy)m?`9`=eluF5a%-`Qc^lA6(wi{u5>tHPOC`J!AmM`g-~C*U$W4I z9y6*CEP<)I8L07^hZLXoM4~0E_D+76T^s?XDwMU6fw23(B z;Y{@m$Jt0$VLGSWnWvlz(@$^bnNDAxpyz?!MaDO&L*PNIje^VYk1Z*jI{23eQTQCAqLA{WoM8Q)h1%SEyHdI!_kjzPX}B1uj~nPd zaU;jDySKSoE%RtJSkXcRi14ob!6WafLp(&^tvVO-+Gbw|GNB_d_Ss>{#LE7bj@o4< z1X4tc(ShZt=+MWc*-_`qm}&PZX2#_n-p-Wy#iVuho@H|QNbd}DhF^^u#(?0n&s)mW zKd>rS=6W_wSy8zB7Us4t`$T8vp*PcJ@Qm$te|sr!u~CgJOQ?p;ZE2IQ8GUpMD-l*4 zZYjsrai$q^1V|C`hm|8rozIR#B4u~JE-r55%iFC~++l{geb!QvD61ekUe1%gBD%Ba zJy)iT6l2mj&BN1BC#VVse_x_O?WRNjYr62F$TJ>C00oIl?94Pe)O7BhZ8zD6(cL@! zDbJ!%l{W!zo_h-#8S!m88rSZl5?b!}R!2Lx7t_-YmWmFq03WG#_yf68;_#Nv4BtOJ zy4I646}sJ1nx+cez7qt!xHdMKlRqP8yo=L(m6C3gdd})%9F3pH6xV}dwA~Zh(<#xJ z6Q9E~#5F0(5<5){j6K|+*{{5>J6azfJ#gLbTkYUyiIXy0QV4M$ zkkl|I=<;-Co*8^QZp|Z9fB9>9SwGaBKv-n%oyias$ zsv@y@kYbh&9NaLszFcMW{E#AmdEwC8>~dM<1y!;hUEoOw@o%WkEg1Ueh= zFmxk9u&`Mg9OZA_)!SasNO4hph^AL9Q4azHu|*`U7xUsU#-}=LbO7XK*CFORUh7QV zQHN@#%%|iQY*{d0x?66!ImccC2u`|}1->!!2s@`PLc>zlaLRF@^kU>Tm)cZw@9Ls_ zIWL@1>f!oxaG(<*E!^4A%i+TmSCs|q(4^HQRn+u!t)m)$MYY=!L9>L{m;^YRcOtOc zJGxMwQO}$pP;bW7#THJ}dltB`Pc{dKpe6R7TDu_`6B&5;qT>lhwk7%%g+cJAi>Y{v ztGwI|lq9uJ0ze9+jZRdTOCA%+JoSi|g%4K@fG)meB`G5TK3YsJk*3;667Kjod;x6j zy4pcQJVguy#+r~Zt$uX+KFMx%(S3-Kqzs=RP1uG`seq43i76vT())f#%Wr0koV3?l z<8c6HHQEzJ5>w@}UCdi|~4xqwUQv6Ly3zJqU*^2yoiYK=0)#jdRls9NR* zBiD66R&VyJy$REA$7B!tyRva?AFga+VJmINg+N!bSdVHm=QA(o!X?w$wfrDpQv&7g z+e)|XmDB5;1^!7tD>gRid-_Syi@NnTtb&`d;YV%Wgmc$=-F|7*Kh+;P8I>n?eY?ra{T! z`GyP2!NN6m)#uoXgo4-7h4sQ5kGqEO+3p&eFHCdq(m0{eq4?Rcch66TDPHR7jlmw4 zc$F-EdD;o0!K5A@v@^$le)mXJButHBtSGCrU)$s^Pi#po`3lEE*2Cb{^t&IzgI}~! z_fQuoK@vw|O&QY~tQ&>96ZRC8^sTzNnYbTgdc@}I<=SnB3r(OI-RP=Qz~UFYf(n;P z4w7nRt#*p+FA>H^=qSN0#lX3D)?I@4jPrtwVdpYE_iGiyTmF$zIn*%o=WM&>_$S71OX*hMAT@ttRDZFXPh4wMEYL-GD|M34Z#cTw@ z-#NTiwzF1UJzDVuKid@f{mW=(7Nu59$@v_WO{zGWitzme+RvwYZU#K^OM%gc@2B5M z6J79;9#BfUn{X;IXn`pQ^d5M{G*>z6%!P$Wu>~dj9$be7Mpez$;F9xcdZwt7h_s+{ zrGytUa6ek{TU%F$=joRj;YCRiGF&lPnBK+jHbZQ2N5rVjk4<_aV$C91u7Wg|)SVZq z069iV?`t!!CU;i6_RB@Dl{6Go-O$<3v%o5sWZf9NyMJ*nxSxDSYA+%+5|s1S`YhzvVJ)hT{~*QI)DGV%U2IY;x)T-`ebp`&b6BQbrtQhZv_ z+L%2t_iTN%QQq)smxY-53>}WhWxwqaMh_@WFmb-l|oip`j-)O=N2m_5mg^ z*p=2(|BcBYX!~$qfHqZWq4_3hE3M*elHk_QhnQT9*7JB=%x82lB^W70SnyBpZ-)-f zFHQH>+JQhB6km;bZ*4^l75FlZxS!TdW-iahDdFgP)$QWi)SicO>9bSqdJk-~#l(G( zKh}StbV`KHP4~1G+*>!{&{_GV)kr#Jjc7|_^y-Nt?B5TVmW?BDwP$oQOg9D#9rkT| zzA2UTYqZy(tdK~diT$1LoR#665@NWHnJa=fL~W@EYEQ{vRI?JYm{rJ-e^uh>#`UWO z&ysJv0mhp#K7Ph$hN*jRJ*{8!K38`*{cIK)NVQ}1OW(#3~WEisqf?Pmik zMYxUaMHqz2HgWx7%8%{&I+|nZ)S!$l%%OyYZFLN9aU}Vk?TyMPd#F#r<5crQs6n0I zf;s({9m(0a_xb_Bd{>r*Pqu|RS)(RqGWRt?jH9|3VSxc=X32qRsk#uw!|qcU?hPCz zbMxBE&-Gk6v1X}HxV*~A&4jqGY+ZT6h0N2i1q*4uT$2=IquYv-C2yWsDCSMecS1%R zQ`mb5E@XAZFNd-8*icwK(3Z-Hku}^5^+(ofHyAAcf-Y7_cJ@qhevB>W7f6su$DMi$ z&q2YYL(PZyLBrd?hSvw1OQGL2P$+@KnnR&!t8=B-a-!w40<2#1Uu8s(_l)Z|tZ&Ai zx{u25TJ_A+C@XW-CAwF$DLuh%h6FZV96>IMhD)-7(t&q1= zk3}6a?d4#t3LRWe%lf73v!3q4oJt_y%XdfBa#e82=Ulm+39tK>nTZJwhM|;t^vKOe zSMB+|KQ}K@P>^9(U{tp#1Nz-W$Kepg8m;+nHGcCczz$eH0tjlHKP`P$@rDNYzT&g` z5>MYY>k9!kA{Yt57m2qdhl@{epe zy-ch`1cYTmIR>A~v?ym$j5{B8_tzn)P{p?| zkD3C_=e6Ypj&KA_v$AXFuXS;)tA8oAV0!o6xCS-Wu1SnyWZlKDpt2zD3x}0n$!6*kV}N(J;Tc;hy_i=7m|S+L;Cy2C}gBHgDXI z7+O)4gR^LtkA@1Vq@z*}W;q)I=vlzA%&r@M9qTqv^4;0jkd5{`3oeR}&r8g)K2fNj z9to!}Cwk@37T?IH9h7mOCNmF8jr_bzy_~HxEYi0m`SuM_-hsHy)-AZY;?O*DX{)7A z`wnn*qGgq*Z-g)Yv!%cXzD>7;@y}cbIjlx6n(;?xUj$(jvp9Ru8y<;KXROQ1yFb|J zgiah-*0nv5;%rG09-!91si%gjM;m9XEZBI8A1)p1G*Bw3Yh7yA4~ab3rSd5%$w-D& zgL}pRoD0~oY}{2x@7VT@9pz%zgGjGGbVS_mi#Rwl9R0w~O!1afXqqwSB|0P6_Vpor z;U6YCioCNOcf58#cqiWG@tt(>6T|wYF|}7SF^rwh%ZAIG*FK zD3Tp!otMnu$v)e6bY*)B{et^#yFp}hV~il>r^dsj@NiV|TLHro`W4mOkY$a_qOENU zcLtCi0-UY_4U`nIDdyfe-<%pv*Pb!Fc*WWkrH=Eq#XXv8Z=I)&T)33u;k1xxGIn*Q zpZjikU;`vjtMh`X(3w&9iGkO!%4Uxo&4*lX+>TG`u>{=V(TKwu(=+!0wq{PyfsfDmBWv^4;rK_`%E@l5qK;GM_XFE*R%hpm_lbE&Ylv2Q#y=2L}<5#1k()LXYn%U{-;UK-r zLH`BpvsB64YyL#0h3TO1Lk$NM>YAUQ%tXB-%=dJD{zkO^J?$LQX^$YFfbjho|Bk=# zAXvLnBSfccFYAW>;N<{Pk(Bq~K_1AAj7Rx6wByWR*K!4E6WaQ1uql4(s@9{O0dlz; z!WyPL6^4{GhpSz1$u_EE%N(|@^7@NLF>`NfjlO||GuwPciGilxatUX5_xQ+xL=lch z_Q?>SWCK7enyC6hkjSo~&qq+}jIMccgqxdMxYso^hVTinmgKkhb1yVN_VgmMaZc8`H`U+1x>fX8lJDAbavvZ3)sMHwV!=d| z;uFlLT)D0|AjjeQnXhXTpE2$f8g2N#)D=a~oUriGPt&UM7Hwh8`lS*0dNB+GjU+<*G z^IN1H2D`8SF%UVEq%D3t`(5XPSK7KJR?cp9_{zBWx5V&<~wSI_>j`UrsXT zru{I3Cfy1P>l1Kq1kQ5z=!no64lA59p=P0!dBhE3J|`gLuUeG8aEddF^=`P8!_z3A z4e>fvg3r%XWQxoXCoITuaoGrJc{0kBHvWLkiMW!scuzmBAu!~*L4$8e3rOURWXI1; z4>^2Xx5tpXm_6{9k~8z~Q^%_x*W1%lNgdu5r2gDC*ZwVp(t<35j5T3s*hBmJn#%5oD1PRhZ-5TGHm^p_hQl^xp-VY0E@%Y?6 z7e@QpZ)}P@OhAzRP5E=K+A;Q&=x)YJUaMq=^)q!^nQ#I#IY1rg!B(C;fVdvoAw&0J zJ*fFUH9lcw-Nmy0U4#GU*Iu*ogSTn6SrqqcXBjV-1${BKj63cu*jQhAf`2j>>9?eZ zFm=LoiTzl!TkIMn9g-Go@&|l!N6!mKreA$Pp|T-UKq>%lt1uTpScNSDBl5F6dmI8f zZ~1WMSH7bmokx~rU%m4@?tJh@0y2${bcUDFcm51(>Wa301Tt9mK!P~B5Gr$>fArwc>ELr)w->um9BG+; zG>ln&x;CqiREMa4sslI6UKEmZ;aR2v|GQE4X7+kkJ?mM|if2O9ROAWqDeyrc5TT-itOf{lOB{F( zyK@uxEm$q44&3k@74(rH5CQS^{~MshWO5Mb4n9mv&qWWcEDAxuIn6B*7En$PxFY}! z0*Om`IGRK3pe}S4P-~cj1jANC3j-a@Qi4HO0L%?`l!4m76ug|FnqDee5HCB3h$VxR zB%Qd2D1ZPCbup*&fZIDDMLi@K{=_Q^JYRpz#X$Ebh>M*BgY-2)Iz6x&oeaVmN+-g} z!vW#u=A{!7;WX!gSn}{%vD5K#^YU}?@Bsffctk|Gg+=)V>3&@d06Aw%D^U&E7r%%B ze@QUdxVSiqa&fu4yK}npaUz_pxp+iGM7X$lxp;Xw00<7Gr-O^R2ZsZa@ox;WP$a|| z=I8=LIM7{VG`B#wx=1hpto|hf-0>f@4#;160yM_uVeZJq!^wRu)1QErkbmGDU7hX! zByI`eg4#pjPzM(z0L$|atfLLW1%b3d{5PoodHuf-0CWom|3l+H@&bqdLjvg{=LU%J zOCkRe8mZ;!2<6g%A`!065U89Rz$W9hG>)P&&QNm~gtHa`VgL6`sr}6|9j_oKKiy+p zn1dz49r@(n20&%aU7!*Sz^n;yaPx8S@@Vn!iE?v`^6?n_1qDV}!mK?16BG}>D38eB zP=KXan!A|)pWrMZqE-lJxH%vp3~p`><#KeeW}y2=Z=x~?dxSGU4q%7xPugIxsG|Dr0y%?%ac=Yetv@mmOR2yycZaR~DZLOHC2M0kaGEcm!B zECl|>rs@m>R+hQ_zhk}T$`ZgRU@pvKDFmpHkKde!!_pkUV=f@V&A}sNB`6>y2r=j8 z=f5`Je^J(gdblW?dqSO&zt+WbbL(GE_OO4`%bzeR=5RnSat^i#Pnd%>or?_&NoVB@ zh0?hI^DRZEWn=DON9T&9v+$&IhFU?Lov)$H=`384Fb62|8Wsk1_;+ppiS?R=|7Wb0 z01tGU5QHqyr2BSaIxhZU`6z%7t`< zLLoN4-kLjD($Sf_x*!}7a0DQu3*x^K@`vyaV2a z&c+pP?m!1~aDh6TL#{o~pF(n7yPv-%j_bdf+CP1Or~(WLtWM8gdeMYB{YyiCE_>0x zkV-H>uGcXXu;9NwhW&>X@PB1%zs9@UK!LsBKd2cM?1fi4gr>3J69{(e zuZL&Y|Md=v68r^`Mflgl-}nD{$bT97&yZi#Y^=gAzUuEe)SaYW9NmHy;?kUVf3*JY zHW@XnS}3Eh>3x(_@!P(51)M#-rR107ZLGC3JRLz3UDkP{v19iRm}|J@Sq%AC3o${)eWO~A_JT5 z6MBt)yCDo-mVVf;M$t4nO-&DXt&S_N8@y5!j(JO{U|f)h&e~^Tg0Jfoy|o^~d~Rld zudWQjw$>b@P*EMsy{#$OpgW!`I*x5r6FVB8LDuKh5-57z? zaLEacf?;+06NGPDgG{9XwFy70B)djA1Kh_=7N5*=;+sN~-zKA2q)_ktyws$xTKwrA zSYqm_^ppv=rGnbkuyGEalh^Spbd?Z{xZZSGC`y#l5R`YH=4#VDfW@VItQj8@&j7dd zdb)$&2+Dhp9(hM1V67{N2OB0(mc39cV4m;jddKaBMTZilR!@bat1@~)gLldO&c#wu z!aRr5Vh2exAehpJ>izHexeWU1**`f}=3Wjq)90q;Sc^$D1~vakJ9qEIYx3&S)H~VHhv_;8 zh8<6wTBGR8VbiIY{QP&U2m(K`7%hxNERx~d03ySz^klDarN!aKP71kk>Q9*1N1{8K z*{3ht^Eu=4>Q%7{AE>HSS3DiHI(};?d2X@7Y!EG=+3kvb$$Nw(1uHxb(`58(8+z2K zcQPNr=k(Y+gW4j6lUm+?u++$Akp1_^HRF1m_MnvVj^g6%isSS5C^ZmK_4sl~+U4!6 zVqsW}TWp<aGJ(iFCbF{jN$NfS?uTUWvLZ!doE4R_kGobVPk39OyC^Gidnw!3 zo4%nHqjGtpMnUaRwZ_2&Q@qedaKt$fwj6m5O>hk%M7>}3U^7Zw%QP+QI+=pDtuA&R z1(l*2PhNehB-sgz3IBlBccBwh&dTl1tIss6|L`;NwhY(<9_V`SH{-0(cd#4>wkhfm zutLV&5O>Oab^9z$uG?`hBO7M7BjIZAv}MQMDknc&Ju*lyf=FT3ZXv~940gA zcyqIXmGojus=h)p^z1txM&|~McJXd#vGyL90~a4c9dYcc(&*_iv8F-v-~L%P!rW8 zK3w7OC1p%vxf9scRIIVDB076byX&StC-tY-vr$^Xq#xB?LS= zF;f<;uEQ`3rkj(ROX09#m52A0my4RHvG?xVn-_QSxU~lx^RUKithY|NsT$@GeO)LZ zwqw!N8==ODd2vWB#jKblrL`E&#@DDZaKR9_={5C41ALL)C_*leTk{~8?`0qX!B8S8 zTB&?Gw!>m(82gkb{SSwL*QH`M!vQ$P z)dR@M8saavV3nIRu0i^a0r$T=!zwwBIt_!j`H?) zsgvTvvN+1`P$nBKN<D#v?{T6Z9pNsFFk6FTWM(;- z#xqc@0SVN<)x<3nt2-|8@2J>Cu7+~F%7JKMg1*|kCeX7wqp8|ud1&LmzLVj~XXUbZ z{(ILg7#roVjtGp{k2K6|{%B}CV0QBvwl-1JsJGT*%rC3YorGzX+-0-FIlisk>LV#L z{7_73clE&*vrER#{(EcfEO4GkOTSY{yw_{=YxIqSHq7fIHGG-lSAs z#hw0yKfNMp%5?X!RLqH(#_(D-Aw4|NaOG3sE)V=t^N{?!ap=?yLpph}yvOa-dRl+q z=aIsowEsQWg`#1G=q1MS5r*_`Wu;4erZK{U#DQ`m?jlW!j~0s7z^8ZQ2BN* zhG=V#^|xXgEte=P%hSy^ccC|E82%i(Knt+O9N(G_Z|^|&VVtcGF?;ncO|pKFC;ii^ zAHL5JKV26mchoU+xec*Bxi7NKUYRd&<#spJ|Eb9>#Ux1!#pTi#)k)Mf!yV)<$kE1`wcUsVW57io#v-d2vEVpn7IGNtTN&ZL8!1S* zL?xca;O3df^`dBwCtBAZvm_LXd}*tl)hF_jF{TDbm3wr?Qm3^-iY@_ZMU|UF-EmQX z`qUV^9y1Glh|k>+y+sf_VPgtz9PVQcG7Z&AgL_5Tm1uVfoR8eKwe< zGVVmpLu|C0_Xd4HNFANuQm&V*H><+T1CQ|NM_IZ#O2gP;5D@{z#nFC}_~o$Co4_g+xhuXf+sjXBHBj;% z4cD*VpVp|?5y{80@7*%+)OJRN*%5z68B zJF+;Rdk`D8QPMoM85Zfw&zQK;irY|dS(GNQHXUek3!_u+O}C{X2j1&KAGa>1&t4b+ z=>z?886p?-AU!)ibQWahlqTk0&o_NF9V@f&^-F{8-o*L-F#PwKQ5VVTk|Kg6KJ}U- z@vCM_<4~-~2?+G~o=2O~=Nb9z!0mOR?VAm^mZp4SRytNRRaLT*cSlNHM%F7KYoi}n zQ$ZLVW?1F-=Wv%-Bj#OSL>lR~n56*n@s8xGNw+M9zO)i%Ihx$$nl(4Q#1L#gJ?_or z`>1Aj>bc*|_6%Eq7s)-%mtaB}{x)%hzZOgs#Nl{@83a0Dh1)+alPdT5bVp!5+G&0q zM8PHen;R`KXJ)~C;H%53@;3J-mq@tXnA^xD-*N}#-}#A~`GjvE^=Gujx37A0_qQaQ z3r*5;x0(yDnkD`Qx!ibt)WoWgaC$Hvn^jzLpQJTY&5)vw zlWw_PpM3`u$8|ckc@9)^-H62xI=AW1hfAAS8clzU8rH9#O*DJ%$)t(8*U-UzicM}k z3S1vYB&k_YkJ#C3E6$Af6_gVvy^6O}^fHX{9Xt?8q5!>eYwz&f%cxOmI?$84h|gAP zpxEgW->RWjFnkRuwUfnm({@ZU5mnz5VxBC0Q1E1(T74MKAfqA$2SVP8CvPqtL})F) zXk+U%zxpeFk)#BH*vZd3zB~|zt*wrHi4c2{n}(bxG!8%OZCJF5s;1zIPxGJ7iHLwx z3RQQWP&hY!2lTn#lj*Z`2V4?v%vh}%j;(XF&~2}YzbY-y0-NHArt5Mwi9emEw%Y-L z^thLL`FQg&=Thf>=XJ~C&OdOdkM6D6?gv`}S(~%Buz{0?JrMNTaVH!^t8_bU6pv(u zGs8nB2c?0G@#|YBYyZZ=5y=7NME+Urvl=NF<>21eI^Wan#D`#%pASi2zVrJ?RUPt6 zrIv-RONB+U@O|D< z6MT|@pBK{dm9)Q8EaV%r3yp=_ll1aLBly|3tg`*rk5frC2VR5V7cHK;o~Cf-2prg{B$X$_oH!_9kU7yKB9&<7na!qYVF zc@_uPpScWF&z%Z`(Dz_x$DQ>C+m+^r>(ZrCSt*K?`g&Jt_ST8Yjjg!L-ihkx;we23 zEIeO&ZP+O)Pxl{a?iTS`>&ZGZY&@uIr)YI2!kH8qmLh8`prk3jeLtAZBXX567YbDmm_+h3vF>s5;=uVQu5{yg_X)xr3w}sB%25|jI#BO3nPnP zW9QfGM}Hg+iFWy)&CD~Hf%2qYG%g!gLF_C2F8Mg2(;Px$D|c!Dzd2H!1>WO>2ek7q zGr*twx>%t2*0aDZ=Al|%@tC7~@AJH(i474CyCU~uzHas^axU>9$;m^qh>umfHVPv; zou_L+p~%YhX@otrW(%i_2X5wQ^XYZ5~VYJuo(NPAdMZ!noLhnNVHWO z!ZxwKFL?5f=<~2Mwo0f}#lTiwTRF+9Bjfpg_7zbkrTki1nDi7;BD#I0c|mz5^lHSs z0|feZ<2uivo~#}TQ0JiJ-^N)hOB42Xz zRND7LqZFAa*IdOtb(XuC3W+#NzI6jkaB1wa6!T}XP~YdYu(^Fc_Xj*VF9-4VP{>8!%GhsP>I@o-MgJ70vChmheQT5jUee8NUGx@% z?Loq_cv9R!=1njn3LkND%tLW1Sp-4UiynYAG*0FNSFL6iq}ztTs%43R9uR@czmxfR zAZT0s26Oy;iRrXYgj8O~k0bd3P}55!W|Z2##P1qDMoPliYn-PAcQ8uW_vkJ>GOslo zd)wT$*ytQ8Rt8pb_!ny~bqmxFONYm**nJuyN!ECL{Cc)9hM$k#A#Ow?cxBQH8Q`Z% zq=9}IFts>U+jA^Gb?)jmIJW;m!Rf~QF+zyg?53boe9}WqXz$2N`>Zi=qliNii>?#dNW_N1_UWWd$oAvfGCj1oE^*Re>U- z4afdWO=m=Z|4W4z-gFeaCKgDG~2v6=QXi=2a!yS+Y zShvu?QGHzXZoyvGQRT9T5*A9Gvl{v#6x~iC{V^_IP=!eJYJ4%h72-$SU)>uM4#Anw zJY~qfHMVZ6W5xJfnRTN|p^SD}jf6w7Bs1EVIZPlT?OKrrM0U9<#cu?|MfSoPu=S5qiv?!5AETq`WbTV*-^XrC+#{czrqnOX3915E!NLvhC(W5=x)hoe za^2tI&nU8u!5LS~5bX8FAs29Qj1qPc@gNSAEEe^+sbqgwl;<}(IA}0K@B4E9Z!hAC zsrYi9VyeyilSf(L<9vp8uTmD2$Fn{>2_PG5A8( zJv7O$l5d{lt)IY5HJBVm&uwjQ`6INm;G0{11eo8htIN;4Er8%7HtQw9a;H+s{K}_HitZrenC1#nEOBHKn;!k}IeiPgQx!NNDMRmN&B1ou3ev%yD^dIHuJ1giWMY)g zeQ`LAJX`96DohroUETc~Ot$mg53uXhGPaYJO9q?cyJh>U6ptlzZ(3+K)Gg)gjT#+D z)UH!d+M-qqLW65pp8o^FIDNLsdlxpWsjAJ1`JUvb`yvZ>`pV>=_mL)^a*u-c*G~^F zyw;7275My)19^4F<|)|z6cYP;Bp@EMyWO;VTT&qj40}|<$==IH%);NOn6CXNh*spI zv5PV$7$uO>_Az1tS}t+^X1$GA>cmMABlr{fQI`$Vn1p!B-un&VL;cr#kO%f=TAk2E ziNS~Nb(*HFJ_O+DL7%Gi#QZPACLLtNfStrTwvOnv6lI!Eg@w1?ezKrf*`vgV1~{ON zup1JQ>(e=Ym!3Aj*^SjOytJm;!u{OOYw~9smAXGD@4tHm_-v3GBy*y0tU8=>hzQsl zX){$Nvc+LZS67z}Pdz(Q4}Q$qWd^t4WpVu3tiT1j6VXL9!dK$fRbLZCB!n0Chq;Mf zci)tBXeb_)ECV87_D4b`Ba{W7f86{1Yeee_J`g9+>?iJK!GU?xo_bb4d)PwSsAhM# z&H}^C34V)=rk8nUic#%9x^91rT|@_H6rPBXr9Mf)VT3HP(Rvp(K?3vK%2P8A)BW0F zO*s^HZ2R)CjGu}D3fl^-c0q2S)mI0VR&mSlNFxtvPsP)%Nr=3)HO~#2rrr1PtZ*&D z&JEcZuOn#|nIPei8u)iTzvj|G+u`#KOB_sxpR8^0xQ2m};Ym))uH8lhJn5BS6!7y& zZf600rJ0I`o1pU=nTWZXvS!=wQVM=Qz(^P*p>guZfqX;I)kU~cQuFmLpC-6iP=T^E zQynM&ETA74e;b{S3#1BkTpelND!L?T@-5pZ(a}Xol1+L;ZDL8e5}{Ix5Br=7hW7uU z5x%fe9W@6!HkScUe7pLjPxN|u4B_1<%wC|Si;tJI>8T&i(+KjAr4JFUyScY5P+DRI z>PIhTPWDi#1`3m}Qsp%$7)qx;PPw_LvFwADLD6ZGukkayM4~BUoL<66A>OBSFh!LI z<4186#f{mU5jPdW&sEHWOTH<2wbCax9+!+Lw$M9Pp9^24htf@)a|+g@p3wR?#jS4U z;o@~HEb|GCLfF+B_-{GC4a(-WoVqvHlXCRax*XHJl=@5>&G{;QAJvq z@D{6?k8}$>(<7f^(R$JXPA2`-azY8{RFZtV;DU`FZm3)Ql(FN>)sYlFnZ){d=HzSi z2Yq_tPs^;Ar4VG-oG?-_iO(xJ(ELd`^dgob0(>uqFmByn?dEGlKk|$f;fKXQzU~y7C@*63tf$N?8o7M5pH}_?<9v z!T3gvAHMoRE20&#{2*7;qbfz_Am1dpmp(R@kF1;UvxFRqzR^WuG9>0#R>pWgW7rYGp3#@q;RHN7;_3+i8< zF~s+Y-`^V33fH&2`e1Uz#P$bqG+%?5&$}_ZWT9QNH_58l73pB*?Lg71mkN|gpA(qD zrQFe;u5T<0Hwb1a!Kt7HCkXFM;+gCOuj-w&S&=8#!lo#uZ)sYpzWTzE{3IsiLwvaN zAwf2RH($IIyT%pB`D0(hd5*fnU8JYy6=TcjuPP<$j_W}T~Jfn`(wnC3#cPsuxV*jh23f!XXzjXy-Kt=ZkV3X91OWBKM~LH)x5F=oL5ku~4g%2Ji)JZaMCiKIiJ z_)mc%df>yc4j|PeoSu^E_Pp@H8JQ89Z_HAd~PrHTS>RF>#9g!v!C%K8n%om z#zWn+zG((&9g?D0zvB8mB-w49gbprVc+ltXb(3=KQ&j6>LT?jMhov%(#|)=DW1P`X zBFrdITpp7c4N|GB4E|$`n3a=57;dPLRMhQ6gd^B()11)tgNjvN?NXMKlv28!7>mI^ zfIK&#)Ys~6C6m!@Whih;;T-3MVRTMB(1z)}1yCxwc){`-z+Y2*nf9{R?yn}ve6dKW zDYsQ@`&`ISAH!0*OC%CgB{)+M-9&`lnZ1Dk3g`BY1nV@5s7VIP#VqhS4^^Xm*pSL` z;W>&Cj9qt)EJx;6JkVKWEN@H*MJt90;>O|Dl#!!KR3j}$T+m8AX*ORh7$5IMd>AAp zfI-v)v%td-L-Qim%AfxSzHaRK`P*qX!hyt=lE8OW)t}v{drs0_(40@Fj3n(y<7a-X z5c9To>R!epqXAyhhx>bCg?Q32%gT3Qdt?MX3N zTse^z^Ils6)v}3)=Qm#XBv3n^;@aY8QF?P}V6HqseJ^+bFTgJ1)X{AI4sYt9yVGWOl9e1+0&cdzJA85fVf z-a{@S&a(?=U%ctHyhKsdnPdi5=3GUjqH@bO8zonQd-qQ6pq~DS+Wnl>C-sc}hl64; z?$>6R|D$i}W3w;ttx;m6L}~7~+f{6OzL8G9n?;M0EThFkR_$^skL~UYtPt)VNjzkP zk3`64l03~f=(u5FPYfXdJ)0s`Oq(pvd^#O3SqIFM+*)lg>Fn$Cq?<|mu zpYTmVCbCPhMsM~ElG#uu#6x>_OFufw7s-P!t)c}XQzsm0&0{6thyfP>hdBuQ!v4 zcXa0Y2D@grRyPkR`yLkz5BbTE{4HhawUjX8vpk^cV+K@xRtq-yb}E#7{4e9+UOvfF7Jh4@^0hKFXD&* zj^H)knkd{wQ12&DJ@r06iVdX+%}J_fd{AS^LK;L>8q)4(b>#9cRQL{ep5?q;$~7_s%LC%2$_jd@uE2jk;%+0;SO`@qg<7RyBY%-BRr z-y8f;Hw>*UMk9B(^Ybxp>@R=gq;>Pz6!#{vweHu+9KQ=YmCHaPG4wWd<~iy-o2!}w z#&)ZMrM;x4Li}s6XMAi_k@XMd2hv&*7mJlV1guI*Y`6oX#2svpT*4nHDL}o_6VUun z($K~twEG$=i~h<2Wn$KaZ&Lujm+o*C~Ul2o*DEF5^+2(UxS!7 zB0(fw6q;`CmQ%a;#zT9$7pkqgW33!SZB!ZeM@Z*2=(@YpZ~}wP1mg2MeK-zpDcBK4 zXXPB#j!{5MsNh=!Zc0SxUENRB^|m*jL6NP75k^u-EA7UOe5s2MyHv;Zfz=4C7H{E? z&X!wQgf@3!^M-bb1)F|hp6floy-avyKC$o)2k8C@#G|WT11PEz+HD{*3E(}$+O7g|@E@&TiB_4kCx z_;YS--@|zvQ^ZU?pPSaf8oy)G-s_wAOrpu9!O(pi*I=4B;RcA?0z;DKZH39|h^{WD zl_dTZY|~LjCi_pn|8S50O?h8kx`2sJI#9C*F8)4^UUm82^PvM02hFc~B*qmBLu{os zaUHMyK%=#3_^PyduGQeGeVvA>0H4`-C{O(&>48C$tu2gXGuyhC56nImL-iMOAB@87{O{H&O@>5#@`>HS7!C6nNT;c|zNss4yNa@MEbtFoZfW2&~tt`|ORQmW^5-Yag4>?PTDSRb8v|ZCpP8 z^GsI1(->C2!(n}?t49|+d#7tT#=aw&x+XlA$*Pi$pU-}4x{PW#^3kW%qRJu!eu}jf zlgeuk$&KjXaAKPwXJ7(=s>M!wfDa)pZI#@N^2U_m%<$Z~Zj#xKpyo}lWG+D#VOApL zl@TS*-97(}vr-xS$Efe5^_Jgj&FIvvbl5rYSZWT2XxVd{VLWa^52e0-{B3tJvftKt zTO8-A?S}j-{`*fRyetZ84~}mOw8#eE+u=#q7~ZG9zt3jf|G?IF)?O}jA3Ryd4|ed* z3aE`u;NCA9cE3C*DyLE0FUk~=E@*WR?sVXp>w!}@W$zPd?${OgFyQ6;*5X+D?1*Q@ zb^F!nPty;hwfPRs9w{wq5=$trNar?}XTG3fQ^!31z_d$8(g{nhR9a`@=V&pqfBFUG zJi3w0jT4b4U6`@x@;*L!BH#mg>yqnxM=z$)mewNtUKT9|akpn*6etPhG^A+^vfhaw zVEj+ci+jn)z&90&yY|bT6Qj$`V&qZVsy?B0$luu(2cpX)=FAnls4^j4@B0X62786* zopttcBORL^qhzS4h!r309!w@n8IlH6>q{eE@2x7HRGLw>#XM3`uQ&*}822UEB7jH9 zV2|%d(9hcwUoz$6ESIi*4hjorhcbu9>kfNd1UScZvj~^S3@LbQ&XI>#?ibk*vF>>r z*?xFekF>h~AOsrfL@ke8X^Fjcz}52vC&XUs{^;tbo49x-zF&n&5CsK~yvxF}@ri8V z{Iv)C;E9kW6C|hEW5ryZ8(LE14qIcAsj`5Sc!B1ACO&_Gn?OKso zDxAk}MUm4?ChFZrSkIwY$Y6VL@Mj6l=7aHy;|qlW+n5byW51(p1QD1$QuN__eAo3v z_2ICd%-Cm0oKvm=!g^Dxql9d0$ajMZi?@nfF^*puEaXfzZ{mN1L_E znyRWeByml?D)&`FPfS_tVazg&$nP7Hkc?eJ>(^qw@HpO^K`SY>^8tgIT%< z^2`RhyF1z5XI$C{rod+J9&cxV9U#9eIOyy2txithGxAu8!5hZ4bB3#3dHe*j; z2_o(2xA&Rgl?m;>i^?fTY{F$@h5JRWeP7QiHppxv?VyLFSiUJ>d4rKZod7nOm(9VMDp8${S^#Lm4^Iwu9-VYewZ6U1E91SR4BQ_A+q_rKL_P z8!n}iJ5Y#D{C&!EOn%i~#*@3f&#@lc!$SL9XCt8>1eM~5FBG!vkUyE`@gfT$BEjrq zFK%}ZLBH{f!7>X%ezJ=7D~UY+#{atV$Xg#=-e z-m`9*1v(YDJyF#z4sIBoV)fllt#UApG$x*=pQmdgNu`TQcqji_hVJkDl>+!ST8ov6 zY#CR6rFQ}(tlhUxc&}JDnz7BE$Ri%A0ZFmdg&0dY=h@a$>ituhcOn~~&4V!?4<GyvdU3sKFc%{EI>3hO_Rj!31sdvz10jJ4LqwmgzW9#xAh@1Qpbw zu_!AgDzF=~vjmDL?`w=H=Z00yP(*U!Ng?j)PEds>D^x)iZz1bURw_ zum>?_Z#a75frALKgLOV971Fm@P27H>3rkmPj#BFf6?J_g_Vo87TT1=s@VZ-&?f8B^ ztf^8-?m+ICEmgl~R396Czy7Mhnb~|kMpbZZH;=ZE#t7|fB5A?rq}CGH?|7BcW#JU2 zPf{JpbJV<7yO@?Wv=-%+ho?ybJt#?AKL{r%eOW!?i#Z|biYMpLHz$X`Se~y{RoRpzk z2fBwcLmsm5A~=C#PkEN%-x9ma+57Pm?de{w2_>mp7ZAM2wKAZB=)B#4^wKYo$9{UW zSUcM`bPF|Fsl0}BLORA-e!ta|Y4|}LJ^Tf@M-KZ=bZ?rce5}H1!6mB6nmDVk!u1MOtYNSK6PhX#p`hm^_iOsg8^F-~A_VmSKIiJh8?j#loxo;u&i zA2V4Nus`+nJTc;~_;J<#S|z36^}&a$F_ct&DlKb=;7XYctN)JF+nF%&oi~KY&kPZ{PSPN%YZxYlUy zkQtN5oTRI!uvy&o?D+r`H03U@7ivPh#O2gh?eu%y4gWEvqZPLs%}ZBzg|}Y;$0<^2 z>#pFP8%Fo1Yvhq11pP!tJGr`8;8)u;zLJE@d&NOlyJSA`?w4YkwL^1y6;JJHPxK{h z^7YT*d*Wq_cbQDg7X$_qMsi|#5I)Ss%kP+2y67YNU)=WnL_sSRU%ge{L_o@h7~_|8 z_~Ut)Fm7<#P^C}wyHX{TL=p?UgHdW<jAb8VWFs-4*2S~NJpG4AKde4B1Vyn?4T9xRv3JI zi4GClBpIJ4vZ~50K=X-OFWyB01`F4wjV4eUU(NuU7KQaeN$Zatc{V- zD4bE)m=7YC*5Ta4tIRv(Fk-SZd56AZ{9ale+rur>TI;Ket*Cf~+R!(h;&XQRSptk+SKe3z!Bh|l^613>LYUXHSH2|cuKj4?A9#H{e z#($it^2MnUxqJ;9Eji=o`e$U)aUin;-@)a@1qnNd%A1=d&a%oR}Vw0 z^RifC1EAF}lnKu-!=c(E_80@Y?gxg1MnZ6k9r{y<%GS*7G-$4F4ena(yBDlUsalNUWj>zWc5l+``D0r0bda`B35#Z+h#_enNV*qQB#Xtbe1AWnw>TiaXPx~- z%Mdy(uOC`ciXSea+W46U#_`STE5G5r_;RiGKRTN-aFrr>GjR%AU~ss-e^xgr=HoT=7{%Or;C9{E*{(EaFTgJ2(M=1?zM;om(gY#_ik(++iTT)^# z?#|TP#u@GVT}{q(m)u%9o#lIR{4IJa4qfS?4#f7?vnF^@QK&H#K{*~_f@P_h5$Cx{35K*K1G6AMjvU}$D zD?>id3OAVtALky|Fdyx2S*eGTxu4ZU_y?Qr&kE6uHU<7j4>tMT*!^qk<;Rlcv%2MK zcEcBUotGsbky8CLGv0%C9=F=sdN@;nlSr)zg1EohT>SdVlQF6+he|{eryNwbm;41K z4!%j8ZPfrL;Zm&AeJ{I#a~JxK=zT=ZE-Syt39}zR?{Iee2bv{4~0ZAHZ zD1O*=g`?lU^(M!10-t1?WD5{FRa`5f++#T)F87j^kpzuJf%;(X?x0e5R}SfjEHG_v-$5}#;x z_|DnC_&FJ;x!{L0M0 z)H%ZR08gPA*>*ya-R;Y>L%N(rr1Vo?pb+A1NK)-bT&mHuu!wCZY)k^)>{eK?vUxxlYv|GN?QX7+kkJ?mM|if2O9ROAWqDeyrc5TT-itOf{lOB{F( zyK@uxU$9zC9k}5+D(E9YAOhm+-y5LBWO5Mb4n9mv&qWWcEDAxuIn6B*7En$PxFY}! z0*Om`IGRK3pe}S4P-~cj1jANC3j-a@Qi4HO0L%?`l!4m76ug|FnqDee5HCB3h$VxR zB%Qd2D1ZPCbup*&fZIDDMLi@K{=_Q^JYRpz#X$Ebh>M*BgY-2)Iz6x&oeaVmN+-g} z!vW#u=A{!7;WX!gSn}{%vD5K#^YU}?@Bsffctk|Gg+=)V>3&@d06Aw%D^U&E7r%%B ze@QUdxVSiqa&fu4yK}npaUz_pxp+iGM7X$lxp;Xw00<7Gr-O^R2ZsZa@ox;WP$a|| z=I8=LIM7{VG`B#wx=1hpto|hf-0>f@4#;160yM_uVeZJq!^wRu)1QErkbmGDU7hX! zByI`eg4#pjPzM(z0L$|atfLLW1%b3d{5PoodHuf-0CWom|3l+H@&bqdLjvg{=LU%J zOCkRe8mZ;!2<6g%A`!065U89Rz$W9hG>)P&&QNm~gtHa`VgL6`sr}6|9j_oKKiy+p zn1dz49r@(n20&%aU7!*Sz^n;yaPx8S@@Vn!iE?v`^6?n_1qDV}!mK?1Bb1;hKkwgA zfTdWPyO{r<;4C4cRtRUfIUpenZf*_ba&)j}p!-K}qB013gfl=6V2AHd+F-D#q65;! z+yMerl$Brrgye+5EJcNcE%^obpu8Ns0_Nr%Lfrg(92Qmr<{S_{VIDyNZax8C-hal+ zA|S5UQ+Yl9FSE8pKmZ*7qH4(vj1v&B;1CoMhHyZ60c;{dJP;1Rp!qC$ArJvREAzj( zQFVp^E6d#e-?3hEWeH&95#)vPT0(?5MEI;eQmz~ zqO1k=a8Wk*ggPUCt&8X8*1w+YVgII=KVekN;ecM`9BdJuFb8Wo7aJIo&dM1IrE>x1 zTZ&H0#@xY<&J{^#;YsHVwSqc3UqhMGS-2u$4p8JZEDY-K@7n$o>op7i&sZ%19_Tb7 z2xo{55@F@S2`n@QuKz(0T`0gB%-)jD+|d!qPA9EM2N(pf;@Iij5HJXo3+V`jLTrA$ zHFvP2qceAPK{z1b2tY;`#D62m|07m}J%HQB+=b2^;cQ3e4s)@gLpc9=2fPcNjVs*T zfez;20(CZrTzj5Bh2*++KYvXe*MBp$fBFDX1sD=oou0q+q6u~Smxlga_M(3wm0*Be zuVbhs1KnRA!~Vkx_`kBXU*p|vpuk@6pV#+a6s{-D-P{=}eLVyJqwDy$nf>4RMmV@Z zo&SwE!PT*#h{b z8=vB@UgT@sZgOiP{XHz82`4t=$drsS&;9-_JbFAu1qH?%(NVWG6y846P{IG%rKli$ zCAnT(i8|b@@evrPNsV*e_1)`VM@>{NdmgQ$PHLLDE`|OKIzXSgUbFo51cKfA>){#p zf4zgE1b;zf5&re?_x*n!@?VDjGvpUF8>_I3uljoqbtkD8N4H>wxHRY8AFaQ;O-2o? z7Ru;rdLQLf{I)M%LFo0tAZ+z{v94!z?DDPUG+Y@FNZ=-ljshBYZ#sv!8l;9BCV3DW zasNw0eZ8od=q!Nh9hHm3)kL)uq`2;(J{zaq#`#I#1W)giaGf}VutL6c-O>V<=(tFU z4o?g%H|}?`H@6$$MMV6Of`aC_0vt<+KZg%WRWrjlJSYcO$z8i~b;Bs0$iSxigkGcH zZU}>yr62aIQ8bNCQ`5s;tK-V+2Co!_W8M-f7#Ad>v-Vk-;Oja?Z>@(gpPL!rt1E-> zxF;li!{x8%@1_}vs%i2^GI@&Sbg&%d?-5O5kv1H%1^eTyjFA zU|8M$1mWA(AX8~TZNd*L$*xh(0QYf|#V50z_@>b0x5+3LDbzbZFE#0_7Js@2mY8}f zJ!Qgesi1Z>Y@CDV$_D_zLxtD{@^tov{)?!kPLCrtX&fPoln!LI+dFOv4UXG48 z)yp>OGF?zU&eH>h$nCuy8fGHC`Q)>EZu?7@woFUZ4x83+)!s4z^-gy5VY<$NVaF4v z)+qXN*mNo;KmQ#og1}EKMhjyRi)8pVfXFZ_J=rTqu*lR|Es`V%Jhk?2ll_UX&^ ze9pMMdR45#2dXO76;DU4j^7$eo?EOi8$=6ecDrI<@*W{c!3vMVG#UNch8}h5oyNCyiKm3fmEd%y|2fE(-%{VLc9W2LzZHhVstdMax z#GNu<-9Af`>vr7B$cEYNNVwWNZP~H6%E=E`j||js0~VJs@6FzTLg)_#hsjJj-rQ_p zCB4{^s;`g?J^PM_(YXO59($KsoMIj5CaWr!99SK4nxYpL+poibUdivRWBQ23es{F+ zwvU+_W})FSPQLP6|M)m3X2!I=F-K@QM*@Di9VM79o-O)~Vn6oIEPsjw)I>Fj4_7#R zNg0z^?gVx<6>IFPh|XTq?z*YZN&V^dY?M|o=|^=}`PQ)d*pKL+B-Xb6O_C< zpJgMxCTx)Bucru)sJ6QWVp!cDNv`Fn;sQ1+xODsGGPA&O2Fr^Xl)SH421k+Ljp)D# z+6R?|m4wkf%9!{k#W~TtM8&GzWqMRf%1Lf~E6)RoXpA#d>9QDLt?a}c(Eg!e%#=l| z>oClM>E@*7QaEf_<>7th<)S8P?7jQ;=EYq+ZtcOwJgo5=>#b96s)jj4Ul$69?O1g6 zMyPROUK~-YmmNU!2K@|`5rZ2{ZWJERl-5NPheHdS)RQX6h0Uv%3k>Zv-D={HW^Vs z7Fc6R!lZ|H=u|uOEmBb?#JD=QR|#uT_>@;dA$ZJIv zEROO!l*vYm5|Mc#qY31^LW!|drt zQhB*xp&`p$A6Qq(jaYh^;8|uk{i#(5Sq1;JJQYvvdz|P;N4N_k%+}x-nOP2|@eEXJ zKmzq|HE|2Y>W+*2J1TaOtDzjPav)lmpszNs3G}SaXsUKu9@_Y??_{|0S-C8p|K4>A z#zr};BLXA#BMmc~KN=bjnB9DatxXg)>aFz{^ULaUCt+G8ciHT4j&EzX`bf$QKNM5i zU45{{?2@sw|K3_V3!Ep?((e=!@AVq}8hzuS4fFcQjpS5(KOZTLrBKA4Hz}1@ai>4w zPp?RtGTnVF6>}n{F}zkyNDogmT=`VE%LBjEJS0DF96EKwkWOAK?{Pb|p4Q*@d89BX z?SBt;p=g*PdWms-gdx3KS?LmA`Hs{ucm!c8`hJFHc!{>;$CivUTJBBn_r_!zYK{1v zS6}#Hl~gk0ceDBs=vj()kuQ}W4=&|;8y!rQWTf?lk_Dm#UZH=!<+!Nk7%sbVF3Qxi zc#$p+8~!m~eqrQ>S>h^;V}d(}#S7;1`coR~*C`k}rbz{p@MT3D#=>?URKDGdA==tw z{jHcr%OwiS@^rJ!UFZ!OhChcc&;qP6$G4`#+dI&G7-#E4%wD}qldK=)N&mF!hwn4Q zPuIoC9d*oHZbNKO?u%@*SLO>`x!n!*e`<0|F-g)wak;cbbrN;Wa0j`|c)IbTjH$s<4dqDw$pQRU`PcU%;pJ~p<; zcKgM9e4Z287}Ue$Okt$sdVFG@AfCT=YnMs8)Y6qpGw-A!#OUZ^SblV2pAF`zj5|^D z5F730y+I!kQb*^vlHrg8F!vLm{0E2`KlhBJGVWM9a1vwc!Z^ zhx2(w>sbJ=d*qTtMh0nC-y;_1c$3AfK9mFBvX%V3{4Mmy9)yNmE`(lB-yL_|PwakQT#emQLPCa_9H?uswW_VQC&4V1h`!}aU; zr*&!XV04Hroo_aaJx1C_;+T%zp$g~J5J+$TVRlka(n)9$vR{$Qu44!3XMZt$OH7tE zbmMs*^>IlT3%`&X^TG#{BKdV{+q)>PplI!=686Tv?0yM0fj&8G06-5SK6R8f?CmR+ zV$~b0vQ@BO3H$Nc?`$0hGYZ03$*yZ*Y&m#4`j)ilr&FmhDG}FGbV1d;x-gq7NrTSO$VCX!swKH(`{+Uf%m%5$E}O$vlj+H`ar*2 zhR6jyNY9QBoduaWrHQ%M^G#n($I2{x{nB8&H*vl{4F7#*)J3woq=+DiPrc?y{Hoc~ zI20>#0s=k0=h3G0c}6}vaC=>7`)0$fr7547m5vonRh6vd-H}q4k@ZT*+UN(?R1ijo z8CLoIIo##dh(h3W{JN+E;n8uHL)rroF0seCHP?$Ke~?WR61Rrw<5&vW)+v*Cuz-8Go+~Fq+4#+ zXWs$Eah;BBo&%L!H)8RF&Tabh;nF6SM$;dohV`pw6V0A`GHIgjHFR*FVv}2s0@ue8 zNop3lU7MAbKim?ujg6g*j{Rv(5l$f!ucfsnW2$(u_D5n9VH+SoeH zul|Z(Bq>24cJlL%FAv0FYpWw)BE(+grXlAEjl<7+8y2miswueQ)BLA%A|l|FLe-ro z6wZy`0e!CbWcn=K0hfduGgfPcW9u9(blYpAGA^;!o$P?RG#QJ?^Dm zKHhxHxzxGedEK(O^A8;AqkC(%`@xn#*5>RjY~Z9}4+On-+zAKKD&0;S#Uoka%Ub6ddb9n&~{l%Dr0ILb8Of@>C^_x@)6s z?<>0BejR;M;GoVo6^#*V4eHL0i8oNYX+5;V=L~mccS{acuLO$3(uEc z8+MAy)BOjUyG4A~da}+88xQK*DO%l$a3)2DrN|l!=;@1RbXp6atR$J48Y&o;LD5O^ ziC@XS)E+B^&s%>rq`NSVYAo9%TNq|!n4i)zzC#&6EV;s7=%8;oO^VCE!HmpVIdI`GoE$$vs|1 zBj4gj86dG%AFd(Z;n)Ff%o{}0qy+D4Djc^ zE*2=h^(=6Ud8n3GJm%=$`#i5`Vnf8kuE@QZubaJ!oJ)L2a`KQY;$zjWjlzgdIfG~J z@k^r7dJSy*_N*epAp(VusfKfW{diUF6fuRpMCnW)EXIB+NMi@GCesrX5^dFnuuZJ* z3!c0q`aJB6tr99#F|bwFR!*|&$aub=eMOW>DZf@0COt)zh;CnLUQnJ1y&5s^0D->U zxXv@EC#y#S)Hx{mw{h0W(uBPy69q;(YrqMEsabtBTNX0yWk7VC=*Hy0*vAAvmG=G6 zC`Bg9HCJ&@o#k$(LL$zRZ`}YBTpGJ9#r#<;)b}|pY;K>={Xx&?c(;wOVQX4o)$F&5 zNh@KRzWFLFYlNI$8r3R6(H*8<$OwUc=4h8UTN)$+NI!-fwXz$^6?UcStjLj!rx+HL zn0=RN8If&bW#kCifD^L2b~xE^&!Bh@V4QHxsy8oL$(7S|lZ=1mAh^iy_=ka!Yn9z$|#Rge9{dGs#q0Dv$%hj^--yAz{g;h>(wCjUbR3 zE&I=zQfCH%-CJ9cBsJR+lWbfLyC0kHV5}+%L_fdqen=sQWoPJG5(wtM9at)jWf!@f zqTJydiqWsH-Ob{7tRbV2BzG-qzCzL#<89cjSEJ7t$29ut=;!%^^jps578~I!JQ9=d z(I-ij=fytduHn5;P!G1%ar|t2JTWX2OQK|S^wINOgSl_xB4IsBSoY;*ARv5@y>RRt zz^3o1XvmJ#KY1x+=9tg(IN@RJ&&ytBjR2o_1$sKYd(qX(DZSdE-HJ&q^g^S;mpzdw zngQq=&yW_~A6vBOJ+akp#o2@TGv_a=vfyw&;}zY$7jI@2smkxH&GM{a3otGWxuPep zrBS6*hcMN&oFBL8%R#(76mrqGGWOe+I)lby(LaT0tTXdW-x_6smvnPm7rn(`dyud! zo)mYGc@vC?!bhAO^H7{h7C{j8q6c6Njg$GnRjZi=>9!%TYFT2S2SniV?_@q62-+6E z!5lwdVmj>;A(hwh<4Ar0)btXG8Kt%_@w8s}-j9gGt8J-Q2z%xlfY-Zr-_ zHadrjm4THU{>7S0-2(N)(&4cxcArK_k~JP5zn(3O;pd}wh#S!eUYYbl2KcEGX`mkl zOf62;_8iMkox8dXj_rR?ITh1}KaT{5^Z{#+$K6UzaJn&nj1VIB`$?GoQ-!pY`NoSNFz*LvSWEPZ_dr zjjh}2STR0VX5FY#D5G6gBjHdi$&B`84ikt-yH=zDkzKAz@f*Q#k-e}+xq-TL_qhIQ zCCN!i%KOQK-idqxe)pT-zDN^|zY~mcxV1B&-QcZd#c18k+8V%4ugL^^wA{8f~o*kuyBL>Npq%|E`=tAT=#eQ zGm30uaK;rg1be-4$OT*+ql8^VJct7&i$y(dD%sx^<@t>c4jRnR`@Y=&+l#njD!!bj zm}>L>nAW%4JL=tb6eY6{s`?X_~w=$0p_>s>hd#h3n2K2&3Z|2xw{MCKzH$A2FqOQRVJy`5MT(DxCr@>;p>8UAW4ylVUs0cpOxWpcNVWroab3j&9u{Li zedhk^m*h+eKmY|?;NTCezMt+Y8hCVWXe(A+hOl@?J)7u05)TvngV&u1<9UonK#QdKz`1pCre3{g)@%9$NjF*?g>sUHU#q z`BzQ-m0%lW=28bWm3WIt{L^#u4!`5xiqz_vbBcf7HyR?I^hQ;)>pPDrnHZ&WUmQ*& z&zAb23X?@?S9kvglkI%>1ME7rjP0c5lELQqZrT1S#bXKGn-Y^-h~Zos%mp$z9;$VzR1FzzB2jeeWZz}+@qlV_0xk3uXW>M z1wOyyKwjOkc?z~ag~a|I35dt+Za3}TmQ+Xr!yc7zviI^4v+y@6rfdHRq80gQ?4pbb zMhT>}eTwKV)MdjoCLx}(_kKh8Q2+HFP`|n->J{zP4$($%0s}83eA_DeC+Dui6 zY;jo9)zxLgQ_qgngCBEtnZYf1SsZ^hD{z7CM0632@RhiA)z<_O3E_qPVQ!+=-8Us2 z8j43H%YX=&{gF_~2xY1CdoVpRK&uG=4D7tsM4g(o6psZUaH7$Hk+wBAKckia~*^3;sObicM(Qx1h4 z+rB(3V8RopT>(#S*FQ}J|b5+ZMH&2xjMY4?3RD_o1Pb3-=9 z>qweKCP+A>2L4^oueo&4cKCe55(m@aCuyFC6TMy@LwGj|vlnRT;^QT4dg_PsG=e;2=|e>8ZtiUhl$Kb5`q7J- zlRZ?bfx_ggRCx^whSI5zQ*JJ5Ec;+(P;}blYy1o^k!Z>orz}HoPzbJC$#=eajTnoxOg4e zmGvD9kyYkJ4I7M)$p_;{NlCk4$)B)d85*av4JbLS+{}wPk2j+2`tglyRFM`Yyv1tf zBi#be^vI`Jw4StplSx0doKONfl_cLTxL~7)8|oH6W$gHJbtHvPCb2%AIr$p>L7$%Z z(=zL2DFoRyCyW$K;`2%lG=EYKy@;iV0N=}I+Up}t-q2d2tb?Q{=(D6U<MLJk{J5coMr2=Kr=LBYODR;D| z>l@3$4T4!pa4KlQ3Bo&*cqTi+t9mDGR^-XGuqle^Tbh=tufA|3KZyzX5FhS*NRW-- z%@;4lu5kr&{@B-Wo}=z?7wPGF#n>|XxI5m`vEU1#q1kPmTUg$zx5j}gNT;5&jMJCV zx>}ny@-ydL7u1yY{ur_30_w;YY+4#sVYk}GSvp8TuM#be8>T0;hpZPuSRejwc6wCG zVKg@g@v6pyA+6j`lfrQ(*#(I$>yo1q$TcU`;DfW5o=-S0CNSj;SSiX5#Q2($%j9G9%WX(6WvQ(uxPntA(BI!^l{!^fc z9{6yq14uOqCumvrN_>CuE{pGArVh zc&bCnaX_C&^>}P8nX`(Ki`|!JO$@q2N7R=&pWBQ5R?@BPx+>Dw>}NcQhAktC@lf}y zZ<;|`homUhueg2>Np@Q&p@WMT9`yNp-K1Rm6xF(z(Az}RVX2JcF~cd(7-#g82r~*4 zm&YVVgH$RjgZ~&KX657%h8rp*6?Hoi;RtryG$(ZZpkkF*yOgCQrIaow#$vD!AkPgb z^|iWN$z*g}848?IILCQm7@ZRjv|&1L0hEd^Ua-6d@YfVyroHU7`>RPZUo28;%54?f zJ{L07$FP*{5{blA3CHl%V~c#dKO zW7l0H%aOSi4|En8%Nr9y(TZV$xN*2OW#p(5)kupG7qn7On#~sr#>YDm9|lPYU=a1d zEb#Ed(7cGX^5_47uN!-Q{&w1pa3HazB=B8T^=CKgo|AMJH0RSPBS|~b_?aIo#JugD zx|i|DXn>dW;r^ajA)a*1vhrQn9vMMdWsz6go4cHyw@q6QoP&5!Qo4(xs&O0*S5BnG zyw}!1wQS%p6uS01r+5e-!^T$~?rxL%4*ugE9c#%}`In7w{Q*3;?3W9^wfc859W$M`1}+m!e0 zWH23qpJxz{lOzH!@mP8Gg7$BJ;s5M87Jzr_mE47 z^X$Ue7jJqkFHsbACYgbiIad*>sNC|+M#+`n-o2AMsHZ=oc0XtJNj;SBN6hM zBv11VI&N6l6GI3<&!$Kf(gG{7Hw#-czj2{8ZI}7CECwx#(vObvMe^WFt7t*U)Cosg^H>QuV%|;kt+vv45lkG)&a*kM zky=mcYvre+yO@^PXHrm+pddVXWj4Km6kAcoc2AxD`6$7K&BG}V6ysyk>&;~19i4f; z!LHe@)y+f7zQ+Z_Lw+(Oe@j_)Yd*X_L)Oj@4qK zVoB9EdL##u>4cp+NY%#ac0(Bv=`}@*U!OH*C3{iNDxUE zg{GUk<<#!I@z9>`g=(wrSStrn8&$^r5z=`Ly6)~YoWNi+f%yDRACALY3U-9iSvg0w zV-(O5D)<(Gn-URvSNBtOz3q)>P-LrNgpm}|O1p6*U+Ut+F4b{;U^N1(#asBJv*lJ6 zq0L>`yrErU!KPoB=X%d?FB2Y_Pb|E{0lI$z@#w180E(&v_ntoOoob+WP1am!J9Zg3 zGlN~=_$?b|jT!CrqpQQl&7-(c0(j4`wyQuK{736oVpYA1?JvgQ?THF|{XHQv{+t`z z_i!G^6fslJ=caYA#_yQ4_xdJ2lW1~jFmxZsHJBz&xB=p}z>uVQTVb*~qN~ekC5e9p z+jNwX$^O&tKiuPgQ{GpXE?}aQ4%F;{i@#5!S6#mMeCUA0LG!B~iE+ik5L>BDT*qra z&}eNMzA9~=Yc;rPU#DRzz-Kld%2U5cdSK9G>vN(v$;GzC@*}cA6`VwvDd{l>nK>&T{CL-0g@t*g@C>5ker}Okr+pWUM~w}SbE-EH#wMQdK% zAo=ya;SSSCPI01BQPmn}h6`=gjTFK|M0w&(k_^+xCixT}4CLwnoS_di&}NPoVmu=c zJsdiTEMP!_Zj9O5d?d9ZaJoNi5Lzfe4f}#O1)la|p3t@@DvU=9{8(yEj2862d^(y-sxJ7vF}Kxt_ja&vZ|!x=d<6ME~6TbeDo=`sImxwpJHvrr1IKB zaw9r8oY-c_8JGZ|YO&KE;6q4DTO~K6yfI}sGdy>$n`E{lsCm;XnM;sGn3YI*WkiW{ zch7(0tW*a7G3q;Mz2)~>GdguE9d-^pmYRbhTK3##7>}FKL#eMHf7@M*?6)=E7RR}2 zyCMII|NfH+FN=cOgX7x*EwaJ)c6ib?hWF|3@3UF=Kd|+kwU-Os2T#`VgB`rH0%~Iu zxc7^O-7gP{%4rn$i!w!|3tHWSI~{oDdf?Pe+51GAJ9foA40!pzwK$eOJK|Y!-F|iY z)AYk=ZN5XZM@oyD#1hIY(z(s$nJ=i=)G?1gFzwQjbi$G=mDXAKIa-YDpMF6(k8UJ$ z<3!|17iKKFypK3wWy5#!a(Ti!crL_pZmqm*~-0j&H1xi9W4QU#KtasuE82^*= z;$AW`@J)r{uKlv-#OQLf7s!T}N`#!>%!CoPHXPtfA zNXKT!C>bg$V#PUF39;9@Kf3zqCN5ry?^j_GL_xtL@3OFLd?H&of9(N3 zIOHT5&{3WG92Yf5Rl=Zhn*NfbO2WV?`Cz=__(Ea8HfBTF*zYJCK?G)x6n*#}-*r7veK@Qq zGxix0=ag%Ju-=sFC?VS#^4*}q;;rIVjN?~^i;t-cJ1*HSPy7lyMt}F6pu&l8)i0+X z*3zy#GBZ~qv6GmI`?^`vm{pvhJ~t-SGPh3atYDafClFoT`-7@TAau3t(Ppi(rm89q zNnDe!%6*m46H^v@7_$r`^81D)`DK5N>hXGe-;2oKs675?Q{t*STjYYvV3zKIJhOrB z?$GhQX$M(TQ6<)9CnsKhD-tGJ$xwXW;@OdP`yAwl>Q97Ee-Ab4KmwEJLuskmTwAJ-e6?eC=bxno|6`Vynp#5 z-1ZZ+I;xsi=2mM&*ide&@74)xYxk`a-YeFPW^A)3@`#6OKvHaVA;wb9dA7BbdjC}Boyf*#^I*)!gUJnktGn{F zlBaJ6YA9h4Z?a@MYA^=`|6PSLG^WjYR&u?s9eK?QYaEXqoW z3hc)0EP*1*`x;})xnY%di79A2j(LHHte?8|p9&n>C!(R8VXOIX>j=)4+XTM$^*pSU z%qs4Uf)y0Rt+$Rc!^_{F#n}qO=Bu33(D#!U)lK^oGO&h>r7yH4lhCBsmegGifpn%z z9Bv>8eWs*S21>zVv>CE|C1*bv$&yuj?Z_Lp# z8;+iM;2=WmV4crNh4d{}6Stq}!qU~6qtyCAMO~kWJ^lU2mQw#YyzUlcJHDR}YpPU| zJCHkOOV#fg)yGEPufJ+=W;UOXQ5789&7&=(F+w|=NLuhYskH?5J6@%9SvZC1lT=6Y z95wG%FV~g^$V?#$$3u;oi^&MWT=Bu%^wSI<$C@XL8`X!MsZUz{1U9CAOj%2Mb069V zpn2qZb_FBKV{l|QC?4W!`zjcsu2=A%UR+!G2eqzg7;!Am%frQ?j%dMo25&W$Q%tQm z1$)2|YRPt^+d5|SbH&+j?pr}7wNW;M^*@Jk)~x%DgdiPnLb(hi7n)OaiNpttZ_7Hp ztAQKVI832o`)h|BhHvP@#m?qq_mBgUO8&%nh6l5OH*=hh8l7jJm|nb$VtK$v2^_+0 z;QNkN>=8LEx;Ol>Cz!Bl>zxoQ(Ns3W(sz$raTRW>TBlnP@X3YTpJOI6CuQi?f$pKq zkcTY12u|SGQ=Vn`x5Vyp_I~_Cd%BlvLP_e@1q3g0tqiCjI&U{1z4Qy@v7a6-*3PyK z-9n94DzD+3kdASd-*5F~8h#K*4}Ssfk;A?d-J9kqAFHrhaEWTNCeG@saQ%i?H+(z5 zI1nqXjf>H-`pU085+<5)VyC8}qm?_ar_ML>$4r(5 z>`#3?PmH)Leq6P`R!J#%eemIG3?)^cO3T_IxKbv=>c1oPb|y@G=M5op`BWrQazpFX zd5$^F*je>zljeM-?a-WF#Z!CQ6MYGreEoCy zo_N{fT_zLr1%bhYk(^i_gb#D^@;fG$F8YZ67q@*sQP4`oS8tU!5sisY?|f1@5g;Lo1`BFAcz%6?%CZl@`uTr1kcMJZIx8RNuPk)%zCx z^8v~8KFp1yBENZ)`2(K@*LXCc>Rbwt()joTaDb&<$IDr#H5;@j2 zkkZV+-I)-Ae(M0?qZ*+Iz_6#z63?b2fJ6g+K1& zfJ=p$i%2AozxbZnQd+?B>j@4OD;?;1=4~A%aA3KO^IdlT<2%f(Y^-Vf9cR(S%kELP z!&rOEH3>F{l~dcIvt$+nsBORTPb{awNcC@}1TDI*nmL+S4FKuv5BTM&M^u2A@gHZZ zd~s?-E?>h&c~xlIgOrJN`gjGeC!qv7^?CiY_-PK<`zVFRp6*)zo^dbt)x*&0yeyX3 z0BH3KWy15zaH#f(J;s2p`+*^$kr13>hyE0zvNdx%4VtT4gS!@cZ&&C`ghXPCK9B9U z0$kd=Rt-R3CWz*Ov|maYn|dX1tbcseaxm$wYT;de8>sKBHxY(<;)hG9Hh!joaeVXo%5QitzFe#QkItqHT%`!!Oq{|N7@Y6>RrNfL$dx$Yy*QH{ zcjSmAy?21J4R2|Ne_Hcd$!uVy|K3{4mND(cQA&f_(MIdc;5?gr>3|(DjPHG>XEA9RfXezd`TDa1) zX{YFaIP7q~(5ZTHqDr+dxH(TdU-9_$Lfy&F+=l#xued;2wDZ8g@yrxQb^1{1x?A*C z@vjC~1IKvisMA$haiK0^rUGg+km<6mf2F%VyrF#2G3L%0MAYcMOn~W>?4J4k%8<{q z!cFGE$GOKf%t!lMR_dW-?q@X-{=ugEvqChZO@TksgH3)ncK_OX`LSgAtZuoQ-SEX- z=Vb{6{OIh_azcMp0b&fDS zz*A^Oww+L9cl+|}kS=EtDgD$JXao+n#3uPU0tH}2(|#aRzIWAWZSfE}F)Q81*idu7 z(b@F0L2Q4cZdoUcqJ2W8{+#zTfBw>Z>LkyxhVHkPpM?)RcPYSzM7_3q|)hs_NK2l5&693T$%+XOL}4KCgpx(v zGY!$%lAQQBttcS2m^_ejLNkW1LHwu@{LxV{wOh+VvvUH{ME!t<(}^OP>@Iy&pju29 zrwnAAP_gTIDeV1hy(Uvk7?{fRvkW=Y2Bx1NGK~WYW0c%dD4G>w){~?=z!5S!(!yzJ z)S_V^n+;~Cv4~u~DrX><<>woe>I1B*AjTD=A#o&!k@phS%_?UA+n1M41h#*6YPblP z6Lu^xQW>pvYQ?mH87w_9nmv#cS2S~!)%fou;o?WfMO8C#%pUC>V26fclr8g+Evp<5 zBD-LwJMcD=&y*!63Cxq7HY&SDeL&HY&jxd2n7%w(mOdDy4}6mRN-O3aV1pmVL|e!M z1k{r<##7N!%+kxF*n%0cKn`{oIeCXbQ%2agE=rL1DVv1F4@YU8M9d#3V6g=m!3o^H zv(Ua^`B95$#MzTA7Qihw5l5pD3vXiy%>nkr>DT~OvkF95j4~2gGyC!a*rkHR+uI`; z?J-GC*>!-)oZBf)iEIwWD4Ufmy((^;gG%SrvBCT}StmcXy6&HInLEN|-bB+74Xg6T zviAG{mRS`&flG)pgmam9JKqZVF&7?As!(SrL|;&&6BJ+GoVE|H+S5g`Oa6>+B8eU`|xESUkx~(1ccWw^VU3yiwV#XjI-A z0B#!Y3>Oz9!1N*I{efylcSLu%BZTRHlcEee@K9AuXtUB8fsXiqqC3(V2^+{@Kg@~_ z%NbZWA(|p#$1$3;fkh{X>pnF}V>=2VJ1iELjOGFMo7vF;Vd7G;L|n`sEQ}2uST>qY zx}%&?s7ux}doFu8I68`m%f-@x6(>}(%;5FY*!kJBS+^malyRR2>ak*sQ{_|*tQ@@3bE$jRAQ|&-kBgqv+w67ko7EfUP+1;GI8cW-MHp|ynaQrxWO4WX??sH z2AbJA%4hs{VEqX}?tx_aqvL?PZ6vWo^X!kge*#CCZv@38W70CSg3VD08%NW3cVeKz zF_Ov^ik2qaP(tFsrm^{?39~$zrxRzAxOt#{)QH{5&Ln5Dv2auvXEHa}7BJVH16#+p z?M!ajfxMR(dlgMY-1bx9gi>BZ6nnt43H;w3zFU!@aI}un%2d$$?i7b@v@e>RDeU6Q z@k;qzi6LTx*a*UiqiniUovHtXeX7hpPiAkP$bOSTRCK58OW8B>yPND*bgDKfb`wLB zdsmU3^jtwvC8c@yaW#Dzn)DUy2Q}JSJKC)Fc9WI9ilci07&PM;^g|rwQ@f#cB^5wd z)N)%}yQ$GJvv!@?+R@PAaM-K{oKle2uagqYG^edCz58DskOsw&`KIpYpZRKq&7Ehx6zM)hNQMx z_jF2Xt8JG_3b1dtw6&ROmlmYyX*3rfC!8tp=KO|{_XK5(@6w=@G`lULV>?|1I9QB3iem4bkwrORe@m|6`)(n7~tRP+ z!mu%eEE_Qfw*!3*WmVUhcA4qB&;%l=^{MnSK)#aihN32}lma-el(gH;mgemadYNrm zkjC~eNDJp4fX3$vx}s%oE?7R7z5@e>08UQ|X|z$RnHs4{v~<|%pAZ*WNJ3My5j@OB zxuIznTfH!ALA=QhinQn1?K2uoR#-P<&Yb+2?bc?{q`Jw{YL+zHO;&LhTEWt0YBo#S z#tv$?(JKM$o%zY+L#AG|o*ZYJ7j5n7g21W5X;)Emzn7~$zpw1UY*5map-G6_QvgYTa#mEqpeNf1PdBF><(y}+S~P_d6&7> z*4_rzmDCOBbt>6$|BQQ7sDM3-U$j_H)zG3E1OX@#I+%Vx#lndOBGUbfa#QcZnNeX& z{e^dU3-9n1uHnKOidg;Pu4%LfR!D)nFno-=OjHW0Xm?m_R*W-A)ogZ9tOnVQ#pzQ+ zZB`@1o!Qt3+5#m7@(xJaAqCc$+fCHuuu)d9+K1uvkSY za7AaMne&h|?bKp*7}971$8R%Pti~p4f)Hwi0cyt4U|BRiEa^Z!D5%^E6{)RVwC%PU zdF)79j%t_Kf~AQ;f%Y+xYL_kz4|9Ou8!0%wyqG<{^x&dk*+Ry4lViISG}5uOHA}jY zcB`qu+)4#dqZDMZHrb4Pz>db=#%_EX_0T0X{Kx7`a+OyC-3LnUBgJuvF3TZHU(mVO zoZjGJA<8erdxiKu(zkQ4>ZHRX#QTI&KAhndGWtsTO&%e`C**$?m&gpO=Jj0HDiV`> zL*XYdia{bh?TwC z^FpvpvZwD3pD@EO%<>AePNtuZcxTr8g>M#m>b7`C!jWomuBEUGFVj zf39=`C?Ro$(zChgYq`QbAv%|Zy14Qm7J*8;BDrGg; zZzI~TM)}!@N?`dCpRm*~tndme&Q^J9*Za0^^KWhNZf)>bY#w2SPiQ}%oOZPQNO}Ll zlhOY9mEQT4p6ZRB(sgG>?$#6ISy%y;sop?E|4bf*$1l{}LrN{iyYbwSUXWLjQs??}9QZ~ zxJvYUxJq_<>v#I=cX{h~ovZKs00xDglwl#oFK~wGgAu1@y;S&o;pryMcO9R~^a`2% zi#;WE9wE~wYyk5nr5-gLG4!oDmzdWZHY~)+5e$)Da5Ca_;n`*$#&vvRx>uOqPX^OH z!gQZdc$=Y$ad*kEC8LN7Gyfm5&CHWpKC=YKLPBdf)Y6wYIPEm?tlsPqw?pih z$qI}e`~kO&Td9Ox$Joj|HoP(;c*9`g*%ptG?h`h-wW|)1p6h}lF3BI8<&Dkq7?z)l zE$t1yuG9sVk@Jv@QjVnbuk|Gq^{zRelybD_NKxOK!IraezND(&vf=cc-ZGyqbyyeg z*QI!MDScJ_C6Jf0Jh~L0Ztd9cqpjz1%l=EZ?z^vRl#19T-`=cMD#8=KR%nrjt|!71 zoj({csPaS>`gC(J1I8bT@5}bg7Kbyl2j|^Xk;H|)Yd+P*9;`S}(FZYqlAIQLD}1`u z!}8dpW#_Wj_;qW&y0w459)eVF+4XP;T-4}xM5wP6l%(y5ReTj2*jlXmDy<}NNetdqFEd*Ch@?Rl-Au)v}kw3xoX=@*8^GymU@>D|CWN0u>2Y;jp!IzNr39i zVQDnA9#_)OkXag*m{8}2?y)ygTWc%SC2hb8re*fbUh`huZOe?VS?vBgJ?pHEB)?(z z)gBHHMR}(o(J*XB!-o*KR}w;@cIlA!oFXhPV!i4-F7mA{j6>(x!e7#x|1qm zV@;cloA(DO% z5QWP^FEX?tz~YMj9Kn4E?q`>_?I7paI@7h8O)ww{SnU|$!T@%~3W7d>04p6k+DN~D zv|3|J#6{!+JJxVd_CtUI2IlL7I;^7FnP-i^F#z0^Yyr9t0umi_R(W^nZZ26xIr*qty=eD_o=S z_9U>3JzJECO7~rRt}4k8vpUz3GWQG4Tmr;D@7_$RpIWw08Tm9-Ens|`8~7Wy@E8mpTGM#CFsO@ zZ>RPQE_j(;y*GKyd)Ry&Y2kyn6lk*VusfhKZl*8c%xee&ak`50!|p2xUIj2}g+(|e zu_sxcg5JI5gypyW!z1vT6zviRYA1lwV=%Z3N?z z$6_}D!4^c>h+sW}Is|-611bvY!OUHiqUa|BUsIBYLm3o z+-3u27uc+)rl(xQ`2cy!P6Hqe_@*W0?j|tUuBT>@VD|J=3&|~Z>8YvY8+X9d`!wWR zcJJ{OFamO?_rYPbiSDrQygV27n<# z)-oqFzS%gO=c*V}5>3RhBm~I_5)kMSa8FOiRtka(z}X!@%_4`{FMdZu_#uD~MusGs!E~pl_k<#yFa+TUA`nC( zSc$T%1|S73v)NkBCTpFEa_^Udmv1*W?vS6TXf5KcK!De58i#A~*+bHEs|@%v#P&B}d&4o~c%mYwQoNrU!F9%|kLpEbO%@!CYm};OYfz;cG{Vu`da2 zX1g7(?{>;D0b5}Rmm}bxhIh|+3S`Fe63 z3M+-e%Y(7a)CunkJ0L|?|dLDyD){Q z+0Wmap~VM}E(7a(JC6C@iUjBS{H>{ad>5n}IO}$JNwb^9E+KuSWeBG2Ecfk&v;Pmw zgV&(iu#6J%!D9)GQRFG98XQ);23p(n@J~M1y4d4yCzE&FC*R&jGP)3TFVYxMJuaJ+ zKew?>@1~OT?#_4bAvyCwgXIuBow%$Km0u0`bSAVUov8^_Wo$HA8{x@eJIi{1YNQAg zlc?=w#`mX@%kF#McLtKJO!d*;1msBDIAKE9LC2tylr!_`66X4-l6=R$_-Ju3M$(nT zh&Z1WNHfAOW0O~g7+&-Svr4PO=oM(!Ldhr}#O$n8J-r&YrjZ|@u)3ra@%eIm2ITK} zR0);r$IIi?h)bkk3mma@>M}Jj3Ww$ReCP1bEA!4PJ6q+OSHa)JXdSNJz`nWA1gp1xlC11fPFPLu zV6T3X)zgSbB7ky(o@<U4%2kXb~X}@Kl#n;N-Le32^99WaQJ5&`TV-eLFRQeg2bGe)WeAj$&rXz}1JQN? zfM;zR747se4!p}A``nOtA2hq7#;bEI^>{r|>Avv!OC$voc{%Xo8D;~n8&BE;?D;Fn z$(=}H!X06P$F;BxEW8D2Gdx&JOj$h=1BA z#rQ)%rn#S8{VI((+`6lOBFUF<|K+km%CWs2<=`ht3yZlnhgjI!Ybm75ZMil_sm0CG z&)L)08{q&KZY)Xsr+GDvnQlyr;`v1ml#zU-XOG>;Cil8uyP;Lb9z}9}2%bRj0)TRQ zhF$t=<&rmXz=NO_rQ)YQKidBYW{8vx`0E!=#dz%GYmf}tTZ`!!%mYO$lOeY9rH#dSz-B=kpi zbc}`EN+Qp=4Y&3aaV)(-hUKn>_JQ`;_!yH^q;?DePsnmom+|;Q{B*{1JJ0Bt&`0I0aJ`G1)>NF;z23W9P z@o7|?YvIESdzTM~MY2WT2f1heZ#XgXG^wV;Xc(+w>3Iaa`cli0#tXxXI656T*?}PE zE+13z$UI@3`Hw2wH`$XvytRPyP|;~XLkfed7Nl)zhR+lD^@4r{qhrS!v?qm;;gMq` zjd&k`WIM9 z;r&QK|BB!U0%Y42Q3K_)9-bidtNCf7&!XSqq!+;P5l8sDs~~_R=EVSYgO;k0Qv`xY z1b+c4QUtHs?Z$RER~tH-n#`2yTwMX=V-n-46No+yH!hc`7zC15#;52>u%TSnBLZ2a z)M{Lx2;?U{Iz)~~uo*@9ErRiq8ucx|1{5F)r;Ifj&y92{wz3hd!DYGFdIMLCo0l6B zqf!cJH$in+FqcaPUs<-}R||{lVjxKm=5hKeF8|6E97NJeQ7S3S0w4UwZ!RKt2%3cq zN)dMjf|ZCFBHvTsW1^$6!$Hp?ir}&akwo&M>p&1mCDKrT5Lv0|c^9X6`OYQ#97){H zUf<$|#*9N>!DZj$*arX%VX`K$!l9gECeq<#$FCHe0eZF+%9Aeo;Bwgsxe9NiJ+OEK z(3gT6dA(%Bb@U6QJz>MH!Eh3-=MEJ=9tm6nV{RU)8Tu@oB&*2FE+`VFXyZ`Q$6SVJ zqEAM-MEikTD=6FzFlSDl-II0{5o(m%WUQ%FknXSn@80+7gj z(AR`+5p;RVLFeFk2ONqk5br(XS4T+)AA%_yW&Fb@z3GZeC8>#Am1qPyh=9K&tUz6r zyDCyi;#_`0q96Xq>ZsX?2Lc|iMks&zpDb({I+{ujkQIMGk}m)z9G+iddz{-z=)!0N zvf^(370&YmbaL`9ceUwBCZR(Q=}90VU%GyoPNr%*;e4{sVMj7&yKbeEV`RVU$tmPm z9R8gKeGzCv%Hy`@Ij+LBErTo}KXvtG5GfvU@GRu>_%}AR99LDi9?B#e$N|@vndIs; z{<6atbBr5^@i=M$8emV^kjbv^r;-$Ma42yaiBLwXaidE4Q7A-if9zV4MPlSTU4ct) zAZe~WStOG5x$e&**~Od-qEgN!1zWsIOvDy{SW3dy!?>dnW%Z)OMXu{vq=Gy=wA4Tr z5b~YNnN9TMN!Pz+lMG=*jz7B2W|Ov_8AzZF0Y%_MphdtR>3)gSevRNI9D5DHdk89V zYy*N#2y$?Y2Z#<;aSOZrh?|97ejQtkEgoiFIJ*tIdkMT1&>h&sQkn8%7Ry$;AAtoC z^$6A?lVdnGfB?%4%8wxf&Ys5ZiwL-nW5%HvMY0XK`M7&Mid61IzzvoRYXj&vi1?kW zIG0dig-TOKzAo1eJ(o*Xkwh;Ne;eod*~Rna5ghxqD`qCKlIgCW&Lr=XFjs9JX^2}9 UOYR^KDqWgGn!hS|hhMb*AGY0Ixc~qF delta 9560 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 M{Z7R@{6DY%2jXf?F#rGn diff --git a/utils/text_to_mic.py b/utils/text_to_mic.py index 3de1839..238d53e 100644 --- a/utils/text_to_mic.py +++ b/utils/text_to_mic.py @@ -34,8 +34,8 @@ class TextToMic(tk.Tk): super().__init__() self.title("Scorchsoft Text to Mic") - self.default_geometry = "590x790" - self.untoggled_geometry ="590x510" + self.default_geometry = "590x890" + self.untoggled_geometry ="590x610" self.geometry(self.default_geometry) self.available_models = ["gpt-4o-mini", "gpt-4o", "gpt-4-turbo"] @@ -117,7 +117,7 @@ class TextToMic(tk.Tk): instruction_window.title("App Version") instruction_window.geometry("300x150") # Width x Height - instructions = """Version 1.2.0\n\n App by Scorchsoft.com""" + instructions = """Version 1.3.0\n\n App by Scorchsoft.com""" tk.Label(instruction_window, text=instructions, justify=tk.LEFT, wraplength=280).pack(padx=10, pady=10) @@ -233,70 +233,97 @@ class TextToMic(tk.Tk): relief='flat', padding=(20, 8)) - # Voice Selection - self.voice_var = tk.StringVar() + # Create frames for better organization + voice_frame = ttk.Frame(main_frame) + voice_frame.grid(column=0, row=0, columnspan=2, sticky="ew") + voice_frame.columnconfigure(1, weight=1) # Make the second column expandable + + device_frame = ttk.Frame(main_frame) + device_frame.grid(column=0, row=1, columnspan=2, sticky="ew", pady=(10, 0)) + device_frame.columnconfigure(1, weight=1) # Make the second column expandable + + # Set fixed width for dropdown menus + dropdown_width = 30 + + # Create a style for compact dropdowns + self.style.configure('Compact.TMenubutton', padding=(5, 2)) + + # Voice and Tone Settings + ttk.Label(voice_frame, text="Voice Settings", font=("Arial", 10, "bold")).grid(column=0, row=0, sticky=tk.W, pady=(0, 10), columnspan=2) + + self.voice_var = tk.StringVar(value="fable") voices = ['alloy', 'echo', 'fable', 'onyx', 'nova', 'shimmer'] - ttk.Label(main_frame, text="Voice").grid(column=0, row=0, sticky=tk.W, pady=(10, 10)) # Padding added - voice_menu = ttk.OptionMenu(main_frame, self.voice_var,'fable', *voices) - voice_menu.grid(column=1, row=0, sticky=tk.W) + ttk.Label(voice_frame, text="Voice:").grid(column=0, row=1, sticky=tk.W, pady=(0, 5)) + voice_menu = ttk.OptionMenu(voice_frame, self.voice_var, self.voice_var.get(), *voices) + voice_menu.grid(column=1, row=1, sticky=tk.E, pady=(0, 5)) + voice_menu.config(width=dropdown_width, style='Compact.TMenubutton') - # Tone Preset Selection self.tone_var = tk.StringVar(value=self.current_tone_name) - ttk.Label(main_frame, text="Tone Preset").grid(column=0, row=1, sticky=tk.W, pady=(5, 10)) tone_options = ["None"] + list(self.tone_presets.keys()) - self.tone_menu = ttk.OptionMenu(main_frame, self.tone_var, self.tone_var.get(), *tone_options, - command=self.on_tone_change) - self.tone_menu.grid(column=1, row=1, sticky=tk.W) + ttk.Label(voice_frame, text="Tone Preset:").grid(column=0, row=2, sticky=tk.W, pady=(0, 5)) + self.tone_menu = ttk.OptionMenu(voice_frame, self.tone_var, self.tone_var.get(), *tone_options, command=self.on_tone_change) + self.tone_menu.grid(column=1, row=2, sticky=tk.E, pady=(0, 5)) + self.tone_menu.config(width=dropdown_width, style='Compact.TMenubutton') - # Microphone Selection Setup - ttk.Label(main_frame, text="Input Device (optional):").grid(column=0, row=2, sticky=tk.W, pady=(5, 10)) # Padding added - input_device_menu = ttk.OptionMenu(main_frame, self.input_device_index, "None", *self.available_input_devices.keys()) - input_device_menu.grid(column=1, row=2, sticky=tk.W) + # Separator between Voice Settings and Device Settings + separator = ttk.Separator(main_frame, orient='horizontal') + separator.grid(column=0, row=2, columnspan=2, sticky="ew", pady=10) - # Select Primary audio device - ttk.Label(main_frame, text="Primary Playback Device:").grid(column=0, row=3, sticky=tk.W, pady=(10, 10)) # Padding added - primary_device_menu = ttk.OptionMenu(main_frame, self.device_index, *self.available_devices.keys()) - primary_device_menu.grid(column=1, row=3, sticky=tk.W) + # Device Settings + ttk.Label(device_frame, text="Device Settings", font=("Arial", 10, "bold")).grid(column=0, row=0, sticky=tk.W, pady=(0, 10), columnspan=2) - # Select Secondary audio device - ttk.Label(main_frame, text="Secondary Playback Device (optional):").grid(column=0, row=4, sticky=tk.W, pady=(5, 10)) # Padding added - secondary_device_menu = ttk.OptionMenu(main_frame, self.device_index_2, "None", *self.available_devices.keys()) - secondary_device_menu.grid(column=1, row=4, sticky=tk.W) + ttk.Label(device_frame, text="Input Device (optional):").grid(column=0, row=1, sticky=tk.W, pady=(0, 5)) + input_device_menu = ttk.OptionMenu(device_frame, self.input_device_index, "None", *self.available_input_devices.keys()) + input_device_menu.grid(column=1, row=1, sticky=tk.E, pady=(0, 5)) + input_device_menu.config(width=dropdown_width, style='Compact.TMenubutton') + ttk.Label(device_frame, text="Primary Playback Device:").grid(column=0, row=2, sticky=tk.W, pady=(0, 5)) + primary_device_menu = ttk.OptionMenu(device_frame, self.device_index, *self.available_devices.keys()) + primary_device_menu.grid(column=1, row=2, sticky=tk.E, pady=(0, 5)) + primary_device_menu.config(width=dropdown_width, style='Compact.TMenubutton') - spacer = ttk.Frame(main_frame, height=20) # Adjust height as needed - spacer.grid(column=0, row=5, columnspan=2) # Place spacer in the grid + ttk.Label(device_frame, text="Secondary Playback Device (optional):").grid(column=0, row=3, sticky=tk.W, pady=(0, 5)) + secondary_device_menu = ttk.OptionMenu(device_frame, self.device_index_2, "None", *self.available_devices.keys()) + secondary_device_menu.grid(column=1, row=3, sticky=tk.E, pady=(0, 5)) + secondary_device_menu.config(width=dropdown_width, style='Compact.TMenubutton') + # Text to Read section with proper layout + text_read_frame = ttk.Frame(main_frame) + text_read_frame.grid(column=0, row=4, columnspan=2, sticky="ew", pady=(0, 10)) + text_read_frame.columnconfigure(0, weight=1) # Left side expands + text_read_frame.columnconfigure(1, weight=0) # Right side fixed width - # Text to Read Label - ttk.Label(main_frame, text="Text to Read:").grid(column=0, row=6, sticky=tk.W, pady=(10, 0)) + # Text to Read label + ttk.Label(text_read_frame, text="Text to Read:").grid(column=0, row=0, sticky=tk.W) # Create a frame to contain the dropdown and save button - save_frame = ttk.Frame(main_frame) - save_frame.grid(column=1, row=6, sticky=tk.E, padx=(5, 0), pady=(5, 0)) # Align to the top right + save_frame = ttk.Frame(text_read_frame) + save_frame.grid(column=1, row=0, sticky=tk.E) # Preset Category dropdown self.category_var = tk.StringVar(value="Select Category") categories = [cat["category"] for cat in self.presets] category_menu = ttk.OptionMenu(save_frame, self.category_var, *categories) - category_menu.grid(column=0, row=0, sticky=tk.E, padx=(0, 5)) # Adjust padding for alignment + category_menu.grid(column=0, row=0, sticky=tk.E, padx=(0, 5)) + category_menu.config(style='Compact.TMenubutton') - # Save button, reduced size - save_button = ttk.Button(save_frame, text="Save", width=8, command=self.save_current_text_as_preset) + # Create a compact style for the Save button to match dropdown height + self.style.configure('Compact.TButton', padding=(2, 1)) - save_button.grid(column=1, row=0, sticky=tk.E) # Align to the right - - # Specify the text to read + # Save button with matching height + save_button = ttk.Button(save_frame, text="Save", width=8, style='Compact.TButton', command=self.save_current_text_as_preset) + save_button.grid(column=1, row=0, sticky=tk.E) + + # Text input area with proper spacing self.text_input = tk.Text(main_frame, height=5, width=68) - # Apply our custom styling to the text input - bg_color = self.style.lookup('TFrame', 'background') + # Use white background for text input instead of the system background color text_color = self.style.lookup('TLabel', 'foreground') - self.text_input.configure(bg=bg_color, fg=text_color, insertbackground=text_color) - self.text_input.grid(column=0, row=7, columnspan=2, pady=(0, 20), sticky="nsew") # Fill available width + self.text_input.configure(bg="white", fg=text_color, insertbackground=text_color) + self.text_input.grid(column=0, row=5, columnspan=2, pady=(0, 20), sticky="nsew") # Proper spacing # Create a frame for the buttons to allow for better styling button_frame = ttk.Frame(main_frame) - button_frame.grid(column=0, row=8, columnspan=2, sticky="ew", pady=(0, 20)) + button_frame.grid(column=0, row=6, columnspan=2, sticky="ew", pady=(0, 20)) button_frame.columnconfigure(0, weight=1) button_frame.columnconfigure(1, weight=1) @@ -341,21 +368,28 @@ class TextToMic(tk.Tk): self.create_presets_section() #Credits - info_label = tk.Label(main_frame, text="Enjoying this free tool? Thank us by referring a business friend to Scorchsoft.com", fg="blue", cursor="hand2") - info_label.grid(column=0, row=9, columnspan=2, pady=(0, 0)) - info_label.bind("", lambda e: self.open_scorchsoft()) - - desc_label = tk.Label(main_frame, text="We build Apps, AI agents, voice/speech apps, and autonomous tools that work with or without human interaction", wraplength=500) - desc_label.grid(column=0, row=10, columnspan=2, pady=(5, 0)) - - + # Banner image that links to Scorchsoft + banner_path = self.resource_path("assets/ss-banner-550.png") + try: + banner_img = tk.PhotoImage(file=banner_path) + banner_label = tk.Label(main_frame, image=banner_img, cursor="hand2") + banner_label.image = banner_img # Keep a reference to prevent garbage collection + banner_label.grid(column=0, row=7, columnspan=2, pady=(10, 10)) + banner_label.bind("", lambda e: self.open_scorchsoft()) + except Exception as e: + print(f"Error loading banner image: {e}") + # Fallback to text if image fails to load + info_label = tk.Label(main_frame, text="Visit Scorchsoft.com for custom app development", + fg="blue", cursor="hand2") + info_label.grid(column=0, row=7, columnspan=2, pady=(10, 10)) + info_label.bind("", lambda e: self.open_scorchsoft()) def create_presets_section(self): # Accordion frame to show/hide presets section self.presets_frame = ttk.Frame(self) self.presets_button = ttk.Button(self, text="▶ Presets", command=self.toggle_presets) - self.presets_button.grid(column=0, row=8, columnspan=2, sticky=tk.W) - self.presets_frame.grid(column=0, row=9, columnspan=2, sticky=(tk.W, tk.E)) + self.presets_button.grid(column=0, row=6, columnspan=2, sticky=tk.W) + self.presets_frame.grid(column=0, row=7, columnspan=2, sticky=(tk.W, tk.E)) # Tabs for categories with scrolling arrows self.tab_frame = ttk.Frame(self.presets_frame)