spec-cat 0.1.32 → 0.1.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.output/nitro.json +1 -1
- package/.output/public/_nuxt/{CAIM5SZW.js → 2bVyJ3C-.js} +1 -1
- package/.output/public/_nuxt/{CnSPKulS.js → B23a03ff.js} +1 -1
- package/.output/public/_nuxt/BZYSrnwm.js +1 -0
- package/.output/public/_nuxt/{BO4RhS76.js → Bow35xGg.js} +1 -1
- package/.output/public/_nuxt/{0gHHxxIN.js → C05Lqpax.js} +1 -1
- package/.output/public/_nuxt/{FnrF2G0R.js → C5HhonQV.js} +1 -1
- package/.output/public/_nuxt/CcZ9D4X4.js +85 -0
- package/.output/public/_nuxt/{eGsZqesz.js → DetqH2Au.js} +1 -1
- package/.output/public/_nuxt/{BMA_6bNq.js → DoFlIjCg.js} +1 -1
- package/.output/public/_nuxt/DvDpGQk1.js +1 -0
- package/.output/public/_nuxt/{BGjuZ_aG.js → Dwz5cRi5.js} +1 -1
- package/.output/public/_nuxt/Dx2SytMU.js +4 -0
- package/.output/public/_nuxt/builds/latest.json +1 -1
- package/.output/public/_nuxt/builds/meta/ae049918-a9f5-4b30-9768-e9f982a19172.json +1 -0
- package/.output/public/_nuxt/default.BcCh6loI.css +1 -0
- package/.output/public/_nuxt/entry.DWv01Nib.css +1 -0
- package/.output/public/_nuxt/{RDjifZHL.js → eqa72KqC.js} +1 -1
- package/.output/public/_nuxt/error-404.BI7MGITY.css +1 -0
- package/.output/public/_nuxt/error-500.D0vfDezE.css +1 -0
- package/.output/server/chunks/_/error-500.mjs.map +1 -1
- package/.output/server/chunks/_/git.mjs +111 -163
- package/.output/server/chunks/_/git.mjs.map +1 -1
- package/.output/server/chunks/_/gitBranchOperations.mjs +61 -0
- package/.output/server/chunks/_/gitBranchOperations.mjs.map +1 -0
- package/.output/server/chunks/build/client.precomputed.mjs +1 -1
- package/.output/server/chunks/build/client.precomputed.mjs.map +1 -1
- package/.output/server/chunks/nitro/nitro.mjs +893 -893
- package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/branch-rename.post.mjs +2 -1
- package/.output/server/chunks/routes/api/git/branch-rename.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/branches.get.mjs +2 -2
- package/.output/server/chunks/routes/api/git/branches.get.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/cherry-pick.post.mjs +2 -1
- package/.output/server/chunks/routes/api/git/cherry-pick.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/clean.post.mjs +2 -1
- package/.output/server/chunks/routes/api/git/clean.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/commit/_id_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/git/diff.get.mjs +1 -1
- package/.output/server/chunks/routes/api/git/fetch.post.mjs +2 -1
- package/.output/server/chunks/routes/api/git/fetch.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/file-diff.get.mjs +1 -1
- package/.output/server/chunks/routes/api/git/graph.get.mjs +1 -1
- package/.output/server/chunks/routes/api/git/log.get.mjs +1 -1
- package/.output/server/chunks/routes/api/git/merge-base.get.mjs +1 -1
- package/.output/server/chunks/routes/api/git/merge.post.mjs +2 -1
- package/.output/server/chunks/routes/api/git/merge.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/pull.post.mjs +2 -1
- package/.output/server/chunks/routes/api/git/pull.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/push.post.mjs +2 -1
- package/.output/server/chunks/routes/api/git/push.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/rebase.post.mjs +2 -1
- package/.output/server/chunks/routes/api/git/rebase.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/remote.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/git/remote.post.mjs +1 -1
- package/.output/server/chunks/routes/api/git/remote.put.mjs +1 -1
- package/.output/server/chunks/routes/api/git/remotes.get.mjs +1 -1
- package/.output/server/chunks/routes/api/git/reset.post.mjs +2 -1
- package/.output/server/chunks/routes/api/git/reset.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/revert.post.mjs +2 -1
- package/.output/server/chunks/routes/api/git/revert.post.mjs.map +1 -1
- package/.output/server/chunks/routes/api/git/show.get.mjs +1 -1
- package/.output/server/chunks/routes/api/git/stash-apply.post.mjs +1 -1
- package/.output/server/chunks/routes/api/git/stash-branch.post.mjs +1 -1
- package/.output/server/chunks/routes/api/git/stash-drop.post.mjs +1 -1
- package/.output/server/chunks/routes/api/git/stash-pop.post.mjs +1 -1
- package/.output/server/chunks/routes/api/git/stash.get.mjs +1 -1
- package/.output/server/chunks/routes/api/git/stash.post.mjs +1 -1
- package/.output/server/chunks/routes/api/git/state.get.mjs +1 -1
- package/.output/server/chunks/routes/api/git/tag/_name_.get.mjs +1 -1
- package/.output/server/chunks/routes/api/git/tag-push.post.mjs +1 -1
- package/.output/server/chunks/routes/api/git/tag.delete.mjs +1 -1
- package/.output/server/chunks/routes/api/git/tag.post.mjs +1 -1
- package/.output/server/chunks/routes/api/repository/status.get.mjs +1 -1
- package/.output/server/chunks/routes/renderer.mjs.map +1 -1
- package/.output/server/node_modules/sharp/build/Release/sharp-linux-x64.node +0 -0
- package/.output/server/node_modules/sharp/vendor/8.14.5/{darwin-arm64v8/lib/libvips-cpp.42.dylib → linux-x64/lib/libvips-cpp.so.42} +0 -0
- package/.output/server/node_modules/sharp/vendor/8.14.5/linux-x64/platform.json +1 -0
- package/.output/server/node_modules/sharp/vendor/8.14.5/{darwin-arm64v8 → linux-x64}/versions.json +1 -1
- package/.output/server/package.json +1 -1
- package/README.md +8 -0
- package/package.json +1 -1
- package/.output/public/_nuxt/C9uS_rHl.js +0 -4
- package/.output/public/_nuxt/CtnpjtN2.js +0 -1
- package/.output/public/_nuxt/QiHGDbX5.js +0 -85
- package/.output/public/_nuxt/builds/meta/ef0111e7-5cb1-4e57-9dfa-802262c9017b.json +0 -1
- package/.output/public/_nuxt/default.D9amvrGI.css +0 -1
- package/.output/public/_nuxt/entry.D8StCG4P.css +0 -1
- package/.output/public/_nuxt/error-404.CbGlV_tK.css +0 -1
- package/.output/public/_nuxt/error-500.CUQ4fPr8.css +0 -1
- package/.output/public/_nuxt/rOoa58kt.js +0 -1
- package/.output/server/node_modules/onnxruntime-node/bin/napi-v3/darwin/arm64/libonnxruntime.1.14.0.dylib +0 -0
- package/.output/server/node_modules/onnxruntime-node/bin/napi-v3/darwin/x64/libonnxruntime.1.14.0.dylib +0 -0
- package/.output/server/node_modules/sharp/build/Release/sharp-darwin-arm64v8.node +0 -0
- package/.output/server/node_modules/sharp/vendor/8.14.5/darwin-arm64v8/include/harfbuzz/hb-cplusplus.hh +0 -223
- package/.output/server/node_modules/sharp/vendor/8.14.5/darwin-arm64v8/include/vips/vips8 +0 -60
- package/.output/server/node_modules/sharp/vendor/8.14.5/darwin-arm64v8/platform.json +0 -1
- /package/.output/server/node_modules/sharp/vendor/8.14.5/{darwin-arm64v8 → linux-x64}/THIRD-PARTY-NOTICES.md +0 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./DvDpGQk1.js","./Dx2SytMU.js","./entry.DWv01Nib.css","./DoFlIjCg.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{y as v,z as y,A as d,d as Xe,C as K,G as p,Q as Ye,S as _t,R as tt,I as ye,E as Le,B as A,K as U,g as Q,J as Ne,U as is,k as H,V as Jt,L as _e,H as ge,o as mt,W as kt,X as Xm,N as Ve,Y as Wt,T as Cr,Z as Xs,_ as Qu,$ as Te,a0 as os,O as mn,D as at,P as xr,a1 as Im,a2 as fr,a3 as ms,a4 as kc,a5 as P1,c as T1,a6 as Lh,a7 as Vm,a8 as M1,q as A1,a9 as _1,x as R1}from"./Dx2SytMU.js";import{r as wt,c as pn,b as ul,a as cs,u as Pu}from"./Dwz5cRi5.js";import{g as po,m as B1,p as D1,h as Xh,i as Z1,j as Ih,k as E1,l as L1,n as X1,o as I1,q as zm,s as Vh,C as V1,_ as z1,t as Tu,u as N1,r as W1,a as q1}from"./2bVyJ3C-.js";import{_ as ps}from"./DlAUqK2U.js";import{S as Qa,i as j1,b as Y1,P as F1,W as zh,M as Nh,c as Wh,d as qh,g as jh,e as U1,D as Nm,f as Wm,h as G1,a as go,j as Ut,u as Oo,k as Qs,l as Bo}from"./DvDpGQk1.js";import{u as wc,_ as H1}from"./Bow35xGg.js";function K1(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M10.5 6h9.75M10.5 6a1.5 1.5 0 1 1-3 0m3 0a1.5 1.5 0 1 0-3 0M3.75 6H7.5m3 12h9.75m-9.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-3.75 0H7.5m9-6h3.75m-3.75 0a1.5 1.5 0 0 1-3 0m3 0a1.5 1.5 0 0 0-3 0m-9.75 0h9.75"})])}function J1(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m20.25 7.5-.625 10.632a2.25 2.25 0 0 1-2.247 2.118H6.622a2.25 2.25 0 0 1-2.247-2.118L3.75 7.5m8.25 3v6.75m0 0-3-3m3 3 3-3M3.375 7.5h17.25c.621 0 1.125-.504 1.125-1.125v-1.5c0-.621-.504-1.125-1.125-1.125H3.375c-.621 0-1.125.504-1.125 1.125v1.5c0 .621.504 1.125 1.125 1.125Z"})])}function ev(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 8.25H7.5a2.25 2.25 0 0 0-2.25 2.25v9a2.25 2.25 0 0 0 2.25 2.25h9a2.25 2.25 0 0 0 2.25-2.25v-9a2.25 2.25 0 0 0-2.25-2.25H15M9 12l3 3m0 0 3-3m-3 3V2.25"})])}function tv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5M16.5 12 12 16.5m0 0L7.5 12m4.5 4.5V3"})])}function rv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"})])}function qm(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19.5 12c0-1.232-.046-2.453-.138-3.662a4.006 4.006 0 0 0-3.7-3.7 48.678 48.678 0 0 0-7.324 0 4.006 4.006 0 0 0-3.7 3.7c-.017.22-.032.441-.046.662M19.5 12l3-3m-3 3-3-3m-12 3c0 1.232.046 2.453.138 3.662a4.006 4.006 0 0 0 3.7 3.7 48.656 48.656 0 0 0 7.324 0 4.006 4.006 0 0 0 3.7-3.7c.017-.22.032-.441.046-.662M4.5 12l3 3m-3-3-3 3"})])}function jm(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3 16.5v2.25A2.25 2.25 0 0 0 5.25 21h13.5A2.25 2.25 0 0 0 21 18.75V16.5m-13.5-9L12 3m0 0 4.5 4.5M12 3v13.5"})])}function Ym(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 15 3 9m0 0 6-6M3 9h12a6 6 0 0 1 0 12h-3"})])}function Fm(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 9V4.5M9 9H4.5M9 9 3.75 3.75M9 15v4.5M9 15H4.5M9 15l-5.25 5.25M15 9h4.5M15 9V4.5M15 9l5.25-5.25M15 15h4.5M15 15v4.5m0-4.5 5.25 5.25"})])}function Um(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.75 3.75v4.5m0-4.5h4.5m-4.5 0L9 9M3.75 20.25v-4.5m0 4.5h4.5m-4.5 0L9 15M20.25 3.75h-4.5m4.5 0v4.5m0-4.5L15 9m5.25 11.25h-4.5m4.5 0v-4.5m0 4.5L15 15"})])}function Gm(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M7.5 21 3 16.5m0 0L7.5 12M3 16.5h13.5m0-13.5L21 7.5m0 0L16.5 12M21 7.5H7.5"})])}function nv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.75 3.104v5.714a2.25 2.25 0 0 1-.659 1.591L5 14.5M9.75 3.104c-.251.023-.501.05-.75.082m.75-.082a24.301 24.301 0 0 1 4.5 0m0 0v5.714c0 .597.237 1.17.659 1.591L19.8 15.3M14.25 3.104c.251.023.501.05.75.082M19.8 15.3l-1.57.393A9.065 9.065 0 0 1 12 15a9.065 9.065 0 0 0-6.23-.693L5 14.5m14.8.8 1.402 1.402c1.232 1.232.65 3.318-1.067 3.611A48.309 48.309 0 0 1 12 21c-2.773 0-5.491-.235-8.135-.687-1.718-.293-2.3-2.379-1.067-3.61L5 14.5"})])}function Hm(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m3.75 13.5 10.5-11.25L12 10.5h8.25L9.75 21.75 12 13.5H3.75Z"})])}function sv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 12.75c1.148 0 2.278.08 3.383.237 1.037.146 1.866.966 1.866 2.013 0 3.728-2.35 6.75-5.25 6.75S6.75 18.728 6.75 15c0-1.046.83-1.867 1.866-2.013A24.204 24.204 0 0 1 12 12.75Zm0 0c2.883 0 5.647.508 8.207 1.44a23.91 23.91 0 0 1-1.152 6.06M12 12.75c-2.883 0-5.647.508-8.208 1.44.125 2.104.52 4.136 1.153 6.06M12 12.75a2.25 2.25 0 0 0 2.248-2.354M12 12.75a2.25 2.25 0 0 1-2.248-2.354M12 8.25c.995 0 1.971-.08 2.922-.236.403-.066.74-.358.795-.762a3.778 3.778 0 0 0-.399-2.25M12 8.25c-.995 0-1.97-.08-2.922-.236-.402-.066-.74-.358-.795-.762a3.734 3.734 0 0 1 .4-2.253M12 8.25a2.25 2.25 0 0 0-2.248 2.146M12 8.25a2.25 2.25 0 0 1 2.248 2.146M8.683 5a6.032 6.032 0 0 1-1.155-1.002c.07-.63.27-1.222.574-1.747m.581 2.749A3.75 3.75 0 0 1 15.318 5m0 0c.427-.283.815-.62 1.155-.999a4.471 4.471 0 0 0-.575-1.752M4.921 6a24.048 24.048 0 0 0-.392 3.314c1.668.546 3.416.914 5.223 1.082M19.08 6c.205 1.08.337 2.187.392 3.314a23.882 23.882 0 0 1-5.223 1.082"})])}function iv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M7.5 14.25v2.25m3-4.5v4.5m3-6.75v6.75m3-9v9M6 20.25h12A2.25 2.25 0 0 0 20.25 18V6A2.25 2.25 0 0 0 18 3.75H6A2.25 2.25 0 0 0 3.75 6v12A2.25 2.25 0 0 0 6 20.25Z"})])}function ov(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M20.25 8.511c.884.284 1.5 1.128 1.5 2.097v4.286c0 1.136-.847 2.1-1.98 2.193-.34.027-.68.052-1.02.072v3.091l-3-3c-1.354 0-2.694-.055-4.02-.163a2.115 2.115 0 0 1-.825-.242m9.345-8.334a2.126 2.126 0 0 0-.476-.095 48.64 48.64 0 0 0-8.048 0c-1.131.094-1.976 1.057-1.976 2.192v4.286c0 .837.46 1.58 1.155 1.951m9.345-8.334V6.637c0-1.621-1.152-3.026-2.76-3.235A48.455 48.455 0 0 0 11.25 3c-2.115 0-4.198.137-6.24.402-1.608.209-2.76 1.614-2.76 3.235v6.226c0 1.621 1.152 3.026 2.76 3.235.577.075 1.157.14 1.74.194V21l4.155-4.155"})])}function av(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M2.25 12.76c0 1.6 1.123 2.994 2.707 3.227 1.087.16 2.185.283 3.293.369V21l4.076-4.076a1.526 1.526 0 0 1 1.037-.443 48.282 48.282 0 0 0 5.68-.494c1.584-.233 2.707-1.626 2.707-3.228V6.741c0-1.602-1.123-2.995-2.707-3.228A48.394 48.394 0 0 0 12 3c-2.392 0-4.744.175-7.043.513C3.373 3.746 2.25 5.14 2.25 6.741v6.018Z"})])}function Mu(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m4.5 12.75 6 6 9-13.5"})])}function lv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m19.5 8.25-7.5 7.5-7.5-7.5"})])}function Au(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M8.25 15 12 18.75 15.75 15m-7.5-6L12 5.25 15.75 9"})])}function cv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m4.5 15.75 7.5-7.5 7.5 7.5"})])}function _u(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 12h3.75M9 15h3.75M9 18h3.75m3 .75H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 0 0-1.123-.08m-5.801 0c-.065.21-.1.433-.1.664 0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75 2.25 2.25 0 0 0-.1-.664m-5.8 0A2.251 2.251 0 0 1 13.5 2.25H15c1.012 0 1.867.668 2.15 1.586m-5.8 0c-.376.023-.75.05-1.124.08C9.095 4.01 8.25 4.973 8.25 6.108V8.25m0 0H4.875c-.621 0-1.125.504-1.125 1.125v11.25c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V9.375c0-.621-.504-1.125-1.125-1.125H8.25ZM6.75 12h.008v.008H6.75V12Zm0 3h.008v.008H6.75V15Zm0 3h.008v.008H6.75V18Z"})])}function Is(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M8.25 7.5V6.108c0-1.135.845-2.098 1.976-2.192.373-.03.748-.057 1.123-.08M15.75 18H18a2.25 2.25 0 0 0 2.25-2.25V6.108c0-1.135-.845-2.098-1.976-2.192a48.424 48.424 0 0 0-1.123-.08M15.75 18.75v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5A3.375 3.375 0 0 0 6.375 7.5H5.25m11.9-3.664A2.251 2.251 0 0 0 15 2.25h-1.5a2.251 2.251 0 0 0-2.15 1.586m5.8 0c.065.21.1.433.1.664v.75h-6V4.5c0-.231.035-.454.1-.664M6.75 7.5H4.875c-.621 0-1.125.504-1.125 1.125v12c0 .621.504 1.125 1.125 1.125h9.75c.621 0 1.125-.504 1.125-1.125V16.5a9 9 0 0 0-9-9Z"})])}function Km(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9.75v6.75m0 0-3-3m3 3 3-3m-8.25 6a4.5 4.5 0 0 1-1.41-8.775 5.25 5.25 0 0 1 10.233-2.33 3 3 0 0 1 3.758 3.848A3.752 3.752 0 0 1 18 19.5H6.75Z"})])}function Jm(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.594 3.94c.09-.542.56-.94 1.11-.94h2.593c.55 0 1.02.398 1.11.94l.213 1.281c.063.374.313.686.645.87.074.04.147.083.22.127.325.196.72.257 1.075.124l1.217-.456a1.125 1.125 0 0 1 1.37.49l1.296 2.247a1.125 1.125 0 0 1-.26 1.431l-1.003.827c-.293.241-.438.613-.43.992a7.723 7.723 0 0 1 0 .255c-.008.378.137.75.43.991l1.004.827c.424.35.534.955.26 1.43l-1.298 2.247a1.125 1.125 0 0 1-1.369.491l-1.217-.456c-.355-.133-.75-.072-1.076.124a6.47 6.47 0 0 1-.22.128c-.331.183-.581.495-.644.869l-.213 1.281c-.09.543-.56.94-1.11.94h-2.594c-.55 0-1.019-.398-1.11-.94l-.213-1.281c-.062-.374-.312-.686-.644-.87a6.52 6.52 0 0 1-.22-.127c-.325-.196-.72-.257-1.076-.124l-1.217.456a1.125 1.125 0 0 1-1.369-.49l-1.297-2.247a1.125 1.125 0 0 1 .26-1.431l1.004-.827c.292-.24.437-.613.43-.991a6.932 6.932 0 0 1 0-.255c.007-.38-.138-.751-.43-.992l-1.004-.827a1.125 1.125 0 0 1-.26-1.43l1.297-2.247a1.125 1.125 0 0 1 1.37-.491l1.216.456c.356.133.751.072 1.076-.124.072-.044.146-.086.22-.128.332-.183.582-.495.644-.869l.214-1.28Z"}),d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"})])}function uv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m6.75 7.5 3 2.25-3 2.25m4.5 0h3m-9 8.25h13.5A2.25 2.25 0 0 0 21 18V6a2.25 2.25 0 0 0-2.25-2.25H5.25A2.25 2.25 0 0 0 3 6v12a2.25 2.25 0 0 0 2.25 2.25Z"})])}function hv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M10.125 2.25h-4.5c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125v-9M10.125 2.25h.375a9 9 0 0 1 9 9v.375M10.125 2.25A3.375 3.375 0 0 1 13.5 5.625v1.5c0 .621.504 1.125 1.125 1.125h1.5a3.375 3.375 0 0 1 3.375 3.375M9 15l2.25 2.25L15 12"})])}function dv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15.75 17.25v3.375c0 .621-.504 1.125-1.125 1.125h-9.75a1.125 1.125 0 0 1-1.125-1.125V7.875c0-.621.504-1.125 1.125-1.125H6.75a9.06 9.06 0 0 1 1.5.124m7.5 10.376h3.375c.621 0 1.125-.504 1.125-1.125V11.25c0-4.46-3.243-8.161-7.5-8.876a9.06 9.06 0 0 0-1.5-.124H9.375c-.621 0-1.125.504-1.125 1.125v3.5m7.5 10.375H9.375a1.125 1.125 0 0 1-1.125-1.125v-9.25m12 6.625v-1.875a3.375 3.375 0 0 0-3.375-3.375h-1.5a1.125 1.125 0 0 1-1.125-1.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H9.75"})])}function fv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m5.231 13.481L15 17.25m-4.5-15H5.625c-.621 0-1.125.504-1.125 1.125v16.5c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Zm3.75 11.625a2.625 2.625 0 1 1-5.25 0 2.625 2.625 0 0 1 5.25 0Z"})])}function Vs(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m0 12.75h7.5m-7.5 3H12M10.5 2.25H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"})])}function Bn(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"})])}function mv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.98 8.223A10.477 10.477 0 0 0 1.934 12C3.226 16.338 7.244 19.5 12 19.5c.993 0 1.953-.138 2.863-.395M6.228 6.228A10.451 10.451 0 0 1 12 4.5c4.756 0 8.773 3.162 10.065 7.498a10.522 10.522 0 0 1-4.293 5.774M6.228 6.228 3 3m3.228 3.228 3.65 3.65m7.894 7.894L21 21m-3.228-3.228-3.65-3.65m0 0a3 3 0 1 0-4.243-4.243m4.242 4.242L9.88 9.88"})])}function pv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M2.036 12.322a1.012 1.012 0 0 1 0-.639C3.423 7.51 7.36 4.5 12 4.5c4.638 0 8.573 3.007 9.963 7.178.07.207.07.431 0 .639C20.577 16.49 16.64 19.5 12 19.5c-4.638 0-8.573-3.007-9.963-7.178Z"}),d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M15 12a3 3 0 1 1-6 0 3 3 0 0 1 6 0Z"})])}function gv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.75 9.776c.112-.017.227-.026.344-.026h15.812c.117 0 .232.009.344.026m-16.5 0a2.25 2.25 0 0 0-1.883 2.542l.857 6a2.25 2.25 0 0 0 2.227 1.932H19.05a2.25 2.25 0 0 0 2.227-1.932l.857-6a2.25 2.25 0 0 0-1.883-2.542m-16.5 0V6A2.25 2.25 0 0 1 6 3.75h3.879a1.5 1.5 0 0 1 1.06.44l2.122 2.12a1.5 1.5 0 0 0 1.06.44H18A2.25 2.25 0 0 1 20.25 9v.776"})])}function Ov(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 3c2.755 0 5.455.232 8.083.678.533.09.917.556.917 1.096v1.044a2.25 2.25 0 0 1-.659 1.591l-5.432 5.432a2.25 2.25 0 0 0-.659 1.591v2.927a2.25 2.25 0 0 1-1.244 2.013L9.75 21v-6.568a2.25 2.25 0 0 0-.659-1.591L3.659 7.409A2.25 2.25 0 0 1 3 5.818V4.774c0-.54.384-1.006.917-1.096A48.32 48.32 0 0 1 12 3Z"})])}function vv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5.25 8.25h15m-16.5 7.5h15m-1.8-13.5-3.9 19.5m-2.1-19.5-3.9 19.5"})])}function bv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m11.25 11.25.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9-3.75h.008v.008H12V8.25Z"})])}function xv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 18v-5.25m0 0a6.01 6.01 0 0 0 1.5-.189m-1.5.189a6.01 6.01 0 0 1-1.5-.189m3.75 7.478a12.06 12.06 0 0 1-4.5 0m3.75 2.383a14.406 14.406 0 0 1-3 0M14.25 18v-.192c0-.983.658-1.823 1.508-2.316a7.5 7.5 0 1 0-7.517 0c.85.493 1.509 1.333 1.509 2.316V18"})])}function ep(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M8.25 6.75h12M8.25 12h12m-12 5.25h12M3.75 6.75h.007v.008H3.75V6.75Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0ZM3.75 12h.007v.008H3.75V12Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Zm-.375 5.25h.007v.008H3.75v-.008Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"})])}function as(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m21 21-5.197-5.197m0 0A7.5 7.5 0 1 0 5.196 5.196a7.5 7.5 0 0 0 10.607 10.607Z"})])}function yv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5 12h14"})])}function kv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m18.375 12.739-7.693 7.693a4.5 4.5 0 0 1-6.364-6.364l10.94-10.94A3 3 0 1 1 19.5 7.372L8.552 18.32m.009-.01-.01.01m5.699-9.941-7.81 7.81a1.5 1.5 0 0 0 2.112 2.13"})])}function tp(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"m16.862 4.487 1.687-1.688a1.875 1.875 0 1 1 2.652 2.652L10.582 16.07a4.5 4.5 0 0 1-1.897 1.13L6 18l.8-2.685a4.5 4.5 0 0 1 1.13-1.897l8.932-8.931Zm0 0L19.5 7.125M18 14v4.75A2.25 2.25 0 0 1 15.75 21H5.25A2.25 2.25 0 0 1 3 18.75V8.25A2.25 2.25 0 0 1 5.25 6H10"})])}function wv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M5.25 5.653c0-.856.917-1.398 1.667-.986l11.54 6.347a1.125 1.125 0 0 1 0 1.972l-11.54 6.347a1.125 1.125 0 0 1-1.667-.986V5.653Z"})])}function Yh(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M14.25 6.087c0-.355.186-.676.401-.959.221-.29.349-.634.349-1.003 0-1.036-1.007-1.875-2.25-1.875s-2.25.84-2.25 1.875c0 .369.128.713.349 1.003.215.283.401.604.401.959v0a.64.64 0 0 1-.657.643 48.39 48.39 0 0 1-4.163-.3c.186 1.613.293 3.25.315 4.907a.656.656 0 0 1-.658.663v0c-.355 0-.676-.186-.959-.401a1.647 1.647 0 0 0-1.003-.349c-1.036 0-1.875 1.007-1.875 2.25s.84 2.25 1.875 2.25c.369 0 .713-.128 1.003-.349.283-.215.604-.401.959-.401v0c.31 0 .555.26.532.57a48.039 48.039 0 0 1-.642 5.056c1.518.19 3.058.309 4.616.354a.64.64 0 0 0 .657-.643v0c0-.355-.186-.676-.401-.959a1.647 1.647 0 0 1-.349-1.003c0-1.035 1.008-1.875 2.25-1.875 1.243 0 2.25.84 2.25 1.875 0 .369-.128.713-.349 1.003-.215.283-.4.604-.4.959v0c0 .333.277.599.61.58a48.1 48.1 0 0 0 5.427-.63 48.05 48.05 0 0 0 .582-4.717.532.532 0 0 0-.533-.57v0c-.355 0-.676.186-.959.401-.29.221-.634.349-1.003.349-1.035 0-1.875-1.007-1.875-2.25s.84-2.25 1.875-2.25c.37 0 .713.128 1.003.349.283.215.604.401.96.401v0a.656.656 0 0 0 .658-.663 48.422 48.422 0 0 0-.37-5.36c-1.886.342-3.81.574-5.766.689a.578.578 0 0 1-.61-.58v0Z"})])}function Ru(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.879 7.519c1.171-1.025 3.071-1.025 4.242 0 1.172 1.025 1.172 2.687 0 3.712-.203.179-.43.326-.67.442-.745.361-1.45.999-1.45 1.827v.75M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 5.25h.008v.008H12v-.008Z"})])}function Sv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M3.75 12h16.5m-16.5 3.75h16.5M3.75 19.5h16.5M5.625 4.5h12.75a1.875 1.875 0 0 1 0 3.75H5.625a1.875 1.875 0 0 1 0-3.75Z"})])}function rp(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 12.75 11.25 15 15 9.75m-3-7.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.749c0 5.592 3.824 10.29 9 11.623 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.571-.598-3.751h-.152c-3.196 0-6.1-1.248-8.25-3.285Z"})])}function Bu(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 9v3.75m0-10.036A11.959 11.959 0 0 1 3.598 6 11.99 11.99 0 0 0 3 9.75c0 5.592 3.824 10.29 9 11.622 5.176-1.332 9-6.03 9-11.622 0-1.31-.21-2.57-.598-3.75h-.152c-3.196 0-6.1-1.25-8.25-3.286Zm0 13.036h.008v.008H12v-.008Z"})])}function Pa(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.813 15.904 9 18.75l-.813-2.846a4.5 4.5 0 0 0-3.09-3.09L2.25 12l2.846-.813a4.5 4.5 0 0 0 3.09-3.09L9 5.25l.813 2.846a4.5 4.5 0 0 0 3.09 3.09L15.75 12l-2.846.813a4.5 4.5 0 0 0-3.09 3.09ZM18.259 8.715 18 9.75l-.259-1.035a3.375 3.375 0 0 0-2.455-2.456L14.25 6l1.036-.259a3.375 3.375 0 0 0 2.455-2.456L18 2.25l.259 1.035a3.375 3.375 0 0 0 2.456 2.456L21.75 6l-1.035.259a3.375 3.375 0 0 0-2.456 2.456ZM16.894 20.567 16.5 21.75l-.394-1.183a2.25 2.25 0 0 0-1.423-1.423L13.5 18.75l1.183-.394a2.25 2.25 0 0 0 1.423-1.423l.394-1.183.394 1.183a2.25 2.25 0 0 0 1.423 1.423l1.183.394-1.183.394a2.25 2.25 0 0 0-1.423 1.423Z"})])}function $v(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"}),d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9 9.563C9 9.252 9.252 9 9.563 9h4.874c.311 0 .563.252.563.563v4.874c0 .311-.252.563-.563.563H9.564A.562.562 0 0 1 9 14.437V9.564Z"})])}function Du(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M9.568 3H5.25A2.25 2.25 0 0 0 3 5.25v4.318c0 .597.237 1.17.659 1.591l9.581 9.581c.699.699 1.78.872 2.607.33a18.095 18.095 0 0 0 5.223-5.223c.542-.827.369-1.908-.33-2.607L11.16 3.66A2.25 2.25 0 0 0 9.568 3Z"}),d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M6 6h.008v.008H6V6Z"})])}function Cv(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","stroke-width":"1.5",stroke:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"stroke-linecap":"round","stroke-linejoin":"round",d:"M11.42 15.17 17.25 21A2.652 2.652 0 0 0 21 17.25l-5.877-5.877M11.42 15.17l2.496-3.03c.317-.384.74-.626 1.208-.766M11.42 15.17l-4.655 5.653a2.548 2.548 0 1 1-3.586-3.586l6.837-5.63m5.108-.233c.55-.164 1.163-.188 1.743-.14a4.5 4.5 0 0 0 4.486-6.336l-3.276 3.277a3.004 3.004 0 0 1-2.25-2.25l3.276-3.276a4.5 4.5 0 0 0-6.336 4.486c.091 1.076-.071 2.264-.904 2.95l-.102.085m-1.745 1.437L5.909 7.5H4.5L2.25 3.75l1.5-1.5L7.5 4.5v1.409l4.26 4.26m-1.745 1.437 1.745-1.437m6.615 8.206L15.75 15.75M4.867 19.125h.008v.008h-.008v-.008Z"})])}async function Fh(r){return $fetch("/api/chat/worktree",{method:"POST",body:r})}async function Qv(r){await $fetch("/api/chat/worktree",{method:"DELETE",body:r})}async function Pv(r){const e=await $fetch("/api/chat/preview-sync",{method:"POST",body:r});if(!e.success)throw new Error(e.error||"Unknown preview sync failure")}const Tv={class:"flex items-center gap-1.5 px-2 py-1.5 bg-retro-panel border-b border-retro-border"},Mv={class:"relative flex-1 min-w-0"},Av={key:0,class:"text-[11px] text-retro-muted flex-shrink-0 min-w-[60px] text-center"},_v=["disabled"],Rv=["disabled"],Bv=Xe({__name:"GitFindWidget",props:{resultCount:{},currentIndex:{}},emits:["search","next","prev","close"],setup(r,{expose:e,emit:t}){const n=t,s=Q(""),i=Q(null);let o=null;function a(){o&&clearTimeout(o),o=setTimeout(()=>{n("search",s.value)},200)}function l(u){u.key==="Escape"?(u.preventDefault(),n("close")):u.key==="Enter"&&(u.preventDefault(),u.shiftKey?n("prev"):n("next"))}function c(){i.value?.focus(),i.value?.select()}return e({focus:c}),(u,h)=>(v(),y("div",Tv,[K(p(as),{class:"w-4 h-4 text-retro-muted flex-shrink-0"}),d("div",Mv,[Ye(d("input",{ref_key:"inputRef",ref:i,"onUpdate:modelValue":h[0]||(h[0]=f=>tt(s)?s.value=f:null),type:"text",placeholder:"Find in commits...","aria-label":"Search commits",class:"w-full px-2 py-1 text-sm bg-retro-dark border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan",onInput:a,onKeydown:l},null,544),[[_t,p(s)]])]),p(s)?(v(),y("span",Av,[r.resultCount>0?(v(),y(ye,{key:0},[Le(A(r.currentIndex+1)+" of "+A(r.resultCount),1)],64)):(v(),y(ye,{key:1},[Le(" No results ")],64))])):U("",!0),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text disabled:opacity-30 disabled:cursor-not-allowed transition-colors",disabled:r.resultCount===0,"aria-label":"Previous result",title:"Previous (Shift+Enter)",onClick:h[1]||(h[1]=f=>n("prev"))},[K(p(cv),{class:"w-4 h-4"})],8,_v),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text disabled:opacity-30 disabled:cursor-not-allowed transition-colors",disabled:r.resultCount===0,"aria-label":"Next result",title:"Next (Enter)",onClick:h[2]||(h[2]=f=>n("next"))},[K(p(lv),{class:"w-4 h-4"})],8,Rv),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text transition-colors","aria-label":"Close find widget",title:"Close (Escape)",onClick:h[3]||(h[3]=f=>n("close"))},[K(p(wt),{class:"w-4 h-4"})])]))}}),Dv={class:"flex flex-col bg-retro-dark border border-retro-border rounded shadow-lg max-w-md w-full"},Zv={class:"flex items-center justify-between px-3 py-2 border-b border-retro-border"},Ev={class:"flex-1 overflow-auto max-h-[300px]"},Lv={class:"font-semibold text-retro-cyan flex-shrink-0 min-w-[60px]"},Xv=["onKeyup"],Iv=["onClick"],Vv={class:"text-retro-muted truncate flex-1 font-mono"},zv=["onClick"],Nv=["onClick"],Wv={key:0,class:"px-3 py-4 text-center text-retro-muted text-xs"},qv={key:0,class:"px-3 py-2 border-t border-retro-border space-y-2"},jv={class:"flex gap-2 justify-end"},Yv=["disabled"],Fv={key:1,class:"px-3 py-2 border-t border-retro-border"},Uv=Xe({__name:"GitRemoteManager",props:{remotes:{},loading:{type:Boolean}},emits:["add","edit","delete","close"],setup(r,{emit:e}){const t=e,n=Q(!1),s=Q(""),i=Q(""),o=Q(null),a=Q("");function l(){n.value=!0,s.value="",i.value=""}function c(){!s.value.trim()||!i.value.trim()||(t("add",{name:s.value.trim(),url:i.value.trim()}),n.value=!1)}function u(m){o.value=m.name,a.value=m.fetchUrl}function h(m){a.value.trim()&&(t("edit",{name:m,newUrl:a.value.trim()}),o.value=null)}function f(){o.value=null}return(m,g)=>(v(),y("div",Dv,[d("div",Zv,[g[5]||(g[5]=d("h3",{class:"text-sm font-semibold text-retro-text"},"Remote Repositories",-1)),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text transition-colors",onClick:g[0]||(g[0]=O=>t("close"))},[K(p(wt),{class:"w-4 h-4"})])]),d("div",Ev,[(v(!0),y(ye,null,Ne(r.remotes,O=>(v(),y("div",{key:O.name,class:"flex items-center gap-2 px-3 py-2 border-b border-retro-border/50 text-xs"},[d("span",Lv,A(O.name),1),p(o)===O.name?(v(),y(ye,{key:0},[Ye(d("input",{"onUpdate:modelValue":g[1]||(g[1]=b=>tt(a)?a.value=b:null),type:"text",class:"flex-1 px-2 py-1 text-xs bg-retro-panel border border-retro-border rounded text-retro-text focus:outline-none focus:border-retro-cyan",onKeyup:[is(b=>h(O.name),["enter"]),is(f,["escape"])]},null,40,Xv),[[_t,p(a)]]),d("button",{class:"p-0.5 text-retro-green hover:text-retro-green/80",onClick:b=>h(O.name)},[K(p(Mu),{class:"w-3.5 h-3.5"})],8,Iv),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text",onClick:f},[K(p(wt),{class:"w-3.5 h-3.5"})])],64)):(v(),y(ye,{key:1},[d("span",Vv,A(O.fetchUrl),1),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-text",title:"Edit",onClick:b=>u(O)},[K(p(tp),{class:"w-3.5 h-3.5"})],8,zv),d("button",{class:"p-0.5 text-retro-muted hover:text-retro-red",title:"Delete",onClick:b=>t("delete",O.name)},[K(p(pn),{class:"w-3.5 h-3.5"})],8,Nv)],64))]))),128)),r.remotes.length===0?(v(),y("div",Wv," No remotes configured ")):U("",!0)]),p(n)?(v(),y("div",qv,[Ye(d("input",{"onUpdate:modelValue":g[2]||(g[2]=O=>tt(s)?s.value=O:null),type:"text",placeholder:"Remote name (e.g., origin)",class:"w-full px-2 py-1 text-xs bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan"},null,512),[[_t,p(s)]]),Ye(d("input",{"onUpdate:modelValue":g[3]||(g[3]=O=>tt(i)?i.value=O:null),type:"text",placeholder:"Remote URL",class:"w-full px-2 py-1 text-xs bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan",onKeyup:is(c,["enter"])},null,544),[[_t,p(i)]]),d("div",jv,[d("button",{class:"px-2 py-1 text-xs text-retro-muted hover:text-retro-text transition-colors",onClick:g[4]||(g[4]=O=>n.value=!1)}," Cancel "),d("button",{class:"px-2 py-1 text-xs bg-retro-cyan/20 text-retro-cyan border border-retro-cyan/40 rounded hover:bg-retro-cyan/30 transition-colors",disabled:!p(s).trim()||!p(i).trim(),onClick:c}," Add Remote ",8,Yv)])])):U("",!0),p(n)?U("",!0):(v(),y("div",Fv,[d("button",{class:"flex items-center gap-1 text-xs text-retro-cyan hover:text-retro-cyan/80 transition-colors",onClick:l},[K(p(ul),{class:"w-3.5 h-3.5"}),g[6]||(g[6]=Le(" Add Remote ",-1))])]))]))}}),hl={NODE_RADIUS:4,ROW_HEIGHT:32,COLUMN_WIDTH:20,PADDING:10,VISIBLE_BUFFER:10},Do=["#3B82F6","#EF4444","#10B981","#F59E0B","#8B5CF6","#EC4899","#14B8A6","#F97316","#06B6D4","#84CC16","#F43F5E","#A855F7"],zs={A:{label:"Added",colorClass:"text-retro-green"},M:{label:"Modified",colorClass:"text-retro-yellow"},D:{label:"Deleted",colorClass:"text-retro-red"},R:{label:"Renamed",colorClass:"text-retro-blue"},C:{label:"Copied",colorClass:"text-retro-purple"},U:{label:"Unmerged",colorClass:"text-retro-cyan"}},Gv=["width","height"],Hv=["d","stroke","stroke-dasharray"],Kv={key:0},Jv=["cx","r"],eb=["cx","r","fill"],tb=["cx","r","stroke"],rb=["cx","r","fill"],nb=["cx","r","stroke"],sb=["cx","r","fill"],ib=["cx","r"],ob=["cx","r","fill"],np=Xe({__name:"GitGraphSvg",props:{rowData:{},maxLane:{default:4},highlightBranches:{},tooltipText:{}},setup(r){const e=r,{COLUMN_WIDTH:t,ROW_HEIGHT:n,NODE_RADIUS:s,PADDING:i}=hl,o=H(()=>i*2+(e.maxLane+1)*t),a=n,l=n/2;function c(f){return i+f*t}function u(f){const m=c(f.fromLane),g=c(f.toLane);if(f.type==="vertical")return`M ${m} 0 L ${g} ${a}`;if(f.type==="vertical-top")return`M ${m} 0 L ${m} ${l}`;if(f.type==="vertical-bottom")return`M ${m} ${l} L ${m} ${a}`;if(f.style==="rounded")return`M ${m} ${l} C ${m} ${a}, ${g} ${a}, ${g} ${a}`;{const O=a*.75;return`M ${m} ${l} L ${m} ${O} L ${g} ${a}`}}const h=H(()=>e.rowData?c(e.rowData.lane):i);return(f,m)=>(v(),y("svg",{width:p(o),height:p(a),class:"block flex-shrink-0","aria-hidden":"true"},[r.rowData?(v(),y(ye,{key:0},[(v(!0),y(ye,null,Ne(r.rowData.connections,(g,O)=>(v(),y("path",{key:O,d:u(g),stroke:g.color,"stroke-width":"2",fill:"none","stroke-dasharray":g.type.startsWith("merge")?"4 3":"none"},null,8,Hv))),128)),d("g",null,[r.tooltipText?(v(),y("title",Kv,A(r.tooltipText),1)):U("",!0),r.rowData.nodeType==="head"?(v(),y(ye,{key:1},[d("circle",{cx:p(h),cy:l,r:p(s)+2,fill:"none",stroke:"currentColor","stroke-width":"2",class:"text-retro-cyan"},null,8,Jv),d("circle",{cx:p(h),cy:l,r:p(s),fill:r.rowData.color},null,8,eb)],64)):r.rowData.nodeType==="merge"?(v(),y(ye,{key:2},[d("circle",{cx:p(h),cy:l,r:p(s)+1,fill:"none",stroke:r.rowData.color,"stroke-width":"1.5"},null,8,tb),d("circle",{cx:p(h),cy:l,r:p(s)-1,fill:r.rowData.color},null,8,rb)],64)):r.rowData.nodeType==="stash"?(v(),y(ye,{key:3},[d("circle",{cx:p(h),cy:l,r:p(s),fill:"none",stroke:r.rowData.color,"stroke-width":"2"},null,8,nb),d("circle",{cx:p(h),cy:l,r:p(s)-2,fill:r.rowData.color},null,8,sb)],64)):r.rowData.nodeType==="uncommitted"?(v(),y("circle",{key:4,cx:p(h),cy:l,r:p(s),fill:"none",stroke:"currentColor","stroke-width":"2",class:"text-retro-yellow","stroke-dasharray":"3 2"},null,8,ib)):(v(),y("circle",{key:5,cx:p(h),cy:l,r:p(s),fill:r.rowData.color},null,8,ob))])],64)):U("",!0)],8,Gv))}}),ab=["aria-selected","aria-label"],lb={key:1,class:"flex gap-1 flex-shrink-0"},cb=["title","onContextmenu"],ub={key:2,class:"flex gap-1 flex-shrink-0"},hb=["onContextmenu"],db={class:"text-retro-text text-xs truncate flex-1"},fb={key:5,class:"flex-shrink-0 text-retro-muted text-[10px] hidden sm:inline"},mb={key:6,class:"flex-shrink-0 text-retro-muted text-[10px]"},Uh=72,pb=Xe({__name:"GitCommitRow",props:{commit:{},index:{},isSelected:{type:Boolean},isHighlighted:{type:Boolean},isBranchHighlighted:{type:Boolean},isFeatureHighlighted:{type:Boolean},isPreviewHighlighted:{type:Boolean},isMuted:{type:Boolean},currentBranchName:{},localBranchNames:{},graphRowData:{},maxLane:{},columnVisibility:{}},emits:["click","keydown","branchContextMenu","commitContextMenu","tagContextMenu"],setup(r,{emit:e}){const t=r,n=e,s=H(()=>{const f=t.commit.branches;if(f.length===0)return[];const m=t.localBranchNames,g=[],O=[];for(const C of f)m.has(C)?g.push(C):O.push(C);const b=new Set(g),x=new Map,w=[];for(const C of O){const _=C.indexOf("/");if(_>0){const I=C.substring(_+1),V=C.substring(0,_);b.has(I)?(x.has(I)||x.set(I,[]),x.get(I).push(V)):w.push(C)}else w.push(C)}const S=[];for(const C of g){const _=x.get(C)||[];_.length>0?S.push({displayName:`${C}/${_.join(",")}`,originalBranches:[C,..._.map(I=>`${I}/${C}`)],isLocal:!0}):S.push({displayName:C,originalBranches:[C],isLocal:!0})}for(const C of w)S.push({displayName:C,originalBranches:[C],isLocal:!1});return S});function i(f,m){f.preventDefault(),f.stopPropagation();const g=m.originalBranches[0];n("branchContextMenu",{branch:g,x:f.clientX,y:f.clientY,isCurrentBranch:m.isLocal&&m.originalBranches.includes(t.currentBranchName??""),isLocal:m.isLocal})}function o(f,m){f.preventDefault(),f.stopPropagation(),n("tagContextMenu",{tag:m,x:f.clientX,y:f.clientY})}function a(f){f.preventDefault(),f.stopPropagation(),n("commitContextMenu",{x:f.clientX,y:f.clientY})}const{ROW_HEIGHT:l}=hl,c=H(()=>{const f=[t.commit.shortHash];return t.commit.branches.length>0&&f.push(t.commit.branches.join(", ")),t.commit.tags.length>0&&f.push(t.commit.tags.map(m=>`tag: ${m}`).join(", ")),f.join(" — ")});function u(f){const g=Date.now()/1e3-f;return g<60?"just now":g<3600?`${Math.floor(g/60)}m ago`:g<86400?`${Math.floor(g/3600)}h ago`:g<604800?`${Math.floor(g/86400)}d ago`:g<2592e3?`${Math.floor(g/604800)}w ago`:new Date(f*1e3).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric"})}function h(f){const m=f.split(`
|
|
3
|
+
`)[0];return m.length>Uh?m.substring(0,Uh-3)+"...":m}return(f,m)=>{const g=np;return v(),y("div",{class:_e(["flex items-center cursor-pointer group focus:outline-none focus:ring-1 focus:ring-retro-cyan/50 focus:ring-inset",{"opacity-40":r.isMuted,"bg-retro-magenta/10":r.isPreviewHighlighted,"bg-retro-yellow/20":r.isFeatureHighlighted&&!r.isPreviewHighlighted}]),style:Jt({height:`${p(l)}px`}),role:"row",tabindex:"0","aria-selected":r.isSelected,"aria-label":`Commit ${r.commit.shortHash} by ${r.commit.author}: ${r.commit.message.split(`
|
|
4
|
+
`)[0]}`,onClick:m[0]||(m[0]=O=>n("click",O)),onKeydown:m[1]||(m[1]=O=>n("keydown",O)),onContextmenu:a},[K(g,{rowData:r.graphRowData,maxLane:r.maxLane,tooltipText:p(c)},null,8,["rowData","maxLane","tooltipText"]),d("div",{class:_e(["flex-1 flex items-center gap-2 px-2 min-w-0 rounded-r transition-colors",{"bg-retro-magenta/10 border-l-2 border-retro-magenta/40":r.isPreviewHighlighted,"bg-retro-yellow/30 border-l-2 border-retro-yellow":r.isFeatureHighlighted&&!r.isPreviewHighlighted,"bg-retro-cyan/15":r.isSelected&&!r.isFeatureHighlighted&&!r.isPreviewHighlighted,"bg-retro-yellow/10":r.isHighlighted&&!r.isSelected&&!r.isFeatureHighlighted&&!r.isPreviewHighlighted,"bg-retro-cyan/5":r.isBranchHighlighted&&!r.isSelected&&!r.isHighlighted&&!r.isFeatureHighlighted&&!r.isPreviewHighlighted,"group-hover:bg-retro-panel/50":!r.isSelected&&!r.isHighlighted&&!r.isFeatureHighlighted&&!r.isPreviewHighlighted&&!r.isBranchHighlighted}]),style:Jt({height:`${p(l)-4}px`})},[!r.columnVisibility||r.columnVisibility.commit!==!1?(v(),y("span",{key:0,class:_e(["flex-shrink-0 font-mono text-[11px]",r.commit.isHead?"text-retro-cyan font-semibold":"text-retro-muted"])},A(r.commit.shortHash),3)):U("",!0),p(s).length>0?(v(),y("div",lb,[(v(!0),y(ye,null,Ne(p(s),O=>(v(),y("span",{key:O.displayName,class:_e(["px-1.5 py-0.5 text-[10px] rounded font-semibold leading-none cursor-context-menu hover:ring-1 hover:ring-retro-cyan/50",r.commit.isHead&&O.isLocal?"bg-retro-cyan/20 text-retro-cyan border border-retro-cyan/40":r.isPreviewHighlighted?"bg-retro-magenta/10 text-retro-magenta border border-retro-magenta/40":r.isFeatureHighlighted?"bg-retro-yellow/15 text-retro-yellow border border-retro-yellow/30":r.isBranchHighlighted?"bg-retro-cyan/15 text-retro-cyan/80 border border-retro-cyan/30":O.isLocal?"bg-retro-green/15 text-retro-green border border-retro-green/30":"bg-retro-orange/15 text-retro-orange border border-retro-orange/30"]),title:O.originalBranches.join(", "),onContextmenu:b=>i(b,O)},A(O.displayName),43,cb))),128))])):U("",!0),r.commit.tags.length>0?(v(),y("div",ub,[(v(!0),y(ye,null,Ne(r.commit.tags,O=>(v(),y("span",{key:O,class:"px-1 py-0.5 text-[10px] rounded-sm bg-retro-yellow/15 text-retro-yellow border border-retro-yellow/25 flex items-center gap-0.5 leading-none cursor-context-menu hover:ring-1 hover:ring-retro-yellow/50",onContextmenu:b=>o(b,O)},[K(p(Du),{class:"w-2.5 h-2.5"}),Le(" "+A(O),1)],40,hb))),128))])):U("",!0),d("span",db,A(h(r.commit.message)),1),r.commit.signatureStatus==="good"?(v(),ge(p(rp),{key:3,class:"w-3.5 h-3.5 flex-shrink-0 text-retro-green",title:"Verified signature"})):r.commit.signatureStatus==="bad"?(v(),ge(p(Bu),{key:4,class:"w-3.5 h-3.5 flex-shrink-0 text-retro-red",title:"Bad signature"})):U("",!0),!r.columnVisibility||r.columnVisibility.author!==!1?(v(),y("span",fb,A(r.commit.author),1)):U("",!0),!r.columnVisibility||r.columnVisibility.date!==!1?(v(),y("span",mb,A(u(r.commit.timestamp)),1)):U("",!0)],6)],46,ab)}}});function gb(){const{COLUMN_WIDTH:r,ROW_HEIGHT:e,NODE_RADIUS:t,PADDING:n}=hl;function s(l){let c=0;for(let u=0;u<l.length;u++){const h=l.charCodeAt(u);c=(c<<5)-c+h,c=c&c}return Math.abs(c)}function i(l){const c=s(l)%Do.length;return Do[c]}function o(l,c="rounded"){const u=new Map;if(l.length===0)return u;const h=new Set,f=new Map;for(const S of l)f.set(S.hash,S);const m=l.find(S=>S.isHead)||l[0];if(m){let S=m;for(;S;){h.add(S.hash);const C=S.parents?.[0];S=C?f.get(C):void 0}}const g=new Map,O=new Map,b=new Map,x=new Map,w=new Map;for(let S=0;S<l.length;S++){const C=l[S];w.set(C.hash,S);const _=h.has(C.hash);let I,V;if(x.has(C.hash)){const L=x.get(C.hash);I=L.lane,V=L.color,x.delete(C.hash)}else if(_)I=0,V=Do[0];else{for(I=1;b.has(I);)I++;V=i(C.hash.substring(0,7))}g.set(C.hash,I),O.set(C.hash,V),b.set(I,C.hash);const re=C.isMerge||C.parents&&C.parents.length>1;let oe="regular";C.isHead?oe="head":re&&(oe="merge"),u.set(C.hash,{commitHash:C.hash,lane:I,color:V,nodeType:oe,isMainline:h.has(C.hash),connections:[]});const Oe=C.parents||[];for(let L=0;L<Oe.length;L++){const D=Oe[L];if(g.has(D)||x.has(D))continue;const j=h.has(D);let F,z;if(L===0)F=I,z=V;else if(j)F=0,z=Do[0];else{for(F=1;b.has(F)||F===I;)F++;z=i(D.substring(0,7))}x.set(D,{lane:F,color:z,childHash:C.hash})}const Y=Oe[0];if(!Y)b.delete(I);else{const L=g.get(Y),D=x.get(Y),j=L??D?.lane;j!==void 0&&j!==I&&b.delete(I)}}for(let S=0;S<l.length;S++){const C=l[S],_=u.get(C.hash);if(!_)continue;const I=C.parents||[];for(let V=0;V<I.length;V++){const re=I[V],oe=g.get(re),Oe=w.get(re);if(oe===void 0)continue;const Y=_.lane,L=oe,D=V===0?_.color:O.get(re)||i(re.substring(0,7));if(Y===L?_.connections.push({type:"vertical-bottom",fromLane:Y,toLane:L,color:D,style:c}):V>0?_.connections.push({type:Y<L?"merge-out":"merge-in",fromLane:Y,toLane:L,color:D,style:c}):_.connections.push({type:Y<L?"branch-out":"branch-in",fromLane:Y,toLane:L,color:D,style:c}),Oe!==void 0&&Oe>S+1)for(let j=S+1;j<Oe;j++){const F=l[j],z=u.get(F.hash);z&&z.connections.push({type:"vertical",fromLane:L,toLane:L,color:D,style:c})}if(Oe!==void 0){const j=u.get(re);j&&j.connections.push({type:"vertical-top",fromLane:L,toLane:L,color:D,style:c})}}}return u}function a(l){let c=0;for(const u of l.values()){u.lane>c&&(c=u.lane);for(const h of u.connections)h.fromLane>c&&(c=h.fromLane),h.toLane>c&&(c=h.toLane)}return c}return{computeGraphRows:o,computeMaxLane:a,getBranchColor:i,COLUMN_WIDTH:r,ROW_HEIGHT:e,NODE_RADIUS:t,PADDING:n}}const Ob=["aria-selected"],vb={class:"text-retro-yellow text-xs font-medium"},bb={key:1,class:"flex items-center justify-center gap-2 p-2 text-retro-muted text-sm"},xb={key:2,class:"p-2 text-center text-retro-muted/50 text-xs"},yb=Xe({__name:"GitCommitList",props:{commits:{},stashes:{},selectedCommit:{},hasMore:{type:Boolean},loading:{type:Boolean},loadingMore:{type:Boolean},searchQuery:{},uncommittedChangesCount:{},isUncommittedChangesSelected:{type:Boolean},highlightBranches:{},featureHighlightBranches:{},featureMergeBases:{},previewHighlightBranches:{},previewMergeBases:{},currentBranchName:{},localBranchNames:{},graphStyle:{default:"rounded"},muteNonAncestral:{type:Boolean},columnVisibility:{}},emits:["select","compareSelect","loadMore","branchContextMenu","commitContextMenu","tagContextMenu","stashContextMenu","selectUncommittedChanges","scrollStart","scrollEnd"],setup(r,{expose:e,emit:t}){const n=r,s=t;function i(){s("selectUncommittedChanges")}function o(ue){(ue.key==="Enter"||ue.key===" ")&&(ue.preventDefault(),s("selectUncommittedChanges"))}const a=H(()=>n.searchQuery?.toLowerCase()??""),l=H(()=>new Set(n.highlightBranches??[])),c=H(()=>l.value.size>0),u=H(()=>{const ue=a.value;if(!ue)return new Set;const ce=new Set;for(const de of n.commits)(de.message.toLowerCase().includes(ue)||de.author.toLowerCase().includes(ue)||de.shortHash.toLowerCase().includes(ue)||de.hash.toLowerCase().includes(ue)||de.branches.some(Ce=>Ce.toLowerCase().includes(ue))||de.tags.some(Ce=>Ce.toLowerCase().includes(ue)))&&ce.add(de.hash);return ce}),h=H(()=>{if(!c.value)return new Set;const ue=new Set;for(const ce of n.commits)ce.branches.some(de=>l.value.has(de))&&ue.add(ce.hash);return ue}),f=H(()=>{if(!n.featureHighlightBranches||n.featureHighlightBranches.length===0)return new Set;const ue=n.featureMergeBases??{},ce=new Map;for(const Ce of n.commits)ce.set(Ce.hash,Ce);const de=new Set;for(const Ce of n.featureHighlightBranches){const Me=n.commits.find(P=>P.branches.includes(Ce));if(!Me)continue;const qe=ue[Ce]??null;if(!qe)continue;let T=Me;for(;T&&T.hash!==qe;)de.add(T.hash),T=T.parents?.[0]?ce.get(T.parents[0]):void 0}return de}),m=H(()=>{if(!n.previewHighlightBranches||n.previewHighlightBranches.length===0)return new Set;const ue=n.previewMergeBases??{},ce=new Map;for(const Ce of n.commits)ce.set(Ce.hash,Ce);const de=new Set;for(const Ce of n.previewHighlightBranches){const Me=n.commits.find(P=>P.branches.includes(Ce));if(!Me)continue;const qe=ue[Ce]??null;if(!qe)continue;let T=Me;for(;T&&T.hash!==qe;)de.add(T.hash),T=T.parents?.[0]?ce.get(T.parents[0]):void 0}return de});function g(ue,ce){s("branchContextMenu",{...ce,commitHash:ue.hash})}function O(ue,ce){s("commitContextMenu",{commit:ue,...ce})}function b(ue,ce){s("tagContextMenu",{...ce,commitHash:ue.hash})}const{ROW_HEIGHT:x,VISIBLE_BUFFER:w}=hl,{computeGraphRows:S,computeMaxLane:C}=gb(),_=H(()=>S([...n.commits],n.graphStyle)),I=H(()=>C(_.value)),V=H(()=>{const ue=n.stashes||[];if(ue.length===0)return n.commits.map((Me,qe)=>({type:"commit",commit:Me,commitIndex:qe}));const ce=[],de=[...ue].sort((Me,qe)=>new Date(qe.date).getTime()-new Date(Me.date).getTime());let Ce=0;for(let Me=0;Me<n.commits.length;Me++){const qe=n.commits[Me],T=qe.timestamp*1e3;for(;Ce<de.length&&new Date(de[Ce].date).getTime()>=T;)ce.push({type:"stash",stash:de[Ce]}),Ce++;ce.push({type:"commit",commit:qe,commitIndex:Me})}for(;Ce<de.length;)ce.push({type:"stash",stash:de[Ce]}),Ce++;return ce}),re=Q(null),oe=Q(0),Oe=Q(400);let Y=null;const L=H(()=>{const ue=w,ce=V.value.length,de=Math.max(0,Math.floor(oe.value/x)-ue),Ce=Math.min(ce,Math.ceil((oe.value+Oe.value)/x)+ue);return{startIndex:de,endIndex:Ce}}),D=H(()=>{const{startIndex:ue,endIndex:ce}=L.value;return V.value.slice(ue,ce).map((de,Ce)=>({row:de,index:ue+Ce,graphRow:de.type==="commit"&&_.value.get(de.commit.hash)||null,isHighlighted:de.type==="commit"?u.value.has(de.commit.hash):!1,isBranchHighlighted:de.type==="commit"?h.value.has(de.commit.hash):!1,isFeatureHighlighted:de.type==="commit"?f.value.has(de.commit.hash):!1,isPreviewHighlighted:de.type==="commit"?m.value.has(de.commit.hash):!1,isMuted:de.type==="commit"&&n.muteNonAncestral?!(_.value.get(de.commit.hash)?.isMainline??!1):!1}))}),j=H(()=>V.value.length*x),F=H(()=>L.value.startIndex*x);function z(ue){const ce=ue.target;oe.value=ce.scrollTop,Y||s("scrollStart"),Y&&clearTimeout(Y),Y=setTimeout(()=>{Y=null,s("scrollEnd")},150),n.hasMore&&!n.loading&&!n.loadingMore&&ce.scrollTop+ce.clientHeight>=ce.scrollHeight-200&&s("loadMore")}function X(ue,ce){ce.ctrlKey||ce.metaKey?s("compareSelect",ue):s("select",ue)}function N(ue,ce,de){if(ue.key==="Enter"||ue.key===" ")ue.preventDefault(),s("select",ce);else if(ue.key==="ArrowDown"){ue.preventDefault();for(let Ce=de+1;Ce<V.value.length;Ce++){const Me=V.value[Ce];if(Me.type==="commit"){s("select",Me.commit),be(Ce);break}}}else if(ue.key==="ArrowUp"){ue.preventDefault();for(let Ce=de-1;Ce>=0;Ce--){const Me=V.value[Ce];if(Me.type==="commit"){s("select",Me.commit),be(Ce);break}}}}function be(ue){if(!re.value)return;const ce=ue*x,de=re.value.scrollTop,Ce=de+re.value.clientHeight;ce<de?re.value.scrollTop=ce:ce+x>Ce&&(re.value.scrollTop=ce+x-re.value.clientHeight)}mt(()=>{if(re.value){Oe.value=re.value.clientHeight;const ue=new ResizeObserver(ce=>{for(const de of ce)Oe.value=de.contentRect.height});ue.observe(re.value),kt(()=>ue.disconnect())}});function G(){return re.value?.scrollTop??0}function le(ue){re.value&&(re.value.scrollTop=ue)}return e({getScrollPosition:G,setScrollPosition:le,scrollToIndex:be}),(ue,ce)=>{const de=np,Ce=pb;return v(),y("div",{ref_key:"containerRef",ref:re,class:"h-full overflow-auto",role:"list","aria-label":"Commit history",onScroll:z},[r.uncommittedChangesCount&&r.uncommittedChangesCount>0?(v(),y("div",{key:0,class:"flex items-center cursor-pointer group sticky top-0 z-10 bg-retro-dark border-b border-retro-border",style:Jt({height:`${p(x)}px`}),role:"button",tabindex:"0","aria-selected":r.isUncommittedChangesSelected,onClick:i,onKeydown:o},[K(de,{rowData:{commitHash:"uncommitted",lane:0,color:"#F59E0B",nodeType:"uncommitted",isMainline:!1,connections:[]},maxLane:p(I)},null,8,["maxLane"]),d("div",{class:_e(["flex-1 flex items-center gap-2 px-2 min-w-0 rounded-r transition-colors",{"bg-retro-yellow/15":r.isUncommittedChangesSelected,"group-hover:bg-retro-panel/50":!r.isUncommittedChangesSelected}]),style:Jt({height:`${p(x)-4}px`})},[K(p(po),{class:"w-4 h-4 text-retro-yellow flex-shrink-0"}),d("span",vb," Uncommitted Changes ("+A(r.uncommittedChangesCount)+") ",1),ce[1]||(ce[1]=d("span",{class:"flex-1"},null,-1)),ce[2]||(ce[2]=d("span",{class:"text-retro-muted text-[10px]"},"Working tree",-1))],6)],44,Ob)):U("",!0),d("div",{class:"relative",style:Jt({height:`${p(j)}px`})},[d("div",{class:"absolute left-0 right-0",style:Jt({transform:`translateY(${p(F)}px)`})},[(v(!0),y(ye,null,Ne(p(D),({row:Me,index:qe,graphRow:T,isHighlighted:P,isBranchHighlighted:B,isFeatureHighlighted:Z,isPreviewHighlighted:ve,isMuted:Ae})=>(v(),y(ye,{key:Me.type==="commit"?Me.commit.hash:`stash-${Me.stash.index}`},[Me.type==="commit"?Xm([Me.commit.hash,Me.commit.message,Me.commit.timestamp,Me.commit.branches.join("|"),Me.commit.tags.join("|"),r.selectedCommit?.hash===Me.commit.hash,P,B,Z,ve,Ae,n.currentBranchName||"",n.columnVisibility?.date!==!1,n.columnVisibility?.author!==!1,n.columnVisibility?.commit!==!1],()=>(v(),ge(Ce,{key:0,commit:Me.commit,index:Me.commitIndex,isSelected:r.selectedCommit?.hash===Me.commit.hash,isHighlighted:P,isBranchHighlighted:B,isFeatureHighlighted:Z,isPreviewHighlighted:ve,isMuted:Ae,currentBranchName:n.currentBranchName,localBranchNames:n.localBranchNames,graphRowData:T,maxLane:p(I),columnVisibility:n.columnVisibility,onClick:Qe=>X(Me.commit,Qe),onKeydown:Qe=>N(Qe,Me.commit,qe),onBranchContextMenu:Qe=>g(Me.commit,Qe),onCommitContextMenu:Qe=>O(Me.commit,Qe),onTagContextMenu:Qe=>b(Me.commit,Qe)},null,8,["commit","index","isSelected","isHighlighted","isBranchHighlighted","isFeatureHighlighted","isPreviewHighlighted","isMuted","currentBranchName","localBranchNames","graphRowData","maxLane","columnVisibility","onClick","onKeydown","onBranchContextMenu","onCommitContextMenu","onTagContextMenu"])),ce,0):U("",!0)],64))),128))],4)],4),(r.loading||r.loadingMore)&&r.commits.length>0?(v(),y("div",bb,[...ce[3]||(ce[3]=[d("div",{class:"w-3 h-3 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin"},null,-1),Le(" Loading more commits... ",-1)])])):U("",!0),!r.hasMore&&r.commits.length>0&&!r.loading?(v(),y("div",xb,A(r.commits.length)+" commits loaded ",1)):U("",!0)],544)}}});function kb(r){const e=r.charAt(0).toUpperCase();return e in zs?e:"M"}function Zo(r,e){if(r&&typeof r=="object"){const t=r;if(typeof t.data?.message=="string"&&t.data.message.trim())return t.data.message;if(typeof t.statusMessage=="string"&&t.statusMessage.trim())return t.statusMessage;if(typeof t.message=="string"&&t.message.trim())return t.message}return r instanceof Error&&r.message?r.message:e}function sp(r,e){const t=e.trim().toLowerCase();return t?r.filter(n=>n.message.toLowerCase().includes(t)||n.author.toLowerCase().includes(t)||n.shortHash.includes(t)||n.hash.includes(t)||n.branches.some(s=>s.toLowerCase().includes(t))||n.tags.some(s=>s.toLowerCase().includes(t))):[...r]}function wb(r,e){return e.size===0?[...r]:r.filter(t=>t.branches.some(n=>e.has(n)))}function Sb(r=10){const e=new Map;function t(s,i){const o=i.toLowerCase(),a=`${o}:${s.length}`,l=e.get(a);if(l)return l;const c=sp(s,o);if(e.size>=r){const u=e.keys().next().value;u!==void 0&&e.delete(u)}return e.set(a,c),c}function n(){e.clear()}return{filter:t,clear:n}}const $b={class:"flex flex-col h-full border-t border-retro-border bg-retro-dark"},Cb={class:"flex items-center justify-between p-2 border-b border-retro-border flex-shrink-0"},Qb={class:"flex items-center gap-2 text-xs min-w-0"},Pb={class:"font-mono text-retro-cyan"},Tb={class:"font-mono text-retro-cyan"},Mb={key:0,class:"px-3 py-1.5 text-xs text-retro-muted border-b border-retro-border flex-shrink-0"},Ab={class:"text-retro-green"},_b={class:"text-retro-red"},Rb={key:1,class:"flex-1 flex items-center justify-center"},Bb={key:2,class:"flex-1 overflow-auto"},Db={class:"text-retro-text truncate flex-1"},Zb={class:"text-retro-muted"},Eb={key:0,class:"flex-shrink-0 text-[10px] font-mono"},Lb={key:0,class:"text-retro-green"},Xb={key:1,class:"text-retro-red ml-1"},Ib={key:1,class:"flex-shrink-0 text-[10px] text-retro-muted italic"},Vb={key:3,class:"flex-1 flex items-center justify-center text-retro-muted text-sm"},zb=Xe({__name:"GitComparisonView",props:{fromCommit:{},toCommit:{},files:{},stats:{},loading:{type:Boolean}},emits:["close"],setup(r,{emit:e}){const t=e;function n(s){const i=kb(s);return zs[i]||zs.M}return(s,i)=>(v(),y("div",$b,[d("div",Cb,[d("div",Qb,[i[1]||(i[1]=d("span",{class:"text-retro-muted"},"Comparing",-1)),d("span",Pb,A(r.fromCommit.shortHash),1),i[2]||(i[2]=d("span",{class:"text-retro-muted"},"→",-1)),d("span",Tb,A(r.toCommit.shortHash),1)]),d("button",{class:"p-1 text-retro-muted hover:text-retro-text transition-colors flex-shrink-0","aria-label":"Close comparison",onClick:i[0]||(i[0]=o=>t("close"))},[K(p(wt),{class:"w-4 h-4"})])]),r.stats?(v(),y("div",Mb,[Le(A(r.stats.filesChanged)+" file"+A(r.stats.filesChanged!==1?"s":"")+" changed, ",1),d("span",Ab,"+"+A(r.stats.additions),1),d("span",_b," -"+A(r.stats.deletions),1)])):U("",!0),r.loading?(v(),y("div",Rb,[...i[3]||(i[3]=[d("div",{class:"flex items-center gap-2 text-retro-muted text-sm"},[d("div",{class:"w-4 h-4 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin"}),Le(" Loading comparison... ")],-1)])])):r.files&&r.files.length>0?(v(),y("div",Bb,[(v(!0),y(ye,null,Ne(r.files,o=>(v(),y("div",{key:o.path,class:"flex items-center gap-2 px-3 py-1.5 hover:bg-retro-panel/50 text-xs border-b border-retro-border/50"},[d("span",{class:_e(["flex-shrink-0 w-4 text-center font-semibold text-[10px]",n(o.status).colorClass])},A(o.status.charAt(0)),3),d("span",Db,[o.oldPath&&o.status.startsWith("R")?(v(),y(ye,{key:0},[d("span",Zb,A(o.oldPath),1),i[4]||(i[4]=d("span",{class:"text-retro-muted mx-1"},"→",-1))],64)):U("",!0),Le(" "+A(o.path),1)]),o.binary?(v(),y("span",Ib,"binary")):(v(),y("span",Eb,[o.additions>0?(v(),y("span",Lb,"+"+A(o.additions),1)):U("",!0),o.deletions>0?(v(),y("span",Xb,"-"+A(o.deletions),1)):U("",!0)]))]))),128))])):r.files&&r.files.length===0?(v(),y("div",Vb," No differences between these commits ")):U("",!0)]))}}),Nb={":art:":"🎨",":zap:":"⚡",":fire:":"🔥",":bug:":"🐛",":ambulance:":"🚑",":sparkles:":"✨",":memo:":"📝",":rocket:":"🚀",":lipstick:":"💄",":tada:":"🎉",":white_check_mark:":"✅",":lock:":"🔒",":closed_lock_with_key:":"🔐",":bookmark:":"🔖",":rotating_light:":"🚨",":construction:":"🚧",":green_heart:":"💚",":arrow_down:":"⬇️",":arrow_up:":"⬆️",":pushpin:":"📌",":construction_worker:":"👷",":chart_with_upwards_trend:":"📈",":recycle:":"♻️",":heavy_plus_sign:":"➕",":heavy_minus_sign:":"➖",":wrench:":"🔧",":hammer:":"🔨",":globe_with_meridians:":"🌐",":pencil2:":"✏️",":poop:":"💩",":rewind:":"⏪",":twisted_rightwards_arrows:":"🔀",":package:":"📦",":alien:":"👽",":truck:":"🚚",":page_facing_up:":"📄",":boom:":"💥",":bento:":"🍱",":wheelchair:":"♿",":bulb:":"💡",":beers:":"🍻",":speech_balloon:":"💬",":card_file_box:":"🗃️",":loud_sound:":"🔊",":mute:":"🔇",":busts_in_silhouette:":"👥",":children_crossing:":"🚸",":building_construction:":"🏗️",":iphone:":"📱",":clown_face:":"🤡",":egg:":"🥚",":see_no_evil:":"🙈",":camera_flash:":"📸",":alembic:":"⚗️",":mag:":"🔍",":label:":"🏷️",":seedling:":"🌱",":triangular_flag_on_post:":"🚩",":goal_net:":"🥅",":dizzy:":"💫",":wastebasket:":"🗑️",":passport_control:":"🛂",":adhesive_bandage:":"🩹",":monocle_face:":"🧐",":coffin:":"⚰️",":test_tube:":"🧪",":necktie:":"👔",":stethoscope:":"🩺",":bricks:":"🧱",":technologist:":"🧑💻",":money_with_wings:":"💸",":thread:":"🧵",":safety_vest:":"🦺"},Wb=/https?:\/\/[^\s<>)"']+/g;function qb(r){return r.replace(Wb,e=>`<a href="${e}" target="_blank" rel="noopener noreferrer" class="text-retro-blue hover:underline">${e}</a>`)}function jb(r){return r.replace(/:[a-z0-9_]+:/g,e=>Nb[e]||e)}function Yb(r){if(!r)return"";let e=jb(r);return e=B1.parse(e),e=qb(e),e=D1.sanitize(e,{ALLOWED_TAGS:["a","strong","em","code","b","i","br","p","ul","ol","li","pre","blockquote","h1","h2","h3"],ALLOWED_ATTR:["href","target","rel","class"]}),e}const Fb={class:"flex-shrink-0 flex items-center justify-between px-4 py-2 border-b border-retro-border bg-retro-panel"},Ub={class:"flex items-center gap-2 min-w-0"},Gb={class:"text-retro-cyan font-mono text-sm"},Hb={class:"text-retro-muted text-sm truncate"},Kb={class:"flex items-center gap-1 flex-shrink-0"},Jb=["aria-label","title"],ex={class:"flex-1 overflow-auto p-4 space-y-4"},tx={class:"space-y-2"},rx={class:"flex items-center gap-2 text-sm"},nx={class:"text-retro-text font-mono text-xs bg-retro-panel px-2 py-1 rounded"},sx={class:"flex items-center gap-2 text-sm"},ix={class:"text-retro-text"},ox={class:"text-retro-muted"},ax={key:0,class:"flex items-center gap-2 text-sm"},lx={class:"text-retro-text"},cx={class:"text-retro-muted"},ux={class:"flex items-center gap-2 text-sm"},hx={class:"text-retro-text"},dx={key:1,class:"flex items-start gap-2 text-sm"},fx={class:"flex flex-wrap gap-1"},mx=["onClick","title"],px={key:2,class:"flex items-start gap-2 text-sm"},gx={class:"flex flex-wrap gap-1"},Ox={key:3,class:"flex items-start gap-2 text-sm"},vx={class:"flex flex-wrap gap-1"},bx={class:"space-y-1"},xx={class:"text-retro-text text-sm font-mono bg-retro-panel p-3 rounded"},yx={key:0,class:"space-y-1"},kx=["innerHTML"],wx={key:1,class:"space-y-2"},Sx={class:"flex items-center gap-2 text-sm"},$x={class:"text-retro-muted"},Cx={key:0,class:"flex items-center gap-2"},Qx={class:"text-retro-green text-xs font-mono"},Px={class:"flex-1 h-2 rounded overflow-hidden bg-retro-panel flex"},Tx={class:"text-retro-red text-xs font-mono"},Mx={key:2,class:"space-y-2"},Ax={class:"flex items-center justify-between"},_x={class:"text-retro-muted text-xs uppercase tracking-wide"},Rx={class:"flex items-center gap-1"},Bx={key:0,class:"text-retro-muted text-sm py-2"},Dx={key:1,class:"space-y-0.5"},Zx=["onClick"],Ex=["title"],Lx={class:"text-retro-text font-mono text-xs truncate flex-1"},Xx={class:"text-retro-muted"},Ix={class:"text-retro-text"},Vx={key:0,class:"flex-shrink-0 font-mono text-xs flex items-center gap-1"},zx={key:0,class:"text-retro-green"},Nx={key:1,class:"text-retro-red"},Wx={key:1,class:"flex-shrink-0 font-mono text-xs text-retro-muted"},qx={key:2,class:"space-y-0"},jx=["onClick"],Yx={class:"text-retro-text font-mono text-xs"},Fx=["title"],Ux={class:"text-retro-text font-mono text-xs truncate flex-1"},Gx={class:"text-retro-muted"},Hx={class:"text-retro-text"},Kx={key:0,class:"flex-shrink-0 font-mono text-xs flex items-center gap-1"},Jx={key:0,class:"text-retro-green"},ey={key:1,class:"text-retro-red"},ty={key:1,class:"flex-shrink-0 font-mono text-xs text-retro-muted"},ry={key:3,class:"flex items-center gap-2 text-retro-muted text-sm py-2"},ny={key:4,class:"text-retro-muted text-sm py-2"},sy=Xe({__name:"GitCommitDetail",props:{commit:{},files:{},stats:{},loading:{type:Boolean,default:!1},committer:{},committerEmail:{},detailPosition:{default:"inline"}},emits:["close","navigateToCommit","togglePosition","navigatePrev","navigateNext","openFileDiff"],setup(r,{emit:e}){const t=r,n=e,s=Q(null),i=Q("flat"),o=Q(new Set),a=H(()=>!t.committer||!t.committerEmail?!1:t.committer!==t.commit.author||t.committerEmail!==t.commit.email),l=H(()=>{const Y=t.commit.body;return Y?Yb(Y):""}),c=H(()=>{if(!t.stats)return"";const{filesChanged:Y,additions:L,deletions:D}=t.stats,F=[`${Y} ${Y===1?"file":"files"} changed`];return L>0&&F.push(`+${L} insertion${L===1?"":"s"}`),D>0&&F.push(`-${D} deletion${D===1?"":"s"}`),F.join(", ")});function u(Y){const L=[];for(const D of Y){const j=D.path.split("/");let F=L;for(let z=0;z<j.length;z++){const X=j[z],N=z===j.length-1,be=j.slice(0,z+1).join("/");let G=F.find(le=>le.name===X&&le.isDirectory===!N);G||(G={name:X,fullPath:be,isDirectory:!N,children:[],file:N?D:void 0},F.push(G)),N||(F=G.children)}}return h(L),L}function h(Y){for(const L of Y)if(L.isDirectory)for(h(L.children);L.children.length===1&&L.children[0].isDirectory;){const D=L.children[0];L.name=`${L.name}/${D.name}`,L.fullPath=D.fullPath,L.children=D.children}}function f(Y){return[...Y].sort((L,D)=>L.isDirectory&&!D.isDirectory?-1:!L.isDirectory&&D.isDirectory?1:L.name.localeCompare(D.name))}function m(Y,L,D){const j=[];for(const F of f(Y)){const z=D.size===0?!0:D.has(F.fullPath);j.push({key:F.fullPath,depth:L,isDirectory:F.isDirectory,name:F.name,fullPath:F.fullPath,expanded:F.isDirectory?z:!1,file:F.file}),F.isDirectory&&z&&j.push(...m(F.children,L+1,D))}return j}const g=H(()=>!t.files||t.files.length===0?[]:u(t.files)),O=H(()=>m(g.value,0,o.value));function b(Y){o.value.has(Y)?o.value.delete(Y):o.value.add(Y),o.value=new Set(o.value)}function x(){const Y=L=>{const D=[];for(const j of L)j.isDirectory&&(D.push(j.fullPath),D.push(...Y(j.children)));return D};o.value=new Set(Y(g.value))}function w(){o.value=new Set}Ve(i,Y=>{Y==="tree"&&x()});function S(Y){return new Date(Y*1e3).toLocaleString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit",hour12:!0})}function C(Y){return zs[Y]||{label:Y,colorClass:"text-retro-muted"}}const _=H(()=>{if(!t.stats)return{addPct:0,delPct:0};const Y=t.stats.additions+t.stats.deletions;return Y===0?{addPct:50,delPct:50}:{addPct:Math.round(t.stats.additions/Y*100),delPct:Math.round(t.stats.deletions/Y*100)}});function I(Y){Y.key==="ArrowUp"?(Y.preventDefault(),n("navigatePrev")):Y.key==="ArrowDown"?(Y.preventDefault(),n("navigateNext")):Y.key==="Escape"&&(Y.preventDefault(),n("close"))}mt(()=>{Wt(()=>{s.value?.focus()})}),Ve(()=>t.commit.hash,()=>{Wt(()=>{s.value?.focus()})});function V(){n("close")}function re(Y){n("navigateToCommit",Y)}function oe(){n("togglePosition")}function Oe(Y){n("openFileDiff",Y)}return(Y,L)=>(v(),y("section",{ref_key:"containerRef",ref:s,tabindex:0,onKeydown:I,class:"flex-1 min-h-0 flex flex-col border-t border-retro-border bg-retro-dark focus:outline-none","aria-label":"Commit details",role:"region"},[d("div",Fb,[d("div",Ub,[d("span",Gb,A(r.commit.shortHash),1),d("span",Hb,A(r.commit.message.split(`
|
|
5
|
+
`)[0]),1)]),d("div",Kb,[d("button",{onClick:oe,class:"p-1 hover:bg-retro-dark rounded transition-colors focus:outline-none focus:ring-2 focus:ring-retro-cyan","aria-label":r.detailPosition==="inline"?"Dock detail to bottom":"Show detail inline",title:r.detailPosition==="inline"?"Dock to bottom":"Show inline"},[r.detailPosition==="inline"?(v(),ge(p(Um),{key:0,class:"w-4 h-4 text-retro-muted hover:text-retro-text"})):(v(),ge(p(Fm),{key:1,class:"w-4 h-4 text-retro-muted hover:text-retro-text"}))],8,Jb),d("button",{onClick:V,class:"p-1 hover:bg-retro-dark rounded transition-colors focus:outline-none focus:ring-2 focus:ring-retro-cyan","aria-label":"Close commit details"},[K(p(wt),{class:"w-4 h-4 text-retro-muted hover:text-retro-text"})])])]),d("div",ex,[d("div",tx,[d("div",rx,[L[2]||(L[2]=d("span",{class:"text-retro-muted w-20 flex-shrink-0"},"Hash:",-1)),d("code",nx,A(r.commit.hash),1)]),d("div",sx,[K(p(Xh),{class:"w-4 h-4 text-retro-muted flex-shrink-0"}),d("span",ix,A(r.commit.author),1),d("span",ox,"<"+A(r.commit.email)+">",1)]),a.value?(v(),y("div",ax,[K(p(Xh),{class:"w-4 h-4 text-retro-yellow flex-shrink-0"}),L[3]||(L[3]=d("span",{class:"text-retro-muted text-xs uppercase mr-1"},"Committer:",-1)),d("span",lx,A(r.committer),1),d("span",cx,"<"+A(r.committerEmail)+">",1)])):U("",!0),d("div",ux,[K(p(Z1),{class:"w-4 h-4 text-retro-muted flex-shrink-0"}),d("span",hx,A(S(r.commit.timestamp)),1)]),r.commit.parents?.length>0?(v(),y("div",dx,[L[4]||(L[4]=d("span",{class:"text-retro-muted w-20 flex-shrink-0"},"Parents:",-1)),d("div",fx,[(v(!0),y(ye,null,Ne(r.commit.parents,D=>(v(),y("button",{key:D,onClick:j=>re(D),class:"text-retro-cyan font-mono text-xs bg-retro-panel px-2 py-0.5 rounded hover:bg-retro-dark hover:text-retro-text transition-colors cursor-pointer focus:outline-none focus:ring-2 focus:ring-retro-cyan",title:`Navigate to parent ${D.substring(0,7)}`},A(D.substring(0,7)),9,mx))),128))])])):U("",!0),r.commit.branches?.length>0?(v(),y("div",px,[L[5]||(L[5]=d("span",{class:"text-retro-muted w-20 flex-shrink-0"},"Branches:",-1)),d("div",gx,[(v(!0),y(ye,null,Ne(r.commit.branches,D=>(v(),y("span",{key:D,class:"text-retro-green font-mono text-xs bg-retro-panel px-2 py-0.5 rounded"},A(D),1))),128))])])):U("",!0),r.commit.tags?.length>0?(v(),y("div",Ox,[L[6]||(L[6]=d("span",{class:"text-retro-muted w-20 flex-shrink-0"},"Tags:",-1)),d("div",vx,[(v(!0),y(ye,null,Ne(r.commit.tags,D=>(v(),y("span",{key:D,class:"text-retro-yellow font-mono text-xs bg-retro-panel px-2 py-0.5 rounded"},A(D),1))),128))])])):U("",!0)]),d("div",bx,[L[7]||(L[7]=d("h4",{class:"text-retro-muted text-xs uppercase tracking-wide"}," Message ",-1)),d("div",xx,A(r.commit.message.split(`
|
|
6
|
+
`)[0]),1)]),r.commit.body?(v(),y("div",yx,[L[8]||(L[8]=d("h4",{class:"text-retro-muted text-xs uppercase tracking-wide"}," Body ",-1)),d("div",{class:"text-retro-text text-sm font-mono bg-retro-panel p-3 rounded commit-body-rendered",innerHTML:l.value},null,8,kx)])):U("",!0),r.stats?(v(),y("div",wx,[d("div",Sx,[d("span",$x,A(c.value),1)]),r.stats.additions>0||r.stats.deletions>0?(v(),y("div",Cx,[d("span",Qx,"+"+A(r.stats.additions),1),d("div",Px,[d("div",{class:"bg-retro-green h-full transition-all",style:Jt({width:_.value.addPct+"%"})},null,4),d("div",{class:"bg-retro-red h-full transition-all",style:Jt({width:_.value.delPct+"%"})},null,4)]),d("span",Tx,"-"+A(r.stats.deletions),1)])):U("",!0)])):U("",!0),r.files?(v(),y("div",Mx,[d("div",Ax,[d("h4",_x," Files Changed ("+A(r.files.length)+") ",1),d("div",Rx,[d("button",{onClick:L[0]||(L[0]=D=>i.value="flat"),class:_e(["p-1 rounded transition-colors focus:outline-none focus:ring-2 focus:ring-retro-cyan",i.value==="flat"?"bg-retro-panel text-retro-cyan":"text-retro-muted hover:text-retro-text"]),"aria-label":"Flat file list",title:"Flat file list"},[K(p(ep),{class:"w-4 h-4"})],2),d("button",{onClick:L[1]||(L[1]=D=>i.value="tree"),class:_e(["p-1 rounded transition-colors focus:outline-none focus:ring-2 focus:ring-retro-cyan",i.value==="tree"?"bg-retro-panel text-retro-cyan":"text-retro-muted hover:text-retro-text"]),"aria-label":"Tree file view",title:"Tree file view"},[K(p(Ih),{class:"w-4 h-4"})],2)])]),r.files.length===0?(v(),y("div",Bx," No files changed in this commit. ")):i.value==="flat"?(v(),y("ul",Dx,[(v(!0),y(ye,null,Ne(r.files,D=>(v(),y("li",{key:D.path,class:"flex items-center gap-2 text-sm py-1 px-2 hover:bg-retro-panel rounded group cursor-pointer",onClick:j=>Oe(D)},[d("span",{class:_e(["flex-shrink-0 w-5 h-5 flex items-center justify-center text-xs font-bold rounded",C(D.status).colorClass]),title:C(D.status).label},A(D.status),11,Ex),K(p(Vs),{class:"w-4 h-4 text-retro-muted flex-shrink-0"}),d("span",Lx,[D.status==="R"&&D.oldPath?(v(),y(ye,{key:0},[d("span",Xx,A(D.oldPath),1),L[9]||(L[9]=d("span",{class:"text-retro-yellow mx-1"},"→",-1)),d("span",Ix,A(D.path),1)],64)):(v(),y(ye,{key:1},[Le(A(D.path),1)],64))]),!D.binary&&(D.additions>0||D.deletions>0)?(v(),y("span",Vx,[D.additions>0?(v(),y("span",zx,"+"+A(D.additions),1)):U("",!0),D.deletions>0?(v(),y("span",Nx,"-"+A(D.deletions),1)):U("",!0)])):D.binary?(v(),y("span",Wx,"binary")):U("",!0)],8,Zx))),128))])):(v(),y("div",qx,[d("div",{class:"flex items-center gap-2 mb-1"},[d("button",{onClick:x,class:"text-xs text-retro-muted hover:text-retro-text transition-colors"}," Expand all "),L[10]||(L[10]=d("span",{class:"text-retro-muted text-xs"},"|",-1)),d("button",{onClick:w,class:"text-xs text-retro-muted hover:text-retro-text transition-colors"}," Collapse all ")]),(v(!0),y(ye,null,Ne(O.value,D=>(v(),y("div",{key:D.key,class:_e(["flex items-center gap-1 py-0.5 px-1 hover:bg-retro-panel rounded text-sm cursor-pointer",{"select-none":D.isDirectory}]),style:Jt({paddingLeft:D.depth*16+4+"px"}),onClick:j=>D.isDirectory?b(D.fullPath):D.file?Oe(D.file):void 0},[D.isDirectory?(v(),y(ye,{key:0},[K(p(E1),{class:_e(["w-3 h-3 text-retro-muted transition-transform flex-shrink-0",{"rotate-90":D.expanded}])},null,8,["class"]),K(p(Ih),{class:"w-4 h-4 text-retro-yellow flex-shrink-0"}),d("span",Yx,A(D.name),1)],64)):D.file?(v(),y(ye,{key:1},[d("span",{class:_e(["flex-shrink-0 w-5 h-5 flex items-center justify-center text-xs font-bold rounded",C(D.file.status).colorClass]),title:C(D.file.status).label},A(D.file.status),11,Fx),K(p(Vs),{class:"w-4 h-4 text-retro-muted flex-shrink-0"}),d("span",Ux,[D.file.status==="R"&&D.file.oldPath?(v(),y(ye,{key:0},[d("span",Gx,A(D.file.oldPath.split("/").pop()),1),L[11]||(L[11]=d("span",{class:"text-retro-yellow mx-1"},"→",-1)),d("span",Hx,A(D.name),1)],64)):(v(),y(ye,{key:1},[Le(A(D.name),1)],64))]),!D.file.binary&&(D.file.additions>0||D.file.deletions>0)?(v(),y("span",Kx,[D.file.additions>0?(v(),y("span",Jx,"+"+A(D.file.additions),1)):U("",!0),D.file.deletions>0?(v(),y("span",ey,"-"+A(D.file.deletions),1)):U("",!0)])):D.file.binary?(v(),y("span",ty,"binary")):U("",!0)],64)):U("",!0)],14,jx))),128))]))])):r.loading?(v(),y("div",ry,[...L[12]||(L[12]=[d("div",{class:"w-3 h-3 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin"},null,-1),Le(" Loading file changes... ",-1)])])):(v(),y("div",ny," Failed to load file changes. "))])],544))}}),iy=ps(sy,[["__scopeId","data-v-29f450ea"]]),oy={class:"flex-1 min-h-0 flex flex-col border-t border-retro-border bg-retro-dark","aria-label":"Uncommitted changes details"},ay={class:"flex-shrink-0 flex items-center justify-between px-4 py-2 border-b border-retro-border bg-retro-panel"},ly={class:"flex items-center gap-2 min-w-0"},cy={class:"text-retro-muted text-sm"},uy={key:0,class:"w-3 h-3 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin",title:"Staging..."},hy={class:"flex-1 overflow-auto p-4 space-y-3"},dy={class:"space-y-2"},fy=["disabled"],my={class:"space-y-1"},py={class:"flex items-center justify-between"},gy={class:"text-retro-green text-xs uppercase tracking-wide font-semibold"},Oy={key:0,class:"text-retro-muted text-xs py-1"},vy={key:1,class:"space-y-0.5"},by=["aria-label","onClick"],xy={class:"text-retro-text font-mono text-xs truncate"},yy={class:"space-y-1"},ky={class:"flex items-center justify-between"},wy={class:"text-retro-yellow text-xs uppercase tracking-wide font-semibold"},Sy={key:0,class:"text-retro-muted text-xs py-1"},$y={key:1,class:"space-y-0.5"},Cy=["aria-label","onClick"],Qy={class:"text-retro-text font-mono text-xs truncate"},Py=Xe({__name:"GitUncommittedDetail",props:{stagedFiles:{default:()=>[]},unstagedFiles:{default:()=>[]},isStaging:{type:Boolean,default:!1},isCommitting:{type:Boolean,default:!1}},emits:["close","stageFiles","unstageFiles","stageAll","unstageAll","commit"],setup(r,{emit:e}){const t=r,n=e,s=Q(""),i=Q(!1),o=H(()=>s.value.trim().length>0&&t.stagedFiles.length>0&&!i.value&&!t.isCommitting);function a(O){return zs[O]||{label:O,colorClass:"text-retro-muted"}}function l(){n("close")}function c(O){n("stageFiles",[O.path])}function u(O){n("unstageFiles",[O.path])}function h(){n("stageAll")}function f(){n("unstageAll")}async function m(){o.value&&(i.value=!0,n("commit",s.value.trim()),s.value="",i.value=!1)}function g(O){(O.metaKey||O.ctrlKey)&&O.key==="Enter"&&(O.preventDefault(),m())}return(O,b)=>(v(),y("section",oy,[d("div",ay,[d("div",ly,[K(p(po),{class:"w-4 h-4 text-retro-yellow"}),b[1]||(b[1]=d("span",{class:"text-retro-yellow font-semibold text-sm"},"Uncommitted Changes",-1)),d("span",cy,"("+A(r.stagedFiles.length+r.unstagedFiles.length)+" files)",1),t.isStaging?(v(),y("div",uy)):U("",!0)]),d("button",{onClick:l,class:"p-1 hover:bg-retro-dark rounded transition-colors focus:outline-none focus:ring-2 focus:ring-retro-cyan","aria-label":"Close uncommitted changes details"},[K(p(wt),{class:"w-4 h-4 text-retro-muted hover:text-retro-text"})])]),d("div",hy,[d("div",dy,[Ye(d("textarea",{"onUpdate:modelValue":b[0]||(b[0]=x=>tt(s)?s.value=x:null),placeholder:"Commit message...",rows:"3",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan resize-none font-mono",onKeydown:g},null,544),[[_t,p(s)]]),d("button",{disabled:!p(o),class:_e(["w-full px-3 py-1.5 text-sm font-semibold rounded transition-colors disabled:opacity-40 disabled:cursor-not-allowed",p(o)?"bg-retro-green text-retro-dark hover:bg-retro-green/90":"bg-retro-green/30 text-retro-dark"]),onClick:m},A(p(i)||t.isCommitting?"Committing...":`Commit (${r.stagedFiles.length} staged)`),11,fy)]),d("div",my,[d("div",py,[d("h4",gy," Staged Changes ("+A(r.stagedFiles.length)+") ",1),r.stagedFiles.length>0?(v(),y("button",{key:0,class:"text-[11px] text-retro-muted hover:text-retro-text transition-colors",onClick:f}," Unstage All ")):U("",!0)]),r.stagedFiles.length===0?(v(),y("div",Oy," No staged files. Stage files below to commit. ")):(v(),y("ul",vy,[(v(!0),y(ye,null,Ne(r.stagedFiles,x=>(v(),y("li",{key:"staged-"+x.path,class:"flex items-center gap-2 text-sm py-1 px-2 hover:bg-retro-panel rounded group"},[d("button",{class:"flex-shrink-0 w-5 h-5 flex items-center justify-center rounded hover:bg-retro-red/20 transition-colors opacity-60 group-hover:opacity-100",title:"Unstage file","aria-label":`Unstage ${x.path}`,onClick:w=>u(x)},[K(p(yv),{class:"w-3.5 h-3.5 text-retro-red"})],8,by),d("span",{class:_e(["flex-shrink-0 w-4 text-center text-xs font-bold",a(x.status).colorClass])},A(x.status),3),K(p(Vs),{class:"w-3.5 h-3.5 text-retro-muted flex-shrink-0"}),d("span",xy,A(x.oldPath?`${x.oldPath} → ${x.path}`:x.path),1)]))),128))]))]),d("div",yy,[d("div",ky,[d("h4",wy," Unstaged Changes ("+A(r.unstagedFiles.length)+") ",1),r.unstagedFiles.length>0?(v(),y("button",{key:0,class:"text-[11px] text-retro-muted hover:text-retro-text transition-colors",onClick:h}," Stage All ")):U("",!0)]),r.unstagedFiles.length===0?(v(),y("div",Sy," No unstaged changes. ")):(v(),y("ul",$y,[(v(!0),y(ye,null,Ne(r.unstagedFiles,x=>(v(),y("li",{key:"unstaged-"+x.path,class:"flex items-center gap-2 text-sm py-1 px-2 hover:bg-retro-panel rounded group"},[d("button",{class:"flex-shrink-0 w-5 h-5 flex items-center justify-center rounded hover:bg-retro-green/20 transition-colors opacity-60 group-hover:opacity-100",title:"Stage file","aria-label":`Stage ${x.path}`,onClick:w=>c(x)},[K(p(ul),{class:"w-3.5 h-3.5 text-retro-green"})],8,Cy),d("span",{class:_e(["flex-shrink-0 w-4 text-center text-xs font-bold",a(x.status).colorClass])},A(x.status),3),K(p(Vs),{class:"w-3.5 h-3.5 text-retro-muted flex-shrink-0"}),d("span",Qy,A(x.oldPath?`${x.oldPath} → ${x.path}`:x.path),1)]))),128))]))])])]))}}),Ty=["aria-label"],My={key:0,class:"px-3 py-1 text-xs text-retro-muted border-b border-retro-border truncate font-mono"},Ay={key:0,class:"my-1 border-t border-retro-border",role:"separator"},_y=["aria-disabled","onClick","onMouseenter"],Ry={key:1,class:"w-4 h-4 flex-shrink-0"},Gh=220,By=36,Dy=9,Zy=29,ln=8,vo=Xe({__name:"GitContextMenu",props:{items:{},x:{},y:{},title:{}},emits:["close","action"],setup(r,{emit:e}){const t=r,n=e,s=Q(null),i=Q(-1),o=H(()=>t.items.map((m,g)=>({item:m,i:g})).filter(({item:m})=>!m.disabled).map(({i:m})=>m));let a=!1;function l(m){a&&s.value&&!s.value.contains(m.target)&&n("close")}mt(()=>{requestAnimationFrame(()=>{a=!0}),document.addEventListener("mousedown",l),document.addEventListener("contextmenu",l),Wt(()=>{s.value?.focus()})}),kt(()=>{a=!1,document.removeEventListener("mousedown",l),document.removeEventListener("contextmenu",l)});function c(m){const g=o.value;if(g.length===0)return;if(i.value===-1){i.value=m===1?g[0]:g[g.length-1];return}const O=g.indexOf(i.value);if(O===-1){i.value=m===1?g[0]:g[g.length-1];return}const b=O+m;b>=0&&b<g.length&&(i.value=g[b])}function u(m){switch(m.key){case"Escape":m.preventDefault(),n("close");break;case"ArrowDown":m.preventDefault(),c(1);break;case"ArrowUp":m.preventDefault(),c(-1);break;case"Enter":{m.preventDefault();const g=t.items[i.value];g&&!g.disabled&&(n("action",g.key),n("close"));break}}}function h(m){m.disabled||(n("action",m.key),n("close"))}const f=H(()=>{const m=t.title?Zy:0,g=t.items.filter(S=>S.separator).length,O=t.items.length*By+g*Dy+ln,b=m+O;let x=t.x,w=t.y;return typeof window<"u"&&(x+Gh>window.innerWidth-ln&&(x=window.innerWidth-Gh-ln),x<ln&&(x=ln),w+b>window.innerHeight-ln&&(w=window.innerHeight-b-ln),w<ln&&(w=ln)),{left:`${x}px`,top:`${w}px`}});return(m,g)=>(v(),ge(Cr,{to:"body"},[d("div",{ref_key:"menuRef",ref:s,class:"fixed z-50 bg-retro-panel border border-retro-border rounded shadow-lg py-1 min-w-[220px]",style:Jt(p(f)),role:"menu","aria-label":r.title??"Context menu",tabindex:"-1",onKeydown:u},[r.title?(v(),y("div",My,A(r.title),1)):U("",!0),(v(!0),y(ye,null,Ne(r.items,(O,b)=>(v(),y(ye,{key:O.key},[O.separator?(v(),y("div",Ay)):U("",!0),d("button",{class:_e(["w-full flex items-center gap-2 px-3 py-2 text-sm transition-colors focus:outline-none",[O.disabled?"text-retro-muted/50 cursor-not-allowed":O.danger?["text-retro-red hover:bg-retro-red/10 focus:bg-retro-red/10",p(i)===b?"bg-retro-red/10":""]:["text-retro-text hover:bg-retro-cyan/10 focus:bg-retro-cyan/10",p(i)===b?"bg-retro-cyan/10":""]]]),role:"menuitem","aria-disabled":O.disabled||void 0,tabindex:-1,onClick:x=>h(O),onMouseenter:x=>i.value=O.disabled?p(i):b,onMouseleave:g[0]||(g[0]=x=>i.value=-1)},[O.icon?(v(),ge(Xs(O.icon),{key:0,class:_e(["w-4 h-4 flex-shrink-0",O.disabled?"opacity-50":O.danger?"":"text-retro-muted"])},null,8,["class"])):(v(),y("span",Ry)),Le(" "+A(O.label),1)],42,_y)],64))),128))],44,Ty)]))}}),Ey=Xe({__name:"GitBranchMenu",props:{branchName:{},isCurrentBranch:{type:Boolean},isLocal:{type:Boolean},x:{},y:{}},emits:["close","checkout","createBranch","deleteBranch","rename","merge","rebase","push","pull","fetch","copyName"],setup(r,{emit:e}){const t=r,n=e,s=H(()=>[{key:"checkout",label:"Checkout",icon:cs,disabled:t.isCurrentBranch},{key:"rename",label:"Rename",icon:L1,separator:!0},{key:"deleteBranch",label:"Delete",icon:pn,danger:!0,disabled:t.isCurrentBranch},{key:"merge",label:"Merge into Current",icon:Gm,separator:!0,disabled:t.isCurrentBranch},{key:"rebase",label:"Rebase Current Onto",icon:qm,disabled:t.isCurrentBranch},{key:"push",label:"Push",icon:jm,separator:!0},{key:"copyName",label:"Copy Branch Name",icon:Is,separator:!0}]),i=H(()=>[{key:"checkout",label:"Checkout",icon:cs},{key:"deleteBranch",label:"Delete Remote Branch",icon:pn,separator:!0,danger:!0},{key:"fetch",label:"Fetch",icon:Km,separator:!0},{key:"pull",label:"Pull into Current",icon:tv},{key:"copyName",label:"Copy Branch Name",icon:Is,separator:!0}]),o=H(()=>t.isLocal?s.value:i.value),a={checkout:()=>n("checkout"),createBranch:()=>n("createBranch"),deleteBranch:()=>n("deleteBranch"),rename:()=>n("rename"),merge:()=>n("merge"),rebase:()=>n("rebase"),push:()=>n("push"),pull:()=>n("pull"),fetch:()=>n("fetch"),copyName:()=>n("copyName")};function l(c){a[c]?.(),n("close")}return(c,u)=>{const h=vo;return v(),ge(h,{items:p(o),x:r.x,y:r.y,title:r.branchName,onAction:l,onClose:u[0]||(u[0]=f=>n("close"))},null,8,["items","x","y","title"])}}}),Ly=Xe({__name:"GitCommitMenu",props:{commit:{},x:{},y:{}},emits:["close","addTag","createBranch","checkout","cherryPick","revert","mergeInto","reset","copyHash","copySubject"],setup(r,{emit:e}){const t=e,n=H(()=>[{key:"addTag",label:"Add Tag",icon:Du},{key:"createBranch",label:"Create Branch",icon:ul},{key:"checkout",label:"Checkout (detached HEAD)",icon:cs,separator:!0},{key:"cherryPick",label:"Cherry Pick",icon:dv},{key:"revert",label:"Revert",icon:Ym},{key:"mergeInto",label:"Merge into Current",icon:Gm,separator:!0},{key:"reset",label:"Reset Current Branch to Here",icon:qm,danger:!0},{key:"copyHash",label:"Copy Commit Hash",icon:Is,separator:!0},{key:"copySubject",label:"Copy Commit Subject",icon:Is}]),s={addTag:()=>t("addTag"),createBranch:()=>t("createBranch"),checkout:()=>t("checkout"),cherryPick:()=>t("cherryPick"),revert:()=>t("revert"),mergeInto:()=>t("mergeInto"),reset:()=>t("reset"),copyHash:()=>t("copyHash"),copySubject:()=>t("copySubject")};function i(o){s[o]?.(),t("close")}return(o,a)=>{const l=vo;return v(),ge(l,{items:p(n),x:r.x,y:r.y,title:r.commit.shortHash,onAction:i,onClose:a[0]||(a[0]=c=>t("close"))},null,8,["items","x","y","title"])}}}),Xy=Xe({__name:"GitTagMenu",props:{tagName:{},x:{},y:{}},emits:["close","viewDetails","deleteTag","pushTag","copyName"],setup(r,{emit:e}){const t=e,n=[{key:"viewDetails",label:"View Details",icon:Du},{key:"deleteTag",label:"Delete Tag",icon:pn,separator:!0,danger:!0},{key:"pushTag",label:"Push Tag",icon:jm},{key:"copyName",label:"Copy Tag Name",icon:Is,separator:!0}],s={viewDetails:()=>t("viewDetails"),deleteTag:()=>t("deleteTag"),pushTag:()=>t("pushTag"),copyName:()=>t("copyName")};function i(o){s[o]?.()}return(o,a)=>{const l=vo;return v(),ge(l,{items:n,x:r.x,y:r.y,title:r.tagName,onClose:a[0]||(a[0]=c=>t("close")),onAction:i},null,8,["x","y","title"])}}}),Iy=Xe({__name:"GitStashMenu",props:{stashIndex:{},stashMessage:{},x:{},y:{}},emits:["close","apply","pop","drop","createBranch","copyName","copyHash"],setup(r,{emit:e}){const t=e,n=[{key:"apply",label:"Apply Stash",icon:ev},{key:"pop",label:"Pop Stash",icon:Ym},{key:"createBranch",label:"Create Branch from Stash",icon:X1,separator:!0},{key:"drop",label:"Drop Stash",icon:pn,separator:!0,danger:!0},{key:"copyName",label:"Copy Stash Reference",icon:Is,separator:!0},{key:"copyHash",label:"Copy Stash Hash",icon:vv}],s={apply:()=>t("apply"),pop:()=>t("pop"),drop:()=>t("drop"),createBranch:()=>t("createBranch"),copyName:()=>t("copyName"),copyHash:()=>t("copyHash")};function i(o){s[o]?.()}return(o,a)=>{const l=vo;return v(),ge(l,{items:n,x:r.x,y:r.y,title:r.stashMessage,onClose:a[0]||(a[0]=c=>t("close")),onAction:i},null,8,["x","y","title"])}}}),Vy=Xe({__name:"GitUncommittedMenu",props:{x:{},y:{}},emits:["close","stash","reset","clean"],setup(r,{emit:e}){const t=e,n=[{key:"stash",label:"Stash Uncommitted Changes",icon:J1},{key:"reset",label:"Reset Working Directory",icon:cs,separator:!0,danger:!0},{key:"clean",label:"Clean Untracked Files",icon:pn,danger:!0}],s={stash:()=>t("stash"),reset:()=>t("reset"),clean:()=>t("clean")};function i(o){s[o]?.()}return(o,a)=>{const l=vo;return v(),ge(l,{items:n,x:r.x,y:r.y,title:"Uncommitted Changes",onClose:a[0]||(a[0]=c=>t("close")),onAction:i},null,8,["x","y"])}}});async function zy(r,e,t){try{return(await $fetch("/api/git/merge-base",{params:{workingDirectory:r,branch:e,baseBranch:t??void 0}})).mergeBase}catch{return null}}function Hh(r){const e={};for(const{branch:t,mergeBase:n}of r)t&&n&&(e[t]=n);return e}async function Ny(r){return $fetch("/api/git/file-diff",{query:r})}async function Wy(r){return $fetch("/api/git/diff",{query:r})}const dl=Qu("gitGraph",()=>{const r=Q([]),e=Q([]),t=Q([]),n=Q(new Set),s=Q([]),i=Q([]),o=Q(0),a=Q(!1),l=Q(null),c=Q(null),u=Q(null),h=Q(!1),f=Q(null),m=Q(!1),g=Q(0),O=Q(""),b=Q([]),x=Q(null),w=Q(!1),S=Q(!1),C=Q(!1),_=Q(!1),I=8e3,V=Q(null);let re=null;function oe(W){V.value=W,re&&clearTimeout(re),re=setTimeout(()=>{V.value=null},I)}function Oe(){V.value=null,re&&(clearTimeout(re),re=null)}async function Y(W,te,Ze,Yt){if(!x.value)return{success:!1,error:"No working directory set"};try{const Ir=await $fetch(W,{method:Yt?.method??"POST",body:{workingDirectory:x.value,...te}});return(Yt?.reloadGraph??!0)&&await rr(x.value),{success:!0,data:Ir}}catch(Ir){const Vr=Zo(Ir,Ze);return oe(Vr),{success:!1,error:Vr}}}const L=Q(null),D=Q(!1),j=Q(!1),F=Q(null),z=Q([]),X=Q([]),N=Q(null),be=Q(null),G=Q(null),le=Q("inline"),ue=Q("list"),ce=Q("rounded"),de=Q(!1),Ce=Q({date:!0,author:!0,commit:!0}),Me=Q(0),qe=Q(0),T=Q(null),P=Q(null),B=Q(null),Z=Q(null),ve=Q(null),Ae=Q(null),Qe=Q(null),se=Q(null),ee=Q(null),q=Q(null),pe=Q(null),Pe=Q(!1),Ie=Sb(),xt=H(()=>{if(!O.value&&b.value.length===0)return r.value;let W=r.value;if(O.value&&(W=Ie.filter(W,O.value)),b.value.length>0){const te=new Set(b.value);W=wb(W,te)}return W}),qt=H(()=>e.value.find(W=>W.isHead)||null);async function rr(W){x.value=W,h.value=!0,f.value=null;try{const[te,Ze,Yt,Ir,Vr]=await Promise.all([$fetch("/api/git/log",{query:{workingDirectory:W}}),$fetch("/api/git/status",{query:{workingDirectory:W}}),$fetch("/api/git/stash",{query:{workingDirectory:W}}).then(Cn=>Cn.stashes).catch(()=>[]),$fetch("/api/git/remotes",{query:{workingDirectory:W}}).then(Cn=>Cn.remotes).catch(()=>[]),$fetch("/api/git/state",{query:{workingDirectory:W}}).then(Cn=>Cn.state).catch(()=>null)]);r.value=te.commits,e.value=te.branches,t.value=te.tags,n.value=new Set(te.localBranches??[]),m.value=te.hasMore,g.value=te.totalCount,s.value=Ze.stagedFiles??[],i.value=Ze.unstagedFiles??[],o.value=(Ze.stagedCount??0)+(Ze.unstagedCount??0),z.value=Yt,X.value=Ir,F.value=Vr,L.value=Date.now(),await ys()}catch(te){const Ze=te instanceof Error?te.message:"Failed to load git graph";f.value=Ze,r.value=[],e.value=[],t.value=[],s.value=[],i.value=[],o.value=0,z.value=[],X.value=[]}finally{h.value=!1}}async function nn(){if(x.value)try{const W=await $fetch("/api/git/status",{query:{workingDirectory:x.value}});s.value=W.stagedFiles??[],i.value=W.unstagedFiles??[],o.value=(W.stagedCount??0)+(W.unstagedCount??0)}catch(W){console.error("Failed to refresh uncommitted changes:",W)}}const Mr=Q(!1);async function Nn(){if(!(!x.value||!m.value||h.value||Mr.value)){Mr.value=!0;try{const W=await $fetch("/api/git/log",{query:{workingDirectory:x.value,offset:r.value.length}});r.value=[...r.value,...W.commits],m.value=W.hasMore}catch(W){console.error("Failed to load more commits:",W)}finally{Mr.value=!1}}}async function sn(W){if(l.value=W,c.value=null,u.value=null,a.value=!1,w.value=!0,!x.value){w.value=!1;return}try{const te=await $fetch("/api/git/show",{query:{workingDirectory:x.value,hash:W.hash}});c.value=te.files,u.value=te.stats}catch(te){console.error("Failed to load commit details:",te),c.value=[],u.value={additions:0,deletions:0,filesChanged:0},oe("Failed to load commit details")}finally{w.value=!1}}function Wn(){l.value=null,c.value=null,u.value=null,a.value=!1}function gr(){l.value=null,u.value=null,c.value=null,a.value=!0}function Er(W){O.value=W,Me.value=0,we()}const ae=H(()=>O.value?sp(r.value,O.value).map(W=>W.hash):[]);function we(){qe.value=ae.value.length}function Be(){ae.value.length!==0&&(Me.value=(Me.value+1)%ae.value.length,we(),je())}function Fe(){ae.value.length!==0&&(Me.value=Me.value<=0?ae.value.length-1:Me.value-1,we(),je())}function je(){const W=ae.value[Me.value];if(W){const te=r.value.find(Ze=>Ze.hash===W);te&&sn(te)}}function $t(W){const te=b.value.indexOf(W);te===-1?b.value.push(W):b.value.splice(te,1)}function ut(){O.value="",b.value=[]}async function jt(W){if(!x.value)return{success:!1,error:"No working directory set"};_.value=!0;try{const te=await $fetch("/api/git/checkout",{method:"POST",body:{workingDirectory:x.value,branchName:W}});return te.success&&await rr(x.value),{success:te.success,error:te.error}}catch(te){const Ze=te instanceof Error?te.message:"Failed to checkout branch";return oe(Ze),{success:!1,error:Ze}}finally{_.value=!1}}async function It(W,te){if(!x.value)return{success:!1,error:"No working directory set"};try{const Ze=await $fetch("/api/git/checkout",{method:"POST",body:{workingDirectory:x.value,branchName:W,createBranch:!0,fromCommit:te}});return Ze.success&&await rr(x.value),{success:Ze.success,error:Ze.error}}catch(Ze){return{success:!1,error:Ze instanceof Error?Ze.message:"Failed to create branch"}}}async function Or(W,te=!1){return Y("/api/git/branch",{branchName:W,force:te},"Failed to delete branch",{method:"DELETE"})}async function qn(W){return Y("/api/git/branch",{branchName:W,remote:!0},"Failed to delete remote branch",{method:"DELETE"})}async function ii(W){if(!x.value)return{success:!1,error:"No working directory set"};S.value=!0;try{return await $fetch("/api/git/stage",{method:"POST",body:{workingDirectory:x.value,files:W}}),await nn(),{success:!0}}catch(te){const Ze=te instanceof Error?te.message:"Failed to stage files";return oe(Ze),{success:!1,error:Ze}}finally{S.value=!1}}async function oi(W){if(!x.value)return{success:!1,error:"No working directory set"};S.value=!0;try{return await $fetch("/api/git/unstage",{method:"POST",body:{workingDirectory:x.value,files:W}}),await nn(),{success:!0}}catch(te){const Ze=te instanceof Error?te.message:"Failed to unstage files";return oe(Ze),{success:!1,error:Ze}}finally{S.value=!1}}async function Lr(W){if(!x.value)return{success:!1,error:"No working directory set"};C.value=!0;try{return await $fetch("/api/git/commit",{method:"POST",body:{workingDirectory:x.value,message:W}}),await rr(x.value),{success:!0}}catch(te){const Ze=te instanceof Error?te.message:"Failed to commit changes";return oe(Ze),{success:!1,error:Ze}}finally{C.value=!1}}async function ai(W,te){return Y("/api/git/branch-rename",{oldName:W,newName:te},"Failed to rename branch")}async function li(W,te){return Y("/api/git/merge",{branch:W,...te},"Failed to merge branch")}async function ci(W){return Y("/api/git/rebase",{onto:W},"Failed to rebase branch")}async function ui(W,te,Ze,Yt){return Y("/api/git/push",{branch:W,remote:te,force:Ze,forceWithLease:Yt},"Failed to push branch")}async function hi(W,te,Ze,Yt){return Y("/api/git/pull",{branch:W,remote:te,noFastForward:Ze,squash:Yt},"Failed to pull branch")}async function di(W,te,Ze){return Y("/api/git/fetch",{branch:W,remote:te,...Ze},"Failed to fetch")}async function fi(W,te,Ze){return Y("/api/git/cherry-pick",{hash:W,recordOrigin:te,noCommit:Ze},"Failed to cherry-pick commit")}async function mi(W){return Y("/api/git/revert",{hash:W},"Failed to revert commit")}async function pi(W,te){return Y("/api/git/reset",{hash:W,mode:te},"Failed to reset to commit")}async function gi(W){if(!x.value)return{success:!1,error:"No working directory set"};try{return await $fetch("/api/git/checkout",{method:"POST",body:{workingDirectory:x.value,branchName:W}}),await rr(x.value),{success:!0}}catch(te){const Ze=te?.data?.message||te?.statusMessage||te?.message||"Failed to checkout commit";return oe(Ze),{success:!1,error:Ze}}}async function Dt(W){try{const te=W.message.split(`
|
|
7
|
+
`)[0];return await jn(te),{success:!0}}catch(te){const Ze=te?.message||"Failed to copy commit subject";return oe(Ze),{success:!1,error:Ze}}}async function nr(W,te,Ze,Yt,Ir){return Y("/api/git/tag",{name:W,hash:te,annotated:Ze,message:Yt,pushToRemote:Ir},"Failed to create tag")}async function gs(W,te){return Y("/api/git/tag",{name:W,deleteFromRemote:te},"Failed to delete tag",{method:"DELETE"})}async function yn(W,te){return Y("/api/git/tag-push",{name:W,remote:te},"Failed to push tag")}async function kn(W){if(!x.value)return{success:!1,error:"No working directory set"};try{return{success:!0,data:await $fetch(`/api/git/tag/${encodeURIComponent(W)}`,{query:{workingDirectory:x.value}})}}catch(te){const Ze=Zo(te,"Failed to get tag detail");return oe(Ze),{success:!1,error:Ze}}}async function Os(W){try{return await jn(W),{success:!0}}catch(te){const Ze=te?.message||"Failed to copy tag name";return oe(Ze),{success:!1,error:Ze}}}async function wn(){if(!x.value)return{success:!1,error:"No working directory set"};try{const W=await $fetch("/api/git/stash",{query:{workingDirectory:x.value}});return z.value=W.stashes,{success:!0}}catch(W){const te=Zo(W,"Failed to load stashes");return oe(te),{success:!1,error:te}}}async function on(W,te){return Y("/api/git/stash-apply",{index:W,reinstateIndex:te},"Failed to apply stash")}async function Oi(W,te){return Y("/api/git/stash-pop",{index:W,reinstateIndex:te},"Failed to pop stash")}async function vs(W){return Y("/api/git/stash-drop",{index:W},"Failed to drop stash")}async function Sn(W,te){return Y("/api/git/stash-branch",{index:W,branchName:te},"Failed to create branch from stash")}async function pt(W,te){return Y("/api/git/stash",{message:W,includeUntracked:te},"Failed to stash changes")}async function vr(){if(!x.value)return{success:!1,error:"No working directory set"};try{const W=await $fetch("/api/git/remotes",{query:{workingDirectory:x.value}});return X.value=W.remotes,{success:!0}}catch(W){const te=Zo(W,"Failed to load remotes");return oe(te),{success:!1,error:te}}}async function bs(W,te){return Y("/api/git/remote",{name:W,url:te},"Failed to add remote")}async function vi(W,te){return Y("/api/git/remote",{name:W,newUrl:te},"Failed to edit remote",{method:"PUT"})}async function $n(W){return Y("/api/git/remote",{name:W},"Failed to delete remote",{method:"DELETE"})}async function bi(W,te){return Y("/api/git/fetch",{all:!0,prune:W,pruneTags:te},"Failed to fetch all")}function xs(){le.value=le.value==="inline"?"bottom":"inline"}function br(){ue.value=ue.value==="list"?"tree":"list"}function sr(W){ce.value=W}function xi(){de.value=!de.value}function yi(W){Ce.value={...Ce.value,[W]:!Ce.value[W]}}async function Xr(W,te,Ze){if(!te||!x.value){W.value=null;return}W.value=await zy(x.value,te,Ze)}async function ki(W){T.value=W,await Xr(P,W)}async function an(W,te){B.value=W,ve.value=te??null,await Xr(Z,W,te)}async function wi(W,te){Ae.value=W,se.value=te??null,await Xr(Qe,W,te)}async function ys(){x.value&&await Promise.all([Xr(P,T.value),Xr(Z,B.value,ve.value),Xr(Qe,Ae.value,se.value)])}function Re(W){const te=r.value.find(Ze=>Ze.hash===W||Ze.shortHash===W);te&&sn(te)}async function k(W){return Y("/api/git/reset",{hash:"HEAD",mode:W},"Failed to reset working directory")}async function R(){return Y("/api/git/clean",{},"Failed to clean untracked files")}function M(W){be.value=W}function E(){be.value=null}function ie(W){G.value=W}function he(){G.value=null}const ne=Q(null),fe=Q(null),He=Q(!1),st=H(()=>!!N.value&&!!l.value);function Vt(W){N.value=W,W&&l.value&&Ue()}function _o(){N.value=null,ne.value=null,fe.value=null,He.value=!1}async function Ue(){if(!(!x.value||!l.value||!N.value)){He.value=!0;try{const W=await Wy({workingDirectory:x.value,from:N.value.hash,to:l.value.hash});ne.value=W.files,fe.value=W.stats}catch(W){console.error("Failed to load comparison:",W),oe("Failed to load commit comparison"),ne.value=null,fe.value=null}finally{He.value=!1}}}async function jn(W){navigator?.clipboard&&await navigator.clipboard.writeText(W)}async function ks(W,te){ee.value=te,q.value=W,pe.value=null,Pe.value=!0,await y1()}function Eh(){ee.value=null,q.value=null,pe.value=null,Pe.value=!1}async function y1(){if(!x.value||!q.value||!ee.value){Pe.value=!1;return}Pe.value=!0;try{pe.value=await Ny({workingDirectory:x.value,commitHash:q.value,filePath:ee.value.path})}catch(W){console.error("Failed to load file diff:",W),oe("Failed to load file diff"),pe.value=null}finally{Pe.value=!1}}function k1(){r.value=[],e.value=[],t.value=[],n.value=new Set,s.value=[],i.value=[],o.value=0,a.value=!1,l.value=null,c.value=null,u.value=null,h.value=!1,f.value=null,m.value=!1,g.value=0,O.value="",b.value=[],x.value=null,L.value=null,D.value=!1,j.value=!1,F.value=null,Mr.value=!1,w.value=!1,S.value=!1,C.value=!1,_.value=!1,z.value=[],X.value=[],N.value=null,ne.value=null,fe.value=null,He.value=!1,be.value=null,G.value=null,le.value="inline",ue.value="list",ce.value="rounded",de.value=!1,Ce.value={date:!0,author:!0,commit:!0},Me.value=0,qe.value=0,T.value=null,B.value=null,Z.value=null,ve.value=null,Ae.value=null,Qe.value=null,se.value=null,ee.value=null,q.value=null,pe.value=null,Pe.value=!1,Oe(),Ie.clear()}async function w1(){if(!x.value||j.value||h.value)return!1;j.value=!0;try{const W=(await $fetch("/api/git/state",{query:{workingDirectory:x.value}})).state,te=F.value;if(F.value=W,L.value=Date.now(),!te)return!1;const Ze=te.headCommit!==W.headCommit||te.branchListHash!==W.branchListHash,Yt=te.workingTreeHash!==W.workingTreeHash,Ir=te.stashListHash!==W.stashListHash;if(Ze){const[Qn,Ro,C1]=await Promise.all([$fetch("/api/git/log",{query:{workingDirectory:x.value}}),$fetch("/api/git/status",{query:{workingDirectory:x.value}}),$fetch("/api/git/stash",{query:{workingDirectory:x.value}}).then(Q1=>Q1.stashes).catch(()=>[])]);return r.value=Qn.commits,e.value=Qn.branches,t.value=Qn.tags,n.value=new Set(Qn.localBranches??[]),m.value=Qn.hasMore,g.value=Qn.totalCount,s.value=Ro.stagedFiles??[],i.value=Ro.unstagedFiles??[],o.value=(Ro.stagedCount??0)+(Ro.unstagedCount??0),z.value=C1,await ys(),!0}if(!Yt&&!Ir)return!1;const[Vr,Cn]=await Promise.all([Yt?$fetch("/api/git/status",{query:{workingDirectory:x.value}}):Promise.resolve(null),Ir?$fetch("/api/git/stash",{query:{workingDirectory:x.value}}).then(Qn=>Qn.stashes).catch(()=>[]):Promise.resolve(null)]);return Vr&&(s.value=Vr.stagedFiles??[],i.value=Vr.unstagedFiles??[],o.value=(Vr.stagedCount??0)+(Vr.unstagedCount??0)),Cn&&(z.value=Cn),!0}catch(W){return console.error("Failed to refresh git graph:",W),!1}finally{j.value=!1}}function S1(){D.value=!0}function $1(){D.value=!1}return{commits:Te(r),branches:Te(e),tags:Te(t),localBranchNames:Te(n),stagedFiles:Te(s),unstagedFiles:Te(i),uncommittedChangesCount:Te(o),isUncommittedChangesSelected:Te(a),selectedCommit:Te(l),selectedCommitFiles:Te(c),selectedCommitStats:Te(u),loading:Te(h),loadingMore:Te(Mr),error:Te(f),hasMore:Te(m),totalCount:Te(g),searchQuery:Te(O),filteredBranches:Te(b),workingDirectory:Te(x),stashes:Te(z),remotes:Te(X),comparisonCommit:Te(N),comparisonFiles:Te(ne),comparisonStats:Te(fe),comparisonLoading:Te(He),isComparing:st,activeDialog:Te(be),activeContextMenu:Te(G),detailViewPosition:Te(le),fileViewMode:Te(ue),graphStyle:Te(ce),muteNonAncestral:Te(de),columnVisibility:Te(Ce),searchResultIndex:Te(Me),searchResultCount:Te(qe),selectedFeatureId:Te(T),featureMergeBase:Te(P),conversationBranch:Te(B),conversationMergeBase:Te(Z),conversationBaseBranch:Te(ve),previewBranch:Te(Ae),previewMergeBase:Te(Qe),previewBaseBranch:Te(se),diffViewerFile:Te(ee),diffViewerCommitHash:Te(q),diffViewerContent:Te(pe),diffViewerLoading:Te(Pe),lastRefreshTime:Te(L),isPollingActive:Te(D),isRefreshing:Te(j),isLoadingDetails:Te(w),isStaging:Te(S),isCommitting:Te(C),isCheckingOut:Te(_),operationError:Te(V),filteredCommits:xt,currentBranch:qt,searchResultHashes:ae,loadGitGraph:rr,loadMoreCommits:Nn,refreshUncommittedChanges:nn,selectCommit:sn,selectUncommittedChanges:gr,clearSelection:Wn,setSearchQuery:Er,toggleBranchFilter:$t,clearFilters:ut,nextSearchResult:Be,prevSearchResult:Fe,checkoutBranch:jt,createBranch:It,deleteLocalBranch:Or,deleteRemoteBranch:qn,stageFiles:ii,unstageFiles:oi,commitChanges:Lr,reset:k1,clearOperationError:Oe,renameBranch:ai,mergeBranch:li,rebaseBranch:ci,pushBranch:ui,pullBranch:hi,fetchBranch:di,cherryPickCommit:fi,revertCommit:mi,resetToCommit:pi,checkoutCommit:gi,copyCommitSubject:Dt,createTag:nr,deleteTag:gs,pushTag:yn,getTagDetail:kn,copyTagName:Os,loadStashes:wn,applyStash:on,popStash:Oi,dropStash:vs,stashBranch:Sn,stashChanges:pt,loadRemotes:vr,addRemote:bs,editRemote:vi,deleteRemote:$n,fetchAll:bi,setActiveDialog:M,clearActiveDialog:E,setActiveContextMenu:ie,clearActiveContextMenu:he,selectComparisonCommit:Vt,clearComparison:_o,loadComparisonData:Ue,copyToClipboard:jn,toggleDetailViewPosition:xs,toggleFileViewMode:br,setGraphStyle:sr,toggleMuteNonAncestral:xi,toggleColumnVisibility:yi,navigateToCommit:Re,resetWorking:k,cleanUntracked:R,setSelectedFeatureId:ki,setConversationBranch:an,setPreviewBranch:wi,openFileDiff:ks,closeFileDiff:Eh,checkAndRefresh:w1,startPolling:S1,stopPolling:$1}});async function Kh(){if(typeof window>"u")return{conversations:[],archivedConversations:[],discardedConversations:0,discardedArchives:0};try{const r=await $fetch("/api/conversations");if(!r||!Array.isArray(r.conversations))return console.warn("[conversationStorage] Invalid data structure from server"),{conversations:[],archivedConversations:[],discardedConversations:0,discardedArchives:0};r.version!==Qa&&console.warn(`[conversationStorage] Storage version mismatch: ${r.version} vs ${Qa}`);const e=r.conversations.map(l=>{if(!l||typeof l!="object")return l;const c=l;return"claudeSessionId"in c&&!("providerSessionId"in c)?{...c,providerSessionId:c.claudeSessionId}:l}),n=(Array.isArray(r.archivedConversations)?r.archivedConversations:[]).map(l=>{if(!l||typeof l!="object")return l;const c=l;return"claudeSessionId"in c&&!("providerSessionId"in c)?{...c,providerSessionId:c.claudeSessionId}:l}),s=e.filter(j1),i=n.filter(Y1),o=e.length-s.length,a=n.length-i.length;return o>0&&console.warn(`[conversationStorage] Discarded ${o} corrupted active conversation(s)`),a>0&&console.warn(`[conversationStorage] Discarded ${a} corrupted archive conversation(s)`),{conversations:s,archivedConversations:i,discardedConversations:o,discardedArchives:a}}catch(r){return console.error("[conversationStorage] Failed to load conversations:",r),{conversations:[],archivedConversations:[],discardedConversations:0,discardedArchives:0}}}async function qy(r,e=[]){if(typeof window>"u")return!1;try{return await $fetch("/api/conversations",{method:"POST",body:{version:Qa,conversations:r,archivedConversations:e}}),!0}catch(t){return console.error("Failed to save conversations:",t),!1}}async function jy(r){if(typeof window>"u")return!1;try{return await $fetch("/api/conversations/update",{method:"POST",body:{version:Qa,conversation:r}}),!0}catch(e){return console.error("Failed to save conversation:",e),!1}}function Yy(r){return r?r.map(e=>{switch(e.type){case"text":return e.text;case"tool_use":return`[${e.name}] ${e.inputSummary}`;case"tool_result":return e.isError?`Error: ${e.content.slice(0,100)}`:"";case"thinking":case"result_summary":case"session_init":return"";default:return""}}).filter(Boolean).join(`
|
|
8
|
+
`):""}function Eo(r){r.contentBlocks&&(r.content=Yy(r.contentBlocks))}function Fy(r,e){if(r.type!==e.type)return!0;switch(e.type){case"text":return r.text!==e.text;case"tool_use":{const t=r;return t.name!==e.name||t.inputSummary!==e.inputSummary}case"tool_result":{const t=r;return t.content!==e.content||t.isError!==e.isError}default:return!1}}function Uy(r,e,t="info",n,s=Date.now,i=Math.random){return{id:`conflict-msg-${s()}-${i().toString(36).slice(2,7)}`,role:r,content:e,timestamp:s(),type:t,fileRef:n}}function Gy(r,e){return e===0?{message:`All ${r} file${r===1?"":"s"} resolved successfully. Click "Continue Rebase" to proceed.`,succeeded:!0}:{message:`Resolution complete: ${r} succeeded, ${e} failed. You can retry or abort.`,succeeded:!1}}function Hy(r,e){const t=[];for(let n=0;n<r.length;n+=e)t.push(r.slice(n,n+e));return t}function Ky(r,e){return r.filter(t=>!e.has(t.path))}function Jy(r){return`Detected ${r} conflicted file${r===1?"":"s"}. Enter optional guidance below and click "Resolve Conflicts Automatically" to start.`}function ek(r){return`Starting AI resolution for ${r} file${r===1?"":"s"} (parallel)...`}async function tk(r){return $fetch("/api/chat/preview",{method:"POST",body:r})}async function rk(r){return $fetch("/api/chat/preview",{method:"DELETE",body:r})}function nk(r,e){return r===e?{kind:"end-current",id:e}:r?{kind:"swap",endId:r,startId:e}:{kind:"start",id:e}}function sk(r){const e=new Map,t=r.setTimer??setTimeout,n=r.clearTimer??clearTimeout;function s(l){if(e.has(l))return;const c=t(()=>{e.delete(l),r.onFlush(l)},r.delayMs);e.set(l,c)}function i(l){const c=e.get(l);c&&(n(c),e.delete(l)),r.onFlush(l)}function o(l){const c=e.get(l);c&&(n(c),e.delete(l))}function a(){for(const l of e.values())n(l);e.clear()}return{schedule:s,flush:i,cancel:o,cancelAll:a,hasPending:l=>e.has(l),pendingCount:()=>e.size}}async function ik(r){return $fetch("/api/chat/finalize",{method:"POST",body:r})}async function ok(r){return $fetch("/api/chat/rebase",{method:"POST",body:r})}async function ak(r){return $fetch("/api/rebase/conflicts",{params:{worktreePath:r}})}async function lk(r){return $fetch("/api/rebase/resolve",{method:"PUT",body:r})}async function ck(r){const e=r.mode==="sync"?"/api/rebase/continue-sync":"/api/rebase/continue",{mode:t,...n}=r;return $fetch(e,{method:"POST",body:n})}async function Jh(r){return $fetch("/api/rebase/abort",{method:"POST",body:{worktreePath:r}})}async function uk(r){return $fetch("/api/rebase/ai-resolve",{method:"POST",body:r})}const mr=Qu("chat",()=>{const r=Q(!1),e=Q(F1),t=Q("ask"),n=Q(""),s=Q([]),i=Q([]),o=Q(null),a=Q("active"),l=Q(new Set),c=new Map,u=Q(!1),h=Q(0),m=sk({delayMs:1200,onFlush:k=>{const R=s.value.find(M=>M.id===k);R&&(R.updatedAt=new Date().toISOString(),jy(R))}}),g=Q(null),O=Q(null);let b=null;function x(k){return k?c.get(k)??null:null}function w(k){let R=c.get(k);return R||(R={session:null,pendingPermission:null,pendingPlanApproval:null,lastError:null,debugEvents:[]},c.set(k,R)),R}const S=H(()=>s.value.find(k=>k.id===o.value)||null),C=H(()=>S.value?.messages??[]),_=H(()=>(h.value,x(o.value)?.session??null)),I=H(()=>(h.value,x(o.value)?.pendingPermission??null)),V=H(()=>(h.value,x(o.value)?.pendingPlanApproval??null)),re=H(()=>(h.value,x(o.value)?.lastError??null)),oe=H(()=>(h.value,x(o.value)?.debugEvents??[])),Oe=H(()=>_.value?.status==="streaming"),Y=H(()=>S.value?.providerSessionId??""),L=H(()=>C.value.length>0),D=H(()=>C.value[C.value.length-1]||null);function j(k){return l.value.has(k)}const F=H(()=>o.value?l.value.has(o.value):!1),z=H(()=>s.value.length>0),X=H(()=>i.value.length>0),N=H(()=>s.value.length),be=H(()=>N.value>=zh),G=H(()=>s.value),le=H(()=>i.value),ue=H(()=>g.value&&s.value.find(k=>k.id===g.value)||null);function ce(k){return g.value===k}function de(k){a.value=k}async function Ce(k){if(!(!k?.previewBranch||!k.worktreePath))try{await Pv({previewBranch:k.previewBranch,worktreePath:k.worktreePath})}catch(R){console.warn("[chat] Failed to sync preview branch after worktree update",{conversationId:k.id,previewBranch:k.previewBranch,worktreePath:k.worktreePath,error:R instanceof Error?R.message:String(R)})}}async function Me(k){if(j(k))return{success:!1,error:"Cannot archive while this conversation is streaming"};if(s.value.findIndex(M=>M.id===k)===-1)return{success:!1,error:"Conversation not found"};try{const M=await $fetch(`/api/conversations/${k}/archive`,{method:"POST"});return M.success&&M.archived?(m.cancel(k),c.delete(k),s.value=Array.isArray(M.conversations)?M.conversations:s.value.filter(E=>E.id!==k),i.value=Array.isArray(M.archivedConversations)?M.archivedConversations:[M.archived,...i.value],kn(),g.value===k&&(g.value=null),o.value===k&&(o.value=s.value[0]?.id??null),typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{activeConversationId:o.value}}).catch(E=>{console.error("Failed to save active conversation:",E)}),{success:!0}):{success:!1,error:"Failed to archive conversation"}}catch(M){return{success:!1,error:M instanceof Error?M.message:"Failed to archive conversation"}}}async function qe(k,R){if(an().atLimit)return{success:!1,error:`Cannot restore. Active conversations reached ${Nh}.`};if(!i.value.some(E=>E.id===k))return{success:!1,error:"Archived conversation not found"};try{const E=await $fetch(`/api/conversations/archives/${k}/restore`,{method:"POST",body:{baseBranch:R}});return E.success&&E.conversation?(s.value=Array.isArray(E.conversations)?E.conversations:[E.conversation,...s.value],Array.isArray(E.archivedConversations)?i.value=E.archivedConversations:i.value=i.value.filter(ie=>ie.id!==k),a.value="active",wn(E.conversation.id),yn(),Dt(),{success:!0,conversationId:E.conversation.id}):{success:!1,error:"Failed to restore archived conversation"}}catch(E){return{success:!1,error:E instanceof Error?E.message:"Failed to restore archived conversation"}}}async function T(k){const R=i.value.findIndex(M=>M.id===k);if(R===-1)return{success:!1,error:"Archived conversation not found"};try{return await $fetch(`/api/conversations/archives/${k}`,{method:"DELETE"}),i.value.splice(R,1),kn(),{success:!0}}catch{return i.value.splice(R,1),Dt(),{success:!0}}}async function P(){if(!(typeof window>"u"))try{const k=await $fetch("/api/settings");if(k){if(typeof k.panelWidth=="number"){const E=k.panelWidth;E>=Wh&&E<=qh&&(e.value=E)}typeof k.isPanelOpen=="boolean"&&(r.value=k.isPanelOpen),typeof k.activeConversationId=="string"&&(o.value=k.activeConversationId);const{useSettingsStore:R}=await os(async()=>{const{useSettingsStore:E}=await import("./DvDpGQk1.js").then(ie=>ie.s);return{useSettingsStore:E}},__vite__mapDeps([0,1,2]),import.meta.url),M=R();await M.hydrate(),t.value=M.permissionMode}}catch(k){console.error("Failed to load chat settings:",k)}}function B(k){t.value=k,typeof window<"u"&&os(async()=>{const{useSettingsStore:R}=await import("./DvDpGQk1.js").then(M=>M.s);return{useSettingsStore:R}},__vite__mapDeps([0,1,2]),import.meta.url).then(({useSettingsStore:R})=>{R().setPermissionMode(k)})}function Z(k,R){const M=R??o.value;if(!M)return;const E=w(M);E.pendingPermission=k,h.value++}function ve(k){const R=k??o.value;if(!R)return;const M=c.get(R);M&&(M.pendingPermission=null,h.value++)}function Ae(k,R){const M=R??o.value;if(!M)return;const E=w(M);E.pendingPlanApproval=k,h.value++}function Qe(k){const R=k??o.value;if(!R)return;const M=c.get(R);M&&(M.pendingPlanApproval=null,h.value++)}function se(){r.value=!r.value,pe()}function ee(){r.value=!0,pe()}function q(){r.value=!1,pe()}function pe(){typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{isPanelOpen:r.value}}).catch(k=>{console.error("Failed to save panel state:",k)})}function Pe(k){const R=Math.max(Wh,Math.min(qh,k));e.value=R,typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{panelWidth:R}}).catch(M=>{console.error("Failed to save panel width:",M)})}function Ie(k){n.value=k}function xt(k,R){const M=R??o.value;if(!M)return;const E=s.value.find(ie=>ie.id===M);E&&(E.providerSessionId=k)}function qt(k,R){const M=s.value.find(E=>E.id===k);M&&(M.worktreeBranch=R,M.lastCommitTime=new Date().toISOString())}async function rr(k){const R=s.value.find(E=>E.id===k);if(!R?.worktreeBranch)return null;const M=R.worktreeBranch.trim();if(!M)return null;try{const ie=(await $fetch("/api/specs/features")).features.find(he=>he.id===M);return ie?(R.featureId!==ie.id&&(R.featureId=ie.id,R.updatedAt=new Date().toISOString(),Dt()),ie.id):null}catch(E){return console.warn("[chat] Failed to map branch to feature",{conversationId:k,branchName:M,error:E instanceof Error?E.message:String(E)}),null}}function nn(k,R,M){const E=s.value.find(ie=>ie.id===k);E&&(E.providerId=R,E.providerModelKey=M)}function Mr(k){const R=k??o.value;if(!R)return;const M=s.value.find(E=>E.id===R);M&&(M.providerSessionId="")}function Nn(k){return s.value.find(M=>M.id===k)?.providerSessionId??""}function sn(k){l.value.add(k)}function Wn(k){l.value.delete(k)}function gr(k,R){const M=R??o.value;if(!M)return;const E=s.value.find(ie=>ie.id===M);E&&E.messages.push(k)}function Er(k,R,M){const E={id:jh(),role:"user",content:k,attachments:M&&M.length>0?M:void 0,timestamp:new Date().toISOString()};return gr(E,R),E}function ae(k){const R={id:jh(),role:"assistant",content:"",timestamp:new Date().toISOString(),status:"streaming"};return gr(R,k),R}function we(k,R,M){const E=M??o.value;if(!E)return;const ie=s.value.find(ne=>ne.id===E);if(!ie)return;const he=ie.messages.findIndex(ne=>ne.id===k);he!==-1&&(ie.messages[he]={...ie.messages[he],...R})}function Be(k,R){const M=s.value.find(ie=>ie.id===R);if(!M)return;const E=M.messages.findIndex(ie=>ie.id===k);E!==-1&&(M.messages[E]={...M.messages[E],content:"",status:"streaming",contentBlocks:[]})}function Fe(k,R,M){const E=M??o.value;if(!E)return;const ie=s.value.find(ne=>ne.id===E);if(!ie)return;const he=ie.messages.findIndex(ne=>ne.id===k);he!==-1&&(ie.messages[he].content+=R)}function je(k,R,M){const E=M??o.value;if(!E)return;const ie=s.value.find(ne=>ne.id===E);if(!ie)return;const he=ie.messages.findIndex(ne=>ne.id===k);if(he!==-1){const ne=ie.messages[he],fe=ne.tools?[...ne.tools,R]:[R];ie.messages[he]={...ne,tools:fe}}}function $t(k,R,M,E){const ie=E??o.value;if(!ie)return;const he=s.value.find(fe=>fe.id===ie);if(!he)return;const ne=he.messages.findIndex(fe=>fe.id===k);if(ne!==-1){const fe=he.messages[ne];if(fe.tools){const He=fe.tools.findIndex(st=>st.id===R);if(He!==-1){const st=[...fe.tools];st[He]={...st[He],...M},he.messages[ne]={...fe,tools:st}}}}nr(ie,!1)}function ut(k,R){const M=R??o.value;if(!M)return;const E=s.value.find(he=>he.id===M);if(!E)return;const ie=E.messages.find(he=>he.id===k);ie&&!ie.contentBlocks&&(ie.contentBlocks=[])}function jt(k,R,M){const E=M??o.value;if(!E)return;const ie=s.value.find(ne=>ne.id===E);if(!ie)return;const he=ie.messages.find(ne=>ne.id===k);he&&(he.contentBlocks||(he.contentBlocks=[]),he.contentBlocks.push(R),Eo(he))}function It(k,R,M,E){const ie=E??o.value;if(!ie)return;const he=s.value.find(Vt=>Vt.id===ie);if(!he)return;const ne=he.messages.find(Vt=>Vt.id===k);if(!ne?.contentBlocks)return;const fe=ne.contentBlocks.findIndex(Vt=>Vt.id===R);if(fe===-1)return;const st={...ne.contentBlocks[fe]};M(st),ne.contentBlocks[fe]=st}function Or(k,R,M,E,ie){const he=E??o.value;if(!he)return;const ne=s.value.find(Ue=>Ue.id===he);if(!ne)return;const fe=ne.messages.find(Ue=>Ue.id===k);if(!fe?.contentBlocks)return;const He=fe.contentBlocks.findIndex(Ue=>Ue.id===R);if(He===-1)return;const st=fe.contentBlocks[He],Vt={...st};M(Vt),fe.contentBlocks[He]=Vt,ie?.syncContent!==!1&&Fy(st,Vt)&&Eo(fe),nr(he,!1)}function qn(k,R,M){const E=M??o.value;if(!E)return;const ie=s.value.find(ne=>ne.id===E);if(!ie)return;const he=ie.messages.find(ne=>ne.id===k);he&&(he.contentBlocks||(he.contentBlocks=[]),he.contentBlocks.push(R),Eo(he),nr(E,!1))}function ii(k,R,M){const E=M??o.value;if(!E)return null;const ie=s.value.find(ne=>ne.id===E);if(!ie)return null;const he=ie.messages.find(ne=>ne.id===k);return he?.contentBlocks?he.contentBlocks.find(ne=>ne.type==="tool_use"&&ne.toolUseId===R)??null:null}function oi(k,R,M,E,ie){const he=s.value.find(fe=>fe.id===ie);if(!he)return;const ne=he.messages.findIndex(fe=>fe.id===k);ne!==-1&&(he.messages[ne]={...he.messages[ne],content:M,contentBlocks:R,status:E},nr(ie,!0))}function Lr(k,R){const M=R??o.value;if(!M)return;const E=c.get(M);E?.session&&(E.session.status=k,h.value++)}function ai(k,R){const M=R??o.value;if(!M)return;const E=w(M);E.session={sessionId:k,cwd:n.value,status:"streaming",startedAt:new Date().toISOString()},E.lastError=null,h.value++}function li(k){const R=k??o.value;if(!R)return;const M=c.get(R);M?.session&&(M.session.status="idle",h.value++)}function ci(k,R){const M=R??o.value;if(!M)return;const E=w(M);E.session&&(E.session.status="error",E.session.error=k),E.lastError=k,h.value++}function ui(k,R){if(!u.value)return;const M=R??o.value;if(!M)return;const E=w(M),ie=(()=>{if(typeof k.payload=="string")return k.payload;try{return JSON.stringify(k.payload,null,2)}catch{return String(k.payload)}})(),he=8e3,ne=300,fe=ie.length>he?`${ie.slice(0,he)}
|
|
9
|
+
... (truncated)`:ie;E.debugEvents.push({id:`dbg-${Date.now()}-${Math.random().toString(36).slice(2,7)}`,timestamp:new Date().toISOString(),direction:k.direction,channel:k.channel,eventType:k.eventType||"unknown",payload:fe}),E.debugEvents.length>ne&&E.debugEvents.splice(0,E.debugEvents.length-ne),h.value++}function hi(k){u.value=k}function di(k){const R=k??o.value;if(!R)return;const M=c.get(R);M&&(M.debugEvents=[],h.value++)}function fi(){if(!o.value)return;const k=s.value.find(M=>M.id===o.value);k&&(k.messages=[]);const R=o.value;c.delete(R),h.value++}function mi(k){const R=k??o.value;if(!R)return;const M=c.get(R);M&&(M.lastError=null,M.session&&(M.session.error=void 0),h.value++)}async function pi(){const k=await Kh();if(s.value=k.conversations,i.value=k.archivedConversations,k.discardedArchives>0&&console.warn(`[chat] Skipped ${k.discardedArchives} corrupted archived conversation(s)`),yn(),kn(),!g.value){const R=s.value.find(M=>!!M.previewBranch&&!M.finalized);R&&(g.value=R.id)}if(o.value){const R=s.value.find(M=>M.id===o.value);R&&R.cwd?n.value=R.cwd:R||(o.value=null,r.value=!1)}}async function gi(){const k=await Kh(),R=new Map(s.value.map(ne=>[ne.id,ne])),M=new Set(k.conversations.map(ne=>ne.id));let E=0,ie=0,he=0;for(const ne of k.conversations){const fe=R.get(ne.id);if(!fe)s.value.push(ne),R.set(ne.id,ne),E++,console.log(`[chat] refresh: added new conversation ${ne.id} (source=${ne.source}, msgs=${ne.messages.length})`);else if(ne.source!=="user"&&(ne.messages.length>fe.messages.length||ne.updatedAt>(fe.updatedAt||""))){const He=s.value.findIndex(st=>st.id===ne.id);He!==-1&&(s.value.splice(He,1,ne),console.log(`[chat] refresh: updated conversation ${ne.id} (msgs: ${fe.messages.length} → ${ne.messages.length}, updatedAt: ${fe.updatedAt} → ${ne.updatedAt})`)),ie++}else fe&&ne.messages.length!==fe.messages.length&&console.log(`[chat] refresh: skipped update for ${ne.id} (source=${ne.source}, server msgs=${ne.messages.length}, local msgs=${fe.messages.length})`)}for(let ne=s.value.length-1;ne>=0;ne--){const fe=s.value[ne];!M.has(fe.id)&&!l.value.has(fe.id)&&(console.log(`[chat] refresh: removed conversation ${fe.id} (no longer on server)`),o.value===fe.id&&(o.value=null),s.value.splice(ne,1),he++)}return k.archivedConversations&&(i.value=k.archivedConversations),(E>0||ie>0||he>0)&&yn(),console.log(`[chat] refreshServerConversations: loaded=${k.conversations.length}, added=${E}, updated=${ie}, removed=${he}`),E+ie+he}function Dt(){qy(s.value,i.value)}function nr(k,R=!1){s.value.find(E=>E.id===k)&&(R?m.flush(k):m.schedule(k))}function gs(k=!1){o.value&&nr(o.value,k)}function yn(){s.value.sort((k,R)=>new Date(R.createdAt).getTime()-new Date(k.createdAt).getTime())}function kn(){i.value.sort((k,R)=>new Date(R.archivedAt).getTime()-new Date(k.archivedAt).getTime())}async function Os(k){if(an().atLimit)return"";const M=U1();let E=null;if(k?.featureId){const fe=await Fh({conversationId:M,featureId:k.featureId,baseBranch:k.baseBranch});if(!fe.success&&fe.error)throw new Error(fe.error);E=fe}let ie=null;if(typeof window<"u")try{const{useSettingsStore:fe}=await os(async()=>{const{useSettingsStore:st}=await import("./DvDpGQk1.js").then(Vt=>Vt.s);return{useSettingsStore:st}},__vite__mapDeps([0,1,2]),import.meta.url),He=fe();await He.hydrate(),ie=He.providerSelection}catch(fe){console.warn("[chat] Failed to load provider selection for new conversation",fe)}const he=ie||{providerId:Wm,modelKey:Nm},ne={id:M,title:"New Conversation",messages:[],createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),cwd:n.value||process.cwd?.()||"",source:k?.featureId?"cascade":"user",featureId:k?.featureId,providerId:he.providerId,providerModelKey:he.modelKey};if(E?.success&&E.worktreePath&&E.branch&&(ne.worktreePath=E.worktreePath,ne.worktreeBranch=E.branch,ne.cwd=E.worktreePath,ne.hasWorktree=!0,E.baseBranch&&(ne.baseBranch=E.baseBranch)),s.value.unshift(ne),o.value=M,typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{activeConversationId:M}}).catch(fe=>{console.error("Failed to save active conversation:",fe)}),!k?.featureId)try{const fe=await Fh({conversationId:M,baseBranch:k?.baseBranch});if(fe.success&&fe.worktreePath&&fe.branch){const He=s.value.find(st=>st.id===M);He&&(He.worktreePath=fe.worktreePath,He.worktreeBranch=fe.branch,He.cwd=fe.worktreePath,He.hasWorktree=!0,fe.baseBranch&&(He.baseBranch=fe.baseBranch))}}catch(fe){console.warn("[chat] Failed to create worktree for conversation",M,fe)}return nr(M,!0),M}function wn(k){const R=s.value.find(M=>M.id===k);R&&(o.value=k,r.value=!0,R.cwd&&(n.value=R.cwd),!R.featureId&&R.worktreeBranch&&rr(k),typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{activeConversationId:k,isPanelOpen:!0}}).catch(M=>{console.error("Failed to save active conversation:",M)}))}async function on(k){const R=s.value.findIndex(E=>E.id===k);if(R===-1)return;const M=s.value[R];if(g.value===k&&(g.value=null),M.hasWorktree&&M.worktreePath&&M.worktreeBranch)try{await Qv({worktreePath:M.worktreePath,branch:M.worktreeBranch})}catch(E){console.warn("[chat] Failed to clean up worktree for conversation",k,E)}s.value.splice(R,1),c.delete(k),m.cancel(k),o.value===k&&(o.value=null,typeof window<"u"&&$fetch("/api/settings",{method:"POST",body:{activeConversationId:null}}).catch(E=>{console.error("Failed to clear active conversation:",E)})),Dt()}async function Oi(k,R,M){const E=s.value.find(he=>he.id===k);if(!E)return{success:!1,error:"Conversation not found"};if(!E.hasWorktree)return{success:!1,error:"No worktree associated with this conversation"};const ie=M||E.baseBranch;try{const he=await ik({conversationId:k,commitMessage:R,baseBranch:ie,worktreePath:E.worktreePath,worktreeBranch:E.worktreeBranch,previewBranch:E.previewBranch});return he.success?(g.value===k&&(g.value=null),E.worktreePath=void 0,E.worktreeBranch=void 0,E.hasWorktree=!1,E.baseBranch=void 0,E.previewBranch=void 0,E.finalized=!0,E.updatedAt=new Date().toISOString(),Dt()):he.rebaseInProgress&&await Sn(k,E.worktreePath,ie||"main",R),he}catch(he){return{success:!1,error:he instanceof Error?he.message:String(he)}}}async function vs(k,R){const M=s.value.find(ie=>ie.id===k);if(!M)return{success:!1,error:"Conversation not found"};if(!M.hasWorktree)return{success:!1,error:"No worktree associated with this conversation"};const E=R||M.baseBranch;try{const ie=await ok({conversationId:k,baseBranch:E,worktreePath:M.worktreePath});return ie.rebaseInProgress?await Sn(k,M.worktreePath,E||"main","","sync"):ie.success&&(await Ce(M),M.baseBranch=E,Dt()),ie}catch(ie){return{success:!1,error:ie instanceof Error?ie.message:String(ie)}}}async function Sn(k,R,M,E,ie="finalize"){O.value={conversationId:k,worktreePath:R,baseBranch:M,commitMessage:E,files:[],resolvedFiles:new Set,loading:!0,error:null,mode:ie,chatMessages:[],userGuidance:"",lifecycleState:"detected"};try{const he=await ak(R);O.value&&(O.value.files=he.files,O.value.loading=!1,pt("system",Jy(he.files.length),"info"))}catch(he){O.value&&(O.value.error=he instanceof Error?he.message:String(he),O.value.loading=!1)}}function pt(k,R,M="info",E){O.value&&O.value.chatMessages.push(Uy(k,R,M,E))}async function vr(k,R){if(!O.value)return!1;try{const M=await lk({worktreePath:O.value.worktreePath,filePath:k,content:R});return M.success&&O.value&&O.value.resolvedFiles.add(k),M.success}catch{return!1}}async function bs(){if(!O.value)return{success:!1,error:"No conflict resolution in progress"};const{conversationId:k,commitMessage:R,baseBranch:M,mode:E,worktreePath:ie}=O.value;try{const he=s.value.find(fe=>fe.id===k),ne=await ck({mode:E,conversationId:k,commitMessage:R,baseBranch:M,worktreePath:ie,worktreeBranch:he?.worktreeBranch,previewBranch:he?.previewBranch});if(ne.success){if(E==="finalize"){g.value===k&&(g.value=null);const fe=s.value.find(He=>He.id===k);fe&&(fe.worktreePath=void 0,fe.worktreeBranch=void 0,fe.hasWorktree=!1,fe.baseBranch=void 0,fe.previewBranch=void 0,fe.finalized=!0,fe.updatedAt=new Date().toISOString(),Dt())}else if(E==="sync"){const fe=s.value.find(He=>He.id===k);fe&&(await Ce(fe),fe.baseBranch=M,fe.updatedAt=new Date().toISOString(),Dt())}O.value=null}else ne.rebaseInProgress&&await Sn(k,ie,M,R,E);return ne}catch(he){return{success:!1,error:he instanceof Error?he.message:String(he)}}}async function vi(){if(!O.value)return!1;try{const k=await Jh(O.value.worktreePath);return O.value=null,k.success}catch{return O.value=null,!1}}async function $n(k){if(!O.value)return!1;const R=O.value.files.find(M=>M.path===k);if(!R)return!1;try{const M=await uk({worktreePath:O.value.worktreePath,filePath:k,conflictContent:R.content,userGuidance:O.value.userGuidance||void 0});if(M.success&&M.resolvedContent!==void 0){R.content=M.resolvedContent;const E=await vr(k,M.resolvedContent);return E?pt("assistant",`Resolved: ${k}`,"success",k):pt("assistant",`Failed to write resolved content for ${k}`,"error",k),E}return pt("assistant",`Failed to resolve ${k}: ${M.error||"Unknown error"}`,"error",k),!1}catch(M){const E=M instanceof Error?M.message:String(M);return pt("assistant",`Error resolving ${k}: ${E}`,"error",k),!1}}async function bi(){if(!O.value)return;const k=Ky(O.value.files,O.value.resolvedFiles);if(k.length===0){pt("system","All files are already resolved.","info");return}b=new AbortController;const R=b.signal;O.value.lifecycleState="resolving";const M=O.value.userGuidance;M&&pt("user",M),pt("system",ek(k.length),"info");let E=0,ie=0;const he=Hy(k,3);for(const fe of he){if(!O.value||R.aborted)break;for(const st of fe)pt("assistant",`Resolving: ${st.path}...`,"progress",st.path);const He=await Promise.all(fe.map(st=>$n(st.path)));for(const st of He)st?E++:ie++}if(b=null,!O.value||R.aborted)return;const ne=Gy(E,ie);O.value.lifecycleState=ne.succeeded?"resolved":"failed",pt("system",ne.message,"summary")}async function xs(){if(!O.value)return;b&&(b.abort(),b=null);const{conversationId:k,worktreePath:R,baseBranch:M,commitMessage:E,mode:ie}=O.value;pt("system","Resolution cancelled. Resetting conflict state...","info");try{await Jh(R)}catch{}O.value=null,pt("system","Conflict resolution aborted and reset.","info")}async function br(k){const R=s.value.find(M=>M.id===k);if(!R)return{success:!1,error:"Conversation not found"};if(!R.hasWorktree||!R.worktreePath||!R.baseBranch)return{success:!1,error:"No worktree to preview"};try{const M=await tk({conversationId:k,worktreePath:R.worktreePath,baseBranch:R.baseBranch});return M.success&&M.previewBranch&&(R.previewBranch=M.previewBranch,g.value=k,R.updatedAt=new Date().toISOString(),Dt()),{success:M.success,error:M.error}}catch(M){return{success:!1,error:M instanceof Error?M.message:String(M)}}}async function sr(k){const R=s.value.find(M=>M.id===k);if(!R)return{success:!1,error:"Conversation not found"};if(!R.previewBranch||!R.baseBranch)return g.value=null,{success:!1,error:"No active preview"};try{const M=await rk({previewBranch:R.previewBranch,baseBranch:R.baseBranch});return M.success&&(R.previewBranch=void 0,g.value=null,R.updatedAt=new Date().toISOString(),Dt()),{success:M.success,error:M.error}}catch(M){return{success:!1,error:M instanceof Error?M.message:String(M)}}}async function xi(k){const R=nk(g.value,k);if(R.kind==="end-current")return await sr(R.id);if(R.kind==="swap"){const M=await sr(R.endId);return M.success?await br(R.startId):{success:!1,error:`Failed to end previous preview: ${M.error}`}}return await br(R.id)}function yi(k){const R=k.trim();if(!R)return null;const M=s.value.filter(E=>E.featureId===R?!0:E.worktreeBranch?.trim()===R);return M.length===0?null:M.sort((E,ie)=>new Date(ie.updatedAt).getTime()-new Date(E.updatedAt).getTime())[0]||null}function Xr(k,R){const M=s.value.find(E=>E.id===k);M&&(M.title=R.trim(),M.updatedAt=new Date().toISOString(),yn(),Dt())}function ki(k){const R=o.value;if(!R)return;const M=s.value.find(ie=>ie.id===R);if(!M||M.title!=="New Conversation")return;const E=M.messages.find(ie=>ie.role==="user");E&&(E.content.trim().length>0?M.title=G1(E.content):E.attachments&&E.attachments.length>0&&(M.title=E.attachments.length===1?"[Image] New Conversation":`[${E.attachments.length} Images] New Conversation`))}function an(){const k=s.value.length;return{atLimit:k>=Nh,nearLimit:k>=zh,count:k}}async function wi(k,R){o.value||await Os();const M=Er(k,void 0,R);return ki(),gs(!0),M}function ys(k,R,M){const E=M??o.value;Fe(k,R,E??void 0),E&&nr(E,!1)}function Re(k,R){const M=R??o.value;we(k,{status:"complete"},M??void 0),M&&nr(M,!0)}return{messages:C,session:_,isPanelOpen:r,panelWidth:Te(e),permissionMode:Te(t),pendingPermission:I,pendingPlanApproval:V,cwd:Te(n),lastError:re,debugEvents:oe,debugStreamEnabled:Te(u),providerSessionId:Y,conversations:Te(s),archivedConversations:Te(i),activeConversationId:Te(o),conversationViewMode:Te(a),conflictState:Te(O),previewingConversationId:Te(g),isStreaming:Oe,hasMessages:L,lastMessage:D,isActiveConversationStreaming:F,hasConversations:z,hasArchivedConversations:X,activeConversation:S,conversationCount:N,isNearStorageLimit:be,sortedConversations:G,sortedArchivedConversations:le,previewingConversation:ue,streamingConversations:Te(l),initialize:P,togglePanel:se,openPanel:ee,closePanel:q,setPanelWidth:Pe,setPermissionMode:B,setPendingPermission:Z,clearPendingPermission:ve,setPendingPlanApproval:Ae,clearPendingPlanApproval:Qe,setCwd:Ie,setProviderSessionId:xt,clearProviderSession:Mr,getProviderSessionId:Nn,updateWorktreeBranch:qt,setConversationProviderSelection:nn,startConversationStreaming:sn,endConversationStreaming:Wn,isConversationStreaming:j,addMessage:gr,addUserMessage:Er,addAssistantMessage:ae,updateMessage:we,resetMessageForReplay:Be,appendToMessage:Fe,addToolToMessage:je,updateToolInMessage:$t,initContentBlocks:ut,appendContentBlock:jt,appendContentBlockWithSave:qn,updateBlockById:It,updateBlockWithSave:Or,findToolUseBlock:ii,batchSetMessageBlocks:oi,syncContentFromBlocks:Eo,setSessionStatus:Lr,startSession:ai,endSession:li,setSessionError:ci,setDebugStreamEnabled:hi,pushDebugEvent:ui,clearDebugEvents:di,clearMessages:fi,clearError:mi,loadConversations:pi,refreshServerConversations:gi,saveAllConversations:Dt,saveCurrentConversation:gs,saveConversation:nr,createConversation:Os,selectConversation:wn,deleteConversation:on,archiveConversation:Me,restoreArchivedConversation:qe,deleteArchivedConversation:T,setConversationViewMode:de,findConversationByFeature:yi,syncConversationFeatureFromBranch:rr,renameConversation:Xr,checkStorageLimits:an,finalizeConversation:Oi,rebaseConversation:vs,resolveConflictFile:vr,continueRebase:bs,abortRebase:vi,aiResolveConflictFile:$n,aiResolveAllConflicts:bi,addConflictChatMessage:pt,cancelConflictResolution:xs,previewConversation:br,unpreviewConversation:sr,togglePreview:xi,isConversationPreviewing:ce,addUserMessageWithConversation:wi,appendToMessageWithSave:ys,completeMessageWithSave:Re}});function hk(r={}){const e=dl(),t=300,n=5e3,s=250;let i=null,o=null,a=null,l=null,c=null,u=!1,h=!1;const f=Q(!1),m=Q(!1);let g=r;function O(L){g=L}async function b(){const L=g.getScrollPosition?.()??0,D=await e.checkAndRefresh();return D&&g.setScrollPosition&&(await Wt(),g.setScrollPosition(L)),D}function x(){return f.value||!!e.activeContextMenu||!!e.activeDialog}async function w(){if(x()){m.value=!0;return}C()}async function S(){if(u){h=!0;return}u=!0;try{await b()}finally{u=!1,h&&(h=!1,C())}}function C(){o&&clearTimeout(o),o=setTimeout(()=>{o=null,S()},s)}function _(L){if(typeof window>"u")return;if(a&&a.readyState===WebSocket.OPEN){a.send(JSON.stringify({type:"watch",workingDirectory:L}));return}l&&(clearTimeout(l),l=null);const j=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/git-watcher-ws`;a=new WebSocket(j),a.onopen=()=>{a.send(JSON.stringify({type:"watch",workingDirectory:L}))},a.onmessage=F=>{try{JSON.parse(F.data).type==="git_changed"&&w()}catch{}},a.onclose=()=>{a=null,e.isPollingActive&&c&&(l=setTimeout(()=>{c&&_(c)},n))},a.onerror=()=>{}}function I(){l&&(clearTimeout(l),l=null),a&&(a.close(),a=null)}function V(L){L&&(c=L),!e.isPollingActive&&(e.startPolling(),c&&_(c))}function re(){I(),e.stopPolling()}function oe(){f.value=!0,i&&(clearTimeout(i),i=null)}function Oe(){i&&clearTimeout(i),i=setTimeout(async()=>{f.value=!1,m.value&&(m.value=!1,C())},t)}function Y(){re(),i&&(clearTimeout(i),i=null),o&&(clearTimeout(o),o=null),u=!1,h=!1,c=null}return Ve(()=>[e.activeContextMenu,e.activeDialog],()=>{!e.activeContextMenu&&!e.activeDialog&&m.value&&!f.value&&(m.value=!1,C())}),{isUserInteracting:Te(f),isDeferredRefresh:Te(m),startPolling:V,stopPolling:re,startInteraction:oe,endInteraction:Oe,cleanup:Y,setScrollCallbacks:O}}function dk(r){function e(s){if((s.ctrlKey||s.metaKey)&&s.key==="h"){s.preventDefault(),r.onScrollToHead();return}if(s.key==="Escape"){s.preventDefault(),r.onEscape();return}}function t(){document.addEventListener("keydown",e)}function n(){document.removeEventListener("keydown",e)}return{start:t,stop:n}}function fk(r){const e=Q({visible:!1,branchName:"",loading:!1,error:null});async function t(){e.value.loading=!0,e.value.error=null;const G=await r.checkoutBranch(e.value.branchName);e.value.loading=!1,G.success?e.value.visible=!1:e.value.error=G.error||"Unknown error"}const n=Q({visible:!1,fromCommit:"",loading:!1,error:null});async function s(G){n.value.loading=!0,n.value.error=null;const le=await r.createBranch(G.name,n.value.fromCommit);n.value.loading=!1,le.success?(G.checkout&&await r.checkoutBranch(G.name),n.value.visible=!1):n.value.error=le.error||"Unknown error"}const i=Q({visible:!1,branchName:"",isLocal:!0,force:!1,loading:!1,error:null});async function o(G){i.value.loading=!0,i.value.error=null;const{branchName:le,isLocal:ue}=i.value,ce=G?.force??i.value.force,de=ue?await r.deleteLocalBranch(le,ce):await r.deleteRemoteBranch(le);i.value.loading=!1,de.success?i.value.visible=!1:i.value.error=de.error||"Unknown error"}const a=Q({visible:!1,branchName:"",newName:"",loading:!1,error:null});async function l(){if(!a.value.newName.trim()){a.value.error="Branch name is required";return}a.value.loading=!0,a.value.error=null;const G=await r.renameBranch(a.value.branchName,a.value.newName.trim());a.value.loading=!1,G.success?a.value.visible=!1:a.value.error=G.error||"Unknown error"}const c=Q({visible:!1,branchName:"",loading:!1,error:null});async function u(G){c.value.loading=!0,c.value.error=null;const le=await r.mergeBranch(c.value.branchName,G);c.value.loading=!1,le.success?c.value.visible=!1:c.value.error=le.error||"Unknown error"}const h=Q({visible:!1,branchName:"",loading:!1,error:null});async function f(){h.value.loading=!0,h.value.error=null;const G=await r.rebaseBranch(h.value.branchName);h.value.loading=!1,G.success?h.value.visible=!1:h.value.error=G.error||"Unknown error"}const m=Q({visible:!1,branchName:"",loading:!1,error:null});async function g(G){m.value.loading=!0,m.value.error=null;const le=await r.pushBranch(m.value.branchName,G.remote,G.force,G.forceWithLease);m.value.loading=!1,le.success?m.value.visible=!1:m.value.error=le.error||"Unknown error"}const O=Q({visible:!1,branchName:"",loading:!1,error:null});async function b(G){O.value.loading=!0,O.value.error=null;const le=await r.pullBranch(O.value.branchName,G.remote,G.noFastForward,G.squash);O.value.loading=!1,le.success?O.value.visible=!1:O.value.error=le.error||"Unknown error"}const x=Q({visible:!1,commitHash:"",commitMessage:"",loading:!1,error:null});async function w(G){x.value.loading=!0,x.value.error=null;const le=await r.cherryPickCommit(x.value.commitHash,G.recordOrigin,G.noCommit);x.value.loading=!1,le.success?x.value.visible=!1:x.value.error=le.error||"Unknown error"}const S=Q({visible:!1,commitHash:"",commitMessage:"",loading:!1,error:null});async function C(G){S.value.loading=!0,S.value.error=null;const le=await r.resetToCommit(S.value.commitHash,G.mode);S.value.loading=!1,le.success?S.value.visible=!1:S.value.error=le.error||"Unknown error"}const _=Q({visible:!1,commitHash:"",loading:!1,error:null});async function I(G){_.value.loading=!0,_.value.error=null;const le=await r.createTag(G.name,_.value.commitHash,G.annotated,G.message,G.pushToRemote);_.value.loading=!1,le.success?_.value.visible=!1:_.value.error=le.error||"Unknown error"}const V=Q({visible:!1,tagName:"",loading:!1,error:null});async function re(G){V.value.loading=!0,V.value.error=null;const le=await r.deleteTag(V.value.tagName,G.deleteFromRemote?G.remote||"origin":void 0);V.value.loading=!1,le.success?V.value.visible=!1:V.value.error=le.error||"Unknown error"}const oe=Q({visible:!1,tagName:"",loading:!1,tagDetail:null}),Oe=Q({visible:!1,loading:!1,error:null});async function Y(G){Oe.value.loading=!0,Oe.value.error=null;const le=await r.stashChanges(G.message,G.includeUntracked);Oe.value.loading=!1,le.success?Oe.value.visible=!1:Oe.value.error=le.error||"Unknown error"}const L=Q({visible:!1,stashIndex:0,loading:!1,error:null}),D=Q("");async function j(G){L.value.loading=!0,L.value.error=null;const le=await r.stashBranch(L.value.stashIndex,G);L.value.loading=!1,le.success?L.value.visible=!1:L.value.error=le.error||"Unknown error"}const F=Q({visible:!1,loading:!1,error:null});async function z(G){F.value.loading=!0,F.value.error=null;const le=await r.resetWorking(G.mode);F.value.loading=!1,le.success?F.value.visible=!1:F.value.error=le.error||"Unknown error"}const X=Q({visible:!1,loading:!1,error:null});async function N(){X.value.loading=!0,X.value.error=null;const G=await r.cleanUntracked();X.value.loading=!1,G.success?X.value.visible=!1:X.value.error=G.error||"Unknown error"}const be=H(()=>e.value.visible||n.value.visible||i.value.visible||a.value.visible||c.value.visible||h.value.visible||m.value.visible||O.value.visible||x.value.visible||S.value.visible||_.value.visible||V.value.visible||oe.value.visible||Oe.value.visible||L.value.visible||F.value.visible||X.value.visible);return{checkoutDialog:e,confirmCheckout:t,createBranchDialog:n,confirmCreateBranch:s,deleteBranchDialog:i,confirmDeleteBranch:o,renameDialog:a,confirmRenameBranch:l,mergeDialog:c,confirmMerge:u,rebaseDialog:h,confirmRebase:f,pushDialog:m,confirmPush:g,pullDialog:O,confirmPull:b,cherryPickDialog:x,confirmCherryPick:w,resetDialog:S,confirmReset:C,tagCreateDialog:_,confirmTagCreate:I,tagDeleteDialog:V,confirmTagDelete:re,tagDetailDialog:oe,stashDialog:Oe,confirmStash:Y,stashBranchDialog:L,stashBranchInput:D,confirmStashBranch:j,resetWorkingDialog:F,confirmResetWorking:z,cleanUntrackedDialog:X,confirmCleanUntracked:N,isAnyDialogOpen:be}}function mk(r,e){const t=Q({visible:!1,x:0,y:0});function n(q,pe){t.value={visible:!0,x:q,y:pe},setTimeout(()=>{t.value.visible=!1},1500)}const s=Q({visible:!1,branch:"",x:0,y:0,isCurrentBranch:!1,isLocal:!0,commitHash:""});function i(q){s.value={visible:!0,...q},r.setActiveContextMenu({type:"branch",props:q,position:{x:q.x,y:q.y}})}function o(){s.value.visible=!1,r.clearActiveContextMenu()}function a(){o(),e.checkoutDialog.value={visible:!0,branchName:s.value.branch,loading:!1,error:null}}function l(){const q=s.value.branch;o(),e.renameDialog.value={visible:!0,branchName:q,newName:q,loading:!1,error:null}}function c(){const{branch:q,isLocal:pe}=s.value;o(),e.deleteBranchDialog.value={visible:!0,branchName:q,isLocal:pe,force:!1,loading:!1,error:null}}function u(){const q=s.value.branch;o(),e.mergeDialog.value={visible:!0,branchName:q,loading:!1,error:null}}function h(){const q=s.value.branch;o(),e.rebaseDialog.value={visible:!0,branchName:q,loading:!1,error:null}}function f(){const q=s.value.branch;o(),e.pushDialog.value={visible:!0,branchName:q,loading:!1,error:null}}function m(){const q=s.value.branch;o(),e.pullDialog.value={visible:!0,branchName:q,loading:!1,error:null}}async function g(){const q=s.value.branch;o(),await r.fetchBranch(q)}async function O(){const q=s.value.branch;o(),await r.copyToClipboard(q),n(s.value.x,s.value.y)}function b(){o(),e.createBranchDialog.value={visible:!0,fromCommit:s.value.commitHash,loading:!1,error:null}}const x=Q({visible:!1,commit:null,x:0,y:0});function w(q){x.value={visible:!0,commit:q.commit,x:q.x,y:q.y},r.setActiveContextMenu({type:"commit",props:q,position:{x:q.x,y:q.y}})}function S(){x.value.visible=!1,r.clearActiveContextMenu()}function C(q){const pe=x.value.commit;if(!pe)return!1;S();const Pe=q(pe);return Pe&&typeof Pe.then=="function"?Pe.then(()=>!0):!0}function _(){C(q=>{e.tagCreateDialog.value={visible:!0,commitHash:q.hash,loading:!1,error:null}})}function I(){C(q=>{e.createBranchDialog.value={visible:!0,fromCommit:q.hash,loading:!1,error:null}})}function V(){C(q=>{e.checkoutDialog.value={visible:!0,branchName:q.hash,loading:!1,error:null}})}function re(){C(q=>{e.cherryPickDialog.value={visible:!0,commitHash:q.hash,commitMessage:q.message,loading:!1,error:null}})}async function oe(){await C(q=>r.revertCommit(q.hash))}function Oe(){C(q=>{e.mergeDialog.value={visible:!0,branchName:q.shortHash,loading:!1,error:null}})}function Y(){C(q=>{e.resetDialog.value={visible:!0,commitHash:q.hash,commitMessage:q.message,loading:!1,error:null}})}async function L(){const{x:q,y:pe}=x.value;await C(Ie=>r.copyToClipboard(Ie.hash))&&n(q,pe)}async function D(){await C(q=>r.copyCommitSubject(q))}const j=Q({visible:!1,tag:"",x:0,y:0,commitHash:""});function F(q){j.value={visible:!0,...q},r.setActiveContextMenu({type:"tag",props:q,position:{x:q.x,y:q.y}})}function z(){j.value.visible=!1,r.clearActiveContextMenu()}async function X(){const q=j.value.tag;z(),e.tagDetailDialog.value={visible:!0,tagName:q,loading:!0,tagDetail:null};const pe=await r.getTagDetail(q);e.tagDetailDialog.value.loading=!1,pe.success&&pe.data&&(e.tagDetailDialog.value.tagDetail=pe.data)}function N(){const q=j.value.tag;z(),e.tagDeleteDialog.value={visible:!0,tagName:q,loading:!1,error:null}}async function be(){const q=j.value.tag;z(),await r.pushTag(q)}async function G(){const q=j.value.tag;z(),await r.copyToClipboard(q),n(j.value.x,j.value.y)}const le=Q({visible:!1,x:0,y:0});function ue(q){le.value={visible:!0,...q},r.setActiveContextMenu({type:"uncommitted",props:q,position:{x:q.x,y:q.y}})}function ce(){le.value.visible=!1,r.clearActiveContextMenu()}function de(){ce(),e.stashDialog.value={visible:!0,loading:!1,error:null}}function Ce(){ce(),e.resetWorkingDialog.value={visible:!0,loading:!1,error:null}}function Me(){ce(),e.cleanUntrackedDialog.value={visible:!0,loading:!1,error:null}}const qe=Q({visible:!1,stash:null,x:0,y:0});function T(q){qe.value={visible:!0,stash:q.stash,x:q.x,y:q.y},r.setActiveContextMenu({type:"stash",props:q,position:{x:q.x,y:q.y}})}function P(){qe.value.visible=!1,r.clearActiveContextMenu()}function B(q){const pe=qe.value.stash;if(!pe)return!1;P();const Pe=q(pe);return Pe&&typeof Pe.then=="function"?Pe.then(()=>!0):!0}async function Z(){await B(q=>r.applyStash(q.index))}async function ve(){await B(q=>r.popStash(q.index))}async function Ae(){await B(q=>r.dropStash(q.index))}function Qe(){B(q=>{e.stashBranchDialog.value={visible:!0,stashIndex:q.index,loading:!1,error:null}})}async function se(){const{x:q,y:pe}=qe.value;await B(Ie=>r.copyToClipboard(`stash@{${Ie.index}}`))&&n(q,pe)}async function ee(){const{x:q,y:pe}=qe.value;await B(Ie=>r.copyToClipboard(Ie.hash))&&n(q,pe)}return{copyFeedback:t,showCopyFeedback:n,branchMenu:s,handleBranchContextMenu:i,closeBranchMenu:o,handleBranchCheckout:a,handleBranchRename:l,handleBranchDelete:c,handleBranchMerge:u,handleBranchRebase:h,handleBranchPush:f,handleBranchPull:m,handleBranchFetch:g,handleBranchCopyName:O,handleBranchCreateBranch:b,commitMenu:x,handleCommitContextMenu:w,closeCommitMenu:S,handleCommitAddTag:_,handleCommitCreateBranch:I,handleCommitCheckout:V,handleCommitCherryPick:re,handleCommitRevert:oe,handleCommitMergeInto:Oe,handleCommitReset:Y,handleCommitCopyHash:L,handleCommitCopySubject:D,tagMenu:j,handleTagContextMenu:F,closeTagMenu:z,handleTagViewDetails:X,handleTagDelete:N,handleTagPush:be,handleTagCopyName:G,uncommittedMenu:le,handleUncommittedContextMenu:ue,closeUncommittedMenu:ce,handleUncommittedStash:de,handleUncommittedReset:Ce,handleUncommittedClean:Me,stashMenu:qe,handleStashContextMenu:T,closeStashMenu:P,handleStashApply:Z,handleStashPop:ve,handleStashDrop:Ae,handleStashCreateBranch:Qe,handleStashCopyName:se,handleStashCopyHash:ee}}const pk={class:"w-full max-w-md mx-4 bg-retro-dark border border-retro-border rounded-lg shadow-xl"},gk={class:"flex items-center justify-between px-4 py-3 border-b border-retro-border"},Ok={class:"text-sm font-mono text-retro-text"},vk={class:"p-4"},bk={key:0,class:"mb-3 p-2 text-xs font-mono text-retro-red bg-retro-red/10 border border-retro-red/30 rounded"},xk={class:"flex justify-end gap-2 px-4 py-3 border-t border-retro-border"},yk=["disabled"],kk=["disabled"],Rt=Xe({__name:"GitDialog",props:{title:{},visible:{type:Boolean},loading:{type:Boolean,default:!1},error:{default:null},confirmLabel:{default:"Confirm"},confirmDanger:{type:Boolean,default:!1},cancelLabel:{default:"Cancel"}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e;function s(i){i.key==="Escape"&&n("close"),i.key==="Enter"&&!t.loading&&(i.preventDefault(),n("confirm"))}return Ve(()=>t.visible,i=>{i?document.addEventListener("keydown",s):document.removeEventListener("keydown",s)}),kt(()=>{document.removeEventListener("keydown",s)}),(i,o)=>(v(),ge(Cr,{to:"body"},[K(mn,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:at(()=>[r.visible?(v(),y("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-sm",role:"dialog","aria-modal":"true",onClick:o[3]||(o[3]=xr(a=>n("close"),["self"]))},[d("div",pk,[d("div",gk,[d("h3",Ok,A(r.title),1),d("button",{type:"button",class:"p-1 rounded text-retro-muted hover:text-retro-text hover:bg-retro-panel transition-colors",title:"Close",onClick:o[0]||(o[0]=a=>n("close"))},[K(p(wt),{class:"h-4 w-4"})])]),d("div",vk,[r.error?(v(),y("div",bk,A(r.error),1)):U("",!0),Im(i.$slots,"default")]),d("div",xk,[d("button",{type:"button",class:"px-3 py-1.5 text-xs font-mono text-retro-muted hover:text-retro-text bg-retro-panel hover:bg-retro-border rounded transition-colors",disabled:r.loading,onClick:o[1]||(o[1]=a=>n("close"))},A(r.cancelLabel),9,yk),d("button",{type:"button",class:_e(["px-3 py-1.5 text-xs font-mono rounded transition-colors disabled:opacity-50 disabled:cursor-not-allowed",[r.confirmDanger?"text-retro-red bg-retro-red/10 border border-retro-red/30 hover:bg-retro-red/20":"text-retro-black bg-retro-cyan hover:bg-retro-cyan/80"]]),disabled:r.loading,onClick:o[2]||(o[2]=a=>n("confirm"))},A(r.loading?"Loading...":r.confirmLabel),11,kk)])])])):U("",!0)]),_:3})]))}}),wk={class:"text-retro-text text-sm font-mono mb-4"},Sk={class:"text-retro-cyan"},$k={class:"space-y-3"},Ck={class:"flex items-center gap-2 cursor-pointer"},Qk={class:"flex items-center gap-2 cursor-pointer"},Pk={class:"flex items-center gap-2 cursor-pointer"},Tk=Xe({__name:"MergeDialog",props:{visible:{type:Boolean},branchName:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=Q(!1),i=Q(!1),o=Q(!1);function a(){n("confirm",{noCommit:s.value,noFastForward:i.value,squash:o.value})}return Ve(()=>t.visible,l=>{l&&(s.value=!1,i.value=!1,o.value=!1)}),(l,c)=>(v(),ge(Rt,{title:"Merge Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Merge",onClose:c[3]||(c[3]=u=>n("close")),onConfirm:a},{default:at(()=>[d("p",wk,[c[4]||(c[4]=Le(" Merge ",-1)),d("span",Sk,A(r.branchName),1),c[5]||(c[5]=Le(" into current branch ",-1))]),d("div",$k,[d("label",Ck,[Ye(d("input",{"onUpdate:modelValue":c[0]||(c[0]=u=>tt(s)?s.value=u:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[fr,p(s)]]),c[6]||(c[6]=d("span",{class:"text-retro-muted text-sm"},"No commit (stage changes only)",-1))]),d("label",Qk,[Ye(d("input",{"onUpdate:modelValue":c[1]||(c[1]=u=>tt(i)?i.value=u:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[fr,p(i)]]),c[7]||(c[7]=d("span",{class:"text-retro-muted text-sm"},"No fast-forward (always create merge commit)",-1))]),d("label",Pk,[Ye(d("input",{"onUpdate:modelValue":c[2]||(c[2]=u=>tt(o)?o.value=u:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[fr,p(o)]]),c[8]||(c[8]=d("span",{class:"text-retro-muted text-sm"},"Squash (combine all commits into one)",-1))])])]),_:1},8,["visible","loading","error"]))}}),Mk={class:"text-retro-text text-sm font-mono mb-2"},Ak={class:"text-retro-cyan"},_k={class:"space-y-3 mt-4"},Rk={class:"flex items-center gap-2 cursor-pointer"},Bk=Xe({__name:"DeleteBranchDialog",props:{visible:{type:Boolean},branchName:{},isLocal:{type:Boolean},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=Q(!1);function i(){n("confirm",{force:s.value})}return Ve(()=>t.visible,o=>{o&&(s.value=!1)}),(o,a)=>(v(),ge(Rt,{title:"Delete Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Delete","confirm-danger":!0,onClose:a[1]||(a[1]=l=>n("close")),onConfirm:i},{default:at(()=>[a[4]||(a[4]=d("div",{class:"mb-4 p-2 text-xs font-mono text-retro-yellow bg-retro-yellow/10 border border-retro-yellow/30 rounded"}," This action is permanent and cannot be undone. ",-1)),d("p",Mk,[Le(" Delete "+A(r.isLocal?"local":"remote")+" branch ",1),d("span",Ak,A(r.branchName),1),a[2]||(a[2]=Le("? ",-1))]),d("div",_k,[d("label",Rk,[Ye(d("input",{"onUpdate:modelValue":a[0]||(a[0]=l=>tt(s)?s.value=l:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[fr,p(s)]]),a[3]||(a[3]=d("span",{class:"text-retro-muted text-sm"},"Force delete (even if not fully merged)",-1))])])]),_:1},8,["visible","loading","error"]))}}),Dk={class:"text-retro-text text-sm font-mono mb-4"},Zk={class:"text-retro-cyan"},Ek={class:"space-y-3"},Lk=["value"],Xk={class:"flex items-center gap-2 cursor-pointer"},Ik=["checked"],Vk={class:"flex items-center gap-2 cursor-pointer"},zk=["checked"],Nk={key:0,class:"p-2 text-xs font-mono text-retro-yellow bg-retro-yellow/10 border border-retro-yellow/30 rounded"},Wk=Xe({__name:"PushDialog",props:{visible:{type:Boolean},branchName:{},remotes:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=Q("origin"),i=Q(!1),o=Q(!1);function a(u){i.value=u,u&&(o.value=!1)}function l(u){o.value=u,u&&(i.value=!1)}function c(){n("confirm",{remote:s.value,force:i.value,forceWithLease:o.value})}return Ve(()=>t.visible,u=>{u&&(s.value=t.remotes.includes("origin")?"origin":t.remotes[0]??"origin",i.value=!1,o.value=!1)}),(u,h)=>(v(),ge(Rt,{title:"Push Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Push",onClose:h[3]||(h[3]=f=>n("close")),onConfirm:c},{default:at(()=>[d("p",Dk,[h[4]||(h[4]=Le(" Push ",-1)),d("span",Zk,A(r.branchName),1),h[5]||(h[5]=Le(" to remote ",-1))]),d("div",Ek,[d("div",null,[h[6]||(h[6]=d("label",{class:"text-retro-muted text-sm block mb-1"},"Remote",-1)),Ye(d("select",{"onUpdate:modelValue":h[0]||(h[0]=f=>tt(s)?s.value=f:null),class:"w-full bg-retro-panel border border-retro-border rounded text-retro-text text-sm px-2 py-1.5 font-mono focus:outline-none focus:border-retro-cyan"},[(v(!0),y(ye,null,Ne(r.remotes,f=>(v(),y("option",{key:f,value:f},A(f),9,Lk))),128))],512),[[ms,p(s)]])]),d("label",Xk,[d("input",{checked:p(i),type:"checkbox",class:"accent-retro-cyan",onChange:h[1]||(h[1]=f=>a(f.target.checked))},null,40,Ik),h[7]||(h[7]=d("span",{class:"text-retro-muted text-sm"},"Force push",-1))]),d("label",Vk,[d("input",{checked:p(o),type:"checkbox",class:"accent-retro-cyan",onChange:h[2]||(h[2]=f=>l(f.target.checked))},null,40,zk),h[8]||(h[8]=d("span",{class:"text-retro-muted text-sm"},"Force with lease (safer force push)",-1))]),p(i)||p(o)?(v(),y("div",Nk,A(p(i)?"Force push will overwrite remote history. Use with caution.":"Force with lease will reject the push if the remote has been updated since your last fetch."),1)):U("",!0)])]),_:1},8,["visible","loading","error"]))}}),qk={class:"text-retro-text text-sm font-mono mb-4"},jk={class:"text-retro-cyan"},Yk={class:"space-y-3"},Fk=["value"],Uk={class:"flex items-center gap-2 cursor-pointer"},Gk={class:"flex items-center gap-2 cursor-pointer"},Hk=Xe({__name:"PullDialog",props:{visible:{type:Boolean},branchName:{},remotes:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=Q("origin"),i=Q(!1),o=Q(!1);function a(){n("confirm",{remote:s.value,noFastForward:i.value,squash:o.value})}return Ve(()=>t.visible,l=>{l&&(s.value=t.remotes.includes("origin")?"origin":t.remotes[0]??"origin",i.value=!1,o.value=!1)}),(l,c)=>(v(),ge(Rt,{title:"Pull Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Pull",onClose:c[3]||(c[3]=u=>n("close")),onConfirm:a},{default:at(()=>[d("p",qk,[c[4]||(c[4]=Le(" Pull ",-1)),d("span",jk,A(r.branchName),1),c[5]||(c[5]=Le(" from remote ",-1))]),d("div",Yk,[d("div",null,[c[6]||(c[6]=d("label",{class:"text-retro-muted text-sm block mb-1"},"Remote",-1)),Ye(d("select",{"onUpdate:modelValue":c[0]||(c[0]=u=>tt(s)?s.value=u:null),class:"w-full bg-retro-panel border border-retro-border rounded text-retro-text text-sm px-2 py-1.5 font-mono focus:outline-none focus:border-retro-cyan"},[(v(!0),y(ye,null,Ne(r.remotes,u=>(v(),y("option",{key:u,value:u},A(u),9,Fk))),128))],512),[[ms,p(s)]])]),d("label",Uk,[Ye(d("input",{"onUpdate:modelValue":c[1]||(c[1]=u=>tt(i)?i.value=u:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[fr,p(i)]]),c[7]||(c[7]=d("span",{class:"text-retro-muted text-sm"},"No fast-forward (always create merge commit)",-1))]),d("label",Gk,[Ye(d("input",{"onUpdate:modelValue":c[2]||(c[2]=u=>tt(o)?o.value=u:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[fr,p(o)]]),c[8]||(c[8]=d("span",{class:"text-retro-muted text-sm"},"Squash (combine all commits into one)",-1))])])]),_:1},8,["visible","loading","error"]))}}),Kk={class:"text-retro-text text-sm font-mono mb-4"},Jk={class:"text-retro-cyan"},ew={class:"text-retro-cyan"},tw={class:"p-2 text-xs font-mono text-retro-yellow bg-retro-yellow/10 border border-retro-yellow/30 rounded"},rw={class:"text-retro-cyan"},nw={class:"text-retro-cyan"},sw=Xe({__name:"RebaseDialog",props:{visible:{type:Boolean},branchName:{},ontoBranch:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e;return(n,s)=>(v(),ge(Rt,{title:"Rebase Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Rebase",onClose:s[0]||(s[0]=i=>t("close")),onConfirm:s[1]||(s[1]=i=>t("confirm"))},{default:at(()=>[d("p",Kk,[s[2]||(s[2]=Le(" Rebase ",-1)),d("span",Jk,A(r.branchName),1),s[3]||(s[3]=Le(" onto ",-1)),d("span",ew,A(r.ontoBranch),1)]),d("div",tw,[s[4]||(s[4]=Le(" This will rewrite commit history. Commits from ",-1)),d("span",rw,A(r.branchName),1),s[5]||(s[5]=Le(" will be replayed on top of ",-1)),d("span",nw,A(r.ontoBranch),1),s[6]||(s[6]=Le(". ",-1))])]),_:1},8,["visible","loading","error"]))}}),iw={class:"mb-4 p-3 bg-retro-panel border border-retro-border rounded"},ow={class:"text-sm font-mono text-retro-cyan"},aw={class:"text-xs font-mono text-retro-text mt-1 truncate"},lw={class:"space-y-3"},cw={class:"flex items-start gap-2 cursor-pointer group"},uw={class:"flex items-start gap-2 cursor-pointer group"},hw=Xe({__name:"CherryPickDialog",props:{visible:{type:Boolean},commitHash:{},commitMessage:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e,n=Q(!1),s=Q(!1);function i(){t("confirm",{recordOrigin:n.value,noCommit:s.value})}function o(){n.value=!1,s.value=!1,t("close")}return(a,l)=>(v(),ge(Rt,{title:"Cherry-Pick Commit",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Cherry-Pick",onClose:o,onConfirm:i},{default:at(()=>[d("div",iw,[l[2]||(l[2]=d("div",{class:"text-xs font-mono text-retro-muted mb-1"},"Commit",-1)),d("div",ow,A(r.commitHash.slice(0,7)),1),d("div",aw,A(r.commitMessage.split(`
|
|
10
|
+
`)[0]),1)]),d("div",lw,[d("label",cw,[Ye(d("input",{"onUpdate:modelValue":l[0]||(l[0]=c=>tt(n)?n.value=c:null),type:"checkbox",class:"mt-0.5 accent-retro-cyan"},null,512),[[fr,p(n)]]),l[3]||(l[3]=d("div",null,[d("span",{class:"text-sm font-mono text-retro-text group-hover:text-retro-cyan transition-colors"}," Record origin (-x) "),d("p",{class:"text-xs font-mono text-retro-muted mt-0.5"},' Append "(cherry picked from commit ...)" to the commit message ')],-1))]),d("label",uw,[Ye(d("input",{"onUpdate:modelValue":l[1]||(l[1]=c=>tt(s)?s.value=c:null),type:"checkbox",class:"mt-0.5 accent-retro-cyan"},null,512),[[fr,p(s)]]),l[4]||(l[4]=d("div",null,[d("span",{class:"text-sm font-mono text-retro-text group-hover:text-retro-cyan transition-colors"}," No commit "),d("p",{class:"text-xs font-mono text-retro-muted mt-0.5"}," Apply changes to the working directory without committing ")],-1))])])]),_:1},8,["visible","loading","error"]))}}),dw={class:"mb-4 p-3 bg-retro-panel border border-retro-border rounded"},fw={class:"text-sm font-mono text-retro-cyan"},mw={class:"text-xs font-mono text-retro-text mt-1 truncate"},pw={class:"space-y-2"},gw=["value"],Ow={key:0,class:"mt-3 p-2 text-xs font-mono text-retro-red bg-retro-red/10 border border-retro-red/30 rounded"},vw=Xe({__name:"ResetDialog",props:{visible:{type:Boolean},commitHash:{},commitMessage:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e,n=Q("mixed"),s=[{value:"soft",label:"Soft",description:"Move HEAD, keep staged changes and working directory"},{value:"mixed",label:"Mixed",description:"Move HEAD, reset staging area, keep working directory"},{value:"hard",label:"Hard",description:"Move HEAD, reset staging area and working directory (DESTRUCTIVE)"}];function i(){t("confirm",{mode:n.value})}function o(){n.value="mixed",t("close")}return(a,l)=>(v(),ge(Rt,{title:"Reset to Commit",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Reset","confirm-danger":p(n)==="hard",onClose:o,onConfirm:i},{default:at(()=>[d("div",dw,[l[1]||(l[1]=d("div",{class:"text-xs font-mono text-retro-muted mb-1"},"Reset to",-1)),d("div",fw,A(r.commitHash.slice(0,7)),1),d("div",mw,A(r.commitMessage.split(`
|
|
11
|
+
`)[0]),1)]),d("div",pw,[l[2]||(l[2]=d("div",{class:"text-xs font-mono text-retro-muted mb-2"},"Reset mode",-1)),(v(),y(ye,null,Ne(s,c=>d("label",{key:c.value,class:_e(["flex items-start gap-2 p-2 rounded cursor-pointer group border transition-colors",[p(n)===c.value?"border-retro-cyan bg-retro-cyan/5":"border-transparent hover:bg-retro-panel"]])},[Ye(d("input",{"onUpdate:modelValue":l[0]||(l[0]=u=>tt(n)?n.value=u:null),type:"radio",name:"reset-mode",value:c.value,class:"mt-0.5 accent-retro-cyan"},null,8,gw),[[kc,p(n)]]),d("div",null,[d("span",{class:_e(["text-sm font-mono transition-colors",[c.value==="hard"?"text-retro-red":"text-retro-text",p(n)===c.value?"text-retro-cyan":""]])},A(c.label),3),d("p",{class:_e(["text-xs font-mono mt-0.5",c.value==="hard"?"text-retro-red/70":"text-retro-muted"])},A(c.description),3)])],2)),64))]),p(n)==="hard"?(v(),y("div",Ow," Warning: Hard reset will permanently discard all uncommitted changes in your working directory and staging area. This action cannot be undone. ")):U("",!0)]),_:1},8,["visible","loading","error","confirm-danger"]))}}),bw={class:"mb-4 p-3 bg-retro-panel border border-retro-border rounded"},xw={class:"text-sm font-mono text-retro-cyan"},yw={class:"mb-4"},kw={class:"mb-3"},ww={class:"flex items-start gap-2 cursor-pointer group"},Sw={key:0,class:"mb-4"},$w={class:"space-y-2"},Cw={class:"flex items-start gap-2 cursor-pointer group"},Qw=["disabled"],Pw={key:0,class:"ml-6"},Tw=["value"],Mw=Xe({__name:"TagCreateDialog",props:{visible:{type:Boolean},commitHash:{},remotes:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e,n=Q(""),s=Q(!1),i=Q(""),o=Q(!1),a=Q(""),l=H(()=>n.value.trim().length>0);function c(){if(!l.value)return;const h={name:n.value.trim(),annotated:s.value};s.value&&i.value.trim()&&(h.message=i.value.trim()),o.value&&a.value&&(h.pushToRemote=a.value),t("confirm",h)}function u(){n.value="",s.value=!1,i.value="",o.value=!1,a.value="",t("close")}return Ve(()=>s.value,h=>{h||(i.value="")}),(h,f)=>(v(),ge(Rt,{title:"Create Tag",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Create Tag",onClose:u,onConfirm:c},{default:at(()=>[d("div",bw,[f[5]||(f[5]=d("div",{class:"text-xs font-mono text-retro-muted mb-1"},"At commit",-1)),d("div",xw,A(r.commitHash.slice(0,7)),1)]),d("div",yw,[f[6]||(f[6]=d("label",{class:"block text-xs font-mono text-retro-muted mb-1.5"},"Tag name",-1)),Ye(d("input",{"onUpdate:modelValue":f[0]||(f[0]=m=>tt(n)?n.value=m:null),type:"text",placeholder:"v1.0.0",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan"},null,512),[[_t,p(n)]])]),d("div",kw,[d("label",ww,[Ye(d("input",{"onUpdate:modelValue":f[1]||(f[1]=m=>tt(s)?s.value=m:null),type:"checkbox",class:"mt-0.5 accent-retro-cyan"},null,512),[[fr,p(s)]]),f[7]||(f[7]=d("div",null,[d("span",{class:"text-sm font-mono text-retro-text group-hover:text-retro-cyan transition-colors"}," Annotated tag "),d("p",{class:"text-xs font-mono text-retro-muted mt-0.5"}," Create a full tag object with message and tagger info ")],-1))])]),p(s)?(v(),y("div",Sw,[f[8]||(f[8]=d("label",{class:"block text-xs font-mono text-retro-muted mb-1.5"},"Tag message",-1)),Ye(d("textarea",{"onUpdate:modelValue":f[2]||(f[2]=m=>tt(i)?i.value=m:null),rows:"3",placeholder:"Release description...",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan resize-none"},null,512),[[_t,p(i)]])])):U("",!0),d("div",$w,[d("label",Cw,[Ye(d("input",{"onUpdate:modelValue":f[3]||(f[3]=m=>tt(o)?o.value=m:null),type:"checkbox",class:"mt-0.5 accent-retro-cyan",disabled:r.remotes.length===0},null,8,Qw),[[fr,p(o)]]),d("div",null,[d("span",{class:_e(["text-sm font-mono transition-colors",r.remotes.length===0?"text-retro-muted":"text-retro-text group-hover:text-retro-cyan"])}," Push to remote ",2)])]),p(o)&&r.remotes.length>0?(v(),y("div",Pw,[Ye(d("select",{"onUpdate:modelValue":f[4]||(f[4]=m=>tt(a)?a.value=m:null),class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text focus:outline-none focus:border-retro-cyan"},[f[9]||(f[9]=d("option",{value:"",disabled:"",class:"text-retro-muted"},"Select remote",-1)),(v(!0),y(ye,null,Ne(r.remotes,m=>(v(),y("option",{key:m,value:m},A(m),9,Tw))),128))],512),[[ms,p(a)]])])):U("",!0)])]),_:1},8,["visible","loading","error"]))}}),Aw={class:"text-retro-text text-sm font-mono mb-2"},_w={class:"text-retro-cyan"},Rw={class:"space-y-3 mt-4"},Bw={class:"flex items-center gap-2 cursor-pointer"},Dw={key:0,class:"ml-6"},Zw=["value"],Ew=Xe({__name:"TagDeleteDialog",props:{visible:{type:Boolean},tagName:{},remotes:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=Q(!1),i=Q("origin");function o(){n("confirm",{deleteFromRemote:s.value,remote:s.value?i.value:void 0})}return Ve(()=>t.visible,a=>{a&&(s.value=!1,i.value=t.remotes.includes("origin")?"origin":t.remotes[0]??"origin")}),(a,l)=>(v(),ge(Rt,{title:"Delete Tag",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Delete","confirm-danger":!0,onClose:l[2]||(l[2]=c=>n("close")),onConfirm:o},{default:at(()=>[l[7]||(l[7]=d("div",{class:"mb-4 p-2 text-xs font-mono text-retro-yellow bg-retro-yellow/10 border border-retro-yellow/30 rounded"}," This action is permanent and cannot be undone. ",-1)),d("p",Aw,[l[3]||(l[3]=Le(" Delete tag ",-1)),d("span",_w,A(r.tagName),1),l[4]||(l[4]=Le("? ",-1))]),d("div",Rw,[d("label",Bw,[Ye(d("input",{"onUpdate:modelValue":l[0]||(l[0]=c=>tt(s)?s.value=c:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[fr,p(s)]]),l[5]||(l[5]=d("span",{class:"text-retro-muted text-sm"},"Also delete from remote",-1))]),p(s)?(v(),y("div",Dw,[l[6]||(l[6]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Remote",-1)),Ye(d("select",{"onUpdate:modelValue":l[1]||(l[1]=c=>tt(i)?i.value=c:null),class:"w-full px-2 py-1.5 text-sm font-mono bg-retro-panel border border-retro-border rounded text-retro-text focus:outline-none focus:border-retro-cyan"},[(v(!0),y(ye,null,Ne(r.remotes,c=>(v(),y("option",{key:c,value:c},A(c),9,Zw))),128))],512),[[ms,p(i)]])])):U("",!0)])]),_:1},8,["visible","loading","error"]))}}),Lw={class:"mb-4"},Xw={class:"text-retro-cyan text-sm font-mono"},Iw={class:"mb-4"},Vw={class:"text-retro-text text-sm font-mono"},zw={class:"mb-4"},Nw={class:"text-retro-text text-sm font-mono break-all select-all"},Ww={class:"mb-4"},qw={class:"text-retro-text text-sm font-mono"},jw={class:"text-retro-muted"},Yw={class:"mb-4"},Fw={class:"text-retro-text text-sm font-mono"},Uw={key:1,class:"mb-2"},Gw={class:"p-2 text-sm font-mono text-retro-text bg-retro-panel border border-retro-border rounded whitespace-pre-wrap"},Hw={key:1,class:"text-retro-muted text-sm font-mono text-center py-4"},Kw=Xe({__name:"TagDetailDialog",props:{visible:{type:Boolean},tagName:{},tagDetail:{},loading:{type:Boolean,default:!1}},emits:["close"],setup(r,{emit:e}){const t=e;return(n,s)=>(v(),ge(Rt,{title:"Tag Details",visible:r.visible,loading:r.loading,"confirm-label":"Close","cancel-label":"Close",onClose:s[0]||(s[0]=i=>t("close")),onConfirm:s[1]||(s[1]=i=>t("close"))},{default:at(()=>[d("div",Lw,[s[2]||(s[2]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Tag",-1)),d("p",Xw,A(r.tagName),1)]),r.tagDetail?(v(),y(ye,{key:0},[d("div",Iw,[s[3]||(s[3]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Type",-1)),d("p",Vw,A(r.tagDetail.isAnnotated?"Annotated":"Lightweight"),1)]),d("div",zw,[s[4]||(s[4]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Hash",-1)),d("p",Nw,A(r.tagDetail.hash),1)]),r.tagDetail.tagger?(v(),y(ye,{key:0},[d("div",Ww,[s[5]||(s[5]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Tagger",-1)),d("p",qw,[Le(A(r.tagDetail.tagger.name)+" ",1),d("span",jw,"<"+A(r.tagDetail.tagger.email)+">",1)])]),d("div",Yw,[s[6]||(s[6]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Date",-1)),d("p",Fw,A(r.tagDetail.tagger.date),1)])],64)):U("",!0),r.tagDetail.message?(v(),y("div",Uw,[s[7]||(s[7]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Message",-1)),d("div",Gw,A(r.tagDetail.message),1)])):U("",!0)],64)):r.loading?(v(),y("div",Hw," Loading tag details... ")):U("",!0)]),_:1},8,["visible","loading"]))}}),Jw={class:"mb-4 p-3 bg-retro-panel border border-retro-border rounded"},eS={class:"text-sm font-mono text-retro-cyan"},tS={class:"mb-4"},rS={class:"flex items-start gap-2 cursor-pointer group"},nS=Xe({__name:"CreateBranchDialog",props:{visible:{type:Boolean},fromCommit:{},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e,n=Q(""),s=Q(!0),i=H(()=>n.value.trim().length>0);function o(){i.value&&t("confirm",{name:n.value.trim(),checkout:s.value})}function a(){n.value="",s.value=!0,t("close")}return(l,c)=>(v(),ge(Rt,{title:"Create Branch",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Create Branch",onClose:a,onConfirm:o},{default:at(()=>[d("div",Jw,[c[2]||(c[2]=d("div",{class:"text-xs font-mono text-retro-muted mb-1"},"From",-1)),d("div",eS,A(r.fromCommit.slice(0,7)),1)]),d("div",tS,[c[3]||(c[3]=d("label",{class:"block text-xs font-mono text-retro-muted mb-1.5"},"Branch name",-1)),Ye(d("input",{"onUpdate:modelValue":c[0]||(c[0]=u=>tt(n)?n.value=u:null),type:"text",placeholder:"feature/my-branch",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan"},null,512),[[_t,p(n)]])]),d("label",rS,[Ye(d("input",{"onUpdate:modelValue":c[1]||(c[1]=u=>tt(s)?s.value=u:null),type:"checkbox",class:"mt-0.5 accent-retro-cyan"},null,512),[[fr,p(s)]]),c[4]||(c[4]=d("div",null,[d("span",{class:"text-sm font-mono text-retro-text group-hover:text-retro-cyan transition-colors"}," Switch to new branch "),d("p",{class:"text-xs font-mono text-retro-muted mt-0.5"}," Checkout the branch after creating it ")],-1))])]),_:1},8,["visible","loading","error"]))}}),sS={class:"space-y-4"},iS={class:"flex items-center gap-2 cursor-pointer"},oS=Xe({__name:"StashDialog",props:{visible:{type:Boolean},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=Q(""),i=Q(!1);function o(){n("confirm",{message:s.value.trim()||void 0,includeUntracked:i.value})}return Ve(()=>t.visible,a=>{a&&(s.value="",i.value=!1)}),(a,l)=>(v(),ge(Rt,{title:"Stash Changes",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Stash",onClose:l[2]||(l[2]=c=>n("close")),onConfirm:o},{default:at(()=>[l[5]||(l[5]=d("p",{class:"text-retro-text text-sm font-mono mb-4"}," Save uncommitted changes to the stash. ",-1)),d("div",sS,[d("div",null,[l[3]||(l[3]=d("label",{class:"block text-retro-muted text-xs font-mono mb-1"},"Message (optional)",-1)),Ye(d("input",{"onUpdate:modelValue":l[0]||(l[0]=c=>tt(s)?s.value=c:null),type:"text",placeholder:"Stash description...",class:"w-full px-2 py-1.5 text-sm font-mono bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted/50 focus:outline-none focus:border-retro-cyan"},null,512),[[_t,p(s)]])]),d("label",iS,[Ye(d("input",{"onUpdate:modelValue":l[1]||(l[1]=c=>tt(i)?i.value=c:null),type:"checkbox",class:"accent-retro-cyan"},null,512),[[fr,p(i)]]),l[4]||(l[4]=d("span",{class:"text-retro-muted text-sm"},"Include untracked files",-1))])])]),_:1},8,["visible","loading","error"]))}}),aS={class:"space-y-3"},lS={class:"flex items-start gap-2 cursor-pointer"},cS={class:"flex items-start gap-2 cursor-pointer"},uS={key:0,class:"mt-4 p-2 text-xs font-mono text-retro-red bg-retro-red/10 border border-retro-red/30 rounded"},hS=Xe({__name:"ResetWorkingDialog",props:{visible:{type:Boolean},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=r,n=e,s=Q("mixed"),i=H(()=>s.value==="hard");function o(){n("confirm",{mode:s.value})}return Ve(()=>t.visible,a=>{a&&(s.value="mixed")}),(a,l)=>(v(),ge(Rt,{title:"Reset Working Directory",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Reset","confirm-danger":p(i),onClose:l[2]||(l[2]=c=>n("close")),onConfirm:o},{default:at(()=>[l[5]||(l[5]=d("p",{class:"text-retro-text text-sm font-mono mb-4"}," Reset the working directory to HEAD. ",-1)),d("div",aS,[d("label",lS,[Ye(d("input",{"onUpdate:modelValue":l[0]||(l[0]=c=>tt(s)?s.value=c:null),type:"radio",value:"mixed",name:"reset-mode",class:"accent-retro-cyan mt-0.5"},null,512),[[kc,p(s)]]),l[3]||(l[3]=d("div",null,[d("span",{class:"text-retro-text text-sm font-mono"},"Mixed"),d("p",{class:"text-retro-muted text-xs font-mono mt-0.5"}," Reset staging area, keep working directory ")],-1))]),d("label",cS,[Ye(d("input",{"onUpdate:modelValue":l[1]||(l[1]=c=>tt(s)?s.value=c:null),type:"radio",value:"hard",name:"reset-mode",class:"accent-retro-cyan mt-0.5"},null,512),[[kc,p(s)]]),l[4]||(l[4]=d("div",null,[d("span",{class:"text-retro-text text-sm font-mono"},"Hard"),d("p",{class:"text-retro-muted text-xs font-mono mt-0.5"}," Reset staging area AND working directory (DESTRUCTIVE) ")],-1))])]),p(i)?(v(),y("div",uS," WARNING: Hard reset will permanently discard all uncommitted changes. This cannot be undone. ")):U("",!0)]),_:1},8,["visible","loading","error","confirm-danger"]))}}),dS=Xe({__name:"CleanUntrackedDialog",props:{visible:{type:Boolean},loading:{type:Boolean,default:!1},error:{default:null}},emits:["close","confirm"],setup(r,{emit:e}){const t=e;return(n,s)=>(v(),ge(Rt,{title:"Clean Untracked Files",visible:r.visible,loading:r.loading,error:r.error,"confirm-label":"Clean","confirm-danger":"",onClose:s[0]||(s[0]=i=>t("close")),onConfirm:s[1]||(s[1]=i=>t("confirm"))},{default:at(()=>[...s[2]||(s[2]=[d("div",{class:"space-y-3"},[d("p",{class:"text-retro-text text-sm font-mono"}," Remove all untracked files and directories from the working tree. "),d("p",{class:"text-retro-muted text-xs font-mono"},[Le(" This runs "),d("code",null,"git clean -fd"),Le(" and cannot be undone. ")])],-1)])]),_:1},8,["visible","loading","error"]))}}),fS={class:"text-retro-muted text-sm"},mS={class:"text-retro-cyan font-mono"},pS={class:"space-y-3"},gS={class:"text-retro-muted text-sm"},OS={class:"text-retro-cyan font-mono"},vS={class:"space-y-3"},bS={class:"text-retro-muted text-sm"},xS={class:"text-retro-magenta font-mono"},yS={key:0,class:"fixed bottom-4 right-4 z-50 flex items-center gap-2 px-4 py-2.5 text-sm bg-retro-red/90 text-white rounded-lg shadow-lg max-w-sm",role:"alert"},kS={class:"flex-1"},wS=Xe({__name:"GitGraphDialogs",props:{dialogs:{},store:{},remoteNames:{},copyFeedback:{}},setup(r){const t=r.dialogs;return(n,s)=>(v(),y(ye,null,[p(t).checkoutDialog.visible?(v(),ge(Rt,{key:0,title:"Checkout",visible:p(t).checkoutDialog.visible,loading:p(t).checkoutDialog.loading,error:p(t).checkoutDialog.error,confirmLabel:"Checkout",onClose:s[0]||(s[0]=i=>p(t).checkoutDialog.visible=!1),onConfirm:p(t).confirmCheckout},{default:at(()=>[d("p",fS,[s[23]||(s[23]=Le(" Are you sure you want to checkout ",-1)),d("span",mS,A(p(t).checkoutDialog.branchName),1),s[24]||(s[24]=Le("? ",-1))])]),_:1},8,["visible","loading","error","onConfirm"])):U("",!0),p(t).renameDialog.visible?(v(),ge(Rt,{key:1,title:"Rename Branch",visible:p(t).renameDialog.visible,loading:p(t).renameDialog.loading,error:p(t).renameDialog.error,confirmLabel:"Rename",onClose:s[3]||(s[3]=i=>p(t).renameDialog.visible=!1),onConfirm:p(t).confirmRenameBranch},{default:at(()=>[d("div",pS,[d("p",gS,[s[25]||(s[25]=Le(" Rename ",-1)),d("span",OS,A(p(t).renameDialog.branchName),1)]),Ye(d("input",{"onUpdate:modelValue":s[1]||(s[1]=i=>p(t).renameDialog.newName=i),type:"text",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan",placeholder:"New branch name",onKeyup:s[2]||(s[2]=is((...i)=>p(t).confirmRenameBranch&&p(t).confirmRenameBranch(...i),["enter"]))},null,544),[[_t,p(t).renameDialog.newName]])])]),_:1},8,["visible","loading","error","onConfirm"])):U("",!0),p(t).mergeDialog.visible?(v(),ge(Tk,{key:2,visible:p(t).mergeDialog.visible,branchName:p(t).mergeDialog.branchName,loading:p(t).mergeDialog.loading,error:p(t).mergeDialog.error,onClose:s[4]||(s[4]=i=>p(t).mergeDialog.visible=!1),onConfirm:p(t).confirmMerge},null,8,["visible","branchName","loading","error","onConfirm"])):U("",!0),p(t).deleteBranchDialog.visible?(v(),ge(Bk,{key:3,visible:p(t).deleteBranchDialog.visible,branchName:p(t).deleteBranchDialog.branchName,isLocal:p(t).deleteBranchDialog.isLocal,loading:p(t).deleteBranchDialog.loading,error:p(t).deleteBranchDialog.error,onClose:s[5]||(s[5]=i=>p(t).deleteBranchDialog.visible=!1),onConfirm:p(t).confirmDeleteBranch},null,8,["visible","branchName","isLocal","loading","error","onConfirm"])):U("",!0),p(t).pushDialog.visible?(v(),ge(Wk,{key:4,visible:p(t).pushDialog.visible,branchName:p(t).pushDialog.branchName,remotes:r.remoteNames,loading:p(t).pushDialog.loading,error:p(t).pushDialog.error,onClose:s[6]||(s[6]=i=>p(t).pushDialog.visible=!1),onConfirm:p(t).confirmPush},null,8,["visible","branchName","remotes","loading","error","onConfirm"])):U("",!0),p(t).pullDialog.visible?(v(),ge(Hk,{key:5,visible:p(t).pullDialog.visible,branchName:p(t).pullDialog.branchName,remotes:r.remoteNames,loading:p(t).pullDialog.loading,error:p(t).pullDialog.error,onClose:s[7]||(s[7]=i=>p(t).pullDialog.visible=!1),onConfirm:p(t).confirmPull},null,8,["visible","branchName","remotes","loading","error","onConfirm"])):U("",!0),p(t).rebaseDialog.visible?(v(),ge(sw,{key:6,visible:p(t).rebaseDialog.visible,branchName:r.store.currentBranch?.name||"HEAD",ontoBranch:p(t).rebaseDialog.branchName,loading:p(t).rebaseDialog.loading,error:p(t).rebaseDialog.error,onClose:s[8]||(s[8]=i=>p(t).rebaseDialog.visible=!1),onConfirm:p(t).confirmRebase},null,8,["visible","branchName","ontoBranch","loading","error","onConfirm"])):U("",!0),p(t).cherryPickDialog.visible?(v(),ge(hw,{key:7,visible:p(t).cherryPickDialog.visible,commitHash:p(t).cherryPickDialog.commitHash,commitMessage:p(t).cherryPickDialog.commitMessage,loading:p(t).cherryPickDialog.loading,error:p(t).cherryPickDialog.error,onClose:s[9]||(s[9]=i=>p(t).cherryPickDialog.visible=!1),onConfirm:p(t).confirmCherryPick},null,8,["visible","commitHash","commitMessage","loading","error","onConfirm"])):U("",!0),p(t).resetDialog.visible?(v(),ge(vw,{key:8,visible:p(t).resetDialog.visible,commitHash:p(t).resetDialog.commitHash,commitMessage:p(t).resetDialog.commitMessage,loading:p(t).resetDialog.loading,error:p(t).resetDialog.error,onClose:s[10]||(s[10]=i=>p(t).resetDialog.visible=!1),onConfirm:p(t).confirmReset},null,8,["visible","commitHash","commitMessage","loading","error","onConfirm"])):U("",!0),p(t).tagCreateDialog.visible?(v(),ge(Mw,{key:9,visible:p(t).tagCreateDialog.visible,commitHash:p(t).tagCreateDialog.commitHash,remotes:r.remoteNames,loading:p(t).tagCreateDialog.loading,error:p(t).tagCreateDialog.error,onClose:s[11]||(s[11]=i=>p(t).tagCreateDialog.visible=!1),onConfirm:p(t).confirmTagCreate},null,8,["visible","commitHash","remotes","loading","error","onConfirm"])):U("",!0),p(t).tagDeleteDialog.visible?(v(),ge(Ew,{key:10,visible:p(t).tagDeleteDialog.visible,tagName:p(t).tagDeleteDialog.tagName,remotes:r.remoteNames,loading:p(t).tagDeleteDialog.loading,error:p(t).tagDeleteDialog.error,onClose:s[12]||(s[12]=i=>p(t).tagDeleteDialog.visible=!1),onConfirm:p(t).confirmTagDelete},null,8,["visible","tagName","remotes","loading","error","onConfirm"])):U("",!0),p(t).tagDetailDialog.visible?(v(),ge(Kw,{key:11,visible:p(t).tagDetailDialog.visible,tagName:p(t).tagDetailDialog.tagName,tagDetail:p(t).tagDetailDialog.tagDetail,loading:p(t).tagDetailDialog.loading,onClose:s[13]||(s[13]=i=>p(t).tagDetailDialog.visible=!1)},null,8,["visible","tagName","tagDetail","loading"])):U("",!0),p(t).createBranchDialog.visible?(v(),ge(nS,{key:12,visible:p(t).createBranchDialog.visible,fromCommit:p(t).createBranchDialog.fromCommit,loading:p(t).createBranchDialog.loading,error:p(t).createBranchDialog.error,onClose:s[14]||(s[14]=i=>p(t).createBranchDialog.visible=!1),onConfirm:p(t).confirmCreateBranch},null,8,["visible","fromCommit","loading","error","onConfirm"])):U("",!0),p(t).stashBranchDialog.visible?(v(),ge(Rt,{key:13,title:"Create Branch from Stash",visible:p(t).stashBranchDialog.visible,loading:p(t).stashBranchDialog.loading,error:p(t).stashBranchDialog.error,confirmLabel:"Create Branch",onClose:s[17]||(s[17]=i=>p(t).stashBranchDialog.visible=!1),onConfirm:s[18]||(s[18]=i=>p(t).confirmStashBranch(p(t).stashBranchInput.value))},{default:at(()=>[d("div",vS,[d("p",bS,[s[26]||(s[26]=Le(" Create a new branch from ",-1)),d("span",xS,"stash@"+A("{")+A(p(t).stashBranchDialog.stashIndex)+A("}"),1)]),Ye(d("input",{"onUpdate:modelValue":s[15]||(s[15]=i=>p(t).stashBranchInput.value=i),type:"text",class:"w-full px-3 py-2 text-sm bg-retro-panel border border-retro-border rounded text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan",placeholder:"Branch name",onKeyup:s[16]||(s[16]=is(i=>p(t).confirmStashBranch(p(t).stashBranchInput.value),["enter"]))},null,544),[[_t,p(t).stashBranchInput.value]])])]),_:1},8,["visible","loading","error"])):U("",!0),p(t).stashDialog.visible?(v(),ge(oS,{key:14,visible:p(t).stashDialog.visible,loading:p(t).stashDialog.loading,error:p(t).stashDialog.error,onClose:s[19]||(s[19]=i=>p(t).stashDialog.visible=!1),onConfirm:p(t).confirmStash},null,8,["visible","loading","error","onConfirm"])):U("",!0),p(t).resetWorkingDialog.visible?(v(),ge(hS,{key:15,visible:p(t).resetWorkingDialog.visible,loading:p(t).resetWorkingDialog.loading,error:p(t).resetWorkingDialog.error,onClose:s[20]||(s[20]=i=>p(t).resetWorkingDialog.visible=!1),onConfirm:p(t).confirmResetWorking},null,8,["visible","loading","error","onConfirm"])):U("",!0),p(t).cleanUntrackedDialog.visible?(v(),ge(dS,{key:16,visible:p(t).cleanUntrackedDialog.visible,loading:p(t).cleanUntrackedDialog.loading,error:p(t).cleanUntrackedDialog.error,onClose:s[21]||(s[21]=i=>p(t).cleanUntrackedDialog.visible=!1),onConfirm:p(t).confirmCleanUntracked},null,8,["visible","loading","error","onConfirm"])):U("",!0),(v(),ge(Cr,{to:"body"},[K(mn,{name:"fade"},{default:at(()=>[r.copyFeedback.visible?(v(),y("div",{key:0,class:"fixed z-50 px-3 py-1.5 text-sm bg-retro-green text-retro-dark rounded shadow-lg",style:Jt({left:`${r.copyFeedback.x}px`,top:`${r.copyFeedback.y-40}px`})}," Copied! ",4)):U("",!0)]),_:1})])),(v(),ge(Cr,{to:"body"},[K(mn,{name:"fade"},{default:at(()=>[r.store.operationError?(v(),y("div",yS,[K(p(Bn),{class:"w-4 h-4 flex-shrink-0"}),d("span",kS,A(r.store.operationError),1),d("button",{class:"flex-shrink-0 p-0.5 hover:bg-white/20 rounded transition-colors",onClick:s[22]||(s[22]=i=>r.store.clearOperationError()),"aria-label":"Dismiss error"},[K(p(wt),{class:"w-3.5 h-3.5"})])])):U("",!0)]),_:1})]))],64))}}),SS=ps(wS,[["__scopeId","data-v-4ef8593c"]]),Zu=globalThis.setInterval,$S={class:"h-full flex flex-col bg-retro-dark",role:"region","aria-label":"Git Graph"},CS={key:0,class:"flex-1 flex flex-col items-center justify-center gap-3"},QS={key:1,class:"flex-1 flex flex-col items-center justify-center p-8 text-center"},PS={key:2,class:"flex-1 flex flex-col items-center justify-center p-8 text-center"},TS={class:"text-retro-red text-sm mb-4"},MS={key:3,class:"flex-1 flex items-center justify-center p-4"},AS={class:"flex-shrink-0 flex items-center gap-2 p-2 border-b border-retro-border"},_S={class:"relative"},RS={key:0,class:"absolute left-0 top-full mt-1 z-10 bg-retro-panel border border-retro-border rounded shadow-lg py-2 min-w-[200px]"},BS={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},DS=["checked"],ZS={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},ES=["checked"],LS={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},XS=["checked"],IS={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},VS=["checked"],zS={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},NS=["checked"],WS={class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},qS=["checked"],jS={class:"relative"},YS=["aria-expanded"],FS={key:0,class:"text-xs"},US={key:0,class:"absolute right-0 top-full mt-1 z-10 bg-retro-panel border border-retro-border rounded shadow-lg py-1 min-w-[220px] max-h-[400px] overflow-auto"},GS=["checked","onChange"],HS={class:"text-sm text-retro-text truncate"},KS={key:0,class:"text-[10px] text-retro-cyan"},JS={class:"px-3 py-1 text-[10px] text-retro-orange font-semibold uppercase tracking-wider mt-1"},e2=["checked","onChange"],t2={class:"text-sm text-retro-text truncate"},r2={class:"relative"},n2={key:0,class:"absolute right-0 top-full mt-1 z-20"},s2=["title"],i2=5e3,o2=Xe({__name:"GitGraph",props:{workingDirectory:{},isActive:{type:Boolean,default:!0}},setup(r){const e=r,t=dl(),n=mr(),s=hk(),i=fk(t),o=mk(t,i),{checkoutDialog:a,confirmCheckout:l,createBranchDialog:c,confirmCreateBranch:u,deleteBranchDialog:h,confirmDeleteBranch:f,renameDialog:m,confirmRenameBranch:g,mergeDialog:O,confirmMerge:b,rebaseDialog:x,confirmRebase:w,pushDialog:S,confirmPush:C,pullDialog:_,confirmPull:I,cherryPickDialog:V,confirmCherryPick:re,resetDialog:oe,confirmReset:Oe,tagCreateDialog:Y,confirmTagCreate:L,tagDeleteDialog:D,confirmTagDelete:j,tagDetailDialog:F,stashDialog:z,confirmStash:X,stashBranchDialog:N,stashBranchInput:be,confirmStashBranch:G,resetWorkingDialog:le,confirmResetWorking:ue,cleanUntrackedDialog:ce,confirmCleanUntracked:de,isAnyDialogOpen:Ce}=i,{copyFeedback:Me,branchMenu:qe,handleBranchContextMenu:T,closeBranchMenu:P,handleBranchCheckout:B,handleBranchRename:Z,handleBranchDelete:ve,handleBranchMerge:Ae,handleBranchRebase:Qe,handleBranchPush:se,handleBranchPull:ee,handleBranchFetch:q,handleBranchCopyName:pe,handleBranchCreateBranch:Pe,commitMenu:Ie,handleCommitContextMenu:xt,closeCommitMenu:qt,handleCommitAddTag:rr,handleCommitCreateBranch:nn,handleCommitCheckout:Mr,handleCommitCherryPick:Nn,handleCommitRevert:sn,handleCommitMergeInto:Wn,handleCommitReset:gr,handleCommitCopyHash:Er,handleCommitCopySubject:ae,tagMenu:we,handleTagContextMenu:Be,closeTagMenu:Fe,handleTagViewDetails:je,handleTagDelete:$t,handleTagPush:ut,handleTagCopyName:jt,uncommittedMenu:It,closeUncommittedMenu:Or,handleUncommittedStash:qn,handleUncommittedReset:ii,handleUncommittedClean:oi,stashMenu:Lr,handleStashContextMenu:ai,closeStashMenu:li,handleStashApply:ci,handleStashPop:ui,handleStashDrop:hi,handleStashCreateBranch:di,handleStashCopyName:fi,handleStashCopyHash:mi}=o,pi=H(()=>{const Re=n.activeConversation?.worktreeBranch;return Re?[Re]:[]}),gi=H(()=>{const Re=[],k=t.selectedFeatureId;k&&Re.push(k);const R=t.conversationBranch;return R&&!Re.includes(R)&&Re.push(R),Re});Ve(()=>[n.activeConversation?.worktreeBranch,n.activeConversation?.baseBranch],([Re,k])=>{t.setConversationBranch(Re??null,k??null)},{immediate:!0});const Dt=H(()=>{const Re=t.previewBranch;return Re?[Re]:[]});Ve(()=>[n.previewingConversation?.worktreeBranch,n.previewingConversation?.baseBranch],([Re,k])=>{t.setPreviewBranch(Re??null,k??null)},{immediate:!0});const nr=H(()=>Hh([{branch:t.previewBranch,mergeBase:t.previewMergeBase}])),gs=H(()=>Hh([{branch:t.selectedFeatureId,mergeBase:t.featureMergeBase},{branch:t.conversationBranch,mergeBase:t.conversationMergeBase}])),yn=H(()=>t.remotes.map(Re=>Re.name)),kn=Q(null);Ve(()=>e.workingDirectory,async Re=>{if(Re){await t.loadGitGraph(Re);const k=n.previewingConversation?.worktreeBranch;k&&await t.setPreviewBranch(k,n.previewingConversation?.baseBranch??null);const R=n.activeConversation?.worktreeBranch;R&&await t.setConversationBranch(R,n.activeConversation?.baseBranch??null)}},{immediate:!0}),Ve(()=>e.isActive,Re=>{Re&&t.commits.length>0&&!t.error?s.startPolling(e.workingDirectory):s.stopPolling()},{immediate:!0}),Ve(()=>t.commits.length,Re=>{Re>0&&e.isActive&&!t.error&&s.startPolling(e.workingDirectory)}),Ve(()=>kn.value,Re=>{Re&&s.setScrollCallbacks({getScrollPosition:()=>Re.getScrollPosition(),setScrollPosition:k=>Re.setScrollPosition(k)})}),kt(()=>{s.cleanup(),t.reset()});const Os=H(()=>t.error?.includes("Not a Git repository")),wn=Q(Date.now());let on=null;const Oi=()=>{on||(on=Zu(()=>{wn.value=Date.now()},i2))},vs=()=>{on&&(clearInterval(on),on=null)};mt(()=>{Ve(()=>e.isActive,Re=>{Re?(wn.value=Date.now(),Oi()):vs()},{immediate:!0})}),kt(()=>{vs()});const Sn=H(()=>{const Re=t.lastRefreshTime;if(!Re)return null;const k=Math.floor((wn.value-Re)/1e3);return t.isRefreshing?"Syncing...":k<5?"Just now":k<60?`${k}s ago`:`${Math.floor(k/60)}m ago`}),pt=Q(!1),vr=Q(!1),bs=Q(null);function vi(){pt.value=!0,Wt(()=>bs.value?.focus())}function $n(){pt.value=!1,t.setSearchQuery("")}function bi(Re){t.setSearchQuery(Re)}const xs=dk({onScrollToHead:()=>{const Re=t.commits.find(k=>k.isHead);Re&&t.selectCommit(Re)},onEscape:()=>{br.value?br.value=!1:vr.value?vr.value=!1:sr.value?sr.value=!1:pt.value?$n():t.isComparing?t.clearComparison():(t.selectedCommit||t.isUncommittedChangesSelected)&&t.clearSelection()}});mt(()=>{xs.start()}),kt(()=>{xs.stop()});const br=Q(!1),sr=Q(!1);async function xi(){await t.fetchAll(!0)}async function yi(Re){await t.addRemote(Re.name,Re.url)}async function Xr(Re){await t.editRemote(Re.name,Re.newUrl)}async function ki(Re){await t.deleteRemote(Re)}const an=H(()=>{const Re=[],k={};for(const R of t.branches)if(t.localBranchNames.has(R.name))Re.push(R);else{const M=R.name.indexOf("/");if(M>0){const E=R.name.substring(0,M);k[E]||(k[E]=[]),k[E].push(R)}else Re.push(R)}return{local:Re,remotes:k}});Ve(Ce,Re=>{Re?t.setActiveDialog({type:"generic",props:{}}):t.clearActiveDialog()});function wi(Re){t.selectedCommit?t.selectComparisonCommit(Re):t.selectCommit(Re)}function ys(Re){t.navigateToCommit(Re)}return(Re,k)=>{const R=Bv,M=Uv,E=yb,ie=zb,he=iy,ne=Py,fe=Ey,He=Ly,st=Xy,Vt=Iy,_o=Vy;return v(),y("div",$S,[p(t).loading&&p(t).commits.length===0?(v(),y("div",CS,[...k[20]||(k[20]=[d("div",{class:"w-6 h-6 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin"},null,-1),d("div",{class:"text-retro-muted text-sm"},"Loading git history...",-1)])])):p(Os)?(v(),y("div",QS,[K(p(Bn),{class:"w-12 h-12 text-retro-yellow mb-4"}),k[21]||(k[21]=d("h3",{class:"text-retro-text font-semibold mb-2"},"Not a Git Repository",-1)),k[22]||(k[22]=d("p",{class:"text-retro-muted text-sm max-w-xs"},[Le(" This directory is not initialized as a Git repository. Run "),d("code",{class:"text-retro-cyan"},"git init"),Le(" to get started. ")],-1))])):p(t).error?(v(),y("div",PS,[K(p(Bn),{class:"w-10 h-10 text-retro-red mb-3"}),d("p",TS,A(p(t).error),1),d("button",{class:"flex items-center gap-2 px-3 py-1.5 text-sm text-retro-text border border-retro-border rounded hover:border-retro-cyan hover:text-retro-cyan transition-colors",onClick:k[0]||(k[0]=Ue=>p(t).loadGitGraph(e.workingDirectory))},[K(p(cs),{class:"w-4 h-4"}),k[23]||(k[23]=Le(" Retry ",-1))])])):p(t).commits.length===0?(v(),y("div",MS,[...k[24]||(k[24]=[d("div",{class:"text-retro-muted text-center"},[d("p",null,"No commits found in this repository.")],-1)])])):(v(),y(ye,{key:4},[p(pt)?(v(),ge(R,{key:0,ref_key:"findWidgetRef",ref:bs,resultCount:p(t).searchResultHashes.length,currentIndex:p(t).searchResultIndex,onSearch:bi,onNext:p(t).nextSearchResult,onPrev:p(t).prevSearchResult,onClose:$n},null,8,["resultCount","currentIndex","onNext","onPrev"])):U("",!0),d("div",AS,[d("button",{class:_e(["flex items-center gap-1 px-2 py-1.5 text-sm border rounded transition-colors",p(pt)?"border-retro-cyan text-retro-cyan bg-retro-cyan/10":"border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text"]),"aria-label":"Find",title:"Find",onClick:k[1]||(k[1]=Ue=>p(pt)?$n():vi())},[K(p(as),{class:"w-4 h-4"})],2),d("div",_S,[d("button",{class:_e(["flex items-center gap-1 px-2 py-1.5 text-sm border rounded transition-colors",p(br)?"border-retro-cyan text-retro-cyan bg-retro-cyan/10":"border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text"]),"aria-label":"Graph settings",title:"Settings",onClick:k[2]||(k[2]=Ue=>br.value=!p(br))},[K(p(K1),{class:"w-4 h-4"})],2),p(br)?(v(),y("div",RS,[k[31]||(k[31]=d("div",{class:"px-3 py-1 text-xs text-retro-muted border-b border-retro-border mb-1"}," Graph Style ",-1)),d("label",BS,[d("input",{type:"radio",name:"graphStyle",value:"rounded",checked:p(t).graphStyle==="rounded",class:"accent-retro-cyan",onChange:k[3]||(k[3]=Ue=>p(t).setGraphStyle("rounded"))},null,40,DS),k[25]||(k[25]=d("span",{class:"text-sm text-retro-text"},"Rounded",-1))]),d("label",ZS,[d("input",{type:"radio",name:"graphStyle",value:"angular",checked:p(t).graphStyle==="angular",class:"accent-retro-cyan",onChange:k[4]||(k[4]=Ue=>p(t).setGraphStyle("angular"))},null,40,ES),k[26]||(k[26]=d("span",{class:"text-sm text-retro-text"},"Angular",-1))]),k[32]||(k[32]=d("div",{class:"px-3 py-1 text-xs text-retro-muted border-b border-retro-border mt-2 mb-1"}," Display ",-1)),d("label",LS,[d("input",{type:"checkbox",checked:p(t).muteNonAncestral,class:"accent-retro-cyan",onChange:k[5]||(k[5]=Ue=>p(t).toggleMuteNonAncestral())},null,40,XS),k[27]||(k[27]=d("span",{class:"text-sm text-retro-text"},"Mute non-ancestral",-1))]),k[33]||(k[33]=d("div",{class:"px-3 py-1 text-xs text-retro-muted border-b border-retro-border mt-2 mb-1"}," Columns ",-1)),d("label",IS,[d("input",{type:"checkbox",checked:p(t).columnVisibility.commit!==!1,class:"accent-retro-cyan",onChange:k[6]||(k[6]=Ue=>p(t).toggleColumnVisibility("commit"))},null,40,VS),k[28]||(k[28]=d("span",{class:"text-sm text-retro-text"},"Hash",-1))]),d("label",zS,[d("input",{type:"checkbox",checked:p(t).columnVisibility.author!==!1,class:"accent-retro-cyan",onChange:k[7]||(k[7]=Ue=>p(t).toggleColumnVisibility("author"))},null,40,NS),k[29]||(k[29]=d("span",{class:"text-sm text-retro-text"},"Author",-1))]),d("label",WS,[d("input",{type:"checkbox",checked:p(t).columnVisibility.date!==!1,class:"accent-retro-cyan",onChange:k[8]||(k[8]=Ue=>p(t).toggleColumnVisibility("date"))},null,40,qS),k[30]||(k[30]=d("span",{class:"text-sm text-retro-text"},"Date",-1))])])):U("",!0)]),k[36]||(k[36]=d("span",{class:"flex-1"},null,-1)),d("div",jS,[d("button",{class:_e(["flex items-center gap-1 px-2 py-1.5 text-sm border rounded transition-colors",p(vr)||p(t).filteredBranches.length>0?"border-retro-cyan text-retro-cyan bg-retro-cyan/10":"border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text"]),"aria-label":"Filter by branch","aria-expanded":p(vr),onClick:k[9]||(k[9]=Ue=>vr.value=!p(vr))},[K(p(Ov),{class:"w-4 h-4"}),p(t).filteredBranches.length>0?(v(),y("span",FS," ("+A(p(t).filteredBranches.length)+") ",1)):U("",!0)],10,YS),p(vr)?(v(),y("div",US,[k[35]||(k[35]=d("div",{class:"px-3 py-1 text-xs text-retro-muted border-b border-retro-border"}," Filter by Branch ",-1)),p(t).filteredBranches.length>0?(v(),y("button",{key:0,class:"w-full text-left px-3 py-1.5 text-sm text-retro-cyan hover:bg-retro-cyan/10",onClick:k[10]||(k[10]=Ue=>p(t).clearFilters())}," Clear All Filters ")):U("",!0),p(an).local.length>0?(v(),y(ye,{key:1},[k[34]||(k[34]=d("div",{class:"px-3 py-1 text-[10px] text-retro-green font-semibold uppercase tracking-wider mt-1"}," Local ",-1)),(v(!0),y(ye,null,Ne(p(an).local,Ue=>(v(),y("label",{key:Ue.name,class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},[d("input",{type:"checkbox",checked:p(t).filteredBranches.includes(Ue.name),class:"accent-retro-cyan",onChange:jn=>p(t).toggleBranchFilter(Ue.name)},null,40,GS),d("span",HS,A(Ue.name),1),Ue.isHead?(v(),y("span",KS,"(HEAD)")):U("",!0)]))),128))],64)):U("",!0),(v(!0),y(ye,null,Ne(p(an).remotes,(Ue,jn)=>(v(),y(ye,{key:jn},[d("div",JS,A(jn),1),(v(!0),y(ye,null,Ne(Ue,ks=>(v(),y("label",{key:ks.name,class:"flex items-center gap-2 px-3 py-1 hover:bg-retro-panel/50 cursor-pointer"},[d("input",{type:"checkbox",checked:p(t).filteredBranches.includes(ks.name),class:"accent-retro-cyan",onChange:Eh=>p(t).toggleBranchFilter(ks.name)},null,40,e2),d("span",t2,A(ks.name),1)]))),128))],64))),128))])):U("",!0)]),d("button",{class:_e(["flex items-center gap-1 px-2 py-1.5 text-sm border border-retro-border text-retro-muted rounded hover:text-retro-text hover:border-retro-text transition-colors",{"animate-spin":p(t).isRefreshing}]),"aria-label":"Refresh",title:"Refresh",onClick:k[11]||(k[11]=Ue=>p(t).loadGitGraph(e.workingDirectory))},[K(p(cs),{class:"w-4 h-4"})],2),d("button",{class:"flex items-center gap-1 px-2 py-1.5 text-sm border border-retro-border text-retro-muted rounded hover:text-retro-text hover:border-retro-text transition-colors","aria-label":"Fetch all remotes",title:"Fetch All",onClick:xi},[K(p(Km),{class:"w-4 h-4"})]),d("div",r2,[d("button",{class:_e(["flex items-center gap-1 px-2 py-1.5 text-sm border rounded transition-colors",p(sr)?"border-retro-cyan text-retro-cyan bg-retro-cyan/10":"border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text"]),"aria-label":"Manage remotes",title:"Remotes",onClick:k[12]||(k[12]=Ue=>sr.value=!p(sr))},[K(p(Jm),{class:"w-4 h-4"})],2),p(sr)?(v(),y("div",n2,[K(M,{remotes:p(t).remotes,onAdd:yi,onEdit:Xr,onDelete:ki,onClose:k[13]||(k[13]=Ue=>sr.value=!1)},null,8,["remotes"])])):U("",!0)]),p(Sn)&&e.isActive?(v(),y("div",{key:0,class:_e(["flex items-center text-[10px] text-retro-muted",{"text-retro-cyan":p(t).isRefreshing}]),title:p(t).lastRefreshTime?`Last checked: ${new Date(p(t).lastRefreshTime).toLocaleTimeString()}`:"","aria-live":"polite","aria-atomic":"true"},[d("span",{class:_e(["inline-block w-1.5 h-1.5 rounded-full mr-1",p(t).isRefreshing?"bg-retro-cyan animate-pulse":"bg-retro-muted/50"]),"aria-hidden":"true"},null,2),Le(" "+A(p(Sn)),1)],10,s2)):U("",!0)]),d("div",{class:_e(["flex-1 min-h-0 overflow-hidden",{"max-h-[50%]":p(t).selectedCommit||p(t).isUncommittedChangesSelected}])},[K(E,{ref_key:"commitListRef",ref:kn,commits:p(t).filteredCommits,stashes:p(t).stashes,selectedCommit:p(t).selectedCommit,hasMore:p(t).hasMore,loading:p(t).loading,loadingMore:p(t).loadingMore,searchQuery:p(t).searchQuery,uncommittedChangesCount:p(t).uncommittedChangesCount,isUncommittedChangesSelected:p(t).isUncommittedChangesSelected,highlightBranches:p(pi),featureHighlightBranches:p(gi),featureMergeBases:p(gs),previewHighlightBranches:p(Dt),previewMergeBases:p(nr),currentBranchName:p(t).currentBranch?.name,localBranchNames:p(t).localBranchNames,graphStyle:p(t).graphStyle,muteNonAncestral:p(t).muteNonAncestral,columnVisibility:p(t).columnVisibility,onSelect:p(t).selectCommit,onLoadMore:p(t).loadMoreCommits,onBranchContextMenu:p(T),onCommitContextMenu:p(xt),onTagContextMenu:p(Be),onStashContextMenu:p(ai),onCompareSelect:wi,onSelectUncommittedChanges:p(t).selectUncommittedChanges,onScrollStart:p(s).startInteraction,onScrollEnd:p(s).endInteraction},null,8,["commits","stashes","selectedCommit","hasMore","loading","loadingMore","searchQuery","uncommittedChangesCount","isUncommittedChangesSelected","highlightBranches","featureHighlightBranches","featureMergeBases","previewHighlightBranches","previewMergeBases","currentBranchName","localBranchNames","graphStyle","muteNonAncestral","columnVisibility","onSelect","onLoadMore","onBranchContextMenu","onCommitContextMenu","onTagContextMenu","onStashContextMenu","onSelectUncommittedChanges","onScrollStart","onScrollEnd"])],2),p(t).isComparing&&p(t).selectedCommit&&p(t).comparisonCommit?(v(),ge(ie,{key:1,fromCommit:p(t).comparisonCommit,toCommit:p(t).selectedCommit,files:p(t).comparisonFiles,stats:p(t).comparisonStats,loading:p(t).comparisonLoading,onClose:p(t).clearComparison},null,8,["fromCommit","toCommit","files","stats","loading","onClose"])):p(t).selectedCommit?(v(),ge(he,{key:2,commit:p(t).selectedCommit,files:p(t).selectedCommitFiles,stats:p(t).selectedCommitStats,loading:p(t).isLoadingDetails,detailPosition:p(t).detailViewPosition,onClose:p(t).clearSelection,onNavigateToCommit:ys,onTogglePosition:p(t).toggleDetailViewPosition,onOpenFileDiff:k[14]||(k[14]=Ue=>p(t).selectedCommit&&p(t).openFileDiff(p(t).selectedCommit.hash,Ue))},null,8,["commit","files","stats","loading","detailPosition","onClose","onTogglePosition"])):U("",!0),p(t).isUncommittedChangesSelected?(v(),ge(ne,{key:3,stagedFiles:p(t).stagedFiles,unstagedFiles:p(t).unstagedFiles,isStaging:p(t).isStaging,isCommitting:p(t).isCommitting,onClose:p(t).clearSelection,onStageFiles:k[15]||(k[15]=Ue=>p(t).stageFiles(Ue)),onUnstageFiles:k[16]||(k[16]=Ue=>p(t).unstageFiles(Ue)),onStageAll:k[17]||(k[17]=()=>p(t).stageFiles([])),onUnstageAll:k[18]||(k[18]=()=>p(t).unstageFiles([])),onCommit:k[19]||(k[19]=Ue=>p(t).commitChanges(Ue))},null,8,["stagedFiles","unstagedFiles","isStaging","isCommitting","onClose"])):U("",!0)],64)),p(qe).visible?(v(),ge(fe,{key:5,branchName:p(qe).branch,isCurrentBranch:p(qe).isCurrentBranch,isLocal:p(qe).isLocal,x:p(qe).x,y:p(qe).y,onClose:p(P),onCheckout:p(B),onCreateBranch:p(Pe),onDeleteBranch:p(ve),onRename:p(Z),onMerge:p(Ae),onRebase:p(Qe),onPush:p(se),onPull:p(ee),onFetch:p(q),onCopyName:p(pe)},null,8,["branchName","isCurrentBranch","isLocal","x","y","onClose","onCheckout","onCreateBranch","onDeleteBranch","onRename","onMerge","onRebase","onPush","onPull","onFetch","onCopyName"])):U("",!0),p(Ie).visible&&p(Ie).commit?(v(),ge(He,{key:6,commit:p(Ie).commit,x:p(Ie).x,y:p(Ie).y,onClose:p(qt),onAddTag:p(rr),onCreateBranch:p(nn),onCheckout:p(Mr),onCherryPick:p(Nn),onRevert:p(sn),onMergeInto:p(Wn),onReset:p(gr),onCopyHash:p(Er),onCopySubject:p(ae)},null,8,["commit","x","y","onClose","onAddTag","onCreateBranch","onCheckout","onCherryPick","onRevert","onMergeInto","onReset","onCopyHash","onCopySubject"])):U("",!0),p(we).visible?(v(),ge(st,{key:7,tagName:p(we).tag,x:p(we).x,y:p(we).y,onClose:p(Fe),onViewDetails:p(je),onDeleteTag:p($t),onPushTag:p(ut),onCopyName:p(jt)},null,8,["tagName","x","y","onClose","onViewDetails","onDeleteTag","onPushTag","onCopyName"])):U("",!0),p(Lr).visible&&p(Lr).stash?(v(),ge(Vt,{key:8,stashIndex:p(Lr).stash.index,stashMessage:p(Lr).stash.message,x:p(Lr).x,y:p(Lr).y,onClose:p(li),onApply:p(ci),onPop:p(ui),onDrop:p(hi),onCreateBranch:p(di),onCopyName:p(fi),onCopyHash:p(mi)},null,8,["stashIndex","stashMessage","x","y","onClose","onApply","onPop","onDrop","onCreateBranch","onCopyName","onCopyHash"])):U("",!0),p(It).visible?(v(),ge(_o,{key:9,x:p(It).x,y:p(It).y,onClose:p(Or),onStash:p(qn),onReset:p(ii),onClean:p(oi)},null,8,["x","y","onClose","onStash","onReset","onClean"])):U("",!0),K(SS,{dialogs:p(i),store:p(t),remoteNames:p(yn),copyFeedback:p(Me)},null,8,["dialogs","store","remoteNames","copyFeedback"])])}}}),a2=ps(o2,[["__scopeId","data-v-e2b31aba"]]),l2=P1("/app-logo.svg"),c2={class:"flex items-start justify-between gap-2"},u2={class:"flex-1 min-w-0"},h2={class:"flex items-center gap-2"},d2={class:"font-mono text-sm text-retro-text truncate"},f2={class:"text-xs font-mono text-retro-muted mt-1 truncate"},m2={class:"flex items-center gap-1 flex-shrink-0"},p2={key:0,class:"inline-flex items-center gap-1 text-[10px] font-mono text-retro-red",title:"Critical traceability gaps"},g2={key:1,class:"inline-flex items-center gap-1 text-[10px] font-mono text-retro-yellow",title:"Major traceability gaps"},O2={key:2,class:"text-[10px] font-mono text-retro-muted mr-1",title:"Completed tasks / total tasks"},v2={key:3,class:"w-2 h-2 rounded-full bg-retro-green",title:"spec"},b2={key:4,class:"w-2 h-2 rounded-full bg-retro-cyan",title:"plan"},x2={key:5,class:"w-2 h-2 rounded-full bg-retro-yellow",title:"tasks"},y2={class:"flex flex-wrap items-center justify-between gap-1 mt-2"},k2={key:0,class:"flex items-center gap-1"},w2=["title","disabled","onClick"],S2=Xe({__name:"FeatureCard",props:{feature:{},skills:{},isActive:{type:Boolean},criticalAlerts:{},majorAlerts:{}},emits:["select","cascade","openChat","skill"],setup(r,{emit:e}){const t={DocumentCheckIcon:hv,PuzzlePieceIcon:Yh,DocumentMagnifyingGlassIcon:fv,WrenchScrewdriverIcon:Cv,SparklesIcon:Pa,BeakerIcon:nv,ShieldCheckIcon:rp,CommandLineIcon:uv,CpuChipIcon:I1,LightBulbIcon:xv},n=r,s=e,i=mr();function o(f){return t[f]||Yh}function a(f){return f.prerequisites.every(m=>n.feature.files.some(g=>g.filename===m))}function l(f){return f.prerequisites.filter(m=>!n.feature.files.some(g=>g.filename===m))}function c(f){return a(f)?`${f.name} (Shift+click: new conversation)`:`Requires: ${l(f).join(", ")}`}const u=H(()=>{const f=i.findConversationByFeature(n.feature.id);return f?i.isConversationStreaming(f.id):!1}),h=H(()=>n.isActive?["border-retro-cyan shadow-retro","feature-card-active","dark:bg-gradient-to-br dark:from-retro-cyan/10 dark:via-retro-panel dark:to-retro-magenta/5"]:["border-retro-border","feature-card-light","hover:border-retro-muted","dark:bg-gradient-to-br","dark:from-retro-panel dark:via-retro-panel dark:to-retro-cyan/5","dark:hover:from-retro-cyan/5 dark:hover:via-retro-panel dark:hover:to-retro-magenta/5"]);return(f,m)=>(v(),y("button",{type:"button",class:_e(["w-full p-3 text-left rounded-lg border transition-all duration-200 group",p(h)]),onClick:m[5]||(m[5]=g=>s("select",r.feature.id))},[d("div",c2,[d("div",u2,[d("div",h2,[K(p(Vs),{class:_e(["h-4 w-4 flex-shrink-0 transition-colors duration-200",r.isActive?"text-retro-cyan":"text-retro-muted group-hover:text-retro-cyan"])},null,8,["class"]),d("span",d2,A(r.feature.id),1)]),d("p",f2,A(r.feature.name),1)]),d("div",m2,[r.criticalAlerts>0?(v(),y("span",p2,[m[6]||(m[6]=d("span",{class:"w-1.5 h-1.5 rounded-full bg-retro-red"},null,-1)),Le(" "+A(r.criticalAlerts),1)])):U("",!0),r.majorAlerts>0?(v(),y("span",g2,[m[7]||(m[7]=d("span",{class:"w-1.5 h-1.5 rounded-full bg-retro-yellow"},null,-1)),Le(" "+A(r.majorAlerts),1)])):U("",!0),r.feature.hasTasks?(v(),y("span",O2,A(r.feature.completedTasks)+"/"+A(r.feature.totalTasks),1)):U("",!0),r.feature.hasSpec?(v(),y("span",v2)):U("",!0),r.feature.hasPlan?(v(),y("span",b2)):U("",!0),r.feature.hasTasks?(v(),y("span",x2)):U("",!0)])]),d("div",y2,[r.feature.hasSpec?(v(),y("div",k2,[d("button",{type:"button",class:"flex items-center justify-center p-1 bg-retro-cyan/20 text-retro-cyan rounded hover:bg-retro-cyan/30 transition-colors",title:"Clarify spec (Shift+click: new conversation)",onClick:m[0]||(m[0]=xr(g=>s("cascade",g,r.feature.id,"clarify"),["stop"]))},[K(p(Ru),{class:"h-3.5 w-3.5"})]),d("button",{type:"button",class:"flex items-center justify-center p-1 bg-retro-cyan/20 text-retro-cyan rounded hover:bg-retro-cyan/30 transition-colors",title:"Plan → Tasks → Implement (Shift+click: new conversation)",onClick:m[1]||(m[1]=xr(g=>s("cascade",g,r.feature.id,"plan"),["stop"]))},[K(p(_u),{class:"h-3.5 w-3.5"})]),r.feature.hasPlan?(v(),y("button",{key:0,type:"button",class:"flex items-center justify-center p-1 bg-retro-yellow/20 text-retro-yellow rounded hover:bg-retro-yellow/30 transition-colors",title:"Tasks → Implement (Shift+click: new conversation)",onClick:m[2]||(m[2]=xr(g=>s("cascade",g,r.feature.id,"tasks"),["stop"]))},[K(p(ep),{class:"h-3.5 w-3.5"})])):U("",!0),r.feature.hasTasks?(v(),y("button",{key:1,type:"button",class:"flex items-center justify-center p-1 bg-retro-magenta/20 text-retro-magenta rounded hover:bg-retro-magenta/30 transition-colors",title:"Implement (Shift+click: new conversation)",onClick:m[3]||(m[3]=xr(g=>s("cascade",g,r.feature.id,"implement"),["stop"]))},[K(p(wv),{class:"h-3.5 w-3.5"})])):U("",!0),r.skills.length>0?(v(),y(ye,{key:2},[m[8]||(m[8]=d("div",{class:"w-px h-4 bg-retro-border mx-0.5"},null,-1)),(v(!0),y(ye,null,Ne(r.skills,g=>(v(),y("button",{key:g.id,type:"button",class:_e(["flex items-center justify-center p-1 rounded transition-colors",[a(g)&&!p(u)?"bg-retro-pink/20 text-retro-pink hover:bg-retro-pink/30":"bg-retro-subtle/10 text-retro-subtle cursor-not-allowed",p(u)?"animate-pulse":""]]),title:c(g),disabled:!a(g)||p(u),onClick:xr(O=>s("skill",O,r.feature.id,g.id),["stop"])},[(v(),ge(Xs(o(g.icon)),{class:"h-3.5 w-3.5"}))],10,w2))),128))],64)):U("",!0)])):U("",!0),r.feature.hasSpec?(v(),y("button",{key:1,type:"button",class:"flex items-center justify-center p-1 bg-retro-green/20 text-retro-green rounded hover:bg-retro-green/30 transition-colors",title:"Open new chat linked to this spec",onClick:m[4]||(m[4]=xr(g=>s("openChat",g,r.feature.id),["stop"]))},[K(p(av),{class:"h-3.5 w-3.5"})])):U("",!0)])],2))}});let Sc=[],ip=[];(()=>{let r="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(e=>e?parseInt(e,36):1);for(let e=0,t=0;e<r.length;e++)(e%2?ip:Sc).push(t=t+r[e])})();function $2(r){if(r<768)return!1;for(let e=0,t=Sc.length;;){let n=e+t>>1;if(r<Sc[n])t=n;else if(r>=ip[n])e=n+1;else return!0;if(e==t)return!1}}function ed(r){return r>=127462&&r<=127487}const td=8205;function C2(r,e,t=!0,n=!0){return(t?op:Q2)(r,e,n)}function op(r,e,t){if(e==r.length)return e;e&&ap(r.charCodeAt(e))&&lp(r.charCodeAt(e-1))&&e--;let n=Tl(r,e);for(e+=rd(n);e<r.length;){let s=Tl(r,e);if(n==td||s==td||t&&$2(s))e+=rd(s),n=s;else if(ed(s)){let i=0,o=e-2;for(;o>=0&&ed(Tl(r,o));)i++,o-=2;if(i%2==0)break;e+=2}else break}return e}function Q2(r,e,t){for(;e>0;){let n=op(r,e-2,t);if(n<e)return n;e--}return 0}function Tl(r,e){let t=r.charCodeAt(e);if(!lp(t)||e+1==r.length)return t;let n=r.charCodeAt(e+1);return ap(n)?(t-55296<<10)+(n-56320)+65536:t}function ap(r){return r>=56320&&r<57344}function lp(r){return r>=55296&&r<56320}function rd(r){return r<65536?1:2}class et{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=Ns(this,e,t);let s=[];return this.decompose(0,e,s,2),n.length&&n.decompose(0,n.length,s,3),this.decompose(t,this.length,s,1),jr.from(s,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=Ns(this,e,t);let n=[];return this.decompose(e,t,n,0),jr.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),s=new Ei(this),i=new Ei(e);for(let o=t,a=t;;){if(s.next(o),i.next(o),o=0,s.lineBreak!=i.lineBreak||s.done!=i.done||s.value!=i.value)return!1;if(a+=s.value.length,s.done||a>=n)return!0}}iter(e=1){return new Ei(this,e)}iterRange(e,t=this.length){return new cp(this,e,t)}iterLines(e,t){let n;if(e==null)n=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;n=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new up(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?et.empty:e.length<=32?new gt(e):jr.from(gt.split(e,[]))}}class gt extends et{constructor(e,t=P2(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,s){for(let i=0;;i++){let o=this.text[i],a=s+o.length;if((t?n:a)>=e)return new T2(s,a,n,o);s=a+1,n++}}decompose(e,t,n,s){let i=e<=0&&t>=this.length?this:new gt(nd(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=n.pop(),a=fa(i.text,o.text.slice(),0,i.length);if(a.length<=32)n.push(new gt(a,o.length+i.length));else{let l=a.length>>1;n.push(new gt(a.slice(0,l)),new gt(a.slice(l)))}}else n.push(i)}replace(e,t,n){if(!(n instanceof gt))return super.replace(e,t,n);[e,t]=Ns(this,e,t);let s=fa(this.text,fa(n.text,nd(this.text,0,e)),t),i=this.length+n.length-(t-e);return s.length<=32?new gt(s,i):jr.from(gt.split(s,[]),i)}sliceString(e,t=this.length,n=`
|
|
12
|
+
`){[e,t]=Ns(this,e,t);let s="";for(let i=0,o=0;i<=t&&o<this.text.length;o++){let a=this.text[o],l=i+a.length;i>e&&o&&(s+=n),e<l&&t>i&&(s+=a.slice(Math.max(0,e-i),t-i)),i=l+1}return s}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let n=[],s=-1;for(let i of e)n.push(i),s+=i.length+1,n.length==32&&(t.push(new gt(n,s)),n=[],s=-1);return s>-1&&t.push(new gt(n,s)),t}}class jr extends et{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let n of e)this.lines+=n.lines}lineInner(e,t,n,s){for(let i=0;;i++){let o=this.children[i],a=s+o.length,l=n+o.lines-1;if((t?l:a)>=e)return o.lineInner(e,t,n,s);s=a+1,n=l+1}}decompose(e,t,n,s){for(let i=0,o=0;o<=t&&i<this.children.length;i++){let a=this.children[i],l=o+a.length;if(e<=l&&t>=o){let c=s&((o<=e?1:0)|(l>=t?2:0));o>=e&&l<=t&&!c?n.push(a):a.decompose(e-o,t-o,n,c)}o=l+1}}replace(e,t,n){if([e,t]=Ns(this,e,t),n.lines<this.lines)for(let s=0,i=0;s<this.children.length;s++){let o=this.children[s],a=i+o.length;if(e>=i&&t<=a){let l=o.replace(e-i,t-i,n),c=this.lines-o.lines+l.lines;if(l.lines<c>>4&&l.lines>c>>6){let u=this.children.slice();return u[s]=l,new jr(u,this.length-(t-e)+n.length)}return super.replace(i,a,l)}i=a+1}return super.replace(e,t,n)}sliceString(e,t=this.length,n=`
|
|
13
|
+
`){[e,t]=Ns(this,e,t);let s="";for(let i=0,o=0;i<this.children.length&&o<=t;i++){let a=this.children[i],l=o+a.length;o>e&&i&&(s+=n),e<l&&t>o&&(s+=a.sliceString(e-o,t-o,n)),o=l+1}return s}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof jr))return 0;let n=0,[s,i,o,a]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;s+=t,i+=t){if(s==o||i==a)return n;let l=this.children[s],c=e.children[i];if(l!=c)return n+l.scanIdentical(c,t);n+=l.length+1}}static from(e,t=e.reduce((n,s)=>n+s.length+1,-1)){let n=0;for(let m of e)n+=m.lines;if(n<32){let m=[];for(let g of e)g.flatten(m);return new gt(m,t)}let s=Math.max(32,n>>5),i=s<<1,o=s>>1,a=[],l=0,c=-1,u=[];function h(m){let g;if(m.lines>i&&m instanceof jr)for(let O of m.children)h(O);else m.lines>o&&(l>o||!l)?(f(),a.push(m)):m instanceof gt&&l&&(g=u[u.length-1])instanceof gt&&m.lines+g.lines<=32?(l+=m.lines,c+=m.length+1,u[u.length-1]=new gt(g.text.concat(m.text),g.length+1+m.length)):(l+m.lines>s&&f(),l+=m.lines,c+=m.length+1,u.push(m))}function f(){l!=0&&(a.push(u.length==1?u[0]:jr.from(u,c)),c=-1,l=u.length=0)}for(let m of e)h(m);return f(),a.length==1?a[0]:new jr(a,t)}}et.empty=new gt([""],0);function P2(r){let e=-1;for(let t of r)e+=t.length+1;return e}function fa(r,e,t=0,n=1e9){for(let s=0,i=0,o=!0;i<r.length&&s<=n;i++){let a=r[i],l=s+a.length;l>=t&&(l>n&&(a=a.slice(0,n-s)),s<t&&(a=a.slice(t-s)),o?(e[e.length-1]+=a,o=!1):e.push(a)),s=l+1}return e}function nd(r,e,t){return fa(r,[""],e,t)}class Ei{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof gt?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,s=this.nodes[n],i=this.offsets[n],o=i>>1,a=s instanceof gt?s.text.length:s.children.length;if(o==(t>0?a:0)){if(n==0)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((i&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=`
|
|
14
|
+
`,this;e--}else if(s instanceof gt){let l=s.text[o+(t<0?-1:0)];if(this.offsets[n]+=t,l.length>Math.max(0,e))return this.value=e==0?l:t>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=s.children[o+(t<0?-1:0)];e>l.length?(e-=l.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(l),this.offsets.push(t>0?1:(l instanceof gt?l.text.length:l.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class cp{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new Ei(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:s}=this.cursor.next(e);return this.pos+=(s.length+e)*t,this.value=s.length<=n?s:t<0?s.slice(s.length-n):s.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class up{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:s}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=s,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(et.prototype[Symbol.iterator]=function(){return this.iter()},Ei.prototype[Symbol.iterator]=cp.prototype[Symbol.iterator]=up.prototype[Symbol.iterator]=function(){return this});let T2=class{constructor(e,t,n,s){this.from=e,this.to=t,this.number=n,this.text=s}get length(){return this.to-this.from}};function Ns(r,e,t){return e=Math.max(0,Math.min(r.length,e)),[e,Math.max(e,Math.min(r.length,t))]}function Qt(r,e,t=!0,n=!0){return C2(r,e,t,n)}function M2(r){return r>=56320&&r<57344}function A2(r){return r>=55296&&r<56320}function Gt(r,e){let t=r.charCodeAt(e);if(!A2(t)||e+1==r.length)return t;let n=r.charCodeAt(e+1);return M2(n)?(t-55296<<10)+(n-56320)+65536:t}function Eu(r){return r<=65535?String.fromCharCode(r):(r-=65536,String.fromCharCode((r>>10)+55296,(r&1023)+56320))}function Yr(r){return r<65536?1:2}const $c=/\r\n?|\n/;var At=(function(r){return r[r.Simple=0]="Simple",r[r.TrackDel=1]="TrackDel",r[r.TrackBefore=2]="TrackBefore",r[r.TrackAfter=3]="TrackAfter",r})(At||(At={}));class Jr{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t+1];e+=n<0?this.sections[t]:n}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,n=0,s=0;t<this.sections.length;){let i=this.sections[t++],o=this.sections[t++];o<0?(e(n,s,i),s+=i):s+=o,n+=i}}iterChangedRanges(e,t=!1){Cc(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let n=this.sections[t++],s=this.sections[t++];s<0?e.push(n,s):e.push(s,n)}return new Jr(e)}composeDesc(e){return this.empty?e:e.empty?this:hp(this,e)}mapDesc(e,t=!1){return e.empty?this:Qc(this,e,t)}mapPos(e,t=-1,n=At.Simple){let s=0,i=0;for(let o=0;o<this.sections.length;){let a=this.sections[o++],l=this.sections[o++],c=s+a;if(l<0){if(c>e)return i+(e-s);i+=a}else{if(n!=At.Simple&&c>=e&&(n==At.TrackDel&&s<e&&c>e||n==At.TrackBefore&&s<e||n==At.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!a)return e==s||t<0?i:i+l;i+=l}s=c}if(e>s)throw new RangeError(`Position ${e} is out of range for changeset of length ${s}`);return i}touchesRange(e,t=e){for(let n=0,s=0;n<this.sections.length&&s<=t;){let i=this.sections[n++],o=this.sections[n++],a=s+i;if(o>=0&&s<=t&&a>=e)return s<e&&a>t?"cover":!0;s=a}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let n=this.sections[t++],s=this.sections[t++];e+=(e?" ":"")+n+(s>=0?":"+s:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new Jr(e)}static create(e){return new Jr(e)}}class yt extends Jr{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Cc(this,(t,n,s,i,o)=>e=e.replace(s,s+(n-t),o),!1),e}mapDesc(e,t=!1){return Qc(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let s=0,i=0;s<t.length;s+=2){let o=t[s],a=t[s+1];if(a>=0){t[s]=a,t[s+1]=o;let l=s>>1;for(;n.length<l;)n.push(et.empty);n.push(o?e.slice(i,i+o):et.empty)}i+=o}return new yt(t,n)}compose(e){return this.empty?e:e.empty?this:hp(this,e,!0)}map(e,t=!1){return e.empty?this:Qc(this,e,t,!0)}iterChanges(e,t=!1){Cc(this,e,t)}get desc(){return Jr.create(this.sections)}filter(e){let t=[],n=[],s=[],i=new qi(this);e:for(let o=0,a=0;;){let l=o==e.length?1e9:e[o++];for(;a<l||a==l&&i.len==0;){if(i.done)break e;let u=Math.min(i.len,l-a);Et(s,u,-1);let h=i.ins==-1?-1:i.off==0?i.ins:0;Et(t,u,h),h>0&&_n(n,t,i.text),i.forward(u),a+=u}let c=e[o++];for(;a<c;){if(i.done)break e;let u=Math.min(i.len,c-a);Et(t,u,-1),Et(s,u,i.ins==-1?-1:i.off==0?i.ins:0),i.forward(u),a+=u}}return{changes:new yt(t,n),filtered:Jr.create(s)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t],s=this.sections[t+1];s<0?e.push(n):s==0?e.push([n]):e.push([n].concat(this.inserted[t>>1].toJSON()))}return e}static of(e,t,n){let s=[],i=[],o=0,a=null;function l(u=!1){if(!u&&!s.length)return;o<t&&Et(s,t-o,-1);let h=new yt(s,i);a=a?a.compose(h.map(a)):h,s=[],i=[],o=0}function c(u){if(Array.isArray(u))for(let h of u)c(h);else if(u instanceof yt){if(u.length!=t)throw new RangeError(`Mismatched change set length (got ${u.length}, expected ${t})`);l(),a=a?a.compose(u.map(a)):u}else{let{from:h,to:f=h,insert:m}=u;if(h>f||h<0||f>t)throw new RangeError(`Invalid change range ${h} to ${f} (in doc of length ${t})`);let g=m?typeof m=="string"?et.of(m.split(n||$c)):m:et.empty,O=g.length;if(h==f&&O==0)return;h<o&&l(),h>o&&Et(s,h-o,-1),Et(s,f-h,O),_n(i,s,g),o=f}}return c(e),l(!a),a}static empty(e){return new yt(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],n=[];for(let s=0;s<e.length;s++){let i=e[s];if(typeof i=="number")t.push(i,-1);else{if(!Array.isArray(i)||typeof i[0]!="number"||i.some((o,a)=>a&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(i.length==1)t.push(i[0],0);else{for(;n.length<s;)n.push(et.empty);n[s]=et.of(i.slice(1)),t.push(i[0],n[s].length)}}}return new yt(t,n)}static createSet(e,t){return new yt(e,t)}}function Et(r,e,t,n=!1){if(e==0&&t<=0)return;let s=r.length-2;s>=0&&t<=0&&t==r[s+1]?r[s]+=e:s>=0&&e==0&&r[s]==0?r[s+1]+=t:n?(r[s]+=e,r[s+1]+=t):r.push(e,t)}function _n(r,e,t){if(t.length==0)return;let n=e.length-2>>1;if(n<r.length)r[r.length-1]=r[r.length-1].append(t);else{for(;r.length<n;)r.push(et.empty);r.push(t)}}function Cc(r,e,t){let n=r.inserted;for(let s=0,i=0,o=0;o<r.sections.length;){let a=r.sections[o++],l=r.sections[o++];if(l<0)s+=a,i+=a;else{let c=s,u=i,h=et.empty;for(;c+=a,u+=l,l&&n&&(h=h.append(n[o-2>>1])),!(t||o==r.sections.length||r.sections[o+1]<0);)a=r.sections[o++],l=r.sections[o++];e(s,c,i,u,h),s=c,i=u}}}function Qc(r,e,t,n=!1){let s=[],i=n?[]:null,o=new qi(r),a=new qi(e);for(let l=-1;;){if(o.done&&a.len||a.done&&o.len)throw new Error("Mismatched change set lengths");if(o.ins==-1&&a.ins==-1){let c=Math.min(o.len,a.len);Et(s,c,-1),o.forward(c),a.forward(c)}else if(a.ins>=0&&(o.ins<0||l==o.i||o.off==0&&(a.len<o.len||a.len==o.len&&!t))){let c=a.len;for(Et(s,a.ins,-1);c;){let u=Math.min(o.len,c);o.ins>=0&&l<o.i&&o.len<=u&&(Et(s,0,o.ins),i&&_n(i,s,o.text),l=o.i),o.forward(u),c-=u}a.next()}else if(o.ins>=0){let c=0,u=o.len;for(;u;)if(a.ins==-1){let h=Math.min(u,a.len);c+=h,u-=h,a.forward(h)}else if(a.ins==0&&a.len<u)u-=a.len,a.next();else break;Et(s,c,l<o.i?o.ins:0),i&&l<o.i&&_n(i,s,o.text),l=o.i,o.forward(o.len-u)}else{if(o.done&&a.done)return i?yt.createSet(s,i):Jr.create(s);throw new Error("Mismatched change set lengths")}}}function hp(r,e,t=!1){let n=[],s=t?[]:null,i=new qi(r),o=new qi(e);for(let a=!1;;){if(i.done&&o.done)return s?yt.createSet(n,s):Jr.create(n);if(i.ins==0)Et(n,i.len,0,a),i.next();else if(o.len==0&&!o.done)Et(n,0,o.ins,a),s&&_n(s,n,o.text),o.next();else{if(i.done||o.done)throw new Error("Mismatched change set lengths");{let l=Math.min(i.len2,o.len),c=n.length;if(i.ins==-1){let u=o.ins==-1?-1:o.off?0:o.ins;Et(n,l,u,a),s&&u&&_n(s,n,o.text)}else o.ins==-1?(Et(n,i.off?0:i.len,l,a),s&&_n(s,n,i.textBit(l))):(Et(n,i.off?0:i.len,o.off?0:o.ins,a),s&&!o.off&&_n(s,n,o.text));a=(i.ins>l||o.ins>=0&&o.len>l)&&(a||n.length>c),i.forward2(l),o.forward(l)}}}}class qi{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?et.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?et.empty:t[n].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class ts{constructor(e,t,n){this.from=e,this.to=t,this.flags=n}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,t=-1){let n,s;return this.empty?n=s=e.mapPos(this.from,t):(n=e.mapPos(this.from,1),s=e.mapPos(this.to,-1)),n==this.from&&s==this.to?this:new ts(n,s,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return J.range(e,t);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return J.range(this.anchor,n)}eq(e,t=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return J.range(e.anchor,e.head)}static create(e,t,n){return new ts(e,t,n)}}class J{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:J.create(this.ranges.map(n=>n.map(e,t)),this.mainIndex)}eq(e,t=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;n<this.ranges.length;n++)if(!this.ranges[n].eq(e.ranges[n],t))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new J([this.main],0)}addRange(e,t=!0){return J.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let n=this.ranges.slice();return n[t]=e,J.create(n,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new J(e.ranges.map(t=>ts.fromJSON(t)),e.main)}static single(e,t=e){return new J([J.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let n=0,s=0;s<e.length;s++){let i=e[s];if(i.empty?i.from<=n:i.from<n)return J.normalized(e.slice(),t);n=i.to}return new J(e,t)}static cursor(e,t=0,n,s){return ts.create(e,e,(t==0?0:t<0?8:16)|(n==null?7:Math.min(6,n))|(s??16777215)<<6)}static range(e,t,n,s){let i=(n??16777215)<<6|(s==null?7:Math.min(6,s));return t<e?ts.create(t,e,48|i):ts.create(e,t,(t>e?8:0)|i)}static normalized(e,t=0){let n=e[t];e.sort((s,i)=>s.from-i.from),t=e.indexOf(n);for(let s=1;s<e.length;s++){let i=e[s],o=e[s-1];if(i.empty?i.from<=o.to:i.from<o.to){let a=o.from,l=Math.max(i.to,o.to);s<=t&&t--,e.splice(--s,2,i.anchor>i.head?J.range(l,a):J.range(a,l))}}return new J(e,t)}}function dp(r,e){for(let t of r.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let Lu=0;class Se{constructor(e,t,n,s,i){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=s,this.id=Lu++,this.default=e([]),this.extensions=typeof i=="function"?i(this):i}get reader(){return this}static define(e={}){return new Se(e.combine||(t=>t),e.compareInput||((t,n)=>t===n),e.compare||(e.combine?(t,n)=>t===n:Xu),!!e.static,e.enables)}of(e){return new ma([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new ma(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new ma(e,this,2,t)}from(e,t){return t||(t=n=>n),this.compute([e],n=>t(n.field(e)))}}function Xu(r,e){return r==e||r.length==e.length&&r.every((t,n)=>t===e[n])}class ma{constructor(e,t,n,s){this.dependencies=e,this.facet=t,this.type=n,this.value=s,this.id=Lu++}dynamicSlot(e){var t;let n=this.value,s=this.facet.compareInput,i=this.id,o=e[i]>>1,a=this.type==2,l=!1,c=!1,u=[];for(let h of this.dependencies)h=="doc"?l=!0:h=="selection"?c=!0:(((t=e[h.id])!==null&&t!==void 0?t:1)&1)==0&&u.push(e[h.id]);return{create(h){return h.values[o]=n(h),1},update(h,f){if(l&&f.docChanged||c&&(f.docChanged||f.selection)||Pc(h,u)){let m=n(h);if(a?!sd(m,h.values[o],s):!s(m,h.values[o]))return h.values[o]=m,1}return 0},reconfigure:(h,f)=>{let m,g=f.config.address[i];if(g!=null){let O=Ma(f,g);if(this.dependencies.every(b=>b instanceof Se?f.facet(b)===h.facet(b):b instanceof Pt?f.field(b,!1)==h.field(b,!1):!0)||(a?sd(m=n(h),O,s):s(m=n(h),O)))return h.values[o]=O,0}else m=n(h);return h.values[o]=m,1}}}}function sd(r,e,t){if(r.length!=e.length)return!1;for(let n=0;n<r.length;n++)if(!t(r[n],e[n]))return!1;return!0}function Pc(r,e){let t=!1;for(let n of e)Li(r,n)&1&&(t=!0);return t}function _2(r,e,t){let n=t.map(l=>r[l.id]),s=t.map(l=>l.type),i=n.filter(l=>!(l&1)),o=r[e.id]>>1;function a(l){let c=[];for(let u=0;u<n.length;u++){let h=Ma(l,n[u]);if(s[u]==2)for(let f of h)c.push(f);else c.push(h)}return e.combine(c)}return{create(l){for(let c of n)Li(l,c);return l.values[o]=a(l),1},update(l,c){if(!Pc(l,i))return 0;let u=a(l);return e.compare(u,l.values[o])?0:(l.values[o]=u,1)},reconfigure(l,c){let u=Pc(l,n),h=c.config.facets[e.id],f=c.facet(e);if(h&&!u&&Xu(t,h))return l.values[o]=f,0;let m=a(l);return e.compare(m,f)?(l.values[o]=f,0):(l.values[o]=m,1)}}}const Lo=Se.define({static:!0});class Pt{constructor(e,t,n,s,i){this.id=e,this.createF=t,this.updateF=n,this.compareF=s,this.spec=i,this.provides=void 0}static define(e){let t=new Pt(Lu++,e.create,e.update,e.compare||((n,s)=>n===s),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Lo).find(n=>n.field==this);return(t?.create||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:n=>(n.values[t]=this.create(n),1),update:(n,s)=>{let i=n.values[t],o=this.updateF(i,s);return this.compareF(i,o)?0:(n.values[t]=o,1)},reconfigure:(n,s)=>{let i=n.facet(Lo),o=s.facet(Lo),a;return(a=i.find(l=>l.field==this))&&a!=o.find(l=>l.field==this)?(n.values[t]=a.create(n),1):s.config.address[this.id]!=null?(n.values[t]=s.field(this),0):(n.values[t]=this.create(n),1)}}}init(e){return[this,Lo.of({field:this,create:e})]}get extension(){return this}}const Kn={lowest:4,low:3,default:2,high:1,highest:0};function Si(r){return e=>new fp(e,r)}const bn={highest:Si(Kn.highest),high:Si(Kn.high),default:Si(Kn.default),low:Si(Kn.low),lowest:Si(Kn.lowest)};class fp{constructor(e,t){this.inner=e,this.prec=t}}class fl{of(e){return new Tc(this,e)}reconfigure(e){return fl.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class Tc{constructor(e,t){this.compartment=e,this.inner=t}}class Ta{constructor(e,t,n,s,i,o){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=s,this.staticValues=i,this.facets=o,this.statusTemplate=[];this.statusTemplate.length<n.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(e,t,n){let s=[],i=Object.create(null),o=new Map;for(let f of R2(e,t,o))f instanceof Pt?s.push(f):(i[f.facet.id]||(i[f.facet.id]=[])).push(f);let a=Object.create(null),l=[],c=[];for(let f of s)a[f.id]=c.length<<1,c.push(m=>f.slot(m));let u=n?.config.facets;for(let f in i){let m=i[f],g=m[0].facet,O=u&&u[f]||[];if(m.every(b=>b.type==0))if(a[g.id]=l.length<<1|1,Xu(O,m))l.push(n.facet(g));else{let b=g.combine(m.map(x=>x.value));l.push(n&&g.compare(b,n.facet(g))?n.facet(g):b)}else{for(let b of m)b.type==0?(a[b.id]=l.length<<1|1,l.push(b.value)):(a[b.id]=c.length<<1,c.push(x=>b.dynamicSlot(x)));a[g.id]=c.length<<1,c.push(b=>_2(b,g,m))}}let h=c.map(f=>f(a));return new Ta(e,o,h,a,l,i)}}function R2(r,e,t){let n=[[],[],[],[],[]],s=new Map;function i(o,a){let l=s.get(o);if(l!=null){if(l<=a)return;let c=n[l].indexOf(o);c>-1&&n[l].splice(c,1),o instanceof Tc&&t.delete(o.compartment)}if(s.set(o,a),Array.isArray(o))for(let c of o)i(c,a);else if(o instanceof Tc){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(o.compartment)||o.inner;t.set(o.compartment,c),i(c,a)}else if(o instanceof fp)i(o.inner,o.prec);else if(o instanceof Pt)n[a].push(o),o.provides&&i(o.provides,a);else if(o instanceof ma)n[a].push(o),o.facet.extensions&&i(o.facet.extensions,Kn.default);else{let c=o.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);i(c,a)}}return i(r,Kn.default),n.reduce((o,a)=>o.concat(a))}function Li(r,e){if(e&1)return 2;let t=e>>1,n=r.status[t];if(n==4)throw new Error("Cyclic dependency between fields and/or facets");if(n&2)return n;r.status[t]=4;let s=r.computeSlot(r,r.config.dynamicSlots[t]);return r.status[t]=2|s}function Ma(r,e){return e&1?r.config.staticValues[e>>1]:r.values[e>>1]}const mp=Se.define(),Mc=Se.define({combine:r=>r.some(e=>e),static:!0}),pp=Se.define({combine:r=>r.length?r[0]:void 0,static:!0}),gp=Se.define(),Op=Se.define(),vp=Se.define(),bp=Se.define({combine:r=>r.length?r[0]:!1});class xn{constructor(e,t){this.type=e,this.value=t}static define(){return new B2}}class B2{of(e){return new xn(this,e)}}class D2{constructor(e){this.map=e}of(e){return new ze(this,e)}}class ze{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new ze(this.type,t)}is(e){return this.type==e}static define(e={}){return new D2(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let s of e){let i=s.map(t);i&&n.push(i)}return n}}ze.reconfigure=ze.define();ze.appendConfig=ze.define();class vt{constructor(e,t,n,s,i,o){this.startState=e,this.changes=t,this.selection=n,this.effects=s,this.annotations=i,this.scrollIntoView=o,this._doc=null,this._state=null,n&&dp(n,t.newLength),i.some(a=>a.type==vt.time)||(this.annotations=i.concat(vt.time.of(Date.now())))}static create(e,t,n,s,i,o){return new vt(e,t,n,s,i,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(vt.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}vt.time=xn.define();vt.userEvent=xn.define();vt.addToHistory=xn.define();vt.remote=xn.define();function Z2(r,e){let t=[];for(let n=0,s=0;;){let i,o;if(n<r.length&&(s==e.length||e[s]>=r[n]))i=r[n++],o=r[n++];else if(s<e.length)i=e[s++],o=e[s++];else return t;!t.length||t[t.length-1]<i?t.push(i,o):t[t.length-1]<o&&(t[t.length-1]=o)}}function xp(r,e,t){var n;let s,i,o;return t?(s=e.changes,i=yt.empty(e.changes.length),o=r.changes.compose(e.changes)):(s=e.changes.map(r.changes),i=r.changes.mapDesc(e.changes,!0),o=r.changes.compose(s)),{changes:o,selection:e.selection?e.selection.map(i):(n=r.selection)===null||n===void 0?void 0:n.map(s),effects:ze.mapEffects(r.effects,s).concat(ze.mapEffects(e.effects,i)),annotations:r.annotations.length?r.annotations.concat(e.annotations):e.annotations,scrollIntoView:r.scrollIntoView||e.scrollIntoView}}function Ac(r,e,t){let n=e.selection,s=As(e.annotations);return e.userEvent&&(s=s.concat(vt.userEvent.of(e.userEvent))),{changes:e.changes instanceof yt?e.changes:yt.of(e.changes||[],t,r.facet(pp)),selection:n&&(n instanceof J?n:J.single(n.anchor,n.head)),effects:As(e.effects),annotations:s,scrollIntoView:!!e.scrollIntoView}}function yp(r,e,t){let n=Ac(r,e.length?e[0]:{},r.doc.length);e.length&&e[0].filter===!1&&(t=!1);for(let i=1;i<e.length;i++){e[i].filter===!1&&(t=!1);let o=!!e[i].sequential;n=xp(n,Ac(r,e[i],o?n.changes.newLength:r.doc.length),o)}let s=vt.create(r,n.changes,n.selection,n.effects,n.annotations,n.scrollIntoView);return L2(t?E2(s):s)}function E2(r){let e=r.startState,t=!0;for(let s of e.facet(gp)){let i=s(r);if(i===!1){t=!1;break}Array.isArray(i)&&(t=t===!0?i:Z2(t,i))}if(t!==!0){let s,i;if(t===!1)i=r.changes.invertedDesc,s=yt.empty(e.doc.length);else{let o=r.changes.filter(t);s=o.changes,i=o.filtered.mapDesc(o.changes).invertedDesc}r=vt.create(e,s,r.selection&&r.selection.map(i),ze.mapEffects(r.effects,i),r.annotations,r.scrollIntoView)}let n=e.facet(Op);for(let s=n.length-1;s>=0;s--){let i=n[s](r);i instanceof vt?r=i:Array.isArray(i)&&i.length==1&&i[0]instanceof vt?r=i[0]:r=yp(e,As(i),!1)}return r}function L2(r){let e=r.startState,t=e.facet(vp),n=r;for(let s=t.length-1;s>=0;s--){let i=t[s](r);i&&Object.keys(i).length&&(n=xp(n,Ac(e,i,r.changes.newLength),!0))}return n==r?r:vt.create(e,r.changes,r.selection,n.effects,n.annotations,n.scrollIntoView)}const X2=[];function As(r){return r==null?X2:Array.isArray(r)?r:[r]}var ft=(function(r){return r[r.Word=0]="Word",r[r.Space=1]="Space",r[r.Other=2]="Other",r})(ft||(ft={}));const I2=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let _c;try{_c=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function V2(r){if(_c)return _c.test(r);for(let e=0;e<r.length;e++){let t=r[e];if(/\w/.test(t)||t>""&&(t.toUpperCase()!=t.toLowerCase()||I2.test(t)))return!0}return!1}function z2(r){return e=>{if(!/\S/.test(e))return ft.Space;if(V2(e))return ft.Word;for(let t=0;t<r.length;t++)if(e.indexOf(r[t])>-1)return ft.Word;return ft.Other}}class Ke{constructor(e,t,n,s,i,o){this.config=e,this.doc=t,this.selection=n,this.values=s,this.status=e.statusTemplate.slice(),this.computeSlot=i,o&&(o._state=this);for(let a=0;a<this.config.dynamicSlots.length;a++)Li(this,a<<1);this.computeSlot=null}field(e,t=!0){let n=this.config.address[e.id];if(n==null){if(t)throw new RangeError("Field is not present in this state");return}return Li(this,n),Ma(this,n)}update(...e){return yp(this,e,!0)}applyTransaction(e){let t=this.config,{base:n,compartments:s}=t;for(let a of e.effects)a.is(fl.reconfigure)?(t&&(s=new Map,t.compartments.forEach((l,c)=>s.set(c,l)),t=null),s.set(a.value.compartment,a.value.extension)):a.is(ze.reconfigure)?(t=null,n=a.value):a.is(ze.appendConfig)&&(t=null,n=As(n).concat(a.value));let i;t?i=e.startState.values.slice():(t=Ta.resolve(n,s,this),i=new Ke(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,c)=>c.reconfigure(l,this),null).values);let o=e.startState.facet(Mc)?e.newSelection:e.newSelection.asSingle();new Ke(t,e.newDoc,o,i,(a,l)=>l.update(a,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:J.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),s=this.changes(n.changes),i=[n.range],o=As(n.effects);for(let a=1;a<t.ranges.length;a++){let l=e(t.ranges[a]),c=this.changes(l.changes),u=c.map(s);for(let f=0;f<a;f++)i[f]=i[f].map(u);let h=s.mapDesc(c,!0);i.push(l.range.map(h)),s=s.compose(u),o=ze.mapEffects(o,u).concat(ze.mapEffects(As(l.effects),h))}return{changes:s,selection:J.create(i,t.mainIndex),effects:o}}changes(e=[]){return e instanceof yt?e:yt.of(e,this.doc.length,this.facet(Ke.lineSeparator))}toText(e){return et.of(e.split(this.facet(Ke.lineSeparator)||$c))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:(Li(this,t),Ma(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let n in e){let s=e[n];s instanceof Pt&&this.config.address[s.id]!=null&&(t[n]=s.spec.toJSON(this.field(e[n]),this))}return t}static fromJSON(e,t={},n){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let s=[];if(n){for(let i in n)if(Object.prototype.hasOwnProperty.call(e,i)){let o=n[i],a=e[i];s.push(o.init(l=>o.spec.fromJSON(a,l)))}}return Ke.create({doc:e.doc,selection:J.fromJSON(e.selection),extensions:t.extensions?s.concat([t.extensions]):s})}static create(e={}){let t=Ta.resolve(e.extensions||[],new Map),n=e.doc instanceof et?e.doc:et.of((e.doc||"").split(t.staticFacet(Ke.lineSeparator)||$c)),s=e.selection?e.selection instanceof J?e.selection:J.single(e.selection.anchor,e.selection.head):J.single(0);return dp(s,n.length),t.staticFacet(Mc)||(s=s.asSingle()),new Ke(t,n,s,t.dynamicSlots.map(()=>null),(i,o)=>o.create(i),null)}get tabSize(){return this.facet(Ke.tabSize)}get lineBreak(){return this.facet(Ke.lineSeparator)||`
|
|
15
|
+
`}get readOnly(){return this.facet(bp)}phrase(e,...t){for(let n of this.facet(Ke.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(n,s)=>{if(s=="$")return"$";let i=+(s||1);return!i||i>t.length?n:t[i-1]})),e}languageDataAt(e,t,n=-1){let s=[];for(let i of this.facet(mp))for(let o of i(this,t,n))Object.prototype.hasOwnProperty.call(o,e)&&s.push(o[e]);return s}charCategorizer(e){let t=this.languageDataAt("wordChars",e);return z2(t.length?t[0]:"")}wordAt(e){let{text:t,from:n,length:s}=this.doc.lineAt(e),i=this.charCategorizer(e),o=e-n,a=e-n;for(;o>0;){let l=Qt(t,o,!1);if(i(t.slice(l,o))!=ft.Word)break;o=l}for(;a<s;){let l=Qt(t,a);if(i(t.slice(a,l))!=ft.Word)break;a=l}return o==a?null:J.range(o+n,a+n)}}Ke.allowMultipleSelections=Mc;Ke.tabSize=Se.define({combine:r=>r.length?r[0]:4});Ke.lineSeparator=pp;Ke.readOnly=bp;Ke.phrases=Se.define({compare(r,e){let t=Object.keys(r),n=Object.keys(e);return t.length==n.length&&t.every(s=>r[s]==e[s])}});Ke.languageData=mp;Ke.changeFilter=gp;Ke.transactionFilter=Op;Ke.transactionExtender=vp;fl.reconfigure=ze.define();function tn(r,e,t={}){let n={};for(let s of r)for(let i of Object.keys(s)){let o=s[i],a=n[i];if(a===void 0)n[i]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(t,i))n[i]=t[i](a,o);else throw new Error("Config merge conflict for field "+i)}for(let s in e)n[s]===void 0&&(n[s]=e[s]);return n}class Dn{eq(e){return this==e}range(e,t=e){return Rc.create(e,t,this)}}Dn.prototype.startSide=Dn.prototype.endSide=0;Dn.prototype.point=!1;Dn.prototype.mapMode=At.TrackDel;function Iu(r,e){return r==e||r.constructor==e.constructor&&r.eq(e)}let Rc=class kp{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new kp(e,t,n)}};function Bc(r,e){return r.from-e.from||r.value.startSide-e.value.startSide}class Vu{constructor(e,t,n,s){this.from=e,this.to=t,this.value=n,this.maxPoint=s}get length(){return this.to[this.to.length-1]}findIndex(e,t,n,s=0){let i=n?this.to:this.from;for(let o=s,a=i.length;;){if(o==a)return o;let l=o+a>>1,c=i[l]-e||(n?this.value[l].endSide:this.value[l].startSide)-t;if(l==o)return c>=0?o:a;c>=0?a=l:o=l+1}}between(e,t,n,s){for(let i=this.findIndex(t,-1e9,!0),o=this.findIndex(n,1e9,!1,i);i<o;i++)if(s(this.from[i]+e,this.to[i]+e,this.value[i])===!1)return!1}map(e,t){let n=[],s=[],i=[],o=-1,a=-1;for(let l=0;l<this.value.length;l++){let c=this.value[l],u=this.from[l]+e,h=this.to[l]+e,f,m;if(u==h){let g=t.mapPos(u,c.startSide,c.mapMode);if(g==null||(f=m=g,c.startSide!=c.endSide&&(m=t.mapPos(u,c.endSide),m<f)))continue}else if(f=t.mapPos(u,c.startSide),m=t.mapPos(h,c.endSide),f>m||f==m&&c.startSide>0&&c.endSide<=0)continue;(m-f||c.endSide-c.startSide)<0||(o<0&&(o=f),c.point&&(a=Math.max(a,m-f)),n.push(c),s.push(f-o),i.push(m-o))}return{mapped:n.length?new Vu(s,i,n,a):null,pos:o}}}class Ge{constructor(e,t,n,s){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=s}static create(e,t,n,s){return new Ge(e,t,n,s)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:s=0,filterTo:i=this.length}=e,o=e.filter;if(t.length==0&&!o)return this;if(n&&(t=t.slice().sort(Bc)),this.isEmpty)return t.length?Ge.of(t):this;let a=new wp(this,null,-1).goto(0),l=0,c=[],u=new gn;for(;a.value||l<t.length;)if(l<t.length&&(a.from-t[l].from||a.startSide-t[l].value.startSide)>=0){let h=t[l++];u.addInner(h.from,h.to,h.value)||c.push(h)}else a.rangeIndex==1&&a.chunkIndex<this.chunk.length&&(l==t.length||this.chunkEnd(a.chunkIndex)<t[l].from)&&(!o||s>this.chunkEnd(a.chunkIndex)||i<this.chunkPos[a.chunkIndex])&&u.addChunk(this.chunkPos[a.chunkIndex],this.chunk[a.chunkIndex])?a.nextChunk():((!o||s>a.to||i<a.from||o(a.from,a.to,a.value))&&(u.addInner(a.from,a.to,a.value)||c.push(Rc.create(a.from,a.to,a.value))),a.next());return u.finishInner(this.nextLayer.isEmpty&&!c.length?Ge.empty:this.nextLayer.update({add:c,filter:o,filterFrom:s,filterTo:i}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],n=[],s=-1;for(let o=0;o<this.chunk.length;o++){let a=this.chunkPos[o],l=this.chunk[o],c=e.touchesRange(a,a+l.length);if(c===!1)s=Math.max(s,l.maxPoint),t.push(l),n.push(e.mapPos(a));else if(c===!0){let{mapped:u,pos:h}=l.map(a,e);u&&(s=Math.max(s,u.maxPoint),t.push(u),n.push(h))}}let i=this.nextLayer.map(e);return t.length==0?i:new Ge(n,t,i||Ge.empty,s)}between(e,t,n){if(!this.isEmpty){for(let s=0;s<this.chunk.length;s++){let i=this.chunkPos[s],o=this.chunk[s];if(t>=i&&e<=i+o.length&&o.between(i,e-i,t-i,n)===!1)return}this.nextLayer.between(e,t,n)}}iter(e=0){return ji.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return ji.from(e).goto(t)}static compare(e,t,n,s,i=-1){let o=e.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=i),a=t.filter(h=>h.maxPoint>0||!h.isEmpty&&h.maxPoint>=i),l=id(o,a,n),c=new $i(o,l,i),u=new $i(a,l,i);n.iterGaps((h,f,m)=>od(c,h,u,f,m,s)),n.empty&&n.length==0&&od(c,0,u,0,0,s)}static eq(e,t,n=0,s){s==null&&(s=999999999);let i=e.filter(u=>!u.isEmpty&&t.indexOf(u)<0),o=t.filter(u=>!u.isEmpty&&e.indexOf(u)<0);if(i.length!=o.length)return!1;if(!i.length)return!0;let a=id(i,o),l=new $i(i,a,0).goto(n),c=new $i(o,a,0).goto(n);for(;;){if(l.to!=c.to||!Dc(l.active,c.active)||l.point&&(!c.point||!Iu(l.point,c.point)))return!1;if(l.to>s)return!0;l.next(),c.next()}}static spans(e,t,n,s,i=-1){let o=new $i(e,null,i).goto(t),a=t,l=o.openStart;for(;;){let c=Math.min(o.to,n);if(o.point){let u=o.activeForPoint(o.to),h=o.pointFrom<t?u.length+1:o.point.startSide<0?u.length:Math.min(u.length,l);s.point(a,c,o.point,u,h,o.pointRank),l=Math.min(o.openEnd(c),u.length)}else c>a&&(s.span(a,c,o.active,l),l=o.openEnd(c));if(o.to>n)return l+(o.point&&o.to>n?1:0);a=o.to,o.next()}}static of(e,t=!1){let n=new gn;for(let s of e instanceof Rc?[e]:t?N2(e):e)n.add(s.from,s.to,s.value);return n.finish()}static join(e){if(!e.length)return Ge.empty;let t=e[e.length-1];for(let n=e.length-2;n>=0;n--)for(let s=e[n];s!=Ge.empty;s=s.nextLayer)t=new Ge(s.chunkPos,s.chunk,t,Math.max(s.maxPoint,t.maxPoint));return t}}Ge.empty=new Ge([],[],null,-1);function N2(r){if(r.length>1)for(let e=r[0],t=1;t<r.length;t++){let n=r[t];if(Bc(e,n)>0)return r.slice().sort(Bc);e=n}return r}Ge.empty.nextLayer=Ge.empty;class gn{finishChunk(e){this.chunks.push(new Vu(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,n){this.addInner(e,t,n)||(this.nextLayer||(this.nextLayer=new gn)).add(e,t,n)}addInner(e,t,n){let s=e-this.lastTo||n.startSide-this.last.endSide;if(s<=0&&(e-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return s<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=t,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let n=t.value.length-1;return this.last=t.value[n],this.lastFrom=t.from[n]+e,this.lastTo=t.to[n]+e,!0}finish(){return this.finishInner(Ge.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=Ge.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function id(r,e,t){let n=new Map;for(let i of r)for(let o=0;o<i.chunk.length;o++)i.chunk[o].maxPoint<=0&&n.set(i.chunk[o],i.chunkPos[o]);let s=new Set;for(let i of e)for(let o=0;o<i.chunk.length;o++){let a=n.get(i.chunk[o]);a!=null&&(t?t.mapPos(a):a)==i.chunkPos[o]&&!t?.touchesRange(a,a+i.chunk[o].length)&&s.add(i.chunk[o])}return s}class wp{constructor(e,t,n,s=0){this.layer=e,this.skip=t,this.minPoint=n,this.rank=s}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,t=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,t,!1),this}gotoInner(e,t,n){for(;this.chunkIndex<this.layer.chunk.length;){let s=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(s)||this.layer.chunkEnd(this.chunkIndex)<e||s.maxPoint<this.minPoint))break;this.chunkIndex++,n=!1}if(this.chunkIndex<this.layer.chunk.length){let s=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],t,!0);(!n||this.rangeIndex<s)&&this.setRangeIndex(s)}this.next()}forward(e,t){(this.to-e||this.endSide-t)<0&&this.gotoInner(e,t,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let e=this.layer.chunkPos[this.chunkIndex],t=this.layer.chunk[this.chunkIndex],n=e+t.from[this.rangeIndex];if(this.from=n,this.to=e+t.to[this.rangeIndex],this.value=t.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}}class ji{constructor(e){this.heap=e}static from(e,t=null,n=-1){let s=[];for(let i=0;i<e.length;i++)for(let o=e[i];!o.isEmpty;o=o.nextLayer)o.maxPoint>=n&&s.push(new wp(o,t,n,i));return s.length==1?s[0]:new ji(s)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let n of this.heap)n.goto(e,t);for(let n=this.heap.length>>1;n>=0;n--)Ml(this.heap,n);return this.next(),this}forward(e,t){for(let n of this.heap)n.forward(e,t);for(let n=this.heap.length>>1;n>=0;n--)Ml(this.heap,n);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),Ml(this.heap,0)}}}function Ml(r,e){for(let t=r[e];;){let n=(e<<1)+1;if(n>=r.length)break;let s=r[n];if(n+1<r.length&&s.compare(r[n+1])>=0&&(s=r[n+1],n++),t.compare(s)<0)break;r[n]=t,r[e]=s,e=n}}class $i{constructor(e,t,n){this.minPoint=n,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=ji.from(e,t,n)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){Xo(this.active,e),Xo(this.activeTo,e),Xo(this.activeRank,e),this.minActive=ad(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:s,rank:i}=this.cursor;for(;t<this.activeRank.length&&(i-this.activeRank[t]||s-this.activeTo[t])>0;)t++;Io(this.active,t,n),Io(this.activeTo,t,s),Io(this.activeRank,t,i),e&&Io(e,t,this.cursor.from),this.minActive=ad(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let s=this.minActive;if(s>-1&&(this.activeTo[s]-this.cursor.from||this.active[s].endSide-this.cursor.startSide)<0){if(this.activeTo[s]>e){this.to=this.activeTo[s],this.endSide=this.active[s].endSide;break}this.removeActive(s),n&&Xo(n,s)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let i=this.cursor.value;if(!i.point)this.addActive(n),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=i,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=i.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(n){this.openStart=0;for(let s=n.length-1;s>=0&&n[s]<e;s--)this.openStart++}}activeForPoint(e){if(!this.active.length)return this.active;let t=[];for(let n=this.active.length-1;n>=0&&!(this.activeRank[n]<this.pointRank);n--)(this.activeTo[n]>e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}openEnd(e){let t=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}}function od(r,e,t,n,s,i){r.goto(e),t.goto(n);let o=n+s,a=n,l=n-e,c=!!i.boundChange;for(let u=!1;;){let h=r.to+l-t.to,f=h||r.endSide-t.endSide,m=f<0?r.to+l:t.to,g=Math.min(m,o);if(r.point||t.point?(r.point&&t.point&&Iu(r.point,t.point)&&Dc(r.activeForPoint(r.to),t.activeForPoint(t.to))||i.comparePoint(a,g,r.point,t.point),u=!1):(u&&i.boundChange(a),g>a&&!Dc(r.active,t.active)&&i.compareRange(a,g,r.active,t.active),c&&g<o&&(h||r.openEnd(m)!=t.openEnd(m))&&(u=!0)),m>o)break;a=m,f<=0&&r.next(),f>=0&&t.next()}}function Dc(r,e){if(r.length!=e.length)return!1;for(let t=0;t<r.length;t++)if(r[t]!=e[t]&&!Iu(r[t],e[t]))return!1;return!0}function Xo(r,e){for(let t=e,n=r.length-1;t<n;t++)r[t]=r[t+1];r.pop()}function Io(r,e,t){for(let n=r.length-1;n>=e;n--)r[n+1]=r[n];r[e]=t}function ad(r,e){let t=-1,n=1e9;for(let s=0;s<e.length;s++)(e[s]-n||r[s].endSide-r[t].endSide)<0&&(t=s,n=e[s]);return t}function Rr(r,e,t=r.length){let n=0;for(let s=0;s<t&&s<r.length;)r.charCodeAt(s)==9?(n+=e-n%e,s++):(n++,s=Qt(r,s));return n}function Zc(r,e,t,n){for(let s=0,i=0;;){if(i>=e)return s;if(s==r.length)break;i+=r.charCodeAt(s)==9?t-i%t:1,s=Qt(r,s)}return n===!0?-1:r.length}const Ec="ͼ",ld=typeof Symbol>"u"?"__"+Ec:Symbol.for(Ec),Lc=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),cd=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class Zn{constructor(e,t){this.rules=[];let{finish:n}=t||{};function s(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function i(o,a,l,c){let u=[],h=/^@(\w+)\b/.exec(o[0]),f=h&&h[1]=="keyframes";if(h&&a==null)return l.push(o[0]+";");for(let m in a){let g=a[m];if(/&/.test(m))i(m.split(/,\s*/).map(O=>o.map(b=>O.replace(/&/,b))).reduce((O,b)=>O.concat(b)),g,l);else if(g&&typeof g=="object"){if(!h)throw new RangeError("The value of a property ("+m+") should be a primitive value.");i(s(m),g,u,f)}else g!=null&&u.push(m.replace(/_.*/,"").replace(/[A-Z]/g,O=>"-"+O.toLowerCase())+": "+g+";")}(u.length||f)&&l.push((n&&!h&&!c?o.map(n):o).join(", ")+" {"+u.join(" ")+"}")}for(let o in e)i(s(o),e[o],this.rules)}getRules(){return this.rules.join(`
|
|
16
|
+
`)}static newName(){let e=cd[ld]||1;return cd[ld]=e+1,Ec+e.toString(36)}static mount(e,t,n){let s=e[Lc],i=n&&n.nonce;s?i&&s.setNonce(i):s=new W2(e,i),s.mount(Array.isArray(t)?t:[t],e)}}let ud=new Map;class W2{constructor(e,t){let n=e.ownerDocument||e,s=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&s.CSSStyleSheet){let i=ud.get(n);if(i)return e[Lc]=i;this.sheet=new s.CSSStyleSheet,ud.set(n,this)}else this.styleTag=n.createElement("style"),t&&this.styleTag.setAttribute("nonce",t);this.modules=[],e[Lc]=this}mount(e,t){let n=this.sheet,s=0,i=0;for(let o=0;o<e.length;o++){let a=e[o],l=this.modules.indexOf(a);if(l<i&&l>-1&&(this.modules.splice(l,1),i--,l=-1),l==-1){if(this.modules.splice(i++,0,a),n)for(let c=0;c<a.rules.length;c++)n.insertRule(a.rules[c],s++)}else{for(;i<l;)s+=this.modules[i++].rules.length;s+=a.rules.length,i++}}if(n)t.adoptedStyleSheets.indexOf(this.sheet)<0&&(t.adoptedStyleSheets=[this.sheet,...t.adoptedStyleSheets]);else{let o="";for(let l=0;l<this.modules.length;l++)o+=this.modules[l].getRules()+`
|
|
17
|
+
`;this.styleTag.textContent=o;let a=t.head||t;this.styleTag.parentNode!=a&&a.insertBefore(this.styleTag,a.firstChild)}}setNonce(e){this.styleTag&&this.styleTag.getAttribute("nonce")!=e&&this.styleTag.setAttribute("nonce",e)}}var En={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Yi={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},q2=typeof navigator<"u"&&/Mac/.test(navigator.platform),j2=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var Mt=0;Mt<10;Mt++)En[48+Mt]=En[96+Mt]=String(Mt);for(var Mt=1;Mt<=24;Mt++)En[Mt+111]="F"+Mt;for(var Mt=65;Mt<=90;Mt++)En[Mt]=String.fromCharCode(Mt+32),Yi[Mt]=String.fromCharCode(Mt);for(var Al in En)Yi.hasOwnProperty(Al)||(Yi[Al]=En[Al]);function Y2(r){var e=q2&&r.metaKey&&r.shiftKey&&!r.ctrlKey&&!r.altKey||j2&&r.shiftKey&&r.key&&r.key.length==1||r.key=="Unidentified",t=!e&&r.key||(r.shiftKey?Yi:En)[r.keyCode]||r.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function it(){var r=arguments[0];typeof r=="string"&&(r=document.createElement(r));var e=1,t=arguments[1];if(t&&typeof t=="object"&&t.nodeType==null&&!Array.isArray(t)){for(var n in t)if(Object.prototype.hasOwnProperty.call(t,n)){var s=t[n];typeof s=="string"?r.setAttribute(n,s):s!=null&&(r[n]=s)}e++}for(;e<arguments.length;e++)Sp(r,arguments[e]);return r}function Sp(r,e){if(typeof e=="string")r.appendChild(document.createTextNode(e));else if(e!=null)if(e.nodeType!=null)r.appendChild(e);else if(Array.isArray(e))for(var t=0;t<e.length;t++)Sp(r,e[t]);else throw new RangeError("Unsupported child node: "+e)}let zt=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},Xc=typeof document<"u"?document:{documentElement:{style:{}}};const Ic=/Edge\/(\d+)/.exec(zt.userAgent),$p=/MSIE \d/.test(zt.userAgent),Vc=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(zt.userAgent),ml=!!($p||Vc||Ic),hd=!ml&&/gecko\/(\d+)/i.test(zt.userAgent),_l=!ml&&/Chrome\/(\d+)/.exec(zt.userAgent),F2="webkitFontSmoothing"in Xc.documentElement.style,zc=!ml&&/Apple Computer/.test(zt.vendor),dd=zc&&(/Mobile\/\w+/.test(zt.userAgent)||zt.maxTouchPoints>2);var $e={mac:dd||/Mac/.test(zt.platform),windows:/Win/.test(zt.platform),linux:/Linux|X11/.test(zt.platform),ie:ml,ie_version:$p?Xc.documentMode||6:Vc?+Vc[1]:Ic?+Ic[1]:0,gecko:hd,gecko_version:hd?+(/Firefox\/(\d+)/.exec(zt.userAgent)||[0,0])[1]:0,chrome:!!_l,chrome_version:_l?+_l[1]:0,ios:dd,android:/Android\b/.test(zt.userAgent),webkit_version:F2?+(/\bAppleWebKit\/(\d+)/.exec(zt.userAgent)||[0,0])[1]:0,safari:zc,safari_version:zc?+(/\bVersion\/(\d+(\.\d+)?)/.exec(zt.userAgent)||[0,0])[1]:0,tabSize:Xc.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function zu(r,e){for(let t in r)t=="class"&&e.class?e.class+=" "+r.class:t=="style"&&e.style?e.style+=";"+r.style:e[t]=r[t];return e}const Aa=Object.create(null);function Nu(r,e,t){if(r==e)return!0;r||(r=Aa),e||(e=Aa);let n=Object.keys(r),s=Object.keys(e);if(n.length-0!=s.length-0)return!1;for(let i of n)if(i!=t&&(s.indexOf(i)==-1||r[i]!==e[i]))return!1;return!0}function U2(r,e){for(let t=r.attributes.length-1;t>=0;t--){let n=r.attributes[t].name;e[n]==null&&r.removeAttribute(n)}for(let t in e){let n=e[t];t=="style"?r.style.cssText=n:r.getAttribute(t)!=n&&r.setAttribute(t,n)}}function fd(r,e,t){let n=!1;if(e)for(let s in e)t&&s in t||(n=!0,s=="style"?r.style.cssText="":r.removeAttribute(s));if(t)for(let s in t)e&&e[s]==t[s]||(n=!0,s=="style"?r.style.cssText=t[s]:r.setAttribute(s,t[s]));return n}function G2(r){let e=Object.create(null);for(let t=0;t<r.attributes.length;t++){let n=r.attributes[t];e[n.name]=n.value}return e}class rn{eq(e){return!1}updateDOM(e,t){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,n){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}}var Bt=(function(r){return r[r.Text=0]="Text",r[r.WidgetBefore=1]="WidgetBefore",r[r.WidgetAfter=2]="WidgetAfter",r[r.WidgetRange=3]="WidgetRange",r})(Bt||(Bt={}));class Ee extends Dn{constructor(e,t,n,s){super(),this.startSide=e,this.endSide=t,this.widget=n,this.spec=s}get heightRelevant(){return!1}static mark(e){return new bo(e)}static widget(e){let t=Math.max(-1e4,Math.min(1e4,e.side||0)),n=!!e.block;return t+=n&&!e.inlineOrder?t>0?3e8:-4e8:t>0?1e8:-1e8,new us(e,t,t,n,e.widget||null,!1)}static replace(e){let t=!!e.block,n,s;if(e.isBlockGap)n=-5e8,s=4e8;else{let{start:i,end:o}=Cp(e,t);n=(i?t?-3e8:-1:5e8)-1,s=(o?t?2e8:1:-6e8)+1}return new us(e,n,s,t,e.widget||null,!0)}static line(e){return new xo(e)}static set(e,t=!1){return Ge.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}Ee.none=Ge.empty;class bo extends Ee{constructor(e){let{start:t,end:n}=Cp(e);super(t?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?zu(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||Aa}eq(e){return this==e||e instanceof bo&&this.tagName==e.tagName&&Nu(this.attrs,e.attrs)}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}bo.prototype.point=!1;class xo extends Ee{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof xo&&this.spec.class==e.spec.class&&Nu(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}}xo.prototype.mapMode=At.TrackBefore;xo.prototype.point=!0;class us extends Ee{constructor(e,t,n,s,i,o){super(t,n,i,e),this.block=s,this.isReplace=o,this.mapMode=s?t<=0?At.TrackBefore:At.TrackAfter:At.TrackDel}get type(){return this.startSide!=this.endSide?Bt.WidgetRange:this.startSide<=0?Bt.WidgetBefore:Bt.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof us&&H2(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}}us.prototype.point=!0;function Cp(r,e=!1){let{inclusiveStart:t,inclusiveEnd:n}=r;return t==null&&(t=r.inclusive),n==null&&(n=r.inclusive),{start:t??e,end:n??e}}function H2(r,e){return r==e||!!(r&&e&&r.compare(e))}function _s(r,e,t,n=0){let s=t.length-1;s>=0&&t[s]+n>=r?t[s]=Math.max(t[s],e):t.push(r,e)}class Fi extends Dn{constructor(e,t){super(),this.tagName=e,this.attributes=t}eq(e){return e==this||e instanceof Fi&&this.tagName==e.tagName&&Nu(this.attributes,e.attributes)}static create(e){return new Fi(e.tagName,e.attributes||Aa)}static set(e,t=!1){return Ge.of(e,t)}}Fi.prototype.startSide=Fi.prototype.endSide=-1;function Ui(r){let e;return r.nodeType==11?e=r.getSelection?r:r.ownerDocument:e=r,e.getSelection()}function Nc(r,e){return e?r==e||r.contains(e.nodeType!=1?e.parentNode:e):!1}function Xi(r,e){if(!e.anchorNode)return!1;try{return Nc(r,e.anchorNode)}catch{return!1}}function pa(r){return r.nodeType==3?Gi(r,0,r.nodeValue.length).getClientRects():r.nodeType==1?r.getClientRects():[]}function Ii(r,e,t,n){return t?md(r,e,t,n,-1)||md(r,e,t,n,1):!1}function Ln(r){for(var e=0;;e++)if(r=r.previousSibling,!r)return e}function _a(r){return r.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(r.nodeName)}function md(r,e,t,n,s){for(;;){if(r==t&&e==n)return!0;if(e==(s<0?0:On(r))){if(r.nodeName=="DIV")return!1;let i=r.parentNode;if(!i||i.nodeType!=1)return!1;e=Ln(r)+(s<0?0:1),r=i}else if(r.nodeType==1){if(r=r.childNodes[e+(s<0?-1:0)],r.nodeType==1&&r.contentEditable=="false")return!1;e=s<0?On(r):0}else return!1}}function On(r){return r.nodeType==3?r.nodeValue.length:r.childNodes.length}function Ra(r,e){let t=e?r.left:r.right;return{left:t,right:t,top:r.top,bottom:r.bottom}}function K2(r){let e=r.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:r.innerWidth,top:0,bottom:r.innerHeight}}function Qp(r,e){let t=e.width/r.offsetWidth,n=e.height/r.offsetHeight;return(t>.995&&t<1.005||!isFinite(t)||Math.abs(e.width-r.offsetWidth)<1)&&(t=1),(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.height-r.offsetHeight)<1)&&(n=1),{scaleX:t,scaleY:n}}function J2(r,e,t,n,s,i,o,a){let l=r.ownerDocument,c=l.defaultView||window;for(let u=r,h=!1;u&&!h;)if(u.nodeType==1){let f,m=u==l.body,g=1,O=1;if(m)f=K2(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(u).position)&&(h=!0),u.scrollHeight<=u.clientHeight&&u.scrollWidth<=u.clientWidth){u=u.assignedSlot||u.parentNode;continue}let w=u.getBoundingClientRect();({scaleX:g,scaleY:O}=Qp(u,w)),f={left:w.left,right:w.left+u.clientWidth*g,top:w.top,bottom:w.top+u.clientHeight*O}}let b=0,x=0;if(s=="nearest")e.top<f.top?(x=e.top-(f.top+o),t>0&&e.bottom>f.bottom+x&&(x=e.bottom-f.bottom+o)):e.bottom>f.bottom&&(x=e.bottom-f.bottom+o,t<0&&e.top-x<f.top&&(x=e.top-(f.top+o)));else{let w=e.bottom-e.top,S=f.bottom-f.top;x=(s=="center"&&w<=S?e.top+w/2-S/2:s=="start"||s=="center"&&t<0?e.top-o:e.bottom-S+o)-f.top}if(n=="nearest"?e.left<f.left?(b=e.left-(f.left+i),t>0&&e.right>f.right+b&&(b=e.right-f.right+i)):e.right>f.right&&(b=e.right-f.right+i,t<0&&e.left<f.left+b&&(b=e.left-(f.left+i))):b=(n=="center"?e.left+(e.right-e.left)/2-(f.right-f.left)/2:n=="start"==a?e.left-i:e.right-(f.right-f.left)+i)-f.left,b||x)if(m)c.scrollBy(b,x);else{let w=0,S=0;if(x){let C=u.scrollTop;u.scrollTop+=x/O,S=(u.scrollTop-C)*O}if(b){let C=u.scrollLeft;u.scrollLeft+=b/g,w=(u.scrollLeft-C)*g}e={left:e.left-w,top:e.top-S,right:e.right-w,bottom:e.bottom-S},w&&Math.abs(w-b)<1&&(n="nearest"),S&&Math.abs(S-x)<1&&(s="nearest")}if(m)break;(e.top<f.top||e.bottom>f.bottom||e.left<f.left||e.right>f.right)&&(e={left:Math.max(e.left,f.left),right:Math.min(e.right,f.right),top:Math.max(e.top,f.top),bottom:Math.min(e.bottom,f.bottom)}),u=u.assignedSlot||u.parentNode}else if(u.nodeType==11)u=u.host;else break}function e$(r){let e=r.ownerDocument,t,n;for(let s=r.parentNode;s&&!(s==e.body||t&&n);)if(s.nodeType==1)!n&&s.scrollHeight>s.clientHeight&&(n=s),!t&&s.scrollWidth>s.clientWidth&&(t=s),s=s.assignedSlot||s.parentNode;else if(s.nodeType==11)s=s.host;else break;return{x:t,y:n}}class t${constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:n}=e;this.set(t,Math.min(e.anchorOffset,t?On(t):0),n,Math.min(e.focusOffset,n?On(n):0))}set(e,t,n,s){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=s}}let Hn=null;$e.safari&&$e.safari_version>=26&&(Hn=!1);function Pp(r){if(r.setActive)return r.setActive();if(Hn)return r.focus(Hn);let e=[];for(let t=r;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(r.focus(Hn==null?{get preventScroll(){return Hn={preventScroll:!0},!0}}:void 0),!Hn){Hn=!1;for(let t=0;t<e.length;){let n=e[t++],s=e[t++],i=e[t++];n.scrollTop!=s&&(n.scrollTop=s),n.scrollLeft!=i&&(n.scrollLeft=i)}}}let pd;function Gi(r,e,t=e){let n=pd||(pd=document.createRange());return n.setEnd(r,t),n.setStart(r,e),n}function Rs(r,e,t,n){let s={key:e,code:e,keyCode:t,which:t,cancelable:!0};n&&({altKey:s.altKey,ctrlKey:s.ctrlKey,shiftKey:s.shiftKey,metaKey:s.metaKey}=n);let i=new KeyboardEvent("keydown",s);i.synthetic=!0,r.dispatchEvent(i);let o=new KeyboardEvent("keyup",s);return o.synthetic=!0,r.dispatchEvent(o),i.defaultPrevented||o.defaultPrevented}function r$(r){for(;r;){if(r&&(r.nodeType==9||r.nodeType==11&&r.host))return r;r=r.assignedSlot||r.parentNode}return null}function n$(r,e){let t=e.focusNode,n=e.focusOffset;if(!t||e.anchorNode!=t||e.anchorOffset!=n)return!1;for(n=Math.min(n,On(t));;)if(n){if(t.nodeType!=1)return!1;let s=t.childNodes[n-1];s.contentEditable=="false"?n--:(t=s,n=On(t))}else{if(t==r)return!0;n=Ln(t),t=t.parentNode}}function Tp(r){return r.scrollTop>Math.max(1,r.scrollHeight-r.clientHeight-4)}function Mp(r,e){for(let t=r,n=e;;){if(t.nodeType==3&&n>0)return{node:t,offset:n};if(t.nodeType==1&&n>0){if(t.contentEditable=="false")return null;t=t.childNodes[n-1],n=On(t)}else if(t.parentNode&&!_a(t))n=Ln(t),t=t.parentNode;else return null}}function Ap(r,e){for(let t=r,n=e;;){if(t.nodeType==3&&n<t.nodeValue.length)return{node:t,offset:n};if(t.nodeType==1&&n<t.childNodes.length){if(t.contentEditable=="false")return null;t=t.childNodes[n],n=0}else if(t.parentNode&&!_a(t))n=Ln(t)+1,t=t.parentNode;else return null}}class _r{constructor(e,t,n=!0){this.node=e,this.offset=t,this.precise=n}static before(e,t){return new _r(e.parentNode,Ln(e),t)}static after(e,t){return new _r(e.parentNode,Ln(e)+1,t)}}var lt=(function(r){return r[r.LTR=0]="LTR",r[r.RTL=1]="RTL",r})(lt||(lt={}));const hs=lt.LTR,Wu=lt.RTL;function _p(r){let e=[];for(let t=0;t<r.length;t++)e.push(1<<+r[t]);return e}const s$=_p("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),i$=_p("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),Wc=Object.create(null),zr=[];for(let r of["()","[]","{}"]){let e=r.charCodeAt(0),t=r.charCodeAt(1);Wc[e]=t,Wc[t]=-e}function Rp(r){return r<=247?s$[r]:1424<=r&&r<=1524?2:1536<=r&&r<=1785?i$[r-1536]:1774<=r&&r<=2220?4:8192<=r&&r<=8204?256:64336<=r&&r<=65023?4:1}const o$=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/;class Ur{get dir(){return this.level%2?Wu:hs}constructor(e,t,n){this.from=e,this.to=t,this.level=n}side(e,t){return this.dir==t==e?this.to:this.from}forward(e,t){return e==(this.dir==t)}static find(e,t,n,s){let i=-1;for(let o=0;o<e.length;o++){let a=e[o];if(a.from<=t&&a.to>=t){if(a.level==n)return o;(i<0||(s!=0?s<0?a.from<t:a.to>t:e[i].level>a.level))&&(i=o)}}if(i<0)throw new RangeError("Index out of range");return i}}function Bp(r,e){if(r.length!=e.length)return!1;for(let t=0;t<r.length;t++){let n=r[t],s=e[t];if(n.from!=s.from||n.to!=s.to||n.direction!=s.direction||!Bp(n.inner,s.inner))return!1}return!0}const ot=[];function a$(r,e,t,n,s){for(let i=0;i<=n.length;i++){let o=i?n[i-1].to:e,a=i<n.length?n[i].from:t,l=i?256:s;for(let c=o,u=l,h=l;c<a;c++){let f=Rp(r.charCodeAt(c));f==512?f=u:f==8&&h==4&&(f=16),ot[c]=f==4?2:f,f&7&&(h=f),u=f}for(let c=o,u=l,h=l;c<a;c++){let f=ot[c];if(f==128)c<a-1&&u==ot[c+1]&&u&24?f=ot[c]=u:ot[c]=256;else if(f==64){let m=c+1;for(;m<a&&ot[m]==64;)m++;let g=c&&u==8||m<t&&ot[m]==8?h==1?1:8:256;for(let O=c;O<m;O++)ot[O]=g;c=m-1}else f==8&&h==1&&(ot[c]=1);u=f,f&7&&(h=f)}}}function l$(r,e,t,n,s){let i=s==1?2:1;for(let o=0,a=0,l=0;o<=n.length;o++){let c=o?n[o-1].to:e,u=o<n.length?n[o].from:t;for(let h=c,f,m,g;h<u;h++)if(m=Wc[f=r.charCodeAt(h)])if(m<0){for(let O=a-3;O>=0;O-=3)if(zr[O+1]==-m){let b=zr[O+2],x=b&2?s:b&4?b&1?i:s:0;x&&(ot[h]=ot[zr[O]]=x),a=O;break}}else{if(zr.length==189)break;zr[a++]=h,zr[a++]=f,zr[a++]=l}else if((g=ot[h])==2||g==1){let O=g==s;l=O?0:1;for(let b=a-3;b>=0;b-=3){let x=zr[b+2];if(x&2)break;if(O)zr[b+2]|=2;else{if(x&4)break;zr[b+2]|=4}}}}}function c$(r,e,t,n){for(let s=0,i=n;s<=t.length;s++){let o=s?t[s-1].to:r,a=s<t.length?t[s].from:e;for(let l=o;l<a;){let c=ot[l];if(c==256){let u=l+1;for(;;)if(u==a){if(s==t.length)break;u=t[s++].to,a=s<t.length?t[s].from:e}else if(ot[u]==256)u++;else break;let h=i==1,f=(u<e?ot[u]:n)==1,m=h==f?h?1:2:n;for(let g=u,O=s,b=O?t[O-1].to:r;g>l;)g==b&&(g=t[--O].from,b=O?t[O-1].to:r),ot[--g]=m;l=u}else i=c,l++}}}function qc(r,e,t,n,s,i,o){let a=n%2?2:1;if(n%2==s%2)for(let l=e,c=0;l<t;){let u=!0,h=!1;if(c==i.length||l<i[c].from){let O=ot[l];O!=a&&(u=!1,h=O==16)}let f=!u&&a==1?[]:null,m=u?n:n+1,g=l;e:for(;;)if(c<i.length&&g==i[c].from){if(h)break e;let O=i[c];if(!u)for(let b=O.to,x=c+1;;){if(b==t)break e;if(x<i.length&&i[x].from==b)b=i[x++].to;else{if(ot[b]==a)break e;break}}if(c++,f)f.push(O);else{O.from>l&&o.push(new Ur(l,O.from,m));let b=O.direction==hs!=!(m%2);jc(r,b?n+1:n,s,O.inner,O.from,O.to,o),l=O.to}g=O.to}else{if(g==t||(u?ot[g]!=a:ot[g]==a))break;g++}f?qc(r,l,g,n+1,s,f,o):l<g&&o.push(new Ur(l,g,m)),l=g}else for(let l=t,c=i.length;l>e;){let u=!0,h=!1;if(!c||l>i[c-1].to){let O=ot[l-1];O!=a&&(u=!1,h=O==16)}let f=!u&&a==1?[]:null,m=u?n:n+1,g=l;e:for(;;)if(c&&g==i[c-1].to){if(h)break e;let O=i[--c];if(!u)for(let b=O.from,x=c;;){if(b==e)break e;if(x&&i[x-1].to==b)b=i[--x].from;else{if(ot[b-1]==a)break e;break}}if(f)f.push(O);else{O.to<l&&o.push(new Ur(O.to,l,m));let b=O.direction==hs!=!(m%2);jc(r,b?n+1:n,s,O.inner,O.from,O.to,o),l=O.from}g=O.from}else{if(g==e||(u?ot[g-1]!=a:ot[g-1]==a))break;g--}f?qc(r,g,l,n+1,s,f,o):g<l&&o.push(new Ur(g,l,m)),l=g}}function jc(r,e,t,n,s,i,o){let a=e%2?2:1;a$(r,s,i,n,a),l$(r,s,i,n,a),c$(s,i,n,a),qc(r,s,i,e,t,n,o)}function u$(r,e,t){if(!r)return[new Ur(0,0,e==Wu?1:0)];if(e==hs&&!t.length&&!o$.test(r))return Dp(r.length);if(t.length)for(;r.length>ot.length;)ot[ot.length]=256;let n=[],s=e==hs?0:1;return jc(r,s,s,t,0,r.length,n),n}function Dp(r){return[new Ur(0,r,0)]}let Zp="";function h$(r,e,t,n,s){var i;let o=n.head-r.from,a=Ur.find(e,o,(i=n.bidiLevel)!==null&&i!==void 0?i:-1,n.assoc),l=e[a],c=l.side(s,t);if(o==c){let f=a+=s?1:-1;if(f<0||f>=e.length)return null;l=e[a=f],o=l.side(!s,t),c=l.side(s,t)}let u=Qt(r.text,o,l.forward(s,t));(u<l.from||u>l.to)&&(u=c),Zp=r.text.slice(Math.min(o,u),Math.max(o,u));let h=a==(s?e.length-1:0)?null:e[a+(s?1:-1)];return h&&u==c&&h.level+(s?0:1)<l.level?J.cursor(h.side(!s,t)+r.from,h.forward(s,t)?1:-1,h.level):J.cursor(u+r.from,l.forward(s,t)?-1:1,l.level)}function d$(r,e,t){for(let n=e;n<t;n++){let s=Rp(r.charCodeAt(n));if(s==1)return hs;if(s==2||s==4)return Wu}return hs}const Ep=Se.define(),Lp=Se.define(),Xp=Se.define(),Ip=Se.define(),Yc=Se.define(),Vp=Se.define(),zp=Se.define(),qu=Se.define(),ju=Se.define(),Np=Se.define({combine:r=>r.some(e=>e)}),Wp=Se.define({combine:r=>r.some(e=>e)}),qp=Se.define();class Bs{constructor(e,t="nearest",n="nearest",s=5,i=5,o=!1){this.range=e,this.y=t,this.x=n,this.yMargin=s,this.xMargin=i,this.isSnapshot=o}map(e){return e.empty?this:new Bs(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new Bs(J.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const Vo=ze.define({map:(r,e)=>r.map(e)}),jp=ze.define();function er(r,e,t){let n=r.facet(Ip);n.length?n[0](e):window.onerror&&window.onerror(String(e),t,void 0,void 0,e)||(t?console.error(t+":",e):console.error(e))}const hn=Se.define({combine:r=>r.length?r[0]:!0});let f$=0;const Ps=Se.define({combine(r){return r.filter((e,t)=>{for(let n=0;n<t;n++)if(r[n].plugin==e.plugin)return!1;return!0})}});class Ot{constructor(e,t,n,s,i){this.id=e,this.create=t,this.domEventHandlers=n,this.domEventObservers=s,this.baseExtensions=i(this),this.extension=this.baseExtensions.concat(Ps.of({plugin:this,arg:void 0}))}of(e){return this.baseExtensions.concat(Ps.of({plugin:this,arg:e}))}static define(e,t){const{eventHandlers:n,eventObservers:s,provide:i,decorations:o}=t||{};return new Ot(f$++,e,n,s,a=>{let l=[];return o&&l.push(pl.of(c=>{let u=c.plugin(a);return u?o(u):Ee.none})),i&&l.push(i(a)),l})}static fromClass(e,t){return Ot.define((n,s)=>new e(n,s),t)}}class Rl{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}get plugin(){return this.spec&&this.spec.plugin}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(n){if(er(t.state,n,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.plugin.create(e,this.spec.arg)}catch(t){er(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(n){er(e.state,n,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const Yp=Se.define(),Yu=Se.define(),pl=Se.define(),Fp=Se.define(),Fu=Se.define(),yo=Se.define(),Up=Se.define();function gd(r,e){let t=r.state.facet(Up);if(!t.length)return t;let n=t.map(i=>i instanceof Function?i(r):i),s=[];return Ge.spans(n,e.from,e.to,{point(){},span(i,o,a,l){let c=i-e.from,u=o-e.from,h=s;for(let f=a.length-1;f>=0;f--,l--){let m=a[f].spec.bidiIsolate,g;if(m==null&&(m=d$(e.text,c,u)),l>0&&h.length&&(g=h[h.length-1]).to==c&&g.direction==m)g.to=u,h=g.inner;else{let O={from:c,to:u,direction:m,inner:[]};h.push(O),h=O.inner}}}}),s}const Gp=Se.define();function Uu(r){let e=0,t=0,n=0,s=0;for(let i of r.state.facet(Gp)){let o=i(r);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(t=Math.max(t,o.right)),o.top!=null&&(n=Math.max(n,o.top)),o.bottom!=null&&(s=Math.max(s,o.bottom)))}return{left:e,right:t,top:n,bottom:s}}const _i=Se.define();class yr{constructor(e,t,n,s){this.fromA=e,this.toA=t,this.fromB=n,this.toB=s}join(e){return new yr(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,n=this;for(;t>0;t--){let s=e[t-1];if(!(s.fromA>n.toA)){if(s.toA<n.fromA)break;n=n.join(s),e.splice(t-1,1)}}return e.splice(t,0,n),e}static extendWithRanges(e,t){if(t.length==0)return e;let n=[];for(let s=0,i=0,o=0;;){let a=s<e.length?e[s].fromB:1e9,l=i<t.length?t[i]:1e9,c=Math.min(a,l);if(c==1e9)break;let u=c+o,h=c,f=u;for(;;)if(i<t.length&&t[i]<=h){let m=t[i+1];i+=2,h=Math.max(h,m);for(let g=s;g<e.length&&e[g].fromB<=h;g++)o=e[g].toA-e[g].toB;f=Math.max(f,m+o)}else if(s<e.length&&e[s].fromB<=h){let m=e[s++];h=Math.max(h,m.toB),f=Math.max(f,m.toA),o=m.toA-m.toB}else break;n.push(new yr(u,f,c,h))}return n}}class Ba{constructor(e,t,n){this.view=e,this.state=t,this.transactions=n,this.flags=0,this.startState=e.state,this.changes=yt.empty(this.startState.doc.length);for(let i of n)this.changes=this.changes.compose(i.changes);let s=[];this.changes.iterChangedRanges((i,o,a,l)=>s.push(new yr(i,o,a,l))),this.changedRanges=s}static create(e,t,n){return new Ba(e,t,n)}get viewportChanged(){return(this.flags&4)>0}get viewportMoved(){return(this.flags&8)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&18)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}}const m$=[];class bt{constructor(e,t,n=0){this.dom=e,this.length=t,this.flags=n,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return m$}isWidget(){return!1}get isHidden(){return!1}isComposite(){return!1}isLine(){return!1}isText(){return!1}isBlock(){return!1}get domAttrs(){return null}sync(e){if(this.flags|=2,this.flags&4){this.flags&=-5;let t=this.domAttrs;t&&U2(this.dom,t)}}toString(){return this.constructor.name+(this.children.length?`(${this.children})`:"")+(this.breakAfter?"#":"")}destroy(){this.parent=null}setDOM(e){this.dom=e,e.cmTile=this}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e,t=this.posAtStart){let n=t;for(let s of this.children){if(s==e)return n;n+=s.length+s.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}covers(e){return!0}coordsIn(e,t){return null}domPosFor(e,t){let n=Ln(this.dom),s=this.length?e>0:t>0;return new _r(this.parent.dom,n+(s?1:0),e==0||e==this.length)}markDirty(e){this.flags&=-3,e&&(this.flags|=4),this.parent&&this.parent.flags&2&&this.parent.markDirty(!1)}get overrideDOMText(){return null}get root(){for(let e=this;e;e=e.parent)if(e instanceof Ol)return e;return null}static get(e){return e.cmTile}}class gl extends bt{constructor(e){super(e,0),this._children=[]}isComposite(){return!0}get children(){return this._children}get lastChild(){return this.children.length?this.children[this.children.length-1]:null}append(e){this.children.push(e),e.parent=this}sync(e){if(this.flags&2)return;super.sync(e);let t=this.dom,n=null,s,i=e?.node==t?e:null,o=0;for(let a of this.children){if(a.sync(e),o+=a.length+a.breakAfter,s=n?n.nextSibling:t.firstChild,i&&s!=a.dom&&(i.written=!0),a.dom.parentNode==t)for(;s&&s!=a.dom;)s=Od(s);else t.insertBefore(a.dom,s);n=a.dom}for(s=n?n.nextSibling:t.firstChild,i&&s&&(i.written=!0);s;)s=Od(s);this.length=o}}function Od(r){let e=r.nextSibling;return r.parentNode.removeChild(r),e}class Ol extends gl{constructor(e,t){super(t),this.view=e}owns(e){for(;e;e=e.parent)if(e==this)return!0;return!1}isBlock(){return!0}nearest(e){for(;;){if(!e)return null;let t=bt.get(e);if(t&&this.owns(t))return t;e=e.parentNode}}blockTiles(e){for(let t=[],n=this,s=0,i=0;;)if(s==n.children.length){if(!t.length)return;n=n.parent,n.breakAfter&&i++,s=t.pop()}else{let o=n.children[s++];if(o instanceof dn)t.push(s),n=o,s=0;else{let a=i+o.length,l=e(o,i);if(l!==void 0)return l;i=a+o.breakAfter}}}resolveBlock(e,t){let n,s=-1,i,o=-1;if(this.blockTiles((a,l)=>{let c=l+a.length;if(e>=l&&e<=c){if(a.isWidget()&&t>=-1&&t<=1){if(a.flags&32)return!0;a.flags&16&&(n=void 0)}(l<e||e==c&&(t<-1?a.length:a.covers(1)))&&(!n||!a.isWidget()&&n.isWidget())&&(n=a,s=e-l),(c>e||e==l&&(t>1?a.length:a.covers(-1)))&&(!i||!a.isWidget()&&i.isWidget())&&(i=a,o=e-l)}}),!n&&!i)throw new Error("No tile at position "+e);return n&&t<0||!i?{tile:n,offset:s}:{tile:i,offset:o}}}class dn extends gl{constructor(e,t){super(e),this.wrapper=t}isBlock(){return!0}covers(e){return this.children.length?e<0?this.children[0].covers(-1):this.lastChild.covers(1):!1}get domAttrs(){return this.wrapper.attributes}static of(e,t){let n=new dn(t||document.createElement(e.tagName),e);return t||(n.flags|=4),n}}class Ws extends gl{constructor(e,t){super(e),this.attrs=t}isLine(){return!0}static start(e,t,n){let s=new Ws(t||document.createElement("div"),e);return(!t||!n)&&(s.flags|=4),s}get domAttrs(){return this.attrs}resolveInline(e,t,n){let s=null,i=-1,o=null,a=-1;function l(u,h){for(let f=0,m=0;f<u.children.length&&m<=h;f++){let g=u.children[f],O=m+g.length;O>=h&&(g.isComposite()?l(g,h-m):(!o||o.isHidden&&(t>0||n&&g$(o,g)))&&(O>h||g.flags&32)?(o=g,a=h-m):(m<h||g.flags&16&&!g.isHidden)&&(s=g,i=h-m)),m=O}}l(this,e);let c=(t<0?s:o)||s||o;return c?{tile:c,offset:c==s?i:a}:null}coordsIn(e,t){let n=this.resolveInline(e,t,!0);return n?n.tile.coordsIn(Math.max(0,n.offset),t):p$(this)}domIn(e,t){let n=this.resolveInline(e,t);if(n){let{tile:s,offset:i}=n;if(this.dom.contains(s.dom))return s.isText()?new _r(s.dom,Math.min(s.dom.nodeValue.length,i)):s.domPosFor(i,s.flags&16?1:s.flags&32?-1:t);let o=n.tile.parent,a=!1;for(let l of o.children){if(a)return new _r(l.dom,0);l==n.tile&&(a=!0)}}return new _r(this.dom,0)}}function p$(r){let e=r.dom.lastChild;if(!e)return r.dom.getBoundingClientRect();let t=pa(e);return t[t.length-1]||null}function g$(r,e){let t=r.coordsIn(0,1),n=e.coordsIn(0,1);return t&&n&&n.top<t.bottom}class Kt extends gl{constructor(e,t){super(e),this.mark=t}get domAttrs(){return this.mark.attrs}static of(e,t){let n=new Kt(t||document.createElement(e.tagName),e);return t||(n.flags|=4),n}}class rs extends bt{constructor(e,t){super(e,t.length),this.text=t}sync(e){this.flags&2||(super.sync(e),this.dom.nodeValue!=this.text&&(e&&e.node==this.dom&&(e.written=!0),this.dom.nodeValue=this.text))}isText(){return!0}toString(){return JSON.stringify(this.text)}coordsIn(e,t){let n=this.dom.nodeValue.length;e>n&&(e=n);let s=e,i=e,o=0;e==0&&t<0||e==n&&t>=0?$e.chrome||$e.gecko||(e?(s--,o=1):i<n&&(i++,o=-1)):t<0?s--:i<n&&i++;let a=Gi(this.dom,s,i).getClientRects();if(!a.length)return null;let l=a[(o?o<0:t>=0)?0:a.length-1];return $e.safari&&!o&&l.width==0&&(l=Array.prototype.find.call(a,c=>c.width)||l),o?Ra(l,o<0):l||null}static of(e,t){let n=new rs(t||document.createTextNode(e),e);return t||(n.flags|=2),n}}class ds extends bt{constructor(e,t,n,s){super(e,t,s),this.widget=n}isWidget(){return!0}get isHidden(){return this.widget.isHidden}covers(e){return this.flags&48?!1:(this.flags&(e<0?64:128))>0}coordsIn(e,t){return this.coordsInWidget(e,t,!1)}coordsInWidget(e,t,n){let s=this.widget.coordsAt(this.dom,e,t);if(s)return s;if(n)return Ra(this.dom.getBoundingClientRect(),this.length?e==0:t<=0);{let i=this.dom.getClientRects(),o=null;if(!i.length)return null;let a=this.flags&16?!0:this.flags&32?!1:e>0;for(let l=a?i.length-1:0;o=i[l],!(e>0?l==0:l==i.length-1||o.top<o.bottom);l+=a?-1:1);return Ra(o,!a)}}get overrideDOMText(){if(!this.length)return et.empty;let{root:e}=this;if(!e)return et.empty;let t=this.posAtStart;return e.view.state.doc.slice(t,t+this.length)}destroy(){super.destroy(),this.widget.destroy(this.dom)}static of(e,t,n,s,i){return i||(i=e.toDOM(t),e.editable||(i.contentEditable="false")),new ds(i,n,e,s)}}class Da extends bt{constructor(e){let t=document.createElement("img");t.className="cm-widgetBuffer",t.setAttribute("aria-hidden","true"),super(t,0,e)}get isHidden(){return!0}get overrideDOMText(){return et.empty}coordsIn(e){return this.dom.getBoundingClientRect()}}class O${constructor(e){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=e}advance(e,t,n){let{tile:s,index:i,beforeBreak:o,parents:a}=this;for(;e||t>0;)if(s.isComposite())if(o){if(!e)break;n&&n.break(),e--,o=!1}else if(i==s.children.length){if(!e&&!a.length)break;n&&n.leave(s),o=!!s.breakAfter,{tile:s,index:i}=a.pop(),i++}else{let l=s.children[i],c=l.breakAfter;(t>0?l.length<=e:l.length<e)&&(!n||n.skip(l,0,l.length)!==!1||!l.isComposite)?(o=!!c,i++,e-=l.length):(a.push({tile:s,index:i}),s=l,i=0,n&&l.isComposite()&&n.enter(l))}else if(i==s.length)o=!!s.breakAfter,{tile:s,index:i}=a.pop(),i++;else if(e){let l=Math.min(e,s.length-i);n&&n.skip(s,i,i+l),e-=l,i+=l}else break;return this.tile=s,this.index=i,this.beforeBreak=o,this}get root(){return this.parents.length?this.parents[0].tile:this.tile}}class v${constructor(e,t,n,s){this.from=e,this.to=t,this.wrapper=n,this.rank=s}}class b${constructor(e,t,n){this.cache=e,this.root=t,this.blockWrappers=n,this.curLine=null,this.lastBlock=null,this.afterWidget=null,this.pos=0,this.wrappers=[],this.wrapperPos=0}addText(e,t,n,s){var i;this.flushBuffer();let o=this.ensureMarks(t,n),a=o.lastChild;if(a&&a.isText()&&!(a.flags&8)&&a.length+e.length<512){this.cache.reused.set(a,2);let l=o.children[o.children.length-1]=new rs(a.dom,a.text+e);l.parent=o}else o.append(s||rs.of(e,(i=this.cache.find(rs))===null||i===void 0?void 0:i.dom));this.pos+=e.length,this.afterWidget=null}addComposition(e,t){let n=this.curLine;n.dom!=t.line.dom&&(n.setDOM(this.cache.reused.has(t.line)?Bl(t.line.dom):t.line.dom),this.cache.reused.set(t.line,2));let s=n;for(let a=t.marks.length-1;a>=0;a--){let l=t.marks[a],c=s.lastChild;if(c instanceof Kt&&c.mark.eq(l.mark))c.dom!=l.dom&&c.setDOM(Bl(l.dom)),s=c;else{if(this.cache.reused.get(l)){let h=bt.get(l.dom);h&&h.setDOM(Bl(l.dom))}let u=Kt.of(l.mark,l.dom);s.append(u),s=u}this.cache.reused.set(l,2)}let i=bt.get(e.text);i&&this.cache.reused.set(i,2);let o=new rs(e.text,e.text.nodeValue);o.flags|=8,s.append(o)}addInlineWidget(e,t,n){let s=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);s||this.flushBuffer();let i=this.ensureMarks(t,n);!s&&!(e.flags&16)&&i.append(this.getBuffer(1)),i.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,t,n){this.flushBuffer(),this.ensureMarks(t,n).append(e),this.pos+=e.length,this.afterWidget=null}addBlockWidget(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}continueWidget(e){let t=this.afterWidget||this.lastBlock;t.length+=e,this.pos+=e}addLineStart(e,t){var n;e||(e=Hp);let s=Ws.start(e,t||((n=this.cache.find(Ws))===null||n===void 0?void 0:n.dom),!!t);this.getBlockPos().append(this.lastBlock=this.curLine=s)}addLine(e){this.getBlockPos().append(e),this.pos+=e.length,this.lastBlock=e,this.endLine()}addBreak(){this.lastBlock.flags|=1,this.endLine(),this.pos++}addLineStartIfNotCovered(e){this.blockPosCovered()||this.addLineStart(e)}ensureLine(e){this.curLine||this.addLineStart(e)}ensureMarks(e,t){var n;let s=this.curLine;for(let i=e.length-1;i>=0;i--){let o=e[i],a;if(t>0&&(a=s.lastChild)&&a instanceof Kt&&a.mark.eq(o))s=a,t--;else{let l=Kt.of(o,(n=this.cache.find(Kt,c=>c.mark.eq(o)))===null||n===void 0?void 0:n.dom);s.append(l),s=l,t=0}}return s}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!vd(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!($e.ios&&vd(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(Dl,0,32)||new ds(Dl.toDOM(),0,Dl,32)),this.curLine=this.afterWidget=null}}updateBlockWrappers(){this.wrapperPos>this.pos+1e4&&(this.blockWrappers.goto(this.pos),this.wrappers.length=0);for(let e=this.wrappers.length-1;e>=0;e--)this.wrappers[e].to<this.pos&&this.wrappers.splice(e,1);for(let e=this.blockWrappers;e.value&&e.from<=this.pos;e.next())if(e.to>=this.pos){let t=new v$(e.from,e.to,e.value,e.rank),n=this.wrappers.length;for(;n>0&&(this.wrappers[n-1].rank-t.rank||this.wrappers[n-1].to-t.to)<0;)n--;this.wrappers.splice(n,0,t)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let t=this.root;for(let n of this.wrappers){let s=t.lastChild;if(n.from<this.pos&&s instanceof dn&&s.wrapper.eq(n.wrapper))t=s;else{let i=dn.of(n.wrapper,(e=this.cache.find(dn,o=>o.wrapper.eq(n.wrapper)))===null||e===void 0?void 0:e.dom);t.append(i),t=i}}return t}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let t=2|(e<0?16:32),n=this.cache.find(Da,void 0,1);return n&&(n.flags=t),n||new Da(t)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}}class x${constructor(e){this.skipCount=0,this.text="",this.textOff=0,this.cursor=e.iter()}skip(e){this.textOff+e<=this.text.length?this.textOff+=e:(this.skipCount+=e-(this.text.length-this.textOff),this.text="",this.textOff=0)}next(e){if(this.textOff==this.text.length){let{value:s,lineBreak:i,done:o}=this.cursor.next(this.skipCount);if(this.skipCount=0,o)throw new Error("Ran out of text content when drawing inline views");this.text=s;let a=this.textOff=Math.min(e,s.length);return i?null:s.slice(0,a)}let t=Math.min(this.text.length,this.textOff+e),n=this.text.slice(this.textOff,t);return this.textOff=t,n}}const Za=[ds,Ws,rs,Kt,Da,dn,Ol];for(let r=0;r<Za.length;r++)Za[r].bucket=r;class y${constructor(e){this.view=e,this.buckets=Za.map(()=>[]),this.index=Za.map(()=>0),this.reused=new Map}add(e){let t=e.constructor.bucket,n=this.buckets[t];n.length<6?n.push(e):n[this.index[t]=(this.index[t]+1)%6]=e}find(e,t,n=2){let s=e.bucket,i=this.buckets[s],o=this.index[s];for(let a=i.length-1;a>=0;a--){let l=(a+o)%i.length,c=i[l];if((!t||t(c))&&!this.reused.has(c))return i.splice(l,1),l<o&&this.index[s]--,this.reused.set(c,n),c}return null}findWidget(e,t,n){let s=this.buckets[0];if(s.length)for(let i=0,o=0;;i++){if(i==s.length){if(o)return null;o=1,i=0}let a=s[i];if(!this.reused.has(a)&&(o==0?a.widget.compare(e):a.widget.constructor==e.constructor&&e.updateDOM(a.dom,this.view)))return s.splice(i,1),i<this.index[0]&&this.index[0]--,a.widget==e&&a.length==t&&(a.flags&497)==n?(this.reused.set(a,1),a):(this.reused.set(a,2),new ds(a.dom,t,e,a.flags&-498|n))}}reuse(e){return this.reused.set(e,1),e}maybeReuse(e,t=2){if(!this.reused.has(e))return this.reused.set(e,t),e.dom}clear(){for(let e=0;e<this.buckets.length;e++)this.buckets[e].length=this.index[e]=0}}class k${constructor(e,t,n,s,i){this.view=e,this.decorations=s,this.disallowBlockEffectsFor=i,this.openWidget=!1,this.openMarks=0,this.cache=new y$(e),this.text=new x$(e.state.doc),this.builder=new b$(this.cache,new Ol(e,e.contentDOM),Ge.iter(n)),this.cache.reused.set(t,2),this.old=new O$(t),this.reuseWalker={skip:(o,a,l)=>{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,t){let n=t&&this.getCompositionContext(t.text);for(let s=0,i=0,o=0;;){let a=o<e.length?e[o++]:null,l=a?a.fromA:this.old.root.length;if(l>s){let c=l-s;this.preserve(c,!o,!a),s=l,i+=c}if(!a)break;t&&a.fromA<=t.range.fromA&&a.toA>=t.range.toA?(this.forward(a.fromA,t.range.fromA,t.range.fromA<t.range.toA?1:-1),this.emit(i,t.range.fromB),this.cache.clear(),this.builder.addComposition(t,n),this.text.skip(t.range.toB-t.range.fromB),this.forward(t.range.fromA,a.toA),this.emit(t.range.toB,a.toB)):(this.forward(a.fromA,a.toA),this.emit(i,a.toB)),i=a.toB,s=a.toA}return this.builder.curLine&&this.builder.endLine(),this.builder.root}preserve(e,t,n){let s=$$(this.old),i=this.openMarks;this.old.advance(e,n?1:-1,{skip:(o,a,l)=>{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(l-a);else{let c=l>0||a<o.length?ds.of(o.widget,this.view,l-a,o.flags&496,this.cache.maybeReuse(o)):this.cache.reuse(o);c.flags&256?(c.flags&=-2,this.builder.addBlockWidget(c)):(this.builder.ensureLine(null),this.builder.addInlineWidget(c,s,i),i=s.length)}else if(o.isText())this.builder.ensureLine(null),!a&&l==o.length?this.builder.addText(o.text,s,i,this.cache.reuse(o)):(this.cache.add(o),this.builder.addText(o.text.slice(a,l),s,i)),i=s.length;else if(o.isLine())o.flags&=-2,this.cache.reused.set(o,1),this.builder.addLine(o);else if(o instanceof Da)this.cache.add(o);else if(o instanceof Kt)this.builder.ensureLine(null),this.builder.addMark(o,s,i),this.cache.reused.set(o,1),i=s.length;else return!1;this.openWidget=!1},enter:o=>{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof Kt&&s.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?s.length&&(s.length=i=0):o instanceof Kt&&(s.shift(),i=Math.min(i,s.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,t){let n=null,s=this.builder,i=0,o=Ge.spans(this.decorations,e,t,{point:(a,l,c,u,h,f)=>{if(c instanceof us){if(this.disallowBlockEffectsFor[f]){if(c.block)throw new RangeError("Block decorations may not be specified via plugins");if(l>this.view.state.doc.lineAt(a).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}if(i=u.length,h>u.length)s.continueWidget(l-a);else{let m=c.widget||(c.block?qs.block:qs.inline),g=w$(c),O=this.cache.findWidget(m,l-a,g)||ds.of(m,this.view,l-a,g);c.block?(c.startSide>0&&s.addLineStartIfNotCovered(n),s.addBlockWidget(O)):(s.ensureLine(n),s.addInlineWidget(O,u,h))}n=null}else n=S$(n,c);l>a&&this.text.skip(l-a)},span:(a,l,c,u)=>{for(let h=a;h<l;){let f=this.text.next(Math.min(512,l-h));f==null?(s.addLineStartIfNotCovered(n),s.addBreak(),h++):(s.ensureLine(n),s.addText(f,c,h==a?u:c.length),h+=f.length),n=null}}});s.addLineStartIfNotCovered(n),this.openWidget=o>i,this.openMarks=o}forward(e,t,n=1){t-e<=10?this.old.advance(t-e,n,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(t-e-10,-1),this.old.advance(5,n,this.reuseWalker))}getCompositionContext(e){let t=[],n=null;for(let s=e.parentNode;;s=s.parentNode){let i=bt.get(s);if(s==this.view.contentDOM)break;i instanceof Kt?t.push(i):i?.isLine()?n=i:i instanceof dn||(s.nodeName=="DIV"&&!n&&s!=this.view.contentDOM?n=new Ws(s,Hp):n||t.push(Kt.of(new bo({tagName:s.nodeName.toLowerCase(),attributes:G2(s)}),s)))}return{line:n,marks:t}}}function vd(r,e){let t=n=>{for(let s of n.children)if((e?s.isText():s.length)||t(s))return!0;return!1};return t(r)}function w$(r){let e=r.isReplace?(r.startSide<0?64:0)|(r.endSide>0?128:0):r.startSide>0?32:16;return r.block&&(e|=256),e}const Hp={class:"cm-line"};function S$(r,e){let t=e.spec.attributes,n=e.spec.class;return!t&&!n||(r||(r={class:"cm-line"}),t&&zu(t,r),n&&(r.class+=" "+n)),r}function $$(r){let e=[];for(let t=r.parents.length;t>1;t--){let n=t==r.parents.length?r.tile:r.parents[t].tile;n instanceof Kt&&e.push(n.mark)}return e}function Bl(r){let e=bt.get(r);return e&&e.setDOM(r.cloneNode()),r}class qs extends rn{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}qs.inline=new qs("span");qs.block=new qs("div");const Dl=new class extends rn{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class bd{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=Ee.none,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.updateDeco(),this.tile=new Ol(e,e.contentDOM),this.updateInner([new yr(0,0,0,e.state.doc.length)],null)}update(e){var t;let n=e.changedRanges;this.minWidth>0&&n.length&&(n.every(({fromA:u,toA:h})=>h<this.minWidthFrom||u>this.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0),this.updateEditContextFormatting(e);let s=-1;this.view.inputState.composing>=0&&!this.view.observer.editContext&&(!((t=this.domChanged)===null||t===void 0)&&t.newSel?s=this.domChanged.newSel.head:!B$(e.changes,this.hasComposition)&&!e.selectionSet&&(s=e.state.selection.main.head));let i=s>-1?Q$(this.view,e.changes,s):null;if(this.domChanged=null,this.hasComposition){let{from:u,to:h}=this.hasComposition;n=new yr(u,h,e.changes.mapPos(u,-1),e.changes.mapPos(h,1)).addToSet(n.slice())}this.hasComposition=i?{from:i.range.fromB,to:i.range.toB}:null,($e.ie||$e.chrome)&&!i&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,a=this.blockWrappers;this.updateDeco();let l=M$(o,this.decorations,e.changes);l.length&&(n=yr.extendWithRanges(n,l));let c=_$(a,this.blockWrappers,e.changes);return c.length&&(n=yr.extendWithRanges(n,c)),i&&!n.some(u=>u.fromA<=i.range.fromA&&u.toA>=i.range.toA)&&(n=i.range.addToSet(n.slice())),this.tile.flags&2&&n.length==0?!1:(this.updateInner(n,i),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t){this.view.viewState.mustMeasureContent=!0;let{observer:n}=this.view;n.ignore(()=>{if(t||e.length){let o=this.tile,a=new k$(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);this.tile=a.run(e,t),Fc(o,a.cache.reused)}this.tile.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.tile.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let i=$e.chrome||$e.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(i),i&&(i.written||n.selectionRange.focusNode!=i.node||!this.tile.dom.contains(i.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let s=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let i of this.tile.children)i.isWidget()&&i.widget instanceof Zl&&s.push(i.dom);n.updateGaps(s)}updateEditContextFormatting(e){this.editContextFormatting=this.editContextFormatting.map(e.changes);for(let t of e.transactions)for(let n of t.effects)n.is(jp)&&(this.editContextFormatting=n.value)}updateSelection(e=!1,t=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let{dom:n}=this.tile,s=this.view.root.activeElement,i=s==n,o=!i&&!(this.view.state.facet(hn)||n.tabIndex>-1)&&Xi(n,this.view.observer.selectionRange)&&!(s&&n.contains(s));if(!(i||t||o))return;let a=this.forceSelection;this.forceSelection=!1;let l=this.view.state.selection.main,c,u;if(l.empty?u=c=this.inlineDOMNearPos(l.anchor,l.assoc||1):(u=this.inlineDOMNearPos(l.head,l.head==l.from?1:-1),c=this.inlineDOMNearPos(l.anchor,l.anchor==l.from?1:-1)),$e.gecko&&l.empty&&!this.hasComposition&&C$(c)){let f=document.createTextNode("");this.view.observer.ignore(()=>c.node.insertBefore(f,c.node.childNodes[c.offset]||null)),c=u=new _r(f,0),a=!0}let h=this.view.observer.selectionRange;(a||!h.focusNode||(!Ii(c.node,c.offset,h.anchorNode,h.anchorOffset)||!Ii(u.node,u.offset,h.focusNode,h.focusOffset))&&!this.suppressWidgetCursorChange(h,l))&&(this.view.observer.ignore(()=>{$e.android&&$e.chrome&&n.contains(h.focusNode)&&R$(h.focusNode,n)&&(n.blur(),n.focus({preventScroll:!0}));let f=Ui(this.view.root);if(f)if(l.empty){if($e.gecko){let m=P$(c.node,c.offset);if(m&&m!=3){let g=(m==1?Mp:Ap)(c.node,c.offset);g&&(c=new _r(g.node,g.offset))}}f.collapse(c.node,c.offset),l.bidiLevel!=null&&f.caretBidiLevel!==void 0&&(f.caretBidiLevel=l.bidiLevel)}else if(f.extend){f.collapse(c.node,c.offset);try{f.extend(u.node,u.offset)}catch{}}else{let m=document.createRange();l.anchor>l.head&&([c,u]=[u,c]),m.setEnd(u.node,u.offset),m.setStart(c.node,c.offset),f.removeAllRanges(),f.addRange(m)}o&&this.view.root.activeElement==n&&(n.blur(),s&&s.focus())}),this.view.observer.setSelectionRange(c,u)),this.impreciseAnchor=c.precise?null:new _r(h.anchorNode,h.anchorOffset),this.impreciseHead=u.precise?null:new _r(h.focusNode,h.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&Ii(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,n=Ui(e.root),{anchorNode:s,anchorOffset:i}=e.observer.selectionRange;if(!n||!t.empty||!t.assoc||!n.modify)return;let o=this.lineAt(t.head,t.assoc);if(!o)return;let a=o.posAtStart;if(t.head==a||t.head==a+o.length)return;let l=this.coordsAt(t.head,-1),c=this.coordsAt(t.head,1);if(!l||!c||l.bottom>c.top)return;let u=this.domAtPos(t.head+t.assoc,t.assoc);n.collapse(u.node,u.offset),n.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let h=e.observer.selectionRange;e.docView.posFromDOM(h.anchorNode,h.anchorOffset)!=t.from&&n.collapse(s,i)}posFromDOM(e,t){let n=this.tile.nearest(e);if(!n)return this.tile.dom.compareDocumentPosition(e)&2?0:this.view.state.doc.length;let s=n.posAtStart;if(n.isComposite()){let i;if(e==n.dom)i=n.dom.childNodes[t];else{let o=On(e)==0?0:t==0?-1:1;for(;;){let a=e.parentNode;if(a==n.dom)break;o==0&&a.firstChild!=a.lastChild&&(e==a.firstChild?o=-1:o=1),e=a}o<0?i=e:i=e.nextSibling}if(i==n.dom.firstChild)return s;for(;i&&!bt.get(i);)i=i.nextSibling;if(!i)return s+n.length;for(let o=0,a=s;;o++){let l=n.children[o];if(l.dom==i)return a;a+=l.length+l.breakAfter}}else return n.isText()?e==n.dom?s+t:s+(t?n.length:0):s}domAtPos(e,t){let{tile:n,offset:s}=this.tile.resolveBlock(e,t);return n.isWidget()?n.domPosFor(e,t):n.domIn(s,t)}inlineDOMNearPos(e,t){let n,s=-1,i=!1,o,a=-1,l=!1;return this.tile.blockTiles((c,u)=>{if(c.isWidget()){if(c.flags&32&&u>=e)return!0;c.flags&16&&(i=!0)}else{let h=u+c.length;if(u<=e&&(n=c,s=e-u,i=h<e),h>=e&&!o&&(o=c,a=e-u,l=u>e),u>e&&o)return!0}}),!n&&!o?this.domAtPos(e,t):(i&&o?n=null:l&&n&&(o=null),n&&t<0||!o?n.domIn(s,t):o.domIn(a,t))}coordsAt(e,t){let{tile:n,offset:s}=this.tile.resolveBlock(e,t);return n.isWidget()?n.widget instanceof Zl?null:n.coordsInWidget(s,t,!0):n.coordsIn(s,t)}lineAt(e,t){let{tile:n}=this.tile.resolveBlock(e,t);return n.isLine()?n:null}coordsForChar(e){let{tile:t,offset:n}=this.tile.resolveBlock(e,1);if(!t.isLine())return null;function s(i,o){if(i.isComposite())for(let a of i.children){if(a.length>=o){let l=s(a,o);if(l)return l}if(o-=a.length,o<0)break}else if(i.isText()&&o<i.length){let a=Qt(i.text,o);if(a==o)return null;let l=Gi(i.dom,o,a).getClientRects();for(let c=0;c<l.length;c++){let u=l[c];if(c==l.length-1||u.top<u.bottom&&u.left<u.right)return u}}return null}return s(t,n)}measureVisibleLineHeights(e){let t=[],{from:n,to:s}=e,i=this.view.contentDOM.clientWidth,o=i>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,a=-1,l=this.view.textDirection==lt.LTR,c=0,u=(h,f,m)=>{for(let g=0;g<h.children.length&&!(f>s);g++){let O=h.children[g],b=f+O.length,x=O.dom.getBoundingClientRect(),{height:w}=x;if(m&&!g&&(c+=x.top-m.top),O instanceof dn)b>n&&u(O,f,x);else if(f>=n&&(c>0&&t.push(-c),t.push(w+c),c=0,o)){let S=O.dom.lastChild,C=S?pa(S):[];if(C.length){let _=C[C.length-1],I=l?_.right-x.left:x.right-_.left;I>a&&(a=I,this.minWidth=i,this.minWidthFrom=f,this.minWidthTo=b)}}m&&g==h.children.length-1&&(c+=m.bottom-x.bottom),f=b+O.breakAfter}};return u(this.tile,0,null),t}textDirectionAt(e){let{tile:t}=this.tile.resolveBlock(e,1);return getComputedStyle(t.dom).direction=="rtl"?lt.RTL:lt.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let a=0,l;for(let c of o.children){if(!c.isText()||/[^ -~]/.test(c.text))return;let u=pa(c.dom);if(u.length!=1)return;a+=u[0].width,l=u[0].height}if(a)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:a/o.length,textHeight:l}}});if(e)return e;let t=document.createElement("div"),n,s,i;return t.className="cm-line",t.style.width="99999px",t.style.position="absolute",t.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(t);let o=pa(t.firstChild)[0];n=t.getBoundingClientRect().height,s=o&&o.width?o.width/27:7,i=o&&o.height?o.height:n,t.remove()}),{lineHeight:n,charWidth:s,textHeight:i}}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let n=0,s=0;;s++){let i=s==t.viewports.length?null:t.viewports[s],o=i?i.from-1:this.view.state.doc.length;if(o>n){let a=(t.lineBlockAt(o).bottom-t.lineBlockAt(n).top)/this.view.scaleY;e.push(Ee.replace({widget:new Zl(a),block:!0,inclusive:!0,isBlockGap:!0}).range(n,o))}if(!i)break;n=i.to+1}return Ee.set(e)}updateDeco(){let e=1,t=this.view.state.facet(pl).map(i=>(this.dynamicDecorationMap[e++]=typeof i=="function")?i(this.view):i),n=!1,s=this.view.state.facet(Fu).map((i,o)=>{let a=typeof i=="function";return a&&(n=!0),a?i(this.view):i});for(s.length&&(this.dynamicDecorationMap[e++]=n,t.push(Ge.join(s))),this.decorations=[this.editContextFormatting,...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];e<this.decorations.length;)this.dynamicDecorationMap[e++]=!1;this.blockWrappers=this.view.state.facet(Fp).map(i=>typeof i=="function"?i(this.view):i)}scrollIntoView(e){if(e.isSnapshot){let c=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=c.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let c of this.view.state.facet(qp))try{if(c(this.view,e.range,e))return!0}catch(u){er(this.view.state,u,"scroll handler")}let{range:t}=e,n=this.coordsAt(t.head,t.empty?t.assoc:t.head>t.anchor?-1:1),s;if(!n)return;!t.empty&&(s=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(n={left:Math.min(n.left,s.left),top:Math.min(n.top,s.top),right:Math.max(n.right,s.right),bottom:Math.max(n.bottom,s.bottom)});let i=Uu(this.view),o={left:n.left-i.left,top:n.top-i.top,right:n.right+i.right,bottom:n.bottom+i.bottom},{offsetWidth:a,offsetHeight:l}=this.view.scrollDOM;if(J2(this.view.scrollDOM,o,t.head<t.anchor?-1:1,e.x,e.y,Math.max(Math.min(e.xMargin,a),-a),Math.max(Math.min(e.yMargin,l),-l),this.view.textDirection==lt.LTR),window.visualViewport&&window.innerHeight-window.visualViewport.height>1&&(n.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||n.bottom<window.pageYOffset+window.visualViewport.offsetTop)){let c=this.view.docView.lineAt(t.head,1);c&&c.dom.scrollIntoView({block:"nearest"})}}lineHasWidget(e){let t=n=>n.isWidget()||n.children.some(t);return t(this.tile.resolveBlock(e,1).tile)}destroy(){Fc(this.tile)}}function Fc(r,e){let t=e?.get(r);if(t!=1){t==null&&r.destroy();for(let n of r.children)Fc(n,e)}}function C$(r){return r.node.nodeType==1&&r.node.firstChild&&(r.offset==0||r.node.childNodes[r.offset-1].contentEditable=="false")&&(r.offset==r.node.childNodes.length||r.node.childNodes[r.offset].contentEditable=="false")}function Kp(r,e){let t=r.observer.selectionRange;if(!t.focusNode)return null;let n=Mp(t.focusNode,t.focusOffset),s=Ap(t.focusNode,t.focusOffset),i=n||s;if(s&&n&&s.node!=n.node){let a=bt.get(s.node);if(!a||a.isText()&&a.text!=s.node.nodeValue)i=s;else if(r.docView.lastCompositionAfterCursor){let l=bt.get(n.node);!l||l.isText()&&l.text!=n.node.nodeValue||(i=s)}}if(r.docView.lastCompositionAfterCursor=i!=n,!i)return null;let o=e-i.offset;return{from:o,to:o+i.node.nodeValue.length,node:i.node}}function Q$(r,e,t){let n=Kp(r,t);if(!n)return null;let{node:s,from:i,to:o}=n,a=s.nodeValue;if(/[\n\r]/.test(a)||r.state.doc.sliceString(n.from,n.to)!=a)return null;let l=e.invertedDesc;return{range:new yr(l.mapPos(i),l.mapPos(o),i,o),text:s}}function P$(r,e){return r.nodeType!=1?0:(e&&r.childNodes[e-1].contentEditable=="false"?1:0)|(e<r.childNodes.length&&r.childNodes[e].contentEditable=="false"?2:0)}let T$=class{constructor(){this.changes=[]}compareRange(e,t){_s(e,t,this.changes)}comparePoint(e,t){_s(e,t,this.changes)}boundChange(e){_s(e,e,this.changes)}};function M$(r,e,t){let n=new T$;return Ge.compare(r,e,t,n),n.changes}class A${constructor(){this.changes=[]}compareRange(e,t){_s(e,t,this.changes)}comparePoint(){}boundChange(e){_s(e,e,this.changes)}}function _$(r,e,t){let n=new A$;return Ge.compare(r,e,t,n),n.changes}function R$(r,e){for(let t=r;t&&t!=e;t=t.assignedSlot||t.parentNode)if(t.nodeType==1&&t.contentEditable=="false")return!0;return!1}function B$(r,e){let t=!1;return e&&r.iterChangedRanges((n,s)=>{n<e.to&&s>e.from&&(t=!0)}),t}class Zl extends rn{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return e.className="cm-gap",this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get editable(){return!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}function D$(r,e,t=1){let n=r.charCategorizer(e),s=r.doc.lineAt(e),i=e-s.from;if(s.length==0)return J.cursor(e);i==0?t=1:i==s.length&&(t=-1);let o=i,a=i;t<0?o=Qt(s.text,i,!1):a=Qt(s.text,i);let l=n(s.text.slice(o,a));for(;o>0;){let c=Qt(s.text,o,!1);if(n(s.text.slice(c,o))!=l)break;o=c}for(;a<s.length;){let c=Qt(s.text,a);if(n(s.text.slice(a,c))!=l)break;a=c}return J.range(o+s.from,a+s.from)}function Z$(r,e,t,n,s){let i=Math.round((n-e.left)*r.defaultCharacterWidth);if(r.lineWrapping&&t.height>r.defaultLineHeight*1.5){let a=r.viewState.heightOracle.textHeight,l=Math.floor((s-t.top-(r.defaultLineHeight-a)*.5)/a);i+=l*r.viewState.heightOracle.lineLength}let o=r.state.sliceDoc(t.from,t.to);return t.from+Zc(o,i,r.state.tabSize)}function Uc(r,e,t){let n=r.lineBlockAt(e);if(Array.isArray(n.type)){let s;for(let i of n.type){if(i.from>e)break;if(!(i.to<e)){if(i.from<e&&i.to>e)return i;(!s||i.type==Bt.Text&&(s.type!=i.type||(t<0?i.from<e:i.to>e)))&&(s=i)}}return s||n}return n}function E$(r,e,t,n){let s=Uc(r,e.head,e.assoc||-1),i=!n||s.type!=Bt.Text||!(r.lineWrapping||s.widgetLineBreaks)?null:r.coordsAtPos(e.assoc<0&&e.head>s.from?e.head-1:e.head);if(i){let o=r.dom.getBoundingClientRect(),a=r.textDirectionAt(s.from),l=r.posAtCoords({x:t==(a==lt.LTR)?o.right-1:o.left+1,y:(i.top+i.bottom)/2});if(l!=null)return J.cursor(l,t?-1:1)}return J.cursor(t?s.to:s.from,t?-1:1)}function xd(r,e,t,n){let s=r.state.doc.lineAt(e.head),i=r.bidiSpans(s),o=r.textDirectionAt(s.from);for(let a=e,l=null;;){let c=h$(s,i,o,a,t),u=Zp;if(!c){if(s.number==(t?r.state.doc.lines:1))return a;u=`
|
|
18
|
+
`,s=r.state.doc.line(s.number+(t?1:-1)),i=r.bidiSpans(s),c=r.visualLineSide(s,!t)}if(l){if(!l(u))return a}else{if(!n)return c;l=n(u)}a=c}}function L$(r,e,t){let n=r.state.charCategorizer(e),s=n(t);return i=>{let o=n(i);return s==ft.Space&&(s=o),s==o}}function X$(r,e,t,n){let s=e.head,i=t?1:-1;if(s==(t?r.state.doc.length:0))return J.cursor(s,e.assoc);let o=e.goalColumn,a,l=r.contentDOM.getBoundingClientRect(),c=r.coordsAtPos(s,(e.empty?e.assoc:0)||(t?1:-1)),u=r.documentTop;if(c)o==null&&(o=c.left-l.left),a=i<0?c.top:c.bottom;else{let g=r.viewState.lineBlockAt(s);o==null&&(o=Math.min(l.right-l.left,r.defaultCharacterWidth*(s-g.from))),a=(i<0?g.top:g.bottom)+u}let h=l.left+o,f=n??r.viewState.heightOracle.textHeight>>1,m=Gc(r,{x:h,y:a+f*i},!1,i);return J.cursor(m.pos,m.assoc,void 0,o)}function Vi(r,e,t){for(;;){let n=0;for(let s of r)s.between(e-1,e+1,(i,o,a)=>{if(e>i&&e<o){let l=n||t||(e-i<o-e?-1:1);e=l<0?i:o,n=l}});if(!n)return e}}function Jp(r,e){let t=null;for(let n=0;n<e.ranges.length;n++){let s=e.ranges[n],i=null;if(s.empty){let o=Vi(r,s.from,0);o!=s.from&&(i=J.cursor(o,-1))}else{let o=Vi(r,s.from,-1),a=Vi(r,s.to,1);(o!=s.from||a!=s.to)&&(i=J.range(s.from==s.anchor?o:a,s.from==s.head?o:a))}i&&(t||(t=e.ranges.slice()),t[n]=i)}return t?J.create(t,e.mainIndex):e}function El(r,e,t){let n=Vi(r.state.facet(yo).map(s=>s(r)),t.from,e.head>t.from?-1:1);return n==t.from?t:J.cursor(n,n<t.from?1:-1)}class Fr{constructor(e,t){this.pos=e,this.assoc=t}}function Gc(r,e,t,n){let s=r.contentDOM.getBoundingClientRect(),i=s.top+r.viewState.paddingTop,{x:o,y:a}=e,l=a-i,c;for(;;){if(l<0)return new Fr(0,1);if(l>r.viewState.docHeight)return new Fr(r.state.doc.length,-1);if(c=r.elementAtHeight(l),n==null)break;if(c.type==Bt.Text){if(n<0?c.to<r.viewport.from:c.from>r.viewport.to)break;let f=r.docView.coordsAt(n<0?c.from:c.to,n>0?-1:1);if(f&&(n<0?f.top<=l+i:f.bottom>=l+i))break}let h=r.viewState.heightOracle.textHeight/2;l=n>0?c.bottom+h:c.top-h}if(r.viewport.from>=c.to||r.viewport.to<=c.from){if(t)return null;if(c.type==Bt.Text){let h=Z$(r,s,c,o,a);return new Fr(h,h==c.from?1:-1)}}if(c.type!=Bt.Text)return l<(c.top+c.bottom)/2?new Fr(c.from,1):new Fr(c.to,-1);let u=r.docView.lineAt(c.from,2);return(!u||u.length!=c.length)&&(u=r.docView.lineAt(c.from,-2)),new I$(r,o,a,r.textDirectionAt(c.from)).scanTile(u,c.from)}class I${constructor(e,t,n,s){this.view=e,this.x=t,this.y=n,this.baseDir=s,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to<e)&&(this.line=this.view.state.doc.lineAt(e),this.spans=this.view.bidiSpans(this.line)),this}baseDirAt(e,t){let{line:n,spans:s}=this.bidiSpansAt(e);return s[Ur.find(s,e-n.from,-1,t)].level==this.baseDir}dirAt(e,t){let{line:n,spans:s}=this.bidiSpansAt(e);return s[Ur.find(s,e-n.from,-1,t)].dir}bidiIn(e,t){let{spans:n,line:s}=this.bidiSpansAt(e);return n.length>1||n.length&&(n[0].level!=this.baseDir||n[0].to+s.from<t)}scan(e,t){let n=0,s=e.length-1,i=new Set,o=this.bidiIn(e[0],e[s]),a,l,c=-1,u=1e9,h;e:for(;n<s;){let m=s-n,g=n+s>>1;t:if(i.has(g)){let b=n+Math.floor(Math.random()*m);for(let x=0;x<m;x++){if(!i.has(b)){g=b;break t}b++,b==s&&(b=n)}break e}i.add(g);let O=t(g);if(O)for(let b=0;b<O.length;b++){let x=O[b],w=0;if(x.bottom<this.y)(!a||a.bottom<x.bottom)&&(a=x),w=1;else if(x.top>this.y)(!l||l.top>x.top)&&(l=x),w=-1;else{let S=x.left>this.x?this.x-x.left:x.right<this.x?this.x-x.right:0,C=Math.abs(S);C<u&&(c=g,u=C,h=x),S&&(w=S<0==(this.baseDir==lt.LTR)?-1:1)}w==-1&&(!o||this.baseDirAt(e[g],1))?s=g:w==1&&(!o||this.baseDirAt(e[g+1],-1))&&(n=g+1)}}if(!h){let m=a&&(!l||this.y-a.bottom<l.top-this.y)?a:l;return this.y=(m.top+m.bottom)/2,this.scan(e,t)}let f=(o?this.dirAt(e[c],1):this.baseDir)==lt.LTR;return{i:c,after:this.x>(h.left+h.right)/2==f}}scanText(e,t){let n=[];for(let i=0;i<e.length;i=Qt(e.text,i))n.push(t+i);n.push(t+e.length);let s=this.scan(n,i=>{let o=n[i]-t,a=n[i+1]-t;return Gi(e.dom,o,a).getClientRects()});return s.after?new Fr(n[s.i+1],-1):new Fr(n[s.i],1)}scanTile(e,t){if(!e.length)return new Fr(t,1);if(e.children.length==1){let a=e.children[0];if(a.isText())return this.scanText(a,t);if(a.isComposite())return this.scanTile(a,t)}let n=[t];for(let a=0,l=t;a<e.children.length;a++)n.push(l+=e.children[a].length);let s=this.scan(n,a=>{let l=e.children[a];return l.flags&48?null:(l.dom.nodeType==1?l.dom:Gi(l.dom,0,l.length)).getClientRects()}),i=e.children[s.i],o=n[s.i];return i.isText()?this.scanText(i,o):i.isComposite()?this.scanTile(i,o):s.after?new Fr(n[s.i+1],-1):new Fr(o,1)}}const Ri="";class V${constructor(e,t){this.points=e,this.view=t,this.text="",this.lineSeparator=t.state.facet(Ke.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=Ri}readRange(e,t){if(!e)return this;let n=e.parentNode;for(let s=e;;){this.findPointBefore(n,s);let i=this.text.length;this.readNode(s);let o=bt.get(s),a=s.nextSibling;if(a==t){o?.breakAfter&&!a&&n!=this.view.contentDOM&&this.lineBreak();break}let l=bt.get(a);(o&&l?o.breakAfter:(o?o.breakAfter:_a(s))||_a(a)&&(s.nodeName!="BR"||o?.isWidget())&&this.text.length>i)&&!N$(a,t)&&this.lineBreak(),s=a}return this.findPointBefore(n,t),this}readTextNode(e){let t=e.nodeValue;for(let n of this.points)n.node==e&&(n.pos=this.text.length+Math.min(n.offset,t.length));for(let n=0,s=this.lineSeparator?null:/\r\n?|\n/g;;){let i=-1,o=1,a;if(this.lineSeparator?(i=t.indexOf(this.lineSeparator,n),o=this.lineSeparator.length):(a=s.exec(t))&&(i=a.index,o=a[0].length),this.append(t.slice(n,i<0?t.length:i)),i<0)break;if(this.lineBreak(),o>1)for(let l of this.points)l.node==e&&l.pos>this.text.length&&(l.pos-=o-1);n=i+o}}readNode(e){let t=bt.get(e),n=t&&t.overrideDOMText;if(n!=null){this.findPointInside(e,n.length);for(let s=n.iter();!s.next().done;)s.lineBreak?this.lineBreak():this.append(s.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let n of this.points)n.node==e&&e.childNodes[n.offset]==t&&(n.pos=this.text.length)}findPointInside(e,t){for(let n of this.points)(e.nodeType==3?n.node==e:e.contains(n.node))&&(n.pos=this.text.length+(z$(e,n.node,n.offset)?t:0))}}function z$(r,e,t){for(;;){if(!e||t<On(e))return!1;if(e==r)return!0;t=Ln(e)+1,e=e.parentNode}}function N$(r,e){let t;for(;!(r==e||!r);r=r.nextSibling){let n=bt.get(r);if(!n?.isWidget())return!1;n&&(t||(t=[])).push(n)}if(t)for(let n of t){let s=n.overrideDOMText;if(s?.length)return!1}return!0}class yd{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}}class W${constructor(e,t,n,s){this.typeOver=s,this.bounds=null,this.text="",this.domChanged=t>-1;let{impreciseHead:i,impreciseAnchor:o}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=eg(e.docView.tile,t,n,0))){let a=i||o?[]:j$(e),l=new V$(a,e);l.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=l.text,this.newSel=Y$(a,this.bounds.from)}else{let a=e.observer.selectionRange,l=i&&i.node==a.focusNode&&i.offset==a.focusOffset||!Nc(e.contentDOM,a.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(a.focusNode,a.focusOffset),c=o&&o.node==a.anchorNode&&o.offset==a.anchorOffset||!Nc(e.contentDOM,a.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(a.anchorNode,a.anchorOffset),u=e.viewport;if(($e.ios||$e.chrome)&&e.state.selection.main.empty&&l!=c&&(u.from>0||u.to<e.state.doc.length)){let h=Math.min(l,c),f=Math.max(l,c),m=u.from-h,g=u.to-f;(m==0||m==1||h==0)&&(g==0||g==-1||f==e.state.doc.length)&&(l=0,c=e.state.doc.length)}e.inputState.composing>-1&&e.state.selection.ranges.length>1?this.newSel=e.state.selection.replaceRange(J.range(c,l)):this.newSel=J.single(c,l)}}}function eg(r,e,t,n){if(r.isComposite()){let s=-1,i=-1,o=-1,a=-1;for(let l=0,c=n,u=n;l<r.children.length;l++){let h=r.children[l],f=c+h.length;if(c<e&&f>t)return eg(h,e,t,c);if(f>=e&&s==-1&&(s=l,i=c),c>t&&h.dom.parentNode==r.dom){o=l,a=u;break}u=f,c=f+h.breakAfter}return{from:i,to:a<0?n+r.length:a,startDOM:(s?r.children[s-1].dom.nextSibling:null)||r.dom.firstChild,endDOM:o<r.children.length&&o>=0?r.children[o].dom:null}}else return r.isText()?{from:n,to:n+r.length,startDOM:r.dom,endDOM:r.dom.nextSibling}:null}function tg(r,e){let t,{newSel:n}=e,s=r.state.selection.main,i=r.inputState.lastKeyTime>Date.now()-100?r.inputState.lastKeyCode:-1;if(e.bounds){let{from:o,to:a}=e.bounds,l=s.from,c=null;(i===8||$e.android&&e.text.length<a-o)&&(l=s.to,c="end");let u=rg(r.state.doc.sliceString(o,a,Ri),e.text,l-o,c);u&&($e.chrome&&i==13&&u.toB==u.from+2&&e.text.slice(u.from,u.toB)==Ri+Ri&&u.toB--,t={from:o+u.from,to:o+u.toA,insert:et.of(e.text.slice(u.from,u.toB).split(Ri))})}else n&&(!r.hasFocus&&r.state.facet(hn)||Ea(n,s))&&(n=null);if(!t&&!n)return!1;if(!t&&e.typeOver&&!s.empty&&n&&n.main.empty?t={from:s.from,to:s.to,insert:r.state.doc.slice(s.from,s.to)}:($e.mac||$e.android)&&t&&t.from==t.to&&t.from==s.head-1&&/^\. ?$/.test(t.insert.toString())&&r.contentDOM.getAttribute("autocorrect")=="off"?(n&&t.insert.length==2&&(n=J.single(n.main.anchor-1,n.main.head-1)),t={from:t.from,to:t.to,insert:et.of([t.insert.toString().replace("."," ")])}):t&&t.from>=s.from&&t.to<=s.to&&(t.from!=s.from||t.to!=s.to)&&s.to-s.from-(t.to-t.from)<=4?t={from:s.from,to:s.to,insert:r.state.doc.slice(s.from,t.from).append(t.insert).append(r.state.doc.slice(t.to,s.to))}:r.state.doc.lineAt(s.from).to<s.to&&r.docView.lineHasWidget(s.to)&&r.inputState.insertingTextAt>Date.now()-50?t={from:s.from,to:s.to,insert:r.state.toText(r.inputState.insertingText)}:$e.chrome&&t&&t.from==t.to&&t.from==s.head&&t.insert.toString()==`
|
|
19
|
+
`&&r.lineWrapping&&(n&&(n=J.single(n.main.anchor-1,n.main.head-1)),t={from:s.from,to:s.to,insert:et.of([" "])}),t)return Gu(r,t,n,i);if(n&&!Ea(n,s)){let o=!1,a="select";return r.inputState.lastSelectionTime>Date.now()-50&&(r.inputState.lastSelectionOrigin=="select"&&(o=!0),a=r.inputState.lastSelectionOrigin,a=="select.pointer"&&(n=Jp(r.state.facet(yo).map(l=>l(r)),n))),r.dispatch({selection:n,scrollIntoView:o,userEvent:a}),!0}else return!1}function Gu(r,e,t,n=-1){if($e.ios&&r.inputState.flushIOSKey(e))return!0;let s=r.state.selection.main;if($e.android&&(e.to==s.to&&(e.from==s.from||e.from==s.from-1&&r.state.sliceDoc(e.from,s.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&Rs(r.contentDOM,"Enter",13)||(e.from==s.from-1&&e.to==s.to&&e.insert.length==0||n==8&&e.insert.length<e.to-e.from&&e.to>s.head)&&Rs(r.contentDOM,"Backspace",8)||e.from==s.from&&e.to==s.to+1&&e.insert.length==0&&Rs(r.contentDOM,"Delete",46)))return!0;let i=e.insert.toString();r.inputState.composing>=0&&r.inputState.composing++;let o,a=()=>o||(o=q$(r,e,t));return r.state.facet(Vp).some(l=>l(r,e.from,e.to,i,a))||r.dispatch(a()),!0}function q$(r,e,t){let n,s=r.state,i=s.selection.main,o=-1;if(e.from==e.to&&e.from<i.from||e.from>i.to){let l=e.from<i.from?-1:1,c=l<0?i.from:i.to,u=Vi(s.facet(yo).map(h=>h(r)),c,l);e.from==u&&(o=u)}if(o>-1)n={changes:e,selection:J.cursor(e.from+e.insert.length,-1)};else if(e.from>=i.from&&e.to<=i.to&&e.to-e.from>=(i.to-i.from)/3&&(!t||t.main.empty&&t.main.from==e.from+e.insert.length)&&r.inputState.composing<0){let l=i.from<e.from?s.sliceDoc(i.from,e.from):"",c=i.to>e.to?s.sliceDoc(e.to,i.to):"";n=s.replaceSelection(r.state.toText(l+e.insert.sliceString(0,void 0,r.state.lineBreak)+c))}else{let l=s.changes(e),c=t&&t.main.to<=l.newLength?t.main:void 0;if(s.selection.ranges.length>1&&(r.inputState.composing>=0||r.inputState.compositionPendingChange)&&e.to<=i.to+10&&e.to>=i.to-10){let u=r.state.sliceDoc(e.from,e.to),h,f=t&&Kp(r,t.main.head);if(f){let g=e.insert.length-(e.to-e.from);h={from:f.from,to:f.to-g}}else h=r.state.doc.lineAt(i.head);let m=i.to-e.to;n=s.changeByRange(g=>{if(g.from==i.from&&g.to==i.to)return{changes:l,range:c||g.map(l)};let O=g.to-m,b=O-u.length;if(r.state.sliceDoc(b,O)!=u||O>=h.from&&b<=h.to)return{range:g};let x=s.changes({from:b,to:O,insert:e.insert}),w=g.to-i.to;return{changes:x,range:c?J.range(Math.max(0,c.anchor+w),Math.max(0,c.head+w)):g.map(x)}})}else n={changes:l,selection:c&&s.selection.replaceRange(c)}}let a="input.type";return(r.composing||r.inputState.compositionPendingChange&&r.inputState.compositionEndedAt>Date.now()-50)&&(r.inputState.compositionPendingChange=!1,a+=".compose",r.inputState.compositionFirstChange&&(a+=".start",r.inputState.compositionFirstChange=!1)),s.update(n,{userEvent:a,scrollIntoView:!0})}function rg(r,e,t,n){let s=Math.min(r.length,e.length),i=0;for(;i<s&&r.charCodeAt(i)==e.charCodeAt(i);)i++;if(i==s&&r.length==e.length)return null;let o=r.length,a=e.length;for(;o>0&&a>0&&r.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(n=="end"){let l=Math.max(0,i-Math.min(o,a));t-=o+l-i}if(o<i&&r.length<e.length){let l=t<=i&&t>=o?i-t:0;i-=l,a=i+(a-o),o=i}else if(a<i){let l=t<=i&&t>=a?i-t:0;i-=l,o=i+(o-a),a=i}return{from:i,toA:o,toB:a}}function j$(r){let e=[];if(r.root.activeElement!=r.contentDOM)return e;let{anchorNode:t,anchorOffset:n,focusNode:s,focusOffset:i}=r.observer.selectionRange;return t&&(e.push(new yd(t,n)),(s!=t||i!=n)&&e.push(new yd(s,i))),e}function Y$(r,e){if(r.length==0)return null;let t=r[0].pos,n=r.length==2?r[1].pos:t;return t>-1&&n>-1?J.single(t+e,n+e):null}function Ea(r,e){return e.head==r.main.head&&e.anchor==r.main.anchor}class F${setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.pendingIOSKey=void 0,this.tabFocusMode=-1,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastContextMenu=0,this.scrollHandlers=[],this.handlers=Object.create(null),this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.insertingText="",this.insertingTextAt=0,this.mouseSelection=null,this.draggedContent=null,this.handleEvent=this.handleEvent.bind(this),this.notifiedFocused=e.hasFocus,$e.safari&&e.contentDOM.addEventListener("input",()=>null),$e.gecko&&cC(e.contentDOM.ownerDocument)}handleEvent(e){!rC(this.view,e)||this.ignoreDuringComposition(e)||e.type=="keydown"&&this.keydown(e)||(this.view.updateState!=0?Promise.resolve().then(()=>this.runHandlers(e.type,e)):this.runHandlers(e.type,e))}runHandlers(e,t){let n=this.handlers[e];if(n){for(let s of n.observers)s(this.view,t);for(let s of n.handlers){if(t.defaultPrevented)break;if(s(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=U$(e),n=this.handlers,s=this.view.contentDOM;for(let i in t)if(i!="scroll"){let o=!t[i].handlers.length,a=n[i];a&&o!=!a.handlers.length&&(s.removeEventListener(i,this.handleEvent),a=null),a||s.addEventListener(i,this.handleEvent,{passive:o})}for(let i in n)i!="scroll"&&!t[i]&&s.removeEventListener(i,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),e.keyCode==9&&this.tabFocusMode>-1&&(!this.tabFocusMode||Date.now()<=this.tabFocusMode))return!0;if(this.tabFocusMode>0&&e.keyCode!=27&&sg.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),$e.android&&$e.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;let t;return $e.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&((t=ng.find(n=>n.keyCode==e.keyCode))&&!e.ctrlKey||G$.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(this.pendingIOSKey=t||e,setTimeout(()=>this.flushIOSKey(),250),!0):(e.keyCode!=229&&this.view.observer.forceFlush(),!1)}flushIOSKey(e){let t=this.pendingIOSKey;return!t||t.key=="Enter"&&e&&e.from<e.to&&/^\S+$/.test(e.insert.toString())?!1:(this.pendingIOSKey=void 0,Rs(this.view.contentDOM,t.key,t.keyCode,t instanceof KeyboardEvent?t:void 0))}ignoreDuringComposition(e){return!/^key/.test(e.type)||e.synthetic?!1:this.composing>0?!0:$e.safari&&!$e.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.view.observer.update(e),this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function kd(r,e){return(t,n)=>{try{return e.call(r,n,t)}catch(s){er(t.state,s)}}}function U$(r){let e=Object.create(null);function t(n){return e[n]||(e[n]={observers:[],handlers:[]})}for(let n of r){let s=n.spec,i=s&&s.plugin.domEventHandlers,o=s&&s.plugin.domEventObservers;if(i)for(let a in i){let l=i[a];l&&t(a).handlers.push(kd(n.value,l))}if(o)for(let a in o){let l=o[a];l&&t(a).observers.push(kd(n.value,l))}}for(let n in Br)t(n).handlers.push(Br[n]);for(let n in Qr)t(n).observers.push(Qr[n]);return e}const ng=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],G$="dthko",sg=[16,17,18,20,91,92,224,225],zo=6;function No(r){return Math.max(0,r)*.7+8}function H$(r,e){return Math.max(Math.abs(r.clientX-e.clientX),Math.abs(r.clientY-e.clientY))}class K${constructor(e,t,n,s){this.view=e,this.startEvent=t,this.style=n,this.mustSelect=s,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParents=e$(e.contentDOM),this.atoms=e.state.facet(yo).map(o=>o(e));let i=e.contentDOM.ownerDocument;i.addEventListener("mousemove",this.move=this.move.bind(this)),i.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(Ke.allowMultipleSelections)&&J$(e,t),this.dragging=tC(e,t)&&ag(t)==1?null:!1}start(e){this.dragging===!1&&this.select(e)}move(e){if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&H$(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let t=0,n=0,s=0,i=0,o=this.view.win.innerWidth,a=this.view.win.innerHeight;this.scrollParents.x&&({left:s,right:o}=this.scrollParents.x.getBoundingClientRect()),this.scrollParents.y&&({top:i,bottom:a}=this.scrollParents.y.getBoundingClientRect());let l=Uu(this.view);e.clientX-l.left<=s+zo?t=-No(s-e.clientX):e.clientX+l.right>=o-zo&&(t=No(e.clientX-o)),e.clientY-l.top<=i+zo?n=-No(i-e.clientY):e.clientY+l.bottom>=a-zo&&(n=No(e.clientY-a)),this.setScrollSpeed(t,n)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:t}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),t&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=t,t=0),(e||t)&&this.view.win.scrollBy(e,t),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:t}=this,n=Jp(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!n.eq(t.state.selection,this.dragging===!1))&&this.view.dispatch({selection:n,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(t=>t.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function J$(r,e){let t=r.state.facet(Ep);return t.length?t[0](e):$e.mac?e.metaKey:e.ctrlKey}function eC(r,e){let t=r.state.facet(Lp);return t.length?t[0](e):$e.mac?!e.altKey:!e.ctrlKey}function tC(r,e){let{main:t}=r.state.selection;if(t.empty)return!1;let n=Ui(r.root);if(!n||n.rangeCount==0)return!0;let s=n.getRangeAt(0).getClientRects();for(let i=0;i<s.length;i++){let o=s[i];if(o.left<=e.clientX&&o.right>=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function rC(r,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,n;t!=r.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(n=bt.get(t))&&n.isWidget()&&!n.isHidden&&n.widget.ignoreEvent(e))return!1;return!0}const Br=Object.create(null),Qr=Object.create(null),ig=$e.ie&&$e.ie_version<15||$e.ios&&$e.webkit_version<604;function nC(r){let e=r.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{r.focus(),t.remove(),og(r,t.value)},50)}function vl(r,e,t){for(let n of r.facet(e))t=n(t,r);return t}function og(r,e){e=vl(r.state,qu,e);let{state:t}=r,n,s=1,i=t.toText(e),o=i.lines==t.selection.ranges.length;if(Hc!=null&&t.selection.ranges.every(l=>l.empty)&&Hc==i.toString()){let l=-1;n=t.changeByRange(c=>{let u=t.doc.lineAt(c.from);if(u.from==l)return{range:c};l=u.from;let h=t.toText((o?i.line(s++).text:e)+t.lineBreak);return{changes:{from:u.from,insert:h},range:J.cursor(c.from+h.length)}})}else o?n=t.changeByRange(l=>{let c=i.line(s++);return{changes:{from:l.from,to:l.to,insert:c.text},range:J.cursor(l.from+c.length)}}):n=t.replaceSelection(i);r.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}Qr.scroll=r=>{r.inputState.lastScrollTop=r.scrollDOM.scrollTop,r.inputState.lastScrollLeft=r.scrollDOM.scrollLeft};Br.keydown=(r,e)=>(r.inputState.setSelectionOrigin("select"),e.keyCode==27&&r.inputState.tabFocusMode!=0&&(r.inputState.tabFocusMode=Date.now()+2e3),!1);Qr.touchstart=(r,e)=>{r.inputState.lastTouchTime=Date.now(),r.inputState.setSelectionOrigin("select.pointer")};Qr.touchmove=r=>{r.inputState.setSelectionOrigin("select.pointer")};Br.mousedown=(r,e)=>{if(r.observer.flush(),r.inputState.lastTouchTime>Date.now()-2e3)return!1;let t=null;for(let n of r.state.facet(Xp))if(t=n(r,e),t)break;if(!t&&e.button==0&&(t=iC(r,e)),t){let n=!r.hasFocus;r.inputState.startMouseSelection(new K$(r,e,t,n)),n&&r.observer.ignore(()=>{Pp(r.contentDOM);let i=r.root.activeElement;i&&!i.contains(r.contentDOM)&&i.blur()});let s=r.inputState.mouseSelection;if(s)return s.start(e),s.dragging===!1}else r.inputState.setSelectionOrigin("select.pointer");return!1};function wd(r,e,t,n){if(n==1)return J.cursor(e,t);if(n==2)return D$(r.state,e,t);{let s=r.docView.lineAt(e,t),i=r.state.doc.lineAt(s?s.posAtEnd:e),o=s?s.posAtStart:i.from,a=s?s.posAtEnd:i.to;return a<r.state.doc.length&&a==i.to&&a++,J.range(o,a)}}const sC=$e.ie&&$e.ie_version<=11;let Sd=null,$d=0,Cd=0;function ag(r){if(!sC)return r.detail;let e=Sd,t=Cd;return Sd=r,Cd=Date.now(),$d=!e||t>Date.now()-400&&Math.abs(e.clientX-r.clientX)<2&&Math.abs(e.clientY-r.clientY)<2?($d+1)%3:1}function iC(r,e){let t=r.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),n=ag(e),s=r.state.selection;return{update(i){i.docChanged&&(t.pos=i.changes.mapPos(t.pos),s=s.map(i.changes))},get(i,o,a){let l=r.posAndSideAtCoords({x:i.clientX,y:i.clientY},!1),c,u=wd(r,l.pos,l.assoc,n);if(t.pos!=l.pos&&!o){let h=wd(r,t.pos,t.assoc,n),f=Math.min(h.from,u.from),m=Math.max(h.to,u.to);u=f<u.from?J.range(f,m):J.range(m,f)}return o?s.replaceRange(s.main.extend(u.from,u.to)):a&&n==1&&s.ranges.length>1&&(c=oC(s,l.pos))?c:a?s.addRange(u):J.create([u])}}}function oC(r,e){for(let t=0;t<r.ranges.length;t++){let{from:n,to:s}=r.ranges[t];if(n<=e&&s>=e)return J.create(r.ranges.slice(0,t).concat(r.ranges.slice(t+1)),r.mainIndex==t?0:r.mainIndex-(r.mainIndex>t?1:0))}return null}Br.dragstart=(r,e)=>{let{selection:{main:t}}=r.state;if(e.target.draggable){let s=r.docView.tile.nearest(e.target);if(s&&s.isWidget()){let i=s.posAtStart,o=i+s.length;(i>=t.to||o<=t.from)&&(t=J.range(i,o))}}let{inputState:n}=r;return n.mouseSelection&&(n.mouseSelection.dragging=!0),n.draggedContent=t,e.dataTransfer&&(e.dataTransfer.setData("Text",vl(r.state,ju,r.state.sliceDoc(t.from,t.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Br.dragend=r=>(r.inputState.draggedContent=null,!1);function Qd(r,e,t,n){if(t=vl(r.state,qu,t),!t)return;let s=r.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:i}=r.inputState,o=n&&i&&eC(r,e)?{from:i.from,to:i.to}:null,a={from:s,insert:t},l=r.state.changes(o?[o,a]:a);r.focus(),r.dispatch({changes:l,selection:{anchor:l.mapPos(s,-1),head:l.mapPos(s,1)},userEvent:o?"move.drop":"input.drop"}),r.inputState.draggedContent=null}Br.drop=(r,e)=>{if(!e.dataTransfer)return!1;if(r.state.readOnly)return!0;let t=e.dataTransfer.files;if(t&&t.length){let n=Array(t.length),s=0,i=()=>{++s==t.length&&Qd(r,e,n.filter(o=>o!=null).join(r.state.lineBreak),!1)};for(let o=0;o<t.length;o++){let a=new FileReader;a.onerror=i,a.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(a.result)||(n[o]=a.result),i()},a.readAsText(t[o])}return!0}else{let n=e.dataTransfer.getData("Text");if(n)return Qd(r,e,n,!0),!0}return!1};Br.paste=(r,e)=>{if(r.state.readOnly)return!0;r.observer.flush();let t=ig?null:e.clipboardData;return t?(og(r,t.getData("text/plain")||t.getData("text/uri-list")),!0):(nC(r),!1)};function aC(r,e){let t=r.dom.parentNode;if(!t)return;let n=t.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.value=e,n.focus(),n.selectionEnd=e.length,n.selectionStart=0,setTimeout(()=>{n.remove(),r.focus()},50)}function lC(r){let e=[],t=[],n=!1;for(let s of r.selection.ranges)s.empty||(e.push(r.sliceDoc(s.from,s.to)),t.push(s));if(!e.length){let s=-1;for(let{from:i}of r.selection.ranges){let o=r.doc.lineAt(i);o.number>s&&(e.push(o.text),t.push({from:o.from,to:Math.min(r.doc.length,o.to+1)})),s=o.number}n=!0}return{text:vl(r,ju,e.join(r.lineBreak)),ranges:t,linewise:n}}let Hc=null;Br.copy=Br.cut=(r,e)=>{if(!Xi(r.contentDOM,r.observer.selectionRange))return!1;let{text:t,ranges:n,linewise:s}=lC(r.state);if(!t&&!s)return!1;Hc=s?t:null,e.type=="cut"&&!r.state.readOnly&&r.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"});let i=ig?null:e.clipboardData;return i?(i.clearData(),i.setData("text/plain",t),!0):(aC(r,t),!1)};const lg=xn.define();function cg(r,e){let t=[];for(let n of r.facet(zp)){let s=n(r,e);s&&t.push(s)}return t.length?r.update({effects:t,annotations:lg.of(!0)}):null}function ug(r){setTimeout(()=>{let e=r.hasFocus;if(e!=r.inputState.notifiedFocused){let t=cg(r.state,e);t?r.dispatch(t):r.update([])}},10)}Qr.focus=r=>{r.inputState.lastFocusTime=Date.now(),!r.scrollDOM.scrollTop&&(r.inputState.lastScrollTop||r.inputState.lastScrollLeft)&&(r.scrollDOM.scrollTop=r.inputState.lastScrollTop,r.scrollDOM.scrollLeft=r.inputState.lastScrollLeft),ug(r)};Qr.blur=r=>{r.observer.clearSelectionRange(),ug(r)};Qr.compositionstart=Qr.compositionupdate=r=>{r.observer.editContext||(r.inputState.compositionFirstChange==null&&(r.inputState.compositionFirstChange=!0),r.inputState.composing<0&&(r.inputState.composing=0))};Qr.compositionend=r=>{r.observer.editContext||(r.inputState.composing=-1,r.inputState.compositionEndedAt=Date.now(),r.inputState.compositionPendingKey=!0,r.inputState.compositionPendingChange=r.observer.pendingRecords().length>0,r.inputState.compositionFirstChange=null,$e.chrome&&$e.android?r.observer.flushSoon():r.inputState.compositionPendingChange?Promise.resolve().then(()=>r.observer.flush()):setTimeout(()=>{r.inputState.composing<0&&r.docView.hasComposition&&r.update([])},50))};Qr.contextmenu=r=>{r.inputState.lastContextMenu=Date.now()};Br.beforeinput=(r,e)=>{var t,n;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(r.inputState.insertingText=e.data,r.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&r.observer.editContext){let i=(t=e.dataTransfer)===null||t===void 0?void 0:t.getData("text/plain"),o=e.getTargetRanges();if(i&&o.length){let a=o[0],l=r.posAtDOM(a.startContainer,a.startOffset),c=r.posAtDOM(a.endContainer,a.endOffset);return Gu(r,{from:l,to:c,insert:r.state.toText(i)},null),!0}}let s;if($e.chrome&&$e.android&&(s=ng.find(i=>i.inputType==e.inputType))&&(r.observer.delayAndroidKey(s.key,s.keyCode),s.key=="Backspace"||s.key=="Delete")){let i=((n=window.visualViewport)===null||n===void 0?void 0:n.height)||0;setTimeout(()=>{var o;(((o=window.visualViewport)===null||o===void 0?void 0:o.height)||0)>i+10&&r.hasFocus&&(r.contentDOM.blur(),r.focus())},100)}return $e.ios&&e.inputType=="deleteContentForward"&&r.observer.flushSoon(),$e.safari&&e.inputType=="insertText"&&r.inputState.composing>=0&&setTimeout(()=>Qr.compositionend(r,e),20),!1};const Pd=new Set;function cC(r){Pd.has(r)||(Pd.add(r),r.addEventListener("copy",()=>{}),r.addEventListener("cut",()=>{}))}const Td=["pre-wrap","normal","pre-line","break-spaces"];let js=!1;function Md(){js=!1}class uC{constructor(e){this.lineWrapping=e,this.doc=et.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,t){let n=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.max(0,Math.ceil((t-e-n*this.lineLength*.5)/this.lineLength))),this.lineHeight*n}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/Math.max(1,this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return Td.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let n=0;n<e.length;n++){let s=e[n];s<0?n++:this.heightSamples[Math.floor(s*10)]||(t=!0,this.heightSamples[Math.floor(s*10)]=!0)}return t}refresh(e,t,n,s,i,o){let a=Td.indexOf(e)>-1,l=Math.abs(t-this.lineHeight)>.3||this.lineWrapping!=a||Math.abs(n-this.charWidth)>.1;if(this.lineWrapping=a,this.lineHeight=t,this.charWidth=n,this.textHeight=s,this.lineLength=i,l){this.heightSamples={};for(let c=0;c<o.length;c++){let u=o[c];u<0?c++:this.heightSamples[Math.floor(u*10)]=!0}}return l}}class hC{constructor(e,t){this.from=e,this.heights=t,this.index=0}get more(){return this.index<this.heights.length}}class Ar{constructor(e,t,n,s,i){this.from=e,this.length=t,this.top=n,this.height=s,this._content=i}get type(){return typeof this._content=="number"?Bt.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof us?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(e){let t=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(e._content)?e._content:[e]);return new Ar(this.from,this.length+e.length,this.top,this.height+e.height,t)}}var ht=(function(r){return r[r.ByPos=0]="ByPos",r[r.ByHeight=1]="ByHeight",r[r.ByPosNoHeight=2]="ByPosNoHeight",r})(ht||(ht={}));const ga=.001;class Nt{constructor(e,t,n=2){this.length=e,this.height=t,this.flags=n}get outdated(){return(this.flags&2)>0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>ga&&(js=!0),this.height=e)}replace(e,t,n){return Nt.of(n)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,n,s){let i=this,o=n.doc;for(let a=s.length-1;a>=0;a--){let{fromA:l,toA:c,fromB:u,toB:h}=s[a],f=i.lineAt(l,ht.ByPosNoHeight,n.setDoc(t),0,0),m=f.to>=c?f:i.lineAt(c,ht.ByPosNoHeight,n,0,0);for(h+=m.to-c,c=m.to;a>0&&f.from<=s[a-1].toA;)l=s[a-1].fromA,u=s[a-1].fromB,a--,l<f.from&&(f=i.lineAt(l,ht.ByPosNoHeight,n,0,0));u+=f.from-l,l=f.from;let g=Hu.build(n.setDoc(o),e,u,h);i=La(i,i.replace(l,c,g))}return i.updateHeight(n,0)}static empty(){return new cr(0,0,0)}static of(e){if(e.length==1)return e[0];let t=0,n=e.length,s=0,i=0;for(;;)if(t==n)if(s>i*2){let a=e[t-1];a.break?e.splice(--t,1,a.left,null,a.right):e.splice(--t,1,a.left,a.right),n+=1+a.break,s-=a.size}else if(i>s*2){let a=e[n];a.break?e.splice(n,1,a.left,null,a.right):e.splice(n,1,a.left,a.right),n+=2+a.break,i-=a.size}else break;else if(s<i){let a=e[t++];a&&(s+=a.size)}else{let a=e[--n];a&&(i+=a.size)}let o=0;return e[t-1]==null?(o=1,t--):e[t]==null&&(o=1,n++),new fC(Nt.of(e.slice(0,t)),o,Nt.of(e.slice(n)))}}function La(r,e){return r==e?r:(r.constructor!=e.constructor&&(js=!0),e)}Nt.prototype.size=1;const dC=Ee.replace({});class hg extends Nt{constructor(e,t,n){super(e,t),this.deco=n,this.spaceAbove=0}mainBlock(e,t){return new Ar(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.deco||0)}blockAt(e,t,n,s){return this.spaceAbove&&e<n+this.spaceAbove?new Ar(s,0,n,this.spaceAbove,dC):this.mainBlock(n,s)}lineAt(e,t,n,s,i){let o=this.mainBlock(s,i);return this.spaceAbove?this.blockAt(0,n,s,i).join(o):o}forEachLine(e,t,n,s,i,o){e<=i+this.length&&t>=i&&o(this.lineAt(0,ht.ByPos,n,s,i))}setMeasuredHeight(e){let t=e.heights[e.index++];t<0?(this.spaceAbove=-t,t=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(t)}updateHeight(e,t=0,n=!1,s){return s&&s.from<=t&&s.more&&this.setMeasuredHeight(s),this.outdated=!1,this}toString(){return`block(${this.length})`}}class cr extends hg{constructor(e,t,n){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=n}mainBlock(e,t){return new Ar(t,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,t,n){let s=n[0];return n.length==1&&(s instanceof cr||s instanceof Tt&&s.flags&4)&&Math.abs(this.length-s.length)<10?(s instanceof Tt?s=new cr(s.length,this.height,this.spaceAbove):s.height=this.height,this.outdated||(s.outdated=!1),s):Nt.of(n)}updateHeight(e,t=0,n=!1,s){return s&&s.from<=t&&s.more?this.setMeasuredHeight(s):(n||this.outdated)&&(this.spaceAbove=0,this.setHeight(Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight)),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}}class Tt extends Nt{constructor(e){super(e,0)}heightMetrics(e,t){let n=e.doc.lineAt(t).number,s=e.doc.lineAt(t+this.length).number,i=s-n+1,o,a=0;if(e.lineWrapping){let l=Math.min(this.height,e.lineHeight*i);o=l/i,this.length>i+1&&(a=(this.height-l)/(this.length-i-1))}else o=this.height/i;return{firstLine:n,lastLine:s,perLine:o,perChar:a}}blockAt(e,t,n,s){let{firstLine:i,lastLine:o,perLine:a,perChar:l}=this.heightMetrics(t,s);if(t.lineWrapping){let c=s+(e<t.lineHeight?0:Math.round(Math.max(0,Math.min(1,(e-n)/this.height))*this.length)),u=t.doc.lineAt(c),h=a+u.length*l,f=Math.max(n,e-h/2);return new Ar(u.from,u.length,f,h,0)}else{let c=Math.max(0,Math.min(o-i,Math.floor((e-n)/a))),{from:u,length:h}=t.doc.line(i+c);return new Ar(u,h,n+a*c,a,0)}}lineAt(e,t,n,s,i){if(t==ht.ByHeight)return this.blockAt(e,n,s,i);if(t==ht.ByPosNoHeight){let{from:m,to:g}=n.doc.lineAt(e);return new Ar(m,g-m,0,0,0)}let{firstLine:o,perLine:a,perChar:l}=this.heightMetrics(n,i),c=n.doc.lineAt(e),u=a+c.length*l,h=c.number-o,f=s+a*h+l*(c.from-i-h);return new Ar(c.from,c.length,Math.max(s,Math.min(f,s+this.height-u)),u,0)}forEachLine(e,t,n,s,i,o){e=Math.max(e,i),t=Math.min(t,i+this.length);let{firstLine:a,perLine:l,perChar:c}=this.heightMetrics(n,i);for(let u=e,h=s;u<=t;){let f=n.doc.lineAt(u);if(u==e){let g=f.number-a;h+=l*g+c*(e-i-g)}let m=l+c*f.length;o(new Ar(f.from,f.length,h,m,0)),h+=m,u=f.to+1}}replace(e,t,n){let s=this.length-t;if(s>0){let i=n[n.length-1];i instanceof Tt?n[n.length-1]=new Tt(i.length+s):n.push(null,new Tt(s-1))}if(e>0){let i=n[0];i instanceof Tt?n[0]=new Tt(e+i.length):n.unshift(new Tt(e-1),null)}return Nt.of(n)}decomposeLeft(e,t){t.push(new Tt(e-1),null)}decomposeRight(e,t){t.push(null,new Tt(this.length-e-1))}updateHeight(e,t=0,n=!1,s){let i=t+this.length;if(s&&s.from<=t+this.length&&s.more){let o=[],a=Math.max(t,s.from),l=-1;for(s.from>t&&o.push(new Tt(s.from-t-1).updateHeight(e,t));a<=i&&s.more;){let u=e.doc.lineAt(a).length;o.length&&o.push(null);let h=s.heights[s.index++],f=0;h<0&&(f=-h,h=s.heights[s.index++]),l==-1?l=h:Math.abs(h-l)>=ga&&(l=-2);let m=new cr(u,h,f);m.outdated=!1,o.push(m),a+=u+1}a<=i&&o.push(null,new Tt(i-a).updateHeight(e,a));let c=Nt.of(o);return(l<0||Math.abs(c.height-this.height)>=ga||Math.abs(l-this.heightMetrics(e,t).perLine)>=ga)&&(js=!0),La(this,c)}else(n||this.outdated)&&(this.setHeight(e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class fC extends Nt{constructor(e,t,n){super(e.length+t+n.length,e.height+n.height,t|(e.outdated||n.outdated?2:0)),this.left=e,this.right=n,this.size=e.size+n.size}get break(){return this.flags&1}blockAt(e,t,n,s){let i=n+this.left.height;return e<i?this.left.blockAt(e,t,n,s):this.right.blockAt(e,t,i,s+this.left.length+this.break)}lineAt(e,t,n,s,i){let o=s+this.left.height,a=i+this.left.length+this.break,l=t==ht.ByHeight?e<o:e<a,c=l?this.left.lineAt(e,t,n,s,i):this.right.lineAt(e,t,n,o,a);if(this.break||(l?c.to<a:c.from>a))return c;let u=t==ht.ByPosNoHeight?ht.ByPosNoHeight:ht.ByPos;return l?c.join(this.right.lineAt(a,u,n,o,a)):this.left.lineAt(a,u,n,s,i).join(c)}forEachLine(e,t,n,s,i,o){let a=s+this.left.height,l=i+this.left.length+this.break;if(this.break)e<l&&this.left.forEachLine(e,t,n,s,i,o),t>=l&&this.right.forEachLine(e,t,n,a,l,o);else{let c=this.lineAt(l,ht.ByPos,n,s,i);e<c.from&&this.left.forEachLine(e,c.from-1,n,s,i,o),c.to>=e&&c.from<=t&&o(c),t>c.to&&this.right.forEachLine(c.to+1,t,n,a,l,o)}}replace(e,t,n){let s=this.left.length+this.break;if(t<s)return this.balanced(this.left.replace(e,t,n),this.right);if(e>this.left.length)return this.balanced(this.left,this.right.replace(e-s,t-s,n));let i=[];e>0&&this.decomposeLeft(e,i);let o=i.length;for(let a of n)i.push(a);if(e>0&&Ad(i,o-1),t<this.length){let a=i.length;this.decomposeRight(t,i),Ad(i,a)}return Nt.of(i)}decomposeLeft(e,t){let n=this.left.length;if(e<=n)return this.left.decomposeLeft(e,t);t.push(this.left),this.break&&(n++,e>=n&&t.push(null)),e>n&&this.right.decomposeLeft(e-n,t)}decomposeRight(e,t){let n=this.left.length,s=n+this.break;if(e>=s)return this.right.decomposeRight(e-s,t);e<n&&this.left.decomposeRight(e,t),this.break&&e<s&&t.push(null),t.push(this.right)}balanced(e,t){return e.size>2*t.size||t.size>2*e.size?Nt.of(this.break?[e,null,t]:[e,t]):(this.left=La(this.left,e),this.right=La(this.right,t),this.setHeight(e.height+t.height),this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,n=!1,s){let{left:i,right:o}=this,a=t+i.length+this.break,l=null;return s&&s.from<=t+i.length&&s.more?l=i=i.updateHeight(e,t,n,s):i.updateHeight(e,t,n),s&&s.from<=a+o.length&&s.more?l=o=o.updateHeight(e,a,n,s):o.updateHeight(e,a,n),l?this.balanced(i,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function Ad(r,e){let t,n;r[e]==null&&(t=r[e-1])instanceof Tt&&(n=r[e+1])instanceof Tt&&r.splice(e-1,3,new Tt(t.length+1+n.length))}const mC=5;class Hu{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let n=Math.min(t,this.lineEnd),s=this.nodes[this.nodes.length-1];s instanceof cr?s.length+=n-this.pos:(n>this.pos||!this.isCovered)&&this.nodes.push(new cr(n-this.pos,-1,0)),this.writtenTo=n,t>n&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,n){if(e<t||n.heightRelevant){let s=n.widget?n.widget.estimatedHeight:0,i=n.widget?n.widget.lineBreaks:0;s<0&&(s=this.oracle.lineHeight);let o=t-e;n.block?this.addBlock(new hg(o,s,n)):(o||i||s>=mC)&&this.addLineDeco(s,i,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenTo<e&&((this.writtenTo<e-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,e-1)),this.nodes.push(null)),this.pos>e&&this.nodes.push(new cr(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,t){let n=new Tt(t-e);return this.oracle.doc.lineAt(e).to==t&&(n.flags|=4),n}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof cr)return e;let t=new cr(0,-1,0);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,n){let s=this.ensureLine();s.length+=n,s.collapsed+=n,s.widgetHeight=Math.max(s.widgetHeight,e),s.breaks+=t,this.writtenTo=this.pos=this.pos+n}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof cr)&&!this.isCovered?this.nodes.push(new cr(0,-1,0)):(this.writtenTo<this.pos||t==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let n=e;for(let s of this.nodes)s instanceof cr&&s.updateHeight(this.oracle,n),n+=s?s.length:1;return this.nodes}static build(e,t,n,s){let i=new Hu(n,e);return Ge.spans(t,n,s,i,0),i.finish(n)}}function pC(r,e,t){let n=new gC;return Ge.compare(r,e,t,n,0),n.changes}class gC{constructor(){this.changes=[]}compareRange(){}comparePoint(e,t,n,s){(e<t||n&&n.heightRelevant||s&&s.heightRelevant)&&_s(e,t,this.changes,5)}}function OC(r,e){let t=r.getBoundingClientRect(),n=r.ownerDocument,s=n.defaultView||window,i=Math.max(0,t.left),o=Math.min(s.innerWidth,t.right),a=Math.max(0,t.top),l=Math.min(s.innerHeight,t.bottom);for(let c=r.parentNode;c&&c!=n.body;)if(c.nodeType==1){let u=c,h=window.getComputedStyle(u);if((u.scrollHeight>u.clientHeight||u.scrollWidth>u.clientWidth)&&h.overflow!="visible"){let f=u.getBoundingClientRect();i=Math.max(i,f.left),o=Math.min(o,f.right),a=Math.max(a,f.top),l=Math.min(c==r.parentNode?s.innerHeight:l,f.bottom)}c=h.position=="absolute"||h.position=="fixed"?u.offsetParent:u.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:i-t.left,right:Math.max(i,o)-t.left,top:a-(t.top+e),bottom:Math.max(a,l)-(t.top+e)}}function vC(r){let e=r.getBoundingClientRect(),t=r.ownerDocument.defaultView||window;return e.left<t.innerWidth&&e.right>0&&e.top<t.innerHeight&&e.bottom>0}function bC(r,e){let t=r.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}class Ll{constructor(e,t,n,s){this.from=e,this.to=t,this.size=n,this.displaySize=s}static same(e,t){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++){let s=e[n],i=t[n];if(s.from!=i.from||s.to!=i.to||s.size!=i.size)return!1}return!0}draw(e,t){return Ee.replace({widget:new xC(this.displaySize*(t?e.scaleY:e.scaleX),t)}).range(this.from,this.to)}}class xC extends rn{constructor(e,t){super(),this.size=e,this.vertical=t}eq(e){return e.size==this.size&&e.vertical==this.vertical}toDOM(){let e=document.createElement("div");return this.vertical?e.style.height=this.size+"px":(e.style.width=this.size+"px",e.style.height="2px",e.style.display="inline-block"),e}get estimatedHeight(){return this.vertical?this.size:-1}}class _d{constructor(e){this.state=e,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!1,this.scaleX=1,this.scaleY=1,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=Rd,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=lt.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let t=e.facet(Yu).some(n=>typeof n!="function"&&n.class=="cm-lineWrapping");this.heightOracle=new uC(t),this.stateDeco=Bd(e),this.heightMap=Nt.empty().applyChanges(this.stateDeco,et.empty,this.heightOracle.setDoc(e.doc),[new yr(0,0,0,e.doc.length)]);for(let n=0;n<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());n++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Ee.set(this.lineGaps.map(n=>n.draw(this,!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let n=0;n<=1;n++){let s=n?t.head:t.anchor;if(!e.some(({from:i,to:o})=>s>=i&&s<=o)){let{from:i,to:o}=this.lineBlockAt(s);e.push(new Wo(i,o))}}return this.viewports=e.sort((n,s)=>n.from-s.from),this.updateScaler()}updateScaler(){let e=this.scaler;return this.scaler=this.heightMap.height<=7e6?Rd:new Ku(this.heightOracle,this.heightMap,this.viewports),e.eq(this.scaler)?0:2}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(Bi(e,this.scaler))})}update(e,t=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=Bd(this.state);let s=e.changedRanges,i=yr.extendWithRanges(s,pC(n,this.stateDeco,e?e.changes:yt.empty(this.state.doc.length))),o=this.heightMap.height,a=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);Md(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),i),(this.heightMap.height!=o||js)&&(e.flags|=2),a?(this.scrollAnchorPos=e.changes.mapPos(a.from,-1),this.scrollAnchorHeight=a.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let l=i.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.head<l.from||t.range.head>l.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,t));let c=l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,e.flags|=this.updateForViewport(),(c||!e.changes.empty||e.flags&2)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(e.changes),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Wp)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,n=window.getComputedStyle(t),s=this.heightOracle,i=n.whiteSpace;this.defaultTextDirection=n.direction=="rtl"?lt.RTL:lt.LTR;let o=this.heightOracle.mustRefreshForWrapping(i)||this.mustMeasureContent==="refresh",a=t.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=a.height;this.contentDOMHeight=a.height,this.mustMeasureContent=!1;let c=0,u=0;if(a.width&&a.height){let{scaleX:C,scaleY:_}=Qp(t,a);(C>.005&&Math.abs(this.scaleX-C)>.005||_>.005&&Math.abs(this.scaleY-_)>.005)&&(this.scaleX=C,this.scaleY=_,c|=16,o=l=!0)}let h=(parseInt(n.paddingTop)||0)*this.scaleY,f=(parseInt(n.paddingBottom)||0)*this.scaleY;(this.paddingTop!=h||this.paddingBottom!=f)&&(this.paddingTop=h,this.paddingBottom=f,c|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(s.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=16);let m=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=m&&(this.scrollAnchorHeight=-1,this.scrollTop=m),this.scrolledToBottom=Tp(e.scrollDOM);let g=(this.printing?bC:OC)(t,this.paddingTop),O=g.top-this.pixelViewport.top,b=g.bottom-this.pixelViewport.bottom;this.pixelViewport=g;let x=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(x!=this.inView&&(this.inView=x,x&&(l=!0)),!this.inView&&!this.scrollTarget&&!vC(e.dom))return 0;let w=a.width;if((this.contentDOMWidth!=w||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=a.width,this.editorHeight=e.scrollDOM.clientHeight,c|=16),l){let C=e.docView.measureVisibleLineHeights(this.viewport);if(s.mustRefreshForHeights(C)&&(o=!0),o||s.lineWrapping&&Math.abs(w-this.contentDOMWidth)>s.charWidth){let{lineHeight:_,charWidth:I,textHeight:V}=e.docView.measureTextSize();o=_>0&&s.refresh(i,_,I,V,Math.max(5,w/I),C),o&&(e.docView.minWidth=0,c|=16)}O>0&&b>0?u=Math.max(O,b):O<0&&b<0&&(u=Math.min(O,b)),Md();for(let _ of this.viewports){let I=_.from==this.viewport.from?C:e.docView.measureVisibleLineHeights(_);this.heightMap=(o?Nt.empty().applyChanges(this.stateDeco,et.empty,this.heightOracle,[new yr(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(s,0,o,new hC(_.from,I))}js&&(c|=2)}let S=!this.viewportIsAppropriate(this.viewport,u)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return S&&(c&2&&(c|=this.updateScaler()),this.viewport=this.getViewport(u,this.scrollTarget),c|=this.updateForViewport()),(c&2||S)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),s=this.heightMap,i=this.heightOracle,{visibleTop:o,visibleBottom:a}=this,l=new Wo(s.lineAt(o-n*1e3,ht.ByHeight,i,0,0).from,s.lineAt(a+(1-n)*1e3,ht.ByHeight,i,0,0).to);if(t){let{head:c}=t.range;if(c<l.from||c>l.to){let u=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),h=s.lineAt(c,ht.ByPos,i,0,0),f;t.y=="center"?f=(h.top+h.bottom)/2-u/2:t.y=="start"||t.y=="nearest"&&c<l.from?f=h.top:f=h.bottom-u,l=new Wo(s.lineAt(f-1e3/2,ht.ByHeight,i,0,0).from,s.lineAt(f+u+1e3/2,ht.ByHeight,i,0,0).to)}}return l}mapViewport(e,t){let n=t.mapPos(e.from,-1),s=t.mapPos(e.to,1);return new Wo(this.heightMap.lineAt(n,ht.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(s,ht.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:e,to:t},n=0){if(!this.inView)return!0;let{top:s}=this.heightMap.lineAt(e,ht.ByPos,this.heightOracle,0,0),{bottom:i}=this.heightMap.lineAt(t,ht.ByPos,this.heightOracle,0,0),{visibleTop:o,visibleBottom:a}=this;return(e==0||s<=o-Math.max(10,Math.min(-n,250)))&&(t==this.state.doc.length||i>=a+Math.max(10,Math.min(n,250)))&&s>o-2*1e3&&i<a+2*1e3}mapLineGaps(e,t){if(!e.length||t.empty)return e;let n=[];for(let s of e)t.touchesRange(s.from,s.to)||n.push(new Ll(t.mapPos(s.from),t.mapPos(s.to),s.size,s.displaySize));return n}ensureLineGaps(e,t){let n=this.heightOracle.lineWrapping,s=n?1e4:2e3,i=s>>1,o=s<<1;if(this.defaultTextDirection!=lt.LTR&&!n)return[];let a=[],l=(u,h,f,m)=>{if(h-u<i)return;let g=this.state.selection.main,O=[g.from];g.empty||O.push(g.to);for(let x of O)if(x>u&&x<h){l(u,x-10,f,m),l(x+10,h,f,m);return}let b=kC(e,x=>x.from>=f.from&&x.to<=f.to&&Math.abs(x.from-u)<i&&Math.abs(x.to-h)<i&&!O.some(w=>x.from<w&&x.to>w));if(!b){if(h<f.to&&t&&n&&t.visibleRanges.some(S=>S.from<=h&&S.to>=h)){let S=t.moveToLineBoundary(J.cursor(h),!1,!0).head;S>u&&(h=S)}let x=this.gapSize(f,u,h,m),w=n||x<2e6?x:2e6;b=new Ll(u,h,x,w)}a.push(b)},c=u=>{if(u.length<o||u.type!=Bt.Text)return;let h=yC(u.from,u.to,this.stateDeco);if(h.total<o)return;let f=this.scrollTarget?this.scrollTarget.range.head:null,m,g;if(n){let O=s/this.heightOracle.lineLength*this.heightOracle.lineHeight,b,x;if(f!=null){let w=jo(h,f),S=((this.visibleBottom-this.visibleTop)/2+O)/u.height;b=w-S,x=w+S}else b=(this.visibleTop-u.top-O)/u.height,x=(this.visibleBottom-u.top+O)/u.height;m=qo(h,b),g=qo(h,x)}else{let O=h.total*this.heightOracle.charWidth,b=s*this.heightOracle.charWidth,x=0;if(O>2e6)for(let I of e)I.from>=u.from&&I.from<u.to&&I.size!=I.displaySize&&I.from*this.heightOracle.charWidth+x<this.pixelViewport.left&&(x=I.size-I.displaySize);let w=this.pixelViewport.left+x,S=this.pixelViewport.right+x,C,_;if(f!=null){let I=jo(h,f),V=((S-w)/2+b)/O;C=I-V,_=I+V}else C=(w-b)/O,_=(S+b)/O;m=qo(h,C),g=qo(h,_)}m>u.from&&l(u.from,m,u,h),g<u.to&&l(g,u.to,u,h)};for(let u of this.viewportLines)Array.isArray(u.type)?u.type.forEach(c):c(u);return a}gapSize(e,t,n,s){let i=jo(s,n)-jo(s,t);return this.heightOracle.lineWrapping?e.height*i:s.total*this.heightOracle.charWidth*i}updateLineGaps(e){Ll.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=Ee.set(e.map(t=>t.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let t=this.stateDeco;this.lineGaps.length&&(t=t.concat(this.lineGapDeco));let n=[];Ge.spans(t,this.viewport.from,this.viewport.to,{span(i,o){n.push({from:i,to:o})},point(){}},20);let s=0;if(n.length!=this.visibleRanges.length)s=12;else for(let i=0;i<n.length&&!(s&8);i++){let o=this.visibleRanges[i],a=n[i];(o.from!=a.from||o.to!=a.to)&&(s|=4,e&&e.mapPos(o.from,-1)==a.from&&e.mapPos(o.to,1)==a.to||(s|=8))}return this.visibleRanges=n,s}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||Bi(this.heightMap.lineAt(e,ht.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return e>=this.viewportLines[0].top&&e<=this.viewportLines[this.viewportLines.length-1].bottom&&this.viewportLines.find(t=>t.top<=e&&t.bottom>=e)||Bi(this.heightMap.lineAt(this.scaler.fromDOM(e),ht.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return Bi(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class Wo{constructor(e,t){this.from=e,this.to=t}}function yC(r,e,t){let n=[],s=r,i=0;return Ge.spans(t,r,e,{span(){},point(o,a){o>s&&(n.push({from:s,to:o}),i+=o-s),s=a}},20),s<e&&(n.push({from:s,to:e}),i+=e-s),{total:i,ranges:n}}function qo({total:r,ranges:e},t){if(t<=0)return e[0].from;if(t>=1)return e[e.length-1].to;let n=Math.floor(r*t);for(let s=0;;s++){let{from:i,to:o}=e[s],a=o-i;if(n<=a)return i+n;n-=a}}function jo(r,e){let t=0;for(let{from:n,to:s}of r.ranges){if(e<=s){t+=e-n;break}t+=s-n}return t/r.total}function kC(r,e){for(let t of r)if(e(t))return t}const Rd={toDOM(r){return r},fromDOM(r){return r},scale:1,eq(r){return r==this}};function Bd(r){let e=r.facet(pl).filter(n=>typeof n!="function"),t=r.facet(Fu).filter(n=>typeof n!="function");return t.length&&e.push(Ge.join(t)),e}class Ku{constructor(e,t,n){let s=0,i=0,o=0;this.viewports=n.map(({from:a,to:l})=>{let c=t.lineAt(a,ht.ByPos,e,0,0).top,u=t.lineAt(l,ht.ByPos,e,0,0).bottom;return s+=u-c,{from:a,to:l,top:c,bottom:u,domTop:0,domBottom:0}}),this.scale=(7e6-s)/(t.height-s);for(let a of this.viewports)a.domTop=o+(a.top-i)*this.scale,o=a.domBottom=a.domTop+(a.bottom-a.top),i=a.bottom}toDOM(e){for(let t=0,n=0,s=0;;t++){let i=t<this.viewports.length?this.viewports[t]:null;if(!i||e<i.top)return s+(e-n)*this.scale;if(e<=i.bottom)return i.domTop+(e-i.top);n=i.bottom,s=i.domBottom}}fromDOM(e){for(let t=0,n=0,s=0;;t++){let i=t<this.viewports.length?this.viewports[t]:null;if(!i||e<i.domTop)return n+(e-s)/this.scale;if(e<=i.domBottom)return i.top+(e-i.domTop);n=i.bottom,s=i.domBottom}}eq(e){return e instanceof Ku?this.scale==e.scale&&this.viewports.length==e.viewports.length&&this.viewports.every((t,n)=>t.from==e.viewports[n].from&&t.to==e.viewports[n].to):!1}}function Bi(r,e){if(e.scale==1)return r;let t=e.toDOM(r.top),n=e.toDOM(r.bottom);return new Ar(r.from,r.length,t,n-t,Array.isArray(r._content)?r._content.map(s=>Bi(s,e)):r._content)}const Yo=Se.define({combine:r=>r.join(" ")}),Kc=Se.define({combine:r=>r.indexOf(!0)>-1}),Jc=Zn.newName(),dg=Zn.newName(),fg=Zn.newName(),mg={"&light":"."+dg,"&dark":"."+fg};function eu(r,e,t){return new Zn(e,{finish(n){return/&/.test(n)?n.replace(/&\w*/,s=>{if(s=="&")return r;if(!t||!t[s])throw new RangeError(`Unsupported selector: ${s}`);return t[s]}):r+" "+n}})}const wC=eu("."+Jc,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0,overflowAnchor:"none"},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#ddd"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",zIndex:200},".cm-gutters-before":{insetInlineStart:0},".cm-gutters-after":{insetInlineEnd:0},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",border:"0px solid #ddd","&.cm-gutters-before":{borderRightWidth:"1px"},"&.cm-gutters-after":{borderLeftWidth:"1px"}},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0,zIndex:300},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-dialog":{padding:"2px 19px 4px 6px",position:"relative","& label":{fontSize:"80%"}},".cm-dialog-close":{position:"absolute",top:"3px",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",fontSize:"14px",padding:"0"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top",userSelect:"none"},".cm-highlightSpace":{backgroundImage:"radial-gradient(circle at 50% 55%, #aaa 20%, transparent 5%)",backgroundPosition:"center"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},mg),SC={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Xl=$e.ie&&$e.ie_version<=11;class $C{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new t$,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let n of t)this.queue.push(n);($e.ie&&$e.ie_version<=11||$e.ios&&e.composing)&&t.some(n=>n.type=="childList"&&n.removedNodes.length||n.type=="characterData"&&n.oldValue.length>n.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&$e.android&&e.constructor.EDIT_CONTEXT!==!1&&!($e.chrome&&$e.chrome_version<126)&&(this.editContext=new QC(e),e.state.facet(hn)&&(e.contentDOM.editContext=this.editContext.editContext)),Xl&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(e.scrollDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(t=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.editContext&&this.view.requestMeasure(this.editContext.measureReq),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(e){(e.type=="change"||!e.type)&&!e.matches||(this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,n)=>t!=e[n]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,s=this.selectionRange;if(n.state.facet(hn)?n.root.activeElement!=this.dom:!Xi(this.dom,s))return;let i=s.anchorNode&&n.docView.tile.nearest(s.anchorNode);if(i&&i.isWidget()&&i.widget.ignoreEvent(e)){t||(this.selectionChanged=!1);return}($e.ie&&$e.ie_version<=11||$e.android&&$e.chrome)&&!n.state.selection.main.empty&&s.focusNode&&Ii(s.focusNode,s.focusOffset,s.anchorNode,s.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=Ui(e.root);if(!t)return!1;let n=$e.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&CC(this.view,t)||t;if(!n||this.selectionRange.eq(n))return!1;let s=Xi(this.dom,n);return s&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime<Date.now()-300&&n$(this.dom,n)?(this.view.inputState.lastFocusTime=0,e.docView.updateSelection(),!1):(this.selectionRange.setRange(n),s&&(this.selectionChanged=!0),!0)}setSelectionRange(e,t){this.selectionRange.set(e.node,e.offset,t.node,t.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let e=0,t=null;for(let n=this.dom;n;)if(n.nodeType==1)!t&&e<this.scrollTargets.length&&this.scrollTargets[e]==n?e++:t||(t=this.scrollTargets.slice(0,e)),t&&t.push(n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;if(e<this.scrollTargets.length&&!t&&(t=this.scrollTargets.slice(0,e)),t){for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);for(let n of this.scrollTargets=t)n.addEventListener("scroll",this.onScroll)}}ignore(e){if(!this.active)return e();try{return this.stop(),e()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,SC),Xl&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),Xl&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(e,t){var n;if(!this.delayedAndroidKey){let s=()=>{let i=this.delayedAndroidKey;i&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=i.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&i.force&&Rs(this.dom,i.key,i.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(s)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange<Date.now()-50||!!(!((n=this.delayedAndroidKey)===null||n===void 0)&&n.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,n=-1,s=!1;for(let i of e){let o=this.readMutation(i);o&&(o.typeOver&&(s=!0),t==-1?{from:t,to:n}=o:(t=Math.min(o.from,t),n=Math.max(o.to,n)))}return{from:t,to:n,typeOver:s}}readChange(){let{from:e,to:t,typeOver:n}=this.processRecords(),s=this.selectionChanged&&Xi(this.dom,this.selectionRange);if(e<0&&!s)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let i=new W$(this.view,e,t,n);return this.view.docView.domChanged={newSel:i.newSel?i.newSel.main:null},i}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let n=this.view.state,s=tg(this.view,t);return this.view.state==n&&(t.domChanged||t.newSel&&!Ea(this.view.state.selection,t.newSel.main))&&this.view.update([]),s}readMutation(e){let t=this.view.docView.tile.nearest(e.target);if(!t||t.isWidget())return null;if(t.markDirty(e.type=="attributes"),e.type=="childList"){let n=Dd(t,e.previousSibling||e.target.previousSibling,-1),s=Dd(t,e.nextSibling||e.target.nextSibling,1);return{from:n?t.posAfter(n):t.posAtStart,to:s?t.posBefore(s):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener?this.printQuery.addEventListener("change",this.onPrint):this.printQuery.addListener(this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener?this.printQuery.removeEventListener("change",this.onPrint):this.printQuery.removeListener(this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}update(e){this.editContext&&(this.editContext.update(e),e.startState.facet(hn)!=e.state.facet(hn)&&(e.view.contentDOM.editContext=e.state.facet(hn)?this.editContext.editContext:null))}destroy(){var e,t,n;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(n=this.resizeScroll)===null||n===void 0||n.disconnect();for(let s of this.scrollTargets)s.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey),this.editContext&&(this.view.contentDOM.editContext=null,this.editContext.destroy())}}function Dd(r,e,t){for(;e;){let n=bt.get(e);if(n&&n.parent==r)return n;let s=e.parentNode;e=s!=r.dom?s:t>0?e.nextSibling:e.previousSibling}return null}function Zd(r,e){let t=e.startContainer,n=e.startOffset,s=e.endContainer,i=e.endOffset,o=r.docView.domAtPos(r.state.selection.main.anchor,1);return Ii(o.node,o.offset,s,i)&&([t,n,s,i]=[s,i,t,n]),{anchorNode:t,anchorOffset:n,focusNode:s,focusOffset:i}}function CC(r,e){if(e.getComposedRanges){let s=e.getComposedRanges(r.root)[0];if(s)return Zd(r,s)}let t=null;function n(s){s.preventDefault(),s.stopImmediatePropagation(),t=s.getTargetRanges()[0]}return r.contentDOM.addEventListener("beforeinput",n,!0),r.dom.ownerDocument.execCommand("indent"),r.contentDOM.removeEventListener("beforeinput",n,!0),t?Zd(r,t):null}class QC{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let t=this.editContext=new window.EditContext({text:e.state.doc.sliceString(this.from,this.to),selectionStart:this.toContextPos(Math.max(this.from,Math.min(this.to,e.state.selection.main.anchor))),selectionEnd:this.toContextPos(e.state.selection.main.head)});this.handlers.textupdate=n=>{let s=e.state.selection.main,{anchor:i,head:o}=s,a=this.toEditorPos(n.updateRangeStart),l=this.toEditorPos(n.updateRangeEnd);e.inputState.composing>=0&&!this.composing&&(this.composing={contextBase:n.updateRangeStart,editorBase:a,drifted:!1});let c=l-a>n.text.length;a==this.from&&i<this.from?a=i:l==this.to&&i>this.to&&(l=i);let u=rg(e.state.sliceDoc(a,l),n.text,(c?s.from:s.to)-a,c?"end":null);if(!u){let f=J.single(this.toEditorPos(n.selectionStart),this.toEditorPos(n.selectionEnd));Ea(f,s)||e.dispatch({selection:f,userEvent:"select"});return}let h={from:u.from+a,to:u.toA+a,insert:et.of(n.text.slice(u.from,u.toB).split(`
|
|
20
|
+
`))};if(($e.mac||$e.android)&&h.from==o-1&&/^\. ?$/.test(n.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(h={from:a,to:l,insert:et.of([n.text.replace("."," ")])}),this.pendingContextChange=h,!e.state.readOnly){let f=this.to-this.from+(h.to-h.from+h.insert.length);Gu(e,h,J.single(this.toEditorPos(n.selectionStart,f),this.toEditorPos(n.selectionEnd,f)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),h.from<h.to&&!h.insert.length&&e.inputState.composing>=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(t.text.slice(Math.max(0,n.updateRangeStart-1),Math.min(t.text.length,n.updateRangeStart+1)))&&this.handlers.compositionend(n)},this.handlers.characterboundsupdate=n=>{let s=[],i=null;for(let o=this.toEditorPos(n.rangeStart),a=this.toEditorPos(n.rangeEnd);o<a;o++){let l=e.coordsForChar(o);i=l&&new DOMRect(l.left,l.top,l.right-l.left,l.bottom-l.top)||i||new DOMRect,s.push(i)}t.updateCharacterBounds(n.rangeStart,s)},this.handlers.textformatupdate=n=>{let s=[];for(let i of n.getTextFormats()){let o=i.underlineStyle,a=i.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(a)){let l=this.toEditorPos(i.rangeStart),c=this.toEditorPos(i.rangeEnd);if(l<c){let u=`text-decoration: underline ${/^[a-z]/.test(o)?o+" ":o=="Dashed"?"dashed ":o=="Squiggle"?"wavy ":""}${/thin/i.test(a)?1:2}px`;s.push(Ee.mark({attributes:{style:u}}).range(l,c))}}}e.dispatch({effects:jp.of(Ee.set(s))})},this.handlers.compositionstart=()=>{e.inputState.composing<0&&(e.inputState.composing=0,e.inputState.compositionFirstChange=!0)},this.handlers.compositionend=()=>{if(e.inputState.composing=-1,e.inputState.compositionFirstChange=null,this.composing){let{drifted:n}=this.composing;this.composing=null,n&&this.reset(e.state)}};for(let n in this.handlers)t.addEventListener(n,this.handlers[n]);this.measureReq={read:n=>{this.editContext.updateControlBounds(n.contentDOM.getBoundingClientRect());let s=Ui(n.root);s&&s.rangeCount&&this.editContext.updateSelectionBounds(s.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let t=0,n=!1,s=this.pendingContextChange;return e.changes.iterChanges((i,o,a,l,c)=>{if(n)return;let u=c.length-(o-i);if(s&&o>=s.to)if(s.from==i&&s.to==o&&s.insert.eq(c)){s=this.pendingContextChange=null,t+=u,this.to+=u;return}else s=null,this.revertPending(e.state);if(i+=t,o+=t,o<=this.from)this.from+=u,this.to+=u;else if(i<this.to){if(i<this.from||o>this.to||this.to-this.from+c.length>3e4){n=!0;return}this.editContext.updateText(this.toContextPos(i),this.toContextPos(o),c.toString()),this.to+=u}t+=u}),s&&!n&&this.revertPending(e.state),!n}update(e){let t=this.pendingContextChange,n=e.startState.selection.main;this.composing&&(this.composing.drifted||!e.changes.touchesRange(n.from,n.to)&&e.transactions.some(s=>!s.isUserEvent("input.type")&&s.changes.touchesRange(this.from,this.to)))?(this.composing.drifted=!0,this.composing.editorBase=e.changes.mapPos(this.composing.editorBase)):!this.applyEdits(e)||!this.rangeIsValid(e.state)?(this.pendingContextChange=null,this.reset(e.state)):(e.docChanged||e.selectionSet||t)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:t}=e.selection.main;this.from=Math.max(0,t-1e4),this.to=Math.min(e.doc.length,t+1e4)}reset(e){this.resetRange(e),this.editContext.updateText(0,this.editContext.text.length,e.doc.sliceString(this.from,this.to)),this.setSelection(e)}revertPending(e){let t=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(t.from),this.toContextPos(t.from+t.insert.length),e.doc.sliceString(t.from,t.to))}setSelection(e){let{main:t}=e.selection,n=this.toContextPos(Math.max(this.from,Math.min(this.to,t.anchor))),s=this.toContextPos(t.head);(this.editContext.selectionStart!=n||this.editContext.selectionEnd!=s)&&this.editContext.updateSelection(n,s)}rangeIsValid(e){let{head:t}=e.selection.main;return!(this.from>0&&t-this.from<500||this.to<e.doc.length&&this.to-t<500||this.to-this.from>1e4*3)}toEditorPos(e,t=this.to-this.from){e=Math.min(e,t);let n=this.composing;return n&&n.drifted?n.editorBase+(e-n.contextBase):e+this.from}toContextPos(e){let t=this.composing;return t&&t.drifted?t.contextBase+(e-t.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class ke{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return!!this.inputState&&this.inputState.composing>0}get compositionStarted(){return!!this.inputState&&this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(e={}){var t;this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:n}=e;this.dispatchTransactions=e.dispatchTransactions||n&&(s=>s.forEach(i=>n(i,this)))||(s=>this.update(s)),this.dispatch=this.dispatch.bind(this),this._root=e.root||r$(e.parent)||document,this.viewState=new _d(e.state||Ke.create(e)),e.scrollTo&&e.scrollTo.is(Vo)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Ps).map(s=>new Rl(s));for(let s of this.plugins)s.update(this);this.observer=new $C(this),this.inputState=new F$(this),this.inputState.ensureHandlers(this.plugins),this.docView=new bd(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((t=document.fonts)===null||t===void 0)&&t.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let t=e.length==1&&e[0]instanceof vt?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,n=!1,s,i=this.state;for(let f of e){if(f.startState!=i)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");i=f.state}if(this.destroyed){this.viewState.state=i;return}let o=this.hasFocus,a=0,l=null;e.some(f=>f.annotation(lg))?(this.inputState.notifiedFocused=o,a=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,l=cg(i,o),l||(a=1));let c=this.observer.delayedAndroidKey,u=null;if(c?(this.observer.clearDelayedAndroidKey(),u=this.observer.readChange(),(u&&!this.state.doc.eq(i.doc)||!this.state.selection.eq(i.selection))&&(u=null)):this.observer.clear(),i.facet(Ke.phrases)!=this.state.facet(Ke.phrases))return this.setState(i);s=Ba.create(this,i,e),s.flags|=a;let h=this.viewState.scrollTarget;try{this.updateState=2;for(let f of e){if(h&&(h=h.map(f.changes)),f.scrollIntoView){let{main:m}=f.state.selection;h=new Bs(m.empty?m:J.cursor(m.head,m.head>m.anchor?-1:1))}for(let m of f.effects)m.is(Vo)&&(h=m.value.clip(this.state))}this.viewState.update(s,h),this.bidiCache=Xa.update(this.bidiCache,s.changes),s.empty||(this.updatePlugins(s),this.inputState.update(s)),t=this.docView.update(s),this.state.facet(_i)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(f=>f.isUserEvent("select.pointer")))}finally{this.updateState=0}if(s.startState.facet(Yo)!=s.state.facet(Yo)&&(this.viewState.mustMeasureContent=!0),(t||n||h||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),t&&this.docViewUpdate(),!s.empty)for(let f of this.state.facet(Yc))try{f(s)}catch(m){er(this.state,m,"update listener")}(l||u)&&Promise.resolve().then(()=>{l&&this.state==l.startState&&this.dispatch(l),u&&!tg(this,u)&&c.force&&Rs(this.contentDOM,c.key,c.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new _d(e),this.plugins=e.facet(Ps).map(n=>new Rl(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new bd(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Ps),n=e.state.facet(Ps);if(t!=n){let s=[];for(let i of n){let o=t.indexOf(i);if(o<0)s.push(new Rl(i));else{let a=this.plugins[o];a.mustUpdate=e,s.push(a)}}for(let i of this.plugins)i.mustUpdate!=e&&i.destroy(this);this.plugins=s,this.pluginMap.clear()}else for(let s of this.plugins)s.mustUpdate=e;for(let s=0;s<this.plugins.length;s++)this.plugins[s].update(this);t!=n&&this.inputState.ensureHandlers(this.plugins)}docViewUpdate(){for(let e of this.plugins){let t=e.value;if(t&&t.docViewUpdate)try{t.docViewUpdate(this)}catch(n){er(this.state,n,"doc view update listener")}}}measure(e=!0){if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,n=this.scrollDOM,s=n.scrollTop*this.scaleY,{scrollAnchorPos:i,scrollAnchorHeight:o}=this.viewState;Math.abs(s-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(o<0)if(Tp(n))i=-1,o=this.viewState.heightMap.height;else{let m=this.viewState.scrollAnchorAt(s);i=m.from,o=m.top}this.updateState=1;let l=this.viewState.measure(this);if(!l&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(a>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let c=[];l&4||([this.measureRequests,c]=[c,this.measureRequests]);let u=c.map(m=>{try{return m.read(this)}catch(g){return er(this.state,g),Ed}}),h=Ba.create(this,this.state,[]),f=!1;h.flags|=l,t?t.flags|=l:t=h,this.updateState=2,h.empty||(this.updatePlugins(h),this.inputState.update(h),this.updateAttrs(),f=this.docView.update(h),f&&this.docViewUpdate());for(let m=0;m<c.length;m++)if(u[m]!=Ed)try{let g=c[m];g.write&&g.write(u[m],this)}catch(g){er(this.state,g)}if(f&&this.docView.updateSelection(!0),!h.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null,o=-1;continue}else{let g=(i<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(i).top)-o;if(g>1||g<-1){s=s+g,n.scrollTop=s/this.scaleY,o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let a of this.state.facet(Yc))a(t)}get themeClasses(){return Jc+" "+(this.state.facet(Kc)?fg:dg)+" "+this.state.facet(Yo)}updateAttrs(){let e=Ld(this,Yp,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(hn)?"true":"false",class:"cm-content",style:`${$e.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),Ld(this,Yu,t);let n=this.observer.ignore(()=>{let s=fd(this.contentDOM,this.contentAttrs,t),i=fd(this.dom,this.editorAttrs,e);return s||i});return this.editorAttrs=e,this.contentAttrs=t,n}showAnnouncements(e){let t=!0;for(let n of e)for(let s of n.effects)if(s.is(ke.announce)){t&&(this.announceDOM.textContent=""),t=!1;let i=this.announceDOM.appendChild(document.createElement("div"));i.textContent=s.value}}mountStyles(){this.styleModules=this.state.facet(_i);let e=this.state.facet(ke.cspNonce);Zn.mount(this.root,this.styleModules.concat(wC).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;t<this.measureRequests.length;t++)if(this.measureRequests[t].key===e.key){this.measureRequests[t]=e;return}}this.measureRequests.push(e)}}plugin(e){let t=this.pluginMap.get(e);return(t===void 0||t&&t.plugin!=e)&&this.pluginMap.set(e,t=this.plugins.find(n=>n.plugin==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,n){return El(this,e,xd(this,e,t,n))}moveByGroup(e,t){return El(this,e,xd(this,e,t,n=>L$(this,e.head,n)))}visualLineSide(e,t){let n=this.bidiSpans(e),s=this.textDirectionAt(e.from),i=n[t?n.length-1:0];return J.cursor(i.side(t,s)+e.from,i.forward(!t,s)?1:-1)}moveToLineBoundary(e,t,n=!0){return E$(this,e,t,n)}moveVertically(e,t,n){return El(this,e,X$(this,e,t,n))}domAtPos(e,t=1){return this.docView.domAtPos(e,t)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){this.readMeasured();let n=Gc(this,e,t);return n&&n.pos}posAndSideAtCoords(e,t=!0){return this.readMeasured(),Gc(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let n=this.docView.coordsAt(e,t);if(!n||n.left==n.right)return n;let s=this.state.doc.lineAt(e),i=this.bidiSpans(s),o=i[Ur.find(i,e-s.from,-1,t)];return Ra(n,o.dir==lt.LTR==t>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Np)||e<this.viewport.from||e>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>PC)return Dp(e.length);let t=this.textDirectionAt(e.from),n;for(let i of this.bidiCache)if(i.from==e.from&&i.dir==t&&(i.fresh||Bp(i.isolates,n=gd(this,e))))return i.order;n||(n=gd(this,e));let s=u$(e.text,t,n);return this.bidiCache.push(new Xa(e.from,e.to,t,n,!0,s)),s}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||$e.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{Pp(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){this.root.activeElement==this.contentDOM&&this.contentDOM.blur();for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return Vo.of(new Bs(typeof e=="number"?J.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,n=this.viewState.scrollAnchorAt(e);return Vo.of(new Bs(J.cursor(n.from),"start","start",n.top-e,t,!0))}setTabFocusMode(e){e==null?this.inputState.tabFocusMode=this.inputState.tabFocusMode<0?0:-1:typeof e=="boolean"?this.inputState.tabFocusMode=e?0:-1:this.inputState.tabFocusMode!=0&&(this.inputState.tabFocusMode=Date.now()+e)}static domEventHandlers(e){return Ot.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return Ot.define(()=>({}),{eventObservers:e})}static theme(e,t){let n=Zn.newName(),s=[Yo.of(n),_i.of(eu(`.${n}`,e))];return t&&t.dark&&s.push(Kc.of(!0)),s}static baseTheme(e){return bn.lowest(_i.of(eu("."+Jc,e,mg)))}static findFromDOM(e){var t;let n=e.querySelector(".cm-content"),s=n&&bt.get(n)||bt.get(e);return((t=s?.root)===null||t===void 0?void 0:t.view)||null}}ke.styleModule=_i;ke.inputHandler=Vp;ke.clipboardInputFilter=qu;ke.clipboardOutputFilter=ju;ke.scrollHandler=qp;ke.focusChangeEffect=zp;ke.perLineTextDirection=Np;ke.exceptionSink=Ip;ke.updateListener=Yc;ke.editable=hn;ke.mouseSelectionStyle=Xp;ke.dragMovesSelection=Lp;ke.clickAddsSelectionRange=Ep;ke.decorations=pl;ke.blockWrappers=Fp;ke.outerDecorations=Fu;ke.atomicRanges=yo;ke.bidiIsolatedRanges=Up;ke.scrollMargins=Gp;ke.darkTheme=Kc;ke.cspNonce=Se.define({combine:r=>r.length?r[0]:""});ke.contentAttributes=Yu;ke.editorAttributes=Yp;ke.lineWrapping=ke.contentAttributes.of({class:"cm-lineWrapping"});ke.announce=ze.define();const PC=4096,Ed={};class Xa{constructor(e,t,n,s,i,o){this.from=e,this.to=t,this.dir=n,this.isolates=s,this.fresh=i,this.order=o}static update(e,t){if(t.empty&&!e.some(i=>i.fresh))return e;let n=[],s=e.length?e[e.length-1].dir:lt.LTR;for(let i=Math.max(0,e.length-10);i<e.length;i++){let o=e[i];o.dir==s&&!t.touchesRange(o.from,o.to)&&n.push(new Xa(t.mapPos(o.from,1),t.mapPos(o.to,-1),o.dir,o.isolates,!1,o.order))}return n}}function Ld(r,e,t){for(let n=r.state.facet(e),s=n.length-1;s>=0;s--){let i=n[s],o=typeof i=="function"?i(r):i;o&&zu(o,t)}return t}const TC=$e.mac?"mac":$e.windows?"win":$e.linux?"linux":"key";function MC(r,e){const t=r.split(/-(?!$)/);let n=t[t.length-1];n=="Space"&&(n=" ");let s,i,o,a;for(let l=0;l<t.length-1;++l){const c=t[l];if(/^(cmd|meta|m)$/i.test(c))a=!0;else if(/^a(lt)?$/i.test(c))s=!0;else if(/^(c|ctrl|control)$/i.test(c))i=!0;else if(/^s(hift)?$/i.test(c))o=!0;else if(/^mod$/i.test(c))e=="mac"?a=!0:i=!0;else throw new Error("Unrecognized modifier name: "+c)}return s&&(n="Alt-"+n),i&&(n="Ctrl-"+n),a&&(n="Meta-"+n),o&&(n="Shift-"+n),n}function Fo(r,e,t){return e.altKey&&(r="Alt-"+r),e.ctrlKey&&(r="Ctrl-"+r),e.metaKey&&(r="Meta-"+r),t!==!1&&e.shiftKey&&(r="Shift-"+r),r}const AC=bn.default(ke.domEventHandlers({keydown(r,e){return gg(pg(e.state),r,e,"editor")}})),ko=Se.define({enables:AC}),Xd=new WeakMap;function pg(r){let e=r.facet(ko),t=Xd.get(e);return t||Xd.set(e,t=BC(e.reduce((n,s)=>n.concat(s),[]))),t}function _C(r,e,t){return gg(pg(r.state),e,r,t)}let An=null;const RC=4e3;function BC(r,e=TC){let t=Object.create(null),n=Object.create(null),s=(o,a)=>{let l=n[o];if(l==null)n[o]=a;else if(l!=a)throw new Error("Key binding "+o+" is used both as a regular binding and as a multi-stroke prefix")},i=(o,a,l,c,u)=>{var h,f;let m=t[o]||(t[o]=Object.create(null)),g=a.split(/ (?!$)/).map(x=>MC(x,e));for(let x=1;x<g.length;x++){let w=g.slice(0,x).join(" ");s(w,!0),m[w]||(m[w]={preventDefault:!0,stopPropagation:!1,run:[S=>{let C=An={view:S,prefix:w,scope:o};return setTimeout(()=>{An==C&&(An=null)},RC),!0}]})}let O=g.join(" ");s(O,!1);let b=m[O]||(m[O]={preventDefault:!1,stopPropagation:!1,run:((f=(h=m._any)===null||h===void 0?void 0:h.run)===null||f===void 0?void 0:f.slice())||[]});l&&b.run.push(l),c&&(b.preventDefault=!0),u&&(b.stopPropagation=!0)};for(let o of r){let a=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let c of a){let u=t[c]||(t[c]=Object.create(null));u._any||(u._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:h}=o;for(let f in u)u[f].run.push(m=>h(m,tu))}let l=o[e]||o.key;if(l)for(let c of a)i(c,l,o.run,o.preventDefault,o.stopPropagation),o.shift&&i(c,"Shift-"+l,o.shift,o.preventDefault,o.stopPropagation)}return t}let tu=null;function gg(r,e,t,n){tu=e;let s=Y2(e),i=Gt(s,0),o=Yr(i)==s.length&&s!=" ",a="",l=!1,c=!1,u=!1;An&&An.view==t&&An.scope==n&&(a=An.prefix+" ",sg.indexOf(e.keyCode)<0&&(c=!0,An=null));let h=new Set,f=b=>{if(b){for(let x of b.run)if(!h.has(x)&&(h.add(x),x(t)))return b.stopPropagation&&(u=!0),!0;b.preventDefault&&(b.stopPropagation&&(u=!0),c=!0)}return!1},m=r[n],g,O;return m&&(f(m[a+Fo(s,e,!o)])?l=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!($e.windows&&e.ctrlKey&&e.altKey)&&!($e.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(g=En[e.keyCode])&&g!=s?(f(m[a+Fo(g,e,!0)])||e.shiftKey&&(O=Yi[e.keyCode])!=s&&O!=g&&f(m[a+Fo(O,e,!1)]))&&(l=!0):o&&e.shiftKey&&f(m[a+Fo(s,e,!0)])&&(l=!0),!l&&f(m._any)&&(l=!0)),c&&(l=!0),l&&u&&e.stopPropagation(),tu=null,l}class wo{constructor(e,t,n,s,i){this.className=e,this.left=t,this.top=n,this.width=s,this.height=i}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,n){if(n.empty){let s=e.coordsAtPos(n.head,n.assoc||1);if(!s)return[];let i=Og(e);return[new wo(t,s.left-i.left,s.top-i.top,null,s.bottom-s.top)]}else return DC(e,t,n)}}function Og(r){let e=r.scrollDOM.getBoundingClientRect();return{left:(r.textDirection==lt.LTR?e.left:e.right-r.scrollDOM.clientWidth*r.scaleX)-r.scrollDOM.scrollLeft*r.scaleX,top:e.top-r.scrollDOM.scrollTop*r.scaleY}}function Id(r,e,t,n){let s=r.coordsAtPos(e,t*2);if(!s)return n;let i=r.dom.getBoundingClientRect(),o=(s.top+s.bottom)/2,a=r.posAtCoords({x:i.left+1,y:o}),l=r.posAtCoords({x:i.right-1,y:o});return a==null||l==null?n:{from:Math.max(n.from,Math.min(a,l)),to:Math.min(n.to,Math.max(a,l))}}function DC(r,e,t){if(t.to<=r.viewport.from||t.from>=r.viewport.to)return[];let n=Math.max(t.from,r.viewport.from),s=Math.min(t.to,r.viewport.to),i=r.textDirection==lt.LTR,o=r.contentDOM,a=o.getBoundingClientRect(),l=Og(r),c=o.querySelector(".cm-line"),u=c&&window.getComputedStyle(c),h=a.left+(u?parseInt(u.paddingLeft)+Math.min(0,parseInt(u.textIndent)):0),f=a.right-(u?parseInt(u.paddingRight):0),m=Uc(r,n,1),g=Uc(r,s,-1),O=m.type==Bt.Text?m:null,b=g.type==Bt.Text?g:null;if(O&&(r.lineWrapping||m.widgetLineBreaks)&&(O=Id(r,n,1,O)),b&&(r.lineWrapping||g.widgetLineBreaks)&&(b=Id(r,s,-1,b)),O&&b&&O.from==b.from&&O.to==b.to)return w(S(t.from,t.to,O));{let _=O?S(t.from,null,O):C(m,!1),I=b?S(null,t.to,b):C(g,!0),V=[];return(O||m).to<(b||g).from-(O&&b?1:0)||m.widgetLineBreaks>1&&_.bottom+r.defaultLineHeight/2<I.top?V.push(x(h,_.bottom,f,I.top)):_.bottom<I.top&&r.elementAtHeight((_.bottom+I.top)/2).type==Bt.Text&&(_.bottom=I.top=(_.bottom+I.top)/2),w(_).concat(V).concat(w(I))}function x(_,I,V,re){return new wo(e,_-l.left,I-l.top,Math.max(0,V-_),re-I)}function w({top:_,bottom:I,horizontal:V}){let re=[];for(let oe=0;oe<V.length;oe+=2)re.push(x(V[oe],_,V[oe+1],I));return re}function S(_,I,V){let re=1e9,oe=-1e9,Oe=[];function Y(j,F,z,X,N){let be=r.coordsAtPos(j,j==V.to?-2:2),G=r.coordsAtPos(z,z==V.from?2:-2);!be||!G||(re=Math.min(be.top,G.top,re),oe=Math.max(be.bottom,G.bottom,oe),N==lt.LTR?Oe.push(i&&F?h:be.left,i&&X?f:G.right):Oe.push(!i&&X?h:G.left,!i&&F?f:be.right))}let L=_??V.from,D=I??V.to;for(let j of r.visibleRanges)if(j.to>L&&j.from<D)for(let F=Math.max(j.from,L),z=Math.min(j.to,D);;){let X=r.state.doc.lineAt(F);for(let N of r.bidiSpans(X)){let be=N.from+X.from,G=N.to+X.from;if(be>=z)break;G>F&&Y(Math.max(be,F),_==null&&be<=L,Math.min(G,z),I==null&&G>=D,N.dir)}if(F=X.to+1,F>=z)break}return Oe.length==0&&Y(L,_==null,D,I==null,r.textDirection),{top:re,bottom:oe,horizontal:Oe}}function C(_,I){let V=a.top+(I?_.top:_.bottom);return{top:V,bottom:V,horizontal:[]}}}function ZC(r,e){return r.constructor==e.constructor&&r.eq(e)}class EC{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(Oa)!=e.state.facet(Oa)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){this.layer.updateOnDocViewUpdate!==!1&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,n=e.facet(Oa);for(;t<n.length&&n[t]!=this.layer;)t++;this.dom.style.zIndex=String((this.layer.above?150:-1)-t)}measure(){return this.layer.markers(this.view)}scale(){let{scaleX:e,scaleY:t}=this.view;(e!=this.scaleX||t!=this.scaleY)&&(this.scaleX=e,this.scaleY=t,this.dom.style.transform=`scale(${1/e}, ${1/t})`)}draw(e){if(e.length!=this.drawn.length||e.some((t,n)=>!ZC(t,this.drawn[n]))){let t=this.dom.firstChild,n=0;for(let s of e)s.update&&t&&s.constructor&&this.drawn[n].constructor&&s.update(t,this.drawn[n])?(t=t.nextSibling,n++):this.dom.insertBefore(s.draw(),t);for(;t;){let s=t.nextSibling;t.remove(),t=s}this.drawn=e,$e.safari&&$e.safari_version>=26&&(this.dom.style.display=this.dom.firstChild?"":"none")}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const Oa=Se.define();function vg(r){return[Ot.define(e=>new EC(e,r)),Oa.of(r)]}const Hi=Se.define({combine(r){return tn(r,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function LC(r={}){return[Hi.of(r),XC,IC,VC,Wp.of(!0)]}function bg(r){return r.startState.facet(Hi)!=r.state.facet(Hi)}const XC=vg({above:!0,markers(r){let{state:e}=r,t=e.facet(Hi),n=[];for(let s of e.selection.ranges){let i=s==e.selection.main;if(s.empty||t.drawRangeCursor){let o=i?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",a=s.empty?s:J.cursor(s.head,s.head>s.anchor?-1:1);for(let l of wo.forRange(r,o,a))n.push(l)}}return n},update(r,e){r.transactions.some(n=>n.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=bg(r);return t&&Vd(r.state,e),r.docChanged||r.selectionSet||t},mount(r,e){Vd(e.state,r)},class:"cm-cursorLayer"});function Vd(r,e){e.style.animationDuration=r.facet(Hi).cursorBlinkRate+"ms"}const IC=vg({above:!1,markers(r){return r.state.selection.ranges.map(e=>e.empty?[]:wo.forRange(r,"cm-selectionBackground",e)).reduce((e,t)=>e.concat(t))},update(r,e){return r.docChanged||r.selectionSet||r.viewportChanged||bg(r)},class:"cm-selectionLayer"}),VC=bn.highest(ke.theme({".cm-line":{"& ::selection, &::selection":{backgroundColor:"transparent !important"},caretColor:"transparent !important"},".cm-content":{caretColor:"transparent !important","& :focus":{caretColor:"initial !important","&::selection, & ::selection":{backgroundColor:"Highlight !important"}}}})),xg=ze.define({map(r,e){return r==null?null:e.mapPos(r)}}),Di=Pt.define({create(){return null},update(r,e){return r!=null&&(r=e.changes.mapPos(r)),e.effects.reduce((t,n)=>n.is(xg)?n.value:t,r)}}),zC=Ot.fromClass(class{constructor(r){this.view=r,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(r){var e;let t=r.state.field(Di);t==null?this.cursor!=null&&((e=this.cursor)===null||e===void 0||e.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(r.startState.field(Di)!=t||r.docChanged||r.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:r}=this,e=r.state.field(Di),t=e!=null&&r.coordsAtPos(e);if(!t)return null;let n=r.scrollDOM.getBoundingClientRect();return{left:t.left-n.left+r.scrollDOM.scrollLeft*r.scaleX,top:t.top-n.top+r.scrollDOM.scrollTop*r.scaleY,height:t.bottom-t.top}}drawCursor(r){if(this.cursor){let{scaleX:e,scaleY:t}=this.view;r?(this.cursor.style.left=r.left/e+"px",this.cursor.style.top=r.top/t+"px",this.cursor.style.height=r.height/t+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(r){this.view.state.field(Di)!=r&&this.view.dispatch({effects:xg.of(r)})}},{eventObservers:{dragover(r){this.setDropPos(this.view.posAtCoords({x:r.clientX,y:r.clientY}))},dragleave(r){(r.target==this.view.contentDOM||!this.view.contentDOM.contains(r.relatedTarget))&&this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function NC(){return[Di,zC]}function zd(r,e,t,n,s){e.lastIndex=0;for(let i=r.iterRange(t,n),o=t,a;!i.next().done;o+=i.value.length)if(!i.lineBreak)for(;a=e.exec(i.value);)s(o+a.index,a)}function WC(r,e){let t=r.visibleRanges;if(t.length==1&&t[0].from==r.viewport.from&&t[0].to==r.viewport.to)return t;let n=[];for(let{from:s,to:i}of t)s=Math.max(r.state.doc.lineAt(s).from,s-e),i=Math.min(r.state.doc.lineAt(i).to,i+e),n.length&&n[n.length-1].to>=s?n[n.length-1].to=i:n.push({from:s,to:i});return n}class qC{constructor(e){const{regexp:t,decoration:n,decorate:s,boundary:i,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,s)this.addMatch=(a,l,c,u)=>s(u,c,c+a[0].length,a,l);else if(typeof n=="function")this.addMatch=(a,l,c,u)=>{let h=n(a,l,c);h&&u(c,c+a[0].length,h)};else if(n)this.addMatch=(a,l,c,u)=>u(c,c+a[0].length,n);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=i,this.maxLength=o}createDeco(e){let t=new gn,n=t.add.bind(t);for(let{from:s,to:i}of WC(e,this.maxLength))zd(e.state.doc,this.regexp,s,i,(o,a)=>this.addMatch(a,e,o,n));return t.finish()}updateDeco(e,t){let n=1e9,s=-1;return e.docChanged&&e.changes.iterChanges((i,o,a,l)=>{l>=e.view.viewport.from&&a<=e.view.viewport.to&&(n=Math.min(a,n),s=Math.max(l,s))}),e.viewportMoved||s-n>1e3?this.createDeco(e.view):s>-1?this.updateRange(e.view,t.map(e.changes),n,s):t}updateRange(e,t,n,s){for(let i of e.visibleRanges){let o=Math.max(i.from,n),a=Math.min(i.to,s);if(a>=o){let l=e.state.doc.lineAt(o),c=l.to<a?e.state.doc.lineAt(a):l,u=Math.max(i.from,l.from),h=Math.min(i.to,c.to);if(this.boundary){for(;o>l.from;o--)if(this.boundary.test(l.text[o-1-l.from])){u=o;break}for(;a<c.to;a++)if(this.boundary.test(c.text[a-c.from])){h=a;break}}let f=[],m,g=(O,b,x)=>f.push(x.range(O,b));if(l==c)for(this.regexp.lastIndex=u-l.from;(m=this.regexp.exec(l.text))&&m.index<h-l.from;)this.addMatch(m,e,m.index+l.from,g);else zd(e.state.doc,this.regexp,u,h,(O,b)=>this.addMatch(b,e,O,g));t=t.update({filterFrom:u,filterTo:h,filter:(O,b)=>O<u||b>h,add:f})}}return t}}const ru=/x/.unicode!=null?"gu":"g",jC=new RegExp(`[\0-\b
|
|
21
|
+
--\u2028\u2029\uFEFF-]`,ru),YC={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Il=null;function FC(){var r;if(Il==null&&typeof document<"u"&&document.body){let e=document.body.style;Il=((r=e.tabSize)!==null&&r!==void 0?r:e.MozTabSize)!=null}return Il||!1}const va=Se.define({combine(r){let e=tn(r,{render:null,specialChars:jC,addSpecialChars:null});return(e.replaceTabs=!FC())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,ru)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,ru)),e}});function UC(r={}){return[va.of(r),GC()]}let Nd=null;function GC(){return Nd||(Nd=Ot.fromClass(class{constructor(r){this.view=r,this.decorations=Ee.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(r.state.facet(va)),this.decorations=this.decorator.createDeco(r)}makeDecorator(r){return new qC({regexp:r.specialChars,decoration:(e,t,n)=>{let{doc:s}=t.state,i=Gt(e[0],0);if(i==9){let o=s.lineAt(n),a=t.state.tabSize,l=Rr(o.text,a,n-o.from);return Ee.replace({widget:new e5((a-l%a)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[i]||(this.decorationCache[i]=Ee.replace({widget:new JC(r,i)}))},boundary:r.replaceTabs?void 0:/[^]/})}update(r){let e=r.state.facet(va);r.startState.facet(va)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(r.view)):this.decorations=this.decorator.updateDeco(r,this.decorations)}},{decorations:r=>r.decorations}))}const HC="•";function KC(r){return r>=32?HC:r==10?"":String.fromCharCode(9216+r)}class JC extends rn{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=KC(this.code),n=e.state.phrase("Control character")+" "+(YC[this.code]||"0x"+this.code.toString(16)),s=this.options.render&&this.options.render(this.code,n,t);if(s)return s;let i=document.createElement("span");return i.textContent=t,i.title=n,i.setAttribute("aria-label",n),i.className="cm-specialChar",i}ignoreEvent(){return!1}}class e5 extends rn{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}function t5(){return n5}const r5=Ee.line({class:"cm-activeLine"}),n5=Ot.fromClass(class{constructor(r){this.decorations=this.getDeco(r)}update(r){(r.docChanged||r.selectionSet)&&(this.decorations=this.getDeco(r.view))}getDeco(r){let e=-1,t=[];for(let n of r.state.selection.ranges){let s=r.lineBlockAt(n.head);s.from>e&&(t.push(r5.range(s.from)),e=s.from)}return Ee.set(t)}},{decorations:r=>r.decorations}),nu=2e3;function s5(r,e,t){let n=Math.min(e.line,t.line),s=Math.max(e.line,t.line),i=[];if(e.off>nu||t.off>nu||e.col<0||t.col<0){let o=Math.min(e.off,t.off),a=Math.max(e.off,t.off);for(let l=n;l<=s;l++){let c=r.doc.line(l);c.length<=a&&i.push(J.range(c.from+o,c.to+a))}}else{let o=Math.min(e.col,t.col),a=Math.max(e.col,t.col);for(let l=n;l<=s;l++){let c=r.doc.line(l),u=Zc(c.text,o,r.tabSize,!0);if(u<0)i.push(J.cursor(c.to));else{let h=Zc(c.text,a,r.tabSize);i.push(J.range(c.from+u,c.from+h))}}}return i}function i5(r,e){let t=r.coordsAtPos(r.viewport.from);return t?Math.round(Math.abs((t.left-e)/r.defaultCharacterWidth)):-1}function Wd(r,e){let t=r.posAtCoords({x:e.clientX,y:e.clientY},!1),n=r.state.doc.lineAt(t),s=t-n.from,i=s>nu?-1:s==n.length?i5(r,e.clientX):Rr(n.text,r.state.tabSize,t-n.from);return{line:n.number,col:i,off:s}}function o5(r,e){let t=Wd(r,e),n=r.state.selection;return t?{update(s){if(s.docChanged){let i=s.changes.mapPos(s.startState.doc.line(t.line).from),o=s.state.doc.lineAt(i);t={line:o.number,col:t.col,off:Math.min(t.off,o.length)},n=n.map(s.changes)}},get(s,i,o){let a=Wd(r,s);if(!a)return n;let l=s5(r.state,t,a);return l.length?o?J.create(l.concat(n.ranges)):J.create(l):n}}:null}function a5(r){let e=(t=>t.altKey&&t.button==0);return ke.mouseSelectionStyle.of((t,n)=>e(n)?o5(t,n):null)}const l5={Alt:[18,r=>!!r.altKey],Control:[17,r=>!!r.ctrlKey],Shift:[16,r=>!!r.shiftKey],Meta:[91,r=>!!r.metaKey]},c5={style:"cursor: crosshair"};function u5(r={}){let[e,t]=l5[r.key||"Alt"],n=Ot.fromClass(class{constructor(s){this.view=s,this.isDown=!1}set(s){this.isDown!=s&&(this.isDown=s,this.view.update([]))}},{eventObservers:{keydown(s){this.set(s.keyCode==e||t(s))},keyup(s){(s.keyCode==e||!t(s))&&this.set(!1)},mousemove(s){this.set(t(s))}}});return[n,ke.contentAttributes.of(s=>{var i;return!((i=s.plugin(n))===null||i===void 0)&&i.isDown?c5:null})]}const Uo="-10000px";class yg{constructor(e,t,n,s){this.facet=t,this.createTooltipView=n,this.removeTooltipView=s,this.input=e.state.facet(t),this.tooltips=this.input.filter(o=>o);let i=null;this.tooltipViews=this.tooltips.map(o=>i=n(o,i))}update(e,t){var n;let s=e.state.facet(this.facet),i=s.filter(l=>l);if(s===this.input){for(let l of this.tooltipViews)l.update&&l.update(e);return!1}let o=[],a=t?[]:null;for(let l=0;l<i.length;l++){let c=i[l],u=-1;if(c){for(let h=0;h<this.tooltips.length;h++){let f=this.tooltips[h];f&&f.create==c.create&&(u=h)}if(u<0)o[l]=this.createTooltipView(c,l?o[l-1]:null),a&&(a[l]=!!c.above);else{let h=o[l]=this.tooltipViews[u];a&&(a[l]=t[u]),h.update&&h.update(e)}}}for(let l of this.tooltipViews)o.indexOf(l)<0&&(this.removeTooltipView(l),(n=l.destroy)===null||n===void 0||n.call(l));return t&&(a.forEach((l,c)=>t[c]=l),t.length=a.length),this.input=s,this.tooltips=i,this.tooltipViews=o,!0}}function h5(r){let e=r.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const Vl=Se.define({combine:r=>{var e,t,n;return{position:$e.ios?"absolute":((e=r.find(s=>s.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((t=r.find(s=>s.parent))===null||t===void 0?void 0:t.parent)||null,tooltipSpace:((n=r.find(s=>s.tooltipSpace))===null||n===void 0?void 0:n.tooltipSpace)||h5}}}),qd=new WeakMap,Ju=Ot.fromClass(class{constructor(r){this.view=r,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=r.state.facet(Vl);this.position=e.position,this.parent=e.parent,this.classes=r.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver=typeof ResizeObserver=="function"?new ResizeObserver(()=>this.measureSoon()):null,this.manager=new yg(r,eh,(t,n)=>this.createTooltip(t,n),t=>{this.resizeObserver&&this.resizeObserver.unobserve(t.dom),t.dom.remove()}),this.above=this.manager.tooltips.map(t=>!!t.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(t=>{Date.now()>this.lastTransaction-50&&t.length>0&&t[t.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),r.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let r of this.manager.tooltipViews)this.intersectionObserver.observe(r.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(r){r.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(r,this.above);e&&this.observeIntersection();let t=e||r.geometryChanged,n=r.state.facet(Vl);if(n.position!=this.position&&!this.madeAbsolute){this.position=n.position;for(let s of this.manager.tooltipViews)s.dom.style.position=this.position;t=!0}if(n.parent!=this.parent){this.parent&&this.container.remove(),this.parent=n.parent,this.createContainer();for(let s of this.manager.tooltipViews)this.container.appendChild(s.dom);t=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);t&&this.maybeMeasure()}createTooltip(r,e){let t=r.create(this.view),n=e?e.dom:null;if(t.dom.classList.add("cm-tooltip"),r.arrow&&!t.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let s=document.createElement("div");s.className="cm-tooltip-arrow",t.dom.appendChild(s)}return t.dom.style.position=this.position,t.dom.style.top=Uo,t.dom.style.left="0px",this.container.insertBefore(t.dom,n),t.mount&&t.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(t.dom),t}destroy(){var r,e,t;this.view.win.removeEventListener("resize",this.measureSoon);for(let n of this.manager.tooltipViews)n.dom.remove(),(r=n.destroy)===null||r===void 0||r.call(n);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(t=this.intersectionObserver)===null||t===void 0||t.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let r=1,e=1,t=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:i}=this.manager.tooltipViews[0];if($e.safari){let o=i.getBoundingClientRect();t=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else t=!!i.offsetParent&&i.offsetParent!=this.container.ownerDocument.body}if(t||this.position=="absolute")if(this.parent){let i=this.parent.getBoundingClientRect();i.width&&i.height&&(r=i.width/this.parent.offsetWidth,e=i.height/this.parent.offsetHeight)}else({scaleX:r,scaleY:e}=this.view.viewState);let n=this.view.scrollDOM.getBoundingClientRect(),s=Uu(this.view);return{visible:{left:n.left+s.left,top:n.top+s.top,right:n.right-s.right,bottom:n.bottom-s.bottom},parent:this.parent?this.container.getBoundingClientRect():this.view.dom.getBoundingClientRect(),pos:this.manager.tooltips.map((i,o)=>{let a=this.manager.tooltipViews[o];return a.getCoords?a.getCoords(i.pos):this.view.coordsAtPos(i.pos)}),size:this.manager.tooltipViews.map(({dom:i})=>i.getBoundingClientRect()),space:this.view.state.facet(Vl).tooltipSpace(this.view),scaleX:r,scaleY:e,makeAbsolute:t}}writeMeasure(r){var e;if(r.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let a of this.manager.tooltipViews)a.dom.style.position="absolute"}let{visible:t,space:n,scaleX:s,scaleY:i}=r,o=[];for(let a=0;a<this.manager.tooltips.length;a++){let l=this.manager.tooltips[a],c=this.manager.tooltipViews[a],{dom:u}=c,h=r.pos[a],f=r.size[a];if(!h||l.clip!==!1&&(h.bottom<=Math.max(t.top,n.top)||h.top>=Math.min(t.bottom,n.bottom)||h.right<Math.max(t.left,n.left)-.1||h.left>Math.min(t.right,n.right)+.1)){u.style.top=Uo;continue}let m=l.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,g=m?7:0,O=f.right-f.left,b=(e=qd.get(c))!==null&&e!==void 0?e:f.bottom-f.top,x=c.offset||f5,w=this.view.textDirection==lt.LTR,S=f.width>n.right-n.left?w?n.left:n.right-f.width:w?Math.max(n.left,Math.min(h.left-(m?14:0)+x.x,n.right-O)):Math.min(Math.max(n.left,h.left-O+(m?14:0)-x.x),n.right-O),C=this.above[a];!l.strictSide&&(C?h.top-b-g-x.y<n.top:h.bottom+b+g+x.y>n.bottom)&&C==n.bottom-h.bottom>h.top-n.top&&(C=this.above[a]=!C);let _=(C?h.top-n.top:n.bottom-h.bottom)-g;if(_<b&&c.resize!==!1){if(_<this.view.defaultLineHeight){u.style.top=Uo;continue}qd.set(c,b),u.style.height=(b=_)/i+"px"}else u.style.height&&(u.style.height="");let I=C?h.top-b-g-x.y:h.bottom+g+x.y,V=S+O;if(c.overlap!==!0)for(let re of o)re.left<V&&re.right>S&&re.top<I+b&&re.bottom>I&&(I=C?re.top-b-2-g:re.bottom+g+2);if(this.position=="absolute"?(u.style.top=(I-r.parent.top)/i+"px",jd(u,(S-r.parent.left)/s)):(u.style.top=I/i+"px",jd(u,S/s)),m){let re=h.left+(w?x.x:-x.x)-(S+14-7);m.style.left=re/s+"px"}c.overlap!==!0&&o.push({left:S,top:I,right:V,bottom:I+b}),u.classList.toggle("cm-tooltip-above",C),u.classList.toggle("cm-tooltip-below",!C),c.positioned&&c.positioned(r.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let r of this.manager.tooltipViews)r.dom.style.top=Uo}},{eventObservers:{scroll(){this.maybeMeasure()}}});function jd(r,e){let t=parseInt(r.style.left,10);(isNaN(t)||Math.abs(e-t)>1)&&(r.style.left=e+"px")}const d5=ke.baseTheme({".cm-tooltip":{zIndex:500,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:"14px",position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),f5={x:0,y:0},eh=Se.define({enables:[Ju,d5]}),Ia=Se.define({combine:r=>r.reduce((e,t)=>e.concat(t),[])});class bl{static create(e){return new bl(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new yg(e,Ia,(t,n)=>this.createHostedView(t,n),t=>t.dom.remove())}createHostedView(e,t){let n=e.create(this.view);return n.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(n.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&n.mount&&n.mount(this.view),n}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)(e=t.destroy)===null||e===void 0||e.call(t)}passProp(e){let t;for(let n of this.manager.tooltipViews){let s=n[e];if(s!==void 0){if(t===void 0)t=s;else if(t!==s)return}}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const m5=eh.compute([Ia],r=>{let e=r.facet(Ia);return e.length===0?null:{pos:Math.min(...e.map(t=>t.pos)),end:Math.max(...e.map(t=>{var n;return(n=t.end)!==null&&n!==void 0?n:t.pos})),create:bl.create,above:e[0].above,arrow:e.some(t=>t.arrow)}});class p5{constructor(e,t,n,s,i){this.view=e,this.source=t,this.field=n,this.setHover=s,this.hoverTime=i,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout(()=>this.startHover(),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;e<this.hoverTime?this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime-e):this.startHover()}startHover(){clearTimeout(this.restartTimeout);let{view:e,lastMove:t}=this,n=e.docView.tile.nearest(t.target);if(!n)return;let s,i=1;if(n.isWidget())s=n.posAtStart;else{if(s=e.posAtCoords(t),s==null)return;let a=e.coordsAtPos(s);if(!a||t.y<a.top||t.y>a.bottom||t.x<a.left-e.defaultCharacterWidth||t.x>a.right+e.defaultCharacterWidth)return;let l=e.bidiSpans(e.state.doc.lineAt(s)).find(u=>u.from<=s&&u.to>=s),c=l&&l.dir==lt.RTL?-1:1;i=t.x<a.left?-c:c}let o=this.source(e,s,i);if(o?.then){let a=this.pending={pos:s};o.then(l=>{this.pending==a&&(this.pending=null,l&&!(Array.isArray(l)&&!l.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(l)?l:[l])}))},l=>er(e.state,l,"hover tooltip"))}else o&&!(Array.isArray(o)&&!o.length)&&e.dispatch({effects:this.setHover.of(Array.isArray(o)?o:[o])})}get tooltip(){let e=this.view.plugin(Ju),t=e?e.manager.tooltips.findIndex(n=>n.create==bl.create):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,n;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:s,tooltip:i}=this;if(s.length&&i&&!g5(i.dom,e)||this.pending){let{pos:o}=s[0]||this.pending,a=(n=(t=s[0])===null||t===void 0?void 0:t.end)!==null&&n!==void 0?n:o;(o==a?this.view.posAtCoords(this.lastMove)!=o:!O5(this.view,o,a,e.clientX,e.clientY))&&(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length){let{tooltip:n}=this;n&&n.dom.contains(e.relatedTarget)?this.watchTooltipLeave(n.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=n=>{e.removeEventListener("mouseleave",t),this.active.length&&!this.view.dom.contains(n.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const Go=4;function g5(r,e){let{left:t,right:n,top:s,bottom:i}=r.getBoundingClientRect(),o;if(o=r.querySelector(".cm-tooltip-arrow")){let a=o.getBoundingClientRect();s=Math.min(a.top,s),i=Math.max(a.bottom,i)}return e.clientX>=t-Go&&e.clientX<=n+Go&&e.clientY>=s-Go&&e.clientY<=i+Go}function O5(r,e,t,n,s,i){let o=r.scrollDOM.getBoundingClientRect(),a=r.documentTop+r.documentPadding.top+r.contentHeight;if(o.left>n||o.right<n||o.top>s||Math.min(o.bottom,a)<s)return!1;let l=r.posAtCoords({x:n,y:s},!1);return l>=e&&l<=t}function v5(r,e={}){let t=ze.define(),n=Pt.define({create(){return[]},update(s,i){if(s.length&&(e.hideOnChange&&(i.docChanged||i.selection)?s=[]:e.hideOn&&(s=s.filter(o=>!e.hideOn(i,o))),i.docChanged)){let o=[];for(let a of s){let l=i.changes.mapPos(a.pos,-1,At.TrackDel);if(l!=null){let c=Object.assign(Object.create(null),a);c.pos=l,c.end!=null&&(c.end=i.changes.mapPos(c.end)),o.push(c)}}s=o}for(let o of i.effects)o.is(t)&&(s=o.value),o.is(b5)&&(s=[]);return s},provide:s=>Ia.from(s)});return{active:n,extension:[n,Ot.define(s=>new p5(s,r,n,t,e.hoverTime||300)),m5]}}function kg(r,e){let t=r.plugin(Ju);if(!t)return null;let n=t.manager.tooltips.indexOf(e);return n<0?null:t.manager.tooltipViews[n]}const b5=ze.define(),Yd=Se.define({combine(r){let e,t;for(let n of r)e=e||n.topContainer,t=t||n.bottomContainer;return{topContainer:e,bottomContainer:t}}});function th(r,e){let t=r.plugin(wg),n=t?t.specs.indexOf(e):-1;return n>-1?t.panels[n]:null}const wg=Ot.fromClass(class{constructor(r){this.input=r.state.facet(Ki),this.specs=this.input.filter(t=>t),this.panels=this.specs.map(t=>t(r));let e=r.state.facet(Yd);this.top=new Ho(r,!0,e.topContainer),this.bottom=new Ho(r,!1,e.bottomContainer),this.top.sync(this.panels.filter(t=>t.top)),this.bottom.sync(this.panels.filter(t=>!t.top));for(let t of this.panels)t.dom.classList.add("cm-panel"),t.mount&&t.mount()}update(r){let e=r.state.facet(Yd);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new Ho(r.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new Ho(r.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let t=r.state.facet(Ki);if(t!=this.input){let n=t.filter(l=>l),s=[],i=[],o=[],a=[];for(let l of n){let c=this.specs.indexOf(l),u;c<0?(u=l(r.view),a.push(u)):(u=this.panels[c],u.update&&u.update(r)),s.push(u),(u.top?i:o).push(u)}this.specs=n,this.panels=s,this.top.sync(i),this.bottom.sync(o);for(let l of a)l.dom.classList.add("cm-panel"),l.mount&&l.mount()}else for(let n of this.panels)n.update&&n.update(r)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:r=>ke.scrollMargins.of(e=>{let t=e.plugin(r);return t&&{top:t.top.scrollMargin(),bottom:t.bottom.scrollMargin()}})});class Ho{constructor(e,t,n){this.view=e,this.top=t,this.container=n,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(this.panels.length==0){this.dom&&(this.dom.remove(),this.dom=void 0);return}if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let t=this.container||this.view.dom;t.insertBefore(this.dom,this.top?t.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=Fd(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=Fd(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(!(!this.container||this.classes==this.view.themeClasses)){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function Fd(r){let e=r.nextSibling;return r.remove(),e}const Ki=Se.define({enables:wg});function x5(r,e){let t,n=new Promise(o=>t=o),s=o=>y5(o,e,t);r.state.field(zl,!1)?r.dispatch({effects:Sg.of(s)}):r.dispatch({effects:ze.appendConfig.of(zl.init(()=>[s]))});let i=$g.of(s);return{close:i,result:n.then(o=>((r.win.queueMicrotask||(l=>r.win.setTimeout(l,10)))(()=>{r.state.field(zl).indexOf(s)>-1&&r.dispatch({effects:i})}),o))}}const zl=Pt.define({create(){return[]},update(r,e){for(let t of e.effects)t.is(Sg)?r=[t.value].concat(r):t.is($g)&&(r=r.filter(n=>n!=t.value));return r},provide:r=>Ki.computeN([r],e=>e.field(r))}),Sg=ze.define(),$g=ze.define();function y5(r,e,t){let n=e.content?e.content(r,()=>o(null)):null;if(!n){if(n=it("form"),e.input){let a=it("input",e.input);/^(text|password|number|email|tel|url)$/.test(a.type)&&a.classList.add("cm-textfield"),a.name||(a.name="input"),n.appendChild(it("label",(e.label||"")+": ",a))}else n.appendChild(document.createTextNode(e.label||""));n.appendChild(document.createTextNode(" ")),n.appendChild(it("button",{class:"cm-button",type:"submit"},e.submitLabel||"OK"))}let s=n.nodeName=="FORM"?[n]:n.querySelectorAll("form");for(let a=0;a<s.length;a++){let l=s[a];l.addEventListener("keydown",c=>{c.keyCode==27?(c.preventDefault(),o(null)):c.keyCode==13&&(c.preventDefault(),o(l))}),l.addEventListener("submit",c=>{c.preventDefault(),o(l)})}let i=it("div",n,it("button",{onclick:()=>o(null),"aria-label":r.state.phrase("close"),class:"cm-dialog-close",type:"button"},["×"]));e.class&&(i.className=e.class),i.classList.add("cm-dialog");function o(a){i.contains(i.ownerDocument.activeElement)&&r.focus(),t(a)}return{dom:i,top:e.top,mount:()=>{if(e.focus){let a;typeof e.focus=="string"?a=n.querySelector(e.focus):a=n.querySelector("input")||n.querySelector("button"),a&&"select"in a?a.select():a&&"focus"in a&&a.focus()}}}}class vn extends Dn{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}vn.prototype.elementClass="";vn.prototype.toDOM=void 0;vn.prototype.mapMode=At.TrackBefore;vn.prototype.startSide=vn.prototype.endSide=-1;vn.prototype.point=!0;const ba=Se.define(),k5=Se.define(),w5={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>Ge.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},zi=Se.define();function S5(r){return[Cg(),zi.of({...w5,...r})]}const Ud=Se.define({combine:r=>r.some(e=>e)});function Cg(r){return[$5]}const $5=Ot.fromClass(class{constructor(r){this.view=r,this.domAfter=null,this.prevViewport=r.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters cm-gutters-before",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=r.state.facet(zi).map(e=>new Hd(r,e)),this.fixed=!r.state.facet(Ud);for(let e of this.gutters)e.config.side=="after"?this.getDOMAfter().appendChild(e.dom):this.dom.appendChild(e.dom);this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),r.scrollDOM.insertBefore(this.dom,r.contentDOM)}getDOMAfter(){return this.domAfter||(this.domAfter=document.createElement("div"),this.domAfter.className="cm-gutters cm-gutters-after",this.domAfter.setAttribute("aria-hidden","true"),this.domAfter.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.domAfter.style.position=this.fixed?"sticky":"",this.view.scrollDOM.appendChild(this.domAfter)),this.domAfter}update(r){if(this.updateGutters(r)){let e=this.prevViewport,t=r.view.viewport,n=Math.min(e.to,t.to)-Math.max(e.from,t.from);this.syncGutters(n<(t.to-t.from)*.8)}if(r.geometryChanged){let e=this.view.contentHeight/this.view.scaleY+"px";this.dom.style.minHeight=e,this.domAfter&&(this.domAfter.style.minHeight=e)}this.view.state.facet(Ud)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=r.view.viewport}syncGutters(r){let e=this.dom.nextSibling;r&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let t=Ge.iter(this.view.state.facet(ba),this.view.viewport.from),n=[],s=this.gutters.map(i=>new C5(i,this.view.viewport,-this.view.documentPadding.top));for(let i of this.view.viewportLineBlocks)if(n.length&&(n=[]),Array.isArray(i.type)){let o=!0;for(let a of i.type)if(a.type==Bt.Text&&o){su(t,n,a.from);for(let l of s)l.line(this.view,a,n);o=!1}else if(a.widget)for(let l of s)l.widget(this.view,a)}else if(i.type==Bt.Text){su(t,n,i.from);for(let o of s)o.line(this.view,i,n)}else if(i.widget)for(let o of s)o.widget(this.view,i);for(let i of s)i.finish();r&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(r){let e=r.startState.facet(zi),t=r.state.facet(zi),n=r.docChanged||r.heightChanged||r.viewportChanged||!Ge.eq(r.startState.facet(ba),r.state.facet(ba),r.view.viewport.from,r.view.viewport.to);if(e==t)for(let s of this.gutters)s.update(r)&&(n=!0);else{n=!0;let s=[];for(let i of t){let o=e.indexOf(i);o<0?s.push(new Hd(this.view,i)):(this.gutters[o].update(r),s.push(this.gutters[o]))}for(let i of this.gutters)i.dom.remove(),s.indexOf(i)<0&&i.destroy();for(let i of s)i.config.side=="after"?this.getDOMAfter().appendChild(i.dom):this.dom.appendChild(i.dom);this.gutters=s}return n}destroy(){for(let r of this.gutters)r.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:r=>ke.scrollMargins.of(e=>{let t=e.plugin(r);if(!t||t.gutters.length==0||!t.fixed)return null;let n=t.dom.offsetWidth*e.scaleX,s=t.domAfter?t.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==lt.LTR?{left:n,right:s}:{right:n,left:s}})});function Gd(r){return Array.isArray(r)?r:[r]}function su(r,e,t){for(;r.value&&r.from<=t;)r.from==t&&e.push(r.value),r.next()}class C5{constructor(e,t,n){this.gutter=e,this.height=n,this.i=0,this.cursor=Ge.iter(e.markers,t.from)}addElement(e,t,n){let{gutter:s}=this,i=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==s.elements.length){let a=new Qg(e,o,i,n);s.elements.push(a),s.dom.appendChild(a.dom)}else s.elements[this.i].update(e,o,i,n);this.height=t.bottom,this.i++}line(e,t,n){let s=[];su(this.cursor,s,t.from),n.length&&(s=s.concat(n));let i=this.gutter.config.lineMarker(e,t,s);i&&s.unshift(i);let o=this.gutter;s.length==0&&!o.config.renderEmptyElements||this.addElement(e,t,s)}widget(e,t){let n=this.gutter.config.widgetMarker(e,t.widget,t),s=n?[n]:null;for(let i of e.state.facet(k5)){let o=i(e,t.widget,t);o&&(s||(s=[])).push(o)}s&&this.addElement(e,t,s)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}class Hd{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let n in t.domEventHandlers)this.dom.addEventListener(n,s=>{let i=s.target,o;if(i!=this.dom&&this.dom.contains(i)){for(;i.parentNode!=this.dom;)i=i.parentNode;let l=i.getBoundingClientRect();o=(l.top+l.bottom)/2}else o=s.clientY;let a=e.lineBlockAtHeight(o-e.documentTop);t.domEventHandlers[n](e,a,s)&&s.preventDefault()});this.markers=Gd(t.markers(e)),t.initialSpacer&&(this.spacer=new Qg(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=Gd(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let s=this.config.updateSpacer(this.spacer.markers[0],e);s!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[s])}let n=e.view.viewport;return!Ge.eq(this.markers,t,n.from,n.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class Qg{constructor(e,t,n,s){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,n,s)}update(e,t,n,s){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=n&&(this.dom.style.marginTop=(this.above=n)?n+"px":""),Q5(this.markers,s)||this.setMarkers(e,s)}setMarkers(e,t){let n="cm-gutterElement",s=this.dom.firstChild;for(let i=0,o=0;;){let a=o,l=i<t.length?t[i++]:null,c=!1;if(l){let u=l.elementClass;u&&(n+=" "+u);for(let h=o;h<this.markers.length;h++)if(this.markers[h].compare(l)){a=h,c=!0;break}}else a=this.markers.length;for(;o<a;){let u=this.markers[o++];if(u.toDOM){u.destroy(s);let h=s.nextSibling;s.remove(),s=h}}if(!l)break;l.toDOM&&(c?s=s.nextSibling:this.dom.insertBefore(l.toDOM(e),s)),c&&o++}this.dom.className=n,this.markers=t}destroy(){this.setMarkers(null,[])}}function Q5(r,e){if(r.length!=e.length)return!1;for(let t=0;t<r.length;t++)if(!r[t].compare(e[t]))return!1;return!0}const P5=Se.define(),T5=Se.define(),Ts=Se.define({combine(r){return tn(r,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,t){let n=Object.assign({},e);for(let s in t){let i=n[s],o=t[s];n[s]=i?(a,l,c)=>i(a,l,c)||o(a,l,c):o}return n}})}});class Nl extends vn{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function Wl(r,e){return r.state.facet(Ts).formatNumber(e,r.state)}const M5=zi.compute([Ts],r=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(P5)},lineMarker(e,t,n){return n.some(s=>s.toDOM)?null:new Nl(Wl(e,e.state.doc.lineAt(t.from).number))},widgetMarker:(e,t,n)=>{for(let s of e.state.facet(T5)){let i=s(e,t,n);if(i)return i}return null},lineMarkerChange:e=>e.startState.facet(Ts)!=e.state.facet(Ts),initialSpacer(e){return new Nl(Wl(e,Kd(e.state.doc.lines)))},updateSpacer(e,t){let n=Wl(t.view,Kd(t.view.state.doc.lines));return n==e.number?e:new Nl(n)},domEventHandlers:r.facet(Ts).domEventHandlers,side:"before"}));function A5(r={}){return[Ts.of(r),Cg(),M5]}function Kd(r){let e=9;for(;e<r;)e=e*10+9;return e}const _5=new class extends vn{constructor(){super(...arguments),this.elementClass="cm-activeLineGutter"}},R5=ba.compute(["selection"],r=>{let e=[],t=-1;for(let n of r.selection.ranges){let s=r.doc.lineAt(n.head).from;s>t&&(t=s,e.push(_5.range(s)))}return Ge.of(e)});function B5(){return R5}const Pg=1024;let D5=0;class kr{constructor(e,t){this.from=e,this.to=t}}class We{constructor(e={}){this.id=D5++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")}),this.combine=e.combine||null}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=St.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}}We.closedBy=new We({deserialize:r=>r.split(" ")});We.openedBy=new We({deserialize:r=>r.split(" ")});We.group=new We({deserialize:r=>r.split(" ")});We.isolate=new We({deserialize:r=>{if(r&&r!="rtl"&&r!="ltr"&&r!="auto")throw new RangeError("Invalid value for isolate: "+r);return r||"auto"}});We.contextHash=new We({perNode:!0});We.lookAhead=new We({perNode:!0});We.mounted=new We({perNode:!0});class Ds{constructor(e,t,n,s=!1){this.tree=e,this.overlay=t,this.parser=n,this.bracketed=s}static get(e){return e&&e.props&&e.props[We.mounted.id]}}const Z5=Object.create(null);class St{constructor(e,t,n,s=0){this.name=e,this.props=t,this.id=n,this.flags=s}static define(e){let t=e.props&&e.props.length?Object.create(null):Z5,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),s=new St(e.name||"",t,e.id,n);if(e.props){for(let i of e.props)if(Array.isArray(i)||(i=i(s)),i){if(i[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[i[0].id]=i[1]}}return s}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(We.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let s of n.split(" "))t[s]=e[n];return n=>{for(let s=n.prop(We.group),i=-1;i<(s?s.length:0);i++){let o=t[i<0?n.name:s[i]];if(o)return o}}}}St.none=new St("",Object.create(null),0,8);class So{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let n of this.types){let s=null;for(let i of e){let o=i(n);if(o){s||(s=Object.assign({},n.props));let a=o[1],l=o[0];l.combine&&l.id in s&&(a=l.combine(s[l.id],a)),s[l.id]=a}}t.push(s?new St(n.name,s,n.id,n.flags):n)}return new So(t)}}const Ko=new WeakMap,Jd=new WeakMap;var nt;(function(r){r[r.ExcludeBuffers=1]="ExcludeBuffers",r[r.IncludeAnonymous=2]="IncludeAnonymous",r[r.IgnoreMounts=4]="IgnoreMounts",r[r.IgnoreOverlays=8]="IgnoreOverlays",r[r.EnterBracketed=16]="EnterBracketed"})(nt||(nt={}));class rt{constructor(e,t,n,s,i){if(this.type=e,this.children=t,this.positions=n,this.length=s,this.props=null,i&&i.length){this.props=Object.create(null);for(let[o,a]of i)this.props[typeof o=="number"?o:o.id]=a}}toString(){let e=Ds.get(this);if(e&&!e.overlay)return e.tree.toString();let t="";for(let n of this.children){let s=n.toString();s&&(t&&(t+=","),t+=s)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?"("+t+")":""):t}cursor(e=0){return new Va(this.topNode,e)}cursorAt(e,t=0,n=0){let s=Ko.get(this)||this.topNode,i=new Va(s);return i.moveTo(e,t),Ko.set(this,i._tree),i}get topNode(){return new Lt(this,0,0,null)}resolve(e,t=0){let n=Ji(Ko.get(this)||this.topNode,e,t,!1);return Ko.set(this,n),n}resolveInner(e,t=0){let n=Ji(Jd.get(this)||this.topNode,e,t,!0);return Jd.set(this,n),n}resolveStack(e,t=0){return X5(this,e,t)}iterate(e){let{enter:t,leave:n,from:s=0,to:i=this.length}=e,o=e.mode||0,a=(o&nt.IncludeAnonymous)>0;for(let l=this.cursor(o|nt.IncludeAnonymous);;){let c=!1;if(l.from<=i&&l.to>=s&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;c=!0}for(;c&&n&&(a||!l.type.isAnonymous)&&n(l),!l.nextSibling();){if(!l.parent())return;c=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:sh(St.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,s)=>new rt(this.type,t,n,s,this.propValues),e.makeTree||((t,n,s)=>new rt(St.none,t,n,s)))}static build(e){return I5(e)}}rt.empty=new rt(St.none,[],[],0);class rh{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new rh(this.buffer,this.index)}}class Xn{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return St.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],n=this.buffer[e+3],s=this.set.types[t],i=s.name;if(/\W/.test(i)&&!s.isError&&(i=JSON.stringify(i)),e+=4,n==e)return i;let o=[];for(;e<n;)o.push(this.childString(e)),e=this.buffer[e+3];return i+"("+o.join(",")+")"}findChild(e,t,n,s,i){let{buffer:o}=this,a=-1;for(let l=e;l!=t&&!(Tg(i,s,o[l+1],o[l+2])&&(a=l,n>0));l=o[l+3]);return a}slice(e,t,n){let s=this.buffer,i=new Uint16Array(t-e),o=0;for(let a=e,l=0;a<t;){i[l++]=s[a++],i[l++]=s[a++]-n;let c=i[l++]=s[a++]-n;i[l++]=s[a++]-e,o=Math.max(o,c)}return new Xn(i,o,this.set)}}function Tg(r,e,t,n){switch(r){case-2:return t<e;case-1:return n>=e&&t<e;case 0:return t<e&&n>e;case 1:return t<=e&&n>e;case 2:return n>e;case 4:return!0}}function Ji(r,e,t,n){for(var s;r.from==r.to||(t<1?r.from>=e:r.from>e)||(t>-1?r.to<=e:r.to<e);){let o=!n&&r instanceof Lt&&r.index<0?null:r.parent;if(!o)return r;r=o}let i=n?0:nt.IgnoreOverlays;if(n)for(let o=r,a=o.parent;a;o=a,a=o.parent)o instanceof Lt&&o.index<0&&((s=a.enter(e,t,i))===null||s===void 0?void 0:s.from)!=o.from&&(r=a);for(;;){let o=r.enter(e,t,i);if(!o)return r;r=o}}class Mg{cursor(e=0){return new Va(this,e)}getChild(e,t=null,n=null){let s=ef(this,e,t,n);return s.length?s[0]:null}getChildren(e,t=null,n=null){return ef(this,e,t,n)}resolve(e,t=0){return Ji(this,e,t,!1)}resolveInner(e,t=0){return Ji(this,e,t,!0)}matchContext(e){return iu(this.parent,e)}enterUnfinishedNodesBefore(e){let t=this.childBefore(e),n=this;for(;t;){let s=t.lastChild;if(!s||s.to!=t.to)break;s.type.isError&&s.from==s.to?(n=t,t=s.prevSibling):t=s}return n}get node(){return this}get next(){return this.parent}}class Lt extends Mg{constructor(e,t,n,s){super(),this._tree=e,this.from=t,this.index=n,this._parent=s}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,n,s,i=0){for(let o=this;;){for(let{children:a,positions:l}=o._tree,c=t>0?a.length:-1;e!=c;e+=t){let u=a[e],h=l[e]+o.from,f;if(!(!(i&nt.EnterBracketed&&u instanceof rt&&(f=Ds.get(u))&&!f.overlay&&f.bracketed&&n>=h&&n<=h+u.length)&&!Tg(s,n,h,h+u.length))){if(u instanceof Xn){if(i&nt.ExcludeBuffers)continue;let m=u.findChild(0,u.buffer.length,t,n-h,s);if(m>-1)return new Gr(new E5(o,u,e,h),null,m)}else if(i&nt.IncludeAnonymous||!u.type.isAnonymous||nh(u)){let m;if(!(i&nt.IgnoreMounts)&&(m=Ds.get(u))&&!m.overlay)return new Lt(m.tree,h,e,o);let g=new Lt(u,h,e,o);return i&nt.IncludeAnonymous||!g.type.isAnonymous?g:g.nextChild(t<0?u.children.length-1:0,t,n,s,i)}}}if(i&nt.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}prop(e){return this._tree.prop(e)}enter(e,t,n=0){let s;if(!(n&nt.IgnoreOverlays)&&(s=Ds.get(this._tree))&&s.overlay){let i=e-this.from,o=n&nt.EnterBracketed&&s.bracketed;for(let{from:a,to:l}of s.overlay)if((t>0||o?a<=i:a<i)&&(t<0||o?l>=i:l>i))return new Lt(s.tree,s.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}get tree(){return this._tree}toTree(){return this._tree}toString(){return this._tree.toString()}}function ef(r,e,t,n){let s=r.cursor(),i=[];if(!s.firstChild())return i;if(t!=null){for(let o=!1;!o;)if(o=s.type.is(t),!s.nextSibling())return i}for(;;){if(n!=null&&s.type.is(n))return i;if(s.type.is(e)&&i.push(s.node),!s.nextSibling())return n==null?i:[]}}function iu(r,e,t=e.length-1){for(let n=r;t>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[t]&&e[t]!=n.name)return!1;t--}}return!0}class E5{constructor(e,t,n,s){this.parent=e,this.buffer=t,this.index=n,this.start=s}}class Gr extends Mg{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){super(),this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:s}=this.context,i=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.context.start,n);return i<0?null:new Gr(this.context,this,i)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}prop(e){return this.type.prop(e)}enter(e,t,n=0){if(n&nt.ExcludeBuffers)return null;let{buffer:s}=this.context,i=s.findChild(this.index+4,s.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return i<0?null:new Gr(this.context,this,i)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new Gr(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new Gr(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,s=this.index+4,i=n.buffer[this.index+3];if(i>s){let o=n.buffer[this.index+1];e.push(n.slice(s,i,o)),t.push(0)}return new rt(this.type,e,t,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function Ag(r){if(!r.length)return null;let e=0,t=r[0];for(let i=1;i<r.length;i++){let o=r[i];(o.from>t.from||o.to<t.to)&&(t=o,e=i)}let n=t instanceof Lt&&t.index<0?null:t.parent,s=r.slice();return n?s[e]=n:s.splice(e,1),new L5(s,t)}class L5{constructor(e,t){this.heads=e,this.node=t}get next(){return Ag(this.heads)}}function X5(r,e,t){let n=r.resolveInner(e,t),s=null;for(let i=n instanceof Lt?n:n.context.parent;i;i=i.parent)if(i.index<0){let o=i.parent;(s||(s=[n])).push(o.resolve(e,t)),i=o}else{let o=Ds.get(i.tree);if(o&&o.overlay&&o.overlay[0].from<=e&&o.overlay[o.overlay.length-1].to>=e){let a=new Lt(o.tree,o.overlay[0].from+i.from,-1,i);(s||(s=[n])).push(Ji(a,e,t,!1))}}return s?Ag(s):n}class Va{get name(){return this.type.name}constructor(e,t=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=t&~nt.EnterBracketed,e instanceof Lt)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let n=e._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:s}=this.buffer;return this.type=t||s.set.types[s.buffer[e]],this.from=n+s.buffer[e+1],this.to=n+s.buffer[e+2],!0}yield(e){return e?e instanceof Lt?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:s}=this.buffer,i=s.findChild(this.index+4,s.buffer[this.index+3],e,t-this.buffer.start,n);return i<0?!1:(this.stack.push(this.index),this.yieldBuf(i))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?n&nt.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&nt.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&nt.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let s=n<0?0:this.stack[n]+4;if(this.index!=s)return this.yieldBuf(t.findChild(s,this.index,-1,0,4))}else{let s=t.buffer[this.index+3];if(s<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(s)}return n<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer:s}=this;if(s){if(e>0){if(this.index<s.buffer.buffer.length)return!1}else for(let i=0;i<this.index;i++)if(s.buffer.buffer[i+3]<this.index)return!1;({index:t,parent:n}=s)}else({index:t,_parent:n}=this._tree);for(;n;{index:t,_parent:n}=n)if(t>-1)for(let i=t+e,o=e<0?-1:n._tree.children.length;i!=o;i+=e){let a=n._tree.children[i];if(this.mode&nt.IncludeAnonymous||a instanceof Xn||!a.type.isAnonymous||nh(a))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,n=0;if(e&&e.context==this.buffer)e:for(let s=this.index,i=this.stack.length;i>=0;){for(let o=e;o;o=o._parent)if(o.index==s){if(s==this.index)return o;t=o,n=i+1;break e}s=this.stack[--i]}for(let s=n;s<this.stack.length;s++)t=new Gr(this.buffer,t,this.stack[s]);return this.bufferNode=new Gr(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let n=0;;){let s=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){n++;continue}this.type.isAnonymous||(s=!0)}for(;;){if(s&&t&&t(this),s=this.type.isAnonymous,!n)return;if(this.nextSibling())break;this.parent(),n--,s=!0}}}matchContext(e){if(!this.buffer)return iu(this.node.parent,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let s=e.length-1,i=this.stack.length-1;s>=0;i--){if(i<0)return iu(this._tree,e,s);let o=n[t.buffer[this.stack[i]]];if(!o.isAnonymous){if(e[s]&&e[s]!=o.name)return!1;s--}}return!0}}function nh(r){return r.children.some(e=>e instanceof Xn||!e.type.isAnonymous||nh(e))}function I5(r){var e;let{buffer:t,nodeSet:n,maxBufferLength:s=Pg,reused:i=[],minRepeatType:o=n.types.length}=r,a=Array.isArray(t)?new rh(t,t.length):t,l=n.types,c=0,u=0;function h(_,I,V,re,oe,Oe){let{id:Y,start:L,end:D,size:j}=a,F=u,z=c;if(j<0)if(a.next(),j==-1){let le=i[Y];V.push(le),re.push(L-_);return}else if(j==-3){c=Y;return}else if(j==-4){u=Y;return}else throw new RangeError(`Unrecognized record size: ${j}`);let X=l[Y],N,be,G=L-_;if(D-L<=s&&(be=b(a.pos-I,oe))){let le=new Uint16Array(be.size-be.skip),ue=a.pos-be.size,ce=le.length;for(;a.pos>ue;)ce=x(be.start,le,ce);N=new Xn(le,D-be.start,n),G=be.start-_}else{let le=a.pos-j;a.next();let ue=[],ce=[],de=Y>=o?Y:-1,Ce=0,Me=D;for(;a.pos>le;)de>=0&&a.id==de&&a.size>=0?(a.end<=Me-s&&(g(ue,ce,L,Ce,a.end,Me,de,F,z),Ce=ue.length,Me=a.end),a.next()):Oe>2500?f(L,le,ue,ce):h(L,le,ue,ce,de,Oe+1);if(de>=0&&Ce>0&&Ce<ue.length&&g(ue,ce,L,Ce,L,Me,de,F,z),ue.reverse(),ce.reverse(),de>-1&&Ce>0){let qe=m(X,z);N=sh(X,ue,ce,0,ue.length,0,D-L,qe,qe)}else N=O(X,ue,ce,D-L,F-D,z)}V.push(N),re.push(G)}function f(_,I,V,re){let oe=[],Oe=0,Y=-1;for(;a.pos>I;){let{id:L,start:D,end:j,size:F}=a;if(F>4)a.next();else{if(Y>-1&&D<Y)break;Y<0&&(Y=j-s),oe.push(L,D,j),Oe++,a.next()}}if(Oe){let L=new Uint16Array(Oe*4),D=oe[oe.length-2];for(let j=oe.length-3,F=0;j>=0;j-=3)L[F++]=oe[j],L[F++]=oe[j+1]-D,L[F++]=oe[j+2]-D,L[F++]=F;V.push(new Xn(L,oe[2]-D,n)),re.push(D-_)}}function m(_,I){return(V,re,oe)=>{let Oe=0,Y=V.length-1,L,D;if(Y>=0&&(L=V[Y])instanceof rt){if(!Y&&L.type==_&&L.length==oe)return L;(D=L.prop(We.lookAhead))&&(Oe=re[Y]+L.length+D)}return O(_,V,re,oe,Oe,I)}}function g(_,I,V,re,oe,Oe,Y,L,D){let j=[],F=[];for(;_.length>re;)j.push(_.pop()),F.push(I.pop()+V-oe);_.push(O(n.types[Y],j,F,Oe-oe,L-Oe,D)),I.push(oe-V)}function O(_,I,V,re,oe,Oe,Y){if(Oe){let L=[We.contextHash,Oe];Y=Y?[L].concat(Y):[L]}if(oe>25){let L=[We.lookAhead,oe];Y=Y?[L].concat(Y):[L]}return new rt(_,I,V,re,Y)}function b(_,I){let V=a.fork(),re=0,oe=0,Oe=0,Y=V.end-s,L={size:0,start:0,skip:0};e:for(let D=V.pos-_;V.pos>D;){let j=V.size;if(V.id==I&&j>=0){L.size=re,L.start=oe,L.skip=Oe,Oe+=4,re+=4,V.next();continue}let F=V.pos-j;if(j<0||F<D||V.start<Y)break;let z=V.id>=o?4:0,X=V.start;for(V.next();V.pos>F;){if(V.size<0)if(V.size==-3||V.size==-4)z+=4;else break e;else V.id>=o&&(z+=4);V.next()}oe=X,re+=j,Oe+=z}return(I<0||re==_)&&(L.size=re,L.start=oe,L.skip=Oe),L.size>4?L:void 0}function x(_,I,V){let{id:re,start:oe,end:Oe,size:Y}=a;if(a.next(),Y>=0&&re<o){let L=V;if(Y>4){let D=a.pos-(Y-4);for(;a.pos>D;)V=x(_,I,V)}I[--V]=L,I[--V]=Oe-_,I[--V]=oe-_,I[--V]=re}else Y==-3?c=re:Y==-4&&(u=re);return V}let w=[],S=[];for(;a.pos>0;)h(r.start||0,r.bufferStart||0,w,S,-1,0);let C=(e=r.length)!==null&&e!==void 0?e:w.length?S[0]+w[0].length:0;return new rt(l[r.topID],w.reverse(),S.reverse(),C)}const tf=new WeakMap;function xa(r,e){if(!r.isAnonymous||e instanceof Xn||e.type!=r)return 1;let t=tf.get(e);if(t==null){t=1;for(let n of e.children){if(n.type!=r||!(n instanceof rt)){t=1;break}t+=xa(r,n)}tf.set(e,t)}return t}function sh(r,e,t,n,s,i,o,a,l){let c=0;for(let g=n;g<s;g++)c+=xa(r,e[g]);let u=Math.ceil(c*1.5/8),h=[],f=[];function m(g,O,b,x,w){for(let S=b;S<x;){let C=S,_=O[S],I=xa(r,g[S]);for(S++;S<x;S++){let V=xa(r,g[S]);if(I+V>=u)break;I+=V}if(S==C+1){if(I>u){let V=g[C];m(V.children,V.positions,0,V.children.length,O[C]+w);continue}h.push(g[C])}else{let V=O[S-1]+g[S-1].length-_;h.push(sh(r,g,O,C,S,_,V,null,l))}f.push(_+w-i)}}return m(e,t,n,s,0),(a||l)(h,f,o)}class _g{constructor(){this.map=new WeakMap}setBuffer(e,t,n){let s=this.map.get(e);s||this.map.set(e,s=new Map),s.set(t,n)}getBuffer(e,t){let n=this.map.get(e);return n&&n.get(t)}set(e,t){e instanceof Gr?this.setBuffer(e.context.buffer,e.index,t):e instanceof Lt&&this.map.set(e.tree,t)}get(e){return e instanceof Gr?this.getBuffer(e.context.buffer,e.index):e instanceof Lt?this.map.get(e.tree):void 0}cursorSet(e,t){e.buffer?this.setBuffer(e.buffer.buffer,e.index,t):this.map.set(e.tree,t)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class fn{constructor(e,t,n,s,i=!1,o=!1){this.from=e,this.to=t,this.tree=n,this.offset=s,this.open=(i?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],n=!1){let s=[new fn(0,e.length,e,0,!1,n)];for(let i of t)i.to>e.length&&s.push(i);return s}static applyChanges(e,t,n=128){if(!t.length)return e;let s=[],i=1,o=e.length?e[0]:null;for(let a=0,l=0,c=0;;a++){let u=a<t.length?t[a]:null,h=u?u.fromA:1e9;if(h-l>=n)for(;o&&o.from<h;){let f=o;if(l>=f.from||h<=f.to||c){let m=Math.max(f.from,l)-c,g=Math.min(f.to,h)-c;f=m>=g?null:new fn(m,g,f.tree,f.offset+c,a>0,!!u)}if(f&&s.push(f),o.to>h)break;o=i<e.length?e[i++]:null}if(!u)break;l=u.toA,c=u.toA-u.toB}return s}}class ih{startParse(e,t,n){return typeof e=="string"&&(e=new V5(e)),n=n?n.length?n.map(s=>new kr(s.from,s.to)):[new kr(0,0)]:[new kr(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let s=this.startParse(e,t,n);for(;;){let i=s.advance();if(i)return i}}}class V5{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}}function Rg(r){return(e,t,n,s)=>new N5(e,r,t,n,s)}class rf{constructor(e,t,n,s,i,o){this.parser=e,this.parse=t,this.overlay=n,this.bracketed=s,this.target=i,this.from=o}}function nf(r){if(!r.length||r.some(e=>e.from>=e.to))throw new RangeError("Invalid inner parse ranges given: "+JSON.stringify(r))}class z5{constructor(e,t,n,s,i,o,a,l){this.parser=e,this.predicate=t,this.mounts=n,this.index=s,this.start=i,this.bracketed=o,this.target=a,this.prev=l,this.depth=0,this.ranges=[]}}const ou=new We({perNode:!0});class N5{constructor(e,t,n,s,i){this.nest=t,this.input=n,this.fragments=s,this.ranges=i,this.inner=[],this.innerDone=0,this.baseTree=null,this.stoppedAt=null,this.baseParse=e}advance(){if(this.baseParse){let n=this.baseParse.advance();if(!n)return null;if(this.baseParse=null,this.baseTree=n,this.startInner(),this.stoppedAt!=null)for(let s of this.inner)s.parse.stopAt(this.stoppedAt)}if(this.innerDone==this.inner.length){let n=this.baseTree;return this.stoppedAt!=null&&(n=new rt(n.type,n.children,n.positions,n.length,n.propValues.concat([[ou,this.stoppedAt]]))),n}let e=this.inner[this.innerDone],t=e.parse.advance();if(t){this.innerDone++;let n=Object.assign(Object.create(null),e.target.props);n[We.mounted.id]=new Ds(t,e.overlay,e.parser,e.bracketed),e.target.props=n}return null}get parsedPos(){if(this.baseParse)return 0;let e=this.input.length;for(let t=this.innerDone;t<this.inner.length;t++)this.inner[t].from<e&&(e=Math.min(e,this.inner[t].parse.parsedPos));return e}stopAt(e){if(this.stoppedAt=e,this.baseParse)this.baseParse.stopAt(e);else for(let t=this.innerDone;t<this.inner.length;t++)this.inner[t].parse.stopAt(e)}startInner(){let e=new j5(this.fragments),t=null,n=null,s=new Va(new Lt(this.baseTree,this.ranges[0].from,0,null),nt.IncludeAnonymous|nt.IgnoreMounts);e:for(let i,o;;){let a=!0,l;if(this.stoppedAt!=null&&s.from>=this.stoppedAt)a=!1;else if(e.hasNode(s)){if(t){let c=t.mounts.find(u=>u.frag.from<=s.from&&u.frag.to>=s.to&&u.mount.overlay);if(c)for(let u of c.mount.overlay){let h=u.from+c.pos,f=u.to+c.pos;h>=s.from&&f<=s.to&&!t.ranges.some(m=>m.from<f&&m.to>h)&&t.ranges.push({from:h,to:f})}}a=!1}else if(n&&(o=W5(n.ranges,s.from,s.to)))a=o!=2;else if(!s.type.isAnonymous&&(i=this.nest(s,this.input))&&(s.from<s.to||!i.overlay)){s.tree||(q5(s),t&&t.depth++,n&&n.depth++);let c=e.findMounts(s.from,i.parser);if(typeof i.overlay=="function")t=new z5(i.parser,i.overlay,c,this.inner.length,s.from,!!i.bracketed,s.tree,t);else{let u=af(this.ranges,i.overlay||(s.from<s.to?[new kr(s.from,s.to)]:[]));u.length&&nf(u),(u.length||!i.overlay)&&this.inner.push(new rf(i.parser,u.length?i.parser.startParse(this.input,lf(c,u),u):i.parser.startParse(""),i.overlay?i.overlay.map(h=>new kr(h.from-s.from,h.to-s.from)):null,!!i.bracketed,s.tree,u.length?u[0].from:s.from)),i.overlay?u.length&&(n={ranges:u,depth:0,prev:n}):a=!1}}else if(t&&(l=t.predicate(s))&&(l===!0&&(l=new kr(s.from,s.to)),l.from<l.to)){let c=t.ranges.length-1;c>=0&&t.ranges[c].to==l.from?t.ranges[c]={from:t.ranges[c].from,to:l.to}:t.ranges.push(l)}if(a&&s.firstChild())t&&t.depth++,n&&n.depth++;else for(;!s.nextSibling();){if(!s.parent())break e;if(t&&!--t.depth){let c=af(this.ranges,t.ranges);c.length&&(nf(c),this.inner.splice(t.index,0,new rf(t.parser,t.parser.startParse(this.input,lf(t.mounts,c),c),t.ranges.map(u=>new kr(u.from-t.start,u.to-t.start)),t.bracketed,t.target,c[0].from))),t=t.prev}n&&!--n.depth&&(n=n.prev)}}}}function W5(r,e,t){for(let n of r){if(n.from>=t)break;if(n.to>e)return n.from<=e&&n.to>=t?2:1}return 0}function sf(r,e,t,n,s,i){if(e<t){let o=r.buffer[e+1];n.push(r.slice(e,t,o)),s.push(o-i)}}function q5(r){let{node:e}=r,t=[],n=e.context.buffer;do t.push(r.index),r.parent();while(!r.tree);let s=r.tree,i=s.children.indexOf(n),o=s.children[i],a=o.buffer,l=[i];function c(u,h,f,m,g,O){let b=t[O],x=[],w=[];sf(o,u,b,x,w,m);let S=a[b+1],C=a[b+2];l.push(x.length);let _=O?c(b+4,a[b+3],o.set.types[a[b]],S,C-S,O-1):e.toTree();return x.push(_),w.push(S-m),sf(o,a[b+3],h,x,w,m),new rt(f,x,w,g)}s.children[i]=c(0,a.length,St.none,0,o.length,t.length-1);for(let u of l){let h=r.tree.children[u],f=r.tree.positions[u];r.yield(new Lt(h,f+r.from,u,r._tree))}}class of{constructor(e,t){this.offset=t,this.done=!1,this.cursor=e.cursor(nt.IncludeAnonymous|nt.IgnoreMounts)}moveTo(e){let{cursor:t}=this,n=e-this.offset;for(;!this.done&&t.from<n;)t.to>=e&&t.enter(n,1,nt.IgnoreOverlays|nt.ExcludeBuffers)||t.next(!1)||(this.done=!0)}hasNode(e){if(this.moveTo(e.from),!this.done&&this.cursor.from+this.offset==e.from&&this.cursor.tree)for(let t=this.cursor.tree;;){if(t==e.tree)return!0;if(t.children.length&&t.positions[0]==0&&t.children[0]instanceof rt)t=t.children[0];else break}return!1}}let j5=class{constructor(e){var t;if(this.fragments=e,this.curTo=0,this.fragI=0,e.length){let n=this.curFrag=e[0];this.curTo=(t=n.tree.prop(ou))!==null&&t!==void 0?t:n.to,this.inner=new of(n.tree,-n.offset)}else this.curFrag=this.inner=null}hasNode(e){for(;this.curFrag&&e.from>=this.curTo;)this.nextFrag();return this.curFrag&&this.curFrag.from<=e.from&&this.curTo>=e.to&&this.inner.hasNode(e)}nextFrag(){var e;if(this.fragI++,this.fragI==this.fragments.length)this.curFrag=this.inner=null;else{let t=this.curFrag=this.fragments[this.fragI];this.curTo=(e=t.tree.prop(ou))!==null&&e!==void 0?e:t.to,this.inner=new of(t.tree,-t.offset)}}findMounts(e,t){var n;let s=[];if(this.inner){this.inner.cursor.moveTo(e,1);for(let i=this.inner.cursor.node;i;i=i.parent){let o=(n=i.tree)===null||n===void 0?void 0:n.prop(We.mounted);if(o&&o.parser==t)for(let a=this.fragI;a<this.fragments.length;a++){let l=this.fragments[a];if(l.from>=i.to)break;l.tree==this.curFrag.tree&&s.push({frag:l,pos:i.from-l.offset,mount:o})}}}return s}};function af(r,e){let t=null,n=e;for(let s=1,i=0;s<r.length;s++){let o=r[s-1].to,a=r[s].from;for(;i<n.length;i++){let l=n[i];if(l.from>=a)break;l.to<=o||(t||(n=t=e.slice()),l.from<o?(t[i]=new kr(l.from,o),l.to>a&&t.splice(i+1,0,new kr(a,l.to))):l.to>a?t[i--]=new kr(a,l.to):t.splice(i--,1))}}return n}function Y5(r,e,t,n){let s=0,i=0,o=!1,a=!1,l=-1e9,c=[];for(;;){let u=s==r.length?1e9:o?r[s].to:r[s].from,h=i==e.length?1e9:a?e[i].to:e[i].from;if(o!=a){let f=Math.max(l,t),m=Math.min(u,h,n);f<m&&c.push(new kr(f,m))}if(l=Math.min(u,h),l==1e9)break;u==l&&(o?(o=!1,s++):o=!0),h==l&&(a?(a=!1,i++):a=!0)}return c}function lf(r,e){let t=[];for(let{pos:n,mount:s,frag:i}of r){let o=n+(s.overlay?s.overlay[0].from:0),a=o+s.tree.length,l=Math.max(i.from,o),c=Math.min(i.to,a);if(s.overlay){let u=s.overlay.map(f=>new kr(f.from+n,f.to+n)),h=Y5(e,u,l,c);for(let f=0,m=l;;f++){let g=f==h.length,O=g?c:h[f].from;if(O>m&&t.push(new fn(m,O,s.tree,-o,i.from>=m||i.openStart,i.to<=O||i.openEnd)),g)break;m=h[f].to}}else t.push(new fn(l,c,s.tree,-o,i.from>=o||i.openStart,i.to<=a||i.openEnd))}return t}let F5=0;class hr{constructor(e,t,n,s){this.name=e,this.set=t,this.base=n,this.modified=s,this.id=F5++}toString(){let{name:e}=this;for(let t of this.modified)t.name&&(e=`${t.name}(${e})`);return e}static define(e,t){let n=typeof e=="string"?e:"?";if(e instanceof hr&&(t=e),t?.base)throw new Error("Can not derive from a modified tag");let s=new hr(n,[],null,[]);if(s.set.push(s),t)for(let i of t.set)s.set.push(i);return s}static defineModifier(e){let t=new za(e);return n=>n.modified.indexOf(t)>-1?n:za.get(n.base||n,n.modified.concat(t).sort((s,i)=>s.id-i.id))}}let U5=0;class za{constructor(e){this.name=e,this.instances=[],this.id=U5++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find(a=>a.base==e&&G5(t,a.modified));if(n)return n;let s=[],i=new hr(e.name,s,e,t);for(let a of t)a.instances.push(i);let o=H5(t);for(let a of e.set)if(!a.modified.length)for(let l of o)s.push(za.get(a,l));return i}}function G5(r,e){return r.length==e.length&&r.every((t,n)=>t==e[n])}function H5(r){let e=[[]];for(let t=0;t<r.length;t++)for(let n=0,s=e.length;n<s;n++)e.push(e[n].concat(r[t]));return e.sort((t,n)=>n.length-t.length)}function ei(r){let e=Object.create(null);for(let t in r){let n=r[t];Array.isArray(n)||(n=[n]);for(let s of t.split(" "))if(s){let i=[],o=2,a=s;for(let h=0;;){if(a=="..."&&h>0&&h+3==s.length){o=1;break}let f=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(a);if(!f)throw new RangeError("Invalid path: "+s);if(i.push(f[0]=="*"?"":f[0][0]=='"'?JSON.parse(f[0]):f[0]),h+=f[0].length,h==s.length)break;let m=s[h++];if(h==s.length&&m=="!"){o=0;break}if(m!="/")throw new RangeError("Invalid path: "+s);a=s.slice(h)}let l=i.length-1,c=i[l];if(!c)throw new RangeError("Invalid path: "+s);let u=new eo(n,o,l>0?i.slice(0,l):null);e[c]=u.sort(e[c])}}return Bg.add(e)}const Bg=new We({combine(r,e){let t,n,s;for(;r||e;){if(!r||e&&r.depth>=e.depth?(s=e,e=e.next):(s=r,r=r.next),t&&t.mode==s.mode&&!s.context&&!t.context)continue;let i=new eo(s.tags,s.mode,s.context);t?t.next=i:n=i,t=i}return n}});class eo{constructor(e,t,n,s){this.tags=e,this.mode=t,this.context=n,this.next=s}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}}eo.empty=new eo([],2,null);function Dg(r,e){let t=Object.create(null);for(let i of r)if(!Array.isArray(i.tag))t[i.tag.id]=i.class;else for(let o of i.tag)t[o.id]=i.class;let{scope:n,all:s=null}=e||{};return{style:i=>{let o=s;for(let a of i)for(let l of a.set){let c=t[l.id];if(c){o=o?o+" "+c:c;break}}return o},scope:n}}function K5(r,e){let t=null;for(let n of r){let s=n.style(e);s&&(t=t?t+" "+s:s)}return t}function J5(r,e,t,n=0,s=r.length){let i=new eQ(n,Array.isArray(e)?e:[e],t);i.highlightRange(r.cursor(),n,s,"",i.highlighters),i.flush(s)}class eQ{constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,n,s,i){let{type:o,from:a,to:l}=e;if(a>=n||l<=t)return;o.isTop&&(i=this.highlighters.filter(m=>!m.scope||m.scope(o)));let c=s,u=tQ(e)||eo.empty,h=K5(i,u.tags);if(h&&(c&&(c+=" "),c+=h,u.mode==1&&(s+=(s?" ":"")+h)),this.startSpan(Math.max(t,a),c),u.opaque)return;let f=e.tree&&e.tree.prop(We.mounted);if(f&&f.overlay){let m=e.node.enter(f.overlay[0].from+a,1),g=this.highlighters.filter(b=>!b.scope||b.scope(f.tree.type)),O=e.firstChild();for(let b=0,x=a;;b++){let w=b<f.overlay.length?f.overlay[b]:null,S=w?w.from+a:l,C=Math.max(t,x),_=Math.min(n,S);if(C<_&&O)for(;e.from<_&&(this.highlightRange(e,C,_,s,i),this.startSpan(Math.min(_,e.to),c),!(e.to>=S||!e.nextSibling())););if(!w||S>n)break;x=w.to+a,x>t&&(this.highlightRange(m.cursor(),Math.max(t,w.from+a),Math.min(n,x),"",g),this.startSpan(Math.min(n,x),c))}O&&e.parent()}else if(e.firstChild()){f&&(s="");do if(!(e.to<=t)){if(e.from>=n)break;this.highlightRange(e,t,n,s,i),this.startSpan(Math.min(n,e.to),c)}while(e.nextSibling());e.parent()}}}function tQ(r){let e=r.type.prop(Bg);for(;e&&e.context&&!r.matchContext(e.context);)e=e.next;return e||null}const xe=hr.define,Jo=xe(),Tn=xe(),cf=xe(Tn),uf=xe(Tn),Mn=xe(),ea=xe(Mn),ql=xe(Mn),qr=xe(),Yn=xe(qr),Nr=xe(),Wr=xe(),au=xe(),Ci=xe(au),ta=xe(),$={comment:Jo,lineComment:xe(Jo),blockComment:xe(Jo),docComment:xe(Jo),name:Tn,variableName:xe(Tn),typeName:cf,tagName:xe(cf),propertyName:uf,attributeName:xe(uf),className:xe(Tn),labelName:xe(Tn),namespace:xe(Tn),macroName:xe(Tn),literal:Mn,string:ea,docString:xe(ea),character:xe(ea),attributeValue:xe(ea),number:ql,integer:xe(ql),float:xe(ql),bool:xe(Mn),regexp:xe(Mn),escape:xe(Mn),color:xe(Mn),url:xe(Mn),keyword:Nr,self:xe(Nr),null:xe(Nr),atom:xe(Nr),unit:xe(Nr),modifier:xe(Nr),operatorKeyword:xe(Nr),controlKeyword:xe(Nr),definitionKeyword:xe(Nr),moduleKeyword:xe(Nr),operator:Wr,derefOperator:xe(Wr),arithmeticOperator:xe(Wr),logicOperator:xe(Wr),bitwiseOperator:xe(Wr),compareOperator:xe(Wr),updateOperator:xe(Wr),definitionOperator:xe(Wr),typeOperator:xe(Wr),controlOperator:xe(Wr),punctuation:au,separator:xe(au),bracket:Ci,angleBracket:xe(Ci),squareBracket:xe(Ci),paren:xe(Ci),brace:xe(Ci),content:qr,heading:Yn,heading1:xe(Yn),heading2:xe(Yn),heading3:xe(Yn),heading4:xe(Yn),heading5:xe(Yn),heading6:xe(Yn),contentSeparator:xe(qr),list:xe(qr),quote:xe(qr),emphasis:xe(qr),strong:xe(qr),link:xe(qr),monospace:xe(qr),strikethrough:xe(qr),inserted:xe(),deleted:xe(),changed:xe(),invalid:xe(),meta:ta,documentMeta:xe(ta),annotation:xe(ta),processingInstruction:xe(ta),definition:hr.defineModifier("definition"),constant:hr.defineModifier("constant"),function:hr.defineModifier("function"),standard:hr.defineModifier("standard"),local:hr.defineModifier("local"),special:hr.defineModifier("special")};for(let r in $){let e=$[r];e instanceof hr&&(e.name=r)}Dg([{tag:$.link,class:"tok-link"},{tag:$.heading,class:"tok-heading"},{tag:$.emphasis,class:"tok-emphasis"},{tag:$.strong,class:"tok-strong"},{tag:$.keyword,class:"tok-keyword"},{tag:$.atom,class:"tok-atom"},{tag:$.bool,class:"tok-bool"},{tag:$.url,class:"tok-url"},{tag:$.labelName,class:"tok-labelName"},{tag:$.inserted,class:"tok-inserted"},{tag:$.deleted,class:"tok-deleted"},{tag:$.literal,class:"tok-literal"},{tag:$.string,class:"tok-string"},{tag:$.number,class:"tok-number"},{tag:[$.regexp,$.escape,$.special($.string)],class:"tok-string2"},{tag:$.variableName,class:"tok-variableName"},{tag:$.local($.variableName),class:"tok-variableName tok-local"},{tag:$.definition($.variableName),class:"tok-variableName tok-definition"},{tag:$.special($.variableName),class:"tok-variableName2"},{tag:$.definition($.propertyName),class:"tok-propertyName tok-definition"},{tag:$.typeName,class:"tok-typeName"},{tag:$.namespace,class:"tok-namespace"},{tag:$.className,class:"tok-className"},{tag:$.macroName,class:"tok-macroName"},{tag:$.propertyName,class:"tok-propertyName"},{tag:$.operator,class:"tok-operator"},{tag:$.comment,class:"tok-comment"},{tag:$.meta,class:"tok-meta"},{tag:$.invalid,class:"tok-invalid"},{tag:$.punctuation,class:"tok-punctuation"}]);var jl;const ns=new We;function oh(r){return Se.define({combine:r?e=>e.concat(r):void 0})}const ah=new We;class wr{constructor(e,t,n=[],s=""){this.data=e,this.name=s,Ke.prototype.hasOwnProperty("tree")||Object.defineProperty(Ke.prototype,"tree",{get(){return ct(this)}}),this.parser=t,this.extension=[In.of(this),Ke.languageData.of((i,o,a)=>{let l=hf(i,o,a),c=l.type.prop(ns);if(!c)return[];let u=i.facet(c),h=l.type.prop(ah);if(h){let f=l.resolve(o-l.from,a);for(let m of h)if(m.test(f,i)){let g=i.facet(m.facet);return m.type=="replace"?g:g.concat(u)}}return u})].concat(n)}isActiveAt(e,t,n=-1){return hf(e,t,n).type.prop(ns)==this.data}findRegions(e){let t=e.facet(In);if(t?.data==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],s=(i,o)=>{if(i.prop(ns)==this.data){n.push({from:o,to:o+i.length});return}let a=i.prop(We.mounted);if(a){if(a.tree.prop(ns)==this.data){if(a.overlay)for(let l of a.overlay)n.push({from:l.from+o,to:l.to+o});else n.push({from:o,to:o+i.length});return}else if(a.overlay){let l=n.length;if(s(a.tree,a.overlay[0].from+o),n.length>l)return}}for(let l=0;l<i.children.length;l++){let c=i.children[l];c instanceof rt&&s(c,i.positions[l]+o)}};return s(ct(e),0),n}get allowsNesting(){return!0}}wr.setState=ze.define();function hf(r,e,t){let n=r.facet(In),s=ct(r).topNode;if(!n||n.allowsNesting)for(let i=s;i;i=i.enter(e,t,nt.ExcludeBuffers|nt.EnterBracketed))i.type.isTop&&(s=i);return s}class Ys extends wr{constructor(e,t,n){super(e,t,[],n),this.parser=t}static define(e){let t=oh(e.languageData);return new Ys(t,e.parser.configure({props:[ns.add(n=>n.isTop?t:void 0)]}),e.name)}configure(e,t){return new Ys(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function ct(r){let e=r.field(wr.state,!1);return e?e.tree:rt.empty}class rQ{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let n=this.cursorPos-this.string.length;return e<n||t>=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}}let Qi=null;class to{constructor(e,t,n=[],s,i,o,a,l){this.parser=e,this.state=t,this.fragments=n,this.tree=s,this.treeLen=i,this.viewport=o,this.skipped=a,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new to(e,t,[],rt.empty,0,n,[],null)}startParse(){return this.parser.startParse(new rQ(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=rt.empty&&this.isDone(t??this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var n;if(typeof e=="number"){let s=Date.now()+e;e=()=>Date.now()>s}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t<this.state.doc.length&&this.parse.stopAt(t);;){let s=this.parse.advance();if(s)if(this.fragments=this.withoutTempSkipped(fn.addTree(s,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(n=this.parse.stoppedAt)!==null&&n!==void 0?n:this.state.doc.length,this.tree=s,this.parse=null,this.treeLen<(t??this.state.doc.length))this.parse=this.startParse();else return!0;if(e())return!1}})}takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(fn.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Qi;Qi=this;try{return e()}finally{Qi=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=df(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:s,treeLen:i,viewport:o,skipped:a}=this;if(this.takeTree(),!e.empty){let l=[];if(e.iterChangedRanges((c,u,h,f)=>l.push({fromA:c,toA:u,fromB:h,toB:f})),n=fn.applyChanges(n,l),s=rt.empty,i=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){a=[];for(let c of this.skipped){let u=e.mapPos(c.from,1),h=e.mapPos(c.to,-1);u<h&&a.push({from:u,to:h})}}}return new to(this.parser,t,n,s,i,o,a,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let t=this.skipped.length;for(let n=0;n<this.skipped.length;n++){let{from:s,to:i}=this.skipped[n];s<e.to&&i>e.from&&(this.fragments=df(this.fragments,s,i),this.skipped.splice(n--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends ih{createParse(t,n,s){let i=s[0].from,o=s[s.length-1].to;return{parsedPos:i,advance(){let l=Qi;if(l){for(let c of s)l.tempSkipped.push(c);e&&(l.scheduleOn=l.scheduleOn?Promise.all([l.scheduleOn,e]):e)}return this.parsedPos=o,new rt(St.none,[],[],o-i)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return Qi}}function df(r,e,t){return fn.applyChanges(r,[{fromA:e,toA:t,fromB:e,toB:t}])}class Fs{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),n=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,n)||t.takeTree(),new Fs(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=to.create(e.facet(In).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new Fs(n)}}wr.state=Pt.define({create:Fs.init,update(r,e){for(let t of e.effects)if(t.is(wr.setState))return t.value;return e.startState.facet(In)!=e.state.facet(In)?Fs.init(e.state):r.apply(e)}});let Zg=r=>{let e=setTimeout(()=>r(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(Zg=r=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(r,{timeout:400})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});const Yl=typeof navigator<"u"&&(!((jl=navigator.scheduling)===null||jl===void 0)&&jl.isInputPending)?()=>navigator.scheduling.isInputPending():null,nQ=Ot.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(wr.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(wr.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=Zg(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEnd<t&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=t+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:n,viewport:{to:s}}=this.view,i=n.field(wr.state);if(i.tree==i.context.tree&&i.context.isDone(s+1e5))return;let o=Date.now()+Math.min(this.chunkBudget,100,e&&!Yl?Math.max(25,e.timeRemaining()-5):1e9),a=i.context.treeLen<s&&n.doc.length>s+1e3,l=i.context.work(()=>Yl&&Yl()||Date.now()>o,s+(a?0:1e5));this.chunkBudget-=Date.now()-t,(l||this.chunkBudget<=0)&&(i.context.takeTree(),this.view.dispatch({effects:wr.setState.of(new Fs(i.context))})),this.chunkBudget>0&&!(l&&!a)&&this.scheduleWork(),this.checkAsyncSchedule(i.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>er(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),In=Se.define({combine(r){return r.length?r[0]:null},enables:r=>[wr.state,nQ,ke.contentAttributes.compute([r],e=>{let t=e.facet(r);return t&&t.name?{"data-language":t.name}:{}})]});class ro{constructor(e,t=[]){this.language=e,this.support=t,this.extension=[e,t]}}class Na{constructor(e,t,n,s,i,o=void 0){this.name=e,this.alias=t,this.extensions=n,this.filename=s,this.loadFunc=i,this.support=o,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then(e=>this.support=e,e=>{throw this.loading=null,e}))}static of(e){let{load:t,support:n}=e;if(!t){if(!n)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(n)}return new Na(e.name,(e.alias||[]).concat(e.name).map(s=>s.toLowerCase()),e.extensions||[],e.filename,t,n)}static matchFilename(e,t){for(let s of e)if(s.filename&&s.filename.test(t))return s;let n=/\.([^.]+)$/.exec(t);if(n){for(let s of e)if(s.extensions.indexOf(n[1])>-1)return s}return null}static matchLanguageName(e,t,n=!0){t=t.toLowerCase();for(let s of e)if(s.alias.some(i=>i==t))return s;if(n)for(let s of e)for(let i of s.alias){let o=t.indexOf(i);if(o>-1&&(i.length>2||!/\w/.test(t[o-1])&&!/\w/.test(t[o+i.length])))return s}return null}}const sQ=Se.define(),$o=Se.define({combine:r=>{if(!r.length)return" ";let e=r[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(r[0]));return e}});function Wa(r){let e=r.facet($o);return e.charCodeAt(0)==9?r.tabSize*e.length:e.length}function no(r,e){let t="",n=r.tabSize,s=r.facet($o)[0];if(s==" "){for(;e>=n;)t+=" ",e-=n;s=" "}for(let i=0;i<e;i++)t+=s;return t}function lh(r,e){r instanceof Ke&&(r=new xl(r));for(let n of r.state.facet(sQ)){let s=n(r,e);if(s!==void 0)return s}let t=ct(r.state);return t.length>=e?iQ(r,t,e):null}class xl{constructor(e,t={}){this.state=e,this.options=t,this.unit=Wa(e)}lineAt(e,t=1){let n=this.state.doc.lineAt(e),{simulateBreak:s,simulateDoubleBreak:i}=this.options;return s!=null&&s>=n.from&&s<=n.to?i&&s==e?{text:"",from:e}:(t<0?s<e:s<=e)?{text:n.text.slice(s-n.from),from:s}:{text:n.text.slice(0,s-n.from),from:n.from}:n}textAfterPos(e,t=1){if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return"";let{text:n,from:s}=this.lineAt(e,t);return n.slice(e-s,Math.min(n.length,e+100-s))}column(e,t=1){let{text:n,from:s}=this.lineAt(e,t),i=this.countColumn(n,e-s),o=this.options.overrideIndentation?this.options.overrideIndentation(s):-1;return o>-1&&(i+=o-this.countColumn(n,n.search(/\S|$/))),i}countColumn(e,t=e.length){return Rr(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:n,from:s}=this.lineAt(e,t),i=this.options.overrideIndentation;if(i){let o=i(s);if(o>-1)return o}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const Co=new We;function iQ(r,e,t){let n=e.resolveStack(t),s=e.resolveInner(t,-1).resolve(t,0).enterUnfinishedNodesBefore(t);if(s!=n.node){let i=[];for(let o=s;o&&!(o.from<n.node.from||o.to>n.node.to||o.from==n.node.from&&o.type==n.node.type);o=o.parent)i.push(o);for(let o=i.length-1;o>=0;o--)n={node:i[o],next:n}}return Eg(n,r,t)}function Eg(r,e,t){for(let n=r;n;n=n.next){let s=aQ(n.node);if(s)return s(ch.create(e,t,n))}return 0}function oQ(r){return r.pos==r.options.simulateBreak&&r.options.simulateDoubleBreak}function aQ(r){let e=r.type.prop(Co);if(e)return e;let t=r.firstChild,n;if(t&&(n=t.type.prop(We.closedBy))){let s=r.lastChild,i=s&&n.indexOf(s.name)>-1;return o=>Lg(o,!0,1,void 0,i&&!oQ(o)?s.from:void 0)}return r.parent==null?lQ:null}function lQ(){return 0}class ch extends xl{constructor(e,t,n){super(e.state,e.options),this.base=e,this.pos=t,this.context=n}get node(){return this.context.node}static create(e,t,n){return new ch(e,t,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let n=e.resolve(t.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(cQ(n,e))break;t=this.state.doc.lineAt(n.from)}return this.lineIndent(t.from)}continue(){return Eg(this.context.next,this.base,this.pos)}}function cQ(r,e){for(let t=e;t;t=t.parent)if(r==t)return!0;return!1}function uQ(r){let e=r.node,t=e.childAfter(e.from),n=e.lastChild;if(!t)return null;let s=r.options.simulateBreak,i=r.state.doc.lineAt(t.from),o=s==null||s<=i.from?i.to:Math.min(i.to,s);for(let a=t.to;;){let l=e.childAfter(a);if(!l||l==n)return null;if(!l.type.isSkipped){if(l.from>=o)return null;let c=/^ */.exec(i.text.slice(t.to-i.from))[0].length;return{from:t.from,to:t.to+c}}a=l.to}}function hQ({closing:r,align:e=!0,units:t=1}){return n=>Lg(n,e,t,r)}function Lg(r,e,t,n,s){let i=r.textAfter,o=i.match(/^\s*/)[0].length,a=n&&i.slice(o,o+n.length)==n||s==r.pos+o,l=e?uQ(r):null;return l?a?r.column(l.from):r.column(l.to):r.baseIndent+(a?0:r.unit*t)}const dQ=r=>r.baseIndent;function ya({except:r,units:e=1}={}){return t=>{let n=r&&r.test(t.textAfter);return t.baseIndent+(n?0:e*t.unit)}}const fQ=200;function mQ(){return Ke.transactionFilter.of(r=>{if(!r.docChanged||!r.isUserEvent("input.type")&&!r.isUserEvent("input.complete"))return r;let e=r.startState.languageDataAt("indentOnInput",r.startState.selection.main.head);if(!e.length)return r;let t=r.newDoc,{head:n}=r.newSelection.main,s=t.lineAt(n);if(n>s.from+fQ)return r;let i=t.sliceString(s.from,n);if(!e.some(c=>c.test(i)))return r;let{state:o}=r,a=-1,l=[];for(let{head:c}of o.selection.ranges){let u=o.doc.lineAt(c);if(u.from==a)continue;a=u.from;let h=lh(o,u.from);if(h==null)continue;let f=/^\s*/.exec(u.text)[0],m=no(o,h);f!=m&&l.push({from:u.from,to:u.from+f.length,insert:m})}return l.length?[r,{changes:l,sequential:!0}]:r})}const Xg=Se.define(),ti=new We;function Ig(r){let e=r.firstChild,t=r.lastChild;return e&&e.to<t.from?{from:e.to,to:t.type.isError?r.to:t.from}:null}function pQ(r,e,t){let n=ct(r);if(n.length<t)return null;let s=n.resolveStack(t,1),i=null;for(let o=s;o;o=o.next){let a=o.node;if(a.to<=t||a.from>t)continue;if(i&&a.from<e)break;let l=a.type.prop(ti);if(l&&(a.to<n.length-50||n.length==r.doc.length||!gQ(a))){let c=l(a,r);c&&c.from<=t&&c.from>=e&&c.to>t&&(i=c)}}return i}function gQ(r){let e=r.lastChild;return e&&e.to==r.to&&e.type.isError}function qa(r,e,t){for(let n of r.facet(Xg)){let s=n(r,e,t);if(s)return s}return pQ(r,e,t)}function Vg(r,e){let t=e.mapPos(r.from,1),n=e.mapPos(r.to,-1);return t>=n?void 0:{from:t,to:n}}const yl=ze.define({map:Vg}),Qo=ze.define({map:Vg});function zg(r){let e=[];for(let{head:t}of r.state.selection.ranges)e.some(n=>n.from<=t&&n.to>=t)||e.push(r.lineBlockAt(t));return e}const fs=Pt.define({create(){return Ee.none},update(r,e){e.isUserEvent("delete")&&e.changes.iterChangedRanges((t,n)=>r=ff(r,t,n)),r=r.map(e.changes);for(let t of e.effects)if(t.is(yl)&&!OQ(r,t.value.from,t.value.to)){let{preparePlaceholder:n}=e.state.facet(qg),s=n?Ee.replace({widget:new SQ(n(e.state,t.value))}):mf;r=r.update({add:[s.range(t.value.from,t.value.to)]})}else t.is(Qo)&&(r=r.update({filter:(n,s)=>t.value.from!=n||t.value.to!=s,filterFrom:t.value.from,filterTo:t.value.to}));return e.selection&&(r=ff(r,e.selection.main.head)),r},provide:r=>ke.decorations.from(r),toJSON(r,e){let t=[];return r.between(0,e.doc.length,(n,s)=>{t.push(n,s)}),t},fromJSON(r){if(!Array.isArray(r)||r.length%2)throw new RangeError("Invalid JSON for fold state");let e=[];for(let t=0;t<r.length;){let n=r[t++],s=r[t++];if(typeof n!="number"||typeof s!="number")throw new RangeError("Invalid JSON for fold state");e.push(mf.range(n,s))}return Ee.set(e,!0)}});function ff(r,e,t=e){let n=!1;return r.between(e,t,(s,i)=>{s<t&&i>e&&(n=!0)}),n?r.update({filterFrom:e,filterTo:t,filter:(s,i)=>s>=t||i<=e}):r}function ja(r,e,t){var n;let s=null;return(n=r.field(fs,!1))===null||n===void 0||n.between(e,t,(i,o)=>{(!s||s.from>i)&&(s={from:i,to:o})}),s}function OQ(r,e,t){let n=!1;return r.between(e,e,(s,i)=>{s==e&&i==t&&(n=!0)}),n}function Ng(r,e){return r.field(fs,!1)?e:e.concat(ze.appendConfig.of(jg()))}const vQ=r=>{for(let e of zg(r)){let t=qa(r.state,e.from,e.to);if(t)return r.dispatch({effects:Ng(r.state,[yl.of(t),Wg(r,t)])}),!0}return!1},bQ=r=>{if(!r.state.field(fs,!1))return!1;let e=[];for(let t of zg(r)){let n=ja(r.state,t.from,t.to);n&&e.push(Qo.of(n),Wg(r,n,!1))}return e.length&&r.dispatch({effects:e}),e.length>0};function Wg(r,e,t=!0){let n=r.state.doc.lineAt(e.from).number,s=r.state.doc.lineAt(e.to).number;return ke.announce.of(`${r.state.phrase(t?"Folded lines":"Unfolded lines")} ${n} ${r.state.phrase("to")} ${s}.`)}const xQ=r=>{let{state:e}=r,t=[];for(let n=0;n<e.doc.length;){let s=r.lineBlockAt(n),i=qa(e,s.from,s.to);i&&t.push(yl.of(i)),n=(i?r.lineBlockAt(i.to):s).to+1}return t.length&&r.dispatch({effects:Ng(r.state,t)}),!!t.length},yQ=r=>{let e=r.state.field(fs,!1);if(!e||!e.size)return!1;let t=[];return e.between(0,r.state.doc.length,(n,s)=>{t.push(Qo.of({from:n,to:s}))}),r.dispatch({effects:t}),!0},kQ=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:vQ},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:bQ},{key:"Ctrl-Alt-[",run:xQ},{key:"Ctrl-Alt-]",run:yQ}],wQ={placeholderDOM:null,preparePlaceholder:null,placeholderText:"…"},qg=Se.define({combine(r){return tn(r,wQ)}});function jg(r){return[fs,QQ]}function Yg(r,e){let{state:t}=r,n=t.facet(qg),s=o=>{let a=r.lineBlockAt(r.posAtDOM(o.target)),l=ja(r.state,a.from,a.to);l&&r.dispatch({effects:Qo.of(l)}),o.preventDefault()};if(n.placeholderDOM)return n.placeholderDOM(r,s,e);let i=document.createElement("span");return i.textContent=n.placeholderText,i.setAttribute("aria-label",t.phrase("folded code")),i.title=t.phrase("unfold"),i.className="cm-foldPlaceholder",i.onclick=s,i}const mf=Ee.replace({widget:new class extends rn{toDOM(r){return Yg(r,null)}}});class SQ extends rn{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return Yg(e,this.value)}}const $Q={openText:"⌄",closedText:"›",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class Fl extends vn{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}}function CQ(r={}){let e={...$Q,...r},t=new Fl(e,!0),n=new Fl(e,!1),s=Ot.fromClass(class{constructor(o){this.from=o.viewport.from,this.markers=this.buildMarkers(o)}update(o){(o.docChanged||o.viewportChanged||o.startState.facet(In)!=o.state.facet(In)||o.startState.field(fs,!1)!=o.state.field(fs,!1)||ct(o.startState)!=ct(o.state)||e.foldingChanged(o))&&(this.markers=this.buildMarkers(o.view))}buildMarkers(o){let a=new gn;for(let l of o.viewportLineBlocks){let c=ja(o.state,l.from,l.to)?n:qa(o.state,l.from,l.to)?t:null;c&&a.add(l.from,l.from,c)}return a.finish()}}),{domEventHandlers:i}=e;return[s,S5({class:"cm-foldGutter",markers(o){var a;return((a=o.plugin(s))===null||a===void 0?void 0:a.markers)||Ge.empty},initialSpacer(){return new Fl(e,!1)},domEventHandlers:{...i,click:(o,a,l)=>{if(i.click&&i.click(o,a,l))return!0;let c=ja(o.state,a.from,a.to);if(c)return o.dispatch({effects:Qo.of(c)}),!0;let u=qa(o.state,a.from,a.to);return u?(o.dispatch({effects:yl.of(u)}),!0):!1}}}),jg()]}const QQ=ke.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class Po{constructor(e,t){this.specs=e;let n;function s(a){let l=Zn.newName();return(n||(n=Object.create(null)))["."+l]=a,l}const i=typeof t.all=="string"?t.all:t.all?s(t.all):void 0,o=t.scope;this.scope=o instanceof wr?a=>a.prop(ns)==o.data:o?a=>a==o:void 0,this.style=Dg(e.map(a=>({tag:a.tag,class:a.class||s(Object.assign({},a,{tag:null}))})),{all:i}).style,this.module=n?new Zn(n):null,this.themeType=t.themeType}static define(e,t){return new Po(e,t||{})}}const lu=Se.define(),Fg=Se.define({combine(r){return r.length?[r[0]]:null}});function Ul(r){let e=r.facet(lu);return e.length?e:r.facet(Fg)}function Ug(r,e){let t=[TQ],n;return r instanceof Po&&(r.module&&t.push(ke.styleModule.of(r.module)),n=r.themeType),e?.fallback?t.push(Fg.of(r)):n?t.push(lu.computeN([ke.darkTheme],s=>s.facet(ke.darkTheme)==(n=="dark")?[r]:[])):t.push(lu.of(r)),t}class PQ{constructor(e){this.markCache=Object.create(null),this.tree=ct(e.state),this.decorations=this.buildDeco(e,Ul(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=ct(e.state),n=Ul(e.state),s=n!=Ul(e.startState),{viewport:i}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length<i.to&&!s&&t.type==this.tree.type&&o>=i.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||s)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n),this.decoratedTo=i.to)}buildDeco(e,t){if(!t||!this.tree.length)return Ee.none;let n=new gn;for(let{from:s,to:i}of e.visibleRanges)J5(this.tree,t,(o,a,l)=>{n.add(o,a,this.markCache[l]||(this.markCache[l]=Ee.mark({class:l})))},s,i);return n.finish()}}const TQ=bn.high(Ot.fromClass(PQ,{decorations:r=>r.decorations})),MQ=Po.define([{tag:$.meta,color:"#404740"},{tag:$.link,textDecoration:"underline"},{tag:$.heading,textDecoration:"underline",fontWeight:"bold"},{tag:$.emphasis,fontStyle:"italic"},{tag:$.strong,fontWeight:"bold"},{tag:$.strikethrough,textDecoration:"line-through"},{tag:$.keyword,color:"#708"},{tag:[$.atom,$.bool,$.url,$.contentSeparator,$.labelName],color:"#219"},{tag:[$.literal,$.inserted],color:"#164"},{tag:[$.string,$.deleted],color:"#a11"},{tag:[$.regexp,$.escape,$.special($.string)],color:"#e40"},{tag:$.definition($.variableName),color:"#00f"},{tag:$.local($.variableName),color:"#30a"},{tag:[$.typeName,$.namespace],color:"#085"},{tag:$.className,color:"#167"},{tag:[$.special($.variableName),$.macroName],color:"#256"},{tag:$.definition($.propertyName),color:"#00c"},{tag:$.comment,color:"#940"},{tag:$.invalid,color:"#f00"}]),AQ=ke.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Gg=1e4,Hg="()[]{}",Kg=Se.define({combine(r){return tn(r,{afterCursor:!0,brackets:Hg,maxScanDistance:Gg,renderMatch:BQ})}}),_Q=Ee.mark({class:"cm-matchingBracket"}),RQ=Ee.mark({class:"cm-nonmatchingBracket"});function BQ(r){let e=[],t=r.matched?_Q:RQ;return e.push(t.range(r.start.from,r.start.to)),r.end&&e.push(t.range(r.end.from,r.end.to)),e}function pf(r){let e=[],t=r.facet(Kg);for(let n of r.selection.ranges){if(!n.empty)continue;let s=Hr(r,n.head,-1,t)||n.head>0&&Hr(r,n.head-1,1,t)||t.afterCursor&&(Hr(r,n.head,1,t)||n.head<r.doc.length&&Hr(r,n.head+1,-1,t));s&&(e=e.concat(t.renderMatch(s,r)))}return Ee.set(e,!0)}const DQ=Ot.fromClass(class{constructor(r){this.paused=!1,this.decorations=pf(r.state)}update(r){(r.docChanged||r.selectionSet||this.paused)&&(r.view.composing?(this.decorations=this.decorations.map(r.changes),this.paused=!0):(this.decorations=pf(r.state),this.paused=!1))}},{decorations:r=>r.decorations}),ZQ=[DQ,AQ];function EQ(r={}){return[Kg.of(r),ZQ]}const Jg=new We;function cu(r,e,t){let n=r.prop(e<0?We.openedBy:We.closedBy);if(n)return n;if(r.name.length==1){let s=t.indexOf(r.name);if(s>-1&&s%2==(e<0?1:0))return[t[s+e]]}return null}function uu(r){let e=r.type.prop(Jg);return e?e(r.node):r}function Hr(r,e,t,n={}){let s=n.maxScanDistance||Gg,i=n.brackets||Hg,o=ct(r),a=o.resolveInner(e,t);for(let l=a;l;l=l.parent){let c=cu(l.type,t,i);if(c&&l.from<l.to){let u=uu(l);if(u&&(t>0?e>=u.from&&e<u.to:e>u.from&&e<=u.to))return LQ(r,e,t,l,u,c,i)}}return XQ(r,e,t,o,a.type,s,i)}function LQ(r,e,t,n,s,i,o){let a=n.parent,l={from:s.from,to:s.to},c=0,u=a?.cursor();if(u&&(t<0?u.childBefore(n.from):u.childAfter(n.to)))do if(t<0?u.to<=n.from:u.from>=n.to){if(c==0&&i.indexOf(u.type.name)>-1&&u.from<u.to){let h=uu(u);return{start:l,end:h?{from:h.from,to:h.to}:void 0,matched:!0}}else if(cu(u.type,t,o))c++;else if(cu(u.type,-t,o)){if(c==0){let h=uu(u);return{start:l,end:h&&h.from<h.to?{from:h.from,to:h.to}:void 0,matched:!1}}c--}}while(t<0?u.prevSibling():u.nextSibling());return{start:l,matched:!1}}function XQ(r,e,t,n,s,i,o){let a=t<0?r.sliceDoc(e-1,e):r.sliceDoc(e,e+1),l=o.indexOf(a);if(l<0||l%2==0!=t>0)return null;let c={from:t<0?e-1:e,to:t>0?e+1:e},u=r.doc.iterRange(e,t>0?r.doc.length:0),h=0;for(let f=0;!u.next().done&&f<=i;){let m=u.value;t<0&&(f+=m.length);let g=e+f*t;for(let O=t>0?0:m.length-1,b=t>0?m.length:-1;O!=b;O+=t){let x=o.indexOf(m[O]);if(!(x<0||n.resolveInner(g+O,1).type!=s))if(x%2==0==t>0)h++;else{if(h==1)return{start:c,end:{from:g+O,to:g+O+1},matched:x>>1==l>>1};h--}}t>0&&(f+=m.length)}return u.done?{start:c,matched:!1}:null}const IQ=Object.create(null),gf=[St.none],Of=[],vf=Object.create(null),VQ=Object.create(null);for(let[r,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])VQ[r]=zQ(IQ,e);function Gl(r,e){Of.indexOf(r)>-1||(Of.push(r),console.warn(e))}function zQ(r,e){let t=[];for(let a of e.split(" ")){let l=[];for(let c of a.split(".")){let u=r[c]||$[c];u?typeof u=="function"?l.length?l=l.map(u):Gl(c,`Modifier ${c} used at start of tag`):l.length?Gl(c,`Tag ${c} used as modifier`):l=Array.isArray(u)?u:[u]:Gl(c,`Unknown highlighting tag ${c}`)}for(let c of l)t.push(c)}if(!t.length)return 0;let n=e.replace(/ /g,"_"),s=n+" "+t.map(a=>a.id),i=vf[s];if(i)return i.id;let o=vf[s]=St.define({id:gf.length,name:n,props:[ei({[n]:t})]});return gf.push(o),o.id}lt.RTL,lt.LTR;const NQ=r=>{let{state:e}=r,t=e.doc.lineAt(e.selection.main.from),n=hh(r.state,t.from);return n.line?WQ(r):n.block?jQ(r):!1};function uh(r,e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let s=r(e,t);return s?(n(t.update(s)),!0):!1}}const WQ=uh(UQ,0),qQ=uh(eO,0),jQ=uh((r,e)=>eO(r,e,FQ(e)),0);function hh(r,e){let t=r.languageDataAt("commentTokens",e,1);return t.length?t[0]:{}}const Pi=50;function YQ(r,{open:e,close:t},n,s){let i=r.sliceDoc(n-Pi,n),o=r.sliceDoc(s,s+Pi),a=/\s*$/.exec(i)[0].length,l=/^\s*/.exec(o)[0].length,c=i.length-a;if(i.slice(c-e.length,c)==e&&o.slice(l,l+t.length)==t)return{open:{pos:n-a,margin:a&&1},close:{pos:s+l,margin:l&&1}};let u,h;s-n<=2*Pi?u=h=r.sliceDoc(n,s):(u=r.sliceDoc(n,n+Pi),h=r.sliceDoc(s-Pi,s));let f=/^\s*/.exec(u)[0].length,m=/\s*$/.exec(h)[0].length,g=h.length-m-t.length;return u.slice(f,f+e.length)==e&&h.slice(g,g+t.length)==t?{open:{pos:n+f+e.length,margin:/\s/.test(u.charAt(f+e.length))?1:0},close:{pos:s-m-t.length,margin:/\s/.test(h.charAt(g-1))?1:0}}:null}function FQ(r){let e=[];for(let t of r.selection.ranges){let n=r.doc.lineAt(t.from),s=t.to<=n.to?n:r.doc.lineAt(t.to);s.from>n.from&&s.from==t.to&&(s=t.to==n.to+1?n:r.doc.lineAt(t.to-1));let i=e.length-1;i>=0&&e[i].to>n.from?e[i].to=s.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:s.to})}return e}function eO(r,e,t=e.selection.ranges){let n=t.map(i=>hh(e,i.from).block);if(!n.every(i=>i))return null;let s=t.map((i,o)=>YQ(e,n[o],i.from,i.to));if(r!=2&&!s.every(i=>i))return{changes:e.changes(t.map((i,o)=>s[o]?[]:[{from:i.from,insert:n[o].open+" "},{from:i.to,insert:" "+n[o].close}]))};if(r!=1&&s.some(i=>i)){let i=[];for(let o=0,a;o<s.length;o++)if(a=s[o]){let l=n[o],{open:c,close:u}=a;i.push({from:c.pos-l.open.length,to:c.pos+c.margin},{from:u.pos-u.margin,to:u.pos+l.close.length})}return{changes:i}}return null}function UQ(r,e,t=e.selection.ranges){let n=[],s=-1;e:for(let{from:i,to:o}of t){let a=n.length,l=1e9,c;for(let u=i;u<=o;){let h=e.doc.lineAt(u);if(c==null&&(c=hh(e,h.from).line,!c))continue e;if(h.from>s&&(i==o||o>h.from)){s=h.from;let f=/^\s*/.exec(h.text)[0].length,m=f==h.length,g=h.text.slice(f,f+c.length)==c?f:-1;f<h.text.length&&f<l&&(l=f),n.push({line:h,comment:g,token:c,indent:f,empty:m,single:!1})}u=h.to+1}if(l<1e9)for(let u=a;u<n.length;u++)n[u].indent<n[u].line.text.length&&(n[u].indent=l);n.length==a+1&&(n[a].single=!0)}if(r!=2&&n.some(i=>i.comment<0&&(!i.empty||i.single))){let i=[];for(let{line:a,token:l,indent:c,empty:u,single:h}of n)(h||!u)&&i.push({from:a.from+c,insert:l+" "});let o=e.changes(i);return{changes:o,selection:e.selection.map(o,1)}}else if(r!=1&&n.some(i=>i.comment>=0)){let i=[];for(let{line:o,comment:a,token:l}of n)if(a>=0){let c=o.from+a,u=c+l.length;o.text[u-o.from]==" "&&u++,i.push({from:c,to:u})}return{changes:i}}return null}const hu=xn.define(),GQ=xn.define(),HQ=Se.define(),tO=Se.define({combine(r){return tn(r,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,s)=>e(n,s)||t(n,s)})}}),rO=Pt.define({create(){return Kr.empty},update(r,e){let t=e.state.facet(tO),n=e.annotation(hu);if(n){let l=tr.fromTransaction(e,n.selection),c=n.side,u=c==0?r.undone:r.done;return l?u=Ya(u,u.length,t.minDepth,l):u=iO(u,e.startState.selection),new Kr(c==0?n.rest:u,c==0?u:n.rest)}let s=e.annotation(GQ);if((s=="full"||s=="before")&&(r=r.isolate()),e.annotation(vt.addToHistory)===!1)return e.changes.empty?r:r.addMapping(e.changes.desc);let i=tr.fromTransaction(e),o=e.annotation(vt.time),a=e.annotation(vt.userEvent);return i?r=r.addChanges(i,o,a,t,e):e.selection&&(r=r.addSelection(e.startState.selection,o,a,t.newGroupDelay)),(s=="full"||s=="after")&&(r=r.isolate()),r},toJSON(r){return{done:r.done.map(e=>e.toJSON()),undone:r.undone.map(e=>e.toJSON())}},fromJSON(r){return new Kr(r.done.map(tr.fromJSON),r.undone.map(tr.fromJSON))}});function KQ(r={}){return[rO,tO.of(r),ke.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?nO:e.inputType=="historyRedo"?du:null;return n?(e.preventDefault(),n(t)):!1}})]}function kl(r,e){return function({state:t,dispatch:n}){if(!e&&t.readOnly)return!1;let s=t.field(rO,!1);if(!s)return!1;let i=s.pop(r,t,e);return i?(n(i),!0):!1}}const nO=kl(0,!1),du=kl(1,!1),JQ=kl(0,!0),eP=kl(1,!0);class tr{constructor(e,t,n,s,i){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=s,this.selectionsAfter=i}setSelAfter(e){return new tr(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(n=this.startSelection)===null||n===void 0?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map(s=>s.toJSON())}}static fromJSON(e){return new tr(e.changes&&yt.fromJSON(e.changes),[],e.mapped&&Jr.fromJSON(e.mapped),e.startSelection&&J.fromJSON(e.startSelection),e.selectionsAfter.map(J.fromJSON))}static fromTransaction(e,t){let n=Sr;for(let s of e.startState.facet(HQ)){let i=s(e);i.length&&(n=n.concat(i))}return!n.length&&e.changes.empty?null:new tr(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,Sr)}static selection(e){return new tr(void 0,Sr,void 0,void 0,e)}}function Ya(r,e,t,n){let s=e+1>t+20?e-t-1:0,i=r.slice(s,e);return i.push(n),i}function tP(r,e){let t=[],n=!1;return r.iterChangedRanges((s,i)=>t.push(s,i)),e.iterChangedRanges((s,i,o,a)=>{for(let l=0;l<t.length;){let c=t[l++],u=t[l++];a>=c&&o<=u&&(n=!0)}}),n}function rP(r,e){return r.ranges.length==e.ranges.length&&r.ranges.filter((t,n)=>t.empty!=e.ranges[n].empty).length===0}function sO(r,e){return r.length?e.length?r.concat(e):r:e}const Sr=[],nP=200;function iO(r,e){if(r.length){let t=r[r.length-1],n=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-nP));return n.length&&n[n.length-1].eq(e)?r:(n.push(e),Ya(r,r.length-1,1e9,t.setSelAfter(n)))}else return[tr.selection([e])]}function sP(r){let e=r[r.length-1],t=r.slice();return t[r.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function Hl(r,e){if(!r.length)return r;let t=r.length,n=Sr;for(;t;){let s=iP(r[t-1],e,n);if(s.changes&&!s.changes.empty||s.effects.length){let i=r.slice(0,t);return i[t-1]=s,i}else e=s.mapped,t--,n=s.selectionsAfter}return n.length?[tr.selection(n)]:Sr}function iP(r,e,t){let n=sO(r.selectionsAfter.length?r.selectionsAfter.map(a=>a.map(e)):Sr,t);if(!r.changes)return tr.selection(n);let s=r.changes.map(e),i=e.mapDesc(r.changes,!0),o=r.mapped?r.mapped.composeDesc(i):i;return new tr(s,ze.mapEffects(r.effects,e),o,r.startSelection.map(i),n)}const oP=/^(input\.type|delete)($|\.)/;class Kr{constructor(e,t,n=0,s=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=s}isolate(){return this.prevTime?new Kr(this.done,this.undone):this}addChanges(e,t,n,s,i){let o=this.done,a=o[o.length-1];return a&&a.changes&&!a.changes.empty&&e.changes&&(!n||oP.test(n))&&(!a.selectionsAfter.length&&t-this.prevTime<s.newGroupDelay&&s.joinToEvent(i,tP(a.changes,e.changes))||n=="input.type.compose")?o=Ya(o,o.length-1,s.minDepth,new tr(e.changes.compose(a.changes),sO(ze.mapEffects(e.effects,a.changes),a.effects),a.mapped,a.startSelection,Sr)):o=Ya(o,o.length,s.minDepth,e),new Kr(o,Sr,t,n)}addSelection(e,t,n,s){let i=this.done.length?this.done[this.done.length-1].selectionsAfter:Sr;return i.length>0&&t-this.prevTime<s&&n==this.prevUserEvent&&n&&/^select($|\.)/.test(n)&&rP(i[i.length-1],e)?this:new Kr(iO(this.done,e),this.undone,t,n)}addMapping(e){return new Kr(Hl(this.done,e),Hl(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,n){let s=e==0?this.done:this.undone;if(s.length==0)return null;let i=s[s.length-1],o=i.selectionsAfter[0]||(i.startSelection?i.startSelection.map(i.changes.invertedDesc,1):t.selection);if(n&&i.selectionsAfter.length)return t.update({selection:i.selectionsAfter[i.selectionsAfter.length-1],annotations:hu.of({side:e,rest:sP(s),selection:o}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(i.changes){let a=s.length==1?Sr:s.slice(0,s.length-1);return i.mapped&&(a=Hl(a,i.mapped)),t.update({changes:i.changes,selection:i.startSelection,effects:i.effects,annotations:hu.of({side:e,rest:a,selection:o}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}}Kr.empty=new Kr(Sr,Sr);const aP=[{key:"Mod-z",run:nO,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:du,preventDefault:!0},{linux:"Ctrl-Shift-z",run:du,preventDefault:!0},{key:"Mod-u",run:JQ,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:eP,preventDefault:!0}];function ri(r,e){return J.create(r.ranges.map(e),r.mainIndex)}function Dr(r,e){return r.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function Zr({state:r,dispatch:e},t){let n=ri(r.selection,t);return n.eq(r.selection,!0)?!1:(e(Dr(r,n)),!0)}function wl(r,e){return J.cursor(e?r.to:r.from)}function oO(r,e){return Zr(r,t=>t.empty?r.moveByChar(t,e):wl(t,e))}function Xt(r){return r.textDirectionAt(r.state.selection.main.head)==lt.LTR}const aO=r=>oO(r,!Xt(r)),lO=r=>oO(r,Xt(r));function cO(r,e){return Zr(r,t=>t.empty?r.moveByGroup(t,e):wl(t,e))}const lP=r=>cO(r,!Xt(r)),cP=r=>cO(r,Xt(r));function uP(r,e,t){if(e.type.prop(t))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(r.sliceDoc(e.from,e.to)))||e.firstChild}function Sl(r,e,t){let n=ct(r).resolveInner(e.head),s=t?We.closedBy:We.openedBy;for(let l=e.head;;){let c=t?n.childAfter(l):n.childBefore(l);if(!c)break;uP(r,c,s)?n=c:l=t?c.to:c.from}let i=n.type.prop(s),o,a;return i&&(o=t?Hr(r,n.from,1):Hr(r,n.to,-1))&&o.matched?a=t?o.end.to:o.end.from:a=t?n.to:n.from,J.cursor(a,t?-1:1)}const hP=r=>Zr(r,e=>Sl(r.state,e,!Xt(r))),dP=r=>Zr(r,e=>Sl(r.state,e,Xt(r)));function uO(r,e){return Zr(r,t=>{if(!t.empty)return wl(t,e);let n=r.moveVertically(t,e);return n.head!=t.head?n:r.moveToLineBoundary(t,e)})}const hO=r=>uO(r,!1),dO=r=>uO(r,!0);function fO(r){let e=r.scrollDOM.clientHeight<r.scrollDOM.scrollHeight-2,t=0,n=0,s;if(e){for(let i of r.state.facet(ke.scrollMargins)){let o=i(r);o?.top&&(t=Math.max(o?.top,t)),o?.bottom&&(n=Math.max(o?.bottom,n))}s=r.scrollDOM.clientHeight-t-n}else s=(r.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:t,marginBottom:n,selfScroll:e,height:Math.max(r.defaultLineHeight,s-5)}}function mO(r,e){let t=fO(r),{state:n}=r,s=ri(n.selection,o=>o.empty?r.moveVertically(o,e,t.height):wl(o,e));if(s.eq(n.selection))return!1;let i;if(t.selfScroll){let o=r.coordsAtPos(n.selection.main.head),a=r.scrollDOM.getBoundingClientRect(),l=a.top+t.marginTop,c=a.bottom-t.marginBottom;o&&o.top>l&&o.bottom<c&&(i=ke.scrollIntoView(s.main.head,{y:"start",yMargin:o.top-l}))}return r.dispatch(Dr(n,s),{effects:i}),!0}const bf=r=>mO(r,!1),fu=r=>mO(r,!0);function zn(r,e,t){let n=r.lineBlockAt(e.head),s=r.moveToLineBoundary(e,t);if(s.head==e.head&&s.head!=(t?n.to:n.from)&&(s=r.moveToLineBoundary(e,t,!1)),!t&&s.head==n.from&&n.length){let i=/^\s*/.exec(r.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;i&&e.head!=n.from+i&&(s=J.cursor(n.from+i))}return s}const fP=r=>Zr(r,e=>zn(r,e,!0)),mP=r=>Zr(r,e=>zn(r,e,!1)),pP=r=>Zr(r,e=>zn(r,e,!Xt(r))),gP=r=>Zr(r,e=>zn(r,e,Xt(r))),OP=r=>Zr(r,e=>J.cursor(r.lineBlockAt(e.head).from,1)),vP=r=>Zr(r,e=>J.cursor(r.lineBlockAt(e.head).to,-1));function bP(r,e,t){let n=!1,s=ri(r.selection,i=>{let o=Hr(r,i.head,-1)||Hr(r,i.head,1)||i.head>0&&Hr(r,i.head-1,1)||i.head<r.doc.length&&Hr(r,i.head+1,-1);if(!o||!o.end)return i;n=!0;let a=o.start.from==i.head?o.end.to:o.end.from;return J.cursor(a)});return n?(e(Dr(r,s)),!0):!1}const xP=({state:r,dispatch:e})=>bP(r,e);function Pr(r,e){let t=ri(r.state.selection,n=>{let s=e(n);return J.range(n.anchor,s.head,s.goalColumn,s.bidiLevel||void 0)});return t.eq(r.state.selection)?!1:(r.dispatch(Dr(r.state,t)),!0)}function pO(r,e){return Pr(r,t=>r.moveByChar(t,e))}const gO=r=>pO(r,!Xt(r)),OO=r=>pO(r,Xt(r));function vO(r,e){return Pr(r,t=>r.moveByGroup(t,e))}const yP=r=>vO(r,!Xt(r)),kP=r=>vO(r,Xt(r)),wP=r=>Pr(r,e=>Sl(r.state,e,!Xt(r))),SP=r=>Pr(r,e=>Sl(r.state,e,Xt(r)));function bO(r,e){return Pr(r,t=>r.moveVertically(t,e))}const xO=r=>bO(r,!1),yO=r=>bO(r,!0);function kO(r,e){return Pr(r,t=>r.moveVertically(t,e,fO(r).height))}const xf=r=>kO(r,!1),yf=r=>kO(r,!0),$P=r=>Pr(r,e=>zn(r,e,!0)),CP=r=>Pr(r,e=>zn(r,e,!1)),QP=r=>Pr(r,e=>zn(r,e,!Xt(r))),PP=r=>Pr(r,e=>zn(r,e,Xt(r))),TP=r=>Pr(r,e=>J.cursor(r.lineBlockAt(e.head).from)),MP=r=>Pr(r,e=>J.cursor(r.lineBlockAt(e.head).to)),kf=({state:r,dispatch:e})=>(e(Dr(r,{anchor:0})),!0),wf=({state:r,dispatch:e})=>(e(Dr(r,{anchor:r.doc.length})),!0),Sf=({state:r,dispatch:e})=>(e(Dr(r,{anchor:r.selection.main.anchor,head:0})),!0),$f=({state:r,dispatch:e})=>(e(Dr(r,{anchor:r.selection.main.anchor,head:r.doc.length})),!0),AP=({state:r,dispatch:e})=>(e(r.update({selection:{anchor:0,head:r.doc.length},userEvent:"select"})),!0),_P=({state:r,dispatch:e})=>{let t=$l(r).map(({from:n,to:s})=>J.range(n,Math.min(s+1,r.doc.length)));return e(r.update({selection:J.create(t),userEvent:"select"})),!0},RP=({state:r,dispatch:e})=>{let t=ri(r.selection,n=>{let s=ct(r),i=s.resolveStack(n.from,1);if(n.empty){let o=s.resolveStack(n.from,-1);o.node.from>=i.node.from&&o.node.to<=i.node.to&&(i=o)}for(let o=i;o;o=o.next){let{node:a}=o;if((a.from<n.from&&a.to>=n.to||a.to>n.to&&a.from<=n.from)&&o.next)return J.range(a.to,a.from)}return n});return t.eq(r.selection)?!1:(e(Dr(r,t)),!0)};function wO(r,e){let{state:t}=r,n=t.selection,s=t.selection.ranges.slice();for(let i of t.selection.ranges){let o=t.doc.lineAt(i.head);if(e?o.to<r.state.doc.length:o.from>0)for(let a=i;;){let l=r.moveVertically(a,e);if(l.head<o.from||l.head>o.to){s.some(c=>c.head==l.head)||s.push(l);break}else{if(l.head==a.head)break;a=l}}}return s.length==n.ranges.length?!1:(r.dispatch(Dr(t,J.create(s,s.length-1))),!0)}const BP=r=>wO(r,!1),DP=r=>wO(r,!0),ZP=({state:r,dispatch:e})=>{let t=r.selection,n=null;return t.ranges.length>1?n=J.create([t.main]):t.main.empty||(n=J.create([J.cursor(t.main.head)])),n?(e(Dr(r,n)),!0):!1};function To(r,e){if(r.state.readOnly)return!1;let t="delete.selection",{state:n}=r,s=n.changeByRange(i=>{let{from:o,to:a}=i;if(o==a){let l=e(i);l<o?(t="delete.backward",l=ra(r,l,!1)):l>o&&(t="delete.forward",l=ra(r,l,!0)),o=Math.min(o,l),a=Math.max(a,l)}else o=ra(r,o,!1),a=ra(r,a,!0);return o==a?{range:i}:{changes:{from:o,to:a},range:J.cursor(o,o<i.head?-1:1)}});return s.changes.empty?!1:(r.dispatch(n.update(s,{scrollIntoView:!0,userEvent:t,effects:t=="delete.selection"?ke.announce.of(n.phrase("Selection deleted")):void 0})),!0)}function ra(r,e,t){if(r instanceof ke)for(let n of r.state.facet(ke.atomicRanges).map(s=>s(r)))n.between(e,e,(s,i)=>{s<e&&i>e&&(e=t?i:s)});return e}const SO=(r,e,t)=>To(r,n=>{let s=n.from,{state:i}=r,o=i.doc.lineAt(s),a,l;if(t&&!e&&s>o.from&&s<o.from+200&&!/[^ \t]/.test(a=o.text.slice(0,s-o.from))){if(a[a.length-1]==" ")return s-1;let c=Rr(a,i.tabSize),u=c%Wa(i)||Wa(i);for(let h=0;h<u&&a[a.length-1-h]==" ";h++)s--;l=s}else l=Qt(o.text,s-o.from,e,e)+o.from,l==s&&o.number!=(e?i.doc.lines:1)?l+=e?1:-1:!e&&/[\ufe00-\ufe0f]/.test(o.text.slice(l-o.from,s-o.from))&&(l=Qt(o.text,l-o.from,!1,!1)+o.from);return l}),mu=r=>SO(r,!1,!0),$O=r=>SO(r,!0,!1),CO=(r,e)=>To(r,t=>{let n=t.head,{state:s}=r,i=s.doc.lineAt(n),o=s.charCategorizer(n);for(let a=null;;){if(n==(e?i.to:i.from)){n==t.head&&i.number!=(e?s.doc.lines:1)&&(n+=e?1:-1);break}let l=Qt(i.text,n-i.from,e)+i.from,c=i.text.slice(Math.min(n,l)-i.from,Math.max(n,l)-i.from),u=o(c);if(a!=null&&u!=a)break;(c!=" "||n!=t.head)&&(a=u),n=l}return n}),QO=r=>CO(r,!1),EP=r=>CO(r,!0),LP=r=>To(r,e=>{let t=r.lineBlockAt(e.head).to;return e.head<t?t:Math.min(r.state.doc.length,e.head+1)}),XP=r=>To(r,e=>{let t=r.moveToLineBoundary(e,!1).head;return e.head>t?t:Math.max(0,e.head-1)}),IP=r=>To(r,e=>{let t=r.moveToLineBoundary(e,!0).head;return e.head<t?t:Math.min(r.state.doc.length,e.head+1)}),VP=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let t=r.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:et.of(["",""])},range:J.cursor(n.from)}));return e(r.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},zP=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let t=r.changeByRange(n=>{if(!n.empty||n.from==0||n.from==r.doc.length)return{range:n};let s=n.from,i=r.doc.lineAt(s),o=s==i.from?s-1:Qt(i.text,s-i.from,!1)+i.from,a=s==i.to?s+1:Qt(i.text,s-i.from,!0)+i.from;return{changes:{from:o,to:a,insert:r.doc.slice(s,a).append(r.doc.slice(o,s))},range:J.cursor(a)}});return t.changes.empty?!1:(e(r.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function $l(r){let e=[],t=-1;for(let n of r.selection.ranges){let s=r.doc.lineAt(n.from),i=r.doc.lineAt(n.to);if(!n.empty&&n.to==i.from&&(i=r.doc.lineAt(n.to-1)),t>=s.number){let o=e[e.length-1];o.to=i.to,o.ranges.push(n)}else e.push({from:s.from,to:i.to,ranges:[n]});t=i.number+1}return e}function PO(r,e,t){if(r.readOnly)return!1;let n=[],s=[];for(let i of $l(r)){if(t?i.to==r.doc.length:i.from==0)continue;let o=r.doc.lineAt(t?i.to+1:i.from-1),a=o.length+1;if(t){n.push({from:i.to,to:o.to},{from:i.from,insert:o.text+r.lineBreak});for(let l of i.ranges)s.push(J.range(Math.min(r.doc.length,l.anchor+a),Math.min(r.doc.length,l.head+a)))}else{n.push({from:o.from,to:i.from},{from:i.to,insert:r.lineBreak+o.text});for(let l of i.ranges)s.push(J.range(l.anchor-a,l.head-a))}}return n.length?(e(r.update({changes:n,scrollIntoView:!0,selection:J.create(s,r.selection.mainIndex),userEvent:"move.line"})),!0):!1}const NP=({state:r,dispatch:e})=>PO(r,e,!1),WP=({state:r,dispatch:e})=>PO(r,e,!0);function TO(r,e,t){if(r.readOnly)return!1;let n=[];for(let i of $l(r))t?n.push({from:i.from,insert:r.doc.slice(i.from,i.to)+r.lineBreak}):n.push({from:i.to,insert:r.lineBreak+r.doc.slice(i.from,i.to)});let s=r.changes(n);return e(r.update({changes:s,selection:r.selection.map(s,t?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const qP=({state:r,dispatch:e})=>TO(r,e,!1),jP=({state:r,dispatch:e})=>TO(r,e,!0),YP=r=>{if(r.state.readOnly)return!1;let{state:e}=r,t=e.changes($l(e).map(({from:s,to:i})=>(s>0?s--:i<e.doc.length&&i++,{from:s,to:i}))),n=ri(e.selection,s=>{let i;if(r.lineWrapping){let o=r.lineBlockAt(s.head),a=r.coordsAtPos(s.head,s.assoc||1);a&&(i=o.bottom+r.documentTop-a.bottom+r.defaultLineHeight/2)}return r.moveVertically(s,!0,i)}).map(t);return r.dispatch({changes:t,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0};function FP(r,e){if(/\(\)|\[\]|\{\}/.test(r.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=ct(r).resolveInner(e),n=t.childBefore(e),s=t.childAfter(e),i;return n&&s&&n.to<=e&&s.from>=e&&(i=n.type.prop(We.closedBy))&&i.indexOf(s.name)>-1&&r.doc.lineAt(n.to).from==r.doc.lineAt(s.from).from&&!/\S/.test(r.sliceDoc(n.to,s.from))?{from:n.to,to:s.from}:null}const Cf=MO(!1),UP=MO(!0);function MO(r){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(s=>{let{from:i,to:o}=s,a=e.doc.lineAt(i),l=!r&&i==o&&FP(e,i);r&&(i=o=(o<=a.to?a:e.doc.lineAt(o)).to);let c=new xl(e,{simulateBreak:i,simulateDoubleBreak:!!l}),u=lh(c,i);for(u==null&&(u=Rr(/^\s*/.exec(e.doc.lineAt(i).text)[0],e.tabSize));o<a.to&&/\s/.test(a.text[o-a.from]);)o++;l?{from:i,to:o}=l:i>a.from&&i<a.from+100&&!/\S/.test(a.text.slice(0,i))&&(i=a.from);let h=["",no(e,u)];return l&&h.push(no(e,c.lineIndent(a.from,-1))),{changes:{from:i,to:o,insert:et.of(h)},range:J.cursor(i+1+h[1].length)}});return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}}function dh(r,e){let t=-1;return r.changeByRange(n=>{let s=[];for(let o=n.from;o<=n.to;){let a=r.doc.lineAt(o);a.number>t&&(n.empty||n.to>a.from)&&(e(a,s,n),t=a.number),o=a.to+1}let i=r.changes(s);return{changes:s,range:J.range(i.mapPos(n.anchor,1),i.mapPos(n.head,1))}})}const GP=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let t=Object.create(null),n=new xl(r,{overrideIndentation:i=>{let o=t[i];return o??-1}}),s=dh(r,(i,o,a)=>{let l=lh(n,i.from);if(l==null)return;/\S/.test(i.text)||(l=0);let c=/^\s*/.exec(i.text)[0],u=no(r,l);(c!=u||a.from<i.from+c.length)&&(t[i.from]=l,o.push({from:i.from,to:i.from+c.length,insert:u}))});return s.changes.empty||e(r.update(s,{userEvent:"indent"})),!0},HP=({state:r,dispatch:e})=>r.readOnly?!1:(e(r.update(dh(r,(t,n)=>{n.push({from:t.from,insert:r.facet($o)})}),{userEvent:"input.indent"})),!0),KP=({state:r,dispatch:e})=>r.readOnly?!1:(e(r.update(dh(r,(t,n)=>{let s=/^\s*/.exec(t.text)[0];if(!s)return;let i=Rr(s,r.tabSize),o=0,a=no(r,Math.max(0,i-Wa(r)));for(;o<s.length&&o<a.length&&s.charCodeAt(o)==a.charCodeAt(o);)o++;n.push({from:t.from+o,to:t.from+s.length,insert:a.slice(o)})}),{userEvent:"delete.dedent"})),!0),JP=r=>(r.setTabFocusMode(),!0),e3=[{key:"Ctrl-b",run:aO,shift:gO,preventDefault:!0},{key:"Ctrl-f",run:lO,shift:OO},{key:"Ctrl-p",run:hO,shift:xO},{key:"Ctrl-n",run:dO,shift:yO},{key:"Ctrl-a",run:OP,shift:TP},{key:"Ctrl-e",run:vP,shift:MP},{key:"Ctrl-d",run:$O},{key:"Ctrl-h",run:mu},{key:"Ctrl-k",run:LP},{key:"Ctrl-Alt-h",run:QO},{key:"Ctrl-o",run:VP},{key:"Ctrl-t",run:zP},{key:"Ctrl-v",run:fu}],t3=[{key:"ArrowLeft",run:aO,shift:gO,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:lP,shift:yP,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:pP,shift:QP,preventDefault:!0},{key:"ArrowRight",run:lO,shift:OO,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:cP,shift:kP,preventDefault:!0},{mac:"Cmd-ArrowRight",run:gP,shift:PP,preventDefault:!0},{key:"ArrowUp",run:hO,shift:xO,preventDefault:!0},{mac:"Cmd-ArrowUp",run:kf,shift:Sf},{mac:"Ctrl-ArrowUp",run:bf,shift:xf},{key:"ArrowDown",run:dO,shift:yO,preventDefault:!0},{mac:"Cmd-ArrowDown",run:wf,shift:$f},{mac:"Ctrl-ArrowDown",run:fu,shift:yf},{key:"PageUp",run:bf,shift:xf},{key:"PageDown",run:fu,shift:yf},{key:"Home",run:mP,shift:CP,preventDefault:!0},{key:"Mod-Home",run:kf,shift:Sf},{key:"End",run:fP,shift:$P,preventDefault:!0},{key:"Mod-End",run:wf,shift:$f},{key:"Enter",run:Cf,shift:Cf},{key:"Mod-a",run:AP},{key:"Backspace",run:mu,shift:mu,preventDefault:!0},{key:"Delete",run:$O,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:QO,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:EP,preventDefault:!0},{mac:"Mod-Backspace",run:XP,preventDefault:!0},{mac:"Mod-Delete",run:IP,preventDefault:!0}].concat(e3.map(r=>({mac:r.key,run:r.run,shift:r.shift}))),r3=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:hP,shift:wP},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:dP,shift:SP},{key:"Alt-ArrowUp",run:NP},{key:"Shift-Alt-ArrowUp",run:qP},{key:"Alt-ArrowDown",run:WP},{key:"Shift-Alt-ArrowDown",run:jP},{key:"Mod-Alt-ArrowUp",run:BP},{key:"Mod-Alt-ArrowDown",run:DP},{key:"Escape",run:ZP},{key:"Mod-Enter",run:UP},{key:"Alt-l",mac:"Ctrl-l",run:_P},{key:"Mod-i",run:RP,preventDefault:!0},{key:"Mod-[",run:KP},{key:"Mod-]",run:HP},{key:"Mod-Alt-\\",run:GP},{key:"Shift-Mod-k",run:YP},{key:"Shift-Mod-\\",run:xP},{key:"Mod-/",run:NQ},{key:"Alt-A",run:qQ},{key:"Ctrl-m",mac:"Shift-Alt-m",run:JP}].concat(t3),Qf=typeof String.prototype.normalize=="function"?r=>r.normalize("NFKD"):r=>r;class Us{constructor(e,t,n=0,s=e.length,i,o){this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(n,s),this.bufferStart=n,this.normalize=i?a=>i(Qf(a)):Qf,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return Gt(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=Eu(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=Yr(e);let s=this.normalize(t);if(s.length)for(let i=0,o=n;;i++){let a=s.charCodeAt(i),l=this.match(a,o,this.bufferPos+this.bufferStart);if(i==s.length-1){if(l)return this.value=l,this;break}o==n&&i<t.length&&t.charCodeAt(i)==a&&o++}}}match(e,t,n){let s=null;for(let i=0;i<this.matches.length;i+=2){let o=this.matches[i],a=!1;this.query.charCodeAt(o)==e&&(o==this.query.length-1?s={from:this.matches[i+1],to:n}:(this.matches[i]++,a=!0)),a||(this.matches.splice(i,2),i-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?s={from:t,to:n}:this.matches.push(1,t)),s&&this.test&&!this.test(s.from,s.to,this.buffer,this.bufferStart)&&(s=null),s}}typeof Symbol<"u"&&(Us.prototype[Symbol.iterator]=function(){return this});const AO={from:-1,to:-1,match:/.*/.exec("")},fh="gm"+(/x/.unicode==null?"":"u");class _O{constructor(e,t,n,s=0,i=e.length){if(this.text=e,this.to=i,this.curLine="",this.done=!1,this.value=AO,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new RO(e,t,n,s,i);this.re=new RegExp(t,fh+(n?.ignoreCase?"i":"")),this.test=n?.test,this.iter=e.iter();let o=e.lineAt(s);this.curLineStart=o.from,this.matchPos=Fa(e,s),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,s=n+t[0].length;if(this.matchPos=Fa(this.text,s+(n==s?1:0)),n==this.curLineStart+this.curLine.length&&this.nextLine(),(n<s||n>this.value.to)&&(!this.test||this.test(n,s,t)))return this.value={from:n,to:s,match:t},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}}const Kl=new WeakMap;class Zs{constructor(e,t){this.from=e,this.text=t}get to(){return this.from+this.text.length}static get(e,t,n){let s=Kl.get(e);if(!s||s.from>=n||s.to<=t){let a=new Zs(t,e.sliceString(t,n));return Kl.set(e,a),a}if(s.from==t&&s.to==n)return s;let{text:i,from:o}=s;return o>t&&(i=e.sliceString(t,o)+i,o=t),s.to<n&&(i+=e.sliceString(s.to,n)),Kl.set(e,new Zs(o,i)),new Zs(t,i.slice(t-o,n-o))}}class RO{constructor(e,t,n,s,i){this.text=e,this.to=i,this.done=!1,this.value=AO,this.matchPos=Fa(e,s),this.re=new RegExp(t,fh+(n?.ignoreCase?"i":"")),this.test=n?.test,this.flat=Zs.get(e,s,this.chunkEnd(s+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let n=this.flat.from+t.index,s=n+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(n,s,t)))return this.value={from:n,to:s,match:t},this.matchPos=Fa(this.text,s+(n==s?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Zs.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(_O.prototype[Symbol.iterator]=RO.prototype[Symbol.iterator]=function(){return this});function n3(r){try{return new RegExp(r,fh),!0}catch{return!1}}function Fa(r,e){if(e>=r.length)return e;let t=r.lineAt(e),n;for(;e<t.to&&(n=t.text.charCodeAt(e-t.from))>=56320&&n<57344;)e++;return e}const s3=r=>{let{state:e}=r,t=String(e.doc.lineAt(r.state.selection.main.head).number),{close:n,result:s}=x5(r,{label:e.phrase("Go to line"),input:{type:"text",name:"line",value:t},focus:!0,submitLabel:e.phrase("go")});return s.then(i=>{let o=i&&/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(i.elements.line.value);if(!o){r.dispatch({effects:n});return}let a=e.doc.lineAt(e.selection.main.head),[,l,c,u,h]=o,f=u?+u.slice(1):0,m=c?+c:a.number;if(c&&h){let b=m/100;l&&(b=b*(l=="-"?-1:1)+a.number/e.doc.lines),m=Math.round(e.doc.lines*b)}else c&&l&&(m=m*(l=="-"?-1:1)+a.number);let g=e.doc.line(Math.max(1,Math.min(e.doc.lines,m))),O=J.cursor(g.from+Math.max(0,Math.min(f,g.length)));r.dispatch({effects:[n,ke.scrollIntoView(O.from,{y:"center"})],selection:O})}),!0},i3={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},o3=Se.define({combine(r){return tn(r,i3,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})}});function a3(r){return[d3,h3]}const l3=Ee.mark({class:"cm-selectionMatch"}),c3=Ee.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Pf(r,e,t,n){return(t==0||r(e.sliceDoc(t-1,t))!=ft.Word)&&(n==e.doc.length||r(e.sliceDoc(n,n+1))!=ft.Word)}function u3(r,e,t,n){return r(e.sliceDoc(t,t+1))==ft.Word&&r(e.sliceDoc(n-1,n))==ft.Word}const h3=Ot.fromClass(class{constructor(r){this.decorations=this.getDeco(r)}update(r){(r.selectionSet||r.docChanged||r.viewportChanged)&&(this.decorations=this.getDeco(r.view))}getDeco(r){let e=r.state.facet(o3),{state:t}=r,n=t.selection;if(n.ranges.length>1)return Ee.none;let s=n.main,i,o=null;if(s.empty){if(!e.highlightWordAroundCursor)return Ee.none;let l=t.wordAt(s.head);if(!l)return Ee.none;o=t.charCategorizer(s.head),i=t.sliceDoc(l.from,l.to)}else{let l=s.to-s.from;if(l<e.minSelectionLength||l>200)return Ee.none;if(e.wholeWords){if(i=t.sliceDoc(s.from,s.to),o=t.charCategorizer(s.head),!(Pf(o,t,s.from,s.to)&&u3(o,t,s.from,s.to)))return Ee.none}else if(i=t.sliceDoc(s.from,s.to),!i)return Ee.none}let a=[];for(let l of r.visibleRanges){let c=new Us(t.doc,i,l.from,l.to);for(;!c.next().done;){let{from:u,to:h}=c.value;if((!o||Pf(o,t,u,h))&&(s.empty&&u<=s.from&&h>=s.to?a.push(c3.range(u,h)):(u>=s.to||h<=s.from)&&a.push(l3.range(u,h)),a.length>e.maxMatches))return Ee.none}}return Ee.set(a)}},{decorations:r=>r.decorations}),d3=ke.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),f3=({state:r,dispatch:e})=>{let{selection:t}=r,n=J.create(t.ranges.map(s=>r.wordAt(s.head)||J.cursor(s.head)),t.mainIndex);return n.eq(t)?!1:(e(r.update({selection:n})),!0)};function m3(r,e){let{main:t,ranges:n}=r.selection,s=r.wordAt(t.head),i=s&&s.from==t.from&&s.to==t.to;for(let o=!1,a=new Us(r.doc,e,n[n.length-1].to);;)if(a.next(),a.done){if(o)return null;a=new Us(r.doc,e,0,Math.max(0,n[n.length-1].from-1)),o=!0}else{if(o&&n.some(l=>l.from==a.value.from))continue;if(i){let l=r.wordAt(a.value.from);if(!l||l.from!=a.value.from||l.to!=a.value.to)continue}return a.value}}const p3=({state:r,dispatch:e})=>{let{ranges:t}=r.selection;if(t.some(i=>i.from===i.to))return f3({state:r,dispatch:e});let n=r.sliceDoc(t[0].from,t[0].to);if(r.selection.ranges.some(i=>r.sliceDoc(i.from,i.to)!=n))return!1;let s=m3(r,n);return s?(e(r.update({selection:r.selection.addRange(J.range(s.from,s.to),!1),effects:ke.scrollIntoView(s.to)})),!0):!1},ni=Se.define({combine(r){return tn(r,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new T3(e),scrollToMatch:e=>ke.scrollIntoView(e)})}});class BO{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||n3(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord,this.test=e.test}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(t,n)=>n=="n"?`
|
|
22
|
+
`:n=="r"?"\r":n=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord&&this.test==e.test}create(){return this.regexp?new y3(this):new v3(this)}getCursor(e,t=0,n){let s=e.doc?e:Ke.create({doc:e});return n==null&&(n=s.doc.length),this.regexp?Cs(this,s,t,n):$s(this,s,t,n)}}class DO{constructor(e){this.spec=e}}function g3(r,e,t){return(n,s,i,o)=>{if(t&&!t(n,s,i,o))return!1;let a=n>=o&&s<=o+i.length?i.slice(n-o,s-o):e.doc.sliceString(n,s);return r(a,e,n,s)}}function $s(r,e,t,n){let s;return r.wholeWord&&(s=O3(e.doc,e.charCategorizer(e.selection.main.head))),r.test&&(s=g3(r.test,e,s)),new Us(e.doc,r.unquoted,t,n,r.caseSensitive?void 0:i=>i.toLowerCase(),s)}function O3(r,e){return(t,n,s,i)=>((i>t||i+s.length<n)&&(i=Math.max(0,t-2),s=r.sliceString(i,Math.min(r.length,n+2))),(e(Ua(s,t-i))!=ft.Word||e(Ga(s,t-i))!=ft.Word)&&(e(Ga(s,n-i))!=ft.Word||e(Ua(s,n-i))!=ft.Word))}class v3 extends DO{constructor(e){super(e)}nextMatch(e,t,n){let s=$s(this.spec,e,n,e.doc.length).nextOverlapping();if(s.done){let i=Math.min(e.doc.length,t+this.spec.unquoted.length);s=$s(this.spec,e,0,i).nextOverlapping()}return s.done||s.value.from==t&&s.value.to==n?null:s.value}prevMatchInRange(e,t,n){for(let s=n;;){let i=Math.max(t,s-1e4-this.spec.unquoted.length),o=$s(this.spec,e,i,s),a=null;for(;!o.nextOverlapping().done;)a=o.value;if(a)return a;if(i==t)return null;s-=1e4}}prevMatch(e,t,n){let s=this.prevMatchInRange(e,0,t);return s||(s=this.prevMatchInRange(e,Math.max(0,n-this.spec.unquoted.length),e.doc.length)),s&&(s.from!=t||s.to!=n)?s:null}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,t){let n=$s(this.spec,e,0,e.doc.length),s=[];for(;!n.next().done;){if(s.length>=t)return null;s.push(n.value)}return s}highlight(e,t,n,s){let i=$s(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!i.next().done;)s(i.value.from,i.value.to)}}function b3(r,e,t){return(n,s,i)=>(!t||t(n,s,i))&&r(i[0],e,n,s)}function Cs(r,e,t,n){let s;return r.wholeWord&&(s=x3(e.charCategorizer(e.selection.main.head))),r.test&&(s=b3(r.test,e,s)),new _O(e.doc,r.search,{ignoreCase:!r.caseSensitive,test:s},t,n)}function Ua(r,e){return r.slice(Qt(r,e,!1),e)}function Ga(r,e){return r.slice(e,Qt(r,e))}function x3(r){return(e,t,n)=>!n[0].length||(r(Ua(n.input,n.index))!=ft.Word||r(Ga(n.input,n.index))!=ft.Word)&&(r(Ga(n.input,n.index+n[0].length))!=ft.Word||r(Ua(n.input,n.index+n[0].length))!=ft.Word)}class y3 extends DO{nextMatch(e,t,n){let s=Cs(this.spec,e,n,e.doc.length).next();return s.done&&(s=Cs(this.spec,e,0,t).next()),s.done?null:s.value}prevMatchInRange(e,t,n){for(let s=1;;s++){let i=Math.max(t,n-s*1e4),o=Cs(this.spec,e,i,n),a=null;for(;!o.next().done;)a=o.value;if(a&&(i==t||a.from>i+10))return a;if(i==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&]|\d+)/g,(t,n)=>{if(n=="&")return e.match[0];if(n=="$")return"$";for(let s=n.length;s>0;s--){let i=+n.slice(0,s);if(i>0&&i<e.match.length)return e.match[i]+n.slice(s)}return t})}matchAll(e,t){let n=Cs(this.spec,e,0,e.doc.length),s=[];for(;!n.next().done;){if(s.length>=t)return null;s.push(n.value)}return s}highlight(e,t,n,s){let i=Cs(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!i.next().done;)s(i.value.from,i.value.to)}}const so=ze.define(),mh=ze.define(),Rn=Pt.define({create(r){return new Jl(pu(r).create(),null)},update(r,e){for(let t of e.effects)t.is(so)?r=new Jl(t.value.create(),r.panel):t.is(mh)&&(r=new Jl(r.query,t.value?ph:null));return r},provide:r=>Ki.from(r,e=>e.panel)});class Jl{constructor(e,t){this.query=e,this.panel=t}}const k3=Ee.mark({class:"cm-searchMatch"}),w3=Ee.mark({class:"cm-searchMatch cm-searchMatch-selected"}),S3=Ot.fromClass(class{constructor(r){this.view=r,this.decorations=this.highlight(r.state.field(Rn))}update(r){let e=r.state.field(Rn);(e!=r.startState.field(Rn)||r.docChanged||r.selectionSet||r.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:r,panel:e}){if(!e||!r.spec.valid)return Ee.none;let{view:t}=this,n=new gn;for(let s=0,i=t.visibleRanges,o=i.length;s<o;s++){let{from:a,to:l}=i[s];for(;s<o-1&&l>i[s+1].from-500;)l=i[++s].to;r.highlight(t.state,a,l,(c,u)=>{let h=t.state.selection.ranges.some(f=>f.from==c&&f.to==u);n.add(c,u,h?w3:k3)})}return n.finish()}},{decorations:r=>r.decorations});function Mo(r){return e=>{let t=e.state.field(Rn,!1);return t&&t.query.spec.valid?r(e,t):LO(e)}}const Ha=Mo((r,{query:e})=>{let{to:t}=r.state.selection.main,n=e.nextMatch(r.state,t,t);if(!n)return!1;let s=J.single(n.from,n.to),i=r.state.facet(ni);return r.dispatch({selection:s,effects:[gh(r,n),i.scrollToMatch(s.main,r)],userEvent:"select.search"}),EO(r),!0}),Ka=Mo((r,{query:e})=>{let{state:t}=r,{from:n}=t.selection.main,s=e.prevMatch(t,n,n);if(!s)return!1;let i=J.single(s.from,s.to),o=r.state.facet(ni);return r.dispatch({selection:i,effects:[gh(r,s),o.scrollToMatch(i.main,r)],userEvent:"select.search"}),EO(r),!0}),$3=Mo((r,{query:e})=>{let t=e.matchAll(r.state,1e3);return!t||!t.length?!1:(r.dispatch({selection:J.create(t.map(n=>J.range(n.from,n.to))),userEvent:"select.search.matches"}),!0)}),C3=({state:r,dispatch:e})=>{let t=r.selection;if(t.ranges.length>1||t.main.empty)return!1;let{from:n,to:s}=t.main,i=[],o=0;for(let a=new Us(r.doc,r.sliceDoc(n,s));!a.next().done;){if(i.length>1e3)return!1;a.value.from==n&&(o=i.length),i.push(J.range(a.value.from,a.value.to))}return e(r.update({selection:J.create(i,o),userEvent:"select.search.matches"})),!0},Tf=Mo((r,{query:e})=>{let{state:t}=r,{from:n,to:s}=t.selection.main;if(t.readOnly)return!1;let i=e.nextMatch(t,n,n);if(!i)return!1;let o=i,a=[],l,c,u=[];o.from==n&&o.to==s&&(c=t.toText(e.getReplacement(o)),a.push({from:o.from,to:o.to,insert:c}),o=e.nextMatch(t,o.from,o.to),u.push(ke.announce.of(t.phrase("replaced match on line $",t.doc.lineAt(n).number)+".")));let h=r.state.changes(a);return o&&(l=J.single(o.from,o.to).map(h),u.push(gh(r,o)),u.push(t.facet(ni).scrollToMatch(l.main,r))),r.dispatch({changes:h,selection:l,effects:u,userEvent:"input.replace"}),!0}),Q3=Mo((r,{query:e})=>{if(r.state.readOnly)return!1;let t=e.matchAll(r.state,1e9).map(s=>{let{from:i,to:o}=s;return{from:i,to:o,insert:e.getReplacement(s)}});if(!t.length)return!1;let n=r.state.phrase("replaced $ matches",t.length)+".";return r.dispatch({changes:t,effects:ke.announce.of(n),userEvent:"input.replace.all"}),!0});function ph(r){return r.state.facet(ni).createPanel(r)}function pu(r,e){var t,n,s,i,o;let a=r.selection.main,l=a.empty||a.to>a.from+100?"":r.sliceDoc(a.from,a.to);if(e&&!l)return e;let c=r.facet(ni);return new BO({search:((t=e?.literal)!==null&&t!==void 0?t:c.literal)?l:l.replace(/\n/g,"\\n"),caseSensitive:(n=e?.caseSensitive)!==null&&n!==void 0?n:c.caseSensitive,literal:(s=e?.literal)!==null&&s!==void 0?s:c.literal,regexp:(i=e?.regexp)!==null&&i!==void 0?i:c.regexp,wholeWord:(o=e?.wholeWord)!==null&&o!==void 0?o:c.wholeWord})}function ZO(r){let e=th(r,ph);return e&&e.dom.querySelector("[main-field]")}function EO(r){let e=ZO(r);e&&e==r.root.activeElement&&e.select()}const LO=r=>{let e=r.state.field(Rn,!1);if(e&&e.panel){let t=ZO(r);if(t&&t!=r.root.activeElement){let n=pu(r.state,e.query.spec);n.valid&&r.dispatch({effects:so.of(n)}),t.focus(),t.select()}}else r.dispatch({effects:[mh.of(!0),e?so.of(pu(r.state,e.query.spec)):ze.appendConfig.of(A3)]});return!0},XO=r=>{let e=r.state.field(Rn,!1);if(!e||!e.panel)return!1;let t=th(r,ph);return t&&t.dom.contains(r.root.activeElement)&&r.focus(),r.dispatch({effects:mh.of(!1)}),!0},P3=[{key:"Mod-f",run:LO,scope:"editor search-panel"},{key:"F3",run:Ha,shift:Ka,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:Ha,shift:Ka,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:XO,scope:"editor search-panel"},{key:"Mod-Shift-l",run:C3},{key:"Mod-Alt-g",run:s3},{key:"Mod-d",run:p3,preventDefault:!0}];class T3{constructor(e){this.view=e;let t=this.query=e.state.field(Rn).query.spec;this.commit=this.commit.bind(this),this.searchField=it("input",{value:t.search,placeholder:ir(e,"Find"),"aria-label":ir(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=it("input",{value:t.replace,placeholder:ir(e,"Replace"),"aria-label":ir(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=it("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=it("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=it("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit});function n(s,i,o){return it("button",{class:"cm-button",name:s,onclick:i,type:"button"},o)}this.dom=it("div",{onkeydown:s=>this.keydown(s),class:"cm-search"},[this.searchField,n("next",()=>Ha(e),[ir(e,"next")]),n("prev",()=>Ka(e),[ir(e,"previous")]),n("select",()=>$3(e),[ir(e,"all")]),it("label",null,[this.caseField,ir(e,"match case")]),it("label",null,[this.reField,ir(e,"regexp")]),it("label",null,[this.wordField,ir(e,"by word")]),...e.state.readOnly?[]:[it("br"),this.replaceField,n("replace",()=>Tf(e),[ir(e,"replace")]),n("replaceAll",()=>Q3(e),[ir(e,"replace all")])],it("button",{name:"close",onclick:()=>XO(e),"aria-label":ir(e,"close"),type:"button"},["×"])])}commit(){let e=new BO({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:so.of(e)}))}keydown(e){_C(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?Ka:Ha)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),Tf(this.view))}update(e){for(let t of e.transactions)for(let n of t.effects)n.is(so)&&!n.value.eq(this.query)&&this.setQuery(n.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(ni).top}}function ir(r,e){return r.state.phrase(e)}const na=30,sa=/[\s\.,:;?!]/;function gh(r,{from:e,to:t}){let n=r.state.doc.lineAt(e),s=r.state.doc.lineAt(t).to,i=Math.max(n.from,e-na),o=Math.min(s,t+na),a=r.state.sliceDoc(i,o);if(i!=n.from){for(let l=0;l<na;l++)if(!sa.test(a[l+1])&&sa.test(a[l])){a=a.slice(l);break}}if(o!=s){for(let l=a.length-1;l>a.length-na;l--)if(!sa.test(a[l-1])&&sa.test(a[l])){a=a.slice(0,l);break}}return ke.announce.of(`${r.state.phrase("current match")}. ${a} ${r.state.phrase("on line")} ${n.number}.`)}const M3=ke.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),A3=[Rn,bn.low(S3),M3];class Oh{constructor(e,t,n,s){this.state=e,this.pos=t,this.explicit=n,this.view=s,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let t=ct(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),s=t.text.slice(n-t.from,this.pos-t.from),i=s.search(VO(e,!1));return i<0?null:{from:n+i,to:this.pos,text:s.slice(i)}}get aborted(){return this.abortListeners==null}addEventListener(e,t,n){e=="abort"&&this.abortListeners&&(this.abortListeners.push(t),n&&n.onDocChange&&(this.abortOnDocChange=!0))}}function Mf(r){let e=Object.keys(r).join(""),t=/\w/.test(e);return t&&(e=e.replace(/\w/g,"")),`[${t?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function _3(r){let e=Object.create(null),t=Object.create(null);for(let{label:s}of r){e[s[0]]=!0;for(let i=1;i<s.length;i++)t[s[i]]=!0}let n=Mf(e)+Mf(t)+"*$";return[new RegExp("^"+n),new RegExp(n)]}function IO(r){let e=r.map(s=>typeof s=="string"?{label:s}:s),[t,n]=e.every(s=>/^\w+$/.test(s.label))?[/\w*$/,/\w+$/]:_3(e);return s=>{let i=s.matchBefore(n);return i||s.explicit?{from:i?i.from:s.pos,options:e,validFor:t}:null}}function R3(r,e){return t=>{for(let n=ct(t.state).resolveInner(t.pos,-1);n;n=n.parent){if(r.indexOf(n.name)>-1)return null;if(n.type.isTop)break}return e(t)}}class Af{constructor(e,t,n,s){this.completion=e,this.source=t,this.match=n,this.score=s}}function ls(r){return r.selection.main.from}function VO(r,e){var t;let{source:n}=r,s=e&&n[0]!="^",i=n[n.length-1]!="$";return!s&&!i?r:new RegExp(`${s?"^":""}(?:${n})${i?"$":""}`,(t=r.flags)!==null&&t!==void 0?t:r.ignoreCase?"i":"")}const vh=xn.define();function B3(r,e,t,n){let{main:s}=r.selection,i=t-s.from,o=n-s.from;return{...r.changeByRange(a=>{if(a!=s&&t!=n&&r.sliceDoc(a.from+i,a.from+o)!=r.sliceDoc(t,n))return{range:a};let l=r.toText(e);return{changes:{from:a.from+i,to:n==s.from?a.to:a.from+o,insert:l},range:J.cursor(a.from+i+l.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}const _f=new WeakMap;function D3(r){if(!Array.isArray(r))return r;let e=_f.get(r);return e||_f.set(r,e=IO(r)),e}const Ja=ze.define(),io=ze.define();class Z3{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t<e.length;){let n=Gt(e,t),s=Yr(n);this.chars.push(n);let i=e.slice(t,t+s),o=i.toUpperCase();this.folded.push(Gt(o==i?i.toLowerCase():o,0)),t+=s}this.astral=e.length!=this.chars.length}ret(e,t){return this.score=e,this.matched=t,this}match(e){if(this.pattern.length==0)return this.ret(-100,[]);if(e.length<this.pattern.length)return null;let{chars:t,folded:n,any:s,precise:i,byWord:o}=this;if(t.length==1){let w=Gt(e,0),S=Yr(w),C=S==e.length?0:-100;if(w!=t[0])if(w==n[0])C+=-200;else return null;return this.ret(C,[0,S])}let a=e.indexOf(this.pattern);if(a==0)return this.ret(e.length==this.pattern.length?0:-100,[0,this.pattern.length]);let l=t.length,c=0;if(a<0){for(let w=0,S=Math.min(e.length,200);w<S&&c<l;){let C=Gt(e,w);(C==t[c]||C==n[c])&&(s[c++]=w),w+=Yr(C)}if(c<l)return null}let u=0,h=0,f=!1,m=0,g=-1,O=-1,b=/[a-z]/.test(e),x=!0;for(let w=0,S=Math.min(e.length,200),C=0;w<S&&h<l;){let _=Gt(e,w);a<0&&(u<l&&_==t[u]&&(i[u++]=w),m<l&&(_==t[m]||_==n[m]?(m==0&&(g=w),O=w+1,m++):m=0));let I,V=_<255?_>=48&&_<=57||_>=97&&_<=122?2:_>=65&&_<=90?1:0:(I=Eu(_))!=I.toLowerCase()?1:I!=I.toUpperCase()?2:0;(!w||V==1&&b||C==0&&V!=0)&&(t[h]==_||n[h]==_&&(f=!0)?o[h++]=w:o.length&&(x=!1)),C=V,w+=Yr(_)}return h==l&&o[0]==0&&x?this.result(-100+(f?-200:0),o,e):m==l&&g==0?this.ret(-200-e.length+(O==e.length?0:-100),[0,O]):a>-1?this.ret(-700-e.length,[a,a+this.pattern.length]):m==l?this.ret(-900-e.length,[g,O]):h==l?this.result(-100+(f?-200:0)+-700+(x?0:-1100),o,e):t.length==2?null:this.result((s[0]?-700:0)+-200+-1100,s,e)}result(e,t,n){let s=[],i=0;for(let o of t){let a=o+(this.astral?Yr(Gt(n,o)):1);i&&s[i-1]==o?s[i-1]=a:(s[i++]=o,s[i++]=a)}return this.ret(e-n.length,s)}}class E3{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length<this.pattern.length)return null;let t=e.slice(0,this.pattern.length),n=t==this.pattern?0:t.toLowerCase()==this.folded?-200:null;return n==null?null:(this.matched=[0,t.length],this.score=n+(e.length==this.pattern.length?0:-100),this)}}const Ct=Se.define({combine(r){return tn(r,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:L3,filterStrict:!1,compareCompletions:(e,t)=>(e.sortText||e.label).localeCompare(t.sortText||t.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>n=>Rf(e(n),t(n)),optionClass:(e,t)=>n=>Rf(e(n),t(n)),addToOptions:(e,t)=>e.concat(t),filterStrict:(e,t)=>e||t})}});function Rf(r,e){return r?e?r+" "+e:r:e}function L3(r,e,t,n,s,i){let o=r.textDirection==lt.RTL,a=o,l=!1,c="top",u,h,f=e.left-s.left,m=s.right-e.right,g=n.right-n.left,O=n.bottom-n.top;if(a&&f<Math.min(g,m)?a=!1:!a&&m<Math.min(g,f)&&(a=!0),g<=(a?f:m))u=Math.max(s.top,Math.min(t.top,s.bottom-O))-e.top,h=Math.min(400,a?f:m);else{l=!0,h=Math.min(400,(o?e.right:s.right-e.left)-30);let w=s.bottom-e.bottom;w>=O||w>e.top?u=t.bottom-e.top:(c="bottom",u=e.bottom-t.top)}let b=(e.bottom-e.top)/i.offsetHeight,x=(e.right-e.left)/i.offsetWidth;return{style:`${c}: ${u/b}px; max-width: ${h/x}px`,class:"cm-completionInfo-"+(l?o?"left-narrow":"right-narrow":a?"left":"right")}}function X3(r){let e=r.addToOptions.slice();return r.icons&&e.push({render(t){let n=document.createElement("div");return n.classList.add("cm-completionIcon"),t.type&&n.classList.add(...t.type.split(/\s+/g).map(s=>"cm-completionIcon-"+s)),n.setAttribute("aria-hidden","true"),n},position:20}),e.push({render(t,n,s,i){let o=document.createElement("span");o.className="cm-completionLabel";let a=t.displayLabel||t.label,l=0;for(let c=0;c<i.length;){let u=i[c++],h=i[c++];u>l&&o.appendChild(document.createTextNode(a.slice(l,u)));let f=o.appendChild(document.createElement("span"));f.appendChild(document.createTextNode(a.slice(u,h))),f.className="cm-completionMatchedText",l=h}return l<a.length&&o.appendChild(document.createTextNode(a.slice(l))),o},position:50},{render(t){if(!t.detail)return null;let n=document.createElement("span");return n.className="cm-completionDetail",n.textContent=t.detail,n},position:80}),e.sort((t,n)=>t.position-n.position).map(t=>t.render)}function ec(r,e,t){if(r<=t)return{from:0,to:r};if(e<0&&(e=0),e<=r>>1){let s=Math.floor(e/t);return{from:s*t,to:(s+1)*t}}let n=Math.floor((r-e)/t);return{from:r-(n+1)*t,to:r-n*t}}class I3{constructor(e,t,n){this.view=e,this.stateField=t,this.applyCompletion=n,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:l=>this.placeInfo(l),key:this},this.space=null,this.currentClass="";let s=e.state.field(t),{options:i,selected:o}=s.open,a=e.state.facet(Ct);this.optionContent=X3(a),this.optionClass=a.optionClass,this.tooltipClass=a.tooltipClass,this.range=ec(i.length,o,a.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",l=>{let{options:c}=e.state.field(t).open;for(let u=l.target,h;u&&u!=this.dom;u=u.parentNode)if(u.nodeName=="LI"&&(h=/-(\d+)$/.exec(u.id))&&+h[1]<c.length){this.applyCompletion(e,c[+h[1]]),l.preventDefault();return}}),this.dom.addEventListener("focusout",l=>{let c=e.state.field(this.stateField,!1);c&&c.tooltip&&e.state.facet(Ct).closeOnBlur&&l.relatedTarget!=e.contentDOM&&e.dispatch({effects:io.of(null)})}),this.showOptions(i,s.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var t;let n=e.state.field(this.stateField),s=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),n!=s){let{options:i,selected:o,disabled:a}=n.open;(!s.open||s.open.options!=i)&&(this.range=ec(i.length,o,e.state.facet(Ct).maxRenderedOptions),this.showOptions(i,n.id)),this.updateSel(),a!=((t=s.open)===null||t===void 0?void 0:t.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!a)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let n of this.currentClass.split(" "))n&&this.dom.classList.remove(n);for(let n of t.split(" "))n&&this.dom.classList.add(n);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;(t.selected>-1&&t.selected<this.range.from||t.selected>=this.range.to)&&(this.range=ec(t.options.length,t.selected,this.view.state.facet(Ct).maxRenderedOptions),this.showOptions(t.options,e.id));let n=this.updateSelectedOption(t.selected);if(n){this.destroyInfo();let{completion:s}=t.options[t.selected],{info:i}=s;if(!i)return;let o=typeof i=="string"?document.createTextNode(i):i(s);if(!o)return;"then"in o?o.then(a=>{a&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(a,s)}).catch(a=>er(this.view.state,a,"completion info")):(this.addInfoPane(o,s),n.setAttribute("aria-describedby",this.info.id))}}addInfoPane(e,t){this.destroyInfo();let n=this.info=document.createElement("div");if(n.className="cm-tooltip cm-completionInfo",n.id="cm-completionInfo-"+Math.floor(Math.random()*65535).toString(16),e.nodeType!=null)n.appendChild(e),this.infoDestroy=null;else{let{dom:s,destroy:i}=e;n.appendChild(s),this.infoDestroy=i||null}this.dom.appendChild(n),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let n=this.list.firstChild,s=this.range.from;n;n=n.nextSibling,s++)n.nodeName!="LI"||!n.id?s--:s==e?n.hasAttribute("aria-selected")||(n.setAttribute("aria-selected","true"),t=n):n.hasAttribute("aria-selected")&&(n.removeAttribute("aria-selected"),n.removeAttribute("aria-describedby"));return t&&z3(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),n=this.info.getBoundingClientRect(),s=e.getBoundingClientRect(),i=this.space;if(!i){let o=this.dom.ownerDocument.documentElement;i={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return s.top>Math.min(i.bottom,t.bottom)-10||s.bottom<Math.max(i.top,t.top)+10?null:this.view.state.facet(Ct).positionInfo(this.view,t,s,n,i,this.dom)}placeInfo(e){this.info&&(e?(e.style&&(this.info.style.cssText=e.style),this.info.className="cm-tooltip cm-completionInfo "+(e.class||"")):this.info.style.cssText="top: -1e6px")}createListBox(e,t,n){const s=document.createElement("ul");s.id=t,s.setAttribute("role","listbox"),s.setAttribute("aria-expanded","true"),s.setAttribute("aria-label",this.view.state.phrase("Completions")),s.addEventListener("mousedown",o=>{o.target==s&&o.preventDefault()});let i=null;for(let o=n.from;o<n.to;o++){let{completion:a,match:l}=e[o],{section:c}=a;if(c){let f=typeof c=="string"?c:c.name;if(f!=i&&(o>n.from||n.from==0))if(i=f,typeof c!="string"&&c.header)s.appendChild(c.header(c));else{let m=s.appendChild(document.createElement("completion-section"));m.textContent=f}}const u=s.appendChild(document.createElement("li"));u.id=t+"-"+o,u.setAttribute("role","option");let h=this.optionClass(a);h&&(u.className=h);for(let f of this.optionContent){let m=f(a,this.view.state,this.view,l);m&&u.appendChild(m)}}return n.from&&s.classList.add("cm-completionListIncompleteTop"),n.to<e.length&&s.classList.add("cm-completionListIncompleteBottom"),s}destroyInfo(){this.info&&(this.infoDestroy&&this.infoDestroy(),this.info.remove(),this.info=null)}destroy(){this.destroyInfo()}}function V3(r,e){return t=>new I3(t,r,e)}function z3(r,e){let t=r.getBoundingClientRect(),n=e.getBoundingClientRect(),s=t.height/r.offsetHeight;n.top<t.top?r.scrollTop-=(t.top-n.top)/s:n.bottom>t.bottom&&(r.scrollTop+=(n.bottom-t.bottom)/s)}function Bf(r){return(r.boost||0)*100+(r.apply?10:0)+(r.info?5:0)+(r.type?1:0)}function N3(r,e){let t=[],n=null,s=null,i=u=>{t.push(u);let{section:h}=u.completion;if(h){n||(n=[]);let f=typeof h=="string"?h:h.name;n.some(m=>m.name==f)||n.push(typeof h=="string"?{name:f}:h)}},o=e.facet(Ct);for(let u of r)if(u.hasResult()){let h=u.result.getMatch;if(u.result.filter===!1)for(let f of u.result.options)i(new Af(f,u.source,h?h(f):[],1e9-t.length));else{let f=e.sliceDoc(u.from,u.to),m,g=o.filterStrict?new E3(f):new Z3(f);for(let O of u.result.options)if(m=g.match(O.label)){let b=O.displayLabel?h?h(O,m.matched):[]:m.matched,x=m.score+(O.boost||0);if(i(new Af(O,u.source,b,x)),typeof O.section=="object"&&O.section.rank==="dynamic"){let{name:w}=O.section;s||(s=Object.create(null)),s[w]=Math.max(x,s[w]||-1e9)}}}}if(n){let u=Object.create(null),h=0,f=(m,g)=>(m.rank==="dynamic"&&g.rank==="dynamic"?s[g.name]-s[m.name]:0)||(typeof m.rank=="number"?m.rank:1e9)-(typeof g.rank=="number"?g.rank:1e9)||(m.name<g.name?-1:1);for(let m of n.sort(f))h-=1e5,u[m.name]=h;for(let m of t){let{section:g}=m.completion;g&&(m.score+=u[typeof g=="string"?g:g.name])}}let a=[],l=null,c=o.compareCompletions;for(let u of t.sort((h,f)=>f.score-h.score||c(h.completion,f.completion))){let h=u.completion;!l||l.label!=h.label||l.detail!=h.detail||l.type!=null&&h.type!=null&&l.type!=h.type||l.apply!=h.apply||l.boost!=h.boost?a.push(u):Bf(u.completion)>Bf(l)&&(a[a.length-1]=u),l=u.completion}return a}class Ms{constructor(e,t,n,s,i,o){this.options=e,this.attrs=t,this.tooltip=n,this.timestamp=s,this.selected=i,this.disabled=o}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new Ms(this.options,Df(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,n,s,i,o){if(s&&!o&&e.some(c=>c.isPending))return s.setDisabled();let a=N3(e,t);if(!a.length)return s&&e.some(c=>c.isPending)?s.setDisabled():null;let l=t.facet(Ct).selectOnOpen?0:-1;if(s&&s.selected!=l&&s.selected!=-1){let c=s.options[s.selected].completion;for(let u=0;u<a.length;u++)if(a[u].completion==c){l=u;break}}return new Ms(a,Df(n,l),{pos:e.reduce((c,u)=>u.hasResult()?Math.min(c,u.from):c,1e8),create:U3,above:i.aboveCursor},s?s.timestamp:Date.now(),l,!1)}map(e){return new Ms(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new Ms(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class el{constructor(e,t,n){this.active=e,this.id=t,this.open=n}static start(){return new el(Y3,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:t}=e,n=t.facet(Ct),i=(n.override||t.languageDataAt("autocomplete",ls(t)).map(D3)).map(l=>(this.active.find(u=>u.source==l)||new $r(l,this.active.some(u=>u.state!=0)?1:0)).update(e,n));i.length==this.active.length&&i.every((l,c)=>l==this.active[c])&&(i=this.active);let o=this.open,a=e.effects.some(l=>l.is(bh));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||i.some(l=>l.hasResult()&&e.changes.touchesRange(l.from,l.to))||!W3(i,this.active)||a?o=Ms.build(i,t,this.id,o,n,a):o&&o.disabled&&!i.some(l=>l.isPending)&&(o=null),!o&&i.every(l=>!l.isPending)&&i.some(l=>l.hasResult())&&(i=i.map(l=>l.hasResult()?new $r(l.source,0):l));for(let l of e.effects)l.is(NO)&&(o=o&&o.setSelected(l.value,this.id));return i==this.active&&o==this.open?this:new el(i,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?q3:j3}}function W3(r,e){if(r==e)return!0;for(let t=0,n=0;;){for(;t<r.length&&!r[t].hasResult();)t++;for(;n<e.length&&!e[n].hasResult();)n++;let s=t==r.length,i=n==e.length;if(s||i)return s==i;if(r[t++].result!=e[n++].result)return!1}}const q3={"aria-autocomplete":"list"},j3={};function Df(r,e){let t={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":r};return e>-1&&(t["aria-activedescendant"]=r+"-"+e),t}const Y3=[];function zO(r,e){if(r.isUserEvent("input.complete")){let n=r.annotation(vh);if(n&&e.activateOnCompletion(n))return 12}let t=r.isUserEvent("input.type");return t&&e.activateOnTyping?5:t?1:r.isUserEvent("delete.backward")?2:r.selection?8:r.docChanged?16:0}class $r{constructor(e,t,n=!1){this.source=e,this.state=t,this.explicit=n}hasResult(){return!1}get isPending(){return this.state==1}update(e,t){let n=zO(e,t),s=this;(n&8||n&16&&this.touches(e))&&(s=new $r(s.source,0)),n&4&&s.state==0&&(s=new $r(this.source,1)),s=s.updateFor(e,n);for(let i of e.effects)if(i.is(Ja))s=new $r(s.source,1,i.value);else if(i.is(io))s=new $r(s.source,0);else if(i.is(bh))for(let o of i.value)o.source==s.source&&(s=o);return s}updateFor(e,t){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(ls(e.state))}}class Es extends $r{constructor(e,t,n,s,i,o){super(e,3,t),this.limit=n,this.result=s,this.from=i,this.to=o}hasResult(){return!0}updateFor(e,t){var n;if(!(t&3))return this.map(e.changes);let s=this.result;s.map&&!e.changes.empty&&(s=s.map(s,e.changes));let i=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),a=ls(e.state);if(a>o||!s||t&2&&(ls(e.startState)==this.from||a<this.limit))return new $r(this.source,t&4?1:0);let l=e.changes.mapPos(this.limit);return F3(s.validFor,e.state,i,o)?new Es(this.source,this.explicit,l,s,i,o):s.update&&(s=s.update(s,i,o,new Oh(e.state,a,!1)))?new Es(this.source,this.explicit,l,s,s.from,(n=s.to)!==null&&n!==void 0?n:ls(e.state)):new $r(this.source,1,this.explicit)}map(e){return e.empty?this:(this.result.map?this.result.map(this.result,e):this.result)?new Es(this.source,this.explicit,e.mapPos(this.limit),this.result,e.mapPos(this.from),e.mapPos(this.to,1)):new $r(this.source,0)}touches(e){return e.changes.touchesRange(this.from,this.to)}}function F3(r,e,t,n){if(!r)return!1;let s=e.sliceDoc(t,n);return typeof r=="function"?r(s,t,n,e):VO(r,!0).test(s)}const bh=ze.define({map(r,e){return r.map(t=>t.map(e))}}),NO=ze.define(),Ht=Pt.define({create(){return el.start()},update(r,e){return r.update(e)},provide:r=>[eh.from(r,e=>e.tooltip),ke.contentAttributes.from(r,e=>e.attrs)]});function xh(r,e){const t=e.completion.apply||e.completion.label;let n=r.state.field(Ht).active.find(s=>s.source==e.source);return n instanceof Es?(typeof t=="string"?r.dispatch({...B3(r.state,t,n.from,n.to),annotations:vh.of(e.completion)}):t(r,e.completion,n.from,n.to),!0):!1}const U3=V3(Ht,xh);function ia(r,e="option"){return t=>{let n=t.state.field(Ht,!1);if(!n||!n.open||n.open.disabled||Date.now()-n.open.timestamp<t.state.facet(Ct).interactionDelay)return!1;let s=1,i;e=="page"&&(i=kg(t,n.open.tooltip))&&(s=Math.max(2,Math.floor(i.dom.offsetHeight/i.dom.querySelector("li").offsetHeight)-1));let{length:o}=n.open.options,a=n.open.selected>-1?n.open.selected+s*(r?1:-1):r?0:o-1;return a<0?a=e=="page"?0:o-1:a>=o&&(a=e=="page"?o-1:0),t.dispatch({effects:NO.of(a)}),!0}}const G3=r=>{let e=r.state.field(Ht,!1);return r.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestamp<r.state.facet(Ct).interactionDelay?!1:xh(r,e.open.options[e.open.selected])},tc=r=>r.state.field(Ht,!1)?(r.dispatch({effects:Ja.of(!0)}),!0):!1,H3=r=>{let e=r.state.field(Ht,!1);return!e||!e.active.some(t=>t.state!=0)?!1:(r.dispatch({effects:io.of(null)}),!0)};class K3{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const J3=50,eT=1e3,tT=Ot.fromClass(class{constructor(r){this.view=r,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of r.state.field(Ht).active)e.isPending&&this.startQuery(e)}update(r){let e=r.state.field(Ht),t=r.state.facet(Ct);if(!r.selectionSet&&!r.docChanged&&r.startState.field(Ht)==e)return;let n=r.transactions.some(i=>{let o=zO(i,t);return o&8||(i.selection||i.docChanged)&&!(o&3)});for(let i=0;i<this.running.length;i++){let o=this.running[i];if(n||o.context.abortOnDocChange&&r.docChanged||o.updates.length+r.transactions.length>J3&&Date.now()-o.time>eT){for(let a of o.context.abortListeners)try{a()}catch(l){er(this.view.state,l)}o.context.abortListeners=null,this.running.splice(i--,1)}else o.updates.push(...r.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),r.transactions.some(i=>i.effects.some(o=>o.is(Ja)))&&(this.pendingStart=!0);let s=this.pendingStart?50:t.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(i=>i.isPending&&!this.running.some(o=>o.active.source==i.source))?setTimeout(()=>this.startUpdate(),s):-1,this.composing!=0)for(let i of r.transactions)i.isUserEvent("input.type")?this.composing=2:this.composing==2&&i.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:r}=this.view,e=r.field(Ht);for(let t of e.active)t.isPending&&!this.running.some(n=>n.active.source==t.source)&&this.startQuery(t);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Ct).updateSyncTime))}startQuery(r){let{state:e}=this.view,t=ls(e),n=new Oh(e,t,r.explicit,this.view),s=new K3(r,n);this.running.push(s),Promise.resolve(r.source(n)).then(i=>{s.context.aborted||(s.done=i||null,this.scheduleAccept())},i=>{this.view.dispatch({effects:io.of(null)}),er(this.view.state,i)})}scheduleAccept(){this.running.every(r=>r.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(Ct).updateSyncTime))}accept(){var r;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],t=this.view.state.facet(Ct),n=this.view.state.field(Ht);for(let s=0;s<this.running.length;s++){let i=this.running[s];if(i.done===void 0)continue;if(this.running.splice(s--,1),i.done){let a=ls(i.updates.length?i.updates[0].startState:this.view.state),l=Math.min(a,i.done.from+(i.active.explicit?0:1)),c=new Es(i.active.source,i.active.explicit,l,i.done,i.done.from,(r=i.done.to)!==null&&r!==void 0?r:a);for(let u of i.updates)c=c.update(u,t);if(c.hasResult()){e.push(c);continue}}let o=n.active.find(a=>a.source==i.active.source);if(o&&o.isPending)if(i.done==null){let a=new $r(i.active.source,0);for(let l of i.updates)a=a.update(l,t);a.isPending||e.push(a)}else this.startQuery(o)}(e.length||n.open&&n.open.disabled)&&this.view.dispatch({effects:bh.of(e)})}},{eventHandlers:{blur(r){let e=this.view.state.field(Ht,!1);if(e&&e.tooltip&&this.view.state.facet(Ct).closeOnBlur){let t=e.open&&kg(this.view,e.open.tooltip);(!t||!t.dom.contains(r.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:io.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:Ja.of(!1)}),20),this.composing=0}}}),rT=typeof navigator=="object"&&/Win/.test(navigator.platform),nT=bn.highest(ke.domEventHandlers({keydown(r,e){let t=e.state.field(Ht,!1);if(!t||!t.open||t.open.disabled||t.open.selected<0||r.key.length>1||r.ctrlKey&&!(rT&&r.altKey)||r.metaKey)return!1;let n=t.open.options[t.open.selected],s=t.active.find(o=>o.source==n.source),i=n.completion.commitCharacters||s.result.commitCharacters;return i&&i.indexOf(r.key)>-1&&xh(e,n),!1}})),WO=ke.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box",whiteSpace:"pre-line"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class sT{constructor(e,t,n,s){this.field=e,this.line=t,this.from=n,this.to=s}}class yh{constructor(e,t,n){this.field=e,this.from=t,this.to=n}map(e){let t=e.mapPos(this.from,-1,At.TrackDel),n=e.mapPos(this.to,1,At.TrackDel);return t==null||n==null?null:new yh(this.field,t,n)}}class kh{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let n=[],s=[t],i=e.doc.lineAt(t),o=/^\s*/.exec(i.text)[0];for(let l of this.lines){if(n.length){let c=o,u=/^\t*/.exec(l)[0].length;for(let h=0;h<u;h++)c+=e.facet($o);s.push(t+c.length-u),l=c+l.slice(u)}n.push(l),t+=l.length+1}let a=this.fieldPositions.map(l=>new yh(l.field,s[l.line]+l.from,s[l.line]+l.to));return{text:n,ranges:a}}static parse(e){let t=[],n=[],s=[],i;for(let o of e.split(/\r\n?|\n/)){for(;i=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(o);){let a=i[1]?+i[1]:null,l=i[2]||i[3]||"",c=-1,u=l.replace(/\\[{}]/g,h=>h[1]);for(let h=0;h<t.length;h++)(a!=null?t[h].seq==a:u&&t[h].name==u)&&(c=h);if(c<0){let h=0;for(;h<t.length&&(a==null||t[h].seq!=null&&t[h].seq<a);)h++;t.splice(h,0,{seq:a,name:u}),c=h;for(let f of s)f.field>=c&&f.field++}for(let h of s)if(h.line==n.length&&h.from>i.index){let f=i[2]?3+(i[1]||"").length:2;h.from-=f,h.to-=f}s.push(new sT(c,n.length,i.index,i.index+u.length)),o=o.slice(0,i.index)+l+o.slice(i.index+i[0].length)}o=o.replace(/\\([{}])/g,(a,l,c)=>{for(let u of s)u.line==n.length&&u.from>c&&(u.from--,u.to--);return l}),n.push(o)}return new kh(n,s)}}let iT=Ee.widget({widget:new class extends rn{toDOM(){let r=document.createElement("span");return r.className="cm-snippetFieldPosition",r}ignoreEvent(){return!1}}}),oT=Ee.mark({class:"cm-snippetField"});class si{constructor(e,t){this.ranges=e,this.active=t,this.deco=Ee.set(e.map(n=>(n.from==n.to?iT:oT).range(n.from,n.to)),!0)}map(e){let t=[];for(let n of this.ranges){let s=n.map(e);if(!s)return null;t.push(s)}return new si(t,this.active)}selectionInsideField(e){return e.ranges.every(t=>this.ranges.some(n=>n.field==this.active&&n.from<=t.from&&n.to>=t.to))}}const Ao=ze.define({map(r,e){return r&&r.map(e)}}),aT=ze.define(),oo=Pt.define({create(){return null},update(r,e){for(let t of e.effects){if(t.is(Ao))return t.value;if(t.is(aT)&&r)return new si(r.ranges,t.value)}return r&&e.docChanged&&(r=r.map(e.changes)),r&&e.selection&&!r.selectionInsideField(e.selection)&&(r=null),r},provide:r=>ke.decorations.from(r,e=>e?e.deco:Ee.none)});function wh(r,e){return J.create(r.filter(t=>t.field==e).map(t=>J.range(t.from,t.to)))}function lT(r){let e=kh.parse(r);return(t,n,s,i)=>{let{text:o,ranges:a}=e.instantiate(t.state,s),{main:l}=t.state.selection,c={changes:{from:s,to:i==l.from?l.to:i,insert:et.of(o)},scrollIntoView:!0,annotations:n?[vh.of(n),vt.userEvent.of("input.complete")]:void 0};if(a.length&&(c.selection=wh(a,0)),a.some(u=>u.field>0)){let u=new si(a,0),h=c.effects=[Ao.of(u)];t.state.field(oo,!1)===void 0&&h.push(ze.appendConfig.of([oo,fT,mT,WO]))}t.dispatch(t.state.update(c))}}function qO(r){return({state:e,dispatch:t})=>{let n=e.field(oo,!1);if(!n||r<0&&n.active==0)return!1;let s=n.active+r,i=r>0&&!n.ranges.some(o=>o.field==s+r);return t(e.update({selection:wh(n.ranges,s),effects:Ao.of(i?null:new si(n.ranges,s)),scrollIntoView:!0})),!0}}const cT=({state:r,dispatch:e})=>r.field(oo,!1)?(e(r.update({effects:Ao.of(null)})),!0):!1,uT=qO(1),hT=qO(-1),dT=[{key:"Tab",run:uT,shift:hT},{key:"Escape",run:cT}],Zf=Se.define({combine(r){return r.length?r[0]:dT}}),fT=bn.highest(ko.compute([Zf],r=>r.facet(Zf)));function Ft(r,e){return{...e,apply:lT(r)}}const mT=ke.domEventHandlers({mousedown(r,e){let t=e.state.field(oo,!1),n;if(!t||(n=e.posAtCoords({x:r.clientX,y:r.clientY}))==null)return!1;let s=t.ranges.find(i=>i.from<=n&&i.to>=n);return!s||s.field==t.active?!1:(e.dispatch({selection:wh(t.ranges,s.field),effects:Ao.of(t.ranges.some(i=>i.field>s.field)?new si(t.ranges,s.field):null),scrollIntoView:!0}),!0)}}),ao={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},ss=ze.define({map(r,e){let t=e.mapPos(r,-1,At.TrackAfter);return t??void 0}}),Sh=new class extends Dn{};Sh.startSide=1;Sh.endSide=-1;const jO=Pt.define({create(){return Ge.empty},update(r,e){if(r=r.map(e.changes),e.selection){let t=e.state.doc.lineAt(e.selection.main.head);r=r.update({filter:n=>n>=t.from&&n<=t.to})}for(let t of e.effects)t.is(ss)&&(r=r.update({add:[Sh.range(t.value,t.value+1)]}));return r}});function pT(){return[OT,jO]}const rc="()[]{}<>«»»«[]{}";function YO(r){for(let e=0;e<rc.length;e+=2)if(rc.charCodeAt(e)==r)return rc.charAt(e+1);return Eu(r<128?r:r+1)}function FO(r,e){return r.languageDataAt("closeBrackets",e)[0]||ao}const gT=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),OT=ke.inputHandler.of((r,e,t,n)=>{if((gT?r.composing:r.compositionStarted)||r.state.readOnly)return!1;let s=r.state.selection.main;if(n.length>2||n.length==2&&Yr(Gt(n,0))==1||e!=s.from||t!=s.to)return!1;let i=xT(r.state,n);return i?(r.dispatch(i),!0):!1}),vT=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let n=FO(r,r.selection.main.head).brackets||ao.brackets,s=null,i=r.changeByRange(o=>{if(o.empty){let a=yT(r.doc,o.head);for(let l of n)if(l==a&&Cl(r.doc,o.head)==YO(Gt(l,0)))return{changes:{from:o.head-l.length,to:o.head+l.length},range:J.cursor(o.head-l.length)}}return{range:s=o}});return s||e(r.update(i,{scrollIntoView:!0,userEvent:"delete.backward"})),!s},bT=[{key:"Backspace",run:vT}];function xT(r,e){let t=FO(r,r.selection.main.head),n=t.brackets||ao.brackets;for(let s of n){let i=YO(Gt(s,0));if(e==s)return i==s?ST(r,s,n.indexOf(s+s+s)>-1,t):kT(r,s,i,t.before||ao.before);if(e==i&&UO(r,r.selection.main.from))return wT(r,s,i)}return null}function UO(r,e){let t=!1;return r.field(jO).between(0,r.doc.length,n=>{n==e&&(t=!0)}),t}function Cl(r,e){let t=r.sliceString(e,e+2);return t.slice(0,Yr(Gt(t,0)))}function yT(r,e){let t=r.sliceString(e-2,e);return Yr(Gt(t,0))==t.length?t:t.slice(1)}function kT(r,e,t,n){let s=null,i=r.changeByRange(o=>{if(!o.empty)return{changes:[{insert:e,from:o.from},{insert:t,from:o.to}],effects:ss.of(o.to+e.length),range:J.range(o.anchor+e.length,o.head+e.length)};let a=Cl(r.doc,o.head);return!a||/\s/.test(a)||n.indexOf(a)>-1?{changes:{insert:e+t,from:o.head},effects:ss.of(o.head+e.length),range:J.cursor(o.head+e.length)}:{range:s=o}});return s?null:r.update(i,{scrollIntoView:!0,userEvent:"input.type"})}function wT(r,e,t){let n=null,s=r.changeByRange(i=>i.empty&&Cl(r.doc,i.head)==t?{changes:{from:i.head,to:i.head+t.length,insert:t},range:J.cursor(i.head+t.length)}:n={range:i});return n?null:r.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function ST(r,e,t,n){let s=n.stringPrefixes||ao.stringPrefixes,i=null,o=r.changeByRange(a=>{if(!a.empty)return{changes:[{insert:e,from:a.from},{insert:e,from:a.to}],effects:ss.of(a.to+e.length),range:J.range(a.anchor+e.length,a.head+e.length)};let l=a.head,c=Cl(r.doc,l),u;if(c==e){if(Ef(r,l))return{changes:{insert:e+e,from:l},effects:ss.of(l+e.length),range:J.cursor(l+e.length)};if(UO(r,l)){let f=t&&r.sliceDoc(l,l+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:l,to:l+f.length,insert:f},range:J.cursor(l+f.length)}}}else{if(t&&r.sliceDoc(l-2*e.length,l)==e+e&&(u=Lf(r,l-2*e.length,s))>-1&&Ef(r,u))return{changes:{insert:e+e+e+e,from:l},effects:ss.of(l+e.length),range:J.cursor(l+e.length)};if(r.charCategorizer(l)(c)!=ft.Word&&Lf(r,l,s)>-1&&!$T(r,l,e,s))return{changes:{insert:e+e,from:l},effects:ss.of(l+e.length),range:J.cursor(l+e.length)}}return{range:i=a}});return i?null:r.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function Ef(r,e){let t=ct(r).resolveInner(e+1);return t.parent&&t.from==e}function $T(r,e,t,n){let s=ct(r).resolveInner(e,-1),i=n.reduce((o,a)=>Math.max(o,a.length),0);for(let o=0;o<5;o++){let a=r.sliceDoc(s.from,Math.min(s.to,s.from+t.length+i)),l=a.indexOf(t);if(!l||l>-1&&n.indexOf(a.slice(0,l))>-1){let u=s.firstChild;for(;u&&u.from==s.from&&u.to-u.from>t.length+l;){if(r.sliceDoc(u.to-t.length,u.to)==t)return!1;u=u.firstChild}return!0}let c=s.to==e&&s.parent;if(!c)break;s=c}return!1}function Lf(r,e,t){let n=r.charCategorizer(e);if(n(r.sliceDoc(e-1,e))!=ft.Word)return e;for(let s of t){let i=e-s.length;if(r.sliceDoc(i,e)==s&&n(r.sliceDoc(i-1,i))!=ft.Word)return i}return-1}function CT(r={}){return[nT,Ht,Ct.of(r),tT,QT,WO]}const GO=[{key:"Ctrl-Space",run:tc},{mac:"Alt-`",run:tc},{mac:"Alt-i",run:tc},{key:"Escape",run:H3},{key:"ArrowDown",run:ia(!0)},{key:"ArrowUp",run:ia(!1)},{key:"PageDown",run:ia(!0,"page")},{key:"PageUp",run:ia(!1,"page")},{key:"Enter",run:G3}],QT=bn.highest(ko.computeN([Ct],r=>r.facet(Ct).defaultKeymap?[GO]:[]));class Xf{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}}class Jn{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(e,t,n){let s=n.facet(lo).markerFilter;s&&(e=s(e,n));let i=e.slice().sort((m,g)=>m.from-g.from||m.to-g.to),o=new gn,a=[],l=0,c=n.doc.iter(),u=0,h=n.doc.length;for(let m=0;;){let g=m==i.length?null:i[m];if(!g&&!a.length)break;let O,b;if(a.length)O=l,b=a.reduce((S,C)=>Math.min(S,C.to),g&&g.from>O?g.from:1e8);else{if(O=g.from,O>h)break;b=g.to,a.push(g),m++}for(;m<i.length;){let S=i[m];if(S.from==O&&(S.to>S.from||S.to==O))a.push(S),m++,b=Math.min(S.to,b);else{b=Math.min(S.from,b);break}}b=Math.min(b,h);let x=!1;if(a.some(S=>S.from==O&&(S.to==b||b==h))&&(x=O==b,!x&&b-O<10)){let S=O-(u+c.value.length);S>0&&(c.next(S),u=O);for(let C=O;;){if(C>=b){x=!0;break}if(!c.lineBreak&&u+c.value.length>C)break;C=u+c.value.length,u+=c.value.length,c.next()}}let w=IT(a);if(x)o.add(O,O,Ee.widget({widget:new ZT(w),diagnostics:a.slice()}));else{let S=a.reduce((C,_)=>_.markClass?C+" "+_.markClass:C,"");o.add(O,b,Ee.mark({class:"cm-lintRange cm-lintRange-"+w+S,diagnostics:a.slice(),inclusiveEnd:a.some(C=>C.to>b)}))}if(l=b,l==h)break;for(let S=0;S<a.length;S++)a[S].to<=l&&a.splice(S--,1)}let f=o.finish();return new Jn(f,t,Vn(f))}}function Vn(r,e=null,t=0){let n=null;return r.between(t,1e9,(s,i,{spec:o})=>{if(!(e&&o.diagnostics.indexOf(e)<0))if(!n)n=new Xf(s,i,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(n.diagnostic)<0)return!1;n=new Xf(n.from,i,n.diagnostic)}}),n}function PT(r,e){let t=e.pos,n=e.end||t,s=r.state.facet(lo).hideOn(r,t,n);if(s!=null)return s;let i=r.startState.doc.lineAt(e.pos);return!!(r.effects.some(o=>o.is(HO))||r.changes.touchesRange(i.from,Math.max(i.to,n)))}function TT(r,e){return r.field(dr,!1)?e:e.concat(ze.appendConfig.of(VT))}const HO=ze.define(),$h=ze.define(),KO=ze.define(),dr=Pt.define({create(){return new Jn(Ee.none,null,null)},update(r,e){if(e.docChanged&&r.diagnostics.size){let t=r.diagnostics.map(e.changes),n=null,s=r.panel;if(r.selected){let i=e.changes.mapPos(r.selected.from,1);n=Vn(t,r.selected.diagnostic,i)||Vn(t,null,i)}!t.size&&s&&e.state.facet(lo).autoPanel&&(s=null),r=new Jn(t,s,n)}for(let t of e.effects)if(t.is(HO)){let n=e.state.facet(lo).autoPanel?t.value.length?co.open:null:r.panel;r=Jn.init(t.value,n,e.state)}else t.is($h)?r=new Jn(r.diagnostics,t.value?co.open:null,r.selected):t.is(KO)&&(r=new Jn(r.diagnostics,r.panel,t.value));return r},provide:r=>[Ki.from(r,e=>e.panel),ke.decorations.from(r,e=>e.diagnostics)]}),MT=Ee.mark({class:"cm-lintRange cm-lintRange-active"});function AT(r,e,t){let{diagnostics:n}=r.state.field(dr),s,i=-1,o=-1;n.between(e-(t<0?1:0),e+(t>0?1:0),(l,c,{spec:u})=>{if(e>=l&&e<=c&&(l==c||(e>l||t>0)&&(e<c||t<0)))return s=u.diagnostics,i=l,o=c,!1});let a=r.state.facet(lo).tooltipFilter;return s&&a&&(s=a(s,r.state)),s?{pos:i,end:o,above:r.state.doc.lineAt(i).to<o,create(){return{dom:_T(r,s)}}}:null}function _T(r,e){return it("ul",{class:"cm-tooltip-lint"},e.map(t=>e0(r,t,!1)))}const RT=r=>{let e=r.state.field(dr,!1);(!e||!e.panel)&&r.dispatch({effects:TT(r.state,[$h.of(!0)])});let t=th(r,co.open);return t&&t.dom.querySelector(".cm-panel-lint ul").focus(),!0},If=r=>{let e=r.state.field(dr,!1);return!e||!e.panel?!1:(r.dispatch({effects:$h.of(!1)}),!0)},BT=r=>{let e=r.state.field(dr,!1);if(!e)return!1;let t=r.state.selection.main,n=Vn(e.diagnostics,null,t.to+1);return!n&&(n=Vn(e.diagnostics,null,0),!n||n.from==t.from&&n.to==t.to)?!1:(r.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0}),!0)},DT=[{key:"Mod-Shift-m",run:RT,preventDefault:!0},{key:"F8",run:BT}],lo=Se.define({combine(r){return{sources:r.map(e=>e.source).filter(e=>e!=null),...tn(r.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{delay:Math.max,markerFilter:Vf,tooltipFilter:Vf,needsRefresh:(e,t)=>e?t?n=>e(n)||t(n):e:t,hideOn:(e,t)=>e?t?(n,s,i)=>e(n,s,i)||t(n,s,i):e:t,autoPanel:(e,t)=>e||t})}}});function Vf(r,e){return r?e?(t,n)=>e(r(t,n),n):r:e}function JO(r){let e=[];if(r)e:for(let{name:t}of r){for(let n=0;n<t.length;n++){let s=t[n];if(/[a-zA-Z]/.test(s)&&!e.some(i=>i.toLowerCase()==s.toLowerCase())){e.push(s);continue e}}e.push("")}return e}function e0(r,e,t){var n;let s=t?JO(e.actions):[];return it("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},it("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(r):e.message),(n=e.actions)===null||n===void 0?void 0:n.map((i,o)=>{let a=!1,l=m=>{if(m.preventDefault(),a)return;a=!0;let g=Vn(r.state.field(dr).diagnostics,e);g&&i.apply(r,g.from,g.to)},{name:c}=i,u=s[o]?c.indexOf(s[o]):-1,h=u<0?c:[c.slice(0,u),it("u",c.slice(u,u+1)),c.slice(u+1)],f=i.markClass?" "+i.markClass:"";return it("button",{type:"button",class:"cm-diagnosticAction"+f,onclick:l,onmousedown:l,"aria-label":` Action: ${c}${u<0?"":` (access key "${s[o]})"`}.`},h)}),e.source&&it("div",{class:"cm-diagnosticSource"},e.source))}class ZT extends rn{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return it("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class zf{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=e0(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class co{constructor(e){this.view=e,this.items=[];let t=s=>{if(!(s.ctrlKey||s.altKey||s.metaKey)){if(s.keyCode==27)If(this.view),this.view.focus();else if(s.keyCode==38||s.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(s.keyCode==40||s.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(s.keyCode==36)this.moveSelection(0);else if(s.keyCode==35)this.moveSelection(this.items.length-1);else if(s.keyCode==13)this.view.focus();else if(s.keyCode>=65&&s.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:i}=this.items[this.selectedIndex],o=JO(i.actions);for(let a=0;a<o.length;a++)if(o[a].toUpperCase().charCodeAt(0)==s.keyCode){let l=Vn(this.view.state.field(dr).diagnostics,i);l&&i.actions[a].apply(e,l.from,l.to)}}else return;s.preventDefault()}},n=s=>{for(let i=0;i<this.items.length;i++)this.items[i].dom.contains(s.target)&&this.moveSelection(i)};this.list=it("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:t,onclick:n}),this.dom=it("div",{class:"cm-panel-lint"},this.list,it("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>If(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(dr).selected;if(!e)return-1;for(let t=0;t<this.items.length;t++)if(this.items[t].diagnostic==e.diagnostic)return t;return-1}update(){let{diagnostics:e,selected:t}=this.view.state.field(dr),n=0,s=!1,i=null,o=new Set;for(e.between(0,this.view.state.doc.length,(a,l,{spec:c})=>{for(let u of c.diagnostics){if(o.has(u))continue;o.add(u);let h=-1,f;for(let m=n;m<this.items.length;m++)if(this.items[m].diagnostic==u){h=m;break}h<0?(f=new zf(this.view,u),this.items.splice(n,0,f),s=!0):(f=this.items[h],h>n&&(this.items.splice(n,h-n),s=!0)),t&&f.diagnostic==t.diagnostic?f.dom.hasAttribute("aria-selected")||(f.dom.setAttribute("aria-selected","true"),i=f):f.dom.hasAttribute("aria-selected")&&f.dom.removeAttribute("aria-selected"),n++}});n<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)s=!0,this.items.pop();this.items.length==0&&(this.items.push(new zf(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),s=!0),i?(this.list.setAttribute("aria-activedescendant",i.id),this.view.requestMeasure({key:this,read:()=>({sel:i.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:a,panel:l})=>{let c=l.height/this.list.offsetHeight;a.top<l.top?this.list.scrollTop-=(l.top-a.top)/c:a.bottom>l.bottom&&(this.list.scrollTop+=(a.bottom-l.bottom)/c)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let e=this.list.firstChild;function t(){let n=e;e=n.nextSibling,n.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=this.view.state.field(dr),n=Vn(t.diagnostics,this.items[e].diagnostic);n&&this.view.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0,effects:KO.of(n)})}static open(e){return new co(e)}}function ET(r,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${e}>${encodeURIComponent(r)}</svg>')`}function oa(r){return ET(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${r}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const LT=ke.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:oa("#d11")},".cm-lintRange-warning":{backgroundImage:oa("orange")},".cm-lintRange-info":{backgroundImage:oa("#999")},".cm-lintRange-hint":{backgroundImage:oa("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});function XT(r){return r=="error"?4:r=="warning"?3:r=="info"?2:1}function IT(r){let e="hint",t=1;for(let n of r){let s=XT(n.severity);s>t&&(t=s,e=n.severity)}return e}const VT=[dr,ke.decorations.compute([dr],r=>{let{selected:e,panel:t}=r.field(dr);return!e||!t||e.from==e.to?Ee.none:Ee.set([MT.range(e.from,e.to)])}),v5(AT,{hideOn:PT}),LT],zT=[A5(),B5(),UC(),KQ(),CQ(),LC(),NC(),Ke.allowMultipleSelections.of(!0),mQ(),Ug(MQ,{fallback:!0}),EQ(),pT(),CT(),a5(),u5(),t5(),a3(),ko.of([...bT,...r3,...P3,...aP,...kQ,...GO,...DT])];class tl{static create(e,t,n,s,i){let o=s+(s<<8)+e+(t<<4)|0;return new tl(e,t,n,o,i,[],[])}constructor(e,t,n,s,i,o,a){this.type=e,this.value=t,this.from=n,this.hash=s,this.end=i,this.children=o,this.positions=a,this.hashProp=[[We.contextHash,s]]}addChild(e,t){e.prop(We.contextHash)!=this.hash&&(e=new rt(e.type,e.children,e.positions,e.length,this.hashProp)),this.children.push(e),this.positions.push(t)}toTree(e,t=this.end){let n=this.children.length-1;return n>=0&&(t=Math.max(t,this.positions[n]+this.children[n].length+this.from)),new rt(e.types[this.type],this.children,this.positions,t-this.from).balance({makeTree:(s,i,o)=>new rt(St.none,s,i,o,this.hashProp)})}}var me;(function(r){r[r.Document=1]="Document",r[r.CodeBlock=2]="CodeBlock",r[r.FencedCode=3]="FencedCode",r[r.Blockquote=4]="Blockquote",r[r.HorizontalRule=5]="HorizontalRule",r[r.BulletList=6]="BulletList",r[r.OrderedList=7]="OrderedList",r[r.ListItem=8]="ListItem",r[r.ATXHeading1=9]="ATXHeading1",r[r.ATXHeading2=10]="ATXHeading2",r[r.ATXHeading3=11]="ATXHeading3",r[r.ATXHeading4=12]="ATXHeading4",r[r.ATXHeading5=13]="ATXHeading5",r[r.ATXHeading6=14]="ATXHeading6",r[r.SetextHeading1=15]="SetextHeading1",r[r.SetextHeading2=16]="SetextHeading2",r[r.HTMLBlock=17]="HTMLBlock",r[r.LinkReference=18]="LinkReference",r[r.Paragraph=19]="Paragraph",r[r.CommentBlock=20]="CommentBlock",r[r.ProcessingInstructionBlock=21]="ProcessingInstructionBlock",r[r.Escape=22]="Escape",r[r.Entity=23]="Entity",r[r.HardBreak=24]="HardBreak",r[r.Emphasis=25]="Emphasis",r[r.StrongEmphasis=26]="StrongEmphasis",r[r.Link=27]="Link",r[r.Image=28]="Image",r[r.InlineCode=29]="InlineCode",r[r.HTMLTag=30]="HTMLTag",r[r.Comment=31]="Comment",r[r.ProcessingInstruction=32]="ProcessingInstruction",r[r.Autolink=33]="Autolink",r[r.HeaderMark=34]="HeaderMark",r[r.QuoteMark=35]="QuoteMark",r[r.ListMark=36]="ListMark",r[r.LinkMark=37]="LinkMark",r[r.EmphasisMark=38]="EmphasisMark",r[r.CodeMark=39]="CodeMark",r[r.CodeText=40]="CodeText",r[r.CodeInfo=41]="CodeInfo",r[r.LinkTitle=42]="LinkTitle",r[r.LinkLabel=43]="LinkLabel",r[r.URL=44]="URL"})(me||(me={}));class NT{constructor(e,t){this.start=e,this.content=t,this.marks=[],this.parsers=[]}}class WT{constructor(){this.text="",this.baseIndent=0,this.basePos=0,this.depth=0,this.markers=[],this.pos=0,this.indent=0,this.next=-1}forward(){this.basePos>this.pos&&this.forwardInner()}forwardInner(){let e=this.skipSpace(this.basePos);this.indent=this.countIndent(e,this.pos,this.indent),this.pos=e,this.next=e==this.text.length?-1:this.text.charCodeAt(e)}skipSpace(e){return Ni(this.text,e)}reset(e){for(this.text=e,this.baseIndent=this.basePos=this.pos=this.indent=0,this.forwardInner(),this.depth=1;this.markers.length;)this.markers.pop()}moveBase(e){this.basePos=e,this.baseIndent=this.countIndent(e,this.pos,this.indent)}moveBaseColumn(e){this.baseIndent=e,this.basePos=this.findColumn(e)}addMarker(e){this.markers.push(e)}countIndent(e,t=0,n=0){for(let s=t;s<e;s++)n+=this.text.charCodeAt(s)==9?4-n%4:1;return n}findColumn(e){let t=0;for(let n=0;t<this.text.length&&n<e;t++)n+=this.text.charCodeAt(t)==9?4-n%4:1;return t}scrub(){if(!this.baseIndent)return this.text;let e="";for(let t=0;t<this.basePos;t++)e+=" ";return e+this.text.slice(this.basePos)}}function Nf(r,e,t){if(t.pos==t.text.length||r!=e.block&&t.indent>=e.stack[t.depth+1].value+t.baseIndent)return!0;if(t.indent>=t.baseIndent+4)return!1;let n=(r.type==me.OrderedList?Ph:Qh)(t,e,!1);return n>0&&(r.type!=me.BulletList||Ch(t,e,!1)<0)&&t.text.charCodeAt(t.pos+n-1)==r.value}const t0={[me.Blockquote](r,e,t){return t.next!=62?!1:(t.markers.push(Je(me.QuoteMark,e.lineStart+t.pos,e.lineStart+t.pos+1)),t.moveBase(t.pos+(Tr(t.text.charCodeAt(t.pos+1))?2:1)),r.end=e.lineStart+t.text.length,!0)},[me.ListItem](r,e,t){return t.indent<t.baseIndent+r.value&&t.next>-1?!1:(t.moveBaseColumn(t.baseIndent+r.value),!0)},[me.OrderedList]:Nf,[me.BulletList]:Nf,[me.Document](){return!0}};function Tr(r){return r==32||r==9||r==10||r==13}function Ni(r,e=0){for(;e<r.length&&Tr(r.charCodeAt(e));)e++;return e}function Wf(r,e,t){for(;e>t&&Tr(r.charCodeAt(e-1));)e--;return e}function r0(r){if(r.next!=96&&r.next!=126)return-1;let e=r.pos+1;for(;e<r.text.length&&r.text.charCodeAt(e)==r.next;)e++;if(e<r.pos+3)return-1;if(r.next==96){for(let t=e;t<r.text.length;t++)if(r.text.charCodeAt(t)==96)return-1}return e}function n0(r){return r.next!=62?-1:r.text.charCodeAt(r.pos+1)==32?2:1}function Ch(r,e,t){if(r.next!=42&&r.next!=45&&r.next!=95)return-1;let n=1;for(let s=r.pos+1;s<r.text.length;s++){let i=r.text.charCodeAt(s);if(i==r.next)n++;else if(!Tr(i))return-1}return t&&r.next==45&&o0(r)>-1&&r.depth==e.stack.length&&e.parser.leafBlockParsers.indexOf(u0.SetextHeading)>-1||n<3?-1:1}function s0(r,e){for(let t=r.stack.length-1;t>=0;t--)if(r.stack[t].type==e)return!0;return!1}function Qh(r,e,t){return(r.next==45||r.next==43||r.next==42)&&(r.pos==r.text.length-1||Tr(r.text.charCodeAt(r.pos+1)))&&(!t||s0(e,me.BulletList)||r.skipSpace(r.pos+2)<r.text.length)?1:-1}function Ph(r,e,t){let n=r.pos,s=r.next;for(;s>=48&&s<=57;){n++;if(n==r.text.length)return-1;s=r.text.charCodeAt(n)}return n==r.pos||n>r.pos+9||s!=46&&s!=41||n<r.text.length-1&&!Tr(r.text.charCodeAt(n+1))||t&&!s0(e,me.OrderedList)&&(r.skipSpace(n+1)==r.text.length||n>r.pos+1||r.next!=49)?-1:n+1-r.pos}function i0(r){if(r.next!=35)return-1;let e=r.pos+1;for(;e<r.text.length&&r.text.charCodeAt(e)==35;)e++;if(e<r.text.length&&r.text.charCodeAt(e)!=32)return-1;let t=e-r.pos;return t>6?-1:t}function o0(r){if(r.next!=45&&r.next!=61||r.indent>=r.baseIndent+4)return-1;let e=r.pos+1;for(;e<r.text.length&&r.text.charCodeAt(e)==r.next;)e++;let t=e;for(;e<r.text.length&&Tr(r.text.charCodeAt(e));)e++;return e==r.text.length?t:-1}const gu=/^[ \t]*$/,a0=/-->/,l0=/\?>/,Ou=[[/^<(?:script|pre|style)(?:\s|>|$)/i,/<\/(?:script|pre|style)>/i],[/^\s*<!--/,a0],[/^\s*<\?/,l0],[/^\s*<![A-Z]/,/>/],[/^\s*<!\[CDATA\[/,/\]\]>/],[/^\s*<\/?(?:address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h1|h2|h3|h4|h5|h6|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul)(?:\s|\/?>|$)/i,gu],[/^\s*(?:<\/[a-z][\w-]*\s*>|<[a-z][\w-]*(\s+[a-z:_][\w-.]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*>)\s*$/i,gu]];function c0(r,e,t){if(r.next!=60)return-1;let n=r.text.slice(r.pos);for(let s=0,i=Ou.length-(t?1:0);s<i;s++)if(Ou[s][0].test(n))return s;return-1}function qf(r,e){let t=r.countIndent(e,r.pos,r.indent),n=r.countIndent(r.skipSpace(e),e,t);return n>=t+5?t+1:n}function Pn(r,e,t){let n=r.length-1;n>=0&&r[n].to==e&&r[n].type==me.CodeText?r[n].to=t:r.push(Je(me.CodeText,e,t))}const aa={LinkReference:void 0,IndentedCode(r,e){let t=e.baseIndent+4;if(e.indent<t)return!1;let n=e.findColumn(t),s=r.lineStart+n,i=r.lineStart+e.text.length,o=[],a=[];for(Pn(o,s,i);r.nextLine()&&e.depth>=r.stack.length;)if(e.pos==e.text.length){Pn(a,r.lineStart-1,r.lineStart);for(let l of e.markers)a.push(l)}else{if(e.indent<t)break;{if(a.length){for(let c of a)c.type==me.CodeText?Pn(o,c.from,c.to):o.push(c);a=[]}Pn(o,r.lineStart-1,r.lineStart);for(let c of e.markers)o.push(c);i=r.lineStart+e.text.length;let l=r.lineStart+e.findColumn(e.baseIndent+4);l<i&&Pn(o,l,i)}}return a.length&&(a=a.filter(l=>l.type!=me.CodeText),a.length&&(e.markers=a.concat(e.markers))),r.addNode(r.buffer.writeElements(o,-s).finish(me.CodeBlock,i-s),s),!0},FencedCode(r,e){let t=r0(e);if(t<0)return!1;let n=r.lineStart+e.pos,s=e.next,i=t-e.pos,o=e.skipSpace(t),a=Wf(e.text,e.text.length,o),l=[Je(me.CodeMark,n,n+i)];o<a&&l.push(Je(me.CodeInfo,r.lineStart+o,r.lineStart+a));for(let c=!0,u=!0,h=!1;r.nextLine()&&e.depth>=r.stack.length;c=!1){let f=e.pos;if(e.indent-e.baseIndent<4)for(;f<e.text.length&&e.text.charCodeAt(f)==s;)f++;if(f-e.pos>=i&&e.skipSpace(f)==e.text.length){for(let m of e.markers)l.push(m);u&&h&&Pn(l,r.lineStart-1,r.lineStart),l.push(Je(me.CodeMark,r.lineStart+e.pos,r.lineStart+f)),r.nextLine();break}else{h=!0,c||(Pn(l,r.lineStart-1,r.lineStart),u=!1);for(let O of e.markers)l.push(O);let m=r.lineStart+e.basePos,g=r.lineStart+e.text.length;m<g&&(Pn(l,m,g),u=!1)}}return r.addNode(r.buffer.writeElements(l,-n).finish(me.FencedCode,r.prevLineEnd()-n),n),!0},Blockquote(r,e){let t=n0(e);return t<0?!1:(r.startContext(me.Blockquote,e.pos),r.addNode(me.QuoteMark,r.lineStart+e.pos,r.lineStart+e.pos+1),e.moveBase(e.pos+t),null)},HorizontalRule(r,e){if(Ch(e,r,!1)<0)return!1;let t=r.lineStart+e.pos;return r.nextLine(),r.addNode(me.HorizontalRule,t),!0},BulletList(r,e){let t=Qh(e,r,!1);if(t<0)return!1;r.block.type!=me.BulletList&&r.startContext(me.BulletList,e.basePos,e.next);let n=qf(e,e.pos+1);return r.startContext(me.ListItem,e.basePos,n-e.baseIndent),r.addNode(me.ListMark,r.lineStart+e.pos,r.lineStart+e.pos+t),e.moveBaseColumn(n),null},OrderedList(r,e){let t=Ph(e,r,!1);if(t<0)return!1;r.block.type!=me.OrderedList&&r.startContext(me.OrderedList,e.basePos,e.text.charCodeAt(e.pos+t-1));let n=qf(e,e.pos+t);return r.startContext(me.ListItem,e.basePos,n-e.baseIndent),r.addNode(me.ListMark,r.lineStart+e.pos,r.lineStart+e.pos+t),e.moveBaseColumn(n),null},ATXHeading(r,e){let t=i0(e);if(t<0)return!1;let n=e.pos,s=r.lineStart+n,i=Wf(e.text,e.text.length,n),o=i;for(;o>n&&e.text.charCodeAt(o-1)==e.next;)o--;(o==i||o==n||!Tr(e.text.charCodeAt(o-1)))&&(o=e.text.length);let a=r.buffer.write(me.HeaderMark,0,t).writeElements(r.parser.parseInline(e.text.slice(n+t+1,o),s+t+1),-s);o<e.text.length&&a.write(me.HeaderMark,o-n,i-n);let l=a.finish(me.ATXHeading1-1+t,e.text.length-n);return r.nextLine(),r.addNode(l,s),!0},HTMLBlock(r,e){let t=c0(e,r,!1);if(t<0)return!1;let n=r.lineStart+e.pos,s=Ou[t][1],i=[],o=s!=gu;for(;!s.test(e.text)&&r.nextLine();){if(e.depth<r.stack.length){o=!1;break}for(let c of e.markers)i.push(c)}o&&r.nextLine();let a=s==a0?me.CommentBlock:s==l0?me.ProcessingInstructionBlock:me.HTMLBlock,l=r.prevLineEnd();return r.addNode(r.buffer.writeElements(i,-n).finish(a,l-n),n),!0},SetextHeading:void 0};class qT{constructor(e){this.stage=0,this.elts=[],this.pos=0,this.start=e.start,this.advance(e.content)}nextLine(e,t,n){if(this.stage==-1)return!1;let s=n.content+`
|
|
23
|
+
`+t.scrub(),i=this.advance(s);return i>-1&&i<s.length?this.complete(e,n,i):!1}finish(e,t){return(this.stage==2||this.stage==3)&&Ni(t.content,this.pos)==t.content.length?this.complete(e,t,t.content.length):!1}complete(e,t,n){return e.addLeafElement(t,Je(me.LinkReference,this.start,this.start+n,this.elts)),!0}nextStage(e){return e?(this.pos=e.to-this.start,this.elts.push(e),this.stage++,!0):(e===!1&&(this.stage=-1),!1)}advance(e){for(;;){if(this.stage==-1)return-1;if(this.stage==0){if(!this.nextStage(b0(e,this.pos,this.start,!0)))return-1;if(e.charCodeAt(this.pos)!=58)return this.stage=-1;this.elts.push(Je(me.LinkMark,this.pos+this.start,this.pos+this.start+1)),this.pos++}else if(this.stage==1){if(!this.nextStage(O0(e,Ni(e,this.pos),this.start)))return-1}else if(this.stage==2){let t=Ni(e,this.pos),n=0;if(t>this.pos){let s=v0(e,t,this.start);if(s){let i=nc(e,s.to-this.start);i>0&&(this.nextStage(s),n=i)}}return n||(n=nc(e,this.pos)),n>0&&n<e.length?n:-1}else return nc(e,this.pos)}}}function nc(r,e){for(;e<r.length;e++){let t=r.charCodeAt(e);if(t==10)break;if(!Tr(t))return-1}return e}class jT{nextLine(e,t,n){let s=t.depth<e.stack.length?-1:o0(t),i=t.next;if(s<0)return!1;let o=Je(me.HeaderMark,e.lineStart+t.pos,e.lineStart+s);return e.nextLine(),e.addLeafElement(n,Je(i==61?me.SetextHeading1:me.SetextHeading2,n.start,e.prevLineEnd(),[...e.parser.parseInline(n.content,n.start),o])),!0}finish(){return!1}}const u0={LinkReference(r,e){return e.content.charCodeAt(0)==91?new qT(e):null},SetextHeading(){return new jT}},YT=[(r,e)=>i0(e)>=0,(r,e)=>r0(e)>=0,(r,e)=>n0(e)>=0,(r,e)=>Qh(e,r,!0)>=0,(r,e)=>Ph(e,r,!0)>=0,(r,e)=>Ch(e,r,!0)>=0,(r,e)=>c0(e,r,!0)>=0],FT={text:"",end:0};class UT{constructor(e,t,n,s){this.parser=e,this.input=t,this.ranges=s,this.line=new WT,this.atEnd=!1,this.reusePlaceholders=new Map,this.stoppedAt=null,this.rangeI=0,this.to=s[s.length-1].to,this.lineStart=this.absoluteLineStart=this.absoluteLineEnd=s[0].from,this.block=tl.create(me.Document,0,this.lineStart,0,0),this.stack=[this.block],this.fragments=n.length?new KT(n,t):null,this.readLine()}get parsedPos(){return this.absoluteLineStart}advance(){if(this.stoppedAt!=null&&this.absoluteLineStart>this.stoppedAt)return this.finish();let{line:e}=this;for(;;){for(let n=0;;){let s=e.depth<this.stack.length?this.stack[this.stack.length-1]:null;for(;n<e.markers.length&&(!s||e.markers[n].from<s.end);){let i=e.markers[n++];this.addNode(i.type,i.from,i.to)}if(!s)break;this.finishContext()}if(e.pos<e.text.length)break;if(!this.nextLine())return this.finish()}if(this.fragments&&this.reuseFragment(e.basePos))return null;e:for(;;){for(let n of this.parser.blockParsers)if(n){let s=n(this,e);if(s!=!1){if(s==!0)return null;e.forward();continue e}}break}let t=new NT(this.lineStart+e.pos,e.text.slice(e.pos));for(let n of this.parser.leafBlockParsers)if(n){let s=n(this,t);s&&t.parsers.push(s)}e:for(;this.nextLine()&&e.pos!=e.text.length;){if(e.indent<e.baseIndent+4){for(let n of this.parser.endLeafBlock)if(n(this,e,t))break e}for(let n of t.parsers)if(n.nextLine(this,e,t))return null;t.content+=`
|
|
24
|
+
`+e.scrub();for(let n of e.markers)t.marks.push(n)}return this.finishLeaf(t),null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}reuseFragment(e){if(!this.fragments.moveTo(this.absoluteLineStart+e,this.absoluteLineStart)||!this.fragments.matches(this.block.hash))return!1;let t=this.fragments.takeNodes(this);return t?(this.absoluteLineStart+=t,this.lineStart=x0(this.absoluteLineStart,this.ranges),this.moveRangeI(),this.absoluteLineStart<this.to?(this.lineStart++,this.absoluteLineStart++,this.readLine()):(this.atEnd=!0,this.readLine()),!0):!1}get depth(){return this.stack.length}parentType(e=this.depth-1){return this.parser.nodeSet.types[this.stack[e].type]}nextLine(){return this.lineStart+=this.line.text.length,this.absoluteLineEnd>=this.to?(this.absoluteLineStart=this.absoluteLineEnd,this.atEnd=!0,this.readLine(),!1):(this.lineStart++,this.absoluteLineStart=this.absoluteLineEnd+1,this.moveRangeI(),this.readLine(),!0)}peekLine(){return this.scanLine(this.absoluteLineEnd+1).text}moveRangeI(){for(;this.rangeI<this.ranges.length-1&&this.absoluteLineStart>=this.ranges[this.rangeI].to;)this.rangeI++,this.absoluteLineStart=Math.max(this.absoluteLineStart,this.ranges[this.rangeI].from)}scanLine(e){let t=FT;if(t.end=e,e>=this.to)t.text="";else if(t.text=this.lineChunkAt(e),t.end+=t.text.length,this.ranges.length>1){let n=this.absoluteLineStart,s=this.rangeI;for(;this.ranges[s].to<t.end;){s++;let i=this.ranges[s].from,o=this.lineChunkAt(i);t.end=i+o.length,t.text=t.text.slice(0,this.ranges[s-1].to-n)+o,n=t.end-t.text.length}}return t}readLine(){let{line:e}=this,{text:t,end:n}=this.scanLine(this.absoluteLineStart);for(this.absoluteLineEnd=n,e.reset(t);e.depth<this.stack.length;e.depth++){let s=this.stack[e.depth],i=this.parser.skipContextMarkup[s.type];if(!i)throw new Error("Unhandled block context "+me[s.type]);let o=this.line.markers.length;if(!i(s,this,e)){this.line.markers.length>o&&(s.end=this.line.markers[this.line.markers.length-1].to),e.forward();break}e.forward()}}lineChunkAt(e){let t=this.input.chunk(e),n;if(this.input.lineChunks)n=t==`
|
|
25
|
+
`?"":t;else{let s=t.indexOf(`
|
|
26
|
+
`);n=s<0?t:t.slice(0,s)}return e+n.length>this.to?n.slice(0,this.to-e):n}prevLineEnd(){return this.atEnd?this.lineStart:this.lineStart-1}startContext(e,t,n=0){this.block=tl.create(e,n,this.lineStart+t,this.block.hash,this.lineStart+this.line.text.length),this.stack.push(this.block)}startComposite(e,t,n=0){this.startContext(this.parser.getNodeType(e),t,n)}addNode(e,t,n){typeof e=="number"&&(e=new rt(this.parser.nodeSet.types[e],Gs,Gs,(n??this.prevLineEnd())-t)),this.block.addChild(e,t-this.block.from)}addElement(e){this.block.addChild(e.toTree(this.parser.nodeSet),e.from-this.block.from)}addLeafElement(e,t){this.addNode(this.buffer.writeElements(bu(t.children,e.marks),-t.from).finish(t.type,t.to-t.from),t.from)}finishContext(){let e=this.stack.pop(),t=this.stack[this.stack.length-1];t.addChild(e.toTree(this.parser.nodeSet),e.from-t.from),this.block=t}finish(){for(;this.stack.length>1;)this.finishContext();return this.addGaps(this.block.toTree(this.parser.nodeSet,this.lineStart))}addGaps(e){return this.ranges.length>1?h0(this.ranges,0,e.topNode,this.ranges[0].from,this.reusePlaceholders):e}finishLeaf(e){for(let n of e.parsers)if(n.finish(this,e))return;let t=bu(this.parser.parseInline(e.content,e.start),e.marks);this.addNode(this.buffer.writeElements(t,-e.start).finish(me.Paragraph,e.content.length),e.start)}elt(e,t,n,s){return typeof e=="string"?Je(this.parser.getNodeType(e),t,n,s):new m0(e,t)}get buffer(){return new f0(this.parser.nodeSet)}}function h0(r,e,t,n,s){let i=r[e].to,o=[],a=[],l=t.from+n;function c(u,h){for(;h?u>=i:u>i;){let f=r[e+1].from-i;n+=f,u+=f,e++,i=r[e].to}}for(let u=t.firstChild;u;u=u.nextSibling){c(u.from+n,!0);let h=u.from+n,f,m=s.get(u.tree);m?f=m:u.to+n>i?(f=h0(r,e,u,n,s),c(u.to+n,!1)):f=u.toTree(),o.push(f),a.push(h-l)}return c(t.to+n,!1),new rt(t.type,o,a,t.to+n-l,t.tree?t.tree.propValues:void 0)}class Ql extends ih{constructor(e,t,n,s,i,o,a,l,c){super(),this.nodeSet=e,this.blockParsers=t,this.leafBlockParsers=n,this.blockNames=s,this.endLeafBlock=i,this.skipContextMarkup=o,this.inlineParsers=a,this.inlineNames=l,this.wrappers=c,this.nodeTypes=Object.create(null);for(let u of e.types)this.nodeTypes[u.name]=u.id}createParse(e,t,n){let s=new UT(this,e,t,n);for(let i of this.wrappers)s=i(s,e,t,n);return s}configure(e){let t=vu(e);if(!t)return this;let{nodeSet:n,skipContextMarkup:s}=this,i=this.blockParsers.slice(),o=this.leafBlockParsers.slice(),a=this.blockNames.slice(),l=this.inlineParsers.slice(),c=this.inlineNames.slice(),u=this.endLeafBlock.slice(),h=this.wrappers;if(Ti(t.defineNodes)){s=Object.assign({},s);let f=n.types.slice(),m;for(let g of t.defineNodes){let{name:O,block:b,composite:x,style:w}=typeof g=="string"?{name:g}:g;if(f.some(_=>_.name==O))continue;x&&(s[f.length]=(_,I,V)=>x(I,V,_.value));let S=f.length,C=x?["Block","BlockContext"]:b?S>=me.ATXHeading1&&S<=me.SetextHeading2?["Block","LeafBlock","Heading"]:["Block","LeafBlock"]:void 0;f.push(St.define({id:S,name:O,props:C&&[[We.group,C]]})),w&&(m||(m={}),Array.isArray(w)||w instanceof hr?m[O]=w:Object.assign(m,w))}n=new So(f),m&&(n=n.extend(ei(m)))}if(Ti(t.props)&&(n=n.extend(...t.props)),Ti(t.remove))for(let f of t.remove){let m=this.blockNames.indexOf(f),g=this.inlineNames.indexOf(f);m>-1&&(i[m]=o[m]=void 0),g>-1&&(l[g]=void 0)}if(Ti(t.parseBlock))for(let f of t.parseBlock){let m=a.indexOf(f.name);if(m>-1)i[m]=f.parse,o[m]=f.leaf;else{let g=f.before?la(a,f.before):f.after?la(a,f.after)+1:a.length-1;i.splice(g,0,f.parse),o.splice(g,0,f.leaf),a.splice(g,0,f.name)}f.endLeaf&&u.push(f.endLeaf)}if(Ti(t.parseInline))for(let f of t.parseInline){let m=c.indexOf(f.name);if(m>-1)l[m]=f.parse;else{let g=f.before?la(c,f.before):f.after?la(c,f.after)+1:c.length-1;l.splice(g,0,f.parse),c.splice(g,0,f.name)}}return t.wrap&&(h=h.concat(t.wrap)),new Ql(n,i,o,a,u,s,l,c,h)}getNodeType(e){let t=this.nodeTypes[e];if(t==null)throw new RangeError(`Unknown node type '${e}'`);return t}parseInline(e,t){let n=new Th(this,e,t);e:for(let s=t;s<n.end;){let i=n.char(s);for(let o of this.inlineParsers)if(o){let a=o(n,i,s);if(a>=0){s=a;continue e}}s++}return n.resolveMarkers(0)}}function Ti(r){return r!=null&&r.length>0}function vu(r){if(!Array.isArray(r))return r;if(r.length==0)return null;let e=vu(r[0]);if(r.length==1)return e;let t=vu(r.slice(1));if(!t||!e)return e||t;let n=(o,a)=>(o||Gs).concat(a||Gs),s=e.wrap,i=t.wrap;return{props:n(e.props,t.props),defineNodes:n(e.defineNodes,t.defineNodes),parseBlock:n(e.parseBlock,t.parseBlock),parseInline:n(e.parseInline,t.parseInline),remove:n(e.remove,t.remove),wrap:s?i?(o,a,l,c)=>s(i(o,a,l,c),a,l,c):s:i}}function la(r,e){let t=r.indexOf(e);if(t<0)throw new RangeError(`Position specified relative to unknown parser ${e}`);return t}let d0=[St.none];for(let r=1,e;e=me[r];r++)d0[r]=St.define({id:r,name:e,props:r>=me.Escape?[]:[[We.group,r in t0?["Block","BlockContext"]:["Block","LeafBlock"]]],top:e=="Document"});const Gs=[];class f0{constructor(e){this.nodeSet=e,this.content=[],this.nodes=[]}write(e,t,n,s=0){return this.content.push(e,t,n,4+s*4),this}writeElements(e,t=0){for(let n of e)n.writeTo(this,t);return this}finish(e,t){return rt.build({buffer:this.content,nodeSet:this.nodeSet,reused:this.nodes,topID:e,length:t})}}let uo=class{constructor(e,t,n,s=Gs){this.type=e,this.from=t,this.to=n,this.children=s}writeTo(e,t){let n=e.content.length;e.writeElements(this.children,t),e.content.push(this.type,this.from+t,this.to+t,e.content.length+4-n)}toTree(e){return new f0(e).writeElements(this.children,-this.from).finish(this.type,this.to-this.from)}};class m0{constructor(e,t){this.tree=e,this.from=t}get to(){return this.from+this.tree.length}get type(){return this.tree.type.id}get children(){return Gs}writeTo(e,t){e.nodes.push(this.tree),e.content.push(e.nodes.length-1,this.from+t,this.to+t,-1)}toTree(){return this.tree}}function Je(r,e,t,n){return new uo(r,e,t,n)}const p0={resolve:"Emphasis",mark:"EmphasisMark"},g0={resolve:"Emphasis",mark:"EmphasisMark"},es={},rl={};class ur{constructor(e,t,n,s){this.type=e,this.from=t,this.to=n,this.side=s}}const jf="!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~";let ho=/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~\xA1\u2010-\u2027]/;try{ho=new RegExp("[\\p{S}|\\p{P}]","u")}catch{}const sc={Escape(r,e,t){if(e!=92||t==r.end-1)return-1;let n=r.char(t+1);for(let s=0;s<jf.length;s++)if(jf.charCodeAt(s)==n)return r.append(Je(me.Escape,t,t+2));return-1},Entity(r,e,t){if(e!=38)return-1;let n=/^(?:#\d+|#x[a-f\d]+|\w+);/i.exec(r.slice(t+1,t+31));return n?r.append(Je(me.Entity,t,t+1+n[0].length)):-1},InlineCode(r,e,t){if(e!=96||t&&r.char(t-1)==96)return-1;let n=t+1;for(;n<r.end&&r.char(n)==96;)n++;let s=n-t,i=0;for(;n<r.end;n++)if(r.char(n)==96){if(i++,i==s&&r.char(n+1)!=96)return r.append(Je(me.InlineCode,t,n+1,[Je(me.CodeMark,t,t+s),Je(me.CodeMark,n+1-s,n+1)]))}else i=0;return-1},HTMLTag(r,e,t){if(e!=60||t==r.end-1)return-1;let n=r.slice(t+1,r.end),s=/^(?:[a-z][-\w+.]+:[^\s>]+|[a-z\d.!#$%&'*+/=?^_`{|}~-]+@[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?(?:\.[a-z\d](?:[a-z\d-]{0,61}[a-z\d])?)*)>/i.exec(n);if(s)return r.append(Je(me.Autolink,t,t+1+s[0].length,[Je(me.LinkMark,t,t+1),Je(me.URL,t+1,t+s[0].length),Je(me.LinkMark,t+s[0].length,t+1+s[0].length)]));let i=/^!--[^>](?:-[^-]|[^-])*?-->/i.exec(n);if(i)return r.append(Je(me.Comment,t,t+1+i[0].length));let o=/^\?[^]*?\?>/.exec(n);if(o)return r.append(Je(me.ProcessingInstruction,t,t+1+o[0].length));let a=/^(?:![A-Z][^]*?>|!\[CDATA\[[^]*?\]\]>|\/\s*[a-zA-Z][\w-]*\s*>|\s*[a-zA-Z][\w-]*(\s+[a-zA-Z:_][\w-.:]*(?:\s*=\s*(?:[^\s"'=<>`]+|'[^']*'|"[^"]*"))?)*\s*(\/\s*)?>)/.exec(n);return a?r.append(Je(me.HTMLTag,t,t+1+a[0].length)):-1},Emphasis(r,e,t){if(e!=95&&e!=42)return-1;let n=t+1;for(;r.char(n)==e;)n++;let s=r.slice(t-1,t),i=r.slice(n,n+1),o=ho.test(s),a=ho.test(i),l=/\s|^$/.test(s),c=/\s|^$/.test(i),u=!c&&(!a||l||o),h=!l&&(!o||c||a),f=u&&(e==42||!h||o),m=h&&(e==42||!u||a);return r.append(new ur(e==95?p0:g0,t,n,(f?1:0)|(m?2:0)))},HardBreak(r,e,t){if(e==92&&r.char(t+1)==10)return r.append(Je(me.HardBreak,t,t+2));if(e==32){let n=t+1;for(;r.char(n)==32;)n++;if(r.char(n)==10&&n>=t+2)return r.append(Je(me.HardBreak,t,n+1))}return-1},Link(r,e,t){return e==91?r.append(new ur(es,t,t+1,1)):-1},Image(r,e,t){return e==33&&r.char(t+1)==91?r.append(new ur(rl,t,t+2,1)):-1},LinkEnd(r,e,t){if(e!=93)return-1;for(let n=r.parts.length-1;n>=0;n--){let s=r.parts[n];if(s instanceof ur&&(s.type==es||s.type==rl)){if(!s.side||r.skipSpace(s.to)==t&&!/[(\[]/.test(r.slice(t+1,t+2)))return r.parts[n]=null,-1;let i=r.takeContent(n),o=r.parts[n]=GT(r,i,s.type==es?me.Link:me.Image,s.from,t+1);if(s.type==es)for(let a=0;a<n;a++){let l=r.parts[a];l instanceof ur&&l.type==es&&(l.side=0)}return o.to}}return-1}};function GT(r,e,t,n,s){let{text:i}=r,o=r.char(s),a=s;if(e.unshift(Je(me.LinkMark,n,n+(t==me.Image?2:1))),e.push(Je(me.LinkMark,s-1,s)),o==40){let l=r.skipSpace(s+1),c=O0(i,l-r.offset,r.offset),u;c&&(l=r.skipSpace(c.to),l!=c.to&&(u=v0(i,l-r.offset,r.offset),u&&(l=r.skipSpace(u.to)))),r.char(l)==41&&(e.push(Je(me.LinkMark,s,s+1)),a=l+1,c&&e.push(c),u&&e.push(u),e.push(Je(me.LinkMark,l,a)))}else if(o==91){let l=b0(i,s-r.offset,r.offset,!1);l&&(e.push(l),a=l.to)}return Je(t,n,a,e)}function O0(r,e,t){if(r.charCodeAt(e)==60){for(let s=e+1;s<r.length;s++){let i=r.charCodeAt(s);if(i==62)return Je(me.URL,e+t,s+1+t);if(i==60||i==10)return!1}return null}else{let s=0,i=e;for(let o=!1;i<r.length;i++){let a=r.charCodeAt(i);if(Tr(a))break;if(o)o=!1;else if(a==40)s++;else if(a==41){if(!s)break;s--}else a==92&&(o=!0)}return i>e?Je(me.URL,e+t,i+t):i==r.length?null:!1}}function v0(r,e,t){let n=r.charCodeAt(e);if(n!=39&&n!=34&&n!=40)return!1;let s=n==40?41:n;for(let i=e+1,o=!1;i<r.length;i++){let a=r.charCodeAt(i);if(o)o=!1;else{if(a==s)return Je(me.LinkTitle,e+t,i+1+t);a==92&&(o=!0)}}return null}function b0(r,e,t,n){for(let s=!1,i=e+1,o=Math.min(r.length,i+999);i<o;i++){let a=r.charCodeAt(i);if(s)s=!1;else{if(a==93)return n?!1:Je(me.LinkLabel,e+t,i+1+t);if(n&&!Tr(a)&&(n=!1),a==91)return!1;a==92&&(s=!0)}}return null}class Th{constructor(e,t,n){this.parser=e,this.text=t,this.offset=n,this.parts=[]}char(e){return e>=this.end?-1:this.text.charCodeAt(e-this.offset)}get end(){return this.offset+this.text.length}slice(e,t){return this.text.slice(e-this.offset,t-this.offset)}append(e){return this.parts.push(e),e.to}addDelimiter(e,t,n,s,i){return this.append(new ur(e,t,n,(s?1:0)|(i?2:0)))}get hasOpenLink(){for(let e=this.parts.length-1;e>=0;e--){let t=this.parts[e];if(t instanceof ur&&(t.type==es||t.type==rl))return!0}return!1}addElement(e){return this.append(e)}resolveMarkers(e){for(let n=e;n<this.parts.length;n++){let s=this.parts[n];if(!(s instanceof ur&&s.type.resolve&&s.side&2))continue;let i=s.type==p0||s.type==g0,o=s.to-s.from,a,l=n-1;for(;l>=e;l--){let O=this.parts[l];if(O instanceof ur&&O.side&1&&O.type==s.type&&!(i&&(s.side&1||O.side&2)&&(O.to-O.from+o)%3==0&&((O.to-O.from)%3||o%3))){a=O;break}}if(!a)continue;let c=s.type.resolve,u=[],h=a.from,f=s.to;if(i){let O=Math.min(2,a.to-a.from,o);h=a.to-O,f=s.from+O,c=O==1?"Emphasis":"StrongEmphasis"}a.type.mark&&u.push(this.elt(a.type.mark,h,a.to));for(let O=l+1;O<n;O++)this.parts[O]instanceof uo&&u.push(this.parts[O]),this.parts[O]=null;s.type.mark&&u.push(this.elt(s.type.mark,s.from,f));let m=this.elt(c,h,f,u);this.parts[l]=i&&a.from!=h?new ur(a.type,a.from,h,a.side):null,(this.parts[n]=i&&s.to!=f?new ur(s.type,f,s.to,s.side):null)?this.parts.splice(n,0,m):this.parts[n]=m}let t=[];for(let n=e;n<this.parts.length;n++){let s=this.parts[n];s instanceof uo&&t.push(s)}return t}findOpeningDelimiter(e){for(let t=this.parts.length-1;t>=0;t--){let n=this.parts[t];if(n instanceof ur&&n.type==e&&n.side&1)return t}return null}takeContent(e){let t=this.resolveMarkers(e);return this.parts.length=e,t}getDelimiterAt(e){let t=this.parts[e];return t instanceof ur?t:null}skipSpace(e){return Ni(this.text,e-this.offset)+this.offset}elt(e,t,n,s){return typeof e=="string"?Je(this.parser.getNodeType(e),t,n,s):new m0(e,t)}}Th.linkStart=es;Th.imageStart=rl;function bu(r,e){if(!e.length)return r;if(!r.length)return e;let t=r.slice(),n=0;for(let s of e){for(;n<t.length&&t[n].to<s.to;)n++;if(n<t.length&&t[n].from<s.from){let i=t[n];i instanceof uo&&(t[n]=new uo(i.type,i.from,i.to,bu(i.children,[s])))}else t.splice(n++,0,s)}return t}const HT=[me.CodeBlock,me.ListItem,me.OrderedList,me.BulletList];let KT=class{constructor(e,t){this.fragments=e,this.input=t,this.i=0,this.fragment=null,this.fragmentEnd=-1,this.cursor=null,e.length&&(this.fragment=e[this.i++])}nextFragment(){this.fragment=this.i<this.fragments.length?this.fragments[this.i++]:null,this.cursor=null,this.fragmentEnd=-1}moveTo(e,t){for(;this.fragment&&this.fragment.to<=e;)this.nextFragment();if(!this.fragment||this.fragment.from>(e?e-1:0))return!1;if(this.fragmentEnd<0){let i=this.fragment.to;for(;i>0&&this.input.read(i-1,i)!=`
|
|
27
|
+
`;)i--;this.fragmentEnd=i?i-1:0}let n=this.cursor;n||(n=this.cursor=this.fragment.tree.cursor(),n.firstChild());let s=e+this.fragment.offset;for(;n.to<=s;)if(!n.parent())return!1;for(;;){if(n.from>=s)return this.fragment.from<=t;if(!n.childAfter(s))return!1}}matches(e){let t=this.cursor.tree;return t&&t.prop(We.contextHash)==e}takeNodes(e){let t=this.cursor,n=this.fragment.offset,s=this.fragmentEnd-(this.fragment.openEnd?1:0),i=e.absoluteLineStart,o=i,a=e.block.children.length,l=o,c=a;for(;;){if(t.to-n>s){if(t.type.isAnonymous&&t.firstChild())continue;break}let u=x0(t.from-n,e.ranges);if(t.to-n<=e.ranges[e.rangeI].to)e.addNode(t.tree,u);else{let h=new rt(e.parser.nodeSet.types[me.Paragraph],[],[],0,e.block.hashProp);e.reusePlaceholders.set(h,t.tree),e.addNode(h,u)}if(t.type.is("Block")&&(HT.indexOf(t.type.id)<0?(o=t.to-n,a=e.block.children.length):(o=l,a=c),l=t.to-n,c=e.block.children.length),!t.nextSibling())break}for(;e.block.children.length>a;)e.block.children.pop(),e.block.positions.pop();return o-i}};function x0(r,e){let t=r;for(let n=1;n<e.length;n++){let s=e[n-1].to,i=e[n].from;s<r&&(t-=i-s)}return t}const JT=ei({"Blockquote/...":$.quote,HorizontalRule:$.contentSeparator,"ATXHeading1/... SetextHeading1/...":$.heading1,"ATXHeading2/... SetextHeading2/...":$.heading2,"ATXHeading3/...":$.heading3,"ATXHeading4/...":$.heading4,"ATXHeading5/...":$.heading5,"ATXHeading6/...":$.heading6,"Comment CommentBlock":$.comment,Escape:$.escape,Entity:$.character,"Emphasis/...":$.emphasis,"StrongEmphasis/...":$.strong,"Link/... Image/...":$.link,"OrderedList/... BulletList/...":$.list,"BlockQuote/...":$.quote,"InlineCode CodeText":$.monospace,"URL Autolink":$.url,"HeaderMark HardBreak QuoteMark ListMark LinkMark EmphasisMark CodeMark":$.processingInstruction,"CodeInfo LinkLabel":$.labelName,LinkTitle:$.string,Paragraph:$.content}),eM=new Ql(new So(d0).extend(JT),Object.keys(aa).map(r=>aa[r]),Object.keys(aa).map(r=>u0[r]),Object.keys(aa),YT,t0,Object.keys(sc).map(r=>sc[r]),Object.keys(sc),[]);function tM(r,e,t){let n=[];for(let s=r.firstChild,i=e;;s=s.nextSibling){let o=s?s.from:t;if(o>i&&n.push({from:i,to:o}),!s)break;i=s.to}return n}function rM(r){let{codeParser:e,htmlParser:t}=r;return{wrap:Rg((s,i)=>{let o=s.type.id;if(e&&(o==me.CodeBlock||o==me.FencedCode)){let a="";if(o==me.FencedCode){let c=s.node.getChild(me.CodeInfo);c&&(a=i.read(c.from,c.to))}let l=e(a);if(l)return{parser:l,overlay:c=>c.type.id==me.CodeText,bracketed:o==me.FencedCode}}else if(t&&(o==me.HTMLBlock||o==me.HTMLTag||o==me.CommentBlock))return{parser:t,overlay:tM(s.node,s.from,s.to)};return null})}}const nM={resolve:"Strikethrough",mark:"StrikethroughMark"},sM={defineNodes:[{name:"Strikethrough",style:{"Strikethrough/...":$.strikethrough}},{name:"StrikethroughMark",style:$.processingInstruction}],parseInline:[{name:"Strikethrough",parse(r,e,t){if(e!=126||r.char(t+1)!=126||r.char(t+2)==126)return-1;let n=r.slice(t-1,t),s=r.slice(t+2,t+3),i=/\s|^$/.test(n),o=/\s|^$/.test(s),a=ho.test(n),l=ho.test(s);return r.addDelimiter(nM,t,t+2,!o&&(!l||i||a),!i&&(!a||o||l))},after:"Emphasis"}]};function Wi(r,e,t=0,n,s=0){let i=0,o=!0,a=-1,l=-1,c=!1,u=()=>{n.push(r.elt("TableCell",s+a,s+l,r.parser.parseInline(e.slice(a,l),s+a)))};for(let h=t;h<e.length;h++){let f=e.charCodeAt(h);f==124&&!c?((!o||a>-1)&&i++,o=!1,n&&(a>-1&&u(),n.push(r.elt("TableDelimiter",h+s,h+s+1))),a=l=-1):(c||f!=32&&f!=9)&&(a<0&&(a=h),l=h+1),c=!c&&f==92}return a>-1&&(i++,n&&u()),i}function Yf(r,e){for(let t=e;t<r.length;t++){let n=r.charCodeAt(t);if(n==124)return!0;n==92&&t++}return!1}const y0=/^\|?(\s*:?-+:?\s*\|)+(\s*:?-+:?\s*)?$/;class Ff{constructor(){this.rows=null}nextLine(e,t,n){if(this.rows==null){this.rows=!1;let s;if((t.next==45||t.next==58||t.next==124)&&y0.test(s=t.text.slice(t.pos))){let i=[];Wi(e,n.content,0,i,n.start)==Wi(e,s,t.pos)&&(this.rows=[e.elt("TableHeader",n.start,n.start+n.content.length,i),e.elt("TableDelimiter",e.lineStart+t.pos,e.lineStart+t.text.length)])}}else if(this.rows){let s=[];Wi(e,t.text,t.pos,s,e.lineStart),this.rows.push(e.elt("TableRow",e.lineStart+t.pos,e.lineStart+t.text.length,s))}return!1}finish(e,t){return this.rows?(e.addLeafElement(t,e.elt("Table",t.start,t.start+t.content.length,this.rows)),!0):!1}}const iM={defineNodes:[{name:"Table",block:!0},{name:"TableHeader",style:{"TableHeader/...":$.heading}},"TableRow",{name:"TableCell",style:$.content},{name:"TableDelimiter",style:$.processingInstruction}],parseBlock:[{name:"Table",leaf(r,e){return Yf(e.content,0)?new Ff:null},endLeaf(r,e,t){if(t.parsers.some(s=>s instanceof Ff)||!Yf(e.text,e.basePos))return!1;let n=r.peekLine();return y0.test(n)&&Wi(r,e.text,e.basePos)==Wi(r,n,e.basePos)},before:"SetextHeading"}]};class oM{nextLine(){return!1}finish(e,t){return e.addLeafElement(t,e.elt("Task",t.start,t.start+t.content.length,[e.elt("TaskMarker",t.start,t.start+3),...e.parser.parseInline(t.content.slice(3),t.start+3)])),!0}}const aM={defineNodes:[{name:"Task",block:!0,style:$.list},{name:"TaskMarker",style:$.atom}],parseBlock:[{name:"TaskList",leaf(r,e){return/^\[[ xX]\][ \t]/.test(e.content)&&r.parentType().name=="ListItem"?new oM:null},after:"SetextHeading"}]},Uf=/(www\.)|(https?:\/\/)|([\w.+-]{1,100}@)|(mailto:|xmpp:)/gy,Gf=/[\w-]+(\.[\w-]+)+(\/[^\s<]*)?/gy,lM=/[\w-]+\.[\w-]+($|\/)/,Hf=/[\w.+-]+@[\w-]+(\.[\w.-]+)+/gy,Kf=/\/[a-zA-Z\d@.]+/gy;function Jf(r,e,t,n){let s=0;for(let i=e;i<t;i++)r[i]==n&&s++;return s}function cM(r,e){Gf.lastIndex=e;let t=Gf.exec(r);if(!t||lM.exec(t[0])[0].indexOf("_")>-1)return-1;let n=e+t[0].length;for(;;){let s=r[n-1],i;if(/[?!.,:*_~]/.test(s)||s==")"&&Jf(r,e,n,")")>Jf(r,e,n,"("))n--;else if(s==";"&&(i=/&(?:#\d+|#x[a-f\d]+|\w+);$/.exec(r.slice(e,n))))n=e+i.index;else break}return n}function em(r,e){Hf.lastIndex=e;let t=Hf.exec(r);if(!t)return-1;let n=t[0][t[0].length-1];return n=="_"||n=="-"?-1:e+t[0].length-(n=="."?1:0)}const uM={parseInline:[{name:"Autolink",parse(r,e,t){let n=t-r.offset;if(n&&/\w/.test(r.text[n-1]))return-1;Uf.lastIndex=n;let s=Uf.exec(r.text),i=-1;if(!s)return-1;if(s[1]||s[2]){if(i=cM(r.text,n+s[0].length),i>-1&&r.hasOpenLink){let o=/([^\[\]]|\[[^\]]*\])*/.exec(r.text.slice(n,i));i=n+o[0].length}}else s[3]?i=em(r.text,n):(i=em(r.text,n+s[0].length),i>-1&&s[0]=="xmpp:"&&(Kf.lastIndex=i,s=Kf.exec(r.text),s&&(i=s.index+s[0].length)));return i<0?-1:(r.addElement(r.elt("URL",t,i+r.offset)),i+r.offset)}}]},hM=[iM,aM,sM,uM];function k0(r,e,t){return(n,s,i)=>{if(s!=r||n.char(i+1)==r)return-1;let o=[n.elt(t,i,i+1)];for(let a=i+1;a<n.end;a++){let l=n.char(a);if(l==r)return n.addElement(n.elt(e,i,a+1,o.concat(n.elt(t,a,a+1))));if(l==92&&o.push(n.elt("Escape",a,a+++2)),Tr(l))break}return-1}}const dM={defineNodes:[{name:"Superscript",style:$.special($.content)},{name:"SuperscriptMark",style:$.processingInstruction}],parseInline:[{name:"Superscript",parse:k0(94,"Superscript","SuperscriptMark")}]},fM={defineNodes:[{name:"Subscript",style:$.special($.content)},{name:"SubscriptMark",style:$.processingInstruction}],parseInline:[{name:"Subscript",parse:k0(126,"Subscript","SubscriptMark")}]},mM={defineNodes:[{name:"Emoji",style:$.character}],parseInline:[{name:"Emoji",parse(r,e,t){let n;return e!=58||!(n=/^[a-zA-Z_0-9]+:/.exec(r.slice(t+1,r.end)))?-1:r.addElement(r.elt("Emoji",t,t+1+n[0].length))}}]};var tm={};class nl{constructor(e,t,n,s,i,o,a,l,c,u=0,h){this.p=e,this.stack=t,this.state=n,this.reducePos=s,this.pos=i,this.score=o,this.buffer=a,this.bufferBase=l,this.curContext=c,this.lookAhead=u,this.parent=h}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,n=0){let s=e.parser.context;return new nl(e,[],t,n,n,0,[],0,s?new rm(s,s.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let n=e>>19,s=e&65535,{parser:i}=this.p,o=this.reducePos<this.pos-25&&this.setLookAhead(this.pos),a=i.dynamicPrecedence(s);if(a&&(this.score+=a),n==0){this.pushState(i.getGoto(this.state,s,!0),this.reducePos),s<i.minRepeatTerm&&this.storeNode(s,this.reducePos,this.reducePos,o?8:4,!0),this.reduceContext(s,this.reducePos);return}let l=this.stack.length-(n-1)*3-(e&262144?6:0),c=l?this.stack[l-2]:this.p.ranges[0].from,u=this.reducePos-c;u>=2e3&&!(!((t=this.p.parser.nodeSet.types[s])===null||t===void 0)&&t.isAnonymous)&&(c==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=c,this.p.lastBigReductionSize=u));let h=l?this.stack[l-1]:0,f=this.bufferBase+this.buffer.length-h;if(s<i.minRepeatTerm||e&131072){let m=i.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(s,c,m,f+4,!0)}if(e&262144)this.state=this.stack[l];else{let m=this.stack[l-3];this.state=i.getGoto(m,s,!0)}for(;this.stack.length>l;)this.stack.pop();this.reduceContext(s,c)}storeNode(e,t,n,s=4,i=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let o=this,a=this.buffer.length;if(a==0&&o.parent&&(a=o.bufferBase-o.parent.bufferBase,o=o.parent),a>0&&o.buffer[a-4]==0&&o.buffer[a-1]>-1){if(t==n)return;if(o.buffer[a-2]>=t){o.buffer[a-2]=n;return}}}if(!i||this.pos==n)this.buffer.push(e,t,n,s);else{let o=this.buffer.length;if(o>0&&(this.buffer[o-4]!=0||this.buffer[o-1]<0)){let a=!1;for(let l=o;l>0&&this.buffer[l-2]>n;l-=4)if(this.buffer[l-1]>=0){a=!0;break}if(a)for(;o>0&&this.buffer[o-2]>n;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,s>4&&(s-=4)}this.buffer[o]=e,this.buffer[o+1]=t,this.buffer[o+2]=n,this.buffer[o+3]=s}}shift(e,t,n,s){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let i=e,{parser:o}=this.p;this.pos=s;let a=o.stateFlag(i,1);!a&&(s>n||t<=o.maxNode)&&(this.reducePos=s),this.pushState(i,a?n:Math.min(n,this.reducePos)),this.shiftContext(t,n),t<=o.maxNode&&this.buffer.push(t,n,s,4)}else this.pos=s,this.shiftContext(t,n),t<=this.p.parser.maxNode&&this.buffer.push(t,n,s,4)}apply(e,t,n,s){e&65536?this.reduce(e):this.shift(e,t,n,s)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let s=this.pos;this.reducePos=this.pos=s+e.length,this.pushState(t,s),this.buffer.push(n,s,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let n=e.buffer.slice(t),s=e.bufferBase+t;for(;e&&s==e.bufferBase;)e=e.parent;return new nl(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,s,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new pM(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if((n&65536)==0)return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let s=[];for(let i=0,o;i<t.length;i+=2)(o=t[i+1])!=this.state&&this.p.parser.hasAction(o,e)&&s.push(t[i],o);if(this.stack.length<120)for(let i=0;s.length<8&&i<t.length;i+=2){let o=t[i+1];s.some((a,l)=>l&1&&a==o)||s.push(t[i],o)}t=s}let n=[];for(let s=0;s<t.length&&n.length<4;s+=2){let i=t[s+1];if(i==this.state)continue;let o=this.split();o.pushState(i,this.pos),o.storeNode(0,o.pos,o.pos,4,!0),o.shiftContext(t[s],this.pos),o.reducePos=this.pos,o.score-=200,n.push(o)}return n}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if((t&65536)==0)return!1;if(!e.validAction(this.state,t)){let n=t>>19,s=t&65535,i=this.stack.length-n*3;if(i<0||e.getGoto(this.stack[i],s,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;t=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],n=(s,i)=>{if(!t.includes(s))return t.push(s),e.allActions(s,o=>{if(!(o&393216))if(o&65536){let a=(o>>19)-i;if(a>1){let l=o&65535,c=this.stack.length-a*3;if(c>=0&&e.getGoto(this.stack[c],l,!1)>=0)return a<<19|65536|l}}else{let a=n(o,i+1);if(a!=null)return a}})};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.storeNode(0,this.pos,this.pos,4,!0),this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new rm(this.curContext.tracker,e);t.hash!=this.curContext.hash&&this.emitContext(),this.curContext=t}}setLookAhead(e){return e<=this.lookAhead?!1:(this.emitLookAhead(),this.lookAhead=e,!0)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}}class rm{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}}class pM{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let s=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=s}}class sl{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new sl(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new sl(this.stack,this.pos,this.index)}}function Zi(r,e=Uint16Array){if(typeof r!="string")return r;let t=null;for(let n=0,s=0;n<r.length;){let i=0;for(;;){let o=r.charCodeAt(n++),a=!1;if(o==126){i=65535;break}o>=92&&o--,o>=34&&o--;let l=o-32;if(l>=46&&(l-=46,a=!0),i+=l,a)break;i*=46}t?t[s++]=i:t=new e(i)}return t}class ka{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const nm=new ka;class gM{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=nm,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,s=this.rangeIndex,i=this.pos+e;for(;i<n.from;){if(!s)return null;let o=this.ranges[--s];i-=n.from-o.to,n=o}for(;t<0?i>n.to:i>=n.to;){if(s==this.ranges.length-1)return null;let o=this.ranges[++s];i+=o.from-n.to,n=o}return i}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,n,s;if(t>=0&&t<this.chunk.length)n=this.pos+e,s=this.chunk.charCodeAt(t);else{let i=this.resolveOffset(e,1);if(i==null)return-1;if(n=i,n>=this.chunk2Pos&&n<this.chunk2Pos+this.chunk2.length)s=this.chunk2.charCodeAt(n-this.chunk2Pos);else{let o=this.rangeIndex,a=this.range;for(;a.to<=n;)a=this.ranges[++o];this.chunk2=this.input.chunk(this.chunk2Pos=n),n+this.chunk2.length>a.to&&(this.chunk2=this.chunk2.slice(0,a.to-n)),s=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),s}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=n}acceptTokenTo(e,t){this.token.value=e,this.token.end=t}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=nm,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let s of this.ranges){if(s.from>=t)break;s.to>e&&(n+=this.input.read(Math.max(s.from,e),Math.min(s.to,t)))}return n}}class Ls{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;w0(this.data,e,t,this.id,n.data,n.tokenPrecTable)}}Ls.prototype.contextual=Ls.prototype.fallback=Ls.prototype.extend=!1;class il{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?Zi(e):e}token(e,t){let n=e.pos,s=0;for(;;){let i=e.next<0,o=e.resolveOffset(1,1);if(w0(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(i||s++,o==null)break;e.reset(o,e.token)}s&&(e.reset(n,e.token),e.acceptToken(this.elseToken,s))}}il.prototype.contextual=Ls.prototype.fallback=Ls.prototype.extend=!1;class pr{constructor(e,t={}){this.token=e,this.contextual=!!t.contextual,this.fallback=!!t.fallback,this.extend=!!t.extend}}function w0(r,e,t,n,s,i){let o=0,a=1<<n,{dialect:l}=t.p.parser;e:for(;(a&r[o])!=0;){let c=r[o+1];for(let m=o+3;m<c;m+=2)if((r[m+1]&a)>0){let g=r[m];if(l.allows(g)&&(e.token.value==-1||e.token.value==g||OM(g,e.token.value,s,i))){e.acceptToken(g);break}}let u=e.next,h=0,f=r[o+2];if(e.next<0&&f>h&&r[c+f*3-3]==65535){o=r[c+f*3-1];continue e}for(;h<f;){let m=h+f>>1,g=c+m+(m<<1),O=r[g],b=r[g+1]||65536;if(u<O)f=m;else if(u>=b)h=m+1;else{o=r[g+2],e.advance();continue e}}break}}function sm(r,e,t){for(let n=e,s;(s=r[n])!=65535;n++)if(s==t)return n-e;return-1}function OM(r,e,t,n){let s=sm(t,n,e);return s<0||sm(t,n,r)<s}const or=typeof process<"u"&&tm&&/\bparse\b/.test(tm.LOG);let ic=null;function im(r,e,t){let n=r.cursor(nt.IncludeAnonymous);for(n.moveTo(e);;)if(!(t<0?n.childBefore(e):n.childAfter(e)))for(;;){if((t<0?n.to<e:n.from>e)&&!n.type.isError)return t<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(r.length,Math.max(n.from+1,e+25));if(t<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return t<0?0:r.length}}class vM{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?im(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?im(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let n=this.trees[t],s=this.index[t];if(s==n.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let i=n.children[s],o=this.start[t]+n.positions[s];if(o>e)return this.nextStart=o,null;if(i instanceof rt){if(o==e){if(o<this.safeFrom)return null;let a=o+i.length;if(a<=this.safeTo){let l=i.prop(We.lookAhead);if(!l||a+l<this.fragment.to)return i}}this.index[t]++,o+i.length>=Math.max(this.safeFrom,e)&&(this.trees.push(i),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+i.length}}}class bM{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new ka)}getActions(e){let t=0,n=null,{parser:s}=e.p,{tokenizers:i}=s,o=s.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,l=0;for(let c=0;c<i.length;c++){if((1<<c&o)==0)continue;let u=i[c],h=this.tokens[c];if(!(n&&!u.fallback)&&((u.contextual||h.start!=e.pos||h.mask!=o||h.context!=a)&&(this.updateCachedToken(h,u,e),h.mask=o,h.context=a),h.lookAhead>h.end+25&&(l=Math.max(h.lookAhead,l)),h.value!=0)){let f=t;if(h.extended>-1&&(t=this.addActions(e,h.extended,h.end,t)),t=this.addActions(e,h.value,h.end,t),!u.extend&&(n=h,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return l&&e.setLookAhead(l),!n&&e.pos==this.stream.end&&(n=new ka,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new ka,{pos:n,p:s}=e;return t.start=n,t.end=Math.min(n+1,s.stream.end),t.value=n==s.stream.end?s.parser.eofTerm:0,t}updateCachedToken(e,t,n){let s=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(s,e),n),e.value>-1){let{parser:i}=n.p;for(let o=0;o<i.specialized.length;o++)if(i.specialized[o]==e.value){let a=i.specializers[o](this.stream.read(e.start,e.end),n);if(a>=0&&n.p.parser.dialect.allows(a>>1)){(a&1)==0?e.value=a>>1:e.extended=a>>1;break}}}else e.value=0,e.end=this.stream.clipPos(s+1)}putAction(e,t,n,s){for(let i=0;i<s;i+=3)if(this.actions[i]==e)return s;return this.actions[s++]=e,this.actions[s++]=t,this.actions[s++]=n,s}addActions(e,t,n,s){let{state:i}=e,{parser:o}=e.p,{data:a}=o;for(let l=0;l<2;l++)for(let c=o.stateSlot(i,l?2:1);;c+=3){if(a[c]==65535)if(a[c+1]==1)c=un(a,c+2);else{s==0&&a[c+1]==2&&(s=this.putAction(un(a,c+2),t,n,s));break}a[c]==t&&(s=this.putAction(un(a,c+1),t,n,s))}return s}}class xM{constructor(e,t,n,s){this.parser=e,this.input=t,this.ranges=s,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new gM(t,s),this.tokens=new bM(e,this.stream),this.topTerm=e.top[1];let{from:i}=s[0];this.stacks=[nl.start(this,e.top[0],i)],this.fragments=n.length&&this.stream.end-i>e.bufferLength*4?new vM(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=this.stacks=[],s,i;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;o<e.length;o++){let a=e[o];for(;;){if(this.tokens.mainToken=null,a.pos>t)n.push(a);else{if(this.advanceStack(a,n,e))continue;{s||(s=[],i=[]),s.push(a);let l=this.tokens.getMainToken(a);i.push(l.value,l.end)}}break}}if(!n.length){let o=s&&kM(s);if(o)return or&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw or&&s&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&s){let o=this.stoppedAt!=null&&s[0].pos>this.stoppedAt?s[0]:this.runRecovery(s,i,n);if(o)return or&&console.log("Force-finish "+this.stackID(o)),this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(n.length>o)for(n.sort((a,l)=>l.score-a.score);n.length>o;)n.pop();n.some(a=>a.reducePos>t)&&this.recovering--}else if(n.length>1){e:for(let o=0;o<n.length-1;o++){let a=n[o];for(let l=o+1;l<n.length;l++){let c=n[l];if(a.sameState(c)||a.buffer.length>500&&c.buffer.length>500)if((a.score-c.score||a.buffer.length-c.buffer.length)>0)n.splice(l--,1);else{n.splice(o--,1);continue e}}}n.length>12&&(n.sort((o,a)=>a.score-o.score),n.splice(12,n.length-12))}this.minStackPos=n[0].pos;for(let o=1;o<n.length;o++)n[o].pos<this.minStackPos&&(this.minStackPos=n[o].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,t,n){let s=e.pos,{parser:i}=this,o=or?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&s>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let c=e.curContext&&e.curContext.tracker.strict,u=c?e.curContext.hash:0;for(let h=this.fragments.nodeAt(s);h;){let f=this.parser.nodeSet.types[h.type.id]==h.type?i.getGoto(e.state,h.type.id):-1;if(f>-1&&h.length&&(!c||(h.prop(We.contextHash)||0)==u))return e.useNode(h,f),or&&console.log(o+this.stackID(e)+` (via reuse of ${i.getName(h.type.id)})`),!0;if(!(h instanceof rt)||h.children.length==0||h.positions[0]>0)break;let m=h.children[0];if(m instanceof rt&&h.positions[0]==0)h=m;else break}}let a=i.stateSlot(e.state,4);if(a>0)return e.reduce(a),or&&console.log(o+this.stackID(e)+` (via always-reduce ${i.getName(a&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let c=0;c<l.length;){let u=l[c++],h=l[c++],f=l[c++],m=c==l.length||!n,g=m?e:e.split(),O=this.tokens.mainToken;if(g.apply(u,h,O?O.start:g.pos,f),or&&console.log(o+this.stackID(g)+` (via ${(u&65536)==0?"shift":`reduce of ${i.getName(u&65535)}`} for ${i.getName(h)} @ ${s}${g==e?"":", split"})`),m)return!0;g.pos>s?t.push(g):n.push(g)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return om(e,t),!0}}runRecovery(e,t,n){let s=null,i=!1;for(let o=0;o<e.length;o++){let a=e[o],l=t[o<<1],c=t[(o<<1)+1],u=or?this.stackID(a)+" -> ":"";if(a.deadEnd&&(i||(i=!0,a.restart(),or&&console.log(u+this.stackID(a)+" (restarted)"),this.advanceFully(a,n))))continue;let h=a.split(),f=u;for(let m=0;m<10&&h.forceReduce()&&(or&&console.log(f+this.stackID(h)+" (via force-reduce)"),!this.advanceFully(h,n));m++)or&&(f=this.stackID(h)+" -> ");for(let m of a.recoverByInsert(l))or&&console.log(u+this.stackID(m)+" (via recover-insert)"),this.advanceFully(m,n);this.stream.end>a.pos?(c==a.pos&&(c++,l=0),a.recoverByDelete(l,c),or&&console.log(u+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),om(a,n)):(!s||s.score<h.score)&&(s=h)}return s}stackToTree(e){return e.close(),rt.build({buffer:sl.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(e){let t=(ic||(ic=new WeakMap)).get(e);return t||ic.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}}function om(r,e){for(let t=0;t<e.length;t++){let n=e[t];if(n.pos==r.pos&&n.sameState(r)){e[t].score<r.score&&(e[t]=r);return}}e.push(r)}class yM{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}}const oc=r=>r;class S0{constructor(e){this.start=e.start,this.shift=e.shift||oc,this.reduce=e.reduce||oc,this.reuse=e.reuse||oc,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class Hs extends ih{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let a=0;a<e.repeatNodeCount;a++)t.push("");let n=Object.keys(e.topRules).map(a=>e.topRules[a][1]),s=[];for(let a=0;a<t.length;a++)s.push([]);function i(a,l,c){s[a].push([l,l.deserialize(String(c))])}if(e.nodeProps)for(let a of e.nodeProps){let l=a[0];typeof l=="string"&&(l=We[l]);for(let c=1;c<a.length;){let u=a[c++];if(u>=0)i(u,l,a[c++]);else{let h=a[c+-u];for(let f=-u;f>0;f--)i(a[c++],l,h);c++}}}this.nodeSet=new So(t.map((a,l)=>St.define({name:l>=this.minRepeatTerm?void 0:a,id:l,props:s[l],top:n.indexOf(l)>-1,error:l==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(l)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=Pg;let o=Zi(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let a=0;a<this.specializerSpecs.length;a++)this.specialized[a]=this.specializerSpecs[a].term;this.specializers=this.specializerSpecs.map(am),this.states=Zi(e.states,Uint32Array),this.data=Zi(e.stateData),this.goto=Zi(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(a=>typeof a=="number"?new Ls(o,a):a),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let s=new xM(this,e,t,n);for(let i of this.wrappers)s=i(s,e,t,n);return s}getGoto(e,t,n=!1){let s=this.goto;if(t>=s[0])return-1;for(let i=s[t+1];;){let o=s[i++],a=o&1,l=s[i++];if(a&&n)return l;for(let c=i+(o>>1);i<c;i++)if(s[i]==e)return l;if(a)return-1}}hasAction(e,t){let n=this.data;for(let s=0;s<2;s++)for(let i=this.stateSlot(e,s?2:1),o;;i+=3){if((o=n[i])==65535)if(n[i+1]==1)o=n[i=un(n,i+2)];else{if(n[i+1]==2)return un(n,i+2);break}if(o==t||o==0)return un(n,i+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){return!!this.allActions(e,n=>n==t?!0:null)}allActions(e,t){let n=this.stateSlot(e,4),s=n?t(n):void 0;for(let i=this.stateSlot(e,1);s==null;i+=3){if(this.data[i]==65535)if(this.data[i+1]==1)i=un(this.data,i+2);else break;s=t(un(this.data,i+1))}return s}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=un(this.data,n+2);else break;if((this.data[n+2]&1)==0){let s=this.data[n+1];t.some((i,o)=>o&1&&i==s)||t.push(this.data[n],s)}}return t}configure(e){let t=Object.assign(Object.create(Hs.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(n=>{let s=e.tokenizers.find(i=>i.from==n);return s?s.to:n})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((n,s)=>{let i=e.specializers.find(a=>a.from==n.external);if(!i)return n;let o=Object.assign(Object.assign({},n),{external:i.to});return t.specializers[s]=am(o),o})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let i of e.split(" ")){let o=t.indexOf(i);o>=0&&(n[o]=!0)}let s=null;for(let i=0;i<t.length;i++)if(!n[i])for(let o=this.dialects[t[i]],a;(a=this.data[o++])!=65535;)(s||(s=new Uint8Array(this.maxTerm+1)))[a]=1;return new yM(e,n,s)}static deserialize(e){return new Hs(e)}}function un(r,e){return r[e]|r[e+1]<<16}function kM(r){let e=null;for(let t of r){let n=t.p.stoppedAt;(t.pos==t.p.stream.end||n!=null&&t.pos>n)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function am(r){if(r.external){let e=r.extend?1:0;return(t,n)=>r.external(t,n)<<1|e}return r.get}const wM=55,SM=1,$M=56,CM=2,QM=57,PM=3,lm=4,TM=5,Mh=6,$0=7,C0=8,Q0=9,P0=10,MM=11,AM=12,_M=13,ac=58,RM=14,BM=15,cm=59,T0=21,DM=23,M0=24,ZM=25,xu=27,A0=28,EM=29,LM=32,XM=35,IM=37,VM=38,zM=0,NM=1,WM={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},qM={dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},um={dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}};function jM(r){return r==45||r==46||r==58||r>=65&&r<=90||r==95||r>=97&&r<=122||r>=161}let hm=null,dm=null,fm=0;function yu(r,e){let t=r.pos+e;if(fm==t&&dm==r)return hm;let n=r.peek(e),s="";for(;jM(n);)s+=String.fromCharCode(n),n=r.peek(++e);return dm=r,fm=t,hm=s?s.toLowerCase():n==YM||n==FM?void 0:null}const _0=60,ol=62,Ah=47,YM=63,FM=33,UM=45;function mm(r,e){this.name=r,this.parent=e}const GM=[Mh,P0,$0,C0,Q0],HM=new S0({start:null,shift(r,e,t,n){return GM.indexOf(e)>-1?new mm(yu(n,1)||"",r):r},reduce(r,e){return e==T0&&r?r.parent:r},reuse(r,e,t,n){let s=e.type.id;return s==Mh||s==IM?new mm(yu(n,1)||"",r):r},strict:!1}),KM=new pr((r,e)=>{if(r.next!=_0){r.next<0&&e.context&&r.acceptToken(ac);return}r.advance();let t=r.next==Ah;t&&r.advance();let n=yu(r,0);if(n===void 0)return;if(!n)return r.acceptToken(t?BM:RM);let s=e.context?e.context.name:null;if(t){if(n==s)return r.acceptToken(MM);if(s&&qM[s])return r.acceptToken(ac,-2);if(e.dialectEnabled(zM))return r.acceptToken(AM);for(let i=e.context;i;i=i.parent)if(i.name==n)return;r.acceptToken(_M)}else{if(n=="script")return r.acceptToken($0);if(n=="style")return r.acceptToken(C0);if(n=="textarea")return r.acceptToken(Q0);if(WM.hasOwnProperty(n))return r.acceptToken(P0);s&&um[s]&&um[s][n]?r.acceptToken(ac,-1):r.acceptToken(Mh)}},{contextual:!0}),JM=new pr(r=>{for(let e=0,t=0;;t++){if(r.next<0){t&&r.acceptToken(cm);break}if(r.next==UM)e++;else if(r.next==ol&&e>=2){t>=3&&r.acceptToken(cm,-2);break}else e=0;r.advance()}});function e4(r){for(;r;r=r.parent)if(r.name=="svg"||r.name=="math")return!0;return!1}const t4=new pr((r,e)=>{if(r.next==Ah&&r.peek(1)==ol){let t=e.dialectEnabled(NM)||e4(e.context);r.acceptToken(t?TM:lm,2)}else r.next==ol&&r.acceptToken(lm,1)});function _h(r,e,t){let n=2+r.length;return new pr(s=>{for(let i=0,o=0,a=0;;a++){if(s.next<0){a&&s.acceptToken(e);break}if(i==0&&s.next==_0||i==1&&s.next==Ah||i>=2&&i<n&&s.next==r.charCodeAt(i-2))i++,o++;else if(i==n&&s.next==ol){a>o?s.acceptToken(e,-o):s.acceptToken(t,-(o-2));break}else if((s.next==10||s.next==13)&&a){s.acceptToken(e,1);break}else i=o=0;s.advance()}})}const r4=_h("script",wM,SM),n4=_h("style",$M,CM),s4=_h("textarea",QM,PM),i4=ei({"Text RawText IncompleteTag IncompleteCloseTag":$.content,"StartTag StartCloseTag SelfClosingEndTag EndTag":$.angleBracket,TagName:$.tagName,"MismatchedCloseTag/TagName":[$.tagName,$.invalid],AttributeName:$.attributeName,"AttributeValue UnquotedAttributeValue":$.attributeValue,Is:$.definitionOperator,"EntityReference CharacterReference":$.character,Comment:$.blockComment,ProcessingInst:$.processingInstruction,DoctypeDecl:$.documentMeta}),o4=Hs.deserialize({version:14,states:",xOVO!rOOO!ZQ#tO'#CrO!`Q#tO'#C{O!eQ#tO'#DOO!jQ#tO'#DRO!oQ#tO'#DTO!tOaO'#CqO#PObO'#CqO#[OdO'#CqO$kO!rO'#CqOOO`'#Cq'#CqO$rO$fO'#DUO$zQ#tO'#DWO%PQ#tO'#DXOOO`'#Dl'#DlOOO`'#DZ'#DZQVO!rOOO%UQ&rO,59^O%aQ&rO,59gO%lQ&rO,59jO%wQ&rO,59mO&SQ&rO,59oOOOa'#D_'#D_O&_OaO'#CyO&jOaO,59]OOOb'#D`'#D`O&rObO'#C|O&}ObO,59]OOOd'#Da'#DaO'VOdO'#DPO'bOdO,59]OOO`'#Db'#DbO'jO!rO,59]O'qQ#tO'#DSOOO`,59],59]OOOp'#Dc'#DcO'vO$fO,59pOOO`,59p,59pO(OQ#|O,59rO(TQ#|O,59sOOO`-E7X-E7XO(YQ&rO'#CtOOQW'#D['#D[O(hQ&rO1G.xOOOa1G.x1G.xOOO`1G/Z1G/ZO(sQ&rO1G/ROOOb1G/R1G/RO)OQ&rO1G/UOOOd1G/U1G/UO)ZQ&rO1G/XOOO`1G/X1G/XO)fQ&rO1G/ZOOOa-E7]-E7]O)qQ#tO'#CzOOO`1G.w1G.wOOOb-E7^-E7^O)vQ#tO'#C}OOOd-E7_-E7_O){Q#tO'#DQOOO`-E7`-E7`O*QQ#|O,59nOOOp-E7a-E7aOOO`1G/[1G/[OOO`1G/^1G/^OOO`1G/_1G/_O*VQ,UO,59`OOQW-E7Y-E7YOOOa7+$d7+$dOOO`7+$u7+$uOOOb7+$m7+$mOOOd7+$p7+$pOOO`7+$s7+$sO*bQ#|O,59fO*gQ#|O,59iO*lQ#|O,59lOOO`1G/Y1G/YO*qO7[O'#CwO+SOMhO'#CwOOQW1G.z1G.zOOO`1G/Q1G/QOOO`1G/T1G/TOOO`1G/W1G/WOOOO'#D]'#D]O+eO7[O,59cOOQW,59c,59cOOOO'#D^'#D^O+vOMhO,59cOOOO-E7Z-E7ZOOQW1G.}1G.}OOOO-E7[-E7[",stateData:",c~O!_OS~OUSOVPOWQOXROYTO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O|_O!eZO~OgaO~OgbO~OgcO~OgdO~OgeO~O!XfOPmP![mP~O!YiOQpP![pP~O!ZlORsP![sP~OUSOVPOWQOXROYTOZqO[]O][O^^O_^Oa^Ob^Oc^Od^Oy^O!eZO~O![rO~P#gO!]sO!fuO~OgvO~OgwO~OS|OT}OiyO~OS!POT}OiyO~OS!ROT}OiyO~OS!TOT}OiyO~OS}OT}OiyO~O!XfOPmX![mX~OP!WO![!XO~O!YiOQpX![pX~OQ!ZO![!XO~O!ZlORsX![sX~OR!]O![!XO~O![!XO~P#gOg!_O~O!]sO!f!aO~OS!bO~OS!cO~Oj!dOShXThXihX~OS!fOT!gOiyO~OS!hOT!gOiyO~OS!iOT!gOiyO~OS!jOT!gOiyO~OS!gOT!gOiyO~Og!kO~Og!lO~Og!mO~OS!nO~Ol!qO!a!oO!c!pO~OS!rO~OS!sO~OS!tO~Ob!uOc!uOd!uO!a!wO!b!uO~Ob!xOc!xOd!xO!c!wO!d!xO~Ob!uOc!uOd!uO!a!{O!b!uO~Ob!xOc!xOd!xO!c!{O!d!xO~OT~cbd!ey|!e~",goto:"%q!aPPPPPPPPPPPPPPPPPPPPP!b!hP!nPP!zP!}#Q#T#Z#^#a#g#j#m#s#y!bP!b!bP$P$V$m$s$y%P%V%]%cPPPPPPPP%iX^OX`pXUOX`pezabcde{!O!Q!S!UR!q!dRhUR!XhXVOX`pRkVR!XkXWOX`pRnWR!XnXXOX`pQrXR!XpXYOX`pQ`ORx`Q{aQ!ObQ!QcQ!SdQ!UeZ!e{!O!Q!S!UQ!v!oR!z!vQ!y!pR!|!yQgUR!VgQjVR!YjQmWR![mQpXR!^pQtZR!`tS_O`ToXp",nodeNames:"⚠ StartCloseTag StartCloseTag StartCloseTag EndTag SelfClosingEndTag StartTag StartTag StartTag StartTag StartTag StartCloseTag StartCloseTag StartCloseTag IncompleteTag IncompleteCloseTag Document Text EntityReference CharacterReference InvalidEntity Element OpenTag TagName Attribute AttributeName Is AttributeValue UnquotedAttributeValue ScriptText CloseTag OpenTag StyleText CloseTag OpenTag TextareaText CloseTag OpenTag CloseTag SelfClosingTag Comment ProcessingInst MismatchedCloseTag CloseTag DoctypeDecl",maxTerm:68,context:HM,nodeProps:[["closedBy",-10,1,2,3,7,8,9,10,11,12,13,"EndTag",6,"EndTag SelfClosingEndTag",-4,22,31,34,37,"CloseTag"],["openedBy",4,"StartTag StartCloseTag",5,"StartTag",-4,30,33,36,38,"OpenTag"],["group",-10,14,15,18,19,20,21,40,41,42,43,"Entity",17,"Entity TextContent",-3,29,32,35,"TextContent Entity"],["isolate",-11,22,30,31,33,34,36,37,38,39,42,43,"ltr",-3,27,28,40,""]],propSources:[i4],skippedNodes:[0],repeatNodeCount:9,tokenData:"!<p!aR!YOX$qXY,QYZ,QZ[$q[]&X]^,Q^p$qpq,Qqr-_rs3_sv-_vw3}wxHYx}-_}!OH{!O!P-_!P!Q$q!Q![-_![!]Mz!]!^-_!^!_!$S!_!`!;x!`!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4U-_4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!Z$|caPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr$qrs&}sv$qvw+Pwx(tx!^$q!^!_*V!_!a&X!a#S$q#S#T&X#T;'S$q;'S;=`+z<%lO$q!R&bXaP!b`!dpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&Xq'UVaP!dpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}P'pTaPOv'kw!^'k!_;'S'k;'S;=`(P<%lO'kP(SP;=`<%l'kp([S!dpOv(Vx;'S(V;'S;=`(h<%lO(Vp(kP;=`<%l(Vq(qP;=`<%l&}a({WaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t`)jT!b`Or)esv)ew;'S)e;'S;=`)y<%lO)e`)|P;=`<%l)ea*SP;=`<%l(t!Q*^V!b`!dpOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!Q*vP;=`<%l*V!R*|P;=`<%l&XW+UYlWOX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+PW+wP;=`<%l+P!Z+}P;=`<%l$q!a,]`aP!b`!dp!_^OX&XXY,QYZ,QZ]&X]^,Q^p&Xpq,Qqr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!_-ljiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q[/ebiSlWOX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+PS0rXiSqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0mS1bP;=`<%l0m[1hP;=`<%l/^!V1vciSaP!b`!dpOq&Xqr1krs&}sv1kvw0mwx(tx!P1k!P!Q&X!Q!^1k!^!_*V!_!a&X!a#s1k#s$f&X$f;'S1k;'S;=`3R<%l?Ah1k?Ah?BY&X?BY?Mn1k?MnO&X!V3UP;=`<%l1k!_3[P;=`<%l-_!Z3hV!ahaP!dpOv&}wx'kx!^&}!^!_(V!_;'S&};'S;=`(n<%lO&}!_4WiiSlWd!ROX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst>]tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^/^!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!Z5zblWOX5uXZ7SZ[5u[^7S^p5uqr5urs7Sst+Ptw5uwx7Sx!]5u!]!^7w!^!a7S!a#S5u#S#T7S#T;'S5u;'S;=`8n<%lO5u!R7VVOp7Sqs7St!]7S!]!^7l!^;'S7S;'S;=`7q<%lO7S!R7qOb!R!R7tP;=`<%l7S!Z8OYlWb!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!Z8qP;=`<%l5u!_8{iiSlWOX5uXZ7SZ[5u[^7S^p5uqr8trs7Sst/^tw8twx7Sx!P8t!P!Q5u!Q!]8t!]!^:j!^!a7S!a#S8t#S#T;{#T#s8t#s$f5u$f;'S8t;'S;=`>V<%l?Ah8t?Ah?BY5u?BY?Mn8t?MnO5u!_:sbiSlWb!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!V<QciSOp7Sqr;{rs7Sst0mtw;{wx7Sx!P;{!P!Q7S!Q!];{!]!^=]!^!a7S!a#s;{#s$f7S$f;'S;{;'S;=`>P<%l?Ah;{?Ah?BY7S?BY?Mn;{?MnO7S!V=dXiSb!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!V>SP;=`<%l;{!_>YP;=`<%l8t!_>dhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^/^!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!Z@TalWOX@OXZAYZ[@O[^AY^p@Oqr@OrsAYsw@OwxAYx!]@O!]!^Az!^!aAY!a#S@O#S#TAY#T;'S@O;'S;=`Bq<%lO@O!RA]UOpAYq!]AY!]!^Ao!^;'SAY;'S;=`At<%lOAY!RAtOc!R!RAwP;=`<%lAY!ZBRYlWc!ROX+PZ[+P^p+Pqr+Psw+Px!^+P!a#S+P#T;'S+P;'S;=`+t<%lO+P!ZBtP;=`<%l@O!_COhiSlWOX@OXZAYZ[@O[^AY^p@OqrBwrsAYswBwwxAYx!PBw!P!Q@O!Q!]Bw!]!^Dj!^!aAY!a#SBw#S#TE{#T#sBw#s$f@O$f;'SBw;'S;=`HS<%l?AhBw?Ah?BY@O?BY?MnBw?MnO@O!_DsbiSlWc!ROX+PZ[+P^p+Pqr/^sw/^x!P/^!P!Q+P!Q!^/^!a#S/^#S#T0m#T#s/^#s$f+P$f;'S/^;'S;=`1e<%l?Ah/^?Ah?BY+P?BY?Mn/^?MnO+P!VFQbiSOpAYqrE{rsAYswE{wxAYx!PE{!P!QAY!Q!]E{!]!^GY!^!aAY!a#sE{#s$fAY$f;'SE{;'S;=`G|<%l?AhE{?Ah?BYAY?BY?MnE{?MnOAY!VGaXiSc!Rqr0msw0mx!P0m!Q!^0m!a#s0m$f;'S0m;'S;=`1_<%l?Ah0m?BY?Mn0m!VHPP;=`<%lE{!_HVP;=`<%lBw!ZHcW!cxaP!b`Or(trs'ksv(tw!^(t!^!_)e!_;'S(t;'S;=`*P<%lO(t!aIYliSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OKQ!O!P-_!P!Q$q!Q!^-_!^!_*V!_!a&X!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!aK_kiSaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx!P-_!P!Q$q!Q!^-_!^!_*V!_!`&X!`!aMS!a#S-_#S#T1k#T#s-_#s$f$q$f;'S-_;'S;=`3X<%l?Ah-_?Ah?BY$q?BY?Mn-_?MnO$q!TM_XaP!b`!dp!fQOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X!aNZ!ZiSgQaPlW!b`!dpOX$qXZ&XZ[$q[^&X^p$qpq&Xqr-_rs&}sv-_vw/^wx(tx}-_}!OMz!O!PMz!P!Q$q!Q![Mz![!]Mz!]!^-_!^!_*V!_!a&X!a!c-_!c!}Mz!}#R-_#R#SMz#S#T1k#T#oMz#o#s-_#s$f$q$f$}-_$}%OMz%O%W-_%W%oMz%o%p-_%p&aMz&a&b-_&b1pMz1p4UMz4U4dMz4d4e-_4e$ISMz$IS$I`-_$I`$IbMz$Ib$Je-_$Je$JgMz$Jg$Kh-_$Kh%#tMz%#t&/x-_&/x&EtMz&Et&FV-_&FV;'SMz;'S;:j!#|;:j;=`3X<%l?&r-_?&r?AhMz?Ah?BY$q?BY?MnMz?MnO$q!a!$PP;=`<%lMz!R!$ZY!b`!dpOq*Vqr!$yrs(Vsv*Vwx)ex!a*V!a!b!4t!b;'S*V;'S;=`*s<%lO*V!R!%Q]!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!%y!O!f*V!f!g!']!g#W*V#W#X!0`#X;'S*V;'S;=`*s<%lO*V!R!&QX!b`!dpOr*Vrs(Vsv*Vwx)ex}*V}!O!&m!O;'S*V;'S;=`*s<%lO*V!R!&vV!b`!dp!ePOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!'dX!b`!dpOr*Vrs(Vsv*Vwx)ex!q*V!q!r!(P!r;'S*V;'S;=`*s<%lO*V!R!(WX!b`!dpOr*Vrs(Vsv*Vwx)ex!e*V!e!f!(s!f;'S*V;'S;=`*s<%lO*V!R!(zX!b`!dpOr*Vrs(Vsv*Vwx)ex!v*V!v!w!)g!w;'S*V;'S;=`*s<%lO*V!R!)nX!b`!dpOr*Vrs(Vsv*Vwx)ex!{*V!{!|!*Z!|;'S*V;'S;=`*s<%lO*V!R!*bX!b`!dpOr*Vrs(Vsv*Vwx)ex!r*V!r!s!*}!s;'S*V;'S;=`*s<%lO*V!R!+UX!b`!dpOr*Vrs(Vsv*Vwx)ex!g*V!g!h!+q!h;'S*V;'S;=`*s<%lO*V!R!+xY!b`!dpOr!+qrs!,hsv!+qvw!-Swx!.[x!`!+q!`!a!/j!a;'S!+q;'S;=`!0Y<%lO!+qq!,mV!dpOv!,hvx!-Sx!`!,h!`!a!-q!a;'S!,h;'S;=`!.U<%lO!,hP!-VTO!`!-S!`!a!-f!a;'S!-S;'S;=`!-k<%lO!-SP!-kO|PP!-nP;=`<%l!-Sq!-xS!dp|POv(Vx;'S(V;'S;=`(h<%lO(Vq!.XP;=`<%l!,ha!.aX!b`Or!.[rs!-Ssv!.[vw!-Sw!`!.[!`!a!.|!a;'S!.[;'S;=`!/d<%lO!.[a!/TT!b`|POr)esv)ew;'S)e;'S;=`)y<%lO)ea!/gP;=`<%l!.[!R!/sV!b`!dp|POr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!0]P;=`<%l!+q!R!0gX!b`!dpOr*Vrs(Vsv*Vwx)ex#c*V#c#d!1S#d;'S*V;'S;=`*s<%lO*V!R!1ZX!b`!dpOr*Vrs(Vsv*Vwx)ex#V*V#V#W!1v#W;'S*V;'S;=`*s<%lO*V!R!1}X!b`!dpOr*Vrs(Vsv*Vwx)ex#h*V#h#i!2j#i;'S*V;'S;=`*s<%lO*V!R!2qX!b`!dpOr*Vrs(Vsv*Vwx)ex#m*V#m#n!3^#n;'S*V;'S;=`*s<%lO*V!R!3eX!b`!dpOr*Vrs(Vsv*Vwx)ex#d*V#d#e!4Q#e;'S*V;'S;=`*s<%lO*V!R!4XX!b`!dpOr*Vrs(Vsv*Vwx)ex#X*V#X#Y!+q#Y;'S*V;'S;=`*s<%lO*V!R!4{Y!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!a!4t!a!b!:]!b;'S!4t;'S;=`!;r<%lO!4tq!5pV!dpOv!5kvx!6Vx!a!5k!a!b!7W!b;'S!5k;'S;=`!8V<%lO!5kP!6YTO!a!6V!a!b!6i!b;'S!6V;'S;=`!7Q<%lO!6VP!6lTO!`!6V!`!a!6{!a;'S!6V;'S;=`!7Q<%lO!6VP!7QOyPP!7TP;=`<%l!6Vq!7]V!dpOv!5kvx!6Vx!`!5k!`!a!7r!a;'S!5k;'S;=`!8V<%lO!5kq!7yS!dpyPOv(Vx;'S(V;'S;=`(h<%lO(Vq!8YP;=`<%l!5ka!8bX!b`Or!8]rs!6Vsv!8]vw!6Vw!a!8]!a!b!8}!b;'S!8];'S;=`!:V<%lO!8]a!9SX!b`Or!8]rs!6Vsv!8]vw!6Vw!`!8]!`!a!9o!a;'S!8];'S;=`!:V<%lO!8]a!9vT!b`yPOr)esv)ew;'S)e;'S;=`)y<%lO)ea!:YP;=`<%l!8]!R!:dY!b`!dpOr!4trs!5ksv!4tvw!6Vwx!8]x!`!4t!`!a!;S!a;'S!4t;'S;=`!;r<%lO!4t!R!;]V!b`!dpyPOr*Vrs(Vsv*Vwx)ex;'S*V;'S;=`*s<%lO*V!R!;uP;=`<%l!4t!V!<TXjSaP!b`!dpOr&Xrs&}sv&Xwx(tx!^&X!^!_*V!_;'S&X;'S;=`*y<%lO&X",tokenizers:[r4,n4,s4,t4,KM,JM,0,1,2,3,4,5],topRules:{Document:[0,16]},dialects:{noMatch:0,selfClosing:515},tokenPrec:517});function R0(r,e){let t=Object.create(null);for(let n of r.getChildren(M0)){let s=n.getChild(ZM),i=n.getChild(xu)||n.getChild(A0);s&&(t[e.read(s.from,s.to)]=i?i.type.id==xu?e.read(i.from+1,i.to-1):e.read(i.from,i.to):"")}return t}function pm(r,e){let t=r.getChild(DM);return t?e.read(t.from,t.to):" "}function lc(r,e,t){let n;for(let s of t)if(!s.attrs||s.attrs(n||(n=R0(r.node.parent.firstChild,e))))return{parser:s.parser,bracketed:!0};return null}function B0(r=[],e=[]){let t=[],n=[],s=[],i=[];for(let a of r)(a.tag=="script"?t:a.tag=="style"?n:a.tag=="textarea"?s:i).push(a);let o=e.length?Object.create(null):null;for(let a of e)(o[a.name]||(o[a.name]=[])).push(a);return Rg((a,l)=>{let c=a.type.id;if(c==EM)return lc(a,l,t);if(c==LM)return lc(a,l,n);if(c==XM)return lc(a,l,s);if(c==T0&&i.length){let u=a.node,h=u.firstChild,f=h&&pm(h,l),m;if(f){for(let g of i)if(g.tag==f&&(!g.attrs||g.attrs(m||(m=R0(h,l))))){let O=u.lastChild,b=O.type.id==VM?O.from:u.to;if(b>h.to)return{parser:g.parser,overlay:[{from:h.to,to:b}]}}}}if(o&&c==M0){let u=a.node,h;if(h=u.firstChild){let f=o[l.read(h.from,h.to)];if(f)for(let m of f){if(m.tagName&&m.tagName!=pm(u.parent,l))continue;let g=u.lastChild;if(g.type.id==xu){let O=g.from+1,b=g.lastChild,x=g.to-(b&&b.isError?0:1);if(x>O)return{parser:m.parser,overlay:[{from:O,to:x}],bracketed:!0}}else if(g.type.id==A0)return{parser:m.parser,overlay:[{from:g.from,to:g.to}]}}}}return null})}const a4=122,gm=1,l4=123,c4=124,D0=2,u4=125,h4=3,d4=4,Z0=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],f4=58,m4=40,E0=95,p4=91,wa=45,g4=46,O4=35,v4=37,b4=38,x4=92,y4=10,k4=42;function fo(r){return r>=65&&r<=90||r>=97&&r<=122||r>=161}function Rh(r){return r>=48&&r<=57}function Om(r){return Rh(r)||r>=97&&r<=102||r>=65&&r<=70}const L0=(r,e,t)=>(n,s)=>{for(let i=!1,o=0,a=0;;a++){let{next:l}=n;if(fo(l)||l==wa||l==E0||i&&Rh(l))!i&&(l!=wa||a>0)&&(i=!0),o===a&&l==wa&&o++,n.advance();else if(l==x4&&n.peek(1)!=y4){if(n.advance(),Om(n.next)){do n.advance();while(Om(n.next));n.next==32&&n.advance()}else n.next>-1&&n.advance();i=!0}else{i&&n.acceptToken(o==2&&s.canShift(D0)?e:l==m4?t:r);break}}},w4=new pr(L0(l4,D0,c4)),S4=new pr(L0(u4,h4,d4)),$4=new pr(r=>{if(Z0.includes(r.peek(-1))){let{next:e}=r;(fo(e)||e==E0||e==O4||e==g4||e==k4||e==p4||e==f4&&fo(r.peek(1))||e==wa||e==b4)&&r.acceptToken(a4)}}),C4=new pr(r=>{if(!Z0.includes(r.peek(-1))){let{next:e}=r;if(e==v4&&(r.advance(),r.acceptToken(gm)),fo(e)){do r.advance();while(fo(r.next)||Rh(r.next));r.acceptToken(gm)}}}),Q4=ei({"AtKeyword import charset namespace keyframes media supports":$.definitionKeyword,"from to selector":$.keyword,NamespaceName:$.namespace,KeyframeName:$.labelName,KeyframeRangeName:$.operatorKeyword,TagName:$.tagName,ClassName:$.className,PseudoClassName:$.constant($.className),IdName:$.labelName,"FeatureName PropertyName":$.propertyName,AttributeName:$.attributeName,NumberLiteral:$.number,KeywordQuery:$.keyword,UnaryQueryOp:$.operatorKeyword,"CallTag ValueName":$.atom,VariableName:$.variableName,Callee:$.operatorKeyword,Unit:$.unit,"UniversalSelector NestingSelector":$.definitionOperator,"MatchOp CompareOp":$.compareOperator,"ChildOp SiblingOp, LogicOp":$.logicOperator,BinOp:$.arithmeticOperator,Important:$.modifier,Comment:$.blockComment,ColorLiteral:$.color,"ParenthesizedContent StringLiteral":$.string,":":$.punctuation,"PseudoOp #":$.derefOperator,"; ,":$.separator,"( )":$.paren,"[ ]":$.squareBracket,"{ }":$.brace}),P4={__proto__:null,lang:38,"nth-child":38,"nth-last-child":38,"nth-of-type":38,"nth-last-of-type":38,dir:38,"host-context":38,if:84,url:124,"url-prefix":124,domain:124,regexp:124},T4={__proto__:null,or:98,and:98,not:106,only:106,layer:170},M4={__proto__:null,selector:112,layer:166},A4={__proto__:null,"@import":162,"@media":174,"@charset":178,"@namespace":182,"@keyframes":188,"@supports":200,"@scope":204},_4={__proto__:null,to:207},R4=Hs.deserialize({version:14,states:"EbQYQdOOO#qQdOOP#xO`OOOOQP'#Cf'#CfOOQP'#Ce'#CeO#}QdO'#ChO$nQaO'#CcO$xQdO'#CkO%TQdO'#DpO%YQdO'#DrO%_QdO'#DuO%_QdO'#DxOOQP'#FV'#FVO&eQhO'#EhOOQS'#FU'#FUOOQS'#Ek'#EkQYQdOOO&lQdO'#EOO&PQhO'#EUO&lQdO'#EWO'aQdO'#EYO'lQdO'#E]O'tQhO'#EcO(VQdO'#EeO(bQaO'#CfO)VQ`O'#D{O)[Q`O'#F`O)gQdO'#F`QOQ`OOP)qO&jO'#CaPOOO)C@t)C@tOOQP'#Cj'#CjOOQP,59S,59SO#}QdO,59SO)|QdO,59VO%TQdO,5:[O%YQdO,5:^O%_QdO,5:aO%_QdO,5:cO%_QdO,5:dO%_QdO'#ErO*XQ`O,58}O*aQdO'#DzOOQS,58},58}OOQP'#Cn'#CnOOQO'#Dn'#DnOOQP,59V,59VO*hQ`O,59VO*mQ`O,59VOOQP'#Dq'#DqOOQP,5:[,5:[OOQO'#Ds'#DsO*rQpO,5:^O+]QaO,5:aO+sQaO,5:dOOQW'#DZ'#DZO,ZQhO'#DdO,xQhO'#FaO'tQhO'#DbO-WQ`O'#DhOOQW'#F['#F[O-]Q`O,5;SO-eQ`O'#DeOOQS-E8i-E8iOOQ['#Cs'#CsO-jQdO'#CtO.QQdO'#CzO.hQdO'#C}O/OQ!pO'#DPO1RQ!jO,5:jOOQO'#DU'#DUO*mQ`O'#DTO1cQ!nO'#FXO3`Q`O'#DVO3eQ`O'#DkOOQ['#FX'#FXO-`Q`O,5:pO3jQ!bO,5:rOOQS'#E['#E[O3rQ`O,5:tO3wQdO,5:tOOQO'#E_'#E_O4PQ`O,5:wO4UQhO,5:}O%_QdO'#DgOOQS,5;P,5;PO-eQ`O,5;PO4^QdO,5;PO4fQdO,5:gO4vQdO'#EtO5TQ`O,5;zO5TQ`O,5;zPOOO'#Ej'#EjP5`O&jO,58{POOO,58{,58{OOQP1G.n1G.nOOQP1G.q1G.qO*hQ`O1G.qO*mQ`O1G.qOOQP1G/v1G/vO5kQpO1G/xO5sQaO1G/{O6ZQaO1G/}O6qQaO1G0OO7XQaO,5;^OOQO-E8p-E8pOOQS1G.i1G.iO7cQ`O,5:fO7hQdO'#DoO7oQdO'#CrOOQP1G/x1G/xO&lQdO1G/xO7vQ!jO'#DZO8UQ!bO,59vO8^QhO,5:OOOQO'#F]'#F]O8XQ!bO,59zO'tQhO,59xO8fQhO'#EvO8sQ`O,5;{O9OQhO,59|O9uQhO'#DiOOQW,5:S,5:SOOQS1G0n1G0nOOQW,5:P,5:PO9|Q!fO'#FYOOQS'#FY'#FYOOQS'#Em'#EmO;^QdO,59`OOQ[,59`,59`O;tQdO,59fOOQ[,59f,59fO<[QdO,59iOOQ[,59i,59iOOQ[,59k,59kO&lQdO,59mO<rQhO'#EQOOQW'#EQ'#EQO=WQ`O1G0UO1[QhO1G0UOOQ[,59o,59oO'tQhO'#DXOOQ[,59q,59qO=]Q#tO,5:VOOQS1G0[1G0[OOQS1G0^1G0^OOQS1G0`1G0`O=hQ`O1G0`O=mQdO'#E`OOQS1G0c1G0cOOQS1G0i1G0iO=xQaO,5:RO-`Q`O1G0kOOQS1G0k1G0kO-eQ`O1G0kO>PQ!fO1G0ROOQO1G0R1G0ROOQO,5;`,5;`O>gQdO,5;`OOQO-E8r-E8rO>tQ`O1G1fPOOO-E8h-E8hPOOO1G.g1G.gOOQP7+$]7+$]OOQP7+%d7+%dO&lQdO7+%dOOQS1G0Q1G0QO?PQaO'#F_O?ZQ`O,5:ZO?`Q!fO'#ElO@^QdO'#FWO@hQ`O,59^O@mQ!bO7+%dO&lQdO1G/bO@uQhO1G/fOOQW1G/j1G/jOOQW1G/d1G/dOAWQhO,5;bOOQO-E8t-E8tOAfQhO'#DZOAtQhO'#F^OBPQ`O'#F^OBUQ`O,5:TOOQS-E8k-E8kOOQ[1G.z1G.zOOQ[1G/Q1G/QOOQ[1G/T1G/TOOQ[1G/X1G/XOBZQdO,5:lOOQS7+%p7+%pOB`Q`O7+%pOBeQhO'#DYOBmQ`O,59sO'tQhO,59sOOQ[1G/q1G/qOBuQ`O1G/qOOQS7+%z7+%zOBzQbO'#DPOOQO'#Eb'#EbOCYQ`O'#EaOOQO'#Ea'#EaOCeQ`O'#EwOCmQdO,5:zOOQS,5:z,5:zOOQ[1G/m1G/mOOQS7+&V7+&VO-`Q`O7+&VOCxQ!fO'#EsO&lQdO'#EsOEPQdO7+%mOOQO7+%m7+%mOOQO1G0z1G0zOEdQ!bO<<IOOElQdO'#EqOEvQ`O,5;yOOQP1G/u1G/uOOQS-E8j-E8jOFOQdO'#EpOFYQ`O,5;rOOQ]1G.x1G.xOOQP<<IO<<IOOFbQdO7+$|OOQO'#D]'#D]OFiQ!bO7+%QOFqQhO'#EoOF{Q`O,5;xO&lQdO,5;xOOQW1G/o1G/oOOQO'#ES'#ESOGTQ`O1G0WOOQS<<I[<<I[O&lQdO,59tOGnQhO1G/_OOQ[1G/_1G/_OGuQ`O1G/_OOQW-E8l-E8lOOQ[7+%]7+%]OOQO,5:{,5:{O=pQdO'#ExOCeQ`O,5;cOOQS,5;c,5;cOOQS-E8u-E8uOOQS1G0f1G0fOOQS<<Iq<<IqOG}Q!fO,5;_OOQS-E8q-E8qOOQO<<IX<<IXOOQPAN>jAN>jOIUQaO,5;]OOQO-E8o-E8oOI`QdO,5;[OOQO-E8n-E8nOOQW<<Hh<<HhOOQW<<Hl<<HlOIjQhO<<HlOI{QhO,5;ZOJWQ`O,5;ZOOQO-E8m-E8mOJ]QdO1G1dOBZQdO'#EuOJgQ`O7+%rOOQW7+%r7+%rOJoQ!bO1G/`OOQ[7+$y7+$yOJzQhO7+$yPKRQ`O'#EnOOQO,5;d,5;dOOQO-E8v-E8vOOQS1G0}1G0}OKWQ`OAN>WO&lQdO1G0uOK]Q`O7+'OOOQO,5;a,5;aOOQO-E8s-E8sOOQW<<I^<<I^OOQ[<<He<<HePOQW,5;Y,5;YOOQWG23rG23rOKeQdO7+&a",stateData:"Kx~O#sOS#tQQ~OW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#oRO~OQiOW[OZ[O]TO`VOaVOi]OjWOmXO!jYO!mZO!saO!ybO!{cO!}dO#QeO#WfO#YgO#ohO~O#m$SP~P!dO#tmO~O#ooO~O]qO`rOarOjsOmtO!juO!mwO#nvO~OpzO!^xO~P$SOc!QO#o|O#p}O~O#o!RO~O#o!TO~OW[OZ[O]TO`VOaVOjWOmXO!jYO!mZO#oRO~OS!]Oe!YO!V![O!Y!`O#q!XOp$TP~Ok$TP~P&POQ!jOe!cOm!dOp!eOr!mOt!mOz!kO!`!lO#o!bO#p!hO#}!fO~Ot!qO!`!lO#o!pO~Ot!sO#o!sO~OS!]Oe!YO!V![O!Y!`O#q!XO~Oe!vOpzO#Z!xO~O]YX`YX`!pXaYXjYXmYXpYX!^YX!jYX!mYX#nYX~O`!zO~Ok!{O#m$SXo$SX~O#m$SXo$SX~P!dO#u#OO#v#OO#w#QO~Oc#UO#o|O#p}O~OpzO!^xO~Oo$SP~P!dOe#`O~Oe#aO~Ol#bO!h#cO~O]qO`rOarOjsOmtO~Op!ia!^!ia!j!ia!m!ia#n!iad!ia~P*zOp!la!^!la!j!la!m!la#n!lad!la~P*zOR#gOS!]Oe!YOr#gOt#gO!V![O!Y!`O#q#dO#}!fO~O!R#iO!^#jOk$TXp$TX~Oe#mO~Ok#oOpzO~Oe!vO~O]#rO`#rOd#uOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl#wO~P&lO]#rO`#rOi#rOj#rOk#rOo#yO~P&lOP#zOSsXesXksXvsX!VsX!YsX!usX!wsX#qsX!TsXQsX]sX`sXdsXisXjsXmsXpsXrsXtsXzsX!`sX#osX#psX#}sXlsXosX!^sX!qsX#msX~Ov#{O!u#|O!w#}Ok$TP~P'tOe#aOS#{Xk#{Xv#{X!V#{X!Y#{X!u#{X!w#{X#q#{XQ#{X]#{X`#{Xd#{Xi#{Xj#{Xm#{Xp#{Xr#{Xt#{Xz#{X!`#{X#o#{X#p#{X#}#{Xl#{Xo#{X!^#{X!q#{X#m#{X~Oe$RO~Oe$TO~Ok$VOv#{O~Ok$WO~Ot$XO!`!lO~Op$YO~OpzO!R#iO~OpzO#Z$`O~O!q$bOk!oa#m!oao!oa~P&lOk#hX#m#hXo#hX~P!dOk!{O#m$Sao$Sa~O#u#OO#v#OO#w$hO~Ol$jO!h$kO~Op!ii!^!ii!j!ii!m!ii#n!iid!ii~P*zOp!ki!^!ki!j!ki!m!ki#n!kid!ki~P*zOp!li!^!li!j!li!m!li#n!lid!li~P*zOp#fa!^#fa~P$SOo$lO~Od$RP~P%_Od#zP~P&lO`!PXd}X!R}X!T!PX~O`$sO!T$tO~Od$uO!R#iO~Ok#jXp#jX!^#jX~P'tO!^#jOk$Tap$Ta~O!R#iOk!Uap!Ua!^!Uad!Ua`!Ua~OS!]Oe!YO!V![O!Y!`O#q$yO~Od$QP~P9dOv#{OQ#|X]#|X`#|Xd#|Xe#|Xi#|Xj#|Xk#|Xm#|Xp#|Xr#|Xt#|Xz#|X!`#|X#o#|X#p#|X#}#|Xl#|Xo#|X~O]#rO`#rOd%OOi#rOj#rOk#rO~P&lO]#rO`#rOi#rOj#rOk#rOl%PO~P&lO]#rO`#rOi#rOj#rOk#rOo%QO~P&lOe%SOS!tXk!tX!V!tX!Y!tX#q!tX~Ok%TO~Od%YOt%ZO!a%ZO~Ok%[O~Oo%cO#o%^O#}%]O~Od%dO~P$SOv#{O!^%hO!q%jOk!oi#m!oio!oi~P&lOk#ha#m#hao#ha~P!dOk!{O#m$Sio$Si~O!^%mOd$RX~P$SOd%oO~Ov#{OQ#`Xd#`Xe#`Xm#`Xp#`Xr#`Xt#`Xz#`X!^#`X!`#`X#o#`X#p#`X#}#`X~O!^%qOd#zX~P&lOd%sO~Ol%tOv#{O~OR#gOr#gOt#gO#q%vO#}!fO~O!R#iOk#jap#ja!^#ja~O`!PXd}X!R}X!^}X~O!R#iO!^%xOd$QX~O`%zO~Od%{O~O#o%|O~Ok&OO~O`&PO!R#iO~Od&ROk&QO~Od&UO~OP#zOpsX!^sXdsX~O#}%]Op#TX!^#TX~OpzO!^&WO~Oo&[O#o%^O#}%]O~Ov#{OQ#gXe#gXk#gXm#gXp#gXr#gXt#gXz#gX!^#gX!`#gX!q#gX#m#gX#o#gX#p#gX#}#gXo#gX~O!^%hO!q&`Ok!oq#m!oqo!oq~P&lOl&aOv#{O~Od#eX!^#eX~P%_O!^%mOd$Ra~Od#dX!^#dX~P&lO!^%qOd#za~Od&fO~P&lOd&gO!T&hO~Od#cX!^#cX~P9dO!^%xOd$Qa~O]&mOd&oO~OS#bae#ba!V#ba!Y#ba#q#ba~Od&qO~PG]Od&qOk&rO~Ov#{OQ#gae#gak#gam#gap#gar#gat#gaz#ga!^#ga!`#ga!q#ga#m#ga#o#ga#p#ga#}#gao#ga~Od#ea!^#ea~P$SOd#da!^#da~P&lOR#gOr#gOt#gO#q%vO#}%]O~O!R#iOd#ca!^#ca~O`&xO~O!^%xOd$Qi~P&lO]&mOd&|O~Ov#{Od|ik|i~Od&}O~PG]Ok'OO~Od'PO~O!^%xOd$Qq~Od#cq!^#cq~P&lO#s!a#t#}]#}v!m~",goto:"2h$UPPPPP$VP$YP$c$uP$cP%X$cPP%_PPP%e%o%oPPPPP%oPP%oP&]P%oP%o'W%oP't'w'}'}(^'}P'}P'}P'}'}P(m'}(yP(|PP)p)v$c)|$c*SP$cP$c$cP*Y*{+YP$YP+aP+dP$YP$YP$YP+j$YP+m+p+s+z$YP$YPP$YP,P,V,f,|-[-b-l-r-x.O.U.`.f.l.rPPPPPPPPPPP.x/R/w/z0|P1U1u2O2R2U2[RnQ_^OP`kz!{$dq[OPYZ`kuvwxz!v!{#`$d%mqSOPYZ`kuvwxz!v!{#`$d%mQpTR#RqQ!OVR#SrQ#S!QS$Q!i!jR$i#U!V!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'Q!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QU#g!Y$t&hU%`$Y%b&WR&V%_!V!iac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QR$S!kQ%W$RR&S%Xk!^]bf!Y![!g#i#j#m$P$R%X%xQ#e!YQ${#mQ%w$tQ&j%xR&w&hQ!ygQ#p!`Q$^!xR%f$`R#n!]!U!mac!c!d!e!z#a#c#t#v#x#{$a$k$p$s%h%i%q%u%z&P&d&l&x'QQ!qdR$X!rQ!PVR#TrQ#S!PR$i#TQ!SWR#VsQ!UXR#WtQ{UQ!wgQ#^yQ#o!_Q$U!nQ$[!uQ$_!yQ%e$^Q&Y%aQ&]%fR&v&XSjPzQ!}kQ$c!{R%k$dZiPkz!{$dR$P!gQ%}%SR&z&mR!rdR!teR$Z!tS%a$Y%bR&t&WV%_$Y%b&WQ#PmR$g#PQ`OSkPzU!a`k$dR$d!{Q$p#aY%p$p%u&d&l'QQ%u$sQ&d%qQ&l%zR'Q&xQ#t!cQ#v!dQ#x!eV$}#t#v#xQ%X$RR&T%XQ%y$zS&k%y&yR&y&lQ%r$pR&e%rQ%n$mR&c%nQyUR#]yQ%i$aR&_%iQ!|jS$e!|$fR$f!}Q&n%}R&{&nQ#k!ZR$x#kQ%b$YR&Z%bQ&X%aR&u&X__OP`kz!{$d^UOP`kz!{$dQ!VYQ!WZQ#XuQ#YvQ#ZwQ#[xQ$]!vQ$m#`R&b%mR$q#aQ!gaQ!oc[#q!c!d!e#t#v#xQ$a!zd$o#a$p$s%q%u%z&d&l&x'QQ$r#cQ%R#{S%g$a%iQ%l$kQ&^%hR&p&P]#s!c!d!e#t#v#xW!Z]b!g$PQ!ufQ#f!YQ#l![Q$v#iQ$w#jQ$z#mS%V$R%XR&i%xQ#h!YQ%w$tR&w&hR$|#mR$n#`QlPR#_zQ!_]Q!nbQ$O!gR%U$P",nodeNames:"⚠ Unit VariableName VariableName QueryCallee Comment StyleSheet RuleSet UniversalSelector TagSelector TagName NestingSelector ClassSelector . ClassName PseudoClassSelector : :: PseudoClassName PseudoClassName ) ( ArgList ValueName ParenthesizedValue AtKeyword # ; ] [ BracketedValue } { BracedValue ColorLiteral NumberLiteral StringLiteral BinaryExpression BinOp CallExpression Callee IfExpression if ArgList IfBranch KeywordQuery FeatureQuery FeatureName BinaryQuery LogicOp ComparisonQuery CompareOp UnaryQuery UnaryQueryOp ParenthesizedQuery SelectorQuery selector ParenthesizedSelector CallQuery ArgList , CallLiteral CallTag ParenthesizedContent PseudoClassName ArgList IdSelector IdName AttributeSelector AttributeName MatchOp ChildSelector ChildOp DescendantSelector SiblingSelector SiblingOp Block Declaration PropertyName Important ImportStatement import Layer layer LayerName layer MediaStatement media CharsetStatement charset NamespaceStatement namespace NamespaceName KeyframesStatement keyframes KeyframeName KeyframeList KeyframeSelector KeyframeRangeName SupportsStatement supports ScopeStatement scope to AtRule Styles",maxTerm:143,nodeProps:[["isolate",-2,5,36,""],["openedBy",20,"(",28,"[",31,"{"],["closedBy",21,")",29,"]",32,"}"]],propSources:[Q4],skippedNodes:[0,5,106],repeatNodeCount:15,tokenData:"JQ~R!YOX$qX^%i^p$qpq%iqr({rs-ust/itu6Wuv$qvw7Qwx7cxy9Qyz9cz{9h{|:R|}>t}!O?V!O!P?t!P!Q@]!Q![AU![!]BP!]!^B{!^!_C^!_!`DY!`!aDm!a!b$q!b!cEn!c!}$q!}#OG{#O#P$q#P#QH^#Q#R6W#R#o$q#o#pHo#p#q6W#q#rIQ#r#sIc#s#y$q#y#z%i#z$f$q$f$g%i$g#BY$q#BY#BZ%i#BZ$IS$q$IS$I_%i$I_$I|$q$I|$JO%i$JO$JT$q$JT$JU%i$JU$KV$q$KV$KW%i$KW&FU$q&FU&FV%i&FV;'S$q;'S;=`Iz<%lO$q`$tSOy%Qz;'S%Q;'S;=`%c<%lO%Q`%VS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q`%fP;=`<%l%Q~%nh#s~OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Q~'ah#s~!a`OX%QX^'Y^p%Qpq'Yqy%Qz#y%Q#y#z'Y#z$f%Q$f$g'Y$g#BY%Q#BY#BZ'Y#BZ$IS%Q$IS$I_'Y$I_$I|%Q$I|$JO'Y$JO$JT%Q$JT$JU'Y$JU$KV%Q$KV$KW'Y$KW&FU%Q&FU&FV'Y&FV;'S%Q;'S;=`%c<%lO%Qj)OUOy%Qz#]%Q#]#^)b#^;'S%Q;'S;=`%c<%lO%Qj)gU!a`Oy%Qz#a%Q#a#b)y#b;'S%Q;'S;=`%c<%lO%Qj*OU!a`Oy%Qz#d%Q#d#e*b#e;'S%Q;'S;=`%c<%lO%Qj*gU!a`Oy%Qz#c%Q#c#d*y#d;'S%Q;'S;=`%c<%lO%Qj+OU!a`Oy%Qz#f%Q#f#g+b#g;'S%Q;'S;=`%c<%lO%Qj+gU!a`Oy%Qz#h%Q#h#i+y#i;'S%Q;'S;=`%c<%lO%Qj,OU!a`Oy%Qz#T%Q#T#U,b#U;'S%Q;'S;=`%c<%lO%Qj,gU!a`Oy%Qz#b%Q#b#c,y#c;'S%Q;'S;=`%c<%lO%Qj-OU!a`Oy%Qz#h%Q#h#i-b#i;'S%Q;'S;=`%c<%lO%Qj-iS!qY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Q~-xWOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c<%lO-u~.gOt~~.jRO;'S-u;'S;=`.s;=`O-u~.vXOY-uZr-urs.bs#O-u#O#P.g#P;'S-u;'S;=`/c;=`<%l-u<%lO-u~/fP;=`<%l-uj/nYjYOy%Qz!Q%Q!Q![0^![!c%Q!c!i0^!i#T%Q#T#Z0^#Z;'S%Q;'S;=`%c<%lO%Qj0cY!a`Oy%Qz!Q%Q!Q![1R![!c%Q!c!i1R!i#T%Q#T#Z1R#Z;'S%Q;'S;=`%c<%lO%Qj1WY!a`Oy%Qz!Q%Q!Q![1v![!c%Q!c!i1v!i#T%Q#T#Z1v#Z;'S%Q;'S;=`%c<%lO%Qj1}YrY!a`Oy%Qz!Q%Q!Q![2m![!c%Q!c!i2m!i#T%Q#T#Z2m#Z;'S%Q;'S;=`%c<%lO%Qj2tYrY!a`Oy%Qz!Q%Q!Q![3d![!c%Q!c!i3d!i#T%Q#T#Z3d#Z;'S%Q;'S;=`%c<%lO%Qj3iY!a`Oy%Qz!Q%Q!Q![4X![!c%Q!c!i4X!i#T%Q#T#Z4X#Z;'S%Q;'S;=`%c<%lO%Qj4`YrY!a`Oy%Qz!Q%Q!Q![5O![!c%Q!c!i5O!i#T%Q#T#Z5O#Z;'S%Q;'S;=`%c<%lO%Qj5TY!a`Oy%Qz!Q%Q!Q![5s![!c%Q!c!i5s!i#T%Q#T#Z5s#Z;'S%Q;'S;=`%c<%lO%Qj5zSrY!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qd6ZUOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qd6tS!hS!a`Oy%Qz;'S%Q;'S;=`%c<%lO%Qb7VSZQOy%Qz;'S%Q;'S;=`%c<%lO%Q~7fWOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z<%lO7c~8RRO;'S7c;'S;=`8[;=`O7c~8_XOY7cZw7cwx.bx#O7c#O#P8O#P;'S7c;'S;=`8z;=`<%l7c<%lO7c~8}P;=`<%l7cj9VSeYOy%Qz;'S%Q;'S;=`%c<%lO%Q~9hOd~n9oUWQvWOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Qj:YWvW!mQOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj:wU!a`Oy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Qj;bY!a`#}YOy%Qz!Q%Q!Q![;Z![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj<VY!a`Oy%Qz{%Q{|<u|}%Q}!O<u!O!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj<zU!a`Oy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj=eU!a`#}YOy%Qz!Q%Q!Q![=^![;'S%Q;'S;=`%c<%lO%Qj>O[!a`#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%Qj>yS!^YOy%Qz;'S%Q;'S;=`%c<%lO%Qj?[WvWOy%Qz!O%Q!O!P:r!P!Q%Q!Q![=w![;'S%Q;'S;=`%c<%lO%Qj?yU]YOy%Qz!Q%Q!Q![;Z![;'S%Q;'S;=`%c<%lO%Q~@bTvWOy%Qz{@q{;'S%Q;'S;=`%c<%lO%Q~@xS!a`#t~Oy%Qz;'S%Q;'S;=`%c<%lO%QjAZ[#}YOy%Qz!O%Q!O!P;Z!P!Q%Q!Q![=w![!g%Q!g!h<Q!h#X%Q#X#Y<Q#Y;'S%Q;'S;=`%c<%lO%QjBUU`YOy%Qz![%Q![!]Bh!];'S%Q;'S;=`%c<%lO%QbBoSaQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjCQSkYOy%Qz;'S%Q;'S;=`%c<%lO%QhCcU!TWOy%Qz!_%Q!_!`Cu!`;'S%Q;'S;=`%c<%lO%QhC|S!TW!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QlDaS!TW!hSOy%Qz;'S%Q;'S;=`%c<%lO%QjDtV!jQ!TWOy%Qz!_%Q!_!`Cu!`!aEZ!a;'S%Q;'S;=`%c<%lO%QbEbS!jQ!a`Oy%Qz;'S%Q;'S;=`%c<%lO%QjEqYOy%Qz}%Q}!OFa!O!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjFfW!a`Oy%Qz!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjGV[iY!a`Oy%Qz}%Q}!OGO!O!Q%Q!Q![GO![!c%Q!c!}GO!}#T%Q#T#oGO#o;'S%Q;'S;=`%c<%lO%QjHQSmYOy%Qz;'S%Q;'S;=`%c<%lO%QnHcSl^Oy%Qz;'S%Q;'S;=`%c<%lO%QjHtSpYOy%Qz;'S%Q;'S;=`%c<%lO%QjIVSoYOy%Qz;'S%Q;'S;=`%c<%lO%QfIhU!mQOy%Qz!_%Q!_!`6m!`;'S%Q;'S;=`%c<%lO%Q`I}P;=`<%l$q",tokenizers:[$4,C4,w4,S4,1,2,3,4,new il("m~RRYZ[z{a~~g~aO#v~~dP!P!Qg~lO#w~~",28,129)],topRules:{StyleSheet:[0,6],Styles:[1,105]},dynamicPrecedences:{76:1},specialized:[{term:124,get:r=>P4[r]||-1},{term:125,get:r=>T4[r]||-1},{term:4,get:r=>M4[r]||-1},{term:25,get:r=>A4[r]||-1},{term:123,get:r=>_4[r]||-1}],tokenPrec:1963});let cc=null;function uc(){if(!cc&&typeof document=="object"&&document.body){let{style:r}=document.body,e=[],t=new Set;for(let n in r)n!="cssText"&&n!="cssFloat"&&typeof r[n]=="string"&&(/[A-Z]/.test(n)&&(n=n.replace(/[A-Z]/g,s=>"-"+s.toLowerCase())),t.has(n)||(e.push(n),t.add(n)));cc=e.sort().map(n=>({type:"property",label:n,apply:n+": "}))}return cc||[]}const vm=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map(r=>({type:"class",label:r})),bm=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map(r=>({type:"keyword",label:r})).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map(r=>({type:"constant",label:r}))),B4=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map(r=>({type:"type",label:r})),D4=["@charset","@color-profile","@container","@counter-style","@font-face","@font-feature-values","@font-palette-values","@import","@keyframes","@layer","@media","@namespace","@page","@position-try","@property","@scope","@starting-style","@supports","@view-transition"].map(r=>({type:"keyword",label:r})),cn=/^(\w[\w-]*|-\w[\w-]*|)$/,Z4=/^-(-[\w-]*)?$/;function E4(r,e){var t;if((r.name=="("||r.type.isError)&&(r=r.parent||r),r.name!="ArgList")return!1;let n=(t=r.parent)===null||t===void 0?void 0:t.firstChild;return n?.name!="Callee"?!1:e.sliceString(n.from,n.to)=="var"}const xm=new _g,L4=["Declaration"];function X4(r){for(let e=r;;){if(e.type.isTop)return e;if(!(e=e.parent))return r}}function X0(r,e,t){if(e.to-e.from>4096){let n=xm.get(e);if(n)return n;let s=[],i=new Set,o=e.cursor(nt.IncludeAnonymous);if(o.firstChild())do for(let a of X0(r,o.node,t))i.has(a.label)||(i.add(a.label),s.push(a));while(o.nextSibling());return xm.set(e,s),s}else{let n=[],s=new Set;return e.cursor().iterate(i=>{var o;if(t(i)&&i.matchContext(L4)&&((o=i.node.nextSibling)===null||o===void 0?void 0:o.name)==":"){let a=r.sliceString(i.from,i.to);s.has(a)||(s.add(a),n.push({label:a,type:"variable"}))}}),n}}const I4=r=>e=>{let{state:t,pos:n}=e,s=ct(t).resolveInner(n,-1),i=s.type.isError&&s.from==s.to-1&&t.doc.sliceString(s.from,s.to)=="-";if(s.name=="PropertyName"||(i||s.name=="TagName")&&/^(Block|Styles)$/.test(s.resolve(s.to).name))return{from:s.from,options:uc(),validFor:cn};if(s.name=="ValueName")return{from:s.from,options:bm,validFor:cn};if(s.name=="PseudoClassName")return{from:s.from,options:vm,validFor:cn};if(r(s)||(e.explicit||i)&&E4(s,t.doc))return{from:r(s)||i?s.from:n,options:X0(t.doc,X4(s),r),validFor:Z4};if(s.name=="TagName"){for(let{parent:l}=s;l;l=l.parent)if(l.name=="Block")return{from:s.from,options:uc(),validFor:cn};return{from:s.from,options:B4,validFor:cn}}if(s.name=="AtKeyword")return{from:s.from,options:D4,validFor:cn};if(!e.explicit)return null;let o=s.resolve(n),a=o.childBefore(n);return a&&a.name==":"&&o.name=="PseudoClassSelector"?{from:n,options:vm,validFor:cn}:a&&a.name==":"&&o.name=="Declaration"||o.name=="ArgList"?{from:n,options:bm,validFor:cn}:o.name=="Block"||o.name=="Styles"?{from:n,options:uc(),validFor:cn}:null},V4=I4(r=>r.name=="VariableName"),al=Ys.define({name:"css",parser:R4.configure({props:[Co.add({Declaration:ya()}),ti.add({"Block KeyframeList":Ig})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function z4(){return new ro(al,al.data.of({autocomplete:V4}))}const N4=316,W4=317,ym=1,q4=2,j4=3,Y4=4,F4=318,U4=320,G4=321,H4=5,K4=6,J4=0,ku=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288],I0=125,eA=59,wu=47,tA=42,rA=43,nA=45,sA=60,iA=44,oA=63,aA=46,lA=91,cA=new S0({start:!1,shift(r,e){return e==H4||e==K4||e==U4?r:e==G4},strict:!1}),uA=new pr((r,e)=>{let{next:t}=r;(t==I0||t==-1||e.context)&&r.acceptToken(F4)},{contextual:!0,fallback:!0}),hA=new pr((r,e)=>{let{next:t}=r,n;ku.indexOf(t)>-1||t==wu&&((n=r.peek(1))==wu||n==tA)||t!=I0&&t!=eA&&t!=-1&&!e.context&&r.acceptToken(N4)},{contextual:!0}),dA=new pr((r,e)=>{r.next==lA&&!e.context&&r.acceptToken(W4)},{contextual:!0}),fA=new pr((r,e)=>{let{next:t}=r;if(t==rA||t==nA){if(r.advance(),t==r.next){r.advance();let n=!e.context&&e.canShift(ym);r.acceptToken(n?ym:q4)}}else t==oA&&r.peek(1)==aA&&(r.advance(),r.advance(),(r.next<48||r.next>57)&&r.acceptToken(j4))},{contextual:!0});function hc(r,e){return r>=65&&r<=90||r>=97&&r<=122||r==95||r>=192||!e&&r>=48&&r<=57}const mA=new pr((r,e)=>{if(r.next!=sA||!e.dialectEnabled(J4)||(r.advance(),r.next==wu))return;let t=0;for(;ku.indexOf(r.next)>-1;)r.advance(),t++;if(hc(r.next,!0)){for(r.advance(),t++;hc(r.next,!1);)r.advance(),t++;for(;ku.indexOf(r.next)>-1;)r.advance(),t++;if(r.next==iA)return;for(let n=0;;n++){if(n==7){if(!hc(r.next,!0))return;break}if(r.next!="extends".charCodeAt(n))break;r.advance(),t++}}r.acceptToken(Y4,-t)}),pA=ei({"get set async static":$.modifier,"for while do if else switch try catch finally return throw break continue default case defer":$.controlKeyword,"in of await yield void typeof delete instanceof as satisfies":$.operatorKeyword,"let var const using function class extends":$.definitionKeyword,"import export from":$.moduleKeyword,"with debugger new":$.keyword,TemplateString:$.special($.string),super:$.atom,BooleanLiteral:$.bool,this:$.self,null:$.null,Star:$.modifier,VariableName:$.variableName,"CallExpression/VariableName TaggedTemplateExpression/VariableName":$.function($.variableName),VariableDefinition:$.definition($.variableName),Label:$.labelName,PropertyName:$.propertyName,PrivatePropertyName:$.special($.propertyName),"CallExpression/MemberExpression/PropertyName":$.function($.propertyName),"FunctionDeclaration/VariableDefinition":$.function($.definition($.variableName)),"ClassDeclaration/VariableDefinition":$.definition($.className),"NewExpression/VariableName":$.className,PropertyDefinition:$.definition($.propertyName),PrivatePropertyDefinition:$.definition($.special($.propertyName)),UpdateOp:$.updateOperator,"LineComment Hashbang":$.lineComment,BlockComment:$.blockComment,Number:$.number,String:$.string,Escape:$.escape,ArithOp:$.arithmeticOperator,LogicOp:$.logicOperator,BitOp:$.bitwiseOperator,CompareOp:$.compareOperator,RegExp:$.regexp,Equals:$.definitionOperator,Arrow:$.function($.punctuation),": Spread":$.punctuation,"( )":$.paren,"[ ]":$.squareBracket,"{ }":$.brace,"InterpolationStart InterpolationEnd":$.special($.brace),".":$.derefOperator,", ;":$.separator,"@":$.meta,TypeName:$.typeName,TypeDefinition:$.definition($.typeName),"type enum interface implements namespace module declare":$.definitionKeyword,"abstract global Privacy readonly override":$.modifier,"is keyof unique infer asserts":$.operatorKeyword,JSXAttributeValue:$.attributeValue,JSXText:$.content,"JSXStartTag JSXStartCloseTag JSXSelfCloseEndTag JSXEndTag":$.angleBracket,"JSXIdentifier JSXNameSpacedName":$.tagName,"JSXAttribute/JSXIdentifier JSXAttribute/JSXNameSpacedName":$.attributeName,"JSXBuiltin/JSXIdentifier":$.standard($.tagName)}),gA={__proto__:null,export:20,as:25,from:33,default:36,async:41,function:42,in:52,out:55,const:56,extends:60,this:64,true:72,false:72,null:84,void:88,typeof:92,super:108,new:142,delete:154,yield:163,await:167,class:172,public:235,private:235,protected:235,readonly:237,instanceof:256,satisfies:259,import:292,keyof:349,unique:353,infer:359,asserts:395,is:397,abstract:417,implements:419,type:421,let:424,var:426,using:429,interface:435,enum:439,namespace:445,module:447,declare:451,global:455,defer:471,for:476,of:485,while:488,with:492,do:496,if:500,else:502,switch:506,case:512,try:518,catch:522,finally:526,return:530,throw:534,break:538,continue:542,debugger:546},OA={__proto__:null,async:129,get:131,set:133,declare:195,public:197,private:197,protected:197,static:199,abstract:201,override:203,readonly:209,accessor:211,new:401},vA={__proto__:null,"<":193},bA=Hs.deserialize({version:14,states:"$F|Q%TQlOOO%[QlOOO'_QpOOP(lO`OOO*zQ!0MxO'#CiO+RO#tO'#CjO+aO&jO'#CjO+oO#@ItO'#DaO.QQlO'#DgO.bQlO'#DrO%[QlO'#DzO0fQlO'#ESOOQ!0Lf'#E['#E[O1PQ`O'#EXOOQO'#Ep'#EpOOQO'#Il'#IlO1XQ`O'#GsO1dQ`O'#EoO1iQ`O'#EoO3hQ!0MxO'#JrO6[Q!0MxO'#JsO6uQ`O'#F]O6zQ,UO'#FtOOQ!0Lf'#Ff'#FfO7VO7dO'#FfO9XQMhO'#F|O9`Q`O'#F{OOQ!0Lf'#Js'#JsOOQ!0Lb'#Jr'#JrO9eQ`O'#GwOOQ['#K_'#K_O9pQ`O'#IYO9uQ!0LrO'#IZOOQ['#J`'#J`OOQ['#I_'#I_Q`QlOOQ`QlOOO9}Q!L^O'#DvO:UQlO'#EOO:]QlO'#EQO9kQ`O'#GsO:dQMhO'#CoO:rQ`O'#EnO:}Q`O'#EyO;hQMhO'#FeO;xQ`O'#GsOOQO'#K`'#K`O;}Q`O'#K`O<]Q`O'#G{O<]Q`O'#G|O<]Q`O'#HOO9kQ`O'#HRO=SQ`O'#HUO>kQ`O'#CeO>{Q`O'#HcO?TQ`O'#HiO?TQ`O'#HkO`QlO'#HmO?TQ`O'#HoO?TQ`O'#HrO?YQ`O'#HxO?_Q!0LsO'#IOO%[QlO'#IQO?jQ!0LsO'#ISO?uQ!0LsO'#IUO9uQ!0LrO'#IWO@QQ!0MxO'#CiOASQpO'#DlQOQ`OOO%[QlO'#EQOAjQ`O'#ETO:dQMhO'#EnOAuQ`O'#EnOBQQ!bO'#FeOOQ['#Cg'#CgOOQ!0Lb'#Dq'#DqOOQ!0Lb'#Jv'#JvO%[QlO'#JvOOQO'#Jy'#JyOOQO'#Ih'#IhOCQQpO'#EgOOQ!0Lb'#Ef'#EfOOQ!0Lb'#J}'#J}OC|Q!0MSO'#EgODWQpO'#EWOOQO'#Jx'#JxODlQpO'#JyOEyQpO'#EWODWQpO'#EgPFWO&2DjO'#CbPOOO)CD})CD}OOOO'#I`'#I`OFcO#tO,59UOOQ!0Lh,59U,59UOOOO'#Ia'#IaOFqO&jO,59UOGPQ!L^O'#DcOOOO'#Ic'#IcOGWO#@ItO,59{OOQ!0Lf,59{,59{OGfQlO'#IdOGyQ`O'#JtOIxQ!fO'#JtO+}QlO'#JtOJPQ`O,5:ROJgQ`O'#EpOJtQ`O'#KTOKPQ`O'#KSOKPQ`O'#KSOKXQ`O,5;^OK^Q`O'#KROOQ!0Ln,5:^,5:^OKeQlO,5:^OMcQ!0MxO,5:fONSQ`O,5:nONmQ!0LrO'#KQONtQ`O'#KPO9eQ`O'#KPO! YQ`O'#KPO! bQ`O,5;]O! gQ`O'#KPO!#lQ!fO'#JsOOQ!0Lh'#Ci'#CiO%[QlO'#ESO!$[Q!fO,5:sOOQS'#Jz'#JzOOQO-E<j-E<jO9kQ`O,5=_O!$rQ`O,5=_O!$wQlO,5;ZO!&zQMhO'#EkO!(eQ`O,5;ZO!(jQlO'#DyO!(tQpO,5;dO!(|QpO,5;dO%[QlO,5;dOOQ['#FT'#FTOOQ['#FV'#FVO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eO%[QlO,5;eOOQ['#FZ'#FZO!)[QlO,5;tOOQ!0Lf,5;y,5;yOOQ!0Lf,5;z,5;zOOQ!0Lf,5;|,5;|O%[QlO'#IpO!+_Q!0LrO,5<iO%[QlO,5;eO!&zQMhO,5;eO!+|QMhO,5;eO!-nQMhO'#E^O%[QlO,5;wOOQ!0Lf,5;{,5;{O!-uQ,UO'#FjO!.rQ,UO'#KXO!.^Q,UO'#KXO!.yQ,UO'#KXOOQO'#KX'#KXO!/_Q,UO,5<SOOOW,5<`,5<`O!/pQlO'#FvOOOW'#Io'#IoO7VO7dO,5<QO!/wQ,UO'#FxOOQ!0Lf,5<Q,5<QO!0hQ$IUO'#CyOOQ!0Lh'#C}'#C}O!0{O#@ItO'#DRO!1iQMjO,5<eO!1pQ`O,5<hO!3YQ(CWO'#GXO!3jQ`O'#GYO!3oQ`O'#GYO!5_Q(CWO'#G^O!6dQpO'#GbOOQO'#Gn'#GnO!,TQMhO'#GmOOQO'#Gp'#GpO!,TQMhO'#GoO!7VQ$IUO'#JlOOQ!0Lh'#Jl'#JlO!7aQ`O'#JkO!7oQ`O'#JjO!7wQ`O'#CuOOQ!0Lh'#C{'#C{O!8YQ`O'#C}OOQ!0Lh'#DV'#DVOOQ!0Lh'#DX'#DXO!8_Q`O,5<eO1SQ`O'#DZO!,TQMhO'#GPO!,TQMhO'#GRO!8gQ`O'#GTO!8lQ`O'#GUO!3oQ`O'#G[O!,TQMhO'#GaO<]Q`O'#JkO!8qQ`O'#EqO!9`Q`O,5<gOOQ!0Lb'#Cr'#CrO!9hQ`O'#ErO!:bQpO'#EsOOQ!0Lb'#KR'#KRO!:iQ!0LrO'#KaO9uQ!0LrO,5=cO`QlO,5>tOOQ['#Jh'#JhOOQ[,5>u,5>uOOQ[-E<]-E<]O!<hQ!0MxO,5:bO!:]QpO,5:`O!?RQ!0MxO,5:jO%[QlO,5:jO!AiQ!0MxO,5:lOOQO,5@z,5@zO!BYQMhO,5=_O!BhQ!0LrO'#JiO9`Q`O'#JiO!ByQ!0LrO,59ZO!CUQpO,59ZO!C^QMhO,59ZO:dQMhO,59ZO!CiQ`O,5;ZO!CqQ`O'#HbO!DVQ`O'#KdO%[QlO,5;}O!:]QpO,5<PO!D_Q`O,5=zO!DdQ`O,5=zO!DiQ`O,5=zO!DwQ`O,5=zO9uQ!0LrO,5=zO<]Q`O,5=jOOQO'#Cy'#CyO!EOQpO,5=gO!EWQMhO,5=hO!EcQ`O,5=jO!EhQ!bO,5=mO!EpQ`O'#K`O?YQ`O'#HWO9kQ`O'#HYO!EuQ`O'#HYO:dQMhO'#H[O!EzQ`O'#H[OOQ[,5=p,5=pO!FPQ`O'#H]O!FbQ`O'#CoO!FgQ`O,59PO!FqQ`O,59PO!HvQlO,59POOQ[,59P,59PO!IWQ!0LrO,59PO%[QlO,59PO!KcQlO'#HeOOQ['#Hf'#HfOOQ['#Hg'#HgO`QlO,5=}O!KyQ`O,5=}O`QlO,5>TO`QlO,5>VO!LOQ`O,5>XO`QlO,5>ZO!LTQ`O,5>^O!LYQlO,5>dOOQ[,5>j,5>jO%[QlO,5>jO9uQ!0LrO,5>lOOQ[,5>n,5>nO#!dQ`O,5>nOOQ[,5>p,5>pO#!dQ`O,5>pOOQ[,5>r,5>rO##QQpO'#D_O%[QlO'#JvO##sQpO'#JvO##}QpO'#DmO#$`QpO'#DmO#&qQlO'#DmO#&xQ`O'#JuO#'QQ`O,5:WO#'VQ`O'#EtO#'eQ`O'#KUO#'mQ`O,5;_O#'rQpO'#DmO#(PQpO'#EVOOQ!0Lf,5:o,5:oO%[QlO,5:oO#(WQ`O,5:oO?YQ`O,5;YO!CUQpO,5;YO!C^QMhO,5;YO:dQMhO,5;YO#(`Q`O,5@bO#(eQ07dO,5:sOOQO-E<f-E<fO#)kQ!0MSO,5;RODWQpO,5:rO#)uQpO,5:rODWQpO,5;RO!ByQ!0LrO,5:rOOQ!0Lb'#Ej'#EjOOQO,5;R,5;RO%[QlO,5;RO#*SQ!0LrO,5;RO#*_Q!0LrO,5;RO!CUQpO,5:rOOQO,5;X,5;XO#*mQ!0LrO,5;RPOOO'#I^'#I^P#+RO&2DjO,58|POOO,58|,58|OOOO-E<^-E<^OOQ!0Lh1G.p1G.pOOOO-E<_-E<_OOOO,59},59}O#+^Q!bO,59}OOOO-E<a-E<aOOQ!0Lf1G/g1G/gO#+cQ!fO,5?OO+}QlO,5?OOOQO,5?U,5?UO#+mQlO'#IdOOQO-E<b-E<bO#+zQ`O,5@`O#,SQ!fO,5@`O#,ZQ`O,5@nOOQ!0Lf1G/m1G/mO%[QlO,5@oO#,cQ`O'#IjOOQO-E<h-E<hO#,ZQ`O,5@nOOQ!0Lb1G0x1G0xOOQ!0Ln1G/x1G/xOOQ!0Ln1G0Y1G0YO%[QlO,5@lO#,wQ!0LrO,5@lO#-YQ!0LrO,5@lO#-aQ`O,5@kO9eQ`O,5@kO#-iQ`O,5@kO#-wQ`O'#ImO#-aQ`O,5@kOOQ!0Lb1G0w1G0wO!(tQpO,5:uO!)PQpO,5:uOOQS,5:w,5:wO#.iQdO,5:wO#.qQMhO1G2yO9kQ`O1G2yOOQ!0Lf1G0u1G0uO#/PQ!0MxO1G0uO#0UQ!0MvO,5;VOOQ!0Lh'#GW'#GWO#0rQ!0MzO'#JlO!$wQlO1G0uO#2}Q!fO'#JwO%[QlO'#JwO#3XQ`O,5:eOOQ!0Lh'#D_'#D_OOQ!0Lf1G1O1G1OO%[QlO1G1OOOQ!0Lf1G1f1G1fO#3^Q`O1G1OO#5rQ!0MxO1G1PO#5yQ!0MxO1G1PO#8aQ!0MxO1G1PO#8hQ!0MxO1G1PO#;OQ!0MxO1G1PO#=fQ!0MxO1G1PO#=mQ!0MxO1G1PO#=tQ!0MxO1G1PO#@[Q!0MxO1G1PO#@cQ!0MxO1G1PO#BpQ?MtO'#CiO#DkQ?MtO1G1`O#DrQ?MtO'#JsO#EVQ!0MxO,5?[OOQ!0Lb-E<n-E<nO#GdQ!0MxO1G1PO#HaQ!0MzO1G1POOQ!0Lf1G1P1G1PO#IdQMjO'#J|O#InQ`O,5:xO#IsQ!0MxO1G1cO#JgQ,UO,5<WO#JoQ,UO,5<XO#JwQ,UO'#FoO#K`Q`O'#FnOOQO'#KY'#KYOOQO'#In'#InO#KeQ,UO1G1nOOQ!0Lf1G1n1G1nOOOW1G1y1G1yO#KvQ?MtO'#JrO#LQQ`O,5<bO!)[QlO,5<bOOOW-E<m-E<mOOQ!0Lf1G1l1G1lO#LVQpO'#KXOOQ!0Lf,5<d,5<dO#L_QpO,5<dO#LdQMhO'#DTOOOO'#Ib'#IbO#LkO#@ItO,59mOOQ!0Lh,59m,59mO%[QlO1G2PO!8lQ`O'#IrO#LvQ`O,5<zOOQ!0Lh,5<w,5<wO!,TQMhO'#IuO#MdQMjO,5=XO!,TQMhO'#IwO#NVQMjO,5=ZO!&zQMhO,5=]OOQO1G2S1G2SO#NaQ!dO'#CrO#NtQ(CWO'#ErO$ |QpO'#GbO$!dQ!dO,5<sO$!kQ`O'#K[O9eQ`O'#K[O$!yQ`O,5<uO$#aQ!dO'#C{O!,TQMhO,5<tO$#kQ`O'#GZO$$PQ`O,5<tO$$UQ!dO'#GWO$$cQ!dO'#K]O$$mQ`O'#K]O!&zQMhO'#K]O$$rQ`O,5<xO$$wQlO'#JvO$%RQpO'#GcO#$`QpO'#GcO$%dQ`O'#GgO!3oQ`O'#GkO$%iQ!0LrO'#ItO$%tQpO,5<|OOQ!0Lp,5<|,5<|O$%{QpO'#GcO$&YQpO'#GdO$&kQpO'#GdO$&pQMjO,5=XO$'QQMjO,5=ZOOQ!0Lh,5=^,5=^O!,TQMhO,5@VO!,TQMhO,5@VO$'bQ`O'#IyO$'vQ`O,5@UO$(OQ`O,59aOOQ!0Lh,59i,59iO$(TQ`O,5@VO$)TQ$IYO,59uOOQ!0Lh'#Jp'#JpO$)vQMjO,5<kO$*iQMjO,5<mO@zQ`O,5<oOOQ!0Lh,5<p,5<pO$*sQ`O,5<vO$*xQMjO,5<{O$+YQ`O'#KPO!$wQlO1G2RO$+_Q`O1G2RO9eQ`O'#KSO9eQ`O'#EtO%[QlO'#EtO9eQ`O'#I{O$+dQ!0LrO,5@{OOQ[1G2}1G2}OOQ[1G4`1G4`OOQ!0Lf1G/|1G/|OOQ!0Lf1G/z1G/zO$-fQ!0MxO1G0UOOQ[1G2y1G2yO!&zQMhO1G2yO%[QlO1G2yO#.tQ`O1G2yO$/jQMhO'#EkOOQ!0Lb,5@T,5@TO$/wQ!0LrO,5@TOOQ[1G.u1G.uO!ByQ!0LrO1G.uO!CUQpO1G.uO!C^QMhO1G.uO$0YQ`O1G0uO$0_Q`O'#CiO$0jQ`O'#KeO$0rQ`O,5=|O$0wQ`O'#KeO$0|Q`O'#KeO$1[Q`O'#JRO$1jQ`O,5AOO$1rQ!fO1G1iOOQ!0Lf1G1k1G1kO9kQ`O1G3fO@zQ`O1G3fO$1yQ`O1G3fO$2OQ`O1G3fO!DiQ`O1G3fO9uQ!0LrO1G3fOOQ[1G3f1G3fO!EcQ`O1G3UO!&zQMhO1G3RO$2TQ`O1G3ROOQ[1G3S1G3SO!&zQMhO1G3SO$2YQ`O1G3SO$2bQpO'#HQOOQ[1G3U1G3UO!6_QpO'#I}O!EhQ!bO1G3XOOQ[1G3X1G3XOOQ[,5=r,5=rO$2jQMhO,5=tO9kQ`O,5=tO$%dQ`O,5=vO9`Q`O,5=vO!CUQpO,5=vO!C^QMhO,5=vO:dQMhO,5=vO$2xQ`O'#KcO$3TQ`O,5=wOOQ[1G.k1G.kO$3YQ!0LrO1G.kO@zQ`O1G.kO$3eQ`O1G.kO9uQ!0LrO1G.kO$5mQ!fO,5AQO$5zQ`O,5AQO9eQ`O,5AQO$6VQlO,5>PO$6^Q`O,5>POOQ[1G3i1G3iO`QlO1G3iOOQ[1G3o1G3oOOQ[1G3q1G3qO?TQ`O1G3sO$6cQlO1G3uO$:gQlO'#HtOOQ[1G3x1G3xO$:tQ`O'#HzO?YQ`O'#H|OOQ[1G4O1G4OO$:|QlO1G4OO9uQ!0LrO1G4UOOQ[1G4W1G4WOOQ!0Lb'#G_'#G_O9uQ!0LrO1G4YO9uQ!0LrO1G4[O$?TQ`O,5@bO!)[QlO,5;`O9eQ`O,5;`O?YQ`O,5:XO!)[QlO,5:XO!CUQpO,5:XO$?YQ?MtO,5:XOOQO,5;`,5;`O$?dQpO'#IeO$?zQ`O,5@aOOQ!0Lf1G/r1G/rO$@SQpO'#IkO$@^Q`O,5@pOOQ!0Lb1G0y1G0yO#$`QpO,5:XOOQO'#Ig'#IgO$@fQpO,5:qOOQ!0Ln,5:q,5:qO#(ZQ`O1G0ZOOQ!0Lf1G0Z1G0ZO%[QlO1G0ZOOQ!0Lf1G0t1G0tO?YQ`O1G0tO!CUQpO1G0tO!C^QMhO1G0tOOQ!0Lb1G5|1G5|O!ByQ!0LrO1G0^OOQO1G0m1G0mO%[QlO1G0mO$@mQ!0LrO1G0mO$@xQ!0LrO1G0mO!CUQpO1G0^ODWQpO1G0^O$AWQ!0LrO1G0mOOQO1G0^1G0^O$AlQ!0MxO1G0mPOOO-E<[-E<[POOO1G.h1G.hOOOO1G/i1G/iO$AvQ!bO,5<iO$BOQ!fO1G4jOOQO1G4p1G4pO%[QlO,5?OO$BYQ`O1G5zO$BbQ`O1G6YO$BjQ!fO1G6ZO9eQ`O,5?UO$BtQ!0MxO1G6WO%[QlO1G6WO$CUQ!0LrO1G6WO$CgQ`O1G6VO$CgQ`O1G6VO9eQ`O1G6VO$CoQ`O,5?XO9eQ`O,5?XOOQO,5?X,5?XO$DTQ`O,5?XO$+YQ`O,5?XOOQO-E<k-E<kOOQS1G0a1G0aOOQS1G0c1G0cO#.lQ`O1G0cOOQ[7+(e7+(eO!&zQMhO7+(eO%[QlO7+(eO$DcQ`O7+(eO$DnQMhO7+(eO$D|Q!0MzO,5=XO$GXQ!0MzO,5=ZO$IdQ!0MzO,5=XO$KuQ!0MzO,5=ZO$NWQ!0MzO,59uO%!]Q!0MzO,5<kO%$hQ!0MzO,5<mO%&sQ!0MzO,5<{OOQ!0Lf7+&a7+&aO%)UQ!0MxO7+&aO%)xQlO'#IfO%*VQ`O,5@cO%*_Q!fO,5@cOOQ!0Lf1G0P1G0PO%*iQ`O7+&jOOQ!0Lf7+&j7+&jO%*nQ?MtO,5:fO%[QlO7+&zO%*xQ?MtO,5:bO%+VQ?MtO,5:jO%+aQ?MtO,5:lO%+kQMhO'#IiO%+uQ`O,5@hOOQ!0Lh1G0d1G0dOOQO1G1r1G1rOOQO1G1s1G1sO%+}Q!jO,5<ZO!)[QlO,5<YOOQO-E<l-E<lOOQ!0Lf7+'Y7+'YOOOW7+'e7+'eOOOW1G1|1G1|O%,YQ`O1G1|OOQ!0Lf1G2O1G2OOOOO,59o,59oO%,_Q!dO,59oOOOO-E<`-E<`OOQ!0Lh1G/X1G/XO%,fQ!0MxO7+'kOOQ!0Lh,5?^,5?^O%-YQMhO1G2fP%-aQ`O'#IrPOQ!0Lh-E<p-E<pO%-}QMjO,5?aOOQ!0Lh-E<s-E<sO%.pQMjO,5?cOOQ!0Lh-E<u-E<uO%.zQ!dO1G2wO%/RQ!dO'#CrO%/iQMhO'#KSO$$wQlO'#JvOOQ!0Lh1G2_1G2_O%/sQ`O'#IqO%0[Q`O,5@vO%0[Q`O,5@vO%0dQ`O,5@vO%0oQ`O,5@vOOQO1G2a1G2aO%0}QMjO1G2`O$+YQ`O'#K[O!,TQMhO1G2`O%1_Q(CWO'#IsO%1lQ`O,5@wO!&zQMhO,5@wO%1tQ!dO,5@wOOQ!0Lh1G2d1G2dO%4UQ!fO'#CiO%4`Q`O,5=POOQ!0Lb,5<},5<}O%4hQpO,5<}OOQ!0Lb,5=O,5=OOCwQ`O,5<}O%4sQpO,5<}OOQ!0Lb,5=R,5=RO$+YQ`O,5=VOOQO,5?`,5?`OOQO-E<r-E<rOOQ!0Lp1G2h1G2hO#$`QpO,5<}O$$wQlO,5=PO%5RQ`O,5=OO%5^QpO,5=OO!,TQMhO'#IuO%6WQMjO1G2sO!,TQMhO'#IwO%6yQMjO1G2uO%7TQMjO1G5qO%7_QMjO1G5qOOQO,5?e,5?eOOQO-E<w-E<wOOQO1G.{1G.{O!,TQMhO1G5qO!,TQMhO1G5qO!:]QpO,59wO%[QlO,59wOOQ!0Lh,5<j,5<jO%7lQ`O1G2ZO!,TQMhO1G2bO%7qQ!0MxO7+'mOOQ!0Lf7+'m7+'mO!$wQlO7+'mO%8eQ`O,5;`OOQ!0Lb,5?g,5?gOOQ!0Lb-E<y-E<yO%8jQ!dO'#K^O#(ZQ`O7+(eO4UQ!fO7+(eO$DfQ`O7+(eO%8tQ!0MvO'#CiO%9XQ!0MvO,5=SO%9lQ`O,5=SO%9tQ`O,5=SOOQ!0Lb1G5o1G5oOOQ[7+$a7+$aO!ByQ!0LrO7+$aO!CUQpO7+$aO!$wQlO7+&aO%9yQ`O'#JQO%:bQ`O,5APOOQO1G3h1G3hO9kQ`O,5APO%:bQ`O,5APO%:jQ`O,5APOOQO,5?m,5?mOOQO-E=P-E=POOQ!0Lf7+'T7+'TO%:oQ`O7+)QO9uQ!0LrO7+)QO9kQ`O7+)QO@zQ`O7+)QO%:tQ`O7+)QOOQ[7+)Q7+)QOOQ[7+(p7+(pO%:yQ!0MvO7+(mO!&zQMhO7+(mO!E^Q`O7+(nOOQ[7+(n7+(nO!&zQMhO7+(nO%;TQ`O'#KbO%;`Q`O,5=lOOQO,5?i,5?iOOQO-E<{-E<{OOQ[7+(s7+(sO%<rQpO'#HZOOQ[1G3`1G3`O!&zQMhO1G3`O%[QlO1G3`O%<yQ`O1G3`O%=UQMhO1G3`O9uQ!0LrO1G3bO$%dQ`O1G3bO9`Q`O1G3bO!CUQpO1G3bO!C^QMhO1G3bO%=dQ`O'#JPO%=xQ`O,5@}O%>QQpO,5@}OOQ!0Lb1G3c1G3cOOQ[7+$V7+$VO@zQ`O7+$VO9uQ!0LrO7+$VO%>]Q`O7+$VO%[QlO1G6lO%[QlO1G6mO%>bQ!0LrO1G6lO%>lQlO1G3kO%>sQ`O1G3kO%>xQlO1G3kOOQ[7+)T7+)TO9uQ!0LrO7+)_O`QlO7+)aOOQ['#Kh'#KhOOQ['#JS'#JSO%?PQlO,5>`OOQ[,5>`,5>`O%[QlO'#HuO%?^Q`O'#HwOOQ[,5>f,5>fO9eQ`O,5>fOOQ[,5>h,5>hOOQ[7+)j7+)jOOQ[7+)p7+)pOOQ[7+)t7+)tOOQ[7+)v7+)vO%?cQpO1G5|O%?}Q?MtO1G0zO%@XQ`O1G0zOOQO1G/s1G/sO%@dQ?MtO1G/sO?YQ`O1G/sO!)[QlO'#DmOOQO,5?P,5?POOQO-E<c-E<cOOQO,5?V,5?VOOQO-E<i-E<iO!CUQpO1G/sOOQO-E<e-E<eOOQ!0Ln1G0]1G0]OOQ!0Lf7+%u7+%uO#(ZQ`O7+%uOOQ!0Lf7+&`7+&`O?YQ`O7+&`O!CUQpO7+&`OOQO7+%x7+%xO$AlQ!0MxO7+&XOOQO7+&X7+&XO%[QlO7+&XO%@nQ!0LrO7+&XO!ByQ!0LrO7+%xO!CUQpO7+%xO%@yQ!0LrO7+&XO%AXQ!0MxO7++rO%[QlO7++rO%AiQ`O7++qO%AiQ`O7++qOOQO1G4s1G4sO9eQ`O1G4sO%AqQ`O1G4sOOQS7+%}7+%}O#(ZQ`O<<LPO4UQ!fO<<LPO%BPQ`O<<LPOOQ[<<LP<<LPO!&zQMhO<<LPO%[QlO<<LPO%BXQ`O<<LPO%BdQ!0MzO,5?aO%DoQ!0MzO,5?cO%FzQ!0MzO1G2`O%I]Q!0MzO1G2sO%KhQ!0MzO1G2uO%MsQ!fO,5?QO%[QlO,5?QOOQO-E<d-E<dO%M}Q`O1G5}OOQ!0Lf<<JU<<JUO%NVQ?MtO1G0uO&!^Q?MtO1G1PO&!eQ?MtO1G1PO&$fQ?MtO1G1PO&$mQ?MtO1G1PO&&nQ?MtO1G1PO&(oQ?MtO1G1PO&(vQ?MtO1G1PO&(}Q?MtO1G1PO&+OQ?MtO1G1PO&+VQ?MtO1G1PO&+^Q!0MxO<<JfO&-UQ?MtO1G1PO&.RQ?MvO1G1PO&/UQ?MvO'#JlO&1[Q?MtO1G1cO&1iQ?MtO1G0UO&1sQMjO,5?TOOQO-E<g-E<gO!)[QlO'#FqOOQO'#KZ'#KZOOQO1G1u1G1uO&1}Q`O1G1tO&2SQ?MtO,5?[OOOW7+'h7+'hOOOO1G/Z1G/ZO&2^Q!dO1G4xOOQ!0Lh7+(Q7+(QP!&zQMhO,5?^O!,TQMhO7+(cO&2eQ`O,5?]O9eQ`O,5?]O$+YQ`O,5?]OOQO-E<o-E<oO&2sQ`O1G6bO&2sQ`O1G6bO&2{Q`O1G6bO&3WQMjO7+'zO&3hQ!dO,5?_O&3rQ`O,5?_O!&zQMhO,5?_OOQO-E<q-E<qO&3wQ!dO1G6cO&4RQ`O1G6cO&4ZQ`O1G2kO!&zQMhO1G2kOOQ!0Lb1G2i1G2iOOQ!0Lb1G2j1G2jO%4hQpO1G2iO!CUQpO1G2iOCwQ`O1G2iOOQ!0Lb1G2q1G2qO&4`QpO1G2iO&4nQ`O1G2kO$+YQ`O1G2jOCwQ`O1G2jO$$wQlO1G2kO&4vQ`O1G2jO&5jQMjO,5?aOOQ!0Lh-E<t-E<tO&6]QMjO,5?cOOQ!0Lh-E<v-E<vO!,TQMhO7++]O&6gQMjO7++]O&6qQMjO7++]OOQ!0Lh1G/c1G/cO&7OQ`O1G/cOOQ!0Lh7+'u7+'uO&7TQMjO7+'|O&7eQ!0MxO<<KXOOQ!0Lf<<KX<<KXO&8XQ`O1G0zO!&zQMhO'#IzO&8^Q`O,5@xO&:`Q!fO<<LPO!&zQMhO1G2nO&:gQ!0LrO1G2nOOQ[<<G{<<G{O!ByQ!0LrO<<G{O&:xQ!0MxO<<I{OOQ!0Lf<<I{<<I{OOQO,5?l,5?lO&;lQ`O,5?lO&;qQ`O,5?lOOQO-E=O-E=OO&<PQ`O1G6kO&<PQ`O1G6kO9kQ`O1G6kO@zQ`O<<LlOOQ[<<Ll<<LlO&<XQ`O<<LlO9uQ!0LrO<<LlO9kQ`O<<LlOOQ[<<LX<<LXO%:yQ!0MvO<<LXOOQ[<<LY<<LYO!E^Q`O<<LYO&<^QpO'#I|O&<iQ`O,5@|O!)[QlO,5@|OOQ[1G3W1G3WOOQO'#JO'#JOO9uQ!0LrO'#JOO&<qQpO,5=uOOQ[,5=u,5=uO&<xQpO'#EgO&=PQpO'#GeO&=UQ`O7+(zO&=ZQ`O7+(zOOQ[7+(z7+(zO!&zQMhO7+(zO%[QlO7+(zO&=cQ`O7+(zOOQ[7+(|7+(|O9uQ!0LrO7+(|O$%dQ`O7+(|O9`Q`O7+(|O!CUQpO7+(|O&=nQ`O,5?kOOQO-E<}-E<}OOQO'#H^'#H^O&=yQ`O1G6iO9uQ!0LrO<<GqOOQ[<<Gq<<GqO@zQ`O<<GqO&>RQ`O7+,WO&>WQ`O7+,XO%[QlO7+,WO%[QlO7+,XOOQ[7+)V7+)VO&>]Q`O7+)VO&>bQlO7+)VO&>iQ`O7+)VOOQ[<<Ly<<LyOOQ[<<L{<<L{OOQ[-E=Q-E=QOOQ[1G3z1G3zO&>nQ`O,5>aOOQ[,5>c,5>cO&>sQ`O1G4QO9eQ`O7+&fO!)[QlO7+&fOOQO7+%_7+%_O&>xQ?MtO1G6ZO?YQ`O7+%_OOQ!0Lf<<Ia<<IaOOQ!0Lf<<Iz<<IzO?YQ`O<<IzOOQO<<Is<<IsO$AlQ!0MxO<<IsO%[QlO<<IsOOQO<<Id<<IdO!ByQ!0LrO<<IdO&?SQ!0LrO<<IsO&?_Q!0MxO<= ^O&?oQ`O<= ]OOQO7+*_7+*_O9eQ`O7+*_OOQ[ANAkANAkO&?wQ!fOANAkO!&zQMhOANAkO#(ZQ`OANAkO4UQ!fOANAkO&@OQ`OANAkO%[QlOANAkO&@WQ!0MzO7+'zO&BiQ!0MzO,5?aO&DtQ!0MzO,5?cO&GPQ!0MzO7+'|O&IbQ!fO1G4lO&IlQ?MtO7+&aO&KpQ?MvO,5=XO&MwQ?MvO,5=ZO&NXQ?MvO,5=XO&NiQ?MvO,5=ZO&NyQ?MvO,59uO'#PQ?MvO,5<kO'%SQ?MvO,5<mO''hQ?MvO,5<{O')^Q?MtO7+'kO')kQ?MtO7+'mO')xQ`O,5<]OOQO7+'`7+'`OOQ!0Lh7+*d7+*dO')}QMjO<<K}OOQO1G4w1G4wO'*UQ`O1G4wO'*aQ`O1G4wO'*oQ`O7++|O'*oQ`O7++|O!&zQMhO1G4yO'*wQ!dO1G4yO'+RQ`O7++}O'+ZQ`O7+(VO'+fQ!dO7+(VOOQ!0Lb7+(T7+(TOOQ!0Lb7+(U7+(UO!CUQpO7+(TOCwQ`O7+(TO'+pQ`O7+(VO!&zQMhO7+(VO$+YQ`O7+(UO'+uQ`O7+(VOCwQ`O7+(UO'+}QMjO<<NwO!,TQMhO<<NwOOQ!0Lh7+$}7+$}O',XQ!dO,5?fOOQO-E<x-E<xO',cQ!0MvO7+(YO!&zQMhO7+(YOOQ[AN=gAN=gO9kQ`O1G5WOOQO1G5W1G5WO',sQ`O1G5WO',xQ`O7+,VO',xQ`O7+,VO9uQ!0LrOANBWO@zQ`OANBWOOQ[ANBWANBWO'-QQ`OANBWOOQ[ANAsANAsOOQ[ANAtANAtO'-VQ`O,5?hOOQO-E<z-E<zO'-bQ?MtO1G6hOOQO,5?j,5?jOOQO-E<|-E<|OOQ[1G3a1G3aO'-lQ`O,5=POOQ[<<Lf<<LfO!&zQMhO<<LfO&=UQ`O<<LfO'-qQ`O<<LfO%[QlO<<LfOOQ[<<Lh<<LhO9uQ!0LrO<<LhO$%dQ`O<<LhO9`Q`O<<LhO'-yQpO1G5VO'.UQ`O7+,TOOQ[AN=]AN=]O9uQ!0LrOAN=]OOQ[<= r<= rOOQ[<= s<= sO'.^Q`O<= rO'.cQ`O<= sOOQ[<<Lq<<LqO'.hQ`O<<LqO'.mQlO<<LqOOQ[1G3{1G3{O?YQ`O7+)lO'.tQ`O<<JQO'/PQ?MtO<<JQOOQO<<Hy<<HyOOQ!0LfAN?fAN?fOOQOAN?_AN?_O$AlQ!0MxOAN?_OOQOAN?OAN?OO%[QlOAN?_OOQO<<My<<MyOOQ[G27VG27VO!&zQMhOG27VO#(ZQ`OG27VO'/ZQ!fOG27VO4UQ!fOG27VO'/bQ`OG27VO'/jQ?MtO<<JfO'/wQ?MvO1G2`O'1mQ?MvO,5?aO'3pQ?MvO,5?cO'5sQ?MvO1G2sO'7vQ?MvO1G2uO'9yQ?MtO<<KXO':WQ?MtO<<I{OOQO1G1w1G1wO!,TQMhOANAiOOQO7+*c7+*cO':eQ`O7+*cO':pQ`O<= hO':xQ!dO7+*eOOQ!0Lb<<Kq<<KqO$+YQ`O<<KqOCwQ`O<<KqO';SQ`O<<KqO!&zQMhO<<KqOOQ!0Lb<<Ko<<KoO!CUQpO<<KoO';_Q!dO<<KqOOQ!0Lb<<Kp<<KpO';iQ`O<<KqO!&zQMhO<<KqO$+YQ`O<<KpO';nQMjOANDcO';xQ!0MvO<<KtOOQO7+*r7+*rO9kQ`O7+*rO'<YQ`O<= qOOQ[G27rG27rO9uQ!0LrOG27rO@zQ`OG27rO!)[QlO1G5SO'<bQ`O7+,SO'<jQ`O1G2kO&=UQ`OANBQOOQ[ANBQANBQO!&zQMhOANBQO'<oQ`OANBQOOQ[ANBSANBSO9uQ!0LrOANBSO$%dQ`OANBSOOQO'#H_'#H_OOQO7+*q7+*qOOQ[G22wG22wOOQ[ANE^ANE^OOQ[ANE_ANE_OOQ[ANB]ANB]O'<wQ`OANB]OOQ[<<MW<<MWO!)[QlOAN?lOOQOG24yG24yO$AlQ!0MxOG24yO#(ZQ`OLD,qOOQ[LD,qLD,qO!&zQMhOLD,qO'<|Q!fOLD,qO'=TQ?MvO7+'zO'>yQ?MvO,5?aO'@|Q?MvO,5?cO'CPQ?MvO7+'|O'DuQMjOG27TOOQO<<M}<<M}OOQ!0LbANA]ANA]O$+YQ`OANA]OCwQ`OANA]O'EVQ!dOANA]OOQ!0LbANAZANAZO'E^Q`OANA]O!&zQMhOANA]O'EiQ!dOANA]OOQ!0LbANA[ANA[OOQO<<N^<<N^OOQ[LD-^LD-^O9uQ!0LrOLD-^O'EsQ?MtO7+*nOOQO'#Gf'#GfOOQ[G27lG27lO&=UQ`OG27lO!&zQMhOG27lOOQ[G27nG27nO9uQ!0LrOG27nOOQ[G27wG27wO'E}Q?MtOG25WOOQOLD*eLD*eOOQ[!$(!]!$(!]O#(ZQ`O!$(!]O!&zQMhO!$(!]O'FXQ!0MzOG27TOOQ!0LbG26wG26wO$+YQ`OG26wO'HjQ`OG26wOCwQ`OG26wO'HuQ!dOG26wO!&zQMhOG26wOOQ[!$(!x!$(!xOOQ[LD-WLD-WO&=UQ`OLD-WOOQ[LD-YLD-YOOQ[!)9Ew!)9EwO#(ZQ`O!)9EwOOQ!0LbLD,cLD,cO$+YQ`OLD,cOCwQ`OLD,cO'H|Q`OLD,cO'IXQ!dOLD,cOOQ[!$(!r!$(!rOOQ[!.K;c!.K;cO'I`Q?MvOG27TOOQ!0Lb!$( }!$( }O$+YQ`O!$( }OCwQ`O!$( }O'KUQ`O!$( }OOQ!0Lb!)9Ei!)9EiO$+YQ`O!)9EiOCwQ`O!)9EiOOQ!0Lb!.K;T!.K;TO$+YQ`O!.K;TOOQ!0Lb!4/0o!4/0oO!)[QlO'#DzO1PQ`O'#EXO'KaQ!fO'#JrO'KhQ!L^O'#DvO'KoQlO'#EOO'KvQ!fO'#CiO'N^Q!fO'#CiO!)[QlO'#EQO'NnQlO,5;ZO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO,5;eO!)[QlO'#IpO(!qQ`O,5<iO!)[QlO,5;eO(!yQMhO,5;eO($dQMhO,5;eO!)[QlO,5;wO!&zQMhO'#GmO(!yQMhO'#GmO!&zQMhO'#GoO(!yQMhO'#GoO1SQ`O'#DZO1SQ`O'#DZO!&zQMhO'#GPO(!yQMhO'#GPO!&zQMhO'#GRO(!yQMhO'#GRO!&zQMhO'#GaO(!yQMhO'#GaO!)[QlO,5:jO($kQpO'#D_O($uQpO'#JvO!)[QlO,5@oO'NnQlO1G0uO(%PQ?MtO'#CiO!)[QlO1G2PO!&zQMhO'#IuO(!yQMhO'#IuO!&zQMhO'#IwO(!yQMhO'#IwO(%ZQ!dO'#CrO!&zQMhO,5<tO(!yQMhO,5<tO'NnQlO1G2RO!)[QlO7+&zO!&zQMhO1G2`O(!yQMhO1G2`O!&zQMhO'#IuO(!yQMhO'#IuO!&zQMhO'#IwO(!yQMhO'#IwO!&zQMhO1G2bO(!yQMhO1G2bO'NnQlO7+'mO'NnQlO7+&aO!&zQMhOANAiO(!yQMhOANAiO(%nQ`O'#EoO(%sQ`O'#EoO(%{Q`O'#F]O(&QQ`O'#EyO(&VQ`O'#KTO(&bQ`O'#KRO(&mQ`O,5;ZO(&rQMjO,5<eO(&yQ`O'#GYO('OQ`O'#GYO('TQ`O,5<eO(']Q`O,5<gO('eQ`O,5;ZO('mQ?MtO1G1`O('tQ`O,5<tO('yQ`O,5<tO((OQ`O,5<vO((TQ`O,5<vO((YQ`O1G2RO((_Q`O1G0uO((dQMjO<<K}O((kQMjO<<K}O((rQMhO'#F|O9`Q`O'#F{OAuQ`O'#EnO!)[QlO,5;tO!3oQ`O'#GYO!3oQ`O'#GYO!3oQ`O'#G[O!3oQ`O'#G[O!,TQMhO7+(cO!,TQMhO7+(cO%.zQ!dO1G2wO%.zQ!dO1G2wO!&zQMhO,5=]O!&zQMhO,5=]",stateData:"()x~O'|OS'}OSTOS(ORQ~OPYOQYOSfOY!VOaqOdzOeyOl!POpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!uwO!xxO!|]O$W|O$niO%h}O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO&W!WO&^!XO&`!YO&b!ZO&d![O&g!]O&m!^O&s!_O&u!`O&w!aO&y!bO&{!cO(TSO(VTO(YUO(aVO(o[O~OWtO~P`OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oa!wOs!nO!S!oO!b!yO!c!vO!d!vO!|<VO#T!pO#U!pO#V!xO#W!pO#X!pO#[!zO#]!zO(U!lO(VTO(YUO(e!mO(o!sO~O(O!{O~OP]XR]X[]Xa]Xj]Xr]X!Q]X!S]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X'z]X(a]X(r]X(y]X(z]X~O!g%RX~P(qO_!}O(V#PO(W!}O(X#PO~O_#QO(X#PO(Y#PO(Z#QO~Ox#SO!U#TO(b#TO(c#VO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T<ZO(VTO(YUO(aVO(o[O~O![#ZO!]#WO!Y(hP!Y(vP~P+}O!^#cO~P`OPYOQYOSfOd!jOe!iOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(VTO(YUO(aVO(o[O~Op#mO![#iO!|]O#i#lO#j#iO(T<[O!k(sP~P.iO!l#oO(T#nO~O!x#sO!|]O%h#tO~O#k#uO~O!g#vO#k#uO~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!]$_O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~Oa(fX'z(fX'w(fX!k(fX!Y(fX!_(fX%i(fX!g(fX~P1qO#S$dO#`$eO$Q$eOP(gXR(gX[(gXj(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX!_(gX%i(gX~Oa(gX'z(gX'w(gX!Y(gX!k(gXv(gX!g(gX~P4UO#`$eO~O$]$hO$_$gO$f$mO~OSfO!_$nO$i$oO$k$qO~Oh%VOj%dOk%dOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T$sO(VTO(YUO(a$uO(y$}O(z%POg(^P~Ol%[O~P7eO!l%eO~O!S%hO!_%iO(T%gO~O!g%mO~Oa%nO'z%nO~O!Q%rO~P%[O(U!lO~P%[O%n%vO~P%[Oh%VO!l%eO(T%gO(U!lO~Oe%}O!l%eO(T%gO~Oj$RO~O!_&PO(T%gO(U!lO(VTO(YUO`)WP~O!Q&SO!l&RO%j&VO&T&WO~P;SO!x#sO~O%s&YO!S)SX!_)SX(T)SX~O(T&ZO~Ol!PO!u&`O%j!QO%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO~Od&eOe&dO!x&bO%h&cO%{&aO~P<bOd&hOeyOl!PO!_&gO!u&`O!xxO!|]O%h}O%l!OO%m!OO%n!OO%q!RO%s!SO%v!TO%w!TO%y!UO~Ob&kO#`&nO%j&iO(U!lO~P=gO!l&oO!u&sO~O!l#oO~O!_XO~Oa%nO'x&{O'z%nO~Oa%nO'x'OO'z%nO~Oa%nO'x'QO'z%nO~O'w]X!Y]Xv]X!k]X&[]X!_]X%i]X!g]X~P(qO!b'_O!c'WO!d'WO(U!lO(VTO(YUO~Os'UO!S'TO!['XO(e'SO!^(iP!^(xP~P@nOn'bO!_'`O(T%gO~Oe'gO!l%eO(T%gO~O!Q&SO!l&RO~Os!nO!S!oO!|<VO#T!pO#U!pO#W!pO#X!pO(U!lO(VTO(YUO(e!mO(o!sO~O!b'mO!c'lO!d'lO#V!pO#['nO#]'nO~PBYOa%nOh%VO!g#vO!l%eO'z%nO(r'pO~O!p'tO#`'rO~PChOs!nO!S!oO(VTO(YUO(e!mO(o!sO~O!_XOs(mX!S(mX!b(mX!c(mX!d(mX!|(mX#T(mX#U(mX#V(mX#W(mX#X(mX#[(mX#](mX(U(mX(V(mX(Y(mX(e(mX(o(mX~O!c'lO!d'lO(U!lO~PDWO(P'xO(Q'xO(R'zO~O_!}O(V'|O(W!}O(X'|O~O_#QO(X'|O(Y'|O(Z#QO~Ov(OO~P%[Ox#SO!U#TO(b#TO(c(RO~O![(TO!Y'WX!Y'^X!]'WX!]'^X~P+}O!](VO!Y(hX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!](VO!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~O!Y(hX~PHRO!Y([O~O!Y(uX!](uX!g(uX!k(uX(r(uX~O#`(uX#k#dX!^(uX~PJUO#`(]O!Y(wX!](wX~O!](^O!Y(vX~O!Y(aO~O#`$eO~PJUO!^(bO~P`OR#zO!Q#yO!S#{O!l#xO(aVOP!na[!naj!nar!na!]!na!p!na#R!na#n!na#o!na#p!na#q!na#r!na#s!na#t!na#u!na#v!na#x!na#z!na#{!na(r!na(y!na(z!na~Oa!na'z!na'w!na!Y!na!k!nav!na!_!na%i!na!g!na~PKlO!k(cO~O!g#vO#`(dO(r'pO!](tXa(tX'z(tX~O!k(tX~PNXO!S%hO!_%iO!|]O#i(iO#j(hO(T%gO~O!](jO!k(sX~O!k(lO~O!S%hO!_%iO#j(hO(T%gO~OP(gXR(gX[(gXj(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX~O!g#vO!k(gX~P! uOR(nO!Q(mO!l#xO#S$dO!|!{a!S!{a~O!x!{a%h!{a!_!{a#i!{a#j!{a(T!{a~P!#vO!x(rO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_XO!iuO!lZO!oYO!pYO!qYO!svO!u!gO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~O#k(xO~O![(zO!k(kP~P%[O(e(|O(o[O~O!S)OO!l#xO(e(|O(o[O~OP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_!eO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(T)]O(VTO(YUO(aVO(o[O~O!]$_Oa$qa'z$qa'w$qa!k$qa!Y$qa!_$qa%i$qa!g$qa~Ol)dO~P!&zOh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O%]O!S${O!_$|O!i%bO!l$xO#j%cO$W%`O$t%^O$v%_O$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Og(pP~P!,TO!Q)iO!g)hO!_$^X$Z$^X$]$^X$_$^X$f$^X~O!g)hO!_({X$Z({X$]({X$_({X$f({X~O!Q)iO~P!.^O!Q)iO!_({X$Z({X$]({X$_({X$f({X~O!_)kO$Z)oO$])jO$_)jO$f)pO~O![)sO~P!)[O$]$hO$_$gO$f)wO~On$zX!Q$zX#S$zX'y$zX(y$zX(z$zX~OgmXg$zXnmX!]mX#`mX~P!0SOx)yO(b)zO(c)|O~On*VO!Q*OO'y*PO(y$}O(z%PO~Og)}O~P!1WOg*WO~Oh%VOr%XOs$tOt$tOz%YO|%ZO!O<sO!S*YO!_*ZO!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(VTO(YUO(a$uO(y$}O(z%PO~Op*`O}O(T&ZO~O!l+SO~O(T(vO~Op+WO!S%hO![#iO!_%iO!|]O#i#lO#j#iO(T%gO!k(sP~O!g#vO#k+XO~O!S%hOTX'z)TX~OP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO#z$WO#{$XO(aVO(r$YO(y#|O(z#}O~Oa!ja!]!ja'z!ja'w!ja!Y!ja!k!jav!ja!_!ja%i!ja!g!ja~P!:tOR#zO!Q#yO!S#{O!l#xO(aVOP!ra[!raj!rar!ra!]!ra!p!ra#R!ra#n!ra#o!ra#p!ra#q!ra#r!ra#s!ra#t!ra#u!ra#v!ra#x!ra#z!ra#{!ra(r!ra(y!ra(z!ra~Oa!ra'z!ra'w!ra!Y!ra!k!rav!ra!_!ra%i!ra!g!ra~P!=[OR#zO!Q#yO!S#{O!l#xO(aVOP!ta[!taj!tar!ta!]!ta!p!ta#R!ta#n!ta#o!ta#p!ta#q!ta#r!ta#s!ta#t!ta#u!ta#v!ta#x!ta#z!ta#{!ta(r!ta(y!ta(z!ta~Oa!ta'z!ta'w!ta!Y!ta!k!tav!ta!_!ta%i!ta!g!ta~P!?rOh%VOn+gO!_'`O%i+fO~O!g+iOa(]X!_(]X'z(]X!](]X~Oa%nO!_XO'z%nO~Oh%VO!l%eO~Oh%VO!l%eO(T%gO~O!g#vO#k(xO~Ob+tO%j+uO(T+qO(VTO(YUO!^)XP~O!]+vO`)WX~O[+zO~O`+{O~O!_&PO(T%gO(U!lO`)WP~O%j,OO~P;SOh%VO#`,SO~Oh%VOn,VO!_$|O~O!_,XO~O!Q,ZO!_XO~O%n%vO~O!x,`O~Oe,eO~Ob,fO(T#nO(VTO(YUO!^)VP~Oe%}O~O%j!QO(T&ZO~P=gO[,kO`,jO~OPYOQYOSfOdzOeyOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!iuO!lZO!oYO!pYO!qYO!svO!xxO!|]O$niO%h}O(VTO(YUO(aVO(o[O~O!_!eO!u!gO$W!kO(T!dO~P!FyO`,jOa%nO'z%nO~OPYOQYOSfOd!jOe!iOpkOrYOskOtkOzkO|YO!OYO!SWO!WkO!XkO!_!eO!iuO!lZO!oYO!pYO!qYO!svO!x!hO$W!kO$niO(T!dO(VTO(YUO(aVO(o[O~Oa,pOl!OO!uwO%l!OO%m!OO%n!OO~P!IcO!l&oO~O&^,vO~O!_,xO~O&o,zO&q,{OP&laQ&laS&laY&laa&lad&lae&lal&lap&lar&las&lat&laz&la|&la!O&la!S&la!W&la!X&la!_&la!i&la!l&la!o&la!p&la!q&la!s&la!u&la!x&la!|&la$W&la$n&la%h&la%j&la%l&la%m&la%n&la%q&la%s&la%v&la%w&la%y&la&W&la&^&la&`&la&b&la&d&la&g&la&m&la&s&la&u&la&w&la&y&la&{&la'w&la(T&la(V&la(Y&la(a&la(o&la!^&la&e&lab&la&j&la~O(T-QO~Oh!eX!]!RX!^!RX!g!RX!g!eX!l!eX#`!RX~O!]!eX!^!eX~P#!iO!g-VO#`-UOh(jX!]#hX!^#hX!g(jX!l(jX~O!](jX!^(jX~P##[Oh%VO!g-XO!l%eO!]!aX!^!aX~Os!nO!S!oO(VTO(YUO(e!mO~OP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_!eO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(VTO(YUO(aVO(o[O~O(T=QO~P#$qO!]-]O!^(iX~O!^-_O~O!g-VO#`-UO!]#hX!^#hX~O!]-`O!^(xX~O!^-bO~O!c-cO!d-cO(U!lO~P#$`O!^-fO~P'_On-iO!_'`O~O!Y-nO~Os!{a!b!{a!c!{a!d!{a#T!{a#U!{a#V!{a#W!{a#X!{a#[!{a#]!{a(U!{a(V!{a(Y!{a(e!{a(o!{a~P!#vO!p-sO#`-qO~PChO!c-uO!d-uO(U!lO~PDWOa%nO#`-qO'z%nO~Oa%nO!g#vO#`-qO'z%nO~Oa%nO!g#vO!p-sO#`-qO'z%nO(r'pO~O(P'xO(Q'xO(R-zO~Ov-{O~O!Y'Wa!]'Wa~P!:tO![.PO!Y'WX!]'WX~P%[O!](VO!Y(ha~O!Y(ha~PHRO!](^O!Y(va~O!S%hO![.TO!_%iO(T%gO!Y'^X!]'^X~O#`.VO!](ta!k(taa(ta'z(ta~O!g#vO~P#,wO!](jO!k(sa~O!S%hO!_%iO#j.ZO(T%gO~Op.`O!S%hO![.]O!_%iO!|]O#i._O#j.]O(T%gO!]'aX!k'aX~OR.dO!l#xO~Oh%VOn.gO!_'`O%i.fO~Oa#ci!]#ci'z#ci'w#ci!Y#ci!k#civ#ci!_#ci%i#ci!g#ci~P!:tOn>]O!Q*OO'y*PO(y$}O(z%PO~O#k#_aa#_a#`#_a'z#_a!]#_a!k#_a!_#_a!Y#_a~P#/sO#k(`XP(`XR(`X[(`Xa(`Xj(`Xr(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X'z(`X(a(`X(r(`X!k(`X!Y(`X'w(`Xv(`X!_(`X%i(`X!g(`X~P!6kO!].tO!k(kX~P!:tO!k.wO~O!Y.yO~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mia#mij#mir#mi!]#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#n#mi~P#3cO#n$OO~P#3cOP$[OR#zOr$aO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO[#mia#mij#mi!]#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#r#mi~P#6QO#r$QO~P#6QOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO(aVOa#mi!]#mi#x#mi#z#mi#{#mi'z#mi(r#mi(y#mi(z#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#v#mi~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO(aVO(z#}Oa#mi!]#mi#z#mi#{#mi'z#mi(r#mi(y#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#x$UO~P#;VO#x#mi~P#;VO#v$SO~P#8oOP$[OR#zO[$cOj$ROr$aO!Q#yO!S#{O!l#xO!p$[O#R$RO#n$OO#o$PO#p$PO#q$PO#r$QO#s$RO#t$RO#u$bO#v$SO#x$UO(aVO(y#|O(z#}Oa#mi!]#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~O#z#mi~P#={O#z$WO~P#={OP]XR]X[]Xj]Xr]X!Q]X!S]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X!]]X!^]X~O$O]X~P#@jOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO#x<eO#z<gO#{<hO(aVO(r$YO(y#|O(z#}O~O$O.{O~P#BwO#S$dO#`<nO$Q<nO$O(gX!^(gX~P! uOa'da!]'da'z'da'w'da!k'da!Y'dav'da!_'da%i'da!g'da~P!:tO[#mia#mij#mir#mi!]#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi'z#mi(r#mi'w#mi!Y#mi!k#miv#mi!_#mi%i#mi!g#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n$OO#o$PO#p$PO#q$PO(aVO(y#mi(z#mi~P#EyOn>]O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P#EyO!]/POg(pX~P!1WOg/RO~Oa$Pi!]$Pi'z$Pi'w$Pi!Y$Pi!k$Piv$Pi!_$Pi%i$Pi!g$Pi~P!:tO$]/SO$_/SO~O$]/TO$_/TO~O!g)hO#`/UO!_$cX$Z$cX$]$cX$_$cX$f$cX~O![/VO~O!_)kO$Z/XO$])jO$_)jO$f/YO~O!]<iO!^(fX~P#BwO!^/ZO~O!g)hO$f({X~O$f/]O~Ov/^O~P!&zOx)yO(b)zO(c/aO~O!S/dO~O(y$}On%aa!Q%aa'y%aa(z%aa!]%aa#`%aa~Og%aa$O%aa~P#L{O(z%POn%ca!Q%ca'y%ca(y%ca!]%ca#`%ca~Og%ca$O%ca~P#MnO!]fX!gfX!kfX!k$zX(rfX~P!0SOp%WOPP~P!1uOr*sO!b*qO!c*kO!d*kO!l*bO#[*rO%`*mO(U!lO(VTO(YUO~Os<}O!S/nO![+[O!^*pO(e<|O!^(xP~P$ [O!k/oO~P#/sO!]/pO!g#vO(r'pO!k)OX~O!k/uO~OnoX!QoX'yoX(yoX(zoX~O!g#vO!koX~P$#OOp/wO!S%hO![*^O!_%iO(T%gO!k)OP~O#k/xO~O!Y$zX!]$zX!g%RX~P!0SO!]/yO!Y)PX~P#/sO!g/{O~O!Y/}O~OpkO(T0OO~P.iOh%VOr0TO!g#vO!l%eO(r'pO~O!g+iO~Oa%nO!]0XO'z%nO~O!^0ZO~P!5iO!c0[O!d0[O(U!lO~P#$`Os!nO!S0]O(VTO(YUO(e!mO~O#[0_O~Og%aa!]%aa#`%aa$O%aa~P!1WOg%ca!]%ca#`%ca$O%ca~P!1WOj%dOk%dOl%dO(T&ZOg'mX!]'mX~O!]*yOg(^a~Og0hO~On0jO#`0iOg(_a!](_a~OR0kO!Q0kO!S0lO#S$dOn}a'y}a(y}a(z}a!]}a#`}a~Og}a$O}a~P$(cO!Q*OO'y*POn$sa(y$sa(z$sa!]$sa#`$sa~Og$sa$O$sa~P$)_O!Q*OO'y*POn$ua(y$ua(z$ua!]$ua#`$ua~Og$ua$O$ua~P$*QO#k0oO~Og%Ta!]%Ta#`%Ta$O%Ta~P!1WO!g#vO~O#k0rO~O!]+^Oa)Ta'z)Ta~OR#zO!Q#yO!S#{O!l#xO(aVOP!ri[!rij!rir!ri!]!ri!p!ri#R!ri#n!ri#o!ri#p!ri#q!ri#r!ri#s!ri#t!ri#u!ri#v!ri#x!ri#z!ri#{!ri(r!ri(y!ri(z!ri~Oa!ri'z!ri'w!ri!Y!ri!k!riv!ri!_!ri%i!ri!g!ri~P$+oOh%VOr%XOs$tOt$tOz%YO|%ZO!O<sO!S${O!_$|O!i>VO!l$xO#j<yO$W%`O$t<uO$v<wO$y%aO(VTO(YUO(a$uO(y$}O(z%PO~Op0{O%]0|O(T0zO~P$.VO!g+iOa(]a!_(]a'z(]a!](]a~O#k1SO~O[]X!]fX!^fX~O!]1TO!^)XX~O!^1VO~O[1WO~Ob1YO(T+qO(VTO(YUO~O!_&PO(T%gO`'uX!]'uX~O!]+vO`)Wa~O!k1]O~P!:tO[1`O~O`1aO~O#`1fO~On1iO!_$|O~O(e(|O!^)UP~Oh%VOn1rO!_1oO%i1qO~O[1|O!]1zO!^)VX~O!^1}O~O`2POa%nO'z%nO~O(T#nO(VTO(YUO~O#S$dO#`$eO$Q$eOP(gXR(gX[(gXr(gX!Q(gX!S(gX!](gX!l(gX!p(gX#R(gX#n(gX#o(gX#p(gX#q(gX#r(gX#s(gX#t(gX#u(gX#v(gX#x(gX#z(gX#{(gX(a(gX(r(gX(y(gX(z(gX~Oj2SO&[2TOa(gX~P$3pOj2SO#`$eO&[2TO~Oa2VO~P%[Oa2XO~O&e2[OP&ciQ&ciS&ciY&cia&cid&cie&cil&cip&cir&cis&cit&ciz&ci|&ci!O&ci!S&ci!W&ci!X&ci!_&ci!i&ci!l&ci!o&ci!p&ci!q&ci!s&ci!u&ci!x&ci!|&ci$W&ci$n&ci%h&ci%j&ci%l&ci%m&ci%n&ci%q&ci%s&ci%v&ci%w&ci%y&ci&W&ci&^&ci&`&ci&b&ci&d&ci&g&ci&m&ci&s&ci&u&ci&w&ci&y&ci&{&ci'w&ci(T&ci(V&ci(Y&ci(a&ci(o&ci!^&cib&ci&j&ci~Ob2bO!^2`O&j2aO~P`O!_XO!l2dO~O&q,{OP&liQ&liS&liY&lia&lid&lie&lil&lip&lir&lis&lit&liz&li|&li!O&li!S&li!W&li!X&li!_&li!i&li!l&li!o&li!p&li!q&li!s&li!u&li!x&li!|&li$W&li$n&li%h&li%j&li%l&li%m&li%n&li%q&li%s&li%v&li%w&li%y&li&W&li&^&li&`&li&b&li&d&li&g&li&m&li&s&li&u&li&w&li&y&li&{&li'w&li(T&li(V&li(Y&li(a&li(o&li!^&li&e&lib&li&j&li~O!Y2jO~O!]!aa!^!aa~P#BwOs!nO!S!oO![2pO(e!mO!]'XX!^'XX~P@nO!]-]O!^(ia~O!]'_X!^'_X~P!9|O!]-`O!^(xa~O!^2wO~P'_Oa%nO#`3QO'z%nO~Oa%nO!g#vO#`3QO'z%nO~Oa%nO!g#vO!p3UO#`3QO'z%nO(r'pO~Oa%nO'z%nO~P!:tO!]$_Ov$qa~O!Y'Wi!]'Wi~P!:tO!](VO!Y(hi~O!](^O!Y(vi~O!Y(wi!](wi~P!:tO!](ti!k(tia(ti'z(ti~P!:tO#`3WO!](ti!k(tia(ti'z(ti~O!](jO!k(si~O!S%hO!_%iO!|]O#i3]O#j3[O(T%gO~O!S%hO!_%iO#j3[O(T%gO~On3dO!_'`O%i3cO~Oh%VOn3dO!_'`O%i3cO~O#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'z%aa(a%aa(r%aa!k%aa!Y%aa'w%aav%aa!_%aa%i%aa!g%aa~P#L{O#k%caP%caR%ca[%caa%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'z%ca(a%ca(r%ca!k%ca!Y%ca'w%cav%ca!_%ca%i%ca!g%ca~P#MnO#k%aaP%aaR%aa[%aaa%aaj%aar%aa!S%aa!]%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa'z%aa(a%aa(r%aa!k%aa!Y%aa'w%aa#`%aav%aa!_%aa%i%aa!g%aa~P#/sO#k%caP%caR%ca[%caa%caj%car%ca!S%ca!]%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca'z%ca(a%ca(r%ca!k%ca!Y%ca'w%ca#`%cav%ca!_%ca%i%ca!g%ca~P#/sO#k}aP}a[}aa}aj}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a'z}a(a}a(r}a!k}a!Y}a'w}av}a!_}a%i}a!g}a~P$(cO#k$saP$saR$sa[$saa$saj$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa'z$sa(a$sa(r$sa!k$sa!Y$sa'w$sav$sa!_$sa%i$sa!g$sa~P$)_O#k$uaP$uaR$ua[$uaa$uaj$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua'z$ua(a$ua(r$ua!k$ua!Y$ua'w$uav$ua!_$ua%i$ua!g$ua~P$*QO#k%TaP%TaR%Ta[%Taa%Taj%Tar%Ta!S%Ta!]%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta'z%Ta(a%Ta(r%Ta!k%Ta!Y%Ta'w%Ta#`%Tav%Ta!_%Ta%i%Ta!g%Ta~P#/sOa#cq!]#cq'z#cq'w#cq!Y#cq!k#cqv#cq!_#cq%i#cq!g#cq~P!:tO![3lO!]'YX!k'YX~P%[O!].tO!k(ka~O!].tO!k(ka~P!:tO!Y3oO~O$O!na!^!na~PKlO$O!ja!]!ja!^!ja~P#BwO$O!ra!^!ra~P!=[O$O!ta!^!ta~P!?rOg']X!]']X~P!,TO!]/POg(pa~OSfO!_4TO$d4UO~O!^4YO~Ov4ZO~P#/sOa$mq!]$mq'z$mq'w$mq!Y$mq!k$mqv$mq!_$mq%i$mq!g$mq~P!:tO!Y4]O~P!&zO!S4^O~O!Q*OO'y*PO(z%POn'ia(y'ia!]'ia#`'ia~Og'ia$O'ia~P%-fO!Q*OO'y*POn'ka(y'ka(z'ka!]'ka#`'ka~Og'ka$O'ka~P%.XO(r$YO~P#/sO!YfX!Y$zX!]fX!]$zX!g%RX#`fX~P!0SOp%WO(T=WO~P!1uOp4bO!S%hO![4aO!_%iO(T%gO!]'eX!k'eX~O!]/pO!k)Oa~O!]/pO!g#vO!k)Oa~O!]/pO!g#vO(r'pO!k)Oa~Og$|i!]$|i#`$|i$O$|i~P!1WO![4jO!Y'gX!]'gX~P!3tO!]/yO!Y)Pa~O!]/yO!Y)Pa~P#/sOP]XR]X[]Xj]Xr]X!Q]X!S]X!Y]X!]]X!l]X!p]X#R]X#S]X#`]X#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X~Oj%YX!g%YX~P%2OOj4oO!g#vO~Oh%VO!g#vO!l%eO~Oh%VOr4tO!l%eO(r'pO~Or4yO!g#vO(r'pO~Os!nO!S4zO(VTO(YUO(e!mO~O(y$}On%ai!Q%ai'y%ai(z%ai!]%ai#`%ai~Og%ai$O%ai~P%5oO(z%POn%ci!Q%ci'y%ci(y%ci!]%ci#`%ci~Og%ci$O%ci~P%6bOg(_i!](_i~P!1WO#`5QOg(_i!](_i~P!1WO!k5VO~Oa$oq!]$oq'z$oq'w$oq!Y$oq!k$oqv$oq!_$oq%i$oq!g$oq~P!:tO!Y5ZO~O!]5[O!_)QX~P#/sOa$zX!_$zX%^]X'z$zX!]$zX~P!0SO%^5_OaoX!_oX'zoX!]oX~P$#OOp5`O(T#nO~O%^5_O~Ob5fO%j5gO(T+qO(VTO(YUO!]'tX!^'tX~O!]1TO!^)Xa~O[5kO~O`5lO~O[5pO~Oa%nO'z%nO~P#/sO!]5uO#`5wO!^)UX~O!^5xO~Or6OOs!nO!S*iO!b!yO!c!vO!d!vO!|<VO#T!pO#U!pO#V!pO#W!pO#X!pO#[5}O#]!zO(U!lO(VTO(YUO(e!mO(o!sO~O!^5|O~P%;eOn6TO!_1oO%i6SO~Oh%VOn6TO!_1oO%i6SO~Ob6[O(T#nO(VTO(YUO!]'sX!^'sX~O!]1zO!^)Va~O(VTO(YUO(e6^O~O`6bO~Oj6eO&[6fO~PNXO!k6gO~P%[Oa6iO~Oa6iO~P%[Ob2bO!^6nO&j2aO~P`O!g6pO~O!g6rOh(ji!](ji!^(ji!g(ji!l(jir(ji(r(ji~O!]#hi!^#hi~P#BwO#`6sO!]#hi!^#hi~O!]!ai!^!ai~P#BwOa%nO#`6|O'z%nO~Oa%nO!g#vO#`6|O'z%nO~O!](tq!k(tqa(tq'z(tq~P!:tO!](jO!k(sq~O!S%hO!_%iO#j7TO(T%gO~O!_'`O%i7WO~On7[O!_'`O%i7WO~O#k'iaP'iaR'ia['iaa'iaj'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia'z'ia(a'ia(r'ia!k'ia!Y'ia'w'iav'ia!_'ia%i'ia!g'ia~P%-fO#k'kaP'kaR'ka['kaa'kaj'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka'z'ka(a'ka(r'ka!k'ka!Y'ka'w'kav'ka!_'ka%i'ka!g'ka~P%.XO#k$|iP$|iR$|i[$|ia$|ij$|ir$|i!S$|i!]$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i'z$|i(a$|i(r$|i!k$|i!Y$|i'w$|i#`$|iv$|i!_$|i%i$|i!g$|i~P#/sO#k%aiP%aiR%ai[%aia%aij%air%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai'z%ai(a%ai(r%ai!k%ai!Y%ai'w%aiv%ai!_%ai%i%ai!g%ai~P%5oO#k%ciP%ciR%ci[%cia%cij%cir%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci'z%ci(a%ci(r%ci!k%ci!Y%ci'w%civ%ci!_%ci%i%ci!g%ci~P%6bO!]'Ya!k'Ya~P!:tO!].tO!k(ki~O$O#ci!]#ci!^#ci~P#BwOP$[OR#zO!Q#yO!S#{O!l#xO!p$[O(aVO[#mij#mir#mi#R#mi#o#mi#p#mi#q#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#n#mi~P%NdO#n<_O~P%NdOP$[OR#zOr<kO!Q#yO!S#{O!l#xO!p$[O#n<_O#o<`O#p<`O#q<`O(aVO[#mij#mi#R#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#r#mi~P&!lO#r<aO~P&!lOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO(aVO#x#mi#z#mi#{#mi$O#mi(r#mi(y#mi(z#mi!]#mi!^#mi~O#v#mi~P&$tOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO(aVO(z#}O#z#mi#{#mi$O#mi(r#mi(y#mi!]#mi!^#mi~O#x<eO~P&&uO#x#mi~P&&uO#v<cO~P&$tOP$[OR#zO[<mOj<bOr<kO!Q#yO!S#{O!l#xO!p$[O#R<bO#n<_O#o<`O#p<`O#q<`O#r<aO#s<bO#t<bO#u<lO#v<cO#x<eO(aVO(y#|O(z#}O#{#mi$O#mi(r#mi!]#mi!^#mi~O#z#mi~P&)UO#z<gO~P&)UOa#|y!]#|y'z#|y'w#|y!Y#|y!k#|yv#|y!_#|y%i#|y!g#|y~P!:tO[#mij#mir#mi#R#mi#r#mi#s#mi#t#mi#u#mi#v#mi#x#mi#z#mi#{#mi$O#mi(r#mi!]#mi!^#mi~OP$[OR#zO!Q#yO!S#{O!l#xO!p$[O#n<_O#o<`O#p<`O#q<`O(aVO(y#mi(z#mi~P&,QOn>^O!Q*OO'y*PO(y$}O(z%POP#miR#mi!S#mi!l#mi!p#mi#n#mi#o#mi#p#mi#q#mi(a#mi~P&,QO#S$dOP(`XR(`X[(`Xj(`Xn(`Xr(`X!Q(`X!S(`X!l(`X!p(`X#R(`X#n(`X#o(`X#p(`X#q(`X#r(`X#s(`X#t(`X#u(`X#v(`X#x(`X#z(`X#{(`X$O(`X'y(`X(a(`X(r(`X(y(`X(z(`X!](`X!^(`X~O$O$Pi!]$Pi!^$Pi~P#BwO$O!ri!^!ri~P$+oOg']a!]']a~P!1WO!^7nO~O!]'da!^'da~P#BwO!Y7oO~P#/sO!g#vO(r'pO!]'ea!k'ea~O!]/pO!k)Oi~O!]/pO!g#vO!k)Oi~Og$|q!]$|q#`$|q$O$|q~P!1WO!Y'ga!]'ga~P#/sO!g7vO~O!]/yO!Y)Pi~P#/sO!]/yO!Y)Pi~O!Y7yO~Oh%VOr8OO!l%eO(r'pO~Oj8QO!g#vO~Or8TO!g#vO(r'pO~O!Q*OO'y*PO(z%POn'ja(y'ja!]'ja#`'ja~Og'ja$O'ja~P&5RO!Q*OO'y*POn'la(y'la(z'la!]'la#`'la~Og'la$O'la~P&5tOg(_q!](_q~P!1WO#`8VOg(_q!](_q~P!1WO!Y8WO~Og%Oq!]%Oq#`%Oq$O%Oq~P!1WOa$oy!]$oy'z$oy'w$oy!Y$oy!k$oyv$oy!_$oy%i$oy!g$oy~P!:tO!g6rO~O!]5[O!_)Qa~O!_'`OP$TaR$Ta[$Taj$Tar$Ta!Q$Ta!S$Ta!]$Ta!l$Ta!p$Ta#R$Ta#n$Ta#o$Ta#p$Ta#q$Ta#r$Ta#s$Ta#t$Ta#u$Ta#v$Ta#x$Ta#z$Ta#{$Ta(a$Ta(r$Ta(y$Ta(z$Ta~O%i7WO~P&8fO%^8[Oa%[i!_%[i'z%[i!]%[i~Oa#cy!]#cy'z#cy'w#cy!Y#cy!k#cyv#cy!_#cy%i#cy!g#cy~P!:tO[8^O~Ob8`O(T+qO(VTO(YUO~O!]1TO!^)Xi~O`8dO~O(e(|O!]'pX!^'pX~O!]5uO!^)Ua~O!^8nO~P%;eO(o!sO~P$&YO#[8oO~O!_1oO~O!_1oO%i8qO~On8tO!_1oO%i8qO~O[8yO!]'sa!^'sa~O!]1zO!^)Vi~O!k8}O~O!k9OO~O!k9RO~O!k9RO~P%[Oa9TO~O!g9UO~O!k9VO~O!](wi!^(wi~P#BwOa%nO#`9_O'z%nO~O!](ty!k(tya(ty'z(ty~P!:tO!](jO!k(sy~O%i9bO~P&8fO!_'`O%i9bO~O#k$|qP$|qR$|q[$|qa$|qj$|qr$|q!S$|q!]$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q'z$|q(a$|q(r$|q!k$|q!Y$|q'w$|q#`$|qv$|q!_$|q%i$|q!g$|q~P#/sO#k'jaP'jaR'ja['jaa'jaj'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja'z'ja(a'ja(r'ja!k'ja!Y'ja'w'jav'ja!_'ja%i'ja!g'ja~P&5RO#k'laP'laR'la['laa'laj'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la'z'la(a'la(r'la!k'la!Y'la'w'lav'la!_'la%i'la!g'la~P&5tO#k%OqP%OqR%Oq[%Oqa%Oqj%Oqr%Oq!S%Oq!]%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq'z%Oq(a%Oq(r%Oq!k%Oq!Y%Oq'w%Oq#`%Oqv%Oq!_%Oq%i%Oq!g%Oq~P#/sO!]'Yi!k'Yi~P!:tO$O#cq!]#cq!^#cq~P#BwO(y$}OP%aaR%aa[%aaj%aar%aa!S%aa!l%aa!p%aa#R%aa#n%aa#o%aa#p%aa#q%aa#r%aa#s%aa#t%aa#u%aa#v%aa#x%aa#z%aa#{%aa$O%aa(a%aa(r%aa!]%aa!^%aa~On%aa!Q%aa'y%aa(z%aa~P&IyO(z%POP%caR%ca[%caj%car%ca!S%ca!l%ca!p%ca#R%ca#n%ca#o%ca#p%ca#q%ca#r%ca#s%ca#t%ca#u%ca#v%ca#x%ca#z%ca#{%ca$O%ca(a%ca(r%ca!]%ca!^%ca~On%ca!Q%ca'y%ca(y%ca~P&LQOn>^O!Q*OO'y*PO(z%PO~P&IyOn>^O!Q*OO'y*PO(y$}O~P&LQOR0kO!Q0kO!S0lO#S$dOP}a[}aj}an}ar}a!l}a!p}a#R}a#n}a#o}a#p}a#q}a#r}a#s}a#t}a#u}a#v}a#x}a#z}a#{}a$O}a'y}a(a}a(r}a(y}a(z}a!]}a!^}a~O!Q*OO'y*POP$saR$sa[$saj$san$sar$sa!S$sa!l$sa!p$sa#R$sa#n$sa#o$sa#p$sa#q$sa#r$sa#s$sa#t$sa#u$sa#v$sa#x$sa#z$sa#{$sa$O$sa(a$sa(r$sa(y$sa(z$sa!]$sa!^$sa~O!Q*OO'y*POP$uaR$ua[$uaj$uan$uar$ua!S$ua!l$ua!p$ua#R$ua#n$ua#o$ua#p$ua#q$ua#r$ua#s$ua#t$ua#u$ua#v$ua#x$ua#z$ua#{$ua$O$ua(a$ua(r$ua(y$ua(z$ua!]$ua!^$ua~On>^O!Q*OO'y*PO(y$}O(z%PO~OP%TaR%Ta[%Taj%Tar%Ta!S%Ta!l%Ta!p%Ta#R%Ta#n%Ta#o%Ta#p%Ta#q%Ta#r%Ta#s%Ta#t%Ta#u%Ta#v%Ta#x%Ta#z%Ta#{%Ta$O%Ta(a%Ta(r%Ta!]%Ta!^%Ta~P''VO$O$mq!]$mq!^$mq~P#BwO$O$oq!]$oq!^$oq~P#BwO!^9oO~O$O9pO~P!1WO!g#vO!]'ei!k'ei~O!g#vO(r'pO!]'ei!k'ei~O!]/pO!k)Oq~O!Y'gi!]'gi~P#/sO!]/yO!Y)Pq~Or9wO!g#vO(r'pO~O[9yO!Y9xO~P#/sO!Y9xO~Oj:PO!g#vO~Og(_y!](_y~P!1WO!]'na!_'na~P#/sOa%[q!_%[q'z%[q!]%[q~P#/sO[:UO~O!]1TO!^)Xq~O`:YO~O#`:ZO!]'pa!^'pa~O!]5uO!^)Ui~P#BwO!S:]O~O!_1oO%i:`O~O(VTO(YUO(e:eO~O!]1zO!^)Vq~O!k:hO~O!k:iO~O!k:jO~O!k:jO~P%[O#`:mO!]#hy!^#hy~O!]#hy!^#hy~P#BwO%i:rO~P&8fO!_'`O%i:rO~O$O#|y!]#|y!^#|y~P#BwOP$|iR$|i[$|ij$|ir$|i!S$|i!l$|i!p$|i#R$|i#n$|i#o$|i#p$|i#q$|i#r$|i#s$|i#t$|i#u$|i#v$|i#x$|i#z$|i#{$|i$O$|i(a$|i(r$|i!]$|i!^$|i~P''VO!Q*OO'y*PO(z%POP'iaR'ia['iaj'ian'iar'ia!S'ia!l'ia!p'ia#R'ia#n'ia#o'ia#p'ia#q'ia#r'ia#s'ia#t'ia#u'ia#v'ia#x'ia#z'ia#{'ia$O'ia(a'ia(r'ia(y'ia!]'ia!^'ia~O!Q*OO'y*POP'kaR'ka['kaj'kan'kar'ka!S'ka!l'ka!p'ka#R'ka#n'ka#o'ka#p'ka#q'ka#r'ka#s'ka#t'ka#u'ka#v'ka#x'ka#z'ka#{'ka$O'ka(a'ka(r'ka(y'ka(z'ka!]'ka!^'ka~O(y$}OP%aiR%ai[%aij%ain%air%ai!Q%ai!S%ai!l%ai!p%ai#R%ai#n%ai#o%ai#p%ai#q%ai#r%ai#s%ai#t%ai#u%ai#v%ai#x%ai#z%ai#{%ai$O%ai'y%ai(a%ai(r%ai(z%ai!]%ai!^%ai~O(z%POP%ciR%ci[%cij%cin%cir%ci!Q%ci!S%ci!l%ci!p%ci#R%ci#n%ci#o%ci#p%ci#q%ci#r%ci#s%ci#t%ci#u%ci#v%ci#x%ci#z%ci#{%ci$O%ci'y%ci(a%ci(r%ci(y%ci!]%ci!^%ci~O$O$oy!]$oy!^$oy~P#BwO$O#cy!]#cy!^#cy~P#BwO!g#vO!]'eq!k'eq~O!]/pO!k)Oy~O!Y'gq!]'gq~P#/sOr:|O!g#vO(r'pO~O[;QO!Y;PO~P#/sO!Y;PO~Og(_!R!](_!R~P!1WOa%[y!_%[y'z%[y!]%[y~P#/sO!]1TO!^)Xy~O!]5uO!^)Uq~O(T;XO~O!_1oO%i;[O~O!k;_O~O%i;dO~P&8fOP$|qR$|q[$|qj$|qr$|q!S$|q!l$|q!p$|q#R$|q#n$|q#o$|q#p$|q#q$|q#r$|q#s$|q#t$|q#u$|q#v$|q#x$|q#z$|q#{$|q$O$|q(a$|q(r$|q!]$|q!^$|q~P''VO!Q*OO'y*PO(z%POP'jaR'ja['jaj'jan'jar'ja!S'ja!l'ja!p'ja#R'ja#n'ja#o'ja#p'ja#q'ja#r'ja#s'ja#t'ja#u'ja#v'ja#x'ja#z'ja#{'ja$O'ja(a'ja(r'ja(y'ja!]'ja!^'ja~O!Q*OO'y*POP'laR'la['laj'lan'lar'la!S'la!l'la!p'la#R'la#n'la#o'la#p'la#q'la#r'la#s'la#t'la#u'la#v'la#x'la#z'la#{'la$O'la(a'la(r'la(y'la(z'la!]'la!^'la~OP%OqR%Oq[%Oqj%Oqr%Oq!S%Oq!l%Oq!p%Oq#R%Oq#n%Oq#o%Oq#p%Oq#q%Oq#r%Oq#s%Oq#t%Oq#u%Oq#v%Oq#x%Oq#z%Oq#{%Oq$O%Oq(a%Oq(r%Oq!]%Oq!^%Oq~P''VOg%e!Z!]%e!Z#`%e!Z$O%e!Z~P!1WO!Y;hO~P#/sOr;iO!g#vO(r'pO~O[;kO!Y;hO~P#/sO!]'pq!^'pq~P#BwO!]#h!Z!^#h!Z~P#BwO#k%e!ZP%e!ZR%e!Z[%e!Za%e!Zj%e!Zr%e!Z!S%e!Z!]%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z'z%e!Z(a%e!Z(r%e!Z!k%e!Z!Y%e!Z'w%e!Z#`%e!Zv%e!Z!_%e!Z%i%e!Z!g%e!Z~P#/sOr;tO!g#vO(r'pO~O!Y;uO~P#/sOr;|O!g#vO(r'pO~O!Y;}O~P#/sOP%e!ZR%e!Z[%e!Zj%e!Zr%e!Z!S%e!Z!l%e!Z!p%e!Z#R%e!Z#n%e!Z#o%e!Z#p%e!Z#q%e!Z#r%e!Z#s%e!Z#t%e!Z#u%e!Z#v%e!Z#x%e!Z#z%e!Z#{%e!Z$O%e!Z(a%e!Z(r%e!Z!]%e!Z!^%e!Z~P''VOr<QO!g#vO(r'pO~Ov(fX~P1qO!Q%rO~P!)[O(U!lO~P!)[O!YfX!]fX#`fX~P%2OOP]XR]X[]Xj]Xr]X!Q]X!S]X!]]X!]fX!l]X!p]X#R]X#S]X#`]X#`fX#kfX#n]X#o]X#p]X#q]X#r]X#s]X#t]X#u]X#v]X#x]X#z]X#{]X$Q]X(a]X(r]X(y]X(z]X~O!gfX!k]X!kfX(rfX~P'LTOP<UOQ<UOSfOd>ROe!iOpkOr<UOskOtkOzkO|<UO!O<UO!SWO!WkO!XkO!_XO!i<XO!lZO!o<UO!p<UO!q<UO!s<YO!u<]O!x!hO$W!kO$n>PO(T)]O(VTO(YUO(aVO(o[O~O!]<iO!^$qa~Oh%VOp%WOr%XOs$tOt$tOz%YO|%ZO!O<tO!S${O!_$|O!i>WO!l$xO#j<zO$W%`O$t<vO$v<xO$y%aO(T(vO(VTO(YUO(a$uO(y$}O(z%PO~Ol)dO~P(!yOr!eX(r!eX~P#!iOr(jX(r(jX~P##[O!^]X!^fX~P'LTO!YfX!Y$zX!]fX!]$zX#`fX~P!0SO#k<^O~O!g#vO#k<^O~O#`<nO~Oj<bO~O#`=OO!](wX!^(wX~O#`<nO!](uX!^(uX~O#k=PO~Og=RO~P!1WO#k=XO~O#k=YO~Og=RO(T&ZO~O!g#vO#k=ZO~O!g#vO#k=PO~O$O=[O~P#BwO#k=]O~O#k=^O~O#k=cO~O#k=dO~O#k=eO~O#k=fO~O$O=gO~P!1WO$O=hO~P!1WOl=sO~P7eOk#S#T#U#W#X#[#i#j#u$n$t$v$y%]%^%h%i%j%q%s%v%w%y%{~(OT#o!X'|(U#ps#n#qr!Q'}$]'}(T$_(e~",goto:"$9Y)]PPPPPP)^PP)aP)rP+W/]PPPP6mPP7TPP=QPPP@tPA^PA^PPPA^PCfPA^PA^PA^PCjPCoPD^PIWPPPI[PPPPI[L_PPPLeMVPI[PI[PP! eI[PPPI[PI[P!#lI[P!'S!(X!(bP!)U!)Y!)U!,gPPPPPPP!-W!(XPP!-h!/YP!2iI[I[!2n!5z!:h!:h!>gPPP!>oI[PPPPPPPPP!BOP!C]PPI[!DnPI[PI[I[I[I[I[PI[!FQP!I[P!LbP!Lf!Lp!Lt!LtP!IXP!Lx!LxP#!OP#!SI[PI[#!Y#%_CjA^PA^PA^A^P#&lA^A^#)OA^#+vA^#.SA^A^#.r#1W#1W#1]#1f#1W#1qPP#1WPA^#2ZA^#6YA^A^6mPPP#:_PPP#:x#:xP#:xP#;`#:xPP#;fP#;]P#;]#;y#;]#<e#<k#<n)aP#<q)aP#<z#<z#<zP)aP)aP)aP)aPP)aP#=Q#=TP#=T)aP#=XP#=[P)aP)aP)aP)aP)aP)a)aPP#=b#=h#=s#=y#>P#>V#>]#>k#>q#>{#?R#?]#?c#?s#?y#@k#@}#AT#AZ#Ai#BO#Cs#DR#DY#Et#FS#Gt#HS#HY#H`#Hf#Hp#Hv#H|#IW#Ij#IpPPPPPPPPPPP#IvPPPPPPP#Jk#Mx$ b$ i$ qPPP$']P$'f$*_$0x$0{$1O$1}$2Q$2X$2aP$2g$2jP$3W$3[$4S$5b$5g$5}PP$6S$6Y$6^$6a$6e$6i$7e$7|$8e$8i$8l$8o$8y$8|$9Q$9UR!|RoqOXst!Z#d%m&r&t&u&w,s,x2[2_Y!vQ'`-e1o5{Q%tvQ%|yQ&T|Q&j!VS'W!e-]Q'f!iS'l!r!yU*k$|*Z*oQ+o%}S+|&V&WQ,d&dQ-c'_Q-m'gQ-u'mQ0[*qQ1b,OQ1y,eR<{<Y%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_S#q]<V!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SU+P%]<s<tQ+t&PQ,f&gQ,m&oQ0x+gQ0}+iQ1Y+uQ2R,kQ3`.gQ5`0|Q5f1TQ6[1zQ7Y3dQ8`5gR9e7['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S!S!nQ!r!v!y!z$|'W'_'`'l'm'n*k*o*q*r-]-c-e-u0[0_1o5{5}%[$ti#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^Q&X|Q'U!eS'[%i-`Q+t&PQ,P&WQ,f&gQ0n+SQ1Y+uQ1_+{Q2Q,jQ2R,kQ5f1TQ5o1aQ6[1zQ6_1|Q6`2PQ8`5gQ8c5lQ8|6bQ:X8dQ:f8yQ;V:YR<}*ZrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R,h&k&z^OPXYstuvwz!Z!`!g!j!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'b'r(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>R>S[#]WZ#W#Z'X(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ%wxQ%{yW&Q|&V&W,OQ&_!TQ'c!hQ'e!iQ(q#sS+n%|%}Q+r&PQ,_&bQ,c&dS-l'f'gQ.i(rQ1R+oQ1X+uQ1Z+vQ1^+zQ1t,`S1x,d,eQ2|-mQ5e1TQ5i1WQ5n1`Q6Z1yQ8_5gQ8b5kQ8f5pQ:T8^R;T:U!U$zi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y!^%yy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{Q+h%wQ,T&[Q,W&]Q,b&dQ.h(qQ1s,_U1w,c,d,eQ3e.iQ6U1tS6Y1x1yQ8x6Z#f>T#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^o>U<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hW%Ti%V*y>PS&[!Q&iQ&]!RQ&^!SU*}%[%d=sR,R&Y%]%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^T)z$u){V+P%]<s<tW'[!e%i*Z-`S(}#y#zQ+c%rQ+y&SS.b(m(nQ1j,XQ5T0kR8i5u'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S$i$^c#Y#e%q%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.|.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`<W=vT#TV#U'RkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ'Y!eR2q-]!W!nQ!e!r!v!y!z$|'W'_'`'l'm'n*Z*k*o*q*r-]-c-e-u0[0_1o5{5}R1l,ZnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&y!^Q'v!xS(s#u<^Q+l%zQ,]&_Q,^&aQ-j'dQ-w'oS.r(x=PS0q+X=ZQ1P+mQ1n,[Q2c,zQ2e,{Q2m-WQ2z-kQ2}-oS5Y0r=eQ5a1QS5d1S=fQ6t2oQ6x2{Q6}3SQ8]5bQ9Y6vQ9Z6yQ9^7OR:l9V$d$]c#Y#e%s%u(S(Y(t(y)R)S)T)U)V)W)X)Y)Z)[)^)`)b)g)q+d+x-Z-x-}.S.U.s.v.z.}/O/b0p2k2n3O3V3k3p3q3r3s3t3u3v3w3x3y3z3{3|4P4Q4X5X5c6u6{7Q7a7b7k7l8k9X9]9g9m9n:o;W;`<W=vS(o#p'iQ)P#zS+b%q.|S.c(n(pR3^.d'QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SS#q]<VQ&t!XQ&u!YQ&w![Q&x!]R2Z,vQ'a!hQ+e%wQ-h'cS.e(q+hQ2x-gW3b.h.i0w0yQ6w2yW7U3_3a3e5^U9a7V7X7ZU:q9c9d9fS;b:p:sQ;p;cR;x;qU!wQ'`-eT5y1o5{!Q_OXZ`st!V!Z#d#h%e%m&i&k&r&t&u&w(j,s,x.[2[2_]!pQ!r'`-e1o5{T#q]<V%^{OPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_S(}#y#zS.b(m(n!s=l$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SU$fd)_,mS(p#p'iU*v%R(w4OU0m+O.n7gQ5^0xQ7V3`Q9d7YR:s9em!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}Q't!uS(f#g2US-s'k'wQ/s*]Q0R*jQ3U-vQ4f/tQ4r0TQ4s0UQ4x0^Q7r4`S7}4t4vS8R4y4{Q9r7sQ9v7yQ9{8OQ:Q8TS:{9w9xS;g:|;PS;s;h;iS;{;t;uS<P;|;}R<S<QQ#wbQ's!uS(e#g2US(g#m+WQ+Y%fQ+j%xQ+p&OU-r'k't'wQ.W(fU/r*]*`/wQ0S*jQ0V*lQ1O+kQ1u,aS3R-s-vQ3Z.`S4e/s/tQ4n0PS4q0R0^Q4u0WQ6W1vQ7P3US7q4`4bQ7u4fU7|4r4x4{Q8P4wQ8v6XS9q7r7sQ9u7yQ9}8RQ:O8SQ:c8wQ:y9rS:z9v9xQ;S:QQ;^:dS;f:{;PS;r;g;hS;z;s;uS<O;{;}Q<R<PQ<T<SQ=o=jQ={=tR=|=uV!wQ'`-e%^aOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_S#wz!j!r=i$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SR=o>R%^bOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Q%fj!^%xy!i!u%{%|%}'V'e'f'g'k'u*j+n+o-Y-l-m-t0R0U1R2u2|3T4r4s4v7}9{S&Oz!jQ+k%yQ,a&dW1v,b,c,d,eU6X1w1x1yS8w6Y6ZQ:d8x!r=j$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ=t>QR=u>R%QeOPXYstuvw!Z!`!g!o#S#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_Y#bWZ#W#Z(T!b%jm#h#i#l$x%e%h(^(h(i(j*Y*^*b+Z+[+^,o-V.T.Z.[.]._/m/p2d3[3]4a6r7TQ,n&o!p=k$Z$n)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SR=n'XU']!e%i*ZR2s-`%SdOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+],p,s,x-i-q.P.V.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3l4z6T6e6f6i6|8t9T9_!r)_$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SQ,m&oQ0x+gQ3`.gQ7Y3dR9e7[!b$Tc#Y%q(S(Y(t(y)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<W!P<d)^)q-Z.|2k2n3p3y3z4P4X6u7b7k7l8k9X9g9m9n;W;`=v!f$Vc#Y%q(S(Y(t(y)W)X)Z)[)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<W!T<f)^)q-Z.|2k2n3p3v3w3y3z4P4X6u7b7k7l8k9X9g9m9n;W;`=v!^$Zc#Y%q(S(Y(t(y)`)g+x-x-}.S.U.s.v/b0p3O3V3k3{5X5c6{7Q7a9]:o<WQ4_/kz>S)^)q-Z.|2k2n3p4P4X6u7b7k7l8k9X9g9m9n;W;`=vQ>X>ZR>Y>['QkOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>SS$oh$pR4U/U'XgOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>ST$kf$qQ$ifS)j$l)nR)v$qT$jf$qT)l$l)n'XhOPWXYZhstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$Z$_$a$e$n$p%m%t&R&k&n&o&r&t&u&w&{'T'X'b'r(T(V(](d(x(z)O)s)}*i+X+]+g,p,s,x-U-X-i-q.P.V.g.t.{/U/V/n0]0l0r1S1r2S2T2V2X2[2_2a2p3Q3W3d3l4T4z5w6T6e6f6i6s6|7[8t9T9_:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>ST$oh$pQ$rhR)u$p%^jOPWXYZstuvw!Z!`!g!o#S#W#Z#d#o#u#x#{$O$P$Q$R$S$T$U$V$W$X$_$a$e%m%t&R&k&n&o&r&t&u&w&{'T'b'r(T(V(](d(x(z)O)}*i+X+]+g,p,s,x-i-q.P.V.g.t.{/n0]0l0r1S1r2S2T2V2X2[2_2a3Q3W3d3l4z6T6e6f6i6|7[8t9T9_!s>Q$Z$n'X)s-U-X/V2p4T5w6s:Z:m<U<X<Y<]<^<_<`<a<b<c<d<e<f<g<h<i<k<n<{=O=P=R=Z=[=e=f>S#glOPXZst!Z!`!o#S#d#o#{$n%m&k&n&o&r&t&u&w&{'T'b)O)s*i+]+g,p,s,x-i.g/V/n0]0l1r2S2T2V2X2[2_2a3d4T4z6T6e6f6i7[8t9T!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^Q+T%aQ/c*Oo4O<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!U$yi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>YQ*c$zU*l$|*Z*oQ+U%bQ0W*m#f=q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n=r<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hQ=w>TQ=x>UQ=y>VR=z>W!U%Ri$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y#f(w#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^o4O<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=hnoOXst!Z#d%m&r&t&u&w,s,x2[2_S*f${*YQ-R'OQ-S'QR4i/y%[%Si#v$b$c$d$x${%O%Q%^%_%c)y*R*T*V*Y*a*g*w*x+f+i,S,V.f/P/d/m/x/y/{0`0b0i0j0o1f1i1q3c4^4_4j4o5Q5[5_6S7W7v8Q8V8[8q9b9p9y:P:`:r;Q;[;d;k<l<m<o<p<q<r<u<v<w<x<y<z=S=T=U=V=X=Y=]=^=_=`=a=b=c=d=g=h>P>X>Y>]>^Q,U&]Q1h,WQ5s1gR8h5tV*n$|*Z*oU*n$|*Z*oT5z1o5{S0P*i/nQ4w0]T8S4z:]Q+j%xQ0V*lQ1O+kQ1u,aQ6W1vQ8v6XQ:c8wR;^:d!U%Oi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Yx*R$v)e*S*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>OS0`*t0a#f<o#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n<p<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!d=S(u)c*[*e.j.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[`=T3}7c7f7j9h:t:w;yS=_.l3iT=`7e9k!U%Qi$d%O%Q%^%_%c*R*T*a*w*x/P/x0`0b0i0j0o4_5Q8V9p>P>X>Y|*T$v)e*U*t+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>OS0b*u0c#f<q#v$b$c$x${)y*V*Y*g+f+i,S,V.f/d/m/y/{1f1i1q3c4^4j4o5[5_6S7W7v8Q8[8q9b9y:P:`:r;Q;[;d;k<o<q<u<w<y=S=U=X=]=_=a=c=g>]>^n<r<l<m<p<r<v<x<z=T=V=Y=^=`=b=d=h!h=U(u)c*[*e.k.l.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[d=V3}7d7e7j9h9i:t:u:w;yS=a.m3jT=b7f9lrnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q&f!UR,p&ornOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_R&f!UQ,Y&^R1d,RsnOXst!V!Z#d%m&i&r&t&u&w,s,x2[2_Q1p,_S6R1s1tU8p6P6Q6US:_8r8sS;Y:^:aQ;m;ZR;w;nQ&m!VR,i&iR6_1|R:f8yW&Q|&V&W,OR1Z+vQ&r!WR,s&sR,y&xT2],x2_R,}&yQ,|&yR2f,}Q'y!{R-y'ySsOtQ#dXT%ps#dQ#OTR'{#OQ#RUR'}#RQ){$uR/`){Q#UVR(Q#UQ#XWU(W#X(X.QQ(X#YR.Q(YQ-^'YR2r-^Q.u(yS3m.u3nR3n.vQ-e'`R2v-eY!rQ'`-e1o5{R'j!rQ/Q)eR4S/QU#_W%h*YU(_#_(`.RQ(`#`R.R(ZQ-a']R2t-at`OXst!V!Z#d%m&i&k&r&t&u&w,s,x2[2_S#hZ%eU#r`#h.[R.[(jQ(k#jQ.X(gW.a(k.X3X7RQ3X.YR7R3YQ)n$lR/W)nQ$phR)t$pQ$`cU)a$`-|<jQ-|<WR<j)qQ/q*]W4c/q4d7t9sU4d/r/s/tS7t4e4fR9s7u$e*Q$v(u)c)e*[*e*t*u+Q+R+V.l.m.o.p.q/_/g/i/k/v/|0d0e0v1e3f3g3h3}4R4[4g4h4l4|5O5R5S5W5r7]7^7_7`7e7f7h7i7j7p7w7z8U8X8Z9h9i9j9t9|:R:S:t:u:v:w:x:};R;e;j;v;y=p=}>O>Z>[Q/z*eU4k/z4m7xQ4m/|R7x4lS*o$|*ZR0Y*ox*S$v)e*t*u+V/v0d0e4R4g5R5S5W7p8U:R:x=p=}>O!d.j(u)c*[*e.l.m.q/_/k/|0v1e3h4[4h4l5r7]7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/h*S.j7ca7c3}7e7f7j9h:t:w;yQ0a*tQ3i.lU4}0a3i9kR9k7e|*U$v)e*t*u+V/g/v0d0e4R4g4|5R5S5W7p8U:R:x=p=}>O!h.k(u)c*[*e.l.m.q/_/k/|0v1e3f3h4[4h4l5r7]7^7`7w7z8X8Z9t9|:S:};R;e;j;v>Z>[U/j*U.k7de7d3}7e7f7j9h9i:t:u:w;yQ0c*uQ3j.mU5P0c3j9lR9l7fQ*z%UR0g*zQ5]0vR8Y5]Q+_%kR0u+_Q5v1jS8j5v:[R:[8kQ,[&_R1m,[Q5{1oR8m5{Q1{,fS6]1{8zR8z6_Q1U+rW5h1U5j8a:VQ5j1XQ8a5iR:V8bQ+w&QR1[+wQ2_,xR6m2_YrOXst#dQ&v!ZQ+a%mQ,r&rQ,t&tQ,u&uQ,w&wQ2Y,sS2],x2_R6l2[Q%opQ&z!_Q&}!aQ'P!bQ'R!cQ'q!uQ+`%lQ+l%zQ,Q&XQ,h&mQ-P&|W-p'k's't'wQ-w'oQ0X*nQ1P+mQ1c,PS2O,i,lQ2g-OQ2h-RQ2i-SQ2}-oW3P-r-s-v-xQ5a1QQ5m1_Q5q1eQ6V1uQ6a2QQ6k2ZU6z3O3R3UQ6}3SQ8]5bQ8e5oQ8g5rQ8l5zQ8u6WQ8{6`S9[6{7PQ9^7OQ:W8cQ:b8vQ:g8|Q:n9]Q;U:XQ;]:cQ;a:oQ;l;VR;o;^Q%zyQ'd!iQ'o!uU+m%{%|%}Q-W'VU-k'e'f'gS-o'k'uQ0Q*jS1Q+n+oQ2o-YS2{-l-mQ3S-tS4p0R0UQ5b1RQ6v2uQ6y2|Q7O3TU7{4r4s4vQ9z7}R;O9{S$wi>PR*{%VU%Ui%V>PR0f*yQ$viS(u#v+iS)c$b$cQ)e$dQ*[$xS*e${*YQ*t%OQ*u%QQ+Q%^Q+R%_Q+V%cQ.l<oQ.m<qQ.o<uQ.p<wQ.q<yQ/_)yQ/g*RQ/i*TQ/k*VQ/v*aS/|*g/mQ0d*wQ0e*xl0v+f,V.f1i1q3c6S7W8q9b:`:r;[;dQ1e,SQ3f=SQ3g=UQ3h=XS3}<l<mQ4R/PS4[/d4^Q4g/xQ4h/yQ4l/{Q4|0`Q5O0bQ5R0iQ5S0jQ5W0oQ5r1fQ7]=]Q7^=_Q7_=aQ7`=cQ7e<pQ7f<rQ7h<vQ7i<xQ7j<zQ7p4_Q7w4jQ7z4oQ8U5QQ8X5[Q8Z5_Q9h=YQ9i=TQ9j=VQ9t7vQ9|8QQ:R8VQ:S8[Q:t=^Q:u=`Q:v=bQ:w=dQ:x9pQ:}9yQ;R:PQ;e=gQ;j;QQ;v;kQ;y=hQ=p>PQ=}>XQ>O>YQ>Z>]R>[>^Q+O%]Q.n<sR7g<tnpOXst!Z#d%m&r&t&u&w,s,x2[2_Q!fPS#fZ#oQ&|!`W'h!o*i0]4zQ(P#SQ)Q#{Q)r$nS,l&k&nQ,q&oQ-O&{S-T'T/nQ-g'bQ.x)OQ/[)sQ0s+]Q0y+gQ2W,pQ2y-iQ3a.gQ4W/VQ5U0lQ6Q1rQ6c2SQ6d2TQ6h2VQ6j2XQ6o2aQ7Z3dQ7m4TQ8s6TQ9P6eQ9Q6fQ9S6iQ9f7[Q:a8tR:k9T#[cOPXZst!Z!`!o#d#o#{%m&k&n&o&r&t&u&w&{'T'b)O*i+]+g,p,s,x-i.g/n0]0l1r2S2T2V2X2[2_2a3d4z6T6e6f6i7[8t9TQ#YWQ#eYQ%quQ%svS%uw!gS(S#W(VQ(Y#ZQ(t#uQ(y#xQ)R$OQ)S$PQ)T$QQ)U$RQ)V$SQ)W$TQ)X$UQ)Y$VQ)Z$WQ)[$XQ)^$ZQ)`$_Q)b$aQ)g$eW)q$n)s/V4TQ+d%tQ+x&RS-Z'X2pQ-x'rS-}(T.PQ.S(]Q.U(dQ.s(xQ.v(zQ.z<UQ.|<XQ.}<YQ/O<]Q/b)}Q0p+XQ2k-UQ2n-XQ3O-qQ3V.VQ3k.tQ3p<^Q3q<_Q3r<`Q3s<aQ3t<bQ3u<cQ3v<dQ3w<eQ3x<fQ3y<gQ3z<hQ3{.{Q3|<kQ4P<nQ4Q<{Q4X<iQ5X0rQ5c1SQ6u=OQ6{3QQ7Q3WQ7a3lQ7b=PQ7k=RQ7l=ZQ8k5wQ9X6sQ9]6|Q9g=[Q9m=eQ9n=fQ:o9_Q;W:ZQ;`:mQ<W#SR=v>SR#[WR'Z!el!tQ!r!v!y!z'`'l'm'n-e-u1o5{5}S'V!e-]U*j$|*Z*oS-Y'W'_S0U*k*qQ0^*rQ2u-cQ4v0[R4{0_R({#xQ!fQT-d'`-e]!qQ!r'`-e1o5{Q#p]R'i<VR)f$dY!uQ'`-e1o5{Q'k!rS'u!v!yS'w!z5}S-t'l'mQ-v'nR3T-uT#kZ%eS#jZ%eS%km,oU(g#h#i#lS.Y(h(iQ.^(jQ0t+^Q3Y.ZU3Z.[.]._S7S3[3]R9`7Td#^W#W#Z%h(T(^*Y+Z.T/mr#gZm#h#i#l%e(h(i(j+^.Z.[.]._3[3]7TS*]$x*bQ/t*^Q2U,oQ2l-VQ4`/pQ6q2dQ7s4aQ9W6rT=m'X+[V#aW%h*YU#`W%h*YS(U#W(^U(Z#Z+Z/mS-['X+[T.O(T.TV'^!e%i*ZQ$lfR)x$qT)m$l)nR4V/UT*_$x*bT*h${*YQ0w+fQ1g,VQ3_.fQ5t1iQ6P1qQ7X3cQ8r6SQ9c7WQ:^8qQ:p9bQ;Z:`Q;c:rQ;n;[R;q;dnqOXst!Z#d%m&r&t&u&w,s,x2[2_Q&l!VR,h&itmOXst!U!V!Z#d%m&i&r&t&u&w,s,x2[2_R,o&oT%lm,oR1k,XR,g&gQ&U|S+}&V&WR1^,OR+s&PT&p!W&sT&q!W&sT2^,x2_",nodeNames:"⚠ ArithOp ArithOp ?. JSXStartTag LineComment BlockComment Script Hashbang ExportDeclaration export Star as VariableName String Escape from ; default FunctionDeclaration async function VariableDefinition > < TypeParamList in out const TypeDefinition extends ThisType this LiteralType ArithOp Number BooleanLiteral TemplateType InterpolationEnd Interpolation InterpolationStart NullType null VoidType void TypeofType typeof MemberExpression . PropertyName [ TemplateString Escape Interpolation super RegExp ] ArrayExpression Spread , } { ObjectExpression Property async get set PropertyDefinition Block : NewTarget new NewExpression ) ( ArgList UnaryExpression delete LogicOp BitOp YieldExpression yield AwaitExpression await ParenthesizedExpression ClassExpression class ClassBody MethodDeclaration Decorator @ MemberExpression PrivatePropertyName CallExpression TypeArgList CompareOp < declare Privacy static abstract override PrivatePropertyDefinition PropertyDeclaration readonly accessor Optional TypeAnnotation Equals StaticBlock FunctionExpression ArrowFunction ParamList ParamList ArrayPattern ObjectPattern PatternProperty Privacy readonly Arrow MemberExpression BinaryExpression ArithOp ArithOp ArithOp ArithOp BitOp CompareOp instanceof satisfies CompareOp BitOp BitOp BitOp LogicOp LogicOp ConditionalExpression LogicOp LogicOp AssignmentExpression UpdateOp PostfixExpression CallExpression InstantiationExpression TaggedTemplateExpression DynamicImport import ImportMeta JSXElement JSXSelfCloseEndTag JSXSelfClosingTag JSXIdentifier JSXBuiltin JSXIdentifier JSXNamespacedName JSXMemberExpression JSXSpreadAttribute JSXAttribute JSXAttributeValue JSXEscape JSXEndTag JSXOpenTag JSXFragmentTag JSXText JSXEscape JSXStartCloseTag JSXCloseTag PrefixCast < ArrowFunction TypeParamList SequenceExpression InstantiationExpression KeyofType keyof UniqueType unique ImportType InferredType infer TypeName ParenthesizedType FunctionSignature ParamList NewSignature IndexedType TupleType Label ArrayType ReadonlyType ObjectType MethodType PropertyType IndexSignature PropertyDefinition CallSignature TypePredicate asserts is NewSignature new UnionType LogicOp IntersectionType LogicOp ConditionalType ParameterizedType ClassDeclaration abstract implements type VariableDeclaration let var using TypeAliasDeclaration InterfaceDeclaration interface EnumDeclaration enum EnumBody NamespaceDeclaration namespace module AmbientDeclaration declare GlobalDeclaration global ClassDeclaration ClassBody AmbientFunctionDeclaration ExportGroup VariableName VariableName ImportDeclaration defer ImportGroup ForStatement for ForSpec ForInSpec ForOfSpec of WhileStatement while WithStatement with DoStatement do IfStatement if else SwitchStatement switch SwitchBody CaseLabel case DefaultLabel TryStatement try CatchClause catch FinallyClause finally ReturnStatement return ThrowStatement throw BreakStatement break ContinueStatement continue DebuggerStatement debugger LabeledStatement ExpressionStatement SingleExpression SingleClassItem",maxTerm:380,context:cA,nodeProps:[["isolate",-8,5,6,14,37,39,51,53,55,""],["group",-26,9,17,19,68,207,211,215,216,218,221,224,234,237,243,245,247,249,252,258,264,266,268,270,272,274,275,"Statement",-34,13,14,32,35,36,42,51,54,55,57,62,70,72,76,80,82,84,85,110,111,120,121,136,139,141,142,143,144,145,147,148,167,169,171,"Expression",-23,31,33,37,41,43,45,173,175,177,178,180,181,182,184,185,186,188,189,190,201,203,205,206,"Type",-3,88,103,109,"ClassItem"],["openedBy",23,"<",38,"InterpolationStart",56,"[",60,"{",73,"(",160,"JSXStartCloseTag"],["closedBy",-2,24,168,">",40,"InterpolationEnd",50,"]",61,"}",74,")",165,"JSXEndTag"]],propSources:[pA],skippedNodes:[0,5,6,278],repeatNodeCount:37,tokenData:"$Fq07[R!bOX%ZXY+gYZ-yZ[+g[]%Z]^.c^p%Zpq+gqr/mrs3cst:_tuEruvJSvwLkwx! Yxy!'iyz!(sz{!)}{|!,q|}!.O}!O!,q!O!P!/Y!P!Q!9j!Q!R#:O!R![#<_![!]#I_!]!^#Jk!^!_#Ku!_!`$![!`!a$$v!a!b$*T!b!c$,r!c!}Er!}#O$-|#O#P$/W#P#Q$4o#Q#R$5y#R#SEr#S#T$7W#T#o$8b#o#p$<r#p#q$=h#q#r$>x#r#s$@U#s$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$I|Er$I|$I}$Dk$I}$JO$Dk$JO$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr(n%d_$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z&j&hT$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c&j&zP;=`<%l&c'|'U]$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!b(SU(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!b(iP;=`<%l'}'|(oP;=`<%l&}'[(y]$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(rp)wU(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)rp*^P;=`<%l)r'[*dP;=`<%l(r#S*nX(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g#S+^P;=`<%l*g(n+dP;=`<%l%Z07[+rq$i&j(Wp(Z!b'|0/lOX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p$f%Z$f$g+g$g#BY%Z#BY#BZ+g#BZ$IS%Z$IS$I_+g$I_$JT%Z$JT$JU+g$JU$KV%Z$KV$KW+g$KW&FU%Z&FU&FV+g&FV;'S%Z;'S;=`+a<%l?HT%Z?HT?HU+g?HUO%Z07[.ST(X#S$i&j'}0/lO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c07[.n_$i&j(Wp(Z!b'}0/lOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)3p/x`$i&j!p),Q(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW1V`#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`2X!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW2d_#v(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At3l_(V':f$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k(^4r_$i&j(Z!bOY4kYZ5qZr4krs7nsw4kwx5qx!^4k!^!_8p!_#O4k#O#P5q#P#o4k#o#p8p#p;'S4k;'S;=`:X<%lO4k&z5vX$i&jOr5qrs6cs!^5q!^!_6y!_#o5q#o#p6y#p;'S5q;'S;=`7h<%lO5q&z6jT$d`$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c`6|TOr6yrs7]s;'S6y;'S;=`7b<%lO6y`7bO$d``7eP;=`<%l6y&z7kP;=`<%l5q(^7w]$d`$i&j(Z!bOY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}!r8uZ(Z!bOY8pYZ6yZr8prs9hsw8pwx6yx#O8p#O#P6y#P;'S8p;'S;=`:R<%lO8p!r9oU$d`(Z!bOY'}Zw'}x#O'}#P;'S'};'S;=`(f<%lO'}!r:UP;=`<%l8p(^:[P;=`<%l4k%9[:hh$i&j(Wp(Z!bOY%ZYZ&cZq%Zqr<Srs&}st%ZtuCruw%Zwx(rx!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr(r<__WS$i&j(Wp(Z!bOY<SYZ&cZr<Srs=^sw<Swx@nx!^<S!^!_Bm!_#O<S#O#P>`#P#o<S#o#pBm#p;'S<S;'S;=`Cl<%lO<S(Q=g]WS$i&j(Z!bOY=^YZ&cZw=^wx>`x!^=^!^!_?q!_#O=^#O#P>`#P#o=^#o#p?q#p;'S=^;'S;=`@h<%lO=^&n>gXWS$i&jOY>`YZ&cZ!^>`!^!_?S!_#o>`#o#p?S#p;'S>`;'S;=`?k<%lO>`S?XSWSOY?SZ;'S?S;'S;=`?e<%lO?SS?hP;=`<%l?S&n?nP;=`<%l>`!f?xWWS(Z!bOY?qZw?qwx?Sx#O?q#O#P?S#P;'S?q;'S;=`@b<%lO?q!f@eP;=`<%l?q(Q@kP;=`<%l=^'`@w]WS$i&j(WpOY@nYZ&cZr@nrs>`s!^@n!^!_Ap!_#O@n#O#P>`#P#o@n#o#pAp#p;'S@n;'S;=`Bg<%lO@ntAwWWS(WpOYApZrAprs?Ss#OAp#O#P?S#P;'SAp;'S;=`Ba<%lOAptBdP;=`<%lAp'`BjP;=`<%l@n#WBvYWS(Wp(Z!bOYBmZrBmrs?qswBmwxApx#OBm#O#P?S#P;'SBm;'S;=`Cf<%lOBm#WCiP;=`<%lBm(rCoP;=`<%l<S%9[C}i$i&j(o%1l(Wp(Z!bOY%ZYZ&cZr%Zrs&}st%ZtuCruw%Zwx(rx!Q%Z!Q![Cr![!^%Z!^!_*g!_!c%Z!c!}Cr!}#O%Z#O#P&c#P#R%Z#R#SCr#S#T%Z#T#oCr#o#p*g#p$g%Z$g;'SCr;'S;=`El<%lOCr%9[EoP;=`<%lCr07[FRk$i&j(Wp(Z!b$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr+dHRk$i&j(Wp(Z!b$]#tOY%ZYZ&cZr%Zrs&}st%ZtuGvuw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Gv![!^%Z!^!_*g!_!c%Z!c!}Gv!}#O%Z#O#P&c#P#R%Z#R#SGv#S#T%Z#T#oGv#o#p*g#p$g%Z$g;'SGv;'S;=`Iv<%lOGv+dIyP;=`<%lGv07[JPP;=`<%lEr(KWJ_`$i&j(Wp(Z!b#p(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWKl_$i&j$Q(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,#xLva(z+JY$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sv%ZvwM{wx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KWNW`$i&j#z(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'At! c_(Y';W$i&j(WpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b'l!!i_$i&j(WpOY!!bYZ!#hZr!!brs!#hsw!!bwx!$xx!^!!b!^!_!%z!_#O!!b#O#P!#h#P#o!!b#o#p!%z#p;'S!!b;'S;=`!'c<%lO!!b&z!#mX$i&jOw!#hwx6cx!^!#h!^!_!$Y!_#o!#h#o#p!$Y#p;'S!#h;'S;=`!$r<%lO!#h`!$]TOw!$Ywx7]x;'S!$Y;'S;=`!$l<%lO!$Y`!$oP;=`<%l!$Y&z!$uP;=`<%l!#h'l!%R]$d`$i&j(WpOY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r!Q!&PZ(WpOY!%zYZ!$YZr!%zrs!$Ysw!%zwx!&rx#O!%z#O#P!$Y#P;'S!%z;'S;=`!']<%lO!%z!Q!&yU$d`(WpOY)rZr)rs#O)r#P;'S)r;'S;=`*Z<%lO)r!Q!'`P;=`<%l!%z'l!'fP;=`<%l!!b/5|!'t_!l/.^$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#&U!)O_!k!Lf$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z-!n!*[b$i&j(Wp(Z!b(U%&f#q(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rxz%Zz{!+d{!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW!+o`$i&j(Wp(Z!b#n(ChOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;x!,|`$i&j(Wp(Z!br+4YOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z,$U!.Z_!]+Jf$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!/ec$i&j(Wp(Z!b!Q.2^OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!0p!P!Q%Z!Q![!3Y![!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!0ya$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!2O!P!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z#%|!2Z_![!L^$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!3eg$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!3Y![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S!3Y#S#X%Z#X#Y!4|#Y#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!5Vg$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx{%Z{|!6n|}%Z}!O!6n!O!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!6wc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad!8_c$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![!8S![!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S!8S#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[!9uf$i&j(Wp(Z!b#o(ChOY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcxz!;Zz{#-}{!P!;Z!P!Q#/d!Q!^!;Z!^!_#(i!_!`#7S!`!a#8i!a!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z?O!;fb$i&j(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z>^!<w`$i&j(Z!b!X7`OY!<nYZ&cZw!<nwx!=yx!P!<n!P!Q!Eq!Q!^!<n!^!_!Gr!_!}!<n!}#O!KS#O#P!Dy#P#o!<n#o#p!Gr#p;'S!<n;'S;=`!L]<%lO!<n<z!>Q^$i&j!X7`OY!=yYZ&cZ!P!=y!P!Q!>|!Q!^!=y!^!_!@c!_!}!=y!}#O!CW#O#P!Dy#P#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!?Td$i&j!X7`O!^&c!_#W&c#W#X!>|#X#Z&c#Z#[!>|#[#]&c#]#^!>|#^#a&c#a#b!>|#b#g&c#g#h!>|#h#i&c#i#j!>|#j#k!>|#k#m&c#m#n!>|#n#o&c#p;'S&c;'S;=`&w<%lO&c7`!@hX!X7`OY!@cZ!P!@c!P!Q!AT!Q!}!@c!}#O!Ar#O#P!Bq#P;'S!@c;'S;=`!CQ<%lO!@c7`!AYW!X7`#W#X!AT#Z#[!AT#]#^!AT#a#b!AT#g#h!AT#i#j!AT#j#k!AT#m#n!AT7`!AuVOY!ArZ#O!Ar#O#P!B[#P#Q!@c#Q;'S!Ar;'S;=`!Bk<%lO!Ar7`!B_SOY!ArZ;'S!Ar;'S;=`!Bk<%lO!Ar7`!BnP;=`<%l!Ar7`!BtSOY!@cZ;'S!@c;'S;=`!CQ<%lO!@c7`!CTP;=`<%l!@c<z!C][$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#O!CW#O#P!DR#P#Q!=y#Q#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DWX$i&jOY!CWYZ&cZ!^!CW!^!_!Ar!_#o!CW#o#p!Ar#p;'S!CW;'S;=`!Ds<%lO!CW<z!DvP;=`<%l!CW<z!EOX$i&jOY!=yYZ&cZ!^!=y!^!_!@c!_#o!=y#o#p!@c#p;'S!=y;'S;=`!Ek<%lO!=y<z!EnP;=`<%l!=y>^!Ezl$i&j(Z!b!X7`OY&}YZ&cZw&}wx&cx!^&}!^!_'}!_#O&}#O#P&c#P#W&}#W#X!Eq#X#Z&}#Z#[!Eq#[#]&}#]#^!Eq#^#a&}#a#b!Eq#b#g&}#g#h!Eq#h#i&}#i#j!Eq#j#k!Eq#k#m&}#m#n!Eq#n#o&}#o#p'}#p;'S&};'S;=`(l<%lO&}8r!GyZ(Z!b!X7`OY!GrZw!Grwx!@cx!P!Gr!P!Q!Hl!Q!}!Gr!}#O!JU#O#P!Bq#P;'S!Gr;'S;=`!J|<%lO!Gr8r!Hse(Z!b!X7`OY'}Zw'}x#O'}#P#W'}#W#X!Hl#X#Z'}#Z#[!Hl#[#]'}#]#^!Hl#^#a'}#a#b!Hl#b#g'}#g#h!Hl#h#i'}#i#j!Hl#j#k!Hl#k#m'}#m#n!Hl#n;'S'};'S;=`(f<%lO'}8r!JZX(Z!bOY!JUZw!JUwx!Arx#O!JU#O#P!B[#P#Q!Gr#Q;'S!JU;'S;=`!Jv<%lO!JU8r!JyP;=`<%l!JU8r!KPP;=`<%l!Gr>^!KZ^$i&j(Z!bOY!KSYZ&cZw!KSwx!CWx!^!KS!^!_!JU!_#O!KS#O#P!DR#P#Q!<n#Q#o!KS#o#p!JU#p;'S!KS;'S;=`!LV<%lO!KS>^!LYP;=`<%l!KS>^!L`P;=`<%l!<n=l!Ll`$i&j(Wp!X7`OY!LcYZ&cZr!Lcrs!=ys!P!Lc!P!Q!Mn!Q!^!Lc!^!_# o!_!}!Lc!}#O#%P#O#P!Dy#P#o!Lc#o#p# o#p;'S!Lc;'S;=`#&Y<%lO!Lc=l!Mwl$i&j(Wp!X7`OY(rYZ&cZr(rrs&cs!^(r!^!_)r!_#O(r#O#P&c#P#W(r#W#X!Mn#X#Z(r#Z#[!Mn#[#](r#]#^!Mn#^#a(r#a#b!Mn#b#g(r#g#h!Mn#h#i(r#i#j!Mn#j#k!Mn#k#m(r#m#n!Mn#n#o(r#o#p)r#p;'S(r;'S;=`*a<%lO(r8Q# vZ(Wp!X7`OY# oZr# ors!@cs!P# o!P!Q#!i!Q!}# o!}#O#$R#O#P!Bq#P;'S# o;'S;=`#$y<%lO# o8Q#!pe(Wp!X7`OY)rZr)rs#O)r#P#W)r#W#X#!i#X#Z)r#Z#[#!i#[#])r#]#^#!i#^#a)r#a#b#!i#b#g)r#g#h#!i#h#i)r#i#j#!i#j#k#!i#k#m)r#m#n#!i#n;'S)r;'S;=`*Z<%lO)r8Q#$WX(WpOY#$RZr#$Rrs!Ars#O#$R#O#P!B[#P#Q# o#Q;'S#$R;'S;=`#$s<%lO#$R8Q#$vP;=`<%l#$R8Q#$|P;=`<%l# o=l#%W^$i&j(WpOY#%PYZ&cZr#%Prs!CWs!^#%P!^!_#$R!_#O#%P#O#P!DR#P#Q!Lc#Q#o#%P#o#p#$R#p;'S#%P;'S;=`#&S<%lO#%P=l#&VP;=`<%l#%P=l#&]P;=`<%l!Lc?O#&kn$i&j(Wp(Z!b!X7`OY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#W%Z#W#X#&`#X#Z%Z#Z#[#&`#[#]%Z#]#^#&`#^#a%Z#a#b#&`#b#g%Z#g#h#&`#h#i%Z#i#j#&`#j#k#&`#k#m%Z#m#n#&`#n#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z9d#(r](Wp(Z!b!X7`OY#(iZr#(irs!Grsw#(iwx# ox!P#(i!P!Q#)k!Q!}#(i!}#O#+`#O#P!Bq#P;'S#(i;'S;=`#,`<%lO#(i9d#)th(Wp(Z!b!X7`OY*gZr*grs'}sw*gwx)rx#O*g#P#W*g#W#X#)k#X#Z*g#Z#[#)k#[#]*g#]#^#)k#^#a*g#a#b#)k#b#g*g#g#h#)k#h#i*g#i#j#)k#j#k#)k#k#m*g#m#n#)k#n;'S*g;'S;=`+Z<%lO*g9d#+gZ(Wp(Z!bOY#+`Zr#+`rs!JUsw#+`wx#$Rx#O#+`#O#P!B[#P#Q#(i#Q;'S#+`;'S;=`#,Y<%lO#+`9d#,]P;=`<%l#+`9d#,cP;=`<%l#(i?O#,o`$i&j(Wp(Z!bOY#,fYZ&cZr#,frs!KSsw#,fwx#%Px!^#,f!^!_#+`!_#O#,f#O#P!DR#P#Q!;Z#Q#o#,f#o#p#+`#p;'S#,f;'S;=`#-q<%lO#,f?O#-tP;=`<%l#,f?O#-zP;=`<%l!;Z07[#.[b$i&j(Wp(Z!b(O0/l!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z07[#/o_$i&j(Wp(Z!bT0/lOY#/dYZ&cZr#/drs#0nsw#/dwx#4Ox!^#/d!^!_#5}!_#O#/d#O#P#1p#P#o#/d#o#p#5}#p;'S#/d;'S;=`#6|<%lO#/d06j#0w]$i&j(Z!bT0/lOY#0nYZ&cZw#0nwx#1px!^#0n!^!_#3R!_#O#0n#O#P#1p#P#o#0n#o#p#3R#p;'S#0n;'S;=`#3x<%lO#0n05W#1wX$i&jT0/lOY#1pYZ&cZ!^#1p!^!_#2d!_#o#1p#o#p#2d#p;'S#1p;'S;=`#2{<%lO#1p0/l#2iST0/lOY#2dZ;'S#2d;'S;=`#2u<%lO#2d0/l#2xP;=`<%l#2d05W#3OP;=`<%l#1p01O#3YW(Z!bT0/lOY#3RZw#3Rwx#2dx#O#3R#O#P#2d#P;'S#3R;'S;=`#3r<%lO#3R01O#3uP;=`<%l#3R06j#3{P;=`<%l#0n05x#4X]$i&j(WpT0/lOY#4OYZ&cZr#4Ors#1ps!^#4O!^!_#5Q!_#O#4O#O#P#1p#P#o#4O#o#p#5Q#p;'S#4O;'S;=`#5w<%lO#4O00^#5XW(WpT0/lOY#5QZr#5Qrs#2ds#O#5Q#O#P#2d#P;'S#5Q;'S;=`#5q<%lO#5Q00^#5tP;=`<%l#5Q05x#5zP;=`<%l#4O01p#6WY(Wp(Z!bT0/lOY#5}Zr#5}rs#3Rsw#5}wx#5Qx#O#5}#O#P#2d#P;'S#5};'S;=`#6v<%lO#5}01p#6yP;=`<%l#5}07[#7PP;=`<%l#/d)3h#7ab$i&j$Q(Ch(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;ZAt#8vb$Z#t$i&j(Wp(Z!b!X7`OY!;ZYZ&cZr!;Zrs!<nsw!;Zwx!Lcx!P!;Z!P!Q#&`!Q!^!;Z!^!_#(i!_!}!;Z!}#O#,f#O#P!Dy#P#o!;Z#o#p#(i#p;'S!;Z;'S;=`#-w<%lO!;Z'Ad#:Zp$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#U%Z#U#V#?i#V#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#d#Bq#d#l%Z#l#m#Es#m#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#<jk$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!O%Z!O!P!3Y!P!Q%Z!Q![#<_![!^%Z!^!_*g!_!g%Z!g!h!4|!h#O%Z#O#P&c#P#R%Z#R#S#<_#S#X%Z#X#Y!4|#Y#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#>j_$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#?rd$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#A]f$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!R#AQ!R!S#AQ!S!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#AQ#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Bzc$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Dbe$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q!Y#DV!Y!^%Z!^!_*g!_#O%Z#O#P&c#P#R%Z#R#S#DV#S#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#E|g$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z'Ad#Gpi$i&j(Wp(Z!bs'9tOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!Q%Z!Q![#Ge![!^%Z!^!_*g!_!c%Z!c!i#Ge!i#O%Z#O#P&c#P#R%Z#R#S#Ge#S#T%Z#T#Z#Ge#Z#b%Z#b#c#>_#c#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x#Il_!g$b$i&j$O)Lv(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z)[#Jv_al$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f#LS^h#)`#R-<U(Wp(Z!b$n7`OY*gZr*grs'}sw*gwx)rx!P*g!P!Q#MO!Q!^*g!^!_#Mt!_!`$ f!`#O*g#P;'S*g;'S;=`+Z<%lO*g(n#MXX$k&j(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El#M}Z#r(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx!_*g!_!`#Np!`#O*g#P;'S*g;'S;=`+Z<%lO*g(El#NyX$Q(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g(El$ oX#s(Ch(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g*)x$!ga#`*!Y$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`0z!`!a$#l!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(K[$#w_#k(Cl$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z*)x$%Vag!*r#s(Ch$f#|$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`$&[!`!a$'f!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$&g_#s(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$'qa#r(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`!a$(v!a#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$)R`#r(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(Kd$*`a(r(Ct$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!a%Z!a!b$+e!b#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$+p`$i&j#{(Ch(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z%#`$,}_!|$Ip$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z04f$.X_!S0,v$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(n$/]Z$i&jO!^$0O!^!_$0f!_#i$0O#i#j$0k#j#l$0O#l#m$2^#m#o$0O#o#p$0f#p;'S$0O;'S;=`$4i<%lO$0O(n$0VT_#S$i&jO!^&c!_#o&c#p;'S&c;'S;=`&w<%lO&c#S$0kO_#S(n$0p[$i&jO!Q&c!Q![$1f![!^&c!_!c&c!c!i$1f!i#T&c#T#Z$1f#Z#o&c#o#p$3|#p;'S&c;'S;=`&w<%lO&c(n$1kZ$i&jO!Q&c!Q![$2^![!^&c!_!c&c!c!i$2^!i#T&c#T#Z$2^#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$2cZ$i&jO!Q&c!Q![$3U![!^&c!_!c&c!c!i$3U!i#T&c#T#Z$3U#Z#o&c#p;'S&c;'S;=`&w<%lO&c(n$3ZZ$i&jO!Q&c!Q![$0O![!^&c!_!c&c!c!i$0O!i#T&c#T#Z$0O#Z#o&c#p;'S&c;'S;=`&w<%lO&c#S$4PR!Q![$4Y!c!i$4Y#T#Z$4Y#S$4]S!Q![$4Y!c!i$4Y#T#Z$4Y#q#r$0f(n$4lP;=`<%l$0O#1[$4z_!Y#)l$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z(KW$6U`#x(Ch$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z+;p$7c_$i&j(Wp(Z!b(a+4QOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$8qk$i&j(Wp(Z!b(T,2j$_#t(e$I[OY%ZYZ&cZr%Zrs&}st%Ztu$8buw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$8b![!^%Z!^!_*g!_!c%Z!c!}$8b!}#O%Z#O#P&c#P#R%Z#R#S$8b#S#T%Z#T#o$8b#o#p*g#p$g%Z$g;'S$8b;'S;=`$<l<%lO$8b+d$:qk$i&j(Wp(Z!b$_#tOY%ZYZ&cZr%Zrs&}st%Ztu$:fuw%Zwx(rx}%Z}!O$:f!O!Q%Z!Q![$:f![!^%Z!^!_*g!_!c%Z!c!}$:f!}#O%Z#O#P&c#P#R%Z#R#S$:f#S#T%Z#T#o$:f#o#p*g#p$g%Z$g;'S$:f;'S;=`$<f<%lO$:f+d$<iP;=`<%l$:f07[$<oP;=`<%l$8b#Jf$<{X!_#Hb(Wp(Z!bOY*gZr*grs'}sw*gwx)rx#O*g#P;'S*g;'S;=`+Z<%lO*g,#x$=sa(y+JY$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_!`Ka!`#O%Z#O#P&c#P#o%Z#o#p*g#p#q$+e#q;'S%Z;'S;=`+a<%lO%Z)>v$?V_!^(CdvBr$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z?O$@a_!q7`$i&j(Wp(Z!bOY%ZYZ&cZr%Zrs&}sw%Zwx(rx!^%Z!^!_*g!_#O%Z#O#P&c#P#o%Z#o#p*g#p;'S%Z;'S;=`+a<%lO%Z07[$Aq|$i&j(Wp(Z!b'|0/l$]#t(T,2j(e$I[OX%ZXY+gYZ&cZ[+g[p%Zpq+gqr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$f%Z$f$g+g$g#BYEr#BY#BZ$A`#BZ$ISEr$IS$I_$A`$I_$JTEr$JT$JU$A`$JU$KVEr$KV$KW$A`$KW&FUEr&FU&FV$A`&FV;'SEr;'S;=`I|<%l?HTEr?HT?HU$A`?HUOEr07[$D|k$i&j(Wp(Z!b'}0/l$]#t(T,2j(e$I[OY%ZYZ&cZr%Zrs&}st%ZtuEruw%Zwx(rx}%Z}!OGv!O!Q%Z!Q![Er![!^%Z!^!_*g!_!c%Z!c!}Er!}#O%Z#O#P&c#P#R%Z#R#SEr#S#T%Z#T#oEr#o#p*g#p$g%Z$g;'SEr;'S;=`I|<%lOEr",tokenizers:[hA,dA,fA,mA,2,3,4,5,6,7,8,9,10,11,12,13,14,uA,new il("$S~RRtu[#O#Pg#S#T#|~_P#o#pb~gOx~~jVO#i!P#i#j!U#j#l!P#l#m!q#m;'S!P;'S;=`#v<%lO!P~!UO!U~~!XS!Q![!e!c!i!e#T#Z!e#o#p#Z~!hR!Q![!q!c!i!q#T#Z!q~!tR!Q![!}!c!i!}#T#Z!}~#QR!Q![!P!c!i!P#T#Z!P~#^R!Q![#g!c!i#g#T#Z#g~#jS!Q![#g!c!i#g#T#Z#g#q#r!P~#yP;=`<%l!P~$RO(c~~",141,340),new il("j~RQYZXz{^~^O(Q~~aP!P!Qd~iO(R~~",25,323)],topRules:{Script:[0,7],SingleExpression:[1,276],SingleClassItem:[2,277]},dialects:{jsx:0,ts:15175},dynamicPrecedences:{80:1,82:1,94:1,169:1,199:1},specialized:[{term:327,get:r=>gA[r]||-1},{term:343,get:r=>OA[r]||-1},{term:95,get:r=>vA[r]||-1}],tokenPrec:15201}),V0=[Ft("function ${name}(${params}) {\n ${}\n}",{label:"function",detail:"definition",type:"keyword"}),Ft("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n ${}\n}",{label:"for",detail:"loop",type:"keyword"}),Ft("for (let ${name} of ${collection}) {\n ${}\n}",{label:"for",detail:"of loop",type:"keyword"}),Ft("do {\n ${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),Ft("while (${}) {\n ${}\n}",{label:"while",detail:"loop",type:"keyword"}),Ft(`try {
|
|
28
|
+
\${}
|
|
29
|
+
} catch (\${error}) {
|
|
30
|
+
\${}
|
|
31
|
+
}`,{label:"try",detail:"/ catch block",type:"keyword"}),Ft("if (${}) {\n ${}\n}",{label:"if",detail:"block",type:"keyword"}),Ft(`if (\${}) {
|
|
32
|
+
\${}
|
|
33
|
+
} else {
|
|
34
|
+
\${}
|
|
35
|
+
}`,{label:"if",detail:"/ else block",type:"keyword"}),Ft(`class \${name} {
|
|
36
|
+
constructor(\${params}) {
|
|
37
|
+
\${}
|
|
38
|
+
}
|
|
39
|
+
}`,{label:"class",detail:"definition",type:"keyword"}),Ft('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),Ft('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],xA=V0.concat([Ft("interface ${name} {\n ${}\n}",{label:"interface",detail:"definition",type:"keyword"}),Ft("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),Ft("enum ${name} {\n ${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),km=new _g,z0=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function Mi(r){return(e,t)=>{let n=e.node.getChild("VariableDefinition");return n&&t(n,r),!0}}const yA=["FunctionDeclaration"],kA={FunctionDeclaration:Mi("function"),ClassDeclaration:Mi("class"),ClassExpression:()=>!0,EnumDeclaration:Mi("constant"),TypeAliasDeclaration:Mi("type"),NamespaceDeclaration:Mi("namespace"),VariableDefinition(r,e){r.matchContext(yA)||e(r,"variable")},TypeDefinition(r,e){e(r,"type")},__proto__:null};function N0(r,e){let t=km.get(e);if(t)return t;let n=[],s=!0;function i(o,a){let l=r.sliceString(o.from,o.to);n.push({label:l,type:a})}return e.cursor(nt.IncludeAnonymous).iterate(o=>{if(s)s=!1;else if(o.name){let a=kA[o.name];if(a&&a(o,i)||z0.has(o.name))return!1}else if(o.to-o.from>8192){for(let a of N0(r,o.node))n.push(a);return!1}}),km.set(e,n),n}const wm=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,W0=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName","JSXText","JSXAttributeValue","JSXOpenTag","JSXCloseTag","JSXSelfClosingTag",".","?."];function wA(r){let e=ct(r.state).resolveInner(r.pos,-1);if(W0.indexOf(e.name)>-1)return null;let t=e.name=="VariableName"||e.to-e.from<20&&wm.test(r.state.sliceDoc(e.from,e.to));if(!t&&!r.explicit)return null;let n=[];for(let s=e;s;s=s.parent)z0.has(s.name)&&(n=n.concat(N0(r.state.doc,s)));return{options:n,from:t?e.from:r.pos,validFor:wm}}const en=Ys.define({name:"javascript",parser:bA.configure({props:[Co.add({IfStatement:ya({except:/^\s*({|else\b)/}),TryStatement:ya({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:dQ,SwitchBody:r=>{let e=r.textAfter,t=/^\s*\}/.test(e),n=/^\s*(case|default)\b/.test(e);return r.baseIndent+(t?0:n?1:2)*r.unit},Block:hQ({closing:"}"}),ArrowFunction:r=>r.baseIndent+r.unit,"TemplateString BlockComment":()=>null,"Statement Property":ya({except:/^\s*{/}),JSXElement(r){let e=/^\s*<\//.test(r.textAfter);return r.lineIndent(r.node.from)+(e?0:r.unit)},JSXEscape(r){let e=/\s*\}/.test(r.textAfter);return r.lineIndent(r.node.from)+(e?0:r.unit)},"JSXOpenTag JSXSelfClosingTag"(r){return r.column(r.node.from)+r.unit}}),ti.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":Ig,BlockComment(r){return{from:r.from+2,to:r.to-2}}})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),q0={test:r=>/^JSX/.test(r.name),facet:oh({commentTokens:{block:{open:"{/*",close:"*/}"}}})},j0=en.configure({dialect:"ts"},"typescript"),Y0=en.configure({dialect:"jsx",props:[ah.add(r=>r.isTop?[q0]:void 0)]}),F0=en.configure({dialect:"jsx ts",props:[ah.add(r=>r.isTop?[q0]:void 0)]},"typescript");let U0=r=>({label:r,type:"keyword"});const G0="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map(U0),SA=G0.concat(["declare","implements","private","protected","public"].map(U0));function $A(r={}){let e=r.jsx?r.typescript?F0:Y0:r.typescript?j0:en,t=r.typescript?xA.concat(SA):V0.concat(G0);return new ro(e,[en.data.of({autocomplete:R3(W0,IO(t))}),en.data.of({autocomplete:wA}),r.jsx?PA:[]])}function CA(r){for(;;){if(r.name=="JSXOpenTag"||r.name=="JSXSelfClosingTag"||r.name=="JSXFragmentTag")return r;if(r.name=="JSXEscape"||!r.parent)return null;r=r.parent}}function Sm(r,e,t=r.length){for(let n=e?.firstChild;n;n=n.nextSibling)if(n.name=="JSXIdentifier"||n.name=="JSXBuiltin"||n.name=="JSXNamespacedName"||n.name=="JSXMemberExpression")return r.sliceString(n.from,Math.min(n.to,t));return""}const QA=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),PA=ke.inputHandler.of((r,e,t,n,s)=>{if((QA?r.composing:r.compositionStarted)||r.state.readOnly||e!=t||n!=">"&&n!="/"||!en.isActiveAt(r.state,e,-1))return!1;let i=s(),{state:o}=i,a=o.changeByRange(l=>{var c;let{head:u}=l,h=ct(o).resolveInner(u-1,-1),f;if(h.name=="JSXStartTag"&&(h=h.parent),!(o.doc.sliceString(u-1,u)!=n||h.name=="JSXAttributeValue"&&h.to>u)){if(n==">"&&h.name=="JSXFragmentTag")return{range:l,changes:{from:u,insert:"</>"}};if(n=="/"&&h.name=="JSXStartCloseTag"){let m=h.parent,g=m.parent;if(g&&m.from==u-2&&((f=Sm(o.doc,g.firstChild,u))||((c=g.firstChild)===null||c===void 0?void 0:c.name)=="JSXFragmentTag")){let O=`${f}>`;return{range:J.cursor(u+O.length,-1),changes:{from:u,insert:O}}}}else if(n==">"){let m=CA(h);if(m&&m.name=="JSXOpenTag"&&!/^\/?>|^<\//.test(o.doc.sliceString(u,u+2))&&(f=Sm(o.doc,m,u)))return{range:l,changes:{from:u,insert:`</${f}>`}}}}return{range:l}});return a.changes.empty?!1:(r.dispatch([i,o.update(a,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),Ai=["_blank","_self","_top","_parent"],dc=["ascii","utf-8","utf-16","latin1","latin1"],fc=["get","post","put","delete"],mc=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],ar=["true","false"],De={},TA={a:{attrs:{href:null,ping:null,type:null,media:null,target:Ai,hreflang:null}},abbr:De,address:De,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:De,aside:De,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:De,base:{attrs:{href:null,target:Ai}},bdi:De,bdo:De,blockquote:{attrs:{cite:null}},body:De,br:De,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:mc,formmethod:fc,formnovalidate:["novalidate"],formtarget:Ai,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:De,center:De,cite:De,code:De,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:De,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:De,div:De,dl:De,dt:De,em:De,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:De,figure:De,footer:De,form:{attrs:{action:null,name:null,"accept-charset":dc,autocomplete:["on","off"],enctype:mc,method:fc,novalidate:["novalidate"],target:Ai}},h1:De,h2:De,h3:De,h4:De,h5:De,h6:De,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:De,hgroup:De,hr:De,html:{attrs:{manifest:null}},i:De,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:mc,formmethod:fc,formnovalidate:["novalidate"],formtarget:Ai,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:De,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:De,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:De,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:dc,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:De,noscript:De,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:De,param:{attrs:{name:null,value:null}},pre:De,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:De,rt:De,ruby:De,samp:De,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:dc}},section:De,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:De,source:{attrs:{src:null,type:null,media:null}},span:De,strong:De,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:De,summary:De,sup:De,table:De,tbody:De,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:De,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:De,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:De,time:{attrs:{datetime:null}},title:De,tr:De,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:De,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:De},H0={accesskey:null,class:null,contenteditable:ar,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:ar,autocorrect:ar,autocapitalize:ar,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":ar,"aria-autocomplete":["inline","list","both","none"],"aria-busy":ar,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":ar,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":ar,"aria-hidden":ar,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":ar,"aria-multiselectable":ar,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":ar,"aria-relevant":null,"aria-required":ar,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},K0="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map(r=>"on"+r);for(let r of K0)H0[r]=null;class mo{constructor(e,t){this.tags={...TA,...e},this.globalAttrs={...H0,...t},this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}mo.default=new mo;function Ks(r,e,t=r.length){if(!e)return"";let n=e.firstChild,s=n&&n.getChild("TagName");return s?r.sliceString(s.from,Math.min(s.to,t)):""}function Js(r,e=!1){for(;r;r=r.parent)if(r.name=="Element")if(e)e=!1;else return r;return null}function J0(r,e,t){let n=t.tags[Ks(r,Js(e))];return n?.children||t.allTags}function Bh(r,e){let t=[];for(let n=Js(e);n&&!n.type.isTop;n=Js(n.parent)){let s=Ks(r,n);if(s&&n.lastChild.name=="CloseTag")break;s&&t.indexOf(s)<0&&(e.name=="EndTag"||e.from>=n.firstChild.to)&&t.push(s)}return t}const e1=/^[:\-\.\w\u00b7-\uffff]*$/;function $m(r,e,t,n,s){let i=/\s*>/.test(r.sliceDoc(s,s+5))?"":">",o=Js(t,t.name=="StartTag"||t.name=="TagName");return{from:n,to:s,options:J0(r.doc,o,e).map(a=>({label:a,type:"type"})).concat(Bh(r.doc,t).map((a,l)=>({label:"/"+a,apply:"/"+a+i,type:"type",boost:99-l}))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function Cm(r,e,t,n){let s=/\s*>/.test(r.sliceDoc(n,n+5))?"":">";return{from:t,to:n,options:Bh(r.doc,e).map((i,o)=>({label:i,apply:i+s,type:"type",boost:99-o})),validFor:e1}}function MA(r,e,t,n){let s=[],i=0;for(let o of J0(r.doc,t,e))s.push({label:"<"+o,type:"type"});for(let o of Bh(r.doc,t))s.push({label:"</"+o+">",type:"type",boost:99-i++});return{from:n,to:n,options:s,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}function AA(r,e,t,n,s){let i=Js(t),o=i?e.tags[Ks(r.doc,i)]:null,a=o&&o.attrs?Object.keys(o.attrs):[],l=o&&o.globalAttrs===!1?a:a.length?a.concat(e.globalAttrNames):e.globalAttrNames;return{from:n,to:s,options:l.map(c=>({label:c,type:"property"})),validFor:e1}}function _A(r,e,t,n,s){var i;let o=(i=t.parent)===null||i===void 0?void 0:i.getChild("AttributeName"),a=[],l;if(o){let c=r.sliceDoc(o.from,o.to),u=e.globalAttrs[c];if(!u){let h=Js(t),f=h?e.tags[Ks(r.doc,h)]:null;u=f?.attrs&&f.attrs[c]}if(u){let h=r.sliceDoc(n,s).toLowerCase(),f='"',m='"';/^['"]/.test(h)?(l=h[0]=='"'?/^[^"]*$/:/^[^']*$/,f="",m=r.sliceDoc(s,s+1)==h[0]?"":h[0],h=h.slice(1),n++):l=/^[^\s<>='"]*$/;for(let g of u)a.push({label:g,apply:f+g+m,type:"constant"})}}return{from:n,to:s,options:a,validFor:l}}function t1(r,e){let{state:t,pos:n}=e,s=ct(t).resolveInner(n,-1),i=s.resolve(n);for(let o=n,a;i==s&&(a=s.childBefore(o));){let l=a.lastChild;if(!l||!l.type.isError||l.from<l.to)break;i=s=a,o=l.from}return s.name=="TagName"?s.parent&&/CloseTag$/.test(s.parent.name)?Cm(t,s,s.from,n):$m(t,r,s,s.from,n):s.name=="StartTag"||s.name=="IncompleteTag"?$m(t,r,s,n,n):s.name=="StartCloseTag"||s.name=="IncompleteCloseTag"?Cm(t,s,n,n):s.name=="OpenTag"||s.name=="SelfClosingTag"||s.name=="AttributeName"?AA(t,r,s,s.name=="AttributeName"?s.from:n,n):s.name=="Is"||s.name=="AttributeValue"||s.name=="UnquotedAttributeValue"?_A(t,r,s,s.name=="Is"?n:s.from,n):e.explicit&&(i.name=="Element"||i.name=="Text"||i.name=="Document")?MA(t,r,s,n):null}function RA(r){return t1(mo.default,r)}function BA(r){let{extraTags:e,extraGlobalAttributes:t}=r,n=t||e?new mo(e,t):mo.default;return s=>t1(n,s)}const DA=en.parser.configure({top:"SingleExpression"}),r1=[{tag:"script",attrs:r=>r.type=="text/typescript"||r.lang=="ts",parser:j0.parser},{tag:"script",attrs:r=>r.type=="text/babel"||r.type=="text/jsx",parser:Y0.parser},{tag:"script",attrs:r=>r.type=="text/typescript-jsx",parser:F0.parser},{tag:"script",attrs(r){return/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(r.type)},parser:DA},{tag:"script",attrs(r){return!r.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(r.type)},parser:en.parser},{tag:"style",attrs(r){return(!r.lang||r.lang=="css")&&(!r.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(r.type))},parser:al.parser}],n1=[{name:"style",parser:al.parser.configure({top:"Styles"})}].concat(K0.map(r=>({name:r,parser:en.parser}))),s1=Ys.define({name:"html",parser:o4.configure({props:[Co.add({Element(r){let e=/^(\s*)(<\/)?/.exec(r.textAfter);return r.node.to<=r.pos+e[0].length?r.continue():r.lineIndent(r.node.from)+(e[2]?0:r.unit)},"OpenTag CloseTag SelfClosingTag"(r){return r.column(r.node.from)+r.unit},Document(r){if(r.pos+/\s*/.exec(r.textAfter)[0].length<r.node.to)return r.continue();let e=null,t;for(let n=r.node;;){let s=n.lastChild;if(!s||s.name!="Element"||s.to!=n.to)break;e=n=s}return e&&!((t=e.lastChild)&&(t.name=="CloseTag"||t.name=="SelfClosingTag"))?r.lineIndent(e.from)+r.unit:null}}),ti.add({Element(r){let e=r.firstChild,t=r.lastChild;return!e||e.name!="OpenTag"?null:{from:e.to,to:t.name=="CloseTag"?t.from:r.to}}}),Jg.add({"OpenTag CloseTag":r=>r.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"<!--",close:"-->"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-_"}}),Sa=s1.configure({wrap:B0(r1,n1)});function ZA(r={}){let e="",t;r.matchClosingTags===!1&&(e="noMatch"),r.selfClosingTags===!0&&(e=(e?e+" ":"")+"selfClosing"),(r.nestedLanguages&&r.nestedLanguages.length||r.nestedAttributes&&r.nestedAttributes.length)&&(t=B0((r.nestedLanguages||[]).concat(r1),(r.nestedAttributes||[]).concat(n1)));let n=t?s1.configure({wrap:t,dialect:e}):e?Sa.configure({dialect:e}):Sa;return new ro(n,[Sa.data.of({autocomplete:BA(r)}),r.autoCloseTags!==!1?EA:[],$A().support,z4().support])}const Qm=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),EA=ke.inputHandler.of((r,e,t,n,s)=>{if(r.composing||r.state.readOnly||e!=t||n!=">"&&n!="/"||!Sa.isActiveAt(r.state,e,-1))return!1;let i=s(),{state:o}=i,a=o.changeByRange(l=>{var c,u,h;let f=o.doc.sliceString(l.from-1,l.to)==n,{head:m}=l,g=ct(o).resolveInner(m,-1),O;if(f&&n==">"&&g.name=="EndTag"){let b=g.parent;if(((u=(c=b.parent)===null||c===void 0?void 0:c.lastChild)===null||u===void 0?void 0:u.name)!="CloseTag"&&(O=Ks(o.doc,b.parent,m))&&!Qm.has(O)){let x=m+(o.doc.sliceString(m,m+1)===">"?1:0),w=`</${O}>`;return{range:l,changes:{from:m,to:x,insert:w}}}}else if(f&&n=="/"&&g.name=="IncompleteCloseTag"){let b=g.parent;if(g.from==m-2&&((h=b.lastChild)===null||h===void 0?void 0:h.name)!="CloseTag"&&(O=Ks(o.doc,b,m))&&!Qm.has(O)){let x=m+(o.doc.sliceString(m,m+1)===">"?1:0),w=`${O}>`;return{range:J.cursor(m+w.length,-1),changes:{from:m,to:x,insert:w}}}}return{range:l}});return a.changes.empty?!1:(r.dispatch([i,o.update(a,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}),i1=oh({commentTokens:{block:{open:"<!--",close:"-->"}}}),o1=new We,a1=eM.configure({props:[ti.add(r=>!r.is("Block")||r.is("Document")||Su(r)!=null||LA(r)?void 0:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})),o1.add(Su),Co.add({Document:()=>null}),ns.add({Document:i1})]});function Su(r){let e=/^(?:ATX|Setext)Heading(\d)$/.exec(r.name);return e?+e[1]:void 0}function LA(r){return r.name=="OrderedList"||r.name=="BulletList"}function XA(r,e){let t=r;for(;;){let n=t.nextSibling,s;if(!n||(s=Su(n.type))!=null&&s<=e)break;t=n}return t.to}const IA=Xg.of((r,e,t)=>{for(let n=ct(r).resolveInner(t,-1);n&&!(n.from<e);n=n.parent){let s=n.type.prop(o1);if(s==null)continue;let i=XA(n,s);if(i>t)return{from:t,to:i}}return null});function Dh(r){return new wr(i1,r,[],"markdown")}const VA=Dh(a1),zA=a1.configure([hM,fM,dM,mM,{props:[ti.add({Table:(r,e)=>({from:e.doc.lineAt(r.from).to,to:r.to})})]}]),ll=Dh(zA);function NA(r,e){return t=>{if(t&&r){let n=null;if(t=/\S*/.exec(t)[0],typeof r=="function"?n=r(t):n=Na.matchLanguageName(r,t,!0),n instanceof Na)return n.support?n.support.language.parser:to.getSkippingParser(n.load());if(n)return n.parser}return e?e.parser:null}}class pc{constructor(e,t,n,s,i,o,a){this.node=e,this.from=t,this.to=n,this.spaceBefore=s,this.spaceAfter=i,this.type=o,this.item=a}blank(e,t=!0){let n=this.spaceBefore+(this.node.name=="Blockquote"?">":"");if(e!=null){for(;n.length<e;)n+=" ";return n}else{for(let s=this.to-this.from-n.length-this.spaceAfter.length;s>0;s--)n+=" ";return n+(t?this.spaceAfter:"")}}marker(e,t){let n=this.node.name=="OrderedList"?String(+c1(this.item,e)[2]+t):"";return this.spaceBefore+n+this.type+this.spaceAfter}}function l1(r,e){let t=[],n=[];for(let s=r;s;s=s.parent){if(s.name=="FencedCode")return n;(s.name=="ListItem"||s.name=="Blockquote")&&t.push(s)}for(let s=t.length-1;s>=0;s--){let i=t[s],o,a=e.lineAt(i.from),l=i.from-a.from;if(i.name=="Blockquote"&&(o=/^ *>( ?)/.exec(a.text.slice(l))))n.push(new pc(i,l,l+o[0].length,"",o[1],">",null));else if(i.name=="ListItem"&&i.parent.name=="OrderedList"&&(o=/^( *)\d+([.)])( *)/.exec(a.text.slice(l)))){let c=o[3],u=o[0].length;c.length>=4&&(c=c.slice(0,c.length-4),u-=4),n.push(new pc(i.parent,l,l+u,o[1],c,o[2],i))}else if(i.name=="ListItem"&&i.parent.name=="BulletList"&&(o=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(a.text.slice(l)))){let c=o[4],u=o[0].length;c.length>4&&(c=c.slice(0,c.length-4),u-=4);let h=o[2];o[3]&&(h+=o[3].replace(/[xX]/," ")),n.push(new pc(i.parent,l,l+u,o[1],c,h,i))}}return n}function c1(r,e){return/^(\s*)(\d+)(?=[.)])/.exec(e.sliceString(r.from,r.from+10))}function gc(r,e,t,n=0){for(let s=-1,i=r;;){if(i.name=="ListItem"){let a=c1(i,e),l=+a[2];if(s>=0){if(l!=s+1)return;t.push({from:i.from+a[1].length,to:i.from+a[0].length,insert:String(s+2+n)})}s=l}let o=i.nextSibling;if(!o)break;i=o}}function Zh(r,e){let t=/^[ \t]*/.exec(r)[0].length;if(!t||e.facet($o)!=" ")return r;let n=Rr(r,4,t),s="";for(let i=n;i>0;)i>=4?(s+=" ",i-=4):(s+=" ",i--);return s+r.slice(t)}const WA=(r={})=>({state:e,dispatch:t})=>{let n=ct(e),{doc:s}=e,i=null,o=e.changeByRange(a=>{if(!a.empty||!ll.isActiveAt(e,a.from,-1)&&!ll.isActiveAt(e,a.from,1))return i={range:a};let l=a.from,c=s.lineAt(l),u=l1(n.resolveInner(l,-1),s);for(;u.length&&u[u.length-1].from>l-c.from;)u.pop();if(!u.length)return i={range:a};let h=u[u.length-1];if(h.to-h.spaceAfter.length>l-c.from)return i={range:a};let f=l>=h.to-h.spaceAfter.length&&!/\S/.test(c.text.slice(h.to));if(h.item&&f){let x=h.node.firstChild,w=h.node.getChild("ListItem","ListItem");if(x.to>=l||w&&w.to<l||c.from>0&&!/[^\s>]/.test(s.lineAt(c.from-1).text)||r.nonTightLists===!1){let S=u.length>1?u[u.length-2]:null,C,_="";S&&S.item?(C=c.from+S.from,_=S.marker(s,1)):C=c.from+(S?S.to:0);let I=[{from:C,to:l,insert:_}];return h.node.name=="OrderedList"&&gc(h.item,s,I,-2),S&&S.node.name=="OrderedList"&&gc(S.item,s,I),{range:J.cursor(C+_.length),changes:I}}else{let S=Tm(u,e,c);return{range:J.cursor(l+S.length+1),changes:{from:c.from,insert:S+e.lineBreak}}}}if(h.node.name=="Blockquote"&&f&&c.from){let x=s.lineAt(c.from-1),w=/>\s*$/.exec(x.text);if(w&&w.index==h.from){let S=e.changes([{from:x.from+w.index,to:x.to},{from:c.from+h.from,to:c.to}]);return{range:a.map(S),changes:S}}}let m=[];h.node.name=="OrderedList"&&gc(h.item,s,m);let g=h.item&&h.item.from<c.from,O="";if(!g||/^[\s\d.)\-+*>]*/.exec(c.text)[0].length>=h.to)for(let x=0,w=u.length-1;x<=w;x++)O+=x==w&&!g?u[x].marker(s,1):u[x].blank(x<w?Rr(c.text,4,u[x+1].from)-O.length:null);let b=l;for(;b>c.from&&/\s/.test(c.text.charAt(b-c.from-1));)b--;return O=Zh(O,e),jA(h.node,e.doc)&&(O=Tm(u,e,c)+e.lineBreak+O),m.push({from:b,to:l,insert:e.lineBreak+O}),{range:J.cursor(b+O.length+1),changes:m}});return i?!1:(t(e.update(o,{scrollIntoView:!0,userEvent:"input"})),!0)},qA=WA();function Pm(r){return r.name=="QuoteMark"||r.name=="ListMark"}function jA(r,e){if(r.name!="OrderedList"&&r.name!="BulletList")return!1;let t=r.firstChild,n=r.getChild("ListItem","ListItem");if(!n)return!1;let s=e.lineAt(t.to),i=e.lineAt(n.from),o=/^[\s>]*$/.test(s.text);return s.number+(o?0:1)<i.number}function Tm(r,e,t){let n="";for(let s=0,i=r.length-2;s<=i;s++)n+=r[s].blank(s<i?Rr(t.text,4,r[s+1].from)-n.length:null,s<i);return Zh(n,e)}function YA(r,e){let t=r.resolveInner(e,-1),n=e;Pm(t)&&(n=t.from,t=t.parent);for(let s;s=t.childBefore(n);)if(Pm(s))n=s.from;else if(s.name=="OrderedList"||s.name=="BulletList")t=s.lastChild,n=t.to;else break;return t}const FA=({state:r,dispatch:e})=>{let t=ct(r),n=null,s=r.changeByRange(i=>{let o=i.from,{doc:a}=r;if(i.empty&&ll.isActiveAt(r,i.from)){let l=a.lineAt(o),c=l1(YA(t,o),a);if(c.length){let u=c[c.length-1],h=u.to-u.spaceAfter.length+(u.spaceAfter?1:0);if(o-l.from>h&&!/\S/.test(l.text.slice(h,o-l.from)))return{range:J.cursor(l.from+h),changes:{from:l.from+h,to:o}};if(o-l.from==h&&(!u.item||l.from<=u.item.from||!/\S/.test(l.text.slice(0,u.to)))){let f=l.from+u.from;if(u.item&&u.node.from<u.item.from&&/\S/.test(l.text.slice(u.from,u.to))){let m=u.blank(Rr(l.text,4,u.to)-Rr(l.text,4,u.from));return f==l.from&&(m=Zh(m,r)),{range:J.cursor(f+m.length),changes:{from:f,to:l.from+u.to,insert:m}}}if(f<o)return{range:J.cursor(f),changes:{from:f,to:o}}}}}return n={range:i}});return n?!1:(e(r.update(s,{scrollIntoView:!0,userEvent:"delete"})),!0)},UA=[{key:"Enter",run:qA},{key:"Backspace",run:FA}],u1=ZA({matchClosingTags:!1});function GA(r={}){let{codeLanguages:e,defaultCodeLanguage:t,addKeymap:n=!0,base:{parser:s}=VA,completeHTMLTags:i=!0,pasteURLAsLink:o=!0,htmlTagLanguage:a=u1}=r;if(!(s instanceof Ql))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");let l=r.extensions?[r.extensions]:[],c=[a.support,IA],u;o&&c.push(e_),t instanceof ro?(c.push(t.support),u=t.language):t&&(u=t);let h=e||u?NA(e,u):void 0;l.push(rM({codeParser:h,htmlParser:a.language.parser})),n&&c.push(bn.high(ko.of(UA)));let f=Dh(s.configure(l));return i&&c.push(f.data.of({autocomplete:HA})),new ro(f,c)}function HA(r){let{state:e,pos:t}=r,n=/<[:\-\.\w\u00b7-\uffff]*$/.exec(e.sliceDoc(t-25,t));if(!n)return null;let s=ct(e).resolveInner(t,-1);for(;s&&!s.type.isTop;){if(s.name=="CodeBlock"||s.name=="FencedCode"||s.name=="ProcessingInstructionBlock"||s.name=="CommentBlock"||s.name=="Link"||s.name=="Image")return null;s=s.parent}return{from:t-n[0].length,to:t,options:KA(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let Oc=null;function KA(){if(Oc)return Oc;let r=RA(new Oh(Ke.create({extensions:u1}),0,!0));return Oc=r?r.options:[]}const JA=/code|horizontalrule|html|link|comment|processing|escape|entity|image|mark|url/i,e_=ke.domEventHandlers({paste:(r,e)=>{var t;let{main:n}=e.state.selection;if(n.empty)return!1;let s=(t=r.clipboardData)===null||t===void 0?void 0:t.getData("text/plain");if(!s||!/^(https?:\/\/|mailto:|xmpp:|www\.)/.test(s)||(/^www\./.test(s)&&(s="https://"+s),!ll.isActiveAt(e.state,n.from,1)))return!1;let i=ct(e.state),o=!1;return i.iterate({from:n.from,to:n.to,enter:a=>{(a.from>n.from||JA.test(a.name))&&(o=!0)},leave:a=>{a.to<n.to&&(o=!0)}}),o?!1:(e.dispatch({changes:[{from:n.from,insert:"["},{from:n.to,insert:`](${s})`}],userEvent:"input.paste",scrollIntoView:!0}),!0)}}),t_="#e5c07b",Mm="#e06c75",r_="#56b6c2",n_="#ffffff",$a="#abb2bf",$u="#7d8799",s_="#61afef",i_="#98c379",Am="#d19a66",o_="#c678dd",a_="#21252b",_m="#2c313a",Rm="#282c34",vc="#353a42",l_="#3E4451",Bm="#528bff",c_=ke.theme({"&":{color:$a,backgroundColor:Rm},".cm-content":{caretColor:Bm},".cm-cursor, .cm-dropCursor":{borderLeftColor:Bm},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:l_},".cm-panels":{backgroundColor:a_,color:$a},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:Rm,color:$u,border:"none"},".cm-activeLineGutter":{backgroundColor:_m},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:vc},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:vc,borderBottomColor:vc},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:_m,color:$a}}},{dark:!0}),u_=Po.define([{tag:$.keyword,color:o_},{tag:[$.name,$.deleted,$.character,$.propertyName,$.macroName],color:Mm},{tag:[$.function($.variableName),$.labelName],color:s_},{tag:[$.color,$.constant($.name),$.standard($.name)],color:Am},{tag:[$.definition($.name),$.separator],color:$a},{tag:[$.typeName,$.className,$.number,$.changed,$.annotation,$.modifier,$.self,$.namespace],color:t_},{tag:[$.operator,$.operatorKeyword,$.url,$.escape,$.regexp,$.link,$.special($.string)],color:r_},{tag:[$.meta,$.comment],color:$u},{tag:$.strong,fontWeight:"bold"},{tag:$.emphasis,fontStyle:"italic"},{tag:$.strikethrough,textDecoration:"line-through"},{tag:$.link,color:$u,textDecoration:"underline"},{tag:$.heading,fontWeight:"bold",color:Mm},{tag:[$.atom,$.bool,$.special($.variableName)],color:Am},{tag:[$.processingInstruction,$.string,$.inserted],color:i_},{tag:$.invalid,color:n_}]),h_=[c_,Ug(u_)],d_=Xe({__name:"MarkdownCodeEditor",props:{modelValue:{},readOnly:{type:Boolean,default:!1},lineToReveal:{default:null}},emits:["update:modelValue"],setup(r,{emit:e}){const t=r,n=e,s=Q(null);let i=null,o=!1,a=null;const l=ze.define(),c=ze.define(),u=Pt.define({create(){return Ee.none},update(g,O){let b=g.map(O.changes);for(const x of O.effects)if(x.is(c)&&(b=Ee.none),x.is(l)){const w=Math.max(1,Math.min(x.value,O.state.doc.lines)),S=O.state.doc.line(w);b=Ee.set([Ee.line({class:"cm-target-line"}).range(S.from)])}return b},provide:g=>ke.decorations.from(g)});function h(){i&&(a&&clearTimeout(a),a=setTimeout(()=>{i&&i.dispatch({effects:c.of(void 0)})},1600))}function f(g){if(!i)return;const O=Math.max(1,Math.min(g,i.state.doc.lines)),b=i.state.doc.line(O);i.dispatch({selection:{anchor:b.from},effects:[ke.scrollIntoView(b.from,{y:"center"}),l.of(O)]}),i.focus(),h()}function m(g,O){return Ke.create({doc:g,extensions:[zT,GA(),h_,ke.lineWrapping,u,ke.updateListener.of(b=>{!b.docChanged||o||n("update:modelValue",b.state.doc.toString())}),ke.theme({"&":{height:"100%",fontFamily:"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace",fontSize:"13px",backgroundColor:"rgb(var(--color-retro-black))",color:"rgb(var(--color-retro-text))"},".cm-scroller":{overflow:"auto",lineHeight:"1.6"},".cm-gutters":{backgroundColor:"rgb(var(--color-retro-dark))",color:"rgb(var(--color-retro-subtle))",borderRight:"1px solid rgb(var(--color-retro-border))"},".cm-content":{caretColor:"rgb(var(--color-retro-cyan))",padding:"12px 0"},".cm-activeLine":{backgroundColor:"rgba(34, 211, 238, 0.08)"},".cm-selectionBackground, &.cm-focused .cm-selectionBackground":{backgroundColor:"rgba(34, 211, 238, 0.22)"}}),Ke.readOnly.of(O)]})}return mt(()=>{s.value&&(i=new ke({state:m(t.modelValue,t.readOnly),parent:s.value}),t.lineToReveal&&f(t.lineToReveal))}),Ve(()=>t.modelValue,g=>{if(!i)return;const O=i.state.doc.toString();O!==g&&(o=!0,i.dispatch({changes:{from:0,to:O.length,insert:g}}),o=!1)}),Ve(()=>t.lineToReveal,g=>{g&&f(g)}),T1(()=>{a&&clearTimeout(a),i&&(i.destroy(),i=null)}),(g,O)=>(v(),y("div",{ref_key:"rootRef",ref:s,class:"h-full w-full"},null,512))}}),f_=ps(d_,[["__scopeId","data-v-d77d4160"]]),m_={class:"fixed inset-0 z-50 flex items-center justify-center"},p_={class:"relative w-[96vw] h-[94vh] bg-retro-black border border-retro-border rounded-lg shadow-2xl flex flex-col overflow-hidden"},g_={class:"flex-shrink-0 flex items-center justify-between px-4 h-12 border-b border-retro-border bg-retro-dark"},O_={class:"flex items-center gap-3 min-w-0"},v_={class:"text-sm font-mono font-bold text-retro-cyan truncate"},b_={class:"text-xs font-mono text-retro-subtle"},x_={class:"flex items-center gap-2"},y_=["disabled"],k_={class:"flex-shrink-0 flex items-center gap-0 border-b border-retro-border bg-retro-dark overflow-x-auto"},w_=["onClick"],S_={class:"flex-1 min-h-0 overflow-y-auto"},$_={key:0,class:"p-5 max-w-6xl mx-auto"},C_={key:0,class:"flex items-center justify-center py-12"},Q_={key:1,class:"flex flex-col items-center justify-center py-12 text-center px-4"},P_={class:"text-sm font-mono text-retro-red"},T_={key:2,class:"space-y-4"},M_={key:0,class:"rounded border border-retro-cyan/40 bg-retro-cyan/10 px-3 py-2 text-xs font-mono text-retro-cyan"},A_={class:"grid grid-cols-2 lg:grid-cols-5 gap-2"},__={class:"rounded border border-retro-border bg-retro-panel px-3 py-2"},R_={class:"text-sm font-mono text-retro-text"},B_={class:"rounded border border-retro-border bg-retro-panel px-3 py-2"},D_={class:"text-sm font-mono text-retro-cyan"},Z_={class:"rounded border border-retro-border bg-retro-panel px-3 py-2"},E_={class:"text-sm font-mono text-retro-yellow"},L_={class:"rounded border border-retro-border bg-retro-panel px-3 py-2"},X_={class:"text-sm font-mono text-retro-green"},I_={class:"rounded border border-retro-border bg-retro-panel px-3 py-2"},V_={class:"text-sm font-mono text-retro-text"},z_={class:"rounded border border-retro-border bg-retro-panel px-3 py-3"},N_={class:"flex items-center justify-between gap-2 mb-2"},W_={class:"text-[11px] font-mono text-retro-subtle"},q_={key:0,class:"text-xs font-mono text-retro-green"},j_={key:1,class:"space-y-2"},Y_={class:"uppercase tracking-wide mr-2"},F_={class:"rounded border border-retro-border bg-retro-panel p-3 overflow-x-auto"},U_={class:"min-w-[760px]"},G_={class:"text-retro-text"},H_=["disabled","onClick"],K_=["disabled","onClick"],J_=["disabled","onClick"],eR={class:"text-retro-muted"},tR={key:1,class:"flex items-center justify-center py-12"},rR={key:2,class:"flex flex-col items-center justify-center py-12 text-center px-4"},nR={class:"text-sm font-mono text-retro-red"},sR={key:3,class:"flex flex-col items-center justify-center py-12 text-center"},iR={key:4,class:"h-full flex flex-col"},oR=["innerHTML"],aR=Xe({__name:"SpecViewerModal",props:{feature:{}},emits:["close"],setup(r,{emit:e}){const t=r,n=e,s=go(),{renderMarkdown:i}=zm(),o=Q(t.feature.files[0]?.filename||""),a=Q("document"),l=Q(""),c=Q(!1),u=Q(null),h=Q(!1),f=Q(""),m=Q(!1),g=Q(null),O=Q(null),b=Q(!1),x=Q(null),w=Q(null),S=H(()=>{const X={critical:0,major:1,minor:2};return[...w.value?.alerts??[]].sort((N,be)=>X[N.severity]-X[be.severity])});function C(X){return X.status==="covered"?"text-retro-green border-retro-green/40 bg-retro-green/10":X.status==="partial"?"text-retro-yellow border-retro-yellow/40 bg-retro-yellow/10":"text-retro-red border-retro-red/40 bg-retro-red/10"}function _(X){return X.severity==="critical"?"text-retro-red border-retro-red/40 bg-retro-red/10":X.severity==="major"?"text-retro-yellow border-retro-yellow/40 bg-retro-yellow/10":"text-retro-cyan border-retro-cyan/40 bg-retro-cyan/10"}async function I(){b.value=!0,x.value=null;try{w.value=await $fetch(`/api/specs/traceability/${t.feature.id}`)}catch{x.value="Failed to load traceability data",w.value=null}finally{b.value=!1}}async function V(X=o.value){if(X){c.value=!0,u.value=null;try{const N=`/api/specs/${t.feature.id}/${X}`,be=await $fetch(N);l.value=be.content}catch{u.value="Failed to load file",l.value=""}finally{c.value=!1}}}function re(){V()}const oe=H(()=>l.value?i(l.value):"");function Oe(X){O.value=null,a.value="document",h.value&&(h.value=!1),o.value=X,V()}function Y(){h.value&&j(),a.value="traceability",!w.value&&!b.value&&I()}async function L(X,N,be){N&&(o.value!==X?(o.value=X,await V(X)):l.value||await V(X),a.value="document",h.value=!0,f.value=l.value,g.value=null,O.value={filename:X,line:N,requirementId:be},await Wt(),g.value=N)}function D(){f.value=l.value,g.value=null,h.value=!0}function j(){h.value=!1,f.value=""}async function F(){m.value=!0;try{const X=`/api/specs/${t.feature.id}/${o.value}`;await $fetch(X,{method:"PUT",body:{content:f.value}}),l.value=f.value,h.value=!1,s.success("Saved")}catch{s.error("Failed to save")}finally{m.value=!1}}function z(X){X.key==="Escape"&&(h.value?j():n("close"))}return mt(()=>{window.addEventListener("keydown",z),V(),I()}),kt(()=>{window.removeEventListener("keydown",z)}),(X,N)=>{const be=f_;return v(),ge(Cr,{to:"body"},[d("div",m_,[d("div",{class:"absolute inset-0 bg-black/80",onClick:N[0]||(N[0]=G=>n("close"))}),d("div",p_,[d("div",g_,[d("div",O_,[d("span",v_,A(r.feature.name),1),d("span",b_,A(r.feature.id),1)]),d("div",x_,[p(h)?(v(),y(ye,{key:0},[d("button",{type:"button",class:"px-3 py-1 text-xs font-mono rounded border border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-muted transition-colors",onClick:j}," Cancel "),d("button",{type:"button",class:"px-3 py-1 text-xs font-mono rounded border border-retro-cyan text-retro-cyan hover:bg-retro-cyan/10 transition-colors disabled:opacity-50",disabled:p(m),onClick:F},A(p(m)?"Saving...":"Save"),9,y_)],64)):p(a)==="document"&&p(l)&&!p(c)&&!p(u)?(v(),y("button",{key:1,type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"Edit",onClick:D},[K(p(tp),{class:"h-4 w-4"})])):U("",!0),d("button",{type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-text hover:bg-retro-panel transition-colors",title:"Close (ESC)",onClick:N[1]||(N[1]=G=>n("close"))},[K(p(wt),{class:"h-4 w-4"})])])]),d("div",k_,[d("button",{type:"button",class:_e(["px-4 py-2 text-xs font-mono border-b-2 transition-colors whitespace-nowrap flex items-center gap-1",[p(a)==="traceability"?"border-retro-magenta text-retro-magenta bg-retro-black":"border-transparent text-retro-muted hover:text-retro-text hover:bg-retro-panel"]]),onClick:Y},[K(p(iv),{class:"h-3.5 w-3.5"}),N[3]||(N[3]=Le(" Traceability ",-1))],2),(v(!0),y(ye,null,Ne(r.feature.files,G=>(v(),y("button",{key:G.filename,type:"button",class:_e(["px-4 py-2 text-xs font-mono border-b-2 transition-colors whitespace-nowrap",[p(a)==="document"&&p(o)===G.filename?"border-retro-cyan text-retro-cyan bg-retro-black":"border-transparent text-retro-muted hover:text-retro-text hover:bg-retro-panel"]]),onClick:le=>Oe(G.filename)},A(G.label),11,w_))),128))]),d("div",S_,[p(a)==="traceability"?(v(),y("div",$_,[p(b)?(v(),y("div",C_,[...N[4]||(N[4]=[d("span",{class:"text-sm font-mono text-retro-muted animate-pulse"},"Loading traceability...",-1)])])):p(x)?(v(),y("div",Q_,[d("p",P_,A(p(x)),1),d("button",{type:"button",class:"mt-3 px-3 py-1.5 text-xs font-mono bg-retro-panel border border-retro-border rounded text-retro-muted hover:text-retro-cyan hover:border-retro-cyan transition-colors",onClick:I}," Retry ")])):p(w)?(v(),y("div",T_,[p(O)?(v(),y("div",M_," Jump target: "+A(p(O).requirementId)+" → "+A(p(O).filename)+":"+A(p(O).line),1)):U("",!0),d("div",A_,[d("div",__,[N[5]||(N[5]=d("p",{class:"text-[11px] font-mono text-retro-subtle"},"FR total",-1)),d("p",R_,A(p(w).summary.frTotal),1)]),d("div",B_,[N[6]||(N[6]=d("p",{class:"text-[11px] font-mono text-retro-subtle"},"Plan coverage",-1)),d("p",D_,A(p(w).summary.frWithPlan)+"/"+A(p(w).summary.frTotal),1)]),d("div",Z_,[N[7]||(N[7]=d("p",{class:"text-[11px] font-mono text-retro-subtle"},"Task mapping",-1)),d("p",E_,A(p(w).summary.frWithTasks)+"/"+A(p(w).summary.frTotal),1)]),d("div",L_,[N[8]||(N[8]=d("p",{class:"text-[11px] font-mono text-retro-subtle"},"Fully covered",-1)),d("p",X_,A(p(w).summary.frFullyCovered)+"/"+A(p(w).summary.frTotal),1)]),d("div",I_,[N[9]||(N[9]=d("p",{class:"text-[11px] font-mono text-retro-subtle"},"Task progress",-1)),d("p",V_,A(p(w).summary.taskCompleted)+"/"+A(p(w).summary.taskTotal),1)])]),d("div",z_,[d("div",N_,[N[10]||(N[10]=d("h3",{class:"text-xs font-mono text-retro-text"},"Gap Alerts",-1)),d("span",W_,A(p(S).length)+" issues",1)]),p(S).length===0?(v(),y("div",q_," No traceability gaps detected. ")):(v(),y("div",j_,[(v(!0),y(ye,null,Ne(p(S),G=>(v(),y("div",{key:G.id,class:_e(["rounded border px-2.5 py-2 text-xs font-mono",_(G)])},[d("span",Y_,A(G.severity),1),d("span",null,A(G.message),1)],2))),128))]))]),d("div",F_,[d("div",U_,[N[11]||(N[11]=d("div",{class:"grid grid-cols-[140px_1fr_1fr_1fr_120px] gap-2 text-[11px] font-mono text-retro-subtle px-2 pb-2 border-b border-retro-border"},[d("span",null,"Requirement"),d("span",null,"Spec"),d("span",null,"Plan"),d("span",null,"Tasks"),d("span",null,"Progress")],-1)),(v(!0),y(ye,null,Ne(p(w).requirements,G=>(v(),y("div",{key:G.id,class:"grid grid-cols-[140px_1fr_1fr_1fr_120px] gap-2 items-center px-2 py-2 border-b border-retro-border/60 text-xs font-mono"},[d("span",G_,A(G.id),1),d("button",{type:"button",class:"h-6 rounded border border-retro-green/40 bg-retro-green/10 flex items-center px-2 text-retro-green disabled:opacity-50 disabled:cursor-not-allowed",disabled:!G.locations.specLine,onClick:le=>L("spec.md",G.locations.specLine,G.id)},[d("span",null,A(G.locations.specLine?`L${G.locations.specLine}`:"Defined"),1)],8,H_),d("button",{type:"button",class:_e(["h-6 rounded border flex items-center px-2 disabled:opacity-50 disabled:cursor-not-allowed",G.inPlan?"text-retro-cyan border-retro-cyan/40 bg-retro-cyan/10":"text-retro-subtle border-retro-border bg-retro-black/50"]),disabled:!G.locations.planLine,onClick:le=>L("plan.md",G.locations.planLine,G.id)},[d("span",null,A(G.locations.planLine?`L${G.locations.planLine}`:G.inPlan?"Linked":"Missing"),1)],10,K_),d("button",{type:"button",class:_e(["h-6 rounded border flex items-center px-2 disabled:opacity-50 disabled:cursor-not-allowed",C(G)]),disabled:G.locations.taskLines.length===0,onClick:le=>L("tasks.md",G.locations.taskLines[0],G.id)},[d("span",null,A(G.locations.taskLines.length>0?`L${G.locations.taskLines[0]}`:G.inTasks?"Mapped":"Missing"),1)],10,J_),d("span",eR,A(G.taskCompleted)+"/"+A(G.taskTotal),1)]))),128))])])])):U("",!0)])):p(c)?(v(),y("div",tR,[...N[12]||(N[12]=[d("span",{class:"text-sm font-mono text-retro-muted animate-pulse"},"Loading...",-1)])])):p(u)?(v(),y("div",rR,[d("p",nR,A(p(u)),1),d("button",{type:"button",class:"mt-3 px-3 py-1.5 text-xs font-mono bg-retro-panel border border-retro-border rounded text-retro-muted hover:text-retro-cyan hover:border-retro-cyan transition-colors",onClick:re}," Retry ")])):r.feature.files.length===0?(v(),y("div",sR,[...N[13]||(N[13]=[d("p",{class:"text-sm font-mono text-retro-muted"},"No spec files found",-1),d("p",{class:"mt-1 text-xs font-mono text-retro-subtle"}," This feature directory has no .md files ",-1)])])):p(h)?(v(),y("div",iR,[K(be,{modelValue:p(f),"onUpdate:modelValue":N[2]||(N[2]=G=>tt(f)?f.value=G:null),"line-to-reveal":p(g),class:"flex-1"},null,8,["modelValue","line-to-reveal"])])):(v(),y("div",{key:5,class:"spec-markdown p-6 text-sm font-mono text-retro-text max-w-4xl mx-auto",innerHTML:p(oe)},null,8,oR))])])])])}}}),lR={class:"w-full max-w-2xl rounded-xl border border-retro-border/80 bg-retro-black shadow-[0_24px_70px_rgba(0,0,0,0.55)] overflow-hidden"},cR={class:"flex items-center justify-between px-4 py-2 border-b border-retro-border/60 bg-retro-dark/70"},uR={class:"flex items-center gap-2 px-4 py-3 border-b border-retro-border/60"},hR={class:"flex items-center justify-between px-4 py-1.5 border-b border-retro-border/40 bg-retro-dark/30 text-[10px] font-mono text-retro-subtle"},dR={class:"flex items-center gap-3"},fR={class:"inline-flex items-center gap-1"},mR={key:0},pR={key:0,class:"truncate max-w-[42%]"},gR={class:"max-h-[58vh] overflow-y-auto"},OR={key:0,class:"px-4 py-3 text-xs font-mono text-retro-subtle animate-pulse"},vR={key:1,class:"px-4 py-4 text-xs font-mono text-retro-subtle"},bR={key:2,class:"px-4 py-4 text-xs font-mono text-retro-subtle"},xR={key:3,class:"px-4 py-3 text-xs font-mono text-retro-red"},yR={key:4,class:"py-2 px-2 space-y-2"},kR=["onMouseenter","onClick"],wR={class:"flex items-center justify-between gap-3 text-[10px] font-mono"},SR={class:"text-retro-cyan/90"},$R={class:"text-retro-subtle truncate"},CR=["innerHTML"],QR={key:5,class:"px-4 py-3 text-xs font-mono text-retro-subtle"},PR={class:"flex items-center justify-between gap-3 px-4 py-2 border-t border-retro-border/60 bg-retro-dark/50 text-[11px] font-mono text-retro-subtle"},TR={key:0,class:"text-retro-yellow"},MR={key:0,class:"px-4 pb-3 text-xs font-mono text-retro-red flex items-center gap-2"},AR=400,_R=Xe({__name:"FeatureSearchModal",props:{availableFeatureIds:{}},emits:["close","select"],setup(r,{emit:e}){const t=r,n=e,{renderMarkdown:s}=zm(),i=Q(""),o=Q(!1),a=Q(!1),l=Q(null),c=Q(null),u=Q(null),h=Q(null),f=Q([]),m=Q(-1),g=Q(null),O=Q([]);let b=null,x=0;const w=H(()=>i.value.trim()),S=H(()=>{const F=w.value.toLowerCase().split(/\s+/).map(z=>z.trim()).filter(z=>z.length>=2);return Array.from(new Set(F)).slice(0,8)}),C=H(()=>l.value||c.value?"error":!w.value&&a.value?"empty-query":f.value.length>0?"results":a.value&&!o.value?"no-results":"idle");function _(F){return{featureId:F.chunk.featureId,sourcePath:F.chunk.sourcePath,headingHierarchy:F.chunk.headingHierarchy,snippet:F.chunk.content,matchType:F.matchType,score:F.score,lineStart:F.chunk.lineStart,lineEnd:F.chunk.lineEnd}}async function I(){const F=w.value;if(c.value=null,!F){a.value=!0,u.value=null,h.value=null,l.value=null,f.value=[],m.value=-1;return}const z=++x;a.value=!0,l.value=null,o.value=!0;try{const X=await $fetch("/api/specs/search",{query:{q:F,mode:"keyword",limit:20}});if(z!==x)return;u.value=X.warning??null,h.value=X.searchTime,f.value=X.results.map(_),m.value=f.value.length>0?0:-1}catch(X){if(z!==x)return;const N=X instanceof Error?X.message:"Failed to search specs";l.value=N,h.value=null,f.value=[],m.value=-1}finally{z===x&&(o.value=!1)}}Ve(i,()=>{l.value=null,c.value=null,b&&clearTimeout(b),b=setTimeout(()=>{I()},AR)}),Ve(f,()=>{O.value=[]}),Ve(m,async F=>{F<0||(await Wt(),O.value[F]?.scrollIntoView({block:"nearest"}))});function V(){n("close")}function re(F){const z=f.value[F];if(z){if(!t.availableFeatureIds.includes(z.featureId)){c.value="Feature unavailable";return}n("select",z.featureId),n("close")}}function oe(F){if(f.value.length===0)return;if(m.value<0){m.value=0;return}const z=m.value+F;if(z<0){m.value=f.value.length-1;return}if(z>=f.value.length){m.value=0;return}m.value=z}function Oe(F){if(F.key==="ArrowDown"){F.preventDefault(),oe(1);return}if(F.key==="ArrowUp"){F.preventDefault(),oe(-1);return}if(F.key==="Enter"){F.preventDefault(),m.value>=0&&re(m.value);return}F.key==="Escape"&&(F.preventDefault(),V())}function Y(F){F.target===F.currentTarget&&V()}function L(F,z){if(!z){O.value[F]=null;return}if(z instanceof HTMLElement){O.value[F]=z;return}const X=z.$el;O.value[F]=X instanceof HTMLElement?X:null}function D(){I()}function j(F){const z=F.trim();if(!z)return"";const X=z.length>700?`${z.slice(0,700)}...`:z,N=s(X);if(S.value.length===0)return N;const be=S.value.map(le=>le.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")),G=new RegExp(`(${be.join("|")})`,"gi");return N.split(/(<[^>]+>)/g).map(le=>le.startsWith("<")?le:le.replace(G,"<mark>$1</mark>")).join("")}return mt(()=>{Wt(()=>{g.value?.focus()})}),kt(()=>{b&&clearTimeout(b)}),(F,z)=>(v(),ge(Cr,{to:"body"},[K(mn,{appear:"","enter-active-class":"transition duration-150 ease-out","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition duration-120 ease-in","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:at(()=>[d("div",{class:"fixed inset-0 z-50 flex items-start justify-center pt-16 px-4 bg-black/75 backdrop-blur-[1px]",onClick:Y},[K(mn,{appear:"","enter-active-class":"transition duration-150 ease-out","enter-from-class":"opacity-0 translate-y-2 scale-[0.99]","enter-to-class":"opacity-100 translate-y-0 scale-100","leave-active-class":"transition duration-120 ease-in","leave-from-class":"opacity-100 translate-y-0 scale-100","leave-to-class":"opacity-0 translate-y-1 scale-[0.995]"},{default:at(()=>[d("div",lR,[d("div",cR,[z[1]||(z[1]=d("div",{class:"flex items-center gap-2"},[d("span",{class:"inline-flex items-center rounded px-2 py-0.5 text-[10px] font-mono border border-retro-cyan/50 text-retro-cyan bg-retro-cyan/10"}," Command Palette "),d("span",{class:"text-[10px] font-mono text-retro-subtle"},"Global spec search")],-1)),d("button",{type:"button",class:"p-1 rounded text-retro-muted hover:text-retro-text hover:bg-retro-panel transition-colors",title:"Close (Escape)",onClick:V},[K(p(wt),{class:"h-4 w-4"})])]),d("div",uR,[K(p(as),{class:"h-4 w-4 text-retro-cyan"}),Ye(d("input",{ref_key:"inputRef",ref:g,"onUpdate:modelValue":z[0]||(z[0]=X=>tt(i)?i.value=X:null),type:"text",placeholder:"Search specs across all features...",class:"flex-1 bg-transparent text-sm font-mono text-retro-text placeholder:text-retro-subtle focus:outline-none",onKeydown:Oe},null,544),[[_t,p(i)]]),z[2]||(z[2]=d("span",{class:"text-[10px] font-mono text-retro-subtle border border-retro-border/60 rounded px-1.5 py-0.5"},"400ms",-1))]),d("div",hR,[d("div",dR,[d("span",fR,[K(p(Vs),{class:"h-3.5 w-3.5"}),Le(" "+A(p(f).length)+" results ",1)]),p(h)!==null?(v(),y("span",mR,A(p(h))+"ms",1)):U("",!0)]),p(w)?(v(),y("span",pR,"“"+A(p(w))+"”",1)):U("",!0)]),d("div",gR,[p(o)?(v(),y("div",OR," Searching... ")):p(C)==="empty-query"?(v(),y("div",vR," Enter a search term to search across all feature specs. ")):p(C)==="no-results"?(v(),y("div",bR," No matching features found. ")):p(C)==="error"?(v(),y("div",xR,[d("p",null,A(p(c)||p(l)),1),p(l)?(v(),y("button",{key:0,type:"button",class:"mt-2 px-2 py-1 rounded border border-retro-border text-retro-muted hover:text-retro-cyan hover:border-retro-cyan transition-colors",onClick:D}," Retry ")):U("",!0)])):p(f).length>0?(v(),y("ul",yR,[(v(!0),y(ye,null,Ne(p(f),(X,N)=>(v(),y("li",{key:`${X.featureId}:${X.sourcePath}:${N}`},[d("button",{type:"button",ref_for:!0,ref:be=>L(N,be),class:_e(["w-full text-left px-4 py-3 min-h-[132px] rounded-lg border border-retro-border/40 border-l-2 transition-colors",N===p(m)?"border-retro-cyan bg-retro-panel/95 text-retro-text shadow-[0_0_0_1px_rgba(34,211,238,0.18)]":"text-retro-muted hover:text-retro-text hover:bg-retro-panel/90"]),onMouseenter:be=>m.value=N,onClick:be=>re(N)},[d("div",wR,[d("span",SR,A(X.featureId),1),d("span",$R,A(X.sourcePath)+":"+A(X.lineStart)+"-"+A(X.lineEnd),1)]),d("div",{class:"snippet-markdown mt-2 max-h-20 overflow-hidden text-xs text-retro-text",innerHTML:j(X.snippet)},null,8,CR),z[3]||(z[3]=d("div",{class:"mt-2 text-[10px] font-mono text-retro-subtle"}," Select feature ",-1))],42,kR)]))),128))])):(v(),y("div",QR," Start typing to search. "))]),d("div",PR,[z[4]||(z[4]=d("div",{class:"flex items-center gap-2"},[d("span",{class:"border border-retro-border/70 rounded px-1.5 py-0.5"},"↑↓ move"),d("span",{class:"border border-retro-border/70 rounded px-1.5 py-0.5"},"Enter select"),d("span",{class:"border border-retro-border/70 rounded px-1.5 py-0.5"},"Esc close")],-1)),p(u)?(v(),y("span",TR,A(p(u)),1)):U("",!0)]),p(c)?(v(),y("div",MR,[K(p(Bn),{class:"h-3.5 w-3.5"}),d("span",null,A(p(c)),1)])):U("",!0)])]),_:1})])]),_:1})]))}}),RR=ps(_R,[["__scopeId","data-v-5199b408"]]);function BR(r){return/^\/speckit\.(clarify|plan|tasks|implement)(\s|$)/.test(r)}function DR(r=Date.now,e=Math.random){return`req-${r()}-${e().toString(36).slice(2,8)}`}function Dm(r=Date.now){return`session-${r()}`}function Ca(r,e=!1){const t={};return(!e||r?.hasWorktree)&&r?.worktreePath&&(t.cwd=r.worktreePath,t.worktreeBranch=r.worktreeBranch),r?.featureId&&(t.featureId=r.featureId),Object.keys(t).length>0?t:void 0}function h1(r){if(r.file_path)return String(r.file_path);if(r.path)return String(r.path);if(r.command)return String(r.command).slice(0,50);if(r.pattern)return String(r.pattern);for(const e of Object.values(r))if(typeof e=="string"&&e.length<100)return e;return""}function ZR(r){switch(r){case 1e3:return"Normal closure";case 1001:return"Endpoint is going away (server shutdown or page navigation)";case 1002:return"Protocol error";case 1003:return"Unsupported data";case 1005:return"No status code received from peer (close frame had no code)";case 1006:return"Abnormal closure (connection dropped without close frame)";case 1007:return"Invalid payload data";case 1008:return"Policy violation";case 1009:return"Message too big";case 1010:return"Missing required extension";case 1011:return"Internal server error";case 1012:return"Service restart";case 1013:return"Try again later (temporary overload)";case 1015:return"TLS handshake failure";default:return r>=4e3&&r<=4999?"Application-specific close code":"Unknown close code"}}function ER(r,e){const t=[];return r.reason?t.push(r.reason):t.push(ZR(r.code)),e?.lastServerError?t.push(`Last server error: ${e.lastServerError}`):e?.lastSocketError&&t.push(`Last socket error: ${e.lastSocketError}`),t.push(`wasClean: ${r.wasClean?"yes":"no"}`),t.join(" | ")}function Zm(r,e="Permission"){const t=r||"",n=t.match(/write to (.+?)(?:[\s,?]|$)/i),s=t.match(/read (.+?)(?:[\s,?]|$)/i),i=t.match(/run (.+?)(?:[?,]|$)/i);return n?.[1]?{tool:"Write",description:t,filePath:n[1].trim()}:s?.[1]?{tool:"Read",description:t,filePath:s[1].trim()}:i?.[1]?{tool:"Bash",description:t,command:i[1].trim()}:{tool:e,description:t}}function LR(){return typeof document>"u"||typeof document.hasFocus!="function"?!1:document.visibilityState==="visible"&&document.hasFocus()}function XR(){return typeof window>"u"?"":`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/_ws`}function bc(r,e){return`${r}:${e}`}function ca(r,e){for(const t of r)if(t.type==="tool_use"){const n=t;(n.status==="running"||n.status==="pending")&&(n.status=e)}}function IR(){const r=new Map;function e(a,l,c){r.set(a,{featureId:l,queue:[...c]})}function t(a){a?r.delete(a):r.clear()}function n(a){return r.get(a)}function s(a){const l=r.get(a);if(!l||l.queue.length===0)return null;const c=l.queue.shift();return l.queue.length===0&&r.delete(a),{featureId:l.featureId,step:c}}function i(a){return r.has(a)}function o(){return r.size}return{enable:e,disable:t,get:n,popNextStep:s,has:i,size:o}}function d1(r,e=Ut){return{id:e(),type:"session_init",model:r.model,tools:r.tools,permissionMode:r.permissionMode,cwd:r.cwd}}function f1(r,e=Ut){return{id:r.blockId||e(),type:"text",text:r.text||""}}function m1(r,e=Ut){return{id:r.blockId||e(),type:"thinking",thinking:r.thinking||""}}function p1(r,e=Ut){if(!r.toolUseId||!r.name)return null;const t=r.blockId||e();return{block:{id:t,type:"tool_use",toolUseId:r.toolUseId,name:r.name,input:{},inputSummary:"",status:"running"},tracking:{blockId:t,toolUseId:r.toolUseId,name:r.name,inputJson:""},index:r.index??0}}function g1(r,e=Ut){return{id:e(),type:"tool_result",toolUseId:r.toolUseId,content:r.content||"",isError:!!r.isError}}function O1(r,e=Ut){return r.subtype!=="success"||!r.usage?null:{id:e(),type:"result_summary",totalCostUsd:r.totalCostUsd??0,durationMs:r.durationMs??0,numTurns:r.numTurns??0,usage:r.usage}}function cl(r,e,t){if(e!==void 0){const n=r.get(e);if(n)return n}if(t){for(const[,n]of r)if(n.blockId===t)return n}}function VR(r,e=Ut){const t=[],n=new Map,s=[];let i="",o=null,a=null,l="streaming",c=!1;for(const u of r){if(u.type==="done"){u.denied?(ca(t,"error"),l="stopped"):l==="error"||l==="stopped"?ca(t,"error"):(ca(t,"complete"),l="complete"),c=!0;continue}if(u.type==="error"){ca(t,"error"),l="error";continue}if(u.type!=="ui_event"||!u.event)continue;const h=u.event;switch(h.sessionId&&s.push(h.sessionId),h.type){case"session_init":{t.push(d1(h,e));break}case"block_start":{if(h.blockType==="text"){const f=f1(h,e);t.push(f),o=f.id,h.text&&(i+=h.text)}else if(h.blockType==="thinking"){const f=m1(h,e);t.push(f),a=f.id}else if(h.blockType==="tool_use"){const f=p1(h,e);f&&(t.push(f.block),n.set(f.index,f.tracking))}break}case"block_delta":{if(h.text&&o){const f=t.find(m=>m.id===o);f&&f.type==="text"&&(f.text+=h.text,i+=h.text)}if(h.thinking&&a){const f=t.find(m=>m.id===a);f&&f.type==="thinking"&&(f.thinking+=h.thinking)}if(h.partialJson){const f=cl(n,h.index,h.blockId);f&&(f.inputJson+=h.partialJson)}break}case"block_end":{const f=cl(n,h.index,h.blockId);if(!f)o&&(o=null),a&&(a=null);else{let m={};try{m=JSON.parse(f.inputJson)}catch{}const g=t.find(O=>O.id===f.blockId);if(g&&g.type==="tool_use"){const O=g;O.input=m,O.inputSummary=h1(m),O.status="pending"}}break}case"tool_result":{const f=t.find(m=>m.type==="tool_use"&&m.toolUseId===h.toolUseId);f&&f.type==="tool_use"&&(f.status=h.isError?"error":"complete"),t.push(g1(h,e));break}case"turn_result":{h.subtype!=="success"&&(l="error");const f=O1(h,e);f&&t.push(f);break}case"error":{l="error";break}}}return{contentBlocks:t,flatText:i,currentTextBlockId:o,currentThinkingBlockId:a,activeTools:n,finalStatus:l,isDone:c,providerSessionIds:s}}function zR(r,e,t=Date.now){return{ws:r,currentMessageId:"",conversationId:e,activeTools:new Map,currentTextBlockId:null,currentThinkingBlockId:null,healthCheckInterval:null,lastMessageTime:t(),lastServerError:null,lastSocketError:null,isReplaying:!1,replayBuffer:[]}}function xc(r,e,t){const n=r.get(e);return!!n&&n.ws!==t}function NR(r,e){const t=r.get(e);return t?t.ws.readyState===WebSocket.OPEN?{kind:"open",conn:t}:{kind:"stale",conn:t}:{kind:"none"}}const dt=new Map;let ua=0;const ws=IR(),ha=new Set,WR=3e4,v1=18e4,qR=Math.round(v1/1e3);function Pl(){const r=mr(),e=Oo();ua++;function t(T){const B=r.conversations.find(Z=>Z.id===T)?.title?.trim()||"Chat";return new Notification("Spec Cat",{body:`${B} response completed.`,tag:`chat-complete-${T}`})}async function n(T){if(!(typeof window>"u"||typeof Notification>"u")&&!LR()){if(Notification.permission==="granted"){t(T);return}if(Notification.permission==="default")try{await Notification.requestPermission()==="granted"&&t(T)}catch(P){console.warn("[useChatStream] Failed to request browser notification permission:",P)}}}function s(T){T.healthCheckInterval&&(clearInterval(T.healthCheckInterval),T.healthCheckInterval=null)}function i(T){s(T),T.lastMessageTime=Date.now(),T.healthCheckInterval=Zu(()=>{const P=T.conversationId;if(T.ws.readyState!==WebSocket.OPEN){console.warn(`[useChatStream] Health check: WebSocket not open for ${P}`),s(T),r.isConversationStreaming(P)&&(c(T.currentMessageId,P,"error"),r.updateMessage(T.currentMessageId,{status:"error"},P),r.setSessionError("Connection lost during streaming",P),r.endSession(P),r.endConversationStreaming(P)),dt.delete(P);return}if(r.isConversationStreaming(P)){const B=Date.now()-T.lastMessageTime;B>v1&&(console.warn(`[useChatStream] Health check: streaming timeout for ${P} (${Math.round(B/1e3)}s)`),s(T),c(T.currentMessageId,P,"error"),r.updateMessage(T.currentMessageId,{status:"error"},P),r.setSessionError(`Streaming timed out — no response from server for ${qR} seconds`,P),r.endSession(P),r.endConversationStreaming(P),T.ws.close(),dt.delete(P))}},WR)}function o(T,P){return r.conversations.find(Z=>Z.id===T)?.messages.find(Z=>Z.id===P)?.status}function a(T,P=!0){const B=dt.get(T);B&&(s(B),P&&B.ws.readyState===WebSocket.OPEN&&B.ws.close(),dt.delete(T))}function l(T,P,B){!B||!T.currentTextBlockId||(r.updateBlockWithSave(T.currentMessageId,T.currentTextBlockId,Z=>{Z.type==="text"&&(Z.text+=B)},P,{syncContent:!1}),r.appendToMessage(T.currentMessageId,B,P))}function c(T,P,B){const ve=r.conversations.find(Ae=>Ae.id===P)?.messages.find(Ae=>Ae.id===T);if(ve?.contentBlocks)for(const Ae of ve.contentBlocks)Ae.type==="tool_use"&&(Ae.status==="running"||Ae.status==="pending")&&r.updateBlockById(T,Ae.id,Qe=>{Qe.type==="tool_use"&&(Qe.status=B)},P)}async function u(T){try{(await h(T)).send(JSON.stringify({type:"reset_context"})),r.clearProviderSession(T),console.log("[useChatStream] Context reset requested for conversation:",T)}catch(P){throw console.error("[useChatStream] Failed to reset context:",P),P}}function h(T){return new Promise((P,B)=>{let Z=!1;const ve=pe=>{Z||(Z=!0,P(pe))},Ae=pe=>{Z||(Z=!0,B(pe))},Qe=NR(dt,T);if(Qe.kind==="open"){ve(Qe.conn.ws);return}Qe.kind==="stale"&&(Qe.conn.ws.close(),dt.delete(T));const se=XR(),ee=new WebSocket(se),q=zR(ee,T);dt.set(T,q),ee.onopen=()=>{ve(ee)},ee.onerror=pe=>{if(console.error(`[useChatStream] WebSocket error for conversation ${T}:`,pe),xc(dt,T,ee))return;const Pe=dt.get(T);Pe&&(Pe.lastSocketError="Browser reported a WebSocket transport error (network/proxy/server)"),r.isConversationStreaming(T)&&(Pe?.currentMessageId&&(c(Pe.currentMessageId,T,"error"),r.updateMessage(Pe.currentMessageId,{status:"error"},T)),r.setSessionError("Connection error during streaming",T),r.endSession(T),r.endConversationStreaming(T)),dt.delete(T),Ae(new Error("WebSocket connection failed. Server may be unavailable."))},ee.onclose=pe=>{if(xc(dt,T,ee))return;const Pe=dt.get(T);if(Pe&&s(Pe),dt.delete(T),ws.disable(T),!Z){Ae(new Error(`WebSocket closed before connection was established (code: ${pe.code})`));return}if(r.isConversationStreaming(T)){Pe?.currentMessageId&&(c(Pe.currentMessageId,T,"error"),r.updateMessage(Pe.currentMessageId,{status:"error"},T));const Ie=ER(pe,Pe);r.setSessionError(`Connection closed: ${Ie} (code: ${pe.code})`,T),r.endSession(T),r.endConversationStreaming(T)}},ee.onmessage=pe=>{xc(dt,T,ee)||g(pe.data,T)}})}async function f(T,P=3){for(let B=0;B<P;B++){const Z=r.conversations.find(ve=>ve.id===T);if(Z)return Z;B<P-1&&await new Promise(ve=>setTimeout(ve,100))}console.error("[useChatStream] Conversation not found after retries:",T)}function m(T,P){const B=r.conversations.find(ve=>ve.id===T);if(!B)return null;const Z=B.messages.findIndex(ve=>ve.id===P);if(Z<=0)return null;for(let ve=Z-1;ve>=0;ve--){const Ae=B.messages[ve];if(Ae.role==="user"&&Ae.content.trim().length>0)return Ae.content}return null}async function g(T,P){const B=dt.get(P);if(B){B.lastMessageTime=Date.now();try{r.pushDebugEvent({direction:"in",channel:"ws",eventType:"ws.raw",payload:T},P);const Z=JSON.parse(T);if(r.pushDebugEvent({direction:"in",channel:"ws",eventType:Z.type,payload:Z},P),B.isReplaying&&((Z.type==="ui_event"||Z.type==="done"||Z.type==="error")&&B.replayBuffer.push(Z),Z.type!=="replay_end"))return;if(Z.type==="error")return await _(Z,B,P),void 0;if(Z.type==="done"){await I(Z,B,P);return}if(Z.type==="pong")return;if(Z.type==="session_reset"){console.warn(`[useChatStream] Session reset for ${P}:`,Z.reason),r.setProviderSessionId("",P),F(B.currentMessageId,`
|
|
40
|
+
|
|
41
|
+
> **Session Reset**: Previous session could not be resumed. Retrying with a fresh session...
|
|
42
|
+
|
|
43
|
+
`,P);return}if(Z.type==="worktree_recovered"){console.log(`[useChatStream] Worktree recovered for ${P}`),F(B.currentMessageId,`
|
|
44
|
+
|
|
45
|
+
> **Worktree recovered**: The work directory was restored after a system restart.
|
|
46
|
+
|
|
47
|
+
`,P);return}if(Z.type==="context_reset"){console.log(`[useChatStream] Context reset confirmed for ${P}`);return}if(Z.type==="aborted"){console.log(`[useChatStream] Abort confirmed for ${P}`);return}if(Z.type==="subscribed"){console.log(`[useChatStream] Subscribed to ${P}`,Z.jobId?`(job: ${Z.jobId}, status: ${Z.jobStatus})`:"(no active job)"),Z.jobId||(r.endSession(P),r.endConversationStreaming(P));return}if(Z.type==="replay_start"){console.log(`[useChatStream] Replay start for ${P}: ${Z.eventCount} events from job ${Z.jobId}`),B.isReplaying=!0,B.replayBuffer=[];return}if(Z.type==="replay_end"){console.log(`[useChatStream] Replay end for ${P}: nextCursor=${Z.nextCursor}`),D(B,P),B.isReplaying=!1,B.replayBuffer=[];return}if(Z.type==="notification"){Y(Z);return}if(Z.type==="permission_request"){x(Z,B,P);return}if(Z.type==="permission_prompt"&&Z.text){w(Z,B,P);return}Z.type==="ui_event"&&Z.event?L(Z.event,P):Z.type==="provider_json"&&Z.data}catch(Z){console.error(`[useChatStream] Failed to parse WebSocket message for ${P}:`,Z,"Raw data:",T?.slice(0,200)),c(B.currentMessageId,P,"error"),r.updateMessage(B.currentMessageId,{status:"error"},P),r.setSessionError(`Failed to parse server response: ${Z instanceof Error?Z.message:"Invalid JSON"}`,P),r.endSession(P),r.endConversationStreaming(P),be(P),r.saveConversation(P,!0),a(P)}}}function O(T,P,B){if(T.text&&P.currentTextBlockId&&l(P,B,T.text),T.thinking&&P.currentThinkingBlockId&&r.updateBlockWithSave(P.currentMessageId,P.currentThinkingBlockId,Z=>{Z.type==="thinking"&&(Z.thinking+=T.thinking)},B,{syncContent:!1}),T.partialJson){const Z=cl(P.activeTools,T.index,T.blockId);Z&&(Z.inputJson+=T.partialJson)}}function b(T,P,B){const Z=cl(P.activeTools,T.index,T.blockId);if(!Z){P.currentTextBlockId&&(P.currentTextBlockId=null),P.currentThinkingBlockId&&(P.currentThinkingBlockId=null);return}let ve={};try{ve=JSON.parse(Z.inputJson)}catch{}if(Z.name==="ExitPlanMode"){const Ae={allowedPrompts:ve.allowedPrompts};r.setPendingPlanApproval(Ae,B)}r.updateBlockWithSave(P.currentMessageId,Z.blockId,Ae=>{if(Ae.type==="tool_use"){const Qe=Ae;Qe.input=ve,Qe.inputSummary=h1(ve),Qe.status="pending"}},B)}function x(T,P,B){s(P),r.endConversationStreaming(B);const Z=Zm(T.description||"",T.tool||"Permission");r.setPendingPermission(Z,B);let ve=`
|
|
48
|
+
|
|
49
|
+
**Permission Required**: ${Z.tool}`;Z.filePath&&(ve+=` - ${Z.filePath}`),F(P.currentMessageId,ve+`
|
|
50
|
+
`,B)}function w(T,P,B){s(P),r.endConversationStreaming(B);const Z=Zm(T.text||"","Permission");r.setPendingPermission(Z,B);const ve=`
|
|
51
|
+
|
|
52
|
+
**${Z.tool}**: ${Z.filePath||Z.command||Z.description}
|
|
53
|
+
`;F(P.currentMessageId,ve,B)}const S=/codex cannot access session files|failed to clean up stale arg0 temp dirs: Permission denied|failed to initialize rollout recorder: Permission denied|failed to create session: Permission denied|\/\.codex\/.*permission denied/i,C=/state db missing rollout path for thread/i;async function _(T,P,B){console.error(`[useChatStream] Server error for ${B}:`,T.error);const Z=T.error||"Unknown server error";P.lastServerError=Z;const ve=S.test(Z);if(C.test(Z)&&!ve){const Qe=bc(B,P.currentMessageId);if(!ha.has(Qe)){const se=m(B,P.currentMessageId);if(se){ha.add(Qe),r.setProviderSessionId("",B),F(P.currentMessageId,`
|
|
54
|
+
|
|
55
|
+
> **Session Reset**: Codex resume state was corrupted. Retrying once with a fresh session...
|
|
56
|
+
|
|
57
|
+
`,B);try{const ee=r.conversations.find(pe=>pe.id===B),q=Ca(ee);return await z(se,P.currentMessageId,B,q),!0}catch(ee){console.error(`[useChatStream] Rollout-path recovery retry failed for ${B}:`,ee)}}}}return s(P),c(P.currentMessageId,B,"error"),r.updateMessage(P.currentMessageId,{status:"error"},B),C.test(Z)&&r.setProviderSessionId("",B),ha.delete(bc(B,P.currentMessageId)),r.setSessionError(Z,B),r.endSession(B),r.endConversationStreaming(B),be(B),r.saveConversation(B,!0),a(B),!1}async function I(T,P,B){s(P);const Z=o(B,P.currentMessageId);if(ha.delete(bc(B,P.currentMessageId)),T.denied){c(P.currentMessageId,B,"error"),r.updateMessage(P.currentMessageId,{status:"stopped"},B),V(P,B);return}if(Z==="error"||Z==="stopped"){c(P.currentMessageId,B,"error"),V(P,B);return}c(P.currentMessageId,B,"complete"),r.completeMessageWithSave(P.currentMessageId,B),r.endSession(B),r.endConversationStreaming(B),n(B);const ve=await f(B),Ae=re(ve,B,P),Qe=ws.popNextStep(B);Qe&&Ae.then(()=>{setTimeout(()=>{G(B,Qe.featureId,Qe.step)},1500)}),r.clearPendingPermission(B),r.saveConversation(B,!0),P.activeTools.clear()}function V(T,P){r.endSession(P),r.endConversationStreaming(P),be(P),r.clearPendingPermission(P),T.activeTools.clear(),r.saveConversation(P,!0)}function re(T,P,B){return!T?.hasWorktree||!T.worktreePath?Promise.resolve():$fetch("/api/chat/worktree-commit",{method:"POST",body:{worktreePath:T.worktreePath,conversationId:P,previousBranch:T.worktreeBranch}}).then(Z=>T.previewBranch&&T.worktreePath?$fetch("/api/chat/preview-sync",{method:"POST",body:{previewBranch:T.previewBranch,worktreePath:T.worktreePath}}).then(ve=>{if(!ve.success)throw new Error(ve.error||"Unknown preview sync failure");return Z}):Z).then(async Z=>{if(Z?.success&&Z.currentBranch!==T.worktreeBranch){const ve=T.worktreeBranch||"unknown";r.updateWorktreeBranch(P,Z.currentBranch);const Ae=await r.syncConversationFeatureFromBranch(P),Qe=Z.deletedPreviousBranch?` and deleted \`${ve}\``:"",se=Ae?` and linked to feature \`${Ae}\``:"";F(B.currentMessageId,`
|
|
58
|
+
|
|
59
|
+
> **Branch changed**: AI switched from \`${ve}\` to \`${Z.currentBranch}\`${Qe}${se}
|
|
60
|
+
|
|
61
|
+
`,P)}else Z?.success&&T.worktreeBranch&&r.updateWorktreeBranch(P,T.worktreeBranch);return r.saveConversation(P,!1),Z}).catch(Z=>{console.warn("[useChatStream] Auto-commit/preview-sync failed:",Z)})}let oe=null;const Oe=500;function Y(T){const P=T.notificationEvent,B=T.source;console.log(`[useChatStream] Global notification: ${P}`,{jobId:T.jobId,conversationId:T.conversationId,source:B,status:T.status}),(P==="job_created"&&B!=="user"||P==="job_completed"||P==="job_persisted")&&(oe&&clearTimeout(oe),oe=setTimeout(()=>{oe=null,r.refreshServerConversations()},Oe))}function L(T,P){const B=dt.get(P);if(B)switch(r.pushDebugEvent({direction:"in",channel:"ui",eventType:T.type,payload:T},P),T.sessionId&&r.setProviderSessionId(T.sessionId,P),T.type){case"session_init":{j(B.currentMessageId,P),r.appendContentBlockWithSave(B.currentMessageId,d1(T),P);break}case"block_start":{if(j(B.currentMessageId,P),T.blockType==="text"){const Z=f1(T);r.appendContentBlockWithSave(B.currentMessageId,Z,P),B.currentTextBlockId=Z.id}else if(T.blockType==="thinking"){const Z=m1(T);r.appendContentBlockWithSave(B.currentMessageId,Z,P),B.currentThinkingBlockId=Z.id}else if(T.blockType==="tool_use"){const Z=p1(T);Z&&(r.appendContentBlockWithSave(B.currentMessageId,Z.block,P),B.activeTools.set(Z.index,Z.tracking))}break}case"block_delta":{O(T,B,P);break}case"block_end":{b(T,B,P);break}case"tool_result":{j(B.currentMessageId,P);const Z=r.findToolUseBlock(B.currentMessageId,T.toolUseId,P);Z&&Z.type==="tool_use"&&r.updateBlockById(B.currentMessageId,Z.id,ve=>{ve.type==="tool_use"&&(ve.status=T.isError?"error":"complete")},P),r.appendContentBlockWithSave(B.currentMessageId,g1(T),P);break}case"permission_request":{s(B),r.endConversationStreaming(P);const Z={tool:T.tool,description:T.description,input:T.input,tools:T.tools};r.setPendingPermission(Z,P),F(B.currentMessageId,`
|
|
62
|
+
|
|
63
|
+
**Permission Required**: ${Z.tool}
|
|
64
|
+
`,P);break}case"turn_result":{T.subtype!=="success"&&(r.updateMessage(B.currentMessageId,{status:"error"},P),be(P),T.subtype==="max_turns"?r.setSessionError("Maximum conversation turns reached. Please start a new conversation.",P):r.setSessionError("Provider reported an execution error.",P));const Z=O1(T);Z&&(j(B.currentMessageId,P),r.appendContentBlockWithSave(B.currentMessageId,Z,P));break}case"error":{r.updateMessage(B.currentMessageId,{status:"error"},P),r.setSessionError(T.error,P);break}}}function D(T,P){const B=T.replayBuffer;if(B.length===0)return;const Z=VR(B);for(const ve of Z.providerSessionIds)r.setProviderSessionId(ve,P);r.batchSetMessageBlocks(T.currentMessageId,Z.contentBlocks,Z.flatText,Z.finalStatus,P),T.currentTextBlockId=Z.currentTextBlockId,T.currentThinkingBlockId=Z.currentThinkingBlockId,T.activeTools=Z.activeTools,Z.isDone&&(s(T),r.endSession(P),r.endConversationStreaming(P),n(P)),console.log(`[useChatStream] Replay batch processed: ${B.length} events → ${Z.contentBlocks.length} blocks, status=${Z.finalStatus}`)}function j(T,P){r.initContentBlocks(T,P)}function F(T,P,B){j(T,B);const Z={id:Ut(),type:"text",text:P};r.appendContentBlockWithSave(T,Z,B)}async function z(T,P,B,Z){if(typeof window>"u")return;const ve=DR();try{const Ae=await h(B),Qe=dt.get(B);Qe&&(Qe.currentMessageId=P,Qe.activeTools.clear(),Qe.currentTextBlockId=null,Qe.currentThinkingBlockId=null,i(Qe)),BR(T)&&r.setProviderSessionId("",B);const ee=r.getProviderSessionId(B),q=r.conversations.find(xt=>xt.id===B),pe=q?.providerId||e.providerSelection.providerId||Wm,Pe=q?.providerModelKey||e.providerSelection.modelKey||Nm;q&&(!q.providerId||!q.providerModelKey)&&(r.setConversationProviderSelection(B,pe,Pe),r.saveConversation(B,!0));const Ie={type:"chat",message:T,attachments:Z?.attachments,requestId:ve,sessionId:ee||void 0,permissionMode:r.permissionMode,conversationId:B,cwd:Z?.cwd,worktreeBranch:Z?.worktreeBranch,featureId:Z?.featureId,providerId:pe,providerModelKey:Pe};r.pushDebugEvent({direction:"out",channel:"ws",eventType:"chat",payload:Ie},B),Ae.send(JSON.stringify(Ie))}catch(Ae){r.updateMessage(P,{status:"error"},B),r.setSessionError(Ae.message||"Connection failed",B),r.endSession(B),r.endConversationStreaming(B),r.saveConversation(B,!0),a(B)}}function X(T,P){const B=P??r.activeConversationId;if(!B)return;const Z=dt.get(B);if(!Z||Z.ws.readyState!==WebSocket.OPEN)return;const ve={type:"permission_response",allow:T};r.pushDebugEvent({direction:"out",channel:"ws",eventType:"permission_response",payload:ve},B),Z.ws.send(JSON.stringify(ve)),T&&(r.startConversationStreaming(B),i(Z));const Ae=T?"Allowed":"Denied";F(Z.currentMessageId,`${Ae}
|
|
65
|
+
`,B),r.clearPendingPermission(B)}function N(T,P,B){ws.enable(P,T,B)}function be(T){ws.disable(T)}async function G(T,P,B){r.activeConversationId!==T&&r.selectConversation(T);const Z=r.conversations.find(se=>se.id===T);let ve;if(B.startsWith("skill:")){const se=B.replace("skill:","");try{ve=(await $fetch(`/api/skills/${se}/prompt`,{method:"POST",body:{featureId:P,cwd:Z?.worktreePath}})).prompt}catch(ee){console.error(`[useChatStream] Failed to render skill prompt for ${se}:`,ee);return}}else ve=`/speckit.${B} ${P}`;r.addUserMessage(ve,T),r.saveConversation(T,!0);const Ae=r.addAssistantMessage(T);r.startSession(Dm(),T),r.startConversationStreaming(T);const Qe=Ca(Z);await z(ve,Ae.id,T,Qe)}async function le(T,P,B=0){if(!(typeof window>"u"))try{const Z=await h(T),ve=dt.get(T);ve&&(ve.currentMessageId=P,ve.activeTools.clear(),ve.currentTextBlockId=null,ve.currentThinkingBlockId=null,i(ve)),r.startConversationStreaming(T);const Ae={type:"subscribe",conversationId:T,cursor:B};r.pushDebugEvent({direction:"out",channel:"ws",eventType:"subscribe",payload:Ae},T),Z.send(JSON.stringify(Ae))}catch(Z){console.error(`[useChatStream] Failed to subscribe to ${T}:`,Z),r.setSessionError(Z.message||"Subscribe failed",T)}}function ue(T){const P=T??r.activeConversationId;if(!P)return;const B=dt.get(P);if(B){if(B.ws.readyState===WebSocket.OPEN){const Z={type:"abort"};r.pushDebugEvent({direction:"out",channel:"ws",eventType:"abort",payload:Z},P),B.ws.send(JSON.stringify(Z)),B.ws.close()}B.currentMessageId&&(c(B.currentMessageId,P,"error"),r.updateMessage(B.currentMessageId,{status:"stopped"},P),r.endSession(P),r.saveConversation(P,!0)),dt.delete(P)}r.endConversationStreaming(P),r.clearPendingPermission(P),be(P)}function ce(T){const P=dt.get(T);P&&(s(P),P.ws.close(),dt.delete(T)),ws.disable(T)}function de(){for(const[T,P]of dt)s(P),P.ws.close(),dt.delete(T);ws.disable()}async function Ce(T){const P=T??r.activeConversationId;if(!P)return;r.clearPendingPlanApproval(P),r.setPermissionMode("auto");const B="Approved. Proceed with the implementation.";r.addUserMessage(B,P),r.saveConversation(P,!0);const Z=r.addAssistantMessage(P);r.startSession(Dm(),P),r.startConversationStreaming(P);const ve=r.conversations.find(Qe=>Qe.id===P),Ae=Ca(ve,!0);await z(B,Z.id,P,Ae)}function Me(T){const P=T??r.activeConversationId;P&&r.clearPendingPlanApproval(P)}async function qe(T){if(typeof window>"u")return!1;try{const P=await $fetch("/api/jobs",{params:{conversationId:T}}),Z=P.find(Qe=>Qe.status==="running"||Qe.status==="waiting_permission"||Qe.status==="queued")||[...P].sort((Qe,se)=>se.eventCount-Qe.eventCount).find(Qe=>Qe.eventCount>0),ve=r.conversations.find(Qe=>Qe.id===T);if(!ve)return!1;const Ae=[...ve.messages].reverse().find(Qe=>Qe.role==="assistant");return Z?!Ae||Ae.status!=="streaming"?!1:(console.log("[useChatStream] Resuming streaming for",T,"job:",Z.id,"status:",Z.status,"events:",Z.eventCount),r.resetMessageForReplay(Ae.id,T),r.startSession(`resume-${Date.now()}`,T),await le(T,Ae.id,0),!0):(Ae&&Ae.status==="streaming"&&(r.updateMessage(Ae.id,{status:"error"},T),r.setSessionError("Streaming was interrupted (server job no longer active)",T)),!1)}catch(P){return console.error("[useChatStream] Failed to resume streaming:",P),!1}}return kt(()=>{ua--,ua<=0&&(ua=0,de())}),{sendMessage:z,sendPermissionResponse:X,subscribe:le,tryResumeStreaming:qe,approvePlan:Ce,rejectPlan:Me,abort:ue,disconnect:de,disconnectConversation:ce,enableCascade:N,disableCascade:be,resetContext:u}}const jR={class:"w-full max-w-md mx-4 bg-retro-dark border border-retro-border rounded-lg shadow-xl"},YR={class:"px-4 py-3 border-b border-retro-border flex items-center justify-between"},FR=["disabled"],UR={class:"px-4 py-4 space-y-3"},GR={class:"relative"},HR=["disabled"],KR={key:0,value:""},JR=["value"],eB={key:0,class:"text-xs font-mono text-retro-red"},tB={key:1,class:"text-xs font-mono text-retro-muted"},rB={class:"px-4 py-3 border-t border-retro-border flex items-center gap-2 justify-end"},nB=["disabled"],sB=["disabled"],Cu=Xe({__name:"NewConversationModal",props:{show:{type:Boolean},creating:{type:Boolean}},emits:["close","create"],setup(r,{emit:e}){const t=Pu(),n=r,s=e,i=Q([]),o=Q(""),a=Q(!1),l=Q(""),c=H(()=>!a.value&&!n.creating&&o.value.length>0&&i.value.length>0);async function u(){a.value=!0,l.value="";try{await t.initialize();const f=await $fetch("/api/git/branches",{query:{excludeSc:!0,workingDirectory:t.workingDirectory}}),m=f.branches.filter(O=>!O.isRemote).map(O=>O.name);if(i.value=m,!m.length){o.value="",l.value="No local branches available for chat creation.";return}const g=(f.current&&m.includes(f.current)?f.current:"")||(m.includes("main")?"main":"")||(m.includes("master")?"master":"")||m[0];o.value=g}catch(f){i.value=[],o.value="",l.value=f instanceof Error?f.message:"Failed to load branches"}finally{a.value=!1}}Ve(()=>n.show,f=>{f&&u()});function h(){c.value&&s("create",o.value)}return(f,m)=>(v(),ge(Cr,{to:"body"},[K(mn,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:at(()=>[r.show?(v(),y("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",onClick:m[3]||(m[3]=xr(g=>s("close"),["self"]))},[d("div",jR,[d("div",YR,[m[4]||(m[4]=d("h3",{class:"text-sm font-mono text-retro-text font-semibold"},"New Conversation",-1)),d("button",{type:"button",class:"p-1 text-retro-muted hover:text-retro-text transition-colors",disabled:r.creating,onClick:m[0]||(m[0]=g=>s("close"))},[K(p(wt),{class:"w-4 h-4"})],8,FR)]),d("div",UR,[m[5]||(m[5]=d("label",{class:"block text-xs font-mono text-retro-muted"},"Base Branch",-1)),d("div",GR,[Ye(d("select",{"onUpdate:modelValue":m[1]||(m[1]=g=>o.value=g),disabled:a.value||r.creating||i.value.length===0,class:"w-full appearance-none bg-retro-black border border-retro-border rounded px-2 py-1.5 pr-7 text-xs font-mono text-retro-cyan focus:outline-none focus:border-retro-cyan disabled:opacity-40"},[a.value?(v(),y("option",KR,"Loading branches...")):U("",!0),(v(!0),y(ye,null,Ne(i.value,g=>(v(),y("option",{key:g,value:g},A(g),9,JR))),128))],8,HR),[[ms,o.value]]),K(p(Au),{class:"absolute right-2 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-retro-muted pointer-events-none"})]),l.value?(v(),y("p",eB,A(l.value),1)):(v(),y("p",tB," The conversation worktree will be created from the selected branch. "))]),d("div",rB,[d("button",{type:"button",class:"px-3 py-1.5 text-xs font-mono rounded border border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text/30 transition-colors disabled:opacity-40",disabled:r.creating,onClick:m[2]||(m[2]=g=>s("close"))}," Cancel ",8,nB),d("button",{type:"button",disabled:!c.value,class:"px-3 py-1.5 text-xs font-mono rounded border bg-retro-cyan/10 border-retro-cyan/50 text-retro-cyan hover:bg-retro-cyan/20 transition-colors disabled:opacity-40 disabled:cursor-not-allowed",onClick:h},A(r.creating?"Creating...":"Create"),9,sB)])])])):U("",!0)]),_:1})]))}}),iB={class:"h-full flex flex-col bg-retro-black"},oB={class:"flex-shrink-0 flex items-center justify-between px-4 py-2 border-b border-retro-border"},aB={class:"flex items-center gap-1"},lB={class:"flex-shrink-0 px-3 pt-3"},cB={class:"relative"},uB={class:"flex-1 overflow-y-auto p-3"},hB={class:"space-y-2"},dB={key:0,class:"flex items-center justify-center py-12"},fB={key:1,class:"flex flex-col items-center justify-center py-12 text-center"},mB={key:2,class:"flex flex-col items-center justify-center py-12 text-center"},pB=Xe({__name:"FeaturesPanel",setup(r){const e=mr(),t=dl(),{sendMessage:n,enableCascade:s}=Pl(),i=go(),o=Q("features"),a=Q(null),l=Q(null),c=Q([]),u=Q([]),h=Q(!1),f=Q({}),m=Q(!1),g=Q(null),O=Q(!1),b=Q(!1),x=Q(!1),w=Q(null),S=Q(""),C=Q("");let _=null;Ve(S,se=>{_&&clearTimeout(_),_=setTimeout(()=>{C.value=se},300)});const I=H(()=>{const se=C.value.trim().toLowerCase();return se?c.value.filter(ee=>ee.name.toLowerCase().includes(se)||ee.id.toLowerCase().includes(se)):c.value}),V=Q({}),re=H(()=>{const se=e.activeConversation;if(!se)return null;if(se.featureId)return se.featureId;const ee=se.worktreeBranch?.trim();return ee&&c.value.some(q=>q.id===ee)?ee:null}),oe=H(()=>re.value||a.value);Ve(()=>e.activeConversationId,()=>{a.value=null;const se=re.value;t.setSelectedFeatureId(se),se&&Wt(()=>{const ee=V.value[se];ee&&ee.scrollIntoView({behavior:"auto",block:"nearest"})})}),Ve(a,se=>{se&&Wt(()=>{const ee=V.value[se];ee&&ee.scrollIntoView({behavior:"auto",block:"nearest"})})});async function Oe(){h.value=!0;try{const se=await $fetch("/api/specs/features");c.value=se.features,Y(se.features)}catch{i.error("Failed to load features"),c.value=[],f.value={}}finally{h.value=!1}}async function Y(se){if(se.length===0){f.value={};return}const ee=await Promise.allSettled(se.map(async pe=>{const Pe=await $fetch(`/api/specs/traceability/${pe.id}`),Ie=Pe.alerts.filter(qt=>qt.severity==="critical").length,xt=Pe.alerts.filter(qt=>qt.severity==="major").length;return{featureId:pe.id,critical:Ie,major:xt}})),q={};for(const pe of ee)pe.status==="fulfilled"&&(q[pe.value.featureId]={critical:pe.value.critical,major:pe.value.major});f.value=q}async function L(){try{const se=await $fetch("/api/skills");u.value=se.skills}catch{u.value=[]}}mt(()=>{Oe(),L(),window.addEventListener("keydown",F)}),kt(()=>{window.removeEventListener("keydown",F)});function D(se,ee={}){if(a.value=se,l.value=null,o.value="files",t.setSelectedFeatureId(se),ee.openViewer!==!1){const q=c.value.find(pe=>pe.id===se);q&&(g.value=q,m.value=!0)}}function j(){m.value=!1,g.value=null}function F(se){(se.ctrlKey||se.metaKey)&&se.key.toLowerCase()==="k"&&(se.preventDefault(),O.value||(O.value=!0))}function z(){O.value=!1}function X(se){D(se,{openViewer:!1}),O.value=!1}function N(){O.value=!0}const be=H(()=>c.value.map(se=>se.id));function G(se){return f.value[se]??{critical:0,major:0}}const le={plan:["tasks","implement"],tasks:["implement"],implement:[],clarify:[],analyze:[]},ue={analyze:["skill:better-spec"]};async function ce(se,ee,q){if(se.startsWith("skill:")){const pe=se.replace("skill:",""),Pe=q?e.conversations.find(xt=>xt.id===q):null;return(await $fetch(`/api/skills/${pe}/prompt`,{method:"POST",body:{featureId:ee,cwd:Pe?.worktreePath}})).prompt}return`/speckit.${se} ${ee}`}function de(se,ee){if(ee)return null;const q=e.findConversationByFeature(se);return q&&!e.isConversationStreaming(q.id)&&!q.finalized?(e.selectConversation(q.id),q.id):null}function Ce(se){const ee=e.findConversationByFeature(se);return ee&&ee.finalized?(i.error(`This feature has a finalized conversation "${ee.title}". Please archive it first to start a new conversation.`),e.selectConversation(ee.id),!0):!1}async function Me(se,ee,q){const pe=await e.createConversation({featureId:se,baseBranch:q});if(!pe)throw new Error("Failed to create conversation");return e.renameConversation(pe,ee),e.selectConversation(pe),pe}async function qe(se,ee){e.addUserMessage(ee,se),e.saveConversation(se,!0);const q=e.conversations.find(Ie=>Ie.id===se),pe=e.addAssistantMessage(se);e.startSession(`session-${Date.now()}`,se),e.startConversationStreaming(se);const Pe={};q?.worktreePath&&(Pe.cwd=q.worktreePath,Pe.worktreeBranch=q.worktreeBranch),q?.featureId&&(Pe.featureId=q.featureId),await n(ee,pe.id,se,Object.keys(Pe).length>0?Pe:void 0)}async function T(se,ee,q){const pe=ue[ee];let Pe;if(pe&&pe.length>0){const Ie=[...pe.slice(1),ee,...le[ee]||[]];s(se,q,Ie);const xt=pe[0];try{Pe=await ce(xt,se,q)}catch(qt){i.error(qt instanceof Error?qt.message:"Failed to resolve prerequisite step");return}}else{const Ie=le[ee]||[];Ie.length>0&&s(se,q,Ie),Pe=`/speckit.${ee} ${se}`}await qe(q,Pe)}async function P(se,ee,q){const pe=se.shiftKey;if(!pe&&Ce(ee))return;const Pe=de(ee,pe);if(Pe){try{await T(ee,q,Pe)}catch(Ie){i.error(Ie instanceof Error?Ie.message:"Failed to run cascade action")}return}w.value={type:"cascade",featureId:ee,command:q,title:`${q}: ${ee}`},b.value=!0}async function B(se,ee){Ce(ee)||(w.value={type:"open-chat",featureId:ee,title:`spec: ${ee}`},b.value=!0)}async function Z(se,ee,q){let pe;try{const Pe=e.conversations.find(Ie=>Ie.id===q);pe=await $fetch(`/api/skills/${ee}/prompt`,{method:"POST",body:{featureId:se,cwd:Pe?.worktreePath}})}catch(Pe){throw new Error(Pe instanceof Error?Pe.message:"Failed to render skill prompt")}await qe(q,pe.prompt)}async function ve(se,ee,q){const pe=se.shiftKey;if(!pe&&Ce(ee))return;const Pe=de(ee,pe);if(Pe){try{await Z(ee,q,Pe)}catch(Ie){i.error(Ie instanceof Error?Ie.message:"Failed to run skill")}return}w.value={type:"skill",featureId:ee,skillId:q,title:`skill: ${q} — ${ee}`},b.value=!0}function Ae(){b.value=!1,w.value=null}async function Qe(se){if(w.value){x.value=!0;try{const ee=w.value,q=await Me(ee.featureId,ee.title,se);ee.type==="cascade"?await T(ee.featureId,ee.command,q):ee.type==="skill"&&await Z(ee.featureId,ee.skillId,q),b.value=!1,w.value=null}catch(ee){i.error(ee instanceof Error?ee.message:"Failed to create conversation")}finally{x.value=!1}}}return(se,ee)=>{const q=S2,pe=aR,Pe=RR;return v(),y("div",iB,[d("div",oB,[ee[2]||(ee[2]=d("div",{class:"flex items-center gap-2 min-w-0"},null,-1)),d("div",aB,[d("button",{type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"Search (Ctrl/Cmd+K)",onClick:N},[K(p(as),{class:"h-4 w-4"})]),d("button",{type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"Refresh",onClick:Oe},[K(p(cs),{class:_e(["h-4 w-4",{"animate-spin":p(h)}])},null,8,["class"])])])]),d("div",lB,[d("div",cB,[K(p(as),{class:"absolute left-2.5 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-retro-subtle"}),Ye(d("input",{"onUpdate:modelValue":ee[0]||(ee[0]=Ie=>tt(S)?S.value=Ie:null),type:"text",placeholder:"Search features...",class:"w-full pl-8 pr-3 py-1.5 text-xs font-mono rounded border border-retro-border bg-retro-panel text-retro-text placeholder:text-retro-subtle focus:outline-none focus:border-retro-cyan transition-colors"},null,512),[[_t,p(S)]])])]),d("div",uB,[d("div",hB,[(v(!0),y(ye,null,Ne(p(I),Ie=>(v(),y("div",{key:Ie.id,ref_for:!0,ref:xt=>{p(V)[Ie.id]=xt}},[K(q,{feature:Ie,skills:p(u),"is-active":p(oe)===Ie.id,"critical-alerts":G(Ie.id).critical,"major-alerts":G(Ie.id).major,onSelect:ee[1]||(ee[1]=xt=>D(xt,{openViewer:!0})),onCascade:P,onOpenChat:B,onSkill:ve},null,8,["feature","skills","is-active","critical-alerts","major-alerts"])]))),128))]),p(h)&&p(c).length===0?(v(),y("div",dB,[...ee[3]||(ee[3]=[d("span",{class:"text-sm font-mono text-retro-muted animate-pulse"},"Loading features...",-1)])])):U("",!0),!p(h)&&p(c).length>0&&p(I).length===0?(v(),y("div",fB,[K(p(as),{class:"h-10 w-10 text-retro-subtle mb-3"}),ee[4]||(ee[4]=d("p",{class:"text-sm font-mono text-retro-muted"},"No matching features",-1)),ee[5]||(ee[5]=d("p",{class:"mt-1 text-xs font-mono text-retro-subtle"}," Try a different search term ",-1))])):U("",!0),!p(h)&&p(c).length===0?(v(),y("div",mB,[K(p(gv),{class:"h-10 w-10 text-retro-subtle mb-3"}),ee[6]||(ee[6]=d("p",{class:"text-sm font-mono text-retro-muted"},"No features found",-1)),ee[7]||(ee[7]=d("p",{class:"mt-1 text-xs font-mono text-retro-subtle"}," Create a feature in specs/ to get started ",-1))])):U("",!0)]),p(m)&&p(g)?(v(),ge(pe,{key:0,feature:p(g),onClose:j},null,8,["feature"])):U("",!0),p(O)?(v(),ge(Pe,{key:1,"available-feature-ids":p(be),onClose:z,onSelect:X},null,8,["available-feature-ids"])):U("",!0),K(Cu,{show:p(b),creating:p(x),onClose:Ae,onCreate:Qe},null,8,["show","creating"])])}}}),gB={class:"h-full flex flex-col bg-retro-black"},OB={class:"flex-shrink-0 px-3 py-2 border-b border-retro-border space-y-2"},vB={class:"flex items-center justify-between gap-2"},bB={class:"flex items-center gap-1"},xB={class:"relative"},yB=["placeholder"],kB={key:0,class:"flex-shrink-0 flex items-center gap-2 px-3 py-2 bg-retro-yellow/10 border-b border-retro-yellow/30 text-xs"},wB={class:"text-retro-yellow font-mono"},SB={class:"flex-1 overflow-y-auto p-2"},$B={key:0,class:"space-y-1"},CB={key:1,class:"text-center py-6 text-retro-muted"},QB={class:"font-mono text-xs"},PB={key:1,class:"text-center py-8 text-retro-muted"},TB={key:0,class:"space-y-2"},MB={class:"flex items-start justify-between gap-2"},AB={class:"min-w-0"},_B={class:"text-sm font-mono text-retro-text truncate"},RB={class:"text-xs text-retro-muted mt-1 truncate"},BB={class:"text-xs text-retro-muted/70 mt-1"},DB={class:"text-xs text-retro-muted/70"},ZB={class:"flex items-center gap-1 flex-shrink-0"},EB=["onClick"],LB=["onClick"],XB={key:1,class:"text-center py-6 text-retro-muted"},IB={class:"font-mono text-xs"},VB={key:1,class:"text-center py-8 text-retro-muted"},zB=Xe({__name:"ConversationsPanel",setup(r){const e=mr(),t=go(),n=Q(""),s=Q(""),i=Q(!1),o=Q(!1),a=Q(!1),l=Q(!1),c=Q(null);let u=null;Ve(n,z=>{u&&clearTimeout(u),u=setTimeout(()=>{s.value=z},180)},{immediate:!0}),kt(()=>{u&&(clearTimeout(u),u=null)});const h=new Map,f=new Map;Ve(()=>e.sortedConversations.map(z=>z.id),z=>{const X=new Set(z);for(const N of h.keys())X.has(N)||h.delete(N)},{immediate:!0}),Ve(()=>e.sortedArchivedConversations.map(z=>z.id),z=>{const X=new Set(z);for(const N of f.keys())X.has(N)||f.delete(N)},{immediate:!0});function m(z){const X=z.messages[z.messages.length-1];return[z.updatedAt,z.title,z.messages.length,X?.id||"",X?.content?.length||0].join("|")}function g(z){const X=z.messages[z.messages.length-1];return[z.updatedAt,z.archivedAt,z.title,z.messages.length,X?.id||"",X?.content?.length||0].join("|")}function O(z){const X=m(z),N=h.get(z.id);if(N&&N.signature===X)return N.text;const be=[z.title,...z.messages.map(G=>G.content||"")].join(`
|
|
66
|
+
`).toLowerCase();return h.set(z.id,{signature:X,text:be}),be}function b(z){const X=g(z),N=f.get(z.id);if(N&&N.signature===X)return N.text;const be=[z.title,...z.messages.map(G=>G.content||"")].join(`
|
|
67
|
+
`).toLowerCase();return f.set(z.id,{signature:X,text:be}),be}const x=H(()=>e.conversationViewMode==="archive"),w=H(()=>{const z=e.sortedConversations;if(!s.value.trim())return z;const X=s.value.toLowerCase().trim();return z.filter(N=>O(N).includes(X))}),S=H(()=>{const z=e.sortedArchivedConversations;if(!s.value.trim())return z;const X=s.value.toLowerCase().trim();return z.filter(N=>b(N).includes(X))}),C=H(()=>e.previewingConversationId);async function _(){if(e.checkStorageLimits().atLimit){t.error("Delete or archive a conversation first (limit: 100).");return}i.value=!0}async function I(z){o.value=!0;try{if(!await e.createConversation({baseBranch:z})){t.error("Failed to create conversation");return}i.value=!1}catch(X){t.error(X instanceof Error?X.message:"Failed to create conversation")}finally{o.value=!1}}function V(z){e.selectConversation(z),e.setConversationViewMode("active")}async function re(z){const X=await e.archiveConversation(z);if(!X.success){t.error(X.error||"Failed to archive conversation");return}t.success("Conversation archived")}async function oe(z){c.value=z,a.value=!0}function Oe(){a.value=!1,c.value=null}async function Y(z){if(c.value){l.value=!0;try{const X=await e.restoreArchivedConversation(c.value,z);if(!X.success){t.error(X.error||"Failed to restore archived conversation");return}t.success("Archived conversation restored"),a.value=!1,c.value=null}finally{l.value=!1}}}async function L(z){const X=await e.deleteArchivedConversation(z);if(!X.success){t.error(X.error||"Failed to delete archived conversation");return}t.success("Archived conversation deleted")}function D(z,X){e.renameConversation(z,X)}function j(z){return new Date(z).toLocaleString()}function F(z){if(!z.length)return"No messages";const N=(z[z.length-1].content||"").trim();return N?N.length>80?`${N.slice(0,80)}...`:N:"No messages"}return(z,X)=>(v(),y("div",gB,[d("div",OB,[d("div",vB,[d("button",{onClick:_,class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"New conversation","aria-label":"New conversation"},[K(p(ul),{class:"w-4 h-4"})]),d("div",bB,[d("button",{onClick:X[0]||(X[0]=N=>p(e).setConversationViewMode("active")),class:_e(["p-1.5 rounded transition-colors",x.value?"text-retro-muted hover:text-retro-cyan hover:bg-retro-panel":"text-retro-cyan bg-retro-cyan/10"]),title:"Active conversations","aria-label":"Active conversations"},[K(p(ov),{class:"w-4 h-4"})],2),d("button",{onClick:X[1]||(X[1]=N=>p(e).setConversationViewMode("archive")),class:_e(["p-1.5 rounded transition-colors",x.value?"text-retro-cyan bg-retro-cyan/10":"text-retro-muted hover:text-retro-cyan hover:bg-retro-panel"]),title:"Archived conversations","aria-label":"Archived conversations"},[K(p(Vh),{class:"w-4 h-4"})],2)])]),d("div",xB,[K(p(as),{class:"absolute left-2.5 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-retro-muted"}),Ye(d("input",{"onUpdate:modelValue":X[2]||(X[2]=N=>n.value=N),type:"text",placeholder:x.value?"Search archive...":"Search conversations...",class:"w-full pl-8 pr-3 py-1.5 text-xs font-mono bg-retro-black border border-retro-border rounded focus:border-retro-cyan focus:outline-none focus:ring-1 focus:ring-retro-cyan text-retro-text placeholder-retro-muted"},null,8,yB),[[_t,n.value]])])]),p(e).isNearStorageLimit?(v(),y("div",kB,[K(p(Bn),{class:"w-4 h-4 text-retro-yellow flex-shrink-0"}),d("p",wB,A(p(e).conversationCount)+" active conversations. Limit is 100. ",1)])):U("",!0),d("div",SB,[x.value?(v(),y(ye,{key:1},[p(e).hasArchivedConversations?(v(),y("div",TB,[S.value.length>0?(v(!0),y(ye,{key:0},Ne(S.value,(N,be,G,le)=>{const ue=[N.id,N.title,N.updatedAt,N.archivedAt,N.messages.length];if(le&&le.key===N.id&&Lh(le,ue))return le;const ce=(v(),y("div",{key:N.id,onClick:de=>oe(N.id),onKeydown:[is(xr(de=>oe(N.id),["prevent"]),["enter"]),is(xr(de=>oe(N.id),["prevent"]),["space"])],class:"w-full text-left p-3 rounded border border-retro-border hover:border-retro-cyan/50 hover:bg-retro-cyan/5 transition-colors",role:"button",tabindex:"0"},[d("div",MB,[d("div",AB,[d("h3",_B,A(N.title),1),d("p",RB,A(F(N.messages)),1),d("p",BB," Archived: "+A(j(N.archivedAt)),1),d("p",DB," Updated: "+A(j(N.updatedAt)),1)]),d("div",ZB,[d("button",{onClick:xr(de=>oe(N.id),["stop"]),class:"inline-flex items-center gap-1 px-2 py-1 text-xs font-mono border border-retro-cyan/40 text-retro-cyan rounded hover:bg-retro-cyan/10 transition-colors",title:"Restore archived conversation"},[K(p(Vh),{class:"w-3.5 h-3.5"}),X[9]||(X[9]=Le(" Restore ",-1))],8,EB),d("button",{onClick:xr(de=>L(N.id),["stop"]),class:"inline-flex items-center gap-1 px-2 py-1 text-xs font-mono border border-red-400/40 text-red-300 rounded hover:bg-red-500/10 transition-colors",title:"Delete archived conversation"},[K(p(pn),{class:"w-3.5 h-3.5"}),X[10]||(X[10]=Le(" Delete ",-1))],8,LB)])])],40,["onClick","onKeydown"]));return ce.memo=ue,ce},X,5),128)):(v(),y("div",XB,[d("p",IB,'No archived results for "'+A(n.value)+'"',1)]))])):(v(),y("div",VB,[...X[11]||(X[11]=[d("p",{class:"font-mono text-sm"},"No archived conversations",-1),d("p",{class:"text-xs mt-1"},"Archived conversations will appear here",-1)])]))],64)):(v(),y(ye,{key:0},[p(e).hasConversations?(v(),y("div",$B,[w.value.length>0?(v(!0),y(ye,{key:0},Ne(w.value,(N,be,G,le)=>{const ue=[N.id,N.title,N.updatedAt,N.messages.length,N.finalized,N.id===p(e).activeConversationId,p(e).isConversationStreaming(N.id),C.value===N.id];if(le&&le.key===N.id&&Lh(le,ue))return le;const ce=(v(),y("div",{key:N.id},[K(V1,{conversation:N,"is-active":N.id===p(e).activeConversationId,"is-streaming":p(e).isConversationStreaming(N.id),"is-previewing":C.value===N.id,onSelect:de=>V(N.id),onArchive:de=>re(N.id),onRename:de=>D(N.id,de)},null,8,["conversation","is-active","is-streaming","is-previewing","onSelect","onArchive","onRename"])]));return ce.memo=ue,ce},X,3),128)):(v(),y("div",CB,[d("p",QB,'No results for "'+A(n.value)+'"',1)]))])):(v(),y("div",PB,[...X[8]||(X[8]=[d("p",{class:"font-mono text-sm"},"No conversations",-1),d("p",{class:"text-xs mt-1"},'Click "New" to start',-1)])]))],64))]),K(Cu,{show:i.value,creating:o.value,onClose:X[7]||(X[7]=N=>i.value=!1),onCreate:I},null,8,["show","creating"]),K(Cu,{show:a.value,creating:l.value,onClose:Oe,onCreate:Y},null,8,["show","creating"])]))}}),NB={mobile:768,tablet:1024};function WB(r,e){return r<e.mobile?"mobile":r<e.tablet?"tablet":"desktop"}const b1=Qu("layout",{state:()=>({currentViewport:"desktop",chatFullscreen:!1}),getters:{isMobile:r=>r.currentViewport==="mobile",isTablet:r=>r.currentViewport==="tablet",isDesktop:r=>r.currentViewport==="desktop",isChatFullscreen:r=>r.chatFullscreen},actions:{updateViewport(r){this.currentViewport=WB(r,NB)},toggleChatFullscreen(){this.chatFullscreen=!this.chatFullscreen},setChatFullscreen(r){this.chatFullscreen=r}}});function qB(){const r=Q(null),e=Q(!0);let t=null,n="smooth";const s=50;function i(){const f=r.value;return f?f.scrollHeight-f.scrollTop-f.clientHeight<s:!0}function o(){e.value=i()}function a(f="smooth"){if(n=f,t!==null)return;t=(typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame.bind(window):g=>setTimeout(()=>g(Date.now()),16))(()=>{t=null,Wt(()=>{const g=r.value;g&&g.scrollTo({top:g.scrollHeight,behavior:n})})})}function l(f="smooth"){a(f),e.value=!0}function c(f="smooth"){e.value&&a(f)}function u(){e.value=!0}function h(){e.value=!1}return{containerRef:r,shouldAutoScroll:Te(e),onScroll:o,scrollToBottom:a,forceScrollToBottom:l,maybeScrollToBottom:c,enableAutoScroll:u,disableAutoScroll:h}}function jB(r){if(!r)return null;if(r instanceof HTMLElement)return r;if(typeof r=="object"&&"$el"in r){const e=r.$el;return e instanceof HTMLElement?e:null}return null}function YB(r){const{allMessages:e,containerRef:t,estimateItemHeight:n=120,overscan:s=6}=r,i=Q(0),o=Q(0),a=Q(new Map),l=new Map;let c=null;function u(w,S){if(!Number.isFinite(S)||S<=0)return;const C=Math.ceil(S);if(a.value.get(w)===C)return;const _=new Map(a.value);_.set(w,C),a.value=_}function h(w,S){u(w,S.getBoundingClientRect().height)}function f(w,S){const C=l.get(w);C&&c&&c.unobserve(C),C&&delete C.dataset.virtualMessageId,l.delete(w);const _=jB(S);_&&(_.dataset.virtualMessageId=w,l.set(w,_),h(w,_),c&&c.observe(_))}function m(){const w=t.value;w&&(i.value=w.scrollTop)}const g=H(()=>{const w=e.value,S=new Array(w.length);let C=0;for(let _=0;_<w.length;_++)S[_]=C,C+=a.value.get(w[_].id)??n;return{offsets:S,totalHeight:C}});function O(w,S){let C=0,_=w.length-1,I=w.length;for(;C<=_;){const V=Math.floor((C+_)/2);w[V]>=S?(I=V,_=V-1):C=V+1}return I===w.length?Math.max(0,w.length-1):I}const b=H(()=>{const w=e.value;if(w.length===0)return[];const{offsets:S}=g.value,C=i.value,_=C+Math.max(o.value,1),I=O(S,Math.max(0,C-n));let V=I;for(;V<w.length&&S[V]<_;)V++;const re=Math.max(0,I-s),oe=Math.min(w.length,V+s),Oe=[];for(let Y=re;Y<oe;Y++)Oe.push({message:w[Y],index:Y,top:S[Y]});return Oe}),x=H(()=>g.value.totalHeight);return mt(()=>{const w=t.value;w&&(o.value=w.clientHeight,i.value=w.scrollTop),c=new ResizeObserver(S=>{for(const C of S){const _=C.target;if(t.value&&_===t.value){o.value=C.contentRect.height;continue}const I=_.dataset.virtualMessageId;I&&u(I,C.contentRect.height)}}),t.value&&c.observe(t.value);for(const[S,C]of l)C.dataset.virtualMessageId=S,c.observe(C),h(S,C)}),kt(()=>{c&&(c.disconnect(),c=null),l.clear()}),{visibleItems:b,totalHeight:x,onVirtualScroll:m,setItemRef:f}}const FB={key:0,class:"flex flex-col items-center justify-center h-full p-8 text-center"},UB={key:1,class:"relative"},GB={class:"sticky bottom-0"},HB={key:0,class:"px-4 py-2 bg-retro-dark/90 border-t border-retro-border/50 backdrop-blur-sm"},KB={key:1,class:"px-4 py-2.5 bg-retro-red/20 border-t border-retro-red/50"},JB={class:"flex items-start gap-2"},e7={class:"flex-1 min-w-0"},t7={class:"flex items-center justify-between gap-2 mb-0.5"},r7={class:"text-xs font-mono text-retro-red/80 break-words whitespace-pre-wrap"},n7={key:2,class:"px-4 py-2 bg-retro-dark/90 border-t border-retro-border/50"},s7=Xe({__name:"ChatMessages",setup(r){const e=mr(),{containerRef:t,onScroll:n,maybeScrollToBottom:s,scrollToBottom:i,forceScrollToBottom:o}=qB(),{visibleItems:a,totalHeight:l,onVirtualScroll:c,setItemRef:u}=YB({allMessages:H(()=>e.messages),containerRef:t});function h(){n(),c()}const f=H(()=>e.isActiveConversationStreaming),m=H(()=>{const w=e.lastMessage;return!w||w.role!=="assistant"?null:w.status}),g=Q(!1);function O(w){const S=w.contentBlocks;return!S||S.length===0?"":S.map(C=>{switch(C.type){case"tool_use":return`u:${C.id}:${C.status}:${C.inputSummary}`;case"tool_result":return`r:${C.id}:${C.toolUseId}:${C.isError?1:0}:${C.content.length}`;case"text":return`t:${C.id}:${C.text.length}`;case"thinking":return`k:${C.id}:${C.thinking.length}`;case"result_summary":return`s:${C.id}:${C.numTurns}:${C.durationMs}`;case"session_init":return`i:${C.id}:${C.model}:${C.tools.length}`;default:return""}}).join("|")}const b=Q(null);function x(){if(b.value&&(b.value(),b.value=null),!t.value||typeof ResizeObserver>"u")return;const w=new ResizeObserver(()=>{s("instant")});w.observe(t.value),b.value=()=>{w.disconnect()}}return mt(()=>{i("instant"),x()}),kt(()=>{b.value&&b.value()}),Ve(()=>e.activeConversationId,()=>{g.value=!1,i("instant")}),Ve(t,()=>{x()}),Ve(()=>[e.activeConversationId,e.messages.length],([w,S])=>{!w||S===0||g.value||(g.value=!0,o("instant"))},{immediate:!0}),Ve(()=>e.messages.length,()=>{s("instant")}),Ve(()=>e.lastMessage?.content,()=>{s("instant")}),Ve([f,()=>e.lastError],()=>{s("instant")}),Ve(l,()=>{s("instant")}),(w,S)=>(v(),y("div",{ref_key:"containerRef",ref:t,class:"flex-1 overflow-y-auto",onScroll:h},[p(e).hasMessages?(v(),y("div",UB,[d("div",{class:"relative",style:Jt({height:`${p(l)}px`})},[(v(!0),y(ye,null,Ne(p(a),C=>(v(),y("div",{key:C.message.id,class:"absolute left-0 right-0 border-b border-retro-border/30",style:Jt({transform:`translateY(${C.top}px)`})},[d("div",{ref_for:!0,ref:_=>p(u)(C.message.id,_)},[Xm([C.message.id,C.message.status,C.message.content,C.message.contentBlocks?.length||0,O(C.message),C.message.tools?.length||0],()=>K(z1,{message:C.message},null,8,["message"]),S,0)],512)],4))),128))],4)])):(v(),y("div",FB,[...S[2]||(S[2]=[d("div",{class:"text-retro-muted text-sm font-mono mb-2"}," No messages yet ",-1),d("div",{class:"text-retro-muted text-xs font-mono"}," Send a message to start chatting ",-1)])])),d("div",GB,[p(f)&&!p(e).lastError?(v(),y("div",HB,[...S[3]||(S[3]=[Vm('<div class="flex items-center gap-2"><div class="flex gap-1"><span class="w-1.5 h-1.5 rounded-full bg-retro-cyan animate-bounce" style="animation-delay:0ms;"></span><span class="w-1.5 h-1.5 rounded-full bg-retro-cyan animate-bounce" style="animation-delay:150ms;"></span><span class="w-1.5 h-1.5 rounded-full bg-retro-cyan animate-bounce" style="animation-delay:300ms;"></span></div><span class="text-xs font-mono text-retro-muted">Processing...</span></div>',1)])])):U("",!0),p(e).lastError?(v(),y("div",KB,[d("div",JB,[K(p(po),{class:"w-4 h-4 text-retro-red flex-shrink-0 mt-0.5"}),d("div",e7,[d("div",t7,[S[4]||(S[4]=d("p",{class:"text-xs font-mono font-semibold text-retro-red"},"Error",-1)),d("button",{class:"text-xs font-mono text-retro-red/60 hover:text-retro-red underline",onClick:S[1]||(S[1]=C=>p(e).clearError())}," Dismiss ")]),d("p",r7,A(p(e).lastError),1),S[5]||(S[5]=d("p",{class:"text-xs font-mono text-retro-muted mt-1"}," Check browser console (F12) for more details ",-1))])])])):p(m)==="stopped"?(v(),y("div",n7,[...S[6]||(S[6]=[d("div",{class:"flex items-center gap-2"},[d("span",{class:"w-2 h-2 rounded-full bg-retro-muted"}),d("span",{class:"text-xs font-mono text-retro-muted"},"Stopped")],-1)])])):U("",!0)])],544))}});function i7(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"fill-rule":"evenodd",d:"M4.755 10.059a7.5 7.5 0 0 1 12.548-3.364l1.903 1.903h-3.183a.75.75 0 1 0 0 1.5h4.992a.75.75 0 0 0 .75-.75V4.356a.75.75 0 0 0-1.5 0v3.18l-1.9-1.9A9 9 0 0 0 3.306 9.67a.75.75 0 1 0 1.45.388Zm15.408 3.352a.75.75 0 0 0-.919.53 7.5 7.5 0 0 1-12.548 3.364l-1.902-1.903h3.183a.75.75 0 0 0 0-1.5H2.984a.75.75 0 0 0-.75.75v4.992a.75.75 0 0 0 1.5 0v-3.18l1.9 1.9a9 9 0 0 0 15.059-4.035.75.75 0 0 0-.53-.918Z","clip-rule":"evenodd"})])}function Em(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"fill-rule":"evenodd",d:"M12.53 16.28a.75.75 0 0 1-1.06 0l-7.5-7.5a.75.75 0 0 1 1.06-1.06L12 14.69l6.97-6.97a.75.75 0 1 1 1.06 1.06l-7.5 7.5Z","clip-rule":"evenodd"})])}function o7(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{d:"M3.478 2.404a.75.75 0 0 0-.926.941l2.432 7.905H13.5a.75.75 0 0 1 0 1.5H4.984l-2.432 7.905a.75.75 0 0 0 .926.94 60.519 60.519 0 0 0 18.445-8.986.75.75 0 0 0 0-1.218A60.517 60.517 0 0 0 3.478 2.404Z"})])}function a7(r,e){return v(),y("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true","data-slot":"icon"},[d("path",{"fill-rule":"evenodd",d:"M4.5 7.5a3 3 0 0 1 3-3h9a3 3 0 0 1 3 3v9a3 3 0 0 1-3 3h-9a3 3 0 0 1-3-3v-9Z","clip-rule":"evenodd"})])}const l7=/^\/(reset|reset-context|new|clear)$/,c7=/^\/(context|ctx)$/;function u7(r){if(l7.test(r))return{kind:"reset"};if(c7.test(r))return{kind:"context"};const e=p7(r);return e?{kind:"spec-search",command:e}:{kind:"none"}}function h7(r,e){const t={permissionMode:e};return r?.hasWorktree&&r.worktreePath?t.cwd=r.worktreePath:r?.cwd&&(t.cwd=r.cwd),r?.featureId&&(t.featureId=r.featureId),r?.providerId&&(t.providerId=r.providerId),r?.providerModelKey&&(t.providerModelKey=r.providerModelKey),r?.providerSessionId&&(t.providerSessionId=r.providerSessionId),t}function d7(r,e={}){return{q:r.q,mode:r.mode??"hybrid",featureId:r.featureId??e.featureId,fileType:r.fileType,limit:String(r.limit??5)}}function f7(r){const e=r.instructionFiles.length>0?r.instructionFiles.map(n=>{const s=n.source==="cwd"?"cwd":"ancestor",i=n.mtime?` (mtime: ${n.mtime})`:"";return`- \`${n.path}\` [${s}] - ${n.hint}${i}`}):["- (none detected from current cwd ancestry)"],t=r.specContext.files.length>0?r.specContext.files.map(n=>`- \`${n}\``):["- (none)"];return["## Context Snapshot","",`- Time: ${r.generatedAt}`,`- Session state: **${r.sessionState}**`,`- Provider session ID: \`${r.providerSessionId??"(empty)"}\``,`- Provider: \`${r.providerId}\` / \`${r.providerModelKey}\``,`- Permission mode: \`${r.permissionMode}\``,`- CWD (requested): \`${r.requestedCwd}\``,`- CWD (effective): \`${r.effectiveCwd}\``,`- Feature: \`${r.featureId??"(none)"}\``,"","### Spec Context Injection",`- Active on next turn: **${r.specContext.active?"yes":"no"}**`,`- Reason: ${r.specContext.reason}`,...t,"","### Detected Instruction Files",...e].join(`
|
|
68
|
+
`)}function m7(r){return(r.match(/"[^"]*"|'[^']*'|\S+/g)??[]).map(t=>t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'")?t.slice(1,-1):t)}function p7(r){const e=r.match(/^\/(?:spec-search|specsearch)\b(.*)$/i);if(!e)return null;const t=m7(e[1]?.trim()??""),n=[],s={q:""};for(let i=0;i<t.length;i++){const o=t[i];if(o==="--mode"&&t[i+1]){const a=t[++i];(a==="keyword"||a==="semantic"||a==="hybrid")&&(s.mode=a);continue}if(o.startsWith("--mode=")){const a=o.slice(7);(a==="keyword"||a==="semantic"||a==="hybrid")&&(s.mode=a);continue}if(o==="--feature"&&t[i+1]){s.featureId=t[++i];continue}if(o.startsWith("--feature=")){s.featureId=o.slice(10);continue}if(o==="--file-type"&&t[i+1]){s.fileType=t[++i];continue}if(o.startsWith("--file-type=")){s.fileType=o.slice(12);continue}if(o==="--limit"&&t[i+1]){const a=Number.parseInt(t[++i],10);Number.isFinite(a)&&a>0&&(s.limit=a);continue}if(o.startsWith("--limit=")){const a=Number.parseInt(o.slice(8),10);Number.isFinite(a)&&a>0&&(s.limit=a);continue}n.push(o)}return s.q=n.join(" ").trim(),s}function g7(r,e=1400){const t=r.trim();return t.length<=e?t:`${t.slice(0,e)}
|
|
69
|
+
...`}function O7(r,e){const t=[];if(t.push("## Spec Search Results"),t.push(""),t.push(`- Query: \`${r.q}\``),t.push(`- Mode: \`${e.mode}\``),r.featureId&&t.push(`- Feature filter: \`${r.featureId}\``),r.fileType&&t.push(`- File type filter: \`${r.fileType}\``),t.push(`- Hits: **${e.totalCount}** (${e.searchTime}ms)`),e.warning&&t.push(`- Warning: ${e.warning}`),e.results.length===0)return t.push(""),t.push("No matching indexed chunks were found."),t.join(`
|
|
70
|
+
`);t.push("");for(const[n,s]of e.results.entries()){const i=s.chunk;t.push(`### ${n+1}. \`${i.sourcePath}:${i.lineStart}\``),t.push(`- Match: \`${s.matchType}\` (score: ${s.score.toFixed(3)})`),i.headingHierarchy.length>0&&t.push(`- Headings: ${i.headingHierarchy.join(" > ")}`),t.push(""),t.push(g7(i.content)),t.push("")}return t.join(`
|
|
71
|
+
`)}function x1(r){return`${r.providerId}::${r.modelKey}`}function v7(r,e){const t=new Map;for(const s of r)for(const i of s.models)t.set(i.label,(t.get(i.label)??0)+1);return r.flatMap(s=>s.models.map(i=>{const o=s.capabilities.streaming&&(!e||s.capabilities.permissions),a=(t.get(i.label)??0)>1;return{key:`${s.id}::${i.key}`,providerId:s.id,providerName:s.name,modelKey:i.key,modelLabel:i.label,label:a?`${i.label} · ${s.name}`:i.label,compatible:o}})).sort((s,i)=>s.modelLabel.localeCompare(i.modelLabel,void 0,{sensitivity:"base"})||s.providerName.localeCompare(i.providerName,void 0,{sensitivity:"base"}))}function b7(r){const e=new Map;for(const s of r){const i=e.get(s.providerId);if(i){i.options.push(s);continue}e.set(s.providerId,{providerId:s.providerId,providerName:s.providerName,options:[s]})}const t=new Map([["codex",0],["claude",1]]),n=Array.from(e.values());return n.sort((s,i)=>{const o=t.get(s.providerId)??99,a=t.get(i.providerId)??99;return o!==a?o-a:s.providerName.localeCompare(i.providerName,void 0,{sensitivity:"base"})}),n}function x7(r,e){const t=x1(e);return r.find(n=>n.key===t)??null}const Lm=4,y7=5*1024*1024;function k7(r){return r<1024?`${r} B`:r<1024*1024?`${(r/1024).toFixed(1)} KB`:`${(r/(1024*1024)).toFixed(1)} MB`}function w7(r,e=y7){return r.type.startsWith("image/")?r.size>e?{ok:!1,reason:"too-large"}:{ok:!0}:{ok:!1,reason:"not-image"}}function S7(r){return new Promise((e,t)=>{const n=new FileReader;n.onload=()=>{typeof n.result=="string"?e(n.result):t(new Error("Failed to read image"))},n.onerror=()=>t(n.error||new Error("Failed to read image")),n.readAsDataURL(r)})}function $7(r=Date.now,e=Math.random){return`att-${r()}-${e().toString(36).slice(2,8)}`}function C7(r=Date.now,e=Math.random){return`q-${r()}-${e().toString(36).slice(2,8)}`}function Q7(r,e=C7){const t=r.text.trim();return t.length===0&&r.attachments.length===0?null:{id:e(),text:t,attachments:[...r.attachments]}}function P7(r,e){return r.filter(t=>t.id!==e)}const T7={class:"flex-shrink-0 flex-grow-0 border-t border-retro-border bg-retro-dark p-3"},M7={class:"flex items-center gap-2 mb-2"},A7={class:"relative min-w-0 flex-1 max-w-[154px] model-selector"},_7=["disabled"],R7={class:"truncate text-left"},B7={key:0,class:"absolute bottom-full left-0 mb-1 py-1 bg-retro-dark border border-retro-border rounded shadow-lg z-10 min-w-[220px] max-w-[280px]"},D7={key:0,class:"px-3 py-1.5 text-xs font-mono text-retro-muted"},Z7={class:"px-3 py-1 text-[11px] font-mono uppercase tracking-wide text-retro-cyan/80 select-none"},E7=["disabled","onClick"],L7={class:"truncate"},X7={class:"relative mode-selector"},I7={key:0,class:"absolute bottom-full left-0 mb-1 py-1 bg-retro-dark border border-retro-border rounded shadow-lg z-10 min-w-[140px]"},V7=["onClick"],z7={class:"text-xs font-mono text-retro-muted"},N7={key:0,class:"mb-3 p-3 bg-retro-yellow/10 border border-retro-yellow/50 rounded"},W7={class:"flex items-center justify-between gap-3"},q7={class:"flex-1 min-w-0"},j7={class:"text-xs font-mono text-retro-text truncate"},Y7={class:"text-retro-cyan"},F7={key:0,class:"text-retro-muted"},U7={key:1,class:"text-retro-muted"},G7={key:1,class:"mb-3 p-3 bg-retro-cyan/10 border border-retro-cyan/50 rounded"},H7={key:2,class:"mb-2 flex flex-wrap gap-2"},K7=["src","alt"],J7={class:"mt-1 truncate text-[10px] font-mono text-retro-muted"},eD={class:"truncate text-[10px] font-mono text-retro-muted/80"},tD=["onClick"],rD={key:3,class:"mb-2"},nD={class:"text-[10px] font-mono text-retro-muted mb-1 uppercase tracking-wide"},sD={class:"space-y-1"},iD={class:"text-[10px] font-mono text-retro-yellow flex-shrink-0"},oD={class:"flex-1 text-xs font-mono text-retro-text truncate"},aD={key:0,class:"text-[10px] font-mono text-retro-muted flex-shrink-0"},lD=["onClick"],cD={class:"flex gap-2 items-start"},uD=["disabled"],hD={class:"flex-1 relative min-h-[40px]"},dD=["disabled","placeholder"],fD=["disabled","title"],mD=Xe({__name:"ChatInput",props:{disabled:{type:Boolean}},setup(r){const e=r,t=mr(),n=Oo(),{sendMessage:s,sendPermissionResponse:i,approvePlan:o,rejectPlan:a,abort:l,resetContext:c}=Pl(),u=Q(""),h=Q(null),f=Q(null),m=Q(!1),g=Q(!1),O=Q(!1),b=Q([]);let x=null;const w=Q(null),S=Q([]),{data:C,pending:_}=wc("chat-input-ai-providers",()=>$fetch("/api/ai/providers"),{server:!1,default:()=>({providers:[]})}),I=H(()=>C.value?.providers??[]),V=H(()=>t.permissionMode==="ask"||t.permissionMode==="plan"),re=H(()=>v7(I.value,V.value)),oe=H(()=>b7(re.value)),Oe=H(()=>{const ae=t.activeConversation;return ae?.providerId&&ae.providerModelKey?{providerId:ae.providerId,modelKey:ae.providerModelKey}:w.value?w.value:n.providerSelection}),Y=H(()=>x1(Oe.value)),L=H(()=>x7(re.value,Oe.value)),D=H(()=>L.value?.label||"Select model");function j(ae,we){t.setConversationProviderSelection(ae,we.providerId,we.modelKey),t.clearProviderSession(ae),t.saveConversation(ae,!0)}function F(ae){w.value&&(j(ae,w.value),w.value=null)}function z(ae){if(!ae||!ae.compatible)return;const we={providerId:ae.providerId,modelKey:ae.modelKey},Be=t.activeConversationId;if(Be){j(Be,we),w.value=null,O.value=!1;return}w.value=we,O.value=!1}const X={plan:_u,ask:Ru,auto:Hm,bypass:Bu},N={plan:"text-retro-cyan",ask:"text-retro-green",auto:"text-retro-yellow",bypass:"text-retro-red"};function be(ae){t.setPermissionMode(ae),g.value=!1}function G(ae){const we=ae.target;we.closest(".mode-selector")||(g.value=!1),we.closest(".model-selector")||(O.value=!1)}mt(()=>{document.addEventListener("click",G),n.hydrate()}),kt(()=>{document.removeEventListener("click",G),x!==null&&typeof window<"u"&&typeof window.cancelAnimationFrame=="function"&&(window.cancelAnimationFrame(x),x=null)});const le=H(()=>(u.value.trim().length>0||b.value.length>0)&&!m.value&&!t.pendingPermission&&!de.value),ue=H(()=>t.isActiveConversationStreaming&&!t.pendingPermission),ce=H(()=>t.pendingPermission!==null),de=H(()=>t.pendingPlanApproval!==null);function Ce(){i(!0,t.activeConversationId)}function Me(){i(!1,t.activeConversationId)}function qe(){o(t.activeConversationId)}function T(){a(t.activeConversationId)}function P(){b.value=[],f.value&&(f.value.value="")}function B(ae){b.value=b.value.filter(we=>we.id!==ae)}async function Z(ae){const we=ae.target,Be=we.files?Array.from(we.files):[];if(Be.length===0)return;const{useToast:Fe}=await os(async()=>{const{useToast:ut}=await import("./DvDpGQk1.js").then(jt=>jt.n);return{useToast:ut}},__vite__mapDeps([0,1,2]),import.meta.url),je=Fe();let $t=Lm-b.value.length;if($t<=0){je.warning(`You can attach up to ${Lm} images per message.`),we.value="";return}for(const ut of Be){if($t<=0)break;const jt=w7(ut);if(!jt.ok){jt.reason==="not-image"?je.warning(`Skipped "${ut.name}": only image files are supported.`):je.warning(`Skipped "${ut.name}": max size is 5 MB.`);continue}try{const It=await S7(ut);b.value.push({id:$7(),name:ut.name,mimeType:ut.type,size:ut.size,dataUrl:It}),$t--}catch{je.error(`Failed to attach "${ut.name}".`)}}we.value=""}const ve=H(()=>{if(t.isActiveConversationStreaming||m.value)return!1;const ae=t.lastMessage;return ae?.role==="assistant"&&ae?.status==="error"});async function Ae(ae){const we=t.activeConversationId??await t.createConversation(),Be=t.addAssistantMessage(we);if(!ae.q){t.updateMessage(Be.id,{content:["Usage: `/spec-search <query> [--mode keyword|semantic|hybrid] [--feature <feature-id>] [--file-type <type>] [--limit <n>]`","","Examples:","- `/spec-search FR-001`",'- `/spec-search "indexing indicator" --mode hybrid --feature 008-spec-search --limit 5`'].join(`
|
|
72
|
+
`),status:"complete"},we);return}const Fe=t.activeConversation,je=d7(ae,{featureId:Fe?.featureId});try{const $t=await $fetch("/api/specs/search",{query:je});t.updateMessage(Be.id,{content:O7({...ae,mode:je.mode,featureId:je.featureId},$t),status:"complete"},we)}catch($t){const ut=$t instanceof Error?$t.message:"Failed to run spec search";t.updateMessage(Be.id,{content:`Spec search failed: ${ut}`,status:"error"},we)}}async function Qe(){const ae=h7(t.activeConversation,t.permissionMode),we=await $fetch("/api/chat/context",{query:ae}),Be=t.activeConversationId??await t.createConversation(),Fe=t.addAssistantMessage(Be);t.updateMessage(Fe.id,{content:f7(we),status:"complete"},Be)}function se(ae=[]){const we=Ca(t.activeConversation,!0)??{};return ae.length>0?{...we,attachments:ae}:Object.keys(we).length>0?we:void 0}function ee(ae){const we=t.addAssistantMessage(ae);return t.startSession(`session-${Date.now()}`,ae),t.startConversationStreaming(ae),t.saveConversation(ae,!0),we}function q(ae,we,Be,Fe){const je=Be instanceof Error?Be.message:Fe;t.setSessionError(je,ae),t.updateMessage(we,{status:"error"},ae),t.endSession(ae),t.endConversationStreaming(ae)}async function pe(ae,we){const Be=ae!==void 0,Fe=(ae??u.value).trim(),je=we??[...b.value];if(Fe.length===0&&je.length===0||t.isActiveConversationStreaming||m.value||e.disabled)return;const $t=!!t.activeConversationId;let ut=null,jt=null;const It=u7(Fe);if(It.kind!=="none"){if(It.kind==="reset"){await nn();return}It.kind==="context"?await Qe():It.kind==="spec-search"&&await Ae(It.command),Be||(u.value="",P(),gr());return}m.value=!0,Be||(u.value="",P(),gr());try{if(await t.addUserMessageWithConversation(Fe,je),ut=t.activeConversationId,!ut)throw new Error("Failed to create or select a conversation");$t||F(ut);const Or=ee(ut);jt=Or.id,await s(Fe,Or.id,ut,se(je))}catch(Or){if(ut&&jt)q(ut,jt,Or,"Failed to send message");else{const qn=Or instanceof Error?Or.message:"Failed to send message";t.setSessionError(qn)}}finally{m.value=!1}}async function Pe(){try{l(t.activeConversationId)}catch{}}function Ie(){t.isActiveConversationStreaming?xt():pe()}function xt(){const ae=Q7({text:u.value,attachments:b.value});ae&&(S.value.push(ae),u.value="",P(),gr(),Er())}function qt(ae){S.value=P7(S.value,ae)}async function rr(){if(S.value.length===0||t.isActiveConversationStreaming||m.value)return;const ae=S.value.shift();await pe(ae.text,ae.attachments)}async function nn(){if(t.activeConversationId){u.value="",P(),gr(),m.value=!0;try{await c(t.activeConversationId);const ae=t.addAssistantMessage(t.activeConversationId);t.updateMessage(ae.id,{content:"✨ **Context cleared** — The AI conversation context has been reset. Starting fresh from here.",status:"complete"},t.activeConversationId);const{useToast:we}=await os(async()=>{const{useToast:Fe}=await import("./DvDpGQk1.js").then(je=>je.n);return{useToast:Fe}},__vite__mapDeps([0,1,2]),import.meta.url);we().success("AI context has been reset. The conversation will start fresh.")}catch(ae){console.error("Failed to reset context:",ae);const{useToast:we}=await os(async()=>{const{useToast:Fe}=await import("./DvDpGQk1.js").then(je=>je.n);return{useToast:Fe}},__vite__mapDeps([0,1,2]),import.meta.url);we().error("Failed to reset context. Please try again.")}finally{m.value=!1}}}async function Mr(){const ae=t.messages;let we=null;for(let je=ae.length-1;je>=0;je--)if(ae[je].role==="user"){we={content:ae[je].content,attachments:ae[je].attachments??[]};break}if(!we||!t.activeConversationId)return;const Be=t.activeConversationId;t.clearError(),m.value=!0;let Fe=null;try{const je=ee(Be);Fe=je.id,await s(we.content,je.id,Be,se(we.attachments))}catch(je){if(Fe)q(Be,Fe,je,"Failed to retry message");else{const $t=je instanceof Error?je.message:"Failed to retry message";t.setSessionError($t,Be)}}finally{m.value=!1}}function Nn(ae){ae.key==="Enter"&&!ae.shiftKey&&(ae.preventDefault(),Ie())}function sn(){const ae=h.value;if(ae){if(!u.value.trim()){ae.style.height="";return}ae.style.height="auto",ae.style.height=Math.min(ae.scrollHeight,200)+"px"}}function Wn(){if(x!==null)return;x=(typeof window<"u"&&typeof window.requestAnimationFrame=="function"?window.requestAnimationFrame.bind(window):we=>setTimeout(()=>we(Date.now()),16))(()=>{x=null,sn()})}function gr(){const ae=h.value;ae&&(ae.style.height="")}function Er(){Wt(()=>{h.value?.focus()})}return Ve(u,Wn),Ve(()=>t.isActiveConversationStreaming,(ae,we)=>{we&&!ae&&(S.value.length>0?Wt(()=>rr()):Er())}),Ve(()=>t.activeConversationId,()=>{t.activeConversationId&&(w.value=null),S.value=[],P(),Er()}),(ae,we)=>(v(),y("div",T7,[d("div",M7,[d("div",A7,[d("button",{disabled:r.disabled||p(t).isActiveConversationStreaming||p(ce)||p(de)||p(_)||p(re).length===0,class:"flex items-center justify-between gap-1.5 w-full px-2 py-1 rounded border border-retro-border/50 hover:border-retro-border text-xs font-mono text-retro-muted transition-colors disabled:opacity-60 disabled:cursor-not-allowed",onClick:we[0]||(we[0]=Be=>O.value=!p(O))},[d("span",R7,A(p(D)),1),K(p(Em),{class:"w-3 h-3 flex-shrink-0"})],8,_7),p(O)?(v(),y("div",B7,[p(re).length===0?(v(),y("div",D7," Loading models... ")):U("",!0),(v(!0),y(ye,null,Ne(p(oe),Be=>(v(),y("div",{key:Be.providerId,class:"py-0.5"},[d("div",Z7,A(Be.providerName),1),(v(!0),y(ye,null,Ne(Be.options,Fe=>(v(),y("button",{key:Fe.key,disabled:!Fe.compatible,class:_e(["flex items-center gap-2 w-full px-3 py-1.5 text-xs font-mono text-left hover:bg-retro-panel transition-colors disabled:opacity-50 disabled:cursor-not-allowed",p(Y)===Fe.key?"bg-retro-panel text-retro-text":"text-retro-muted"]),onClick:je=>z(Fe)},[d("span",L7,A(Fe.modelLabel)+A(Fe.compatible?"":" (unsupported for current permission mode)"),1)],10,E7))),128))]))),128))])):U("",!0)]),d("div",X7,[d("button",{class:_e(["flex items-center gap-1.5 px-2 py-1 rounded border border-retro-border/50 hover:border-retro-border text-xs font-mono transition-colors",N[p(t).permissionMode]]),onClick:we[1]||(we[1]=Be=>g.value=!p(g))},[(v(),ge(Xs(X[p(t).permissionMode]),{class:"w-4 h-4"})),d("span",null,A(p(Qs)[p(t).permissionMode]),1),K(p(Em),{class:"w-3 h-3"})],2),p(g)?(v(),y("div",I7,[(v(),y(ye,null,Ne(["plan","ask","auto","bypass"],Be=>d("button",{key:Be,class:_e(["flex items-center gap-2 w-full px-3 py-1.5 text-xs font-mono text-left hover:bg-retro-panel transition-colors",[N[Be],p(t).permissionMode===Be?"bg-retro-panel":""]]),onClick:Fe=>be(Be)},[(v(),ge(Xs(X[Be]),{class:"w-4 h-4"})),d("span",null,A(p(Qs)[Be]),1)],10,V7)),64))])):U("",!0)]),d("span",z7,A(p(t).permissionMode==="plan"?"Plan only":p(t).permissionMode==="ask"?"Ask before actions":p(t).permissionMode==="auto"?"Auto approve":"All permissions"),1)]),p(ce)?(v(),y("div",N7,[d("div",W7,[d("div",q7,[we[4]||(we[4]=d("div",{class:"text-xs font-mono text-retro-yellow font-bold mb-1"}," Permission Required ",-1)),d("div",j7,[d("span",Y7,A(p(t).pendingPermission?.tool),1),p(t).pendingPermission?.filePath?(v(),y("span",F7," - "+A(p(t).pendingPermission.filePath),1)):p(t).pendingPermission?.command?(v(),y("span",U7," - "+A(p(t).pendingPermission.command),1)):U("",!0)])]),d("div",{class:"flex gap-2 flex-shrink-0"},[d("button",{class:"px-3 py-1.5 text-xs font-mono rounded bg-retro-green/20 text-retro-green border border-retro-green/50 hover:bg-retro-green/30 transition-colors",onClick:Ce}," Allow "),d("button",{class:"px-3 py-1.5 text-xs font-mono rounded bg-retro-red/20 text-retro-red border border-retro-red/50 hover:bg-retro-red/30 transition-colors",onClick:Me}," Deny ")])])])):U("",!0),p(de)?(v(),y("div",G7,[d("div",{class:"flex items-center justify-between gap-3"},[we[5]||(we[5]=d("div",{class:"flex-1 min-w-0"},[d("div",{class:"text-xs font-mono text-retro-cyan font-bold mb-1"}," Plan Ready for Review "),d("div",{class:"text-xs font-mono text-retro-muted"}," Approve to switch to Auto mode and start implementation. ")],-1)),d("div",{class:"flex gap-2 flex-shrink-0"},[d("button",{class:"px-3 py-1.5 text-xs font-mono rounded bg-retro-green/20 text-retro-green border border-retro-green/50 hover:bg-retro-green/30 transition-colors",onClick:qe}," Approve & Implement "),d("button",{class:"px-3 py-1.5 text-xs font-mono rounded bg-retro-red/20 text-retro-red border border-retro-red/50 hover:bg-retro-red/30 transition-colors",onClick:T}," Reject ")])])])):U("",!0),p(b).length>0?(v(),y("div",H7,[(v(!0),y(ye,null,Ne(p(b),Be=>(v(),y("div",{key:Be.id,class:"relative w-24 rounded border border-retro-border/70 bg-retro-black/80 p-1"},[d("img",{src:Be.dataUrl,alt:Be.name,class:"h-16 w-full rounded object-cover"},null,8,K7),d("div",J7,A(Be.name),1),d("div",eD,A(p(k7)(Be.size)),1),d("button",{class:"absolute -right-2 -top-2 rounded-full border border-retro-border bg-retro-panel p-0.5 text-retro-red hover:bg-retro-red/20",type:"button",onClick:Fe=>B(Be.id)},[K(p(wt),{class:"h-3 w-3"})],8,tD)]))),128))])):U("",!0),p(S).length>0?(v(),y("div",rD,[d("div",nD," Queued ("+A(p(S).length)+") ",1),d("div",sD,[(v(!0),y(ye,null,Ne(p(S),(Be,Fe)=>(v(),y("div",{key:Be.id,class:"flex items-center gap-2 px-2.5 py-1.5 bg-retro-panel/50 border border-retro-border/30 rounded"},[d("span",iD,"#"+A(Fe+1),1),d("span",oD,A(Be.text),1),Be.attachments.length>0?(v(),y("span",aD," +"+A(Be.attachments.length)+" img ",1)):U("",!0),d("button",{class:"flex-shrink-0 p-0.5 text-retro-muted hover:text-retro-red transition-colors",title:"Cancel queued message",onClick:je=>qt(Be.id)},[K(p(wt),{class:"w-3.5 h-3.5"})],8,lD)]))),128))])])):U("",!0),d("div",cD,[d("input",{ref_key:"fileInputRef",ref:f,type:"file",accept:"image/*",multiple:"",class:"hidden",onChange:Z},null,544),d("button",{class:"flex-shrink-0 h-10 w-10 inline-flex items-center justify-center p-0 rounded bg-retro-panel/70 text-retro-muted hover:text-retro-cyan hover:bg-retro-panel disabled:opacity-50 disabled:cursor-not-allowed transition-colors",type:"button",title:"Attach images",disabled:r.disabled||p(ce)||p(de),onClick:we[2]||(we[2]=Be=>p(f)?.click())},[K(p(kv),{class:"w-5 h-5"})],8,uD),d("div",hD,[Ye(d("textarea",{ref_key:"inputRef",ref:h,"onUpdate:modelValue":we[3]||(we[3]=Be=>tt(u)?u.value=Be:null),disabled:r.disabled||p(ce)||p(de),placeholder:r.disabled?"This conversation is finalized (read-only)":p(t).isActiveConversationStreaming?"Type to queue a message...":"Type a message...",rows:"1",class:"w-full h-full min-h-[40px] px-3 py-2 bg-retro-black border border-retro-border rounded text-sm font-mono text-retro-text placeholder-retro-muted focus:outline-none focus:border-retro-cyan disabled:opacity-50 disabled:cursor-not-allowed resize-none overflow-hidden",onKeydown:Nn},null,40,dD),[[_t,p(u)]])]),p(ve)?(v(),y("button",{key:0,class:"flex-shrink-0 h-10 w-10 inline-flex items-center justify-center p-0 rounded bg-retro-yellow/20 text-retro-yellow hover:bg-retro-yellow/30 transition-colors",title:"Retry last message",onClick:Mr},[K(p(i7),{class:"w-5 h-5"})])):U("",!0),p(ce)?U("",!0):(v(),y("button",{key:1,disabled:!p(le),title:p(t).isActiveConversationStreaming?"Queue message":"Send message",class:_e(["flex-shrink-0 h-10 w-10 inline-flex items-center justify-center p-0 rounded disabled:opacity-50 disabled:cursor-not-allowed transition-colors",p(t).isActiveConversationStreaming?"bg-retro-yellow/20 text-retro-yellow hover:bg-retro-yellow/30":"bg-retro-cyan/20 text-retro-cyan hover:bg-retro-cyan/30"]),onClick:Ie},[p(t).isActiveConversationStreaming?(v(),ge(p(Sv),{key:0,class:"w-5 h-5"})):(v(),ge(p(o7),{key:1,class:"w-5 h-5"}))],10,fD)),p(ue)?(v(),y("button",{key:2,class:"flex-shrink-0 h-10 w-10 inline-flex items-center justify-center p-0 rounded bg-retro-red/20 text-retro-red hover:bg-retro-red/30 transition-colors",onClick:Pe},[K(p(a7),{class:"w-5 h-5"})])):U("",!0)]),we[6]||(we[6]=d("div",{class:"mt-1 text-xs font-mono text-retro-muted"}," Press Enter to send (or queue while AI is responding), Shift+Enter for new line. Slash commands: `/context`, `/reset`, `/new`, `/clear`, `/spec-search`. ",-1))]))}}),pD={class:"h-64 border-t border-retro-border bg-retro-dark/50 flex flex-col"},gD={class:"h-9 flex items-center justify-between px-3 border-b border-retro-border/40"},OD={key:0,class:"flex-1 flex items-center justify-center text-xs font-mono text-retro-muted"},vD={key:1,class:"flex-1 overflow-y-auto scrollbar-custom"},bD={class:"flex items-center gap-2 text-[10px] font-mono"},xD={class:"text-retro-muted"},yD={class:"text-retro-muted"},kD={class:"text-retro-green truncate"},wD={class:"mt-1 text-[11px] font-mono text-retro-text whitespace-pre-wrap break-words"},SD=Xe({__name:"ChatDebugPanel",setup(r){const e=mr(),{debugEvents:t}=M1(e);function n(i){return new Date(i).toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}function s(i){return i==="in"?"text-retro-cyan":i==="out"?"text-retro-yellow":"text-retro-muted"}return(i,o)=>(v(),y("div",pD,[d("div",gD,[o[1]||(o[1]=d("div",{class:"text-[11px] font-mono text-retro-text"}," Debug Stream (CLI/Provider) ",-1)),d("button",{class:"p-1 rounded hover:bg-retro-panel transition-colors",title:"Clear debug events",onClick:o[0]||(o[0]=a=>p(e).clearDebugEvents())},[K(p(pn),{class:"w-3.5 h-3.5 text-retro-muted"})])]),p(t).length===0?(v(),y("div",OD," No debug events yet ")):(v(),y("div",vD,[(v(!0),y(ye,null,Ne(p(t),a=>(v(),y("div",{key:a.id,class:"px-3 py-2 border-b border-retro-border/20"},[d("div",bD,[d("span",xD,A(n(a.timestamp)),1),d("span",{class:_e(s(a.direction))},A(a.direction.toUpperCase()),3),d("span",yD,A(a.channel),1),d("span",kD,A(a.eventType),1)]),d("pre",wD,A(a.payload),1)]))),128))]))]))}}),$D={class:"px-4 py-3 border-b border-retro-border bg-retro-dark/80 space-y-3"},CD={class:"flex items-center justify-between"},QD={class:"space-y-1 text-xs font-mono"},PD={class:"flex items-center gap-2"},TD={class:"relative"},MD=["disabled"],AD=["value"],_D=["value"],RD={class:"flex items-center gap-2"},BD={class:"text-retro-text"},DD={class:"relative"},ZD=["disabled"],ED=["disabled"],LD={class:"flex items-center gap-2"},XD=["disabled"],ID=["disabled"],VD=Xe({__name:"FinalizeConfirm",props:{baseBranch:{},worktreeBranch:{},worktreePath:{}},emits:["confirm","cancel"],setup(r,{emit:e}){const t=r,n=e,s=Q(""),i=Q(null),o=Q(!1),a=Q(!1),l=Q(t.baseBranch),c=Q([]),u=Q(!1),h=Pu(),f=Q(null);async function m(){a.value=!0;try{const O=await $fetch("/api/chat/generate-commit-message",{method:"POST",body:{conversationId:t.worktreePath.split("/").pop()?.replace("sc-","")||"",worktreePath:t.worktreePath}});O.success&&O.message&&(s.value=O.message)}catch{}finally{a.value=!1}}mt(async()=>{const O=(async()=>{try{const x=t.worktreePath.split("/").pop()||"",w=await $fetch(`/api/commits/${encodeURIComponent(x)}`,{params:{workingDirectory:t.worktreePath}});i.value=w.aheadCount}catch{i.value=null}})(),b=(async()=>{u.value=!0;try{await h.initialize();const x=await $fetch("/api/git/branches",{query:{workingDirectory:h.workingDirectory}});c.value=x.branches.filter(w=>!w.isRemote&&!w.name.startsWith("sc/")).map(w=>w.name),c.value.length>0&&!c.value.includes(l.value)&&(l.value=c.value.includes("main")?"main":c.value.includes("master")?"master":c.value[0])}catch{c.value=[]}finally{u.value=!1}})();await Promise.all([O,b]),Wt(()=>f.value?.focus())});function g(){s.value.trim()&&(o.value=!0,n("confirm",s.value.trim(),l.value))}return(O,b)=>(v(),y("div",$D,[d("div",CD,[b[4]||(b[4]=d("span",{class:"text-xs font-mono text-retro-text font-semibold uppercase tracking-wide"}," Finalize ",-1)),d("button",{type:"button",class:"p-0.5 text-retro-muted hover:text-retro-text transition-colors",title:"Cancel",onClick:b[0]||(b[0]=x=>n("cancel"))},[K(p(wt),{class:"w-4 h-4"})])]),d("div",QD,[d("div",PD,[b[5]||(b[5]=d("span",{class:"text-retro-muted"},"target:",-1)),d("div",TD,[Ye(d("select",{"onUpdate:modelValue":b[1]||(b[1]=x=>l.value=x),disabled:o.value||u.value,class:"appearance-none bg-retro-black border border-retro-border rounded px-2 py-0.5 pr-6 text-xs font-mono text-retro-cyan focus:outline-none focus:border-retro-cyan cursor-pointer disabled:opacity-40"},[u.value?(v(),y("option",{key:0,value:r.baseBranch},A(r.baseBranch),9,AD)):U("",!0),(v(!0),y(ye,null,Ne(c.value,x=>(v(),y("option",{key:x,value:x},A(x),9,_D))),128))],8,MD),[[ms,l.value]]),K(p(Au),{class:"absolute right-1 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-retro-muted pointer-events-none"})])]),d("div",RD,[b[6]||(b[6]=d("span",{class:"text-retro-muted"},"commits:",-1)),d("span",BD,A(i.value!==null?i.value:"..."),1)])]),d("div",DD,[Ye(d("textarea",{ref_key:"textareaRef",ref:f,"onUpdate:modelValue":b[2]||(b[2]=x=>s.value=x),placeholder:"Squash commit message...",rows:"2",class:"w-full px-2 py-1.5 pr-8 text-xs font-mono bg-retro-black border border-retro-border rounded text-retro-text placeholder-retro-subtle focus:outline-none focus:border-retro-cyan resize-none",disabled:o.value||a.value},null,8,ZD),[[_t,s.value]]),d("button",{type:"button",disabled:o.value||a.value,class:"absolute right-1.5 top-1.5 p-0.5 rounded text-retro-muted hover:text-retro-cyan transition-colors disabled:opacity-40",title:"Generate commit message",onClick:m},[K(p(Pa),{class:_e(["w-4 h-4",{"animate-spin":a.value}])},null,8,["class"])],8,ED)]),d("div",LD,[d("button",{type:"button",disabled:!s.value.trim()||o.value,class:"flex items-center gap-1 px-3 py-1 text-xs font-mono rounded border transition-colors bg-retro-green/10 border-retro-green/50 text-retro-green hover:bg-retro-green/20 disabled:opacity-40 disabled:cursor-not-allowed",onClick:g},[K(p(Mu),{class:"w-3.5 h-3.5"}),Le(" "+A(o.value?"Finalizing...":"Confirm"),1)],8,XD),d("button",{type:"button",disabled:o.value,class:"px-3 py-1 text-xs font-mono rounded border border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text/30 transition-colors disabled:opacity-40",onClick:b[3]||(b[3]=x=>n("cancel"))}," Cancel ",8,ID)])]))}}),zD={class:"px-4 py-3 border-b border-retro-border bg-retro-dark/80 space-y-3"},ND={class:"flex items-center justify-between"},WD={class:"space-y-1 text-xs font-mono"},qD={class:"flex items-center gap-2"},jD={class:"text-retro-cyan"},YD={class:"flex items-center gap-2"},FD={class:"relative"},UD=["disabled"],GD=["value"],HD=["value"],KD={class:"flex items-center gap-2"},JD={class:"text-retro-text"},e8={class:"flex items-center gap-2"},t8=["disabled"],r8=["disabled"],n8=Xe({__name:"RebaseConfirm",props:{baseBranch:{},worktreeBranch:{},worktreePath:{}},emits:["confirm","cancel"],setup(r,{emit:e}){const t=r,n=e,s=Q(null),i=Q(!1),o=Q(t.baseBranch),a=Q([]),l=Q(!1),c=Pu();async function u(f){try{const m=await $fetch("/api/chat/compare",{params:{worktreePath:t.worktreePath,baseBranch:f}});s.value=m.ahead}catch{s.value=null}}mt(async()=>{const f=u(o.value),m=(async()=>{l.value=!0;try{await c.initialize();const g=await $fetch("/api/git/branches",{query:{workingDirectory:c.workingDirectory}});a.value=g.branches.filter(O=>!O.isRemote&&!O.name.startsWith("sc/")).map(O=>O.name),a.value.length>0&&!a.value.includes(o.value)&&(o.value=a.value.includes("main")?"main":a.value.includes("master")?"master":a.value[0])}catch{a.value=[]}finally{l.value=!1}})();await Promise.all([f,m])}),Ve(o,f=>{u(f)});function h(){i.value=!0,n("confirm",o.value)}return(f,m)=>(v(),y("div",zD,[d("div",ND,[m[3]||(m[3]=d("span",{class:"text-xs font-mono text-retro-text font-semibold uppercase tracking-wide"}," Rebase Worktree ",-1)),d("button",{type:"button",class:"p-0.5 text-retro-muted hover:text-retro-text transition-colors",title:"Cancel",onClick:m[0]||(m[0]=g=>n("cancel"))},[K(p(wt),{class:"w-4 h-4"})])]),d("div",WD,[d("div",qD,[m[4]||(m[4]=d("span",{class:"text-retro-muted"},"worktree:",-1)),d("span",jD,A(r.worktreeBranch),1)]),d("div",YD,[m[5]||(m[5]=d("span",{class:"text-retro-muted"},"target:",-1)),d("div",FD,[Ye(d("select",{"onUpdate:modelValue":m[1]||(m[1]=g=>o.value=g),disabled:i.value||l.value,class:"appearance-none bg-retro-black border border-retro-border rounded px-2 py-0.5 pr-6 text-xs font-mono text-retro-cyan focus:outline-none focus:border-retro-cyan cursor-pointer disabled:opacity-40"},[l.value?(v(),y("option",{key:0,value:r.baseBranch},A(r.baseBranch),9,GD)):U("",!0),(v(!0),y(ye,null,Ne(a.value,g=>(v(),y("option",{key:g,value:g},A(g),9,HD))),128))],8,UD),[[ms,o.value]]),K(p(Au),{class:"absolute right-1 top-1/2 -translate-y-1/2 w-3.5 h-3.5 text-retro-muted pointer-events-none"})])]),d("div",KD,[m[6]||(m[6]=d("span",{class:"text-retro-muted"},"commits ahead:",-1)),d("span",JD,A(s.value!==null?s.value:"..."),1)])]),d("div",e8,[d("button",{type:"button",disabled:i.value,class:"flex items-center gap-1 px-3 py-1 text-xs font-mono rounded border transition-colors bg-retro-cyan/10 border-retro-cyan/50 text-retro-cyan hover:bg-retro-cyan/20 disabled:opacity-40 disabled:cursor-not-allowed",onClick:h},[K(p(Mu),{class:"w-3.5 h-3.5"}),Le(" "+A(i.value?"Rebasing...":"Confirm"),1)],8,t8),d("button",{type:"button",disabled:i.value,class:"px-3 py-1 text-xs font-mono rounded border border-retro-border text-retro-muted hover:text-retro-text hover:border-retro-text/30 transition-colors disabled:opacity-40",onClick:m[2]||(m[2]=g=>n("cancel"))}," Cancel ",8,r8)])]))}}),s8={class:"flex-1 flex flex-col overflow-hidden"},i8={class:"flex-shrink-0 px-4 py-2 border-b border-retro-border flex items-center justify-between bg-retro-dark"},o8={class:"text-xs font-mono text-retro-text truncate"},a8={class:"flex items-center gap-2 flex-shrink-0"},l8={key:0,class:"text-xs font-mono text-retro-green"},c8={key:1,class:"text-[11px] font-mono text-retro-muted"},u8={key:0,class:"flex items-center justify-center h-full text-retro-muted text-xs font-mono"},h8=["innerHTML"],d8={key:0,class:"flex-shrink-0 px-4 py-2 border-t border-retro-border bg-retro-yellow/10 text-retro-yellow text-xs font-mono"},f8=Xe({__name:"ConflictFileEditor",props:{file:{},resolved:{type:Boolean},isAiResolving:{type:Boolean},strategy:{}},emits:["resolve","aiResolve","retry"],setup(r,{emit:e}){const t=r;Q(t.file.content);const n=Q(""),s=Q(!1);Ve(()=>t.file.path,()=>{a()}),Ve(()=>t.file.content,()=>{a()});const i=H(()=>{const c=/^<{7}\s/gm;return(t.file.content.match(c)||[]).length});function o(c){const u=c.split(".").pop()?.toLowerCase()||"";return{ts:"typescript",tsx:"tsx",js:"javascript",jsx:"jsx",vue:"vue",html:"html",css:"css",scss:"scss",less:"less",json:"json",yaml:"yaml",yml:"yaml",md:"markdown",py:"python",rb:"ruby",go:"go",rs:"rust",java:"java",kt:"kotlin",swift:"swift",sh:"bash",zsh:"bash",sql:"sql",graphql:"graphql",xml:"xml",svg:"xml",toml:"toml",ini:"ini",dockerfile:"dockerfile"}[u]||"text"}async function a(){s.value=!0;try{const{codeToHtml:c}=await os(async()=>{const{codeToHtml:x}=await import("./DoFlIjCg.js");return{codeToHtml:x}},__vite__mapDeps([3,1,2]),import.meta.url),u=o(t.file.path),f=t.file.content.split(`
|
|
73
|
+
`);let m="",g=!1,O=!1,b=0;for(const x of f){b++;const w=/^<{7}\s/.test(x),S=/^={7}$/.test(x),C=/^>{7}\s/.test(x);if(w){g=!0,O=!1,m+=`<div class="conflict-line conflict-marker-line" data-line="${b}"><span class="line-number">${b}</span><span class="line-content conflict-marker">${l(x)}</span></div>
|
|
74
|
+
`;continue}if(S&&g){g=!1,O=!0,m+=`<div class="conflict-line conflict-marker-line" data-line="${b}"><span class="line-number">${b}</span><span class="line-content conflict-marker">${l(x)}</span></div>
|
|
75
|
+
`;continue}if(C){O=!1,m+=`<div class="conflict-line conflict-marker-line" data-line="${b}"><span class="line-number">${b}</span><span class="line-content conflict-marker">${l(x)}</span></div>
|
|
76
|
+
`;continue}let _=l(x);try{const re=(await c(x||" ",{lang:u,theme:"vitesse-dark"})).match(/<code[^>]*><span class="line">(.*?)<\/span><\/code>/s);re&&(_=re[1])}catch{}let I="";g?I="conflict-ours":O&&(I="conflict-theirs"),m+=`<div class="conflict-line ${I}" data-line="${b}"><span class="line-number">${b}</span><span class="line-content">${_}</span></div>
|
|
77
|
+
`}n.value=m}catch{const c=t.file.content.split(`
|
|
78
|
+
`);n.value=c.map((u,h)=>{const f=h+1;return`<div class="conflict-line" data-line="${f}"><span class="line-number">${f}</span><span class="line-content">${l(u)}</span></div>`}).join(`
|
|
79
|
+
`)}finally{s.value=!1}}function l(c){return c.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}return mt(()=>{a()}),(c,u)=>(v(),y("div",s8,[d("div",i8,[d("span",o8,A(r.file.path),1),d("div",a8,[r.resolved?(v(),y("span",l8," Resolved ")):i.value>0?(v(),y("span",c8,A(i.value)+" conflict "+A(i.value===1?"block":"blocks"),1)):U("",!0)])]),d("div",{class:_e(["flex-1 overflow-auto bg-retro-black conflict-viewer",{"opacity-60":r.resolved}])},[s.value?(v(),y("div",u8," Highlighting... ")):(v(),y("div",{key:1,class:"conflict-code",innerHTML:n.value},null,8,h8))],2),i.value>0&&!r.resolved?(v(),y("div",d8," File contains "+A(i.value)+" conflict "+A(i.value===1?"block":"blocks")+". Use AI resolution to resolve. ",1)):U("",!0)]))}}),m8={class:"flex flex-col h-full border-l border-retro-border bg-retro-dark"},p8={class:"flex-shrink-0 px-3 py-2 border-b border-retro-border"},g8={class:"flex items-center gap-2"},O8={class:"text-[10px] font-mono text-retro-muted mt-1"},v8={key:0,class:"text-xs font-mono text-retro-muted text-center py-8"},b8={key:0,class:"bg-retro-panel/50 rounded px-2 py-1.5 border border-retro-border"},x8={class:"mt-0.5"},y8={class:"inline-block w-3 text-center opacity-70"},k8={key:1,class:"flex items-center gap-2 text-xs font-mono text-retro-cyan"},w8={class:"flex-shrink-0 border-t border-retro-border p-3 space-y-2"},S8=["disabled"],$8=["disabled"],C8={key:0},Q8={key:1},P8=Xe({__name:"ConflictChatPanel",setup(r){const e=mr(),t=Oo(),n=Q(""),s=Q(null),i=H(()=>e.conflictState?.chatMessages??[]),o=H(()=>e.conflictState?.lifecycleState==="resolving"),a=H(()=>{if(!e.conflictState)return!1;const g=e.conflictState.files.length,O=e.conflictState.resolvedFiles.size;return g>0&&O>=g}),l=H(()=>e.conflictState?e.conflictState.files.length-e.conflictState.resolvedFiles.size:0),c=H(()=>`${t.providerId}/${t.providerModelKey}`);Ve(()=>i.value.length,async()=>{await Wt(),s.value&&(s.value.scrollTop=s.value.scrollHeight)});function u(){!e.conflictState||o.value||(e.conflictState.userGuidance=n.value.trim(),e.aiResolveAllConflicts())}function h(){e.cancelConflictResolution()}function f(g){switch(g.type){case"success":return"text-retro-green";case"error":return"text-retro-red";case"progress":return"text-retro-cyan";case"summary":return"text-retro-yellow";default:return"text-retro-muted"}}function m(g){switch(g.type){case"success":return"✓";case"error":return"✗";case"progress":return"▶";case"summary":return"─";default:return"●"}}return(g,O)=>(v(),y("div",m8,[d("div",p8,[d("div",g8,[K(p(Pa),{class:"w-4 h-4 text-retro-orange"}),O[1]||(O[1]=d("span",{class:"text-xs font-mono text-retro-text font-semibold"},"AI Conflict Resolution",-1))]),d("div",O8," Model: "+A(c.value),1)]),d("div",{ref_key:"messagesContainer",ref:s,class:"flex-1 overflow-y-auto px-3 py-2 space-y-2"},[i.value.length===0?(v(),y("div",v8," Enter optional guidance below and click resolve to start AI conflict resolution. ")):U("",!0),(v(!0),y(ye,null,Ne(i.value,b=>(v(),y("div",{key:b.id,class:_e(["text-xs font-mono leading-relaxed",b.role==="user"?"text-retro-text":f(b)])},[b.role==="user"?(v(),y("div",b8,[O[2]||(O[2]=d("span",{class:"text-retro-muted text-[10px]"},"Guidance:",-1)),d("div",x8,A(b.content),1)])):(v(),y(ye,{key:1},[d("span",y8,A(m(b)),1),Le(" "+A(b.content),1)],64))],2))),128)),o.value?(v(),y("div",k8,[...O[3]||(O[3]=[d("span",{class:"animate-pulse"},"●",-1),Le(" Processing... ",-1)])])):U("",!0)],512),d("div",w8,[Ye(d("textarea",{"onUpdate:modelValue":O[0]||(O[0]=b=>n.value=b),disabled:o.value,placeholder:'Optional: Add guidance for AI resolution (e.g., "prefer feature branch API changes", "keep both import sets")...',class:"w-full h-16 px-2 py-1.5 text-xs font-mono bg-retro-black text-retro-text border border-retro-border rounded resize-none focus:outline-none focus:border-retro-cyan/50 placeholder:text-retro-muted/50 disabled:opacity-50",spellcheck:"false"},null,8,S8),[[_t,n.value]]),o.value?(v(),y("button",{key:1,type:"button",class:"w-full flex items-center justify-center gap-2 px-3 py-2 text-xs font-mono rounded border transition-colors bg-retro-red/10 border-retro-red/50 text-retro-red hover:bg-retro-red/20",onClick:h},[K(p($v),{class:"w-4 h-4"}),O[4]||(O[4]=Le(" Stop Resolution ",-1))])):(v(),y("button",{key:0,type:"button",disabled:a.value||l.value===0,class:"w-full flex items-center justify-center gap-2 px-3 py-2 text-xs font-mono rounded border transition-colors bg-retro-orange/10 border-retro-orange/50 text-retro-orange hover:bg-retro-orange/20 disabled:opacity-40 disabled:cursor-not-allowed",onClick:u},[K(p(Pa),{class:"w-4 h-4"}),a.value?(v(),y("span",C8,"All Conflicts Resolved")):(v(),y("span",Q8,"Resolve Conflicts Automatically ("+A(l.value)+")",1))],8,$8))])]))}}),T8={key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/60"},M8={class:"w-full max-w-7xl mx-4 my-8 h-[85vh] bg-retro-dark border border-retro-border rounded-lg shadow-xl flex flex-col overflow-hidden"},A8={class:"flex-shrink-0 px-4 py-3 border-b border-retro-border flex items-center justify-between"},_8={class:"flex items-center gap-3"},R8={class:"text-xs font-mono text-retro-muted"},B8={class:"flex items-center gap-2"},D8=["disabled"],Z8=["disabled"],E8={key:0,class:"flex-1 flex items-center justify-center text-retro-muted text-sm font-mono"},L8={key:1,class:"flex-1 flex items-center justify-center text-retro-red text-sm font-mono"},X8={key:2,class:"flex-1 flex overflow-hidden"},I8={class:"w-56 flex-shrink-0 border-r border-retro-border overflow-y-auto bg-retro-dark"},V8={class:"py-1"},z8=["onClick"],N8={class:"flex-1 flex flex-col overflow-hidden min-w-0"},W8={key:1,class:"flex-1 flex items-center justify-center text-retro-muted text-sm font-mono"},q8={class:"w-80 flex-shrink-0"},j8=Xe({__name:"ConflictResolutionModal",emits:["close"],setup(r,{emit:e}){const t=e,n=mr(),s=Q(null),i=Q(!1),o=Q(!1),a=H(()=>n.conflictState?.files??[]),l=H(()=>n.conflictState?.resolvedFiles??new Set),c=H(()=>a.value.length),u=H(()=>l.value.size),h=H(()=>c.value>0&&u.value>=c.value),f=H(()=>s.value?a.value.find(x=>x.path===s.value)??null:null);function m(x){return l.value.has(x)}function g(x){s.value=x}async function O(){i.value=!0;const x=await n.continueRebase();i.value=!1,x.success&&t("close")}async function b(){o.value=!0,await n.cancelConflictResolution(),o.value=!1,t("close")}return(x,w)=>(v(),ge(Cr,{to:"body"},[K(mn,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:at(()=>[p(n).conflictState?(v(),y("div",T8,[d("div",M8,[d("div",A8,[d("div",_8,[K(p(Bn),{class:"w-5 h-5 text-retro-yellow"}),w[0]||(w[0]=d("h3",{class:"text-sm font-mono text-retro-text font-semibold"},"Resolve Conflicts",-1)),d("span",R8,A(u.value)+"/"+A(c.value)+" resolved ",1)]),d("div",B8,[d("button",{type:"button",disabled:!h.value||i.value||o.value,class:"flex items-center gap-1 px-3 py-1.5 text-xs font-mono rounded border transition-colors bg-retro-green/10 border-retro-green/50 text-retro-green hover:bg-retro-green/20 disabled:opacity-40 disabled:cursor-not-allowed",onClick:O},A(i.value?"Continuing...":"Continue Rebase"),9,D8),d("button",{type:"button",disabled:i.value||o.value,class:"px-3 py-1.5 text-xs font-mono rounded border border-retro-red/50 text-retro-red hover:bg-retro-red/10 transition-colors disabled:opacity-40",onClick:b},A(o.value?"Aborting...":"Abort"),9,Z8)])]),p(n).conflictState?.loading?(v(),y("div",E8," Loading conflict files... ")):p(n).conflictState?.error?(v(),y("div",L8,A(p(n).conflictState.error),1)):(v(),y("div",X8,[d("div",I8,[d("div",V8,[(v(!0),y(ye,null,Ne(a.value,S=>(v(),y("button",{key:S.path,type:"button",class:_e(["w-full text-left px-3 py-2 text-xs font-mono flex items-center gap-2 transition-colors hover:bg-retro-panel",{"bg-retro-panel":s.value===S.path}]),onClick:C=>g(S.path)},[m(S.path)?(v(),ge(p(Tu),{key:0,class:"w-3.5 h-3.5 text-retro-green flex-shrink-0"})):(v(),ge(p(po),{key:1,class:"w-3.5 h-3.5 text-retro-yellow flex-shrink-0"})),d("span",{class:_e(["truncate",m(S.path)?"text-retro-green":"text-retro-yellow"])},A(S.path),3)],10,z8))),128))])]),d("div",N8,[f.value?(v(),ge(f8,{key:0,file:f.value,resolved:m(f.value.path)},null,8,["file","resolved"])):(v(),y("div",W8," Select a file to view "))]),d("div",q8,[K(P8)])]))])])):U("",!0)]),_:1})]))}}),Y8={key:0,class:"w-full max-w-md mx-4 bg-retro-dark border border-retro-border rounded-lg shadow-xl"},F8={class:"flex items-center justify-between p-4 border-b border-retro-border"},U8={class:"flex items-center gap-2"},G8={class:"p-4"},H8={class:"mt-2 text-sm text-retro-text font-mono truncate"},K8={class:"flex justify-end gap-3 p-4 border-t border-retro-border"},J8=Xe({__name:"DeleteConfirmModal",props:{show:{type:Boolean},title:{}},emits:["confirm","cancel"],setup(r,{emit:e}){const t=e;function n(s){s.target===s.currentTarget&&t("cancel")}return(s,i)=>(v(),ge(Cr,{to:"body"},[K(mn,{"enter-active-class":"transition-opacity duration-200","enter-from-class":"opacity-0","enter-to-class":"opacity-100","leave-active-class":"transition-opacity duration-200","leave-from-class":"opacity-100","leave-to-class":"opacity-0"},{default:at(()=>[r.show?(v(),y("div",{key:0,class:"fixed inset-0 z-50 flex items-center justify-center bg-black/60",onClick:n},[K(mn,{"enter-active-class":"transition-all duration-200","enter-from-class":"opacity-0 scale-95","enter-to-class":"opacity-100 scale-100","leave-active-class":"transition-all duration-200","leave-from-class":"opacity-100 scale-100","leave-to-class":"opacity-0 scale-95"},{default:at(()=>[r.show?(v(),y("div",Y8,[d("div",F8,[d("div",U8,[K(p(Bn),{class:"w-5 h-5 text-retro-red"}),i[3]||(i[3]=d("h3",{class:"text-lg font-mono text-retro-text"},"Delete Conversation",-1))]),d("button",{onClick:i[0]||(i[0]=o=>t("cancel")),class:"p-1 hover:bg-retro-panel rounded transition-colors"},[K(p(wt),{class:"w-5 h-5 text-retro-muted"})])]),d("div",G8,[i[4]||(i[4]=d("p",{class:"text-sm text-retro-muted font-mono"}," Are you sure you want to delete this conversation? ",-1)),d("p",H8,' "'+A(r.title)+'" ',1),i[5]||(i[5]=d("p",{class:"mt-3 text-xs text-retro-muted"}," This action cannot be undone. ",-1))]),d("div",K8,[d("button",{onClick:i[1]||(i[1]=o=>t("cancel")),class:"px-4 py-2 text-sm font-mono text-retro-muted border border-retro-border rounded hover:bg-retro-panel transition-colors"}," Cancel "),d("button",{onClick:i[2]||(i[2]=o=>t("confirm")),class:"px-4 py-2 text-sm font-mono text-white bg-retro-red/80 border border-retro-red rounded hover:bg-retro-red transition-colors"}," Delete ")])])):U("",!0)]),_:1})])):U("",!0)]),_:1})]))}}),eZ={class:"h-full flex flex-col bg-retro-black"},tZ={class:"flex-shrink-0 h-12 flex items-center justify-between px-4 border-b border-retro-border bg-retro-dark"},rZ={class:"flex items-center gap-2 min-w-0"},nZ={class:"text-xs font-mono text-retro-text truncate"},sZ={class:"flex items-center gap-1"},iZ=["disabled","title"],oZ=["title"],aZ=["title"],lZ=["disabled"],cZ={key:4,class:"flex-shrink-0 px-4 py-2 border-b border-retro-border bg-retro-green/10 text-retro-green text-xs font-mono text-center"},uZ={class:"flex-1 min-h-0 flex flex-col"},hZ=Xe({__name:"ChatPanel",setup(r){const e=mr(),t=b1(),{disconnectConversation:n}=Pl();mt(async()=>{try{const X=await $fetch("/api/cwd");e.setCwd(X.cwd)}catch{}});const s=H(()=>e.activeConversation?.title||"New Chat"),i=Q(!1),o=H(()=>t.isChatFullscreen),a=Q(!1);Ve(a,X=>{e.setDebugStreamEnabled(X)}),kt(()=>{e.setDebugStreamEnabled(!1)});function l(){t.toggleChatFullscreen()}async function c(){i.value=!1;const X=e.activeConversationId;X&&(n(X),await e.deleteConversation(X)),e.clearMessages()}function u(){e.hasMessages&&(i.value=!0)}function h(){i.value=!1}const f=Q(!1),m=Q(null),g=H(()=>e.activeConversation?.finalized===!0),O=H(()=>g.value),b=Q(null),x=Q(!1);async function w(){const X=e.activeConversation;if(!X?.worktreePath||!X?.baseBranch){b.value=null;return}x.value=!0;try{const N=await $fetch("/api/chat/compare",{params:{worktreePath:X.worktreePath,baseBranch:X.baseBranch}});b.value=N}catch{b.value=null}finally{x.value=!1}}Ve(()=>[e.activeConversationId,e.activeConversation?.worktreePath,e.activeConversation?.baseBranch,e.activeConversation?.lastCommitTime,e.activeConversation?.updatedAt,e.isActiveConversationStreaming],()=>{w()},{immediate:!0}),Ve(()=>e.activeConversationId,()=>{f.value=!1,D.value=!1,m.value=null});const S=H(()=>b.value?b.value.ahead===0&&b.value.behind===0:!1),C=H(()=>{const X=e.activeConversation;return X?.hasWorktree&&!X?.finalized}),_=H(()=>{const X=e.activeConversation;return!!X?.hasWorktree&&!X?.finalized&&!e.isActiveConversationStreaming&&!S.value});function I(){f.value=!0,m.value=null}async function V(X,N){const be=e.activeConversationId;if(!be)return;const G=await e.finalizeConversation(be,X,N);if(f.value=!1,G.success)m.value={type:"success",message:`Merged to ${N}`},setTimeout(()=>{m.value=null},5e3);else if(G.rebaseInProgress)m.value=null;else{const le=G.conflictFiles?.length?`Conflict in: ${G.conflictFiles.join(", ")}`:G.error||"Finalize failed";m.value={type:"error",message:le}}}function re(){f.value=!1}function oe(){if(!e.conflictState&&e.activeConversation?.hasWorktree){const X=e.activeConversation?.baseBranch||"main";m.value={type:"success",message:`Rebased onto ${X}`},setTimeout(()=>{m.value=null},5e3)}else m.value=null}const Oe=Q(!1),Y=H(()=>!!e.activeConversation?.previewBranch);async function L(){const X=e.activeConversationId;if(!X)return;Oe.value=!0,m.value=null;const N=Y.value,be=await e.togglePreview(X);if(be.success){const G=N?`Switched back to ${e.activeConversation?.baseBranch}`:"Preview active — main worktree updated";m.value={type:"success",message:G},setTimeout(()=>{m.value=null},3e3)}else m.value={type:"error",message:be.error||"Preview toggle failed"};Oe.value=!1}const D=Q(!1);function j(){D.value=!0,m.value=null}async function F(X){const N=e.activeConversationId;if(!N)return;const be=await e.rebaseConversation(N,X);D.value=!1,be.success?(m.value={type:"success",message:`Rebased onto ${X}`},setTimeout(()=>{m.value=null},5e3)):be.rebaseInProgress?m.value=null:m.value={type:"error",message:be.error||"Rebase failed"}}function z(){D.value=!1}return(X,N)=>(v(),y("div",eZ,[d("div",tZ,[d("div",rZ,[d("span",nZ,A(p(s)),1)]),d("div",sZ,[p(C)?(v(),y("button",{key:0,disabled:p(Oe),class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors disabled:opacity-40 disabled:cursor-not-allowed",title:p(Y)?"End preview: switch back to base branch":"Preview: test worktree changes in main worktree",onClick:L},[p(Y)?(v(),ge(p(mv),{key:0,class:"w-4 h-4 text-retro-cyan"})):(v(),ge(p(pv),{key:1,class:"w-4 h-4"}))],8,iZ)):U("",!0),p(_)?(v(),y("button",{key:1,class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"Rebase: sync worktree onto target base branch",onClick:j},[...N[2]||(N[2]=[Vm('<svg class="w-4 h-4" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true"><circle cx="7" cy="4.5" r="1.5" fill="currentColor"></circle><circle cx="18" cy="20" r="1.5" fill="currentColor"></circle><circle cx="12" cy="7" r="1.4" fill="currentColor" opacity="0.9"></circle><path d="M7 6V16M7 16L4.5 13.5M7 16L9.5 13.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path><path d="M8.4 7H12.5C15.5376 7 18 9.46243 18 12.5V18.5" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path><path d="M15.5 16L18 18.5L20.5 16" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"></path></svg>',1)])])):U("",!0),p(_)?(v(),y("button",{key:2,class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:"Finalize: squash & merge to base branch",onClick:I},[K(p(Tu),{class:"w-4 h-4"})])):U("",!0),d("button",{class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:p(o)?"Exit fullscreen chat":"Fullscreen chat",onClick:l},[p(o)?(v(),ge(p(Fm),{key:0,class:"w-4 h-4"})):(v(),ge(p(Um),{key:1,class:"w-4 h-4"}))],8,oZ),d("button",{class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel transition-colors",title:p(a)?"Hide debug stream":"Show debug stream",onClick:N[0]||(N[0]=be=>a.value=!p(a))},[K(p(sv),{class:_e(["w-4 h-4",p(a)?"text-retro-cyan":""])},null,8,["class"])],8,aZ),d("button",{disabled:!p(e).hasMessages,class:"p-1.5 rounded text-retro-muted hover:text-retro-cyan hover:bg-retro-panel disabled:opacity-30 disabled:cursor-not-allowed transition-colors",title:"New conversation",onClick:u},[K(p(pn),{class:"w-4 h-4"})],8,lZ)])]),K(J8,{show:p(i),title:p(s),onConfirm:c,onCancel:h},null,8,["show","title"]),p(f)&&p(e).activeConversation?.hasWorktree?(v(),ge(VD,{key:0,"base-branch":p(e).activeConversation.baseBranch||"main","worktree-branch":p(e).activeConversation.worktreeBranch||"","worktree-path":p(e).activeConversation.worktreePath||"",onConfirm:V,onCancel:re},null,8,["base-branch","worktree-branch","worktree-path"])):U("",!0),p(D)&&p(e).activeConversation?.hasWorktree?(v(),ge(n8,{key:1,"base-branch":p(e).activeConversation.baseBranch||"main","worktree-branch":p(e).activeConversation.worktreeBranch||"","worktree-path":p(e).activeConversation.worktreePath||"",onConfirm:F,onCancel:z},null,8,["base-branch","worktree-branch","worktree-path"])):U("",!0),p(e).conflictState?(v(),ge(j8,{key:2,onClose:oe})):U("",!0),p(m)?(v(),y("div",{key:3,class:_e(["flex-shrink-0 px-4 py-2 border-b border-retro-border text-xs font-mono",p(m).type==="success"?"bg-retro-green/10 text-retro-green":"bg-retro-red/10 text-retro-red"])},[Le(A(p(m).message)+" ",1),p(m).type==="error"?(v(),y("button",{key:0,class:"ml-2 underline hover:no-underline",onClick:N[1]||(N[1]=be=>m.value=null)}," dismiss ")):U("",!0)],2)):U("",!0),p(g)?(v(),y("div",cZ," This conversation has been finalized and is read-only. ")):U("",!0),d("div",uZ,[K(s7,{class:"flex-1 overflow-hidden"}),p(a)?(v(),ge(SD,{key:0})):U("",!0)]),K(mD,{disabled:p(O)},null,8,["disabled"])]))}}),dZ={class:"flex-shrink-0 flex items-center justify-between px-4 py-2 border-b border-retro-border bg-retro-panel"},fZ={class:"flex items-center gap-2 min-w-0"},mZ=["title"],pZ={class:"text-retro-text font-mono text-sm truncate"},gZ={class:"text-retro-muted"},OZ={class:"text-retro-text"},vZ={class:"text-retro-muted font-mono text-xs flex-shrink-0"},bZ={class:"flex-1 overflow-auto"},xZ={key:0,class:"flex items-center justify-center gap-2 text-retro-muted text-sm py-8"},yZ={key:1,class:"flex items-center justify-center text-retro-muted text-sm py-8"},kZ={key:2,class:"flex items-center justify-center text-retro-muted text-sm py-8"},wZ={key:3,class:"w-full text-xs font-mono border-collapse diff-table"},SZ={key:0,class:"diff-warning"},$Z={key:0,colspan:"3",class:"diff-hunk-header px-4 py-1"},CZ={class:"diff-line-num select-none text-right px-2 w-12"},QZ={class:"diff-line-num select-none text-right px-2 w-12 border-r border-retro-border"},PZ={class:"diff-line-content px-3 whitespace-pre-wrap break-all"},TZ={key:0,class:"diff-sign"},MZ={key:1,class:"diff-sign"},AZ={key:2,class:"diff-sign"},_Z={key:4,class:"flex items-center justify-center text-retro-muted text-sm py-8"},RZ=Xe({__name:"GitFileDiffViewer",props:{file:{},commitHash:{},content:{},loading:{type:Boolean}},emits:["close"],setup(r,{emit:e}){const t=r,n=e,s=Q(null),i=H(()=>t.commitHash.substring(0,7)),o=H(()=>zs[t.file.status]||{label:t.file.status,colorClass:"text-retro-muted"}),a=H(()=>t.file.status==="R"&&t.file.oldPath);function l(c){c.key==="Escape"&&(c.preventDefault(),c.stopPropagation(),n("close"))}return mt(()=>{s.value?.focus()}),(c,u)=>(v(),y("div",{ref_key:"containerRef",ref:s,tabindex:0,onKeydown:l,class:"flex flex-col h-full bg-retro-dark focus:outline-none","aria-label":"File diff viewer",role:"region"},[d("div",dZ,[d("div",fZ,[d("span",{class:_e(["flex-shrink-0 w-5 h-5 flex items-center justify-center text-xs font-bold rounded",o.value.colorClass]),title:o.value.label},A(r.file.status),11,mZ),d("span",pZ,[a.value&&r.file.oldPath?(v(),y(ye,{key:0},[d("span",gZ,A(r.file.oldPath),1),u[1]||(u[1]=d("span",{class:"text-retro-yellow mx-1"},"→",-1)),d("span",OZ,A(r.file.path),1)],64)):(v(),y(ye,{key:1},[Le(A(r.file.path),1)],64))]),d("span",vZ," @ "+A(i.value),1)]),d("button",{onClick:u[0]||(u[0]=h=>n("close")),class:"p-1 hover:bg-retro-dark rounded transition-colors flex-shrink-0 focus:outline-none focus:ring-2 focus:ring-retro-cyan","aria-label":"Close diff viewer",title:"Close (Esc)"},[K(p(wt),{class:"w-5 h-5 text-retro-muted hover:text-retro-text"})])]),d("div",bZ,[r.loading?(v(),y("div",xZ,[...u[2]||(u[2]=[d("div",{class:"w-4 h-4 border-2 border-retro-muted border-t-retro-cyan rounded-full animate-spin"},null,-1),Le(" Loading diff... ",-1)])])):r.content&&r.content.binary?(v(),y("div",yZ,[...u[3]||(u[3]=[d("span",{class:"bg-retro-panel px-4 py-2 rounded font-mono"}," Binary file — cannot display diff ",-1)])])):r.content&&r.content.lines.length===0?(v(),y("div",kZ,[...u[4]||(u[4]=[d("span",{class:"bg-retro-panel px-4 py-2 rounded font-mono"}," No changes in this file ",-1)])])):r.content?(v(),y("table",wZ,[d("tbody",null,[r.content.truncated?(v(),y("tr",SZ,[...u[5]||(u[5]=[d("td",{colspan:"3",class:"px-4 py-2 text-retro-yellow bg-retro-panel text-center"}," Diff truncated — file has more than 10,000 lines ",-1)])])):U("",!0),(v(!0),y(ye,null,Ne(r.content.lines,(h,f)=>(v(),y("tr",{key:f,class:_e({"diff-add":h.type==="add","diff-delete":h.type==="delete","diff-context":h.type==="context","diff-header":h.type==="header"})},[h.type==="header"?(v(),y("td",$Z,A(h.content),1)):(v(),y(ye,{key:1},[d("td",CZ,A(h.oldLineNumber??""),1),d("td",QZ,A(h.newLineNumber??""),1),d("td",PZ,[h.type==="add"?(v(),y("span",TZ,"+")):h.type==="delete"?(v(),y("span",MZ,"-")):(v(),y("span",AZ," ")),Le(" "+A(h.content),1)])],64))],2))),128))])])):(v(),y("div",_Z," Failed to load diff content. "))])],544))}}),BZ=ps(RZ,[["__scopeId","data-v-74bf9bf3"]]),DZ={class:"fixed inset-0 z-50 flex items-center justify-center"},ZZ={class:"relative w-[90vw] max-w-lg bg-retro-black border border-retro-border rounded-lg shadow-2xl flex flex-col overflow-hidden"},EZ={class:"flex-shrink-0 h-12 flex items-center justify-between px-4 border-b border-retro-border bg-retro-dark"},LZ={class:"flex items-center gap-2"},XZ={class:"text-sm font-mono text-retro-text"},IZ={class:"p-6 overflow-y-auto max-h-[70vh] space-y-6"},VZ={key:0},zZ={class:"space-y-6"},NZ={class:"space-y-1.5"},WZ=["value","checked","onChange"],qZ={class:"flex-1"},jZ={class:"text-sm font-mono text-retro-text"},YZ={class:"text-xs text-retro-muted leading-tight"},FZ={class:"text-xs font-mono text-retro-muted"},UZ={class:"text-xs text-retro-muted mb-3"},GZ=["disabled"],HZ={class:"space-y-1.5"},KZ=["value","checked","onChange"],JZ={class:"flex-1"},eE={class:"text-sm font-mono text-retro-text"},tE={class:"text-xs text-retro-muted leading-tight"},rE={key:1,class:"space-y-4"},nE={class:"space-y-1.5"},sE=["checked"],iE=["checked"],oE={class:"flex items-center justify-between px-3 py-2 rounded border border-retro-border bg-retro-panel"},aE={class:"text-xs font-mono text-retro-cyan"},lE=Xe({__name:"SettingsModal",emits:["close"],setup(r,{emit:e}){const t=e,n=Oo(),s=A1(),i=go(),o=Q("main"),a=Q(!1),l=H(()=>s.public.appVersion||"unknown"),c=[{value:"dark",label:"Dark",description:"Retro terminal theme with dark backgrounds"},{value:"light",label:"Light",description:"Bright theme for well-lit environments"}],u=[{value:"plan",label:Qs.plan,description:Bo.plan,icon:_u,color:"text-retro-cyan"},{value:"ask",label:Qs.ask,description:Bo.ask,icon:Ru,color:"text-retro-green"},{value:"auto",label:Qs.auto,description:Bo.auto,icon:Hm,color:"text-retro-yellow"},{value:"bypass",label:Qs.bypass,description:Bo.bypass,icon:Bu,color:"text-retro-red"}],{data:h,pending:f,error:m}=wc("ai-providers",()=>$fetch("/api/ai/providers"),{server:!1}),g=H(()=>h.value?.providers??[]),O=H(()=>{const D=m.value;return D?D instanceof Error?D.message:String(D):null}),{data:b,refresh:x}=wc("spec-search-status",()=>$fetch("/api/specs/status"),{server:!1,default:()=>null}),w=H(()=>{const D=b.value;return D?D.isIndexing?`Indexing (${D.currentJob||"running"})`:D.schedulerActive?`Indexed ${D.fileCount} files / ${D.chunkCount} chunks`:"Scheduler inactive":"Status unavailable"});mt(()=>{n.hydrate()});const S=D=>{n.setProviderSelection(D),i.success("Settings saved")},C=()=>{o.value="provider"},_=()=>{o.value="main"},I=D=>{n.setTheme(D),i.success("Settings saved")},V=D=>{n.setPermissionMode(D),i.success("Settings saved")},re=D=>{n.setAutoGenerateCommitMessages(D),i.success("Settings saved")},oe=()=>{t("close")},Oe=async()=>{if(!a.value){a.value=!0;try{const D=await $fetch("/api/specs/reindex",{method:"POST",body:{}});!D.success&&D.status==="already-indexing"?i.info("Spec index is already running"):i.success("Spec reindex started"),await x()}catch(D){i.error(D instanceof Error?D.message:"Failed to start spec reindex")}finally{a.value=!1}}},Y=D=>{D.key==="Escape"&&t("close")};mt(()=>{window.addEventListener("keydown",Y)}),kt(()=>{window.removeEventListener("keydown",Y)});let L=null;return mt(()=>{L=Zu(()=>{x()},5e3)}),kt(()=>{L&&clearInterval(L)}),(D,j)=>(v(),ge(Cr,{to:"body"},[d("div",DZ,[d("div",{class:"absolute inset-0 bg-black/70",onClick:oe}),d("div",ZZ,[d("div",EZ,[d("div",LZ,[o.value==="provider"?(v(),y("button",{key:0,type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-text hover:bg-retro-panel transition-colors",title:"Back",onClick:_},[K(p(rv),{class:"h-4 w-4"})])):U("",!0),d("h2",XZ,A(o.value==="provider"?"AI Provider Settings":"Settings"),1)]),d("button",{type:"button",class:"p-1.5 rounded text-retro-muted hover:text-retro-text hover:bg-retro-panel transition-colors",title:"Close",onClick:j[0]||(j[0]=F=>t("close"))},[K(p(wt),{class:"h-4 w-4"})])]),d("div",IZ,[o.value==="main"?(v(),y("section",VZ,[d("div",zZ,[d("section",null,[j[3]||(j[3]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"Theme",-1)),j[4]||(j[4]=d("p",{class:"text-xs text-retro-muted mb-3"}," Choose between dark and light appearance. ",-1)),d("div",NZ,[(v(),y(ye,null,Ne(c,F=>d("label",{key:F.value,class:_e(["flex items-center gap-3 px-3 py-2 rounded border cursor-pointer transition-colors",[p(n).theme===F.value?"border-retro-cyan bg-retro-cyan/10":"border-retro-border bg-retro-panel hover:border-retro-muted"]])},[d("input",{type:"radio",name:"theme",value:F.value,checked:p(n).theme===F.value,class:"w-3.5 h-3.5 text-retro-cyan accent-retro-cyan",onChange:z=>I(F.value)},null,40,WZ),d("div",qZ,[d("div",jZ,A(F.label),1),d("div",YZ,A(F.description),1)])],2)),64))])]),j[11]||(j[11]=d("div",{class:"border-t border-retro-border"},null,-1)),d("section",null,[j[6]||(j[6]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"AI Provider",-1)),j[7]||(j[7]=d("p",{class:"text-xs text-retro-muted mb-3"}," Configure provider and model settings for new conversations. ",-1)),d("button",{type:"button",class:"w-full flex items-center justify-between px-3 py-2 rounded border border-retro-border bg-retro-panel hover:border-retro-muted transition-colors",onClick:C},[j[5]||(j[5]=d("span",{class:"text-sm font-mono text-retro-text"},"Provider Settings",-1)),d("span",FZ,A(p(n).providerSelection.providerId)+" / "+A(p(n).providerSelection.modelKey),1)])]),j[12]||(j[12]=d("div",{class:"border-t border-retro-border"},null,-1)),d("section",null,[j[8]||(j[8]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"Spec Search Index",-1)),d("p",UZ,A(w.value),1),d("button",{type:"button",class:"w-full flex items-center justify-center px-3 py-2 rounded border border-retro-border bg-retro-panel text-retro-text hover:border-retro-muted transition-colors disabled:opacity-60",disabled:a.value||p(b)?.isIndexing,onClick:Oe},A(a.value?"Starting reindex...":"Reindex Specs"),9,GZ)]),j[13]||(j[13]=d("div",{class:"border-t border-retro-border"},null,-1)),d("section",null,[j[9]||(j[9]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"Default Permission Mode",-1)),j[10]||(j[10]=d("p",{class:"text-xs text-retro-muted mb-3"}," Set the default permission mode for all new chat conversations. ",-1)),d("div",HZ,[(v(),y(ye,null,Ne(u,F=>d("label",{key:F.value,class:_e(["flex items-center gap-3 px-3 py-2 rounded border cursor-pointer transition-colors",[p(n).permissionMode===F.value?"border-retro-cyan bg-retro-cyan/10":"border-retro-border bg-retro-panel hover:border-retro-muted"]])},[d("input",{type:"radio",name:"permission-mode",value:F.value,checked:p(n).permissionMode===F.value,class:"w-3.5 h-3.5 text-retro-cyan accent-retro-cyan",onChange:z=>V(F.value)},null,40,KZ),(v(),ge(Xs(F.icon),{class:_e(["w-4 h-4 flex-shrink-0",F.color])},null,8,["class"])),d("div",JZ,[d("div",eE,A(F.label),1),d("div",tE,A(F.description),1)])],2)),64))])]),j[14]||(j[14]=d("div",{class:"border-t border-retro-border"},null,-1))])])):(v(),y("section",rE,[j[15]||(j[15]=d("div",null,[d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"AI Provider"),d("p",{class:"text-xs text-retro-muted mb-3"}," Choose which registered provider and model powers new conversations. ")],-1)),K(H1,{providers:g.value,selected:p(n).providerSelection,permissionMode:p(n).permissionMode,pending:p(f),errorMessage:O.value,onSelect:S},null,8,["providers","selected","permissionMode","pending","errorMessage"])])),j[23]||(j[23]=d("div",{class:"border-t border-retro-border"},null,-1)),d("section",null,[j[18]||(j[18]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"Commit Messages",-1)),j[19]||(j[19]=d("p",{class:"text-xs text-retro-muted mb-3"}," Choose whether to use AI to generate commit messages automatically. ",-1)),d("div",nE,[d("label",{class:_e(["flex items-center gap-3 px-3 py-2 rounded border cursor-pointer transition-colors",[p(n).autoGenerateCommitMessages?"border-retro-border bg-retro-panel hover:border-retro-muted":"border-retro-cyan bg-retro-cyan/10"]])},[d("input",{type:"radio",name:"commit-messages",value:!1,checked:!p(n).autoGenerateCommitMessages,class:"w-3.5 h-3.5 text-retro-cyan accent-retro-cyan",onChange:j[1]||(j[1]=F=>re(!1))},null,40,sE),j[16]||(j[16]=d("div",{class:"flex-1"},[d("div",{class:"text-sm font-mono text-retro-text"},"Template (Recommended)"),d("div",{class:"text-xs text-retro-muted leading-tight"},"Simple template-based messages. No token usage.")],-1))],2),d("label",{class:_e(["flex items-center gap-3 px-3 py-2 rounded border cursor-pointer transition-colors",[p(n).autoGenerateCommitMessages?"border-retro-cyan bg-retro-cyan/10":"border-retro-border bg-retro-panel hover:border-retro-muted"]])},[d("input",{type:"radio",name:"commit-messages",value:!0,checked:p(n).autoGenerateCommitMessages,class:"w-3.5 h-3.5 text-retro-cyan accent-retro-cyan",onChange:j[2]||(j[2]=F=>re(!0))},null,40,iE),j[17]||(j[17]=d("div",{class:"flex-1"},[d("div",{class:"text-sm font-mono text-retro-text"},"AI-Generated"),d("div",{class:"text-xs text-retro-muted leading-tight"},"Uses Claude Haiku to create meaningful commit messages. ~300-500 tokens per commit.")],-1))],2)])]),j[24]||(j[24]=d("div",{class:"border-t border-retro-border"},null,-1)),d("section",null,[j[21]||(j[21]=d("h3",{class:"text-sm font-mono font-semibold text-retro-text mb-1"},"Spec-Cat",-1)),j[22]||(j[22]=d("p",{class:"text-xs text-retro-muted mb-3"}," Application version. ",-1)),d("div",oE,[j[20]||(j[20]=d("span",{class:"text-sm font-mono text-retro-text"},"Version",-1)),d("span",aE,A(l.value),1)])])])])])]))}}),cE={class:"fixed top-4 right-4 z-50 flex flex-col gap-2 max-w-sm"},uE={class:"flex-1 text-sm font-mono text-retro-text"},hE=["onClick"],dE=Xe({__name:"ToastContainer",setup(r){const{toasts:e,remove:t}=go(),n={success:{bg:"bg-retro-green/20",icon:"text-retro-green",border:"border-retro-green/50"},error:{bg:"bg-retro-red/20",icon:"text-retro-red",border:"border-retro-red/50"},info:{bg:"bg-retro-cyan/20",icon:"text-retro-cyan",border:"border-retro-cyan/50"},warning:{bg:"bg-retro-yellow/20",icon:"text-retro-yellow",border:"border-retro-yellow/50"}},s=i=>{switch(i){case"success":return Tu;case"error":return po;case"warning":return Bn;default:return bv}};return(i,o)=>(v(),ge(Cr,{to:"body"},[d("div",cE,[K(_1,{"enter-active-class":"transition-all duration-300 ease-out","leave-active-class":"transition-all duration-200 ease-in","enter-from-class":"opacity-0 translate-x-4","enter-to-class":"opacity-100 translate-x-0","leave-from-class":"opacity-100 translate-x-0","leave-to-class":"opacity-0 translate-x-4"},{default:at(()=>[(v(!0),y(ye,null,Ne(p(e),a=>(v(),y("div",{key:a.id,class:_e(["flex items-start gap-3 p-3 rounded-lg border shadow-lg",[n[a.type].bg,n[a.type].border]])},[(v(),ge(Xs(s(a.type)),{class:_e(["h-5 w-5 flex-shrink-0 mt-0.5",n[a.type].icon])},null,8,["class"])),d("p",uE,A(a.message),1),d("button",{type:"button",class:"p-0.5 rounded text-retro-muted hover:text-retro-text transition-colors",onClick:l=>p(t)(a.id)},[K(p(wt),{class:"h-4 w-4"})],8,hE)],2))),128))]),_:1})])]))}}),fE=Xe({__name:"SplashScreen",setup(r){const e=Q(!0),t=Q(!1);return mt(()=>{setTimeout(()=>{t.value=!0,setTimeout(()=>{e.value=!1},600)},1800)}),(n,s)=>(v(),ge(Cr,{to:"body"},[e.value?(v(),y("div",{key:0,class:_e(["fixed inset-0 z-[9999] flex items-center justify-center bg-retro-black transition-opacity duration-500",{"opacity-0":t.value}])},[...s[0]||(s[0]=[d("div",{class:"flex flex-col items-center gap-6"},[d("pre",{class:"text-retro-cyan font-mono text-xs leading-tight select-none splash-glow"},` ____ ____ _
|
|
80
|
+
/ ___| _ __ ___ ___ / ___|__ _| |_
|
|
81
|
+
\\___ \\| '_ \\ / _ \\/ __|| | / _\` | __|
|
|
82
|
+
___) | |_) | __/ (__ | |__| (_| | |_
|
|
83
|
+
|____/| .__/ \\___|\\___| \\____\\__,_|\\__|
|
|
84
|
+
|_|
|
|
85
|
+
`),d("div",{class:"flex items-center gap-2"},[d("span",{class:"inline-block w-2 h-2 rounded-full bg-retro-cyan animate-pulse"}),d("span",{class:"text-retro-muted font-mono text-xs tracking-widest uppercase"},"initializing")])],-1)])],2)):U("",!0)]))}}),mE=ps(fE,[["__scopeId","data-v-7fddb179"]]);let Zt=null,Ss=null,Fn=null;const pE=5e3,gE=500,OE=1e3,yc=5;let lr=null;const Un=new Map,Gn=new Map,da=new Map;function vE(){return typeof window>"u"?"":`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/_ws`}function bE(){const r=mr();async function e(){console.log("[GlobalNotifications] Executing debounced refresh");const g=await r.refreshServerConversations();console.log("[GlobalNotifications] Refresh result:",g);const O=[];for(const[b,x]of Un)Un.delete(b),n(b,x)||O.push([b,x]);for(const[b,x]of O){const w=(Gn.get(b)??0)+1;if(w<=yc){Gn.set(b,w),console.log(`[GlobalNotifications] Scheduling retry ${w}/${yc} for ${b}`);const S=setTimeout(()=>{da.delete(b),Un.set(b,x),t()},OE*w);da.set(b,S)}else console.warn(`[GlobalNotifications] Gave up streaming setup for ${b} after ${yc} retries`),Gn.delete(b)}}function t(){Fn&&clearTimeout(Fn),Fn=setTimeout(()=>{Fn=null,e()},gE)}function n(g,O){if(!Zt||Zt.readyState!==WebSocket.OPEN)return!1;if(r.isConversationStreaming(g))return Gn.delete(g),!0;const b=r.conversations.find(S=>S.id===g);if(!b)return console.warn("[GlobalNotifications] Conversation not found for streaming:",g),!1;Gn.delete(g),b.messages.length===0&&O&&r.addUserMessage(O,g);const x=[...b.messages].reverse().find(S=>S.role==="assistant");if(x)return r.resetMessageForReplay(x.id,g),r.startConversationStreaming(g),lr={conversationId:g,messageId:x.id,currentTextBlockId:null,currentToolBlockId:null,currentToolInputJson:"",isReplaying:!1,replayBuffer:[]},Zt.send(JSON.stringify({type:"subscribe",conversationId:g,cursor:0})),console.log("[GlobalNotifications] Resumed server job streaming (existing msg):",g),!0;const w=r.addAssistantMessage(g);return r.initContentBlocks(w.id,g),r.startConversationStreaming(g),lr={conversationId:g,messageId:w.id,currentTextBlockId:null,currentToolBlockId:null,currentToolInputJson:"",isReplaying:!1,replayBuffer:[]},Zt.send(JSON.stringify({type:"subscribe",conversationId:g,cursor:0})),console.log("[GlobalNotifications] Subscribed to server job streaming:",g),!0}function s(g){try{const O=JSON.parse(g.data);if(O.type==="notification"){i(O);return}lr&&o(O)}catch{}}function i(g){if(console.log("[GlobalNotifications] Received:",g.notificationEvent,g.conversationId),g.notificationEvent==="job_created"){Un.set(g.conversationId,g.message||""),t();return}if(g.notificationEvent==="job_persisted"){lr?.conversationId===g.conversationId&&(r.endConversationStreaming(g.conversationId),lr=null),Un.delete(g.conversationId),Gn.delete(g.conversationId),t();return}if(g.notificationEvent!=="job_completed"&&g.notificationEvent==="conversation_archived"){t();return}}function o(g){const O=lr,b=O.conversationId;if(g.type==="replay_start"){O.isReplaying=!0,O.replayBuffer=[];return}if(g.type==="replay_end"){a(O),O.isReplaying=!1,O.replayBuffer=[];return}if(O.isReplaying){(g.type==="ui_event"||g.type==="done"||g.type==="error")&&O.replayBuffer.push(g);return}if(g.type==="ui_event"&&g.event){c(O,g.event,b);return}if(g.type!=="done"&&g.type==="error"){r.updateMessage(O.messageId,{status:"error"},b),r.setSessionError(g.error||"Server job error",b),r.endConversationStreaming(b),lr=null;return}}function a(g){const O=[];let b="",x=null,w=null,S="";for(const C of g.replayBuffer){if(C.type!=="ui_event"||!C.event)continue;const _=C.event;switch(_.type){case"block_start":if(_.blockType==="text"){const I=_.blockId||Ut();O.push({id:I,type:"text",text:_.text||""}),x=I,w=null,_.text&&(b+=_.text)}else if(_.blockType==="tool_use"&&_.toolUseId&&_.name){const I=_.blockId||Ut();O.push({id:I,type:"tool_use",toolUseId:_.toolUseId,name:_.name,input:{},inputSummary:"",status:"running"}),x=null,w=_.index??0,S=""}break;case"block_delta":if(_.text&&x){const I=O.find(V=>V.id===x);I&&I.type==="text"&&(I.text+=_.text,b+=_.text)}_.partialJson&&w!==null&&(S+=_.partialJson);break;case"block_end":if(x&&(x=null),w!==null){const I=[...O].reverse().find(V=>V.type==="tool_use");if(I){let V={};try{V=JSON.parse(S)}catch{}I.input=V,I.inputSummary=l(V),I.status="pending"}w=null,S=""}break;case"tool_result":{const I=[...O].reverse().find(V=>V.type==="tool_use"&&V.toolUseId===_.toolUseId);I&&(I.status=_.isError?"error":"complete"),O.push({id:Ut(),type:"tool_result",toolUseId:_.toolUseId,content:_.content||"",isError:!!_.isError});break}}}O.length>0&&r.batchSetMessageBlocks(g.messageId,O,b,"streaming",g.conversationId),g.currentTextBlockId=x,g.currentToolBlockId=null,g.currentToolInputJson="",console.log(`[GlobalNotifications] Replay batch: ${g.replayBuffer.length} events → ${O.length} blocks`)}function l(g){return g.file_path?String(g.file_path):g.path?String(g.path):g.command?String(g.command).slice(0,50):""}function c(g,O,b){switch(O.type){case"block_start":{if(O.blockType==="text"){const x=O.blockId||Ut(),w={id:x,type:"text",text:O.text||""};r.appendContentBlock(g.messageId,w,b),g.currentTextBlockId=x,g.currentToolBlockId=null,O.text&&r.appendToMessage(g.messageId,O.text,b)}else if(O.blockType==="tool_use"&&O.toolUseId&&O.name){const x=O.blockId||Ut(),w={id:x,type:"tool_use",toolUseId:O.toolUseId,name:O.name,input:{},inputSummary:"",status:"running"};r.appendContentBlock(g.messageId,w,b),g.currentToolBlockId=x,g.currentToolInputJson="",g.currentTextBlockId=null}break}case"block_delta":{O.text&&g.currentTextBlockId&&(r.updateBlockById(g.messageId,g.currentTextBlockId,x=>{x.type==="text"&&(x.text+=O.text)},b),r.appendToMessage(g.messageId,O.text,b)),O.partialJson&&g.currentToolBlockId&&(g.currentToolInputJson+=O.partialJson);break}case"block_end":{if(g.currentTextBlockId&&(g.currentTextBlockId=null),g.currentToolBlockId){const x=g.currentToolBlockId,w=g.currentToolInputJson;r.updateBlockById(g.messageId,x,S=>{if(S.type==="tool_use"){const C=S;let _={};try{_=JSON.parse(w)}catch{}C.input=_,C.inputSummary=l(_),C.status="pending"}},b),g.currentToolBlockId=null,g.currentToolInputJson=""}break}case"tool_result":{if(O.toolUseId){const x=r.findToolUseBlock(g.messageId,O.toolUseId,b);x&&r.updateBlockById(g.messageId,x.id,S=>{S.type==="tool_use"&&(S.status=O.isError?"error":"complete")},b);const w={id:Ut(),type:"tool_result",toolUseId:O.toolUseId,content:O.content||"",isError:!!O.isError};r.appendContentBlock(g.messageId,w,b)}break}}}function u(){if(typeof window>"u"||Zt&&(Zt.readyState===WebSocket.OPEN||Zt.readyState===WebSocket.CONNECTING))return;const g=vE();Zt=new WebSocket(g),Zt.onopen=()=>{console.log("[GlobalNotifications] WebSocket connected")},Zt.onmessage=s,Zt.onclose=O=>{console.log("[GlobalNotifications] WebSocket closed",{code:O.code,reason:O.reason}),Zt=null,lr&&(r.endConversationStreaming(lr.conversationId),lr=null),h()},Zt.onerror=O=>{console.warn("[GlobalNotifications] WebSocket error",O)}}function h(){Ss||(Ss=setTimeout(()=>{Ss=null,u()},pE))}function f(){Ss&&(clearTimeout(Ss),Ss=null),Fn&&(clearTimeout(Fn),Fn=null);for(const g of da.values())clearTimeout(g);da.clear(),Gn.clear(),Un.clear(),lr&&(r.endConversationStreaming(lr.conversationId),lr=null),Zt&&(Zt.close(),Zt=null)}async function m(){try{const O=(await $fetch("/api/jobs")).filter(b=>b.source!=="user"&&(b.status==="running"||b.status==="waiting_permission"||b.status==="queued"||b.status==="completed"&&b.eventCount>0));if(O.length===0)return;await r.refreshServerConversations();for(const b of O){if(r.isConversationStreaming(b.conversationId))continue;const x=r.conversations.find(C=>C.id===b.conversationId);if(!x)continue;const w=[...x.messages].reverse().find(C=>C.role==="assistant");if(w&&(w.status==="complete"||w.status==="error"||w.status==="stopped"))continue;console.log("[GlobalNotifications] Resuming active server job:",b.id,"for conversation:",b.conversationId),n(b.conversationId,"")||(console.log("[GlobalNotifications] WS not ready for resume, queuing for retry:",b.conversationId),Un.set(b.conversationId,""),t())}}catch(g){console.warn("[GlobalNotifications] Failed to check for active server jobs:",g)}}return mt(()=>{u(),m()}),kt(()=>{f()}),{connect:u,disconnect:f}}const xE={class:"flex h-screen min-w-[320px] overflow-x-auto bg-retro-black text-retro-text"},yE={class:"flex flex-col overflow-hidden",style:{flex:"3"}},kE={class:"flex-shrink-0 h-14 flex items-center justify-between px-4 border-b border-retro-border bg-retro-panel"},wE={class:"flex items-center gap-2 min-w-0"},SE={key:0,class:"text-xs text-retro-muted font-mono truncate"},$E={class:"flex items-center gap-1"},CE=["title"],QE={class:"flex-1 min-h-0 overflow-y-auto"},PE={class:"relative flex min-w-0",style:{flex:"7"}},TE={key:0,class:"flex flex-col overflow-hidden border-l border-retro-border",style:{flex:"2"}},ME={key:1,class:"flex flex-col overflow-hidden border-l border-retro-border",style:{flex:"2"}},AE={key:2,class:"absolute inset-0 z-30 flex flex-col overflow-hidden border-l border-retro-border bg-retro-black"},WE=Xe({__name:"default",setup(r){const e=b1(),t=Oo(),n=mr(),s=dl(),{isDark:i,toggleTheme:o}=N1(),{tryResumeStreaming:a}=Pl();bE();const l=H(()=>s.diffViewerFile!==null),c=H(()=>e.isChatFullscreen),u=H(()=>c.value),h=H(()=>c.value?7:3),f=Q(!1),m=Q(""),g=H(()=>{if(!m.value)return"";const x=m.value.replace(/\/+$/,"").split("/");return x[x.length-1]||""}),O=H(()=>g.value?`spec cat :: ${g.value}`:"spec cat");R1(()=>({title:O.value}));const b=()=>{typeof window<"u"&&e.updateViewport(window.innerWidth)};return mt(async()=>{typeof window<"u"&&(e.updateViewport(window.innerWidth),window.addEventListener("resize",b)),await t.hydrate(),await n.initialize(),await n.loadConversations(),n.activeConversationId&&a(n.activeConversationId);try{const x=await $fetch("/api/cwd");m.value=x.cwd}catch{m.value=""}}),kt(()=>{typeof window<"u"&&window.removeEventListener("resize",b)}),(x,w)=>{const S=a2;return v(),y("div",xE,[d("div",yE,[d("div",kE,[d("div",wE,[w[4]||(w[4]=d("img",{alt:"SpecCat",src:l2,class:"w-5 h-5 text-retro-cyan mb-1"},null,-1)),w[5]||(w[5]=d("span",{class:"text-sm font-bold text-retro-cyan font-mono uppercase tracking-wider flex-shrink-0"},"SPECCAT",-1)),g.value?(v(),y("span",SE,"/ "+A(g.value),1)):U("",!0)]),d("div",$E,[d("button",{type:"button",class:"p-2 rounded transition-colors text-retro-muted hover:text-retro-text hover:bg-retro-panel",title:p(i)?"Switch to light theme":"Switch to dark theme",onClick:w[0]||(w[0]=(...C)=>p(o)&&p(o)(...C))},[p(i)?(v(),ge(p(W1),{key:0,class:"w-5 h-5"})):(v(),ge(p(q1),{key:1,class:"w-5 h-5"}))],8,CE),d("button",{type:"button",class:"p-2 rounded transition-colors text-retro-muted hover:text-retro-text hover:bg-retro-panel",title:"Settings",onClick:w[1]||(w[1]=C=>f.value=!0)},[K(p(Jm),{class:"w-5 h-5"})])])]),d("div",QE,[K(S,{"working-directory":m.value},null,8,["working-directory"])])]),d("div",PE,[u.value?U("",!0):(v(),y("div",TE,[K(pB)])),u.value?U("",!0):(v(),y("div",ME,[K(zB)])),d("div",{class:"flex flex-col overflow-hidden border-l border-retro-border",style:Jt({flex:h.value})},[K(hZ)],4),l.value?(v(),y("div",AE,[K(BZ,{file:p(s).diffViewerFile,"commit-hash":p(s).diffViewerCommitHash,content:p(s).diffViewerContent,loading:p(s).diffViewerLoading,onClose:w[2]||(w[2]=C=>p(s).closeFileDiff())},null,8,["file","commit-hash","content","loading"])])):U("",!0)]),f.value?(v(),ge(lE,{key:0,onClose:w[3]||(w[3]=C=>f.value=!1)})):U("",!0),K(dE),K(mE),Im(x.$slots,"default")])}}});export{WE as default};
|