From 61919d6ee2cd1d20f1873e78a77bf327c5e27f11 Mon Sep 17 00:00:00 2001 From: fhf <28811207+fanhefeng@users.noreply.github.com> Date: Fri, 28 Aug 2026 10:46:00 +0800 Subject: [PATCH 1/3] Add Dated Folder extension --- extensions/dated-folder/.gitignore | 4 + extensions/dated-folder/.prettierrc | 4 + extensions/dated-folder/CHANGELOG.md | 7 + extensions/dated-folder/README.md | 21 + .../dated-folder/assets/command-icon.png | Bin 0 -> 100560 bytes extensions/dated-folder/eslint.config.mjs | 4 + extensions/dated-folder/package-lock.json | 2835 +++++++++++++++++ extensions/dated-folder/package.json | 75 + .../dated-folder/src/create-dated-folder.ts | 62 + extensions/dated-folder/src/lib.ts | 157 + extensions/dated-folder/tsconfig.json | 17 + 11 files changed, 3186 insertions(+) create mode 100644 extensions/dated-folder/.gitignore create mode 100644 extensions/dated-folder/.prettierrc create mode 100644 extensions/dated-folder/CHANGELOG.md create mode 100644 extensions/dated-folder/README.md create mode 100644 extensions/dated-folder/assets/command-icon.png create mode 100644 extensions/dated-folder/eslint.config.mjs create mode 100644 extensions/dated-folder/package-lock.json create mode 100644 extensions/dated-folder/package.json create mode 100644 extensions/dated-folder/src/create-dated-folder.ts create mode 100644 extensions/dated-folder/src/lib.ts create mode 100644 extensions/dated-folder/tsconfig.json diff --git a/extensions/dated-folder/.gitignore b/extensions/dated-folder/.gitignore new file mode 100644 index 00000000000..092548e5fe9 --- /dev/null +++ b/extensions/dated-folder/.gitignore @@ -0,0 +1,4 @@ +node_modules +dist +.DS_Store +raycast-env.d.ts diff --git a/extensions/dated-folder/.prettierrc b/extensions/dated-folder/.prettierrc new file mode 100644 index 00000000000..fc0f5030683 --- /dev/null +++ b/extensions/dated-folder/.prettierrc @@ -0,0 +1,4 @@ +{ + "printWidth": 120, + "singleQuote": false +} diff --git a/extensions/dated-folder/CHANGELOG.md b/extensions/dated-folder/CHANGELOG.md new file mode 100644 index 00000000000..79bdb125489 --- /dev/null +++ b/extensions/dated-folder/CHANGELOG.md @@ -0,0 +1,7 @@ +# Dated Folder Changelog + +## [Initial Version] - {PR_MERGE_DATE} + +- Create a folder named after today's date and open it in a terminal +- Preferences for parent folder, terminal app, folder name format, and revealing in Finder +- Follows the system default terminal when no app is chosen diff --git a/extensions/dated-folder/README.md b/extensions/dated-folder/README.md new file mode 100644 index 00000000000..1b13ce3d251 --- /dev/null +++ b/extensions/dated-folder/README.md @@ -0,0 +1,21 @@ +# Dated Folder + +Create a folder named after today's date (for example `2026-08-28`) inside a folder of your choice, then open it straight in your terminal. Handy for scratch work, downloads triage, daily notes, or anything you want grouped by day. + +## Usage + +Run **Create Dated Folder**. That is it — the folder is created (or reused if it already exists), a terminal window opens inside it, and a HUD confirms the path. + +## Preferences + +| Preference | Default | Notes | +| --- | --- | --- | +| **Parent Folder** | `Desktop/temp` | Where dated folders are created. It is created on first run if missing. On Windows the real Desktop location is used, even when OneDrive or a policy has moved it. | +| **Terminal** | System default | Any installed app. When empty, macOS follows the terminal registered as the default handler for shell scripts — the setting apps like Ghostty, iTerm2, and Warp write when you accept "make this your default terminal" — and falls back to Terminal.app. Windows uses Windows Terminal when installed, otherwise Windows PowerShell. | +| **Folder Name Format** | `yyyy-MM-dd` | Tokens: `yyyy`, `MM`, `dd`, `HH`, `mm`, `ss`. Use `/` to nest, e.g. `yyyy/MM/dd` creates `2026/08/28`. The result must stay inside the parent folder. | +| **Reveal** | Off | Also reveal the folder in Finder / File Explorer. | + +## Notes + +- **macOS** — the folder is opened with the chosen app via `open`, so any terminal that accepts a folder works (Terminal, iTerm2, Ghostty, Warp, kitty, WezTerm, …). +- **Windows** — Windows Terminal is launched with `-d `; other apps and shells are started with the folder as their working directory. The code is in place but has not been verified on a real Windows machine yet, so the extension currently declares macOS only. diff --git a/extensions/dated-folder/assets/command-icon.png b/extensions/dated-folder/assets/command-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..dfca99734700ddd7b7d636f292b339f3e08a0c0d GIT binary patch literal 100560 zcmeFZg;QM5vp0;py9Eoubs=~l1b25?+}(YHySpyI-66P3fB?aRI|K;s%K|Uo-_^R$ z^HjZmz&%w{)2F9D(_?40XQpSPRFtGK(a6wXU|=w1WhB&KVBp?JI2aV9x9G-u9s&ac zYi1)Zu3{%HE$(FR|GaaTpIX4t+3_B}T&PFiV4NkVgzdv^EJ8Om#=&K7ZJpdpt?2Hv$jye*gl_Na zYg~Wy5mzNRm2||AN~U}Wl0W_796zDGnZQN9k?<;N&-KS)kX5%1bq~Fk&SW`GFHY4y z<@)h<$GY(hmg`gVk$v@;Kq|h@5SFm>Z_Zz#aPO8yp-n-(UkzRPw$;F4Wd6rvNwf@^ zLle$@obYKn;^As3Uh!vM#Oum&Eg=lX-`A$r)f|;zi3I-+&tRwvH`P;j_g^sMHq9P3Q8;t^k080jg_(s9L1rb>C|D>g08DZf6 z#eeI-2pbrLf0t2ui~o5N-@-qbe~aM?;Qm7b4yFM9zvzENO=b;3-Xc_I8C^FR7@`mV z1Xx)$x{J4g;cTO! z`!5N>H~Jqo2QBr#MBME@(dsCwP>VacT2S+{bFy>Nil9+bQwzJATMDX4Nc}tf?d=n- zwY$5sAP0w+mlwMiH@lOo6$h7qfB*+4fCB(vdy`;u^Ko=H@n&;$d;f2l{6{_#7H(#) zHqP!gPL9<7}?y1f-mgo_ivBm6Ht|3}h)mGr+sb^hPb z|CaRMp#PLbP*=^u&B@;5pT-d3;(1f}e{laNLg)XA`0w2RiTE#orlXC!2;kq9{15iO zql7vB>68D~NB=ee{>6P80U~I^9RE3*M9{=RR4p(tpJ8Mr#5BBN|8_6eSu6$6dmd~n zc{ojK(#aDr=oT~TDl%bWH!yW}1|h{#+k6fjmw%5v1`<2|SofTafO3@>0fW~u7irHk z>&&{6zS=-1xA<9>f=*4NVMJ)tZCZHmDR6M*B-f7}Ic!*8>Q!rD-L7V{tEaoPds^fv zRW1oG=rc7A3c~+J|JwxrI|}~yL-^mh;Qz;TsEieK#c;?hypQrzuH=fZ=jC?11pLwr z9ci)KC+_pVUC@@FHt5CDs<;`c(YN3@^evll%L1`NIMU_jX5~31$M+kXmsdG+CX0dW zv%tW|{gsc#hy@bvq#};HJh@6mo%x3odou4|pP?^i3qbpG)4WqXDWRI~3G<8@5!7eC zS`*gw9+4-Oo9`LTy)$ebS$EtCL63YrmvQ56C2F_Yc6R$pW!x;!H)SRAf6HX72t@<9 zpUtj;zT085+~1w1&qSa8{;l%!OFI>PyzbV*8osQ?jl}FD&4tbK?zwBZ z0vmQNuB>d<#goO^)@*Wop9X{DwUL{Oa@MhhIZjwu8m%ckIxW((nwWeZpR+x+AU98r zO}a+nLaRl$+mP#NWh3wHFqfX+@L)7k9W^-^S~e@{blf6kK7lL{EEgeHaN=s2Dk0I)kyuwg&n6wqaN11&Q473rum)D z&$N#Fx^>x=%a-aAz|Z>}IWk~M|(O=E`XN;qjCya($*H zJSF?A)}$T+z7b$J$lzxXUx+=S8h(GOg=EMqC6&vPHKAx6m}jXh-n1~Vye8`9bm6rtFn;3*a>LW~0KyL#DZ8{Q4peFxF`E&|=P0v-3NJ0FtwZomamX`h62>kC z6v6)G76Gmer+t)kcbMPvp1?~S=JUPze#iR`Zcv}a(f1ftz5#1Gz;mta$q@2s(bthQ z4*%_k@iZ2AR_JU(+rxWJ&rQhFT^`@La0lphYwd2;$%s5*>JJppu#<3{s84$4vv8#v{xd?iZUMXu}ncls-Dh#v%Fu^v5 z_(P8Ju8KF?@4!8NP8Lt68@En9jiCzM%)cX&&>E4LLOyem>Z9nCANXIDxx~Rqk!%2wL_luaJq}GZ3u`C3s z?TK+F5g9^MT2wD(xgV_2#l*mi24D*=Cx3{Lzta@I$EP!vj_NjMU9{T|~vy zQbqEVGjn0VY)uAHyHvSzUWSt1HMTTIlS`_BVT>k;A`Q_V9Wteta=nUAA4!$L{pMZa zTFO?03gb7C50>g%5>+Kkj>oi?6wDV1eY&}dBivhjmd&2i+8lqp8A@Y^$8INnQHe!o zy26FPZe(UEegg)Jun4{$VdxnvzQPafu)NDt1Ml>4EHQZ35A&RZ+C^wHCpV;fLp`s} za}TJ*VnDU7gd-gJx1V3>%y|G+hoaq;q+k~?f=>4qEI7W+R zUV|iWyS+Aitb)V9HC75ddhLFk25jH8C^@t}!7#ThC1dt(019nfgLWSBe*R)sTxQK- z7s0Fqkl;5Yy!ml_cf})(M5ftX5%Yr;tLJC(BuXpx4#hwnvy$Fd@?TL8o)&$9eI z@_ZJz)-0#TAG#nSW3>aS1Ab_osmOj!|7ATNsfHF(-kIZfts~8oxPz8i5e3KSm*L%~ zs?mj&#j}@wvyiFF-QDf25%b?ba_nuSrq~A@hGUHcfxrVGX*7_28kGQ7to+wu?zn}F z{x?>w-}KWZNQAn5+ySbyX>h}|?fHA{(BN0efP4(H>^be^2tMN1!X9bo>_A(-JZpHL zWM{l(4aM3CJ!WpsQo69llcKNm^h&cq^}I{XT`rEuWhsr-v#Eq{n;`oPlpl`51n|cj zzlr6ssgUu7@zapdq^-26udfK^E;7%(Sn~+*^Jij2{0=sY{Cx^a1+vBY?TfIk=fz9s z{HEh+nA{+{>mb*8s{Hdkm@j0Ge@H$$#Qiq@PT#;Y`h&M8=5YW)!19U;qTKwUw>*R~ zl4?RWJV=5pj&e?3ja;uMVfZ{uwD>?TuWhH#}%zh(JkBU}4(h za;+bWEJ_?t4o-FpwKhwx9_mL34kZm*{?Zu47Lr@NhGK=mm0Sw9cumKxpG+&w;yM%z z?C$_(Eo8^3wipbSC?aOW|At_cVH&K=Ly(^`CYoHz79C9o(xenOd{1hQ(`t?miZ{Dg zKK%yy|2`7oI=-hIwzR=qdIZD?Xx&73bHA21z>@JVm(eq;x*Kf{8}A8p=9JiR@xM?~5Gc|cU?FNHFM zv=#fcY}GZ)>qph^z3VCFT0Tx^{$&5i247l%I5TIZ&n>y9?Z@hEg*$~_1Gcm(%53`w znn02re2-*d3zs%v!#Di-YNI;r$~fP;mY%yR-=Zmo`#WdJg~8H89HWj*9LH~uUJSd( zo=1)#oeoz=$h^98nx|uri$?;s zW&AbN%@PU@n&L6&X?%%SziGLm;Mu0A#u#rt#`{Fw*RjnZ$JGh|UHzz~+*l-mE|oDd zQz3tZmaY*CS%M}RXp*Z!!DAf1-|K6l!&lHD?gENXWy=`_G*bruLZf8pM+>t*=O}L_ z#a7we2|+L8KblG;R9wP8m_eTlH*8-T`AFPt`JAv^o^Z`omIpUdgKD{z&#cTr7tjb9Z&ADNTQn0`Ittv3iDSJvFV1}Xi zG3AJYXjQ#T#@0)dAGc%ZwwNLG^2`pGt>P{(j5b$VY97C+t4Y4eykj(te{b9N#2a=x zY-MH5GOJ6AL;jWfGsw)r!P5&w#iC;os>)TqXp3)v?N)DW?XqY5_s5@!k$1;EPU-Ii zm?`wuYGQ=3T%Y@3b1+q?jvW&k0mc^TDuzpk1{F--6J;bh@p8rhAucT%f7D5|^|mxi z<60J!>{Qu-zuNe#yQnH;E8s8PMeqhJ7udl0HqNg##YtmerFjHnXd?l4}=!F z)W3PqvmnhSbU1PBmI@B}mJe0IzT5$t;cPad2ohl4g`O2COu#({?)GQRvMf?7E(Y0Y zs(80k9ws1j~^*((GQt(}x4};uTkr1#Hg0*_(Msf>2stC{Q!7XiEkw5W4)Mja3GBVIyP7PDef{ufP=6fWY^MOyRc+aI zX0+vOk*td!azALp6l@1oL&`-BKCNs7xc{cosN9#UnJsq!_Xf5!2JRnw)~pEo?kv~c z{fgh)v3tngljnH$YI(ZHCT}_oNwaNBQy1F{ zO>fX83ZOJ#;1I&JKW<_!mLNVI5IvHmN~60MgE;apOW{T4^r3^XgS2)g zg7Mnr)@(0CuiamxR?Bza*R5{W9$MHl+aY8#6+hZdNe=#~z?O8ij+f6lJXki#+cVJG z+L-X9?qJWq+BAcpoIikhQ+!@up|K^J`cdN)G)sGBla9f}FBXtgx~^Q@@;rivNQ}(c z%uEvb4vk6OKbXe+qZUaYJKL@*c^Yary9mIAkVjNU9JIUlem}Xt8WH+Jwn$YB(_l zp2FOJmTcmug49EKCmNzmiee;7RHEz(*g-|F=dtEcbgbXi#xp?DgwdASyd%*H z9;|#v9`fmVy|~knl@%{?mI$Ye>`4cO-!HB>sF<5`wG{8VzpI^TOy73qRn3iUq0!gy zvJX8xi?*k#_VUa12Q{O7o@0?jGH1h|SP_()s8KeHA|l^A{Sd^o%K{5wrw`1_-p9g_ z?TrewJTCgfO(8p0rv6!`p>Z8!0>!6VLn+RT6f{PZrBIt-8crygLBB){o5pOw$ZbaW z;zm0SUe&#rPMGPV*rk6q)~cdPJ84mBUkJqh4!K{P20mya`qUVLh=JtYqIOG;2@vUZ zzN(y(9N-h#()++X@lQtq7q0u8&z-I{@k?se)v>&_xxMSFLe&@vorh&}y4^fG+=y#| zTU5IZna!G(jHGnr6liMHF``NRZiX329b=u*hmPfa*q-Xl#du@rW4*rk0bVkscy#?p z6IyAV3AI_b}>Bq!%AjWSrbCm=Lz}x4lqSJZX-o{D9_{)h_Q_+bS~xGRRS^N>Q!g z;y(kkcp=wp*soO2+v;0C)%!VF5mGh0nDhGid^ZTpLgIA#IquD3x@+p-UDVqdV0OO5 z2R?o0nNQ*2M?SaRhD9n2=>Gv#eix)dS8pAQ7i*->yPYgvN_VXPNilp%C`-t)c84C# zkHN!r{0O2;(LV5H`SuX%V`jLR!+M*`v;_Jb8h7}Gm!W(mSPX8IO;4$VHd`Z2W2@a- z&F}~{s8uH)emb(2?{G72?$dapEV=sH#^|R5)fO$$KDL&#>X|mtDlMS}&uey~mm=5B znJPYVoffN;-OGZ-Za+K3=fi@=_B*ZpWohi*m)klj=n?p(!oLik{1@H^k1k{h1TA^# zpV=eoL8}LlCX}UIB5X1aFT9$w<|q|1oJv#pk9?j@1!_td)YA|MsU&mB1H-=N^R-Y{ zL#Zt*WW-4aC)|yrJmoSICTwDb22yk!CV5=?viaBSdZrrJ!hzq4iSxN5{o`Vc z_Bk}1I15;1v-#$!yIS?!QH2@uw#y^&JOlgWlzLR^P^#pOQ?alRv z1ik`jNk0FD8b4pi)u_G3yk1b%t`8vy4}c|}s*LIc@+kvbzk@E;rdH3NmChd?8n{HH zGGnDMB|?ztZ|{Of?c~)cNe5YX%$JG1M$8pW|KgpE(MP|`!johBI55Psa?Amxiu&hn zWR-Ejr3Qcew&b5Ze^$au;r8%wV6}d9584#~7jDbGE)0t0c3k#>N-GM5$-vi??#mZ)@Pc=_kXv`n% z75#Wg@~ALp%sq69V3NSg0<7@S*9Gof; zCd1m#N+IQi`)&R?m&>GIn$_PiLg0z#sDo+v)bUrd&yPoH3SjeKtHuKgtY4)m<8J&x zd0faIe+Tc6>^+1g85+h5(PuR6mY?6ocgufOxKI!Zx|lwvC6^vwwn>h2R|I%4A&{hH zhNYxt+<-15veNfZt@u7z?p$0@|6}}!5R<5j=%q`Wibw2jNSmulFp=xACNqqoPkDXV zo097o8O)`{N4_-_9xGpXEL!&L)myNU@Gq8?8yG6;^Clu`*6WV%Y-v%oGrL_pZol=i zTJXIGw}8RWi43DXx}VgR-A*9CHAkNF1-six+om2MIqwv<&?kGC5lw@%eqn~CY^Bih z67Qy2gL+E3D7;+4YRs^}Zy%W3^P3ESN^+J{kLjH~KbPC{?iY~f%t74Gv?xm%cOA-P z)9_z3b%a%Drz4r#OYbZ{o;tt38PqIU}fpjBi?Hsw}^6fJ~G)2hYnLq;PYp60Ig+dvg}d=$zhWk>SoWyA49+u zx70t@j6a<7?U1SfahR~V1e&%vsd+jBQ+IIU*jHBV>7g;VMv`xN!VOBW2RH9gzfosY znI6a?Og>8e;KpsF&wRIp&!vrs4K51i$!S?!89b1Cx|l7adWwii5WO<%I`*i$*@?k_ z@Hm>a3Ov7uJUP8?O}@BT{Sx{9A}P_dvb@pFNr_R_Jot#cr0%IX+&0P5WG*>TjmAg# z8Ap%3ycxtS&cY)BqIJX#m#X$Dum=5xe&y zhQ}j9Be8K)zT9>&lmP`jq_3jR$ z?CyD&pNS#01SK3a5Wf6sQlU4>Qe<~4>lV-wlc9aPLT-0o5Bn!%^E+W{_@tv74~at@ za>&BQc0XblN|`Xl&Z+-}#&#ZpBV6T*UHAETId3eUhR^jfhB9g3a5*f#J89hjgOS{| zTiK>kJ#JoZ+l-ITN(m`p{BeEighLI=T1T$mZ}Hnlg)=EC1taZm3=T#j~Z z(e#}*Z=374W-o@Mlm>357}ph?a!G-Mh%Z!A-?&A8$*R8xOiy3Bu`teo>AY-V`P1V1 z!2w!=4zb4#oh`wI+dp>D@&z^*A zDy>fHSLKl3pPVkH9eD>wz?Io$8eE3AG8wTKe%JDexs@2-QQo%vg25G$$eI{kYSG9L zy|HEy&b>|7YR%6DFd?{ZPouyc6r=am63#2d4rD*rk-r|!q~1{jbiBjG6rpg+U5H=xFS)y9^$f08ecMDv`Rtj3B-4S* zgLY@CgM~41?}u{Q@I*yPF}~B6&!cuE-qnRi1P}a-nMk^E~0E2lWrA- z0D$HTqun+^xITxP;!TuMHZ073n#fjj-wp*V~|9AF?#FTeGj;{mxQ5 z8NPcv^-AY^|YAnsAQB5#qqTiJ&A#9Ay zgHaOsBt*b1*MWV9SFZD9ErwG!yUw=kUZ2M(^35)2#b}^l4JI(4b7{o~SNoOo7;D&p z6x(Y1dLbm_03;lE(*%U{Lb{)8s=%LKbicbnkDh_+FY9O9GjY%NXS~t@!UR90s7ILT z)ugnBEVM}TGo}0S4Bm(dQmXkPza95zo;w-DB%E zF6VD*fX|=?*@QShE8Gd>{GIXA=7XXO4p*l~2Gduke@>koVx(3KhLEOUq9|sG`mzZ7 zA`<+C?ipOa<8J;MKXpxq+B&WYr6I<{^5*;GVf!HbIe2pm5CL(kxLcMEKkPX9 zj?I4RU~r6SbWY_ZE#2vtaLo<9TZBAIbp}}N9uJ>4FD-89cl+4NZA*P$?Ved*57@gno63m4_oV84z3a4_dnpL78v%4B zcUkonak4fO3Qqm5Xnyu>CXxf@AdkfUDjzhy`{BY;xGS|*$C9Y@%-Z1j#o(cU{RjQW z#^zuJ$9_630!qq%c40>j3rTbYRWGNEvj<6X5=2Pn6OBmR=9N?O$0qvl2XkS#{yNYd zbGAlXH0rdA&&a|PyOj4-Tc3%dN1gGA;l8fNDXev^V|Qk5kLcWdcUfo-;e!qAZI}%# z>sfr+J|4dHlFsWcs`KAxf&O*3*>T4rH`6)py2h?kuv=f5HgPZOjOM^ouuO>Mz~~MA z4rerq9!xn5uge03r8T;hrJ%&nHvi@wqAH#=k8hJ?U74)=gsK^I*!9k(W!`#Q-ysi2 z4K9lz*_x4XcvC`D5!x<->4R5Pu5ZVwLnc$bLnqvKd#Nwe*R zb^KA{&K~OW(b~oj5BI559dnP5AIcTR<3`G7%g?p!(!h%=HGI5_mEt#=ZXaS!|K@qg z?Q$6XdAI!urgubHy$g_~XylZj<+L>p3K!B5!dxTm)5ZWTT7UQC0JaBq_Ox#pwm(!9 z%?h2z0&5(UjQ9n!(-xN|`05NQ3_+^<$hJ34xn}0>7?25wJ z4SpN|x+~nL)0IuI7KtY@o~yp7_=Fz0^ZqNsnz;JgVkRp$`l;lyc)~+p``Hw$Q8nb- z;48_4;ElV=s*XmM{a=>?m#@dxY-Bvr@AdI8ixQ8@(2(ksDGBxyts-gB-YH3FEU+{Q zz|$(eqi?@D{23;?c14xn>vCFi8>8=3o7a2cG`;@Y8-3b#9kQ6<=#kMKt;uFCy^auj z!QGEs*L5|nYy>3+R&P9wJyLmiB4=QG-JemN|NZoICfaq!!I@QiQAXg?62#E=;n;Ni zN@p3RRbKz6KfCJBNcLTS-iWb7(;7C4jN?ux=BiD^n!*kVQMQd#$makACYJ-N4Ji70 zb;Hkalp1H{r+f(sW~o$#r`7O^e9YaHc8;(E{U%#k%@%$J9msor_ zl;tz;E!U#|?N7NA_L(oIstVNYv3r$cr+-S*5H6B_CB5 zzFzB=>x=~=vjVr-TXf%@V?tUsCiS2EHUqt!x;$>0D(<(h%0y4u3hXj7RZDtZFW36V zheywPAWN_E7G`!Quif59JNsizU>~#B#dWLm=PTmZN|3kz?Zw$0qHvW;#TWzLA}^|e zp0ZzfP%HTQOFjZ6Md(k8uc(T0sSDZ153y=G&Kdz1C*=&_j#y+}&su-Vf>1gtit-CA zYS3sBvzzSM%um(AE1Z8B$%3dY$K&?=Ld`*@@Tpk|6w{>OG=V9d)CNXGoZ=nvwd1WL z^Q~yNUG3QNsxPALT!f43T!x9PFRC*5;XeqFSN06vi-zg5$LSv~I!`ovAZx2{I@a<4 zotkr;fNj1p!RtU+V)t!|ktsP}r1>g-*@9k9+T9_i$8diU^>SsAP285HfrXm1R^+J{W| z5MK4nnAwtm^qVS!S3C2@+jN;e=>lC#Z5vif0zeuXisF;W%=D2WR1){7Z%odFuVOnl zy8cN4Lv=u()anxBbI|6XTJ)ROKtAd-n=evd(jZ2s8^LoeoorW%5*fbNM)E`w^1GiE z(OzHuv6%RIjxy+VP=poa+1!xHfca^1(? zi)F~=#s+cVa}n49tFwvlu@#n{RXE-vlZ)M0@;ip07f0p++t?Re-QBm<&aY`jb22r9 zJ=t}Sp@XLrj+R5nh{4S_bHe0=P*(d{!$r5U_Q+o)g#@5@affUXoyF(SYAT^DM7R?L zA||nPf*-TNnwpzgYB_xDtDjH~uLveid~^eRShI53Jg+p2YZeVV>u(pwM<8rnVOP-d zIS>L66S|ITM90H~+2h8^+&kwO=tArmeiMe-ce9^iMApwtN%24i`c!}OFq|7l*K7XzK{LpijW3k~ONF$b zC70KoaN(gwztB~Lzm8u<(b2J_uo}#m>Ot$Jx>^xU2N;HSGb~LE0W^&6(N!N9z7a)71^Lf+KVj40k|7UEq^!K)~%( z+#&dIspcYHGcG>3*9Jh2;Q{G(dYP6!ogGhjTHiJCyI!-ZjO(xN1bO3PQ}SNk5k_8c z$h&FU)NsCot!Tq=v)XI^nagq_VS|xjv2YvLLK2@ybN%gho!;$U{JB~#y;O2gN&B&| zwcy;7X)8Q$WKKGpjv*Lf#Q?;Giu>`A?ljE2%=vwstBAcht)+{P<%CWU>Tp3U+uLN7 zptA6G7`uPz{5x}_C&mdDW98xZA5#AhPLbr2_-iG4qM(YWgJ&?Pb10!~4>Rab6;X89 z<(2CpRgi5!26h|ey{DJc;?mNJ9q|+h`R4g-yFbIK=#q^07XbBQ6&5g0DiJR0I$AFC z{f~LMmB%=#ozbs9V|1ZcFB$FzpHZUFOj75%f&sd;69BY_=~#36vAK2rlHtqk&;Kk= zJt>hMAlOpL!qgKq1N|WiNXhXW;q=!vGmO;u!7)kfMd*moL&CObG*xd`$@37+tY%u< z>MP~u=EOft@vQV5kZKf7!jOOsPjLJtzh{ZCQM)Zv3GA^)QR$^$z>|&7h+e zC?xR^nYyv6+c@jJS=fA?^0KV!@!HQ~5S?2WCA$Yfn}|n3WYstN!q4@%apCNCg8du_ zea>^bE@Qq(fs7%J-czD13dV9X)17K_a;$lXaDf9T!7-dx>wnQkCp!{<=nU`8r=v!T zjQ{mAEvV-(E>cdUJ!3-prclUFvlZ1trW#RjS)$7DSC2nA%H_k)We?KdiHg)lJV7KY zgGEy*?qOa}PNpF`_UkC< z+G*p7>SguS()n_vsOmiMKEg|IRcJa^E`+E@_Nx!6DlP}q#elovXYofo71}mZB{iX*sZc zl71NJr`&)Q{Q~cz9*m#3zFZL80+v+VK&#`JPSIobr@I|Em0sZU8T0;et1E&VsPwC` z8h4}G0L&BphD2@QeX4}&#L%8wN2O|~J- zsuZ%sK3$yFfST>6`x9u&61=jNVi!py5Z)f^GVSx)yEe6~II88|>y3pPqo*JsiOJtf zfsmuLGqL9qH zr_at_@;@dmI8B=d6-xdPhC*+XK=lyem}1D{UM@N3Sz zHXk?aBJLNL0+CamhWo{=EC6{sCz=mhFs&T`pOUQ@OTU=kU0u(JIML#j9Ckq_#YFR- z$;ccg`Hx_3x9lELjexlNU)&!|@(c9fX9T~W`p{&j^%cJx=j7t^L0#T$Me~c=rN5fM zqG!<#VeCYWW?#}il%&!s!Pm~g!4DwQApCfCsUI>4{@eJNGVlF39sXli{&{bkCFnz! zK>5l!g_DW8bBid6=*Mh@cm}^+FknQP?#*wnQ?KLhS|4Yd63{3{od5(Igd&%Q`QX{;m`6_+6l7)&33(hmbl}ZMcj?1p16uz?JE78^Lf1z zN=c^Ig1MtTN{8@_bfCGRVWxkYxK|Ts^IEx5j$Ntg?`eTOKiiHp863U?dt5QGl0zsti;&mV z_G5ZmQn+BRHS7@L*!LhSH7MZ21Ix~7EmInx#=~e8@h|5TzZWuNSC%CPttJ!NK|~AE z8{9nPc7c5d35ye^d%*AdZK_~?QxD)@t>S9rXY8fmM4 zAAF6T){dtjkBa_*dI8S^VO37u0V=ylTllg-$Sg=yPv7tA#rpnYeR8z6r#*0gcGWww za$1`WASJsPtMJ06&G=krur!cR+yL~_yaMPT{l4svmhWT_2+#f^_ z*jwnNn{YztGa(dJ(sY==xa}RMq%`?t0NR@kd4awnXyqu22Kb+T&wrG)3wSb|rN=nFf(-eZ09rS*LnvC)GBgPOgsWmQ#;iJikK zC2(1WWyZtMyO|6-&N34=WW9W*71-*PL2SN|Lam@)TY4?G5NrHHcqC^X-4 z!~bwP;AdwW=i94Q_3nM+v#*^ezwa~k37hFr5LI>tJ0^=A`TeEJj^WLE0FjlxU%G@6?uBVR^tAE}bGToCQM{%k*8Zjd*!-O^4XaT_&%^I)g6VoK)<3l6!6ruug-^E~HJMwwsSsiDOIPt5|y} zIn3h>Vo%{u{ODO`_DFlD5!WPIpfQB>mkbo^$H z&(KgPNlg_tgJ9`B=yJqaI+C?CXKrMJarwTrk4>N!!sG>sm*&vQYBH(Nc^c2S^#|{} zAK{lABVfl-^6AxtNHqoaE^qu^4LEyY=y0(x&!~s}?1^00*0a9x`}fG|SKf{%WQU>h zUazemI&KJ>Lif>g10KA4 zr%vp;gFAIn1?bs0LEY9T+iD(cxx>e+)FxT-=euSjC(jE%d+CROn`y-A?$iFrTzxxbU zhRGvw<)wbxJmglUrz)>LGW>|et$-!6Qalng)t`mS)fHpM@~#dt3HRHD;nxEH=f2D| zkjQ0ZjgKF571lC>1lRCkIr8K}OLxm+c$c82Lf}Az{>kW^T$6t&wlDUD^HL`Ge4Jv) ziJ4X2y4IK*J5&aZCqCgYhF7Ub+)))coxTI6U|ooyYnY~q7(fjm)2-xKJbaE}4Z9p| zWw)ub-Tsj_Fx~wli}HOUHLF+HTK=`}x)+DhtHx`j=%4GcvZJbp)2~QF#-qt z7x%^Sc@#ItQ=B1ykrshi4u~5E@GNOkPb7=VBigrjBqkNNs%dD#>1#dUAmn*`O zpMK17B-*Z2d$KPaVSlCEZLl=qDyT4SV;a(2&5?p6B8irxn3OU_`t7EwydFbn+)4s7DA7^T zB|VHo99@Q#@3lteY}{y~OGYR$E_sa_gekTrKq;t!uvpq&n)XsS%g7SNb%tUxiPx=! zuvc_!7P$mQ%y+7{xUkwasUnquYRv=EbHMqj_gTAKBklZg@?i?HPnnnLdB_bWXpJ7l zzq$${FX)b6O~t06naI};7~Dmlcw}?y6Fh&8?2ZBK+Gj)F?kW`FiX`{NeEoX|!isyp zBZi0NkfE+JEhxB;PI?1NA`gm((Ol<53+ur{pI|=lm`0URn`VyHw>W4uN{zh1q50=n z`V;BnfVs8^1wVxViKaoJN7exjys9x~< zRGyrBx}cV&D08w7-L*UrB>;QB*tJxY_^|60A7Xw8;>lh5U~DJ+hl)g$7s5|q46DL;L5;nI1n&yZEPz_7WSB!Vb=*Q6aoj`lDq zWUA1BpK}!aIcqP5{>Tu);^I$Yj1o=yfPk1XAT#VoGxb_p)9!m1>7DJdX~)7qZ%+Oc znUNHBzEyyMFbwJ5W4V}sq9sLI;$nXWdV8zEA9mK?0Lw$9+SN=q1$>^Y$nsy{Vhi-( zYer-A(7$4qY-{k=+M{vYC)#Pg@IYLSrAr-C_zZVVsBrx=-7iz2W)HW~`M@x7A5z?5 zQ`-DFVH!Q^H$TUFvxN*d3Fs}*&k@q6mbm zk7FL+vm;JP#$&XNUgVhp*f4cQtW}~`oD@4D0=iL3z9bNOszYf<-B+07%1)2%*H+rQ z=lneax^d)3sGPU$fGi-wJR+dn&S8qm36E)T&&YP7+1C6+EyYC2IBH&+&-jB;9!!)N`Pl?y^ zTrX>x~-1jEvv+5jafjfZsO;*z*zU zw9+{Yi(Ta&!1?qjfTLeQH#T61esH)~z1 z3MjfEOv8m^d4CG`N{R^uX7iT`T2C03gV{{!bE?|%`Mm->XjqRxqAT_qr^Sb%txLcE6FGm1b4eer>QOtokdKb?Ok>e=^ zQg)n~=^kiA;LW6VdNjyy)g_`T9fmZTH$~KIjMRKJN3vbGsum>KJ4nw$TVaU(rv<^z zLR4~IfLG&CXN?~{c}um+I5g5o8dCTst@Pw^i2CwI_d!PQhq4K&kw3qxnoukd5JK(D@N3O{@=O?`6FTnfC>A|m?1pf;~#QLjrkFD zTZ=!-W7@IL)zyGRy$Eu4jGuLP6vid1zch-gYJJ2G(o%|Y#IhJiIpawsW7P`dc2c(J zdUqTWuOUL(T7baNbfoy6o?R(`{tmTVBci*X%-(*7X;FS~d21sf@X;%m_*T)7_HhfF znBAZ}oj2zs&C@2W?TA@(okUTrtN{4#sGv#$q;Gib^|w{wFx_gVO!q9O#8a-(?UB+mxcsLTfK}>6UKtXa1gqbc|)>%xtrZRZ7WW`{ho{w^gC2H^ifNSpCA@)laF7UF5 zc|B&d(@*>IEU!kWNvLX#;Ad7~AK?QF6_!=p;Hp>MUA*9uWmg*WxnG#s5Zmeaj@1dq zQM;!aZwUnq9K)V7P{_~`TsS!a3ZSWDZ!yc{Xt1ok_ybV(Dd^U#_!726P{nbXyO zHSormeqb$a(M-nm6r>Z__4~x<7j4^!8`dOAeFl?D`T~!^ z&Z^rLY(!!$Xl?mm5D%{sL732}lZ2XWu?#a6!y|)uV2k+?Z%^slss?FvWtXF*hFZxw z2HnuNt9hY`17t7eZ~BAEl}5vSS-w@o90onJ#K(BE z<2fqqbtUV<=4m(jG_so=Zt@p`<-h$^N~(%qPGYOLG~5q>&P^HcadX!)x1V%6jIc#B zr)e-|FgV4&*)AM&y&0dTQPe`${mrDBpoTCniG+^dGcHCL*L)-C$nRZOF+Uz6X@$ko`Jw67Aavl!?Q z>1KnCXE||OT`5)U3gN$Ov!1y<8vG;^Zw0es_ca=tx)i(oAO8g~=pOsFvT)@+%hA@A zbMQ_I{gy11PZ&TD70&&9h2TLIV5th&5R<_#J(AJ-Q{~-|+N4w~@0};$g$ZSNFStw? zUcZm5<=g`J>!FPtv3{Lm@*4GaZSZC2C9vWH9C&EkZ?o!j&42e;&*N6g%I|RI?Cd4& zihxS;0xf!sJbint@I4cN>LBrm;qn6ygMfh%F-FQx1Y_n7Y5+sMp*yVyL$=}evW>pG z3YYtM%8>&7}FxIS(mqqKeFyFmeVP$K-PUykws&JRd_gP5;f31%45Y ze=dzED2;x&&c-BG+R2T)qO)gJ{h2o`EB2CQJT)QHPO3_@%DE$OV{S@Bl}IGyUKp=7 z_DFCU))$M8j@;!2#@Dp)UIU(b#Iq|Q?M}a2{{)3j`gtuX-t=27)h)5i&FnrfEo=&I ztb?w+t?pGrSIzBFwQY8jRb(awmlX0#um5~;C zN;OAT$z;Se>ta~-g^fd+*q!IL7WKslnXaS)a~nouiwR-l00H{&s_=LaBB_*Noy27c z3||SHZE9XUp-cXTot$lS|`Nqw~K z6khIUnJ&#}{EW+z**a;`Wxz@C*)l_6CKu6KK@d6*__NGKSX~Ya;J@6zdH44wqt4~hAwG-89>G*U_N-bPog4Lze+MtG{@ug7_nz+V z;iD_O#Hw7iYcqs5-xCo68gQchph>&3ev*O}25MBo|J46bmIOkvV4E;9+j5x9{ApP9 z?=IAiU9Qj(9>SH)6LtW{<}R{_2Z6W)a0cf>?*QP}04oCyMxBipN7O=GX{^rCIl#!_ zsMaiJ%b*mxlokY_lV8*<(a&v388Tui1w$J&s|-H0jA~`vAGG_k>Bal+-uy2Hf6-e# zcjd}(Z|?{1ZEo&&%H^+oEI$;)tBO+Tt;Sn_^Mj3_{MCD3Jh;F64DLKUG3@rPV9sgC za|!Zr90Qc7Q*#7rQo$lu5=By_AZcmg=yINuy+nUOD^)+N|D>=`aQ)OQ#KE~X#h;fK zbXisXJoqI-PNEp?Wl1y_=_hW zKC=39cYpsWd}Xx_|JbzRS{Ww^zSKN2Z?m=o#{_T2%!TFxqkJLfX6Hl}D{hO9%$Jjr z>s*IK7eG;Dq+Z6SD>M8!XQ|X`p5ZIP^H`&t5Qq&xg5r}a@D9Mv(a}kVI$%IwI>bON zMwm-*G9^`?{53u@S(BNQ=fd)}0=nfSY+lG?g@0Kh*;!65{1?{?!ZX2Ytp;DS@}S>u z4Tr;vjh($eo{mRPv{qMdPxdF1yYHU=HRL~*4FK#^N;ikA!U6t()cGpn!c$}fTpC^%E?lO?|(%a0@8o+;Am%O?`osfYOG&8|0mT( z^(T|d=kAs+T%F(*!R)&qOaE=J^)||r+Ly=u?iY66`PGZVZvQfVivU*zNc{G{1}s%= zpcYwXyzDzZilvk=p)LeeNOG4KfSgWqC~LoSWipAC*7?j&VMrKS72{^eGGgyV4L~eW ziT22f^bjHt8-O!DDLOcO03sL`ZMdWXWijfw#59%?@_VFvea={^q*U0jQABkNY85h!{ZBhqIp^_zw-y3o&9SUAG`X!+duf$o!Mml z-nAEA==~-W116>F?N?vf`sx4ujm`aA_nsRbcOSJI3L65MJ*_F6CW~#0 z5sPdQCve!tIdo7Fd>sU83lJ34f>+7Plc;Ezao+8wZI`H;Hz02x6q0PRf*!nnOBC=ElY7R`i|k467%z9$(If zF3p)IFBB4B2#<0s;726NQ``v{Pgf4^Y(LT4?^Jrny??g-?wxloUVHSlU;g+n_CEc& z>dr^Klf{0!U3z`x_-FUlI&a;2^xzkFA3xmQ{lnft=SkeP+C<;QJFMZGF9Wk^CGNTS z5vv0V8S*_z*$He1{FE!T?ndZU0V&QxE{gQ5Y!OQotz(4Q>^C<7lFo` z0CON8j&f`O&iFiF@Yv8nAQ(;jr&FhlVT(=&n^t^!U=1TpSUwr($n!-{_uUZCg4xRK zQrz^@Bn+DS7lkCF^TWI;^(PUT0p6Lf)T(@{y4pYLY?Zsc)oQKsUrop3_f{`$wO6Op zpSLeezYE(#Op23_x(T@Xci(7~TNfXhOlO}S93TJJ-TlrpyEpHA7T=rRz^|y`_G!)D z@Mbu&J%qqo&s?L<2;k~OHrH~8Mg`q~sio{RIs}B}e9x1j6;7ig$l^>}#ON$OG0S|>&hJ`@ zC7y4O%Hs$2-b-niN#K==x%UoFhU=-Q%8L>XW+2(|F>JD=n?)BDg42>22tj4rlA9Q+{hLXoK6S%i^*x8CkHCHXj0+_F^PFW7}PNh zqc7D5Pwy;|i{v(z2%jK9c9C{M-^`LeCo6vS^tek6z>agmN?Rl?p4z2$%$#fjGzNK7 zFkZ~lKHT1Wq}Msd9j(J2er)Q!*819GyKi0G{mD1~_wCwhvtO&8>z=#R#x?vodFfTT z(kl=4$JN=S-x_rL&GB*P-0i>l>EOIVmZ^^L78ZHts;m`llxE0glnOUc-ol==rj<|kuN$7Pc437US8 zKz_UkC`akxD8~li49^3{H6N0d5M(6D2-AqbW${FNB!{+Dy{yVdTH(EWY9f4sMd~Zlgg;q8%;`8e1(7iXth?F zu9PRUYt_o+!gMzM{AfIRw6nAOMZ7KT623CEir*c;SEg{^pAR6~Lw}5g?O#jDs~BgOd#mlI8!N57YOC?%+O&CVGMW9jJf7_~R>pUG zy3O{UY$(X{l`cr?0pyuJ5%ylL>l(f00Dyyyq-7=R~! zV#VL8@HSgW7LbN3R|<-Pgv|rmlKKf_MFXhne_j`Psv@O6u2nsnK|ReCn?b>s_&C|@-2!skRd93Fh$E%-EU5Jo*QDGE1}GV2NN8o1YA2{GcX*C)(-CM ze5!lU*{I&Et>bHY``8TJtJEr8+%Y)B`vgYi5^nHg&X|>JSp28$$z*sL6Xph5}36EN7=PQQ35QAkyb)My*oB?Ym{K>&Y>G612h+{kg`%e?Ghz8T-@}{i}iieZyby%x3`eoeo!pB`TT-i5pXKDkt`|+!O z)5~}_#koP}_z`@~a0Pw433Iym3z*h6Ymm1`7grD+a26RDl8H*)yN6)JNL2(mOD?HJ zno^2OWg;1gCR{(WKysFB&d4Y%p0JPQpYH)!i*EreAa(ZD*Z`c#Ik;aMPbQq_Y{(TE zOFrO)ii*%o*l)p^hD7gkq%49|PDZ>^*kq}2YgS+YFYZxAS7Clia*={f3jTbef?1CV z6CIuj!0iAKFe#SsJLmO-Uhf7P|5&YA{~VsYo-|ihj;oEv0Cx;Jxah)D)_89SCSCk4 zdK(W%wMO0JbNI>D1}4!me&B}-K0oa*SMaR^eq(ArY2ZbSIZ`NR3(dS9Y7|v<$y77b zr}_ycBZwXj;@B2SVPzVwpTKc{#-J$lMMLbEZJ~3MLn2eoREiu;KS{VBQBz&Djk2FB z3JXyV$ut+0@s6vefK!~^W!XuhSa(Z+)dT ztX8YzYORWwT~*LUC$-XKT*Ge*v_xkxV&CT=zz{{xt<|vn>n~JF0OB79#$_R}LfGk_ zA^E|>lO~7)nS7J6%IhY8l%lTNK2TK2wA>O+TUi`YSCjj2{mfkWDySjt9^lbFjWQi6=LjHVhm`ot+>kV=AcV^WQzqv>U` zs;B}S&$^jl0W^vyT^2AUaKf3RX-$qWAZrF=Ga;GGSjVk;%mthbId4>Pl~fz{`jygf z*v1>#+K}f?MBHK0ZQ#dRYM4Y@m_d1uA9oXIk`^+<40s_KSE%I5BEW-*3T;70s#FBi zCri>qc0pmGDysQmng0w9wV5k;+58J`(k?6jpb4Ikan#?>Kh-3D3L&|y=VYd`NaRin zd0|l>2I)7~k#fS_^&yO6l4Ajh3kdsD(s3Enr*$SdI*){;uRPUvL6fH(6O{!hU9P14 z!Z0$~CdPt_ngb|nbf!Q#4JqZq;hiS_LNBy+e3YuV!ms1Q?fSS<#bS7^cuWI}0fLy( zb+CKj*)*{*205)sqB?jwHM%L(L>^2`0+h`8EDO~pnRFGEq$uGIlP7Uk&}kGhGMix8 zuF@C&%VoRX5txi;IdyD$Xrm{caXy*Y^dOoCJ{+FmSHipGNOR`v@tT8Jw zFDnd2p}s3h$@`bZQHUiebyi?e^ac$=RL~EEeyTprDO38lsNw*Usc61bKPSQq`yBOi za#5utl}SPr&f;U0$sM!EKFq6jWN9qny&AaOFO9|nd`f_yzQ!+NW_nQJct*d+w_<3F zy3F0~oEtEm&9Izj8q6d@*HszBOkANW&xe?>*f9fal~_Yv{iDhP`H4Wq!lOizs;S_X zD4de`VvR8vl_e?rdBEp-d>K%w)pC)fABD3;AT|JJfcloY!-bqd07TtBBEwx^7GN_B0{!GPUBCcav{!XA}bRHtohZq7^P{*f+ulM zi4&t-`KSdR$rB0ca$=MkZJ`JlW|$;!qZR+m4#`N=<6Q$LDf6g>0s!GIIj{``!T(%@ z?O?pp9wiowI_k8qp^GZ+J_tc<8B27<4#k0hgk>%D_#i8G+#Yi;lb2G_Zc(6J^Pfb# zK>fwUCW4llv&@HuHm91=QjrBu;)}5uQFazf0s!03zckQAsK!6mB^N=fAX`i#$8$yo zdIAd4A5y~>6x_B*s~ho?iHRvWe@2vZrhUvbEH)1savpDHM~fO8$A=~e^1qB?*u)|y z{*+9Hi7|JglB|iS(5BR+KQ8uvmA0dqlN!tDbVMk%8DmZ@Q3CN`tce(jrkjewFnXaR zw!|h)EVMJVhdfKUs+)9PkpnLb;kAMgrH2H8*Z`d2iNO4TZ^9!0jv`J1`d=dQ!Q^v@ z3faWvMAPxPMa)3k7d8%Lv4e?%x!a@z%CgQUbU8X{Qq18X6C4J=E}mekAg{#r4;MQ+ z=g|t1*{4xXNqF*EjLoKKoH(*bs83nk37|gh(Z4)xEk1a#nCX-OF?msBlvErU|008R z`kZeI+ar?vD1jRhdHR~_iceuvO=|mTV}elNhi_6uk|t3H&mge9Fov9##k$C(14-Tv z=M(Ha(FE&B4rL)^a^f^svNGw2K_xT!Mg1kJqGWcHCJQN!L^W-%i;&WC{l#{rx&%qX zW@j;jJvS{Z_8+c4IB-ejd7^;0&1_^kSy7EU0d2vT%LT=T#jY@xqJ5^{RS1W=L@a0)AU`?bH-^tP}JlX1~4vt)$HK2 z2x*h<*E0XmrwP~BXG$n*3|h_Fh_6739~t+M5j_t=IC`+Kgzxs9W(H)MiH`s>&>oUv zYyi&WMBGnaIowkPLnxmtGKPwzk;{T{kvW+{Ld76XWhtqQ4t01mIkmun4T>4zV6WEe zvOvl$OtGjsGyFuU+#TSi!Q^RP^=VCs)n)_j&_!0-Ba;WDI6+}Do^oSgi>X8mRgHz# zw4!rcVUs1suaQvBQ=#b;PGU5}hXlDe`!B1JFLoIx;~0;1;uO4~pfe_#pz z8(L+NcMssh#B74+6|phkLZzx~|3W+@Aqi&*TbOeyj6>yJk#lZRO$FhqJJL=|;8|-@ z^X5cpTkw))fR#BmD@p<1SJ1M`A zXi=@vswaJWgx4Z}xDbd9z?qy6egyCi{%oM=$idhthLDEk4AfXmqt)b0UM6@krF5OJ zRNm*KLSLsP+VXD{$iSyQu8KME>uYNzJe6-70X_i@9v1DiH0m6cCbO|OmqxO-p$LN#w-}}qByk4& z^d|u+S&l9zGSpW&X#?6(TUoWwVId9K2`BE+xHLRElz2!>0iZ1AVT)MsD!;M5fp;3% zqGYY%=0Vyq9AWa;g}|=_Y0ko>VM!L6S5M{=gGx#JAwkSE;hcfxahdws5!^=aZGEOh37xJ!@I6E~a@vALMzHH#!1)ZnD_# z#LSlT)1b}0n6cK)fu7*c~#W)=U?0!iG;h;7v3*8mNahbW5;z!{tj{WU;1#y8p| z`A9_WV@bxAjC4qtSdv9O8~-xkis8%ws>y9xRn^T0CzO=Lzb=}blWO0E=)o1IYxZ1O^6&a{;Os3sWjA%f#mG@SMQ#4gEInq-niP;}eTIu7b|pxFNRW$`7D&QQ~C1|EqUo z6EQp*%B0PYHs~YSL2WK&jHU5&)&y3mUDDvf0?#K&PEK-#h?Ejt1YH`e*Lw73J%sF!NID}~LdER0<&-1rU-zOb*27lRhuVwtuOmmr0{&4rd5WDx^z z)bE!j_;Z(LMKd9y=r*N}0~dJMs$ip2UunxY;i7-MyWFy-P+p3{DBu~bg|UJ9zTj8rar0AhW8<{=vYyP|A{|0B-k*s->+P_h`v58 z_26(+?!qoMVhqCKLFogN+#s?ZhWiPT9x?=C18@c>M1KtsgS~=j1>-agZH`bR8)F=i zY4GakCr8Or;Apla)47aJr#Pc9%4v*A%u0z%02c$&ImO{h0u$xNV~>^Au3g7Q;IdrJ zlh46_4-;socB|Ce-H}Cb#w+9$1MJAcTQ9Y-@UKJv{8LYrnz;JngfYRQfAH?RrQ>_| zrXI zes^cP)Wu}my>|y!mmO(8J`g}#bi(CiOxY?Hj^@Tj>B2LgDXm_*ggXiNmLeutUiI}4 z_GL4}+rUHovZLI-ox=m+d0Y!C?1}ijB`)u|(=&L;O8Sd(E}!U*pAjT8{Nx%<=}A1D zOFF?{Vpv`5b5U8qU+8{tpRB`x+YoZWTXZExu@U2Ut`4k+U;Qhy)zxcL<&`Zs;I=P|O*_yHik*CJz!8`QOH*U+cXk2=SAPX;!h zh+pmkoaj%vL5?>r*nkW%;q}@WcbBkvm-PGm-89 zz&FQ@hG1DiP_hgi3_8>(AywflOvEPzl8$QW^rZSYio6d~rK&@I23srD_z?iE!1%`z z&jpTjyu}2AUnPrUq0dQzR}p30IS~C8UV27B94a-vwVO9YY@M)2g~BFldFzw^Tu<6F zuO**l^0QHX48S-rp>hLIt)pGIx|i9L#yCIWZcOs%3pN&e>hP+M8>1TUW{?IQ;-jx{ z9O43})WOAO%i!2#fXr{bFgoS&Gz9$Q-oTEakD9w4Widy868&ckR z;#~xOlvBlG#`7;Pq=FwNKNl=}EQvNpz!-oo7ej7lTU^+}+|GEed;J z9;i4nFXVyFyIAwO*kr&C@pJu?{ZEWb3=Bpr;-K#M4N2`d@nb*&_(OGw4ZsV{K7H>N*@z#0V5^j6WB30i6SM5>z9UrwU}bfTxK>ClROd z%2=<8REu_LixZHHc6HBbQC&^3} z*{trFs{YmQ|1?!2GR3X9By(RP5CI_OeCMdDo8OB_CVNH-5SeQca5vNCsG7Ok>gIkK z)U;na??8+QEl5R6sa4}EOy$kZOGEe^CHy$6Mw&*^X(8}lw(|qNONMjlD8{0UInE1> zwU&{kZ#@kF-rNd{y$$FiNJxPuUPlm{eHWt}QvA0oix7I-t92w`>JT@jKpe%8tlu(- zD(v(_+8+yxll3vW1k-J>8KStbB{YKyT}RQ{K9cASCU^l#c@Z~(bHV6rvd(&6{OpyM z{JEbPaM58C7hg=f3gkk{*+>!lWM<@<4_A)Ag$qov$cz zlpaom2`{12T7keX2DS`NJowfi)hivZc%(IGrPpcvtsuX61jC~V2J!6I;c*vr#e;h4 zlVqaV`qHHtNkJ)6cm}QdT`K@u^E-tHRs!7`KQOoc|KN^h)(Wb=sw!3EE8DI+72j%S z6Y7kL1nGBZ6GlhzL4&A2r;EsGOBb;qIT@$G+^O??oTXVC;vC^aO{%)(Ef*lqK1$aO zE<6F`7@YCeJxJ5)T(%CVqe91XBx3OPP6^q>FaO~SGe6R3A}dk5)kx4PBtP&aZC!LK z9;K4RUfXQ#28o%5H?>8pG4JGoW|HOR@D5FhZ~evZk*$bX&F^yyN%^j#Z#L(hJ`KGM z>QGp*zX3aKMbYx#qAt&+qp%H(+kt3#37d|VKW6M~ileLt^uXU%H<*n&=AsoY1GmTT zzUSxKe#FD|vm)lv=R=K0YUx&fij5N#Y2zzygeH@xyKl|uIou6tmA-mXxH61r8jB}n- z64*1H`zU(~==^!Zg+FHN*LpjF6$;;-otJ2DN8s%{V4VpD0GhG04@SQ7cxhdg@Bl%0 z)ZOvh#po_YFbxn zE4k_=h60@>O2&drU4#y~#5gHgVWAeWd0=%s)fq)KC`}~UFpUm#CqNpZmR#(W?v7oO zrrGhRqixt#owykVgp6qXB~+wMOPF$qD?>agpVr?b&{2y2&VS% z@{-VhIx{x?d4r}0Uo2r08X+kkcVI~9PDM)OI62M?)5d zgaEQEo&EL8E4>Nxm1);Mya=8*zeatv-+xLN~&C-LDbyTB`b2@;fU5vYD*u zdSX8ira3`Qi%xl=$D1t|dPNt1Z?w9=623+U(Lpx46k-HM%mthDFKv=)tNRSBM?PTD*!5l2Nq5PfP1?jSJYEaF5JMBAFe>{Q&+OC zQEu6`PPxUlbJaTJTX%3pb1y)hPA%RlKUNidn)+Jlu$pa=631H79NV_yn77(C5GiiS z(RfJ)A^r@sNmv)A^KBrB0cwtw!iE<9;SoOh8@93Hk1Z+f^9T^BMD-wPf`e>Lv5|U(uvQv^Nn9Zju(__Y%99b~`cl29FzW-$XW5K!>0(0T`U>~Ra>mKZ)ssbtZC0{C> zv}mqF2<={^RufEEF zB202DyEr^R$(Z-jHO=QF{95YO8x3@XqfVUHahbLA%A+&w>%7!!e6Vvm&ON|=!~PcS z!O%eDLIb56J({4}u<6k&3?y($I?<1d9p50Kj6FNal|8)%=n{HRhtmMy-Yy4w0MvkB zziSX@YDzbjAdspCYf)o1V!WN)BH-xO zKsbrQo#vZZ0;^n%NYRl16u-5M{bPp%LAPH)av{Q|ZFci**)q_WrSB7h065>G=sZQx zz{76<&I=|GqKw`u)}n{Be^ei5F)~4kHn`fayp0$UJ16lWE?~Y9M`R=%K}>)8r94G+ zzjb*42qvMR%EW3U{FXtV3*z#I*Z?H}&X0waFF)LIsUve47z%tDu#dUF8?H#ne>ocK zIvNYN^h&J$pnHR&m8P>xzM_=4CFK+lIaK+OlAc`A3yE@1G8&ZNK3;8?46rp**Tp@`JBbZ(&3QnP)4)v47tXlj-6Pw^3o@RlT&RE7cN)Fv=|%R%?dk8`nf zcH>5Rh!wSnm0%u)LzhQ#GP7n?At4z3c1aNh5kHdK97D-<>5TOfzHRD&zXa$+<6h#Xo123rB@_+GUTa0- zn#UXPg@rO73Ece!H zNc5YmbL07Szv2c{M>$IW&!>AI=?i|mYDX5>y??D|$GvpyGDaL+9jt#~gXh)Y`8{;u zJ%0Y&64xw2t24UQbM7n;pub($1;$Z#{)%zE{VJ+nC-f_v>cDse@LHPz^T8cS*r#CG zCwvpp6nxQcf4;Iuy&^Brc^d%q8x1VT=Pi!{^bejdpSW9ou_2yj_k0I~*GKs-g#~Ie zA~SZdS+WO*AafN<9GZPC1H6`ZsW0~V)j@>$uQRs1$&vE!8N7W1Paamm8_O0%^Q*Gi z;E3Pe>?*8t<&#Z;dGw)tGVtj_!l7LVaKW2HJVB3K^hMy)j{$XgJe>1s0C11j;+$_} zc!i8=M|Dw4N=2?7svCoGkqWK^(){@#f-4$&p*C0NAVdp=(rYQoC0bXu5qxUDUX z%9DI?TAjAuB6#O#ztD$p@&!m{!F*AWyt6ru!Nf~CZgsexaZhd(k&L(CkuMDZ7)bDK zgQp*U;54r~l4ox&)aJdHul0q^Yh?39%6%cF3@LIcc@Xl{Z#U?jeI6a~r?T@U(Y}P& z+Q@gKuWs_CO6~{0Y_$5O@}u$Lxj%y>%9}5E3djR31{i$#lGT%|ufKNrzqq{8f;W8%>csd6%4V%m!2u>vCn# zL#l!YM#0*S0JMP4FxK=MZ!yWV*j)dG_mlM7Y#eFr4S1u7CZXIwLp`$FoOZ0!b0#Ah zoH2X#OjsS-#Upi2mwHd0&S>%)r<`2v9%9QcY6OFcN1FXV)sHZdcXqhbQR;hsewNH_ zV32wrB3V`>$C$o#X`h z!`C4Fg-re6P>tlxCZG0WA|lA)t+VAdLVf8__Py(#)d7_u2CZk5!$X77Mkp|#P+oX7 zkq#UpyZ$}UP(B$b@fqZEHY^gi78%-b-9}WJ>-AUzls6gxTzfFXz<^%`)o(K};L$&R zJS&5~T&MP^5eHh4qkJsYrsYrP`!9jh0N~!Pf!+ep3V>U*?t!Q^U5i}1d~oBj)~FVt zQo1egJUCH}h&xL$sz*%cO*6j)HA+-y4?~8Ws_S6@Q70v%Gxqv9r46HF`iR+oH_&Fu zn)ONGSNVpH{%FM8pFRT_ki_O_0Ua8z8BT}TgPxs;45bLrT{zJFFMfb)He&i?R%<^{ zsXzR$9Qf?GA>sU;fZSa|MTcd4<1JXN^Aq$Zf9@R%qw!i_c+RH|bKU8j7L&VZGg`lx zCS!+kRL6gF!6$O_15uClE0DM9P~5qyqufG+tssf}{wiO2FPfe#zhnLtj?;D2I zgzB(2+^zhvkO8g4=~$WFYSzu;1Um4G*ZDCYN}Jc__*MmPD|89$^f913^5GwJ`J6O6 z{<|aOi+PvIA4~fzyZ2s$H`zX%MW$=aS2}%WpQ-;=zTDrK4SM}?aRf9;0GS z6&g2Gk+!O|u^^M;?21e;rLajjnS(K49&!gk^;gY6v&&}C8>br8QfWx29k*oh8@Xx7 z1im?oRv35tZUD(zymd{q{DKnVPdQpihw9X600&HDvmxoPMfYWakz(qUFp(zw=owsV zOr*pQU@}-)ph|w!CUUoaSy=#-6B=t-r;{bb#eawrt&^2hcsyrk zX3Fbv*ILr%cjVpqh_@^A)igK?IqB{~R-I9PSrG%I)#LET1?7-s(UawUo?~3 zXURJ)NoPfA!xvP;&F*<16E{bg^j^$pgQ@ zhHmW0rt=^na7$KN3K%#DcaTij$67 zR|oyKZ6eSll6*%SQqxUog3qELUwY(nxPn|!OzWqsIRw1P0AGR_e03bxi zSWbn|@53{z?how1eyUFjyD%xx6lxo-G77GT$oOkaj%FmMkl@9pbp}*1d|62_#uo-uSRQaX=T`$1Xb-I4^Qt$tN zZyaYz3T`2E=K8U+(B;~`;a5r#$`)JW8iMt>^GrWdd#THVpGOMPZ$?8dniG`_V$OpjE!+w5h!XltyfVGZ`_Lt*|L{rafVDJ*&c9`O+M;ai&rq)X#hnk0G}ER$&pd{yAWWm^es;Ax_i1)X4PM9Sh#Qs z9=qw7vy4rrOXtr_H`t8IDzpyC^da(_E87Q3BN9HvZsKu!?)Yl{3-to=*R}P3FX6DbS9fw2Z?HE!ga9H=|ezk z;XI7^X#j8!*CD?K_^mCg9^KX3lvh>bNxAkFStr-11KKeV0#WS-w;M?G;kr>mNFkNG z8_?1V$M$SfhYab1ZMJpGr)m)_3v&#$1SO#>F&uZ7!yL$Yj}<(Z@jWuP0Tk{{1l9TSllLgHn2rIriZsS3Hx+La$wXw~wl6@A6Xic0IP`Y15g!@( zfnRT)+@3v_9?$;0f+CzNmDjZfO&%1$16LT6zcL^W=Ix&({128^-nbNu22SCDmB48L za1R$GD*%}x_2}3Yk;+I7s^H4xbgHg57IiIaA#@aIRD-bqK-z`KuB0?2E2Z^y9$QV5 z98uT)RcDL4k&vP_IJD}4X(yZ3b~?Sm?PJ1fI6G(gqHtRDU1IVx{xq|-bIy^5YQ;_V z2C7x<3Dn{2mCV26VDadrR1`0WZr81~vvYt$c`r(|!47>U;mr6D9>?Y%w$w{0j__i_ zwALk&n@e~Qd$?pNr{S~I&L?CE`~)vEO2n<&4wrj@-VEd#fh++!Y0Wm7-GV_TZeFF6 zEin55Zo}GWTr-BF2=HHiU45h1*wlfsnXi|}Wx&`|Mh4j*JOIESp4s!9Txa$lXkYoLJaKOq*0GnoT9c-U$ z<#*4YpS}cGh4pYwrvbn{T#Kv#{LPkKSE@QfpgVFysQ4kz^boB(hr4JnyRxPtzP*8I zppr{H))8D1h2Lf@)``+3Y0@+tU|=4@QlIwOu(K16os zUpSuG(h>2ieLuYM%o9C##MlL_9L)(Ia{c?VU?u|xD`MNEpXhQbsPbW9iqU z1XRO*D7M0%43()YgP=zGbS=NrLxk-K=KFAeKvFp zBBTH~f3lD68!i3czS8#y*i&F7vB{fPH3~=K9ju}tvDEP<$*D+?0b$3wi>B`bEsr~p z5C2D3;cevy8(TWKLv1@Q7Z`wO)ua7FRAJOelo(Mnz)}aVQgL~D3^9Hse{Krwb7#uh zdt8xd0~iEQreuNog*j*hmluOICGlw@up^=fc~DY$Vwb-e@WAxr15s3tla?_5M!jPq zbe)$rkmkg$DKem|s{g0g04a}$6;1jy71?u0CPJ9YIEa$P?YlK`9fO26GF>Z+m^-*op1v3z(ui z{X@M@ulmb<)NDXNUB!GY!7pN4oy=5OOxa1U?=M))eEsz~o)ZiEP0bwrK^kP$F?xoo z4T11&hC>@vG>U*_m$}bKDxH~dh62o*Z?yq$o7JOCh^%pP5TnXNGqN!KBc$dmcPJUl(pZ0W4sJ`~qM7I^f*5T`z+fNlPc6dT-w;$%Dru z34*@}$QuWgBfKgn``lM<14|iEPHadly8Y9Kdl;1XS-u8k=mX^e_@X~q#BT}kJpo?5 zZ|%<8PRm%E)<9P;cIc1E5<(-YqhVN5yD}C5+Q?gKJ2bB; zE$8yz-0Ff9*j{5&C2M^h?$jUQwzm1!l*+dKjngO*bcI^KNuq|d8E<_Ht7G5`cyy{y z-g{57+V-d2@nAjq;C*)(ufO}=8}DwINn$_+-e#~Gqny+|XqNfpz4zU@`gJqm^U7gJ zP*?x}KmbWZK~xz$Ht+FR;T4Y-^e^3x5p*d3440aO9`EWu{qRF~Xe?OQ$VPyj(ZxRzNuM9E}VKd@Wl{bTwe$@{; zdA<@h&+)yPl1}>qJe8i@0|uKNSl0IklJxb!{Pu$U(dI_`#{fY7uor;+58mTZkAd7C z38af|Lu}+Ji&)bl$7uzi%jV&nPXmB^yB7Lp`o)#nIaN#7qNy;hq+PMP(f2vkcf_gG zTgOBd43uNQQT0OhxucCe^0W*DpPLIn$lI|R;X}IhKv%#de@^V1?B*9M_{Q1*-Pvr( zxMWA%ELyb>wz0@IJw0VSun}aIyoFPEqi-Qwx}8Ejw%OvG!Ra&|mV-`RoFQbswQ z>dung;^@5l%YTyCo3rn3|73Yyy>mya@96iec5L`2VE}M(_Cy^coe!U)%}0RvLLR%% zzj5cou6^HB#Vk+{AapWJd2`E`^C?Pb4yk7#1(g8cT|dc&pLLcHBP6yHVJX zAw^fh%BRa{^fozSR)<#|IO%lEdj;%x++~4HuS=;YTUi3WmYdTwor7DY|M&HCldY5O z$+kJ!c1<SK(l>4IzE&GR%b{Zb-~(e{@ixB~k{v>@;!45B=XR(%~e?~XhUWG?^g*C54V$CHBhByPuE zX+y`-v2-DO-$q_ANJZXNgz+<|N}U-!19!KPV*Kj%uZ*2Fa;HDN4nfRb$DWIPu+V(P z_(di7cowB+L9rLZG{uu<3Ud8Vxa9u*7ZYtFGz#a>{b0fpq$twrJOCr)-e8+3kXXaV zrRT})>W*j*2rGfksj=~yZ5qcKQ8`&?ougaD&kQ%BJx)db@hzhe`tN1o$U@rgIyWS& zPw*a*jo4|-mGhFB)W$A4_V9%!Z+gS9BtJkoDGjrgtp<{7A3_pGEz3n+~t3>Qo1B%Ks<4lokTr zyq|xDbr@O}iWMed@v2^FX13>Wta9?~;RYSf-YNwaeF=$}N7Hv}@%U~OxCR>va^>A^ zHyy0!t5mP<*L{JWL%`w_^97NK=Yo+CXmDa4s6Bst9 z!jD%uGhO-iS6=|IKxNDEGubS?e4a+LU7PW85#Ahy-Tr)N zs2SG4*!%Y1jV7^WEqkU8+3dOMyc=LrvBq(O8Gfjxo;>FW@f3k}N2=b0vU;WY! z9~MdnM@yv9;Zr<|bl?8U3qs}af5bF6<>PC+-h@GMdw~{Jg;}=WqaIHzz72KUPmHH# zBclT_Le!`}LVn)?iDy@6Sk4BD9l%FkNA}^SATci)S4wQIS|<}H6P@&{-RV7l=2OT#Lx;dAc)_Y{#&f8wd zH%pJotu7L+9imgTQ+=LpSD(L7l;a#3Gc*foW%RKDu^RFxY_Kx>$sEAPwmwH!O>CTW z^(Qf$4CxlW5N1X)v6l>uX%PEKH-8?rcUFLDEvy{PdHI4q88gp0d0;B>gQA_ba49O4 z;FmgIH6_Y~7}kiq+n27zX=I%Zk!2kqlQRcze#5lDUW(_I6)op8|B-E`_C6P)?D zx)jFqW@vDzfA1!`yp(8&6ip0*fy2x7Pf8Hc?}n{H8W92(vFvu;*88UYz2nyh-zp`6$;Ne1@Ow1)Fh&D(mMd|fG z+xX>KMB&0oN3Qknh#x+_mo&Qb84+=o4By$^@aA3Md#c}j=4W@8G0>c}+V0<8&V}V) zazF?}4*s@5&*)w_@~77)%7|#=4UwdRONND@7?7!KB51*TN_+b{epN(a{deWS{qo&;_V~Jq#jFF2oZPD- ziQQ^0@ioclpI|COIGWYQ2$44BV9W^NcKkldJjBcVR2ewP^iM3Sus3z42(p^p-CIBCTb6~G0I6Gq=kUdAU;}s;66W9l z2ezk4)fcDnGzkZF=Y$#AZw5kC=QtRJ$@vX~R(^B?Ik^YXW$$2VN!(`m#4qoEvV!%= z1h>1jdjXcl?}`@nhV7E167oOi(gvope?{88zU!1HK(p4XJ9o^n#676!-pr+nzo+Iu zhv)AMnL(dhA|FVsN86ijIy1~+=4yZmz30Zlec^JD-0EqzHh43YzG4TS&MIXzv&%!M zP1q+Eq7=<}9I57v2CpXZ^5Ypwj;NN|Us2GoylcF~siUJ0jVPs(jkUCY{XL$vD`~Ny zWnGTNx*>Z6G{rcg%S?I$a$kx8ZW(_ zlw-;pHB0(ES0K(Oa?~&e9u~WRqPQBTO%7^j(VSe&wC%xm0U#caucDVvQmPH$v^XP;!I{s|!P8Ymx4t(^1Q4 z>|ec)J~T|8TpJtxw^{?e6U`HZASPEskx*nB-;zsPEz7*mPO~V6&vQo9iJnP z%NTTH+r*e_p{upw7tH?Nr=0+{0t)AE{+2iRUwZAViBHrvMk+w%B$Zp0*c3)vr&+4- zUuRmJly--x zyH9-J1JVj>zDv{nOb#h={`)YkMKV?`lZ|8odrJKS9_>5vj_CS>SjIO4#`*Aua?}*5y>iA=7kWXRa=~IfHptMMv5iVS{vVF3FXI{Lk}O4$HK$xko!k zHx(a}nN-E}mG>a(jz{&HvD#9fA1FYC?%RdBa_D4{$%KVAQjiut=qrS|q0w=rua6d* za6Er~a6Sxi6&&V%{Lv*nA%sPX!LDLr{x7tTW7;Pi_P4942yj0y<} zKy>4#?6xn|T5-7XCaG!&&S}aPoXXle!&Q-VvFHWfGmOF(rO9mXGNS30tt(kD^8WRJ zHx_EVFb(pt$|J^&zT``CYS%2i`_})a(g03|G4!I0l$WnLuLRkH|F6$S5Dy ze7DB&(w`L;c{ZKbOZF6D=2yqQRL4D0P85pCYYXK#J-cZrPAS}=naOH5px5ubOuf4U0e{`!;Z_p$dRQg=mj9S$-6i=!S; zn02O+%kQE@LpW%`y~EhRvur(;$J>){Q4B5V+jss!b{ChWemX)Y*`g=(K+AV=(j)Jqy*#`7{1P86 zD12Vl{G_dSjXF3+7LgC|xwOY^!$5x#7&bYmWqv5h)v5D=U!9M`j zf(>$7euaI;vB#9Yg~rEPOgZix$-@Gh~XQ-+h@IBoc!q8S>(kvIo&|-0k!vQv% zSC=_+zV18rD)7=y6qA>Xazp<2TD0m_leQT{ZX8jeS)JRniFCM%?(%XOP>1Te}7UZk} zv~3=4=-s)1F9x<)SqcXC|CT3D9}u=UE&#PTd%FC?GCMat7cW@{({9$4N?#24*?uD6 z0kCJ~gytA+Yo(5?9l2_8;xqjO4Ja;G1fk(18f?22N8dar8eEyA-sHpI*k`H z*;YMQZsq5<#OaJPREs|LwR+t1r?FpWpDMgX)LmK;wExS!$j8Hg(9!P7WXz5(@j-p(ncJDGZ54v#)*gqq~8>z*XNQw zRuIAgFwWFhe7~pN7@Et6{~g#e$?f97?unc@)db2?a{riSWn%n1%7|qiH~2NUbv1ms z5x*L7zu=2#QICWnLE?2?pPtrtPjc2}CwQBG%53|3J0J%6(r?BmOdaMLw3W99jQ*2k zk#}r>E1Ts_2yO(Ixxc=P5eqwr{x_LQv6-wnvDR0XzkI1ef};sJag*;`j%z9NQGz9GASp9N&ukZlaxEZ9#9WT0y$x3^(YPKGHV4eq zG!6JASc!vX#5hP*Nu+H+xQV(w1!c6mN(|YLisp2=n}J%fa?!;W;SfKd;mgPdxQOQNYn~L0$J)quEwH&ixxl5sXcP2F8hn zCr;AvAW*~LL|ckyzQR#Fqf!<-tNxleRmeWLwsB`%N^Q}(<-%4)_kGG$3oP*k_Ko3R zvUS#*pos51s2t#JC6tvJL?0>P3BUG&sSk_0*C<1m{ViC;9b~k&c>9CDbp7yWf3B78 zI~NagM+Lfh1sn5XJ6*1&HP=%VeUkvE@LBZXfiWPI+#75<(wIcQuKx52#m5M_1D2AEa` zySshkb>;G!A>n33LS|}92MZEXtR#~|092}073oN?6*7LCJLkPXV=PsU``bj#*W1WTNy)&5Zv=SeP&ygDQ$V zKh6+AiE#;DlM=Z#P2ep;*s(d>ePl>*6n~dM>tUA53+8r>35n$Hr!urWu|3UFUGbJ5 z%)%A( z*_|v=KUg~>)ggX0yF^Mj81ZYLa(@=BW<5?sKDB8?i`3U@Dsy8&p@}ArXJpo^^@Z=O zE57At4pVf5WH0OS<~@#P>D0%&belPu0%Yz+U_DaQUwM@SxOrC)tUCAh{t^TEZ|5Ue zM(!0#e>3KHTHrve7>qbASJum&*7xlqzw}?t%0i$6=Gbl(b6KG3<>E%Py{+O*FCCY8 ztj59g-;Tlj;fq)}N`BDsLNKS`+E5mItIc?~_`}&t#?Lp;#1j%$i5eTIHPK zucpEISj$K=u6=%U;D#gC_?ERR7&oC-h_k`35tE6mkZZfIb9p{2V9++4A0izG_hTp* zkf)2D9g)H2^;ddNZm+EK4_~BGW*+gunXTYL*Id;QV`b{+jj?b!twCzFq4{@v@q!f| zsb>Q9fP%Ow6XmUseEzS`Q|9moeH?)9PHBR%fJe$QRdu_wqt=yQg0WmugZVd%YI#@K z4!@luNZPv#+i{2&&2`Vtw%^;FA$5W-9KQqvbRo~WB$IbDu#mK38F+2niOz3v-cld& zKyU_{V-Y=(lCGPwo?bzEQRR1pyuu7v-m!jk0}$p`pIuX<1BQ@1l&=`hIzRPI}3ev?|>Ac?y^1sp=Y^6Lb`-`<9@3 zb-3(*k+;>9cDoj3q3@hT^n4UN0rC^MY46$ir8DtDytmJKyKixXuf)JZpqwy{e zA2V`=sBD@3s&g>&)!%)6v+K%lT$=^~aono^G~F*h?v5^aDlYd%VFua?tWFR#^$ufB zSjv&!aJRBz*ooU*A*s}c08Ut9r zi|(AZ((ognQFzX{yp`*oB8hY=Wioj$dap&C&l_&f2XcP=sGMoHo>y&551bu?6bu~8 zoj?K9uRHR~{k}7ngP{;V%0H8p`BvK3RGj<}m>idg8Y`d|W#Bo0=*VTKhfZA@r>e*= z(%01nJOgLO90BsgJ1Wsp)w< zSH_d!A$$~v1K+^n?QV_zql6GCruR2xEEqM{;%DI4u^*POK zTl5ay0#yEwy*OySwdo>c(UxOKutVgEWuOUu_oYEq#(9ioU_x2Lnz9!GJNEGTzTAYH zl~t7QbiEwv_f*`A*PelV4|uXLRK_yjR45s%*c^L{ZqW07My@tkThu4wKzJ7@CCBBV za^#6=0+^tgZOR|&t8?bEa9)&aJ?2yl#~p76Oty2B19srfUVGkkFUxO=8dS{be#0XY zQb_;Nz?RCL0iHT_bo$uSO?}0kBChYB)(7vFp$xXyEqC1-9Q8)XtPW$Fp>m4VnYXu>{p?via zGp&(PMN;96?rLPd0Lcd3#Oz1cTmy>-!;8eVtctx3U8Kw;mf1!c|n=foua z3y1f^b9gR9@$i5NA=UX*lRzly~%hyAM!CJ`frwQOZ)78mp3lJPah!0?g!%Khp z;q6)B@Yc(1>w79~R}>{9!T2E*sFKtN+mQJLyvuHQdOy+jseSf0wXKEp7FCKRkKLGH z>AB4lz=3!h5ra&IX=#>18j7tZ#b`wC@4rAD7~hbmGMNymC<|MZLj-m*U7;RfM^Z( zahx9d@F#5)a@A9cNt@N0$RNFMN{HJN{wcGF|#%TKn-dtyA}<&4kM zy|@!Z)N9|jCaRQV#e{VPf=fckgl!;t-)f#ty6Dk@Pcy7f>vwKv6$xVSD>@O=fd~bv zaL0!JZ>e>@CKovTB+B>T6DP-*D(V%x0Ab0r7_wcHS3b(|%yxmoq zqed!T`p>;hx30+OPk&IEHd*miAL_xrAf#(VT`w#k$K7v1f-Q>`VXVnNhCn?S>!O*~ zTT70AT>2)ByOYD8fDeqReKTG0kjCCjPQNq%A)&|`jnV?lNK{QA{|(o4n*97TFCHnf z0F$KrJa!(h6h55&VDD+7)hj`?+*X)cu-iV7r2!dGUbGk9g##^I8F%R2rGCEGjbDeQr-z zvL70pJ=&hQp&oK=4oeXhCS@?Oh7dv+}|XW1;6CMtC8@>%54eF=#_^nf?C#pw3h z&0V(Y$OLl!-`f3Ut@ONw1kx{J-*nmxS{FzH4I>3320!0&Ub@&!u`XfJX*&f=Q2?Et z6Kt_FP9lcD73p1P-YWN}j>%5=4{)4w{$k5;Nl%VsGNN*%K_5c1 z>VG%KYXX@2otMX1(oASop0i|FdM6TFnX66*06W?

#VVqdpO*G$zFi1KK=3qEmgP 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%0D+U45d(C*A_YGCT~ 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" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.2.tgz", + "integrity": "sha512-kXXoiPVVGQcnIYGOeaovwOURpniDBpSq4A03qkQ+BMQqtGG6HYap3xne9C1O1yo4TR3qxlCX5IqqmX6fFo2Lqg==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.2.tgz", + "integrity": "sha512-5YfKeeI8qWfBZIX+u2xZC3Zlb3Os/gLS2sbEKM+I4ZOcsWmHS2WLysCcQZDAFRslDUU5Oiq44gf6PYN1vGwG5A==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.2.tgz", + "integrity": "sha512-O387ite7SzUyCcy3JQX4P4bLtEA7bLLkx+esve5JHnyYfNTxcVpXZo9jhdB0lTKN44gztELTdU7nS8Nr16Fs1Q==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.2.tgz", + "integrity": "sha512-n4KqkOQrraxHJcgjM1RvwbigfQKIKJVpM7xp+KsxiyUSrRdIXnt73VhrPAx0fV44hgfmIVKjxMN9J1t5jySVkw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.2.tgz", + "integrity": "sha512-uq6suIWYP37qzGddBKPw5QEQPi6HiLGsO7UmkpfyaYNQ3D+rN6w6WfwH+nuqcGXWvawGwxOEroO4YGnFh95azw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.2.tgz", + "integrity": "sha512-n+I0BTSRIoy+d6RPKnEVwql5UwBJolytvY4mAOIEJorKlqgPII8ix6slVVrfZ5Tnj7glIZvloylbB/EJPMWEXw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.2.tgz", + "integrity": "sha512-78XJTJkvPs0kz2w61301PJjXl4g7q3JqiYMZ/M/yVI73EHBrCRTgkhu9oqG7vPqq+a/yadEW8aD+agKlk5xrmg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.2.tgz", + "integrity": "sha512-XlDnu2q5yoqems+xay6wSAcg9DDD7K9RLKZEBOMZm3ckNpJBvOX20tSfby8KfrrhINDyv9V2YVZKY/SpoGJI8w==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.2.tgz", + "integrity": "sha512-pW4AC0P3it8c7do9MVM4p51FzHzdM/TZrerurgRcHJ2WTa1VQ1CIq18xncfpBJw4ojkiZZrKW2yIBWBP92j6Ug==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.2.tgz", + "integrity": "sha512-CYbnj78HsIeA+DhgUKgFCfvNsTHFhMMrinUrMZpDXJXKN8T3XViTZ/+wtHeVxEWY8ewSzTFN+nRmSwO2tZaLUQ==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.2.tgz", + "integrity": "sha512-buwkd8nsph4R+ajRvw0qM5Hja/TXQow3ptzWO2EbG/cqcIkHloRrdlBtQlshyYGTNFvfkfJ5tpPLVkY4DtsPfQ==", + "cpu": [ + "loong64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.2.tgz", + "integrity": "sha512-ZVykbDyk7519VwiNb9Lcj9m8XM6v5V9uKPvrEMkkEedVewf+0itkhahp4HDpgERXhwLRpWFypsGbG/J8s0QjJA==", + "cpu": [ + "mips64el" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.2.tgz", + "integrity": "sha512-CAXl+Dtd9UUuJd8pKKdwh6MLm3MUMiqMPmhZ3tTSXPqfyQ3vDl6R5hZdZ/kYojK4ofXtdfSv1tFq8XzWx3heNQ==", + "cpu": [ + "ppc64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.2.tgz", + "integrity": "sha512-GeXCej4IQtU1B+QlDV8W/RRvbzI3O/Stss+/bCXv4lZls5WGRtu2a+3JkA3i4qIUlMXpcHebWpF8AkJhATowuA==", + "cpu": [ + "riscv64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.2.tgz", + "integrity": "sha512-3H1weTYZPxt/WOhByszQZybS9w5lKzUn1FDMsgEChbHWQwHYQQRfBxgCcZvPhjHfKyJjIievvMmEUawJrdY9Dg==", + "cpu": [ + "s390x" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.2.tgz", + "integrity": "sha512-4xTZr1FUmSoQW4XIWmit3tzQrUTZM+N3P0XV8xROKYF50XfI7xeO90+1bZvNwxIufQ9hDQVRJH5YhgPVF8A/HQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.2.tgz", + "integrity": "sha512-sSATRjPeDBg3pdgHoQfoYBob11Kk1FGa9lui5RIHZCoCkJa9QKlvl3/vKz2usCmYYjs7ymJR/2Nnsqe+Hjt5nw==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.2.tgz", + "integrity": "sha512-lqnzCV+mM0gIADaKihiCg6ifgfU2L3h5E33rNQBN1Y4MaVGnzryzmvvf7UHxprpQdE8hpqLolJ9Rl+SkIRDpyw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.2.tgz", + "integrity": "sha512-AL2qJILH7lNjrDmCQDvdxMfAUIv8KMNZOvrwAQ8i8//ntL9FflhOyMJ8OZSMBb8/AWXe3/5v5S20y3zCoZWKoQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.2.tgz", + "integrity": "sha512-QtiuPytchRyC4rwUKhexJdQKvDuZ6hWloi3igqPQNUJCS1/v9EiO3UTOXR6A3FoMo4fnAKbWJdqaIwhOzh8qEw==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.2.tgz", + "integrity": "sha512-WkhYDmpTjLvGlScA1rwjRUmhl4k8oXR3cIbtqWmELgU/dFeHHlEllxDvdWcNJV9rbzCexB5vz8gtNewWLgCT7Q==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.2.tgz", + "integrity": "sha512-GPMSkTOtMnv2U2F8gxe4Io6qmVs+YKyp832Etqqxr0hFngmXQ3rzwytelm3GIn7T4VviRUlf3sOgBOiTdvaf7g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.2.tgz", + "integrity": "sha512-PIhhEkE9uPBleRBrQEJpUn7MBnibZzbGzYWPmY3x+YoVg/95zbjB4CxPPOQ8l5tYYM4mMaCthF8/1DIfBQQyWQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.2.tgz", + "integrity": "sha512-YmJbfTlvU7Sdn9BB+4PRES4oB6pxgS37MAONj+hBr/cpXS1aBPKXxNnDbu+QCWPj0o9dgyxeq79g6c5P8KeuYA==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.2.tgz", + "integrity": "sha512-5ebpxr3nWMzrL/rnUI755Jkuee0bHL/Gq0WTF9lvcpv73wAp5eu8MfBUgWK9bhWvZjj7yX8etf/8tI8Ney695g==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.10.1.tgz", + "integrity": "sha512-cuadcxVFE8sDK6iWJbs8Sn0av2Nrh2QSGQhVlBW9AaAHqHwjWsZHT8LJ4hFGPh7ASBV2deFdM7H/DPjulmh8rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.23.5", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz", + "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^3.0.5", + "debug": "^4.3.1", + "minimatch": "^10.2.4" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.7.0.tgz", + "integrity": "sha512-DObd/KKUsU+FaFv4PLxSRenpXfQWmPXXP3pPZ6/K1PCrMu2vQpMDMuQe/BqYeoLcz8ro0bVDF1RxOJgfVEdhUw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/core": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz", + "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.5", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.5.tgz", + "integrity": "sha512-QywQuszQh77pIXCsq998c8hbhSTI/azTty1Z6N53dmAudKHhy573j3yvRLsX2BSp8YpLtoCEG8E9DJe+8zUh4A==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", + "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz", + "integrity": "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^1.2.1", + "levn": "^0.4.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.2", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.2.tgz", + "integrity": "sha512-UhXNm+CFMWcbChXywFwkmhqjs3PRCmcSa/hfBgLIb7oQ5HNb1wS0icWsGtSAUNgefHeI+eBrA8I1fxmbHsGdvA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/types": "^0.15.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.8.tgz", + "integrity": "sha512-gE1eQNZ3R++kTzFUpdGlpmy8kDZD/MLyHqDwqjkVQI0JMdI1D51sy1H958PNXYkM2rAac7e5/CnIKZrHtPh3BQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.2", + "@humanfs/types": "^0.15.0", + "@humanwhocodes/retry": "^0.4.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/types": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@humanfs/types/-/types-0.15.0.tgz", + "integrity": "sha512-ZZ1w0aoQkwuUuC7Yf+7sdeaNfqQiiLcSRbfI08oAxqLtpXQr9AIVX7Ay7HLDuiLYAaFPu8oBYNq/QIi9URHJ3Q==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@inquirer/ansi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@inquirer/ansi/-/ansi-1.0.2.tgz", + "integrity": "sha512-S8qNSZiYzFd0wAcyG5AXCvUHC5Sr7xpZ9wZ2py9XR88jUz8wooStVx5M6dRzczbBWjic9NP7+rY0Xi7qqK/aMQ==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/checkbox": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/checkbox/-/checkbox-4.3.2.tgz", + "integrity": "sha512-VXukHf0RR1doGe6Sm4F0Em7SWYLTHSsbGfJdS9Ja2bX5/D5uwVOEjr07cncLROdBvmnvCATYEWlHqYmXv2IlQA==", + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/confirm": { + "version": "5.1.21", + "resolved": "https://registry.npmjs.org/@inquirer/confirm/-/confirm-5.1.21.tgz", + "integrity": "sha512-KR8edRkIsUayMXV+o3Gv+q4jlhENF9nMYUZs9PA2HzrXeHI8M5uDag70U7RJn9yyiMZSbtF5/UexBtAVtZGSbQ==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/core": { + "version": "10.3.2", + "resolved": "https://registry.npmjs.org/@inquirer/core/-/core-10.3.2.tgz", + "integrity": "sha512-43RTuEbfP8MbKzedNqBrlhhNKVwoK//vUFNW3Q3vZ88BLcrs4kYpGg+B2mm5p2K/HfygoCxuKwJJiv8PbGmE0A==", + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "cli-width": "^4.1.0", + "mute-stream": "^2.0.0", + "signal-exit": "^4.1.0", + "wrap-ansi": "^6.2.0", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/core/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@inquirer/editor": { + "version": "4.2.23", + "resolved": "https://registry.npmjs.org/@inquirer/editor/-/editor-4.2.23.tgz", + "integrity": "sha512-aLSROkEwirotxZ1pBaP8tugXRFCxW94gwrQLxXfrZsKkfjOYC1aRvAZuhpJOb5cu4IBTJdsCigUlf2iCOu4ZDQ==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/external-editor": "^1.0.3", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/expand": { + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/expand/-/expand-4.0.23.tgz", + "integrity": "sha512-nRzdOyFYnpeYTTR2qFwEVmIWypzdAx/sIkCMeTNTcflFOovfqUk+HcFhQQVBftAh9gmGrpFj6QcGEqrDMDOiew==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/external-editor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", + "license": "MIT", + "dependencies": { + "chardet": "^2.1.1", + "iconv-lite": "^0.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/figures": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/@inquirer/figures/-/figures-1.0.15.tgz", + "integrity": "sha512-t2IEY+unGHOzAaVM5Xx6DEWKeXlDDcNPeDyUpsRc6CUhBfU3VQOEl+Vssh7VNp1dR8MdUJBWhuObjXCsVpjN5g==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, + "node_modules/@inquirer/input": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@inquirer/input/-/input-4.3.1.tgz", + "integrity": "sha512-kN0pAM4yPrLjJ1XJBjDxyfDduXOuQHrBB8aLDMueuwUGn+vNpF7Gq7TvyVxx8u4SHlFFj4trmj+a2cbpG4Jn1g==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/number": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/number/-/number-3.0.23.tgz", + "integrity": "sha512-5Smv0OK7K0KUzUfYUXDXQc9jrf8OHo4ktlEayFlelCjwMXz0299Y8OrI+lj7i4gCBY15UObk76q0QtxjzFcFcg==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/password": { + "version": "4.0.23", + "resolved": "https://registry.npmjs.org/@inquirer/password/-/password-4.0.23.tgz", + "integrity": "sha512-zREJHjhT5vJBMZX/IUbyI9zVtVfOLiTO66MrF/3GFZYZ7T4YILW5MSkEYHceSii/KtRk+4i3RE7E1CUXA2jHcA==", + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/prompts": { + "version": "7.10.1", + "resolved": "https://registry.npmjs.org/@inquirer/prompts/-/prompts-7.10.1.tgz", + "integrity": "sha512-Dx/y9bCQcXLI5ooQ5KyvA4FTgeo2jYj/7plWfV5Ak5wDPKQZgudKez2ixyfz7tKXzcJciTxqLeK7R9HItwiByg==", + "license": "MIT", + "dependencies": { + "@inquirer/checkbox": "^4.3.2", + "@inquirer/confirm": "^5.1.21", + "@inquirer/editor": "^4.2.23", + "@inquirer/expand": "^4.0.23", + "@inquirer/input": "^4.3.1", + "@inquirer/number": "^3.0.23", + "@inquirer/password": "^4.0.23", + "@inquirer/rawlist": "^4.1.11", + "@inquirer/search": "^3.2.2", + "@inquirer/select": "^4.4.2" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/rawlist": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/@inquirer/rawlist/-/rawlist-4.1.11.tgz", + "integrity": "sha512-+LLQB8XGr3I5LZN/GuAHo+GpDJegQwuPARLChlMICNdwW7OwV2izlCSCxN6cqpL0sMXmbKbFcItJgdQq5EBXTw==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/search": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/@inquirer/search/-/search-3.2.2.tgz", + "integrity": "sha512-p2bvRfENXCZdWF/U2BXvnSI9h+tuA8iNqtUKb9UWbmLYCRQxd8WkvwWvYn+3NgYaNwdUkHytJMGG4MMLucI1kA==", + "license": "MIT", + "dependencies": { + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/select": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@inquirer/select/-/select-4.4.2.tgz", + "integrity": "sha512-l4xMuJo55MAe+N7Qr4rX90vypFwCajSakx59qe/tMaC1aEHWLyw68wF4o0A4SLAY4E0nd+Vt+EyskeDIqu1M6w==", + "license": "MIT", + "dependencies": { + "@inquirer/ansi": "^1.0.2", + "@inquirer/core": "^10.3.2", + "@inquirer/figures": "^1.0.15", + "@inquirer/type": "^3.0.10", + "yoctocolors-cjs": "^2.1.3" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@inquirer/type": { + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/@inquirer/type/-/type-3.0.10.tgz", + "integrity": "sha512-BvziSRxfz5Ov8ch0z/n3oijRSEcEsHnhggm4xFZe93DHcUCTlutlq9Ox4SVENAfcRD22UQq7T/atg9Wr3k09eA==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@oclif/core": { + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@oclif/core/-/core-4.14.0.tgz", + "integrity": "sha512-QCJIZoVJxV7jywgVAUlsQwl3dr3Sa21kfi5z9KrYolbexWJUtFSEtMoNiBWojD05mYycLnB50gp/VxlGdaOCRA==", + "license": "MIT", + "dependencies": { + "ansi-escapes": "^4.3.2", + "ansis": "^3.17.0", + "clean-stack": "^3.0.1", + "cli-spinners": "^2.9.2", + "debug": "^4.4.3", + "ejs": "^6", + "get-package-type": "^0.1.0", + "indent-string": "^4.0.0", + "lilconfig": "^3.1.3", + "minimatch": "^10.2.5", + "semver": "^7.8.1", + "string-width": "^4.2.3", + "supports-color": "^8", + "tinyglobby": "^0.2.17", + "widest-line": "^3.1.0", + "wordwrap": "^1.0.0", + "wrap-ansi": "^7.0.0", + "wsl-utils": "^0.4.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@oclif/plugin-autocomplete": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@oclif/plugin-autocomplete/-/plugin-autocomplete-3.3.0.tgz", + "integrity": "sha512-5CRpSH9FNub2IwAej2PxR6GEbQNLCy0XTzp/KqpZh6U4qiCTLPz20IXcUx9luarJBKRe2qu1cy1acHggo2MMcQ==", + "license": "MIT", + "dependencies": { + "@oclif/core": "^4", + "ansis": "^3.16.0", + "debug": "^4.4.1", + "ejs": "^3.1.10" + }, + "engines": { + "node": ">=22.0.0" + } + }, + "node_modules/@oclif/plugin-autocomplete/node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@oclif/plugin-help": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-6.3.0.tgz", + "integrity": "sha512-cpSRv7tyHHFPv39HrV22eNmu8ylrwjmPvqdlNo3URp79+p5319p+a8PI/3ez6A6GZmjwBj1EWUdVz1aPUAsSmw==", + "license": "MIT", + "dependencies": { + "@oclif/core": "^4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@oclif/plugin-not-found": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-3.3.0.tgz", + "integrity": "sha512-GbdWJOmmBO3xmrVjDXeWG7tXl4vzeGZ+af9ztCfAmhOPEkd/+eeAAadzQPeZoygedqCvsdux3QLq9/MAxusPKg==", + "license": "MIT", + "dependencies": { + "@inquirer/prompts": "^7.10.1", + "@oclif/core": "^4.13.3", + "ansis": "^3.17.0", + "fast-levenshtein": "^3.0.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@raycast/api": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@raycast/api/-/api-2.1.0.tgz", + "integrity": "sha512-KFE7cG071YJp9DdqpTdBao3AjomIConCVuLLjhbB7GQyS0E9s5NKVi8jIezY8MQwro1lnsRR3cSZBsY8EGdCqA==", + "license": "MIT", + "dependencies": { + "@oclif/core": "^4.11.4", + "@oclif/plugin-autocomplete": "^3.2.50", + "@oclif/plugin-help": "^6.2.50", + "@oclif/plugin-not-found": "^3.2.87", + "@types/node": "22.19.17", + "@types/react": "19.0.10", + "esbuild": "^0.28.0", + "react": "19.0.0" + }, + "bin": { + "ray": "bin/run.js" + }, + "engines": { + "node": ">=22.22.2" + }, + "peerDependencies": { + "@types/node": "22.19.17", + "@types/react": "19.0.10", + "react-devtools": "6.1.1" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "@types/react": { + "optional": true + }, + "react-devtools": { + "optional": true + } + } + }, + "node_modules/@raycast/api/node_modules/@types/node": { + "version": "22.19.17", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.17.tgz", + "integrity": "sha512-wGdMcf+vPYM6jikpS/qhg6WiqSV/OhG+jeeHT/KlVqxYfD40iYJf9/AE1uQxVWFvU7MipKRkRv8NSHiCGgPr8Q==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.21.0" + } + }, + "node_modules/@raycast/api/node_modules/@types/react": { + "version": "19.0.10", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.0.10.tgz", + "integrity": "sha512-JuRQ9KXLEjaUNjTWpzuR231Z2WpIwczOkBEIvbHNCzQefFIT0L8IqE6NV6ULLyC1SI/i234JnDoMkfg+RjQj2g==", + "license": "MIT", + "dependencies": { + "csstype": "^3.0.2" + } + }, + "node_modules/@raycast/eslint-config": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@raycast/eslint-config/-/eslint-config-2.2.0.tgz", + "integrity": "sha512-uS/UDvM+3HfABgYhLYnIv0y+IVu+rGiZZIMwQsO5EGrcf2/TX/yioTzfezAQqhdszW4ViCuHbv8BddIagDKZvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint/js": "^9.39.4", + "@raycast/eslint-plugin": "^2.2.0", + "eslint-config-prettier": "^10.1.8", + "globals": "^17.7.0", + "typescript-eslint": "^8.62.0" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "prettier": ">=2", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@raycast/eslint-plugin": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@raycast/eslint-plugin/-/eslint-plugin-2.2.0.tgz", + "integrity": "sha512-ixO3PoRAEAZZcSQeRPvvDS/vs09D47tXdyXrs7hctoxxPtweXgJ6I24kjCD5GuuuQS5hGTiuL+Uy6hIg6a/a4w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/utils": "^8.62.0" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0" + } + }, + "node_modules/@raycast/utils": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@raycast/utils/-/utils-2.3.0.tgz", + "integrity": "sha512-997ANn0aaYBZjlAb94d8qXLXPRGxFen86741ZkTEKwpXosq/GaRlfKzw/T09v0/CzYUjiqT0LhU5VXQ4DeGc+A==", + "license": "MIT", + "dependencies": { + "dequal": "^2.0.3" + }, + "peerDependencies": { + "@raycast/api": ">=1.99.4", + "react": ">=19.0.0" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + } + } + }, + "node_modules/@types/esrecurse": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/@types/esrecurse/-/esrecurse-4.3.1.tgz", + "integrity": "sha512-xJBAbDifo5hpffDBuHl0Y8ywswbiAp/Wi7Y/GtAgSlZyIABppyurxVueOPE8LUQOxdlgi6Zqce7uoEpqNTeiUw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/estree": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.9.tgz", + "integrity": "sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/node": { + "version": "26.4.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-26.4.0.tgz", + "integrity": "sha512-faiGnoIrLH/V8cibOMEAZ8pMw6oXqSukl29ra4mN8GdaB2ZewzeaLj+INpV5N+Z1eKWzY+IzaIZH2EIR6YZRNQ==", + "devOptional": true, + "license": "MIT", + "dependencies": { + "undici-types": "~8.3.0" + } + }, + "node_modules/@types/node/node_modules/undici-types": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-8.3.0.tgz", + "integrity": "sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==", + "devOptional": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.2.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.18.tgz", + "integrity": "sha512-AnzbBERsrLKtk2XSfTbYRLjQPdy116Sty4q+T+Bp3IC4l6jNBvreVPAHmpq9qhXQM7CXZPjLVmGMw9sy+hxQ3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.68.0.tgz", + "integrity": "sha512-WASHDpCm6qO5jj9g1a+8NiW5+GCkAyLReR56/4VruYmNgfUmqpxOfZ2Yfb8xGfJPWv5Qi6LSD8sXdces3vbp/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.12.2", + "@typescript-eslint/scope-manager": "8.68.0", + "@typescript-eslint/type-utils": "8.68.0", + "@typescript-eslint/utils": "8.68.0", + "@typescript-eslint/visitor-keys": "8.68.0", + "ignore": "^7.0.5", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.68.0", + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.6.tgz", + "integrity": "sha512-BAg6QkE8W+TuQLrrw0Ugr7HegXduRuuj8/ti2kSOc+jz1dmx8/WNcjr6XGnq5YpDWxFwwaavqD0+jIUOKelTsw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.68.0.tgz", + "integrity": "sha512-fHq2VC1kpyYfvEcbiMjOpySY4WS7voEp89yAThrHRX5sm9j2lzYppCb2umFMEed4fWcyeLjHxrz0mpjNBaBxMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.68.0", + "@typescript-eslint/types": "8.68.0", + "@typescript-eslint/typescript-estree": "8.68.0", + "@typescript-eslint/visitor-keys": "8.68.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.68.0.tgz", + "integrity": "sha512-5GQtWZCXFcFYux955pvoS02WLc49pXNlvIxocKjS0clvwo3in1RdlzVKyiqQH9vE5AKWFLTaUgeQkOrTS+0Qxw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.68.0", + "@typescript-eslint/types": "^8.68.0", + "debug": "^4.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.68.0.tgz", + "integrity": "sha512-T5eXpcaJNg8bhjHJ8Rjp68Vq/QBteYtTKY8TZqVNPaUbuz0f6jI9t6aDkylwvalpAB9XTTFeFOjrjXAZ3YvmVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.68.0", + "@typescript-eslint/visitor-keys": "8.68.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.68.0.tgz", + "integrity": "sha512-F7zrGQfiJHojPwi8vhxZQC1tWtJzvL74cK/nqri2lk8YUXvYaYwl263xOJ69jDWPUk1hmcdoayFwk9lX09npVw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.68.0.tgz", + "integrity": "sha512-X77zqoY1EjeWGs/0JNxeaMfp5C5lIz4Tw8y66F1Ne8Faq6g424sBNYM6xBAqElfGZPLpWS+CZAp0DXyKDzWiHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.68.0", + "@typescript-eslint/typescript-estree": "8.68.0", + "@typescript-eslint/utils": "8.68.0", + "debug": "^4.4.3", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.68.0.tgz", + "integrity": "sha512-9RnpsGJjrAllCMefGVVsImJM24YurhC0Q1h4UbvivtvOqXmR/vEJge2OoE++z9m6hyg8T1Q8t5SNT6tHSbrxcg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.68.0.tgz", + "integrity": "sha512-OKKsD0tYmoNiU5PW2zehO1yO56jYOm1ShYlxon/Z0SJNidAkdVg86eg9ruRuoXf8xfnuWZGbwDsStkoXbZtIIA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/project-service": "8.68.0", + "@typescript-eslint/tsconfig-utils": "8.68.0", + "@typescript-eslint/types": "8.68.0", + "@typescript-eslint/visitor-keys": "8.68.0", + "debug": "^4.4.3", + "minimatch": "^10.2.2", + "semver": "^7.7.3", + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.5.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.68.0.tgz", + "integrity": "sha512-PB5gJMMOg0Q5P1tsgWtEAqQacJXq0qEqRHDX/YJ4FaTMLfZPpHB3gjl2EJuiZyPABxmj4ZQYiY9m1bdAJ5y7tQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.9.1", + "@typescript-eslint/scope-manager": "8.68.0", + "@typescript-eslint/types": "8.68.0", + "@typescript-eslint/typescript-estree": "8.68.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.68.0.tgz", + "integrity": "sha512-YR65gGdGvTUAWLldC3xLOvOzamdGzB4A5/N8rehEaHs3Zvoe39BhgY+u0SPch1OvrVTfLcc55wsSgK2NcnTS/A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.68.0", + "eslint-visitor-keys": "^5.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/acorn": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.18.0.tgz", + "integrity": "sha512-lGq+9yr1/GuAWaVYIHRjvvySG5/4VfKIvC8EWxStPdcDh/Ka7FG3twP6v4d5BkravUilhIAsG4Qj83t02LWUPQ==", + "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ansis": { + "version": "3.17.0", + "resolved": "https://registry.npmjs.org/ansis/-/ansis-3.17.0.tgz", + "integrity": "sha512-0qWUglt9JEqLFr3w1I1pbrChn1grhaiAR2ocX1PP/flRmxgtwTzPFFFnfIlD6aMOLQZgSuCRlidD70lvx8yhzg==", + "license": "ISC", + "engines": { + "node": ">=14" + } + }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/brace-expansion": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.9.tgz", + "integrity": "sha512-ScQ4IuvIEF1TMlP7Zt+vjJ//9zlPb2SDcxWxM3bk8s6t6GGdJ7KO1dCcTidOPJKePW30LE/2cT7wCyPho9/Wxg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/chardet": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.2.0.tgz", + "integrity": "sha512-rddelWYNPRrXq6PtNEN2S3f6t9ILzvqaN5pVgi4kqt9jHQaXIial9PznB5iSPVlQSLNaaH22ItWz3EJtQ10+OA==", + "license": "MIT" + }, + "node_modules/clean-stack": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.1.tgz", + "integrity": "sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-width": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-4.1.0.tgz", + "integrity": "sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==", + "license": "ISC", + "engines": { + "node": ">= 12" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/ejs": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-6.0.1.tgz", + "integrity": "sha512-UaaM14yby8U3k02ihS1Bmj5Kz2d7CCQM1scxpgs4Mhkq8F1wR2gl3+Ts4h5Ne4Mnt7M9m4Dw7jsuMr3+xO4vZA==", + "license": "Apache-2.0", + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.12.18" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/esbuild": { + "version": "0.28.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.2.tgz", + "integrity": "sha512-HKVLS8dvII+xoKW9kmqxbRKrnWEXfJJr/FZhhJmiqIB0e053QNYFqOBouTMO/k5sID4MvCiUCvv8b9M4h32wIA==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.28.2", + "@esbuild/android-arm": "0.28.2", + "@esbuild/android-arm64": "0.28.2", + "@esbuild/android-x64": "0.28.2", + "@esbuild/darwin-arm64": "0.28.2", + "@esbuild/darwin-x64": "0.28.2", + "@esbuild/freebsd-arm64": "0.28.2", + "@esbuild/freebsd-x64": "0.28.2", + "@esbuild/linux-arm": "0.28.2", + "@esbuild/linux-arm64": "0.28.2", + "@esbuild/linux-ia32": "0.28.2", + "@esbuild/linux-loong64": "0.28.2", + "@esbuild/linux-mips64el": "0.28.2", + "@esbuild/linux-ppc64": "0.28.2", + "@esbuild/linux-riscv64": "0.28.2", + "@esbuild/linux-s390x": "0.28.2", + "@esbuild/linux-x64": "0.28.2", + "@esbuild/netbsd-arm64": "0.28.2", + "@esbuild/netbsd-x64": "0.28.2", + "@esbuild/openbsd-arm64": "0.28.2", + "@esbuild/openbsd-x64": "0.28.2", + "@esbuild/openharmony-arm64": "0.28.2", + "@esbuild/sunos-x64": "0.28.2", + "@esbuild/win32-arm64": "0.28.2", + "@esbuild/win32-ia32": "0.28.2", + "@esbuild/win32-x64": "0.28.2" + } + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.9.1.tgz", + "integrity": "sha512-9VaAkDURekixUQJy0oJYl2DcN6oKMfxay7XzaGYAWQwsb6qfKf+x76R2k1L8kb1boc+FyCAaTA9GmiKaaiaF+A==", + "dev": true, + "license": "MIT", + "workspaces": [ + "packages/*" + ], + "dependencies": { + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.2", + "@eslint/config-array": "^0.23.5", + "@eslint/config-helpers": "^0.7.0", + "@eslint/core": "^1.2.1", + "@eslint/plugin-kit": "^0.7.2", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", + "ajv": "^6.14.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^9.1.2", + "eslint-visitor-keys": "^5.0.1", + "espree": "^11.2.0", + "esquery": "^1.7.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "minimatch": "^10.2.5", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz", + "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", + "dev": true, + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "funding": { + "url": "https://opencollective.com/eslint-config-prettier" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "9.1.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.2.tgz", + "integrity": "sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "@types/esrecurse": "^4.3.1", + "@types/estree": "^1.0.8", + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", + "integrity": "sha512-7p3DrVEIopW1B1avAGLuCSh1jubc01H2JHc8B4qqGblmg5gI9yumBgACjWo4JlIc04ufug4xJ3SQI8HkS/Rgzw==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "acorn": "^8.16.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^5.0.1" + }, + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz", + "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^20.19.0 || ^22.13.0 || >=24" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.7.0.tgz", + "integrity": "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==", + "dev": true, + "license": "BSD-3-Clause", + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true, + "license": "MIT" + }, + "node_modules/fast-levenshtein": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz", + "integrity": "sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ==", + "license": "MIT", + "dependencies": { + "fastest-levenshtein": "^1.0.7" + } + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "license": "MIT", + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/filelist": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.6.tgz", + "integrity": "sha512-5giy2PkLYY1cP39p17Ech+2xlpTRL9HLspOfEgm0L6CwBXBTgsK5ou0JtzYuepxkaQ/tvhCFIJ5uXo0OrM2DxA==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, + "node_modules/filelist/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.4.tgz", + "integrity": "sha512-hGfVzPxthbf3+2yjg/RBs60cB0FhqBS/zvdV/4wn4/BmN0bNMMHPc4V/BbFieqf1TKAGGAHnY4eSjajCl0f2Xg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.4.tgz", + "integrity": "sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==", + "dev": true, + "license": "ISC" + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/globals": { + "version": "17.11.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-17.11.0.tgz", + "integrity": "sha512-Z2I8hM+PbJDXQDq3Icgpzv+mPdwr68iZUU9d5WW4FuXfDUQfkZaZuvjMv42/5crNyw154+9+VWXbYrUgDXbxNw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/iconv-lite": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.3.tgz", + "integrity": "sha512-IKXpvIzjnC9XTAUbVBcMfGS0EPaIXtW6v+zr+RRp+hqULEpo0owZax6wyRwPOJbWbzjYspQwusTsfVr0ifh4uQ==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-wsl": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.1.tgz", + "integrity": "sha512-e6rvdUCiQCAuumZslxRJWR/Doq4VpPR82kqclvcS0efgt430SlGIk05vdCN58+VrzgtIcfNODjozVielycD4Sw==", + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true, + "license": "ISC" + }, + "node_modules/jake": { + "version": "10.9.4", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", + "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.6", + "filelist": "^1.0.4", + "picocolors": "^1.1.1" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true, + "license": "MIT" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz", + "integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==", + "license": "MIT", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/minimatch": { + "version": "10.2.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.6.tgz", + "integrity": "sha512-vpLQEs+VLCr1nU0BXS07maYoFwlDAH0gngQuuttxIwutDFEMHq2blX+8vpgxDdK3J1PwjCJiep77OitTZ4Ll1A==", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.8" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mute-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-2.0.0.tgz", + "integrity": "sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==", + "license": "ISC", + "engines": { + "node": "^18.17.0 || >=20.5.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true, + "license": "MIT" + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/optionator/node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true, + "license": "MIT" + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.7.tgz", + "integrity": "sha512-qcJu88Q2IWqJsDD529JKMdwGm/dvInW4HvQnRwiH9JtihJvzGOscDtHE3x1pBKeUOTysQ8kVmLnJ2kJu7yhcGA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/powershell-utils": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/powershell-utils/-/powershell-utils-0.1.0.tgz", + "integrity": "sha512-dM0jVuXJPsDN6DvRpea484tCUaMiXWjuCn++HGTqUWzGDjv5tZkEZldAJ/UMlqRYGFrD/etByo4/xOuC/snX2A==", + "license": "MIT", + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.9.6", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.6.tgz", + "integrity": "sha512-OpN0zzVdiaiAhxpuuj5efpIS4sY9j7bY6uR5mnj5yPzGkdkjNKSJeUThPb60Jw29QuAZgA4o+/iB49kFiaBX6g==", + "dev": true, + "license": "MIT", + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/react": { + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react/-/react-19.0.0.tgz", + "integrity": "sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.8.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.8.5.tgz", + "integrity": "sha512-Y7/KDsb8LjooZpwaqGyulO6DQlksgCncchHGk+sZIY4SBvUocMBEFH5Ur1fI4dV+Jvl0w6cjvucaIi40puRioA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz", + "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==", + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.4" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/ts-api-utils": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.5.0.tgz", + "integrity": "sha512-OJ/ibxhPlqrMM0UiNHJ/0CKQkoKF243/AEmplt3qpRgkW8VG7IfOS41h7V8TjITqdByHzrjcS/2si+y4lIh8NA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typescript": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.68.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.68.0.tgz", + "integrity": "sha512-MHy0Y0ynqeEbx/S45+i/bBssdy3X6KNBfmJAP35GrgtNxu2TQ5K5xsFDhAnmsq1jvpdoZOPG1LGtJo0HWqYCrQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.68.0", + "@typescript-eslint/parser": "8.68.0", + "@typescript-eslint/typescript-estree": "8.68.0", + "@typescript-eslint/utils": "8.68.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0 || ^10.0.0", + "typescript": ">=4.8.4 <6.1.0" + } + }, + "node_modules/undici-types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", + "license": "MIT" + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "license": "BSD-2-Clause", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "license": "MIT", + "dependencies": { + "string-width": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", + "license": "MIT" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wsl-utils": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/wsl-utils/-/wsl-utils-0.4.0.tgz", + "integrity": "sha512-9YmF+2sFEd+T7TkwlmE337F0IVzfDvDknhtpBQxxXzEOfgPphGlFYpyx0cTuCIFj8/p+sqwBYAeGxOMNSzPPDA==", + "license": "MIT", + "dependencies": { + "is-wsl": "^3.1.0", + "powershell-utils": "^0.1.0" + }, + "engines": { + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors-cjs": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/yoctocolors-cjs/-/yoctocolors-cjs-2.1.3.tgz", + "integrity": "sha512-U/PBtDf35ff0D8X8D0jfdzHYEPFxAI7jJlxZXwCSez5M3190m+QobIfh+sWDWSHMCWWJN2AWamkegn6vr6YBTw==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + } + } +} diff --git a/extensions/dated-folder/package.json b/extensions/dated-folder/package.json new file mode 100644 index 00000000000..35447cb63e2 --- /dev/null +++ b/extensions/dated-folder/package.json @@ -0,0 +1,75 @@ +{ + "$schema": "https://www.raycast.com/schemas/extension.json", + "name": "dated-folder", + "title": "Dated Folder", + "description": "Create a folder named after today's date and open it in your terminal", + "icon": "command-icon.png", + "author": "fhf1121", + "categories": ["Productivity", "Developer Tools"], + "keywords": ["folder", "date", "today", "terminal", "scratch", "workspace"], + "platforms": ["macOS"], + "license": "MIT", + "commands": [ + { + "name": "create-dated-folder", + "title": "Create Dated Folder", + "subtitle": "Dated Folder", + "description": "Create a folder named after today's date inside the configured parent folder and open it in a terminal", + "mode": "no-view" + } + ], + "preferences": [ + { + "name": "parentDir", + "title": "Parent Folder", + "description": "Where dated folders are created. Defaults to a \"temp\" folder on your Desktop when left empty.", + "type": "directory", + "required": false + }, + { + "name": "terminal", + "title": "Terminal", + "description": "App used to open the new folder. Follows the system default terminal when left empty.", + "type": "appPicker", + "required": false + }, + { + "name": "dateFormat", + "title": "Folder Name Format", + "description": "Tokens: yyyy, MM, dd, HH, mm, ss. Use / to create nested folders, e.g. yyyy/MM/dd.", + "type": "textfield", + "default": "yyyy-MM-dd", + "placeholder": "yyyy-MM-dd", + "required": false + }, + { + "name": "revealInFinder", + "title": "Reveal", + "description": "Also reveal the new folder in Finder after opening it in the terminal.", + "label": "Reveal the folder in Finder", + "type": "checkbox", + "default": false, + "required": false + } + ], + "dependencies": { + "@raycast/api": "^2.1.0", + "@raycast/utils": "^2.3.0" + }, + "devDependencies": { + "@raycast/eslint-config": "^2.2.0", + "@types/node": "^26.4.0", + "@types/react": "^19.2.18", + "eslint": "^10.9.1", + "prettier": "^3.9.6", + "typescript": "~6.0.3" + }, + "scripts": { + "build": "ray build -e dist", + "dev": "ray develop", + "fix-lint": "ray lint --fix", + "lint": "ray lint", + "prepublishOnly": "echo \"\\n\\nIt seems like you are trying to publish the Raycast extension to npm.\\n\\nIf you did intend to publish it to npm, remove the \\`prepublishOnly\\` script and rerun \\`npm publish\\` again.\\nIf you wanted to publish it to the Raycast Store instead, use \\`npm run publish\\` instead.\\n\\n\" && exit 1", + "publish": "npx @raycast/api@latest publish" + } +} diff --git a/extensions/dated-folder/src/create-dated-folder.ts b/extensions/dated-folder/src/create-dated-folder.ts new file mode 100644 index 00000000000..53f8b79275e --- /dev/null +++ b/extensions/dated-folder/src/create-dated-folder.ts @@ -0,0 +1,62 @@ +import { Application, getApplications, getPreferenceValues, open, showHUD, showInFinder } from "@raycast/api"; +import { showFailureToast } from "@raycast/utils"; +import { mkdir } from "fs/promises"; +import { homedir } from "os"; +import { + FALLBACK_TERMINAL_BUNDLE, + defaultParentDir, + defaultTerminalBundleId, + formatDate, + isWindows, + openTerminalWindows, + resolveInside, +} from "./lib"; + +interface Preferences { + parentDir?: string; + terminal?: Application; + dateFormat?: string; + revealInFinder: boolean; +} + +const DEFAULT_FORMAT = "yyyy-MM-dd"; + +async function openTerminalMac(target: string, app?: Application): Promise { + if (app) { + await open(target, app); + return app.name; + } + // Follow the system default terminal; if the registered app is no longer installed, use Terminal.app. + const bundleId = await defaultTerminalBundleId(); + const installed = (await getApplications()).find((candidate) => candidate.bundleId === bundleId); + await open(target, installed ?? FALLBACK_TERMINAL_BUNDLE); + return installed?.name ?? "Terminal"; +} + +export default async function command() { + try { + const prefs = getPreferenceValues(); + + const parent = prefs.parentDir?.trim() || (await defaultParentDir()); + const format = prefs.dateFormat?.trim() || DEFAULT_FORMAT; + const target = resolveInside(parent, formatDate(format, new Date())); + if (!target) { + await showFailureToast(new Error(format), { title: "Folder Name Format must stay inside the parent folder" }); + return; + } + + await mkdir(target, { recursive: true }); + + const terminal = isWindows + ? await openTerminalWindows(target, prefs.terminal) + : await openTerminalMac(target, prefs.terminal); + + if (prefs.revealInFinder) { + await showInFinder(target); + } + + await showHUD(`📂 ${terminal} → ${target.replace(homedir(), "~")}`); + } catch (error) { + await showFailureToast(error, { title: "Could not create dated folder" }); + } +} diff --git a/extensions/dated-folder/src/lib.ts b/extensions/dated-folder/src/lib.ts new file mode 100644 index 00000000000..457e75ff571 --- /dev/null +++ b/extensions/dated-folder/src/lib.ts @@ -0,0 +1,157 @@ +import type { Application } from "@raycast/api"; +import { execFile, spawn } from "child_process"; +import { existsSync } from "fs"; +import { homedir } from "os"; +import { join, resolve, sep } from "path"; +import { promisify } from "util"; + +const execFileAsync = promisify(execFile); + +export const isWindows = process.platform === "win32"; + +// --------------------------------------------------------------------------- +// Folder name +// --------------------------------------------------------------------------- + +const TOKENS: Record number> = { + yyyy: (d) => d.getFullYear(), + MM: (d) => d.getMonth() + 1, + dd: (d) => d.getDate(), + HH: (d) => d.getHours(), + mm: (d) => d.getMinutes(), + ss: (d) => d.getSeconds(), +}; + +export function formatDate(format: string, date: Date): string { + return format.replace(/yyyy|MM|dd|HH|mm|ss/g, (token) => String(TOKENS[token](date)).padStart(2, "0")); +} + +/** + * Resolves `name` inside `parent`. `/` in the name is allowed so `yyyy/MM/dd` builds a + * hierarchy, but the result must stay below the parent — returns null for `..`, absolute + * paths, or anything else that would escape it. + */ +export function resolveInside(parent: string, name: string): string | null { + const base = resolve(parent); + const target = resolve(base, name); + return target.startsWith(base + sep) ? target : null; +} + +// --------------------------------------------------------------------------- +// Default parent folder +// --------------------------------------------------------------------------- + +function system32(...segments: string[]): string { + return join(process.env.SystemRoot ?? "C:\\Windows", "System32", ...segments); +} + +/** + * On Windows the Desktop is often not `%USERPROFILE%\Desktop`: OneDrive moves it, group + * policy can redirect it, and the on-disk name may be localized. The registry's known-folder + * entry is the source of truth, so ask it instead of guessing. + */ +async function desktopDir(): Promise { + if (!isWindows) return join(homedir(), "Desktop"); + try { + const { stdout } = await execFileAsync( + system32("reg.exe"), + ["query", "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders", "/v", "Desktop"], + { windowsHide: true }, + ); + const value = /REG(?:_EXPAND)?_SZ\s+(.+)/.exec(stdout)?.[1].trim(); + // process.env is case-insensitive on Windows, so %UserProfile% and %USERPROFILE% both resolve + if (value) return value.replace(/%([^%]+)%/g, (match, name) => process.env[name] ?? match); + } catch { + // reg.exe unavailable or key missing — fall through to the conventional location + } + return join(homedir(), "Desktop"); +} + +export async function defaultParentDir(): Promise { + return join(await desktopDir(), "temp"); +} + +// --------------------------------------------------------------------------- +// macOS: system default terminal +// --------------------------------------------------------------------------- + +export const FALLBACK_TERMINAL_BUNDLE = "com.apple.Terminal"; + +const LS_PREFS = join(homedir(), "Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist"); + +/** + * macOS has no "default terminal" setting in System Settings, but LaunchServices stores the + * shell-role handler for `public.unix-executable`. That is exactly what terminal apps write when + * they ask "make this your default terminal?" on first launch, so it is the value to follow. + */ +export async function defaultTerminalBundleId(): Promise { + if (!existsSync(LS_PREFS)) return FALLBACK_TERMINAL_BUNDLE; + try { + const { stdout } = await execFileAsync("/usr/bin/plutil", ["-convert", "json", "-o", "-", LS_PREFS]); + const handlers: unknown = JSON.parse(stdout).LSHandlers; + const entry = Array.isArray(handlers) + ? handlers.find((h) => h?.LSHandlerContentType === "public.unix-executable" && h?.LSHandlerRoleShell) + : undefined; + return entry?.LSHandlerRoleShell ?? FALLBACK_TERMINAL_BUNDLE; + } catch { + return FALLBACK_TERMINAL_BUNDLE; + } +} + +// --------------------------------------------------------------------------- +// Windows: open a terminal at a folder +// --------------------------------------------------------------------------- + +/** + * `start` gives the program its own window and `/d` sets its working directory, which every + * console shell and most terminal emulators use as the starting folder. Console programs + * launched this way are hosted by the user's "Default terminal application" setting. + * `start` returns as soon as the program is launched, so waiting for cmd's exit code is cheap + * and is the only way to learn that the executable could not be found. + */ +function launch(exe: string, args: string[], cwd: string): Promise { + const command = ["start", '""', "/d", `"${cwd}"`, `"${exe}"`, ...args.map((arg) => `"${arg}"`)].join(" "); + const child = spawn(process.env.ComSpec ?? system32("cmd.exe"), ["/d", "/s", "/c", `"${command}"`], { + stdio: "ignore", + windowsHide: true, + windowsVerbatimArguments: true, + }); + return new Promise((done, fail) => { + child.once("error", fail); + child.once("exit", (code) => + code === 0 ? done() : fail(new Error(`Could not launch ${exe} (exit code ${code})`)), + ); + }); +} + +// The Store build of Windows Terminal lives under the protected Program Files\WindowsApps +// folder and cannot be launched from there; its app-execution alias is the supported entry point. +const WT_ALIAS = join( + process.env.LOCALAPPDATA ?? join(homedir(), "AppData", "Local"), + "Microsoft", + "WindowsApps", + "wt.exe", +); + +function isWindowsTerminal(app: Application): boolean { + return ( + /^windows terminal/i.test(app.name) || /WindowsTerminal/i.test(app.windowsAppId ?? "") || /wt\.exe$/i.test(app.path) + ); +} + +/** Opens `target` in a terminal on Windows and returns the app name for the HUD. */ +export async function openTerminalWindows(target: string, app?: Application): Promise { + if (app && !isWindowsTerminal(app)) { + await launch(app.path, [], target); + return app.name; + } + // Windows Terminal — chosen explicitly, or as the best stand-in for "system default" when installed. + // It ignores the inherited working directory (profiles define their own), so pass -d explicitly. + const wt = existsSync(WT_ALIAS) ? WT_ALIAS : app?.path; + if (wt) { + await launch(wt, ["-d", target], target); + return app?.name ?? "Windows Terminal"; + } + await launch(system32("WindowsPowerShell", "v1.0", "powershell.exe"), [], target); + return "Windows PowerShell"; +} diff --git a/extensions/dated-folder/tsconfig.json b/extensions/dated-folder/tsconfig.json new file mode 100644 index 00000000000..7fc8c075d73 --- /dev/null +++ b/extensions/dated-folder/tsconfig.json @@ -0,0 +1,17 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "include": ["src/**/*", "raycast-env.d.ts"], + "compilerOptions": { + "lib": ["ES2023"], + "module": "commonjs", + "target": "ES2023", + "strict": true, + "isolatedModules": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "jsx": "react-jsx", + "resolveJsonModule": true, + "types": ["node"] + } +} From aee147739b0abf0357ee39f5d4e4031ce2bf672f Mon Sep 17 00:00:00 2001 From: fhf <28811207+fanhefeng@users.noreply.github.com> Date: Fri, 28 Aug 2026 15:25:31 +0800 Subject: [PATCH 2/3] Address review: use generated preference types, pick the newest shell handler - Use the generated Preferences.CreateDatedFolder type instead of a hand-written interface that duplicated the manifest. - When the LaunchServices plist carries several shell-role records for public.unix-executable, follow the one with the newest LSHandlerModificationDate rather than the first record in the file. --- .../dated-folder/src/create-dated-folder.ts | 9 +------ extensions/dated-folder/src/lib.ts | 25 +++++++++++++++---- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/extensions/dated-folder/src/create-dated-folder.ts b/extensions/dated-folder/src/create-dated-folder.ts index 53f8b79275e..c7ac2ea8d3e 100644 --- a/extensions/dated-folder/src/create-dated-folder.ts +++ b/extensions/dated-folder/src/create-dated-folder.ts @@ -12,13 +12,6 @@ import { resolveInside, } from "./lib"; -interface Preferences { - parentDir?: string; - terminal?: Application; - dateFormat?: string; - revealInFinder: boolean; -} - const DEFAULT_FORMAT = "yyyy-MM-dd"; async function openTerminalMac(target: string, app?: Application): Promise { @@ -35,7 +28,7 @@ async function openTerminalMac(target: string, app?: Application): Promise(); + const prefs = getPreferenceValues(); const parent = prefs.parentDir?.trim() || (await defaultParentDir()); const format = prefs.dateFormat?.trim() || DEFAULT_FORMAT; diff --git a/extensions/dated-folder/src/lib.ts b/extensions/dated-folder/src/lib.ts index 457e75ff571..e131fc5b531 100644 --- a/extensions/dated-folder/src/lib.ts +++ b/extensions/dated-folder/src/lib.ts @@ -88,16 +88,31 @@ export async function defaultTerminalBundleId(): Promise { if (!existsSync(LS_PREFS)) return FALLBACK_TERMINAL_BUNDLE; try { const { stdout } = await execFileAsync("/usr/bin/plutil", ["-convert", "json", "-o", "-", LS_PREFS]); - const handlers: unknown = JSON.parse(stdout).LSHandlers; - const entry = Array.isArray(handlers) - ? handlers.find((h) => h?.LSHandlerContentType === "public.unix-executable" && h?.LSHandlerRoleShell) - : undefined; - return entry?.LSHandlerRoleShell ?? FALLBACK_TERMINAL_BUNDLE; + return currentShellHandler(JSON.parse(stdout).LSHandlers) ?? FALLBACK_TERMINAL_BUNDLE; } catch { return FALLBACK_TERMINAL_BUNDLE; } } +/** + * Picks the shell-role handler for `public.unix-executable` from the LSHandlers array. The file + * can carry several records for the same content type (LaunchServices rewrites are not always + * deduplicated), so the one with the newest `LSHandlerModificationDate` wins — that is the + * terminal the user chose most recently, not merely the first record in the file. + */ +export function currentShellHandler(handlers: unknown): string | undefined { + if (!Array.isArray(handlers)) return undefined; + const isRecord = (value: unknown): value is Record => typeof value === "object" && value !== null; + const shellHandlers = handlers.filter( + (h): h is Record => + isRecord(h) && h.LSHandlerContentType === "public.unix-executable" && typeof h.LSHandlerRoleShell === "string", + ); + const modified = (h: Record) => + typeof h.LSHandlerModificationDate === "number" ? h.LSHandlerModificationDate : 0; + const newest = shellHandlers.sort((a, b) => modified(b) - modified(a))[0]; + return newest?.LSHandlerRoleShell as string | undefined; +} + // --------------------------------------------------------------------------- // Windows: open a terminal at a folder // --------------------------------------------------------------------------- From 1fb6021b4fb2aedd05cf749e4bff97b9407d2c90 Mon Sep 17 00:00:00 2001 From: fhf <28811207+fanhefeng@users.noreply.github.com> Date: Sat, 29 Aug 2026 14:57:39 +0800 Subject: [PATCH 3/3] Keep single-quoted text literal in the folder name format - Text wrapped in single quotes is no longer scanned for date tokens, so a format like 'summer'-yyyy yields summer-2026 instead of having the mm inside "summer" expanded to the current minute. '' produces a single quote, following the usual LDML convention. - Document the escape in the preference description and the README. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01LV7vNG8uKtCWkeYDyx5CgM --- extensions/dated-folder/README.md | 3 ++- extensions/dated-folder/package.json | 2 +- extensions/dated-folder/src/lib.ts | 10 +++++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/extensions/dated-folder/README.md b/extensions/dated-folder/README.md index 1b13ce3d251..f9db1a780a9 100644 --- a/extensions/dated-folder/README.md +++ b/extensions/dated-folder/README.md @@ -12,10 +12,11 @@ Run **Create Dated Folder**. That is it — the folder is created (or reused if | --- | --- | --- | | **Parent Folder** | `Desktop/temp` | Where dated folders are created. It is created on first run if missing. On Windows the real Desktop location is used, even when OneDrive or a policy has moved it. | | **Terminal** | System default | Any installed app. When empty, macOS follows the terminal registered as the default handler for shell scripts — the setting apps like Ghostty, iTerm2, and Warp write when you accept "make this your default terminal" — and falls back to Terminal.app. Windows uses Windows Terminal when installed, otherwise Windows PowerShell. | -| **Folder Name Format** | `yyyy-MM-dd` | Tokens: `yyyy`, `MM`, `dd`, `HH`, `mm`, `ss`. Use `/` to nest, e.g. `yyyy/MM/dd` creates `2026/08/28`. The result must stay inside the parent folder. | +| **Folder Name Format** | `yyyy-MM-dd` | Tokens: `yyyy`, `MM`, `dd`, `HH`, `mm`, `ss`. Wrap words in single quotes to keep them literal, e.g. `'summer'-yyyy` → `summer-2026`. Use `/` to nest, e.g. `yyyy/MM/dd` creates `2026/08/28`. The result must stay inside the parent folder. | | **Reveal** | Off | Also reveal the folder in Finder / File Explorer. | ## Notes +- **Folder name format** — tokens are expanded wherever they appear, so quote any word that contains one: `'add'-yyyy` rather than `add-yyyy`, which would otherwise read `dd` as the day. `''` produces a single quote. - **macOS** — the folder is opened with the chosen app via `open`, so any terminal that accepts a folder works (Terminal, iTerm2, Ghostty, Warp, kitty, WezTerm, …). - **Windows** — Windows Terminal is launched with `-d `; other apps and shells are started with the folder as their working directory. The code is in place but has not been verified on a real Windows machine yet, so the extension currently declares macOS only. diff --git a/extensions/dated-folder/package.json b/extensions/dated-folder/package.json index 35447cb63e2..78d06bcec46 100644 --- a/extensions/dated-folder/package.json +++ b/extensions/dated-folder/package.json @@ -36,7 +36,7 @@ { "name": "dateFormat", "title": "Folder Name Format", - "description": "Tokens: yyyy, MM, dd, HH, mm, ss. Use / to create nested folders, e.g. yyyy/MM/dd.", + "description": "Tokens: yyyy, MM, dd, HH, mm, ss. Wrap words in single quotes to keep them literal, e.g. 'summer'-yyyy. Use / to create nested folders, e.g. yyyy/MM/dd.", "type": "textfield", "default": "yyyy-MM-dd", "placeholder": "yyyy-MM-dd", diff --git a/extensions/dated-folder/src/lib.ts b/extensions/dated-folder/src/lib.ts index e131fc5b531..5eb4c607abf 100644 --- a/extensions/dated-folder/src/lib.ts +++ b/extensions/dated-folder/src/lib.ts @@ -22,8 +22,16 @@ const TOKENS: Record number> = { ss: (d) => d.getSeconds(), }; +/** + * Expands the date tokens in `format`. Text wrapped in single quotes is kept literally, which is + * what makes names like `'summer'-yyyy` work: without the escape the `mm` inside `summer` reads as + * minutes, and every `dd`, `MM`, `HH` or `ss` sitting in an ordinary word turns into a number with + * nothing to warn the user. `''` yields a single quote, following the usual LDML convention. + */ export function formatDate(format: string, date: Date): string { - return format.replace(/yyyy|MM|dd|HH|mm|ss/g, (token) => String(TOKENS[token](date)).padStart(2, "0")); + return format.replace(/'((?:[^']|'')*)'|yyyy|MM|dd|HH|mm|ss/g, (token, literal?: string) => + literal === undefined ? String(TOKENS[token](date)).padStart(2, "0") : literal.replace(/''/g, "'") || "'", + ); } /**