From 71e41d2d821e72a1eef8e4a64960c1a31522a618 Mon Sep 17 00:00:00 2001 From: Mike Solar Date: Thu, 10 Sep 2026 16:54:51 +0800 Subject: [PATCH] app: ship the Oak icon on every platform surface - Runtime window icon: X11 takes the embedded 512px PNG up front (_NET_WM_ICON), Wayland resolves it from oak.desktop via the app id, Windows reads it from the exe's icon resource. - assets/appicon: 512px PNG + 7-size ICO rasterized from Oak_Icon.svg. - Windows: oak.rc (ICON resource ID 1, also the Explorer icon) compiled by build.rs through embed-resource. - Linux packaging (deb/rpm/PKGBUILD/oak.spec): install Oak_Icon.svg into the hicolor scalable theme alongside the existing 512px PNG. - macOS: no change needed - cargo packager already builds the .icns from the CD-generated icons/icon.png (same source art). --- Cargo.lock | 1 + assets/appicon/icon.ico | Bin 0 -> 372526 bytes assets/appicon/icon.png | Bin 0 -> 36868 bytes crates/oak-app/Cargo.toml | 8 ++++++++ crates/oak-app/build.rs | 10 ++++++++++ crates/oak-app/resources/windows/oak.rc | 4 ++++ crates/oak-app/src/app.rs | 9 +++++++++ tooling/package/PKGBUILD | 1 + tooling/package/build-deb.sh | 3 ++- tooling/package/build-rpm.sh | 4 +++- tooling/package/oak.spec | 1 + 11 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 assets/appicon/icon.ico create mode 100644 assets/appicon/icon.png create mode 100644 crates/oak-app/resources/windows/oak.rc diff --git a/Cargo.lock b/Cargo.lock index 8d138bb49..e9ee02ce7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4723,6 +4723,7 @@ dependencies = [ name = "oak-app" version = "0.5.0" dependencies = [ + "embed-resource", "gpui", "gpui_elements", "gpui_platform", diff --git a/assets/appicon/icon.ico b/assets/appicon/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..95beabd21d08f58b556999df530014ddc9fc4727 GIT binary patch literal 372526 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 BKezw@ literal 0 HcmV?d00001 diff --git a/assets/appicon/icon.png b/assets/appicon/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c603c10420c6c945bb4576bd748cc32bb30a060e GIT binary patch literal 36868 zcmXt9by!tjusxUV5GmF()~8S_ul6p z_kMWKjybbu)~s1ONLf(^8{-KE1VPwxvXXBh2myRWfY4CD$BE1675G3gl$Vi&?jQc8 zH{?b`5H%zx`Rct(^6s3o`g^r2)Wd@sE_R2A`6M(nv|%Zh$7CgBosXhTquyBmi0^x5 zRXTN|%WE9{hU<(Zv}3Y__6)`86|xiz7Tf>#^44H^0OfB=4VSaOtLQ+PQtDUt{@dy5 zgJgFMM4GmOrwj2GD_$-A`5#7>S#4U9Fg5vXT0%MIv6E|j?D?SI`m>P|Hu{TUkOiz7 zLHX`-AzuJiT(fUp2))p`MaCKB6hlnM5yM2yHyPxGm$|Wza(0+!7*}X^d?wxC2`SMm zY#w<2{f)8t*S?yYn;YJ&8-F};`j%B3u|S@kBE^%pW`sUZUXiw?W24AW6XT)vBa$TW zK}DkXCP7TFYw9gGoZ0IL*52fp+Fd7bhAa?^k+tjcYNRS`N0#3Zui;1q)}$lA z)hqt0eD6PVV%^eYB}3}Cg1yA%dl5;e%FOUa}t{#i!=-+@? zehZ0^H0$Hg!|y26nOWh&$p$$H9>z(&D;+ln|B_b0(0PNnBExION(%CL+$6t@E!Ytc zP@5I^71~&M5GJ7xRSa$Q#?QJfA~lHkh6?YYh!+gznsF(m8I4pE7<2+FMi5eON|1Us z0hWh=iF&4^jka7CVs?H80^9+;#%SbaIj==|^Ccq=7D8bI!|*TEVuZzD%XIB}58W2m zhanl6puqN?#N^#>O~NX66drg+dbfKUH#ao%2ky$6SXo2nHDxQkFXp%Divby`*fHc@ zAF7J@a4G1E=|Nv+zXyI8fhOBXl4kyBty?8j<-dLS={NAxGtN=cvomcj1T5z-B3lH< zIj~70oSVVnf@CRo96Wm&WQapvLqp^BSCdwDoLQKEWV(cXps^XW5-eaM>PowcD_93l zpaZMZ=vK{@7I$Aj zq;?xLZ7!3~Q0_#r$=6p0dYkB-pBT;oH!1C|B6vz!sW1N5+gR~r6$HYP^0SGNZ z2$x1@QiI(i!_w@M{eEJu0xUf)6a&hv%Gky_SN-9MkSvPP`~eK59;u0QXPY0o-5M%t zT@WdRRRWw1Z^*9mhpP?QON_8iSoMP)n4Qqc)27(lXB;Fs@PolXWd+^csb8dz(D;A& ziX0IbD!$<8Z~TgV*WjkQqyg;ND~1ehy^j;@mD9(@^<6<8^i9LFe;5Q^;ke_MtI+l; zj>KOwLMU73vtxlJVe$`-Lp9h%7nmxu>@$0PmZQx@pelC6nKDewDk3&E=W+ec0fGq| zB3caCo1`^^fYJTQYRke%WZSA6I34C#i4lUby+zRXf)DgNMAl(B?<_IbyN6tg=0X>@mc+7Q29N=MGAxjJVZR? z_jfLjk0!0Udc0+aUuF#gJ$^#PZ@bT*&Qy;vQY|kQ!EEBdTH02BkxrWLqus@tb9V+iS;J7_4@Mi(h|JN4k=_Y;`kiJ zJy!TFu~_NDeu#|N2rd>>2c|0D>{GY7{Dd|$|MwssW00hxq(68>+j2Qazlho-Ut{%h zXTvENXE+NX9kb_qgdmjciB0`>pT!R^*jZcu=I(=iRbiA6S|kx6q$4|?FmHuHmQ=+* z*^n-(B_0?KM%Iej44?9*pkYOdK>`9CFmfNS6BxizH6vhk9 zo_~RVPba>omdBa>t+;*5(QA;Nv^OlbTf6dyDCJa_m3zsx#b=+pi!=vhzn zO(#7-l%|dIV>ztOt}|B=yu2-vP$(g<{`uC6KGvIekaHLCL-CW=#*sgFDv8vlsXrlh ziK*=vMwBIDh~r^gJVc6hO%bcTFP2hvs5BFqYS5==T5~3keU;JNE(pYH{bipOf6;cl za;fo+FbB)}uAD#i?X%aiBl}CtD|;G02jOJfv!EY6cX0jmRK-BLa-h&~nu{LvvUY)*t#_X#CQcEQI ztlc9sXU;=C$mQW6i7Rw{)=DkAr@rufC{G{%4D>J|r~#9s7>l)ozM5%|UuG zf-cfDFJjbBhyWpA()cBC5RxR3P!ibu&aUo8nMw z;9-K;dDQa1HM@YV9#b56e_BP>>wRh+Y(nS}nS=S~YE`^A1Q3^5#wGKVX=!-T&4N6K zgtJj!&Nb-gmda>pF@JtBn!bC2PA=#K)ty;)29-XlS$QPhCh%*pR7>>*<4aoSh~It~ z5c=BBcf*hYx~Yk1vl=Id9^Tk@SQWqqzOE= z6%-G|*ES3Z)fBF>DV%*(i@*fYM?9Qh{v=EQL0HCVE1Xg8IBxZ99BeqN+4?Kgn~Yf- z6EB}L^{2#9Q_!>pK53qs!N5I9vbFGTvL>7ph)gR&}VigGPm71lykX@RMR)l zkIEM9AQAWd!(lk6US3|gxHv>>)BkiU36EBQj9mdM7@Lvl`3q4-XA*g7WH_vpAzK*M z-w54`B>oL-F*=%@8-R0cp%%qpJbn9UI5KJwRVv^tbKkIV^_<#IRvf0U?NV^R6tz4e zWfxHL{$z3ZU8Ue2DM~%2Tc{!D_dLX-o7N(dwIy#JHeBn~wGeR$BVioMoHSOygy+c3 z9sZptG4YS%52A!Zo@OG5;R+B8ry4bD*=-a*qnvwrG`=9}pVGrU!UAR=esoRSC5oiw zOe~gV#?|eKPLqiSN&B}WjmJKYw~iDF$;m(v%T7i&<7z%)tFc#4BBo672`pxeUf^S? z7JB>WN`Ge`ft!0g>E;eZ6ApGP%wTjeIonIYnpX8kOps*P_lUbE{JL>M0Tt-DLCvir zsWE$Zsr$MlquwNEl#^e79mkfgQTsW-X_#4_H8%nukDXOvK_-L*dnnV+1QG9EIOCW* zoM)pB(rM3!67KEpM$S32zlbCQ5)z`F1?{&UZdtP`e<=u|l&%lCO<0F& ztNjLrHy#K!*VT2aVYXkzGsK!sSds;_!lI%(SHmRGYM%2lzT{mrl(Tj9nU(uXN(fPO zQKVfxHgS>ICm&}4M)5Zej}hwNL3$A;H*Qaw5t#yj=?uN2?J)>A#E4S4?39Pe>s*zghh` zasaIy^rrYi#4pCXDKd0;c`Gj_$_{8>FumGm1iN}?Q%q(5EIV<6J@b1y!lK~R%7_f& zjn*KJ_opR`Sl5ASwY=TK>9ParE>X$<9w>vE9RFYJnN^0_#F9H|;uv}GLOHVXJ_Nhh)rQrN#07S~v%!hWyc>7h=r14dt~b=tMd9c0`%D}gN_W;S{VOMEVr1ky`4fp{Ko6r(mD!mbEcUDEdnf#- zQn}udLV?-^l~C7%BOAF$?vqP8U*qh*DoSlw+Sp@rj!|@VIQAz6@TD!Dki1htH1WgePAAExL{+ZbFJMAs_v>+aXs5?^gLEaqm^LBq$P7bn@(~lVq zcHUpaXH?SxTpK-aoRq`^O%YpH5MIlF>p2HOZ1k_YW(7XhlLZF(-tu19B*aYKq*c3b0Z=EM4B^7@deI1FH^f9J208CWus0RCG&h+#EL}pS#)B((()3kS*9#>Jb1_~`q z81Mo!4W}O7K8*i>%dmjj2cOWHe;GsNOABfBUoh3MPlG>bI+5q|-S|vyBDuJ_$R|9~ z522}*VTmi$z+%n)00SAC4_2V(5O}L36P{WX;@F8&{0)J+AmE%Bi-g7*hqfU&{)PT^ zs<>R-3=c1l{+Pcg-YV6X!E_t+;agE>KHO2h@vMvDv5*&!4D%3X-k<5_NUh0(!)2k< z2z9CEE_A}<*ZN@mz0NhKKmRcr zO{of}zX1(;qiF2D=m@nliP2^hGF-Dzl^e~m31YwZGzyv;{>;NTTR}SYU1D+5=2#fD z?GY04%h`tF-_5_`$OsJcw7;v$DhBNdl~q?)_of`rJ;g=*wVq>*Ktk(`V|WRCd}Zuh zPb}%jn^Fk&WPVTci8Ax1_%+aJr2j+^675vgXJ0tf%&MFiMDDBw%;FzRj(@B| zrY zzXdwJ#|&t@alMRR#i5Op@^Zro!??sn1f_&;LO{ssoy%G`9|*2>>pLMFF0L2UbqD&A zGHr%CzxzzhVy!N%j88S%&K3O9s+w9n^WHnDmssT?hM4w5Y52(1payZ}*9CZ1(ypD)x{lZC}m@>Wy5!W$H2)%qgo zhbO?^aX;g&U79v4&{q5t0siWk6v72ga12mV#Lt}otZL-n{Z>(*)QcS|>2I+%qv_;C z{qQtgrkNfSox;WpG2pXDThaXbwh}CDE+j@I36addLILJchL;B%7EF~RjPZOxIgiGR zM&cuO!xjt7S#CbGaGbWZ+Zc?Mdi-A!PCj~3cF!3pt?-cz7%uR0tANahQvo^q@`{S( zbDm(VeVGhpYA(lgq#!gJJA>xVn&^@CTm7gY@HngXu?Q4=f&KJHbS#b41r=1eI~xda zU6hGN?PvUQ&BB)3L32o)B^7m=#mL>Qj1975$Ts2f7XtC{FQ(C#&87S3wH%l0l)wUMVJ!dV^veZ$dapdNwLha^I z?Sspt8PJ|D-LK9#13)>-Z*cd%+MerIzuJ>oB|DE=Br`M`&f^k5P*u&+2pU!*i|x0K zzDIcppsb{@r&M~IyQh0@Y2=S&;vU!Qq2!`*q9H7J^e)}vnCLiT_u7wRz zma#ykrKK_2y^Vfftv)D(Fy|lWPtHv3IP7he8M_={ju0;O9%CXtO1AaHQk&D6)yQhtw^a=YAS#SaatTdzvq7p;zRkc--m zE_y|+jL^$Upm8AD{;t3O(~rHK<*X1T32gPL8TPHxc@4)_xC|VDj$B+AwUrxR$rGkn3jdGT2PcA|(!PA6 zDKuL{O@_(&znWo)GL!&aF0HIFtALkGN|Gi_WBGHI=JzLFkbo%6F*`)#gity3K#27% z%d*d%xUF6!BNy=+L<*X&`mJBl;wkBW9z%^z)27WHhWpn{Jbmgh^kH`EIi&JnC-W0! z$J~izM&_1+uM0`kZ#u{24xdoda=*>w2HeZgNTKu*nC#Aw2w5ylkPgmqmpLmCc=_$% zd*ES2AWqRz@=DfyV<_*Nq@cGIMZha@C|P-bhIbvB1_6)yi;Swv5#RddZzi;;eJltu zJRDXY+Y^cu-7>q|gUNUGBS>Zr@2c&iU+rxXLNq#2nA7D&JroG+z6jLrhMEXQn>V>a zC7La;3|XbWn}>vI>Q6nc0jWNKBoQL2Wb6gT)r*qHe5 zkJl9zA;2_3nk;Ixef_A{4!~DIkMjkPY7aJUC;Wm=oL4Vk4Kr>I#}VwnvB)|4b$iHT zr!GY{9&x$C(o4b~(^o(kqI*txxvo=Ym`d8zbYnV29cbQ<$-`gHf zw_l8J&!u8O;ssyw-#nQ+NwueK4uE@2BKwZwNGg9VqvwxBx#z_k4%ySRq2%Eq5SpXKuVb z=wV$b0o~FM50r}^({GN5ngxW0vi?}O)(#-JhxDC?aKI_$P+>Al`90{3)I9c87lvmj zrERIDNy*h78lnq5^uu6>#U%$4EE6d!_x_9ULB*nL%Qf+p0FJ0{_PM84@^p}&I;nqW z*{FtMM`P#^CVZV}PXgMc!>Y;qxi8FNFdCy+l;5E28>)32O4TL%%ltI0O3WTYD-oPS znzxBBu{InlT8&tCFxxK-pJ z!0~okNmIcI*}e(Lf`w>8<@~iuD^QBbYpZ6G))Cwr3NI0upiWwoYiuL|shYVt<_jL} z;rv2oLaMy+0#Okk3W|WyM9jwaC@15wLai;i7-(o;As0=CV za(Lpkl&sZ5(!-%|{{w!ok0e>vhBewLbBF7}RDb$DoD07Iu|li9H!x2jS9bsb&VjO)+4SF$n zKO%M8H;zJS^O!M*sBmVS)R?WJq4Kc!T0L3{H50yzYn0~RIkK~}Fi_b-Hm*NvrL$hW znR9(V_CDj+75QhjQ4$YP1{st3%Vn9sZA!Y@y(0n{?8c^=!Saf&x$(XnGR0<2=U4Q8 zB!LE+`>Q9U|FO%ZTHToN%F6KoQs2VS+ef!(U*MBJUFbV=X#{DBhUSbGcULp*uQ7>t zltG~gYERqDdL)LP*UE0&)jttk_Y+-2|47iD1cd{r;#RTq+4MOzjcQ+5)jw3|=3S5C zQ&#BTKic&81Tb6{K42*y_7*-d5BWNheaF9yWcKSg8~n}yYx-u_p2=rmKc)1 z)b#U}3AWvw^l=KP7QH;vx!DK^x9w-W{eLY0-dF>}viq}4rMJ%vY29Dp33?-r#bQ7> zx4Z}l5V0UGaKes5WnJC2q~16R%eY_ia+q+U4Xe*KE^<>0Ln&{~d}qBRIBZAv(9p5C zwi^K5ySOES2Y5#qlx%LheIoamVmes3U8tna6qPA|K&Pg$u#oV9!Q33w{d;xlUM*Nh z!^(l^`3{9z_&EWS*4UeacaDw2Kbvsg4LdW4E&gMM!~;JZTRAyVq3XxIr+BRi+4NJ! zl!|7Obs(*tk$tOU5QeDO^rkqGQ2l86sUN!vWI@mxp)v3w0#F4RIuD(hQ?5G_o0r(# zaz51jOj?9j^yjS+uqx`OG`ERQzx4IJd3IlsK$nOliw5gNWbZ_vJ|91E!I@Y4br)z= z8*tM64xBZWxzN(rZPc(vAHe+7zr~A56%6~MlcZ8@PVfz9Un*(+Uv~9++@}I&^-yq_ zmv%QpLSpVnUQ*)***-V5inJ(~ck&N`2FW3DG&oFy;N9}S4T}XfDU&EdDB1Sv#9BNA zz1rwzE`f9ZMK@p2lJ-Mt3X0u{rzvzs8IHc9%~N{<03r4^A2%a;#;c_S{%xmGKJ7nY z4O$ONsN832z7(zMZcz8eXCA)|Bi!){h!4Phq5Ug*IsW63DGo$~1U-Jz-T+a?XRxc3xg!IRF{$6C1gv(-$&{IW8v=TAL*L6SOgrfUn z)+QzSjM=gTlp8#R`sHT}NPoW6t<0&3NDKt3XPq?JOlbo@2q0_xJ@(mlU0a~?VCswB zeL}#8oqI9Y_UC9JEhBR?=_+U)B=y3ck>f&$RXAyWF@7R8Ha3!g#c8M-;F0l+;>4$* z@nS=Q22H1n0ZSA_fG^Gxky81_Haq*`#7aUa>LU_peX2J5h`c?KnvN$=^H)oAC39kG z^CEmS>m zbsOjCxf#4L97U9hbDQHBMs%8N%!D7R`Phk_Cdx2smx&GA=79(i+3VT4m+UKfe4%&1 z1htqIre>BLSDx7)jf{fpcOx&ZQog%vP^D3`mK13;QL>jqHV5l8Dv!iviSd-%6|p$8 z5fOQMWshX_F|6ICVibkO%K&Xg7o@rAQ&BV5Ilu;<0tp2|8_S z)>;^%yO4W|qUdg*P#=uiPrFw|ADiyfvfx~azTY;f(NgZ3e3#;I)pMZN?tli-dMJNx zuWBB<14~!g&bP8s)#LCq$z{DlhQqsifZy@TZ&L&mWQUhz_pK7|(%8GTznxXTwnKuyjn;P)<9X?ymQ`Wf1+ z$i7u~S-IKt;Z0Mn(QO=$_r92V;KO+Yp(vw%`7sHkggfU%{V{~*87I!vci)nO#Z=}E zoP@V7Hc0-)WM>@(c{S)wg*Q@}l70~{XkWf$T0D;OUCZRN9mSG!GxK4aeqC-nM%$!4^#?xJdPVe4ZK{AP^#yqG2`Q?T}IE)dyjjX zaVuTd)(N&Ty|$LDcJ&5ZfpxY^QjkuT-?l!juBmnu3}^v#o&?JLm$Fzwey`!`Ya(s7 z7lN?ckuvOUUk?A8roI?Pe46ZFWig+qsLX$RhGg3n7;swy1btnug1Rr)KVD{@D_^be zksWq0uw`YG!1k>uW##{hX&yAn%E=N}-2CmUAe&D*qN=~#!m^kuIr=fdFUW7uGijE< zzU`F7QpYS(N`-l!Ftg>@$J*yj$>!mTm<0~j#YIJt(BJIR4@;Lax;`>|xPLWnqCb8Y zTG?8%w4t(kVWrIYc+iyl5k0M+11b4uNH5UxSuND{HunlayJ^ZWTL;9r(^NS<4;QMt z%R5X{b8}=Uxu~#%$~=A%a0BVejCjPca1f?t<+p>2)BE}QY@HlBb_N;(5M{mHf-BSN`G~?m_F)3M&3sgGs;yM~BVAUbr|QDshkR z@~stAKvKur_vL_Dy_i$hdG{31C9=evHeHjA^UOq6M2<1PHWA>qA&6Pd_iqgqn&+aa zM)NHtjBa^w?|00&pX@%L4*~$-XzZ^NTUu>=f{%}>t|SXirt-ca ztK5GvSa%C@ND2|;{ry)Xu_N*464OhMhJ##YHs@9u2;S=s14^wh_>lwZFs{I%96SB$egM$uG3#p`Nk`y8Ipd5n+zh^%pa2&_ow|I(#GocPQQikcGi9wtA6i2l7wq&>!Wv;HUurK}0TO+jziOS=aNK;Gew}PMoa9}sXADhuvSOWjzIAFl=TVuS> zN{Kt>IANG^{o~hndq=1LqAl{Wi{hK;ZvjfD6~Sl@uhlKIhed!=_%llH5Hmr|^H+E$ z^PafyR|h>Xl6pR2Xm_@X@WAWnDmLRhpMk+38o98m=Fz%%<>= zC7{dsg=#iWcOW>xYj7Siwas$WFC;!*Em5ay2V~S5dau7eYMj3VU>u&(L-{%fJ2~aW zK~DPEXO#tITnLy3_9PSqfH)QRjLJFmTtB=i?B3pBWmYYxa*g<4#}`myvalWLhCe8d ze&bW%n-2~aH~8Qlk_d~k-me+nO4Z*D^-?rC-k(GIBWOd_XojaEfr7!wlWjpRz%2XMs{~Z=bpO zNzrw&k$^?Jg(_(OY6?uOJ^opz91O~;WC69X5yG|jd-qCm;DnL`?VwZtCvU7q%Nxpf zs8Qbl$3>ChUXJA{&0PA~oP-;kN_`Ymw_STW5o@E8|R&patPAFG)YCEe}t3X)MZM5ZEMh{Eq3e$zg{M=YEButeTP` zcc4eHI2EABTfKN449d-9@)Z14D!Y+`Dzj;u+Dt4NdE6D#Ed%oF0+|Ja!xvt?$MKtEiuq%P3qCqs+d>yV z7M$%IIu@wBvDq3<%N2XCq_Lj(cB6P*-3Nn}SW!6>i(Fj2k-I|7W`#%y@W@I0vz`Vx zSRI1~bNO{KFACsM7vahe2%f>dE4D~&;(f-&p~x=l{MWg5A<&}b=g*Bq5T|dSVuX}7 z?eY{yQthqZgrn-$rctZX(sBA^`g+yap9gc5HkUJC@0tQrmGk9VR-* z(2=va7cb%;AD~qC5U`iJul1S<&Ksz=;@Vp6q+j!zQ$b(oJ;26=CBqy7Nm<#Sg-UC* zG8Qo+Zjb|S+Ki3~qCpHGGnO|5R(U9{Kr__$`t8&&dhhB}wBSFS_!9?0#aaiUKSH`e zhybNl#CJg`eC`-aF(y`Dr{#0ObTJkvfb2Ty+6>VZ1hAT0`hSn)L4%yU2}4VwQFgX= zkrs28y(4;^%m>2ZmMIn)WaN0?yhUz_JQ}d|UjG=V_sy@Vsoru(0iDyO8YA|X&LOYP z3Cs_hwdkKi2)AFJF6fEvqBYMW*0Fy|&>Y6SNxb7#^m8EJr9kAn)6G+r?x8V{?ZLTsJEOSSs|;9NcUzHG21Gl@ z2TwMU>+^d&ay+JPVG3+*pY#Ja&v!v+p)srP>?0(b7Su3tgYbCVy_JR(gWV?jNhHJ- z9^Du)(qOxzF$MPn; z{KPa$m%Dgag7{#2BY07jXl7lf>>XmcyD7beg~jP~Fc3eqWk(O6#Ev;fv=j;ck+Sm3 z#uSPbrWMa}NWIZ;&p-(XqhNO#&Lao4$x&Owz{HVD zGRH!-vH>M>dwsc|34FPE_?A5^D^_or2w%5Jp8Z*bxsr^E;@Ya9OJAO>>L0)Xv~QSJ zeBzm#O-J34c|g>shKU&#LERndcDl>DeN|X@B5E*14o=H*gPKSyMb*3!zPB@4WRi4% ziSq_BWb_^)=}x8Xz2mm;yl@8w3j?l}4jb-!URWR!tQXh!YU+D*)ahk>*S;`z>PORp zZs#LIO!!<quYMcruRr1)BD=-_2J_kd z8+IS^%lwy3!3jGcOBVm+U`|-HZtt!lm@ueS^Vd9(D_y|mI?^! z9Bl1>RZI0ieEpSsLyiK_!`}6`+z-uLE(jFXfTotze5*&_M&B~t9E$@|0p%j;@;F9r?doUi6I$%=|4Ebr4)uw*Cr=!h9?eN z!|f9u{UO+@a^7wPN&J@wJf`&5FFd|T_dIAHKi?UKM?`K=zVz9If!Gf@ zVC5nxOHgN^h6sqNNF2`m1W385feKe#@EJSVi~=M-Q?#7Y_bO-OVV!l_wnWPo*?H!Ku?kQ;vFPw8$n2;L)i*#YC-TL zABUSF+Y}bIc1&x9&U~dNY+@6&8|!{zH{lzhkeNjZ!tOt%t& z7agKIgl=Q&G?ssVw>9+;caJN^_;plJSSS7r%rv#8+?-T+D$zI*@8OO8I2pBlK(qT9 zkzIRy?>C%ajaLWD3}=iVO8`+~c$P`!(C7tJ6x`gr%`NjSfJig~Bv3yaZCejVm=A?# z(;Nb|_3K)BdrYMWkw-Q2jfizei2PF)Ph%n_#&1~nHL_u5RxU%SAU4|E& z&(iCVOoSaIK@0V%2*o9`AjJ(b1T>4GQp6D87!Q||l!k3v{Whh|azF1N>aV?Nn$l&4 zO?xH#-@p0YKxHwX+K6_7`K2lsH<>)yz@1M={FOGGtzF>bBld)|0c)lWz1hX;}0(o{l=$)_Be z)R_c&*4_$~T!fzQu6B3|=7B+hum@DVNQ!ZKUJ+^hj^v$+lv4Kg(VKVE+?JC%<%odu zTg?BS_6MLAAVH0s7D9Y}WcK5GLVLoindxo&p0t$L9x%Xq=5AhZ($UpW#bD(0U$61; z@nzU-e8T$M#bd|0^**JjZGua*^%u5bm>8`e1ev^SXgHWFhY~mt|6I|MG-5v)N_v~o z=3eB1qsJ!Na9vzcB9*Sk4sv5;}+VqE<4;gK)@TRXf5(E+HgGKNegPxSyW zX)4n712x4L(4mN0emf`%u);gk<}r<`R1L%?Pr$%#_0w9~r2i~DvJ&A=GvJJih&(CP^p)72ezD0Zfv0OR9tWW3It zKfJc4E)JWl^~&Tw%7DVC7X43XMbKPxO$y+HKrX*qK@nj#>rm^zL%(+Di;0lT@&xuk3J_>B`+hn7mhCN=| zNfVVR+C;*7!j6S_z4}LPKqi3+@dG@u`f_&OLG6}@ijMBXm zdc|&jA;BzXi$|3Q&qr(ezB$SpGef|u!6C*bVoeJNfm5oenA$Ip&c;#@Ze4VL^#&6{ zNtGspx;NrxhwNmked>}>{jtcy0DjEMsXzv=R=OoDR9&t32@q!pp0?Bwx#RBs0SN7| zyXt_3?m2-k%IX8ZY$3TjV{L5`-g$qQ(&|F#t?;iwn1r>Xq zn-1^UBNKa6znV~awP&YMx4&h4e0YowI2Ei}K@U#A-2G8B4k(K?8O&bUMkrMEC0NS= z+OelZh3asw4aL^JoTUC^tFnR|w2 zGqpGdhlfL2J8>TdE_R)9gW{SSNdyH&V6ARm`K#*40myV<5mpsAOYy^96 zRcs*9NNOtNzdw%!hvtxN-W}~fOjV=q z9zC1v)dd%`!x8O>s+$W zIbM(gY{{>cca1*`Dp8Ug=)!7W?ZWnsFX~(#Z74kMxNWD&sny-9Bl2S+|Ein7ci$HE zi6pnB)y)um-;TxLDzE0MgMp6hA?H62zO{!-$@*s|t;zp+ct|_YtYl=U+|+t_mRD9T zess%i?NWZ4NJ|^4^kUh;ybNew(B;%yfY!815)Dl3 zy`PyAWHG=hkR?UII0h1(u{n{v(>-AC00lwypfr@^JmUJKef_s-{XUsk(E(N8HP_Dp z2J?EgY4E4dX!R2yHK_0P8>V@=c^3h&T?~`yT=FfN7i+H>d6ZjcvGZcidE#2WJg5?~ z3J;HG8g zDfXSNDzDV<{-wupYRe;Xz3WD&`fAB5x<1 z^{ZL{nG_-&{uVr4HKLiik$8>@#q5Uh0oty1Q+ zq@T2SMzw))VRz2yJ|X}BDwZJpnH+kaKi*@n#sxY^o#T*Pgk~%t>Z9f5)ZHg}wz2>0 z&U8LZyIMU!>HeH@-_?#2!`YJeXVHQx3*Owb*B$6^H6w-Qt`;Myim4K3=AQm!?#;#x z^L*^jN@yG}EWw3La4m=kaIAgH(OG$p_NVNxn~Y5qm)rSLo9pf`<8_%)K($kB*Kkp` zu{McNE!%Xx&rk_JVGuaH=`Tq5jG@#~J!>BQdiPf^s znk@FLT^29%9!UG2P74FKnkPUf{%ql{iViTV?51L=KY4*WXO_rSNu*jm12Uq6NcUeu`pg_ zXbaW=n(sHiJ4^Xd-BBCVcu0CLmZD26`V3Q)X7a78{l>`dn$aSQaPOkPjS{BVl(GGr zjnz#oa7pCC<+24-ZFrx?LXlsfn)YPPvR*f?&S?gZ9c%#VZo3orr0}79JH@8d`dM& zUE&$_TLv+E-?oM@0dK+0YpE5E+%zCPl+hqqQ3pDh-rmP@9+zj~6nDC6s%hC zoRyRYL!YXG-pT5d47-^GCgL9L{Bw09hH%bsNK%EKG~I~E6rIJ<1ASXbWCI>0xli#T znjf+=Ur*Bts3m}62dh(wQerD_gw7%;S@G-vWqB1u1K(`BGe08iMdYSy?9*Wn7$%X|&su@m$Rdfvca6Xuce|mk%s*tvl@IT)Aqi(E}q6L8M+hxw^qz9Uk5QocbXF$j0viJVvGaCcYb71w7 z2EDrVr+G;)zRxdcYrp3Yn6t=Q9?Bgz`}NCtQ!ct-qUf@9HO?HKx3S7J*p$`O5yEze>c*YYcax zpc7g{htJjQW3C4~QDbmJNY{C(P+;Qch+C~)?eJ>!^vtQY={L5Xu;y)ho&cJp_1UE zjQ^*cRfF4EN0RqF8frMv(#({ee&>84p!GPFd8$xg)!L8^HZEs$q(J^7qS1!q;M(F~ zS{bMfh?U)TS996qNnjAXK3U~qM-IAs=|iUM=T+Zbc2iA4qGWPPCEgZ|n#cVCbW28k zCKgb#0c9md1@UKP=L{l8;+@~S0{~qjkmWoA+Ezg5fC&60DVWTo{$_Dy4HJM#2m9Ew zl@wEfYmTb1zF}pYREknY9`^^)mEiV1SCQC_@gA|5@fgu zA6rV%mn#wqK#+0=_m}>gXd06TnBrM;v#*aR1I!ME2~r60r=xKzBT;gm!-PL0u#_P)HXsm? z!F?BebmU%NJ)2hcXu}m(%lWxNJ@7%A|MUY-Q5Tx4N}q}ptN+~&HIh}&oS^h=j>WB z=Ui*wM|>xd@Bscds@-Ue?x_5)tJ(H`kzA=|cCMwJdCc;V64sp6^uODJJv;Q#Z4lK( zl!!#3J>SxRay(FZ7aM68_RI$1Z*^<%jZ_LQg`oRAb>>En*z74b9t$up{@Zmyo+M$h zH8Tdqkhnmr7#S5Q5CuR|ZKvl@uwnrD9O`c+J6%A4q+50l9!fs=y`L&NY&`zYK&rl! z&AnSAQ1I2R()eXkerKfWu*;Sa7Q_A8gy)61zkmrCc17z!E}D@&=9l&s?R|E7B@G;R zTgOK*EUinFG!=DEqrHP~{xiHXK=7$a(YwG|GKu_G44ERR{p1lq)ReodPa`j1Mab#Q zzvg=;^}muj`B5TB=u3wXh|aZ}8$oNE&b3q9;`KAo0~J(@SqBS1z`t;XOy8ov0$bl7 z#7(T3A-@E_&^S7PQkTp*0pW9 zxW8sv3cayv?E_sMFA!LPY4{yaQSp+o8j`JZsqWbwu+DGU7o8bHh3aj*>a74A^D{|8 z^sn52vwydMu6;kKF=%jkh!KNFc3-lTwI`1J6Piq76uX`6HEnX9;g7(AfqS>^dEi4p zNLV`NaQjaZ&qsqM} z_H$5IwtH@e+u00kmY|>H-odtcvh-!Z&5cA|(#4GC=MQV37Gp7zAJ%E<*Sa&%>w5)7 z>UKQG4{sj)rt?HLqnB{T>dkN`jFj;UG4D_B1FtqK}f zXwXmdSq4rlxK6lieE0V=i`qINLKteF$ldIrP>yFZ*z4DZanL%)Ut`QIoyL=$Ah{v zF55=p4QO{|%2b}ne6C4IHJh5C9#*;jAo5&DFHospQBC@xPGdcm2J(a#@U*8|!EQsR}xy&ie#_#?J@I~n0vA$ukfY`k1?I-?7@Xk&0(?l*| z_Kp%hhjXmaUV<2rxjb{%(lP?X`F#3kCEnWn!TMe}i=B#o1+O`ySrxSRD}jp$f=oK| zaZ8g^%SC@woZwgEP`uaNd zX&wrT9|e;nWmX6|AX^OJN0cB3n%BI+%4@8Yc6&vkVT+@bJL|W#*f^5#*ZnEGx%Fxq{(@noUZ> z9#@yMcGqGMgakngdFGHsSGEY;alOBDEVb>$ga<8^ykIus_|x*LHKXDskoQ>4xuH#5 z{^~VN@Jae$dK+95T~Mi$Ega~&X}Z%CV8s(*DmW=AO?a%69Btl{&Q`!|Cz-=1e&AS& zjf!jVL7 zT<;W2nNx%haz=`vJ+Cv?S{rxmntnA<90DIQmL92-l6cxxK!v{DI*PwRD;P%ggXud4 zNne3m7l)h8K@2>t(!#+CY}hS-g)ms%kVgAshdR5ct1b1K{if~Z_VM-n&iWNF7#{g? z6-tJ0AD+iC8l2Oh^4@1b8;neM5yV$1Oun7Hy*+hR?)-W^wzUf165=|NXao0tmz)X$ z+1Nae(w*!nJU{zZ#8>M-%E(1aS>VEIx@z?o))YPqc#oZW7Svvxmqx z-q{^sE#UjF@i9kDjveDKf7%b`P2=-OUy~4AM?66lksjqlIV?3>b77`nNe`0`rHn$R zw3MI?IxRACE(J9nw;o;+;ph_% zKI8VTXv((9N=b(K$oH@AL#snJI7-|vpGDn54qx>9st0q!WYDP8ZSnThcs5rC?b*mX zJJS`hhYX1NxI;#Wo$u98aI4tQGjs*Xa&uB?cYLJA=mdBW&%4u6;)=E0u+0d$p~+wG ztsF=HuqKbsIQKGvj3{4YotN4Nl6PtAE@VEJFh%9Wec40R0Gtt|6}AP2Ae*#+=S8bMSJ zmNs+$Pj#4eQFJnL>_ihZ_RHrAg~K954`LUGgn8GuQVC>|L%(CfrMbSW1YL_c9j)Tl z2n*@&Z7UCw$ym6R5&)Z7R$e_=vhE+Knb}=z8X!aiBhKaiYGh<|Xs(l~z&!n1T{?on zdyArh)1boBpH!27{2T$@my0cij~k2c@S_!;<6;d%kgVs!wl*rq`ZptI*3HxDN3Y}Y zVHa*eMK@wIQ9VY;E2IV!7$SvfORw&R8nWH)=H5IOceKz)3O6bmLt36+9W7Sf3A9G< z+y$GzHsV+KKl~btiexa5R~{lFn;cBmL@FC7e4GUW%5)K2Nd7Py1(#6a+JZjs^$^~9 z_w=pqzp5Whqh}3fT^whzTAEUmlHic`S3XZn-`>=gN=3eju%&5vlFXuel#oQ-y?YkB8Ri}i%y03gR%WAgBD zgI;o2vhVtCFjCw_pAOt(Y%)!l`rAU&L+QuvHefq1N1iEYDWbm!2;jzHK~@DD(HoZB zH~238tQxx^r!21bo^}Ewi93FeE7EbryT5`rlTyd#*1~b7Snx#_@^m#6bF$@Yi&<^x zJyf5JSH8RfiVcbbPDyWPQ&SKD6C zOgt6A7qK9QyCky;a@%2BYD>fT$cb&L8j+ZN!0#t7AHuCfTv~TBu{*DvOl|+@hh^2n zt?Y(fXuntw2gDSfj~}rnX>WXw7Z47Y7B*Z@R(f#oxYXmKtT`JAejMFhb;E;Hm6-Qr zWpTeQ%hk7Sm#gyG7U>J`d+@sWvhsFJ>xo=RUo&JSns0&z*Qy06wsde)!vsv|n00u4 zXd)=6Natb+|Up=!E_3GRgwYg zFnmowblRGqYzaoPImagd2j*8PvdT^3g7;t5=EwzD5T_AU`ALbQ`U{|^lOi3;K5Rk8 zZR#dA> zy-c&TygE3dBVwOktH@8Etn;Z~NatY{Iy>ID?TqOHsTJNquZhcvT?p(#;8_om9!bEP z8>PrNWK)qZ5PHjf?*}k5zgTFgX~m-GYd=5wXya*j-u7IdJ{=&%b>EW3#P#M32*t(O z;L=!fzg9^DPTlNpYlNF%bA36qab;G`?2d$-wt+WH&*K@_)44bM+Wmt&aY9^PrWl7- z6Eg6zn$?Dr!(Vc{aY&@B*DLj7>;I`i#M9!Rbei_%gt`By7EWg7q=wV1`>TL%tao$Ip}7hSy}P0=?UFec&KfZ5Z5nu@9z1Txh+prqggk_i*w@dvog$jKR)s?#Am+hgOe01D)71*`7io|kb9UD{DB@J{Ts~BHOA2qw3EF=Y@H#W z$MrJ~JB=$J@Xw;AX$5ixn%>W$Qo$#19Pj|G18zVIM9fh?hKNQ6!teMAn?m?6`-70D z99`~&RabXiyW3&(Onq_(ZRC6r$gE+*KH`hGb;2g=(xsNeG4c6Fk@-JPl*{!*`k7>r ze7?WFB7uazDHurXn6tITaN)!Tv65DkrnBmqJLoZj3bh)7{C8IyZ-R!|unT>Y4mESf zcX#)AH>hmeJ@e2C0n`vGcjv?ua%_5b(Yhca?rpJu9D8*3Y&cFuxV|C?Z5_19Zq6DX zn-C{DY2H6xn1vpxRIu`ZTf23`-I^SVjF%*S1+&hSf?p^H(Ta6NBx~rT_yg_fgUDqso8WYd8Be1|uVwBw_sMZ)ll52ffjNECvq9U2hM3b5+rFFplA+ ze$yX~Vr+JjWLQwRU(|XLzC>6yNGEH4aBNH{a%{3=q@ktzOuXh%wY*)(Cl+DA>U5z4 z<}%m+97@AB6*f7_^Qm8VOrLw1wmV^PLS8MZ(@uOC6_SII9mdVtvcag79oJWyzrC^h zmsT)-TBDrM_wEQDLBvrg_rYn7Z^Ov#(B#+NX{siUm(Ql1pgVEp+|T|RbM5T3m8hTH zRcI@#BF=9kD2|is%|3m?HD46J&-wBxB`r<>$ylN(8|QM+>VbS#k`X&Qc>mbUigE41 zi?({b_Q*;9qYS~??;)^sCKJ zt7OeY5tP>%0!jQ$O}3!^gO!nSR7Q>hHG1@8kYYuu4a|EYR~kB`hP|HHhkoH{RpbvG zTsSq|&&F9j&LD^?{A!sF8n{e!#ja8;UwTjK{(hfg#op3lH8J}!dHvs|LRB%$*Rsdv zJv@W%d>+emzNU5UE=|^YBC?eMoG7R<;gAN zxmo#!&Z_#?McmpR6Kj{L`a2T?LxZ~0>>``BMw!Cl@}G>%H-Ec&Jij#JS^h3s?6z(I zQDWWuOo3bM5lSj59*B*xI+5Fvx9HmKVUyTGq<%}m)${$RnK1SBR|b`iiCQ2O#dNw_1!KF?_RrP z{?w1BhjE^K)yTdN|LV_r8s*Z%XQ~R>{X0(iH!+zZIa|6P*+?%7frMkFMt<}kpAJ!Ikad>OXCDpEUb&Q!t3?lf)x>GSgOnq@U>wTa^VO;Bk1 z0uIC(8bWKnR3IjRIjhrhE97=|Ik4dqp82psSOq8WaY??z4eEWGn&Xp`?CYN%oMn?L zAj&yir!$g0w~Cvz@0q(2>DjWcKO4QVf5a-Ph+z`_=)+*-_k1g>&Ao%Ov(exrHn?@2 zcF@?6*OWA3vA>v)<#4YMY8K$Xp9UkI78rj-aMLp=OIh595x@%vf`PDz4wpDHV3?ED zQ=G{k(Cio637PnO!`9Ip5y{tvtRoGMf7!!dYN#>WNU|_qg>uX9_NB`JMEKIDP<;RP_ToJEDt-|Br%3FHR zmIyn}Sm}lC$8a6tY)oQ6dW^c85+z!A1O{mh#yf&pyPx)FrhBH%=bCJRnTbZxU)WeC z`%KQriV5~3(Id6&Q{U})QW|36v0bgQl-dsh-^LvWjr7`E1(V5cj|Qi1r~7!D+43qS zePTN5Zv~#$5c0m@!+ndKhS}gj@7rcvu%_D6WPc)V}Z&4u`cpu6iq5aliH<Z=VZ1m!jU%XWHI zxB)m5Xb|x-xF+JT&eWn1u&S?&F(@#XXL(|Yuuw6 z+0;|nn>>evk&AEsk0_a{!@m%n0>ekOupA0TO4WrT{#&^DnI{rDsrz^8$%hkem!H^f zJ=;F^2X_~L6QZL(eC4hmR5Pp?Dr?|KXaDfpz@bvg3e4L6bQ9kME!|W=$YAoPj2~G| zklv@el(W8&0C;vo9cnXNf07Qf$NEeK7|n7*uzN6suAg_=ALmK>eoXR_=lLY=-t%owxP=X>e%u4<~nxotme<; z)2@R+RsJJ7#nmAirRWwE6<#@jYMXz^Y{!J5&*VT=<}> zlJ2R0P7cmLh_P%|>rwQYZNk7N*T4KOr|FK9Je!>ORXA>NXBGfCGn14-_@`#+l#VdY zqX>{~=8zCxn0mQ5KX1zBij;(0050qS;D&~bdHC>_jjuguVvVX}s@&4PK_FdWPsDlW;u;fld3hwXQMaK6L;{RsCV%hJq|U7kOhs!~8hDx$h` z_V5S_C~?H+^To6hKBe~k^SH8)b?F@gfb_EyUV`h1_$%f@auYt~nJ4L@_y zvyerin}MQRK@g{s3~c!>d-l&HXcd5<28C4HP(ALWac5NJp#tt(S;c(MYjNK$6BN;$ zM_91eFi3{iRy-2YR?mn)$Kg5*mQ0_4*#QMNWQqqtk8jCnTHJTnY#@K>$Q_qddeTIq zp(^IIT6|S$*iInPbr%(H#>emV2n#6%ZP=|EZU68~J-h$eTt|voe{P-g-?`|K3)ojYX zNeWBGP}2zz3zXbO;zaU?bA0`nt7S5I4CeXG66C+47XPxMwT)Zf3QP_X&R$a zmaix0=HI{&9h{ZXNbd^Un!OtVMV%+4OdK6z8RILSD)I-PJE$f;P z=b@Lmg7azteH@hxg*=DrZ!4xdbz|TX6y6Gie2lRwl+}DTf*urv6}!!MSeE>ISO=Rku~QNko&#x%5%@~|Fr;ROx-y>#nW=s)~O}WzQp3QIrdQz9dzMn z#4Lj0<4JZ+aS4!C?NxsGym?B{t_kkkxzIZQ^3UNx1WxV~B-f)Gh18Rk2E(<-D`fZ8 zV!A1eTvWV?-OmY48qcbK9iS8x@r^c=e4RYCWMrSPu&|6=t?kh-x88rs0XB^cDj#ey zcYXi8{=r1($SGYZXC6kSTCVk1dl-jh(jEdRy@ofyR=i)qk6ChEoka z6aSq8|0VSswQMSgJ1)fBCs&PBfz;r2-licB0)=GjtQEbtYqF5(S|zN_udf9DXiG*X zE`N02d!27*=-h3-ZhSvC5sXNptYpMH!)n<3Z49aPizlqiHyMz^i@W?mkx%}4gBZ#B zcIfJje9X$nYoy9<&sa24;@2j@1X381$UjF)ko+I4GWYR$73!|FD_0*#_-meNXMr*J z>{|<+?f1x>KGyBRx_Qy2&W{m*U00$^-ovi!M%^(S6oL`mTISxRwTIA~YX;hyQ)ori zdE0pwglt6oXASFaI$%}GPQDPMKG{36|#z+^zX)Agf(7x?uzXB1`(1zYTZO zB2GQZ^T$Vy%Jup$j!)3vdkg;tRFN_^*ga9tq9+ zD8`i&lCk>1122!OXmt-Bb~bj9U^&Jl)g%FSa5!pT$ia2}& zu%!5vGUuPuc|V5l<9p} zPa|o4I*($6d=ADDMHOOUvQjMSj;Y4!5liRRlt(kL)2iQdTPrtxyh30Dky1$D#Vv^` zw2D7Fidyx7jxh;Oc*bLf^CqK9Qc3shdnwwgdPZh_Zu3k+*PJg|^M`*m(eaW``M+)F zM#52TY9ahzBfFtCD&J6n3D%Ml%FmbsiH7-a>x0eZZuPF=EM<`xKCzrXr(DZOG1aCM zbTxUkrQ&YbABaAqw+Yqty>6O*^cNVwn1u!H>m=jK_1s={EPy>Y&%748iPD(Um7Ef$ zz4pwOtafbMbc_!8v)zD8(&*@#n0U$KexfcBT*P=coNpvI!ax{CyxopqqWdxp08FX5KnFWw3FE3fByj6g82iQW<;mjB%^UF6vk z@F)!?oTI#*r zX;8=>ejyH?$Ng{ty2z3>@xY(vOmCLEkN=e-i)`jMd-m(V?+zssuH>_=phtx|BWo9h zV6c>r^9+^F?UFa(*7Si0p@{GFs$Uyq(Ea@*V_+w|_Pc9wB*2JPFKZ_*RfmE=kQbf2 zNF^i7RH4X?UYwf$h%(UU8f4elH4?t?HHPCz^cD0tBthJPFai7Cm87tc|7@+A+S}az z%Ak@6yxpEAgoc~|B9O(ple*G>AX|I5q3Kv;E-|$Gi)KB3aa&vM3bmo8N(>dKCxl@} z1K3?}_91q^x9s!GPlzBfDLqgB8H?R1e60&&uV!b#S=+gKo;%nzCPBC|{R}=vccUh4 zC!r0YqLTHgJJ>s9=&9vA9Uz_j=dg}J1s8`w60%b8aTYgS@R;J~d^teI(E``6yyME@ zOo!3>zJ0?961iKn*B**~k^{I4g3#H$ zEmb33T0zuXtdz5F86$0P+DU7)p{Cm8GMQ=9dWuf&!79_GjDS(sf(0afafW`|q|yL? zsIO;Rz4TV{=k1RtlSX@9vsoza3Je{3zf^!z9P5L?=#Ii!&nn6EUPkVNn{89W!5GtC z^}aB3;X<77fuw(&u}Q=<$!ZY&EeSslzEiz6&_e8t{ zlCRNDFChaVcijo-W_rogrhi-CpZ>c5Xd`!l-QF?KWBCL2aNBk*b=hb;Ya8H^6GhZ! zCOs6V&e!OlW}HcnNn2Yc$;Z4l5HHXOBX{5F=asi7YnAI@TE}pu3V0t07X?5~OAg95|D1ae$4%<9P8%99Rc7Kjl{ z?M&h|rljKDNW^or3cQWSVlj(xudD{>3o_nL|Op zb?Yg6|Mgzpj1S-ca6l-6dCqL3&!{e0A6VjD5s^NR|2Mw9UtW+_k1oitSwDyOzL%G` zm!4=IIY^^Se%!pLXYC4#t!!L2>QGe+O^oaUxsQZN0(l21g^R0uh*N}8E1eBFkb6LK zd~d|?7o8CFc%7nt{C)fDqTJLr1CGtg==*es8D}Y^wP38~FXld17St;8M{tJ(H!%LB zKBvY7=G=cvj>Jri_fJqr)m1fv)Zf&lb9*yp9sH@cP5>!7Xrhk~*dRQ>D5~l`DW}Q3 znE_lFYRP1-$oQn?%Cx<$7;$UvUS+L6jyx;TSbqD? z^t~_L6pJ}=ti920779(t`xU7psfv*>e4On0wcSEB9yzrc8sPlmkNriCyt(sOb4ZN< znumU^?1c}2GMV#Y7U#mR`^{z}svM`V89!Dmq}J@5p{D!-J;T4cc*6v4fBGA$lOOaL zo(CwfX^y{5`yI-OnE{%6+YQx5lJ~r#`@f1h2-J1yfG-2IC;R)0$5t(kz)|hzKmFCy zHs~qnVMqjTSFpIJXw#6sNMh9#?-Mzr6)PhS<@rmg8XATjc8&_-q9UrvLP2+s*YHxquISjAXusM*JNe><*X2G}I;9yY-BfpN619eZC* z%no3gN4%3(ne>-$OZU}BTFZK{Cyrf-0EewG21XIxUf%Ac8K27@`eiTda0;;QSuDL< zwj^;tTJ`qs$amtkRWR-m&$WdUwj2`x5z_m$N|~<5eVOG(Kav?P^-F(aV4OAQQt`b{ z5V*e9laTzn+vtm$-TeC(?)SIzDO)E|T$KtWi37S$Yb{~ry)b~) zPsoH-#b+T0i5?6%0H1t8-!l0#9Fj(VgBOSatu2`)PEo5H4NO24xIrK#3}(}310>oa z4tll+}a11(jRk4TNw!iHr zi5Q3zh?q8fe7L_cfEu=AcUGqWJKft8P1@R6Y?{Lnw9eGq*|8>akMAd1m};kfI!u*pNMMd1d7Ap{JPo`X3Gg(b7k{n=sZ`G>loyw8mPPg%TNRr zJ+0t~5@9PIBIqN*QzDS7u`k_%Bk(e+DSB}cuvezVoFSy?{3Nj>i7o;tO<(lBS{H4q z?D%s7&B9Z5htR{qt@_vE9Z(TgTkPV`XY)1rZ2VV(;mMk>SXx z4k!Uw>q7ZNzcnd4P@~S*c;!eXSggXCfjj^gEAFv|V_`|u8LUL!eKmDba`k0Pkv5ZN zi)Nw@b`T$#Wcgcamkbb?;qOP8}IoHq*}kU4$M_w0JFRkbYb>QQ+b0I zS1{BHuec$E>Zwka(X!hVTKB5O$6?LHUwk5_dTxvRM`F;C|UMpk;z^rV4}^ zLi^Ej1{NP+Qucy9_e$)B+k&(1ouIjLZtpaHp%&d-S!pXeAdqA_cu5rf9esZ9?#6=x zfUTgYSqgJbgE2)JJ=xb+q_-q`Rd8KCuLKTlp)wTXfo0v8ntoI%(=6ED2b~dR44QiyTwDOHNx@_2P;M&;S_*lOZ{mlHT`i({=o!`4$cfw)P zF&+VV=#vYY1gobcaPAkHv4(ce3SR@630nd!zV9S^J^`=8GnC9XT7vve1)wvG#pfpkaVF>J?NN3_ z2mH&z{ZS8|F8HVb$VO1ZdD4H2WIeswL#M}W#~@hn&Hc|J4mf--G|RLqq54K#dB$7I z{E=o}ZqOAr$6xAzY-9Nqvbo|%Bgsg|=(o}A+fQ_1<5yY><#o2Re2LT}_6s2NtN*nI z-`u}6LeSL#Z+iD>czU`7&;ep$<3hXz;5djp`1Fm>wR@y;^PTLj(dswb@)8>#ttZ*c z;Oq#uDbdK&7OR0wzzTADK&3$yCp{eO->usUK zuWS%wpg=Xb>7ACW_5la@uq%Y*OtD6B8-fhC)Sa32)qh;XYhSKRaIfs!c$(K&c}vVR z=3>=C zJ`_7Gy+0qMsBJ?u!XoCxJtx_JtzdzPer)(mXIZDmfvrTX%O&2T(dG_t^T6iyaFYKHb zM55xGd)(spt}y9bd=tQB(}6U+>t;X5$){my6munC&RQT3{dweNK+S5X)UtS)%tozy zs2A{NT)yukR2Y1nSeEN2?N3qhE)^A3I=`KEI|Fr*0z=&qn_@W{#*C;#xnsdi6&<{K zJ9>bx|7!HM?t9a5qxrKI#RAP$5pd{)RkCieJsh<)*wGdZ$7SYM)fDA~B~6e+ry&Fi z-VGhaP#L|PVymxt&01qm#z0I#*|JfdXoq#5l;p1J7OKBG)$bS5#%6W}y)l@B^_$qY zsI3Ov=|i-K$@^q=H{anz(;NMSRE>MQ9IQ$-}8EY0Y`DiJ?Y7uF8rVk+a$NV0oadGE@`(C+{u)k4Qi_YgeI+L+e z32~rYdhWgrovZ3QS>l0I;OS1+vcA`_)P()nWc%}{2CxFq$*6vCjEqjGw01OznwqJl zNdHAA*$h+fjA1t$ZkzDr+_?KOpU!!Bqr?m5z3W!3I0O4BJAAwwu}l5n=ki0biU z+hH*&-`+$G02lgApKCor(Mkuyd1oK0qT?1u+&270C)h6{0RyBbp7b@$a>*cL&Jqh7 z)oxI67C{3k2LHp(yP-u%h4lw0C{X<1)et?muz4#8W0Mt+E+I*IRRDy^C*5}(AXmEd zu4&hb8y8|}7_X)9zu&e7N=kWCRVdKFCkkl!e)iuw>azZpIgl|}EO3Q96=>kvJ_h@a z5}ejX9$-m2{s07`i?z~!+4?{Gg7f?NhX)oV#I=VKiZ)n*mutE7d|EI_zHJ(Ie~DTU z^@75iNo{7wc5=zuj-&FK$i{VXh^dBd)nr=xLkIcnL?(;SHvVl)qx0rU9l*KoN|dd8 zBJ77xD3$^3$}i^hEaCPF+T>d}o2s6Ye(%pPsHiF(Yg3V`FkZKu)0;$>taIli0tAZZ zQ-^g#WwATrA>?d`wsy<1QAH{9@X&hqFj<5L!rPJ_z&`}`=J)|RvLoxE0zrf{81Ph6 zHn!6so_$gCzhqZ34WIizlxgsIoi4d()v12s+1fCt!akFeF*LRT`*=G9{u$MzeV;fq zF`%`htuSCi{Kf+m$0^3I1XlonN6IpF={_a>XJB_o-G$WsvCP%z1j=Hkxp{V#y(K3B z+%;MF{g7xRh}!!`MwSYefM%EDu?LIA`(0*Vortg83Kk_50vm*O0)K~XBpox*zabHU zLK=P)uUbl_#{Wf&TGsC?Mk=%Q~cuE5^MR;hCXasOR8G zHkcRs*OJbhL=mb8-8onEX=RI5Li8OzyQCYgWaML;hX@&HtIsAFK9a5QW-!f86ee$Z zP!KS%d+L*B*ZCv>)J}*e5zN<3*|i#{PZ>E|KF-Zgwb^}kz}F|PW6|=uW;9KKI2Bd9 zJjFtNEO14aJe>UFdd6RY%{lU`a^At{{Z#WXFu=qJ_b`(^m(-st?_S-8?LJN)Y;L}v zKVQxxj_P2;Ac3w;hTfP&K^Mi$2I*z)yu;H(_2)bwzzP4i^|5e*;tl3Y`eVJ0F!UqN zIHOT+uu6Ef4AP2Y?(6uKa)yz1R!0UbOCj{O|0{GhL3oP6CxCp)di|uB=1`<%{+l;4 zQ8fM2>{3qn1vHM!vMzK?_TaotRO#@F9$}%aN{nC1NWihy36N1SffYmNKMF}pN ztz2)1V{CfshFti*Nl!XU*zDiAmX@Z;5gXI#LskFj8~1{iCmVBN(=re;v1QXmLTG@{Rm4gv=F~zs&9Ys#rb{;O*nf3Zy05 zBppc85f7g`iA24~(0yUjs1fIQF1CrqVaapp1P8M#t04&M?*BOPMKNCHHK4q_q84Ox z(;TtMpFRwkEvPM&1Fg77j^8#15Dyky-?Qym2>Ow(lW)Is9@!wei2{eG-JPN-eu(DS3@==^>s38N# z8D^E(8jAF167;7LLjggK3F`YWB82>RHi(YHZvW+Ij&?D<8N3B%zqBsB0(TF zWK(}axo)r^gG~*Tp^HU3KN|ol5xmqgz*96ZESaY$L?;Lb5wDmN&+tI)kZcB_At?y| zz#XIX3{0|%XCXjS{w@CLLG0bX3ok|{j)P;?cUqEOTzNx^zV`b%QExVDgDOMOmoY)= z4|pfkSl!>VQynj&b86bz3woknC`DxLL0$I_pNeN~vUV!kWS0l}|MoBa?1bs$reT5k zeyD4F>?oehFnRlij@=PoKrbAK4NMg8aUm7@k`f4YexT%s(?^O}{l(1yDSCl2bPTw7w?ZQrDM56Ma+U^_=VonRV znPLHt5qc7-4q0UR?<>Aq(F2d^4p29G5vF%;uVz|FHlthDWg@0h$FU(0Fc00(8!vVc z{l39r(rPeAfI(2Ui`7687r_08gsx^aQKL}b0cD>4cS zSHfHo0Uim4ce!oy@U6D04z?g(>(9v-IUxDH&!`L4XYy8oeOO-jbHZJ)kn zu5oONL1E0~t1Ohv2GQzS#-teJeRQ#b?>6jtl@&vT$e)T0pIR=v zc=^WfCP_8OWj$KS6giUw6bFBockby`GKB=726pTVgE@Ywe0U9lqs71^Nm=OT<27l0 zh<>gaoj|eU4Qq>r8@l@H zG0XJ;)T(*L*8#xrMjC3>)acb4?q%7z?H`Qp68BRFE!WVvR|a?nh?%we2y9?uPwG?-bm;STR=%T}KV&G^911(*`HJK|xf z#fCC8dW$2t6Z#s!>Vrw<6gJbHG(cU#^XF9`2y9;BT3R784np`-w@}J??@Sr|-fFPn zzN;C%yF~lD@w!&^zxCAz1#khQCcg15*^MB>t*7ftJmpYUJnW&pseYv-TqDyC@CpWkt*pzI?1mJZ6RdUCib8Qkv^x~^&iLr0hz&zrU z3GWaDJ~IPb5Q>wz|A!A+lDuNztK{bqAwv>@#=)5If@Ze*OAC@zXz%+O?%o>{$7lZU=%7KG{_yGgb z`291w-Dm>b#kpW4zusLBZuehse!D*--0BFj~ntd7dRWuN@> zuJivkOV$bIqQp?|P$alwoI;v-;^qNC=HczMfVA^>FnQn^a*rXt50HzOwUms65bJ{w z&?!2eB3f!3suhOqeYGEkc=|p$_(JC6QoG-A&s$a{Vi7yvVIi3FG(UgjWkdDm)B1y- zhNzck8XiD2t>$OT+fE z^kchBXPy6n*h>HRV9vSNI`{#PK@vQY!7t!i)`&=wGt(?nL7NtFNrXE1rr7PX+M_y* zf)E{|h*kJJ3f&O_0$@7m3Cy{~WiTm17a3W$4>M{>TsoxT>tr<`KdD}<1KEx%Y%lke zEh2aZ4>2*x2aU ztO|Y|YMiKy68N79Mks?BPIi`Ai2!n^*Nl*h#EdN0ezD#XLgbYH#{Um(;$|3}&;*&i zS{e<=K7)FOYd_of5(pn1+{|Ba)dofkSM3sTX+;Ggi-e32|X z1P4OPxfvx9(mIF=ZNu;~e~V?9&QIdNuBL!5gaJ(yYz$5lp^$yW0-ImfKQenH?aj<% zzL0V@2Fak&6tV|aw8|hYKhyx^>wnYhK~11nlJ9oT#{zzPSWC&OesstQ4Y|yr4MpD$ zQ)v2|wArC#giA8GrUGRGr>b8N4GwA;hYHbKu($A+cjA7OC3RpaNYmBHal`j^F5V2o zPr?rm=heJi7akpAYI<|kstj?SHa)~~Ffq3RtDp2FA*$Qj=FaZd1ulIswG9*@tB%yC z5RB|9R4&5h6!kjwf(Suz|2I388g;Rwq$sNxSPX)ZRC&<7!L+Z?5I6YJ5IsO~2)bk? zB0T4B&Lx=qWiuO`)G%41{fF;wtm9@?+Hdu7MN*n;nJpb<_IOtV z%t)K6P4F26(I`SA2YVMj7XFRu5>if!n%J@dr%N1*li2_2MVbi)Ysi53)aS`i^vCzTXGJ@|&nyOO=(waKD2iWR=Jl4Otb5A;3Z zd1@WFQY#{lIwKU_{_%!&H zkE%IWkU|itj`<7mZeV}&u&jI-={0*TAJnJl2`L1OpuG>Z86Z~Uz-Dv99oiU;ypplyy>@IgVXXrEo080d5%CWo<5T^1j1C7oZz0DsAm>8I2S z#GEb}U?tChz_caf<|Z!+)7m)51B-evCktxZX~s%)M~fRiaD~>*$G4PE5Dj8I36r%dYpS_FbTRqBkD46g%dDLM}!4y1@PzFf|w6`_g*+RTd>gbDy+w6V{Pbz>D(k28k% z0rV7|hY&lK4~DfeuKk8?{KQyP01%T|umG}S%0Ul+v$?q0d5{od8tDw|JC};0??Xb; zRieWX`#=Q%F^h@8LqO?KeS)p(4QeH{sjk_W|Id!w~yI1pqOti8BWIb0&L( zGyWm~57BuDu>oo@{K2)dWf41LVnv4`_KOMtViBW)?`iDz$bwI4HA;T!PeD4_Di%Px>|G?;yCDs zFA-*3@W7so%l-?77Xf&S&O?X=l``;c3{KyLDx%Mc4nrIh6#zuI$=|%848TQnCPM0<8D?|q(q#;xQ5SudL zk-^@O<1x(ow?J_LyG7dq5~14D=Gkp&AKmmSW7k6KFAn? z0Zays3=qrE0xX6B3OM06TC-1V6%_!)E{vVtzq!oW^&tl7VGcGKKoilKh+QcI!yyK~ zhjD2yHR2)mfC>O&cY=e1<;A!%Oyc}OFiZo`TXZI3lP)pvP|mQ=n^zrDD3aBp0}*0M zQ~(gWH+IH=UNYu11&mL^&3OZ~qJY$;f&oVXb_6mW61FWaO>`ha%!vvB;!uKv16_)F zli^&Zoea(ApnK|XeK%rF-Qpm zVmU*M3_MEas)|1ROH!riP=r_uDgX#+z=8#k9Zw$8i*pQNOd86;h5!fv;4C^DxlJtt zk|l;%#(9iPCXWr>7IOhN_unUk)PV{BLi9A?r2)=Oi)1~(*Z>*W0M0M~;Qau2iO%LA zDgdMcP%^Lt1|(EMmO!m^3DFM~0EC#xq$fvo;F3Ckb6FrD1#rj$0p1t1CxM|<05ZUk z3_uA9$((cLm_G3-w6{JX#-jp&5c6V_pB&_?m1Nzx#Jd9M#u)Dgu&x~F3MvlD7;uRL z=>SUy=NU4{(lruKkK7fT0~*37#B8VlAVi>%PmOHhR;%^pT-%v5-jQ?W%NRNW=m4NC zfYyKhk_io}KM6qLpT7zK(args: AppArgs) { let bounds = Bounds::centered(None, size(px(1600.0), px(900.0)), cx); let initial = initial.clone(); let show_manager = initial.is_none(); + // The window/taskbar icon, per platform: X11 takes the pixels up + // front (_NET_WM_ICON, decoded here from the embedded PNG); + // Wayland resolves the icon from oak.desktop via the app id; + // Windows reads it from the exe's icon resource (see build.rs). + let icon = image::load_from_memory(include_bytes!("../../../assets/appicon/icon.png")) + .expect("the embedded app icon must decode") + .into_rgba8(); let mut root_slot = None; let window = cx .open_window( WindowOptions { window_bounds: Some(WindowBounds::Windowed(bounds)), + app_id: Some("oak".into()), + icon: Some(Arc::new(icon)), ..Default::default() }, |window, cx| { diff --git a/tooling/package/PKGBUILD b/tooling/package/PKGBUILD index 46e15f76d..919f73376 100644 --- a/tooling/package/PKGBUILD +++ b/tooling/package/PKGBUILD @@ -36,6 +36,7 @@ package() { install -Dm755 "$OAK_BIN/oak-worker" "$pkgdir/usr/bin/oak-worker" install -Dm644 "$OAK_ROOT/packaging/oak.desktop" "$pkgdir/usr/share/applications/oak.desktop" install -Dm644 "$OAK_ROOT/icons/icon.png" "$pkgdir/usr/share/icons/hicolor/512x512/apps/oak.png" + install -Dm644 "$OAK_ROOT/Oak_Icon.svg" "$pkgdir/usr/share/icons/hicolor/scalable/apps/oak.svg" for f in "$OAK_ROOT"/assets/i18n/*.yaml; do install -Dm644 "$f" "$pkgdir/usr/share/oak/i18n/$(basename "$f")" done diff --git a/tooling/package/build-deb.sh b/tooling/package/build-deb.sh index dd4f8b9f8..eaf75c4dd 100755 --- a/tooling/package/build-deb.sh +++ b/tooling/package/build-deb.sh @@ -26,12 +26,13 @@ STAGING=target/pkg/deb rm -rf "$STAGING" mkdir -p "$STAGING/usr/bin" "$STAGING/usr/share/applications" \ "$STAGING/usr/share/icons/hicolor/512x512/apps" "$STAGING/usr/share/oak/i18n" \ - "$STAGING/DEBIAN" + "$STAGING/usr/share/icons/hicolor/scalable/apps" "$STAGING/DEBIAN" install -m755 target/release/oak-editor target/release/oak-cli target/release/oak-worker \ "$STAGING/usr/bin/" install -m644 packaging/oak.desktop "$STAGING/usr/share/applications/oak.desktop" install -m644 icons/icon.png "$STAGING/usr/share/icons/hicolor/512x512/apps/oak.png" +install -m644 Oak_Icon.svg "$STAGING/usr/share/icons/hicolor/scalable/apps/oak.svg" install -m644 assets/i18n/*.yaml "$STAGING/usr/share/oak/i18n/" # The full shlib dependency set (FFmpeg/OCIO are statically linked, so diff --git a/tooling/package/build-rpm.sh b/tooling/package/build-rpm.sh index 217d007ab..c3ba423bc 100755 --- a/tooling/package/build-rpm.sh +++ b/tooling/package/build-rpm.sh @@ -28,11 +28,13 @@ mkdir -p "$TOP"/{BUILD,RPMS,SOURCES,SPECS,BUILDROOT} ROOT="$TOP/BUILDROOT/oak-editor-$VERSION-1.x86_64" mkdir -p "$ROOT/usr/bin" "$ROOT/usr/share/applications" \ - "$ROOT/usr/share/icons/hicolor/512x512/apps" "$ROOT/usr/share/oak/i18n" + "$ROOT/usr/share/icons/hicolor/512x512/apps" "$ROOT/usr/share/oak/i18n" \ + "$ROOT/usr/share/icons/hicolor/scalable/apps" install -m755 target/release/oak-editor target/release/oak-cli target/release/oak-worker \ "$ROOT/usr/bin/" install -m644 packaging/oak.desktop "$ROOT/usr/share/applications/oak.desktop" install -m644 icons/icon.png "$ROOT/usr/share/icons/hicolor/512x512/apps/oak.png" +install -m644 Oak_Icon.svg "$ROOT/usr/share/icons/hicolor/scalable/apps/oak.svg" install -m644 assets/i18n/*.yaml "$ROOT/usr/share/oak/i18n/" rpmbuild -bb \ diff --git a/tooling/package/oak.spec b/tooling/package/oak.spec index 379332bf2..165a5b766 100644 --- a/tooling/package/oak.spec +++ b/tooling/package/oak.spec @@ -39,6 +39,7 @@ true /usr/bin/oak-worker /usr/share/applications/oak.desktop /usr/share/icons/hicolor/512x512/apps/oak.png +/usr/share/icons/hicolor/scalable/apps/oak.svg /usr/share/oak/i18n/ %changelog