From 9cefdba9c9a49adfb8da82320cb3235020530bfa Mon Sep 17 00:00:00 2001 From: andrinr Date: Mon, 19 Oct 2026 15:23:25 +0200 Subject: [PATCH] B-rep inspector: smooth shading from exact normals, a live hover readout, triangle outlines Smooth shading. The inspector shaded every triangle flat, so a smooth blend (thousands of facets each 1-3 degrees off the surface) read as ripples. When the private tier's B-rep offers corner_normals(scene) - the exact normal at every triangle corner, per face - the payload carries them (corner_normals, flat xyz per corner) and the face pass shades with the interpolated normal; a crease stays sharp because each face carries its own normal there. Without them, or for the lattice quads split here, the facets are shaded flat as before. The B-rep face pass gets its own 40-byte stride (position, rgba, normal). Hover readout. The readout's ran its child once while a target stayed truthy, so it froze on the first face hovered while the hover itself kept moving; it is keyed now. Triangle outlines. A "Triangles" switch in the legend outlines every distinct triangle edge of the tessellation, faint and under the graph's edges, to judge how a face was triangulated. Co-Authored-By: Claude Opus 5.5 --- cadjoint/viewer/_brep_inspector.py | 27 ++++ cadjoint/viewer/schema/payloads.d.ts | 1 + cadjoint/viewer/schema/payloads.py | 5 + .../{main-DVwaC1P6.js => main-Bt9SgKsp.js} | 124 ++++++++++-------- cadjoint/viewer/static/index.html | 2 +- frontend/src/brep.ts | 56 +++++++- frontend/src/components/ViewerPane.tsx | 2 + .../src/components/viewer/BrepInspector.tsx | 23 +++- frontend/src/state.ts | 2 + frontend/src/viewer/brepLayer.ts | 4 +- frontend/src/viewer/overlay.wgsl | 18 ++- frontend/src/viewer/overlayGeometry.ts | 2 + frontend/src/viewer/pipelines.ts | 4 +- frontend/test/brep.test.ts | 37 +++++- tests/viewer/test_brep_inspector.py | 47 +++++++ 15 files changed, 280 insertions(+), 74 deletions(-) rename cadjoint/viewer/static/assets/{main-DVwaC1P6.js => main-Bt9SgKsp.js} (75%) diff --git a/cadjoint/viewer/_brep_inspector.py b/cadjoint/viewer/_brep_inspector.py index 8d02ee24..c285d0bd 100644 --- a/cadjoint/viewer/_brep_inspector.py +++ b/cadjoint/viewer/_brep_inspector.py @@ -141,6 +141,31 @@ def _tessellation(brep: Any) -> tuple[np.ndarray, np.ndarray, np.ndarray]: return points, split, np.concatenate([quad_face, quad_face]) +def _corner_normals(scene: Any, brep: Any, triangles: np.ndarray) -> np.ndarray | None: + """The private tier's exact normal at every triangle corner, or ``None``. + + Asked of the B-rep itself (``brep.corner_normals(scene)``), which knows + each face's surface: shading with the surface's own normal shows a smooth + blend smooth, where the facets' normals show every facet. Only the + B-rep's own triangles have them — not the lattice quads split here — and + a B-rep without the method, or one that fails, is shaded flat as before. + """ + method = getattr(brep, "corner_normals", None) + if method is None or triangles.shape[0] == 0: + return None + own = np.asarray(getattr(brep, "triangles", np.zeros((0, 3))), dtype=np.int64).reshape(-1, 3) + if own.shape != triangles.shape or not np.array_equal(own, triangles): + return None + try: + normals = np.asarray(method(scene), dtype=np.float64) + except Exception as error: # noqa: BLE001 - shading is a nicety, the inspector still answers + print(f"corner normals unavailable: {type(error).__name__}: {error}") + return None + if normals.shape != (*triangles.shape, 3): + return None + return normals + + def _scene_residual(scene: Any, polylines: Sequence[np.ndarray]) -> list[float]: """Per polyline, the largest ``|f|`` of the scene over its points. @@ -407,6 +432,7 @@ def brep_inspection(scene: Any) -> dict[str, Any]: timings["feature_edges"] = time.perf_counter() - started started = time.perf_counter() points, triangles, owners = _tessellation(brep) + normals = _corner_normals(scene, brep, triangles) faces = _faces(brep) vertices = _vertices(brep) edges = _edges(scene, brep, curves, cell) @@ -416,6 +442,7 @@ def brep_inspection(scene: Any) -> dict[str, Any]: "positions": _round(points), "triangles": [int(i) for i in triangles.ravel()], "triangle_face": [int(i) for i in owners], + **({"corner_normals": _round(normals.reshape(-1, 3))} if normals is not None else {}), "faces": faces, "edges": edges, "vertices": vertices, diff --git a/cadjoint/viewer/schema/payloads.d.ts b/cadjoint/viewer/schema/payloads.d.ts index 3903cc47..f8ccce37 100644 --- a/cadjoint/viewer/schema/payloads.d.ts +++ b/cadjoint/viewer/schema/payloads.d.ts @@ -559,6 +559,7 @@ export interface BRepInspectionPayload { positions?: number[] | null; triangles?: number[] | null; triangle_face?: number[] | null; + corner_normals?: number[] | null; faces?: BRepFacePayload[] | null; edges?: BRepEdgePayload[] | null; vertices?: BRepVertexPayload[] | null; diff --git a/cadjoint/viewer/schema/payloads.py b/cadjoint/viewer/schema/payloads.py index b31ce750..8c2775d0 100644 --- a/cadjoint/viewer/schema/payloads.py +++ b/cadjoint/viewer/schema/payloads.py @@ -713,6 +713,11 @@ class BRepInspectionPayload(Strict): positions: list[float] | None = None triangles: list[int] | None = None triangle_face: list[int] | None = None + # The exact surface normal at every triangle corner, flat ``x, y, z`` + # per corner in triangle order, when the private tier supplies them: the + # viewer shades with these rather than with the facets, so a smooth blend + # does not read as ripples. Absent, the faces are shaded flat. + corner_normals: list[float] | None = None faces: list[BRepFacePayload] | None = None edges: list[BRepEdgePayload] | None = None vertices: list[BRepVertexPayload] | None = None diff --git a/cadjoint/viewer/static/assets/main-DVwaC1P6.js b/cadjoint/viewer/static/assets/main-Bt9SgKsp.js similarity index 75% rename from cadjoint/viewer/static/assets/main-DVwaC1P6.js rename to cadjoint/viewer/static/assets/main-Bt9SgKsp.js index 0bee0cc5..f0986f5d 100644 --- a/cadjoint/viewer/static/assets/main-DVwaC1P6.js +++ b/cadjoint/viewer/static/assets/main-Bt9SgKsp.js @@ -1,19 +1,19 @@ -import{af as eO,k as B,ag as tO,ah as f0,ai as iO,aj as nO,d as Re,o as Tn,n as Fe,ak as Oe,i as v,p as ie,u as Jo,t as P,a as W,c as w,al as p0,s as I,b as Lt,am as Yn,S as G,F as me,an as sO,ac as rO,ao as Ss,l as ze,j as Ci,r as oO,a6 as Oh,K as m0,I as aO,ap as qu,aq as os,m as Xi,q as lO,ar as Uu,as as ld,H as g0,G as v0,D as ju,E as b0,g as st,w as hO,at as cO,au as dO,C as Ti,av as uO,aw as In,ax as fO,z as _0,B as w0,ay as y0,P as pO,az as mO,aA as gO,aB as vO,Q as bO,T as _O,U as wO,M as yO,R as xO,aC as OO,V as SO,W as kO,X as CO,aD as TO,aE as DO,aF as PO,aG as $O,aH as Dp,aI as Pp,aJ as js,a4 as AO,Y as IO,Z as EO,_ as MO,a2 as GO,aK as RO,$ as zO,aL as LO,aM as NO,aN as Il,aO as BO,a9 as eo,aP as WO,aQ as VO,aR as FO,y as x0,a0 as QO,ad as HO,aS as O0,aT as hd,aU as S0,aV as El,aW as qO,J as Xu,aX as Yu,ae as k0,aY as Zn,a7 as Ml,aZ as _r,a_ as UO,a$ as jO,b0 as XO,b1 as C0,a8 as $p}from"./panels-jwafX2lo.js";function Pi(t){return t.stableId?{id:t.stableId}:{}}function YO(t){const e=t.split(` -`),i=e.pop()??"";return{lines:e.map(n=>n.trim()).filter(n=>n.length>0),rest:i}}const Fr=t=>{const e=Number(t);return Number.isFinite(e)?e:null};function ZO(t){let e;try{e=JSON.parse(t)}catch{return null}if(typeof e!="object"||e===null)return null;const i=e;if(i.event==="progress"){const n=Fr(i.step),s=Fr(i.steps),r=Fr(i.objective);return n===null||s===null||r===null?null:{kind:"progress",step:n,steps:s,objective:r,gradNorm:Fr(i.grad_norm),elapsed:Fr(i.elapsed)}}if(i.event==="done"){const{event:n,...s}=i;return{kind:"done",response:s}}return null}function Ap(t,e,i){return{op:"set_optimization_value",...Pi(t),optimization:t.index,argument:e,value:i}}function KO(t){return{op:"delete_optimization",...Pi(t),optimization:t.index}}function JO(t,e,i){return{source:t,name:e}}function eS(t){const e=i=>{const n=Number(i.toFixed(6));return Object.is(n,-0)?"0.0":`${n}${Number.isInteger(n)?".0":""}`};return Array.isArray(t)?`[${t.map(e).join(", ")}]`:e(t)}function tS(t,e){let i=t;for(const[n,s]of Object.entries(e)){const r=new RegExp(String.raw`(\b${n}\s*=\s*(?:Scalar|Vector2|Vector)\(\s*(?:value\s*=\s*)?)`+String.raw`(\[[^\]]*\]|[-+]?[0-9][0-9_]*\.?[0-9]*(?:[eE][-+]?[0-9]+)?)`);i=i.replace(r,`$1${eS(s)}`)}return i}function cd(t,e=16){if(t<=0)return[];if(t===1)return[0];const i=Math.min(t,Math.max(2,e)),n=[];for(let s=0;sr===0||s!==n[r-1])}function iS(t,e){if(!t.playing||e===0)return{...t,playing:!1};const i=t.frame+1;return i>=e?{frame:e-1,playing:!1}:{frame:i,playing:!0}}function nS(t,e){return e===0?{frame:0,playing:!1}:{frame:t.frame>=e-1?0:t.frame,playing:!0}}function sS(t,e,i){if(t.length===0)return"";const n=Math.min(...t),r=Math.max(...t)-n,o=1.5,a=i-2*o,l=t.length>1?e/(t.length-1):0;return t.map((h,c)=>{const d=r>0?(h-n)/r:.5,u=t.length>1?c*l:e/2,f=o+(1-d)*a;return`${u.toFixed(1)},${f.toFixed(1)}`}).join(" ")}function Ip(t,e,i){return e<=1?i/2:Math.min(t,e-1)/(e-1)*i}function rS(t,e,i,n){if(t.length===0)return null;const s=Math.min(Math.max(e,0),t.length-1),r=Math.min(...t),a=Math.max(...t)-r,l=1.5,h=a>0?(t[s]-r)/a:.5;return{x:t.length>1?s*i/(t.length-1):i/2,y:l+(1-h)*(n-2*l)}}function oS(t,e){const i=t[e];return i?i.objective:null}const Ep=3;class T0 extends Error{constructor(e){super(e),this.name="ApiVersionMismatch"}}function aS(t){return t===Ep?null:`This page was built for playground API version ${Ep}, but the server speaks version ${t}. The page and the server come from different cadjoint builds: restart the playground (\`cadjoint-playground\` or \`python -m cadjoint.viewer.playground\`) from the install that served this page, or rebuild the frontend (\`npm run build\` in frontend/) to match the server, then reload.`}let Zi="",D0=()=>{};const Mr=new Promise(t=>{D0=t});async function Dn(t){const e=await t.text();try{return JSON.parse(e)}catch{throw new Error(`Server returned a non-JSON response (${t.status}).`)}}async function lS(){const t=await fetch("/api/session");if(!t.ok)throw new Error(`Could not start a session (${t.status}).`);const e=await Dn(t),i=aS(e.api_version);if(i)throw new T0(i);return Zi=e.token,D0(),e}async function di(t,e,i){const n=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json","X-Cadjoint-Token":Zi},body:JSON.stringify(e),signal:i});return Dn(n)}async function P0(t,e={}){return di("/api/compile",{source:t,...e.clientId?{client_id:e.clientId}:{}},e.signal)}async function $0(t){return di("/api/patch",t)}async function hS(t,e={}){return di("/api/mesh",{source:t,...e.clientId?{client_id:e.clientId}:{}},e.signal)}async function cS(t,e={}){return di("/api/brep",{source:t,...e.clientId?{client_id:e.clientId}:{}},e.signal)}async function Mp(t,e,i){return di("/api/mesh_refresh",{source:t,values:e,certify:i})}async function dS(t){return di("/api/simulate",t)}async function Gp(t,e){return di("/api/mesh_inspect",{source:t,name:e})}async function uS(t,e,i){const n=await fetch("/api/optimize",{method:"POST",headers:{"Content-Type":"application/json","X-Cadjoint-Token":Zi},body:JSON.stringify(t)});if(!n.body)return Dn(n);const s=n.body.getReader(),r=new TextDecoder;let o="",a="",l=null;for(;;){const{value:h,done:c}=await s.read(),d=r.decode(h??new Uint8Array(0),{stream:!c});o+=d,a+=d;const{lines:u,rest:f}=YO(o);o=f,c&&o.trim().length>0&&u.push(o.trim());for(const p of u){if(i)try{const g=JSON.parse(p);typeof g?.job_id=="string"&&i(g.job_id)}catch{}const m=ZO(p);if(m?.kind==="progress"){const{kind:g,...b}=m;e?.(b)}else m?.kind==="done"&&(l=m.response)}if(c)break}if(l)return l;try{return JSON.parse(a)}catch{throw new Error(`Server returned a non-JSON response (${n.status}).`)}}async function fS(t){return di("/api/lint",{source:t})}async function pS(t,e,i){return di("/api/complete",{source:t,line:e,column:i})}async function mS(t,e,i){return di("/api/signature",{source:t,line:e,column:i})}async function gS(t){const e=await fetch("/api/export",{method:"POST",headers:{"Content-Type":"application/json","X-Cadjoint-Token":Zi},body:JSON.stringify(t)}),i=e.headers.get("X-Cadjoint-Job")||null,n=e.headers.get("Content-Type")??"";if(!e.ok||n.startsWith("application/json")){const l=await Dn(e);return{ok:!1,error:l.error??`Export failed (${e.status}).`,errorKind:l.error_kind??null,jobId:i}}const s=await e.blob(),r=e.headers.get("Content-Disposition"),o=/filename="([^"]+)"/.exec(r??"")?.[1]??`export.${t.format}`;let a=null;try{const l=e.headers.get("X-Cadjoint-Export");a=l?JSON.parse(l):null}catch{a=null}return{ok:!0,blob:s,filename:o,jobId:i,report:a}}async function vS(){const t=await fetch("/api/scenes");return Dn(t)}async function A0(t){return di("/api/scenes/load",{name:t})}async function bS(t,e){return di("/api/scenes/save",{name:t,source:e})}async function I0(){await Mr;const t=await fetch("/api/jobs",{headers:{"X-Cadjoint-Token":Zi}});if(!t.ok)throw new Error(`Could not list jobs (${t.status}).`);return Dn(t)}async function _S(t){await Mr;const e=await fetch(`/api/jobs/${encodeURIComponent(t)}`,{headers:{"X-Cadjoint-Token":Zi}});if(!e.ok)return null;const i=await Dn(e);return i.ok?i.job:null}async function wS(t){await Mr;let e;try{e=await fetch(`/api/jobs/${encodeURIComponent(t)}/result`,{headers:{"X-Cadjoint-Token":Zi}})}catch(i){return{state:"error",message:i instanceof Error?i.message:String(i)}}return e.ok?{state:"ok",payload:await Dn(e)}:e.status===409?{state:"pending"}:e.status===404||e.status===410?{state:"gone"}:{state:"error",message:`Could not read that result (${e.status}).`}}async function E0(t){return await Mr,(await fetch(`/api/jobs/${encodeURIComponent(t)}/cancel`,{method:"POST",headers:{"Content-Type":"application/json","X-Cadjoint-Token":Zi},body:"{}"})).ok}async function yS(t){await Mr;try{const e=await fetch("/api/jobs/cancel_client",{method:"POST",headers:{"Content-Type":"application/json","X-Cadjoint-Token":Zi},body:JSON.stringify({client_id:t})});if(!e.ok)return 0;const i=await Dn(e);return i.ok?i.cancelled.length:0}catch{return 0}}async function xS(){await Mr,await fetch("/api/jobs/clear",{method:"POST",headers:{"Content-Type":"application/json","X-Cadjoint-Token":Zi},body:"{}"})}let dd=[],M0=[];(()=>{let t="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,i=0;e>1;if(t=M0[n])e=n+1;else return!0;if(e==i)return!1}}function Rp(t){return t>=127462&&t<=127487}const zp=8205;function SS(t,e,i=!0,n=!0){return(i?G0:kS)(t,e,n)}function G0(t,e,i){if(e==t.length)return e;e&&R0(t.charCodeAt(e))&&z0(t.charCodeAt(e-1))&&e--;let n=Zh(t,e);for(e+=Lp(n);e=0&&Rp(Zh(t,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function kS(t,e,i){for(;e>1;){let n=G0(t,e-2,i);if(n=56320&&t<57344}function z0(t){return t>=55296&&t<56320}function Lp(t){return t<65536?1:2}class Ee{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,i,n){[e,i]=wr(this,e,i);let s=[];return this.decompose(0,e,s,2),n.length&&n.decompose(0,n.length,s,3),this.decompose(i,this.length,s,1),Ni.from(s,this.length-(i-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,i=this.length){[e,i]=wr(this,e,i);let n=[];return this.decompose(e,i,n,0),Ni.from(n,i-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let i=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),s=new co(this),r=new co(e);for(let o=i,a=i;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(a+=s.value.length,s.done||a>=n)return!0}}iter(e=1){return new co(this,e)}iterRange(e,i=this.length){return new L0(this,e,i)}iterLines(e,i){let n;if(e==null)n=this.iter();else{i==null&&(i=this.lines+1);let s=this.line(e).from;n=this.iterRange(s,Math.max(s,i==this.lines+1?this.length:i<=1?0:this.line(i-1).to))}return new N0(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]?Ee.empty:e.length<=32?new nt(e):Ni.from(nt.split(e,[]))}}class nt extends Ee{constructor(e,i=CS(e)){super(),this.text=e,this.length=i}get lines(){return this.text.length}get children(){return null}lineInner(e,i,n,s){for(let r=0;;r++){let o=this.text[r],a=s+o.length;if((i?n:a)>=e)return new TS(s,a,n,o);s=a+1,n++}}decompose(e,i,n,s){let r=e<=0&&i>=this.length?this:new nt(Np(this.text,e,i),Math.min(i,this.length)-Math.max(0,e));if(s&1){let o=n.pop(),a=nl(r.text,o.text.slice(),0,r.length);if(a.length<=32)n.push(new nt(a,o.length+r.length));else{let l=a.length>>1;n.push(new nt(a.slice(0,l)),new nt(a.slice(l)))}}else n.push(r)}replace(e,i,n){if(!(n instanceof nt))return super.replace(e,i,n);[e,i]=wr(this,e,i);let s=nl(this.text,nl(n.text,Np(this.text,0,e)),i),r=this.length+n.length-(i-e);return s.length<=32?new nt(s,r):Ni.from(nt.split(s,[]),r)}sliceString(e,i=this.length,n=` -`){[e,i]=wr(this,e,i);let s="";for(let r=0,o=0;r<=i&&oe&&o&&(s+=n),er&&(s+=a.slice(Math.max(0,e-r),i-r)),r=l+1}return s}flatten(e){for(let i of this.text)e.push(i)}scanIdentical(){return 0}static split(e,i){let n=[],s=-1;for(let r of e)n.push(r),s+=r.length+1,n.length==32&&(i.push(new nt(n,s)),n=[],s=-1);return s>-1&&i.push(new nt(n,s)),i}}class Ni extends Ee{constructor(e,i){super(),this.children=e,this.length=i,this.lines=0;for(let n of e)this.lines+=n.lines}lineInner(e,i,n,s){for(let r=0;;r++){let o=this.children[r],a=s+o.length,l=n+o.lines-1;if((i?l:a)>=e)return o.lineInner(e,i,n,s);s=a+1,n=l+1}}decompose(e,i,n,s){for(let r=0,o=0;o<=i&&r=o){let h=s&((o<=e?1:0)|(l>=i?2:0));o>=e&&l<=i&&!h?n.push(a):a.decompose(e-o,i-o,n,h)}o=l+1}}replace(e,i,n){if([e,i]=wr(this,e,i),n.lines=r&&i<=a){let l=o.replace(e-r,i-r,n),h=this.lines-o.lines+l.lines;if(l.lines>4&&l.lines>h>>6){let c=this.children.slice();return c[s]=l,new Ni(c,this.length-(i-e)+n.length)}return super.replace(r,a,l)}r=a+1}return super.replace(e,i,n)}sliceString(e,i=this.length,n=` -`){[e,i]=wr(this,e,i);let s="";for(let r=0,o=0;re&&r&&(s+=n),eo&&(s+=a.sliceString(e-o,i-o,n)),o=l+1}return s}flatten(e){for(let i of this.children)i.flatten(e)}scanIdentical(e,i){if(!(e instanceof Ni))return 0;let n=0,[s,r,o,a]=i>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;s+=i,r+=i){if(s==o||r==a)return n;let l=this.children[s],h=e.children[r];if(l!=h)return n+l.scanIdentical(h,i);n+=l.length+1}}static from(e,i=e.reduce((n,s)=>n+s.length+1,-1)){let n=0;for(let f of e)n+=f.lines;if(n<32){let f=[];for(let p of e)p.flatten(f);return new nt(f,i)}let s=Math.max(32,n>>5),r=s<<1,o=s>>1,a=[],l=0,h=-1,c=[];function d(f){let p;if(f.lines>r&&f instanceof Ni)for(let m of f.children)d(m);else f.lines>o&&(l>o||!l)?(u(),a.push(f)):f instanceof nt&&l&&(p=c[c.length-1])instanceof nt&&f.lines+p.lines<=32?(l+=f.lines,h+=f.length+1,c[c.length-1]=new nt(p.text.concat(f.text),p.length+1+f.length)):(l+f.lines>s&&u(),l+=f.lines,h+=f.length+1,c.push(f))}function u(){l!=0&&(a.push(c.length==1?c[0]:Ni.from(c,h)),h=-1,l=c.length=0)}for(let f of e)d(f);return u(),a.length==1?a[0]:new Ni(a,i)}}Ee.empty=new nt([""],0);function CS(t){let e=-1;for(let i of t)e+=i.length+1;return e}function nl(t,e,i=0,n=1e9){for(let s=0,r=0,o=!0;r=i&&(l>n&&(a=a.slice(0,n-s)),s0?1:(e instanceof nt?e.text.length:e.children.length)<<1]}nextInner(e,i){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,s=this.nodes[n],r=this.offsets[n],o=r>>1,a=s instanceof nt?s.text.length:s.children.length;if(o==(i>0?a:0)){if(n==0)return this.done=!0,this.value="",this;i>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((r&1)==(i>0?0:1)){if(this.offsets[n]+=i,e==0)return this.lineBreak=!0,this.value=` -`,this;e--}else if(s instanceof nt){let l=s.text[o+(i<0?-1:0)];if(this.offsets[n]+=i,l.length>Math.max(0,e))return this.value=e==0?l:i>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=s.children[o+(i<0?-1:0)];e>l.length?(e-=l.length,this.offsets[n]+=i):(i<0&&this.offsets[n]--,this.nodes.push(l),this.offsets.push(i>0?1:(l instanceof nt?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 L0{constructor(e,i,n){this.value="",this.done=!1,this.cursor=new co(e,i>n?-1:1),this.pos=i>n?e.length:0,this.from=Math.min(i,n),this.to=Math.max(i,n)}nextInner(e,i){if(i<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,i<0?this.pos-this.to:this.from-this.pos);let n=i<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)*i,this.value=s.length<=n?s:i<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 N0{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:i,lineBreak:n,value:s}=this.inner.next(e);return i&&this.afterBreak?(this.value="",this.afterBreak=!1):i?(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"&&(Ee.prototype[Symbol.iterator]=function(){return this.iter()},co.prototype[Symbol.iterator]=L0.prototype[Symbol.iterator]=N0.prototype[Symbol.iterator]=function(){return this});class TS{constructor(e,i,n,s){this.from=e,this.to=i,this.number=n,this.text=s}get length(){return this.to-this.from}}function wr(t,e,i){return e=Math.max(0,Math.min(t.length,e)),[e,Math.max(e,Math.min(t.length,i))]}function Ct(t,e,i=!0,n=!0){return SS(t,e,i,n)}function DS(t){return t>=56320&&t<57344}function PS(t){return t>=55296&&t<56320}function fs(t,e){let i=t.charCodeAt(e);if(!PS(i)||e+1==t.length)return i;let n=t.charCodeAt(e+1);return DS(n)?(i-55296<<10)+(n-56320)+65536:i}function $S(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10)+55296,(t&1023)+56320))}function Js(t){return t<65536?1:2}const ud=/\r\n?|\n/;var kt=(function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t})(kt||(kt={}));class ji{constructor(e){this.sections=e}get length(){let e=0;for(let i=0;ie)return r+(e-s);r+=a}else{if(n!=kt.Simple&&h>=e&&(n==kt.TrackDel&&se||n==kt.TrackBefore&&se))return null;if(h>e||h==e&&i<0&&!a)return e==s||i<0?r:r+l;r+=l}s=h}if(e>s)throw new RangeError(`Position ${e} is out of range for changeset of length ${s}`);return r}touchesRange(e,i=e){for(let n=0,s=0;n=0&&s<=i&&a>=e)return si?"cover":!0;s=a}return!1}toString(){let e="";for(let i=0;i=0?":"+s:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(i=>typeof i!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ji(e)}static create(e){return new ji(e)}}class dt extends ji{constructor(e,i){super(e),this.inserted=i}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return fd(this,(i,n,s,r,o)=>e=e.replace(s,s+(n-i),o),!1),e}mapDesc(e,i=!1){return pd(this,e,i,!0)}invert(e){let i=this.sections.slice(),n=[];for(let s=0,r=0;s=0){i[s]=a,i[s+1]=o;let l=s>>1;for(;n.length0&&jn(n,i,r.text),r.forward(c),a+=c}let h=e[o++];for(;a>1].toJSON()))}return e}static of(e,i,n){let s=[],r=[],o=0,a=null;function l(c=!1){if(!c&&!s.length)return;ou||d<0||u>i)throw new RangeError(`Invalid change range ${d} to ${u} (in doc of length ${i})`);let p=f?typeof f=="string"?Ee.of(f.split(n||ud)):f:Ee.empty,m=p.length;if(d==u&&m==0)return;do&&St(s,d-o,-1),St(s,u-d,m),jn(r,s,p),o=u}}return h(e),l(!a),a}static empty(e){return new dt(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let i=[],n=[];for(let s=0;sa&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(r.length==1)i.push(r[0],0);else{for(;n.length=0&&i<=0&&i==t[s+1]?t[s]+=e:s>=0&&e==0&&t[s]==0?t[s+1]+=i:n?(t[s]+=e,t[s+1]+=i):t.push(e,i)}function jn(t,e,i){if(i.length==0)return;let n=e.length-2>>1;if(n>1])),!(i||o==t.sections.length||t.sections[o+1]<0);)a=t.sections[o++],l=t.sections[o++];e(s,h,r,c,d),s=h,r=c}}}function pd(t,e,i,n=!1){let s=[],r=n?[]:null,o=new Co(t),a=new Co(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 h=Math.min(o.len,a.len);St(s,h,-1),o.forward(h),a.forward(h)}else if(a.ins>=0&&(o.ins<0||l==o.i||o.off==0&&(a.len=0&&l=0){let h=0,c=o.len;for(;c;)if(a.ins==-1){let d=Math.min(c,a.len);h+=d,c-=d,a.forward(d)}else if(a.ins==0&&a.lenl||o.ins>=0&&o.len>l)&&(a||n.length>h),r.forward2(l),o.forward(l)}}}}class Co{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return i>=e.length?Ee.empty:e[i]}textBit(e){let{inserted:i}=this.set,n=this.i-2>>1;return n>=i.length&&!e?Ee.empty:i[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 Hn{constructor(e,i,n,s){this.from=e,this.to=i,this.flags=n,this.goalColumn=s}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 undirectional(){return(this.flags&64)>0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}map(e,i=-1){let n,s;return this.empty?n=s=e.mapPos(this.from,i):(n=e.mapPos(this.from,1),s=e.mapPos(this.to,-1)),n==this.from&&s==this.to?this:new Hn(n,s,this.flags,this.goalColumn)}extend(e,i=e,n=0){if(e<=this.anchor&&i>=this.anchor)return K.range(e,i,void 0,void 0,n);let s=Math.abs(e-this.anchor)>Math.abs(i-this.anchor)?e:i;return K.range(this.anchor,s,void 0,void 0,n)}eq(e,i=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!i||!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 K.range(e.anchor,e.head)}static create(e,i,n,s){return new Hn(e,i,n,s)}}class K{constructor(e,i){this.ranges=e,this.mainIndex=i}map(e,i=-1){return e.empty?this:K.create(this.ranges.map(n=>n.map(e,i)),this.mainIndex)}eq(e,i=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;ne.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 K(e.ranges.map(i=>Hn.fromJSON(i)),e.main)}static single(e,i=e){return new K([K.range(e,i)],0)}static create(e,i=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let n=0,s=0;ss.from-r.from),i=e.indexOf(n);for(let s=1;sr.head?K.range(l,a):K.range(a,l))}}return new K(e,i)}}function W0(t,e){for(let i of t.ranges)if(i.to>e)throw new RangeError("Selection points outside of document")}let Zu=0;class le{constructor(e,i,n,s,r){this.combine=e,this.compareInput=i,this.compare=n,this.isStatic=s,this.id=Zu++,this.default=e([]),this.extensions=typeof r=="function"?r(this):r}get reader(){return this}static define(e={}){return new le(e.combine||(i=>i),e.compareInput||((i,n)=>i===n),e.compare||(e.combine?(i,n)=>i===n:Ku),!!e.static,e.enables)}of(e){return new sl([],this,0,e)}compute(e,i){if(this.isStatic)throw new Error("Can't compute a static facet");return new sl(e,this,1,i)}computeN(e,i){if(this.isStatic)throw new Error("Can't compute a static facet");return new sl(e,this,2,i)}from(e,i){return i||(i=n=>n),this.compute([e],n=>i(n.field(e)))}}function Ku(t,e){return t==e||t.length==e.length&&t.every((i,n)=>i===e[n])}class sl{constructor(e,i,n,s){this.dependencies=e,this.facet=i,this.type=n,this.value=s,this.id=Zu++}dynamicSlot(e){var i;let n=this.value,s=this.facet.compareInput,r=this.id,o=e[r]>>1,a=this.type==2,l=!1,h=!1,c=[];for(let d of this.dependencies)d=="doc"?l=!0:d=="selection"?h=!0:(((i=e[d.id])!==null&&i!==void 0?i:1)&1)==0&&c.push(e[d.id]);return{create(d){return d.values[o]=n(d),1},update(d,u){if(l&&u.docChanged||h&&(u.docChanged||u.selection)||md(d,c)){let f=n(d);if(a?!Bp(f,d.values[o],s):!s(f,d.values[o]))return d.values[o]=f,1}return 0},reconfigure:(d,u)=>{let f,p=u.config.address[r];if(p!=null){let m=Rl(u,p);if(this.dependencies.every(g=>g instanceof le?u.facet(g)===d.facet(g):g instanceof Dt?u.field(g,!1)==d.field(g,!1):!0)||(a?Bp(f=n(d),m,s):s(f=n(d),m)))return d.values[o]=m,0}else f=n(d);return d.values[o]=f,1}}}get extension(){return this}}function Bp(t,e,i){if(t.length!=e.length)return!1;for(let n=0;nt[l.id]),s=i.map(l=>l.type),r=n.filter(l=>!(l&1)),o=t[e.id]>>1;function a(l){let h=[];for(let c=0;cn===s),e);return e.provide&&(i.provides=e.provide(i)),i}create(e){let i=e.facet(da).find(n=>n.field==this);return(i?.create||this.createF)(e)}slot(e){let i=e[this.id]>>1;return{create:n=>(n.values[i]=this.create(n),1),update:(n,s)=>{let r=n.values[i],o=this.updateF(r,s);return this.compareF(r,o)?0:(n.values[i]=o,1)},reconfigure:(n,s)=>{let r=n.facet(da),o=s.facet(da),a;return(a=r.find(l=>l.field==this))&&a!=o.find(l=>l.field==this)?(n.values[i]=a.create(n),1):s.config.address[this.id]!=null?(n.values[i]=s.field(this),0):(n.values[i]=this.create(n),1)}}}init(e){return[this,da.of({field:this,create:e})]}get extension(){return this}}const bs={lowest:4,low:3,default:2,high:1,highest:0};function Qr(t){return e=>new V0(e,t)}const Gr={highest:Qr(bs.highest),high:Qr(bs.high),default:Qr(bs.default),low:Qr(bs.low),lowest:Qr(bs.lowest)};class V0{constructor(e,i){this.inner=e,this.prec=i}get extension(){return this}}class Sh{of(e){return new gd(this,e)}reconfigure(e){return Sh.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class gd{constructor(e,i){this.compartment=e,this.inner=i}get extension(){return this}}class Gl{constructor(e,i,n,s,r,o){for(this.base=e,this.compartments=i,this.dynamicSlots=n,this.address=s,this.staticValues=r,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,i,n){let s=[],r=Object.create(null),o=new Map;for(let u of IS(e,i,o))u instanceof Dt?s.push(u):(r[u.facet.id]||(r[u.facet.id]=[])).push(u);let a=Object.create(null),l=[],h=[];for(let u of s)a[u.id]=h.length<<1,h.push(f=>u.slot(f));let c=n?.config.facets;for(let u in r){let f=r[u],p=f[0].facet,m=c&&c[u]||[];if(f.every(g=>g.type==0))if(a[p.id]=l.length<<1|1,Ku(m,f))l.push(n.facet(p));else{let g=p.combine(f.map(b=>b.value));l.push(n&&p.compare(g,n.facet(p))?n.facet(p):g)}else{for(let g of f)g.type==0?(a[g.id]=l.length<<1|1,l.push(g.value)):(a[g.id]=h.length<<1,h.push(b=>g.dynamicSlot(b)));a[p.id]=h.length<<1,h.push(g=>AS(g,p,f))}}let d=h.map(u=>u(a));return new Gl(e,o,d,a,l,r)}}function IS(t,e,i){let n=[[],[],[],[],[]],s=new Map;function r(o,a){let l=s.get(o);if(l!=null){if(l<=a)return;let h=n[l].indexOf(o);h>-1&&n[l].splice(h,1),o instanceof gd&&i.delete(o.compartment)}if(s.set(o,a),Array.isArray(o))for(let h of o)r(h,a);else if(o instanceof gd){if(i.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let h=e.get(o.compartment)||o.inner;i.set(o.compartment,h),r(h,a)}else if(o instanceof V0)r(o.inner,o.prec);else if(o instanceof Dt)n[a].push(o),o.provides&&r(o.provides,a);else if(o instanceof sl)n[a].push(o),o.facet.extensions&&r(o.facet.extensions,bs.default);else{let h=o.extension;if(!h)throw new Error(`Unrecognized extension value in extension set (${o}).`);if(h==o)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(h,a)}}return r(t,bs.default),n.reduce((o,a)=>o.concat(a))}function uo(t,e){if(e&1)return 2;let i=e>>1,n=t.status[i];if(n==4)throw new Error("Cyclic dependency between fields and/or facets");if(n&2)return n;t.status[i]=4;let s=t.computeSlot(t,t.config.dynamicSlots[i]);return t.status[i]=2|s}function Rl(t,e){return e&1?t.config.staticValues[e>>1]:t.values[e>>1]}const F0=le.define(),vd=le.define({combine:t=>t.some(e=>e),static:!0}),Q0=le.define({combine:t=>t.length?t[0]:void 0,static:!0}),H0=le.define(),q0=le.define(),U0=le.define(),j0=le.define({combine:t=>t.length?t[0]:!1});class Pn{constructor(e,i){this.type=e,this.value=i}static define(){return new ES}}class ES{of(e){return new Pn(this,e)}}class MS{constructor(e){this.map=e}of(e){return new $e(this,e)}}class $e{constructor(e,i){this.type=e,this.value=i}map(e){let i=this.type.map(this.value,e);return i===void 0?void 0:i==this.value?this:new $e(this.type,i)}is(e){return this.type==e}static define(e={}){return new MS(e.map||(i=>i))}static mapEffects(e,i){if(!e.length)return e;let n=[];for(let s of e){let r=s.map(i);r&&n.push(r)}return n}}$e.reconfigure=$e.define();$e.appendConfig=$e.define();class lt{constructor(e,i,n,s,r,o){this.startState=e,this.changes=i,this.selection=n,this.effects=s,this.annotations=r,this.scrollIntoView=o,this._doc=null,this._state=null,n&&W0(n,i.newLength),r.some(a=>a.type==lt.time)||(this.annotations=r.concat(lt.time.of(Date.now())))}static create(e,i,n,s,r,o){return new lt(e,i,n,s,r,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 i of this.annotations)if(i.type==e)return i.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let i=this.annotation(lt.userEvent);return!!(i&&(i==e||i.length>e.length&&i.slice(0,e.length)==e&&i[e.length]=="."))}}lt.time=Pn.define();lt.userEvent=Pn.define();lt.addToHistory=Pn.define();lt.remote=Pn.define();function GS(t,e){let i=[];for(let n=0,s=0;;){let r,o;if(n=t[n]))r=t[n++],o=t[n++];else if(s=0;s--){let r=n[s](t);r instanceof lt?t=r:Array.isArray(r)&&r.length==1&&r[0]instanceof lt?t=r[0]:t=Y0(e,lr(r),!1)}return t}function zS(t){let e=t.startState,i=e.facet(U0),n=t;for(let s=i.length-1;s>=0;s--){let r=i[s](t);r&&Object.keys(r).length&&(n=X0(n,bd(e,r,t.changes.newLength),!0))}return n==t?t:lt.create(e,t.changes,t.selection,n.effects,n.annotations,n.scrollIntoView)}const LS=[];function lr(t){return t==null?LS:Array.isArray(t)?t:[t]}var mn=(function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t})(mn||(mn={}));const NS=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let _d;try{_d=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function BS(t){if(_d)return _d.test(t);for(let e=0;e"€"&&(i.toUpperCase()!=i.toLowerCase()||NS.test(i)))return!0}return!1}function WS(t){return e=>{if(!/\S/.test(e))return mn.Space;if(BS(e))return mn.Word;for(let i=0;i-1)return mn.Word;return mn.Other}}class Ne{constructor(e,i,n,s,r,o){this.config=e,this.doc=i,this.selection=n,this.values=s,this.status=e.statusTemplate.slice(),this.computeSlot=r,o&&(o._state=this);for(let a=0;as.set(h,l)),i=null),s.set(a.value.compartment,a.value.extension)):a.is($e.reconfigure)?(i=null,n=a.value):a.is($e.appendConfig)&&(i=null,n=lr(n).concat(a.value));let r;i?r=e.startState.values.slice():(i=Gl.resolve(n,s,this),r=new Ne(i,this.doc,this.selection,i.dynamicSlots.map(()=>null),(l,h)=>h.reconfigure(l,this),null).values);let o=e.startState.facet(vd)?e.newSelection:e.newSelection.asSingle();new Ne(i,e.newDoc,o,r,(a,l)=>l.update(a,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:e},range:K.cursor(i.from+e.length)}))}changeByRange(e){let i=this.selection,n=e(i.ranges[0]),s=this.changes(n.changes),r=[n.range],o=lr(n.effects);for(let a=1;ao.spec.fromJSON(a,l)))}}return Ne.create({doc:e.doc,selection:K.fromJSON(e.selection),extensions:i.extensions?s.concat([i.extensions]):s})}static create(e={}){let i=Gl.resolve(e.extensions||[],new Map),n=e.doc instanceof Ee?e.doc:Ee.of((e.doc||"").split(i.staticFacet(Ne.lineSeparator)||ud)),s=e.selection?e.selection instanceof K?e.selection:K.single(e.selection.anchor,e.selection.head):K.single(0);return W0(s,n.length),i.staticFacet(vd)||(s=s.asSingle()),new Ne(i,n,s,i.dynamicSlots.map(()=>null),(r,o)=>o.create(r),null)}get tabSize(){return this.facet(Ne.tabSize)}get lineBreak(){return this.facet(Ne.lineSeparator)||` -`}get readOnly(){return this.facet(j0)}phrase(e,...i){for(let n of this.facet(Ne.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return i.length&&(e=e.replace(/\$(\$|\d*)/g,(n,s)=>{if(s=="$")return"$";let r=+(s||1);return!r||r>i.length?n:i[r-1]})),e}languageDataAt(e,i,n=-1){let s=[];for(let r of this.facet(F0))for(let o of r(this,i,n))Object.prototype.hasOwnProperty.call(o,e)&&s.push(o[e]);return s}charCategorizer(e){let i=this.languageDataAt("wordChars",e);return WS(i.length?i[0]:"")}wordAt(e){let{text:i,from:n,length:s}=this.doc.lineAt(e),r=this.charCategorizer(e),o=e-n,a=e-n;for(;o>0;){let l=Ct(i,o,!1);if(r(i.slice(l,o))!=mn.Word)break;o=l}for(;at.length?t[0]:4});Ne.lineSeparator=Q0;Ne.readOnly=j0;Ne.phrases=le.define({compare(t,e){let i=Object.keys(t),n=Object.keys(e);return i.length==n.length&&i.every(s=>t[s]==e[s])}});Ne.languageData=F0;Ne.changeFilter=H0;Ne.transactionFilter=q0;Ne.transactionExtender=U0;Sh.reconfigure=$e.define();function ea(t,e,i={}){let n={};for(let s of t)for(let r of Object.keys(s)){let o=s[r],a=n[r];if(a===void 0)n[r]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(i,r))n[r]=i[r](a,o);else throw new Error("Config merge conflict for field "+r)}for(let s in e)n[s]===void 0&&(n[s]=e[s]);return n}class Jn{eq(e){return this==e}range(e,i=e){return wd.create(e,i,this)}}Jn.prototype.startSide=Jn.prototype.endSide=0;Jn.prototype.point=!1;Jn.prototype.mapMode=kt.TrackDel;function Ju(t,e){return t==e||t.constructor==e.constructor&&t.eq(e)}let wd=class Z0{constructor(e,i,n){this.from=e,this.to=i,this.value=n}static create(e,i,n){return new Z0(e,i,n)}};function yd(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}class ef{constructor(e,i,n,s){this.from=e,this.to=i,this.value=n,this.maxPoint=s}get length(){return this.to[this.to.length-1]}findIndex(e,i,n,s=0){let r=n?this.to:this.from;for(let o=s,a=r.length;;){if(o==a)return o;let l=o+a>>1,h=r[l]-e||(n?this.value[l].endSide:this.value[l].startSide)-i;if(l==o)return h>=0?o:a;h>=0?a=l:o=l+1}}between(e,i,n,s){for(let r=this.findIndex(i,-1e9,!0),o=this.findIndex(n,1e9,!1,r);rf||u==f&&h.startSide>0&&h.endSide<=0)continue;(f-u||h.endSide-h.startSide)<0||(o<0&&(o=u),h.point&&(a=Math.max(a,f-u)),n.push(h),s.push(u-o),r.push(f-o))}return{mapped:n.length?new ef(s,r,n,a):null,pos:o}}}class Ae{constructor(e,i,n,s){this.chunkPos=e,this.chunk=i,this.nextLayer=n,this.maxPoint=s}static create(e,i,n,s){return new Ae(e,i,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 i of this.chunk)e+=i.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:i=[],sort:n=!1,filterFrom:s=0,filterTo:r=this.length}=e,o=e.filter;if(i.length==0&&!o)return this;if(n&&(i=i.slice().sort(yd)),this.isEmpty)return i.length?Ae.of(i):this;let a=new K0(this,null,-1).goto(0),l=0,h=[],c=new Ms;for(;a.value||l=0){let d=i[l++];c.addInner(d.from,d.to,d.value)||h.push(d)}else a.rangeIndex==1&&a.chunkIndexthis.chunkEnd(a.chunkIndex)||ra.to||r=r&&e<=r+o.length&&o.between(r,e-r,i-r,n)===!1)return}this.nextLayer.between(e,i,n)}}iter(e=0){return To.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,i=0){return To.from(e).goto(i)}static compare(e,i,n,s,r=-1){let o=e.filter(d=>d.maxPoint>0||!d.isEmpty&&d.maxPoint>=r),a=i.filter(d=>d.maxPoint>0||!d.isEmpty&&d.maxPoint>=r),l=Wp(o,a,n),h=new Hr(o,l,r),c=new Hr(a,l,r);n.iterGaps((d,u,f)=>Vp(h,d,c,u,f,s)),n.empty&&n.length==0&&Vp(h,0,c,0,0,s)}static eq(e,i,n=0,s){s==null&&(s=999999999);let r=e.filter(c=>!c.isEmpty&&i.indexOf(c)<0),o=i.filter(c=>!c.isEmpty&&e.indexOf(c)<0);if(r.length!=o.length)return!1;if(!r.length)return!0;let a=Wp(r,o),l=new Hr(r,a,0).goto(n),h=new Hr(o,a,0).goto(n);for(;;){if(l.to!=h.to||!xd(l.active,h.active)||l.point&&(!h.point||!Ju(l.point,h.point)))return!1;if(l.to>s)return!0;l.next(),h.next()}}static spans(e,i,n,s,r=-1){let o=new Hr(e,null,r).goto(i),a=i,l=o.openStart;for(;;){let h=Math.min(o.to,n);if(o.point){let c=o.activeForPoint(o.to),d=o.pointFroma&&(s.span(a,h,o.active,l),l=o.openEnd(h));if(o.to>n)return l+(o.point&&o.to>n?1:0);a=o.to,o.next()}}static of(e,i=!1){let n=new Ms;for(let s of e instanceof wd?[e]:i?VS(e):e)n.add(s.from,s.to,s.value);return n.finish()}static join(e){if(!e.length)return Ae.empty;let i=e[e.length-1];for(let n=e.length-2;n>=0;n--)for(let s=e[n];s!=Ae.empty;s=s.nextLayer)i=new Ae(s.chunkPos,s.chunk,i,Math.max(s.maxPoint,i.maxPoint));return i}}Ae.empty=new Ae([],[],null,-1);function VS(t){if(t.length>1)for(let e=t[0],i=1;i0)return t.slice().sort(yd);e=n}return t}Ae.empty.nextLayer=Ae.empty;class Ms{finishChunk(e){this.chunks.push(new ef(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,i,n){this.addInner(e,i,n)||(this.nextLayer||(this.nextLayer=new Ms)).add(e,i,n)}addInner(e,i,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(i-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=i,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,i-e)),!0)}addChunk(e,i){if((e-this.lastTo||i.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,i.maxPoint),this.chunks.push(i),this.chunkPos.push(e);let n=i.value.length-1;return this.last=i.value[n],this.lastFrom=i.from[n]+e,this.lastTo=i.to[n]+e,!0}finish(){return this.finishInner(Ae.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let i=Ae.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,i}}function Wp(t,e,i){let n=new Map;for(let r of t)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=n&&s.push(new K0(o,i,n,r));return s.length==1?s[0]:new To(s)}get startSide(){return this.value?this.value.startSide:0}goto(e,i=-1e9){for(let n of this.heap)n.goto(e,i);for(let n=this.heap.length>>1;n>=0;n--)Kh(this.heap,n);return this.next(),this}forward(e,i){for(let n of this.heap)n.forward(e,i);for(let n=this.heap.length>>1;n>=0;n--)Kh(this.heap,n);(this.to-e||this.value.endSide-i)<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(),Kh(this.heap,0)}}}function Kh(t,e){for(let i=t[e];;){let n=(e<<1)+1;if(n>=t.length)break;let s=t[n];if(n+1=0&&(s=t[n+1],n++),i.compare(s)<0)break;t[n]=i,t[e]=s,e=n}}class Hr{constructor(e,i,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=To.from(e,i,n)}goto(e,i=-1e9){return this.cursor.goto(e,i),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=i,this.openStart=-1,this.next(),this}forward(e,i){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-i)<0;)this.removeActive(this.minActive);this.cursor.forward(e,i)}removeActive(e){ua(this.active,e),ua(this.activeTo,e),ua(this.activeRank,e),this.minActive=Fp(this.active,this.activeTo)}addActive(e){let i=0,{value:n,to:s,rank:r}=this.cursor;for(;i0;)i++;fa(this.active,i,n),fa(this.activeTo,i,s),fa(this.activeRank,i,r),e&&fa(e,i,this.cursor.from),this.minActive=Fp(this.active,this.activeTo)}next(){let e=this.to,i=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&&ua(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 r=this.cursor.value;if(!r.point)this.addActive(n),this.cursor.next();else if(i&&this.cursor.to==this.to&&this.cursor.from=0&&n[s]=0&&!(this.activeRank[n]e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&i.push(this.active[n]);return i.reverse()}openEnd(e){let i=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)i++;return i}}function Vp(t,e,i,n,s,r){t.goto(e),i.goto(n);let o=n+s,a=n,l=n-e,h=!!r.boundChange;for(let c=!1;;){let d=t.to+l-i.to,u=d||t.endSide-i.endSide,f=u<0?t.to+l:i.to,p=Math.min(f,o);if(t.point||i.point?(t.point&&i.point&&Ju(t.point,i.point)&&xd(t.activeForPoint(t.to),i.activeForPoint(i.to))||r.comparePoint(a,p,t.point,i.point),c=!1):(c&&r.boundChange(a),p>a&&!xd(t.active,i.active)&&r.compareRange(a,p,t.active,i.active),h&&po)break;a=f,u<=0&&t.next(),u>=0&&i.next()}}function xd(t,e){if(t.length!=e.length)return!1;for(let i=0;i=e;n--)t[n+1]=t[n];t[e]=i}function Fp(t,e){let i=-1,n=1e9;for(let s=0;s=e)return s;if(s==t.length)break;r+=t.charCodeAt(s)==9?i-r%i:1,s=Ct(t,s)}return t.length}const Od="ͼ",Qp=typeof Symbol>"u"?"__"+Od:Symbol.for(Od),Sd=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),Hp=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class es{constructor(e,i){this.rules=[];let{finish:n}=i||{};function s(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function r(o,a,l,h){let c=[],d=/^@(\w+)\b/.exec(o[0]),u=d&&d[1]=="keyframes";if(d&&a==null)return l.push(o[0]+";");for(let f in a){let p=a[f];if(/&/.test(f))r(f.split(/,\s*/).map(m=>o.map(g=>m.replace(/&/,g))).reduce((m,g)=>m.concat(g)),p,l);else if(p&&typeof p=="object"){if(!d)throw new RangeError("The value of a property ("+f+") should be a primitive value.");r(s(f),p,c,u)}else p!=null&&c.push(f.replace(/_.*/,"").replace(/[A-Z]/g,m=>"-"+m.toLowerCase())+": "+p+";")}(c.length||u)&&l.push((n&&!d&&!h?o.map(n):o).join(", ")+" {"+c.join(" ")+"}")}for(let o in e)r(s(o),e[o],this.rules)}getRules(){return this.rules.join(` -`)}static newName(){let e=Hp[Qp]||1;return Hp[Qp]=e+1,Od+e.toString(36)}static mount(e,i,n){let s=e[Sd],r=n&&n.nonce;s?r&&s.setNonce(r):s=new QS(e,r),s.mount(Array.isArray(i)?i:[i],e)}}let qp=new Map;class QS{constructor(e,i){let n=e.ownerDocument||e,s=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&s.CSSStyleSheet){let r=qp.get(n);if(r)return e[Sd]=r;this.sheet=new s.CSSStyleSheet,qp.set(n,this)}else this.styleTag=n.createElement("style"),i&&this.styleTag.setAttribute("nonce",i);this.modules=[],e[Sd]=this}mount(e,i){let n=this.sheet,s=0,r=0;for(let o=0;o-1&&(this.modules.splice(l,1),r--,l=-1),l==-1){if(this.modules.splice(r++,0,a),n)for(let h=0;h",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},HS=typeof navigator<"u"&&/Mac/.test(navigator.platform),qS=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var yt=0;yt<10;yt++)ts[48+yt]=ts[96+yt]=String(yt);for(var yt=1;yt<=24;yt++)ts[yt+111]="F"+yt;for(var yt=65;yt<=90;yt++)ts[yt]=String.fromCharCode(yt+32),Do[yt]=String.fromCharCode(yt);for(var Jh in ts)Do.hasOwnProperty(Jh)||(Do[Jh]=ts[Jh]);function US(t){var e=HS&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||qS&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",i=!e&&t.key||(t.shiftKey?Do:ts)[t.keyCode]||t.key||"Unidentified";return i=="Esc"&&(i="Escape"),i=="Del"&&(i="Delete"),i=="Left"&&(i="ArrowLeft"),i=="Up"&&(i="ArrowUp"),i=="Right"&&(i="ArrowRight"),i=="Down"&&(i="ArrowDown"),i}function Bi(){var t=arguments[0];typeof t=="string"&&(t=document.createElement(t));var e=1,i=arguments[1];if(i&&typeof i=="object"&&i.nodeType==null&&!Array.isArray(i)){for(var n in i)if(Object.prototype.hasOwnProperty.call(i,n)){var s=i[n];typeof s=="string"?t.setAttribute(n,s):s!=null&&(t[n]=s)}e++}for(;e2);var ae={mac:Xp||/Mac/.test(Et.platform),windows:/Win/.test(Et.platform),linux:/Linux|X11/.test(Et.platform),ie:Ch,ie_version:eb?kd.documentMode||6:Td?+Td[1]:Cd?+Cd[1]:0,gecko:Up,gecko_version:Up?+(/Firefox\/(\d+)/.exec(Et.userAgent)||[0,0])[1]:0,chrome:!!ec,chrome_version:ec?+ec[1]:0,ios:Xp,android:/Android\b/.test(Et.userAgent),webkit:jp,webkit_version:jp?+(/\bAppleWebKit\/(\d+)/.exec(Et.userAgent)||[0,0])[1]:0,safari:Dd,safari_version:Dd?+(/\bVersion\/(\d+(\.\d+)?)/.exec(Et.userAgent)||[0,0])[1]:0,tabSize:kd.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function tf(t,e){for(let i in t)i=="class"&&e.class?e.class+=" "+t.class:i=="style"&&e.style?e.style+=";"+t.style:e[i]=t[i];return e}const zl=Object.create(null);function nf(t,e,i){if(t==e)return!0;t||(t=zl),e||(e=zl);let n=Object.keys(t),s=Object.keys(e);if(n.length-0!=s.length-0)return!1;for(let r of n)if(r!=i&&(s.indexOf(r)==-1||t[r]!==e[r]))return!1;return!0}function jS(t,e){for(let i=t.attributes.length-1;i>=0;i--){let n=t.attributes[i].name;e[n]==null&&t.removeAttribute(n)}for(let i in e){let n=e[i];i=="style"?t.style.cssText=n:t.getAttribute(i)!=n&&t.setAttribute(i,n)}}function Yp(t,e,i){let n=!1;if(e)for(let s in e)i&&s in i||(n=!0,s=="style"?t.style.cssText="":t.removeAttribute(s));if(i)for(let s in i)e&&e[s]==i[s]||(n=!0,s=="style"?t.style.cssText=i[s]:t.setAttribute(s,i[s]));return n}function XS(t){let e=Object.create(null);for(let i=0;i0?3e8:-4e8:i>0?1e8:-1e8,new Gs(e,i,i,n,e.widget||null,!1)}static replace(e){let i=!!e.block,n,s;if(e.isBlockGap)n=-5e8,s=4e8;else{let{start:r,end:o}=tb(e,i);n=(r?i?-3e8:-1:5e8)-1,s=(o?i?2e8:1:-6e8)+1}return new Gs(e,n,s,i,e.widget||null,!0)}static line(e){return new ia(e)}static set(e,i=!1){return Ae.of(e,i)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}Ge.none=Ae.empty;class ta extends Ge{constructor(e){let{start:i,end:n}=tb(e);super(i?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?tf(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||zl}eq(e){return this==e||e instanceof ta&&this.tagName==e.tagName&&nf(this.attrs,e.attrs)}range(e,i=e){if(e>=i)throw new RangeError("Mark decorations may not be empty");return super.range(e,i)}}ta.prototype.point=!1;class ia extends Ge{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof ia&&this.spec.class==e.spec.class&&nf(this.spec.attributes,e.spec.attributes)}range(e,i=e){if(i!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,i)}}ia.prototype.mapMode=kt.TrackBefore;ia.prototype.point=!0;class Gs extends Ge{constructor(e,i,n,s,r,o){super(i,n,r,e),this.block=s,this.isReplace=o,this.mapMode=s?i<=0?kt.TrackBefore:kt.TrackAfter:kt.TrackDel}get type(){return this.startSide!=this.endSide?Ft.WidgetRange:this.startSide<=0?Ft.WidgetBefore:Ft.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof Gs&&YS(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,i=e){if(this.isReplace&&(e>i||e==i&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&i!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,i)}}Gs.prototype.point=!0;function tb(t,e=!1){let{inclusiveStart:i,inclusiveEnd:n}=t;return i==null&&(i=t.inclusive),n==null&&(n=t.inclusive),{start:i??e,end:n??e}}function YS(t,e){return t==e||!!(t&&e&&t.compare(e))}function hr(t,e,i,n=0){let s=i.length-1;s>=0&&i[s]+n>=t?i[s]=Math.max(i[s],e):i.push(t,e)}class Po extends Jn{constructor(e,i,n){super(),this.tagName=e,this.attributes=i,this.rank=n}eq(e){return e==this||e instanceof Po&&this.tagName==e.tagName&&nf(this.attributes,e.attributes)}static create(e){return new Po(e.tagName,e.attributes||zl,e.rank==null?50:Math.max(0,Math.min(e.rank,100)))}static set(e,i=!1){return Ae.of(e,i)}}Po.prototype.startSide=Po.prototype.endSide=-1;function $o(t){let e;return t.nodeType==11?e=t.getSelection?t:t.ownerDocument:e=t,e.getSelection()}function Pd(t,e){return e?t==e||t.contains(e.nodeType!=1?e.parentNode:e):!1}function fo(t,e){if(!e.anchorNode)return!1;try{return Pd(t,e.anchorNode)}catch{return!1}}function rl(t){return t.nodeType==3?Ao(t,0,t.nodeValue.length).getClientRects():t.nodeType==1?t.getClientRects():[]}function po(t,e,i,n){return i?Zp(t,e,i,n,-1)||Zp(t,e,i,n,1):!1}function is(t){for(var e=0;;e++)if(t=t.previousSibling,!t)return e}function Ll(t){return t.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(t.nodeName)}function Zp(t,e,i,n,s){for(;;){if(t==i&&e==n)return!0;if(e==(s<0?0:On(t))){if(t.nodeName=="DIV")return!1;let r=t.parentNode;if(!r||r.nodeType!=1)return!1;e=is(t)+(s<0?0:1),t=r}else if(t.nodeType==1){if(t=t.childNodes[e+(s<0?-1:0)],t.nodeType==1&&t.contentEditable=="false")return!1;e=s<0?On(t):0}else return!1}}function On(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function Nl(t,e){let{left:i,right:n}=t;if(i==n)return t;let s=e?i:n;return{left:s,right:s,top:t.top,bottom:t.bottom}}function ZS(t){let e=t.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight}}function ib(t,e){let i=e.width/t.offsetWidth,n=e.height/t.offsetHeight;return(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.width-t.offsetWidth)<1)&&(i=1),(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.height-t.offsetHeight)<1)&&(n=1),{scaleX:i,scaleY:n}}function KS(t,e,i,n,s,r,o,a){let l=t.ownerDocument,h=l.defaultView||window;for(let c=t,d=!1;c&&!d;)if(c.nodeType==1){let u,f=c==l.body,p=1,m=1;if(f)u=ZS(h);else{if(/^(fixed|sticky)$/.test(getComputedStyle(c).position)&&(d=!0),c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let _=c.getBoundingClientRect();({scaleX:p,scaleY:m}=ib(c,_)),u={left:_.left,right:_.left+c.clientWidth*p,top:_.top,bottom:_.top+c.clientHeight*m}}let g=0,b=0;if(s=="nearest")e.top0&&e.bottom>u.bottom+b&&(b=e.bottom-u.bottom+o)):e.bottom>u.bottom-o&&(b=e.bottom-u.bottom+o,i<0&&e.top-b0&&e.right>u.right+g&&(g=e.right-u.right+r)):e.right>u.right-r&&(g=e.right-u.right+r,i<0&&e.leftu.bottom||e.leftu.right)&&(e={left:Math.max(e.left,u.left),right:Math.min(e.right,u.right),top:Math.max(e.top,u.top),bottom:Math.min(e.bottom,u.bottom)}),c=c.assignedSlot||c.parentNode}else if(c.nodeType==11)c=c.host;else break}function nb(t,e=!0){let i=t.ownerDocument,n=null,s=null;for(let r=t.parentNode;r&&!(r==i.body||(!e||n)&&s);)if(r.nodeType==1)!s&&r.scrollHeight>r.clientHeight&&(s=r),e&&!n&&r.scrollWidth>r.clientWidth&&(n=r),r=r.assignedSlot||r.parentNode;else if(r.nodeType==11)r=r.host;else break;return{x:n,y:s}}class JS{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:i,focusNode:n}=e;this.set(i,Math.min(e.anchorOffset,i?On(i):0),n,Math.min(e.focusOffset,n?On(n):0))}set(e,i,n,s){this.anchorNode=e,this.anchorOffset=i,this.focusNode=n,this.focusOffset=s}}let ps=null;ae.safari&&ae.safari_version>=26&&(ps=!1);function sb(t){if(t.setActive)return t.setActive();if(ps)return t.focus(ps);let e=[];for(let i=t;i&&(e.push(i,i.scrollTop,i.scrollLeft),i!=i.ownerDocument);i=i.parentNode);if(t.focus(ps==null?{get preventScroll(){return ps={preventScroll:!0},!0}}:void 0),!ps){ps=!1;for(let i=0;iMath.max(0,t.document.documentElement.scrollHeight-t.innerHeight-4):t.scrollTop>Math.max(1,t.scrollHeight-t.clientHeight-4)}function ob(t,e){for(let i=t,n=e;;){if(i.nodeType==3&&n>0)return{node:i,offset:n};if(i.nodeType==1&&n>0){if(i.contentEditable=="false")return null;i=i.childNodes[n-1],n=On(i)}else if(i.parentNode&&!Ll(i))n=is(i),i=i.parentNode;else return null}}function ab(t,e){for(let i=t,n=e;;){if(i.nodeType==3&&n=i){if(a.level==n)return o;(r<0||(s!=0?s<0?a.fromi:e[r].level>a.level))&&(r=o)}}if(r<0)throw new RangeError("Index out of range");return r}}function cb(t,e){if(t.length!=e.length)return!1;for(let i=0;i=0;m-=3)if(Ii[m+1]==-f){let g=Ii[m+2],b=g&2?s:g&4?g&1?r:s:0;b&&(Qe[d]=Qe[Ii[m]]=b),a=m;break}}else{if(Ii.length==189)break;Ii[a++]=d,Ii[a++]=u,Ii[a++]=l}else if((p=Qe[d])==2||p==1){let m=p==s;l=m?0:1;for(let g=a-3;g>=0;g-=3){let b=Ii[g+2];if(b&2)break;if(m)Ii[g+2]|=2;else{if(b&4)break;Ii[g+2]|=4}}}}}function a1(t,e,i,n){for(let s=0,r=n;s<=i.length;s++){let o=s?i[s-1].to:t,a=sl;)p==g&&(p=i[--m].from,g=m?i[m-1].to:t),Qe[--p]=f;l=c}else r=h,l++}}}function Ad(t,e,i,n,s,r,o){let a=n%2?2:1;if(n%2==s%2)for(let l=e,h=0;ll&&o.push(new Fi(l,m.from,f));let g=m.direction==Rs!=!(f%2);Id(t,g?n+1:n,s,m.inner,m.from,m.to,o),l=m.to}p=m.to}else{if(p==i||(c?Qe[p]!=a:Qe[p]==a))break;p++}u?Ad(t,l,p,n+1,s,u,o):le;){let c=!0,d=!1;if(!h||l>r[h-1].to){let m=Qe[l-1];m!=a&&(c=!1,d=m==16)}let u=!c&&a==1?[]:null,f=c?n:n+1,p=l;e:for(;;)if(h&&p==r[h-1].to){if(d)break e;let m=r[--h];if(!c)for(let g=m.from,b=h;;){if(g==e)break e;if(b&&r[b-1].to==g)g=r[--b].from;else{if(Qe[g-1]==a)break e;break}}if(u)u.push(m);else{m.toQe.length;)Qe[Qe.length]=256;let n=[],s=e==Rs?0:1;return Id(t,s,s,i,0,t.length,n),n}function db(t){return[new Fi(0,t,0)]}let ub="";function h1(t,e,i,n,s){var r;let o=n.head-t.from,a=Fi.find(e,o,(r=n.bidiLevel)!==null&&r!==void 0?r:-1,n.assoc),l=e[a],h=l.side(s,i);if(o==h){let u=a+=s?1:-1;if(u<0||u>=e.length)return null;l=e[a=u],o=l.side(!s,i),h=l.side(s,i)}let c=Ct(t.text,o,l.forward(s,i));(cl.to)&&(c=h),ub=t.text.slice(Math.min(o,c),Math.max(o,c));let d=a==(s?e.length-1:0)?null:e[a+(s?1:-1)];return d&&c==h&&d.level+(s?0:1)t.some(e=>e)}),d1=le.define({combine:t=>t.some(e=>e)}),wb=le.define();class dr{constructor(e,i,n,s,r,o=!1){this.range=e,this.y=i,this.x=n,this.yMargin=s,this.xMargin=r,this.isSnapshot=o}map(e){return e.empty?this:new dr(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 dr(K.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const pa=$e.define({map:(t,e)=>t.map(e)}),yb=$e.define();function Rt(t,e,i){let n=t.facet(gb);n.length?n[0](e):window.onerror&&window.onerror(String(e),i,void 0,void 0,e)||(i?console.error(i+":",e):console.error(e))}const un=le.define({combine:t=>t.length?t[0]:!0});let u1=0;const nr=le.define({combine(t){return t.filter((e,i)=>{for(let n=0;n{let l=[];return o&&l.push(Th.of(h=>{let c=h.plugin(a);return c?o(c):Ge.none})),r&&l.push(r(a)),l})}static fromClass(e,i){return Tt.define((n,s)=>new e(n,s),i)}}class tc{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 i=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(i)}catch(n){if(Rt(i.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(i){Rt(e.state,i,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var i;if(!((i=this.value)===null||i===void 0)&&i.destroy)try{this.value.destroy()}catch(n){Rt(e.state,n,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const xb=le.define(),af=le.define(),Th=le.define(),Ob=le.define(),lf=le.define(),na=le.define(),Sb=le.define();function Jp(t,e){let i=t.state.facet(Sb);if(!i.length)return i;let n=i.map(r=>r instanceof Function?r(t):r),s=[];return Ae.spans(n,e.from,e.to,{point(){},span(r,o,a,l){let h=r-e.from,c=o-e.from,d=s;for(let u=a.length-1;u>=0;u--,l--){let f=a[u].spec.bidiIsolate,p;if(f==null&&(f=c1(e.text,h,c)),l>0&&d.length&&(p=d[d.length-1]).to==h&&p.direction==f)p.to=c,d=p.inner;else{let m={from:h,to:c,direction:f,inner:[]};d.push(m),d=m.inner}}}}),s}const kb=le.define();function hf(t){let e=0,i=0,n=0,s=0;for(let r of t.state.facet(kb)){let o=r(t);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(i=Math.max(i,o.right)),o.top!=null&&(n=Math.max(n,o.top)),o.bottom!=null&&(s=Math.max(s,o.bottom)))}return{left:e,right:i,top:n,bottom:s}}const to=le.define();class si{constructor(e,i,n,s){this.fromA=e,this.toA=i,this.fromB=n,this.toB=s}join(e){return new si(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 i=e.length,n=this;for(;i>0;i--){let s=e[i-1];if(!(s.fromA>n.toA)){if(s.toAs.push(new si(r,o,a,l))),this.changedRanges=s}static create(e,i,n){return new Bl(e,i,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 f1=[];class et{constructor(e,i,n=0){this.dom=e,this.length=i,this.flags=n,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return f1}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 i=this.domAttrs;i&&jS(this.dom,i)}}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,i=this.posAtStart){let n=i;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,i,n){return null}domPosFor(e,i){let n=is(this.dom),s=this.length?e>0:i>0;return new yi(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 Ph)return e;return null}static get(e){return e.cmTile}}class Dh extends et{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 i=this.dom,n=null,s,r=e?.node==i?e:null,o=0;for(let a of this.children){if(a.sync(e),o+=a.length+a.breakAfter,s=n?n.nextSibling:i.firstChild,r&&s!=a.dom&&(r.written=!0),a.dom.parentNode==i)for(;s&&s!=a.dom;)s=em(s);else i.insertBefore(a.dom,s);n=a.dom}for(s=n?n.nextSibling:i.firstChild,r&&s&&(r.written=!0);s;)s=em(s);this.length=o}}function em(t){let e=t.nextSibling;return t.parentNode.removeChild(t),e}class Ph extends Dh{constructor(e,i){super(i),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 i=et.get(e);if(i&&this.owns(i))return i;e=e.parentNode}}blockTiles(e){for(let i=[],n=this,s=0,r=0;;)if(s==n.children.length){if(!i.length)return;n=n.parent,n.breakAfter&&r++,s=i.pop()}else{let o=n.children[s++];if(o instanceof yn)i.push(s),n=o,s=0;else{let a=r+o.length,l=e(o,r);if(l!==void 0)return l;r=a+o.breakAfter}}}resolveBlock(e,i){let n,s=-1,r,o=-1;if(this.blockTiles((a,l)=>{let h=l+a.length;if(e>=l&&e<=h){if(a.isWidget()&&i>=-1&&i<=1){if(a.flags&32)return!0;a.flags&16&&(n=void 0)}(le||e==l&&(i>1?a.length:a.covers(-1)))&&(!r||!a.isWidget()&&r.isWidget())&&(r=a,o=e-l)}}),!n&&!r)throw new Error("No tile at position "+e);return n&&i<0||!r?{tile:n,offset:s}:{tile:r,offset:o}}}class yn extends Dh{constructor(e,i){super(e),this.wrapper=i}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,i){let n=new yn(i||document.createElement(e.tagName),e);return i||(n.flags|=4),n}}class yr extends Dh{constructor(e,i){super(e),this.attrs=i}isLine(){return!0}static start(e,i,n){let s=new yr(i||document.createElement("div"),e);return(!i||!n)&&(s.flags|=4),s}get domAttrs(){return this.attrs}resolveInline(e,i,n){let s=null,r=-1,o=null,a=-1;function l(c,d){for(let u=0,f=0;u=d&&(p.isComposite()?l(p,d-f):(!o||o.isHidden&&(i>0&&!(o.flags&32)||n&&m1(o,p)))&&(m>d||p.flags&32&&i<=1)?(o=p,a=d-f):(f=-1)&&(s=p,r=d-f)),f=m}}l(this,e);let h=(i<0?s:o)||s||o;return h?{tile:h,offset:h==s?r:a}:null}coordsIn(e,i,n){let s=this.resolveInline(e,i,!0);return s?s.tile.coordsIn(Math.max(0,s.offset),i,n):p1(this)}domIn(e,i){let n=this.resolveInline(e,i);if(n){let{tile:s,offset:r}=n;if(this.dom.contains(s.dom))return s.isText()?new yi(s.dom,Math.min(s.dom.nodeValue.length,r)):s.domPosFor(r,s.flags&16?1:s.flags&32?-1:i);let o=n.tile.parent,a=!1;for(let l of o.children){if(a)return new yi(l.dom,0);l==n.tile&&(a=!0)}}return new yi(this.dom,0)}}function p1(t){let e=t.dom.lastChild;if(!e)return t.dom.getBoundingClientRect();let i=rl(e);return i[i.length-1]||null}function m1(t,e){let i=t.coordsIn(0,1),n=e.coordsIn(0,1);return i&&n&&n.tops&&(e=s);let r=e,o=e,a=0;e==0&&i<0||e==s&&i>=0?ae.chrome||ae.gecko||(e?(r--,a=1):o=0)?0:l.length-1];return ae.safari&&!a&&h.width==0&&(h=Array.prototype.find.call(l,c=>c.width)||h),n==null?h:Nl(h,(a?a>0:i<0)==n)}static of(e,i){let n=new ys(i||document.createTextNode(e),e);return i||(n.flags|=2),n}}class zs extends et{constructor(e,i,n,s){super(e,i,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,i){return this.coordsInWidget(e,i,!1)}coordsInWidget(e,i,n){let s=this.widget.coordsAt(this.dom,e,i);if(s)return s;if(n)return Nl(this.dom.getBoundingClientRect(),this.length?e==0:i<=0);{let r=this.dom.getClientRects(),o=null;if(!r.length)return null;let a=this.flags&16?!0:this.flags&32?!1:e>0;for(let l=a?r.length-1:0;o=r[l],!(e>0?l==0:l==r.length-1||o.top0==n)}}class g1{constructor(e){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=e}advance(e,i,n){let{tile:s,index:r,beforeBreak:o,parents:a}=this;for(;e||i>0;)if(s.isComposite())if(o){if(!e)break;n&&n.break(),e--,o=!1}else if(r==s.children.length){if(!e&&!a.length)break;n&&n.leave(s),o=!!s.breakAfter,{tile:s,index:r}=a.pop(),r++}else{let l=s.children[r],h=l.breakAfter;(i>0?l.length<=e:l.length=0;a--){let l=i.marks[a],h=s.lastChild;if(h instanceof Wt&&h.mark.eq(l.mark))h.dom!=l.dom&&h.setDOM(ic(l.dom)),s=h;else{if(this.cache.reused.get(l)){let d=et.get(l.dom);d&&d.setDOM(ic(l.dom))}let c=Wt.of(l.mark,l.dom);s.append(c),s=c}this.cache.reused.set(l,2)}let r=et.get(e.text);r&&this.cache.reused.set(r,2);let o=new ys(e.text,e.text.nodeValue);o.flags|=8,this.pos=e.range.toB,s.append(o)}addInlineWidget(e,i,n){let s=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);s||this.flushBuffer();let r=this.ensureMarks(i,n);!s&&!(e.flags&16)&&r.append(this.getBuffer(1)),r.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,i,n){this.flushBuffer(),this.ensureMarks(i,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 i=this.afterWidget||this.lastBlock;i.length+=e,this.pos+=e}addLineStart(e,i){var n;e||(e=Cb);let s=yr.start(e,i||((n=this.cache.find(yr))===null||n===void 0?void 0:n.dom),!!i);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,i){var n;let s=this.curLine;for(let r=e.length-1;r>=0;r--){let o=e[r],a;if(i>0&&(a=s.lastChild)&&a instanceof Wt&&a.mark.eq(o))s=a,i--;else{let l=Wt.of(o,(n=this.cache.find(Wt,h=>h.mark.eq(o)))===null||n===void 0?void 0:n.dom);s.append(l),s=l,i=0}}return s}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!tm(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(ae.ios&&tm(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(nc,0,32)||new zs(nc.toDOM(),0,nc,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){let i=e.rank*102+e.value.rank,n=new v1(e.from,e.to,e.value,i),s=this.wrappers.length;for(;s>0&&(this.wrappers[s-1].rank-n.rank||this.wrappers[s-1].to-n.to)<0;)s--;this.wrappers.splice(s,0,n)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let i=this.root;for(let n of this.wrappers){let s=i.lastChild;if(n.fromo.wrapper.eq(n.wrapper)))===null||e===void 0?void 0:e.dom);i.append(r),i=r}}return i}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let i=2|(e<0?16:32),n=this.cache.find(Wl,void 0,1);return n&&(n.flags=i),n||new Wl(i)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}}class _1{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:r,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 r?null:s.slice(0,a)}let i=Math.min(this.text.length,this.textOff+e),n=this.text.slice(this.textOff,i);return this.textOff=i,n}}const Vl=[zs,yr,ys,Wt,Wl,yn,Ph];for(let t=0;t[]),this.index=Vl.map(()=>0),this.reused=new Map}add(e){let i=e.constructor.bucket,n=this.buckets[i];n.length<6?n.push(e):n[this.index[i]=(this.index[i]+1)%6]=e}find(e,i,n=2){let s=e.bucket,r=this.buckets[s],o=this.index[s];for(let a=0;a{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,i){let n=i&&this.getCompositionContext(i.text);for(let s=0,r=0,o=0;;){let a=os){let h=l-s;this.preserve(h,!o,!a),s=l,r+=h}if(!a)break;i&&a.fromA<=i.range.fromA&&a.toA>=i.range.toA?(this.forward(a.fromA,i.range.fromA,i.range.fromA{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(l-a);else{let h=l>0||a{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof Wt&&s.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?s.length&&(s.length=r=0):o instanceof Wt&&(s.shift(),r=Math.min(r,s.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,i){let n=null,s=this.builder,r=-1,o=Ae.spans(this.decorations,e,i,{point:(a,l,h,c,d,u)=>{if(h instanceof Gs){if(this.disallowBlockEffectsFor[u]){if(h.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(r=c.length,d>c.length)s.continueWidget(l-a);else{let f=h.widget||(h.block?xr.block:xr.inline),p=x1(h),m=this.cache.findWidget(f,l-a,p)||zs.of(f,this.view,l-a,p);h.block?(h.startSide>0&&s.addLineStartIfNotCovered(n),s.addBlockWidget(m)):(s.ensureLine(n),s.addInlineWidget(m,c,d))}n=null}else n=O1(n,h);l>a&&this.text.skip(l-a)},span:(a,l,h,c)=>{for(let d=a;d-1&&(this.openWidget=o>r),this.openWidget||s.addLineStartIfNotCovered(n),this.openMarks=o}forward(e,i,n=1){i-e<=10?this.old.advance(i-e,n,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(i-e-10,-1),this.old.advance(5,n,this.reuseWalker))}getCompositionContext(e){let i=[],n=null;for(let s=e.parentNode;;s=s.parentNode){let r=et.get(s);if(s==this.view.contentDOM)break;r instanceof Wt?i.push(r):r?.isLine()?n=r:r instanceof yn||(s.nodeName=="DIV"&&!n&&s!=this.view.contentDOM?n=new yr(s,Cb):n||i.push(Wt.of(new ta({tagName:s.nodeName.toLowerCase(),attributes:XS(s)}),s)))}return{line:n,marks:i}}}function tm(t,e){let i=n=>{for(let s of n.children)if((e?s.isText():s.length)||i(s))return!0;return!1};return i(t)}function x1(t){let e=t.isReplace?(t.startSide<0?64:0)|(t.endSide>0?128:0):t.startSide>0?32:16;return t.block&&(e|=256),e}const Cb={class:"cm-line"};function O1(t,e){let i=e.spec.attributes,n=e.spec.class;return!i&&!n||(t||(t={class:"cm-line"}),i&&tf(i,t),n&&(t.class+=" "+n)),t}function S1(t){let e=[];for(let i=t.parents.length;i>1;i--){let n=i==t.parents.length?t.tile:t.parents[i].tile;n instanceof Wt&&e.push(n.mark)}return e}function ic(t){let e=et.get(t);return e&&e.setDOM(t.cloneNode()),t}class xr extends Rr{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}}xr.inline=new xr("span");xr.block=new xr("div");const nc=new class extends Rr{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class im{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=Ge.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 Ph(e,e.contentDOM),this.updateInner([new si(0,0,0,e.state.doc.length)],null)}update(e){var i;let n=e.changedRanges;this.minWidth>0&&n.length&&(n.every(({fromA:c,toA:d})=>dthis.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&&(!((i=this.domChanged)===null||i===void 0)&&i.newSel?s=this.domChanged.newSel.head:!E1(e.changes,this.hasComposition)&&!e.selectionSet&&(s=e.state.selection.main.head));let r=s>-1?C1(this.view,e.changes,s):null;if(this.domChanged=null,this.hasComposition){let{from:c,to:d}=this.hasComposition;n=new si(c,d,e.changes.mapPos(c,-1),e.changes.mapPos(d,1)).addToSet(n.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,(ae.ie||ae.chrome)&&!r&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,a=this.blockWrappers;this.updateDeco();let l=P1(o,this.decorations,e.changes);l.length&&(n=si.extendWithRanges(n,l));let h=A1(a,this.blockWrappers,e.changes);return h.length&&(n=si.extendWithRanges(n,h)),r&&!n.some(c=>c.fromA<=r.range.fromA&&c.toA>=r.range.toA)&&(n=r.range.addToSet(n.slice())),this.tile.flags&2&&n.length==0?!1:(this.updateInner(n,r),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,i){this.view.viewState.mustMeasureContent=!0;let{observer:n}=this.view;n.ignore(()=>{if(i||e.length){let o=this.tile,a=new y1(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);i&&et.get(i.text)&&a.cache.reused.set(et.get(i.text),2),this.tile=a.run(e,i),Md(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 r=ae.chrome||ae.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(r),r&&(r.written||n.selectionRange.focusNode!=r.node||!this.tile.dom.contains(r.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let s=[];if(this.view.viewport.from||this.view.viewport.to-1)&&fo(n,this.view.observer.selectionRange)&&!(s&&n.contains(s));if(!(r||i||o))return;let a=this.forceSelection;this.forceSelection=!1;let l=this.view.state.selection.main,h,c;if(l.empty?c=h=this.inlineDOMNearPos(l.anchor,l.assoc||1):(c=this.inlineDOMNearPos(l.head,l.head==l.from?1:-1),h=this.inlineDOMNearPos(l.anchor,l.anchor==l.from?1:-1)),ae.gecko&&l.empty&&!this.hasComposition&&k1(h)){let u=document.createTextNode("");this.view.observer.ignore(()=>h.node.insertBefore(u,h.node.childNodes[h.offset]||null)),h=c=new yi(u,0),a=!0}let d=this.view.observer.selectionRange;(a||!d.focusNode||(!po(h.node,h.offset,d.anchorNode,d.anchorOffset)||!po(c.node,c.offset,d.focusNode,d.focusOffset))&&!this.suppressWidgetCursorChange(d,l))&&(this.view.observer.ignore(()=>{ae.android&&ae.chrome&&n.contains(d.focusNode)&&I1(d.focusNode,n)&&(n.blur(),n.focus({preventScroll:!0}));let u=$o(this.view.root);if(u)if(l.empty){if(ae.gecko){let f=T1(h.node,h.offset);if(f&&f!=3){let p=(f==1?ob:ab)(h.node,h.offset);p&&(h=new yi(p.node,p.offset))}}u.collapse(h.node,h.offset),l.bidiLevel!=null&&u.caretBidiLevel!==void 0&&(u.caretBidiLevel=l.bidiLevel)}else if(u.extend){u.collapse(h.node,h.offset);try{u.extend(c.node,c.offset)}catch{}}else{let f=document.createRange();l.anchor>l.head&&([h,c]=[c,h]),f.setEnd(c.node,c.offset),f.setStart(h.node,h.offset),u.removeAllRanges(),u.addRange(f)}o&&this.view.root.activeElement==n&&(n.blur(),s&&s.focus())}),this.view.observer.setSelectionRange(h,c)),this.impreciseAnchor=h.precise?null:new yi(d.anchorNode,d.anchorOffset),this.impreciseHead=c.precise?null:new yi(d.focusNode,d.focusOffset)}suppressWidgetCursorChange(e,i){return this.hasComposition&&i.empty&&po(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==i.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,i=e.state.selection.main,n=$o(e.root),{anchorNode:s,anchorOffset:r}=e.observer.selectionRange;if(!n||!i.empty||!i.assoc||!n.modify)return;let o=this.lineAt(i.head,i.assoc);if(!o)return;let a=o.posAtStart;if(i.head==a||i.head==a+o.length)return;let l=this.coordsAt(i.head,-1),h=this.coordsAt(i.head,1);if(!l||!h||l.bottom>h.top)return;let c=this.domAtPos(i.head+i.assoc,i.assoc);n.collapse(c.node,c.offset),n.modify("move",i.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let d=e.observer.selectionRange;e.docView.posFromDOM(d.anchorNode,d.anchorOffset)!=i.from&&n.collapse(s,r)}posFromDOM(e,i){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 r;if(e==n.dom)r=n.dom.childNodes[i];else{let o=On(e)==0?0:i==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?r=e:r=e.nextSibling}if(r==n.dom.firstChild)return s;for(;r&&!et.get(r);)r=r.nextSibling;if(!r)return s+n.length;for(let o=0,a=s;;o++){let l=n.children[o];if(l.dom==r)return a;a+=l.length+l.breakAfter}}else return n.isText()?e==n.dom?s+i:s+(i?n.length:0):s}domAtPos(e,i){let{tile:n,offset:s}=this.tile.resolveBlock(e,i);return n.isWidget()?n.domPosFor(s,i):n.domIn(s,i)}inlineDOMNearPos(e,i){let n,s=-1,r=!1,o,a=-1,l=!1;return this.tile.blockTiles((h,c)=>{if(h.isWidget()){if(h.flags&32&&c>=e)return!0;h.flags&16&&(r=!0)}else{let d=c+h.length;if(c<=e&&(n=h,s=e-c,r=d=e&&!o&&(o=h,a=e-c,l=c>e),c>e&&o)return!0}}),!n&&!o?this.domAtPos(e,i):(r&&o?n=null:l&&n&&(o=null),n&&i<0||!o?n.domIn(s,i):o.domIn(a,i))}coordsAt(e,i,n){let{tile:s,offset:r}=this.tile.resolveBlock(e,i);return s.isWidget()?s.widget instanceof sc?null:s.coordsInWidget(r,i,!0):s.coordsIn(r,i,n)}lineAt(e,i){let{tile:n}=this.tile.resolveBlock(e,i);return n.isLine()?n:null}coordsForChar(e){let{tile:i,offset:n}=this.tile.resolveBlock(e,1);if(!i.isLine())return null;function s(r,o){if(r.isComposite())for(let a of r.children){if(a.length>=o){let l=s(a,o);if(l)return l}if(o-=a.length,o<0)break}else if(r.isText()&&oMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,a=-1,l=this.view.textDirection==Ye.LTR,h=0,c=(d,u,f)=>{for(let p=0;ps);p++){let m=d.children[p],g=u+m.length,b=m.dom.getBoundingClientRect(),{height:_}=b;if(f&&!p&&(h+=b.top-f.top),m instanceof yn)g>n&&c(m,u,b);else if(u>=n&&(h>0&&i.push(-h),i.push(_+h),h=0,o)){let O=m.dom.lastChild,x=O?rl(O):[];if(x.length){let T=x[x.length-1],y=l?T.right-b.left:b.right-T.left;y>a&&(a=y,this.minWidth=r,this.minWidthFrom=u,this.minWidthTo=g)}}f&&p==d.children.length-1&&(h+=f.bottom-b.bottom),u=g+m.breakAfter}};return c(this.tile,0,null),i}textDirectionAt(e){let{tile:i}=this.tile.resolveBlock(e,1);return getComputedStyle(i.dom).direction=="rtl"?Ye.RTL:Ye.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let a=0,l;for(let h of o.children){if(!h.isText()||/[^ -~]/.test(h.text))return;let c=rl(h.dom);if(c.length!=1)return;a+=c[0].width,l=c[0].height}if(a)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:a/o.length,textHeight:l}}});if(e)return e;let i=document.createElement("div"),n,s,r;return i.className="cm-line",i.style.width="99999px",i.style.position="absolute",i.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(i);let o=rl(i.firstChild)[0];n=i.getBoundingClientRect().height,s=o&&o.width?o.width/27:7,r=o&&o.height?o.height:n,i.remove()}),{lineHeight:n,charWidth:s,textHeight:r}}computeBlockGapDeco(){let e=[],i=this.view.viewState;for(let n=0,s=0;;s++){let r=s==i.viewports.length?null:i.viewports[s],o=r?r.from-1:this.view.state.doc.length;if(o>n){let a=(i.lineBlockAt(o).bottom-i.lineBlockAt(n).top)/this.view.scaleY;e.push(Ge.replace({widget:new sc(a),block:!0,inclusive:!0,isBlockGap:!0}).range(n,o))}if(!r)break;n=r.to+1}return Ge.set(e)}updateDeco(){let e=1,i=this.view.state.facet(Th).map(r=>(this.dynamicDecorationMap[e++]=typeof r=="function")?r(this.view):r),n=!1,s=this.view.state.facet(lf).map((r,o)=>{let a=typeof r=="function";return a&&(n=!0),a?r(this.view):r});for(s.length&&(this.dynamicDecorationMap[e++]=n,i.push(Ae.join(s))),this.decorations=[this.editContextFormatting,...i,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];etypeof r=="function"?r(this.view):r)}scrollIntoView(e){if(e.isSnapshot){let h=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=h.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let h of this.view.state.facet(wb))try{if(h(this.view,e.range,e))return!0}catch(c){Rt(this.view.state,c,"scroll handler")}let{range:i}=e,n=this.coordsAt(i.head,i.assoc||(i.head>i.anchor?-1:1)),s;if(!n)return;!i.empty&&(s=this.coordsAt(i.anchor,i.anchor>i.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 r=hf(this.view),o={left:n.left-r.left,top:n.top-r.top,right:n.right+r.right,bottom:n.bottom+r.bottom},{offsetWidth:a,offsetHeight:l}=this.view.scrollDOM;if(KS(this.view.scrollDOM,o,i.head1&&(n.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||n.bottomn.isWidget()||n.children.some(i);return i(this.tile.resolveBlock(e,1).tile)}destroy(){Md(this.tile)}}function Md(t,e){let i=e?.get(t);if(i!=1){i==null&&t.destroy();for(let n of t.children)Md(n,e)}}function k1(t){return t.node.nodeType==1&&t.node.firstChild&&(t.offset==0||t.node.childNodes[t.offset-1].contentEditable=="false")&&(t.offset==t.node.childNodes.length||t.node.childNodes[t.offset].contentEditable=="false")}function Tb(t,e){let i=t.observer.selectionRange;if(!i.focusNode)return null;let n=ob(i.focusNode,i.focusOffset),s=ab(i.focusNode,i.focusOffset),r=n||s;if(s&&n&&s.node!=n.node){let a=et.get(s.node);if(!a||a.isText()&&a.text!=s.node.nodeValue)r=s;else if(t.docView.lastCompositionAfterCursor){let l=et.get(n.node);!l||l.isText()&&l.text!=n.node.nodeValue||(r=s)}}if(t.docView.lastCompositionAfterCursor=r!=n,!r)return null;let o=e-r.offset;return{from:o,to:o+r.node.nodeValue.length,node:r.node}}function C1(t,e,i){let n=Tb(t,i);if(!n)return null;let{node:s,from:r,to:o}=n,a=s.nodeValue;if(/[\n\r]/.test(a)||t.state.doc.sliceString(n.from,n.to)!=a)return null;let l=e.invertedDesc;return{range:new si(l.mapPos(r),l.mapPos(o),r,o),text:s}}function T1(t,e){return t.nodeType!=1?0:(e&&t.childNodes[e-1].contentEditable=="false"?1:0)|(e{ne.from&&(i=!0)}),i}class sc extends Rr{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 M1(t,e,i=1){let n=t.charCategorizer(e),s=t.doc.lineAt(e),r=e-s.from;if(s.length==0)return K.cursor(e);r==0?i=1:r==s.length&&(i=-1);let o=r,a=r;i<0?o=Ct(s.text,r,!1):a=Ct(s.text,r);let l=n(s.text.slice(o,a));for(;o>0;){let h=Ct(s.text,o,!1);if(n(s.text.slice(h,o))!=l)break;o=h}for(;at.defaultLineHeight*1.5){let a=t.viewState.heightOracle.textHeight,l=Math.floor((s-i.top-(t.defaultLineHeight-a)*.5)/a);r+=l*t.viewState.heightOracle.lineLength}let o=t.state.sliceDoc(i.from,i.to);return i.from+FS(o,r,t.state.tabSize)}function R1(t,e,i){let n=t.lineBlockAt(e);if(Array.isArray(n.type)){let s;for(let r of n.type){if(r.from>e)break;if(!(r.toe)return r;(!s||r.type==Ft.Text&&(s.type!=r.type||(i<0?r.frome)))&&(s=r)}}return s||n}return n}function z1(t,e,i,n){let s=R1(t,e.head,e.assoc||-1),r=!n||s.type!=Ft.Text||!(t.lineWrapping||s.widgetLineBreaks)?null:t.coordsAtPos(e.assoc<0&&e.head>s.from?e.head-1:e.head);if(r){let o=t.dom.getBoundingClientRect(),a=t.textDirectionAt(s.from),l=t.posAtCoords({x:i==(a==Ye.LTR)?o.right-1:o.left+1,y:(r.top+r.bottom)/2});if(l!=null)return K.cursor(l,i?-1:1)}return K.cursor(i?s.to:s.from,i?-1:1)}function nm(t,e,i,n){let s=t.state.doc.lineAt(e.head),r=t.bidiSpans(s),o=t.textDirectionAt(s.from);for(let a=e,l=null;;){let h=h1(s,r,o,a,i),c=ub;if(!h){if(s.number==(i?t.state.doc.lines:1))return a;c=` -`,s=t.state.doc.line(s.number+(i?1:-1)),r=t.bidiSpans(s),h=t.visualLineSide(s,!i)}if(l){if(!l(c))return a}else{if(!n)return h;l=n(c)}a=h}}function L1(t,e,i){let n=t.state.charCategorizer(e),s=n(i);return r=>{let o=n(r);return s==mn.Space&&(s=o),s==o}}function N1(t,e,i,n){let s=e.head,r=i?1:-1;if(s==(i?t.state.doc.length:0))return K.cursor(s,e.assoc);let o=e.goalColumn,a,l=t.contentDOM.getBoundingClientRect(),h=t.coordsAtPos(s,e.assoc||((e.empty?i:e.head==e.from)?1:-1)),c=t.documentTop;if(h)o==null&&(o=h.left-l.left),a=r<0?h.top:h.bottom;else{let p=t.viewState.lineBlockAt(s);o==null&&(o=Math.min(l.right-l.left,t.defaultCharacterWidth*(s-p.from))),a=(r<0?p.top:p.bottom)+c}let d=l.left+o,u=t.viewState.heightOracle.textHeight>>1,f=n??u;for(let p=0;;p+=u){let m=a+(f+p)*r,g=Gd(t,{x:d,y:m},!1,r);if(i?m>l.bottom:ma:_{if(e>r&&es(t)),i.from,e.head>i.from?-1:1);return n==i.from?i:K.cursor(n,nt.viewState.docHeight)return new Wi(t.state.doc.length,-1);if(h=t.elementAtHeight(l),n==null)break;if(h.type==Ft.Text){if(n<0?h.tot.viewport.to)break;let u=t.docView.coordsAt(n<0?h.from:h.to,n>0?-1:1);if(u&&(n<0?u.top<=l+r:u.bottom>=l+r))break}let d=t.viewState.heightOracle.textHeight/2;l=n>0?h.bottom+d:h.top-d}if(t.viewport.from>=h.to||t.viewport.to<=h.from){if(i)return null;if(h.type==Ft.Text){let d=G1(t,s,h,o,a);return new Wi(d,d==h.from?1:-1)}}if(h.type!=Ft.Text)return l<(h.top+h.bottom)/2?new Wi(h.from,1):new Wi(h.to,-1);let c=t.docView.lineAt(h.from,2);return(!c||c.length!=h.length)&&(c=t.docView.lineAt(h.from,-2)),new B1(t,o,a,t.textDirectionAt(h.from)).scanTile(c,h.from)}class B1{constructor(e,i,n,s){this.view=e,this.x=i,this.y=n,this.baseDir=s,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to1||n.length&&(n[0].level!=this.baseDir||n[0].to+s.from>1;t:if(o.has(m)){let b=s+Math.floor(Math.random()*p);for(let _=0;_1)){if(_.bottomthis.y)(!h||h.top>_.top)&&(h=_),O=-1;else{let x=_.left>this.x?this.x-_.left:_.right(p+p+m)/3)return this.y=l.bottom-1,this.scan(e,i,!0);if(h&&h.top<(p+m+m)/3)return this.y=h.top+1,this.scan(e,i,!0)}let f=(a?this.dirAt(e[c],1):this.baseDir)==Ye.LTR;return{i:c,after:this.x>(u.left+u.right)/2==f}}scanText(e,i){let n=[];for(let r=0;r{let o=n[r]-i,a=n[r+1]-i;return Ao(e.dom,o,a).getClientRects()});return s.after?new Wi(n[s.i+1],-1):new Wi(n[s.i],1)}scanTile(e,i){if(!e.length)return new Wi(i,1);if(e.children.length==1){let a=e.children[0];if(a.isText())return this.scanText(a,i);if(a.isComposite())return this.scanTile(a,i)}let n=[i];for(let a=0,l=i;a{let l=e.children[a];return l.flags&48?null:(l.dom.nodeType==1?l.dom:Ao(l.dom,0,l.length)).getClientRects()}),r=e.children[s.i],o=n[s.i];return r.isText()?this.scanText(r,o):r.isComposite()?this.scanTile(r,o):s.after?new Wi(n[s.i+1],-1):new Wi(o,1)}}const er="￿";class W1{constructor(e,i){this.points=e,this.view=i,this.text="",this.lineSeparator=i.state.facet(Ne.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=er}readRange(e,i){if(!e)return this;let n=e.parentNode;for(let s=e;;){this.findPointBefore(n,s);let r=this.text.length;this.readNode(s);let o=et.get(s),a=s.nextSibling;if(a==i){o?.breakAfter&&!a&&n!=this.view.contentDOM&&this.lineBreak();break}let l=et.get(a);(o&&l?o.breakAfter:(o?o.breakAfter:Ll(s))||Ll(a)&&(s.nodeName!="BR"||o?.isWidget())&&this.text.length>r)&&!F1(a,i)&&this.lineBreak(),s=a}return this.findPointBefore(n,i),this}readTextNode(e){let i=e.nodeValue;for(let n of this.points)n.node==e&&(n.pos=this.text.length+Math.min(n.offset,i.length));for(let n=0,s=this.lineSeparator?null:/\r\n?|\n/g;;){let r=-1,o=1,a;if(this.lineSeparator?(r=i.indexOf(this.lineSeparator,n),o=this.lineSeparator.length):(a=s.exec(i))&&(r=a.index,o=a[0].length),this.append(i.slice(n,r<0?i.length:r)),r<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=r+o}}readNode(e){let i=et.get(e),n=i&&i.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,i){for(let n of this.points)n.node==e&&e.childNodes[n.offset]==i&&(n.pos=this.text.length)}findPointInside(e,i){for(let n of this.points)(e.nodeType==3?n.node==e:e.contains(n.node))&&(n.pos=this.text.length+(V1(e,n.node,n.offset)?i:0))}}function V1(t,e,i){for(;;){if(!e||i-1;let{impreciseHead:r,impreciseAnchor:o}=e.docView,a=e.state.selection;if(e.state.readOnly&&i>-1)this.newSel=null;else if(i>-1&&(this.bounds=Pb(e.docView.tile,i,n,0))){let l=r||o?[]:q1(e),h=new W1(l,e);h.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=h.text,this.newSel=U1(l,this.bounds.from)}else{let l=e.observer.selectionRange,h=r&&r.node==l.focusNode&&r.offset==l.focusOffset||!Pd(e.contentDOM,l.focusNode)?a.main.head:e.docView.posFromDOM(l.focusNode,l.focusOffset),c=o&&o.node==l.anchorNode&&o.offset==l.anchorOffset||!Pd(e.contentDOM,l.anchorNode)?a.main.anchor:e.docView.posFromDOM(l.anchorNode,l.anchorOffset),d=e.viewport;if((ae.ios||ae.chrome)&&h!=c&&Math.min(h,c)<=a.main.from&&Math.max(h,c)>=a.main.to&&(d.from>0||d.to-1&&a.ranges.length>1)this.newSel=a.replaceRange(K.range(c,h));else if(e.lineWrapping&&c==h&&!(a.main.empty&&a.main.head==h)&&e.inputState.lastTouchTime>Date.now()-100){let u=e.coordsAtPos(h,-1),f=0;u&&(f=e.inputState.lastTouchY<=u.bottom?-1:1),this.newSel=K.create([K.cursor(h,f)])}else this.newSel=K.single(c,h)}}}function Pb(t,e,i,n){if(t.isComposite()){let s=-1,r=-1,o=-1,a=-1;for(let l=0,h=n,c=n;li)return Pb(d,e,i,h);if(u>=e&&s==-1&&(s=l,r=h),h>i&&d.dom.parentNode==t.dom){o=l,a=c;break}c=u,h=u+d.breakAfter}return{from:r,to:a<0?n+t.length:a,startDOM:(s?t.children[s-1].dom.nextSibling:null)||t.dom.firstChild,endDOM:o=0?t.children[o].dom:null}}else return t.isText()?{from:n,to:n+t.length,startDOM:t.dom,endDOM:t.dom.nextSibling}:null}function $b(t,e){let i,{newSel:n}=e,{state:s}=t,r=s.selection.main,o=t.inputState.lastKeyTime>Date.now()-100?t.inputState.lastKeyCode:-1;if(e.bounds){let{from:a,to:l}=e.bounds,h=r.from,c=null;(o===8||ae.android&&e.text.length=a&&r.to<=l&&(e.typeOver||d!=e.text)&&d.slice(0,r.from-a)==e.text.slice(0,r.from-a)&&d.slice(r.to-a)==e.text.slice(u=e.text.length-(d.length-(r.to-a)))?i={from:r.from,to:r.to,insert:Ee.of(e.text.slice(r.from-a,u).split(er))}:(f=Ab(d,e.text,h-a,c))&&(ae.chrome&&o==13&&f.toB==f.from+2&&e.text.slice(f.from,f.toB)==er+er&&f.toB--,i={from:a+f.from,to:a+f.toA,insert:Ee.of(e.text.slice(f.from,f.toB).split(er))})}else n&&(!t.hasFocus&&s.facet(un)||Fl(n,r))&&(n=null);if(!i&&!n)return!1;if((ae.mac||ae.android)&&i&&i.from==i.to&&i.from==r.head-1&&/^\. ?$/.test(i.insert.toString())&&t.contentDOM.getAttribute("autocorrect")=="off"?(n&&i.insert.length==2&&(n=K.single(n.main.anchor-1,n.main.head-1)),i={from:i.from,to:i.to,insert:Ee.of([i.insert.toString().replace("."," ")])}):s.doc.lineAt(r.from).toDate.now()-50?i={from:r.from,to:r.to,insert:s.toText(t.inputState.insertingText)}:ae.chrome&&i&&i.from==i.to&&i.from==r.head&&i.insert.toString()==` - `&&t.lineWrapping&&(n&&(n=K.single(n.main.anchor-1,n.main.head-1)),i={from:r.from,to:r.to,insert:Ee.of([" "])}),i)return cf(t,i,n,o);if(n&&!Fl(n,r)){let a=!1,l="select";return t.inputState.lastSelectionTime>Date.now()-50&&(t.inputState.lastSelectionOrigin=="select"&&(a=!0),l=t.inputState.lastSelectionOrigin,l=="select.pointer"&&(n=Db(s.facet(na).map(h=>h(t)),n))),t.dispatch({selection:n,scrollIntoView:a,userEvent:l}),!0}else return!1}function cf(t,e,i,n=-1){if(ae.ios&&t.inputState.flushIOSKey(e))return!0;let s=t.state.selection.main;if(ae.android&&(e.to==s.to&&(e.from==s.from||e.from==s.from-1&&t.state.sliceDoc(e.from,s.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&cr(t.contentDOM,"Enter",13)||(e.from==s.from-1&&e.to==s.to&&e.insert.length==0||n==8&&e.insert.lengths.head)&&cr(t.contentDOM,"Backspace",8)||e.from==s.from&&e.to==s.to+1&&e.insert.length==0&&cr(t.contentDOM,"Delete",46)))return!0;let r=e.insert.toString();t.inputState.composing>=0&&t.inputState.composing++;let o,a=()=>o||(o=H1(t,e,i));return t.state.facet(vb).some(l=>l(t,e.from,e.to,r,a))||t.dispatch(a()),!0}function H1(t,e,i){let n,s=t.state,r=s.selection.main,o=-1;if(e.from==e.to&&e.fromr.to){let l=e.fromd(t)),h,l);e.from==c&&(o=c)}if(o>-1)n={changes:e,selection:K.cursor(e.from+e.insert.length,-1)};else if(e.from>=r.from&&e.to<=r.to&&e.to-e.from>=(r.to-r.from)/3&&(!i||i.main.empty&&i.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let l=r.frome.to?s.sliceDoc(e.to,r.to):"";n=s.replaceSelection(t.state.toText(l+e.insert.sliceString(0,void 0,t.state.lineBreak)+h))}else{let l=s.changes(e),h=i&&i.main.to<=l.newLength?i.main:void 0;if(s.selection.ranges.length>1&&(t.inputState.composing>=0||t.inputState.compositionPendingChange)&&e.to<=r.to+10&&e.to>=r.to-10){let c=t.state.sliceDoc(e.from,e.to),d,u=i&&Tb(t,i.main.head);if(u){let p=e.insert.length-(e.to-e.from);d={from:u.from,to:u.to-p}}else d=t.state.doc.lineAt(r.head);let f=r.to-e.to;n=s.changeByRange(p=>{if(p.from==r.from&&p.to==r.to)return{changes:l,range:h||p.map(l)};let m=p.to-f,g=m-c.length;if(t.state.sliceDoc(g,m)!=c||m>=d.from&&g<=d.to)return{range:p};let b=s.changes({from:g,to:m,insert:e.insert}),_=p.to-r.to;return{changes:b,range:h?K.range(Math.max(0,h.anchor+_),Math.max(0,h.head+_)):p.map(b)}})}else n={changes:l,selection:h&&s.selection.replaceRange(h)}}let a="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,a+=".compose",t.inputState.compositionFirstChange&&(a+=".start",t.inputState.compositionFirstChange=!1)),s.update(n,{userEvent:a,scrollIntoView:!0})}function Ab(t,e,i,n){let s=Math.min(t.length,e.length),r=0;for(;r0&&a>0&&t.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(n=="end"){let l=Math.max(0,r-Math.min(o,a));i-=o+l-r}if(o=o?r-i:0;r-=l,a=r+(a-o),o=r}else if(a=a?r-i:0;r-=l,o=r+(o-a),a=r}return{from:r,toA:o,toB:a}}function q1(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:i,anchorOffset:n,focusNode:s,focusOffset:r}=t.observer.selectionRange;return i&&(e.push(new sm(i,n)),(s!=i||r!=n)&&e.push(new sm(s,r))),e}function U1(t,e){if(t.length==0)return null;let i=t[0].pos,n=t.length==2?t[1].pos:i;return i>-1&&n>-1?K.single(i+e,n+e):null}function Fl(t,e){return e.head==t.main.head&&e.anchor==t.main.anchor}class j1{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.touchActive=!1,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.lastIOSMomentumScroll=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,ae.safari&&e.contentDOM.addEventListener("input",()=>null),ae.gecko&&ck(e.contentDOM.ownerDocument)}handleEvent(e){!nk(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,i){let n=this.handlers[e];if(n){for(let s of n.observers)s(this.view,i);for(let s of n.handlers){if(i.defaultPrevented)break;if(s(this.view,i)){i.preventDefault();break}}}}ensureHandlers(e){let i=Y1(e),n=this.handlers,s=this.view.contentDOM;for(let r in i)if(r!="scroll"){let o=!i[r].handlers.length,a=n[r];a&&o!=!a.handlers.length&&(s.removeEventListener(r,this.handleEvent),a=null),a||s.addEventListener(r,this.handleEvent,{passive:o})}for(let r in n)r!="scroll"&&!i[r]&&s.removeEventListener(r,this.handleEvent);this.handlers=i}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&&Eb.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),ae.android&&ae.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;if(ae.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&(Ib.some(i=>i.keyCode==e.keyCode)&&!e.ctrlKey||Z1.indexOf(e.key)>-1&&e.ctrlKey)){let i={ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey,shiftKey:e.shiftKey};return i.shiftKey&&ae.ios&&!/^(off|none)$/.test(this.view.contentDOM.autocapitalize)&&X1(this.view.win)&&(i.shiftKey=!1),this.pendingIOSKey={key:e.key,keyCode:e.keyCode,mods:i},setTimeout(()=>this.flushIOSKey(),250),!0}return e.keyCode!=229&&this.view.observer.forceFlush(),!1}flushIOSKey(e){let i=this.pendingIOSKey;return!i||i.key=="Enter"&&e&&e.from0?!0:ae.safari&&!ae.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 X1(t){return t.visualViewport?t.visualViewport.height*t.visualViewport.scale/t.document.documentElement.clientHeight<.85:!1}function rm(t,e){return(i,n)=>{try{return e.call(t,n,i)}catch(s){Rt(i.state,s)}}}function Y1(t){let e=Object.create(null);function i(n){return e[n]||(e[n]={observers:[],handlers:[]})}for(let n of t){let s=n.spec,r=s&&s.plugin.domEventHandlers,o=s&&s.plugin.domEventObservers;if(r)for(let a in r){let l=r[a];l&&i(a).handlers.push(rm(n.value,l))}if(o)for(let a in o){let l=o[a];l&&i(a).observers.push(rm(n.value,l))}}for(let n in Di)i(n).handlers.push(Di[n]);for(let n in Nt)i(n).observers.push(Nt[n]);return e}const Ib=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],Z1="dthko",Eb=[16,17,18,20,91,92,224,225],ma=6;function ga(t){return Math.max(0,t)*.7+8}function K1(t,e){return Math.max(Math.abs(t.clientX-e.clientX),Math.abs(t.clientY-e.clientY))}class J1{constructor(e,i,n,s){this.view=e,this.startEvent=i,this.style=n,this.mustSelect=s,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=i,this.scrollParents=nb(e.contentDOM),this.atoms=e.state.facet(na).map(o=>o(e));let r=e.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=i.shiftKey,this.multiple=e.state.facet(Ne.allowMultipleSelections)&&ek(e,i),this.dragging=ik(e,i)&&Rb(i)==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&&K1(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let i=0,n=0,s=0,r=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:r,bottom:a}=this.scrollParents.y.getBoundingClientRect());let l=hf(this.view);e.clientX-l.left<=s+ma?i=-ga(s-e.clientX):e.clientX+l.right>=o-ma&&(i=ga(e.clientX-o)),e.clientY-l.top<=r+ma?n=-ga(r-e.clientY):e.clientY+l.bottom>=a-ma&&(n=ga(e.clientY-a)),this.setScrollSpeed(i,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,i){this.scrollSpeed={x:e,y:i},e||i?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:i}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),i&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=i,i=0),(e||i)&&this.view.win.scrollBy(e,i),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:i}=this,n=Db(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!n.eq(i.state.selection,this.dragging===!1))&&this.view.dispatch({selection:n,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(i=>i.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function ek(t,e){let i=t.state.facet(fb);return i.length?i[0](e):ae.mac?e.metaKey:e.ctrlKey}function tk(t,e){let i=t.state.facet(pb);return i.length?i[0](e):ae.mac?!e.altKey:!e.ctrlKey}function ik(t,e){let{main:i}=t.state.selection;if(i.empty)return!1;let n=$o(t.root);if(!n||n.rangeCount==0)return!0;let s=n.getRangeAt(0).getClientRects();for(let r=0;r=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function nk(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let i=e.target,n;i!=t.contentDOM;i=i.parentNode)if(!i||i.nodeType==11||(n=et.get(i))&&n.isWidget()&&!n.isHidden&&n.widget.ignoreEvent(e))return!1;return!0}const Di=Object.create(null),Nt=Object.create(null),Mb=ae.ie&&ae.ie_version<15||ae.ios&&ae.webkit_version<604;function sk(t){let e=t.dom.parentNode;if(!e)return;let i=e.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.focus(),setTimeout(()=>{t.focus(),i.remove(),Gb(t,i.value)},50)}function $h(t,e,i){for(let n of t.facet(e))i=n(i,t);return i}function Gb(t,e){e=$h(t.state,rf,e);let{state:i}=t,n,s=1,r=i.toText(e),o=r.lines==i.selection.ranges.length;if(Rd!=null&&i.selection.ranges.every(l=>l.empty)&&Rd==r.toString()){let l=-1;n=i.changeByRange(h=>{let c=i.doc.lineAt(h.from);if(c.from==l)return{range:h};l=c.from;let d=i.toText((o?r.line(s++).text:e)+i.lineBreak);return{changes:{from:c.from,insert:d},range:K.cursor(h.from+d.length)}})}else o?n=i.changeByRange(l=>{let h=r.line(s++);return{changes:{from:l.from,to:l.to,insert:h.text},range:K.cursor(l.from+h.length)}}):n=i.replaceSelection(r);t.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}Nt.scroll=t=>{let e=t.inputState;e.lastScrollTop=t.scrollDOM.scrollTop,e.lastScrollLeft=t.scrollDOM.scrollLeft,ae.ios&&!e.touchActive&&(e.lastIOSMomentumScroll=Date.now())};Nt.wheel=Nt.mousewheel=t=>{t.inputState.lastWheelEvent=Date.now()};Di.keydown=(t,e)=>(t.inputState.setSelectionOrigin("select"),e.keyCode==27&&t.inputState.tabFocusMode!=0&&(t.inputState.tabFocusMode=Date.now()+2e3),!1);Nt.touchstart=(t,e)=>{let i=t.inputState,n=e.targetTouches[0];i.touchActive=!0,i.lastTouchTime=Date.now(),n&&(i.lastTouchX=n.clientX,i.lastTouchY=n.clientY),i.setSelectionOrigin("select.pointer")};Nt.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")};Nt.touchend=(t,e)=>{t.inputState.touchActive=!1};Di.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return!1;let i=null;for(let n of t.state.facet(mb))if(i=n(t,e),i)break;if(!i&&e.button==0&&(i=ok(t,e)),i){let n=!t.hasFocus;t.inputState.startMouseSelection(new J1(t,e,i,n)),n&&t.observer.ignore(()=>{sb(t.contentDOM);let r=t.root.activeElement;r&&!r.contains(t.contentDOM)&&r.blur()});let s=t.inputState.mouseSelection;if(s)return s.start(e),s.dragging===!1}else t.inputState.setSelectionOrigin("select.pointer");return!1};function om(t,e,i,n){if(n==1)return K.cursor(e,i);if(n==2)return M1(t.state,e,i);{let s=t.docView.lineAt(e,i),r=t.state.doc.lineAt(s?s.posAtEnd:e),o=s?s.posAtStart:r.from,a=s?s.posAtEnd:r.to;return aDate.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(lm+1)%3:1}function ok(t,e){let i=t.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),n=Rb(e),s=t.state.selection;return{update(r){r.docChanged&&(i.pos=r.changes.mapPos(i.pos),s=s.map(r.changes))},get(r,o,a){let l=t.posAndSideAtCoords({x:r.clientX,y:r.clientY},!1),h,c=om(t,l.pos,l.assoc,n);if(i.pos!=l.pos&&!o){let d=om(t,i.pos,i.assoc,n),u=Math.min(d.from,c.from),f=Math.max(d.to,c.to);c=u1&&(h=ak(s,l.pos))?h:a?s.addRange(c):K.create([c])}}}function ak(t,e){for(let i=0;i=e)return K.create(t.ranges.slice(0,i).concat(t.ranges.slice(i+1)),t.mainIndex==i?0:t.mainIndex-(t.mainIndex>i?1:0))}return null}Di.dragstart=(t,e)=>{let{selection:{main:i}}=t.state;if(e.target.draggable){let s=t.docView.tile.nearest(e.target);if(s&&s.isWidget()){let r=s.posAtStart,o=r+s.length;(r>=i.to||o<=i.from)&&(i=K.undirectionalRange(r,o))}}let{inputState:n}=t;return n.mouseSelection&&(n.mouseSelection.dragging=!0),n.draggedContent=i,e.dataTransfer&&(e.dataTransfer.setData("Text",$h(t.state,of,t.state.sliceDoc(i.from,i.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Di.dragend=t=>(t.inputState.draggedContent=null,!1);function cm(t,e,i,n){if(i=$h(t.state,rf,i),!i)return;let s=t.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:r}=t.inputState,o=n&&r&&tk(t,e)?{from:r.from,to:r.to}:null,a={from:s,insert:i},l=t.state.changes(o?[o,a]:a);t.focus(),t.dispatch({changes:l,selection:{anchor:l.mapPos(s,-1),head:l.mapPos(s,1)},userEvent:o?"move.drop":"input.drop"}),t.inputState.draggedContent=null}Di.drop=(t,e)=>{if(!e.dataTransfer)return!1;if(t.state.readOnly)return!0;let i=e.dataTransfer.files;if(i&&i.length){let n=Array(i.length),s=0,r=()=>{++s==i.length&&cm(t,e,n.filter(o=>o!=null).join(t.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(a.result)||(n[o]=a.result),r()},a.readAsText(i[o])}return!0}else{let n=e.dataTransfer.getData("Text");if(n)return cm(t,e,n,!0),!0}return!1};Di.paste=(t,e)=>{if(t.state.readOnly)return!0;t.observer.flush();let i=Mb?null:e.clipboardData;return i?(Gb(t,i.getData("text/plain")||i.getData("text/uri-list")),!0):(sk(t),!1)};function lk(t,e){let i=t.dom.parentNode;if(!i)return;let n=i.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(),t.focus()},50)}function hk(t){let e=[],i=[],n=!1;for(let s of t.selection.ranges)s.empty||(e.push(t.sliceDoc(s.from,s.to)),i.push(s));if(!e.length){let s=-1;for(let{from:r}of t.selection.ranges){let o=t.doc.lineAt(r);o.number>s&&(e.push(o.text),i.push({from:o.from,to:Math.min(t.doc.length,o.to+1)})),s=o.number}n=!0}return{text:$h(t,of,e.join(t.lineBreak)),ranges:i,linewise:n}}let Rd=null;Di.copy=Di.cut=(t,e)=>{if(!fo(t.contentDOM,t.observer.selectionRange))return!1;let{text:i,ranges:n,linewise:s}=hk(t.state);if(!i&&!s)return!1;Rd=s?i:null,e.type=="cut"&&!t.state.readOnly&&t.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"});let r=Mb?null:e.clipboardData;return r?(r.clearData(),r.setData("text/plain",i),!0):(lk(t,i),!1)};const zb=Pn.define();function Lb(t,e){let i=[];for(let n of t.facet(bb)){let s=n(t,e);s&&i.push(s)}return i.length?t.update({effects:i,annotations:zb.of(!0)}):null}function Nb(t){setTimeout(()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let i=Lb(t.state,e);i?t.dispatch(i):t.update([])}},10)}Nt.focus=t=>{t.inputState.lastFocusTime=Date.now(),!t.scrollDOM.scrollTop&&(t.inputState.lastScrollTop||t.inputState.lastScrollLeft)&&(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),Nb(t)};Nt.blur=t=>{t.observer.clearSelectionRange(),Nb(t)};Nt.compositionstart=Nt.compositionupdate=t=>{t.observer.editContext||(t.inputState.compositionFirstChange==null&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0))};Nt.compositionend=t=>{t.observer.editContext||(t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,ae.chrome&&ae.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then(()=>t.observer.flush()):setTimeout(()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])},50))};Nt.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()};Di.beforeinput=(t,e)=>{var i,n;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(t.inputState.insertingText=e.data,t.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&t.observer.editContext){let r=(i=e.dataTransfer)===null||i===void 0?void 0:i.getData("text/plain"),o=e.getTargetRanges();if(r&&o.length){let a=o[0],l=t.posAtDOM(a.startContainer,a.startOffset),h=t.posAtDOM(a.endContainer,a.endOffset);return cf(t,{from:l,to:h,insert:t.state.toText(r)},null),!0}}let s;if(ae.chrome&&ae.android&&(s=Ib.find(r=>r.inputType==e.inputType))&&(t.observer.delayAndroidKey(s.key,s.keyCode),s.key=="Backspace"||s.key=="Delete")){let r=((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)>r+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())},100)}return ae.ios&&e.inputType=="deleteContentForward"&&t.observer.flushSoon(),ae.safari&&e.inputType=="insertText"&&t.inputState.composing>=0&&setTimeout(()=>Nt.compositionend(t,e),20),!1};const dm=new Set;function ck(t){dm.has(t)||(dm.add(t),t.addEventListener("copy",()=>{}),t.addEventListener("cut",()=>{}))}const um=["pre-wrap","normal","pre-line","break-spaces"];let Or=!1;function fm(){Or=!1}class dk{constructor(e){this.lineWrapping=e,this.doc=Ee.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,i){let n=this.doc.lineAt(i).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.max(0,Math.ceil((i-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 um.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let i=!1;for(let n=0;n-1,l=Math.abs(i-this.lineHeight)>.3||this.lineWrapping!=a;if(this.lineWrapping=a,this.lineHeight=i,this.charWidth=n,this.textHeight=s,this.lineLength=r,l){this.heightSamples={};for(let h=0;h0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>ol&&(Or=!0),this.height=e)}replace(e,i,n){return zt.of(n)}decomposeLeft(e,i){i.push(this)}decomposeRight(e,i){i.push(this)}applyChanges(e,i,n,s){let r=this,o=n.doc;for(let a=s.length-1;a>=0;a--){let{fromA:l,toA:h,fromB:c,toB:d}=s[a],u=r.lineAt(l,He.ByPosNoHeight,n.setDoc(i),0,0),f=u.to>=h?u:r.lineAt(h,He.ByPosNoHeight,n,0,0);for(d+=f.to-h,h=f.to;a>0&&u.from<=s[a-1].toA;)l=s[a-1].fromA,c=s[a-1].fromB,a--,lr*2){let a=e[i-1];a.break?e.splice(--i,1,a.left,null,a.right):e.splice(--i,1,a.left,a.right),n+=1+a.break,s-=a.size}else if(r>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,r-=a.size}else break;else if(s=r&&o(this.lineAt(0,He.ByPos,n,s,r))}setMeasuredHeight(e){let i=e.heights[e.index++];i<0?(this.spaceAbove=-i,i=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(i)}updateHeight(e,i=0,n=!1,s){return s&&s.from<=i&&s.more&&this.setMeasuredHeight(s),this.outdated=!1,this}toString(){return`block(${this.length})`}}class Zt extends Bb{constructor(e,i,n){super(e,i,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=n}mainBlock(e,i){return new vi(i,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,i,n){let s=n[0];return n.length==1&&(s instanceof Zt||s instanceof _t&&s.flags&4)&&Math.abs(this.length-s.length)<10?(s instanceof _t?s=new Zt(s.length,this.height,this.spaceAbove):s.height=this.height,this.outdated||(s.outdated=!1),s):zt.of(n)}updateHeight(e,i=0,n=!1,s){return s&&s.from<=i&&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 _t extends zt{constructor(e){super(e,0)}heightMetrics(e,i){let n=e.doc.lineAt(i).number,s=e.doc.lineAt(i+this.length).number,r=s-n+1,o,a=0;if(e.lineWrapping){let l=Math.min(this.height,e.lineHeight*r);o=l/r,this.length>r+1&&(a=(this.height-l)/(this.length-r-1))}else o=this.height/r;return{firstLine:n,lastLine:s,perLine:o,perChar:a}}blockAt(e,i,n,s){let{firstLine:r,lastLine:o,perLine:a,perChar:l}=this.heightMetrics(i,s);if(i.lineWrapping){let h=s+(e0){let r=n[n.length-1];r instanceof _t?n[n.length-1]=new _t(r.length+s):n.push(null,new _t(s-1))}if(e>0){let r=n[0];r instanceof _t?n[0]=new _t(e+r.length):n.unshift(new _t(e-1),null)}return zt.of(n)}decomposeLeft(e,i){i.push(new _t(e-1),null)}decomposeRight(e,i){i.push(null,new _t(this.length-e-1))}updateHeight(e,i=0,n=!1,s){let r=i+this.length;if(s&&s.from<=i+this.length&&s.more){let o=[],a=Math.max(i,s.from),l=-1;for(s.from>i&&o.push(new _t(s.from-i-1).updateHeight(e,i));a<=r&&s.more;){let c=e.doc.lineAt(a).length;o.length&&o.push(null);let d=s.heights[s.index++],u=0;d<0&&(u=-d,d=s.heights[s.index++]),l==-1?l=d:Math.abs(d-l)>=ol&&(l=-2);let f=new Zt(c,d,u);f.outdated=!1,o.push(f),a+=c+1}a<=r&&o.push(null,new _t(r-a).updateHeight(e,a));let h=zt.of(o);return(l<0||Math.abs(h.height-this.height)>=ol||Math.abs(l-this.heightMetrics(e,i).perLine)>=ol)&&(Or=!0),Ql(this,h)}else(n||this.outdated)&&(this.setHeight(e.heightForGap(i,i+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class pk extends zt{constructor(e,i,n){super(e.length+i+n.length,e.height+n.height,i|(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,i,n,s){let r=n+this.left.height;return ea))return h;let c=i==He.ByPosNoHeight?He.ByPosNoHeight:He.ByPos;return l?h.join(this.right.lineAt(a,c,n,o,a)):this.left.lineAt(a,c,n,s,r).join(h)}forEachLine(e,i,n,s,r,o){let a=s+this.left.height,l=r+this.left.length+this.break;if(this.break)e=l&&this.right.forEachLine(e,i,n,a,l,o);else{let h=this.lineAt(l,He.ByPos,n,s,r);e=e&&h.from<=i&&o(h),i>h.to&&this.right.forEachLine(h.to+1,i,n,a,l,o)}}replace(e,i,n){let s=this.left.length+this.break;if(ithis.left.length)return this.balanced(this.left,this.right.replace(e-s,i-s,n));let r=[];e>0&&this.decomposeLeft(e,r);let o=r.length;for(let a of n)r.push(a);if(e>0&&pm(r,o-1),i=n&&i.push(null)),e>n&&this.right.decomposeLeft(e-n,i)}decomposeRight(e,i){let n=this.left.length,s=n+this.break;if(e>=s)return this.right.decomposeRight(e-s,i);e2*i.size||i.size>2*e.size?zt.of(this.break?[e,null,i]:[e,i]):(this.left=Ql(this.left,e),this.right=Ql(this.right,i),this.setHeight(e.height+i.height),this.outdated=e.outdated||i.outdated,this.size=e.size+i.size,this.length=e.length+this.break+i.length,this)}updateHeight(e,i=0,n=!1,s){let{left:r,right:o}=this,a=i+r.length+this.break,l=null;return s&&s.from<=i+r.length&&s.more?l=r=r.updateHeight(e,i,n,s):r.updateHeight(e,i,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(r,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function pm(t,e){let i,n;t[e]==null&&(i=t[e-1])instanceof _t&&(n=t[e+1])instanceof _t&&t.splice(e-1,3,new _t(i.length+1+n.length))}const mk=5;class df{constructor(e,i){this.pos=e,this.oracle=i,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,i){if(this.lineStart>-1){let n=Math.min(i,this.lineEnd),s=this.nodes[this.nodes.length-1];s instanceof Zt?s.length+=n-this.pos:(n>this.pos||!this.isCovered)&&this.nodes.push(new Zt(n-this.pos,-1,0)),this.writtenTo=n,i>n&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=i}point(e,i,n){if(e=mk)&&this.addLineDeco(s,r,o)}else i>e&&this.span(e,i);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:i}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=i,this.writtenToe&&this.nodes.push(new Zt(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,i){let n=new _t(i-e);return this.oracle.doc.lineAt(e).to==i&&(n.flags|=4),n}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof Zt)return e;let i=new Zt(0,-1,0);return this.nodes.push(i),i}addBlock(e){this.enterLine();let i=e.deco;i&&i.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,i&&i.endSide>0&&(this.covering=e)}addLineDeco(e,i,n){let s=this.ensureLine();s.length+=n,s.collapsed+=n,s.widgetHeight=Math.max(s.widgetHeight,e),s.breaks+=i,this.writtenTo=this.pos=this.pos+n}finish(e){let i=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(i instanceof Zt)&&!this.isCovered?this.nodes.push(new Zt(0,-1,0)):(this.writtenToc.clientHeight||c.scrollWidth>c.clientWidth)&&d.overflow!="visible"){let u=c.getBoundingClientRect();r=Math.max(r,u.left),o=Math.min(o,u.right),a=Math.max(a,u.top),l=Math.min(h==t.parentNode?s.innerHeight:l,u.bottom)}h=d.position=="absolute"||d.position=="fixed"?c.offsetParent:c.parentNode}else if(h.nodeType==11)h=h.host;else break;return{left:r-i.left,right:Math.max(r,o)-i.left,top:a-(i.top+e),bottom:Math.max(a,l)-(i.top+e)}}function _k(t){let e=t.getBoundingClientRect(),i=t.ownerDocument.defaultView||window;return e.left0&&e.top0}function wk(t,e){let i=t.getBoundingClientRect();return{left:0,right:i.right-i.left,top:e,bottom:i.bottom-(i.top+e)}}class oc{constructor(e,i,n,s){this.from=e,this.to=i,this.size=n,this.displaySize=s}static same(e,i){if(e.length!=i.length)return!1;for(let n=0;ntypeof s!="function"&&s.class=="cm-lineWrapping");this.heightOracle=new dk(n),this.stateDeco=vm(i),this.heightMap=zt.empty().applyChanges(this.stateDeco,Ee.empty,this.heightOracle.setDoc(i.doc),[new si(0,0,0,i.doc.length)]);for(let s=0;s<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());s++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Ge.set(this.lineGaps.map(s=>s.draw(this,!1))),this.scrollParent=e.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:i}=this.state.selection;for(let n=0;n<=1;n++){let s=n?i.head:i.anchor;if(!e.some(({from:r,to:o})=>s>=r&&s<=o)){let{from:r,to:o}=this.lineBlockAt(s);e.push(new va(r,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?gm:new uf(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(io(e,this.scaler))})}update(e,i=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=vm(this.state);let s=e.changedRanges,r=si.extendWithRanges(s,gk(n,this.stateDeco,e?e.changes:dt.empty(this.state.doc.length))),o=this.heightMap.height,a=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);fm(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),r),(this.heightMap.height!=o||Or)&&(e.flags|=2),a?(this.scrollAnchorPos=e.changes.mapPos(a.from,-1),this.scrollAnchorHeight=a.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let l=r.length?this.mapViewport(this.viewport,e.changes):this.viewport;(i&&(i.range.headl.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,i));let h=l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,e.flags|=this.updateForViewport(),(h||!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),i&&(this.scrollTarget=i),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(d1)&&(this.mustEnforceCursorAssoc=!0)}measure(){let{view:e}=this,i=e.contentDOM,n=window.getComputedStyle(i),s=this.heightOracle,r=n.whiteSpace;this.defaultTextDirection=n.direction=="rtl"?Ye.RTL:Ye.LTR;let o=this.heightOracle.mustRefreshForWrapping(r)||this.mustMeasureContent==="refresh",a=i.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=a.height;this.contentDOMHeight=a.height,this.mustMeasureContent=!1;let h=0,c=0;if(a.width&&a.height){let{scaleX:T,scaleY:y}=ib(i,a);(T>.005&&Math.abs(this.scaleX-T)>.005||y>.005&&Math.abs(this.scaleY-y)>.005)&&(this.scaleX=T,this.scaleY=y,h|=16,o=l=!0)}let d=(parseInt(n.paddingTop)||0)*this.scaleY,u=(parseInt(n.paddingBottom)||0)*this.scaleY;(this.paddingTop!=d||this.paddingBottom!=u)&&(this.paddingTop=d,this.paddingBottom=u,h|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(s.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,h|=16);let f=nb(this.view.contentDOM,!1).y;f!=this.scrollParent&&(this.scrollParent=f,this.scrollAnchorHeight=-1,this.scrollOffset=0);let p=this.getScrollOffset();this.scrollOffset!=p&&(this.scrollAnchorHeight=-1,this.scrollOffset=p),this.scrolledToBottom=rb(this.scrollParent||e.win);let m=(this.printing?wk:bk)(i,this.paddingTop),g=m.top-this.pixelViewport.top,b=m.bottom-this.pixelViewport.bottom;this.pixelViewport=m;let _=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(_!=this.inView&&(this.inView=_,_&&(l=!0)),!this.inView&&!this.scrollTarget&&!_k(e.dom))return 0;let O=a.width;if((this.contentDOMWidth!=O||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=a.width,this.editorHeight=e.scrollDOM.clientHeight,h|=16),l){let T=e.docView.measureVisibleLineHeights(this.viewport);if(s.mustRefreshForHeights(T)&&(o=!0),o||s.lineWrapping&&Math.abs(O-this.contentDOMWidth)>s.charWidth){let{lineHeight:y,charWidth:C,textHeight:k}=e.docView.measureTextSize();o=y>0&&s.refresh(r,y,C,k,Math.max(5,O/C),T),o&&(e.docView.minWidth=0,h|=16)}g>0&&b>0?c=Math.max(g,b):g<0&&b<0&&(c=Math.min(g,b)),fm();for(let y of this.viewports){let C=y.from==this.viewport.from?T:e.docView.measureVisibleLineHeights(y);this.heightMap=(o?zt.empty().applyChanges(this.stateDeco,Ee.empty,this.heightOracle,[new si(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(s,0,o,new uk(y.from,C))}Or&&(h|=2)}let x=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return x&&(h&2&&(h|=this.updateScaler()),this.viewport=this.getViewport(c,this.scrollTarget),h|=this.updateForViewport()),(h&2||x)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),h|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),h}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,i){let n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),s=this.heightMap,r=this.heightOracle,{visibleTop:o,visibleBottom:a}=this,l=new va(s.lineAt(o-n*1e3,He.ByHeight,r,0,0).from,s.lineAt(a+(1-n)*1e3,He.ByHeight,r,0,0).to);if(i){let{head:h}=i.range;if(hl.to){let c=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),d=s.lineAt(h,He.ByPos,r,0,0),u;i.y=="center"?u=(d.top+d.bottom)/2-c/2:i.y=="start"||i.y=="nearest"&&h=a+Math.max(10,Math.min(n,250)))&&s>o-2*1e3&&r>1,o=s<<1;if(this.defaultTextDirection!=Ye.LTR&&!n)return[];let a=[],l=(c,d,u,f)=>{if(d-cc&&bb.from>=u.from&&b.to<=u.to&&Math.abs(b.from-c)b.from<_&&b.to>_));if(!g){if(dO.from<=d&&O.to>=d)){let O=i.moveToLineBoundary(K.cursor(d),!1,!0).head;O>c&&(d=O)}let b=this.gapSize(u,c,d,f),_=n||b<2e6?b:2e6;g=new oc(c,d,b,_)}a.push(g)},h=c=>{if(c.length2e6)for(let y of e)y.from>=c.from&&y.fromc.from&&l(c.from,f,c,d),pi.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let i=this.stateDeco;this.lineGaps.length&&(i=i.concat(this.lineGapDeco));let n=[];Ae.spans(i,this.viewport.from,this.viewport.to,{span(r,o){n.push({from:r,to:o})},point(){}},20);let s=0;if(n.length!=this.visibleRanges.length)s=12;else for(let r=0;r=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(i=>i.from<=e&&i.to>=e)||io(this.heightMap.lineAt(e,He.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(i=>i.top<=e&&i.bottom>=e)||io(this.heightMap.lineAt(this.scaler.fromDOM(e),He.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return(this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top)*this.scaleY}scrollAnchorAt(e){let i=this.lineBlockAtHeight(e+8);return i.from>=this.viewport.from||this.viewportLines[0].top-e>200?i:this.viewportLines[0]}elementAtHeight(e){return io(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 va{constructor(e,i){this.from=e,this.to=i}}function xk(t,e,i){let n=[],s=t,r=0;return Ae.spans(i,t,e,{span(){},point(o,a){o>s&&(n.push({from:s,to:o}),r+=o-s),s=a}},20),s=1)return e[e.length-1].to;let n=Math.floor(t*i);for(let s=0;;s++){let{from:r,to:o}=e[s],a=o-r;if(n<=a)return r+n;n-=a}}function _a(t,e){let i=0;for(let{from:n,to:s}of t.ranges){if(e<=s){i+=e-n;break}i+=s-n}return i/t.total}function Ok(t,e){for(let i of t)if(e(i))return i}const gm={toDOM(t){return t},fromDOM(t){return t},scale:1,eq(t){return t==this}};function vm(t){let e=t.facet(Th).filter(n=>typeof n!="function"),i=t.facet(lf).filter(n=>typeof n!="function");return i.length&&e.push(Ae.join(i)),e}class uf{constructor(e,i,n){let s=0,r=0,o=0;this.viewports=n.map(({from:a,to:l})=>{let h=i.lineAt(a,He.ByPos,e,0,0).top,c=i.lineAt(l,He.ByPos,e,0,0).bottom;return s+=c-h,{from:a,to:l,top:h,bottom:c,domTop:0,domBottom:0}}),this.scale=(7e6-s)/(i.height-s);for(let a of this.viewports)a.domTop=o+(a.top-r)*this.scale,o=a.domBottom=a.domTop+(a.bottom-a.top),r=a.bottom}toDOM(e){for(let i=0,n=0,s=0;;i++){let r=ii.from==e.viewports[n].from&&i.to==e.viewports[n].to):!1}}function io(t,e){if(e.scale==1)return t;let i=e.toDOM(t.top),n=e.toDOM(t.bottom);return new vi(t.from,t.length,i,n-i,Array.isArray(t._content)?t._content.map(s=>io(s,e)):t._content)}const wa=le.define({combine:t=>t.join(" ")}),zd=le.define({combine:t=>t.indexOf(!0)>-1}),Ld=es.newName(),Wb=es.newName(),Vb=es.newName(),Fb={"&light":"."+Wb,"&dark":"."+Vb};function Nd(t,e,i){return new es(e,{finish(n){return/&/.test(n)?n.replace(/&\w*/,s=>{if(s=="&")return t;if(!i||!i[s])throw new RangeError(`Unsupported selector: ${s}`);return i[s]}):t+" "+n}})}const Sk=Nd("."+Ld,{"&":{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":{userSelect:"none",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-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".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"},".cm-panels-top":{top:"0"},".cm-panels-bottom":{bottom:"0"},"&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,')`,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"}},Fb),kk={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},ac=ae.ie&&ae.ie_version<=11;class Ck{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new JS,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(i=>{for(let n of i)this.queue.push(n);(ae.ie&&ae.ie_version<=11||ae.ios&&e.composing)&&i.some(n=>n.type=="childList"&&n.removedNodes.length||n.type=="characterData"&&n.oldValue.length>n.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&ae.android&&e.constructor.EDIT_CONTEXT!==!1&&!(ae.chrome&&ae.chrome_version<126)&&(this.editContext=new Dk(e),e.state.facet(un)&&(e.contentDOM.editContext=this.editContext.editContext)),ac&&(this.onCharData=i=>{this.queue.push({target:i.target,type:"characterData",oldValue:i.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 i;((i=this.view.docView)===null||i===void 0?void 0:i.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),i.length>0&&i[i.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(i=>{i.length>0&&i[i.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((i,n)=>i!=e[n]))){this.gapIntersection.disconnect();for(let i of e)this.gapIntersection.observe(i);this.gaps=e}}onSelectionChange(e){let i=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,s=this.selectionRange;if(n.state.facet(un)?n.root.activeElement!=this.dom:!fo(this.dom,s))return;let r=s.anchorNode&&n.docView.tile.nearest(s.anchorNode);if(r&&r.isWidget()&&r.widget.ignoreEvent(e)){i||(this.selectionChanged=!1);return}(ae.ie&&ae.ie_version<=11||ae.android&&ae.chrome)&&!n.state.selection.main.empty&&s.focusNode&&po(s.focusNode,s.focusOffset,s.anchorNode,s.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,i=$o(e.root);if(!i)return!1;let n=ae.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&Tk(this.view,i)||i;if(!n||this.selectionRange.eq(n))return!1;let s=fo(this.dom,n);return s&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let r=this.delayedAndroidKey;r&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=r.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&r.force&&cr(this.dom,r.key,r.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(s)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:i,force:this.lastChange{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 i=-1,n=-1,s=!1;for(let r of e){let o=this.readMutation(r);o&&(o.typeOver&&(s=!0),i==-1?{from:i,to:n}=o:(i=Math.min(o.from,i),n=Math.max(o.to,n)))}return{from:i,to:n,typeOver:s}}readChange(){let{from:e,to:i,typeOver:n}=this.processRecords(),s=this.selectionChanged&&fo(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 r=new Q1(this.view,e,i,n);return this.view.docView.domChanged={newSel:r.newSel?r.newSel.main:null},r}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let i=this.readChange();if(!i)return this.view.requestMeasure(),!1;let n=this.view.state,s=$b(this.view,i);return this.view.state==n&&(i.domChanged||i.newSel&&!Fl(this.view.state.selection,i.newSel.main))&&this.view.update([]),s}readMutation(e){let i=this.view.docView.tile.nearest(e.target);if(!i||i.isWidget())return null;if(i.markDirty(e.type=="attributes"),e.type=="childList"){let n=bm(i,e.previousSibling||e.target.previousSibling,-1),s=bm(i,e.nextSibling||e.target.nextSibling,1);return{from:n?i.posAfter(n):i.posAtStart,to:s?i.posBefore(s):i.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:i.posAtStart,to:i.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(un)!=e.state.facet(un)&&(e.view.contentDOM.editContext=e.state.facet(un)?this.editContext.editContext:null))}destroy(){var e,i,n;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(i=this.gapIntersection)===null||i===void 0||i.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 bm(t,e,i){for(;e;){let n=et.get(e);if(n&&n.parent==t)return n;let s=e.parentNode;e=s!=t.dom?s:i>0?e.nextSibling:e.previousSibling}return null}function _m(t,e){let i=e.startContainer,n=e.startOffset,s=e.endContainer,r=e.endOffset,o=t.docView.domAtPos(t.state.selection.main.anchor,1);return po(o.node,o.offset,s,r)&&([i,n,s,r]=[s,r,i,n]),{anchorNode:i,anchorOffset:n,focusNode:s,focusOffset:r}}function Tk(t,e){if(e.getComposedRanges){let s=e.getComposedRanges(t.root)[0];if(s)return _m(t,s)}let i=null;function n(s){s.preventDefault(),s.stopImmediatePropagation(),i=s.getTargetRanges()[0]}return t.contentDOM.addEventListener("beforeinput",n,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",n,!0),i?_m(t,i):null}class Dk{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let i=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:r,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 h=l-a>n.text.length;a==this.from&&rthis.to&&(l=r);let c=Ab(e.state.sliceDoc(a,l),n.text,(h?s.from:s.to)-a,h?"end":null);if(!c){let u=K.single(this.toEditorPos(n.selectionStart),this.toEditorPos(n.selectionEnd));Fl(u,s)||e.dispatch({selection:u,userEvent:"select"});return}let d={from:c.from+a,to:c.toA+a,insert:Ee.of(n.text.slice(c.from,c.toB).split(` -`))};if((ae.mac||ae.android)&&d.from==o-1&&/^\. ?$/.test(n.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(d={from:a,to:l,insert:Ee.of([n.text.replace("."," ")])}),this.pendingContextChange=d,!e.state.readOnly){let u=this.to-this.from+(d.to-d.from+d.insert.length);cf(e,d,K.single(this.toEditorPos(n.selectionStart,u),this.toEditorPos(n.selectionEnd,u)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),d.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(i.text.slice(Math.max(0,n.updateRangeStart-1),Math.min(i.text.length,n.updateRangeStart+1)))&&this.handlers.compositionend(n)},this.handlers.characterboundsupdate=n=>{let s=[],r=null;for(let o=this.toEditorPos(n.rangeStart),a=this.toEditorPos(n.rangeEnd);o{let s=[];for(let r of n.getTextFormats()){let o=r.underlineStyle,a=r.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(a)){let l=this.toEditorPos(r.rangeStart),h=this.toEditorPos(r.rangeEnd);if(l{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)i.addEventListener(n,this.handlers[n]);this.measureReq={read:n=>{let s=$o(n.root);s&&s.rangeCount&&this.editContext.updateSelectionBounds(s.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let i=0,n=!1,s=this.pendingContextChange;return e.changes.iterChanges((r,o,a,l,h)=>{if(n)return;let c=h.length-(o-r);if(s&&o>=s.to)if(s.from==r&&s.to==o&&s.insert.eq(h)){s=this.pendingContextChange=null,i+=c,this.to+=c;return}else s=null,this.revertPending(e.state);if(r+=i,o+=i,o<=this.from)this.from+=c,this.to+=c;else if(rthis.to||this.to-this.from+h.length>3e4){n=!0;return}this.editContext.updateText(this.toContextPos(r),this.toContextPos(o),h.toString()),this.to+=c}i+=c}),s&&!n&&this.revertPending(e.state),!n}update(e){let i=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||i)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:i}=e.selection.main;this.from=Math.max(0,i-1e4),this.to=Math.min(e.doc.length,i+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 i=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(i.from),this.toContextPos(i.from+i.insert.length),e.doc.sliceString(i.from,i.to))}setSelection(e){let{main:i}=e.selection,n=this.toContextPos(Math.max(this.from,Math.min(this.to,i.anchor))),s=this.toContextPos(i.head);(this.editContext.selectionStart!=n||this.editContext.selectionEnd!=s)&&this.editContext.updateSelection(n,s)}rangeIsValid(e){let{head:i}=e.selection.main;return!(this.from>0&&i-this.from<500||this.to1e4*3)}toEditorPos(e,i=this.to-this.from){e=Math.min(e,i);let n=this.composing;return n&&n.drifted?n.editorBase+(e-n.contextBase):e+this.from}toContextPos(e){let i=this.composing;return i&&i.drifted?i.contextBase+(e-i.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class ce{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 i;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(r=>n(r,this)))||(s=>this.update(s)),this.dispatch=this.dispatch.bind(this),this._root=e.root||e1(e.parent)||document,this.viewState=new mm(this,e.state||Ne.create(e)),e.scrollTo&&e.scrollTo.is(pa)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(nr).map(s=>new tc(s));for(let s of this.plugins)s.update(this);this.observer=new Ck(this),this.inputState=new j1(this),this.inputState.ensureHandlers(this.plugins),this.docView=new im(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((i=document.fonts)===null||i===void 0)&&i.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let i=e.length==1&&e[0]instanceof lt?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(i,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let i=!1,n=!1,s,r=this.state;for(let u of e){if(u.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=u.state}if(this.destroyed){this.viewState.state=r;return}let o=this.hasFocus,a=0,l=null;e.some(u=>u.annotation(zb))?(this.inputState.notifiedFocused=o,a=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,l=Lb(r,o),l||(a=1));let h=this.observer.delayedAndroidKey,c=null;if(h?(this.observer.clearDelayedAndroidKey(),c=this.observer.readChange(),(c&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(c=null)):this.observer.clear(),r.facet(Ne.phrases)!=this.state.facet(Ne.phrases))return this.setState(r);s=Bl.create(this,r,e),s.flags|=a;let d=this.viewState.scrollTarget;try{this.updateState=2;for(let u of e){if(d&&(d=d.map(u.changes)),u.scrollIntoView){let{main:f}=u.state.selection,{x:p,y:m}=this.state.facet(ce.cursorScrollMargin);d=new dr(f.empty?f:K.cursor(f.head,f.head>f.anchor?-1:1),"nearest","nearest",m,p)}for(let f of u.effects)f.is(pa)&&(d=f.value.clip(this.state))}this.viewState.update(s,d),this.bidiCache=Hl.update(this.bidiCache,s.changes),s.empty||(this.updatePlugins(s),this.inputState.update(s)),i=this.docView.update(s),this.state.facet(to)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(i,e.some(u=>u.isUserEvent("select.pointer")))}finally{this.updateState=0}if(s.startState.facet(wa)!=s.state.facet(wa)&&(this.viewState.mustMeasureContent=!0),(i||n||d||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),i&&this.docViewUpdate(),!s.empty)for(let u of this.state.facet(Ed))try{u(s)}catch(f){Rt(this.state,f,"update listener")}(l||c)&&Promise.resolve().then(()=>{l&&this.state==l.startState&&this.dispatch(l),c&&!$b(this,c)&&h.force&&cr(this.contentDOM,h.key,h.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 i=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new mm(this,e),this.plugins=e.facet(nr).map(n=>new tc(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new im(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}i&&this.focus(),this.requestMeasure()}updatePlugins(e){let i=e.startState.facet(nr),n=e.state.facet(nr);if(i!=n){let s=[];for(let r of n){let o=i.indexOf(r);if(o<0)s.push(new tc(r));else{let a=this.plugins[o];a.mustUpdate=e,s.push(a)}}for(let r of this.plugins)r.mustUpdate!=e&&r.destroy(this);this.plugins=s,this.pluginMap.clear()}else for(let s of this.plugins)s.mustUpdate=e;for(let s=0;s-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let i=null,n=this.viewState.scrollParent,s=this.viewState.getScrollOffset(),{scrollAnchorPos:r,scrollAnchorHeight:o}=this.viewState;Math.abs(s-this.viewState.scrollOffset)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(o<0)if(rb(n||this.win))r=-1,o=this.viewState.heightMap.height;else{let f=this.viewState.scrollAnchorAt(s);r=f.from,o=f.top}this.updateState=1;let l=this.viewState.measure();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 h=[];l&4||([this.measureRequests,h]=[h,this.measureRequests]);let c=h.map(f=>{try{return f.read(this)}catch(p){return Rt(this.state,p),wm}}),d=Bl.create(this,this.state,[]),u=!1;d.flags|=l,i?i.flags|=l:i=d,this.updateState=2,d.empty||(this.updatePlugins(d),this.inputState.update(d),this.updateAttrs(),u=this.docView.update(d),u&&this.docViewUpdate());for(let f=0;f1||p<-1)&&!(ae.ios&&this.inputState.lastIOSMomentumScroll>Date.now()-100)&&(n==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){s=s+p,n?n.scrollTop+=p:this.win.scrollBy(0,p),o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(i&&!i.empty)for(let a of this.state.facet(Ed))a(i)}get themeClasses(){return Ld+" "+(this.state.facet(zd)?Vb:Wb)+" "+this.state.facet(wa)}updateAttrs(){let e=ym(this,xb,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),i={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(un)?"true":"false",class:"cm-content",style:`${ae.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(i["aria-readonly"]="true"),ym(this,af,i);let n=this.observer.ignore(()=>{let s=Yp(this.contentDOM,this.contentAttrs,i),r=Yp(this.dom,this.editorAttrs,e);return s||r});return this.editorAttrs=e,this.contentAttrs=i,n}showAnnouncements(e){let i=!0;for(let n of e)for(let s of n.effects)if(s.is(ce.announce)){i&&(this.announceDOM.textContent=""),i=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=s.value}}mountStyles(){this.styleModules=this.state.facet(to);let e=this.state.facet(ce.cspNonce);es.mount(this.root,this.styleModules.concat(Sk).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 i=0;in.plugin==e)||null),i&&i.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,i,n){return rc(this,e,nm(this,e,i,n))}moveByGroup(e,i){return rc(this,e,nm(this,e,i,n=>L1(this,e.head,n)))}visualLineSide(e,i){let n=this.bidiSpans(e),s=this.textDirectionAt(e.from),r=n[i?n.length-1:0];return K.cursor(r.side(i,s)+e.from,r.forward(!i,s)?1:-1)}moveToLineBoundary(e,i,n=!0){return z1(this,e,i,n)}moveVertically(e,i,n){return rc(this,e,N1(this,e,i,n))}domAtPos(e,i=1){return this.docView.domAtPos(e,i)}posAtDOM(e,i=0){return this.docView.posFromDOM(e,i)}posAtCoords(e,i=!0){this.readMeasured();let n=Gd(this,e,i);return n&&n.pos}posAndSideAtCoords(e,i=!0){return this.readMeasured(),Gd(this,e,i)}coordsAtPos(e,i=1){this.readMeasured();let n=this.state.doc.lineAt(e),s=this.bidiSpans(n),r=s[Fi.find(s,e-n.from,-1,i)];return this.docView.coordsAt(e,i,r.dir==Ye.RTL)}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(_b)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>Pk)return db(e.length);let i=this.textDirectionAt(e.from),n;for(let r of this.bidiCache)if(r.from==e.from&&r.dir==i&&(r.fresh||cb(r.isolates,n=Jp(this,e))))return r.order;n||(n=Jp(this,e));let s=l1(e.text,i,n);return this.bidiCache.push(new Hl(e.from,e.to,i,n,!0,s)),s}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||ae.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{sb(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,i={}){var n,s,r,o;return pa.of(new dr(typeof e=="number"?K.cursor(e):e,(n=i.y)!==null&&n!==void 0?n:"nearest",(s=i.x)!==null&&s!==void 0?s:"nearest",(r=i.yMargin)!==null&&r!==void 0?r:5,(o=i.xMargin)!==null&&o!==void 0?o:5))}scrollSnapshot(){let{scrollTop:e,scrollLeft:i}=this.scrollDOM,n=this.viewState.scrollAnchorAt(e);return pa.of(new dr(K.cursor(n.from),"start","start",n.top-e,i,!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 Tt.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return Tt.define(()=>({}),{eventObservers:e})}static theme(e,i){let n=es.newName(),s=[wa.of(n),to.of(Nd(`.${n}`,e))];return i&&i.dark&&s.push(zd.of(!0)),s}static baseTheme(e){return Gr.lowest(to.of(Nd("."+Ld,e,Fb)))}static findFromDOM(e){var i;let n=e.querySelector(".cm-content"),s=n&&et.get(n)||et.get(e);return((i=s?.root)===null||i===void 0?void 0:i.view)||null}}ce.styleModule=to;ce.inputHandler=vb;ce.clipboardInputFilter=rf;ce.clipboardOutputFilter=of;ce.scrollHandler=wb;ce.focusChangeEffect=bb;ce.perLineTextDirection=_b;ce.exceptionSink=gb;ce.updateListener=Ed;ce.editable=un;ce.mouseSelectionStyle=mb;ce.dragMovesSelection=pb;ce.clickAddsSelectionRange=fb;ce.decorations=Th;ce.blockWrappers=Ob;ce.outerDecorations=lf;ce.atomicRanges=na;ce.bidiIsolatedRanges=Sb;ce.cursorScrollMargin=le.define({combine:t=>{let e=5,i=5;for(let n of t)typeof n=="number"?e=i=n:{x:e,y:i}=n;return{x:e,y:i}}});ce.scrollMargins=kb;ce.darkTheme=zd;ce.cspNonce=le.define({combine:t=>t.length?t[0]:""});ce.contentAttributes=af;ce.editorAttributes=xb;ce.lineWrapping=ce.contentAttributes.of({class:"cm-lineWrapping"});ce.announce=$e.define();const Pk=4096,wm={};class Hl{constructor(e,i,n,s,r,o){this.from=e,this.to=i,this.dir=n,this.isolates=s,this.fresh=r,this.order=o}static update(e,i){if(i.empty&&!e.some(r=>r.fresh))return e;let n=[],s=e.length?e[e.length-1].dir:Ye.LTR;for(let r=Math.max(0,e.length-10);r=0;s--){let r=n[s],o=typeof r=="function"?r(t):r;o&&tf(o,i)}return i}const $k=ae.mac?"mac":ae.windows?"win":ae.linux?"linux":"key";function Ak(t,e){const i=t.split(/-(?!$)/);let n=i[i.length-1];n=="Space"&&(n=" ");let s,r,o,a;for(let l=0;ln.concat(s),[]))),i}let qn=null;const Mk=4e3;function Gk(t,e=$k){let i=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")},r=(o,a,l,h,c)=>{var d,u;let f=i[o]||(i[o]=Object.create(null)),p=a.split(/ (?!$)/).map(b=>Ak(b,e));for(let b=1;b{let x=qn={view:O,prefix:_,scope:o};return setTimeout(()=>{qn==x&&(qn=null)},Mk),!0}]})}let m=p.join(" ");s(m,!1);let g=f[m]||(f[m]={preventDefault:!1,stopPropagation:!1,run:((u=(d=f._any)===null||d===void 0?void 0:d.run)===null||u===void 0?void 0:u.slice())||[]});l&&g.run.push(l),h&&(g.preventDefault=!0),c&&(g.stopPropagation=!0)};for(let o of t){let a=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let h of a){let c=i[h]||(i[h]=Object.create(null));c._any||(c._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:d}=o;for(let u in c)c[u].run.push(f=>d(f,Bd))}let l=o[e]||o.key;if(l)for(let h of a)r(h,l,o.run,o.preventDefault,o.stopPropagation),o.shift&&r(h,"Shift-"+l,o.shift,o.preventDefault,o.stopPropagation)}return i}let Bd=null;function Rk(t,e,i,n){Bd=e;let s=US(e),r=fs(s,0),o=Js(r)==s.length&&s!=" ",a="",l=!1,h=!1,c=!1;qn&&qn.view==i&&qn.scope==n&&(a=qn.prefix+" ",Eb.indexOf(e.keyCode)<0&&(h=!0,qn=null));let d=new Set,u=g=>{if(g){for(let b of g.run)if(!d.has(b)&&(d.add(b),b(i)))return g.stopPropagation&&(c=!0),!0;g.preventDefault&&(g.stopPropagation&&(c=!0),h=!0)}return!1},f=t[n],p,m;return f&&(u(f[a+ya(s,e,!o)])?l=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(ae.windows&&e.ctrlKey&&e.altKey)&&!(ae.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(p=ts[e.keyCode])&&p!=s?(u(f[a+ya(p,e,!0)])||e.shiftKey&&(m=Do[e.keyCode])!=s&&m!=p&&u(f[a+ya(m,e,!1)]))&&(l=!0):o&&e.shiftKey&&u(f[a+ya(s,e,!0)])&&(l=!0),!l&&u(f._any)&&(l=!0)),h&&(l=!0),l&&c&&e.stopPropagation(),Bd=null,l}function Om(t,e,i,n,s){e.lastIndex=0;for(let r=t.iterRange(i,n),o=i,a;!r.next().done;o+=r.value.length)if(!r.lineBreak)for(;a=e.exec(r.value);)s(o+a.index,a)}function zk(t,e){let i=t.visibleRanges;if(i.length==1&&i[0].from==t.viewport.from&&i[0].to==t.viewport.to)return i;let n=[];for(let{from:s,to:r}of i)s=Math.max(t.state.doc.lineAt(s).from,s-e),r=Math.min(t.state.doc.lineAt(r).to,r+e),n.length&&n[n.length-1].to>=s?n[n.length-1].to=r:n.push({from:s,to:r});return n}class Lk{constructor(e){const{regexp:i,decoration:n,decorate:s,boundary:r,maxLength:o=1e3}=e;if(!i.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=i,s)this.addMatch=(a,l,h,c)=>s(c,h,h+a[0].length,a,l);else if(typeof n=="function")this.addMatch=(a,l,h,c)=>{let d=n(a,l,h);d&&c(h,h+a[0].length,d)};else if(n)this.addMatch=(a,l,h,c)=>c(h,h+a[0].length,n);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=r,this.maxLength=o}createDeco(e){let i=new Ms,n=i.add.bind(i);for(let{from:s,to:r}of zk(e,this.maxLength))Om(e.state.doc,this.regexp,s,r,(o,a)=>this.addMatch(a,e,o,n));return i.finish()}updateDeco(e,i){let n=1e9,s=-1;return e.docChanged&&e.changes.iterChanges((r,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,i.map(e.changes),n,s):i}updateRange(e,i,n,s){for(let r of e.visibleRanges){let o=Math.max(r.from,n),a=Math.min(r.to,s);if(a>=o){let l=e.state.doc.lineAt(o),h=l.tol.from;o--)if(this.boundary.test(l.text[o-1-l.from])){c=o;break}for(;au.push(b.range(m,g));if(l==h)for(this.regexp.lastIndex=c-l.from;(f=this.regexp.exec(l.text))&&f.indexthis.addMatch(g,e,m,p));i=i.update({filterFrom:c,filterTo:d,filter:(m,g)=>md,add:u})}}return i}}const xa="-10000px";class Qb{constructor(e,i,n,s){this.facet=i,this.createTooltipView=n,this.removeTooltipView=s,this.input=e.state.facet(i),this.tooltips=this.input.filter(o=>o);let r=null;this.tooltipViews=this.tooltips.map(o=>r=n(o,r))}update(e,i){var n;let s=e.state.facet(this.facet),r=s.filter(l=>l);if(s===this.input){for(let l of this.tooltipViews)l.update&&l.update(e);return!1}let o=[],a=i?[]:null;for(let l=0;li[h]=l),i.length=a.length),this.input=s,this.tooltips=r,this.tooltipViews=o,!0}}function Nk(t){let e=t.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const lc=le.define({combine:t=>{var e,i,n;return{position:ae.ios?"absolute":((e=t.find(s=>s.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((i=t.find(s=>s.parent))===null||i===void 0?void 0:i.parent)||null,tooltipSpace:((n=t.find(s=>s.tooltipSpace))===null||n===void 0?void 0:n.tooltipSpace)||Nk}}}),Sm=new WeakMap,ff=Tt.fromClass(class{constructor(t){this.view=t,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=t.state.facet(lc);this.position=e.position,this.parent=e.parent,this.classes=t.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 Qb(t,ra,(i,n)=>this.createTooltip(i,n),i=>{this.resizeObserver&&this.resizeObserver.unobserve(i.dom),i.dom.remove()}),this.above=this.manager.tooltips.map(i=>!!i.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(i=>{Date.now()>this.lastTransaction-50&&i.length>0&&i[i.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),t.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 t of this.manager.tooltipViews)this.intersectionObserver.observe(t.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(t){t.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(t,this.above);e&&this.observeIntersection();let i=e||t.geometryChanged,n=t.state.facet(lc);if(n.position!=this.position&&!this.madeAbsolute){this.position=n.position;for(let s of this.manager.tooltipViews)s.dom.style.position=this.position;i=!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);i=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);i&&this.maybeMeasure()}createTooltip(t,e){let i=t.create(this.view),n=e?e.dom:null;if(i.dom.classList.add("cm-tooltip"),t.arrow&&!i.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let s=document.createElement("div");s.className="cm-tooltip-arrow",i.dom.appendChild(s)}return i.dom.style.position=this.position,i.dom.style.top=xa,i.dom.style.left="0px",this.container.insertBefore(i.dom,n),i.mount&&i.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(i.dom),i}destroy(){var t,e,i;this.view.win.removeEventListener("resize",this.measureSoon);for(let n of this.manager.tooltipViews)n.dom.remove(),(t=n.destroy)===null||t===void 0||t.call(n);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(i=this.intersectionObserver)===null||i===void 0||i.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let t=1,e=1,i=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:r}=this.manager.tooltipViews[0];if(ae.safari){let o=r.getBoundingClientRect();i=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else i=!!r.offsetParent&&r.offsetParent!=this.container.ownerDocument.body}if(i||this.position=="absolute")if(this.parent){let r=this.parent.getBoundingClientRect();r.width&&r.height&&(t=r.width/this.parent.offsetWidth,e=r.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:e}=this.view.viewState);let n=this.view.scrollDOM.getBoundingClientRect(),s=hf(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((r,o)=>{let a=this.manager.tooltipViews[o];return a.getCoords?a.getCoords(r.pos):this.view.coordsAtPos(r.pos)}),size:this.manager.tooltipViews.map(({dom:r})=>r.getBoundingClientRect()),space:this.view.state.facet(lc).tooltipSpace(this.view),scaleX:t,scaleY:e,makeAbsolute:i}}writeMeasure(t){var e;if(t.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let a of this.manager.tooltipViews)a.dom.style.position="absolute"}let{visible:i,space:n,scaleX:s,scaleY:r}=t,o=[];for(let a=0;a=Math.min(i.bottom,n.bottom)||d.rightMath.min(i.right,n.right)+.1)){c.style.top=xa;continue}let f=l.arrow?h.dom.querySelector(".cm-tooltip-arrow"):null,p=f?7:0,m=u.right-u.left,g=(e=Sm.get(h))!==null&&e!==void 0?e:u.bottom-u.top,b=h.offset||Wk,_=this.view.textDirection==Ye.LTR,O=u.width>n.right-n.left?_?n.left:n.right-u.width:_?Math.max(n.left,Math.min(d.left-(f?14:0)+b.x,n.right-m)):Math.min(Math.max(n.left,d.left-m+(f?14:0)-b.x),n.right-m),x=this.above[a];!l.strictSide&&(x?d.top-g-p-b.yn.bottom)&&x==n.bottom-d.bottom>d.top-n.top&&(x=this.above[a]=!x);let T=(x?d.top-n.top:n.bottom-d.bottom)-p;if(TO&&k.topy&&(y=x?k.top-g-2-p:k.bottom+p+2);if(this.position=="absolute"?(c.style.top=(y-t.parent.top)/r+"px",km(c,(O-t.parent.left)/s)):(c.style.top=y/r+"px",km(c,O/s)),f){let k=d.left+(_?b.x:-b.x)-(O+14-7);f.style.left=k/s+"px"}h.overlap!==!0&&o.push({left:O,top:y,right:C,bottom:y+g}),c.classList.toggle("cm-tooltip-above",x),c.classList.toggle("cm-tooltip-below",!x),h.positioned&&h.positioned(t.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 t of this.manager.tooltipViews)t.dom.style.top=xa}},{eventObservers:{scroll(){this.maybeMeasure()}}});function km(t,e){let i=parseInt(t.style.left,10);(isNaN(i)||Math.abs(e-i)>1)&&(t.style.left=e+"px")}const Bk=ce.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"}}}),Wk={x:0,y:0},ra=le.define({enables:[ff,Bk]}),Io=le.define({combine:t=>t.reduce((e,i)=>e.concat(i),[])});class Ah{static create(e){return new Ah(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Qb(e,Io,(i,n)=>this.createHostedView(i,n),i=>i.dom.remove())}createHostedView(e,i){let n=e.create(this.view);return n.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(n.dom,i?i.dom.nextSibling:this.dom.firstChild),this.mounted&&n.mount&&n.mount(this.view),n}mount(e){for(let i of this.manager.tooltipViews)i.mount&&i.mount(e);this.mounted=!0}positioned(e){for(let i of this.manager.tooltipViews)i.positioned&&i.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let i of this.manager.tooltipViews)(e=i.destroy)===null||e===void 0||e.call(i)}passProp(e){let i;for(let n of this.manager.tooltipViews){let s=n[e];if(s!==void 0){if(i===void 0)i=s;else if(i!==s)return}}return i}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 Vk=ra.compute([Io],t=>{let e=t.facet(Io);return e.length===0?null:{pos:Math.min(...e.map(i=>i.pos)),end:Math.max(...e.map(i=>{var n;return(n=i.end)!==null&&n!==void 0?n:i.pos})),create:Ah.create,above:e[0].above,arrow:e.some(i=>i.arrow)}}),Fk=le.define();class Qk{constructor(e,i,n,s,r,o){this.view=e,this.source=i,this.field=n,this.locked=s,this.setHover=r,this.hoverTime=o,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(e){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;eo.bottom||i.xo.right+e.defaultCharacterWidth)return;let a=e.bidiSpans(e.state.doc.lineAt(s)).find(h=>h.from<=s&&h.to>=s),l=a&&a.dir==Ye.RTL?-1:1;r=i.x{if(a&&!(Array.isArray(a)&&!a.length)){let l=Array.isArray(a)?a:[a];s&&this.locked.set(l,s),e.dispatch({effects:this.setHover.of(l)})}};if(r&&"then"in r){let a=this.pending={pos:i};r.then(l=>{this.pending==a&&(this.pending=null,o(l))},l=>Rt(e.state,l,"hover tooltip"))}else o(r)}get tooltip(){let e=this.view.plugin(ff),i=e?e.manager.tooltips.findIndex(n=>n.create==Ah.create):-1;return i>-1?e.manager.tooltipViews[i]:null}mousemove(e){var i,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:r}=this;if(s.length&&!this.locked.has(s)&&r&&!Hk(r.dom,e)||this.pending){let{pos:o}=s[0]||this.pending,a=(n=(i=s[0])===null||i===void 0?void 0:i.end)!==null&&n!==void 0?n:o;(o==a?this.view.posAtCoords(this.lastMove)!=o:!qk(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:i}=this;if(i.length&&!this.locked.has(i)){let{tooltip:n}=this;n&&n.dom.contains(e.relatedTarget)?this.watchTooltipLeave(n.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let i=n=>{e.removeEventListener("mouseleave",i);let{active:s}=this;s.length&&!this.locked.has(s)&&!this.view.dom.contains(n.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",i)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const Oa=4;function Hk(t,e){let{left:i,right:n,top:s,bottom:r}=t.getBoundingClientRect(),o;if(o=t.querySelector(".cm-tooltip-arrow")){let a=o.getBoundingClientRect();s=Math.min(a.top,s),r=Math.max(a.bottom,r)}return e.clientX>=i-Oa&&e.clientX<=n+Oa&&e.clientY>=s-Oa&&e.clientY<=r+Oa}function qk(t,e,i,n,s,r){let o=t.scrollDOM.getBoundingClientRect(),a=t.documentTop+t.documentPadding.top+t.contentHeight;if(o.left>n||o.rights||Math.min(o.bottom,a)=e&&l<=i}function Uk(t,e={}){let i=$e.define(),n=new WeakMap,s=Dt.define({create(){return[]},update(o,a){let l=n.get(o);if(o.length&&(e.hideOnChange&&(a.docChanged||a.selection)?o=[]:l&&l(a)?o=[]:e.hideOn&&(o=o.filter(h=>!e.hideOn(a,h)))),a.docChanged&&o.length){let h=[];for(let c of o){let d=a.changes.mapPos(c.pos,-1,kt.TrackDel);if(d!=null){let u=Object.assign(Object.create(null),c);u.pos=d,u.end!=null&&(u.end=a.changes.mapPos(u.end)),h.push(u)}}o=h}for(let h of a.effects)h.is(i)&&(o=h.value,l=void 0),(h.is(qb)&&!h.value||h.value==s)&&(o=[]);return o.length&&l&&n.set(o,l),o},provide:o=>Io.from(o)});const r=Tt.define(o=>new Qk(o,t,s,n,i,e.hoverTime||300));return{active:s,extension:[s,r,Fk.of(r),Vk]}}function Hb(t,e){let i=t.plugin(ff);if(!i)return null;let n=i.manager.tooltips.indexOf(e);return n<0?null:i.manager.tooltipViews[n]}function jk(t){return t.facet(Io).some(e=>e)}const qb=$e.define(),Xk=qb.of(null),Cm=le.define({combine(t){let e,i;for(let n of t)e=e||n.topContainer,i=i||n.bottomContainer;return{topContainer:e,bottomContainer:i}}});function Yk(t,e){let i=t.plugin(Ub),n=i?i.specs.indexOf(e):-1;return n>-1?i.panels[n]:null}const Ub=Tt.fromClass(class{constructor(t){this.input=t.state.facet(Wd),this.specs=this.input.filter(i=>i),this.panels=this.specs.map(i=>i(t));let e=t.state.facet(Cm);this.top=new Sa(t,!0,e.topContainer),this.bottom=new Sa(t,!1,e.bottomContainer),this.top.sync(this.panels.filter(i=>i.top)),this.bottom.sync(this.panels.filter(i=>!i.top));for(let i of this.panels)i.dom.classList.add("cm-panel"),i.mount&&i.mount()}update(t){let e=t.state.facet(Cm);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new Sa(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new Sa(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let i=t.state.facet(Wd);if(i!=this.input){let n=i.filter(l=>l),s=[],r=[],o=[],a=[];for(let l of n){let h=this.specs.indexOf(l),c;h<0?(c=l(t.view),a.push(c)):(c=this.panels[h],c.update&&c.update(t)),s.push(c),(c.top?r:o).push(c)}this.specs=n,this.panels=s,this.top.sync(r),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(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>ce.scrollMargins.of(e=>{let i=e.plugin(t);return i&&{top:i.top.scrollMargin(),bottom:i.bottom.scrollMargin()}})});class Sa{constructor(e,i,n){this.view=e,this.top=i,this.container=n,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let i of this.panels)i.destroy&&e.indexOf(i)<0&&i.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";let i=this.container||this.view.dom;i.insertBefore(this.dom,this.top?i.firstChild:null)}let e=this.dom.firstChild;for(let i of this.panels)if(i.dom.parentNode==this.dom){for(;e!=i.dom;)e=Tm(e);e=e.nextSibling}else this.dom.insertBefore(i.dom,e);for(;e;)e=Tm(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 Tm(t){let e=t.nextSibling;return t.remove(),e}const Wd=le.define({enables:Ub});class ns extends Jn{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}ns.prototype.elementClass="";ns.prototype.toDOM=void 0;ns.prototype.mapMode=kt.TrackBefore;ns.prototype.startSide=ns.prototype.endSide=-1;ns.prototype.point=!0;const hc=le.define(),Zk=le.define(),Kk={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>Ae.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},go=le.define();function Jk(t){return[jb(),go.of({...Kk,...t})]}const Dm=le.define({combine:t=>t.some(e=>e)});function jb(t){return[eC]}const eC=Tt.fromClass(class{constructor(t){this.view=t,this.domAfter=null,this.prevViewport=t.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=t.state.facet(go).map(e=>new $m(t,e)),this.fixed=!t.state.facet(Dm);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),t.scrollDOM.insertBefore(this.dom,t.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(t){if(this.updateGutters(t)){let e=this.prevViewport,i=t.view.viewport,n=Math.min(e.to,i.to)-Math.max(e.from,i.from);this.syncGutters(n<(i.to-i.from)*.8)}if(t.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(Dm)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let i=Ae.iter(this.view.state.facet(hc),this.view.viewport.from),n=[],s=this.gutters.map(r=>new tC(r,this.view.viewport,-this.view.documentPadding.top));for(let r of this.view.viewportLineBlocks)if(n.length&&(n=[]),Array.isArray(r.type)){let o=!0;for(let a of r.type)if(a.type==Ft.Text&&o){Vd(i,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(r.type==Ft.Text){Vd(i,n,r.from);for(let o of s)o.line(this.view,r,n)}else if(r.widget)for(let o of s)o.widget(this.view,r);for(let r of s)r.finish();t&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(t){let e=t.startState.facet(go),i=t.state.facet(go),n=t.docChanged||t.heightChanged||t.viewportChanged||!Ae.eq(t.startState.facet(hc),t.state.facet(hc),t.view.viewport.from,t.view.viewport.to);if(e==i)for(let s of this.gutters)s.update(t)&&(n=!0);else{n=!0;let s=[];for(let r of i){let o=e.indexOf(r);o<0?s.push(new $m(this.view,r)):(this.gutters[o].update(t),s.push(this.gutters[o]))}for(let r of this.gutters)r.dom.remove(),s.indexOf(r)<0&&r.destroy();for(let r of s)r.config.side=="after"?this.getDOMAfter().appendChild(r.dom):this.dom.appendChild(r.dom);this.gutters=s}return n}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:t=>ce.scrollMargins.of(e=>{let i=e.plugin(t);if(!i||i.gutters.length==0||!i.fixed)return null;let n=i.dom.offsetWidth*e.scaleX,s=i.domAfter?i.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==Ye.LTR?{left:n,right:s}:{right:n,left:s}})});function Pm(t){return Array.isArray(t)?t:[t]}function Vd(t,e,i){for(;t.value&&t.from<=i;)t.from==i&&e.push(t.value),t.next()}class tC{constructor(e,i,n){this.gutter=e,this.height=n,this.i=0,this.cursor=Ae.iter(e.markers,i.from)}addElement(e,i,n){let{gutter:s}=this,r=(i.top-this.height)/e.scaleY,o=i.height/e.scaleY;if(this.i==s.elements.length){let a=new Xb(e,o,r,n);s.elements.push(a),s.dom.appendChild(a.dom)}else s.elements[this.i].update(e,o,r,n);this.height=i.bottom,this.i++}line(e,i,n){let s=[];Vd(this.cursor,s,i.from),n.length&&(s=s.concat(n));let r=this.gutter.config.lineMarker(e,i,s);r&&s.unshift(r);let o=this.gutter;s.length==0&&!o.config.renderEmptyElements||this.addElement(e,i,s)}widget(e,i){let n=this.gutter.config.widgetMarker(e,i.widget,i),s=n?[n]:null;for(let r of e.state.facet(Zk)){let o=r(e,i.widget,i);o&&(s||(s=[])).push(o)}s&&this.addElement(e,i,s)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let i=e.elements.pop();e.dom.removeChild(i.dom),i.destroy()}}}class $m{constructor(e,i){this.view=e,this.config=i,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 i.domEventHandlers)this.dom.addEventListener(n,s=>{let r=s.target,o;if(r!=this.dom&&this.dom.contains(r)){for(;r.parentNode!=this.dom;)r=r.parentNode;let l=r.getBoundingClientRect();o=(l.top+l.bottom)/2}else o=s.clientY;let a=e.lineBlockAtHeight(o-e.documentTop);i.domEventHandlers[n](e,a,s)&&s.preventDefault()});this.markers=Pm(i.markers(e)),i.initialSpacer&&(this.spacer=new Xb(e,0,0,[i.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let i=this.markers;if(this.markers=Pm(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!Ae.eq(this.markers,i,n.from,n.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class Xb{constructor(e,i,n,s){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,i,n,s)}update(e,i,n,s){this.height!=i&&(this.height=i,this.dom.style.height=i+"px"),this.above!=n&&(this.dom.style.marginTop=(this.above=n)?n+"px":""),iC(this.markers,s)||this.setMarkers(e,s)}setMarkers(e,i){let n="cm-gutterElement",s=this.dom.firstChild;for(let r=0,o=0;;){let a=o,l=rr(a,l,h)||o(a,l,h):o}return n}})}});class cc extends ns{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function dc(t,e){return t.state.facet(sr).formatNumber(e,t.state)}const rC=go.compute([sr],t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(nC)},lineMarker(e,i,n){return n.some(s=>s.toDOM)?null:new cc(dc(e,e.state.doc.lineAt(i.from).number))},widgetMarker:(e,i,n)=>{for(let s of e.state.facet(sC)){let r=s(e,i,n);if(r)return r}return null},lineMarkerChange:e=>e.startState.facet(sr)!=e.state.facet(sr),initialSpacer(e){return new cc(dc(e,Am(e.state.doc.lines)))},updateSpacer(e,i){let n=dc(i.view,Am(i.view.state.doc.lines));return n==e.number?e:new cc(n)},domEventHandlers:t.facet(sr).domEventHandlers,side:"before"}));function oC(t={}){return[sr.of(t),jb(),rC]}function Am(t){let e=9;for(;e{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=Ht.match(e)),i=>{let n=e(i);return n===void 0?null:[this,n]}}}Te.closedBy=new Te({deserialize:t=>t.split(" ")});Te.openedBy=new Te({deserialize:t=>t.split(" ")});Te.group=new Te({deserialize:t=>t.split(" ")});Te.isolate=new Te({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}});Te.contextHash=new Te({perNode:!0});Te.lookAhead=new Te({perNode:!0});Te.mounted=new Te({perNode:!0});class vo{constructor(e,i,n,s=!1){this.tree=e,this.overlay=i,this.parser=n,this.bracketed=s}static get(e){return e&&e.props&&e.props[Te.mounted.id]}}const lC=Object.create(null);class Ht{constructor(e,i,n,s=0){this.name=e,this.props=i,this.id=n,this.flags=s}static define(e){let i=e.props&&e.props.length?Object.create(null):lC,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),s=new Ht(e.name||"",i,e.id,n);if(e.props){for(let r of e.props)if(Array.isArray(r)||(r=r(s)),r){if(r[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");i[r[0].id]=r[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 i=this.prop(Te.group);return i?i.indexOf(e)>-1:!1}return this.id==e}static match(e){let i=Object.create(null);for(let n in e)for(let s of n.split(" "))i[s]=e[n];return n=>{for(let s=n.prop(Te.group),r=-1;r<(s?s.length:0);r++){let o=i[r<0?n.name:s[r]];if(o)return o}}}}Ht.none=new Ht("",Object.create(null),0,8);class pf{constructor(e){this.types=e;for(let i=0;i0;for(let l=this.cursor(o|Ke.IncludeAnonymous);;){let h=!1;if(l.from<=r&&l.to>=s&&(!a&&l.type.isAnonymous||i(l)!==!1)){if(l.firstChild())continue;h=!0}for(;h&&n&&(a||!l.type.isAnonymous)&&n(l),!l.nextSibling();){if(!l.parent())return;h=!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 i in this.props)e.push([+i,this.props[i]]);return e}balance(e={}){return this.children.length<=8?this:vf(Ht.none,this.children,this.positions,0,this.children.length,0,this.length,(i,n,s)=>new rt(this.type,i,n,s,this.propValues),e.makeTree||((i,n,s)=>new rt(Ht.none,i,n,s)))}static build(e){return uC(e)}}rt.empty=new rt(Ht.none,[],[],0);class mf{constructor(e,i){this.buffer=e,this.index=i}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 mf(this.buffer,this.index)}}class ss{constructor(e,i,n){this.buffer=e,this.length=i,this.set=n}get type(){return Ht.none}toString(){let e=[];for(let i=0;i0));l=o[l+3]);return a}slice(e,i,n){let s=this.buffer,r=new Uint16Array(i-e),o=0;for(let a=e,l=0;a=e&&ie;case 1:return i<=e&&n>e;case 2:return n>e;case 4:return!0}}function Eo(t,e,i,n){for(var s;t.from==t.to||(i<1?t.from>=e:t.from>e)||(i>-1?t.to<=e:t.to0?a.length:-1;e!=h;e+=i){let c=a[e],d=l[e]+o.from,u;if(!(!(r&Ke.EnterBracketed&&c instanceof rt&&(u=vo.get(c))&&!u.overlay&&u.bracketed&&n>=d&&n<=d+c.length)&&!Zb(s,n,d,d+c.length))){if(c instanceof ss){if(r&Ke.ExcludeBuffers)continue;let f=c.findChild(0,c.buffer.length,i,n-d,s);if(f>-1)return new Qi(new hC(o,c,e,d),null,f)}else if(r&Ke.IncludeAnonymous||!c.type.isAnonymous||gf(c)){let f;if(!(r&Ke.IgnoreMounts)&&(f=vo.get(c))&&!f.overlay)return new Qt(f.tree,d,e,o);let p=new Qt(c,d,e,o);return r&Ke.IncludeAnonymous||!p.type.isAnonymous?p:p.nextChild(i<0?c.children.length-1:0,i,n,s,r)}}}if(r&Ke.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+i:e=i<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,i,n=0){let s;if(!(n&Ke.IgnoreOverlays)&&(s=vo.get(this._tree))&&s.overlay){let r=e-this.from,o=n&Ke.EnterBracketed&&s.bracketed;for(let{from:a,to:l}of s.overlay)if((i>0||o?a<=r:a=r:l>r))return new Qt(s.tree,s.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,i,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 Em(t,e,i,n){let s=t.cursor(),r=[];if(!s.firstChild())return r;if(i!=null){for(let o=!1;!o;)if(o=s.type.is(i),!s.nextSibling())return r}for(;;){if(n!=null&&s.type.is(n))return r;if(s.type.is(e)&&r.push(s.node),!s.nextSibling())return n==null?r:[]}}function Fd(t,e,i=e.length-1){for(let n=t;i>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[i]&&e[i]!=n.name)return!1;i--}}return!0}class hC{constructor(e,i,n,s){this.parent=e,this.buffer=i,this.index=n,this.start=s}}class Qi extends Kb{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,i,n){super(),this.context=e,this._parent=i,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,i,n){let{buffer:s}=this.context,r=s.findChild(this.index+4,s.buffer[this.index+3],e,i-this.context.start,n);return r<0?null:new Qi(this.context,this,r)}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,i,n=0){if(n&Ke.ExcludeBuffers)return null;let{buffer:s}=this.context,r=s.findChild(this.index+4,s.buffer[this.index+3],i>0?1:-1,e-this.context.start,i);return r<0?null:new Qi(this.context,this,r)}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,i=e.buffer[this.index+3];return i<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new Qi(this.context,this._parent,i):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,i=this._parent?this._parent.index+4:0;return this.index==i?this.externalSibling(-1):new Qi(this.context,this._parent,e.findChild(i,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],i=[],{buffer:n}=this.context,s=this.index+4,r=n.buffer[this.index+3];if(r>s){let o=n.buffer[this.index+1];e.push(n.slice(s,r,o)),i.push(0)}return new rt(this.type,e,i,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function Jb(t){if(!t.length)return null;let e=0,i=t[0];for(let r=1;ri.from||o.to=e){let a=new Qt(o.tree,o.overlay[0].from+r.from,-1,r);(s||(s=[n])).push(Eo(a,e,i,!1))}}return s?Jb(s):n}class Qd{get name(){return this.type.name}constructor(e,i=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=i&~Ke.EnterBracketed,e instanceof Qt)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,i){this.index=e;let{start:n,buffer:s}=this.buffer;return this.type=i||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 Qt?(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,i,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,i,n,this.mode));let{buffer:s}=this.buffer,r=s.findChild(this.index+4,s.buffer[this.index+3],e,i-this.buffer.start,n);return r<0?!1:(this.stack.push(this.index),this.yieldBuf(r))}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,i,n=this.mode){return this.buffer?n&Ke.ExcludeBuffers?!1:this.enterChild(1,e,i):this.yield(this._tree.enter(e,i,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Ke.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Ke.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:i}=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(i.findChild(s,this.index,-1,0,4))}else{let s=i.buffer[this.index+3];if(s<(n<0?i.buffer.length:i.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 i,n,{buffer:s}=this;if(s){if(e>0){if(this.index-1)for(let r=i+e,o=e<0?-1:n._tree.children.length;r!=o;r+=e){let a=n._tree.children[r];if(this.mode&Ke.IncludeAnonymous||a instanceof ss||!a.type.isAnonymous||gf(a))return!1}return!0}move(e,i){if(i&&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,i=0){for(;(this.from==this.to||(i<1?this.from>=e:this.from>e)||(i>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==s){if(s==this.index)return o;i=o,n=r+1;break e}s=this.stack[--r]}for(let s=n;s=0;r--){if(r<0)return Fd(this._tree,e,s);let o=n[i.buffer[this.stack[r]]];if(!o.isAnonymous){if(e[s]&&e[s]!=o.name)return!1;s--}}return!0}}function gf(t){return t.children.some(e=>e instanceof ss||!e.type.isAnonymous||gf(e))}function uC(t){var e;let{buffer:i,nodeSet:n,maxBufferLength:s=Yb,reused:r=[],minRepeatType:o=n.types.length}=t,a=Array.isArray(i)?new mf(i,i.length):i,l=n.types,h=0,c=0;function d(T,y,C,k,$,S){let{id:D,start:A,end:E,size:M}=a,U=c,z=h;if(M<0)if(a.next(),M==-1){let H=r[D];C.push(H),k.push(A-T);return}else if(M==-3){h=D;return}else if(M==-4){c=D;return}else throw new RangeError(`Unrecognized record size: ${M}`);let R=l[D],N,F,J=A-T;if(E-A<=s&&(F=g(a.pos-y,$))){let H=new Uint16Array(F.size-F.skip),X=a.pos-F.size,ue=H.length;for(;a.pos>X;)ue=b(F.start,H,ue);N=new ss(H,E-F.start,n),J=F.start-T}else{let H=a.pos-M;a.next();let X=[],ue=[],pe=D>=o?D:-1,we=0,ye=E;for(;a.pos>H;)pe>=0&&a.id==pe&&a.size>=0?(a.end<=ye-s&&(p(X,ue,A,we,a.end,ye,pe,U,z),we=X.length,ye=a.end),a.next()):S>2500?u(A,H,X,ue):d(A,H,X,ue,pe,S+1);if(pe>=0&&we>0&&we-1&&we>0){let De=f(R,z);N=vf(R,X,ue,0,X.length,0,E-A,De,De)}else N=m(R,X,ue,E-A,U-E,z)}C.push(N),k.push(J)}function u(T,y,C,k){let $=[],S=0,D=-1;for(;a.pos>y;){let{id:A,start:E,end:M,size:U}=a;if(U>4)a.next();else{if(D>-1&&E=0;M-=3)A[U++]=$[M],A[U++]=$[M+1]-E,A[U++]=$[M+2]-E,A[U++]=U;C.push(new ss(A,$[2]-E,n)),k.push(E-T)}}function f(T,y){return(C,k,$)=>{let S=0,D=C.length-1,A,E;if(D>=0&&(A=C[D])instanceof rt){if(!D&&A.type==T&&A.length==$)return A;(E=A.prop(Te.lookAhead))&&(S=k[D]+A.length+E)}return m(T,C,k,$,S,y)}}function p(T,y,C,k,$,S,D,A,E){let M=[],U=[];for(;T.length>k;)M.push(T.pop()),U.push(y.pop()+C-$);T.push(m(n.types[D],M,U,S-$,A-S,E)),y.push($-C)}function m(T,y,C,k,$,S,D){if(S){let A=[Te.contextHash,S];D=D?[A].concat(D):[A]}if($>25){let A=[Te.lookAhead,$];D=D?[A].concat(D):[A]}return new rt(T,y,C,k,D)}function g(T,y){let C=a.fork(),k=0,$=0,S=0,D=C.end-s,A={size:0,start:0,skip:0};e:for(let E=C.pos-T;C.pos>E;){let M=C.size;if(C.id==y&&M>=0){A.size=k,A.start=$,A.skip=S,S+=4,k+=4,C.next();continue}let U=C.pos-M;if(M<0||U=o?4:0,R=C.start;for(C.next();C.pos>U;){if(C.size<0)if(C.size==-3||C.size==-4)z+=4;else break e;else C.id>=o&&(z+=4);C.next()}$=R,k+=M,S+=z}return(y<0||k==T)&&(A.size=k,A.start=$,A.skip=S),A.size>4?A:void 0}function b(T,y,C){let{id:k,start:$,end:S,size:D}=a;if(a.next(),D>=0&&k4){let E=a.pos-(D-4);for(;a.pos>E;)C=b(T,y,C)}y[--C]=A,y[--C]=S-T,y[--C]=$-T,y[--C]=k}else D==-3?h=k:D==-4&&(c=k);return C}let _=[],O=[];for(;a.pos>0;)d(t.start||0,t.bufferStart||0,_,O,-1,0);let x=(e=t.length)!==null&&e!==void 0?e:_.length?O[0]+_[0].length:0;return new rt(l[t.topID],_.reverse(),O.reverse(),x)}const Mm=new WeakMap;function al(t,e){if(!t.isAnonymous||e instanceof ss||e.type!=t)return 1;let i=Mm.get(e);if(i==null){i=1;for(let n of e.children){if(n.type!=t||!(n instanceof rt)){i=1;break}i+=al(t,n)}Mm.set(e,i)}return i}function vf(t,e,i,n,s,r,o,a,l){let h=0;for(let p=n;p=c)break;y+=C}if(O==x+1){if(y>c){let C=p[x];f(C.children,C.positions,0,C.children.length,m[x]+_);continue}d.push(p[x])}else{let C=m[O-1]+p[O-1].length-T;d.push(vf(t,p,m,x,O,T,C,null,l))}u.push(T+_-r)}}return f(e,i,n,s,0),(a||l)(d,u,o)}class fC{constructor(){this.map=new WeakMap}setBuffer(e,i,n){let s=this.map.get(e);s||this.map.set(e,s=new Map),s.set(i,n)}getBuffer(e,i){let n=this.map.get(e);return n&&n.get(i)}set(e,i){e instanceof Qi?this.setBuffer(e.context.buffer,e.index,i):e instanceof Qt&&this.map.set(e.tree,i)}get(e){return e instanceof Qi?this.getBuffer(e.context.buffer,e.index):e instanceof Qt?this.map.get(e.tree):void 0}cursorSet(e,i){e.buffer?this.setBuffer(e.buffer.buffer,e.index,i):this.map.set(e.tree,i)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class ks{constructor(e,i,n,s,r=!1,o=!1){this.from=e,this.to=i,this.tree=n,this.offset=s,this.open=(r?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,i=[],n=!1){let s=[new ks(0,e.length,e,0,!1,n)];for(let r of i)r.to>e.length&&s.push(r);return s}static applyChanges(e,i,n=128){if(!i.length)return e;let s=[],r=1,o=e.length?e[0]:null;for(let a=0,l=0,h=0;;a++){let c=a=n)for(;o&&o.from=u.from||d<=u.to||h){let f=Math.max(u.from,l)-h,p=Math.min(u.to,d)-h;u=f>=p?null:new ks(f,p,u.tree,u.offset+h,a>0,!!c)}if(u&&s.push(u),o.to>d)break;o=rnew uc(s.from,s.to)):[new uc(0,0)]:[new uc(0,e.length)],this.createParse(e,i||[],n)}parse(e,i,n){let s=this.startParse(e,i,n);for(;;){let r=s.advance();if(r)return r}}}class pC{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,i){return this.string.slice(e,i)}}new Te({perNode:!0});let mC=0;class ti{constructor(e,i,n,s){this.name=e,this.set=i,this.base=n,this.modified=s,this.id=mC++}toString(){let{name:e}=this;for(let i of this.modified)i.name&&(e=`${i.name}(${e})`);return e}static define(e,i){let n=typeof e=="string"?e:"?";if(e instanceof ti&&(i=e),i?.base)throw new Error("Can not derive from a modified tag");let s=new ti(n,[],null,[]);if(s.set.push(s),i)for(let r of i.set)s.set.push(r);return s}static defineModifier(e){let i=new ql(e);return n=>n.modified.indexOf(i)>-1?n:ql.get(n.base||n,n.modified.concat(i).sort((s,r)=>s.id-r.id))}}let gC=0;class ql{constructor(e){this.name=e,this.instances=[],this.id=gC++}static get(e,i){if(!i.length)return e;let n=i[0].instances.find(a=>a.base==e&&vC(i,a.modified));if(n)return n;let s=[],r=new ti(e.name,s,e,i);for(let a of i)a.instances.push(r);let o=bC(i);for(let a of e.set)if(!a.modified.length)for(let l of o)s.push(ql.get(a,l));return r}}function vC(t,e){return t.length==e.length&&t.every((i,n)=>i==e[n])}function bC(t){let e=[[]];for(let i=0;in.length-i.length)}function t_(t){let e=Object.create(null);for(let i in t){let n=t[i];Array.isArray(n)||(n=[n]);for(let s of i.split(" "))if(s){let r=[],o=2,a=s;for(let d=0;;){if(a=="..."&&d>0&&d+3==s.length){o=1;break}let u=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(a);if(!u)throw new RangeError("Invalid path: "+s);if(r.push(u[0]=="*"?"":u[0][0]=='"'?JSON.parse(u[0]):u[0]),d+=u[0].length,d==s.length)break;let f=s[d++];if(d==s.length&&f=="!"){o=0;break}if(f!="/")throw new RangeError("Invalid path: "+s);a=s.slice(d)}let l=r.length-1,h=r[l];if(!h)throw new RangeError("Invalid path: "+s);let c=new Mo(n,o,l>0?r.slice(0,l):null);e[h]=c.sort(e[h])}}return i_.add(e)}const i_=new Te({combine(t,e){let i,n,s;for(;t||e;){if(!t||e&&t.depth>=e.depth?(s=e,e=e.next):(s=t,t=t.next),i&&i.mode==s.mode&&!s.context&&!i.context)continue;let r=new Mo(s.tags,s.mode,s.context);i?i.next=r:n=r,i=r}return n}});class Mo{constructor(e,i,n,s){this.tags=e,this.mode=i,this.context=n,this.next=s}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=s;for(let a of r)for(let l of a.set){let h=i[l.id];if(h){o=o?o+" "+h:h;break}}return o},scope:n}}function _C(t,e){let i=null;for(let n of t){let s=n.style(e);s&&(i=i?i+" "+s:s)}return i}function wC(t,e,i,n=0,s=t.length){let r=new yC(n,Array.isArray(e)?e:[e],i);r.highlightRange(t.cursor(),n,s,"",r.highlighters),r.flush(s)}class yC{constructor(e,i,n){this.at=e,this.highlighters=i,this.span=n,this.class=""}startSpan(e,i){i!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=i)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,i,n,s,r){let{type:o,from:a,to:l}=e;if(a>=n||l<=i)return;o.isTop&&(r=this.highlighters.filter(f=>!f.scope||f.scope(o)));let h=s,c=xC(e)||Mo.empty,d=_C(r,c.tags);if(d&&(h&&(h+=" "),h+=d,c.mode==1&&(s+=(s?" ":"")+d)),this.startSpan(Math.max(i,a),h),c.opaque)return;let u=e.tree&&e.tree.prop(Te.mounted);if(u&&u.overlay){let f=e.node.enter(u.overlay[0].from+a,1),p=this.highlighters.filter(g=>!g.scope||g.scope(u.tree.type)),m=e.firstChild();for(let g=0,b=a;;g++){let _=g=O||!e.nextSibling())););if(!_||O>n)break;b=_.to+a,b>i&&(this.highlightRange(f.cursor(),Math.max(i,_.from+a),Math.min(n,b),"",p),this.startSpan(Math.min(n,b),h))}m&&e.parent()}else if(e.firstChild()){u&&(s="");do if(!(e.to<=i)){if(e.from>=n)break;this.highlightRange(e,i,n,s,r),this.startSpan(Math.min(n,e.to),h)}while(e.nextSibling());e.parent()}}}function xC(t){let e=t.type.prop(i_);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}const se=ti.define,Ca=se(),Bn=se(),Gm=se(Bn),Rm=se(Bn),Wn=se(),Ta=se(Wn),fc=se(Wn),Gi=se(),cs=se(Gi),Ei=se(),Mi=se(),Hd=se(),qr=se(Hd),Da=se(),Y={comment:Ca,lineComment:se(Ca),blockComment:se(Ca),docComment:se(Ca),name:Bn,variableName:se(Bn),typeName:Gm,tagName:se(Gm),propertyName:Rm,attributeName:se(Rm),className:se(Bn),labelName:se(Bn),namespace:se(Bn),macroName:se(Bn),literal:Wn,string:Ta,docString:se(Ta),character:se(Ta),attributeValue:se(Ta),number:fc,integer:se(fc),float:se(fc),bool:se(Wn),regexp:se(Wn),escape:se(Wn),color:se(Wn),url:se(Wn),keyword:Ei,self:se(Ei),null:se(Ei),atom:se(Ei),unit:se(Ei),modifier:se(Ei),operatorKeyword:se(Ei),controlKeyword:se(Ei),definitionKeyword:se(Ei),moduleKeyword:se(Ei),operator:Mi,derefOperator:se(Mi),arithmeticOperator:se(Mi),logicOperator:se(Mi),bitwiseOperator:se(Mi),compareOperator:se(Mi),updateOperator:se(Mi),definitionOperator:se(Mi),typeOperator:se(Mi),controlOperator:se(Mi),punctuation:Hd,separator:se(Hd),bracket:qr,angleBracket:se(qr),squareBracket:se(qr),paren:se(qr),brace:se(qr),content:Gi,heading:cs,heading1:se(cs),heading2:se(cs),heading3:se(cs),heading4:se(cs),heading5:se(cs),heading6:se(cs),contentSeparator:se(Gi),list:se(Gi),quote:se(Gi),emphasis:se(Gi),strong:se(Gi),link:se(Gi),monospace:se(Gi),strikethrough:se(Gi),inserted:se(),deleted:se(),changed:se(),invalid:se(),meta:Da,documentMeta:se(Da),annotation:se(Da),processingInstruction:se(Da),definition:ti.defineModifier("definition"),constant:ti.defineModifier("constant"),function:ti.defineModifier("function"),standard:ti.defineModifier("standard"),local:ti.defineModifier("local"),special:ti.defineModifier("special")};for(let t in Y){let e=Y[t];e instanceof ti&&(e.name=t)}n_([{tag:Y.link,class:"tok-link"},{tag:Y.heading,class:"tok-heading"},{tag:Y.emphasis,class:"tok-emphasis"},{tag:Y.strong,class:"tok-strong"},{tag:Y.keyword,class:"tok-keyword"},{tag:Y.atom,class:"tok-atom"},{tag:Y.bool,class:"tok-bool"},{tag:Y.url,class:"tok-url"},{tag:Y.labelName,class:"tok-labelName"},{tag:Y.inserted,class:"tok-inserted"},{tag:Y.deleted,class:"tok-deleted"},{tag:Y.literal,class:"tok-literal"},{tag:Y.string,class:"tok-string"},{tag:Y.number,class:"tok-number"},{tag:[Y.regexp,Y.escape,Y.special(Y.string)],class:"tok-string2"},{tag:Y.variableName,class:"tok-variableName"},{tag:Y.local(Y.variableName),class:"tok-variableName tok-local"},{tag:Y.definition(Y.variableName),class:"tok-variableName tok-definition"},{tag:Y.special(Y.variableName),class:"tok-variableName2"},{tag:Y.definition(Y.propertyName),class:"tok-propertyName tok-definition"},{tag:Y.typeName,class:"tok-typeName"},{tag:Y.namespace,class:"tok-namespace"},{tag:Y.className,class:"tok-className"},{tag:Y.macroName,class:"tok-macroName"},{tag:Y.propertyName,class:"tok-propertyName"},{tag:Y.operator,class:"tok-operator"},{tag:Y.comment,class:"tok-comment"},{tag:Y.meta,class:"tok-meta"},{tag:Y.invalid,class:"tok-invalid"},{tag:Y.punctuation,class:"tok-punctuation"}]);var pc;const rr=new Te;function OC(t){return le.define({combine:t?e=>e.concat(t):void 0})}const SC=new Te;class xi{constructor(e,i,n=[],s=""){this.data=e,this.name=s,Ne.prototype.hasOwnProperty("tree")||Object.defineProperty(Ne.prototype,"tree",{get(){return Jt(this)}}),this.parser=i,this.extension=[kr.of(this),Ne.languageData.of((r,o,a)=>{let l=zm(r,o,a),h=l.type.prop(rr);if(!h)return[];let c=r.facet(h),d=l.type.prop(SC);if(d){let u=l.resolve(o-l.from,a);for(let f of d)if(f.test(u,r)){let p=r.facet(f.facet);return f.type=="replace"?p:p.concat(c)}}return c})].concat(n)}isActiveAt(e,i,n=-1){return zm(e,i,n).type.prop(rr)==this.data}findRegions(e){let i=e.facet(kr);if(i?.data==this.data)return[{from:0,to:e.doc.length}];if(!i||!i.allowsNesting)return[];let n=[],s=(r,o)=>{if(r.prop(rr)==this.data){n.push({from:o,to:o+r.length});return}let a=r.prop(Te.mounted);if(a){if(a.tree.prop(rr)==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+r.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;ln.isTop?i:void 0)]}),e.name)}configure(e,i){return new Ul(this.data,this.parser.configure(e),i||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function Jt(t){let e=t.field(xi.state,!1);return e?e.tree:rt.empty}class kC{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,i){let n=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,i):this.string.slice(e-n,i-n)}}let Ur=null;class jl{constructor(e,i,n=[],s,r,o,a,l){this.parser=e,this.state=i,this.fragments=n,this.tree=s,this.treeLen=r,this.viewport=o,this.skipped=a,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(e,i,n){return new jl(e,i,[],rt.empty,0,n,[],null)}startParse(){return this.parser.startParse(new kC(this.state.doc),this.fragments)}work(e,i){return i!=null&&i>=this.state.doc.length&&(i=void 0),this.tree!=rt.empty&&this.isDone(i??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()),i!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>i)&&i=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(i=this.parse.advance()););}),this.treeLen=e,this.tree=i,this.fragments=this.withoutTempSkipped(ks.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let i=Ur;Ur=this;try{return e()}finally{Ur=i}}withoutTempSkipped(e){for(let i;i=this.tempSkipped.pop();)e=Lm(e,i.from,i.to);return e}changes(e,i){let{fragments:n,tree:s,treeLen:r,viewport:o,skipped:a}=this;if(this.takeTree(),!e.empty){let l=[];if(e.iterChangedRanges((h,c,d,u)=>l.push({fromA:h,toA:c,fromB:d,toB:u})),n=ks.applyChanges(n,l),s=rt.empty,r=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){a=[];for(let h of this.skipped){let c=e.mapPos(h.from,1),d=e.mapPos(h.to,-1);ce.from&&(this.fragments=Lm(this.fragments,s,r),this.skipped.splice(n--,1))}return this.skipped.length>=i?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,i){this.skipped.push({from:e,to:i})}static getSkippingParser(e){return new class extends e_{createParse(i,n,s){let r=s[0].from,o=s[s.length-1].to;return{parsedPos:r,advance(){let l=Ur;if(l){for(let h of s)l.tempSkipped.push(h);e&&(l.scheduleOn=l.scheduleOn?Promise.all([l.scheduleOn,e]):e)}return this.parsedPos=o,new rt(Ht.none,[],[],o-r)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let i=this.fragments;return this.treeLen>=e&&i.length&&i[0].from==0&&i[0].to>=e}static get(){return Ur}}function Lm(t,e,i){return ks.applyChanges(t,[{fromA:e,toA:i,fromB:e,toB:i}])}class Sr{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let i=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),i.viewport.to);return i.work(20,n)||i.takeTree(),new Sr(i)}static init(e){let i=Math.min(3e3,e.doc.length),n=jl.create(e.facet(kr).parser,e,{from:0,to:i});return n.work(20,i)||n.takeTree(),new Sr(n)}}xi.state=Dt.define({create:Sr.init,update(t,e){for(let i of e.effects)if(i.is(xi.setState))return i.value;return e.startState.facet(kr)!=e.state.facet(kr)?Sr.init(e.state):t.apply(e)}});let s_=t=>{let e=setTimeout(()=>t(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(s_=t=>{let e=-1,i=setTimeout(()=>{e=requestIdleCallback(t,{timeout:400})},100);return()=>e<0?clearTimeout(i):cancelIdleCallback(e)});const mc=typeof navigator<"u"&&(!((pc=navigator.scheduling)===null||pc===void 0)&&pc.isInputPending)?()=>navigator.scheduling.isInputPending():null,CC=Tt.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 i=this.view.state.field(xi.state).context;(i.updateViewport(e.view.viewport)||this.view.viewport.to>i.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(i)}scheduleWork(){if(this.working)return;let{state:e}=this.view,i=e.field(xi.state);(i.tree!=i.context.tree||!i.context.isDone(e.doc.length))&&(this.working=s_(this.work))}work(e){this.working=null;let i=Date.now();if(this.chunkEnds+1e3,l=r.context.work(()=>mc&&mc()||Date.now()>o,s+(a?0:1e5));this.chunkBudget-=Date.now()-i,(l||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:xi.setState.of(new Sr(r.context))})),this.chunkBudget>0&&!(l&&!a)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(i=>Rt(this.view.state,i)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),kr=le.define({combine(t){return t.length?t[0]:null},enables:t=>[xi.state,CC,ce.contentAttributes.compute([t],e=>{let i=e.facet(t);return i&&i.name?{"data-language":i.name}:{}})]});class TC{constructor(e,i=[]){this.language=e,this.support=i,this.extension=[e,i]}}const DC=le.define(),Ih=le.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some(i=>i!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function Xl(t){let e=t.facet(Ih);return e.charCodeAt(0)==9?t.tabSize*e.length:e.length}function Yl(t,e){let i="",n=t.tabSize,s=t.facet(Ih)[0];if(s==" "){for(;e>=n;)i+=" ",e-=n;s=" "}for(let r=0;r=e?PC(t,i,e):null}class Eh{constructor(e,i={}){this.state=e,this.options=i,this.unit=Xl(e)}lineAt(e,i=1){let n=this.state.doc.lineAt(e),{simulateBreak:s,simulateDoubleBreak:r}=this.options;return s!=null&&s>=n.from&&s<=n.to?r&&s==e?{text:"",from:e}:(i<0?s-1&&(r+=o-this.countColumn(n,n.search(/\S|$/))),r}countColumn(e,i=e.length){return kh(e,this.state.tabSize,i)}lineIndent(e,i=1){let{text:n,from:s}=this.lineAt(e,i),r=this.options.overrideIndentation;if(r){let o=r(s);if(o>-1)return o}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const o_=new Te;function PC(t,e,i){let n=e.resolveStack(i),s=e.resolveInner(i,-1).resolve(i,0).enterUnfinishedNodesBefore(i);if(s!=n.node){let r=[];for(let o=s;o&&!(o.fromn.node.to||o.from==n.node.from&&o.type==n.node.type);o=o.parent)r.push(o);for(let o=r.length-1;o>=0;o--)n={node:r[o],next:n}}return a_(n,t,i)}function a_(t,e,i){for(let n=t;n;n=n.next){let s=AC(n.node);if(s)return s(bf.create(e,i,n))}return 0}function $C(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function AC(t){let e=t.type.prop(o_);if(e)return e;let i=t.firstChild,n;if(i&&(n=i.type.prop(Te.closedBy))){let s=t.lastChild,r=s&&n.indexOf(s.name)>-1;return o=>l_(o,!0,1,void 0,r&&!$C(o)?s.from:void 0)}return t.parent==null?IC:null}function IC(){return 0}class bf extends Eh{constructor(e,i,n){super(e.state,e.options),this.base=e,this.pos=i,this.context=n}get node(){return this.context.node}static create(e,i,n){return new bf(e,i,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let i=this.state.doc.lineAt(e.from);for(;;){let n=e.resolve(i.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(EC(n,e))break;i=this.state.doc.lineAt(n.from)}return this.lineIndent(i.from)}continue(){return a_(this.context.next,this.base,this.pos)}}function EC(t,e){for(let i=e;i;i=i.parent)if(t==i)return!0;return!1}function MC(t){let e=t.node,i=e.childAfter(e.from),n=e.lastChild;if(!i)return null;let s=t.options.simulateBreak,r=t.state.doc.lineAt(i.from),o=s==null||s<=r.from?r.to:Math.min(r.to,s);for(let a=i.to;;){let l=e.childAfter(a);if(!l||l==n)return null;if(!l.type.isSkipped){if(l.from>=o)return null;let h=/^ */.exec(r.text.slice(i.to-r.from))[0].length;return{from:i.from,to:i.to+h}}a=l.to}}function gc({closing:t,align:e=!0,units:i=1}){return n=>l_(n,e,i,t)}function l_(t,e,i,n,s){let r=t.textAfter,o=r.match(/^\s*/)[0].length,a=n&&r.slice(o,o+n.length)==n||s==t.pos+o,l=e?MC(t):null;return l?a?t.column(l.from):t.column(l.to):t.baseIndent+(a?0:t.unit*i)}const GC=new Te;function RC(t){let e=t.firstChild,i=t.lastChild;return e&&e.toa.prop(rr)==o.data:o?a=>a==o:void 0,this.style=n_(e.map(a=>({tag:a.tag,class:a.class||s(Object.assign({},a,{tag:null}))})),{all:r}).style,this.module=n?new es(n):null,this.themeType=i.themeType}static define(e,i){return new Mh(e,i||{})}}const qd=le.define(),zC=le.define({combine(t){return t.length?[t[0]]:null}});function vc(t){let e=t.facet(qd);return e.length?e:t.facet(zC)}function LC(t,e){let i=[BC],n;return t instanceof Mh&&(t.module&&i.push(ce.styleModule.of(t.module)),n=t.themeType),n?i.push(qd.computeN([ce.darkTheme],s=>s.facet(ce.darkTheme)==(n=="dark")?[t]:[])):i.push(qd.of(t)),i}class NC{constructor(e){this.markCache=Object.create(null),this.tree=Jt(e.state),this.decorations=this.buildDeco(e,vc(e.state)),this.decoratedTo=e.viewport.to}update(e){let i=Jt(e.state),n=vc(e.state),s=n!=vc(e.startState),{viewport:r}=e.view,o=e.changes.mapPos(this.decoratedTo,1);i.length=r.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(i!=this.tree||e.viewportChanged||s)&&(this.tree=i,this.decorations=this.buildDeco(e.view,n),this.decoratedTo=r.to)}buildDeco(e,i){if(!i||!this.tree.length)return Ge.none;let n=new Ms;for(let{from:s,to:r}of e.visibleRanges)wC(this.tree,i,(o,a,l)=>{n.add(o,a,this.markCache[l]||(this.markCache[l]=Ge.mark({class:l})))},s,r);return n.finish()}}const BC=Gr.high(Tt.fromClass(NC,{decorations:t=>t.decorations})),WC=1e4,VC="()[]{}",FC=new Te;function Ud(t,e,i){let n=t.prop(e<0?Te.openedBy:Te.closedBy);if(n)return n;if(t.name.length==1){let s=i.indexOf(t.name);if(s>-1&&s%2==(e<0?1:0))return[i[s+e]]}return null}function jd(t){let e=t.type.prop(FC);return e?e(t.node):t}function or(t,e,i,n={}){let s=n.maxScanDistance||WC,r=n.brackets||VC,o=Jt(t),a=o.resolveInner(e,i);for(let l=a;l;l=l.parent){let h=Ud(l.type,i,r);if(h&&l.from0?e>=c.from&&ec.from&&e<=c.to))return QC(t,e,i,l,c,h,r)}}return HC(t,e,i,o,a.type,s,r)}function QC(t,e,i,n,s,r,o){let a=n.parent,l={from:s.from,to:s.to},h=0,c=a?.cursor();if(c&&(i<0?c.childBefore(n.from):c.childAfter(n.to)))do if(i<0?c.to<=n.from:c.from>=n.to){if(h==0&&r.indexOf(c.type.name)>-1&&c.from0)return null;let h={from:i<0?e-1:e,to:i>0?e+1:e},c=t.doc.iterRange(e,i>0?t.doc.length:0),d=0;for(let u=0;!c.next().done&&u<=r;){let f=c.value;i<0&&(u+=f.length);let p=e+u*i;for(let m=i>0?0:f.length-1,g=i>0?f.length:-1;m!=g;m+=i){let b=o.indexOf(f[m]);if(!(b<0||n.resolveInner(p+m,1).type!=s))if(b%2==0==i>0)d++;else{if(d==1)return{start:h,end:{from:p+m,to:p+m+1},matched:b>>1==l>>1};d--}}i>0&&(u+=f.length)}return c.done?{start:h,matched:!1}:null}const qC=Object.create(null),Nm=[Ht.none],Bm=[],Wm=Object.create(null),UC=Object.create(null);for(let[t,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"]])UC[t]=jC(qC,e);function bc(t,e){Bm.indexOf(t)>-1||(Bm.push(t),console.warn(e))}function jC(t,e){let i=[];for(let a of e.split(" ")){let l=[];for(let h of a.split(".")){let c=t[h]||Y[h];c?typeof c=="function"?l.length?l=l.map(c):bc(h,`Modifier ${h} used at start of tag`):l.length?bc(h,`Tag ${h} used as modifier`):l=Array.isArray(c)?c:[c]:bc(h,`Unknown highlighting tag ${h}`)}for(let h of l)i.push(h)}if(!i.length)return 0;let n=e.replace(/ /g,"_"),s=n+" "+i.map(a=>a.id),r=Wm[s];if(r)return r.id;let o=Wm[s]=Ht.define({id:Nm.length,name:n,props:[t_({[n]:i})]});return Nm.push(o),o.id}Ye.RTL,Ye.LTR;const XC=t=>{let{state:e}=t,i=e.doc.lineAt(e.selection.main.from),n=wf(t.state,i.from);return n.line?YC(t):n.block?KC(t):!1};function _f(t,e){return({state:i,dispatch:n})=>{if(i.readOnly)return!1;let s=t(e,i);return s?(n(i.update(s)),!0):!1}}const YC=_f(tT,0),ZC=_f(h_,0),KC=_f((t,e)=>h_(t,e,eT(e)),0);function wf(t,e){let i=t.languageDataAt("commentTokens",e,1);return i.length?i[0]:{}}const jr=50;function JC(t,{open:e,close:i},n,s){let r=t.sliceDoc(n-jr,n),o=t.sliceDoc(s,s+jr),a=/\s*$/.exec(r)[0].length,l=/^\s*/.exec(o)[0].length,h=r.length-a;if(r.slice(h-e.length,h)==e&&o.slice(l,l+i.length)==i)return{open:{pos:n-a,margin:a&&1},close:{pos:s+l,margin:l&&1}};let c,d;s-n<=2*jr?c=d=t.sliceDoc(n,s):(c=t.sliceDoc(n,n+jr),d=t.sliceDoc(s-jr,s));let u=/^\s*/.exec(c)[0].length,f=/\s*$/.exec(d)[0].length,p=d.length-f-i.length;return c.slice(u,u+e.length)==e&&d.slice(p,p+i.length)==i?{open:{pos:n+u+e.length,margin:/\s/.test(c.charAt(u+e.length))?1:0},close:{pos:s-f-i.length,margin:/\s/.test(d.charAt(p-1))?1:0}}:null}function eT(t){let e=[];for(let i of t.selection.ranges){let n=t.doc.lineAt(i.from),s=i.to<=n.to?n:t.doc.lineAt(i.to);s.from>n.from&&s.from==i.to&&(s=i.to==n.to+1?n:t.doc.lineAt(i.to-1));let r=e.length-1;r>=0&&e[r].to>n.from?e[r].to=s.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:s.to})}return e}function h_(t,e,i=e.selection.ranges){let n=i.map(r=>wf(e,r.from).block);if(!n.every(r=>r))return null;let s=i.map((r,o)=>JC(e,n[o],r.from,r.to));if(t!=2&&!s.every(r=>r))return{changes:e.changes(i.map((r,o)=>s[o]?[]:[{from:r.from,insert:n[o].open+" "},{from:r.to,insert:" "+n[o].close}]))};if(t!=1&&s.some(r=>r)){let r=[];for(let o=0,a;os&&(r==o||o>d.from)){s=d.from;let u=/^\s*/.exec(d.text)[0].length,f=u==d.length,p=d.text.slice(u,u+h.length)==h?u:-1;ur.comment<0&&(!r.empty||r.single))){let r=[];for(let{line:a,token:l,indent:h,empty:c,single:d}of n)(d||!c)&&r.push({from:a.from+h,insert:l+" "});let o=e.changes(r);return{changes:o,selection:e.selection.map(o,1)}}else if(t!=1&&n.some(r=>r.comment>=0)){let r=[];for(let{line:o,comment:a,token:l}of n)if(a>=0){let h=o.from+a,c=h+l.length;o.text[c-o.from]==" "&&c++,r.push({from:h,to:c})}return{changes:r}}return null}const Xd=Pn.define(),iT=Pn.define(),nT=le.define(),c_=le.define({combine(t){return ea(t,{minDepth:100,newGroupDelay:500,joinToEvent:(e,i)=>i},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,i)=>(n,s)=>e(n,s)||i(n,s)})}}),d_=Dt.define({create(){return Hi.empty},update(t,e){let i=e.state.facet(c_),n=e.annotation(Xd);if(n){let l=Vt.fromTransaction(e,n.selection),h=n.side,c=h==0?t.undone:t.done;return l?c=Zl(c,c.length,i.minDepth,l):c=p_(c,e.startState.selection),new Hi(h==0?n.rest:c,h==0?c:n.rest)}let s=e.annotation(iT);if((s=="full"||s=="before")&&(t=t.isolate()),e.annotation(lt.addToHistory)===!1)return e.changes.empty?t:t.addMapping(e.changes.desc);let r=Vt.fromTransaction(e),o=e.annotation(lt.time),a=e.annotation(lt.userEvent);return r?t=t.addChanges(r,o,a,i,e):e.selection&&(t=t.addSelection(e.startState.selection,o,a,i.newGroupDelay)),(s=="full"||s=="after")&&(t=t.isolate()),t},toJSON(t){return{done:t.done.map(e=>e.toJSON()),undone:t.undone.map(e=>e.toJSON())}},fromJSON(t){return new Hi(t.done.map(Vt.fromJSON),t.undone.map(Vt.fromJSON))}});function sT(t={}){return[d_,c_.of(t),ce.domEventHandlers({beforeinput(e,i){let n=e.inputType=="historyUndo"?u_:e.inputType=="historyRedo"?Yd:null;return n?(e.preventDefault(),n(i)):!1}})]}function Gh(t,e){return function({state:i,dispatch:n}){if(!e&&i.readOnly)return!1;let s=i.field(d_,!1);if(!s)return!1;let r=s.pop(t,i,e);return r?(n(r),!0):!1}}const u_=Gh(0,!1),Yd=Gh(1,!1),rT=Gh(0,!0),oT=Gh(1,!0);class Vt{constructor(e,i,n,s,r){this.changes=e,this.effects=i,this.mapped=n,this.startSelection=s,this.selectionsAfter=r}setSelAfter(e){return new Vt(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,i,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(i=this.mapped)===null||i===void 0?void 0:i.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 Vt(e.changes&&dt.fromJSON(e.changes),[],e.mapped&&ji.fromJSON(e.mapped),e.startSelection&&K.fromJSON(e.startSelection),e.selectionsAfter.map(K.fromJSON))}static fromTransaction(e,i){let n=ri;for(let s of e.startState.facet(nT)){let r=s(e);r.length&&(n=n.concat(r))}return!n.length&&e.changes.empty?null:new Vt(e.changes.invert(e.startState.doc),n,void 0,i||e.startState.selection,ri)}static selection(e){return new Vt(void 0,ri,void 0,void 0,e)}}function Zl(t,e,i,n){let s=e+1>i+20?e-i-1:0,r=t.slice(s,e);return r.push(n),r}function aT(t,e){let i=[],n=!1;return t.iterChangedRanges((s,r)=>i.push(s,r)),e.iterChangedRanges((s,r,o,a)=>{for(let l=0;l=h&&o<=c&&(n=!0)}}),n}function lT(t,e){return t.ranges.length==e.ranges.length&&t.ranges.filter((i,n)=>i.empty!=e.ranges[n].empty).length===0}function f_(t,e){return t.length?e.length?t.concat(e):t:e}const ri=[],hT=200;function p_(t,e){if(t.length){let i=t[t.length-1],n=i.selectionsAfter.slice(Math.max(0,i.selectionsAfter.length-hT));return n.length&&n[n.length-1].eq(e)?t:(n.push(e),Zl(t,t.length-1,1e9,i.setSelAfter(n)))}else return[Vt.selection([e])]}function cT(t){let e=t[t.length-1],i=t.slice();return i[t.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),i}function _c(t,e){if(!t.length)return t;let i=t.length,n=ri;for(;i;){let s=dT(t[i-1],e,n);if(s.changes&&!s.changes.empty||s.effects.length){let r=t.slice(0,i);return r[i-1]=s,r}else e=s.mapped,i--,n=s.selectionsAfter}return n.length?[Vt.selection(n)]:ri}function dT(t,e,i){let n=f_(t.selectionsAfter.length?t.selectionsAfter.map(a=>a.map(e)):ri,i);if(!t.changes)return Vt.selection(n);let s=t.changes.map(e),r=e.mapDesc(t.changes,!0),o=t.mapped?t.mapped.composeDesc(r):r;return new Vt(s,$e.mapEffects(t.effects,e),o,t.startSelection.map(r),n)}const uT=/^(input\.type|delete)($|\.)/;class Hi{constructor(e,i,n=0,s=void 0){this.done=e,this.undone=i,this.prevTime=n,this.prevUserEvent=s}isolate(){return this.prevTime?new Hi(this.done,this.undone):this}addChanges(e,i,n,s,r){let o=this.done,a=o[o.length-1];return a&&a.changes&&!a.changes.empty&&e.changes&&(!n||uT.test(n))&&(!a.selectionsAfter.length&&i-this.prevTime0&&i-this.prevTimei.empty?t.moveByChar(i,e):Rh(i,e))}function Pt(t){return t.textDirectionAt(t.state.selection.main.head)==Ye.LTR}const g_=t=>m_(t,!Pt(t)),v_=t=>m_(t,Pt(t));function b_(t,e){return Ai(t,i=>i.empty?t.moveByGroup(i,e):Rh(i,e))}const pT=t=>b_(t,!Pt(t)),mT=t=>b_(t,Pt(t));function gT(t,e,i){if(e.type.prop(i))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function zh(t,e,i){let n=Jt(t).resolveInner(e.head),s=i?Te.closedBy:Te.openedBy;for(let l=e.head;;){let h=i?n.childAfter(l):n.childBefore(l);if(!h)break;gT(t,h,s)?n=h:l=i?h.to:h.from}let r=n.type.prop(s),o,a;return r&&(o=i?or(t,n.from,1):or(t,n.to,-1))&&o.matched?a=i?o.end.to:o.end.from:a=i?n.to:n.from,K.cursor(a,i?-1:1)}const vT=t=>Ai(t,e=>zh(t.state,e,!Pt(t))),bT=t=>Ai(t,e=>zh(t.state,e,Pt(t)));function __(t,e){return Ai(t,i=>{if(!i.empty)return Rh(i,e);let n=t.moveVertically(i,e);return n.head!=i.head?n:t.moveToLineBoundary(i,e)})}const w_=t=>__(t,!1),y_=t=>__(t,!0);function x_(t){let e=t.scrollDOM.clientHeighto.empty?t.moveVertically(o,e,i.height):Rh(o,e));if(s.eq(n.selection))return!1;let r;if(i.selfScroll){let o=t.coordsAtPos(n.selection.main.head),a=t.scrollDOM.getBoundingClientRect(),l=a.top+i.marginTop,h=a.bottom-i.marginBottom;o&&o.top>l&&o.bottomO_(t,!1),Zd=t=>O_(t,!0);function as(t,e,i){let n=t.lineBlockAt(e.head),s=t.moveToLineBoundary(e,i);if(s.head==e.head&&s.head!=(i?n.to:n.from)&&(s=t.moveToLineBoundary(e,i,!1)),!i&&s.head==n.from&&n.length){let r=/^\s*/.exec(t.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;r&&e.head!=n.from+r&&(s=K.cursor(n.from+r))}return s}const _T=t=>Ai(t,e=>as(t,e,!0)),wT=t=>Ai(t,e=>as(t,e,!1)),yT=t=>Ai(t,e=>as(t,e,!Pt(t))),xT=t=>Ai(t,e=>as(t,e,Pt(t))),OT=t=>Ai(t,e=>K.cursor(t.lineBlockAt(e.head).from,1)),ST=t=>Ai(t,e=>K.cursor(t.lineBlockAt(e.head).to,-1));function kT(t,e,i){let n=!1,s=zr(t.selection,r=>{let o=or(t,r.head,-1)||or(t,r.head,1)||r.head>0&&or(t,r.head-1,1)||r.headkT(t,e);function ui(t,e,i){let n=zr(t.state.selection,s=>{s.undirectional&&s.head>=s.anchor!=e&&(s=K.range(s.head,s.anchor));let r=i(s);return K.range(s.anchor,r.head,r.goalColumn,r.bidiLevel||void 0,r.assoc)});return n.eq(t.state.selection)?!1:(t.dispatch($i(t.state,n)),!0)}function S_(t,e){return ui(t,e,i=>t.moveByChar(i,e))}const k_=t=>S_(t,!Pt(t)),C_=t=>S_(t,Pt(t));function T_(t,e){return ui(t,e,i=>t.moveByGroup(i,e))}const TT=t=>T_(t,!Pt(t)),DT=t=>T_(t,Pt(t)),PT=t=>{let e=!Pt(t);return ui(t,e,i=>zh(t.state,i,e))},$T=t=>{let e=Pt(t);return ui(t,e,i=>zh(t.state,i,e))};function D_(t,e){return ui(t,e,i=>t.moveVertically(i,e))}const P_=t=>D_(t,!1),$_=t=>D_(t,!0);function A_(t,e){return ui(t,e,i=>t.moveVertically(i,e,x_(t).height))}const Fm=t=>A_(t,!1),Qm=t=>A_(t,!0),AT=t=>ui(t,!0,e=>as(t,e,!0)),IT=t=>ui(t,!1,e=>as(t,e,!1)),ET=t=>{let e=!Pt(t);return ui(t,e,i=>as(t,i,e))},MT=t=>{let e=Pt(t);return ui(t,e,i=>as(t,i,e))},GT=t=>ui(t,!1,e=>K.cursor(t.lineBlockAt(e.head).from)),RT=t=>ui(t,!0,e=>K.cursor(t.lineBlockAt(e.head).to)),Hm=({state:t,dispatch:e})=>(e($i(t,{anchor:0})),!0),qm=({state:t,dispatch:e})=>(e($i(t,{anchor:t.doc.length})),!0),Um=({state:t,dispatch:e})=>(e($i(t,{anchor:t.selection.main.anchor,head:0})),!0),jm=({state:t,dispatch:e})=>(e($i(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),zT=({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),LT=({state:t,dispatch:e})=>{let i=Lh(t).map(({from:n,to:s})=>K.range(n,Math.min(s+1,t.doc.length)));return e(t.update({selection:K.create(i),userEvent:"select"})),!0},NT=({state:t,dispatch:e})=>{let i=zr(t.selection,n=>{let s=Jt(t),r=s.resolveStack(n.from,1);if(n.empty){let o=s.resolveStack(n.from,-1);o.node.from>=r.node.from&&o.node.to<=r.node.to&&(r=o)}for(let o=r;o;o=o.next){let{node:a}=o;if((a.from=n.to||a.to>n.to&&a.from<=n.from)&&o.next)return K.range(a.to,a.from)}return n});return i.eq(t.selection)?!1:(e($i(t,i)),!0)};function I_(t,e){let{state:i}=t,n=i.selection,s=i.selection.ranges.slice();for(let r of i.selection.ranges){let o=i.doc.lineAt(r.head);if(e?o.to0)for(let a=r;;){let l=t.moveVertically(a,e);if(l.heado.to){s.some(h=>h.head==l.head)||s.push(l);break}else{if(l.head==a.head)break;a=l}}}return s.length==n.ranges.length?!1:(t.dispatch($i(i,K.create(s,s.length-1))),!0)}const BT=t=>I_(t,!1),WT=t=>I_(t,!0),VT=({state:t,dispatch:e})=>{let i=t.selection,n=null;return i.ranges.length>1?n=K.create([i.main]):i.main.empty||(n=K.create([K.cursor(i.main.head)])),n?(e($i(t,n)),!0):!1};function oa(t,e){if(t.state.readOnly)return!1;let i="delete.selection",{state:n}=t,s=n.changeByRange(r=>{let{from:o,to:a}=r;if(o==a){let l=e(r);lo&&(i="delete.forward",l=Pa(t,l,!0)),o=Math.min(o,l),a=Math.max(a,l)}else o=Pa(t,o,!1),a=Pa(t,a,!0);return o==a?{range:r}:{changes:{from:o,to:a},range:K.cursor(o,os(t)))n.between(e,e,(s,r)=>{se&&(e=i?r:s)});return e}const E_=(t,e,i)=>oa(t,n=>{let s=n.from,{state:r}=t,o=r.doc.lineAt(s),a,l;if(i&&!e&&s>o.from&&sE_(t,!1,!0),M_=t=>E_(t,!0,!1),G_=(t,e)=>oa(t,i=>{let n=i.head,{state:s}=t,r=s.doc.lineAt(n),o=s.charCategorizer(n);for(let a=null;;){if(n==(e?r.to:r.from)){n==i.head&&r.number!=(e?s.doc.lines:1)&&(n+=e?1:-1);break}let l=Ct(r.text,n-r.from,e)+r.from,h=r.text.slice(Math.min(n,l)-r.from,Math.max(n,l)-r.from),c=o(h);if(a!=null&&c!=a)break;(h!=" "||n!=i.head)&&(a=c),n=l}return n}),R_=t=>G_(t,!1),FT=t=>G_(t,!0),QT=t=>oa(t,e=>{let i=t.lineBlockAt(e.head).to;return e.headoa(t,e=>{let i=t.moveToLineBoundary(e,!1).head;return e.head>i?i:Math.max(0,e.head-1)}),qT=t=>oa(t,e=>{let i=t.moveToLineBoundary(e,!0).head;return e.head{if(t.readOnly)return!1;let i=t.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:Ee.of(["",""])},range:K.cursor(n.from)}));return e(t.update(i,{scrollIntoView:!0,userEvent:"input"})),!0},jT=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=t.changeByRange(n=>{if(!n.empty||n.from==0||n.from==t.doc.length)return{range:n};let s=n.from,r=t.doc.lineAt(s),o=s==r.from?s-1:Ct(r.text,s-r.from,!1)+r.from,a=s==r.to?s+1:Ct(r.text,s-r.from,!0)+r.from;return{changes:{from:o,to:a,insert:t.doc.slice(s,a).append(t.doc.slice(o,s))},range:K.cursor(a)}});return i.changes.empty?!1:(e(t.update(i,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function Lh(t){let e=[],i=-1;for(let n of t.selection.ranges){let s=t.doc.lineAt(n.from),r=t.doc.lineAt(n.to);if(!n.empty&&n.to==r.from&&(r=t.doc.lineAt(n.to-1)),i>=s.number){let o=e[e.length-1];o.to=r.to,o.ranges.push(n)}else e.push({from:s.from,to:r.to,ranges:[n]});i=r.number+1}return e}function z_(t,e,i){if(t.readOnly)return!1;let n=[],s=[];for(let r of Lh(t)){if(i?r.to==t.doc.length:r.from==0)continue;let o=t.doc.lineAt(i?r.to+1:r.from-1),a=o.length+1;if(i){n.push({from:r.to,to:o.to},{from:r.from,insert:o.text+t.lineBreak});for(let l of r.ranges)s.push(K.range(Math.min(t.doc.length,l.anchor+a),Math.min(t.doc.length,l.head+a)))}else{n.push({from:o.from,to:r.from},{from:r.to,insert:t.lineBreak+o.text});for(let l of r.ranges)s.push(K.range(l.anchor-a,l.head-a))}}return n.length?(e(t.update({changes:n,scrollIntoView:!0,selection:K.create(s,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}const XT=({state:t,dispatch:e})=>z_(t,e,!1),YT=({state:t,dispatch:e})=>z_(t,e,!0);function L_(t,e,i){if(t.readOnly)return!1;let n=[];for(let r of Lh(t))i?n.push({from:r.from,insert:t.doc.slice(r.from,r.to)+t.lineBreak}):n.push({from:r.to,insert:t.lineBreak+t.doc.slice(r.from,r.to)});let s=t.changes(n);return e(t.update({changes:s,selection:t.selection.map(s,i?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const ZT=({state:t,dispatch:e})=>L_(t,e,!1),KT=({state:t,dispatch:e})=>L_(t,e,!0),JT=t=>{if(t.state.readOnly)return!1;let{state:e}=t,i=e.changes(Lh(e).map(({from:s,to:r})=>(s>0?s--:r{let r;if(t.lineWrapping){let o=t.lineBlockAt(s.head),a=t.coordsAtPos(s.head,s.assoc||1);a&&(r=o.bottom+t.documentTop-a.bottom+t.defaultLineHeight/2)}return t.moveVertically(s,!0,r)}).map(i);return t.dispatch({changes:i,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0};function eD(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let i=Jt(t).resolveInner(e),n=i.childBefore(e),s=i.childAfter(e),r;return n&&s&&n.to<=e&&s.from>=e&&(r=n.type.prop(Te.closedBy))&&r.indexOf(s.name)>-1&&t.doc.lineAt(n.to).from==t.doc.lineAt(s.from).from&&!/\S/.test(t.sliceDoc(n.to,s.from))?{from:n.to,to:s.from}:null}const Xm=N_(!1),tD=N_(!0);function N_(t){return({state:e,dispatch:i})=>{if(e.readOnly)return!1;let n=e.changeByRange(s=>{let{from:r,to:o}=s,a=e.doc.lineAt(r),l=!t&&r==o&&eD(e,r);t&&(r=o=(o<=a.to?a:e.doc.lineAt(o)).to);let h=new Eh(e,{simulateBreak:r,simulateDoubleBreak:!!l}),c=r_(h,r);for(c==null&&(c=kh(/^\s*/.exec(e.doc.lineAt(r).text)[0],e.tabSize));oa.from&&r{let s=[];for(let o=n.from;o<=n.to;){let a=t.doc.lineAt(o);a.number>i&&(n.empty||n.to>a.from)&&(e(a,s,n),i=a.number),o=a.to+1}let r=t.changes(s);return{changes:s,range:K.range(r.mapPos(n.anchor,1),r.mapPos(n.head,1))}})}const iD=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=Object.create(null),n=new Eh(t,{overrideIndentation:r=>{let o=i[r];return o??-1}}),s=yf(t,(r,o,a)=>{let l=r_(n,r.from);if(l==null)return;/\S/.test(r.text)||(l=0);let h=/^\s*/.exec(r.text)[0],c=Yl(t,l);(h!=c||a.fromt.readOnly?!1:(e(t.update(yf(t,(i,n)=>{n.push({from:i.from,insert:t.facet(Ih)})}),{userEvent:"input.indent"})),!0),W_=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(yf(t,(i,n)=>{let s=/^\s*/.exec(i.text)[0];if(!s)return;let r=kh(s,t.tabSize),o=0,a=Yl(t,Math.max(0,r-Xl(t)));for(;o(t.setTabFocusMode(),!0),sD=[{key:"Ctrl-b",run:g_,shift:k_,preventDefault:!0},{key:"Ctrl-f",run:v_,shift:C_},{key:"Ctrl-p",run:w_,shift:P_},{key:"Ctrl-n",run:y_,shift:$_},{key:"Ctrl-a",run:OT,shift:GT},{key:"Ctrl-e",run:ST,shift:RT},{key:"Ctrl-d",run:M_},{key:"Ctrl-h",run:Kd},{key:"Ctrl-k",run:QT},{key:"Ctrl-Alt-h",run:R_},{key:"Ctrl-o",run:UT},{key:"Ctrl-t",run:jT},{key:"Ctrl-v",run:Zd}],rD=[{key:"ArrowLeft",run:g_,shift:k_,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:pT,shift:TT,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:yT,shift:ET,preventDefault:!0},{key:"ArrowRight",run:v_,shift:C_,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:mT,shift:DT,preventDefault:!0},{mac:"Cmd-ArrowRight",run:xT,shift:MT,preventDefault:!0},{key:"ArrowUp",run:w_,shift:P_,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Hm,shift:Um},{mac:"Ctrl-ArrowUp",run:Vm,shift:Fm},{key:"ArrowDown",run:y_,shift:$_,preventDefault:!0},{mac:"Cmd-ArrowDown",run:qm,shift:jm},{mac:"Ctrl-ArrowDown",run:Zd,shift:Qm},{key:"PageUp",run:Vm,shift:Fm},{key:"PageDown",run:Zd,shift:Qm},{key:"Home",run:wT,shift:IT,preventDefault:!0},{key:"Mod-Home",run:Hm,shift:Um},{key:"End",run:_T,shift:AT,preventDefault:!0},{key:"Mod-End",run:qm,shift:jm},{key:"Enter",run:Xm,shift:Xm},{key:"Mod-a",run:zT},{key:"Backspace",run:Kd,shift:Kd,preventDefault:!0},{key:"Delete",run:M_,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:R_,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:FT,preventDefault:!0},{mac:"Mod-Backspace",run:HT,preventDefault:!0},{mac:"Mod-Delete",run:qT,preventDefault:!0}].concat(sD.map(t=>({mac:t.key,run:t.run,shift:t.shift}))),oD=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:vT,shift:PT},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:bT,shift:$T},{key:"Alt-ArrowUp",run:XT},{key:"Shift-Alt-ArrowUp",run:ZT},{key:"Alt-ArrowDown",run:YT},{key:"Shift-Alt-ArrowDown",run:KT},{key:"Mod-Alt-ArrowUp",run:BT},{key:"Mod-Alt-ArrowDown",run:WT},{key:"Escape",run:VT},{key:"Mod-Enter",run:tD},{key:"Alt-l",mac:"Ctrl-l",run:LT},{key:"Mod-i",run:NT,preventDefault:!0},{key:"Mod-[",run:W_},{key:"Mod-]",run:B_},{key:"Mod-Alt-\\",run:iD},{key:"Shift-Mod-k",run:JT},{key:"Shift-Mod-\\",run:CT},{key:"Mod-/",run:XC},{key:"Alt-A",run:ZC},{key:"Ctrl-m",mac:"Shift-Alt-m",run:nD}].concat(rD),aD={key:"Tab",run:B_,shift:W_};var Ym={};class Kl{constructor(e,i,n,s,r,o,a,l,h,c=0,d){this.p=e,this.stack=i,this.state=n,this.reducePos=s,this.pos=r,this.score=o,this.buffer=a,this.bufferBase=l,this.curContext=h,this.lookAhead=c,this.parent=d}toString(){return`[${this.stack.filter((e,i)=>i%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,i,n=0){let s=e.parser.context;return new Kl(e,[],i,n,n,0,[],0,s?new Zm(s,s.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,i){this.stack.push(this.state,i,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var i;let n=e>>19,s=e&65535,{parser:r}=this.p,o=this.reducePos=2e3&&!(!((i=this.p.parser.nodeSet.types[s])===null||i===void 0)&&i.isAnonymous)&&(h==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=c):this.p.lastBigReductionSizel;)this.stack.pop();this.reduceContext(s,h)}storeNode(e,i,n,s=4,r=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&this.buffer[o-4]==0&&this.buffer[o-1]>-1){if(i==n)return;if(this.buffer[o-2]>=i){this.buffer[o-2]=n;return}}}if(!r||this.pos==n)this.buffer.push(e,i,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]=i,this.buffer[o+2]=n,this.buffer[o+3]=s}}shift(e,i,n,s){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let r=e,{parser:o}=this.p;this.pos=s;let a=o.stateFlag(r,1);!a&&(s>n||i<=o.maxNode)&&(this.reducePos=s),this.pushState(r,a?n:Math.min(n,this.reducePos)),this.shiftContext(i,n),i<=o.maxNode&&this.buffer.push(i,n,s,4)}else this.pos=s,this.shiftContext(i,n),i<=this.p.parser.maxNode&&this.buffer.push(i,n,s,4)}apply(e,i,n,s){e&65536?this.reduce(e):this.shift(e,i,n,s)}useNode(e,i){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(i,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,i=e.buffer.length;for(i&&e.buffer[i-4]==0&&(i-=4);i>0&&e.buffer[i-2]>e.reducePos;)i-=4;let n=e.buffer.slice(i),s=e.bufferBase+i;for(;e&&s==e.bufferBase;)e=e.parent;return new Kl(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,s,this.curContext,this.lookAhead,e)}recoverByDelete(e,i){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,i,4),this.storeNode(0,this.pos,i,n?8:4),this.pos=this.reducePos=i,this.score-=190}canShift(e){for(let i=new lD(this);;){let n=this.p.parser.stateSlot(i.state,4)||this.p.parser.hasAction(i.state,e);if(n==0)return!1;if((n&65536)==0)return!0;i.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let i=this.p.parser.nextStates(this.state);if(i.length>8||this.stack.length>=120){let s=[];for(let r=0,o;rl&1&&a==o)||s.push(i[r],o)}i=s}let n=[];for(let s=0;s>19,s=i&65535,r=this.stack.length-n*3;if(r<0||e.getGoto(this.stack[r],s,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;i=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(i),!0}findForcedReduction(){let{parser:e}=this.p,i=[],n=(s,r)=>{if(!i.includes(s))return i.push(s),e.allActions(s,o=>{if(!(o&393216))if(o&65536){let a=(o>>19)-r;if(a>1){let l=o&65535,h=this.stack.length-a*3;if(h>=0&&e.getGoto(this.stack[h],l,!1)>=0)return a<<19|65536|l}}else{let a=n(o,r+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 i=0;i0&&this.emitLookAhead()}}class Zm{constructor(e,i){this.tracker=e,this.context=i,this.hash=e.strict?e.hash(i):0}}class lD{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let i=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],i,!0);this.state=s}}class Jl{constructor(e,i,n){this.stack=e,this.pos=i,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,i=e.bufferBase+e.buffer.length){return new Jl(e,i,i-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 Jl(this.stack,this.pos,this.index)}}function $a(t,e=Uint16Array){if(typeof t!="string")return t;let i=null;for(let n=0,s=0;n=92&&o--,o>=34&&o--;let l=o-32;if(l>=46&&(l-=46,a=!0),r+=l,a)break;r*=46}i?i[s++]=r:i=new e(r)}return i}class ll{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const Km=new ll;class hD{constructor(e,i){this.input=e,this.ranges=i,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Km,this.rangeIndex=0,this.pos=this.chunkPos=i[0].from,this.range=i[0],this.end=i[i.length-1].to,this.readNext()}resolveOffset(e,i){let n=this.range,s=this.rangeIndex,r=this.pos+e;for(;rn.to:r>=n.to;){if(s==this.ranges.length-1)return null;let o=this.ranges[++s];r+=o.from-n.to,n=o}return r}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,i.from);return this.end}peek(e){let i=this.chunkOff+e,n,s;if(i>=0&&i=this.chunk2Pos&&na.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,i=0){let n=i?this.resolveOffset(i,-1):this.pos;if(n==null||n=this.chunk2Pos&&this.posthis.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,i){if(i?(this.token=i,i.start=e,i.lookAhead=e+1,i.value=i.extended=-1):this.token=Km,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&i<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,i-this.chunkPos);if(e>=this.chunk2Pos&&i<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,i-this.chunk2Pos);if(e>=this.range.from&&i<=this.range.to)return this.input.read(e,i);let n="";for(let s of this.ranges){if(s.from>=i)break;s.to>e&&(n+=this.input.read(Math.max(s.from,e),Math.min(s.to,i)))}return n}}class ur{constructor(e,i){this.data=e,this.id=i}token(e,i){let{parser:n}=i.p;cD(this.data,e,i,this.id,n.data,n.tokenPrecTable)}}ur.prototype.contextual=ur.prototype.fallback=ur.prototype.extend=!1;ur.prototype.fallback=ur.prototype.extend=!1;class Nh{constructor(e,i={}){this.token=e,this.contextual=!!i.contextual,this.fallback=!!i.fallback,this.extend=!!i.extend}}function cD(t,e,i,n,s,r){let o=0,a=1<0){let p=t[f];if(l.allows(p)&&(e.token.value==-1||e.token.value==p||dD(p,e.token.value,s,r))){e.acceptToken(p);break}}let c=e.next,d=0,u=t[o+2];if(e.next<0&&u>d&&t[h+u*3-3]==65535){o=t[h+u*3-1];continue e}for(;d>1,p=h+f+(f<<1),m=t[p],g=t[p+1]||65536;if(c=g)d=f+1;else{o=t[p+2],e.advance();continue e}}break}}function Jm(t,e,i){for(let n=e,s;(s=t[n])!=65535;n++)if(s==i)return n-e;return-1}function dD(t,e,i,n){let s=Jm(i,n,e);return s<0||Jm(i,n,t)e)&&!n.type.isError)return i<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(t.length,Math.max(n.from+1,e+25));if(i<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return i<0?0:t.length}}class uD{constructor(e,i){this.fragments=e,this.nodeSet=i,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?eg(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?eg(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(ee)return this.nextStart=o,null;if(r instanceof rt){if(o==e){if(o=Math.max(this.safeFrom,e)&&(this.trees.push(r),this.start.push(o),this.index.push(0))}else this.index[i]++,this.nextStart=o+r.length}}}class fD{constructor(e,i){this.stream=i,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new ll)}getActions(e){let i=0,n=null,{parser:s}=e.p,{tokenizers:r}=s,o=s.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,l=0;for(let h=0;hd.end+25&&(l=Math.max(d.lookAhead,l)),d.value!=0)){let u=i;if(d.extended>-1&&(i=this.addActions(e,d.extended,d.end,i)),i=this.addActions(e,d.value,d.end,i),!c.extend&&(n=d,i>u))break}}for(;this.actions.length>i;)this.actions.pop();return l&&e.setLookAhead(l),!n&&e.pos==this.stream.end&&(n=new ll,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,i=this.addActions(e,n.value,n.end,i)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let i=new ll,{pos:n,p:s}=e;return i.start=n,i.end=Math.min(n+1,s.stream.end),i.value=n==s.stream.end?s.parser.eofTerm:0,i}updateCachedToken(e,i,n){let s=this.stream.clipPos(n.pos);if(i.token(this.stream.reset(s,e),n),e.value>-1){let{parser:r}=n.p;for(let o=0;o=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,i,n,s){for(let r=0;re.bufferLength*4?new uD(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,i=this.minStackPos,n=this.stacks=[],s,r;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;oi)n.push(a);else{if(this.advanceStack(a,n,e))continue;{s||(s=[],r=[]),s.push(a);let l=this.tokens.getMainToken(a);r.push(l.value,l.end)}}break}}if(!n.length){let o=s&&vD(s);if(o)return jt&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw jt&&s&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+i);this.recovering||(this.recovering=5)}if(this.recovering&&s){let o=this.stoppedAt!=null&&s[0].pos>this.stoppedAt?s[0]:this.runRecovery(s,r,n);if(o)return jt&&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>i)&&this.recovering--}else if(n.length>1){e:for(let o=0;o500&&h.buffer.length>500)if((a.score-h.score||a.buffer.length-h.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 ":"";if(this.stoppedAt!=null&&s>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let h=e.curContext&&e.curContext.tracker.strict,c=h?e.curContext.hash:0;for(let d=this.fragments.nodeAt(s);d;){let u=this.parser.nodeSet.types[d.type.id]==d.type?r.getGoto(e.state,d.type.id):-1;if(u>-1&&d.length&&(!h||(d.prop(Te.contextHash)||0)==c))return e.useNode(d,u),jt&&console.log(o+this.stackID(e)+` (via reuse of ${r.getName(d.type.id)})`),!0;if(!(d instanceof rt)||d.children.length==0||d.positions[0]>0)break;let f=d.children[0];if(f instanceof rt&&d.positions[0]==0)d=f;else break}}let a=r.stateSlot(e.state,4);if(a>0)return e.reduce(a),jt&&console.log(o+this.stackID(e)+` (via always-reduce ${r.getName(a&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let h=0;hs?i.push(p):n.push(p)}return!1}advanceFully(e,i){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return tg(e,i),!0}}runRecovery(e,i,n){let s=null,r=!1;for(let o=0;o ":"";if(a.deadEnd&&(r||(r=!0,a.restart(),jt&&console.log(c+this.stackID(a)+" (restarted)"),this.advanceFully(a,n))))continue;let d=a.split(),u=c;for(let f=0;f<10&&d.forceReduce()&&(jt&&console.log(u+this.stackID(d)+" (via force-reduce)"),!this.advanceFully(d,n));f++)jt&&(u=this.stackID(d)+" -> ");for(let f of a.recoverByInsert(l))jt&&console.log(c+this.stackID(f)+" (via recover-insert)"),this.advanceFully(f,n);this.stream.end>a.pos?(h==a.pos&&(h++,l=0),a.recoverByDelete(l,h),jt&&console.log(c+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),tg(a,n)):(!s||s.scoret;class gD{constructor(e){this.start=e.start,this.shift=e.shift||yc,this.reduce=e.reduce||yc,this.reuse=e.reuse||yc,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class eh extends e_{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let i=e.nodeNames.split(" ");this.minRepeatTerm=i.length;for(let a=0;ae.topRules[a][1]),s=[];for(let a=0;a=0)r(c,l,a[h++]);else{let d=a[h+-c];for(let u=-c;u>0;u--)r(a[h++],l,d);h++}}}this.nodeSet=new pf(i.map((a,l)=>Ht.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=Yb;let o=$a(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let a=0;atypeof a=="number"?new ur(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,i,n){let s=new pD(this,e,i,n);for(let r of this.wrappers)s=r(s,e,i,n);return s}getGoto(e,i,n=!1){let s=this.goto;if(i>=s[0])return-1;for(let r=s[i+1];;){let o=s[r++],a=o&1,l=s[r++];if(a&&n)return l;for(let h=r+(o>>1);r0}validAction(e,i){return!!this.allActions(e,n=>n==i?!0:null)}allActions(e,i){let n=this.stateSlot(e,4),s=n?i(n):void 0;for(let r=this.stateSlot(e,1);s==null;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=hn(this.data,r+2);else break;s=i(hn(this.data,r+1))}return s}nextStates(e){let i=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=hn(this.data,n+2);else break;if((this.data[n+2]&1)==0){let s=this.data[n+1];i.some((r,o)=>o&1&&r==s)||i.push(this.data[n],s)}}return i}configure(e){let i=Object.assign(Object.create(eh.prototype),this);if(e.props&&(i.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}`);i.top=n}return e.tokenizers&&(i.tokenizers=this.tokenizers.map(n=>{let s=e.tokenizers.find(r=>r.from==n);return s?s.to:n})),e.specializers&&(i.specializers=this.specializers.slice(),i.specializerSpecs=this.specializerSpecs.map((n,s)=>{let r=e.specializers.find(a=>a.from==n.external);if(!r)return n;let o=Object.assign(Object.assign({},n),{external:r.to});return i.specializers[s]=ig(o),o})),e.contextTracker&&(i.context=e.contextTracker),e.dialect&&(i.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(i.strict=e.strict),e.wrap&&(i.wrappers=i.wrappers.concat(e.wrap)),e.bufferLength!=null&&(i.bufferLength=e.bufferLength),i}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 i=this.dynamicPrecedences;return i==null?0:i[e]||0}parseDialect(e){let i=Object.keys(this.dialects),n=i.map(()=>!1);if(e)for(let r of e.split(" ")){let o=i.indexOf(r);o>=0&&(n[o]=!0)}let s=null;for(let r=0;rn)&&i.p.parser.stateFlag(i.state,2)&&(!e||e.scoret.external(i,n)<<1|e}return t.get}const bD=1,V_=194,F_=195,_D=196,ng=197,wD=198,yD=199,xD=200,OD=2,Q_=3,sg=201,SD=24,kD=25,CD=49,TD=50,DD=55,PD=56,$D=57,AD=59,ID=60,ED=61,MD=62,GD=63,RD=65,zD=238,LD=71,ND=241,BD=242,WD=243,VD=244,FD=245,QD=246,HD=247,qD=248,H_=72,UD=249,jD=250,XD=251,YD=252,ZD=253,KD=254,JD=255,eP=256,tP=73,iP=77,nP=263,sP=112,rP=130,oP=151,aP=152,lP=155,Ls=10,Go=13,xf=32,Bh=9,Of=35,hP=40,cP=46,Jd=123,rg=125,q_=39,U_=34,og=92,dP=111,uP=120,fP=78,pP=117,mP=85,gP=new Set([kD,CD,TD,nP,RD,rP,PD,$D,zD,MD,GD,H_,tP,iP,ID,ED,oP,aP,lP,sP]);function xc(t){return t==Ls||t==Go}function Oc(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}const vP=new Nh((t,e)=>{let i;if(t.next<0)t.acceptToken(yD);else if(e.context.flags&hl)xc(t.next)&&t.acceptToken(wD,1);else if(((i=t.peek(-1))<0||xc(i))&&e.canShift(ng)){let n=0;for(;t.next==xf||t.next==Bh;)t.advance(),n++;(t.next==Ls||t.next==Go||t.next==Of)&&t.acceptToken(ng,-n)}else xc(t.next)&&t.acceptToken(_D,1)},{contextual:!0}),bP=new Nh((t,e)=>{let i=e.context;if(i.flags)return;let n=t.peek(-1);if(n==Ls||n==Go){let s=0,r=0;for(;;){if(t.next==xf)s++;else if(t.next==Bh)s+=8-s%8;else break;t.advance(),r++}s!=i.indent&&t.next!=Ls&&t.next!=Go&&t.next!=Of&&(s[t,e|j_])),yP=new gD({start:_P,reduce(t,e,i,n){return t.flags&hl&&gP.has(e)||(e==LD||e==H_)&&t.flags&j_?t.parent:t},shift(t,e,i,n){return e==V_?new cl(t,wP(n.read(n.pos,i.pos)),0):e==F_?t.parent:e==SD||e==DD||e==AD||e==Q_?new cl(t,0,hl):ag.has(e)?new cl(t,0,ag.get(e)|t.flags&hl):t},hash(t){return t.hash}}),xP=new Nh(t=>{for(let e=0;e<5;e++){if(t.next!="print".charCodeAt(e))return;t.advance()}if(!/\w/.test(String.fromCharCode(t.next)))for(let e=0;;e++){let i=t.peek(e);if(!(i==xf||i==Bh)){i!=hP&&i!=cP&&i!=Ls&&i!=Go&&i!=Of&&t.acceptToken(bD);return}}}),OP=new Nh((t,e)=>{let{flags:i}=e.context,n=i&nn?U_:q_,s=(i&sn)>0,r=!(i&rn),o=(i&on)>0,a=t.pos;for(;!(t.next<0);)if(o&&t.next==Jd)if(t.peek(1)==Jd)t.advance(2);else{if(t.pos==a){t.acceptToken(Q_,1);return}break}else if(r&&t.next==og){if(t.pos==a){t.advance();let l=t.next;l>=0&&(t.advance(),SP(t,l)),t.acceptToken(OD);return}break}else if(t.next==og&&!r&&t.peek(1)>-1)t.advance(2);else if(t.next==n&&(!s||t.peek(1)==n&&t.peek(2)==n)){if(t.pos==a){t.acceptToken(sg,s?3:1);return}break}else if(t.next==Ls){if(s)t.advance();else if(t.pos==a){t.acceptToken(sg);return}break}else t.advance();t.pos>a&&t.acceptToken(xD)});function SP(t,e){if(e==dP)for(let i=0;i<2&&t.next>=48&&t.next<=55;i++)t.advance();else if(e==uP)for(let i=0;i<2&&Oc(t.next);i++)t.advance();else if(e==pP)for(let i=0;i<4&&Oc(t.next);i++)t.advance();else if(e==mP)for(let i=0;i<8&&Oc(t.next);i++)t.advance();else if(e==fP&&t.next==Jd){for(t.advance();t.next>=0&&t.next!=rg&&t.next!=q_&&t.next!=U_&&t.next!=Ls;)t.advance();t.next==rg&&t.advance()}}const kP=t_({'async "*" "**" FormatConversion FormatSpec':Y.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":Y.controlKeyword,"in not and or is del":Y.operatorKeyword,"from def class global nonlocal lambda":Y.definitionKeyword,import:Y.moduleKeyword,"with as print":Y.keyword,Boolean:Y.bool,None:Y.null,VariableName:Y.variableName,"CallExpression/VariableName":Y.function(Y.variableName),"FunctionDefinition/VariableName":Y.function(Y.definition(Y.variableName)),"ClassDefinition/VariableName":Y.definition(Y.className),PropertyName:Y.propertyName,"CallExpression/MemberExpression/PropertyName":Y.function(Y.propertyName),Comment:Y.lineComment,Number:Y.number,String:Y.string,FormatString:Y.special(Y.string),Escape:Y.escape,UpdateOp:Y.updateOperator,"ArithOp!":Y.arithmeticOperator,BitOp:Y.bitwiseOperator,CompareOp:Y.compareOperator,AssignOp:Y.definitionOperator,Ellipsis:Y.punctuation,At:Y.meta,"( )":Y.paren,"[ ]":Y.squareBracket,"{ }":Y.brace,".":Y.derefOperator,", ;":Y.separator}),CP={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},TP=eh.deserialize({version:14,states:"##jQ`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyOOOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!lO!lO!hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5nQdO,5sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<mO#BQQdO,5>mOOQS1G0v1G0vOOQS<rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<VAN>VO$ oQdO<cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<tO$4{QdO,5>tO1XQdO,5vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[xP,bP,vP,OP,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:t=>CP[t]||-1}],tokenPrec:7668});class X_{constructor(e,i,n,s){this.state=e,this.pos=i,this.explicit=n,this.view=s,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let i=Jt(this.state).resolveInner(this.pos,-1);for(;i&&e.indexOf(i.name)<0;)i=i.parent;return i?{from:i.from,to:this.pos,text:this.state.sliceDoc(i.from,this.pos),type:i.type}:null}matchBefore(e){let i=this.state.doc.lineAt(this.pos),n=Math.max(i.from,this.pos-250),s=i.text.slice(n-i.from,this.pos-i.from),r=s.search(Z_(e,!1));return r<0?null:{from:n+r,to:this.pos,text:s.slice(r)}}get aborted(){return this.abortListeners==null}addEventListener(e,i,n){e=="abort"&&this.abortListeners&&(this.abortListeners.push(i),n&&n.onDocChange&&(this.abortOnDocChange=!0))}}function lg(t){let e=Object.keys(t).join(""),i=/\w/.test(e);return i&&(e=e.replace(/\w/g,"")),`[${i?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function DP(t){let e=Object.create(null),i=Object.create(null);for(let{label:s}of t){e[s[0]]=!0;for(let r=1;rtypeof s=="string"?{label:s}:s),[i,n]=e.every(s=>/^\w+$/.test(s.label))?[/\w*$/,/\w+$/]:DP(e);return s=>{let r=s.matchBefore(n);return r||s.explicit?{from:r?r.from:s.pos,options:e,validFor:i}:null}}function PP(t,e){return i=>{for(let n=Jt(i.state).resolveInner(i.pos,-1);n;n=n.parent){if(t.indexOf(n.name)>-1)return null;if(n.type.isTop)break}return e(i)}}class hg{constructor(e,i,n,s){this.completion=e,this.source=i,this.match=n,this.score=s}}function Cs(t){return t.selection.main.from}function Z_(t,e){var i;let{source:n}=t,s=e&&n[0]!="^",r=n[n.length-1]!="$";return!s&&!r?t:new RegExp(`${s?"^":""}(?:${n})${r?"$":""}`,(i=t.flags)!==null&&i!==void 0?i:t.ignoreCase?"i":"")}const Sf=Pn.define();function $P(t,e,i,n){let{main:s}=t.selection,r=i-s.from,o=n-s.from;return{...t.changeByRange(a=>{if(a!=s&&i!=n&&t.sliceDoc(a.from+r,a.from+o)!=t.sliceDoc(i,n))return{range:a};let l=t.toText(e);return{changes:{from:a.from+r,to:n==s.from?a.to:a.from+o,insert:l},range:K.cursor(a.from+r+l.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}const cg=new WeakMap;function AP(t){if(!Array.isArray(t))return t;let e=cg.get(t);return e||cg.set(t,e=Y_(t)),e}const th=$e.define(),Ro=$e.define();class IP{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let i=0;i=48&&T<=57||T>=97&&T<=122?2:T>=65&&T<=90?1:0:(y=$S(T))!=y.toLowerCase()?1:y!=y.toUpperCase()?2:0;(!_||C==1&&g||x==0&&C!=0)&&(i[d]==T||n[d]==T&&(u=!0)?o[d++]=_:o.length&&(b=!1)),x=C,_+=Js(T)}return d==l&&o[0]==0&&b?this.result(-100+(u?-200:0),o,e):f==l&&p==0?this.ret(-200-e.length+(m==e.length?0:-100),[0,m]):a>-1?this.ret(-700-e.length,[a,a+this.pattern.length]):f==l?this.ret(-900-e.length,[p,m]):d==l?this.result(-100+(u?-200:0)+-700+(b?0:-1100),o,e):i.length==2?null:this.result((s[0]?-700:0)+-200+-1100,s,e)}result(e,i,n){let s=[],r=0;for(let o of i){let a=o+(this.astral?Js(fs(n,o)):1);r&&s[r-1]==o?s[r-1]=a:(s[r++]=o,s[r++]=a)}return this.ret(e-n.length,s)}}class EP{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:MP,filterStrict:!1,compareCompletions:(e,i)=>(e.sortText||e.label).localeCompare(i.sortText||i.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,i)=>e&&i,closeOnBlur:(e,i)=>e&&i,icons:(e,i)=>e&&i,tooltipClass:(e,i)=>n=>dg(e(n),i(n)),optionClass:(e,i)=>n=>dg(e(n),i(n)),addToOptions:(e,i)=>e.concat(i),filterStrict:(e,i)=>e||i})}});function dg(t,e){return t?e?t+" "+e:t:e}function MP(t,e,i,n,s,r){let o=t.textDirection==Ye.RTL,a=o,l=!1,h="top",c,d,u=e.left-s.left,f=s.right-e.right,p=n.right-n.left,m=n.bottom-n.top;if(a&&u=m||_>e.top?c=i.bottom-e.top:(h="bottom",c=e.bottom-i.top)}let g=(e.bottom-e.top)/r.offsetHeight,b=(e.right-e.left)/r.offsetWidth;return{style:`${h}: ${c/g}px; max-width: ${d/b}px`,class:"cm-completionInfo-"+(l?o?"left-narrow":"right-narrow":a?"left":"right")}}const kf=$e.define();function GP(t){let e=t.addToOptions.slice();return t.icons&&e.push({render(i){let n=document.createElement("div");return n.classList.add("cm-completionIcon"),i.type&&n.classList.add(...i.type.split(/\s+/g).map(s=>"cm-completionIcon-"+s)),n.setAttribute("aria-hidden","true"),n},position:20}),e.push({render(i,n,s,r){let o=document.createElement("span");o.className="cm-completionLabel";let a=i.displayLabel||i.label,l=0;for(let h=0;hl&&o.appendChild(document.createTextNode(a.slice(l,c)));let u=o.appendChild(document.createElement("span"));u.appendChild(document.createTextNode(a.slice(c,d))),u.className="cm-completionMatchedText",l=d}return li.position-n.position).map(i=>i.render)}function Sc(t,e,i){if(t<=i)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let s=Math.floor(e/i);return{from:s*i,to:(s+1)*i}}let n=Math.ceil((t-e)/i);return{from:t-n*i,to:t-(n-1)*i}}class RP{constructor(e,i,n){this.view=e,this.stateField=i,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(i),{options:r,selected:o}=s.open,a=e.state.facet(mt);this.optionContent=GP(a),this.optionClass=a.optionClass,this.tooltipClass=a.tooltipClass,this.range=Sc(r.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:h}=e.state.field(i).open;for(let c=l.target,d;c&&c!=this.dom;c=c.parentNode)if(c.nodeName=="LI"&&(d=/-(\d+)$/.exec(c.id))&&+d[1]this.list.lastChild.getBoundingClientRect().bottom?this.range.to:null;c!=null&&(e.dispatch({effects:kf.of(c)}),l.preventDefault())}}),this.dom.addEventListener("focusout",l=>{let h=e.state.field(this.stateField,!1);h&&h.tooltip&&e.state.facet(mt).closeOnBlur&&l.relatedTarget!=e.contentDOM&&e.dispatch({effects:Ro.of(null)})}),this.showOptions(r,s.id)}mount(){this.updateSel()}showOptions(e,i){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,i,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var i;let n=e.state.field(this.stateField),s=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),n!=s){let{options:r,selected:o,disabled:a}=n.open;(!s.open||s.open.options!=r)&&(this.range=Sc(r.length,o,e.state.facet(mt).maxRenderedOptions),this.showOptions(r,n.id)),this.updateSel(),a!=((i=s.open)===null||i===void 0?void 0:i.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!a)}}updateTooltipClass(e){let i=this.tooltipClass(e);if(i!=this.currentClass){for(let n of this.currentClass.split(" "))n&&this.dom.classList.remove(n);for(let n of i.split(" "))n&&this.dom.classList.add(n);this.currentClass=i}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),i=e.open;(i.selected>-1&&i.selected=this.range.to)&&(this.range=Sc(i.options.length,i.selected,this.view.state.facet(mt).maxRenderedOptions),this.showOptions(i.options,e.id));let n=this.updateSelectedOption(i.selected);if(n){this.destroyInfo();let{completion:s}=i.options[i.selected],{info:r}=s;if(!r)return;let o=typeof r=="string"?document.createTextNode(r):r(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=>Rt(this.view.state,a,"completion info")):(this.addInfoPane(o,s),n.setAttribute("aria-describedby",this.info.id))}}addInfoPane(e,i){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:r}=e;n.appendChild(s),this.infoDestroy=r||null}this.dom.appendChild(n),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let i=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"),i=n):n.hasAttribute("aria-selected")&&(n.removeAttribute("aria-selected"),n.removeAttribute("aria-describedby"));return i&&LP(this.list,i),i}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let i=this.dom.getBoundingClientRect(),n=this.info.getBoundingClientRect(),s=e.getBoundingClientRect(),r=this.space;if(!r){let o=this.dom.ownerDocument.documentElement;r={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return s.top>Math.min(r.bottom,i.bottom)-10||s.bottom{o.target==s&&o.preventDefault()});let r=null;for(let o=n.from;on.from||n.from==0))if(r=u,typeof h!="string"&&h.header)s.appendChild(h.header(h));else{let f=s.appendChild(document.createElement("completion-section"));f.textContent=u}}const c=s.appendChild(document.createElement("li"));c.id=i+"-"+o,c.setAttribute("role","option");let d=this.optionClass(a);d&&(c.className=d);for(let u of this.optionContent){let f=u(a,this.view.state,this.view,l);f&&c.appendChild(f)}}return n.from&&s.classList.add("cm-completionListIncompleteTop"),n.tonew RP(i,t,e)}function LP(t,e){let i=t.getBoundingClientRect(),n=e.getBoundingClientRect(),s=i.height/t.offsetHeight;n.topi.bottom&&(t.scrollTop+=(n.bottom-i.bottom)/s)}function ug(t){return(t.boost||0)*100+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}function NP(t,e){let i=[],n=null,s=null,r=c=>{i.push(c);let{section:d}=c.completion;if(d){n||(n=[]);let u=typeof d=="string"?d:d.name;n.some(f=>f.name==u)||n.push(typeof d=="string"?{name:u}:d)}},o=e.facet(mt);for(let c of t)if(c.hasResult()){let d=c.result.getMatch;if(c.result.filter===!1)for(let u of c.result.options)r(new hg(u,c.source,d?d(u):[],1e9-i.length));else{let u=e.sliceDoc(c.from,c.to),f,p=o.filterStrict?new EP(u):new IP(u);for(let m of c.result.options)if(f=p.match(m.label)){let g=m.displayLabel?d?d(m,f.matched):[]:f.matched,b=f.score+(m.boost||0);if(r(new hg(m,c.source,g,b)),typeof m.section=="object"&&m.section.rank==="dynamic"){let{name:_}=m.section;s||(s=Object.create(null)),s[_]=Math.max(b,s[_]||-1e9)}}}}if(n){let c=Object.create(null),d=0,u=(f,p)=>(f.rank==="dynamic"&&p.rank==="dynamic"?s[p.name]-s[f.name]:0)||(typeof f.rank=="number"?f.rank:1e9)-(typeof p.rank=="number"?p.rank:1e9)||(f.nameu.score-d.score||h(d.completion,u.completion))){let d=c.completion;!l||l.label!=d.label||l.detail!=d.detail||l.type!=null&&d.type!=null&&l.type!=d.type||l.apply!=d.apply||l.boost!=d.boost?a.push(c):ug(c.completion)>ug(l)&&(a[a.length-1]=c),l=c.completion}return a}class ar{constructor(e,i,n,s,r,o){this.options=e,this.attrs=i,this.tooltip=n,this.timestamp=s,this.selected=r,this.disabled=o}setSelected(e,i){return e==this.selected||e>=this.options.length?this:new ar(this.options,fg(i,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,i,n,s,r,o){if(s&&!o&&e.some(h=>h.isPending))return s.setDisabled();let a=NP(e,i);if(!a.length)return s&&e.some(h=>h.isPending)?s.setDisabled():null;let l=i.facet(mt).selectOnOpen?0:-1;if(s&&s.selected!=l&&s.selected!=-1){let h=s.options[s.selected].completion;for(let c=0;cc.hasResult()?Math.min(h,c.from):h,1e8),create:HP,above:r.aboveCursor},s?s.timestamp:Date.now(),l,!1)}map(e){return new ar(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new ar(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class ih{constructor(e,i,n){this.active=e,this.id=i,this.open=n}static start(){return new ih(FP,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:i}=e,n=i.facet(mt),r=(n.override||i.languageDataAt("autocomplete",Cs(i)).map(AP)).map(l=>(this.active.find(c=>c.source==l)||new oi(l,this.active.some(c=>c.state!=0)?1:0)).update(e,n));r.length==this.active.length&&r.every((l,h)=>l==this.active[h])&&(r=this.active);let o=this.open,a=e.effects.some(l=>l.is(Cf));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||r.some(l=>l.hasResult()&&e.changes.touchesRange(l.from,l.to))||!BP(r,this.active)||a?o=ar.build(r,i,this.id,o,n,a):o&&o.disabled&&!r.some(l=>l.isPending)&&(o=null),!o&&r.every(l=>!l.isPending)&&r.some(l=>l.hasResult())&&(r=r.map(l=>l.hasResult()?new oi(l.source,0):l));for(let l of e.effects)l.is(kf)&&(o=o&&o.setSelected(l.value,this.id));return r==this.active&&o==this.open?this:new ih(r,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?WP:VP}}function BP(t,e){if(t==e)return!0;for(let i=0,n=0;;){for(;i-1&&(i["aria-activedescendant"]=t+"-"+e),i}const FP=[];function K_(t,e){if(t.isUserEvent("input.complete")){let n=t.annotation(Sf);if(n&&e.activateOnCompletion(n))return 12}let i=t.isUserEvent("input.type");return i&&e.activateOnTyping?5:i?1:t.isUserEvent("delete.backward")?2:t.selection?8:t.docChanged?16:0}class oi{constructor(e,i,n=!1){this.source=e,this.state=i,this.explicit=n}hasResult(){return!1}get isPending(){return this.state==1}update(e,i){let n=K_(e,i),s=this;(n&8||n&16&&this.touches(e))&&(s=new oi(s.source,0)),n&4&&s.state==0&&(s=new oi(this.source,1)),s=s.updateFor(e,n);for(let r of e.effects)if(r.is(th))s=new oi(s.source,1,r.value);else if(r.is(Ro))s=new oi(s.source,0);else if(r.is(Cf))for(let o of r.value)o.source==s.source&&(s=o);return s}updateFor(e,i){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(Cs(e.state))}}class fr extends oi{constructor(e,i,n,s,r,o){super(e,3,i),this.limit=n,this.result=s,this.from=r,this.to=o}hasResult(){return!0}updateFor(e,i){var n;if(!(i&3))return this.map(e.changes);let s=this.result;s.map&&!e.changes.empty&&(s=s.map(s,e.changes));let r=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),a=Cs(e.state);if(a>o||!s||i&2&&(Cs(e.startState)==this.from||ai.map(e))}}),Gt=Dt.define({create(){return ih.start()},update(t,e){return t.update(e)},provide:t=>[ra.from(t,e=>e.tooltip),ce.contentAttributes.from(t,e=>e.attrs)]});function Tf(t,e){const i=e.completion.apply||e.completion.label;let n=t.state.field(Gt).active.find(s=>s.source==e.source);return n instanceof fr?(typeof i=="string"?t.dispatch({...$P(t.state,i,n.from,n.to),annotations:Sf.of(e.completion)}):i(t,e.completion,n.from,n.to),!0):!1}const HP=zP(Gt,Tf);function Aa(t,e="option"){return i=>{let n=i.state.field(Gt,!1);if(!n||!n.open||n.open.disabled||Date.now()-n.open.timestamp-1?n.open.selected+s*(t?1:-1):t?0:o-1;return a<0?a=e=="page"?0:o-1:a>=o&&(a=e=="page"?o-1:0),i.dispatch({effects:kf.of(a)}),!0}}const qP=t=>{let e=t.state.field(Gt,!1);return t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampt.state.field(Gt,!1)?(t.dispatch({effects:th.of(!0)}),!0):!1,J_=t=>{let e=t.state.field(Gt,!1);return!e||!e.active.some(i=>i.state!=0)?!1:(t.dispatch({effects:Ro.of(null)}),!0)};class UP{constructor(e,i){this.active=e,this.context=i,this.time=Date.now(),this.updates=[],this.done=void 0}}const jP=50,XP=1e3,YP=Tt.fromClass(class{constructor(t){this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of t.state.field(Gt).active)e.isPending&&this.startQuery(e)}update(t){let e=t.state.field(Gt),i=t.state.facet(mt);if(!t.selectionSet&&!t.docChanged&&t.startState.field(Gt)==e)return;let n=t.transactions.some(r=>{let o=K_(r,i);return o&8||(r.selection||r.docChanged)&&!(o&3)});for(let r=0;rjP&&Date.now()-o.time>XP){for(let a of o.context.abortListeners)try{a()}catch(l){Rt(this.view.state,l)}o.context.abortListeners=null,this.running.splice(r--,1)}else o.updates.push(...t.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),t.transactions.some(r=>r.effects.some(o=>o.is(th)))&&(this.pendingStart=!0);let s=this.pendingStart?50:i.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(r=>r.isPending&&!this.running.some(o=>o.active.source==r.source))?setTimeout(()=>this.startUpdate(),s):-1,this.composing!=0)for(let r of t.transactions)r.isUserEvent("input.type")?this.composing=2:this.composing==2&&r.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:t}=this.view,e=t.field(Gt);for(let i of e.active)i.isPending&&!this.running.some(n=>n.active.source==i.source)&&this.startQuery(i);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(mt).updateSyncTime))}startQuery(t){let{state:e}=this.view,i=Cs(e),n=new X_(e,i,t.explicit,this.view),s=new UP(t,n);this.running.push(s),Promise.resolve(t.source(n)).then(r=>{s.context.aborted||(s.done=r||null,this.scheduleAccept())},r=>{this.view.dispatch({effects:Ro.of(null)}),Rt(this.view.state,r)})}scheduleAccept(){this.running.every(t=>t.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(mt).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],i=this.view.state.facet(mt),n=this.view.state.field(Gt);for(let s=0;sa.source==r.active.source);if(o&&o.isPending)if(r.done==null){let a=new oi(r.active.source,0);for(let l of r.updates)a=a.update(l,i);a.isPending||e.push(a)}else this.startQuery(o)}(e.length||n.open&&n.open.disabled)&&this.view.dispatch({effects:Cf.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field(Gt,!1);if(e&&e.tooltip&&this.view.state.facet(mt).closeOnBlur){let i=e.open&&Hb(this.view,e.open.tooltip);(!i||!i.dom.contains(t.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:Ro.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:th.of(!1)}),20),this.composing=0}}}),ZP=typeof navigator=="object"&&/Win/.test(navigator.platform),KP=Gr.highest(ce.domEventHandlers({keydown(t,e){let i=e.state.field(Gt,!1);if(!i||!i.open||i.open.disabled||i.open.selected<0||t.key.length>1||t.ctrlKey&&!(ZP&&t.altKey)||t.metaKey)return!1;let n=i.open.options[i.open.selected],s=i.active.find(o=>o.source==n.source),r=n.completion.commitCharacters||s.result.commitCharacters;return r&&r.indexOf(t.key)>-1&&Tf(e,n),!1}})),ew=ce.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",cursor:"pointer"},".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 JP{constructor(e,i,n,s){this.field=e,this.line=i,this.from=n,this.to=s}}class Df{constructor(e,i,n){this.field=e,this.from=i,this.to=n}map(e){let i=e.mapPos(this.from,-1,kt.TrackDel),n=e.mapPos(this.to,1,kt.TrackDel);return i==null||n==null?null:new Df(this.field,i,n)}}class Pf{constructor(e,i){this.lines=e,this.fieldPositions=i}instantiate(e,i){let n=[],s=[i],r=e.doc.lineAt(i),o=/^\s*/.exec(r.text)[0];for(let l of this.lines){if(n.length){let h=o,c=/^\t*/.exec(l)[0].length;for(let d=0;dnew Df(l.field,s[l.line]+l.from,s[l.line]+l.to));return{text:n,ranges:a}}static parse(e){let i=[],n=[],s=[],r;for(let o of e.split(/\r\n?|\n/)){for(;r=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(o);){let a=r[1]?+r[1]:null,l=r[2]||r[3]||"",h=-1;a===0&&(a=1e9);let c=l.replace(/\\[{}]/g,d=>d[1]);for(let d=0;d=h&&u.field++}for(let d of s)if(d.line==n.length&&d.from>r.index){let u=r[2]?3+(r[1]||"").length:2;d.from-=u,d.to-=u}s.push(new JP(h,n.length,r.index,r.index+c.length)),o=o.slice(0,r.index)+l+o.slice(r.index+r[0].length)}o=o.replace(/\\([{}])/g,(a,l,h)=>{for(let c of s)c.line==n.length&&c.from>h&&(c.from--,c.to--);return l}),n.push(o)}return new Pf(n,s)}}let e$=Ge.widget({widget:new class extends Rr{toDOM(){let t=document.createElement("span");return t.className="cm-snippetFieldPosition",t}ignoreEvent(){return!1}}}),t$=Ge.mark({class:"cm-snippetField"});class Lr{constructor(e,i){this.ranges=e,this.active=i,this.deco=Ge.set(e.map(n=>(n.from==n.to?e$:t$).range(n.from,n.to)),!0)}map(e){let i=[];for(let n of this.ranges){let s=n.map(e);if(!s)return null;i.push(s)}return new Lr(i,this.active)}selectionInsideField(e){return e.ranges.every(i=>this.ranges.some(n=>n.field==this.active&&n.from<=i.from&&n.to>=i.to))}}const aa=$e.define({map(t,e){return t&&t.map(e)}}),i$=$e.define(),zo=Dt.define({create(){return null},update(t,e){for(let i of e.effects){if(i.is(aa))return i.value;if(i.is(i$)&&t)return new Lr(t.ranges,i.value)}return t&&e.docChanged&&(t=t.map(e.changes)),t&&e.selection&&!t.selectionInsideField(e.selection)&&(t=null),t},provide:t=>ce.decorations.from(t,e=>e?e.deco:Ge.none)});function $f(t,e){return K.create(t.filter(i=>i.field==e).map(i=>K.range(i.from,i.to)))}function n$(t){let e=Pf.parse(t);return(i,n,s,r)=>{let{text:o,ranges:a}=e.instantiate(i.state,s),{main:l}=i.state.selection,h={changes:{from:s,to:r==l.from?l.to:r,insert:Ee.of(o)},scrollIntoView:!0,annotations:n?[Sf.of(n),lt.userEvent.of("input.complete")]:void 0};if(a.length&&(h.selection=$f(a,0)),a.some(c=>c.field>0)){let c=new Lr(a,0),d=h.effects=[aa.of(c)];i.state.field(zo,!1)===void 0&&d.push($e.appendConfig.of([zo,l$,h$,ew]))}i.dispatch(i.state.update(h))}}function tw(t){return({state:e,dispatch:i})=>{let n=e.field(zo,!1);if(!n||t<0&&n.active==0)return!1;let s=n.active+t,r=t>0&&!n.ranges.some(o=>o.field==s+t);return i(e.update({selection:$f(n.ranges,s),effects:aa.of(r?null:new Lr(n.ranges,s)),scrollIntoView:!0})),!0}}const s$=({state:t,dispatch:e})=>t.field(zo,!1)?(e(t.update({effects:aa.of(null)})),!0):!1,r$=tw(1),o$=tw(-1),a$=[{key:"Tab",run:r$,shift:o$},{key:"Escape",run:s$}],pg=le.define({combine(t){return t.length?t[0]:a$}}),l$=Gr.highest(sa.compute([pg],t=>t.facet(pg)));function Ki(t,e){return{...e,apply:n$(t)}}const h$=ce.domEventHandlers({mousedown(t,e){let i=e.state.field(zo,!1),n;if(!i||(n=e.posAtCoords({x:t.clientX,y:t.clientY}))==null)return!1;let s=i.ranges.find(r=>r.from<=n&&r.to>=n);return!s||s.field==i.active?!1:(e.dispatch({selection:$f(i.ranges,s.field),effects:aa.of(i.ranges.some(r=>r.field>s.field)?new Lr(i.ranges,s.field):null),scrollIntoView:!0}),!0)}}),iw=new class extends Jn{};iw.startSide=1;iw.endSide=-1;function c$(t={}){return[KP,Gt,mt.of(t),YP,u$,ew]}const d$=[{key:"Ctrl-Space",run:kc},{mac:"Alt-`",run:kc},{mac:"Alt-i",run:kc},{key:"Escape",run:J_},{key:"ArrowDown",run:Aa(!0)},{key:"ArrowUp",run:Aa(!1)},{key:"PageDown",run:Aa(!0,"page")},{key:"PageUp",run:Aa(!1,"page")},{key:"Enter",run:qP}],u$=Gr.highest(sa.computeN([mt],t=>t.facet(mt).defaultKeymap?[d$]:[]));function f$(t){let e=t.field(Gt,!1);return e&&e.active.some(i=>i.isPending)?"pending":e&&e.active.some(i=>i.state!=0)?"active":null}const mg=new fC,nw=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function Ia(t){return(e,i,n)=>{if(n)return!1;let s=e.node.getChild("VariableName");return s&&i(s,t),!0}}const p$={FunctionDefinition:Ia("function"),ClassDefinition:Ia("class"),ForStatement(t,e,i){if(i){for(let n=t.node.firstChild;n;n=n.nextSibling)if(n.name=="VariableName")e(n,"variable");else if(n.name=="in")break}},ImportStatement(t,e){var i,n;let{node:s}=t,r=((i=s.firstChild)===null||i===void 0?void 0:i.name)=="from";for(let o=s.getChild("import");o;o=o.nextSibling)o.name=="VariableName"&&((n=o.nextSibling)===null||n===void 0?void 0:n.name)!="as"&&e(o,r?"variable":"namespace")},AssignStatement(t,e){for(let i=t.node.firstChild;i;i=i.nextSibling)if(i.name=="VariableName")e(i,"variable");else if(i.name==":"||i.name=="AssignOp")break},ParamList(t,e){for(let i=null,n=t.node.firstChild;n;n=n.nextSibling)n.name=="VariableName"&&(!i||!/\*|AssignOp/.test(i.name))&&e(n,"variable"),i=n},CapturePattern:Ia("variable"),AsPattern:Ia("variable"),__proto__:null};function sw(t,e){let i=mg.get(e);if(i)return i;let n=[],s=!0;function r(o,a){let l=t.sliceString(o.from,o.to);n.push({label:l,type:a})}return e.cursor(Ke.IncludeAnonymous).iterate(o=>{if(o.name){let a=p$[o.name];if(a&&a(o,r,s)||!s&&nw.has(o.name))return!1;s=!1}else if(o.to-o.from>8192){for(let a of sw(t,o.node))n.push(a);return!1}}),mg.set(e,n),n}const gg=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,rw=["String","FormatString","Comment","PropertyName"];function m$(t){let e=Jt(t.state).resolveInner(t.pos,-1);if(rw.indexOf(e.name)>-1)return null;let i=e.name=="VariableName"||e.to-e.from<20&&gg.test(t.state.sliceDoc(e.from,e.to));if(!i&&!t.explicit)return null;let n=[];for(let s=e;s;s=s.parent)nw.has(s.name)&&(n=n.concat(sw(t.state.doc,s)));return{options:n,from:i?e.from:t.pos,validFor:gg}}const g$=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(t=>({label:t,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(t=>({label:t,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(t=>({label:t,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(t=>({label:t,type:"function"}))),v$=[Ki("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),Ki("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),Ki("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),Ki("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),Ki(`if \${}: +import{af as iO,k as B,ag as nO,ah as u0,ai as sO,aj as rO,d as Re,o as Tn,n as Fe,ak as Oe,i as v,p as ie,u as Jo,t as P,a as W,c as w,al as f0,s as I,b as Lt,am as Yn,S as G,F as me,an as oO,ac as aO,ao as Ss,l as ze,j as ui,r as lO,a6 as xh,K as p0,I as hO,ap as Hu,aq as os,m as Xi,q as cO,ar as qu,as as ad,H as m0,G as g0,D as Uu,E as v0,g as et,w as dO,at as uO,au as fO,C as Jt,av as pO,aw as In,ax as mO,z as b0,B as _0,ay as w0,P as gO,az as vO,aA as bO,aB as _O,Q as wO,T as yO,U as xO,M as OO,R as SO,aC as kO,V as CO,W as TO,X as DO,aD as PO,aE as $O,aF as AO,aG as IO,aH as Tp,aI as Dp,aJ as js,a4 as EO,Y as MO,Z as GO,_ as RO,a2 as zO,aK as LO,$ as NO,aL as BO,aM as WO,aN as Il,aO as VO,a9 as eo,aP as FO,aQ as QO,aR as HO,y as y0,a0 as qO,ad as UO,aS as x0,aT as ld,aU as O0,aV as El,aW as jO,J as ju,aX as Xu,ae as S0,aY as Zn,a7 as Ml,aZ as _r,a_ as XO,a$ as YO,b0 as ZO,b1 as k0,a8 as Pp}from"./panels-jwafX2lo.js";function Pi(t){return t.stableId?{id:t.stableId}:{}}function KO(t){const e=t.split(` +`),i=e.pop()??"";return{lines:e.map(n=>n.trim()).filter(n=>n.length>0),rest:i}}const Fr=t=>{const e=Number(t);return Number.isFinite(e)?e:null};function JO(t){let e;try{e=JSON.parse(t)}catch{return null}if(typeof e!="object"||e===null)return null;const i=e;if(i.event==="progress"){const n=Fr(i.step),s=Fr(i.steps),r=Fr(i.objective);return n===null||s===null||r===null?null:{kind:"progress",step:n,steps:s,objective:r,gradNorm:Fr(i.grad_norm),elapsed:Fr(i.elapsed)}}if(i.event==="done"){const{event:n,...s}=i;return{kind:"done",response:s}}return null}function $p(t,e,i){return{op:"set_optimization_value",...Pi(t),optimization:t.index,argument:e,value:i}}function eS(t){return{op:"delete_optimization",...Pi(t),optimization:t.index}}function tS(t,e,i){return{source:t,name:e}}function iS(t){const e=i=>{const n=Number(i.toFixed(6));return Object.is(n,-0)?"0.0":`${n}${Number.isInteger(n)?".0":""}`};return Array.isArray(t)?`[${t.map(e).join(", ")}]`:e(t)}function nS(t,e){let i=t;for(const[n,s]of Object.entries(e)){const r=new RegExp(String.raw`(\b${n}\s*=\s*(?:Scalar|Vector2|Vector)\(\s*(?:value\s*=\s*)?)`+String.raw`(\[[^\]]*\]|[-+]?[0-9][0-9_]*\.?[0-9]*(?:[eE][-+]?[0-9]+)?)`);i=i.replace(r,`$1${iS(s)}`)}return i}function hd(t,e=16){if(t<=0)return[];if(t===1)return[0];const i=Math.min(t,Math.max(2,e)),n=[];for(let s=0;sr===0||s!==n[r-1])}function sS(t,e){if(!t.playing||e===0)return{...t,playing:!1};const i=t.frame+1;return i>=e?{frame:e-1,playing:!1}:{frame:i,playing:!0}}function rS(t,e){return e===0?{frame:0,playing:!1}:{frame:t.frame>=e-1?0:t.frame,playing:!0}}function oS(t,e,i){if(t.length===0)return"";const n=Math.min(...t),r=Math.max(...t)-n,o=1.5,a=i-2*o,l=t.length>1?e/(t.length-1):0;return t.map((h,c)=>{const d=r>0?(h-n)/r:.5,u=t.length>1?c*l:e/2,f=o+(1-d)*a;return`${u.toFixed(1)},${f.toFixed(1)}`}).join(" ")}function Ap(t,e,i){return e<=1?i/2:Math.min(t,e-1)/(e-1)*i}function aS(t,e,i,n){if(t.length===0)return null;const s=Math.min(Math.max(e,0),t.length-1),r=Math.min(...t),a=Math.max(...t)-r,l=1.5,h=a>0?(t[s]-r)/a:.5;return{x:t.length>1?s*i/(t.length-1):i/2,y:l+(1-h)*(n-2*l)}}function lS(t,e){const i=t[e];return i?i.objective:null}const Ip=3;class C0 extends Error{constructor(e){super(e),this.name="ApiVersionMismatch"}}function hS(t){return t===Ip?null:`This page was built for playground API version ${Ip}, but the server speaks version ${t}. The page and the server come from different cadjoint builds: restart the playground (\`cadjoint-playground\` or \`python -m cadjoint.viewer.playground\`) from the install that served this page, or rebuild the frontend (\`npm run build\` in frontend/) to match the server, then reload.`}let Zi="",T0=()=>{};const Mr=new Promise(t=>{T0=t});async function Dn(t){const e=await t.text();try{return JSON.parse(e)}catch{throw new Error(`Server returned a non-JSON response (${t.status}).`)}}async function cS(){const t=await fetch("/api/session");if(!t.ok)throw new Error(`Could not start a session (${t.status}).`);const e=await Dn(t),i=hS(e.api_version);if(i)throw new C0(i);return Zi=e.token,T0(),e}async function fi(t,e,i){const n=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json","X-Cadjoint-Token":Zi},body:JSON.stringify(e),signal:i});return Dn(n)}async function D0(t,e={}){return fi("/api/compile",{source:t,...e.clientId?{client_id:e.clientId}:{}},e.signal)}async function P0(t){return fi("/api/patch",t)}async function dS(t,e={}){return fi("/api/mesh",{source:t,...e.clientId?{client_id:e.clientId}:{}},e.signal)}async function uS(t,e={}){return fi("/api/brep",{source:t,...e.clientId?{client_id:e.clientId}:{}},e.signal)}async function Ep(t,e,i){return fi("/api/mesh_refresh",{source:t,values:e,certify:i})}async function fS(t){return fi("/api/simulate",t)}async function Mp(t,e){return fi("/api/mesh_inspect",{source:t,name:e})}async function pS(t,e,i){const n=await fetch("/api/optimize",{method:"POST",headers:{"Content-Type":"application/json","X-Cadjoint-Token":Zi},body:JSON.stringify(t)});if(!n.body)return Dn(n);const s=n.body.getReader(),r=new TextDecoder;let o="",a="",l=null;for(;;){const{value:h,done:c}=await s.read(),d=r.decode(h??new Uint8Array(0),{stream:!c});o+=d,a+=d;const{lines:u,rest:f}=KO(o);o=f,c&&o.trim().length>0&&u.push(o.trim());for(const p of u){if(i)try{const g=JSON.parse(p);typeof g?.job_id=="string"&&i(g.job_id)}catch{}const m=JO(p);if(m?.kind==="progress"){const{kind:g,...b}=m;e?.(b)}else m?.kind==="done"&&(l=m.response)}if(c)break}if(l)return l;try{return JSON.parse(a)}catch{throw new Error(`Server returned a non-JSON response (${n.status}).`)}}async function mS(t){return fi("/api/lint",{source:t})}async function gS(t,e,i){return fi("/api/complete",{source:t,line:e,column:i})}async function vS(t,e,i){return fi("/api/signature",{source:t,line:e,column:i})}async function bS(t){const e=await fetch("/api/export",{method:"POST",headers:{"Content-Type":"application/json","X-Cadjoint-Token":Zi},body:JSON.stringify(t)}),i=e.headers.get("X-Cadjoint-Job")||null,n=e.headers.get("Content-Type")??"";if(!e.ok||n.startsWith("application/json")){const l=await Dn(e);return{ok:!1,error:l.error??`Export failed (${e.status}).`,errorKind:l.error_kind??null,jobId:i}}const s=await e.blob(),r=e.headers.get("Content-Disposition"),o=/filename="([^"]+)"/.exec(r??"")?.[1]??`export.${t.format}`;let a=null;try{const l=e.headers.get("X-Cadjoint-Export");a=l?JSON.parse(l):null}catch{a=null}return{ok:!0,blob:s,filename:o,jobId:i,report:a}}async function _S(){const t=await fetch("/api/scenes");return Dn(t)}async function $0(t){return fi("/api/scenes/load",{name:t})}async function wS(t,e){return fi("/api/scenes/save",{name:t,source:e})}async function A0(){await Mr;const t=await fetch("/api/jobs",{headers:{"X-Cadjoint-Token":Zi}});if(!t.ok)throw new Error(`Could not list jobs (${t.status}).`);return Dn(t)}async function yS(t){await Mr;const e=await fetch(`/api/jobs/${encodeURIComponent(t)}`,{headers:{"X-Cadjoint-Token":Zi}});if(!e.ok)return null;const i=await Dn(e);return i.ok?i.job:null}async function xS(t){await Mr;let e;try{e=await fetch(`/api/jobs/${encodeURIComponent(t)}/result`,{headers:{"X-Cadjoint-Token":Zi}})}catch(i){return{state:"error",message:i instanceof Error?i.message:String(i)}}return e.ok?{state:"ok",payload:await Dn(e)}:e.status===409?{state:"pending"}:e.status===404||e.status===410?{state:"gone"}:{state:"error",message:`Could not read that result (${e.status}).`}}async function I0(t){return await Mr,(await fetch(`/api/jobs/${encodeURIComponent(t)}/cancel`,{method:"POST",headers:{"Content-Type":"application/json","X-Cadjoint-Token":Zi},body:"{}"})).ok}async function OS(t){await Mr;try{const e=await fetch("/api/jobs/cancel_client",{method:"POST",headers:{"Content-Type":"application/json","X-Cadjoint-Token":Zi},body:JSON.stringify({client_id:t})});if(!e.ok)return 0;const i=await Dn(e);return i.ok?i.cancelled.length:0}catch{return 0}}async function SS(){await Mr,await fetch("/api/jobs/clear",{method:"POST",headers:{"Content-Type":"application/json","X-Cadjoint-Token":Zi},body:"{}"})}let cd=[],E0=[];(()=>{let t="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,i=0;e>1;if(t=E0[n])e=n+1;else return!0;if(e==i)return!1}}function Gp(t){return t>=127462&&t<=127487}const Rp=8205;function CS(t,e,i=!0,n=!0){return(i?M0:TS)(t,e,n)}function M0(t,e,i){if(e==t.length)return e;e&&G0(t.charCodeAt(e))&&R0(t.charCodeAt(e-1))&&e--;let n=Yh(t,e);for(e+=zp(n);e=0&&Gp(Yh(t,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function TS(t,e,i){for(;e>1;){let n=M0(t,e-2,i);if(n=56320&&t<57344}function R0(t){return t>=55296&&t<56320}function zp(t){return t<65536?1:2}class Ee{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,i,n){[e,i]=wr(this,e,i);let s=[];return this.decompose(0,e,s,2),n.length&&n.decompose(0,n.length,s,3),this.decompose(i,this.length,s,1),Ni.from(s,this.length-(i-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,i=this.length){[e,i]=wr(this,e,i);let n=[];return this.decompose(e,i,n,0),Ni.from(n,i-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let i=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),s=new co(this),r=new co(e);for(let o=i,a=i;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(a+=s.value.length,s.done||a>=n)return!0}}iter(e=1){return new co(this,e)}iterRange(e,i=this.length){return new z0(this,e,i)}iterLines(e,i){let n;if(e==null)n=this.iter();else{i==null&&(i=this.lines+1);let s=this.line(e).from;n=this.iterRange(s,Math.max(s,i==this.lines+1?this.length:i<=1?0:this.line(i-1).to))}return new L0(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]?Ee.empty:e.length<=32?new st(e):Ni.from(st.split(e,[]))}}class st extends Ee{constructor(e,i=DS(e)){super(),this.text=e,this.length=i}get lines(){return this.text.length}get children(){return null}lineInner(e,i,n,s){for(let r=0;;r++){let o=this.text[r],a=s+o.length;if((i?n:a)>=e)return new PS(s,a,n,o);s=a+1,n++}}decompose(e,i,n,s){let r=e<=0&&i>=this.length?this:new st(Lp(this.text,e,i),Math.min(i,this.length)-Math.max(0,e));if(s&1){let o=n.pop(),a=nl(r.text,o.text.slice(),0,r.length);if(a.length<=32)n.push(new st(a,o.length+r.length));else{let l=a.length>>1;n.push(new st(a.slice(0,l)),new st(a.slice(l)))}}else n.push(r)}replace(e,i,n){if(!(n instanceof st))return super.replace(e,i,n);[e,i]=wr(this,e,i);let s=nl(this.text,nl(n.text,Lp(this.text,0,e)),i),r=this.length+n.length-(i-e);return s.length<=32?new st(s,r):Ni.from(st.split(s,[]),r)}sliceString(e,i=this.length,n=` +`){[e,i]=wr(this,e,i);let s="";for(let r=0,o=0;r<=i&&oe&&o&&(s+=n),er&&(s+=a.slice(Math.max(0,e-r),i-r)),r=l+1}return s}flatten(e){for(let i of this.text)e.push(i)}scanIdentical(){return 0}static split(e,i){let n=[],s=-1;for(let r of e)n.push(r),s+=r.length+1,n.length==32&&(i.push(new st(n,s)),n=[],s=-1);return s>-1&&i.push(new st(n,s)),i}}class Ni extends Ee{constructor(e,i){super(),this.children=e,this.length=i,this.lines=0;for(let n of e)this.lines+=n.lines}lineInner(e,i,n,s){for(let r=0;;r++){let o=this.children[r],a=s+o.length,l=n+o.lines-1;if((i?l:a)>=e)return o.lineInner(e,i,n,s);s=a+1,n=l+1}}decompose(e,i,n,s){for(let r=0,o=0;o<=i&&r=o){let h=s&((o<=e?1:0)|(l>=i?2:0));o>=e&&l<=i&&!h?n.push(a):a.decompose(e-o,i-o,n,h)}o=l+1}}replace(e,i,n){if([e,i]=wr(this,e,i),n.lines=r&&i<=a){let l=o.replace(e-r,i-r,n),h=this.lines-o.lines+l.lines;if(l.lines>4&&l.lines>h>>6){let c=this.children.slice();return c[s]=l,new Ni(c,this.length-(i-e)+n.length)}return super.replace(r,a,l)}r=a+1}return super.replace(e,i,n)}sliceString(e,i=this.length,n=` +`){[e,i]=wr(this,e,i);let s="";for(let r=0,o=0;re&&r&&(s+=n),eo&&(s+=a.sliceString(e-o,i-o,n)),o=l+1}return s}flatten(e){for(let i of this.children)i.flatten(e)}scanIdentical(e,i){if(!(e instanceof Ni))return 0;let n=0,[s,r,o,a]=i>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;s+=i,r+=i){if(s==o||r==a)return n;let l=this.children[s],h=e.children[r];if(l!=h)return n+l.scanIdentical(h,i);n+=l.length+1}}static from(e,i=e.reduce((n,s)=>n+s.length+1,-1)){let n=0;for(let f of e)n+=f.lines;if(n<32){let f=[];for(let p of e)p.flatten(f);return new st(f,i)}let s=Math.max(32,n>>5),r=s<<1,o=s>>1,a=[],l=0,h=-1,c=[];function d(f){let p;if(f.lines>r&&f instanceof Ni)for(let m of f.children)d(m);else f.lines>o&&(l>o||!l)?(u(),a.push(f)):f instanceof st&&l&&(p=c[c.length-1])instanceof st&&f.lines+p.lines<=32?(l+=f.lines,h+=f.length+1,c[c.length-1]=new st(p.text.concat(f.text),p.length+1+f.length)):(l+f.lines>s&&u(),l+=f.lines,h+=f.length+1,c.push(f))}function u(){l!=0&&(a.push(c.length==1?c[0]:Ni.from(c,h)),h=-1,l=c.length=0)}for(let f of e)d(f);return u(),a.length==1?a[0]:new Ni(a,i)}}Ee.empty=new st([""],0);function DS(t){let e=-1;for(let i of t)e+=i.length+1;return e}function nl(t,e,i=0,n=1e9){for(let s=0,r=0,o=!0;r=i&&(l>n&&(a=a.slice(0,n-s)),s0?1:(e instanceof st?e.text.length:e.children.length)<<1]}nextInner(e,i){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,s=this.nodes[n],r=this.offsets[n],o=r>>1,a=s instanceof st?s.text.length:s.children.length;if(o==(i>0?a:0)){if(n==0)return this.done=!0,this.value="",this;i>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((r&1)==(i>0?0:1)){if(this.offsets[n]+=i,e==0)return this.lineBreak=!0,this.value=` +`,this;e--}else if(s instanceof st){let l=s.text[o+(i<0?-1:0)];if(this.offsets[n]+=i,l.length>Math.max(0,e))return this.value=e==0?l:i>0?l.slice(e):l.slice(0,l.length-e),this;e-=l.length}else{let l=s.children[o+(i<0?-1:0)];e>l.length?(e-=l.length,this.offsets[n]+=i):(i<0&&this.offsets[n]--,this.nodes.push(l),this.offsets.push(i>0?1:(l instanceof st?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 z0{constructor(e,i,n){this.value="",this.done=!1,this.cursor=new co(e,i>n?-1:1),this.pos=i>n?e.length:0,this.from=Math.min(i,n),this.to=Math.max(i,n)}nextInner(e,i){if(i<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,i<0?this.pos-this.to:this.from-this.pos);let n=i<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)*i,this.value=s.length<=n?s:i<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 L0{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:i,lineBreak:n,value:s}=this.inner.next(e);return i&&this.afterBreak?(this.value="",this.afterBreak=!1):i?(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"&&(Ee.prototype[Symbol.iterator]=function(){return this.iter()},co.prototype[Symbol.iterator]=z0.prototype[Symbol.iterator]=L0.prototype[Symbol.iterator]=function(){return this});class PS{constructor(e,i,n,s){this.from=e,this.to=i,this.number=n,this.text=s}get length(){return this.to-this.from}}function wr(t,e,i){return e=Math.max(0,Math.min(t.length,e)),[e,Math.max(e,Math.min(t.length,i))]}function Ct(t,e,i=!0,n=!0){return CS(t,e,i,n)}function $S(t){return t>=56320&&t<57344}function AS(t){return t>=55296&&t<56320}function fs(t,e){let i=t.charCodeAt(e);if(!AS(i)||e+1==t.length)return i;let n=t.charCodeAt(e+1);return $S(n)?(i-55296<<10)+(n-56320)+65536:i}function IS(t){return t<=65535?String.fromCharCode(t):(t-=65536,String.fromCharCode((t>>10)+55296,(t&1023)+56320))}function Js(t){return t<65536?1:2}const dd=/\r\n?|\n/;var kt=(function(t){return t[t.Simple=0]="Simple",t[t.TrackDel=1]="TrackDel",t[t.TrackBefore=2]="TrackBefore",t[t.TrackAfter=3]="TrackAfter",t})(kt||(kt={}));class ji{constructor(e){this.sections=e}get length(){let e=0;for(let i=0;ie)return r+(e-s);r+=a}else{if(n!=kt.Simple&&h>=e&&(n==kt.TrackDel&&se||n==kt.TrackBefore&&se))return null;if(h>e||h==e&&i<0&&!a)return e==s||i<0?r:r+l;r+=l}s=h}if(e>s)throw new RangeError(`Position ${e} is out of range for changeset of length ${s}`);return r}touchesRange(e,i=e){for(let n=0,s=0;n=0&&s<=i&&a>=e)return si?"cover":!0;s=a}return!1}toString(){let e="";for(let i=0;i=0?":"+s:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(i=>typeof i!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new ji(e)}static create(e){return new ji(e)}}class dt extends ji{constructor(e,i){super(e),this.inserted=i}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return ud(this,(i,n,s,r,o)=>e=e.replace(s,s+(n-i),o),!1),e}mapDesc(e,i=!1){return fd(this,e,i,!0)}invert(e){let i=this.sections.slice(),n=[];for(let s=0,r=0;s=0){i[s]=a,i[s+1]=o;let l=s>>1;for(;n.length0&&jn(n,i,r.text),r.forward(c),a+=c}let h=e[o++];for(;a>1].toJSON()))}return e}static of(e,i,n){let s=[],r=[],o=0,a=null;function l(c=!1){if(!c&&!s.length)return;ou||d<0||u>i)throw new RangeError(`Invalid change range ${d} to ${u} (in doc of length ${i})`);let p=f?typeof f=="string"?Ee.of(f.split(n||dd)):f:Ee.empty,m=p.length;if(d==u&&m==0)return;do&&St(s,d-o,-1),St(s,u-d,m),jn(r,s,p),o=u}}return h(e),l(!a),a}static empty(e){return new dt(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let i=[],n=[];for(let s=0;sa&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(r.length==1)i.push(r[0],0);else{for(;n.length=0&&i<=0&&i==t[s+1]?t[s]+=e:s>=0&&e==0&&t[s]==0?t[s+1]+=i:n?(t[s]+=e,t[s+1]+=i):t.push(e,i)}function jn(t,e,i){if(i.length==0)return;let n=e.length-2>>1;if(n>1])),!(i||o==t.sections.length||t.sections[o+1]<0);)a=t.sections[o++],l=t.sections[o++];e(s,h,r,c,d),s=h,r=c}}}function fd(t,e,i,n=!1){let s=[],r=n?[]:null,o=new Co(t),a=new Co(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 h=Math.min(o.len,a.len);St(s,h,-1),o.forward(h),a.forward(h)}else if(a.ins>=0&&(o.ins<0||l==o.i||o.off==0&&(a.len=0&&l=0){let h=0,c=o.len;for(;c;)if(a.ins==-1){let d=Math.min(c,a.len);h+=d,c-=d,a.forward(d)}else if(a.ins==0&&a.lenl||o.ins>=0&&o.len>l)&&(a||n.length>h),r.forward2(l),o.forward(l)}}}}class Co{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return i>=e.length?Ee.empty:e[i]}textBit(e){let{inserted:i}=this.set,n=this.i-2>>1;return n>=i.length&&!e?Ee.empty:i[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 Hn{constructor(e,i,n,s){this.from=e,this.to=i,this.flags=n,this.goalColumn=s}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 undirectional(){return(this.flags&64)>0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}map(e,i=-1){let n,s;return this.empty?n=s=e.mapPos(this.from,i):(n=e.mapPos(this.from,1),s=e.mapPos(this.to,-1)),n==this.from&&s==this.to?this:new Hn(n,s,this.flags,this.goalColumn)}extend(e,i=e,n=0){if(e<=this.anchor&&i>=this.anchor)return K.range(e,i,void 0,void 0,n);let s=Math.abs(e-this.anchor)>Math.abs(i-this.anchor)?e:i;return K.range(this.anchor,s,void 0,void 0,n)}eq(e,i=!1){return this.anchor==e.anchor&&this.head==e.head&&this.goalColumn==e.goalColumn&&(!i||!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 K.range(e.anchor,e.head)}static create(e,i,n,s){return new Hn(e,i,n,s)}}class K{constructor(e,i){this.ranges=e,this.mainIndex=i}map(e,i=-1){return e.empty?this:K.create(this.ranges.map(n=>n.map(e,i)),this.mainIndex)}eq(e,i=!1){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;ne.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 K(e.ranges.map(i=>Hn.fromJSON(i)),e.main)}static single(e,i=e){return new K([K.range(e,i)],0)}static create(e,i=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let n=0,s=0;ss.from-r.from),i=e.indexOf(n);for(let s=1;sr.head?K.range(l,a):K.range(a,l))}}return new K(e,i)}}function B0(t,e){for(let i of t.ranges)if(i.to>e)throw new RangeError("Selection points outside of document")}let Yu=0;class le{constructor(e,i,n,s,r){this.combine=e,this.compareInput=i,this.compare=n,this.isStatic=s,this.id=Yu++,this.default=e([]),this.extensions=typeof r=="function"?r(this):r}get reader(){return this}static define(e={}){return new le(e.combine||(i=>i),e.compareInput||((i,n)=>i===n),e.compare||(e.combine?(i,n)=>i===n:Zu),!!e.static,e.enables)}of(e){return new sl([],this,0,e)}compute(e,i){if(this.isStatic)throw new Error("Can't compute a static facet");return new sl(e,this,1,i)}computeN(e,i){if(this.isStatic)throw new Error("Can't compute a static facet");return new sl(e,this,2,i)}from(e,i){return i||(i=n=>n),this.compute([e],n=>i(n.field(e)))}}function Zu(t,e){return t==e||t.length==e.length&&t.every((i,n)=>i===e[n])}class sl{constructor(e,i,n,s){this.dependencies=e,this.facet=i,this.type=n,this.value=s,this.id=Yu++}dynamicSlot(e){var i;let n=this.value,s=this.facet.compareInput,r=this.id,o=e[r]>>1,a=this.type==2,l=!1,h=!1,c=[];for(let d of this.dependencies)d=="doc"?l=!0:d=="selection"?h=!0:(((i=e[d.id])!==null&&i!==void 0?i:1)&1)==0&&c.push(e[d.id]);return{create(d){return d.values[o]=n(d),1},update(d,u){if(l&&u.docChanged||h&&(u.docChanged||u.selection)||pd(d,c)){let f=n(d);if(a?!Np(f,d.values[o],s):!s(f,d.values[o]))return d.values[o]=f,1}return 0},reconfigure:(d,u)=>{let f,p=u.config.address[r];if(p!=null){let m=Rl(u,p);if(this.dependencies.every(g=>g instanceof le?u.facet(g)===d.facet(g):g instanceof Dt?u.field(g,!1)==d.field(g,!1):!0)||(a?Np(f=n(d),m,s):s(f=n(d),m)))return d.values[o]=m,0}else f=n(d);return d.values[o]=f,1}}}get extension(){return this}}function Np(t,e,i){if(t.length!=e.length)return!1;for(let n=0;nt[l.id]),s=i.map(l=>l.type),r=n.filter(l=>!(l&1)),o=t[e.id]>>1;function a(l){let h=[];for(let c=0;cn===s),e);return e.provide&&(i.provides=e.provide(i)),i}create(e){let i=e.facet(da).find(n=>n.field==this);return(i?.create||this.createF)(e)}slot(e){let i=e[this.id]>>1;return{create:n=>(n.values[i]=this.create(n),1),update:(n,s)=>{let r=n.values[i],o=this.updateF(r,s);return this.compareF(r,o)?0:(n.values[i]=o,1)},reconfigure:(n,s)=>{let r=n.facet(da),o=s.facet(da),a;return(a=r.find(l=>l.field==this))&&a!=o.find(l=>l.field==this)?(n.values[i]=a.create(n),1):s.config.address[this.id]!=null?(n.values[i]=s.field(this),0):(n.values[i]=this.create(n),1)}}}init(e){return[this,da.of({field:this,create:e})]}get extension(){return this}}const bs={lowest:4,low:3,default:2,high:1,highest:0};function Qr(t){return e=>new W0(e,t)}const Gr={highest:Qr(bs.highest),high:Qr(bs.high),default:Qr(bs.default),low:Qr(bs.low),lowest:Qr(bs.lowest)};class W0{constructor(e,i){this.inner=e,this.prec=i}get extension(){return this}}class Oh{of(e){return new md(this,e)}reconfigure(e){return Oh.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class md{constructor(e,i){this.compartment=e,this.inner=i}get extension(){return this}}class Gl{constructor(e,i,n,s,r,o){for(this.base=e,this.compartments=i,this.dynamicSlots=n,this.address=s,this.staticValues=r,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,i,n){let s=[],r=Object.create(null),o=new Map;for(let u of MS(e,i,o))u instanceof Dt?s.push(u):(r[u.facet.id]||(r[u.facet.id]=[])).push(u);let a=Object.create(null),l=[],h=[];for(let u of s)a[u.id]=h.length<<1,h.push(f=>u.slot(f));let c=n?.config.facets;for(let u in r){let f=r[u],p=f[0].facet,m=c&&c[u]||[];if(f.every(g=>g.type==0))if(a[p.id]=l.length<<1|1,Zu(m,f))l.push(n.facet(p));else{let g=p.combine(f.map(b=>b.value));l.push(n&&p.compare(g,n.facet(p))?n.facet(p):g)}else{for(let g of f)g.type==0?(a[g.id]=l.length<<1|1,l.push(g.value)):(a[g.id]=h.length<<1,h.push(b=>g.dynamicSlot(b)));a[p.id]=h.length<<1,h.push(g=>ES(g,p,f))}}let d=h.map(u=>u(a));return new Gl(e,o,d,a,l,r)}}function MS(t,e,i){let n=[[],[],[],[],[]],s=new Map;function r(o,a){let l=s.get(o);if(l!=null){if(l<=a)return;let h=n[l].indexOf(o);h>-1&&n[l].splice(h,1),o instanceof md&&i.delete(o.compartment)}if(s.set(o,a),Array.isArray(o))for(let h of o)r(h,a);else if(o instanceof md){if(i.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let h=e.get(o.compartment)||o.inner;i.set(o.compartment,h),r(h,a)}else if(o instanceof W0)r(o.inner,o.prec);else if(o instanceof Dt)n[a].push(o),o.provides&&r(o.provides,a);else if(o instanceof sl)n[a].push(o),o.facet.extensions&&r(o.facet.extensions,bs.default);else{let h=o.extension;if(!h)throw new Error(`Unrecognized extension value in extension set (${o}).`);if(h==o)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(h,a)}}return r(t,bs.default),n.reduce((o,a)=>o.concat(a))}function uo(t,e){if(e&1)return 2;let i=e>>1,n=t.status[i];if(n==4)throw new Error("Cyclic dependency between fields and/or facets");if(n&2)return n;t.status[i]=4;let s=t.computeSlot(t,t.config.dynamicSlots[i]);return t.status[i]=2|s}function Rl(t,e){return e&1?t.config.staticValues[e>>1]:t.values[e>>1]}const V0=le.define(),gd=le.define({combine:t=>t.some(e=>e),static:!0}),F0=le.define({combine:t=>t.length?t[0]:void 0,static:!0}),Q0=le.define(),H0=le.define(),q0=le.define(),U0=le.define({combine:t=>t.length?t[0]:!1});class Pn{constructor(e,i){this.type=e,this.value=i}static define(){return new GS}}class GS{of(e){return new Pn(this,e)}}class RS{constructor(e){this.map=e}of(e){return new $e(this,e)}}class $e{constructor(e,i){this.type=e,this.value=i}map(e){let i=this.type.map(this.value,e);return i===void 0?void 0:i==this.value?this:new $e(this.type,i)}is(e){return this.type==e}static define(e={}){return new RS(e.map||(i=>i))}static mapEffects(e,i){if(!e.length)return e;let n=[];for(let s of e){let r=s.map(i);r&&n.push(r)}return n}}$e.reconfigure=$e.define();$e.appendConfig=$e.define();class lt{constructor(e,i,n,s,r,o){this.startState=e,this.changes=i,this.selection=n,this.effects=s,this.annotations=r,this.scrollIntoView=o,this._doc=null,this._state=null,n&&B0(n,i.newLength),r.some(a=>a.type==lt.time)||(this.annotations=r.concat(lt.time.of(Date.now())))}static create(e,i,n,s,r,o){return new lt(e,i,n,s,r,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 i of this.annotations)if(i.type==e)return i.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let i=this.annotation(lt.userEvent);return!!(i&&(i==e||i.length>e.length&&i.slice(0,e.length)==e&&i[e.length]=="."))}}lt.time=Pn.define();lt.userEvent=Pn.define();lt.addToHistory=Pn.define();lt.remote=Pn.define();function zS(t,e){let i=[];for(let n=0,s=0;;){let r,o;if(n=t[n]))r=t[n++],o=t[n++];else if(s=0;s--){let r=n[s](t);r instanceof lt?t=r:Array.isArray(r)&&r.length==1&&r[0]instanceof lt?t=r[0]:t=X0(e,lr(r),!1)}return t}function NS(t){let e=t.startState,i=e.facet(q0),n=t;for(let s=i.length-1;s>=0;s--){let r=i[s](t);r&&Object.keys(r).length&&(n=j0(n,vd(e,r,t.changes.newLength),!0))}return n==t?t:lt.create(e,t.changes,t.selection,n.effects,n.annotations,n.scrollIntoView)}const BS=[];function lr(t){return t==null?BS:Array.isArray(t)?t:[t]}var mn=(function(t){return t[t.Word=0]="Word",t[t.Space=1]="Space",t[t.Other=2]="Other",t})(mn||(mn={}));const WS=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let bd;try{bd=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function VS(t){if(bd)return bd.test(t);for(let e=0;e"€"&&(i.toUpperCase()!=i.toLowerCase()||WS.test(i)))return!0}return!1}function FS(t){return e=>{if(!/\S/.test(e))return mn.Space;if(VS(e))return mn.Word;for(let i=0;i-1)return mn.Word;return mn.Other}}class Ne{constructor(e,i,n,s,r,o){this.config=e,this.doc=i,this.selection=n,this.values=s,this.status=e.statusTemplate.slice(),this.computeSlot=r,o&&(o._state=this);for(let a=0;as.set(h,l)),i=null),s.set(a.value.compartment,a.value.extension)):a.is($e.reconfigure)?(i=null,n=a.value):a.is($e.appendConfig)&&(i=null,n=lr(n).concat(a.value));let r;i?r=e.startState.values.slice():(i=Gl.resolve(n,s,this),r=new Ne(i,this.doc,this.selection,i.dynamicSlots.map(()=>null),(l,h)=>h.reconfigure(l,this),null).values);let o=e.startState.facet(gd)?e.newSelection:e.newSelection.asSingle();new Ne(i,e.newDoc,o,r,(a,l)=>l.update(a,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(i=>({changes:{from:i.from,to:i.to,insert:e},range:K.cursor(i.from+e.length)}))}changeByRange(e){let i=this.selection,n=e(i.ranges[0]),s=this.changes(n.changes),r=[n.range],o=lr(n.effects);for(let a=1;ao.spec.fromJSON(a,l)))}}return Ne.create({doc:e.doc,selection:K.fromJSON(e.selection),extensions:i.extensions?s.concat([i.extensions]):s})}static create(e={}){let i=Gl.resolve(e.extensions||[],new Map),n=e.doc instanceof Ee?e.doc:Ee.of((e.doc||"").split(i.staticFacet(Ne.lineSeparator)||dd)),s=e.selection?e.selection instanceof K?e.selection:K.single(e.selection.anchor,e.selection.head):K.single(0);return B0(s,n.length),i.staticFacet(gd)||(s=s.asSingle()),new Ne(i,n,s,i.dynamicSlots.map(()=>null),(r,o)=>o.create(r),null)}get tabSize(){return this.facet(Ne.tabSize)}get lineBreak(){return this.facet(Ne.lineSeparator)||` +`}get readOnly(){return this.facet(U0)}phrase(e,...i){for(let n of this.facet(Ne.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return i.length&&(e=e.replace(/\$(\$|\d*)/g,(n,s)=>{if(s=="$")return"$";let r=+(s||1);return!r||r>i.length?n:i[r-1]})),e}languageDataAt(e,i,n=-1){let s=[];for(let r of this.facet(V0))for(let o of r(this,i,n))Object.prototype.hasOwnProperty.call(o,e)&&s.push(o[e]);return s}charCategorizer(e){let i=this.languageDataAt("wordChars",e);return FS(i.length?i[0]:"")}wordAt(e){let{text:i,from:n,length:s}=this.doc.lineAt(e),r=this.charCategorizer(e),o=e-n,a=e-n;for(;o>0;){let l=Ct(i,o,!1);if(r(i.slice(l,o))!=mn.Word)break;o=l}for(;at.length?t[0]:4});Ne.lineSeparator=F0;Ne.readOnly=U0;Ne.phrases=le.define({compare(t,e){let i=Object.keys(t),n=Object.keys(e);return i.length==n.length&&i.every(s=>t[s]==e[s])}});Ne.languageData=V0;Ne.changeFilter=Q0;Ne.transactionFilter=H0;Ne.transactionExtender=q0;Oh.reconfigure=$e.define();function ea(t,e,i={}){let n={};for(let s of t)for(let r of Object.keys(s)){let o=s[r],a=n[r];if(a===void 0)n[r]=o;else if(!(a===o||o===void 0))if(Object.hasOwnProperty.call(i,r))n[r]=i[r](a,o);else throw new Error("Config merge conflict for field "+r)}for(let s in e)n[s]===void 0&&(n[s]=e[s]);return n}class Jn{eq(e){return this==e}range(e,i=e){return _d.create(e,i,this)}}Jn.prototype.startSide=Jn.prototype.endSide=0;Jn.prototype.point=!1;Jn.prototype.mapMode=kt.TrackDel;function Ku(t,e){return t==e||t.constructor==e.constructor&&t.eq(e)}let _d=class Y0{constructor(e,i,n){this.from=e,this.to=i,this.value=n}static create(e,i,n){return new Y0(e,i,n)}};function wd(t,e){return t.from-e.from||t.value.startSide-e.value.startSide}class Ju{constructor(e,i,n,s){this.from=e,this.to=i,this.value=n,this.maxPoint=s}get length(){return this.to[this.to.length-1]}findIndex(e,i,n,s=0){let r=n?this.to:this.from;for(let o=s,a=r.length;;){if(o==a)return o;let l=o+a>>1,h=r[l]-e||(n?this.value[l].endSide:this.value[l].startSide)-i;if(l==o)return h>=0?o:a;h>=0?a=l:o=l+1}}between(e,i,n,s){for(let r=this.findIndex(i,-1e9,!0),o=this.findIndex(n,1e9,!1,r);rf||u==f&&h.startSide>0&&h.endSide<=0)continue;(f-u||h.endSide-h.startSide)<0||(o<0&&(o=u),h.point&&(a=Math.max(a,f-u)),n.push(h),s.push(u-o),r.push(f-o))}return{mapped:n.length?new Ju(s,r,n,a):null,pos:o}}}class Ae{constructor(e,i,n,s){this.chunkPos=e,this.chunk=i,this.nextLayer=n,this.maxPoint=s}static create(e,i,n,s){return new Ae(e,i,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 i of this.chunk)e+=i.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:i=[],sort:n=!1,filterFrom:s=0,filterTo:r=this.length}=e,o=e.filter;if(i.length==0&&!o)return this;if(n&&(i=i.slice().sort(wd)),this.isEmpty)return i.length?Ae.of(i):this;let a=new Z0(this,null,-1).goto(0),l=0,h=[],c=new Ms;for(;a.value||l=0){let d=i[l++];c.addInner(d.from,d.to,d.value)||h.push(d)}else a.rangeIndex==1&&a.chunkIndexthis.chunkEnd(a.chunkIndex)||ra.to||r=r&&e<=r+o.length&&o.between(r,e-r,i-r,n)===!1)return}this.nextLayer.between(e,i,n)}}iter(e=0){return To.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,i=0){return To.from(e).goto(i)}static compare(e,i,n,s,r=-1){let o=e.filter(d=>d.maxPoint>0||!d.isEmpty&&d.maxPoint>=r),a=i.filter(d=>d.maxPoint>0||!d.isEmpty&&d.maxPoint>=r),l=Bp(o,a,n),h=new Hr(o,l,r),c=new Hr(a,l,r);n.iterGaps((d,u,f)=>Wp(h,d,c,u,f,s)),n.empty&&n.length==0&&Wp(h,0,c,0,0,s)}static eq(e,i,n=0,s){s==null&&(s=999999999);let r=e.filter(c=>!c.isEmpty&&i.indexOf(c)<0),o=i.filter(c=>!c.isEmpty&&e.indexOf(c)<0);if(r.length!=o.length)return!1;if(!r.length)return!0;let a=Bp(r,o),l=new Hr(r,a,0).goto(n),h=new Hr(o,a,0).goto(n);for(;;){if(l.to!=h.to||!yd(l.active,h.active)||l.point&&(!h.point||!Ku(l.point,h.point)))return!1;if(l.to>s)return!0;l.next(),h.next()}}static spans(e,i,n,s,r=-1){let o=new Hr(e,null,r).goto(i),a=i,l=o.openStart;for(;;){let h=Math.min(o.to,n);if(o.point){let c=o.activeForPoint(o.to),d=o.pointFroma&&(s.span(a,h,o.active,l),l=o.openEnd(h));if(o.to>n)return l+(o.point&&o.to>n?1:0);a=o.to,o.next()}}static of(e,i=!1){let n=new Ms;for(let s of e instanceof _d?[e]:i?QS(e):e)n.add(s.from,s.to,s.value);return n.finish()}static join(e){if(!e.length)return Ae.empty;let i=e[e.length-1];for(let n=e.length-2;n>=0;n--)for(let s=e[n];s!=Ae.empty;s=s.nextLayer)i=new Ae(s.chunkPos,s.chunk,i,Math.max(s.maxPoint,i.maxPoint));return i}}Ae.empty=new Ae([],[],null,-1);function QS(t){if(t.length>1)for(let e=t[0],i=1;i0)return t.slice().sort(wd);e=n}return t}Ae.empty.nextLayer=Ae.empty;class Ms{finishChunk(e){this.chunks.push(new Ju(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,i,n){this.addInner(e,i,n)||(this.nextLayer||(this.nextLayer=new Ms)).add(e,i,n)}addInner(e,i,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(i-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=i,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,i-e)),!0)}addChunk(e,i){if((e-this.lastTo||i.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,i.maxPoint),this.chunks.push(i),this.chunkPos.push(e);let n=i.value.length-1;return this.last=i.value[n],this.lastFrom=i.from[n]+e,this.lastTo=i.to[n]+e,!0}finish(){return this.finishInner(Ae.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let i=Ae.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,i}}function Bp(t,e,i){let n=new Map;for(let r of t)for(let o=0;o=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex=n&&s.push(new Z0(o,i,n,r));return s.length==1?s[0]:new To(s)}get startSide(){return this.value?this.value.startSide:0}goto(e,i=-1e9){for(let n of this.heap)n.goto(e,i);for(let n=this.heap.length>>1;n>=0;n--)Zh(this.heap,n);return this.next(),this}forward(e,i){for(let n of this.heap)n.forward(e,i);for(let n=this.heap.length>>1;n>=0;n--)Zh(this.heap,n);(this.to-e||this.value.endSide-i)<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(),Zh(this.heap,0)}}}function Zh(t,e){for(let i=t[e];;){let n=(e<<1)+1;if(n>=t.length)break;let s=t[n];if(n+1=0&&(s=t[n+1],n++),i.compare(s)<0)break;t[n]=i,t[e]=s,e=n}}class Hr{constructor(e,i,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=To.from(e,i,n)}goto(e,i=-1e9){return this.cursor.goto(e,i),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=i,this.openStart=-1,this.next(),this}forward(e,i){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-i)<0;)this.removeActive(this.minActive);this.cursor.forward(e,i)}removeActive(e){ua(this.active,e),ua(this.activeTo,e),ua(this.activeRank,e),this.minActive=Vp(this.active,this.activeTo)}addActive(e){let i=0,{value:n,to:s,rank:r}=this.cursor;for(;i0;)i++;fa(this.active,i,n),fa(this.activeTo,i,s),fa(this.activeRank,i,r),e&&fa(e,i,this.cursor.from),this.minActive=Vp(this.active,this.activeTo)}next(){let e=this.to,i=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&&ua(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 r=this.cursor.value;if(!r.point)this.addActive(n),this.cursor.next();else if(i&&this.cursor.to==this.to&&this.cursor.from=0&&n[s]=0&&!(this.activeRank[n]e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&i.push(this.active[n]);return i.reverse()}openEnd(e){let i=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)i++;return i}}function Wp(t,e,i,n,s,r){t.goto(e),i.goto(n);let o=n+s,a=n,l=n-e,h=!!r.boundChange;for(let c=!1;;){let d=t.to+l-i.to,u=d||t.endSide-i.endSide,f=u<0?t.to+l:i.to,p=Math.min(f,o);if(t.point||i.point?(t.point&&i.point&&Ku(t.point,i.point)&&yd(t.activeForPoint(t.to),i.activeForPoint(i.to))||r.comparePoint(a,p,t.point,i.point),c=!1):(c&&r.boundChange(a),p>a&&!yd(t.active,i.active)&&r.compareRange(a,p,t.active,i.active),h&&po)break;a=f,u<=0&&t.next(),u>=0&&i.next()}}function yd(t,e){if(t.length!=e.length)return!1;for(let i=0;i=e;n--)t[n+1]=t[n];t[e]=i}function Vp(t,e){let i=-1,n=1e9;for(let s=0;s=e)return s;if(s==t.length)break;r+=t.charCodeAt(s)==9?i-r%i:1,s=Ct(t,s)}return t.length}const xd="ͼ",Fp=typeof Symbol>"u"?"__"+xd:Symbol.for(xd),Od=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),Qp=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{};class es{constructor(e,i){this.rules=[];let{finish:n}=i||{};function s(o){return/^@/.test(o)?[o]:o.split(/,\s*/)}function r(o,a,l,h){let c=[],d=/^@(\w+)\b/.exec(o[0]),u=d&&d[1]=="keyframes";if(d&&a==null)return l.push(o[0]+";");for(let f in a){let p=a[f];if(/&/.test(f))r(f.split(/,\s*/).map(m=>o.map(g=>m.replace(/&/,g))).reduce((m,g)=>m.concat(g)),p,l);else if(p&&typeof p=="object"){if(!d)throw new RangeError("The value of a property ("+f+") should be a primitive value.");r(s(f),p,c,u)}else p!=null&&c.push(f.replace(/_.*/,"").replace(/[A-Z]/g,m=>"-"+m.toLowerCase())+": "+p+";")}(c.length||u)&&l.push((n&&!d&&!h?o.map(n):o).join(", ")+" {"+c.join(" ")+"}")}for(let o in e)r(s(o),e[o],this.rules)}getRules(){return this.rules.join(` +`)}static newName(){let e=Qp[Fp]||1;return Qp[Fp]=e+1,xd+e.toString(36)}static mount(e,i,n){let s=e[Od],r=n&&n.nonce;s?r&&s.setNonce(r):s=new qS(e,r),s.mount(Array.isArray(i)?i:[i],e)}}let Hp=new Map;class qS{constructor(e,i){let n=e.ownerDocument||e,s=n.defaultView;if(!e.head&&e.adoptedStyleSheets&&s.CSSStyleSheet){let r=Hp.get(n);if(r)return e[Od]=r;this.sheet=new s.CSSStyleSheet,Hp.set(n,this)}else this.styleTag=n.createElement("style"),i&&this.styleTag.setAttribute("nonce",i);this.modules=[],e[Od]=this}mount(e,i){let n=this.sheet,s=0,r=0;for(let o=0;o-1&&(this.modules.splice(l,1),r--,l=-1),l==-1){if(this.modules.splice(r++,0,a),n)for(let h=0;h",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},US=typeof navigator<"u"&&/Mac/.test(navigator.platform),jS=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(var yt=0;yt<10;yt++)ts[48+yt]=ts[96+yt]=String(yt);for(var yt=1;yt<=24;yt++)ts[yt+111]="F"+yt;for(var yt=65;yt<=90;yt++)ts[yt]=String.fromCharCode(yt+32),Do[yt]=String.fromCharCode(yt);for(var Kh in ts)Do.hasOwnProperty(Kh)||(Do[Kh]=ts[Kh]);function XS(t){var e=US&&t.metaKey&&t.shiftKey&&!t.ctrlKey&&!t.altKey||jS&&t.shiftKey&&t.key&&t.key.length==1||t.key=="Unidentified",i=!e&&t.key||(t.shiftKey?Do:ts)[t.keyCode]||t.key||"Unidentified";return i=="Esc"&&(i="Escape"),i=="Del"&&(i="Delete"),i=="Left"&&(i="ArrowLeft"),i=="Up"&&(i="ArrowUp"),i=="Right"&&(i="ArrowRight"),i=="Down"&&(i="ArrowDown"),i}function Bi(){var t=arguments[0];typeof t=="string"&&(t=document.createElement(t));var e=1,i=arguments[1];if(i&&typeof i=="object"&&i.nodeType==null&&!Array.isArray(i)){for(var n in i)if(Object.prototype.hasOwnProperty.call(i,n)){var s=i[n];typeof s=="string"?t.setAttribute(n,s):s!=null&&(t[n]=s)}e++}for(;e2);var ae={mac:jp||/Mac/.test(Et.platform),windows:/Win/.test(Et.platform),linux:/Linux|X11/.test(Et.platform),ie:kh,ie_version:J0?Sd.documentMode||6:Cd?+Cd[1]:kd?+kd[1]:0,gecko:qp,gecko_version:qp?+(/Firefox\/(\d+)/.exec(Et.userAgent)||[0,0])[1]:0,chrome:!!Jh,chrome_version:Jh?+Jh[1]:0,ios:jp,android:/Android\b/.test(Et.userAgent),webkit:Up,webkit_version:Up?+(/\bAppleWebKit\/(\d+)/.exec(Et.userAgent)||[0,0])[1]:0,safari:Td,safari_version:Td?+(/\bVersion\/(\d+(\.\d+)?)/.exec(Et.userAgent)||[0,0])[1]:0,tabSize:Sd.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"};function ef(t,e){for(let i in t)i=="class"&&e.class?e.class+=" "+t.class:i=="style"&&e.style?e.style+=";"+t.style:e[i]=t[i];return e}const zl=Object.create(null);function tf(t,e,i){if(t==e)return!0;t||(t=zl),e||(e=zl);let n=Object.keys(t),s=Object.keys(e);if(n.length-0!=s.length-0)return!1;for(let r of n)if(r!=i&&(s.indexOf(r)==-1||t[r]!==e[r]))return!1;return!0}function YS(t,e){for(let i=t.attributes.length-1;i>=0;i--){let n=t.attributes[i].name;e[n]==null&&t.removeAttribute(n)}for(let i in e){let n=e[i];i=="style"?t.style.cssText=n:t.getAttribute(i)!=n&&t.setAttribute(i,n)}}function Xp(t,e,i){let n=!1;if(e)for(let s in e)i&&s in i||(n=!0,s=="style"?t.style.cssText="":t.removeAttribute(s));if(i)for(let s in i)e&&e[s]==i[s]||(n=!0,s=="style"?t.style.cssText=i[s]:t.setAttribute(s,i[s]));return n}function ZS(t){let e=Object.create(null);for(let i=0;i0?3e8:-4e8:i>0?1e8:-1e8,new Gs(e,i,i,n,e.widget||null,!1)}static replace(e){let i=!!e.block,n,s;if(e.isBlockGap)n=-5e8,s=4e8;else{let{start:r,end:o}=eb(e,i);n=(r?i?-3e8:-1:5e8)-1,s=(o?i?2e8:1:-6e8)+1}return new Gs(e,n,s,i,e.widget||null,!0)}static line(e){return new ia(e)}static set(e,i=!1){return Ae.of(e,i)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}}Ge.none=Ae.empty;class ta extends Ge{constructor(e){let{start:i,end:n}=eb(e);super(i?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.attrs=e.class&&e.attributes?ef(e.attributes,{class:e.class}):e.class?{class:e.class}:e.attributes||zl}eq(e){return this==e||e instanceof ta&&this.tagName==e.tagName&&tf(this.attrs,e.attrs)}range(e,i=e){if(e>=i)throw new RangeError("Mark decorations may not be empty");return super.range(e,i)}}ta.prototype.point=!1;class ia extends Ge{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof ia&&this.spec.class==e.spec.class&&tf(this.spec.attributes,e.spec.attributes)}range(e,i=e){if(i!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,i)}}ia.prototype.mapMode=kt.TrackBefore;ia.prototype.point=!0;class Gs extends Ge{constructor(e,i,n,s,r,o){super(i,n,r,e),this.block=s,this.isReplace=o,this.mapMode=s?i<=0?kt.TrackBefore:kt.TrackAfter:kt.TrackDel}get type(){return this.startSide!=this.endSide?Ft.WidgetRange:this.startSide<=0?Ft.WidgetBefore:Ft.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof Gs&&KS(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,i=e){if(this.isReplace&&(e>i||e==i&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&i!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,i)}}Gs.prototype.point=!0;function eb(t,e=!1){let{inclusiveStart:i,inclusiveEnd:n}=t;return i==null&&(i=t.inclusive),n==null&&(n=t.inclusive),{start:i??e,end:n??e}}function KS(t,e){return t==e||!!(t&&e&&t.compare(e))}function hr(t,e,i,n=0){let s=i.length-1;s>=0&&i[s]+n>=t?i[s]=Math.max(i[s],e):i.push(t,e)}class Po extends Jn{constructor(e,i,n){super(),this.tagName=e,this.attributes=i,this.rank=n}eq(e){return e==this||e instanceof Po&&this.tagName==e.tagName&&tf(this.attributes,e.attributes)}static create(e){return new Po(e.tagName,e.attributes||zl,e.rank==null?50:Math.max(0,Math.min(e.rank,100)))}static set(e,i=!1){return Ae.of(e,i)}}Po.prototype.startSide=Po.prototype.endSide=-1;function $o(t){let e;return t.nodeType==11?e=t.getSelection?t:t.ownerDocument:e=t,e.getSelection()}function Dd(t,e){return e?t==e||t.contains(e.nodeType!=1?e.parentNode:e):!1}function fo(t,e){if(!e.anchorNode)return!1;try{return Dd(t,e.anchorNode)}catch{return!1}}function rl(t){return t.nodeType==3?Ao(t,0,t.nodeValue.length).getClientRects():t.nodeType==1?t.getClientRects():[]}function po(t,e,i,n){return i?Yp(t,e,i,n,-1)||Yp(t,e,i,n,1):!1}function is(t){for(var e=0;;e++)if(t=t.previousSibling,!t)return e}function Ll(t){return t.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(t.nodeName)}function Yp(t,e,i,n,s){for(;;){if(t==i&&e==n)return!0;if(e==(s<0?0:On(t))){if(t.nodeName=="DIV")return!1;let r=t.parentNode;if(!r||r.nodeType!=1)return!1;e=is(t)+(s<0?0:1),t=r}else if(t.nodeType==1){if(t=t.childNodes[e+(s<0?-1:0)],t.nodeType==1&&t.contentEditable=="false")return!1;e=s<0?On(t):0}else return!1}}function On(t){return t.nodeType==3?t.nodeValue.length:t.childNodes.length}function Nl(t,e){let{left:i,right:n}=t;if(i==n)return t;let s=e?i:n;return{left:s,right:s,top:t.top,bottom:t.bottom}}function JS(t){let e=t.visualViewport;return e?{left:0,right:e.width,top:0,bottom:e.height}:{left:0,right:t.innerWidth,top:0,bottom:t.innerHeight}}function tb(t,e){let i=e.width/t.offsetWidth,n=e.height/t.offsetHeight;return(i>.995&&i<1.005||!isFinite(i)||Math.abs(e.width-t.offsetWidth)<1)&&(i=1),(n>.995&&n<1.005||!isFinite(n)||Math.abs(e.height-t.offsetHeight)<1)&&(n=1),{scaleX:i,scaleY:n}}function e1(t,e,i,n,s,r,o,a){let l=t.ownerDocument,h=l.defaultView||window;for(let c=t,d=!1;c&&!d;)if(c.nodeType==1){let u,f=c==l.body,p=1,m=1;if(f)u=JS(h);else{if(/^(fixed|sticky)$/.test(getComputedStyle(c).position)&&(d=!0),c.scrollHeight<=c.clientHeight&&c.scrollWidth<=c.clientWidth){c=c.assignedSlot||c.parentNode;continue}let _=c.getBoundingClientRect();({scaleX:p,scaleY:m}=tb(c,_)),u={left:_.left,right:_.left+c.clientWidth*p,top:_.top,bottom:_.top+c.clientHeight*m}}let g=0,b=0;if(s=="nearest")e.top0&&e.bottom>u.bottom+b&&(b=e.bottom-u.bottom+o)):e.bottom>u.bottom-o&&(b=e.bottom-u.bottom+o,i<0&&e.top-b0&&e.right>u.right+g&&(g=e.right-u.right+r)):e.right>u.right-r&&(g=e.right-u.right+r,i<0&&e.leftu.bottom||e.leftu.right)&&(e={left:Math.max(e.left,u.left),right:Math.min(e.right,u.right),top:Math.max(e.top,u.top),bottom:Math.min(e.bottom,u.bottom)}),c=c.assignedSlot||c.parentNode}else if(c.nodeType==11)c=c.host;else break}function ib(t,e=!0){let i=t.ownerDocument,n=null,s=null;for(let r=t.parentNode;r&&!(r==i.body||(!e||n)&&s);)if(r.nodeType==1)!s&&r.scrollHeight>r.clientHeight&&(s=r),e&&!n&&r.scrollWidth>r.clientWidth&&(n=r),r=r.assignedSlot||r.parentNode;else if(r.nodeType==11)r=r.host;else break;return{x:n,y:s}}class t1{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:i,focusNode:n}=e;this.set(i,Math.min(e.anchorOffset,i?On(i):0),n,Math.min(e.focusOffset,n?On(n):0))}set(e,i,n,s){this.anchorNode=e,this.anchorOffset=i,this.focusNode=n,this.focusOffset=s}}let ps=null;ae.safari&&ae.safari_version>=26&&(ps=!1);function nb(t){if(t.setActive)return t.setActive();if(ps)return t.focus(ps);let e=[];for(let i=t;i&&(e.push(i,i.scrollTop,i.scrollLeft),i!=i.ownerDocument);i=i.parentNode);if(t.focus(ps==null?{get preventScroll(){return ps={preventScroll:!0},!0}}:void 0),!ps){ps=!1;for(let i=0;iMath.max(0,t.document.documentElement.scrollHeight-t.innerHeight-4):t.scrollTop>Math.max(1,t.scrollHeight-t.clientHeight-4)}function rb(t,e){for(let i=t,n=e;;){if(i.nodeType==3&&n>0)return{node:i,offset:n};if(i.nodeType==1&&n>0){if(i.contentEditable=="false")return null;i=i.childNodes[n-1],n=On(i)}else if(i.parentNode&&!Ll(i))n=is(i),i=i.parentNode;else return null}}function ob(t,e){for(let i=t,n=e;;){if(i.nodeType==3&&n=i){if(a.level==n)return o;(r<0||(s!=0?s<0?a.fromi:e[r].level>a.level))&&(r=o)}}if(r<0)throw new RangeError("Index out of range");return r}}function hb(t,e){if(t.length!=e.length)return!1;for(let i=0;i=0;m-=3)if(Ii[m+1]==-f){let g=Ii[m+2],b=g&2?s:g&4?g&1?r:s:0;b&&(Qe[d]=Qe[Ii[m]]=b),a=m;break}}else{if(Ii.length==189)break;Ii[a++]=d,Ii[a++]=u,Ii[a++]=l}else if((p=Qe[d])==2||p==1){let m=p==s;l=m?0:1;for(let g=a-3;g>=0;g-=3){let b=Ii[g+2];if(b&2)break;if(m)Ii[g+2]|=2;else{if(b&4)break;Ii[g+2]|=4}}}}}function h1(t,e,i,n){for(let s=0,r=n;s<=i.length;s++){let o=s?i[s-1].to:t,a=sl;)p==g&&(p=i[--m].from,g=m?i[m-1].to:t),Qe[--p]=f;l=c}else r=h,l++}}}function $d(t,e,i,n,s,r,o){let a=n%2?2:1;if(n%2==s%2)for(let l=e,h=0;ll&&o.push(new Fi(l,m.from,f));let g=m.direction==Rs!=!(f%2);Ad(t,g?n+1:n,s,m.inner,m.from,m.to,o),l=m.to}p=m.to}else{if(p==i||(c?Qe[p]!=a:Qe[p]==a))break;p++}u?$d(t,l,p,n+1,s,u,o):le;){let c=!0,d=!1;if(!h||l>r[h-1].to){let m=Qe[l-1];m!=a&&(c=!1,d=m==16)}let u=!c&&a==1?[]:null,f=c?n:n+1,p=l;e:for(;;)if(h&&p==r[h-1].to){if(d)break e;let m=r[--h];if(!c)for(let g=m.from,b=h;;){if(g==e)break e;if(b&&r[b-1].to==g)g=r[--b].from;else{if(Qe[g-1]==a)break e;break}}if(u)u.push(m);else{m.toQe.length;)Qe[Qe.length]=256;let n=[],s=e==Rs?0:1;return Ad(t,s,s,i,0,t.length,n),n}function cb(t){return[new Fi(0,t,0)]}let db="";function d1(t,e,i,n,s){var r;let o=n.head-t.from,a=Fi.find(e,o,(r=n.bidiLevel)!==null&&r!==void 0?r:-1,n.assoc),l=e[a],h=l.side(s,i);if(o==h){let u=a+=s?1:-1;if(u<0||u>=e.length)return null;l=e[a=u],o=l.side(!s,i),h=l.side(s,i)}let c=Ct(t.text,o,l.forward(s,i));(cl.to)&&(c=h),db=t.text.slice(Math.min(o,c),Math.max(o,c));let d=a==(s?e.length-1:0)?null:e[a+(s?1:-1)];return d&&c==h&&d.level+(s?0:1)t.some(e=>e)}),f1=le.define({combine:t=>t.some(e=>e)}),_b=le.define();class dr{constructor(e,i,n,s,r,o=!1){this.range=e,this.y=i,this.x=n,this.yMargin=s,this.xMargin=r,this.isSnapshot=o}map(e){return e.empty?this:new dr(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 dr(K.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const pa=$e.define({map:(t,e)=>t.map(e)}),wb=$e.define();function Rt(t,e,i){let n=t.facet(mb);n.length?n[0](e):window.onerror&&window.onerror(String(e),i,void 0,void 0,e)||(i?console.error(i+":",e):console.error(e))}const un=le.define({combine:t=>t.length?t[0]:!0});let p1=0;const nr=le.define({combine(t){return t.filter((e,i)=>{for(let n=0;n{let l=[];return o&&l.push(Ch.of(h=>{let c=h.plugin(a);return c?o(c):Ge.none})),r&&l.push(r(a)),l})}static fromClass(e,i){return Tt.define((n,s)=>new e(n,s),i)}}class ec{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 i=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(i)}catch(n){if(Rt(i.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(i){Rt(e.state,i,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var i;if(!((i=this.value)===null||i===void 0)&&i.destroy)try{this.value.destroy()}catch(n){Rt(e.state,n,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const yb=le.define(),of=le.define(),Ch=le.define(),xb=le.define(),af=le.define(),na=le.define(),Ob=le.define();function Kp(t,e){let i=t.state.facet(Ob);if(!i.length)return i;let n=i.map(r=>r instanceof Function?r(t):r),s=[];return Ae.spans(n,e.from,e.to,{point(){},span(r,o,a,l){let h=r-e.from,c=o-e.from,d=s;for(let u=a.length-1;u>=0;u--,l--){let f=a[u].spec.bidiIsolate,p;if(f==null&&(f=u1(e.text,h,c)),l>0&&d.length&&(p=d[d.length-1]).to==h&&p.direction==f)p.to=c,d=p.inner;else{let m={from:h,to:c,direction:f,inner:[]};d.push(m),d=m.inner}}}}),s}const Sb=le.define();function lf(t){let e=0,i=0,n=0,s=0;for(let r of t.state.facet(Sb)){let o=r(t);o&&(o.left!=null&&(e=Math.max(e,o.left)),o.right!=null&&(i=Math.max(i,o.right)),o.top!=null&&(n=Math.max(n,o.top)),o.bottom!=null&&(s=Math.max(s,o.bottom)))}return{left:e,right:i,top:n,bottom:s}}const to=le.define();class ri{constructor(e,i,n,s){this.fromA=e,this.toA=i,this.fromB=n,this.toB=s}join(e){return new ri(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 i=e.length,n=this;for(;i>0;i--){let s=e[i-1];if(!(s.fromA>n.toA)){if(s.toAs.push(new ri(r,o,a,l))),this.changedRanges=s}static create(e,i,n){return new Bl(e,i,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 m1=[];class tt{constructor(e,i,n=0){this.dom=e,this.length=i,this.flags=n,this.parent=null,e.cmTile=this}get breakAfter(){return this.flags&1}get children(){return m1}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 i=this.domAttrs;i&&YS(this.dom,i)}}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,i=this.posAtStart){let n=i;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,i,n){return null}domPosFor(e,i){let n=is(this.dom),s=this.length?e>0:i>0;return new Oi(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 Dh)return e;return null}static get(e){return e.cmTile}}class Th extends tt{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 i=this.dom,n=null,s,r=e?.node==i?e:null,o=0;for(let a of this.children){if(a.sync(e),o+=a.length+a.breakAfter,s=n?n.nextSibling:i.firstChild,r&&s!=a.dom&&(r.written=!0),a.dom.parentNode==i)for(;s&&s!=a.dom;)s=Jp(s);else i.insertBefore(a.dom,s);n=a.dom}for(s=n?n.nextSibling:i.firstChild,r&&s&&(r.written=!0);s;)s=Jp(s);this.length=o}}function Jp(t){let e=t.nextSibling;return t.parentNode.removeChild(t),e}class Dh extends Th{constructor(e,i){super(i),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 i=tt.get(e);if(i&&this.owns(i))return i;e=e.parentNode}}blockTiles(e){for(let i=[],n=this,s=0,r=0;;)if(s==n.children.length){if(!i.length)return;n=n.parent,n.breakAfter&&r++,s=i.pop()}else{let o=n.children[s++];if(o instanceof yn)i.push(s),n=o,s=0;else{let a=r+o.length,l=e(o,r);if(l!==void 0)return l;r=a+o.breakAfter}}}resolveBlock(e,i){let n,s=-1,r,o=-1;if(this.blockTiles((a,l)=>{let h=l+a.length;if(e>=l&&e<=h){if(a.isWidget()&&i>=-1&&i<=1){if(a.flags&32)return!0;a.flags&16&&(n=void 0)}(le||e==l&&(i>1?a.length:a.covers(-1)))&&(!r||!a.isWidget()&&r.isWidget())&&(r=a,o=e-l)}}),!n&&!r)throw new Error("No tile at position "+e);return n&&i<0||!r?{tile:n,offset:s}:{tile:r,offset:o}}}class yn extends Th{constructor(e,i){super(e),this.wrapper=i}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,i){let n=new yn(i||document.createElement(e.tagName),e);return i||(n.flags|=4),n}}class yr extends Th{constructor(e,i){super(e),this.attrs=i}isLine(){return!0}static start(e,i,n){let s=new yr(i||document.createElement("div"),e);return(!i||!n)&&(s.flags|=4),s}get domAttrs(){return this.attrs}resolveInline(e,i,n){let s=null,r=-1,o=null,a=-1;function l(c,d){for(let u=0,f=0;u=d&&(p.isComposite()?l(p,d-f):(!o||o.isHidden&&(i>0&&!(o.flags&32)||n&&v1(o,p)))&&(m>d||p.flags&32&&i<=1)?(o=p,a=d-f):(f=-1)&&(s=p,r=d-f)),f=m}}l(this,e);let h=(i<0?s:o)||s||o;return h?{tile:h,offset:h==s?r:a}:null}coordsIn(e,i,n){let s=this.resolveInline(e,i,!0);return s?s.tile.coordsIn(Math.max(0,s.offset),i,n):g1(this)}domIn(e,i){let n=this.resolveInline(e,i);if(n){let{tile:s,offset:r}=n;if(this.dom.contains(s.dom))return s.isText()?new Oi(s.dom,Math.min(s.dom.nodeValue.length,r)):s.domPosFor(r,s.flags&16?1:s.flags&32?-1:i);let o=n.tile.parent,a=!1;for(let l of o.children){if(a)return new Oi(l.dom,0);l==n.tile&&(a=!0)}}return new Oi(this.dom,0)}}function g1(t){let e=t.dom.lastChild;if(!e)return t.dom.getBoundingClientRect();let i=rl(e);return i[i.length-1]||null}function v1(t,e){let i=t.coordsIn(0,1),n=e.coordsIn(0,1);return i&&n&&n.tops&&(e=s);let r=e,o=e,a=0;e==0&&i<0||e==s&&i>=0?ae.chrome||ae.gecko||(e?(r--,a=1):o=0)?0:l.length-1];return ae.safari&&!a&&h.width==0&&(h=Array.prototype.find.call(l,c=>c.width)||h),n==null?h:Nl(h,(a?a>0:i<0)==n)}static of(e,i){let n=new ys(i||document.createTextNode(e),e);return i||(n.flags|=2),n}}class zs extends tt{constructor(e,i,n,s){super(e,i,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,i){return this.coordsInWidget(e,i,!1)}coordsInWidget(e,i,n){let s=this.widget.coordsAt(this.dom,e,i);if(s)return s;if(n)return Nl(this.dom.getBoundingClientRect(),this.length?e==0:i<=0);{let r=this.dom.getClientRects(),o=null;if(!r.length)return null;let a=this.flags&16?!0:this.flags&32?!1:e>0;for(let l=a?r.length-1:0;o=r[l],!(e>0?l==0:l==r.length-1||o.top0==n)}}class b1{constructor(e){this.index=0,this.beforeBreak=!1,this.parents=[],this.tile=e}advance(e,i,n){let{tile:s,index:r,beforeBreak:o,parents:a}=this;for(;e||i>0;)if(s.isComposite())if(o){if(!e)break;n&&n.break(),e--,o=!1}else if(r==s.children.length){if(!e&&!a.length)break;n&&n.leave(s),o=!!s.breakAfter,{tile:s,index:r}=a.pop(),r++}else{let l=s.children[r],h=l.breakAfter;(i>0?l.length<=e:l.length=0;a--){let l=i.marks[a],h=s.lastChild;if(h instanceof Wt&&h.mark.eq(l.mark))h.dom!=l.dom&&h.setDOM(tc(l.dom)),s=h;else{if(this.cache.reused.get(l)){let d=tt.get(l.dom);d&&d.setDOM(tc(l.dom))}let c=Wt.of(l.mark,l.dom);s.append(c),s=c}this.cache.reused.set(l,2)}let r=tt.get(e.text);r&&this.cache.reused.set(r,2);let o=new ys(e.text,e.text.nodeValue);o.flags|=8,this.pos=e.range.toB,s.append(o)}addInlineWidget(e,i,n){let s=this.afterWidget&&e.flags&48&&(this.afterWidget.flags&48)==(e.flags&48);s||this.flushBuffer();let r=this.ensureMarks(i,n);!s&&!(e.flags&16)&&r.append(this.getBuffer(1)),r.append(e),this.pos+=e.length,this.afterWidget=e}addMark(e,i,n){this.flushBuffer(),this.ensureMarks(i,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 i=this.afterWidget||this.lastBlock;i.length+=e,this.pos+=e}addLineStart(e,i){var n;e||(e=kb);let s=yr.start(e,i||((n=this.cache.find(yr))===null||n===void 0?void 0:n.dom),!!i);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,i){var n;let s=this.curLine;for(let r=e.length-1;r>=0;r--){let o=e[r],a;if(i>0&&(a=s.lastChild)&&a instanceof Wt&&a.mark.eq(o))s=a,i--;else{let l=Wt.of(o,(n=this.cache.find(Wt,h=>h.mark.eq(o)))===null||n===void 0?void 0:n.dom);s.append(l),s=l,i=0}}return s}endLine(){if(this.curLine){this.flushBuffer();let e=this.curLine.lastChild;(!e||!em(this.curLine,!1)||e.dom.nodeName!="BR"&&e.isWidget()&&!(ae.ios&&em(this.curLine,!0)))&&this.curLine.append(this.cache.findWidget(ic,0,32)||new zs(ic.toDOM(),0,ic,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){let i=e.rank*102+e.value.rank,n=new _1(e.from,e.to,e.value,i),s=this.wrappers.length;for(;s>0&&(this.wrappers[s-1].rank-n.rank||this.wrappers[s-1].to-n.to)<0;)s--;this.wrappers.splice(s,0,n)}this.wrapperPos=this.pos}getBlockPos(){var e;this.updateBlockWrappers();let i=this.root;for(let n of this.wrappers){let s=i.lastChild;if(n.fromo.wrapper.eq(n.wrapper)))===null||e===void 0?void 0:e.dom);i.append(r),i=r}}return i}blockPosCovered(){let e=this.lastBlock;return e!=null&&!e.breakAfter&&(!e.isWidget()||(e.flags&160)>0)}getBuffer(e){let i=2|(e<0?16:32),n=this.cache.find(Wl,void 0,1);return n&&(n.flags=i),n||new Wl(i)}flushBuffer(){this.afterWidget&&!(this.afterWidget.flags&32)&&(this.afterWidget.parent.append(this.getBuffer(-1)),this.afterWidget=null)}}class y1{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:r,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 r?null:s.slice(0,a)}let i=Math.min(this.text.length,this.textOff+e),n=this.text.slice(this.textOff,i);return this.textOff=i,n}}const Vl=[zs,yr,ys,Wt,Wl,yn,Dh];for(let t=0;t[]),this.index=Vl.map(()=>0),this.reused=new Map}add(e){let i=e.constructor.bucket,n=this.buckets[i];n.length<6?n.push(e):n[this.index[i]=(this.index[i]+1)%6]=e}find(e,i,n=2){let s=e.bucket,r=this.buckets[s],o=this.index[s];for(let a=0;a{if(this.cache.add(o),o.isComposite())return!1},enter:o=>this.cache.add(o),leave:()=>{},break:()=>{}}}run(e,i){let n=i&&this.getCompositionContext(i.text);for(let s=0,r=0,o=0;;){let a=os){let h=l-s;this.preserve(h,!o,!a),s=l,r+=h}if(!a)break;i&&a.fromA<=i.range.fromA&&a.toA>=i.range.toA?(this.forward(a.fromA,i.range.fromA,i.range.fromA{if(o.isWidget())if(this.openWidget)this.builder.continueWidget(l-a);else{let h=l>0||a{o.isLine()?this.builder.addLineStart(o.attrs,this.cache.maybeReuse(o)):(this.cache.add(o),o instanceof Wt&&s.unshift(o.mark)),this.openWidget=!1},leave:o=>{o.isLine()?s.length&&(s.length=r=0):o instanceof Wt&&(s.shift(),r=Math.min(r,s.length))},break:()=>{this.builder.addBreak(),this.openWidget=!1}}),this.text.skip(e)}emit(e,i){let n=null,s=this.builder,r=-1,o=Ae.spans(this.decorations,e,i,{point:(a,l,h,c,d,u)=>{if(h instanceof Gs){if(this.disallowBlockEffectsFor[u]){if(h.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(r=c.length,d>c.length)s.continueWidget(l-a);else{let f=h.widget||(h.block?xr.block:xr.inline),p=S1(h),m=this.cache.findWidget(f,l-a,p)||zs.of(f,this.view,l-a,p);h.block?(h.startSide>0&&s.addLineStartIfNotCovered(n),s.addBlockWidget(m)):(s.ensureLine(n),s.addInlineWidget(m,c,d))}n=null}else n=k1(n,h);l>a&&this.text.skip(l-a)},span:(a,l,h,c)=>{for(let d=a;d-1&&(this.openWidget=o>r),this.openWidget||s.addLineStartIfNotCovered(n),this.openMarks=o}forward(e,i,n=1){i-e<=10?this.old.advance(i-e,n,this.reuseWalker):(this.old.advance(5,-1,this.reuseWalker),this.old.advance(i-e-10,-1),this.old.advance(5,n,this.reuseWalker))}getCompositionContext(e){let i=[],n=null;for(let s=e.parentNode;;s=s.parentNode){let r=tt.get(s);if(s==this.view.contentDOM)break;r instanceof Wt?i.push(r):r?.isLine()?n=r:r instanceof yn||(s.nodeName=="DIV"&&!n&&s!=this.view.contentDOM?n=new yr(s,kb):n||i.push(Wt.of(new ta({tagName:s.nodeName.toLowerCase(),attributes:ZS(s)}),s)))}return{line:n,marks:i}}}function em(t,e){let i=n=>{for(let s of n.children)if((e?s.isText():s.length)||i(s))return!0;return!1};return i(t)}function S1(t){let e=t.isReplace?(t.startSide<0?64:0)|(t.endSide>0?128:0):t.startSide>0?32:16;return t.block&&(e|=256),e}const kb={class:"cm-line"};function k1(t,e){let i=e.spec.attributes,n=e.spec.class;return!i&&!n||(t||(t={class:"cm-line"}),i&&ef(i,t),n&&(t.class+=" "+n)),t}function C1(t){let e=[];for(let i=t.parents.length;i>1;i--){let n=i==t.parents.length?t.tile:t.parents[i].tile;n instanceof Wt&&e.push(n.mark)}return e}function tc(t){let e=tt.get(t);return e&&e.setDOM(t.cloneNode()),t}class xr extends Rr{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}}xr.inline=new xr("span");xr.block=new xr("div");const ic=new class extends Rr{toDOM(){return document.createElement("br")}get isHidden(){return!0}get editable(){return!0}};class tm{constructor(e){this.view=e,this.decorations=[],this.blockWrappers=[],this.dynamicDecorationMap=[!1],this.domChanged=null,this.hasComposition=null,this.editContextFormatting=Ge.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 Dh(e,e.contentDOM),this.updateInner([new ri(0,0,0,e.state.doc.length)],null)}update(e){var i;let n=e.changedRanges;this.minWidth>0&&n.length&&(n.every(({fromA:c,toA:d})=>dthis.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&&(!((i=this.domChanged)===null||i===void 0)&&i.newSel?s=this.domChanged.newSel.head:!G1(e.changes,this.hasComposition)&&!e.selectionSet&&(s=e.state.selection.main.head));let r=s>-1?D1(this.view,e.changes,s):null;if(this.domChanged=null,this.hasComposition){let{from:c,to:d}=this.hasComposition;n=new ri(c,d,e.changes.mapPos(c,-1),e.changes.mapPos(d,1)).addToSet(n.slice())}this.hasComposition=r?{from:r.range.fromB,to:r.range.toB}:null,(ae.ie||ae.chrome)&&!r&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,a=this.blockWrappers;this.updateDeco();let l=A1(o,this.decorations,e.changes);l.length&&(n=ri.extendWithRanges(n,l));let h=E1(a,this.blockWrappers,e.changes);return h.length&&(n=ri.extendWithRanges(n,h)),r&&!n.some(c=>c.fromA<=r.range.fromA&&c.toA>=r.range.toA)&&(n=r.range.addToSet(n.slice())),this.tile.flags&2&&n.length==0?!1:(this.updateInner(n,r),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,i){this.view.viewState.mustMeasureContent=!0;let{observer:n}=this.view;n.ignore(()=>{if(i||e.length){let o=this.tile,a=new O1(this.view,o,this.blockWrappers,this.decorations,this.dynamicDecorationMap);i&&tt.get(i.text)&&a.cache.reused.set(tt.get(i.text),2),this.tile=a.run(e,i),Ed(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 r=ae.chrome||ae.ios?{node:n.selectionRange.focusNode,written:!1}:void 0;this.tile.sync(r),r&&(r.written||n.selectionRange.focusNode!=r.node||!this.tile.dom.contains(r.node))&&(this.forceSelection=!0),this.tile.dom.style.height=""});let s=[];if(this.view.viewport.from||this.view.viewport.to-1)&&fo(n,this.view.observer.selectionRange)&&!(s&&n.contains(s));if(!(r||i||o))return;let a=this.forceSelection;this.forceSelection=!1;let l=this.view.state.selection.main,h,c;if(l.empty?c=h=this.inlineDOMNearPos(l.anchor,l.assoc||1):(c=this.inlineDOMNearPos(l.head,l.head==l.from?1:-1),h=this.inlineDOMNearPos(l.anchor,l.anchor==l.from?1:-1)),ae.gecko&&l.empty&&!this.hasComposition&&T1(h)){let u=document.createTextNode("");this.view.observer.ignore(()=>h.node.insertBefore(u,h.node.childNodes[h.offset]||null)),h=c=new Oi(u,0),a=!0}let d=this.view.observer.selectionRange;(a||!d.focusNode||(!po(h.node,h.offset,d.anchorNode,d.anchorOffset)||!po(c.node,c.offset,d.focusNode,d.focusOffset))&&!this.suppressWidgetCursorChange(d,l))&&(this.view.observer.ignore(()=>{ae.android&&ae.chrome&&n.contains(d.focusNode)&&M1(d.focusNode,n)&&(n.blur(),n.focus({preventScroll:!0}));let u=$o(this.view.root);if(u)if(l.empty){if(ae.gecko){let f=P1(h.node,h.offset);if(f&&f!=3){let p=(f==1?rb:ob)(h.node,h.offset);p&&(h=new Oi(p.node,p.offset))}}u.collapse(h.node,h.offset),l.bidiLevel!=null&&u.caretBidiLevel!==void 0&&(u.caretBidiLevel=l.bidiLevel)}else if(u.extend){u.collapse(h.node,h.offset);try{u.extend(c.node,c.offset)}catch{}}else{let f=document.createRange();l.anchor>l.head&&([h,c]=[c,h]),f.setEnd(c.node,c.offset),f.setStart(h.node,h.offset),u.removeAllRanges(),u.addRange(f)}o&&this.view.root.activeElement==n&&(n.blur(),s&&s.focus())}),this.view.observer.setSelectionRange(h,c)),this.impreciseAnchor=h.precise?null:new Oi(d.anchorNode,d.anchorOffset),this.impreciseHead=c.precise?null:new Oi(d.focusNode,d.focusOffset)}suppressWidgetCursorChange(e,i){return this.hasComposition&&i.empty&&po(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==i.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,i=e.state.selection.main,n=$o(e.root),{anchorNode:s,anchorOffset:r}=e.observer.selectionRange;if(!n||!i.empty||!i.assoc||!n.modify)return;let o=this.lineAt(i.head,i.assoc);if(!o)return;let a=o.posAtStart;if(i.head==a||i.head==a+o.length)return;let l=this.coordsAt(i.head,-1),h=this.coordsAt(i.head,1);if(!l||!h||l.bottom>h.top)return;let c=this.domAtPos(i.head+i.assoc,i.assoc);n.collapse(c.node,c.offset),n.modify("move",i.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let d=e.observer.selectionRange;e.docView.posFromDOM(d.anchorNode,d.anchorOffset)!=i.from&&n.collapse(s,r)}posFromDOM(e,i){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 r;if(e==n.dom)r=n.dom.childNodes[i];else{let o=On(e)==0?0:i==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?r=e:r=e.nextSibling}if(r==n.dom.firstChild)return s;for(;r&&!tt.get(r);)r=r.nextSibling;if(!r)return s+n.length;for(let o=0,a=s;;o++){let l=n.children[o];if(l.dom==r)return a;a+=l.length+l.breakAfter}}else return n.isText()?e==n.dom?s+i:s+(i?n.length:0):s}domAtPos(e,i){let{tile:n,offset:s}=this.tile.resolveBlock(e,i);return n.isWidget()?n.domPosFor(s,i):n.domIn(s,i)}inlineDOMNearPos(e,i){let n,s=-1,r=!1,o,a=-1,l=!1;return this.tile.blockTiles((h,c)=>{if(h.isWidget()){if(h.flags&32&&c>=e)return!0;h.flags&16&&(r=!0)}else{let d=c+h.length;if(c<=e&&(n=h,s=e-c,r=d=e&&!o&&(o=h,a=e-c,l=c>e),c>e&&o)return!0}}),!n&&!o?this.domAtPos(e,i):(r&&o?n=null:l&&n&&(o=null),n&&i<0||!o?n.domIn(s,i):o.domIn(a,i))}coordsAt(e,i,n){let{tile:s,offset:r}=this.tile.resolveBlock(e,i);return s.isWidget()?s.widget instanceof nc?null:s.coordsInWidget(r,i,!0):s.coordsIn(r,i,n)}lineAt(e,i){let{tile:n}=this.tile.resolveBlock(e,i);return n.isLine()?n:null}coordsForChar(e){let{tile:i,offset:n}=this.tile.resolveBlock(e,1);if(!i.isLine())return null;function s(r,o){if(r.isComposite())for(let a of r.children){if(a.length>=o){let l=s(a,o);if(l)return l}if(o-=a.length,o<0)break}else if(r.isText()&&oMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,a=-1,l=this.view.textDirection==Ye.LTR,h=0,c=(d,u,f)=>{for(let p=0;ps);p++){let m=d.children[p],g=u+m.length,b=m.dom.getBoundingClientRect(),{height:_}=b;if(f&&!p&&(h+=b.top-f.top),m instanceof yn)g>n&&c(m,u,b);else if(u>=n&&(h>0&&i.push(-h),i.push(_+h),h=0,o)){let O=m.dom.lastChild,x=O?rl(O):[];if(x.length){let C=x[x.length-1],y=l?C.right-b.left:b.right-C.left;y>a&&(a=y,this.minWidth=r,this.minWidthFrom=u,this.minWidthTo=g)}}f&&p==d.children.length-1&&(h+=f.bottom-b.bottom),u=g+m.breakAfter}};return c(this.tile,0,null),i}textDirectionAt(e){let{tile:i}=this.tile.resolveBlock(e,1);return getComputedStyle(i.dom).direction=="rtl"?Ye.RTL:Ye.LTR}measureTextSize(){let e=this.tile.blockTiles(o=>{if(o.isLine()&&o.children.length&&o.length<=20){let a=0,l;for(let h of o.children){if(!h.isText()||/[^ -~]/.test(h.text))return;let c=rl(h.dom);if(c.length!=1)return;a+=c[0].width,l=c[0].height}if(a)return{lineHeight:o.dom.getBoundingClientRect().height,charWidth:a/o.length,textHeight:l}}});if(e)return e;let i=document.createElement("div"),n,s,r;return i.className="cm-line",i.style.width="99999px",i.style.position="absolute",i.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.tile.dom.appendChild(i);let o=rl(i.firstChild)[0];n=i.getBoundingClientRect().height,s=o&&o.width?o.width/27:7,r=o&&o.height?o.height:n,i.remove()}),{lineHeight:n,charWidth:s,textHeight:r}}computeBlockGapDeco(){let e=[],i=this.view.viewState;for(let n=0,s=0;;s++){let r=s==i.viewports.length?null:i.viewports[s],o=r?r.from-1:this.view.state.doc.length;if(o>n){let a=(i.lineBlockAt(o).bottom-i.lineBlockAt(n).top)/this.view.scaleY;e.push(Ge.replace({widget:new nc(a),block:!0,inclusive:!0,isBlockGap:!0}).range(n,o))}if(!r)break;n=r.to+1}return Ge.set(e)}updateDeco(){let e=1,i=this.view.state.facet(Ch).map(r=>(this.dynamicDecorationMap[e++]=typeof r=="function")?r(this.view):r),n=!1,s=this.view.state.facet(af).map((r,o)=>{let a=typeof r=="function";return a&&(n=!0),a?r(this.view):r});for(s.length&&(this.dynamicDecorationMap[e++]=n,i.push(Ae.join(s))),this.decorations=[this.editContextFormatting,...i,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];etypeof r=="function"?r(this.view):r)}scrollIntoView(e){if(e.isSnapshot){let h=this.view.viewState.lineBlockAt(e.range.head);this.view.scrollDOM.scrollTop=h.top-e.yMargin,this.view.scrollDOM.scrollLeft=e.xMargin;return}for(let h of this.view.state.facet(_b))try{if(h(this.view,e.range,e))return!0}catch(c){Rt(this.view.state,c,"scroll handler")}let{range:i}=e,n=this.coordsAt(i.head,i.assoc||(i.head>i.anchor?-1:1)),s;if(!n)return;!i.empty&&(s=this.coordsAt(i.anchor,i.anchor>i.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 r=lf(this.view),o={left:n.left-r.left,top:n.top-r.top,right:n.right+r.right,bottom:n.bottom+r.bottom},{offsetWidth:a,offsetHeight:l}=this.view.scrollDOM;if(e1(this.view.scrollDOM,o,i.head1&&(n.top>window.pageYOffset+window.visualViewport.offsetTop+window.visualViewport.height||n.bottomn.isWidget()||n.children.some(i);return i(this.tile.resolveBlock(e,1).tile)}destroy(){Ed(this.tile)}}function Ed(t,e){let i=e?.get(t);if(i!=1){i==null&&t.destroy();for(let n of t.children)Ed(n,e)}}function T1(t){return t.node.nodeType==1&&t.node.firstChild&&(t.offset==0||t.node.childNodes[t.offset-1].contentEditable=="false")&&(t.offset==t.node.childNodes.length||t.node.childNodes[t.offset].contentEditable=="false")}function Cb(t,e){let i=t.observer.selectionRange;if(!i.focusNode)return null;let n=rb(i.focusNode,i.focusOffset),s=ob(i.focusNode,i.focusOffset),r=n||s;if(s&&n&&s.node!=n.node){let a=tt.get(s.node);if(!a||a.isText()&&a.text!=s.node.nodeValue)r=s;else if(t.docView.lastCompositionAfterCursor){let l=tt.get(n.node);!l||l.isText()&&l.text!=n.node.nodeValue||(r=s)}}if(t.docView.lastCompositionAfterCursor=r!=n,!r)return null;let o=e-r.offset;return{from:o,to:o+r.node.nodeValue.length,node:r.node}}function D1(t,e,i){let n=Cb(t,i);if(!n)return null;let{node:s,from:r,to:o}=n,a=s.nodeValue;if(/[\n\r]/.test(a)||t.state.doc.sliceString(n.from,n.to)!=a)return null;let l=e.invertedDesc;return{range:new ri(l.mapPos(r),l.mapPos(o),r,o),text:s}}function P1(t,e){return t.nodeType!=1?0:(e&&t.childNodes[e-1].contentEditable=="false"?1:0)|(e{ne.from&&(i=!0)}),i}class nc extends Rr{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 R1(t,e,i=1){let n=t.charCategorizer(e),s=t.doc.lineAt(e),r=e-s.from;if(s.length==0)return K.cursor(e);r==0?i=1:r==s.length&&(i=-1);let o=r,a=r;i<0?o=Ct(s.text,r,!1):a=Ct(s.text,r);let l=n(s.text.slice(o,a));for(;o>0;){let h=Ct(s.text,o,!1);if(n(s.text.slice(h,o))!=l)break;o=h}for(;at.defaultLineHeight*1.5){let a=t.viewState.heightOracle.textHeight,l=Math.floor((s-i.top-(t.defaultLineHeight-a)*.5)/a);r+=l*t.viewState.heightOracle.lineLength}let o=t.state.sliceDoc(i.from,i.to);return i.from+HS(o,r,t.state.tabSize)}function L1(t,e,i){let n=t.lineBlockAt(e);if(Array.isArray(n.type)){let s;for(let r of n.type){if(r.from>e)break;if(!(r.toe)return r;(!s||r.type==Ft.Text&&(s.type!=r.type||(i<0?r.frome)))&&(s=r)}}return s||n}return n}function N1(t,e,i,n){let s=L1(t,e.head,e.assoc||-1),r=!n||s.type!=Ft.Text||!(t.lineWrapping||s.widgetLineBreaks)?null:t.coordsAtPos(e.assoc<0&&e.head>s.from?e.head-1:e.head);if(r){let o=t.dom.getBoundingClientRect(),a=t.textDirectionAt(s.from),l=t.posAtCoords({x:i==(a==Ye.LTR)?o.right-1:o.left+1,y:(r.top+r.bottom)/2});if(l!=null)return K.cursor(l,i?-1:1)}return K.cursor(i?s.to:s.from,i?-1:1)}function im(t,e,i,n){let s=t.state.doc.lineAt(e.head),r=t.bidiSpans(s),o=t.textDirectionAt(s.from);for(let a=e,l=null;;){let h=d1(s,r,o,a,i),c=db;if(!h){if(s.number==(i?t.state.doc.lines:1))return a;c=` +`,s=t.state.doc.line(s.number+(i?1:-1)),r=t.bidiSpans(s),h=t.visualLineSide(s,!i)}if(l){if(!l(c))return a}else{if(!n)return h;l=n(c)}a=h}}function B1(t,e,i){let n=t.state.charCategorizer(e),s=n(i);return r=>{let o=n(r);return s==mn.Space&&(s=o),s==o}}function W1(t,e,i,n){let s=e.head,r=i?1:-1;if(s==(i?t.state.doc.length:0))return K.cursor(s,e.assoc);let o=e.goalColumn,a,l=t.contentDOM.getBoundingClientRect(),h=t.coordsAtPos(s,e.assoc||((e.empty?i:e.head==e.from)?1:-1)),c=t.documentTop;if(h)o==null&&(o=h.left-l.left),a=r<0?h.top:h.bottom;else{let p=t.viewState.lineBlockAt(s);o==null&&(o=Math.min(l.right-l.left,t.defaultCharacterWidth*(s-p.from))),a=(r<0?p.top:p.bottom)+c}let d=l.left+o,u=t.viewState.heightOracle.textHeight>>1,f=n??u;for(let p=0;;p+=u){let m=a+(f+p)*r,g=Md(t,{x:d,y:m},!1,r);if(i?m>l.bottom:ma:_{if(e>r&&es(t)),i.from,e.head>i.from?-1:1);return n==i.from?i:K.cursor(n,nt.viewState.docHeight)return new Wi(t.state.doc.length,-1);if(h=t.elementAtHeight(l),n==null)break;if(h.type==Ft.Text){if(n<0?h.tot.viewport.to)break;let u=t.docView.coordsAt(n<0?h.from:h.to,n>0?-1:1);if(u&&(n<0?u.top<=l+r:u.bottom>=l+r))break}let d=t.viewState.heightOracle.textHeight/2;l=n>0?h.bottom+d:h.top-d}if(t.viewport.from>=h.to||t.viewport.to<=h.from){if(i)return null;if(h.type==Ft.Text){let d=z1(t,s,h,o,a);return new Wi(d,d==h.from?1:-1)}}if(h.type!=Ft.Text)return l<(h.top+h.bottom)/2?new Wi(h.from,1):new Wi(h.to,-1);let c=t.docView.lineAt(h.from,2);return(!c||c.length!=h.length)&&(c=t.docView.lineAt(h.from,-2)),new V1(t,o,a,t.textDirectionAt(h.from)).scanTile(c,h.from)}class V1{constructor(e,i,n,s){this.view=e,this.x=i,this.y=n,this.baseDir=s,this.line=null,this.spans=null}bidiSpansAt(e){return(!this.line||this.line.from>e||this.line.to1||n.length&&(n[0].level!=this.baseDir||n[0].to+s.from>1;t:if(o.has(m)){let b=s+Math.floor(Math.random()*p);for(let _=0;_1)){if(_.bottomthis.y)(!h||h.top>_.top)&&(h=_),O=-1;else{let x=_.left>this.x?this.x-_.left:_.right(p+p+m)/3)return this.y=l.bottom-1,this.scan(e,i,!0);if(h&&h.top<(p+m+m)/3)return this.y=h.top+1,this.scan(e,i,!0)}let f=(a?this.dirAt(e[c],1):this.baseDir)==Ye.LTR;return{i:c,after:this.x>(u.left+u.right)/2==f}}scanText(e,i){let n=[];for(let r=0;r{let o=n[r]-i,a=n[r+1]-i;return Ao(e.dom,o,a).getClientRects()});return s.after?new Wi(n[s.i+1],-1):new Wi(n[s.i],1)}scanTile(e,i){if(!e.length)return new Wi(i,1);if(e.children.length==1){let a=e.children[0];if(a.isText())return this.scanText(a,i);if(a.isComposite())return this.scanTile(a,i)}let n=[i];for(let a=0,l=i;a{let l=e.children[a];return l.flags&48?null:(l.dom.nodeType==1?l.dom:Ao(l.dom,0,l.length)).getClientRects()}),r=e.children[s.i],o=n[s.i];return r.isText()?this.scanText(r,o):r.isComposite()?this.scanTile(r,o):s.after?new Wi(n[s.i+1],-1):new Wi(o,1)}}const er="￿";class F1{constructor(e,i){this.points=e,this.view=i,this.text="",this.lineSeparator=i.state.facet(Ne.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=er}readRange(e,i){if(!e)return this;let n=e.parentNode;for(let s=e;;){this.findPointBefore(n,s);let r=this.text.length;this.readNode(s);let o=tt.get(s),a=s.nextSibling;if(a==i){o?.breakAfter&&!a&&n!=this.view.contentDOM&&this.lineBreak();break}let l=tt.get(a);(o&&l?o.breakAfter:(o?o.breakAfter:Ll(s))||Ll(a)&&(s.nodeName!="BR"||o?.isWidget())&&this.text.length>r)&&!H1(a,i)&&this.lineBreak(),s=a}return this.findPointBefore(n,i),this}readTextNode(e){let i=e.nodeValue;for(let n of this.points)n.node==e&&(n.pos=this.text.length+Math.min(n.offset,i.length));for(let n=0,s=this.lineSeparator?null:/\r\n?|\n/g;;){let r=-1,o=1,a;if(this.lineSeparator?(r=i.indexOf(this.lineSeparator,n),o=this.lineSeparator.length):(a=s.exec(i))&&(r=a.index,o=a[0].length),this.append(i.slice(n,r<0?i.length:r)),r<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=r+o}}readNode(e){let i=tt.get(e),n=i&&i.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,i){for(let n of this.points)n.node==e&&e.childNodes[n.offset]==i&&(n.pos=this.text.length)}findPointInside(e,i){for(let n of this.points)(e.nodeType==3?n.node==e:e.contains(n.node))&&(n.pos=this.text.length+(Q1(e,n.node,n.offset)?i:0))}}function Q1(t,e,i){for(;;){if(!e||i-1;let{impreciseHead:r,impreciseAnchor:o}=e.docView,a=e.state.selection;if(e.state.readOnly&&i>-1)this.newSel=null;else if(i>-1&&(this.bounds=Db(e.docView.tile,i,n,0))){let l=r||o?[]:j1(e),h=new F1(l,e);h.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=h.text,this.newSel=X1(l,this.bounds.from)}else{let l=e.observer.selectionRange,h=r&&r.node==l.focusNode&&r.offset==l.focusOffset||!Dd(e.contentDOM,l.focusNode)?a.main.head:e.docView.posFromDOM(l.focusNode,l.focusOffset),c=o&&o.node==l.anchorNode&&o.offset==l.anchorOffset||!Dd(e.contentDOM,l.anchorNode)?a.main.anchor:e.docView.posFromDOM(l.anchorNode,l.anchorOffset),d=e.viewport;if((ae.ios||ae.chrome)&&h!=c&&Math.min(h,c)<=a.main.from&&Math.max(h,c)>=a.main.to&&(d.from>0||d.to-1&&a.ranges.length>1)this.newSel=a.replaceRange(K.range(c,h));else if(e.lineWrapping&&c==h&&!(a.main.empty&&a.main.head==h)&&e.inputState.lastTouchTime>Date.now()-100){let u=e.coordsAtPos(h,-1),f=0;u&&(f=e.inputState.lastTouchY<=u.bottom?-1:1),this.newSel=K.create([K.cursor(h,f)])}else this.newSel=K.single(c,h)}}}function Db(t,e,i,n){if(t.isComposite()){let s=-1,r=-1,o=-1,a=-1;for(let l=0,h=n,c=n;li)return Db(d,e,i,h);if(u>=e&&s==-1&&(s=l,r=h),h>i&&d.dom.parentNode==t.dom){o=l,a=c;break}c=u,h=u+d.breakAfter}return{from:r,to:a<0?n+t.length:a,startDOM:(s?t.children[s-1].dom.nextSibling:null)||t.dom.firstChild,endDOM:o=0?t.children[o].dom:null}}else return t.isText()?{from:n,to:n+t.length,startDOM:t.dom,endDOM:t.dom.nextSibling}:null}function Pb(t,e){let i,{newSel:n}=e,{state:s}=t,r=s.selection.main,o=t.inputState.lastKeyTime>Date.now()-100?t.inputState.lastKeyCode:-1;if(e.bounds){let{from:a,to:l}=e.bounds,h=r.from,c=null;(o===8||ae.android&&e.text.length=a&&r.to<=l&&(e.typeOver||d!=e.text)&&d.slice(0,r.from-a)==e.text.slice(0,r.from-a)&&d.slice(r.to-a)==e.text.slice(u=e.text.length-(d.length-(r.to-a)))?i={from:r.from,to:r.to,insert:Ee.of(e.text.slice(r.from-a,u).split(er))}:(f=$b(d,e.text,h-a,c))&&(ae.chrome&&o==13&&f.toB==f.from+2&&e.text.slice(f.from,f.toB)==er+er&&f.toB--,i={from:a+f.from,to:a+f.toA,insert:Ee.of(e.text.slice(f.from,f.toB).split(er))})}else n&&(!t.hasFocus&&s.facet(un)||Fl(n,r))&&(n=null);if(!i&&!n)return!1;if((ae.mac||ae.android)&&i&&i.from==i.to&&i.from==r.head-1&&/^\. ?$/.test(i.insert.toString())&&t.contentDOM.getAttribute("autocorrect")=="off"?(n&&i.insert.length==2&&(n=K.single(n.main.anchor-1,n.main.head-1)),i={from:i.from,to:i.to,insert:Ee.of([i.insert.toString().replace("."," ")])}):s.doc.lineAt(r.from).toDate.now()-50?i={from:r.from,to:r.to,insert:s.toText(t.inputState.insertingText)}:ae.chrome&&i&&i.from==i.to&&i.from==r.head&&i.insert.toString()==` + `&&t.lineWrapping&&(n&&(n=K.single(n.main.anchor-1,n.main.head-1)),i={from:r.from,to:r.to,insert:Ee.of([" "])}),i)return hf(t,i,n,o);if(n&&!Fl(n,r)){let a=!1,l="select";return t.inputState.lastSelectionTime>Date.now()-50&&(t.inputState.lastSelectionOrigin=="select"&&(a=!0),l=t.inputState.lastSelectionOrigin,l=="select.pointer"&&(n=Tb(s.facet(na).map(h=>h(t)),n))),t.dispatch({selection:n,scrollIntoView:a,userEvent:l}),!0}else return!1}function hf(t,e,i,n=-1){if(ae.ios&&t.inputState.flushIOSKey(e))return!0;let s=t.state.selection.main;if(ae.android&&(e.to==s.to&&(e.from==s.from||e.from==s.from-1&&t.state.sliceDoc(e.from,s.from)==" ")&&e.insert.length==1&&e.insert.lines==2&&cr(t.contentDOM,"Enter",13)||(e.from==s.from-1&&e.to==s.to&&e.insert.length==0||n==8&&e.insert.lengths.head)&&cr(t.contentDOM,"Backspace",8)||e.from==s.from&&e.to==s.to+1&&e.insert.length==0&&cr(t.contentDOM,"Delete",46)))return!0;let r=e.insert.toString();t.inputState.composing>=0&&t.inputState.composing++;let o,a=()=>o||(o=U1(t,e,i));return t.state.facet(gb).some(l=>l(t,e.from,e.to,r,a))||t.dispatch(a()),!0}function U1(t,e,i){let n,s=t.state,r=s.selection.main,o=-1;if(e.from==e.to&&e.fromr.to){let l=e.fromd(t)),h,l);e.from==c&&(o=c)}if(o>-1)n={changes:e,selection:K.cursor(e.from+e.insert.length,-1)};else if(e.from>=r.from&&e.to<=r.to&&e.to-e.from>=(r.to-r.from)/3&&(!i||i.main.empty&&i.main.from==e.from+e.insert.length)&&t.inputState.composing<0){let l=r.frome.to?s.sliceDoc(e.to,r.to):"";n=s.replaceSelection(t.state.toText(l+e.insert.sliceString(0,void 0,t.state.lineBreak)+h))}else{let l=s.changes(e),h=i&&i.main.to<=l.newLength?i.main:void 0;if(s.selection.ranges.length>1&&(t.inputState.composing>=0||t.inputState.compositionPendingChange)&&e.to<=r.to+10&&e.to>=r.to-10){let c=t.state.sliceDoc(e.from,e.to),d,u=i&&Cb(t,i.main.head);if(u){let p=e.insert.length-(e.to-e.from);d={from:u.from,to:u.to-p}}else d=t.state.doc.lineAt(r.head);let f=r.to-e.to;n=s.changeByRange(p=>{if(p.from==r.from&&p.to==r.to)return{changes:l,range:h||p.map(l)};let m=p.to-f,g=m-c.length;if(t.state.sliceDoc(g,m)!=c||m>=d.from&&g<=d.to)return{range:p};let b=s.changes({from:g,to:m,insert:e.insert}),_=p.to-r.to;return{changes:b,range:h?K.range(Math.max(0,h.anchor+_),Math.max(0,h.head+_)):p.map(b)}})}else n={changes:l,selection:h&&s.selection.replaceRange(h)}}let a="input.type";return(t.composing||t.inputState.compositionPendingChange&&t.inputState.compositionEndedAt>Date.now()-50)&&(t.inputState.compositionPendingChange=!1,a+=".compose",t.inputState.compositionFirstChange&&(a+=".start",t.inputState.compositionFirstChange=!1)),s.update(n,{userEvent:a,scrollIntoView:!0})}function $b(t,e,i,n){let s=Math.min(t.length,e.length),r=0;for(;r0&&a>0&&t.charCodeAt(o-1)==e.charCodeAt(a-1);)o--,a--;if(n=="end"){let l=Math.max(0,r-Math.min(o,a));i-=o+l-r}if(o=o?r-i:0;r-=l,a=r+(a-o),o=r}else if(a=a?r-i:0;r-=l,o=r+(o-a),a=r}return{from:r,toA:o,toB:a}}function j1(t){let e=[];if(t.root.activeElement!=t.contentDOM)return e;let{anchorNode:i,anchorOffset:n,focusNode:s,focusOffset:r}=t.observer.selectionRange;return i&&(e.push(new nm(i,n)),(s!=i||r!=n)&&e.push(new nm(s,r))),e}function X1(t,e){if(t.length==0)return null;let i=t[0].pos,n=t.length==2?t[1].pos:i;return i>-1&&n>-1?K.single(i+e,n+e):null}function Fl(t,e){return e.head==t.main.head&&e.anchor==t.main.anchor}class Y1{setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}constructor(e){this.view=e,this.lastKeyCode=0,this.lastKeyTime=0,this.touchActive=!1,this.lastTouchTime=0,this.lastTouchX=0,this.lastTouchY=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.lastWheelEvent=0,this.pendingIOSKey=void 0,this.lastIOSMomentumScroll=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,ae.safari&&e.contentDOM.addEventListener("input",()=>null),ae.gecko&&uk(e.contentDOM.ownerDocument)}handleEvent(e){!rk(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,i){let n=this.handlers[e];if(n){for(let s of n.observers)s(this.view,i);for(let s of n.handlers){if(i.defaultPrevented)break;if(s(this.view,i)){i.preventDefault();break}}}}ensureHandlers(e){let i=K1(e),n=this.handlers,s=this.view.contentDOM;for(let r in i)if(r!="scroll"){let o=!i[r].handlers.length,a=n[r];a&&o!=!a.handlers.length&&(s.removeEventListener(r,this.handleEvent),a=null),a||s.addEventListener(r,this.handleEvent,{passive:o})}for(let r in n)r!="scroll"&&!i[r]&&s.removeEventListener(r,this.handleEvent);this.handlers=i}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&&Ib.indexOf(e.keyCode)<0&&(this.tabFocusMode=-1),ae.android&&ae.chrome&&!e.synthetic&&(e.keyCode==13||e.keyCode==8))return this.view.observer.delayAndroidKey(e.key,e.keyCode),!0;if(ae.ios&&!e.synthetic&&!e.altKey&&!e.metaKey&&(Ab.some(i=>i.keyCode==e.keyCode)&&!e.ctrlKey||J1.indexOf(e.key)>-1&&e.ctrlKey)){let i={ctrlKey:e.ctrlKey,altKey:e.altKey,metaKey:e.metaKey,shiftKey:e.shiftKey};return i.shiftKey&&ae.ios&&!/^(off|none)$/.test(this.view.contentDOM.autocapitalize)&&Z1(this.view.win)&&(i.shiftKey=!1),this.pendingIOSKey={key:e.key,keyCode:e.keyCode,mods:i},setTimeout(()=>this.flushIOSKey(),250),!0}return e.keyCode!=229&&this.view.observer.forceFlush(),!1}flushIOSKey(e){let i=this.pendingIOSKey;return!i||i.key=="Enter"&&e&&e.from0?!0:ae.safari&&!ae.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 Z1(t){return t.visualViewport?t.visualViewport.height*t.visualViewport.scale/t.document.documentElement.clientHeight<.85:!1}function sm(t,e){return(i,n)=>{try{return e.call(t,n,i)}catch(s){Rt(i.state,s)}}}function K1(t){let e=Object.create(null);function i(n){return e[n]||(e[n]={observers:[],handlers:[]})}for(let n of t){let s=n.spec,r=s&&s.plugin.domEventHandlers,o=s&&s.plugin.domEventObservers;if(r)for(let a in r){let l=r[a];l&&i(a).handlers.push(sm(n.value,l))}if(o)for(let a in o){let l=o[a];l&&i(a).observers.push(sm(n.value,l))}}for(let n in Di)i(n).handlers.push(Di[n]);for(let n in Nt)i(n).observers.push(Nt[n]);return e}const Ab=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],J1="dthko",Ib=[16,17,18,20,91,92,224,225],ma=6;function ga(t){return Math.max(0,t)*.7+8}function ek(t,e){return Math.max(Math.abs(t.clientX-e.clientX),Math.abs(t.clientY-e.clientY))}class tk{constructor(e,i,n,s){this.view=e,this.startEvent=i,this.style=n,this.mustSelect=s,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=i,this.scrollParents=ib(e.contentDOM),this.atoms=e.state.facet(na).map(o=>o(e));let r=e.contentDOM.ownerDocument;r.addEventListener("mousemove",this.move=this.move.bind(this)),r.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=i.shiftKey,this.multiple=e.state.facet(Ne.allowMultipleSelections)&&ik(e,i),this.dragging=sk(e,i)&&Gb(i)==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&&ek(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let i=0,n=0,s=0,r=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:r,bottom:a}=this.scrollParents.y.getBoundingClientRect());let l=lf(this.view);e.clientX-l.left<=s+ma?i=-ga(s-e.clientX):e.clientX+l.right>=o-ma&&(i=ga(e.clientX-o)),e.clientY-l.top<=r+ma?n=-ga(r-e.clientY):e.clientY+l.bottom>=a-ma&&(n=ga(e.clientY-a)),this.setScrollSpeed(i,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,i){this.scrollSpeed={x:e,y:i},e||i?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){let{x:e,y:i}=this.scrollSpeed;e&&this.scrollParents.x&&(this.scrollParents.x.scrollLeft+=e,e=0),i&&this.scrollParents.y&&(this.scrollParents.y.scrollTop+=i,i=0),(e||i)&&this.view.win.scrollBy(e,i),this.dragging===!1&&this.select(this.lastEvent)}select(e){let{view:i}=this,n=Tb(this.atoms,this.style.get(e,this.extend,this.multiple));(this.mustSelect||!n.eq(i.state.selection,this.dragging===!1))&&this.view.dispatch({selection:n,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.transactions.some(i=>i.isUserEvent("input.type"))?this.destroy():this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}}function ik(t,e){let i=t.state.facet(ub);return i.length?i[0](e):ae.mac?e.metaKey:e.ctrlKey}function nk(t,e){let i=t.state.facet(fb);return i.length?i[0](e):ae.mac?!e.altKey:!e.ctrlKey}function sk(t,e){let{main:i}=t.state.selection;if(i.empty)return!1;let n=$o(t.root);if(!n||n.rangeCount==0)return!0;let s=n.getRangeAt(0).getClientRects();for(let r=0;r=e.clientX&&o.top<=e.clientY&&o.bottom>=e.clientY)return!0}return!1}function rk(t,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let i=e.target,n;i!=t.contentDOM;i=i.parentNode)if(!i||i.nodeType==11||(n=tt.get(i))&&n.isWidget()&&!n.isHidden&&n.widget.ignoreEvent(e))return!1;return!0}const Di=Object.create(null),Nt=Object.create(null),Eb=ae.ie&&ae.ie_version<15||ae.ios&&ae.webkit_version<604;function ok(t){let e=t.dom.parentNode;if(!e)return;let i=e.appendChild(document.createElement("textarea"));i.style.cssText="position: fixed; left: -10000px; top: 10px",i.focus(),setTimeout(()=>{t.focus(),i.remove(),Mb(t,i.value)},50)}function Ph(t,e,i){for(let n of t.facet(e))i=n(i,t);return i}function Mb(t,e){e=Ph(t.state,sf,e);let{state:i}=t,n,s=1,r=i.toText(e),o=r.lines==i.selection.ranges.length;if(Gd!=null&&i.selection.ranges.every(l=>l.empty)&&Gd==r.toString()){let l=-1;n=i.changeByRange(h=>{let c=i.doc.lineAt(h.from);if(c.from==l)return{range:h};l=c.from;let d=i.toText((o?r.line(s++).text:e)+i.lineBreak);return{changes:{from:c.from,insert:d},range:K.cursor(h.from+d.length)}})}else o?n=i.changeByRange(l=>{let h=r.line(s++);return{changes:{from:l.from,to:l.to,insert:h.text},range:K.cursor(l.from+h.length)}}):n=i.replaceSelection(r);t.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}Nt.scroll=t=>{let e=t.inputState;e.lastScrollTop=t.scrollDOM.scrollTop,e.lastScrollLeft=t.scrollDOM.scrollLeft,ae.ios&&!e.touchActive&&(e.lastIOSMomentumScroll=Date.now())};Nt.wheel=Nt.mousewheel=t=>{t.inputState.lastWheelEvent=Date.now()};Di.keydown=(t,e)=>(t.inputState.setSelectionOrigin("select"),e.keyCode==27&&t.inputState.tabFocusMode!=0&&(t.inputState.tabFocusMode=Date.now()+2e3),!1);Nt.touchstart=(t,e)=>{let i=t.inputState,n=e.targetTouches[0];i.touchActive=!0,i.lastTouchTime=Date.now(),n&&(i.lastTouchX=n.clientX,i.lastTouchY=n.clientY),i.setSelectionOrigin("select.pointer")};Nt.touchmove=t=>{t.inputState.setSelectionOrigin("select.pointer")};Nt.touchend=(t,e)=>{t.inputState.touchActive=!1};Di.mousedown=(t,e)=>{if(t.observer.flush(),t.inputState.lastTouchTime>Date.now()-2e3)return!1;let i=null;for(let n of t.state.facet(pb))if(i=n(t,e),i)break;if(!i&&e.button==0&&(i=lk(t,e)),i){let n=!t.hasFocus;t.inputState.startMouseSelection(new tk(t,e,i,n)),n&&t.observer.ignore(()=>{nb(t.contentDOM);let r=t.root.activeElement;r&&!r.contains(t.contentDOM)&&r.blur()});let s=t.inputState.mouseSelection;if(s)return s.start(e),s.dragging===!1}else t.inputState.setSelectionOrigin("select.pointer");return!1};function rm(t,e,i,n){if(n==1)return K.cursor(e,i);if(n==2)return R1(t.state,e,i);{let s=t.docView.lineAt(e,i),r=t.state.doc.lineAt(s?s.posAtEnd:e),o=s?s.posAtStart:r.from,a=s?s.posAtEnd:r.to;return aDate.now()-400&&Math.abs(e.clientX-t.clientX)<2&&Math.abs(e.clientY-t.clientY)<2?(am+1)%3:1}function lk(t,e){let i=t.posAndSideAtCoords({x:e.clientX,y:e.clientY},!1),n=Gb(e),s=t.state.selection;return{update(r){r.docChanged&&(i.pos=r.changes.mapPos(i.pos),s=s.map(r.changes))},get(r,o,a){let l=t.posAndSideAtCoords({x:r.clientX,y:r.clientY},!1),h,c=rm(t,l.pos,l.assoc,n);if(i.pos!=l.pos&&!o){let d=rm(t,i.pos,i.assoc,n),u=Math.min(d.from,c.from),f=Math.max(d.to,c.to);c=u1&&(h=hk(s,l.pos))?h:a?s.addRange(c):K.create([c])}}}function hk(t,e){for(let i=0;i=e)return K.create(t.ranges.slice(0,i).concat(t.ranges.slice(i+1)),t.mainIndex==i?0:t.mainIndex-(t.mainIndex>i?1:0))}return null}Di.dragstart=(t,e)=>{let{selection:{main:i}}=t.state;if(e.target.draggable){let s=t.docView.tile.nearest(e.target);if(s&&s.isWidget()){let r=s.posAtStart,o=r+s.length;(r>=i.to||o<=i.from)&&(i=K.undirectionalRange(r,o))}}let{inputState:n}=t;return n.mouseSelection&&(n.mouseSelection.dragging=!0),n.draggedContent=i,e.dataTransfer&&(e.dataTransfer.setData("Text",Ph(t.state,rf,t.state.sliceDoc(i.from,i.to))),e.dataTransfer.effectAllowed="copyMove"),!1};Di.dragend=t=>(t.inputState.draggedContent=null,!1);function hm(t,e,i,n){if(i=Ph(t.state,sf,i),!i)return;let s=t.posAtCoords({x:e.clientX,y:e.clientY},!1),{draggedContent:r}=t.inputState,o=n&&r&&nk(t,e)?{from:r.from,to:r.to}:null,a={from:s,insert:i},l=t.state.changes(o?[o,a]:a);t.focus(),t.dispatch({changes:l,selection:{anchor:l.mapPos(s,-1),head:l.mapPos(s,1)},userEvent:o?"move.drop":"input.drop"}),t.inputState.draggedContent=null}Di.drop=(t,e)=>{if(!e.dataTransfer)return!1;if(t.state.readOnly)return!0;let i=e.dataTransfer.files;if(i&&i.length){let n=Array(i.length),s=0,r=()=>{++s==i.length&&hm(t,e,n.filter(o=>o!=null).join(t.state.lineBreak),!1)};for(let o=0;o{/[\x00-\x08\x0e-\x1f]{2}/.test(a.result)||(n[o]=a.result),r()},a.readAsText(i[o])}return!0}else{let n=e.dataTransfer.getData("Text");if(n)return hm(t,e,n,!0),!0}return!1};Di.paste=(t,e)=>{if(t.state.readOnly)return!0;t.observer.flush();let i=Eb?null:e.clipboardData;return i?(Mb(t,i.getData("text/plain")||i.getData("text/uri-list")),!0):(ok(t),!1)};function ck(t,e){let i=t.dom.parentNode;if(!i)return;let n=i.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(),t.focus()},50)}function dk(t){let e=[],i=[],n=!1;for(let s of t.selection.ranges)s.empty||(e.push(t.sliceDoc(s.from,s.to)),i.push(s));if(!e.length){let s=-1;for(let{from:r}of t.selection.ranges){let o=t.doc.lineAt(r);o.number>s&&(e.push(o.text),i.push({from:o.from,to:Math.min(t.doc.length,o.to+1)})),s=o.number}n=!0}return{text:Ph(t,rf,e.join(t.lineBreak)),ranges:i,linewise:n}}let Gd=null;Di.copy=Di.cut=(t,e)=>{if(!fo(t.contentDOM,t.observer.selectionRange))return!1;let{text:i,ranges:n,linewise:s}=dk(t.state);if(!i&&!s)return!1;Gd=s?i:null,e.type=="cut"&&!t.state.readOnly&&t.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"});let r=Eb?null:e.clipboardData;return r?(r.clearData(),r.setData("text/plain",i),!0):(ck(t,i),!1)};const Rb=Pn.define();function zb(t,e){let i=[];for(let n of t.facet(vb)){let s=n(t,e);s&&i.push(s)}return i.length?t.update({effects:i,annotations:Rb.of(!0)}):null}function Lb(t){setTimeout(()=>{let e=t.hasFocus;if(e!=t.inputState.notifiedFocused){let i=zb(t.state,e);i?t.dispatch(i):t.update([])}},10)}Nt.focus=t=>{t.inputState.lastFocusTime=Date.now(),!t.scrollDOM.scrollTop&&(t.inputState.lastScrollTop||t.inputState.lastScrollLeft)&&(t.scrollDOM.scrollTop=t.inputState.lastScrollTop,t.scrollDOM.scrollLeft=t.inputState.lastScrollLeft),Lb(t)};Nt.blur=t=>{t.observer.clearSelectionRange(),Lb(t)};Nt.compositionstart=Nt.compositionupdate=t=>{t.observer.editContext||(t.inputState.compositionFirstChange==null&&(t.inputState.compositionFirstChange=!0),t.inputState.composing<0&&(t.inputState.composing=0))};Nt.compositionend=t=>{t.observer.editContext||(t.inputState.composing=-1,t.inputState.compositionEndedAt=Date.now(),t.inputState.compositionPendingKey=!0,t.inputState.compositionPendingChange=t.observer.pendingRecords().length>0,t.inputState.compositionFirstChange=null,ae.chrome&&ae.android?t.observer.flushSoon():t.inputState.compositionPendingChange?Promise.resolve().then(()=>t.observer.flush()):setTimeout(()=>{t.inputState.composing<0&&t.docView.hasComposition&&t.update([])},50))};Nt.contextmenu=t=>{t.inputState.lastContextMenu=Date.now()};Di.beforeinput=(t,e)=>{var i,n;if((e.inputType=="insertText"||e.inputType=="insertCompositionText")&&(t.inputState.insertingText=e.data,t.inputState.insertingTextAt=Date.now()),e.inputType=="insertReplacementText"&&t.observer.editContext){let r=(i=e.dataTransfer)===null||i===void 0?void 0:i.getData("text/plain"),o=e.getTargetRanges();if(r&&o.length){let a=o[0],l=t.posAtDOM(a.startContainer,a.startOffset),h=t.posAtDOM(a.endContainer,a.endOffset);return hf(t,{from:l,to:h,insert:t.state.toText(r)},null),!0}}let s;if(ae.chrome&&ae.android&&(s=Ab.find(r=>r.inputType==e.inputType))&&(t.observer.delayAndroidKey(s.key,s.keyCode),s.key=="Backspace"||s.key=="Delete")){let r=((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)>r+10&&t.hasFocus&&(t.contentDOM.blur(),t.focus())},100)}return ae.ios&&e.inputType=="deleteContentForward"&&t.observer.flushSoon(),ae.safari&&e.inputType=="insertText"&&t.inputState.composing>=0&&setTimeout(()=>Nt.compositionend(t,e),20),!1};const cm=new Set;function uk(t){cm.has(t)||(cm.add(t),t.addEventListener("copy",()=>{}),t.addEventListener("cut",()=>{}))}const dm=["pre-wrap","normal","pre-line","break-spaces"];let Or=!1;function um(){Or=!1}class fk{constructor(e){this.lineWrapping=e,this.doc=Ee.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30}heightForGap(e,i){let n=this.doc.lineAt(i).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.max(0,Math.ceil((i-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 dm.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let i=!1;for(let n=0;n-1,l=Math.abs(i-this.lineHeight)>.3||this.lineWrapping!=a;if(this.lineWrapping=a,this.lineHeight=i,this.charWidth=n,this.textHeight=s,this.lineLength=r,l){this.heightSamples={};for(let h=0;h0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e){this.height!=e&&(Math.abs(this.height-e)>ol&&(Or=!0),this.height=e)}replace(e,i,n){return zt.of(n)}decomposeLeft(e,i){i.push(this)}decomposeRight(e,i){i.push(this)}applyChanges(e,i,n,s){let r=this,o=n.doc;for(let a=s.length-1;a>=0;a--){let{fromA:l,toA:h,fromB:c,toB:d}=s[a],u=r.lineAt(l,He.ByPosNoHeight,n.setDoc(i),0,0),f=u.to>=h?u:r.lineAt(h,He.ByPosNoHeight,n,0,0);for(d+=f.to-h,h=f.to;a>0&&u.from<=s[a-1].toA;)l=s[a-1].fromA,c=s[a-1].fromB,a--,lr*2){let a=e[i-1];a.break?e.splice(--i,1,a.left,null,a.right):e.splice(--i,1,a.left,a.right),n+=1+a.break,s-=a.size}else if(r>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,r-=a.size}else break;else if(s=r&&o(this.lineAt(0,He.ByPos,n,s,r))}setMeasuredHeight(e){let i=e.heights[e.index++];i<0?(this.spaceAbove=-i,i=e.heights[e.index++]):this.spaceAbove=0,this.setHeight(i)}updateHeight(e,i=0,n=!1,s){return s&&s.from<=i&&s.more&&this.setMeasuredHeight(s),this.outdated=!1,this}toString(){return`block(${this.length})`}}class Zt extends Nb{constructor(e,i,n){super(e,i,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0,this.spaceAbove=n}mainBlock(e,i){return new _i(i,this.length,e+this.spaceAbove,this.height-this.spaceAbove,this.breaks)}replace(e,i,n){let s=n[0];return n.length==1&&(s instanceof Zt||s instanceof _t&&s.flags&4)&&Math.abs(this.length-s.length)<10?(s instanceof _t?s=new Zt(s.length,this.height,this.spaceAbove):s.height=this.height,this.outdated||(s.outdated=!1),s):zt.of(n)}updateHeight(e,i=0,n=!1,s){return s&&s.from<=i&&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 _t extends zt{constructor(e){super(e,0)}heightMetrics(e,i){let n=e.doc.lineAt(i).number,s=e.doc.lineAt(i+this.length).number,r=s-n+1,o,a=0;if(e.lineWrapping){let l=Math.min(this.height,e.lineHeight*r);o=l/r,this.length>r+1&&(a=(this.height-l)/(this.length-r-1))}else o=this.height/r;return{firstLine:n,lastLine:s,perLine:o,perChar:a}}blockAt(e,i,n,s){let{firstLine:r,lastLine:o,perLine:a,perChar:l}=this.heightMetrics(i,s);if(i.lineWrapping){let h=s+(e0){let r=n[n.length-1];r instanceof _t?n[n.length-1]=new _t(r.length+s):n.push(null,new _t(s-1))}if(e>0){let r=n[0];r instanceof _t?n[0]=new _t(e+r.length):n.unshift(new _t(e-1),null)}return zt.of(n)}decomposeLeft(e,i){i.push(new _t(e-1),null)}decomposeRight(e,i){i.push(null,new _t(this.length-e-1))}updateHeight(e,i=0,n=!1,s){let r=i+this.length;if(s&&s.from<=i+this.length&&s.more){let o=[],a=Math.max(i,s.from),l=-1;for(s.from>i&&o.push(new _t(s.from-i-1).updateHeight(e,i));a<=r&&s.more;){let c=e.doc.lineAt(a).length;o.length&&o.push(null);let d=s.heights[s.index++],u=0;d<0&&(u=-d,d=s.heights[s.index++]),l==-1?l=d:Math.abs(d-l)>=ol&&(l=-2);let f=new Zt(c,d,u);f.outdated=!1,o.push(f),a+=c+1}a<=r&&o.push(null,new _t(r-a).updateHeight(e,a));let h=zt.of(o);return(l<0||Math.abs(h.height-this.height)>=ol||Math.abs(l-this.heightMetrics(e,i).perLine)>=ol)&&(Or=!0),Ql(this,h)}else(n||this.outdated)&&(this.setHeight(e.heightForGap(i,i+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}}class gk extends zt{constructor(e,i,n){super(e.length+i+n.length,e.height+n.height,i|(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,i,n,s){let r=n+this.left.height;return ea))return h;let c=i==He.ByPosNoHeight?He.ByPosNoHeight:He.ByPos;return l?h.join(this.right.lineAt(a,c,n,o,a)):this.left.lineAt(a,c,n,s,r).join(h)}forEachLine(e,i,n,s,r,o){let a=s+this.left.height,l=r+this.left.length+this.break;if(this.break)e=l&&this.right.forEachLine(e,i,n,a,l,o);else{let h=this.lineAt(l,He.ByPos,n,s,r);e=e&&h.from<=i&&o(h),i>h.to&&this.right.forEachLine(h.to+1,i,n,a,l,o)}}replace(e,i,n){let s=this.left.length+this.break;if(ithis.left.length)return this.balanced(this.left,this.right.replace(e-s,i-s,n));let r=[];e>0&&this.decomposeLeft(e,r);let o=r.length;for(let a of n)r.push(a);if(e>0&&fm(r,o-1),i=n&&i.push(null)),e>n&&this.right.decomposeLeft(e-n,i)}decomposeRight(e,i){let n=this.left.length,s=n+this.break;if(e>=s)return this.right.decomposeRight(e-s,i);e2*i.size||i.size>2*e.size?zt.of(this.break?[e,null,i]:[e,i]):(this.left=Ql(this.left,e),this.right=Ql(this.right,i),this.setHeight(e.height+i.height),this.outdated=e.outdated||i.outdated,this.size=e.size+i.size,this.length=e.length+this.break+i.length,this)}updateHeight(e,i=0,n=!1,s){let{left:r,right:o}=this,a=i+r.length+this.break,l=null;return s&&s.from<=i+r.length&&s.more?l=r=r.updateHeight(e,i,n,s):r.updateHeight(e,i,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(r,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function fm(t,e){let i,n;t[e]==null&&(i=t[e-1])instanceof _t&&(n=t[e+1])instanceof _t&&t.splice(e-1,3,new _t(i.length+1+n.length))}const vk=5;class cf{constructor(e,i){this.pos=e,this.oracle=i,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,i){if(this.lineStart>-1){let n=Math.min(i,this.lineEnd),s=this.nodes[this.nodes.length-1];s instanceof Zt?s.length+=n-this.pos:(n>this.pos||!this.isCovered)&&this.nodes.push(new Zt(n-this.pos,-1,0)),this.writtenTo=n,i>n&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=i}point(e,i,n){if(e=vk)&&this.addLineDeco(s,r,o)}else i>e&&this.span(e,i);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:i}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=i,this.writtenToe&&this.nodes.push(new Zt(this.pos-e,-1,0)),this.writtenTo=this.pos}blankContent(e,i){let n=new _t(i-e);return this.oracle.doc.lineAt(e).to==i&&(n.flags|=4),n}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof Zt)return e;let i=new Zt(0,-1,0);return this.nodes.push(i),i}addBlock(e){this.enterLine();let i=e.deco;i&&i.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,i&&i.endSide>0&&(this.covering=e)}addLineDeco(e,i,n){let s=this.ensureLine();s.length+=n,s.collapsed+=n,s.widgetHeight=Math.max(s.widgetHeight,e),s.breaks+=i,this.writtenTo=this.pos=this.pos+n}finish(e){let i=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(i instanceof Zt)&&!this.isCovered?this.nodes.push(new Zt(0,-1,0)):(this.writtenToc.clientHeight||c.scrollWidth>c.clientWidth)&&d.overflow!="visible"){let u=c.getBoundingClientRect();r=Math.max(r,u.left),o=Math.min(o,u.right),a=Math.max(a,u.top),l=Math.min(h==t.parentNode?s.innerHeight:l,u.bottom)}h=d.position=="absolute"||d.position=="fixed"?c.offsetParent:c.parentNode}else if(h.nodeType==11)h=h.host;else break;return{left:r-i.left,right:Math.max(r,o)-i.left,top:a-(i.top+e),bottom:Math.max(a,l)-(i.top+e)}}function yk(t){let e=t.getBoundingClientRect(),i=t.ownerDocument.defaultView||window;return e.left0&&e.top0}function xk(t,e){let i=t.getBoundingClientRect();return{left:0,right:i.right-i.left,top:e,bottom:i.bottom-(i.top+e)}}class rc{constructor(e,i,n,s){this.from=e,this.to=i,this.size=n,this.displaySize=s}static same(e,i){if(e.length!=i.length)return!1;for(let n=0;ntypeof s!="function"&&s.class=="cm-lineWrapping");this.heightOracle=new fk(n),this.stateDeco=gm(i),this.heightMap=zt.empty().applyChanges(this.stateDeco,Ee.empty,this.heightOracle.setDoc(i.doc),[new ri(0,0,0,i.doc.length)]);for(let s=0;s<2&&(this.viewport=this.getViewport(0,null),!!this.updateForViewport());s++);this.updateViewportLines(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=Ge.set(this.lineGaps.map(s=>s.draw(this,!1))),this.scrollParent=e.scrollDOM,this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:i}=this.state.selection;for(let n=0;n<=1;n++){let s=n?i.head:i.anchor;if(!e.some(({from:r,to:o})=>s>=r&&s<=o)){let{from:r,to:o}=this.lineBlockAt(s);e.push(new va(r,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?mm:new df(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(io(e,this.scaler))})}update(e,i=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=gm(this.state);let s=e.changedRanges,r=ri.extendWithRanges(s,bk(n,this.stateDeco,e?e.changes:dt.empty(this.state.doc.length))),o=this.heightMap.height,a=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollOffset);um(),this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),r),(this.heightMap.height!=o||Or)&&(e.flags|=2),a?(this.scrollAnchorPos=e.changes.mapPos(a.from,-1),this.scrollAnchorHeight=a.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=o);let l=r.length?this.mapViewport(this.viewport,e.changes):this.viewport;(i&&(i.range.headl.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,i));let h=l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,e.flags|=this.updateForViewport(),(h||!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),i&&(this.scrollTarget=i),!this.mustEnforceCursorAssoc&&(e.selectionSet||e.focusChanged)&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(f1)&&(this.mustEnforceCursorAssoc=!0)}measure(){let{view:e}=this,i=e.contentDOM,n=window.getComputedStyle(i),s=this.heightOracle,r=n.whiteSpace;this.defaultTextDirection=n.direction=="rtl"?Ye.RTL:Ye.LTR;let o=this.heightOracle.mustRefreshForWrapping(r)||this.mustMeasureContent==="refresh",a=i.getBoundingClientRect(),l=o||this.mustMeasureContent||this.contentDOMHeight!=a.height;this.contentDOMHeight=a.height,this.mustMeasureContent=!1;let h=0,c=0;if(a.width&&a.height){let{scaleX:C,scaleY:y}=tb(i,a);(C>.005&&Math.abs(this.scaleX-C)>.005||y>.005&&Math.abs(this.scaleY-y)>.005)&&(this.scaleX=C,this.scaleY=y,h|=16,o=l=!0)}let d=(parseInt(n.paddingTop)||0)*this.scaleY,u=(parseInt(n.paddingBottom)||0)*this.scaleY;(this.paddingTop!=d||this.paddingBottom!=u)&&(this.paddingTop=d,this.paddingBottom=u,h|=18),this.editorWidth!=e.scrollDOM.clientWidth&&(s.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,h|=16);let f=ib(this.view.contentDOM,!1).y;f!=this.scrollParent&&(this.scrollParent=f,this.scrollAnchorHeight=-1,this.scrollOffset=0);let p=this.getScrollOffset();this.scrollOffset!=p&&(this.scrollAnchorHeight=-1,this.scrollOffset=p),this.scrolledToBottom=sb(this.scrollParent||e.win);let m=(this.printing?xk:wk)(i,this.paddingTop),g=m.top-this.pixelViewport.top,b=m.bottom-this.pixelViewport.bottom;this.pixelViewport=m;let _=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(_!=this.inView&&(this.inView=_,_&&(l=!0)),!this.inView&&!this.scrollTarget&&!yk(e.dom))return 0;let O=a.width;if((this.contentDOMWidth!=O||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=a.width,this.editorHeight=e.scrollDOM.clientHeight,h|=16),l){let C=e.docView.measureVisibleLineHeights(this.viewport);if(s.mustRefreshForHeights(C)&&(o=!0),o||s.lineWrapping&&Math.abs(O-this.contentDOMWidth)>s.charWidth){let{lineHeight:y,charWidth:T,textHeight:k}=e.docView.measureTextSize();o=y>0&&s.refresh(r,y,T,k,Math.max(5,O/T),C),o&&(e.docView.minWidth=0,h|=16)}g>0&&b>0?c=Math.max(g,b):g<0&&b<0&&(c=Math.min(g,b)),um();for(let y of this.viewports){let T=y.from==this.viewport.from?C:e.docView.measureVisibleLineHeights(y);this.heightMap=(o?zt.empty().applyChanges(this.stateDeco,Ee.empty,this.heightOracle,[new ri(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(s,0,o,new pk(y.from,T))}Or&&(h|=2)}let x=!this.viewportIsAppropriate(this.viewport,c)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return x&&(h&2&&(h|=this.updateScaler()),this.viewport=this.getViewport(c,this.scrollTarget),h|=this.updateForViewport()),(h&2||x)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(o?[]:this.lineGaps,e)),h|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),h}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,i){let n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),s=this.heightMap,r=this.heightOracle,{visibleTop:o,visibleBottom:a}=this,l=new va(s.lineAt(o-n*1e3,He.ByHeight,r,0,0).from,s.lineAt(a+(1-n)*1e3,He.ByHeight,r,0,0).to);if(i){let{head:h}=i.range;if(hl.to){let c=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),d=s.lineAt(h,He.ByPos,r,0,0),u;i.y=="center"?u=(d.top+d.bottom)/2-c/2:i.y=="start"||i.y=="nearest"&&h=a+Math.max(10,Math.min(n,250)))&&s>o-2*1e3&&r>1,o=s<<1;if(this.defaultTextDirection!=Ye.LTR&&!n)return[];let a=[],l=(c,d,u,f)=>{if(d-cc&&bb.from>=u.from&&b.to<=u.to&&Math.abs(b.from-c)b.from<_&&b.to>_));if(!g){if(dO.from<=d&&O.to>=d)){let O=i.moveToLineBoundary(K.cursor(d),!1,!0).head;O>c&&(d=O)}let b=this.gapSize(u,c,d,f),_=n||b<2e6?b:2e6;g=new rc(c,d,b,_)}a.push(g)},h=c=>{if(c.length2e6)for(let y of e)y.from>=c.from&&y.fromc.from&&l(c.from,f,c,d),pi.draw(this,this.heightOracle.lineWrapping))))}computeVisibleRanges(e){let i=this.stateDeco;this.lineGaps.length&&(i=i.concat(this.lineGapDeco));let n=[];Ae.spans(i,this.viewport.from,this.viewport.to,{span(r,o){n.push({from:r,to:o})},point(){}},20);let s=0;if(n.length!=this.visibleRanges.length)s=12;else for(let r=0;r=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(i=>i.from<=e&&i.to>=e)||io(this.heightMap.lineAt(e,He.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(i=>i.top<=e&&i.bottom>=e)||io(this.heightMap.lineAt(this.scaler.fromDOM(e),He.ByHeight,this.heightOracle,0,0),this.scaler)}getScrollOffset(){return(this.scrollParent==this.view.scrollDOM?this.scrollParent.scrollTop:(this.scrollParent?this.scrollParent.getBoundingClientRect().top:0)-this.view.contentDOM.getBoundingClientRect().top)*this.scaleY}scrollAnchorAt(e){let i=this.lineBlockAtHeight(e+8);return i.from>=this.viewport.from||this.viewportLines[0].top-e>200?i:this.viewportLines[0]}elementAtHeight(e){return io(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 va{constructor(e,i){this.from=e,this.to=i}}function Sk(t,e,i){let n=[],s=t,r=0;return Ae.spans(i,t,e,{span(){},point(o,a){o>s&&(n.push({from:s,to:o}),r+=o-s),s=a}},20),s=1)return e[e.length-1].to;let n=Math.floor(t*i);for(let s=0;;s++){let{from:r,to:o}=e[s],a=o-r;if(n<=a)return r+n;n-=a}}function _a(t,e){let i=0;for(let{from:n,to:s}of t.ranges){if(e<=s){i+=e-n;break}i+=s-n}return i/t.total}function kk(t,e){for(let i of t)if(e(i))return i}const mm={toDOM(t){return t},fromDOM(t){return t},scale:1,eq(t){return t==this}};function gm(t){let e=t.facet(Ch).filter(n=>typeof n!="function"),i=t.facet(af).filter(n=>typeof n!="function");return i.length&&e.push(Ae.join(i)),e}class df{constructor(e,i,n){let s=0,r=0,o=0;this.viewports=n.map(({from:a,to:l})=>{let h=i.lineAt(a,He.ByPos,e,0,0).top,c=i.lineAt(l,He.ByPos,e,0,0).bottom;return s+=c-h,{from:a,to:l,top:h,bottom:c,domTop:0,domBottom:0}}),this.scale=(7e6-s)/(i.height-s);for(let a of this.viewports)a.domTop=o+(a.top-r)*this.scale,o=a.domBottom=a.domTop+(a.bottom-a.top),r=a.bottom}toDOM(e){for(let i=0,n=0,s=0;;i++){let r=ii.from==e.viewports[n].from&&i.to==e.viewports[n].to):!1}}function io(t,e){if(e.scale==1)return t;let i=e.toDOM(t.top),n=e.toDOM(t.bottom);return new _i(t.from,t.length,i,n-i,Array.isArray(t._content)?t._content.map(s=>io(s,e)):t._content)}const wa=le.define({combine:t=>t.join(" ")}),Rd=le.define({combine:t=>t.indexOf(!0)>-1}),zd=es.newName(),Bb=es.newName(),Wb=es.newName(),Vb={"&light":"."+Bb,"&dark":"."+Wb};function Ld(t,e,i){return new es(e,{finish(n){return/&/.test(n)?n.replace(/&\w*/,s=>{if(s=="&")return t;if(!i||!i[s])throw new RangeError(`Unsupported selector: ${s}`);return i[s]}):t+" "+n}})}const Ck=Ld("."+zd,{"&":{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":{userSelect:"none",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-selectionHandle":{backgroundColor:"currentColor",width:"1.5px"},".cm-selectionHandle-start::before, .cm-selectionHandle-end::before":{content:'""',backgroundColor:"inherit",borderRadius:"50%",width:"8px",height:"8px",position:"absolute",left:"-3.25px"},".cm-selectionHandle-start::before":{top:"-8px"},".cm-selectionHandle-end::before":{bottom:"-8px"},".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"},".cm-panels-top":{top:"0"},".cm-panels-bottom":{bottom:"0"},"&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,')`,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"}},Vb),Tk={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},oc=ae.ie&&ae.ie_version<=11;class Dk{constructor(e){this.view=e,this.active=!1,this.editContext=null,this.selectionRange=new t1,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(i=>{for(let n of i)this.queue.push(n);(ae.ie&&ae.ie_version<=11||ae.ios&&e.composing)&&i.some(n=>n.type=="childList"&&n.removedNodes.length||n.type=="characterData"&&n.oldValue.length>n.target.nodeValue.length)?this.flushSoon():this.flush()}),window.EditContext&&ae.android&&e.constructor.EDIT_CONTEXT!==!1&&!(ae.chrome&&ae.chrome_version<126)&&(this.editContext=new $k(e),e.state.facet(un)&&(e.contentDOM.editContext=this.editContext.editContext)),oc&&(this.onCharData=i=>{this.queue.push({target:i.target,type:"characterData",oldValue:i.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 i;((i=this.view.docView)===null||i===void 0?void 0:i.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),i.length>0&&i[i.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(i=>{i.length>0&&i[i.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((i,n)=>i!=e[n]))){this.gapIntersection.disconnect();for(let i of e)this.gapIntersection.observe(i);this.gaps=e}}onSelectionChange(e){let i=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,s=this.selectionRange;if(n.state.facet(un)?n.root.activeElement!=this.dom:!fo(this.dom,s))return;let r=s.anchorNode&&n.docView.tile.nearest(s.anchorNode);if(r&&r.isWidget()&&r.widget.ignoreEvent(e)){i||(this.selectionChanged=!1);return}(ae.ie&&ae.ie_version<=11||ae.android&&ae.chrome)&&!n.state.selection.main.empty&&s.focusNode&&po(s.focusNode,s.focusOffset,s.anchorNode,s.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,i=$o(e.root);if(!i)return!1;let n=ae.safari&&e.root.nodeType==11&&e.root.activeElement==this.dom&&Pk(this.view,i)||i;if(!n||this.selectionRange.eq(n))return!1;let s=fo(this.dom,n);return s&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let r=this.delayedAndroidKey;r&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=r.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&r.force&&cr(this.dom,r.key,r.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(s)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:i,force:this.lastChange{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 i=-1,n=-1,s=!1;for(let r of e){let o=this.readMutation(r);o&&(o.typeOver&&(s=!0),i==-1?{from:i,to:n}=o:(i=Math.min(o.from,i),n=Math.max(o.to,n)))}return{from:i,to:n,typeOver:s}}readChange(){let{from:e,to:i,typeOver:n}=this.processRecords(),s=this.selectionChanged&&fo(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 r=new q1(this.view,e,i,n);return this.view.docView.domChanged={newSel:r.newSel?r.newSel.main:null},r}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let i=this.readChange();if(!i)return this.view.requestMeasure(),!1;let n=this.view.state,s=Pb(this.view,i);return this.view.state==n&&(i.domChanged||i.newSel&&!Fl(this.view.state.selection,i.newSel.main))&&this.view.update([]),s}readMutation(e){let i=this.view.docView.tile.nearest(e.target);if(!i||i.isWidget())return null;if(i.markDirty(e.type=="attributes"),e.type=="childList"){let n=vm(i,e.previousSibling||e.target.previousSibling,-1),s=vm(i,e.nextSibling||e.target.nextSibling,1);return{from:n?i.posAfter(n):i.posAtStart,to:s?i.posBefore(s):i.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:i.posAtStart,to:i.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(un)!=e.state.facet(un)&&(e.view.contentDOM.editContext=e.state.facet(un)?this.editContext.editContext:null))}destroy(){var e,i,n;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(i=this.gapIntersection)===null||i===void 0||i.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 vm(t,e,i){for(;e;){let n=tt.get(e);if(n&&n.parent==t)return n;let s=e.parentNode;e=s!=t.dom?s:i>0?e.nextSibling:e.previousSibling}return null}function bm(t,e){let i=e.startContainer,n=e.startOffset,s=e.endContainer,r=e.endOffset,o=t.docView.domAtPos(t.state.selection.main.anchor,1);return po(o.node,o.offset,s,r)&&([i,n,s,r]=[s,r,i,n]),{anchorNode:i,anchorOffset:n,focusNode:s,focusOffset:r}}function Pk(t,e){if(e.getComposedRanges){let s=e.getComposedRanges(t.root)[0];if(s)return bm(t,s)}let i=null;function n(s){s.preventDefault(),s.stopImmediatePropagation(),i=s.getTargetRanges()[0]}return t.contentDOM.addEventListener("beforeinput",n,!0),t.dom.ownerDocument.execCommand("indent"),t.contentDOM.removeEventListener("beforeinput",n,!0),i?bm(t,i):null}class $k{constructor(e){this.from=0,this.to=0,this.pendingContextChange=null,this.handlers=Object.create(null),this.composing=null,this.resetRange(e.state);let i=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:r,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 h=l-a>n.text.length;a==this.from&&rthis.to&&(l=r);let c=$b(e.state.sliceDoc(a,l),n.text,(h?s.from:s.to)-a,h?"end":null);if(!c){let u=K.single(this.toEditorPos(n.selectionStart),this.toEditorPos(n.selectionEnd));Fl(u,s)||e.dispatch({selection:u,userEvent:"select"});return}let d={from:c.from+a,to:c.toA+a,insert:Ee.of(n.text.slice(c.from,c.toB).split(` +`))};if((ae.mac||ae.android)&&d.from==o-1&&/^\. ?$/.test(n.text)&&e.contentDOM.getAttribute("autocorrect")=="off"&&(d={from:a,to:l,insert:Ee.of([n.text.replace("."," ")])}),this.pendingContextChange=d,!e.state.readOnly){let u=this.to-this.from+(d.to-d.from+d.insert.length);hf(e,d,K.single(this.toEditorPos(n.selectionStart,u),this.toEditorPos(n.selectionEnd,u)))}this.pendingContextChange&&(this.revertPending(e.state),this.setSelection(e.state)),d.from=0&&!/[\\p{Alphabetic}\\p{Number}_]/.test(i.text.slice(Math.max(0,n.updateRangeStart-1),Math.min(i.text.length,n.updateRangeStart+1)))&&this.handlers.compositionend(n)},this.handlers.characterboundsupdate=n=>{let s=[],r=null;for(let o=this.toEditorPos(n.rangeStart),a=this.toEditorPos(n.rangeEnd);o{let s=[];for(let r of n.getTextFormats()){let o=r.underlineStyle,a=r.underlineThickness;if(!/none/i.test(o)&&!/none/i.test(a)){let l=this.toEditorPos(r.rangeStart),h=this.toEditorPos(r.rangeEnd);if(l{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)i.addEventListener(n,this.handlers[n]);this.measureReq={read:n=>{let s=$o(n.root);s&&s.rangeCount&&this.editContext.updateSelectionBounds(s.getRangeAt(0).getBoundingClientRect())}}}applyEdits(e){let i=0,n=!1,s=this.pendingContextChange;return e.changes.iterChanges((r,o,a,l,h)=>{if(n)return;let c=h.length-(o-r);if(s&&o>=s.to)if(s.from==r&&s.to==o&&s.insert.eq(h)){s=this.pendingContextChange=null,i+=c,this.to+=c;return}else s=null,this.revertPending(e.state);if(r+=i,o+=i,o<=this.from)this.from+=c,this.to+=c;else if(rthis.to||this.to-this.from+h.length>3e4){n=!0;return}this.editContext.updateText(this.toContextPos(r),this.toContextPos(o),h.toString()),this.to+=c}i+=c}),s&&!n&&this.revertPending(e.state),!n}update(e){let i=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||i)&&this.setSelection(e.state),(e.geometryChanged||e.docChanged||e.selectionSet)&&e.view.requestMeasure(this.measureReq)}resetRange(e){let{head:i}=e.selection.main;this.from=Math.max(0,i-1e4),this.to=Math.min(e.doc.length,i+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 i=this.pendingContextChange;this.pendingContextChange=null,this.editContext.updateText(this.toContextPos(i.from),this.toContextPos(i.from+i.insert.length),e.doc.sliceString(i.from,i.to))}setSelection(e){let{main:i}=e.selection,n=this.toContextPos(Math.max(this.from,Math.min(this.to,i.anchor))),s=this.toContextPos(i.head);(this.editContext.selectionStart!=n||this.editContext.selectionEnd!=s)&&this.editContext.updateSelection(n,s)}rangeIsValid(e){let{head:i}=e.selection.main;return!(this.from>0&&i-this.from<500||this.to1e4*3)}toEditorPos(e,i=this.to-this.from){e=Math.min(e,i);let n=this.composing;return n&&n.drifted?n.editorBase+(e-n.contextBase):e+this.from}toContextPos(e){let i=this.composing;return i&&i.drifted?i.contextBase+(e-i.editorBase):e-this.from}destroy(){for(let e in this.handlers)this.editContext.removeEventListener(e,this.handlers[e])}}class ce{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 i;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(r=>n(r,this)))||(s=>this.update(s)),this.dispatch=this.dispatch.bind(this),this._root=e.root||i1(e.parent)||document,this.viewState=new pm(this,e.state||Ne.create(e)),e.scrollTo&&e.scrollTo.is(pa)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(nr).map(s=>new ec(s));for(let s of this.plugins)s.update(this);this.observer=new Dk(this),this.inputState=new Y1(this),this.inputState.ensureHandlers(this.plugins),this.docView=new tm(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),!((i=document.fonts)===null||i===void 0)&&i.ready&&document.fonts.ready.then(()=>{this.viewState.mustMeasureContent="refresh",this.requestMeasure()})}dispatch(...e){let i=e.length==1&&e[0]instanceof lt?e:e.length==1&&Array.isArray(e[0])?e[0]:[this.state.update(...e)];this.dispatchTransactions(i,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let i=!1,n=!1,s,r=this.state;for(let u of e){if(u.startState!=r)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");r=u.state}if(this.destroyed){this.viewState.state=r;return}let o=this.hasFocus,a=0,l=null;e.some(u=>u.annotation(Rb))?(this.inputState.notifiedFocused=o,a=1):o!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=o,l=zb(r,o),l||(a=1));let h=this.observer.delayedAndroidKey,c=null;if(h?(this.observer.clearDelayedAndroidKey(),c=this.observer.readChange(),(c&&!this.state.doc.eq(r.doc)||!this.state.selection.eq(r.selection))&&(c=null)):this.observer.clear(),r.facet(Ne.phrases)!=this.state.facet(Ne.phrases))return this.setState(r);s=Bl.create(this,r,e),s.flags|=a;let d=this.viewState.scrollTarget;try{this.updateState=2;for(let u of e){if(d&&(d=d.map(u.changes)),u.scrollIntoView){let{main:f}=u.state.selection,{x:p,y:m}=this.state.facet(ce.cursorScrollMargin);d=new dr(f.empty?f:K.cursor(f.head,f.head>f.anchor?-1:1),"nearest","nearest",m,p)}for(let f of u.effects)f.is(pa)&&(d=f.value.clip(this.state))}this.viewState.update(s,d),this.bidiCache=Hl.update(this.bidiCache,s.changes),s.empty||(this.updatePlugins(s),this.inputState.update(s)),i=this.docView.update(s),this.state.facet(to)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(i,e.some(u=>u.isUserEvent("select.pointer")))}finally{this.updateState=0}if(s.startState.facet(wa)!=s.state.facet(wa)&&(this.viewState.mustMeasureContent=!0),(i||n||d||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),i&&this.docViewUpdate(),!s.empty)for(let u of this.state.facet(Id))try{u(s)}catch(f){Rt(this.state,f,"update listener")}(l||c)&&Promise.resolve().then(()=>{l&&this.state==l.startState&&this.dispatch(l),c&&!Pb(this,c)&&h.force&&cr(this.contentDOM,h.key,h.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 i=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new pm(this,e),this.plugins=e.facet(nr).map(n=>new ec(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView.destroy(),this.docView=new tm(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}i&&this.focus(),this.requestMeasure()}updatePlugins(e){let i=e.startState.facet(nr),n=e.state.facet(nr);if(i!=n){let s=[];for(let r of n){let o=i.indexOf(r);if(o<0)s.push(new ec(r));else{let a=this.plugins[o];a.mustUpdate=e,s.push(a)}}for(let r of this.plugins)r.mustUpdate!=e&&r.destroy(this);this.plugins=s,this.pluginMap.clear()}else for(let s of this.plugins)s.mustUpdate=e;for(let s=0;s-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey){this.measureScheduled=-1,this.requestMeasure();return}this.measureScheduled=0,e&&this.observer.forceFlush();let i=null,n=this.viewState.scrollParent,s=this.viewState.getScrollOffset(),{scrollAnchorPos:r,scrollAnchorHeight:o}=this.viewState;Math.abs(s-this.viewState.scrollOffset)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let a=0;;a++){if(o<0)if(sb(n||this.win))r=-1,o=this.viewState.heightMap.height;else{let f=this.viewState.scrollAnchorAt(s);r=f.from,o=f.top}this.updateState=1;let l=this.viewState.measure();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 h=[];l&4||([this.measureRequests,h]=[h,this.measureRequests]);let c=h.map(f=>{try{return f.read(this)}catch(p){return Rt(this.state,p),_m}}),d=Bl.create(this,this.state,[]),u=!1;d.flags|=l,i?i.flags|=l:i=d,this.updateState=2,d.empty||(this.updatePlugins(d),this.inputState.update(d),this.updateAttrs(),u=this.docView.update(d),u&&this.docViewUpdate());for(let f=0;f1||p<-1)&&!(ae.ios&&this.inputState.lastIOSMomentumScroll>Date.now()-100)&&(n==this.scrollDOM||this.hasFocus||Math.max(this.inputState.lastWheelEvent,this.inputState.lastTouchTime)>Date.now()-100)){s=s+p,n?n.scrollTop+=p:this.win.scrollBy(0,p),o=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(i&&!i.empty)for(let a of this.state.facet(Id))a(i)}get themeClasses(){return zd+" "+(this.state.facet(Rd)?Wb:Bb)+" "+this.state.facet(wa)}updateAttrs(){let e=wm(this,yb,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),i={spellcheck:"false",autocorrect:"off",autocapitalize:"off",writingsuggestions:"false",translate:"no",contenteditable:this.state.facet(un)?"true":"false",class:"cm-content",style:`${ae.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(i["aria-readonly"]="true"),wm(this,of,i);let n=this.observer.ignore(()=>{let s=Xp(this.contentDOM,this.contentAttrs,i),r=Xp(this.dom,this.editorAttrs,e);return s||r});return this.editorAttrs=e,this.contentAttrs=i,n}showAnnouncements(e){let i=!0;for(let n of e)for(let s of n.effects)if(s.is(ce.announce)){i&&(this.announceDOM.textContent=""),i=!1;let r=this.announceDOM.appendChild(document.createElement("div"));r.textContent=s.value}}mountStyles(){this.styleModules=this.state.facet(to);let e=this.state.facet(ce.cspNonce);es.mount(this.root,this.styleModules.concat(Ck).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 i=0;in.plugin==e)||null),i&&i.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,i,n){return sc(this,e,im(this,e,i,n))}moveByGroup(e,i){return sc(this,e,im(this,e,i,n=>B1(this,e.head,n)))}visualLineSide(e,i){let n=this.bidiSpans(e),s=this.textDirectionAt(e.from),r=n[i?n.length-1:0];return K.cursor(r.side(i,s)+e.from,r.forward(!i,s)?1:-1)}moveToLineBoundary(e,i,n=!0){return N1(this,e,i,n)}moveVertically(e,i,n){return sc(this,e,W1(this,e,i,n))}domAtPos(e,i=1){return this.docView.domAtPos(e,i)}posAtDOM(e,i=0){return this.docView.posFromDOM(e,i)}posAtCoords(e,i=!0){this.readMeasured();let n=Md(this,e,i);return n&&n.pos}posAndSideAtCoords(e,i=!0){return this.readMeasured(),Md(this,e,i)}coordsAtPos(e,i=1){this.readMeasured();let n=this.state.doc.lineAt(e),s=this.bidiSpans(n),r=s[Fi.find(s,e-n.from,-1,i)];return this.docView.coordsAt(e,i,r.dir==Ye.RTL)}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(bb)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>Ak)return cb(e.length);let i=this.textDirectionAt(e.from),n;for(let r of this.bidiCache)if(r.from==e.from&&r.dir==i&&(r.fresh||hb(r.isolates,n=Kp(this,e))))return r.order;n||(n=Kp(this,e));let s=c1(e.text,i,n);return this.bidiCache.push(new Hl(e.from,e.to,i,n,!0,s)),s}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||ae.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{nb(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,i={}){var n,s,r,o;return pa.of(new dr(typeof e=="number"?K.cursor(e):e,(n=i.y)!==null&&n!==void 0?n:"nearest",(s=i.x)!==null&&s!==void 0?s:"nearest",(r=i.yMargin)!==null&&r!==void 0?r:5,(o=i.xMargin)!==null&&o!==void 0?o:5))}scrollSnapshot(){let{scrollTop:e,scrollLeft:i}=this.scrollDOM,n=this.viewState.scrollAnchorAt(e);return pa.of(new dr(K.cursor(n.from),"start","start",n.top-e,i,!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 Tt.define(()=>({}),{eventHandlers:e})}static domEventObservers(e){return Tt.define(()=>({}),{eventObservers:e})}static theme(e,i){let n=es.newName(),s=[wa.of(n),to.of(Ld(`.${n}`,e))];return i&&i.dark&&s.push(Rd.of(!0)),s}static baseTheme(e){return Gr.lowest(to.of(Ld("."+zd,e,Vb)))}static findFromDOM(e){var i;let n=e.querySelector(".cm-content"),s=n&&tt.get(n)||tt.get(e);return((i=s?.root)===null||i===void 0?void 0:i.view)||null}}ce.styleModule=to;ce.inputHandler=gb;ce.clipboardInputFilter=sf;ce.clipboardOutputFilter=rf;ce.scrollHandler=_b;ce.focusChangeEffect=vb;ce.perLineTextDirection=bb;ce.exceptionSink=mb;ce.updateListener=Id;ce.editable=un;ce.mouseSelectionStyle=pb;ce.dragMovesSelection=fb;ce.clickAddsSelectionRange=ub;ce.decorations=Ch;ce.blockWrappers=xb;ce.outerDecorations=af;ce.atomicRanges=na;ce.bidiIsolatedRanges=Ob;ce.cursorScrollMargin=le.define({combine:t=>{let e=5,i=5;for(let n of t)typeof n=="number"?e=i=n:{x:e,y:i}=n;return{x:e,y:i}}});ce.scrollMargins=Sb;ce.darkTheme=Rd;ce.cspNonce=le.define({combine:t=>t.length?t[0]:""});ce.contentAttributes=of;ce.editorAttributes=yb;ce.lineWrapping=ce.contentAttributes.of({class:"cm-lineWrapping"});ce.announce=$e.define();const Ak=4096,_m={};class Hl{constructor(e,i,n,s,r,o){this.from=e,this.to=i,this.dir=n,this.isolates=s,this.fresh=r,this.order=o}static update(e,i){if(i.empty&&!e.some(r=>r.fresh))return e;let n=[],s=e.length?e[e.length-1].dir:Ye.LTR;for(let r=Math.max(0,e.length-10);r=0;s--){let r=n[s],o=typeof r=="function"?r(t):r;o&&ef(o,i)}return i}const Ik=ae.mac?"mac":ae.windows?"win":ae.linux?"linux":"key";function Ek(t,e){const i=t.split(/-(?!$)/);let n=i[i.length-1];n=="Space"&&(n=" ");let s,r,o,a;for(let l=0;ln.concat(s),[]))),i}let qn=null;const Rk=4e3;function zk(t,e=Ik){let i=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")},r=(o,a,l,h,c)=>{var d,u;let f=i[o]||(i[o]=Object.create(null)),p=a.split(/ (?!$)/).map(b=>Ek(b,e));for(let b=1;b{let x=qn={view:O,prefix:_,scope:o};return setTimeout(()=>{qn==x&&(qn=null)},Rk),!0}]})}let m=p.join(" ");s(m,!1);let g=f[m]||(f[m]={preventDefault:!1,stopPropagation:!1,run:((u=(d=f._any)===null||d===void 0?void 0:d.run)===null||u===void 0?void 0:u.slice())||[]});l&&g.run.push(l),h&&(g.preventDefault=!0),c&&(g.stopPropagation=!0)};for(let o of t){let a=o.scope?o.scope.split(" "):["editor"];if(o.any)for(let h of a){let c=i[h]||(i[h]=Object.create(null));c._any||(c._any={preventDefault:!1,stopPropagation:!1,run:[]});let{any:d}=o;for(let u in c)c[u].run.push(f=>d(f,Nd))}let l=o[e]||o.key;if(l)for(let h of a)r(h,l,o.run,o.preventDefault,o.stopPropagation),o.shift&&r(h,"Shift-"+l,o.shift,o.preventDefault,o.stopPropagation)}return i}let Nd=null;function Lk(t,e,i,n){Nd=e;let s=XS(e),r=fs(s,0),o=Js(r)==s.length&&s!=" ",a="",l=!1,h=!1,c=!1;qn&&qn.view==i&&qn.scope==n&&(a=qn.prefix+" ",Ib.indexOf(e.keyCode)<0&&(h=!0,qn=null));let d=new Set,u=g=>{if(g){for(let b of g.run)if(!d.has(b)&&(d.add(b),b(i)))return g.stopPropagation&&(c=!0),!0;g.preventDefault&&(g.stopPropagation&&(c=!0),h=!0)}return!1},f=t[n],p,m;return f&&(u(f[a+ya(s,e,!o)])?l=!0:o&&(e.altKey||e.metaKey||e.ctrlKey)&&!(ae.windows&&e.ctrlKey&&e.altKey)&&!(ae.mac&&e.altKey&&!(e.ctrlKey||e.metaKey))&&(p=ts[e.keyCode])&&p!=s?(u(f[a+ya(p,e,!0)])||e.shiftKey&&(m=Do[e.keyCode])!=s&&m!=p&&u(f[a+ya(m,e,!1)]))&&(l=!0):o&&e.shiftKey&&u(f[a+ya(s,e,!0)])&&(l=!0),!l&&u(f._any)&&(l=!0)),h&&(l=!0),l&&c&&e.stopPropagation(),Nd=null,l}function xm(t,e,i,n,s){e.lastIndex=0;for(let r=t.iterRange(i,n),o=i,a;!r.next().done;o+=r.value.length)if(!r.lineBreak)for(;a=e.exec(r.value);)s(o+a.index,a)}function Nk(t,e){let i=t.visibleRanges;if(i.length==1&&i[0].from==t.viewport.from&&i[0].to==t.viewport.to)return i;let n=[];for(let{from:s,to:r}of i)s=Math.max(t.state.doc.lineAt(s).from,s-e),r=Math.min(t.state.doc.lineAt(r).to,r+e),n.length&&n[n.length-1].to>=s?n[n.length-1].to=r:n.push({from:s,to:r});return n}class Bk{constructor(e){const{regexp:i,decoration:n,decorate:s,boundary:r,maxLength:o=1e3}=e;if(!i.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=i,s)this.addMatch=(a,l,h,c)=>s(c,h,h+a[0].length,a,l);else if(typeof n=="function")this.addMatch=(a,l,h,c)=>{let d=n(a,l,h);d&&c(h,h+a[0].length,d)};else if(n)this.addMatch=(a,l,h,c)=>c(h,h+a[0].length,n);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=r,this.maxLength=o}createDeco(e){let i=new Ms,n=i.add.bind(i);for(let{from:s,to:r}of Nk(e,this.maxLength))xm(e.state.doc,this.regexp,s,r,(o,a)=>this.addMatch(a,e,o,n));return i.finish()}updateDeco(e,i){let n=1e9,s=-1;return e.docChanged&&e.changes.iterChanges((r,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,i.map(e.changes),n,s):i}updateRange(e,i,n,s){for(let r of e.visibleRanges){let o=Math.max(r.from,n),a=Math.min(r.to,s);if(a>=o){let l=e.state.doc.lineAt(o),h=l.tol.from;o--)if(this.boundary.test(l.text[o-1-l.from])){c=o;break}for(;au.push(b.range(m,g));if(l==h)for(this.regexp.lastIndex=c-l.from;(f=this.regexp.exec(l.text))&&f.indexthis.addMatch(g,e,m,p));i=i.update({filterFrom:c,filterTo:d,filter:(m,g)=>md,add:u})}}return i}}const xa="-10000px";class Fb{constructor(e,i,n,s){this.facet=i,this.createTooltipView=n,this.removeTooltipView=s,this.input=e.state.facet(i),this.tooltips=this.input.filter(o=>o);let r=null;this.tooltipViews=this.tooltips.map(o=>r=n(o,r))}update(e,i){var n;let s=e.state.facet(this.facet),r=s.filter(l=>l);if(s===this.input){for(let l of this.tooltipViews)l.update&&l.update(e);return!1}let o=[],a=i?[]:null;for(let l=0;li[h]=l),i.length=a.length),this.input=s,this.tooltips=r,this.tooltipViews=o,!0}}function Wk(t){let e=t.dom.ownerDocument.documentElement;return{top:0,left:0,bottom:e.clientHeight,right:e.clientWidth}}const ac=le.define({combine:t=>{var e,i,n;return{position:ae.ios?"absolute":((e=t.find(s=>s.position))===null||e===void 0?void 0:e.position)||"fixed",parent:((i=t.find(s=>s.parent))===null||i===void 0?void 0:i.parent)||null,tooltipSpace:((n=t.find(s=>s.tooltipSpace))===null||n===void 0?void 0:n.tooltipSpace)||Wk}}}),Om=new WeakMap,uf=Tt.fromClass(class{constructor(t){this.view=t,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let e=t.state.facet(ac);this.position=e.position,this.parent=e.parent,this.classes=t.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 Fb(t,ra,(i,n)=>this.createTooltip(i,n),i=>{this.resizeObserver&&this.resizeObserver.unobserve(i.dom),i.dom.remove()}),this.above=this.manager.tooltips.map(i=>!!i.above),this.intersectionObserver=typeof IntersectionObserver=="function"?new IntersectionObserver(i=>{Date.now()>this.lastTransaction-50&&i.length>0&&i[i.length-1].intersectionRatio<1&&this.measureSoon()},{threshold:[1]}):null,this.observeIntersection(),t.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 t of this.manager.tooltipViews)this.intersectionObserver.observe(t.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout(()=>{this.measureTimeout=-1,this.maybeMeasure()},50))}update(t){t.transactions.length&&(this.lastTransaction=Date.now());let e=this.manager.update(t,this.above);e&&this.observeIntersection();let i=e||t.geometryChanged,n=t.state.facet(ac);if(n.position!=this.position&&!this.madeAbsolute){this.position=n.position;for(let s of this.manager.tooltipViews)s.dom.style.position=this.position;i=!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);i=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);i&&this.maybeMeasure()}createTooltip(t,e){let i=t.create(this.view),n=e?e.dom:null;if(i.dom.classList.add("cm-tooltip"),t.arrow&&!i.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let s=document.createElement("div");s.className="cm-tooltip-arrow",i.dom.appendChild(s)}return i.dom.style.position=this.position,i.dom.style.top=xa,i.dom.style.left="0px",this.container.insertBefore(i.dom,n),i.mount&&i.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(i.dom),i}destroy(){var t,e,i;this.view.win.removeEventListener("resize",this.measureSoon);for(let n of this.manager.tooltipViews)n.dom.remove(),(t=n.destroy)===null||t===void 0||t.call(n);this.parent&&this.container.remove(),(e=this.resizeObserver)===null||e===void 0||e.disconnect(),(i=this.intersectionObserver)===null||i===void 0||i.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let t=1,e=1,i=!1;if(this.position=="fixed"&&this.manager.tooltipViews.length){let{dom:r}=this.manager.tooltipViews[0];if(ae.safari){let o=r.getBoundingClientRect();i=Math.abs(o.top+1e4)>1||Math.abs(o.left)>1}else i=!!r.offsetParent&&r.offsetParent!=this.container.ownerDocument.body}if(i||this.position=="absolute")if(this.parent){let r=this.parent.getBoundingClientRect();r.width&&r.height&&(t=r.width/this.parent.offsetWidth,e=r.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:e}=this.view.viewState);let n=this.view.scrollDOM.getBoundingClientRect(),s=lf(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((r,o)=>{let a=this.manager.tooltipViews[o];return a.getCoords?a.getCoords(r.pos):this.view.coordsAtPos(r.pos)}),size:this.manager.tooltipViews.map(({dom:r})=>r.getBoundingClientRect()),space:this.view.state.facet(ac).tooltipSpace(this.view),scaleX:t,scaleY:e,makeAbsolute:i}}writeMeasure(t){var e;if(t.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let a of this.manager.tooltipViews)a.dom.style.position="absolute"}let{visible:i,space:n,scaleX:s,scaleY:r}=t,o=[];for(let a=0;a=Math.min(i.bottom,n.bottom)||d.rightMath.min(i.right,n.right)+.1)){c.style.top=xa;continue}let f=l.arrow?h.dom.querySelector(".cm-tooltip-arrow"):null,p=f?7:0,m=u.right-u.left,g=(e=Om.get(h))!==null&&e!==void 0?e:u.bottom-u.top,b=h.offset||Fk,_=this.view.textDirection==Ye.LTR,O=u.width>n.right-n.left?_?n.left:n.right-u.width:_?Math.max(n.left,Math.min(d.left-(f?14:0)+b.x,n.right-m)):Math.min(Math.max(n.left,d.left-m+(f?14:0)-b.x),n.right-m),x=this.above[a];!l.strictSide&&(x?d.top-g-p-b.yn.bottom)&&x==n.bottom-d.bottom>d.top-n.top&&(x=this.above[a]=!x);let C=(x?d.top-n.top:n.bottom-d.bottom)-p;if(CO&&k.topy&&(y=x?k.top-g-2-p:k.bottom+p+2);if(this.position=="absolute"?(c.style.top=(y-t.parent.top)/r+"px",Sm(c,(O-t.parent.left)/s)):(c.style.top=y/r+"px",Sm(c,O/s)),f){let k=d.left+(_?b.x:-b.x)-(O+14-7);f.style.left=k/s+"px"}h.overlap!==!0&&o.push({left:O,top:y,right:T,bottom:y+g}),c.classList.toggle("cm-tooltip-above",x),c.classList.toggle("cm-tooltip-below",!x),h.positioned&&h.positioned(t.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 t of this.manager.tooltipViews)t.dom.style.top=xa}},{eventObservers:{scroll(){this.maybeMeasure()}}});function Sm(t,e){let i=parseInt(t.style.left,10);(isNaN(i)||Math.abs(e-i)>1)&&(t.style.left=e+"px")}const Vk=ce.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"}}}),Fk={x:0,y:0},ra=le.define({enables:[uf,Vk]}),Io=le.define({combine:t=>t.reduce((e,i)=>e.concat(i),[])});class $h{static create(e){return new $h(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new Fb(e,Io,(i,n)=>this.createHostedView(i,n),i=>i.dom.remove())}createHostedView(e,i){let n=e.create(this.view);return n.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(n.dom,i?i.dom.nextSibling:this.dom.firstChild),this.mounted&&n.mount&&n.mount(this.view),n}mount(e){for(let i of this.manager.tooltipViews)i.mount&&i.mount(e);this.mounted=!0}positioned(e){for(let i of this.manager.tooltipViews)i.positioned&&i.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let i of this.manager.tooltipViews)(e=i.destroy)===null||e===void 0||e.call(i)}passProp(e){let i;for(let n of this.manager.tooltipViews){let s=n[e];if(s!==void 0){if(i===void 0)i=s;else if(i!==s)return}}return i}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 Qk=ra.compute([Io],t=>{let e=t.facet(Io);return e.length===0?null:{pos:Math.min(...e.map(i=>i.pos)),end:Math.max(...e.map(i=>{var n;return(n=i.end)!==null&&n!==void 0?n:i.pos})),create:$h.create,above:e[0].above,arrow:e.some(i=>i.arrow)}}),Hk=le.define();class qk{constructor(e,i,n,s,r,o){this.view=e,this.source=i,this.field=n,this.locked=s,this.setHover=r,this.hoverTime=o,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(e){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;eo.bottom||i.xo.right+e.defaultCharacterWidth)return;let a=e.bidiSpans(e.state.doc.lineAt(s)).find(h=>h.from<=s&&h.to>=s),l=a&&a.dir==Ye.RTL?-1:1;r=i.x{if(a&&!(Array.isArray(a)&&!a.length)){let l=Array.isArray(a)?a:[a];s&&this.locked.set(l,s),e.dispatch({effects:this.setHover.of(l)})}};if(r&&"then"in r){let a=this.pending={pos:i};r.then(l=>{this.pending==a&&(this.pending=null,o(l))},l=>Rt(e.state,l,"hover tooltip"))}else o(r)}get tooltip(){let e=this.view.plugin(uf),i=e?e.manager.tooltips.findIndex(n=>n.create==$h.create):-1;return i>-1?e.manager.tooltipViews[i]:null}mousemove(e){var i,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:r}=this;if(s.length&&!this.locked.has(s)&&r&&!Uk(r.dom,e)||this.pending){let{pos:o}=s[0]||this.pending,a=(n=(i=s[0])===null||i===void 0?void 0:i.end)!==null&&n!==void 0?n:o;(o==a?this.view.posAtCoords(this.lastMove)!=o:!jk(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:i}=this;if(i.length&&!this.locked.has(i)){let{tooltip:n}=this;n&&n.dom.contains(e.relatedTarget)?this.watchTooltipLeave(n.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let i=n=>{e.removeEventListener("mouseleave",i);let{active:s}=this;s.length&&!this.locked.has(s)&&!this.view.dom.contains(n.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",i)}destroy(){clearTimeout(this.hoverTimeout),clearTimeout(this.restartTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const Oa=4;function Uk(t,e){let{left:i,right:n,top:s,bottom:r}=t.getBoundingClientRect(),o;if(o=t.querySelector(".cm-tooltip-arrow")){let a=o.getBoundingClientRect();s=Math.min(a.top,s),r=Math.max(a.bottom,r)}return e.clientX>=i-Oa&&e.clientX<=n+Oa&&e.clientY>=s-Oa&&e.clientY<=r+Oa}function jk(t,e,i,n,s,r){let o=t.scrollDOM.getBoundingClientRect(),a=t.documentTop+t.documentPadding.top+t.contentHeight;if(o.left>n||o.rights||Math.min(o.bottom,a)=e&&l<=i}function Xk(t,e={}){let i=$e.define(),n=new WeakMap,s=Dt.define({create(){return[]},update(o,a){let l=n.get(o);if(o.length&&(e.hideOnChange&&(a.docChanged||a.selection)?o=[]:l&&l(a)?o=[]:e.hideOn&&(o=o.filter(h=>!e.hideOn(a,h)))),a.docChanged&&o.length){let h=[];for(let c of o){let d=a.changes.mapPos(c.pos,-1,kt.TrackDel);if(d!=null){let u=Object.assign(Object.create(null),c);u.pos=d,u.end!=null&&(u.end=a.changes.mapPos(u.end)),h.push(u)}}o=h}for(let h of a.effects)h.is(i)&&(o=h.value,l=void 0),(h.is(Hb)&&!h.value||h.value==s)&&(o=[]);return o.length&&l&&n.set(o,l),o},provide:o=>Io.from(o)});const r=Tt.define(o=>new qk(o,t,s,n,i,e.hoverTime||300));return{active:s,extension:[s,r,Hk.of(r),Qk]}}function Qb(t,e){let i=t.plugin(uf);if(!i)return null;let n=i.manager.tooltips.indexOf(e);return n<0?null:i.manager.tooltipViews[n]}function Yk(t){return t.facet(Io).some(e=>e)}const Hb=$e.define(),Zk=Hb.of(null),km=le.define({combine(t){let e,i;for(let n of t)e=e||n.topContainer,i=i||n.bottomContainer;return{topContainer:e,bottomContainer:i}}});function Kk(t,e){let i=t.plugin(qb),n=i?i.specs.indexOf(e):-1;return n>-1?i.panels[n]:null}const qb=Tt.fromClass(class{constructor(t){this.input=t.state.facet(Bd),this.specs=this.input.filter(i=>i),this.panels=this.specs.map(i=>i(t));let e=t.state.facet(km);this.top=new Sa(t,!0,e.topContainer),this.bottom=new Sa(t,!1,e.bottomContainer),this.top.sync(this.panels.filter(i=>i.top)),this.bottom.sync(this.panels.filter(i=>!i.top));for(let i of this.panels)i.dom.classList.add("cm-panel"),i.mount&&i.mount()}update(t){let e=t.state.facet(km);this.top.container!=e.topContainer&&(this.top.sync([]),this.top=new Sa(t.view,!0,e.topContainer)),this.bottom.container!=e.bottomContainer&&(this.bottom.sync([]),this.bottom=new Sa(t.view,!1,e.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let i=t.state.facet(Bd);if(i!=this.input){let n=i.filter(l=>l),s=[],r=[],o=[],a=[];for(let l of n){let h=this.specs.indexOf(l),c;h<0?(c=l(t.view),a.push(c)):(c=this.panels[h],c.update&&c.update(t)),s.push(c),(c.top?r:o).push(c)}this.specs=n,this.panels=s,this.top.sync(r),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(t)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:t=>ce.scrollMargins.of(e=>{let i=e.plugin(t);return i&&{top:i.top.scrollMargin(),bottom:i.bottom.scrollMargin()}})});class Sa{constructor(e,i,n){this.view=e,this.top=i,this.container=n,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let i of this.panels)i.destroy&&e.indexOf(i)<0&&i.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";let i=this.container||this.view.dom;i.insertBefore(this.dom,this.top?i.firstChild:null)}let e=this.dom.firstChild;for(let i of this.panels)if(i.dom.parentNode==this.dom){for(;e!=i.dom;)e=Cm(e);e=e.nextSibling}else this.dom.insertBefore(i.dom,e);for(;e;)e=Cm(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 Cm(t){let e=t.nextSibling;return t.remove(),e}const Bd=le.define({enables:qb});class ns extends Jn{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}ns.prototype.elementClass="";ns.prototype.toDOM=void 0;ns.prototype.mapMode=kt.TrackBefore;ns.prototype.startSide=ns.prototype.endSide=-1;ns.prototype.point=!0;const lc=le.define(),Jk=le.define(),eC={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>Ae.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{},side:"before"},go=le.define();function tC(t){return[Ub(),go.of({...eC,...t})]}const Tm=le.define({combine:t=>t.some(e=>e)});function Ub(t){return[iC]}const iC=Tt.fromClass(class{constructor(t){this.view=t,this.domAfter=null,this.prevViewport=t.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=t.state.facet(go).map(e=>new Pm(t,e)),this.fixed=!t.state.facet(Tm);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),t.scrollDOM.insertBefore(this.dom,t.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(t){if(this.updateGutters(t)){let e=this.prevViewport,i=t.view.viewport,n=Math.min(e.to,i.to)-Math.max(e.from,i.from);this.syncGutters(n<(i.to-i.from)*.8)}if(t.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(Tm)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":"",this.domAfter&&(this.domAfter.style.position=this.fixed?"sticky":"")),this.prevViewport=t.view.viewport}syncGutters(t){let e=this.dom.nextSibling;t&&(this.dom.remove(),this.domAfter&&this.domAfter.remove());let i=Ae.iter(this.view.state.facet(lc),this.view.viewport.from),n=[],s=this.gutters.map(r=>new nC(r,this.view.viewport,-this.view.documentPadding.top));for(let r of this.view.viewportLineBlocks)if(n.length&&(n=[]),Array.isArray(r.type)){let o=!0;for(let a of r.type)if(a.type==Ft.Text&&o){Wd(i,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(r.type==Ft.Text){Wd(i,n,r.from);for(let o of s)o.line(this.view,r,n)}else if(r.widget)for(let o of s)o.widget(this.view,r);for(let r of s)r.finish();t&&(this.view.scrollDOM.insertBefore(this.dom,e),this.domAfter&&this.view.scrollDOM.appendChild(this.domAfter))}updateGutters(t){let e=t.startState.facet(go),i=t.state.facet(go),n=t.docChanged||t.heightChanged||t.viewportChanged||!Ae.eq(t.startState.facet(lc),t.state.facet(lc),t.view.viewport.from,t.view.viewport.to);if(e==i)for(let s of this.gutters)s.update(t)&&(n=!0);else{n=!0;let s=[];for(let r of i){let o=e.indexOf(r);o<0?s.push(new Pm(this.view,r)):(this.gutters[o].update(t),s.push(this.gutters[o]))}for(let r of this.gutters)r.dom.remove(),s.indexOf(r)<0&&r.destroy();for(let r of s)r.config.side=="after"?this.getDOMAfter().appendChild(r.dom):this.dom.appendChild(r.dom);this.gutters=s}return n}destroy(){for(let t of this.gutters)t.destroy();this.dom.remove(),this.domAfter&&this.domAfter.remove()}},{provide:t=>ce.scrollMargins.of(e=>{let i=e.plugin(t);if(!i||i.gutters.length==0||!i.fixed)return null;let n=i.dom.offsetWidth*e.scaleX,s=i.domAfter?i.domAfter.offsetWidth*e.scaleX:0;return e.textDirection==Ye.LTR?{left:n,right:s}:{right:n,left:s}})});function Dm(t){return Array.isArray(t)?t:[t]}function Wd(t,e,i){for(;t.value&&t.from<=i;)t.from==i&&e.push(t.value),t.next()}class nC{constructor(e,i,n){this.gutter=e,this.height=n,this.i=0,this.cursor=Ae.iter(e.markers,i.from)}addElement(e,i,n){let{gutter:s}=this,r=(i.top-this.height)/e.scaleY,o=i.height/e.scaleY;if(this.i==s.elements.length){let a=new jb(e,o,r,n);s.elements.push(a),s.dom.appendChild(a.dom)}else s.elements[this.i].update(e,o,r,n);this.height=i.bottom,this.i++}line(e,i,n){let s=[];Wd(this.cursor,s,i.from),n.length&&(s=s.concat(n));let r=this.gutter.config.lineMarker(e,i,s);r&&s.unshift(r);let o=this.gutter;s.length==0&&!o.config.renderEmptyElements||this.addElement(e,i,s)}widget(e,i){let n=this.gutter.config.widgetMarker(e,i.widget,i),s=n?[n]:null;for(let r of e.state.facet(Jk)){let o=r(e,i.widget,i);o&&(s||(s=[])).push(o)}s&&this.addElement(e,i,s)}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let i=e.elements.pop();e.dom.removeChild(i.dom),i.destroy()}}}class Pm{constructor(e,i){this.view=e,this.config=i,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 i.domEventHandlers)this.dom.addEventListener(n,s=>{let r=s.target,o;if(r!=this.dom&&this.dom.contains(r)){for(;r.parentNode!=this.dom;)r=r.parentNode;let l=r.getBoundingClientRect();o=(l.top+l.bottom)/2}else o=s.clientY;let a=e.lineBlockAtHeight(o-e.documentTop);i.domEventHandlers[n](e,a,s)&&s.preventDefault()});this.markers=Dm(i.markers(e)),i.initialSpacer&&(this.spacer=new jb(e,0,0,[i.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let i=this.markers;if(this.markers=Dm(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!Ae.eq(this.markers,i,n.from,n.to)||(this.config.lineMarkerChange?this.config.lineMarkerChange(e):!1)}destroy(){for(let e of this.elements)e.destroy()}}class jb{constructor(e,i,n,s){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,i,n,s)}update(e,i,n,s){this.height!=i&&(this.height=i,this.dom.style.height=i+"px"),this.above!=n&&(this.dom.style.marginTop=(this.above=n)?n+"px":""),sC(this.markers,s)||this.setMarkers(e,s)}setMarkers(e,i){let n="cm-gutterElement",s=this.dom.firstChild;for(let r=0,o=0;;){let a=o,l=rr(a,l,h)||o(a,l,h):o}return n}})}});class hc extends ns{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function cc(t,e){return t.state.facet(sr).formatNumber(e,t.state)}const aC=go.compute([sr],t=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers(e){return e.state.facet(rC)},lineMarker(e,i,n){return n.some(s=>s.toDOM)?null:new hc(cc(e,e.state.doc.lineAt(i.from).number))},widgetMarker:(e,i,n)=>{for(let s of e.state.facet(oC)){let r=s(e,i,n);if(r)return r}return null},lineMarkerChange:e=>e.startState.facet(sr)!=e.state.facet(sr),initialSpacer(e){return new hc(cc(e,$m(e.state.doc.lines)))},updateSpacer(e,i){let n=cc(i.view,$m(i.view.state.doc.lines));return n==e.number?e:new hc(n)},domEventHandlers:t.facet(sr).domEventHandlers,side:"before"}));function lC(t={}){return[sr.of(t),Ub(),aC]}function $m(t){let e=9;for(;e{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=Ht.match(e)),i=>{let n=e(i);return n===void 0?null:[this,n]}}}Te.closedBy=new Te({deserialize:t=>t.split(" ")});Te.openedBy=new Te({deserialize:t=>t.split(" ")});Te.group=new Te({deserialize:t=>t.split(" ")});Te.isolate=new Te({deserialize:t=>{if(t&&t!="rtl"&&t!="ltr"&&t!="auto")throw new RangeError("Invalid value for isolate: "+t);return t||"auto"}});Te.contextHash=new Te({perNode:!0});Te.lookAhead=new Te({perNode:!0});Te.mounted=new Te({perNode:!0});class vo{constructor(e,i,n,s=!1){this.tree=e,this.overlay=i,this.parser=n,this.bracketed=s}static get(e){return e&&e.props&&e.props[Te.mounted.id]}}const cC=Object.create(null);class Ht{constructor(e,i,n,s=0){this.name=e,this.props=i,this.id=n,this.flags=s}static define(e){let i=e.props&&e.props.length?Object.create(null):cC,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),s=new Ht(e.name||"",i,e.id,n);if(e.props){for(let r of e.props)if(Array.isArray(r)||(r=r(s)),r){if(r[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");i[r[0].id]=r[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 i=this.prop(Te.group);return i?i.indexOf(e)>-1:!1}return this.id==e}static match(e){let i=Object.create(null);for(let n in e)for(let s of n.split(" "))i[s]=e[n];return n=>{for(let s=n.prop(Te.group),r=-1;r<(s?s.length:0);r++){let o=i[r<0?n.name:s[r]];if(o)return o}}}}Ht.none=new Ht("",Object.create(null),0,8);class ff{constructor(e){this.types=e;for(let i=0;i0;for(let l=this.cursor(o|Ke.IncludeAnonymous);;){let h=!1;if(l.from<=r&&l.to>=s&&(!a&&l.type.isAnonymous||i(l)!==!1)){if(l.firstChild())continue;h=!0}for(;h&&n&&(a||!l.type.isAnonymous)&&n(l),!l.nextSibling();){if(!l.parent())return;h=!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 i in this.props)e.push([+i,this.props[i]]);return e}balance(e={}){return this.children.length<=8?this:gf(Ht.none,this.children,this.positions,0,this.children.length,0,this.length,(i,n,s)=>new rt(this.type,i,n,s,this.propValues),e.makeTree||((i,n,s)=>new rt(Ht.none,i,n,s)))}static build(e){return pC(e)}}rt.empty=new rt(Ht.none,[],[],0);class pf{constructor(e,i){this.buffer=e,this.index=i}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 pf(this.buffer,this.index)}}class ss{constructor(e,i,n){this.buffer=e,this.length=i,this.set=n}get type(){return Ht.none}toString(){let e=[];for(let i=0;i0));l=o[l+3]);return a}slice(e,i,n){let s=this.buffer,r=new Uint16Array(i-e),o=0;for(let a=e,l=0;a=e&&ie;case 1:return i<=e&&n>e;case 2:return n>e;case 4:return!0}}function Eo(t,e,i,n){for(var s;t.from==t.to||(i<1?t.from>=e:t.from>e)||(i>-1?t.to<=e:t.to0?a.length:-1;e!=h;e+=i){let c=a[e],d=l[e]+o.from,u;if(!(!(r&Ke.EnterBracketed&&c instanceof rt&&(u=vo.get(c))&&!u.overlay&&u.bracketed&&n>=d&&n<=d+c.length)&&!Yb(s,n,d,d+c.length))){if(c instanceof ss){if(r&Ke.ExcludeBuffers)continue;let f=c.findChild(0,c.buffer.length,i,n-d,s);if(f>-1)return new Qi(new dC(o,c,e,d),null,f)}else if(r&Ke.IncludeAnonymous||!c.type.isAnonymous||mf(c)){let f;if(!(r&Ke.IgnoreMounts)&&(f=vo.get(c))&&!f.overlay)return new Qt(f.tree,d,e,o);let p=new Qt(c,d,e,o);return r&Ke.IncludeAnonymous||!p.type.isAnonymous?p:p.nextChild(i<0?c.children.length-1:0,i,n,s,r)}}}if(r&Ke.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+i:e=i<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,i,n=0){let s;if(!(n&Ke.IgnoreOverlays)&&(s=vo.get(this._tree))&&s.overlay){let r=e-this.from,o=n&Ke.EnterBracketed&&s.bracketed;for(let{from:a,to:l}of s.overlay)if((i>0||o?a<=r:a=r:l>r))return new Qt(s.tree,s.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,i,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 Im(t,e,i,n){let s=t.cursor(),r=[];if(!s.firstChild())return r;if(i!=null){for(let o=!1;!o;)if(o=s.type.is(i),!s.nextSibling())return r}for(;;){if(n!=null&&s.type.is(n))return r;if(s.type.is(e)&&r.push(s.node),!s.nextSibling())return n==null?r:[]}}function Vd(t,e,i=e.length-1){for(let n=t;i>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[i]&&e[i]!=n.name)return!1;i--}}return!0}class dC{constructor(e,i,n,s){this.parent=e,this.buffer=i,this.index=n,this.start=s}}class Qi extends Zb{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,i,n){super(),this.context=e,this._parent=i,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,i,n){let{buffer:s}=this.context,r=s.findChild(this.index+4,s.buffer[this.index+3],e,i-this.context.start,n);return r<0?null:new Qi(this.context,this,r)}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,i,n=0){if(n&Ke.ExcludeBuffers)return null;let{buffer:s}=this.context,r=s.findChild(this.index+4,s.buffer[this.index+3],i>0?1:-1,e-this.context.start,i);return r<0?null:new Qi(this.context,this,r)}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,i=e.buffer[this.index+3];return i<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new Qi(this.context,this._parent,i):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,i=this._parent?this._parent.index+4:0;return this.index==i?this.externalSibling(-1):new Qi(this.context,this._parent,e.findChild(i,this.index,-1,0,4))}get tree(){return null}toTree(){let e=[],i=[],{buffer:n}=this.context,s=this.index+4,r=n.buffer[this.index+3];if(r>s){let o=n.buffer[this.index+1];e.push(n.slice(s,r,o)),i.push(0)}return new rt(this.type,e,i,this.to-this.from)}toString(){return this.context.buffer.childString(this.index)}}function Kb(t){if(!t.length)return null;let e=0,i=t[0];for(let r=1;ri.from||o.to=e){let a=new Qt(o.tree,o.overlay[0].from+r.from,-1,r);(s||(s=[n])).push(Eo(a,e,i,!1))}}return s?Kb(s):n}class Fd{get name(){return this.type.name}constructor(e,i=0){if(this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,this.mode=i&~Ke.EnterBracketed,e instanceof Qt)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,i){this.index=e;let{start:n,buffer:s}=this.buffer;return this.type=i||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 Qt?(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,i,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,i,n,this.mode));let{buffer:s}=this.buffer,r=s.findChild(this.index+4,s.buffer[this.index+3],e,i-this.buffer.start,n);return r<0?!1:(this.stack.push(this.index),this.yieldBuf(r))}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,i,n=this.mode){return this.buffer?n&Ke.ExcludeBuffers?!1:this.enterChild(1,e,i):this.yield(this._tree.enter(e,i,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Ke.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Ke.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:i}=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(i.findChild(s,this.index,-1,0,4))}else{let s=i.buffer[this.index+3];if(s<(n<0?i.buffer.length:i.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 i,n,{buffer:s}=this;if(s){if(e>0){if(this.index-1)for(let r=i+e,o=e<0?-1:n._tree.children.length;r!=o;r+=e){let a=n._tree.children[r];if(this.mode&Ke.IncludeAnonymous||a instanceof ss||!a.type.isAnonymous||mf(a))return!1}return!0}move(e,i){if(i&&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,i=0){for(;(this.from==this.to||(i<1?this.from>=e:this.from>e)||(i>-1?this.to<=e:this.to=0;){for(let o=e;o;o=o._parent)if(o.index==s){if(s==this.index)return o;i=o,n=r+1;break e}s=this.stack[--r]}for(let s=n;s=0;r--){if(r<0)return Vd(this._tree,e,s);let o=n[i.buffer[this.stack[r]]];if(!o.isAnonymous){if(e[s]&&e[s]!=o.name)return!1;s--}}return!0}}function mf(t){return t.children.some(e=>e instanceof ss||!e.type.isAnonymous||mf(e))}function pC(t){var e;let{buffer:i,nodeSet:n,maxBufferLength:s=Xb,reused:r=[],minRepeatType:o=n.types.length}=t,a=Array.isArray(i)?new pf(i,i.length):i,l=n.types,h=0,c=0;function d(C,y,T,k,$,S){let{id:D,start:A,end:E,size:M}=a,U=c,z=h;if(M<0)if(a.next(),M==-1){let H=r[D];T.push(H),k.push(A-C);return}else if(M==-3){h=D;return}else if(M==-4){c=D;return}else throw new RangeError(`Unrecognized record size: ${M}`);let R=l[D],N,F,J=A-C;if(E-A<=s&&(F=g(a.pos-y,$))){let H=new Uint16Array(F.size-F.skip),X=a.pos-F.size,ue=H.length;for(;a.pos>X;)ue=b(F.start,H,ue);N=new ss(H,E-F.start,n),J=F.start-C}else{let H=a.pos-M;a.next();let X=[],ue=[],pe=D>=o?D:-1,we=0,ye=E;for(;a.pos>H;)pe>=0&&a.id==pe&&a.size>=0?(a.end<=ye-s&&(p(X,ue,A,we,a.end,ye,pe,U,z),we=X.length,ye=a.end),a.next()):S>2500?u(A,H,X,ue):d(A,H,X,ue,pe,S+1);if(pe>=0&&we>0&&we-1&&we>0){let De=f(R,z);N=gf(R,X,ue,0,X.length,0,E-A,De,De)}else N=m(R,X,ue,E-A,U-E,z)}T.push(N),k.push(J)}function u(C,y,T,k){let $=[],S=0,D=-1;for(;a.pos>y;){let{id:A,start:E,end:M,size:U}=a;if(U>4)a.next();else{if(D>-1&&E=0;M-=3)A[U++]=$[M],A[U++]=$[M+1]-E,A[U++]=$[M+2]-E,A[U++]=U;T.push(new ss(A,$[2]-E,n)),k.push(E-C)}}function f(C,y){return(T,k,$)=>{let S=0,D=T.length-1,A,E;if(D>=0&&(A=T[D])instanceof rt){if(!D&&A.type==C&&A.length==$)return A;(E=A.prop(Te.lookAhead))&&(S=k[D]+A.length+E)}return m(C,T,k,$,S,y)}}function p(C,y,T,k,$,S,D,A,E){let M=[],U=[];for(;C.length>k;)M.push(C.pop()),U.push(y.pop()+T-$);C.push(m(n.types[D],M,U,S-$,A-S,E)),y.push($-T)}function m(C,y,T,k,$,S,D){if(S){let A=[Te.contextHash,S];D=D?[A].concat(D):[A]}if($>25){let A=[Te.lookAhead,$];D=D?[A].concat(D):[A]}return new rt(C,y,T,k,D)}function g(C,y){let T=a.fork(),k=0,$=0,S=0,D=T.end-s,A={size:0,start:0,skip:0};e:for(let E=T.pos-C;T.pos>E;){let M=T.size;if(T.id==y&&M>=0){A.size=k,A.start=$,A.skip=S,S+=4,k+=4,T.next();continue}let U=T.pos-M;if(M<0||U=o?4:0,R=T.start;for(T.next();T.pos>U;){if(T.size<0)if(T.size==-3||T.size==-4)z+=4;else break e;else T.id>=o&&(z+=4);T.next()}$=R,k+=M,S+=z}return(y<0||k==C)&&(A.size=k,A.start=$,A.skip=S),A.size>4?A:void 0}function b(C,y,T){let{id:k,start:$,end:S,size:D}=a;if(a.next(),D>=0&&k4){let E=a.pos-(D-4);for(;a.pos>E;)T=b(C,y,T)}y[--T]=A,y[--T]=S-C,y[--T]=$-C,y[--T]=k}else D==-3?h=k:D==-4&&(c=k);return T}let _=[],O=[];for(;a.pos>0;)d(t.start||0,t.bufferStart||0,_,O,-1,0);let x=(e=t.length)!==null&&e!==void 0?e:_.length?O[0]+_[0].length:0;return new rt(l[t.topID],_.reverse(),O.reverse(),x)}const Em=new WeakMap;function al(t,e){if(!t.isAnonymous||e instanceof ss||e.type!=t)return 1;let i=Em.get(e);if(i==null){i=1;for(let n of e.children){if(n.type!=t||!(n instanceof rt)){i=1;break}i+=al(t,n)}Em.set(e,i)}return i}function gf(t,e,i,n,s,r,o,a,l){let h=0;for(let p=n;p=c)break;y+=T}if(O==x+1){if(y>c){let T=p[x];f(T.children,T.positions,0,T.children.length,m[x]+_);continue}d.push(p[x])}else{let T=m[O-1]+p[O-1].length-C;d.push(gf(t,p,m,x,O,C,T,null,l))}u.push(C+_-r)}}return f(e,i,n,s,0),(a||l)(d,u,o)}class mC{constructor(){this.map=new WeakMap}setBuffer(e,i,n){let s=this.map.get(e);s||this.map.set(e,s=new Map),s.set(i,n)}getBuffer(e,i){let n=this.map.get(e);return n&&n.get(i)}set(e,i){e instanceof Qi?this.setBuffer(e.context.buffer,e.index,i):e instanceof Qt&&this.map.set(e.tree,i)}get(e){return e instanceof Qi?this.getBuffer(e.context.buffer,e.index):e instanceof Qt?this.map.get(e.tree):void 0}cursorSet(e,i){e.buffer?this.setBuffer(e.buffer.buffer,e.index,i):this.map.set(e.tree,i)}cursorGet(e){return e.buffer?this.getBuffer(e.buffer.buffer,e.index):this.map.get(e.tree)}}class ks{constructor(e,i,n,s,r=!1,o=!1){this.from=e,this.to=i,this.tree=n,this.offset=s,this.open=(r?1:0)|(o?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,i=[],n=!1){let s=[new ks(0,e.length,e,0,!1,n)];for(let r of i)r.to>e.length&&s.push(r);return s}static applyChanges(e,i,n=128){if(!i.length)return e;let s=[],r=1,o=e.length?e[0]:null;for(let a=0,l=0,h=0;;a++){let c=a=n)for(;o&&o.from=u.from||d<=u.to||h){let f=Math.max(u.from,l)-h,p=Math.min(u.to,d)-h;u=f>=p?null:new ks(f,p,u.tree,u.offset+h,a>0,!!c)}if(u&&s.push(u),o.to>d)break;o=rnew dc(s.from,s.to)):[new dc(0,0)]:[new dc(0,e.length)],this.createParse(e,i||[],n)}parse(e,i,n){let s=this.startParse(e,i,n);for(;;){let r=s.advance();if(r)return r}}}class gC{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,i){return this.string.slice(e,i)}}new Te({perNode:!0});let vC=0;class ii{constructor(e,i,n,s){this.name=e,this.set=i,this.base=n,this.modified=s,this.id=vC++}toString(){let{name:e}=this;for(let i of this.modified)i.name&&(e=`${i.name}(${e})`);return e}static define(e,i){let n=typeof e=="string"?e:"?";if(e instanceof ii&&(i=e),i?.base)throw new Error("Can not derive from a modified tag");let s=new ii(n,[],null,[]);if(s.set.push(s),i)for(let r of i.set)s.set.push(r);return s}static defineModifier(e){let i=new ql(e);return n=>n.modified.indexOf(i)>-1?n:ql.get(n.base||n,n.modified.concat(i).sort((s,r)=>s.id-r.id))}}let bC=0;class ql{constructor(e){this.name=e,this.instances=[],this.id=bC++}static get(e,i){if(!i.length)return e;let n=i[0].instances.find(a=>a.base==e&&_C(i,a.modified));if(n)return n;let s=[],r=new ii(e.name,s,e,i);for(let a of i)a.instances.push(r);let o=wC(i);for(let a of e.set)if(!a.modified.length)for(let l of o)s.push(ql.get(a,l));return r}}function _C(t,e){return t.length==e.length&&t.every((i,n)=>i==e[n])}function wC(t){let e=[[]];for(let i=0;in.length-i.length)}function e_(t){let e=Object.create(null);for(let i in t){let n=t[i];Array.isArray(n)||(n=[n]);for(let s of i.split(" "))if(s){let r=[],o=2,a=s;for(let d=0;;){if(a=="..."&&d>0&&d+3==s.length){o=1;break}let u=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(a);if(!u)throw new RangeError("Invalid path: "+s);if(r.push(u[0]=="*"?"":u[0][0]=='"'?JSON.parse(u[0]):u[0]),d+=u[0].length,d==s.length)break;let f=s[d++];if(d==s.length&&f=="!"){o=0;break}if(f!="/")throw new RangeError("Invalid path: "+s);a=s.slice(d)}let l=r.length-1,h=r[l];if(!h)throw new RangeError("Invalid path: "+s);let c=new Mo(n,o,l>0?r.slice(0,l):null);e[h]=c.sort(e[h])}}return t_.add(e)}const t_=new Te({combine(t,e){let i,n,s;for(;t||e;){if(!t||e&&t.depth>=e.depth?(s=e,e=e.next):(s=t,t=t.next),i&&i.mode==s.mode&&!s.context&&!i.context)continue;let r=new Mo(s.tags,s.mode,s.context);i?i.next=r:n=r,i=r}return n}});class Mo{constructor(e,i,n,s){this.tags=e,this.mode=i,this.context=n,this.next=s}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth{let o=s;for(let a of r)for(let l of a.set){let h=i[l.id];if(h){o=o?o+" "+h:h;break}}return o},scope:n}}function yC(t,e){let i=null;for(let n of t){let s=n.style(e);s&&(i=i?i+" "+s:s)}return i}function xC(t,e,i,n=0,s=t.length){let r=new OC(n,Array.isArray(e)?e:[e],i);r.highlightRange(t.cursor(),n,s,"",r.highlighters),r.flush(s)}class OC{constructor(e,i,n){this.at=e,this.highlighters=i,this.span=n,this.class=""}startSpan(e,i){i!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=i)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,i,n,s,r){let{type:o,from:a,to:l}=e;if(a>=n||l<=i)return;o.isTop&&(r=this.highlighters.filter(f=>!f.scope||f.scope(o)));let h=s,c=SC(e)||Mo.empty,d=yC(r,c.tags);if(d&&(h&&(h+=" "),h+=d,c.mode==1&&(s+=(s?" ":"")+d)),this.startSpan(Math.max(i,a),h),c.opaque)return;let u=e.tree&&e.tree.prop(Te.mounted);if(u&&u.overlay){let f=e.node.enter(u.overlay[0].from+a,1),p=this.highlighters.filter(g=>!g.scope||g.scope(u.tree.type)),m=e.firstChild();for(let g=0,b=a;;g++){let _=g=O||!e.nextSibling())););if(!_||O>n)break;b=_.to+a,b>i&&(this.highlightRange(f.cursor(),Math.max(i,_.from+a),Math.min(n,b),"",p),this.startSpan(Math.min(n,b),h))}m&&e.parent()}else if(e.firstChild()){u&&(s="");do if(!(e.to<=i)){if(e.from>=n)break;this.highlightRange(e,i,n,s,r),this.startSpan(Math.min(n,e.to),h)}while(e.nextSibling());e.parent()}}}function SC(t){let e=t.type.prop(t_);for(;e&&e.context&&!t.matchContext(e.context);)e=e.next;return e||null}const se=ii.define,Ca=se(),Bn=se(),Mm=se(Bn),Gm=se(Bn),Wn=se(),Ta=se(Wn),uc=se(Wn),Gi=se(),cs=se(Gi),Ei=se(),Mi=se(),Qd=se(),qr=se(Qd),Da=se(),Y={comment:Ca,lineComment:se(Ca),blockComment:se(Ca),docComment:se(Ca),name:Bn,variableName:se(Bn),typeName:Mm,tagName:se(Mm),propertyName:Gm,attributeName:se(Gm),className:se(Bn),labelName:se(Bn),namespace:se(Bn),macroName:se(Bn),literal:Wn,string:Ta,docString:se(Ta),character:se(Ta),attributeValue:se(Ta),number:uc,integer:se(uc),float:se(uc),bool:se(Wn),regexp:se(Wn),escape:se(Wn),color:se(Wn),url:se(Wn),keyword:Ei,self:se(Ei),null:se(Ei),atom:se(Ei),unit:se(Ei),modifier:se(Ei),operatorKeyword:se(Ei),controlKeyword:se(Ei),definitionKeyword:se(Ei),moduleKeyword:se(Ei),operator:Mi,derefOperator:se(Mi),arithmeticOperator:se(Mi),logicOperator:se(Mi),bitwiseOperator:se(Mi),compareOperator:se(Mi),updateOperator:se(Mi),definitionOperator:se(Mi),typeOperator:se(Mi),controlOperator:se(Mi),punctuation:Qd,separator:se(Qd),bracket:qr,angleBracket:se(qr),squareBracket:se(qr),paren:se(qr),brace:se(qr),content:Gi,heading:cs,heading1:se(cs),heading2:se(cs),heading3:se(cs),heading4:se(cs),heading5:se(cs),heading6:se(cs),contentSeparator:se(Gi),list:se(Gi),quote:se(Gi),emphasis:se(Gi),strong:se(Gi),link:se(Gi),monospace:se(Gi),strikethrough:se(Gi),inserted:se(),deleted:se(),changed:se(),invalid:se(),meta:Da,documentMeta:se(Da),annotation:se(Da),processingInstruction:se(Da),definition:ii.defineModifier("definition"),constant:ii.defineModifier("constant"),function:ii.defineModifier("function"),standard:ii.defineModifier("standard"),local:ii.defineModifier("local"),special:ii.defineModifier("special")};for(let t in Y){let e=Y[t];e instanceof ii&&(e.name=t)}i_([{tag:Y.link,class:"tok-link"},{tag:Y.heading,class:"tok-heading"},{tag:Y.emphasis,class:"tok-emphasis"},{tag:Y.strong,class:"tok-strong"},{tag:Y.keyword,class:"tok-keyword"},{tag:Y.atom,class:"tok-atom"},{tag:Y.bool,class:"tok-bool"},{tag:Y.url,class:"tok-url"},{tag:Y.labelName,class:"tok-labelName"},{tag:Y.inserted,class:"tok-inserted"},{tag:Y.deleted,class:"tok-deleted"},{tag:Y.literal,class:"tok-literal"},{tag:Y.string,class:"tok-string"},{tag:Y.number,class:"tok-number"},{tag:[Y.regexp,Y.escape,Y.special(Y.string)],class:"tok-string2"},{tag:Y.variableName,class:"tok-variableName"},{tag:Y.local(Y.variableName),class:"tok-variableName tok-local"},{tag:Y.definition(Y.variableName),class:"tok-variableName tok-definition"},{tag:Y.special(Y.variableName),class:"tok-variableName2"},{tag:Y.definition(Y.propertyName),class:"tok-propertyName tok-definition"},{tag:Y.typeName,class:"tok-typeName"},{tag:Y.namespace,class:"tok-namespace"},{tag:Y.className,class:"tok-className"},{tag:Y.macroName,class:"tok-macroName"},{tag:Y.propertyName,class:"tok-propertyName"},{tag:Y.operator,class:"tok-operator"},{tag:Y.comment,class:"tok-comment"},{tag:Y.meta,class:"tok-meta"},{tag:Y.invalid,class:"tok-invalid"},{tag:Y.punctuation,class:"tok-punctuation"}]);var fc;const rr=new Te;function kC(t){return le.define({combine:t?e=>e.concat(t):void 0})}const CC=new Te;class Si{constructor(e,i,n=[],s=""){this.data=e,this.name=s,Ne.prototype.hasOwnProperty("tree")||Object.defineProperty(Ne.prototype,"tree",{get(){return ei(this)}}),this.parser=i,this.extension=[kr.of(this),Ne.languageData.of((r,o,a)=>{let l=Rm(r,o,a),h=l.type.prop(rr);if(!h)return[];let c=r.facet(h),d=l.type.prop(CC);if(d){let u=l.resolve(o-l.from,a);for(let f of d)if(f.test(u,r)){let p=r.facet(f.facet);return f.type=="replace"?p:p.concat(c)}}return c})].concat(n)}isActiveAt(e,i,n=-1){return Rm(e,i,n).type.prop(rr)==this.data}findRegions(e){let i=e.facet(kr);if(i?.data==this.data)return[{from:0,to:e.doc.length}];if(!i||!i.allowsNesting)return[];let n=[],s=(r,o)=>{if(r.prop(rr)==this.data){n.push({from:o,to:o+r.length});return}let a=r.prop(Te.mounted);if(a){if(a.tree.prop(rr)==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+r.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;ln.isTop?i:void 0)]}),e.name)}configure(e,i){return new Ul(this.data,this.parser.configure(e),i||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function ei(t){let e=t.field(Si.state,!1);return e?e.tree:rt.empty}class TC{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,i){let n=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,i):this.string.slice(e-n,i-n)}}let Ur=null;class jl{constructor(e,i,n=[],s,r,o,a,l){this.parser=e,this.state=i,this.fragments=n,this.tree=s,this.treeLen=r,this.viewport=o,this.skipped=a,this.scheduleOn=l,this.parse=null,this.tempSkipped=[]}static create(e,i,n){return new jl(e,i,[],rt.empty,0,n,[],null)}startParse(){return this.parser.startParse(new TC(this.state.doc),this.fragments)}work(e,i){return i!=null&&i>=this.state.doc.length&&(i=void 0),this.tree!=rt.empty&&this.isDone(i??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()),i!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>i)&&i=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(i=this.parse.advance()););}),this.treeLen=e,this.tree=i,this.fragments=this.withoutTempSkipped(ks.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let i=Ur;Ur=this;try{return e()}finally{Ur=i}}withoutTempSkipped(e){for(let i;i=this.tempSkipped.pop();)e=zm(e,i.from,i.to);return e}changes(e,i){let{fragments:n,tree:s,treeLen:r,viewport:o,skipped:a}=this;if(this.takeTree(),!e.empty){let l=[];if(e.iterChangedRanges((h,c,d,u)=>l.push({fromA:h,toA:c,fromB:d,toB:u})),n=ks.applyChanges(n,l),s=rt.empty,r=0,o={from:e.mapPos(o.from,-1),to:e.mapPos(o.to,1)},this.skipped.length){a=[];for(let h of this.skipped){let c=e.mapPos(h.from,1),d=e.mapPos(h.to,-1);ce.from&&(this.fragments=zm(this.fragments,s,r),this.skipped.splice(n--,1))}return this.skipped.length>=i?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,i){this.skipped.push({from:e,to:i})}static getSkippingParser(e){return new class extends Jb{createParse(i,n,s){let r=s[0].from,o=s[s.length-1].to;return{parsedPos:r,advance(){let l=Ur;if(l){for(let h of s)l.tempSkipped.push(h);e&&(l.scheduleOn=l.scheduleOn?Promise.all([l.scheduleOn,e]):e)}return this.parsedPos=o,new rt(Ht.none,[],[],o-r)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let i=this.fragments;return this.treeLen>=e&&i.length&&i[0].from==0&&i[0].to>=e}static get(){return Ur}}function zm(t,e,i){return ks.applyChanges(t,[{fromA:e,toA:i,fromB:e,toB:i}])}class Sr{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let i=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),i.viewport.to);return i.work(20,n)||i.takeTree(),new Sr(i)}static init(e){let i=Math.min(3e3,e.doc.length),n=jl.create(e.facet(kr).parser,e,{from:0,to:i});return n.work(20,i)||n.takeTree(),new Sr(n)}}Si.state=Dt.define({create:Sr.init,update(t,e){for(let i of e.effects)if(i.is(Si.setState))return i.value;return e.startState.facet(kr)!=e.state.facet(kr)?Sr.init(e.state):t.apply(e)}});let n_=t=>{let e=setTimeout(()=>t(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(n_=t=>{let e=-1,i=setTimeout(()=>{e=requestIdleCallback(t,{timeout:400})},100);return()=>e<0?clearTimeout(i):cancelIdleCallback(e)});const pc=typeof navigator<"u"&&(!((fc=navigator.scheduling)===null||fc===void 0)&&fc.isInputPending)?()=>navigator.scheduling.isInputPending():null,DC=Tt.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 i=this.view.state.field(Si.state).context;(i.updateViewport(e.view.viewport)||this.view.viewport.to>i.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(i)}scheduleWork(){if(this.working)return;let{state:e}=this.view,i=e.field(Si.state);(i.tree!=i.context.tree||!i.context.isDone(e.doc.length))&&(this.working=n_(this.work))}work(e){this.working=null;let i=Date.now();if(this.chunkEnds+1e3,l=r.context.work(()=>pc&&pc()||Date.now()>o,s+(a?0:1e5));this.chunkBudget-=Date.now()-i,(l||this.chunkBudget<=0)&&(r.context.takeTree(),this.view.dispatch({effects:Si.setState.of(new Sr(r.context))})),this.chunkBudget>0&&!(l&&!a)&&this.scheduleWork(),this.checkAsyncSchedule(r.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(i=>Rt(this.view.state,i)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),kr=le.define({combine(t){return t.length?t[0]:null},enables:t=>[Si.state,DC,ce.contentAttributes.compute([t],e=>{let i=e.facet(t);return i&&i.name?{"data-language":i.name}:{}})]});class PC{constructor(e,i=[]){this.language=e,this.support=i,this.extension=[e,i]}}const $C=le.define(),Ah=le.define({combine:t=>{if(!t.length)return" ";let e=t[0];if(!e||/\S/.test(e)||Array.from(e).some(i=>i!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(t[0]));return e}});function Xl(t){let e=t.facet(Ah);return e.charCodeAt(0)==9?t.tabSize*e.length:e.length}function Yl(t,e){let i="",n=t.tabSize,s=t.facet(Ah)[0];if(s==" "){for(;e>=n;)i+=" ",e-=n;s=" "}for(let r=0;r=e?AC(t,i,e):null}class Ih{constructor(e,i={}){this.state=e,this.options=i,this.unit=Xl(e)}lineAt(e,i=1){let n=this.state.doc.lineAt(e),{simulateBreak:s,simulateDoubleBreak:r}=this.options;return s!=null&&s>=n.from&&s<=n.to?r&&s==e?{text:"",from:e}:(i<0?s-1&&(r+=o-this.countColumn(n,n.search(/\S|$/))),r}countColumn(e,i=e.length){return Sh(e,this.state.tabSize,i)}lineIndent(e,i=1){let{text:n,from:s}=this.lineAt(e,i),r=this.options.overrideIndentation;if(r){let o=r(s);if(o>-1)return o}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const r_=new Te;function AC(t,e,i){let n=e.resolveStack(i),s=e.resolveInner(i,-1).resolve(i,0).enterUnfinishedNodesBefore(i);if(s!=n.node){let r=[];for(let o=s;o&&!(o.fromn.node.to||o.from==n.node.from&&o.type==n.node.type);o=o.parent)r.push(o);for(let o=r.length-1;o>=0;o--)n={node:r[o],next:n}}return o_(n,t,i)}function o_(t,e,i){for(let n=t;n;n=n.next){let s=EC(n.node);if(s)return s(vf.create(e,i,n))}return 0}function IC(t){return t.pos==t.options.simulateBreak&&t.options.simulateDoubleBreak}function EC(t){let e=t.type.prop(r_);if(e)return e;let i=t.firstChild,n;if(i&&(n=i.type.prop(Te.closedBy))){let s=t.lastChild,r=s&&n.indexOf(s.name)>-1;return o=>a_(o,!0,1,void 0,r&&!IC(o)?s.from:void 0)}return t.parent==null?MC:null}function MC(){return 0}class vf extends Ih{constructor(e,i,n){super(e.state,e.options),this.base=e,this.pos=i,this.context=n}get node(){return this.context.node}static create(e,i,n){return new vf(e,i,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let i=this.state.doc.lineAt(e.from);for(;;){let n=e.resolve(i.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(GC(n,e))break;i=this.state.doc.lineAt(n.from)}return this.lineIndent(i.from)}continue(){return o_(this.context.next,this.base,this.pos)}}function GC(t,e){for(let i=e;i;i=i.parent)if(t==i)return!0;return!1}function RC(t){let e=t.node,i=e.childAfter(e.from),n=e.lastChild;if(!i)return null;let s=t.options.simulateBreak,r=t.state.doc.lineAt(i.from),o=s==null||s<=r.from?r.to:Math.min(r.to,s);for(let a=i.to;;){let l=e.childAfter(a);if(!l||l==n)return null;if(!l.type.isSkipped){if(l.from>=o)return null;let h=/^ */.exec(r.text.slice(i.to-r.from))[0].length;return{from:i.from,to:i.to+h}}a=l.to}}function mc({closing:t,align:e=!0,units:i=1}){return n=>a_(n,e,i,t)}function a_(t,e,i,n,s){let r=t.textAfter,o=r.match(/^\s*/)[0].length,a=n&&r.slice(o,o+n.length)==n||s==t.pos+o,l=e?RC(t):null;return l?a?t.column(l.from):t.column(l.to):t.baseIndent+(a?0:t.unit*i)}const zC=new Te;function LC(t){let e=t.firstChild,i=t.lastChild;return e&&e.toa.prop(rr)==o.data:o?a=>a==o:void 0,this.style=i_(e.map(a=>({tag:a.tag,class:a.class||s(Object.assign({},a,{tag:null}))})),{all:r}).style,this.module=n?new es(n):null,this.themeType=i.themeType}static define(e,i){return new Eh(e,i||{})}}const Hd=le.define(),NC=le.define({combine(t){return t.length?[t[0]]:null}});function gc(t){let e=t.facet(Hd);return e.length?e:t.facet(NC)}function BC(t,e){let i=[VC],n;return t instanceof Eh&&(t.module&&i.push(ce.styleModule.of(t.module)),n=t.themeType),n?i.push(Hd.computeN([ce.darkTheme],s=>s.facet(ce.darkTheme)==(n=="dark")?[t]:[])):i.push(Hd.of(t)),i}class WC{constructor(e){this.markCache=Object.create(null),this.tree=ei(e.state),this.decorations=this.buildDeco(e,gc(e.state)),this.decoratedTo=e.viewport.to}update(e){let i=ei(e.state),n=gc(e.state),s=n!=gc(e.startState),{viewport:r}=e.view,o=e.changes.mapPos(this.decoratedTo,1);i.length=r.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(i!=this.tree||e.viewportChanged||s)&&(this.tree=i,this.decorations=this.buildDeco(e.view,n),this.decoratedTo=r.to)}buildDeco(e,i){if(!i||!this.tree.length)return Ge.none;let n=new Ms;for(let{from:s,to:r}of e.visibleRanges)xC(this.tree,i,(o,a,l)=>{n.add(o,a,this.markCache[l]||(this.markCache[l]=Ge.mark({class:l})))},s,r);return n.finish()}}const VC=Gr.high(Tt.fromClass(WC,{decorations:t=>t.decorations})),FC=1e4,QC="()[]{}",HC=new Te;function qd(t,e,i){let n=t.prop(e<0?Te.openedBy:Te.closedBy);if(n)return n;if(t.name.length==1){let s=i.indexOf(t.name);if(s>-1&&s%2==(e<0?1:0))return[i[s+e]]}return null}function Ud(t){let e=t.type.prop(HC);return e?e(t.node):t}function or(t,e,i,n={}){let s=n.maxScanDistance||FC,r=n.brackets||QC,o=ei(t),a=o.resolveInner(e,i);for(let l=a;l;l=l.parent){let h=qd(l.type,i,r);if(h&&l.from0?e>=c.from&&ec.from&&e<=c.to))return qC(t,e,i,l,c,h,r)}}return UC(t,e,i,o,a.type,s,r)}function qC(t,e,i,n,s,r,o){let a=n.parent,l={from:s.from,to:s.to},h=0,c=a?.cursor();if(c&&(i<0?c.childBefore(n.from):c.childAfter(n.to)))do if(i<0?c.to<=n.from:c.from>=n.to){if(h==0&&r.indexOf(c.type.name)>-1&&c.from0)return null;let h={from:i<0?e-1:e,to:i>0?e+1:e},c=t.doc.iterRange(e,i>0?t.doc.length:0),d=0;for(let u=0;!c.next().done&&u<=r;){let f=c.value;i<0&&(u+=f.length);let p=e+u*i;for(let m=i>0?0:f.length-1,g=i>0?f.length:-1;m!=g;m+=i){let b=o.indexOf(f[m]);if(!(b<0||n.resolveInner(p+m,1).type!=s))if(b%2==0==i>0)d++;else{if(d==1)return{start:h,end:{from:p+m,to:p+m+1},matched:b>>1==l>>1};d--}}i>0&&(u+=f.length)}return c.done?{start:h,matched:!1}:null}const jC=Object.create(null),Lm=[Ht.none],Nm=[],Bm=Object.create(null),XC=Object.create(null);for(let[t,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"]])XC[t]=YC(jC,e);function vc(t,e){Nm.indexOf(t)>-1||(Nm.push(t),console.warn(e))}function YC(t,e){let i=[];for(let a of e.split(" ")){let l=[];for(let h of a.split(".")){let c=t[h]||Y[h];c?typeof c=="function"?l.length?l=l.map(c):vc(h,`Modifier ${h} used at start of tag`):l.length?vc(h,`Tag ${h} used as modifier`):l=Array.isArray(c)?c:[c]:vc(h,`Unknown highlighting tag ${h}`)}for(let h of l)i.push(h)}if(!i.length)return 0;let n=e.replace(/ /g,"_"),s=n+" "+i.map(a=>a.id),r=Bm[s];if(r)return r.id;let o=Bm[s]=Ht.define({id:Lm.length,name:n,props:[e_({[n]:i})]});return Lm.push(o),o.id}Ye.RTL,Ye.LTR;const ZC=t=>{let{state:e}=t,i=e.doc.lineAt(e.selection.main.from),n=_f(t.state,i.from);return n.line?KC(t):n.block?eT(t):!1};function bf(t,e){return({state:i,dispatch:n})=>{if(i.readOnly)return!1;let s=t(e,i);return s?(n(i.update(s)),!0):!1}}const KC=bf(nT,0),JC=bf(l_,0),eT=bf((t,e)=>l_(t,e,iT(e)),0);function _f(t,e){let i=t.languageDataAt("commentTokens",e,1);return i.length?i[0]:{}}const jr=50;function tT(t,{open:e,close:i},n,s){let r=t.sliceDoc(n-jr,n),o=t.sliceDoc(s,s+jr),a=/\s*$/.exec(r)[0].length,l=/^\s*/.exec(o)[0].length,h=r.length-a;if(r.slice(h-e.length,h)==e&&o.slice(l,l+i.length)==i)return{open:{pos:n-a,margin:a&&1},close:{pos:s+l,margin:l&&1}};let c,d;s-n<=2*jr?c=d=t.sliceDoc(n,s):(c=t.sliceDoc(n,n+jr),d=t.sliceDoc(s-jr,s));let u=/^\s*/.exec(c)[0].length,f=/\s*$/.exec(d)[0].length,p=d.length-f-i.length;return c.slice(u,u+e.length)==e&&d.slice(p,p+i.length)==i?{open:{pos:n+u+e.length,margin:/\s/.test(c.charAt(u+e.length))?1:0},close:{pos:s-f-i.length,margin:/\s/.test(d.charAt(p-1))?1:0}}:null}function iT(t){let e=[];for(let i of t.selection.ranges){let n=t.doc.lineAt(i.from),s=i.to<=n.to?n:t.doc.lineAt(i.to);s.from>n.from&&s.from==i.to&&(s=i.to==n.to+1?n:t.doc.lineAt(i.to-1));let r=e.length-1;r>=0&&e[r].to>n.from?e[r].to=s.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:s.to})}return e}function l_(t,e,i=e.selection.ranges){let n=i.map(r=>_f(e,r.from).block);if(!n.every(r=>r))return null;let s=i.map((r,o)=>tT(e,n[o],r.from,r.to));if(t!=2&&!s.every(r=>r))return{changes:e.changes(i.map((r,o)=>s[o]?[]:[{from:r.from,insert:n[o].open+" "},{from:r.to,insert:" "+n[o].close}]))};if(t!=1&&s.some(r=>r)){let r=[];for(let o=0,a;os&&(r==o||o>d.from)){s=d.from;let u=/^\s*/.exec(d.text)[0].length,f=u==d.length,p=d.text.slice(u,u+h.length)==h?u:-1;ur.comment<0&&(!r.empty||r.single))){let r=[];for(let{line:a,token:l,indent:h,empty:c,single:d}of n)(d||!c)&&r.push({from:a.from+h,insert:l+" "});let o=e.changes(r);return{changes:o,selection:e.selection.map(o,1)}}else if(t!=1&&n.some(r=>r.comment>=0)){let r=[];for(let{line:o,comment:a,token:l}of n)if(a>=0){let h=o.from+a,c=h+l.length;o.text[c-o.from]==" "&&c++,r.push({from:h,to:c})}return{changes:r}}return null}const jd=Pn.define(),sT=Pn.define(),rT=le.define(),h_=le.define({combine(t){return ea(t,{minDepth:100,newGroupDelay:500,joinToEvent:(e,i)=>i},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,i)=>(n,s)=>e(n,s)||i(n,s)})}}),c_=Dt.define({create(){return Hi.empty},update(t,e){let i=e.state.facet(h_),n=e.annotation(jd);if(n){let l=Vt.fromTransaction(e,n.selection),h=n.side,c=h==0?t.undone:t.done;return l?c=Zl(c,c.length,i.minDepth,l):c=f_(c,e.startState.selection),new Hi(h==0?n.rest:c,h==0?c:n.rest)}let s=e.annotation(sT);if((s=="full"||s=="before")&&(t=t.isolate()),e.annotation(lt.addToHistory)===!1)return e.changes.empty?t:t.addMapping(e.changes.desc);let r=Vt.fromTransaction(e),o=e.annotation(lt.time),a=e.annotation(lt.userEvent);return r?t=t.addChanges(r,o,a,i,e):e.selection&&(t=t.addSelection(e.startState.selection,o,a,i.newGroupDelay)),(s=="full"||s=="after")&&(t=t.isolate()),t},toJSON(t){return{done:t.done.map(e=>e.toJSON()),undone:t.undone.map(e=>e.toJSON())}},fromJSON(t){return new Hi(t.done.map(Vt.fromJSON),t.undone.map(Vt.fromJSON))}});function oT(t={}){return[c_,h_.of(t),ce.domEventHandlers({beforeinput(e,i){let n=e.inputType=="historyUndo"?d_:e.inputType=="historyRedo"?Xd:null;return n?(e.preventDefault(),n(i)):!1}})]}function Mh(t,e){return function({state:i,dispatch:n}){if(!e&&i.readOnly)return!1;let s=i.field(c_,!1);if(!s)return!1;let r=s.pop(t,i,e);return r?(n(r),!0):!1}}const d_=Mh(0,!1),Xd=Mh(1,!1),aT=Mh(0,!0),lT=Mh(1,!0);class Vt{constructor(e,i,n,s,r){this.changes=e,this.effects=i,this.mapped=n,this.startSelection=s,this.selectionsAfter=r}setSelAfter(e){return new Vt(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,i,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(i=this.mapped)===null||i===void 0?void 0:i.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 Vt(e.changes&&dt.fromJSON(e.changes),[],e.mapped&&ji.fromJSON(e.mapped),e.startSelection&&K.fromJSON(e.startSelection),e.selectionsAfter.map(K.fromJSON))}static fromTransaction(e,i){let n=oi;for(let s of e.startState.facet(rT)){let r=s(e);r.length&&(n=n.concat(r))}return!n.length&&e.changes.empty?null:new Vt(e.changes.invert(e.startState.doc),n,void 0,i||e.startState.selection,oi)}static selection(e){return new Vt(void 0,oi,void 0,void 0,e)}}function Zl(t,e,i,n){let s=e+1>i+20?e-i-1:0,r=t.slice(s,e);return r.push(n),r}function hT(t,e){let i=[],n=!1;return t.iterChangedRanges((s,r)=>i.push(s,r)),e.iterChangedRanges((s,r,o,a)=>{for(let l=0;l=h&&o<=c&&(n=!0)}}),n}function cT(t,e){return t.ranges.length==e.ranges.length&&t.ranges.filter((i,n)=>i.empty!=e.ranges[n].empty).length===0}function u_(t,e){return t.length?e.length?t.concat(e):t:e}const oi=[],dT=200;function f_(t,e){if(t.length){let i=t[t.length-1],n=i.selectionsAfter.slice(Math.max(0,i.selectionsAfter.length-dT));return n.length&&n[n.length-1].eq(e)?t:(n.push(e),Zl(t,t.length-1,1e9,i.setSelAfter(n)))}else return[Vt.selection([e])]}function uT(t){let e=t[t.length-1],i=t.slice();return i[t.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),i}function bc(t,e){if(!t.length)return t;let i=t.length,n=oi;for(;i;){let s=fT(t[i-1],e,n);if(s.changes&&!s.changes.empty||s.effects.length){let r=t.slice(0,i);return r[i-1]=s,r}else e=s.mapped,i--,n=s.selectionsAfter}return n.length?[Vt.selection(n)]:oi}function fT(t,e,i){let n=u_(t.selectionsAfter.length?t.selectionsAfter.map(a=>a.map(e)):oi,i);if(!t.changes)return Vt.selection(n);let s=t.changes.map(e),r=e.mapDesc(t.changes,!0),o=t.mapped?t.mapped.composeDesc(r):r;return new Vt(s,$e.mapEffects(t.effects,e),o,t.startSelection.map(r),n)}const pT=/^(input\.type|delete)($|\.)/;class Hi{constructor(e,i,n=0,s=void 0){this.done=e,this.undone=i,this.prevTime=n,this.prevUserEvent=s}isolate(){return this.prevTime?new Hi(this.done,this.undone):this}addChanges(e,i,n,s,r){let o=this.done,a=o[o.length-1];return a&&a.changes&&!a.changes.empty&&e.changes&&(!n||pT.test(n))&&(!a.selectionsAfter.length&&i-this.prevTime0&&i-this.prevTimei.empty?t.moveByChar(i,e):Gh(i,e))}function Pt(t){return t.textDirectionAt(t.state.selection.main.head)==Ye.LTR}const m_=t=>p_(t,!Pt(t)),g_=t=>p_(t,Pt(t));function v_(t,e){return Ai(t,i=>i.empty?t.moveByGroup(i,e):Gh(i,e))}const gT=t=>v_(t,!Pt(t)),vT=t=>v_(t,Pt(t));function bT(t,e,i){if(e.type.prop(i))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function Rh(t,e,i){let n=ei(t).resolveInner(e.head),s=i?Te.closedBy:Te.openedBy;for(let l=e.head;;){let h=i?n.childAfter(l):n.childBefore(l);if(!h)break;bT(t,h,s)?n=h:l=i?h.to:h.from}let r=n.type.prop(s),o,a;return r&&(o=i?or(t,n.from,1):or(t,n.to,-1))&&o.matched?a=i?o.end.to:o.end.from:a=i?n.to:n.from,K.cursor(a,i?-1:1)}const _T=t=>Ai(t,e=>Rh(t.state,e,!Pt(t))),wT=t=>Ai(t,e=>Rh(t.state,e,Pt(t)));function b_(t,e){return Ai(t,i=>{if(!i.empty)return Gh(i,e);let n=t.moveVertically(i,e);return n.head!=i.head?n:t.moveToLineBoundary(i,e)})}const __=t=>b_(t,!1),w_=t=>b_(t,!0);function y_(t){let e=t.scrollDOM.clientHeighto.empty?t.moveVertically(o,e,i.height):Gh(o,e));if(s.eq(n.selection))return!1;let r;if(i.selfScroll){let o=t.coordsAtPos(n.selection.main.head),a=t.scrollDOM.getBoundingClientRect(),l=a.top+i.marginTop,h=a.bottom-i.marginBottom;o&&o.top>l&&o.bottomx_(t,!1),Yd=t=>x_(t,!0);function as(t,e,i){let n=t.lineBlockAt(e.head),s=t.moveToLineBoundary(e,i);if(s.head==e.head&&s.head!=(i?n.to:n.from)&&(s=t.moveToLineBoundary(e,i,!1)),!i&&s.head==n.from&&n.length){let r=/^\s*/.exec(t.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;r&&e.head!=n.from+r&&(s=K.cursor(n.from+r))}return s}const yT=t=>Ai(t,e=>as(t,e,!0)),xT=t=>Ai(t,e=>as(t,e,!1)),OT=t=>Ai(t,e=>as(t,e,!Pt(t))),ST=t=>Ai(t,e=>as(t,e,Pt(t))),kT=t=>Ai(t,e=>K.cursor(t.lineBlockAt(e.head).from,1)),CT=t=>Ai(t,e=>K.cursor(t.lineBlockAt(e.head).to,-1));function TT(t,e,i){let n=!1,s=zr(t.selection,r=>{let o=or(t,r.head,-1)||or(t,r.head,1)||r.head>0&&or(t,r.head-1,1)||r.headTT(t,e);function pi(t,e,i){let n=zr(t.state.selection,s=>{s.undirectional&&s.head>=s.anchor!=e&&(s=K.range(s.head,s.anchor));let r=i(s);return K.range(s.anchor,r.head,r.goalColumn,r.bidiLevel||void 0,r.assoc)});return n.eq(t.state.selection)?!1:(t.dispatch($i(t.state,n)),!0)}function O_(t,e){return pi(t,e,i=>t.moveByChar(i,e))}const S_=t=>O_(t,!Pt(t)),k_=t=>O_(t,Pt(t));function C_(t,e){return pi(t,e,i=>t.moveByGroup(i,e))}const PT=t=>C_(t,!Pt(t)),$T=t=>C_(t,Pt(t)),AT=t=>{let e=!Pt(t);return pi(t,e,i=>Rh(t.state,i,e))},IT=t=>{let e=Pt(t);return pi(t,e,i=>Rh(t.state,i,e))};function T_(t,e){return pi(t,e,i=>t.moveVertically(i,e))}const D_=t=>T_(t,!1),P_=t=>T_(t,!0);function $_(t,e){return pi(t,e,i=>t.moveVertically(i,e,y_(t).height))}const Vm=t=>$_(t,!1),Fm=t=>$_(t,!0),ET=t=>pi(t,!0,e=>as(t,e,!0)),MT=t=>pi(t,!1,e=>as(t,e,!1)),GT=t=>{let e=!Pt(t);return pi(t,e,i=>as(t,i,e))},RT=t=>{let e=Pt(t);return pi(t,e,i=>as(t,i,e))},zT=t=>pi(t,!1,e=>K.cursor(t.lineBlockAt(e.head).from)),LT=t=>pi(t,!0,e=>K.cursor(t.lineBlockAt(e.head).to)),Qm=({state:t,dispatch:e})=>(e($i(t,{anchor:0})),!0),Hm=({state:t,dispatch:e})=>(e($i(t,{anchor:t.doc.length})),!0),qm=({state:t,dispatch:e})=>(e($i(t,{anchor:t.selection.main.anchor,head:0})),!0),Um=({state:t,dispatch:e})=>(e($i(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),NT=({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),BT=({state:t,dispatch:e})=>{let i=zh(t).map(({from:n,to:s})=>K.range(n,Math.min(s+1,t.doc.length)));return e(t.update({selection:K.create(i),userEvent:"select"})),!0},WT=({state:t,dispatch:e})=>{let i=zr(t.selection,n=>{let s=ei(t),r=s.resolveStack(n.from,1);if(n.empty){let o=s.resolveStack(n.from,-1);o.node.from>=r.node.from&&o.node.to<=r.node.to&&(r=o)}for(let o=r;o;o=o.next){let{node:a}=o;if((a.from=n.to||a.to>n.to&&a.from<=n.from)&&o.next)return K.range(a.to,a.from)}return n});return i.eq(t.selection)?!1:(e($i(t,i)),!0)};function A_(t,e){let{state:i}=t,n=i.selection,s=i.selection.ranges.slice();for(let r of i.selection.ranges){let o=i.doc.lineAt(r.head);if(e?o.to0)for(let a=r;;){let l=t.moveVertically(a,e);if(l.heado.to){s.some(h=>h.head==l.head)||s.push(l);break}else{if(l.head==a.head)break;a=l}}}return s.length==n.ranges.length?!1:(t.dispatch($i(i,K.create(s,s.length-1))),!0)}const VT=t=>A_(t,!1),FT=t=>A_(t,!0),QT=({state:t,dispatch:e})=>{let i=t.selection,n=null;return i.ranges.length>1?n=K.create([i.main]):i.main.empty||(n=K.create([K.cursor(i.main.head)])),n?(e($i(t,n)),!0):!1};function oa(t,e){if(t.state.readOnly)return!1;let i="delete.selection",{state:n}=t,s=n.changeByRange(r=>{let{from:o,to:a}=r;if(o==a){let l=e(r);lo&&(i="delete.forward",l=Pa(t,l,!0)),o=Math.min(o,l),a=Math.max(a,l)}else o=Pa(t,o,!1),a=Pa(t,a,!0);return o==a?{range:r}:{changes:{from:o,to:a},range:K.cursor(o,os(t)))n.between(e,e,(s,r)=>{se&&(e=i?r:s)});return e}const I_=(t,e,i)=>oa(t,n=>{let s=n.from,{state:r}=t,o=r.doc.lineAt(s),a,l;if(i&&!e&&s>o.from&&sI_(t,!1,!0),E_=t=>I_(t,!0,!1),M_=(t,e)=>oa(t,i=>{let n=i.head,{state:s}=t,r=s.doc.lineAt(n),o=s.charCategorizer(n);for(let a=null;;){if(n==(e?r.to:r.from)){n==i.head&&r.number!=(e?s.doc.lines:1)&&(n+=e?1:-1);break}let l=Ct(r.text,n-r.from,e)+r.from,h=r.text.slice(Math.min(n,l)-r.from,Math.max(n,l)-r.from),c=o(h);if(a!=null&&c!=a)break;(h!=" "||n!=i.head)&&(a=c),n=l}return n}),G_=t=>M_(t,!1),HT=t=>M_(t,!0),qT=t=>oa(t,e=>{let i=t.lineBlockAt(e.head).to;return e.headoa(t,e=>{let i=t.moveToLineBoundary(e,!1).head;return e.head>i?i:Math.max(0,e.head-1)}),jT=t=>oa(t,e=>{let i=t.moveToLineBoundary(e,!0).head;return e.head{if(t.readOnly)return!1;let i=t.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:Ee.of(["",""])},range:K.cursor(n.from)}));return e(t.update(i,{scrollIntoView:!0,userEvent:"input"})),!0},YT=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=t.changeByRange(n=>{if(!n.empty||n.from==0||n.from==t.doc.length)return{range:n};let s=n.from,r=t.doc.lineAt(s),o=s==r.from?s-1:Ct(r.text,s-r.from,!1)+r.from,a=s==r.to?s+1:Ct(r.text,s-r.from,!0)+r.from;return{changes:{from:o,to:a,insert:t.doc.slice(s,a).append(t.doc.slice(o,s))},range:K.cursor(a)}});return i.changes.empty?!1:(e(t.update(i,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function zh(t){let e=[],i=-1;for(let n of t.selection.ranges){let s=t.doc.lineAt(n.from),r=t.doc.lineAt(n.to);if(!n.empty&&n.to==r.from&&(r=t.doc.lineAt(n.to-1)),i>=s.number){let o=e[e.length-1];o.to=r.to,o.ranges.push(n)}else e.push({from:s.from,to:r.to,ranges:[n]});i=r.number+1}return e}function R_(t,e,i){if(t.readOnly)return!1;let n=[],s=[];for(let r of zh(t)){if(i?r.to==t.doc.length:r.from==0)continue;let o=t.doc.lineAt(i?r.to+1:r.from-1),a=o.length+1;if(i){n.push({from:r.to,to:o.to},{from:r.from,insert:o.text+t.lineBreak});for(let l of r.ranges)s.push(K.range(Math.min(t.doc.length,l.anchor+a),Math.min(t.doc.length,l.head+a)))}else{n.push({from:o.from,to:r.from},{from:r.to,insert:t.lineBreak+o.text});for(let l of r.ranges)s.push(K.range(l.anchor-a,l.head-a))}}return n.length?(e(t.update({changes:n,scrollIntoView:!0,selection:K.create(s,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}const ZT=({state:t,dispatch:e})=>R_(t,e,!1),KT=({state:t,dispatch:e})=>R_(t,e,!0);function z_(t,e,i){if(t.readOnly)return!1;let n=[];for(let r of zh(t))i?n.push({from:r.from,insert:t.doc.slice(r.from,r.to)+t.lineBreak}):n.push({from:r.to,insert:t.lineBreak+t.doc.slice(r.from,r.to)});let s=t.changes(n);return e(t.update({changes:s,selection:t.selection.map(s,i?1:-1),scrollIntoView:!0,userEvent:"input.copyline"})),!0}const JT=({state:t,dispatch:e})=>z_(t,e,!1),eD=({state:t,dispatch:e})=>z_(t,e,!0),tD=t=>{if(t.state.readOnly)return!1;let{state:e}=t,i=e.changes(zh(e).map(({from:s,to:r})=>(s>0?s--:r{let r;if(t.lineWrapping){let o=t.lineBlockAt(s.head),a=t.coordsAtPos(s.head,s.assoc||1);a&&(r=o.bottom+t.documentTop-a.bottom+t.defaultLineHeight/2)}return t.moveVertically(s,!0,r)}).map(i);return t.dispatch({changes:i,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0};function iD(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let i=ei(t).resolveInner(e),n=i.childBefore(e),s=i.childAfter(e),r;return n&&s&&n.to<=e&&s.from>=e&&(r=n.type.prop(Te.closedBy))&&r.indexOf(s.name)>-1&&t.doc.lineAt(n.to).from==t.doc.lineAt(s.from).from&&!/\S/.test(t.sliceDoc(n.to,s.from))?{from:n.to,to:s.from}:null}const jm=L_(!1),nD=L_(!0);function L_(t){return({state:e,dispatch:i})=>{if(e.readOnly)return!1;let n=e.changeByRange(s=>{let{from:r,to:o}=s,a=e.doc.lineAt(r),l=!t&&r==o&&iD(e,r);t&&(r=o=(o<=a.to?a:e.doc.lineAt(o)).to);let h=new Ih(e,{simulateBreak:r,simulateDoubleBreak:!!l}),c=s_(h,r);for(c==null&&(c=Sh(/^\s*/.exec(e.doc.lineAt(r).text)[0],e.tabSize));oa.from&&r{let s=[];for(let o=n.from;o<=n.to;){let a=t.doc.lineAt(o);a.number>i&&(n.empty||n.to>a.from)&&(e(a,s,n),i=a.number),o=a.to+1}let r=t.changes(s);return{changes:s,range:K.range(r.mapPos(n.anchor,1),r.mapPos(n.head,1))}})}const sD=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let i=Object.create(null),n=new Ih(t,{overrideIndentation:r=>{let o=i[r];return o??-1}}),s=wf(t,(r,o,a)=>{let l=s_(n,r.from);if(l==null)return;/\S/.test(r.text)||(l=0);let h=/^\s*/.exec(r.text)[0],c=Yl(t,l);(h!=c||a.fromt.readOnly?!1:(e(t.update(wf(t,(i,n)=>{n.push({from:i.from,insert:t.facet(Ah)})}),{userEvent:"input.indent"})),!0),B_=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(wf(t,(i,n)=>{let s=/^\s*/.exec(i.text)[0];if(!s)return;let r=Sh(s,t.tabSize),o=0,a=Yl(t,Math.max(0,r-Xl(t)));for(;o(t.setTabFocusMode(),!0),oD=[{key:"Ctrl-b",run:m_,shift:S_,preventDefault:!0},{key:"Ctrl-f",run:g_,shift:k_},{key:"Ctrl-p",run:__,shift:D_},{key:"Ctrl-n",run:w_,shift:P_},{key:"Ctrl-a",run:kT,shift:zT},{key:"Ctrl-e",run:CT,shift:LT},{key:"Ctrl-d",run:E_},{key:"Ctrl-h",run:Zd},{key:"Ctrl-k",run:qT},{key:"Ctrl-Alt-h",run:G_},{key:"Ctrl-o",run:XT},{key:"Ctrl-t",run:YT},{key:"Ctrl-v",run:Yd}],aD=[{key:"ArrowLeft",run:m_,shift:S_,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:gT,shift:PT,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:OT,shift:GT,preventDefault:!0},{key:"ArrowRight",run:g_,shift:k_,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:vT,shift:$T,preventDefault:!0},{mac:"Cmd-ArrowRight",run:ST,shift:RT,preventDefault:!0},{key:"ArrowUp",run:__,shift:D_,preventDefault:!0},{mac:"Cmd-ArrowUp",run:Qm,shift:qm},{mac:"Ctrl-ArrowUp",run:Wm,shift:Vm},{key:"ArrowDown",run:w_,shift:P_,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Hm,shift:Um},{mac:"Ctrl-ArrowDown",run:Yd,shift:Fm},{key:"PageUp",run:Wm,shift:Vm},{key:"PageDown",run:Yd,shift:Fm},{key:"Home",run:xT,shift:MT,preventDefault:!0},{key:"Mod-Home",run:Qm,shift:qm},{key:"End",run:yT,shift:ET,preventDefault:!0},{key:"Mod-End",run:Hm,shift:Um},{key:"Enter",run:jm,shift:jm},{key:"Mod-a",run:NT},{key:"Backspace",run:Zd,shift:Zd,preventDefault:!0},{key:"Delete",run:E_,preventDefault:!0},{key:"Mod-Backspace",mac:"Alt-Backspace",run:G_,preventDefault:!0},{key:"Mod-Delete",mac:"Alt-Delete",run:HT,preventDefault:!0},{mac:"Mod-Backspace",run:UT,preventDefault:!0},{mac:"Mod-Delete",run:jT,preventDefault:!0}].concat(oD.map(t=>({mac:t.key,run:t.run,shift:t.shift}))),lD=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:_T,shift:AT},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:wT,shift:IT},{key:"Alt-ArrowUp",run:ZT},{key:"Shift-Alt-ArrowUp",run:JT},{key:"Alt-ArrowDown",run:KT},{key:"Shift-Alt-ArrowDown",run:eD},{key:"Mod-Alt-ArrowUp",run:VT},{key:"Mod-Alt-ArrowDown",run:FT},{key:"Escape",run:QT},{key:"Mod-Enter",run:nD},{key:"Alt-l",mac:"Ctrl-l",run:BT},{key:"Mod-i",run:WT,preventDefault:!0},{key:"Mod-[",run:B_},{key:"Mod-]",run:N_},{key:"Mod-Alt-\\",run:sD},{key:"Shift-Mod-k",run:tD},{key:"Shift-Mod-\\",run:DT},{key:"Mod-/",run:ZC},{key:"Alt-A",run:JC},{key:"Ctrl-m",mac:"Shift-Alt-m",run:rD}].concat(aD),hD={key:"Tab",run:N_,shift:B_};var Xm={};class Kl{constructor(e,i,n,s,r,o,a,l,h,c=0,d){this.p=e,this.stack=i,this.state=n,this.reducePos=s,this.pos=r,this.score=o,this.buffer=a,this.bufferBase=l,this.curContext=h,this.lookAhead=c,this.parent=d}toString(){return`[${this.stack.filter((e,i)=>i%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,i,n=0){let s=e.parser.context;return new Kl(e,[],i,n,n,0,[],0,s?new Ym(s,s.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,i){this.stack.push(this.state,i,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var i;let n=e>>19,s=e&65535,{parser:r}=this.p,o=this.reducePos=2e3&&!(!((i=this.p.parser.nodeSet.types[s])===null||i===void 0)&&i.isAnonymous)&&(h==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=c):this.p.lastBigReductionSizel;)this.stack.pop();this.reduceContext(s,h)}storeNode(e,i,n,s=4,r=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]0&&this.buffer[o-4]==0&&this.buffer[o-1]>-1){if(i==n)return;if(this.buffer[o-2]>=i){this.buffer[o-2]=n;return}}}if(!r||this.pos==n)this.buffer.push(e,i,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]=i,this.buffer[o+2]=n,this.buffer[o+3]=s}}shift(e,i,n,s){if(e&131072)this.pushState(e&65535,this.pos);else if((e&262144)==0){let r=e,{parser:o}=this.p;this.pos=s;let a=o.stateFlag(r,1);!a&&(s>n||i<=o.maxNode)&&(this.reducePos=s),this.pushState(r,a?n:Math.min(n,this.reducePos)),this.shiftContext(i,n),i<=o.maxNode&&this.buffer.push(i,n,s,4)}else this.pos=s,this.shiftContext(i,n),i<=this.p.parser.maxNode&&this.buffer.push(i,n,s,4)}apply(e,i,n,s){e&65536?this.reduce(e):this.shift(e,i,n,s)}useNode(e,i){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(i,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,i=e.buffer.length;for(i&&e.buffer[i-4]==0&&(i-=4);i>0&&e.buffer[i-2]>e.reducePos;)i-=4;let n=e.buffer.slice(i),s=e.bufferBase+i;for(;e&&s==e.bufferBase;)e=e.parent;return new Kl(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,s,this.curContext,this.lookAhead,e)}recoverByDelete(e,i){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,i,4),this.storeNode(0,this.pos,i,n?8:4),this.pos=this.reducePos=i,this.score-=190}canShift(e){for(let i=new cD(this);;){let n=this.p.parser.stateSlot(i.state,4)||this.p.parser.hasAction(i.state,e);if(n==0)return!1;if((n&65536)==0)return!0;i.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let i=this.p.parser.nextStates(this.state);if(i.length>8||this.stack.length>=120){let s=[];for(let r=0,o;rl&1&&a==o)||s.push(i[r],o)}i=s}let n=[];for(let s=0;s>19,s=i&65535,r=this.stack.length-n*3;if(r<0||e.getGoto(this.stack[r],s,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;i=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(i),!0}findForcedReduction(){let{parser:e}=this.p,i=[],n=(s,r)=>{if(!i.includes(s))return i.push(s),e.allActions(s,o=>{if(!(o&393216))if(o&65536){let a=(o>>19)-r;if(a>1){let l=o&65535,h=this.stack.length-a*3;if(h>=0&&e.getGoto(this.stack[h],l,!1)>=0)return a<<19|65536|l}}else{let a=n(o,r+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 i=0;i0&&this.emitLookAhead()}}class Ym{constructor(e,i){this.tracker=e,this.context=i,this.hash=e.strict?e.hash(i):0}}class cD{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let i=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],i,!0);this.state=s}}class Jl{constructor(e,i,n){this.stack=e,this.pos=i,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,i=e.bufferBase+e.buffer.length){return new Jl(e,i,i-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 Jl(this.stack,this.pos,this.index)}}function $a(t,e=Uint16Array){if(typeof t!="string")return t;let i=null;for(let n=0,s=0;n=92&&o--,o>=34&&o--;let l=o-32;if(l>=46&&(l-=46,a=!0),r+=l,a)break;r*=46}i?i[s++]=r:i=new e(r)}return i}class ll{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}}const Zm=new ll;class dD{constructor(e,i){this.input=e,this.ranges=i,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=Zm,this.rangeIndex=0,this.pos=this.chunkPos=i[0].from,this.range=i[0],this.end=i[i.length-1].to,this.readNext()}resolveOffset(e,i){let n=this.range,s=this.rangeIndex,r=this.pos+e;for(;rn.to:r>=n.to;){if(s==this.ranges.length-1)return null;let o=this.ranges[++s];r+=o.from-n.to,n=o}return r}clipPos(e){if(e>=this.range.from&&ee)return Math.max(e,i.from);return this.end}peek(e){let i=this.chunkOff+e,n,s;if(i>=0&&i=this.chunk2Pos&&na.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,i=0){let n=i?this.resolveOffset(i,-1):this.pos;if(n==null||n=this.chunk2Pos&&this.posthis.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,i){if(i?(this.token=i,i.start=e,i.lookAhead=e+1,i.value=i.extended=-1):this.token=Zm,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e=this.chunkPos&&i<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,i-this.chunkPos);if(e>=this.chunk2Pos&&i<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,i-this.chunk2Pos);if(e>=this.range.from&&i<=this.range.to)return this.input.read(e,i);let n="";for(let s of this.ranges){if(s.from>=i)break;s.to>e&&(n+=this.input.read(Math.max(s.from,e),Math.min(s.to,i)))}return n}}class ur{constructor(e,i){this.data=e,this.id=i}token(e,i){let{parser:n}=i.p;uD(this.data,e,i,this.id,n.data,n.tokenPrecTable)}}ur.prototype.contextual=ur.prototype.fallback=ur.prototype.extend=!1;ur.prototype.fallback=ur.prototype.extend=!1;class Lh{constructor(e,i={}){this.token=e,this.contextual=!!i.contextual,this.fallback=!!i.fallback,this.extend=!!i.extend}}function uD(t,e,i,n,s,r){let o=0,a=1<0){let p=t[f];if(l.allows(p)&&(e.token.value==-1||e.token.value==p||fD(p,e.token.value,s,r))){e.acceptToken(p);break}}let c=e.next,d=0,u=t[o+2];if(e.next<0&&u>d&&t[h+u*3-3]==65535){o=t[h+u*3-1];continue e}for(;d>1,p=h+f+(f<<1),m=t[p],g=t[p+1]||65536;if(c=g)d=f+1;else{o=t[p+2],e.advance();continue e}}break}}function Km(t,e,i){for(let n=e,s;(s=t[n])!=65535;n++)if(s==i)return n-e;return-1}function fD(t,e,i,n){let s=Km(i,n,e);return s<0||Km(i,n,t)e)&&!n.type.isError)return i<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(t.length,Math.max(n.from+1,e+25));if(i<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return i<0?0:t.length}}class pD{constructor(e,i){this.fragments=e,this.nodeSet=i,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?Jm(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Jm(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(ee)return this.nextStart=o,null;if(r instanceof rt){if(o==e){if(o=Math.max(this.safeFrom,e)&&(this.trees.push(r),this.start.push(o),this.index.push(0))}else this.index[i]++,this.nextStart=o+r.length}}}class mD{constructor(e,i){this.stream=i,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new ll)}getActions(e){let i=0,n=null,{parser:s}=e.p,{tokenizers:r}=s,o=s.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,l=0;for(let h=0;hd.end+25&&(l=Math.max(d.lookAhead,l)),d.value!=0)){let u=i;if(d.extended>-1&&(i=this.addActions(e,d.extended,d.end,i)),i=this.addActions(e,d.value,d.end,i),!c.extend&&(n=d,i>u))break}}for(;this.actions.length>i;)this.actions.pop();return l&&e.setLookAhead(l),!n&&e.pos==this.stream.end&&(n=new ll,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,i=this.addActions(e,n.value,n.end,i)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let i=new ll,{pos:n,p:s}=e;return i.start=n,i.end=Math.min(n+1,s.stream.end),i.value=n==s.stream.end?s.parser.eofTerm:0,i}updateCachedToken(e,i,n){let s=this.stream.clipPos(n.pos);if(i.token(this.stream.reset(s,e),n),e.value>-1){let{parser:r}=n.p;for(let o=0;o=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,i,n,s){for(let r=0;re.bufferLength*4?new pD(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,i=this.minStackPos,n=this.stacks=[],s,r;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;oi)n.push(a);else{if(this.advanceStack(a,n,e))continue;{s||(s=[],r=[]),s.push(a);let l=this.tokens.getMainToken(a);r.push(l.value,l.end)}}break}}if(!n.length){let o=s&&_D(s);if(o)return jt&&console.log("Finish with "+this.stackID(o)),this.stackToTree(o);if(this.parser.strict)throw jt&&s&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+i);this.recovering||(this.recovering=5)}if(this.recovering&&s){let o=this.stoppedAt!=null&&s[0].pos>this.stoppedAt?s[0]:this.runRecovery(s,r,n);if(o)return jt&&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>i)&&this.recovering--}else if(n.length>1){e:for(let o=0;o500&&h.buffer.length>500)if((a.score-h.score||a.buffer.length-h.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 ":"";if(this.stoppedAt!=null&&s>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let h=e.curContext&&e.curContext.tracker.strict,c=h?e.curContext.hash:0;for(let d=this.fragments.nodeAt(s);d;){let u=this.parser.nodeSet.types[d.type.id]==d.type?r.getGoto(e.state,d.type.id):-1;if(u>-1&&d.length&&(!h||(d.prop(Te.contextHash)||0)==c))return e.useNode(d,u),jt&&console.log(o+this.stackID(e)+` (via reuse of ${r.getName(d.type.id)})`),!0;if(!(d instanceof rt)||d.children.length==0||d.positions[0]>0)break;let f=d.children[0];if(f instanceof rt&&d.positions[0]==0)d=f;else break}}let a=r.stateSlot(e.state,4);if(a>0)return e.reduce(a),jt&&console.log(o+this.stackID(e)+` (via always-reduce ${r.getName(a&65535)})`),!0;if(e.stack.length>=8400)for(;e.stack.length>6e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let h=0;hs?i.push(p):n.push(p)}return!1}advanceFully(e,i){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return eg(e,i),!0}}runRecovery(e,i,n){let s=null,r=!1;for(let o=0;o ":"";if(a.deadEnd&&(r||(r=!0,a.restart(),jt&&console.log(c+this.stackID(a)+" (restarted)"),this.advanceFully(a,n))))continue;let d=a.split(),u=c;for(let f=0;f<10&&d.forceReduce()&&(jt&&console.log(u+this.stackID(d)+" (via force-reduce)"),!this.advanceFully(d,n));f++)jt&&(u=this.stackID(d)+" -> ");for(let f of a.recoverByInsert(l))jt&&console.log(c+this.stackID(f)+" (via recover-insert)"),this.advanceFully(f,n);this.stream.end>a.pos?(h==a.pos&&(h++,l=0),a.recoverByDelete(l,h),jt&&console.log(c+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),eg(a,n)):(!s||s.scoret;class bD{constructor(e){this.start=e.start,this.shift=e.shift||wc,this.reduce=e.reduce||wc,this.reuse=e.reuse||wc,this.hash=e.hash||(()=>0),this.strict=e.strict!==!1}}class eh extends Jb{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let i=e.nodeNames.split(" ");this.minRepeatTerm=i.length;for(let a=0;ae.topRules[a][1]),s=[];for(let a=0;a=0)r(c,l,a[h++]);else{let d=a[h+-c];for(let u=-c;u>0;u--)r(a[h++],l,d);h++}}}this.nodeSet=new ff(i.map((a,l)=>Ht.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=Xb;let o=$a(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let a=0;atypeof a=="number"?new ur(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,i,n){let s=new gD(this,e,i,n);for(let r of this.wrappers)s=r(s,e,i,n);return s}getGoto(e,i,n=!1){let s=this.goto;if(i>=s[0])return-1;for(let r=s[i+1];;){let o=s[r++],a=o&1,l=s[r++];if(a&&n)return l;for(let h=r+(o>>1);r0}validAction(e,i){return!!this.allActions(e,n=>n==i?!0:null)}allActions(e,i){let n=this.stateSlot(e,4),s=n?i(n):void 0;for(let r=this.stateSlot(e,1);s==null;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=hn(this.data,r+2);else break;s=i(hn(this.data,r+1))}return s}nextStates(e){let i=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=hn(this.data,n+2);else break;if((this.data[n+2]&1)==0){let s=this.data[n+1];i.some((r,o)=>o&1&&r==s)||i.push(this.data[n],s)}}return i}configure(e){let i=Object.assign(Object.create(eh.prototype),this);if(e.props&&(i.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}`);i.top=n}return e.tokenizers&&(i.tokenizers=this.tokenizers.map(n=>{let s=e.tokenizers.find(r=>r.from==n);return s?s.to:n})),e.specializers&&(i.specializers=this.specializers.slice(),i.specializerSpecs=this.specializerSpecs.map((n,s)=>{let r=e.specializers.find(a=>a.from==n.external);if(!r)return n;let o=Object.assign(Object.assign({},n),{external:r.to});return i.specializers[s]=tg(o),o})),e.contextTracker&&(i.context=e.contextTracker),e.dialect&&(i.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(i.strict=e.strict),e.wrap&&(i.wrappers=i.wrappers.concat(e.wrap)),e.bufferLength!=null&&(i.bufferLength=e.bufferLength),i}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 i=this.dynamicPrecedences;return i==null?0:i[e]||0}parseDialect(e){let i=Object.keys(this.dialects),n=i.map(()=>!1);if(e)for(let r of e.split(" ")){let o=i.indexOf(r);o>=0&&(n[o]=!0)}let s=null;for(let r=0;rn)&&i.p.parser.stateFlag(i.state,2)&&(!e||e.scoret.external(i,n)<<1|e}return t.get}const wD=1,W_=194,V_=195,yD=196,ig=197,xD=198,OD=199,SD=200,kD=2,F_=3,ng=201,CD=24,TD=25,DD=49,PD=50,$D=55,AD=56,ID=57,ED=59,MD=60,GD=61,RD=62,zD=63,LD=65,ND=238,BD=71,WD=241,VD=242,FD=243,QD=244,HD=245,qD=246,UD=247,jD=248,Q_=72,XD=249,YD=250,ZD=251,KD=252,JD=253,eP=254,tP=255,iP=256,nP=73,sP=77,rP=263,oP=112,aP=130,lP=151,hP=152,cP=155,Ls=10,Go=13,yf=32,Nh=9,xf=35,dP=40,uP=46,Kd=123,sg=125,H_=39,q_=34,rg=92,fP=111,pP=120,mP=78,gP=117,vP=85,bP=new Set([TD,DD,PD,rP,LD,aP,AD,ID,ND,RD,zD,Q_,nP,sP,MD,GD,lP,hP,cP,oP]);function yc(t){return t==Ls||t==Go}function xc(t){return t>=48&&t<=57||t>=65&&t<=70||t>=97&&t<=102}const _P=new Lh((t,e)=>{let i;if(t.next<0)t.acceptToken(OD);else if(e.context.flags&hl)yc(t.next)&&t.acceptToken(xD,1);else if(((i=t.peek(-1))<0||yc(i))&&e.canShift(ig)){let n=0;for(;t.next==yf||t.next==Nh;)t.advance(),n++;(t.next==Ls||t.next==Go||t.next==xf)&&t.acceptToken(ig,-n)}else yc(t.next)&&t.acceptToken(yD,1)},{contextual:!0}),wP=new Lh((t,e)=>{let i=e.context;if(i.flags)return;let n=t.peek(-1);if(n==Ls||n==Go){let s=0,r=0;for(;;){if(t.next==yf)s++;else if(t.next==Nh)s+=8-s%8;else break;t.advance(),r++}s!=i.indent&&t.next!=Ls&&t.next!=Go&&t.next!=xf&&(s[t,e|U_])),OP=new bD({start:yP,reduce(t,e,i,n){return t.flags&hl&&bP.has(e)||(e==BD||e==Q_)&&t.flags&U_?t.parent:t},shift(t,e,i,n){return e==W_?new cl(t,xP(n.read(n.pos,i.pos)),0):e==V_?t.parent:e==CD||e==$D||e==ED||e==F_?new cl(t,0,hl):og.has(e)?new cl(t,0,og.get(e)|t.flags&hl):t},hash(t){return t.hash}}),SP=new Lh(t=>{for(let e=0;e<5;e++){if(t.next!="print".charCodeAt(e))return;t.advance()}if(!/\w/.test(String.fromCharCode(t.next)))for(let e=0;;e++){let i=t.peek(e);if(!(i==yf||i==Nh)){i!=dP&&i!=uP&&i!=Ls&&i!=Go&&i!=xf&&t.acceptToken(wD);return}}}),kP=new Lh((t,e)=>{let{flags:i}=e.context,n=i&nn?q_:H_,s=(i&sn)>0,r=!(i&rn),o=(i&on)>0,a=t.pos;for(;!(t.next<0);)if(o&&t.next==Kd)if(t.peek(1)==Kd)t.advance(2);else{if(t.pos==a){t.acceptToken(F_,1);return}break}else if(r&&t.next==rg){if(t.pos==a){t.advance();let l=t.next;l>=0&&(t.advance(),CP(t,l)),t.acceptToken(kD);return}break}else if(t.next==rg&&!r&&t.peek(1)>-1)t.advance(2);else if(t.next==n&&(!s||t.peek(1)==n&&t.peek(2)==n)){if(t.pos==a){t.acceptToken(ng,s?3:1);return}break}else if(t.next==Ls){if(s)t.advance();else if(t.pos==a){t.acceptToken(ng);return}break}else t.advance();t.pos>a&&t.acceptToken(SD)});function CP(t,e){if(e==fP)for(let i=0;i<2&&t.next>=48&&t.next<=55;i++)t.advance();else if(e==pP)for(let i=0;i<2&&xc(t.next);i++)t.advance();else if(e==gP)for(let i=0;i<4&&xc(t.next);i++)t.advance();else if(e==vP)for(let i=0;i<8&&xc(t.next);i++)t.advance();else if(e==mP&&t.next==Kd){for(t.advance();t.next>=0&&t.next!=sg&&t.next!=H_&&t.next!=q_&&t.next!=Ls;)t.advance();t.next==sg&&t.advance()}}const TP=e_({'async "*" "**" FormatConversion FormatSpec':Y.modifier,"for while if elif else try except finally return raise break continue with pass assert await yield match case":Y.controlKeyword,"in not and or is del":Y.operatorKeyword,"from def class global nonlocal lambda":Y.definitionKeyword,import:Y.moduleKeyword,"with as print":Y.keyword,Boolean:Y.bool,None:Y.null,VariableName:Y.variableName,"CallExpression/VariableName":Y.function(Y.variableName),"FunctionDefinition/VariableName":Y.function(Y.definition(Y.variableName)),"ClassDefinition/VariableName":Y.definition(Y.className),PropertyName:Y.propertyName,"CallExpression/MemberExpression/PropertyName":Y.function(Y.propertyName),Comment:Y.lineComment,Number:Y.number,String:Y.string,FormatString:Y.special(Y.string),Escape:Y.escape,UpdateOp:Y.updateOperator,"ArithOp!":Y.arithmeticOperator,BitOp:Y.bitwiseOperator,CompareOp:Y.compareOperator,AssignOp:Y.definitionOperator,Ellipsis:Y.punctuation,At:Y.meta,"( )":Y.paren,"[ ]":Y.squareBracket,"{ }":Y.brace,".":Y.derefOperator,", ;":Y.separator}),DP={__proto__:null,await:44,or:54,and:56,in:60,not:62,is:64,if:70,else:72,lambda:76,yield:94,from:96,async:102,for:104,None:162,True:164,False:164,del:178,pass:182,break:186,continue:190,return:194,raise:202,import:206,as:208,global:212,nonlocal:214,assert:218,type:223,elif:236,while:240,try:246,except:248,finally:250,with:254,def:258,class:268,match:279,case:285},PP=eh.deserialize({version:14,states:"##jQ`QeOOP$}OSOOO&WQtO'#HUOOQS'#Co'#CoOOQS'#Cp'#CpO'vQdO'#CnO*UQtO'#HTOOQS'#HU'#HUOOQS'#DU'#DUOOQS'#HT'#HTO*rQdO'#D_O+VQdO'#DfO+gQdO'#DjO+zOWO'#DuO,VOWO'#DvO.[QtO'#GuOOQS'#Gu'#GuO'vQdO'#GtO0ZQtO'#GtOOQS'#Eb'#EbO0rQdO'#EcOOQS'#Gs'#GsO0|QdO'#GrOOQV'#Gr'#GrO1XQdO'#FYOOQS'#G^'#G^O1^QdO'#FXOOQV'#IS'#ISOOQV'#Gq'#GqOOQV'#Fq'#FqQ`QeOOO'vQdO'#CqO1lQdO'#C}O1sQdO'#DRO2RQdO'#HYO2cQtO'#EVO'vQdO'#EWOOQS'#EY'#EYOOQS'#E['#E[OOQS'#E^'#E^O2wQdO'#E`O3_QdO'#EdO3rQdO'#EfO3zQtO'#EfO1XQdO'#EiO0rQdO'#ElO1XQdO'#EnO0rQdO'#EtO0rQdO'#EwO4VQdO'#EyO4^QdO'#FOO4iQdO'#EzO0rQdO'#FOO1XQdO'#FQO1XQdO'#FVO4nQdO'#F[P4uOdO'#GpPOOO)CBd)CBdOOQS'#Ce'#CeOOQS'#Cf'#CfOOQS'#Cg'#CgOOQS'#Ch'#ChOOQS'#Ci'#CiOOQS'#Cj'#CjOOQS'#Cl'#ClO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO'vQdO,59OO5TQdO'#DoOOQS,5:Y,5:YO5hQdO'#HdOOQS,5:],5:]O5uQ!fO,5:]O5zQtO,59YO1lQdO,59bO1lQdO,59bO1lQdO,59bO8jQdO,59bO8oQdO,59bO8vQdO,59jO8}QdO'#HTO:TQdO'#HSOOQS'#HS'#HSOOQS'#D['#D[O:lQdO,59aO'vQdO,59aO:zQdO,59aOOQS,59y,59yO;PQdO,5:RO'vQdO,5:ROOQS,5:Q,5:QO;_QdO,5:QO;dQdO,5:XO'vQdO,5:XO'vQdO,5:VOOQS,5:U,5:UO;uQdO,5:UO;zQdO,5:WOOOW'#Fy'#FyOOOOQS'#Ds'#DsOOQS1G/w1G/wOOQS1G.|1G.|O!/[QtO1G.|O!/cQtO1G.|O1lQdO1G.|O!0OQdO1G/UOOQS'#DZ'#DZO0rQdO,59tOOQS1G.{1G.{O!0VQdO1G/eO!0gQdO1G/eO!0oQdO1G/fO'vQdO'#H[O!0tQdO'#H[O!0yQtO1G.{O!1ZQdO,59iO!2aQdO,5=zO!2qQdO,5=zO!2yQdO1G/mO!3OQtO1G/mOOQS1G/l1G/lO!3`QdO,5=uO!4VQdO,5=uO0rQdO1G/qO!4tQdO1G/sO!4yQtO1G/sO!5ZQtO1G/qOOQS1G/p1G/pOOQS1G/r1G/rOOOW-E9w-E9wOOQS1G/{1G/{O!5kQdO'#HxO0rQdO'#HxO!5|QdO,5>cOOOW-E9x-E9xOOQS1G/|1G/|OOQS-E9{-E9{O!6[Q#xO1G2zO!6{QtO1G2zO'vQdO,5kOOQS1G1`1G1`O!8RQdO1G1`OOQS'#DV'#DVO0rQdO,5=qOOQS,5=q,5=qO!8WQdO'#FrO!8cQdO,59oO!8kQdO1G/XO!8uQtO,5=uOOQS1G3`1G3`OOQS,5:m,5:mO!9fQdO'#GtOOQS,5jO!;ZQdO,5>jO1XQdO,5>jO!;lQdO,5>iOOQS-E:R-E:RO!;qQdO1G0lO!;|QdO1G0lO!lO!lO!hO!=VQdO,5>hO!=hQdO'#EpO0rQdO1G0tO!=sQdO1G0tO!=xQgO1G0zO!AvQgO1G0}O!EqQdO,5>oO!E{QdO,5>oO!FTQtO,5>oO0rQdO1G1PO!F_QdO1G1PO4iQdO1G1UO!!vQdO1G1WOOQV,5;a,5;aO!FdQfO,5;aO!FiQgO1G1QO!JjQdO'#GZO4iQdO1G1QO4iQdO1G1QO!JzQdO,5>pO!KXQdO,5>pO1XQdO,5>pOOQV1G1U1G1UO!KaQdO'#FSO!KrQ!fO1G1WO!KzQdO1G1WOOQV1G1]1G1]O4iQdO1G1]O!LPQdO1G1]O!LXQdO'#F^OOQV1G1b1G1bO!#ZQtO1G1bPOOO1G2v1G2vP!L^OSO1G2vOOQS,5=},5=}OOQS'#Dp'#DpO0rQdO,5=}O!LfQdO,5=|O!LyQdO,5=|OOQS1G/u1G/uO!MRQdO,5>PO!McQdO,5>PO!MkQdO,5>PO!NOQdO,5>PO!N`QdO,5>POOQS1G3j1G3jOOQS7+$h7+$hO!8kQdO7+$pO#!RQdO1G.|O#!YQdO1G.|OOQS1G/`1G/`OOQS,5<`,5<`O'vQdO,5<`OOQS7+%P7+%PO#!aQdO7+%POOQS-E9r-E9rOOQS7+%Q7+%QO#!qQdO,5=vO'vQdO,5=vOOQS7+$g7+$gO#!vQdO7+%PO##OQdO7+%QO##TQdO1G3fOOQS7+%X7+%XO##eQdO1G3fO##mQdO7+%XOOQS,5<_,5<_O'vQdO,5<_O##rQdO1G3aOOQS-E9q-E9qO#$iQdO7+%]OOQS7+%_7+%_O#$wQdO1G3aO#%fQdO7+%_O#%kQdO1G3gO#%{QdO1G3gO#&TQdO7+%]O#&YQdO,5>dO#&sQdO,5>dO#&sQdO,5>dOOQS'#Dx'#DxO#'UO&jO'#DzO#'aO`O'#HyOOOW1G3}1G3}O#'fQdO1G3}O#'nQdO1G3}O#'yQ#xO7+(fO#(jQtO1G2UP#)TQdO'#GOOOQS,5nQdO,5sQdO1G4OOOQS-E9y-E9yO#?^QdO1G4OO<[QdO'#H{OOOO'#D{'#D{OOOO'#F|'#F|O#?oO&jO,5:fOOOW,5>e,5>eOOOW7+)i7+)iO#?zQdO7+)iO#@SQdO1G2zO#@mQdO1G2zP'vQdO'#FuO0rQdO<mO#BQQdO,5>mOOQS1G0v1G0vOOQS<rO#KgQdO,5>rO#KrQdO,5>rO#K}QdO,5>qO#L`QdO,5>qOOQS1G1Y1G1YOOQS,5;p,5;pOOQV<VAN>VO$ oQdO<cAN>cO0rQdO1G1|O$!PQtO1G1|P$!ZQdO'#FvOOQS1G2R1G2RP$!hQdO'#F{O$!uQdO7+)jO$#`QdO,5>gOOOO-E9z-E9zOOOW<tO$4{QdO,5>tO1XQdO,5vO$)nQdO,5>vOOQS1G1p1G1pOOQS,5<[,5<[OOQU7+'P7+'PO$+zQdO1G/iO$)nQdO,5wO$8zQdO,5>wOOQS1G1s1G1sOOQS7+'S7+'SP$)nQdO'#GdO$9SQdO1G4bO$9^QdO1G4bO$9fQdO1G4bOOQS7+%T7+%TO$9tQdO1G1tO$:SQtO'#FaO$:ZQdO,5<}OOQS,5<},5<}O$:iQdO1G4cOOQS-E:a-E:aO$)nQdO,5<|O$:pQdO,5<|O$:uQdO7+)|OOQS-E:`-E:`O$;PQdO7+)|O$)nQdO,5S~O%cOS%^OSSOS%]PQ~OPdOVaOfoOhYOopOs!POvqO!PrO!Q{O!T!SO!U!RO!XZO!][O!h`O!r`O!s`O!t`O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#l!QO#o!TO#s!UO#u!VO#z!WO#}hO$P!XO%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~O%]!YO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%j![O%k!]O%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aO~Ok%xXl%xXm%xXn%xXo%xXp%xXs%xXz%xX{%xX!x%xX#g%xX%[%xX%_%xX%z%xXg%xX!T%xX!U%xX%{%xX!W%xX![%xX!Q%xX#[%xXt%xX!m%xX~P%SOfoOhYO!XZO!][O!h`O!r`O!s`O!t`O%oRO%pRO%tSO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O~Oz%wX{%wX#g%wX%[%wX%_%wX%z%wX~Ok!pOl!qOm!oOn!oOo!rOp!sOs!tO!x%wX~P)pOV!zOg!|Oo0cOv0qO!PrO~P'vOV#OOo0cOv0qO!W#PO~P'vOV#SOa#TOo0cOv0qO![#UO~P'vOQ#XO%`#XO%a#ZO~OQ#^OR#[O%`#^O%a#`O~OV%iX_%iXa%iXh%iXk%iXl%iXm%iXn%iXo%iXp%iXs%iXz%iX!X%iX!f%iX%j%iX%k%iX%l%iX%m%iX%n%iX%o%iX%p%iX%q%iX%r%iX%s%iXg%iX!T%iX!U%iX~O&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O&c^O&d^O&e^O&f^O&g^O&h^O&i^O&j^O{%iX!x%iX#g%iX%[%iX%_%iX%z%iX%{%iX!W%iX![%iX!Q%iX#[%iXt%iX!m%iX~P,eOz#dO{%hX!x%hX#g%hX%[%hX%_%hX%z%hX~Oo0cOv0qO~P'vO#g#gO%[#iO%_#iO~O%uWO~O!T#nO#u!VO#z!WO#}hO~OopO~P'vOV#sOa#tO%uWO{wP~OV#xOo0cOv0qO!Q#yO~P'vO{#{O!x$QO%z#|O#g!yX%[!yX%_!yX~OV#xOo0cOv0qO#g#SX%[#SX%_#SX~P'vOo0cOv0qO#g#WX%[#WX%_#WX~P'vOh$WO%uWO~O!f$YO!r$YO%uWO~OV$eO~P'vO!U$gO#s$hO#u$iO~O{$jO~OV$qO~P'vOS$sO%[$rO%_$rO%c$tO~OV$}Oa$}Og%POo0cOv0qO~P'vOo0cOv0qO{%SO~P'vO&Y%UO~Oa!bOh!iO!X!kO!f!mOVba_bakbalbambanbaobapbasbazba{ba!xba#gba%[ba%_ba%jba%kba%lba%mba%nba%oba%pba%qba%rba%sba%zbagba!Tba!Uba%{ba!Wba![ba!Qba#[batba!mba~On%ZO~Oo%ZO~P'vOo0cO~P'vOk0eOl0fOm0dOn0dOo0mOp0nOs0rOg%wX!T%wX!U%wX%{%wX!W%wX![%wX!Q%wX#[%wX!m%wX~P)pO%{%]Og%vXz%vX!T%vX!U%vX!W%vX{%vX~Og%_Oz%`O!T%dO!U%cO~Og%_O~Oz%gO!T%dO!U%cO!W&SX~O!W%kO~Oz%lO{%nO!T%dO!U%cO![%}X~O![%rO~O![%sO~OQ#XO%`#XO%a%uO~OV%wOo0cOv0qO!PrO~P'vOQ#^OR#[O%`#^O%a%zO~OV!qa_!qaa!qah!qak!qal!qam!qan!qao!qap!qas!qaz!qa{!qa!X!qa!f!qa!x!qa#g!qa%[!qa%_!qa%j!qa%k!qa%l!qa%m!qa%n!qa%o!qa%p!qa%q!qa%r!qa%s!qa%z!qag!qa!T!qa!U!qa%{!qa!W!qa![!qa!Q!qa#[!qat!qa!m!qa~P#yOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P%SOV&OOopOvqO{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~P'vOz%|O{%ha!x%ha#g%ha%[%ha%_%ha%z%ha~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO#g$zX%[$zX%_$zX~P'vO#g#gO%[&TO%_&TO~O!f&UOh&sX%[&sXz&sX#[&sX#g&sX%_&sX#Z&sXg&sX~Oh!iO%[&WO~Okealeameaneaoeapeaseazea{ea!xea#gea%[ea%_ea%zeagea!Tea!Uea%{ea!Wea![ea!Qea#[eatea!mea~P%SOsqazqa{qa#gqa%[qa%_qa%zqa~Ok!pOl!qOm!oOn!oOo!rOp!sO!xqa~PEcO%z&YOz%yX{%yX~O%uWOz%yX{%yX~Oz&]O{wX~O{&_O~Oz%lO#g%}X%[%}X%_%}Xg%}X{%}X![%}X!m%}X%z%}X~OV0lOo0cOv0qO!PrO~P'vO%z#|O#gUa%[Ua%_Ua~Oz&hO#g&PX%[&PX%_&PXn&PX~P%SOz&kO!Q&jO#g#Wa%[#Wa%_#Wa~Oz&lO#[&nO#g&rX%[&rX%_&rXg&rX~O!f$YO!r$YO#Z&qO%uWO~O#Z&qO~Oz&sO#g&tX%[&tX%_&tX~Oz&uO#g&pX%[&pX%_&pX{&pX~O!X&wO%z&xO~Oz&|On&wX~P%SOn'PO~OPdOVaOopOvqO!PrO!Q{O!{tO!}uO#PvO#RwO#TxO#XyO#ZzO#^|O#_|O#a}O#c!OO%['UO~P'vOt'YO#p'WO#q'XOP#naV#naf#nah#nao#nas#nav#na!P#na!Q#na!T#na!U#na!X#na!]#na!h#na!r#na!s#na!t#na!{#na!}#na#P#na#R#na#T#na#X#na#Z#na#^#na#_#na#a#na#c#na#l#na#o#na#s#na#u#na#z#na#}#na$P#na%X#na%o#na%p#na%t#na%u#na&Z#na&[#na&]#na&^#na&_#na&`#na&a#na&b#na&c#na&d#na&e#na&f#na&g#na&h#na&i#na&j#na%Z#na%_#na~Oz'ZO#[']O{&xX~Oh'_O!X&wO~Oh!iO{$jO!X&wO~O{'eO~P%SO%['hO%_'hO~OS'iO%['hO%_'hO~OV!aO_!aOa!bOh!iO!X!kO!f!mO%l!^O%m!_O%n!_O%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%k!]O~P!#uO%kWi~P!#uOV!aO_!aOa!bOh!iO!X!kO!f!mO%o!`O%p!`O%q!aO%r!aO%s!aOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~O%m!_O%n!_O~P!&pO%mWi%nWi~P!&pOa!bOh!iO!X!kO!f!mOkWilWimWinWioWipWisWizWi{Wi!xWi#gWi%[Wi%_Wi%jWi%kWi%lWi%mWi%nWi%oWi%pWi%zWigWi!TWi!UWi%{Wi!WWi![Wi!QWi#[WitWi!mWi~OV!aO_!aO%q!aO%r!aO%s!aO~P!)nOVWi_Wi%qWi%rWi%sWi~P!)nO!T%dO!U%cOg&VXz&VX~O%z'kO%{'kO~P,eOz'mOg&UX~Og'oO~Oz'pO{'rO!W&XX~Oo0cOv0qOz'pO{'sO!W&XX~P'vO!W'uO~Om!oOn!oOo!rOp!sOkjisjizji{ji!xji#gji%[ji%_ji%zji~Ol!qO~P!.aOlji~P!.aOk0eOl0fOm0dOn0dOo0mOp0nO~Ot'wO~P!/jOV'|Og'}Oo0cOv0qO~P'vOg'}Oz(OO~Og(QO~O!U(SO~Og(TOz(OO!T%dO!U%cO~P%SOk0eOl0fOm0dOn0dOo0mOp0nOgqa!Tqa!Uqa%{qa!Wqa![qa!Qqa#[qatqa!mqa~PEcOV'|Oo0cOv0qO!W&Sa~P'vOz(WO!W&Sa~O!W(XO~Oz(WO!T%dO!U%cO!W&Sa~P%SOV(]Oo0cOv0qO![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~P'vOz(^O![%}a#g%}a%[%}a%_%}ag%}a{%}a!m%}a%z%}a~O![(aO~Oz(^O!T%dO!U%cO![%}a~P%SOz(dO!T%dO!U%cO![&Ta~P%SOz(gO{&lX![&lX!m&lX%z&lX~O{(kO![(mO!m(nO%z(jO~OV&OOopOvqO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~P'vOz(pO{%hi!x%hi#g%hi%[%hi%_%hi%z%hi~O!f&UOh&sa%[&saz&sa#[&sa#g&sa%_&sa#Z&sag&sa~O%[(uO~OV#sOa#tO%uWO~Oz&]O{wa~OopOvqO~P'vOz(^O#g%}a%[%}a%_%}ag%}a{%}a![%}a!m%}a%z%}a~P%SOz(zO#g%hX%[%hX%_%hX%z%hX~O%z#|O#gUi%[Ui%_Ui~O#g&Pa%[&Pa%_&Pan&Pa~P'vOz(}O#g&Pa%[&Pa%_&Pan&Pa~O%uWO#g&ra%[&ra%_&rag&ra~Oz)SO#g&ra%[&ra%_&rag&ra~Og)VO~OV)WOh$WO%uWO~O#Z)XO~O%uWO#g&ta%[&ta%_&ta~Oz)ZO#g&ta%[&ta%_&ta~Oo0cOv0qO#g&pa%[&pa%_&pa{&pa~P'vOz)^O#g&pa%[&pa%_&pa{&pa~OV)`Oa)`O%uWO~O%z)eO~Ot)hO#j)gOP#hiV#hif#hih#hio#his#hiv#hi!P#hi!Q#hi!T#hi!U#hi!X#hi!]#hi!h#hi!r#hi!s#hi!t#hi!{#hi!}#hi#P#hi#R#hi#T#hi#X#hi#Z#hi#^#hi#_#hi#a#hi#c#hi#l#hi#o#hi#s#hi#u#hi#z#hi#}#hi$P#hi%X#hi%o#hi%p#hi%t#hi%u#hi&Z#hi&[#hi&]#hi&^#hi&_#hi&`#hi&a#hi&b#hi&c#hi&d#hi&e#hi&f#hi&g#hi&h#hi&i#hi&j#hi%Z#hi%_#hi~Ot)iOP#kiV#kif#kih#kio#kis#kiv#ki!P#ki!Q#ki!T#ki!U#ki!X#ki!]#ki!h#ki!r#ki!s#ki!t#ki!{#ki!}#ki#P#ki#R#ki#T#ki#X#ki#Z#ki#^#ki#_#ki#a#ki#c#ki#l#ki#o#ki#s#ki#u#ki#z#ki#}#ki$P#ki%X#ki%o#ki%p#ki%t#ki%u#ki&Z#ki&[#ki&]#ki&^#ki&_#ki&`#ki&a#ki&b#ki&c#ki&d#ki&e#ki&f#ki&g#ki&h#ki&i#ki&j#ki%Z#ki%_#ki~OV)kOn&wa~P'vOz)lOn&wa~Oz)lOn&wa~P%SOn)pO~O%Y)tO~Ot)wO#p'WO#q)vOP#niV#nif#nih#nio#nis#niv#ni!P#ni!Q#ni!T#ni!U#ni!X#ni!]#ni!h#ni!r#ni!s#ni!t#ni!{#ni!}#ni#P#ni#R#ni#T#ni#X#ni#Z#ni#^#ni#_#ni#a#ni#c#ni#l#ni#o#ni#s#ni#u#ni#z#ni#}#ni$P#ni%X#ni%o#ni%p#ni%t#ni%u#ni&Z#ni&[#ni&]#ni&^#ni&_#ni&`#ni&a#ni&b#ni&c#ni&d#ni&e#ni&f#ni&g#ni&h#ni&i#ni&j#ni%Z#ni%_#ni~OV)zOo0cOv0qO{$jO~P'vOo0cOv0qO{&xa~P'vOz*OO{&xa~OV*SOa*TOg*WO%q*UO%uWO~O{$jO&{*YO~Oh'_O~Oh!iO{$jO~O%[*_O~O%[*aO%_*aO~OV$}Oa$}Oo0cOv0qOg&Ua~P'vOz*dOg&Ua~Oo0cOv0qO{*gO!W&Xa~P'vOz*hO!W&Xa~Oo0cOv0qOz*hO{*kO!W&Xa~P'vOo0cOv0qOz*hO!W&Xa~P'vOz*hO{*kO!W&Xa~Om0dOn0dOo0mOp0nOgjikjisjizji!Tji!Uji%{ji!Wji{ji![ji#gji%[ji%_ji!Qji#[jitji!mji%zji~Ol0fO~P!NkOlji~P!NkOV'|Og*pOo0cOv0qO~P'vOn*rO~Og*pOz*tO~Og*uO~OV'|Oo0cOv0qO!W&Si~P'vOz*vO!W&Si~O!W*wO~OV(]Oo0cOv0qO![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~P'vOz*zO!T%dO!U%cO![&Ti~Oz*}O![%}i#g%}i%[%}i%_%}ig%}i{%}i!m%}i%z%}i~O![+OO~Oa+QOo0cOv0qO![&Ti~P'vOz*zO![&Ti~O![+SO~OV+UOo0cOv0qO{&la![&la!m&la%z&la~P'vOz+VO{&la![&la!m&la%z&la~O!]+YO&n+[O![!nX~O![+^O~O{(kO![+_O~O{(kO![+_O!m+`O~OV&OOopOvqO{%hq!x%hq#g%hq%[%hq%_%hq%z%hq~P'vOz$ri{$ri!x$ri#g$ri%[$ri%_$ri%z$ri~P%SOV&OOopOvqO~P'vOV&OOo0cOv0qO#g%ha%[%ha%_%ha%z%ha~P'vOz+aO#g%ha%[%ha%_%ha%z%ha~Oz$ia#g$ia%[$ia%_$ian$ia~P%SO#g&Pi%[&Pi%_&Pin&Pi~P'vOz+dO#g#Wq%[#Wq%_#Wq~O#[+eOz$va#g$va%[$va%_$vag$va~O%uWO#g&ri%[&ri%_&rig&ri~Oz+gO#g&ri%[&ri%_&rig&ri~OV+iOh$WO%uWO~O%uWO#g&ti%[&ti%_&ti~Oo0cOv0qO#g&pi%[&pi%_&pi{&pi~P'vO{#{Oz#eX!W#eX~Oz+mO!W&uX~O!W+oO~Ot+rO#j)gOP#hqV#hqf#hqh#hqo#hqs#hqv#hq!P#hq!Q#hq!T#hq!U#hq!X#hq!]#hq!h#hq!r#hq!s#hq!t#hq!{#hq!}#hq#P#hq#R#hq#T#hq#X#hq#Z#hq#^#hq#_#hq#a#hq#c#hq#l#hq#o#hq#s#hq#u#hq#z#hq#}#hq$P#hq%X#hq%o#hq%p#hq%t#hq%u#hq&Z#hq&[#hq&]#hq&^#hq&_#hq&`#hq&a#hq&b#hq&c#hq&d#hq&e#hq&f#hq&g#hq&h#hq&i#hq&j#hq%Z#hq%_#hq~On$|az$|a~P%SOV)kOn&wi~P'vOz+yOn&wi~Oz,TO{$jO#[,TO~O#q,VOP#nqV#nqf#nqh#nqo#nqs#nqv#nq!P#nq!Q#nq!T#nq!U#nq!X#nq!]#nq!h#nq!r#nq!s#nq!t#nq!{#nq!}#nq#P#nq#R#nq#T#nq#X#nq#Z#nq#^#nq#_#nq#a#nq#c#nq#l#nq#o#nq#s#nq#u#nq#z#nq#}#nq$P#nq%X#nq%o#nq%p#nq%t#nq%u#nq&Z#nq&[#nq&]#nq&^#nq&_#nq&`#nq&a#nq&b#nq&c#nq&d#nq&e#nq&f#nq&g#nq&h#nq&i#nq&j#nq%Z#nq%_#nq~O#[,WOz%Oa{%Oa~Oo0cOv0qO{&xi~P'vOz,YO{&xi~O{#{O%z,[Og&zXz&zX~O%uWOg&zXz&zX~Oz,`Og&yX~Og,bO~O%Y,eO~O!T%dO!U%cOg&Viz&Vi~OV$}Oa$}Oo0cOv0qOg&Ui~P'vO{,hOz$la!W$la~Oo0cOv0qO{,iOz$la!W$la~P'vOo0cOv0qO{*gO!W&Xi~P'vOz,lO!W&Xi~Oo0cOv0qOz,lO!W&Xi~P'vOz,lO{,oO!W&Xi~Og$hiz$hi!W$hi~P%SOV'|Oo0cOv0qO~P'vOn,qO~OV'|Og,rOo0cOv0qO~P'vOV'|Oo0cOv0qO!W&Sq~P'vOz$gi![$gi#g$gi%[$gi%_$gig$gi{$gi!m$gi%z$gi~P%SOV(]Oo0cOv0qO~P'vOa+QOo0cOv0qO![&Tq~P'vOz,sO![&Tq~O![,tO~OV(]Oo0cOv0qO![%}q#g%}q%[%}q%_%}qg%}q{%}q!m%}q%z%}q~P'vO{,uO~OV+UOo0cOv0qO{&li![&li!m&li%z&li~P'vOz,zO{&li![&li!m&li%z&li~O!]+YO&n+[O![!na~O{(kO![,}O~OV&OOo0cOv0qO#g%hi%[%hi%_%hi%z%hi~P'vOz-OO#g%hi%[%hi%_%hi%z%hi~O%uWO#g&rq%[&rq%_&rqg&rq~Oz-RO#g&rq%[&rq%_&rqg&rq~OV)`Oa)`O%uWO!W&ua~Oz-TO!W&ua~On$|iz$|i~P%SOV)kO~P'vOV)kOn&wq~P'vOt-XOP#myV#myf#myh#myo#mys#myv#my!P#my!Q#my!T#my!U#my!X#my!]#my!h#my!r#my!s#my!t#my!{#my!}#my#P#my#R#my#T#my#X#my#Z#my#^#my#_#my#a#my#c#my#l#my#o#my#s#my#u#my#z#my#}#my$P#my%X#my%o#my%p#my%t#my%u#my&Z#my&[#my&]#my&^#my&_#my&`#my&a#my&b#my&c#my&d#my&e#my&f#my&g#my&h#my&i#my&j#my%Z#my%_#my~O%Z-]O%_-]O~P`O#q-^OP#nyV#nyf#nyh#nyo#nys#nyv#ny!P#ny!Q#ny!T#ny!U#ny!X#ny!]#ny!h#ny!r#ny!s#ny!t#ny!{#ny!}#ny#P#ny#R#ny#T#ny#X#ny#Z#ny#^#ny#_#ny#a#ny#c#ny#l#ny#o#ny#s#ny#u#ny#z#ny#}#ny$P#ny%X#ny%o#ny%p#ny%t#ny%u#ny&Z#ny&[#ny&]#ny&^#ny&_#ny&`#ny&a#ny&b#ny&c#ny&d#ny&e#ny&f#ny&g#ny&h#ny&i#ny&j#ny%Z#ny%_#ny~Oz-aO{$jO#[-aO~Oo0cOv0qO{&xq~P'vOz-dO{&xq~O%z,[Og&zaz&za~O{#{Og&zaz&za~OV*SOa*TO%q*UO%uWOg&ya~Oz-hOg&ya~O$S-lO~OV$}Oa$}Oo0cOv0qO~P'vOo0cOv0qO{-mOz$li!W$li~P'vOo0cOv0qOz$li!W$li~P'vO{-mOz$li!W$li~Oo0cOv0qO{*gO~P'vOo0cOv0qO{*gO!W&Xq~P'vOz-pO!W&Xq~Oo0cOv0qOz-pO!W&Xq~P'vOs-sO!T%dO!U%cOg&Oq!W&Oq![&Oqz&Oq~P!/jOa+QOo0cOv0qO![&Ty~P'vOz$ji![$ji~P%SOa+QOo0cOv0qO~P'vOV+UOo0cOv0qO~P'vOV+UOo0cOv0qO{&lq![&lq!m&lq%z&lq~P'vO{(kO![-xO!m-yO%z-wO~OV&OOo0cOv0qO#g%hq%[%hq%_%hq%z%hq~P'vO%uWO#g&ry%[&ry%_&ryg&ry~OV)`Oa)`O%uWO!W&ui~Ot-}OP#m!RV#m!Rf#m!Rh#m!Ro#m!Rs#m!Rv#m!R!P#m!R!Q#m!R!T#m!R!U#m!R!X#m!R!]#m!R!h#m!R!r#m!R!s#m!R!t#m!R!{#m!R!}#m!R#P#m!R#R#m!R#T#m!R#X#m!R#Z#m!R#^#m!R#_#m!R#a#m!R#c#m!R#l#m!R#o#m!R#s#m!R#u#m!R#z#m!R#}#m!R$P#m!R%X#m!R%o#m!R%p#m!R%t#m!R%u#m!R&Z#m!R&[#m!R&]#m!R&^#m!R&_#m!R&`#m!R&a#m!R&b#m!R&c#m!R&d#m!R&e#m!R&f#m!R&g#m!R&h#m!R&i#m!R&j#m!R%Z#m!R%_#m!R~Oo0cOv0qO{&xy~P'vOV*SOa*TO%q*UO%uWOg&yi~O$S-lO%Z.VO%_.VO~OV.aOh._O!X.^O!].`O!h.YO!s.[O!t.[O%p.XO%uWO&Z]O&[]O&]]O&^]O&_]O&`]O&a]O&b]O~Oo0cOv0qOz$lq!W$lq~P'vO{.fOz$lq!W$lq~Oo0cOv0qO{*gO!W&Xy~P'vOz.gO!W&Xy~Oo0cOv.kO~P'vOs-sO!T%dO!U%cOg&Oy!W&Oy![&Oyz&Oy~P!/jO{(kO![.nO~O{(kO![.nO!m.oO~OV*SOa*TO%q*UO%uWO~Oh.tO!f.rOz$TX#[$TX%j$TXg$TX~Os$TX{$TX!W$TX![$TX~P$-bO%o.vO%p.vOs$UXz$UX{$UX#[$UX%j$UX!W$UXg$UX![$UX~O!h.xO~Oz.|O#[/OO%j.yOs&|X{&|X!W&|Xg&|X~Oa/RO~P$)zOh.tOs&}Xz&}X{&}X#[&}X%j&}X!W&}Xg&}X![&}X~Os/VO{$jO~Oo0cOv0qOz$ly!W$ly~P'vOo0cOv0qO{*gO!W&X!R~P'vOz/ZO!W&X!R~Og&RXs&RX!T&RX!U&RX!W&RX![&RXz&RX~P!/jOs-sO!T%dO!U%cOg&Qa!W&Qa![&Qaz&Qa~O{(kO![/^O~O!f.rOh$[as$[az$[a{$[a#[$[a%j$[a!W$[ag$[a![$[a~O!h/eO~O%o.vO%p.vOs$Uaz$Ua{$Ua#[$Ua%j$Ua!W$Uag$Ua![$Ua~O%j.yOs$Yaz$Ya{$Ya#[$Ya!W$Yag$Ya![$Ya~Os&|a{&|a!W&|ag&|a~P$)nOz/jOs&|a{&|a!W&|ag&|a~O!W/mO~Og/mO~O{/oO~O![/pO~Oo0cOv0qO{*gO!W&X!Z~P'vO{/sO~O%z/tO~P$-bOz/uO#[/OO%j.yOg'PX~Oz/uOg'PX~Og/wO~O!h/xO~O#[/OOs%Saz%Sa{%Sa%j%Sa!W%Sag%Sa![%Sa~O#[/OO%j.yOs%Waz%Wa{%Wa!W%Wag%Wa~Os&|i{&|i!W&|ig&|i~P$)nOz/zO#[/OO%j.yO!['Oa~Og'Pa~P$)nOz0SOg'Pa~Oa0UO!['Oi~P$)zOz0WO!['Oi~Oz0WO#[/OO%j.yO!['Oi~O#[/OO%j.yOg$biz$bi~O%z0ZO~P$-bO#[/OO%j.yOg%Vaz%Va~Og'Pi~P$)nO{0^O~Oa0UO!['Oq~P$)zOz0`O!['Oq~O#[/OO%j.yOz%Ui![%Ui~Oa0UO~P$)zOa0UO!['Oy~P$)zO#[/OO%j.yOg$ciz$ci~O#[/OO%j.yOz%Uq![%Uq~Oz+aO#g%ha%[%ha%_%ha%z%ha~P%SOV&OOo0cOv0qO~P'vOn0hO~Oo0hO~P'vO{0iO~Ot0jO~P!/jO&]&Z&j&h&i&g&f&d&e&c&b&`&a&_&^&[%u~",goto:"!=j'QPPPPPP'RP'Z*s+[+t,_,y-fP.SP'Z.r.r'ZPPP'Z2[PPPPPP2[5PPP5PP7b7k=sPP=v>h>kPP'Z'ZPP>zPP'Z'ZPP'Z'Z'Z'Z'Z?O?w'ZP?zP@QDXGuGyPG|HWH['ZPPPH_Hk'RP'R'RP'RP'RP'RP'RP'R'R'RP'RPP'RPP'RP'RPHqH}IVPI^IdPI^PI^I^PPPI^PKrPK{LVL]KrPI^LfPI^PLmLsPLwM]MzNeLwLwNkNxLwLwLwLw! ^! d! g! l! o! y!!P!!]!!o!!u!#P!#V!#s!#y!$P!$Z!$a!$g!$y!%T!%Z!%a!%k!%q!%w!%}!&T!&Z!&e!&k!&u!&{!'U!'[!'k!'s!'}!(UPPPPPPPPPPP!([!(_!(e!(n!(x!)TPPPPPPPPPPPP!-u!/Z!3^!6oPP!6w!7W!7a!8Y!8P!8c!8i!8l!8o!8r!8z!9jPPPPPPPPPPPPPPPPP!9m!9q!9wP!:]!:a!:m!:v!;S!;j!;m!;p!;v!;|!_![!]Do!]!^Es!^!_FZ!_!`Gk!`!aHX!a!b%T!b!cIf!c!dJU!d!eK^!e!hJU!h!i!#f!i!tJU!t!u!,|!u!wJU!w!x!.t!x!}JU!}#O!0S#O#P&o#P#Q!0j#Q#R!1Q#R#SJU#S#T%T#T#UJU#U#VK^#V#YJU#Y#Z!#f#Z#fJU#f#g!,|#g#iJU#i#j!.t#j#oJU#o#p!1n#p#q!1s#q#r!2a#r#s!2f#s$g%T$g;'SJU;'S;=`KW<%lOJU`%YT&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T`%lP;=`<%l%To%v]&n`%c_OX%TXY%oY[%T[]%o]p%Tpq%oq#O%T#O#P&o#P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To&tX&n`OY%TYZ%oZ]%T]^%o^#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc'f[&n`O!_%T!_!`([!`#T%T#T#U(r#U#f%T#f#g(r#g#h(r#h#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(cTmR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc(yT!mR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk)aV&n`&[ZOr%Trs)vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk){V&n`Or%Trs*bs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk*iT&n`&^ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To+PZS_&n`OY*xYZ%TZ]*x]^%T^#o*x#o#p+r#p#q*x#q#r+r#r;'S*x;'S;=`,^<%lO*x_+wTS_OY+rZ]+r^;'S+r;'S;=`,W<%lO+r_,ZP;=`<%l+ro,aP;=`<%l*xj,kV%rQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-XT!xY&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj-oV%lQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.]V&n`&ZZOw%Twx.rx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk.wV&n`Ow%Twx/^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/eT&n`&]ZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk/{ThZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc0cTgR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk0yXVZ&n`Oz%Tz{1f{!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk1mVaR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk2ZV%oZ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc2wTzR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To3_W%pZ&n`O!_%T!_!`-Q!`!a3w!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Td4OT&{S&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk4fX!fQ&n`O!O%T!O!P5R!P!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5WV&n`O!O%T!O!P5m!P#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk5tT!rZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti6[a!hX&n`O!Q%T!Q![6T![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S6T#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti7fZ&n`O{%T{|8X|}%T}!O8X!O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8^V&n`O!Q%T!Q![8s![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti8z]!hX&n`O!Q%T!Q![8s![!l%T!l!m9s!m#R%T#R#S8s#S#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti9zT!hX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk:bX%qR&n`O!P%T!P!Q:}!Q!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj;UV%sQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti;ro!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!d%T!d!e?q!e!g%T!g!h7a!h!l%T!l!m9s!m!q%T!q!rA]!r!z%T!z!{Bq!{#R%T#R#S>_#S#U%T#U#V?q#V#X%T#X#Y7a#Y#^%T#^#_9s#_#c%T#c#dA]#d#l%T#l#mBq#m#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti=xV&n`O!Q%T!Q![6T![#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti>fc!hX&n`O!O%T!O!P=s!P!Q%T!Q![>_![!g%T!g!h7a!h!l%T!l!m9s!m#R%T#R#S>_#S#X%T#X#Y7a#Y#^%T#^#_9s#_#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti?vY&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Ti@mY!hX&n`O!Q%T!Q!R@f!R!S@f!S#R%T#R#S@f#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiAbX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBUX!hX&n`O!Q%T!Q!YA}!Y#R%T#R#SA}#S#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiBv]&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TiCv]!hX&n`O!Q%T!Q![Co![!c%T!c!iCo!i#R%T#R#SCo#S#T%T#T#ZCo#Z#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToDvV{_&n`O!_%T!_!`E]!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TcEdT%{R&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkEzT#gZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkFbXmR&n`O!^%T!^!_F}!_!`([!`!a([!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjGUV%mQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkGrV%zZ&n`O!_%T!_!`([!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkH`WmR&n`O!_%T!_!`([!`!aHx!a#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TjIPV%nQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkIoV_Q#}P&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%ToJ_]&n`&YS%uZO!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoKZP;=`<%lJUoKge&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!tJU!t!uLx!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#gLx#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUoMRa&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUkN_V&n`&`ZOr%TrsNts#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%TkNyV&n`Or%Trs! `s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! gT&n`&bZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk! }V&n`&_ZOw%Twx!!dx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!!iV&n`Ow%Twx!#Ox#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!#VT&n`&aZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!#oe&n`&YS%uZOr%Trs!%Qsw%Twx!&px!Q%T!Q![JU![!c%T!c!tJU!t!u!(`!u!}JU!}#R%T#R#SJU#S#T%T#T#fJU#f#g!(`#g#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!%XV&n`&dZOr%Trs!%ns#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!%sV&n`Or%Trs!&Ys#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&aT&n`&fZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!&wV&n`&cZOw%Twx!'^x#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!'cV&n`Ow%Twx!'xx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!(PT&n`&eZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!(ia&n`&YS%uZOr%Trs!)nsw%Twx!+^x!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!)uV&n`&hZOr%Trs!*[s#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*aV&n`Or%Trs!*vs#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!*}T&n`&jZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!+eV&n`&gZOw%Twx!+zx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,PV&n`Ow%Twx!,fx#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tk!,mT&n`&iZO#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%To!-Vi&n`&YS%uZOr%TrsNWsw%Twx! vx!Q%T!Q![JU![!c%T!c!dJU!d!eLx!e!hJU!h!i!(`!i!}JU!}#R%T#R#SJU#S#T%T#T#UJU#U#VLx#V#YJU#Y#Z!(`#Z#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUo!.}a&n`&YS%uZOr%Trs)Ysw%Twx.Ux!Q%T!Q![JU![!c%T!c!}JU!}#R%T#R#SJU#S#T%T#T#oJU#p#q%T#r$g%T$g;'SJU;'S;=`KW<%lOJUk!0ZT!XZ&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tc!0qT!WR&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%Tj!1XV%kQ&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!1sO!]~k!1zV%jR&n`O!_%T!_!`-Q!`#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T~!2fO![~i!2mT%tX&n`O#o%T#p#q%T#r;'S%T;'S;=`%i<%lO%T",tokenizers:[SP,wP,_P,kP,0,1,2,3,4],topRules:{Script:[0,5]},specialized:[{term:221,get:t=>DP[t]||-1}],tokenPrec:7668});class j_{constructor(e,i,n,s){this.state=e,this.pos=i,this.explicit=n,this.view=s,this.abortListeners=[],this.abortOnDocChange=!1}tokenBefore(e){let i=ei(this.state).resolveInner(this.pos,-1);for(;i&&e.indexOf(i.name)<0;)i=i.parent;return i?{from:i.from,to:this.pos,text:this.state.sliceDoc(i.from,this.pos),type:i.type}:null}matchBefore(e){let i=this.state.doc.lineAt(this.pos),n=Math.max(i.from,this.pos-250),s=i.text.slice(n-i.from,this.pos-i.from),r=s.search(Y_(e,!1));return r<0?null:{from:n+r,to:this.pos,text:s.slice(r)}}get aborted(){return this.abortListeners==null}addEventListener(e,i,n){e=="abort"&&this.abortListeners&&(this.abortListeners.push(i),n&&n.onDocChange&&(this.abortOnDocChange=!0))}}function ag(t){let e=Object.keys(t).join(""),i=/\w/.test(e);return i&&(e=e.replace(/\w/g,"")),`[${i?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function $P(t){let e=Object.create(null),i=Object.create(null);for(let{label:s}of t){e[s[0]]=!0;for(let r=1;rtypeof s=="string"?{label:s}:s),[i,n]=e.every(s=>/^\w+$/.test(s.label))?[/\w*$/,/\w+$/]:$P(e);return s=>{let r=s.matchBefore(n);return r||s.explicit?{from:r?r.from:s.pos,options:e,validFor:i}:null}}function AP(t,e){return i=>{for(let n=ei(i.state).resolveInner(i.pos,-1);n;n=n.parent){if(t.indexOf(n.name)>-1)return null;if(n.type.isTop)break}return e(i)}}class lg{constructor(e,i,n,s){this.completion=e,this.source=i,this.match=n,this.score=s}}function Cs(t){return t.selection.main.from}function Y_(t,e){var i;let{source:n}=t,s=e&&n[0]!="^",r=n[n.length-1]!="$";return!s&&!r?t:new RegExp(`${s?"^":""}(?:${n})${r?"$":""}`,(i=t.flags)!==null&&i!==void 0?i:t.ignoreCase?"i":"")}const Of=Pn.define();function IP(t,e,i,n){let{main:s}=t.selection,r=i-s.from,o=n-s.from;return{...t.changeByRange(a=>{if(a!=s&&i!=n&&t.sliceDoc(a.from+r,a.from+o)!=t.sliceDoc(i,n))return{range:a};let l=t.toText(e);return{changes:{from:a.from+r,to:n==s.from?a.to:a.from+o,insert:l},range:K.cursor(a.from+r+l.length)}}),scrollIntoView:!0,userEvent:"input.complete"}}const hg=new WeakMap;function EP(t){if(!Array.isArray(t))return t;let e=hg.get(t);return e||hg.set(t,e=X_(t)),e}const th=$e.define(),Ro=$e.define();class MP{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let i=0;i=48&&C<=57||C>=97&&C<=122?2:C>=65&&C<=90?1:0:(y=IS(C))!=y.toLowerCase()?1:y!=y.toUpperCase()?2:0;(!_||T==1&&g||x==0&&T!=0)&&(i[d]==C||n[d]==C&&(u=!0)?o[d++]=_:o.length&&(b=!1)),x=T,_+=Js(C)}return d==l&&o[0]==0&&b?this.result(-100+(u?-200:0),o,e):f==l&&p==0?this.ret(-200-e.length+(m==e.length?0:-100),[0,m]):a>-1?this.ret(-700-e.length,[a,a+this.pattern.length]):f==l?this.ret(-900-e.length,[p,m]):d==l?this.result(-100+(u?-200:0)+-700+(b?0:-1100),o,e):i.length==2?null:this.result((s[0]?-700:0)+-200+-1100,s,e)}result(e,i,n){let s=[],r=0;for(let o of i){let a=o+(this.astral?Js(fs(n,o)):1);r&&s[r-1]==o?s[r-1]=a:(s[r++]=o,s[r++]=a)}return this.ret(e-n.length,s)}}class GP{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:RP,filterStrict:!1,compareCompletions:(e,i)=>(e.sortText||e.label).localeCompare(i.sortText||i.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,i)=>e&&i,closeOnBlur:(e,i)=>e&&i,icons:(e,i)=>e&&i,tooltipClass:(e,i)=>n=>cg(e(n),i(n)),optionClass:(e,i)=>n=>cg(e(n),i(n)),addToOptions:(e,i)=>e.concat(i),filterStrict:(e,i)=>e||i})}});function cg(t,e){return t?e?t+" "+e:t:e}function RP(t,e,i,n,s,r){let o=t.textDirection==Ye.RTL,a=o,l=!1,h="top",c,d,u=e.left-s.left,f=s.right-e.right,p=n.right-n.left,m=n.bottom-n.top;if(a&&u=m||_>e.top?c=i.bottom-e.top:(h="bottom",c=e.bottom-i.top)}let g=(e.bottom-e.top)/r.offsetHeight,b=(e.right-e.left)/r.offsetWidth;return{style:`${h}: ${c/g}px; max-width: ${d/b}px`,class:"cm-completionInfo-"+(l?o?"left-narrow":"right-narrow":a?"left":"right")}}const Sf=$e.define();function zP(t){let e=t.addToOptions.slice();return t.icons&&e.push({render(i){let n=document.createElement("div");return n.classList.add("cm-completionIcon"),i.type&&n.classList.add(...i.type.split(/\s+/g).map(s=>"cm-completionIcon-"+s)),n.setAttribute("aria-hidden","true"),n},position:20}),e.push({render(i,n,s,r){let o=document.createElement("span");o.className="cm-completionLabel";let a=i.displayLabel||i.label,l=0;for(let h=0;hl&&o.appendChild(document.createTextNode(a.slice(l,c)));let u=o.appendChild(document.createElement("span"));u.appendChild(document.createTextNode(a.slice(c,d))),u.className="cm-completionMatchedText",l=d}return li.position-n.position).map(i=>i.render)}function Oc(t,e,i){if(t<=i)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let s=Math.floor(e/i);return{from:s*i,to:(s+1)*i}}let n=Math.ceil((t-e)/i);return{from:t-n*i,to:t-(n-1)*i}}class LP{constructor(e,i,n){this.view=e,this.stateField=i,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(i),{options:r,selected:o}=s.open,a=e.state.facet(mt);this.optionContent=zP(a),this.optionClass=a.optionClass,this.tooltipClass=a.tooltipClass,this.range=Oc(r.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:h}=e.state.field(i).open;for(let c=l.target,d;c&&c!=this.dom;c=c.parentNode)if(c.nodeName=="LI"&&(d=/-(\d+)$/.exec(c.id))&&+d[1]this.list.lastChild.getBoundingClientRect().bottom?this.range.to:null;c!=null&&(e.dispatch({effects:Sf.of(c)}),l.preventDefault())}}),this.dom.addEventListener("focusout",l=>{let h=e.state.field(this.stateField,!1);h&&h.tooltip&&e.state.facet(mt).closeOnBlur&&l.relatedTarget!=e.contentDOM&&e.dispatch({effects:Ro.of(null)})}),this.showOptions(r,s.id)}mount(){this.updateSel()}showOptions(e,i){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,i,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)})}update(e){var i;let n=e.state.field(this.stateField),s=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),n!=s){let{options:r,selected:o,disabled:a}=n.open;(!s.open||s.open.options!=r)&&(this.range=Oc(r.length,o,e.state.facet(mt).maxRenderedOptions),this.showOptions(r,n.id)),this.updateSel(),a!=((i=s.open)===null||i===void 0?void 0:i.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!a)}}updateTooltipClass(e){let i=this.tooltipClass(e);if(i!=this.currentClass){for(let n of this.currentClass.split(" "))n&&this.dom.classList.remove(n);for(let n of i.split(" "))n&&this.dom.classList.add(n);this.currentClass=i}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),i=e.open;(i.selected>-1&&i.selected=this.range.to)&&(this.range=Oc(i.options.length,i.selected,this.view.state.facet(mt).maxRenderedOptions),this.showOptions(i.options,e.id));let n=this.updateSelectedOption(i.selected);if(n){this.destroyInfo();let{completion:s}=i.options[i.selected],{info:r}=s;if(!r)return;let o=typeof r=="string"?document.createTextNode(r):r(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=>Rt(this.view.state,a,"completion info")):(this.addInfoPane(o,s),n.setAttribute("aria-describedby",this.info.id))}}addInfoPane(e,i){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:r}=e;n.appendChild(s),this.infoDestroy=r||null}this.dom.appendChild(n),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let i=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"),i=n):n.hasAttribute("aria-selected")&&(n.removeAttribute("aria-selected"),n.removeAttribute("aria-describedby"));return i&&BP(this.list,i),i}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let i=this.dom.getBoundingClientRect(),n=this.info.getBoundingClientRect(),s=e.getBoundingClientRect(),r=this.space;if(!r){let o=this.dom.ownerDocument.documentElement;r={left:0,top:0,right:o.clientWidth,bottom:o.clientHeight}}return s.top>Math.min(r.bottom,i.bottom)-10||s.bottom{o.target==s&&o.preventDefault()});let r=null;for(let o=n.from;on.from||n.from==0))if(r=u,typeof h!="string"&&h.header)s.appendChild(h.header(h));else{let f=s.appendChild(document.createElement("completion-section"));f.textContent=u}}const c=s.appendChild(document.createElement("li"));c.id=i+"-"+o,c.setAttribute("role","option");let d=this.optionClass(a);d&&(c.className=d);for(let u of this.optionContent){let f=u(a,this.view.state,this.view,l);f&&c.appendChild(f)}}return n.from&&s.classList.add("cm-completionListIncompleteTop"),n.tonew LP(i,t,e)}function BP(t,e){let i=t.getBoundingClientRect(),n=e.getBoundingClientRect(),s=i.height/t.offsetHeight;n.topi.bottom&&(t.scrollTop+=(n.bottom-i.bottom)/s)}function dg(t){return(t.boost||0)*100+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}function WP(t,e){let i=[],n=null,s=null,r=c=>{i.push(c);let{section:d}=c.completion;if(d){n||(n=[]);let u=typeof d=="string"?d:d.name;n.some(f=>f.name==u)||n.push(typeof d=="string"?{name:u}:d)}},o=e.facet(mt);for(let c of t)if(c.hasResult()){let d=c.result.getMatch;if(c.result.filter===!1)for(let u of c.result.options)r(new lg(u,c.source,d?d(u):[],1e9-i.length));else{let u=e.sliceDoc(c.from,c.to),f,p=o.filterStrict?new GP(u):new MP(u);for(let m of c.result.options)if(f=p.match(m.label)){let g=m.displayLabel?d?d(m,f.matched):[]:f.matched,b=f.score+(m.boost||0);if(r(new lg(m,c.source,g,b)),typeof m.section=="object"&&m.section.rank==="dynamic"){let{name:_}=m.section;s||(s=Object.create(null)),s[_]=Math.max(b,s[_]||-1e9)}}}}if(n){let c=Object.create(null),d=0,u=(f,p)=>(f.rank==="dynamic"&&p.rank==="dynamic"?s[p.name]-s[f.name]:0)||(typeof f.rank=="number"?f.rank:1e9)-(typeof p.rank=="number"?p.rank:1e9)||(f.nameu.score-d.score||h(d.completion,u.completion))){let d=c.completion;!l||l.label!=d.label||l.detail!=d.detail||l.type!=null&&d.type!=null&&l.type!=d.type||l.apply!=d.apply||l.boost!=d.boost?a.push(c):dg(c.completion)>dg(l)&&(a[a.length-1]=c),l=c.completion}return a}class ar{constructor(e,i,n,s,r,o){this.options=e,this.attrs=i,this.tooltip=n,this.timestamp=s,this.selected=r,this.disabled=o}setSelected(e,i){return e==this.selected||e>=this.options.length?this:new ar(this.options,ug(i,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,i,n,s,r,o){if(s&&!o&&e.some(h=>h.isPending))return s.setDisabled();let a=WP(e,i);if(!a.length)return s&&e.some(h=>h.isPending)?s.setDisabled():null;let l=i.facet(mt).selectOnOpen?0:-1;if(s&&s.selected!=l&&s.selected!=-1){let h=s.options[s.selected].completion;for(let c=0;cc.hasResult()?Math.min(h,c.from):h,1e8),create:UP,above:r.aboveCursor},s?s.timestamp:Date.now(),l,!1)}map(e){return new ar(this.options,this.attrs,{...this.tooltip,pos:e.mapPos(this.tooltip.pos)},this.timestamp,this.selected,this.disabled)}setDisabled(){return new ar(this.options,this.attrs,this.tooltip,this.timestamp,this.selected,!0)}}class ih{constructor(e,i,n){this.active=e,this.id=i,this.open=n}static start(){return new ih(HP,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:i}=e,n=i.facet(mt),r=(n.override||i.languageDataAt("autocomplete",Cs(i)).map(EP)).map(l=>(this.active.find(c=>c.source==l)||new ai(l,this.active.some(c=>c.state!=0)?1:0)).update(e,n));r.length==this.active.length&&r.every((l,h)=>l==this.active[h])&&(r=this.active);let o=this.open,a=e.effects.some(l=>l.is(kf));o&&e.docChanged&&(o=o.map(e.changes)),e.selection||r.some(l=>l.hasResult()&&e.changes.touchesRange(l.from,l.to))||!VP(r,this.active)||a?o=ar.build(r,i,this.id,o,n,a):o&&o.disabled&&!r.some(l=>l.isPending)&&(o=null),!o&&r.every(l=>!l.isPending)&&r.some(l=>l.hasResult())&&(r=r.map(l=>l.hasResult()?new ai(l.source,0):l));for(let l of e.effects)l.is(Sf)&&(o=o&&o.setSelected(l.value,this.id));return r==this.active&&o==this.open?this:new ih(r,this.id,o)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:this.active.length?FP:QP}}function VP(t,e){if(t==e)return!0;for(let i=0,n=0;;){for(;i-1&&(i["aria-activedescendant"]=t+"-"+e),i}const HP=[];function Z_(t,e){if(t.isUserEvent("input.complete")){let n=t.annotation(Of);if(n&&e.activateOnCompletion(n))return 12}let i=t.isUserEvent("input.type");return i&&e.activateOnTyping?5:i?1:t.isUserEvent("delete.backward")?2:t.selection?8:t.docChanged?16:0}class ai{constructor(e,i,n=!1){this.source=e,this.state=i,this.explicit=n}hasResult(){return!1}get isPending(){return this.state==1}update(e,i){let n=Z_(e,i),s=this;(n&8||n&16&&this.touches(e))&&(s=new ai(s.source,0)),n&4&&s.state==0&&(s=new ai(this.source,1)),s=s.updateFor(e,n);for(let r of e.effects)if(r.is(th))s=new ai(s.source,1,r.value);else if(r.is(Ro))s=new ai(s.source,0);else if(r.is(kf))for(let o of r.value)o.source==s.source&&(s=o);return s}updateFor(e,i){return this.map(e.changes)}map(e){return this}touches(e){return e.changes.touchesRange(Cs(e.state))}}class fr extends ai{constructor(e,i,n,s,r,o){super(e,3,i),this.limit=n,this.result=s,this.from=r,this.to=o}hasResult(){return!0}updateFor(e,i){var n;if(!(i&3))return this.map(e.changes);let s=this.result;s.map&&!e.changes.empty&&(s=s.map(s,e.changes));let r=e.changes.mapPos(this.from),o=e.changes.mapPos(this.to,1),a=Cs(e.state);if(a>o||!s||i&2&&(Cs(e.startState)==this.from||ai.map(e))}}),Gt=Dt.define({create(){return ih.start()},update(t,e){return t.update(e)},provide:t=>[ra.from(t,e=>e.tooltip),ce.contentAttributes.from(t,e=>e.attrs)]});function Cf(t,e){const i=e.completion.apply||e.completion.label;let n=t.state.field(Gt).active.find(s=>s.source==e.source);return n instanceof fr?(typeof i=="string"?t.dispatch({...IP(t.state,i,n.from,n.to),annotations:Of.of(e.completion)}):i(t,e.completion,n.from,n.to),!0):!1}const UP=NP(Gt,Cf);function Aa(t,e="option"){return i=>{let n=i.state.field(Gt,!1);if(!n||!n.open||n.open.disabled||Date.now()-n.open.timestamp-1?n.open.selected+s*(t?1:-1):t?0:o-1;return a<0?a=e=="page"?0:o-1:a>=o&&(a=e=="page"?o-1:0),i.dispatch({effects:Sf.of(a)}),!0}}const jP=t=>{let e=t.state.field(Gt,!1);return t.state.readOnly||!e||!e.open||e.open.selected<0||e.open.disabled||Date.now()-e.open.timestampt.state.field(Gt,!1)?(t.dispatch({effects:th.of(!0)}),!0):!1,K_=t=>{let e=t.state.field(Gt,!1);return!e||!e.active.some(i=>i.state!=0)?!1:(t.dispatch({effects:Ro.of(null)}),!0)};class XP{constructor(e,i){this.active=e,this.context=i,this.time=Date.now(),this.updates=[],this.done=void 0}}const YP=50,ZP=1e3,KP=Tt.fromClass(class{constructor(t){this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let e of t.state.field(Gt).active)e.isPending&&this.startQuery(e)}update(t){let e=t.state.field(Gt),i=t.state.facet(mt);if(!t.selectionSet&&!t.docChanged&&t.startState.field(Gt)==e)return;let n=t.transactions.some(r=>{let o=Z_(r,i);return o&8||(r.selection||r.docChanged)&&!(o&3)});for(let r=0;rYP&&Date.now()-o.time>ZP){for(let a of o.context.abortListeners)try{a()}catch(l){Rt(this.view.state,l)}o.context.abortListeners=null,this.running.splice(r--,1)}else o.updates.push(...t.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),t.transactions.some(r=>r.effects.some(o=>o.is(th)))&&(this.pendingStart=!0);let s=this.pendingStart?50:i.activateOnTypingDelay;if(this.debounceUpdate=e.active.some(r=>r.isPending&&!this.running.some(o=>o.active.source==r.source))?setTimeout(()=>this.startUpdate(),s):-1,this.composing!=0)for(let r of t.transactions)r.isUserEvent("input.type")?this.composing=2:this.composing==2&&r.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:t}=this.view,e=t.field(Gt);for(let i of e.active)i.isPending&&!this.running.some(n=>n.active.source==i.source)&&this.startQuery(i);this.running.length&&e.open&&e.open.disabled&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(mt).updateSyncTime))}startQuery(t){let{state:e}=this.view,i=Cs(e),n=new j_(e,i,t.explicit,this.view),s=new XP(t,n);this.running.push(s),Promise.resolve(t.source(n)).then(r=>{s.context.aborted||(s.done=r||null,this.scheduleAccept())},r=>{this.view.dispatch({effects:Ro.of(null)}),Rt(this.view.state,r)})}scheduleAccept(){this.running.every(t=>t.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),this.view.state.facet(mt).updateSyncTime))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],i=this.view.state.facet(mt),n=this.view.state.field(Gt);for(let s=0;sa.source==r.active.source);if(o&&o.isPending)if(r.done==null){let a=new ai(r.active.source,0);for(let l of r.updates)a=a.update(l,i);a.isPending||e.push(a)}else this.startQuery(o)}(e.length||n.open&&n.open.disabled)&&this.view.dispatch({effects:kf.of(e)})}},{eventHandlers:{blur(t){let e=this.view.state.field(Gt,!1);if(e&&e.tooltip&&this.view.state.facet(mt).closeOnBlur){let i=e.open&&Qb(this.view,e.open.tooltip);(!i||!i.dom.contains(t.relatedTarget))&&setTimeout(()=>this.view.dispatch({effects:Ro.of(null)}),10)}},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:th.of(!1)}),20),this.composing=0}}}),JP=typeof navigator=="object"&&/Win/.test(navigator.platform),e$=Gr.highest(ce.domEventHandlers({keydown(t,e){let i=e.state.field(Gt,!1);if(!i||!i.open||i.open.disabled||i.open.selected<0||t.key.length>1||t.ctrlKey&&!(JP&&t.altKey)||t.metaKey)return!1;let n=i.open.options[i.open.selected],s=i.active.find(o=>o.source==n.source),r=n.completion.commitCharacters||s.result.commitCharacters;return r&&r.indexOf(t.key)>-1&&Cf(e,n),!1}})),J_=ce.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",cursor:"pointer"},".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 t${constructor(e,i,n,s){this.field=e,this.line=i,this.from=n,this.to=s}}class Tf{constructor(e,i,n){this.field=e,this.from=i,this.to=n}map(e){let i=e.mapPos(this.from,-1,kt.TrackDel),n=e.mapPos(this.to,1,kt.TrackDel);return i==null||n==null?null:new Tf(this.field,i,n)}}class Df{constructor(e,i){this.lines=e,this.fieldPositions=i}instantiate(e,i){let n=[],s=[i],r=e.doc.lineAt(i),o=/^\s*/.exec(r.text)[0];for(let l of this.lines){if(n.length){let h=o,c=/^\t*/.exec(l)[0].length;for(let d=0;dnew Tf(l.field,s[l.line]+l.from,s[l.line]+l.to));return{text:n,ranges:a}}static parse(e){let i=[],n=[],s=[],r;for(let o of e.split(/\r\n?|\n/)){for(;r=/[#$]\{(?:(\d+)(?::([^{}]*))?|((?:\\[{}]|[^{}])*))\}/.exec(o);){let a=r[1]?+r[1]:null,l=r[2]||r[3]||"",h=-1;a===0&&(a=1e9);let c=l.replace(/\\[{}]/g,d=>d[1]);for(let d=0;d=h&&u.field++}for(let d of s)if(d.line==n.length&&d.from>r.index){let u=r[2]?3+(r[1]||"").length:2;d.from-=u,d.to-=u}s.push(new t$(h,n.length,r.index,r.index+c.length)),o=o.slice(0,r.index)+l+o.slice(r.index+r[0].length)}o=o.replace(/\\([{}])/g,(a,l,h)=>{for(let c of s)c.line==n.length&&c.from>h&&(c.from--,c.to--);return l}),n.push(o)}return new Df(n,s)}}let i$=Ge.widget({widget:new class extends Rr{toDOM(){let t=document.createElement("span");return t.className="cm-snippetFieldPosition",t}ignoreEvent(){return!1}}}),n$=Ge.mark({class:"cm-snippetField"});class Lr{constructor(e,i){this.ranges=e,this.active=i,this.deco=Ge.set(e.map(n=>(n.from==n.to?i$:n$).range(n.from,n.to)),!0)}map(e){let i=[];for(let n of this.ranges){let s=n.map(e);if(!s)return null;i.push(s)}return new Lr(i,this.active)}selectionInsideField(e){return e.ranges.every(i=>this.ranges.some(n=>n.field==this.active&&n.from<=i.from&&n.to>=i.to))}}const aa=$e.define({map(t,e){return t&&t.map(e)}}),s$=$e.define(),zo=Dt.define({create(){return null},update(t,e){for(let i of e.effects){if(i.is(aa))return i.value;if(i.is(s$)&&t)return new Lr(t.ranges,i.value)}return t&&e.docChanged&&(t=t.map(e.changes)),t&&e.selection&&!t.selectionInsideField(e.selection)&&(t=null),t},provide:t=>ce.decorations.from(t,e=>e?e.deco:Ge.none)});function Pf(t,e){return K.create(t.filter(i=>i.field==e).map(i=>K.range(i.from,i.to)))}function r$(t){let e=Df.parse(t);return(i,n,s,r)=>{let{text:o,ranges:a}=e.instantiate(i.state,s),{main:l}=i.state.selection,h={changes:{from:s,to:r==l.from?l.to:r,insert:Ee.of(o)},scrollIntoView:!0,annotations:n?[Of.of(n),lt.userEvent.of("input.complete")]:void 0};if(a.length&&(h.selection=Pf(a,0)),a.some(c=>c.field>0)){let c=new Lr(a,0),d=h.effects=[aa.of(c)];i.state.field(zo,!1)===void 0&&d.push($e.appendConfig.of([zo,c$,d$,J_]))}i.dispatch(i.state.update(h))}}function ew(t){return({state:e,dispatch:i})=>{let n=e.field(zo,!1);if(!n||t<0&&n.active==0)return!1;let s=n.active+t,r=t>0&&!n.ranges.some(o=>o.field==s+t);return i(e.update({selection:Pf(n.ranges,s),effects:aa.of(r?null:new Lr(n.ranges,s)),scrollIntoView:!0})),!0}}const o$=({state:t,dispatch:e})=>t.field(zo,!1)?(e(t.update({effects:aa.of(null)})),!0):!1,a$=ew(1),l$=ew(-1),h$=[{key:"Tab",run:a$,shift:l$},{key:"Escape",run:o$}],fg=le.define({combine(t){return t.length?t[0]:h$}}),c$=Gr.highest(sa.compute([fg],t=>t.facet(fg)));function Ki(t,e){return{...e,apply:r$(t)}}const d$=ce.domEventHandlers({mousedown(t,e){let i=e.state.field(zo,!1),n;if(!i||(n=e.posAtCoords({x:t.clientX,y:t.clientY}))==null)return!1;let s=i.ranges.find(r=>r.from<=n&&r.to>=n);return!s||s.field==i.active?!1:(e.dispatch({selection:Pf(i.ranges,s.field),effects:aa.of(i.ranges.some(r=>r.field>s.field)?new Lr(i.ranges,s.field):null),scrollIntoView:!0}),!0)}}),tw=new class extends Jn{};tw.startSide=1;tw.endSide=-1;function u$(t={}){return[e$,Gt,mt.of(t),KP,p$,J_]}const f$=[{key:"Ctrl-Space",run:Sc},{mac:"Alt-`",run:Sc},{mac:"Alt-i",run:Sc},{key:"Escape",run:K_},{key:"ArrowDown",run:Aa(!0)},{key:"ArrowUp",run:Aa(!1)},{key:"PageDown",run:Aa(!0,"page")},{key:"PageUp",run:Aa(!1,"page")},{key:"Enter",run:jP}],p$=Gr.highest(sa.computeN([mt],t=>t.facet(mt).defaultKeymap?[f$]:[]));function m$(t){let e=t.field(Gt,!1);return e&&e.active.some(i=>i.isPending)?"pending":e&&e.active.some(i=>i.state!=0)?"active":null}const pg=new mC,iw=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function Ia(t){return(e,i,n)=>{if(n)return!1;let s=e.node.getChild("VariableName");return s&&i(s,t),!0}}const g$={FunctionDefinition:Ia("function"),ClassDefinition:Ia("class"),ForStatement(t,e,i){if(i){for(let n=t.node.firstChild;n;n=n.nextSibling)if(n.name=="VariableName")e(n,"variable");else if(n.name=="in")break}},ImportStatement(t,e){var i,n;let{node:s}=t,r=((i=s.firstChild)===null||i===void 0?void 0:i.name)=="from";for(let o=s.getChild("import");o;o=o.nextSibling)o.name=="VariableName"&&((n=o.nextSibling)===null||n===void 0?void 0:n.name)!="as"&&e(o,r?"variable":"namespace")},AssignStatement(t,e){for(let i=t.node.firstChild;i;i=i.nextSibling)if(i.name=="VariableName")e(i,"variable");else if(i.name==":"||i.name=="AssignOp")break},ParamList(t,e){for(let i=null,n=t.node.firstChild;n;n=n.nextSibling)n.name=="VariableName"&&(!i||!/\*|AssignOp/.test(i.name))&&e(n,"variable"),i=n},CapturePattern:Ia("variable"),AsPattern:Ia("variable"),__proto__:null};function nw(t,e){let i=pg.get(e);if(i)return i;let n=[],s=!0;function r(o,a){let l=t.sliceString(o.from,o.to);n.push({label:l,type:a})}return e.cursor(Ke.IncludeAnonymous).iterate(o=>{if(o.name){let a=g$[o.name];if(a&&a(o,r,s)||!s&&iw.has(o.name))return!1;s=!1}else if(o.to-o.from>8192){for(let a of nw(t,o.node))n.push(a);return!1}}),pg.set(e,n),n}const mg=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,sw=["String","FormatString","Comment","PropertyName"];function v$(t){let e=ei(t.state).resolveInner(t.pos,-1);if(sw.indexOf(e.name)>-1)return null;let i=e.name=="VariableName"||e.to-e.from<20&&mg.test(t.state.sliceDoc(e.from,e.to));if(!i&&!t.explicit)return null;let n=[];for(let s=e;s;s=s.parent)iw.has(s.name)&&(n=n.concat(nw(t.state.doc,s)));return{options:n,from:i?e.from:t.pos,validFor:mg}}const b$=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map(t=>({label:t,type:"constant"})).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map(t=>({label:t,type:"type"}))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map(t=>({label:t,type:"class"}))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map(t=>({label:t,type:"function"}))),_$=[Ki("def ${name}(${params}):\n ${}",{label:"def",detail:"function",type:"keyword"}),Ki("for ${name} in ${collection}:\n ${}",{label:"for",detail:"loop",type:"keyword"}),Ki("while ${}:\n ${}",{label:"while",detail:"loop",type:"keyword"}),Ki("try:\n ${}\nexcept ${error}:\n ${}",{label:"try",detail:"/ except block",type:"keyword"}),Ki(`if \${}: -`,{label:"if",detail:"block",type:"keyword"}),Ki("if ${}:\n ${}\nelse:\n ${}",{label:"if",detail:"/ else block",type:"keyword"}),Ki("class ${name}:\n def __init__(self, ${params}):\n ${}",{label:"class",detail:"definition",type:"keyword"}),Ki("import ${module}",{label:"import",detail:"statement",type:"keyword"}),Ki("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],b$=PP(rw,Y_(g$.concat(v$)));function Cc(t){let{node:e,pos:i}=t,n=t.lineIndent(i,-1),s=null;for(;;){let r=e.childBefore(i);if(r)if(r.name=="Comment")i=r.from;else if(r.name=="Body"||r.name=="MatchBody")t.baseIndentFor(r)+t.unit<=n&&(s=r),e=r;else if(r.name=="MatchClause")e=r;else if(r.type.is("Statement"))e=r;else break;else break}return s}function Tc(t,e){let i=t.baseIndentFor(e),n=t.lineAt(t.pos,-1),s=n.from+n.text.length;return/^\s*($|#)/.test(n.text)&&t.node.toi?null:i+t.unit}const Dc=Ul.define({name:"python",parser:TP.configure({props:[o_.add({Body:t=>{var e;let i=/^\s*(#|$)/.test(t.textAfter)&&Cc(t)||t.node;return(e=Tc(t,i))!==null&&e!==void 0?e:t.continue()},MatchBody:t=>{var e;let i=Cc(t);return(e=Tc(t,i||t.node))!==null&&e!==void 0?e:t.continue()},IfStatement:t=>/^\s*(else:|elif )/.test(t.textAfter)?t.baseIndent:t.continue(),"ForStatement WhileStatement":t=>/^\s*else:/.test(t.textAfter)?t.baseIndent:t.continue(),TryStatement:t=>/^\s*(except[ :]|finally:|else:)/.test(t.textAfter)?t.baseIndent:t.continue(),MatchStatement:t=>/^\s*case /.test(t.textAfter)?t.baseIndent+t.unit:t.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":gc({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":gc({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":gc({closing:"]"}),MemberExpression:t=>t.baseIndent+t.unit,"String FormatString":()=>null,Script:t=>{var e;let i=Cc(t);return(e=i&&Tc(t,i))!==null&&e!==void 0?e:t.continue()}}),GC.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":RC,Body:(t,e)=>({from:t.from+1,to:t.to-(t.to==e.doc.length?0:1)}),"String FormatString":(t,e)=>({from:e.doc.lineAt(t.from).to,to:t.to})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:|case\s+[^:]*:?)$/}});function _$(){return new TC(Dc,[Dc.data.of({autocomplete:m$}),Dc.data.of({autocomplete:b$})])}class vg{constructor(e,i,n){this.from=e,this.to=i,this.diagnostic=n}}class _s{constructor(e,i,n){this.diagnostics=e,this.panel=i,this.selected=n}static init(e,i,n){let s=n.facet(qi).markerFilter;s&&(e=s(e,n));let r=e.slice().sort((c,d)=>c.from-d.from||c.to-d.to),o=new Ms,a=[],l=0;for(let c=0;;){let d=c==r.length?null:r[c];if(!d&&!a.length)break;let u,f;for(a.length?(u=l,f=a.reduce((m,g)=>Math.min(m,g.to),d&&d.from>u?d.from:1e8)):(u=d.from,f=d.to,a.push(d),c++);cm.from||m.to==u))a.push(m),c++,f=Math.min(m.to,f);else{f=Math.min(m.from,f);break}}let p=uw(a);if(a.some(m=>m.from==m.to||m.from==m.to-1&&n.doc.lineAt(m.from).to==m.from))o.add(u,u,Ge.widget({widget:new P$(p),diagnostics:a.slice()}));else{let m=a.reduce((g,b)=>b.markClass?g+" "+b.markClass:g,"");o.add(u,f,Ge.mark({class:"cm-lintRange cm-lintRange-"+p+m,diagnostics:a.slice(),inclusiveEnd:a.some(g=>g.to>f)}))}l=f;for(let m=0;m{if(!(e&&o.diagnostics.indexOf(e)<0))if(!n)n=new vg(s,r,e||o.diagnostics[0]);else{if(o.diagnostics.indexOf(n.diagnostic)<0)return!1;n=new vg(n.from,r,n.diagnostic)}}),n}function ow(t,e){let i=e.pos,n=e.end||i,s=t.state.facet(qi).hideOn(t,i,n);if(s!=null)return s;let r=t.startState.doc.lineAt(e.pos);return!!(t.effects.some(o=>o.is(Wh))||t.changes.touchesRange(r.from,Math.max(r.to,n)))}function aw(t,e){return t.field(Kt,!1)?e:e.concat($e.appendConfig.of(mw))}function w$(t,e){return{effects:aw(t,[Wh.of(e)])}}const Wh=$e.define(),Af=$e.define(),lw=$e.define(),Kt=Dt.define({create(){return new _s(Ge.none,null,null)},update(t,e){if(e.docChanged&&t.diagnostics.size){let i=t.diagnostics.map(e.changes),n=null,s=t.panel;if(t.selected){let r=e.changes.mapPos(t.selected.from,1);n=Cr(i,t.selected.diagnostic,r)||Cr(i,null,r)}!i.size&&s&&e.state.facet(qi).autoPanel&&(s=null),t=new _s(i,s,n)}for(let i of e.effects)if(i.is(Wh)){let n=e.state.facet(qi).autoPanel?i.value.length?Lo.open:null:t.panel;t=_s.init(i.value,n,e.state)}else i.is(Af)?t=new _s(t.diagnostics,i.value?Lo.open:null,t.selected):i.is(lw)&&(t=new _s(t.diagnostics,t.panel,i.value));return t},provide:t=>[Wd.from(t,e=>e.panel),ce.decorations.from(t,e=>e.diagnostics)]}),y$=Ge.mark({class:"cm-lintRange cm-lintRange-active"});function x$(t,e,i){let{diagnostics:n}=t.state.field(Kt),s,r=-1,o=-1;n.between(e-(i<0?1:0),e+(i>0?1:0),(l,h,{spec:c})=>{if(e>=l&&e<=h&&(l==h||(e>l||i>0)&&(edw(t,i,!1)))}const O$=t=>{let e=t.state.field(Kt,!1);(!e||!e.panel)&&t.dispatch({effects:aw(t.state,[Af.of(!0)])});let i=Yk(t,Lo.open);return i&&i.dom.querySelector(".cm-panel-lint ul").focus(),!0},bg=t=>{let e=t.state.field(Kt,!1);return!e||!e.panel?!1:(t.dispatch({effects:Af.of(!1)}),!0)},S$=t=>{let e=t.state.field(Kt,!1);if(!e)return!1;let i=t.state.selection.main,n=e.diagnostics.iter(i.to+1);return!n.value&&(n=e.diagnostics.iter(0),!n.value||n.from==i.from&&n.to==i.to)?!1:(t.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0}),!0)},k$=[{key:"Mod-Shift-m",run:O$,preventDefault:!0},{key:"F8",run:S$}],C$=Tt.fromClass(class{constructor(t){this.view=t,this.timeout=-1,this.set=!0;let{delay:e}=t.state.facet(qi);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){clearTimeout(this.timeout);let t=Date.now();if(tPromise.resolve(n(this.view))),n=>{this.view.state.doc==e.doc&&this.view.dispatch(w$(this.view.state,n.reduce((s,r)=>s.concat(r))))},n=>{Rt(this.view.state,n)})}}update(t){let e=t.state.facet(qi);(t.docChanged||e!=t.startState.facet(qi)||e.needsRefresh&&e.needsRefresh(t))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}});function T$(t,e,i){let n=[],s=-1;for(let r of t)r.then(o=>{n.push(o),clearTimeout(s),n.length==t.length?e(n):s=setTimeout(()=>e(n),200)},i)}const qi=le.define({combine(t){return Object.assign({sources:t.map(e=>e.source).filter(e=>e!=null)},ea(t.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{needsRefresh:(e,i)=>e?i?n=>e(n)||i(n):e:i}))}});function D$(t,e={}){return[qi.of({source:t,config:e}),C$,mw]}function cw(t){let e=[];if(t)e:for(let{name:i}of t){for(let n=0;nr.toLowerCase()==s.toLowerCase())){e.push(s);continue e}}e.push("")}return e}function dw(t,e,i){var n;let s=i?cw(e.actions):[];return Bi("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},Bi("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage(t):e.message),(n=e.actions)===null||n===void 0?void 0:n.map((r,o)=>{let a=!1,l=u=>{if(u.preventDefault(),a)return;a=!0;let f=Cr(t.state.field(Kt).diagnostics,e);f&&r.apply(t,f.from,f.to)},{name:h}=r,c=s[o]?h.indexOf(s[o]):-1,d=c<0?h:[h.slice(0,c),Bi("u",h.slice(c,c+1)),h.slice(c+1)];return Bi("button",{type:"button",class:"cm-diagnosticAction",onclick:l,onmousedown:l,"aria-label":` Action: ${h}${c<0?"":` (access key "${s[o]})"`}.`},d)}),e.source&&Bi("div",{class:"cm-diagnosticSource"},e.source))}class P$ extends Rr{constructor(e){super(),this.sev=e}eq(e){return e.sev==this.sev}toDOM(){return Bi("span",{class:"cm-lintPoint cm-lintPoint-"+this.sev})}}class _g{constructor(e,i){this.diagnostic=i,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=dw(e,i,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class Lo{constructor(e){this.view=e,this.items=[];let i=s=>{if(s.keyCode==27)bg(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:r}=this.items[this.selectedIndex],o=cw(r.actions);for(let a=0;a{for(let r=0;rbg(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(Kt).selected;if(!e)return-1;for(let i=0;i{for(let c of h.diagnostics){if(o.has(c))continue;o.add(c);let d=-1,u;for(let f=n;fn&&(this.items.splice(n,d-n),s=!0)),i&&u.diagnostic==i.diagnostic?u.dom.hasAttribute("aria-selected")||(u.dom.setAttribute("aria-selected","true"),r=u):u.dom.hasAttribute("aria-selected")&&u.dom.removeAttribute("aria-selected"),n++}});n({sel:r.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:a,panel:l})=>{let h=l.height/this.list.offsetHeight;a.topl.bottom&&(this.list.scrollTop+=(a.bottom-l.bottom)/h)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),s&&this.sync()}sync(){let e=this.list.firstChild;function i(){let n=e;e=n.nextSibling,n.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)i();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)i()}moveSelection(e){if(this.selectedIndex<0)return;let i=this.view.state.field(Kt),n=Cr(i.diagnostics,this.items[e].diagnostic);n&&this.view.dispatch({selection:{anchor:n.from,head:n.to},scrollIntoView:!0,effects:lw.of(n)})}static open(e){return new Lo(e)}}function dl(t,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,${encodeURIComponent(t)}')`}function Ea(t){return dl(``,'width="6" height="3"')}const $$=ce.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:Ea("#d11")},".cm-lintRange-warning":{backgroundImage:Ea("orange")},".cm-lintRange-info":{backgroundImage:Ea("#999")},".cm-lintRange-hint":{backgroundImage:Ea("#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 A$(t){return t=="error"?4:t=="warning"?3:t=="info"?2:1}function uw(t){let e="hint",i=1;for(let n of t){let s=A$(n.severity);s>i&&(i=s,e=n.severity)}return e}class fw extends ns{constructor(e){super(),this.diagnostics=e,this.severity=uw(e)}toDOM(e){let i=document.createElement("div");i.className="cm-lint-marker cm-lint-marker-"+this.severity;let n=this.diagnostics,s=e.state.facet(Vh).tooltipFilter;return s&&(n=s(n,e.state)),n.length&&(i.onmouseover=()=>E$(e,i,n)),i}}function I$(t,e){let i=n=>{let s=e.getBoundingClientRect();if(!(n.clientX>s.left-10&&n.clientXs.top-10&&n.clientYe.getBoundingClientRect()}}})}),e.onmouseout=e.onmousemove=null,I$(t,e)}let{hoverTime:s}=t.state.facet(Vh),r=setTimeout(n,s);e.onmouseout=()=>{clearTimeout(r),e.onmouseout=e.onmousemove=null},e.onmousemove=()=>{clearTimeout(r),r=setTimeout(n,s)}}function M$(t,e){let i=Object.create(null);for(let s of e){let r=t.lineAt(s.from);(i[r.from]||(i[r.from]=[])).push(s)}let n=[];for(let s in i)n.push(new fw(i[s]).range(+s));return Ae.of(n,!0)}const G$=Jk({class:"cm-gutter-lint",markers:t=>t.state.field(eu),widgetMarker:(t,e,i)=>{let n=[];return t.state.field(eu).between(i.from,i.to,(s,r,o)=>{s>i.from&&sn.is(If)?n.value:i,t)},provide:t=>ra.from(t)}),R$=ce.baseTheme({".cm-gutter-lint":{width:"1.4em","& .cm-gutterElement":{padding:".2em"}},".cm-lint-marker":{width:"1em",height:"1em"},".cm-lint-marker-info":{content:dl('')},".cm-lint-marker-warning":{content:dl('')},".cm-lint-marker-error":{content:dl('')}}),mw=[Kt,ce.decorations.compute([Kt],t=>{let{selected:e,panel:i}=t.field(Kt);return!e||!i||e.from==e.to?Ge.none:Ge.set([y$.range(e.from,e.to)])}),Uk(x$,{hideOn:ow}),$$],Vh=le.define({combine(t){return ea(t,{hoverTime:300,markerFilter:null,tooltipFilter:null})}});function z$(t={}){return[Vh.of(t),eu,G$,R$,pw]}const L$=750,N$=250,B$=/^[\w.]*$/,W$="param";function No(t,e,i){const n=Math.min(Math.max(Math.trunc(e),1),t.lines),s=t.line(n);return s.from+Math.min(Math.max(Math.trunc(i),0),s.length)}function gw(t,e){const i=Math.min(Math.max(e,0),t.length),n=t.lineAt(i);return{line:n.number,column:i-n.from}}function V$(t,e){const i=No(t,e.from_line,e.from_col),n=Math.max(i,No(t,e.to_line,e.to_col));if(n>i)return{from:i,to:n};const s=t.lineAt(i);return i{const{from:n,to:s}={from:No(t,i.from_line,i.from_col),to:No(t,i.to_line,i.to_col)};return{from:Math.min(n,s),to:Math.max(n,s),insert:i.content}})}const Q$=t=>t.fix!==null&&t.fix.applicability!=="display"&&t.fix.edits.length>0,wg={error:0,warning:1,info:2};function H$(t){return[...t].sort((e,i)=>{if(e.source==="runtime"!=(i.source==="runtime"))return e.source==="runtime"?-1:1;const n=(wg[e.severity]??3)-(wg[i.severity]??3);return n!==0?n:e.from_line-i.from_line||e.from_col-i.from_col})}function q$(t,e,i={}){return!e.ok||!e.diagnostics?[]:H$(e.diagnostics).map(n=>{const{from:s,to:r}=V$(t,n),o={from:s,to:r,severity:n.source==="runtime"?"error":n.severity,source:n.code,message:n.message,markClass:`cm-lint-${n.source}`},a=i.renderMessage?.(n);a&&(o.renderMessage=a);const l=Q$(n)?i.applyFix?.(n):void 0;return l&&(o.actions=[{name:n.fix.message,apply:l}]),o})}function U$(t,e){if(!t.ok||!t.completions)return[];let i=0;return t.completions.map(n=>{const s={label:n.label,type:n.type,detail:n.detail,apply:n.apply};return n.detail===W$&&(s.boost=99-i++),n.info&&e&&(s.info=e(n.info)),s})}function j$(t,e){return!e.ok||e.from_line===void 0||e.from_column===void 0?null:No(t,e.from_line,e.from_column)}function X$(t){const e=[{text:`${t.name}(`,active:!1}];return t.parameters.forEach((i,n)=>{n>0&&e.push({text:", ",active:!1}),e.push({text:i.label,active:n===t.active_parameter})}),e.push({text:")",active:!1}),e}function Y$(t){return!t.ok||t.signatures.length===0?null:t.signatures[0]}function gn(t,e,i){const n=document.createElement(t);return n.className=e,i!==void 0&&(n.textContent=i),n}const Z$=t=>()=>{const e=gn("div","cm-diagnostic-body");if(e.appendChild(gn("span","cm-diagnostic-message",t.message)),t.fix&&t.fix.applicability==="display"&&e.appendChild(gn("p","cm-diagnostic-note",t.fix.message)),t.url){const i=gn("a","cm-diagnostic-link","learn more");i.href=t.url,i.target="_blank",i.rel="noreferrer",e.appendChild(i)}return e},K$=t=>e=>{const i=F$(e.state.doc,t.fix.edits);i.length>0&&e.dispatch({changes:i})};async function J$(t){try{const e=await fS(t.state.doc.toString());return q$(t.state.doc,e,{renderMessage:Z$,applyFix:K$})}catch{return[]}}const e2=t=>()=>gn("pre","cm-completionInfo-doc",t);async function t2(t){const{line:e,column:i}=gw(t.state.doc,t.pos);let n;try{n=await pS(t.state.doc.toString(),e,i)}catch{return null}const s=j$(t.state.doc,n);if(s===null)return null;const r=U$(n,e2);return r.length===0?null:{from:s,options:r,validFor:B$}}const Ef=$e.define();function i2(t){return{pos:t.pos,above:!0,create:()=>{const e=gn("div","cm-signature-tooltip"),i=gn("div","cm-signature-label");for(const n of X$(t.signature)){const s=gn("span",n.active?"cm-signature-param cm-signature-param-active":"cm-signature-param",n.text);i.appendChild(s)}return e.appendChild(i),t.signature.documentation&&e.appendChild(gn("pre","cm-signature-doc",t.signature.documentation)),{dom:e}}}}const Mf=Dt.define({create:()=>null,update(t,e){let i=t;i&&e.docChanged&&(i={...i,pos:e.changes.mapPos(i.pos)});for(const n of e.effects)n.is(Ef)&&(i=n.value);return i},provide:t=>ra.from(t,e=>e?i2(e):null)}),n2=Tt.fromClass(class{constructor(t){this.view=t}timer;stamp=0;update(t){!t.docChanged&&!t.selectionSet||(clearTimeout(this.timer),this.timer=setTimeout(()=>void this.request(),N$))}async request(){if(!this.view.hasFocus)return;const t=this.view.state,e=t.selection.main.head,{line:i,column:n}=gw(t.doc,e),s=++this.stamp;let r;try{r=await mS(t.doc.toString(),i,n)}catch{return}if(s!==this.stamp)return;const o=Y$(r),a=this.view.state.field(Mf,!1)??null;!o&&!a||this.view.dispatch({effects:Ef.of(o?{pos:e,signature:o}:null)})}destroy(){clearTimeout(this.timer)}});function vw(t){const e=[];t.state.field(Mf,!1)&&e.push(Ef.of(null)),jk(t.state)&&e.push(Xk),e.length>0&&t.dispatch({effects:e}),f$(t.state)!==null&&J_(t)}const s2=Tt.fromClass(class{constructor(t){this.view=t,this.pane=t.dom.closest(".pane")??t.dom,this.leave=()=>vw(this.view),this.pane.addEventListener("pointerleave",this.leave)}pane;leave;destroy(){this.pane.removeEventListener("pointerleave",this.leave)}}),r2=ce.domEventHandlers({blur(t,e){return vw(e),!1}}),Ln=t=>({font:`var(--text-${t})`,letterSpacing:`var(--track-${t})`,textTransform:`var(--case-${t})`,fontVariantNumeric:`var(--numeric-${t})`}),o2=ce.theme({".cm-gutter-lint":{width:"1.2em"},".cm-gutter-lint .cm-gutterElement":{padding:"0 var(--gap)"},".cm-lint-marker":{content:"none",width:"calc(var(--unit) * 2)",height:"calc(var(--unit) * 2)",margin:"auto",backgroundColor:"transparent"},".cm-lint-marker-error":{backgroundColor:"var(--danger)"},".cm-lint-marker-warning":{backgroundColor:"var(--warn)",clipPath:"polygon(50% 0%, 100% 100%, 0% 100%)"},".cm-lint-marker-info":{backgroundColor:"transparent",border:"var(--hairline) solid var(--ink-3)"},".cm-lintRange":{backgroundImage:"none",paddingBottom:"0",textDecorationLine:"underline",textDecorationSkipInk:"none",textUnderlineOffset:"var(--gap)"},".cm-lintRange-error":{textDecorationStyle:"wavy",textDecorationColor:"var(--danger)"},".cm-lintRange-warning":{textDecorationStyle:"wavy",textDecorationColor:"var(--warn)"},".cm-lintRange-info":{textDecorationStyle:"dotted",textDecorationThickness:"var(--stroke-active)",textDecorationColor:"var(--ink-3)"},".cm-lint-runtime":{textDecorationThickness:"var(--stroke-active)"},".cm-lintRange-active":{backgroundColor:"var(--surface-bar-alt)"},".cm-tooltip-lint":{backgroundColor:"var(--surface-float)",border:"var(--hairline) solid var(--rule-strong)",borderRadius:"var(--radius)",color:"var(--ink)",maxWidth:"44em"},".cm-diagnostic":{padding:"var(--inset)",...Ln("prose")},".cm-diagnostic-error":{borderLeft:"var(--stroke-active) solid var(--danger)"},".cm-diagnostic-warning":{borderLeft:"var(--stroke-active) solid var(--warn)"},".cm-diagnostic-info":{borderLeft:"var(--stroke-active) solid var(--ink-3)"},".cm-diagnostic-note":{margin:"var(--gap) 0 0",color:"var(--ink-2)"},".cm-diagnostic-link":{display:"inline-block",marginTop:"var(--gap)",color:"var(--ink-3)",textDecoration:"underline"},".cm-diagnosticSource":{color:"var(--ink-3)",...Ln("label"),opacity:"1"},".cm-diagnosticAction":{backgroundColor:"var(--accent)",color:"var(--ink-on-accent)",borderRadius:"var(--radius)",...Ln("control"),padding:"var(--gap) var(--inset)"},".cm-panel.cm-panel-lint":{backgroundColor:"var(--surface-panel)",borderTop:"var(--hairline) solid var(--rule-strong)"},".cm-tooltip.cm-tooltip-autocomplete":{backgroundColor:"var(--surface-float)",border:"var(--hairline) solid var(--rule-strong)",borderRadius:"var(--radius)"},".cm-tooltip.cm-tooltip-autocomplete > ul > li":{padding:"var(--gap) var(--inset)",...Ln("body"),color:"var(--ink)"},".cm-tooltip.cm-tooltip-autocomplete > ul > li[aria-selected]":{backgroundColor:"var(--accent)",color:"var(--ink-on-accent)"},".cm-completionDetail":{color:"var(--ink-3)",fontStyle:"normal",marginLeft:"var(--gap)"},".cm-completionInfo":{backgroundColor:"var(--surface-float)",border:"var(--hairline) solid var(--rule-strong)",borderRadius:"var(--radius)",color:"var(--ink-2)",padding:"var(--inset)",maxWidth:"34em",maxHeight:"22em",overflowY:"auto"},".cm-completionInfo-doc":{margin:"0",whiteSpace:"pre-wrap",...Ln("prose")},".cm-signature-tooltip":{backgroundColor:"var(--surface-float)",border:"var(--hairline) solid var(--rule-strong)",borderRadius:"var(--radius)",color:"var(--ink-2)",padding:"var(--inset)",maxWidth:"44em"},".cm-signature-label":{...Ln("body"),color:"var(--ink-2)"},".cm-signature-param-active":{color:"var(--ink)"},".cm-signature-doc":{margin:"var(--gap) 0 0",whiteSpace:"pre-wrap",...Ln("prose"),color:"var(--ink-3)",maxHeight:"16em",overflow:"auto"}});function a2(){return[z$(),D$(J$,{delay:L$}),sa.of(k$),c$({override:[t2]}),Mf,n2,s2,r2,o2]}function l2(t,e){if(t===e)return null;let i=0;const n=Math.min(t.length,e.length);for(;ii&&r>i&&t.charCodeAt(s-1)===e.charCodeAt(r-1);)s-=1,r-=1;return{from:i,to:s,insert:e.slice(i,r)}}const Ns=1.5,h2=.05,c2=200,yg=100,Bo=t=>t.projection==="orthographic",Hs=t=>Ns*t;function Gf(t){return t.orthoHeight??Hs(Rf(Bt(t.target,t.position)))}function d2(t){return{near:t-yg,far:t+yg}}function bw(t){return Bo(t)?d2(Rf(Bt(t.target,t.position))):{near:h2,far:c2}}const Bt=(t,e)=>[t[0]-e[0],t[1]-e[1],t[2]-e[2]],Ve=(t,e)=>[t[0]+e[0],t[1]+e[1],t[2]+e[2]],Ie=(t,e)=>[t[0]*e,t[1]*e,t[2]*e],ge=(t,e)=>t[0]*e[0]+t[1]*e[1]+t[2]*e[2],Yi=(t,e)=>[t[1]*e[2]-t[2]*e[1],t[2]*e[0]-t[0]*e[2],t[0]*e[1]-t[1]*e[0]],Rf=t=>Math.sqrt(ge(t,t));function Bs(t){const e=Rf(t);return e<1e-12?[0,0,0]:[t[0]/e,t[1]/e,t[2]/e]}function tu(t){const e=Math.cos(t.pitch);return[t.target[0]+t.distance*e*Math.sin(t.yaw),t.target[1]-t.distance*e*Math.cos(t.yaw),t.target[2]+t.distance*Math.sin(t.pitch)]}function la(t,e){const i=Bs(Bt(e,t)),n=Math.abs(i[2])>.999?[0,1,0]:[0,0,1],s=Bs(Yi(i,n)),r=Yi(s,i);return{forward:i,right:s,up:r}}function u2(t,e,i){const n=bw(t),s=n.near,r=n.far,{position:o}=t,{forward:a,right:l,up:h}=la(o,t.target),c=t.width/t.height;let d;if(Bo(t)){const f=Gf(t),p=2/(f*c),m=2/f,g=1/(r-s);d=[[p*l[0],p*l[1],p*l[2],-p*ge(l,o)],[m*h[0],m*h[1],m*h[2],-m*ge(h,o)],[g*a[0],g*a[1],g*a[2],-g*ge(a,o)-g*s],[0,0,0,1]]}else{const f=2/(Ns*c),p=2/Ns,m=r/(r-s);d=[[f*l[0],f*l[1],f*l[2],-f*ge(l,o)],[p*h[0],p*h[1],p*h[2],-p*ge(h,o)],[m*a[0],m*a[1],m*a[2],-m*ge(a,o)-m*s],[a[0],a[1],a[2],-ge(a,o)]]}const u=new Float32Array(16);for(let f=0;f<4;f++)for(let p=0;p<4;p++)u[f*4+p]=d[p][f];return u}function xt(t,e){const{forward:i,right:n,up:s}=la(e.position,e.target),r=Bt(t,e.position),o=ge(r,i);if(!Bo(e)&&o<=1e-6)return{x:NaN,y:NaN,viewDepth:o,visible:!1};const a=e.width/e.height,l=Bo(e)?Gf(e):Ns*o,h=ge(r,n)/l,c=ge(r,s)/l;return{x:(h/a+.5)*e.width,y:(.5-c)*e.height,viewDepth:o,visible:!0}}function Xn(t,e,i){const{forward:n,right:s,up:r}=la(i.position,i.target),o=i.width/i.height,a=(t/i.width-.5)*o,l=-(e/i.height-.5);if(Bo(i)){const c=Gf(i),d=Ve(Ie(s,a*c),Ie(r,l*c));return{origin:Ve(i.position,d),direction:n,tMin:bw(i).near}}const h=Bs(Ve(n,Ie(Ve(Ie(s,a),Ie(r,l)),Ns)));return{origin:i.position,direction:h,tMin:0}}function _w(t,e,i){const n=ge(t.direction,i);if(Math.abs(n)<1e-6)return null;const s=ge(Bt(e,t.origin),i)/n;return s<=(t.tMin??0)?null:Ve(t.origin,Ie(t.direction,s))}function f2(t,e,i,n){const s=Bt(t,e);return[ge(s,i),ge(s,n)]}function ha(t,e,i,n,s,r){const o=s-i,a=r-n,l=o*o+a*a;if(l<1e-12)return Math.hypot(t-i,e-n);const h=Math.max(0,Math.min(1,((t-i)*o+(e-n)*a)/l));return Math.hypot(t-(i+h*o),e-(n+h*a))}function ul(t,e,i,n,s=12,r=!1){let o=null;for(const a of t)if(!(r&&!a.editable))for(let l=0;lxt(h.world,n));for(let h=0;h{h<=s&&(r===null||h[t[0],t[1],t[2]]),Og=40;function nu(t){const[e,i,n]=t,[s,r]=[Math.cos(e),Math.sin(e)],[o,a]=[Math.cos(i),Math.sin(i)],[l,h]=[Math.cos(n),Math.sin(n)];return[[l*o,l*a*r-h*s,l*a*s+h*r],[h*o,h*a*r+l*s,h*a*s-l*r],[-a,o*r,o*s]]}const g2=(t,e)=>[ge(t[0],e),ge(t[1],e),ge(t[2],e)],v2=(t,e)=>[t[0][0]*e[0]+t[1][0]*e[1]+t[2][0]*e[2],t[0][1]*e[0]+t[1][1]*e[1]+t[2][1]*e[2],t[0][2]*e[0]+t[1][2]*e[1]+t[2][2]*e[2]];function b2(t,e,i,n,s=e.dimensions){const r=nu(e.rotation),o=nu(n),a=e.position,l=_2(e.dimensions,s),h=c=>{const d=v2(r,Bt(c,a)),u=[d[0]*l[0],d[1]*l[1],d[2]*l[2]];return Ve(g2(o,u),i)};return t.map(c=>[h(c[0]),h(c[1])])}function Xr(t,e){return Math.abs(e)<1e-9?1:t/e}function _2(t,e){if(Array.isArray(t.size)&&Array.isArray(e.size))return[Xr(e.size[0],t.size[0]),Xr(e.size[1],t.size[1]),Xr(e.size[2],t.size[2])];if(typeof t.radius=="number"&&typeof e.radius=="number"){const i=Xr(e.radius,t.radius);return typeof t.height=="number"&&typeof e.height=="number"?[i,i,Xr(e.height,t.height)]:[i,i,i]}return[1,1,1]}function w2(t,e,i,n){const s=Object.fromEntries(Object.entries(e).map(([o,a])=>[o,Array.isArray(a)?[...a]:a])),r=Math.max(.05,n);if(t==="box"&&Array.isArray(s.size))s.size[i]*=r;else if(t==="sphere"&&typeof s.radius=="number")s.radius*=r;else if(t==="cylinder"){const o=i===2?"height":"radius";typeof s[o]=="number"&&(s[o]*=r)}return s}const su=(t,e)=>Math.max(.15,.18*Math.hypot(...Bt(e,t.position)));function zf(t){const e=Math.abs(t[1])>.9?[0,0,1]:[0,1,0],i=Bs(Yi(t,e));return[i,Yi(t,i)]}function y2(t,e,i){const n=Ve(t,Ie(e,i)),[s,r]=zf(e),o=Ve(t,Ie(e,i*.82)),a=i*.07;return[[t,n],[n,Ve(o,Ie(s,a))],[n,Ve(o,Ie(s,-a))],[n,Ve(o,Ie(r,a))],[n,Ve(o,Ie(r,-a))]]}function x2(t,e,i){const[n,s]=zf(e),r=i*.78,o=[];for(let a=0;a[a,o[(l+1)%o.length]])}function ww(t,e,i){return pl.map((n,s)=>({axis:s,edges:i==="rotate"?x2(t,n,e):y2(t,n,e)}))}function O2(t,e,i,n,s){const r=xt(i,s),o=xt(n,s);return!r.visible||!o.visible?1/0:ha(t,e,r.x,r.y,o.x,o.y)}function Sg(t,e,i,n,s,r,o=10){let a=null;for(const l of ww(t,e,i))for(const[h,c]of l.edges){const d=O2(n,s,h,c,r);d<=o&&(a===null||dMath.PI;)i-=2*Math.PI;for(;i<-Math.PI;)i+=2*Math.PI;return i}function k2(t,e){if(!t||t.vertexIndex!==null)return null;const i=e.find(n=>n.id===t.nodeId);if(!i?.transform||!i.editable)return null;if(t.part==="plane"&&i.plane)return{node:i,origin:i.plane.origin};if(i.kind==="profile"&&i.vertices.length>0){const n=i.vertices.reduce((r,o)=>[r[0]+o.world[0],r[1]+o.world[1],r[2]+o.world[2]],[0,0,0]),s=i.vertices.length;return{node:i,origin:[n[0]/s,n[1]/s,n[2]/s]}}return{node:i,origin:i.transform.position}}const $c=192,ii={draft:{label:"Draft",pixelBudget:32e4,maxRatio:1,bounces:3,shadowSamples:1,samples:128,marchSteps:$c},high:{label:"High",pixelBudget:9e5,maxRatio:1.25,bounces:6,shadowSamples:2,samples:512,marchSteps:$c},ultra:{label:"Ultra",pixelBudget:42e5,maxRatio:2,bounces:8,shadowSamples:4,samples:1024,marchSteps:$c}},ml="ultra",ds={shadows:1,reflections:2,flat:4,hideSolid:8,hardShadows:16,refineHit:32,section:64};function yw(t,e){const i=t.marchSteps;return i===null||!Number.isFinite(i)?e.marchSteps:Math.min(Ow,Math.max(xw,Math.round(i)))}const xw=16,Ow=512,C2={solid:0,slice:1,gradient:2,normal:3,depth:4},gl=t=>t==="slice"||t==="gradient",Sw=2;function Lf(t){return(Math.min(1,Math.max(0,t))*2-1)*Sw}const Ts={projection:"orthographic",shadows:"hard",reflections:!0,flatShading:!0,hideSolid:!1,xray:1,showGraticule:!0,showOverlays:!0,showSketches:!0,showAllPlanes:!1,showMeshEdges:!1,showMeshWireframe:!1,showBrep:!1,showConstraints:!0,showFixedConstraints:!0,showDistanceConstraints:!0,showConstraintValues:!0,sdfView:"solid",sdfAxis:0,sdfFraction:.5,isoOffset:0,marchSteps:null,refineHit:!1,cullBounds:!0,section:!1};function Cg(t,e,i){const n=Math.hypot(t,e,i)||1;return{yaw:t===0&&e===0?0:Math.atan2(t,-e),pitch:Math.asin(i/n)}}const T2=[[1,"front","back"],[0,"left","right"],[2,"bottom","top"]];function ms(t){const e=[];for(const[i,n,s]of T2){const r=t[i];r<0?e.push(n):r>0&&e.push(s)}return e.join("-")}const rs=(()=>{const t={},e=Cg(1,-1,1);t.iso={...e,label:"ISO"};for(const i of[-1,0,1])for(const n of[-1,0,1])for(const s of[-1,0,1]){if(i===0&&n===0&&s===0)continue;const r=Math.abs(i)+Math.abs(n)+Math.abs(s),o=Cg(i,n,s);t[ms([i,n,s])]={...o,...r===3?{label:"ISO"}:{}}}return t})();function kw(t,e,i,n=.01){if(Math.abs(e-i.pitch)>=n)return!1;if(Math.abs(Math.abs(i.pitch)-Math.PI/2)<1e-6)return!0;const s=t-i.yaw;return Math.abs(Math.atan2(Math.sin(s),Math.cos(s)))1e-6?Ve(e.origin,Ie(e.direction,-ge(e.origin,n)/s)):Ve(e.origin,Ie(e.direction,Math.max(1,i)));return{origin:[r[0],r[1],r[2]],normal:t==="xy"?null:[n[0],n[1],n[2]]}}const I2=(t,e)=>[ge(t[0],e),ge(t[1],e),ge(t[2],e)],Tg=(t,e)=>[t[0][0]*e[0]+t[1][0]*e[1]+t[2][0]*e[2],t[0][1]*e[0]+t[1][1]*e[1]+t[2][1]*e[2],t[0][2]*e[0]+t[1][2]*e[1]+t[2][2]*e[2]];function E2(t,e,i){const n=ge(t,e),s=ge(t,t)-i*i,r=n*n-s;if(r<0)return null;const o=Math.sqrt(r),a=-n-o>1e-6?-n-o:-n+o;if(a<=1e-6)return null;const l=Ve(t,Ie(e,a));return{t:a,normal:Ie(l,1/Math.max(i,1e-9))}}function M2(t,e,i){let n=-1/0,s=1/0,r=0;for(let h=0;h<3;h++){if(Math.abs(e[h])<1e-9){if(Math.abs(t[h])>i[h])return null;continue}let c=(-i[h]-t[h])/e[h],d=(i[h]-t[h])/e[h];if(c>d&&([c,d]=[d,c]),c>n&&(n=c,r=h),s=Math.min(s,d),n>s)return null}if(s<=1e-6)return null;const o=n>1e-6?n:s,a=Ve(t,Ie(e,o)),l=[0,0,0];return l[r]=Math.sign(a[r])||1,{t:o,normal:l}}function G2(t,e,i,n){let s=null;const r=a=>{a&&a.t>1e-6&&(s===null||a.t1e-12){const a=t[0]*e[0]+t[1]*e[1],l=t[0]*t[0]+t[1]*t[1]-i*i,h=a*a-o*l;if(h>=0){const c=Math.sqrt(h);for(const d of[(-a-c)/o,(-a+c)/o]){const u=t[2]+e[2]*d;if(Math.abs(u)<=n){const f=Ve(t,Ie(e,d));r({t:d,normal:[f[0]/i,f[1]/i,0]})}}}}if(Math.abs(e[2])>1e-9)for(const a of[1,-1]){const l=(a*n-t[2])/e[2],h=Ve(t,Ie(e,l));h[0]*h[0]+h[1]*h[1]<=i*i&&r({t:l,normal:[0,0,a]})}return s}const Ac=t=>typeof t=="number"?t:null;function R2(t,e){let i=null;for(const n of t){const s=n.transform;if(!s||n.kind==="profile")continue;const r=nu(s.rotation),o=Tg(r,Bt(e.origin,s.position)),a=Tg(r,e.direction);let l=null;if(n.kind==="sphere"){const d=Ac(s.dimensions.radius);d!==null&&(l=E2(o,a,d))}else if(n.kind==="box"){const d=s.dimensions.size;Array.isArray(d)&&d.length===3&&(l=M2(o,a,[d[0],d[1],d[2]]))}else if(n.kind==="cylinder"){const d=Ac(s.dimensions.radius),u=Ac(s.dimensions.height);d!==null&&u!==null&&(l=G2(o,a,d,u))}if(!l||i!==null&&l.t>=i.t)continue;const h=Ve(e.origin,Ie(e.direction,l.t));let c=I2(r,l.normal);ge(c,e.direction)>0&&(c=Ie(c,-1)),i={nodeId:n.id,point:[h[0],h[1],h[2]],normal:[c[0],c[1],c[2]],t:l.t}}return i}const Ma=.6,ru=.25,z2=.55,L2=.12;function N2(t){const e=Bs(t),i=Math.abs(ge(e,[0,1,0]))>.99?[0,0,1]:[0,1,0],n=Bs(Yi(i,e)),s=Yi(e,n);return{u:n,v:s}}function Tw(t,e,i,n,s,r,o){const a=(l,h)=>Ve(t,Ve(Ie(e,n+l),Ie(i,s+h)));return[a(-r,-o),a(r,-o),a(r,o),a(-r,o)]}function B2(t){const e=t.plane;if(!e)return null;const i=e.origin,n=e.u,s=e.v;let r=1/0,o=-1/0,a=1/0,l=-1/0;for(const p of t.vertices)r=Math.min(r,p.uv[0]),o=Math.max(o,p.uv[0]),a=Math.min(a,p.uv[1]),l=Math.max(l,p.uv[1]);const h=t.vertices.length===0,c=h?0:(r+o)/2,d=h?0:(a+l)/2,u=h?Ma:Math.max(Ma,(o-r)/2+ru),f=h?Ma:Math.max(Ma,(l-a)/2+ru);return{nodeId:t.id,label:t.name??t.id,origin:i,u:n,v:s,normal:e.normal,centerU:c,centerV:d,halfU:u,halfV:f,corners:Tw(i,n,s,c,d,u,f),editable:t.editable&&t.transform!==null,derived:e.reference!==null&&e.reference!==void 0}}function W2(t,e){const{u:i,v:n}=N2(e),s=.6+ru;return{nodeId:null,label:"new sketch",origin:t,u:i,v:n,normal:Bs(e),centerU:0,centerV:0,halfU:s,halfV:s,corners:Tw(t,i,n,0,0,s,s),editable:!0,derived:!1}}function V2(t){return Ve(t.origin,Ie(t.normal,z2*Math.max(t.halfU,t.halfV)))}function F2(t){return t.corners[2]}function Q2(t){return L2*Math.max(t.halfU,t.halfV)}function H2(t,e){if(!e.showOverlays||!e.showSketches)return[];if(e.showAllPlanes)return[...t];if(!e.sketching)return[];const i=new Set([e.selectedNodeId,e.hoveredNodeId]);return t.filter(n=>i.has(n.nodeId))}function Dw(t){const e=[];for(const i of t){const n=B2(i);n&&e.push(n)}return e}const[ut,vn]=B(""),[at,q2]=B([]),[U2,j2]=B([]),[X2,Y2]=B([]),[Un,Z2]=B([]),[bi,K2]=B([]),[Tr,J2]=B([]),[no,eA]=B([]),[nh,tA]=B([]),[sh,iA]=B(null),[Pw,nA]=B(null),[$w,Nf]=B(null);function bo(t){Nf(null),iA(t)}const[Dg,Ic]=B(null),[xn,sA]=B(null),[rA,ou]=B(null),[Yt,Ec]=B(null),[En,Vn]=B({frame:0,playing:!1}),[oA,au]=B(!1),[Fh,lu]=B(!1),[aA,Bf]=B(null),[Wf,bn]=B(null),[Aw,Ga]=B(null),[Iw,Ra]=B(null),[Ds,Xs]=B("idle"),[vl,Yr]=B(null),[hu,bl]=B(null),[rh,lA]=B(new Set),[Ew,hA]=B(!1),[_l,cu]=B(null),[Se,cA]=B(null);function We(t){Nf(null),cA(t)}const[ln,Fn]=B(null),[Ce,_i]=B("select"),[Sn,Dr]=B(null),[Mc,ke]=B({kind:"",text:"Starting…"}),[oh,ah]=B(""),[dA,uA]=B("");function Mw(t){t&&t!==dA()&&ah(t)}function fA(){uA(oh()),ah("")}const[Pg,so]=B(""),[Je,$g]=B(!1),[Pr,Gw]=B(!1),[Ui,du]=B(null),[pA,Rw]=B(tO()),Be=pA;let uu=null;function Ws(t){if(Rw(t),f0(t),t!=="sketch"){const e=Se();uu=e?e.nodeId:null}}function Ag(t=1){Ws(iO(Be(),t))}function mA(){const t=Se(),e=t?Pe(t.nodeId):null,i=nO(Be(),e,uu);uu=i.lastAutoNodeId,i.mode!==Be()&&(Rw(i.mode),f0(i.mode))}const[Wo,gA]=B($2),[fu,Gc]=B(null),[Vf,ro]=B(null),[wl,Vo]=B("translate"),[_o,Ps]=B("object"),[pr,Fo]=B({yaw:rs.iso.yaw,pitch:rs.iso.pitch});function Pe(t){return at().find(e=>e.id===t)}function vA(t){return nh().find(e=>e.id===t)}function bA(){return Dw(It())}function oo(){return at().filter(t=>t.kind==="profile")}function It(){const t=fu(),e=Vf(),i=at();return e?i.map(n=>n.id===e.nodeId&&n.transform?_A(n,e.position,e.rotation,e.dimensions):n):t?i.map(n=>{if(n.id!==t.nodeId||!n.plane)return n;const{origin:s,u:r,v:o}=n.plane,[a,l]=t.xy,h=[s[0]+r[0]*a+o[0]*l,s[1]+r[1]*a+o[1]*l,s[2]+r[2]*a+o[2]*l],c=n.vertices.map((d,u)=>u===t.vertexIndex?{...d,uv:t.xy,world:h}:d);return{...n,vertices:c}}):i}function _A(t,e,i,n){if(!t.transform)return t;const s=r=>[r[0]+(e[0]-t.transform.position[0]),r[1]+(e[1]-t.transform.position[1]),r[2]+(e[2]-t.transform.position[2])];return{...t,edges:b2(t.edges,t.transform,e,i,n),vertices:t.vertices.map(r=>({...r,world:s(r.world)})),plane:t.plane?{...t.plane,origin:s(t.plane.origin)}:t.plane,transform:{...t.transform,position:e,rotation:i,dimensions:n}}}var wA=P('
Ctrl/⌘ + Enter to run
'),yA=P('

Drag a swatch onto an object

'),Lg=P(""),dI=P("
"),uI=P("

Create a material to begin."),fI=P('

Appearance
Physical
'),pI=P("